Package org.aksw.facete.v4.impl
Class ElementGeneratorWorker
java.lang.Object
org.aksw.facete.v4.impl.ElementGeneratorWorker
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 Summary
FieldsModifier and TypeFieldDescriptionprotected FacetPathMappingprotected PropertyResolverprotected Map<VarScope,ElementGeneratorContext> -
Constructor Summary
ConstructorsConstructorDescriptionElementGeneratorWorker(TreeData<ScopedFacetPath> facetTree, com.google.common.collect.SetMultimap<ScopedFacetPath, org.apache.jena.sparql.expr.Expr> constraintIndex, FacetPathMapping pathMapping, PropertyResolver propertyResolver) ElementGeneratorWorker(FacetPathMapping pathMapping, PropertyResolver propertyResolver) -
Method Summary
Modifier and TypeMethodDescriptionvoidaccumulateElements(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-treeorg.apache.jena.sparql.core.VarallocateElement(ElementGeneratorContext cxt, org.aksw.jenax.path.core.FacetPath path) org.apache.jena.sparql.core.VarvoidallocateElements(org.apache.jena.sparql.expr.Expr expr) allocateEltAcc(ElementGeneratorContext cxt, org.apache.jena.sparql.core.Var parentVar, org.apache.jena.sparql.core.Var targetVar, org.aksw.jenax.path.core.FacetPath path) 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)voidanalysePathModality(org.apache.jena.sparql.expr.Expr expr) Checks for whether this expression references any paths that need to be mandatory.static org.apache.jena.sparql.syntax.Elementcollect(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.createElement(ElementGeneratorContext cxt, org.apache.jena.sparql.syntax.ElementGroup filterGroup) org.apache.jena.sparql.syntax.ElementcreateElementForLastStep(ElementGeneratorContext cxt, org.apache.jena.sparql.core.Var parentVar, org.apache.jena.sparql.core.Var targetVar, org.aksw.jenax.path.core.FacetPath path) voidcreateElementsForExprs(Collection<org.apache.jena.sparql.expr.Expr> baseExprs, boolean negate) voidcreateElementsForExprs2(ElementGeneratorContext cxt, org.apache.jena.sparql.syntax.ElementGroup globalAcc, Collection<org.apache.jena.sparql.expr.Expr> baseExprs, boolean negate) voiddeclareMandatoryPath(ElementGeneratorContext cxt, org.aksw.jenax.path.core.FacetPath path) voiddeclareMandatoryPath(ScopedFacetPath scopedPath) Mark a path as mandatory.getOrCreateContext(VarScope scope) com.google.common.collect.BiMap<ScopedFacetPath,org.apache.jena.sparql.core.Var> org.apache.jena.sparql.core.Varresolve(ScopedFacetPath sfp) voidsetConstraintIndex(com.google.common.collect.SetMultimap<ScopedFacetPath, org.apache.jena.sparql.expr.Expr> constraintIndex) voidsetFacetTree(TreeData<ScopedFacetPath> facetTree)
-
Field Details
-
scopeToContext
-
pathMapping
-
propertyResolver
-
-
Constructor Details
-
ElementGeneratorWorker
-
ElementGeneratorWorker
public ElementGeneratorWorker(TreeData<ScopedFacetPath> facetTree, com.google.common.collect.SetMultimap<ScopedFacetPath, org.apache.jena.sparql.expr.Expr> constraintIndex, FacetPathMapping pathMapping, PropertyResolver propertyResolver)
-
-
Method Details
-
setConstraintIndex
public void setConstraintIndex(com.google.common.collect.SetMultimap<ScopedFacetPath, org.apache.jena.sparql.expr.Expr> constraintIndex) -
setFacetTree
-
getPathMapping
-
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
Mark a path as mandatory. This makes all parents also mandatory. -
getOrCreateContext
-
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
-
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 parentglobalAcc- Container to add 'global' elements, such as filter expressionsparentVar-path-getChildren-
-
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
-
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.
-