Как отключить вывод в hermiT

Я использую OWL-Api и модуль hermiT, пытаясь получить подклассы partOf с помощью hermiT, он возвращает правильный результат, поэтому подклассы 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());;
                }
            }

На этом изображении представлен фактический результат операции. данный результат

В этом показывается результат, который мне нужен. желаемый результат

Есть ли способ отключить механизм вывода hermiT только для этой операции?

1 ответ

Решение
hermit.getSubClasses(domain, false);

Измените это на

hermit.getSubClasses(domain, true);

Чтобы получить только прямые подклассы.

Другие вопросы по тегам