Package aima.core.logic.fol.kb

Examples of aima.core.logic.fol.kb.FOLKnowledgeBase


      folExamples.add(new FOLExample(folDSDomain, e, egNo));
      egNo++;
    }

    // Setup a KB to be used for learning
    kb = new FOLKnowledgeBase(folDSDomain, new FOLOTTERLikeTheoremProver(
        1000, false));

    CurrentBestLearning cbl = new CurrentBestLearning(folDSDomain, kb);

    currentBestHypothesis = cbl.currentBestLearning(folExamples);
View Full Code Here


    Sentence hypothesis = parser.parse(sh);
    Sentence desc = parser
        .parse("(((((((((alternate(X0) AND NOT(bar(X0))) AND NOT(fri_sat(X0))) AND hungry(X0)) AND patrons(X0,Full)) AND price(X0,$)) AND NOT(raining(X0))) AND NOT(reservation(X0))) AND type(X0,Thai)) AND wait_estimate(X0,_30_60))");
    Sentence classification = parser.parse("will_wait(X0)");

    FOLKnowledgeBase kb = new FOLKnowledgeBase(domain,
        new FOLOTTERLikeTheoremProver(false));

    kb.tell(hypothesis);
    kb.tell(desc);

    InferenceResult ir = kb.ask(classification);

    Assert.assertFalse(ir.isTrue());
    Assert.assertTrue(ir.isPossiblyFalse());
    Assert.assertFalse(ir.isUnknownDueToTimeout());
    Assert.assertFalse(ir.isPartialResultDueToTimeout());
View Full Code Here

    // Set up the initial set of clauses based on the
    // loves animal domain as it contains functions
    // new clauses will always be created (i.e. is an
    // infinite universe of discourse).
    FOLKnowledgeBase kb = new FOLKnowledgeBase(
        DomainFactory.lovesAnimalDomain());

    kb.tell("FORALL x (FORALL y (Animal(y) => Loves(x, y)) => EXISTS y Loves(y, x))");
    kb.tell("FORALL x (EXISTS y (Animal(y) AND Kills(x, y)) => FORALL z NOT(Loves(z, x)))");
    kb.tell("FORALL x (Animal(x) => Loves(Jack, x))");
    kb.tell("(Kills(Jack, Tuna) OR Kills(Curiosity, Tuna))");
    kb.tell("Cat(Tuna)");
    kb.tell("FORALL x (Cat(x) => Animal(x))");

    Set<Clause> clauses = new LinkedHashSet<Clause>();
    clauses.addAll(kb.getAllClauses());

    Set<Clause> newClauses = new LinkedHashSet<Clause>();
    long maxRunTime = 30 * 1000; // 30 seconds
    long finishTime = System.currentTimeMillis() + maxRunTime;
    do {
View Full Code Here

  //
  // Protected Methods
  //
  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());
    Assert.assertFalse(answer.isUnknownDueToTimeout());
    Assert.assertFalse(answer.isPartialResultDueToTimeout());
View Full Code Here

    Assert.assertTrue(0 == answer.getProofs().size());
  }

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

    Assert.assertTrue(0 == answer.getProofs().size());
  }

  protected void testDefiniteClauseKBKingsQueryJohnEvilSucceeds(
      InferenceProcedure infp) {
    FOLKnowledgeBase kkb = FOLKnowledgeBaseFactory
        .createKingsKnowledgeBase(infp);
    List<Term> terms = new ArrayList<Term>();
    terms.add(new Constant("John"));
    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());
View Full Code Here

        .size());
  }

  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());
View Full Code Here

        .getAnswerBindings().get(new Variable("x")));
  }

  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());
View Full Code Here

    Assert.assertTrue(gotRichard);
  }

  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());
View Full Code Here

        .getAnswerBindings().get(new Variable("x")));
  }

  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());
View Full Code Here

TOP

Related Classes of aima.core.logic.fol.kb.FOLKnowledgeBase

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.