aboutsummaryrefslogtreecommitdiff
path: root/src/uk/ac/ox/cs/pagoda/reasoner/light/RDFoxAnswerTuples.java
diff options
context:
space:
mode:
authoryzhou <yujiao.zhou@gmail.com>2015-04-21 10:34:27 +0100
committeryzhou <yujiao.zhou@gmail.com>2015-04-21 10:34:27 +0100
commit9ce65c5a963b03ee97fe9cb6c5aa65a3c04a80a8 (patch)
tree47511c0fb89dccff0db4b5990522e04f294d795b /src/uk/ac/ox/cs/pagoda/reasoner/light/RDFoxAnswerTuples.java
parentb1ac207612ee8b045244253fb94b866104bc34f2 (diff)
downloadACQuA-9ce65c5a963b03ee97fe9cb6c5aa65a3c04a80a8.tar.gz
ACQuA-9ce65c5a963b03ee97fe9cb6c5aa65a3c04a80a8.zip
initial version
Diffstat (limited to 'src/uk/ac/ox/cs/pagoda/reasoner/light/RDFoxAnswerTuples.java')
-rw-r--r--src/uk/ac/ox/cs/pagoda/reasoner/light/RDFoxAnswerTuples.java100
1 files changed, 100 insertions, 0 deletions
diff --git a/src/uk/ac/ox/cs/pagoda/reasoner/light/RDFoxAnswerTuples.java b/src/uk/ac/ox/cs/pagoda/reasoner/light/RDFoxAnswerTuples.java
new file mode 100644
index 0000000..dd71809
--- /dev/null
+++ b/src/uk/ac/ox/cs/pagoda/reasoner/light/RDFoxAnswerTuples.java
@@ -0,0 +1,100 @@
1package uk.ac.ox.cs.pagoda.reasoner.light;
2
3import org.semanticweb.HermiT.model.Constant;
4import org.semanticweb.HermiT.model.Individual;
5import org.semanticweb.HermiT.model.Term;
6
7import uk.ac.ox.cs.pagoda.query.AnswerTuple;
8import uk.ac.ox.cs.pagoda.query.AnswerTuples;
9import uk.ac.ox.cs.pagoda.util.Utility;
10import uk.ac.ox.cs.JRDFox.JRDFStoreException;
11import uk.ac.ox.cs.JRDFox.model.GroundTerm;
12import uk.ac.ox.cs.JRDFox.store.TupleIterator;
13
14public class RDFoxAnswerTuples implements AnswerTuples {
15
16 long multi;
17 TupleIterator m_iter;
18 String[] m_answerVars;
19
20 public RDFoxAnswerTuples(String[] answerVars, TupleIterator iter) {
21 m_answerVars = answerVars;
22 m_iter = iter;
23 reset();
24 }
25
26 @Override
27 public boolean isValid() {
28 return multi != 0;
29 }
30
31 @Override
32 public int getArity() {
33 try {
34 return m_iter.getArity();
35 } catch (JRDFStoreException e) {
36 e.printStackTrace();
37 return -1;
38 }
39 }
40
41 @Override
42 public void moveNext() {
43 try {
44 multi = m_iter.getNext();
45 } catch (JRDFStoreException e) {
46 e.printStackTrace();
47 }
48 }
49
50 @Override
51 public void dispose() {
52 m_iter.dispose();
53 }
54
55 protected void finalize() {
56 m_iter.dispose();
57 }
58
59 @Override
60 public AnswerTuple getTuple() {
61 return new AnswerTuple(m_iter, m_answerVars.length);
62 }
63
64 @Override
65 public void reset() {
66 try {
67 multi = m_iter.open();
68 } catch (JRDFStoreException e) {
69 e.printStackTrace();
70 }
71 }
72
73 @Override
74 public boolean contains(AnswerTuple t) {
75 Utility.logError("Unsupported operation in RDFoxAnswerTuples");
76 return false;
77 }
78
79 @Override
80 public void remove() {
81 Utility.logError("Unsupported operation in RDFoxAnswerTuples");
82 }
83
84 @Override
85 public String[] getAnswerVariables() {
86 return m_answerVars;
87 }
88
89 public static Term getHermitTerm(GroundTerm t) {
90 if (t instanceof uk.ac.ox.cs.JRDFox.model.Individual) {
91 uk.ac.ox.cs.JRDFox.model.Individual individual = (uk.ac.ox.cs.JRDFox.model.Individual) t;
92 return Individual.create(individual.getIRI());
93 }
94 else {
95 uk.ac.ox.cs.JRDFox.model.Literal literal = ((uk.ac.ox.cs.JRDFox.model.Literal) t);
96 return Constant.create(literal.getLexicalForm(), literal.getDatatype().getIRI());
97 }
98 }
99
100}