aboutsummaryrefslogtreecommitdiff
path: root/src/uk/ac/ox/cs/pagoda/reasoner
diff options
context:
space:
mode:
authorRncLsn <rnc.lsn@gmail.com>2015-08-14 19:21:26 +0100
committerRncLsn <rnc.lsn@gmail.com>2015-08-14 19:21:26 +0100
commitae9a6bad58019ef18657568e58f49459fbadc49c (patch)
tree104d92748f150dc74c9a0f6d19f328357903857e /src/uk/ac/ox/cs/pagoda/reasoner
parent1bfe7e876c16adf73a4effdbe80431c1822bbe93 (diff)
downloadACQuA-ae9a6bad58019ef18657568e58f49459fbadc49c.tar.gz
ACQuA-ae9a6bad58019ef18657568e58f49459fbadc49c.zip
Incremental Skolemised store (not working).
Diffstat (limited to 'src/uk/ac/ox/cs/pagoda/reasoner')
-rw-r--r--src/uk/ac/ox/cs/pagoda/reasoner/MyQueryReasoner.java39
-rw-r--r--src/uk/ac/ox/cs/pagoda/reasoner/light/RDFoxTripleManager.java9
2 files changed, 31 insertions, 17 deletions
diff --git a/src/uk/ac/ox/cs/pagoda/reasoner/MyQueryReasoner.java b/src/uk/ac/ox/cs/pagoda/reasoner/MyQueryReasoner.java
index 71d5752..a393474 100644
--- a/src/uk/ac/ox/cs/pagoda/reasoner/MyQueryReasoner.java
+++ b/src/uk/ac/ox/cs/pagoda/reasoner/MyQueryReasoner.java
@@ -396,24 +396,31 @@ class MyQueryReasoner extends QueryReasoner {
396 relevantStore.importDataFromABoxOf(relevantSubset); 396 relevantStore.importDataFromABoxOf(relevantSubset);
397 String relevantOriginalMarkProgram = OWLHelper.getOriginalMarkProgram(relevantSubset); 397 String relevantOriginalMarkProgram = OWLHelper.getOriginalMarkProgram(relevantSubset);
398 398
399 int queryDependentMaxTermDepth = properties.getSkolemDepth();
400 relevantStore.materialise("Mark original individuals", relevantOriginalMarkProgram); 399 relevantStore.materialise("Mark original individuals", relevantOriginalMarkProgram);
401 int materialisationTag = relevantStore.materialiseSkolemly(relevantProgram, null,
402 queryDependentMaxTermDepth);
403 queryRecord.addProcessingTime(Step.SKOLEM_UPPER_BOUND, t.duration());
404 if(materialisationTag == -1) {
405 throw new Error("A consistent ontology has turned out to be " +
406 "inconsistent in the Skolemises-relevant-upper-store");
407 }
408 else if(materialisationTag != 1) {
409 Utility.logInfo("Semi-Skolemised relevant upper store cannot be employed");
410 return false;
411 }
412 400
413 Utility.logInfo("Querying semi-Skolemised upper store..."); 401 boolean isFullyProcessed = false;
414 boolean isFullyProcessed = queryUpperStore(relevantStore, queryRecord, 402 for (int currentMaxTermDepth = 1;
415 queryRecord.getExtendedQueryText(), 403 currentMaxTermDepth <= properties.getSkolemDepth() && !isFullyProcessed; currentMaxTermDepth++) {
416 Step.SKOLEM_UPPER_BOUND); 404
405 Utility.logInfo("Trying with maximum depth " + currentMaxTermDepth);
406
407 int materialisationTag = relevantStore.materialiseSkolemly(relevantProgram, null,
408 currentMaxTermDepth);
409 queryRecord.addProcessingTime(Step.SKOLEM_UPPER_BOUND, t.duration());
410 if(materialisationTag == -1) {
411 throw new Error("A consistent ontology has turned out to be " +
412 "inconsistent in the Skolemises-relevant-upper-store");
413 }
414 else if(materialisationTag != 1) {
415 Utility.logInfo("Semi-Skolemised relevant upper store cannot be employed");
416 return false;
417 }
418
419 Utility.logInfo("Querying semi-Skolemised upper store...");
420 isFullyProcessed = queryUpperStore(relevantStore, queryRecord,
421 queryRecord.getExtendedQueryText(),
422 Step.SKOLEM_UPPER_BOUND);
423 }
417 424
418 relevantStore.dispose(); 425 relevantStore.dispose();
419 Utility.logInfo("Semi-Skolemised relevant upper store has been evaluated"); 426 Utility.logInfo("Semi-Skolemised relevant upper store has been evaluated");
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 85f8ef9..62885be 100644
--- a/src/uk/ac/ox/cs/pagoda/reasoner/light/RDFoxTripleManager.java
+++ b/src/uk/ac/ox/cs/pagoda/reasoner/light/RDFoxTripleManager.java
@@ -93,6 +93,14 @@ public class RDFoxTripleManager {
93 e.printStackTrace(); 93 e.printStackTrace();
94 } 94 }
95 } 95 }
96
97 public void removeTripleByTermIncrementally(Atom atom) {
98 try {
99 m_store.addTriples(getRDFoxTriple(atom), UpdateType.ScheduleForDeletion);
100 } catch (JRDFStoreException e) {
101 e.printStackTrace();
102 }
103 }
96 104
97 public static GroundTerm[] getRDFoxTriple(Atom instance) { 105 public static GroundTerm[] getRDFoxTriple(Atom instance) {
98 if (instance.getArity() == 1) 106 if (instance.getArity() == 1)
@@ -258,5 +266,4 @@ public class RDFoxTripleManager {
258 else 266 else
259 return "\"" + r.m_lexicalForm + "\"^^<" + r.m_datatype.getIRI() + ">"; 267 return "\"" + r.m_lexicalForm + "\"^^<" + r.m_datatype.getIRI() + ">";
260 } 268 }
261
262} 269}