public static MappedConcept<DatasetGraph> createMappedConcept2(Query query) { QuadPattern qp = new QuadPattern(); qp.add(new Quad(Vars.g, Vars.s, Vars.p, Vars.o)); Agg<DatasetGraph> agg = new AggDatasetGraph(qp); Concept concept = new Concept(new ElementSubQuery(query), Vars.x); MappedConcept<DatasetGraph> result = new MappedConcept<DatasetGraph>(concept, agg); return result; }
@Override public Element transform(ElementSubQuery el, Query query) { if ( el.getQuery() == query ) return el ; return new ElementSubQuery(query) ; } }
public static MappedConcept<Graph> createMappedConcept(Query query) { // TODO We need to include the triple direction in var ?z BasicPattern bgp = new BasicPattern(); bgp.add(new Triple(Vars.s, Vars.p, Vars.o)); Template template = new Template(bgp); //Agg<Map<Node, Graph>> agg = AggMap.create(new BindingMapperExpr(new ExprVar(Vars.g)), new AggGraph(template)); Agg<Graph> agg = new AggGraph(template, Vars.z); Concept concept = new Concept(new ElementSubQuery(query), Vars.x); MappedConcept<Graph> result = new MappedConcept<Graph>(concept, agg); return result; }
@Override public void visit(ElementSubQuery el) { Query newQuery = QueryTransformOps.transform(el.getQuery(), transform, exprTransform) ; push(new ElementSubQuery(newQuery)) ; }
private void convertAsSubQuery(Op op) { Converter subConverter = new Converter(op) ; ElementSubQuery subQuery = new ElementSubQuery(subConverter.convert()) ; ElementGroup g = currentGroup() ; g.addElement(subQuery) ; }
@Override public void visit(ElementSubQuery el) { Query newQuery = QueryTransformOps.transform(el.getQuery(), transform, exprTransform) ; push(new ElementSubQuery(newQuery)) ; }
public static Query wrapAsSubQuery(Query query) { Element esq = new ElementSubQuery(query); Query result = new Query(); result.setQuerySelectType(); result.setQueryResultStar(true); result.setQueryPattern(esq); return result; }
@Override public void visit(ElementSubQuery el) { Query q = AbstractQueryBuilder.clone(el.getQuery()); push(new ElementSubQuery(AbstractQueryBuilder.rewrite( q, values))); }
@Override public void visit(ElementSubQuery el) { final Query q = el.getQuery(); q.getQueryPattern().visit( this ); }
public static Query wrapAsSubQuery(Query query, Var v) { Element esq = new ElementSubQuery(query); Query result = new Query(); result.setQuerySelectType(); result.getProject().add(v); result.setQueryPattern(esq); return result; }
@Override public void visit(ElementSubQuery el) { Query q = AbstractQueryBuilder.clone(el.getQuery()); push(new ElementSubQuery(AbstractQueryBuilder.rewrite( q, values))); }
@Override public void visit(ElementSubQuery el) { final Query q = el.getQuery(); q.getQueryPattern().visit( this ); }
/** * Create a service node with a union where the first member is to be interpreted as the * pattern that should be used for caching, and the second argument is the pattern to be * executed. * * @param patternOp * @param serviceNode * @param executionOp * @return */ public static OpService wrapWithServiceOld(Op patternOp, Node serviceNode, Op executionOp) { boolean silent = false; OpUnion union = new OpUnion(patternOp, executionOp); Query subQuery = OpAsQuery.asQuery(union); Element subElement = new ElementSubQuery(subQuery); ElementService elt = new ElementService(serviceNode, subElement, silent); OpService result = new OpService(serviceNode, union, elt, silent); return result; }
q.setQueryPattern(e); e = new ElementSubQuery(q); result.setQueryPattern(element); } else{ result = ((ElementSubQuery)element).getQuery();
protected Op compileElementSubquery(ElementSubQuery eltSubQuery) { AlgebraGenerator gen = new AlgebraGenerator(context, subQueryDepth+1) ; return gen.compile(eltSubQuery.getQuery()) ; }
public static Element limitElement(Element e, long limit) { Query subQuery = new Query(); subQuery.setQuerySelectType(); subQuery.setQueryResultStar(true); subQuery.setQueryPattern(e); subQuery.setLimit(limit); Element result = new ElementSubQuery(subQuery); return result; }