我想查询一个包含owl:equivalentclass
对象持有的隐式属性的本体。我该如何实现?
本体持有这样的三元组:
<plantURI> rdf:type <http://purl.obolibrary.org/obo/FLOPO_0004148>
。
类<http://purl.obolibrary.org/obo/FLOPO_0004148>
具有以下定义:
<owl:Class rdf:about="http://purl.obolibrary.org/obo/FLOPO_0004148">
<owl:equivalentClass>
<owl:Restriction>
<owl:onProperty rdf:resource="http://purl.obolibrary.org/obo/BFO_0000051"/>
<owl:someValuesFrom>
<owl:Class>
<owl:intersectionOf rdf:parseType="Collection">
<rdf:Description rdf:about="http://purl.obolibrary.org/obo/PO_0009046"/>
<owl:Restriction>
<owl:onProperty rdf:resource="http://purl.obolibrary.org/obo/RO_0000053"/>
<owl:someValuesFrom rdf:resource="http://purl.obolibrary.org/obo/PATO_0000320"/>
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
</owl:someValuesFrom>
</owl:Restriction>
</owl:equivalentClass>
<rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string">flower green</rdfs:label>
</owl:Class>
但是,我不想这样简单地查询URI:
SELECT * {
?s rdf:type <http://purl.obolibrary.org/obo/FLOPO_0004148>
}
但是我有时只想查询其隐式属性之一,例如属性<http://purl.obolibrary.org/obo/PATO_0000320>
(“绿色”)-查找所有以绿色表示的植物。
因此,最佳查询如下:
SELECT * {
?s ?p <http://purl.obolibrary.org/obo/PATO_0000320>
}
哪个给了我对象,因为对象隐式拥有此属性。
这可能涉及在Virtuoso中进行推理。但是,几个小时后,我无法提出任何解决方案,如何在SPARQL中执行此操作。
答案 0 :(得分:0)
Virtuoso提供两种形式的推理和推理。 1.内置-基于固定规则,涉及owl:equivalentClass,owl:equivalentProperty,owl:inverseOf,owl:sameAs,owl:InverseFunctionalProperty,owl:SymmetricProperty,rdfs:subClassOf,rdfs:subPropertyOf(开源版和商业版均支持此功能
您现在出现只是需要owl:equivalentClass推理,因此您可以查看以下内置的推理和推理示例:
启用等效类推理
DEFINE input:inference 'urn:owl:equivalent:class:inference:rules'
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX bmo: <http://purl.org/bmo/ns#>
PREFIX fibo: <https://spec.edmcouncil.org/fibo/ontology/FND/AgentsAndPeople/People/Person>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT DISTINCT ?s
WHERE {
?s a fibo:person .
}
LIMIT 20
Live Query Results Page(解决方案是基于推理和推论的结果产生的)
等效类推理已禁用(注意DEFINE输入:推理编译注释已被注释掉)
# DEFINE input:inference 'urn:owl:equivalent:class:inference:rules'
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX bmo: <http://purl.org/bmo/ns#>
PREFIX fibo: <https://spec.edmcouncil.org/fibo/ontology/FND/AgentsAndPeople/People/Person>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT DISTINCT ?s
WHERE {
?s a fibo:person .
}
LIMIT 20
Live Query Results Page(应该为空)