Я использовал Protege для создания онтологии. Он состоит из двух базовых классов. Каждый из них имеет три подкласса. Подклассы — это классы с определенными свойствами объектов и данных. Когда я делаю экземпляр, я делаю его отдельным классом, но с такими свойствами данных, чтобы этот экземпляр также принадлежал какому-то подклассу. Когда я запускаю Hermit в Protege, это хорошо. В нем говорится, что мой экземпляр принадлежит к классу и подклассу. Но в Jfact в Java и Owlapi, когда я пытаюсь распечатать все экземпляры из подклассов, мой экземпляр принадлежит только суперклассу, а не подклассу. Это про JFact или что-то еще?
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() + " ";
}
}
}
}