Fakultät für Wirtschaftswissenschaften an der Hochschule Wismar

Transcrição

Fakultät für Wirtschaftswissenschaften an der Hochschule Wismar
Hochschule Wismar
Fakultät für Wirtschaftswissenschaften
Bachelor-Thesis
Umsetzung eines Dialogmanagementmoduls für multimodale Interaktionen
Bachelor-Thesis zur Erlangung des Grades
Bachelor of Science (BSc.)
der Hochschule Wismar
eingereicht von:
Annemarie Ulbricht
geboren am 06. Juli 1989 in Neuruppin
Studiengang Wirtschaftsinformatik
Matrikel Nr. : 111504
Betreuer:
Prof. Dr. J. Cleve
H. Fiedler
Wismar, den 28. Juli 2011
Zusammenfassung
Die Technik erlebt einen rasanten Fortschritt, ob im Haushalt, der Mobil- oder Kommunikationsbranche. Handys und Navigationsgeräte sind keine Einzelfälle im Boom des technologischen
Fortschritts. Beiden ist gemeinsam, dass sie über eine grasche Oberäche gesteuert werden
können, häug auch nur über diesen Weg. Dabei würden zusätzliche Modalitäten den Komfort
und die Benutzerfreundlichkeit sichtlich erhöhen.
Ein Anwendungsgebiet für eine verbesserte Kommunikation könnte die eigene Wohnung oder
das Eigenheim sein, welches durch Sprache und grascher Oberäche eine Bedienung aller
technischen Geräte ermöglicht. Diese wäre vor allem für Senioren und Personen mit Handicap
eine groÿe Erleichterung.
Für die Steuerung der Eingaben ist ein Dialogsystem notwendig, dessen Kern ein Dialogmanager darstellt.
Die vorliegende Arbeit beschäftigt sich genau mit diesem Sachverhalt, nämlich der Umsetzung eines Dialogmanagers für multimodale Interaktionen, also den Gesprächen zwischen
Mensch und Computer über mehrere Kommunikationskanäle. Als Modalitäten wird einerseits
ein Chatfenster und andererseits ein Bedienfenster verwendet. Das Chatfenster funktioniert wie ein Chat aus dem Internet, nur zwischen dem Benutzer und Computer. Das Bedienfenster ermöglicht dem Anwender das gezielte Bedienen eines Gerätes über eine grasche
Oberäche. Über die Modalitäten werden diverse virtuelle Geräte und ein reales Fernsehgerät
gesteuert. Des Weiteren sorgt ein Ausgabefenster für die visuelle Darstellung der Geräte und
ihres Zustands.
Abstract
The engineering progress is growing rapidly whether in the section of household, automobile or
communication. That goes along with mobile phones and devices for navigation. Controlling is
based on graphic surfaces as is mostly the case. Unfortunately, inputs often are only possible
about this kind of way. Thereby additional input units will increase the accommodation and
usability.
A possible area of application could be the home or at which enables the control of all devices
via speech and a graphic interface. That could be a big relief for seniors and handicapped
persons.
The dialogsystem is necessary for the control of inputs. The core of the system calls dialogmanager. This work deals with the implementation of a dialog management module for
multimodal interactions, which are conversations between humans and computers about several communication ways. The used modalities are a Chatfenster and Bedienfenster. The
rst one acts like the well-known chat conversation of the internet. The only dierence is the
communcation between user and computer. It depends on human language. The other modality enables the user for a direct control of one unit. Both modalities allow a regulation
of many virtual devices and a real television receiver. Furthermore, a window, which calls
Ausgabefenster, shows the virtual house including all units and their condition.
Ehrenwörtliche Erklärung
Ich erkläre hiermit ehrenwörtlich, dass ich die vorliegende Arbeit selbstständig angefertigt habe. Die aus fremden Quellen direkt oder indirekt übernommenen Gedanken sind als solche
kenntlich gemacht. Es wurden keine anderen als die angegebenen Quellen und Hinweise verwendet.
Die vorliegende Arbeit wurde bisher keiner anderen Prüfungsbehörde vorgelegt und auch noch
nicht veröentlicht.
Ort, Datum
Unterschrift
Inhaltsverzeichnis
Abbildungsverzeichnis
5
Tabellenverzeichnis
6
Abkürzungsverzeichnis
7
1 Einleitung
8
2 Grundlagen
2.1
10
Automatentheorie
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
2.1.1
Endliche Automaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
2.1.2
Kellerautomaten
12
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2
Multimodale Kommunikation
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
2.3
Dialogsysteme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
2.4
Beschreibungssprachen im Vergleich
. . . . . . . . . . . . . . . . . . . . . . . .
17
2.4.1
VoiceXML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
2.4.2
CCXML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
2.4.3
SALT
18
2.4.4
UsiXML
2.4.5
UIML
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
2.4.6
SCXML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
2.4.7
Bewertung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
3 Anforderungsanalyse
3.1
Ausgangssituation
3.2
Zielsetzung
3.3
21
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
Abgrenzung der Aufgabenstellung . . . . . . . . . . . . . . . . . . . . . . . . . .
23
4 Konzept
24
4.1
Aufbau
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
4.2
Ablauf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
5 Implementierung
5.1
5.2
Umsetzung
30
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
5.1.1
Zustandsautomaten
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
5.1.2
Modalitäten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
5.1.3
Programmumgebung . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
5.1.4
Prototyp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
Diskussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
INHALTSVERZEICHNIS
6 Zusammenfassung und Ausblick
44
4
Abbildungsverzeichnis
1
Systematischer Aufbau eines endlichen Zustandsautomaten
L(p) =
an bm |n, m
> 0}
. . . . . . . . . . .
10
2
DFA, welcher die Sprache
akzeptiert . . . . . . . . . . .
11
3
Kellerautomat, welcher gleich viele a's und b's akzeptiert . . . . . . . . . . . . .
13
4
Multimedialität und Interaktivität [Her06, S. 13]
14
5
Kommunikationsmodell von Shannon/Weaver[Cha]
6
Aufbau des Basisprogramms [Ulb11]
7
Komponentenübersicht vom Programm
8
Komponentenübersicht des Dialogmanagers
9
Sequenzdiagramm - Benutzereingabe (unvollständiger Auftrag)
10
Dialogmanager - vereinfachter Zustandsautomat
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
14
. . . . . . . . . . . . . . . . . . . . . . . .
21
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
24
25
. . . . . . . . .
29
. . . . . . . . . . . . . . . . .
31
11
Dialogorientierter Zustandsautomat für ein TV-Gerät . . . . . . . . . . . . . . .
33
12
Bedienfenster
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
13
Ablauf des Programms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
38
14
Denition des Structs DataFormat
39
. . . . . . . . . . . . . . . . . . . . . . . .
Tabellenverzeichnis
1
Übersicht über die 8 goldenen Regeln von Shneiderman [Dah06, S. 151] . . . . .
15
2
Tools, welche UsiXML unterstützen . . . . . . . . . . . . . . . . . . . . . . . . .
18
3
Unterstützung einiger Browser beim Anzeigen von SVG-Dateien . . . . . . . . .
36
4
Unterstützung einiger Rendering Engines beim Anzeigen von SVG-Dateien . . .
37
5
Maÿnahmen zur Berücksichtigung der Regeln von Shneiderman
43
. . . . . . . . .
Abkürzungsverzeichnis
ASR
Automatic Speech Recognition
CCXML
Call Control eXtensible Markup Language
DFA
Deterministic Finite Automaton
DTMF
Dual-Tone Multi-Frequency
GUI
Graphical User Interface
NFA
Nondeterministic Finite Automaton
SALT
Speech Application Language Tag
SCXML
State Chart XML
SVG
Scalable Vector Graphics
UI
User Interface
UIML
User Interface Markup Language
UsiXML
USer Interface eXtensible Markup Language
VoiceXML
Voice eXtensible Markup Language
W3C
World Wide Web Consortium
X3D
eXtensible 3D
XML
eXtensible Markup Language
1 EINLEITUNG
1
Einleitung
Mehr als die Hälfte aller Unfallverletzungen sind dem Bereich Haushalt und Freizeit anzurechnen. Dabei sind 80% der Unfälle auf menschliches Fehlverhalten zurückzuführen.
Besonders betroen sind Kinder und Senioren. Mehr als 10.000 Personen über 60 Jahren
sterben jedes Jahr in Deutschland infolge von Haus- und Freizeitunfällen. Bei Männern
sind rund 63% und bei Frauen rund 79% dieser Sterbefälle auf Stürze als Unfallursache
zurückzuführen. [Ges]
Aber auch andere Unfallgefahren sollten berücksichtigt und vermieden werden. Die Gesundheitsberichterstattung des Bundes schlägt daher drei wichtige Punkte zur Vermeidung von
Unfällen vor:
•
technisch sichere Gestaltung
•
gesetzliche Regelungen
•
erzieherische Einuÿnahme [Ges]
Ein interessanter und zugleich wichtiger Aspekt ist sicher die Technik und ihre Entwicklung.
In den letzten Jahren wurde viel getan um Unfälle basierend auf Technik zu vermeiden. Dazu
gehört beispielsweise das Verbieten von Handytelefonaten am Ohr während des Autofahrens.
Auch Navigationsgeräte helfen Unfälle zu vermeiden. Ein System ermöglicht das Errechnen
einer Strecke und gibt diese dann per Sprachausgabe an den Fahrer weiter. Das erspart das
lange Suchen auf der Karte und ermöglicht dem Fahrer sich konzentriert der Straÿe zu widmen. In der Automobilbranche wird viel zur Unfallvermeidung und Reduzierung von tödlichen
Unfällen unternommen.
Dabei sollte der häugste Unfallbereich nicht vergessen werden: der Haushalt. Wie die Statistiken beweisen, passieren etwa 1/3 der Unfälle im Haushalt. Daher sollte auch hier die Technik
zur Unfallvermeidung genutzt werden. Eine Möglichkeit wäre die Erschaung eines intelligenten Hauses, eines Smart Home. Ausgestattet mit Sensoren bedient es Geräte und hilft so
Unfälle zu vermeiden. Ein weiterer positiver Eekt ist die Reduzierung des Energieverbrauchs
und somit die Einsparung von Kosten. Eektiver wird das Smart Home, wenn die Geräte
nicht nur über eine grasche Bedienoberäche, sondern auch multimodal, also über Sprache
oder Mimik und Gestik, gesteuert werden können. So könnte beispielsweise die Forderung mache die Lampe im Flur an den nächtlichen Weg zur Toilette unfallfrei gestalten, weil eventuell
herumliegende Gegenstände am Boden leicht erkannt werden. Ein Abtasten der Wand, um den
Schalter zu suchen, ist überüssig.
Auch wenn es schon einige Systeme gibt, welche sich mit multimodaler Kommunikation beschäftigen, so ist das Forschungsgebiet längst noch nicht vollends ergründet.
8
1 EINLEITUNG
Diese Arbeit beschäftigt sich mit der Kommunikation zwischen Mensch und Computer. Genauer gesagt wird ein Dialogsystem erstellt, welches die multimodale Interaktion leiten soll. Der
Kern des Dialogsystems, der Dialogmanager, soll dafür Eingaben aus zwei Kommunikationskanälen aufnehmen und verarbeiten. Dies ist einerseits ein Chatfenster und andererseits ein
Bedienfenster. Das Chatfenster ist eine auf Sprache basierende Ein- und Ausgabemöglichkeit.
Dabei wird die Sprache in Form einer oder mehrerer Wörter an das System übermittelt. Ein
sogenanntes Bedienfenster hat nichts mit dem Internet zu tun, sondern ermöglicht dem Anwender Eingaben über eine grasche Oberäche. Dabei kann unter Zuhilfenahme eines Menüs
ein Gerät ausgewählt und eine Aktion in Auftrag gegeben werden. Ferner schat ein Ausgabefenster im virtuell verwalteten Haus eine bessere Benutzerfreundlichkeit durch grasche
Anzeige des jeweils aktuellen Zustands der Geräte im Haus.
Zu Beginn dieser Arbeit werden einige Grundlagen bzgl. der Erstellung eines Dialogmanagers
(Kapitel 2) erläutert. Anschlieÿend folgt eine Anforderungsanalyse (Kapitel 3) und die Darstellung des verwendeten Konzepts (Kapitel 4). Im Kapitel 5 werden die Gedanken bei der
Implementierung eines Prototyps im Vordergrund stehen, welche durch eine Zusammenfassung
mit integriertem Ausblick im 6. Kapitel abgerundet werden.
9
2 GRUNDLAGEN
2
Grundlagen
Im Folgenden wird das Basiswissen zur Erstellung eines Dialogmanagers kurz erläutert. Dies
beinhaltet Grundlagen zur Automatentheorie, eine Erklärung des Begries multimodale Kommunikation, Anmerkungen zu Dialogsystemen sowie eine Bewertung einiger Dialogbeschreibungssprachen.
2.1
Automatentheorie
Der zu erstellende Dialogmanager soll auf dem Konzept der Zustandsautomaten basieren.
Mehrere Automaten kommen dafür in Betracht. Im Folgenden werden die beiden für dieses Projekt am aussichtsreichsten Varianten vorgestellt, nach einer kurzen Einführung in das
Themengebiet der Automatentheorie.
Die Automatentheorie hat die Aufgabe, mit Hilfe abstrakter Automatenkonzepte die verschiedenen Verarbeitungstechniken von mechanischen oder elektronischen Geräten systematisch zu
erfassen. [Hed07, S.53]
In diesem Zusammenhang heiÿt das, dass ein Automat den Dialoguss zwischen Mensch und
Maschine steuern soll. Der Dialoguss ist eine Sequenz von Objekten. Dabei legen die jeweiligen
Objekte, ihre Parameter und die Reihenfolge, in der sie zusammengesetzt sind, den Weg fest,
dem ein Benutzer während seines Auftrags folgt. [Voi]
Bei den nachfolgend vorgestellten Automaten wird jedes Zeichen in einer Zeichenkette einmal
eingelesen. Anschlieÿend wird die Position des Lesekopfes um eins erhöht bis das Ende des
Eingabebandes erreicht ist.
2.1.1 Endliche Automaten
Endliche Automaten sind durch Zustände, Zustandsübergänge, einem Anfangs- und mindestens einem Endzustand gekennzeichnet. Die Abbildung 1 verdeutlicht den systematischen
Aufbau eines Zustandsautomaten. Man unterscheidet zwischen deterministischen (DFA) und
Abbildung 1: Systematischer Aufbau eines endlichen Zustandsautomaten
nichtdeterministischen endlichen Automaten (NFA). Der Unterschied liegt darin, dass bei letzterem der Zustandsübergang nicht eindeutig deniert sein muss. Ausgehend von einem kon-
10
2 GRUNDLAGEN
kreten Zustand können über ein Ereignis mehrere Folgezustände erreicht werden.[Hed07, S.
60 ] Dieses Konzept ist eine Erweiterung des deterministischen Automaten, da jede Überführungsfunktion auch eine Überführungsrelation ist. Beide Varianten der endlichen Automaten
können wie gefolgt deniert werden:
Ein endlicher Automat ist ein 5-tupel M = (Z, V,
d, qM
,F) mit
1. Z, V sind endliche nichtleere, disjunkte Mengen. Z heiÿt Zustandsmenge, V heiÿt das Eingabealphabet.
2.
d : ZxV → Z , d
d ⊆ ZxV xZ
3.
qM ∈ Z ,
4.
F ⊆ Z,
heiÿt Überführungsfunktion (bei deterministischen Automaten).
heiÿt Überführungsrelation (bei nichtdeterministischen Automaten).
qM heiÿt der Anfangszustand.
F heiÿt Menge der Endzustände. [Hed07, S. 57, 63]
Zustandsdiagramme (Übergangsdiagramme) ermöglichen die Darstellung von endlichen Automaten. Dabei werden Zustände durch Kreise, Zustandsübergänge durch Pfeile und Finalzustände durch einen Kreis mit doppelter Umrandung dargestellt. Für Anfangszustände, auch
Initialzustände genannt, gibt es verschiedene Varianten zur graschen Darstellung. Diese reichen von einer farblichen Hervorhebung des Kreises bis hin zur zusätzlichen Kennzeichnung
mit Pfeilen oder dem Wort Start.
Ein einfaches Beispiel soll den Aufbau eines deterministischen Zustandsautomaten näher bringen. Dabei wird eine Zeichenkette akzeptiert, welche mind. ein a und nachfolgend mind.
ein b beinhaltet. Die Spezikation des Zustandsautomaten kann wie folgt dargestellt werden:
M = ({q0 , q1 , q2 }, {a, b}, {(q0 , a) → q1 , (q1 , a) → q1 , (q1 , b) → q2 , (q2 , b) → q2 }, q0 , {q2 }).
Die Zustandsmenge Z besteht aus drei Zuständen:
q0 , q1
und
q2 .
Das Eingabealphabet V
besteht aus den Zeichen a und b. Nur diese Zeichen werden vom endlichen Automaten
berücksichtigt.
(q1 , a) → q1
aktuelle Zustand
q1
bedeutet hierbei, dass eine Zustandsänderung eintritt, falls der
ist und ein a eingelesen wird. Da dies eine reexive, also selbstbezogene
Beziehung ist, bleibt der aktuelle Zustand gleich, nämlich
Abbildung 2: DFA, welcher die Sprache
q1 . Der Startzustand ist q0 . Wird ein
L(p) = an bm |n, m > 0}
a von der Zeichenkette eingelesen, erfolgt gemäÿ Abbildung 2
stand
q1 .
1 ein Zustandswechsel zum Zu-
Andernfalls bleibt der Automat im aktuellen Zustand
wechselt der Zustandsautomat vom Zustand
q1
in
dem Einlesen der Zeichenkette im Finalzustand
akzeptiert
q0 .
Folgt anschlieÿend ein b
q2 . Bendet sich der Zustandsautomat nach
q2 ,
so erfüllt der String die obige Bedingung
und wird akzeptiert.
1
Erstellt mit JFLAP von Susan H. Rodger; URL: http://www.cs.duke.edu/csed/jap/
11
2 GRUNDLAGEN
Von endlichen Automaten akzeptierte Sprachen können auch durch reguläre Ausdrücke dargestellt werden. Dies ist eine strukturelle Notation zur Beschreibung der Muster, die durch
einen endlichen Automaten repräsentiert werden kann. [HMU02, S. 43]
Für das obige Beispiel würde der reguläre Ausdruck wie folgt lauten: p = a*b*. Daraus ergibt
sich die kontextfreie Sprache
2
L(p) = an bm |n, m > 0}. Die Sprache beschreibt alle Zeichenket-
ten, welche akzeptiert werden.
2.1.2 Kellerautomaten
Der Kellerautomat basiert auf den Gedanken vom DFA und NFA nur mit einer Erweiterung:
dem Stack, auch Keller genannt. Dieser kann sich die letzten Zustände merken indem er sie
in eine Liste speichert. Jedoch kann diese nur auf das letzte Element zugreifen. Die Denition
des Kellerautomaten ähnelt jener der endlichen Automaten.
Ein (nichtdeterministischer) Kellerautomat (mit Endzuständen) ist ein 7-tupel
M = (Z, V, U, δ, qM , KM , F )
mit
1. Z, V, U sind endliche, nichtleere Mengen. Z heiÿt Zustandsmenge, V heiÿt das Eingabealphabet, U heiÿt das Kelleralphabet.
2.
d
δ ⊆ Z × (V ∪ {ε}) × U × Z × U ∗, d
endlich,
d
heiÿt Überführungsrelation, die Elemente aus
heiÿen Anweisungen.
3.
qM ∈ Z , qM
4.
KM ∈ U , KM
5.
F ⊆ Z,
heiÿt der Anfangszustand.
heiÿt das Anfangskellerzeichen.
F heiÿt die Menge der Endzustände. [Hed07, S. 116]
Ein Beispiel soll auch die Funktionsweise dieses Automaten genauer erläutern.
Gesucht ist ein Kellerautomat, welcher einen String akzeptiert, der gleich viele a's und b's enthält. Jedoch müssen beide Zeichen mind. einmal vorkommen. Dargestellt kann diese Bedingung
durch folgende Sprache
L = {an bn |n ≥ 1}.
Die Abbildung 3
3 zeigt die grasche Darstellung
des Kellerautomaten in Bezug auf dieses Beispiel. Formal lassen sich die Merkmale wie nachstehend denieren:
M = ({q0 , q1 , q2 }, {a, b}, {A, B, E}, δ, q0 , E, {q2 }). Die Überführungsrelation δ
kann bestimmt werden durch die Anweisungen:
q0 aE → q1 AE , q0 bE → q1 BE , q1 aA → q1 AA, q1 aB → q1 ε, q1 bA → q1 ε, q1 bB → q1 BB ,
q1 εE → q2 ε.
Dabei ist
e
der leere String. An dieser Stelle wird dann nichts eingelesen.[Cle11,
S. 36]
Eine Anweisung setzt sich aus dem aktuellen Zustand, dem aktuellen String, dem obersten
Zeichen im Keller, dem neuen Zustand und den neuen obersten Zeichen zusammen. Die Anweisung
2
q0 aE → q1 AE
könnte man umschreiben mit den Aussagen: Wenn sich der Kellerautomat
beruht auf einer kontextfreien Grammatik, welche gilt, wenn jede Produktion die Form hat A → β , wobei
A ∈ Vn , β ∈ V + ist, mit der Ausnahme S → ε[Hed07, S. 36]
3
Mit JFLAP erstellt.
12
2 GRUNDLAGEN
Abbildung 3: Kellerautomat, welcher gleich viele a's und b's akzeptiert
im Zustand
q0
bendet, ein a vom Band eingelesen wird und das oberste Zeichen im Keller
ein E ist, dann wechsle in den Zustand
q1
und ersetze das ehemals oberste Element E durch
A und E. A steht für ein bereits eingelesenes a und wird gelöscht, wenn ein b eingelesen
wird. Das Gleiche gilt natürlich auch für das Zeichen B. Das Löschen wird durch das Zeichen
e
realisiert. Kann kein Zeichen vom Eingabealphabet mehr eingelesen werden und das
oberste Zeichen im Stack ist das E, so wird die Zeichenkette akzeptiert, da sie die Bedingung
L = {an bn |n ≥ 1}
2.2
erfüllt.
Multimodale Kommunikation
Zunächst müssen einige Begrisdenitionen vorgenommen werden. Interaktion beschreibt die
Wechselwirkung zwischen Mensch und Computer.[Her06, S. 12]
Eine Wechselwirkung basierend auf einem Dialog zwischen Mensch und Maschine wird in diesem Kontext Kommunikation genannt. Ein Dialog ist dabei der wechselseitige Austausch von
Daten oder Nachrichten zwischen Mensch und Maschine. Voraussetzung für eine Kommunikation ist die Verwendung einer übereinstimmenden Sprache und eines Übertragungskanals. Der
Begri Interaktion ist somit allgemeiner als der Begri Kommunikation.[Bei00, S. 50]
Multimedialität ist der Oberbegri für die verwendeten Medien, wie beispielsweise Text und
Videos. Modalitäten sind hingegen die Kommunikationskanäle und denieren die Art und
Weise auf der die Kommunikation über die Medien statt ndet. Den Zusammenhang zwischen
Mensch und Computer unter Berücksichtigung der Begrie Multimedialität und Interaktivität
zeigt die Abbildung 4.
Der Begri Kommunikation soll anhand des klassischen Kommunikationsmodells von Shannon/Weaver weiter ausgeführt werden. Die Abb. 5 veranschaulicht das Modell grasch. Drei
Thesen liegen diesem Modell zu Grunde. Die Erste besagt, dass es einen Sender gibt, welcher ein Signal ausgibt, basierend auf einer Informationsquelle. Des Weiteren kann das Signal
durch Störeinüsse von Aussen verändert werden und wird als letztes vom Empfänger aufgenommen. Im Rahmen der Mensch-Maschine Kommunikation sind Sender und Empfänger der
Mensch und der Computer, wobei je nach System die Zuordnung variiert. Signale werden durch
Kommunikationskanäle übertragen. Eine Störung des Signals ist auch hier bedingt möglich.
13
2 GRUNDLAGEN
Abbildung 4: Multimedialität und Interaktivität [Her06, S. 13]
Abbildung 5: Kommunikationsmodell von Shannon/Weaver[Cha]
Beispielsweise kann bei einer Spracheingabe ein Hintergrundgeräusch das Signal verändern,
sodass es fehlerhaft interpretiert werden kann. [Cha],[HS]
Mensch und Computer kommunizieren, um ein bestimmtes Ziel zu erreichen. Dafür werden
Informationen ausgetauscht.[Dah06, S. 18] Probleme bei der Kommunikation ergeben sich aus
der Inexibilität und der Beschränktheit des Computers. Abweichungen vom Programmcode
sind nicht möglich. Dies kann in einigen Fällen zu Fehlern führen, wenn der Benutzer abstrakte
Eingaben tätigt wie beispielsweise mache es doch an. Das System muss nun den gespeicherten
Kontext abrufen. Selbst dies stellt ein Problem dar, da mögliche Geräte erst geltert werden
müssen. Zur erfolgreichen Interaktion muss der Computer die Initiative ergreifen können und
ein eventuelles Missverständnis klären. Möglich ist dieses unter anderem mit systemgesteuerten
Dialogen (siehe Kapitel 2.3.), welche im folgenden Kapitel vorgestellt werden.
Generell kann ein Missverständnis auf zwei Arten gelöst werden: dem Diskurs und dem Disputio. Beim Diskurs tritt ein Missverständnis auf und kann durch Rückfragen gelöst werden. Die
Vermeidung von Problemen wird mit dem Begri Disputio dargestellt und sollte für MultiModale-Interaktionen Anwendung nden, da die Beseitigung des Missverständnisses meistens
sehr umfangreich ist. Eine Paraphrasierung, also Wiederholung der bisherigen Informationen,
soll Missverständnisse früh erkennbar machen. Dazu gehört auch eine Akzeptierung der bisherigen Informationen durch den anderen Kommunikationspartner.[Dah06, S. 121]
Eine Berücksichtigung aller Regeln zur Dialoggestaltung ist schwierig, sodass Shneidermans
Gedanken zu diesem Thema Verwendung nden.
14
2 GRUNDLAGEN
Ben Shneiderman stellte 8 goldene Regeln auf, welche bei der Umsetzung einer Benutzungsschnittstelle berücksichtigt werden sollten. Die Tabelle 1 gibt einen Überblick über die Inhalte
seiner Regeln.
Regel
Erklärung
1 Konsistenz
Ziel ist die einheitliche Gestaltung und Verwendung von allen
Bestandteilen (Aussehen, Wortwahl, Schnittstelle)
2 Berücksichtige
Erfahrene und Anfänger: jeder sollte passende Interaktionsform
unterschiedliche
bekommen
Erfahrungen
3 Rückmeldungen auf
Rückmeldung, dass Eingabe erkannt bzw. verarbeitet wurde;
Aktionen des Benutzers
Fehlerausgaben als besondere Rückmeldung
4 Abgeschlossene
Mitteilen von zusammenhängenden Operationen; Darstellung
Operationen
einzelner Schritte im Zusammenhang der vollständigen
Operation
5 Fehler verhindern
Konstruktive Fehlermeldung, sonst Fehlervermeidung durch
Blockieren nicht möglicher Aktionen und Anbieten von
Alternativen, schnelle Fehlerbehebung
6 Einfache
Ausprobieren des Nutzers ohne Bedenken, wenn UNDO und
Rücksetzmöglichkeiten
REDO oder mehrstuges Rücksetzen; Fehlermeldung wenn
Rücksetzen nicht möglich ist
7 Benutzerbestimmte
Benutzer soll Anwendung kontrollieren, keine Verwendung
Eingaben
starrer Sequenzen, Unterstützung beim Abbrechen von Aktionen,
übersichtliche Darstellung von Informationen und Aktionen
8 Geringe Belastung
Geringe Anzahl von Informationen an Nutzer ausgeben
des
Kurzzeitgedächtnisses
Tabelle 1: Übersicht über die 8 goldenen Regeln von Shneiderman [Dah06, S. 151]
2.3
Dialogsysteme
Dialogsystem heiÿt eine Form der Mensch-Maschine-Kommunikation, bei der über ein dialogfähiges Terminal ein Mensch in den Dialog mit einem Computersystem eintritt. [MH]
Den Kern eines Dialogsystems stellt der Dialogmanager dar. Er speichert den bisherigen Dialogverlauf, fragt Daten ab und erzeugt davon ausgehend die beste Antwort abhängig von der
verwendeten Methode. [Rina]
Das Ziel eines Dialoges kann verschieden sein. Zum Beispiel kann eine Informationsausgabe
(Erwerb von Wissen) das Ziel sein oder die Ausführung eines Auftrages wie beispielsweise
der Kauf von Zugfahrkarten. Häug sind diese Ziele auch miteinander verknüpft, wobei allen
gemein ist, dass eine Übereinstimmung zwischen Benutzer und System dem zur erfolgreichen
Verarbeitung vorausgehen muss.[Rina]
15
2 GRUNDLAGEN
Im Folgenden werden die Arten von Dialogsystemen erläutert.
Finite-State-basierte Dialogsysteme (endliche Automaten) richten sich nach dem Konzept von
endlichen Zustandsautomaten, indem der Nutzer einem vordenierten Weg folgt. An Verzweigungspunkten wird durch Nutzereingaben in Form von Systemfragen oder -ausgaben der neue
Pfad bestimmt. Der Vorteil dieser Variante ist die einfache und übersichtliche Modellierung.
Häug ist es möglich, mit einem Tool Zustandsautomaten grasch zu modellieren. Ebenfalls
kann der vollständige Informationsaustausch vorher modelliert werden. Aber genau in diesem
Vorteil liegt auch der Nachteil. Pfadabweichungen können nicht modelliert werden. Ebenfalls
kann eine Darstellung bei vielen Zuständen schnell unübersichtlich werden (Zustandsexplosion). Hierarchien, also Zusammenfassungen von Zuständen, können die negativen Auswirkungen reduzieren. Da viele Dialogsysteme einfache, zustandsabhängige Systeme sind, wird
diese Variante dennoch in den meisten kommerziellen Systemen auf Grund der Einfachheit
genutzt.[Rinb],[Pre99, S. 290]
Bei
framebasierten Dialogsystemen (framebasierte Slot-Filling-Systeme) wird ein Formular der
Reihe nach ausgefüllt. Dabei ist der Dialog am Muster orientiert, mit dem Ziel, diesen auszufüllen. Dabei müssen die Eingaben nicht in einer bestimmten Reihenfolge getätigt werden.
Das framebasierte Dialogsystem besteht aus einem Frame, welcher bereits getätigte Informationseingaben speichert, sowie eine Grammatik um die Eingaben in die entsprechenden Teile
der Formulare einzubinden und die nächsten Aktionen fest zu legen. Ein Anwendungsbeispiel hierfür ist VoiceXml. Der Vorteil liegt in der höheren Flexibilität gegenüber den nitestate-basierten Dialogsystemen und in der möglichen mixed-initiativen Dialogführung, wie
im weiteren Verlauf erläutert. Der Aufwand ist jedoch höher, als in der davor beschriebenen
Variante.[Rinb]
Bei
agentenbasierten Dialogsystemen wird mittels Expertensystemen und KI-Methoden ver-
sucht ein natürliches Gespräch zu führen. Die Implementierung ist sehr komplex und ndet
bisher nur an akademischen Einrichtungen Anwendung.[Rinb]
Dialogsysteme sollen auf Benutzeranforderungen eingehen. Dabei sind meistens zusätzliche Informationen notwendig um die Anfrage erfolgreich beantworten zu können. Zusätzliche Informationen können durch den bisherigen Dialog, Alltagswissen, Spezialwissen, den Erfahrungen
des Nutzers gesammelt werden.[Rinb] Eine Analyse des Dialogusses liefert hierfür wichtige
Informationen.
Dem Dialoguss können folgende drei Varianten zu Grunde liegen:
Bei einem systemgesteuerten Dialoguss behält der Computer die ganze Zeit die Initiative.
Er steuert den Dialog und erwartet vom Benutzer bestimmte Angaben, die seinen Vorgaben
entsprechen. Die zweite Möglichkeit besteht in der benutzergesteuerten Anwendung, wobei
der Nutzer die Initiative ergreift und der Computer nur auf seine Eingaben reagiert. Bei der
dritten Variante kann ein Dialoguss auch von beiden bisherigen Systemen gesteuert werden, ist also eine Mixvariante, wobei die Initiative ständig wechselt. Der Benutzer kann dabei
16
2 GRUNDLAGEN
die Dialogrichtung durch seine Eingabe ändern. Das System reagiert darauf und versucht die
ursprünglich Dialogrichtung wiederherzustellen. Diese Variante ndet heutzutage bei Dialogsystemen am häugsten Verwendung. [Rina]
2.4
Beschreibungssprachen im Vergleich
Für die diversen Modalitäten wird eine zustandsorientierte Beschreibungssprache benötigt.
Problematisch ist dabei, dass es viele Modalitäten gibt. So ist eine Beschreibungssprache für
sprachliche Dialoge anders deniert als für grasche. Im Weiteren werden nun einige der gängigsten Standardbeschreibungssprachen kurz erläutert und anschlieÿend bewertet. Viele beruhen auf XML, weshalb eine kurze Einordnung des Begries erfolgt.
XML steht für Extensible Markup Language (erweiterbare Auszeichnungssprache) und gilt
als Standard um Sprachen in einem bestimmten Format zu erzeugen. [UIM] Tatsächlich wird
er bei sehr vielen Beschreibungssprachen verwendet, wie die nachfolgenden Beispiele belegen.
2.4.1 VoiceXML
Seit 2000 gehört VoiceXML (Voice Extensible Markup Language) zu den Standardbeschreibungssprachen und gilt heute als eine der verbreitetsten Beschreibungssprachen zur Erstellung
von sprachlichen Dialogen. Das Ziel von VoiceXML ist es, die Vorteile von web basierenden
Entwicklungen zu interaktiven sprachgesteuerten Applikationen weiter zu entwickeln. [McG]
Als VoiceXML-Applikation bezeichnet man den gesamten Sprachdialog, welcher aus mind. einem VoiceXML-Dokument besteht. Die Dokumente können in einer beliebigen Reihenfolge ausgeführt werden. Dabei bildet ein VoiceXML-Dokument das Wurzeldokument (Root-Dokument,
Master). Andere Dokumente können in diesem aufgerufen und auf dieses referenziert werden.
Eine wichtige Komponente ist der Voice-Browser. Er führt Anwendungen aus und kann über
ein Voice-Gateway, mittels eines Telefonanrufs, erreicht werden. Eine Eingabe kann mittels
4 Tastenerkennung erfolgen. Die Ausgabe
automatischer Spracherkennung (ASR) bzw. DTMFwird mittels Text-to-Speech
5 bzw. Audiodateien erzeugt. [Gla]
2.4.2 CCXML
6 entwickelt und stellt eine eigene Beschreibungssprache dar.
Auch CCXML wurde vom W3C
Entwickelt wurde sie als Ergänzung zum VoiceXML-Interpreter. Die Abkürzung CCXML steht
für Call Control eXtensible Markup Language, was soviel wie erweiterbare Auszeichnungssprache zur Anrufsteuerung bedeutet. Ziel der Entwicklung von CCXML war die Unterstützung der Anrufsteuerung von Dialogsystemen durch erweiterte Telefonie-Funktionen. Eine
Anwendung besteht aus mehreren CCXML Dokumenten, welche u. a. für die Steuerung und
Kontrolle von Dialogen und Verbindungen verwendet werden. CCXML wird dabei von Events
gesteuert.[Aub]
4
DTMF steht für dual-tone multi-frequency, was übersetzt Doppeltonmehrfrequenz bedeutet und ist ein
Verfahren zum Übermitteln der gedrückten Tasten eines Telefons an das Telefonsystem.
5
TTS gibt künstlich erstellte Texte aus.
6
Das World Wide Web Consortium ist ein Gremium welches Standards fürs Internet bestimmt; URL:
http://www.w3.org/
17
2 GRUNDLAGEN
2.4.3 SALT
Die Abkürzung SALT steht für Speech Application Language Tag und basiert auf dem Speech
Application Interface (SAPI) von Microsoft. SALT ist ein vorgeschlagener Standard, welcher
Sprachschnittstellen implementiert. Er ist objekt-orientiert und eventgesteuert. Dies beinhaltet
das Verstehen von Spracheingaben, Erzeugen von Sprachausgaben sowie das Kommunizieren
mit anderen Komponenten der Plattform. All dies wird durch eine Software ermöglicht. Der
Vorteil dieser Sprache ist, dass sie unabhängig von einer Programmiersprache ist und leicht
in HTML- und XML-Dokumenten eingebunden werden kann. SALT wurde so konzipiert, dass
komplexe Probleme durch das Lösen von Unterproblemen gelöst werden können. Diese Unterprobleme sind weniger komplex und somit einfacher zu lösen, als das alleinige Hauptproblem.
Anwendung ndet dieses Verfahren häug im Internet, wo ein komplexer Vorgang aufgeteilt
und anschlieÿend durch weniger komplexe Vorgänge auf verschiedenen Seiten dargestellt wird.
Ein Unterproblem wird hier jeweils durch eine Seite dargestellt. Der Nachteil ist, dass es derzeit
noch Probleme bei der Sprachausgabe gibt.[Wan02]
2.4.4 UsiXML
UsiXML steht für USer Interface eXtensible Markup Language und ist eine auf XML basierende Sprache um UI (Benutzerschnittstellen) für mehrere Anwendungen zu beschreiben.
Dazu gehören Character User Interfaces (CUIs), Graphical User Interfaces (GUIs), Auditory User Interfaces und Multimodal User Interfaces. Die Benutzung durch verschiedene
Modalitäten, Kommunikationstechniken und Plattformen wird durch die deklarative Sprache UIDL (User interface Description Language) errreicht, wobei eine Trennung des Design
zu anderen physikalischen Komponenten erfolgt. Auÿerdem werden Anwendungselemente wie
Geräte, Modalitäten und Bedienelemente auf einer hohen Ebene abstrahiert. Ein Vorteil in der
Benutzung von UsiXML ist die Unterstützung von Toolkits. Dabei können erstellte UsiXMLAnwendungen in UsiXML-kompatiblen Toolkits bearbeitet werden.
Nachteilig ist, dass UsiXML bei seiner Ausführung und Erstellung abhängig von Engines von
Dritt-Anbietern ist. Dabei wird UsiXML von einer groÿen Anzahl von Tools unterstützt, wie
die nachfolgende Tabelle 2 verdeutlicht.[Sta]
Bereiche
Beispiele
Editor
GraXML, VisiXML, PlastiXML
Generator
UsiXML4ALL(RenderXML), KnowiXML
Interpreter
HaptiXML, QtkiXML
Andere
MultimodaliXML, FlowiXML
Modell Managers
MethodiXML, UsiXML metamodelling
Tabelle 2: Tools, welche UsiXML unterstützen
18
2 GRUNDLAGEN
2.4.5 UIML
Die Abkürzung UIML steht für User Interface Markup Language. UIML ist eine deklarative,
auf XML-basierende Sprache um Benutzerschnittstellen zu beschreiben. Dabei wird lediglich
ein Dokument für eine Geräteklasse entwickelt. UIML bestimmt den Ort, die Gestaltung und
eventgesteuerte Aktionen von Elementen wie Listen und Menüs. Die Ereignisse werden vom
Benutzer ausgelöst, z. B. durch einen Mausklick. Im Dezember 1997 wurde die erste Version
publiziert. Die aktuelle Version 3.1 (Working Draft) steht seit März 2004 zur Verfügung. UIML
ergänzt andere Standards wie VoiceXML. Dabei gibt UIML eine einheitliche Weise zur Implementierung vor, sodass jede Sprache UIML verwenden kann. Dabei ist vorgesehen ein Dokument in einer Sprache zu schreiben und es anschlieÿend mittels eines Tools in UML zu transformieren. Dieses kann dann in anderen Sprachen abgebildet werden. UIML ist u. a. unabhängig
von Oberächen, Zielplattformen (Endgeräte) und Zielsprachen wie VoiceXML. Vocabularys
können von jedem Benutzer unterschiedlich deniert werden. Diese legen dann die Klassen und
7 ermöglichen eine multimodale Benutzerschnittstelle.[Sta]
ihre Eigenschaften fest. Templates
2.4.6 SCXML
State Chart XML (SCXML) stellt eine ereignisgesteuerte, abstrakte Sprache für Zustandsau-
8
tomaten dar. Ziel ist die Verbindung von CCXML und Harel State Tables . CCXML verfügt
über eine Syntax für Zustandsautomaten und Ereignissteuerung und bietet einige bereits denierte Steuerungselemente. SCXML verbindet nun Harels Idee mit einer Darstellung durch
eine XML-Struktur und erweitert die Notation von CCXML.[Bar]
SCXML wurde mittels UML (Unied Modeling Language) erstellt. Das Konzept von UML
umfasst mehrere Diagramme. Unter der Gruppe der Verhaltenszustände ist das Konzept der
Zustandsautomaten (State Machines) zu nden. Damit können ebenfalls endliche Zustandsautomaten modelliert werden.[Obj10]
Ein SCXML-Dokument beginnt mit einem root element, auch Wurzelelement genannt. In
diesem werden Informationen wie die ID des Startzustandes, der Namespace und die Version
gespeichert. Ein Zustand wird deniert durch eine ID, einem eindeutigen String. Zusätzlich
sind Informationen denierbar, welche z. B. Informationen speichern, die beim Eintreten des
Zustands ausgeführt werden sollen. Übergänge benötigen einen Namen und optional ein Ziel.
Ist kein Ziel angegeben, so ist dies ein reexiver Übergang, bei dem Anfangs- und Endzustand
gleich sind. Auÿerdem können Übergänge eine Bedingung enthalten. Erst wenn diese erfüllt
ist, wird eine Zustandsänderung ausgelöst. Für die Kommunikation mit der Entwicklungsumgebung sorgen Tags wie send und nalize.
Im Anhang ist ein einfaches Beispiel dargestellt, welches die Funktionsweise einer Lampe als
SCXML-Datei darstellt.1
7
Schablonen, welche für Programme erstellt werden.
Konzept von Prof. David Harel vom Weizmann Institute of Science (Israel); Buch: D. Harel and M. Politi,
Modeling Reactive Systems with Statecharts: The STATEMATE Approach, McGraw-Hill, 1998
8
19
2 GRUNDLAGEN
Es gibt drei Zustände: an, aus, nal. Der Zustand aus ist der Startzustand. Von ihm ausgehend lösen die Ereignisse an und exit jeweils Zustandsänderungen zu anderen Zuständen
aus. Die Informationen im send-Tag können ausserhalb des Zustandsautomaten verwendet
werden. Den Abschluss des Dokuments kennzeichnet das Schlieÿen des SCXML-Tags.
2.4.7 Bewertung
Von den sechs vorgestellten Beschreibungssprachen ist mehr als die Hälfte auf eine Kommunikationsform spezialisiert. Da ein wichtiger Aspekt der Arbeit die Multimodalität darstellt,
werden UIML, SALT und VoiceXML auf Grund ihrer einseitigen Ausrichtung nicht weiter
betrachtet.
CCXML berücksichtigt den sprachlichen Kommunikationskanal und stellt in Verbindung mit
VoiceXML eine gute Alternative dar. Jedoch wird besonders dieser Kommunikationskanal
unterstützt, welcher das Erweitern um andere Modalitäten erschwert. Daher wird auch diese
Sprache nicht weiter betrachtet.
Lediglich UsiXML und SCXML erfüllen die grundlegenden Anforderungen an einen, für multimodale Interaktionen geeigneten, Dialogmanager.
UsiXML wird von vielen Tools unterstützt, welche das Arbeiten mit der Beschreibungssprache
einfach gestalten können. Besondere Rücksicht ndet die Erstellung grascher Modalitäten. Da
Sprachausgaben in Zukunft auch denkbar wären und eine Erweiterung diesbezüglich einfach
erfolgen soll, wird UsiXML nicht weiter betrachtet.
Lediglich SCXML bietet eine gute Alternative, mittels Zustandsautomaten verschiedene Kommunikationskanäle einzubinden, weshalb SCXML weiter verwendet wird. Weiterere Gründe für
die Nutzung von SCXML ist das Ausgangsprojekt, welches auf SCXML basiert und die ständige Weiterentwicklung dieser Beschreibungssprache.
20
3 ANFORDERUNGSANALYSE
3
Anforderungsanalyse
Nach den theoretischen Vorüberlegungen werden nun die Anforderungen an das Programm
deniert. Dafür werden als erstes die Ausgangssituation und die Zielsetzung erläutert. Auf
dieser Basis kann anschlieÿend eine Abgrenzung der Aufgabenstellung vorgenommen werden.
3.1
Ausgangssituation
Als Grundlage dieser Arbeit stand ein prototypisches Programm basierend auf einer graschen
und einer auf Sprache basierenden Modalität. Diese wurden durch einen Interaktion Manager gesteuert, welcher die zentrale Komponente des Programms bildete. Der Dialogmanager
verwaltete die Zustandsautomaten wobei die Leitung des Dialogmanagers durch den Interaction Manager realisiert wurde. Die nachstehende Abbildung 6 verdeutlicht den grundlegenden
Aufbau und Ablauf des Programms.
Abbildung 6: Aufbau des Basisprogramms [Ulb11]
Verbesserungswürdig war die Menüstruktur der graschen Oberäche, da diese unübersichtlich
und nicht intuitiv anwendbar war. Laut Aufgabenstellung soll der Dialogmanager die Modalitäten steuern, sodass dafür eine Umstrukturierung notwendig war. Dennoch konnten einige
Komponenten weitestgehend übernommen werden, wie auch im Kapitel 4.1 erläutert wird.
Aus den Unstimmigkeiten im Prototyp des Programms ergab sich ein Teil der Zielsetzung zu
dieser Arbeit, wie nachfolgend geschildert.
21
3 ANFORDERUNGSANALYSE
3.2
Zielsetzung
Die Bachelorarbeit unterteilt sich in den Bereich des Dialogmanagers, seiner Umgebung und
den Modalitäten. Daher werden die Ziele getrennt voneinander aufgelistet.
Die Anforderungen an den Dialogmanager sind folgendermaÿen speziziert:
•
Steuerung des Dialogusses
•
Steuerung der Modalitäten
•
Ermittlung des aktuellen Status der Modalitäten
•
Setzen eines Status einer Modalität
•
Auf Wunsch Synchronisierung der Kommunikationskanäle
•
Erstellung dialogorientierter Zustandsautomaten
Die Kernanforderungen bei der Erstellung der Modalitäten sind:
•
Erstellung einer graschen Oberäche mit geeigneter Menüstruktur
•
Anforderungen an die Menüstruktur:
•
Übersichtlichkeit
Geräteauswahl nach Rubriken
Implementierung einer graschen Oberäche, welche deutsche Wörter und Texte annehmen und auswerten kann
Die Zielsetzung der Programmumgebung ist etwas gröÿer und kann so zusammengefasst werden:
•
Steuerung von virtuellen Geräte (Lampen, Jalousien) eines virtuellen Hauses durch die
Modalitäten
•
Steuerung eines realen TV-Gerätes mit serieller Schnittstelle
•
Einbindung der TV-Steuerung in das virtuelle Haus
•
Steuerung des Hauses durch die Modalitäten
•
Visuelle Darstellung des virtuellen Hauses
Ferner ergeben sich zusätzliche Aufgaben, welche eine bessere Erweiterbarkeit und Funktionalität des Programms versprechen. Dazu gehören:
22
3 ANFORDERUNGSANALYSE
•
Erzeugen von Schnittstellen
•
Gute Dokumentation des Programms
•
Umstrukturierung, aufgrund der Verwaltung der Modalitäten durch den Dialogmanager
statt durch den Interaction Manager
•
Berücksichtigung von Shneidermans 8 goldenen Regeln bei der Entwicklung des Interface Designs (Benutzerschnittstellen)
3.3
Abgrenzung der Aufgabenstellung
Auf Grund des sehr begrenzten Zeitumfangs muss eine Abgrenzung der Aufgabenstellung erfolgen. Hierzu gehört die Steuerung von Geräten jenseits der Anforderungen. Auf eine spätere
Einbindung zusätzlicher Geräte wird jedoch geachtet. Auch bei den Modalitäten müssen Einschränkungen vorgenommen werden. Auf Grund von Mehrdeutigkeiten und einer Komplexität
der Sprache können nicht alle Befehle ausgewertet werden, sodass hier Probleme auftreten können. Dazu gehört auch die Verarbeitung von Zahlen. Ebenfalls werden nur Eingaben durch die
Modalitäten Chat- und Bedienfenster berücksichtigt. Geräteänderungen können nicht ausgegeben werden. Dies spielt besonders beim realen Fernsehgerät eine Rolle. Wird beispielsweise
eine Einstellung am Gerät vorgenommen wird diese nicht in den Modalitäten angezeigt. Statt
dessen wird sie bei der nächsten Aktion berücksichtigt. Gleichfalls nden Sicherheitsaspekte
und Benutzerauthentizierung bei der Umsetzung des Programms keinerlei Beachtung.
23
4 KONZEPT
4
Konzept
Dieses Kapitel beschäftigt sich mit dem erstellten Konzept unter Berücksichtigung der eben
bestimmten Anforderungen. Dabei wird nach den Rubriken Aufbau und Ablauf unterschieden.
4.1
Aufbau
Das Programm besteht aus verschiedenen Projekten, wobei zu den Projekten mehrere Klassen gehören. Eine Unterteilung in Projekte fand statt, damit eine spätere Kapselung leichter
durchgeführt werden kann. Somit können einzelne Projekte leichter ausgetauscht werden. Dazu gehört auch die Verwendung einzelner Projekte für andere Programme. Die Abbildung 7
stellt den groben Aufbau grasch dar. Dabei sind die grün markierten Areale die Projekte,
welche aus mindestens einer Klasse bestehen, obgleich nur die wichtigsten Klassen dargestellt
sind.
Figure 7: Komponentenübersicht vom Programm
Die Richtung der Pfeile weist auf die abhängigen Klassen. Folglich steuert der Dialogmanager
die Modalitäten, wie in der Anforderungsanalyse vorgegeben wurde und wird gleichzeitig vom
Interaction Manager gesteuert. Aufrufe entgegen der Pfeilrichtung werden über Events realisiert. Sowohl der Interaction-, also auch der Dialogmanager greifen auf den Context Manager
zu. Der Context Manager speichert alle Geräte und ihren Zustand. Er fungiert wie eine Daten-
24
4 KONZEPT
bank, weshalb der Zugri auf diese Klasse aus den beiden Projekten auch notwendig ist. Die
Automation Compontent beinhaltet die Methoden um die entsprechenden Geräte zu steuern
und ihren Zustand zu ändern. Sie ist also die Schnittstelle zu den realen und virtuellen Geräten (zwischen Maschine und Maschine). Die Linguistic Component ist ein Projekt, welches
mit Hilfe der Programmiersprache Prolog die Semantik, also die Bedeutung der Sprache und
Zeichen, ermittelt. Dies wird durch die Klasse SynSemComp realisiert. Anschlieÿend wird die
semantische Repräsentation des Textes durch die Klasse SyntaxProcessing ausgewertet. Das
Projekt Linguistic Component ndet nur bei einer Texteingabe Anwendung und ist wie der
Dialogmanager und die Modalitäten ein Teil der Mensch-Maschine-Interaktion. Die Steuerung
der Auswertung der Benutzereingaben wird vom Dialogmanager vollzogen. Er verwaltet ebenso die Modalitäten und steuert den Dialoguss. Das Ausgabefenster stellt die Wohnumgebung
visuell dar und wird vom Dialogmanager gesteuert.
Da der Schwerpunkt dieser Arbeit auf dem Dialogmanager basiert, soll im weiteren Verlauf
eine genaue Betrachtung dieser Komponente erfolgen.
Die Abb. 8 gibt einen Überblick über den Aufbau des Dialogmanagers.
Abbildung 8: Komponentenübersicht des Dialogmanagers
Kern dieses Projektes ist die Klasse Dialogmanager. Sie hat Zugri auf die Klasse ModalityStorage, welche alle Informationen (z. B. Namen der Modalitäten, aktuelle und bisherige
9 mit den
Zustände) zu den Modalitäten speichert. Die SCXMLFactory erzeugt eine Engine
entsprechenden Zustandsautomaten. Dafür werden die Klassen MyDispatcher und MyErrorReporter benötigt, welche nur für die Erzeugung gebraucht werden und somit im weiteren
9
Die auf java-basierende SCXML Engine abstrahiert die Schnittstellen und führt SXML-Dokumente in
Zustandsautomaten aus. URL:http://commons.apache.org/scxml/
25
4 KONZEPT
Verlauf keine Berücksichtigung mehr nden.
Der Dialogmanager basiert auf einem Zustandsautomaten, für welchen es zwei mögliche Realisierungen gibt.
Variante 1
Die Erste könnte aus vier verschiedenen Kellerautomaten bestehen, für jede
Informationsrubrik ein Automat. Wenn eine Eingabe zu einem bestimmten Bereich getätigt
wurde, wird dieses das oberste Element des entsprechenden Kellers. So kann eine UndoFunktion einfach realisiert werden, selbst wenn andere Informationen der entsprechenden Rubrik genannt wurden. Ist ein Keller leer, so wurde bisher noch keine Information eingegeben.
Nach der Ausführung eines Auftrags werden alle Keller gelöscht. Der Nachteil besteht darin,
dass man sich separat die Reihenfolge der Eingabe der Informationsrubriken merken muss.
Diesen Nachteil hat die zweite Möglichkeit nicht.
Variante 2
Hier gibt es einen Keller, welcher alle Informationen und ihre Rubriken spei-
chert. Eine Syntax könnte wie folgt Aussehen: <Informationsrubrik>:<Information>. Nachteilig wirkt sich diese Notationvariante auf den folgenden Ablauf aus. Eine Methode müsste
nach jeder Benutzung den Stack durchlaufen und die zuerst gefundenen Informationen dem
Auftrag zuordnen. Nachfolgende brauchen nicht weiter beachtet werden, da diese zuvor schon
eingegeben wurden und somit nur zur Realisierung der Undo-Funktion gespeichert werden.
Bewertung
Die geeignete Wahl wird demnach auf Grundlage der Unterstützung der Funk-
tionen und vorhandenen Bedingungen durchgeführt. Eine goldene Regel von Shneiderman
beinhaltet die Implementierung einer Undo-Funktion, mit der die letzten Eingaben widerrufen werden können. Da der Kellerautomat einen Speicher besitzt, würde dies bei der Realisierung dieser Funktion hilfreich sein. Andererseits werden dialogorientierte Zustandsautomaten
benötigt, welche mittels einer Engine gesteuert werden. Dieselbe Engine könnte auch einen
endlichen Automaten steuern, welcher sich bisherige Zustände durch eine zusätzliche Variable
merkt und so eine Benutzung der Undo-Funktion realisiert. Da der Prototyp auf dem zuletzt
geschilderten Verfahren basiert, wurde von einer Änderung des bisher verwendeten Automaten
abgesehen.
Die Modalitäten sollen leicht verständlich und anwendbar sein. Beim Chatfenster sollte die
Verwendung von Steuerelementen auf das Notwendige minimiert werden. Dazu gehört je eine
Textbox für Ein- und Ausgabe sowie einen Button zum Senden des eingegebenen Textes.
Da ein weiterer wesentlicher Aspekt die Menüsteuerung ist, sollten geeignete Steuerelemente
beim Bedienfenster ausgewählt werden. Die Entwicklungsumgebung Microsoft Visual Studio
2010 Express stellt eine Vielzahl von Steuerungselementen zu Verfügung, die in einer Toolbox
aufgelistet sind. Denkbar wäre die Verwendung einer Menüstruktur, wie man sie von Internetseiten kennt. Dieses folgt häug dem Schema eines Baumes, welches durch das TreeViewElement realisiert wird. Andererseits bieten auch Menüleisten eine Alternative. Beide Struk-
26
4 KONZEPT
turen sind allen Nutzern gut bekannt und übersichtlich. Um die Vorteile beider Strukturen
mit den Anforderungen und Ideen zu verbinden, sollten beide Menüstrukturen verwendet werden. Dabei sollte das MenuStrip Element den Benutzer zusätzliche Dienste wie Einstellungen
bieten. Das TreeView-Element wird hingegen zur Gerätenavigation (als Suche nach den geeigneten Geräten) verwendet. Zusätzliche Menüs wie ContextMenuStrip und ToolStrip würden
den Komfort erhöhen, jedoch ist dies auf Grund des geringen Zeitumfangs schwer realisierbar.
Weiterhin soll eine Einbindung weiterer Modalitäten möglich sein. Da jede Modalität auf unterschiedliche Weise Informationen sammelt, kann eine Auswertung durch den Dialogmanager
nicht einheitlich durchgeführt werden. Neue, auf jede Modalität zugeschnittene Methoden würden eine Umsetzung unübersichtlich und somit schwer steuerbar machen. Ebenfalls muss für
jeden hinzugefügten Kommunikationskanal die Verwaltung der Zustandsautomaten neu programmiert werden. Eine Lösung kann durch die Entwicklung eines Datenformats geschaen
werden. Die Grundidee hierzu ist ein einheitliches Datenformat, welches von jeder Modalität
verwendet wird. Es beinhaltet beispielsweise den Namen der aktuell verwendeten Modalität
und den Namen des zu Gerätes (siehe Abschnitt 5.1.4). Anschlieÿend wird es an den Dialogmanager übermittelt. Ausgehend von den Daten im Datenformat kann so eine einheitliche
Verarbeitung der Daten erfolgen. Es ist somit die Grundlage für eine einfache Erweiterung
durch neue Modalitäten.
4.2
Ablauf
In diesem Abschnitt sollen Überlegungen zum allgemeinen Ablauf bei der Ausführung des Programms durchgeführt werden. Ziel des Benutzers ist es, den Zustand eines Gerätes zu ändern.
Im weiteren Verlauf wird hierbei das Wort Auftrag für diesen Sachverhalt verwendet. Was
macht einen Auftrag aus? Um eine Lösung auf diese Frage zu nden, wird eine Beispieleingabe,
wie mache das Licht im Wohnzimmer an, untersucht. Daraus ersichtlich sind Informationen
zu den Rubriken Ort, Aktion und Gerät. Auf das Gerät kann durch die Verwendung des Wortes Licht geschlossen werden. Häug trit eine Aussage auf mehrere Geräte zu, sodass eine
Einschränkung vorgenommen werden muss. Dies erreicht man durch eine zusätzliche Information wie Deckenlicht. Somit ergeben sich die nachstehenden Rubriken als Kennziern für
Aufträge: Name, Ort, Information und Aktion.
An dieser Stelle sei nochmal auf das Ziel eines Auftrags eingegangen. Ein Gerät gehört zu einer
Geräteklasse. Geräteklassen sind dadurch kennzeichnet, dass sie Geräte mit gleichen Merkmalen umfassen. Jeder Geräteklasse wird ein Zustandsautomat zugeordnet, welcher mögliche Aktionen bestimmt. Das Ziel einer Benutzereingabe ist die Veränderung einer Einstellung beim
Gerät und wird durch eine Zustandsänderung des dazugehörigen Automaten erreicht. Zur
Verarbeitung des Auftrags gehört ebenfalls die Steuerung des Dialogusses durch einen vom
27
4 KONZEPT
Dialogmanager gesteuerten Zustandsautomaten. Die Verwaltung der jeweiligen Gerätezustände erfolgt im Context Manager. Zustandsautomaten sind für die Modellierung von möglichen
Aktionen gut geeignet, aber schon eine einfache Lampe mit Dimmfunktion würde bei der
Erstellung groÿe Probleme erzeugen. Laut dem grundlegenden Gedanken müsste je Gerätezustand ein Zustand in der SCXML-Datei modelliert werden. Daraus ergibt sich eine Vielzahl von
Zuständen. Um den Nachteil bei der Verwendung von Zustandsautomaten zur Modellierung
von möglichen Aktionen zu reduzieren, werden dialogorientierte Zustandsautomaten erzeugt.
Sie fassen eine Gruppe von Zuständen zusammen und unterstützen so die Modellierung des
Dialogusses. Im Kapitel 5.1.1 wird dieses anhand eines Beispiels genauer erläutert.
Jeder Durchlauf beginnt mit einer Benutzereingabe, auf welcher basierend eine Variable vom
entsprechenden Datenformat erstellt und mit Daten gefüllt wird. Die Daten enthalten Informationen zu den eben bestimmten Rubriken, sowie Möglichkeiten zur Navigation. Bei einer
Eingabe über das Chatfenster muss die Linguistic Component eine Zuordnung zu den Kategorien vornehmen. Im Anschluss befasst sich der Dialogmanager mit dem Daten. Dazu werden
Informationen wie der aktuelle Status und bisherige Eingaben geladen. Danach werden die
Informationen verarbeitet, wobei eine Zustandsänderung ausgelöst werden kann. Dies hängt
von den Eingaben ab. Werden nur Informationsrubriken verändert, erfolgt keine Zustandsänderung. Daraufhin erfolgt eine Überprüfung der bisherigen Informationen. Wurde ein Auftrag
vollständig eingegeben, so hat dieser bei erfolgreicher Ausführung eine Änderung am Gerät zur
Folge. Fehlen Informationen, so versucht der Context Manager sie zu erschlieÿen. Je nachdem
wird die entsprechende Ausgabe ermittelt. Diese richtet sich nach der vom Benutzer verwendeten Modalität. Die Abbildung 9 verdeutlicht grasch den eben geschilderten Sachverhalt in
Form eines UML-Sequenzdiagramms.
28
4 KONZEPT
Abbildung 9: Sequenzdiagramm - Benutzereingabe (unvollständiger Auftrag)
Der Ablauf verläuft ähnlich, wenn der Benutzer eine Eingabe über das Bedienfenster tätigt.
Eine Variable vom Datenformat wird mit den ermittelten Daten erstellt und an den Dialogmanager weitergeleitet. Es folgt die gleiche weitere Abarbeitung, wie vorstehend bereits
beschrieben. Eine Benutzung der Klasse Linguistic Component ist bei einer Eingabe durch
das Bedienfenster nicht notwendig.
Die Synchronität der Modalitäten soll durch die Verwaltungsklasse ModalityStorage erfolgen.
Diese, vom Dialogmanager verwaltete Klasse, beinhaltet alle Information zu den verwendeten
Modalitäten. Sie ist auch für das Setzen neuer Zustände zuständig. Wenn die Modalitäten
synchron agieren sollen, müssen die Informationen für jede Modalität gespeichert werden.
Im Abschnitt 5.1.2. wird die Umsetzung des Setzens von Zuständen für synchron handelnde
Modalitäten näher erläutert.
29
5 IMPLEMENTIERUNG
5
Implementierung
Dieses Kapitel befasst sich mit der Umsetzung des Programms. Dazu wird das Kapitel in Teile
gegliedert. Angefangen bei den Ideen der Implementierung der Zustandsautomaten, über die
Programmierung der Modalitäten bis zur Fertigstellung des Prototyps. Im Zuge dessen wird
ein exemplarischer Durchlauf die Funktionalität aufzeigen, welche anschlieÿend bewertet wird.
Die Programmierung wurde in den Sprachen C# und SCXML durchgeführt. Verwendet wurde
Microsoft Visual C# 2010 Express.
5.1
Umsetzung
Die Erstellung der Zustandsautomaten und Überlegungen zu den Modalitäten stehen bei der
Umsetzung im Vordergrund. Ferner wird auf Probleme im Bereich der Entwicklungsumgebung
eingegangen.
5.1.1 Zustandsautomaten
Es nden zwei Arten von Zustandsautomaten im Dialogmanager Verwendung. Wie im Abschnitt 4.2 erwähnt, wird für jede Geräteklasse ein dialogorientierter Zustandsautomat benötigt. Auÿerdem agiert der Dialogmanager nach einem Automat. Hier ergab sich das Problem,
den geeigneten Automaten zu nden, welcher sowohl die Abarbeitung der Auftragsstruktur,
als auch gleichzeitig grundlegende Funktionen von Dialogsystemen unterstützt. In dem Programm, welches dieser Arbeit zu Grunde liegt, wurde ein endlicher Zustandsautomat mittels
der Engine Commons SCXML erstellt. Sie wurde von The Apache Software Foundation erschaen und stellt eine API für SCXML bereit. Eine Übersicht über die bestehenden Packages
kann unter [The] gefunden werden.
Eine Umsetzung erfolgte mittels scxmlgui
10 . Dieser auf Java basierende Editor eignet sich gut
zur graschen Darstellung einfacher SCXML-Dateien, jedoch können bei der Umwandlung
Fehler auftreten. So empehlt sich eine weitere Vorgehensweise mit einem Standardeditor,
welcher XML-Tags farblich hervor heben kann. Eine vereinfachte grasche Darstellung, siehe
Abb. 10, soll das Grundkonzept der Funktionsweise des Dialogmanagers wiedergeben.
Der endliche Zustandsautomat kann wie folgt deniert werden, wobei nur ein Teil der Überführungsfunktion aus Übersichtlichkeitsgründen dargestellt ist.
M = (Z, V, δ, qM , F ).
Dabei können die einzelnen Variablen folgenderweise deniert werden:
Z = {chooseApplication{Initial, AcAp, AcIn, ApIn, AcLo, Run, History, ...}, Ask, F inal}
V = {enterApplication, enterLocation, enterInf ormation, renew, stopStatemachine, ...}
δ = {(Initial, enterAction) → Ac, (Initial, enterApplication) → Ap, ...}
qM = Initial
F = {F inal}
10
Editor für endliche Zustandsautomaten
http://code.google.com/p/scxmlgui/
basierend
auf
SCXML
von
F.
Morbini;
URL:
30
5 IMPLEMENTIERUNG
Abbildung 10: Dialogmanager - vereinfachter Zustandsautomat
Beginnend vom Initial-Zustand werden Eingaben des Benutzers einer der vier Rubriken zugeordnet. Darauf basierend erfolgt ein Zustandswechsel. Der Name des Zustandes ergibt dabei
die bisher erhaltenen Informationen entsprechend den Rubriken. ApLo beispielsweise bedeutet, dass bisher Informationen zum Namen des Gerätes (Application) und dem Ort (Location)
getätigt wurden. Ein Auftrag kann ausgeführt werden, wenn Eingaben zu allen Bereichen getätigt wurden. Eine Ausnahme bildet die Kategorie Information. Sie ist optional. Wenn der
Benutzer keine konkreten Anforderungen stellt, wird ein beliebiges Gerät genommen. Ein Beispiel wäre mache das Licht im Wohnzimmer an. Das System erkennt als Name Lampe, als
Ort Wohnzimmer und als Aktion anmachen. Eine Zusatzinformation zum Gerät ist nicht
ersichtlich. Die Eingabe ohne Zusatzinformation ist sinnvoll bei einmalig vorkommenden Geräten, welche keine Zusatzinformationen brauchen, oder in bestimmten Situationen. Betritt
beispielsweise der Wohnungsbesitzer ein dunkles Wohnzimmer und hat Probleme, den Weg zu
erkennen, so würde die Eingabe aus dem obigen Beispiel sinnvoll erscheinen.
Der Zustand ApLoInAc beinhaltet Informationen zu allen Informationsrubriken. Wird dieser
31
5 IMPLEMENTIERUNG
Zustand erreicht, wechselt der Automat automatisch in den Zustand Run und führt die
gleichnamige Methode aus. Nach deren Ausführung begibt sich der Automat in den InitialZustand.
Eine weitere Überlegung liegt der Erstellung des Dialogmanagers zu Grunde: das Eingeben
einer nicht direkt ausführbaren Aktion. Das erstellte Programm unterstützt das Springen von
Zuständen in Zustandsautomaten nicht. Ein Beispiel soll diesen Sachverhalt genauer erläutern. Der Nutzer möchte einen Film schauen. Das dazugehörige TV-Gerät ist aus. Kommt
nun die Eingabe spiele das 1. Kapitel ab tritt ein Fehler auf. Die Eingabe kann nicht verarbeitet werden und wird gelöscht, da das Gerät dafür erst angeschaltet und anschlieÿend ein
Film gewählt werden muss. Eine Lösung erlaubt dem Benutzer nur nach einer Geräte-Auswahl
Aktionen einzugeben. Ist der Vorgang gültig, ndet eine Zustandsänderung statt. Das eben geschilderte Beispiel würde nach diesem Sachverhalt wie folgt ablaufen: Der Benutzer macht eine
Eingabe, welche zur Folge hat, dass das TV-Gerät angeschaltet wird. Anschlieÿend erfolgt eine
Eingabe, wie spiele einen Film ab. Hier wird vorausgesetzt, dass das System zufällig einen
Film auswählt und diesen abspielt. Sein Ziel kann der Anwender durch die Eingabe starte 1.
Kapitel erreichen. Das Fernsehgerät wird bei allen zukünftigen Eingaben als Maschine vorausgesetzt, bis eine neue Information in den Rubriken Name, Ort oder Information eingegeben
wird.
Ein erfolgreicher Prototyp sollte dem Haushalt Tag und Nacht, 365 Tage im Jahr zur Verfügung stehen. In dem Zeitraum werden viele Eingaben getätigt, wobei eine Speicherung von
allen Aufträgen nicht sinnvoll erscheint. Im Rahmen der Implementierung der Undo-Funktion
muss somit eine geeignete Richtlinie gefunden werden. Auf Grund von Shneidermans 8. Regel
(Verringere Abfragen an das Kurzzeitgedächtnis) werden nur Informationen zu einem Auftrag
gespeichert, mit dem Ziel Versprecher leicht korrigieren zu können. Da ein endlicher Zustandsautomat zur Dialogführung verwendet wird, werden die letzten Zustände in einem Stack gespeichert. Dieser wird durch eine lokale Variable realisiert. Zustände werden gespeichert, wobei
beim Erreichen des Initial-Zustands der Stack gelöscht wird. Das Anfangskellerzeichen ist Initial, welcher die ID des Initial-Zustands darstellt. Somit kann die Undo-Funktion nur für den
aktuellen und nicht auf die vorherigen Aufträge angewendet werden.
Die Umsetzung der Undo-Funktion hat den Nachteil, dass die Menüstruktur komplizierter
wird. Statt einer azyklischen
11 wird nun eine zyklische12 Menüstruktur verwendet. Dies macht
es für den Nutzer schwerer, den Überblick über den aktuellen Zustand zu behalten. [Shn02, S.
286] Daher wurde im Bereich der Modalitäten eine Erweiterung vorgenommen. Die Informationen zum aktuellen Auftrag werden in einer Tabelle im Bedienfenster ausgegeben.
11
12
gerichteter Graph mit Mehrfachkanten bei dem sich alle Knoten eines Weges unterscheiden
gerichteter Graph mit Mehrfachkanten, bei dem Start- und Endpunkt übereinstimmen
32
5 IMPLEMENTIERUNG
Nachdem der verwendete Automat für den Dialogmanager erläutert wurde, soll hier eine kurze
Erläuterung der dialogorientierten Zustandsautomaten am Beispiel des Zustandsautomaten für
das Fernsehgerät gegeben werden.
Abbildung 11: Dialogorientierter Zustandsautomat für ein TV-Gerät
Der Zustandsautomat von Abbildung 11 orientiert sich an den realen Fernsehapparat und
13 realisiert. Der
seinen Funktionen. Die grasche Darstellung wurde mit dem SCXML-Editor
Abschnitt 5.1.3 beschäftigt sich intensiver mit der Verbindung zu dem Gerät. Es werden eine
Reihe von Funktionen unterstützt. Dazu gehören u. A. die in Abb. 11 aufgelisteten Ereignisse.
Der Fernseher bietet die Möglichkeit zwischen mehreren Kanälen umzuschalten. Leider gibt
es keinen Befehl, welcher den Fernseher an macht. Darum ist der Initial-Zustand menuDTV.
Anwender benutzen häug Befehle wie Kanalwechsel, Lautstärkewechsel und Videotext. Daher standen diese Anweisungen im Mittelpunkt bei der Implementierung. Eine Veränderung
der Lautstärke ist auch von anderen Kanälen aus möglich. Dies lässt sich durch einen neuen
Zustand setVolume realisieren. In diesem kann die Lautstärke variiert werden. Nach dem Beenden der Lautstärkeänderung durch das Ereignis setVolumeReady wird der History-Zustand
erreicht. Dieser wechselt in den letzten Zustand, bevor setVolume erreicht wurde. Ist kein
Übergang möglich, wird nach menuDTV gewechselt. Abb. 11 verdeutlicht sehr gut, dass ein
History-Zustand hier nicht notwendig wäre, da setVolume nur von einem Zustand aus er-
13
Der Editor von F. Morbini kann gefunden werden unter: http://code.google.com/p/scxmlgui/
33
5 IMPLEMENTIERUNG
reicht werden kann. Dennoch bietet der History-Zustand die Möglichkeit leicht Erweiterungen
z. B. durch andere Kanäle durchzuführen, welche für den Prototyp nicht realisiert wurden.
5.1.2 Modalitäten
Im Bereich der Modalitäten waren zwei Oberächen zu erstellen, welche Benutzereingaben
annehmen können: ein Chatfenster und ein Bedienfenster.
Das vorhandene Chatfenster erfüllte alle an ihn (im Abschnitt 3.2) gestellten Anforderungen,
sodass es aus der vorausgehenden Arbeit übernommen werden konnte.
Problematisch gestaltete sich die Implementierung des Bedienfensters. Auf Grund der veränderten Anforderungen und Ideen an die Modalität, musste eine Neuimplementation vorgenommen werden, immer vor dem Hintergrund von Shneidermans 8 goldenen Regeln. Eine Regel
beinhaltet den Kontrollaspekt durch den Benutzer. Einstellungen und zusätzliche Funktionen
sollen dem Anwender das Gefühl der Kontrolle geben und so seine Zufriedenheit steigern.
Andererseits hat dies zur Folge, dass die Oberäche trotz vieler Bemühungen unübersichtlich
werden kann. Um dem entgegenzuwirken, wurde in der Menüleiste ein Informationspunkt hinzugefügt. Dieser soll dem Anwender Auskunft über die wichtigsten Kenntnisse zur Bedienung
des Programms vermitteln sowie die Möglichkeiten und Bedeutungen einzelner Eingaben im
Programm erklären.
Im Vordergrund steht nach wie vor die Selektion von Geräten und Veränderung ihres Zustands.
Dafür stehen zwei Möglichkeiten zur Verfügung: eine Tabelle und eine Baumstruktur, welche
in Abbildung 12 dargestellt sind. Die Tabelle gibt wie eine Datenbank alle Geräte aus, welche leicht selektiert werden können. Anschlieÿend kann in einer neuen Tabelle ein möglicher
Zustand ausgewählt werden. Diese Eingabevariante ist für zielgerichtete Benutzer geeignet,
welche auf direktem Weg eine Applikation auswählen können. Die Bedienung der Baumstruktur ist besser geeignet für unentschlossene Nutzer und groÿe Datenbanken, d. h. bei vielen zu
verwaltenden Geräten im Context Manager wird die Tabelle als einzige Anzeigemöglichkeit
unübersichtlich, da die Tabelle ihr Daten vom Context Manager erhält. Die Baumstruktur
ermöglicht eine Auswahl der Geräte, wodurch die Anzahl der angezeigten Geräte sinkt und
demzufolge die Übersichtlichkeit steigt. Die Baumstruktur wird dynamisch generiert. Durch
Auswahl eines Knotens werden alle möglichen Geräte angezeigt. Selektiert man ein Gerät, werden alle noch oenen Informationsrubriken dargestellt, welche durch einen Mausklick wiederum
alle Auswahlmöglichkeiten für die Gerätewahl unter Berücksichtigung der bisher eingegebenen
Informationen anzeigen. Dies wird solange fortgeführt, bis alle Informationen ausgewählt wurden. Diese Variante benötigt bei einer normalen Eingabe, ohne zusätzliche Informationen,
mind. sechs Selektionen.
Um die Vorteile beider Möglichkeiten zu verbinden, gibt es eine gemischte Ansicht. Dabei
können Eingrenzungen zu Themenbereichen durch die Baumstruktur vorgenommen werden.
Daraufhin aktualisiert sich die Tabelle. Besonders ezient gestaltet sich dadurch die Geräte-
34
5 IMPLEMENTIERUNG
Abbildung 12: Bedienfenster
auswahl bei einer groÿen Anzahl an Geräten im Haushalt.
Des Weiteren können die Modalitäten synchron agieren, dass heiÿt, sie arbeiten parallel. Eine
Eingabe in einer Modalität beeinusst auch den Status der Anderen. Dies wird über eine Variable in der Klasse ModalityStorage realisiert. Gibt diese zurück, dass die Modalitäten synchron
agieren sollen, wird eine Methode aufgerufen. Diese ruft die Methode mit dem gleichen Namen
auf, welche als Übergabeparameter nicht den Namen der Modalität benötigt (Überladung).
Anschlieÿend wird hier für jede verwaltete Modalität die Information gespeichert. So kann die
Synchronität leicht über eine Variable gesteuert werden.
5.1.3 Programmumgebung
Die Zielsetzung beinhaltet die Steuerung eines realen TV-Gerätes
14 . Für die Bedienung stand
ein Projekt zur Verfügung, basierend auf der Klasse SerialPort. Die Klasse stellt eine Verbindung zwischen dem Dialogsystem und einem realen Gerät her. Nach den Einstellungen der
Kommunikationsbedingungen, wie Baud-Rate und Datenlänge, erfolgt die Steuerung über ein
überkreuztes RS-232C-Kabel. Bei einer Aktion erfolgt eine Abfrage an das Gerät bezüglich
des aktuellen Werts und ermöglicht so das Senden und Empfangen von Daten.
14
Typ AQUOS von Sharp mit der Kennung LC-52XD1E
35
5 IMPLEMENTIERUNG
Probleme ergaben sich bei der Erstellung der dritten Oberäche auf Grund der hohen Anforderungen. Die Oberäche soll Geräte darstellen, die Änderungen durch Animationen verdeutlichen und mit allen Plattformen kompatibel sein. Das standardisierte Dateiformat X3D
15
erfüllt alle Bedingungen. Durch ein Plug-In können Browser die Dateien anzeigen. Mit Hilfe der Software Sweet Home 3D wurde ein Haus grasch erstellt. SweetHome3D verfügt
über keine Export-Funktion in das Dateiformat X3D, sodass eine andere Software diesen Part
übernehmen muss. Die Engine Blender erwies sich als sehr kompatibel. Da aber die erstellte
X3D-Datei aus nicht nachvollziehbaren Gründen fehlerhaft war, wurde von einer graschen
3D-Darstellung der Wohnumgebung Abstand genommen wurde. Alternativ wurde nach einem Standard für 2D-Darstellungen recherchiert, wie das vom W3C standardisierte Format
.svg. Die Abkürzung SVG bedeutet Scalable Vector Graphics. So wie X3D basiert SVG
auf XML. Animationen sind mit Hilfe von SMIL möglich. SMIL steht für Synchronized
Multimedia Integration Language und ist ein W3C-Standard für interaktive audiovisuelle
Präsentationen.[Mic]
Eine SVG-Datei wurde mittels dem Open-Source-Vektorgrakeditor Inkscape erstellt. Animationen werden durch den Tag <animateColor> realisiert. In der selben Klasse gibt es einen
Tag namens <set>. Mit diesem lassen sich unter anderem Farben setzen. Beide Varianten
wurden in das Dokument eingebunden mit dem nachfolgenden Ergebnis: Die SVG-Datei lieÿ
sich ohne Probleme von jedem Browser önen, jedoch wurden sowohl die Animationen als auch
die Darstellung von jedem Browser anders unterstützt. Die Tabelle 3 gibt einen Überblick über
die Unterstützung beim Anzeigen von SVG-Dateien. Dabei bedeutet ein Plus-Zeichen, dass
dieser Bereich unterstützt wird, hingegen ein Minus-Zeichen für auftretende Probleme steht.
Browser
gute Darstellung
<animateColor>
<set>
Internet Explorer 9
-
-
-
Mozilla Firefox 5.0
+
-
+
Safari 5.0.5
-
+
+
Tabelle 3: Unterstützung einiger Browser beim Anzeigen von SVG-Dateien
Auf Grundlage der Ergebnisse wurde Mozilla Firefox zur weiteren Darstellung der SVG-Datei
verwendet.
Nach dem Starten des Prozesses Mozilla Firefox trat das Problem auf, dass eine Verwaltung des Prozesses nicht mehr möglich war. Der Prozess konnte gestartet werden, aber wurde
dann automatisch vom Betriebssystem verwaltet und im Programm beendet. Dies hatte zur
Folge, dass die SVG-Datei nicht mehr vom Programm geladen werden konnte. Abhilfe wurde
durch das Steuerungstool WebBrowser geschaen. Die Klasse ermöglicht die Verwaltung eines programm-internen Browserfensters. Beim Laden gab es ein Problem mit dem Standard
16 , welche für den Inter-
WebBrowser, auf Trident basierend. Trident ist eine Rendering Engine
15
Extensible 3D, ozieller Standard für 3D-Dateiformate auf XML-basierend; URL:
http://www.leed.ch/history/x3d/zweck.htm
16
Komponente eines Programms zur Aufbereitung von Informationen um diese darstellen zu können
36
5 IMPLEMENTIERUNG
net Explorer verwendet wird. Wie auch bei der Darstellung mit dem Internet Explorer wurden
keine Animationen unterstützt. Daraufhin wurden weitere Rendering Engines getestet.
Rendering Engine
Browser
gute Darstellung
<animateColor>
<set>
Trident
Internet Explorer
+
-
-
Gecko
Mozilla Firefox
+
-
-
WebKit
Safari
-
-
-
Tabelle 4: Unterstützung einiger Rendering Engines beim Anzeigen von SVG-Dateien
Wie die Tabelle 4 verdeutlicht, unterstützen alle getesteten Engines keine Animationen. Dies
beinhaltet auch das Setzen der Farbe durch den Tag <set>. Lediglich die Darstellung der
graschen Form wurde bei zwei der drei Engines gut unterstützt. Somit wurde für die weitere
Arbeit ein GeckoWebBrowser verwendet. Das ist ein Steuerungstool, welches durch Seiten
navigieren kann. Der Browser Mozilla Firefox basiert auf dieser Rendering Engine. Trotzdem
sind viele Unterschiede zwischen den Tabellen 3 und 4 zu erkennen. Der Grund ist, dass
Rendering Engines nur einfache WebBrowser erzeugen, welche vom Benutzer verwaltet werden
können. Hingegen unterstützen Browser, wie Mozilla Firefox, mehr Darstellungsformen als
durch Rendering Engines erstellte WebBrowser.
Um eine Farbänderung der entsprechenden Geräte zu erzeugen, wurde beim ersten Lesen der
SVG-Datei eine Datenbank angelegt, welche die zu verändernde Zeilennummer sowie das dazugehörige Gerät speichert. Bei einer Änderung wird die entsprechende Zeile neu geschrieben.
Dabei wird das ganze Dokument gelesen, verändert und gespeichert. Um beim zweiten Starten des Programmes alle Geräte in der Ausgangssituation vorzunden, wird eine Kopie der
ursprünglichen Datei erzeugt, mit welcher im Anschluss weiter gearbeitet wird. Eine Bewertung der gefundenen Lösung erfolgt im Kapitel 5.2.
5.1.4 Prototyp
In diesem Abschnitt soll ein exemplarischer Durchlauf erfolgen. Dabei werden angesprochene
Themen wie Eventhandling und das denierte Datenformat aufgegrien und erläutert.
Beim Start des Programms önet sich ein Startfenster. In diesem kann die Hausdatei ausgewählt werden. Hinter dem Begri verbirgt sich die SVG-Datei. Eine Auswahl ist sinnvoll, da
die Geräte in der Datenbank von den Geräten in der SVG-Datei abstammen. Die Gerätedatenbank wird also dynamisch erzeugt. So kann der Benutzer seine Wohnumgebung modellieren
und virtuell verwalten. Die Funktionsweise des Dialogmanagers orientiert sich an einem Zustandsautomaten, welcher ausgewählt werden kann. Dabei sind beide in den Tests benutzten
Dateien voreingestellt. Das Startfenster verändert sich nach dem Laden der Haus-Datei zu einem Fenster für Fehlerausgaben. Es gibt Fehler als auch Zwischenstände aus, um auftretende
Probleme schnell lokalisieren und beheben zu können.
37
5 IMPLEMENTIERUNG
Abbildung 13: Ablauf des Programms
38
5 IMPLEMENTIERUNG
Die Abbildung 13 zeigt den Ablauf des Programmes, basierend auf einer Eingabe. Dieser
Verlauf wird im Anschluss an einigen Stellen erläutert.
Der Dialogmanager empfängt Eingaben des Chatfensters. Die Linguistic Component wandelt
den String um. Dazu wird ein auf Prolog-basierendes Projekt verwendet. Das semantische
Analyseresultat wird in der Klasse SyntaxProcessing ausgewertet. Gleichwohl werden Eingaben unterstützt, welche mehrere Aufträge beinhalten, wie beispielsweise mache alle Lampen
an. Diese Eingabe wird anhand des Schlüsselwortes alle besonders behandelt. Dasselbe gilt
für die Wörter Zustand und home. Auch Navigationsbegrie wie synchronisieren und
löschen werden betrachtet. Davon ausgehend wird eine Variable vom Datenformat erstellt,
wobei die Deklarierung der Variablen in der Abb. 14 zu sehen ist.
Abbildung 14: Denition des Structs DataFormat
Eine Auswertung der Daten erfolgt im Dialogmanager. Dabei werden Informationen entsprechend ihrer Rubrik gefeuert. Das beinhaltet die Auslösung eines Events im jeweiligen Zustandsautomaten, welcher durch die Variable modality bestimmt wird. Sie ruft alle Werte in
ModalityStorage zu dieser Modalität ab.
Möglich wäre eine Eingabe, welche eine spezielle Geräteinformation und eine Aktion beinhaltet. Basierend auf dieser Information, kann häug auf ein bestimmtes Gerät geschlossen
werden, ohne dass zusätzliche Informationen erforderlich sind. Dies ist möglich, wenn es nur
ein Gerät mit einer bestimmten Zusatzinformation gibt. Beim Testen wurde dieses Gerät
durch die Stehlampe realisiert. Die Methode logic() im Context Manager ermittelt alle möglichen Geräte, welche mit dem aktuellen Informationsstand möglich sind. Gibt es, wie bei der
Stehlampe, nur ein Gerät, werden alle oenen Informationsrubriken ausgefüllt und an den
Dialogmanager gesendet. Dieser kann nun den Auftrag ausführen. Dafür wird der Zustandsautomat der Geräteklasse geladen. Dieses erfolgt durch das Erzeugen einer neuen Instanz von
der Klasse SCXMLFactory. Um die Speicherausnutzung zu reduzieren, existieren zur gleichen
Zeit nur zwei Variablen der Klasse: eine steuert den Dialogmanager und die Andere das Gerät. Selbst für die Modalitäten wird nur ein Zustandsautomat verwendet, hierbei muss der
39
5 IMPLEMENTIERUNG
Zustand gespeichert und im Automat gesetzt werden. Von einer zweiten Variante, welche das
Erzeugen von je einem Zustandsautomat je Gerät beinhaltet, wurde, auf Grund des hohen
Speicherbedarfs bei sehr vielen Geräten, Abstand genommen.
Ein weiterer Aspekt ist die Speicherung der Daten. Die Automation Component führt Aufträge an den Geräten aus. Bei den virtuellen Geräten kann dies immer durchgeführt werden.
Probleme können nicht auftreten, da die virtuellen Geräte keine Fehlerrückmeldungen machen
können. Beim Fernsehgerät erzeugen ungültige Eingaben einen Fehler, welche keine Veränderung des Zustands des TVs auslösen darf. Deshalb erzeugt die Automation Component einen
Befehl. Kann dieser erfolgreich ausgeführt werden, wird ein Event an den Interaction Manager
geschickt. Dieser reicht die erfolgreiche Ausführung an den Dialogmanager weiter, welcher im
Context Manager den Zustand verändert und die Ausgabe auf dem Ausgabefenster in Auftrag
gibt. Kann hingegen der Auftrag nicht erfolgreich ausgeführt werden, erfolgt die Löschung des
Auftrags und eine Fehlerausgabe ohne weitere Konsequenzen.
5.2
Diskussion
In dem aktuellen Abschnitt wird eine Bewertung des Prototyps auf Grund der Zielsetzung
vorgenommen.
Durch die Umstrukturierung konnte der Quellcode etwa um ein Drittel reduziert werden. Der
Dialogmanager steuert nun den Dialoguss und die Modalitäten. Der Status der Modalitäten
wird in der Klasse ModalityStorage gespeichert. Über den Dialogmanager ist ein Setzen der
Zustände möglich. Gleichzeitig ist es auch notwendig, da nur ein Zustandsautomat für alle
Modalitäten verwendet wird. Dies ergibt sich aus der Notwendigkeit, dass die Modalitäten
synchronisiert werden können. Dazu muss ebenfalls der Zustand abgefragt und im Anschluss
neu gesetzt werden. Die Anbindung neuer Kommunikationskanäle ist durch den Aufruf einer
Methode leicht durchführbar. Diese benötigt nur den Namen der Modalität zur Erzeugung
eines Eintrags in der Klasse ModalityStorage, da die Steuerung über den Namen ausgeführt
wird. Denkbar wäre eine ID zu vergeben um gleiche Namen und Schreibfehler auszuschlieÿen.
Grundlegende dialogorientierte Zustandsautomaten wurden erstellt, wobei hier einige Überarbeitungen notwendig sind. Um eine Verarbeitung zu erleichtern, wurde der Zustandsautomat
der Jalousie funktionsorientiert erstellt. Dies hat den Hintergrund, dass ein dialogorientierter
Zustandsautomat ständig Informationen vom Context Manager benötigt. Die Lampe hingegen
benötigt aufgrund ihres übersichtlichen Zustandsautomaten, welcher lediglich drei Zustände
hat, keine weiteren Daten zur Ausführung. Die Automation Component ermittelt die Daten
des Fernsehgeräts vor einer Aktion und erfasst so den aktuellen Zustand des Gerätes. Sodass
bei der aktuellen Version des Programms lediglich die Jalousiedaten, wie Winkel der Lamellen,
vom Context Manager benötigt werden. Eine Erweiterung des Programms wäre zur Benutzung
komplexer Geräte sinnvoll.
40
5 IMPLEMENTIERUNG
Das Ausgabefenster unterscheidet für jedes Gerät die beiden Zustände: an und aus. Bei dialogorientierten Zustandsautomaten kann dies nicht direkt festgestellt werden. Die Eingaben
müssten in Verbindung mit den im Context Manager gespeicherten Geräteeinstellungen verbunden und ausgewertet werden. Darauf basierend könnte eine Aktion durchgeführt werden,
welche nach erfolgreichem Ausführen im Context Manager gespeichert wird. Eine Erweiterung
des Context Managers würde folglich notwendig sein. Dieser Teil wurde bisher nicht realisiert.
Daher ist der Zustandsautomat für das TV-Gerät dialogorientiert und für die Jalousie funktionsorientiert. Nichtsdestoweniger wurde ein einfacher dialogorientierter Zustandsautomat für
Jalousien erstellt und ist im Anhang dargestellt.1
Die Anforderungen an die Modalitäten sind grundlegend erfüllt. Wie vermutet, können auf
Grund der Komplexität der Sprache nicht alle Wörter ausgewertet werden. Eine Erweiterung
der vorhandenen Prolog-Datei, zur Bestimmung der Semantik, sowie eine komplexere Klasse
zur Auswertung der Semantik wäre sinnvoll. Dennoch sind einfache Eingaben möglich. Diskussionswürdig ist die Variante, die Linguistic Component vom Dialogmanager aufzurufen. Derzeit
wird die entsprechende Variable vom Datenformat im Dialogmanager erzeugt. Besser wäre die
Reihenfolge: Chatfenster, Linguistic Component und Dialogmanager, wobei der Dialogmanager die Daten von der Linguistic Component erhält. Jedoch lieÿ es sich nicht realisieren, da zur
Bestimmung der Aufträge der Context Manager genutzt werden musste, welcher alle Geräte
verwaltet. Beim Beispiel mache alle Lampen an müssen alle Lampen vom Context Manager ermittelt werden. Anschlieÿend wird für jedes Gerät eine Instanz vom Typ Datenformat
erstellt und dem Dialogmanager zur Auswertung übergeben. Ungeachtet dessen können Eingaben über das Bedienfenster getätigt werden. Die Bedienbarkeit wird durch einen Hilfetext
erhöht. Tests mit der Benutzung der Baumstruktur lieferten unterschiedliche Werte. Einerseits
haben Benutzer, welche einen Weg bis zum vollendeten Auftrag entlanggehen, keine Probleme. Anderseits führt das sprunghafte Selektieren verschiedener Knoten über mehrere Ebenen
zu ungewollten Eingaben und Fehlern. Vor allem durch die dynamische Baumstruktur und
der verbundenen Tabelle ist eine gute Übersicht und Rubrik-orientierte Gerätewahl gegeben.
Eine Überarbeitung sollte die Änderung der Bedienfenster-Klasse auf eine browserbasierende
Modalität beinhalten, um die Nutzung der Eingabemöglichkeit u. a. auf Handys zu erweitern.
Zur Bewertung der Gestaltung werden die 8 goldenen Regeln von Shneiderman herangezogen.
Die Tabelle 5 gibt einen Überblick über die Maÿnahmen, welche zur Einhaltung der Regeln
vorgenommen wurden.
Die Zielsetzung der Programmumgebung konnte erfüllt werden. Durch die zahlreichen Lampen und Jalousien wurden Geräte mit dem virtuellen Haus verknüpft. Auch die Steuerung
des TV-Gerätes kann durch Nutzereingaben durchgeführt werden. Die Darstellung des Hauses konnte durch einen GeckoWebBrowser realisiert werden. Der Vorteil dieser Lösung ist
sicherlich die Verwendung unabhängig von Plattformen. Auÿerdem kann, unter bestimmten
41
5 IMPLEMENTIERUNG
Voraussetzungen, jedes Haus geladen und verwaltet werden. Nachteilig auswirken kann sich die
lange Ladezeit. Derzeit wird nach einem erfolgreich ausgeführten Auftrag eine Aktualisierung
vorgenommen. Sinnvoll wäre es, das Ausgabefenster durch Events zu steuern. Dazu sollte der
Context Manager genutzt werden. Eine mögliche Variante wäre folgende:
Wird der Zustand eines Gerätes verändert, so erfolgt eine Speicherung im Context Manager.
Dieser ermittelt nun, ob eine Farbänderung im Ausgabefenster vorgenommen werden soll. Bei
Sammelaufträgen, wie dem Anschalten aller Lampen, würde derzeit jede Lampe einzeln angeschaltet werden. Dies hat zu Folge, dass die Datei für n Lampen n-mal eingelesen, bearbeitet
und neu gespeichert werden muss. Da dies ungefähr drei Sekunden pro Lampe in Anspruch
nimmt, ist es bei vielen Lampen problematisch. Benutzereingaben während dieser Zeit können
zu Fehlern führen. Daher sollte dieser Aspekt bei der Idee, durch das Sammeln aller Aufträge,
berücksichtigt werden.
Generell sollte bei einer weiteren Bearbeitung dieses Projektes der Aspekt der Störungen,
insbesondere der Ausfallsicherheit, geachtet werden.
42
5 IMPLEMENTIERUNG
Regel
Umsetzung (Bedienfenster; Chatfenster, Allgemein)
Konsistenz
Einheitliche Beschriftung der Buttons; - ; -
Berücksichtige
Hilfedatei zur Einführung, 3 Varianten zur Ermittlung eines
unterschiedliche
Gerätes; Enter zum Senden von Texteingaben; -
Erfahrungen
Rückmeldungen auf
Anzeigen des bisher ausgewählten Informationen, Generierung
Aktionen des Benutzers
der Datenbank; Ausgabe fehlender und vorhandener
Informationen; Fehlermeldungen im extra Fenster
Abgeschlossene
leere Informationsrubriken; Rückmeldung über den Erfolg,
Operationen
Nachfragen verdeutlicht fehlende Aktionen/Informationen;
Klärung des Ablaufes in Hilfedatei
Fehler verhindern
Auswahl nur möglicher Informationen auf Grund von vorherigen
Eingaben; Missverständnisse durch Nachfragen vermeiden;
Blockieren von nicht benutzbaren Buttons, Vorgabe bei Auswahl
von Dateien
Einfache
Knoten alles löschen, Zurück durch Klicken auf anderen
Rücksetzmöglichkeiten
Knoten; löschen, zurück; -
Benutzerbestimmte
Überschaubarkeit der Informationen durch Tabelle &
Eingaben
Zwischenstand; Ausgabe der wichtigsten Informationen durch
Rückantwort; Aktion durch Eingaben vom Benutzer abhängig,
benutzerdenierte, Ausgabe abhängig von benutzter Modalität,
Einstellungen, abbrechbare Aktionen durch Löschbefehl
Geringe Belastung des
Ausgabe eines Zwischenstands mit bisherigen Informationen;
Kurzzeitgedächtnisses
Ausgabe einer Rückantwort mit bisherigen Informationen; -
Tabelle 5: Maÿnahmen zur Berücksichtigung der Regeln von Shneiderman
Resultate und Schlussfolgerungen lassen sich auch anhand der Liste von [Lar] feststellen. Sie
verschat einen Überblick über die Projekte, welche sich bereits mit dem Thema befassen bzw.
befasst haben. Ein gutes Ergebnis liefert SmartKom. Hier kann der Nutzer unter anderem
eine systemgesteuerte Stadtführung bekommen. Die Leitung übernimmt dabei ein Avatar
17 .
Auch wenn SmartKom sehr benutzerfreundlich ist, zeigt das Projekt die Beschränktheit aller
Anwendungen, welche aufgrund der Komplexität des Themenbereiches entstehen.
17
Figur in einer virtuellen Umgebung als Ersatz für agierende Menschen
43
6 ZUSAMMENFASSUNG UND AUSBLICK
6
Zusammenfassung und Ausblick
Die Umsetzung multimodaler Interaktionen ist ein viel erforschtes Themengebiet. Eine Erweiterung herkömmlicher Geräte durch zusätzliche Modalitäten wird zunehmend den Markt
bestimmen. Dennoch werden am Beispiel der vorliegenden Themenarbeit die derzeitigen Grenzen und die noch zu bewältigenden Probleme aufgezeigt.
Ziel der Arbeit war die Erstellung eines Dialogmanagers, das Schaen einer Umgebung sowie
die Anbindung von zwei Modalitäten. Ein Anwender soll durch Eingaben über die zur Verfügung stehenden Modalitäten virtuelle Lampen und Jalousien sowie einen realen Fernseher
steuern können.
Der Erläuterung von theoretischem Grundwissen in den Gebieten Automatentheorie, Beschreibungssprachen, Dialogsysteme und multimodale Interaktion, schloss sich die Erklärung des
Konzeptes an. In diesem Zusammenhang wurde der Begri Auftrag deniert, welcher die
Grundlage für das weitere Vorgehen bildete. Dieser kann durch Eingaben vom Anwender über
zwei Modalitäten bestimmt werden. Das Chatfenster ermöglicht eine Dateneingabe in Textform. Im Bedienfenster kann die Selektion eines Gerätes durch die Benutzung einer Baumstruktur und einer Tabelle erfolgen. Zur Bedienung der Modalitäten sind Informationen in den
Bereichen: Gerät, Ort, Information (optional) und Aktion notwendig. Des Weiteren wurden die
einzelnen Komponenten und ihre Beziehung zueinander erläutert. Der Dialogmanager bildet
dabei den Kern des Projektes. Von ihm ausgehend wird die Sprachverarbeitungskomponente
Linguistic Component, die Kommunikationskanäle Bedien- und Chatfenster, die Verwaltungskomponente Context Manager sowie das Ausgabefenster gesteuert. Der Interaction Manager
steuert seinerseits den Dialogmanager, den Context Manager und die Automation Component.
Letztere ist die Schnittstelle zwischen Dialogsystem und Gerät und erzeugt Schaltbefehle für
jedes Gerät. Das Leiten des Dialogusses durch einen Zustandsautomaten in der Beschreibungssprache SCXML, die Ausgabe einer virtuellen Wohnumgebung mittels SVG sowie die
Verwaltung der Modalitäten durch den Dialogmanager stellen die Schwerpunkte in der Umsetzung dar. Des Weiteren wurden dialogorientierte Zustandsautomaten für jede Geräteklassen
erstellt.
Obwohl ein ähnliches Projekt als Ausgangsbasis für diese Bachelorarbeit zur Verfügung stand,
konnten nicht alle vorhandenen Aspekte bei der Umsetzung berücksichtigt werden. Dies liegt
u. a. an der Vielfalt der Entwicklungsumgebungen. Sowohl zur Bearbeitung der vorliegenden
Arbeit als auch für eine erfolgreiche Implementierung werden gute Programmierkenntnisse benötigt. Dazu gehören Auszeichnungssprachen wie XML, Programmiersprachen wie C#, Kenntnisse in der Programmierung von Kommunikationsmedien sowie der Benutzerfreundlichkeit.
Die Bedienung des Menüs ist ebenfalls sehr verschieden und muss von allen Gruppen verwendet werden können. Auch Sprachunterschiede können Probleme bereiten, da das System bisher
nur gängige Wörter verarbeitet. Lokale Besonderheiten der deutschen Sprache wie ne und
44
6 ZUSAMMENFASSUNG UND AUSBLICK
dat erzeugen einen Fehler bei der Ermittlung der Semantik.
Zusammenfassend kann man dennoch sagen, dass die Zielsetzungen erreicht wurden. Eine
Mensch-Maschine-Kommunikation über verschiedene Modalitäten mit dem Ziel, Geräte zu
steuern, ist möglich. Um eine höhere Benutzerfreundlichkeit u. a. durch geringere Ladezeiten
beim Ausgabefenster zu erreichen, wäre eine Überarbeitung des Datenusses, insbesondere des
Context Managers, empfehlenswert.
Auf Grund der Vielfalt und Komplexität der Mensch-Maschine-Kommunikation ist eine umfassende Implementierung über mehrere Bereiche zum derzeitigen Zeitpunkt nur schwer umsetzbar. Auch wenn sich diese vorliegende Themenarbeit lediglich mit einen kleinen Bereich
der multimodalen Interaktion beschäftigt hat und auch das Ergebnis dieser Arbeit noch nicht
in Haushalten eingesetzt werden kann, schat sie jedoch Anknüpfungspunkte für weitere Forschungen auf diesem Gebiet. Ziel der Umsetzung multimodaler Interaktionen ist u.a., langfristig einen Beitrag zur Vermeidung von Unfällen zu leisten, den Energieverbrauch zu reduzieren
und sowohl den Komfort als auch die Flexibilität im Haushalt zu erhöhen.
45
LITERATUR
Literatur
[Aub]
Auburn, RJ: Voice Browser Call Control: CCXML Version 1.0.
org/TR/ccxml/.
[Bar]
http://www.w3.
Stand: 08.07.2011
State Chart XML (SCXML).
Barnett, Jim:
http://www.w3.org/TR/scxml/.
Stand: 08.07.2011
[Bei00]
Beigl, Michael: Kommunikation in interaktiven Räumen, Universität Karlsruhe(TH),
Fakultät der Informatik, Dissertation, 2000
[Cha]
Chandler, Daniel: The Transmission Model of Communication.
ac.uk/media/Documents/short/trans.html.
[Cle11]
http://www.aber.
Stand: 11.07.2011
Cleve, Prof. Dr. J.: Theoretische Informatik: Vorlesungsskript WS 2011/12. Hochschule Wismar, 2011
[Dah06] Dahm, Markus:
Grundlagen der Mensch-Computer-Interaktion. 1. Auage. Pearson
Studium, 2006
[Ges]
Gesundheitsberichterstattung des Bundes:
Unfälle in Haushalt und Frei-
http://www.gbe-bund.de/gbe10/abrechnung.prc_abr_test_logon?p_uid=
gasts&p_aid=&p_knoten=FID&p_sprache=D&p_suchstring=884::Suizid. Stand:
zeit.
17.07.2011
[Gla]
Glaeser, Udo: Tutorial: VoiceXML Einführung.
voicexml/tutorials_vxml.html.
[Hed07] Hedtstück, Prof. Dr. U.:
http://www.glaeser-bonn.de/
Stand: 08.07.2011
Einführung in die Theoretische Informatik. 4. Auage.
Oldenbourg Wissenschaftsverlag, 2007
[Her06] Herczeg, Michael:
Interaktionsdesign: Gestaltung interaktiver und multimedialer
Systeme. Oldenbourg Wissenschaftsverlag, 2006
[HMU02] Hopcraft, John E. ; Motwani, Rajeev ; Ullman, Jerey D.:
Einführung in die
Automatentheorie, Formale Sprachen und Komplexitätstheorie. 2. Auage. Pearson
Studium, 2002
[HS]
Häussermann-Schuler, Jochen: Klassisches Kommunikationsmodell nach Shan-
http://professionellegespraechsfuehrung.wordpress.com/2009/
11/23/klassisches-kommunikationsmodell-nach-shannon-weaver/. Stand:
non/ Weaver.
11.07.2011
[Lar]
Larsson, Staan: Dialogue systems and projects.
dialogue_links.html.
http://www.ling.gu.se/~sl/
Stand: 18.07.2011
46
LITERATUR
[McG]
McGlashan, Scott u.: Voice Extensible Markup Language 2.0.
org/TR/voicexml20/.
[MH]
Stand: 08.06.2011
Glossar.
Mayer, Renate ; Hoepelmann, Jaap:
uni-jena.de/teach/SoftErg/bd000.htm.
[Mic]
http://www.w3.
http://psc.informatik.
Stand: 17.07.2011
Michel, Thierry: Synchronized Multimedia.
http://www.w3.org/AudioVideo/.
Stand: 18.07.2011
[Obj10] Object Management Group: OMG Unied Modeling Language / Object Management Group (OMG). http://www.omg.org/spec/UML/2.3/Superstructure/, 2010.
Forschungsbericht
[Pre99]
Preim, Dr.-Ing. B.: Entwicklung interaktiver Systeme: Grundlagen, Fallbeispiele und
innovative Anwendungsfelder. Springer-Verlag, 1999
http://www.cis.
uni-muenchen.de/people/kristof/->Teaching->DialogsystemsandVoice-XML->
Folienzur1.,3.Sitzung. Stand: 10.07.2011
[Rina]
Ringlstetter, Christoph:
[Rinb]
Ringlstetter, Christoph:
Dialogsysteme und VoiceXML.
Dialogsystems.
people/kristof/DIALOG05/sitzung2.pdf.
[Shn02] Shneiderman, Ben:
[Sta]
[The]
Stand: 10.07.2011
User Interface Design. 3. Auage. mitp-Verlag, 2002
Stanciulescu, Adrian: What is UsiXML ?
mod=pages&id=2.
http://www.cis.uni-muenchen.de/
http://www.usixml.org/index.php?
Stand: 10.07.2011
The Apache Software Foundation: Commons SCXML 0.10-SNAPSHOT API.
http://commons.apache.org/scxml/apidocs/index.html?overview-summary.
html. 2010
[UIM]
UIML.org:
UIML INTRO.
http://www.uiml.org/intro/index.htm.
Stand:
09.07.2011
[Ulb11] Ulbricht, Annemarie:
Entwicklung eines Dialogmanagers für multimodale Interak-
tionen, Hochschule Wismar, Fakultät für Wirtschaftswissenschaften, Praktikumsbericht, 2011
[Voi]
http://developers.
voiceobjects.com/docs/en/VO9/007-structurethedialogflow.htm. Stand:
VoiceObjects AG:
How to Structure the Dialog Flow.
20.07.2011
[Wan02] Wang, Kuansan:
dialog systems
SALT: a spoken language interface for web-based multimodal
/ Speech Technology Group.
http://research.microsoft.com/en-
us/projects/salt/2002-kuansan-icslp.pdf, 2002. Forschungsbericht
47
LITERATUR
Anhang
Dialogorientierter Zustandsautomat einer Jalousie
SCXML-Datei einer Lampe
I
LITERATUR
Chatfenster
II