从 OWL Ontology 中获取部分 class

Get part-Of class from OWL Ontology

我有一个ontology用protègè做的,我定义了一个ObjectProperty命名的part-Of。

我正在解析一个 OWLClass 试图找出子 class 是否是 part-Of 已解析的 class。在这种情况下,当子classes、ANAPHE具有以下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;
    }

其中targetAt_HomeOWLClass,但是方法继续return一个空NodeSet,所以这意味着At_Home 没有任何部分,即使 ANAPHE 是它的部分。
想要的结果应该是 NodeSetOWLClass "ANA" 和 "PHE"

df.getOWLObjectProperty("part-Of");

这就是问题所在。您需要使用 属性 的完整 IRI,而不仅仅是片段;这与您 ontology.

中所述的 属性 不匹配