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 }, }); }
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); } }
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); }
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)); }
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); }