Пример #1
0
 private void CategoryVerarbeiten(
     XmlNode categoryNode,
     string aimlDateiname,
     GaitoBotEigenschaften botEigenschaften)
 {
     this.CategoryVerarbeiten(categoryNode, "*", aimlDateiname, botEigenschaften);
 }
Пример #2
0
 public void LadeAimlDateienAusVerzeichnis(
     string verzeichnis,
     GaitoBotEigenschaften botEigenschaften)
 {
     if (Directory.Exists(verzeichnis))
     {
         string[] files = Directory.GetFiles(verzeichnis, "*.aiml");
         if (files.Length == 0)
         {
             this._protokoll.AppendFormat(ResReader.Reader(this._protokollKultur).GetString("KeineAIMLDateienImVerzeichnisGefunden", this._protokollKultur), (object)verzeichnis);
             this._protokoll.Append("\n");
         }
         foreach (string aimlDateiname in files)
         {
             this.AIMLDateiVerarbeiten(aimlDateiname, botEigenschaften);
         }
         this._protokoll.AppendFormat(ResReader.Reader(this._protokollKultur).GetString("VerzeichnisEingelesen", this._protokollKultur), (object)verzeichnis, (object)this._wissen.AnzahlCategories);
         this._protokoll.Append("\n");
     }
     else
     {
         this._protokoll.AppendFormat(ResReader.Reader(this._protokollKultur).GetString("VerzeichnisNichtGefunden", this._protokollKultur), (object)verzeichnis);
         this._protokoll.Append("\n");
     }
 }
Пример #3
0
        public void AIMLDateiVerarbeiten(string aimlDateiname, GaitoBotEigenschaften botEigenschaften)
        {
            XmlDocument doc = new XmlDocument();

            doc.PreserveWhitespace = true;
            doc.Load(aimlDateiname);
            this.AimldomDokumentVerarbeiten(doc, aimlDateiname, botEigenschaften);
        }
Пример #4
0
 private void CategoryVerarbeiten(
     XmlNode categoryNode,
     string themaName,
     string aimlDateiname,
     GaitoBotEigenschaften botEigenschaften)
 {
     this._wissen.CategoryAufnehmen(new WissensCategory(this._normalisierung, categoryNode, themaName, aimlDateiname, botEigenschaften));
 }
Пример #5
0
 public GaitoBotInterpreter(CultureInfo loggingKultur, StartupInfos startupInfos)
 {
     this._wissen           = new Wissen();
     this._botEigenschaften = startupInfos.BotEigenschaften;
     this._loggingKultur    = loggingKultur;
     this._normalisierung   = new Normalisierung(startupInfos);
     this._ladeProtokoll    = new StringBuilder();
 }
Пример #6
0
 public AntwortFinder(string[] trenner, Normalisierung normalisierer, Wissen wissen, GaitoBotSession session, GaitoBotEigenschaften botEigenschaften, bool beiEinwortEingabenOhneMatchAufSraiOnlyOneWordUmleiten)
 {
     this._beiEinwortEingabenOhneMatchAufSraiOnlyOneWordUmleiten = beiEinwortEingabenOhneMatchAufSraiOnlyOneWordUmleiten;
     this._trenner          = trenner;
     this._botEigenschaften = botEigenschaften;
     this._wissen           = wissen;
     this._session          = session;
     this._normalisierer    = normalisierer;
 }
Пример #7
0
 public WissensCategory(
     Normalisierung normalisierung,
     XmlNode categoryNode,
     string themaName,
     string aimlDateiName,
     GaitoBotEigenschaften botEigenschaften)
 {
     this._categoryNode = categoryNode;
       this._aimlDateiName = aimlDateiName;
       this._themaName = themaName;
       XmlNode inhaltNode1 = this._categoryNode.SelectSingleNode("pattern");
       this._pattern = inhaltNode1 == null ? new MatchString("*") : new MatchString(MatchString.GetInhaltFromXmlNode(inhaltNode1, normalisierung, botEigenschaften));
       XmlNode inhaltNode2 = this._categoryNode.SelectSingleNode("that");
       this._that = inhaltNode2 == null ? new MatchString("*") : new MatchString(MatchString.GetInhaltFromXmlNode(inhaltNode2, normalisierung, botEigenschaften));
       this.ErmittleObSRAICategory();
 }
