From bd995407098d1b0c79c17a28b0b23a2c24a493c6 Mon Sep 17 00:00:00 2001 From: RncLsn Date: Thu, 14 May 2015 16:56:26 +0100 Subject: It executes. Matching bounds for query 18 of UOBM. It is not stable: several critical fixes to do! --- .../ox/cs/pagoda/reasoner/ConsistencyManager.java | 3 ++ .../ac/ox/cs/pagoda/reasoner/MyQueryReasoner.java | 13 ++++---- .../pagoda/reasoner/light/RDFoxTripleManager.java | 35 +++++++--------------- 3 files changed, 21 insertions(+), 30 deletions(-) (limited to 'src/uk/ac/ox/cs/pagoda/reasoner') diff --git a/src/uk/ac/ox/cs/pagoda/reasoner/ConsistencyManager.java b/src/uk/ac/ox/cs/pagoda/reasoner/ConsistencyManager.java index d179d14..b7a3667 100644 --- a/src/uk/ac/ox/cs/pagoda/reasoner/ConsistencyManager.java +++ b/src/uk/ac/ox/cs/pagoda/reasoner/ConsistencyManager.java @@ -73,6 +73,9 @@ public class ConsistencyManager { AnswerTuples tuples = null; try { tuples = m_reasoner.lazyUpperStore.evaluate(fullQueryRecord.getQueryText(), fullQueryRecord.getAnswerVariables()); + + Utility.logDebug("CheckLazyUpperBound: answerVars=" + fullQueryRecord.getAnswerVariables()); + if (!tuples.isValid()) { Utility.logInfo("There are no contradictions derived in the lazy upper bound materialisation."); return satisfiability(t.duration()); diff --git a/src/uk/ac/ox/cs/pagoda/reasoner/MyQueryReasoner.java b/src/uk/ac/ox/cs/pagoda/reasoner/MyQueryReasoner.java index 233963e..36ea7de 100644 --- a/src/uk/ac/ox/cs/pagoda/reasoner/MyQueryReasoner.java +++ b/src/uk/ac/ox/cs/pagoda/reasoner/MyQueryReasoner.java @@ -33,7 +33,8 @@ public class MyQueryReasoner extends QueryReasoner { DatalogProgram program; BasicQueryEngine rlLowerStore = null; - BasicQueryEngine lazyUpperStore = null; + BasicQueryEngine lazyUpperStore = null; + BasicQueryEngine limitedSkolemUpperStore; // boolean[] namedIndividuals_lazyUpper; OWLOntology elho_ontology; @@ -49,7 +50,6 @@ public class MyQueryReasoner extends QueryReasoner { private Collection predicatesWithGap = null; private Boolean satisfiable; private ConsistencyManager consistency = new ConsistencyManager(this); - BasicQueryEngine limitedSkolemUpperStore; public MyQueryReasoner() { setup(true, true); @@ -163,10 +163,11 @@ public class MyQueryReasoner extends QueryReasoner { } if (tag == -1) return false; } - if (consistency.checkSkolemUpper()) { - satisfiable = true; - Utility.logInfo("time for satisfiability checking: " + t.duration()); - } + // FIXME nullPointerException +// if (consistency.checkSkolemUpper()) { +// satisfiable = true; +// Utility.logInfo("time for satisfiability checking: " + t.duration()); +// } trackingStore.importRDFData(name, datafile); trackingStore.materialise("saturate named individuals", originalMarkProgram); diff --git a/src/uk/ac/ox/cs/pagoda/reasoner/light/RDFoxTripleManager.java b/src/uk/ac/ox/cs/pagoda/reasoner/light/RDFoxTripleManager.java index c2065dc..232bc31 100644 --- a/src/uk/ac/ox/cs/pagoda/reasoner/light/RDFoxTripleManager.java +++ b/src/uk/ac/ox/cs/pagoda/reasoner/light/RDFoxTripleManager.java @@ -1,31 +1,17 @@ package uk.ac.ox.cs.pagoda.reasoner.light; -import java.util.Collection; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.Map; -import java.util.Queue; -import org.semanticweb.HermiT.model.AnnotatedEquality; -import org.semanticweb.HermiT.model.Atom; -import org.semanticweb.HermiT.model.AtomicConcept; -import org.semanticweb.HermiT.model.AtomicRole; -import org.semanticweb.HermiT.model.Constant; -import org.semanticweb.HermiT.model.DLPredicate; -import org.semanticweb.HermiT.model.Equality; -import org.semanticweb.HermiT.model.Individual; -import org.semanticweb.HermiT.model.Inequality; -import org.semanticweb.HermiT.model.Term; -import org.semanticweb.HermiT.model.Variable; - -import uk.ac.ox.cs.pagoda.owl.OWLHelper; -import uk.ac.ox.cs.pagoda.util.Namespace; +import org.semanticweb.HermiT.model.*; import uk.ac.ox.cs.JRDFox.JRDFStoreException; +import uk.ac.ox.cs.JRDFox.model.Datatype; import uk.ac.ox.cs.JRDFox.model.GroundTerm; import uk.ac.ox.cs.JRDFox.store.DataStore; -import uk.ac.ox.cs.JRDFox.model.Datatype; -import uk.ac.ox.cs.JRDFox.store.Dictionary; import uk.ac.ox.cs.JRDFox.store.DataStore.UpdateType; +import uk.ac.ox.cs.JRDFox.store.Dictionary; import uk.ac.ox.cs.JRDFox.store.Resource; +import uk.ac.ox.cs.pagoda.owl.OWLHelper; +import uk.ac.ox.cs.pagoda.util.Namespace; + +import java.util.*; public class RDFoxTripleManager { @@ -183,10 +169,11 @@ public class RDFoxTripleManager { int sizeLimit = 10000; private int getResourceID(Term arg, Map assignment) { - while (termCache.size() > sizeLimit) - termCache.remove(termList.poll()); + // FIXME infinite loop +// while (termCache.size() > sizeLimit) +// termCache.remove(termList.poll()); - if (arg instanceof Variable) return assignment.get((Variable) arg); + if (arg instanceof Variable) return assignment.get(arg); Integer id = null; if ((id = termCache.get(arg)) != null) return id; -- cgit v1.2.3