Использование версии 3.х мы использовали, чтобы получить classexpressions как этотКак получить подклассы, supperclasses после обновления OWL API 3.X до 4.X?
cls.getSuperClasses(ont)
Обновление версии 4.X мы стараемся использовать EntitySearcher но возвращать пустые наборы.
EntitySearcher.getSuperClasses(cls, ontology)
Полный код:
public static void test() throws OWLOntologyCreationException {
OWLOntologyManager manager = OWLManager.createOWLOntologyManager();
OWLDataFactory factory = manager.getOWLDataFactory();
OWLOntology ontology;
File file = new File("assets/ontologies/zebra.owl");
ontology = manager.loadOntologyFromOntologyDocument(file);
OWLClass cls = factory.getOWLClass(IRI.create(ontology.getOntologyID().getOntologyIRI() + "#" + "Color"));
Set<OWLClassExpression> parentClasses = collect(EntitySearcher.getSuperClasses(cls, ontology).iterator());
System.out.println(parentClasses.size());
}
public static Set<OWLClassExpression> collect(Iterator<OWLClassExpression> i) {
Set<OWLClassExpression> set = new HashSet<OWLClassExpression>();
while (i.hasNext()) {
OWLClassExpression res = i.next();
set.add(res);
}
return set;
}
Используется онтология zebra.owl/Zebra Риддл или Эйнштейна загадка - DB link
Ожидаемый результат (3.X или Protege):
inverse (has_color) some House
Позор на меня: /. Спасибо. –