Class TransformOptimizeSubQueries
java.lang.Object
org.apache.jena.sparql.algebra.TransformCopy
org.aksw.jena_sparql_api.algebra.transform.TransformOptimizeSubQueries
- All Implemented Interfaces:
org.apache.jena.sparql.algebra.Transform
public class TransformOptimizeSubQueries
extends org.apache.jena.sparql.algebra.TransformCopy
Note: TransformRedundantProjectionRemoval seems to be the better choice.
Shifting OpSlice on Virtuoso may break queries...
Attempted fix for the following query on Virtuoso version 07.20.3217:
SELECT (if(isBlank(?Graph_1), URI(concat("bnode://", str(?Graph_1))), ?Graph_1) AS ?Graph)
WHERE
{ SELECT ?Graph_1
WHERE
{ SELECT DISTINCT ?Graph_1
WHERE
{ GRAPH ?Graph_1
{ ?__Graph_1_s ?__Graph_1_p ?__Graph_1_o }
}
}
LIMIT 1
}
Try to avoid sub-queries if possible by:
- Remove needless OpProject. This is the case when only the visible variables projected.
- Pull OpSlice over OpProject
- Pull OpSlice over OpExtend
-
Note: This transform pulls up Slice and may thus conflicts with
TransformPushSlice which attemps to push slice into SERVICE!
-
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 TypeMethodDescriptionorg.apache.jena.sparql.algebra.Optransform(org.apache.jena.sparql.algebra.op.OpExtend op, org.apache.jena.sparql.algebra.Op subOp) org.apache.jena.sparql.algebra.Optransform(org.apache.jena.sparql.algebra.op.OpProject op, org.apache.jena.sparql.algebra.Op subOp) Methods 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, transform, transform, transform, transform, transform, transform, transform, transform
-
Constructor Details
-
TransformOptimizeSubQueries
public TransformOptimizeSubQueries()
-
-
Method Details
-
transform
public org.apache.jena.sparql.algebra.Op transform(org.apache.jena.sparql.algebra.op.OpProject 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.OpExtend 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
-