我試圖檢查本體的一致性。本體只包含個體的描述,類和語義規則由導入的本體描述。使用OWL API檢查本體一致性和可接受性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