如何获取所选类的所有属性列表?例如:
<!-- http://www.xxx.xx/ontologies/abcd.owl#selected -->
<owl:Class rdf:about="&selected;Selected">
<owl:equivalentClass>
<owl:Restriction>
<owl:onProperty rdf:resource="&selected;a_xxyy"/>
<owl:allValuesFrom rdf:resource="&selected;aaaaa"/>
</owl:Restriction>
</owl:equivalentClass>
<owl:equivalentClass>
<owl:Restriction>
<owl:onProperty rdf:resource="&selected;a_yyzz"/>
<owl:allValuesFrom rdf:resource="&selected;bbbb"/>
</owl:Restriction>
</owl:equivalentClass>
<owl:equivalentClass>
<owl:Restriction>
<owl:onProperty rdf:resource="&selected;a_gggrrr"/>
<owl:allValuesFrom>
<rdfs:Datatype>
<owl:onDatatype rdf:resource="&xsd;integer"/>
<owl:withRestrictions rdf:parseType="Collection">
<rdf:Description>
<xsd:minInclusive rdf:datatype="&xsd;integer">18</xsd:minInclusive>
</rdf:Description>
</owl:withRestrictions>
</rdfs:Datatype>
</owl:allValuesFrom>
</owl:Restriction>
</owl:equivalentClass>
我想要类<http://www.xxx.xx/ontologies/abcd.owl#selected>
的所有属性(甚至是值),比如
|property|value|
|a_xxyy |aaaaa|
|a_yyzz |bbbb |
|a_gggrrr|<18 |
答案 0 :(得分:1)
所选类的所有属性
您展示的RDF序列化是一堆等价的类公理,其中一个类是匿名限制类。例如,
<owl:Class rdf:about="&selected;Selected">
<owl:equivalentClass>
<owl:Restriction>
<owl:onProperty rdf:resource="&selected;a_xxyy"/>
<owl:allValuesFrom rdf:resource="&selected;aaaaa"/>
</owl:Restriction>
</owl:equivalentClass>
说
选择≡∀a_xxyy.aaaaa
表示已选择的实例对属性 a_xxyy 的每个值必须为 aaaaa 。但这并不意味着 a_xxyy 是“该类的属性”。之后,类似结构的公理是
人类⊑⊑hasExoskeleton.Nothing
表示没有人有外骨骼。因此, hasExoskeleton 不会被视为“人类的财产”。但是,公理的形式是相同的。
无论如何,SPARQL查询并不复杂。它只会是:
prefix owl: <http://www.w3.org/2002/07/owl#>
select ?class ?property where {
?class owl:equivalentClass/owl:onProperty ?property
}
实际上,你可能不仅需要owl:equivalentClasses,还需要rdfs:subClasses,所以你可以这样做:
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
prefix owl: <http://www.w3.org/2002/07/owl#>
select ?class ?property where {
?class (rdfs:subClassOf|owl:equivalentClass)/owl:onProperty ?property
}