Package lupos.engine.operators

Examples of lupos.engine.operators.OperatorIDTuple


        // add new connections...
        _label_a_count = 0;

        for(lupos.engine.operators.BasicOperator _child : this.o) {
            b.addSucceedingOperator(new OperatorIDTuple(_child, _label_a[_label_a_count]));
            _child.addPrecedingOperator(b);

            _label_a_count += 1;
        }
View Full Code Here


  protected void init() {
    // Define left side of rule
    final Operator a = new Operator();
    final Operator b = new Filter();
    a.setSucceedingOperator(new OperatorIDTuple(b, -1));
    b.setPrecedingOperator(a);

    subGraphMap = new HashMap<BasicOperator, String>();
    subGraphMap.put(a, "operator");
    subGraphMap.put(b, "filter");
View Full Code Here

        final BasicOperator op1 = this.transformation.get(label);
        final BasicOperator op2 = mso.get(label);
        final List<OperatorIDTuple> succs = op2
            .getSucceedingOperators();
        for (int i = succs.size() - 1; i >= 0; i--) {
          final OperatorIDTuple opID = succs.get(i);
          if (this.inSubgraph(mso, opID)) {
            succs.remove(i);
            opID.getOperator().removePrecedingOperator(op2);
            if (opID.getOperator().getPrecedingOperators().size() == 0) {
              deleted.add(opID.getOperator());
            }
          }
        }
        op2.addSucceedingOperators(op1.getSucceedingOperators());
        operators.put(op1, op2);
      } else {
        final BasicOperator toAdd = this.transformation.get(label).clone();
        added.add(toAdd);
        operators.put(this.transformation.get(label), toAdd);
      }
    }
    for (final BasicOperator op : operators.keySet()) {
      final BasicOperator realOp = operators.get(op);
      for (int i = 0; i < realOp.getSucceedingOperators().size(); i++) {
        final OperatorIDTuple succ = realOp.getSucceedingOperators()
            .get(i);
        if (operators.containsKey(succ.getOperator())) {
          realOp.getSucceedingOperators().set(
              i,
              new OperatorIDTuple(operators.get(succ
                  .getOperator()), succ.getId()));
          operators.get(succ.getOperator()).addPrecedingOperator(
              realOp);
        }
      }
    }
    rootOperator.deleteParents();
View Full Code Here

          disconnect.add(path.get(1));
          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);
          return true;
        }
      }
      if (bo instanceof TriplePattern) {
        bindings = new HashMap<Variable, Item>();
        final Item[] items = ((TriplePattern) bo).getItems();
        int i = 0;
        for (final Item item : items) {
          if (item.isVariable()) {
            bindings.put((Variable) item, triple[i]);
          } else {
            if (!((Literal) item).equals(triple[i])) {
              if (!triple[i].isVariable()) {
                System.out
                    .println("RuleEliminateInfinityLoop: The generated triple will not be consumed by the succeeding triple pattern!");
                return false;
              }
            }
          }
          i++;
        }
      }
    }
    // is again the same triple generated as by the first call of the first
    // generate?
    if (path.get(0) instanceof Generate) {
      triple = new Item[3];
      final Generate generate = (Generate) path.get(0);
      for (int i = 0; i < 3; i++) {
        Item item = generate.getValueOrVariable()[i];
        if (item.isVariable()) {
          if (bindings.get(item) != null) {
            item = bindings.get(item);
          }
        }
        triple[i] = item;
      }
      // is a constant triple generated or the same triple as by the first
      // call of this generate?
      if ((!triple[0].isVariable() || triple[0].equals(generate
          .getValueOrVariable()[0]))
          && (!triple[1].isVariable() || triple[0].equals(generate
              .getValueOrVariable()[1]))
          && (!triple[2].isVariable() || triple[2].equals(generate
              .getValueOrVariable()[0]))) {
        disconnect.add(path.get(1));
        final Generate generateInstead = new Generate(triple);
        final LinkedList<OperatorIDTuple> llo = new LinkedList<OperatorIDTuple>();
        llo.addAll(path.get(0).getSucceedingOperators());
        // delete path from the successors:
        llo.remove(new OperatorIDTuple(path.get(1), -1));
        generateInstead.setSucceedingOperators(llo);
        instead.add(generateInstead);
        return true;
      }
    }
View Full Code Here

        i.removeSucceedingOperator(d);
      }
      // ??????????????? the previous is questionable ???????????????????
      for (final BasicOperator previous : generate
          .getPrecedingOperators()) {
        previous.addSucceedingOperator(new OperatorIDTuple(i, 0));
        i.addPrecedingOperator(previous);
      }
      added.add(i);
    }
    recursiveDelete(generate, deleted);
View Full Code Here

                    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());
View Full Code Here

      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

        // add new connections...
        _label_a_count = 0;

        for(lupos.engine.operators.BasicOperator _parent : this.above) {
            _parent.addSucceedingOperator(new OperatorIDTuple(this.projection, _label_a[_label_a_count]));
            this.projection.addPrecedingOperator(_parent);

            _label_a_count += 1;
        }


        _label_b_count = 0;

        for(lupos.engine.operators.BasicOperator _child : this.below) {
            this.sort.addSucceedingOperator(new OperatorIDTuple(_child, _label_b[_label_b_count]));
            _child.addPrecedingOperator(this.sort);

            _label_b_count += 1;
        }
View Full Code Here

        .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;
View Full Code Here

  protected void init() {
    final GenerateAddEnv genAdd = new GenerateAddEnv();
    final Optional optional = new Optional();

    // Only left Operand
    genAdd.setSucceedingOperator(new OperatorIDTuple(optional, 0));
    optional.setPrecedingOperator(genAdd);

    subGraphMap = new HashMap<BasicOperator, String>();
    subGraphMap.put(genAdd, "genAdd");
    subGraphMap.put(optional, "optional");
View Full Code Here

TOP

Related Classes of lupos.engine.operators.OperatorIDTuple

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.