Class PhysicalOpBindJoinSPARQL

java.lang.Object
se.liu.ida.hefquin.engine.queryplan.physical.impl.BaseForPhysicalOpSingleInputJoin
se.liu.ida.hefquin.engine.queryplan.physical.impl.PhysicalOpBindJoinSPARQL
All Implemented Interfaces:
QueryPlanOperator, PhysicalOperator, PhysicalOperatorForLogicalOperator, UnaryPhysicalOp, UnaryPhysicalOpForLogicalOp

public class PhysicalOpBindJoinSPARQL extends BaseForPhysicalOpSingleInputJoin
A physical operator that implements a batch-based bind-join algorithm for SPARQL endpoints that can be used in different variations. The variation to be used is determined by the arguments provided to the constructor of the Factory class (see below). It is possible to use either a parallel or a sequential implementation (see BaseForExecOpParallelBindJoin vs BaseForExecOpSequentialBindJoin) and, additionally, the form of the bind-join requests can be decided (e.g., VALUES-based, FILTER-based).

Semantics: This operator implements the logical operators gpAdd (see LogicalOpGPAdd) and gpOptAdd (see LogicalOpGPOptAdd). That is, for a given graph pattern, a federation member, and an input sequence of solution mappings (produced by the sub-plan under this operator), the operator produces the solutions resulting from the join (inner or left outer) between the input solutions and the solutions of evaluating the given graph pattern over the data of the federation member.

Algorithm description: For a detailed description of the actual algorithm associated with this physical operator, refer to BaseForExecOpParallelBindJoin (for the parallel version) and to BaseForExecOpSequentialBindJoin (for the sequential version), and to ExecOpSequentialBindJoinSPARQLwithVarRenaming, ExecOpSequentialBindJoinSPARQLwithVALUES, ExecOpSequentialBindJoinSPARQLwithFILTER, ExecOpSequentialBindJoinSPARQLwithUNION, and ExecOpSequentialBindJoinSPARQLwithVALUESorFILTER, for the different kinds of bind-join requests.