private void CategoryVerarbeiten( XmlNode categoryNode, string aimlDateiname, GaitoBotEigenschaften botEigenschaften) { this.CategoryVerarbeiten(categoryNode, "*", aimlDateiname, botEigenschaften); }
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"); } }
public void AIMLDateiVerarbeiten(string aimlDateiname, GaitoBotEigenschaften botEigenschaften) { XmlDocument doc = new XmlDocument(); doc.PreserveWhitespace = true; doc.Load(aimlDateiname); this.AimldomDokumentVerarbeiten(doc, aimlDateiname, botEigenschaften); }
private void CategoryVerarbeiten( XmlNode categoryNode, string themaName, string aimlDateiname, GaitoBotEigenschaften botEigenschaften) { this._wissen.CategoryAufnehmen(new WissensCategory(this._normalisierung, categoryNode, themaName, aimlDateiname, botEigenschaften)); }
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(); }
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; }
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(); }
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(); }
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); } } }
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()); }
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()); }