早上好,我正在使用OWL API,并且正在尝试检索owl:Restriction内部的数据。例如,我正在使用披萨本体,我想获取onProperty和someValuesFrom的数据,这是
<owl:Class rdf:about="#American">
<rdfs:label xml:lang="pt">Americana</rdfs:label>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasTopping"/>
<owl:someValuesFrom rdf:resource="#TomatoTopping"/>
</owl:Restriction>
</rdfs:subClassOf>
...
</owl:Class>
因此,如果我拥有美国的OWLClass,如何获得OwlRestrictions及其适用属性的列表。类似于American-> subClassOf-> Restriction-> onProperty-> hasTopping。有没有一种创建包含所有这些步骤的数据结构的方法?
最佳答案
我不确定“步骤”到底是什么意思,但是我认为您有一个类,并且需要适用于子类的所有限制。但是,如果您还希望将限制应用于等效类,将会发生什么?因此,我想写一个更笼统的书。开始:
PrefixManager pm= new DefaultPrefixManager("http://www.co-ode.org/ontologies/pizza/pizza.owl#");
OWLClass american=factory.getOWLClass("American", pm);
Set<OWLClassAxiom> tempAx=localOntology.getAxioms(american);
for(OWLClassAxiom ax: tempAx){
for(OWLClassExpression nce:ax.getNestedClassExpressions())
if(nce.getClassExpressionType()!=ClassExpressionType.OWL_CLASS)
System.out.println(ax);
}
关于java - 使用OWL API检索owl:限制,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28968495/