-
Die vorliegende Erfindung bezieht
sich auf ein auf einem Computer umgesetztes Verfahren zur Verwaltung
des Dialogs zu und/oder von einem Benutzer, insbesondere, aber nicht
ausschließlich,
durch Verwendung von Spracherkennung, wobei die Benutzer durch ein
gemeinsames Netzwerk verbunden sind und Multimedia-Schnittstelleneinrichtungen
verwendet werden.
-
Heutzutage gibt es viele unterschiedliche
kommerziell verfügbare
Einrichtungen, die Leute in die Lage versetzen, miteinander elektronisch
zu kommunizieren. Zusätzlich
zu dem allgegenwärtigen
Telefon, das über Jahrzehnte
vorhanden ist, gibt es nun schnurlose Telefone für das Heim, mobile Telefone
für das
Auto, in der Hand gehaltene, drahtlose Telefone, die in die Jackentasche
einer Person passen, Pager, lokale und Weitbereichs-Computernetzwerke
und Faksimilegeräte,
um einige wenige zu nennen. Unzweifelhaft wird sich die Anzahl und
die Art der Einrichtungen und ihr Einfallsreichtum kontinuierlich
vergrößern. Tatsächlich ist
es wahrscheinlich, dass bald ein Tag kommen wird, an dem es für jedermann
möglich
sein wird, auf eine für
ihn geeignete Weise und billig in der Reichweite irgendeiner Kommunikationseinrichtung
zu sein, die ihn in die Lage versetzt, elektronisch mit anderen
zu kommunizieren.
-
Die Ausbreitung unterschiedlicher
Arten von Dialogeinrichtungen und die wachsende Vielfalt von Kommunikationsmedien
stellen neue Herausforderungen dar. Wie wird der Dialog zwischen
unterschiedlichen Einrichtungen und über unterschiedliche Dialogmedien
koordiniert und verwaltet, so dass Leute tatsächlich einen wirksamen Zugang
zueinander besitzen? Eine Herausforderung hängt mit dem Dialog von Information
zwischen und über
unterschiedliche Dialogmedien zusammen. Eine andere Herausforderung
besteht in der Handhabung des unvermeidlichen Anwachsens von Anrufen,
so dass der Zugriff auf die Benutzer aufrecht erhalten wird. Wenn
sich z. B. immer mehr Leute auf ihre drahtlosen Telefone verlassen,
um Geschäfte
auszuführen, während sie
sich auf der Straße
oder außerhalb
ihrer Büros
befinden, werden ihre Telefone wahrscheinlich über einen größeren Prozentsatz
der Zeit belegt sein. Infolgedessen wird, obgleich ein drahtloses
Telefon überall
mit seinem Besitzer hingehen kann, für die Leute, die diesen Besitzer
zu erreichen versuchen, wenn sich das Telefon in Benutzung befindet,
der Besitzer so unerreichbar bleiben, als wenn er kein drahtloses
Telefon mit sich tragen würde.
Je mehr der Besitzer eines solchen Gerätes es verwendet, umso wahrscheinlicher wird
es sein, dass er nicht wissen wird, dass irgendjemand sonst ihn
zu erreichen versucht hat, und somit wird er wichtige Anrufe verfehlen.
-
Ein augenscheinlicher Vorteil von
vielen der neuen kommerziell erhältlichen
Dialogeinrichtungen ist der, dass sie die Möglichkeit der größeren Mobilität für den Anwender
bieten. Leider ist es jedoch nicht immer in der Nähe des Bürotelefons,
das eine Geschäftsperson
an das Büro
anbindet. Das Büro
liefert andere Dienstleistungen, die ebenfalls wichtig sind und
nicht so mobil sein können.
Um somit vollständig
die größere Mobilität zu verwirklichen,
die durch die neuen Dialogeinrichtungen und Medien geboten werden,
müssen
diese neuen Technologien in einer Weise vorgegeben werden, die der
Abhängigkeit
der Geschäftsperson
von anderen Dienstleistungen neben der Kommunikation Rechnung tragen.
-
Die internationale Patentanmeldung
mit der Veröffentlichungsnummer
WO 91/07838 ist auf ein Telefon-Steuersystem gerichtet, das für die Teilnehmer
eine Vielzahl von Anruf-Beantwortungsfunktionen vorgibt. Wenn einmal
eine Verbindung zwischen dem Teilnehmer und dem Anrufer errichtet
worden ist, so liefert es Anruf-Behandlungsfunktionen
nur aufgrund von Zahleneingaben des Teilnehmers.
-
Die internationale Patentanmeldung
mit der Veröffentlichungsnummer
WO 91/18466 beschreibt ein System zur Vorgabe von Anruf-Dienstleistungen
nach der Beendigung eines Anrufes. Das System erfordert, dass der
Teilnehmer einen vorbestimmten Dienstleistungs-Zugriffscode eingibt,
damit Anruf-Dienstleistungen nach Beendigung vorgegeben werden.
-
Gemäß der vorliegenden Erfindung
wird ein Verfahren vorgegeben, das durch einen auf einem Computer
beruhenden elektronischen Assistenten zum Verwalten von Informations-
und Verbindungsressourcen für
mindestens einen Teilnehmer verwirklicht wird und das gekennzeichnet
ist durch: Herstellung einer ersten Verbindung zwischen dem elektronischen
Assistenten und dem Teilnehmer, Identifizieren des Teilnehmers, Starten
einer ersten Sitzung zwischen dem elektronischen Assistenten und
dem Teilnehmer, wobei die erste Sitzung eine Folge von Code-Ausführungen
zum Verwalten von Daten und zum Ausführen von Funktionen seitens
des Teilnehmers ist; Empfang eines ersten Befehls innerhalb der
ersten Sitzung, der vom Teilnehmer über die erste Verbindung an
den elektronischen Assistenten gesendet wird, wobei der erste Befehl
den elektronischen Assistenten anweist, eine Funktion auszuführen; Reagieren
auf den ersten Befehl innerhalb der ersten Sitzung durch Ausführen der
Funktion, wobei die Funktion das Verwalten der Informations- und
Verbindungsressourcen wie vom Teilnehmer angegeben umfasst; und
Umschalten des elektronischen Assistenten zwischen einem Vordergrund-Betriebsmodus, in
dem der Teilnehmer den elektronischen Assistenten interaktiv anweist
Funktionen auszuführen,
und einem Hintergrund-Betriebsmodus, in dem der elektronische Assistent die
Teilnehmerverbindung überwacht
und auf einen eingeschränkten,
kleineren Satz von Befehlen reagiert.
-
Die hier beschriebene Erfindung bezieht
sich auf einen elektronischen Assistenten. Sie ist eine auf einem
Computer verwirklichte Einheit, die einen Teilnehmer bei seinem
Dialog unterstützt,
indem sie Aufgaben ausführt,
die ihr delegiert wurden. Der elektronische Assistent, der so gestaltet
ist, dass er menschliche Eigenschaften besitzt, erkennt Sprache
und führt
Funktionen innerhalb des üblichen
Modells eines Büros
aus.
-
Jedem Teilnehmer, der ein Konto besitzt,
ist wenigstens ein elektronischer Assistent zugeordnet, der ihm
gewidmet sein kann oder gemeinsam benutzt wird. Der elektronische
Assistent liefert sowohl dem Teilnehmer als auch irgendwelchen Kontakten
oder anderen Anrufern, die den Teilnehmer zu erreichen versuchen, Dienstleistungen.
Ein Kontakt ist eine Person, ein Ort oder eine Gruppe, die der Teilnehmer
für den
elektronischen Assistenten beschrieben hat. Ein Kontakt kann ein
anderer Teilnehmer oder ein Anrufer von außerhalb sein. Elektronische
Assistenten behandeln sowohl die Teilnehmer als auch die Kontakte
als Anwender des Systems.
-
Der elektronische Assistent bietet
seinem Teilnehmer einen breiten Bereich von Dienstleistungen, unter
denen sich die folgenden befinden. Der elektronische Assistent kann
eingehende Anrufe von verschiedenen persönlichen Kontakten des Teilnehmers
handhaben, während
er zur gleichen Zeit irgendeine seiner Aufgaben erfüllt, einschließlich der
Durchsicht von Nachrichten mit dem Teilnehmer, der Verwaltung von
Information usw. Er kann logische Entscheidungen darüber treffen,
wie eingehende Anrufe von den Kontakten des Teilnehmers zu verwalten
sind, ob sie weiterzuleiten sind und wohin sie weiterzuleiten sind.
Der elektronische Assistent kann ebenfalls mit dem Teilnehmer und
den Kontakten des Teilnehmers unter Verwendung einer großen Vielfalt
unterschiedlicher Dialogeinrichtungen kommunizieren, wie z. B. Telefonen,
Faxgeräten,
Pager, Computer-Terminals und durch den Dialog frei gegebene, in
der Hand gehaltene Einrichtungen (z. B. persönliche digitale Assistenten,
die anderweitig als PDAs bezeichnet werden). Wenn der Teilnehmer
einen Kontakt zu erreichen versucht oder ein Kontakt den Teilnehmer
zu erreichen versucht, so vermittelt der elektronische Assistent
die Verbindung und bleibt sodann verfügbar, um die Sitzung zu unterstützen. Der
elektronische Assistent kann Erinnerungen für seinen Teilnehmer planen
und verwalten. Wenn Erinnerungen fällig werden, macht der elektronische
Assistent den Teilnehmer darauf aufmerksam.
-
In bevorzugten Ausführungsbeispielen
gestattet der elektronische Assistent der Einzelperson, seine Verfügbarkeit
für Freunde,
die Familie, Geschäftspartner,
Kunden und Fremde, in Abhängigkeit
von der Tageszeit, dem Wochentag und seinen Bedürfnissen zu verwalten. Zusätzlich besitzt
der elektronische Assistent den Terminplan des Teilnehmers und weiß daher,
wo sich der Teilnehmer befindet, was er macht, wie er verfügbar ist
und wie er zu erreichen ist (z. B. über welche Dialogeinrichtung).
Der Terminplan wird verwendet, um die Zugänglichkeit des Teilnehmers
für andere
und seine Sichtbarkeit für
andere Teilnehmer des Systems zu verwalten.
-
Andere Vorteile und Merkmale gehen
aus der folgenden Beschreibung des bevorzugten Ausführungsbeispiels
und aus den Ansprüchen
hervor.
-
Kurze Beschreibung
der Zeichnungen
-
1 zeigt
den elektronischen Assistenten und Büroelemente; 2 zeigt die Hardware-Plattform;
-
3 ist
eine Funktionsübersicht
der Software-Architektur; 4 ist
eine Prozessübersicht
der Software-Architektur;
-
5 ist
ein Funktions-Blockdiagramm des Systems, das die Hardware-Schnittstelle mit
den Dialogkanälen
hervorhebt,
-
6A–H veranschaulichen den Prozess der Vervollständigung
einer Aufgabe und der beteiligten Objekte;
-
7 veranschaulicht
die Verwendung der Box, der Hand und des Fingers bei der Handhabung
von Gegenständen;
-
8 ein
Beispiel eines MMUI-Menüs;
-
9 zeigt
ein Beispiel eines MMUI-Menüs
mit Mogulen;
-
10A–D zeigen die Beziehung zwischen Vermerken,
Menüs und
Mogulen; 11 veranschaulicht den
Prozess der Niederlage und Abgabe einer Nachricht und der beteiligten
Objekte;
-
12 veranschaulicht
den Prozess der Abgabe von Erinnerungen und der beteiligten Objekte;
-
13 zeigt
den Inhalt einer Box;
-
14 zeigt
den Inhalt eines Benutzerobjektes;
-
15 zeigt
die Beziehung zwischen Benutzerobjekten und Kontakten;
-
16 zeigt
den Fluss von Ereignissen zwischen der VM und den Agentensitzungen
und der Hardware,
-
17 zeigt
die internen Objekte der VM und ihre Beziehung zueinander;
-
18A–B veranschaulichen den Prozess der Bildung
eines Kanals und die daran beteiligten Objekte;
-
19 veranschaulicht
den Betrieb zur Vorlage von Vermerken und Menüs an Anschlüssen;
-
20 zeigt
die Funktionsbeziehung zwischen den Agenten und den Anwendungs-Dienstleistungen;
-
21 zeigt
den Datenfluss in einer Sitzung des Assistenten;
-
22 zeigt
die Klassenhierarchie des Agenten;
-
23A–D stellen ein Beispiel eines Handschlags
mit drei Teilen dar;
-
24A–B sind ein Flussdiagramm der Anruf-Antwort-Aufgabe;
-
25A–D veranschaulichen die Verwendung eines
Konferenzobjektes bei der Errichtung eines Anrufs zwischen Teilnehmern;
-
26 ist
ein Flussdiagramm der Lokalisier- und Vermerkaufgabe;
-
27 ist
ein Flussdiagramm der Vermerkaufgabe;
-
28 zeigt
einen „Bilde
einen Kontakt"-Dialog
mit dem elektronischen Assistenten;
-
29 zeigt
einen „Erinnere
mich"-Dialog mit
dem elektronischen Assistenten;
-
30 zeigt
einen „Erinnere
mich an einen Anruf"-Dialog
mit dem elektronischen Assistenten;
-
31 ist
ein Flussdiagramm der Erinnerungs-Handhabungsaufgabe;
-
32 zeigt
einen „Auffinde"-Anweisungsdialog;
-
33 zeigt
einen „Ich
bin es"-Dialog und
-
34 zeigt
einen „Bilde
eine Route"-Dialog.
-
Beschreibung
der bevorzugten Ausführungsbeispiele
-
Das virtuelle Büro:
-
Wie in 1 veranschaulicht, arbeitet ein Teilnehmer
mit einem elektronischen Assistenten 10 unter Verwendung
eines „virtuellen
Büros" als einem Modell.
Der elektronische Assistent 10 arbeitet in einem Büro, das
die Objekte des Teilnehmers enthält,
die als „Elemente" bezeichnet werden.
Ein Element ist ein Stück
Information, das der elektronische Assistent in einer Datenbank
speichert und das für
den Teilnehmer arbeitet. Der Teilnehmer kann gesprochene oder Tasten-Anweisungen
verwenden, um den elektronischen Assistenten mit verschiedenen Assistenten
arbeiten zu lassen, und der elektronische Assistent verwendet dann
einen Dialog, um die Information zu sammeln, die er vom Teilnehmer
benötigt,
um die Aufgabe zu vervollständigen.
-
Ein Element kann irgendeines der
folgenden Elemente sein: ein Terminplan 12, ein Kontakt 16 (z.
B. eine Person 18, ein Ort 22 oder eine Gruppe 20),
eine Nachricht 14, eine Erinnerung 24, ein Telefonbuch 26 oder
Abfall 28. Nachrichten können andere Elemente umfassen,
z. B. einen Kontakt, eine Erinnerung, eine Seite usw. In abgeleiteten
Verwirklichungen kann eine Nachricht irgendeine Art von Multimedia- oder zusammengesetzte
Information sein.
-
Ein „Terminplan" listet auf, wo der
Teilnehmer zu erreichen ist und zu welcher Zeit. Es gibt einen Default-Terminplan
und eine Übersteuer-Terminplan.
Der Default-Terminplan
ist der tägliche
oder wöchentliche Terminplan
des Teilnehmers; er wird durch einen System-Administrator eingegeben.
Teilnehmer können
den Default-Terminplan
mit einer „Ich
bin hier"- oder „Bilde
eine Route"-Anweisung übersteuern,
um einen Übersteuer-Terminplan
zu bilden (siehe Anhang A am Ende der Beschreibung für eine Liste
von gesprochenen und Tasten-Anweisungen, die ein elektronischer
Assistent verwirklicht). Die „Ich
bin hier"-Anweisung
gestattet dem Teilnehmer anzuzeigen, wann und wo er erreicht werden
kann und seine Verfügbarkeit
zu jenen Zeiten.
-
Ein „Kontakt" ist die Betrachtung des Teilnehmers
einer Person, eines Ortes oder einer Gruppe. Der Teilnehmer kann
einen Kontakt als Empfänger
einer Anweisung verwenden, wie z. B. das Vornehmen eines Anrufes
oder das Senden einer Voice-Mail.
Ein Kontakt ist analog zu einem Eintrag in einer Adressbuch-Datei. Ein „Außenkontakt" ist ein Kontakt,
der nicht durch einen Teilnehmer vorgegeben ist.
-
Eine „Person" ist eine Darstellung einer Person,
die einen anderen Teilnehmer beschreibt oder jemanden außerhalb
des Systems. Die Beschreibung umfasst den gesprochenen Namen, den
buchstabierten Namen, die Priorität, das Geschlecht und eine
Liste der Orte, an denen die Person erreicht werden kann.
-
Ein „Ort" ist ein Ort mit einer einzigen Adresse
(z. B. eine Telefonnummer, Faxnummer, Netzwerkidentifizierung usw.),
die ihm zugeordnet ist. Jede Person kann eine Standardgruppe von
Orten umfassen: Arbeit, Heim, Auto, Mobil und andere. Ein Unternehmen,
eine Abteilung oder eine andere Organisation wird ebenfalls als
Ort angesehen und kann eine Telefon- und Faxnummer umfassen.
-
Eine „Gruppe" ist eine durch den Benutzer definierte
Gruppe von Personen, Orten und/oder Gruppen.
-
Eine „Nachricht" ist ein Stück Information, das an eine
Person oder Gruppe adressiert ist. Die üblichste Art von Nachricht
ist eine Voice-Mail.
-
Eine „Erinnerung" ist ein Vermerk,
der zu einem zukünftigen
Zeitpunkt abzugeben ist. Die Erinnerung kann ein Vermerk sein, einen
Kontakt über
einen bestimmten Gegenstand anzurufen („Anruf-Erinnerung"), oder ein Vermerk,
der eine aufgezeichnete Hörnachricht über einen
anderen Gegenstand enthält
(„aufgezeichnete
Erinnerung").
-
Ein „Telefonbuch" ist eine Liste von
Benutzern eines anderen Systems, das zum leichten Zugriff veröffentlicht
ist.
-
Der Abfall" ist eine Sammlung aller Elemente, die
der Teilnehmer weggeworfen hat.
-
In dem beschriebenen Ausführungsbeispiel
kann der elektronische Assistent spezifische Wörter oder Sätze erkennen, die als Sprachelemente
bezeichnet werden. Um die Sprache eines Teilnehmers zu erkennen, sammelt
der elektronische Assistent Trainings-Sprachelemente vom Teilnehmer,
die Aufzeichnungen in der Art und Weise sind, wie der Teilnehmer
ein Wort oder einen Satz ausspricht. Der Prozess der Sammlung dieser Trainings-Sprachelemente
wird manchmal als „Training" bezeichnet, insofern,
als der Teilnehmer den elektronischen Assistenten trainiert, seine
Stimme zu erkennen. Zum Beispiel kann der elektronische Assistent
den Teilnehmer bitten, seinen vollständigen Namen oder den Namen
einer Anweisung mehrere Male zu sagen. Diese Sprachelemente werden
sodann in ein komprimiertes Format umgesetzt, das als Wörterbuch
bekannt ist. Ein „Wörterbuch" ist eine endgültige Gruppe
von aufgezeichneten Wörtern
und Sätzen,
die direkt durch die Spracherkennungs-Hardware des Systems verwendet
werden können,
um die Sprache des Teilnehmers zu erkennen.
-
Der elektronische Assistent verwendet
zwei unterschiedliche Arten von Wörterbüchern, nämlich ein vom Sprecher abhängiges und
ein vom Sprecher unabhängiges
Wörterbuch.
Das vom Sprecher abhängige Wörterbuch
wird verwendet, um die Sprache von Benutzern zu erkennen, die den
elektronischen Assistenten explizit mit ihrer eigenen Aussprache
trainiert haben. Das vom Sprecher unabhängige Wörterbuch wird verwendet, um
mehrere unterschiedliche Stimmen zu erkennen, ohne dass es erforderlich
ist, dass jeder Benutzer das System trainiert.
-
Zusätzlich zu diesen unterschiedlichen
Arten von Wörterbüchern benutzt
der elektronische Assistent zwei unterschiedliche Verfahren, um
Sprache zu erkennen, nämlich
eine kontinuierliche Erkennung und eine diskrete Erkennung. Die
kontinuierliche Erkennung erkennt natürlich gesprochene Wörter oder
Folgen von Wörtern,
d. h. Wörter
ohne künstliche
Pause dazwischen. In dem beschriebenen Ausführungsbeispiel gibt es zwei
Wörterbücher mit
kontinuierlicher Erkennung: Zahlen (die Ziffern „1" bis „9", „0" und „O" und ja/nein („ja" und „nein"). Die kontinuierliche
Erkennung unterscheidet ebenfalls zwischen Wörtern wie „ähm" und „ah". Die diskrete Erkennung erkennt diskrete,
getrennte Wörter
oder Sätze
oder Folgen von unterschiedlich gesprochenen Wörtern, die durch Pausen getrennt
sind.
-
Der elektronische Assistent antwortet
auf eine Vielzahl von Anweisungen (s. Anhang A). Einige Anweisungen
arbeiten mit dem laufenden Zusammenhang zur Hand (später beschrieben),
während
andere dies nicht tun. Einige Anweisungen beginnen einen Dialog
zwischen dem elektronischen Assistenten und dem Teilnehmer, so dass
der Assistent die Information sammeln kann, die er benötigt, um
die Aufgabe auszuführen. Zum
Beispiel kann der Teilnehmer, um einen Kontakt anzurufen, die „Anruf"-Anweisung verwenden:
Teilnehmer | Assistent |
Anrufen | Wen
anrufen? |
Bill
Bishop | Wo? |
Arbeit | Wählen ... |
-
Funktionsbeschreibung
der Benutzer-Schnittstelle
-
Bevor in die Einzelheiten der Hardware
und Software-Architektur des Systems gegangen wird, sei eine Beschreibung
gegeben, wie das System einen eingehenden Anruf an einen Teilnehmer
handhabt. Dies wird den Zusammenhang vorgeben, um sodann die zugrunde
liegenden Mechanismen zu beschreiben, die in dem System umgesetzt
sind, um ihre Funktion zu erfüllen.
-
Während
des Restes dieser Beschreibung wird, mit Ausnahme, wenn es anders
vermerkt ist, angenommen, dass der Teilnehmer John Smith heißt und der
Anrufer Bill Bishop.
-
Wenn ein Anrufer in dem System einen
Anruf in einem Versuch macht, einen bestimmten Teilnehmer zu erreichen
(d. h. durch Anruf einer Telefonnummer, die diesem Teilnehmer zugeordnet
ist), so beantwortet das System den Anruf. Durch Abspielen von Hörsignalen,
die in der Datenbank des Systems gespeichert sind, gibt das System
dem Anrufer an:
Guten Morgen, ich bin der elektronische Assistent
für John
Smith. Bitte sagen Sie Ihren vollen Namen.
-
Der Anrufer antwortet durch Angabe
seines Namens:
Bill Bishop
-
Das System zeichnet die Sprachelemente
des Anrufers auf und benutzt ein vom Sprecher abhängiges Wörterbuch,
das in der Datenbank des Systems gespeichert ist, wobei es versucht,
den Anrufer zu erkennen. Wenn das System den Namen des Anrufers
nicht erkennen kann, antwortet es durch Abspielen der folgenden Nachricht:
Verwenden
Sie die Tasten, geben Sie Ihre Vorwahl und Telefonnummer ein, gefolgt
durch die Taste #.
-
Der Benutzter gibt seine Telefonnummer
wie gefordert ein. Das System decodiert die Tastenwahl und sucht
sodann eine Kontaktliste für
den Teilnehmer ab, um einen Kontakt mit dieser Telefonnummer zu
finden. Wenn das System erfolgreich ist bei der Erkennung des Anrufers
auf der Basis seiner Telefonnummer, so spielt es die folgende Nachricht
an den Anrufer ab:
Würden
Sie sich einen Moment Zeit nehmen, mir anzugeben, wie ich Ihren
Namen besser erkennen kann?
-
Der Anrufer kann dieses Angebot annehmen,
indem er „9" auf seiner Tastatur
drückt.
-
Das System antwortet dann durch Abspielen
der folgenden Nachricht:
Bitte wiederholen Sie Ihren vollen
Namen.
-
Nach nochmaliger Wiederholung dieser
Operation speichert das System die Aussprachen mit der Identität des Kontaktes.
Beim nächsten
Mal, wenn der Anrufer das System kontaktiert, wird es die gespeicherte Aussprache
des Namens verwenden, um den Anrufer zu erkennen.
-
Wenn der Assistent den Anrufer einmal
erkannt hat, entweder durch eine Übereinstimmung mit einer gespeicherten
Aussprache oder durch die Telefonnummer des Anrufers oder wenn er
den Anrufer als unbekannt bezeichnet, versucht er, den Teilnehmer
zu lokalisieren. Er tut dies durch Ausführen einer Folge von Operationen,
von denen die Erste darin besteht, den Status des Teilnehmers zu überprüfen. Wenn
der Teilnehmer momentan eine mit seinem Assistenten errichtete Verbindung
besitzt (und er eine „Nicht
Stören"-Funktion nicht frei
gegeben hat), ist sein Status „verfügbar". Wenn der Teilnehmer
nicht verbunden ist, kann der Assistent eine sekundäre Informationsquelle
(wie z. B. ein Zellennetzwerk) überprüfen, um
die Verfügbarkeit
des Teilnehmers festzustellen. Schließlich wird der Assistent den
Terminplan des Teilnehmers überprüfen. Der
Teilnehmer kann seine Verfügbarkeit
einstellen, um anzuzeigen, dass er alle Anrufe annimmt, dass er
keine Anrufe annimmt oder dass er nur wichtige Anrufe annimmt.
-
Wenn der Teilnehmer keine Anrufe
annimmt, so spielt das System dem Anrufer die folgende Nachricht ab:
Tut
mir Leid, er ist nicht verfügbar.
Bitte hinterlassen Sie eine Nachricht und legen Sie dann auf oder
drücken Sie
die Taste „#". Aufzeichnung.
-
Nachdem der Anrufer geendet hat,
kann das System einen nicht-interaktiven Vermerk an den Teilnehmer
senden, dass ihn der Anrufer gerade versucht hat zu erreichen. Es
tut dies z. B. durch Senden einer Seite über seine Pager-Schnittstelle
oder Senden einer E-Mail-Nachricht an die Arbeitsstation des Teilnehmers.
Der Vermerk identifiziert den Anrufer und zeigt an, ob eine Voice-Mail
hinterlassen wurde.
-
Wenn der Teilnehmer nur wichtige
Anrufe annimmt, überprüft das System
die Kontaktliste des Teilnehmers, um festzustellen, welches die
Priorität
des Teilnehmers ist. Der Teilnehmer kann den Kontakt entweder mit
hoher Priorität
oder mit normaler Priorität
festlegen, und diese Information wird mit anderen Informationen über den
Kontakt gespeichert. Wenn der Anrufer nur normale Priorität besitzt,
so berichtet das System, dass der Teilnehmer nicht verfügbar ist
und bietet dem Anrufer die Optionen an, eine Voice-Mail zu hinterlassen
wie zuvor beschrieben. Wenn andererseits der Anrufer eine hohe Priorität besitzt,
so fährt
das System fort mit seinem Versuch, den Teilnehmer zu lokalisieren
und ihre von dem Anruf zu berichten.
-
In dem Fall, in dem der Teilnehmer
alle Anrufe annimmt, fährt
das System mit dem Versuch fort, den Teilnehmer zu lokalisieren
und ihm von dem Anruf zu berichten, ohne Rücksicht auf die Prioritätsfestelegung des
Anrufers.
-
Als erster Schritt bei der Lokalisierung
des Teilnehmers stellt das System fest, ob der Teilnehmer bereits
mit dem System verbunden ist, entweder über einen anderen Anruf oder über irgendein
anderes Dialogmedium (z. B. in seinem Computer protokolliert). Wenn
sich der Teilnehmer bei einem anderen Anruf befindet, der durch
das System gehandhabt wird, so unterbricht das System kurz diesen
Anruf, um dem Teilnehmer mitzuteilen, dass er einen wartenden Anruf
hat, und es identifiziert den Namen des Anrufers. Wenn der Anrufer ebenfalls
in dem System durch seinen Computer protokolliert ist, kann das
System ebenfalls eine visuelle Nachricht an die Arbeitsstation senden,
um dem Teilnehmer den Anruf mitzuteilen und den Anrufer zu identifizieren.
-
Der Teilnehmer hat sodann die Möglichkeit,
den Anruf anzunehmen, das System zu bitten, den Anrufer auf Warteschleife
zu halten, während
er seinen momentanen Anruf vervollständigt, oder das System zu bitten, eine
Nachricht anzunehmen.
-
Wenn der Teilnehmer den Anruf annimmt,
antwortet der elektronische Assistent, indem er unmittelbar eine
Verbindung zwischen dem Anrufer und dem Teilnehmer herstellt. Wenn
der Teilnehmer das System instruiert, eine Nachricht aufzunehmen,
so bietet das System dem Anrufer die zuvor erwähnte Option der Voice-Mail.
Wenn der Teilnehmer das System instruiert, den eingehenden Anruf
auf Warteschleife zu nehmen, so informiert das System den Anrufer,
dass der Teilnehmer in kurzer Zeit bereit ist. Wenn der Teilnehmer
seinen anderen Anruf beendet hat, instruiert er unter Verwendung
von gesprochenen Anweisungen das System, sodann eine direkte Verbindung
mit dem neuen Anrufer zu errichten.
-
Wenn das System feststellt, dass
der Teilnehmer sich gegenwärtig
nicht bei einem Anruf befindet, aber mit dem System verbunden ist
oder durch seine Arbeitsstation oder durch eine andere Zweiweg-Dateneinrichtung
erreichbar ist, so kann es eine Nachricht senden, die auf dem Anzeigeschirm
der Einrichtung dargestellt wird. Die Nachricht umfasst ein Menü, das dem
Teilnehmer die Möglichkeit
anbietet, den Anruf anzunehmen oder nicht anzunehmen. Wenn der Teilnehmer
den Anruf annimmt, so teilt das System dem Anrufer mit, dass der
Teilnehmer in Kürze
mit ihm verbunden ist. In der Zwischenzeit ruft der Teilnehmer über ein
anderes Telefon im System an, und das System verbindet ihn mit dem
Anrufer.
-
Wenn der Teilnehmer den Anruf nicht
annimmt oder nicht innerhalb einer vorbestimmten Zeitperiode antwortet,
teilt das System dem Anrufer mit, dass es nicht in der Lage war,
den Teilnehmer zu lokalisieren, und es bietet dem Anrufer die Möglichkeit
an, eine Voice-Mail zu hinterlassen.
-
Wenn der elektronische Assistent
das Vorliegen eines Teilnehmers im System nicht feststellen kann, prüft er, ob
dessen Adresse in einem oder mehreren Plänen angezeigt ist, die das
System für
den Teilnehmer bereithält.
Wenn es einen Plan gibt, der den Teilnehmer an einer bestimmten
Adresse zu diesem Moment vorgibt und wenn es Telefonnummern gibt,
die diese Adresse identifizieren, so gibt der elektronische Assistent einen
Anruf zu einer der Telefonnummern. Zusätzlich kann der Assistent eine
oder mehrere zusätzliche
Quellen von Teilnehmer-Adressinformationen überprüfen (wie
z. B. Datenbanken eines Zellennetzwerkes).
-
Wenn eine Partei den Anruf beantwortet,
so spielt der elektronische Assistent die folgende Nachricht an
die antwortende Partei ab:
Hallo, ich versuche Jim Smith zu
erreichen. Wenn er verfügbar
ist, drücken
Sie die Taste „9". Wenn er nicht verfügbar ist,
drücken
Sie die Taste „6" oder hängen Sie
auf.
-
Wenn die den Anruf beantwortende
Partei anzeigt, dass Jim Smith verfügbar ist, so sagt der elektronische
Assistent:
Hier ist ein Anruf von Bill Bishop. Wünschen Sie
den Anruf anzunehmen?
Zeigen Sie Ja durch Drücken der
Taste „9" an, zeigen Sie Nein
durch Drücken
der Taste „6" an.
-
Wenn die Partei anzeigt, dass sie
den Anruf annehmen will, verbindet der elektronische Assistent den Anrufer
mit dem Teilnehmer.
-
In dem Fall, in dem der elektronische
Assistent nicht in der Lage ist, eine Verbindung mit dem Teilnehmer
herzustellen, kann er einen nicht-interaktiven Vermerk an den Teilnehmer
senden, der anzeigt, dass Bill Bishop ihn zu einer bestimmten Zeit
angerufen hat.
-
Hardware-Architektur
-
2 die
grundlegenden Hardware-Komponenten des beschriebenen Ausführungsbeispiels.
Das System besteht aus einem Computer der Serie 486 mit
hoher Leistung, der mit einem ISA-Bus 40 mit einer passiven
Hintergrundplatine ausgerüstet
ist. Der Computer umfasst eine CPU-Karte 42 und Anzeigeadapter (nicht
gezeigt). Die passive Hintergrundplatine ist ein separater Bus,
der kein Teil der CPU-Karte
ist (d. h. der Trägerplatine).
Eine Gruppe ISA-Adapter (nicht gezeigt) ist in die passive Rückwandplatine
eingelassen, um das 486er Computersystem zu bilden. Schnittstellenkarten 44 und
die CPU-Karte sind direkt mit dem ISA-Bus verbunden. Die passive
Rückwandplatine
kann bis zu 20 Schnittstellenkarten aufnehmen.
-
Die Schnittstellenkarten sind Karten
für spezielle
Zwecke, um viele unterschiedliche Formen der Verbindung und des
Dialogs zu unterstützen.
Sie umfassen Netzwerkkarten zur Verbindung mit digitalen Standard-Telefonleitungen
sowie Adapter für
spezielle Zwecke zur Spracherkennung, zur Herstellung von Telefonanrufen
und zum Senden und Empfangen von Faxmitteilungen usw.
-
Ein Multi-Vendor Integration Protocol
(= MVIP)-Bus, bestehend aus einem Bandkabel mit 40 Stiften ist mit
allen Schnittstellenkarten verbunden und gibt Telefondienstleistungen
vor. Der MVIP-Bus ist ein Hochgeschwindigkeits-Dialogkanal, der den gesamten Hörverkehr
zwischen den Schnittstellenkarten und den Telefonleitungen ausführt.
-
Schließlich besitzt das System auch
fest angeordnete und entfernbare Speicher, die eine Gruppe von Plattenantrieben 48 mit
hoher Kapazität
und hoher Geschwindigkeit und einen Antrieb 50 für eine Floppy-Disk umfassen.
-
Ein Grundsystem, das acht Anschlüsse unterstützt, besitzt
einen Plattenspeicherraum von 2 GB und einen Speicher mit 32 MB
mit einem zusätzlichen
Plattenspeicherraum von 1 GB und einem Speicher mit 8 MB für jede zusätzliche
Gruppe von acht Anschlüssen.
Das beschriebene Ausführungsbeispiel
unterstützt
maximal 24 Anschlüsse.
-
In dem beschriebenen Ausführungsbeispiel
wird die folgende, spezifische Hardware verwendet. Die Leitungs-Schnittstellenkarten
sind entweder Natura) MicroSystems-DTI-48 T1-Karten, welche die Verbindung von
zwei T1-Kanälen
unterstützen
oder Voice Technology Group Voice Brigde PC PBX-Karten, die acht
Leitungen der Gruppenemulation einer PBX-Station unterstützen. Die
Leitungs-Verarbeitungskarten sind Natura) MicroSystems-AG-8-Karten,
die jeweils acht Telefonkanäle
unterstützen.
Die ASR-Tochterkarten sind DB-31-Karten von Natura) MicroSystems,
und es gibt eine DB-31-Karte für
jede AG-8-Leitungs-Verarbeitungskarte. Die Tochterkarte führt Spracherkennung
nur für
Namen aus. Eine weitere vorgesehene ASR-Karte ist eine VPro-84-Karte
der Firma Voice Processing Corporation. Es gibt eine VPro-84-Karte
für jede
AG-8-Leitungs-Verarbeitungskarte. Die VPro-84-Karte führt eine
Spracherkennung von Anweisungen und Ziffern aus und unterstützt bis
zu acht diskrete Spracherkenner oder vier kontinuierliche Spracherkenner.
-
Der MVIP-Bus unterstützt bis
zu 256 Voll-Duplex-Telefonverbindungen. Die 256 Voll-Duplex-Verbindungen
werden im Zeitmultiplex (TDM) betrieben, so dass nur 32 getrennte
Signale übertragen
werden, von denen jedes in acht Zeitschlitze unterteilt ist. Verbindungen
zwischen zwei Dialogkanälen
werden verwirklicht durch Softwaresteuerung eines jeden der Kanäle, um Zugriff
zu den Zeitschlitzen des anderen Kanals zu besitzen. Das heißt, dem
Eingang eines jeden Kanals wird gestattet, auf den Ausgang des anderen
Kanals zu hören.
-
Andere mögliche Hardware-Konfigurationen
-
Die Beschreibung zuvor stellt eine
mögliche
Architektur dar, die eine Anzahl von Hardware-Elementen innerhalb
eines einzigen Computer-Chassis konzentriert, einschließlich mehrerer
Spezialzweck-Schnittstellenkarten, die über einen Spezialzweck-Bus
miteinander verbunden sind. Viele andere Hardware-Organisationen können ebenfalls
verwendet werden, um die beschriebene Funktion zu unterstützen. Die
grundlegenden benötigten
Elemente sind: 1) ein oder mehrere Basis-Computersystemmittel zur
Unterstützung
des Programms und der Daten wie beschrieben, 2) Unterstützung eines
oder mehrerer eingehender Dialogkanäle und Unterstützung für den Empfang
und die Erzeugung von Verbindungen auf den entsprechenden Kanälen und
3) ein schaltendes Systemmittel, um mehrere Dialogkanäle zusammenzuschalten.
-
Es ist möglich, dass diese Systemmittel über mehrere
Systeme verteilt sind. Zum Beispiel kann in einer möglichen
Verwirklichung ein getrenntes Schalt-Systemmittel an Computer angeschlossen
sein, die Hardware für
die Verwaltung der Dialogkanäle
enthalten. Diese Computer, welche die Dialogkanäle verwalten, sind dann über ein
Netzwerk an größere Systeme
angeschlossen, auf denen die Anwendungen laufen und die Datenbank-Dienstleistungen
vorgeben. Die Anwendungen und die Datenbank-Dienstleistungen können weiterhin über mehrere
Systeme aufgespalten sein.
-
In noch anderen Hardware-Konfigurationen
kann es erwünscht
sein, die Systemmittel noch mehr zu konsolidieren, als es bei dem
vorliegenden Ausführungsbeispiel
beschrieben ist. Zum Beispiel kann ein einziger Computer eine eingesetzte
Karte besitzen oder eine Karte auf der Trägerplatine unterstützen, um
die Dialogkanäle
zu handhaben. Die Umschaltung zwischen diesen Kanälen kann
durch Hard- oder Software erfolgen. Auf diese Weise laufen die Anwendungen
und die Datenbank auf einem einzigen Computer mit der notwendigen
Hardware-Unterstützung, um
alle notwendigen Dialogkanäle
zu verwalten.
-
Software Architektur
-
Die folgende Beschreibung stellt
zwei unterschiedliche Betrachtungsweisen der Software-Architektur des
Systems dar: eine, die die funktionellen Komponenten betont und
eine andere, die die Prozesse und Ereignisse betont.
-
Funktionelle Betrachtung:
-
3 zeigt
die high-level Software-Architektur des Systems. Bei dieser und
folgenden Veranschaulichungen der Prozesse sind die Strukturobjekte
symbolisch durch Icons dargestellt, die ein auf die Funktion der dargestellten
Einheit bezogenes Auftreten besitzen.
-
Das System umfasst vier primäre Komponenten.
Eine primäre
Komponente umfasst Assistenten 60 und Agenten 62.
Die Assistenten führen
Aufgaben mittels Anwender aus, und die Agenten führen Aufgaben mittels Assistenten
aus. Eine andere primäre
Komponente ist ein Dialogmechanismus, der eine Multimedia-Benutzerschnittstelle
(MMUI) 64 und einen Paketmechanismus 66 umfasst.
Diese gestatten den Assistenten und Agenten den Dialog mit anderen
Systemkomponenten. Eine dritte primäre Komponente ist eine Objekt-Datenbank 68,
die Benutzerinformationen speichert, wie z. B. Kontakte und Nachrichten,
und Systeminformationen, wie z. B. Aufforderungen. Die vierte primäre Komponente
ist eine virtuelle Maschine (VM) 70, die Anforderungen von Assistenten
und Agenten sowie von Hardware-Einrichtungen behandelt. Die Pfeile
in 3 zeigen die primären Wege
für den
Fluss der Wirkungen zwischen den verschiedenen Komponenten.
-
Das beschriebene Ausführungsbeispiel
verwendet das Univell UnixwareTM-Betriebssystem 72,
das auf dem Betriebssystem des Unix-Systems V, Release 4.2, beruht.
Die Objekt-Datenbank ist die objektorientierte Datenbank ObjectStoreTM von Object Design, Inc.
-
Andere mögliche Software-Konfigurationen
-
In dem beschriebenen Ausführungsbeispiel
befinden sich die VM, die Assistenten, die Agenten und die Datenbank
alle in einem Zentralcomputer. Es gibt jedoch nichts in der Architektur,
was dieses erfordert. Andere Verwirklichungen können diese Komponenten voneinander
trennen, und sie können
auf getrennten Computern ablaufen, wobei die zuvor erwähnte externe
Prozedur den Dialog zwischen den unterschiedlichen Prozessen aufruft.
-
Prozessbetrachtung
-
4 fasst
die Prozess-Architektur des Systems zusammen. Das System besteht
aus einem virtuellem Maschinen-Serviceprozess 80 (VM-Server)
und einem Prozess 82 für
jeden Fall eines elektronischen Assistenten oder Agenten. Jeder
Prozess einer Sitzung steht mit dem VM-Server unter Verwendung von
externen Prozeduraufrufen (remote procedure calls, RPCs) 84 in
Dialog. Der VM-Server behandelt diese RPCs der Sitzungsprozesse
und er behandelt ebenfalls Ereignisse 86 von Hardware-Einrichtungen 88.
-
Die Schnittstellen
zu den Dialogmedien
-
5 ist
eine Blockdiagrammansicht des Systems, das die Hardware-Schnittstelle
mit verschiedenen Dialogkanälen
hervorhebt. Ein zentrales Büro 90,
das eingehende Anrufe von Telefonen 92 und Faxgeräten 94 empfängt, leitet
diese über
eine T1-Leitung
zu einer T1-Schnittstellenkarte 96 im System weiter. Die T1-Schnittstellenkarten
sind mit dem MVIP-Bus 46, zusammen mit anderen Karten,
verbunden, die eine Leitungs-Prozessorkarte 98, eine Spracherkennungskarte 100 und
eine Faxplatinenkarte 102 umfassen. Die Leitungsverarbeitungskarte
codiert und decodiert Sprache, d. h., sie spielt Audiosignale ab,
die in der Datenbank gespeichert sind, und zeichnet Audiosignale
zur Speicherung in der Datenbank auf. Sie decodiert ebenfalls Tastensignale
(DTMF). Die Spracherkennungskarte führt die Spracherkennungsfunktion
unter Verwendung eines Wörterbuchs
aus, das ihr von der Datenbank geliefert wird. Das Vokabular kann
ein vom Sprecher abhängiges sein,
das durch den Benutzer oder eine vom Sprecher unabhängige Bibliothek
erzeugt wird.
-
Es kann eine oder mehrere T1-Leitungen
geben, die im System ankommen. Es ist jedoch wahrscheinlich, dass
dem System viel mehr Telefonnummern zugeordnet sind, als es T1-Leitungen
gibt. Nummern sind nicht auf bestimmten Leitungen abgebildet. Stattdessen
wird, wenn das zentrale Büro
einen Anruf empfängt, der
für eine
dieser Nummern beabsichtigt ist, einfach unter Leitungen ausgewählt, die
zu der Zeit verfügbar sind,
und über
die ausgewählte
Leitung ein Klingelsignal an das System gesendet. Wenn die Schnittstellenkarte
für diese
Leitungen den eingehenden Anruf beantwortet (d. h. an die Leitung
angeschlossen wird), so empfängt
sie von dem zentralen Büro
eine Folge von Tastentöne
(vier Ziffern), die den Anschluss identifizieren, der angerufen
wird. Unter Verwendung dieser Folge von vier Ziffern, die den Anschluss
und die Nummer der Teilnehmer identifizieren, die in seiner Datenbank
gespeichert sind, ist das System in der Lage, den Teilnehmer zu
identifizieren, für
den der Anruf bestimmt ist.
-
In dem beschriebenen Ausführungsbeispiel
kann das System auch Verbindungen zu einem Weitbereichsnetzwerk
(WAN) oder einem lokalen Bereichsnetzwerk (LAN) 104 über eine
Ethernet-Karte 106 errichten. Zusätzlich kann es Verbindungen
zu verschiedenen anderen Dialogeinrichtungen über eine oder mehrere serielle
Schnittstellenkarten 108 errichten. In 5 besitzt die serielle Karte 108 zwei
serielle Anschlüsse,
von denen einer mit einem SkyTelTM-System 110 über eine
serielle Leitung und der andere mit einem Zweiweg-Modem 112 über eine
andere serielle Leitung verbunden ist. Das SkyTelTM-System 110 überträgt Einweg-Verbindungen
zu Pagern 114. Das Zweiweg-Modem 112 führt eine
Zweiweg-Verbindung mit drahtlosen Einrichtungen 116, wie
z. B. PTAs (Persönliche
digitale Assistenten) aus.
-
5 präsentiert
ebenfalls eine logische Betrachtung des Mechanismus', den das System
verwendet, um Dialogkanäle über die
Schnittstellenkarten zu verbinden. Um das System mit unterschiedlichen
Dialogmedien zu verbinden, errichtet das System verschiedene Kanäle oder
Dialogwege einschließlich
eines Telefon-Leitungskanals 120, eines Faxkanals 122,
eines TTY-Leitungskanals 124, eines Zweiweg-Datenleitungskanals 126 und
eines Stapel-Pager-Kanals 128. Für jeden Kanal gibt es eine
Gruppe von Anschlüssen,
die mit ihm verbunden werden können.
Die Anschlüsse,
die in der Software durch Anschlussobjekte repräsentiert werden, beziehen sich
auf Ein-/Ausgangsgeräte,
die durch die Schnittstellenkarten unterstützt werden.
-
In der Software wird jeder der Leitungskanäle durch
ein Objekt repräsentiert,
d. h. eine Datenstruktur, welche die physikalische Leitung identifiziert,
die dem speziellen Kanal zugeordnet ist. Die Datenstruktur umfasst
ebenfalls eine Liste der Anschlüsse,
die an den Kanal angeschlossen werden können. Jeder Anschluss wird
durch ein Anschlussobjekt repräsentiert
und die Funktion unterstützt,
die auf den mit dem System verbundenen Schnittstellenkarten angetroffen
wird. Das heißt,
jeder Anschluss repräsentiert
einen logischen, digitalen Signalprozessor auf der speziellen Schnittstellenkarte,
die die Funktion verwirklicht, die dem Anschluss zugeordnet ist.
-
5 zeigt
die Anschlüsse,
die den verschiedenen Kanälen
zugeordnet werden können.
Der Telefon-Leitungskanal kann einen DTMF-Anschluss 130,
einen Audio-Eingangsanschluss 132,
einen Audio-Ausgangsanschluss 134 und einen ASR (automatische
Spracherkennung)-Anschluss 136 besitzen. Ein Faxkanal kann
einen Fax-Eingangsanschluss 138 und einen Fax-Ausgangsanschluss 140 besitzen.
Sowohl der TTY-Leitungskanal als auch der Zweiweg-Datenleitungskanal
können
einen Text-Eingangsanschluss 142 und einen Text-Ausgangsanschluss 144 besitzen.
Der Stapel-Pager-Kanal kann einen Text-Ausgangsanschluss 144 besitzen.
-
Für
den Telefon-Leitungskanal repräsentiert
der DTMF-Anschluss die Fähigkeit,
DTMF-Signale zu empfangen und zu interpretieren, die an das System über die
T1-Leitung durch
den Anrufer gesendet werden. Die Audio-Ausgangs- und Audi-Eingangsanschlüsse repräsentieren
die Fähigkeit
der Leitungsprozessorkarten, Audiosignale über den Dialogkanal sowohl
zu erzeugen als auch aufzuzeichnen. Der ASR-Anschluss, der durch
die Spracherkennungskarte verwirklicht wird, führt die automatische Spracherkennung
mit den Audiosignalen aus.
-
Es sei vermerkt, dass in dieser Beschreibung
der Ausdruck „Anruf" in seinem allgemeinsten
Sinn verwendet wird. Er umfasst nicht nur einen Anruf, der über die
Telefonleitungen ankommt, sondern auch die Auslösung irgendeines Kontaktes über irgendeines
der anderen Dialogmedien einschließlich der drahtlosen Dialogkanäle, Computernetzwerke,
Faxkanäle
usw. Daher ist das Konzept eines Anrufes nicht nur auf einen Telefonanruf
begrenzt.
-
Während
das beschriebene Ausführungsbeispiel
eine begrenzte Anzahl von Kanälen
und Anschlüssen
umfasst, kann die Architektur erweitert werden, um neue Kanäle oder
Anschlüsse
zu handhaben, die für zukünftige Formen
der Verbindung und Fähigkeiten
vorgesehen sind.
-
Die vier primären Software-Komponenten seien
nun in größeren Einzelheiten
beschrieben.
-
Assistenten
und Agenten
-
Das System ist ausgelegt, um viele
unterschiedliche Arten von Agenten zu unterstützen. Alle Agenten und Assistenten
basieren auf einem Gattungs-Agentenobjekt.
Bevor die spezifischen Agenten dargestellt werden, die in dem System
verwendet werden, sei zunächst
dieser Gattungsagent beschrieben.
-
Agenten, Sitzungen und
Gadgets
-
Ein Agent ist ein Software-Element,
das eine Aktion ausführt
oder ein bestimmtes Resultat durch einen Benutzer oder einen anderen
Agenten hervorbringt. Um mit Benutzern einen Dialog zu führen, beteiligt
sich ein Agent unter Verwendung von Gadgets an Dialogen. Ein Gadget
ist eine Darstellung einer Dialogeinrichtung, wie z. B. Telefon,
Faxgerät
oder Pager. Ein Gadget umfasst eine Beschreibung der Dialogeinrichtung
sowie seine Adresse. Zum Beispiel enthält ein Telefon-Gadget die Vorwahl,
die Telefonnummer und den Anschluss für ein bestimmtes Telefon. Um
mit einem bestimmten Benutzer über
das Telefon zu kommunizieren, verwendet ein Agent das Telefon-Gadget
für diesen
Benutzer.
-
Um ein Gadget zu benutzen, fügt der Agent
dieses einer Sitzung hinzu. Im Falle eines Telefon-Gadgets wählt die
VM die Telefonnummer und führt
ein aktives Gadget zu der Sitzung des Agenten zurück. Ein
aktives Gadget repräsentiert
die Verbindung von einer Sitzung des Agenten über ein Dialognetzwerk zu einer
Kommunikationseinrichtung. Das aktive Gadget repräsentiert
eine Übergangsverbindung
zum ständigen
Gadget. Ein aktives Gadget kann für den Dialog mit Benutzern
verwendet werden, während
ein Gadget selbst dies nicht kann, da es nur die Adresse und die
Fähigkeiten
des Gerätes
speichert. Zum Beispiel spezifiziert ein Telefon-Gadget die Nummer
617-555-1212, während
das aktive Gadget eine aktive Telefonleitung repräsentiert, auf
der die Nummer bereits gewählt
worden ist. Eine Sitzung besteht aus einer Sammlung von 0 oder mehreren
aktiven Gadgets, die miteinander verbunden sind.
-
Um mit Benutzern zu kommunizieren,
kann es erforderlich sein, dass Agenten aktiven Gadgets Fähigkeiten
hinzufügen.
Eine Fähigkeit
ist eine Darstellung einer Fähigkeit
oder eines Merkmals einer Einrichtung, wie z. B. die Fähigkeit,
Sprache oder gespielte Audiosignale zu erkennen. Wenn z. B. ein
Agent einem Benutzer Materialien zufaxen muss, so fügt er die
Fax-Fähigkeit
dem aktiven Gadget hinzu. Eine Erläuterung, wie die VM Fähigkeitsanforderungen
von Agenten handhabt, wird später
bei der Erläuterung
der VM präsentiert. Für andere
Ausführungsbeispiele,
die eine grafische Schnittstelle umfassen, ist eine Fähigkeit
vorgesehen, die Grafiken ausgibt und Grafiken eingibt, wenn welche
dem Fokus des Benutzers (d. h. Maus, Auge usw.) folgen, und Eingänge von
dem Benutzer sammelt.
-
Agenten können mit vielen unterschiedlichen
Arten von aktiven Gadgets gleichzeitig arbeiten. Zum Beispiel kann
ein Agent gleichzeitig einen ausgehenden Anruf tätigen, eine Nachricht zu einem
Pager senden und eine Nachricht zu einem Faxgerät senden.
-
Benutzeragenten, Aufgaben
und Moderatoren:
-
Ein Benutzeragent ist ein Agent,
der in der Lage ist, sowohl mit Menschen als auch mit Gadgets einen Dialog
zu führen.
Benutzeragenten verwenden medienunabhängige Dialoge, um mit den Benutzern
zu kommunizieren. Diese Dialoge bestehen aus einer Aufforderung
des Benutzeragenten und einer Antwort des Benutzers. Wenn ein Benutzeragent
mit einem Benutzer einen Dialog führt, so richtet er seine Dialoge
an ein aktives Gadget, das als Fokus-Gadget bekannt ist.
-
Wenn z. B. ein Benutzeragent einen
Anruf für
den Benutzer mit einem aktiven Gadget tätigt und mit dem Benutzer mit
einem anderen aktiven Gadget spricht, so ist das letztere Gadget
das Fokus-Gadget. Andere Ausführungsbeispiele
können
eine Gruppe zu benutzenden Gadgets als Fokus-Gadget gruppieren.
Dies würde
dem Assistenten gestatten, auf die Gadget-Gruppe einzuwirken und
die Einwirkung alle Gadgets der Gruppe umfassen zu lassen.
-
Benutzeragenten können auch aktive Gadgets miteinander
für Telefonunterhaltungen
verbinden. Wenn der Benutzeragent einen ausgehenden Anruf für den Benutzer
tätigt
und die angerufene Partei das Telefonat beantwortet, verbindet der
Benutzeragent die zwei aktiven Gadgets miteinander und zieht sich
sodann zurück.
Wenn sich der Benutzeragent im Hintergrund befindet, ist er untätig; um
zusätzliche
Aufgaben an den Benutzeragenten zu delegieren, muss der Benutzer
den Benutzeragenten zurück
in den Vordergrund bringen.
-
Ein einmaliges Merkmal von Benutzeragenten
ist ihre Fähigkeit
Aufgaben zu handhaben. Eine Aufgabe ist eine durch einen Benutzeragenten
mittels eines Benutzers auszuführende
Aktion. Eine Aufgabe kann aus einer Form voller Felder bestehen,
die der Agent einem Moderator gibt. Ein Moderator ist ein Objekt,
das weiß,
wie es in einen Dialog mit einem Benutzer über ein vorgegebenes Medium
als Teil des Eintrags in die Felder einer Aufgabe eingreifen kann.
Ein Agent gibt jede Aufgabe einem Moderator. Der Moderator sammelt Information
für ein
Feld und reicht dann die Aufgabe zurück an den Agenten. Der Agent
schaut, ob ein Feld sich kürzlich
verändert
hat und prüft
es. Zum Beispiel kann der Agent Informationen von der Datenbank
anfordern und das nächste
Feld in der Form einstellen. Sodann reicht der Agent die Aufgabe
zurück
zum Moderator und sammelt Information für das veränderte Feld. Diese Aktivität des Rück- und
Hinreichens der Aufgabe zwischen dem Agenten und dem Moderator setzt
sich fort, bis der Agent befriedigt ist, wenn alle geforderten Felder
vollständig
sind. Dann führt
der Agent die Aufgabe aus.
-
6A–H veranschaulichen den Prozess der Zuordnung
einer Aufgabe und der Überwachung
ihres Fortschrittes. In diesem Beispiel hat ein Benutzeragent 150 für seine
Sitzung 154 ein aktives Fokus-Gadget 152 erhalten,
und ein Benutzer 156 hat die „Anruf"-Stimmanweisung ausgegeben (6A). In Beantwortung ordnet
der Agent eine Anrufaufgabe 158 einem Telefonmoderator 160 (6B) zu. Der Moderator wirkt
mit dem Benutzer über
das Fokus-Gadget zusammen, um die Felder der Aufgabe (6C) auszufüllen. Der
Moderator sammelt den Namen des anzurufenden Kontaktes und legt
ihn im ersten Feld ab, bevor er es zurück zum Agenten reicht (6D). Der Agent vermerkt,
dass dieses Feld verändert
ist und sucht den Kontakt in der Objekt-Datenbank 68 auf
(6E). Der Agent stellt
das zweite Feld der Form ein, um die gültigen Orte, die für diesen
Kontakt definiert sind, zu umfassen und reicht die Aufgabe zurück zum Moderator.
Der Moderator stellt den Ort fest, an dem der Kontakt aufzurufen
ist und legt ihn im zweiten Feld ab, bevor er es zurückreicht
zum Agenten (6E–6F). Wenn die Felder der
Aufgabe einmal ausgefüllt
sind, tätigt
der Benutzeragent den Anruf (6H).
-
Ein Benutzeragent erhält die Liste
der von einem Objekt auszuführenden
Aufgaben, was als „Aufgabenstapel" bekannt ist. Wenn
der Agent Pakete empfängt
(kurz zu beschreiben), kann der entscheiden, Aufgaben im Aufgabenstapel
als Ergebnis der Verarbeitung des Paketinhalts abzulegen. Der Benutzeragent
erhält die
nächste
Aufgabe des Stapels und führt
sie aus. Er wiederholt diesen Prozess, bis es keine Aufgaben im Stapel
mehr gibt und verlässt
sodann den Prozess. Beim Prozess der Ausführung einer Aufgabe kann eine andere
Aufgabe auf dem Stapel abgelegt werden.
-
Eine Aufgabe ist nicht der einzige
Weg, in der ein Agent mit einem Benutzer zusammenwirkt. Für ein einfaches
Zusammenwirken benutzt der Agent ein C++-Verfahren. Aufgaben werden primär für komplexe
Verbindungen verwendet.
-
Assistenten und elektronische
Assistenten.
-
Ein Assistent ist ein Benutzeragent,
der in der Lage ist, logische Entscheidungen zu treffen und komplexe
Aufgaben seiner Benutzer auszuführen.
Das Element, das nachstehend als elektronischer Assistent bezeichnet
wird, ist ein Assistent, der Benutzer bei ihren Anrufen, Nachrichten,
Kontakten und Terminplänen
unterstützt.
Jeder Teilnehmer besitzt einen elektronischen Assistenten. Als Beispiel
einer komplexen Aufgabe, die den elektronischen Assistenten von
einem gewöhnlichen Benutzeragenten
unterscheidet, kann der elektronische Assistent einen Benutzer lokalisieren,
indem er den Terminplan des Benutzer konsultiert und entscheidet,
welche Nummern anzurufen sind.
-
Bis zu diesen Punkt sind drei unterschiedliche
Klassen von Agenten diskutiert worden: Agenten, Benutzeragenten
und Assistenten. Die Tabelle 1 umfasst die Unterschiede zwischen
ihnen.
-
Unterschiede
zwischen Agenten und Assistenten
Tabelle
1
-
Irgendein Agent kann logischerweise
verschiedene Sitzungen gleichzeitig behandeln. Jedes Mal, wenn ein
Agent eine Sitzung handhabt, gibt es einen getrennten Prozess, der
für jede
Sitzung abläuft.
Die Meistersitzung ist die Sitzung, bei der der elektronische Assistent
zu seinem Teilnehmer spricht oder versucht, seinen Teilnehmer zu
lokalisieren. Es kann nie mehr als eine Meistersitzung geben, die
pro Teilnehmer abläuft.
-
Schachtel, Hand und Finger
-
Bezugnehmend auf 7 verwendet der elektronische Assistent
drei unterschiedliche Objekte, um die Merkmale des Benutzers zu
manipulieren, nämlich eine
Schachtel 170, eine Hand 180 und einen Finger 182.
Die Schachtel ist ein Objekt, das alle Merkmale enthält, die
zu einem Benutzer gehören.
Die Hand ist ein Objekt, das die Merkmale aufweist, die der Benutzer
manipuliert. Der Finger ist ein Software-Hinweis, der das momentan
ausgewählte
Merkmal in der Hand markiert.
-
Wenn der Teilnehmer den elektronischen
Assistenten bittet, Merkmale zu „finden", wie z. B. Kontakte, dann schaut der
elektronische Assistent in der Schachtel nach den Merkmalen und
greift sie sodann in seiner Hand auf. Die Hand kann eine Untergruppe
der Merkmale in einer Schachtel gemäß bestimmten Kriterien aufgreifen.
Wenn z. B. der Teilnehmer den elektronischen Assistenten bittet,
gesicherte Nachrichten aufzufinden, so findet er nur die Nachrichten,
die mit einem Sicherungshinweis markiert sind.
-
Wenn der Benutzer nach dem ersten
Merkmal fragt, bewegt der elektronische Assistent seinen Finger auf
dieses Merkmal und wählt
es aus. Wenn der Benutzer nach dem nächsten Merkmal fragt, bewegt
der elektronische Assistent seinen Finger zum nächsten Merkmal in seiner Hand.
Auf die Merkmale in der Hand kann in einem Ringmodus zugegriffen
werden. Wenn der Finger zum letzten Merkmal in der Hand deutet und
der Benutzer nach dem nächsten
Merkmal fragt, so bewegt sich der Finger herum zum ersten Merkmal
in der Hand.
-
Sequenzieller
gegenüber
wahlfreiem Zugriff auf Informationslisten
-
Die Verwendung des ersten und nächsten Merkmals
gibt die Fähigkeit
vor, eine Gruppe von Merkmalen in einem Reihenmodus zu überprüfen. Wenn
also ein Teilnehmer seinen Assistenten instruiert, eine neue Nachricht
zu finden, dann gibt die Verwendung des nächsten Merkmals und des vorangegangenen
Merkmals die Möglichkeit,
durch die neuen Nachrichten in Vorwärts- oder Rückwärtsbewegung zu verlaufen. Das
erste Merkmal würde
den Finger zurückführen, um
auf den Beginn der Liste zu verweisen.
-
Zusätzlich zu dieser Form der sequenziellen
Navigation durch Merkmale in einer Liste gibt das System auch Fähigkeiten
vor, um auf eine Information wahlweise oder basierend auf mehreren
komplexen Anfragen zuzugreifen. Zum Beispiel kann ein Teilnehmer
darum bitten, die gesamte neue Nachricht eines bestimmten Kontaktes
zu sehen. Der folgende Dialog:
Finden | <Was finden> |
Neue
Nachrichten von | <Neue Nachricht von
wem> |
Bill
Bishop | |
würde
in der Hand alle Nachrichten ablegen, die von dem Kontakt mit dem
Namen Bill Bishop empfangen worden sind. Dieses Element kann auch
auf die Gruppe von Merkmalen erweitert werden, die ein Teilnehmer
bilden kann. Wenn ein Teilnehmer infolgedessen eine Gruppe besitzt,
die „Heiße Aussichten" genannt wird, so kann
der obige Dialog wiederholt werden als
Finden | <Was finden> |
Neue
Nachrichten von | <Neue Nachricht von
wem> |
Heiße Aussichten | |
und das Ergebnis wäre eine Liste von Merkmalen,
die neue Nachrichten von Mitgliedern der Gruppe „Heiße Aussichten" umfasst. Zusätzlich zum
Suchen nach Merkmalen eines bestimmten Kontaktes kann diese Technik
verwendet werden, um Merkmale abzurufen, die als vorrangig oder
dringend usw. gestempelt sind. Schließlich können alle hier beschriebenen
Merkmale wahlfrei aufgesucht werde und basierend auf unterschiedlichen Attributen
in der Hand gesammelt werden.
-
Kontext:
-
Die Fähigkeit, Merkmale zu finden
und sie in der Hand zu sammeln, führt in das System einen Konzeptzustand
ein. Dieser Zustand umfasst die laufenden Inhalte der Hand und das,
worauf hingewiesen wird. Da irgendeine Anzahl von Anweisungen ausgegeben
werden muss, um den Zustand zu verändern und es oft erwünscht ist,
zurück
zu einem der vorangegangenen Zustände zu gehen, unterstützt das
System die Fähigkeit „zurückzugehen" zu den vorangegangenen
Zuständen.
Jedes Mal, wenn eine Veränderung
im Zustand des Assistenten auftritt, wird der neue Zustand auf den
vorangegangenen Zustand aufgestapelt. Die Ausgabe der Geh-zurück-Anweisung löscht den
vorangegangenen Zustand des Stapels.
-
Zum Beispiel sei angenommen, dass
der Assistent einen Kontakt speichert und zu demjenigen verweist,
der den Namen Bill Bishop besitzt, und der Teilnehmer die folgenden
Anweisungen ausgibt:
Finden | <Was finden> |
Neue
Nachricht | <Eine neue Nachricht
von Bill Bishop> |
Was
besagt sie | |
Geh
zurück | |
-
In diesem Beispiel ersetzte der Teilnehmer
den Inhalt der Hand (welche einen Kontakt für Bill Bishop gehalten hat)
mit einer neuen Nachricht von Bill Bishop. Nach dem Abhören der
Nachricht (infolge der Ausgabe der „Was besagt sie"-Anweisung) sagt
der Teilnehmer „Geh
zurück". Das Ergebnis dieser
Anweisung ist, dass der vorangegangene Zustand der Hand (der einzige
Kontakt für
Bill Bishop) erneut gespeichert wird. Der Teilnehmer kann nun diesen
Kontakt für
Bill Bishop manipulieren.
-
Ein anderes nützliches Werkzeug zur Verwaltung
des Zustandes ist die Fähigkeit,
sich auf das laufende Merkmal zu beziehen, auf das in Dialogen hingewiesen
wird. Der Ausdruck „Dieses
eine" wird verwendet, um
auf ein Objekt zu verweisen, auf das momentan durch den Assistenten
in der Hand hingewiesen wird. Das Merkmal wird ebenfalls „es" bezeichnet, so dass
Anweisungen wie z. B. „Beschreibe
es", „Ergänze es", „Wirf es
weg", sich ebenfalls
auf das laufende Merkmal beziehen. Schließlich sind die Anweisungen „Sende
eine Kopie", „Sende
eine Erwiderung" und „Rufe sie
an" Operationen
mit den laufenden Merkmalen, auf die der Finger des Assistenten
verweist. Diese beziehen den Kontext und die Kraft auf ein gemeinsames
Verständnis
zwischen dem Teilnehmer und dem Assistenten des Kontextes. Das Ergebnis
ist eine Gruppe von verdichteten Dialogen, die sich nicht explizit
auf Objekte beziehen müssen,
die beteiligt sein können.
Andere Ausführungsbeispiele
können
Vorteil aus Pronomen ziehen, wie z. B. „ihn", „ihr" und „ihnen", um auf Objekte
zu verweisen, auf die jüngst
Bezug genommen worden ist.
-
Pakete
-
Agenten können unter Verwendung von Paketen
miteinander einen Dialog führen.
Ein Paket enthält die
Adresse des Absenders (von), die Adresse des Empfängers (an)
und Inhalte (ein vorliegendes Objekt). Der Inhalt eines Paketes
kann auch ein anderes Paket sein.
-
Die VM gewährleistet die Abgabe von Paketen.
Irgendwelche Pakete, die an einen Benutzer adressiert sind, werden
zu der Meistersitzung für
diesen Benutzer abgeliefert. Wenn keine Meistersitzung vorliegt,
startet die VM eine. Sodann versucht der elektronische Assistent,
den Benutzer aus der Meistersitzung zu lokalisieren. In anderen
Ausführungsbeispielen
können
Paketadressen verteilte Schachteln und den Dialog zwischen externen
Agenten unterstützen.
-
Dialog von
Agent zu Agent
-
Die Tatsache, dass die VM als Verzweigungs-
und Abgabemechanismus für
Pakete wirkt, erlaubt eine hohe Leistung. Sie gestattet die Vermittlung
von Dialogen von Agent zu Agent durch einen Mechanismus, der das
Verhalten gewährleistet,
dass ein Empfänger
eines Paketes entweder lokalisiert oder darauf vorbereitet wird,
das Paket zu empfangen. In dem beschriebenen Ausführungsbeispiel
liegt der Dialog von Agent zu Agent als Dialog zwischen zwei Agenten
in einer einzigen Schachtel vor. In anderen Ausführungsbeispielen, die verteilte
Systeme unterstützen,
kann die VM die in der (zu) Adresse eingebettete Verzweigungsinformation
benutzen, um das Paket zu dem geeigneten externen oder gebündelten
System zu verzweigen. Ein Agent, der an einer Küste arbeitet, kann prüfen, ob
ein Agent für
einen Benutzer innerhalb des Landes einen Anruf anzunehmen wünscht, und
die gesamte Nachrichtenübermittlung
kann über
SS7 (Signalisiersystem 7 – ein
Telefonnetzwerk) oder irgendein anderes Weitbereichsnetzwerk erfolgen,
ohne dass ein Anruf hergestellt werden muss.
-
MMUI:
-
Die MMUI ist eine vom Medium unabhängige Schnittstelle
für den
Dialog mit Benutzern. Die MMUI gestattet Agenten, sich auf den Inhalt
zu konzentrieren, der zu übertragen
ist, anstatt auf das Format des Inhaltes und die Einzelheiten der
Verwendung spezieller Einrichtungen zur Darstellung des Inhalts.
-
Der fundamentale Bildungsblock der
MMUI ist ein Objekt, das hier als Meme bezeichnet ist. Eine Meme
ist eine medienunabhängige
Bezugnahme auf ein Informationsstück. Die Meme besteht aus einer
Gruppe von Medienobjekten, die die Information in einer Vielzahl
unterschiedlicher Formate speichern. Ein Media-Objekt ist ein Informationsstück, wie
z. B. ein Klang, eine Textfolge oder DTMF-Folge, die einer bestimmten Art
von Dialogeinrichtung dargeboten werden kann.
-
Agenten benutzen Meme und Menüs als Teil
ihres Dialogs mit Benutzern. Diese Dialoge können Teil einer Aufgabe sein
oder außerhalb
einer Aufgabe liegen, wie z. B. von einem C++-Verfahren. Zum Beispiel muss
als Teil einer Anrufaufgabe ein elektronischer Assistent den Benutzer
fragen, wer anzurufen ist. Innerhalb eines Feldes der Anrufaufgabe
gibt es eine "Wen
anrufen"-Meme, die
der Moderator an das aktive Gadget gibt. Die „Wen anrufen"-Meme besteht aus
verschiedenen unterschiedlichen Medienobjekten: z. B. eine Audioaufzeichnung
zur Verwendung auf dem Telefon oder eine Textfolge zur Darstellung
auf dem Computermonitor. Das aktive Gadget reicht die Meme zu der
VM, die basierend auf den Fähigkeiten
des aktiven Gadgets die Art des Mediums auswählt. Wenn z. B. das aktive
Gadget ein Telefon ist, dann wählt
die VM die Audioaufzeichnung in der Meme aus, und der Benutzer hört irgendetwas
wie „Wen
anrufen?".
-
Die Art von Gadget ist der primäre Faktor,
aber nicht der einzige, der beeinflusst, welche Art von Medium von
einer vorgegebenen Meme benutzt wird. Benutzer können Präferenzen für ihre elektronischen Assistenten
einstellen und Systemadministratoren und Systemintegratoren können systemweite
Präferenzen einstellen,
die für
alle elektronischen Assistenten gelten. Zum Beispiel kann ein Benutzer
verbale Ausdrücke und
eine männliche
Stimme für
einen elektronischen Assistenten auswählen. Der Systemintegrator
kann das System auf Spanisch als Default-Sprache einstellen. Diese
Präferenzen
sind als Attribute in der MMUI bekannt. Ein Attribut ist ein Name/Wert-Paar.
Typischerweise wird ein Attribut verwendet, um das Verhalten eines aktiven
Gadgets und aller MMUI-Elemente anzupassen.
-
Wenn ein elektronischer Assistent
ein aktives Gadget von der VM erhält, dann stellt er die Attribute
an diesem ein. Später
in der Sitzung, wenn der elektronische Assistent Meme zu dem Gadget
sendet (in diesem Beispiel als Teil einer Aufgabe) legen die Attribute
und die Art des Gadgets fest, welches Medienobjekt in einer Meme
verwendet wird. Zum Beispiel können
in einem zweisprachigen Stimmensystem die Meme zwei Audiomedien-Objekte
besitzen: eines mit der in Französisch
aufgezeichneten Information und ein anderes mit der in Englisch
aufgezeichneten Information. Wenn der Benutzer in dem vorangegangenen
Beispiel das Sprachattribut auf Französisch eingestellt hat und das
Geschlechtsattribut auf Männlich,
wird die sich ergebende Aufforderung in Französisch mit männlicher Stimme gesprochen.
-
Ein weiterer wichtiger Bildungsblock
in der MMUI ist das Mitget. Ein Midget ist ein Objekt, das für den Aufbau
eines Multimedia-Dialogs verwendet wird. Ein Mitget in einer Multimedia-Benutzerschnittstelle
ist analog zu einem Witget in einer grafischen Benutzerschnittstelle.
Die üblichste
Art eines Mitgets ist ein Menü.
Bezugnehmend auf 8 ist
ein Menü 180 eine
Gruppe von Wahlmöglichkeiten,
die einem Benutzer geboten werden können, der mehrere Medien verwendet.
Ein Menü besteht
aus Zeilen, die jede Auswahl beschreiben (eine Meme 182)
und Spalten, die die Medien 184 beschreiben, die verwendet
werden können,
um die Meme in jeder Zeile darzubieten. Eine zusätzliche Spalte speichert wahlweise
einen Hinweis 186 auf das entsprechende Objekt in der Datenbank,
z. B. ein Kontaktobjekt. In einigen Fällen sind Spalten leer, wenn
es nicht möglich
oder ungeeignet ist, die Meme unter Verwendung dieser Art von Medium
vorzugeben.
-
In einem typischen Dialog reicht
der elektronische Assistent eine Meme und ein Menü zu dem
aktiven Gadget. Die Meme wird dem Benutzer präsentiert, die Antwort des Benutzers
ist an die Zeilen im Menü angepasst,
und die ausgewählte
Menüzeile
(bekannt als Menüaufruf)
und der Datenhinweis (falls vorliegend) werden zu dem elektronischen
Assistenten zurückgeführt. Im
Fall der Anrufaufgabe reicht z. B. der elektronische Assistent eine
Meme weiter, um die Frage „Wen
anrufen?" und ein
Menü zu
präsentieren,
das die Kontaktliste des Benutzers enthält. In diesem Beispiel besitzt
das MMUI-Menü vier
Spalten. Die erste Spalte enthält
die Textbuchstabierung des Kontaktnamens; die zweite Spalte enthält eine
Zeichenkette, die die DTMF-Folge
beschreibt, die als Kürzel
für den
Kontaktnamen verwendet werden kann; die dritte Spalte enthält das Wörterbuch,
das für
die Erkennung des gesprochenen Kontaktnamens verwendet wird; und
die vierte Spalte enthält einen
Hinweis zu der Information des Kontaktes in der Datenbank.
-
Obgleich dieses Menübeispiel
vier Spalten besitzt, können
Menüs mehr
Spalten haben, um sich an unterschiedliche Attribute anzupassen.
Zum Beispiel können
in einem Anweisungsmenü wortreiche
und bündige
Versionen der gesprochenen Anweisung vorliegen oder Versionen, die
in unterschiedlichen Sprachen gesprochen werden.
-
Einige Menüs enthalten zusätzliche
Objekte, die Mogule genannt werden und ihnen hinzugefügt sind, um
komplexe Medienarten zu handhaben. Ein Mogul ist ein Objekt, das
eine bestimmte Art von Medium verwaltet. Ein Mogul kann medienspezifische
Information speichern. Zum Beispiel ist ein Audio-Mogul der Audiomedium-Spalte
eines Menüs
zugefügt
und speichert das Spracherkennungsvokabular, das in der Erkennungs-Hardware
geladen ist. Ein Mogul kann den Inhalt bestimmter Medien in den
Memen in einem Menü fortschreiben,
wenn Fortschreibungen bei anderen Medien in den Memen auftreten.
Zum Beispiel schreibt ein DTMF-Mogul DTMF-Medienobjekte immer dann fort, wenn
sich ihre Textmedien-Gegenstücke
verändern. Wenn
in 8 der Teilnehmer
die Aussprache von Susan Schmidt in Susan Smith verändert, so
wird der DTMF-Mogul „773" in der zweiten Spalte
des Menüs
in „776" verändern. Medien,
die durch einen Mogul fortgeschrieben anstatt durch den Benutzer
gebildet zu werden, werden als Mogul-erzeugte Medien bezeichnet. DTMF-Medien sind ein Beispiel
für Mogul-erzeugte
Medien.
-
Der Algorithmus zum Erzeugen von
DTMF für
einen Namen oder eine Anweisung ist Folgender: DTMF-Anweisungen
umfassen gewöhnlich
wenigstens drei Ziffern. Wenn ein Wort vorliegt, werden die ersten drei
Buchstaben auf den entsprechenden Telefontasten abgebildet, die
diese Buchstaben besitzen. Wenn zwei Wörter vorliegen, wird der erste
Buchstabe des ersten Wortes abgebildet und die zwei ersten Buchstaben
des zweiten Wortes benutzt. Wenn drei Wörter vorliegen, wird der erste
Buchstabe eines jeden Wortes genommen. In dem Fall, in dem drei
Buchstaben nicht genug sind, da die Anweisung noch nicht eindeutig
ist, wird fortgefahren, den ersten Buchstaben der nachfolgenden
Wörter
zu nehmen, bis sich eine eindeutige Folge ergibt.
-
9 zeigt
das Kontaktmenü,
wobei der DTMF-Mogul 188 und der Audio-Mogul 190 mit
ihm verbunden sind. Mogule bilden eine Art dritte Dimension für Menüs; man kann
sie sich als die Tiefe eines Menüs
vorstellen.
-
Die 10A–D zeigen das zuvor erläuterte „Wen anrufen?"-Beispiel. Zunächst reicht
der Moderator 160 eine Meme 182 und ein Menü 194 zum
aktiven Gadget 152 (10A).
Das Menü besitzt
zwei mit ihm verbundene Mogule: einen DTMF-Mogul 196 und
einen Audio-Mogul 198). Wenn die VM das Menü empfängt, entpackt
sie das in dem Audio-Mogul gespeicherte Vokabular und lädt es in
die Erkennungs-Hardware.
Da das aktive Gadget ein Telefon mit Spracherkennungsfähigkeiten
ist, hört
der Teilnehmer den elektronischen Assistenten sagen: „Wen anrufen" (10B). Wenn der Teilnehmer mit „Susan
Schmidt" antwortet
(10C), benutzt die
Erkennungs-Hardware das Vokabular, um eine Übereinstimmung im Kontaktmenü zu finden,
und führt
den Menüaufruf
zum elektronischen Assistenten zurück (10D).
-
Meme sind oftmals miteinander in
einer Meme-Liste verkettet, um eine vollständige Feststellung zu bilden.
Der Agent oder der Moderator kann eine einzelne Meme oder eine Meme-Liste
dem aktiven Gadget weiterreichen. Wenn eine Meme-Liste dem aktiven
Gadget weitergereicht wird, werden die Meme in der Reihenfolge wiedergegeben,
in der sie aufgelistet sind.
-
Nützlichkeitsagenten.
-
Der Paketmechanismus liefert eine
Kommunikationsweise zwischen Agenten und Sitzungen. Nützlichkeitsagenten
führen
Aktionen mittels des elektronischen Assistenten aus, wie z. B. die
Zustellung von Nachrichten, das Planen von Erinnerungen und die
Beantwortung von nicht zugeordneten Telefonleitungen. Es gibt verschiedene
unterschiedliche Arten von Nützlichkeitsagenten,
die einen Postmeister-Agenten, verschiedene Kurier-Agenten, einen
Cron-Agenten und einen Geheimnis-Agenten umfassen.
-
Der Postmeister-Agent ist ein Agent,
der Nachrichten von elektronischen Assistenten empfängt und sie
an geeignete Kurier-Agenten für
die Zustellung verteilt. Die Kurier- Agenten sind Agenten, die Nachrichten vom
Postmeister-Agenten empfangen und sie an ihr Ziel bringen. Der Nachrichtenspeicher
ist ein Teil der Objektdatenbank, die die ein- und ausgehenden Nachrichten
für alle
Personen enthält.
-
Wenn unter Bezugnahme auf 11 der elektronische Assistent 156 von
Susan eine Nachricht 200 für die Ablieferung hinterlegt,
packt der Paketmechanismus eine Referenz zu der Nachricht in ein
Paket 202 und sendet es zu dem Postmeister-Agenten 204.
Der Paketmechanismus setzt ebenfalls die Nachricht im Nachrichtenspeicher 206 in
den geeigneten Abschnitt des Benutzers. Der Postmeister-Agent 204 packt
seinerseits einen Keim 208 in ein Paket 210 und
sendet es zu dem elektronischen Assistenten. Ein Keim ist eine Quittung,
die durch den Postmeister-Agenten ausgegeben wird und die von einem
elektronischen Assistenten verwendet werden kann, um den Zustellstatus
der Nachricht zu überprüfen.
-
Wenn der Postmeister-Agent Nachrichten
zur Abgabe empfängt,
wählt er
den geeigneten Kurier-Agenten 212 aus, der sie abliefern
soll. Unterschiedliche Gadgets erfordern unterschiedliche Kurier-Agenten.
Zum Beispiel liefert der System-Kurier-Agent Nachrichten für elektronische Assistenten
ab, und ein SkyTelTM-Kurier-Agent liefert
Nachrichten an SkyTel-Pager ab. Wenn der Postmeister-Agent eine
Nachricht zum System-Kurier-Agenten gibt, so sendet er ein „Aufweck"-Paket 214 an
den elektronischen Assistenten 216 von John, um ihn über die
neue Nachricht zu informieren. Der elektronische Assistent des Benutzers
sucht die Nachricht aus dem Nachrichtenspeicher wieder auf.
-
Wenn der Kurier-Agent die Nachricht
nicht abliefern konnte, holt er das die Referenz auf die Nachricht enthaltende
Paket zum Postmeister zurück.
In Abhängigkeit
von der Anzahl der für
die Nachricht erlaubten Versuche kann der Postmeister den Kurier-Agenten
bitten, die Ablieferung zu versuchen oder sie als fehlgeschlagen
zu markieren.
-
Cron Agent:
-
Der Cron-Agent ist ein Agent, der
Erinnerungen von Agenten empfängt,
sie verfolgt, bis sie für
die Abgabe geplant sind, und dann an die Agenten abliefert. Der
Cron-Agent kann
auch andere Merkmale verfolgen. Daher kann das Paket tatsächlich irgendein
Datenbankobjekt enthalten und nicht nur eine Erinnerung.
-
Wenn unter Bezugnahme auf 12 ein elektronischer Assistent 150 eine
Erinnerung für
die Ablieferung ablegt, so bildet er ein Paket 220, das
eine Erinnerung 222 enthält, und das Paket ist sowohl
vom als auch für
den Benutzer. Als Nächstes
nimmt er dieses Paket und legt es in einem anderen Paket 224 ab,
das von dem Benutzer an den Cron-Agenten adressiert ist. Dieses
letztere Paket wird an einen Cron-Agenten 226 abgegeben.
Wenn der Cron-Agent dieses Paket empfängt, entpackt er das Paket
innerhalb von sich selbst. Er legt dann das Paket in einer Warteschlange 228 in
einer zeitlich sortierten Reihenfolge mit anderen Paketen ab und
verfolgt, wann diese Erinnerung abgeliefert werden soll. Wenn die
Zeit kommt, sendet er dieses innere Paket zurück zum elektronischen Assistenten.
-
Objektdatenbank
-
Die Objektdatenbank ist eine objektorientierte
Datenbank, d. h. eine Datenbank, die Objektstrukturen und direkte
Beziehungen enthält,
anstatt diese zu glätten
und zu rekonstruieren. Die Objektdatenbank speichert alle Informationen,
die sowohl die Benutzer als auch das System während der Sitzungen benötigen. Wenn
z. B. ein Benutzer einen neuen Kontakt aufbaut, so speichert der
elektronische Assistent diesen in der Objektdatenbank. Wenn der
elektronische Assistent zu einem Benutzer spricht, verwendet er
im Voraus aufgezeichnete Medienobjekte, die in der Objektdatenbank
gespeichert sind.
-
Die Objektdatenbank speichert die
Informationen eines Benutzers unter Verwendung von drei unterschiedlichen
Objekten: einem Schachtelobjekt, einem Nachrichtenspeicher-Objekt
und einem Benutzerobjekt. Das Schachtelobjekt und der Nachrichtenspeicher
wurden zuvor erwähnt.
Das Benutzerobjekt beschreibt einen Teilnehmer oder eine Person.
-
Bezugnehmend auf 13 speichert die Objektdatenbank für jeden
Assistenten des Teilnehmers eine Schachtel 230, die enthält: einen
Hinweis 232 zum Benutzerobjekt 234, das den Teilnehmer
beschreibt; eine Kontaktliste 236, die ein MMUI-Menü ist, das
alle Kontakte des Benutzers enthält;
und einen Hinweis 238 zu dem Abschnitt des Nachrichtenspeichers 206,
der die Nachrichten des Benutzers enthält. Die Kontaktliste wird mit
Anweisungen des elektronischen Assistenten, wie z. B. „Anrufen" und „Sende
Voice-Mail" verwendet,
wobei vom Benutzer erwartet wird, dass er einen Kontakt spezifiziert.
-
Ein gespeicherter Kontakt kann ebenfalls
einen Hinweis zu einer Notiz (z. B. eine gesprochene Nachricht)
umfassen, die der Teilnehmer erzeugen und dem Kontakt hinzufügen kann.
Wenn der Teilnehmer seinen elektronischen Assistenten instruiert,
den Kontakt aufzurufen, kann er den elektronischen Assistenten auch
die Nachricht zurückspielen
lassen, während
der elektronische Assistent die Verbindung zu errichten versucht.
Die Notiz kann Informationen über
den Kontakt umfassen, an die der Teilnehmer immer dann erinnert
werden will, wenn er diesen Kontakt aufruft. Zum Beispiel kann er
den Namen der Sekretärin
des Kontaktes zu kennen wünschen,
so dass er sie mit dem Namen ansprechen kann, wenn er am Telefon
antwortet.
-
Bezugnehmend auf 14 enthält die Datenbank eine einzige
Definition für
jeden Benutzer im System, der als Benutzerobjekt 234 bekannt
ist. Das Benutzerobjekt legt das Passwort, das Geschlecht und den Terminplan
des Benutzers fest. Es enthält
auch einen Hinweis 240 auf die Kontaktliste 236 in
der Schachtel 230, eine Liste von Orten 242 (d.
h. Heim, Arbeit, Auto, mobil, andere Orte, Pager), eine Liste von
Gruppen 244 und eine Liste von irgendwelchen Erinnerungen 246,
die der Teilnehmer erzeugt hat.
-
In der Datenbank besteht ein Personenkontakt
aus einer Bezugnahme auf ein Benutzerobjekt plus lokale Informationen,
z. B. die Art und Weise, wie der Benutzer den Namen des Kontaktes
ausspricht und eine Priorität.
Daher verweist nicht nur die Schachtel zu einem Benutzerobjekt,
sondern jeder Personenkontakt in der Kontaktliste in einer Schachtel
verweist zu einem Benutzerobjekt. Ein Gruppenkontakt besteht aus
einer Gruppe von Objekt-IDs für
Benutzerobjekte. Ein Ortskontakt besteht aus einem Telefon-Gadget
und einem Fax-Gadget.
-
Bezugnehmend auf 15 enthält die Objektdatenbank auch
Telefonbuchobjekte 250. Ein Telefonbuch ist eine Liste
anderer Teilnehmer des Systems und besteht aus einer Gruppe von
Hinweisen 252 zu Benutzerobjekten. Es kann eines oder mehrere
Telefonbücher
geben, aber jeder Teilnehmer kann nur auf ein Telefonbuch zugreifen.
Jeder Eintrag in einem Telefonbuch ist eine Bezugnahme auf eines
der Benutzerobjekte. In gleicher Weise besteht ein Kontakt 254 des
Benutzers aus einer Bezugnahme 256 zu einem Benutzerobjekt plus
irgendeine lokale Information.
-
Wenn ein Benutzer den Teil eines
Kontaktes verändert,
der im Benutzerobjekt gespeichert ist, wie z. B. die Telefonnummer
bei der Arbeit oder zu Hause, dann zeigen alle Telefonbücher und
Kontakte, die auf dieses Benutzerobjekt Bezug nehmen, die neue Information.
Für jedes
Benutzermerkmal weist die Objektdatenbank ebenfalls allgemeine Informationen
auf, die für
den Zugriff auf dieses Merkmal erforderlich sind. Diese Informationen
umfassen die Objekt-ID, die Objektbezeichnung, den Besitzer, den
Zeitpunkt der letzten Modifikation, den Zeitpunkt des letzten Zugriffs
und den Zeitpunkt der letzten Änderung
der Eigentümerschaft.
Die Objektbezeichnung ist eine Meme, die die gesprochenen und buchstabierten
Namen des Merkmals umfassen kann. Jedes Merkmal besitzt auch eine
Gruppe von zugeordneten Hinweisen, wie z. B. „gelesen", „nicht
gelesen", „wichtig" und „nicht
wichtig".
-
Virtuelle
Maschine
-
Die virtuelle Maschine ist das Betriebssystem
des Systems und ein Prozess, der Systemressourcen für Agenten
und Assistenten zuteilt und verwaltet. Die VM antwortet auf Anforderungen
von Agentensitzungen (ebenso wie ein Betriebssystem auf Systemanrufe
antwortet) und auf Ereignisse, die durch die Hardware erzeugt werden.
Im Wesentlichen ist die VM ein großer Ereignisprozessor. Die
VM initiiert alle E/A-Operationen einschließlich des Eingangs (Aufzeichnung
von Memen), des Ausgangs (Abspielen von Memen) und der Erkennung
(Spracherkennung oder DTMF). Zusätzlich
initiiert die VM Verbindungen zu Gadgets, trennt Verbindungen zu
Gadgets und handhabt eingehende Verbindungen.
-
Handhabung von Ereignissen:
-
Bezugnehmend auf 16 antwortet die VM 70 auf drei Arten
von Ereignissen: Interprozess-Dialog (IPC)-Nachrichten 260 von
Agentensitzungen 262; Hardware-Ereignisse 264 von den Dialogkarten
und anderer Hardware 266 und Zeitgeberereignisse 268 von
ihrer internen Zeitgeber-Warteschlange. Jede durch einen Agenten
getätigte
Aktion führt
zu einer IPC-Nachricht an die VM. Die VM empfängt dieses „Ereignis" und führt die Anforderung aus. Die
VM kann IPC-Nachrichten
zurück
zur Agentensitzung lenken, um mit ihr zu kommunizieren. Die VM überträgt Pakete
unter Verwendung von IPC-Nachrichten. Wenn z. B. ein Agent ein Paket
zu einem anderen Agenten sendet, dann sendet der erste Agent eine
IPC-Nachricht an
die VM, und infolgedessen richtet die VM die IPC-Nachricht an den
zweiten Agenten.
-
Ein Ausgang zu und ein Eingang von
der Hardware ruft ein Hardware-Ereignis hervor. Wenn z. B. ein Anrufer
mit dem Sprechen beginnt, tritt ein Hardware-Ereignis auf.
-
Objekte innerhalb der VM können Zeitabläufe als
Teil der Behandlung anderer Ereignisse vorgeben. Diese Ereignisse
werden in einer Zeit-Warteschlange abgelegt, und wenn die Zeit abgelaufen
ist, tritt ein Zeitgeber-Ereignis auf, das die VM wie irgendein
anderes Ereignis behandelt. Wenn z. B. ein Benutzer DTMF-Töne niederdrückt, läuft der
Zeitgeber aus, wenn eine lange Pause zwischen den Tönen vorliegt.
-
Die VM muss Ereignisse rasch und
effizient handhaben, um eine schnelle Antwortzeit auf Agentenanforderungen
vorzugeben. Die VM hört
auf Ereignisse, und wenn eines auftritt, blockiert sie jegliche
andere Aktivität
und antwortet auf dieses. Wenn sie die Handhabung eines Ereignisses
beendet hat, horcht sie nach dem nächsten Ereignis.
-
Nachdem die VM eine Sitzung gebildet
hat, sendet die Sitzung eine IPC-Verbindungsanforderung
an die VM. Ein VMHörer-Objekt 310 in
der VM empfängt
diese Verbindungsanforderung, und die VM bildet ein VMServer-Objekt 312 für diese
Sitzung zur Verwendung im Dialog mit der VM. Es ist das VMServer-Objekt, das
die IPC-Nachrichten von der Sitzung des Agenten empfängt, wie
dies in 17 gezeigt
ist. Das VMServer-Objekt nimmt die Objekt-ID und führt eine
Algorithmus mit ihr aus, um das geeignete RPC-Ziel (VM-Sitzung 314 oder
VM-Kanal 280) in der VM zu erhalten. Das VMServer-Objekt
reicht sodann die Nachricht zu der richtigen VM-Sitzung oder dem richtigen VM-Kanal.
Um dies zu tun, ruft der VMServer die virtuelle Mitgliedsfunktion
do_rpc des RPC-Zieles auf, und das RPC-Ziel verarbeitet die Nachricht
und führt
die Operation aus.
-
Jede Agentensitzung besitzt ein entsprechendes
VM-Sitzungsobjekt 314 in der VM. Das VM-Sitzungsobjekt
speichert den laufenden Status der Sitzung. Dieses Objekt bringt
auch Pakete in eine Warteschlange, die für den Agenten bestimmt sind,
wenn für
den Agenten keine Sitzung abläuft.
Wenn eine Sitzung erneut abläuft,
sendet es die Pakete.
-
Irgendein VM-Objekt kann ein Zeitgeber-Objekt
bilden, um einen Zeitablauf einzustellen. Die VM speichert Zeitgeber-Objekte
in ihrer Zeitgeber-Warteschlange 288, und wenn der Zeitgeber
abgelaufen ist, tritt ein Zeitgeber-Ereignis auf, das die VM wie
irgendein anderes Ereignis behandelt.
-
Verwaltung
von Ressourcen
-
Die VM verwaltet verschiedene Arten
von Ressourcen: jene, die direkt durch Agenten manipuliert werden
können,
jene, die indirekt durch Agenten manipuliert werden können, und
jene, die sich innerhalb der VM befinden. 17 zeigt diese Ressourcen in der VM,
wobei es zwei aktive Agentensitzungen und eine Konferenz zwischen
den Sitzungen gibt.
-
Agenten können direkt Sitzungen, Kanäle, Konferenzen
und Pakete manipulieren. Für
jede Agentensitzung besitzt die VM einen Dialogkanal für IPC-Nachrichten
und ein Objekt, das den Zustand der Sitzung verfolgt.
-
Jedes aktive Gadget in einer Agentensitzung
entspricht einem Kanal 280 in der VM. Wie zuvor vermerkt,
kann ein Kanal eine Gruppe mit ihm verbundener Anschlüsse 282 besitzen,
wobei jeder Anschluss eine oder mehrere Fähigkeiten vorgibt. Eine Fähigkeit
ist eine Darstellung einer Fähigkeit
oder eines Merkmals oder eines Kanals, wie z. B. die Fähigkeit,
Sprache zu erkennen oder Audiosignale abzuspielen. Agenten fordern Fähigkeiten
von der VM an, um mit ihren Benutzern einen Dialog zu führen. Als
Antwort fügt
der Kanal einen oder mehrere Anschlüsse hinzu, wobei jede Fähigkeit
einem oder mehreren Anschlüssen
entspricht.
-
Eine Konferenz 284 ist ein
Objekt, das mehrere Kanäle
in einer einzigen Sitzung oder mehreren Sitzungen verwenden kann.
Um r. B. eine Konferenzschaltung einzurichten, führt ein elektronischer Assistent
Anrufe zu jedem Teilnehmer und verwendet sodann ein Konferenz-Objekt,
um die Kanäle
der Teilnehmer in einer einzigen Sitzung zu verbinden.
-
Für
jedes durch einen Agenten gesendete Paket überträgt die VM dieses und verbindet
es, falls erforderlich, in einer Warteschlange.
-
Durch die Manipulation von Fähigkeiten
können
Agenten indirekt Anschlüsse
manipulieren. Ein Anschluss ist ein Objekt, das sich auf eine Ein-/Ausgangseinrichtung
bezieht. Ein Kanal bildet einen oder mehrere Anschlüsse für jede durch
den elektronischen Assistenten geforderte Fähigkeit und verwaltet die Anschlüsse durch
die Verbindung. Der Anschluss ist an die Hardware-Einrichtung 286 angeschlossen,
die tatsächlich
die Fähigkeit
besitzt. Anschlüsse
kann man sich auch als Filter vorstellen. Zum Beispiel ist ein Spracherkennungsanschluss
kein Audioanschluss; er nimmt Audiosignale auf und wandelt sie dann
(d. h., filtert sie) in einer Menü-Auswahl.
-
Die VM besitzt ebenfalls interne
Ressourcen einschließlich
Zeitgeber 288, einen Bus 300 und Benutzer-Informationsobjekte 302.
Ein Zeitgeber ist ein Objekt, das einen Zeitablauf darstellt. Zum
Beispiel wird ein Zeitgeber-Objekt eingestellt für die Zeit zwischen DTMF-Tasten
und der Zeit zwischen dem Wiederaufsuchen eines Paketes und seinem
tatsächlichen
Empfang. Ein Bus ist ein Objekt, das einen Daten- und Steuer-Hardware-Bus
darstellt, wie z. B. MVIP-Bus oder ein TCP/IP-Bus. Alle an den Bus
angeschlossenen Objekte können
miteinander einen Dialog ausführen,
wobei das gleiche Protokoll verwendet wird. Ein Benutzer-Informationsobjekt
ist ein gepufferter Hinweis zu dem Benutzerobjekt in der Objektdatenbank.
Ein Benutzer-Informationsobjekt
wird für
jeden Benutzer gebildet, der seine Assistenten aufruft und verriegelt
einloggt.
-
Die VM teilt Sitzungen zu und trennt
diese, wie es benötigt
wird. Wenn ein eingehender Anruf ankommt oder ein Paket an einen
Benutzer abgeliefert wird, der nicht bereits eine Meistersitzung
aufweist, startet die VM eine neue Sitzung.
-
Ein Ressourcen-Manager in der VM
führt Ressourcen-Verwaltungsfunktionen
aus. Zum Beispiel hält er
einen Pool von freien und verfügbaren
Kenntnisnehmern und ein- und ausgehenden interaktiven Ressourcen 304.
Er verwaltet die Zuordnung und Abtrennung dieser Ressourcen und
teilt Anforderern mit, wenn Ressourcen (z. B. Kanäle) nicht
verfügbar
sind. Er hält
auch Reservierungen für
Ressourcen bereit, wenn sie momentan nicht verfügbar sind, und sobald eine
angeforderte Ressource frei wird, ordnet er sie der anfordernden Sitzung
zu. Er trennt auch die ein- und ausgehenden interaktiven Anschlüsse und
die Erkennungsanschlüsse ab,
wenn sie nicht mehr für
einen Kanal benötigt
werden, wodurch sie für
die Verwendung durch andere Kanäle frei
werden.
-
Konferenz-Objekte:
-
Konferenz-Objekte werden durch einen
Agenten und die VM benutzt, um mehrere Gadgets und ihre entsprechenden
Kanäle
miteinander zu verbinden. Der Agent und die VM besitzen geringfügig unterschiedliche
Betrachtungen eines Konferenz-Objektes.
Die Agenten sehen nur die aktiven Gadgets, die der Agent steuert,
während
die VM alle aktiven Gadgets und ihre entsprechenden Kanäle sieht,
die in einer Konferenz verbunden sind.
-
Die Verfahren mit Konferenz-Objekten
sind in der folgenden Tabelle aufgelistet und beschrieben.
-
-
In dem beschriebenen Ausführungsbeispiel
sind aktive Gadgets immer mit einem Konferenz-Objekt verbunden.
In dem Fall, in dem es nur ein aktives Gadget gibt, z. B. wenn ein
Teilnehmer oder ein Anrufer sich mit einem elektronischen Assistenten
unterhält,
ist das aktive Gadget mit einer speziellen Form der Konferenz verbunden,
die als „untätige Konferenz" bezeichnet wird.
-
Zuteilung von Kanälen und
Anschlüssen.
-
Um die Zuteilung von Sitzungen zu
beschleunigen, hält
die VM einen Sitzungspool 308, der Sitzungen enthält, die
noch nicht Benutzern zugeteilt sind. Wie bereits vermerkt, handhabt
der elektronische Assistent einen ankommenden Anrufer unter Verwendung
einer neuen Sitzung. Die VM teilt diese Sitzung aus ihrem Sitzungspool
zu. Die VM bildet den Sitzungspool bei der System-Anlaufzeit und
füllt ihn
neu aus falls ertorderlich. Jede Sitzung im Pool ist für einen
spezifischen Typ von Agenten.
-
Die VM enthält ebenfalls Kanalressourcen,
die Pools von Kanälen
oder Anschlüssen
sind, die die VM aktiven Gadgets zuteilen kann. Die Kanalressource
oder Anschlussressource ist verantwortlich für die Verwaltung der Zuteilungen
und Trennungen von und aus dem Pool.
-
Bei dem beschriebenen Ausführungsbeispiel
bildet beim Start des Systems die VM die Kanäle, die erforderlich sind,
um Dialoge über
die durch das System gestützten
Schnittstellen zu handhaben. Die aufgebauten Kanäle besitzen drei mögliche Betriebsweisen:
eine Hörmodus,
einen Leerlaufmodus oder einen abgehenden Anruf-Modus. Im Hörmodus überwacht
die zugeordnete Schnittstellenkarte die eingehende Leitung (z. B. die
T1-Leitung) auf eingehende Anrufe. Im Abgangsmodus ist die Schnittstellenkarte
eingestellt, um eine Verbindung zu ihrem Dialogkanal zu initiieren.
Der Leerlaufmodus wird während
Umschaltungen verwendet. Beim Start werden alle aufgebauten Kanälen in einen
Hörmodus
versetzt, um für
den Empfang eines eingehenden Anrufes bereit zu sein.
-
Wie in den 18A–B veranschaulicht, erhält, wenn
ein Agent 150 ein Gadget 336 zu einer Sitzung hinzufügt, die
VM einen Kanal 280 (18A).
Sie stellt eine Verbindung auf dem Kanal her und bildet ein aktives
Gadget 152 (18B),
das dem Kanal zugeordnet ist. Der Kanal repräsentiert die aktuelle Verbindung, die
verwendet wird, um mit dem Benutzer einen Dialog zu führen.
-
Agenten können den Gadgets Eingangs-,
Ausgangs- und Erkennungsfähigkeiten
hinzufügen,
und die VM fügt
dem Kanal Anschlüsse
mit diesen Fähigkeiten
hinzu. Es gibt drei Arten von Anschlüssen: Eingangsanschlüsse, Ausgangsanschlüsse und
Erkennungsanschlüsse.
Ein Eingangsanschluss zeichnet Audiosignale in einer Meme auf. Ein
Ausgangsanschluss spielt Audiosignale von einer Meme ab. Ein Erkennungsanschluss benutzt
einen Eingang des Benutzers, um eine Auswahl aus einem Menü zu treffen.
-
Jeder Anschluss repräsentiert
eine Fähigkeit
einer physikalischen Einrichtung, wie z. B. einer Leitungsverarbeitungs-Karte
oder einer Stimmerkennungs-Schnittstellenkarte.
Wenn die VM Anschlüsse
für eine vorgegebene
Fähigkeit
hinzufügt,
fügt sie
gewöhnlich
mehr als einen Anschluss hinzu. Wenn z. B. in dem beschriebenen
Ausführungsbeispiel
ein Agent die Erkennungsfähigkeit
anfordert, fügt
die VM einen Stimmerkennungsanschluss für die Spracherkennung und einen
DTMF-Erkennungsanschluss für
die Erkennung von DTMF-Tönen
hinzu. Wenn der Agent die Ausgangsfähigkeit anfordert, fügt die VM
mehrere Ausgangsanschlüsse
hinzu, wobei jeder Anschluss ein unterschiedliches Audioformat handhabt.
Dies gestattet eine transparente Unterstützung für Hardware, die verschiedene
Audioformate verwendet.
-
Darstellung von Memen
und Menüs:
-
Wenn der Agent den Benutzer mit Memen
und Menüs
anspricht, antwortet jeder Anschluss dem Medium oder Mogul, von
dem es weiß,
wie es abzuspielen oder zu erkennen ist. Zum Beispiel spielt der
Ausgangsanschluss irgendwelche Audiomedien für Systemaufforderungen ab,
während
der Erkennungsanschluss Spracherkennung ausführt, um die Auswahl des Benutzers
aus einem Menü festzustellen.
Für jeden Kanal
wird nur eine Art von Medium von jeder Meme dargeboten. Wenn Meme
dargeboten werden, kann nur ein Ausgangsanschluss eine Meme zu einem
bestimmten Zeitpunkt vorgeben. Beim Analysieren einer Antwort können jedoch
mehrere Erkennungsanschlüsse
zur gleichen Zeit hören;
z. B. kann einer auf Sprache horchen und der andere auf DTMF-Töne. Wenn
DTMF-Töne
auftreten, hebt der DTMF-Erkennungsanschluss den Spracherkennungsanschluss
auf, der nach Sprache horchte. Ebenso hebt er, wenn Sprache zuerst
auftritt, den DTMF-Erkennungsanschluss
auf.
-
Zum Beispiel sei das zuvor erläuterte Meme „Wen anrufen?" betrachtet. Wenn
unter Bezugnahme auf 19 der
Moderator 160 das Meme „Wen anrufen?" 192 und
das Kontaktmenü 194 zum
aktiven Gadget 152 weiterreicht, präsentiert die VM das Meme sämtlichen
Anschlüssen 282,
die mit dem Kanal 280 verbunden sind. Der Audio-Ausgangsanschluss
weiß,
wie dieses Meme abzuspielen ist, so dass er das Meme nimmt und abspielt.
Als Nächstes
präsentiert
die VM das Menü sämtlicher
Anschlüsse,
die mit dem Kanal verbunden sind. Sowohl die DTMF- als auch die
VPC-Erkennungsanschlüsse
wissen, wie dieses Menü zu
benutzen ist, so dass sie es nehmen und auf DTMF-Töne oder
Sprache (je nachdem) zu hören
beginnen. Wenn der VPC-Erkennungsanschluss einmal Sprache feststellt,
so hebt er den DTMF-Erkennungsanschluss auf, passt die Sprache an
das Menü an
und führt
den Menüaufruf
an den Moderator zurück.
-
Wenn die VM eine Memenliste einer
Auswahl von Anschlüssen
präsentiert,
schaut jeder Ausgangsanschluss nach dem ersten Meme in der Liste
und nach irgendwelchen nachfolgenden Memen, die das gleiche Audioformat
besitzen. Wenn ein Ausgangsanschluss die Meme abspielen kann, entfernt
er sie von der Memenliste, spielt die Memen der Reihe nach ab und
führt den
Rest der Liste zur VM zurück.
Die VM präsentiert den
Rest der Liste erneut den Anschlüssen,
und der Prozess setzt sich fort, bis keine Meme mehr auf der Memenliste
verbleibt.
-
Schaltkanäle
-
Die VM ist auch verantwortlich für das Verbinden
und Schalten von Anrufen. Sie verfolgt alle Verbindungen zwischen
Gadgets und benutzt das Konferenz-Objekt, um Anrufe zu verbinden
und zu schalten. Ein Konferenz-Objekt kann mehrere Kanäle in einer
einzigen Sitzung verbinden. Um z. B. einen Konferenzanruf zu arrangieren,
stellt ein elektronischer Assistent Anrufe zu jedem Teilnehmer durch
und verwendet sodann das Konferenz-Objekt, um die Kanäle der Teilnehmer
in einer einzigen Sitzung zu verbinden.
-
Detaillierte
Architektur und interner Entwurt von Agenten
-
Dies Systemagenten benutzen eine
Vielzahl von Anwendungs-Dienstleistungen, um ihre Pflichten auszuführen. 20 zeigt die Funktionsbeziehungen
zwischen den Agenten und dieser Anwendungs-Dienstleistungen.
-
Aufgaben 350 sind Teil einer
Assistenten-Ebene 352, aber sie werden nicht durch die
Einrichtungsagenten 354 benutzt. Der Assistent benutzt
die MMUI 356, Pakete 358, Datenbankeinrichtungen 360 und
verschiedene Einrichtungen 362, welche ihrerseits von der
VM 364 und der Objektdatenbank 366 abhängen. Datenbankeinrichtungen
sind eine Gruppe von Makros für
den Zugriff auf die Datenbank, während
verschiedene Einrichtungen eine Gruppe von Standard-Datenstrukturen und
-behältern
sind (z. B. Zeichenketten und Bit-Anordnungen). Die Einrichtungsagenten
benutzen Pakete und Datenbankeinrichtungen und andere VM-Dienstleistungen
(z. B. Zugriff zu Kanälen,
Gadgets und aktive Gadgets), um ihre Pflichten auszuführen. Der
Paketmechanismus ist sowohl auf die VM als auch auf die Datenbankeinrichtungen
aufgeschichtet. Obgleich das Funktionsdiagramm die Beziehung der
Agenten mit der restlichen Architektur zeigt, zeigt es nicht die
Dynamik einer Life-Sitzung.
-
21 zeigt
ein Beispiel einer Assistentensitzung. Am Boden der Sitzung werden
die MMUI-, die VM- und Paket-Bibliotheken 368, 370 und 372 hereinverbunden.
Das aktive Gadget 374, das der Assistent verwendet, um
mit dem Benutzer einen Dialog zu führen, ist direkt auf die Oberseite
des Kanals 376 aufgeschichtet. Wenn der Assistent eine
Aufgabe 377 von der Aufgabenliste 378 nimmt, können die
Aufgabe und der Moderator 380 Menüs 382 und Memen 384 an
den aktiven Kanal weiterreichen oder Pakete senden. In jedem Fall sendet
die VM-Bibliothek eine IPC-Nachricht 386 an
die VM, und die VM führt
die Aktion aus. Als Teil der Ausführung der Aktionen des Assistenten
kann die VM IPC-Nachrichten zurück
zur Sitzung senden. Die VM-Bibliothek wandelt diese Nachrichten
in Objekte zurück,
mit denen der Assistent vertraut ist. Die Aufgabe kann Menüaufrufe,
Memen und Pakete zum Assistenten zurückführen.
-
Wie zuvor vermerkt, gibt es konzeptionell
drei Arten von Agenten, nämlich
Agenten, Benutzeragenten und Assistenten. In der Klassenhierarchie
besitzen jedoch nur Agenten und Assistenten Klassen; Benutzeragenten
besitzen keine Klasse.
-
Die Agentenklasse 198 ist
die Basisklasse für
alle Agenten und Assistenten. 22 zeigt
die Agentenklasse und andere eng verwandte Klassen einschließlich Sitzungs-,
aktives-Gadget-, Paket- und Aufgabenklassen. Es gibt ebenfalls eine
Klasse „beständiger Agent", welche die beständigen Daten
für einen
Agenten speichert. (In 22 repräsentieren
durchgezogene Linien Unterklassen, und gestrichelte Linien repräsentieren
Freund-Klassen.) Allgemein werden die wichtigsten Operationen, die
von einem Agenten ausgeführt
werden, durch die Sitzung, den Agenten oder das aktive Gadget ausgeführt, wie
dies in Tab. 3 wiedergegeben wird.
-
-
Die folgenden Unterabschnitte beschreiben
die Klassen des Sitzungsagenten, des aktiven Gadgets, des beständigen Agenten,
der Aufgabe, des Paketes und des Paketinhaltes in näheren Einzelheiten.
-
Die Sitzungsklasse:
-
Die Sitzungsklasse ist eine Unterklasse
der Client-Klasse, die sie mit der Fähigkeit versieht, ein RPC-Client
in der VM zu sein. Die Sitzung liefert den Ausführungsfaden für den Agenten
und verfolgt die Interprozess-Kommunikations (IPC)-Verbindung zu
dem VM-Server-Prozess.
-
Die Sitzungsklasse besteht aus den
folgenden Datenelementen:
- – eine Buchse, welche für eine Dialog
mit dem VM-Server-Prozess (von der Client-Klasse geerbt) verwendet
wird
- – eine
Objekt-ID (von der Client-Klasse geerbt)
- – ein
Hinweis auf sich selbst (von der Client-Klasse geerbt)
- – eine
Referenz zu dem Benutzerobjekt
- – ein
Hinweis auf den Fokus-Gadget
- – eine
Liste von Gadgets
- – eine
Liste von Paketen
-
Die Sitzungsklasse enthält Mitgliedsfunktionen
für:
- – Verwaltung
von Gadgets. Die Gruppe umfasst Funktionen zum Hinzufügen, Entfernen
und Verbinden von Gadgets und Holen und Einstellen des Fokus-Gadgets.
- – Handhabung
von Paketen. Die Gruppe umfasst Funktionen zum Senden von Paketen,
Wiederaufsuchen von Paketen, Antworten auf Pakete und Bildung von
Warteschlangen für
Pakete.
- – Die
Bildung einer Meistersitzung aus der laufenden Sitrung.
-
Die Agentenklasse:
-
Die Agentenklasse ist eine Unterklasse
sowohl der getippten als auch der Pakethandhabungs-Klassen. Die
getippte Klasse ist die primäre
Basisklasse. Sie liefert eine Laufzeitüberprüfung und Mitgliedsfunktionen
für das
Verwerten von Objekten. Die Pakethandhabungs-Klasse ist eine Basis-Verteilerklasse
für die Handhabung
von Paketen und gibt Agenten die Fähigkeit, miteinander unter
Verwendung von Paketen zu kommunizieren.
-
Die Agentenklasse besteht aus den
folgenden Datenmitgliedern:
- – ein Name
(geerbt von getippt)
- – eine
Typ-ID (geerbt von getippt)
- – ein
Hinweis zu der Sitrung (geerbt von Pakethandhabung)
- – ein
Zeitablauf (geerbt von Pakethandhabung)
- – ein
Aufgabenstapel, der eine verbundene Liste von Aufgabenobjekten enthält, die
durch den Agenten auszuführen
sind
- – ein
Hinweis zum aktiven Gadget
- – ein
Hinweis zum beständigen
Agenten
-
Die Agentenklasse enthält Mitgliedsfunktionen
für:
- – Handhabung
von Aufgaben. Diese Gruppe umfasst Funktionen zum Hinzufügen von
Aufgaben, Entfernen von Aufgaben, Holen der nächsten Aufgabe vom Aufgabenstapel,
Ausführen
einer Aufgabe, Bearbeitung einer Aufgabe und Streichen einer Aufgabe.
- – Rückführung des
aktiven Gadgets und des beständigen
Agenten.
- – Handhabung
von jeder Art von Paketinhalt (Paketinhalts-Klasse). Diese Mitgliedsfunktionen
werden von der Pakethandhabungs-Klasse geerbt.
-
Jede Unterklasse des Agenten enthält irgendwelche
Objekte, die zu dieser Art von Agent gehören. Zum Beispiel enthält die Unterklasse
für den
Assistenten die Hand und die Handgeschichte, während die Unterklasse für den Kurieragenten
die Liste der abzuliefernden Pakete enthält. Zusätzlich enthält jede Unterklasse des Agenten
Verfahren für
alle Aktionen, die durch den Agenten ausgeführt werden und die keine Aufgaben sind.
-
Atle Agenten folgen dem gleichen
grundlegenden Gerüst
von Operationen. Speziell führt
ein Agent die folgenden Operationen in seiner Hauptverarbeitungsschleife
aus:
- – Bilden
einer Sitzung
- – Bilden
einer Agentensitzung innerhalb der Sitzung
- – Eingabe
des Ausführungsverfahrens
zum Ausführen
von Aufgaben
- – Fortfahren
mit der Ausführung
von Aufgaben, bis keine Aufgaben mehr vorliegen oder eine Ausnahme empfangen
wird
- – Streichen
seiner Sitzung
- – Austritt
-
Das Agenten-::-Ausführungs-()-Verfahren
holt die nächste
Aufgabe vom Aufgabenstapel und führt
sie aus, bis sich keine Aufgabe mehr im Stapel befindet. Einrichtungsagenten
wie z. B. der Cron-Agent und der Postmeister-Agent benutzen jedoch
nicht den Aufgabenstapel oder Aufgaben. Jeder Einrichtungsagent
weiß, wie
eine einzige Art von Paket zu handhaben ist, so dass er sein eigenes
Ausführungs-()-Verfahren vorgibt, das
darauf wartet, ein Paket zu empfangen, und es dann bedient.
-
Die Hauptroutine für einen
komplexen Agenten, wie z. B. der elektronische Assistent, besitzt
die grundlegenden Operationen, die gerade dargestellt wurden, umfasst
aber viele zusätzlich
Operationen, wie z. B. solche für
die Initialisierung der Memen in der Datenbank, das Aufsuchen des
Slots vom VM-Server-Prozess, das Aufsuchen des Teilnehmers, dem
er gehört,
das Holen des Fokus-Gadgets usw.
-
Die aktive Gadget-Klasse:
-
Die aktive Gadget-Klasse ist von
der DB-Klasse hergeleitet, obgleich sie nicht tatsächlich in
der laufenden Datenbank gespeichert ist. Die DB-Klasse ist die primäre Unterklasse
von getippt und enthält
alle Objekte, die in der Datenbank gespeichert sind. Die aktive
Gadget-Klasse besteht aus den folgenden Datenelementen:
- – einem
Hinweis zu dem Kanal in der VM
- – einem
Hinweis zu der Meme-Liste
- – einem
Hinweis zu einem Menü
-
Die aktive Gadget-Klasse enthält Mitgliedsfunktionen
für:
- – Darbietung
einer Meme und Sammeln einer Antwort von einem Menü
- – Hinzufügen und
Entfernen von Fähigkeiten
- – Training
von äußersten
Möglichkeiten.
Die Gruppe umfasst Funktionen für
das Starten des Trainings, das Sammeln von äußersten Möglichkeiten, das Hinzufügen von
Training, die Beendigung des Trainings und den Abbruch des Trainings.
-
Die aktive Gadget-Klasse definiert
Operatoren für:
- – Darbietung
von Information an den Benutzer («)
- – Aufzeichnung
von Information vom Benutzer (»)
-
Gadgetes speichern die „Adresse", unter der ein Benutzer
erreicht werden kann. Es gibt die folgenden Gadget-Arten:
- – Telefon-Gadget,
das die Adresse eines Telefons beschreibt – die Vorwahl, den Länder-Code,
den Städte-Code,
den Bereichs-Code, die Nummer und den Anschluss
- – Agenten-Gadget,
das die Adresse eines Assistenten beschreibt – ein Hinweis zum Benutzerobjekt
seines Teilnehmers
- – Ardis-Gadget,
das die Adresse eines Ardis-Pagers beschreibt
- – SkyTel-Pager-Gadget,
das die Adresse eines SkyTel-Pagers beschreibt – Pager-ID und eine Sicherheits-ID
- – numerisches
Pager-Gadget, das die Adresse eines numerischen Pagers beschreibt – eine Telefonnummer
- – Buchsen-Gadget,
das die Adresse eines Datennetzwerkes beschreibt – einen
Host-Namen, einen Service und einen Service-Typ
-
Theoretisch kann ein Agent irgendeine
Art von Gadget benutzen. Bestimmte Agenten, wie z. B. die Kurier-Agenten
sind spezialisiert, um sich mit bestimmten Gadget-Arten zu befassen.
Zum Beispiel weiß der System-Kurier-Agent,
wie das Agenten-Gadget zu behandeln ist, während der SkyTel-Kurier-Agent
und der numerische Pager-Kurier-Agent weiß, wie das SkyTel-Pager-Gadget
und das numerische Pager-Gadget jeweils zu behandeln ist.
-
Um ein Gadget zum Dialog mit einem
Benutzer zu verwenden, fügt
ein Agent es der Sitzung hinzu, um ein aktives Gadget zu erhalten.
Sodann kann der Agent Information über das aktive Gadget senden
und empfangen.
-
Die beständige Agenten-Klasse:
-
Die beständige Agenten-Klasse besitzt
keine Datenelemente oder Mitgliedsfunktionen. Jede Unterklasse des
beständigen
Agenten liefert Datenelemente für
beständige
Daten seines Agenten und Mitgliedsfunktionen zum Zugriff auf die
Daten. Zum Beispiel enthält
der beständige
Assistent die Schachtel des Teilnehmers, während der beständige Cron-Agent
eine Liste von Cron-Ereignissen
enthält.
-
Die Aufgabenklasse:
-
Die Aufgabenklasse ist sowohl von
der DB-Klasse als auch der Feld-Elternklasse hergeleitet. Die Feld-Elternklasse
gibt einer Aufgabe einen Weg vor, damit sie weiß, ob sie verändert, vervollständigt oder
gestrichen ist.
-
Die Aufgabenklasse besteht aus den
folgenden Datenelementen:
- – Was hat sich verändert? (Geerbt
von den Feld-Eltern)
- – Ist
die Aufgabe vollständig?
(Geerbt von den Feld-Eltern)
- – Wurde
die Aufgabe gestrichen? (Geerbt von den Feld-Eltern)
- – einen
Verweis zum Agenten
- – einen
Verweis zum aktiven Gadget
- – einen
Verweis zur Sitzung
-
Die Aufgabenklasse enthält Mitgliedsfunktionen
für:
- – Verarbeitung,
Ausführung
und Streichen von Aufgaben. Diese Funktionen sind geschützt, und
es wird nur durch die Agentenklasse auf sie zugegriffen.
- – Rückführen und
Einstellen des aktiven Gadgets
- – Rückführen und
Einstellen des Agenten
- – Rückführen und
Einstellen der Sitzung
-
Jede Subklasse der Aufgabe enthält geschützte Mitgliedsfunktionen
für die
Verarbeitung und Ausführung
dieser Aufgabe.
-
Die Paketklasse:
-
Die Paketklasse ist von der DB-Klasse
hergeleitet und besitzt die folgenden Datenelemente:
- – die
Adresse des Empfängers
- – die
Adresse des Senders
- – eine
Paket-ID
- – eine
Nachrichten-ID
- – eine
Bezugnahme auf den Inhalt des Paketes
-
Die Paketklasse besitzt Mitgliedsfunktionen
für den
Zugriff auf Datenelemente der Klasse. Sie besitzt auch Operatoren
für:
- – Auffüllen eines
RPC-Ausgangspuffers mit dem Paket («)
- – Entfernen
eines Paketes von einem RPC-Eingangspuffer (»)
-
Die Paketinhalts-Klasse:
-
Die Paketinhalts-Klasse ist hergeleitet
von der DB-Klasse und ist eine abstrakte Klasse. Die Paketinhalts-Klasse
enthält
keine Datenelemente und eine einzige Mitgliedsfurktion zur Verarbeitung
des Inhaltes eines Paketes.
-
Jede Unterklasse der Paketinhalts-Klasse
enthält
Datenelemente, die für
den Pakettyp geeignet sind, z. B. eine Erinnerung oder sogar ein
anderes Paket. Jede Unterklasse besitzt auch eine Mitgliedsfunktion
zur Verarbeitung seines speziellen lnhaltes.
-
Errichten des Fokus-Gadgets:
-
Das Fokus-Gadget ist ein spezifisches
aktives Gadget, das ein Assistent verwenden muss, um einen Dialog
mit einem Benutzer zu führen.
Im Falle eines Telefon-Gadgets
besitzt das Fokus-Gadget Spracherkennungs-Ressourcen, die ihm zugeordnet
sind.
-
Wenn die VM eine Sitzung für einen
eingehenden Anruf startet, so stattet sie die Sitzung mit einem Fokus-Gadget
aus, wobei der Fokus ein Datenelement der Sitzung ist. Für Telefonanrufe
ist dieses Fokus-Gadget vom Typ Telefon-Gadget. Der Assistent verwendet
dieses Fokus-Gadget, um einen Dialog mit dem Teilnehmer zu führen und
Kontakt oder keinen Kontakt mit diesem Anruf aufzunehmen. Bevor
der Assistent das Fokus-Gadget verwenden kann, das mit der Sitzung
geliefert wird, muss er die folgenden Maßnahmen treffen, um es zu errichten:
- 1. Erhalten des Fokus-Gadgets mit der Get Fokus-Mitgliedsfunktion
- 2. Einstellung von irgendwelchen Eigenschaften, die bei dem
Fokus-Gadget benötigt
werden
- 3. Hinzufügen
von irgendwelchen notwendigen Fähigkeiten
zu dem Fokus-Gadget
- 4. Beantworten des Anrufes mit dem Fokus-Gadget
-
In dem Fall, in dem eine Sitzung
gestartet wird aufgrund einer Paketabgabe, bildet die VM kein Fokus-Gadget.
In diesem Fall versucht der Assistent den Teilnehmer zu lokalisieren,
indem er einen ausgehenden Anruf tätigt. Bevor der Assistent mit
der angerufenen Person einen Dialog führen kann, muss er die folgenden
Aktionen vornehmen, um ein Fokus-Gadget zu errichten:
- 1. Feststellen des Gadgets, das dem Ort des Teilnehmers entspricht
- 2. Erhalten eines Fokus-Gadgets durch Hinzufügen des Gadgets zu der Sitzung
- 3. Einstellung irgendwelcher Eigenschaften, die bei dem Fokus-Gadget
benötigt
werden
- 4. Hinzufügen
irgendwelcher notwendigen Fähigkeiten
zum Fokus-Gadget
-
Nachdem das Fokus-Gadget einmal errichtet
ist, kann der Assistent mit dem Benutzer unter Verwendung von Memen
und Menüs
einen Dialog führen,
und er kann die Gadgets gegebenenfalls manipulieren, um zusätzliche
Anrufe zu tätigen,
Benutzer in der Warteschleife zu halten und Benutzer zu verbinden.
-
Erhalten von zusätzlichen
aktiven Gadgets:
-
Theoretisch können Agenten irgendein Gadget
zu einer Sitzung mit der Sitzung : Add (Gadget)-Mitgliedsfunktion
hinzufügen.
Wenn der Agent das Gadget hinzufügt,
erhält
er ein aktives Gadget zurück,
und der Fokus ist bereits auf dieses aktive Gadget eingestellt,
wodurch es zum Fokus-Gadget wird.
-
Jeder Standard-Ort (Heim, Arbeit,
Auto, mobil, andere) für
jeden Kontakt wird durch ein adressierbares Gadget-Objekt (z. B.
ein Telefon-Gadget-Objekt) repräsentiert,
das einer Sitzung hinzugefügt
werden kann. Wenn z. B. ein Teilnehmer den Assistenten bittet, einen
abgehenden Telefonanruf mit einem Kontakt zu verbinden, so erhält der Assistent
das Telefon-Gadget für
den korrekten Ort (wie z. B. Arbeit) und fügt es der Sitzung hinzu.
-
Wenn der Agent ein Gadget einer Sitzung
hinzufügt,
erhält
die VM eine Telefonleitung und wählt
die in dem Gadget festgelegte Nummer. Die VM schafft kein aktives
Gadget und gibt es zu dem Agenten, bis der Anruf erfolgreich verbunden
ist. Das Kriterium für
eine erfolgreiche Verbindung ist veränderbar; es kann bedeuten,
dass das Telefon einige Male geläutet
hat oder dass irgendjemand den Anruf beantwortet hat. Wenn der Anruf
keine Verbindung findet, bildet die VM kein aktives Gadget und fügt die fehlgeschlagene
Operation für
den Agenten hinzu.
-
Einstellung von Eigenschaften
und Fähigkeiten:
-
Bevor der Agent über das aktive Gadget einen
Dialog führt,
muss er irgendwelche Eigenschaften und Fähigkeiten einstellen, die für den Dialog
mit dem Benutzer benötigt
werden.
-
Eigenschaften legen fest, welche
Medien in einer Meme dargeboten werden, und man kann sie sich als
Eigenschaften von MMUI-Objekten vorstellen. Die Sprache und die
Art der Aufforderungen (kurz, Dialog, instruktiv), die durch den
Assistenten verwendet werden, sind Beispiele für Eigenschaften. Die meisten
Eigenschaften werden als Teil der Präferenzen des Benutzers im Assistenten
eingestellt. Wenn der Assistent anläuft, stellt er Eigenschaften
für jede
Präferenz
des Benutzers im Fokus-Gadget
ein. Immer wenn der Benutzer eine Präferenz verändert, stellt der Assistent
die geeignete Eigenschaft ein.
-
Die VM liefert momentan den folgenden
Satz an Fähigkeiten:
- – WflnterOutCap,
das einen Audio-Ausgang vorgibt
- – WflnterlnCap,
das einen Audio-Eingang vorgibt
- – WfRecognizerCap,
das Sprach- und DTMF-Erkennung vorgibt
- – WfFaxInCap,
das einen Faxeingang vorgibt
- – WfFaxOutCap,
das einen Faxausgang vorgibt
- – WfAIICaps,
das alle Fähigkeiten
vorgibt
-
Der Assistent kann Fähigkeiten
einstellen, wenn er das Fokus-Gadget errichtet oder zu irgendeiner Zeit
der Sitzung mit dem Benutzer. Wenn z. B. der Benutzer darum bittet,
irgendeine Information zu faxen, so kann der Agent die Fax-Fähigkeit
dem aktiven Gadget hinzufügen,
um diese Benutzeranforderung auszuführen.
-
Beantwortung des Fokus-Gadgets:
-
Für
eingehende Anrufe muss der Assistent das Fokus-Gadget mit der Aktiv-Gadget::Antwort-Mitgliedsfunktion
beantworten, welche den Anruf annimmt und den Klingelton anhält. Nachdem
der Assistent den Anruf beantwortet hat, kann er den Dialog mit
dem Benutzer oder dem Angerufenen beginnen (z. B. könnte es ein
Faxgerät
sein, das angerufen hat).
-
Verbindung von Gadgets:
-
Agenten können Gadgets verbinden, trennen
und wiederverbinden, wie dies während
einer Sitzung erforderlich ist. Um Gadgets zu verbinden, die in
getrennten Sitzungen angeordnet sind, benutzen Agenten ein getrenntes
Objekt, nämlich
das Konferenz-Objekt. Nachdem eine Verbindung hergestellt wurde,
können
Agenten Gadgets trennen und wiederverbinden, um Benutzer in die
Warteschleife zu bringen oder sie zurückzuverbinden.
-
Pakete:
-
Agenten benutzen Pakete, um miteinander
einen Dialog zu führen.
Ein Paket besteht aus einem Ziel (Adressat), welches ein Benutzer
oder eine Sitzung sein kann, und aus einem Inhalt (Paketinhalts-Klasse).
Pakete werden an die Sitzung des Adressaten geliefert. Wenn der
Adressat ein Agent ist, bei dem mehr als eine Sitzung abläuft, so
wird das Paket immer an die Meistersitzung geliefert.
-
Tabelle 5 beschreibt die Pakete,
die durch Agenten benutzt werden.
-
-
-
Zusammensetzung von Paketen
-
Um ein Paket zusammenzusetzen, benutzt
der Agent den Paket-Konstruktor und legt die Paketinhalts-Klasse
als Argument fest. Der Agent kann dann die geeigneten Felder im
Inhalt des Paketes ausfüllen.
-
Senden und
Empfangen von Paketen
-
Um ein Paket zu senden, auf ein Paket
zu antworten oder ein Paket wieder aufzufinden, bildet die Sitzungsklasse
die folgenden Mitgliedsfunktionen:
Paket Senden
Antwort
auf Paket
Paket Wiederaufsuchen
-
Wenn auf ein Paket geantwortet wird,
richtet die VM automatisch das Paket an eine spezifische Sitzung
anstatt an einen spezifischen Adressaten.
-
Hin- und Zurückreichen
des gleichen Paketes:
-
Agenten können ein Paket hin- und zurückreichen
und seinen Inhalt jedes Mal als Verhandlungsmittel ergänzen. Als
Beispiel für
die Verwendung von Paketen in dieser Weise sei betrachtet, wie der
Assistent Anrufe handhabt. Wenn ein Teilnehmer einen Kontakt anruft,
so ist keine Verhandlung bei der Verbindung des Telefonates beteiligt.
Es gibt eine dreiteilige Bestätigung,
die bei der Verbindung eines Kontaktes mit einem Teilnehmer in den
folgenden zwei Situationen beteiligt ist:
Ein Kontakt außerhalb
ruft einen Teilnehmer an.
Ein Kontakt, der sich als Teilnehmer
herausstellt, ruft einen anderen
Teilnehmer an, der in das
System eingebucht ist.
-
Bezugnehmend auf die 23A–D beinhaltet die dreiteilige Bestätigung folgende
Schritte:
- 1. Wenn ein Kontakt einen Teilnehmer
anruft, sendet der elektronische Assistent 400 für die Sitzung
des Kontaktes 402 ein Verbindungspaket 404 zu
der Meistersitzung 406 (23A).
Das Paket zeigt an, dass der Anrufer eine Verbindung mit dem Teilnehmer
anfordert, und es enthält
einen Bezug zu dem Kontakt (oder einen Leerkontakt, wenn der Anrufer
kein bekannter Kontakt ist). Wenn keine Meistersitzung vorliegt, startet
die VM eine solche.
- 2. Wenn der elektronische Assistent für die Meistersitzung 406 das
Verbindungspaket 404 empfängt, prüft er es, um zu sehen, ob es
das Fokus-Gadget 408 besitzt,
welches anzeigt, dass bereits eine Sitzung mit dem Teilnehmer läuft. Wenn
der elektronische Assistent das Fokus-Gadget nicht besitzt, bedeutet
dies, dass die Sitzung gestartet wurde und dass sie ein Paket empfing,
und es ist erforderlich zu versuchen, den Teilnehmer zu lokalisieren,
um das Fokus-Gadget zu bekommen. Wenn der elektronische Assistent
einmal das Fokus-Gadget besitzt, so fragt er den Teilnehmer, ob
er mit dem Kontakt zu verbinden ist oder nicht. Wenn der Teilnehmer „ja" sagt, sendet der
elektronische Assistent für
die Meistersitzung das Verbindungspaket 404 zurück und zeigt
in ihm an, dass die Verbindungsanforderung angenommen worden ist (23B).
- 3. Wenn der elektronische Assistent für die Sitzung des Kontaktes
das Verbindungspaket empfängt,
sendet er es mit dem Hinweis zurück, fortzufahren
und die Verbindung herzustellen (23C).
Wenn der elektronische Assistent für die Meistersitzung das Verbindungspaket
empfängt,
verbindet er die zwei Gadgets und verschiebt das aktive Gadget des
Kontaktes in die Meistersitzung (23D).
-
Die Art und Weise, in der Konferenz-Objekte
bei der Behandlung von Dialogen benutzt werden, ist in den 25A–D veranschaulicht,
welche die Schritte darstellen zur Bildung eines Konferenz-Objektes
für die Errichtung
eines Anrufes von einem Teilnehmer zu einem anderen Teilnehmer.
In diesem Beispiel wird angenommen, dass beide Teilnehmer anfänglich nur
mir ihrem elektronischen Assistenten zusammenwirken und somit mit
untätigen
Konferenz-Objekten verbunden sind. Dies wird in der Sitzung A durch
ein Fokus-Gadget 401a veranschaulicht, das mit einem untätigen Konferenz-Objekt 403a verbunden
ist, und in der Sitzung B durch ein Fokus-Gadget 401b,
das mit einem untätigen
Konferenz-Objekt 403b verbunden
ist.
-
Der Teilnehmer A initiiert den Anruf
durch Instruieren seines elektronischen Assistenten, eine Verbindung
zu dem Teilnehmer B herzustellen. Als Antwort darauf prüft die VM,
ob der Teilnehmer B sich in einer Sitzung befindet, d. h., ob eine
Meistersitzung für
den Teilnehmer B abläuft.
Wenn sich der Teilnehmer B in einer Sitzung befindet, so teilt die
VM dem elektronischen Assistenten des Teilnehmers A mit, dass sich
der Teilnehmer B in einer Sitzung des Systems befindet. Diese Information
wird dem Teilnehmer A mitgeteilt, dem sodann die Gelegenheit gegeben
wird, seine Verbindungsanforderung zu bestätigen. Wenn der Teilnehmer
A seine Verbindungsanforderung bestätigt, sendet sein elektronischer
Assistent eine Konferenzanforderung 405 an den elektronischen
Assistenten des Teilnehmers B, und die VM bildet ein Konferenz-Objekt 407 für die angeforderte
Verbindung ( 24A).
-
Wenn der Teilnehmer B seinem elektronischen
Assistenten anzeigt, dass er die angeforderte Verbindung annehmen
will, sendet sein elektronischer Assistent eine Bestätigung (ACK)
zurück
zu dem elektronischen Assistenten für den Teilnehmer A (24B). In Beantwortung des
Empfangs der ACK vom Teilnehmer B bildet der elektronische Assistent
des Teilnehmers A ein Konferenz-Paket 409, das das für die Verbindung gebildetet
Konferenz-Objekt 407 identifiziert, verbindet sich selbst
mit dem Konferenz-Objekt 407 und sendet das Konferenz-Paket 409 zum
elektronischen Assistenten des Teilnehmers B (24C).
-
Wenn der elektronische Assistent
des Teilnehmers B das Konferenz-Paket vom Teilnehmer A empfängt, zieht
er die Identität
des Konferenz-Objektes aus dem Paket heraus, entfernt sein aktives
Gadget aus seinem untätigen
Konferenz-Objekt und fügt
es zu dem neu empfangenen Konferenz-Objekt 407 hinzu (24D). An diesem Punkt sind
die Teilnehmer A und B zusammengeschaltet, und ihre elektronischen
Assistenten lassen sie wissen, dass sie verbunden sind, indem sie
sagen „Mach
weiter".
-
Die Funktionalität des elektronischen
Assistenten
-
Die Anweisungsgruppe, auf die der
Teilnehmer zugreifen kann, ist im Anhang A dargestellt. Die verschiedenen
Aufgaben, die der elektronische Assistent ausführen kann, verwirklichen die
Funktionalität,
die diesen Anweisungen zugeordnet ist.
-
Das Folgende ist eine detailliertere
Beschreibung der verschiedenen Funktionen, die der elektronische Assistent
für seinen
Teilnehmer unter Verwendung der zuvor beschriebenen Mechanismen
ausführt.
Die beschriebenen Funktionen umfassen u. a.: (1) Handhabung eines
eingehenden Anrufes zu einem Teilnehmer, (2) Herstellung eines Kontaktes,
(3) Bildung einer Erinnerung und (4) Mitteilung einer Erinnerung
an den Teilnehmer.
-
Handhabung eines eingehenden
Anrufes:
-
Zunächst beschreiben wir, wie das
System einen eingehenden Anruf eines Anrufers (d. h. Bill Bishop) zu
einem Teilnehmer (d. h. Jim Smith) handhabt. Die Anruf-Handhabungsfunktionen
des Systems werden aufgerufen, wenn ein Anrufer einen Anruf an die
Telefonnummer des Teilnehmers abgibt. Das zentrale Büro teilt dem
System einen eingehenden Anruf mit, indem es ein Klingelsignal auf
einer T1-Leitung im System abgibt. Die Schnittstellenkarte, die
diese T1-Leitung überwacht,
antwortet auf das Klingelsignal durch Aufgreifen der Leitung und
Annahme einer 4-Ziffern- Folge
von Tastentönen,
die den angerufenen Anschluss identifizieren. Die Schnittstellenkarte
erzeugt ein Ereignis für
die virtuelle Maschine. Die virtuelle Maschine stellt durch die Hardware
fest, welche Nummer angerufen wurde, und stellt daraus die Identität des angerufenen
Teilnehmers fest.
-
Beim Empfang eines Hinweises auf
einen eingehenden Anruf startet die VM eine Sitzung, d. h. eine einzige
Bearbeitungsfolge, die zugeordnet wird, um diesen Anruf zu handhaben.
Wenn der VM-Server die Sitzung hervorbringt, tritt eine Bestätigung zwischen
der Sitzung und dem VM-Server auf, um den zwei Einheiten den Dialog
miteinander zu ermöglichen.
Als Teil der Bestätigung
reicht der Server-Prozess zu der Sitzung eine ID des Teilnehmers
weiter, für
den die Sitzung begonnen wird. Somit ist die Sitzung in der Lage,
unmittelbar eine Referenz zu einem Benutzerobjekt in der Datenbank
zu errichten, die die gespeicherte Information für den Teilnehmer enthält.
-
Zusätzlich zum Empfang der ID des
Benutzers, für
den die Sitzung gestartet worden ist, reicht die VM auch die Identität des Kanals
weiter, aus dem sie ein aktives Gadget aufgebaut hat. Das aktive
Gadget repräsentiert
den Dialogweg zu dem ankommenden Anrufer. Das aktive Gadget repräsentiert
die spezielle Dialogleitung, über
die der Anruf hereinkam, in diesem Fall eine Telefonleitung. Bis
die Fähigkeiten
hinzugefügt
werden, repräsentiert
das aktive Gadget einfach einen Kanal ohne Eingangs- oder Ausgangsfähigkeiten.
Um daher das System in die Lage zu versetzen, Aufforderungen abzugeben,
eingehende Signale aufzuzeichnen und Stimm- und DTMF-Erkennung mit
dem Kanal auszuführen,
fügt der
Assistent dem aktiven Gadget Fähigkeiten
hinzu. Zum Beispiel fügt
er eine interaktive Ausgangsfähigkeit,
eine interaktive Eingangsfähigkeit
und eine Erkennungsfähigkeit
hinzu. Die Fähigkeiten,
die dem aktiven Gadget hinzugefügt
werden, werden auf die Anschlüsse
abgebildet, welche die VM dem Kanal hinzufügt. Zum Beispiel bildet die
interaktive Ausgangsfähigkeit
einen Audio-Ausgangsanschluss für
das Abspielen von Audio-Signalen ab, die interaktive Eingangsfähigkeit
bildet einen Audio-Eingangsanschluss
zum Aufzeichnen von Sprache ab, und die Erkennungsfähigkeiten
bilden die Spracherkennungs- und DTMF-Anschlüsse ab.
-
Wenn die Fähigkeiten einmal errichtet
sind, ruft der elektronische Assistent eine Anruf-Beantwortungsaufgabe
auf, um den eingehenden Anruf zu handhaben. Bezugnehmend auf die 24A–B beteiligt
sich die Anruf-Beantwortungsaufgabe an einem Dialog mit dem Anrufer,
um bestimmte Informationen zu sammeln, die beim Beginn der Ausführung der
Aufgabe erforderlich ist. Allgemein ausgedrückt besitzt die Anruf-Beantwortungsaufgabe
anfänglich
zwei Informationsfelder, die ausgefüllt werden müssen: WER
ruft an und WAS wünscht
der Anrufer von dem elektronischen Assistenten?
-
Wenn ein eingehender Anruf für einen
vorgegebenen Teilnehmer ankommt, gibt es verschiedene Arten, auf
die der Assistent den Anruf handhaben kann, in Abhängigkeit
von den Präferenzen,
die der Teilnehmer zuvor ausgewählt
hat. Der Assistent kann den Anruf direkt an ein Telefon auf dem
Tisch des Teilnehmers richten, er kann einfach anbieten, eine Nachricht
von dem eingehenden Anruf anzunehmen, oder er kann den Teilnehmer
zu lokalisieren versuchen und ihm anbieten, mit dem eingehenden
Anruf verbunden zu werden, sobald er lokalisiert ist. Bei der Behandlung
des Anrufes prüft
zunächst
die Anruf-Beantwortungsaufgabe den Status des Teilnehmers, um festzustellen,
welche Präferenzen
er ausgewählt
hat (Schritt 500).
-
In dem beschriebenen Ausführungsbeispiel
wird angenommen, dass der Anrufer eine Verbindung mit dem Teilnehmer
herzustellen wünscht,
so dass dem Anrufer keine Wahlmöglichkeiten
zur Beantwortung der zweiten Frage geboten werden. In alternativen
Ausführungsbeispielen
kann jedoch die Anruf-Beantwortungsaufgabe modifiziert werden, um
dem Anrufer die Wahlmöglichkeit
anzubieten, eine Nachricht zu hinterlassen, die Priorität des Anrufes
festzulegen oder u. a eine Seite zu senden.
-
Ebenso sei vermerkt, dass wenn eine
ANI (Automatische Nummeridentifizierung) unterstützt wird, die Schnittstellenkarte
das ANI-Signal abstreifen kann, das von dem zentralen Büro empfangen
wird, und es an den elektronischen Assistenten für die Sitzung liefern kann.
Wenn diese Nummer auf einen Kontakt in der Kontaktliste des Teilnehmers
abgebildet ist, kann der elektronische Assistent den Eintrag „Wer?" automatisch liefern,
ohne in einen Dialog mit dem Anrufer einzutreten. Auch in diesem
Fall kann es jedoch erwünscht
sein, in einen Dialog mit dem Anrufer einzutreten, um seine Identität zu bestätigen.
-
Nachdem die Anruf-Beantwortungsaufgabe
festgestellt hat, dass der Teilnehmer die Anrufe zu sichten wünscht, versucht
sie, den Anrufer zu identifizieren (Schritt 504). Der elektronische
Assistent reicht ein Objekt (d. h. ein Meme-Objekt) zu dem aktiven
Gadget und instruiert es zu sagen „Bitte sagen Sie Ihren Namen". Er reicht auch
das Kontaktmenü des
Teilnehmers zum Gadget, so dass die Antwort die Anrufers mit den
Kontakten des Teilnehmers abgeglichen werden kann, um festzustellen,
ob der Anrufer ein bekannter Kontakt ist oder nicht. Der elektronische
Assistent bittet das Gadget, den identifizierten Namen zurückzuführen.
-
Das Gadget präsentiert das Meme „Bitte
sagen Sie Ihren Namen" dem
Kanal. Der Kanal präsentiert das
Meme der Sammlung von angeschlossenen Anschlüssen, und der geeignete Anschluss
spielt das Meme ab, indem er die gespeicherte Audio-Version in der System-Datenbank
aufsucht.
-
Beim Empfang der gesprochenen Antwort
des Anrufers versucht der Kanal, die Antwort gegen Antworten abzugleichen,
die für
bekannte Kontakte im Kontaktmenü gespeichert
sind. Das Ergebnis, das zum elektronischen Assistent gereicht wird,
wird entweder die Identität
eines bekannten Kontaktes sein oder ein Hinweis, dass es ein unbekannter
Kontakt ist. Wenn es ein unbekannter Kontakt ist, ruft die Anruf-Beantwortungsaufgabe
eine Nachrichten-Aufnahme-Aufgabe auf, die dem Anrufer die Wahlmöglichkeit
bietet, eine Voice-Mail für
den Teilnehmer zu hinterlassen (Schritt 506). Wenn der
Anrufer ein bekannter Kontakt ist, stellt der elektronische Assistent
fest, ob der bekannte Kontakt tatsächlich der Teilnehmer ist,
für den
der elektronische Assistent arbeitet (Schritt 508). Wenn
der elektronische Assistent feststellt, dass der Anrufer der Teilnehmer
ist, authentisiert der elektronische Assistent den Teilnehmer durch
Abfragen eines Passwortes, bevor er ihm den Zugriff auf die Systemanweisungen
gestattet (Schritt 510). Nachdem die Identität des Teilnehmers überprüft ist,
teilt der elektronische Assistent dem Teilnehmer alle Nachrichten
mit, die gespeichert worden sind, nachdem er sie zuletzt gelesen
hat, und er beginnt mit der Anweisungsaufgabe, die dem Teilnehmer
Zugriff auf den Anweisungssatz für
die Steuerung des elektronischen Assistenten gibt (Schritt 512).
-
Wenn der Anrufer nicht der Teilnehmer
ist, prüft
der elektronische Assistent die Kontaktliste des Teilnehmers, um
die Priorität
des Anrufers festzustellen (Schritt 516). Es sei in Erinnerung
gerufen, dass die Kontaktliste des Teilnehmers die Prioritätenfestlegung
eines jeden Kontaktes des Teilnehmers umfasst (d. h. normal oder
hoch). Die Priorität
zeigt die Wichtigkeit von Anrufen an, die vom Anrufer empfangen
werden.
-
Während
die Priorität
des Anrufers überprüft wird, überprüft der elektronische
Assistent ebenfalls die Datenstruktur für den Kontakt, um festzustellen,
ob irgendwelche Stimmnachrichten für den Anrufer durch den Teilnehmer
hinterlassen wurden (Schritt 518). Wenn Stimmnachrichten
vorliegen, ruft der elektronische Assistent eine Nachrichten-Abliefer-Aufgabe
auf, die den Anrufer fragt, ob er die vom Teilnehmer hinterlassenen Stimmnachrichten
zu hören
wünscht
oder nicht (Schritt 520).
-
Die Nachrichten-Abliefer-Aufgabe
führt die
folgende Ereignisfolge aus. Zunächst
sendet der elektronische Assistent eine Meme zu dem Kanal, die ihn
instruiert, dem Anrufer zu sagen „Ich besitze eine Nachricht, möchten Sie
sie empfangen?".
Er gibt auch einen Hinweis zu der gespeicherten Stimmnachricht in
seiner Nachrichten-Datenbank.
Der Anrufer antwortet durch Niederdrücken der geeigneten Tasten
am Tastentelefon. Wenn der Anrufer „9" für „ja" drückt, sucht
der Audio-Ausgangsanschluss
die geeignete Mediendarstellung der gespeicherten Nachricht auf
und spielt diese ab. Nachdem die Nachricht abgespielt worden ist,
prüft der
elektronische Assistent, ob es irgendwelche anderen, nicht abgespielten
Nachrichten gibt, und wenn es welche gibt, geht er durch die gleiche
Operationsfolge, um dem Anrufer die anderen Nachrichten zu präsentieren.
Es sei vermerkt, dass die Nachrichten-Ablieferungsaufgabe des beschriebenen
Ausführungsbeispiels
keine wie auch immer geartete Überprüfung der
Identität
des Anrufers ausführt.
Es kann jedoch wünschenswert
sein, dies zu tun. Dies kann leicht geschehen durch Modifizieren
der Aufgabe, um eine Überprüfung, wie
z. B. ein Passwort, anzufordern.
-
Nachdem die Nachrichten-Ablieferungsaufgabe
vervollständigt
ist oder wenn es keine Stimmnachrichten für den Anrufer gibt, prüft der elektronische
Assistent die Verfügbarkeit
des Teilnehmers (Schritt 522). Der Teilnehmer hat die Möglichkeit, seine
Verfügbarkeit
durch die Anweisung „Ich
bin hier" festzulegen
(an anderer Stelle beschrieben). Diese Information ist in der Datenbank
als Teil des Benutzerobjektes des Teilnehmers gespeichert.
-
Nach der Identifizierung der Verfügbarkeit
des Teilnehmers stellt der elektronische Assistent fest, ob eine
Verbindung zum Teilnehmer versucht werden soll oder nicht (Schritt 524).
In dem beschriebenen Ausführungsbeispiel
basiert die Feststellung darauf, ob der Anrufer eine ausreichende
Priorität
besitzt, um die Verfügbarkeitskriterien
zu erfüllen,
die durch den Teilnehmer festgelegt wurden. Wenn z. B. der Anrufer
in der Datenbank als Kontakt mit normaler Priorität identifiziert
ist und der Teilnehmer seine Verfügbarkeit mit „Annahme wichtiger
Anrufe" angezeigt
hat, versucht der elektronische Assistent, keine Verbindung zu dem
Teilnehmer für diesen
speziellen Fall herzustellen. Wenn andererseits die Priorität des Kontaktes
mit „hoch" festgelegt ist, führt der
elektronische Assistent die Operationen aus, die erforderlich sind,
um eine Verbindung mit dem Teilnehmer herzustellen.
-
Der Entscheidungsalgorithmus in dem
beschriebenen Ausführungsbeispiel
ist ein sehr einfacher Algorithmus. Alternative Ausführungsbeispiele
können
ausgefeiltere Algorithmen verwenden, um die Anforderung des Anrufers
für eine
Verbindung mit dem Teilnehmer herauszufiltern. Zum Beispiel kann
die Entscheidung anderen Informationen über den Anrufer Rechnung tragen,
wie z. B. seine Jobbeschreibung oder die Identität der Firma, aus der er anruft.
Ebenso ist es eine einfache Angelegenheit, die Priorität des Anrufers
zu verändern, um
die Anzahl der Anrufe wiederzugeben, die der Teilnehmer zu diesem
Anrufer innerhalb einer ausgewählten Zeitspanne
getätigt
hat. Ein Kontakt, den der Teilnehmer häufig anruft, wird eine höhere Priorität besitzen
als ein Kontakt, an den der Teilnehmer kaum einen Anruf richtet.
-
Wenn die Entscheidung getroffen ist,
keine Verbindung mit dem Teilnehmer zu versuchen, ruft der elektronische
Assistent eine Nachrichten-Aufnahme-Aufgabe auf (Schritt 526).
Allgemein berichtet die Nachrichten-Aufnahme-Aufgabe dem Anrufer,
dass der Teilnehmer in diesem Moment nicht verfügbar ist, und fragt den Anrufer,
ob er eine Voice-Mail für
den Teilnehmer hinterlassen will oder nicht. Nachdem die Nachrichten-Aufnahme-Aufgabe
vervollständigt
ist, führt
der elektronische Assistent irgendwelche Operationen aus, die erforderlich
sind, um ihn von dem Kanal abzutrennen und die Sitzung für diesen
Anrufer zu beenden. Dies umfasst z. B. die Freigabe der Ressourcen,
die erforderlich waren, um die Verbindung von einem Anrufer zu unterstützen, durch
Abstreifen der dem aktiven Gadget zugeordneten Fähigkeiten und die Abtrennung
der Audio-Eingangs-, Audi-Ausgangs- und der Erkennungsanschlüsse von
dem Kanal, so dass sie durch andere Sitzungen verwendet werden können.
-
Wenn der Teilnehmer angezeigt hat,
dass er verfügbar
ist, um Anrufe von diesem Kontakt zu empfangen, führt die
Anruf-Beantwortungsaufgabe die Schritte aus, die erforderlich sind,
um die Verbindung herzustellen (Schritt 528). Um den Betrieb
des Paketmechanismus ferner zu veranschaulichen, sei der Austausch von
Paketen, der stattfindet, um die Errichtung der Verbindung zu unterstützen, ebenfalls
beschrieben. Die Anruf-Beantwortungsaufgabe in der Sitzung des Anrufers
sendet ein an den Teilnehmer adressiertes Verbindungspaket. Das
Verbindungspaket fordert, dass eine Verbindung mit dem Teilnehmer
hergestellt wird, und identifiziert die Sitzung des Anrufers. Die
VM handhabt die Abgabe des Paketes. Wenn die VM feststellt, dass momentan
keine Meistersitzung vorliegt, bringt sie eine neue Sitzung hervor,
die sie als Meistersitzung festlegt, und liefert sodann das Verbindungspaket
an die Meistersitzung.
-
Wenn die Meistersitzung einmal vorliegt,
prüft sie
unmittelbar, ob irgendwelche Pakete an sie abgeliefert worden sind.
An dieser Stelle wird sie das Verbindungspaket entdecken, das durch
die Sitzung des Anrufers gesendet wurde. Als Antwort auf das Verbindungspaket
prüft die
Meistersitzung, ob sie das Fokus-Gadget besitzt.
Wenn sie dieses nicht besitzt, ruft sie eine Lokalisier- und Mitteilungsaufgabe
auf, deren Zweck es ist, eine Verbindung mit dem Teilnehmer herzustellen
zu versuchen.
-
Bezugnehmend auf 26 versucht die Lokalisier- und Mitteilungsaufgabe
zunächst
festzustellen, ob der Teilnehmer erreicht werden kann (Schritt 600).
In dem beschriebenen Ausführungsbeispiel
sucht der Assistent das Benutzerobjekt des Teilnehmers nach gespeicherten
Terminplänen
ab. Es gibt zwei Terminplan- Datenstrukturen,
die verwendet werden, um den Terminplan für einen Benutzer aufzulisten:
ein Default-Terminplan und ein Übersteuer-Terminplan.
Der Default-Terminplan
zeigt an, wo der Teilnehmer typischerweise während eines normalen Tages
oder während
der Tage einer normalen Woche angetroffen werden kann. Der Übersteuerungs-Terminplan,
den der Teilnehmer durch die Anweisungen „Ich bin da" oder „Bilde
einen Reiseplan" erzeugen
kann, übersteuert
den Default-Terminplan für
die relevanten Zeitabschnitte. Zum Beispiel kann der Teilnehmer
gewöhnlich
an Montagen in seinem Büro
sein, und sein Default-Terminplan gibt dies wieder. An einem bestimmten
Montag kann er jedoch irgendwohin fahren, um einen Kunden zu besuchen.
Er kann einen Übersteuerungs-Terminplan
erzeugen, um diese Änderung
von der normalen Routine wiederzugeben. Der Übersteuerungs-Zeitplan wird
anzeigen, dass er über
sein mobiles Telefon in der Zeitperiode erreichbar ist, in der er
mit dem Auto fährt,
und dass er danach an dem Geschäftsort
des Kunden während
einer weiteren Zeitperiode erreichbar ist.
-
Der Teilnehmer kann auch seinen Ort
bei einem zweiten Teilnehmer vorgeben, dessen Terminplan und Sonstiges
dem elektronischen Assistenten für
den zweiten Teilnehmer bekannt ist. Wenn dies erfolgt ist, folgt der
Zeitplan des ersten Teilnehmers dem Zeitplan des zweiten Teilnehmers,
bei dem sich der erste Teilnehmer befindet.
-
Die Lokalisier- und Mitteilungsaufgabe
prüft den Übersteuerungs-Terminplan
des Teilnehmers, um festzustellen, ob der Teilnehmer für diese
Zeit eine Übersteuerung
aufweist. Wenn keine Übersteuerung
vorliegt, prüft
der elektronische Assistent den Default-Terminplan. Wenn der Default-Terminplan
einen Ort für
diese Zeit identifiziert, kann der elektronische Assistent die Telefonnummer
für diesen
Ort in der im Benutzerobjekt des Teilnehmers gespeicherten Information
finden. Wenn z. B. der Default-Terminplan anzeigt, dass sich der Teilnehmer
zu dieser Zeit zu Hause befinden sollte, schaut der Assistent im
Benutzerobjekt nach, um die dem Haus zugeordnete Telefonnummer zu
finden, wobei natürlich
angenommen wird, dass der Teilnehmer eine angegeben hat.
-
Sobald die geeignete Dialogeinrichtung
und ihre Nummer (oder Adresse) identifiziert ist, fügt der elektronische
Assistent ein Gadget hinzu, das diese Einrichtung der Sitzung repräsentiert
(Schritt 604). Wenn die Dialogeinrichtung das Heimtelefon
des Teilnehmers ist, ist das der Sitzung hinzugefügte Gadget
ein Telefon-Gadget, das die Telefonnummer für das Heimtelefon des Teilnehmers
enthält.
-
Aufgrund des Empfangs eines Gadgets
von der Meistersitzung teilt die VM diesem Gadget einen Kanal zu.
Da das Gadget ein Telefon ist, veranlasst die VM die geeignete Schnittstellenkarte
zur Zuteilung eines Telefonleitungs-Kanals, der an eine T1-Leitung
angeschlossen ist. Die VM reicht auch die Telefonnummer zu der Schnittstellenkarte
weiter, und die Schnittstellenkarte wählt diese Nummer. Wenn die
angerufene Nummer belegt ist, berichtet der Kanal zurück zur Meistersitzung,
dass der Verbindungsversuch fehlgeschlagen ist. Wenn das Telefon
zu läuten
beginnt, führt
der Kanal ein aktives Fokus-Gadget zur Meistersitzung zurück. Das aktive
Gadget repräsentiert
eine tatsächliche
Verbindung mit dem Heimtelefon des Teilnehmers.
-
Beim Empfang des aktiven Gadgets
ordnet der elektronische Assistent dem aktiven Gadget unmittelbar
Fähigkeiten
zu, um es in die Lage zu versetzen, durch das Gadget einen Dialog
zu führen,
und wartet darauf, dass irgendjemand das Telefon abnimmt (Schritt 606).
Wenn eine Partei antwortet, stellt der elektronische Assistent fest,
ob der Benutzer verfügbar
ist (Schritt 608). Er tut dies durch einen Dialog, während dessen
die antwortende Partei anzeigen kann, ob der Teilnehmer da ist,
um den Anruf entgegen zu nehmen. In dem beschriebenen Ausführungsbeispiel
veranlasst der Audio-Ausgangsanschluss die Wiedergabe der zuvor
beschriebenen gespeicherten Nachricht:
Hallo, ich versuche,
Jim Smith zu erreichen. Wenn er verfügbar ist, drücken Sie
die Taste 9. Wenn er nicht verfügbar ist, drücken Sie
die Taste 6 oder legen Sie auf.
-
Es kann wünschenswert sein, den Dialog
anzupassen, um dem Ort des gerade angerufenen Telefons Rechnung
zu tragen. Zum Beispiel mag es erwünscht sein, Telefone als in
freundschaftlichem Umfeld, fraglichem Umfeld oder feindlichem Umfeld
liegend festzulegen. Ein Telefon, das sich in einem freundschaftlichen Gebiet
befindet, kann irgendein Telefon sein, bei dem es wahrscheinlich
ist, dass die antwortende Person mit dem Zusammenwirken mit dem
elektronischen Assistenten vertraut ist. Ein Telefon in einem fraglichen
Gebiet kann irgendein Telefon sein, für das eine 50/50-Wahrscheinlichkeit
besteht, dass die antwortende Partei mit der Zusammenarbeit mit
dem elektronischen Assistenten keine Erfahrung hat. Telefone in
feindlichem Gebiet können
irgendein Telefon sein, für
das vernünftig
hohe Wahrscheinlichkeit besteht, dass die antwortende Partei mit
der Zusammenarbeit mit dem elektronischen Assistenten nicht vertraut
ist. Durch Identifizieren der Verbindungseinrichtungen in dieser
Weise kann ein geeigneter Dialog für das Zusammenarbeiten mit
der antwortenden Partei ausgewählt
werden. Für
den unerfahrenen Benutzer kann der elektronischen Assistent einen ausführlichen
Dialog verwenden, der erläutert,
wie mit ihm umfassender zu arbeiten ist. Für den erfahrenen Benutzer kann
stattdessen ein grober Dialog verwendet werden, der annimmt, dass
die Person weiß,
wie zu antworten ist, ohne dass es ihr mitgeteilt wird.
-
Wenn die antwortende Partei anzeigt,
dass der Teilnehmer nicht verfügbar
ist, wird dies der Meistersitzung berichtet, die sodann ein Antwortpaket
zurück
zur Sitzung des Anrufers sendet, das anzeigt, dass der Verbindungsversuch
fehlgeschlagen ist (Schritt 610). Die Meistersitzung geht
sodann durch die Schrittfolge, die erforderlich ist, um die Sitzung
zu beenden. Dies umfasst das Abstreifen der Fähigkeiten von dem aktiven Gadget.
-
Wenn die antwortende Partei anzeigt,
dass der Teilnehmer verfügbar
ist, dann kündigt
der elektronische Assistent dem Teilnehmer die Identität des Anrufers
an (Schritt 612):
Es liegt ein Anruf von Bill Bishop
vor. Möchten
Sie diesen Anruf annehmen?
Zeigen Sie „ja" durch Drücken der Taste 9 an,
zeigen Sie „nein" durch Drücken der
Taste 6 an.
-
Er fragt sodann den Teilnehmer, ob
er den Anruf anzunehmen wünscht
(Schritt 614).
-
Wenn der Teilnehmer den Anruf ablehnt,
sendet die Lokalisier- und Mitteilungsaufgabe ein Antwortpaket für eine fehlgeschlagene
Verbindung zur Sitzung des Anrufers zurück (Schritt 616).
Als Antwort auf die fehlgeschlagene Erwiderung informiert die Sitzung
des Anrufers den Anrufer, dass der Teilnehmer nicht gefunden werden
konnte, und bietet dem Anrufer die Wahlmöglichkeit an, eine aufgezeichnete
gesprochene Nachricht für
den Teilnehmer zu hinterlassen. Wenn der Anrufer die Wahlmöglichkeit
der Nachricht akzeptiert, zeichnet der elektronische Assistent die
gesprochene Nachricht des Anrufers auf und speichert sie für den Teilnehmer, um
sie zu einem späteren
Zeitpunkt zurückzuspielen.
-
Während
die Verbindung zu dem Teilnehmer noch vorliegt, fragt die Lokalisier-
und Mitteilungsaufgabe den Teilnehmer, ob es irgendetwas gibt, was
sie für
den Teilnehmer zu diesem Zeitpunkt tun kann (Schritt 618). Wenn
der Teilnehmer „nein" sagt oder die Taste 6 drückt, sagt
die Lokalisier- und Mitteilungsaufgabe „Auf Wiedersehen" zum Teilnehmer,
sendet eine Aufleganweisung an den Kanal und beendet sodann den
Vorgang. Wenn andererseits der Teilnehmer anzeigt, dass er Zugriff
zu den Anweisungen seines elektronischen Assistenten wünscht, muss
er zunächst
eine zusätzliche
Authentisierung vornehmen, und dann startet der elektronische Assistent
eine Anweisungsaufgabe, die den Teilnehmer in die Lage versetzt,
auf jene Fähigkeiten
entweder über
die Stimmen- oder DTMF-Anweisungen Zugriff zu nehmen (Schritt 620).
Die im Anhang A identifizierten Anweisungen sind sodann für den Teilnehmer
verfügbar.
-
Wenn der Teilnehmer den Anruf annimmt,
sendet die Lokalisier- und Mitteilungsaufgabe ein Verbindungs-Antwortpaket
zu der Sitzung des Anrufers. Bezugnehmend auf 24B entfernt die Sitzung des Anrufers
aufgrund des Empfangs des Verbindungs-Antwortpaketes von ihrem aktiven
Gadget einige Fähigkeiten, die
nicht mehr erforderlich sind (z. B. interaktive Eingangs-, interaktive
Ausgangs- und Erkennungsfähigkeiten) (Schritt 536),
und sendet das Gadget unter Verwendung des Paketmechanismus zum
Teilnehmer (Schritt 540). Beim Empfang des aktiven Gadgets
von der Sitzung des Anrufers fügt
der elektronische Assistent für
die Meistersitzung dieses aktive Gadget zu seiner Sitzung hinzu
und verbindet sowohl das aktive Gadget als auch das Fokus-Gadget,
um hierdurch den Teilnehmer und den Anrufer in die Lage zu versetzen,
miteinander einen Dialog zu führen
(Schritt 622 in 26).
Die Schnittstellenkarten führen
die Umschaltfunktion aus, die die zwei Gadgets miteinander verbindet,
indem jedem Gadget gestattet wird, auf den Ausgang des anderen Kanals
zu hören
(d. h., indem jedem Kanal gestattet wird, Zugriff zu dem geeigneten
Zeitschlitz auf der MVIP-Busleitung zu bekommen, die das Signal
der anderen Partei führt).
-
Wenn die Verbindung zwischen dem
Anrufer und dem Teilnehmer hergestellt ist, schaltet der elektronische
Assistent in einen Hintergrundmodus, in dem er den Ausgang des Teilnehmers
auf eine Anweisung (d. h. „Wildfire") überwacht,
die ihn zurück
in den Vordergrundmodus bringt (Schritt 624). Während sich
der elektronische Assistent im Hintergrundmodus befindet, antwortet
er nur auf die einzige Anweisung, die ihn in den Vordergrundmodus
zurückbringt,
und er ignoriert alle Anweisungen in seinem Anweisungssatz.
-
Es sei in Erinnerung gerufen, dass
in der obigen Erläuterung
angenommen wurde, dass keine Meistersitzung ablief, wenn die VM
das Anforderungs-Verbindungspaket von der Sitzung des Anrufers abzuliefern wünschte.
Wenn jedoch eine Meistersitzung abläuft, liefert die VM das Paket
zu dieser.
-
Wenn eine bereits vorliegende Meistersitzung
eine Anforderung empfängt,
das Paket von der Sitzung eines anderen Anrufers zu verbinden, wird
es in einer Warteschlange gespeichert. Die Meistersitzung überprüft wiederholt
diese Warteschlange auf empfangene Pakete. Wenn sie das Vorliegen
eines neuen Paketes feststellt, wirkt sie unmittelbar auf dieses
ein. Im Falle der Anforderung, ein Paket zu verbinden, initiiert
die Meistersitzung eine Mitteilungsaufgabe (s. 27). Die Mitteilungsaufgabe prüft, ob der
Teilnehmer mit der Meistersitzung über einen Telefonkanal zusammenarbeitet
(Schritt 630). Wenn der Teilnehmer mit der Sitzung über einen
anderen Dialogkanal als ein Telefonkanal zusammenarbeitet, sendet
er einen Vermerk zum Teilnehmer, der den Anrufer identifiziert,
und teilt dem Teilnehmer mit, dass er gerade einen Anruf von dieser
Person empfangen hat (Schritt 632). Die Meistersitzung
sendet sodann eine Antwort auf die Anforderung, das Paket mit der
Anrufersitzung zurückzuverbinden,
was anzeigt, dass der Verbindungsversuch fehlgeschlagen ist (Schritt 634).
-
Wenn der Anrufer mit der Meistersitzung über einen
Telefonkanal einen Dialog führt,
stellt die Mitteilungsaufgabe zunächst fest, ob der Teilnehmer
angezeigt, dass er bereit ist, eine Unterbrechung seines Anrufes
zu akzeptieren (Schritt 636). Wenn z. B. der mit dem Anrufer
verbundene Teilnehmer eine Anweisung „Halte alle Anrufe" benutzt, so zeigt
er seine Präferenz
an, nicht unterbrochen zu werden. Die Anweisung „Halte alle Anrufe" stellt temporär den Status
des Teilnehmers als nicht verfügbar
ein, während
ein Anruf durch die Meistersitzung gehandhabt wird.
-
Wenn der Teilnehmer angezeigt hat,
dass er nicht wünscht,
unterbrochen zu werden, sendet die Mitteilungsaufgabe eine nicht-interaktive
Mitteilung über
den Versuch des Anrufers, ihn zu erreichen, zum Teilnehmer und berichtet
sodann der Sitzung des Anrufers, dass der Verbindungsversuch fehlgeschlagen
ist (Schritt 634).
-
Wenn der Teilnehmer seinen Status
so festgelegt hat, dass Unterbrechungen nicht blockiert werden, teilt
die Mitteilungsaufgabe dem Teilnehmer mit, dass der Anrufer wartet
(Schritt 638). Das System besitzt eine Form der Anruferwartung,
bei dem es zunächst
einen kurzen Ton spielt, der sowohl durch den Teilnehmer als auch
durch die Partei, zu der er spricht, gehört werden kann, und es gibt
sodann unter Verwendung der gesprochenen Selbstidentifizierung des
Anrufers den Namen des Anrufers wieder. Die Unterbrechung wird gehandhabt,
um den Anrufer, mit dem der Teilnehmer sprechen möchte, in
diesem Moment daran zu hindern, die Nachricht zu hören (allgemein
als Smart-Call-Warte-Merkmal bezeichnet). Bei einigen Telefonen
geschieht dies dadurch, dass der Anrufer für einen kurzen Zeitraum in
die Wartestellung gebracht wird, während die Ankündigung
erfolgt. Bei anderen Telefonen ist es möglich, die Nachricht zur Hörmuschel
des Teilnehmer-Telefons zu senden, ohne dass der Anrufer es hört.
-
Der elektronische Assistent gibt
sodann dem Teilnehmer die Wahlmöglichkeit,
den Anruf zurückzuweisen
oder ihn anzunehmen. Momentan gültige
Anweisungen sind „Nimm
eine Nachricht an" und „Ich nehme
ihn an". Wenn der
Teilnehmer den Anruf zurückweist
oder nicht innerhalb einer im Voraus festgelegten Zeitperiode antwortet,
sendet der elektronische Assistent eine „Fehlgeschlagen"-Antwort an die Sitzung
des Anrufers (Schritt 642). Aufgrund der „Fehlgeschlagen"-Antwort kann die
Sitzung des Anrufers einfach den Anrufer informieren, dass der Teilnehmer
nicht gefunden werden kann, oder sie kann anbieten, eine Nachricht
von dem Anrufer anzunehmen. Wenn der Anrufer die Nachrichten-Option
akzeptiert, zeichnet der elektronische Assistent die gesprochene
Nachricht des Anrufers auf und speichert sie für den Teilnehmer, um sie zu
einem späteren
Zeitpunkt wiederzugeben.
-
Wenn der Teilnehmer den neuen Anruf
annimmt, mischt der elektronische Assistent das Gadget des Anrufers
in die Meistersitzung (Schritt 644) und lässt den
ersten Anrufer warten.
-
Während
der Teilnehmer mit dem neuen Anrufer verbunden ist, handhabt, wenn
noch ein andere Anruf kommt, der elektronische Assistent den neuen
Anruf in der gleichen Weise. Somit ist es für mehr als einen Anrufer möglich, zur
gleichen Zeit zu warten.
-
Um zu dem ersten Anrufer zurückzuschalten,
gibt der Teilnehmer eine Anweisung „Drücke den Warteknopf" aus. Wenn nur ein
Anruf wartet, lässt
der elektronische Assistent den zweiten Anrufer warten und schaltet
zum ersten Anrufer. Durch Verwendung des „Drücke den Warteknopf" kann somit der Teilnehmer
zwischen zwei Parteien hin- und herschalten. Wenn jedoch mehr als
ein Anruf wartet, antwortet der elektronische Assistent auf „Drücke den
Warteknopf", indem
er den Anrufer, mit dem der Teilnehmer momentan spricht, in die
Wartestellung bringt und sagt „Soll
ich Sie mit (Name des Anrufers) verbinden?" Wenn der Teilnehmer mit „ja" antwortet, verbindet
ihn der elektronische Assistent mit dem identifizierten Anrufer.
Wenn der Teilnehmer mit „nein" antwortet, sagt
der elektronische Assistent erneut „Soll ich Sie mit (Name des
nächsten
Anrufers) verbinden?" Auf
diese Weise schaltet der elektronische Assistent durch die Gruppe
von Parteien, die in der Wartestellung sind, bis der Teilnehmer
anzeigt, dass er eine Verbindung mit einer der Parteien zu errichten wünscht.
-
Erstelle einen
Kontakt
-
Unter den anderen, für den Teilnehmer
verfügbaren
Anweisungen gibt es bestimmte Nicht-Nachrichtenobjektbildungs-Anweisungen.
Diese werden benutzt, um Kontakte zu bilden, die zu der Kontaktliste
der Teilnehmer hinzugefügt
werden, und um einen Anruf und aufgezeichnete Erinnerungen zu bilden,
die beide durch den Cron-Agenten
zur Abgabe an den Teilnehmer zur geeigneten Zeit gehalten werden. Über eine
Telefonunterhaltung ruft der Teilnehmer diese Anweisungen auf, indem
er sagt: „Erstelle
einen Kontakt",
Erinnere mich anzurufen" und „Erinnere
mich". Ein beispielhafter
Dialog, der sich durch Aufruf der Anweisung „Erstelle einen Kontakt" ergibt, ist in 28 gezeigt. Die Mechanismen
zur Verwirklichung dieses Dialogs (und andere Dialoge, die unten
beschrieben werden) über
den Kanal sind die Gleichen wie die zuvor Beschriebenen und werden
in den folgenden Erläuterungen
nicht wiederholt.
-
Aufgrund des Empfangs einer Anweisung „Erstelle
einen Kontakt" fragt
der elektronische Assistent den Teilnehmer „Welche Art – Person,
Ort oder Gruppe?".
Der Teilnehmer antwortet, indem er eine dieser Arten identifiziert.
In dem dargestellten Dialog von 28 antwortet
der Teilnehmer, indem er sagt: „Person". Der elektronische Assistent fragt
dann nach dem Namen der Person. Da der elektronische Assistent für den Namen
des Kontaktes die Vokalisierung des Teilnehmers verwenden wird,
bittet er den Teilnehmer, den Namen des Kontaktes ein zweites Mal
zu wiederholen, um die Qualität
der gespeicherten Vokalisierung zu verbessern.
-
Nachdem der Teilnehmer den Namen
des Kontaktes identifiziert hat, fordert der elektronische Assistent
vom Teilnehmer, eine Telefonnummer hinzuzufügen, indem er fragt: „Welche
Telefonnummer?".
Als Antwort kann der Teilnehmer sein Heim, die Arbeit, das Mobiltelefon
oder etwas anderes identifizieren. In dem veranschaulichten Beispiel
antwortet der Teilnehmer, indem er „Arbeit" sagt. Der elektronische Assistent fragt
sodann nach der Telefonnummer, und der Teilnehmer gibt die Nummer,
gefolgt von der Taste # ein. Der elektronische Assistent bestätigt den
Empfang der Nummer, indem er sagt: „Habe es. Was nun?"
-
Wenn der Teilnehmer zusätzliche
Informationen für
diesen Kontakt einzugeben wünscht,
verwendet er die Anweisung „Ergänze es". Der elektronische
Assistent antwortet mit der Frage „Was?". Hierzu antwortet der Teilnehmer durch
Identifizierung des speziellen Informationsgegenstandes, den er
hinzufügen
oder ergänzen möchte. Wenn
der Teilnehmer sagt „Priorität", fragt der elektronische
Assistent „Normal
oder hoch?". Nachdem der
Teilnehmer eine der verfügbaren
Prioritäten
ausgewählt
hat, zeigt der elektronische Assistent an, dass er bereit ist für eine andere
Anweisung, indem er sagt: „Habe
es". Wenn der Teilnehmer
weitere Informationen für diesen
Kontakt hinzufügen
und modifizieren möchte,
nutzt er erneut die Anweisung „Ergänze es", gefolgt durch einen
Hinweis, welche Information hinzuzufügen oder zu ändern ist.
In dem dargestellten Beispiel ist das nächste für die Ergänzung durch den Teilnehmer
ausgewählte
Element die Buchstabierung des Namens des Kontaktes. In Beantwortung
teilt der elektronische Assistent dem Teilnehmer mit, dass er bereit
ist, die neue Information anzunehmen, indem er sagt: „Beginne
nun mit dem Buchstabieren".
-
Nachdem die Buchstabierung eingegeben
worden ist, zeigt der elektronische Assistent seine Bereitschaft
für die
nächste
Anweisung des Teilnehmers an. Wenn keine Anweisung innerhalb einer
vorbestimmten Zeitperiode folgt, fordert der elektronische Assistent
den Teilnehmer zu einer Anweisung auf. Wenn der Teilnehmer anzeigt,
dass er momentan keine weiteren Ergänzungen oder Veränderungen
hat, zeigt der elektronische Assistent an, dass das „Erstellen
eines Kontaktes" vorüber ist,
indem er sagt: „Erledigt".
-
Der Teilnehmer kann ebenfalls neue
Kontakte bilden, indem er diese aus dem Telefonbuch kopiert. Telefonbucheinträge besitzen
jedoch keine ihnen zugeordnete Stimmenidentifikationen. Wenn daher
der Teilnehmer einen Eintrag aus dem Telefonbuch kopiert, muss er
eine Stimmenidentifizierung hinzufügen, um ihn zum Teil seiner
Kontaktliste zu machen.
-
Schließlich kann ein Kontakt als
Folge des Empfangs einer Nachricht mit eingeschlossenem Kontakt gebildet
werden. Beim Betrachten einer Nachricht, die einen Kontakt enthält, fragt
der Assistent den Teilnehmer, ob er den Kontakt aus der Nachricht
in die Kontaktliste übertragen
möchte.
Wenn der Teilnehmer antwortet, indem er „ja" sagt, dann wird eine Prozedur ausgeführt, die ähnlich der
ist, bei der Telefonbuchlisten gesichert werden.
-
Es sei vermerkt, dass das System
in der Lage ist, Telefonnummern unter anderen Umständen aufzunehmen
und diese aufgenommene Information später zu benutzen, um den Teilnehmer
zu unterstützen.
Wenn z. B. der Assistent auf einen Anruf antwortet und dem Anrufer
die Wahlmöglichkeit
anbietet, eine Nachricht für den
Teilnehmer zu hinterlassen, so bittet er den Anrufer zunächst, seine
Telefonnummer einzugeben. Nachdem die Telefonnummer eingegeben wurde,
zeichnet der elektronische Assistent die gesprochene Nachricht des
Anrufers auf. Ebenso wird, wenn der Teilnehmer eine andere Nummer
durch den elektronischen Assistenten wählt, diese gewählte Nummer
im Gedächtnis
behalten. Diese in Erinnerung behaltene Information kann später bei
der Antwort auf eine Anweisung „Rufe sie an" verwendet werden
oder um einen Kontakt für
die Person oder den Ort zu bilden, die oder der durch die erinnerte
Telefonnummer repräsentiert
wird.
-
Erinnere mich
-
Wie zuvor angezeigt, kann ein Teilnehmer
die Anweisungen „Erinnere
mich" und „Erinnere
mich anzurufen" verwenden,
um Erinnerungen zu bilden. Die diesen Aufgaben zugeordneten Dialoge
sind in den 29 und 30 entsprechend gezeigt.
-
Um eine Erinnerung zu bilden, gibt
der Teilnehmer die Anweisung „Erinnere
mich" aus. Dies
veranlasst den Assistenten, die Erinnerungsaufgabe mit einer Eigenschaft
aufzurufen, um die Bildung einer aufgezeichneten Erinnerung anzuzeigen.
An dieser Stelle fordert der Assistent die Information an, woran
der Benutzer erinnert werden möchte.
An dieser Stelle beginnt er, was immer der Teilnehmer ins Telefon
sagt, als Nachricht zu speichern, damit es abgespielt werden kann,
wenn die Erinnerung fällig
wird. Der Teilnehmer zeigt das Ende der Nachricht durch Drücken der
Taste # an, und der elektronische Assistent speichert die aufgezeichnete Nachricht
in seiner Datenbank.
-
Nachdem die Aufzeichnung vollständig ist,
beteiligt sich der elektronische Assistent am weiteren Dialog mit
dem Teilnehmer, um einen Termin zu erstellen, an dem die Erinnerung
abzuliefern ist. Der elektronische Assistent fragt: „Wann?". Der Teilnehmer
antwortet unter Verwendung von einer von verschiedenen Konventionen,
die im System für
das Festlegen eines Termins verfügbar
sind. Die Konventionen sind unter der Tab. III gezeigt. In dem beschriebenen
Beispiel antwortet der Moderator, indem er sagt: „heute". Der elektronische
Assistent fragt dann den Teilnehmer nach einer Zeit. Unter Verwendung
der Tastensignale DTMF gibt der Teilnehmer eine bestimmte Zeit ein
(z. B. 530 für
5 Uhr 30). Der elektronische Assistent antwortet durch Bestätigen der
Zeit, die der Teilnehmer angegeben hat und bittet um eine Bestätigung durch
den Teilnehmer. Wenn der Teilnehmer die Zeit bestätigt, zeigt
der elektronische Assistent an, dass der Dialog erfolgreich beendet wurde, indem
er sagt: „Habe
es, ich werde meinen Wecker einstellen." Wenn der Teilnehmer die Zeit nicht
bestätigt (entweder
weil der elektronische Assistent einen Erkennungsfehler gemacht
hat oder weil er es sich anders überlegt
hat) wiederholt der elektronische Assistent die oben beschriebene
Operationsfolge, um eine neue Zeit zu erhalten.
-
Wenn der Teilnehmer die Anweisung „Erinnere
mich anzurufen" ausgibt
(s. 30), so fragt die „Bilde-Erinnerung"-Aufgabe den Teilnehmer „Wen anrufen?". Die Antwort des
Teilnehmers „John
Smith" wird durch
die Stimm-Erkennungsfähigkeiten
der ASR-Karte erkannt und mit den Sprachgewohnheiten abgeglichen,
die mit der Kontaktliste des Teilnehmers gespeichert sind und die
Kontakte des Teilnehmers identifizieren. Wenn eine Übereinstimmung
gefunden wird (d. h. wenn ein Kontakt aus der Kontaktliste des Teilnehmers identifiziert
wird), wird ein Verweis auf diesen Kontakt als Teil dieser Anruferinnerung
gesichert.
-
Der elektronische Assistent beteiligt
sich sodann bei dem zuvor beschriebenen Dialog mit dem Teilnehmer,
um eine Abgabezeit für
die Erinnerung zu erhalten. Nachdem die Abgabezeit eingegeben worden
ist, fragt der elektronische Assistent den Teilnehmer: „Sollte
ich das Thema für
den Anruf kennen?".
Wenn der Teilnehmer das bestätigt,
sagt der elektronische Assistent „Aufzeichnung ...", um dem Teilnehmer
mitzuteilen, dass er mit der Aufzeichnung beginnen kann. Wie zuvor,
beendet der Teilnehmer die Aufzeichnung mit der Taste #. Als Antwort
bestätigt
der elektronische Assistent, dass die Anweisung empfangen wurde,
indem er sagt: „Habe
es. Ich werde meinen Wecker stellen."
-
Der elektronische Assistent sendet
die vollständige
Erinnerung über
den Paketmechanismus an den Cron-Agenten. Zunächst packt er die Erinnerung
in ein Paket, das an den Teilnehmer adressiert ist und seine gewünschte Ablieferzeit
enthält.
Er ordnet dann dieses Paket in einem zweiten Paket an, das durch
den Cron-Agenten adressiert wird. Die VM liefert das äußere Paket
an den Cron-Agenten.
Beim Empfang öffnet der
Cron-Agent das Paket und zieht das darin befindliche Paket heraus;
er prüft
die Abgabezeit für
dieses Paket und legt es in einer zeitlich geordneten Warteschlange
ab. Der Cron-Agent verfolgt die Abgabezeit des äußeren Paketes.
-
Behandlung der Erinnerungsaufgabe:
-
Zur Abgabezeit wacht der Cron-Agent
auf und sendet das Erinnerungspaket an die angezeigte Adresse. Wie
zuvor beschrieben, handhabt die VM die Abgabe des Erinnerungspaketes.
Wenn keine Meistersitzung abläuft,
startet die VM eine Sitzung und liefert das Paket an diese neue
Sitzung. Wenn eine Meistersitzung abläuft, liefert die VM das Paket
an die Meistersitzung ab.
-
Wenn, unter Bezugnahme auf 31, die Sitzung, die das
Paket empfängt,
feststellt, dass sie ein Erinnerungspaket erhalten hat, startet
sie eine Erinnerungsbehandlungs-Aufgabe.
Die Erinnerungsbehandlungs-Aufgabe prüft, ob die laufende Sitzung
eine Meistersitzung ist (d. h. ob die Sitzung das Fokus-Gadget besitzt)
(Schritt 700). Wenn die Sitzung mit dem Teilnehmer einen
Dialog führt,
teilt der elektronische Assistent dem Teilnehmer unter Verwendung
des vorliegenden Fokus-Gadgets die Erinnerung mit (Schritt 702).
Das Verfahren, das für
die Mitteilung an den Teilnehmer verwendet wird, hängt von
dem Kanal ab, über
den der Teilnehmer mit der Sitzung verbunden ist. Wenn der Teilnehmer über einen
Telefonkanal verbunden ist, unterbricht der elektronische Assistent
kurz seinen Anruf und berichtet ihm, dass eine Erinnerung fällig geworden
ist. Nach der Mitteilung der Erinnerung an den Teilnehmer legt der
elektronische Assistent die Erinnerung in einer aktiven Erinnerungsliste
in der Schachtel ab, wo sie der Teilnehmer während der laufenden oder irgendwelchen nachfolgenden
Sitzungen betrachten kann (Schritt 703). Der Benutzer kann
sodann eine Anweisung „Finde
aktive Erinnerungen" aufrufen,
um die jüngst
empfangene Erinnerung zu behandeln.
-
Wenn der Teilnehmer nicht mit der
Sitzung verbunden ist, initiiert die Erinnerungsbehandlungs-Aufgabe
eine Lokalisier- und Mitteilungsaufgabe. Die Lokalisier- und Mitteilungsaufgabe
arbeitet in der zuvor beschriebenen Weise, außer dass anstelle der Mitteilung
an den Teilnehmer, dass ein Anrufer ihn zu erreichen versucht, sie
dem Teilnehmer die Erinnerung mitteilt. Wenn die Lokalisier- und
Mitteilungsaufgabe nicht in der Lage ist, eine Verbindung mit dem
Teilnehmer herzustellen, sendet sie eine Antwort über eine
fehlgeschlagene Verbindung an die Erinnerungshandhabungs-Aufgabe.
In Beantwortung dieser prüft
die Erinnerungshandhabungs-Aufgabe, ob der Teilnehmer durch eine
nicht-aktive Einrichtung erreicht werden kann, z. B. durch Überprüfung eines
Pagers, der dem Teilnehmer zugeordnet ist. Wenn keine alternative
Einrichtung für
die Mitteilung an den Teilnehmer vorliegt, legt der elektronische
Assistent die Erinnerung auf dem Stapel nicht geplanter Erinnerungen
ab (Schritt 710). Wenn eine alternative Einrichtung zur
Mitteilung an den Teilnehmer vorliegt, sendet der elektronische
Assistent eine Mitteilung an das alternative Gadget (Schritt 708),
bevor er sie auf dem Stapel für
die nicht geplante Erinnerung ablegt.
-
Wenn die Lokalisier- und Mitteilungsaufgabe
eine Verbindung mit dem Teilnehmer errichtet, wird die Erinnerung
zum Teilnehmer zurückgespielt
(Schritt 720). Danach fragt der elektronische Assistent
den Teilnehmer, ob er die Erinnerung neu planen möchte (Schritt 722).
Wenn er sie neu planen möchte,
wird eine Neuplanungsaufgabe ausgeführt, die den Teilnehmer in
die Lage versetzt, die Abgabezeit für die Erinnerung zu verändern (Schritt 724).
Die modifiziert Erinnerung wird sodann für die Abgabe zu der neu geplanten
Zeit zurück zum
Cron-Agenten gesendet. Die Erinnerungshandhabungs-Aufgabe startet
sodann den Anweisungsaufgaben-Schleifenablauf, der dem Teilnehmer
gestattet, auf den vollen Anweisungssatz zuzugreifen (Schritt 726). Außerdem kann
ein Teilnehmer zu jeder Zeit während
einer Sitzung anhängige
Erinnerungen unter Verwendung der „Ergänze es"-Aufgabe auffinden und neu planen (s.
Anhang A).
-
Wenn der Teilnehmer entscheidet,
die Erinnerung nicht neu zu planen, wird sie auf einem Stapel für nicht
geplante Erinnerungen abgelegt (Schritt 725), und die Erinnerungshandhabungs-Aufgabe
startet die Anweisungsaufgaben-Schleife (Schritt 724).
Wenn die Anruferinnerung einen Kontakt identifiziert, kann an dieser Stelle
der Teilnehmer die Anweisung „Rufe
sie an" benutzen.
Da die Anruferinnerung einen Verweis auf den Kontakt in der Kontaktliste
des Teilnehmers umfasst, interpretiert der elektronische Assistent
die Anweisung „Rufe
sie an", als ob
sie äquivalent
zu einer Anweisung „Anrufen" wäre, bei
der der Kontakt der einzige in der Hand ist. Der elektronische Assistent
verwendet das Gadget, das in dem Objekt des Kontaktes identifiziert
ist, um den Anruf zu tätigen.
-
Wenn die Lokalisier- und Mitteilungsaufgabe
das Gadget des Teilnehmers erreicht, aber die Verbindung zum Teilnehmer
nicht angenommen wird, legt der elektronische Assistent die Erinnerung
in dem Stapel der aktiven Erinnerungen ab (Schritt 703).
-
Andere Aufgaben, die durch das System
umgesetzt werden, werden am besten durch Beispiele der Anweisungen
und Dialoge beschrieben, die das System unterstützt, wenn es mit dem Teilnehmer
zusammenwirkt. Eine Zusammenfassung der Anweisungen wird im Anhang
A am Ende dieser Beschreibung gegeben.
-
Finde Anweisung:
-
Bezugnehmend auf 32 kann der Teilnehmer auf verschiedene
Informationsgegenstände,
die für ihn
durch die Verwendung der Anweisung „Finden" gespeichert sind, zugreifen und sie
wieder aufsuchen und betrachten. Wenn der Teilnehmer „Finden" sagt, während der
elektronische Assistent die Anweisungsaufgaben-Schleife bearbeitet,
erwidert der elektronische Assistent durch die Frage „Was finden?". An dieser Stelle kann
der Teilnehmer einen von sieben unterschiedlichen Gegenständen identifizieren,
nämlich
einen Kontakt, alle Kontakte, Telefonbuchlisten, Nachrichten, neue
Nachrichten, Nachrichten von, gesicherte Nachrichten, Erinnerungen
und Abfall. Die Operation der Anweisung „Finden" wird veranschaulicht durch die Verwendung
der Kontakte als den Gegenstand, mit dem der Teilnehmer etwas tun
möchte.
-
Wenn der Teilnehmer gefragt wird,
was erfinden möchte,
antwortet er durch die Feststellung „Alle Kontakte". Der elektronische
Assistent greift sodann auf die Kontaktliste zu und berichtet dem
Teilnehmer, wie viele Kontakte auf der Liste sind. Dann wartet der
elektronische Assistent auf eine Anweisung vom Teilnehmer. Der Teilnehmer
kann die Kontaktliste nach einem gegebenen Namen absuchen, indem
er die Anweisung ausgibt „Finde
Kontakt". Daraufhin
fragt der elektronische Assistent „Kontaktname?". Der Teilnehmer
antwortet mit einem Namen, z. B. John Smith. Der elektronische Assistent
zeigt durch die Erwiderung „Kontaktname:
John Smith" an,
dass er das Benutzerobjekt für
diesen Kontakt in seiner Hand hat. Der Teilnehmer kann dann den elektronischen
Assistenten instruieren: (1) Beschreibe es durch Ausgabe der Beschreibungsanweisung;
(2) ergänze
es durch Ausgabe der Ergänzungsanweisung;
(3) streiche es durch Ausgabe der „Wirf es weg"-Anweisung oder (4)
rufe sie an durch Verwendung der Anweisung „Rufe sie an".
-
Wenn der Teilnehmer die Beschreibungsanweisung
ausgibt, antwortet der elektronische Assistent durch Bericht der
für diesen
Kontakt gespeicherten Information an den Teilnehmer.
-
Wenn der Teilnehmer die Ergänzungsanweisung
ausgibt, initiiert der elektronische Assistent einen Dialog ähnlich zu
dem zuvor beschriebenen mit der Bildungsanweisung, die dem Teilnehmer
gestattet, die für diesen
Kontakt gespeicherte Information zu modifizieren oder zu ergänzen.
-
Der Teilnehmer kann den elektronischen
Assistenten instruieren, eine Nummer zu wählen, indem er sagt „Anrufen", was den elektronischen
Assistenten veranlasst, die Anrufaufgabe aufzurufen. Die Anrufaufgabe
bittet den Teilnehmer, die Nummer vorzugeben. Diese kann entweder
als Bezugnahme auf einen Kontakt vorgegeben werden durch Eingabe
einer bestimmten Nummer oder durch die Mitteilung „Diese
eine", was sich auf
eine Kontaktnachricht oder eine Anruferinnerung bezieht, auf die
verwiesen wird. Sodann wählt
er die Nummer. Sobald das Läuten
beginnt, errichtet der elektronische Assistent eine Verbindung zwischen
der Leitung des Teilnehmers und der abgehenden Anrufleitung, so
dass der Teilnehmer den Anruf vervollständigen kann. Wenn diese Verbindung
erfolgt, schaltet der elektronische Assistent automatisch in seinen
Hintergrundmodus, in dem er nur auf eine bestimmte Anweisung antwortet
(z. B. „Wildfire"), die ihn veranlasst,
zurückzuschalten in
den Vordergrundmodus. In seinem Hintergrundmodus sperrt der elektronische
Assistent seinen vollen Anweisungssatz, so dass die Aussprache der
Anweisungsworte während
des Konversationsverlaufes nicht unbeabsichtigt eine Anweisungsaufgabe
aufrufen wird.
-
Immer, wenn der elektronische Assistent
seine Anweisungsaufgabe bearbeitet, die dem Teilnehmer vollen Zugriff
zu seinem Anweisungssatz gibt, kann der Teilnehmer den elektronischen
Assistenten instruieren, in seinen Hintergrundmodus zu gehen. Er
tut dies, indem er sagt: „Das
ist alles im Moment." Als
Antwort erwidert der elektronische Assistent: „Sag ,Wildfire", wenn du mich benötigst", und schaltet in seinen
Hintergrundmodus. Wenn der Teilnehmer Zugriff auf den vollen Anweisungssatz
seines elektronischen Assistenten benötigt, sagt er „Wildfire". Als Antwort bewegt
sich der elektronische Assistent zurück in seinen Vordergrundmodus und
antwortet: „Hier
bin ich", womit
bestätigt
wird, dass der elektronische Assistent vollständig aktiv ist und der Teilnehmer
nun auf den vollen Anweisungssatz zugreifen kann, der durch den
elektronischen Assistenten unterstützt wird.
-
Erzeugen eines Übersteuerungsplanes:
-
Wie zuvor angezeigt, gestatten die
Anweisungen „Ich
bin da" und „Erstelle
einen Reiseplan" dem
Teilnehmer, einen Übersteuerungsplan
zu erzeugen. Ein typischer Dialog für jede dieser Anweisungen ist
in den 33 und 34 gezeigt. Der Dialog für jede dieser
Anweisungen ist sehr einfach. Die Anweisung „Ich bin da" wird verwendet,
um eine einzige Modifikation für
den Terminplan des Teilnehmers zu erzeugen; die Anweisung „Erstelle
einen Reiseplan" wird
zur Erzeugung von komplexeren Übersteuerungsplänen verwendet.
-
Wenn der Teilnehmer äußert „Ich bin
da", antwortet der
elektronische Assistent mit der Frage: „Was tust du?". In dem beschriebenen
Ausführungsbeispiel
kann der Teilnehmer auf eine der vier folgenden Arten antworten:
Anrufe
entgegennehmen
Nur wichtige Anrufe entgegennehmen
Nicht
verfügbar
Verfolge
Terminplan
-
„Anrufe entgegennehmen" zeigt dem elektronischen
Assistenten an, dass alle Anrufe an den Teilnehmer geleitet werden
sollen, „Nur
wichtige Anrufe annehmen" zeigt
an, dass nur Anrufe von Kontakten, die mit hoher Priorität ausgewiesen
sind, weitergeleitet werden sollen; „Nicht verfügbar" zeigt an, dass keine
Anrufe weitergeleitet werden sollen; und „Verfolge Terminplan" zeigt an, dass der Übersteuerungsplan
zugunsten des Default-Terminplans aufgehoben werden soll.
-
In dem veranschaulichten Beispiel
antwortet der Teilnehmer, indem er sagt: „Nimm Anrufe entgegen." Als Nächstes fragt
der elektronische Assistent: „Wo?". Hierauf kann der
Teilnehmer mit einer der folgenden Angaben antworten: Arbeit, Heim,
Auto, Mobil oder etwas anderes, wobei bei jedem angenommenen wird, dass
eine entsprechende Adresse oder Telefonnummer vorliegt.
-
Nachdem der Teilnehmer angezeigt
hat, wie er erreichbar ist, fordert der elektronische Assistent
ihn auf, anzugeben, für
wie viele Stunden, worauf der Teilnehmer mit einer Nummer antwortet.
Nachdem der Teilnehmer die Zeit angegeben hat, bestätigt der
elektronische Assistent seine Antwort, indem er sagt: „Erledigt."
-
Die Anweisung „Erstelle einen Reiseplan", von der ein Beispieldialog
in 34 gezeigt ist,
arbeitet in einer ähnlichen
Weise, außer
dass sie dem Teilnehmer gestattet, gesprochene Anweisungen zu verwenden, um
einen Übersteuerungsplan
in gewünschter
Größe aufzubauen.
Mit anderen Worten: Der elektronische Assistent fragt, nachdem die
erste Eingabe abgeschlossen worden ist: „Und dann wirst du da sein?". Als Antwort kann
der Teilnehmer mehr Informationen in den Terminplan eingeben oder
die Anweisungsroutine beenden, indem er sagt: „Zurück zum Terminplan".
-
Anruf-Anweisungen:
-
Ein Teilnehmer kann seinen elektronischen
Assistenten bitten, einen Telefonanruf in einer von drei Arten zu
tätigen.
Wenn die anzurufende Partei ein bekannter Kontakt ist, kann der
Teilnehmer den Namen des Kontaktes identifizieren, und der elektronische
Assistent wird die erforderliche Information erhalten, um den Anruf
von der Kontaktliste des Teilnehmers zu tätigen. Wenn die Partei kein
bekannter Kontakt ist, kann der Teilnehmer die Partei identifizieren
und entweder durch Stimme oder durch DTMF eine anzurufende Telefonnummer
vorgeben. Die dritte Art ist durch eine Information vorgegeben,
die sich aus dem Kontext ergibt. Das heißt, wenn der elektronische
Assistent gerade eine Voice-Mail-Nachricht für den Teilnehmer aufgesucht
hat, kann der Teilnehmer sagen: „Rufe sie an.", und der elektronische
Assistent wird die Partei anrufen, die die Voice-Mail hinterlassen
hat. Zusätzlich
könnte
sie sagen: „Anrufen" „diesen". Dies ist möglich, weil die gespeicherte
Nachricht den Anrufer entweder als Kontakt oder als Telefon identifiziert,
von dem der Anrufer gebeten wurde, etwas zu hinterlassen.
-
Die gespeicherten Objekte für die Kontakte
umfassen ebenfalls einen Hinweis zu einer Notiz (z. B. eine Stimmnachricht),
die der Teilnehmer erzeugen und dem Objekt hinzufügen kann.
Wenn der Teilnehmer seinen elektronischen Assistenten instruiert,
den Kontakt anzurufen, spielt der elektronische Assistent die gespeicherte
Nachricht für
den Teilnehmer ab, während
er versucht, die Verbindung mit dem Kontakt aufzubauen. Die Notiz
kann Information über
den Kontakt umfassen, an die der Teilnehmer jedes Mal erinnert werden
möchte, wenn
er diesen Kontakt anruft. Zum Beispiel kann er wünschen, den Namen der Sekretärin des
Kontaktes zu kennen, so dass er sie mit dem Namen ansprechen kann,
wenn er den Anruf beantwortet.
-
Verbindungsanforderung:
-
Es ist einem Teilnehmer möglich, sich
auf seinen Assistenten zu beziehen, wenn er mit einem anderen Teilnehmer
zu sprechen wünscht,
ohne ihn tatsächlich
anzurufen. Dies wird als „Anforderung
einer Verbindung mit einem anderen Benutzer" bezeichnet. Ein Mechanismus, um dies
umzusetzen, liegt für
den Teilnehmer darin, explizit eine Verbindung anzufordern. Dies
veranlasst den Assistenten des Teilnehmers, den elektronischen Assistenten,
an den die Anforderung erfolgt, zu informieren, dass eine Verbindung
an irgendeiner Stelle gewünscht
ist. Wenn diese Forderung empfangen wird, speichert der empfangende
Assistent die Anforderung, bis sie seinem Teilnehmer mitgeteilt
wird. Während
der nächsten
Sitzung mit dem Teilnehmer informiert der empfangende Assistent
seinen Teilnehmer über
die angeforderte Verbindung und die Verfügbarkeit der Partei, die die
Verbindung anfordert. Der Teilnehmer kann sodann entscheiden, sich
mit der anderen Partei in Verbindung zu setzen oder die Anforderung
zu ignorieren.
-
Telefonmerkmal:
-
Das Merkmal „Telefon" ist ein Objekt innerhalb des Systems,
das eine intelligente telefonähnliche Funktionalität auf der
Spitze des Konferenzobjektes bildet. Das Merkmal „Telefon" gestattet dem Benutzer, mehrere
Anrufe zu verwalten. Der Benutzer kann verlangen, dass sein Assistent
verschiedene Anrufe warten lässt,
bei bestimmten Anrufen auflegt und Anrufe zu anderen Kontakten über das
Telefonmerkmal weiterschaltet. Wenn ein Teilnehmer unter Verwendung
der intelligenten Anruferwartung des Systems einen Anruf empfängt, wird
der Anruf durch das Merkmal „Telefon" verwaltet. Die derzeit
verwirklichte Funktionalität
umfasst die Benutzeranweisungen: Anrufen, Auflegen und „Drücke den
Warteknopf".
-
Diese Anweisungen werden verwendet,
um eine unbegrenzte Anzahl gleichzeitiger Anrufe zu handhaben.
-
Virtueller Korridor.
-
Wie zuvor angezeigt, kann der Teilnehmer
seinen elektronischen Assistenten fragen, was sich in dem virtuellen
Büro befindet,
was er in seiner Hand hält
oder worauf er verweist, was sich im „Papierkorb" befindet, welche
Nachrichten eingetroffen sind usw. Ein Konzept eines virtuellen
Korridors wird jedoch ebenfalls durch das beschriebene Ausführungsbeispiel
unterstützt.
Der virtuelle Korridor besteht aus einer Gruppe von virtuellen Büros. Der
Teilnehmer kann seinen elektronischen Assistenten fragen, welche
anderen Teilnehmer gegenwärtig
mit ihren elektronischen Assistenten einen Dialog führen, indem
er die Anweisung „Wer
ist sonst da?" verwendet.
Dieses Merkmal kann „gefiltert" werden, so dass
der Teilnehmer nur Leute sieht, die sich in seiner Kontaktliste
befinden oder Mitglieder bestimmter, festgelegter Gruppen oder Teil
eines bestimmten Telefonbuches sind.
-
In dem beschriebenen Ausführungsbeispiel,
das die interne Umschaltung unterstützt, und bei der Vorgabe, dass
das Merkmal des virtuellen Korridors dem Teilnehmer ermöglicht,
andere Teilnehmer zu sehen, die sich in dem System befinden, bietet
das System auch die Möglichkeit,
Informationen zwischen verteilten oder wandernden Gruppen oder Teilnehmern
rascher zu verbinden und gemeinsam zu benutzen, als es durch die Nachrichtenübermittlung
möglich
ist. Zusätzlich
kann die „Sichtbarkeit" im Korridor ebenfalls
die Fähigkeit
umfassen, zu sehen, was die andere Person tut (z. B. am Telefon,
Lesen einer Nachricht usw.). In Abhängigkeit davon, was der Teilnehmer
seinem Assistenten über
seine Verfügbarkeit
und Zugänglichkeit
erzählt
hat, wird der elektronische Assistent steuern, wie sichtbar der
Teilnehmer im virtuellen Korridor ist (oder wie sichtbar er sein
wird).
-
Verwirklichte
Assistenten
-
Das beschriebene Ausführungsbeispiel
verwirklicht zwei Arten von Assistenten, nämlich den zuvor beschriebenen
elektronischen Assistenten und einen Empfangsassistenten. Der Empfangsassistent
ist sehr viel einfacher als der elektronische Assistent. Sein Job
besteht darin, Anrufe an eine zentrale Telefonnummer entgegenzunehmen
(für alle
Teilnehmer eines bestimmten Systems) und die Anrufe weiterzuleiten
zum Assistenten eines bestimmten Teilnehmers. Dies vermeidet die
Verwendung der DID-Leitung und gestattet einer Nummer, eine große Anzahl
von Teilnehmern zu handhaben. Die grundlegende Operation dieses
Assistenten liegt im Fragen nach dem Anschluss des Teilnehmers,
der gewählt
wurde, und sodann im Ansteuern des Assistenten des Teilnehmers,
um den restlichen Anruf zu handhaben. An dieser Stelle kann der
Anruf in einer ähnlichen Weise
gehandhabt werden wie die zuvor beschriebene Anruf-Antwortaufgabe.
In dem beschriebenen Ausführungsbeispiel
wird angenommen, dass nur Teilnehmer (nicht ihre Kontakte) den Empfangsassistenten
benutzen. Als solches fragt der Assistent des Teilnehmers nach dem
Passcode des Teilnehmers, sobald der Anschluss für den Teilnehmer eingegeben
ist. Da der Assistent annehmen kann, dass es der Teilnehmer ist,
muss er nicht nach dem Namen der anrufenden Person fragen, wie dies
zuvor beschrieben wurde.
-
Es ist auch möglich, elektronische Assistenten
mit unterschiedlicher „Persönlichkeit" zu integrieren,
d. h. Assistenten, deren Funktionalität auf den speziellen Teilnehmer
zugeschnitten ist, für
den dieser Assistent Dienstleistungen liefert. Zum Beispiel kann
ein elektronischer Assistent für
Kundendienst-Vertreter vorgegeben sein. Dieser elektronische Assistent
wird einen Anweisungssatz und Aufgaben verwirklichen, die geeigneter sind
für die
Rolle eines Kundendienst-Vertreters oder gar für eine Gruppe von Kundendienst-Vertretern.
Er kann einen eingehenden Anruf behandeln, indem er dem Anrufer
eine Reihe von Fragen stellt, die ausgelegt sind, um Informationen
bezüglich
des speziellen Problems des Kundendienstes zu sammeln. Diese Information
kann durch den elektronischen Assistenten verwendet werden, um die
geeignetste Person für
den Empfang des Anrufes festzustellen, und sie kann auch verwendet
werden, um den Kundenvertreter bei der Lösung der Probleme des Kunden
zu unterstützen,
indem relevante gespeicherte Daten aus einer Datenbank aufgesucht werden.
Der elektronische Assistent kann den Anrufer in einer Warteschlange
mit anderen Anrufern ablegen, die Kundendienstfragen haben, und
sie verbinden, wenn die Systemmittel verfügbar werden.
-
Zusätzlich zu der „Kundenbindung" der Persönlichkeit
und der Erfahrungen eines elektronischen Assistenten des Teilnehmers
können
andere, spezialisierte elektronische Assistenten dem System hinzugefügt werden.
Zum Beispiel kann ein System mit einem Aktienhändler-Assistenten verbunden
werden, um bestimmte Investments zu überprüfen.
-
Andere Ausführungsbeispiele liegen in den
folgenden Ansprüchen.
-
Was beansprucht wird, ist:
-