Я пытаюсь удалить некоторые буквальные аннотации из онтологии, используя OWLAPI версии 4.0.2 (от Maven)
Для этого я использую класс RemoveOntologyAnnotation и метод менеджера applyChange(). Вот (упрощенный) код, который я использую:
OWLOntologyManager m = OWLManager.createOWLOntologyManager();
OWLOntology ontology = null;
File ontologyFile = new File(ontologyFileName);
try {
ontology = m.loadOntologyFromOntologyDocument(ontologyFile);
} catch (OWLOntologyCreationException e) {
e.printStackTrace();
}
for (OWLClass cls : ontology.getClassesInSignature()) {
for (OWLAnnotation annotation : EntitySearcher.getAnnotations(cls.getIRI(), ontology)) {
if (annotation.getValue() instanceof OWLLiteral) {
RemoveOntologyAnnotation rm = new RemoveOntologyAnnotation(ontology, annotation);
System.out.println(m.applyChange(rm));
}
}
}
Метод applyChange() всегда возвращает «НЕУСПЕШНО». И я не смог найти никакой документации о том, почему удаление аннотации не работает.
NB: нашел некоторые указания здесь http://sourceforge.net/p/owlapi/mailman/message/28203984/ Где это работает