isTrue() public method

public isTrue ( Sentence clause ) : bool
clause AIMA.Core.Logic.Propositional.Parsing.Ast.Sentence
return bool
Example #1
0
        public bool ttCheckAll(Sentence kbSentence, Sentence querySentence,
                List<Symbol> symbols, Model model)
        {
            if (symbols.Count==0)
            {
                if (model.isTrue(kbSentence))
                {
                    // System.Console.WriteLine("#");
                    return model.isTrue(querySentence);
                }
                else
                {
                    // System.Console.WriteLine("0");
                    return true;
                }
            }
            else
            {
                Symbol symbol = (Symbol)Util.first(symbols);
                List<Symbol> rest = Util.rest(symbols);

                Model trueModel = model.extend(new Symbol(symbol.getValue()), true);
                Model falseModel = model.extend(new Symbol(symbol.getValue()),
                        false);
                return (ttCheckAll(kbSentence, querySentence, rest, trueModel) && (ttCheckAll(
                        kbSentence, querySentence, rest, falseModel)));
            }
        }
Example #2
0
        public bool ttCheckAll(Sentence kbSentence, Sentence querySentence,
                               List <Symbol> symbols, Model model)
        {
            if (symbols.Count == 0)
            {
                if (model.isTrue(kbSentence))
                {
                    // System.Console.WriteLine("#");
                    return(model.isTrue(querySentence));
                }
                else
                {
                    // System.Console.WriteLine("0");
                    return(true);
                }
            }
            else
            {
                Symbol        symbol = (Symbol)Util.first(symbols);
                List <Symbol> rest   = Util.rest(symbols);

                Model trueModel  = model.extend(new Symbol(symbol.getValue()), true);
                Model falseModel = model.extend(new Symbol(symbol.getValue()),
                                                false);
                return(ttCheckAll(kbSentence, querySentence, rest, trueModel) && (ttCheckAll(
                                                                                      kbSentence, querySentence, rest, falseModel)));
            }
        }
Example #3
0
 public void testSentenceStatusWhenPFalseAndQFalse()
 {
     String p = "P";
     String q = "Q";
     m = m.extend(new Symbol(p), false);
     m = m.extend(new Symbol(q), false);
     Assert.AreEqual(true, m.isFalse(andSentence));
     Assert.AreEqual(true, m.isFalse(orSentence));
     Assert.AreEqual(true, m.isTrue(impliedSentence));
     Assert.AreEqual(true, m.isTrue(biConditionalSentence));
 }
Example #4
0
        private int getNumberOfClausesSatisfiedIn(List <Sentence> clauses, Model model)
        {
            int retVal = 0;

            foreach (Sentence s in clauses)
            {
                if (model.isTrue(s))
                {
                    retVal += 1;
                }
            }
            return(retVal);
        }
Example #5
0
        private bool isClauseTrueInModel(Sentence clause, Model model)
        {
            List <Symbol> positiveSymbols = new SymbolClassifier().getPositiveSymbolsIn(clause);
            List <Symbol> negativeSymbols = new SymbolClassifier().getNegativeSymbolsIn(clause);

            foreach (Symbol symbol in positiveSymbols)
            {
                if ((model.isTrue(symbol)))
                {
                    return(true);
                }
            }
            foreach (Symbol symbol in negativeSymbols)
            {
                if ((model.isFalse(symbol)))
                {
                    return(true);
                }
            }
            return(false);
        }
Example #6
0
        public void testModelEvaluation()
        {
            kb.tell("(NOT P11)");
            kb.tell("(B11 <=> (P12 OR P21))");
            kb.tell("(B21 <=> ((P11 OR P22) OR P31))");
            kb.tell("(NOT B11)");
            kb.tell("(B21)");

            Model model = new Model();
            model = model.extend(new Symbol("B11"), false);
            model = model.extend(new Symbol("B21"), true);
            model = model.extend(new Symbol("P11"), false);
            model = model.extend(new Symbol("P12"), false);
            model = model.extend(new Symbol("P21"), false);
            model = model.extend(new Symbol("P22"), false);
            model = model.extend(new Symbol("P31"), true);

            Sentence kbs = kb.asSentence();
            Assert.AreEqual(true, model.isTrue(kbs));
        }
Example #7
0
        private bool isClauseTrueInModel(Sentence clause, Model model)
        {
            List<Symbol> positiveSymbols = new SymbolClassifier().getPositiveSymbolsIn(clause);
            List<Symbol> negativeSymbols = new SymbolClassifier().getNegativeSymbolsIn(clause);

            foreach (Symbol symbol in positiveSymbols)
            {
                if ((model.isTrue(symbol)))
                {
                    return true;
                }
            }
            foreach (Symbol symbol in negativeSymbols)
            {
                if ((model.isFalse(symbol)))
                {
                    return true;
                }
            }
            return false;

        }
Example #8
0
 public void testComplexSentence()
 {
     String p = "P";
     String q = "Q";
     m = m.extend(new Symbol(p), true);
     m = m.extend(new Symbol(q), false);
     Sentence sent = (Sentence)parser.parse("((P OR Q) AND  (P => Q))");
     Assert.IsFalse(m.isTrue(sent));
     Assert.IsTrue(m.isFalse(sent));
     Sentence sent2 = (Sentence)parser.parse("((P OR Q) AND  (Q))");
     Assert.IsFalse(m.isTrue(sent2));
     Assert.IsTrue(m.isFalse(sent2));
 }
Example #9
0
 private int getNumberOfClausesSatisfiedIn(List<Sentence> clauses, Model model)
 {
     int retVal = 0;
     foreach(Sentence s in clauses)
     {
         if (model.isTrue(s))
         {
             retVal += 1;
         }
     }
     return retVal;
 }