public OpExecutorTDB2(ExecutionContext execCxt) { super(execCxt) ; // NB. The dataset may be a TDB one, or a general one. // Any merged union graph magic (for a TDB dataset was handled // in QueryEngineTDB). isForTDB = (execCxt.getActiveGraph() instanceof GraphTDB) ; }
public OpExecutorTDB1(ExecutionContext execCxt) { super(execCxt) ; // NB. The dataset may be a TDB one, or a general one. // Any merged union graph magic (for a TDB dataset was handled // in QueryEngineTDB). isForTDB = (execCxt.getActiveGraph() instanceof GraphTDB) ; }
@Override protected QueryIterator execute(OpBGP opBGP, QueryIterator input) { if ( ! isForTDB ) return super.execute(opBGP, input) ; GraphTDB graph = (GraphTDB)execCxt.getActiveGraph() ; return executeBGP(graph, opBGP, input, null, execCxt) ; }
public FunctionEnvBase(ExecutionContext execCxt) { this(execCxt.getContext(), execCxt.getActiveGraph(), execCxt.getDataset()) ; execContext = execCxt ; }
private QueryIterator verify(Binding binding, Node containerNode, Node member, ExecutionContext execCxt) { int count = GraphContainerUtils.countContainerMember(execCxt.getActiveGraph(), containerNode, typeNode, member) ; return new QueryIterYieldN(count, binding, execCxt) ; }
@Override protected QueryIterator execObjectBound(Binding binding, Var listVar, Node predicate, Node length, ExecutionContext execCxt) { Graph graph = execCxt.getActiveGraph() ; return length(binding, graph, listVar, Var.alloc(length) , execCxt) ; } }
@Override protected QueryIterator execute(OpBGP opBGP, QueryIterator input) { if ( ! isForTDB ) return super.execute(opBGP, input) ; GraphTDB graph = (GraphTDB)execCxt.getActiveGraph() ; return executeBGP(graph, opBGP, input, null, execCxt) ; }
private QueryIterBlockTriples(QueryIterator input, BasicPattern pattern , ExecutionContext execContext) { super(input, execContext) ; this.pattern = pattern ; graph = execContext.getActiveGraph() ; // Create a chain of triple iterators. QueryIterator chain = getInput() ; for (Triple triple : pattern) chain = new QueryIterTriplePattern(chain, triple, execContext) ; output = chain ; }
@Override protected QueryIterator execute(OpBGP opBGP, QueryIterator input) { if ( ! isForHDT ) return super.execute(opBGP, input) ; HDTGraph graph = (HDTGraph)execCxt.getActiveGraph() ; return executeBGP(graph, opBGP, input, null, execCxt); }
private QueryIterator members(Binding binding, Node listNode, Var itemVar, ExecutionContext execCxt) { List<Node> members = GraphList.members(new GNode(execCxt.getActiveGraph(), listNode)) ; return new QueryIterExtendByVar(binding, itemVar, members.iterator(), execCxt) ; }
@Override public QueryIterator execute(BasicPattern pattern, QueryIterator input, ExecutionContext execCxt) { if ( input == null ) Log.error(this, "Null input to " + Lib.classShortName(this.getClass())) ; Graph graph = execCxt.getActiveGraph() ; // Choose reorder transformation and execution strategy. ReorderTransformation reorder = reorderFixed ; StageGenerator executor = StageBuilder.executeInline ; return execute(pattern, reorder, executor, input, execCxt) ; }
@Override protected QueryIterator execObjectBound(Binding binding, Var listVar, Node predicate, Node object, ExecutionContext execCxt) { // Given a concrete node, find lists it's in GNode gnode = new GNode(execCxt.getActiveGraph(), object) ; List<Node> lists = GraphList.listFromMember(gnode) ; return new QueryIterExtendByVar(binding, listVar, lists.iterator(), execCxt) ; }
private QueryIterator verify(Binding binding, Node listNode, Node member, ExecutionContext execCxt) { int count = GraphList.occurs(new GNode(execCxt.getActiveGraph(), listNode), member) ; return new QueryIterYieldN(count, binding) ; }
private QueryIterPropertyTable(QueryIterator input, BasicPattern pattern, ExecutionContext execContext) { super(input, execContext); this.pattern = pattern; graph = execContext.getActiveGraph(); // Create a chain of triple iterators. QueryIterator chain = getInput(); Collection<BasicPattern> patterns = sort(pattern); for (BasicPattern p : patterns) chain = new QueryIterPropertyTableRow(chain, p, execContext); output = chain; }
public QueryIterator build(final QueryIterator input, final ExecutionContext execCxt) { final Graph graph = execCxt.getActiveGraph(); if (!(graph instanceof PelletInfGraph)) throw new UnsupportedOperationException("A Pellet-backed model is required"); final PelletInfGraph pellet = (PelletInfGraph) graph; pellet.prepare(); final Query query = parsePattern(pellet); if (query != null) return new PelletQueryIterator(pellet, query, input, execCxt); else return new StageGeneratorGeneric().execute(_pattern, input, execCxt); }
private QueryIterator execEvaluatedConcrete(Binding binding, Node containerNode, Node predicate, Node member, ExecutionContext execCxt) { QueryIterator input = QueryIterSingleton.create(binding, execCxt) ; Graph graph = execCxt.getActiveGraph() ; QueryIterator qIter = new QueryIterTriplePattern(input, new Triple(containerNode, predicate, member), execCxt) ; return qIter ; }
@Override public QueryIterator execute(BasicPattern pattern, QueryIterator input, ExecutionContext execCxt) { // --- In case this isn't for GraphPropertyTable Graph g = execCxt.getActiveGraph() ; if ( ! ( g instanceof GraphPropertyTable ) ) return above.execute(pattern, input, execCxt) ; if (pattern.size() <= 1){ return above.execute(pattern, input, execCxt) ; } return QueryIterPropertyTable.create(input, pattern, execCxt); }
@Override public QueryIterator execute(BasicPattern pattern, QueryIterator input, ExecutionContext execCxt) { // --- In case this isn't for TDB Graph g = execCxt.getActiveGraph() ; if ( ! ( g instanceof GraphTDB ) ) // Not us - bounce up the StageGenerator chain return above.execute(pattern, input, execCxt) ; GraphTDB graph = (GraphTDB)g ; Predicate<Tuple<NodeId>> filter = QC2.getFilter(execCxt.getContext()) ; return SolverLib.execute(graph, pattern, input, filter, execCxt) ; } }
@Override public QueryIterator execOneList(Binding binding, Node listNode, Node predicate, Node length, ExecutionContext execCxt) { Graph graph = execCxt.getActiveGraph() ; if ( Var.isVar(listNode) ) throw new ARQInternalErrorException("listLength: Subject is a variable") ; // Case : arg 1 (the list) is bound and arg 2 not bound => generate possibilities // Case : arg 1 is bound and arg 2 is bound => test for membership. if ( Var.isVar(length) ) return length(binding, graph, listNode, Var.alloc(length) , execCxt) ; else return verify(binding, graph, listNode, length, execCxt) ; }
TripleMapper(Binding binding, Triple pattern, ExecutionContext cxt) { super(cxt) ; this.s = substitute(pattern.getSubject(), binding) ; this.p = substitute(pattern.getPredicate(), binding) ; this.o = substitute(pattern.getObject(), binding) ; this.binding = binding ; Node s2 = tripleNode(s) ; Node p2 = tripleNode(p) ; Node o2 = tripleNode(o) ; Graph graph = cxt.getActiveGraph() ; this.graphIter = graph.find(s2, p2, o2) ; }