Получить часть класса от OWL Ontology - PullRequest
1 голос
/ 13 марта 2019

У меня есть онтология, созданная с помощью protègè, я определил ObjectProperty с именем part-Of. enter image description here

Я анализирую OWLClass, пытаясь выяснить, являются ли подклассы part-Of проанализированным классом. В этом случае я анализирую At_Home, когда подклассы ANA и PHE имеют следующую подпись subclass of, как на этом рисунке. enter image description here Я уже пробовал с:

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;
    }

где target - это At_Home OWLClass, но метод продолжает возвращать пустое NodeSet, поэтому это означает, что At_Home не имеет частей, даже если ANA и PHE являются его частями .
Требуемый результат должен быть NodeSet с OWLClass "ANA" и "PHE"

1 Ответ

1 голос
/ 14 марта 2019

df.getOWLObjectProperty("part-Of");

Это проблема. Вам нужно использовать полный IRI вашей собственности, а не только фрагмент; это не будет соответствовать свойству, указанному в вашей онтологии.

...