Package lupos.engine.operators

Examples of lupos.engine.operators.BasicOperator


  }

  private BasicIndexScan findIndex(final BasicOperator root,
      final TriplePattern triplePattern) {
    for (final OperatorIDTuple opID : root.getSucceedingOperators()) {
      final BasicOperator bo = opID.getOperator();
      if (bo instanceof BasicIndexScan) {
        if (((BasicIndexScan) bo).getTriplePattern()
            .contains(triplePattern))
          return (BasicIndexScan) bo;
      }
View Full Code Here


      selectivity.put(plan.getTriplePatterns().iterator().next(), plan.getSelectivity());
      root.addSucceedingOperator(new OperatorIDTuple(index1, 0));
      return index1;
    } else {
      final InnerNodePlan inp = (InnerNodePlan) plan;
      final BasicOperator left = generateOperatorGraph(inp.getLeft(), root, indexScan, inp.getJoinPartner(), minima, maxima, selectivity);
      final BasicOperator right = generateOperatorGraph(inp.getRight(), root, indexScan, inp.getJoinPartner(), minima, maxima, selectivity);
     
      return this.generateJoin(inp, root, left, right, sortCriterium, selectivity);
    }
  }
View Full Code Here

    final LinkedList<OperatorIDTuple> succs = (LinkedList<OperatorIDTuple>) projection
        .getSucceedingOperators();

    final int index = genAdd.getOperatorIDTuple(projection).getId();

    BasicOperator pre;
    for (int i = 0; i < pres.size(); i++) {
      pre = pres.get(i);
      pre.addSucceedingOperator(new OperatorIDTuple(projection, index));
      pre.removeSucceedingOperator(genAdd);
      projection.addPrecedingOperator(pre);
    }

    projection.removePrecedingOperator(genAdd);
    projection.setSucceedingOperator(new OperatorIDTuple(genAdd, 0));

    genAdd.setPrecedingOperator(projection);
    genAdd.setSucceedingOperators(succs);

    BasicOperator succ;
    for (int i = 0; i < succs.size(); i++) {
      succ = succs.get(i).getOperator();
      succ.addPrecedingOperator(genAdd);
      succ.removePrecedingOperator(projection);
    }

    rootOperator.deleteParents();
    rootOperator.setParents();
    rootOperator.detectCycles();
View Full Code Here

public class RuleDeleteNotConnectedToResultOperator extends Rule {

  @Override
  protected void init() {
    final BasicOperator bo = new TriplePattern();

    subGraphMap = new HashMap<BasicOperator, String>();
    subGraphMap.put(bo, "bo");

    startNode = bo;
View Full Code Here

    return new Rule[] {};
  }

  @Override
  protected boolean checkPrecondition(final Map<String, BasicOperator> mso) {
    final BasicOperator bo = mso.get("bo");
    final FindResultOperatorVisitor frov = new FindResultOperatorVisitor();
    final Object o = bo.visit(frov);
    return !frov.found();
  }
View Full Code Here

