如何在HermiT中禁用推理

时间:2019-02-04 14:05:28

标签: owl-api inference hermit

我正在使用OWL-Api和hermiT推理程序,同时尝试使用hermiT检索partOf子类时,它会返回正确的结果,因此partOf子类也将返回推断出的子类(我不需要) )。

这是用于检索partOf子类的函数:

            //ricerca delle classi che hanno come parti quella attuale
            System.out.println("Questa classe è parte di: ");
            OWLClassExpression domain = df.getOWLObjectIntersectionOf((Stream<? extends OWLClassExpression>) ontologia.objectPropertyDomainAxioms(partOf));
            NodeSet<OWLClass> subClassesInDomain = hermit.getSubClasses(domain, false);
            if(subClassesInDomain.isEmpty()) {
                System.out.println("\tQuesta classe non è parte di nessun'altra");
            }
            else {
                for(Node<OWLClass> parteDi : subClassesInDomain) {
                    OWLClass classe2 = parteDi.getRepresentativeElement();
                    System.out.println("\t"+ classe2.getIRI().getFragment());;
                }
            }

在此图像中,提供了操作的实际结果。 given result

在此显示我需要的结果。 wanted result

是否有一种方法只能为此操作禁用hermiT推理引擎?

1 个答案:

答案 0 :(得分:1)

hermit.getSubClasses(domain, false);

将此更改为

hermit.getSubClasses(domain, true);

仅检索直接子类。