java.lang.Object
org.apache.jena.sparql.algebra.TransformCopy
org.apache.jena.sparql.service.enhancer.algebra.TransformSE_JoinStrategy
All Implemented Interfaces:
org.apache.jena.sparql.algebra.Transform

public class TransformSE_JoinStrategy extends org.apache.jena.sparql.algebra.TransformCopy
Checks for the presence of SERVICE <loop:> { } transforms those into linear joins using OpSequence / OpDisjunction and adjust variable scopes. All variables mentioned on the rhs which have the same reverse-renaming as variables visible on the lhs will be substituted with the lhs variant.
  • Field Summary

    Fields inherited from class org.apache.jena.sparql.algebra.TransformCopy

    COPY_ALWAYS, COPY_ONLY_ON_CHANGE
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static org.apache.jena.sparql.graph.NodeTransform
    renameForImplicitJoinVars(Set<org.apache.jena.sparql.core.Var> visibleInLhs)
     
    static org.apache.jena.sparql.graph.NodeTransform
    renameForImplicitJoinVars(org.apache.jena.sparql.algebra.Op left)
    Remove scoping of all mentioned rhs variables which implicitly join with those visible on the lhs: Join on all variables v that are visible in lhs where there exists a mentioned variable v' in rhs where reverseRename(v) == reverseRename(v')
    org.apache.jena.sparql.algebra.Op
    transform(org.apache.jena.sparql.algebra.op.OpDisjunction opSequence, List<org.apache.jena.sparql.algebra.Op> elts)
     
    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)
     
    org.apache.jena.sparql.algebra.Op
    transform(org.apache.jena.sparql.algebra.op.OpLeftJoin opLeftJoin, org.apache.jena.sparql.algebra.Op left, org.apache.jena.sparql.algebra.Op right)
     
    org.apache.jena.sparql.algebra.Op
    transform(org.apache.jena.sparql.algebra.op.OpSequence opSequence, List<org.apache.jena.sparql.algebra.Op> elts)
     

    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

    Methods inherited from class java.lang.Object

    equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • TransformSE_JoinStrategy

      public TransformSE_JoinStrategy()
  • Method Details

    • 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:
      transform in interface org.apache.jena.sparql.algebra.Transform
      Overrides:
      transform in class org.apache.jena.sparql.algebra.TransformCopy
    • transform

      public org.apache.jena.sparql.algebra.Op transform(org.apache.jena.sparql.algebra.op.OpSequence opSequence, List<org.apache.jena.sparql.algebra.Op> elts)
      Specified by:
      transform in interface org.apache.jena.sparql.algebra.Transform
      Overrides:
      transform in class org.apache.jena.sparql.algebra.TransformCopy
    • transform

      public org.apache.jena.sparql.algebra.Op transform(org.apache.jena.sparql.algebra.op.OpDisjunction opSequence, List<org.apache.jena.sparql.algebra.Op> elts)
      Specified by:
      transform in interface org.apache.jena.sparql.algebra.Transform
      Overrides:
      transform in class org.apache.jena.sparql.algebra.TransformCopy
    • transform

      public org.apache.jena.sparql.algebra.Op transform(org.apache.jena.sparql.algebra.op.OpLeftJoin opLeftJoin, org.apache.jena.sparql.algebra.Op left, org.apache.jena.sparql.algebra.Op right)
      Specified by:
      transform in interface org.apache.jena.sparql.algebra.Transform
      Overrides:
      transform in class org.apache.jena.sparql.algebra.TransformCopy
    • renameForImplicitJoinVars

      public static org.apache.jena.sparql.graph.NodeTransform renameForImplicitJoinVars(org.apache.jena.sparql.algebra.Op left)
      Remove scoping of all mentioned rhs variables which implicitly join with those visible on the lhs: Join on all variables v that are visible in lhs where there exists a mentioned variable v' in rhs where reverseRename(v) == reverseRename(v')
    • renameForImplicitJoinVars

      public static org.apache.jena.sparql.graph.NodeTransform renameForImplicitJoinVars(Set<org.apache.jena.sparql.core.Var> visibleInLhs)