Пример #1
0
        public void UnknownAttribute()
        {
            // arrange
            var concept = new Concept();

            concept.WithAttribute(new WrongAttribute());

            // act & assert
            Assert.Throws <NotSupportedException>(() => new Semantics.Xml.Concept(concept));
        }
Пример #2
0
        public void OneAttribute(IAttribute attribute)
        {
            // arrange
            var concept = new Concept();

            concept.WithAttribute(attribute);

            // act
            var xml      = new Semantics.Xml.Concept(concept);
            var restored = xml.Load();

            // assert
            Assert.AreSame(attribute, restored.Attributes.Single());
        }
Пример #3
0
        public void AllAttributes()
        {
            // arrange
            var concept = new Concept();

            foreach (var attribute in getAllAttributes())
            {
                concept.WithAttribute(attribute);
            }

            // act
            var xml      = new Semantics.Xml.Concept(concept);
            var restored = xml.Load();

            // assert
            Assert.IsTrue(restored.Attributes.SequenceEqual(concept.Attributes));
        }
Пример #4
0
        public TestSemanticNetwork(ILanguage language)
        {
            #region Semantic network

            SemanticNetwork = new SemanticNetwork(language);
            SemanticNetwork
            .WithModule <BooleanModule>()
            .WithModule <ClassificationModule>()
            .WithModule <SetModule>()
            .WithModule <MathematicsModule>()
            .WithModule <ProcessesModule>();
            ((LocalizedStringVariable)SemanticNetwork.Name).SetLocale("ru-RU", "Тестовая база знаний");
            ((LocalizedStringVariable)SemanticNetwork.Name).SetLocale("en-US", "Test knowledgebase");

            #endregion

            #region Subject Areas

            SemanticNetwork.Concepts.Add(SubjectArea_Transport = new Concept(nameof(SubjectArea_Transport), new LocalizedStringVariable(new Dictionary <String, String>
            {
                { "ru-RU", "Транспорт" },
                { "en-US", "Transport" },
            }), new LocalizedStringVariable(new Dictionary <String, String>
            {
                { "ru-RU", "Средства передвижения." },
                { "en-US", "Vehicles." },
            })));

            SemanticNetwork.Concepts.Add(SubjectArea_Numbers = new Concept(nameof(SubjectArea_Numbers), new LocalizedStringVariable(new Dictionary <String, String>
            {
                { "ru-RU", "Числа" },
                { "en-US", "Numbers" },
            }), new LocalizedStringVariable(new Dictionary <String, String>
            {
                { "ru-RU", "Числа." },
                { "en-US", "Numbers." },
            })));

            SemanticNetwork.Concepts.Add(SubjectArea_Processes = new Concept(nameof(SubjectArea_Processes), new LocalizedStringVariable(new Dictionary <String, String>
            {
                { "ru-RU", "Процессы" },
                { "en-US", "Processes" },
            }), new LocalizedStringVariable(new Dictionary <String, String>
            {
                { "ru-RU", "Процессы." },
                { "en-US", "Processes." },
            })));

            #endregion

            #region Base Concepts

            SemanticNetwork.Concepts.Add(Base_Vehicle = new Concept(nameof(Base_Vehicle), new LocalizedStringVariable(new Dictionary <String, String>
            {
                { "ru-RU", "Транспортное средство" },
                { "en-US", "Vehicle" },
            }), new LocalizedStringVariable(new Dictionary <String, String>
            {
                { "ru-RU", "Устройство для перевозки людей и/или грузов." },
                { "en-US", "System which is indended for transportation of humans and cargo." },
            })));

            #endregion

            #region Signs

            SemanticNetwork.Concepts.Add(Sign_MotorType = new Concept(nameof(Sign_MotorType), new LocalizedStringVariable(new Dictionary <String, String>
            {
                { "ru-RU", "Движитель" },
                { "en-US", "Mover" },
            }), new LocalizedStringVariable(new Dictionary <String, String>
            {
                { "ru-RU", "Система, обеспечивающая движение." },
                { "en-US", "Initiator of movement." },
            })));

            SemanticNetwork.Concepts.Add(Sign_AreaType = new Concept(nameof(Sign_AreaType), new LocalizedStringVariable(new Dictionary <String, String>
            {
                { "ru-RU", "Среда передвижения" },
                { "en-US", "Movement area" },
            }), new LocalizedStringVariable(new Dictionary <String, String>
            {
                { "ru-RU", "Среда, для которой предназначено транспортное средство." },
                { "en-US", "Place, where vehicles can move." },
            })));

            #endregion

            #region Motor types

            SemanticNetwork.Concepts.Add(MotorType_Muscles = new Concept(nameof(MotorType_Muscles), new LocalizedStringVariable(new Dictionary <String, String>
            {
                { "ru-RU", "Мускульная сила" },
                { "en-US", "Muscles" },
            }), new LocalizedStringVariable(new Dictionary <String, String>
            {
                { "ru-RU", "Использования для приведения в движение мускульной силы: собственной, других людей, животных." },
                { "en-US", "To use own muscles in order to move." },
            })));

            SemanticNetwork.Concepts.Add(MotorType_Steam = new Concept(nameof(MotorType_Steam), new LocalizedStringVariable(new Dictionary <String, String>
            {
                { "ru-RU", "Паровая тяга" },
                { "en-US", "Steam engine" },
            }), new LocalizedStringVariable(new Dictionary <String, String>
            {
                { "ru-RU", "Использование для движения расширяющей силы нагретого пара." },
                { "en-US", "To use steam engine to move." },
            })));

            SemanticNetwork.Concepts.Add(MotorType_Combusion = new Concept(nameof(MotorType_Combusion), new LocalizedStringVariable(new Dictionary <String, String>
            {
                { "ru-RU", "Внутреннее сгорание" },
                { "en-US", "Combustion engine" },
            }), new LocalizedStringVariable(new Dictionary <String, String>
            {
                { "ru-RU", "Использование для движения расширяющей силы топлива, сжигаемого в закрытых цилиндрах." },
                { "en-US", "To use combustion engine to move." },
            })));

            SemanticNetwork.Concepts.Add(MotorType_Jet = new Concept(nameof(MotorType_Jet), new LocalizedStringVariable(new Dictionary <String, String>
            {
                { "ru-RU", "Реактивная тяга" },
                { "en-US", "Jet engine" },
            }), new LocalizedStringVariable(new Dictionary <String, String>
            {
                { "ru-RU", "Выталкивание вещества в обратном направлении, обычно сжигаемого топлива." },
                { "en-US", "To use jet engine to move." },
            })));

            #endregion

            #region Area types

            SemanticNetwork.Concepts.Add(AreaType_Ground = new Concept(nameof(AreaType_Ground), new LocalizedStringVariable(new Dictionary <String, String>
            {
                { "ru-RU", "Земля" },
                { "en-US", "Ground" },
            }), new LocalizedStringVariable(new Dictionary <String, String>
            {
                { "ru-RU", "Наземный транспорт." },
                { "en-US", "Plain ground." },
            })));

            SemanticNetwork.Concepts.Add(AreaType_Water = new Concept(nameof(AreaType_Water), new LocalizedStringVariable(new Dictionary <String, String>
            {
                { "ru-RU", "Вода" },
                { "en-US", "Water" },
            }), new LocalizedStringVariable(new Dictionary <String, String>
            {
                { "ru-RU", "Плавучий транспорт." },
                { "en-US", "Water surface." },
            })));

            SemanticNetwork.Concepts.Add(AreaType_Air = new Concept(nameof(AreaType_Air), new LocalizedStringVariable(new Dictionary <String, String>
            {
                { "ru-RU", "Воздух" },
                { "en-US", "Air" },
            }), new LocalizedStringVariable(new Dictionary <String, String>
            {
                { "ru-RU", "Возможность полёта." },
                { "en-US", "Fly in air." },
            })));

            #endregion

            #region Certain Transportation Devices

            SemanticNetwork.Concepts.Add(Vehicle_Bicycle = new Concept(nameof(Vehicle_Bicycle), new LocalizedStringVariable(new Dictionary <String, String>
            {
                { "ru-RU", "Велосипед" },
                { "en-US", "Bicycle" },
            }), new LocalizedStringVariable(new Dictionary <String, String>
            {
                { "ru-RU", "Двухколёсный даритель радости." },
                { "en-US", "Two wheels of fun." },
            })));

            SemanticNetwork.Concepts.Add(Vehicle_Curragh = new Concept(nameof(Vehicle_Curragh), new LocalizedStringVariable(new Dictionary <String, String>
            {
                { "ru-RU", "Курага" },
                { "en-US", "Curragh" },
            }), new LocalizedStringVariable(new Dictionary <String, String>
            {
                { "ru-RU", "Первая человеческая потуга создать лодку." },
                { "en-US", "It is not a bot itself yet." },
            })));

            SemanticNetwork.Concepts.Add(Vehicle_SteamLocomotive = new Concept(nameof(Vehicle_SteamLocomotive), new LocalizedStringVariable(new Dictionary <String, String>
            {
                { "ru-RU", "Паровоз" },
                { "en-US", "Steam locomotive" },
            }), new LocalizedStringVariable(new Dictionary <String, String>
            {
                { "ru-RU", "Устаревший тип локомотива." },
                { "en-US", "Obsolete train." },
            })));

            SemanticNetwork.Concepts.Add(Vehicle_Steamboat = new Concept(nameof(Vehicle_Steamboat), new LocalizedStringVariable(new Dictionary <String, String>
            {
                { "ru-RU", "Пароход" },
                { "en-US", "Steamboat" },
            }), new LocalizedStringVariable(new Dictionary <String, String>
            {
                { "ru-RU", "Устаревший тип корабля." },
                { "en-US", "Obsolete boat type." },
            })));

            SemanticNetwork.Concepts.Add(Vehicle_Car = new Concept(nameof(Vehicle_Car), new LocalizedStringVariable(new Dictionary <String, String>
            {
                { "ru-RU", "Автомобиль" },
                { "en-US", "Car" },
            }), new LocalizedStringVariable(new Dictionary <String, String>
            {
                { "ru-RU", "Четырёхколёсное механическое т/с." },
                { "en-US", "4-wheels standard vehicle." },
            })));

            SemanticNetwork.Concepts.Add(Vehicle_Motorcycle = new Concept(nameof(Vehicle_Motorcycle), new LocalizedStringVariable(new Dictionary <String, String>
            {
                { "ru-RU", "Мотоцикл" },
                { "en-US", "Motorcycle" },
            }), new LocalizedStringVariable(new Dictionary <String, String>
            {
                { "ru-RU", "Двухколёсное механическое т/с, возможно с коляской." },
                { "en-US", "Half of a car." },
            })));

            SemanticNetwork.Concepts.Add(Vehicle_Fighter = new Concept(nameof(Vehicle_Fighter), new LocalizedStringVariable(new Dictionary <String, String>
            {
                { "ru-RU", "Поршневой истребитель" },
                { "en-US", "Fighter" },
            }), new LocalizedStringVariable(new Dictionary <String, String>
            {
                { "ru-RU", "Устаревший самолёт для ведения воздушного боя." },
                { "en-US", "Obsolete aircraft." },
            })));

            SemanticNetwork.Concepts.Add(Vehicle_Airbus = new Concept(nameof(Vehicle_Airbus), new LocalizedStringVariable(new Dictionary <String, String>
            {
                { "ru-RU", "Аэробус" },
                { "en-US", "Airbus" },
            }), new LocalizedStringVariable(new Dictionary <String, String>
            {
                { "ru-RU", "Гражданский самолёт для перевозки пассажиров." },
                { "en-US", "Large civil airplane." },
            })));

            SemanticNetwork.Concepts.Add(Vehicle_JetFighter = new Concept(nameof(Vehicle_JetFighter), new LocalizedStringVariable(new Dictionary <String, String>
            {
                { "ru-RU", "Реактивный истребитель" },
                { "en-US", "Jet fighter" },
            }), new LocalizedStringVariable(new Dictionary <String, String>
            {
                { "ru-RU", "Современный самолёт для ведения воздушного боя." },
                { "en-US", "Modern aircraft." },
            })));

            #endregion

            #region Car parts

            SemanticNetwork.Concepts.Add(Part_Engine = new Concept(nameof(Part_Engine), new LocalizedStringVariable(new Dictionary <String, String>
            {
                { "ru-RU", "Двигатель" },
                { "en-US", "Engine" },
            }), new LocalizedStringVariable(new Dictionary <String, String>
            {
                { "ru-RU", "Двигатель." },
                { "en-US", "Engine." },
            })));

            SemanticNetwork.Concepts.Add(Part_Wheels = new Concept(nameof(Part_Wheels), new LocalizedStringVariable(new Dictionary <String, String>
            {
                { "ru-RU", "Колёса" },
                { "en-US", "Wheels" },
            }), new LocalizedStringVariable(new Dictionary <String, String>
            {
                { "ru-RU", "Колёса." },
                { "en-US", "Wheels." },
            })));

            SemanticNetwork.Concepts.Add(Part_Body = new Concept(nameof(Part_Body), new LocalizedStringVariable(new Dictionary <String, String>
            {
                { "ru-RU", "Кузов" },
                { "en-US", "Car body" },
            }), new LocalizedStringVariable(new Dictionary <String, String>
            {
                { "ru-RU", "Кузов." },
                { "en-US", "Car body." },
            })));

            #endregion

            #region Comparable Values

            Func <String, LocalizedStringVariable> getString = text => new LocalizedStringVariable(
                new Dictionary <String, String>
            {
                { "ru-RU", text },
                { "en-US", text },
            });
            Func <Int32, LocalizedStringVariable> getStringByNumber = number => getString(number.ToString());

            SemanticNetwork.Concepts.Add(Number0 = new Concept("0", getStringByNumber(0), getStringByNumber(0)));

            SemanticNetwork.Concepts.Add(NumberZero = new Concept("_0_", getString("_0_"), getString("_0_")));

            SemanticNetwork.Concepts.Add(NumberNotZero = new Concept("!0", getString("!0"), getString("!0")));

            SemanticNetwork.Concepts.Add(Number1 = new Concept("1", getStringByNumber(1), getStringByNumber(1)));

            SemanticNetwork.Concepts.Add(Number1or2 = new Concept("1 || 2", getString("1 || 2"), getString("1 || 2")));

            SemanticNetwork.Concepts.Add(Number2 = new Concept("2", getStringByNumber(2), getStringByNumber(2)));

            SemanticNetwork.Concepts.Add(Number2or3 = new Concept("2 || 3", getString("2 || 3"), getString("2 || 3")));

            SemanticNetwork.Concepts.Add(Number3 = new Concept("3", getStringByNumber(3), getStringByNumber(3)));

            SemanticNetwork.Concepts.Add(Number3or4 = new Concept("3 || 4", getString("3 || 4"), getString("3 || 4")));

            SemanticNetwork.Concepts.Add(Number4 = new Concept("4", getStringByNumber(4), getStringByNumber(4)));

            #endregion

            #region Processes

            SemanticNetwork.Concepts.Add(ProcessA = new Concept(nameof(ProcessA), getString("Process A")));
            SemanticNetwork.Concepts.Add(ProcessB = new Concept(nameof(ProcessB), getString("Process B")));

            #endregion

            #region Concept Attributes

            Sign_MotorType.WithAttribute(IsSignAttribute.Value);
            Sign_AreaType.WithAttribute(IsSignAttribute.Value);

            MotorType_Muscles.WithAttribute(IsValueAttribute.Value);
            MotorType_Steam.WithAttribute(IsValueAttribute.Value);
            MotorType_Combusion.WithAttribute(IsValueAttribute.Value);
            MotorType_Jet.WithAttribute(IsValueAttribute.Value);
            AreaType_Ground.WithAttribute(IsValueAttribute.Value);
            AreaType_Water.WithAttribute(IsValueAttribute.Value);
            AreaType_Air.WithAttribute(IsValueAttribute.Value);

            Number0.WithAttribute(IsValueAttribute.Value);
            NumberZero.WithAttribute(IsValueAttribute.Value);
            NumberNotZero.WithAttribute(IsValueAttribute.Value);
            Number1.WithAttribute(IsValueAttribute.Value);
            Number1or2.WithAttribute(IsValueAttribute.Value);
            Number2.WithAttribute(IsValueAttribute.Value);
            Number2or3.WithAttribute(IsValueAttribute.Value);
            Number3.WithAttribute(IsValueAttribute.Value);
            Number3or4.WithAttribute(IsValueAttribute.Value);
            Number4.WithAttribute(IsValueAttribute.Value);

            ProcessA.WithAttribute(IsProcessAttribute.Value);
            ProcessB.WithAttribute(IsProcessAttribute.Value);

            #endregion

            #region Statements

            SemanticNetwork.DeclareThat(SubjectArea_Transport).IsSubjectAreaOf(Base_Vehicle);
            SemanticNetwork.DeclareThat(SubjectArea_Transport).IsSubjectAreaOf(Sign_MotorType);
            SemanticNetwork.DeclareThat(SubjectArea_Transport).IsSubjectAreaOf(MotorType_Muscles);
            SemanticNetwork.DeclareThat(SubjectArea_Transport).IsSubjectAreaOf(MotorType_Steam);
            SemanticNetwork.DeclareThat(SubjectArea_Transport).IsSubjectAreaOf(MotorType_Combusion);
            SemanticNetwork.DeclareThat(SubjectArea_Transport).IsSubjectAreaOf(MotorType_Jet);
            SemanticNetwork.DeclareThat(SubjectArea_Transport).IsSubjectAreaOf(Sign_AreaType);
            SemanticNetwork.DeclareThat(SubjectArea_Transport).IsSubjectAreaOf(AreaType_Ground);
            SemanticNetwork.DeclareThat(SubjectArea_Transport).IsSubjectAreaOf(AreaType_Water);
            SemanticNetwork.DeclareThat(SubjectArea_Transport).IsSubjectAreaOf(AreaType_Air);
            SemanticNetwork.DeclareThat(SubjectArea_Transport).IsSubjectAreaOf(Vehicle_Bicycle);
            SemanticNetwork.DeclareThat(SubjectArea_Transport).IsSubjectAreaOf(Vehicle_Curragh);
            SemanticNetwork.DeclareThat(SubjectArea_Transport).IsSubjectAreaOf(Vehicle_SteamLocomotive);
            SemanticNetwork.DeclareThat(SubjectArea_Transport).IsSubjectAreaOf(Vehicle_Steamboat);
            SemanticNetwork.DeclareThat(SubjectArea_Transport).IsSubjectAreaOf(Vehicle_Car);
            SemanticNetwork.DeclareThat(SubjectArea_Transport).IsSubjectAreaOf(Vehicle_Motorcycle);
            SemanticNetwork.DeclareThat(SubjectArea_Transport).IsSubjectAreaOf(Vehicle_Fighter);
            SemanticNetwork.DeclareThat(SubjectArea_Transport).IsSubjectAreaOf(Vehicle_Airbus);
            SemanticNetwork.DeclareThat(SubjectArea_Transport).IsSubjectAreaOf(Vehicle_JetFighter);
            SemanticNetwork.DeclareThat(SubjectArea_Transport).IsSubjectAreaOf(Part_Body);
            SemanticNetwork.DeclareThat(SubjectArea_Transport).IsSubjectAreaOf(Part_Engine);
            SemanticNetwork.DeclareThat(SubjectArea_Transport).IsSubjectAreaOf(Part_Wheels);

            SemanticNetwork.DeclareThat(SubjectArea_Numbers).IsSubjectAreaOf(Number0);
            SemanticNetwork.DeclareThat(SubjectArea_Numbers).IsSubjectAreaOf(NumberZero);
            SemanticNetwork.DeclareThat(SubjectArea_Numbers).IsSubjectAreaOf(NumberNotZero);
            SemanticNetwork.DeclareThat(SubjectArea_Numbers).IsSubjectAreaOf(Number1);
            SemanticNetwork.DeclareThat(SubjectArea_Numbers).IsSubjectAreaOf(Number1or2);
            SemanticNetwork.DeclareThat(SubjectArea_Numbers).IsSubjectAreaOf(Number2);
            SemanticNetwork.DeclareThat(SubjectArea_Numbers).IsSubjectAreaOf(Number2or3);
            SemanticNetwork.DeclareThat(SubjectArea_Numbers).IsSubjectAreaOf(Number3);
            SemanticNetwork.DeclareThat(SubjectArea_Numbers).IsSubjectAreaOf(Number3or4);
            SemanticNetwork.DeclareThat(SubjectArea_Numbers).IsSubjectAreaOf(Number4);

            SemanticNetwork.DeclareThat(SubjectArea_Processes).IsSubjectAreaOf(ProcessA);
            SemanticNetwork.DeclareThat(SubjectArea_Processes).IsSubjectAreaOf(ProcessB);

            SemanticNetwork.DeclareThat(Base_Vehicle).HasSign(Sign_MotorType);
            SemanticNetwork.DeclareThat(Base_Vehicle).HasSign(Sign_AreaType);

            SemanticNetwork.DeclareThat(Sign_MotorType).IsAncestorOf(MotorType_Muscles);
            SemanticNetwork.DeclareThat(Sign_MotorType).IsAncestorOf(MotorType_Steam);
            SemanticNetwork.DeclareThat(Sign_MotorType).IsAncestorOf(MotorType_Combusion);
            SemanticNetwork.DeclareThat(Sign_MotorType).IsAncestorOf(MotorType_Jet);
            SemanticNetwork.DeclareThat(Sign_AreaType).IsAncestorOf(AreaType_Ground);
            SemanticNetwork.DeclareThat(Sign_AreaType).IsAncestorOf(AreaType_Water);
            SemanticNetwork.DeclareThat(Sign_AreaType).IsAncestorOf(AreaType_Air);
            SemanticNetwork.DeclareThat(Base_Vehicle).IsAncestorOf(Vehicle_Bicycle);
            SemanticNetwork.DeclareThat(Base_Vehicle).IsAncestorOf(Vehicle_Curragh);
            SemanticNetwork.DeclareThat(Base_Vehicle).IsAncestorOf(Vehicle_SteamLocomotive);
            SemanticNetwork.DeclareThat(Base_Vehicle).IsAncestorOf(Vehicle_Steamboat);
            SemanticNetwork.DeclareThat(Base_Vehicle).IsAncestorOf(Vehicle_Car);
            SemanticNetwork.DeclareThat(Base_Vehicle).IsAncestorOf(Vehicle_Motorcycle);
            SemanticNetwork.DeclareThat(Base_Vehicle).IsAncestorOf(Vehicle_Fighter);
            SemanticNetwork.DeclareThat(Base_Vehicle).IsAncestorOf(Vehicle_Airbus);
            SemanticNetwork.DeclareThat(Base_Vehicle).IsAncestorOf(Vehicle_JetFighter);

            SemanticNetwork.DeclareThat(Vehicle_Bicycle).HasSignValue(Sign_MotorType, MotorType_Muscles);
            SemanticNetwork.DeclareThat(Vehicle_Curragh).HasSignValue(Sign_MotorType, MotorType_Muscles);
            SemanticNetwork.DeclareThat(Vehicle_SteamLocomotive).HasSignValue(Sign_MotorType, MotorType_Steam);
            SemanticNetwork.DeclareThat(Vehicle_Steamboat).HasSignValue(Sign_MotorType, MotorType_Steam);
            SemanticNetwork.DeclareThat(Vehicle_Car).HasSignValue(Sign_MotorType, MotorType_Combusion);
            SemanticNetwork.DeclareThat(Vehicle_Motorcycle).HasSignValue(Sign_MotorType, MotorType_Combusion);
            SemanticNetwork.DeclareThat(Vehicle_Fighter).HasSignValue(Sign_MotorType, MotorType_Combusion);
            SemanticNetwork.DeclareThat(Vehicle_Airbus).HasSignValue(Sign_MotorType, MotorType_Jet);
            SemanticNetwork.DeclareThat(Vehicle_JetFighter).HasSignValue(Sign_MotorType, MotorType_Jet);
            SemanticNetwork.DeclareThat(Vehicle_Bicycle).HasSignValue(Sign_AreaType, AreaType_Ground);
            SemanticNetwork.DeclareThat(Vehicle_Curragh).HasSignValue(Sign_AreaType, AreaType_Water);
            SemanticNetwork.DeclareThat(Vehicle_SteamLocomotive).HasSignValue(Sign_AreaType, AreaType_Ground);
            SemanticNetwork.DeclareThat(Vehicle_Steamboat).HasSignValue(Sign_AreaType, AreaType_Water);
            SemanticNetwork.DeclareThat(Vehicle_Car).HasSignValue(Sign_AreaType, AreaType_Ground);
            SemanticNetwork.DeclareThat(Vehicle_Motorcycle).HasSignValue(Sign_AreaType, AreaType_Ground);
            SemanticNetwork.DeclareThat(Vehicle_Fighter).HasSignValue(Sign_AreaType, AreaType_Air);
            SemanticNetwork.DeclareThat(Vehicle_Airbus).HasSignValue(Sign_AreaType, AreaType_Air);
            SemanticNetwork.DeclareThat(Vehicle_JetFighter).HasSignValue(Sign_AreaType, AreaType_Air);

            SemanticNetwork.DeclareThat(Vehicle_Car).HasPart(Part_Body);
            SemanticNetwork.DeclareThat(Vehicle_Car).HasPart(Part_Engine);
            SemanticNetwork.DeclareThat(Vehicle_Car).HasPart(Part_Wheels);

            SemanticNetwork.DeclareThat(Number0).IsEqualTo(NumberZero);
            SemanticNetwork.DeclareThat(NumberNotZero).IsNotEqualTo(NumberZero);
            SemanticNetwork.DeclareThat(Number0).IsLessThan(Number1);
            SemanticNetwork.DeclareThat(Number1).IsLessThan(Number2);
            SemanticNetwork.DeclareThat(Number3).IsGreaterThan(Number2);
            SemanticNetwork.DeclareThat(Number4).IsGreaterThan(Number3);
            SemanticNetwork.DeclareThat(Number1).IsLessThanOrEqualTo(Number1or2);
            SemanticNetwork.DeclareThat(Number1or2).IsLessThanOrEqualTo(Number2);
            SemanticNetwork.DeclareThat(Number2).IsLessThanOrEqualTo(Number2or3);
            SemanticNetwork.DeclareThat(Number3).IsGreaterThanOrEqualTo(Number2or3);
            SemanticNetwork.DeclareThat(Number4).IsGreaterThanOrEqualTo(Number3or4);
            SemanticNetwork.DeclareThat(Number3or4).IsGreaterThanOrEqualTo(Number3);

            SemanticNetwork.DeclareThat(ProcessA).StartsBeforeOtherStarted(ProcessB);
            SemanticNetwork.DeclareThat(ProcessA).FinishesAfterOtherFinished(ProcessB);

            #endregion
        }