Package lupos.engine.operators

Examples of lupos.engine.operators.BasicOperator


                            return true;
                        }
                    }
                }
           
                BasicOperator nextOp = filterOutestFilter.getPrecedingOperators().get(0);
           
                if(nextOp.equals(this.o2)) {
                    checkFurther = false;
                }
                else {
                    filterOutestFilter = (lupos.engine.operators.singleinput.filter.Filter) nextOp;
                }
View Full Code Here


          final Generate generateInstead = new Generate(triple);
          final LinkedList<OperatorIDTuple> llo = new LinkedList<OperatorIDTuple>();
          llo.addAll(bo.getSucceedingOperators());
          // delete path from the successors:
          final int index = path.indexOf(new OperatorIDTuple(bo, -1));
          final BasicOperator afterInPath = (index == path.size() - 1) ? path
              .get(0)
              : path.get(index + 1);
          llo.remove(new OperatorIDTuple(afterInPath, -1));
          generateInstead.setSucceedingOperators(llo);
          instead.add(generateInstead);
View Full Code Here

        this.o2.getOperatorIDTuple(j_new).setId(0);
        this.o3.getOperatorIDTuple(j_new).setId(1);
       
        for(BasicOperator precOp : this.u.getPrecedingOperators()) {
            if(!precOp.equals(this.f)) {
                BasicOperator tmpOp = precOp;
       
                while(tmpOp instanceof lupos.engine.operators.singleinput.filter.Filter) {
                    tmpOp = tmpOp.getPrecedingOperators().get(0);
                }
       
       
                lupos.engine.operators.multiinput.join.Join newJoin = new lupos.engine.operators.multiinput.join.Join();
       
                newJoin.addPrecedingOperator(tmpOp);
                newJoin.addPrecedingOperator(this.o3);
       
                for(OperatorIDTuple opIDt : tmpOp.getSucceedingOperators()) {
                    opIDt.getOperator().removePrecedingOperator(tmpOp);
                    opIDt.getOperator().addPrecedingOperator(newJoin);
                }
       
                newJoin.setSucceedingOperators(tmpOp.getSucceedingOperators());
                tmpOp.setSucceedingOperator(new OperatorIDTuple(newJoin, 0));
                this.o3.addSucceedingOperator(new OperatorIDTuple(newJoin, 1));
       
       
                HashSet<lupos.datastructures.items.Variable> intersectionVariables = new HashSet<lupos.datastructures.items.Variable>();
                intersectionVariables.addAll(tmpOp.getUnionVariables());
                intersectionVariables.retainAll(this.o3.getUnionVariables());
       
                HashSet<lupos.datastructures.items.Variable> unionVariables = new HashSet<lupos.datastructures.items.Variable>();
                unionVariables.addAll(tmpOp.getUnionVariables());
                unionVariables.addAll(this.o3.getUnionVariables());
       
                newJoin.setIntersectionVariables(intersectionVariables);
                newJoin.setUnionVariables(unionVariables);
       
       
                tmpOp = tmpOp.getSucceedingOperators().get(0).getOperator();
       
                while(!tmpOp.equals(this.u)) {
                    tmpOp.setUnionVariables(unionVariables);
                    tmpOp.setIntersectionVariables(intersectionVariables);
       
                    tmpOp = tmpOp.getSucceedingOperators().get(0).getOperator();
                }
            }
        }
    }
