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

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


    }

    // Ensure reflexivity axiom is added to usable if using paramodulation.
    if (isUseParamodulation()) {
      // Reflexivity Axiom: x = x
      TermEquality reflexivityAxiom = new TermEquality(new Variable("x"),
          new Variable("x"));
      Clause reflexivityClause = new Clause();
      reflexivityClause.addLiteral(new Literal(reflexivityAxiom));
      reflexivityClause = KB.standardizeApart(reflexivityClause);
      reflexivityClause.setStandardizedApartCheckNotRequired();
      usable.add(reflexivityClause);
View Full Code Here


  protected void testDefiniteClauseKBKingsQueryCriminalXFalse(
      InferenceProcedure infp) {
    FOLKnowledgeBase kkb = FOLKnowledgeBaseFactory
        .createKingsKnowledgeBase(infp);
    List<Term> terms = new ArrayList<Term>();
    terms.add(new Variable("x"));
    Predicate query = new Predicate("Criminal", terms);
    InferenceResult answer = kkb.ask(query);
    Assert.assertTrue(null != answer);
    Assert.assertTrue(answer.isPossiblyFalse());
    Assert.assertFalse(answer.isTrue());
View Full Code Here

  protected void testDefiniteClauseKBKingsQueryEvilXReturnsJohnSucceeds(
      InferenceProcedure infp) {
    FOLKnowledgeBase kkb = FOLKnowledgeBaseFactory
        .createKingsKnowledgeBase(infp);
    List<Term> terms = new ArrayList<Term>();
    terms.add(new Variable("x"));
    Predicate query = new Predicate("Evil", terms);
    InferenceResult answer = kkb.ask(query);

    Assert.assertTrue(null != answer);
    Assert.assertFalse(answer.isPossiblyFalse());
    Assert.assertTrue(answer.isTrue());
    Assert.assertFalse(answer.isUnknownDueToTimeout());
    Assert.assertFalse(answer.isPartialResultDueToTimeout());
    Assert.assertTrue(1 == answer.getProofs().size());
    Assert.assertTrue(1 == answer.getProofs().get(0).getAnswerBindings()
        .size());
    Assert.assertEquals(new Constant("John"), answer.getProofs().get(0)
        .getAnswerBindings().get(new Variable("x")));
  }
View Full Code Here

  protected void testDefiniteClauseKBKingsQueryKingXReturnsJohnAndRichardSucceeds(
      InferenceProcedure infp) {
    FOLKnowledgeBase kkb = FOLKnowledgeBaseFactory
        .createKingsKnowledgeBase(infp);
    List<Term> terms = new ArrayList<Term>();
    terms.add(new Variable("x"));
    Predicate query = new Predicate("King", terms);
    InferenceResult answer = kkb.ask(query);

    Assert.assertTrue(null != answer);
    Assert.assertFalse(answer.isPossiblyFalse());
    Assert.assertTrue(answer.isTrue());
    Assert.assertFalse(answer.isUnknownDueToTimeout());
    Assert.assertFalse(answer.isPartialResultDueToTimeout());
    Assert.assertTrue(2 == answer.getProofs().size());
    Assert.assertTrue(1 == answer.getProofs().get(0).getAnswerBindings()
        .size());
    Assert.assertTrue(1 == answer.getProofs().get(1).getAnswerBindings()
        .size());

    boolean gotJohn, gotRichard;
    gotJohn = gotRichard = false;
    Constant cJohn = new Constant("John");
    Constant cRichard = new Constant("Richard");
    for (Proof p : answer.getProofs()) {
      Map<Variable, Term> ans = p.getAnswerBindings();
      Assert.assertEquals(1, ans.size());
      if (cJohn.equals(ans.get(new Variable("x")))) {
        gotJohn = true;
      }
      if (cRichard.equals(ans.get(new Variable("x")))) {
        gotRichard = true;
      }
    }
    Assert.assertTrue(gotJohn);
    Assert.assertTrue(gotRichard);
View Full Code Here

  protected void testDefiniteClauseKBWeaponsQueryCriminalXReturnsWestSucceeds(
      InferenceProcedure infp) {
    FOLKnowledgeBase wkb = FOLKnowledgeBaseFactory
        .createWeaponsKnowledgeBase(infp);
    List<Term> terms = new ArrayList<Term>();
    terms.add(new Variable("x"));
    Predicate query = new Predicate("Criminal", terms);

    InferenceResult answer = wkb.ask(query);

    Assert.assertTrue(null != answer);
    Assert.assertFalse(answer.isPossiblyFalse());
    Assert.assertTrue(answer.isTrue());
    Assert.assertFalse(answer.isUnknownDueToTimeout());
    Assert.assertFalse(answer.isPartialResultDueToTimeout());
    Assert.assertTrue(1 == answer.getProofs().size());
    Assert.assertTrue(1 == answer.getProofs().get(0).getAnswerBindings()
        .size());
    Assert.assertEquals(new Constant("West"), answer.getProofs().get(0)
        .getAnswerBindings().get(new Variable("x")));
  }
View Full Code Here

  protected void testHornClauseKBRingOfThievesQuerySkisXReturnsNancyRedBertDrew(
      InferenceProcedure infp) {
    FOLKnowledgeBase rotkb = FOLKnowledgeBaseFactory
        .createRingOfThievesKnowledgeBase(infp);
    List<Term> terms = new ArrayList<Term>();
    terms.add(new Variable("x"));
    Predicate query = new Predicate("Skis", terms);

    InferenceResult answer = rotkb.ask(query);

    Assert.assertTrue(null != answer);
    Assert.assertFalse(answer.isPossiblyFalse());
    Assert.assertTrue(answer.isTrue());
    Assert.assertFalse(answer.isUnknownDueToTimeout());
    // DB can expand infinitely so is only partial.
    Assert.assertTrue(answer.isPartialResultDueToTimeout());
    Assert.assertEquals(4, answer.getProofs().size());
    Assert.assertEquals(1, answer.getProofs().get(0).getAnswerBindings()
        .size());
    Assert.assertEquals(1, answer.getProofs().get(1).getAnswerBindings()
        .size());
    Assert.assertEquals(1, answer.getProofs().get(2).getAnswerBindings()
        .size());
    Assert.assertEquals(1, answer.getProofs().get(3).getAnswerBindings()
        .size());

    List<Constant> expected = new ArrayList<Constant>();
    expected.add(new Constant("Nancy"));
    expected.add(new Constant("Red"));
    expected.add(new Constant("Bert"));
    expected.add(new Constant("Drew"));
    for (Proof p : answer.getProofs()) {
      expected.remove(p.getAnswerBindings().get(new Variable("x")));
    }
    Assert.assertEquals(0, expected.size());
  }
View Full Code Here

        .createKingsKnowledgeBase(ip);

    String kbStr = kb.toString();

    List<Term> terms = new ArrayList<Term>();
    terms.add(new Variable("x"));
    Predicate query = new Predicate("King", terms);

    InferenceResult answer = kb.ask(query);

    System.out.println("Kings Knowledge Base:");
View Full Code Here

        .createWeaponsKnowledgeBase(ip);

    String kbStr = kb.toString();

    List<Term> terms = new ArrayList<Term>();
    terms.add(new Variable("x"));
    Predicate query = new Predicate("Criminal", terms);

    InferenceResult answer = kb.ask(query);

    System.out.println("Weapons Knowledge Base:");
View Full Code Here

    Assert.assertEquals(1, weaponsKB.getNumberRules());
    weaponsKB.tell("American(West)");
    Assert.assertEquals(1, weaponsKB.getNumberRules());

    List<Term> terms = new ArrayList<Term>();
    terms.add(new Variable("v0"));

    Clause dcRule = weaponsKB.getAllDefiniteClauseImplications().get(0);
    Assert.assertNotNull(dcRule);
    Assert.assertEquals(true, dcRule.isImplicationDefiniteClause());
    Assert.assertEquals(new Literal(new Predicate("Criminal", terms)),
View Full Code Here

  @Test
  public void testSimplepredicate() {
    Set<Variable> variables = vc.collectAllVariables(parser
        .parse("King(x)"));
    Assert.assertEquals(1, variables.size());
    Assert.assertTrue(variables.contains(new Variable("x")));
  }
View Full Code Here

TOP

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

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.