Пример #8
0
        private void TopicVerarbeiten(XmlNode topicNode, string aimlDateiname, GaitoBotEigenschaften botEigenschaften)
        {
            string text = topicNode.Attributes[0].Value;

            if (string.IsNullOrEmpty(text))
            {
                text = "*";
            }
            foreach (XmlNode item in topicNode.SelectNodes("category"))
            {
                if (item.Name == "category")
                {
                    this.CategoryVerarbeiten(item, text, aimlDateiname, botEigenschaften);
                }
            }
        }
        public static GaitoBotEigenschaften DeSerialisiereListeAusXMLDatei(string dateiname)
        {
            XmlSerializer xmlSerializer = new XmlSerializer(typeof(List <GaitoBotEigenschaft>));

            if (!File.Exists(dateiname))
            {
                throw new ApplicationException("GaitoBotEigenschaften-Datei '" + dateiname + "' nicht vorhanden!");
            }
            StreamReader streamReader       = File.OpenText(dateiname);
            List <GaitoBotEigenschaft> list = (List <GaitoBotEigenschaft>)xmlSerializer.Deserialize(streamReader);

            streamReader.Close();
            GaitoBotEigenschaften gaitoBotEigenschaften = new GaitoBotEigenschaften();

            foreach (GaitoBotEigenschaft item in list)
            {
                gaitoBotEigenschaften.Setzen(item.Name, item.Inhalt);
            }
            return(gaitoBotEigenschaften);
        }
        public static void SerialisiereListeInXMLDatei(string dateiname, GaitoBotEigenschaften eigenschaften)
        {
            List <GaitoBotEigenschaft> list = new List <GaitoBotEigenschaft>();

            foreach (string key in eigenschaften._eigenschaften.Keys)
            {
                if (!eigenschaften.IsEmpty(key))
                {
                    list.Add(new GaitoBotEigenschaft
                    {
                        Name   = key,
                        Inhalt = eigenschaften.Lesen(key)
                    });
                }
            }
            XmlSerializer xmlSerializer = new XmlSerializer(typeof(List <GaitoBotEigenschaft>));
            StreamWriter  streamWriter  = File.CreateText(dateiname);

            xmlSerializer.Serialize(streamWriter, list);
            streamWriter.Close();
        }
Пример #11
0
 public void AimldomDokumentVerarbeiten(
     XmlDocument doc,
     string aimlDateiname,
     GaitoBotEigenschaften botEigenschaften)
 {
     this.AimlDateiWirdGeladenEvent(aimlDateiname);
     ToolboxXML.WhitespacesBereinigen((XmlNode)doc.OwnerDocument);
     foreach (XmlNode childNode in doc.DocumentElement.ChildNodes)
     {
         string name = childNode.Name;
         if (!(name == "topic"))
         {
             if (name == "category")
             {
                 this.CategoryVerarbeiten(childNode, aimlDateiname, botEigenschaften);
             }
         }
         else
         {
             this.TopicVerarbeiten(childNode, aimlDateiname, botEigenschaften);
         }
     }
 }
