-
HINTERGRUND
-
Das Aufkommen cloudbasierter Dienste, Suchmaschinen, mobiler Anwendungen und standortbezogener Geräte hat die Nützlichkeit mobiler Benutzergeräte im Verlauf des letzten Jahrzehnts erheblich erweitert. Viele dieser Benutzergeräte stellen nunmehr kontextbezogene Dienste und Anwendungen neben Sprach- und Datenzugriff bereit. Außerdem sind bei den vielen jüngsten Fortschritten in Verarbeitungssystemen viele bisher getrennte Anwendungen und Dienste jetzt in der Lage, zusammenzuarbeiten, um verbesserte Fähigkeiten und Benutzererlebnisse bereitzustellen.
-
Viele Anwendungsdienste, die für Benutzer verfügbar sind, werden durch Verwendung von Befehlseingaben instanziiert. Ein solcher Dienst ist das Erstellen von Aktionsauslösern. Ein Benutzer kann zum Beispiel die Eingabe „erinnere mich daran, heute Abend Milch zu kaufen“ in ein Smartphone sprechen (oder eingeben), woraufhin das Smartphone mithilfe einer Befehls-Parsing-Anwendung (oder alternativ durch Kommunizieren mit einem Befehls-Parsing-Dienst) einen Aktionsauslöserprozess aufruft, der eine Erinnerungsmitteilung erstellen, Nachrichten und/oder Kalendereinträge erstellen und zusätzliche Informationen vom Benutzer anfordern kann. Bei diesen Informationen kann es sich um eine Zeit handeln, falls der Benutzer möchte, dass der Aktionsauslöser zu einer bestimmten Zeit durchgeführt wird, und/oder um einen Standort, falls der Benutzer möchte, dass der Aktionsauslöser durchgeführt wird, wenn der Benutzer am Standort ankommt. Obgleich die Einstellung jener Aktionsauslöser ein sehr nützliches und relativ flüssiges Benutzererlebnis ist, sind verfügbare Auslöser bisher auf eine Reihe von Optionen beschränkt gewesen, die durch eine Anwendung oder einen Dienst bereitgestellt wurden.
-
KURZDARSTELLUNG
-
Diese Spezifikation bezieht sich auf das Definieren und Überwachen eines Ereignisses für eine physische Entität und die Durchführung einer Aktion in Reaktion auf das Auftreten des Ereignisses.
-
In einem Aspekt beinhaltet ein Verfahren das Empfangen von Daten, die ein Ereignis für eine physische Entität angeben, wobei das Ereignis teilweise durch ein physisches Umgebungsmerkmal angegeben wird, für das das Auftreten des Ereignisses durch die Datenverarbeitungsvorrichtung überwacht werden soll; Empfangen von Daten, die eine Aktion angeben, die dem Ereignis zugeordnet ist und in Reaktion auf das Auftreten des Ereignisses vorgenommen werden soll; Überwachen auf das Auftreten des Ereignisses für die physische Entität; und in Reaktion auf das Auftreten des Ereignisses, Veranlassen der Aktion, die dem durchzuführenden Ereignis zugeordnet ist. Weitere Ausführungsformen dieses Aspektes beinhalten entsprechende Systeme, Vorrichtungen und Computerprogramme, die dafür konfiguriert sind, die auf Computerspeichergeräten kodierten Handlungen des Verfahrens auszuführen.
-
In einem anderen Aspekt beinhaltet ein Verfahren das Empfangen von Daten, die ein physisches Umgebungsmerkmal angeben, für das ein Ereignis für eine physische Entität überwacht werden soll; in Reaktion auf die Daten, die das Umgebungsmerkmal angeben, das Bereitstellen von Daten, die ein Benutzergerät veranlassen, ein Aktionsauslöser-Menü anzuzeigen, das eine jeweilige Ereignisauswahleingabe für jedes des einen oder der mehreren Ereignisse anzeigt, die dem physischen Umgebungsmerkmal zugeordnet sind; Empfangen von Daten, die eine Auswahl am Benutzergerät von einer oder mehreren Ereignisauswahleingaben angeben, die ein Ereignis angeben; Zuordnen, zu dem Ereignis, einer Aktion, die in Reaktion auf das Auftreten des Ereignisses vorgenommen werden soll; und Bereitstellen von Daten, die das Ereignis für die physische Entität angeben, und Daten, die die Entität angeben, die dem Ereignis zugeordnet ist. Weitere Ausführungsformen dieses Aspektes beinhalten entsprechende Systeme, Vorrichtungen und Computerprogramme, die dafür konfiguriert sind, die auf Computerspeichergeräten kodierten Handlungen des Verfahrens auszuführen.
-
Die Ereignisse und Aktionen können unabhängig von der physischen Entität sein, insofern als sie nicht aus einer Liste ausgewählt werden müssen, die von der physischen Entität abhängig ist, sondern stattdessen vom Benutzer gemäß einer oder mehreren Eingaben definiert werden können. Ähnlich können die Ereignisse und Aktionen auch voneinander unabhängig sein, insofern als ein bestimmtes Ereignis kategorisch, semantisch oder sonst nicht mit der Aktion verbunden sein muss, die durchgeführt werden soll. Die Zuordnung eines Ereignisses und einer Aktion kann in der Tat aus Datenbeziehungsperspektive vollständig zufällig sein. Dies befreit Entwickler davon, Sätze von Zuordnungen und Aktionsauslöser in Softwareanwendungen und Diensten vorzudefinieren. Außerdem werden die resultierenden Ereignisse und Zuordnungen, die durch den Benutzer definiert werden, durch einfache Regelstrukturen implementiert und benötigen keine mehreren, komplexen Abhängigkeiten, die beim Arbeiten mit einem vordefinierten Satz von Ereignissen und Auslösern erforderlich wären (falls überhaupt möglich). Ein Benutzer kann zum Beispiel sein Auto waschen wollen, wenn er sich jedoch darauf vorbereitet, merkt er, dass er kein Autoseifenkonzentrat mehr hat, und bestellt daher eine Flasche Seifenkonzentrat von einem Online-Händler. Der Benutzer kann dann, durch Verwendung des in dieser Spezifikation beschriebenen Systems, ein Ereignis als Paket definieren, das an der Türschwelle des Benutzers präsentiert wird, und die Aktion, die dem Ereignis zugeordnet sein kann, kann eine Erinnerungsmitteilung sein, ein Auto zu waschen. Somit führt, bei Annahme, dass der Benutzer kein anderes Paket als das Reinigungsmittel erwartet, die Erkennung des Pakets an der Türschwelle des Benutzers zur Aktion, eine Erinnerungsmitteilung zu präsentieren, das Auto zu waschen.
-
Das System ermöglicht somit die Zuordnung mehrerer physischer Entitäten zu mehreren verschiedenen möglichen Ereignissen und mehreren verschiedenen Aktionen. Dies ermöglicht einem Benutzer beispiellose Flexibilität bei der Anordnung von Aufgaben, Zeitplänen und Aktionen gemäß komplett einzigartigen und bisher unentdeckten Entitäts- und Aufgabenbeziehungen, die aus den einzigartigen Bedürfnissen des Benutzers entstehen. Somit macht eine solche Fähigkeit die Notwendigkeit für einen komplexen strukturieren Regelsatz überflüssig, der einen komplexen Satz potenzieller Aktionen und Auslöser erfordern würde, um solche vielfältigen und unvorhersagbaren Bedürfnisse mehrerer verschiedener Benutzer, falls überhaupt möglich, abzudecken. Demgemäß wird eine erhebliche Menge an Datenspeicher eingespart. Außerdem werden Regelaktualisierungen und Software-Updates, die sonst erforderlich wären, um viele aufkommende Bedürfnisse der Benutzer abzudecken, beseitigt, was zu Einsparungen von Entwicklungskosten und Bandbreiteneinsparungen führt.
-
Ein Benutzer kann Aktionsauslöser auf Basis eines viel breiteren Bereichs des Auftretens oder Ereignissen erstellen, als bisher möglich. Ein Auslöser kann eine Erinnerungsmitteilung für einen Benutzer aufrufen, damit die auf Basis eines solchen Auslösers durchzuführende Aktion, wie durch die Erinnerungsmitteilung aufgefordert, manuell durchgeführt wird. Alternativ kann ein Auslöser einfach Informationen für die Interessen des Benutzers bereitstellen, wobei nicht notwendigerweise weitere Aktionen impliziert sind. Als eine andere Alternative kann ein Benutzer einen Auslöser einstellen, um gewisse Aktionen automatisch durchzuführen. Als noch weitere Alternative kann ein Benutzer einen Auslöser einstellen, um bei dem Auftreten eines Ereignisses eine einzelne Genehmigungsaktion zu präsentieren, um eine nachfolgende Aktion zu genehmigen, woraufhin bei einer solchen Genehmigung die nachfolgende Aktion durchgeführt wird. In noch einer anderen Alternative können automatische Aktionen durch Drittanbieteranwendungen oder -Systeme durchgeführt werden, die er mit dem hierin beschriebenen System übermitteln kann.
-
Aktionsauslöser, die auf Ereignissen und Aktionen basieren, die bei Auftreten der Ereignisse durchgeführt werden sollen, können von einer speziellen Erinnerungsmitteilungsanwendung oder von einer anderen Anwendung, wie z. B. einem Browser oder Kalender oder von irgendeiner anderen Art von System, eingestellt werden, das so konfiguriert ist, dass es Benutzereingaben für den Zweck des Festlegens eines Aktionsauslösers und der zugeordneten Aktion empfängt. Diese letzteren Systeme können Suchmaschinen, elektronische Assistenten, darunter auch sprachbasierte Assistenten, und dergleichen beinhalten. Außerdem kann ein Auslösungs- und Benachrichtigungssystem so konfiguriert sein, dass es mit einem sonst unabhängigen Benutzeroberflächen-Frontend kommuniziert, sodass Benutzeranweisungen und Benachrichtigungen vom Benutzeroberflächen-Frontend verwaltet werden.
-
Ein Auslöser kann auf einem einzelnen Auftreten oder Ereignis basieren. Alternativ können mehrere Auftreten oder Ereignisse zusammen gruppiert werden, um einen Auslöser zu definieren. Ein Benutzer kann zum Beispiel einen Auslöser erstellen, um daran erinnert zu werden, das Auto zu waschen, wenn der Benutzer zu Hause ist, wenn das Paket an der Türschwelle des Benutzers erkannt wird.
-
Die Überwachung auf ein Ereignis für eine physische Entität kann auf eine Vielzahl von Arten erreicht werden und hängt von der durchzuführenden Überwachung ab. Für die Präsenzüberwachung, das heißt die Überwachung auf das Vorhandensein einer physischen Entität, können Daten von Kameras erhalten werden, die verwendet werden, um einen bestimmten Standort zu überwachen, oder von Spracherkennung von einer Quelle an einem bestimmten Standort und so weiter. Im Fall der Entitätserkennung, wie z. B. im Fall der Überwachung auf ein Paket, das an einer Türschwelle geliefert wird, kann auf Modelle des maschinellen Lernens für die Objekterkennung zugegriffen werden. Dadurch können Bilder verarbeitet werden, um zwischen Objekten zu unterscheiden, wie z. B. einer oder mehreren Personen, einem oder mehreren Tieren, einem oder mehreren Paketen usw.
-
Präsenzüberwachung kann außerdem dadurch erreicht werden, indem die bestimmte physische Entität ihren Standort bekannt gibt. Ein Benutzer kann zum Beispiel einen Auslöser haben, der auf dem Ereignis basiert, dass sich ein Imbisswagen innerhalb einer bestimmten Entfernung eines bestimmten Standorts, z. B. nicht weiter als einen Block von der Arbeitsadresse des Benutzers entfernt, befindet. Der Imbisswagen kann seinen Standort über ein drahtloses Kommunikationsprotokoll für einen Überwachungsdienst bereitstellen, woraufhin der Überwachungsdienst ermittelt, ob das durch den Benutzer angegebene Ereignis erfüllt ist. In Varianten dieser Implementierung kann der Benutzer einen Auslöser haben, der auf dem Ereignis basiert, dass sich ein Imbisswagen innerhalb einer bestimmten Entfernung des Standorts des Benutzers befindet, zudem werden sowohl der Standort des Benutzers als auch der Standort des Imbisswagens durch den Überwachungsdienst überwacht.
-
Für die Bedingungsüberwachung, das heißt die Überwachung der Bedingung einer physischen Entität, kann die physische Identität Daten angeben, die ihre Bedingung dem Überwachungsdienst beschreiben. Das Zuhause eines Benutzers kann zum Beispiel ein intelligentes Bewässerungssystem haben, das die Feuchtigkeit des Bodens überwacht. Der Benutzer kann einen Auslöser definieren, um benachrichtigt zu werden, wenn der Feuchtigkeitspegel des Bodens unter einen bestimmten Wert fällt, oder um benachrichtigt zu werden, wenn sich die Sprinkler automatisch einschalten (und, optional, wenn sie nachfolgend ausgeschaltet werden). Ebenso kann der Benutzer eine andere Aktion haben, die ausgelöst wird, wenn die Regenwahrscheinlichkeit 80 % (gemäß den Daten, die von einem Wetterdienst erhalten werden) beträgt und die Sprinkler deaktiviert wurden, und so weiter. In einem weiteren Beispiel ist der Auslöser so definiert, dass, wenn der Feuchtigkeitspegel des Bodens auf einen bestimmten Prozentsatz fällt, der Sprinkler sich automatisch einschaltet, woraufhin eine Benachrichtigung an den Benutzer gesendet wird.
-
Das System kann, in einigen Implementierungen, Ereignisse automatisch auf Basis von Daten ändern, die für das Ereignis relevant sind. Das Ereignis für die Aktivierung des Sprinklers kann zum Beispiel auch Wetterdaten berücksichtigen. Dadurch kann es sein, dass das System, auch wenn der Feuchtigkeitspegel geringer ist als der bestimmte Prozentsatz, nicht ermitteln kann, dass das Ereignis aufgetreten ist (oder die durchzuführende Aktion nicht veranlassen kann), wenn die Wetterdaten Regen innerhalb der nächsten vierundzwanzig Stunden angeben.
-
Die Details von einer oder mehreren Ausführungsformen des in dieser Spezifikation beschriebenen Gegenstands sind in den begleitenden Zeichnungen und der nachfolgenden Beschreibung dargelegt. Andere Merkmale, Aspekte und Vorteile des Gegenstands werden aus der Beschreibung, den Zeichnungen und den Ansprüchen ersichtlich.
-
Figurenliste
-
- 1 zeigt ein Blockdiagramm einer exemplarischen Umgebung, in der Aktionsauslöser für die Durchführung zugeordneter Aktionen überwacht werden.
- 2A zeigt ein Ablaufdiagramm eines exemplarischen Prozesses für das Erstellen eines Ereignisses für eine physische Entität und das Zuordnen einer Aktion, die bei dem Ereignis durchgeführt werden soll.
- 2B zeigt ein Ablaufdiagramm eines exemplarischen Prozesses für das Überwachen einer Zuordnung eines Ereignisses für eine physische Entität und das Durchführen einer Aktion auf Basis des Auftretens des Ereignisses.
- 3A - 3C zeigen Veranschaulichungen von Benutzeroberflächen an einem Benutzergerät, in denen ein Aktionsauslöser erstellt und die Ergebnisse einer durchgeführten Aktion dargestellt werden.
- 4A - 4C zeigen Veranschaulichungen von Benutzeroberflächen an einem Benutzergerät, in denen ein anderer Aktionsauslöser erstellt und die Ergebnisse einer durchgeführten Aktion dargestellt werden.
- 5 zeigt ein Blockdiagramm eines exemplarischen mobilen Computergeräts.
-
In den unterschiedlichen Zeichnungen werden gleiche Bezugszeichen und Bezeichnungen für gleiche Elemente verwendet.
-
AUSFÜHRLICHE BESCHREIBUNG
-
1 zeigt ein Blockdiagramm einer exemplarischen Umgebung 100, in der Aktionsauslöserereignisse für die Durchführung zugeordneter Aktionen überwacht werden. Ein Computernetzwerk 102, wie z. B. das Internet oder eine Kombination davon, stellt Datenkommunikation zwischen elektronischen Geräten und Systemen bereit. Das Computernetzwerk 102 kann außerdem ein oder mehrere drahtlose Netzwerke 103 beinhalten oder mittels eines oder mehrerer Gateways in Datenkommunikation mit diesen sein.
-
Eine physische Datenquelle 104 ist ein Gerät, ein System oder ein Dienst, das/der Daten über eine physische Entität bereitstellt. Die physische Datenquelle 104 kann zum Beispiel ein physisches Element sein, das über seine eigene Bedingung mittels eines Datensignals berichtet, das Bedingungen der physischen Entität angibt. Ein Sprinklerkopf, der seinen Betriebsstatus und seine Sensoranzeigewerte, wie z. B. Feuchtigkeitspegel des Bodens, bereitstellt, ein Türschloss, das Daten bereitstellt, die beschreiben, ob es abgesperrt oder nicht abgesperrt ist, ein Automobil, das seinen Standort bereitstellt usw. Alternativ kann die physische Datenquelle 104 ein System sein, das Daten über sich selbst, seinen Standort und so weiter bereitstellt. Beispiele von Systemen beinhalten ein Sicherheitssystem, das eine Wohnung überwacht, ein Beleuchtungssteuerungssystem in einem Gebäude, ein Parkplatzbelegungserkennungs- und -überwachungssystem usw. Dies sind nur einige Beispiele physischer Datenquellen und jede andere physische Datenquelle 104, die Daten über eine physische Entität bereitstellt, kann verwendet werden.
-
Wie in dieser Spezifikation verwendet, ist eine physische Entität eine physische Entität, für die physische Umgebungsmerkmale durch die physische Datenquelle 104 überwacht werden können. Eine physische Entität kann die physische Datenquelle 104 selbst oder etwas sein, das die physische Datenquelle 104 überwacht. Im letzteren Fall kann die physische Entität durch den Benutzer angegeben werden, z. B. kann der Benutzer angeben, dass die physische Entität ein Paket ist, wenn der Benutzer auf das Vorhandensein eines Pakets an einem Standort überwachen möchte; der Benutzer kann angeben, dass die physische Entität ein Automobil ist, wenn der Benutzer das Vorhandensein oder Nichtvorhandensein eines Automobils an einem bestimmten Parkplatz überwachen möchte, und so weiter. Ähnlich kann das physische Umgebungsmerkmal ein Merkmal sein, das mit der Entität verbunden ist, die der Benutzer zum Auslösen der Aktion verwenden möchte.
-
Das Benutzergerät 106 ist ein elektronisches Gerät, das von einem Benutzer gesteuert wird und in der Lage ist, Ressourcen über das Netzwerk 102 anzufordern und entgegenzunehmen, und das außerdem in der Lage ist, andere Aktionen durchzuführen. Exemplarische Benutzergeräte 106 beinhalten Personal-Computer, mobile Kommunikationsgeräte, tragbare Geräte und andere Geräte, die Datenüber das Netzwerk 102 senden und empfangen können. In dem Beispiel von 1 ist das Benutzergerät 106 ein Smartphone. Ein exemplarisches Smartphone ist in Bezug auf 5 unten beschrieben. Das Benutzergerät 106 kann über die Netzwerke 102 und 103 mittels drahtgebundener und drahtloser Verbindungen mit den Netzwerken 102 bzw. 103 kommunizieren. Das Benutzergerät 106 kann außerdem ein Gerät sein, das auf das Netzwerk 102 mittels eines zwischengeschalteten Geräts und eines drahtlosen Nahbereich-Sendeempfängers, wie z. B. WLAN, Bluetooth usw., zugreift. Wie in Bezug auf 5 beschrieben, kann ein Benutzergerät in der Lage sein, einen Satz von Geräteaktionen für verschiedene Programme und Fähigkeiten durchzuführen
-
Das Benutzergerät 106 kann einem Benutzerkonto, wie z. B. einem Konto, zugeordnet sein, das von einem Cloud-Dienstanbieter 112 gehostet wird, der mehrere Dienste bereitstellt. Diese Dienste können Suche (u. a. Web, Intranet, Dokumente und Anwendungen), Webmail, Kalender, soziale Netzwerke, Nachrichtenübermittlung, Dokumentspeicherung und -bearbeitung, einen elektronischen Assistentendienst usw. beinhalten. Die Kontodaten 114 können Daten speichern, die für das Konto des Benutzergeräts 106 spezifisch sind. Ferner können, auch wenn in 1 nur ein Benutzergerät 106 dargestellt ist, mehrere Benutzergeräte 106 in der Umgebung enthalten sein.
-
In einigen Implementierungen kann der Benutzer eines Benutzergeräts 106 Ereignisauslöser definieren und sie Aktionen zuordnen. Das Auftreten eines Ereignisauslösers (oder einfach „Ereignisses“) veranlasst, dass die zugeordnete Aktion durchgeführt wird. Das Angeben von Ereignissen und Aktionen kann durch eine Vielzahl von Benutzeroberflächen, Sprachbefehl-Verarbeitungssystemen und Interaktionsmodellen ermöglicht werden. Normalerweise gibt ein Benutzer, wie unten näher beschrieben, eine Zuordnung eines Ereignisses zu einer Aktion an.
-
Ein Aktionsauslöser-Verarbeitungssystem 120 empfängt eine Zuordnung eines Ereignisses und einer Aktion und speichert den Ereignisauslöser in einem Aktionsauslöser-Datenspeicher 126. Wie in dieser Spezifikation verwendet, wird eine Zuordnung eines Ereignisses und einer Aktion als ein „Aktionsauslöser“ bezeichnet. Auch wenn das Aktionsauslöser-Verarbeitungssystem 120 in 1 als separate Entität dargestellt ist, kann das Aktionsauslöser-Verarbeitungssystem 120 im Cloud-Dienstanbieter 112 oder alternativ als ein separates System durch jede Drittpartei implementiert werden. In bestimmten Ausführungsformen können das Aktionsauslöser-Verarbeitungssystem 120 oder Teilmengen davon einen Teil des Benutzergeräts 106 bilden oder in demselben gespeichert sein.
-
Der Aktionsauslöserprozessor 124 greift auf Ereignisdaten 128 zu, um zu ermitteln, welche Ereignisse erfüllt sind, und ob die Aktionen, die dem Ereignis zugeordnet sind, das als erfüllt ermittelt wird, durchgeführt werden sollen. Wie hierin verwendet, sind Ereignisdaten 128 alle Daten, die verwendet werden können, um zu ermitteln, ob ein Ereignis aufgetreten ist, wobei diese in dieser bestimmten Anwendung Daten beinhalten, die von den physischen Datenquellen 104 berichtet werden. Die Ereignisdaten 128, die die Daten beinhalten, die von der physischen Datenquelle 104 berichtet werden, können zum Beispiel die Daten sein, die dem Aktionsauslöser-Verarbeitungssystem 120 durch die Drittparteien bereitgestellt werden, oder sie können die Daten sein, die durch das Aktionsauslöser-Verarbeitungssystem 120 regelmäßig angefordert werden.
-
Der Aktionsauslöserprozessor 124 speichert den Aktionsauslöser im Aktionsauslöser-Datenspeicher 126. Es kann eine Vielzahl von Aktionsauslösern AT1, AT2, .. ATn geben, die in den Aktionsauslöserdaten 126 gespeichert sind. Eine Gruppe von Aktionsauslösern (z. B. die, die vom Benutzer erstellt oder vorher implementiert wurden) können am Benutzergerät 106 angesehen werden, zudem kann der Benutzer am Benutzergerät 106 jederzeit Änderungen an den Aktionsauslösern durchführen (z. B. hinzufügen, löschen, ändern). Jeder der Vielzahl von Aktionsauslösern kann ein oder mehrere Ereignisse E1, E2, ... En aufweisen, die der Aktion zugeordnet sind. Bei Auftreten eines Ereignisses kann der Aktionsauslöserprozessor 124 veranlassen, dass die Aktion durchgeführt wird. Die Aktion kann eines oder mehrere der folgenden sein: die Präsentation einer Benachrichtigung, dass das Ereignis aufgetreten ist; eine Aktion, die teilweise oder vollständig automatisch und separat vom Benutzergerät durchgeführt wird (z. B. über eine Drittanbieter-Anwendung oder ein Drittanbieter-System durch Ausgabe eines Befehls dafür); oder die Präsentation einer Eingabeaufforderung, um eine andere Aktion durchzuführen.
-
Die Aktion kann außerdem eine Aktion sein, die durch eine andere physische Entität durchgeführt wird oder die sich auf eine andere physische Entität, wie z. B. eine Roboterentität, bezieht. Angesichts eines Ereignisses für spezifische Wetterbedingungen, z. B. eine Prognose für einen Mangel an Regen am Nachmittag, kann eine Aktion zum Beispiel sein, ein Robotermähgerät zu veranlassen, einen Rasen zu mähen.
-
In einigen Implementierungen beinhaltet das Aktionsauslöser-Verarbeitungssystem 120 Anmeldedaten 130, die Anmeldeberechtigungen für Benutzer angeben und die verwendet werden, um die Durchführung bestimmter Aktionen zu autorisieren. Eine Aktion zum Kaufen oder Begründen irgendeiner anderen finanziellen oder rechtlichen Verpflichtung im Namen eines Benutzers kann zum Beispiel vom Benutzer fordern, Anmeldeberechtigungen bereitzustellen. Die Anmeldeberechtigungen können erforderlich sein, wenn das Ereignis ausgelöst wurde, oder sie können alternativ erforderlich sein, wenn die Zuordnung des Ereignisses und der Aktion festgelegt wird. Exemplarische Anmeldeberechtigungen können eine Benutzerkennung, ein Passwort und dergleichen beinhalten. Außerdem kann in einigen Implementierungen ein Benutzer autorisiert werden, wenn die Anmeldeberechtigungen zuvor bereitgestellt wurden, z. B. wenn ein Benutzer eine authentifizierte Verbindung mit einem sicheren Netzwerk aufgebaut hat.
-
Der Benutzer kann außerdem angeben, dass Benachrichtigungen nur während geeigneter Zeiten bereitgestellt werden, in denen der Benutzer die Benachrichtigungen überprüfen und auf sie reagieren kann. Der Benutzer kann zum Beispiel eine Bedingung einstellen, dass der Benutzer nicht benachrichtigt wird, wenn der Benutzer auf Basis der Verfügbarkeit des Benutzers gemäß dem Kalender des Benutzers nicht verfügbar ist. Dadurch kann die Präsentation der Benachrichtigung verzögert werden, wenn der Kalender des Benutzers angibt, dass der Benutzer einen Termin hat, z. B. wenn sich der Benutzer, wie im Arbeitskalender des Benutzers geplant, in einer Besprechung befindet. Andere Bedingungen für die Durchführung einer Aktion können neben einem angegebenen Ereignisauftreten ebenfalls verwendet werden.
-
Wie oben beschrieben, ermöglicht das Aktionsauslöser-Verarbeitungssystem 120 die Erstellung und Überwachung von Ereignissen für physische Entitäten. Der Prozess der Erstellung eines Aktionsauslösers ist in Bezug auf 2A beschrieben, die ein Ablaufdiagramm eines exemplarischen Prozesses 200 für das Erstellen eines Ereignisses für eine physische Entität und das Zuordnen einer Aktion, die bei dem Ereignis durchgeführt werden soll, zeigt. Der Prozess 200 kann durch ein elektronisches Gerät, wie z. B. ein Benutzergerät, durchgeführt werden oder kann alternativ durch ein Serversystem in Reaktion auf das Empfangen von Auswahldaten von einem Benutzergerät durchgeführt werden.
-
Der Prozess 200 empfängt Daten, die ein physisches Umgebungsmerkmal angeben, für das ein Ereignis für eine physische Entität überwacht werden soll (202). Die physische Entität kann auf eine Vielzahl von Arten identifiziert werden. Die Daten können von einem Benutzergerät empfangen werden, oder irgendeinem anderen Gerät, mit dem der Benutzer interagiert hat. Ein Benutzer kann beispielsweise die physische Entität, z. B. durch Eingeben einer Beschreibung der physischen Entität, Auswählen der physischen Entität aus einer Liste der physischen Entitäten oder durch irgendeine andere Weise, angeben. Alternativ kann sich die physische Entität selbst identifizieren. Ein Imbisswagen kann zum Beispiel mit einem Benutzergerät kommunizieren und sich selbst identifizieren und dem Benutzer die Möglichkeit bereitstellen, einen Aktionsauslöser zu erstellen.
-
Das physische Umgebungsmerkmal beschreibt entweder die physische Entität selbst oder eine Umgebung der physischen Entität. Ein Beispiel für Letzteres ist ein Standort oder eine Reihe von Standorten, an denen sich die physische Entität befinden kann. Für eine physische Entität eines bestimmten Automobils (oder jeglichen Automobils) kann zum Beispiel das physische Umgebungsmerkmal ein bestimmter Parkplatz sein. Ähnlich kann für eine physische Entität eines Versandbehälters das physische Umgebungsmerkmal eine Türschwelle sein. Ebenso kann für die physische Entität eines Sprinklersystems das physische Umgebungsmerkmal der Zustand des Systems sein. In noch einem anderen Beispiel kann ein Imbisswagen, der ein drahtlos aktiviertes System nutzt, das mit dem Aktionsauslöser-Verarbeitungssystem kommuniziert, eine Liste verschiedener Umgebungsmerkmale bereitstellen, die mit dem Standort des Imbisswagens verbunden sind. Das physische Umgebungsmerkmal, das beschrieben wird, kann vom Benutzer ausgewählt werden.
-
Der Prozess 200 stellt, in Reaktion auf die Daten, die das Umgebungsmerkmal angeben, Daten bereit, die ein Gerät veranlassen, ein Aktionsauslöser-Menü anzuzeigen, das eine Eingabe für jedes des einen oder der mehreren Ereignisse anzeigt (204). Sobald zum Beispiel ein Benutzer eine physische Entität und ein entsprechendes Umgebungsmerkmal angibt, können dem Benutzer Optionen präsentiert werden, die ein Ereignis für die physische Entität und das Umgebungsmerkmal definieren. Im Zuge des obigen Beispiels kann, für die physische Entität eines bestimmten Automobils (oder eine beliebigen Automobils), das Ereignis das Vorhandensein des Automobils auf einem bestimmten Parkplatz (oder alternativ die Abwesenheit des Automobils) sein. Ähnlich kann, für die physische Entität des Versandbehälters, das Ereignis das Vorhandensein des Versandbehälters an der Türschwelle sein. Ebenso kann, für die physische Entität eines Sprinklersystems, das Ereignis ein bestimmter Zustand des Systems, z. B. die Aktivierung des Sprinklersystems, sein. Und schließlich können, für die physische Entität eines Imbisswagens, die Ereignisse der Standort eines Imbisswagens in Bezug auf einen aktuellen Standort, eine Adresse oder der zukünftige Standort eines Benutzers sein.
-
In einigen Implementierungen wird eine Liste der Ereignisse auf Basis einer Zuordnung physischer Umgebungsmerkmale zu Ereignissen, die der physischen Entität und dem Umgebungsmerkmal entsprechen, ermittelt und einem Benutzer präsentiert. Wenn zum Beispiel eine physische Entität und ein Umgebungsmerkmal eines Standorts ausgewählt werden, können die Ereignisse das Vorhandensein oder Nichtvorhandensein der Entität am Standort sein. Ähnlich können, wenn eine physische Entität und ein Umgebungsmerkmal der Zustände (z. B. ein, aus usw.) der physischen Entität ausgewählt werden, die Ereignisse die bestimmten Zustände der physischen Entität sein.
-
Der Prozess 200 empfängt Daten, die eine Auswahl am Gerät von einer oder mehreren Benutzerauswahleingabe angeben, um ein Ereignis anzugeben (206). Der Benutzer kann eines der Ereignisse auswählen, wodurch der Aktionsauslöserprozessor 124 so konfiguriert wird, dass das Auftreten des Ereignisses überwacht. Zusätzliche Ereignisse und Bedingungen können ebenfalls ausgewählt werden. Ein Zeitfenster kann zum Beispiel ausgewählt werden, sodass das Auftreten des Ereignisses nur ermittelt wird, wenn das Ereignis während des Zeitfensters auftritt; wenn das Ereignis außerhalb des Zeitfenstersauftritt, ermittelt der Aktionsauslöserprozessor, dass das Ereignis nicht aufgetreten ist. Im Zuge eines der obigen Beispiele kann das Ereignis eines Autos, das auf einem bestimmten Parkplatz vorhanden ist, ferner davon abhängig sein, dass das Auto auf dem Parkplatz zu irgendeiner Zeit zwischen 8:00 Uhr und 17:00 Uhr vorhanden ist. Dadurch wird, wenn das Auto um 7:30 Uhr auf dem Parkplatz ankommt, und dort eine Stunde lang bleibt, das Ereignis als um 8:00 Uhr aufgetreten ermittelt.
-
Der Prozess 200 ordnet dem Ereignis eine Aktion zu, die in Reaktion auf das Auftreten des Ereignisses durchgeführt werden soll (208). Die Aktion ist die Aktion, die der Benutzer durchgeführt haben möchte, sobald das Auftreten eines Ereignisses ermittelt wird. Die Aktion kann zum Beispiel die Präsentation einer Erinnerungsmitteilung sein, etwas zu tun, oder die Präsentation eines Bestätigungsbefehls, um etwas im Auftrag des Benutzers tun zu lassen, oder eine Aktion, die vollständig oder teilweise automatisch ohne eine Erinnerungsmitteilung oder Bestätigung zum Durchführen der Aktion durchgeführt wird.
-
In einigen Implementierungen kann die Aktion aus einer Liste der verfügbaren Aktionen ausgewählt werden. Im Fall eines Imbisswagens kann zum Beispiel eine Vielzahl von Aktionen verfügbar sein, wie z. B. das automatische Aufgeben einer Bestellung und der Kauf derselben, oder eine Benachrichtigung über den Standort des Imbisswagens oder eine Kombination aus beidem. In anderen Implementierungen kann der Benutzer die Aktion unabhängig vom Ereignis definieren. Im Fall des Imbisswagens kann der Benutzer zum Beispiel wollen, dass ihm Benachrichtigungen, wie z. B. „Julia fragen, ob sie mit dir Mittagessen möchte“, präsentiert werden.
-
Der Prozess 200 stellt Daten bereit, die das Ereignis für die physische Entität angeben, und Daten, die eine Aktion angeben, die dem Ereignis zugeordnet ist (210). Sobald der Benutzer das Ereignis und die zu ergreifende Aktion definiert, speichert das System, z. B. das Benutzergerät 106 oder das Aktionsauslöser-Verarbeitungssystem 120, die Daten als Aktionsauslöser, der dann dem Ereignis und der Aktion zugeordnet wird, und speichert den Aktionsauslöser in einem Aktionsauslöser-Datenspeicher. Auf den Datenspeicher wird dann durch das System für die Überwachung zugegriffen.
-
2B zeigt ein Ablaufdiagramm eines exemplarischen Prozesses 250 für das Überwachen einer Zuordnung eines Ereignisses für eine physische Entität und das Durchführen einer Aktion auf Basis des Auftretens des Ereignisses. Der Prozess 250 kann durch ein Benutzergerät oder alternativ durch ein Serversystem in Reaktion auf das Empfangen von Auswahldaten von einem Benutzergerät durchgeführt werden.
-
Der Prozess 250 greift auf einen Aktionsauslöser in einem Aktionsauslöser-Datenspeicher zu und ermittelt das zu überwachende Ereignis und die durchzuführende Aktion (252). Jeder Aktionsauslöser beinhaltet Daten, die das zu überwachende Ereignis und die durchzuführende Aktion auf Basis der Überwachung des Auftretens des Ereignisses definieren.
-
Der Prozess 250 überwacht das Auftreten des Ereignisses für die physische Entität (254). Das Ereignis kann durch den Aktionsauslöserprozessor 124 regelmäßig, z. B. alle N Minuten, überwacht werden, oder das Auftreten kann ermittelt werden, wenn der Aktionsauslöserprozessor 124 eine Benachrichtigung von einer Drittpartei empfängt, dass das Ereignis aufgetreten ist. Im letzteren Fall kann die Drittpartie eine oder mehrere APIs verwenden, um das Ereignis dem Aktionsauslöserprozessor zu übermitteln oder es anderweitig zu registrieren. Im Fall des oben beschriebenen Imbisswagens kann das Imbisswagenunternehmen zum Beispiel einen Dienst nutzen, der durch das Aktionsauslöser-Verarbeitungssystem 120 angeboten wird, und Daten für das Aktionsauslöserverarbeitungssystem 120 bereitstellen.
-
Der Prozess 250 kann, in Reaktion auf das Auftreten des Ereignisses, veranlassen, dass die dem Ereignis zugeordnete Aktion durchgeführt wird (256). Wie zuvor beschrieben, kann die Aktion die Präsentation einer Erinnerungsmitteilung sein, etwas zu tun. Die Aktion kann auch die Präsentation eines Bestätigungsbefehls sein, eine andere Aktion im Auftrag des Benutzers durchführen zu lassen. Alternativ kann die Aktion eine sein, die automatisch ohne eine Erinnerungsmitteilung oder Bestätigung, die Aktion durchzuführen, durchgeführt wird. Die Aktion kann vom Benutzergerät oder alternativ durch ein separates System durchgeführt werden.
-
Im Fall einer Benachrichtigung kann der Benutzer außerdem angeben, dass Benachrichtigungen nur während geeigneter Zeiten bereitgestellt werden, in denen der Benutzer die Benachrichtigungen überprüfen und auf sie reagieren kann. Der Benutzer kann zum Beispiel eine Bedingung einstellen, dass der Benutzer nicht benachrichtigt wird, wenn der Benutzer auf Basis des Kalenders des Benutzers in einer Besprechung ist. Dadurch kann die Präsentation der Benachrichtigung verzögert werden, wenn der Kalender des Benutzers angibt, dass der Benutzer zur Zeit einen Termin hat, z. B. wenn sich der Benutzer, wie im Arbeitskalender des Benutzers geplant, in einer Besprechung befindet. Eine Vielzahl von Benachrichtigungsarten, einschließlich Push-Benachrichtigungen des mobilen Betriebssystems (BS), Textnachrichten, E-Mails, eine Mitteilung über das Internet oder einen digitalen Assistenten oder andere Formen der Benachrichtigung, können verwendet werden. Im Fall einer Warnung über einen digitalen Assistenten kann der digitale Assistent die richtige Zeit, den richtigen Standort und das richtige Verfahren zum Benachrichtigen des Benutzers ermitteln oder eine Aktion im Auftrag des Benutzers durchführen. Wenn der Benutzer sich zum Beispiel in einer Geschäftsbesprechung befindet, kann der digitale Assistent mit dem Benachrichtigen des Benutzers warten, bis der Benutzer aus der Besprechung kommt, oder nachdem der Arbeitstag des Benutzers beendet ist.
-
Darüber hinaus kann in einigen Implementierungen die Präsentation der vom Benutzer definierten Aktion oder die Durchführung der vom Benutzer definierten Aktion für ein anderes Gerät als das Benutzergerät 106 bereitgestellt werden. Die Präsentation kann zum Beispiel für ein Gerät bereitgestellt werden, von dem ermittelt wird, dass es in der Nähe des Benutzers ist, oder ein Gerät, das der Benutzer sieht oder betrachtet. Wenn das Benutzergerät 106 des Benutzers zum Beispiel vom Benutzer für einen Schwellenwertzeitraum nicht verwendet wurde, und der Benutzer ein anderes Gerät verwendet, kann das Aktionsverarbeitungssystem 120 bestimmen, dem Benutzer die definierte Aktion auf dem Gerät zu präsentieren, das der Benutzer gerade verwendet.
-
Eine Vielzahl von Benutzeroberflächen und Interaktionsmodellen können verwendet werden, um die Erstellung von Aktionsauslösern und die Präsentation von Ergebnissen aus Aktionen, die durchgeführt werden, zu ermöglichen. 3A - 3C und 4A - 4C zeigen Beispiele mehrerer Benutzeroberflächen.
-
3A - 3C sind Veranschaulichungen von Benutzeroberflächen 302, 322 und 340 an einem Benutzergerät 300, in denen ein Aktionsauslöser erstellt und die Ergebnisse einer durchgeführten Aktion dargestellt werden. In diesem Beispiel wird ein Aktionsauslöser für eine physische Entität eines Imbisswagens erstellt. Das physische Umgebungsmerkmal ist ein Standort des Imbisswagens und das Ereignis ist das Vorhandensein des Imbisswagens am Standort oder innerhalb einer Schwellenwertentfernung desselben. Die Aktion, die durchgeführt wird, ist eine Benachrichtigung eines Benutzers.
-
3A stellt eine Benutzeroberfläche 302 dar, auf der eine Eingabeaufforderung 304 präsentiert wird, einen Aktionsauslöser zu erzeugen. Das Benutzergerät 300 kann auf eine Vielzahl von Arten veranlasst werden, die Eingabeaufforderung zu präsentieren. Wenn das Benutzergerät zum Beispiel verwendet wird, um einen Kauf vom Anbieter zu vollziehen, kann die Eingabeaufforderung automatisch präsentiert werden. Alternativ kann der Benutzer zu einer Webseite navigieren oder eine native Anwendung initiieren, die die Präsentation der Eingabeaufforderung veranlasst. In noch einem anderen Beispiel kann das Benutzergerät NFC/Bluetooth oder eine andere HF-Technologie für persönliche Bereiche verwenden, um mit einem System im Imbisswagen zu kommunizieren. In diesem letzteren Beispiel kann der Benutzer eine Präferenz einstellen, die es dem Benutzergerät 300 ermöglicht, für die Zwecke des Festlegens von Aktionsauslösern „erkannt“ zu werden, und der Imbisswagen kann ein Gerät beinhalten, das ein Datensignal überträgt, das den Imbisswagen identifiziert und das, optional, eine Nachricht an ein Benutzergerät in der Nähe auslöst, die das Benutzergerät veranlasst, eine Benutzeroberfläche anzuzeigen, die die Erstellung eines Auslösers ermöglicht. In noch einem anderen Beispiel kann das Benutzergerät einen Code, wie z. B. einen QR-Code oder einen Strichcode, am Imbisswagen scannen oder ein Zeichen am Imbisswagen eintippen, das lautet „tippe mit deinem Telefon auf das Imbisswagen-Zeichen, um benachrichtigt zu werden, wenn er das nächste Mal hier ist“, was das Benutzergerät veranlasst, das Datensignal über ein HF-Nahbereich-Signalprotokoll zu empfangen.
-
Zwei Optionen werden präsentiert: die Auswahl der ersten Option 306 fährt mit der Benutzeroberfläche von 3B fort und die Auswahl der zweiten Option 308 beendet den Prozess. Unter jetziger Bezugnahme auf 3B beinhaltet die Benutzeroberfläche 322 eine zweite Eingabeaufforderung 324 und drei Optionen 326, 328 und 330, die jeweils einem Ereignis für ein physisches Umgebungsmerkmal entsprechen. Die erste Option 326 definiert ein Ereignis, das auftritt, wenn der Imbisswagen wieder in der Nähe des Standorts ist, den der Imbisswagen zurzeit belegt. Die zweite Option 328 definiert ein Ereignis, das auftritt, wenn sich der Imbisswagen in der Nähe eines Standorts befindet, den der Benutzer angibt. Die dritte Option 330 definiert ein Ereignis, das auftritt, wenn sich der Imbisswagen in der Nähe eines Standorts des Benutzers befindet. Der Standort des Benutzers wird durch den Standort des Benutzergeräts 300 bestimmt.
-
Angenommen, der Benutzer wählt die dritte Option 330 aus. Dies erstellt einen Aktionsauslöser, der ein Ereignis angibt, das das nächste Mal auftritt, wenn sich der Imbisswagen in der Nähe des Benutzers befindet. Auch wenn nicht dargestellt, kann es dem Benutzer ermöglicht werden, zusätzliche Bedingungen anzugeben, z. B. das Ereignis darf nur an Wochentagen und zwischen 11:30 Uhr und 13:00 Uhr auftreten und die Überwachung darf zum Beispiel erst am nächsten Tag beginnen. Der Aktionsauslöser wird dann dem Aktionsauslöser-Verarbeitungssystem 120 für die Überwachung bereitgestellt.
-
Um zu ermitteln, ob das Ereignis aufgetreten ist, kann das Aktionsauslöser-Verarbeitungssystem 120 Standortdaten des Imbisswagens und des Benutzergeräts, entweder auf Anforderung oder durch Push-Benachrichtigung, empfangen. Die Standortdaten geben den aktuellen Standort der physischen Entität Imbisswagen sowie das physische Umgebungsmerkmal des Standorts des Benutzergeräts an. Das Aktionsauslöser-Verarbeitungssystem 120 ermittelt, ob eine Nähe des aktuellen Standorts des Imbisswagens zum Standort des Benutzergeräts geringer als eine Schwellenwertnähe ist. Die Schwellenwertnähe kann durch den Benutzer oder automatisch durch das System 120 eingestellt werden. Es kann zum Beispiel ein Radius einer bestimmten Entfernung verwendet werden. Das System 120 ermittelt, dass das Ereignis aufgetreten ist, wenn die Nähe geringer als eine Schwellenwertnähe ist.
-
Eine andere Möglichkeit, wie Standortdaten ermittelt werden können, besteht durch Empfangen von Daten von einem visuellen Verfolgungssystem. Wenn ein Benutzer zum Beispiel einen bestimmten Imbisswagen angibt, kann der Standort des bestimmten Imbisswagens durch Überwachen und Verfolgen des Standorts des Imbisswagens ermittelt werden, zum Beispiel durch ein Satellitensystem mit der Fähigkeit, jene physischen Entitäten zu verfolgen. Das Satellitensystem (oder eine beliebiges andere visuell basierte Verfolgungssystem) kann dann dem Aktionsauslöser-Verarbeitungssystem 120 Standortdaten für die Überwachung und Verarbeitung bereitstellen.
-
3C stellt eine Benutzeroberfläche 340 dar, auf der eine Benachrichtigung 342 in Reaktion auf das Ermitteln, dass das Ereignis aufgetreten ist, präsentiert wird. Statt oder zusätzlich zu der Benachrichtigung 342 könnten auch andere Aktionen, wie z. B. der Vorab-Kauf von Artikeln von der Speisekarte usw., durchgeführt werden.
-
4A - 4C zeigen Veranschaulichungen von Benutzeroberflächen 402, 420 und 440 an einem Benutzergerät 300, in denen ein anderer Aktionsauslöser erstellt und die Ergebnisse einer durchgeführten Aktion dargestellt werden. In diesem Beispiel wird ein Aktionsauslöser für eine physische Entität eines Lieferartikels erstellt. Das physische Umgebungsmerkmal ist ein Standort einer Türschwelle und das Ereignis ist das Vorhandensein des Lieferartikels an der Türschwelle. Die Aktion, die durchgeführt wird, ist eine Benachrichtigung eines Benutzers.
-
In 4A hat der Benutzer eine Benutzeroberfläche aufgerufen, die die Erzeugung eines Aktionsauslösers ermöglicht. Das Benutzergerät 300 kann in der Lage sein, Daten zum Beispiel vom Sicherheitssystem eines Benutzers zu empfangen, und der Benutzer hat, wie im Bild 404 dargestellt, einen Video-Feed der Vordertür des Benutzers ausgewählt. Eine Eingabeaufforderung 406 beschreibt, dass der Benutzer eine bestimmte Videokamera ausgewählt hat, stellt Optionen 408, 410, 412 und 414 für das Empfangen einer Benachrichtigung bereit.
-
Das Aktionsauslöser-Verarbeitungssystem 120 (oder alternativ das Benutzergerät 400) kann ein System für maschinelles Lernen beinhalten, das trainiert wurde, um verschiedene Objekte, wie z. B. jene zu erkennen, die in den Optionen 408, 410 und 412 aufgelistet sind. Der Benutzer kann außerdem Option 414 auswählen, um ein anderes Objekt zu beschreiben. Eine Vielzahl von Bilderkennungsmodellen für maschinelles Lernen können verwendet werden, um bestimmte Objekte zu erkennen.
-
Und schließlich kann Option 416 ausgewählt werden, wenn der Benutzer angeben möchte, dass eine andere Aktion durchgeführt wird. Diese anderen Aktionen können eine E-Mail mit einem Bild des Objekts an der Türschwelle beinhalten, wenn das Objekt erkannt wird, oder das automatische Klingeln der Türklingel oder eine beliebige andere Aktion, die dem Ereignis zugeordnet werden kann.
-
Angenommen, dass der Benutzer in diesem Beispiel sein Auto waschen möchte, aber entdeckt hat, dass er kein Autoseifenkonzentrat mehr hat. Der Benutzer hat eine Flasche Seifenkonzentrat von einem Online-Einzelhändler bestellt und wartet auf die Lieferung und möchte daran erinnert werden, sein Auto zu waschen, wenn das Paket geliefert wird. Demgemäß wählt der Benutzer Option 408 aus.
-
In Reaktion auf die Auswahl von Option 408 wird die Benutzeroberfläche 420 von 4B angezeigt. Die Benutzeroberfläche 420 beinhaltet eine Bestätigungsmeldung und Eingabeaufforderung 422. Eingabeanzeige 424 zeigt die Erinnerungsmitteilungsbefehlsnachricht, die der Benutzer durch Verwendung einer Mikrofoneingabe 426 erstellt. Sobald die Eingabe des Benutzers abgeschlossen ist, wird ein entsprechender Aktionsauslöser erzeugt.
-
Der Aktionsauslöser wird dann zum Aktionsauslöser-Verarbeitungssystem 120 gesendet (oder bleibt alternativ nur auf dem Benutzergerät 300, wenn das Benutzergerät die Überwachungsfunktion durchführt).
-
Das System überwacht dann auf das Auftreten des Ereignisses. In diesem Beispiel kann das System iterativ Bilder, wie z. B. Video-Einzelbilder, des physischen Umgebungsmerkmals des Türschwellenorts empfangen. Für jede Iteration wird Bildverarbeitung durchgeführt, um zu ermitteln, ob die physische Entität Lieferpaket im Bild dargestellt ist. Wenn ermittelt wird, dass das Lieferpaket im Bild vorhanden ist, ermittelt das System, dass das Ereignis aufgetreten ist und führt die zugeordnete Aktion des Präsentierens einer Erinnerungsmitteilung durch.
-
4C stellt eine Benutzeroberfläche 440 dar, auf der eine Benachrichtigung 446 in Reaktion auf das Ermitteln, dass das Ereignis aufgetreten ist, präsentiert wird. Die Benutzeroberfläche beinhaltet das Bild 442 und im Bild dargestellt ist ein Behälter 444 an der Türschwelle. Die Benachrichtigung 446 beschreibt das Ereignis und beinhaltet die vom Benutzer angegebene Erinnerungsmitteilung.
-
Wie zuvor beschrieben, können in einigen Implementierungen Ereignisse, die überwacht werden, einer automatischen Änderung durch das System 120 unterliegen, ebenso wie die Aktionen. Die Änderungen können das Ergebnis von Bedingungen sein, die einen Wert beeinflussen, der einem Ereignis oder einer Aktion zugeordnet ist. Wie unter erneuter Bezugnahme ersichtlich zum Imbisswagenbeispiel, kann das System zum Beispiel Rückmeldung von Benachrichtigungen analysieren, die bereitgestellt werden, wenn die Schwellenwertentfernung 1.000 Meter beträgt. Das System 120 kann ermitteln, dass Benutzer, die mehr als 500 Meter vom Imbisswagen entfernt sind, wenn ihnen eine Benachrichtigung bereitgestellt wird, den Imbisswagen weniger häufig frequentieren, als Benutzer, die weniger als 500 Meter vom Imbisswagen entfernt sind, wenn ihnen eine Benachrichtigung bereitgestellt wird. Dadurch kann das System das Ereignisauftreten von 1.000 Meter zu 500 Meter ändern. Ähnlich können Aktionen auch einer automatischen Änderung durch das System 120 unterliegen.
-
Außerdem muss ein Benutzer nicht ein bestimmtes Benutzergerät verwenden, um einen Auslöser festzulegen. Stattdessen kann jedwedes Gerät, von dem eine Benutzereingabe einem Benutzer zugeordnet werden kann, zum Festlegen eines Auslösers verwendet werden. Ein Benutzer kann zum Beispiel einfach in eine Sicherheitskamera sprechen, wenn er tagsüber weggeht. Da die Sicherheitskamera mit einem System verbunden ist, das einem Benutzerkonto des Benutzers zugeordnet ist, kann der resultierende Sprachbefehl verwendet werden, um einen Aktionsauslöser für den Benutzer festzulegen. Wie unter erneuter Bezugnahme ersichtlich zum Beispiel des Autoreinigungsmittels kann der Benutzer, nach dem Weggehen zur Arbeit, einfach gegenüber der Kamera äußern „teile mir mit, wenn ein Paket geliefert wird“. Das System 120, das vorhandene semantische und Sprachbefehlsalgorithmen verwendet, kann den Sprachbefehl des Benutzers parsen und den Aktionsauslöser für den Benutzer festlegen.
-
In einigen Implementierungen kann ein Benutzer eine Aktion angeben, für die das Objekt der Aktion ein anderer Benutzer ist. Wie unter erneuter Bezugnahme auf das Automobilreinigungsbeispiel ersichtlich, kann der Benutzer zum Beispiel, auf dem Weg zur Arbeit, gegenüber der Kamera äußern „Jack Child benachrichtigen, das Autoreinigungsmittel an der Tür abzuholen, und dann mein Auto waschen, wenn das Paket geliefert wird“. Das System 120 kann auf die Kontaktinformationen des Benutzers zugreifen und ermitteln, dass Jack Child der Sohn des Benutzers ist, und erzeugt die erforderliche Benachrichtigung auf einem Gerät, das Jack Child zugeordnet ist, wenn das Paket geliefert wird, z. B. „Bitte das Autoreinigungsmittel an der Tür abholen und das Auto deines Vaters waschen“.
-
Außerdem muss eine Aktion nicht angegeben werden, wenn ermittelt wird, dass eine Aktion aus einem Ereignis folgt. Eine Aktion kann aus einem Ereignis ermittelt werden, das zum Beispiel auf dem Benutzerverlauf basiert, oder auf Entitätsbeziehungsmodellen basiert, die Aktionen Ereignissen zuordnen. Ein Benutzer kann zum Beispiel ein Haustier in einen eingezäunten Hof lassen und den Sprachbefehl äußern „auf den Hund an der Tür aufpassen“. Entweder auf Basis des Benutzerverlaufs früherer Aktionsauslöser (z. B. „Lass den Hund herein, wenn du ihn an der Tür siehst“, „Benachrichtige mich, wenn der Hund an der Tür ist“ usw.) kann das System eine Aktion ableiten, den Benutzer zu benachrichtigen, wenn es später einen Hund an der Tür erkennt, oder es kann alternativ die Tür automatisch öffnen, um den Hund hereinzulassen und dann die Tür schließen, vorausgesetzt, die Tür ist für eine solche ferngesteuerte Betätigung ausgestattet.
-
In einigen Implementierungen können Ereignisse nach Durchführung einer Aktion oder nach einer Verzögerung, nachdem die Aktion durchgeführt wurde, erneut überwacht werden. Die ermöglicht das „Zurücksetzen“ eines Aktionsauslösers ohne Benutzerintervention und ist im Zusammenhang mit sich wiederholenden Aktionen nützlich, die auf sich wiederholenden Ereignissen basieren. Ein Kühlgerät mit einer Kamera kann zum Beispiel bestimmte Lebensmittel, wie z. B. einen Milchkarton, überwachen. Wenn der Milchkarton nur noch 1/3 voll ist, kann das System die Aktion durchführen, um einen weiteren Karton Milch zu bestellen. Das System kann außerdem Reaktionszeiten lernen und den Ereignisauslöser automatisch anpassen. Wenn die Lieferzeit für Milch zum Beispiel so festgelegt ist, dass der Benutzer keine Milch mehr hat, bevor der Karton ankommt, wie durch den Kühlschrank ohne Milchkarton erkannt wird, kann das System den Milchkarton überwachen und feststellen, wenn dieser halb leer statt 2/3 leer ist, und die Bestellung aufgeben, wenn der Karton halb leer ist.
-
Das System kann außerdem den Auslöser auf Basis anderer Daten anpassen, die angeben, dass ein Auslöser angepasst werden sollte. Diese Daten beinhalten Daten, die angeben können, dass ein bestimmtes Bedürfnis des Benutzers, das durch eine Aktion erfüllt wird, nicht erfüllt ist, nachdem die Aktion durchgeführt wurde. Eine Aktion, die ein Konsumbedürfnis erfüllt, kann zum Beispiel auf Basis von Daten angepasst werden, die eine Konsumrate angeben. Nehmen wir zur Veranschaulichung an, dass das System, indem es auf den Kalender eines Benutzers zugreift, identifiziert, dass der Benutzer Gäste für eine Woche hat. Das System kann auf Basis der Zahl der Gäste ermitteln, dass dieses das Ereignis, dass die Milch 1/3 voll ist, zu halb voll ändern sollte, um die Bestellung aufzugeben, während die Gäste anwesend sind. Ähnlich kann, sollte das System zusätzliche Personen über einen längeren Zeitraum in der Wohnung des Benutzers erkennen, das System Aktionsauslöser entsprechend anpassen.
-
In Situationen, in denen die Systeme, die hierin besprochen werden, persönliche Informationen über Benutzer sammeln, oder persönliche Informationen nutzen können, kann für die Benutzer eine Möglichkeit oder Option der Kontrolle bereitgestellt werden, ob Programme oder Funktionen Benutzerinformationen sammeln (z. B. Informationen über das soziale Netzwerk eines Benutzers, soziale Handlungen oder Aktivitäten, Beruf, eine Benutzerpräferenz, der derzeitige Standort eines Benutzers, Standortsbewegungsbahn, abgeleitete Standorte wie Zuhause/Arbeit, abgeleiteter Kontext, Kalenderdaten, kommende Ereignisse/Buchungen aus E-Mails usw.), oder um zu kontrollieren, ob und/oder wie Inhalt vom Content-Server empfangen wird, der für den Benutzer relevanter sein kann. Darüber hinaus können bestimmte Daten auf eine oder mehrere Weisen behandelt werden, bevor sie gespeichert oder verwendet werden, sodass personenbezogene Informationen entfernt werden. Eine Benutzeridentität kann beispielsweise so behandelt werden, dass keine personenbezogenen Informationen für den Benutzer bestimmt werden können, oder ein geografischer Standort des Benutzers beim Erhalt von Standortinformationen (wie beispielsweise eine Stadt, Postleitzahl oder Bundesland) verallgemeinert werden kann, sodass ein bestimmter Standort eines Benutzers nicht festgestellt werden kann. Auf diese Weise kann der Benutzer die Kontrolle darüber haben, inwiefern Informationen über den Benutzer gesammelt und von einem Content-Server verwendet werden.
-
5 zeigt ein Blockdiagramm eines exemplarischen mobilen Computergeräts. In dieser Veranschaulichung ist das mobile Computergerät 510 als ein handgehaltenes Mobiltelefon (z. B. ein Smartphone oder ein Anwendungstelefon) dargestellt, das ein Touchscreen-Anzeigegerät 512 beinhaltet, um einem Benutzer des mobilen Computergeräts 510 Inhalt zu präsentieren und auf Berührung basierende Benutzereingaben zu empfangen. Andere visuelle, taktile und auditorische Ausgabekomponenten (z. B. LED-Leuchten, ein Vibrationsmechanismus für taktile Ausgaben oder ein Lautsprecher zum Bereitstellen von durch Sprache erzeugter oder aufgezeichneter Ausgaben), ebenso wie verschiedene unterschiedliche Eingabekomponenten können ebenfalls bereitgestellt sein.
-
Das mobile Computergerät 510 kann mechanische oder berührungsempfindliche Tasten 518a-d beinhalten. Außerdem kann das mobile Computergerät Tasten für das Anpassen der Lautstärkeausgabe durch den einen oder die mehreren Lautsprecher 520 und eine Taste für das Ein- oder Ausschalten des mobilen Computergeräts beinhalten. Ein Mikrofon 522 ermöglicht es dem mobilen Computergerät 510, hörbare Töne in ein elektrisches Signal umzuwandeln, das digital codiert und in einem computerlesbaren Speicher gespeichert oder an ein anderes Computergerät übertragen werden kann. Das mobile Computergerät 510 kann zudem einen digitalen Kompass, einen Beschleunigungssensor, Näherungssensoren und Umgebungslichtsensoren beinhalten.
-
Das mobile Computergerät 510 kann eine grafische Benutzeroberfläche mit dem Touchscreen 512 anzeigen. Eine grafische Benutzeroberfläche ist eine Sammlung von einem oder mehreren grafischen Benutzeroberflächenelementen und kann statisch sein (z. B. scheint die Anzeige über einen Zeitraum gleich zu bleiben), oder kann dynamisch sein (z. B. beinhaltet die grafische Benutzeroberfläche grafische Benutzeroberflächenelemente, die ohne Benutzereingabe animiert werden).
-
Das mobile Computergerät 510 kann andere Anwendungen, Computersubsysteme und Hardware beinhalten. Ein Spracherkennungsdienst 572 kann Sprachkommunikationsdaten empfangen, die vom Mikrofon des mobilen Computergeräts 522 empfangen wurden, und die Sprachkommunikation in entsprechende Textdaten übersetzen oder Spracherkennung durchführen.
-
Das mobile Computergerät 510 kann drahtlos mit einem oder mehreren Netzwerken kommunizieren, um eine Vielzahl von Diensten, wie z. B. Sprach- und Datendienste, bereitzustellen.
-
Ausführungsformen des Gegenstands sowie die in dieser Spezifikation beschriebenen Vorgänge können in einer digitalen elektronischen Schaltung oder in Computersoftware, Firmware oder Hardware, darunter auch in aus dieser Spezifikation hervorgehenden Strukturen und deren strukturellen Entsprechungen oder in Kombinationen derselben, implementiert werden. Ausführungsformen des in dieser Spezifikation beschriebenen Gegenstands können als ein oder mehrere Computerprogramme implementiert werden, d. h. als ein oder mehrere Module mit Computerprogrammanweisungen, die auf einem Computerspeichermedium codiert sind, um von einem Datenverarbeitungsgerät ausgeführt zu werden bzw. den Betrieb desselben zu steuern.
-
Ein Computerspeichermedium kann ein computerlesbares Speichergerät, ein computerlesbares Speichersubstrat, ein frei adressierbares oder serielles Zugriffsspeicher-Array oder -Gerät oder eine Kombination derselben sein bzw. darin beinhaltet sein. Ein Computerspeichermedium ist zwar kein sich verbreitendes Signal, ein Computerspeichermedium kann jedoch eine Quelle oder ein Ziel von Computerprogrammbefehlen sein, die in einem künstlich erzeugten verbreiteten Signal kodiert sind. Bei dem Computerspeichermedium kann es sich auch um eine oder mehrere unterschiedliche physische Komponenten oder Medien (z. B. mehrere CDs, Disks oder andere Speichergeräte) handeln, bzw. kann das Speichermedium darin enthalten sein.
-
Die in dieser Spezifikation beschriebenen Vorgänge können als Vorgänge implementiert sein, die durch eine Datenverarbeitungsvorrichtung an Daten ausgeführt werden, die auf einer oder mehreren computerlesbaren Speichergerät(en) gespeichert, oder von anderen Quellen empfangen werden. Der Begriff „Datenverarbeitungsgerät“ umfasst verschiedene Apparate, Geräte und Maschinen zur Verarbeitung von Daten, einschließlich z. B. eines programmierbaren Prozessors, eines Computers, eines oder mehrerer Systeme auf einem Chip bzw. einer Kombination derselben. Das Gerät kann eine Spezial-Logikschaltung, wie z. B. eine FPGA (feldprogrammierbare Universalschaltung) oder eine ASIC (anwendungsspezifische integrierte Schaltung) beinhalten. Das Gerät kann zusätzlich zur Hardware auch Code beinhalten, der eine Ausführungsumgebung für das entsprechende Computerprogramm, wie z. B. Code, erzeugt, der Prozessorfirmware, einen Protokollstapel, ein Datenbankverwaltungssystem, ein Betriebssystem, eine plattformübergreifende Laufzeitumgebung, einen virtuellen Computer oder eine Kombination derselben darstellt. Das Gerät und die Ausführungsumgebung können verschiedene Computermodellinfrastrukturen, wie z. B. Webdienste, sowie verteilte Rechen- und räumlich verteilte Rechen-Infrastrukturen realisieren.
-
Prozessoren, die für die Ausführung eines Computerprogramms geeignet sind, beinhalten beispielsweise sowohl allgemeine als auch spezielle Mikroprozessoren, sowie jegliche Arten eines oder mehrerer Prozessoren einer beliebigen Art von digitalen Computern. Im Allgemeinen empfängt ein Prozessor Befehle und Daten von einem Nur-Lese-Speicher oder einem Speicher mit wahlfreiem Zugriff oder von beiden. Die wesentlichen Bestandteile eines Computers sind ein Prozessor zum Ausführen von Aktionen gemäß Anweisungen sowie ein oder mehrere Speichergeräte zum Speichern von Anweisungen und Daten. Im Allgemeinen beinhaltet ein Computer außerdem ein oder mehrere Massenspeichergeräte zum Speichern von Daten, wie z. B. magnetische, magnetooptische oder optische Datenträger, um Daten zu empfangen und/oder zu senden, oder ist operativ an ein solches Speichergerät gekoppelt. Ein Computer muss jedoch nicht über diese Geräte verfügen.
-
Die in dieser Spezifikation beschriebenen Ausführungsformen des Gegenstandes können in einem Computersystem implementiert werden, das eine Backend-Komponente, wie z. B. einen Datenserver, oder eine Middleware-Komponente, wie z. B. einen Anwendungsserver, oder eine Frontend-Komponente, wie z. B. einen Benutzer-Computer mit einer grafischen Benutzeroberfläche oder eine beliebige Kombination einer oder mehrerer der besagten Backend-, Middleware- oder Frontend-Komponenten oder einen Web-Browser beinhaltet, durch den ein Benutzer mit einer in dieser Spezifikation beschriebenen Implementierung des Gegenstandes interagieren kann. Die Komponenten des Systems können durch eine beliebige Form oder ein beliebiges Medium digitaler Datenkommunikation, wie z. B. ein Kommunikationsnetzwerk, miteinander verbunden sein. Beispiele für Kommunikationsnetzwerke beinhalten ein lokales Netzwerk („LAN“) und ein Großraumnetzwerk („WAN“), ein Inter-Netzwerk (z. B. das Internet) und Peer-to-Peer-Netzwerke (z. B. ad hoc Peer-to-Peer-Netzwerke).
-
Obgleich diese Spezifikation viele spezifische Implementierungsdetails enthält, sollten diese nicht als Einschränkungen des Umfangs von Erfindungen oder der Ansprüche ausgelegt werden, sondern als Beschreibungen von Merkmalen, die für bestimmte Ausführungsformen bestimmter Erfindungen spezifisch sind. Bestimmte Merkmale, die in dieser Spezifikation im Kontext der unterschiedlichen Ausführungsformen beschrieben werden, können zudem in Kombination in einer einzelnen Ausführungsform implementiert werden. Andererseits können verschiedene Merkmale, die im Kontext einer einzelnen Ausführungsform beschrieben werden, in mehreren Ausführungsformen oder in einer geeigneten Teilkombination implementiert werden. Außerdem können, auch wenn die Merkmale vorstehend ggf. als in bestimmten Kombinationen wirkend beschrieben und zunächst auch als solche beansprucht werden, in einigen Fällen ein oder mehrere Merkmale einer beanspruchten Kombination aus der Kombination herausgenommen und die beanspruchte Kombination auf eine Teilkombination oder eine Variante einer Teilkombination gerichtet werden.
-
Ebenso werden Vorgänge in den Zeichnungen zwar in einer bestimmten Reihenfolge dargestellt, dies sollte jedoch nicht als Anforderung verstanden werden, dass die besagten Vorgänge in der bestimmten dargestellten Reihenfolge oder in einer aufeinanderfolgenden Reihenfolge ausgeführt werden müssen, oder dass alle dargestellten Vorgänge ausgeführt werden müssen, um erwünschte Ergebnisse zu erzielen. Unter bestimmten Umständen können Multitasking und Parallelverarbeitung von Vorteil sein. Darüber hinaus sollte die Trennung verschiedener Systemkomponenten in den zuvor beschriebenen Ausführungsformen nicht in allen Ausführungsformen als erforderlich aufgefasst werden, zudem versteht sich, dass die beschriebenen Programmkomponenten und Systeme im Allgemeinen zusammen in ein einziges Softwareprodukt integriert oder in mehrere Softwareprodukte zusammengefasst werden können.
-
Somit werden bestimmte Ausführungsformen des Gegenstands beschrieben. Weitere Ausführungsformen liegen innerhalb des Schutzumfangs der folgenden Ansprüche. So können in einigen Fällen die in den Ansprüchen angegebenen Aktionen in einer anderen Reihenfolge durchgeführt werden und dennoch erwünschte Ergebnisse erzielen. Zusätzlich setzen beispielsweise die in den beigefügten Figuren dargestellten Prozesse nicht unbedingt die gezeigte spezielle Reihenfolge oder fortlaufende Reihenfolge voraus, um erwünschte Ergebnisse zu erzielen. In bestimmten Implementierungen können Multitasking und eine Parallelverarbeitung vorteilhaft sein.