Package lupos.engine.operators.singleinput

Examples of lupos.engine.operators.singleinput.ReplaceLit


public class RuleReplaceLitOverUnion extends Rule {

  @Override
  protected void init() {
    final ReplaceLit replaceLit = new ReplaceLit();
    final Union union = new Union();

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

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


  @Override
  public Tuple<Collection<BasicOperator>, Collection<BasicOperator>> transformOperatorGraph(
      final Map<String, BasicOperator> mso,
      final BasicOperator rootOperator) {
    final ReplaceLit replaceLit = (ReplaceLit) mso.get("replaceLit");
    final Union union = (Union) mso.get("union");

    final LinkedList<BasicOperator> pres = (LinkedList<BasicOperator>) replaceLit
        .getPrecedingOperators();
    final LinkedList<OperatorIDTuple> succs = (LinkedList<OperatorIDTuple>) union
        .getSucceedingOperators();
    final int index = replaceLit.getOperatorIDTuple(union).getId();

    BasicOperator pre;
    // Connect the precessors of the ReplaceLit directly to the Union
    for (int i = 0; i < pres.size(); i++) {
      pre = pres.get(i);
      union.addPrecedingOperator(pre);
      pre.removeSucceedingOperator(replaceLit);
      pre.addSucceedingOperator(new OperatorIDTuple(union, index));
    }
    union.removePrecedingOperator(replaceLit);

    // ReplaceLit becomes the new sucessor of Union
    union.setSucceedingOperator(new OperatorIDTuple(replaceLit, 0));

    // ReplaceLit gets the joins old sucessors
    replaceLit.setPrecedingOperator(union);
    replaceLit.setSucceedingOperators(succs);

    BasicOperator succ;
    for (int i = 0; i < succs.size(); i++) {
      succ = succs.get(i).getOperator();
      succ.removePrecedingOperator(union);
View Full Code Here

public class RuleReplaceLitOverProjection extends Rule {

  @Override
  protected void init() {
    final ReplaceLit replaceLit = new ReplaceLit();
    final Projection projection = new Projection();

    replaceLit.setSucceedingOperator(new OperatorIDTuple(projection, -1));
    projection.setPrecedingOperator(replaceLit);

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

  @Override
  public Tuple<Collection<BasicOperator>, Collection<BasicOperator>> transformOperatorGraph(
      final Map<String, BasicOperator> mso,
      final BasicOperator rootOperator) {
    final ReplaceLit replaceLit = (ReplaceLit) mso.get("replaceLit");
    final Projection projection = (Projection) mso.get("projection");

    final Object[] projectionVars = projection.getProjectedVariables()
        .toArray();
    final LinkedList<Variable> replaceLitLeft = replaceLit
        .getSubstitutionsLiteralLeft();
    final LinkedList<Literal> replaceLitRight = replaceLit
        .getSubstitutionsLiteralRight();
    Variable var;
    Literal lit;
    // Delete all not projected Tupels from ReplaceLit
    for (int i = 0; i < replaceLitLeft.size(); i++) {
      var = replaceLitLeft.get(i);
      if (!arrayContains(projectionVars, var)) {
        lit = replaceLitRight.get(i);
        replaceLit.removeSubstitution(var, lit);
      }
    }

    final LinkedList<BasicOperator> pres = (LinkedList<BasicOperator>) replaceLit
        .getPrecedingOperators();
    final LinkedList<OperatorIDTuple> succs = (LinkedList<OperatorIDTuple>) projection
        .getSucceedingOperators();
    final int index = replaceLit.getOperatorIDTuple(projection).getId();

    BasicOperator pre;
    // Connect the ReplaceLit precessors directly to the Projection
    for (int i = pres.size() - 1; i >= 0; i--) {
      pre = pres.get(i);
      projection.addPrecedingOperator(pre);
      pre.removeSucceedingOperator(replaceLit);
      pre.addSucceedingOperator(new OperatorIDTuple(projection, index));
    }

    // Make ReplaceLit the successor of Projection
    projection.removePrecedingOperator(replaceLit);
    projection.setSucceedingOperator(new OperatorIDTuple(replaceLit, 0));

    replaceLit.setPrecedingOperator(projection);

    final HashSet<Variable> hsv = new HashSet<Variable>();
    hsv.addAll(projection.getIntersectionVariables());
    replaceLit.setIntersectionVariables(hsv);
    replaceLit.setUnionVariables(hsv);

    // Connect ReplaceLit to the Projections successors instead of him
    replaceLit.setSucceedingOperators(succs);
    BasicOperator succ;
    for (int i = succs.size() - 1; i >= 0; i--) {
      succ = succs.get(i).getOperator();
      succ.removePrecedingOperator(projection);
      succ.addPrecedingOperator(replaceLit);
View Full Code Here

public class RuleDeleteEmptyReplaceLit extends Rule {

  @Override
  protected void init() {
    final ReplaceLit replaceLit = new ReplaceLit();

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

    startNode = replaceLit;
View Full Code Here

    startNode = replaceLit;
  }

  @Override
  protected boolean checkPrecondition(final Map<String, BasicOperator> mso) {
    final ReplaceLit replaceLit = (ReplaceLit) mso.get("replaceLit");
    // No substitution is left
    return (replaceLit.getSubstitutionsLiteralLeft().size() == 0);
  }
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 ReplaceLit replaceLit = (ReplaceLit) mso.get("replaceLit");

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

    BasicOperator pre;
    OperatorIDTuple idTuple;
    // Connect all precessors to all successors
View Full Code Here

    super();
  }

  @Override
  protected void init() {
    final ReplaceLit repLit = new ReplaceLit();
    final ReplaceVar repVar = new ReplaceVar();

    repLit.setSucceedingOperator(new OperatorIDTuple(repVar, 0));
    repVar.setPrecedingOperator(repLit);

    subGraphMap = new HashMap<BasicOperator, String>();
    subGraphMap.put(repLit, "repLit");
    subGraphMap.put(repVar, "repVar");
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 ReplaceLit repLit = (ReplaceLit) mso.get("repLit");
    final ReplaceVar repVar = (ReplaceVar) mso.get("repVar");

    final ReplaceVar repVar_new = new ReplaceVar();
    repVar_new.setSubstitutionsVariableLeft(repVar
        .getSubstitutionsVariableLeft());
    repVar_new.setSubstitutionsVariableRight(repVar
        .getSubstitutionsVariableRight());
    repVar_new.setIntersectionVariables(repVar.getIntersectionVariables());
    repVar_new.setUnionVariables(repVar.getUnionVariables());

    final ReplaceLit repLit_new = new ReplaceLit();
    repLit_new.setSubstitutionsLiteralLeft(repLit
        .getSubstitutionsLiteralLeft());
    repLit_new.setSubstitutionsLiteralRight(repLit
        .getSubstitutionsLiteralRight());
    repLit_new.setIntersectionVariables(repLit.getIntersectionVariables());
    repLit_new.setUnionVariables(repLit.getUnionVariables());

    final LinkedList<Variable> repVarLeft = repVar
        .getSubstitutionsVariableLeft();
    final LinkedList<Variable> repVarRight = repVar
        .getSubstitutionsVariableRight();
    final LinkedList<Variable> repLitLeft = repLit
        .getSubstitutionsLiteralLeft();
    final LinkedList<Literal> repLitRight = repLit
        .getSubstitutionsLiteralRight();
    Variable var;
    int index = -1;
    for (int i = 0; i < repVarRight.size(); i++) {
      var = repVarRight.get(i);
      index = repLitLeft.indexOf(var);
      // (x,<a>),(y,x) => (x,<a>),(y,<a>)
      if (index > -1) {
        final Variable var2 = repVarLeft.get(i);
        repVar_new.removeSubstitution(var2, var);
        repLit_new.addSubstitution(var2, repLitRight.get(index));
      }
    }

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

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

    repVar_new.setPrecedingOperators(pres);
    repVar_new.setSucceedingOperator(new OperatorIDTuple(repLit_new, 0));

    repLit_new.setPrecedingOperator(repVar_new);
    repLit_new.setSucceedingOperators(succs);

    BasicOperator succ;
    for (int i = 0; i < succs.size(); i++) {
      succ = succs.get(i).getOperator();
      succ.addPrecedingOperator(repLit_new);
View Full Code Here

public class RuleInsertGenerateAddEnv extends Rule {

  @Override
  protected void init() {
    final TriplePattern pat1 = new TriplePattern();
    final ReplaceLit repLit = new ReplaceLit();
    final TriplePattern pat2 = new TriplePattern();
    final BasicOperator succ = new BasicOperator();

    pat1.setSucceedingOperator(new OperatorIDTuple(repLit, 0));

    repLit.setPrecedingOperator(pat1);
    repLit.setSucceedingOperator(new OperatorIDTuple(succ, -1));

    pat2.addSucceedingOperator(new OperatorIDTuple(succ, -1));

    succ.setPrecedingOperator(repLit);
    succ.addPrecedingOperator(pat2);
View Full Code Here

TOP

Related Classes of lupos.engine.operators.singleinput.ReplaceLit

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.