Пример #12
0
        public static string GetInhaltFromXmlNode(
            XmlNode inhaltNode,
            Normalisierung normalisierung,
            GaitoBotEigenschaften botEigenschaften)
        {
            StringBuilder stringBuilder1 = new StringBuilder();

            stringBuilder1.AppendFormat(" ");
            if (!inhaltNode.HasChildNodes)
            {
                stringBuilder1.Append(inhaltNode.Value);
            }
            else
            {
                foreach (XmlNode childNode in inhaltNode.ChildNodes)
                {
                    if (childNode is XmlText)
                    {
                        stringBuilder1.Append(childNode.InnerText);
                    }
                    else
                    {
                        if (!(childNode is XmlElement))
                        {
                            throw new ApplicationException(string.Format("Unbekannter XMLTyp '{0}' in Pattern '{1}'", (object)childNode.OuterXml, (object)inhaltNode.OuterXml));
                        }
                        if (childNode.Name == "bot")
                        {
                            if (childNode.Attributes["name"] != null)
                            {
                                string name = childNode.Attributes["name"].Value;
                                stringBuilder1.Append(botEigenschaften.Lesen(name));
                            }
                            else
                            {
                                stringBuilder1.Append("BOT_UNKNOWN");
                            }
                        }
                        else
                        {
                            stringBuilder1.AppendFormat("[[Unbekanntes Tag '{0}' in Pattern '{1}']]", (object)childNode.OuterXml, (object)inhaltNode.OuterXml);
                        }
                    }
                }
            }
            stringBuilder1.AppendFormat(" ");
            string eingabe = stringBuilder1.ToString();

            string[]      strArray       = normalisierung.StandardErsetzungenDurchfuehren(eingabe).Split(" \r\n\t".ToCharArray());
            StringBuilder stringBuilder2 = new StringBuilder();

            foreach (string rohEingabe in strArray)
            {
                string str = !(rohEingabe == "*") && !(rohEingabe == "_") ? Normalisierung.EingabePatternOptimieren(rohEingabe, false) : rohEingabe;
                if (stringBuilder2.Length == 0)
                {
                    stringBuilder2.Append(str);
                }
                else
                {
                    stringBuilder2.AppendFormat(" {0}", (object)str);
                }
            }
            return(stringBuilder2.ToString());
        }
Пример #13
0
        public static string GetInhaltFromXmlNode(XmlNode inhaltNode, Normalisierung normalisierung, GaitoBotEigenschaften botEigenschaften)
        {
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.AppendFormat(" ");
            if (!inhaltNode.HasChildNodes)
            {
                stringBuilder.Append(inhaltNode.Value);
            }
            else
            {
                foreach (XmlNode childNode in inhaltNode.ChildNodes)
                {
                    if (childNode is XmlText)
                    {
                        stringBuilder.Append(childNode.InnerText);
                        continue;
                    }
                    if (childNode is XmlElement)
                    {
                        if (childNode.Name == "bot")
                        {
                            if (childNode.Attributes["name"] != null)
                            {
                                string value = childNode.Attributes["name"].Value;
                                stringBuilder.Append(botEigenschaften.Lesen(value));
                            }
                            else
                            {
                                stringBuilder.Append("BOT_UNKNOWN");
                            }
                        }
                        else
                        {
                            stringBuilder.AppendFormat("[[Unbekanntes Tag '{0}' in Pattern '{1}']]", childNode.OuterXml, inhaltNode.OuterXml);
                        }
                        continue;
                    }
                    throw new ApplicationException(string.Format("Unbekannter XMLTyp '{0}' in Pattern '{1}'", childNode.OuterXml, inhaltNode.OuterXml));
                }
            }
            stringBuilder.AppendFormat(" ");
            string eingabe = stringBuilder.ToString();

            eingabe = normalisierung.StandardErsetzungenDurchfuehren(eingabe);
            string[] array = eingabe.Split(" \r\n\t".ToCharArray());
            stringBuilder = new StringBuilder();
            string[] array2 = array;
            foreach (string text in array2)
            {
                string text2 = (!(text == "*") && !(text == "_")) ? Normalisierung.EingabePatternOptimieren(text, false) : text;
                if (stringBuilder.Length == 0)
                {
                    stringBuilder.Append(text2);
                }
                else
                {
                    stringBuilder.AppendFormat(" {0}", text2);
                }
            }
            return(stringBuilder.ToString());
        }