コード例 #1
0
ファイル: WhatQuestion.cs プロジェクト: CourageAndrey/AI
 private void writeJustClassification(ITextContainer result, IsStatement statement)
 {
     result.Append(language => language.GetExtension <ILanguageSetModule>().Questions.Answers.IsDescription, new Dictionary <String, IKnowledge>
     {
         { Semantics.Localization.Strings.ParamChild, Concept },
         { Semantics.Localization.Strings.ParamParent, statement.Ancestor },
     });
 }
コード例 #2
0
ファイル: WhatQuestion.cs プロジェクト: CourageAndrey/AI
        private void writeClassificationWithDifference(ITextContainer result, IsStatement statement, List <SignValueStatement> difference)
        {
            result.Append(language => language.GetExtension <ILanguageSetModule>().Questions.Answers.IsDescriptionWithSign, new Dictionary <String, IKnowledge>
            {
                { Semantics.Localization.Strings.ParamChild, Concept },
                { Semantics.Localization.Strings.ParamParent, statement.Ancestor },
            });

            foreach (var diff in difference)
            {
                writeSignDifference(result, diff);
            }
        }
コード例 #3
0
        public void TestBuildingIsStatement()
        {
            // arrange
            var language        = Language.Default;
            var semanticNetwork = new SemanticNetwork(language);

            var ancestor   = ConceptCreationHelper.CreateConcept();
            var descendant = ConceptCreationHelper.CreateConcept();

            // act
            var statementByConstuctor            = new IsStatement(null, ancestor, descendant);
            var statementByBuilderFromAncestor   = semanticNetwork.DeclareThat(ancestor).IsAncestorOf(descendant);
            var statementByBuilderFromDescendant = semanticNetwork.DeclareThat(descendant).IsDescendantOf(ancestor);

            // assert
            Assert.AreEqual(statementByConstuctor, statementByBuilderFromAncestor);
            Assert.AreEqual(statementByConstuctor, statementByBuilderFromDescendant);
        }
コード例 #4
0
        public void CheckTypedToUntypedAndViceVersaTransformations()
        {
            // arrange

            var concept1 = ConceptCreationHelper.CreateConcept();
            var concept2 = ConceptCreationHelper.CreateConcept();

            var resultStatementsTyped = new IsStatement[]
            {
                new IsStatement(null, concept1, concept2),
                new IsStatement(null, concept2, concept1),
            };

            var resultStatementsUntyped = resultStatementsTyped.OfType <IStatement>().ToArray();

            var text = new UnstructuredContainer();

            var explanationStatements = new IStatement[]
            {
                new HasPartStatement(null, concept1, concept2),
                new HasPartStatement(null, concept2, concept1),
            };

            var typedAnswer   = new StatementsAnswer <IsStatement>(resultStatementsTyped, text, new Explanation(explanationStatements));
            var untypedAnswer = new StatementsAnswer(resultStatementsUntyped, text, new Explanation(explanationStatements));

            // act
            var genericAnswer  = typedAnswer.MakeGeneric();
            var explicitAnswer = untypedAnswer.MakeExplicit <IsStatement>();

            // assert
            Assert.IsTrue(typedAnswer.Result.SequenceEqual(explicitAnswer.Result));
            Assert.IsTrue(typedAnswer.Explanation.Statements.SequenceEqual(explicitAnswer.Explanation.Statements));

            Assert.IsTrue(untypedAnswer.Result.SequenceEqual(genericAnswer.Result));
            Assert.IsTrue(untypedAnswer.Explanation.Statements.SequenceEqual(genericAnswer.Explanation.Statements));
        }
コード例 #5
0
ファイル: WhatQuestion.cs プロジェクト: CourageAndrey/AI
        private List <SignValueStatement> getDifferenceBetweenAncestorAndDescendant(List <IStatement> allStatements, IsStatement isStatement)
        {
            var difference = new List <SignValueStatement>();

            foreach (var sign in HasSignStatement.GetSigns(allStatements, isStatement.Ancestor, false))
            {
                var signValue = SignValueStatement.GetSignValue(allStatements, Concept, sign.Sign);
                if (signValue != null)
                {
                    difference.Add(signValue);
                }
            }
            return(difference);
        }