aboutsummaryrefslogtreecommitdiff
path: root/src/uk/ac/ox/cs/pagoda/reasoner/MyQueryReasoner.java
diff options
context:
space:
mode:
authorRncLsn <rnc.lsn@gmail.com>2015-06-26 17:41:35 +0100
committerRncLsn <rnc.lsn@gmail.com>2015-06-26 17:41:35 +0100
commit1013812b487bc438df49ec93ad9433438d5d6cf6 (patch)
treed656446445ce3f25f2d2e4cfd65014ba5fd6b267 /src/uk/ac/ox/cs/pagoda/reasoner/MyQueryReasoner.java
parent271b05caedafb3b7433d2163d59b2ab5f8106dfe (diff)
downloadACQuA-1013812b487bc438df49ec93ad9433438d5d6cf6.tar.gz
ACQuA-1013812b487bc438df49ec93ad9433438d5d6cf6.zip
Summarisation before Skolemisation. Added Reactome testcase.
Diffstat (limited to 'src/uk/ac/ox/cs/pagoda/reasoner/MyQueryReasoner.java')
-rw-r--r--src/uk/ac/ox/cs/pagoda/reasoner/MyQueryReasoner.java22
1 files changed, 14 insertions, 8 deletions
diff --git a/src/uk/ac/ox/cs/pagoda/reasoner/MyQueryReasoner.java b/src/uk/ac/ox/cs/pagoda/reasoner/MyQueryReasoner.java
index 51cb44d..04b2c65 100644
--- a/src/uk/ac/ox/cs/pagoda/reasoner/MyQueryReasoner.java
+++ b/src/uk/ac/ox/cs/pagoda/reasoner/MyQueryReasoner.java
@@ -43,6 +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 47
47 public MyQueryReasoner() { 48 public MyQueryReasoner() {
48 setup(true); 49 setup(true);
@@ -188,17 +189,22 @@ class MyQueryReasoner extends QueryReasoner {
188 return; 189 return;
189 190
190 OWLOntology relevantOntologySubset = extractRelevantOntologySubset(queryRecord); 191 OWLOntology relevantOntologySubset = extractRelevantOntologySubset(queryRecord);
191// queryRecord.saveRelevantOntology("/home/alessandro/Desktop/test-relevant-ontology.owl"); 192
193 queryRecord.saveRelevantOntology("/home/alessandro/Desktop/test-relevant-ontology-"+relevantOntologiesCounter+".owl");
194 relevantOntologiesCounter++;
195
196 Utility.logInfo("Summarisation...");
197 HermitSummaryFilter summarisedChecker = new HermitSummaryFilter(queryRecord, properties.getToCallHermiT());
198 if(summarisedChecker.check(queryRecord.getGapAnswers()) == 0)
199 return;
192 200
193 if(properties.getUseSkolemUpperBound() && 201 if(properties.getUseSkolemUpperBound() &&
194 querySkolemisedRelevantSubset(relevantOntologySubset, queryRecord)) { 202 querySkolemisedRelevantSubset(relevantOntologySubset, queryRecord))
195 return; 203 return;
196 }
197 204
205 Utility.logInfo("Full reasoning...");
198 Timer t = new Timer(); 206 Timer t = new Timer();
199 HermitSummaryFilter summarisedChecker = new HermitSummaryFilter(queryRecord, properties.getToCallHermiT()); 207 summarisedChecker.checkByFullReasoner(queryRecord.getGapAnswers());
200 summarisedChecker.check(queryRecord.getGapAnswers());
201// summarisedChecker.checkByFullReasoner(queryRecord.getGapAnswers());
202 Utility.logDebug("Total time for full reasoner: " + t.duration()); 208 Utility.logDebug("Total time for full reasoner: " + t.duration());
203 209
204 queryRecord.markAsProcessed(); 210 queryRecord.markAsProcessed();
@@ -360,7 +366,7 @@ class MyQueryReasoner extends QueryReasoner {
360 } 366 }
361 367
362 private boolean querySkolemisedRelevantSubset(OWLOntology relevantSubset, QueryRecord queryRecord) { 368 private boolean querySkolemisedRelevantSubset(OWLOntology relevantSubset, QueryRecord queryRecord) {
363 Utility.logInfo("Evaluating semi-Skolemised relevant upper store..."); 369 Utility.logInfo("Evaluating semi-Skolemised relevant upper store");
364 t.reset(); 370 t.reset();
365 371
366 DatalogProgram relevantProgram = new DatalogProgram(relevantSubset, false); // toClassify is false 372 DatalogProgram relevantProgram = new DatalogProgram(relevantSubset, false); // toClassify is false
@@ -371,7 +377,7 @@ class MyQueryReasoner extends QueryReasoner {
371 relevantStore.importDataFromABoxOf(relevantSubset); 377 relevantStore.importDataFromABoxOf(relevantSubset);
372 String relevantOriginalMarkProgram = OWLHelper.getOriginalMarkProgram(relevantSubset); 378 String relevantOriginalMarkProgram = OWLHelper.getOriginalMarkProgram(relevantSubset);
373 379
374 int queryDependentMaxTermDepth = 10; // TODO make it dynamic 380 int queryDependentMaxTermDepth = 5; // TODO make it dynamic
375 relevantStore.materialise("Mark original individuals", relevantOriginalMarkProgram); 381 relevantStore.materialise("Mark original individuals", relevantOriginalMarkProgram);
376 int materialisationTag = relevantStore.materialiseSkolemly(relevantProgram, null, 382 int materialisationTag = relevantStore.materialiseSkolemly(relevantProgram, null,
377 queryDependentMaxTermDepth); 383 queryDependentMaxTermDepth);