Einführung - dialogos-project/dialogos GitHub Wiki

(diese Seite auf Englisch)

Überblick

Das Dialog-Management-Tool DialogOS ist eine Entwicklungsumgebung zum Erstellen, Testen und Ausführen von Dialogsystemen.

Dialogmodelle in DialogOS werden als endliche Automaten repräsentiert. In der einfachsten Version ist ein solcher Automat ein Graph mit einer Menge von Knoten (Dialogzuständen) und gerichteten Kanten (Dialogübergängen), die die Knoten verbinden.

Die Ausführung eines Automatenmodells beginnt in einem Startknoten. Je nach Benutzerverhalten bzw. Anfrage verwendet das System die passende Übergangskante und wechselt zu einem neuen Knoten, der den neuen Dialogzustand repräsentiert. Dieser Zustand ist typischerweise mit einer Systemantwort bzw. mit einer Eingabeaufforderung assoziiert. Das Schema der Dialogführung des Systems wird durch die Abfolge der Dialogzustände kodiert.

DialogOS verfügt über eingebaute Komponenten zur Sprach- und Eingabe wie auch zur Steuerung eines "LEGO Mindstorm NXT"-Roboters. Das System kann außerdem über eine Modul-Schnittstelle mit beliebigen externen Modulen kommunizieren. Dies können z.B. Module sein, die mit dem Benutzer interagieren (weitere Spracherkenner, Sprachausgabe, Display etc.), aber auch externe Datenquellen (SQL-Datenbanken etc.) oder zu steuernde Geräte.

Aufbau eines Dialogmodells

DialogOS bietet eine grafische Benutzeroberfläche, in der Dialogzustände durch Klicken und Ziehen angelegt und verbunden werden können.

Ein Dialogmodell in DialogOS besteht aus den folgenden Komponenten:

  1. Einer Liste von internen Modulen und externen Geräten, mit denen die Dialogsteuerung interagiert

  2. Einem Graphen, der den Ablauf des Dialoges repräsentiert. Dieser Graph kann beliebig viele Untergraphen haben, die einzelne Dialogteile darstellen.

  3. Einer Liste von Variablen, die das Automatenmodell um Zustandsinformationen erweitern. Variablen können z.B. Eingaben des Benutzers speichern, auf die an späterer Stelle wieder zugegriffen werden soll.

Die einzelnen Komponenten werden in den nächsten Abschnitten genauer beschrieben.

Arbeitsfläche und Automat

Der wichtigste Teil des Dialogmodells ist die Beschreibung des Dialogablaufs in Form eines geschachtelten endlichen Automaten, der als Ablaufgraph dargestellt wird. Solch ein Graph besteht aus mehrere Knoten, die durch Kanten verbunden werden. Zur Beschreibung des Dialogablaufs stehen verschiedene Knotentypen zur Verfügung, die jeweils spezielle Funktionen erfüllen.

Jeder Knoten des Graphen wird als farbiges Rechteck dargestellt, das je nach Funktion einen oder mehrere Ausgänge hat, die durch kleine Dreiecke an der Unterseite des Knotens symbolisiert werden. Wenn Sie den Mauszeiger über einem Ausgang halten, so erscheint dessen Beschreibung. Durch Klicken mit der rechten Maustaste oder Klicken bei gedrückter Ctrl-Taste in den leeren Bereich des Graphen erhalten Sie ein Kontextmenü zum Hinzufügen eines neuen Knotens.

Knoten können auch per Drag and Drop auf die Arbeitsfläche gezogen werden. Eine Beschreibung der verschiedenen Knotentypen finden Sie im Kapitel Knoten.

Sie können zwei Knoten durch eine Kante verbinden, indem Sie die linke Maustaste über dem Ausgang eines Knotens drücken und dann die Maus auf den gewünschten Zielknoten ziehen. Wenn sich die Maus über einem potentiellen Zielknoten befindet, leuchtet dieser auf. Lassen Sie nun die Maustaste los, um die Kante anzulegen. Jedem Ausgang kann nur eine Kante zu einem bestimmten Knoten zugeordnet werden, es können jedoch mehrere Kanten von verschiedenen Ausgängen in ein und demselben Zielknoten münden.

Knoten und Kanten löschen Sie, indem Sie einmal auf das entsprechende Objekt klicken und dann den Menübefehl Löschen im Menü Bearbeiten wählen.

Wenn Sie DialogOS starten oder ein neues Dokument erstellen, öffnet sich ein Fenster, in dem sich ein Startknoten befindet. Jeder Graph hat immer genau einen Startknoten, in dem die Ausführung beginnt. Die Größe des Fensters können Sie über den Befehl "Arbeitsfläche" im Menü Graph variieren.

Einstellung der Arbeitsfläche

Symbolleiste

Oberhalb der Arbeitsfläche befindet sich eine Symbolleiste, welche den schnellen Zugriff auf Bearbeitungsoptionen und Dialog-Ausführung erlaubt. Mit den Schaltflächen Auswahl, Scrollen und Löschen lässt sich der aktuelle Bearbeitungsmodus verändern. Während die erste Option erlaubt, bestehende Knoten auszuwählen, zu modifizieren und neue Knoten zu erstellen, so lässt sich mit der zweiten bequem durch die Arbeitsfläche scrollen. Der Löschen-Modus dient dazu, Knoten durch Anklicken zu löschen, und bietet sich so als bequemes Hilfsmittel an, um eine Vielzahl von Knoten zu entfernen.

