从 OWL Ontology 中获取部分 class
Get part-Of class from OWL Ontology
我有一个ontology用protègè做的,我定义了一个ObjectProperty
命名的part-Of。
我正在解析一个 OWLClass
试图找出子 class 是否是 part-Of
已解析的 class。在这种情况下,当子classes、ANA
和PHE
具有以下subclass of
签名时,我正在解析At_Home
,如图中所示
我已经尝试过:
OWLDataFactory df = manager.getOWLDataFactory();
OWLObjectProperty partOf = df.getOWLObjectProperty("part-Of");
OWLClassExpression c = df.getOWLObjectSomeValuesFrom(partOf, target);
NodeSet<OWLClass> subClasses = hermit.getSubClasses(c, true);
if(subClasses.isEmpty()) {
//System.out.println("\tQuesta classe non ha parti");
res[0] = null;
}
else {
for(Node<OWLClass> parte : subClasses) {
risultato.add(parte.getRepresentativeElement().getIRI().getFragment());
}
res[0] = risultato;
}
其中target
是At_Home
OWLClass
,但是方法继续return一个空NodeSet
,所以这意味着At_Home
没有任何部分,即使 ANA
和 PHE
是它的部分。
想要的结果应该是 NodeSet
与 OWLClass
"ANA" 和 "PHE"
df.getOWLObjectProperty("part-Of");
这就是问题所在。您需要使用 属性 的完整 IRI,而不仅仅是片段;这与您 ontology.
中所述的 属性 不匹配
我有一个ontology用protègè做的,我定义了一个ObjectProperty
命名的part-Of。
我正在解析一个 OWLClass
试图找出子 class 是否是 part-Of
已解析的 class。在这种情况下,当子classes、ANA
和PHE
具有以下subclass of
签名时,我正在解析At_Home
,如图中所示
OWLDataFactory df = manager.getOWLDataFactory();
OWLObjectProperty partOf = df.getOWLObjectProperty("part-Of");
OWLClassExpression c = df.getOWLObjectSomeValuesFrom(partOf, target);
NodeSet<OWLClass> subClasses = hermit.getSubClasses(c, true);
if(subClasses.isEmpty()) {
//System.out.println("\tQuesta classe non ha parti");
res[0] = null;
}
else {
for(Node<OWLClass> parte : subClasses) {
risultato.add(parte.getRepresentativeElement().getIRI().getFragment());
}
res[0] = risultato;
}
其中target
是At_Home
OWLClass
,但是方法继续return一个空NodeSet
,所以这意味着At_Home
没有任何部分,即使 ANA
和 PHE
是它的部分。
想要的结果应该是 NodeSet
与 OWLClass
"ANA" 和 "PHE"
df.getOWLObjectProperty("part-Of");
这就是问题所在。您需要使用 属性 的完整 IRI,而不仅仅是片段;这与您 ontology.
中所述的 属性 不匹配