-
Die
vorliegende Erfindung betrifft im Allgemeinen die Bereitstellung
von Benutzerschnittstellen für
die Benutzersteuerung von Vorrichtungen und insbesondere das Anbieten
und Darstellen von Benutzeraufgaben für eine Gruppe von Verbraucherelektronik-(CE)
Vorrichtungen.
-
Typische
Benutzerschnittstellen für
die Benutzersteuerung von Vorrichtungen wie beispielsweise CE-Vorrichtungen,
(z. B. Fernsehgerät,
Videorekorder, DVD-Spieler, CD-Spieler
usw.) sind dergestalt, dass Benutzeraufgaben in den Vorrichtungen nicht
dargestellt werden. Stattdessen wird dem Benutzer eine Reihe von
Vorrichtungsfunktionen angeboten, und der Benutzer wählt Kombinationen
von diesen Vorrichtungsfunktionen aus, um eine Aufgabe durchzuführen. Um
zum Beispiel ein Videoband anzusehen, muss der Benutzer den Eingang
wählen
(z. B. Band), das Band zurückspulen
und auf einem Videorekorder auf Abspielen drücken. Als Ergebnis dessen kann
der Benutzer nicht einfach nur angeben, dass er bzw. sie ein 'Videoband' 'ansehen' möchte, um
die oben genannten Vorgänge
zu automatisieren. Benutzer können
gewünschte
Aufgaben, die durchgeführt
werden sollen, nicht formulieren, (z. B. 'Videoband' 'ansehen'), sondern Benutzer
müssen
Vorrichtungen direkt steuern, um gewünschte Funktionen durchzuführen, (z.
B. den Eingang wählen,
das Band zurückspulen
und auf einem Videorekorder auf Abspielen drücken).
-
Dies
entspricht einer herkömmlichen
Software-Architektur, in der Aufgaben in das Konzept einer Anwendung
eingeordnet werden. Wenn ein Benutzer zum Beispiel einen Brief schreiben
möchte,
startet der Benutzer ein Textverarbeitungsprogramm, das die geeignete
Funktionalität
aufweist. Abgesehen von einer bekannten Funktionalität, die einer
bekannten Bezeichnung zugeordnet ist, bringt dies für den Benutzer
wenig zum Ausdruck. Eine weitere Alternative war, dem Benutzer eine
Reihe von Optionen in der Form eines Menüs anzubieten. Mehrere Systeme gestatten,
dass bekannte Aufgaben in Menü-Optionen
aufgelistet werden, (z. B. Rechtschreibprüfung für Dokumente oder Sofortaufnahme
bei einem Videorekorder). Solche Systeme stellen jedoch nur Vorrichtungsfunktionen
für den
Benutzer bereit.
-
Eine
weitere Alternative war, dem Benutzer zu gestatten, die Aufgabe
grafisch auszudrücken,
(z. B. unter Verwendung von Linien zum Verbinden einer Gruppe von
dargestellten Vorrichtungen, die eine gewünschte Aufgabe durchführen sollen).
Das Problem bei diesem Ansatz ist, dass er die Komplexität des Einsatzes
der Vorrichtungen vor dem Benutzer nicht verbirgt. Er stellt für den Benutzer
einfach nur die Funktionsauswahlmöglichkeiten grafisch dar und
bittet den Benutzer, die zum Durchführen einer Aufgabe notwendigen
Verbindungen anzugeben.
-
Des
Weiteren wird Verbraucherelektronik herkömmlicherweise unter Verwendung
von Schnittstellenbeschreibungen beschrieben, wie beispielsweise
Sprachen-APis. Middleware, wie beispielsweise UPNP, OSGi, Jini usw.
haben die Verwendung solcher prozedurorientierten Computer-Schnittstellen standardisiert.
Diese Schnittstellen beschreiben jedoch die Vorrichtung nicht für irgendeine
Detailebene, die von einem anderen Computer bzw. einer anderen Vorrichtung,
außer
zum Aufrufen der definierten Schnittstellen, sinnvoll genutzt werden
kann. Andere Ansätze
konzentrierten sich darauf, Fähigkeiten und
Voreinstellungen ausführlicher
zu beschreiben, wie beispielsweise CC/PP, wobei Gruppen von Attributen,
die Fähigkeiten
und Voreinstellungen darstellen, für Rechenvorrichtungen formuliert
werden können.
Des Weiteren haben sich Ansätze
auf dem Gebiet des semantischen Webs zu ausführlicheren Beschreibungsfähigkeiten
hin verschoben, wie beispielsweise die Arbeit, die durch DAML und
RDF verkörpert
wird. Solche Ansätze
beschreiben jedoch nur einen Kern zum Beschreiben von Entitäten statt
eines speziellen Ansatzes. Unter Verwendung von semantischen Web-
und XML-Technologien als Kern haben frühere Arbeiten wie beispielsweise User-Centric
Appliance Aggregation bei HPL versucht, Verbraucherelektronik zu
beschreiben und haben dazu nur Vorrichtungsbeschreibungen verwendet,
die mit jeder Vorrichtung eine Aufgabe verknüpfen. Eine DVD zum Beispiel 'spielt DVDs' und ein Fernsehgerät 'zeigt Videos'. Das Problem bei
diesen Ansätzen
ist, dass sie die Vorrichtungen und ihre Interaktionen nicht adäquat beschreiben,
weil es viele Benutzeraufgaben gibt, die mehr Details aufweisen als
von einer einzelnen Vorrichtung erfasst werden können. Zum Beispiel kann es
für das
Abspielen einer DVD erforderlich sein, auch die Beleuchtung zu dimmen.
-
WO 038,039 offenbart ein
System zum Steuern von mehreren Geräten durch Definieren ihrer Funktionen.
-
Es
besteht daher ein Bedarf an einem Verfahren für die Interaktion von Vorrichtungen,
das in einer flexiblen Beschreibung statt als ein Steuereinheitsprogramm
beschrieben wird, das als schwarzer Kasten fungiert. Es besteht
auch ein Bedarf an einem solchen Verfahren, das Vorrichtungsinteraktionen
gestattet, die der Struktur der Wahrnehmung der Verwendung von Heim-Vorrichtungen
durch die Benutzer genauer entsprechen. Es besteht auch ein Bedarf an
einem solchen Verfahren, das Aufgabenbeschreibungen bereitstellt
und gestattet, dass Interaktionen sich nicht auf eine einzelne Vorrichtung
konzentrieren, (d. h. keine direkte Zuordnung von Vorrichtung zu
Aufgabe). Es besteht auch ein Bedarf an einem solchen Verfahren,
das eine Beschreibung von Benutzeraufgaben bereitstellt, um eine
interoperable Beschreibung und einen Austausch von Beschreibungen
zu gestatten.
-
Es
ist eine Aufgabe der vorliegenden Erfindung, die oben genannten
Anforderungen anzugehen.
-
Gemäß der vorliegenden
Erfindung werden eine Vorrichtung und ein Verfahren bereitgestellt,
wie in den Ansprüchen
im Anhang dargelegt wird. Bevorzugte Merkmale der Erfindung gehen
aus den Unteransprüchen
und der nachfolgenden Beschreibung hervor.
-
Die
vorliegende Erfindung stellt ein Aufgaben-Automatisierungssystem
bereit, das ein Verfahren zum Darstellen von Benutzeraufgaben implementiert,
die durch eine oder mehrere von einer Vielzahl von elektronischen
Vorrichtungen in einem Netzwerk durchgeführt werden sollen. Jede Vorrichtung umfasst
dann vorzugsweise eine Funktionsbeschreibung, die die Funktionen
angibt, die die Vorrichtung durchführen kann. Die Vorrichtungsfunktionalität wird vorzugsweise
als eine Vorrichtungsbeschreibung formuliert, die eine Funktion
angibt, die die Vorrichtung durchführen kann. Die Funktionsbeschreibungen werden
von einer oder mehreren der Vorrichtungen erhalten. Ferner werden
vorzugsweise auch Aufgabenbeschreibungen erhalten, die die Benutzeraufgabe
und die Funktionen beschreiben, die zum Durchführen bestimmter Aufgaben erforderlich
sind. Dann werden die erhaltenen Funktionsbeschreibungen und Aufgabenbeschreibungen
vorzugsweise verwendet, um Aufgabenvorschläge für den Benutzer zu generieren.
Jeder Aufgabenvorschlag stellt vorzugsweise in abstrakter Weise
eine Benutzeraufgabe als einen Pseudosatz dar und wird vorzugsweise
aus einer Aufgabenbeschreibung erhalten, und diese kann eine oder
mehrere der erhaltenen Vorrichtungsbeschreibungen verwenden. Die
Aufgabenvorschläge, aus
denen ausgewählt
werden kann, werden dem Benutzer vorzugsweise auf einer Anzeigevorrichtung angezeigt,
wobei die angeforderte Aufgabe, die durch einen ausgewählten Aufgabenvorschlag
dargestellt wird, von einer oder mehreren der Vorrichtungen durchgeführt werden
soll. Die Aufgabenvorschläge
als solche verbergen vorzugsweise Vorrichtungsfunktionen vor dem
Benutzer des Systems.
-
Aufgabenvorschläge werden
für den
Benutzer vorzugsweise unter Verwendung einer Pseudosprachenstruktur
dargestellt, die als eine Gruppe von Begriffen aufgebaut ist, die
Typen aufweisen, um Benutzeraufgaben als Abstraktionen von Aufgabenbeschreibungen
und Beschreibungen von Vorrichtungsfunktionen zu beschreiben. Eine
Benutzerschnittstellenvorrichtung wird vorzugsweise verwendet, um Aufgabenvorschläge, aus
denen ausgewählt
werden kann, auf einer Anzeigevorrichtung für den Benutzer anzuzeigen,
so dass sie zum Durchführen
der Aufgaben von einer oder mehreren der Vorrichtungen unter der
Steuerung eines Aufgaben-Zusammenspiel-(Automatierungs-)Moduls ausgewählt werden
können.
-
Beim
Auswählen
aus den Aufgabenvorschlägen
wird einem Benutzer vorzugsweise gestattet, Pseudosatzelemente/Begriffe
so auszuwählen,
dass die vom Benutzer ausgewählten
Aufgabenvorschläge
von den Vorrichtungen unter der Steuerung des Aufgaben-Automatisierungsmoduls
in dem System durchgeführt
werden können.
Das Aufgaben-Automatisierungsmodul
kann vorzugsweise eine logische Komponente des Systems sein.
-
In
einem Beispiel umfasst eine Beschreibung einer Benutzeraufgabe vorzugsweise
eine externe Aufgabenbeschreibung, Aufgabeneigenschaften, Aufgabenfunktionalitäten und
Aufgabenaktionen. Die externe Aufgabenbeschreibung umreißt vorzugsweise
Aufgabenvorschläge,
(d. h. Pseudosätze),
für die Interaktion
mit einem Benutzer. Die Aufgabeneigenschaften formulieren vorzugsweise
Informationen über
die Benutzeraufgabe. Die Aufgabenfunktionalitäten formulieren vorzugsweise
eine Funktionalität, die
zum Durchführen
der Benutzeraufgabe erforderlich ist. Und die Aufgabenaktionen beschreiben
vorzugsweise die Folgesteuerung und Kombinationen der Vorrichtungen,
die die erforderlichen Funktionalitäten erfüllen. Die Vorrichtungsbeschreibung
umfasst vorzugsweise eine Funktionalitätsbeschreibung der Vorrichtung
und eine Vorrichtungsbasis (grounding), wobei die Funktionalitätsbeschreibung
vorzugsweise die Funktionalität
ei ner Vorrichtung umreißt,
und die Vorrichtungsbasis die Vorrichtungssteuerung auf Basis der
Funktionalitätsbeschreibung
beschreibt.
-
Als
solches umfasst das Aufgaben-Automatisierungsmodul in einer Ausführungsform
vorzugsweise eine aufgabenbestimmte Steuereinheit, die so betrieben
werden kann, dass sie Beschreibungen der Vorrichtungsfunktion von
einer oder mehreren der Vorrichtungen erhält, Aufgabenbeschreibungen
erhält,
die für
bestimmte Aufgaben erforderliche Vorrichtungsfunktionalitäten beschreiben,
Aufgabenvorschläge
aus den Aufgabenbeschreibungen und den Vorrichtungsbeschreibungen
generiert, und nach dem Auswählen
eines Aufgabenvorschlags den ausgewählten Aufgabenvorschlag auf
Basis von Aufgabenbeschreibungen durchführt, die Funktionalitäten verwenden,
die in den erhaltenen Beschreibungen der Vorrichtungsfunktion beschrieben
sind.
-
Diese
und andere Merkmale, Gesichtspunkte und Vorteile der vorliegenden
Erfindung werden unter Bezugnahme auf die folgende Beschreibung, die
Ansprüche
im Anhang und die begleitenden Figuren verständlich.
-
Zum
besseren Verständnis
der Erfindung und um zu zeigen, wie Ausführungsformen derselben verwirklicht
werden können,
wird im Folgenden beispielhaft auf die folgenden schematischen Zeichnungen
Bezug genommen:
-
1A zeigt
ein Blockschaltbild einer Beispielarchitektur von einer Ausführungsform
eines Aufgaben-Automatisierungssystems gemäß der vorliegenden Erfindung;
-
1B zeigt ein Ablaufdiagramm eines beispielhaften
Aufgaben-Automatisierungsprozesses gemäß dem System von 1A;
-
2 zeigt
ein Blockschaltbild einer Beispielarchitektur von einer weiteren
Ausführungsform eines
Aufgaben-Automatisierungssystems mit einem Aufgaben-Automatisierungsmodul
gemäß der vorliegenden
Erfindung;
-
3 zeigt
einen beispielhaften Aufgabenvorschlag unter Verwendung einer Pseudosprache
in dem System von 2;
-
4 zeigt
ein Beispiel zum Erhalten von Beschreibungen der Vorrichtungsfunktion
von den Vorrichtungen, um Aufgabenvorschläge in dem System von 2 zu
generieren;
-
5 zeigt
Beispiele von logisch getrennten Aufgabenbeschreibungen und Vorrichtungsbeschreibungen
gemäß der vorliegenden
Erfindung;
-
6 zeigt
ein Ablaufdiagramm von Beispielschritten beim Generieren und Anzeigen
von Aufgabenvorschlägen;
und
-
7 zeigt
ein Ablaufdiagramm von Beispielschritten beim Anzeigen von Aufgabenvorschlägen für den Benutzer
für die
Auswahl und Ausführung durch
das Aufgaben-Automatisierungsmodul in dem System von 2.
-
In
einer Ausführungsform
stellt die vorliegende Erfindung ein System für die Automatisierung von Benutzeraufgaben über eine
Gruppe von verschiedenen Vorrichtungen bereit, wie beispielsweise
Verbraucherelektronik-Vorrichtungen in einer Wohnung, wobei die
Vorrichtungen in einem Netzwerk miteinander verbunden sind. Das
Automatisieren von Benutzeraufgaben umfasst das Automatisieren des
Prozesses zum Auswählen
der Vorrichtungen, die zum Durchführen einer Aufgabe verwendet
werden sollen. In einem Beispiel umfasst dies Erhalten von Beschreibungen
der Vorrichtungsfunktion und von Aufgabenbeschreibungen, Generieren
von Aufgabenvorschlägen
auf Basis der erhaltenen Beschreibungen der Vorrichtungsfunktion
und der Aufgabenbeschreibungen, Einordnen der Aufgabenvorschläge in eine
Rangordnung, einem Benutzer gestatten, aus den Aufgabenvorschlägen auszuwählen, und
Zusammenwirken (Automatisieren) der Vorrichtungen, die die ausgewählten/angeforderten
Aufgabenvorschläge
ausführen
sollen.
-
Zum
Beispiel können
Aufgabenvorschläge, wie
angemerkt, als Pseudosätze
beschrieben werden, die eine Gruppe von Elementen/Begriffen umfassen,
die einander modifizieren.
-
Die
vorliegende Erfindung gestattet es, Benutzeraufgaben auf inkrementelle
und flexible Weise unter Verwendung von Pseudosätzen zu beschreiben, die auch
von Menschen lesbar sind. Als solche definiert sie nicht, wie die
Beschreibung dem Betrieb der Vorrichtungen zugeordnet ist, sondern
konzentriert sich darauf, Aufgabenabläufe auf eine Weise zu formulieren,
die vom Benutzer interpretiert werden kann. Die Pseudosätze stellen
eine Abstraktionsschicht bereit, die von den zu Grunde liegenden
Vorrichtungen entfernt ist. Aufgaben können unter Verwendung der Pseudosätze in einem
sehr freien Sinn ähnlichen
Ansatz wie Erkennungssymbole von Graffiti-Handschrift beschrieben
werden, die tatsächlichen
lateinischen Buchstaben ähneln
(z. B. Graffiti von Benutzeraufgaben verglichen mit natürlicher Sprache
und voller Handschrifterkennung). in einer Implementierung gestattet
dies, dass ein kompaktes Programm Benutzeraufgaben ohne komplexe
Verarbeitung von natürlicher
Sprache bestimmt.
-
Die
Automatisierung der Aufgaben arbeitet als aufgabenorientierte Fernsteuerung
auf höchster Ebene
für die
Vorrichtungen und minimiert die Auswahlen und Einstellungen für den Benutzer.
Als solche werden Kombinationen von mehreren Technologien verwendet,
um ein Automatisierungssystem bereitzustellen, das zum Automatisieren
des Zusammenspiels von Benutzeraufgaben geeignet ist.
-
Unter
Bezugnahme auf die Beispielarchitektur in 1A–1B gestattet ein Aufgaben-Automatisierungssystem 10 gemäß der vorliegenden
Erfindung, dass Benutzeraufgaben in einer Gruppe von automatisierten
Vorrichtungsaktionen mit minimaler Eingabe durch den Benutzer automatisiert
werden. In einer Version umfasst das Aufgaben-Automatisierungssystem 10 drei
Typen von logischen Vorrichtungen: (1) Client-Vorrichtungen 20,
die Vorrichtungen enthalten, die eine Benutzerschnittstelle aufweisen, (2)
Steuereinheitsvorrichtungen 30, die Vorrichtungen enthalten,
die andere Vorrichtungen steuern, und (3) gesteuerte Vorrichtungen 40,
die Vorrichtungen enthalten, die von Steuereinheiten gesteuert werden.
-
Jede
logische Vorrichtung kann eine bestimmte Funktionalität aufweisen,
um die Aufgabenautomatisierung gemäß der vorliegenden Erfindung zu
ermöglichen.
Insbesondere umfassen gesteuerte Vorrichtungen 40 erweiterte
Beschreibungen ihrer Funktionalität unter Verwendung einer Sprache
wie z. B. einer semantischen Auszeichnungssprache (diese beschreibt
nicht ihre Schnittstelle, sondern beschreibt stattdessen abstrakt
ihre Funktionalität).
Außerdem
kann eine Vorrichtung neben den Beschreibungen der Vorrichtungsfunktionalität eine oder
mehrere Beschreibungen von Benutzeraufgaben ent halten. Die Aufgabenbeschreibungen
können
Aufgaben spezifizieren, die nur ihre Funktionalität nutzen,
ihre Funktionalität
und eine potenzielle Funktionalität von anderen Vorrichtungen
nutzen, oder einfach Aufgaben für
andere Vorrichtungen sind.
-
Die
Steuereinheitsvorrichtungen 30, die Aufgaben-Automatisierungsmodule
(TO) 50 umfassen, enthalten Funktionalität zum Automatisieren
von Vorrichtungen, die vom Benutzer ausgewählte Aufgabenvorschläge, (d.
h. Aufgabenanforderungen), durchführen sollen. Neben einer Steuerzugriff-Software
enthält
eine Steuereinheit 30 ein Inferenzsysten, (z. B. ein Expertensystem,
Regelsystem usw.), in dem Aufgaben-Automatisierungsmodul 50,
das fähig ist,
eine Gruppe von Aktionen und Vorrichtungen zum Durchführen einer
Aufgabenanforderung abzuleiten. Die Steuereinheit 30 nimmt
Beschreibungen von Aufgaben und Vorrichtungsfunktionalitäten und
verwendet diese Informationen, um Folgendes abzuleiten: (1) welche
Aufgaben sind in dem System gültig
unter Berücksichtigung
der aktuellen Vorrichtungen, ihrer Funktionalität und der beschriebenen Aufgaben,
und (2) welche Vorrichtungskombinationen sind potenziell verwendbar,
um eine angeforderte Aufgabe zu erfüllen.
-
Client-Vorrichtungen 20 enthalten
die Funktionalität
zum Anfordern und Anzeigen von Aufgabenvorschlägen für den Benutzer. Als solche
enthalten sie eine Benutzerschnittstelle, die mit dem Aufgaben-Automatisierungsmodul 50 der
Steuereinheit 30 gekoppelt ist, um dem Benutzer Aufgaben
zu zeigen. Diese Kopplung ermöglicht
es der Benutzerschnittstelle, (z. B. GUI), nur Aufgabenvorschläge anzuzeigen,
die unter Berücksichtigung
der aktuellen Vorrichtungen 40, Aufgaben und Funktionalität möglich sind.
Wenn des Weiteren ein Teil eines Aufgabenvorschlags angegeben worden
ist, (d. h. ein Teil einer Aufgabenanforderung spezifiziert worden
ist), kann die Benutzerschnittstelle die Steuereinheit 30 verwenden,
um anwendbare Benutzeroptionen weiter zu reduzieren. Unter Verwendung
dieser Funktionalität
ist die Client-Vorrichtung 20 in der Lage, verfügbare Aufgaben
und Optionen als Aufgabenvorschläge unter
Verwendung von Pseudosätzen
aufzulisten. Ein Aufgabenvorschlag wird von dem Benutzer ausgewählt, und
eine Anforderung zum Ausführen
des ausgewählten
Aufgabenvorschlags wird von der Steuereinheit 30 verarbeitet,
um die ausgewählte/angeforderte
Aufgabe durchzuführen.
Dies gestattet es der Steuereinheit 30, in einer vereinfachten
Weise zu bestimmen, welche Benutzeraufgabe gewünscht wird, und sie mit Aufgabenbeschreibungen
und letztendlich mit der Vorrichtungsauswahl und der Konfiguration
zum Erfüllen
der Aufgabe abzustimmen. Benutzervoreinstellungen, wie beispielsweise,
in welchem Raum ein Video abgespielt werden soll, werden als Teil
eines Aufgabenvorschlag-Pseudosatzes als Modifikatoren spezifiziert,
(z. B. Pseudosatz Abspielen von Video 'im Schlafzimmer oder Abspielen von Video 'mit Kopfhörer'). Diese Teile des
Suchraums, (d. h. verfügbare
Teile der Pseudosätze),
zum Auswählen
der Aufgabenvorschläge
werden zu einem späteren
Zeitpunkt bei der Beschreibung von Verbraucherelektronik unter Verwendung
von getrennten Aufgaben- und Vorrichtungsbeschreibungen erläutert.
-
2 veranschaulicht
eine beispielhafte Funktionsarchitektur des Aufgaben-Automatisierungssystems 10 gemäß der vorliegenden
Erfindung einschließlich
eines Benutzerschnittstellen-(GUI) Moduls 60 und einer
Steuereinheit 30, die ein Aufgaben-Automatisierungsmodul 50 als
eine oberste Schicht über
den zu Grunde liegenden Client-Vorrichtungen 40 und eine
Middleware-Schicht/ein Modul 70 zwischen der Steuereinheit 30 und
den Client-Vorrichtungen 40 umfasst. Das Modul 70 stellt Funktionen
der Middleware-Schicht bereit, die eine Steuerung der Vorrichtungen
ermöglichen,
(es stellt z. B. APIs zum Steuern der Vorrichtungen bereit). Der Betrieb
des Moduls 70 führt über den
Umfang der vorliegenden Erfindung hinaus und wird daher hierin nicht
ausführlich
beschrieben.
-
Über die
Benutzerschnittstelle 60 gestattet das Aufgaben-Automatisierungsmodul 50 das
Anbieten und Darstellen von Aufgabenvorschlägen, die von einer Gruppe von
Verbraucherelektronik-Vorrichtungen 40 durchgeführt werden
können.
Als solches verbirgt das Aufgaben-Automatisierungsmodul, wie diese
Aufgabenvorschläge
zu den Vorrichtungen 40 zugeordnet sind, und stellt nur
Aufgabenvorschläge für einen
Benutzer dar. Eine Art des Beschreibens von Aufgaben als Aufgabenvorschläge in einer
inkrementellen und flexiblen Weise wird bereitgestellt, die auch
von Menschen lesbar ist. Ein solches Verfahren richtet den Blick
des Benutzers nicht darauf, wie eine Aufgabenbeschreibung 95 für den Betrieb
der Vorrichtungen 40 zugeordnet ist, und konzentriert sich stattdessen
darauf, Aufgabenabläufe
so zu formulieren, dass sie von dem Benutzer interpretiert werden können, (z.
B. Aufgabenvorschläge
als benannte Pseudosätze).
-
Unter
folgender weiterer Bezugnahme auf 3 kann ein
Aufgabenvorschlag in einem Beispiel in einer vereinfachten Sprachenstruktur 200 beschrieben
werden, die einen Pseudosatz darstellt. Der Einfachheit der Beschreibung
halber ist die Beispielstruktur hierin als eine Gruppe von Begriffen
aufgebaut, die einander modifizieren, wobei in diesem Beispiel eine
standardisierte Gruppe von 'Verben' ('verbs'), die Aktionen definieren,
als der Stamm eines hierarchischen Sprachenbaums 200 verwendet wird.
Zum Beispiel sind "abspielen", "zeigen", "ansehen", "einstellen", "gießen" usw. eine Gruppe
von 'Verben', und für jedes 'Verb' gibt es ein 'Subjekt' ('subject'), wie beispielsweise "Fotos", "Rasen", "Film" usw. Die 'Subjekte' modifizieren die 'Verben', indem sie den Umfang
der Aktionen reduzieren, die durch die 'Verben' definiert werden.
-
Nach
den 'Subjekten' sind Kombinationen von 'Modifikatoren' vorhanden, wie beispielsweise als
ein Beispiel, das den Umfang weiter auf eine bestimmte Aktion reduziert.
Zum Beispiel fügt "Film" "The Matrix" "abspielen" als ein spezielles
Fallbeispiel "The
Matrix" hinzu. Andere 'Modifikatoren', wie beispielsweise "im Arbeitszimmer" oder "um 20 Uhr" können spezifiziert
werden, um die Aufgabe zu steuern. Jedoch können andere Modifikatoren die
Medien angeben, auf denen sich der Film "The Matrix" befindet. Zu beachten ist, dass diese
Struktur Aufgaben und keine Vorrichtungsaktionen spezifiziert. Vorrichtungsaktionen,
wie beispielsweise Lautstärke ändern oder
Kanäle
wechseln sind hierein keine Aufgaben, sondern Aktionen in einer
bestehenden Aufgabe, (z. B. Ändern
der Läutstärke beim "Fernsehen" "schauen"). Wortkombinationen in dieser Struktur 200 werden
nicht durch eine feste Gruppe von Begriffen für einen bestimmten Kontext
gefüllt,
(zum Beispiel die Wohnung), sondern durch standardisierte Beschreibungen
von Aufgaben, die in Vorrichtungen 40 vorhanden sind. Diese
Vorrichtungen werden dann abgefragt, um eine Gruppe von Begriffen
für jede
Ebene und Modifikatoren, die möglich
sind, auf Basis der Vorrichtungen zu erzeugen, die gegenwärtig angeschlossen
oder in dem System erreichbar sind. Dieser Ansatz macht es wesentlich
einfacher, eine Benutzeraufgabe zu spezifizieren, weil eine große irrelevante
Wortbasis es erschweren würde,
den korrekten Pseudosatz zu bestimmen.
-
Unter
folgender Bezugnahme auf die beispielhafte schematische Darstellung
in 4 werden die Vorrichtungen 40 nach einer
Gruppe von Begriffen für
jede Ebene, (d. h. Position im Pseudosatz), und Modifikatoren, die
möglich
sind, auf Basis der Vorrichtungen, die gegenwärtig in einem Heim-Netzwerk 85 (2)
angeschlossen oder erreichbar sind, als Aufgabenbeschreibungen 95 abgefragt.
Dieser Ansatz vereinfacht das Spezifizieren eines Aufgabenvorschlags,
weil anderenfalls eine große
irrelevante Wortbasis es erschweren würde, den korrekten Pseudosatz
zu bestimmen.
-
Eine
Erweiterung dieser Ausführungsform der
vorliegenden Erfindung besteht darin, nur die Gruppe von Begriffen
oder Modifikatoren, die möglich sind,
auf Basis der aktuellen Auswahl von anderen Begriffen oder Modifikatoren
zu bestimmen. Wenn zum Beispiel "Abspielen" und "auf CD-Spieler" ausgewählt sind,
dann, obwohl "Video" "Abspielen" eine mögliche Aufgabe ist, passt dies
nicht zu einer Aufgabenbeschreibung in dem System, weil Video nicht
auf dem CD-Spieler abgespielt werden kann. Stattdessen wird dem
Benutzer nur "Musik" angeboten, wenn dies
die einzige Option auf Basis der vorhandenen Vorrichtungen 40 ist.
-
Eine
weitere Erweiterung dieser Ausführungsform
der vorliegenden Erfindung besteht darin zu gestatten, dass die
Aufgabe teilweise spezifiziert wird, (z. B. "Musik" "Liedtitel" "Spielen"). Wenn mehrere Aufgaben übereinstimmen,
dann kann die Aufgabe durch Bestimmen einer Option für den Benutzer instantiiert
werden. Dies kann durch willkürliche
Auswahl, durch Lernen auf Basis früherer Anforderungen oder über komplexere
Ansätze
erfolgen. Damit wird Benutzern gestattet, ihre Entscheidungsfindung
und Benutzerschnittstellen-Optionen zu reduzieren, wenn sie wissen,
dass einige Optionen vorhanden sind, oder das Aufgaben-Automatisierungsmodul 50 kann eine
geeignete Auswahl für
die Benutzer auf Basis der bisherigen Benutzereingabe bestimmen.
Das Aufgaben-Automatisierungsmodul 50 kann auch verfügbare Optionen
einsetzen, die es auf Basis der verfügbaren Vorrichtungen und Ressourcen
bestimmt. Wenn zum Beispiel nur eine Musikvorrichtung vorhanden
ist, (ein CD-Spieler), dann werden Raum-Modifikatoref und Vorrichtungs-Auswahlen
als Teil jeder zu Grunde liegenden Maschinenautomatisierung während der
Laufzeit entfernt.
-
Daher
gestattet die vorliegende Erfindung den Benutzern, Aufgaben, aber
keine Vorrichtungsabläufe
zu spezifizieren; sie gestattet Anwendungen oder Vorrichtungen zu
spezifizieren, welche Funktionen sie durchführen; sie gestattet einer Benutzerschnittstelle,
nur nach Aufgaben zu suchen, die formuliert/ausgeführt werden
können
statt nach allen Aufgaben, die vorhanden sein könnten; sie stellt ein standardisiertes
Vokabular bereit, das es Benutzern gestattet, Aufgaben schnell zu
formulieren; und sie gestattet es einem kompakten Programm, Benutzeraufgaben
ohne komplexes Verarbeiten von natürlicher Sprache zu bestimmen.
-
Wie
angemerkt stellt die vorliegende Erfindung unter einem anderen Gesichtspunkt
ein Verfahren zum Beschreiben von Verbraucherelektronik-Vorrichtungen
unter Verwendung von getrennten Aufgabenbeschreibungen und Beschreibungen
der Vorrichtungsfunktion bereit. Also solche werden Vorrichtungsinteraktionen
unter Verwendung sowohl der Beschreibungen der Vorrichtungsfunktion
als auch der abstrakten Vorrichtungsinteraktionen formuliert. Auf diese
Weise werden Vorrichtungsbeschreibungen, (d. h. Vorrichtungsfunktionalität), und
Benutzeraufgaben, (d. h. Vorrichtungseinsatz), in einer Gruppe von umfangreichen
Beschreibungen logisch getrennt. Unter Verwendung dieser Beschreibungen
wird es möglich,
eine Gruppe von Verbraucherelektronikgeräten, (wie beispielsweise denen
in der Wohnung), und eine Gruppe von möglichen Arten zu beschreiben,
wie sie interagieren können.
Basierend auf der Komplexität
der Aufgabenbeschreibungen und der Vorrichtungsbeschreibungen können komplexe
sequenzielle, parallele und koordinierte Interaktionen formuliert
werden, um die Funktionalität
von Vorrichtungen in der Wohnung so zu automatisieren, dass sie
Benutzeraufgaben durchführen.
Damit wird Folgendes bereitgestellt: Interaktion von Vorrichtungen, die
in einer flexiblen Beschreibung statt als ein Steuereinheitsprogramm
beschrieben wird, das als schwarzer Kasten fungiert; Interaktion
von Vorrichtungen, die der Struktur der Wahrnehmung von der Verwendung
von Heim-Vorrichtungen durch die Benutzer genauer entsprechen; Aufgabenbeschreibungen,
die gestatten, dass Interaktionen sich nicht auf eine einzelne Vorrichtung
konzentrieren, (d. h. keine direkte Zuordnung von Vorrichtung zu
Aufgabe); und eine Beschreibung von Benutzeraufgaben als Aufgabenvorschläge, die
eine interoperable Beschreibung und einen Austausch von Beschreibungen
gestattet.
-
Unter
Bezugnahme auf 5 wird in einem Beispiel die
Beschreibung 300 von Verbraucherelektronik 40 als
zwei logische Beschreibungen bereitgestellt: Aufgabenbeschreibung 310,
(d. h. Benutzeraufgaben), und Vorrichtungsbeschreibung 320,
(d. h. Vorrichtungsfunktionalität).
Diese Beschreibungen 310, 320 stehen so in Beziehung,
dass ein Aufgabenvorschlag es einer Steuereinheit 30 gestatten
kann zu verstehen, welche möglichen
Vorrichtungen 40 in dem Heim-Netzwerk 85 verwendet
werden können, um
einen Aufgabenvorschlag auf Basis einer Aufgabenbeschreibung 310 auszuführen. Dieser
Typ von Beschreibung 310 weist viele Einsatzmöglichkeiten auf,
gestattet vorwiegend aber, dass Aufgaben von den Vorrichtungen 40 in
dem Heim-Netzwerk 85 abgekoppelt werden können. Außerdem gestattet
er, dass Aufgaben von Anwendungen des Typs schwarzer Kasten abgekoppelt
werden können,
die Aufgaben in vorab bestimmten und vordefinierten Reihenfolgen
für bekannte
vorhandene Vorrichtungen programmatisch durchführen.
-
Wie
in 5 gezeigt, umfasst eine Aufgabenbeschreibung 310 vier
Teile: (1) eine externe Aufgabenbeschreibung 330, (2) Aufgabeneigenschaften 340,
(3) Aufgabenfunktionalitäten 350 und
(4) Aufgabenaktionen 360. Die externe Aufgabenbeschreibung 330 umreißt die Pseudosätze, (zu
beachten ist, dass in diesem Beispiel die Aufgabenbeschreibung 95 in 2 und
die Aufgabenbeschreibung 330 in 5 die gleichen
sind). Aufgabeneigenschaften 340 formulieren nützliche
Informationen über
die Aufgabe, (z. B. dass sie optional ein Licht dimmen kann, wenn
eine DVD abgespielt wird, oder dass es bestimmten Benutzern gestattet
ist, diese Aufgabe zu verwenden). Aufgabenfunktionalitäten 350 formulieren
Funktionalität,
die für
die Aufgabe zum Erfüllen ihrer
Ziele erforderlich ist. Diese Funktionalität wird unter Verwendung einer
gemeinsam mit den Vorrichtungsbeschreibungen 320 genutzten
Technologie beschrieben und beschreibt die abstrakte Funktionalität einer
Vorrichtung 40. Zum Beispiel kann ein DVD-Spieler eine "AVSource" sein. Diese Funktionalität wird als
eine Hierarchie von Funktionalitäten
beschrieben. Des Weiteren kann ein DVD-Spieler als eine AV-Source
beschrieben werden, wenn sie irgendeine Form eines Multifunktionsbetriebs
aufweist. Oder einfach als "DVDAVSource", eine untergeordnete
Klasse von "AVSource", die DVD-Spieler beschreibt.
Schließlich
beschreiben Aufgabenaktionen 360 die Folgesteuerung und
Kombinationen der Vorrichtungen, die die aufgelisteten Funktionalitäten erfüllen.
-
Des
Weiteren weisen die Vorrichtungsbeschreibungen 320 eine ähnliche
Struktur wie die Aufgabenbeschreibungen auf und nutzen die Funktionalitätsbeschreibung
gemeinsam. Die Vorrichtungsbeschreibungen 320 können die
Funktionalität 350A enthalten,
wobei die Aufgabenfunktionalität 350 in der
Aufgabenbeschreibung 310 zur Funktionalität 350A in
der Vorrichtungsbeschreibung 320 zugeordnet wird. Die Funktionalität 350A kann
eine Funktionalitätsbeschreibung 370 enthalten,
eine Vorrichtungsbasis 380 und Vorrichtungsattribute, (z.
B. Bildschirmgröße, Merkmale
usw.). Die Funktionalitätsbeschreibung 370 umreißt die Funktionalität einer
Vorrichtung 40. Zum Beispiel ist ein CD-Spieler ein AudioSink, während ein
Transcoder eine Funktionalität als
ein MPEGAudio-Sink
und eine MPEGAudioSource aufweisen würde. Die Vorrichtungsbasis 380 beschreibt,
wie die Vorrichtung 40 auf Basis der Funktionalitätsbeschreibung 380 zu
steuern ist. Zum Beispiel kann sie aufrufbare URLs enthalten, um
den Lautstärkenpegel
zu ändern,
Vorrichtungsverbindungen einzurichten usw. Alternativ kann sie eine
Basis aufweisen, um eine UPNP-Vorrichtung durch Formulieren von
UPNP-Interaktionen, die zum Steuern der Vorrichtung notwendig sind,
zu steuern. Wie der Fachmann erkennen wird, können auch andere Vorrichtungssteuerprotokolle
verwendet werden.
-
Während der
Laufzeit werden die Aufgabenbeschreibungen 310 und die
Vorrichtungsbeschreibungen 320 von dem Aufgaben-Automatisierungsmodul 50 gelesen
und analysiert, um zu bestimmen, ob eine Gruppe von Vorrichtungen 40 vorhanden
ist, die mit den Aufgabenfunktionalitäten 350 übereinstimmt.
Ist dies der Fall, übernimmt
das Aufgaben-Automatisierungsmodul 50 die Vorrichtungsfunktionalitäten 350,
die mit der Aufgabe übereinstimmen,
als Kandidatenvorrichtungen für
die Aufgaben. Dann nimmt das Aufgaben-Automatisierungsmodul 50 Rekurs
auf die verfügbaren
Vorrichtungen 40, um eine Kombination von Vorrichtungen 40 zu bestimmen,
die die Funktionalitäten 350 der
Aufgabe erfüllen.
Gruppen von übereinstimmenden
Kombinationen von Aufgaben/Vorrichtungen werden von dieser Suche
zurückgegeben
und für
den Benutzer als ausgegebene Lösungen 75 auf
der GUI 60 (2) dargestellt. Der Benutzer
wählt einen
von ihm bevorzugten Pseudosatz, der einer Kombination von Aufgaben/Vorrichtungen
zugeordnet wird, und instantiiert die Aufgabe, indem die Aufgabenaktionen
verwendet werden, die wiederum Vorrichtungsaktionen erfordern, die
die Vorrichtungsbasis 380 in der Vorrichtungsbeschreibung 320 zum
Erfüllen
der Aufgabe verwenden.
-
Weil
Vorrichtungsbeschreibungen 320 von den Aufgabenbeschreibungen 310 in
der Beschreibung 300 nur logisch getrennt sind, hindert
nichts eine Vorrichtung 40 daran, ihre Funktionalität als eine Aufgabenbeschreibung
zusätzlich
zur Teilnahme an größeren Aufgaben
zu beschreiben, und die Beschreibungen können physikalisch kombiniert
werden. Eine alternative Implementierung ist das Aufbauen der Vorrichtungsbeschreibungen 320 und
Aufgabenbeschreibungen 310 unter Verwendung von semantischen
Web-Technologien,
um so eine gemeinsam genutzte semantische Ontologie (Sprache) zu
gestatten, die zum ausführlichen
Beschreiben aller Gesichtspunkte der Vorrichtungen und Aufgaben auf
eine Weise verwendet werden soll, in der ihre Semantik maschinenlesbar
ist. Obwohl sich die oben genannte Beschreibung im Kontext von Heim-Verbraucherelektronik
befindet, wie der Fachmann erkannt hat, kann die vorliegende Erfindung
in anderen Anwendungen verwendet werden, wie z. B. mobilen Vorrichtungen,
Desktop Computing, Enterprise Computing usw.
-
Als
solches kombiniert das Modul 50 Aufgabenbeschreibungen
und Vorrichtungsbeschreibungen, um zu bestimmen, ob eine Vorrichtung
für eine bestimmte
Aufgabe verwendet werden kann. Zum Durchführen einer Benutzeraufgabe
erhält
das Modul 50 Informationen über die Kombination von Aufgaben-
und Vorrichtungsbeschreibungen, um die Basisinformationen für die Vorrichtungen
zu bestimmen, wobei eine Aufgabenbeschreibung eine Folge von Aktionenskripts
enthält,
die das Modul 50 zum Automatisieren der Vorrichtungsaktionen
verwendet. Des Weiteren kombiniert das Modul 50 Basisinformationen
aus mehreren Vorrichtungsbeschreibungen mit einem Aufgabenbeschreibungsskript,
um ein spezifisches Skript zum Steuern der Vorrichtungen für eine Benutzeraufgabe
zu generieren. Informationen der Vorrichtungsbasis werden auf einer
Funktionalitätsbasis
aus den Vorrichtungsbeschreibungen spezifiziert. Ferner spezifizieren
Informationen der Vorrichtungsbasis Interaktionen und Parametereinstellungen,
um die Steuerung einer Vorrichtung festzulegen. Die Vorrichtungsbasis
kann in der Form eines einheitlichen Ressourcenbezeichners (URI)
(uniform resource identifier) spezifiziert werden, um die Aktion und
zu verwendenden Parameter zu beschreiben. Ferner können die
Informationen der Vorrichtungsbasis mehrere Basisinformationenabschnitte
enthalten, die kombiniert werden, um die erforderliche Funktionalität zu erfüllen. Außerdem kann
die Vorrichtungsbeschreibung mehrere Basisinformationenabschnitte enthalten,
die zu verschiedenen Protokollen zugeordnet sind, die von einer
Steuerungs- oder Vorrichtungs-Software verwendet werden.
-
Im
Folgenden wird eine beispielhafte Implementierung des Aufgaben-Automatisierungssystems 10 gemäß einer
Ausführungsform
der vorliegenden Erfindung unter Verwendung der oben genannten Verfahren
zum Erweitern der Funktionalität
und Intelligenz der zu Grunde liegenden Vorrichtungen 40 beschrieben.
Wie in 2 gezeigt, implementiert das Aufgaben-Automatisierungssystem 10 Techniken
für den
Benutzer, um vom System 10 einen Aufgabenvorschlag anzufordern,
und Techniken, um den Aufgabenvorschlag zu interpretieren und zu
verarbeiten. In dieser Ausführungsform
wurden mehrere semantische Web-basierte Werkzeuge und Techniken
so angepasst, dass sie ein effizientes System bilden, einschließlich der
Entwicklung von Ontologien für
Entitäten,
(z. B. Vorrichtungen), in einer semantisch reichen Auszeichnungssprache.
Die Ontologien sind festgelegt (framed), um Heim-Vorrichtungen 40 und Benutzeraufgabenanforderungen 95 darzustellen, und
werden im Folgenden ausführlich
beschrieben. Das Aufgaben-Automatisierungsmodul 50 stellt
Aufgabenvorschläge
für den
Benutzer bereit gaben-Automatisierungsmodul 50 stellt Aufgabenvorschläge für den Benutzer
bereit und empfängt
Anforderungen von dem Benutzer, um die Ausführung von Aufgabenvorschlägen, die
vom Benutzer ausgewählt
wurden, zu automatisieren. Das Aufgaben-Automatisierungsmodul 50 verwendet
eine Inferenz-Maschine 65 (1B)
als eine oberste Schicht in Verbindung mit der Benutzerschnittstelle 60 (2),
um einen ausgewählten
Aufgabenvorschlag 95 zu verarbeiten, indem dieser analysiert
wird, um die entsprechenden Vorrichtungen 40 zu erfassen,
die den ausgewählten Aufgabenvorschlag
ausführen
können,
und um diese Informationen an die untersten Schichten (z. B. Modul 70)
zur Ausführung
weiterzugeben. In einem Beispiel wird eine geeignete Auszeichnungssprache
zusammen mit der Inferenz-Maschine 65 verwendet, um über den
Inhalt zu urteilen, der in dieser Sprache formuliert ist, durch
die die Entitäten
miteinander kommunizieren und sich untereinander verstehen. In einer
Version werden semantische Technologien verwendet, um Vorrichtungsfunktionalität und Aufgaben zu
beschreiben, um eine funktionalitätszentrierte Kopplung von Vorrichtungen
zu unterstützen.
-
Zum
Beispiel befinden sich typischerweise die folgenden Typen von Vorrichtungen
40 in
dem Heim-Netzwerk
85:
TV | – Audio/Video
zeigen |
DVD | – Audio/Video
abspielen, Fotos zeigen |
PC | – Audio/Video
zeigen, Fotos zeigen, Spiele spielen, AV-Source |
Receiver | – Source
mit Senke verbinden, Audio abspielen, Radio spielen |
Kühlschrank | – im Web
surfen (surf web), Audio/Video abspielen, Steuerung |
Beleuchtung | – Steuerung |
Telefone | – Audio
abspielen, Benutzer anrufen, Benutzerdatenbank |
PVR | – Audio/Video
aufzeichnen, Pause, Abspielen, Fotos speichern, |
| – Fotos
zeigen |
Kameras | – Audio/Video
aufzeichnen, Audio/Video abspielen, Streaming von |
| – Audio/Video
usw. |
-
Beispielhafte
Aufgaben, die in diesem Heim-Netzwerk 85 möglich sind,
können
umfassen:
"Garten" "gießen"
"Film" "The Matrix" "in
Surround-Sound" "spielen"
"Fotos" "Brasilien" "zeigen"
"MP3-Spieler" "synchronisieren"
"Beleuchtung" "dimmen"
"Meine Musik" "im Wohnzimmer" "spielen"
-
Die
oben genannten Beispiele (Szenarios) verwenden z. B. eine Pseudosatz-Sprache,
um einen Aufgabenvorschlag zu formulieren, wogegen z. B. eine semantische
Sprache verwendet wird, um die Vorrichtungen und Funktionalitäten zu beschreiben, und
eine Inferenz-Maschine zum Beurteilen dieses Wissens und Ausführen einer
Aufgabenanforderung verwendet wird. In einem Beispiel stellt die
zum Formulieren von Ontologien/Regeln gewählte Sprache Folgendes bereit:
eine semantische Verständigungsebene,
einen hohen Grad an Flexibilität
und Aussagekraft, Unterstützung
für Typ
und Einordnung, Unterstützung
für Datentypen
und Äußerung von
Einschränkungen
und Bedingungen. Eine Wissensbasis 105 ist in dem Aufgaben-Automatisierungsmodul 50 (2)
enthalten.
-
In
einem anderen Beispiel können
semantische Web-Technologien in dem Aufgaben-Automatisierungsmodul 50 verwendet
werden. Das semantische Web ist eine Erweiterung des derzeitigen
Web, in dem Informationen eine definierte Bedeutung gegeben wird,
wodurch Computer und Menschen in die Lage versetzt werden, zusammenwirkend
zu arbeiten. Eine Auszeichnungssprache, die für das semantische Web entwickelt
wurde, stellt ein gemeinsames Verständnis zwischen den verschiedenen
Entitäten bereit.
Beispielhafte semantische Web-Technologien umfassen DAML+OIL, DAML-S,
OWL usw., die für das
semantische Web entwickelt worden sind. In einem Beispiel des Aufgaben-Automatisierungsmoduls 50 werden
Vorrichtungs- und Aufgaben-Ontologien 110 unter Verwendung
von DAML+OIL festgelegt und werden in die Wissensbasis 105 dann
geladen. Eine Reihe von Attributen und Funktionalitäten von Vorrichtungen 40 wird
identifiziert, und eine Ontologie wird festgelegt, die auch die
Beziehungen zwischen den Attributen erfasst. Des Weiteren werden Vorrichtungs-Instances 115 in
DAML+OIL auf Basis der Ontologie festgelegt, wobei eine Instance
im Wesentlichen eine semantische Beschreibung der Vorrichtung im
Hinblick auf ihre Schnittstellen und Funktionalitäten ist.
Wie durch den Aufgabenautomatisierungsablauf in 1B gezeigt,
ist der vom Benutzer ausgewählte
Aufgabenvorschlag nach Erfordernis in eine oder mehrere Aufgaben unterteilt
und den Funktionalitäten
von Aufgaben zugeordnet, die von den verfügbaren Vorrichtungen durchgeführt werden
können.
Die Zuordnung wird durch Ableiten (Beurteilen) der in der Ontologie
formulierten Informationen und Ausführen zusätzlicher Regeln über Status/Voreinstellungen
von Vorrichtung/Benutzer ermöglicht.
-
Unter
folgender Bezugnahme auf die Beispiele in 2 und 4 befindet
sich das Aufgaben-Automatisierungsmodul 50 in der Steuereinheit 30,
die mit dem Modul interagiert, das Schnittstellen für das Aufgaben-Automatisierungsmodul 50 bereitstellt,
um die Vorrichtungsbeschreibungen zu erhalten, wann immer sie benötigt werden.
In einer Ausführungsform
werden DAML+OIL-Aufgaben-Instances 120, die von den vorhandenen
Vorrichtungen bereitgestellt werden, in die Wissensbasis 105 aufgenommen,
und vordefinierte Benutzer-Voreinstellungen 130, die als
Jess-Regeln und/oder DAML+OIL geschrieben sind, werden ebenfalls
in die Wissensbasis 105 geladen. Des Weiteren werden die Vorrichtungsvoreinstellungen
in Bezug auf die angeforderte Aufgabe und Attributvoreinstellungen
in Bezug auf die für
die Aufgabe benötigten
Funktionalitäten
aufgenommen. Alle möglichen 'Verben', (z. B. "Spielen"), und 'Subjekte', (z. B. "Film"), werden aus der
Wissensbasis 105 abgerufen und auf der GUI 60 angezeigt.
-
Als
solche wird die Aufgabenanforderung des Benutzers über die
GUI 60 als eine Gruppe von Feldern 135 erhalten,
(z. B. 2) und als Eingabe in die Wissensbasis 105 des
Aufgaben-Automatisierungsmoduls 50 bereitgestellt. In einem
Beispiel enthält
die Eingabe, die von dem Benutzer erhalten wird, alle optionalen
Felder. In einem anderen Beispiel enthält die von dem Benutzer erhaltene
Eingabe:
- a) Pflichtfelder: ein Verb, ein Subjekt
und Inhalt, Ort, Endvorrichtung
- b) optionale Felder: Attribute, (z. B. Surround-Sound, Breitwandbildschirm,
usw.)
-
In
diesem Beispiel, nachdem der Benutzer ein 'Verb und ein 'Subjekt' gewählt
hat, kommuniziert das Aufgaben-Automatisierungsmodul 50 mit
einem Protokollstapel in dem Modul 70, um sämtlichen
verfügbaren
Inhalt zu erhalten, der im Kontext des 'Subjekts' relevant ist.
-
Nachdem
es einen vollständigen,
vom Benutzer ausgewählten
Aufgabenvorschlag erhalten hat, analysiert das Aufgaben-Automatisierungsmodul 50 den
Aufgabenvorschlag und die entsprechende Aufgabenbeschreibung 95 und
berechnet alle möglichen
Kombinationen von denjenigen Vorrichtungen 40, die der
Anforderung als Lösungen
dienen können.
Dann wendet das Aufgaben-Automatisierungsmodul 50 die Voreinstellungen
an und ordnet die Lösungen
in eine Rangfolge, bevor es sie zum Anzeigen als Ausgabe 75 für den Benutzer über die
GUI 60 sendet.
-
Wie
angemerkt, interagiert das Aufgaben-Automatisierungsmodul 50 mit
dem Benutzer über
die GUI 60 und interagiert mit der Inferenz-Maschine 65 (1B) und einer Regel-Maschine (2). Das
Aufgaben-Automatisierungsmodul 50 umfasst des Weiteren
die Wissensbasis 105, die zum Speichern von Ontologien 110 in
der Form von Fakten dient und Regeln 130 auf diese Daten
anwendet.
-
Unter
folgender Bezugnahme auf die Ablaufdiagrammschritte von 6 wird
ein beispielhaftes Ablaufszenariobeschrieben:
- 1.
In Schritt 400 werden während
der Inbetriebnahme die Vorrichtungs- und Aufgaben-Ontologien 110 in
die Wissensbasis 105 aufgenommen, wobei der Ontologieinhalt
in einen Fakt im Format '(Eigenschaftswert
Unterklasse Mensch Person)' (PropertyValue
subclass man Person) umgewandelt wird.
- 2. In Schritt 405 werden Instances von Vorrichtungen
und Aufgaben 115 ebenfalls in die Wissensbasis 105 aufgenommen.
In dem Beispiel hierin werden Ontologien 110 für audiovisuelle
(AV) Vorrichtungen implementiert, z. B. TV, CD-Spieler, DVD-Spieler,
IPAQ, Lautsprecher, Transcoder usw.).
- 3. Im Schritt 410 werden nach dem Laden der Ontologien 110 und
der Instances 115, 120'Verben' und 'Subjekte', die für die von den Vorrichtungen 40 unterstützten 'Verben' und 'Aufgaben' relevant sind, aus
den Fakten in der Wissensbasis 105 extrahiert.
- 4. In Schritt 415 werden auf ähnliche Weise die 'Funktionalitäten', die zum Durchführen der
oben identifizierten Aufgaben erforderlich sind, ebenfalls aus den
Fakten in der Wissensbasis 105 extrahiert und zum leichteren
Wiederabrufen als neue Fakten gespeichert.
- 5. In Schritt 420 spezifiziert/wählt der Benutzer unter Verwendung
der GUI 60 einen Aufgabenvorschlag 95, indem er
z. B. ein 'Verb', ein 'Subjekt', das für den Kontext
des 'Verbs' relevant ist, und
einen relevanten Inhalt, (dessen Kategorie das ausgewählte Subjekt
ist), wählt.
Der Benutzer kann auch einen bevorzugten Ort und/oder eine End-Vorrichtung 40 spezifizieren,
wo der angeforderte/ausgewählte
Aufgabenvorschlag durchgeführt
werden soll.
- 6. In Schritt 425 werden die Vorrichtungsfunktionalitäten, die
zum Durchführen
der Aufgabe erforderlich sind, identifiziert, (wobei diese Informationen
vorzugsweise vorher berechnet und als leicht wiederabrufbare Fakten
gespeichert werden, so dass in diesem Schritt wenig Zeit verbraucht wird).
- 7. In Schritt 430 identifiziert das Aufgaben-Automatisierungsmodul 50 die
Vorrichtungen 40, die die benötigten Funktionalitäten als
Lösungen
besitzen. Wenn die Aufgabe zahlreiche Funktionalitäten erfordert,
identifiziert das Aufgaben-Automatisierungsmodul 50 eine
Gruppe von Vorrichtungen 40, die die Aufgabe gemeinsam
durchführen/bedienen
können.
- 8. In Schritt 435, nachdem die Gruppe von Vorrichtungen 40 identifiziert
worden ist, die den vom Benutzer ausgewählten Aufgabenvorschlag durchführen können, werden
die Benutzervoreinstellungen 130 auf die Gruppe von Lösungen angewendet
und diese in eine Rangfolge eingeordnet.
- 9. In Schritt 440 wird die Gruppe von Lösungen schließlich für den Benutzer
als Ausgabe 75 in der aufsteigenden Reihenfolge ihrer Rangordnung angezeigt.
Eine Beispiel-Rangfolge für
ein Heim-Netzwerk liegt vor, wenn das Wohnzimmer in der Wohnung
ein Plasma-Fernsehgerät,
einen PC, Lautsprecher und ein IPAQ aufweist. Der Benutzer hat Voreinstellungen
vorgenommen wie zum Beispiel: wenn ein Film abgespielt wird, soll eine
Vorrichtungsbildschirmgröße von mehr
als 40 Zoll gewählt
werden, und wenn Audio abgespielt wird, werden Lautsprecher vor
IPAQ bevorzugt. Für
einen Aufgabenvorschlag "Film 'The Matrix' im Wohnzimmer abspielen" identifiziert das Aufgaben-Automatisierungsmodul 50 die
folgenden Kombinationen von Vorrichtungen (Lösungen), die den angeforder ten/ausgewählten Aufgabenvorschlag
durchführen
können:
PC und Lautsprecher, PC und IPAQ und Plasma-Fernsehgerät. Die Lösungen werden
gemäß den oben
genannten Voreinstellungen des Benutzer in eine Rangfolge eingeordnet
und dem Benutzer angezeigt als: (1) Plasma-TV, (2) PC und Lautsprecher, (3)
PC und IPAQ.
-
Der
Benutzer wählt
die meistbevorzugte Kombination von Vorrichtungen 40 aus
den Lösungen
aus und instantiiert die Aufgabe durch Verwenden von Aufgabenaktionen,
die wiederum Vorrichtungsaktionen erfordern, die die Vorrichtungsbasis 380 in
der Vorrichtungsbeschreibung 320 (5) verwenden,
um die Aufgabe zu erfüllen.
Wie angemerkt, sobald der Benutzer eine Gruppe von Vorrichtungen 40 wählt, um
die angeforderte Aufgabe auszuführen,
werden geeignete Schnittstellen auf den Vorrichtungen, die für die Aufgabe
erforderlich sind, von dem Aufgaben-Automatisierungsmodul 50 aufgerufen.
-
Unter
Bezugnahme auf die Ablaufdiagrammschritte von 7 wird
im Folgenden ein Beispielbetrieb einer Ausführungsform des Benutzerschnittstellenmoduls 60 beschrieben.
Der Benutzer kann eine Aufgabenanforderung inkrementell unter Verwendung
des GUI-Moduls in vier Schritten zusammenstellen, wie durch das
folgende Beispiel beschrieben wird:
- 1. In Schritt 500 wird
eine Liste aller gültigen 'Verben' in der GUI 60 angezeigt.
Der Benutzer kann ein 'Verb' aus der Liste wählen und
dann auf 'Weiter' klicken, um mit
dem nächsten
Schritt fortzufahren (d. h. Schritt 505). Vor dem Anklicken
von 'Weiter' kann der Benutzer
das ausgewählte 'Verb' jederzeit ändern.
- 2. In Schritt 505 wird eine Liste aller 'Subjekte', die für das gewählte 'Verb' relevant sind, in
der GUI 60 angezeigt. Der Benutzer kann ein 'Subjekt' aus der Liste wählen und
dann auf 'Weiter' klicken, um mit
der nächsten
Stufe fortzufahren (d. h. Schritt 510). Vor dem Anklicken
von 'Weiter' kann der Benutzer
das ausgewählte 'Subjekt' jederzeit ändern. Der
Benutzer kann auch auf 'Zurück' oder 'Von vom' klicken, um zur
vorherigen Stufe (d. h. Schritt 500) zurückzukehren
und das ausgewählte 'Verb' zu ändern.
- 3. In Schritt 510 wird eine Liste von allem 'Inhalt' ('content') angezeigt, der
für das
gewählte 'Subjekt' relevant ist. Der
Benutzer kann irgendeinen 'Inhalt' aus der Liste wählen und
dann auf 'Weiter' klicken, um mit
dem nächsten
Schritt, (d. h. Schritt 515), fortzufahren. Vor dem Anklicken
von 'Weiter' kann der Benutzer
den ausgewählten 'Inhalt' jederzeit ändern. Der
Benutzer kann auch auf 'Zurück' klicken, um zum
vorherigen Schritt, (d. h. Schritt 505), zurückzukehren
und das ausgewählte 'Subjekt' zu ändern, oder
auf 'Von vorn' klicken, um zum
Schritt 500 zurückzukehren
und das ausgewählte 'Verb' zu ändern. Während jedem
der oben genannten Schritte oder am Ende von Schritt 510 kann
der Benutzer den gewünschten Ort
für die
Ausführung
der Aufgabe und/oder die Endvorrichtung einstellen, die die gesamte
Aufgabe oder einen Teil der Aufgabe durchführen soll.
- 4. Im Schritt 515 urteilt das Aufgaben-Automatisierungsmodul 50 intern über gewähltes 'Verb', 'Subjekt', 'Inhalt', die Benutzervoreinstellungen, (wie
beispielsweise über
die GUI vorgenommene Einstellungen von Ort, Endvorrichtung sowie
andere Voreinstellungen, die als Fakten und Regeln spezifiziert
sind), und die Fakten über
vorhandene Vorrichtungen und Aufgaben, die es in seiner Wissensbasis 105 besitzt.
Nach der Beurteilung legt das Aufgaben-Automatisierungsmodul 50 alle möglichen
Kombinationen von Vorrichtungen (d. h. Lösungen) fest, die die angeforderte
Aufgabe durchführen
können.
Die Gruppe von erhaltenen Lösungen
wird in dem Aufgaben-Automatisierungsmodul 50 in eine Rangfolge
eingeordnet und schließlich
dem Benutzer über
die GUI 60 angezeigt, (d. h. in der aufsteigenden Reihenfolge
der Rangfolge). Eine Beispiel-Verarbeitung in Schritt 515 wird
im Folgenden beschrieben. Das Aufgaben-Automatisierungsmodul 50 liest
Aufgaben- und Vorrichtungsbeschreibungen ein und speichert diese
Informationen als Fakten in der Wissensbasis 105. Die Inferenz-Maschine 65 interpretiert
die Aufgaben- und Vorrichtungsbeschreibungen und leitet neue Informationen
ab, die nicht direkt in den Aufgaben- und Vorrichtungsbeschreibungen
spezifiziert sind, die aber in Form von Klassen und Eigenschaften
und Beziehungen untereinander spezifiziert sind. Das Aufgaben-Automatisierungsmodul 50 kann
diese Informationen verarbeiten und ändern.
-
In
einem Beispiel umfassen die grundlegenden Schritte in dem Aufgaben-Automatisierungsmodul 50:
- 1. Einlesen von Aufgaben- und Vorrichtungsbeschreibungen.
- 2. Anwenden von Semantik auf die Aufgaben- und Vorrichtungsbeschreibungen.
- 3. Verwenden eines Parsers zum Umwandeln der Aufgaben- und Vorrichtungsbeschreibungen,
die in die Wissensbasis 105 geladen sind.
- 4. Anwenden von anderen Regeln und Abfragen als oben beschrieben.
-
Wie
angemerkt, werden die Ontologien 110 als ein Mechanismus
zum Beschreiben von Aufgaben, Vorrichtungen und Benutzervoreinstellungen festgelegt.
Im Allgemeinen ist eine Ontologie eine Spezifikation einer Konzeptualisierung;
sie ist eine Beschreibung, (wie in einer formalen Spezifikation
eines Programms), von den Konzepten und Beziehungen, die für eine Entität oder eine
Sammlung von Entitäten,
(z. B. Vorrichtungen, Benutzer usw.), vorhanden sein können. In
diesem Beispiel werden Vorrichtungen und Aufgaben auf Basis ihrer
grundlegenden Attribute/Eigenschaften und/oder bereitgestellten oder
erforderlichen Funktionalitäten
beschrieben. Die Beschreibungen werden unter Verwendung einer Auszeichnungssprache
verschlüsselt,
wobei die Aufgabenanforderung des Benutzers auf Basis dieser Beschreibung
verstanden, verarbeitet und bedient werden kann.
-
Des
Weiteren können
Attribute des 'Funktionalitäts- und
Inhalts-Typs' in
die Ontologien 110 aufgenommen werden. In der Beispielimplementierung der
Ontologien 110 hierin wird für jede Funktionalität, die eine
Vorrichtung 40 bereitstellt, auch spezifiziert, welche
Art von Daten, (der Inhalts-Typ), als Eingabe akzeptiert wird, von
welchen Quellen die Vorrichtung 40 die Eingabe akzeptieren
kann und, (sofern überhaupt),
welche Art von Daten als Ausgabe erzeugt wird. Die ist ausreichend,
um Anforderungen zu beantworten, die sehr allgemein sind, und die
den Inhaltstyp nicht spezifizieren. Wenn das Aufgaben-Automatisierungsmodul 50 jedoch
einen Suchlauf auf Inhaltstyp-Basis für Vorrichtungen 40 bereitstellen soll,
wird ein Verfahren zum Darstellen der Funktionalität, die den
Inhaltstyp, (z. B. mp3render), nicht als separates Attribut enthält, benötigt. Dies
kann durch die Aufnahme von 'Funktionalitäts- und
Inhaltstyp'-Attributen
erreicht werden, die in die Ontologien 110 aufgenommen
werden können.
-
Außerdem kann
eine Ontologie zum Formulieren von Benutzervoreinstellungen 130 verwendet werden.
In der Beispielimplementierung hierin können die Voreinstellungen 130 in
einer Auszeichnungssprache in ähnlicher
Weise formuliert werden wie die Vorrichtungs-Instances 115 und
Aufgaben-Instances 120 spezifiziert werden. Um eine solche
Beschreibung in einem Standard-/Universal-Format zu erstellen und
die Beziehung zwischen den verschiedenen Attributen einer Gruppe
von Voreinstellungen besser zu formulieren, kann eine Ontologie
verwendet werden, auf deren Basis Instances der Voreinstellungen
eines Benutzers festgelegt werden können.
-
Mechanismen
zum Verstehen von Voreinstellungen können ebenfalls implementiert
werden. Als ein Beispiel kann das Aufgaben-Automatisierungsmodul 50 eine
Voreinstellung verstehen, wie beispielsweise 'Vorrichtungen mit einer größeren Bildschirmgröße beim
Abspielen eines Films wählen". Vorzugsweise kann
das Aufgaben-Automatisierungsmodul 50 verstehen, dass "Plasma-Fernsehgerät ist immer
besser als jede andere Art von Fernsehgerät, und sogar eines mit der
größten Bildschirmgröße". Des Weiteren können allgemeinere
Ontologien aufgenommen werden, die sich auf alle Arten von Vorrichtungen
anwenden lassen würden,
selbst auf diejenigen Vorrichtungen, die zum Zeitpunkt der Implementierung
unbekannt sind.
-
Obwohl
sich die Beispiele hierin auf Verbraucherelektronik und Heim-Netzwerke
beziehen, die der Fachmann erkennt, kann die vorliegende Erfindung
auf andere Vorrichtungen und Architekturen angewendet werden, wie
beispielsweise mobile Personal-Vorrichtungen, Desktop-Aufgaben,
komplexe Untemehmenssysteme usw. Des Weiteren, obwohl in dieser
Beschreibung eine Ausführungsform
des Aufgaben-Automatisierungssystems in Verbindung mit Verbraucherelektronik
beschrieben worden ist, erkennt der Fachmann, dass die vorliegende
Erfindung in anderen Anwendungen nützlich ist, in denen eine bekannte
Gruppe von Entitäten
in Aufgaben interagiert und ein einfaches Verfahren zur Automatisierung
dieser Entitäten
durch den Benutzer benötigt,
(z. B. eine Produktionsstraße,
um eine Reihe von Abläufen
oder Konfigurationen an Montagerobotern anzugeben). Weil logische
Trennungen von Vorrichtungen vorgenommen werden, besteht des Weiteren
kein Grund, warum sie nicht zu physikalischen Vorrichtungen kombiniert
werden sollten. Obwohl eine einzelne Steuereinheit/Automatisierungsmodul hierin
als Beispiel beschrieben ist, kann eine Gruppe von Vorrichtungen
an Aktionen der Steuereinheit oder zum Bestimmen von Vorrichtungsautomatisierungen
teilnehmen.
-
Obwohl
einige bevorzugte Ausführungsformen
gezeigt und beschrieben worden sind, ist dem Fachmann klar, das
verschiedene Änderungen
und Modifizierungen vorgenommen werden könnten, ohne von dem Umfang
der Erfindung, wie er in den Ansprüchen im Anhang definiert ist,
abzuweichen.