Examples of Generate


Examples of lupos.engine.operators.singleinput.generate.Generate

    HashMap<Variable, Item> bindings = new HashMap<Variable, Item>();
    Item[] triple = null;
    for (final BasicOperator bo : path) {
      if (bo instanceof Generate) {
        triple = new Item[3];
        final Generate generate = (Generate) bo;
        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?
        if (!triple[0].isVariable() && !triple[1].isVariable()
            && !triple[2].isVariable()) {
          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;
      }
    }
    return false;
View Full Code Here

Examples of lupos.engine.operators.singleinput.generate.Generate

    return false;
  }

  @Override
  protected boolean checkPrecondition(final Map<String, BasicOperator> mso) {
    final Generate generate = (Generate) mso.get("generate");
    // this check is simplified! It is not considered that on the path are
    // many succeeding nodes,
    // such the infinity loop cannot be broken in the simple way implemented
    // here...
    final LinkedList<LinkedList<BasicOperator>> resultList = checkInfinityLoop(generate);
View Full Code Here

Examples of lupos.engine.operators.singleinput.generate.Generate

      final BasicOperator rootOperator) {
    // (new OperatorGraphNew(rootOperator.deepClone(), -1, false))
    // .displayOperatorGraph("Before...", null);
    final Collection<BasicOperator> deleted = new LinkedList<BasicOperator>();
    final Collection<BasicOperator> added = new LinkedList<BasicOperator>();
    final Generate generate = (Generate) mso.get("generate");

    for (final BasicOperator d : disconnect) {
      generate.removeSucceedingOperator(d);
      d.removePrecedingOperator(generate);
    }
    for (final BasicOperator i : instead) {
      // ??????????????? the following is questionable ???????????????????
      for (final BasicOperator d : disconnect) {
        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);
View Full Code Here

Examples of lupos.engine.operators.singleinput.generate.Generate

public class RuleConstantPropagationFromAddToGenerate extends Rule {

  @Override
  protected void init() {
    final AddBinding add = new AddBinding(null, null);
    final Generate generate = new Generate();

    add.setSucceedingOperator(new OperatorIDTuple(generate, -1));
    generate.setPrecedingOperator(add);

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

Examples of lupos.engine.operators.singleinput.generate.Generate

      final Map<String, BasicOperator> mso,
      final BasicOperator rootOperator) {
    final Collection<BasicOperator> deleted = new LinkedList<BasicOperator>();
    final Collection<BasicOperator> added = new LinkedList<BasicOperator>();
    final AddBinding add = (AddBinding) mso.get("add");
    final Generate generate = (Generate) mso.get("generate");
    generate.replaceItems(add.getVar(), add.getLiteral());
    // remove add
    for (final BasicOperator bo : add.getPrecedingOperators()) {
      bo.removeSucceedingOperator(add);
      bo.getSucceedingOperators().addAll(add.getSucceedingOperators());
      generate.addPrecedingOperator(bo);
    }
    deleted.add(add);
    generate.removePrecedingOperator(add);
    alreadyAppliedTo = new HashSet<BasicOperator>();
    if (deleted.size() > 0 || added.size() > 0)
      return new Tuple<Collection<BasicOperator>, Collection<BasicOperator>>(
          added, deleted);
    else
View Full Code Here

Examples of lupos.engine.operators.singleinput.generate.Generate

public class RuleFactorOutUnionInGenerate extends Rule {

  @Override
  protected void init() {
    final Union union = new Union();
    final Generate generate = new Generate();

    union.setSucceedingOperator(new OperatorIDTuple(generate, -1));
    generate.setPrecedingOperator(union);

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

Examples of lupos.engine.operators.singleinput.generate.Generate

      final Map<String, BasicOperator> mso,
      final BasicOperator rootOperator) {
    final Collection<BasicOperator> deleted = new LinkedList<BasicOperator>();
    final Collection<BasicOperator> added = new LinkedList<BasicOperator>();
    final Union union = (Union) mso.get("union");
    final Generate generate = (Generate) mso.get("generate");
    final List<BasicOperator> unionOperands = union.getPrecedingOperators();
    generate.removePrecedingOperator(union);
    deleted.add(union);
    boolean firstTime = true;
    if (generate.getPrecedingOperators().size() > 0) {
      firstTime = false;
    }
    for (final BasicOperator toMove : unionOperands) {
      Generate generateNew;
      if (firstTime) {
        // use existing generate operator
        generateNew = generate;
        firstTime = false;
      } else {
        // clone join operator plus its other operands
        generateNew = new Generate();
        generateNew.cloneFrom(generate);
        added.add(generateNew);
      }
      generateNew.setPrecedingOperator(toMove);

      toMove.setSucceedingOperator(new OperatorIDTuple(generateNew, 0));
    }
    if (deleted.size() > 0 || added.size() > 0)
      return new Tuple<Collection<BasicOperator>, Collection<BasicOperator>>(
View Full Code Here

Examples of lupos.engine.operators.singleinput.generate.Generate

public class RuleFindAllGenerates extends Rule {

  @Override
  protected void init() {
    final Generate generate = new Generate();

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

    startNode = generate;
View Full Code Here

Examples of lupos.engine.operators.singleinput.generate.Generate

      final Map<String, BasicOperator> mso,
      final BasicOperator rootOperator) {

    // wie BasicOperator.deepClone

    final Generate generate = (Generate) mso.get("generate");
    RDFSRuleEngine0.generates.add(generate);
    return null;
  }
View Full Code Here

Examples of lupos.engine.operators.singleinput.generate.Generate

  }

  protected static void addTps(final Item data, final Root ic,
      final TripleOperator tp, final Item a, final Item b, final Item c,
      final TriplePattern... tps) {
    final Generate g = new Generate(tp, a, b, c);
    if (tps.length == 1) {
      final TriplePattern tpo = tps[0];
      tpo.setSucceedingOperator(new OperatorIDTuple(g, 0));
      final Collection<TriplePattern> ctp = new LinkedList<TriplePattern>();
      ctp.add(tpo);
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.