AIMA.Core.Logic.FOL.VariableCollector.collectAllVariables C# (CSharp) Метод

collectAllVariables() публичный Метод

public collectAllVariables ( Chain aChain ) : List
aChain AIMA.Core.Logic.FOL.KB.Data.Chain
Результат List
        public List<Variable> collectAllVariables(Chain aChain)
        {
            List<Variable> variables = new List<Variable>();

            foreach (Literal l in aChain.getLiterals())
            {
                l.getAtomicSentence().accept(this, variables);
            }

            return variables;
        }

Same methods

VariableCollector::collectAllVariables ( Clause aClause ) : List
VariableCollector::collectAllVariables ( Sentence sentence ) : List
VariableCollector::collectAllVariables ( Term aTerm ) : List

Usage Example

Пример #1
0
        //
        // PROTECTED METHODS
        //

        // Note: You can subclass and override this method in order
        // to re-implement the OCCUR-CHECK?() to always
        // return false if you want that to be the default
        // behavior, as is the case with Prolog.
        protected bool occurCheck(Dictionary <Variable, Term> theta, Variable var,
                                  FOLNode x)
        {
            if (x is Function)
            {
                List <Variable> varsToCheck = _variableCollector
                                              .collectAllVariables((Function)x);
                if (varsToCheck.Contains(var))
                {
                    return(true);
                }

                // Now need to check if cascading will cause occurs to happen
                // e.g.
                // Loves(SF1(v2),v2)
                // Loves(v3,SF0(v3))
                // or
                // P(v1,SF0(v1),SF0(v1))
                // P(v2,SF0(v2),v2 )
                // or
                // P(v1, F(v2),F(v2),F(v2),v1, F(F(v1)),F(F(F(v1))),v2)
                // P(F(v3),v4, v5, v6, F(F(v5)),v4, F(v3), F(F(v5)))
                return(cascadeOccurCheck(theta, var, varsToCheck,
                                         new List <Variable>(varsToCheck)));
            }
            return(false);
        }
All Usage Examples Of AIMA.Core.Logic.FOL.VariableCollector::collectAllVariables