Я использовал 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() + " ";
}
}
}
}
Просьба поделиться с вами кодом, с которым вы столкнулись. –
Я поделился кодом. Он работает, но результат не такой, как я ожидал (например, Hermit in Protege). Этот класс Baby имеет три подкласса. Я создал экземпляр Baby, но он должен быть признан экземпляром одного из подклассов разумным, но этот код говорит, что подклассы не имеют своих экземпляров. – melnej