Mercurial > repos > mikel-egana-aranguren > sparql_galaxy
view src/es/cbgp/galaxy/sparql/jena/SPARQLQueryEngine.java @ 1:117a4b4c002d draft
Added README but installation procedure not tested yet, pushed for backup
author | Mikel Egana Aranguren <mikel-egana-aranguren@toolshed.g2.bx.psu.edu> |
---|---|
date | Thu, 25 Oct 2012 18:35:25 +0200 |
parents | 137f9a4a6337 |
children | b8bf1af83841 |
line wrap: on
line source
package es.cbgp.galaxy.sparql.jena; import java.io.BufferedReader; import java.io.FileReader; import java.util.Iterator; import com.hp.hpl.jena.ontology.OntModel; import com.hp.hpl.jena.query.*; import com.hp.hpl.jena.shared.Lock; public class SPARQLQueryEngine { private OntModel queryModel; private String sparqlFile; public SPARQLQueryEngine(OntModel om) { this.queryModel = om; } public String executeQuery() throws Exception { String finalQuery = loadQueryFromFile(); // System.out.println("Final query: " + finalQuery); Query query = null; QueryExecution qexec = null; try { queryModel.enterCriticalSection(Lock.READ); query = QueryFactory.create(finalQuery); qexec = QueryExecutionFactory.create(query, queryModel); ResultSet results = qexec.execSelect(); String res = ""; while (results.hasNext()) { QuerySolution qs = results.next(); Iterator<String> vars = qs.varNames(); while (vars.hasNext()) { String var = vars.next(); if (!qs.getResource(var).isAnon()) { res += "?" + var + "\t" + qs.getResource(var) + "\n"; } } } return res; } catch (Exception e) { e.printStackTrace(); } finally { queryModel.leaveCriticalSection(); if (qexec != null) { qexec.close(); } } return null; } private String loadQueryFromFile() throws Exception { String query = ""; BufferedReader bL = new BufferedReader(new FileReader(this.sparqlFile)); while (bL.ready()) { query += bL.readLine(); } bL.close(); return query; } public void setQueryFile(String sparqlFile) { this.sparqlFile = sparqlFile; } }