Package aima.core.logic.fol.parsing.ast

Examples of aima.core.logic.fol.parsing.ast.Predicate


    for (Variable v : vars) {
      // Ensure copies of the variables are used.
      terms.add(v.copy());
    }

    return new Literal(new Predicate(alName, terms));
  }
View Full Code Here


    ithExampleConstant = new Constant(folDSDomain.getExampleConstant(egNo));

    List<Term> terms = new ArrayList<Term>();
    terms.add(ithExampleConstant);
    // Create the classification sentence
    classification = new Predicate(folDSDomain.getGoalPredicateName(),
        terms);
    if (!example.getAttributeValueAsString(
        folDSDomain.getDataSetTargetName()).equals(
        folDSDomain.getTrueGoalValue())) {
      // if not true then needs to be a Not sentence
      classification = new NotSentence(classification);
    }

    // Create the description sentence
    List<Sentence> descParts = new ArrayList<Sentence>();
    for (String dname : folDSDomain.getDescriptionDataSetNames()) {
      String foldDName = folDSDomain.getFOLName(dname);
      terms = new ArrayList<Term>();
      terms.add(ithExampleConstant);
      // If multivalued becomes a two place predicate
      // e.g: Patrons(X1, Some)
      // otherwise: Hungry(X1) or ~ Hungry(X1)
      // see pg 769 of AIMA
      Sentence part = null;
      if (folDSDomain.isMultivalued(dname)) {
        terms.add(new Constant(folDSDomain.getFOLName(example
            .getAttributeValueAsString(dname))));
        part = new Predicate(foldDName, terms);
      } else {
        part = new Predicate(foldDName, terms);
        // Need to determine if false
        if (!folDSDomain.getTrueGoalValue().equals(
            example.getAttributeValueAsString(dname))) {
          part = new NotSentence(part);
        }
View Full Code Here

  }

  @Test
  public void testPredicate() {
    // parser.setUpToParse("King(John)");
    Predicate p = (Predicate) parser.parse("King(John)");
    Assert.assertEquals(p, getKingPredicate(new Constant("John")));
  }
View Full Code Here

  }

  private Predicate getKingPredicate(Term t) {
    List<Term> l = new ArrayList<Term>();
    l.add(t);
    return new Predicate("King", l);
  }
View Full Code Here

    domain.addFunction("H");
    domain.addFunction("J");

    FOLParser parser = new FOLParser(domain);

    Predicate expression = (Predicate) parser.parse("P(A,G(x,B),C)");
    TermEquality assertion = (TermEquality) parser.parse("G(A,y) = J(y)");

    Predicate altExpression = (Predicate) demodulation.apply(assertion,
        expression);

    Assert.assertNull(altExpression);
  }
View Full Code Here

    domain.addFunction("J");

    FOLParser parser = new FOLParser(domain);

    List<Literal> lits = new ArrayList<Literal>();
    Predicate p1 = (Predicate) parser.parse("Q(z, G(D,B))");
    Predicate p2 = (Predicate) parser.parse("P(x, G(A,C))");
    Predicate p3 = (Predicate) parser.parse("W(z,x,u,w,y)");
    lits.add(new Literal(p1));
    lits.add(new Literal(p2));
    lits.add(new Literal(p3));

    Clause clExpression = new Clause(lits);
View Full Code Here

    domain.addFunction("F");

    FOLParser parser = new FOLParser(domain);

    List<Literal> lits = new ArrayList<Literal>();
    Predicate p1 = (Predicate) parser.parse("P(y, F(A,y))");
    lits.add(new Literal(p1));

    Clause clExpression = new Clause(lits);

    TermEquality assertion = (TermEquality) parser.parse("F(x,B) = C");
View Full Code Here

    domain.addFunction("F");

    FOLParser parser = new FOLParser(domain);

    List<Literal> lits = new ArrayList<Literal>();
    Predicate p1 = (Predicate) parser.parse("P(y, F(A,y))");
    lits.add(new Literal(p1));

    Clause clExpression = new Clause(lits);

    TermEquality assertion = (TermEquality) parser.parse("x = x");
View Full Code Here

  public void testImmutable() {
    Clause c = new Clause();

    Assert.assertFalse(c.isImmutable());

    c.addNegativeLiteral(new Predicate("Pred1", new ArrayList<Term>()));
    c.addPositiveLiteral(new Predicate("Pred2", new ArrayList<Term>()));

    c.setImmutable();

    Assert.assertTrue(c.isImmutable());

    try {
      c.addNegativeLiteral(new Predicate("Pred3", new ArrayList<Term>()));

      Assert.fail("Should have thrown an IllegalStateException");
    } catch (IllegalStateException ise) {
      // Ok, Expected
    }

    try {
      c.addPositiveLiteral(new Predicate("Pred3", new ArrayList<Term>()));

      Assert.fail("Should have thrown an IllegalStateException");
    } catch (IllegalStateException ise) {
      // Ok, Expected
    }
View Full Code Here

  @Test
  public void testIsEmpty() {
    Clause c1 = new Clause();
    Assert.assertTrue(c1.isEmpty());

    c1.addNegativeLiteral(new Predicate("Pred1", new ArrayList<Term>()));
    Assert.assertFalse(c1.isEmpty());

    Clause c2 = new Clause();
    Assert.assertTrue(c2.isEmpty());

    c2.addPositiveLiteral(new Predicate("Pred1", new ArrayList<Term>()));
    Assert.assertFalse(c2.isEmpty());

    Clause c3 = new Clause();
    Assert.assertTrue(c3.isEmpty());

    c3.addNegativeLiteral(new Predicate("Pred1", new ArrayList<Term>()));
    c3.addPositiveLiteral(new Predicate("Pred1", new ArrayList<Term>()));
    // Should be empty as they resolved with each other
    Assert.assertFalse(c3.isEmpty());

    c3.addNegativeLiteral(new Predicate("Pred1", new ArrayList<Term>()));
    c3.addPositiveLiteral(new Predicate("Pred2", new ArrayList<Term>()));
    Assert.assertFalse(c3.isEmpty());
  }
View Full Code Here

TOP

Related Classes of aima.core.logic.fol.parsing.ast.Predicate

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.