All Classes and Interfaces

Class
Description
 
 
 
Represents an expression to obtain an array of all the labels of the LPG node that is bound to a given query variable.
 
 
 
An abstract base class for the different variants to implement the bind join algorithm.
A base class for all variations of the bind join algorithm that use some form of SPARQL requests.
A generic implementation of the bind join algorithm that uses executable request operators for performing the requests to the federation member.
An abstract base class for implementations of the (external) index nested loops join algorithm.
Abstract base class to implement index nested loops joins by using request operators.
Abstract base class to implement index nested loops joins by issuing requests directly and, then, using response processors.
 
 
Base class for implementations of request operators.
Base class for implementations of request operators with requests that have to be broken into multiple requests to handle paging.
Base class for implementations of paging-based request operators where pages are TPFResponse objects.
Top-level base class for all implementations of ExecutableOperator.
 
Base class for implementations of request operators with triple pattern requests that are broken into TPF requests to handle paging.
Base class for implementations of request operators with requests that return triples and that can be performed as is.
Base class for physical operators that implement some form of a binary join algorithm; i.e., these algorithms consume two sequences of input solution mappings (produced by the two sub-plans under this operator) and join these the solution mappings from these two sequences locally (i.e., within in the engine rather than by interacting with any federation member).
Base class for physical operators that implement some form of a multi-way join algorithm.
Base class for physical operators that implement some form of a multi-way left join algorithm.
Top-level base class for all implementations of PhysicalOperator.
Base class for physical operators that implement some form of a join algorithm that consumes only one input and produces the other input as part of the algorithm itself.
 
 
 
 
 
A specialization of the ExecutableOperator interface that captures executable operators that consume a pair of two sequences of solution mappings (which both are batched into several blocks of solution mappings).
Top-level base class for all implementations of BinaryExecutableOp.
An interface for any type of LogicalOperator that has an arity of two; i.e., it is defined of as a function over two multisets of solution mappings.
An interface for any type of PhysicalOperator whose algorithm consumes two sequences of solution mappings as input.
An interface for any type of PhysicalOperator that directly implements a particular logical operator that has an arity of two.
 
 
A very simple FederationAccessManager that simply blocks for each request.
This interface represents the subset of Cypher Expressions that can be evaluated to a boolean value: true, false or null.
 
 
 
 
 
 
 
 
A generic interface for data structures that can be used as a cache for objects of a specific type.
 
 
An implementation of CacheEntryFactory for CacheEntryBase objects.
Creates EntryType objects that wrap ObjectType objects.
Interface for classes that determine whether cache entries are still valid.
A generic implementation of CacheInvalidationPolicy that always returns true.
 
