如何禁用隐士推理

问题描述 投票:0回答:1

我使用OWL-API和隐士推理,试图检索使用隐士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

有没有一种方法来禁用隐士推理引擎只为这个操作?

owl-api inference hermit
1个回答
1
投票
hermit.getSubClasses(domain, false);

更改为

hermit.getSubClasses(domain, true);

要检索只有直接子类。

© www.soinside.com 2019 - 2024. All rights reserved.