/** Create a SPARQL query from the given string. * * @param queryString The query string * @throws QueryException Thrown when a parse error occurs */ static public Query create(String queryString) { return create(queryString, Syntax.defaultQuerySyntax) ; }
/** Create a query from the given string with the * * @param queryString The query string * @param syntax {@link Syntax} * @throws QueryException Thrown when a parse error occurs */ static public Query create(String queryString, Syntax syntax) { return create(queryString, null, syntax) ; }
/** Create a query from the given string with the * * @param queryString The query string * @param syntax {@link Syntax} * @throws QueryException Thrown when a parse error occurs */ static public Query create(String queryString, Syntax syntax) { return create(queryString, null, syntax) ; }
@Override public Map<URI, MatchResult> search(String query) { StringBuilder queryBuilder = new StringBuilder(); queryBuilder .append("PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#> ") .append("PREFIX sawsdl:<http://www.w3.org/ns/sawsdl#> ") .append("PREFIX rdfs:<http://www.w3.org/2000/01/rdf-schema#> ") .append("SELECT DISTINCT ?s ") .append("WHERE { ?s <").append(searchProperty).append("> \"").append(query).append("\" . } "); Query sparqlQuery = QueryFactory.create(queryBuilder.toString()); return search(query, sparqlQuery); }
@Override public QueryResultTable sparqlSelect(String queryString) throws MalformedQueryException, ModelRuntimeException { Query jenaQuery = QueryFactory.create(queryString); return new QueryResultTableImpl(jenaQuery, this.dataset); }
@Override public QueryExecution apply(final RdfStream rdfStream) { try { final Model model = rdfStream.asModel(); final Query sparqlQuery = QueryFactory.create(IOUtils.toString(query)); return QueryExecutionFactory.create(sparqlQuery, model); } catch (final IOException e) { throw new IllegalStateException(e); } }
public synchronized Set<Var> getResultVars() { if (this.resultVars == null) { this.resultVars = new HashSet<Var>(); for (String varName : QueryFactory.create(this.sparqlQuery) .getResultVars()) { this.resultVars.add(Var.alloc(varName)); } } return this.resultVars; }
@Override public QueryResultTable sparqlSelect(String queryString) throws ModelRuntimeException { assertModel(); log.debug("Query " + queryString); Query query = QueryFactory.create(queryString); return new QueryResultTableImpl(query, this.jenaModel); }
/** * Makes a copy of this query. Copies by parsing a query from the serialized form of this query * @return Copy of this query */ public Query cloneQuery() { // A little crude. // Must use toString() rather than serialize() because we may not know how to serialize extended syntaxes String qs = this.toString(); return QueryFactory.create(qs, getSyntax()) ; }
/** Execute a query, expecting the result to be one row, one column. Return that one RDFNode */ public static RDFNode getExactlyOne(String qs, Dataset ds) { Query q = QueryFactory.create(qs) ; if ( q.getResultVars().size() != 1 ) throw new ARQException("getExactlyOne: Must have exactly one result columns") ; String varname = q.getResultVars().get(0) ; QueryExecution qExec = QueryExecutionFactory.create(q, ds); return getExactlyOne(qExec, varname) ; }
/** Create a QueryExecution that will access a SPARQL service over HTTP * @param service URL of the remote service * @param query Query string to execute * @param authenticator HTTP Authenticator * @return QueryExecution */ static public QueryExecution sparqlService(String service, String query, HttpAuthenticator authenticator) { checkNotNull(service, "URL for service is null") ; checkArg(query) ; return sparqlService(service, QueryFactory.create(query), authenticator) ; }
/** Execute a query, expecting the result to be one row, one column. Return that one RDFNode */ public static RDFNode getExactlyOne(String qs, Dataset ds) { Query q = QueryFactory.create(qs) ; if ( q.getResultVars().size() != 1 ) throw new ARQException("getExactlyOne: Must have exactly one result columns") ; String varname = q.getResultVars().get(0) ; QueryExecution qExec = QueryExecutionFactory.create(q, ds); return getExactlyOne(qExec, varname) ; }
/** Create a QueryExecution that will access a SPARQL service over HTTP * @param service URL of the remote service * @param query Query string to execute * @return QueryExecution */ static public QueryExecution sparqlService(String service, String query) { checkNotNull(service, "URL for service is null") ; checkArg(query) ; return sparqlService(service, QueryFactory.create(query)) ; }
private boolean execAsk(String queryStr) { Query askQuery = QueryFactory.create(queryStr); QueryExecution qe = QueryExecutionFactory.sparqlService(endpointURI, askQuery); try { return qe.execAsk(); } finally { qe.close(); } }
@Override public boolean sparqlAsk(String queryString) throws ModelRuntimeException { assertModel(); log.debug("Query " + queryString); Query query = QueryFactory.create(queryString); if(!query.isAskType()) { throw new ModelRuntimeException("The given query is not an ASK query"); } // else QueryExecution qexec = QueryExecutionFactory.create(query, this.jenaModel); return qexec.execAsk(); }
public Query cloneQuery() { // A little crude. IndentedLineBuffer buff = new IndentedLineBuffer() ; serialize(buff, getSyntax()) ; String qs = buff.toString() ; return QueryFactory.create(qs, getSyntax()) ; }
@Test public void sparql3() { // Requires OpDatasetNames Dataset dataset = TDBFactory.createDataset() ; Query query = QueryFactory.create("SELECT ?g { GRAPH ?g {} }") ; QueryExecution qExec = QueryExecutionFactory.create(query, dataset) ; ResultSet rs = qExec.execSelect() ; int n = ResultSetFormatter.consume(rs) ; assertEquals(0, n) ; }
@Test public void query2() { Dataset ds = create() ; Model m = ds.getDefaultModel() ; load1(m) ; String qs = "CONSTRUCT {?s ?p ?o } WHERE { GRAPH <http://example/graph/> {?s ?p ?o}}" ; Query q = QueryFactory.create(qs) ; QueryExecution qExec = QueryExecutionFactory.create(q, ds) ; Model m2 = qExec.execConstruct() ; assertTrue(m2.isEmpty()) ; }
@Test public void special1() { Dataset ds = create() ; Model m = ds.getDefaultModel() ; load1(m) ; String qs = "CONSTRUCT {?s ?p ?o } WHERE { GRAPH <"+defaultGraph+"> {?s ?p ?o}}" ; Query q = QueryFactory.create(qs) ; QueryExecution qExec = QueryExecutionFactory.create(q, ds) ; Model m2 = qExec.execConstruct() ; assertTrue(m.isIsomorphicWith(m2)) ; }
@Test public void query1() { Dataset ds = create() ; Model m = ds.getDefaultModel() ; load1(m) ; String qs = "CONSTRUCT {?s ?p ?o } WHERE {?s ?p ?o}" ; Query q = QueryFactory.create(qs) ; QueryExecution qExec = QueryExecutionFactory.create(q, ds) ; Model m2 = qExec.execConstruct() ; assertTrue(m.isIsomorphicWith(m2)) ; }