AIMA.Core.Logic.FOL.Inference.FOLModelElimination.AnswerHandler.AnswerHandler C# (CSharp) Метод

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

public AnswerHandler ( FOLKnowledgeBase kb, Sentence aQuery, long maxQueryTime, FOLModelElimination folModelElimination ) : System
kb AIMA.Core.Logic.FOL.KB.FOLKnowledgeBase
aQuery Sentence
maxQueryTime long
folModelElimination FOLModelElimination
Результат System
            public AnswerHandler(FOLKnowledgeBase kb, Sentence aQuery,
                    long maxQueryTime, FOLModelElimination folModelElimination)
            {

                finishTime = System.DateTime.UtcNow.Ticks + maxQueryTime;

                Sentence refutationQuery = new NotSentence(aQuery);

                // Want to use an answer literal to pull
                // query variables where necessary
                Literal answerLiteral = kb.createAnswerLiteral(refutationQuery);
                answerLiteralVariables = kb.collectAllVariables(answerLiteral
                        .getAtomicSentence());

                // Create the Set of Support based on the Query.
                if (answerLiteralVariables.Count > 0)
                {
                    Sentence refutationQueryWithAnswer = new ConnectedSentence(
                            Connectors.OR, refutationQuery, (Sentence)answerLiteral
                                    .getAtomicSentence().copy());

                    sos = folModelElimination.createChainsFromClauses(kb
                            .convertToClauses(refutationQueryWithAnswer));

                    answerChain.addLiteral(answerLiteral);
                }
                else
                {
                    sos = folModelElimination.createChainsFromClauses(kb
                            .convertToClauses(refutationQuery));
                }

                foreach (Chain s in sos)
                {
                    s.setProofStep(new ProofStepGoal(s));
                }
            }