  public Tuple<Collection<BasicOperator>, Collection<BasicOperator>> transformOperatorGraph(
      final Map<String, BasicOperator> mso,
      final BasicOperator rootOperator) {
    final Collection<BasicOperator> deleted = new LinkedList<BasicOperator>();
    final Collection<BasicOperator> added = new LinkedList<BasicOperator>();
    final BasicOperator bo = mso.get("bo");
    for (final BasicOperator pred : bo.getPrecedingOperators()) {
      pred.removeSucceedingOperator(bo);
    }
    bo.visit(new SimpleOperatorGraphVisitor() {
      public Object visit(final BasicOperator basicOperator) {
        deleted.add(basicOperator);
        return null;
      }
    });
View Full Code Here

    final Object[] projVars = projection.getProjectedVariables().toArray();

    final LinkedList<Variable> unionPres = new LinkedList<Variable>();

    BasicOperator pre;
    Object[] union;
    // calculate UNION-Variables of the precessors
    for (int i = 0; i < pres.size(); i++) {
      pre = pres.get(i);
      union = pre.getUnionVariables().toArray();
      for (int u = 0; u < union.length; u++) {
        if (!unionPres.contains(union[u])) {
          unionPres.add((Variable) union[u]);
        }
      }
View Full Code Here

    final LinkedList<BasicOperator> pres = (LinkedList<BasicOperator>) projection
        .getPrecedingOperators();
    final LinkedList<OperatorIDTuple> succs = (LinkedList<OperatorIDTuple>) projection
        .getSucceedingOperators();

    BasicOperator pre;
    OperatorIDTuple idTuple;
    // Connect all precessors to all successors
    for (int i = 0; i < pres.size(); i++) {
      for (int a = 0; a < succs.size(); a++) {
        idTuple = succs.get(a);
        pre = pres.get(i);
        pre.addSucceedingOperator(new OperatorIDTuple(idTuple
            .getOperator(), idTuple.getId()));
        pre.removeSucceedingOperator(projection);
      }
    }

    BasicOperator succ;
    // And all successors to all precessors
    for (int i = 0; i < succs.size(); i++) {
      for (int a = 0; a < pres.size(); a++) {
        succ = succs.get(i).getOperator();
        succ.addPrecedingOperator(pres.get(a));
        succ.removePrecedingOperator(projection);
      }
    }

    rootOperator.deleteParents();
    rootOperator.setParents();
View Full Code Here

            final Union union = new Union();
            final TriggerOneTime trigger = new TriggerOneTime();

            while (it.hasNext()) {
              final Triple t = it.next();
              BasicOperator lastOperator = union;
              for (int i = 0; i < 3; i++) {
                if (tp.getPos(i).isVariable()) {
                  final AddBinding add = new AddBinding(
                      (Variable) tp.getPos(i), t
                          .getPos(i));
                  add
                      .addSucceedingOperator(new OperatorIDTuple(
                          lastOperator, 0));
                  // Not completely correct, but for
                  // the succeeding optimization steps
                  // enough!
                  add
                      .setUnionVariables((HashSet<Variable>) tp
                          .getVariables().clone());
                  add.setIntersectionVariables(add
                      .getUnionVariables());
                  lastOperator.addPrecedingOperator(add);
                  lastOperator = add;
                }
              }
              trigger.addSucceedingOperator(new OperatorIDTuple(
                  lastOperator, 0));
            }

            if (trigger.getSucceedingOperators().size() > 0) {
              trigger.setPrecedingOperators(tp
                  .getPrecedingOperators());
              for (final BasicOperator po : tp
                  .getPrecedingOperators()) {
                po.addSucceedingOperator(new OperatorIDTuple(
                    trigger, 0));
              }
              BasicOperator lo = union;
              if (union.getPrecedingOperators().size() == 1
                  && isOntologyTriplePattern == ISONTOLOGYTRIPLEPATTERN.YES) {
                lo = union.getPrecedingOperators().get(0);
              }
              lo.setSucceedingOperators(tp
                  .getSucceedingOperators());
              for (final OperatorIDTuple so : tp
                  .getSucceedingOperators()) {
                so.getOperator().addPrecedingOperator(lo);
              }
            }

            if (tp.getPrecedingOperators().size() != 1) {
              System.err
                  .println("Something is wrong! Triple pattern has not exactly one preceding operator!");
            }

            for (final OperatorIDTuple so : tp
                .getSucceedingOperators()) {
              so.getOperator().removePrecedingOperator(tp);
            }

            // if (isOntologyTriplePattern ==
            // ISONTOLOGYTRIPLEPATTERN.YES) {
            // then delete the old triple pattern
            final BasicOperator po = tp.getPrecedingOperators()
                .get(0);
            po.removeSucceedingOperator(tp);
            // } else {
            // // otherwise do not delete old triple pattern and
            // // make the union operator its succeeding operator!
            // tp.setSucceedingOperator(new OperatorIDTuple(union,
            // union.getPrecedingOperators().size()));
View Full Code Here

    final LinkedList<OperatorIDTuple> succs = (LinkedList<OperatorIDTuple>) join
        .getSucceedingOperators();

    final int index = genAdd.getOperatorIDTuple(join).getId();

    BasicOperator pre;
    for (int i = 0; i < pres.size(); i++) {
      pre = pres.get(i);
      pre.addSucceedingOperator(new OperatorIDTuple(join, index));
      pre.removeSucceedingOperator(genAdd);
      join.addPrecedingOperator(pre);
    }

    join.removePrecedingOperator(genAdd);
    join.setSucceedingOperator(new OperatorIDTuple(genAdd, 0));

    genAdd.setPrecedingOperator(join);
    genAdd.setSucceedingOperators(succs);

    BasicOperator succ;
    for (int i = 0; i < succs.size(); i++) {
      succ = succs.get(i).getOperator();
      succ.addPrecedingOperator(genAdd);
      succ.removePrecedingOperator(join);
    }

    rootOperator.deleteParents();
    rootOperator.setParents();
    rootOperator.detectCycles();
View Full Code Here

TOP

Related Classes of lupos.engine.operators.BasicOperator

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.