From 589e589ecbd614910b44d8c745ec4a38a695d690 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maxime=20Lefran=C3=A7ois?= Date: Mon, 15 Jun 2020 09:57:42 +0200 Subject: [PATCH] solved exception when even the OWL reasoner doesn't want to read a certain ontology --- .../saref/checkers/Clause_9_6_4_Checker.java | 44 ++++++++++--------- .../messages/Clause_9_6_4_Checker.properties | 1 + 2 files changed, 25 insertions(+), 20 deletions(-) diff --git a/src/main/java/fr/emse/gitlab/saref/checkers/Clause_9_6_4_Checker.java b/src/main/java/fr/emse/gitlab/saref/checkers/Clause_9_6_4_Checker.java index bd8e711..04e9f52 100644 --- a/src/main/java/fr/emse/gitlab/saref/checkers/Clause_9_6_4_Checker.java +++ b/src/main/java/fr/emse/gitlab/saref/checkers/Clause_9_6_4_Checker.java @@ -52,7 +52,7 @@ import fr.emse.gitlab.saref.managers.RepositoryManager; public class Clause_9_6_4_Checker extends AbstractClauseChecker { private static enum MESSAGE { - profile, consistent, satisfiable; + profile, consistent, satisfiable, exception; } private final SAREFExample example; @@ -89,25 +89,29 @@ public class Clause_9_6_4_Checker extends AbstractClauseChecker { OntologyManager ontologyManager = pipeline.getOntologyManager(); - Set> incExplanation = ontologyManager.getInconsistenceExplanations(ontology, errorLogger); - if (incExplanation != null && !incExplanation.isEmpty()) { - String explanation = incExplanation.stream().map(e -> e.getAxioms().toString()) - .collect(Collectors.joining("\n- ", "\n\n- ", "\n\n")); - logError(getMessage(MESSAGE.consistent, explanation)); - } else { - ExplanationGenerator generator = ontologyManager.getExplanationGenerator(ontology); - ontology.classesInSignature(Imports.INCLUDED).forEach(c -> { - if(c.isOWLNothing()) { - return; - } - Set> incExplanation2 = ontologyManager.getIncoherenceExplanations(generator, c); - if (!incExplanation2.isEmpty()) { - String explanation = incExplanation2.stream().map(e -> e.getAxioms().toString()) - .collect(Collectors.joining("\n- ", "\n\n- ", "\n\n")); - logError(getMessage(MESSAGE.satisfiable, c, explanation)); - - } - }); + try { + Set> incExplanation = ontologyManager.getInconsistenceExplanations(ontology, errorLogger); + if (incExplanation != null && !incExplanation.isEmpty()) { + String explanation = incExplanation.stream().map(e -> e.getAxioms().toString()) + .collect(Collectors.joining("\n- ", "\n\n- ", "\n\n")); + logError(getMessage(MESSAGE.consistent, explanation)); + } else { + ExplanationGenerator generator = ontologyManager.getExplanationGenerator(ontology); + ontology.classesInSignature(Imports.INCLUDED).forEach(c -> { + if(c.isOWLNothing()) { + return; + } + Set> incExplanation2 = ontologyManager.getIncoherenceExplanations(generator, c); + if (!incExplanation2.isEmpty()) { + String explanation = incExplanation2.stream().map(e -> e.getAxioms().toString()) + .collect(Collectors.joining("\n- ", "\n\n- ", "\n\n")); + logError(getMessage(MESSAGE.satisfiable, c, explanation)); + + } + }); + } + } catch (Exception ex) { + logError(getMessage(MESSAGE.exception), ex); } } diff --git a/src/main/resources/messages/Clause_9_6_4_Checker.properties b/src/main/resources/messages/Clause_9_6_4_Checker.properties index 9714a79..74f8131 100644 --- a/src/main/resources/messages/Clause_9_6_4_Checker.properties +++ b/src/main/resources/messages/Clause_9_6_4_Checker.properties @@ -1,3 +1,4 @@ profile=The dataset in the example document shall satisfy the OWL2 DL profile. Violations are: %s consistent=The dataset in the example document shall be Consistent. Violations are: %s satisfiable=OWL Class %s declared in the example document should be satisfiable. Violations are: %s +exception=An exception occurred while trying to reason with the ontology. -- GitLab