Class FacetedQueryGenerator<P>
java.lang.Object
org.aksw.jena_sparql_api.data_query.impl.FacetedQueryGenerator<P>
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected org.aksw.jenax.sparql.fragment.api.Fragment1protected Collection<org.apache.jena.sparql.expr.Expr>protected PathToRelationMapper<P>protected PathAccessor<P> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddConstraint(org.apache.jena.sparql.expr.Expr expr) static <P> Map<P,org.aksw.jenax.sparql.fragment.api.Fragment2> allocatePathRelations(PathToRelationMapper<P> mapper, PathAccessor<P> pathAccessor, com.google.common.collect.Multimap<P, org.apache.jena.sparql.expr.Expr> constraintIndex) static intcompareAbsent(Collection<? extends org.apache.jena.sparql.expr.Expr> a, Collection<? extends org.apache.jena.sparql.expr.Expr> b) static intcompareAbsent(org.apache.jena.sparql.expr.Expr a, org.apache.jena.sparql.expr.Expr b) static booleancontainsAbsent(Collection<? extends org.apache.jena.sparql.expr.Expr> exprs) static org.aksw.jenax.sparql.fragment.api.Fragment3countFacetValues(org.aksw.jenax.sparql.fragment.api.Fragment3 tr, int sortDirection) static org.aksw.jenax.sparql.fragment.api.Fragment1createConceptFacets(Map<String, org.aksw.jenax.sparql.fragment.api.Fragment3> relations, org.aksw.jenax.sparql.fragment.impl.Concept pConstraint) static org.aksw.jenax.sparql.fragment.impl.ConceptcreateConceptFacets(org.aksw.jenax.sparql.fragment.api.Fragment3 tr) Simply create a concept from the predicate column of the ternary relation.static org.aksw.jenax.sparql.fragment.api.Fragment1createConceptFacetsOld(Map<String, org.aksw.jenax.sparql.fragment.api.Fragment2> relations, org.aksw.jenax.sparql.fragment.impl.Concept pConstraint) Deprecated.org.aksw.jenax.sparql.fragment.api.Fragment2createConstraintRelationForPath(P rootPath, P childPath, org.aksw.jenax.sparql.fragment.api.Fragment2 facetRelation, org.apache.jena.sparql.core.Var pVar, com.google.common.collect.Multimap<P, org.apache.jena.sparql.expr.Expr> constraintIndex, boolean negate, boolean includeAbsent) Returns a binary relation with facet - facet value columns.static <P> Collection<org.apache.jena.sparql.syntax.Element>createElementsForExprs(PathToRelationMapper<P> mapper, PathAccessor<P> pathAccessor, Collection<org.apache.jena.sparql.expr.Expr> constraints, boolean negate) Creates elements from the given constraint expressions.static <P> Collection<org.apache.jena.sparql.syntax.Element>createElementsForExprs(PathToRelationMapper<P> mapper, PathAccessor<P> pathAccessor, Map<P, org.aksw.jenax.sparql.fragment.api.Fragment2> pathToRelation, Collection<org.apache.jena.sparql.expr.Expr> baseExprs, boolean negate) Set<org.apache.jena.sparql.syntax.Element>createElementsFromConstraintIndex(com.google.common.collect.Multimap<P, org.apache.jena.sparql.expr.Expr> constraintIndex, Predicate<? super P> negatePath) This method is called in the context of creating the element for a path It enables negating the constraints on that pathcreateMapFacetsAndValues(P focusPath, P facetOriginPath, boolean isReverse, boolean applySelfConstraints, boolean negated, boolean includeAbsent) For the give path and direction, yield a map of binary relations for the corresponding facets.static <P> org.apache.jena.sparql.graph.NodeTransformcreateNodeTransformSubstitutePathReferences(PathToRelationMapper<P> mapper, PathAccessor<P> pathAccessor) static org.aksw.jenax.sparql.fragment.api.Fragment2createRelationFacetsAndCounts(Map<String, org.aksw.jenax.sparql.fragment.api.Fragment3> relationsFocusFacetValue, org.aksw.jenax.sparql.fragment.impl.Concept pConstraint, boolean includeAbsent, boolean focusCount) static org.aksw.jenax.sparql.fragment.api.Fragment2createRelationFacetsAndCountsOld(Map<String, org.aksw.jenax.sparql.fragment.api.Fragment2> relations, org.aksw.jenax.sparql.fragment.impl.Concept pConstraint, boolean includeAbsent) Deprecated.org.aksw.jenax.sparql.fragment.api.Fragment3createRelationFacetValue(P focus, P facetPath, boolean isReverse, org.aksw.jenax.sparql.fragment.api.Fragment1 pFilter, org.aksw.jenax.sparql.fragment.api.Fragment1 oFilter, boolean applySelfConstraints, boolean includeAbsent) org.aksw.jenax.sparql.fragment.api.Fragment3createRelationFacetValueCounts(P focus, P facetPath, boolean isReverse, boolean negated, org.aksw.jenax.sparql.fragment.api.Fragment1 pFilter, org.aksw.jenax.sparql.fragment.api.Fragment1 oFilter, boolean includeAbsent) org.aksw.jenax.sparql.fragment.api.Fragment3createRelationFacetValueTypeCounts(P focus, P facetPath, boolean isReverse, boolean negated, org.aksw.jenax.sparql.fragment.api.Fragment1 pFilter, org.aksw.jenax.sparql.fragment.api.Fragment1 oFilter, boolean includeAbsent) A modification of facet value counts that instead of the values yields the values' types.static <P> org.aksw.jenax.sparql.fragment.api.Fragment2createRelationForPath(PathToRelationMapper<P> mapper, PathAccessor<P> pathAccessor, P childPath, boolean includeAbsent) org.aksw.jenax.sparql.fragment.api.Fragment2createRelationForPath(P childPath, com.google.common.collect.SetMultimap<P, org.apache.jena.sparql.expr.Expr> constraintIndex, boolean applySelfConstraints, boolean negated, boolean includeAbsent) Creates the relation for the path given as the first argumentextractChildPaths(P basePath, boolean isReverse, Collection<P> candidates) Given a collection of paths, yield those that are a direct successor of 'basePath' in the direction specified by 'isReverse'.org.aksw.jenax.sparql.fragment.api.Fragment1getConceptForAtPath(P focusPath, P facetPath, boolean applySelfConstraints) org.aksw.jenax.sparql.fragment.impl.ExprFragmentgetConstraintExpr(P facetPath, boolean isReverse) Yields a filter expression that excludes all (facet, facetValue) pairs which are affected by filters.getFacetValuesCore(org.aksw.jenax.sparql.fragment.api.Fragment1 baseConcept, P focusPath, P facetPath, org.aksw.jenax.sparql.fragment.api.Fragment1 pFilter, org.aksw.jenax.sparql.fragment.api.Fragment1 oFilter, boolean isReverse, boolean negated, boolean applySelfConstraints, boolean includeAbsent) org.aksw.jenax.sparql.fragment.api.Fragment2getRemainingFacets(P focusPath, P facetOriginPath, boolean isReverse, com.google.common.collect.SetMultimap<P, org.apache.jena.sparql.expr.Expr> constraintIndex, boolean negated, boolean includeAbsent) org.aksw.jenax.sparql.fragment.api.Fragment2getRemainingFacetsWithAbsent(P focusPath, P facetOriginPath, boolean isReverse, com.google.common.collect.SetMultimap<P, org.apache.jena.sparql.expr.Expr> constraintIndex, boolean negated) org.aksw.jenax.sparql.fragment.api.Fragment2getRemainingFacetsWithoutAbsent(P facetOriginPath, boolean isReverse, com.google.common.collect.SetMultimap<P, org.apache.jena.sparql.expr.Expr> constraintIndex, boolean negated, boolean includeAbsent) static <T> Tcom.google.common.collect.SetMultimap<P,org.apache.jena.sparql.expr.Expr> hideConstraintsForPath(com.google.common.collect.SetMultimap<P, org.apache.jena.sparql.expr.Expr> constaintIndex, P path) static <P> com.google.common.collect.SetMultimap<P,org.apache.jena.sparql.expr.Expr> indexConstraints(PathAccessor<P> pathAccessor, Collection<org.apache.jena.sparql.expr.Expr> constraints) Indexing of constraints groups those that apply to the same same path(s).static org.apache.jena.sparql.expr.ExprinternalRewriteAbsent(org.apache.jena.sparql.expr.Expr expr) static booleanisAbsent(org.apache.jena.sparql.expr.Expr expr) booleanisExprExcluded(org.apache.jena.sparql.expr.Expr expr, P path, boolean isReverse) Deprecated.voidsetBaseConcept(org.aksw.jenax.sparql.fragment.api.Fragment1 baseConcept) static <T> org.aksw.jenax.sparql.path.SimplePathtoSimplePath(T path, PathAccessor<T> pathAccessor)
-
Field Details
-
baseConcept
protected org.aksw.jenax.sparql.fragment.api.Fragment1 baseConcept -
mapper
-
constraints
-
pathAccessor
-
-
Constructor Details
-
FacetedQueryGenerator
-
-
Method Details
-
createNodeTransformSubstitutePathReferences
public static <P> org.apache.jena.sparql.graph.NodeTransform createNodeTransformSubstitutePathReferences(PathToRelationMapper<P> mapper, PathAccessor<P> pathAccessor) -
addConstraint
public void addConstraint(org.apache.jena.sparql.expr.Expr expr) -
setBaseConcept
public void setBaseConcept(org.aksw.jenax.sparql.fragment.api.Fragment1 baseConcept) -
hideConstraintsForPath
-
toSimplePath
public static <T> org.aksw.jenax.sparql.path.SimplePath toSimplePath(T path, PathAccessor<T> pathAccessor) -
createRelationForPath
public static <P> org.aksw.jenax.sparql.fragment.api.Fragment2 createRelationForPath(PathToRelationMapper<P> mapper, PathAccessor<P> pathAccessor, P childPath, boolean includeAbsent) -
createRelationForPath
public org.aksw.jenax.sparql.fragment.api.Fragment2 createRelationForPath(P childPath, com.google.common.collect.SetMultimap<P, org.apache.jena.sparql.expr.Expr> constraintIndex, boolean applySelfConstraints, boolean negated, boolean includeAbsent) Creates the relation for the path given as the first argument- Parameters:
childPath-constraintIndex-constraints-negated-- Returns:
-
getRemainingFacets
-
getRemainingFacetsWithAbsent
-
getRemainingFacetsWithoutAbsent
-
containsAbsent
-
compareAbsent
public static int compareAbsent(org.apache.jena.sparql.expr.Expr a, org.apache.jena.sparql.expr.Expr b) -
compareAbsent
public static int compareAbsent(Collection<? extends org.apache.jena.sparql.expr.Expr> a, Collection<? extends org.apache.jena.sparql.expr.Expr> b) -
isAbsent
public static boolean isAbsent(org.apache.jena.sparql.expr.Expr expr) -
internalRewriteAbsent
public static org.apache.jena.sparql.expr.Expr internalRewriteAbsent(org.apache.jena.sparql.expr.Expr expr) -
allocatePathRelations
public static <P> Map<P,org.aksw.jenax.sparql.fragment.api.Fragment2> allocatePathRelations(PathToRelationMapper<P> mapper, PathAccessor<P> pathAccessor, com.google.common.collect.Multimap<P, org.apache.jena.sparql.expr.Expr> constraintIndex) -
createElementsForExprs
public static <P> Collection<org.apache.jena.sparql.syntax.Element> createElementsForExprs(PathToRelationMapper<P> mapper, PathAccessor<P> pathAccessor, Collection<org.apache.jena.sparql.expr.Expr> constraints, boolean negate) Creates elements from the given constraint expressions. This method collects all paths referenced in the expressions and allocates their relations. Used by DataQueryImpl::filter- Parameters:
mapper-pathAccessor-constraints-negate-- Returns:
-
createElementsForExprs
public static <P> Collection<org.apache.jena.sparql.syntax.Element> createElementsForExprs(PathToRelationMapper<P> mapper, PathAccessor<P> pathAccessor, Map<P, org.aksw.jenax.sparql.fragment.api.Fragment2> pathToRelation, Collection<org.apache.jena.sparql.expr.Expr> baseExprs, boolean negate) -
createConstraintRelationForPath
public org.aksw.jenax.sparql.fragment.api.Fragment2 createConstraintRelationForPath(P rootPath, P childPath, org.aksw.jenax.sparql.fragment.api.Fragment2 facetRelation, org.apache.jena.sparql.core.Var pVar, com.google.common.collect.Multimap<P, org.apache.jena.sparql.expr.Expr> constraintIndex, boolean negate, boolean includeAbsent) Returns a binary relation with facet - facet value columns. Attemps to rename variables of the facetRelation as to not conflict with the variables of paths. Issue: facetRelation is not relative to basePath but to root, so the connection variable is that of root- Parameters:
rootPath- only used to obtain the connecting variablefacetRelation-pVar-effectiveConstraints-negate- Negate the constraints - this yields all facet+values unaffected by the effectiveConstraints do NOT apply- Returns:
-
createConceptFacets
-
createConceptFacetsOld
@Deprecated public static org.aksw.jenax.sparql.fragment.api.Fragment1 createConceptFacetsOld(Map<String, org.aksw.jenax.sparql.fragment.api.Fragment2> relations, org.aksw.jenax.sparql.fragment.impl.Concept pConstraint) Deprecated. -
createRelationFacetsAndCounts
-
createRelationFacetsAndCountsOld
@Deprecated public static org.aksw.jenax.sparql.fragment.api.Fragment2 createRelationFacetsAndCountsOld(Map<String, org.aksw.jenax.sparql.fragment.api.Fragment2> relations, org.aksw.jenax.sparql.fragment.impl.Concept pConstraint, boolean includeAbsent) Deprecated. -
isExprExcluded
@Deprecated public boolean isExprExcluded(org.apache.jena.sparql.expr.Expr expr, P path, boolean isReverse) Deprecated.Create helper functions for filtering out the expressions that do not apply for a given path -
createMapFacetsAndValues
public Map<String,org.aksw.jenax.sparql.fragment.api.Fragment2> createMapFacetsAndValues(P focusPath, P facetOriginPath, boolean isReverse, boolean applySelfConstraints, boolean negated, boolean includeAbsent) For the give path and direction, yield a map of binary relations for the corresponding facets. An entry with key null indicates the predicate / distinct value count pairs with all constraints in place- Parameters:
facetOriginPath-isReverse-- Returns:
-
createRelationFacetValue
-
createRelationFacetValueTypeCounts
public org.aksw.jenax.sparql.fragment.api.Fragment3 createRelationFacetValueTypeCounts(P focus, P facetPath, boolean isReverse, boolean negated, org.aksw.jenax.sparql.fragment.api.Fragment1 pFilter, org.aksw.jenax.sparql.fragment.api.Fragment1 oFilter, boolean includeAbsent) A modification of facet value counts that instead of the values yields the values' types. Useful for description logics stuff, as it yields the 'Cs' in "exists r.C"- Parameters:
focus-facetPath-isReverse-negated-pFilter-oFilter-includeAbsent-- Returns:
-
createRelationFacetValueCounts
-
getRoot
-
getConstraintExpr
public org.aksw.jenax.sparql.fragment.impl.ExprFragment getConstraintExpr(P facetPath, boolean isReverse) Yields a filter expression that excludes all (facet, facetValue) pairs which are affected by filters. Conversely, filtering facetAndValues by this expression yields only those items from which new constraints can be created.- Parameters:
facetPath-isReverse-- Returns:
-
extractChildPaths
Given a collection of paths, yield those that are a direct successor of 'basePath' in the direction specified by 'isReverse'.- Parameters:
basePath-isReverse-candidates-- Returns:
-
indexConstraints
public static <P> com.google.common.collect.SetMultimap<P,org.apache.jena.sparql.expr.Expr> indexConstraints(PathAccessor<P> pathAccessor, Collection<org.apache.jena.sparql.expr.Expr> constraints) Indexing of constraints groups those that apply to the same same path(s). This serves as the base for combination using logical junctors and/or.- Parameters:
basePath-applySelfConstraints-- Returns:
-
createElementsFromConstraintIndex
public Set<org.apache.jena.sparql.syntax.Element> createElementsFromConstraintIndex(com.google.common.collect.Multimap<P, org.apache.jena.sparql.expr.Expr> constraintIndex, Predicate<? super P> negatePath) This method is called in the context of creating the element for a path It enables negating the constraints on that path- Parameters:
constraintIndex-- Returns:
-
getConceptForAtPath
-
getFacetValuesCore
public Map<String,org.aksw.jenax.sparql.fragment.api.Fragment3> getFacetValuesCore(org.aksw.jenax.sparql.fragment.api.Fragment1 baseConcept, P focusPath, P facetPath, org.aksw.jenax.sparql.fragment.api.Fragment1 pFilter, org.aksw.jenax.sparql.fragment.api.Fragment1 oFilter, boolean isReverse, boolean negated, boolean applySelfConstraints, boolean includeAbsent) -
createConceptFacets
public static org.aksw.jenax.sparql.fragment.impl.Concept createConceptFacets(org.aksw.jenax.sparql.fragment.api.Fragment3 tr) Simply create a concept from the predicate column of the ternary relation. TODO Possibly supersede by using a TernaryRelation.getConceptP() method.- Parameters:
tr-- Returns:
-
countFacetValues
public static org.aksw.jenax.sparql.fragment.api.Fragment3 countFacetValues(org.aksw.jenax.sparql.fragment.api.Fragment3 tr, int sortDirection) - Returns:
-