(58)【調査した分野】(Int.Cl.,DB名)
前記物理的な環境特徴の前記画像は、前記物理的なエンティティのない場所の画像であり、前記イベントは、前記場所における前記物理的なエンティティの存在である、請求項5に記載の方法。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本明細書は、物理的なエンティティのためのイベントと、このイベントの発生に応じたアクションの実行とを定義し、監視することに関する。
【課題を解決するための手段】
【0005】
1つの態様では、方法は、物理的なエンティティのためのイベントを示すデータを受信するステップであって、このイベントは、イベントの発生がデータ処理装置によって監視されるべき物理的な環境特徴によって部分的に指定される、ステップと、イベントに関連付けられ、イベントの発生に応じて行われるべきアクションを示すデータを受信するステップと、物理的なエンティティのためのイベントの発生について監視するステップと、イベントの発生に応じて、イベントに関連付けられたアクションが実行されるようにするステップとを含む。この態様の他の実施形態は、コンピュータ記憶デバイスにおいてエンコードされ、この方法のアクションを実行するように構成された、対応するシステム、装置、およびコンピュータプログラムを含む。
【0006】
別の態様では、方法は、物理的なエンティティのためのイベントが監視されるべき物理的な環境特徴を指定するデータを受信するステップと、環境特徴を指定するデータに応じて、ユーザデバイスに、物理的な環境特徴に関連付けられた1つまたは複数のイベントの各々について、それぞれのイベント選択入力を表示するアクショントリガメニューを表示させるデータを提供するステップと、イベントを指定するための、イベント選択入力のうちの1つの選択を指定するデータを、ユーザデバイスにおいて受信するステップと、イベントの発生に応じて行われるべきアクションを、イベントに関連付けるステップと、物理的なエンティティのためのイベントを示すデータと、イベントに関連付けられたアクションを示すデータとを提供するステップとを含む。この態様の他の実施形態は、コンピュータ記憶デバイスにおいてエンコードされ、この方法のアクションを実行するように構成された、対応するシステム、装置、およびコンピュータプログラムを含む。
【0007】
イベントおよびアクションは、物理的なエンティティに依存するリストから選択される必要がないという点において、物理的なエンティティに依存せず、むしろ、1つまたは複数の入力に従って、ユーザによって定義され得る。同様に、イベントおよびアクションはまた、特定のイベントが、実行されるべきアクションに、全面的に、意味論的に、または、他の方式で関連付けられる必要はないという点において互いに独立し得る。確かに、イベントとアクションの関連付けは、データ関係の観点から完全に恣意的であり得る。これは、ソフトウェアアプリケーションとサービスにおける関連付けおよびアクショントリガの設定をあらかじめ定義することから、開発者を解放する。さらに、結果として得られるイベントと、ユーザによって定義される関連付けは、単純な規則構造によって実施され、イベントおよびトリガのあらかじめ定義された設定内で動作する場合に必要とされるであろう複数の複雑な依存性を(たとえ可能であっても)必要としない。たとえば、ユーザは、自分の車を洗いたいと望む場合があるが、それを行うための準備をしている場合に、濃縮自動車用石鹸を切らしていることに気付き、オンライン小売店から、濃縮石鹸のボトルを注文する。ユーザは、その後、この明細書に記述されたシステムを使用することによって、イベントを、ユーザの玄関先にパッケージが存在するものとして定義し得る。そして、このイベントに関連付けられ得るアクションは、車を洗えとのリマインダであり得る。したがって、ユーザが、洗剤以外のどのパッケージを受け取ることも期待していないと仮定すると、ユーザの玄関先におけるパッケージの検出は、車を洗えとのリマインダを提示するアクションという結果になるであろう。
【0008】
このシステムは、このように、複数の物理的なエンティティと、複数の異なる可能なイベントおよび複数の異なるアクションとの関連付けを容易にする。これによって、ユーザに対して、完全にユニークでこれまで発見されていないエンティティと、ユーザのユニークなニーズから出現したタスク関係とに従って、タスク、スケジュール、およびアクションをアレンジするための先例のない柔軟性を可能にする。そのような能力は、可能であれば、複数の異なるユーザの、そのように変動する予測不能なニーズのための起こり得るアクションおよびトリガの、複雑な設定を必要とする、複雑に構成された規則設定に対する必要性を回避する。したがって、著しい量のデータストレージが節約される。さらに、その他の場合には必要とされるであろう、ユーザの新たに発生する多くのニーズをカバーするための規則更新およびソフトウェア更新が省略され、結果的に、開発費用の節約および帯域幅の節約をもたらす。
【0009】
ユーザは、これまで可能であったよりも、はるかに広い範囲の発生またはイベントに基づいて、アクショントリガを生成し得る。トリガは、ユーザへのリマインダを起動し得、これによって、そのようなトリガに基づいて行われるべきアクションが、リマインダによって促されるように、手動で行われるようになる。あるいは、トリガは、単に、ユーザの興味のための情報を、必ずしもさらなるアクションを暗示することなく提供し得る。別の代案として、ユーザは、あるアクションを自動的に行うためのトリガを設定し得る。さらに別の代案として、イベントが発生すると、ユーザは、後続するアクションを承認するために単一の承認アクションを提示するためのトリガを設定し得、そのような承認がなされると、後続するアクションが実行される。さらにまた別の代案では、自動化されたアクションが、本明細書に記述されたシステムと通信し得るサードパーティアプリケーションまたはシステムによって行われ得る。
【0010】
イベントと、イベントが発生すると実行されるべきアクションとに基づくアクショントリガは、専用のリマインダアプリケーションから、または、ブラウザもしくはカレンダのような別のアプリケーションから、または、アクショントリガおよび関連付けられたアクションを確立する目的のためのユーザ入力を受信するように構成された他のいくつかのタイプのシステムから設定され得る。これら後者のシステムは、検索エンジンと、音声ベースのアシスタントを含む電子アシスタント等を含み得る。さらに、トリガおよび通知システムは、別の方式の独立したユーザインターフェースフロントエンドと通信するように構成され得、これによって、ユーザ命令および通知が、ユーザインターフェースフロントエンドによって管理され得るようになる。
【0011】
トリガは、単一の発生またはイベントに基づき得る。あるいは、トリガを定義するために、複数の発生またはイベントが、共にグループ化され得る。たとえば、パッケージがユーザの玄関先において検出された場合、ユーザが在宅している場合にのみ、車を洗うようにリマインドさせるためのトリガを生成し得る。
【0012】
物理的なエンティティのためのイベントについての監視は、様々な手法で達成され得、実行されるべき監視に依存する。たとえば、物理的なエンティティの存在についての監視である、存在監視のために、特定の場所を監視するために使用されるカメラから、または、特定の場所におけるソースからの音声認識等から、データが取得され得る。玄関先に配達されるべきボックスについて監視する場合のように、エンティティ認識の場合では、機械学習されたモデルが、物体認識のためにアクセスされ得る。したがって、画像は、1人または複数の人、1つまたは複数の動物、1つまたは複数のボックス等のような物体同士を区別するために処理され得る。
【0013】
存在監視はまた、その場所を知らせる特定の物理的なエンティティによって達成され得る。たとえば、ユーザは、フードトラックのイベントが、たとえば、ユーザの職場住所のブロック内のような、特定の場所のある距離内にあることに基づくトリガを有し得る。フードトラックは、その場所を、ワイヤレス通信プロトコルを介して監視サービスへ提供し得、監視サービスは、ユーザによって指定されたイベントが満たされる場合を判定する。この実施のバリエーションでは、ユーザは、フードトラックのイベントが、ユーザの場所のある距離内にあることに基づくトリガを有し得、ユーザの場所と、フードトラックの場所との両方が、監視サービスによって監視される。
【0014】
物理的なエンティティの状況の監視である状況監視のために、物理的なエンティティは、その状況を記述するデータを、監視サービスへ提供し得る。たとえば、ユーザの住宅は、土壌の水分を監視するインテリジェントな散水システムを有し得る。ユーザは、土壌水分レベルがあるレベル未満に低下した場合に通知されるべきトリガ、または、スプリンクラが自動的にオンする場合(および、オプションとして、その後オフする場合)に通知されるべきトリガを定義し得る。同様に、(天候サービスから受信したデータに従って)雨の確率が80%であり、スプリンクラが無効とされた場合等にトリガする別のアクションを、ユーザは有し得る。別の例によれば、土壌水分レベルがあるパーセンテージまで低下した場合に、スプリンクラが自動的にオンし、通知がユーザへ送信されるように、トリガが定義される。
【0015】
このシステムは、いくつかの実施では、イベントに関連するデータに基づいて自動的にイベントを修正し得る。たとえば、スプリンクラの起動のためのイベントはまた、天候データをも考慮し得る。したがって、水分レベルがあるパーセンテージ未満であっても、このシステムは、天候データが今後24時間以内に雨を示すのであれば、イベントが発生したと判定しない(すなわち、アクションが実行されないようにする)ことがあり得る。
【0016】
この明細書に記述された主題の1つまたは複数の実施形態の詳細は、添付の図面および以下の説明に記述される。主題の他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
【発明を実施するための形態】
【0018】
様々な図面において、同一の参照番号および指定は、同一の要素を示す。
【0019】
図1は、関連付けられたアクションの実行のためのアクショントリガイベントが監視される例示的な環境100のブロック図である。インターネットのようなコンピュータネットワーク102、またはその組合せは、電子デバイスとシステムとの間のデータ通信を提供する。コンピュータネットワーク102はまた、1つまたは複数のゲートウェイによって、1つもしくは複数のワイヤレスネットワーク103を含み得るか、または、1つもしくは複数のワイヤレスネットワーク103とデータ通信し得る。
【0020】
物理的なデータソース104は、物理的なエンティティに関するデータを提供するデバイス、システム、またはサービスである。たとえば、物理的なデータソース104は、物理的なエンティティの状況を指定するデータ信号によって、自身の状況についてレポートする物理的なアイテムであり得る。たとえば、その動作ステータスと、土壌水分レベルのようなセンサ読取値とを提供するスプリクラヘッド、ドアが施錠されているか開錠されているかを記述するデータを提供するドアロック、その場所を提供する自動車等である。あるいは、物理的なデータソース104は、自己に関するデータ、その場所等を提供するシステムであり得る。これらシステムの例は、住宅を監視するセキュリティシステム、ビルディング内の照明制御システム、駐車場占有検出および監視システム等を含む。これらは単に、物理的なデータソースの少数の例にすぎず、物理的なエンティティに関するデータを提供する他の任意の物理的なデータソース104が使用され得る。
【0021】
この明細書において使用されるように、物理的なエンティティは、物理的な環境特徴(Physical Environment Feature)が、物理的なデータソース104によって監視され得る実体的なエンティティである。物理的なエンティティは、物理的なデータソース104自身であり得るか、または、物理的なデータソース104が監視している何かであり得る。後者の場合、物理的なエンティティは、ユーザによって指定され得、たとえば、ユーザは、場所におけるパッケージの存在について監視することを所望するのであれば、ユーザは、物理的なエンティティがパッケージであることを指定し得、ユーザは、特定の駐車場所における自動車の存在または不在等について監視することを所望するのであれば、ユーザは、物理的なエンティティが自動車であることを指定し得る。同様に、物理的な環境特徴は、ユーザが、アクションをトリガするために使用することを望むエンティティに関連する特徴であり得る。
【0022】
ユーザデバイス106は、ユーザの制御下にあり、ネットワーク102を介してリソースを要求および受信することができ、また、他のアクションを実行することが可能な電子デバイスである。例示的なユーザデバイス106は、パーソナルコンピュータ、モバイル通信デバイス、ウェアラブルデバイス、および、ネットワーク102を介してデータを送信および受信できる他のデバイスを含む。
図1の例では、ユーザデバイス106はスマートフォンである。例示的なスマートフォンは、
図5を参照して以下に記述される。ユーザデバイス106は、ネットワーク102および103とのワイヤ接続およびワイヤレス接続によって、それぞれネットワーク102および103を介して通信し得る。ユーザデバイス106はまた、中間デバイスと、WiFi、Bluetooth(登録商標)等のような短距離ワイヤレストランシーバとによって、ネットワーク102にアクセスするデバイスであり得る。
図5を参照して記述されるように、ユーザデバイスは、様々なプログラムおよび機能のためのデバイスアクションの設定を実行できる。
【0023】
ユーザデバイス106は、複数のサービスを提供するクラウドサービスプロバイダ112によってホストされたアカウントのような、ユーザアカウントに関連付けられ得る。これらサービスは、検索(とりわけ、ウェブ、イントラネット、ドキュメント、およびアプリケーション)、ウェブメール、カレンダ、ソーシャルネットワーキング、メッセージング、ドキュメントストレージおよび編集、電子アシスタントサービス等を含み得る。アカウントデータ114は、ユーザデバイス106のアカウントに特有のデータを記憶し得る。さらに、
図1には1つのユーザデバイス106しか図示されていないが、複数のユーザデバイス106が、環境に含まれ得る。
【0024】
いくつかの実施では、ユーザデバイス106のユーザは、イベントトリガを指定し、イベントトリガをアクションに関連付け得る。イベントトリガ(あるいは、単に「イベント」)の発生によって、その関連付けられたアクションが、実行される。イベントおよびアクションの指定は、様々なユーザインターフェース、音声コマンド処理システム、およびインタラクションモデルによって容易化され得る。典型的には、以下により詳細に記述されるように、ユーザは、イベントのアクションとの関連付けを指定し得る。
【0025】
アクショントリガ処理システム120は、イベントとアクションとの関連付けを受信し、アクショントリガを、アクショントリガデータストア126へ記憶する。この明細書において使用されるように、イベントとアクションの関連付けは、「アクショントリガ」と称される。アクショントリガ処理システム120は、
図1において分離されたエンティティとして図示される一方、アクショントリガ処理システム120は、クラウドサービスプロバイダ112において、または、その代わりに、各サードパーティによって分離されたシステムとして実装され得る。いくつかの実施形態では、アクショントリガ処理システム120、またはその部分部品は、ユーザデバイス106の一部を形成し得るか、または、ユーザデバイス106に記憶され得る。
【0026】
アクショントリガプロセッサ124は、どのイベントが満たされているか、および、満たされていると判定されたイベントに関連付けられたアクションを実行すべきか否かを判定するために、イベントデータ128へアクセスし得る。本明細書で使用されるように、イベントデータ128は、イベントが発生したか否かを判定するために使用され得る任意のデータであり、この特定のアプリケーションでは、物理的なデータソース104によってレポートされたデータを含む。たとえば、物理的なデータソース104によってレポートされたデータを含むイベントデータ128は、サードパーティによってアクショントリガ処理システム120へ提供されるデータであり得るか、または、アクショントリガ処理システム120によって定期的に要求されるデータであり得る。
【0027】
アクショントリガプロセッサ124は、アクショントリガデータストア126にアクショントリガを記憶するであろう。アクショントリガデータ126に記憶された複数のアクショントリガAT1、AT2、...ATnが存在し得る。(たとえば、ユーザによって生成された、または、以前に実施された)アクショントリガのグループは、ユーザデバイス106において見られ得、ユーザは、ユーザデバイス106において、任意の時間において、アクショントリガに対する変更(たとえば、追加、削除、修正)を行い得る。複数のアクショントリガの各々は、アクションに関連付けられた1つまたは複数のイベントE1、E2、...Enを有し得る。イベントが発生すると、アクショントリガプロセッサ124は、アクションが、実行されるようにし得る。このアクションは、イベントが発生したことの通知の提示、(たとえば、ユーザデバイスへコマンドを発行することによって、サードパーティアプリケーションもしくはサードパーティシステムを介して)部分的にもしくは完全に自動的に実行され、ユーザデバイスから分離されたアクション、または、別のアクションを実行せよとのプロンプトの提示、のうちの1つまたは複数であり得る。
【0028】
このアクションはまた、別の物理的なエンティティによって実行される、または、ロボットエンティティのような別の物理的エンティティに関連するアクションであり得る。たとえば、午後のための降水予報がないような特有の天候状況のためのイベントを考慮すると、アクションは、ロボット芝刈デバイスに芝を刈らせることであり得る。
【0029】
いくつかの実施では、アクショントリガ処理システム120は、ユーザの信用証明を指定し、いくつかのアクションの実行を許可するために使用される信用証明データ130を含む。たとえば、ユーザの代わりに他のいくつかの金融または法的な契約を購入または確立するアクションは、ユーザに対して、信用証明を提供することを要求する。信用証明は、イベントがトリガした場合に要求され得るか、または、その代わりに、イベントおよびアクションの関連付けを確立する場合に要求され得る。例示的な信用証明は、ユーザ識別子、パスワード等を含み得る。さらに、いくつかの実施では、ユーザは、信用証明が以前に提供された場合、たとえば、ユーザが、セキュアなネットワークとの認証された接続を確立した場合に、許可され得る。
【0030】
ユーザはまた、ユーザが通知を見て応答することができる適切な時間中にのみ、通知が提供されるべきであることを指定し得る。たとえば、ユーザはまた、ユーザのカレンダに従って、ユーザの応答可能性に基づいて、ユーザが応答不可能であれば、ユーザには通知されないという状況を設定し得る。したがって、この通知の提示は、ユーザが現在、アポイントメントに対応していることをユーザのカレンダが示す場合、たとえば、ユーザが、ユーザの業務カレンダにおいてスケジュールされたように会議に出席しているのであれば、遅延され得る。アクションが実行されるべき他の状況もまた、指定されたイベント発生に加えて使用され得る。
【0031】
上述されたように、アクショントリガ処理システム120によって、物理的なエンティティのためのイベントを生成し監視することが可能となる。アクショントリガを生成する処理は、物理的なエンティティのためのイベントを生成し、実行されるべきアクションをイベントに関連付けるための例示的な処理200のフロー図である
図2Aを参照して記述される。処理200は、ユーザデバイスのような電子デバイスによって実行され得るか、または、その代わりに、ユーザデバイスから選択データを受信することに応じてサーバシステムによって実行され得る。
【0032】
処理200は、物理的なエンティティのためのイベントが監視されるべき物理的な環境特徴を指定するデータを受信する(202)。物理的なエンティティは、様々な手法で識別され得る。データは、ユーザデバイスから、または、ユーザがインタラクトした他のあるデバイスから、受信され得る。たとえば、ユーザは、物理的なエンティティの記述を入力することによって、物理的なエンティティのリストから物理的なエンティティを選択することによって、または、他のいくつかの方式によって、物理的なエンティティを指定し得る。あるいは、物理的なエンティティは、自身を識別し得る。たとえば、フードトラックは、ユーザデバイスと通信し得、自身を識別し得、ユーザへ、アクショントリガを生成するための機会を提供し得る。
【0033】
物理的な環境特徴は、物理的なエンティティ自身、または、物理的なエンティティの環境の何れかを記述する。後者の一例は、物理的なエンティティが配置され得る場所または一連の場所である。たとえば、特定の自動車(または、任意の自動車)の物理的なエンティティについて、物理的な環境特徴は、特定の駐車場空間であり得る。同様に、運送用コンテナの物理的なエンティティについて、物理的な環境特徴は玄関先であり得る。同様に、スプリンクラシステムの物理的なエンティティについて、物理的な環境特徴は、システムの状態であり得る。さらに別の例では、アクショントリガ処理システムと通信するワイヤレス対応システムを利用するフードトラックは、フードトラックの場所に関連する様々な環境特徴のリストを提供し得る。記述される物理的な環境特徴が、ユーザによって選択され得る。
【0034】
処理200は、環境特徴を指定するデータに応じて、1つまたは複数のイベントの各々のための入力を表示するアクショントリガメニューを、デバイスに表示させるデータを提供する(204)。たとえば、ユーザが、物理的なエンティティと、対応する環境特徴を指定すると、ユーザは、物理的なエンティティおよび物理的な環境特徴のためのイベントを定義するオプションを提示され得る。上記例に続いて、特定の自動車(または、任意の自動車)の物理的なエンティティについて、イベントは、特定の駐車場空間における自動車の存在(または、その代わりに、自動車の不在)であり得る。同様に、運送用コンテナの物理的なエンティティについて、イベントは、玄関先における運送用コンテナの存在であり得る。同様に、スプリンクラシステムの物理的なエンティティについて、イベントは、たとえば、スプリンクラシステムの起動のような、システムの特定の状態であり得る。最後に、フードトラックの物理的なエンティティについて、イベントは、現在の場所、住所、またはユーザの将来の場所に対するフードトラックの場所であり得る。
【0035】
いくつかの実施では、イベントのリストが決定され、物理的なエンティティおよび物理的な特徴に対応するイベントに対する物理的な環境特徴の関連付けに基づいて、ユーザへ提示され得る。たとえば、物理的なエンティティおよび場所の環境特徴が選択された場合、イベントは、その場所におけるエンティティの存在または不在であり得る。同様に、物理的なエンティティと、物理的なエンティティの状態(たとえば、オン、オフ等)の環境特徴とが選択された場合、イベントは、物理的なエンティティの特定の状態であり得る。
【0036】
処理200は、イベントを指定するための、イベント選択入力のうちの1つの選択を指定するデータをデバイスにおいて受信する(206)。ユーザは、これらイベントのうちの1つを選択し得、それを行うことによって、アクショントリガプロセッサ124が、イベントの発生について監視するように構成されるであろう。追加のイベントおよび状況もまた選択され得る。たとえば、イベントが時間ウィンドウ内で発生する場合にのみ、イベントが発生するように決定され得るように、時間ウィンドウが選択され得、イベントが、時間ウィンドウ外で発生するのであれば、アクショントリガプロセッサは、イベントが発生していないと判定するであろう。上記例のうちの1つを用いて続けるために、車が特定の駐車場空間において提示されるイベントはさらに、車が午前8:00と午後5:00との間の任意の時間において駐車場空間に存在することに状況付けられ得る。したがって、車が、午前7:30に駐車場空間に到着し、そこに1時間留まると、イベントは、午前8:00に発生するように決定されるであろう。
【0037】
処理200は、イベントの発生に応じて行われるべきアクションをイベントに関連付ける(208)。このアクションは、イベントの発生が判定された場合にユーザが実行されたいアクションである。このアクションは、たとえば、何かをするようにとのリマインダの提示、または、ユーザの代わりに何かを行うための確認コマンドの提示、または、アクションを実行するためのリマインダもしくは確認なしで、完全にもしくは部分的に自動的に実行されるアクションであり得る。
【0038】
いくつかの実施では、アクションは、利用可能なアクションのリストから選択され得る。たとえば、フードトラックの場合、注文の自動発注およびその購入、またはフードトラックの場所の通知、またはこれら両方の組合せのような、様々なアクションが利用可能であり得る。他の実施では、ユーザは、イベントと独立してアクションを定義し得る。たとえば、フードトラックの場合、ユーザは、「あなたと昼食を取りたいのか否かをジュリアに尋ねて下さい」と記述された通知を提示されることを所望し得る。
【0039】
処理200は、物理的なエンティティのためのイベントを示すデータと、イベントに関連付けられたアクションを示すデータとを提供する(210)。ユーザが、行われるべきイベントおよびアクションを定義すると、たとえば、ユーザデバイス106またはアクショントリガ処理システム120のようなシステムは、データを、イベントとアクションとの関連付けであるアクショントリガとして記憶し、アクショントリガを、アクショントリガデータストアへ記憶する。データストアは、その後、監視のためにシステムによってアクセスされる。
【0040】
図2Bは、物理的なエンティティのためのイベントの関連付けを監視し、イベントの発生に基づいてアクションを実行するための例示的な処理250のフロー図である。処理250は、ユーザデバイスによって実行され得るか、または、その代わりに、ユーザデバイスから選択データを受信することに応じて、サーバシステムによって実行され得る。
【0041】
処理250は、アクショントリガデータストアにおけるアクショントリガへアクセスし、監視されるべきイベントと、実行されるべきアクションとを決定する(252)。各アクショントリガは、イベントの発生を監視することに基づいて、監視されるべきイベントと、実行されるべきアクションとを定義するデータを含む。
【0042】
処理250は、物理的なエンティティのためのイベントの発生について監視する(254)。イベントは、たとえばN分毎のように、定期的にアクショントリガプロセッサ124によって監視され得るか、または、イベントが発生したとの通知を、アクショントリガプロセッサ124が、サードパーティから受信した場合に発生するように決定され得る。後者の場合、サードパーティは、通信するために、または、そうではなければ、イベントをアクショントリガプロセッサへ登録するために、1つまたは複数のAPIを利用し得る。たとえば、上述されたフードトラックの場合、フードトラック会社は、アクショントリガ処理システム120によって提案されるサービスを利用し、アクショントリガ処理システム120へデータを提供し得る。
【0043】
処理250は、イベントの発生に応じて、イベントに関連付けられたアクションが、実行されるようにする(256)。上述されたように、アクションは、何かをせよとのリマインダの提示であり得る。このアクションはまた、ユーザの代わりに、別のアクションが実行されるようにするための確認コマンドの提示であり得る。あるいは、このアクションは、このアクションを実行せよとのリマインダまたは確認なしで自動的に実行されるものであり得る。このアクションは、ユーザデバイスによって、または、その代わりに、分離されたシステムによって実行され得る。
【0044】
通知の場合、ユーザはまた、通知が、ユーザが通知を見て、通知へ応答することができる適切な時間中にのみ提供されるべきであることを指定し得る。たとえば、ユーザのカレンダに基づいて、ユーザが会議中であれば、ユーザはまた、ユーザは通知されるべきではないとの状況を設定し得る。したがって、ユーザのカレンダが、ユーザが現在アポイントに対応していることを示す場合、たとえば、ユーザの仕事カレンダでスケジュールされているように、ユーザが会議中であれば、通知の提示は、遅延され得る。モバイルオペレーティングシステム(OS)プッシュ通知、テキストメッセージ、電子メール、ウェブもしくはデジタルアシスタントアラート、または他の形式の通知を含む様々な通知タイプが使用され得る。デジタルアシスタントアラートの場合、デジタルアシスタントは、ユーザに対して通知するか、または、ユーザの代わりにアクションを行うための適切な時間、場所、および方法を決定し得る。たとえば、ユーザが商談中であれば、デジタルアシスタントは、ユーザに通知することを、ユーザが商談を終えるまで、または、ユーザの就業日の終了後まで、待機し得る。
【0045】
さらに、いくつかの実施では、ユーザが定義したアクションの提示、または、ユーザが定義したアクションの実行が、ユーザデバイス106以外のデバイスへ提供され得る。たとえば、この提示は、ユーザに近いと判定されたデバイス、または、ユーザが見るか、もしくは注目しているデバイスへ提供され得る。たとえば、ユーザのユーザデバイス106が、ユーザによって、閾値期間の間使用されておらず、ユーザおよびユーザが別のデバイスを使用しているのであれば、アクション処理システム120は、ユーザが定義したアクションを、ユーザが使用しているデバイスへ提示することを決定し得る。
【0046】
アクショントリガの生成、および、実行されているアクションからの結果の提示を容易にするために、様々なユーザインターフェースおよびインタラクションモデルが使用され得る。
図3A〜
図3Cおよび
図4A〜
図4Cは、いくつかのユーザインターフェースの例である。
【0047】
図3A〜
図3Cは、ユーザデバイス300において、アクショントリガが生成され、実行されているアクションの結果が表示されるユーザインターフェース302、322、および340の図である。この例では、フードトラックの物理的なエンティティのためのアクショントリガが生成される。物理的な環境特徴は、フードトラックの場所であり、イベントは、その場所における、または、その場所の閾値距離内のフードトラックの存在である。実行されているアクションは、ユーザへの通知である。
【0048】
図3Aは、アクショントリガを生成するためのプロンプト304が提示されるユーザインターフェース302を描写する。ユーザデバイス300は、様々な手法で、プロンプトを提示するようにされ得る。たとえば、ユーザデバイスが、ベンダからの購入を完了するために使用されるのであれば、プロンプトは自動的に提示され得る。あるいは、ユーザは、ウェブサイトへナビゲートするか、または、プロンプトが提示されるようにする本来のアプリケーションを起動し得る。また別の例において、ユーザデバイスは、フードトラックにおけるシステムと通信するために、NFC/Bluetooth(登録商標)または他のパーソナルエリアRF技術を使用し得る。後者の例では、ユーザは、アクショントリガを確立する目的のために、ユーザデバイス300が、「発見される」ことを可能にする選択を設定し得、トリガの生成を容易にするために、フードトラックを識別するデータ信号をブロードキャストし、オプションとして、ユーザデバイスに、ユーザインターフェースを表示させる、任意の近傍のユーザデバイスへのメッセージをトリガするデバイスを、フードトラックは含み得る。さらに別の例では、ユーザデバイスは、フードトラックにおいて、QRコード(登録商標)もしくはバーコードのようなコードをスキャンし得るか、または、「次にここにある場合に警告されるために、フードトラックにおいてあなたの電話をタップして下さい」と書かれた標識をフードトラックにおいてタップし得る。これは、ユーザデバイスに、短距離RF信号プロトコルによってデータ信号を受信させる。
【0049】
2つのオプションが提示された。第1のオプション306の選択は、
図3Bのユーザインターフェースへ続き、第2のオプション308の選択は、処理を終了させるであろう。次に
図3Bに移って示すように、ユーザインターフェース322は、第2のプロンプト324と、各々が物理的な環境特徴のためのイベントに対応している3つのオプション326、328、および330とを含む。第1のオプション326は、フードトラックが現在占有している場所の近くにフードトラックが再び存在する場合に発生するイベントを定義する。第2のオプション328は、ユーザが指定する場所の近くにフードトラックが存在する場合に発生するイベントを定義する。第3のオプション330は、フードトラックがユーザの場所の近くに存在する場合に発生するイベントを定義する。ユーザの場所は、ユーザデバイス300の場所によって決定される。
【0050】
ユーザが、第3のオプション330を選択したと仮定する。これは、フードトラックがユーザの近くに存在する次回において発生するイベントを指定するアクショントリガを生成するであろう。図示されていないが、たとえば、イベントは、平日の午前11:30から午後1:00まで時間中にのみ発生し、監視は、たとえば、次の日まで開始しないような、追加の状況を、ユーザは指定することを許可され得る。その後、アクショントリガは、監視のために、アクショントリガ処理システム120へ提供される。
【0051】
イベントが発生したか否かを判定するために、アクショントリガ処理システム120は、要求によって、または、プッシュによっての何れかで、フードトラックおよびユーザデバイスの場所データを受信し得る。場所データは、物理的なエンティティであるフードトラックの現在の場所と、ユーザデバイスの場所の物理的な環境特徴とを指定する。アクショントリガ処理システム120は、フードトラックの現在の場所の、ユーザデバイスの場所への近接度が、閾値近接度未満であるか否かを判定する。閾値近接度は、ユーザによって設定され得るか、または、システム120によって自動的に設定され得る。たとえば、ある距離の半径が使用され得る。システム120は、近接度が、閾値近接度未満である場合にイベントが発生したと判定する。
【0052】
場所データが決定され得る別の手法は、視覚的なトラッキングシステムからデータを受信することによる。たとえば、ユーザが特定のフードトラックを指定した場合、特定のフードトラックの場所は、たとえば、そのような物理的なエンティティを追跡する能力を有する衛星システムによって、フードトラックの場所を監視および追跡することによって決定され得る。衛星システム(または、他の任意の視覚ベースの追跡システム)は、その後、監視および処理のために、場所データを、アクショントリガ処理システム120へ提供し得る。
【0053】
図3Cは、イベントが発生したとの判定に応じて通知342が提示されるユーザインターフェース340を描写する。通知342の代わりに、または、通知342に加えて、メニューアイテムの先行購入等のような、他のアクションもまた実行され得る。
【0054】
図4A〜
図4Cは、ユーザデバイス300において、別のアクショントリガが生成され、実行されたアクションの結果が表示されるユーザインターフェース402、420、および440の図である。この例では、配達アイテムの物理的なエンティティのためのアクショントリガが生成される。物理的な環境特徴は、玄関先の場所であり、イベントは、玄関先における配達アイテムの存在である。実行されるアクションは、ユーザへの通知である。
【0055】
図4Aでは、ユーザは、アクショントリガの生成を容易にするユーザインターフェースを起動した。ユーザデバイス300は、たとえば、ユーザのセキュリティシステムから、データを受信することができ、ユーザは、画像404に図示されるように、ユーザの正面玄関のビデオフィードを選択した。プロンプト406は、ユーザが、特定のビデオカメラを選択したことを記述し、通知を受信するためのオプション408、410、412、および414を提供する。
【0056】
アクショントリガ処理システム120(または、その代わりに、ユーザデバイス400)は、オプション408、410、および412にリストされたもののような様々なオブジェクトを認識するように学習された機械学習システムを含み得る。ユーザはまた、異なるオブジェクトを記述するためのオプション414を選択し得る。特定のオブジェクトを検出するために、様々な機械学習画像認識モデルが使用され得る。
【0057】
最後に、ユーザが、実行されるべき異なるアクションを指定することを望むのであれば、オプション416が選択され得る。そのような異なるアクションは、オブジェクトが検出された場合における玄関先におけるオブジェクトの画像を備えた電子メール、または、ドアベルを自動的に鳴らすこと、または、イベントに関連付けられ得る他の任意のアクションを含み得る。
【0058】
この例では、ユーザは自分の車を洗うことを所望する場合があるが、濃縮自動車用石鹸を切らしていることに気付いたと仮定する。ユーザは、オンライン小売店から、濃縮石鹸のボトルを注文し、配達を待っており、パッケージが配達された場合に、自分の車を洗うようにリマインドされることを望む。したがって、ユーザは、オプション408を選択する。
【0059】
オプション408の選択に応じて、
図4Bのユーザインターフェース420が表示される。ユーザインターフェース420は、確認メッセージおよびプロンプト422を含む。入力ディスプレイ424は、ユーザがマイク入力426を使用して生成しているリマインダコマンドメッセージを図示する。ユーザの入力が完了すると、対応するアクショントリガが生成される。
【0060】
アクショントリガは、その後、アクショントリガ処理システム120へ送信される(または、その代わりに、ユーザデバイスが監視機能を実行するのであれば、ユーザデバイス300のみへ残される)。
【0061】
システムはその後、イベントの発生について監視する。この例では、システムは、玄関先場所の物理的な環境特徴の、ビデオフレームのような画像を反復的に受信し得る。各反復について、配達ボックスの物理的なエンティティが、画像内に描写されているか否かを判定するために、画像処理が実行される。配達ボックスが、画像に存在すると判定された場合、システムは、イベントが発生したと判定し、リマインダを提示する関連付けられたアクションを実行する。
【0062】
図4Cは、イベントが発生したとの判定に応じて通知446が提示されるユーザインターフェース440を描写する。ユーザインターフェースは、画像442を含み、画像に描写されているものは、玄関先におけるコンテナ444である。通知446は、イベントを記述しており、ユーザによって指定されたリマインダを含む。
【0063】
上述されたように、いくつかの実施では、監視されているイベントは、システム120による自動的な変更の対象であり得、アクションもまた然りであり得る。これら変更は、イベントまたはアクションに関連付けられた値に影響する状況の結果であり得る。たとえば、フードトラックの例に戻って、システムは、閾値距離が1,000メートルである場合に提供される通知からのフィードバックを分析し得る。システム120は、通知を提供された場合にフードトラックから500メートル以上の距離にいるユーザが、通知を提供された場合にフードトラックから500メートル未満の距離にいるユーザよりもはるかに低い率でしかフードトラックに集まらないと判定し得る。したがって、システムは、イベント発生を1,000メートルから500メートルへ変更し得る。同様に、アクションはまた、システム120による自動変更をも受け得る。
【0064】
さらに、ユーザは、トリガを確立するために、特定のユーザデバイスを利用する必要はない。その代わりに、ユーザ入力がユーザに関連付けられ得る任意のデバイスが、トリガを確立するために使用され得る。たとえば、ユーザは、単に、出掛ける時に、セキュリティカメラへ話しかけるだけでよい。セキュリティカメラは、ユーザのユーザアカウントに関連付けられたシステムへ固定されているので、結果として得られる音声コマンドは、ユーザのためのアクショントリガを確立するために使用され得る。自動車洗剤の例に戻って、ユーザは、仕事に向かう際に、単に、カメラへ「ボックスが配達されたら教えて」と発声するだけでよい。既存の意味論的な音声コマンドアルゴリズムを利用するシステム120は、ユーザの音声コマンドを解析し、ユーザのためのアクショントリガを確立し得る。
【0065】
いくつかの実施では、ユーザは、アクションの対象が別のユーザであるアクションを指定し得る。たとえば、自動車洗剤の例に戻って、ユーザは、仕事に向かう際に、「ボックスが配達されたら玄関で自動車洗剤を受け取って、私の車を洗うようにジャックチャイルドへ伝えて」とカメラに向かって発声し得る。システム120は、ユーザの連絡先情報へアクセスし、ジャックチャイルドがユーザの息子であると判定し得、ボックスが配達された場合、ジャックチャイルドに関連付けられたデバイスにおいて、たとえば「玄関で自動車洗剤を受け取って、お父さんの車を洗って」のような必要な通知を生成するであろう。
【0066】
それに加えて、アクションが、イベントから続くと判定された場合、アクションは指定される必要はない。アクションは、たとえばユーザ履歴に基づいて、または、アクションをイベントに関連付けるエンティティ関連モデルに基づいて、イベントから続くと判定され得る。たとえば、ユーザは、塀で囲われた中庭にペットを出し、「玄関で犬に注意」という音声コマンドを発声し得る。以前のアクショントリガ(たとえば、「犬を玄関で見たら、中に入れて下さい」、「犬が玄関にいたら、私に通知して下さい」等)の何れかのユーザ履歴に基づいて、システムは、後に玄関において犬を検出した場合、ユーザに通知するためのアクションを推論し得るか、または、その代わりに、玄関が、そのような遠隔アクチュエーションから、そのように装備されているのであれば、犬を入れるために玄関を自動的に開き、その後、玄関を閉じ得る。
【0067】
いくつかの実施では、イベントは、アクションの実行後、または、アクションが実行された後の遅延後に、再び監視され得る。これは、ユーザ介在なしでアクショントリガの「リセット」を可能にし、反復的なイベントに基づく反復的なアクションのコンテキストにおいて有用である。たとえば、カメラを備えた冷蔵庫器具は、牛乳のカートンのような、ある食料品アイテムを監視し得る。牛乳のカートンが、1/3しか満たされていない場合、このシステムは、牛乳の追加のカートンを注文するアクションを実行し得る。このシステムはまた、応答時間を学習し、イベントトリガを自動的に調節し得る。たとえば、牛乳のための配達時期が、牛乳のカートンがないと冷蔵庫によって検出された時に、カートンが到着する前にユーザが牛乳を飲み切るようなものであれば、システムは、2/3が空になったのではなく、半分が空になった牛乳のカートンについて監視し、カートンの半分が空になった場合、注文を行い得る。
【0068】
システムはまた、トリガが調節されるべきであることを示す他のデータに基づいて、トリガを調節し得る。そのようなデータは、アクションによって達成されるユーザの特定のニーズが、アクションが実行された後に達成されなくなることを示し得るデータを含む。たとえば、消費ニーズを達成するアクションは、消費率を示すデータに基づいて調節され得る。例示するために、システムは、ユーザのカレンダにアクセスすることによって、一週間、ユーザに客があることを識別する。システムは、ゲストの数に基づいて、客がいる間、注文するために、イベントを、牛乳の残りを1/3から半分へ変更すべきであると判定し得る。同様に、システムが、延長された期間、ユーザの住宅にさらなる人を認識したのであれば、システムは、それに従って、アクショントリガを調節し得る。
【0069】
本明細書で議論されたシステムが、ユーザに関する個人情報を収集するか、または、個人情報を活用し得る事態では、ユーザは、プログラムまたは特徴がユーザ情報(たとえば、ユーザのソーシャルネットワークに関する情報、ソーシャルアクションもしくはアクティビティ、職業、ユーザの嗜好、ユーザの現在の場所、場所軌跡、自宅/職場のような推論された場所、推論されたコンテキスト、カレンダデータ、来るべきイベント/電子メールからの予約等)を収集するか否かを制御するための、または、ユーザへより関連性のあり得るコンテンツをコンテンツサーバから受信するか否か、および/または、どのように受信するかを制御するための機会を提供され得る。それに加えて、あるデータは、記憶または使用される前に、1つまたは複数の手法で取り扱われ得る。これによって、個人的に識別可能な情報が削除されるようになる。たとえば、ユーザについての個人的に識別可能な情報が判定されないように、ユーザの識別情報が取り扱われ得るか、または、場所情報が取得された、ユーザの地理的場所が(都市、郵便番号、または州レベルのように)一般化され、これによって、ユーザの特定の場所が判定されないようになる。したがって、ユーザは、ユーザに関する情報が、コンテンツサーバによってどのようにして収集され、使用されるのかに関する制御を有し得る。
【0070】
図5は、例示的なモバイルコンピューティングデバイスのブロック図である。この例示では、モバイルコンピューティングデバイス510は、モバイルコンピューティングデバイス510のユーザへコンテンツを提示し、タッチベースのユーザ入力を受信するためのタッチスクリーンディスプレイデバイス512を含むハンドヘルドモバイル電話(たとえば、スマートフォン、またはアプリケーション電話)として描写される。様々な異なる入力構成要素のように、他の視覚的、触覚的、および聴覚的な出力構成要素(たとえば、LEDライト、触覚出力のための振動機構、または、音調的な、音声生成された、もしくは記録された出力を提供するためのスピーカ)もまた提供され得る。
【0071】
モバイルコンピューティングデバイス510は、メカニカルまたはタッチ式のボタン518a〜dを含み得る。それに加えて、モバイルコンピューティングデバイスは、1つまたは複数のスピーカ520によって出力される音量を調節するためのボタンと、モバイルコンピューティングデバイスをオンまたはオフするためのボタンとを含み得る。マイクロホン522は、モバイルコンピューティングデバイス510が、可聴音を、デジタル的にエンコードされ、コンピュータ可読メモリに記憶され、または、別のコンピューティングデバイスへ送信され得る電気信号へ変換することを可能にする。モバイルコンピューティングデバイス510はまた、デジタルコンパス、加速度計、近接センサ、および周辺光センサを含み得る。
【0072】
モバイルコンピューティングデバイス510は、タッチスクリーン512を用いてグラフィックユーザインターフェースを提示し得る。グラフィックユーザインターフェースは、1つまたは複数のグラフィックインターフェース要素の集合であり、静的であり得る(たとえば、ディスプレイは、ある期間にわたって同じであり続けるように見える)か、または動的であり得る(たとえば、グラフィックユーザインターフェースは、ユーザ入力なしで動作するグラフィックインターフェース要素を含む)。
【0073】
モバイルコンピューティングデバイス510は、他のアプリケーション、コンピューティングサブシステム、およびハードウェアを含み得る。音声認識サービス572は、モバイルコンピューティングデイバスのマイクロホン522によって受信された音声通信データを受信し得、音声通信を、対応するテキストデータへ翻訳し得るか、または音声認識を実行し得る。
【0074】
モバイルコンピューティングデバイス510は、音声およびデータサービスのような様々なサービスを提供するために、1つまたは複数のネットワークとワイヤレスに通信し得る。
【0075】
この明細書において記述された主題および動作の実施形態は、デジタル電子回路において、または、この明細書において開示された構成およびそれらの構成的均等物を含むコンピュータソフトウェア、ファームウェア、もしくはハードウェアにおいて、または、これらのうちの1つもしくは複数の組合せにおいて実施され得る。この明細書に記述された主題の実施形態は、データ処理装置による実行のために、または、データ処理装置の動作を制御するために、コンピュータ記憶媒体においてエンコードされた、1つまたは複数のコンピュータプログラム、すなわち、コンピュータプログラム命令の1つまたは複数のモジュールとして実施され得る。
【0076】
コンピュータ記憶媒体は、コンピュータ可読記憶デバイス、コンピュータ可読記憶基板、ランダムもしくはシリアルアクセスメモリアレイもしくはデバイス、または、これらの1つもしくは複数の組合せであり得るか、コンピュータ可読記憶デバイス、コンピュータ可読記憶基板、ランダムもしくはシリアルアクセスメモリアレイもしくはデバイス、または、これらの1つもしくは複数の組合せに含まれ得る。さらに、コンピュータ記憶媒体は、伝搬信号ではないが、コンピュータ記憶媒体は、人工的に生成された伝搬信号においてエンコードされたコンピュータプログラム命令のソースまたは宛先であり得る。コンピュータ記憶媒体はまた、1つまたは複数の分離された物理的な構成要素または媒体(たとえば、複数のCD、ディスク、または他の記憶デバイス)であり得るか、1つまたは複数の分離された物理的な構成要素または媒体(たとえば、複数のCD、ディスク、または他の記憶デバイス)に含まれ得る。
【0077】
この明細書に記述された動作は、1つまたは複数のコンピュータ可読記憶デバイスに記憶された、または、他のソースから受信されたデータについて、データ処理装置によって実行される動作として実施され得る。「データ処理装置」という用語は、例として、プログラマブルプロセッサ、コンピュータ、システムオンチップ、または、これら前述したもののうちの複数または組合せを含む、データを処理するためのすべての種類の装置、デバイス、およびマシンを包含する。装置は、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含み得る。装置はまた、ハードウェアに加えて、論じているコンピュータプログラム、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想マシン、または、これらの1つもしくは複数の組合せを構成するコードのための実行環境を生成するコードを含み得る。装置および実行環境は、ウェブサービス、分散型コンピューティングおよびグリッドコンピューティングインフラストラクチャのような、様々な異なるコンピューティングモデルインフラストラクチャを実現し得る。
【0078】
コンピュータプログラムの実行のために適切なプロセッサは、例によれば、汎用マイクロプロセッサおよび専用マイクロプロセッサの両方、ならびに、任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサを含む。一般に、プロセッサは、読取専用メモリ、またはランダムアクセスメモリ、またはこれらの両方から、命令およびデータを受信するであろう。コンピュータの必須要素は、命令に従ってアクションを実行するためのプロセッサと、命令およびデータを記憶するための1つまたは複数のメモリデバイスとである。一般に、コンピュータはまた、たとえば磁気、磁気光ディスク、または光ディスクのように、データを記憶するための1つもしくは複数の大容量デバイスを含むか、または、これらからのデータの受信、もしくはこれらへのデータの伝送、もしくはその両方のために動作可能に結合されるであろう。しかしながら、コンピュータは、そのようなデバイスを有する必要はない。
【0079】
この明細書に記述された主題の実施形態は、たとえばデータサーバのようなバックエンド構成要素を含む、もしくは、たとえばアプリケーションサーバのようなミドルウェア構成要素を含む、もしくは、たとえばグラフィクユーザインターフェース、もしくは、ユーザがこの明細書に記述された主題の実施とインタラクトし得るウェブブラウザを有するユーザコンピュータのようなフロントエンド構成要素を含むコンピューティングデバイス、または、1つもしくは複数のそのようなバックエンド、ミドルエンド、もしくはフロントエンド構成要素の任意の組合せにおいて実施され得る。システムの構成要素は、たとえば通信ネットワークのようなデジタルデータ通信の任意の形式または媒体によって相互接続され得る。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)および広域エリアネットワーク(「WAN」)、インタネットワーク(たとえば、インターネット)、およびピアツーピアネットワーク(たとえば、アドホックピアツーピアネットワーク)を含む。
【0080】
この明細書は、多くの特有の実施詳細を含むが、これらは、いかなる発明の範囲、または、特許請求され得るものの範囲に対する限定として解釈されるべきではなく、むしろ、特定の発明の特定の実施形態に特有な特徴の記述として解釈されるべきである。別個の実施形態のコンテキストにおいて、この明細書において記述されているいくつかの特徴はまた、単一の実施形態における組合せにおいても実施され得る。逆に、単一の実施形態のコンテキストにおいて記述されている様々な特徴はまた、複数の実施形態において別々に、または、任意の適切な部分組合せにおいて実施され得る。さらに、特徴は、いくつかの組合せにおいて動作するものとして上述されている場合があり、先ずそのように特許請求されている場合さえあるが、特許請求された組合せからの1つまたは複数の特徴は、いくつかの場合において、これら組合せから削除され得、特許請求された組合せは、部分組合せ、または、部分組合せのバリエーションを対象とし得る。
【0081】
同様に、動作は、特定の順序で図面において描写されているが、これは、所望される結果を達成するために、そのような動作が、図示された特定の順序、もしくは、シーケンシャルな順序で実行されること、または、例示されたすべての動作が実行されることを必要としているとして理解されるべきではない。いくつかの環境では、マルチタスクおよび並列処理が有利であり得る。さらに、上述された実施形態における様々なシステム構成要素の分離は、すべての実施形態においてそのような分離を必要とするものとして理解されるべきではなく、記述されたプログラム構成要素およびシステムは一般に、単一のソフトウェア製品へ共に統合され得るか、または、複数のソフトウェア製品へパッケージされ得ることが理解されるべきである。
【0082】
このように、主題の特定の実施形態が記述されてきた。他の実施形態は、以下の特許請求の範囲の範囲内である。いくつかの場合では、特許請求の範囲に記述されたアクションは、異なる順序で実行され得、依然として所望の結果を達成できる。それに加えて、添付の図面に描写された処理は、所望の結果を達成するために、必ずしも、図示された特定の順序、またはシーケンシャルな順序を必要としない。いくつかの実施では、マルチタスクおよび並列処理が有利であり得る。