diff options
Diffstat (limited to 'src/uk/ac/ox/cs/pagoda/reasoner/MyQueryReasoner.java')
| -rw-r--r-- | src/uk/ac/ox/cs/pagoda/reasoner/MyQueryReasoner.java | 39 |
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"); |
