Моя цель состоит в том, чтобы охватить отдельно утвержденные и выведенные аксиомы с помощью OWLAPI, иными словами, проводится различие между уже присутствующими аксиомами в онтологии и теми, которые не присутствуют, а просто выводятся мыслителем.
Например:
public void printHierarchy(OWLReasoner r, OWLClass clazz, int level, Set<OWLClass> visited) throws OWLException {
//Only print satisfiable classes to skip Nothing
if (!visited.contains(clazz) && reasoner.isSatisfiable(clazz)) {
visited.add(clazz);
for (int i = 0; i < level * 4; i++) {
System.out.print(" ");
}
System.out.println(labelFor(clazz, r.getRootOntology()));
// Find the children and recurse
NodeSet<OWLClass> classes = r.getSubClasses(clazz, true);
for (OWLClass child : classes.getFlattened()) {
printHierarchy(r, child, level + 1);
}
}
}
функция getSubClasses возвращает все подклассы класса OWL, не делая различий, упоминается ли он в онтологии или нет.
Я также могу выполнить ручную проверку, но это может быть довольно дорого.
Итак, мой вопрос заключается в следующем: есть ли встроенная функция или обходной путь для захвата отдельно утвержденных из выведенных аксиом?