我有一个用protègè构成的本体,我定义了一个名为part-Of的ObjectProperty
。
我正在解析OWLClass
,试图找出子类是否为part-Of
所解析的类。在这种情况下,当子类At_Home
和ANA
具有以下PHE
签名时,我正在解析subclass of
我已经尝试过:
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
,但是该方法继续返回空的NodeSet
,因此,即使At_Home
也没有任何部分ANA
和PHE
是它的组成部分。
所需结果应为NodeSet
,其中包含OWLClass
“ ANA”和“ PHE”
答案 0 :(得分:1)
df.getOWLObjectProperty("part-Of");
这是问题所在。您需要使用资产的完整IRI,而不仅仅是片段。这与您的本体中所述的属性不匹配。