diff options
| author | RncLsn <rnc.lsn@gmail.com> | 2015-08-14 19:21:26 +0100 |
|---|---|---|
| committer | RncLsn <rnc.lsn@gmail.com> | 2015-08-14 19:21:26 +0100 |
| commit | ae9a6bad58019ef18657568e58f49459fbadc49c (patch) | |
| tree | 104d92748f150dc74c9a0f6d19f328357903857e /src/uk/ac/ox/cs/pagoda/reasoner | |
| parent | 1bfe7e876c16adf73a4effdbe80431c1822bbe93 (diff) | |
| download | ACQuA-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.java | 39 | ||||
| -rw-r--r-- | src/uk/ac/ox/cs/pagoda/reasoner/light/RDFoxTripleManager.java | 9 |
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 | } |
