Das AIML Praxisbuch

Chatbots selbst erstellen

Inhalt

  1. Was ist AIML

  2. Die wichtigsten Elemente - AIML in der Praxis

  3. Normierung und Vereinfachung

  4. Wildcards in AIML

  5. Fortgeschrittene Beispiele und Techniken (coming soon)

  6. Referenz (coming soon)

  7. Anhang


Aktuelles Kapitel:

Was ist AIML?

    Was ist AIML?

    Die Geschichte von AIML

    Mit "Maschinen" per natürlicher Sprache zu kommunizieren, wird in unserem Alltag immer selbstverständlicher. Unser Mobiltelefon oder auch Sprachassistenten wie Alexa in Co. können wir mit Sprachbefehlen steuern oder dem Anrufcomputer einer Telefonhotline Stichworte ansagen.

    Wir würden aber vermutlich noch nicht annehmen, dass uns die Maschine am anderen Ende der Leitung wirklich inhaltlich verstanden hat oder glauben, dass es sich um einen echten Menschen handelt.

    Es gibt jedoch Bestrebungen, genau diese Illusion zu erzeugen. Zahlreiche Menschen und Firmen arbeiten weltweit daran, Computerprogramme zu erschaffen, deren Dialoge von denen echter Menschen nicht zu unterscheiden sind. Es werden Wettbewerbe veranstaltet, um das Programm zu küren, welches im Dialog am menschenähnlichsten ist.

    Chatbots können aber auch praktischen Nutzen haben. Unternehmen und Behörden setzen solche Chatbot Programme beispielsweise auf Ihren Internet-Homepages ein, um Kundenanfragen automatisiert zu beantworten.

    Hier kommt AIML ins Spiel. AIML ist eine Sprache zu Formulierung von Chatbot-Inhalten und wurde im Jahr 1995 von Dr. Richard Wallace erfunden. AIML wird seitdem von ihm bzw. der von ihm im Jahr 2001 gegründeten "ALICE A. I. Foundation" ständig weiter entwickelt und als Open Source publiziert. Dr. Wallace schuf damit die Grundlage für seinen Chatbot "A.L.I.C.E.", welcher bereits einige Preise in Wettbewerben für den menschenähnlichsten Dialog gewonnen hat.

    Die ALICE A. I. Foundation hat jedoch nicht nur die Struktur von AIML als Open Source veröffentlicht, sondern auch das Wissen des Chatbots A.L.I.C.E.. Viele Chatbot Autoren weltweit haben diese englisch sprachigen Inhalte übernommen und darauf aufbauend eigene Chatbots entwickelt.

    Ein Besuch auf der Website des A.L.I.C.E. Projektes [alicebot.org](http://www.aiml.foundation/) ist auf jeden Fall empfehlenswert. Dort berichten Dr. Richard Wallace und die ALICE A. I. Foundation regelmäßig über die neuesten Entwicklungen von A.L.I.C.E. und AIML. Aber auch über andere Chatbot Technologien, Chatbot Patente und Neuigkeiten aus dem weltweiten Chatbot Business kann man sich dort informieren.

    Die Technik hinter AIML

    Ein AIML Chatbot besteht grundsätzlich aus zwei Teilen: Dem Wissen (gespeichert in AIML Dateien) und dem AIML Interpreter.

    Um einen eigenen Chatbot zu veröffentlichen, müssen Sie daher zunächst eigene AIML Dateien erzeugen. Dazu benötigen Sie einen passenden Editor, wobei es auch ein gewöhnlicher Texteditor sein kann.

    Haben Sie Ihre ersten AIML Dateien fertig gestellt, laden Sie diese in einen passenden AIML Interpreter. Der Interpreter haucht den Dateien dann Leben ein.

    Je nachdem, ob der Interpreter auf Ihrem lokalen Computer oder auf auf einem Webserver betrieben wird, können Sie oder die ganze Internetwelt anschließend mit Ihrem Chatbot sprechen.

    Die Wahl des passenden AIML-Editors

    Eine AIML Datei ist prinzipiell eine Textdatei. Daher kann sie problemlos mit einem beliebigen Texteditor bearbeitet werden. Die meisten AIML Dateien, welche im Internet zur Verfügung stehen, sind mit normalen Texteditoren wie Notepad++ oder Ultraedit erstellt worden.

    Arbeiten mit einem Texteditor

    Die Vorteile eines klassischen Texteditors liegen auf der Hand:

    • Er ist auf nahezu jedem Computer und Betriebssystem verfügbar
    • Er hat meist nur sehr geringe Anforderungen an Hardware und Software

    In einem Texteditor bearbeiten Sie die AIML-Dateien komplett von Hand. Auf der einen Seite haben Sie dadurch den größtmöglichen Einfluss auf Inhalt und Struktur der Datei. Das bedeutet andererseits aber auch, dass Sie für die korrekte Struktur der Datei selbst verantwortlich sind. Eine fehlerfreie AIML Datei muss nämlich bestimmten XML- und Syntax-Regeln entsprechen.

    Der Inhalt Ihres Chatbots wird früher oder später so umfangreich werden, dass Sie ihn in mehrere AIML-Dateien aufteilen möchten. Mit einem Texteditor können Sie diese Dateien natürlich weiterhin problemlos bearbeiten. Allerdings wird es irgendwann auch recht unübersichtlich, das Wissen eines Chatbots in mehreren Dateien zu bearbeiten und dennoch die Übersicht zu behalten.

    Der GaitoBot AIML Editor

    Im Gegensatz zu einem normalen Texteditor ist der GaitoBot AIML Editor speziell für die Pflege von AIML-Dateien entwickelt worden. Er ist kostenfrei verfügbar und darf auch für kommerzielle Projekte uneingeschränkt eingesetzt werden.

    Der GaitoBot AIML Editor unterstützt Sie bei der Eingabe von korrektem AIML. Wenn Sie mit mehreren Dateien gleichzeitig arbeiten, werden diese vom Editor synchronisiert, damit zum Beispiel keine doppelten Eingaben getätigt werden. Durch den eingebauten Testmodus können Sie bereits im Editor ein Gespräch mit dem Chatbot durchführen und damit schnell Lücken oder Fehler im enthaltenen Wissen aufspüren.

    Darstellung von AIML in diesem Buch

    AIML Quellcode kann je nach Bearbeitungsprogramm auf verschiedene Arten dargestellt werden.

    Grafische Darstellung

    Manche Editoren bieten neben der reinen Textdarstellung eine vereinfachte, grafische Darstellung der AIML Strukturen an. Dies erleichtert den Einstieg und verhindert in der Regel auch Syntax Fehler wie z.B. falsch geschlossen XML Tags.

    Dies kann beispielsweise so aussehen:

    Grafische AIML Darstellung

    XML Markup Darstellung

    Meist wird AIML aber als reiner Text dargestellt - manchmal noch mit entsprechender Einfärbung der Syntax:

    <category>
      <pattern>*</pattern>
      <that>Wie heissen Sie</that>
      <template>Schön Sie kennen zu lernen, <star/>.</template>
    </category>
    

    Damit Sie dieses Buch für möglichst alle AIML Editoren verwenden können, werden in diesem Buch AIML Inhalte als reines XML Markup dargestellt.

    Verwendung von fremden AIML Dateien

    Wahrscheinlich möchten Sie zu Anfang erst einmal sehen, wie eine fertige AIML Datei aussieht und dazu aus dem Internet eine der frei verfügbaren Dateien verschiedenster Autoren herunterladen. Sehr wahrscheinlich werden Sie diese Datei jedoch nicht problemlos im GaitoBot AIML Editor öffnen können.

    Der Grund liegt dann meist daran, dass diese Dateien mit Texteditoren bearbeitet wurden und sehr oft kleine Fehler in der Syntax enthalten. Die Autoren bemerken dies in der Regel nicht, da die AIML Interpreter meist recht tolerant sind und über kleine Fehler hinweg sehen oder die betroffenen Teile des Wissens einfach unbemerkt ignorieren. Der GaitoBot AIML Editor lässt jedoch nur korrektes AIML zu. Daher müssen Sie fremde AIML Dateien in der Regel meist von Hand in einem Texteditor korrigieren.

    Was ist ein AIML-Interpreter?

    AIML Dateien für sich allein können nicht praktisch eingesetzt werden - ähnlich wie eine CD ohne CD-Player nicht abgespielt werden kann. Neben Ihren erstellten AIML Dateien benötigen Sie daher noch einen AIML Interpreter.

    Der Interpreter ist ein Programm, welches die AIML Dateien zunächst einliest und dann das enthaltene Wissen zur Benutzung bereit hält. Anschließend versucht der Interpreter, auf getätigte Eingaben die am besten passende Antwort auszugeben.

    Im Laufe der Zeit wurden von vielen Softwareautoren weltweit zahlreiche AIML Interpreter erstellt. Die meisten davon können kostenfrei heruntergeladen. Eine Übersicht der frei verfügbaren Interpreter finden Sie auf alicebot.org und genutzt werden. Viele sind sogar inklusive Quellcode verfügbar.

    Die offensichtlichsten Unterschiede der verschiedenen AIML Interpreter sind die verwendete Programmiersprache und die Plattform, auf welcher der Interpreter betrieben werden kann. Einige Interpreter sind z.B. in Java programmiert und benötigen daher eine Java Runtime.

    Darüber hinaus verhalten sich die Interpreter zum Teil selbst bei der Verarbeitung identischer AIML Dateien unterschiedlich.

    Der Grund dafür ist meist, dass die Interpreter für unterschiedliche AIML Versionen implementiert sind. In Version 1.0.1 der AIML Definitionen sind beispielsweise zahlreiche Elemente der Version 0.9 ersetzt worden oder weggefallen.

    Darüber hinaus behandeln einige Interpreter nicht alle AIML-Elemente, was ebenfalls zu Unterschieden in den Antworten des Chatbots führen kann.

    Wenn Sie Ihren AIML Interpreter auswählen, geschieht dies oft auf Basis der Umgebung, in welcher der Interpreter betrieben werden kann. Wenn Sie zum Beispiel Ihre Website auf einem Server hosten lassen, welcher nur PHP-Script aber kein Java erlaubt, werden Sie wahrscheinlich einen PHP basierten Interpreter verwenden.