SPARQL查询子类及其一个顶级类的首选名称

SPARQL查询子类及其一个顶级类的首选名称,sparql,rdf,ontology,Sparql,Rdf,Ontology,我是SPARQL的新手。我想得到班级的首选名称和他们的一个顶级上层阶级,以及他们的同义词 以及我想看到的输出: 术语:等密度 子类:密度描述符 同义词:等密度、等密度、等密度 看起来,下面的代码解决了我的问题,但仍然需要一些修改。因为,它带来了所有的上层阶级,但我只想要一个级别的上层阶级 PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT DISTINCT ?concept ?subClassOf WHERE

我是SPARQL的新手。我想得到班级的首选名称和他们的一个顶级上层阶级,以及他们的同义词

以及我想看到的输出:

术语:等密度 子类:密度描述符 同义词:等密度、等密度、等密度

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

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
前缀rdfs:
选择不同的概念子类
哪里
{图
{?术语a;
?概念
}
?术语rdfs:子类?上层。
?上等?下等。
}限制10偏移10

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

我没有使用Radlex的经验,最近也没有太多使用Bioportal。当我在Protege中打开Radlex本体时,它的类层次结构在我看来是合理的。但生物门终点的结果令人惊讶

例如,RID5635“coin”是RID5633“personal item”的一个子类,是radlex_元类的一个实例,但不是owl:Class的一个实例,正如我使用OBO foundry本体所期望的那样。看起来并不是所有的Radlex子类都来自Radlex_元类,所以要得到所有的子类都有一个三重模式,比如

?s a owl:Class
看起来Bioportal端点也不支持RDFS属性路径,所以我们不能要求

?s a rdfs:subClassOf* <http://bioontology.org/projects/ontologies/radlex/radlexOwl#RID1>
?s a rdfs:子类*
因此,我不能保证这个查询会返回Radlex中的所有子类。。。只是radlex_元类的所有直接子类

最后,正如AKSW所指出的,是本体的名称,而不是超类。它没有子类,也不是我在这个答案顶部描述的根查找问题的解决方案

我添加了一个命名图限制,但这可能没有做任何通过请求实例尚未完成的事情

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
      }
  }
选择DISTINCT*
哪里
{图
{?a类;
?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"                                                        |
+------------------------------------------------------------------------+---------------------------------------------------------------------+
+------------------------------------------------------------------------+---------------------------------------------------------------------+
|radlexclass | prefName|
+------------------------------------------------------------------------+---------------------------------------------------------------------+
||“左第一骶神经后根”|
||“第三颈椎后横突间神经”|
||“亲水线”|
||“对”|
||“第六颈神经后根”|
||“端脑短联合纤维组”|
||“左第三胸神经”|
||“右侧第二骶神经脑膜支升支”|
||“右侧中间核”|
||“结合的”|
+------------------------------------------------------------------------+---------------------------------------------------------------------+

等等。

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

我没有使用Radlex的经验,最近也没有太多使用Bioportal。当我在Protege中打开Radlex本体时,它的类层次结构在我看来是合理的。但生物门终点的结果令人惊讶

例如,RID5635“coin”是RID5633“personal item”的一个子类,是radlex_元类的一个实例,但不是owl:Class的一个实例,正如我使用OBO foundry本体所期望的那样。看起来并不是所有的Radlex子类都来自Radlex_元类,所以要得到所有的子类都有一个三重模式,比如

?s a owl:Class
看起来Bioportal端点也不支持RDFS属性路径,所以我们不能要求

?s a rdfs:subClassOf* <http://bioontology.org/projects/ontologies/radlex/radlexOwl#RID1>
?s a rdfs:子类*
因此,我不能保证这个查询会返回Radlex中的所有子类。。。只是radlex_元类的所有直接子类

最后,正如AKSW所指出的,是本体的名称,而不是超类。它没有子类,也不是我在这个答案顶部描述的根查找问题的解决方案

我添加了一个命名图限制,但这可能没有做任何通过请求实例尚未完成的事情

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
      }
  }
选择DISTINCT*
哪里
{图
{?a类;
?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"                                                        |
+------------------------------------------------------------------------+---------------------------------------------------------------------+
+------------------------------------------------------------------------+---------------------------------------------------------------------+
|radlexclass | prefName|
+------------------------------------------------------------------------+---------------------------------------------------------------------+
||“左第一骶神经后根”|
||“第三颈椎后横突间神经”|
||“亲水线”|
||“对”|
||“六根后根