Class StringAlignments

java.lang.Object
org.aksw.jenax.sparql.expr.optimize.util.StringAlignments

public class StringAlignments extends Object
Methods for rewriting two sequences of expressions as they occurr in equality of concat expressions, i.e. "CONCAT(a1...an) = CONCAT(b1...bm)" where ai and bi may be variables and (string) constants. The code tries to generate multiple matches on a best effort basis.
Author:
raven
  • Constructor Details

    • StringAlignments

      public StringAlignments()
  • Method Details

    • toAlignment

      public static List<Alignment> toAlignment(List<org.apache.jena.sparql.expr.Expr> a, List<List<org.apache.jena.sparql.expr.Expr>> bs)
    • align

      public static List<Alignment> align(List<org.apache.jena.sparql.expr.Expr> a, List<org.apache.jena.sparql.expr.Expr> b)
    • indexOfFirstConstant

      public static int indexOfFirstConstant(List<org.apache.jena.sparql.expr.Expr> a, int offset)
    • copyReplace

      public static List<org.apache.jena.sparql.expr.Expr> copyReplace(List<org.apache.jena.sparql.expr.Expr> a, int itemIndex, String[] parts)
      Parameters:
      a -
      i - index of a constant
      j - position within the string of the constant
      Returns:
    • split

      public static String[] split(String str, int i, int l)
    • alignRec

      public static void alignRec(List<org.apache.jena.sparql.expr.Expr> a, int oa, List<org.apache.jena.sparql.expr.Expr> b, int ob, List<List<org.apache.jena.sparql.expr.Expr>> result)
      Parameters:
      a - The longer array
      b - The shorter one
    • optimizeEqualsConcat2

      public static org.apache.jena.sparql.expr.Expr optimizeEqualsConcat2(List<org.apache.jena.sparql.expr.Expr> la, List<org.apache.jena.sparql.expr.Expr> lb)