Mercurial > hg > semantic-sia
changeset 31:c572e86fb2fc
new
author | stevenh |
---|---|
date | Tue, 08 Jan 2013 18:49:01 +0000 |
parents | 63368689156b |
children | e54146082eaf |
files | src/org/qmul/eecs/c4dm/sparql/utilities/SparqlWrapperMethods.java |
diffstat | 1 files changed, 119 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/org/qmul/eecs/c4dm/sparql/utilities/SparqlWrapperMethods.java Tue Jan 08 18:49:01 2013 +0000 @@ -0,0 +1,119 @@ +package org.qmul.eecs.c4dm.sparql.utilities; + +import com.clarkparsia.pellet.sparqldl.jena.SparqlDLExecutionFactory; +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.ResultSet; +import com.hp.hpl.jena.query.ResultSetFormatter; +import com.hp.hpl.jena.query.Syntax; +import com.hp.hpl.jena.rdf.model.Model; +import com.hp.hpl.jena.rdf.model.Statement; +import com.hp.hpl.jena.rdf.model.StmtIterator; + +public class SparqlWrapperMethods { + + /** + * @param query + * @param m + * @return + */ + public static Model executeConstructQuery(String query, Model m) { + + // Now read the query file into a query object + Query q = QueryFactory.read(query, Syntax.syntaxARQ); // only required + // if using + // (e.g.) LET in + // SPARQL + + QueryExecution qe = QueryExecutionFactory.create(q, m); + + // We want to execute a CONSTRUCT query, do it, and return the new + // triples + Model newModel = qe.execConstruct(); + + // Print the query for better understanding + System.out.println(q.toString()); + + // Print the new triples + StmtIterator iter = newModel.listStatements(); + printStmts(iter); + + return newModel; + } + + /** + * @param query + * @param m + */ + public static void queryTheModel(String query, Model m) { + + // Now read the query file into a query object + Query q = QueryFactory.read(query, Syntax.syntaxARQ); // only required + // if using + // (e.g.) LET in + // SPARQL + + // Create a SPARQL-DL query execution for the given query and + // ontology model + QueryExecution qe = SparqlDLExecutionFactory.create(q, m); + + // We want to execute a SELECT query, do it, and return the result set + ResultSet rs = qe.execSelect(); + + // Print the query for better understanding + System.out.println(q.toString()); + + // There are different things we can do with the result set, for + // instance iterate over it and process the query solutions or, what we + // do here, just print out the results + ResultSetFormatter.out(rs); + + // And an empty line to make it pretty + System.out.println(); + } + + /** + * @param query + * @param m + */ + public static void askTheModel(String query, Model m) { + + // Now read the query file into a query object + Query q = QueryFactory.read(query); + + // Create a SPARQL-DL query execution for the given query and + // ontology model + QueryExecution qe = SparqlDLExecutionFactory.create(q, m); + + // We want to execute a SELECT query, do it, and return the result set + boolean result = qe.execAsk(); + + // Print the query for better understanding + System.out.println(q.toString()); + + // Print the result + System.out.println("Result: " + result); + + // And an empty line to make it pretty + System.out.println(); + } + + /** + * @param iter + */ + private static void printStmts(StmtIterator iter) { + Statement statement; + + while (iter.hasNext()) { + statement = iter.nextStatement(); + System.out.println(" | <" + statement.getSubject() + "> | <" + + statement.getPredicate() + "> | <" + + statement.getObject() + "> | "); + } + + // And an empty line to make it pretty + System.out.println(); + } +}