aboutsummaryrefslogtreecommitdiff
path: root/src/uk/ac/ox/cs/pagoda/reasoner/MyQueryReasoner.java
diff options
context:
space:
mode:
authorRncLsn <rnc.lsn@gmail.com>2015-05-09 14:26:28 +0100
committerRncLsn <rnc.lsn@gmail.com>2015-05-09 14:26:28 +0100
commit870eb35e38f746ed73f233070dcf3bdaf4687e02 (patch)
tree41ef0c1e18057aedc9f0f94d242cf6450d22025f /src/uk/ac/ox/cs/pagoda/reasoner/MyQueryReasoner.java
parent5be5fd3daa0d50980fb3791e904e035cdbca254f (diff)
downloadACQuA-870eb35e38f746ed73f233070dcf3bdaf4687e02.tar.gz
ACQuA-870eb35e38f746ed73f233070dcf3bdaf4687e02.zip
Adding (not completed) log of partial answers in Json.
Diffstat (limited to 'src/uk/ac/ox/cs/pagoda/reasoner/MyQueryReasoner.java')
-rw-r--r--src/uk/ac/ox/cs/pagoda/reasoner/MyQueryReasoner.java36
1 files changed, 27 insertions, 9 deletions
diff --git a/src/uk/ac/ox/cs/pagoda/reasoner/MyQueryReasoner.java b/src/uk/ac/ox/cs/pagoda/reasoner/MyQueryReasoner.java
index 17838ae..4465764 100644
--- a/src/uk/ac/ox/cs/pagoda/reasoner/MyQueryReasoner.java
+++ b/src/uk/ac/ox/cs/pagoda/reasoner/MyQueryReasoner.java
@@ -1,24 +1,29 @@
1package uk.ac.ox.cs.pagoda.reasoner; 1package uk.ac.ox.cs.pagoda.reasoner;
2 2
3import java.util.Collection;
4
5import org.semanticweb.karma2.profile.ELHOProfile; 3import org.semanticweb.karma2.profile.ELHOProfile;
6import org.semanticweb.owlapi.model.OWLOntology; 4import org.semanticweb.owlapi.model.OWLOntology;
7 5import uk.ac.ox.cs.pagoda.multistage.MultiStageQueryEngine;
8import uk.ac.ox.cs.pagoda.multistage.*;
9import uk.ac.ox.cs.pagoda.owl.EqualitiesEliminator; 6import uk.ac.ox.cs.pagoda.owl.EqualitiesEliminator;
10import uk.ac.ox.cs.pagoda.owl.OWLHelper; 7import uk.ac.ox.cs.pagoda.owl.OWLHelper;
11import uk.ac.ox.cs.pagoda.query.*; 8import uk.ac.ox.cs.pagoda.query.AnswerTuples;
9import uk.ac.ox.cs.pagoda.query.GapByStore4ID;
10import uk.ac.ox.cs.pagoda.query.QueryRecord;
12import uk.ac.ox.cs.pagoda.query.QueryRecord.Step; 11import uk.ac.ox.cs.pagoda.query.QueryRecord.Step;
13import uk.ac.ox.cs.pagoda.reasoner.full.Checker; 12import uk.ac.ox.cs.pagoda.reasoner.full.Checker;
14import uk.ac.ox.cs.pagoda.reasoner.light.BasicQueryEngine; 13import uk.ac.ox.cs.pagoda.reasoner.light.BasicQueryEngine;
15import uk.ac.ox.cs.pagoda.reasoner.light.KarmaQueryEngine; 14import uk.ac.ox.cs.pagoda.reasoner.light.KarmaQueryEngine;
16import uk.ac.ox.cs.pagoda.rules.DatalogProgram; 15import uk.ac.ox.cs.pagoda.rules.DatalogProgram;
17import uk.ac.ox.cs.pagoda.summary.HermitSummaryFilter; 16import uk.ac.ox.cs.pagoda.summary.HermitSummaryFilter;
18import uk.ac.ox.cs.pagoda.tracking.*; 17import uk.ac.ox.cs.pagoda.tracking.QueryTracker;
18import uk.ac.ox.cs.pagoda.tracking.TrackingRuleEncoder;
19import uk.ac.ox.cs.pagoda.tracking.TrackingRuleEncoderDisjVar1;
20import uk.ac.ox.cs.pagoda.tracking.TrackingRuleEncoderWithGap;
19import uk.ac.ox.cs.pagoda.util.Timer; 21import uk.ac.ox.cs.pagoda.util.Timer;
20import uk.ac.ox.cs.pagoda.util.Utility; 22import uk.ac.ox.cs.pagoda.util.Utility;
21 23
24import java.util.Collection;
25import java.util.HashMap;
26
22public class MyQueryReasoner extends QueryReasoner { 27public class MyQueryReasoner extends QueryReasoner {
23 28
24 OWLOntology ontology; 29 OWLOntology ontology;
@@ -203,10 +208,17 @@ public class MyQueryReasoner extends QueryReasoner {
203 String[] extendedQuery = queryRecord.getExtendedQueryText(); 208 String[] extendedQuery = queryRecord.getExtendedQueryText();
204 209
205 queryUpperBound(upperStore, queryRecord, queryRecord.getQueryText(), queryRecord.getAnswerVariables()); 210 queryUpperBound(upperStore, queryRecord, queryRecord.getQueryText(), queryRecord.getAnswerVariables());
206 if (!queryRecord.processed() && !queryRecord.getQueryText().equals(extendedQuery[0])) 211
212 // TODO log correct partial answers
213 Utility.logDebug(toJson("upperBound1", queryRecord));
214 if (!queryRecord.processed() && !queryRecord.getQueryText().equals(extendedQuery[0])) {
207 queryUpperBound(upperStore, queryRecord, extendedQuery[0], queryRecord.getAnswerVariables()); 215 queryUpperBound(upperStore, queryRecord, extendedQuery[0], queryRecord.getAnswerVariables());
208 if (!queryRecord.processed() && queryRecord.hasNonAnsDistinguishedVariables()) 216 Utility.logDebug(toJson("upperBound2", queryRecord));
217 }
218 if (!queryRecord.processed() && queryRecord.hasNonAnsDistinguishedVariables()) {
209 queryUpperBound(upperStore, queryRecord, extendedQuery[1], queryRecord.getDistinguishedVariables()); 219 queryUpperBound(upperStore, queryRecord, extendedQuery[1], queryRecord.getDistinguishedVariables());
220 Utility.logDebug(toJson("upperBound3", queryRecord));
221 }
210 222
211 queryRecord.addProcessingTime(Step.UpperBound, t.duration()); 223 queryRecord.addProcessingTime(Step.UpperBound, t.duration());
212 if (queryRecord.processed()) { 224 if (queryRecord.processed()) {
@@ -268,13 +280,19 @@ public class MyQueryReasoner extends QueryReasoner {
268 280
269// int counter = 0; 281// int counter = 0;
270 282
283 private String toJson(String key, Object value) {
284 HashMap<String, Object> map = new HashMap<>();
285 map.put(key, value);
286 return QueryRecord.GsonCreator.getInstance().toJson(map);
287 }
288
271 private void queryUpperBound(BasicQueryEngine upperStore, QueryRecord queryRecord, String queryText, String[] answerVariables) { 289 private void queryUpperBound(BasicQueryEngine upperStore, QueryRecord queryRecord, String queryText, String[] answerVariables) {
272 AnswerTuples rlAnswer = null; 290 AnswerTuples rlAnswer = null;
273 try { 291 try {
274 Utility.logDebug(queryText); 292 Utility.logDebug(queryText);
275 rlAnswer = upperStore.evaluate(queryText, answerVariables); 293 rlAnswer = upperStore.evaluate(queryText, answerVariables);
276 Utility.logDebug(t.duration()); 294 Utility.logDebug(t.duration());
277 queryRecord.updateUpperBoundAnswers(rlAnswer); 295 queryRecord.updateUpperBoundAnswers(rlAnswer);
278 } finally { 296 } finally {
279 if (rlAnswer != null) rlAnswer.dispose(); 297 if (rlAnswer != null) rlAnswer.dispose();
280 rlAnswer = null; 298 rlAnswer = null;