Class TransformPullExtend
java.lang.Object
org.apache.jena.sparql.algebra.TransformCopy
org.apache.jena.sparql.algebra.optimize.TransformExtendCombine
org.aksw.jena_sparql_api.algebra.transform.TransformPullExtend
- All Implemented Interfaces:
org.apache.jena.sparql.algebra.Transform
public class TransformPullExtend
extends org.apache.jena.sparql.algebra.optimize.TransformExtendCombine
Pulls up Extend over joins and distinct
join(extend(?foo...), extend(?bar...)) becomes
extend(?foo... ?bar..., join(...))
If for example the resulting join is between two BGPs, it allows for nicely merging them afterwards.
In conjunction with TransformPullFiltersIfCanMergeBGPs this is even more powerful.
Also merges OpProject(OpProject(op, varsInner), varsOuter) into OpProject(op, intersection(varsInner, varsOuter))
- Author:
- raven
-
Field Summary
Fields inherited from class org.apache.jena.sparql.algebra.TransformCopy
COPY_ALWAYS, COPY_ONLY_ON_CHANGE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic voidstatic org.apache.jena.sparql.algebra.Optransform(org.apache.jena.sparql.algebra.Op op) org.apache.jena.sparql.algebra.Optransform(org.apache.jena.sparql.algebra.op.OpDisjunction opDisjunction, List<org.apache.jena.sparql.algebra.Op> elts) org.apache.jena.sparql.algebra.Optransform(org.apache.jena.sparql.algebra.op.OpDistinct op, org.apache.jena.sparql.algebra.Op subOp) org.apache.jena.sparql.algebra.Optransform(org.apache.jena.sparql.algebra.op.OpFilter opFilter, org.apache.jena.sparql.algebra.Op subOp) org.apache.jena.sparql.algebra.Optransform(org.apache.jena.sparql.algebra.op.OpJoin opJoin, org.apache.jena.sparql.algebra.Op left, org.apache.jena.sparql.algebra.Op right) org.apache.jena.sparql.algebra.Optransform(org.apache.jena.sparql.algebra.op.OpLateral op, org.apache.jena.sparql.algebra.Op left, org.apache.jena.sparql.algebra.Op right) org.apache.jena.sparql.algebra.Optransform(org.apache.jena.sparql.algebra.op.OpProject opProject, org.apache.jena.sparql.algebra.Op subOp) org.apache.jena.sparql.algebra.Optransform(org.apache.jena.sparql.algebra.op.OpSlice op, org.apache.jena.sparql.algebra.Op subOp) org.apache.jena.sparql.algebra.Optransform(org.apache.jena.sparql.algebra.op.OpUnion opUnion, org.apache.jena.sparql.algebra.Op left, org.apache.jena.sparql.algebra.Op right) org.apache.jena.sparql.algebra.OptransformDisjunction(List<org.apache.jena.sparql.algebra.Op> subOps, Function<List<org.apache.jena.sparql.algebra.Op>, org.apache.jena.sparql.algebra.Op> toUnion) Methods inherited from class org.apache.jena.sparql.algebra.optimize.TransformExtendCombine
transform, transformMethods inherited from class org.apache.jena.sparql.algebra.TransformCopy
transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform, transform
-
Constructor Details
-
TransformPullExtend
public TransformPullExtend()
-
-
Method Details
-
transform
public static org.apache.jena.sparql.algebra.Op transform(org.apache.jena.sparql.algebra.Op op) -
transform
public org.apache.jena.sparql.algebra.Op transform(org.apache.jena.sparql.algebra.op.OpDisjunction opDisjunction, List<org.apache.jena.sparql.algebra.Op> elts) - Specified by:
transformin interfaceorg.apache.jena.sparql.algebra.Transform- Overrides:
transformin classorg.apache.jena.sparql.algebra.TransformCopy
-
transform
public org.apache.jena.sparql.algebra.Op transform(org.apache.jena.sparql.algebra.op.OpUnion opUnion, org.apache.jena.sparql.algebra.Op left, org.apache.jena.sparql.algebra.Op right) - Specified by:
transformin interfaceorg.apache.jena.sparql.algebra.Transform- Overrides:
transformin classorg.apache.jena.sparql.algebra.TransformCopy
-
transform
public org.apache.jena.sparql.algebra.Op transform(org.apache.jena.sparql.algebra.op.OpProject opProject, org.apache.jena.sparql.algebra.Op subOp) - Specified by:
transformin interfaceorg.apache.jena.sparql.algebra.Transform- Overrides:
transformin classorg.apache.jena.sparql.algebra.TransformCopy
-
transformDisjunction
-
transform
public org.apache.jena.sparql.algebra.Op transform(org.apache.jena.sparql.algebra.op.OpLateral op, org.apache.jena.sparql.algebra.Op left, org.apache.jena.sparql.algebra.Op right) - Specified by:
transformin interfaceorg.apache.jena.sparql.algebra.Transform- Overrides:
transformin classorg.apache.jena.sparql.algebra.TransformCopy
-
transform
public org.apache.jena.sparql.algebra.Op transform(org.apache.jena.sparql.algebra.op.OpSlice op, org.apache.jena.sparql.algebra.Op subOp) - Specified by:
transformin interfaceorg.apache.jena.sparql.algebra.Transform- Overrides:
transformin classorg.apache.jena.sparql.algebra.TransformCopy
-
transform
public org.apache.jena.sparql.algebra.Op transform(org.apache.jena.sparql.algebra.op.OpDistinct op, org.apache.jena.sparql.algebra.Op subOp) - Specified by:
transformin interfaceorg.apache.jena.sparql.algebra.Transform- Overrides:
transformin classorg.apache.jena.sparql.algebra.TransformCopy
-
transform
public org.apache.jena.sparql.algebra.Op transform(org.apache.jena.sparql.algebra.op.OpFilter opFilter, org.apache.jena.sparql.algebra.Op subOp) - Specified by:
transformin interfaceorg.apache.jena.sparql.algebra.Transform- Overrides:
transformin classorg.apache.jena.sparql.algebra.TransformCopy
-
transform
public org.apache.jena.sparql.algebra.Op transform(org.apache.jena.sparql.algebra.op.OpJoin opJoin, org.apache.jena.sparql.algebra.Op left, org.apache.jena.sparql.algebra.Op right) - Specified by:
transformin interfaceorg.apache.jena.sparql.algebra.Transform- Overrides:
transformin classorg.apache.jena.sparql.algebra.TransformCopy
-
main
-