Die Symbolleiste enthält außerdem Verknüpfungen zum bequemen Ausführen, Debuggen und Testen (Wizard of Oz) des Dialogs.

Eine weitere Option ist das Anzeigen eines Rasters auf der Arbeitsfläche. Mit Hilfe der Shift-Taste ist es beim Bewegen von Knoten möglich, diese an dem gezeigten Raster anzuordnen, um eine bessere Übersichtlichkeit herzustellen.

Prozedurbaum

Zur linken Seite der Arbeitsfläche erhalten Sie eine Übersicht über die Hierarchie des aktuellen Dialogmodells. Ganz oben im Baum finden Sie unter dem aktuellen Dateinamen einen Link zur Hauptarbeitsfläche. Unterhalb dieser Verknüpfung befinden sich jeweils rekursiv verschachelt alle Links zu den Untergraphen und Prozeduren. Mit einem Linksklick auf einen Prozedurnamen erhalten Sie die entsprechende Arbeitsfläche der Prozedur im aktuellen Fenster.

Drag&Drop-Leiste

Auf der rechten Seite der Arbeitsfläche befindet sich eine Symbolleiste, die es ermöglicht, per Drag & Drop neue Knoten in der Arbeitsfläche einzufügen. Hierzu drücken Sie die linke Maustaste über einem auswählbaren Knotentyp und halten diese gedrückt, während Sie den Mauszeiger in die Arbeitsfläche ziehen. Beim Loslassen wird der neue Knoten dann am Punkt des Mauszeigers erstellt. Die Auswahl der Knotentypen entspricht aller Knoten, die auch im Kontextmenü Knoten erstellen zur Verfügung stehen.

Variablen

Jeder Graph oder Untergraph kann durch eine Liste von Variablen und Hilfsfunktionen erweitert werden. Variablen können z.B. das Ergebnis einer Datenbankabfrage oder die Eingabe eines Benutzers speichern. An jedem Knoten des Graphen kann dann auf den aktuellen Inhalt der Variablen zugegriffen werden, z.B. um dynamische Ausgaben an den Benutzer zur Laufzeit zu generieren. Jede Variable hat einen Namen, einen Typ und optional einen Startwert. Innerhalb eines Dialogmodells muss jeder Variablenname eindeutig sein. Die Liste der Variablen bearbeiten Sie mit Hilfe des Menübefehls Variablen im Menü Graph.

Liste der Variablen

DialogOS bietet eine Reihe von eingebauten Funktionen, um komplexe Ausdrücke zur Laufzeit des Dialogs zu berechnen. Darüber hinaus können Sie über den Befehl Funktionen im Menü Graph eigene Hilfsfunktionen definieren.

Eine detaillierte Beschreibung der Datentypen und der Syntax von Ausdrücken und Funktionen finden Sie im Kapitel Funktionen und Skripte.

Grammatiken

An jedem Knoten des Dialogmodells, in dem eine Spracheingabe erwartet wird, muss vordefiniert werden, welche Äußerungen möglich sind. Eine Menge formaler Regeln, die diese Äußerungen beschreiben, nennt man auch Grammatik. Das Verwalten von allen Grammatiken des Dialogmodells ist über den Menüpunkt Grammatiken im Menü Graph möglich.

Grammatiken werden auf der Handbuchseite Grammatiken genauer beschrieben.

Einstellungen

Dialog

Unter dem Menü Dialog finden Sie verschiedene Einstellungsmöglichkeiten zum Dialogmodell. Neben den zusätzlichen Features "Geräte" und "Native Code" sind dies Optionen zu den eingebauten Modulen Lego Mindstorms NXT, Spracherkennung und Sprachausgabe. In den Menüpunkten Spracherkennung und Sprachausgabe haben Sie jeweils die Möglichkeit, die Standardsprache bzw. Standardstimme für Ihr Dialogmodell auszuwählen.

Knoten

Das Menü Knoten bietet die Möglichkeit, verschiedene Funktionen auf einen oder mehrere Knoten auszuführen: Über das Untermenü Farbe können Sie eine Auswahl von Knoten gleichzeitig nach Ihren Wünschen einfärben. Der Menübefehl Ausrichtung gibt Ihnen die Möglichkeit, alle ausgewählten Knoten an einer vertikalen oder horizontalen Linie auszurichten.

Sie können außerdem mehrere Knoten über den Menübefehl Gruppieren zu einer Auswahl zusammenfassen. Das Gruppieren hat den Effekt, dass das Auswählen eines Knotens künftig zur Auswahl der ganzen Gruppe führt. Über den Menübefehl Gruppieren aufheben können Sie eine solche Zusammenfassung wieder rückgängig machen. Neben dem Gruppieren gibt es auch die Möglichkeit, Knoten als Untergraph zusammenzufassen. Wählen Sie dazu die betroffenen Knoten aus und rufen Sie den Befehl Knoten zusammenfassen auf.

Des Weiteren erlaubt Ihnen der Menübefehl Suchen die Suchen nach einem oder mehreren Knoten anhand des Typs, Namens oder der Verwendung einer bestimmten Variable.

Wenn Sie möchten, dass der Debugger an einem ausgewählten Knoten pausiert, so können Sie dies über die Menüpunkte "Breakpoint setzen" beziehungsweise "Breakpoint löschen" regeln.

Nächste Seite: Schnellstart

⚠️ **GitHub.com Fallback** ⚠️