annotate src/info/wilkinsonlab/galaxy/sparql/text/SPARQLGalaxy_TEXT.java @ 2:b8bf1af83841 draft

Paste query added, query engine improved, examples added
author Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
date Wed, 04 Dec 2013 08:17:00 +0100
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2
b8bf1af83841 Paste query added, query engine improved, examples added
Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff changeset
1 package info.wilkinsonlab.galaxy.sparql.text;
b8bf1af83841 Paste query added, query engine improved, examples added
Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff changeset
2
b8bf1af83841 Paste query added, query engine improved, examples added
Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff changeset
3 import java.io.InputStream;
b8bf1af83841 Paste query added, query engine improved, examples added
Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff changeset
4 import java.util.Iterator;
b8bf1af83841 Paste query added, query engine improved, examples added
Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff changeset
5
b8bf1af83841 Paste query added, query engine improved, examples added
Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff changeset
6 import com.hp.hpl.jena.query.Query;
b8bf1af83841 Paste query added, query engine improved, examples added
Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff changeset
7 import com.hp.hpl.jena.query.QueryExecution;
b8bf1af83841 Paste query added, query engine improved, examples added
Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff changeset
8 import com.hp.hpl.jena.query.QueryExecutionFactory;
b8bf1af83841 Paste query added, query engine improved, examples added
Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff changeset
9 import com.hp.hpl.jena.query.QueryFactory;
b8bf1af83841 Paste query added, query engine improved, examples added
Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff changeset
10 import com.hp.hpl.jena.query.QuerySolution;
b8bf1af83841 Paste query added, query engine improved, examples added
Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff changeset
11 import com.hp.hpl.jena.query.ResultSet;
b8bf1af83841 Paste query added, query engine improved, examples added
Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff changeset
12 import com.hp.hpl.jena.rdf.model.Model;
b8bf1af83841 Paste query added, query engine improved, examples added
Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff changeset
13 import com.hp.hpl.jena.rdf.model.ModelFactory;
b8bf1af83841 Paste query added, query engine improved, examples added
Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff changeset
14 import com.hp.hpl.jena.rdf.model.RDFNode;
b8bf1af83841 Paste query added, query engine improved, examples added
Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff changeset
15 import com.hp.hpl.jena.util.FileManager;
b8bf1af83841 Paste query added, query engine improved, examples added
Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff changeset
16
b8bf1af83841 Paste query added, query engine improved, examples added
Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff changeset
17 public class SPARQLGalaxy_TEXT {
b8bf1af83841 Paste query added, query engine improved, examples added
Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff changeset
18
b8bf1af83841 Paste query added, query engine improved, examples added
Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff changeset
19 /**
b8bf1af83841 Paste query added, query engine improved, examples added
Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff changeset
20 * @param input
b8bf1af83841 Paste query added, query engine improved, examples added
Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff changeset
21 * RDF
b8bf1af83841 Paste query added, query engine improved, examples added
Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff changeset
22 * @param SPARQL
b8bf1af83841 Paste query added, query engine improved, examples added
Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff changeset
23 * query
b8bf1af83841 Paste query added, query engine improved, examples added
Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff changeset
24 *
b8bf1af83841 Paste query added, query engine improved, examples added
Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff changeset
25 */
b8bf1af83841 Paste query added, query engine improved, examples added
Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff changeset
26 public static void main(String[] args) {
b8bf1af83841 Paste query added, query engine improved, examples added
Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff changeset
27 String input_RDF_path = args[0];
b8bf1af83841 Paste query added, query engine improved, examples added
Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff changeset
28 String queryString = args[1];
b8bf1af83841 Paste query added, query engine improved, examples added
Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff changeset
29 Model model = ModelFactory.createOntologyModel();
b8bf1af83841 Paste query added, query engine improved, examples added
Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff changeset
30 InputStream in = FileManager.get().open(input_RDF_path);
b8bf1af83841 Paste query added, query engine improved, examples added
Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff changeset
31 model.read(in, null);
b8bf1af83841 Paste query added, query engine improved, examples added
Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff changeset
32 Query query = QueryFactory.create(queryString);
b8bf1af83841 Paste query added, query engine improved, examples added
Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff changeset
33 QueryExecution qe = QueryExecutionFactory.create(query, model);
b8bf1af83841 Paste query added, query engine improved, examples added
Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff changeset
34 ResultSet results = qe.execSelect();
b8bf1af83841 Paste query added, query engine improved, examples added
Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff changeset
35 String res = "";
b8bf1af83841 Paste query added, query engine improved, examples added
Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff changeset
36 while (results.hasNext()) {
b8bf1af83841 Paste query added, query engine improved, examples added
Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff changeset
37 QuerySolution qs = results.next();
b8bf1af83841 Paste query added, query engine improved, examples added
Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff changeset
38 Iterator<String> vars = qs.varNames();
b8bf1af83841 Paste query added, query engine improved, examples added
Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff changeset
39 while (vars.hasNext()) {
b8bf1af83841 Paste query added, query engine improved, examples added
Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff changeset
40 String var = vars.next();
b8bf1af83841 Paste query added, query engine improved, examples added
Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff changeset
41 res += "?" + var + "\t" + getValue(qs, var) + "\r\n";
b8bf1af83841 Paste query added, query engine improved, examples added
Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff changeset
42 System.out.println(res);
b8bf1af83841 Paste query added, query engine improved, examples added
Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff changeset
43 }
b8bf1af83841 Paste query added, query engine improved, examples added
Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff changeset
44 }
b8bf1af83841 Paste query added, query engine improved, examples added
Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff changeset
45 }
b8bf1af83841 Paste query added, query engine improved, examples added
Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff changeset
46
b8bf1af83841 Paste query added, query engine improved, examples added
Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff changeset
47 private static String getValue(QuerySolution qs, String var) {
b8bf1af83841 Paste query added, query engine improved, examples added
Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff changeset
48 RDFNode n = qs.get(var);
b8bf1af83841 Paste query added, query engine improved, examples added
Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff changeset
49 return n.toString();
b8bf1af83841 Paste query added, query engine improved, examples added
Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff changeset
50 }
b8bf1af83841 Paste query added, query engine improved, examples added
Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu>
parents:
diff changeset
51 }