Class TrackingTransformConditionalFunctionInversion

java.lang.Object
org.apache.jena.sparql.algebra.TransformCopy
org.aksw.jenax.sparql.algebra.walker.TrackingTransformCopy<CBinding>
org.aksw.jenax.sparql.algebra.optimize.TrackingTransformConditionalFunctionInversion
All Implemented Interfaces:
org.apache.jena.sparql.algebra.Transform

public class TrackingTransformConditionalFunctionInversion extends TrackingTransformCopy<CBinding>
This class checks for expressions of the form [STR(?p) = 'const'] and if valueSpace(?p) is limited to IRI then it rewrites the expression as [?p = <const>].
  • Field Details

  • Constructor Details

    • TrackingTransformConditionalFunctionInversion

      public TrackingTransformConditionalFunctionInversion(Tracker<CBinding> pathState)
  • Method Details

    • getBeforeVisitor

      public org.apache.jena.sparql.algebra.OpVisitor getBeforeVisitor()
      Overrides:
      getBeforeVisitor in class TrackingTransformCopy<CBinding>
    • transform

      public org.apache.jena.sparql.algebra.Op transform(org.apache.jena.sparql.algebra.op.OpBGP opBGP)
      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.OpFilter opFilter, org.apache.jena.sparql.algebra.Op subOp)
      Check for filter expressions of the form [str(?p) op 'string_literal'] and if ?p is known to be an IRI transform it to [?p op ]
      Specified by:
      transform in interface org.apache.jena.sparql.algebra.Transform
      Overrides:
      transform in class org.apache.jena.sparql.algebra.TransformCopy
    • toExprConstraints

      public static Map<org.apache.jena.sparql.expr.Expr,VSpace> toExprConstraints(CBinding crow)
    • applyInverseFunction

      public static Map.Entry<org.apache.jena.sparql.expr.NodeValue,org.apache.jena.sparql.expr.Expr> applyInverseFunction(Map.Entry<org.apache.jena.sparql.expr.NodeValue,org.apache.jena.sparql.expr.Expr> e, Map<org.apache.jena.sparql.expr.Expr,VSpace> exprToValueSpace)