public void visit(OpPropFunc opPropFunc) {
   Table table = eval(opPropFunc.getSubOp());
   table =
       evaluator.propertyFunction(
           table,
           opPropFunc.getProperty(),
           opPropFunc.getSubjectArgs(),
           opPropFunc.getObjectArgs());
   push(table);
 }
 @Override
 public Op transform(OpPropFunc opPropFunc, Op subOp) {
   if (opPropFunc.getSubOp() != subOp)
     opPropFunc =
         new OpPropFunc(
             opPropFunc.getProperty(),
             opPropFunc.getSubjectArgs(),
             opPropFunc.getObjectArgs(),
             subOp);
   // Put the (graph) back round it so the property function works on the named graph.
   return new OpGraph(getNode(), opPropFunc);
 }