Class RdfDataSourceWithLocalCache.OpRewriteInjectCacheOps
java.lang.Object
org.aksw.jenax.dataaccess.sparql.polyfill.datasource.RdfDataSourceWithLocalCache.OpRewriteInjectCacheOps
- All Implemented Interfaces:
OpRewriter<Map.Entry<org.apache.jena.sparql.algebra.Op,Boolean>>
- Enclosing class:
- RdfDataSourceWithLocalCache
public static class RdfDataSourceWithLocalCache.OpRewriteInjectCacheOps
extends Object
implements OpRewriter<Map.Entry<org.apache.jena.sparql.algebra.Op,Boolean>>
Rewriter that injects cache ops as the parent of group by ops.
Note, that all group by results are pulled into the client.
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.aksw.jenax.sparql.algebra.topdown.OpRewriter
OpRewriter.OpVisitorBridge<T extends Object> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfallback(org.apache.jena.sparql.algebra.Op op) handleOp1(org.apache.jena.sparql.algebra.Op op, Function<org.apache.jena.sparql.algebra.Op, org.apache.jena.sparql.algebra.Op> ctor) <T extends org.apache.jena.sparql.algebra.op.Op1>
Map.Entry<org.apache.jena.sparql.algebra.Op,Boolean> handleProjectExtend(T op, Function<org.apache.jena.sparql.algebra.Op, org.apache.jena.sparql.algebra.Op> ctor) rewrite(org.apache.jena.sparql.algebra.op.OpDistinct op) rewrite(org.apache.jena.sparql.algebra.op.OpExtend op) rewrite(org.apache.jena.sparql.algebra.op.OpGroup op) Issue: group may introduce internal variables which are referenced later, such asrewrite(org.apache.jena.sparql.algebra.op.OpOrder op) The complexity with order by is that we need to be careful about allocated variables (those that start with a dot such as ?.foo).rewrite(org.apache.jena.sparql.algebra.op.OpProject op) rewrite(org.apache.jena.sparql.algebra.op.OpSlice op) rewrite(org.apache.jena.sparql.algebra.op.OpUnion op) static org.apache.jena.sparql.algebra.OprewriteOpx(org.apache.jena.sparql.algebra.Op op) static org.apache.jena.query.QueryrewriteQuery(org.apache.jena.query.Query query) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.aksw.jenax.sparql.algebra.topdown.OpRewriter
rewrite, rewrite, rewrite, rewrite, rewrite, rewrite, rewrite, rewrite, rewrite, rewrite, rewrite, rewrite, rewrite, rewrite, rewrite, rewrite, rewrite, rewrite, rewrite, rewrite, rewrite, rewrite, rewrite, rewrite, rewrite, rewrite, rewrite, rewrite, rewrite, rewrite, rewriteOp
-
Constructor Details
-
OpRewriteInjectCacheOps
public OpRewriteInjectCacheOps()
-
-
Method Details
-
rewriteQuery
public static org.apache.jena.query.Query rewriteQuery(org.apache.jena.query.Query query) -
rewriteOpx
public static org.apache.jena.sparql.algebra.Op rewriteOpx(org.apache.jena.sparql.algebra.Op op) -
handleOp1
-
handleProjectExtend
-
fallback
public Map.Entry<org.apache.jena.sparql.algebra.Op,Boolean> fallback(org.apache.jena.sparql.algebra.Op op) - Specified by:
fallbackin interfaceOpRewriter<Map.Entry<org.apache.jena.sparql.algebra.Op,Boolean>>
-
rewrite
public Map.Entry<org.apache.jena.sparql.algebra.Op,Boolean> rewrite(org.apache.jena.sparql.algebra.op.OpProject op) - Specified by:
rewritein interfaceOpRewriter<Map.Entry<org.apache.jena.sparql.algebra.Op,Boolean>>
-
rewrite
public Map.Entry<org.apache.jena.sparql.algebra.Op,Boolean> rewrite(org.apache.jena.sparql.algebra.op.OpExtend op) - Specified by:
rewritein interfaceOpRewriter<Map.Entry<org.apache.jena.sparql.algebra.Op,Boolean>>
-
rewrite
public Map.Entry<org.apache.jena.sparql.algebra.Op,Boolean> rewrite(org.apache.jena.sparql.algebra.op.OpSlice op) - Specified by:
rewritein interfaceOpRewriter<Map.Entry<org.apache.jena.sparql.algebra.Op,Boolean>>
-
rewrite
public Map.Entry<org.apache.jena.sparql.algebra.Op,Boolean> rewrite(org.apache.jena.sparql.algebra.op.OpDistinct op) - Specified by:
rewritein interfaceOpRewriter<Map.Entry<org.apache.jena.sparql.algebra.Op,Boolean>>
-
rewrite
public Map.Entry<org.apache.jena.sparql.algebra.Op,Boolean> rewrite(org.apache.jena.sparql.algebra.op.OpOrder op) The complexity with order by is that we need to be careful about allocated variables (those that start with a dot such as ?.foo). In this method we: (1) inject project nodes and (2) substitute allocated variables in sort conditions(order ((asc ?.0)) (CACHE (extend ((?sortKey_1 ?.0)) (group (?s) ((?.0 (min (str ?o))))) ) ) )(order ((asc ?sortKey_1)) (CACHE (project (?sortKey_1)) (extend ((?sortKey_1 ?.0)) (group (?s) ((?.0 (min (str ?o))))) ) ) ) )- Specified by:
rewritein interfaceOpRewriter<Map.Entry<org.apache.jena.sparql.algebra.Op,Boolean>>
-
rewrite
public Map.Entry<org.apache.jena.sparql.algebra.Op,Boolean> rewrite(org.apache.jena.sparql.algebra.op.OpUnion op) - Specified by:
rewritein interfaceOpRewriter<Map.Entry<org.apache.jena.sparql.algebra.Op,Boolean>>
-
rewrite
public Map.Entry<org.apache.jena.sparql.algebra.Op,Boolean> rewrite(org.apache.jena.sparql.algebra.op.OpGroup op) Issue: group may introduce internal variables which are referenced later, such as(order ((asc ?.0)) (extend ((?sortKey_1 ?.0)) (group (?s) ((?.0 (min (str ?o))))We need to isolate the group node such that it can by correctly converted back to syntax.- Specified by:
rewritein interfaceOpRewriter<Map.Entry<org.apache.jena.sparql.algebra.Op,Boolean>>
-