@Override public Valuator prepare(VariableIndexes vi) { //super.prepare(vi) ; // Not needed - we work down, not up. //varIndexes = vi ; // Just need to remember our index index = vi.indexOf(varName) ; return this ; }
public Valuator prepare(VariableIndexes vi) { //varIndexes = vi ; if (children != null) { for (int i = 0; i < children.length; ++i) { Object n = children[i]; if ( n instanceof Expression ) { ((Expression)n).prepare(vi); } } } // This object is its own Valuator (if its an expression) // Effect is to return the top node - rest were ignored. return this ; }
public StagePattern(Binding binding, BasicPattern pattern, ExecutionContext qCxt) { super(qCxt) ; this.binding = binding ; QueryHandler qh = qCxt.getActiveGraph().queryHandler() ; com.hp.hpl.jena.graph.query.Query graphQuery = new com.hp.hpl.jena.graph.query.Query() ; //System.out.println("StageBasePattern: "+pattern) ; Set<Var> vars = new HashSet<Var>() ; compilePattern(graphQuery, pattern.getList(), binding, vars) ; projectionVars = projectionVars(vars) ; // **** No constraints done here currently //QueryEngineUtils.compileConstraints(graphQuery, constraints) ; // Start our next iterator. BindingQueryPlan plan = qh.prepareBindings(graphQuery, projectionVars); graphIter = plan.executeBindings() ; if ( graphIter == null ) Log.warn(this, "Graph Iterator is null") ; }
private static Binding graphResultsToBinding(Binding parent, Domain d, Var[] projectionVars) { // Copy out Binding binding = new BindingMap(parent) ; for ( int i = 0 ; i < projectionVars.length ; i++ ) { Var var = projectionVars[i] ; Node n = d.get(i) ; if ( n == null ) // There was no variable of this name. continue ; binding.add(var, n) ; } return binding ; }
public RDQL_NodeValue evalRDQL(com.hp.hpl.jena.query.Query q, IndexValues env) { // Result is a copy as a bound variable. com.hp.hpl.jena.graph.Node v = (Node)env.get(index) ; if ( v == null ) { Log.warn(this, "Unbound variable: "+varName) ; WorkingVar tmp = new WorkingVar() ; tmp.setString("unset: "+varName+"/"+index) ; return tmp ; } WorkingVar var = new WorkingVar() ; var.setNode(v) ; return var ; }
private static void compilePattern(com.hp.hpl.jena.graph.query.Query graphQuery, List<Triple> pattern, Binding presets, Set<Var> vars) { if ( pattern == null ) return ; for (Iterator<Triple>iter = pattern.listIterator(); iter.hasNext();) { Triple t = iter.next(); t = Substitute.substitute(t, presets) ; if ( vars != null ) { if ( t.getSubject().isVariable() ) vars.add(Var.alloc(t.getSubject())) ; if ( t.getPredicate().isVariable() ) vars.add(Var.alloc(t.getPredicate())) ; if ( t.getObject().isVariable() ) vars.add(Var.alloc(t.getObject())) ; } graphQuery.addMatch(t); } }