aboutsummaryrefslogtreecommitdiff
path: root/src/uk/ac/ox/cs/pagoda/reasoner/MyQueryReasoner.java
diff options
context:
space:
mode:
authorRncLsn <rnc.lsn@gmail.com>2015-07-07 15:03:46 +0100
committerRncLsn <rnc.lsn@gmail.com>2015-07-07 15:03:46 +0100
commit77dd8849f8e79d324c8e12cd699912f284a8fdba (patch)
treed2c4aec34b00534ab9bf8bfb20008a4edd19fbaa /src/uk/ac/ox/cs/pagoda/reasoner/MyQueryReasoner.java
parentefeb8f8b0335c242aafe4a1e9a2371cdac1d18ad (diff)
downloadACQuA-77dd8849f8e79d324c8e12cd699912f284a8fdba.tar.gz
ACQuA-77dd8849f8e79d324c8e12cd699912f284a8fdba.zip
Small changes.
Diffstat (limited to 'src/uk/ac/ox/cs/pagoda/reasoner/MyQueryReasoner.java')
-rw-r--r--src/uk/ac/ox/cs/pagoda/reasoner/MyQueryReasoner.java29
1 files changed, 19 insertions, 10 deletions
diff --git a/src/uk/ac/ox/cs/pagoda/reasoner/MyQueryReasoner.java b/src/uk/ac/ox/cs/pagoda/reasoner/MyQueryReasoner.java
index b419289..6b1921c 100644
--- a/src/uk/ac/ox/cs/pagoda/reasoner/MyQueryReasoner.java
+++ b/src/uk/ac/ox/cs/pagoda/reasoner/MyQueryReasoner.java
@@ -43,7 +43,7 @@ class MyQueryReasoner extends QueryReasoner {
43 private Collection<String> predicatesWithGap = null; 43 private Collection<String> predicatesWithGap = null;
44 private ConsistencyStatus isConsistent; 44 private ConsistencyStatus isConsistent;
45 private ConsistencyManager consistency = new ConsistencyManager(this); 45 private ConsistencyManager consistency = new ConsistencyManager(this);
46 private int relevantOntologiesCounter = 0; 46// private int relevantOntologiesCounter = 0;
47 47
48 public MyQueryReasoner() { 48 public MyQueryReasoner() {
49 setup(true); 49 setup(true);
@@ -190,10 +190,10 @@ class MyQueryReasoner extends QueryReasoner {
190 190
191 OWLOntology relevantOntologySubset = extractRelevantOntologySubset(queryRecord); 191 OWLOntology relevantOntologySubset = extractRelevantOntologySubset(queryRecord);
192 192
193 queryRecord.saveRelevantOntology("/home/alessandro/Desktop/test-relevant-ontology-"+relevantOntologiesCounter+".owl"); 193// queryRecord.saveRelevantOntology("/home/alessandro/Desktop/test-relevant-ontology-"+relevantOntologiesCounter+".owl");
194 relevantOntologiesCounter++; 194// relevantOntologiesCounter++;
195 195
196 Utility.logInfo("Summarisation..."); 196 Utility.logInfo(">> Summarisation <<");
197 HermitSummaryFilter summarisedChecker = new HermitSummaryFilter(queryRecord, properties.getToCallHermiT()); 197 HermitSummaryFilter summarisedChecker = new HermitSummaryFilter(queryRecord, properties.getToCallHermiT());
198 if(summarisedChecker.check(queryRecord.getGapAnswers()) == 0) { 198 if(summarisedChecker.check(queryRecord.getGapAnswers()) == 0) {
199 summarisedChecker.dispose(); 199 summarisedChecker.dispose();
@@ -206,7 +206,7 @@ class MyQueryReasoner extends QueryReasoner {
206 return; 206 return;
207 } 207 }
208 208
209 Utility.logInfo("Full reasoning..."); 209 Utility.logInfo(">> Full reasoning <<");
210 Timer t = new Timer(); 210 Timer t = new Timer();
211 summarisedChecker.checkByFullReasoner(queryRecord.getGapAnswers()); 211 summarisedChecker.checkByFullReasoner(queryRecord.getGapAnswers());
212 Utility.logDebug("Total time for full reasoner: " + t.duration()); 212 Utility.logDebug("Total time for full reasoner: " + t.duration());
@@ -276,11 +276,16 @@ class MyQueryReasoner extends QueryReasoner {
276 Tuple<String> extendedQuery, Step step) { 276 Tuple<String> extendedQuery, Step step) {
277 t.reset(); 277 t.reset();
278 278
279 Utility.logDebug("First query type");
279 queryUpperBound(upperStore, queryRecord, queryRecord.getQueryText(), queryRecord.getAnswerVariables()); 280 queryUpperBound(upperStore, queryRecord, queryRecord.getQueryText(), queryRecord.getAnswerVariables());
280 if(!queryRecord.isProcessed() && !queryRecord.getQueryText().equals(extendedQuery.get(0))) 281 if(!queryRecord.isProcessed() && !queryRecord.getQueryText().equals(extendedQuery.get(0))) {
282 Utility.logDebug("Second query type");
281 queryUpperBound(upperStore, queryRecord, extendedQuery.get(0), queryRecord.getAnswerVariables()); 283 queryUpperBound(upperStore, queryRecord, extendedQuery.get(0), queryRecord.getAnswerVariables());
282 if(!queryRecord.isProcessed() && queryRecord.hasNonAnsDistinguishedVariables()) 284 }
285 if(!queryRecord.isProcessed() && queryRecord.hasNonAnsDistinguishedVariables()) {
286 Utility.logDebug("Third query type");
283 queryUpperBound(upperStore, queryRecord, extendedQuery.get(1), queryRecord.getDistinguishedVariables()); 287 queryUpperBound(upperStore, queryRecord, extendedQuery.get(1), queryRecord.getDistinguishedVariables());
288 }
284 289
285 queryRecord.addProcessingTime(step, t.duration()); 290 queryRecord.addProcessingTime(step, t.duration());
286 if(queryRecord.isProcessed()) { 291 if(queryRecord.isProcessed()) {
@@ -294,6 +299,9 @@ class MyQueryReasoner extends QueryReasoner {
294 * Returns the part of the ontology relevant for Hermit, while computing the bound answers. 299 * Returns the part of the ontology relevant for Hermit, while computing the bound answers.
295 */ 300 */
296 private boolean queryLowerAndUpperBounds(QueryRecord queryRecord) { 301 private boolean queryLowerAndUpperBounds(QueryRecord queryRecord) {
302
303 Utility.logInfo(">> Base bounds <<");
304
297 AnswerTuples rlAnswer = null, elAnswer = null; 305 AnswerTuples rlAnswer = null, elAnswer = null;
298 306
299 t.reset(); 307 t.reset();
@@ -341,7 +349,7 @@ class MyQueryReasoner extends QueryReasoner {
341 } 349 }
342 350
343 private OWLOntology extractRelevantOntologySubset(QueryRecord queryRecord) { 351 private OWLOntology extractRelevantOntologySubset(QueryRecord queryRecord) {
344 Utility.logInfo("Extracting relevant ontology-subset..."); 352 Utility.logInfo(">> Relevant ontology-subset extraction <<");
345 353
346 t.reset(); 354 t.reset();
347 355
@@ -371,7 +379,7 @@ class MyQueryReasoner extends QueryReasoner {
371 } 379 }
372 380
373 private boolean querySkolemisedRelevantSubset(OWLOntology relevantSubset, QueryRecord queryRecord) { 381 private boolean querySkolemisedRelevantSubset(OWLOntology relevantSubset, QueryRecord queryRecord) {
374 Utility.logInfo("Evaluating semi-Skolemised relevant upper store"); 382 Utility.logInfo(">> Semi-Skolemisation <<");
375 t.reset(); 383 t.reset();
376 384
377 DatalogProgram relevantProgram = new DatalogProgram(relevantSubset, false); // toClassify is false 385 DatalogProgram relevantProgram = new DatalogProgram(relevantSubset, false); // toClassify is false
@@ -382,7 +390,7 @@ class MyQueryReasoner extends QueryReasoner {
382 relevantStore.importDataFromABoxOf(relevantSubset); 390 relevantStore.importDataFromABoxOf(relevantSubset);
383 String relevantOriginalMarkProgram = OWLHelper.getOriginalMarkProgram(relevantSubset); 391 String relevantOriginalMarkProgram = OWLHelper.getOriginalMarkProgram(relevantSubset);
384 392
385 int queryDependentMaxTermDepth = 1; // TODO make it dynamic 393 int queryDependentMaxTermDepth = 3; // TODO make it dynamic
386 relevantStore.materialise("Mark original individuals", relevantOriginalMarkProgram); 394 relevantStore.materialise("Mark original individuals", relevantOriginalMarkProgram);
387 int materialisationTag = relevantStore.materialiseSkolemly(relevantProgram, null, 395 int materialisationTag = relevantStore.materialiseSkolemly(relevantProgram, null,
388 queryDependentMaxTermDepth); 396 queryDependentMaxTermDepth);
@@ -396,6 +404,7 @@ class MyQueryReasoner extends QueryReasoner {
396 return false; 404 return false;
397 } 405 }
398 406
407 Utility.logInfo("Querying semi-Skolemised upper store...");
399 boolean isFullyProcessed = queryUpperStore(relevantStore, queryRecord, 408 boolean isFullyProcessed = queryUpperStore(relevantStore, queryRecord,
400 queryRecord.getExtendedQueryText(), 409 queryRecord.getExtendedQueryText(),
401 Step.SKOLEM_UPPER_BOUND); 410 Step.SKOLEM_UPPER_BOUND);