use of org.openrdf.query.QueryEvaluationException in project blueprints by tinkerpop.
the class PropertyGraphSailTest method testSPARQL.
@Test
public void testSPARQL() throws Exception {
int count;
String queryStr = "PREFIX pgm: <" + PropertyGraphSail.ONTOLOGY_NS + ">\n" + "PREFIX prop: <" + PropertyGraphSail.PROPERTY_NS + ">\n" + "SELECT ?project ?name WHERE {\n" + " ?marko prop:name \"marko\".\n" + " ?e1 pgm:label \"knows\".\n" + " ?e1 pgm:tail ?marko.\n" + " ?e1 pgm:head ?friend.\n" + " ?e2 pgm:label \"created\".\n" + " ?e2 pgm:tail ?friend.\n" + " ?e2 pgm:head ?project.\n" + " ?project prop:name ?name.\n" + "}";
System.out.println(queryStr);
ParsedQuery query = new SPARQLParser().parseQuery(queryStr, "http://example.org/bogus/");
CloseableIteration<? extends BindingSet, QueryEvaluationException> results = sc.evaluate(query.getTupleExpr(), query.getDataset(), new EmptyBindingSet(), false);
try {
count = 0;
while (results.hasNext()) {
count++;
BindingSet set = results.next();
URI project = (URI) set.getValue("project");
Literal name = (Literal) set.getValue("name");
assertNotNull(project);
assertNotNull(name);
System.out.println("project = " + project + ", name = " + name);
}
} finally {
results.close();
}
assertEquals(2, count);
}
use of org.openrdf.query.QueryEvaluationException in project blueprints by tinkerpop.
the class SailGraph method executeSparql.
/**
* Evaluate a SPARQL query against the SailGraph (http://www.w3.org/TR/rdf-sparql-query/). The result is a mapping between the ?-bindings and the bound URI, blank node, or literal represented as a Vertex.
*
* @param sparqlQuery the SPARQL query to evaluate
* @return the mapping between a ?-binding and the URI, blank node, or literal as a Vertex
* @throws RuntimeException if an error occurs in the SPARQL query engine
*/
public List<Map<String, Vertex>> executeSparql(String sparqlQuery) throws RuntimeException {
try {
sparqlQuery = getPrefixes() + sparqlQuery;
final SPARQLParser parser = new SPARQLParser();
final ParsedQuery query = parser.parseQuery(sparqlQuery, null);
boolean includeInferred = false;
final CloseableIteration<? extends BindingSet, QueryEvaluationException> results = this.sailConnection.get().evaluate(query.getTupleExpr(), query.getDataset(), new MapBindingSet(), includeInferred);
final List<Map<String, Vertex>> returnList = new ArrayList<Map<String, Vertex>>();
try {
while (results.hasNext()) {
BindingSet bs = results.next();
Map<String, Vertex> returnMap = new HashMap<String, Vertex>();
for (Binding b : bs) {
returnMap.put(b.getName(), this.getVertex(b.getValue().toString()));
}
returnList.add(returnMap);
}
} finally {
results.close();
}
return returnList;
} catch (Exception e) {
throw new RuntimeException(e.getMessage(), e);
}
}
use of org.openrdf.query.QueryEvaluationException in project blueprints by tinkerpop.
the class GraphSailConnection method evaluateInternal.
public CloseableIteration<? extends BindingSet, QueryEvaluationException> evaluateInternal(TupleExpr tupleExpr, final Dataset dataset, final BindingSet bindings, final boolean includeInferred) throws SailException {
try {
TripleSource tripleSource = new SailConnectionTripleSource(this, store.valueFactory, includeInferred);
EvaluationStrategyImpl strategy = new EvaluationStrategyImpl(tripleSource, dataset);
return strategy.evaluate(tupleExpr, bindings);
} catch (QueryEvaluationException e) {
throw new SailException(e);
}
}
use of org.openrdf.query.QueryEvaluationException in project gocd by gocd.
the class SesameGraph method selectFirst.
public BoundVariables selectFirst(String sparqlSelect) {
BoundVariables boundVariables;
TupleQueryResult tupleQueryResult = getTupleQueryResult(sparqlSelect);
try {
if (!tupleQueryResult.hasNext()) {
return null;
}
boundVariables = new SesameBoundVariables(tupleQueryResult.getBindingNames(), tupleQueryResult.next());
if (tupleQueryResult.hasNext()) {
tupleQueryResult.close();
throw new MoreThanOneResultFoundException(sparqlSelect);
}
} catch (QueryEvaluationException e) {
throw new ShineRuntimeException("Could not parse query: <<" + sparqlSelect + ">>", e);
}
return boundVariables;
}
use of org.openrdf.query.QueryEvaluationException in project stanbol by apache.
the class SesameYard method findReferences.
@Override
public QueryResultList<String> findReferences(FieldQuery parsedQuery) throws YardException, IllegalArgumentException {
if (parsedQuery == null) {
throw new IllegalArgumentException("The parsed query MUST NOT be NULL!");
}
final SparqlFieldQuery query = SparqlFieldQueryFactory.getSparqlFieldQuery(parsedQuery);
RepositoryConnection con = null;
TupleQueryResult results = null;
try {
con = repository.getConnection();
con.begin();
//execute the query
int limit = QueryUtils.getLimit(query, getConfig().getDefaultQueryResultNumber(), getConfig().getMaxQueryResultNumber());
results = executeSparqlFieldQuery(con, query, limit, false);
//parse the results
List<String> ids = limit > 0 ? new ArrayList<String>(limit) : new ArrayList<String>();
while (results.hasNext()) {
BindingSet result = results.next();
Value value = result.getValue(query.getRootVariableName());
if (value instanceof Resource) {
ids.add(value.stringValue());
}
}
con.commit();
return new QueryResultListImpl<String>(query, ids, String.class);
} catch (RepositoryException e) {
throw new YardException("Unable to execute findReferences query", e);
} catch (QueryEvaluationException e) {
throw new YardException("Unable to execute findReferences query", e);
} finally {
if (results != null) {
//close the result if present
try {
results.close();
} catch (QueryEvaluationException ignore) {
/* ignore */
}
}
if (con != null) {
try {
con.close();
} catch (RepositoryException ignore) {
/* ignore */
}
}
}
}
Aggregations