Я пытаюсь проверить онтологию на предмет ее согласованности. Онтология включает только описания отдельных лиц, класс и семантические правила описываются импортированной онтологией.Проверка согласованности и удобочитаемости онтологии с API OWL 4
Я использую метод isConsistenct, который будет правильным выбором.
OWLReasonerFactory reasonerFactory = new StructuralReasonerFactory();
OWLReasoner reasoner = reasonerFactory.createNonBufferingReasoner(mergedOntology);
if(reasoner.isConsistent()){
return "Merged ontology PASSED the consistency test";
}else{
return "Ontology FAILED the consistency test";
}
Что бы правильный подход, чтобы проверить согласованность онтологии, как и Protege 5 применяется при запуске мыслителя?
обновление кода с использованием Пелле
OWLReasonerFactory reasonerFactory = new PelletReasonerFactory();
OWLReasoner reasoner = reasonerFactory.createNonBufferingReasoner(mergedOntology);
String answer = "";
if(reasoner.isConsistent()){
if(reasoner.getUnsatisfiableClasses().getEntitiesMinusBottom().size()>0){
answer = "Merged ontology FAILED satisfiability test. Unsatisfiable classes detected: " + reasoner.getUnsatisfiableClasses().getEntitiesMinusBottom().size();
}
answer = "Merged ontology PASSED the consistency test";
}else{
answer = "Merged ontology FAILED the consistency test, please review the Axioms or debug using Protege";
//FYI an example how to implement a working debugger can be found on sourceforge's OWL API page under Debugger
}
reasoner.dispose();
return answer;
В чем вопрос? Вы можете вычислить несогласованность с этим методом. Если вы хотите получить неудовлетворительные классы, вам нужно использовать другой метод. – Artemis