假设本体中有几个类定义:
<owl:Class rdf:about="&ontX;A">
<rdfs:label>A</rdfs:label>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="&ontY;hasCapability"/>
<owl:someValuesFrom rdf:resource="&ontY;CapabilityB"/>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="&ontY;hasCapability"/>
<owl:someValuesFrom rdf:resource="&ontY;CapabilityC"/>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
如何检索给定类的所有功能。在上面的示例中,对于给定的类A,应返回CapabilityB和CapabilityC。
&amp; ontY; CapabilityB和&amp; ontY; CapabilityC是另一个本体中的类。本体无法改变。
OWL API和推理器可用于查询。
答案 0 :(得分:2)
编写一个OWLObjectVisitor,它收集输入类超类中提到的所有值限制的填充程序,然后获取每个填充程序的所有子类,这些将是与这些限制兼容的功能类。