@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) ; } }
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) ; }
public FunctionEnvBase(ExecutionContext execCxt) { this(execCxt.getContext(), execCxt.getActiveGraph(), execCxt.getDataset()) ; execContext = 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) ; } }
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) ; }
public FunctionEnvBase(ExecutionContext execCxt) { this(execCxt.getContext(), execCxt.getActiveGraph(), execCxt.getDataset()) ; execContext = 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 ; }
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 ; }
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) ; }
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 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) ; }
@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 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) ; }
@Override protected QueryIterator execObjectList(Binding binding, Var listVar, Node predicate, List<Node> objectArgs, ExecutionContext execCxt) { // subject a variable. if ( objectArgs.size() != 2 ) throw new ExprEvalException("ListIndex : object not a list of length 2") ; Node indexNode = objectArgs.get(0) ; Node memberNode = objectArgs.get(1) ; final Collection<Node> x ; if ( ! Var.isVar(memberNode) ) // If memberNode is defined, find lists containing it. x = GraphList.listFromMember(new GNode(execCxt.getActiveGraph(), memberNode)) ; else // Hard. Subject unbound, no fixed member. Find every list and use BFI. x = GraphList.findAllLists(execCxt.getActiveGraph()) ; return super.allLists(binding, x, listVar, predicate, new PropFuncArg(objectArgs, null), execCxt) ; }
private QueryIterator execEvaluatedConcrete(Binding binding, Node containerNode, Node predicate, Node member, ExecutionContext execCxt) { Graph graph = execCxt.getActiveGraph() ; QueryIterator qIter = new QueryIterTriplePattern(QueryIterRoot.create(execCxt), new Triple(containerNode, predicate, member), execCxt) ; return qIter ; }
public QueryIterator build(QueryIterator input, ExecutionContext execCxt) { Graph graph = execCxt.getActiveGraph(); if( !(graph instanceof PelletInfGraph) ) throw new UnsupportedOperationException( "A Pellet-backed model is required" ); PelletInfGraph pellet = (PelletInfGraph) graph; pellet.prepare(); Query query = parsePattern( pellet ); if( query != null ) { return new PelletQueryIterator( pellet, query, input, execCxt ); } else { return new StageGeneratorGeneric().execute( pattern, input, 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) ; }
@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) ; }
protected QueryIterator execute(OpQuadPattern quadPattern, QueryIterator input) { // Convert to BGP forms to execute in this graph-centric engine. if (quadPattern.isDefaultGraph() && execCxt.getActiveGraph() == execCxt.getDataset().getDefaultGraph()) { // Note we tested that the containing graph was the dataset's // default graph. // Easy case. OpBGP opBGP = new OpBGP(quadPattern.getBasicPattern()) ; return execute(opBGP, input) ; } // Not default graph - (graph .... ) OpBGP opBGP = new OpBGP(quadPattern.getBasicPattern()) ; OpGraph op = new OpGraph(quadPattern.getGraphNode(), opBGP) ; return execute(op, input) ; }