aboutsummaryrefslogtreecommitdiff
path: root/src/uk/ac/ox/cs/pagoda/reasoner/RLQueryReasoner.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/uk/ac/ox/cs/pagoda/reasoner/RLQueryReasoner.java')
-rw-r--r--src/uk/ac/ox/cs/pagoda/reasoner/RLQueryReasoner.java86
1 files changed, 0 insertions, 86 deletions
diff --git a/src/uk/ac/ox/cs/pagoda/reasoner/RLQueryReasoner.java b/src/uk/ac/ox/cs/pagoda/reasoner/RLQueryReasoner.java
deleted file mode 100644
index 3934498..0000000
--- a/src/uk/ac/ox/cs/pagoda/reasoner/RLQueryReasoner.java
+++ /dev/null
@@ -1,86 +0,0 @@
1package uk.ac.ox.cs.pagoda.reasoner;
2
3import org.semanticweb.owlapi.model.OWLOntology;
4import uk.ac.ox.cs.pagoda.constraints.UnaryBottom;
5import uk.ac.ox.cs.pagoda.query.AnswerTuples;
6import uk.ac.ox.cs.pagoda.query.QueryRecord;
7import uk.ac.ox.cs.pagoda.query.QueryRecord.Step;
8import uk.ac.ox.cs.pagoda.reasoner.light.BasicQueryEngine;
9import uk.ac.ox.cs.pagoda.reasoner.light.RDFoxQueryEngine;
10import uk.ac.ox.cs.pagoda.rules.LowerDatalogProgram;
11import uk.ac.ox.cs.pagoda.util.Timer;
12import uk.ac.ox.cs.pagoda.util.disposable.DisposedException;
13
14class RLQueryReasoner extends QueryReasoner {
15
16 RDFoxQueryEngine rlLowerStore = null;
17
18 LowerDatalogProgram program;
19 Timer t = new Timer();
20
21 public RLQueryReasoner() {
22 rlLowerStore = new BasicQueryEngine("rl");
23 }
24
25 @Override
26 public void evaluate(QueryRecord queryRecord) {
27 if(isDisposed()) throw new DisposedException();
28 AnswerTuples rlAnswer = null;
29 t.reset();
30 try {
31 rlAnswer = rlLowerStore.evaluate(queryRecord.getQueryText(), queryRecord.getAnswerVariables());
32 queryRecord.updateLowerBoundAnswers(rlAnswer);
33 } finally {
34 if (rlAnswer != null) rlAnswer.dispose();
35 }
36 queryRecord.addProcessingTime(Step.LOWER_BOUND, t.duration());
37 queryRecord.setDifficulty(Step.LOWER_BOUND);
38 queryRecord.markAsProcessed();
39 }
40
41 @Override
42 public void dispose() {
43 super.dispose();
44 if(rlLowerStore != null) rlLowerStore.dispose();
45 }
46
47 @Override
48 public void loadOntology(OWLOntology ontology) {
49 if(isDisposed()) throw new DisposedException();
50 program = new LowerDatalogProgram();
51 program.load(ontology, new UnaryBottom());
52 program.transform();
53
54 importData(program.getAdditionalDataFile());
55 }
56
57 @Override
58 public boolean preprocess() {
59 if(isDisposed()) throw new DisposedException();
60 rlLowerStore.importRDFData("data", getImportedData());
61 rlLowerStore.materialise("lower program", program.toString());
62
63 return isConsistent();
64 }
65
66 @Override
67 public boolean isConsistent() {
68 if(isDisposed()) throw new DisposedException();
69 AnswerTuples ans = null;
70 try {
71 ans = rlLowerStore.evaluate(QueryRecord.botQueryText, new String[] {"X"});
72 return !ans.isValid();
73 } finally {
74 if (ans != null) ans.dispose();
75
76 }
77
78 }
79
80 @Override
81 public void evaluateUpper(QueryRecord record) {
82 if(isDisposed()) throw new DisposedException();
83 evaluate(record);
84 }
85
86}