Пример #1
0
    public class TT_Entails { // No podemos llamar a la clase igual que a uno de sus métodos...
        /**
         * La función TT-ENTAILS?(KB, α) devuelve cierto o falso.
         *
         * @param kb
         *            KB, la base de conocimiento, una sentencia en lógica proposicional
         * @param alpha
         *            α, la consulta, una sentencia en lógica proposicional
         *
         * @return cierto si α es consecuencia lógica de KB, falso en otro caso.
         */
        public bool TTEntails(KnowledgeBase kb, Sentence alpha)
        {
            // symbols <- una lista de símbolos de proposición de KB y &alpha
            IList <PropositionSymbol> symbols = new List <PropositionSymbol>(SymbolCollector.GetSymbolsFrom(kb.AsSentence(), alpha));

            // return TT-CHECK-ALL(KB, &alpha; symbols, {})
            return(TTCheckAll(kb, alpha, symbols, new Model()));
        }
Пример #2
0
 /**
  * Añade la sentencia específica a la BC.
  *
  * @param aSentence
  *            hecho para ser añadido a la BC.
  */
 public void Tell(Sentence aSentence)
 {
     if (!(sentences.Contains(aSentence)))
     {
         sentences.Add(aSentence);
         _asCNF = _asCNF.Extend(ConvertToConjunctionOfClauses.Convert(aSentence).GetClauses());
         symbols.UnionWith(SymbolCollector.GetSymbolsFrom(aSentence)); // UnionWith de ISet en vez del método addAll de Set
     }
 }