Class ElementGeneratorWorker

java.lang.Object
org.aksw.facete.v4.impl.ElementGeneratorWorker

public class ElementGeneratorWorker extends Object
Create individual elements for a facet paths. The class ElementGenerator can generate "high level" queries and uses this class as a worker to carry out specific sub tasks.
  • Field Details

  • Constructor Details

  • Method Details

    • setConstraintIndex

      public void setConstraintIndex(com.google.common.collect.SetMultimap<ScopedFacetPath,org.apache.jena.sparql.expr.Expr> constraintIndex)
    • setFacetTree

      public void setFacetTree(TreeData<ScopedFacetPath> facetTree)
    • getPathMapping

      public FacetPathMapping getPathMapping()
    • getPropertyResolver

      public PropertyResolver getPropertyResolver()
    • getPathToVar

      public com.google.common.collect.BiMap<ScopedFacetPath,org.apache.jena.sparql.core.Var> getPathToVar()
    • analysePathModality

      public void analysePathModality(org.apache.jena.sparql.expr.Expr expr)
      Checks for whether this expression references any paths that need to be mandatory. Elements created for the segments along such a path will not be wrapped in OPTIONAL blocks.
    • declareMandatoryPath

      public void declareMandatoryPath(ScopedFacetPath scopedPath)
      Mark a path as mandatory. This makes all parents also mandatory.
    • getOrCreateContext

      public ElementGeneratorContext getOrCreateContext(VarScope scope)
    • declareMandatoryPath

      public void declareMandatoryPath(ElementGeneratorContext cxt, org.aksw.jenax.path.core.FacetPath path)
    • allocateEltAcc

      public ElementAcc allocateEltAcc(org.apache.jena.sparql.core.Var parentVar, org.apache.jena.sparql.core.Var targetVar, ScopedFacetPath scopedPath)
      Create the element for the last facet step of a facet path (without recursion)
    • allocateEltAcc

      public ElementAcc allocateEltAcc(ElementGeneratorContext cxt, org.apache.jena.sparql.core.Var parentVar, org.apache.jena.sparql.core.Var targetVar, org.aksw.jenax.path.core.FacetPath path)
    • createElementForLastStep

      public org.apache.jena.sparql.syntax.Element createElementForLastStep(ElementGeneratorContext cxt, org.apache.jena.sparql.core.Var parentVar, org.apache.jena.sparql.core.Var targetVar, org.aksw.jenax.path.core.FacetPath path)
    • allocateElements

      public void allocateElements(org.apache.jena.sparql.expr.Expr expr)
    • allocateElement

      public org.apache.jena.sparql.core.Var allocateElement(ScopedFacetPath path)
    • allocateElement

      public org.apache.jena.sparql.core.Var allocateElement(ElementGeneratorContext cxt, org.aksw.jenax.path.core.FacetPath path)
    • accumulateElements

      public void accumulateElements(ElementGeneratorContext cxt, org.apache.jena.sparql.syntax.ElementGroup globalAcc, org.apache.jena.sparql.core.Var parentVar, org.aksw.jenax.path.core.FacetPath path, Function<org.aksw.jenax.path.core.FacetPath,? extends Iterable<org.aksw.jenax.path.core.FacetPath>> getChildren)
      TODO 'global' here means global to the current the sub-tree
      Parameters:
      parentAcc - Container to add elements to the parent
      globalAcc - Container to add 'global' elements, such as filter expressions
      parentVar -
      path -
      getChildren -
    • createElement

      public MappedElement createElement()
    • createElement

      public MappedElement createElement(ElementGeneratorContext cxt, org.apache.jena.sparql.syntax.ElementGroup filterGroup)
    • createElementsForExprs2

      public void createElementsForExprs2(ElementGeneratorContext cxt, org.apache.jena.sparql.syntax.ElementGroup globalAcc, Collection<org.apache.jena.sparql.expr.Expr> baseExprs, boolean negate)
    • resolve

      public org.apache.jena.sparql.core.Var resolve(ScopedFacetPath sfp)
    • createElementsForExprs

      public void createElementsForExprs(Collection<org.apache.jena.sparql.expr.Expr> baseExprs, boolean negate)
    • collect

      public static org.apache.jena.sparql.syntax.Element collect(TreeDataMap<org.aksw.jenax.path.core.FacetPath,ElementAcc> tree, org.aksw.jenax.path.core.FacetPath currentPath)
      Create an Element for the sub-tree of that starts at a given path at the given tree.