Protege 看到关系,Virtuoso 没有

Protege sees relationship, Virtuoso doesn't

正在查看 go-plus ontology in a freshly installed, stock Protégé 5, I found a useful inference in the entities tab for http://purl.obolibrary.org/obo/GO_0003215

'cardiac right ventricle morphogenesis' 'results in morphogenesis of'一些'cardiac ventricle'

'results in morphogenesis of' 在这种情况下是 http://purl.obolibrary.org/obo/RO_0002298 and 'cardiac ventricle' is http://purl.obolibrary.org/obo/UBERON_0002082

如果我将相同的 ontology 加载到 Virtuoso Open Source 07.20.3217 并描述 http://purl.obolibrary.org/obo/GO_0003215, no relationship with 'cardiac ventricle' is listed. (Even after enabling OWL inference.)

但是,http://purl.obolibrary.org/obo/GO_0003215 链接到具有

的匿名节点
rdf:type           owl:Restriction 
owl:onProperty     n3:RO_0002298 
owl:someValuesFrom n3:UBERON_0002080 

其中 n3http://purl.obolibrary.org/obo/

是否有 Virtuoso 配置可以在 describe 视图中清楚地显示这种关系?

是否有一些简明的 SPARQL 语法可以使关系清晰?目前,我正在使用

select distinct ?goid (str(?goterm) as ?go_str)
?svf (str(?anatomy ) as ?anat_str)
where
{
  ?goid obo:hasOBONamespace 'biological_process'^^xsd:string .
  ?goid  rdfs:label ?goterm .
  ?goid rdfs:subClassOf+ ?parent .
  ?parent owl:someValuesFrom* ?svf .
  ?svf rdfs:subClassOf+
  <http://purl.obolibrary.org/obo/UBERON_0001062> .
  ?svf rdfs:label ?anatomy
}

如何在 Virtuoso 中启用 OWL 推理?你应该知道它不支持OWL DL推理,只支持某种基于规则的推理,只涵盖OWL DL的一小部分。另一方面,Protege 通过 HermiT、Pellet 等推理机支持 OWL 深度学习推理

如果您的意思是 "enable OWL inference" 只是在 rdfs:subClassOf 关系上使用 SPARQL 1.1 proeprty 路径,那么这与 OWL DL 推理相去甚远。它只是意味着从图中的起始节点考虑该关系的传递闭包,仅此而已。

这里有很多事情要做。

您可以使用 属性 路径进行传递,如@ASKW 的评论中所述。

如果您想利用 Virtuoso 的 built-in reasoning for relationship types described by RDF Schema (rdfs:subClassOf, rdfs:subPropertyOf, rdfs:subClassOf) or OWL (owl:equivalentProperty, owl:equivalentClass, owl:SymmetricProperty, owl:inverseOf, etc.), then you can leverage the inference rules pragma as described in @MarkMiller's comments (note reference to a blog post about that usage pattern)。

如果您想编写自定义推理规则(即 use SPARQL as your Inference Rules language),那么您将需要提供该功能的 Virtuoso 8.0(即将推出)。请注意,这是最终的解决方案,因为您可以使用 SPARQL 编写自己的算法。