Ejemplo n.º 1
0
        public void ParseAntiReflexiveTest()
        {
            Ontology.EraseConcepts();
            Parser.ParseAndExecute("Cats are a kind of person.",
                                   "Cats cannot love themselves");
            var love = Ontology.Verb("love");

            Assert.IsNotNull(love);
        }
Ejemplo n.º 2
0
        public void VerbQuantificationTest()
        {
            var o = new Ontology(nameof(VerbQuantificationTest));

            o.ParseAndExecute(
                "employee and employer are kinds of person",
                "an employee must work for one employer",
                "an employer must be worked for by at least two employees");
            var g        = o.CommonNoun("person").MakeGenerator(10);
            var employee = o.CommonNoun("employee");
            var employer = o.CommonNoun("employer");
            var workFor  = o.Verb("work", "for");

            for (var count = 0; count < 100; count++)
            {
                var invention = g.Generate();
                foreach (var person in invention.PossibleIndividuals)
                {
                    if (person.IsA(employee))
                    {
                        Assert.AreEqual(1, invention.PossibleIndividuals.Count(p => person.RelatesTo(p, workFor)));
                    }
                    else if (person.IsA(employer))
                    {
                        Assert.IsTrue(2 <= invention.PossibleIndividuals.Count(p => p.RelatesTo(person, workFor)));
                    }
                    else
                    {
                        throw new Exception("Object in model that is neither an employee or employer");
                    }
                }
            }
        }
Ejemplo n.º 3
0
        public void AntiReflexive()
        {
            Ontology.EraseConcepts();
            Parser.ParseAndExecute("people can love other people");
            Parser.ParseAndExecute("people cannot love themselves");
            var v = Ontology.Verb("loves");
            var g = new Generator(Ontology.CommonNoun("person"), new MonadicConceptLiteral[0], 10);

            for (int n = 0; n < 100; n++)
            {
                var s = g.Generate();
                foreach (var i in s.Individuals)
                {
                    Assert.IsFalse(s.Holds(v, i, i));
                }
            }
        }