Exemplo n.º 1
0
        static void Main(string[] args)
        {
            IStorageService service = new PrMInMemoryStService();
            IKnowledgeBase  knBase  = new ProductionModelReteNetwork(service);
            //IProductionSolver solver = new DirectProductionSolver(knBase); //breadth first
            //IProductionSolver solver = new DepthFirstDirectProductionSolver(knBase); //depth first;
            IProductionSolver       solver = new SimplicityFirstDirectSolver(knBase); //simplicity first;
            LogicalExpressionHelper eh     = new LogicalExpressionHelper();
            IParser       parser           = new PrModelParser(eh);
            IExpertSystem expert           = new ExpertSystemBase(knBase, solver, parser);
            string        rules            = Properties.Resources.TravelBase;

            Console.WriteLine("Parsing rules...");
            expert.AddRules(rules);
            Console.WriteLine("Done!");
            string query = "если 'выбор направления-Европа', 'выбор страны-Испания', 'приоритет отеля-центр города', 'приоритет города-экскурсии', 'количество звезд-4' то 'отель=?'";

            //string query = "если 'желание-купить', 'денег-достаточно', 'расстояние-равно', " +
            //    "'цены лучше-РИО' то 'пойти в РИО=?', 'пойти в Рубин=?'";
            Console.WriteLine("Submitting query: {0}", query);
            Console.Write("Result:");
            ResultingFactSet result = (ResultingFactSet)expert.GetResult(query);

            foreach (var item in result)
            {
                if (item.Value != null)
                {
                    Console.WriteLine(item);
                }
            }
            Console.ReadKey();
        }
Exemplo n.º 2
0
        public void TestReteCreation()
        {
            //это прсото тест на создание
            //корректность создания и работы проверяется в тесте решателя

            IParser                    parser  = new PrModelParser(new LogicalExpressionHelper());
            IStorageService            service = new PrMInMemoryStService();
            ProductionModelReteNetwork rete    = new ProductionModelReteNetwork(service);

            foreach (var statement in parser.ParseRules(Properties.Resources.sampleBase))
            {
                rete.AddStatement(statement);
            }
        }