private ParsedTupleTemplate(Template template, ParsedTupleQuery query, BindingSet args) { super(query.getSourceString(), query.getTupleExpr()); setDataset(query.getDataset()); this.template = template; this.args = args; }
/** * Creates a new {@link MongoPcjQueryNode}. * * @param sparql - sparql query whose results will be stored in PCJ document. (not empty of null) * @param pcjId - name of an existing PCJ. (not empty or null) * @param pcjDocs - {@link MongoPcjDocuments} used to maintain PCJs in mongo. (not null) * * @throws MalformedQueryException - The SPARQL query needs to contain a projection. */ public MongoPcjQueryNode(final String sparql, final String pcjId, final MongoPcjDocuments pcjDocs) throws MalformedQueryException { checkArgument(!Strings.isNullOrEmpty(sparql)); checkArgument(!Strings.isNullOrEmpty(pcjId)); this.pcjDocs = checkNotNull(pcjDocs); this.pcjId = pcjId; final SPARQLParser sp = new SPARQLParser(); final ParsedTupleQuery pq = (ParsedTupleQuery) sp.parseQuery(sparql, null); final TupleExpr te = pq.getTupleExpr(); Preconditions.checkArgument(PCJOptimizerUtilities.isPCJValid(te), "TupleExpr is an invalid PCJ."); final Optional<Projection> projection = new ParsedQueryUtil().findProjection(pq); if (!projection.isPresent()) { throw new MalformedQueryException("SPARQL query '" + sparql + "' does not contain a Projection."); } setProjectionExpr(projection.get()); }
public void handleTupleQuery(ParsedTupleQuery query) { try { init(); subject = vf.createBNode(); handleType(SeRQO.TUPLEQUERY); handleChild(SeRQO.TUPLEEXPR, query.getTupleExpr()); rdf.endRDF(); } catch (RDFHandlerException e) { throw new UndeclaredThrowableException(e); } }
protected int countQueryResults(String query) throws Exception { ParsedTupleQuery tupleQuery = QueryParserUtil.parseTupleQuery(QueryLanguage.SERQL, query + " using namespace ex = <" + EXAMPLE_NS + ">", null); return countElements(con.evaluate(tupleQuery.getTupleExpr(), null, EmptyBindingSet.getInstance(), false)); }
/** * Returns a <tt>SelectQuery</tt> for the specified SPARQL SELECT query string. * * @param string * the query string, in SPARQL and without relative URIs * @return the corresponding <tt>SelectQuery</tt> * @throws ParseException * in case the string does not denote a valid SPARQL SELECT query */ public static SelectQuery from(final String string) throws ParseException { Preconditions.checkNotNull(string); SelectQuery query = CACHE.getIfPresent(string); if (query == null) { final ParsedTupleQuery parsedQuery; try { parsedQuery = QueryParserUtil.parseTupleQuery(QueryLanguage.SPARQL, string, null); } catch (final IllegalArgumentException ex) { throw new ParseException(string, "SPARQL query not in SELECT form", ex); } catch (final MalformedQueryException ex) { throw new ParseException(string, "Invalid SPARQL query: " + ex.getMessage(), ex); } query = new SelectQuery(string, parsedQuery.getTupleExpr(), parsedQuery.getDataset()); CACHE.put(string, query); } return query; }
@Override public TupleQueryResult evaluate() throws QueryEvaluationException { TupleExpr tupleExpr = getParsedQuery().getTupleExpr(); CloseableIteration<? extends BindingSet, QueryEvaluationException> bindingsIter; bindingsIter = AbstractQueryPreparer.this.evaluate(tupleExpr, getActiveDataset(), getBindings(), getIncludeInferred(), getMaxExecutionTime()); bindingsIter = enforceMaxQueryTime(bindingsIter); return new TupleQueryResultImpl(new ArrayList<String>(tupleExpr.getBindingNames()), bindingsIter); }
@Override public TupleQueryResult evaluate() throws QueryEvaluationException { TupleExpr tupleExpr = getParsedQuery().getTupleExpr(); try { CloseableIteration<? extends BindingSet, QueryEvaluationException> bindingsIter; SailConnection sailCon = getSailConnection(); bindingsIter = sailCon.evaluate(tupleExpr, getActiveDataset(), getBindings(), getIncludeInferred()); bindingsIter = enforceMaxQueryTime(bindingsIter); return new TupleQueryResultImpl(new ArrayList<String>(tupleExpr.getBindingNames()), bindingsIter); } catch (SailException e) { throw new QueryEvaluationException(e.getMessage(), e); } }
@Override public TupleQueryResult evaluate() throws QueryEvaluationException { TupleExpr tupleExpr = getParsedQuery().getTupleExpr(); try { CloseableIteration<? extends BindingSet, QueryEvaluationException> bindingsIter; SailConnection sailCon = getConnection().getSailConnection(); bindingsIter = sailCon.evaluate(tupleExpr, getActiveDataset(), getBindings(), getIncludeInferred()); bindingsIter = enforceMaxQueryTime(bindingsIter); return new IteratingTupleQueryResult(new ArrayList<String>(tupleExpr.getBindingNames()), bindingsIter); } catch (SailException e) { throw new QueryEvaluationException(e.getMessage(), e); } }
/*** * Takes a SELECT query and * @param query */ public void unfold(ParsedTupleQuery query) { ResolutionVisitor visitor = new ResolutionVisitor(rules); TupleExpr body = query.getTupleExpr(); VarNameCollector collector = new VarNameCollector(); body.visit(collector); Set<String> bindingNames = collector.getVarNames(); visitor.setBindingNames(bindingNames); body.visit(visitor); while (visitor.producedChange) { visitor.producedChange = false; body.visit(visitor); } }
protected int countQueryResults(String query) throws Exception { ParsedTupleQuery tupleQuery = QueryParserUtil.parseTupleQuery(QueryLanguage.SERQL, query + " using namespace ex = <" + EXAMPLE_NS + ">", null); return countElements(con.evaluate(tupleQuery.getTupleExpr(), null, EmptyBindingSet.getInstance(), false)); }
final ParsedTupleQuery pq = (ParsedTupleQuery) sp.parseQuery(meta.getSparql(), null); setProjectionExpr((Projection) pq.getTupleExpr()); final Set<VariableOrder> orders = meta.getVarOrders();
String query = "SELECT S, P, O FROM {S} P {O}"; ParsedTupleQuery tupleQuery = QueryParserUtil.parseTupleQuery(QueryLanguage.SERQL, query, null); assertEquals(5, countElements(con2.evaluate(tupleQuery.getTupleExpr(), null, EmptyBindingSet.getInstance(), false))); Runnable clearer = new Runnable() {
public void render(ParsedTupleQuery query, RDFHandler handler) throws RDFHandlerException { handler.startRDF(); Resource querySubj = valueFactory.createBNode(); handler.handleStatement(valueFactory.createStatement(querySubj, RDF.TYPE, SP.SELECT_CLASS)); if (output.text) { handler.handleStatement(valueFactory.createStatement(querySubj, SP.TEXT_PROPERTY, valueFactory.createLiteral(query.getSourceString()))); } if (output.rdf) { TupleExpr expr = query.getTupleExpr(); SpinVisitor visitor = new SpinVisitor(handler, null, querySubj, query.getDataset()); expr.visit(visitor); visitor.end(); } handler.endRDF(); }
String query = "SELECT S, P, O FROM {S} P {O}"; ParsedTupleQuery tupleQuery = QueryParserUtil.parseTupleQuery(QueryLanguage.SERQL, query, null); assertEquals(5, countElements(con2.evaluate(tupleQuery.getTupleExpr(), null, EmptyBindingSet.getInstance(), false))); Runnable clearer = new Runnable() {
iter = con.evaluate(tupleQuery.getTupleExpr(), null, EmptyBindingSet.getInstance(), false); iter = con.evaluate(tupleQuery.getTupleExpr(), null, EmptyBindingSet.getInstance(), false);
iter = con.evaluate(tupleQuery.getTupleExpr(), null, EmptyBindingSet.getInstance(), false);
iter = con.evaluate(tupleQuery.getTupleExpr(), null, EmptyBindingSet.getInstance(), false);
iter = con.evaluate(tupleQuery.getTupleExpr(), null, EmptyBindingSet.getInstance(), false); iter = con.evaluate(tupleQuery.getTupleExpr(), null, EmptyBindingSet.getInstance(), false);
iter = con.evaluate(tupleQuery.getTupleExpr(), null, EmptyBindingSet.getInstance(), false);
iter = con.evaluate(tupleQuery.getTupleExpr(), null, EmptyBindingSet.getInstance(), false);