//Testing whether true and false are handled as prolog queries
        private static void TestBoolConstant()
        {
            KnowledgeBase kb = new KnowledgeBase("Global", null);

            kb.Consult("PrologTest.prolog");
            kb.IsTrueWrite("true.");
            kb.IsTrueWrite("false.");
        }
        /*
         * Testing queries that have no arguments.
         */
        private static void QueryWithNoArgument()
        {
            KnowledgeBase kb = new KnowledgeBase("global", null);

            kb.IsTrueWrite("assert((test :- foo)).");
            kb.IsTrueWrite("assert(foo).");
            kb.IsTrueWrite("retract(foo).");
            kb.IsTrueWrite("test.");
        }
        /*
         * Demonstrates assertions, and that queries are correctly solved after appropriate assertion of facts and rules.
         */
        private static void AssertingAFact()
        {
            KnowledgeBase kb = new KnowledgeBase("global", null);

            kb.IsTrueWrite("assert(person(plato)).");
            kb.IsTrueWrite("person(socratese).");
            kb.IsTrueWrite("assert((mortal(X) :- person(X))).");
            kb.IsTrueWrite("mortal(socratese).");
            kb.IsTrueWrite("assert(person(socratese)).");
            kb.IsTrueWrite("person(socratese).");
            kb.IsTrueWrite("mortal(socratese).");
            kb.IsTrueWrite("mortal(plato), person(socratese).");
        }
        /*
         * fixme: Queries which involve chaining bindings generate an error. It looks like in the guts of SolveFor() there
         * are recursive calls which call GameObject.SolveFor(). So using this basic feature of prolog requires
         * the UnityProlog KB to be embeded in a game object. To debug this I should just develop a TextChoices unity
         * demo with the KB stored on a GameObject.
         */
        private static void TestIncrement()
        {
            KnowledgeBase kb = new KnowledgeBase("Global", null);

            kb.Consult("PrologTestWithError.prolog");
            kb.IsTrueWrite("triesGreaterThan(1).");
            //kb.IsTrueWrite("tries(X), X > 1.");
            //kb.IsTrueWrite("assert(triedDoor).");
            //kb.IsTrueWrite("incrementTries.");
            //kb.IsTrueWrite("tries(X), X > 1.");
            //kb.IsTrueWrite("assert(triedDoor).");
            //kb.IsTrueWrite("tries(x), X > 1.");
        }