Как отключить вывод в hermiT - PullRequest
0 голосов
/ 04 февраля 2019

Я использую 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 Ответ

0 голосов
/ 05 февраля 2019
hermit.getSubClasses(domain, false);

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

hermit.getSubClasses(domain, true);

Для извлечения только прямых подклассов.

...