Я хотел использовать MakePrimitiveSubClassesMutuallyDisjoint
, чтобы все подклассы класса не пересекались. Но с моим кодом этого не происходит:
OWLClass owlClass = createClass(concept.getId());
// Here I recursively create the subclasses
processByLevel(skos, owlClass, concept.getNarrowerConcepts());
// But at this point all the subclass should have been created and set as subclasses
MakePrimitiveSubClassesMutuallyDisjoint primitive = new MakePrimitiveSubClassesMutuallyDisjoint(dataFactory, owlClass, ontology);
manager.saveOntology(ontology);
Я не смог найти пример того, как он используется, и я не уверен, что пропускаю шаг с manager
, может быть (что-то вроде addAxiom
, но для этого).
Я не могу отладить внутри метода, но я проверил, были ли подклассы установлены после рекурсии, вызвав это:
ontology.getSubClassAxiomsForSuperClass(owlClass).size();
И результат ожидаемый.
Но, тем не менее, я ничего не вижу в результирующей онтологии, утверждающей, что классы не пересекаются.