如何在给定其他类的情况下检索由对象属性连接的所有类?

时间:2015-08-17 10:24:44

标签: rdf semantic-web owl owl-api reasoning

假设本体中有几个类定义:

<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和推理器可用于查询。

1 个答案:

答案 0 :(得分:2)

编写一个OWLObjectVisitor,它收集输入类超类中提到的所有值限制的填充程序,然后获取每个填充程序的所有子类,这些将是与这些限制兼容的功能类。