2016-10-17 1 views
0

Я использовал Protege для создания онтологии. Он состоит из двух базовых классов. Каждый из них имеет три подкласса. Подклассы - это классы с конкретными свойствами объектов и данных. Когда я делаю экземпляр, я делаю его отдельным классом, но с такими свойствами данных, чтобы этот экземпляр также принадлежал некоторому подклассу. Когда я запускаю Отшельник в Протеге, это хорошо сделано. В нем говорится, что мой экземпляр принадлежит классу и подклассу. Но в Jfact в Java и Owlapi, когда я пытаюсь распечатать все экземпляры из подклассов, мой экземпляр принадлежит только суперклассу, а не подклассу. Это о JFact или что-то еще?Получение всех типов, например, с использованием owl api 3.4.10 и jfact 1.2.1

for (OWLClass c : ont.getClassesInSignature()) { 
      if (c.getIRI().getFragment().equals("Baby")) { 
       NodeSet<OWLClass> subClasses = reasoner.getSubClasses(c, false); 

       for (OWLClass subClass : subClasses.getFlattened()) { 
        System.out.println(subClass.getIRI().getFragment()); 


        NodeSet<OWLNamedIndividual> instances = reasoner.getInstances(subClass, false); 

        for (OWLNamedIndividual i : instances.getFlattened()) { 
         System.out.println(i.getIRI().getFragment()); 

         s += i.getIRI().getFragment() + " "; 
        } 
       } 
       } 
      } 
+0

Просьба поделиться с вами кодом, с которым вы столкнулись. –

+0

Я поделился кодом. Он работает, но результат не такой, как я ожидал (например, Hermit in Protege). Этот класс Baby имеет три подкласса. Я создал экземпляр Baby, но он должен быть признан экземпляром одного из подклассов разумным, но этот код говорит, что подклассы не имеют своих экземпляров. – melnej

ответ

0

Похож на ошибку в JFact. Можете ли вы добавить проблему на свой трекер, с версией и онтологией?

Редактировать: JFact 1.2.1 является древним и имеет известные ошибки. Обновите не менее 1.2.4 (и OWLAPI 3.5.5, последний выпуск для версии 3.x).

Если возможно, рекомендую обновить до OWLAPI 4 (для Java 7) или 5 (для Java 8) и ту же самую основную версию для JFact.

+0

Я посылаю вам сообщение на sourceforge. – melnej

+0

Я пробовал, но у меня проблемы с импортом OWLAPI в проект Android. JFact 1.2.4 и те же старые OWL не решили мою проблему вывода подклассов для данных экземпляров. Кроме того, я делаю новый проект для Android, пытаясь использовать Pellet, но успеха с импортом тоже нет. – melnej

+0

Можете ли вы описать неудачу? Если вы хотите, пожалуйста, поднимите проблему на GitHub, чтобы мы могли решить проблему импорта. – Ignazio

Смежные вопросы