public static Op quadize(Op op) { final Deque<QuadSlot> stack = new ArrayDeque<>() ; QuadSlot qSlot = new QuadSlot(Quad.defaultGraphNodeGenerated, Quad.defaultGraphNodeGenerated) ; stack.push(qSlot) ; // Starting condition OpVisitor before = new Pusher(stack) ; OpVisitor after = new Popper(stack) ; TransformQuadGraph qg = new TransformQuadGraph(stack, before, after) ; return Transformer.transformSkipService(qg, null, op, before, after) ; }
public static Op quadizeBlock(Op op) { final Deque<QuadSlot> stack = new ArrayDeque<>() ; QuadSlot qSlot = new QuadSlot(Quad.defaultGraphNodeGenerated, Quad.defaultGraphNodeGenerated) ; stack.push(qSlot) ; // Starting condition OpVisitor before = new Pusher(stack) ; OpVisitor after = new Popper(stack) ; TransformQuadBlockGraph qg = new TransformQuadBlockGraph(stack, before, after) ; return Transformer.transformSkipService(qg, null, op, before, after) ; }
@Override public void visit(OpGraph opGraph) { // Name in SPARQL Node gn = opGraph.getNode() ; // Name in rewrite Node gnQuad = gn ; if ( Var.isVar(gn) ) { Collection<Var> vars = OpVars.mentionedVars(opGraph.getSubOp()) ; if ( vars.contains(gn) ) gnQuad = varAlloc.allocVar() ; } //System.out.println("Pusher: "+gn) ; stack.push(new QuadSlot(gn, gnQuad)) ; } }