Search in sources :

Example 1 with QueryEvaluationException

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);
}
Also used : BindingSet(org.openrdf.query.BindingSet) EmptyBindingSet(org.openrdf.query.impl.EmptyBindingSet) SPARQLParser(org.openrdf.query.parser.sparql.SPARQLParser) EmptyBindingSet(org.openrdf.query.impl.EmptyBindingSet) QueryEvaluationException(org.openrdf.query.QueryEvaluationException) ParsedQuery(org.openrdf.query.parser.ParsedQuery) Literal(org.openrdf.model.Literal) URI(org.openrdf.model.URI) Test(org.junit.Test)

Example 2 with QueryEvaluationException

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);
    }
}
Also used : Binding(org.openrdf.query.Binding) Vertex(com.tinkerpop.blueprints.Vertex) MapBindingSet(org.openrdf.query.impl.MapBindingSet) BindingSet(org.openrdf.query.BindingSet) SPARQLParser(org.openrdf.query.parser.sparql.SPARQLParser) ParsedQuery(org.openrdf.query.parser.ParsedQuery) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) SailException(org.openrdf.sail.SailException) QueryEvaluationException(org.openrdf.query.QueryEvaluationException) RDFHandlerException(org.openrdf.rio.RDFHandlerException) QueryEvaluationException(org.openrdf.query.QueryEvaluationException) MapBindingSet(org.openrdf.query.impl.MapBindingSet) Map(java.util.Map) HashMap(java.util.HashMap)

Example 3 with QueryEvaluationException

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);
    }
}
Also used : SailConnectionTripleSource(net.fortytwo.sesametools.SailConnectionTripleSource) TripleSource(org.openrdf.query.algebra.evaluation.TripleSource) QueryEvaluationException(org.openrdf.query.QueryEvaluationException) SailConnectionTripleSource(net.fortytwo.sesametools.SailConnectionTripleSource) SailException(org.openrdf.sail.SailException) EvaluationStrategyImpl(org.openrdf.query.algebra.evaluation.impl.EvaluationStrategyImpl)

Example 4 with QueryEvaluationException

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;
}
Also used : BoundVariables(com.thoughtworks.studios.shine.semweb.BoundVariables) ShineRuntimeException(com.thoughtworks.studios.shine.ShineRuntimeException) QueryEvaluationException(org.openrdf.query.QueryEvaluationException) MoreThanOneResultFoundException(com.thoughtworks.studios.shine.semweb.MoreThanOneResultFoundException) TupleQueryResult(org.openrdf.query.TupleQueryResult)

Example 5 with QueryEvaluationException

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 */
            }
        }
    }
}
Also used : RepositoryConnection(org.openrdf.repository.RepositoryConnection) BindingSet(org.openrdf.query.BindingSet) Resource(org.openrdf.model.Resource) RepositoryException(org.openrdf.repository.RepositoryException) YardException(org.apache.stanbol.entityhub.servicesapi.yard.YardException) QueryEvaluationException(org.openrdf.query.QueryEvaluationException) SparqlFieldQuery(org.apache.stanbol.entityhub.query.sparql.SparqlFieldQuery) Value(org.openrdf.model.Value) QueryResultListImpl(org.apache.stanbol.entityhub.core.query.QueryResultListImpl) TupleQueryResult(org.openrdf.query.TupleQueryResult)

Aggregations

QueryEvaluationException (org.openrdf.query.QueryEvaluationException)12 BindingSet (org.openrdf.query.BindingSet)7 URI (org.openrdf.model.URI)5 TupleQueryResult (org.openrdf.query.TupleQueryResult)5 ParsedQuery (org.openrdf.query.parser.ParsedQuery)5 SPARQLParser (org.openrdf.query.parser.sparql.SPARQLParser)5 Test (org.junit.Test)4 Value (org.openrdf.model.Value)4 EmptyBindingSet (org.openrdf.query.impl.EmptyBindingSet)4 SailException (org.openrdf.sail.SailException)4 SparqlFieldQuery (org.apache.stanbol.entityhub.query.sparql.SparqlFieldQuery)3 YardException (org.apache.stanbol.entityhub.servicesapi.yard.YardException)3 RepositoryConnection (org.openrdf.repository.RepositoryConnection)3 RepositoryException (org.openrdf.repository.RepositoryException)3 SailConnection (org.openrdf.sail.SailConnection)3 ShineRuntimeException (com.thoughtworks.studios.shine.ShineRuntimeException)2 BoundVariables (com.thoughtworks.studios.shine.semweb.BoundVariables)2 Vertex (com.tinkerpop.blueprints.Vertex)2 HashMap (java.util.HashMap)2 SailConnectionTripleSource (net.fortytwo.sesametools.SailConnectionTripleSource)2