View Full Code Here

      final BasicOperator rootOperator) {
    final Collection<BasicOperator> deleted = new LinkedList<BasicOperator>();
    final Collection<BasicOperator> added = new LinkedList<BasicOperator>();
    final Join join = (Join) mso.get("join");
    final List<BasicOperator> ctp = join.getPrecedingOperators();
    final BasicOperator finalJoin = getBinaryJoin(ctp, added);
    finalJoin.setSucceedingOperators(join.getSucceedingOperators());
    rootOperator.deleteParents();
    rootOperator.setParents();
    rootOperator.detectCycles();
    rootOperator.sendMessage(new BoundVariablesMessage());
    deleted.add(join);
View Full Code Here

    final Collection<BasicOperator> remainingJoins = new LinkedList<BasicOperator>();
    final Iterator<BasicOperator> itp = newOrder.iterator();

    while (itp.hasNext()) {

      final BasicOperator first = itp.next();
      if (itp.hasNext()) {
        final Join newJoin = new Join();
        added.add(newJoin);
        first.setSucceedingOperator(new OperatorIDTuple(newJoin, 0));
        final BasicOperator second = itp.next();
        second.setSucceedingOperator(new OperatorIDTuple(newJoin, 1));
        final HashSet<Variable> hv = new HashSet<Variable>();
        hv.addAll(first.getUnionVariables());
        hv.addAll(second.getUnionVariables());
        newJoin.setUnionVariables(hv);
        remainingJoins.add(newJoin);
      } else {
        remainingJoins.add(first);
      }
    }

    while (remainingJoins.size() > 1) {
      // choose best combination
      final Collection<BasicOperator> co = getNextJoin(remainingJoins);
      final Iterator<BasicOperator> io = co.iterator();
      final BasicOperator first = io.next();
      final BasicOperator second = io.next();
      final Join join = new Join();
      added.add(join);

      join.setIntersectionVariables(new HashSet<Variable>());
      join.setUnionVariables(new HashSet<Variable>());
      join.getUnionVariables().addAll(first.getUnionVariables());
      join.getUnionVariables().addAll(second.getUnionVariables());
      first.setSucceedingOperator(new OperatorIDTuple(join, 0));
      second.setSucceedingOperator(new OperatorIDTuple(join, 1));
      remainingJoins.remove(first);
      remainingJoins.remove(second);
      remainingJoins.add(join);
    }
    return remainingJoins.iterator().next();
View Full Code Here

  private Collection<BasicOperator> optimizeJoinOrderAccordingToMostRestrictionsForMergeJoin(
      final List<BasicOperator> remaining) {
    final Collection<BasicOperator> newOrder = new LinkedList<BasicOperator>();

    while (remaining.size() > 1) {
      BasicOperator best1 = null;
      BasicOperator best2 = null;
      int minOpenPositions = 4;

      for (final BasicOperator bo1 : remaining) {
        for (final BasicOperator bo2 : remaining) {
          if (!bo1.equals(bo2)) {
View Full Code Here

  }

  private Collection<BasicOperator> getNextJoin(
      final Collection<BasicOperator> remainingJoins) {
    final Collection<BasicOperator> co = new LinkedList<BasicOperator>();
    BasicOperator best1 = null;
    BasicOperator best2 = null;
    int minCommonVariables = -1;

    for (final BasicOperator o1 : remainingJoins) {
      for (final BasicOperator o2 : remainingJoins) {
        if (!o1.equals(o2)) {
View Full Code Here

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

    BasicOperator pre;
    OperatorIDTuple idTuple;
    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(generateAdd);
      }
    }

    BasicOperator succ;
    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(generateAdd);
      }
    }

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

                break;
            }

            // --- handle JumpOver - begin ---
            this.j_end = (lupos.engine.operators.BasicOperator) _precOp_1_0;
            BasicOperator _searchIndex_1_0 = _precOp_1_0;
            boolean _continueFlag_1_0 = false;

            while(_searchIndex_1_0 != null && (_searchIndex_1_0.getClass() != lupos.engine.operators.tripleoperator.TriplePattern.class)) {
                if(!(_searchIndex_1_0 instanceof lupos.engine.operators.BasicOperator)) {
                    _continueFlag_1_0 = true;
                    break;
                }

                lupos.engine.operators.BasicOperator j = (lupos.engine.operators.BasicOperator) _searchIndex_1_0;

                if(j instanceof lupos.engine.operators.singleinput.path.Closure) {
  _continueFlag_1_0 = true;
  break;
}

                if(_searchIndex_1_0.getSucceedingOperators().size() != 1 || _searchIndex_1_0.getPrecedingOperators().size() != 1) {
                    _continueFlag_1_0 = true;
                    break;
                }

                _searchIndex_1_0 = _searchIndex_1_0.getPrecedingOperators().get(0);
            }

            if(_continueFlag_1_0) {
                continue;
            }

            this.j_begin = (lupos.engine.operators.BasicOperator) _searchIndex_1_0.getSucceedingOperators().get(0).getOperator();
            // --- handle JumpOver - end ---


            List<BasicOperator> _precedingOperators_2_0 = this.j_begin.getPrecedingOperators();
View Full Code Here

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

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

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

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

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

    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.