SPARQL查询子类的首选名称及其顶级上层类

时间:2017-06-19 17:40:02

标签: sparql rdf ontology

我是SPARQL的新手。我想在Radlex ontology, as hosted at BioPortal中获得类的首选名称及其一个顶级上层类以及它们的同义词。

我希望看到输出: output

期限:密度相等 subClassOf :密度描述符 同义词:isodens,等密度,isodense

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

GZIPInputStream

2 个答案:

答案 0 :(得分:3)

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

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

例如,RID5635“coin”是RID5633“个人项目”的子类,是 radlex_metaclass 的一个实例,但是不是 owl的一个实例:Class ,正如我期望的那样使用OBO代工本体。看起来并不是所有的Radlex子类都来自radlex_metaclass,因此使得所有子类都具有单个三重模式(如

)变得更加棘手
?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"                                                        |
+------------------------------------------------------------------------+---------------------------------------------------------------------+

答案 1 :(得分: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
相关问题