aboutsummaryrefslogtreecommitdiff
path: root/src/uk/ac/ox/cs/pagoda/reasoner/MyQueryReasoner.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/uk/ac/ox/cs/pagoda/reasoner/MyQueryReasoner.java')
-rw-r--r--src/uk/ac/ox/cs/pagoda/reasoner/MyQueryReasoner.java39
1 files changed, 23 insertions, 16 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");