From 537277d9ce3ba2aff1d66d1b19dbb77e17be0d48 Mon Sep 17 00:00:00 2001 From: Federico Igne Date: Wed, 18 May 2022 15:09:37 +0100 Subject: build(hermit): bump HermiT v1.3.8.1 -> v1.4.5.519 This commit contains a "hacky" fix for KARMA2 to access some (now private) field in the OWLAxioms class. The code is now using Java Reflections to turn a private field public and gain access to internal resources. --- src/main/java/uk/ac/ox/cs/pagoda/reasoner/HermiTReasoner.java | 3 ++- .../java/uk/ac/ox/cs/pagoda/reasoner/full/HermitChecker.java | 9 +++++---- src/main/java/uk/ac/ox/cs/pagoda/rules/LowerDatalogProgram.java | 5 +++-- src/main/java/uk/ac/ox/cs/pagoda/rules/Program.java | 2 +- 4 files changed, 11 insertions(+), 8 deletions(-) (limited to 'src/main/java/uk') diff --git a/src/main/java/uk/ac/ox/cs/pagoda/reasoner/HermiTReasoner.java b/src/main/java/uk/ac/ox/cs/pagoda/reasoner/HermiTReasoner.java index ac62488..ebf1960 100644 --- a/src/main/java/uk/ac/ox/cs/pagoda/reasoner/HermiTReasoner.java +++ b/src/main/java/uk/ac/ox/cs/pagoda/reasoner/HermiTReasoner.java @@ -1,5 +1,6 @@ package uk.ac.ox.cs.pagoda.reasoner; +import org.semanticweb.HermiT.Configuration; import org.semanticweb.HermiT.Reasoner; import org.semanticweb.owlapi.model.*; import uk.ac.ox.cs.JRDFox.model.Individual; @@ -63,7 +64,7 @@ class HermiTReasoner extends QueryReasoner { factory = onto.getOWLOntologyManager().getOWLDataFactory(); roller = new QueryRoller(factory); - hermit = new Reasoner(onto); + hermit = new Reasoner(new Configuration(), onto); return isConsistent(); } diff --git a/src/main/java/uk/ac/ox/cs/pagoda/reasoner/full/HermitChecker.java b/src/main/java/uk/ac/ox/cs/pagoda/reasoner/full/HermitChecker.java index 3f3c22d..fb7e062 100644 --- a/src/main/java/uk/ac/ox/cs/pagoda/reasoner/full/HermitChecker.java +++ b/src/main/java/uk/ac/ox/cs/pagoda/reasoner/full/HermitChecker.java @@ -1,5 +1,6 @@ package uk.ac.ox.cs.pagoda.reasoner.full; +import org.semanticweb.HermiT.Configuration; import org.semanticweb.HermiT.Reasoner; import org.semanticweb.HermiT.model.DLClause; import org.semanticweb.HermiT.model.Term; @@ -57,7 +58,7 @@ public class HermitChecker extends Checker { // record = other.record; } - hermit = new Reasoner(ontology); + hermit = new Reasoner(new Configuration(), ontology); } public HermitChecker(OWLOntology ontology, QueryRecord record, boolean toCheck) { @@ -174,12 +175,12 @@ public class HermitChecker extends Checker { addTopAndBotTuple(topAxioms, botAxioms); manager.addAxioms(ontology, topAxioms); manager.addAxioms(ontology, botAxioms); - hermit = new Reasoner(ontology); + hermit = new Reasoner(new Configuration(), ontology); boolean topValid = true; if(!hermit.isConsistent() || topAnswerTuple != null && (topValid = check(topAnswerTuple))) { hermit.dispose(); manager.removeAxioms(ontology, topAxioms); - hermit = new Reasoner(ontology); + hermit = new Reasoner(new Configuration(), ontology); } else { if(!topValid) tag = -1; @@ -187,7 +188,7 @@ public class HermitChecker extends Checker { } } else - hermit = new Reasoner(ontology); + hermit = new Reasoner(new Configuration(), ontology); } private void addTopAndBotTuple(Set topAxioms, Set botAxioms) { diff --git a/src/main/java/uk/ac/ox/cs/pagoda/rules/LowerDatalogProgram.java b/src/main/java/uk/ac/ox/cs/pagoda/rules/LowerDatalogProgram.java index a2676e8..2610652 100644 --- a/src/main/java/uk/ac/ox/cs/pagoda/rules/LowerDatalogProgram.java +++ b/src/main/java/uk/ac/ox/cs/pagoda/rules/LowerDatalogProgram.java @@ -1,6 +1,7 @@ package uk.ac.ox.cs.pagoda.rules; import org.apache.commons.io.FilenameUtils; +import org.semanticweb.HermiT.Configuration; import org.semanticweb.HermiT.Reasoner; import org.semanticweb.HermiT.model.*; import org.semanticweb.owlapi.model.*; @@ -149,7 +150,7 @@ class ClassifyThread extends Thread { public void run() { ontology = m_program.getOntology(); try { - hermitReasoner = new Reasoner(ontology); + hermitReasoner = new Reasoner(new Configuration(), ontology); Timer t = new Timer(); hermitReasoner.classifyClasses(); Utility.logInfo("HermiT classification done: " + t.duration()); @@ -235,4 +236,4 @@ class ClassifyThread extends Thread { private Atom getAtom(OWLClass c) { return Atom.create(AtomicConcept.create(c.toStringID()), X); } -} \ No newline at end of file +} diff --git a/src/main/java/uk/ac/ox/cs/pagoda/rules/Program.java b/src/main/java/uk/ac/ox/cs/pagoda/rules/Program.java index de06f52..22eb9ec 100644 --- a/src/main/java/uk/ac/ox/cs/pagoda/rules/Program.java +++ b/src/main/java/uk/ac/ox/cs/pagoda/rules/Program.java @@ -273,7 +273,7 @@ protected PredicateDependency dependencyGraph; Utility.logInfo("The number of data property range axioms that are ignored: " + noOfDataPropertyRangeAxioms + "(" + noOfAxioms + ")"); DLOntology dlOntology = (DLOntology) clausifier.preprocessAndClausify(filteredOntology, null)[1]; - dlClauses = dlOntology.getDLClauses(); + dlClauses = new HashSet(dlOntology.getDLClauses()); positiveFacts = dlOntology.getPositiveFacts(); } -- cgit v1.2.3