Example #1
0
        public override KnowledgeBase Load()
        {
            string Content = (new StreamReader(FileName, Encoding.Default)).ReadToEnd();

            char[]   sep1 = { '#' };
            char[]   sep2 = { '\n', '\r' };
            string[] sep3 = { ":-" };

            string[] Knowledges = Content.Split(sep1, StringSplitOptions.RemoveEmptyEntries);
            string[] Facts      = Knowledges[0].Split(sep2, StringSplitOptions.RemoveEmptyEntries);
            string[] Rules      = Knowledges[1].Split(sep2, StringSplitOptions.RemoveEmptyEntries);
            string[] OneRule;

            KnowledgeBase KB = new KnowledgeBase();

            foreach (string StrFact in Facts)
            {
                KB.AddFact(Translator.StringToFact(StrFact));
            }
            foreach (string StrRule in Rules)
            {
                OneRule = StrRule.Split(sep3, StringSplitOptions.RemoveEmptyEntries);
                KB.AddRule(Translator.StringsToRule(OneRule[0], OneRule[1]));
            }

            return(KB);
        }
Example #2
0
        private void AddFact()
        {
            try
            {
                KB.AddFact(Translator.StringToFact(tbFact.Text));
                AddExpressionToListView(lvFactBase, KB.BaseOfFacts[KB.BaseOfFacts.Count - 1].Value);
                lvFactBase.Refresh();

                tbFact.Clear();
            }
            catch (Exception Exc)
            {
                MessageBox.Show(Exc.Message, "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }