aboutsummaryrefslogtreecommitdiff
path: root/external/uk/ac/ox/cs/data/PrepareQueries4Hydrowl.java
diff options
context:
space:
mode:
authoryzhou <yzhou@krr-linux.cs.ox.ac.uk>2015-04-30 17:36:35 +0100
committeryzhou <yzhou@krr-linux.cs.ox.ac.uk>2015-04-30 17:36:35 +0100
commit0d8f240c9c0a64f2285324e5a517161e45c698fc (patch)
treef4b4f7078e3be02011b9812cd8791c657a135993 /external/uk/ac/ox/cs/data/PrepareQueries4Hydrowl.java
parent68ae342b2a4923bc7b3f378c6a489f2355d85279 (diff)
downloadACQuA-0d8f240c9c0a64f2285324e5a517161e45c698fc.tar.gz
ACQuA-0d8f240c9c0a64f2285324e5a517161e45c698fc.zip
downgrade owl api and reorganised src files
Diffstat (limited to 'external/uk/ac/ox/cs/data/PrepareQueries4Hydrowl.java')
-rw-r--r--external/uk/ac/ox/cs/data/PrepareQueries4Hydrowl.java184
1 files changed, 184 insertions, 0 deletions
diff --git a/external/uk/ac/ox/cs/data/PrepareQueries4Hydrowl.java b/external/uk/ac/ox/cs/data/PrepareQueries4Hydrowl.java
new file mode 100644
index 0000000..10f1ac2
--- /dev/null
+++ b/external/uk/ac/ox/cs/data/PrepareQueries4Hydrowl.java
@@ -0,0 +1,184 @@
1package uk.ac.ox.cs.data;
2
3import java.io.*;
4import java.util.HashMap;
5import java.util.Map;
6
7import com.hp.hpl.jena.graph.Node;
8import com.hp.hpl.jena.graph.Node_URI;
9import com.hp.hpl.jena.graph.Node_Variable;
10import com.hp.hpl.jena.query.Query;
11import com.hp.hpl.jena.query.QueryFactory;
12import com.hp.hpl.jena.sparql.core.TriplePath;
13import com.hp.hpl.jena.sparql.core.Var;
14import com.hp.hpl.jena.sparql.syntax.Element;
15import com.hp.hpl.jena.sparql.syntax.ElementAssign;
16import com.hp.hpl.jena.sparql.syntax.ElementBind;
17import com.hp.hpl.jena.sparql.syntax.ElementData;
18import com.hp.hpl.jena.sparql.syntax.ElementDataset;
19import com.hp.hpl.jena.sparql.syntax.ElementExists;
20import com.hp.hpl.jena.sparql.syntax.ElementFilter;
21import com.hp.hpl.jena.sparql.syntax.ElementGroup;
22import com.hp.hpl.jena.sparql.syntax.ElementMinus;
23import com.hp.hpl.jena.sparql.syntax.ElementNamedGraph;
24import com.hp.hpl.jena.sparql.syntax.ElementNotExists;
25import com.hp.hpl.jena.sparql.syntax.ElementOptional;
26import com.hp.hpl.jena.sparql.syntax.ElementPathBlock;
27import com.hp.hpl.jena.sparql.syntax.ElementService;
28import com.hp.hpl.jena.sparql.syntax.ElementSubQuery;
29import com.hp.hpl.jena.sparql.syntax.ElementTriplesBlock;
30import com.hp.hpl.jena.sparql.syntax.ElementUnion;
31import com.hp.hpl.jena.sparql.syntax.ElementVisitor;
32
33import uk.ac.ox.cs.pagoda.query.QueryManager;
34import uk.ac.ox.cs.pagoda.util.Namespace;
35
36public class PrepareQueries4Hydrowl {
37
38 public static void main(String[] args) throws FileNotFoundException {
39 if (args.length == 0)
40// args = new String[] {"/media/krr-nas-share/Yujiao/ontologies/dbpedia/queries/atomic_ground.sparql"};
41 args = new String[] {"/home/yzhou/temp/ontologies/reactome/example.sparql"};
42// String fileName = args[0].substring(args[0].lastIndexOf(Utility.FILE_SEPARATOR) + 1);
43
44 PrintStream ps = new PrintStream(new File(args[0].replace(".sparql", "_hydrowl.sparql")));
45 if (ps != null) System.setOut(ps);
46
47 StringBuilder sb = new StringBuilder();
48 Map<String, Integer> vars = new HashMap<String, Integer>();
49 for (String text: QueryManager.collectQueryTexts(args[0])) {
50 Query query = QueryFactory.create(text);
51 for (Var var: query.getProjectVars())
52 sb.append(sb.length() == 0 ? "Q(?" : ",?").append(var.getName());
53 sb.append(") <- ");
54 ElementVisitor visitor = new HydrowlGeneratorVisitor(sb);
55 query.getQueryPattern().visit(visitor);
56 sb.setLength(sb.length() - 2);
57 System.out.println(sb);
58 sb.setLength(0);
59 vars.clear();
60 }
61
62 if (ps != null) ps.close();
63 }
64
65}
66
67class HydrowlGeneratorVisitor implements ElementVisitor {
68
69 StringBuilder m_text;
70
71 public HydrowlGeneratorVisitor(StringBuilder text) {
72 m_text = text;
73 }
74
75 @Override
76 public void visit(ElementTriplesBlock el) {
77 // TODO Auto-generated method stub
78
79 }
80
81 @Override
82 public void visit(ElementPathBlock el) {
83 // TODO Auto-generated method stub
84 for (TriplePath p: el.getPattern().getList()) {
85 if (p.getPredicate().getURI().equals(Namespace.RDF_TYPE) && !p.getObject().isVariable())
86 m_text.append(p.getObject().getURI()).append("(").append(getURI(p.getSubject())).append("), ");
87 else
88 m_text.append(p.getPredicate().getURI()).append("(").append(getURI(p.getSubject())).append(", ").append(getURI(p.getObject())).append("), ");
89 }
90 }
91
92 private String getURI(Node node) {
93 if (node instanceof Node_URI) return node.getURI();
94 if (node instanceof Node_Variable) return "?" + node.getName();
95 System.out.println("Unknown node: " + node);
96 return null;
97 }
98
99 @Override
100 public void visit(ElementFilter el) {
101 // TODO Auto-generated method stub
102
103 }
104
105 @Override
106 public void visit(ElementAssign el) {
107 // TODO Auto-generated method stub
108
109 }
110
111 @Override
112 public void visit(ElementBind el) {
113 // TODO Auto-generated method stub
114
115 }
116
117 @Override
118 public void visit(ElementUnion el) {
119 // TODO Auto-generated method stub
120
121 }
122
123 @Override
124 public void visit(ElementOptional el) {
125 // TODO Auto-generated method stub
126
127 }
128
129 @Override
130 public void visit(ElementGroup el) {
131 // TODO Auto-generated method stub
132 for (Element e: el.getElements())
133 e.visit(this);
134 }
135
136 @Override
137 public void visit(ElementDataset el) {
138 // TODO Auto-generated method stub
139
140 }
141
142 @Override
143 public void visit(ElementNamedGraph el) {
144 // TODO Auto-generated method stub
145
146 }
147
148 @Override
149 public void visit(ElementExists el) {
150 // TODO Auto-generated method stub
151
152 }
153
154 @Override
155 public void visit(ElementNotExists el) {
156 // TODO Auto-generated method stub
157
158 }
159
160 @Override
161 public void visit(ElementMinus el) {
162 // TODO Auto-generated method stub
163
164 }
165
166 @Override
167 public void visit(ElementService el) {
168 // TODO Auto-generated method stub
169
170 }
171
172 @Override
173 public void visit(ElementSubQuery el) {
174 // TODO Auto-generated method stub
175
176 }
177
178 @Override
179 public void visit(ElementData el) {
180 // TODO Auto-generated method stub
181
182 }
183
184} \ No newline at end of file