1

我有一个用 protègè 制作的本体,我定义了一个ObjectProperty命名的 part-Of。 在此处输入图像描述

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

在哪里targetAt_Home OWLClass但该方法继续返回一个空NodeSet,所以这意味着At_Home即使ANAPHE是它的部分,也没有部分。
想要的结果应该是NodeSet带有OWLClass“ANA”和“PHE”的

4

1 回答 1

1

df.getOWLObjectProperty("part-Of");

这就是问题。您需要使用您的财产的完整 IRI,而不仅仅是片段;这与您的本体中所述的属性不匹配。

于 2019-03-14T19:22:30.883 回答