2017-06-19 60 views
0

我是SPARQL的新手。我希望获得首选的名字,以及他们的顶级上级,以及他们的同义词Radlex ontology, as hosted at BioPortalSPARQL查询子类的首选名称及其顶级上层类

和输出我想看看: output

期限:等于密度 subClassOf:密度描述 同义词:isodens,同等密度,等密度

它看起来像,下面的代码解决了我的问题,但仍需要进行一些修改。因为,它带来了所有的上层阶级,但我只想要一个上层阶级。

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 

SELECT DISTINCT ?concept ?subClassOf 
WHERE 
{ GRAPH <http://bioportal.bioontology.org/ontologies/RADLEX_OWL> 
    { ?term a <http://bioontology.org/projects/ontologies/radlex/radlexOwl#radlex_metaclass> ; 
     <http://bioontology.org/projects/ontologies/radlex/radlexOwl#Preferred_name> ?concept 
    } 
    ?term rdfs:subClassOf ?upperClass. 
    ?upperClass <http://bioontology.org/projects/ontologies/radlex/radlexOwl#Preferred_name> ?subClassOf. 
} LIMIT 10 OFFSET 10 
+0

'HTTP结果:// bioontology.org /项目/本体/ radlex/radlexOwl#'可以肯定的是**不**类的URI但只有某个URI的名称空间。 – AKSW

+0

请请请使用Markdown语法进行格式化。 – AKSW

+0

感谢您的建议,在您的帮助下学习。 – user1979556

回答

0
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
PREFIX radlex: <http://bioontology.org/projects/ontologies/radlex/radlexOwlDlComponent#> 

SELECT DISTINCT ?term ?name ?synonym ?subClassOf ?subClassOf_name 
FROM <http://bioportal.bioontology.org/ontologies/RID> 
WHERE 
{ 
?term radlex:Preferred_name ?name . 
?term radlex:Synonym ?synonym . 
?term rdfs:subClassOf ?subClassOf . 
?subClassOf radlex:Preferred_name ?subClassOf_name 
} LIMIT 10 
+0

你确定吗?!我在2017-06-22T22:34:00-05:00这里看到的甚至都不是有效的SAPRQL。 http://www.sparql.org说:'第5行,第189列出现词法错误。遇到:“\ r”(13),之后:“prefName”'这只是第一个错误。那之后我至少看到一个。如果您可以编辑查询以实际运行,我们可以讨论如何获得所需的课程级别详细信息。 –

+0

好的,我更正了,非常感谢。 – user1979556

+0

是的,这样好多了。今天晚些时候我会再看看。你为什么不输出你想看到的输出的例子,至少有一些真正的Radlex类。 –

3

看起来你的主要困难之一是找到从哪里开始,或者如何指定Radlex子类的根。

我对Radlex没有经验,最近我还没有使用Bioportal。当我在Protege中打开Radlex本体时,它的类层次对我来说看起来很合理。但是来自Bioportal终点的结果令人惊讶。

例如,RID5635“硬币”是RID5633“个人物品”的一个子类,并且是radlex_metaclass的实例,但猫头鹰的实例:类,同时我也会用OBO期待铸造本体。它看起来并不像所有来自radlex_metaclass的Radlex子类,这样就使得它棘手得到所有的子类有一个三重图案像

?s a owl:Class 

它也不会看起来像Bioportal端点支持RDFS属性的路径,所以我们也不能要求

?s a rdfs:subClassOf* <http://bioontology.org/projects/ontologies/radlex/radlexOwl#RID1> 

因此,我不能保证,这个查询将返回所有在Radlex子类的...只是所有radlex_metaclass立即子类的

最后,正如AKSW指出的那样,http://bioontology.org/projects/ontologies/radlex/radlexOwl#是本体的名称,而不是超类。它没有子类,也不是我在本答案顶部描述的根本查找问题的解决方案。

我添加了一个命名的图形限制,但是这可能没有做任何事情,通过询问http://bioontology.org/projects/ontologies/radlex/radlexOwl#radlex_metaclass实例尚未完成。

SELECT DISTINCT * 
WHERE 
    { GRAPH <http://bioportal.bioontology.org/ontologies/RADLEX_OWL> 
     { ?radlexclass a <http://bioontology.org/projects/ontologies/radlex/radlexOwl#radlex_metaclass> ; 
      <http://bioontology.org/projects/ontologies/radlex/radlexOwl#Preferred_name> ?prefName 
     } 
    } 

给出这样

+------------------------------------------------------------------------+---------------------------------------------------------------------+ 
|        radlexclass        |        prefName        | 
+------------------------------------------------------------------------+---------------------------------------------------------------------+ 
| <http://bioontology.org/projects/ontologies/radlex/radlexOwl#RID19012> | "posterior root of left first sacral nerve"       | 
| <http://bioontology.org/projects/ontologies/radlex/radlexOwl#RID23593> | "nerve to third posterior cervical intertransversarius"    | 
| <http://bioontology.org/projects/ontologies/radlex/radlexOwl#RID11053> | "hydrophilic wire"             | 
| <http://bioontology.org/projects/ontologies/radlex/radlexOwl#RID5825> | "right"                | 
| <http://bioontology.org/projects/ontologies/radlex/radlexOwl#RID18947> | "posterior root of sixth cervical nerve"       | 
| <http://bioontology.org/projects/ontologies/radlex/radlexOwl#RID16116> | "set of short association fibers of telencephalon"     | 
| <http://bioontology.org/projects/ontologies/radlex/radlexOwl#RID23701> | "left third thoracic nerve"           | 
| <http://bioontology.org/projects/ontologies/radlex/radlexOwl#RID23274> | "ascending branch of meningeal branch of right second sacral nerve" | 
| <http://bioontology.org/projects/ontologies/radlex/radlexOwl#RID25244> | "right intermediomedial nucleus"         | 
| <http://bioontology.org/projects/ontologies/radlex/radlexOwl#RID5699> | "coalescent"              | 
+------------------------------------------------------------------------+---------------------------------------------------------------------+ 

+0

非常感谢您的评论马克!我只是修改它并编写了下面的代码。它帮助了很多。 – user1979556

+0

很高兴听到它。坚持下去。有一天,你会回头问,“我没有RDF和SPARQL吗?!” –