Interface for classes that implement a replacement policy for a cache.
 
 
This class implements a query optimizer[1] that builds left-deep query plans, for which it uses a greedy approach to determine the join order based on cardinality estimation, and then choose physical algorithm according to the estimated number of request to execute the join
Base class for heuristics that use cardinality estimates to decide on a join order for the subplans of a multiway join or a binary join.
A help class that wraps a LogicalPlan together with some information about this plan that is relevant for the algorithm of the main class (CardinalityBasedJoinOrderingBase and that may be relevant for implementations of the abstract functions.
This class is an implementation of CardinalityBasedJoinOrderingBase that uses cardinality requests.
This interface represents cardinality estimators that can estimate the cardinality of the result that will be produced by query plans.
An exception that occurred during the process of estimating the cardinality of the result that will be produced by a given plan.
This class implements an approach to cardinality estimation that is based on the following two ideas: First, for leaf nodes in the given plans, which are request operators, the implementation issues cardinality requests to the respective federation members.
 
 
 
 
Abstract base class for implementations of CostFunctionForRootOp.
Generic implementation of CostFunctionForPlan that can be used for any cost function that is defined as the sum of operator-specific cost values for all operators in the plan.
An implementation of CostFunctionForPlan that can be used for any cost function that considers parallelism of operators PhysicalOpMultiwayUnion, PhysicalOpBinaryUnion and PhysicalOpSymmetricHashJoin, in which operators, the maximum cost values among subQueries is taken into account.
 
 
 
 
 
 
 
A (thread-safe) implementation of IntermediateResultElementSink that collects all solution mappings that are sent to it.
 
 
 
 
 
 
 
 
 
 
An exception that occurred during the process of estimating the cost of a given plan.
 
Implementations of this interface represent functions that determine some form of cost value for any given (physical) query plan.
Implementations of this interface represent functions that determine some form of cost value for the root node of any given query plan.
 
 
 
 
This interface represents a generic Cypher Expression.
This class is made to provide generic visitor functionalities to traverse expression trees.
Represents a Cypher Query with a MATCH-WHERE-RETURN structure, For example, the query: MATCH (x) MATCH (a)-[b]->(c) WHERE a:CLASS AND b.property='value' UNWIND KEYS(a) AS k RETURN x AS n1, c AS n2, k AS key can be represented with this interface.
 
Represents a query written in the Cypher query language.
 
 
Represents a UNION Cypher query.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Vocabulary definitions from EngineConfiguration.ttl
This interface captures the notion of an edge label mapping that is part of the notion of an LPG-to-RDF configuration, and that such an edge Label mapping is an injective function from edge labels in LPGs to IRIs nodes as can occur in RDF graphs.
 
 
 
Represents a directed path match statement.
Maps from the global representation of entities to a local representation that is specific to a particular data source (federation member).
 
 
 
 
 
 
 
Implementation of (a batching version of) the bind join algorithm for cases in which the federation member accessed by the algorithm supports the brTPF interface.
Implementation of (a batching version of) the bind join algorithm that uses FILTERs to capture the potential join partners that are sent to the federation member.
Implementation of (a batching version of) the bind join algorithm that uses UNION.
Implementation of (a batching version of) the bind join algorithm that uses a VALUES clause to capture the potential join partners that are sent to the federation member.
An exception that occurred during the execution of a specific operator.
 
 
 
A right outer join version of the hash join algorithm implemented in ExecOpHashJoin.
 
 
 
 
 
Attention, this is a purely local implementation of the nested loops join algorithm---nothing fancy, no requests to federation members or anything.
TODO: Provide a description of the algorithm implemented by this class.
 
 
 
Implementation of an operator to request a (complete) TPF from a brTPF server.
Implementation of an operator to request a (complete) TPF from a TPF server.
Implementation of the symmetric hash join algorithm.
 
 
 
 
 
 
An executable operator provides the implementation of the concrete algorithm that a physical operator is associated with.
 
 
 
This interface captures statistics collected during the execution of an ExecutablePlan.
 
 
 
An exception that may occur during the query execution process.
 
 
This implementation of SourcePlanner assigns every triple pattern of the given query to every federation member known in the federation catalog.
 
Implementations of this interface represent sets of variables that can be expected in the solution mappings produced by query operators.
 
This is a stripped-down copy of ExpectedVariablesUtils, which had been moved to the 'hefquin-engine' module.
 
 
 
As a basis for classes that implement the FederationAccessManager interface, this abstract base class provides default implementations of the methods for issuing cardinality requests.
 
 
Abstract base class for implementations of the FederationAccessManager interface that use request processors (see RequestProcessor etc).
 
 
 
 
 
 
 
 
 
 
This is an iterator of solution mappings that consumes another iterator and passes on only the solution mappings that are compatible to a given solution mapping.
 
This is an iterator of solution mappings that consumes another iterator and passes on only the solution mappings that have a given value for a given variable.
This is an iterator of solution mappings that consumes another iterator and passes on only the solution mappings that have given values for three variables.
This is an iterator of solution mappings that consumes another iterator and passes on only the solution mappings that have given values for two variables.
 
Pushes filter conditions as much as possible towards the leaf nodes of a given logical plan.
Represents an expression to obtain the first label of a graph object that is bound to a given query variable.
Estimate selectivity of a subplan by considering - 1. the number of new unbound variables - 2. the position of new unbound variables (sub, pred, or obj) - 3. number of joins contained in this subplan - 4. types of joins contained in this subplan (star join, chain join, unusual join) - 5. number of joins between this subplan with all selected plans - 6. type of joins between this subplan with all selected plans - star join, chain join, or unusual join - join within the same federation member or across different federation members This formula is an extended version of the formula that is implemented in JoinAwareWeightedUnboundVariableCount
 
 
A generic, thread-safe implementation of Cache.
 
 
 
 
 
This class is a generic implementation of SPARQLGraphPattern in which this graph pattern is given as an object of the class Element of the Jena API.
This class is a generic implementation of SPARQLGraphPattern in which this graph pattern is given as an object of the class Op of the Jena API.
 
 
Used to represent a URI configuration.
Represents an individual argument for a GraphQL query
 
 
 
 
Used to represent and contain information about a specific field in the GraphQL "query" type
 
 
Represents whether a GraphQLEntrypoint (a field in the query type) returns a single object, a list of filtered objects or a full list of all objects (of a certain type).
 
Used to represent information about a field in a GraphQL object type
 
Used to represent either a full or segmented GraphQL field path.
A builder class for creating field paths used for GraphQL queries.
Used to represent whether a field in a GraphQL object type returns an object / list of objects OR a scalar value / list of scalar values.
GraphQLFieldPath segment used to represent the "id" field for objects in a GraphQL query
 
 
GraphQLFieldPath segment used to represent GraphQL object types in the query.
Represents a GraphQL query
 
An class for objects that wrap a StarPattern and provide functionality for creating the root field of a GraphQL query based on the star pattern.
 
 
 
 
GraphQLFieldPath segment used to represent GraphQL scalar values in the query.
 
 
Used to initialize a GraphQL schema from a GraphQL endpoint
 
 
 
Implement a greedy algorithm to determine the join order of sub-plans.
 
 
Reads an RDF description of a configuration for the HeFQUIN engine and creates a HeFQUINEngine object based on this configuration.
 
 
A collection of functions to create the default versions of the various components used by the HeFQUIN engine.
 
 
 
 
 
 
 
 
This class contains methods that identifying the root physical operator of a physical plan.
 
Wraps a PrintStream and adds functionality to print with different levels of indentation.
 
 
 
 
 
 
 
Provides iterators created by a given IteratorFactory.
 
 
Estimate selectivity of a subplan by considering - the number of new unbound variables - the position of new unbound variables (sub, pred, or obj) - number of joins contained in this subplan - types of joins contained in this subplan (star join, chain join, unusual join) To get unbound variables, the set of bindings in selectedPlans needs to be considered.
This iterator enumerates the result of joining two collections of solution mappings.
 
An abstract base class for implementations of JoinPlanOptimizer.
 
 
An implementation of the JSON2SolutionMappings approach
 
 
A DataRetrievalInterface via which a JSON document can be retrieved.
 
 
This class models graphs with labeled edges.
Enum for the possible edge directions
An edge of a labeled graph has an id, an edge label, a target node and a direction
Represents a path in a graph, starting from a given node and following a sequence of edges.
 
 
This interface represents elements in the subset of Cypher Expressions that can be evaluated to lists.
 
 
 
 
 
The top-level interface for all types of logical operators of HeFQUIN.
 
 
 
 
 
 
 
 
A multiway left join corresponds to a sequence of SPARQL OPTIONAL clauses.
 
 
 
 
 
 
 
 
 
 
Implementations of this interface provide the functionality to print logical plans in some way.
 
 
 
 
 
Applies a LogicalPlanVisitor to a given LogicalPlan recursively in a depth-first order.
 
 
 
 
 
 
 
 
 
This class provides methods to convert logical operators into physical operators by using the respective default type of physical operator for each type of logical operator.
 
 
Represents the notion of an LPG-to-RDF configuration as defined in Olaf Hartig: "Foundations to Query Labeled Property Graphs using SPARQL*."
 
 
 
 
 
 
Vocabulary definitions from LPGtoRDFConfiguration.ttl
 
This class represents a special type of AliasedExpression.
Represents path matching statements of Cypher queries For example, MATCH (x), MATCH (x)-[e]->(y)
 
Collects the emitted triples into a graph and writes this graph to the given OutputStream upon calling the MaterializeRDFViewOfLPG.MyCachingStreamRDF.finish() function.
An implementation of IntermediateResultElementSink that materializes all solution mappings that are sent to it directly into an IntermediateResultBlock.
An implementation of QueryResultSink that simply materializes the query result.
 
Merges subplans that consists of multiple requests to the same federation member if such a merge is possible.
This class implements a cardinality estimation approach that relies on the cardinalities of subPlans.
 
 
 
 
 
 
A specialization of the ExecutableOperator interface that captures executable operators that consume an arbitrary number of sequences of solution mappings (where each such sequence is batched into several blocks of solution mappings).
Top-level base class for all implementations of NaryExecutableOp.
An interface for any type of LogicalOperator that has an arbitrary arity ; i.e., it is defined of as a function over an arbitrary number of multisets of solution mappings.
An interface for any type of PhysicalOperator whose algorithm consumes an arbitrary number of sequences of solution mappings as input.
An interface for any type of PhysicalOperator that directly implements a particular logical operator that has an arbitrary arity.
 
 
 
 
 
 
 
 
 
 
 
This interface captures the notion of a nodeLabel mapping that is part of the notion of an LPG-to-RDF configuration, and that such a nodeLabel mapping is an injective function from nodeLabels in LPGs to IRIs or RDF-literal nodes as can occur in RDF graphs.
 
 
 
 
 
 
This interface captures the notion of a node mapping that is part of the notion of an LPG-to-RDF configuration, and that such a node mapping is an injective function from nodes in LPGs to IRIs or blank nodes as can occur in RDF graphs.
 
 
Represents a node match clause For example, MATCH (x)
A specialization of the ExecutableOperator interface that captures executable operators that do not consume any input produced by other operators; hence, these operators are the leaf nodes in a tree representation of query execution plans.
Top-level base class for all implementations of NullaryExecutableOp.
An interface for any type of LogicalOperator that has an arity of zero.
An interface for any type of PhysicalOperator whose algorithm does not consume any input (but produces a sequence of solution mappings as output).
An interface for any type of PhysicalOperator that directly implements a particular logical operator that has an arity of zero.
 
 
 
 
 
In contrast to Jena's PatternVars class, this one collects all the variables in a given Element; i.e., including the ones inside MINUS and FILTERs.
 
A physical operator that implements a binary union.
A physical operator that implements (a batching version of) the bind join algorithm for cases in which the federation member accessed by the algorithm supports the brTPF interface.
A physical operator that implements (a batching version of) the bind join algorithm using FILTERs to capture the potential join partners that are sent to the federation member.
A physical operator that implements (a batching version of) the bind join algorithm using UNION.
A physical operator that implements (a batching version of) the bind join algorithm using a VALUES clause to capture the potential join partners that are sent to the federation member.
This is the top-level interface for all types of physical operators of HeFQUIN, where a physical operator is an element in a (physical) query execution plan and is associated with a concrete algorithm that produces a result (in HeFQUIN, this would be in the form of a sequence of solution mappings) by consuming such results produced by the sub-plans under the current operator.
An interface for any type of PhysicalOperator that directly implements a particular logical operator.
A physical operator that filters the input solution mappings.
A physical operator that applies a given vocabulary mapping to all input solution mappings, converting them from using global vocabulary terms to using local vocabulary terms.
A physical operator that implements the hash join algorithm to perform an inner join of two sequences of input solution mappings (produced by the two sub-plans under this operator).
A physical operator that implements the hash join algorithm to perform a right outer join of two sequences of input solution mappings (produced by the two sub-plans under this operator).
A physical operator that implements a version of the index nested loops join algorithm where the federation member is used as an index to request join partners for the input solution mappings.
A physical operator that applies a given vocabulary mapping to all input solution mappings, converting them from using local vocabulary terms to using global vocabulary terms.
A physical operator that implements a multi-way union.
A physical operator that implements a local (!)
A physical operator that implements a left-outer join for multiple optional parts; as a unary operator, the operator has a single input, which provides the solutions of the non-optional part.
A physical operator that performs a request at a federation member and, then, outputs the solution mappings obtained via this request.
A physical operator that implements the symmetric hash join algorithm to perform an inner join of two sequences of input solution mappings (produced by the two sub-plans under this operator).
An exception that occurred during query optimization.
 
 
 
 
 
 
 
Implementations of this interface provide the functionality to print physical plans in some way.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Represents the set of property/value pairs that an LPG node or edge can have
 
This interface captures the notion of a property name mapping that is part of the notion of an LPG-to-RDF configuration, where such a property name mapping is an injective function from names of properties in LPGs to IRIs nodes as can occur in RDF graphs.
 
 
 
Pull-based implementation of ExecPlanTask.
 
 
 
 
 
 
 
Push-based implementation of ExecPlanTask.
 
 
 
 
 
In cases in which there are unions with requests under joins (which may happen only if we do not use UnionPullUp, this heuristics turns the requests into xxAdd operators with the previous join arguments as subplans.
 
 
An exception that occurred during query compilation.
 
 
 
 
 
 
Simple implementation of QueryPlanner.
An exception that occurred during query planning.
 
 
 
 
Simple implementation of QueryProcessor.
An exception that may occur when processing a query.
 
 
 
 
 
 
 
 
 
 
A record entry is a pair (ai, vi) where ai is a Cypher variable and vi is a Value.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Abstract base class for classes that implement iterators that translate solution mappings from an input iterator by applying a vocabulary mapping.
Attention: if you need a list of all the resulting solution mappings, use instead.
Attention: if you need a list of all the resulting solution mappings, use SolutionMappingUtils.applyVocabularyMappingL2G(Iterator, VocabularyMapping) instead.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Maps from the global schema (considered RDF vocabularies) to a local schema of some data source(s) / federation member(s).
 
 
This implementation of SourcePlanner does not actually perform query decomposition and source selection but simply assumes queries with SERVICE clauses where, for the moment, all of these SERVICE clauses are of the form "SERVICE uri {...}"
Helper class representing the nodes used to check for cyclic bindings between SGPs
This class implements a simple query optimizer that focuses only on join ordering, for which it uses an enumeration algorithm to optimize any subplan that consists of a group of joins.
 
A DataRetrievalInterface via which a set of solution mappings can be retrieved.
 
 
 
 
 
This is a hash table based implementation of SolutionMappingsIndex that can be used for indexes that are meant to be used for cases in which adding and probing into the index may not happen concurrently.
This is a hash table based implementation of SolutionMappingsIndex that can be used for indexes that are built on one query variable and that are meant to be used for cases in which adding and probing into the index may not happen concurrently.
This is a hash table based implementation of SolutionMappingsIndex that can be used for indexes that are built on two query variables and that are meant to be used for cases in which adding and probing into the index may not happen concurrently.
Implementations of this interface can be used as an index for SolutionMapping objects.
 
Wraps another SolutionMappingsIndex and, for every method that returns an Iterable of solution mappings, this implementation copies the Iterable returned by the wrapped index into a new list and, then, returns that list.
This is a special implementation of SolutionMappingsIndex that can be used for cases in which ALL indexed solution mappings should be returned as join partners.
 
This is an iterator over all solution mappings contained in a nested collection (more precisely, in lists contained in a collection).
 
 
 
An exception that occurred when creating a source assignment for a given query.
 
 
Objects of this type capture the output of the SPARQL-to-Cypher translation (as performed by a SPARQLStar2CypherTranslator).
 
Provides helper functions for creating the necessary data in a GraphQL query.
Translator for SPARQL to GraphQL
 
 
 
 
 
A SPARQL group pattern represents a collection of SPARQL graph patterns for which the results are meant to be joined.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
This class represents a subject-based star pattern, that is, a set of triple patterns that all share the same subject.
An interface for statistics collected during some process or by a data structure or component.
 
 
 
 
 
 
 
 
 
 
A record is a "row" of the results of the evaluation of a Cypher query.
 
 
 
Distance-based termination criterion: Termination is triggered when the relative distance between the average cost of plans in the current generation and in the previous generation has not exceeded a specified distance threshold for a number of generations.
Distance-based termination criterion: Termination is triggered when the relative distance between the average cost in the current generation and in the previous generation has not exceeded a specified distance threshold for a number of generations.
Distance-based termination criterion: Termination is triggered when the relative distance between the cost of the best plan in the current generation and in the previous generation has not exceeded a specified distance threshold for a number of generations.
Diversity-based termination criterion: Similar to TerminateByDiversityDistMax, but only the top-k plans with lowest cost within each generation are considered.
Diversity-based termination criterion: Termination is triggered when the relative difference between the cost of the best plan and the worst plan within each generation has not exceeded a specified distance threshold for a number of generations.
Diversity-based termination criterion: Termination is triggered when the relative standard deviation of the cost values within the current generation is below a given threshold or the N-th generation is reached.
Termination is triggered when the lowest-cost plan per generation has not exceeded a specified threshold for a number of generations.
termination criterion: number of generations
 
Base class for implementations of TerminationCriterion.
 
 
 
 
 
 
 
 
 
 
 
Base class for RequestProcessor implementations that retrieve TPFResponse.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
A DataRetrievalInterface via which a set of triples can be retrieved.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
A specialization of the ExecutableOperator interface that captures executable operators that consume a single input sequence of solution mappings (which are batched into several blocks).
Top-level base class for all implementations of UnaryExecutableOp.
 
An interface for any type of LogicalOperator that has an arity of one; i.e., it is defined of as a function over one multiset of solution mappings.
An interface for any type of PhysicalOperator whose algorithm consumes a single sequence of solution mappings as input.
An interface for any type of PhysicalOperator that directly implements a particular logical operator that has an arity of one.
This iterator enumerates the solution mappings from two other iterators, essentially producing a union of the collections of solution mappings that the other two iterators enumerate.
Pulls up all (multiway) union operators in the given plan as high up as possible.
 
 
 
This interface represents an UNWIND clause of a Match Query.
 
Provides helper functions that focuses on conversions from URIs to GraphQL data that is then used at a GraphQL endpoint.
 
Queries with a WHERE clause of a form such as the following one need to be rewritten, which is what this class does.
 
 
Collects all variables in a given Element except for variables that occur *only* as the variable of SERVICE clauses.
 
 
 
 
 
 
 
 
 
Temporary class.
Wraps another iterable over the same type and can be used to apply a corresponding wrapping iterator.
 
Base class for implementations of SolutionMappingsIndex that wrap another SolutionMappingsIndex.