From 1013812b487bc438df49ec93ad9433438d5d6cf6 Mon Sep 17 00:00:00 2001 From: RncLsn Date: Fri, 26 Jun 2015 17:41:35 +0100 Subject: Summarisation before Skolemisation. Added Reactome testcase. --- .../ac/ox/cs/pagoda/reasoner/MyQueryReasoner.java | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) (limited to 'src/uk/ac/ox/cs/pagoda/reasoner') 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 { private Collection predicatesWithGap = null; private ConsistencyStatus isConsistent; private ConsistencyManager consistency = new ConsistencyManager(this); + private int relevantOntologiesCounter = 0; public MyQueryReasoner() { setup(true); @@ -188,17 +189,22 @@ class MyQueryReasoner extends QueryReasoner { return; OWLOntology relevantOntologySubset = extractRelevantOntologySubset(queryRecord); -// queryRecord.saveRelevantOntology("/home/alessandro/Desktop/test-relevant-ontology.owl"); + + queryRecord.saveRelevantOntology("/home/alessandro/Desktop/test-relevant-ontology-"+relevantOntologiesCounter+".owl"); + relevantOntologiesCounter++; + + Utility.logInfo("Summarisation..."); + HermitSummaryFilter summarisedChecker = new HermitSummaryFilter(queryRecord, properties.getToCallHermiT()); + if(summarisedChecker.check(queryRecord.getGapAnswers()) == 0) + return; if(properties.getUseSkolemUpperBound() && - querySkolemisedRelevantSubset(relevantOntologySubset, queryRecord)) { + querySkolemisedRelevantSubset(relevantOntologySubset, queryRecord)) return; - } + Utility.logInfo("Full reasoning..."); Timer t = new Timer(); - HermitSummaryFilter summarisedChecker = new HermitSummaryFilter(queryRecord, properties.getToCallHermiT()); - summarisedChecker.check(queryRecord.getGapAnswers()); -// summarisedChecker.checkByFullReasoner(queryRecord.getGapAnswers()); + summarisedChecker.checkByFullReasoner(queryRecord.getGapAnswers()); Utility.logDebug("Total time for full reasoner: " + t.duration()); queryRecord.markAsProcessed(); @@ -360,7 +366,7 @@ class MyQueryReasoner extends QueryReasoner { } private boolean querySkolemisedRelevantSubset(OWLOntology relevantSubset, QueryRecord queryRecord) { - Utility.logInfo("Evaluating semi-Skolemised relevant upper store..."); + Utility.logInfo("Evaluating semi-Skolemised relevant upper store"); t.reset(); DatalogProgram relevantProgram = new DatalogProgram(relevantSubset, false); // toClassify is false @@ -371,7 +377,7 @@ class MyQueryReasoner extends QueryReasoner { relevantStore.importDataFromABoxOf(relevantSubset); String relevantOriginalMarkProgram = OWLHelper.getOriginalMarkProgram(relevantSubset); - int queryDependentMaxTermDepth = 10; // TODO make it dynamic + int queryDependentMaxTermDepth = 5; // TODO make it dynamic relevantStore.materialise("Mark original individuals", relevantOriginalMarkProgram); int materialisationTag = relevantStore.materialiseSkolemly(relevantProgram, null, queryDependentMaxTermDepth); -- cgit v1.2.3