使用 OWL API 检索 owl:restrictions
Retrieve owl:restrictions using the OWL API
早上好,我正在使用 OWL API,我正在尝试检索 owl:Restriction 中的数据。例如,我正在使用披萨 ontology,我想获取 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。有没有办法创建一个包含所有这些步骤的数据结构?
我不确定您所说的 "steps" 到底是什么意思,但我认为您有一个 class 并且您需要适用于子 class 的所有限制。但是,如果您还希望将限制应用于等效的 classes,会发生什么情况?因此,我想写一个更通用的。这里是:
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);
}
早上好,我正在使用 OWL API,我正在尝试检索 owl:Restriction 中的数据。例如,我正在使用披萨 ontology,我想获取 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。有没有办法创建一个包含所有这些步骤的数据结构?
我不确定您所说的 "steps" 到底是什么意思,但我认为您有一个 class 并且您需要适用于子 class 的所有限制。但是,如果您还希望将限制应用于等效的 classes,会发生什么情况?因此,我想写一个更通用的。这里是:
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);
}