Mercurial > repos > mikel-egana-aranguren > sparql_galaxy
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/info/wilkinsonlab/galaxy/sparql/text/SPARQLGalaxy_TEXT.java Wed Dec 04 08:17:00 2013 +0100 @@ -0,0 +1,51 @@ +package info.wilkinsonlab.galaxy.sparql.text; + +import java.io.InputStream; +import java.util.Iterator; + +import com.hp.hpl.jena.query.Query; +import com.hp.hpl.jena.query.QueryExecution; +import com.hp.hpl.jena.query.QueryExecutionFactory; +import com.hp.hpl.jena.query.QueryFactory; +import com.hp.hpl.jena.query.QuerySolution; +import com.hp.hpl.jena.query.ResultSet; +import com.hp.hpl.jena.rdf.model.Model; +import com.hp.hpl.jena.rdf.model.ModelFactory; +import com.hp.hpl.jena.rdf.model.RDFNode; +import com.hp.hpl.jena.util.FileManager; + +public class SPARQLGalaxy_TEXT { + + /** + * @param input + * RDF + * @param SPARQL + * query + * + */ + public static void main(String[] args) { + String input_RDF_path = args[0]; + String queryString = args[1]; + Model model = ModelFactory.createOntologyModel(); + InputStream in = FileManager.get().open(input_RDF_path); + model.read(in, null); + Query query = QueryFactory.create(queryString); + QueryExecution qe = QueryExecutionFactory.create(query, model); + ResultSet results = qe.execSelect(); + String res = ""; + while (results.hasNext()) { + QuerySolution qs = results.next(); + Iterator<String> vars = qs.varNames(); + while (vars.hasNext()) { + String var = vars.next(); + res += "?" + var + "\t" + getValue(qs, var) + "\r\n"; + System.out.println(res); + } + } + } + + private static String getValue(QuerySolution qs, String var) { + RDFNode n = qs.get(var); + return n.toString(); + } +}