(57)【特許請求の範囲】
【請求項１】
１つ以上のプロセッサと前記１つ以上のプロセッサによる実行のための１つ以上のプログラムを格納するメモリとを備える１つ以上のコンピューティングデバイスにおいて、
複数のリストに編成されている複数のタスク項目を格納することであって、前記複数のリストのそれぞれは個別のリスト識別子を有する、ことと、
新たなタスクに関する情報を示すユーザ入力を受信することと、
前記ユーザ入力を受信したことに応じて、前記新たなタスクについてタスク項目を生成することと、
前記複数のリストのどのリストに前記タスク項目を追加するかを判定することであって、前記新たなタスクの属性を識別するために自然言語処理を用いて前記ユーザ入力を分析することを含む、ことと、
前記複数のリストの特定のリストに前記タスク項目を追加すると判定したことに応じて、
前記新たなタスクの前記識別された属性に基づいて前記タスク項目を前記特定のリストに追加し、
前記タスク項目を前記特定のリストに関連付けるデータを格納することと、
前記１つ以上のコンピューティングデバイスのうちのコンピューティングデバイスに関連した現在のコンテキストを判定することと、
前記コンピューティングデバイスに関連した前記現在のコンテキストに基づいて前記複数のリストのうちの少なくとも一部の前記個別のリスト識別子が前記コンピューティングデバイスで同時に提示されるように命令することと、を有する方法。
【請求項２】
請求項１に記載の方法であって、前記新たなタスクの前記属性を識別するために自然言語処理を用いて前記ユーザ入力を分析することは、前記ユーザ入力に関連したコンテキスト情報に基づいて前記属性を識別することを含み、前記属性は、前記ユーザ入力において明示的に特定されない、方法。
【請求項３】
請求項１に記載の方法であって、前記属性は、前記タスク項目に関連した位置を含む、方法。
【請求項４】
請求項１に記載の方法であって、前記ユーザ入力は、前記複数のリストの何れのリストも特定しない、方法。
【請求項５】
請求項１に記載の方法であって、
前記複数のタスク項目の各タスク項目に関連した位置データを格納することであって、前記複数のタスク項目からの第１部分集合のタスク項目は第１位置に関連しており、前記複数のタスク項目からの第２部分集合のタスク項目は前記第１位置とは異なる第２位置に関連している、ことと、
前記第１部分集合のタスク項目を前記複数のリストの第１リストに関連付けるとともに、前記第２部分集合のタスク項目を前記複数のリストの、前記第１リストとは異なる第２リストに関連付けるリスト関連付けデータを格納することと、
を更に有する、方法。
【請求項６】
請求項５に記載の方法であって、
前記タスク項目は、第３位置に関連しており、
前記複数のリストのどのリストに前記タスク項目を追加するかを判定することは、前記第３位置が前記第１位置の所定の距離以内にあることを判定することを含み、
前記タスク項目を前記特定のリストに追加することは、前記第３位置が前記第１位置の前記所定の距離以内にあることを判定したことに従って、前記タスク項目を前記第１リストに追加することを含む、方法。
【請求項７】
請求項５に記載の方法であって、前記コンピューティングデバイスに関連した前記現在のコンテキストを判定することは、前記コンピューティングデバイスの現在の位置を判定することを含み、前記複数のリストのうちの前記少なくとも一部の前記個別のリスト識別子が前記コンピューティングデバイスで同時に提示されるように命令することは、前記第１位置に対する前記コンピューティングデバイスの前記現在の位置と前記第２位置に対する前記コンピューティングデバイスの前記現在の位置とに基づく順序で前記第１リスト及び前記第２リストの前記個別のリスト識別子を同時に表示させることを含む、方法。
【請求項８】
請求項１に記載の方法であって、
前記複数のタスク項目の各タスク項目に関連した動作データを格納することであって、前記複数のタスク項目からの第１部分集合のタスク項目は第１動作に関連しており、前記複数のタスク項目からの第２部分集合のタスク項目は前記第１動作とは異なる第２動作に関連している、ことと、
前記第１部分集合のタスク項目を前記複数のリストの第１リストに関連付けるとともに、前記第２部分集合のタスク項目を前記複数のリストの、前記第１リストとは異なる第２リストに関連付けるリスト関連付けデータを格納することと、を更に有する方法。
【請求項９】
請求項８に記載の方法であって、前記第１動作は、電話と、購入と、検索の実行と、電子メール送信と、テキスト送信とのうちの１つである、方法。
【請求項１０】
請求項１に記載の方法であって、
前記複数のタスク項目の各タスク項目に関連したトリガーデータを格納することであって、トリガーデータは前記各タスク項目に関連した動作がいつ実行されるべきかを示す１つ以上の基準を示し、前記複数のタスク項目からの第１部分集合のタスク項目は第１タイプのトリガーデータに関連しており、前記複数のタスク項目からの第２部分集合のタスク項目は前記第１タイプのトリガーデータとは異なる第２タイプのトリガーデータに関連している、ことと、
前記第１部分集合のタスク項目を前記複数のリストの第１リストに関連付けるとともに、前記第２部分集合のタスク項目を前記複数のリストの、前記第１リストとは異なる第２リストに関連付けるリスト関連付けデータを格納することと、を更に有する方法。
【請求項１１】
請求項１０に記載の方法であって、第１タイプのトリガーデータは、前記コンピューティングデバイスの特定の位置と、前記コンピューティングデバイスのユーザが前記コンピューティングデバイスを用いて従事している特定の活動とのうちの１つである、方法。
【請求項１２】
請求項１に記載の方法であって、
（１）特定の期間に関連したタスク項目のリストと、（２）特定のタイプの輸送モードに関連したタスク項目のリストと、（３）個別の共通位置に関連したタスク項目をそれぞれが含むタスクグループのリストと、（４）（ｉ）電話動作、（ｉｉ）電子メール動作及び（ｉｉｉ）購入動作のうちの少なくとも１つを含む特定のタイプの動作に関連したタスク項目のリストと、からなるグループから選択された個別のリストにそれぞれ関連した少なくとも２つのリスト識別子を同時に表示することを更に有し、前記少なくとも２つのリスト識別子は、前記少なくとも２つのリスト識別子に関連した何れのタスク項目に関する情報も表示せずに同時に表示される、方法。
【請求項１３】
請求項１に記載の方法であって、
特定のタイプの輸送モードに関連したタスク項目のリストに関連した第１リスト識別子と、個別の共通位置に関連したタスク項目をそれぞれが含むタスクグループのリストに関連した第２リスト識別子と、を同時に表示することを更に有し、前記第１リスト識別子と前記第２リスト識別子とは、前記第１リスト識別子又は前記第２リスト識別子に関連した何れのタスク項目も表示せずに同時に表示される、方法。
【請求項１４】
請求項１に記載の方法であって、
特定のタイプの輸送モードに関連したタスク項目のリストに関連した第１リスト識別子と、（ｉ）電話動作、（ｉｉ）電子メール動作及び（ｉｉｉ）購入動作のうちの少なくとも１つを含む特定のタイプの動作に関連したタスク項目のリストに関連した第２リスト識別子と、を同時に表示することを更に有し、前記第１リスト識別子と前記第２リスト識別子とは、前記第１リスト識別子又は前記第２リスト識別子に関連した何れのタスク項目に関する情報も表示せずに同時に表示される、方法。
【請求項１５】
請求項１に記載の方法であって、
第２リスト及び第２の新たなタスクに関する情報を示す第２ユーザ入力を受信することと、
前記第２ユーザ入力を受信したことに応じて、
前記第２の新たなタスクについて第２タスク項目を生成し、
前記第２リストが前記複数のリストのうちのリストではないことを判定することと、
前記第２リストが前記複数のリストのうちのリストではないことを判定することに応じて、
前記第２リストを生成し、
前記第２リストに前記第２タスク項目を追加することと、を更に有する方法。
【請求項１６】
１つ以上のプロセッサと、
メモリと、
前記メモリに格納され、前記１つ以上のプロセッサによって実行されるように構成される１つ以上のプログラムであって、請求項１乃至１５の何れか１項に記載の方法を実行するための命令を含む１つ以上のプログラムと、を備えるシステム。
【請求項１７】
プログラムであって、電子デバイスによって実行された場合に、前記電子デバイスに、請求項１乃至１５の何れか１項に記載の方法を実行させる命令を含む、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は電子リマインダに関し、より具体的に、電子ＴｏＤｏリストのリマインダ及びタスクのインテリジェント生成、編成、トリガー及び配送に関する。
【背景技術】
【０００２】
人々は、所定のタスク又はイベントを思い出すための数多くの方法を考案してきた。多くの人は付箋やカレンダのような物理媒体を有し、なおもこれに書き込む。電子デバイスの偏在により、多くの人は自身のＴｏＤｏリストを管理し、来たるイベントの記録を維持するためにコンピュータを役立てるようになってきた。数多くのリマインダ・ＴｏＤｏアプリケーションが、デスクトップコンピュータだけでなく、ラップトップコンピュータ、タブレットコンピュータ及び「スマート」フォンのようなハンドヘルドデバイスに対しても利用可能である。
【０００３】
しかし、リマインダアプリケーションのユーザに提供される通知の適時性及び精度は、ほぼ完全に、ユーザから受信される入力に依存する。例えば、リマインダアプリケーションにおいてユーザが重要なイベントについて間違った日付を入力したならば、イベント発生後までユーザがイベントの通知を受け取らないかもしれない。別の例として、ユーザがＴｏＤｏアプリケーションにタスクの汎用的な記述（例えば、「彼に電子メールを送信する」）を与えたならば、ユーザが後でこの記述を読んだ場合に、ユーザは「彼」が誰なのか、及び／又は、電子メールの内容は何であるべきかを思い出せないかもしれない。言い換えると、リマインダ・ＴｏＤｏアプリケーションのことになると、「ごみを入れればごみしか出てこない」という古い格言が当てはまる。
【０００４】
このセクションに記載されたアプローチは、達成されうるアプローチであるが、必ずしも以前に認識された又は以前に達成されたアプローチであるとは限らない。従って、別段の記載がない限り、このセクションに記載されたアプローチは何れも、単にこのセクションに含まれるからといって先行文献としての資格を有するわけではないことが想定されるべきである。
【図面の簡単な説明】
【０００５】
【図１】本発明の実施形態に従うタスク項目の作成及び処理に用いられるシステムを示すブロック図である。
【図２】本発明の実施形態に従うユーザ入力のコンテキストに基づいてタスク項目を生成するためのプロセスを示すフロー図である。
【図３】本発明の実施形態に従うタスクについてスケジュールされた時間の前にユーザにリマインダを提供する時刻を判定するためのプロセスを示すフロー図である。
【図４】本発明の実施形態に従う移動（travel）リマインダのビューを示す図である。
【図５Ａ】、
【図５Ｂ】、
【図６】、
【図７】、
【図８】、
【図９】、
【図１０Ａ】、
【図１０Ｂ】、
【図１１Ａ】、
【図１１Ｂ】、
【図１１Ｃ】、
【図１１Ｄ】、
【図１２】、
【図１３】、
【図１４】、
【図１５】本発明の実施形態に従う様々なタイプのリストのビューを示す図である。
【図１６】本発明の実施形態が実施されてもよいコンピュータシステムを説明するブロック図である。
【図１７】、
【図１８】、
【図１９】、
【図２０】、
【図２１】、
【図２２】、
【図２３】、
【図２４】一部の実施形態に従う電子デバイスの機能ブロック図である。
【発明を実施するための形態】
【０００６】
以下の記載において、説明を目的として、本発明の完全な理解を提供するために多数の特定の詳細が説明される。しかし、本発明はこれらの特定の詳細以外に実施されてもよいことが明らかである。他の例では、本発明を不要に曖昧にすることを避けるために、周知の構造及びデバイスはブロック図の形式で示される。
【０００７】
全体的な概要
自身のタスクを管理するユーザを支援するための複数の技術が以下に提供される。タスクはコンピュータシステムにおいてタスク項目として表される。具体的に、タスク項目を生成するためのアプローチと、タスク項目を編成するためのアプローチと、対応するタスク項目に基づいてタスクの通知を引き起こすためのアプローチと、タスク項目を消費するためのアプローチとが以下に詳細に記載される。
【０００８】
タスク項目の生成に関して、タスク項目はユーザからの入力に基づいて生成される。（音声であろうとも、テキストであろうとも）入力はタスクに関する１つ以上の詳細を含むが、入力のコンテキストはタスクに関する１つ以上の他の詳細を判定するために用いられる。１つ以上の他の詳細は入力に反映されていない。コンテキストは、ユーザのデバイスに格納されているデータを含みうる。例えば、ユーザは以下の音声入力、すなわち「本日の午後５時にジョージに電話する」を与える。ユーザは、ジョージという名前の複数の人に関する情報を含む連絡先リストを有するかもしれない。しかし、特定のジョージに関連した電話番号からの最近の音声メッセージのような入力のコンテキストに基づいて、ユーザが電話しようとしているのはどのジョージであるかが判定されうる。このように、タスクに関する入力を与える際に、ユーザはタスクの各詳細に関して特定することを要求されない。
【０００９】
タスク項目の通知のトリガーに関して、通知を引き起こすかを判定するためにデバイスの１つ以上の特徴が用いられてもよい。よって、ユーザに通知を提供すべきかに関して時刻は（仮に要因であったとしても）唯一の要因ではない。このような特徴の例は、デバイスがどこに位置するか、デバイスが何を表示又は処理しているか、デバイスの特定の移動を含みうる。例えば、デバイスが車内又は職場にあるという事実は、タスクのリマインダの生成を引き起こしうる。別の例として、デバイスが現在ウェブコンテキストを表示中であるならば、デバイスのユーザは「オンライン」であると考えられてもよく、この状態はユーザに提供されるタスクの通知を引き起こしうる。
【００１０】
タスク項目の「消費」に関して、タスクのリマインダを単に提供する代わりに、タスクを実行するために典型的に要求されるステップをユーザが実行する必要ないようにタスクが自動化される。例えば、ユーザは特定の時刻に特定の人に電話したいかもしれない。特定の時刻が現在時刻に等しい場合に、通話に関してユーザに単にリマインドする代わりに、ユーザが当該人の電話番号を特定する必要なく、通話が準備され、用意が整う。
【００１１】
タスク項目の編成に関して、タスク項目は複数のリストに自動的に又は手動で編成されうる。各リストは、タスクのタイプ、タスクの通知を引き起こすために用いられる基準のタイプ及びタスクが実行されるべき位置のようなタスク項目の様々な属性に対応する。
【００１２】
タスク項目
繰り返すと、「タスク項目」は、ユーザによるものであろうと、プロセスによる自動的なものであろうと、実行するタスクに関する１つ以上の詳細を含む電子データ項目である。タスク項目はユーザからの入力に基づいて生成される。タスク項目は以下の２つのタイプ、すなわちリマインダに関連したタスク（「リマインダタスク」）とリマインダに関連しないタスク（「非リマインダタスク」）とのうちの１つでありうる。リマインダタスクは、通知を生成してユーザに提供することのような動作に関連するが、非リマインダタスクは何の動作にも関連しない。非リマインダタスクは「完了期限」の日付又は時刻に関連してもよい。しかし、完了期限の日付又は日時は通知の作成又は他の動作を引き起こさない。言い換えると、リマインダタスクは、満たされた場合に動作を引き起こす１つ以上のトリガー基準に関連するが、非リマインダタスクはそうではない。よって、「タスク項目」は、満たされた場合に動作を引き起こす１つ以上のトリガー基準に関連してもよいし、そうでなくてもよい。
【００１３】
システムの概要
図１は、本発明の実施形態に従うタスク項目の作成及びタスク項目の処理に用いられるシステム１００を示すブロック図である。システム１００はデバイス１１０と、ネットワーク１２０と、クラウド１３０とを含む。
【００１４】
デバイス１１０は、ユーザから入力を受信でき、タスクに関する情報を表示できる任意の計算デバイスである。デバイス１１０の非限定的な例は、デスクトップコンピュータと、ラップトップコンピュータ、タブレットコンピュータ、「スマート」フォンのようなハンドヘルドデバイスとを含む。説明される実施形態では、デバイス１１０はタスクマネージャ１１２を含む。タスクマネージャ１１２は、リマインダタイプと非リマインダタイプとの両方のタスク項目を処理する。タスクマネージャ１１２は、ソフトウェアで実装されてもよいし、ハードウェアで実装されてもよいし、ソフトウェアとハードウェアとの任意の組合せで実装されてもよい。
【００１５】
デバイス１１０は、情報を他のデバイスと共有するための通信技術（例えば、無線技術）を含む。デバイス１１０は、様々な統合ユーザインタフェース部を含むことができ、又はデバイスの１つ以上の通信ポート又はデータリンクを通じてユーザインタフェース部に結合されうる。ユーザインタフェース部の非限定的な例は、音声入力部（例えば、マイク）と、物理入力部（例えば、キーボード、マウス、トラックボール、回転ダイアル又はホイール、タッチパッド又はタッチスクリーン）と、動きセンサ（例えば、加速度計、磁力計又はジャイロスコープ）とを含む。これらのユーザインタフェース部の何れも、有線又は無線の通信技術を用いてユーザ入力を与えるためにデバイス１１０と通信する外部ユニットとして実装されうる。有線通信技術の例は、ユニバーサルシリアルバス（ＵＳＢ）インタフェース、ファイヤワイヤインタフェースなどを含む。無線通信技術の例は、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＷｉＦｉ（登録商標）、ＷｉＭａｘ（登録商標）、赤外線を含む。これらのユーザインタフェース部を通じて、デバイス１１０はユーザから物理入力又は音声入力を受信できる。
【００１６】
デバイス１１０は、視覚情報及びオーディオ情報をユーザに提示するための１つ以上の出力部を含む。出力部の非限定的な例は、視覚データを表示するためのディスプレイ部及びオーディオを再生するためのスピーカを含む。
【００１７】
クラウド１３０は１つ以上の計算デバイスによって実装される。クラウド１３０は、ＮＬＰ（自然言語処理）サービス１３２及び１つ以上の他のサービス１３４Ａ〜Ｎのような複数のサービスをホスティングする。ＮＬＰサービス１３２は、ユーザが何を言おうとしているかを理解するために、ユーザが話しうる実世界の物の１つ以上のモデルを用いる。例えば、ＮＬＰサービス１３２は、モデル及びコンテキストに基づいて、ユーザが「彼」、「そこ」又は「あれ」のような用語を用いる場合にユーザが何を言及している可能性があるかを判定できる。ＮＬＰサービス１３２がどのように動作しうるかの例は、上記で参照される米国特許出願第１２／９８７，９８２号に記載される。
【００１８】
ＮＬＰサービス１３２は、１つ以上の他のサービス１３４Ａ〜Ｎ及び場合によってはクラウド１３０でホスティングされない他のサービスと通信し、これらによって実行される動作を開始するために多数のＡＰＩを採用してもよい。例えば、「今夜の午後７時にサンノゼのマルベージャに２名予約する」というユーザコマンドを反映する、デバイスから送信された音声データに応じて、ＮＬＰサービス１３２は、午後７時にこのレストランで２名の予約の作成を開始するためにマルベージャ・レストランにより提供されるオンライン予約サービスにＡＰＩコールを行う。よって、ＮＬＰサービス１３２は、デバイス１１０のユーザが手動でテキストデータを入力し、多数のアプリケーションとやり取りすることを必要とせずに、多くの操作が自動的に実行されることを可能にする。
【００１９】
デバイス１１０とクラウド１３０でホスティングされるサービスとの間の通信は、ネットワーク１２０を介して可能にされる。ネットワーク１２０は、様々な計算デバイス間のデータ交換を提供する任意の媒体又はメカニズムによって実装されうる。このようなネットワークの例は、限定なしに、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、イーサネット（登録商標）又はインターネット、又は１つ以上の地上波、衛星又は無線リンクを含む。ネットワークは、記載されたもののようなネットワークの組合せを含んでもよい。限定なしに、ネットワークは、伝送制御プロトコル（ＴＣＰ）、ユーザデータグラムプロトコル（ＵＤＰ）及び／又はインターネットプロトコル（ＩＰ）に従ってデータを送信してもよい。
【００２０】
以下の記載は、デバイス１１０とクラウド１３０との両方が、タスク項目の生成、タスク項目の編成、タスク項目の通知の引き起こし及びタスク項目の消費に関与する多数の例を含む。この代わりに、本明細書で記載される技術のうちの１つ以上は、（ネットワーク１２０及びクラウド１３０を不要にして）完全にデバイス１１０に実装されてもよいし、完全にクラウド１３０に実装されてもよいし、デバイス１１０とクラウド１３０との何らかの組合せを用いて実装されてもよい。
【００２１】
タスク項目の処理
タスク項目は、デバイス１１０で作成されてもよいし、デバイス１１０で受信された入力に基づいてクラウド１３０で作成されてもよい。図示していないが、タスク項目はデバイス１１０に格納されてもよいし、クラウド１３０に格納されてもよいし、両方に同期されてもよい。タスク項目がクラウド１３０に格納されるならば、タスクマネージャ１１２は、例えばユーザからの入力に応じて、又は１つ以上のタスク項目に関連した１つ以上のトリガー基準が満たされることに応じて、タスク項目を読み出してもよい。
【００２２】
タスク項目がクラウド１３０で作成され格納されるシナリオでは、タスクマネージャ１１２は、主に、タスクに関する情報を表示する１つ以上のユーザインタフェースの集合でありうる。よって、クラウド１３０のタスクサービス（不図示）は、タスク項目を維持し、トリガーイベントが生じた際に通知を引き起こすことに責任を有しうる。
【００２３】
これに代えて、タスクマネージャ１１２は、デバイス１１０で託す項目を作成して格納する。このシナリオでは、タスクマネージャ１１２は、タスク項目を維持し、トリガーイベントが生じた際に通知を生成することに完全に責任を有してもよい。このシナリオの１つの利点は、デバイス１１０がクラウド１３０でホスティングされているサービスと通信できない「オフライン」モードでデバイス１１０が動作中であってもよいことである。
【００２４】
さらに、このシナリオでは、デバイス１１０はＮＬＰサービス１３２のようなサービスを含んでもよく、このようなサービスはタスクマネージャ１１２の一部であってもよいし、タスクマネージャ１１２とは別個に実行されてもよい。このようなサービスは、ユーザが迅速かつ容易にタスクを作成することを可能にする対話式のインタフェースとして機能する。このようなサービスは、サービスを実行させるための入力をデバイス１１０のユーザが提供することを必要とせずに、バックグラウンドで連続して実行されているプロセスによって実装されてもよい。よって、デバイス１１０が始動（又は再始動）する場合はいつも、サービスが自動的に始動される。
【００２５】
これに代えて、タスク項目を作成するために必要な情報は、（すなわち、クラウド１３０でホスティングされる）ＮＬＰサービス１３２によって識別されてもよい。デバイス１１０は、バックグラウンドで連続して実行され、ユーザからの入力（例えば、音声又はテキスト）を識別し、ネットワーク１３０を通じて入力をＮＬＰサービス１３２に送信するユーザ入力インタフェースを含みうる。ＮＬＰサービス１３２が入力におけるタスクの詳細を識別すると、ＮＬＰサービス１３２はタスク情報（例えば、タスクの記述及びタスクを完了すべき時刻）を、（ａ）ネットワーク１２０を通じてタスクマネージャ１１２に送信し、タスクマネージャ１１２が当該情報に基づいてタスク項目を作成して格納してもよいし、（ｂ）当該情報に基づいてタスク項目を作成するためにクラウド１３０のタスクサービスへ送信してもよい。
【００２６】
本明細書で与えられる例の大半は、ＮＬＰサービス１３２がデバイス１１０から入力データを受信し、当該入力データに反映された（タスクに関する）詳細を識別し、これらの詳細をタスクマネージャ１１２に提供することを伴う。しかし、本発明の実施形態はこのシナリオに限定されない。このような例は、これに代えて、デバイス１１０だけを伴ってもよいし、デバイス１１０が単に入力・表示デバイスとして伴い、クラウド１３０のＮＬＰサービス１３２及びタスクサービスが主な機能を提供してもよい。
【００２７】
Ｉ．  コンテキストに基づくタスク項目の生成
本発明の実施形態によれば、タスク項目は入力と当該入力のコンテキストとに基づいて生成される。入力の「コンテキスト」は、デバイス１１０で（ユーザからの、タスク項目の生成を開始した入力に関して）現在又は直近に表示又は処理されたデータを指す。よって、コンテキストデータはユーザからの入力に反映されていない。例えば、デバイス１１０のユーザは以下の音声入力、すなわち「私が自宅に着いたらプロジェクトに関する電子メールを彼に送る」を与えてもよい。「彼」が誰を指すのかが当該入力だけでは明確でないので、「彼」という名詞は曖昧である。しかし、音声入力のコンテキストは、デバイス１１０がジャック・バウアーという名前の人からの電子メールを現在表示しており（又は、ついさっきまで表示しており）、当該電子メールが「バニー」という名前のプロジェクトに関する状況更新の要求を含むことでありうる。音声入力及びコンテキストに基づいて、タスクマネージャ１１２（又はクラウド１３０のタスクサービス）は、「バニー・プロジェクトに関する電子メールをジャック・バウアーに送る」という記述を含み、デバイス１１０のトリガー基準がユーザの自宅の地理的位置又はそこに近い地理的位置であることを含むタクス項目を作成する。デバイス１１０がユーザの自宅に又はその近くにある場合に、タスクマネージャ１１２は、タスク項目からの記述を含む通知をデバイス１１０において表示させる。
【００２８】
図２は、本発明の実施形態に従うユーザ入力のコンテキストに基づいてタスク項目を生成するためのプロセス２００を示すフロー図である。ステップ２１０で、タスクについての１つ以上の第１属性を明確に特定する入力がユーザから受信される。入力はテキスト入力であってもよいし、音声入力であってもよい。テキスト入力は、デバイス１１０のユーザがデバイス１１０の物理キーを押すことからのものであってもよいし、グラフィカルキーボードを含むデバイス１１０のタッチスクリーンを押すことからのものであってもよい。これに加えて又はこれに代えて、デバイス１１０は、デバイス１１０が音声データに変換する音声入力をユーザから受信するマイクを含む。デバイス１１０は、（音声データであろうがテキストデータであろうが）入力データをＮＬＰサービス１３２に送信してもよく、ＮＬＰサービス１３２は当該入力データを分析して、タスクについての１つ以上の第１属性を識別する。その代わりに、上述したように、デバイス１１０は、当該入力データを分析してタスクについての１つ以上の第１属性を識別する機能を含んでもよい。（本明細書の例の多くは自然言語処理に言及するが、自然言語処理は必須ではない。）
【００２９】
ステップ２２０で、入力データに基づいてタスクについてタスク項目が生成される。ステップ２３０で、入力とは別個のものであるコンテキストデータに基づいてタスクについての１つ以上の第２属性が判定される。ステップ２３０はステップ２２０の後に生じるものとして示されるが、ステップ２３０はステップ２２０の前に生じてもよい。
【００３０】
ステップ２４０で、１つ以上の第１属性及び１つ以上の第２属性がタスク項目に関連して格納される。
【００３１】
プロセス２００のステップは、１つ以上のデバイスによって実行されてもよい。例えば、ステップ２１０の入力は、タスク項目を生成するためのデバイス１１０で処理されてもよい。このシナリオでは、タスクマネージャ１１２（又はデバイス１１０で実行されている別のプロセス）は、タスクについて、入力で識別されない１つ以上の第２属性を判定するために入力に関連したコンテキストデータを識別する。その後、タスクマネージャ１１２は、タスク項目において、又はタスク項目に関連して、１つ以上の第２属性を格納する。
【００３２】
これに代えて、別のシナリオでは、デバイス１１０は、ネットワーク１２０を通じてユーザ入力をＮＬＰサービス１３２へ送信する。ＮＬＰサービス１３２は、タスクについて、入力で識別されない１つ以上の第２属性を決定するために入力に関連するコンテキストデータを入力として受け付ける。コンテキストデータは、（ステップ２２０で）タスク項目の生成を開始する入力の前に、ＮＬＰサービス１３２に送信されていてもよい。ＮＬＰサービス１３２は、１つ以上の第２属性をタスクマネージャ１１２（又はクラウド１３０のタスクサービス）へ送信する。タスクマネージャ１１２は、新たに生成されたタスク項目において、又はこれに関連して、１つ以上の第２属性を格納する。
【００３３】
マネージャ１１２と通信するようにＮＬＰサービス１３２に合図するために所定の単語又はフレーズが用いられてもよい。例えば、「私にリマインドしてほしいのは、…」や「私がする必要があるのは、…」で始まるユーザコマンドは、タスクマネージャ１１２と通信すると判定するためにＮＬＰサービス１３２によって用いられる。これらのユーザコマンドのうちの１つを検出したことに応じて、ＮＬＰサービス１３２は、（デバイス１１０からの）入力データと、場合によっては位置、時刻、記述及び／又は動作のような所定のタイプのタスク詳細についてのコンテキストデータとを分析する。その後、ＮＬＰサービス１３２は、タスクマネージャ１１２と通信すると判定し、通信（群）の一部としてタスク詳細をタスクマネージャ１１２へ送信する。
【００３４】
コンテキストデータのソース
タスク項目の生成を開始するユーザ入力に関連したコンテキストデータは、多くのソースのうちの１つから由来してもよい。コンテキストデータの非限定的な例は、デバイス１１０に表示されている又は表示されていたデータ（「表示データ」）と、デバイス１１０に格納されている又はデバイス１１０に関連するデータ（「個人データ」）と、デバイス１１０によって処理されている又は処理されていたデータ（「処理データ」）と、デバイス１１０のユーザにより以前に与えられたデータ（「入力データ」）と、デバイス１１０の位置を示すデータ（「位置データ」）とを含む。
【００３５】
以下は、表示データ、すなわちデバイス１１０に表示されている又は表示されていたデータの例である。デバイス１１０は、地図の特定の位置に関連したマーカを含む地図を表示する。その後、デバイス１１０のユーザは、地図が表示されている間又は地図が表示されなくなった直後に、「私は本日の５時までにそこに行く必要がある。」と言う。ＮＬＰサービス１３２（又はデバイス１１０の音声分析器）は、音声データを反映する音声データを分析する。ＮＬＰサービス１３２は、デバイス１１０に現在表示されているデータを分析して、「そこ」がどこを指すかを判定する。ＮＬＰサービス１３２は、マーカ及び関連した位置を識別し、「そこ」を当該位置に置き換える。ＮＬＰサービス１３２は、本日午後５時をタスクの完了時刻として示し、特定された位置をタスクの位置として示すタスクデータをタスクマネージャ１１２へ送信する。タスクマネージャ１１２は、タスクデータに基づいてタスク項目を生成する。
【００３６】
表示データの別の例として、デバイス１１０は、特定の送信者からのものであり、件名を含む電子メールを表示する。その後、デバイス１１０のユーザは、「私はこの件に関して彼に２時間後に電子メールを送る必要がある。」と言う。デバイス１１０は、この入力を反映する音声データと、表示されている画像とをＮＬＰサービス１３２へ送信する。これに応答して、ＮＬＰサービス１３２は、電子メールの送信者の電子メールアドレスと、電子メールの件名とを識別する。ＮＬＰサービス１３２は、現在時刻から２時間後の時刻をタスクの完了時間として示すタスクデータをタスクマネージャ１１２へ送信する。
【００３７】
以下は、個人データ、すなわちデバイス１１０に格納されているか、デバイス１１０に関連するデータの例である。デバイス１１０のユーザは、「私は明日の正午１２：００にレイチェルとランチをする。」と言う。デバイス１１０は、この入力を反映する音声データをＮＬＰサービス１３２へ送信し、ＮＬＰサービス１３２は音声データの「レイチェル」を識別する。ＮＬＰサービス１３２は、（デバイス１１０又はクラウド１３０に格納された）連絡先データすなわち「アドレス帳」で「レイチェル」を調べ、レイチェルの苗字がグッドウィンであることを判定する。その後、ＮＬＰサービス１３２は、「レイチェル・グッドウィン」を、タスクについて生成されるタスク項目に関連付けさせる。デバイス１１０に格納されることに加えて又はこれに代えて、個人データはクラウド１３０、すなわちデバイス１１０のリモートに格納されてもよい。
【００３８】
以下は、処理データ、すなわちデバイス１１０によって直近に処理されたデータの例である。例えば、デバイス１１０のユーザは、友人と通信するために電話としてデバイス１１０を使用した。デバイス１１０は、ユーザが誰と直近に話したかの記録をつける。通話が終了した後、ユーザは「３０分後に彼女にかけなおすことを私にリマインドしてください。」と言う。ＮＬＰサービス１３２は、音声入力を分析することに追加して、誰がデバイス１１０と直近に電話通話（例えば、最新の５件の電話通話）を確立したかを示すデータを分析する。ＮＬＰサービス１３２は、デバイス１１０と最も直近に確立された電話通話の電話番号を判定する。その後、ＮＬＰサービス１３２は、コンテキストデータに基づいて、電話番号が特定の人に関連していると判定する。ＮＬＰサービス１３２は、通話のタスクと、現在時刻から３０分後の時刻であるタスクの完了時刻と、特定の人の名前と、場合によっては特定の人の電話番号とを示すタスクデータをタスクマネージャ１１２へ送信する。タスクマネージャ１１２は、タスク項目に基づいてタスク項目を生成する。
【００３９】
以下は、入力データ、すなわちデバイス１１０のユーザによって直近に（例えば、最新の５分間に）与えられたデータの例である。ユーザからの入力はテキスト入力であってもよいし、音声入力であってもよい。デバイス１１０又はＮＬＰサービス１３２は、直近に入力された入力の記録をつけ、現在の入力に反映された所定の用語の識別を判定するために当該入力を使用してもよい。例えば、デバイス１１０のユーザは、「今晩７時にそこで彼と会うことを私にリマインドしてください。」と言う。ＮＬＰサービス１３２は、当該音声入力を反映する音声データを受信し、「彼」及び「そこ」という用語を識別する。「彼」が誰であり、「そこ」がどこであるかは明確でないが、ＮＬＰサービス１３２は、ユーザから直近に受信された入力にアクセスする。このような直近に受信した入力は、（人の名前として識別される）「ジョージ・リード」という名前と、（場所として識別される）「スターバックス」という名前とを反映する。これに応じて、ＮＬＰサービス１３２は、「ジョージ・リードとスターバックスで会う」ことであり、時刻が当日の午後７時であるタスクを生成させる。
【００４０】
以下は、位置データ、すなわち現在のものであろうと、過去のものであろうと、デバイス１１０の位置を示すデータの例である。デバイス１１０のユーザは、「来週の火曜日にここでランチのためにジュリアンと会うことを私にリマインドしてください。」と言う。デバイス１１０は、この入力を反映する音声データをＮＬＰサービス１３２へ送信する。ＮＬＰサービス１３２は「ここ」という用語を識別し、これに応じてデバイス１１０が現在どこに位置しているかを判定する。現在位置は、多数の方法で判定されうる。例えば、デバイス１１０は、緯度座標・経度座標のような地理的位置をＮＬＰサービス１３２に提供してもよい。その後、ＮＬＰサービス１３２は、座標に基づいて、これら座標に位置する場所又は施設の名前を判定してもよい。ＮＬＰサービス１３２は、示された日付にランチのためにジュリアンと会うタスクについてのタスク項目に、場所又は施設の名前を関連付けさせる。
【００４１】
これに代えて、ユーザは「私は、私が先週の木曜日の正午にいたのと同じ場所で明日ジョシュ・ピーターズに会う必要がある。」と言う。デバイス１１０は、この入力を反映する音声データをＮＬＰサービス１３２へ送信する。ＮＬＰサービスは、「私が先週の木曜日の正午にいたのと同じ場所で」というフレーズを識別し、これに応じてデバイス１１０が先週の木曜日の正午に位置していた場所を判定する。ＮＬＰサービス１３２は（クラウド１３０に格納された、又はデバイス１１０に格納されＮＬＰサービス１３２に送信された）位置履歴データにアクセスし、先週の木曜日の正午にデバイス１１０が位置していた場所を判定する。位置履歴は場所の名前を示してもよいし、地理的座標で構成されてもよい。地理的座標であるならば、ＮＬＰサービス１３２は、これらの座標に位置している場所又は施設の名前を判定する。ＮＬＰサービス１３２は、示された日付にジョシュ・ピーターズに会うタスクについてのタスク項目に対してこの名前を関連付けさせる。
【００４２】
デバイス１１０に関して生じるイベントはまた、タスク項目を作成するために用いられうる。このようなイベントは、表示データ、提示データ及び処理データのような上述のコンテキストデータの１つ以上のカテゴリ（又はタイプ）に含まれうる。例えば、デバイス１１０は、着呼を検出し、呼又は発信者に関する電話番号又は他の識別情報をデバイス１１０の画面に表示させることによって、呼をユーザに通知する。この情報に加えて、表示は３つの選択可能なオプション、すなわち「応答する」と、「無視する」と、「後でかけなおす」とを含んでもよい。ユーザが「後でかけなおす」を選択したならば、発信者と、場合によっては呼の時刻及び／又は発信者に電話をかける時刻とを識別するタスク項目が作成される。また、タスク項目は、「電話予定」のタイプのタスクとして自動的に分類されてもよい。
【００４３】
タスク項目の生成に関する本明細書の例の多くは、タスクに関する詳細を含む音声入力又はテキスト入力をユーザが与えることを含む。タスク項目がどのように生成されうるかに関する別の非限定的な例は、デバイス１１０の画面に表示されているテキストをユーザが選択（又はハイライト）することである。選択されたテキストはコンテキストデータであるとみなされる。テキストが選択された後に、ユーザに１つ以上のオプションが提示されてもよく、そのうちの１つは「リマインド」オプションであり、このオプションは選択された場合に、タスク項目を生成させる。タスクマネージャ１１２は、選択されたテキストに反映された情報に基づいてタスク項目を生成する。タスク項目の詳細はまた、タスクの通知を引き起こす時刻又はイベントのような他のコンテキストデータから判定されてもよい。
【００４４】
仮想ダイアログ
一部の状況では、ＮＬＰサービス１３２は、デバイス１１０から受信された入力と、当該入力に関連したコンテキストとに基づいてタスクに関する１つ以上の詳細を判定することができない。よって、ある実施形態では、ＮＬＰサービス１３２は、１つ以上の詳細を判定するために、デバイス１１０のユーザに更なる入力を促す。１つ以上の詳細は、タスクの記述、タスクの位置、（存在するならば）リマインダの位置又はタスクの時刻のようなタスク項目の任意の属性に関しうる。
【００４５】
例えば、ＮＬＰサービス１３２は、「７時にスティーブに電話することを私にリマインドしてください。」というユーザコマンドを反映する音声データをデバイス１１０から受信する。ＮＬＰサービス１３２は、スティーブという名を含む、ユーザの多数の連絡先に関する情報（例えば、アドレス帳）にアクセスできてもよい。さらに、複数のスティーブの連絡先のどれに電話するかの曖昧さを解消するために用いることができるものはアドレス帳に何もない。したがって、ＮＬＰサービス１３２は、デバイス１１０によって表示（又は可聴に再生）される以下のメッセージ、「スティーブ・アンダーソンですか？スティーブ・ハンソンですか？スティーブ・ジョブズですか？」をデバイス１１０へ送信する。その後、ユーザは３つのスティーブの連絡先のうちの１つを示す音声入力又はテキスト入力をデバイス１１０に与える。これに応じて、デバイス１１０は、ネットワーク１２０を通じて、対応する音声データ又はテキストデータをＮＬＰサービス１３２へ送信する。
【００４６】
別の例として、ＮＬＰサービス１３２は、「私はホールフーズでパンを手に入れる必要がある。」というユーザのコマンドを反映する音声データをデバイス１１０から受信する。これに応じて、ＮＬＰサービス１３２は、（ａ）デバイス１１０の現在位置又は（ｂ）ユーザの自宅に一番近いホールフーズ店の検索を実行する。デバイス１１０の現在位置の近く及びユーザの自宅の近くに複数のホールフーズ店が存在するかもしれない。従って、ＮＬＰサービス１３２は、デバイス１１０によって表示される以下のメッセージ、「どのホールフーズですか？アルマデン通り？チェスターエクスプレスウェイ？グリーン通り？」をデバイス１１０へ送信する。その後、ユーザは、３つのホールフーズ店のうちの１つを示す音声入力又はテキスト入力をデバイス１１０に与える。これに応じて、デバイス１１０は、ネットワーク１２０を通じて、対応する音声データ又はテキストデータをＮＬＰサービス１３２へ送信する。
【００４７】
別の例として、ＮＬＰサービス１３２は、「８時までにジェリーにテキスト送信することを私にリマインドしてください。」というユーザのコマンドを反映する音声データをデバイス１１０から受信する。これに応じて、ＮＬＰサービス１３２は、当該音声データと当該入力のコンテキストとに基づいて、ユーザの連絡先リスト（又はアドレス帳）に示されるようにジェリーがジェリー・ウォールであると判定する。しかし、ユーザがＳＭＳメッセージをジェリーに送信する時刻が午前８時を意図しているのか午後８時を意図しているのかが不明確である。従って、ＮＬＰサービス１３２は、デバイス１１０で表示される以下のメッセージ、「ジェリー・ウォールに午前８時と午後８時とのどちらにテキスト送信したいですか？」をデバイス１１０へ送信する。その後、ユーザは、２つの時刻のうちの１つを選択する音声入力又はテキスト入力をデバイス１１０に与える。これに応じて、デバイス１１０は、ネットワーク１２０を通じて、対応する音声データ又はテキストデータをＮＬＰサービス１３２へ送信する。
【００４８】
タスク項目の自動分類
ある実施形態では、ＮＬＰサービス１３２は、デバイス１１０のユーザからの入力に基づいて、タスク項目が関連付ける１つ以上のカテゴリを判定する。１つ以上のカテゴリは、事実上無制限でありうる多くの異なるカテゴリのうちの１つでありうる。タスク項目が関連付けられうるカテゴリの非限定的な例は、購入するもの、休暇中に行うこと、職場で行うこと、運転中に行うことを含む。各カテゴリは、サブカテゴリに関連しうる。例えば、「購入カテゴリ」は、食料品店で購入する項目を示す食料品カテゴリと、購入する書籍を示す書籍カテゴリと、購入する楽曲を示す音楽カテゴリとに分割されうる。
【００４９】
例えば、ユーザは以下の音声入力、「牛乳を買うことを私にリマインドしてください。」をデバイス１１０に与えてもよい。デバイス１１０は、当該入力を反映する音声データをＮＬＰサービス１３２へ送信する。ＮＬＰサービス１３２は、タスク項目が作成されるべきであり、「牛乳を買う」が当該タスク項目に関連した記述であるべきであることを判定する。ＮＬＰサービス１３２はまた、牛乳が食料品項目であり、タスク項目が食料品カテゴリ及び／又は購入カテゴリに関連付けられるべきであることを判定してもよい。よって、ＮＬＰサービス１３２は、（ＮＬＰサービス１３２、クラウド１３０のタスクサービス又はタスクマネージャ１１２の何れで作成されたものであっても、）タスク項目が関連すべき１つ以上のカテゴリを示すカテゴリデータをタスクマネージャ１１２へ送信してもよい。
【００５０】
以下に記載されるように、各タスク項目に関連した１つ以上のカテゴリは、同一のカテゴリが属するタクス項目を編成し、同一のカテゴリのタスク項目をデバイス１１０で表示するために用いられうる。これにより、デバイス１１０のユーザが、完了時刻、作成時刻、（後述される）トリガータイプ、位置、タイプ（例えば、リマインダタスク対非リマインダタスク）又は他の基準によることに加えて又はこれに代えて、カテゴリ別にタスク項目を閲覧することが可能になる。
【００５１】
ＩＩ．  タスク項目の通知の引き起こし
上述のように、タスク項目は、満たされた場合にデバイス１１０のユーザに対して通知を提示させるか、他の何らかの動作を実行させる１つ以上のトリガー基準（又は、トリガー）に関連付けられてもよい。タスク項目の１つ以上のトリガー基準が満たされる場合に、通知（又は他の動作）が「引き起こされる」。トリガー基準の非限定的な例は、時刻、位置、相対移動時間、コンテキストトリガー、外因性トリガーを含み、これらのそれぞれは以下により詳細に説明される。
【００５２】
時刻トリガー
時刻トリガーの時刻は、絶対時刻、相対時刻、反復時刻又は象徴的締め切りでありうる。絶対時刻の例は、太平洋標準時刻の２０１１年６月６日午前９時である。相対時刻の例は、「パトリオッツ対ジェッツのフットボールの試合の１０分前」である。反復時刻の例は、「毎週木曜日の午前１０時」である。象徴的締め切りの例は、「営業日の終わり」である。
【００５３】
位置トリガー
本発明の実施形態によれば、デバイス１１０の位置は、タスク項目に関連したトリガー基準である。このようなトリガー基準は、本明細書で「位置トリガー」と呼ばれる。デバイス１１０の位置は、多くの方法のうちの１つで判定されてもよい。例えば、デバイス１１０の位置は、ＷｉＦｉ位置決定、セル位置決定及び／又はＧＰＳ（全地球測位システム）位置決定に基づいて自動的に判定されてもよい。デバイス１１０は、クラウド１３０のサービスからの入力を用いて自身の現在位置を判定してもよいし、これを用いないで判定してもよい。
【００５４】
ある実施形態では、ユーザは、所定の地理的位置に関連付けられているラベルを示す入力を与えてもよい。例えば、デバイス１１０のユーザは、以下の文、「私は自宅にいる。」又は「私はホールフーズにいる。」を話してもよい。その後、ＮＬＰサービス１３２は、「自宅」という単語又は「ホールフーズ」というフレーズを、上述の３つの位置決定方法のうちの１つに基づいて判定されたデバイス１１０の現在位置に関連付けてもよい。この単語と位置との関連付けは、「自宅」又は「ホールフーズ」がどこに位置しているかを判定するために後で利用されうる。
【００５５】
位置トリガーは、特定の地理的位置又はエリアに関連しなくてもよい。その代わりに、位置トリガーは、特定の地理的位置又はエリアに制限されない場所に関連してもよい。例えば、タスク項目の位置トリガーは「道路上」又は「運転中」であってもよい。デバイス１１０（又はデバイス１１０で実行されているプロセス）は、デバイス１１０の現在位置が高速道路又は別の混雑中の道路上であることを判定する。よって、デバイス１１０が移動している速さに関係なく、又はユーザが移動中であることを示す別のデバイスとデバイス１１０がペアをなすかどうかに関わらず、この判定が行われる。この判定に基づいて、タスクマネージャ１１２は、１つ以上のタスク項目を分析して、「道路上」又は「運転中」という位置トリガーに何らかのタスク項目が関連しているかを判定する。
【００５６】
別の例として、タスク項目の位置トリガーは、ユーザの車であってもよい。具体的に、ユーザは、以下の音声コマンド、「運転中に私に母に電話することを私にリマインドしてください。」を与えていてもよい。ＮＬＰサービス１３２は当該コマンドを反映する音声データを分析し、「運転中」がユーザの車を指すことを決定する。ユーザの車は、デバイス１１０がユーザの車と通信することを可能にするＢｌｕｅｔｏｏｔｈ対応コンポーネントを有してもよい。デバイス１１０がユーザの車内のＢｌｕｅｔｏｏｔｈ対応コンポーネントにより伝播されるＢｌｕｅｔｏｏｔｈ信号の範囲内に入ると、デバイス１１０は、デバイス１１０がユーザの車内に（又は少なくともその近くに）位置していると判定する。この判定に応じて、タスクマネージャ１１２は、タスク項目の位置トリガーを引き起こす。タスクマネージャ１１２は、母に電話することをユーザに知らせるリマインダメッセージをデバイス１１０に表示させる。その後、ユーザは、デバイス１１０で実行されている電話アプリケーションに、ユーザの母に関連した電話番号への電話を開始させるシングルタップ又は音声応答を与えてもよい。
【００５７】
別のＢｌｕｅｔｏｏｔｈ対応デバイスとの接続（すなわち「ペアリング」）を確立することは、デバイス１１０の位置を決定するために用いられうるペアリングの一例であるが、他のタイプのペアリングも可能である。例えば、デバイス１１０は、夕方及び朝の時間中に、所定のネットワークデータを検出してもよい。ネットワークデータは、デバイス１１０が接続してもよい１つ以上のネットワークを示す。ネットワークデータは、１つ以上のネットワークの名前又は１つ以上のルータのＭＡＣアドレスを含みうる。その後、デバイス１１０は、当該ネットワークデータが検出された場合はいつも、デバイス１１０がユーザの自宅にいるとみなされると判定してもよい。よって、ペアリングはデバイス１１０とルータのような別のデバイスとの間の接続の確立を必要とするので、実際のペアリングは要求されない。別の例として、デバイス１１０は、電車、地下鉄又はバスのＷｉＦｉ信号を検出してもよい。ＷｉＦｉ信号は、ＷｉＦｉ信号に対応する交通手段のタイプを示してもよい。よって、デバイス１１０は、ＷｉＦｉ信号に基づいて、自身の位置が「電車内」、「地下鉄内」又は「バス内」であることを検出してもよい。タスク項目のトリガー条件がこれらの位置のうちの１つ以上を示すならば、当該タスク項目に関連した動作が引き起こされうる。さらに、このような「輸送指向の」位置はまた、「乗車中」又は「移動中」のような（以下に詳細に後述される）特定のコンテキストに関連しているとみなされてもよい。よって、タスクマネージャ１１２によるこのようなコンテンツの検出は、所定のタスク項目に関連した動作を実行させてもよい。
【００５８】
位置トリガーの上述の例は、「私がＹに到着した場合にＸを行うことを私にリマインドしてください。」というユーザ入力に見られるような「到着トリガー」に分類されうる。別のタイプの位置トリガーは、「出発トリガー」であり、この例は、「私が職場を出る場合にＸを行うことを私にリマインドしてください。」又は「私がここを出る場合に…」というユーザコマンドに見られる。ある実施形態では、出発トリガーのシナリオで、特定の出発トリガーが「発せられる（fire）」前に、現在位置及び出発位置からの最小距離が必要となる。このような最小距離は、誤った開始が存在する場合の対応する動作の実行を回避するのに役立ちうる。
【００５９】
さらに、位置トリガーは、タスク項目の動作を引き起こす複数の条件のうちの１つであってもよい。複数の条件を含むユーザコマンドの例は、「私が自宅に着くのと午後８時とのうちの遅い方にＸを行うことを私にリマインドしてください。」、「午後８時と私が出るのとのうちの早い方にＸを行うことを私にリマインドしてください。」、「午後８時と私が運転中であるとのうちの早い方にＸを行うことを私にリマインドしてください。」を含む。
【００６０】
移動時間トリガー
ある実施形態では、デバイス１１０のユーザに通知を提供するために、デバイス１１０の位置とタスク項目に関連した時刻とが用いられる。よって、時刻がタスク項目に関連した１つ以上のトリガー基準の１つであってもよいが、デバイス１１０の位置は、少なくとも明示的に、そうでなくてもよい。
【００６１】
図３は本発明の実施形態に従うタスクについてスケジュールされた時刻の前にユーザにリマインダを提供する時刻を決定するためのプロセス３００を説明するフロー図である。プロセス３００は、デバイス１１０又はクラウド１３０で実行されている１つ以上のプロセスによって実行されうる。しかし、説明を簡単にするために、プロセス３００のすべてのステップはタスクマネージャ１１２によって実行される。
【００６２】
ステップ３１０で、タスクマネージャ１１２はデバイス１１０の現在位置を判定する。ステップ３２０で、タスクマネージャ１１２は、タスク項目に関連した（又はこれによって識別される）目的地の位置（又は「目的位置」）を判定する。ステップ３２０で、２つの位置の間の距離に基づいて、タスクマネージャ１１２は、「移動時間」、すなわちデバイス１１０のユーザが目的位置へ移動するのにかかるだろう時間を判定する。ステップ３３０で、タスクマネージャ１１２は、「差分時間」、すなわち現在時刻と、タスク項目に関連した時刻トリガー基準との間の差分を判定する。ステップ３４０で、移動時間が差分時間と同じか近いならば、タスクマネージャ１１２はユーザに通知を提供する。この通知は、目的地への移動をユーザが開始するためのリマインダ（ユーザがその準備をまだしていない場合）として機能する。
【００６３】
例えば、タスク項目は、特定のレストランで午後２時にスーと会うためのリマインダについてのものであってもよい。タスクマネージャ１１２は、デバイス１１０の位置と、特定のレストランの位置とを判定する。特定のレストランの位置は、例えばインターネット検索を開始し、デバイス１１０の位置から最も近い同じ名前のレストランを識別することによって判定されうる。これに代えて、特定のレストランの住所が既にタスク項目に関連して格納されていてもよい。デバイス１１０の位置と特定のレストランとの間の距離に基づいて、タスクマネージャ１１２は、デバイス１１０のユーザが特定のレストランへ移動するのにどれくらいの時間がかかるか（すなわち、「移動時間」）を判定する。移動時間が現在時刻と時刻トリガー（すなわち、午後２時）との間の差分と同じか近い（例えば、１０分以内）場合に、タスクマネージャ１１２は、特定のレストランに午後２時に到着するためにはユーザがすぐに出なければならないことを示すメッセージをデバイス１１０に表示させる。
【００６４】
ある実施形態では、目的地へ向かう時刻は、デバイス１１０の現在位置に基づいて変わる。例えば、デバイス１１０の現在位置が位置Ａであり、目的地が位置Ｂである場合に、タスクマネージャ１１２は、スケジュールされたタスクの時刻の５０分前にユーザが移動を開始すべきであると判定する。しかし、デバイス１１０の現在位置がいまや位置Ｃであることを検出したことに応じて、タスクマネージャ１１２は、スケジュールされたタスクの時刻の２０分前にユーザが移動を開始すべきであると判定する。例えば、デバイス１１０のユーザは一日の始めに自宅にいてもよく、タスクマネージャ１１２は、ユーザの自宅から夕方の夕食イベントの位置までの移動に５０分かかると判定する。その日のうち後の時刻に、デバイス１１０のユーザは、夕食イベントの位置に、より近い職場に移動する。デバイス１１０が異なる位置にあることに応じて、タスクマネージャ１１２は、ユーザの職場から夕食イベントの位置までの移動に２０分かかることを判定する。
【００６５】
ある実施形態では、目的地へ向かう時刻は、現在の交通情報に基づいて変わる。例えば、午後２：３０に、タスクマネージャ１１２は、デバイス１１０のユーザがレストランへ向かうべき時刻が午後５：００であると判定する。しかし、ユーザがレストランへ到着するのに利用する高速道路の自動車事故に起因して、交通がかなり低速になる。タスクマネージャ１１２は、午後３：３０に、ユーザがレストランへ向かうべき時刻が午後４：００であると判定する。
【００６６】
図４は、本発明の実施形態に従う移動リマインダのビュー４００である。ビュー４００はデバイス１１０により表示される。ビュー４００の移動リマインダは６つのデータ項目を含む。６つのデータ項目は、（１）対応するタスクの記述４１０（「クロエを迎えにいく」）と、（２）タスクを完了すべき時刻４２０（「本日午後５：００」）と、（３）デバイス１１０のユーザが目的地への移動を開始すべき時刻にする動作４３０と、（４）目的地に間に合うように到着するためにユーザが移動を開始すべき時刻をユーザがリマインドされたいことを示すリマインダ時刻４４０と、（５）目的地に間に合うように到着するためにユーザが移動を開始すべき時刻を示す開始時刻４５０と、（６）目的地の名前及び目的地の住所を示す位置４６０とを含む。デバイス１１０が表示する別の移動リマインダは、より多くのデータ項目又はより少ないデータ項目を含んでもよい。
【００６７】
動作４３０に関連した動作は、（移動リマインダの最上部に示される）現在時刻が開始時刻４５０によって示される時刻に等しいとタスクマネージャ１１２が判定したことに応じて引き起こされても（すなわち実行されても）よい。説明される例では、動作４３０は、タスクマネージャ１１２が開始時刻４５０に地図を生成させデバイス１１０のユーザに向けて表示させる地図関連動作である。地図は、位置４６０の住所の指標、ユーザの現在位置の指標、又は両方を含む。開始時刻４５０に地図を自動的に表示させる代わりに、タスクマネージャ１１２はまず、地図を生成するためのオプションを含むメッセージをデバイス１１０で表示させてもよい。ユーザが当該オプションを（例えば、音声入力又は画面へのタップを通じて）選択したならば、タスクマネージャ１１２は地図を生成させ、表示させる。
【００６８】
リマインダ設定は、「オン」モードであっても、「オフ」モードであってもよい。図４では、リマインダ時刻は「オン」モードである。リマインダ時刻４４０が「オフ」モードであるならば、ビュー４００の移動リマインダはリマインダ時刻４４０又は開始時刻４５０を含まなくてもよい。
【００６９】
上述のように、タスクマネージャ１１２は、デバイス１１０の位置の変化に応じて開始時刻４５０を変えてもよい。よって、午前にデバイス１１０がユーザの自宅に位置している場合に開始時刻４５０は「本日午後３：３０」を示してもよいが、午後にデバイス１１０がユーザの職場に位置している場合に開始時刻４５０は「本日午後４：２０」を示してもよい。
【００７０】
ある実施形態では、タスクマネージャ１１２は、デバイス１１０の位置の有意な変化に応じて、計算された開始時刻４５０の変化をチェックする。位置の有意な変化は、すでに計算されている他のイベントの結果として判定されてもよい。例えば、デバイス１１０は、セルタワーの間を遷移する際に既にイベントを処理していてもよく、これらのイベントは位置の変化の再計算を引き起こし、従って、更新された開始時刻４５０の変化の再計算を引き起こす。位置の潜在的な有意な変化を示すイベントの非限定的な他の例は、検出されたＷｉＦｉシグネチャの変化、（地図又はナビゲーションのような）何らかの他のアプリケーションについての正確なＧＰＳ位置の計算、電力サイクルイベント、デバイスのラジオのオン・オフ、加速度計信号に基づく警告、及び位置情報を含むテキストメッセージ又はプッシュ通知の受信である。
【００７１】
ある実施形態では、タスクマネージャ１１２は、有意なイベント変化を検出するためのストラテジーを組み合わせる。例えば、低電力／低解像度モードで、タスクマネージャ１１２はＮ分ごとにだけ有意な位置変化をチェックし、又は到着データのチェックのような周期的な計算が生じる場合のみにチャックする。高電力／高解像度モードで、タスクマネージャ１１２は、セルタワー位置決定及び／又はＧＰＳを使用する。組み合わされたストラテジーは、デフォルトで低電力ソリューションを実行し、その後、推定された開始時間が近い場合又は他のイベントが発生した場合（例えば、ＷｉＦｉシグネチャ又はＢｌｕｅｔｏｏｔｈシグネチャの変化が検出された場合）に、高電力ソリューションを呼び出す。
【００７２】
ある実施形態では、移動リマインダ又は移動リマインダの開始時刻項目は、交通手段の１つ以上のモードに関連してもよい。交通手段のモードの非限定的な例は、車の運転、バスへの乗車、自転車、徒歩を含む。デフォルトの交通モードは車の運転であってもよい。例えば、タスクマネージャ１１２は、ユーザが「車」モード、「バス」モード、「自転車」モード、「徒歩モード」又は同時の複数のモードの開始時刻４５０を閲覧するオプションを提供してもよい。開始時刻４５０について選択された現在のモード（群）に依存して、開始時刻は幅広く変わりうる。例えば、図４で、車モードについて開始時刻４５０は「本日午後４：５０」を示すが、開始時刻４５０は、バスモードについて「本日午後３：１５」、自転車モードについて「本日午後３：４５」、徒歩モードについて「本日午前１１：３０」を示してもよい。
【００７３】
関連した実施形態では、タスク項目は、位置と日付／時刻との両方に関連しており、タスクの通知はユーザ（又は、むしろユーザのデバイス）が当該位置にいることによって、又は当該日付／時刻によって引き起こされてもよい。例えば、ユーザのデバイスが（当該日付に、又は当該日付に関係なく、）当該位置にあるならば、通知が引き起こされる。ユーザが当該日付により示される日に当該位置に（又は、当該時刻までに当該位置に）到着していないならば、通知を引き起こすための「最終手段」として当該時刻が用いられる。
【００７４】
コンテキストトリガー
上述のように、時刻及び位置は、タスク項目に関連したトリガー基準のタイプの例である。タスク項目に関連したトリガー基準の別のタイプはコンテキストである。「コンテキストトリガー」は、デバイス１１０の単なる位置とは異なるデバイス１１０の１つ以上の特徴を指す。よって、コンテキストトリガーと同様に、移動トリガー及び移動時間トリガーもデバイス１１０の１つ以上の特徴を指す。
【００７５】
コンテキストトリガーは、２つのタイプ、すなわちデータ指向コンテキストトリガーと空間指向コンテキストトリガーとのうちの１つに分類されてもよい。データ指向コンテキストトリガーの非限定的な例は、デバイス１１０が自身の画面に表示中のデータの種類又はタイプ（例えば、ビデオ）と、デバイス１１０で現在実行されている特定のアプリケーション（群）又はアプリケーション（群）のタイプ（例えば、テキスト作成アプリケーション又は音楽アプリケーション）と、デバイス１１０がユーザから受信中の入力のタイプ（例えば、音声又はテキスト）と、デバイス１１０に利用可能なネットワーク接続のタイプ（例えば、ＷｉＦｉ又はセルラーネットワーク）とを含む。
【００７６】
例えば、デバイス１１０が受信するユーザコマンドは、「私が次に電話中であるときに母に電話することを私にリマインドしてください。」であってもよい。「電話中」というフレーズは、ユーザがデバイス１１０を電話として使用している場合に、母に電話することをユーザに知らせるためにリマインダがユーザに送信されることを意味すると想定される。
【００７７】
別の例として、デバイス１１０が受信するユーザコマンドは、「私がインターネットをサーフィンしている場合に、私はボブに電子メールを送る必要がある。」であってもよい。「インターネットをサーフィンしている」というフレーズは、ユーザがデバイス１１０のブラウザとやり取りしている場合に、デバイス１１０（又はユーザ）のコンテキストが「オンラインである場合」であることを意味すると想定される。デバイス又はユーザのコンテキストを判定したことに応じて、ボブに電子メールを送ることをユーザに知らせるためにリマインダがユーザに送信される。これに加えて、「オンラインの場合」のコンテキストトリガーに関連している何らかの他のタスク項目について別のリマインダがユーザに提供されてもよい。
【００７８】
別の例として、デバイス１１０が受信するユーザコマンドは、「私が姉妹のサラと話している場合に母にテキスト送信する。」であってもよい。「私が姉妹のサラと話している場合に」というフレーズは、ユーザがデバイス１１０を電話として使用しており、サラとの電話呼が確立された場合に、ユーザの母にテキスト（又は、ＳＭＳ）メッセージを送信することをユーザにリマインドするためにリマインダがユーザに送信されることを意味すると想定される。
【００７９】
別の例として、デバイス１１０が受信するユーザコマンドは、「私がＷｉＦｉ接続を有する場合にジェイン・スミスに電子メールを送ることを私にリマインドしてください。」であってもよい。パスワードを要求しないＷｉＦｉ信号又はデバイス１１０にとってアクセス可能なパスワードを要求するＷｉＦｉ信号をデバイス１１０が検出したことに応じて、タスクマネージャ１１２は、ジェインはジェイン・スミスに電子メールを送ることを示す通知をデバイス１１０の画面に表示させる。
【００８０】
空間指向コンテキストトリガーの非限定的な例は、デバイス１１０が移動している速さ（例えば、３０ｍｐｈ（時速４８ｋｍ）超は運転を示し、３ｍｐｈ（時速４．８ｋｍ）未満は徒歩を示す）、デバイス１１０の移動方向（絶対又は相対）、デバイス１１０の移動の集合（例えば、連続して水平方向に移動している間の短い垂直移動）を含む。言い換えると、デバイス１１０は、デバイス１１０が空間内をどのように移動しているかを検出するように構成されうる。
【００８１】
例えば、デバイス１１０（又は、むしろデバイス１１０で実行されているプロセス）は、ある期間にわたる自身の位置の変化を検出したことに基づいて、デバイス１１０が６０ｍｐｈ（時速９６ｋｍ）で移動中であることを判定する。この情報に基づいて、デバイス１１０は、デバイスのコンテキストが「運転中」又は「道路上」であると判定する。タスクマネージャ１１２は１つ以上のタスク項目を分析して、何らかのタスク項目が「運転中」又は「道路上」のコンテキストトリガーに関連しているかを判定する。タスク項目が「運転中」又は「道路上」のコンテキストトリガーに関連しているならば、当該タスク項目に関連した動作（例えば、通知の表示）が実行される。
【００８２】
別の例として、デバイス１１０は、ある期間にわたる自身の位置の変化の検出に基づいて、デバイス１１０が所定の期間（例えば、５分間）を超えてユーザの自宅に向かって移動中であると判定する。この情報に基づいて、デバイス１１０は、コンテキストが「帰宅中」であると判定する。タスクマネージャ１１２は１つ以上のタスク項目を分析して、何らかのタスク項目が「帰宅中」のコンテキストトリガーに関連しているかを判定する。タスク項目が「帰宅中」のコンテキストトリガーに関連しているならば、当該タスク項目に関連した動作（例えば、通知の表示）が実行される。
【００８３】
別の例として、デバイス１１０は、所定の反復移動を検出する加速度計を含む。デバイス１１０は、ある期間にわたるこれらの反復移動に基づいて、デバイス１１０のユーザがスローペースで走っているかもしれないと判定してもよい。この判定に基づいて、デバイス１１０は、コンテキストが「ジョギング中」であると判定する。タスクマネージャ１１２は１つ以上のタスク項目を分析して、何らかのタスク項目が「ジョギング中」又は「ウォーキング中」のコンテキストトリガーに関連しているかを判定する。タスク項目が「ジョギング中」又は「ウォーキング中」のコンテキストトリガーに関連しているならば、当該タスク項目に関連した動作（例えば、通知の表示）が実行される。
【００８４】
別の例として、デバイス１１０は、ある期間（例えば、３時間）それが移動していないことを検出してもよい。デバイス１１０のユーザは、警告を受けることに興味があるかも知れず、デバイス１１０が移動していないことは、ユーザが眠っていることを示しうる。よって、ユーザは、「電話が３時間の間移動しないならば、私に警告してください。」というコマンドを発行してもよい。
【００８５】
データ指向トリガー及び空間指向トリガーに加えて、他の種類のトリガーがデバイス１１０の任意のセンサに基づいてもよい。デバイス１１０は、温度センサや光センサのような複数のセンサを含んでもよい。例えば、デバイス１１０は、外気温又はデバイス１１０の内部温度を検出するための温度計を含んでもよい。よって、デバイス１１０のユーザは、「１００度に到達したらハロルドに電話することを私にリマインドしてください。」というコマンドを発行してもよい。
【００８６】
外因性トリガー
タスク項目に関連してもよい別のタイプのトリガー基準は、外因性基準である。「外因性トリガー」は、デバイス１１０及びデバイス１１０のユーザの外側及びこれらとは別個に存在する１つ以上の要因に依存するトリガー基準である。このような要因は、デバイス１１０以外のデバイスに関して、又はデバイス１１０以外の１つ以上のデバイスに格納されているデータに関して生じる「イベント」とみなされてもよい。外因性トリガーの非限定的な例は、社会的位置、社会的近接、継続クエリ（standing query）及びローカルイベントを含む。
【００８７】
社会的位置トリガーの例は、デバイス１１０のユーザの友人又は同僚が所定の位置に到着又は所定の位置を出発した場合である。例えば、タスク項目の作成を開始したユーザコマンドは、「サラがモールを出発したら私に通知してください。」であってもよい。よって、サラ（又はサラのモバイルデバイス）の位置は、このタイプの外因性トリガーの誘発に不可欠な要因である。具体的に、タスクマネージャ１１２は、サラのデバイスの現在位置を判定する。サラのデバイスの現在位置は、サラのデバイスとデバイス１１０との両方が加入している（例えば、クラウド１３０の）クラウドサービスによって提供されてもよい。デバイス１１０は、サラのデバイスの位置に関する更新をクラウドサービスから受信する。タスクマネージャ１１２は当該位置情報を使用して、社会的位置トリガーが有効化されるべきかを判定する。同様のユーザコマンドは、「私の娘が帰宅した場合に、私にリマインドしてください。」である。
【００８８】
社会的近接トリガーの例は、デバイス１１０のユーザの友人又は同僚がユーザ（又はデバイス１１０）から所定の距離以内にある場合である。例えば、タスク項目の作成を開始したユーザコマンドは、「ジョージが私から１００フィート（３０メートル）以内にいる場合に彼に電話することを私にリマインドしてください。」というものであってもよい。よって、ジョージ（又はジョージのモバイルデバイス）の位置は、この外因性トリガーの誘発に不可欠な要因である。具体的に、タスクマネージャ１１２又はデバイス１１０で実行されている別のプロセスは、デバイス１１０の現在位置を、ジョージのデバイスの現在位置に対して比較して、２つのデバイスが離れている距離を判定する。これに代えて、ジョージのデバイスは、ジョージのデバイスとデバイス１１０との両方が加入しているクラウドサービスに自身の位置を送信してもよい。デバイス１１０は、ジョージのデバイスとデバイス１１０との間の距離に関する更新をクラウドサービスから受信する。タスクマネージャ１１２は当該距離情報を使用して、社会的近接トリガーが有効化されるべきかを判定する。
【００８９】
継続クエリトリガーの例は、ウェブページが会社名のような特定の用語又はフレーズに言及している場合である。これを検出するために、継続クエリが生成され、継続的に（例えば、一日に一度）発行される。例えば、タスク項目の作成を開始したユーザコマンドは、「ｃｎｎ．ｃｏｍがバークマン・インダストリーに言及したら私に教えてください。」というものであってもよい。タスクマネージャ１１２又はデバイス１１０で実行されている別のプロセスは、検索クエリを（例えば、検索エンジンへ）発行し、結果を受信する。「バークマン・インダストリー」という名前を含むｃｎｎ．ｃｏｍからのウェブページを当該結果が含むとタスクマネージャ１１２が判定した場合に、タスクマネージャ１１２はデバイス１１０のユーザに通知を提供する。
【００９０】
ローカルイベントトリガーの例は、所定のローカルイベントが発生する場合である。これを検出するために、タスクマネージャ１１２はオンラインサービスからデータを受信する。タスクマネージャ１１２（又はクラウド１３０のタスクサービス）は、（１つ以上の通信プロトコルを介して）オンラインサービスにリクエストを定期的に送信してもよい。これに代えて、タスクマネージャ１１２は、所定のイベントに関する情報を受信するためにオンラインサービスに加入してもよい。例えば、タスク項目の作成を開始したユーザコマンドは、「ビートルズのチケットがショアラインで販売中の場合に私に教えてください。」というものであってもよい。これに応じて、タスクマネージャ１１２、デバイス１１０で実行されている別のプロセス又はＮＬＰサービス１３２は、ショアライン円形競技場での実演についてビートルズのチケットが購入可能になった場合に通知を受信するために、オンラインチケットサービスに加入リクエストを送信する。ビートルズのチケットを購入可能であるとタスクマネージャ１１２が判定した場合に、タスクマネージャ１１２は、デバイス１１０のユーザに通知を提供する。
【００９１】
別の例として、ユーザはサーフィンができる場合を知ることに興味があってもよい。よって、ユーザは、「サーフィンができるようになる１時間前に私にリマインドしてください。」というコマンドを発行してもよい。タスクサービス１１２（又はクラウド１３０のタスクサービス）は、サーフィン・サイトのクエリを規則的に発行してもよいし、サーフィン・サイトからのアラートを購読してもよい。
【００９２】
上記に基づいて、外因性トリガーのタイプ及び例は、事実上終わりがない。デバイス１１０とは別個に生じるイベントに関する判定をタスクマネージャ１１２（又はクラウド１３０のタスクサービス）が行える限り、当該イベントは、タスク項目に関連した動作の実行を引き起こすために用いられうる。
【００９３】
ＩＩＩ．  タスク項目の消費（アクティブペイロード）
タスク項目は、当該タスク項目に関連した動作が実行された場合に「消費」される。このような動作は、デバイス１１０に表示される（又は、通知がオーディオ通知であるならば再生される）通知であってもよい。デバイス１１０のユーザに通知を提供することに加えて又はこれに代えて、他の取りうる動作は、電話呼又は検索クエリを開始すること、（ユニフォームリソースロケータ（ＵＲＬ）を含む）ＨＴＴＰリクエストを送信すること、電子メール又はテキスト（ＳＭＳ）メッセージを送信すること、アプリケーションに実行させること、ユーザに代わって購入を行わせることを含む。タスク項目に関連しうるこのような動作は「アクティブペイロード」と呼ばれる。アクティブペイロードの処理は、タスクマネージャ１１２によろうが別のプロセスによろうが、ローカルであろうがデバイス１１０のリモートであろうが、何らかの動作を実行させる。言い換えると、タスク項目に関連したタスクをユーザに単に通知する代わりに、タスクマネージャ１１２（又はクラウド１３０のサービス）は、タスク項目の動作部分を自動化できる。
【００９４】
上記で暗示されたように、動作を実行させることは、タスクマネージャ１１２が別のアプリケーション又はプロセスに動作を実行させることを伴ってもよい。（例えば、他のアプリケーションのＡＰＩを介した）他のアプリケーションのコール又は呼び出しは、以下の例で示されるように、更なる入力とともに実行されてもよいし、更なる入力なしに実行されてもよい。
【００９５】
「他の」アプリケーションのタイプは多岐にわたりうる。デバイス１１０で利用可能でありうるアプリケーションの非限定的な例は、電話アプリケーション、電子メールアプリケーション、ウェブブラウザ、音楽プレーヤアプリケーション、メディアプレーヤアプリケーション、音楽ダウンロードアプリケーション、画像処理アプリケーション、地理的位置決定アプリケーション、連絡先アプリケーション、ＳＭＳアプリケーション、ビデオゲームアプリケーション及びテキスト処理アプリケーションを含む。
【００９６】
例えば、デバイス１１０のユーザが声に出して、「本日の午後、彼女にかけ直すことを私にリマインドしてください。」と言う。この音声入力は、デバイス１１０が（コンテキストデータと共に）ネットワーク１２０を通じてＮＬＰサービス１３２へ送信する音声データに変換される。ＮＬＰサービス１３２は、音声データ及びコンテキストデータを分析して、「彼女」がマリリン・メルローを指すと判定する。ＮＬＰサービス１３２は、（コンテキストデータ、事前に定義された設定、又は以前の履歴のいずれに基づこうが）「午後」が午後２時であると判定し、マリリン・メルローについての１つ以上の電話番号を含む、ユーザに関連した連絡先リスト（又はアドレス帳）に基づいてマリリン・メルローについての電話番号を判定する。連絡先リストはデバイス１１０に格納されてもよいし、クラウド１３０に格納されてもよい。ＮＬＰ１３２は、タスク項目を生成するために用いられるリマインダデータをタスクマネージャ１１２（又はクラウド１３０のタスクサービス）へ送信する。リマインダデータは、「本日」という日付と、午後２時という時刻と、特定の電話番号を用いてマリリン・メルローに電話するという命令とを含む。現在時刻が午後２時であるとタスクマネージャ１１２が判定した場合に、タスクマネージャ１１２は、マリリン・メルローに電話することをユーザに促すメッセージを表示させてもよい。当該メッセージは、「後で」ボタンと「今電話する」ボタンとを含んでもよい。ユーザが「後で」ボタンを選択すると、タスクマネージャ１１２は午後のうちの後の時刻（例えば、１時間後）に再びメッセージを送信する。ユーザが「今電話する」ボタンを選択すると、タスクマネージャ１１２は、マリリン・メルローへの電話を開始する。この開始は、タスクマネージャ１１２がデバイス１１０で実行されている電話アプリケーション（不図示）へＡＰＩコールを行い、電話番号をＡＰＩコールの引数として渡すことを伴ってもよい。その後、電話アプリケーションは、当該電話番号を用いて、当該電話番号に関連したデバイスに電話をかける。
【００９７】
別の例として、デバイス１１０のユーザは、声に出して、「５時にリンゼーに愛しているとテキストを送る。」と言う。この音声入力は、デバイス１１０がネットワーク１２０を通じてＮＬＰサービス１３２に送信する音声データに変換される。ＮＬＰサービス１３２は、当該音声データを分析して、リンゼーの携帯電話番号が必要であり、「５時」が本日の午後５時を指すと判定する。タスクマネージャ１１２（又はクラウド１３０のタスクサービス）は、以下のデータ項目、（１）本日午後５時という完了時刻と、（２）テキスト（又はＳＭＳ）メッセージを送信するという動作と、（３）リンゼーの携帯電話の番号と、（４）テキストメッセージの一部となる「愛している」というテキスト列とを含むタスク項目を作成する。現在時刻が午後５時であると判定したことに応じて、タスクマネージャ１１２は当該タスク項目を分析して、実行される必要のある動作を判定する。その後、タスクマネージャ１１２は、タスク項目に関連した文字列を含むテキストメッセージをリンゼーの携帯電話に送信させる。このステップは、タスクマネージャ１１２がデバイス１１０で実行されているテキストアプリケーション（不図示）のＡＰＩコールを呼び出すことを含み、テキスト列（「愛してる」）がＡＰＩコールの引数である。
【００９８】
別の例として、デバイス１１０のユーザは、声に出して、「私が会社を出るときにサンノゼにあるレイチェル・レストランへ行くための道順を私に示してください。」と言う。この音声入力は、デバイス１１０がネットワーク１２０を通じてＮＬＰサービス１３２に送信する音声データに変換される。ＮＬＰサービス１３２は、音声データを分析して、リンゼーの携帯電話番号が必要であり、「５時」が本日の午後５時を指すと判定する。タスクマネージャ１１２（又はクラウド１３０のタスクサービス）は、以下のデータ項目、（１）ユーザの会社を出るという位置トリガーと、（２）ユーザの会社からレイチェル・レストランにどのようにして到着するかに関する命令（及び、場合によっては地図）を表示するという動作とを含むタスク項目を作成する。デバイス１１０のユーザが自身の会社を出たと判定したことに応じて、タスクマネージャ１１２は当該タスク項目を分析して、実行される必要のある動作を判定する。その後、タスクマネージャ１１２は、（ユーザからの更なる入力なしに、）移動道順リクエストを移動道順サービスに対して送信させる。移動道順リクエストは、レストラン名、レストランの何らかの住所情報、又はその両方を含む。移動道順サービスは、デバイス１１０でホスティングされてもよいし、別のデバイス（不図示）でホスティングされてもよい。
【００９９】
別の例として、デバイス１１０のユーザは、声に出して、「ブルズ対ペイサーズの試合が始まる３０分前にサンノゼにあるピザヘブンにチーズだけのピザを宅配で注文してください。」と言う。この音声入力は、デバイス１１０がネットワーク１２０を通じてＮＬＰサービス１３２に送信する音声データに変換される。ＮＬＰサービス１３２は、当該音声データを分析して、ブルズ対ペイサーズの試合がローカル時間の午後６時に始まり、よって時刻トリガーがローカル時間の午後５：３０であると判定する。ＮＬＰサービス１３２はまた、サンノゼのピザヘブンがオンライン注文に対応していると判定する。タスクマネージャ１１２（又はクラウド１３０のタスクサービス）は、以下のデータ項目、（１）午後５：３０という時刻トリガーと、（２）オプションとして宅配でピザヘブンにチーズだけのピザを注文するという動作とを含むタスク項目を作成する。現在時刻が午後５：３０であると判定したことに応じて、タスクマネージャ１１２（又はクラウド１３のタスクサービス）は当該タスク項目を分析して、実行される必要のある動作を判定する。その後、タスクマネージャ１１２は、ピザ注文リクエストをピザヘブンのオンライン注文サービスに対して送信させる。ピザ注文リクエストは、チーズだけというピザのタイプと、宅配という配達オプションと、ユーザの自宅の住所とを含む。ピザ注文リクエストは、オンライン注文サービスへのＡＰＩコールの形式であってもよく、ＡＰＩコールの引数は、チーズだけのトッピングの指示と、宅配の指示と、ユーザの自宅の住所の指示とを含む。これに代えて、要求されるピザ注文を送信させる前に、タスクマネージャ１１２は、ユーザにこのタスクに関して通知するメッセージであって、デバイス１１０に表示される（又は再生される）メッセージを策定してもよい。ユーザが肯定的な入力を与えたならば、タスクマネージャ１１２はピザリクエスト注文を送信させる。ユーザが否定的な入力を与えたならば、ピザリクエスト注文は送信されない。
【０１００】
別の例として、デバイス１１０のユーザは、声に出して、「明日の午後３時にパンドラで私のクラシックステーションを再生してください。」と言う。「明日の午後３時」という時刻はユーザについてスケジュールされた試験の終わりに一致する。この音声入力は、デバイス１１０がネットワーク１２０を通じてＮＬＰサービス１３２へ送信する音声データに変換される。ＮＬＰサービス１３２は、当該音声データを分析して、意図された動作が実行される予定の日付及び時刻を判定する。タスクマネージャ１１２（又はクラウド１３０のタスクサービス）は、以下のデータ項目、（１）翌日を識別する日付の午後３時という時刻トリガーと、（２）ユーザのパンドラ音楽アプリケーションのクラシック「ステーション」を再生するという動作であって、クラシックステーションは、ユーザによって確立され、ユーザのパンドラアカウントに関連している、動作とを含むタスク項目を作成する。現在時刻が適切な日付の午後３：００であると判定したことに応じて、タスクマネージャ１１２（又はクラウド１３のタスクサービス）は当該タスク項目を分析して、実行される必要のある動作を判定する。その後、タスクマネージャ１１２は、パンドラ音楽アプリケーション（不図示）にデバイス１１０での実行を開始させ、ユーザのクラシックステーションを「再生」させる。タスクマネージャ１１２は、パンドラ音楽アプリケーションへのＡＰＩコールを呼び出すことによってクラシックステーションを再生させてもよく、ＡＰＩコールの引数はクラシックステーションの指示を含む。
【０１０１】
自動化されたタスク完了
ある実施形態では、タスクマネージャ１１２（又はクラウド１３０のタスクサービス）は、タスク項目が消費されたことを検出したことに応じて、タスク項目を完了として「マーク」する。言い換えると、タスク項目は、完了状態又は未完了状態に関連しうる。タスクマネージャ１１２は、タスクマネージャ１１２によって管理されるタスク項目をユーザが閲覧し、タスク項目が完了したか否かを判定するためのインタフェースを提供してもよい。タスクマネージャ１１２は、デバイス１１０のユーザがすべての完了済タスク項目を閲覧するためのオプションを提供してもよい。完了済タスク項目は、タスク項目が作成された時刻、消費された（すなわち完了した）時刻、又は何らかの他の基準に基づいて整列されてもよい。
【０１０２】
これに加えて又はこれに代えて、消費されたタスク項目は記憶装置から削除される。例えば、タスクマネージャ１１２は、消費された任意のタスク項目をデバイス１１０の記憶装置から削除する。デバイス１１０のユーザが最近消費されたタスク項目を確認できるように、タスク項目の削除は、対応するタスクが完了してから所定の期間後（例えば、１カ月後）に生じてもよい。クラウド１３０に格納されているタスク項目をクラウド１３０のタスクサービスが管理するならば、当該タスクサービス、が消費されたタスク項目を削除してもよい。
【０１０３】
遅延されたタスク解釈
ある実施形態では、タスク項目が作成された場合に、対応するタスクの一部の詳細だけが知られており、タスク項目に関連して格納されていてもよい。記述、（存在するならば）住所、トリガー、及び／又は動作に関する他の詳細は、自動的であろうと手動のプロセスであろうと、後から判定されてもよい。
【０１０４】
例えば、デバイス１１０は、「５時にサラに電話する。」というユーザコマンドを反映する音声データをＮＬＰ１３２へ送信する。ＮＬＰサービス１３２は、当日の午後５時が時刻トリガーであると判定し、タスクマネージャ１１２（又はクラウド１３０のタスクサービス）に当該時刻トリガーを有するタスク項目を生成させる。しかし、当該タスク項目に関連した動作項目は、電話番号の指示を有さない「サラに電話する」である。ＮＬＰサービス１３２はサラが誰であるかをまだ決定しておらず、それゆえ、彼女に電話するためにどの電話番号を使用するかをまだ決定していない。その代わりに、これらの詳細は、後で、例えば現在時刻が午後５時であり、動作が引き起こされる場合に、又はトリガーが有効化される幾分前に判定される。午後５時に、タスクマネージャ１１２は、（多く存在する場合に）特定のサラに関する情報を識別し、サラについての電話番号を判定するために、「サラに電話する」という動作項目をＮＬＰサービス１３２又は別のサービスへ送信する。サラについての電話番号が判定された場合に、タスクマネージャ１１２（又は別のプロセス）は、デバイス１１０の電話アプリケーションに、当該電話番号を用いて電話を開始させる。この例では、（ａ）個人の識別と、（ｂ）当該個人の電話番号との曖昧さ解消が、タスク項目が生成された後まで遅延される。
【０１０５】
別の例では、デバイス１１０は、「明日の朝のサンノゼの天気を調べてください。」というユーザコマンドを反映する音声データをＮＬＰサービス１３２へ送信する。ＮＬＰサービス１３２は、次の日の午前７時が時間トリガーであると判定し、タスクマネージャ１１２（又はクラウド１３０のタスクサービス）に当該時刻トリガーを有するタスク項目を作成させる。しかし、当該タスク項目に関連した動作項目は、どのように動作を実行するかの指示を有さない「サンノゼの天気を調べてください。」である。ＮＬＰサービス１３２は、サンノゼの天気がどのようにして調べられるかを判定するためのユーザコマンドの部分をまだ解釈していない。その代わりに、これらの詳細は後で、例えば現在時刻が次の日の午前７時であり、動作が引き起こされる場合、又はトリガーが有効化される幾分前に判定される。次の日の午前７時に、タスクマネージャ１１２は、サンノゼの天気をどのようにして調べるかを識別するために、（テキストの形式だろうが、オーディオの形式であろうが、）「サンノゼの天気を調べてください。」という動作項目をＮＬＰサービス又は別のサービスへ送信する。これに応じて、ＮＬＰサービス１３２又は別のサービスは、サンノゼの天気に関する情報を読み出し、表示されるデバイス１１０に当該情報を提供する。この例では、どのようにして動作が実行されるかの判定は、タスク項目が生成される後まで遅延される。
【０１０６】
警告への応答
上記で暗示されたように、端なる通知を超える動作に関連しているタスク項目について、動作を実行する代わりに、デバイス１１０のユーザはまず、タスクの警告を受け、ユーザは、肯定的な応答又は否定的な応答で応答することが可能となる。例えば、タスク項目の動作は、ナックル・プロジェクトに関してジェイン・スミスに電子メールを送ることである。タスクマネージャ１１２は、デバイス１１０のユーザがジェイン・スミスに電子メールを送ることになっていることを示すメッセージをデバイス１１０で表示させる。ユーザは、肯定的な応答を示す物理ボタン又はグラフィカルボタンを押してもよい。これに代えて、ユーザは、肯定的な応答を示す「そうしてください。」又は「はい。」というコマンドを話してもよい。（デバイス１１０のタッチスクリーン、キーボード選択又は音声入力の何れを介していたとしても）当該入力に応答して、タスクマネージャ１１２はデバイス１１０の電子メールアプリケーションに、ナックル・プロジェクトを指す件名を有し、ジェイン・スミスを宛先とした電子メールメッセージを作成させる。これに代えて、ユーザはジェイン・スミスに電子メールを送ることのタスクを後でリマインドされることを決定してもよい。よって、当該通知に応じて、ユーザは、１時間後又は翌日のような何らかの時間後にジェイン・スミスに電子メールを送りたいことを示す入力を（デバイス１１０を介して）与える。このような入力はユーザが「後で私にリマインドしてください。」又は単に「後で。」と言うことであってもよい。
【０１０７】
ある実施形態では、動作が電子メールメッセージのような通信の動作に応答することである場合に、タスクマネージャ１１２はタスク作成時に通信のコンテキストを格納し、当該動作の実行時に当該コンテキストを読み出す。通信のコンテキストは、様々な実施形態において、ユニバーサルリソース識別子又はコンテキストへの他の参照若しくはコンテキストのデータのコピーであってもよい。例えば、タスクマネージャ１１２は、返信されるべき電子メールメッセージへの参照又はこのコピーを格納する。動作が実行される際に、電子メールメッセージのコンテンツは、あたかもユーザが最初に読んだ際に返信を実行したかのように再作成されうる。このようにして格納され読み出されうるコンテキストデータの他の例は、限定的ではなく、テキストメッセージ、文書、ウェブページ、音声メールメッセージ、写真、オーディオ録音及びビデオを含む。
【０１０８】
別の例として、タスク項目の動作は、ジョージ・バートに電話することである。電話する動作を引き起こすと判定したことに応じて、タスクマネージャ１１２は、デバイス１１０のユーザにリマインダが利用可能であることの指示を提供する。当該指示は、デバイス１１０が振動／震動すること、可聴ノイズを生成すること、及び／又は通知メッセージを表示することであってもよい。デバイス１１０を保持することなく、ユーザは声に出して「それを読んでください。」と言う。タスクマネージャ１１２（又は別のプロセス）がこの入力を処理したことに応じて、デバイス１１０は以下の声明、「リマインダ…ジョージ・バートに電話する。」の可聴版を再生する。可聴版は、ユーザからの元の入力の再生に基づいてもよく、コンピュータ生成音声を反映してもよい。ユーザがジョージ・バートに電話することを決定したならば、ユーザは単に「ＯＫ」又は「それを行ってください。」と言ってもよく、これはデバイス１１０の電話アプリケーションにジョージ・バートへ電話させる。ユーザがジョージ・バートに電話しないことを決定したならば、ユーザは「無視する」又は「後で私にリマインドしてください。」と言ってもよい。
【０１０９】
リストを用いたタスク項目の編成
本発明の実施形態によれば、タスク項目は１つ以上のリストに関連付けられてもよい。リストは、同じカテゴリに関連している（又は、属する）１つ以上のタスク項目の集合である。リストは、編成された方法でデバイス１１０のユーザがタスク項目を閲覧できる方法である。様々なリストは、ユーザが実行したい（又は自身の代わりに実行されたい）タスクを知的かつ直感的に閲覧することを可能にする。図６〜図１４は、本発明の実施形態に従う様々なタイプのビューを示す。
【０１１０】
新たなタスク項目が作成された場合に、タスクマネージャ１１２（又はクラウド１３０のサービス）は、新たなタスク項目に関連した１つ以上の属性を識別し、当該新たなタスク項目を１つ以上のリストに割り当てる。例えば、新たなタスク項目が「電話する」という動作を含むならば、タスクマネージャ１１２（又は他のプロセス）は、当該新たなタスク項目を電話予定リストに追加する。同様に、新たなタスク項目が所定のコンテキスト及び特定の位置を含むならば、タスクマネージャ１１２は当該コンテキスト及び／又は特定の位置を識別し、当該新たなタスク項目を位置リスト及び／又はコンテキストリストに追加してもよい。これに代えて、詳細が後述されるように、ユーザはリストのうち、新たなタスク項目が追加される１つ以上を手動で識別してもよい。
【０１１１】
全リストビュー
図５Ａは、本発明の実施形態に従うデバイス１１０が表示してもよい全リストビュー５００を示す。全リストビュー５００は、特定のタスク項目に関する情報を含まない。その代わりに、全リストビュー５００は、タスクマネージャ１１２（又はクラウド１３０のタスクサービス）により維持される複数のリスト、すなわち本日リスト５１０、全ＴｏＤｏリスト５２０、近所リスト５３０、車内リスト５４０、電話予定リスト５５０、電子メール予定リスト５６０、食料品リスト５７０、購入予定リスト５８０及び完了済リスト５９０への参照を含む。上述したように、タスク項目は複数のリストに関連付けられてもよい（又は属してもよい）。例えば、記述が牛乳を買うことであり、時刻トリガーが本日であるタスク項目は、本日リスト５１０、全ＴｏＤｏリスト５２０、食料品リスト５７０及び購入予定リスト５８０に属してもよい。
【０１１２】
リストは以下の３つのタイプ、すなわち組み込みリストすなわち事前に規定されたリストと、スマートリストと、カスタムリストとのうちの１つに特徴づけられてもよい。本日リスト５１０、全ＴｏＤｏリスト５２０及び完了済リスト５９０は組み込みリストすなわち事前に規定されたリストの例である。
【０１１３】
スマートリストは、動作（例えば、電話、電子メール、テキスト、警告）、位置及び／又は動作が実行されるコンテキストのような、タスク項目が有しうる様々な特徴又は属性に基づく。スマートリストの例は、動作別リスト、位置別リスト及びコンテキスト別リストを含む。車内リスト５４０、電話予定リスト５５０及び電子メール予定リスト５６０は動作別リストの例である。動作別リストの他の例は、テキスト送信予定リスト、調査予定リスト及び訪問予定リストを含んでもよい。
【０１１４】
カスタムリストの例は、ＮＬＰサービス１３２によって識別されたカテゴリに基づくリスト及びユーザによって作成されたリストを含む。食料品リスト５７０及び購入予定リスト５８０はカスタムリストの例である。カスタムリストの別の例は、ユーザの好みのワインのリストを含むワインリスト（不図示）である。
【０１１５】
図５Ａに示されるリストに戻り、本日リスト５１０に属するタスク項目は、対応するタスクが実行されなければならない又は実行されるべきである当日中の時刻を示すトリガー基準に関連している。すべてのタスク項目は全ＴｏＤｏリスト５２０に属する。近所リスト５３０に属するタスク項目は、デバイス１１０の現在位置から所定の距離（例えば、１マイル（１．６ｋｍ））以内であるとみなされる位置に関連している。車内リスト５４０に属するタスク項目は、車内で又は移動中に実行されるべきタスクに関連している。電話予定リスト５５０に属するタスク項目は、人又はエンティティに電話する動作に関連している。電子メール予定リスト５６０に属するタスク項目は、人又はエンティティに電子メールを送る動作に関連している。食料品リスト５７０に属するタスクは、購入する食料品項目（例えば、牛乳、卵、フルーツ）に関連している。購入予定リスト５８０に属するタスク項目は、衣服、書籍、楽曲又は食料品のような購入する項目に関連している。完了済リスト５９０に属するタスク項目は完了済みであるとみなされ、対応するタスクが実行されたか、少なくとも各タスク項目に関連した動作（例えば、警告又は通知）が実行されたことを示してもよい。
【０１１６】
全リストビュー５００はまた、選択された場合に現在及び／又は将来のタスク項目が追加されうるようにデバイス１１０のユーザが別のカスタムリストを作成することを可能にする「＋」画像を含む。
【０１１７】
図５Ｂは図５Ａに示されるリストの一部を示すが、デバイス１１０のユーザが特定のタスク項目を検索することを可能にする検索フィールド５０２を有する。タスク項目は、例えば、タスク項目が関連する作成日、（知られているならば）完了日、完了状況、（存在するならば）コンテキストトリガー、（存在するならば）位置及び／又は動作タイプ（例えば、通知のみ、電話、電子メール又は購入）に基づいて検索されてもよい。
【０１１８】
本日リスト
図６は、例えば本日リスト５１０をユーザが選択したことに応じてデバイス１１０が表示する本日リストのビュー６００を示す。ビュー６００は、２つのセクション、すなわち特定の時刻に関連しているタスク項目についてのセクション６１０と、特定の時刻に関連していないタスク項目についてのセクション６２０とに分割されたタスクのリストを含む。セクション６１０内のタスク項目のそれぞれは、移動時間リマインダに関連している。セクション６１０の３番目のタスク項目と、セクション６２０の２番目〜４番目のタスク項目とは、単なるリマインダ又は警告を超える動作に関連している。
【０１１９】
例えば、セクション６１０の３番目のタスク項目は、午後５：００に「クロエを迎えに行く」ことである。当該記述の右にあるアイコンはコンパスの画像であり、このタスク項目に関連した動作が、この例ではパインウッド校である意図された目的地へデバイス１１０のユーザを案内するのに役立つ移動道順を生成することであることを示す。
【０１２０】
別の例として、セクション６２０の２番目のタスク項目は、「ジョン・アップルシードに電話する」ことである。当該記述の右にあるアイコンは電話の画像であり、このタスク項目に関連した動作がジョン・アップルシードに電話することであることを示す。電話画像に隣接する画像は車であり、ユーザが車内にいるかユーザが移動中にデバイス１１０のユーザがジョン・アップルシードに電話することを示す。
【０１２１】
別の例として、セクション６２０の最後のタスク項目は、「パブロ・マークに返信する」ことである。当該記述の右にあるアイコンは封筒の画像であり、このタスク項目に関連した動作がパブロ・マークに電子メールを送信することであることを示す。ビュー６００はまた、このタスク項目が期限渡過、厳密にいうと、パブロ・マークに電子メールを送る当初スケジュールされていた時刻を過ぎたことを示す。
【０１２２】
単一タスク項目ビュー
図７は、デバイス１１０が表示し、特定のタスク項目に関する詳細を含むビュー７００を示す。ビュー７００は、図６のビュー６００のセクション６２０の２番目のタスク項目をユーザが選択したことに基づいて生成されていてもよい。表示されたタスク項目は、４つのデータ項目、すなわち記述項目７１０と、動作項目７２０と、リマインダ項目７３０と、リスト割り当て項目７４０とを含む。
【０１２３】
記述項目７１０は、タスクのハイレベルな記述（「ジョン・アップルシードに電話する」）を含み、主題に関する詳細（「アーモンド取引について話し合う」）を含む。記述項目７１０を選択することにより、デバイス１１０のユーザは当該記述を編集できるようになってもよい。
【０１２４】
動作項目７２０は、動作の記述（「電話する」）を含み、ジョン・アップルシードのどの電話（「モバイル」）を用いるかを含む。動作項目７２０の選択により、デバイス１１０のユーザがジョン・アップルシードに関連した電話番号を閲覧すること、及び／又は、ジョン・アップルシードに関連した別の電話番号、ジョン・アップルシードの電子メールアドレス等のような他の連絡先オプションを提供することが可能になってもよい。さらに、動作項目７２０の電話アイコンの選択により、タスクマネージャ１１２が、当該タスク項目に関した１つ以上のトリガー基準が満たされるのを待つのではなく、ジョン・アップルシードに即座に電話し始めるようになってもよい。
【０１２５】
リマインダ項目７３０は、検出された場合に動作を実行させるか、少なくともタスクに関する警告を実行させるトリガーのタイプ（「車内にいる場合」）を示す。リマインダ項目７３０の選択により、ユーザがリマインダのタイプの変更をできるようになってもよい。
【０１２６】
リスト割り当て項目７４０は、タスク項目が属するリストを示し、この例では「ナッツクラック・プロジェクト」リストである。このリストは、カスタマイズされたリストの例である。リスト割り当て項目７４０の選択により、デバイス１１０が、「ナッツクラック・プロジェクト」リストに属する複数のタスク項目を表示するようになってもよい。
【０１２７】
全ＴｏＤｏリスト
図８は、デバイス１１０が表示し、複数のタスク項目に関する情報を含む全ＴｏＤｏリストのビュー８００を示す。この例では、複数のタスク項目は日付順に並んでいる。ビュー８００は、図８Ａのビュー８００における全ＴｏＤｏリスト８２０のユーザ選択に基づいて生成されていてもよい。ビュー８００は、２つのセクション、すなわちある日に完了されるべきタスク項目（又はそれへの参照）を含むセクション８１０と、翌日に完了されるべきタスク項目を含むセクション８２０とに分割される。
【０１２８】
ビュー８００で参照されるタスク項目の一部は完了している。このような完了済みのタスク項目は、対応する記述の左にあるライトグレイ画像で示される。完了しているタスク項目は、チェックマークなどの他の技術によって、未完了のタスク項目と区別されてもよい。
【０１２９】
図８に示される例では、タスク項目は、対応するタスクが実行されるべき日付（すなわち、「期限日」）によって編成される。しかし、ビュー８００で参照されるタスク項目は、デバイス１１０のユーザが対応するタスクの警告又はリマインドを受けるべき日付（「警告日」）、タスク項目が作成された日付（「作成日」）、タスク項目が変更された日付（「変更日」）、又は対応するタスクが実行された日付（「完了日」）によって編成されてもよい。
【０１３０】
近所リスト
図９は、デバイス１１０が表示する「近所」リストのビュー９００を示す。ビュー９００は、図８Ａのビュー８００の近所リスト８３０のユーザ選択に基づいて生成されていてもよい。ビュー９００は、デバイス１１０の現在位置からの距離に基づいて並んだ複数の位置に関する情報を含む。リストの最上部に示される位置（「自宅」）はデバイス１１０の現在位置から最も近いものであり、リストの最下部に示される位置（「パインウッド校」）はデバイス１１０の現在位置から最も遠くにあるものである。
【０１３１】
ビュー９００に示される各位置は、異なる位置リストに関連している。各位置リストは、１つ以上のタスク項目に関連していてもよい。例えば、「自宅」位置は、（「自宅」位置のユーザ選択で表示されうる）４つのタスク項目に関連してもよいし、「アサートン・ドライクリーニング」位置はただ１つのタスク項目に関連していてもよい。
【０１３２】
ビュー９００に示される位置がデバイス１１０の現在位置からの距離に基づいて並んでいるので、デバイス１１０の現在位置が変化した場合に、位置インジケータが再整列されてもよく、一部がビュー９００から削除されてもよく、現在ビュー９００に表示されていないものがビュー９００に現れてもよい。例えば、デバイス１１０が、ビュー９００に示される２番目の位置によって識別されるホールフーズ店の隣の店に現在位置しているならば、デバイス１１０がビュー９００を表示するとき、ホールフーズ位置インジケータはリストの最上部にくるだろう。
【０１３３】
上述のように、ビュー９００は、「自宅」位置と「職場」位置とを含む。「自宅」（又は「職場」）のラベルが付された位置と特定の住所との関連付けは多数の方法でなされうる。例えば、多くのモバイルデバイスは当該モバイルデバイスのユーザに関するプロファイル情報を格納する。この情報は「ミー・カード」と呼ばれる。ミー・カードは典型的にユーザの自宅住所とユーザの職場住所とを格納する。よって、タスクマネージャ１１２（又は他のプロセス）は、デバイス１１０に格納されているミー・カードを分析して、ユーザの自宅住所及び（存在するならば）職場住所を判定する。
【０１３４】
ある実施形態では、特定の位置に半径が関連しており、当該半径により示される距離以内にある位置に関連している任意のタスク項目が当該特定の位置に関連しているとみなされる。例えば、デバイス１１０のユーザの自宅に関連した半径は２マイル（３．２ｋｍ）である。タスク項目が公園に関連しており、当該公園が自宅から２マイル（３．２ｋｍ）以内にあるならば、当該タスク項目は、自宅に関連している他のタスク項目とともに、「自宅」リストに関連している。
【０１３５】
位置リストビュー
上述のように、位置リストはスマートリストの例である。ある実施形態では、（例えば、１つ以上のトリガー基準の一部である）位置に関連している任意のタスク項目は、当該タスク項目の位置と同じ位置に関連している位置リストに自動的に関連付けられる。タスクマネージャ１１２（又はクラウド１３０のタスクサービス）は複数の位置リストを維持してもよい。
【０１３６】
図１０Ａは、デバイス１１０が表示する位置リストビュー１０００を示す。位置リストビュー１０００は、図９の近所ビュー９００の「自宅」位置インジケータのユーザ選択に基づいて生成されていてもよい。位置リストビュー１０００は６つのタスク項目を含む。最初の４つのタスク項目のそれぞれに隣接するベル画像は、デバイス１１０がユーザの自宅にある又はその近くにあるか、又は指定された日付の少なくとも何らかの時刻である場合にこれらのタスク項目についてリマインダ（又は警告）が生成されることを示す。リマインダ又は警告は最後の２つのタスク項目について生成されない。
【０１３７】
位置リストビュー１０００はまた、地図アイコン１００２を含み、このアイコンは選択された場合にタスクマネージャ１１２に、当該地図アイコンに関連した位置の地図を生成する地図アプリケーションと通信させる。この例では、ユーザの自宅の地図が生成される。
【０１３８】
図１０Ｂはデバイス１１０が表示する位置リストビュー１０５０を示す。位置リストビュー１０５０は、図９の近所ビュー９００の「ホールフーズ」位置インジケータのユーザ選択に基づいて生成されていてもよい。位置リストビュー１０５０は６つのデータ項目を含み、これらのそれぞれはタスク項目であってもよいし、そうでなくてもよい。その代わりに、位置リストビュー１０５０の各データ項目は単に、ホールフーズ食料品店で購入するための食料品項目を識別する。食料品項目の何れも、（存在しうるとしても）リマインダにも（存在しうるとしても）完了日にも関連していない。
【０１３９】
位置リストビュー１０５０で識別される食料品項目は、デバイス１１０のユーザからの入力に応じてホールフーズ食料品リストに関連していた。例えば、ユーザは以下のコマンド、「アーモンドミルクを私の食料品リストに追加してください。」又は「私の家の近くのホールフーズでアーモンドミルクを入手することを覚えていてください。」を話した。デバイス１１０は、このコマンドを反映する音声データをＮＬＰサービス１３２へ送信する。ＮＬＰサービス１３２は、当該音声データに基づいて、ユーザがアーモンドミルクを購入しようとしていることを判定する。ＮＬＰサービス１３２は、タスクマネージャ１１２に、（ａ）アーモンドミルクを購入するタスクについてタスク項目を生成させ、当該タスク項目をホールフーズリストに追加させてもよいし、（ｂ）単に「アーモンドミルク」をホールフーズリストに追加させてもよい。
【０１４０】
位置リストビュー１０５０は地図アイコン１０５２も含み、このアイコンは選択された場合にタスクマネージャ１１２に当該地図アイコンに関連した位置の地図を生成する地図アプリケーションと通信させる。この例では、表示された住所によって識別されるホールフーズ店の地図が生成される。
【０１４１】
スマートリスト
上述のように、位置別リスト、動作別リスト及びコンテキスト別リストはスマートリストの例である。図１１Ａはコンテキスト別リスト、具体的には車内リストのビュー１１００を示す。図１１Ｂ及び図１１Ｄは異なる動作別リスト、具体的には電話予定リストのビューと電子メール予定リストのビューとを示す。
【０１４２】
ビュー１１００は、特定のコンテキスト、すなわち「車内」コンテキストで実行されるべきであるタスクに関連しているタスク項目を含む。車内リストのタスク項目は、電話又は道順取得のような異なる動作に関連してもよい。
【０１４３】
対照的に、図１１Ｂに示されるビュー１１１０は、同じ動作に関連しているタスク項目を含み、この例では人又はエンティティに電話することである。ビュー１１１０の最初の３つのタスク項目は電話アイコンを有し、対応するタスクに示される人の電話番号がタスクマネージャ１１２に既知であることを示す。しかし、ビュー１１１０の最後のタスク項目は電話アイコンに関連しておらず、おそらくはユーザの連絡先リストの多くの連絡先がボブという名前を有するせいで、「ボブ」についての電話番号がタスクマネージャ１１２に確実に知られているわけではないことを示す。ビュー１１１０の「ボブに電話する」タスク項目の選択により、デバイス１１０は、図１１Ｃに示されるビュー１１２０を表示するようになる。
【０１４４】
ビュー１１２０は、「ボブに電話する」タスク項目に含まれる（か、これに関連している）２つのデータ項目、すなわち記述項目と動作項目とを示す。動作項目は、複数の連絡先が「ボブ」として知られていることを示す。結果として、当該動作項目は無効化された電話ボタンを含み、ビュー１１１０の他のタスク項目に関連した電話ボタンは無効化されていない。動作項目の選択により、「ボブ」の識別の曖昧さを解消するためのプロセスが開始されてもよい。例えば、動作項目の選択により、タスクマネージャ１１２は、それぞれがボブ又はロバートの名前を有する名前のリストを表示するようになってもよい。このようにして、識別又は電話番号の曖昧さ解消は、対応するタスク項目の作成の遥かに後で生じてもよい。
【０１４５】
図１１Ｄに示されるビュー１１３０は６つのタスク項目を含み、それぞれは電子メールを送る動作を含む。電子メール予定タスク項目のアクティブペイロード引数は、「Ｔｏ」すなわち電子メールアドレスと、場合によっては電子メールの件名の題目とを含む。
【０１４６】
ある実施形態では、「電子メール」タスク項目は、タスクマネージャ１１２とは別個のものである電子メールアプリケーションから作成される。電子メールアプリケーションは、タスクマネージャ１１２のＡＰＩコールを呼び出して、動作が電子メール送信であるタスク項目を作成してもよく、当該動作は電子メールアドレス及び題目を含むアクティブペイロードを含む。
【０１４７】
カスタムリスト
上述のように、カスタムリストは、組み込みリスト及びスマートリストを含む３つの主なリストのタイプのうちの１つである。上記のカスタムリストの例は、（図５Ａで参照される）食料品リスト５７０と購入予定リスト５８０とを含む。図１２は、食料品リスト５７０のユーザ選択に応じて生成されうるビュー１２００を示す。ビュー１２００は、６つのデータ項目を含み、それぞれ購入する異なる食料品項目を参照する。これらのデータ項目のそれぞれは、記述のみを有するタスク項目でありうる。データ項目は、ＮＬＰサービス１３２からの入力に基づいて食料品リストに関連付けられていてもよい。例えば、ＮＬＰサービスは、デバイス１１０から、「店で出来立てのパンを入手する。」というユーザコマンドを反映する音声データを受信する。ＮＬＰサービス１３２は、デバイス１１０のユーザが食料品店で出来立てのパンを購入するつもりであると判定し、「出来立てのパン」を食料品カテゴリに関連付ける。これに応じて、ＮＬＰサービス１３２は、「出来立てのパン」の記述を含み、食料品カテゴリに関連しているタスク項目を作成するためのタスク項目作成コマンドをタスクマネージャ１１２へ送信する。これに応じて、タスクマネージャ１１２は、タスク項目を作成し、タスクマネージャ１１２が維持する食料品リストに当該タスク項目を関連付ける。
【０１４８】
図１３は、別のタイプのカスタムリスト、すなわちユーザ定義リストのビュー１３００を示す。このユーザ定義リストは「ナッツクラック・プロジェクト」という名称であり、３つのタスク項目を含み、このうちの最初のものは動作（すなわち、電話する）及びコンテキストトリガー（例えば、「車内」又は「運転中」）に関連している。デバイス１１０のユーザは、タスク項目をユーザ定義リストに「手動で」関連付けてもよい。例えば、タスクマネージャ１１２がタスク項目を作成した後、ユーザは、タスク項目を選択し、デバイス１１０に表示された１つ以上の選択可能オプション（例えば、メニュー）を介して特定のユーザ定義リストを選択し、これにより、タスクマネージャ１１２は当該タスク項目を特定のユーザ定義リストに関連付けるようになる。
【０１４９】
これに代えて、ＮＬＰサービス１３２は、（音声であろうとテキストであろうと）デバイス１１０から受信された入力データに基づいて、タスク項目に関連付ける特定のリストを判定してもよい。例えば、音声データは「私はナッツクラック・プロジェクトについて提案書を書く必要がある。」というユーザコマンドを反映してもよい。ＮＬＰサービス１３２は、「提案書を書く」がタスクであり、「ナッツクラック・プロジェクト」がリストの名前であると判定し、タスクマネージャ１１２はこれをすでに作成していてもよいし、まだ作成していなくてもよい。その後、ＮＬＰサービス１３２は、記述（「提案書を書く」）と、作成予定のタスク項目が追加されうる取りうるリストの名前（「ナッツクラック・プロジェクト」）とをタスクマネージャ１１２へ送信する。タスクマネージャ１１２は、「ナッツクラック・プロジェクト」と同じ又は同様の名前を有するリストが存在するかを判定する。存在するならば、タスクマネージャ１１２は新たなタスク項目を作成し、当該タスク項目をこのリストに関連付ける。存在しないならば、タスクマネージャ１１２はこの名前の新たなリストを作成し、新たなタスク項目を作成し、このタスク項目を当該新たなリストに関連付ける。
【０１５０】
リスト及びメモ
上述のように、リストはタスクでない項目を含んでもよい。このような「非タスク」は、記述のみで構成される「メモ」と呼ばれる。図１４は、お気に入りワインリストのビュー１４００を示し、これは６つのメモを含み、それぞれ異なるワインを参照する。
【０１５１】
上述のように、ＮＬＰサービス１３２は、タスクマネージャ１１２がタスク及びメモを適切なリスト（群）に容易に割り当てることができるように、リスト名を認識するように構成されてもよい。
【０１５２】
カレンダイベント
ある実施形態では、タスクマネージャ１１２によって管理されるタスク項目を作成するために、カレンダアプリケーションのコンテキストで作成されるカレンダイベントが用いられる。カレンダアプリケーションはタスクマネージャ１１２の一部であってもよいし、別個に実行されるアプリケーションであってもよい。例えば、カレンダアプリケーションは、例えば記述、日付、（存在するならば）位置、（存在するならば）期間及び（存在するならば）リマインダのようなカレンダイベントの詳細に基づいてタスクマネージャ１１２にタスク項目を作成させる１つ以上のＡＰＩコールを介して、新たに生成されたカレンダイベントをタスクマネージャ１１２に送信するように構成されてもよい。これに代えて、タスクマネージャ１１２は、ユーザがカレンダを閲覧し、特定の日時又は日付の集合に関連付けられたイベントを作成できるようにするカレンダサービスを提供してもよい。イベントの作成の際に、タスクマネージャ１１２はまた、当該イベントについてタスク項目を作成する。
【０１５３】
図１５は、カレンダイベントに基づいて生成されたタスク項目のビュー１５００を示す。タスク項目は、４つのデータ項目、すなわち記述（「エリザベス・リードとランチ」）、開始時刻（「本日午後１２：００」）、期間（「１時間」）及びリマインダ（「１０分前」）を含む。４つのデータ項目のうちの何れかの選択により、デバイス１１０のユーザは対応するデータ項目を編集することができてもよい。ある実施形態では、カレンダイベントに基づいて生成されたタスク項目に変更がなされたならば、当該変更は、カレンダアプリケーションによって管理されるカレンダイベントに「プッシュ送信」される。
【０１５４】
いずれのシナリオでも、カレンダサービスによって作成され維持されるカレンダイベントが位置に関連しているならば、当該カレンダイベントに基づいて生成されるタスク項目も当該位置に関連付けられてもよい。この場合に、タスクマネージャ１１２は、図１０Ａのビュー１０００の位置リストのような位置リストに当該タスク項目を自動的に関連付けてもよい。
【０１５５】
組合せ
上述の記載は４つの主なアプローチ（タスク項目の生成、タスク項目の編成、通知の引き起こし及びタスク項目の消費）を含むが、これらのアプローチのそれぞれは、例の多くで示されたように、個別に実施されてもよいし、一緒に用いられてもよい。例えば、タスク項目を生成するために自然言語処理が用いられてもよいが、タスク項目を処理（すなわち、タスク項目の編成、通知の引き起こし及びタスク項目の消費）するために本明細書に記載されたアプローチの何れも用いられない。別の例として、タスク項目を生成するために自然言語処理が用いられてもよく、本明細書に記載されたタスク項目を編成するためのアプローチが用いられてもよいが、本明細書に記載された通知の引き起こし又はタスク項目の消費のためのアプローチのいずれも用いられない。別の例として、タスク項目の生成及び編集並びに通知の引き起こしのためのアプローチの何れも用いられないが、本明細書に記載されたタスク項目の消費のためのアプローチが用いられる。
【０１５６】
ハードウェアの概要
ある実施形態によれば、本明細書に記載された技術は１つ以上の専用計算デバイスによって実装される。専用計算デバイスは、当該技術を実行するためにハードワイヤードされてもよいし、当該技術を実行するように永続的にプログラムされた１つ以上の特定用途向け集積回路（ＡＳＩＣ）又はフィールドプログラマブルゲートアレイ（ＦＰＧＡ）のようなデジタル電子デバイスを含んでもよいし、ファームウェア、メモリ、他の記憶装置又は組み合わせ内のプログラム命令に従って当該技術を実行するようにプログラムされた１つ以上の汎用ハードウェアプロセッサを含んでもよい。このような専用計算デバイスはまた、当該技術を実現するためのカスタムプログラムを有するカスタムハードワイヤードロジック、ＡＳＩＣ又はＦＰＧＡを組み合わせてもよい。専用計算デバイスは、デスクトップコンピュータシステム、ポータブルコンピュータシステム、ハンドヘルドデバイス、ネットワークデバイス又は当該技術を実装するためのハードワイヤードロジック及び／又はプログラムロジックを組み込む任意の他のデバイスであってもよい。
【０１５７】
例えば、図１６は、本発明の実施形態が実装されうるコンピュータシステム１６００を説明するブロック図である。コンピュータシステム１６００は、バス１６０２又は情報を通信するための他の通信メカニズムと、情報を処理するための、バス１６０２に結合されたハードウェアプロセッサ１６０４とを含む。ハードウェアプロセッサ１６０４は、例えば汎用プロセッサであってもよい。
【０１５８】
コンピュータシステム１６００はまた、情報及びプロセッサ１６０４により実行される命令を格納するための、バス１６０２に結合されたランダムアクセスメモリ（ＲＡＭ）又は他の動的記憶デバイスのようなメインメモリ１６０６を含む。メインメモリ１６０６はまた、プロセッサ１６０４により実行される命令の実行中の一時変数又は他の中間情報を格納するために用いられてもよい。このような命令は、プロセッサ１６０４にアクセス可能な持続性記憶媒体に格納された場合に、コンピュータシステム１６００を、命令で特定される動作を実行するようにカスタマイズされた専用機械にならしめる。
【０１５９】
コンピュータシステム１６００はさらに、静的情報及びプロセッサ１６０４のための命令を格納するための、バス１６０２に結合されたリードオンリメモリ（ＲＯＭ）１６０８又は他の静的記憶デバイスを含む。磁気ディスク又は光学ディスクのような、情報及び命令を格納するための記憶デバイス１６１０が提供され、バス１６０２に結合される。
【０１６０】
コンピュータシステム１６００は、バス１６０２を介して、コンピュータユーザに情報を表示するための陰極線管（ＣＲＴ）のようなディスプレイ１６１２に結合されてもよい。英数字キー及び他のキーを含む入力デバイス１６１４は、情報及びコマンド選択をプロセッサ１６０４に通信するためにバス１６０２に結合される。別のタイプのユーザ入力デバイスは、方向情報及びコマンド選択をプロセッサ１６０４に通信し、ディスプレイ１６１２上のカーソル移動を制御するためのマウス、トラックボール又はカーソル方向キーのようなカーソルコントロール１６１６である。この入力デバイスは典型的に、デバイスが平面における位置を特定することを可能にする２つの軸、すなわち第１軸（例えば、ｘ）及び第２軸（例えば、ｙ）における２の自由度を有する。
【０１６１】
コンピュータシステム１６００は、コンピュータシステムと組み合わせてコンピュータシステム１６００を専用機械にならしめるかそのようにプログラムするカスタマイズされたハードワイヤードロジック、１つ以上のＡＳＩＣ又はＦＰＧＡ、ファームウェア及び／又はプログラムロジックを用いて本明細書に記載された技術を実装してもよい。ある実施形態では、本明細書の技術は、プロセッサ１６０４がメインメモリ１６０６に含まれる１つ以上の命令の１つ以上のシーケンスを実行することに応じて、コンピュータシステム１６００によって実行される。このような命令は、記憶デバイス１６１０のような別の記憶媒体からメインメモリ１６０６に読み出されてもよい。メインメモリ１６０６に含まれる命令のシーケンスの実行は、本明細書に記載された処理ステップをプロセッサ１６０４に実行させる。代替の実施形態では、ソフトウェア命令の代わりに、又はこれと組み合わせてハードワイヤード回路が用いられてもよい。
【０１６２】
本明細書で用いられる「記憶媒体」という用語は、機械に特定の方式で動作を実行させるデータ及び／又は命令を格納する任意の一時的でない媒体を指す。このような記憶媒体は、不揮発性媒体及び／又は揮発性媒体を含んでもよい。不揮発性媒体は例えば、記憶デバイス１６１０のような光学ディスク又は磁気ディスクを含む。揮発性媒体は、メインメモリ１６０６のような動的メモリを含む。記憶デバイスの一般的形式は、例えば、フロッピー（登録商標）ディスク、フレキシブルディスク、ハードディスク、半導体ドライブ、磁気テープ、又は任意の他の磁気データ記憶媒体、ＣＤ−ＲＯＭ、任意の他の光学データ記憶媒体、穴のパターンを有する任意の物理媒体、ＲＡＭ、ＰＲＯＭ、ＥＰＲＯＭ、フラッシュＥＰＲＯＭ、ＮＶＲＡＭ、任意の他のメモリチップ又はカートリッジを含む。
【０１６３】
記憶媒体は、伝送媒体とは異なるが、伝送媒体と組み合わせて用いられてもよい。伝送媒体は、記憶媒体間の情報の転送に関与する。例えば、伝送媒体は、バス１６０２を備えるワイヤを含む、同軸ケーブル、銅線及び光ファイバを含む。伝送媒体はまた、電波及び赤外線のデータ通信の間に生成されるもののような、音波又は光波の形式をとりうる。
【０１６４】
媒体の様々な形式は、実行のためにプロセッサ１６０４へ１つ以上の命令の１つ以上のシーケンスを搬送するために関与されうる。例えば、命令は最初にリモートコンピュータの磁気ディスク又は半導体ドライブに搬送されてもよい。リモートコンピュータは、命令を自身の動的メモリにロードし、モデムを用いて電話線を通じて命令を送信する。コンピュータシステム１６００のローカルにあるモデムは電話線からデータを受信し、赤外線送信機を用いてデータを赤外線信号に変換する。赤外線検出器は、赤外線により搬送されたデータを受信し、適切な回路がデータをバス１６０２に配置しうる。バス１６０２はデータをメインメモリ１６０６に搬送し、プロセッサ１６０４はメインメモリ１６０６から命令を読み出して実行する。メインメモリ１６０６によって受信された命令は、場合によっては、プロセッサ１６０４による実行前又は実行後の何れかに記憶デバイス１６１０に格納されてもよい。
【０１６５】
コンピュータシステム１６００はまた、バス１６０２に結合された通信インタフェース１６１８を含む。通信インタフェース１６１８は、ローカルネットワーク１６２２に接続されているネットワークリンク１６２０に結合する双方向データ通信を提供する。例えば、通信インタフェース１６１８は、サービス総合デジタル網（ＩＤＳＮ）カード、ケーブルモデム、衛星モデム又は対応するタイプの電話線とのデータ通信接続を提供するためのモデムであってもよい。別の例として、通信インタフェース１６１８は、互換性を有するＬＡＮとのデータ通信接続を提供するためのローカルエリアネットワーク（ＬＡＮ）カードであってもよい。無線リンクも実装されてもよい。任意のこのような実装において、通信インタフェース１６１８は、様々なタイプの情報を表すデジタルデータストリームを搬送する電気信号、電磁気信号又は光信号を送受信する。
【０１６６】
ネットワーク線１６２０は典型的に、１つ以上のネットワークを通じて他のデータデバイスとのデータ通信を提供する。例えば、ネットワーク線１６２０は、ローカルネットワーク１６２２を通じて、インターネットサービスプロバイダ（ＩＳＰ）１６２６によって運営されるホストコンピュータ１６２４又はデータ機器との接続を提供しうる。次いで、ＩＳＰ１６２６は、現在では一般に「インターネット」１６２８と呼ばれる世界規模パケットデータ通信ネットワークを通じてデータ通信サービスを提供する。ローカルネットワーク１６２２及びインターネット１６２８はともに、デジタルデータストリームを搬送する電気信号、電磁気信号又は光信号を用いる。様々なネットワークを通じた信号及びネットワーク線１６２０上の、通信インタフェース１６１８を通じる信号は、コンピュータシステム１６００への又はコンピュータシステム１６００からのデジタルデータを搬送し、伝送媒体の例示の形式である。
【０１６７】
コンピュータシステム１６００は、ネットワーク（群）、ネットワーク線１６２０及び通信インタフェース１６１８を通じて、メッセージを送信し、プログラムコードを含むデータを受信できる。インターネットの例では、サーバ１６３０は、インターネット１６２８、ＩＳＰ１６２６、ローカルネットワーク１６２２及び通信インタフェース１６１８を通じてアプリケーションプログラムについての要求されたコードを送信してもよい。
【０１６８】
受信されたコードは、受信された際にプロセッサ１６０４によって実行されてもよいし、及び／又は後での実行のために記憶デバイス１６１０又は他の不揮発性記憶装置に格納されてもよい。
【０１６９】
一部の実施形態によれば、図１７〜図２４は上述の本発明の原理に従う電子デバイス１７００〜２４００の機能ブロック図を示す。デバイスの機能ブロック図は、本発明の原理を実行するために、ハードウェアによって実装されてもよいし、ソフトウェアによって実装されてもよいし、ハードウェアとソフトウェアとの組み合わせによって実装されてもよい。図１７〜図２４に記載されたブロック図は、上述の本発明の原理を実装するために組み合されてもよいし、サブブロックに分割されてもよいことが当業者によって理解される。従って、本明細書の記載は、本明細書に記載される機能ブロック図の任意の取りうる組合せ、分割又は更なる定義をサポートしうる。
【０１７０】
図１７に示されるように、電子デバイス１７００は、タスクの１つ以上の第１属性を明確に特定する入力をユーザから受信するように構成された入力受信部を含む。電子デバイス１７００はまた、入力受信部１７０２に結合された処理部１７０２を含む。一部の実施形態では、処理部１７０６は、タスク項目生成部１７０８と属性判定部１７１０とを含む。
【０１７１】
処理部１７０６は、当該入力に基づいて、（例えば、タスク項目生成部１７０８を用いて）当該タスクについてタスク項目を生成する動作と、当該入力とは別個のものであるコンテキストデータに基づいて、（例えば、属性判定部１７１０を用いて）当該タスクの１つ以上の第２属性を判定する動作と、当該１つ以上の第１属性と当該１つ以上の第２属性とを含む複数の属性を当該タスク項目に関連して格納させる動作とを実行するように構成される。
【０１７２】
図１８に示されるように、電子デバイス１８００は、ハンドヘルドデバイスでユーザから受信した入力に基づく入力データであって、タスクの１つ以上の第１属性を明確に特定する入力データを受信するように構成された入力データ受信部を含む。電子デバイス１８００はまた、当該入力データとは別個のものであるコンテキストデータであって、当該ハンドヘルドデバイスに格納されているデータに基づくコンテキストデータを受信するように構成されたコンテキストデータ受信部１８０３を含む。電子デバイス１８００はまた、入力データ受信部１８０２及びコンテキストデータ受信部１８０３に結合された処理部を含む。一部の実施形態では、処理部１８０６は、タスク項目生成部１８０８と属性判定部１８１０とを含む。
【０１７３】
処理部１８０６は、当該コンテキストデータに基づいて、（例えば、属性判定部１８１０を用いて）当該入力データに反映されていない当該タスクの１つ以上の第２属性を判定する動作と、（例えば、タスク項目生成部１８０８を用いて）当該１つ以上の第１属性と当該１つ以上の第２属性とに基づいてタスク項目を生成させる動作とを実行するように構成される。
【０１７４】
図１９に示されるように、電子デバイス１９００は、デバイスの１つ以上の特徴を判定するように構成されたデバイス特徴監視部１９０２を含む。電子デバイス１９００はまた、デバイス特徴監視部１９０２に結合された処理部１９０６を含む。一部の実施形態では、処理部１９０６は、トリガー部１９０８とタスク動作部１９１０とを含む。
【０１７５】
処理部１９０６は、（例えば、トリガー部１９０８を用いて、）当該デバイスの当該１つ以上の特徴の何れかが、複数のタスク項目のうちのあるタスク項目に関連した１つ以上のトリガー基準を満たすかを判定する動作であって、当該複数のタスク項目の各タスク項目は、動作に関連しているとともに、当該動作が実行される前に生じなければならない１つ以上のトリガー基準に関連している、動作と、当該デバイスの当該１つ以上の特徴が当該複数のタスク項目の特定のタスク項目の１つ以上のトリガー基準を満たすと判定したことに応じて、（例えば、タスク動作部１９１０を用いて）当該特定のタスク項目に関連した動作を実行する動作とを実行するように構成される。
【０１７６】
図２０に示されるように、電子デバイス２０００は、ハンドヘルドデバイスに対してリモートにおけるイベントが生じたことを示す第１データを分析するように構成されたデータ分析部２００２を含む。電子デバイス２００はまた、データ分析部２００２に結合された処理部２００６を含む。一部の実施形態では、処理部２００６は、トリガー部２００８とタスク動作部２０１０とを含む。
【０１７７】
処理部２００６は、当該第１データに基づいて、（例えば、トリガー部２００８を用いて）複数のタスク項目の特定のタスク項目に関連付した１つ以上の特定のトリガー基準が満たされるかを判定する動作であって、当該複数のタスク項目の各タスク項目は動作に関連しているとともに、当該動作がいつ実行されるかべきかを示す１つ以上のトリガー基準に関連している、動作と、当該第１データに基づいて、（例えば、トリガー部２００８を用いて）当該１つ以上の特定のトリガー基準が満たされると判定する動作と、当該１つ以上の特定のトリガー基準が満たされると判定したことに応じて、（例えば、タスク動作部２０１０を用いて）当該特定のタスク項目に関連した動作を当該ハンドヘルドデバイスにおいて実行させる動作とを実行するように構成される。
【０１７８】
図２１に示されるように、電子デバイス２１００は、第１タスク項目と第２タスク項目とを含む複数のタスク項目を格納する動作であって、当該複数のタスク項目の当該第１タスク項目は第１動作に関連しており、当該複数のタスク項目の当該第２タスク項目は当該第１動作とは異なるタイプの第２動作に関連している、動作を実行するように構成されたタスク項目格納部２１０２を含む。電子デバイス２１００はまた、タスク項目格納部２１０２に結合された処理部２１０６を含む。一部の実施形態では、処理部２１０６は、タスク動作部２１０８を含む。
【０１７９】
処理部２１０６は、当該複数のタスク項目をタスク項目格納部２１０１に格納させる動作と、当該複数のタスク項目を格納させた後に、（例えば、タスク動作部２１０８を用いて）当該第１タスク項目に関連した当該第１動作を実行させる動作と、（例えば、タスク動作部２１０８を用いて）当該第２タスク項目に関連した当該第２動作を実行させる動作とを実行するように構成される。
【０１８０】
図２２に示されるように、電子デバイス２２００は、複数のタスク項目を格納する動作であって、当該複数のタスク項目の各タスク項目は動作に関連している、動作を実行するように構成されたタスク項目格納部２２０２を含む。電子デバイス２２００はまた、タスク項目格納部２２０２に結合された処理部２２０６を含む。一部の実施形態では、処理部２２０６は、タスクマネージャ部２２０８を含む。
【０１８１】
処理部２２０６は、当該複数のタスク項目を当該タスク項目格納部に格納させる動作と、（例えば、タスクマネージャ部２２０８を用いて、）タスクマネージャによって、当該タスクマネージャとは別個のアプリケーションに、特定のタスク項目に関連した動作を実行させる動作とを実行するように構成される。
【０１８２】
図２３に示されるように、電子デバイス２３００は、複数のリストに編成されている複数のタスク項目を格納するように構成されたタスク項目格納部２３０２を含む。電子デバイス２３００はまた、新たなタスクに関する情報を示す入力を受信するように構成された入力受信部２３０３を含む。電子デバイス２３００はまた、タスク項目格納部２３０２及び入力受信部２３０３に結合された処理部２３０６を含む。一部の実施形態では、処理部２３０６は、タスク項目生成部２３０８とタスクリスト部２３１０とを含む。
【０１８３】
処理部２３０６は、当該入力を受信したことに応じて、（例えば、タスク項目生成部２３０８を用いて）当該新たなタスクについてタスク項目を生成する動作と、（例えば、タスクリスト部２３１０を用いて）当該複数のリストのどのリストに当該タスク項目を追加するかを判定する動作であって、当該入力は当該複数のリストのどのリストも特定しない、動作と、当該複数のリストの特定のリストに当該タスク項目を追加すると判定したことに応じて、（例えば、タスク項目格納部２３０２に）当該タスク項目を当該特定のリストに関連付けるデータを格納する動作とを実行するように構成される。
【０１８４】
図２４に示されるように、電子デバイス２４００は、複数のタスク項目を格納する動作であって、各タスク項目は複数のリストの少なくとも１つのリストに関連している、動作を実行するように構成されたタスク項目格納部２４０２を含む。電子デバイス２４００はまた、新たなタスクに関する情報を示す入力を受信するように構成された入力受信部２４０３を含む。電子デバイス２４００はまた、タスク項目格納部２４０２及び入力受信部２４０３に結合された処理部２４０６を含む。一部の実施形態では、処理部２４０６は、タスク項目生成部２４０８とタスクリスト部２４１０とを含む。
【０１８５】
処理部２４０６は、当該入力が受信された後に、（例えば、タスク項目生成部２４０８を用いて）当該情報に基づいて当該新たなタスクについてタスク項目を生成する動作と、（例えば、タスクリスト部２４１０を用いて）当該複数のリストの特定のリストに当該タスク項目を追加すると判定する動作であって、当該入力は当該特定のリストを特定しない、動作と、当該特定のリストに当該タスク項目を追加すると判定したことに応じて、（例えば、タスク項目格納部２４０２に）当該タスク項目を当該特定のリストに関連付けるデータを格納する動作とを実行するように構成される。
【０１８６】
上述の明細書において、実施毎に変わりうる多数の特定の詳細を参照しつつ本発明の実施形態が、記載されてきた。従って、明細書及び図面は限定的な意義ではなく例示的な意義とみなされるべきである。本発明の範囲の唯一の排他的な指標及び本願によって本発明の範囲として意図されるものは、本願から発行される特許請求の範囲の、後続する訂正を含むこのような特許請求の範囲が反抗される個別の形態における、文言及び均等の範囲である。
【図１】
0006773933.tif 000002
【図２】
0006773933.tif 000003
【図３】
0006773933.tif 000004
【図４】
0006773933.tif 000005
【図５Ａ】
0006773933.tif 000006
【図５Ｂ】
0006773933.tif 000007
【図６】
0006773933.tif 000008
【図７】
0006773933.tif 000009
【図８】
0006773933.tif 000010
【図９】
0006773933.tif 000011
【図１０Ａ】
0006773933.tif 000012
【図１０Ｂ】
0006773933.tif 000013
【図１１Ａ】
0006773933.tif 000014
【図１１Ｂ】
0006773933.tif 000015
【図１１Ｃ】
0006773933.tif 000016
【図１１Ｄ】
0006773933.tif 000017
【図１２】
0006773933.tif 000018
【図１３】
0006773933.tif 000019
【図１４】
0006773933.tif 000020
【図１５】
0006773933.tif 000021
【図１６】
0006773933.tif 000022
【図１７】
0006773933.tif 000023
【図１８】
0006773933.tif 000024
【図１９】
0006773933.tif 000025
【図２０】
0006773933.tif 000026
【図２１】
0006773933.tif 000027
【図２２】
0006773933.tif 000028
【図２３】
0006773933.tif 000029
【図２４】
0006773933.tif 000030