Class ServiceClauseBasedSourcePlannerImpl

java.lang.Object
se.liu.ida.hefquin.engine.queryproc.impl.srcsel.SourcePlannerBase
se.liu.ida.hefquin.engine.queryproc.impl.srcsel.ServiceClauseBasedSourcePlannerImpl
All Implemented Interfaces:
SourcePlanner
Direct Known Subclasses:
ExhaustiveSourcePlannerImpl

public class ServiceClauseBasedSourcePlannerImpl extends SourcePlannerBase
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 {...}" (i.e., not "SERVICE var {...}"). Therefore, all that this implementation does is to convert the given query pattern into a logical plan.
  • Constructor Details

    • ServiceClauseBasedSourcePlannerImpl

      public ServiceClauseBasedSourcePlannerImpl()
  • Method Details

    • createSourceAssignment

      protected Pair<LogicalPlan,SourcePlanningStats> createSourceAssignment(org.apache.jena.sparql.algebra.Op jenaOp, QueryProcContext ctxt) throws SourcePlanningException
      Specified by:
      createSourceAssignment in class SourcePlannerBase
      Throws:
      SourcePlanningException
    • createPlan

      protected LogicalPlan createPlan(org.apache.jena.sparql.algebra.Op jenaOp, boolean mayReduce, QueryProcContext ctxt)
    • createPlanForSequence

      protected LogicalPlan createPlanForSequence(org.apache.jena.sparql.algebra.op.OpSequence jenaOp, boolean mayReduce, QueryProcContext ctxt)
    • createPlanForJoin

      protected LogicalPlan createPlanForJoin(org.apache.jena.sparql.algebra.op.OpJoin jenaOp, boolean mayReduce, QueryProcContext ctxt)
    • createPlanForJoin

      protected LogicalPlan createPlanForJoin(List<org.apache.jena.sparql.algebra.Op> ops, boolean mayReduce, QueryProcContext ctxt)
    • createPlanForLeftJoin

      protected LogicalPlan createPlanForLeftJoin(org.apache.jena.sparql.algebra.op.OpLeftJoin jenaOp, boolean mayReduce, QueryProcContext ctxt)
    • createPlanForLeftJoin

      protected LogicalPlan createPlanForLeftJoin(org.apache.jena.sparql.algebra.op.OpConditional jenaOp, boolean mayReduce, QueryProcContext ctxt)
    • createPlanForMinus

      protected LogicalPlan createPlanForMinus(org.apache.jena.sparql.algebra.op.OpMinus jenaOp, boolean mayReduce, QueryProcContext ctxt)
    • createPlanForUnion

      protected LogicalPlan createPlanForUnion(org.apache.jena.sparql.algebra.op.OpUnion jenaOp, boolean mayReduce, QueryProcContext ctxt)
    • createPlanForFilter

      protected LogicalPlan createPlanForFilter(org.apache.jena.sparql.algebra.op.OpFilter jenaOp, boolean mayReduce, QueryProcContext ctxt)
    • createPlanForBind

      protected LogicalPlan createPlanForBind(org.apache.jena.sparql.algebra.op.OpExtend jenaOp, boolean mayReduce, QueryProcContext ctxt)
    • createPlanForUnfold

      protected LogicalPlan createPlanForUnfold(org.apache.jena.sparql.algebra.op.OpUnfold jenaOp, boolean mayReduce, QueryProcContext ctxt)
    • createPlanForValues

      protected LogicalPlan createPlanForValues(org.apache.jena.sparql.algebra.op.OpTable jenaOp, QueryProcContext ctxt)
    • createPlanForServicePattern

      protected LogicalPlan createPlanForServicePattern(org.apache.jena.sparql.algebra.op.OpService jenaOp, boolean mayReduce, QueryProcContext ctxt)
      This function assumes that the given operator comes from a SERVICE clause that did not have a PARAMS part (or an empty one), and it produces a plan with a request operator as root.
    • createPlanForServiceWithParams

      protected LogicalPlan createPlanForServiceWithParams(OpServiceWithParams jenaOp, boolean mayReduce, LogicalPlan subplan, QueryProcContext ctxt)
      This function assumes that the given operator comes from a SERVICE clause that had a nonempty PARAMS part, and it produces a plan with a gpAdd operator as root and the given subplan as input to this root operator.
    • createPlanForDistinct

      protected LogicalPlan createPlanForDistinct(org.apache.jena.sparql.algebra.op.OpDistinct jenaOp, QueryProcContext ctxt)
    • createPlanForProject

      protected LogicalPlan createPlanForProject(org.apache.jena.sparql.algebra.op.OpProject jenaOp, boolean mayReduce, QueryProcContext ctxt)
    • createPlan

      protected LogicalPlan createPlan(org.apache.jena.sparql.algebra.Op jenaOp, boolean mayReduce, FederationMember fm)
    • createPlanForJoin

      protected LogicalPlan createPlanForJoin(org.apache.jena.sparql.algebra.op.OpJoin jenaOp, boolean mayReduce, FederationMember fm)
    • createPlanForLeftJoin

      protected LogicalPlan createPlanForLeftJoin(org.apache.jena.sparql.algebra.op.OpLeftJoin jenaOp, boolean mayReduce, FederationMember fm)
    • createPlanForLeftJoin

      protected LogicalPlan createPlanForLeftJoin(org.apache.jena.sparql.algebra.op.OpConditional jenaOp, boolean mayReduce, FederationMember fm)
    • createPlanForUnion

      protected LogicalPlan createPlanForUnion(org.apache.jena.sparql.algebra.op.OpUnion jenaOp, boolean mayReduce, FederationMember fm)
    • createPlanForFilter

      protected LogicalPlan createPlanForFilter(org.apache.jena.sparql.algebra.op.OpFilter jenaOp, boolean mayReduce, FederationMember fm)
    • createPlanForBGP

      protected LogicalPlan createPlanForBGP(org.apache.jena.sparql.algebra.op.OpBGP pattern, boolean mayReduce, FederationMember fm)
    • createPlanForBGP

      protected LogicalPlan createPlanForBGP(org.apache.jena.sparql.core.BasicPattern pattern, boolean mayReduce, FederationMember fm)
    • createPlanForTriplePattern

      protected LogicalPlan createPlanForTriplePattern(org.apache.jena.sparql.algebra.op.OpTriple pattern, boolean mayReduce, FederationMember fm)
    • createPlanForBGP

      protected LogicalPlan createPlanForBGP(BGP bgp, boolean mayReduce, FederationMember fm)
    • createPlanForOpTable

      protected LogicalPlan createPlanForOpTable(org.apache.jena.sparql.algebra.op.OpTable opTable)
    • mergeIntoMultiwayJoin

      protected LogicalPlan mergeIntoMultiwayJoin(boolean mayReduce, LogicalPlan... subPlans)
    • mergeIntoMultiwayJoin

      protected LogicalPlan mergeIntoMultiwayJoin(List<LogicalPlan> subPlans, boolean mayReduce)
    • mergeIntoMultiwayLeftJoin

      protected LogicalPlan mergeIntoMultiwayLeftJoin(LogicalPlan leftSubPlan, LogicalPlan rightSubPlan, boolean mayReduce)
    • mergeIntoMultiwayUnion

      protected LogicalPlan mergeIntoMultiwayUnion(boolean mayReduce, LogicalPlan... subPlans)