Examples of IExpression


Examples of lupos.rif.IExpression

      final List<INode> seq = ((List<INode>)((NodeChoice) n.f1.node).choice.accept(this, argu));
      final String operator = (String) seq.get(0).accept(this, null);
      if (operator.equals("#") || operator.equals("##")) {
        final Uniterm term = new RulePredicate(true);
        term.setParent(argu);
        final IExpression leftTerm = (IExpression) n.f0.accept(this, term);
        final IExpression rightTerm = (IExpression) seq.get(1).accept(this, term);
        term.termParams.add(leftTerm);
        term.termParams.add(rightTerm);
        try {
          if (operator.equals("#"))
            term.termName = new Constant(
View Full Code Here

Examples of lupos.rif.IExpression

      if (index < 0)
        index += list.getItems().size();
      if (index < 0 || index >= list.getItems().size())
        return null;
      else {
        final IExpression expr = list.getItems().get(index);
        return (Item) expr.evaluate(arg.binding);
      }
    } else
      return null;
  }
View Full Code Here

Examples of lupos.rif.IExpression

        return null;
      List<IExpression> original = new ArrayList<IExpression>(
          list.getItems());
      list.getItems().clear();
      for (int i = 0; i < original.size(); i++) {
        final IExpression expr = original.get(i);
        if (i == index) {
          if (item instanceof Variable)
            list.addItem(new RuleVariable(item.getName()));
          else if (item instanceof Literal)
            list.addItem(new Constant((Literal) item, list));
View Full Code Here

Examples of lupos.rif.IExpression

    if (arg.arguments.size() == 2
        && arg.arguments.get(0) instanceof RuleList
        && arg.arguments.get(1) instanceof Item) {
      final RuleList list = (RuleList) arg.arguments.get(0);
      final Item item = arg.arguments.get(1);
      IExpression lookingFor = null;
      if (item instanceof Variable)
        lookingFor = new RuleVariable(item.getName());
      else if (item instanceof Literal)
        lookingFor = new Constant((Literal) item, list);
      else if (item instanceof IExpression)
View Full Code Here

Examples of lupos.rif.IExpression

    if (!obj.getFacts().isEmpty()) {

      for (final Iterator iterator = obj.getFacts().iterator(); iterator
          .hasNext();) {
        final IExpression type = (IExpression) iterator.next();
      }

    }
    return  this.po;
View Full Code Here

Examples of lupos.rif.IExpression

    predicateMap.clear();
    for (final Rule rule : obj.getRules())
    {
      rule.getRecursiveConnections().clear();
      if (rule.getHead() instanceof RulePredicate) {
        final IExpression expr = (IExpression) ((RulePredicate) rule
            .getHead()).termName;
        if (expr instanceof Constant)
          predicateMap.put(expr.toString(), rule);
        else if (expr instanceof RuleVariable)
          predicateMap.put("?", rule);
      } else if (rule.getHead() instanceof Equality)
        predicateMap.put("=", rule);
    }
View Full Code Here

Examples of lupos.rif.IExpression

  @Override
  public IRuleNode visit(RulePredicate obj, IRuleNode arg)
      throws RIFException {
    obj.setRecursive(false);
    final IExpression expr = (IExpression) obj.termName;
    if (expr instanceof Constant)
      for (final Rule rule : predicateMap.get(expr.toString())) {
        obj.setRecursive(true);
        rule.getRecursiveConnections().add(currentRule);
      }
    else if (expr instanceof RuleVariable)
      for (final Rule rule : predicateMap.get("?")) {
View Full Code Here

Examples of lupos.rif.IExpression

          obj.exprs.add(expr);
          orCtr++;
        }
      // 2. DNF von Links aufbauen
      if (orCtr == 1) {
        IExpression dnf = applyLeftDistributiveLaw(obj);
        if (dnf != null)
          return dnf;
      }
    }
    //
    List<IExpression> newExprs = new ArrayList<IExpression>();
    for (IExpression expr : obj.exprs) {
      IExpression temp = (IExpression) expr.accept(this, obj);
      if (temp instanceof Conjunction)
        for (IExpression innerExpr : ((Conjunction) temp).exprs) {
          innerExpr.setParent(obj);
          newExprs.add(innerExpr);
        }
View Full Code Here

Examples of lupos.rif.IExpression

    boolean hasChanged = false;

    // And(F1 ... Fn)
    for (int i = 0; i < conjuncts.size(); i++) {
      int j = i + 1;
      IExpression conjunct = conjuncts.get(i);

      if (j < conjuncts.size()) {
        // And(F1 F2 ... Fi Or(G1, ..., Gm) Fi+2 Fi+3 ... Fn)
        if (conjuncts.get(j) instanceof Disjunction) {
          Disjunction orConjunct = (Disjunction) conjuncts.get(j);

          List<IExpression> andFormulas = new ArrayList<IExpression>();

          // And(Fi G1) ... And(Fi Gm)
          for (IExpression disjunct : orConjunct.exprs) {
            List<IExpression> formulas = new ArrayList<IExpression>();
            // TODO: Parent
            formulas.add((IExpression) conjunct.accept(this, null));
            formulas.add((IExpression) disjunct.accept(this, null));

            Conjunction temp = new Conjunction();
            temp.exprs.addAll(formulas);
            andFormulas.add(temp);
          }

          // Or(And(Fi G1) ... And(Fi Gm))
          Disjunction orFormula = new Disjunction();
          orFormula.exprs.addAll(andFormulas);

          // normalize(Or(And(Fi G1) ... And(Fi Gm)))
          // TODO: Parent
          newConjuncts
              .add((IExpression) orFormula.accept(this, null));

          hasChanged = true;

          i++;
        } else {
          // TODO: Parent
          newConjuncts.add((IExpression) conjunct.accept(this, null));
        }
      }
    }

    if (hasChanged) {
View Full Code Here

Examples of lupos.rif.IExpression

  public IRuleNode visit(Disjunction obj, IRuleNode arg) throws RIFException {
    if (obj.exprs.size() == 1)
      return obj.exprs.get(0).accept(this, arg);
    List<IExpression> newExprs = new ArrayList<IExpression>();
    for (IExpression expr : obj.exprs) {
      IExpression temp = (IExpression) expr.accept(this, obj);
      if (temp instanceof Disjunction)
        for (IExpression innerExpr : ((Disjunction) temp).exprs) {
          innerExpr.setParent(obj);
          newExprs.add(innerExpr);
        }
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.