(57)【要約】  マルチターンキャンドダイアログを提供するためのシステム及びプロセスが提供される。例示的な方法は、電子デバイスにおいて、自然言語入力を受信することと、自然言語入力がマルチターンキャンドダイアログのダイアログ基準を満たすかどうかを判定することと、自然言語入力がマルチターンキャンドダイアログのダイアログ基準を満たすという判定に従って、自然言語入力に対応するマルチターンキャンドダイアログの自然言語出力を特定することと、自然言語出力を出力することと、自然言語入力がマルチターンキャンドダイアログのダイアログ基準を満たさないという判定に従って、自然言語入力に関連付けられたタスクを特定することと、自然言語入力に関連付けられたタスクを実行することと、を含む。【選択図】図８【特許請求の範囲】
【請求項１】
１つ以上のプロセッサを有する電子デバイスにおいて、
自然言語入力を受信することと、
前記自然言語入力がマルチターンキャンドダイアログのダイアログ基準を満たすかどうかを判定することと、
前記自然言語入力が前記マルチターンキャンドダイアログのダイアログ基準を満たすという判定に従って、
前記自然言語入力に対応する前記マルチターンキャンドダイアログの自然言語出力を特定することと、
前記自然言語出力を出力することと、
前記自然言語入力が前記マルチターンキャンドダイアログのダイアログ基準を満たさないという判定に従って、
前記自然言語入力に関連付けられたタスクを特定することと、
前記自然言語入力に関連付けられた前記タスクを実行することと、
を含む、方法。
【請求項２】
前記ダイアログ基準は、前記自然言語入力が前記マルチターンキャンドダイアログのパターンと一致するという要件を含む、請求項１に記載の方法。
【請求項３】
前記自然言語入力に対して、前記マルチターンキャンドダイアログに関連付けられた第１の顕著性スコアを判定することと、
前記自然言語入力に対して、ドメインに関連付けられた第２の顕著性スコアを判定することと、を更に含み、
前記ダイアログ基準は、前記第１の顕著性スコアが前記第２の顕著性スコアよりも高いという要件を含む、
請求項１に記載の方法。
【請求項４】
前記自然言語入力に対して、前記マルチターンキャンドダイアログに関連付けられた前記第１の顕著性スコアを判定することは、
前記自然言語入力が前記マルチターンキャンドダイアログのスパンと一致する程度を判定することを含む、
請求項３に記載の方法。
【請求項５】
前記自然言語入力がマルチターンキャンドダイアログのダイアログ基準を満たすかどうかを判定することは、
前記マルチターンキャンドダイアログがオーバーライドタグに関連付けられているかどうかを判定することと、
前記マルチターンキャンドダイアログがオーバーライドタグに関連付けられているという判定に従って、前記自然言語入力が前記マルチターンキャンドダイアログの前記ダイアログ基準を満たすと判定することと、
を含む、請求項３又は４に記載の方法。
【請求項６】
前記自然言語入力は第１の自然言語入力であり、
前記ダイアログ基準はダイアログ基準の第１のセットであり、
前記自然言語出力は第１の自然言語出力であり、前記方法は、
第２の自然言語入力を受信することと、
前記第２の自然言語入力がダイアログ基準の第２のセットを満たすかどうかを判定することと、
前記第２の自然言語入力が前記ダイアログ基準の第２のセットを満たすという判定に従って、
前記第２の自然言語入力に対応する前記マルチターンキャンドダイアログの第２の自然言語出力を特定することと、
前記第２の自然言語出力を出力することと、
前記第２の自然言語入力が前記ダイアログ基準の第２のセットを満たさないという判定に従って、
前記第２の自然言語入力に関連付けられたタスクを特定することと、
前記第２の自然言語入力に関連付けられた前記タスクを実行することと、
を更に含む、請求項１から５のいずれか一項に記載の方法。
【請求項７】
前記第２の自然言語入力が前記ダイアログ基準の第２のセットを満たさないという判定に従って、前記マルチターンキャンドダイアログの状態を記憶することを更に含む、請求項６に記載の方法。
【請求項８】
第３の自然言語入力を受信することと、
前記第３の自然言語入力が前記マルチターンキャンドダイアログの前記状態に対応するかどうかを判定することと、
前記第３の自然言語入力が前記マルチターンキャンドダイアログの前記状態に対応するという判定に従って、前記第２の自然言語出力を出力することと、
を更に含む、請求項７に記載の方法。
【請求項９】
前記第３の自然言語入力が前記マルチターンキャンドダイアログの前記状態に対応するかどうかを判定することは、前記第３の自然言語入力が前記ダイアログ基準の第２のセットを満たすかどうかを判定することを含む、請求項８に記載の方法。
【請求項１０】
前記自然言語入力に関連付けられたタスクを特定することは、前記自然言語入力に関連付けられた意図に基づいて前記タスクを特定することを含む、請求項１から９のいずれか一項に記載の方法。
【請求項１１】
前記自然言語入力に関連付けられた前記タスクを実行することは、前記意図に関連付けられたタスクを実行することを含む、請求項１０に記載の方法。
【請求項１２】
１つ以上のプロセッサと、
メモリと、
１つ以上のプログラムと、を備える、電子デバイスであって、前記１つ以上のプログラムは、前記メモリに記憶され、前記１つ以上のプロセッサによって実行されるように構成されており、前記１つ以上のプログラムは、
自然言語入力を受信し、
前記自然言語入力がマルチターンキャンドダイアログのダイアログ基準を満たすかどうかを判定し、
前記自然言語入力が前記マルチターンキャンドダイアログのダイアログ基準を満たすという判定に従って、
前記自然言語入力に対応する前記マルチターンキャンドダイアログの自然言語出力を特定し、
前記自然言語出力を出力し、
前記自然言語入力が前記マルチターンキャンドダイアログのダイアログ基準を満たさないという判定に従って、
前記自然言語入力に関連付けられたタスクを特定し、
前記タスクを実行する、
命令を含む、電子デバイス。
【請求項１３】
１つ以上のプログラムを記憶している非一時的コンピュータ可読記憶媒体であって、前記１つ以上のプログラムは、命令を含み、前記命令は、第１の電子デバイスの１つ以上のプロセッサによって実行されると、前記第１の電子デバイスに、
自然言語入力を受信させ、
前記自然言語入力がマルチターンキャンドダイアログのダイアログ基準を満たすかどうかを判定させ、
前記自然言語入力が前記マルチターンキャンドダイアログのダイアログ基準を満たすという判定に従って、
前記自然言語入力に対応する前記マルチターンキャンドダイアログの自然言語出力を特定させ、
前記自然言語出力を出力させ、
前記自然言語入力が前記マルチターンキャンドダイアログのダイアログ基準を満たさないという判定に従って、
前記自然言語入力に関連付けられたタスクを特定させ、
前記タスクを実行させる、
非一時的コンピュータ可読記憶媒体。
【請求項１４】
自然言語入力を受信する手段と、
前記自然言語入力がマルチターンキャンドダイアログのダイアログ基準を満たすかどうかを判定する手段と、
前記自然言語入力が前記マルチターンキャンドダイアログのダイアログ基準を満たすという判定に従って、
前記自然言語入力に対応する前記マルチターンキャンドダイアログの自然言語出力を特定し、
前記自然言語出力を出力する、
手段と、
前記自然言語入力が前記マルチターンキャンドダイアログのダイアログ基準を満たさないという判定に従って、
前記自然言語入力に関連付けられたタスクを特定し、
前記タスクを実行する、
手段と、を備える、電子デバイス。
【請求項１５】
１つ以上のプロセッサと、
メモリと、
１つ以上のプログラムと、を備える電子デバイスであって、前記１つ以上のプログラムは前記メモリに記憶され、前記１つ以上のプロセッサによって実行されるように構成されており、前記１つ以上のプログラムが、請求項１から１１のいずれか一項に記載の方法を実行する命令を含む、電子デバイス。
【請求項１６】
１つ以上のプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、前記１つ以上のプログラムは、命令を含み、前記命令は、電子デバイスの１つ以上のプロセッサによって実行されると、前記電子デバイスに、請求項１から１１のいずれか一項に記載の方法を実行させる、非一時的コンピュータ可読記憶媒体。
【請求項１７】
請求項１から１１のいずれか一項に記載の方法を実行する手段
を備える、電子デバイス。
【発明の詳細な説明】
【関連出願の相互参照】
【０００１】
この出願は、２０１７年１１月３０日に出願された、「ＭＵＬＴＩ−ＴＵＲＮ  ＣＡＮＮＥＤ  ＤＩＡＬＯＧ」と題する米国特許仮出願第６２／５９３，１３６号、及び２０１８年３月１日に出願された、「ＭＵＬＴＩ−ＴＵＲＮ  ＣＡＮＮＥＤ  ＤＩＡＬＯＧ」と題する米国特許出願第１５／９０９，８６７号に対する優先権を主張するものであり、それらの開示全体があらゆる目的で参照により本明細書に組み込まれる。
【技術分野】
【０００２】
この出願は、概して、インテリジェント自動アシスタントに関し、より具体的には、マルチターンキャンドダイアログを提供することに関する。
【背景技術】
【０００３】
インテリジェント自動アシスタント（又は、デジタルアシスタント）は、人間のユーザと電子デバイスとの間の有益なインタフェースを提供することができる。そのようなアシスタントにより、ユーザは、発話形式及び／又はテキスト形式の自然言語を使用して、デバイス又はシステムと対話することが可能となり得る。例えば、ユーザは、電子デバイス上で動作しているデジタルアシスタントに、ユーザ要求を含む発話入力を提供することができる。デジタルアシスタントは、発話入力からユーザの意図を解釈し、ユーザの意図をタスクに動作可能にすることができる。次いで、タスクは、電子デバイスの１つ以上のサービスを実行することによって実行され、ユーザ要求への関連出力応答をユーザに戻すことができる。一部の実施例では、このように意図を解釈することは、発話入力のドメインを特定することを必要とする。しかしながら、このようにドメインを活用することは、多くの場合、相対的に作業集約的な実装のための努力、かつ、動作の際の計算的な多くを要求するものである。
【発明の概要】
【０００４】
方法の例を本明細書に開示する。例示的な方法は、１つ以上のプロセッサを有する電子デバイスにおいて、自然言語入力を受信することと、自然言語入力がマルチターンキャンドダイアログのダイアログ基準を満たすかどうかを判定することと、自然言語入力がマルチターンキャンドダイアログのダイアログ基準を満たすという判定に従って、自然言語入力に対応するマルチターンキャンドダイアログの自然言語出力を特定し、自然言語出力を出力することと、自然言語入力がマルチターンキャンドダイアログのダイアログ基準を満たさないという判定に従って、自然言語入力に関連付けられたタスクを特定し、自然言語入力に関連付けられたタスクを実行することと、を含む。
【０００５】
例示的な非一時的コンピュータ可読媒体が、本明細書で開示される。例示的な非一時的コンピュータ可読記憶媒体は、１つ以上のプログラムを記憶している。１つ以上のプログラムは、命令を含み、命令は、電子デバイスの１つ以上のプロセッサによって実行されると、電子デバイスに、自然言語入力を受信させ、自然言語入力がマルチターンキャンドダイアログのダイアログ基準を満たすかどうかを判定させ、自然言語入力がマルチターンキャンドダイアログのダイアログ基準を満たすという判定に従って、自然言語入力に対応するマルチターンキャンドダイアログの自然言語出力を特定させ、自然言語出力を出力させ、自然言語入力がマルチターンキャンドダイアログのダイアログ基準を満たさないという判定に従って、自然言語入力に関連付けられたタスクを特定させ、自然言語入力に関連付けられたタスクを実行させる。
【０００６】
例示的な電子デバイスが本明細書に開示されている。例示的な電子デバイスは、１つ以上のプロセッサと、メモリと、１つ以上のプログラムと、を備え、１つ以上のプログラムは、メモリに記憶され、１つ以上のプロセッサによって実行されるように構成されており、１つ以上のプログラムは、自然言語入力を受信し、自然言語入力がマルチターンキャンドダイアログのダイアログ基準を満たすかどうかを判定し、自然言語入力がマルチターンキャンドダイアログのダイアログ基準を満たすという判定に従って、自然言語入力に対応するマルチターンキャンドダイアログの自然言語出力を特定し、自然言語出力を出力し、自然言語入力がマルチターンキャンドダイアログのダイアログ基準を満たさないという判定に従って、自然言語入力に関連付けられたタスクを特定し、自然言語入力に関連付けられたタスクを実行する、命令を含む。
【０００７】
例示的な電子デバイスは、自然言語入力を受信する手段と、自然言語入力がマルチターンキャンドダイアログのダイアログ基準を満たすかどうかを判定する手段と、自然言語入力がマルチターンキャンドダイアログのダイアログ基準を満たすという判定に従って、自然言語入力に対応するマルチターンキャンドダイアログの自然言語出力を特定し、自然言語出力を出力する手段と、自然言語入力がマルチターンキャンドダイアログのダイアログ基準を満たさないという判定に従って、自然言語入力に関連付けられたタスクを特定し、自然言語入力に関連付けられたタスクを実行する手段と、を備える。
【０００８】
本明細書に記載されるように、マルチターンキャンドダイアログを提供することにより、計算的に軽量な、既定のダイアログスキームを、より強力かつ高度な自然言語処理システムと組み合わせて使用して、ユーザ入力を処理することを可能にする。このようにしてユーザ入力を処理することにより、堅牢で基礎的な自然言語処理アーキテクチャを維持しながら、ダイアログスキームの迅速な展開を可能にする。
【図面の簡単な説明】
【０００９】
【図１】様々な実施例による、デジタルアシスタントを実装するためのシステム及び環境を示すブロック図である。
【００１０】
【図２Ａ】様々な実施例による、デジタルアシスタントのクライアント側部分を実装するポータブル多機能デバイスを示すブロック図である。
【００１１】
【図２Ｂ】様々な実施例による、イベント処理のための例示的な構成要素を示すブロック図である。
【００１２】
【図３】様々な実施例による、デジタルアシスタントのクライアント側部分を実装するポータブル多機能デバイスを示す図である。
【００１３】
【図４】様々な実施例による、ディスプレイ及びタッチ感知面を有する例示的な多機能デバイスのブロック図である。
【００１４】
【図５Ａ】様々な実施例による、ポータブル多機能デバイス上のアプリケーションのメニューに関する、例示的なユーザインタフェースを示す図である。
【００１５】
【図５Ｂ】様々な実施例による、ディスプレイとは別個のタッチ感知面を有する多機能デバイスに関する、例示的なユーザインタフェースを示す図である。
【００１６】
【図６Ａ】様々な実施例による、パーソナル電子デバイスを示す図である。
【００１７】
【図６Ｂ】様々な実施例による、パーソナル電子デバイスを示すブロック図である。
【００１８】
【図７Ａ】様々な実施例による、デジタルアシスタントシステム又はそのサーバ部分を示すブロック図である。
【００１９】
【図７Ｂ】様々な実施例による、図７Ａに示されるデジタルアシスタントの機能を示す図である。
【００２０】
【図７Ｃ】様々な実施例による、オントロジの一部分を示す図である。
【００２１】
【図８】様々な実施例による、マルチターンキャンドダイアログを提供するためのプロセスを示す。
【発明を実施するための形態】
【００２２】
以下の実施例の説明では、実践することが可能な特定の実施例が例として示される、添付図面を参照する。それら様々な実施例の範囲から逸脱することなく、他の実施例を使用することができ、構造上の変更を実施することができる点を理解されたい。
【００２３】
以下の説明では、様々な要素について説明するために、「第１の」、「第２の」などの用語を使用するが、これらの要素は、それらの用語によって限定されるべきではない。これらの用語は、ある要素を別の要素と区別するためにのみ使用される。例えば、説明される様々な実施例の範囲から逸脱することなく、第１の入力を第２の入力と呼ぶことが可能であり、同様に、第２の入力を第１の入力と呼ぶことも可能である。第１の入力及び第２の入力は、双方とも入力であり、一部の場合には、別個の異なる入力である。
【００２４】
本明細書で説明される様々な実施例の説明で使用される用語法は、特定の実施例を説明することのみを目的とするものであって、限定することを意図するものではない。説明される様々な実施例の説明、及び添付の特許請求の範囲で使用するとき、単数形「ａ」、「ａｎ」、及び「ｔｈｅ」は、文脈がそうではないことを明確に示さない限り、複数形もまた含むことが意図される。また、本明細書で使用されるとき、用語「及び／又は」は、関連する列挙された項目のうちの１つ以上のいずれか及び全ての考えられる組み合わせを指し、かつこれを含むことを理解されたい。用語「ｉｎｃｌｕｄｅｓ（含む）」、「ｉｎｃｌｕｄｉｎｇ（含む）」、「ｃｏｍｐｒｉｓｅｓ（含む、備える）」、及び／又は「ｃｏｍｐｒｉｓｉｎｇ（含む、備える）」は、本明細書で使用する場合、述べられた特徴、整数、ステップ、動作、要素、及び／又は構成要素の存在を指定するが、１つ以上の他の特徴、整数、ステップ、動作、要素、構成要素、及び／又はそれらのグループの存在又は追加を除外しないことが更に理解されるであろう。
【００２５】
用語「ｉｆ（〜の場合には）」は、文脈に応じて、「ｗｈｅｎ（〜のとき）」若しくは「ｕｐｏｎ（〜すると）」、又は「ｉｎ  ｒｅｓｐｏｎｓｅ  ｔｏ  ｄｅｔｅｒｍｉｎｉｎｇ（〜という判定に応じて）」、若しくは「ｉｎ  ｒｅｓｐｏｎｓｅ  ｔｏ  ｄｅｔｅｃｔｉｎｇ（〜の検出に応じて）」を意味するものと解釈することができる。同様に、句「ｉｆ  ｉｔ  ｉｓ  ｄｅｔｅｒｍｉｎｅｄ（〜と判定される場合には）」又は「ｉｆ  ［ａ  ｓｔａｔｅｄ  ｃｏｎｄｉｔｉｏｎ  ｏｒ  ｅｖｅｎｔ］  ｉｓ  ｄｅｔｅｃｔｅｄ（［記述される条件又はイベント］が検出される場合には）」は、文脈に応じて、「ｕｐｏｎ  ｄｅｔｅｒｍｉｎｉｎｇ（〜と判定すると）」、若しくは「ｉｎ  ｒｅｓｐｏｎｓｅ  ｔｏ  ｄｅｔｅｒｍｉｎｉｎｇ（〜という判定に応じて）」、又は「ｕｐｏｎ  ｄｅｔｅｃｔｉｎｇ  ［ｔｈｅ  ｓｔａｔｅｄ  ｃｏｎｄｉｔｉｏｎ  ｏｒ  ｅｖｅｎｔ］（［記述される条件又はイベント］を検出すると）」、若しくは「ｉｎ  ｒｅｓｐｏｎｓｅ  ｔｏ  ｄｅｔｅｃｔｉｎｇ  ［ｔｈｅ  ｓｔａｔｅｄ  ｃｏｎｄｉｔｉｏｎ  ｏｒ  ｅｖｅｎｔ］（［記述される条件又はイベント］の検出に応じて）」を意味するものと解釈することができる。
１．システム及び環境
【００２６】
図１は、様々な実施例による、システム１００のブロック図を示す。一部の実施例では、システム１００は、デジタルアシスタントを実装する。用語「デジタルアシスタント」、「仮想アシスタント」、「インテリジェント自動アシスタント」、又は「自動デジタルアシスタント」は、発話形式及び／又はテキスト形式の自然言語入力を解釈することによりユーザ意図を推測して、その推測されたユーザ意図に基づいてアクションを実行する、任意の情報処理システムを指す。例えば、推測されたユーザ意図を遂行するために、このシステムは、推測されたユーザ意図を実現するべく設計されたステップ及びパラメータを有する、タスクフローを特定することと、推測されたユーザ意図からの具体的な要件を、そのタスクフローに入力することと、プログラム、方法、サービス、又はＡＰＩなどを呼び出すことによって、そのタスクフローを実行することと、可聴（例えば、発話）形式及び／又は視覚形式で、ユーザに対する出力応答を生成することとのうちの、１つ以上を実行する。
【００２７】
具体的には、デジタルアシスタントは、自然言語コマンド、要求、陳述、叙述、及び／又は照会の形式で、少なくとも部分的にユーザ要求を受け入れることが可能である。典型的には、ユーザ要求は、デジタルアシスタントによる情報回答又はタスクの実行のいずれかを求めるものである。このユーザ要求に対する満足な応答は、要求された情報回答の提供、要求されたタスクの実行、又は、それら２つの組み合わせを含む。例えば、ユーザは、デジタルアシスタントに、「私は今どこにいますか？（Where am I right now?）」などの質問をする。ユーザの現在位置に基づいて、デジタルアシスタントは、「あなたは西ゲート付近の中央公園にいます」と応答する。ユーザはまた、例えば、「私の友人を、来週の私のガールフレンドの誕生日パーティーに招待してください。（Please invite my friends to my girlfriend’s birthday party next week.）」のように、タスクの実行も要求する。それに応じて、デジタルアシスタントは、「はい、ただ今（Yes,right away）」と述べることによって、その要求に肯定応答することができ、次いで、そのユーザの電子アドレス帳にリスト化されているユーザの友人のそれぞれに、ユーザに代わって、好適なカレンダー招待状を送信することができる。要求されたタスクの実行中に、デジタルアシスタントは、長期間にわたる複数の情報交換を伴う連続的なダイアログ内で、ユーザと対話する場合がある。情報又は様々なタスクの実行を要求するためにデジタルアシスタントと対話する、数多くの他の方法が存在する。言葉による応答を提供し、プログラムされたアクションを取ることに加えて、デジタルアシスタントはまた、他の視覚形式又はオーディオ形式で、例えば、テキスト、警報、音楽、ビデオ、アニメーションなどとして、応答を提供する。
【００２８】
図１に示されるように、一部の実施例では、デジタルアシスタントは、クライアント−サーバモデルに従って実装される。デジタルアシスタントは、ユーザデバイス１０４上で実行されるクライアント側部分１０２（以後、「ＤＡクライアント１０２」）、及びサーバシステム１０８上で実行されるサーバ側部分１０６（以後、「ＤＡサーバ１０６」）を含む。ＤＡクライアント１０２は、１つ以上のネットワーク１１０を通じてＤＡサーバ１０６と通信する。ＤＡクライアント１０２は、ユーザ対応入力及び出力処理、並びにＤＡサーバ１０６との通信などの、クライアント側機能を提供する。ＤＡサーバ１０６は、対応のユーザデバイス１０４上にそれぞれが常駐する、任意の数のＤＡクライアント１０２に、サーバ側機能を提供する。
【００２９】
一部の実施例では、ＤＡサーバ１０６は、クライアント対応Ｉ／Ｏインタフェース１１２、１つ以上の処理モジュール１１４、データ及びモデル１１６、並びに、外部サービスへのＩ／Ｏインタフェース１１８を含む。クライアント対応Ｉ／Ｏインタフェース１１２は、ＤＡサーバ１０６に関するクライアント対応入力及び出力処理を容易にする。１つ以上の処理モジュール１１４は、データ及びモデル１１６を利用して、発話入力を処理し、自然言語入力に基づいてユーザの意図を判定する。更には、１つ以上の処理モジュール１１４は、タスク実行を、推測されたユーザ意図に基づいて実行する。一部の実施例では、ＤＡサーバ１０６は、タスクの完了又は情報の取得のために、ネットワーク（単数又は複数）１１０を通じて外部サービス１２０と通信する。外部サービスへのＩ／Ｏインタフェース１１８は、そのような通信を容易にする。
【００３０】
ユーザデバイス１０４は、任意の好適な電子デバイスとすることができる。一部の実施例では、ユーザデバイスは、ポータブル多機能デバイス（例えば、図２Ａに関連して以下に記載されるデバイス２００）、多機能デバイス（例えば、図４に関連して以下に記載されるデバイス４００）、又はパーソナル電子デバイス（例えば、図６Ａ〜図６Ｂに関連して以下に記載されるデバイス６００）である。ポータブル多機能デバイスは、例えば、ＰＤＡ及び／又は音楽プレーヤ機能などの他の機能も含む携帯電話機である。ポータブル多機能デバイスの具体例としては、Ａｐｐｌｅ  Ｉｎｃ．（Ｃｕｐｅｒｔｉｎｏ，Ｃａｌｉｆｏｒｎｉａ）による、Ａｐｐｌｅ  Ｗａｔｃｈ（登録商標）、ｉＰｈｏｎｅ（登録商標）、ｉＰｏｄ  Ｔｏｕｃｈ（登録商標）、及びｉＰａｄ（登録商標）デバイスが挙げられる。ポータブル多機能デバイスの他の例としては、限定するものではないが、イヤホン／ヘッドホン、スピーカ、及び、ラップトップコンピュータ若しくはタブレットコンピュータが挙げられる。更には、一部の実施例では、ユーザデバイス１０４は、非ポータブルの多機能デバイスである。具体的には、ユーザデバイス１０４は、デスクトップコンピュータ、ゲームコンソール、スピーカ、テレビ、又はテレビセットトップボックスである。一部の実施例では、ユーザデバイス１０４は、タッチ感知面（例えば、タッチスクリーンディスプレイ及び／又はタッチパッド）を含む。更には、ユーザデバイス１０４は、任意選択的に、物理キーボード、マウス、及び／又はジョイスティックなどの、１つ以上の他の物理ユーザインタフェースデバイスを含む。多機能デバイスなどの電子デバイスの様々な実施例が、以下で更に詳細に説明される。
【００３１】
通信ネットワーク（単数又は複数）１１０の例としては、ローカルエリアネットワーク（local area network；ＬＡＮ）、及びワイドエリアネットワーク（wide area network；ＷＡＮ）、例えば、インターネットが挙げられる。通信ネットワーク（単数又は複数）１１０は、例えば、イーサネット、ユニバーサルシリアルバス（Universal Serial Bus；ＵＳＢ）、ＦＩＲＥＷＩＲＥ、移動通信用のグローバルシステム（Global System for Mobile Communications；ＧＳＭ）、拡張データＧＳＭ環境（Enhanced Data GSM Environment；ＥＤＧＥ）、符号分割多元接続（code division multiple access；ＣＤＭＡ）、時分割多元接続（time division multiple access；ＴＤＭＡ）、Ｂｌｕｅｔｏｏｔｈ、Ｗｉ−Ｆｉ、ボイスオーバーインターネットプロトコル（voice over Internet Protocol；ＶｏＩＰ）、Ｗｉ−ＭＡＸ、又は任意の他の好適な通信プロトコルなどの、様々な有線若しくは無線プロトコルを含めた、任意の既知のネットワークプロトコルを使用して実装される。
【００３２】
サーバシステム１０８は、１つ以上のスタンドアロン型データ処理装置、又は分散型のコンピュータネットワーク上に実装される。一部の実施例では、サーバシステム１０８はまた、サーバシステム１０８の基本的なコンピューティングリソース及び／又はインフラストラクチャリソースを提供するために、様々な仮想デバイス及び／又は第三者サービスプロバイダ（例えば、第三者クラウドサービスプロバイダ）のサービスも採用する。
【００３３】
一部の実施例では、ユーザデバイス１０４は、第２のユーザデバイス１２２を介してＤＡサーバ１０６と通信する。第２のユーザデバイス１２２は、ユーザデバイス１０４と同様又は同一である。例えば、第２のユーザデバイス１２２は、図２Ａ、図４、及び図６Ａ〜図６Ｂに関連して以下で説明されるデバイス２００、４００、又は６００と類似する。ユーザデバイス１０４は、Ｂｌｕｅｔｏｏｔｈ、ＮＦＣ、ＢＴＬＥなどの直接通信接続を介して、又はローカルＷｉ−Ｆｉネットワークなどの有線又は無線ネットワークを介して第２のユーザデバイス１２２に通信可能に結合されるように構成される。一部の実施例では、第２のユーザデバイス１２２は、ユーザデバイス１０４とＤＡサーバ１０６との間のプロキシとしての役割を果たすように構成されている。例えば、ユーザデバイス１０４のＤＡクライアント１０２は、第２のユーザデバイス１２２を介して、情報（例えば、ユーザデバイス１０４で受信されたユーザ要求）をＤＡサーバ１０６に送信するように構成されている。ＤＡサーバ１０６は、情報を処理して、第２のユーザデバイス１２２を介して関連データ（例えば、ユーザ要求に応答するデータコンテンツ）をユーザデバイス１０４に戻す。
【００３４】
一部の実施例では、ユーザデバイス１０４は、データに関する短縮化された要求を第２のユーザデバイス１２２に通信することにより、ユーザデバイス１０４から送信される情報の量を低減するように構成されている。第２のユーザデバイス１２２は、その短縮化された要求に追加するべき補足情報を判定して、ＤＡサーバ１０６に送信するための完全な要求を生成するように構成されている。このシステムアーキテクチャは、制限された通信能力及び／又は制限されたバッテリ電力を有するユーザデバイス１０４（例えば、腕時計又は類似の小型電子デバイス）が、ＤＡサーバ１０６へのプロキシとしてより高い通信能力及び／又はバッテリ電力を有する第２のユーザデバイス１２２（例えば、携帯電話、ラップトップコンピュータ、タブレットコンピュータなど）を使用することによってＤＡサーバ１０６によって提供されるサービスにアクセスすることを有利に許容することができる。図１では、２つのユーザデバイス１０４及びユーザデバイス１２２のみが示されているが、システム１００は、一部の実施例では、このプロキシ構成でＤＡサーバシステム１０６と通信するように構成された、任意の数及びタイプのユーザデバイスを含むことを理解されたい。
【００３５】
図１に示すデジタルアシスタントは、クライアント側部分（例えば、ＤＡクライアント１０２）とサーバ側部分（例えばＤＡサーバ１０６）の両方を含むが、いくつかの例では、デジタルアシスタントの機能は、ユーザデバイスにインストールされた独立したアプリケーションとして実装される。更には、デジタルアシスタントのクライアント部分とサーバ部分との間での機能の割り振りは、実装形態によって異なり得る。例えば、一部の実施例では、ＤＡクライアントは、ユーザ対応入力及び出力処理機能のみを提供し、デジタルアシスタントの他の全ての機能をバックエンドサーバに委ねる、シンクライアントである。
２．電子デバイス
【００３６】
ここで、デジタルアシスタントのクライアント側部分を実装するための、電子デバイスの実施形態に注意を向ける。図２Ａは、一部の実施形態による、タッチ感知ディスプレイシステム２１２を備えるポータブル多機能デバイス２００を示すブロック図である。タッチ感知ディスプレイ２１２は、便宜上「タッチスクリーン」と呼ばれることがあり、「タッチ感知ディスプレイシステム」として知られている又は呼ばれることがある。デバイス２００は、メモリ２０２（任意選択的に、１つ以上のコンピュータ可読記憶媒体を含む）、メモリコントローラ２２２、１つ以上の処理ユニット（ＣＰＵ）２２０、周辺機器インタフェース２１８、ＲＦ回路２０８、オーディオ回路２１０、スピーカ２１１、マイクロフォン２１３、入出力（Ｉ／Ｏ）サブシステム２０６、他の入力コントロールデバイス２１６、及び外部ポート２２４を含む。デバイス２００は、任意選択的に、１つ以上の光センサ２６４を含む。デバイス２００は、任意選択的に、デバイス２００上の接触の強度を検出する１つ以上の接触強度センサ２６５（例えば、デバイス２００のタッチ感知ディスプレイシステム２１２などのタッチ感知面）を含む。デバイス２００は、任意選択的に、デバイス２００上で触知出力を生成する（例えばデバイス２００のタッチ感知ディスプレイシステム２１２又はデバイス４００のタッチパッド４５５などのタッチ感知面上で触知出力を生成する）１つ以上の触知出力生成器２６７を含む。これらの構成要素は、任意選択的に、１つ以上の通信バス又は信号ライン２０３を介して通信する。
【００３７】
本明細書及び特許請求の範囲では、タッチ感知面上の接触の「強度」という用語は、タッチ感知面上の接触（例えば、指の接触）の力若しくは圧力（単位面積当たりの力）、又はタッチ感知面上の接触の力若しくは圧力に対する代理（プロキシ）を指す。接触の強度は、少なくとも４つの別個の値を含み、より典型的には、数百の（例えば、少なくとも２５６の）別個の値を含む、値の範囲を有する。接触の強度は、任意選択的に、様々な手法、及び様々なセンサ又はセンサの組み合わせを使用して、判定（又は測定）される。例えば、タッチ感知面の下又はそれに隣接する１つ以上の力センサは、任意選択的に、タッチ感知面上の様々なポイントにおける力を測定するために使用される。一部の実装形態では、複数の力センサからの力測定値は、接触の推定される力を判定するために組み合わされる（例えば、加重平均）。同様に、スタイラスの感圧性先端部は、任意選択的に、タッチ感知面上のスタイラスの圧力を判定するために使用される。あるいは、タッチ感知面上で検出される接触エリアのサイズ及び／若しくはその変化、接触に近接するタッチ感知面の電気容量及び／若しくはその変化、並びに／又は、接触に近接するタッチ感知面の抵抗及び／若しくはその変化は、任意選択的に、タッチ感知面上の接触の力又は圧力の代替物として使用される。一部の実装形態では、接触の力又は圧力のための代替測定値は、強度閾値を超えているかどうかを判定するために直接使用される（例えば、強度閾値は、代替測定値に対応する単位で記述される）。一部の実装形態では、接触力又は圧力に対する代理測定は、推定される力又は圧力に変換され、推定される力又は圧力は、強度閾値を超過したかどうかを判定するために使用される（例えば、強度閾値は、圧力の単位で測定される圧力閾値である）。接触の強度をユーザ入力の属性として使用することにより、アフォーダンスを（例えば、タッチ感知ディスプレイ上に）表示するための、及び／又は、ユーザ入力を（例えば、タッチ感知ディスプレイ、タッチ感知面、又は、ノブ若しくはボタンなどの物理的／機械的制御部を介して）受信するための面積が制限されている、低減されたサイズのデバイス上で、通常であればユーザによってアクセスすることが不可能であり得る追加のデバイス機能への、ユーザのアクセスが可能となる。
【００３８】
本明細書及び特許請求の範囲で使用されるように、用語「触知出力」は、ユーザの触覚でユーザによって検出されることになる、デバイスの従前の位置に対するそのデバイスの物理的変位、デバイスの構成要素（例えば、タッチ感知面）の、そのデバイスの別の構成要素（例えば、筐体）に対する物理的変位、又は、デバイスの質量中心に対する構成要素の変位を指す。例えば、デバイス又はデバイスの構成要素が、タッチに敏感なユーザの表面（例えば、ユーザの手の指、手のひら、又は他の部分）に接触している状況では、物理的変位によって生成された触知出力は、そのデバイス又はデバイスの構成要素の物理的特性の認識される変化に相当する触感として、ユーザによって解釈されることになる。例えば、タッチ感知面（例えば、タッチ感知ディスプレイ又はトラックパッド）の移動は、ユーザによって、物理アクチュエータボタンの「ダウンクリック」又は「アップクリック」として、任意選択的に解釈される。いくつかの場合、ユーザの動作により物理的に押された（例えば、変位された）タッチ感知面に関連付けられた物理アクチュエータボタンの移動がないときでさえ、ユーザは「ダウンクリック」又は「アップクリック」などの触感を感じる。別の例として、タッチ感知面の移動は、タッチ感知面の平滑度に変化がない場合であっても、ユーザによって、そのタッチ感知面の「粗さ」として、任意選択的に解釈又は感知される。そのようなユーザによるタッチの解釈は、ユーザの個人的な感覚認知に左右されるが、大多数のユーザに共通する、多くのタッチの感覚認知が存在する。したがって、触知出力が、ユーザの特定の感覚認知（例えば、「アップクリック」「ダウンクリック」、「粗さ」）に対応するものと記述される場合、別途記載のない限り、生成された触知出力は、典型的な（又は、平均的な）ユーザの記述された感覚認知を生成するデバイス、又はデバイスの構成要素の物理的変位に対応する。
【００３９】
デバイス２００は、ポータブル多機能デバイスの一例に過ぎず、デバイス２００は、任意選択的に、示されているものよりも多くの構成要素又は少ない構成要素を有するものであり、任意選択的に、２つ以上の構成要素を組み合わせるものであり、又は、任意選択的に、それらの構成要素の異なる構成若しくは配置を有するものであることを理解されたい。図２Ａに示される様々な構成要素は、１つ以上の信号処理回路及び／又は特定用途向け集積回路を含めた、ハードウェア、ソフトウェア、あるいはハードウェア及びソフトウェアの双方の組み合わせとして実装される。
【００４０】
メモリ２０２は、１つ以上のコンピュータ可読記憶媒体を含む。このコンピュータ可読記憶媒体は、例えば、有形かつ非一時的なものである。メモリ２０２は、高速ランダムアクセスメモリを含み、また、１つ以上の磁気ディスク記憶デバイス、フラッシュメモリデバイス、又は他の不揮発性ソリッドステートメモリデバイスなどの、不揮発性メモリも含む。メモリコントローラ２２２は、デバイス２００の他の構成要素による、メモリ２０２へのアクセスを制御する。
【００４１】
一部の実施例では、メモリ２０２の非一時的コンピュータ可読記憶媒体は、コンピュータベースのシステム、プロセッサを含むシステムなどの、命令実行システム、装置、若しくはデバイス、又は、その命令実行システム、装置、若しくはデバイスから命令をフェッチして、その命令を実行することが可能な他のシステムによって、あるいはそれらのシステムと関連して使用するための（例えば、以下で説明されるプロセスの諸態様を実行するための）命令を、記憶するために使用される。他の例では、（例えば、以下に説明する処理の態様を実行するための）命令は、サーバシステム１０８の非一時的コンピュータ可読記憶媒体（図示せず）に記憶されるか、又は、メモリ２０２の非一時的コンピュータ可読記憶媒体とサーバシステム１０８の非一時的コンピュータ可読記憶媒体との間で分割される。
【００４２】
周辺機器インタフェース２１８は、このデバイスの入力及び出力周辺機器を、ＣＰＵ２２０及びメモリ２０２に結合するために使用される。１つ以上のプロセッサ２２０は、メモリ２０２に記憶された様々なソフトウェアプログラム及び／若しくは命令セットを動作させて、又は実行して、デバイス２００のための様々な機能を実行し、データを処理する。一部の実施形態では、周辺機器インタフェース２１８、ＣＰＵ２２０、及びメモリコントローラ２２２は、チップ２０４などの単一チップ上に実装される。一部の他の実施形態では、それらは、別個のチップ上に実装される。
【００４３】
ＲＦ（radio frequency）（無線周波数）回路２０８は、電磁信号とも呼ばれるＲＦ信号を送受信する。ＲＦ回路２０８は、電気信号を電磁信号に、又は電磁信号を電気信号に変換し、電磁信号を介して通信ネットワーク及び他の通信デバイスと通信する。ＲＦ回路２０８は、任意選択的に、これらの機能を実行するための周知の回路を含み、それらの回路としては、限定するものではないが、アンテナシステム、ＲＦ送受信機、１つ以上の増幅器、同調器、１つ以上の発振器、デジタル信号プロセッサ、ＣＯＤＥＣチップセット、加入者識別モジュール（subscriber identity module、ＳＩＭ）カード、メモリなどが挙げられる。ＲＦ回路２０８は、任意選択的に、ワールドワイドウェブ（World Wide Web、ＷＷＷ）とも呼ばれるインターネット、イントラネット、並びに／又はセルラー電話ネットワーク、無線ローカルエリアネットワーク（local area network、ＬＡＮ）及び／若しくはメトロポリタンエリアネットワーク（metropolitan area network、ＭＡＮ）などの無線ネットワークなどのネットワークと、また他のデバイスと、無線通信によって通信する。ＲＦ回路２０８は、任意選択的に、短距離通信無線機などによって近距離通信（near field communication、ＮＦＣ）フィールドを検出するよく知られている回路を含む。無線通信は、任意選択的に、それだけに限定されるものではないが、動き通信用のグローバルシステム（Global System for Mobile Communications、ＧＳＭ）、拡張データＧＳＭ環境（Enhanced Data GSM Environment、ＥＤＧＥ）、高速ダウンリンクパケットアクセス（high-speed downlink packet access、ＨＳＤＰＡ）、高速アップリンクパケットアクセス（high-speed uplink packet access、ＨＳＵＰＡ）、エボリューションデータオンリ（Evolution,Data-Only、ＥＶ−ＤＯ）、ＨＳＰＡ、ＨＳＰＡ＋、デュアルセルＨＳＰＡ（Dual-Cell HSPA、ＤＣ−ＨＳＰＤＡ）、ロングタームエボリューション（long term evolution、ＬＴＥ）、近距離通信（ＮＦＣ）、広帯域符号分割多元接続（wideband code division multiple access、Ｗ−ＣＤＭＡ）、符号分割多元接続（code division multiple access、ＣＤＭＡ）、時分割多元接続（time division multiple access、ＴＤＭＡ）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｂｌｕｅｔｏｏｔｈローエネルギ（Bluetooth Low Energy、ＢＴＬＥ（登録商標））、ワイヤレスフィデリティ（Wireless Fidelity、Ｗｉ−Ｆｉ（登録商標））（例えば、ＩＥＥＥ  ８０２．１１ａ、ＩＥＥＥ  ８０２．１１ｂ、ＩＥＥＥ  ８０２．１１ｇ、ＩＥＥＥ  ８０２．１１ｎ、及び／若しくはＩＥＥＥ  ８０２．１１ａｃ）、ボイスオーバーインターネットプロトコル（voice over Internet Protocol、ＶｏＩＰ）、Ｗｉ−ＭＡＸ（登録商標）、電子メール用プロトコル（例えば、インターネットメッセージアクセスプロトコル（Internet message access protocol、ＩＭＡＰ）及び／若しくはポストオフィスプロトコル（post office protocol、ＰＯＰ））、インスタントメッセージング（例えば、拡張可能なメッセージング及びプレゼンスプロトコル（extensible messaging and presence protocol、ＸＭＰＰ）、インスタントメッセージング及びプレゼンスレベレイジングエクステンションのためのセッション開始プロトコル（Session Initiation Protocol for Instant Messaging and Presence Leveraging Extensions、ＳＩＭＰＬＥ）、インスタントメッセージング及びプレゼンスサービ��（Instant Messaging and Presence Service、ＩＭＰＳ））、並びに／若しくはショートメッセージサービス（Short Message Service、ＳＭＳ）、又は本明細書の出願日の時点でまだ開発されていない通信プロトコルを含む任意の他の適した通信プロトコルを含む、複数の通信規格、プロトコル、及び技術のうちのいずれかを使用する。
【００４４】
オーディオ回路２１０、スピーカ２１１、及びマイクロフォン２１３は、ユーザとデバイス２００との間のオーディオインタフェースを提供する。オーディオ回路２１０は、周辺機器インタフェース２１８からオーディオデータを受信し、このオーディオデータを電気信号に変換し、この電気信号をスピーカ２１１に送信する。スピーカ２１１は、電気信号を人間の可聴音波に変換する。オーディオ回路２１０はまた、マイクロフォン２１３によって音波から変換された電気信号を受信する。オーディオ回路２１０は、電気信号をオーディオデータに変換し、このオーディオデータを処理のために周辺機器インタフェース２１８に送信する。オーディオデータは、周辺機器インタフェース２１８によって、メモリ２０２及び／又はＲＦ回路２０８から取得され、並びに／あるいは、メモリ２０２及び／又はＲＦ回路２０８に送信される。一部の実施形態では、オーディオ回路２１０はまた、ヘッドセットジャック（例えば、図３の３１２）を含む。ヘッドセットジャックは、オーディオ回路２１０と、出力専用ヘッドホン又は出力（例えば片耳若しくは両耳用のヘッドホン）及び入力（例えばマイクロフォン）の両方を有するヘッドセットなどの着脱可能なオーディオ入出力周辺機器との間のインタフェースを提供する。
【００４５】
Ｉ／Ｏサブシステム２０６は、タッチスクリーン２１２及び他の入力制御デバイス２１６などのデバイス２００上の入出力周辺機器を、周辺機器インタフェース２１８に結合する。Ｉ／Ｏサブシステム２０６は、任意選択的に、ディスプレイコントローラ２５６、光センサコントローラ２５８、強度センサコントローラ２５９、触覚フィードバックコントローラ２６１、及び他の入力若しくは制御デバイスのための１つ以上の入力コントローラ２６０を含む。１つ以上の入力コントローラ２６０は、他の入力コントロールデバイス２１６からの電気信号の受信／他の入力コントロールデバイス２１６への電気信号の送信を行う。他の入力コントロールデバイス２１６は、任意選択的に、物理ボタン（例えば、プッシュボタン、ロッカボタンなど）、ダイヤル、スライダスイッチ、ジョイスティック、クリックホイールなどを含む。いくつかの代替的な実施形態では、入力コントローラ（単数又は複数）２６０は、任意選択的に、キーボード、赤外線ポート、ＵＳＢポート、及びマウスなどのポインタデバイスのうちのいずれかに結合される（又はいずれにも結合されない）。１つ以上のボタン（例えば、図３の３０８）は、任意選択的に、スピーカ２１１及び／又はマイクロフォン２１３の音量コントロールのための上下ボタンを含む。１つ以上のボタンは、任意選択的に、プッシュボタン（例えば、図３の３０６）を含む。
【００４６】
プッシュボタンを素早く押圧すると、タッチスクリーン２１２のロックを解除するか、又は２００５年１２月２３日に出願された米国特許出願第１１／３２２，５４９号、米国特許第７，６５７，８４９号の「Ｕｎｌｏｃｋｉｎｇ  ａ  Ｄｅｖｉｃｅ  ｂｙ  Ｐｅｒｆｏｒｍｉｎｇ  Ｇｅｓｔｕｒｅｓ  ｏｎ  ａｎ  Ｕｎｌｏｃｋ Ｉｍａｇｅ」に記載されているように、デバイスのロック解除のためにタッチスクリーン上でジェスチャを使う処理を開始し、その全体が参照により本明細書に組み込まれる。プッシュボタン（例えば、３０６）を長く押圧すると、デバイス２００の電源をオン又はオフする。ユーザは、１つ以上のボタンの機能をカスタマイズすることができる。タッチスクリーン２１２は、仮想又はソフトボタン及び１つ以上のソフトキーボードを実装するために使用される。
【００４７】
タッチ感知ディスプレイ２１２は、デバイスとユーザとの間の入力インタフェース及び出力インタフェースを提供する。ディスプレイコントローラ２５６は、タッチスクリーン２１２からの電気信号の受信、及び／又はタッチスクリーン２１２への電気信号の送信を行う。タッチスクリーン２１２は、ユーザに対して視覚出力を表示する。視覚出力は、グラフィックス、テキスト、アイコン、動画、及びそれらの任意の組み合わせ（まとめて「グラフィックス」と呼ばれる）を含む。一部の実施形態では、視覚出力のいくつか又は全部が、ユーザインタフェースオブジェクトに対応する。
【００４８】
タッチスクリーン２１２は、触覚及び／又は触知接触に基づくユーザからの入力を受け入れるタッチ感知面、センサ、又はセンサのセットを有する。タッチスクリーン２１２及びディスプレイコントローラ２５６は（メモリ２０２における任意の関連モジュール及び／又は命令セットと共に）、タッチスクリーン２１２上で接触（及び任意の接触の移動又は中断）を検出し、検出された接触をタッチスクリーン２１２上で表示されたユーザインタフェースオブジェクト（例えば、１つ以上のソフトキー、アイコン、ウェブページ、又は画像）との対話に変換する。例示的な実施形態では、タッチスクリーン２１２とユーザとの間の接触点は、ユーザの指に対応する。
【００４９】
タッチスクリーン２１２は、ＬＣＤ（液晶ディスプレイ）技術、ＬＰＤ（発光ポリマーディスプレイ）技術、又はＬＥＤ（発光ダイオード）技術を用いるが、他の実施形態では他のディスプレイ技術を使用してもよい。タッチスクリーン２１２及びディスプレイコントローラ２５６は、容量性、抵抗性、赤外線及び表面弾性波技術、並びに他の近接センサアレイ又はタッチスクリーン２１２を用いて１つ以上の接触点を判定する他の要素を含むがこれに限定されない現在知られている又は今後開発される複数のタッチ感知技術のいずれかを使用して接触及びその移動又は切断を検出する。例示的な実施形態では、カリフォルニア州クパチーノのＡｐｐｌｅ  Ｉｎｃ．からのｉＰｈｏｎｅ（登録商標）及びｉＰｏｄ  Ｔｏｕｃｈ（登録商標）に見られるものなどの、投影型相互静電容量感知技術が使用される。
【００５０】
タッチスクリーン２１２のいくつかの実施形態のタッチ感知ディスプレイは、米国特許６，３２３，８４６（Ｗｅｓｔｅｒｍａｎら）、６，５７０，５５７（Ｗｅｓｔｅｒｍａｎら）及び／又は６，６７７，９３２（Ｗｅｓｔｅｒｍａｎ）及び／又は米国特許公開２００２／００１５０２４（Ａ１）に記載されたマルチタッチ感知タッチパッドと類似しており、これらの各々は、参照によりその全体が本明細書に組み込まれる。しかしながら、タッチスクリーン２１２がデバイス２００からの視覚出力を表示するのに対して、タッチ感知タッチパッドは視覚出力を提供しない。
【００５１】
タッチスクリーン２１２のいくつかの実施形態のタッチ感知ディスプレイは、以下の出願に記載される。
【００５２】
（１）２００６年５月２日に出願された米国特許出願第１１／３８１，３１３号の「Ｍｕｌｔｉｐｏｉｎｔ  Ｔｏｕｃｈ  Ｓｕｒｆａｃｅ  Ｃｏｎｔｒｏｌｌｅｒ」（２）２００４年５月６日出願の米国特許出願第１０／８４０，８６２号、「Ｍｕｌｔｉｐｏｉｎｔ  Ｔｏｕｃｈｓｃｒｅｅｎ」、（３）２００４年７月３０日出願の米国特許出願第１０／９０３，９６４号、「Ｇｅｓｔｕｒｅｓ  Ｆｏｒ  Ｔｏｕｃｈ  Ｓｅｎｓｉｔｉｖｅ  Ｉｎｐｕｔ  Ｄｅｖｉｃｅｓ」、（４）２００５年１月３１日出願の米国特許出願第１１／０４８，２６４号、「Ｇｅｓｔｕｒｅｓ  Ｆｏｒ  Ｔｏｕｃｈ  Ｓｅｎｓｉｔｉｖｅ  Ｉｎｐｕｔ  Ｄｅｖｉｃｅｓ」、（５）２００５年１月１８日出願の米国特許出願第１１／０３８，５９０号、「Ｍｏｄｅ−Ｂａｓｅｄ  Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅｓ  Ｆｏｒ  Ｔｏｕｃｈ  Ｓｅｎｓｉｔｉｖｅ  Ｉｎｐｕｔ  Ｄｅｖｉｃｅｓ」、（６）２００５年９月１６日出願の米国特許出願第１１／２２８，７５８号、「Ｖｉｒｔｕａｌ  Ｉｎｐｕｔ  Ｄｅｖｉｃｅ  Ｐｌａｃｅｍｅｎｔ  Ｏｎ  Ａ  Ｔｏｕｃｈ  Ｓｃｒｅｅｎ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ」、（７）２００５年９月１６日出願の米国特許出願第１１／２２８，７００号、「Ｏｐｅｒａｔｉｏｎ  Ｏｆ  Ａ  Ｃｏｍｐｕｔｅｒ  Ｗｉｔｈ  Ａ  Ｔｏｕｃｈ  Ｓｃｒｅｅｎ  Ｉｎｔｅｒｆａｃｅ」、（８）２００５年９月１６日出願の米国特許出願第１１／２２８，７３７号、「Ａｃｔｉｖａｔｉｎｇ  Ｖｉｒｔｕａｌ  Ｋｅｙｓ  Ｏｆ  Ａ  Ｔｏｕｃｈ−Ｓｃｒｅｅｎ  Ｖｉｒｔｕａｌ  Ｋｅｙｂｏａｒｄ」、及び（９）２００６年３月３日出願の米国特許出願第１１／３６７，７４９号、「Ｍｕｌｔｉ−Ｆｕｎｃｔｉｏｎａｌ  Ｈａｎｄ−Ｈｅｌｄ  Ｄｅｖｉｃｅ」という出願に記載されている。これらの出願は全て、全体として参照により本明細書に組み込まれている。
【００５３】
タッチスクリーン２１２は、例えば、１００ｄｐｉを超えるビデオ解像度を有する。一部の実施形態では、タッチスクリーンは、約１６０ｄｐｉのビデオ解像度を有する。ユーザは、スタイラス、指などの好適なオブジェクト又は付属物を使用してタッチスクリーン２１２に接触する。一部の実施形態では、ユーザインタフェースは、指ベースの接触及びジェスチャを主に扱うように設計されるが、これは、タッチスクリーン上の指の接触面積がより大きいため、スタイラスベースの入力ほど精密でない可能性がある。一部の実施形態では、デバイスは、指による粗い入力を、ユーザによって所望されているアクションを実行するための、正確なポインタ／カーソルの位置又はコマンドに変換する。
【００５４】
一部の実施形態では、タッチスクリーンに加えて、デバイス２００は、特定の機能をアクティブにする又は非アクティブにするタッチパッド（図示しない）を含む。一部の実施形態では、タッチパッドは、タッチスクリーンとは異なり、視覚出力を表示しない、デバイスのタッチ感知エリアである。タッチパッドは、タッチスクリーン２１２とは別個のタッチ感知面であるか、又はタッチスクリーンによって形成されたタッチ感知面の延長である。
【００５５】
デバイス２００はまた、様々な構成要素に電力を供給する電力システム２６２を含む。電力システム２６２は、電力管理システム、１つ以上の電源（例えばバッテリ、交流（ＡＣ））、充電システム、停電検出回路、電力コンバータ又はインバータ、電力状態インジケータ（例えば、発光ダイオード（ＬＥＤ））、及びポータブルデバイスにおける電力の生成、管理及び分配に関連付けられた任意の他の構成要素を含む。
デバイス２００はまた、１つ以上の光センサ２６４を含む。図２Ａは、Ｉ／Ｏサブシステム２０６内の光センサコントローラ２５８に結合されている、光センサを示す。光センサ２６４は、電荷結合素子（charge-coupled device；ＣＣＤ）又は相補的金属酸化物半導体（complementary metal-oxide semiconductor；ＣＭＯＳ）フォトトランジスタを含む。光センサ２６４は、１つ以上のレンズを通って投影された環境からの光を受信し、その光を、画像を表すデータに変換する。撮像モジュール２４３（カメラモジュールとも呼ばれるもの）と連動して、光センサ２６４は、静止画像又はビデオをキャプチャする。一部の実施形態では、光センサは、タッチスクリーンディスプレイが静止画像及び／又は動画取得のためのビューファインダとして使用されるように、デバイスの前面のタッチスクリーンディスプレイ２１２とは反対のデバイス２００の背面に配置される。一部の実施形態では、光センサは、ユーザがタッチスクリーンディスプレイで他のテレビ会議参加者を見る間にビデオ会議のためのユーザの画像が取得されるように、デバイスの前面に配置される。一部の実施形態では、光センサ２６４の位置は、ユーザによって（例えば、デバイスハウジング内でレンズ及びセンサを回転させることによって）変更することができ、したがって単一の光センサ２６４が、タッチスクリーンディスプレイと共に、テレビ会議にも静止画像及び／又はビデオ画像の取得にも使用される。
【００５６】
デバイス２００はまた、任意選択的に、１つ以上の接触強度センサ２６５を含む。図２Ａは、Ｉ／Ｏサブシステム２０６内の強度センサコントローラ２５９に結合されている、接触強度センサを示す。接触強度センサ２６５は、任意選択的に、１つ以上のピエゾ抵抗ひずみゲージ、容量性力センサ、電気力センサ、圧電力センサ、光学力センサ、容量性タッチ感知面、又は他の強度センサ（例えば、タッチ感知面上の接触の力（若しくは圧力）を測定するために使用されるセンサ）を含む。接触強度センサ２６５は、接触強度情報（例えば、圧力情報、又は圧力情報に対するプロキシ）を環境から受信する。一部の実施形態では、少なくとも１つの接触強度センサは、タッチ感知面（例えばタッチ感知ディスプレイシステム２１２）と並置され、又はそれに近接している。一部の実施形態では、少なくとも１つの接触強度センサは、デバイス２００の前面に位置するタッチスクリーンディスプレイ２１２とは反対に、デバイス２００の裏面に位置する。
【００５７】
デバイス２００はまた、１つ以上の近接センサ２６６を含む。図２Ａは、周辺機器インタフェース２１８に結合されている、近接センサ２６６を示す。代替的に、近接センサ２６６は、Ｉ／Ｏサブシステム２０６内の入力コントローラ２６０に結合される。近接センサ２６６は、米国特許出願第１１／２４１，８３９号の「Ｐｒｏｘｉｍｉｔｙ  Ｄｅｔｅｃｔｏｒ  Ｉｎ  Ｈａｎｄｈｅｌｄ  Ｄｅｖｉｃｅ」、第１１／２４０，７８８号、「Ｐｒｏｘｉｍｉｔｙ  Ｄｅｔｅｃｔｏｒ  Ｉｎ  Ｈａｎｄｈｅｌｄ  Ｄｅｖｉｃｅ」第１１／６２０，７０２号、「Ｕｓｉｎｇ  Ａｍｂｉｅｎｔ  Ｌｉｇｈｔ  Ｓｅｎｓｏｒ  Ｔｏ  Ａｕｇｍｅｎｔ  Ｐｒｏｘｉｍｉｔｙ  Ｓｅｎｓｏｒ  Ｏｕｔｐｕｔ」、第１１／５８６，８６２号、「Ａｕｔｏｍａｔｅｄ  Ｒｅｓｐｏｎｓｅ  Ｔｏ  Ａｎｄ  Ｓｅｎｓｉｎｇ  Ｏｆ  Ｕｓｅｒ  Ａｃｔｉｖｉｔｙ  Ｉｎ  Ｐｏｒｔａｂｌｅ  Ｄｅｖｉｃｅｓ」、及び同第１１／６３８，２５１号、「Ｍｅｔｈｏｄｓ  Ａｎｄ  Ｓｙｓｔｅｍｓ  Ｆｏｒ  Ａｕｔｏｍａｔｉｃ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｏｆ  Ｐｅｒｉｐｈｅｒａｌｓ」で説明されるように機能するものであり、これらの出願は、全体が参照により本明細書に組み込まれる。一部の実施形態では、近接センサは、多機能デバイスがユーザの耳付近に配置されたとき（例えば、ユーザが電話をかけているとき）、タッチスクリーン２１２をオフにして無効化する。
【００５８】
デバイス２００はまた、任意選択的に、１つ以上の触知出力生成器２６７を含む。図２Ａは、Ｉ／Ｏサブシステム２０６内の触覚フィードバックコントローラ２６１に結合されている、触知出力生成器を示す。触知出力生成器２６７は、任意選択的に、スピーカ若しくは他のオーディオ構成要素などの１つ以上の電気音響デバイス、及び／又はモータ、ソレノイド、電気活性ポリマー、圧電アクチュエータ、静電アクチュエータ、若しくは他の触知出力生成構成要素（例えば、デバイス上で電気信号を触知出力に変換する構成要素）などのエネルギを直線の動きに変換する電気機械デバイスを含む。接触強度センサ２６５は、触覚フィードバックモジュール２３３から触知フィードバック生成命令を受信し、デバイス２００のユーザが感知することが可能な触知出力をデバイス２００上に生成する。一部の実施形態では、少なくとも１つの触知出力生成器は、タッチ感知面（例えば、タッチ感知ディスプレイシステム２１２）に配置されているか、又はそれに近接しており、任意選択的に、タッチ感知面を垂直方向（例えば、デバイス２００の表面の内／外）に、又は水平方向（例えば、デバイス２００の表面と同じ平面内の前後）に動かすことによって、触知出力を生成する。一部の実施形態では、少なくとも１つの触知出力生成器センサは、デバイス２００の前面に位置するタッチスクリーンディスプレイ２１２とは反対に、デバイス２００の裏面に位置する。
【００５９】
デバイス２００はまた、１つ以上の加速度計２６８も含む。図２Ａは、周辺機器インタフェース２１８に結合されている、加速度計２６８を示す。代替的に、加速度計２６８は、Ｉ／Ｏサブシステム２０６内の入力コントローラ２６０に結合される。加速度計２６８は、例えば、米国特許公開第２００５０１９００５９号の「ポータブ電子デバイスのための加速度ベースの窃盗検出」、及び、米国特許公開第２００６００１７６９２号の「Ａｃｃｅｌｅｒａｔｉｏｎ−ｂａｓｅｄ  Ｔｈｅｆｔ  Ｄｅｔｅｃｔｉｏｎ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｐｏｒｔａｂｌｅ  Ｅｌｅｃｔｒｏｎｉｃ  Ｄｅｖｉｃｅｓ」に記載のように動作し、これらの両方は、全体が参照により本明細書に組み込まれる。一部の実施形態では、情報は、１つ以上の加速度計から受信したデータの分析に基づいて、ポートレートビュー又はランドスケープビューでタッチスクリーンディスプレイ上に表示される。デバイス２００は、任意選択的に、加速度計（単数又は複数）２６８に加えて、磁気計（図示せず）、並びにデバイス２００の位置及び向き（例えば、縦向き又は横向き）に関する情報を取得するためのＧＰＳ（又はＧＬＯＮＡＳＳ又は他のグローバルナビゲーションシステム）受信機（図示せず）を含む。
【００６０】
一部の実施形態では、メモリ２０２に記憶されているソフトウェア構成要素は、オペレーティングシステム２２６、通信モジュール（又は、命令セット）２２８、接触／動きモジュール（又は、命令セット）２３０、グラフィックモジュール（又は、命令セット）２３２、テキスト入力モジュール（又は、命令セット）２３４、全地球測位システム（Global Positioning System；ＧＰＳ）モジュール（又は、命令セット）２３５、デジタルアシスタントクライアントモジュール２２９、及びアプリケーション（又は、命令セット）２３６を含む。更には、メモリ２０２は、ユーザデータ及びモデル２３１などの、データ及びモデルを記憶している。更に、一部の実施形態では、図２Ａ及び図４に示されるように、メモリ２０２（図２Ａ）又はメモリ４７０（図４）は、デバイス／グローバル内部状態２５７を記憶している。デバイス／グローバル内部状態２５７は、現在アクティブ状態のアプリケーションがある場合に、どのアプリケーションがアクティブであるかを示すアクティブアプリケーション状態、どのアプリケーション、ビュー、又は他の情報がタッチスクリーンディスプレイ２１２の様々な領域を占めているかを示す表示状態、デバイスの様々なセンサ及び入力制御デバイス２１６から取得した情報を含むセンサ状態、並びにデバイスの位置及び／又は姿勢に関する位置情報、のうちの１つ以上を含む。
【００６１】
オペレーティングシステム２２６（例えば、Ｄａｒｗｉｎ（登録商標）、ＲＴＸＣ（登録商標）、ＬＩＮＵＸ（登録商標）、ＵＮＩＸ（登録商標）、ＯＳ  Ｘ（登録商標）、ｉＯＳ（登録商標）、ＷＩＮＤＯＷＳ（登録商標）、又はＶｘＷｏｒｋｓ（登録商標）などの組み込み型オペレーティングシステム）は、通常のシステムタスク（例えば、メモリ管理、記憶デバイスの制御、電力管理など）を制御及び管理する様々なソフトウェア構成要素及び／又はドライバを含み、様々なハードウェア構成要素とソフトウェア構成要素との間の通信を容易にする。
【００６２】
通信モジュール２２８は、１つ以上の外部ポート２２４を介して他のデバイスとの通信を容易にし、ＲＦ回路２０８及び／又は外部ポート２２４が受信したデータを処理するための様々なソフトウェア構成要素をも含む。外部ポート２２４（例えば、ユニバーサルシリアルバス（Universal Serial Bus、ＵＳＢ）、ＦＩＲＥＷＩＲＥなど）は、直接的に、又はネットワーク（例えば、インターネット、無線ＬＡＮなど）を介して間接的に、他のデバイスに結合するように適合されている。一部の実施形態では、外部ポートは、ｉＰｏｄ（登録商標）（Ａｐｐｌｅ  Ｉｎｃ．の商標）デバイス上で使用される３０ピンコネクタと同じ若しくは類似であり、かつ／又はそれに適合しているマルチピン（例えば、３０ピン）コネクタである。
【００６３】
接触／動きモジュール２３０は、任意選択的に、タッチスクリーン２１２（ディスプレイコントローラ２５６と連動して）及び他のタッチ感知デバイス（例えば、タッチパッド又は物理クリックホイール）との接触を検出する。接触／動きモジュール２３０は、接触が生じたかを判定すること（例えば、指を下ろすイベントを検出すること）、接触の強度（例えば、接触の力若しくは圧力、又は接触の力若しくは圧力の代替物）を判定すること、接触の移動が存在するかを判定し、タッチ感知面を横断する移動を追跡すること（例えば、指をドラッグする１つ以上のイベントを検出すること）、及び接触が停止したかを判定すること（例えば、指を上げるイベント又は接触の中断を検出すること）などの、接触の検出に関する様々な動作を実行するための、様々なソフトウェア構成要素を含む。接触／動きモジュール２３０は、タッチ感知面から接触データを受信する。一連の接触データによって表される、接触点の移動を判定することは、任意選択的に、接触点の速さ（大きさ）、速度（大きさ及び方向）、及び／又は加速度（大きさ及び／又は方向の変化）を判定することを含む。これらの動作は、任意選択的に、単一の接触（例えば、１本の指の接触）又は複数の同時接触（例えば、「マルチタッチ」／複数の指の接触）に適用される。一部の実施形態では、接触／動きモジュール２３０及びディスプレイコントローラ２５６は、タッチパッド上の接触を検出する。
【００６４】
一部の実施形態では、接触／動きモジュール２３０は、１つ以上の強度閾値のセットを使用して、ユーザによって動作が実行されたかどうかを判定する（例えば、ユーザがアイコン上で「クリック」したかどうかを判定する）。一部の実施形態では、強度閾値の少なくともサブセットが、ソフトウェアパラメータに従って判定される（例えば、強度閾値は、特定の物理アクチュエータのアクティブ化閾値によって判定されるのではなく、デバイス２００の物理ハードウェアを変化させることなく調整することができる）。例えば、トラックパッド又はタッチスクリーンディスプレイのマウス「クリック」閾値は、トラックパッド又はタッチスクリーンディスプレイハードウェアを変化させることなく、広範囲の既定閾値のうちのいずれかに設定することができる。加えて、一部の実装形態では、デバイスのユーザは、強度閾値のセットのうちの１つ以上を調整するソフトウェア設定が提供される（例えば、システムレベルのクリック「強度」パラメータによって、個々の強度閾値を調整すること、及び／又は複数の強度閾値を一度に調整することによる）。
【００６５】
接触／動きモジュール２３０は、任意選択的に、ユーザによるジェスチャ入力を検出する。タッチ感知面上の異なるジェスチャは、異なる接触パターンを有する（例えば検出される接触の動き、タイミング、及び／又は強度が異なる）。したがって、ジェスチャは、任意選択的に、特定の接触パターンを検出することによって検出される。例えば、指タップジェスチャを検出することは、指ダウンイベントを検出し、それに続いて指ダウンイベントと同じ位置（又は実質的に同じ位置）（例えば、アイコンの位置）で指アップ（リフトオフ）イベントを検出することを含む。別の例として、タッチ感知面上で指スワイプジェスチャを検出することは、指ダウンイベントを検出し、それに続いて１つ以上の指ドラッグイベントを検出し、その後それに続いて指アップ（リフトオフ）イベントを検出することを含む。
【００６６】
グラフィックモジュール２３２は、表示されるグラフィックの視覚的な影響（例えば、輝度、透明度、彩度、コントラスト、又は他の視覚的特性）を変化させる構成要素を含めて、タッチスクリーン２１２又は他のディスプレイ上にグラフィックをレンダリング及び表示する様々な既知のソフトウェア構成要素を含む。本明細書で使用するとき、用語「グラフィック」は、ユーザに対して表示することが可能な任意のオブジェクトを含み、それらのオブジェクトとしては、限定するものではないが、テキスト、ウェブページ、アイコン（ソフトキーを含めた、ユーザインタフェースオブジェクトなど）、デジタル画像、ビデオ、アニメーションなどが挙げられる。
【００６７】
一部の実施形態では、グラフィックモジュール２３２は、使用されるグラフィックを表すデータを記憶する。各グラフィックには、任意選択的に、対応するコードが割り当てられる。グラフィックモジュール２３２は、アプリケーションなどから、必要に応じて、座標データ及び他のグラフィック特性データと共に表示されることとなるグラフィックを指定する１つ以上のコードを受信し、次いで、ディスプレイコントローラ２５６に出力するスクリーンの画像データを生成する。
【００６８】
触覚フィードバックモジュール２３３は、デバイス２００とのユーザ対話に応じて、デバイス２００上の１つ以上の場所で触知出力を生成するために、触知出力生成器（単数又は複数）２６７によって使用される命令を生成するための、様々なソフトウェア構成要素を含む。
【００６９】
グラフィックモジュール２３２のコンポーネントであるテキスト入力モジュール２３４は、いくつかの例では、様々なアプリケーション（例えば、連絡先２３７、電子メール２４０、ＩＭ２４１、ブラウザ２４７、及びテキスト入力を必要とする他の任意のアプリケーション）でテキストを入力するためのソフトキーボードを提供する。
【００７０】
ＧＰＳモジュール２３５は、デバイスの位置を判定し、この情報を様々なアプリケーションで使用するために（例えば、位置に基づくダイヤル発呼で使用するために電話２３８へ、画像／ビデオのメタデータとしてカメラ２４３へ、並びに、気象ウィジェット、地域のイエローページウィジェット、及び地図／ナビゲーションウィジェットなどの、位置に基づくサービスを提供するアプリケーションへ）提供する。
【００７１】
デジタルアシスタントクライアントモジュール２２９は、デジタルアシスタントのクライアント側機能を提供するための、様々なクライアント側デジタルアシスタント命令を含む。例えば、デジタルアシスタントクライアントモジュール２２９は、ポータブル多機能デバイス２００の様々なユーザインタフェース（例えば、マイクロフォン２１３、加速度計（単数又は複数）２６８、タッチ感知ディスプレイシステム２１２、光センサ（単数又は複数）２２９、他の入力制御デバイス２１６など）を通じて、音声入力（例えば、発話入力）、テキスト入力、タッチ入力、及び／又はジェスチャ入力を受け入れることが可能である。デジタルアシスタントクライアントモジュール２２９はまた、ポータブル多機能デバイス２００の様々な出力インタフェース（例えば、スピーカ２１１、タッチ感知ディスプレイシステム２１２、触知出力生成器（単数又は複数）２６７など）を介して、オーディオ（例えば、発話出力）、視覚、及び／又は触知形状の出力などを提供することができる。例えば、出力は、音声、サウンド、警報、テキストメッセージ、メニュー、グラフィック、ビデオ、アニメーション、振動、及び／又は上記のうちの２つ以上の組み合わせとして提供される。動作の間に、デジタルアシスタントクライアントモジュール２２９は、ＲＦ回路２０８を使用して、ＤＡサーバ１０６と通信する。
【００７２】
ユーザデータ及びモデル２３１は、デジタルアシスタントのクライアント側機能を提供するための、ユーザに関連付けられた様々なデータ（例えば、ユーザ固有語彙データ、ユーザ選好データ、ユーザ指定の名前の発音、ユーザの電子アドレス帳からのデータ、ｔｏ  ｄｏリスト、買い物リストなど）を含む。更には、ユーザデータ及びモデル２３１は、ユーザ入力を処理して、ユーザ意図を判定するための、様々なモデル（例えば、発話認識モデル、統計的言語モデル、自然言語処理モデル、オントロジ、タスクフローモデル、サービスモデルなど）を含む。
【００７３】
一部の実施例では、デジタルアシスタントクライアントモジュール２２９は、ポータブル多機能デバイス２００の様々なセンサ、サブシステム、及び周辺機器を利用して、ポータブル多機能デバイス２００の周囲環境から追加情報を収集することにより、ユーザ、現在のユーザ対話、及び／又は現在のユーザ入力に関連付けられる、コンテキストを確立する。一部の実施例では、デジタルアシスタントクライアントモジュール２２９は、ユーザの意図の推測を支援するために、ユーザ入力と共に、コンテキスト情報又はそのサブセットを、ＤＡサーバ１０６に提供する。一部の実施例では、デジタルアシスタントはまた、どのようにしてユーザへの出力を準備及び配信するかを判定するためにも、コンテキスト情報を使用する。コンテキスト情報は、コンテキストデータと称される。
【００７４】
一部の実施例では、ユーザ入力を伴うコンテキスト情報は、センサ情報、例えば、照明、周囲ノイズ、周囲温度、周囲環境の画像又は動画などを含む。一部の実施例では、コンテキスト情報はまた、デバイスの物理状態、例えば、デバイスの向き、デバイスの位置、デバイスの温度、電力レベル、速度、加速度、動きパターン、セルラー信号強度なども含み得る。一部の実施例では、ＤＡサーバ１０６のソフトウェア状態、例えば、稼働中のプロセス、インストール済みのプログラム、過去及び現在のネットワークアクティビティ、バックグラウンドサービス、エラーログ、リソース使用量などに関する情報、並びにポータブル多機能デバイス２００のソフトウェア状態に関する情報が、ユーザ入力に関連付けられたコンテキスト情報として、ＤＡサーバ１０６に提供される。
【００７５】
一部の実施例では、デジタルアシスタントクライアントモジュール２２９は、ＤＡサーバ１０６からの要求に応じて、ポータブル多機能デバイス２００上に記憶されている情報（例えば、ユーザデータ２３１）を選択的に提供する。一部の実施例では、デジタルアシスタントクライアントモジュール２２９はまた、ＤＡサーバ１０６による要求に応じて、自然言語ダイアログ又は他のユーザインタフェースを介して、ユーザから追加入力も引き出す。デジタルアシスタントクライアントモジュール２２９は、ユーザ要求内に表現されているユーザの意図の、意図推論及び／又は遂行の際に、ＤＡサーバ１０６を支援するために、その追加入力をＤＡサーバ１０６に渡す。
【００７６】
デジタルアシスタントの更なる詳細な説明は、図７Ａ〜図７Ｃを参照して以下に説明される。デジタルアシスタントクライアントモジュール２２９は、以下に説明するデジタルアシスタントモジュール７２６の任意の数のサブモジュールを含み得ることを認識すべきである。
【００７７】
アプリケーション２３６は、以下のモジュール（又は命令のセット）、又はそのサブセット又はスーパーセットを含む。
●連絡先モジュール２３７（アドレス帳又は連絡先リストと呼ばれることもある）、
●電話モジュール２３８、
●テレビ会議モジュール２３９、
●電子メールクライアントモジュール２４０、
●インスタントメッセージング（Instant messaging、ＩＭ）モジュール２４１、
●トレーニングサポートモジュール２４２、
●静止画像及び／又はビデオ画像用のカメラモジュール２４３、
●画像管理モジュール２４４、
●ビデオプレーヤモジュール、
●音楽プレーヤモジュール、
●ブラウザモジュール２４７、
●カレンダーモジュール２４８、
●ウィジェットモジュール２４９、一部の実施例では、ウィジェットモジュール２４９は、気象ウィジェット２４９−１、株式ウィジェット２４９−２、計算機ウィジェット２４９−３、目覚まし時計ウィジェット２４９−４、辞書ウィジェット２４９−５、及びユーザ作成ウィジェット２４９−６と同様にユーザによって得られた他のウィジェットのうちの任意の１つ以上を含む、
●ユーザ作成ウィジェット２４９−６を作るウィジェットクリエータモジュール２５０、
●検索モジュール２５１、
●ビデオプレーヤモジュール及び音楽プレーヤモジュールを一体化したビデオ及び音楽プレーヤモジュール２５２、
●メモモジュール２５３、
●地図モジュール２５４、並びに／又は、
●オンラインビデオモジュール２５５。
【００７８】
メモリ２０２に格納される他のアプリケーション２３６の例としては、他のワードプロセッシングアプリケーション、他の画像編集アプリケーション、描画アプリケーション、プレゼンテーションアプリケーション、ＪＡＶＡ対応アプリケーション、暗号化、デジタル著作権管理、音声認識、及び音声複製が挙げられる。
【００７９】
タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、及びテキスト入力モジュール２３４と連動して、連絡先モジュール２３７は、（例えば、メモリ２０２又はメモリ４７０内の連絡先モジュール２３７のアプリケーション内部状態２９２に格納されている）アドレス帳又は連絡先リストを管理するために使用され、アドレス帳に名前（単数又は複数）を追加すること、アドレス帳から名前（単数又は複数）を削除すること、電話番号（単数又は複数）、電子メールアドレス（単数又は複数）、実際の住所（単数又は複数）、又は他の情報を名前に関連付けること、画像を名前に関連付けること、名前を分類して並べ替えること、電話２３８、テレビ会議モジュール２３９、電子メール２４０、又はＩＭ２４１による通信を開始及び／又は容易にするために、電話番号又は電子メールアドレスを提供することなどが含まれる。
【００８０】
ＲＦ回路２０８、オーディオ回路２１０、スピーカ２１１、マイクロフォン２１３、タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、及びテキスト入力モジュール２３４と連動して、電話モジュール２３８は、電話番号に対応する文字列を入力し、連絡先モジュール２３７内の１つ以上の電話番号にアクセスし、入力された電話番号を修正し、それぞれの電話番号をダイヤルし、会話を行い、会話が完了したら切断又は電話を切るために使用される。このように、無線通信は、複数の通信規格、プロトコル、及び技術のいずれかを用いる。
【００８１】
ＲＦ回路２０８、オーディオ回路２１０、スピーカ２１１、マイクロフォン２１３、タッチスクリーン２１２、ディスプレイコントローラ２５６、光センサ２６４、光センサコントローラ２５８、接触／動きモジュール２３０、グラフィックモジュール２３２、テキスト入力モジュール２３４、連絡先モジュール２３７、及び電話モジュール２３８と連動して、テレビ会議モジュール２３９は、ユーザ命令に従ってユーザと１人以上の他の参加者との間のテレビ会議を開始、実行、及び終了するための実行可能な命令を含む。
【００８２】
ＲＦ回路２０８、タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、及びテキスト入力モジュール２３４と連動して、電子メールクライアントモジュール２４０は、ユーザ命令に応じて電子メールを作成、送信、受信、及び管理するための実行可能な命令を含む。画像管理モジュール２４４と連動して、電子メールクライアントモジュール２４０は、カメラモジュール２４３で撮影された静止画像又はビデオ画像を有する電子メールの作成及び送信を非常に容易にする。
【００８３】
ＲＦ回路２０８、タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、及びテキスト入力モジュール２３４と連動して、インスタントメッセージングモジュール２４１は、インスタントメッセージに対応する文字シーケンスの入力、以前に入力された文字の修正、それぞれのインスタントメッセージの送信（例えば、電話通信ベースのインスタントメッセージ向けのショートメッセージサービス（Short Message Service、ＳＭＳ）若しくはマルチメディアメッセージサービス（Multimedia Message Service、ＭＭＳ）プロトコル、又はインターネットベースのインスタントメッセージ向けのＸＭＰＰ、ＳＩＭＰＬＥ、若しくはＩＭＰＳを使用する）、インスタントメッセージの受信、及び受信したインスタントメッセージの閲覧のための実行可能な命令を含む。一部の実施形態では、送信及び／又は受信されたインスタントメッセージは、グラフィックス、写真、オーディオファイル、ビデオファイル並びに／又は、ＭＭＳ及び／若しくは強化されたメッセージングサービス（ＥＭＳ）でサポートされた他のアタッチメントを含む。本明細書では、「インスタントメッセージング」とは、電話通信ベースのメッセージ（例えば、ＳＭＳ又はＭＭＳを使用して送信されるメッセージ）と、インターネットベースのメッセージ（例えば、ＸＭＰＰ、ＳＩＭＰＬＥ、又はＩＭＰＳを使用して送信されるメッセージ）との両方を指す。
【００８４】
ＲＦ回路２０８、タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、テキスト入力モジュール２３４、ＧＰＳモジュール２３５、地図モジュール２５４、及び音楽プレーヤモジュールと連動して、トレーニングサポートモジュール２４２は、トレーニング（例えば、時間、距離、及び／又はカロリー燃焼目標を有する）を作成し、トレーニングセンサ（スポーツデバイス）と通信し、トレーニングセンサデータを受信し、トレーニングをモニタするために使用されるセンサを較正し、トレーニングのための音楽を選択及び再生し、並びに、トレーニングデータを表示、記憶、及び送信するための実行可能な命令を含む。
【００８５】
タッチスクリーン２１２、ディスプレイコントローラ２５６、光センサ（単数又は複数）２６４、光センサコントローラ２５８、接触／動きモジュール２３０、グラフィックモジュール２３２、及び画像管理モジュール２４４と連動して、カメラモジュール２４３は、静止画像若しくはビデオ（ビデオストリームを含む）のキャプチャ及びメモリ２０２内への記憶、静止画像若しくはビデオの特性の修正、又はメモリ２０２からの静止画像若しくはビデオの削除のための実行可能な命令を含む。
【００８６】
タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、テキスト入力モジュール２３４、及びカメラモジュール２４３と連動して、画像管理モジュール２４４は、静止画像及び／又はビデオ画像の配置、修正（例えば、編集）、あるいはその他の操作、ラベル付け、削除、提示（例えば、デジタルスライドショー又はアルバムにおける）、及び記憶のための実行可能な命令を含む。
【００８７】
ＲＦ回路２０８、タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、及びテキスト入力モジュール２３４と連動して、ブラウザモジュール２４７は、ウェブページ又はその一部分、並びにウェブページにリンクされた添付ファイル及び他のファイルの検索、リンク、受信、及び表示を含めて、ユーザ命令に従ってインターネットをブラウジングするための実行可能な命令を含む。
【００８８】
ＲＦ回路２０８、タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、テキスト入力モジュール２３４、電子メールクライアントモジュール２４０、及びブラウザモジュール２４７と連動して、カレンダーモジュール２４８は、ユーザ命令に従ってカレンダー及びカレンダーに関連付けられたデータ（例えば、カレンダー入力、やることリストなど）を作成、表示、修正、及び記憶するための実行可能な命令を含む。
【００８９】
ＲＦ回路２０８、タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、テキスト入力モジュール２３４、及びブラウザモジュール２４７と連動して、ウィジェットモジュール２４９は、ユーザによってダウンロード及び使用され得る（例えば、気象ウィジェット２４９−１、株式ウィジェット２４９−２、計算機ウィジェット２４９−３、目覚まし時計ウィジェット２４９−４、及び辞書ウィジェット２４９−５）、又はユーザによって作成され得る（例えば、ユーザ作成ウィジェット２４９−６）ミニアプリケーションである。一部の実施形態では、ウィジェットは、ＨＴＭＬ（Ｈｙｐｅｒｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ、ハイパーテキストマークアップ言語）ファイル、ＣＳＳ（Ｃａｓｃａｄｉｎｇ  Ｓｔｙｌｅ  Ｓｈｅｅｔｓ、カスケーディングスタイルシート）ファイル、及びＪａｖａＳｃｒｉｐｔファイルを含む。一部の実施形態では、ウィジェットは、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ、拡張可能マークアップ言語）ファイル及びＪａｖａＳｃｒｉｐｔファイル（例えば、Ｙａｈｏｏ！ウィジェット）を含む。
【００９０】
ＲＦ回路２０８、タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、テキスト入力モジュール２３４、及びブラウザモジュール２４７と連動して、ウィジェット作成モジュール２５０は、ウィジェットを作成するためにユーザによって使用される（例えば、ウェブページのユーザ指定部分をウィジェットに変える）。
【００９１】
タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、及びテキスト入力モジュール２３４と連動して、検索モジュール２５１は、ユーザ命令に従って１つ以上の検索基準（例えば、１つ以上のユーザ指定検索語）に一致するメモリ２０２内の文字、音楽、サウンド、画像、ビデオ、及び／又は他のファイルを検索するための実行可能な命令を含む。
【００９２】
タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、オーディオ回路２１０、スピーカ２１１、ＲＦ回路２０８、及びブラウザモジュール２４７と連動して、ビデオ及び音楽プレーヤモジュール２５２は、ユーザがＭＰ３若しくはＡＡＣファイルなどの１つ以上のファイル形式で記憶されている記録された音楽及び他のサウンドファイルをダウンロード及び再生することを可能にする実行可能な命令、並びにビデオを表示、提示、又は他の方法で（例えば、タッチスクリーン２１２上に、又は外部ポート２２４を介して接続された外部ディスプレイ上に）再生するための実行可能な命令を含む。一部の実施形態では、デバイス２００は、任意選択的に、ｉＰｏｄ（Ａｐｐｌｅ  Ｉｎｃ．の商標）などのＭＰ３プレーヤの機能を含む。
【００９３】
タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、及びテキスト入力モジュール２３４と連動して、メモモジュール２５３は、ユーザ命令に従ってメモ、やることリストなどを作成及び管理するための実行可能な命令を含む。
【００９４】
ＲＦ回路２０８、タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、テキスト入力モジュール２３４、ＧＰＳモジュール２３５、及びブラウザモジュール２４７と連動して、地図モジュール２５４は、ユーザの命令に従って地図及び地図に関連付けられたデータ（例えば、運転指示、店舗に関するデータ、特定の場所又はその近くの他の場所、及び他の場所ベースのデータ）を受信、表示、修正、及び格納するために使用される。
【００９５】
タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、オーディオ回路２１０、スピーカ２１１、ＲＦ回路２０８、テキスト入力モジュール２３４、電子メールクライアントモジュール２４０、及びブラウザモジュール２４７と連動して、オンラインビデオモジュール２５５は、ユーザが特定のオンラインビデオへのアクセス、特定のオンラインビデオのブラウジング、受信（例えば、ストリーミング及び／又はダウンロードによる）、再生（例えば、タッチスクリーン上又は外部ポート２２４を介して接続された外部ディスプレイ上）、特定のオンラインビデオへのリンクを有する電子メールの送信、並びにＨ．２６４などの１つ以上のファイル形式のオンラインビデオの他の管理を行うことを可能にする命令を含む。一部の実施形態では、特定のオンラインビデオへのリンクを送信するために、電子メールクライアントモジュール２４０ではなく、インスタントメッセージングモジュール２４１が使用される。オンラインビデオアプリケーションについての追加の説明は、その内容が全体として参照により本明細書に組み込まれている、２００７年６月２０日出願の米国仮特許出願第６０／９３６，５６２号、「Ｐｏｒｔａｂｌｅ  Ｍｕｌｔｉｆｕｎｃｔｉｏｎ  Ｄｅｖｉｃｅ，Ｍｅｔｈｏｄ，ａｎｄ  Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  ｆｏｒ  Ｐｌａｙｉｎｇ  Ｏｎｌｉｎｅ  Ｖｉｄｅｏｓ」、及び２００７年１２月３１日出願の米国特許出願第１１／９６８，０６７号、「Ｐｏｒｔａｂｌｅ  Ｍｕｌｔｉｆｕｎｃｔｉｏｎ  Ｄｅｖｉｃｅ，Ｍｅｔｈｏｄ，ａｎｄ  Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  ｆｏｒ  Ｐｌａｙｉｎｇ  Ｏｎｌｉｎｅ  Ｖｉｄｅｏｓ」において見ることができる。
【００９６】
上記で特定したモジュール及びアプリケーションはそれぞれ、前述した１つ以上の機能及び本出願に記載する方法（例えば、本明細書に記載するコンピュータにより実装される方法及び他の情報処理方法）を実行する実行可能な命令のセットに対応する。これらのモジュール（例えば、命令のセット）は、個別のソフトウェアプログラム、手順、又はモジュールとして実装する必要がないので、様々な実施形態でこれらのモジュールの様々なサブセットを組み合わせる又はさもなければ再構成することができる。例えば、ビデオプレーヤモジュールは、単一モジュール（例えば、ビデオ及び音楽プレーヤモジュール２５２、図２Ａ）に音楽プレーヤモジュールと組み合わせることができる。一部の実施形態では、メモリ２０２は、上記で特定されたモジュール及びデータ構造のサブセットを記憶する。更に、メモリ２０２は、上述しない追加のモジュール及びデータ構造を記憶する。
【００９７】
一部の実施形態では、デバイス２００は、そのデバイスにおける既定の機能のセットの動作がタッチスクリーン及び／又はタッチパッドのみを通じて実行されるデバイスである。デバイス２００の動作のためのプライマリ入力コントロールデバイスとして、タッチスクリーン及び／又はタッチパッドを用いることにより、デバイス２００上の物理的な入力コントロールデバイス（押しボタン、ダイヤルなど）の数が削減される。
【００９８】
タッチスクリーン及び／又はタッチパッドを通じてのみ実行される既定の機能のセットは、任意選択的に、ユーザインタフェース間のナビゲーションを含む。一部の実施形態では、タッチパッドは、ユーザによってタッチされたときに、デバイス２００上に表示される任意のユーザインタフェースから、メインメニュー、ホームメニュー、又はルートメニューにデバイス２００をナビゲートする。このような実施形態では、「メニューボタン」は、タッチパッドを使用して実装される。一部の他の実施形態では、メニューボタンは、タッチパッドではなく、物理プッシュボタン又はその他の物理入力コントロールデバイスである。
【００９９】
図２Ｂは、一部の実施形態による、イベント処理のための例示的な構成要素を示すブロック図である。一部の実施形態では、メモリ２０２（図２Ａ）又はメモリ４７０（図４）は、イベントソータ２７０（例えば、オペレーティングシステム２２６内）及び対応のアプリケーション２３６−１（例えば、前述のアプリケーション２３７〜２５１、２５５、４８０〜４９０のうちのいずれか）を含む。
【０１００】
イベントソータ２７０は、イベント情報を受信し、イベント情報が配信されるアプリケーション２３６−１、及びアプリケーション２３６−１のアプリケーションビュー２９１を判定する。イベントソータ２７０は、イベントモニタ２７１及びイベントディスパッチャモジュール２７４を含む。一部の実施形態では、アプリケーション２３６−１は、アプリケーションがアクティブ又は実行中であるときにタッチ感知ディスプレイ２１２上に表示される現在のアプリケーションビュー（単数又は複数）を示すアプリケーション内部状態２９２を含む。一部の実施形態では、デバイス／グローバル内部状態２５７は、どのアプリケーション（単数又は複数）が現在アクティブであるかを判定するためにイベントソータ２７０によって使用され、アプリケーション内部状態２９２は、イベント情報が配信されるアプリケーションビュー２９１を判定するためにイベントソータ２７０によって使用される。
【０１０１】
一部の実施形態では、アプリケーション内部状態２９２は、アプリケーション２３６−１が実行を再開するときに使用される再開情報、アプリケーション２３６−１によって表示されている又は表示される準備ができている情報を示すユーザインタフェース状態情報、ユーザがアプリケーション２３６−１の以前の状態又はビューに戻ることを可能にする状態待ち行列、及びユーザが行った以前のアクションのリドゥ／アンドゥ待ち行列、のうちの１つ以上などの追加の情報を含む。
【０１０２】
イベントモニタ２７１は、周辺機器インタフェース２１８からイベント情報を受信する。イベント情報は、サブイベント（例えば、マルチタッチジェスチャの一部としてのタッチ感知ディスプレイ２１２上のユーザタッチ）に関する情報を含む。周辺機器インタフェース２１８は、Ｉ／Ｏサブシステム２０６、又は近接センサ２６６、加速度計（単数又は複数）２６８、及び／若しくは（オーディオ回路２１０を介した）マイクロフォン２１３などのセンサから受信する情報を送信する。周辺機器インタフェース２１８がＩ／Ｏサブシステム２０６から受信する情報は、タッチ感知ディスプレイ２１２又はタッチ感知面からの情報を含む。
【０１０３】
一部の実施形態では、イベントモニタ２７１は、所定の間隔で周辺機器インタフェース２１８に要求を送信する。それに応じて、周辺機器インタフェース２１８は、イベント情報を送信する。他の実施形態では、周辺機器インタフェース２１８は、重要なイベント（例えば、所定のノイズ閾値を上回る及び／又は所定の持続時間を超える入力の受信）があるときのみイベント情報を送信する。
【０１０４】
一部の実施形態では、イベントソータ２７０はまた、ヒットビュー判定モジュール２７２及び／又はアクティブイベント認識部判定モジュール２７３を含む。
【０１０５】
ヒットビュー判定モジュール２７２は、タッチ感知ディスプレイ２１２が２つ以上のビューを表示するとき、サブイベントが１つ以上のビュー内のどこで行われたかを判定するソフトウェア手順を提供する。ビューは、ユーザがディスプレイ上で見ることができる制御装置及び他の要素から構成されている。
【０１０６】
アプリケーションに関連付けられたユーザインタフェースの別の態様は、本明細書ではアプリケーションビュー又はユーザインタフェースウインドウと呼ばれることもあるビューのセットであり、その中で情報が表示され、タッチに基づくジェスチャが生じる。タッチが検出された（対応するアプリケーションの）アプリケーションビューは、アプリケーションのプログラム又はビュー階層内のプログラムレベルに対応する。例えば、タッチが検出された最低レベルのビューはヒットビューと呼ばれ、正しい入力として認識されるイベントのセットは、タッチベースのジェスチャを開始する初期タッチのヒットビューに少なくとも部分的に基づいて判定される。
【０１０７】
ヒットビュー判定モジュール２７２は、タッチに基づくジェスチャのサブイベントに関連する情報を受信する。アプリケーションが階層状に構成された複数のビューを有するとき、ヒットビュー判定モジュール２７２は、サブイベントを処理すべき階層内の最下位のビューとして、ヒットビューを特定する。ほとんどの状況では、ヒットビューは、開始サブイベント（例えば、イベント又は潜在的イベントを形成するサブイベントシーケンス内の第１のサブイベント）が行われる最も低いレベルのビューである。ヒットビューがヒットビュー判定モジュール２７２によって特定されると、このヒットビューは、典型的には、ヒットビューとして特定されたのと同じタッチ又は入力ソースに関係する全てのサブイベントを受信する。
【０１０８】
アクティブイベント認識部判定モジュール２７３は、ビュー階層内のどのビュー（単数又は複数）がサブイベントの特定のシーケンスを受信すべきかを判定する。一部の実施形態では、アクティブイベント認識部判定モジュール２７３は、ヒットビューのみがサブイベントの特定のシーケンスを受信すべきと判定する。他の実施形態では、アクティブイベント認識部判定モジュール２７３は、サブイベントの物理的な位置を含む全てのビューがアクティブに関与しているビューであると判定し、したがって、全てのアクティブに関与しているビューが特定の一連のサブイベントを受信するべきと判定する。他の実施形態では、タッチサブイベントが１つの特定のビューに関連付けられたエリアに完全に限定された場合でも、階層内の上位のビューは、依然としてアクティブに関わりがあるビューであり続ける。
【０１０９】
イベントディスパッチャモジュール２７４は、イベント情報をイベント認識部（例えばイベント認識部２８０）にディスパッチする。アクティブイベント認識部判定モジュール２７３を含む実施形態では、イベントディスパッチャモジュール２７４は、アクティブイベント認識部判定モジュール２７３により判定されたイベント認識部にイベント情報を配信する。一部の実施形態では、イベントディスパッチャモジュール２７４は、それぞれのイベント受信部２８２によって取得されるイベント情報をイベント待ち行列に記憶する。
【０１１０】
一部の実施形態では、オペレーティングシステム２２６は、イベントソータ２７０を含む。代替的に、アプリケーション２３６−１がイベントソータ２７０を含む。更なる他の実施形態では、イベントソータ２７０は、スタンドアロンモジュール、又は接触／動きモジュール２３０などのメモリ２０２に記憶された別のモジュールの一部である。
【０１１１】
一部の実施形態では、アプリケーション２３６−１は、それぞれがアプリケーションのユーザインタフェースのそれぞれのビュー内で発生するタッチイベントを処理する命令を含む、複数のイベント処理部２９０及び１つ以上のアプリケーションビュー２９１を含む。アプリケーション２３６−１の各アプリケーションビュー２９１は、１つ以上のイベント認識部２８０を含む。典型的には、それぞれのアプリケーションビュー２９１は、複数のイベント認識部２８０を含む。他の実施形態では、イベント認識部２８０のうちの１つ以上は、ユーザインタフェースキット（図示せず）又はアプリケーション２３６−１が方法及び他の特性を継承する上位レベルのオブジェクトなどの、別個のモジュールの一部である。一部の実施形態では、それぞれのイベント処理部２９０は、データ更新部２７６、オブジェクト更新部２７７、ＧＵＩ更新部２７８、及び／又はイベントソータ２７０から受信されたイベントデータ２７９のうちの１つ以上を含む。イベント処理部２９０は、アプリケーション内部状態２９２を更新するために、データ更新部２７６、オブジェクト更新部２７７、若しくはＧＵＩ更新部２７８を利用するか又は呼び出す。代替的に、アプリケーションビュー２９１のうちの１つ以上が、１つ以上のそれぞれのイベント処理部２９０を含む。また、一部の実施形態では、データ更新部２７６、オブジェクト更新部２７７及びＧＵＩ更新部２７８のうちの１つ以上が、それぞれのアプリケーションビュー２９１に含まれる。
【０１１２】
それぞれのイベント認識部２８０は、イベントソータ２７０からイベント情報（例えば、イベントデータ２７９）を受信し、このイベント情報からイベントを特定する。イベント認識部２８０は、イベント受信部２８２及びイベント比較部２８４を含む。一部の実施形態では、イベント認識部２８０は、メタデータ２８３とイベント配信命令２８８（サブイベント配信命令を含む）との少なくともサブセットを含む。
【０１１３】
イベント受信部２８２は、イベントソータ２７０からイベント情報を受信する。イベント情報は、サブイベント、例えば、タッチ又はタッチの移動についての情報を含む。サブイベントに応じて、イベント情報はまた、サブイベントの位置などの追加の情報を含む。サブイベントがタッチの動きに関連する場合、イベント情報は、サブイベントの速度及び方向も含む。一部の実施形態では、イベントは、１つの向きから別の向きへの（例えば、縦向きから横向きへ、又はその逆の）デバイスの回転を含み、イベント情報は、デバイスの現在の向き（デバイスの姿勢とも呼ぶ）についての対応する情報を含む。
【０１１４】
イベント比較部２８４は、そのイベント情報を、既定のイベント又はサブイベントの定義と比較し、その比較に基づいて、イベント又はサブイベントを判定するか、あるいはイベント又はサブイベントの状態を判定若しくは更新する。一部の実施形態では、イベント比較部２８４は、イベント定義２８６を含む。イベント定義２８６は、例えばイベント１（２８７−１）及びイベント２（２８７−２）などのイベント（例えば既定のサブイベントのシーケンス）の定義を含む。一部の実施形態では、イベント（２８７）内のサブイベントは、例えば、タッチの開始、タッチの終了、タッチの移動、タッチの取り消し、及び複数のタッチを含む。一実施例では、イベント１（２８７−１）についての定義は、表示されたオブジェクト上のダブルタップである。ダブルタップは、例えば、所定の段階に対する表示オブジェクト上の第１のタッチ（タッチ開始）、所定の段階に対する第１のリフトオフ（タッチ終了）、所定の段階に対する表示オブジェクト上の第２のタッチ（タッチ開始）、及び所定の段階に対する第２のリフトオフ（タッチ終了）を含む。別の実施例では、イベント２（２８７−２）の定義は、表示されたオブジェクト上のドラッグである。ドラッグは、例えば、所定の段階に対する表示オブジェクト上のタッチ（又は接触）、タッチ感知ディスプレイ２１２におけるタッチの移動、及びタッチのリフトオフ（タッチ終了）を含む。一部の実施形態では、イベントはまた、１つ以上の関連付けられたイベント処理部２９０に関する情報を含む。
【０１１５】
一部の実施形態では、イベント定義２８７は、それぞれのユーザインタフェースオブジェクトに関するイベントの定義を含む。一部の実施形態では、イベント比較部２８４は、どのユーザインタフェースオブジェクトがサブイベントに関連付けられているかを判定するヒットテストを実行する。例えば、タッチ感知ディスプレイ２１２上に３つのユーザインタフェースオブジェクトが表示されているアプリケーションビューでは、タッチ感知ディスプレイ２１２上でタッチが検出されると、イベント比較部２８４は、３つのユーザインタフェースオブジェクトのうちのどれがそのタッチ（サブイベント）と関連付けられているかを判定するために、ヒットテストを実行する。表示された各オブジェクトが、それぞれのイベント処理部２９０に関連付けられている場合、イベント比較部は、ヒットテストの結果を使用して、どのイベント処理部２９０をアクティブ化すべきかを判定する。例えば、イベント比較部２８４は、ヒットテストをトリガするサブイベント及びオブジェクトに関連付けられたイベント処理部を選択する。
【０１１６】
一部の実施形態では、それぞれのイベント（２８７）に対する定義はまた、サブイベントシーケンスがイベント認識部のイベントタイプに対応するか否かが判定される後までイベント情報の配信を遅延する遅延アクションを含む。
【０１１７】
それぞれのイベント認識部２８０が一連のサブイベントがイベント定義２８６のイベントのうちのいずれとも一致しないと判定した場合には、それぞれのイベント認識部２８０は、イベント不可能、イベント失敗、又はイベント終了の状態に入り、その後は、タッチによるジェスチャの後続のサブイベントを無視する。この状況では、ヒットビューについてアクティブのままである他のイベント認識部があれば、そのイベント認識部は、進行中のタッチによるジェスチャのサブイベントの追跡及び処理を続行する。
【０１１８】
一部の実施形態では、それぞれのイベント認識部２８０は、イベント配信システムがどのようにサブイベント配信を実行すべきかをアクティブに関与しているイベント認識部に示す構成可能なプロパティ、フラグ、及び／又はリストを有するメタデータ２８３を含む。一部の実施形態では、メタデータ２８３は、イベント認識部が互いにどのように対話するか、又は互いにどのように対話することができるようになっているかを示す構成可能なプロパティ、フラグ、及び／又はリストを含む。一部の実施形態では、メタデータ２８３は、サブイベントがビュー階層又はプログラム階層における多様なレベルに配信されるかを示す構成可能なプロパティ、フラグ、及び／又はリストを含む。
【０１１９】
一部の実施形態では、それぞれのイベント認識部２８０は、イベントの１つ以上の特定のサブイベントが認識されるときに、イベントに関連付けられたイベント処理部２９０をアクティブ化する。一部の実施形態では、それぞれのイベント認識部２８０は、イベントに関連付けられたイベント情報をイベント処理部２９０に配信する。イベント処理部２９０をアクティブ化することは、それぞれのヒットビューにサブイベントを送信する（及び、送信を延期する）こととは別個である。一部の実施形態では、イベント認識部２８０は、認識したイベントと関連付けられたフラグを投入し、そのフラグと関連付けられたイベント処理部２９０は、そのフラグを捕らえ、既定のプロセスを実行する。
【０１２０】
一部の実施形態では、イベント配信命令２８８は、イベント処理部をアクティブ化することなくサブイベントに関するイベント情報を配信するサブイベント配信命令を含む。代わりに、サブイベント配信命令は、一連のサブイベントと関連付けられたイベント処理部に、又はアクティブに関与しているビューにイベント情報を配信する。一連のサブイベント又はアクティブに関与しているビューと関連付けられたイベント処理部は、イベント情報を受信し、所定の処理を実行する。
【０１２１】
一部の実施形態では、データ更新部２７６は、アプリケーション２３６−１で使用されるデータを作成及び更新する。例えば、データ更新部２７６は、連絡先モジュール２３７で使用される電話番号を更新し、又はビデオプレーヤモジュールで使用されるビデオファイルを記憶する。一部の実施形態では、オブジェクト更新部２７７は、アプリケーション２３６−１で使用されるオブジェクトを作成及び更新する。例えば、オブジェクト更新部２７７は、新たなユーザインタフェースオブジェクトを作成し、又はユーザインタフェースオブジェクトの位置を更新する。ＧＵＩ更新部２７８は、ＧＵＩを更新する。例えば、ＧＵＩ更新部２７８は、表示情報を準備し、その表示情報をタッチ感知ディスプレイ上に表示するためにグラフィックモジュール２３２に送信する。
【０１２２】
一部の実施形態では、イベント処理部（単数又は複数）２９０は、データ更新部２７６、オブジェクト更新部２７７、及びＧＵＩ更新部２７８を含むか又はそれらへのアクセスを有する。一部の実施形態では、データ更新部２７６、オブジェクト更新部２７７、及びＧＵＩ更新部２７８は、それぞれのアプリケーション２３６−１又はアプリケーションビュー２９１の単一モジュールに含まれる。他の実施形態では、それらは、２つ以上のソフトウェアモジュールに含まれる。
【０１２３】
タッチ感知ディスプレイ上のユーザタッチのイベント処理に関する上記の論考は、入力デバイスを有する多機能デバイス２００を動作させるためのユーザ入力の他の形態にも当てはまり、それらのユーザ入力が必ずしも全てがタッチスクリーン上で開始されるとは限らないことが理解されよう。例えば、キーボードの単一又は複数の押圧若しくは保持と任意選択的に連携される、マウスの移動及びマウスボタンの押圧、タッチパッド上のタップ、ドラッグ、スクロールなどの接触の移動、ペンスタイラス入力、デバイスの移動、口頭による命令、検出された眼球運動、バイオメトリック入力、並びに／又はそれらの任意の組み合わせを、任意選択的に、認識するイベントを定義するサブイベントに対応する入力として利用する。
【０１２４】
図３は、一部の実施形態による、タッチスクリーン２１２を有するポータブル多機能デバイス２００を示す。タッチスクリーンは、任意選択的に、ユーザインタフェース（user interface、ＵＩ）３００内に１つ以上のグラフィックを表示する。本実施形態、並びに以下で説明される他の実施形態では、ユーザは、例えば、１本以上の指３０２（図には正確な縮尺では描かれていない）又は１つ以上のスタイラス３０３（図には正確な縮尺では描かれていない）を用いて、グラフィック上でジェスチャを行うことによって、それらのグラフィックのうちの１つ以上を選択することが可能となる。一部の実施形態では、１つ以上のグラフィックの選択は、ユーザが、その１つ以上のグラフィックとの接触を中断する場合に実施される。一部の実施形態では、ジェスチャは、任意選択的に、１回以上のタップ、１回以上のスワイプ（左から右へ、右から左へ、上方向へ、及び／若しくは下方向へ）、並びに／又はデバイス２００と接触した指の回転（右から左へ、左から右へ、上方向へ、及び／若しくは下方向へ）を含む。一部の実装形態又は状況では、グラフィックとの不測の接触は、そのグラフィックを選択するものではない。例えば、選択に対応するジェスチャがタップである場合、アプリケーションアイコンの上をスイープするスワイプジェスチャは、任意選択的に、対応するアプリケーションを選択するものではない。
【０１２５】
デバイス２００はまた、「ホーム」又はメニューボタン３０４などの１つ以上の物理ボタンを含む。上記で説明されているように、メニューボタン３０４は、デバイス２００上で実行されるアプリケーションのセット内の任意のアプリケーション２３６にナビゲーションするために用いられる。あるいは、一部の実施形態では、メニューボタンは、タッチスクリーン２１２上に表示されるＧＵＩ内のソフトキーとして実装される。
【０１２６】
一実施形態では、デバイス２００は、タッチスクリーン２１２、メニューボタン３０４、デバイスの電源をオン／オフし、デバイスをロックするためのプッシュボタン３０６、音量調節ボタン（単数又は複数）３０８、加入者識別モジュール（ＳＩＭ）カードスロット３１０、ヘッドセットジャック３１２、及びドッキング／充電用外部ポート２２４、を含む。プッシュボタン３０６は、任意選択的に、ボタンを押し下げて、既定の期間にわたってボタンを押し下げた状態に保持することによって、デバイスの電源をオン／オフするため、ボタンを押し下げて、既定の時間が経過する前にボタンを解放することによってデバイスをロックするため、及び／又はデバイスをロック解除する、若しくはロック解除プロセスを開始するために、使用され得る。代替的な実施形態では、デバイス２００はまた、マイクロフォン２１３を介して、いくつかの機能をアクティブ化又は非アクティブ化するための口頭入力を受け入れる。デバイス２００はまた、任意選択的に、タッチスクリーン２１２上の接触の強度を検出する１つ以上の接触強度センサ２６５、及び／又はデバイス２００のユーザに対する触知出力を生成する１つ以上の触知出力生成器２６７を含む。
【０１２７】
図４は、一部の実施形態による、ディスプレイ及びタッチ感知面を有する例示的な多機能デバイスのブロック図である。デバイス４００は、ポータブル型である必要はない。一部の実施形態では、デバイス４００は、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、マルチメディアプレーヤデバイス、ナビゲーションデバイス、教育的デバイス（子供の学習玩具など）、ゲームシステム、又は制御デバイス（例えば、家庭用又は業務用コントローラ）である。デバイス４００は、典型的には、１つ以上の処理ユニット（ＣＰＵ）４１０、１つ以上のネットワーク又は他の通信インタフェース４６０、メモリ４７０、及びこれらの構成要素を相互接続する１つ以上の通信バス４２０を含む。通信バス４２０は、任意選択的に、システム構成要素間の通信を相互接続及び制御する回路（チップセットと呼ばれることもある）を含む。デバイス４００は、ディスプレイ４４０を備える入出力（Ｉ／Ｏ）インタフェース４３０を含み、ディスプレイ４４０は、典型的には、タッチスクリーンディスプレイである。Ｉ／Ｏインタフェース４３０はまた、任意選択的に、キーボード及び／又はマウス（又は、他のポインティングデバイス）４５０、並びに、タッチパッド４５５、デバイス４００上に触知出力を生成するための（例えば、図２Ａを参照して上述された触知出力生成器２６７（単数又は複数）と同様の）触知出力生成器４５７、センサ４５９（例えば、光センサ、加速度センサ、近接センサ、タッチ感知センサ、及び／又は、図２Ａを参照して上述された接触強度センサ（単数又は複数）２６５と同様の接触強度センサ）も含む。メモリ４７０は、ＤＲＡＭ、ＳＲＡＭ、ＤＤＲ  ＲＡＭ、又は他のランダムアクセスソリッドステートメモリデバイスなどの高速ランダムアクセスメモリを含み、任意選択的に、１つ以上の磁気ディスク記憶デバイス、光ディスク記憶デバイス、フラッシュメモリデバイス、又は他の不揮発性ソリッドステート記憶デバイスなどの不揮発性メモリを含む。メモリ４７０は、任意選択的に、ＣＰＵ（単数又は複数）４１０からリモートに位置する１つ以上の記憶デバイスを含む。一部の実施形態では、メモリ４７０は、ポータブル多機能デバイス２００（図２Ａ）のメモリ２０２内に記憶されているプログラム、モジュール、及びデータ構造に類似する、プログラム、モジュール、及びデータ構造、若しくはそれらのサブセットを記憶している。更に、メモリ４７０は、任意選択的に、ポータブル多機能デバイス２００のメモリ２０２に存在しない追加のプログラム、モジュール、及びデータ構造を記憶する。例えば、デバイス４００のメモリ４７０は、任意選択的に、描画モジュール４８０、プレゼンテーションモジュール４８２、ワードプロセッシングモジュール４８４、ウェブサイト作成モジュール４８６、ディスクオーサリングモジュール４８８、及び／又はスプレッドシートモジュール４９０を記憶しているが、その一方で、ポータブル多機能デバイス２００（図２Ａ）のメモリ２０２は、任意選択的に、これらのモジュールを記憶していない。
【０１２８】
図４中の上記で特定された各要素は、いくつかの例では、上記で言及されたメモリデバイスのうちの任意の１つ以上に格納される。上記で特定したモジュールはそれぞれ、前述した機能を実行する命令セットに対応する。上記で特定されたモジュール又はプログラム（例えば、命令のセット）は、別個のソフトウェアプログラム、手順、又はモジュールとして実装される必要はなく、したがって、これらのモジュールの様々なサブセットは、様々な実施形態において結合されるか、さもなければ再構成される。一部の実施形態では、メモリ４７０は、上記で特定されたモジュール及びデータ構造のサブセットを記憶する。更に、メモリ４７０は、上述しない追加モジュール及びデータ構造を記憶する。
【０１２９】
ここで、例えば、ポータブル多機能デバイス２００に実装することができるユーザインタフェースの実施形態に注目する。
【０１３０】
図５Ａは、一部の実施形態による、ポータブル多機能デバイス２００上のアプリケーションのメニューに関する、例示的なユーザインタフェースを示す。類似のユーザインタフェースは、デバイス４００に実装される。一部の実施形態では、ユーザインタフェース５００は、以下の要素、又はそれらのサブセット若しくはスーパーセットを含む。
【０１３１】
セルラー信号及びＷｉ−Ｆｉ信号などの無線通信（単数又は複数）に関する信号強度インジケータ（単数又は複数）５０２、
●時刻５０４、
●Ｂｌｕｅｔｏｏｔｈインジケータ５０５、
●バッテリ状態インジケータ５０６、
●以下のような、頻繁に使用されるアプリケーションのアイコンを有するトレイ５０８
○不在着信又はボイスメールメッセージの数のインジケータ５１４を任意選択的に含む、「電話」とラベル付けされた、電話モジュール２３８用のアイコン５１６、
○未読電子メールの数のインジケータ５１０を任意選択的に含む、「メール」とラベル付けされた、電子メールクライアントモジュール２４０のアイコン５１８、
○「ブラウザ」とラベル付けされた、ブラウザモジュール２４７用のアイコン５２０、及び
○「ｉＰｏｄ」とラベル付けされた、ｉＰｏｄ（Ａｐｐｌｅ  Ｉｎｃ．の商標）モジュール２５２とも呼ばれるビデオ及び音楽プレーヤモジュール２５２用のアイコン５２２、並びに
●以下のような、他のアプリケーションのアイコン、
○「メッセージ」とラベル付けされた、ＩＭモジュール２４１用のアイコン５２４、
○「カレンダー」とラベル付けされた、カレンダーモジュール２４８用のアイコン５２６、
○「写真」とラベル付けされた、画像管理モジュール２４４用のアイコン５２８、
○「カメラ」とラベル付けされた、カメラモジュール２４３用のアイコン５３０、
○「オンラインビデオ」とラベル付けされた、オンラインビデオモジュール２５５用のアイコン５３２、
○「株価」とラベル付けされた、株式ウィジェット２４９−２用のアイコン５３４、
○「地図」とラベル付けされた、地図モジュール２５４用のアイコン５３６、
○「天気」とラベル付けされた、気象ウィジェット２４９−１用のアイコン５３８、
○「時計」とラベル付けされた、目覚まし時計ウィジェット２４９−４用のアイコン５４０、
○「トレーニングサポート」とラベル付けされた、トレーニングサポートモジュール２４２用のアイコン５４２、
○「メモ」とラベル付けされた、メモモジュール２５３用のアイコン５４４、及び
○デバイス２００及びその様々なアプリケーション２３６についての設定へのアクセスを提供する、「設定」とラベル付けされた、設定アプリケーション又はモジュール用のアイコン５４６。
【０１３２】
図５Ａに示されるアイコンのラベルは、単なる例示であることに留意されたい。例えば、ビデオ及び音楽プレーヤモジュール２５２用のアイコン５２２は、任意選択的に、「ミュージック」又は「音楽プレーヤ」とラベル付けされる。他のラベルが、様々なアプリケーションアイコンのために、任意選択的に使用される。一部の実施形態では、それぞれのアプリケーションアイコンに関するラベルは、それぞれのアプリケーションアイコンに対応するアプリケーションの名前を含む。一部の実施形態では、特定のアプリケーションアイコンのラベルは、その特定のアプリケーションアイコンに対応するアプリケーションの名前とは異なる。
【０１３３】
図５Ｂは、ディスプレイ５５０（例えば、タッチスクリーンディスプレイ２１２）とは別個のタッチ感知面５５１（例えば、図４のタブレット又はタッチパッド４５５）を有するデバイス（例えば、図４のデバイス４００）上の、例示的なユーザインタフェースを示す。デバイス４００はまた、任意選択的に、タッチ感知面５５１上の接触の強度を検出する１つ以上の接触強度センサ（例えば、センサ４５７のうちの１つ以上）、及び／又はデバイス４００のユーザに対する触知出力を生成する１つ以上の触知出力生成器４５９を含む。
【０１３４】
以下の実施例のうちのいくつかはタッチスクリーンディスプレイ２１２上の入力（タッチ感知面とディスプレイとが組み合わされている場合）を参照して説明されるが、一部の実施形態では、デバイスは、図５Ｂに示されるように、ディスプレイとは別個のタッチ感知面上の入力を検出する。一部の実施形態では、このタッチ感知面（例えば、図５Ｂでの５５１）は、ディスプレイ（例えば、５５０）上の主軸（例えば、図５Ｂでの５５３）に対応する主軸（例えば、図５Ｂでの５５２）を有する。これらの実施形態によれば、デバイスは、ディスプレイ上のそれぞれの場所に対応する場所での、タッチ感知面５５１との接触（例えば、図５Ｂの５６０及び５６２）を検出する（例えば、図５Ｂでは、５６０は５６８に対応し、５６２は５７０に対応する）。この方式で、タッチ感知面がディスプレイとは別個のものである場合、タッチ感知面（例えば、図５Ｂでの５５１）上でデバイスによって検出されたユーザ入力（例えば、接触５６０及び接触５６２、並びにそれらの移動）が、多機能デバイスのディスプレイ（例えば、図５Ｂでの５５０）上のユーザインタフェースを操作するために、デバイスによって使用される。同様の方法が、本明細書に記載の他のユーザインタフェースに任意選択的に使用されることを理解されたい。
【０１３５】
加えて、以下の例は、主に指入力（例えば、指接触、指タップジェスチャ、指スワイプジェスチャ）を参照して与えられるが、一部の実施形態では、指入力のうちの１つ以上は、別の入力デバイスからの入力（例えば、マウスベースの入力又はスタイラス入力）に置き換えられることを理解されたい。例えば、スワイプジェスチャは、（例えば、接触の代わりの）マウスクリックに続けた、（例えば、接触の移動の代わりの）スワイプの経路に沿ったカーソルの移動によって、任意選択的に置き換えられる。別の例として、タップジェスチャは、任意選択的に、カーソルがタップジェスチャの位置の上に位置する間はマウスクリックと置き換えられる（例えば、接触を検出して、それに続いて接触の検出を停止する代わりに）。同様に、複数のユーザ入力が同時に検出されるとき、複数のコンピュータマウスが、任意選択的に、同時に使用され、又はマウス及び指の接触が、任意選択的に、同時に使用されることを理解されたい。
【０１３６】
図６Ａは、例示的なパーソナル電子デバイス６００を示す。デバイス６００は、本体６０２を含む。一部の実施形態では、デバイス６００は、デバイス２００及び４００（例えば、図２Ａ〜図４）に関連して説明した特徴のいくつか又は全てを含む。一部の実施形態では、デバイス６００は、タッチ感知ディスプレイスクリーン６０４、以下ではタッチスクリーン６０４、を有する。代替的に、又はタッチスクリーン６０４に加えて、デバイス６００は、ディスプレイ及びタッチ感知面を有する。デバイス２００及び４００と共に、一部の実施形態では、タッチスクリーン６０４（又はタッチ感知面）は、適用される接触（例えば、タッチ）の強度を検出する１つ以上の強度センサを有する。タッチスクリーン６０４（又はタッチ感知面）の１つ以上の強度センサは、タッチの強度を表す出力データを提供する。デバイス６００のユーザインタフェースは、タッチの強度に基づいてタッチに応答するが、これは、異なる強度のタッチが、デバイス６００上に異なるユーザインタフェース動作を呼び出すことができることを意味する。
【０１３７】
タッチ強度を検出して処理する技術は、例えば、関連出願：２０１３年５月８日に出願された国際特許出願第ＰＣＴ／ＵＳ２０１３／０４００６１号の「Ｄｅｖｉｃｅ，Ｍｅｔｈｏｄ，ａｎｄ  Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  ｆｏｒ  Ｄｉｓｐｌａｙｉｎｇ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ｏｂｊｅｃｔｓ  Ｃｏｒｒｅｓｐｏｎｄｉｎｇ  ｔｏ  ａｎ  Ａｐｐｌｉｃａｔｉｏｎ」、及び２０１３年１１月１１日に出願された国際特許出願第ＰＣＴ／ＵＳ２０１３／０６９４８３号の「Ｄｅｖｉｃｅ，Ｍｅｔｈｏｄ，ａｎｄ  Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  ｆｏｒ  Ｔｒａｎｓｉｔｉｏｎｉｎｇ  Ｂｅｔｗｅｅｎ  Ｔｏｕｃｈ  Ｉｎｐｕｔ  ｔｏ  Ｄｉｓｐｌａｙ  Ｏｕｔｐｕｔ Ｒｅｌａｔｉｏｎｓｈｉｐｓ」に見出すことができ、これらのそれぞれは、全体が参照により本明細書に組み込まれる。
【０１３８】
一部の実施形態では、デバイス６００は、１つ以上の入力機構６０６及び６０８を有する。入力機構６０６及び６０８は、含まれる場合、物理的である。物理的入力機構の例としては、プッシュボタン及び回転可能機構が挙げられる。一部の実施形態では、デバイス６００は、１つ以上のアタッチメント機構を有する。そのようなアタッチメント機構は、含まれる場合、例えば帽子、アイウェア、イアリング、ネックレス、シャツ、ジャケット、ブレスレット、腕時計のバンド、チェーン、ズボン、ベルト、靴、財布、バックパックなどにデバイス６００を取り付けることを可能にすることができる。これらのアタッチメント機構は、ユーザがデバイス６００を着用することを可能にする。
【０１３９】
図６Ｂは、例示的なパーソナル電子デバイス６００を示す。一部の実施形態では、デバイス６００は、図２Ａ、図２Ｂ、及び図４に関連して説明された構成要素のいくつか又は全てを含む。デバイス６００は、Ｉ／Ｏ部６１４を１つ以上のコンピュータプロセッサ６１６及びメモリ６１８に動作可能に結合するバス６１２を有する。Ｉ／Ｏ部６１４は、タッチ感知構成要素６２２、及び任意選択的にタッチ強度感知構成要素６２４を有し得るディスプレイ６０４に接続される。これに加えて、Ｉ／Ｏ部６１４は、Ｗｉ−Ｆｉ、Ｂｌｕｅｔｏｏｔｈ、近距離通信（ＮＦＣ）、セルラー、及び／又は他の無線通信技術を使用して、アプリケーション及びオペレーティングシステムデータを受信する通信ユニット６３０に接続される。デバイス６００は、入力機構６０６及び／又は６０８を含む。入力機構６０６は、例えば、回転可能な入力デバイス又は押圧可能及び回転可能な入力デバイスである。入力機構６０８は、いくつかの例では、ボタンである。
【０１４０】
入力機構６０８は、いくつかの例では、マイクロフォンである。パーソナル電子デバイス６００は、例えば、ＧＰＳセンサ６３２、加速度計６３４、方向センサ６４０（例えばコンパス）、ジャイロスコープ６３６、動きセンサ６３８、及び／又はこれらの組み合わせなどの各種センサを含み、これらの全てはＩ／Ｏ部６１４に動作可能に接続される。
【０１４１】
パーソナル電子デバイス６００のメモリ６１８は、コンピュータ実行可能命令を記憶する非一時的コンピュータ可読記憶媒体であり、例えば、１つ以上のコンピュータプロセッサ６１６によって実行されると、コンピュータプロセッサに以下の技術及び処理を実行させる。それらのコンピュータ実行可能命令はまた、例えば、コンピュータベースのシステム、プロセッサを含むシステム、又は、命令実行システム、装置、若しくはデバイスから命令をフェッチし、それらの命令を実行することが可能な他のシステムなどの、命令実行システム、装置、又はデバイスによって使用するために、あるいはそれらと関連して使用するために、任意の非一時的コンピュータ可読記憶媒体内に、記憶及び／又は伝送される。パーソナル電子デバイス６００は、図６Ｂの構成要素及び構成に限定されるものではなく、他の構成要素又は追加的構成要素を、複数の構成で含み得る。
【０１４２】
本明細書で使用されるとき、用語「アフォーダンス」は、例えば、デバイス２００、４００、及び／又は６００（図２、図４、及び図６）のディスプレイ画面上に表示されるユーザ対話式のグラフィカルユーザインタフェースオブジェクトを指す。例えば、画像（例えば、アイコン）、ボタン、及びテキスト（例えば、ハイパーリンク）はそれぞれ、アフォーダンスを構成する。
【０１４３】
本明細書で使用される「フォーカスセレクタ」という用語は、ユーザが対話しているユーザインタフェースの現在の部分を示す入力要素を指す。カーソル又は他の位置マーカを含む一部の実装形態では、そのカーソルは「フォーカスセレクタ」としての役割を果たすことにより、特定のユーザインタフェース要素（例えば、ボタン、ウィンドウ、スライダ、又は他のユーザインタフェース要素）の上にカーソルが存在している間に、入力（例えば、押圧入力）がタッチ感知面（例えば、図４でのタッチパッド４５５、又は図５Ｂでのタッチ感知面５５１）上で検出されると、その特定のユーザインタフェース要素が、検出された入力に従って調節される。タッチスクリーンディスプレイ上のユーザインタフェース要素との直接的な対話を可能にする、タッチスクリーンディスプレイ（例えば、図２Ａでのタッチ感知ディスプレイシステム２１２、又は図５Ａでのタッチスクリーン２１２）を含む一部の実装形態では、タッチスクリーン上で検出される接触が「フォーカスセレクタ」としての役割を果たすことにより、入力（例えば、接触による押圧入力）が、タッチスクリーンディスプレイ上の特定のユーザインタフェース要素（例えば、ボタン、ウィンドウ、スライダ、又は他のユーザインタフェース要素）の場所で検出されると、その特定のユーザインタフェース要素が、検出された入力に従って調節される。一部の実装形態では、タッチスクリーンディスプレイ上の対応するカーソルの移動又は接触の移動（例えば、フォーカスを１つのボタンから別のボタンへ動かすためにタブキー又は矢印キーを使用することによる）なく、フォーカスがユーザインタフェースの１つの領域からユーザインタフェースの別の領域へ動かされ、これらの実装形態では、フォーカスセレクタは、ユーザインタフェースの種々の領域間でのフォーカスの移動に従って移動する。フォーカスセレクタがとる特有の形態にかかわらず、フォーカスセレクタは、概して、ユーザインタフェース要素（又はタッチスクリーンディスプレイ上の接触）であり、ユーザの意図する対話をユーザインタフェースによって通信するように、ユーザによって制御される（例えば、ユーザが対話することを意図しているユーザインタフェースの要素をデバイスに示すことによる）。例えば、タッチ感知面（例えば、タッチパッド又はタッチスクリーン）上で押圧入力が検出されている間の、対応のボタンの上のフォーカスセレクタ（例えば、カーソル、接触、又は選択ボックス）の位置は、その対応のボタンを（そのデバイスのディスプレイ上に示される他のユーザインタフェース要素ではなく）アクティブ化することをユーザが意図していることを示すものである。
【０１４４】
本明細書及び特許請求の範囲で使用される、接触の「特性強度」という用語は、接触の１つ以上の強度に基づく、その接触の特性を指す。一部の実施形態では、特性強度は複数の強度サンプルに基づく。特性強度は、任意選択的に、既定の数の強度サンプル、すなわち、既定のイベント（例えば、接触を検出した後、接触のリフトオフを検出する前、接触の移動の開始を検出する前若しくは後、接触の終了を検出する前、接触の強度の増大を検出する前若しくは後、及び／又は、接触の強度の減少を検出する前若しくは後の）に関連する既定の時間期間（例えば、０．０５、０．１、０．２、０．５、１、２、５、１０秒）の間に収集された強度サンプルのセットに基づく。接触の特性強度は、任意選択的に、接触の強度の最大値、接触の強度の中間値、接触の強度の平均値、接触の強度の上位１０パーセント値、接触の強度の最大値の半分の値、接触の強度の最大値の９０パーセントの値などのうちの１つ以上に基づく。一部の実施形態では、特性強度を判定する際に（例えば、特性強度が経時的な接触の強度の平均であるときに）、接触の持続期間が使用される。一部の実施形態では、特性強度は、ユーザによって動作が実行されたかどうかを判定するために、１つ以上の強度閾値のセットと比較される。例えば、１つ以上の強度閾値のセットは、第１の強度閾値と第２の強度閾値とを含む。この例では、第１の閾値を超過しない特性強度を有する接触は、第１の動作をもたらし、第１の強度閾値を超過するが第２の強度閾値を超過しない特性強度を有する接触は、第２の動作をもたらし、第２の閾値を超過する特性強度を有する接触は、第３の動作をもたらす。一部の実施形態では、特性強度と１つ以上の閾値との比較は、第１の動作又は第２の動作のいずれを実行するかを判定するために使用されるのではなく、１つ以上の動作を実行するか否か（例えば、それぞれの動作を実行するか、又はそれぞれの動作の実行を取り止めるか）を判定するために使用される。
【０１４５】
一部の実施形態では、特性強度を判定する目的のために、ジェスチャの一部分が特定される。例えば、タッチ感知面は、接触強度が増加する開始位置点から終了位置点に移行する連続スワイプ接触を受け取る。この例では、終了位置における接触の特性強度は、スワイプ接触全体（例えば、終了位置でのスワイプ接触の一部分のみ）ではなく、連続スワイプ接触の一部分のみに基づく。一部の実施形態では、平滑化アルゴリズムは、接触の特性強度を判定する前に、スワイプ接触の強度に適用される。例えば、平滑化アルゴリズムは、任意選択的に、非加重移動平均平滑化アルゴリズム、三角平滑化アルゴリズム、中央値フィルタ平滑化アルゴリズム、及び／又は指数平滑化アルゴリズムのうちの１つ以上を含む。いくつかの状況では、これらの平滑化アルゴリズムは、特性強度を判定する目的のために、スワイプ接触の強度の小幅な上昇又は降下を排除する。
【０１４６】
タッチ感知面上の接触の強度は、接触検出強度閾値、軽い押圧強度閾値、深い押圧強度閾値、及び／又は１つ以上の他の強度閾値などの１つ以上の強度閾値に対して特徴付けられる。一部の実施形態では、軽い押圧強度閾値は、通常、物理マウスのボタン又はトラックパッドをクリックすることに関連付けられた動作をデバイスが実行する強度に相当する。一部の実施形態では、深い押圧強度閾値は、通常、物理マウスのボタン又はトラックパッドをクリックすることに関連付けられた動作とは異なる動作をデバイスが実行する強度に相当する。一部の実施形態では、軽い押圧強度閾値を下回る（例えば、それを下回ると接触が検出されなくなる公称接触検出強度閾値を上回る）特性強度を有する接触が検出されたとき、デバイスは、軽い押圧強度閾値又は深い押圧強度閾値に関連付けられた動作を実行することなく、タッチ感知面上の接触の移動に従ってフォーカスセレクタを動かす。一般に、特に明記しない限り、これらの強度閾値は、ユーザインタフェース図の様々なセットの間で一貫している。
【０１４７】
軽い押圧強度閾値を下回る強度から、軽い押圧強度閾値と深い押圧強度閾値との間の強度への、接触の特性強度の増大は、「軽い押圧」の入力と呼ばれることがある。深い押圧強度閾値を下回る強度から、深い押圧強度閾値を上回る強度への、接触の特性強度の増大は、「深い押圧」の入力と呼ばれることがある。接触検出強度閾値を下回る強度から、接触検出強度閾値と軽い押圧強度閾値との間の強度への、接触の特性強度の増大は、タッチ面上の接触の検出と呼ばれることがある。接触検出強度閾値を上回る強度から、接触検出強度閾値を下回る強度への、接触の特性強度の減少は、タッチ面からの接触のリフトオフの検出と呼ばれることがある。一部の実施形態では、接触検出強度閾値はゼロである。一部の実施形態では、接触検出強度閾値は、ゼロより大きい。
【０１４８】
本明細書に記載する一部の実施形態では、それぞれの押圧入力を含むジェスチャを検出したことに応じて、又はそれぞれの接触（若しくは複数の接触）によって実行されたそれぞれの押圧入力を検出したことに応じて、１つ以上の動作が実行され、それぞれの押圧入力は、押圧入力強度閾値を上回る接触（又は複数の接触）の強度の増大を検出したことに少なくとも部分的に基づいて検出される。一部の実施形態では、それぞれの動作は、押圧入力強度閾値を上回るそれぞれの接触の強度の増大（例えば、それぞれの押圧入力の「ダウンストローク」）を検出したことに応じて実行される。一部の実施形態では、押圧入力は、押圧入力強度閾値を上回るそれぞれの接触の強度の増大、及びそれに続く押圧入力強度閾値を下回る接触の強度の減少を含み、それぞれの動作は、それに続く押圧入力閾値を下回るそれぞれの接触の強度の減少（例えば、それぞれの押圧入力の「アップストローク」）を検出したことに応じて実行される。
【０１４９】
一部の実施形態では、デバイスは、「ジッタ」と呼ばれる場合がある偶発的な入力を回避するために強度ヒステリシスを採用し、デバイスは、押圧入力強度閾値との既定の関係を有するヒステリシス強度閾値を定義又は選択する（例えば、ヒステリシス強度閾値は、押圧入力強度閾値よりも低いＸ強度単位であり、又はヒステリシス強度閾値は、押圧入力強度閾値の７５％、９０％、若しくは何らかの妥当な割合である）。したがって、一部の実施形態では、押圧入力は、押圧入力強度閾値を上回るそれぞれの接触の強度の増大、及びそれに続く押圧入力強度閾値に対応するヒステリシス強度閾値を下回る接触の強度の減少を含み、それぞれの動作は、それに続くヒステリシス強度閾値を下回るそれぞれの接触の強度の減少（例えば、それぞれの押圧入力の「アップストローク」）を検出したことに応じて実行される。同様に、一部の実施形態では、押圧入力は、デバイスが、ヒステリシス強度閾値以下の強度から押圧入力強度閾値以上の強度への接触の強度の増大、及び任意選択的に、その後のヒステリシス強度以下の強度への接触の強度の減少を検出するときにのみ検出され、それぞれの動作は、押圧入力（例えば、状況に応じて、接触の強度の増大又は接触の強度の減少）を検出したことに応じて実行される。
【０１５０】
説明を容易にするために、押圧入力強度閾値に関連付けられた押圧入力、又は押圧入力を含むジェスチャに応じて実行される動作の説明は、任意選択的に、押圧入力強度閾値を上回る接触の強度の増大、ヒステリシス強度閾値を下回る強度から押圧入力強度閾値を上回る強度への接触の強度の増大、押圧入力強度閾値を下回る接触の強度の減少、及び／又は押圧入力強度閾値に対応するヒステリシス強度閾値を下回る接触の強度の減少のいずれかを検出したことに応じてトリガされる。更に、押圧入力強度閾値を下回る接触の強度の減少を検出したことに応じて実行されるように動作が記載される例では、動作は、任意選択的に、押圧入力強度閾値に対応し、かつそれよりも低いヒステリシス強度閾値を下回る接触の強度の減少を検出したことに応じて実行される。
３．デジタルアシスタントシステム
【０１５１】
図７Ａは、様々な実施例による、デジタルアシスタントシステム７００のブロック図を示す。一部の実施例では、デジタルアシスタントシステム７００は、スタンドアロン型コンピュータシステム上に実装される。一部の実施例では、デジタルアシスタントシステム７００は、複数のコンピュータにわたって分散される。いくつかの実施例では、デジタルアシスタントのモジュール及び機能のうちのいくつかは、サーバ部分及びクライアント部分に分割され、クライアント部分は、例えば、図１に示すように、１つ以上のユーザデバイス（例えば、デバイス１０４、１２２、２００、４００、又は６００）上に常駐し、１つ以上のネットワークを通じてサーバ部分（例えば、サーバシステム１０８）と通信する。一部の実施例では、デジタルアシスタントシステム７００は、図１に示されるサーバシステム１０８（及び／又は、ＤＡサーバ１０６）の実装形態である。デジタルアシスタントシステム７００は、デジタルアシスタントシステムの一実施例に過ぎず、デジタルアシスタントシステム７００は、示されているものよりも多くの構成要素又は少ない構成要素を有し得るものであり、２つ以上の構成要素を組み合わせることもでき、又は、それらの構成要素の異なる構成若しくは配置を有し得ることに留意されたい。図７Ａに示される様々な構成要素は、１つ以上の信号処理回路及び／又は特定用途向け集積回路を含めたハードウェア、１つ以上のプロセッサによって実行されるソフトウェア命令、ファームウェア、若しくはそれらの組み合わせとして実装される。
【０１５２】
デジタルアシスタントシステム７００は、メモリ７０２、１つ以上のプロセッサ７０４、入出力（Ｉ／Ｏ）インタフェース７０６、及びネットワーク通信インタフェース７０８を含む。これらの構成要素は、１つ以上の通信バス又は信号ライン７１０を介して互いに通信することができる。
【０１５３】
一部の実施例では、メモリ７０２は、高速ランダムアクセスメモリ及び／又は不揮発性コンピュータ可読記憶媒体（例えば、１つ以上の磁気ディスク記憶デバイス、フラッシュメモリデバイス、又は他の不揮発性ソリッドステートメモリデバイス）などの、非一時的コンピュータ可読媒体を含む。
【０１５４】
一部の実施例では、Ｉ／Ｏインタフェース７０６は、ディスプレイ、キーボード、タッチスクリーン、及びマイクロフォンなどの、デジタルアシスタントシステム７００の入出力デバイス７１６を、ユーザインタフェースモジュール７２２に結合する。Ｉ／Ｏインタフェース７０６は、ユーザインタフェースモジュール７２２と連動して、ユーザ入力（例えば、音声入力、キーボード入力、タッチ入力など）を受信し、それらを適宜に処理する。いくつかの実施例では、例えば、デジタルアシスタントがスタンドアロンユーザデバイス上で実装されるとき、デジタルアシスタントシステム７００は、図２Ａ、図４、図６Ａ〜図６Ｂにおいてそれぞれデバイス２００、デバイス４００、又はデバイス６００に関連して説明された構成要素及びＩ／Ｏ通信インタフェースのいずれかを含む。いくつかの実施例では、デジタルアシスタントシステム７００は、デジタルアシスタントの実装形態のサーバ部分を表すことができ、ユーザデバイス（例えば、デバイス１０４、デバイス２００、デバイス４００、又はデバイス６００）上に常駐するクライアント側部分を通じてユーザと対話することができる。
【０１５５】
一部の実施例では、ネットワーク通信インタフェース７０８は、有線通信ポート（単数又は複数）７１２及び／又は無線送受信回路７１４を含む。有線通信ポート（単数又は複数）は、１つ以上の有線インタフェース、例えば、イーサネット、ユニバーサルシリアルバス（ＵＳＢ）、ＦＩＲＥＷＩＲＥなどを介して、通信信号を送受信する。無線回路７１４は、通信ネットワーク及び他の通信デバイスとの間で、ＲＦ信号及び／又は光信号を送受信する。無線通信は、ＧＳＭ、ＥＤＧＥ、ＣＤＭＡ、ＴＤＭＡ、Ｂｌｕｅｔｏｏｔｈ、Ｗｉ−Ｆｉ、ＶｏＩＰ、Ｗｉ−ＭＡＸ、又は任意の他の好適な通信プロトコルなどの、複数の通信規格、通信プロトコル、及び通信技術のうちのいずれかを使用する。ネットワーク通信インタフェース７０８は、デジタルアシスタントシステム７００と、インターネット、イントラネット、並びに／あるいは、セルラー電話ネットワーク、無線ローカルエリアネットワーク（ＬＡＮ）、及び／又はメトロポリタンエリアネットワーク（ＭＡＮ）などの無線ネットワークなどの、ネットワークとの間の、また他のデバイスとの間の、通信を可能にする。
【０１５６】
一部の実施例では、メモリ７０２、又はメモリ７０２のコンピュータ可読記憶媒体は、オペレーティングシステム７１８、通信モジュール７２０、ユーザインタフェースモジュール７２２、１つ以上のアプリケーション７２４、及びデジタルアシスタントモジュール７２６の全て若しくはサブセットを含めた、プログラム、モジュール、命令、及びデータ構造を記憶している。特に、メモリ７０２、又はメモリ７０２のコンピュータ可読記憶媒体は、以下で説明されるプロセスを実行する命令を記憶している。１つ以上のプロセッサ７０４は、これらのプログラム、モジュール、及び命令を実行し、データ構造からの読み出し／データ構造への書き込みを行う。
【０１５７】
オペレーティングシステム７１８（例えば、Ｄａｒｗｉｎ、ＲＴＸＣ、ＬＩＮＵＸ、ＵＮＩＸ、ｉＯＳ、ＯＳ  Ｘ、ＷＩＮＤＯＷＳ、又は、ＶｘＷｏｒｋｓなどの組み込みオペレーティングシステム）は、一般的なシステムタスク（例えば、メモリ管理、記憶デバイス制御、電力管理など）を制御及び管理するための、様々なソフトウェア構成要素並びに／あるいはドライバを含み、様々なハードウェア、ファームウェア、及びソフトウェア構成要素間の通信を容易にする。
【０１５８】
通信モジュール７２０は、ネットワーク通信インタフェース７０８を介した、デジタルアシスタントシステム７００と他のデバイスとの間の通信を容易にする。例えば、通信モジュール７２０は、それぞれ、図２Ａ、図４、図６Ａ〜図６Ｂに示すデバイス２００、４００、及び６００などの電子デバイスのＲＦ回路２０８と通信する。通信モジュール７２０はまた、無線回路７１４及び／又は有線通信ポート７１２によって受信されたデータを処理するための、様々な構成要素も含む。
【０１５９】
ユーザインタフェースモジュール７２２は、Ｉ／Ｏインタフェース７０６を介して（例えば、キーボード、タッチスクリーン、ポインティングデバイス、コントローラ、及び／又はマイクロフォンから）、ユーザからのコマンド及び／又は入力を受信して、ディスプレイ上にユーザインタフェースオブジェクトを生成する。ユーザインタフェースモジュール７２２はまた、Ｉ／Ｏインタフェース７０６を介して（例えば、ディスプレイ、オーディオチャネル、スピーカ、タッチパッドなどを通じて）、ユーザへの出力（例えば、発話、サウンド、アニメーション、テキスト、アイコン、振動、触覚フィードバック、光など）も準備及び配信する。
【０１６０】
アプリケーション７２４は、１つ以上のプロセッサ７０４によって実行されるように構成された、プログラム及び／又はモジュールを含む。例えば、デジタルアシスタントシステムがスタンドアロン型ユーザデバイス上に実装される場合には、アプリケーション７２４は、ゲーム、カレンダーアプリケーション、ナビゲーションアプリケーション、又は電子メールアプリケーションなどの、ユーザアプリケーションを含む。デジタルアシスタントシステム７００がサーバ上に実装される場合には、アプリケーション７２４は、例えば、リソース管理アプリケーション、診断アプリケーション、又はスケジューリングアプリケーションを含む。
【０１６１】
メモリ７０２はまた、デジタルアシスタントモジュール７２６（又は、デジタルアシスタントのサーバ部分）も記憶している。一部の実施例では、デジタルアシスタントモジュール７２６は、以下のサブモジュール、又はそれらのサブセット若しくはスーパーセットを含む：入出力処理モジュール７２８、音声テキスト化（speech-to-text；ＳＴＴ）処理モジュール７３０、自然言語処理モジュール７３２、ダイアログフロー処理モジュール７３４、タスクフロー処理モジュール７３６、サービス処理モジュール７３８、及び発話合成処理モジュール７４０。これらのモジュールのそれぞれは、デジタルアシスタントモジュール７２６の以下のシステムあるいはデータ及びモデルのうちの１つ以上、又はそれらのサブセット若しくはスーパーセットへのアクセスを有する：オントロジ７６０、語彙索引７４４、ユーザデータ７４８、タスクフローモデル７５４、サービスモデル７５６、及びＡＳＲシステム７５８。
【０１６２】
一部の実施例では、デジタルアシスタントモジュール７２６内に実装されている処理モジュール、データ、及びモデルを使用して、このデジタルアシスタントは、以下のうちの少なくとも一部を実行することができる：発話入力をテキストに変換すること、ユーザから受信した自然言語入力内で表現されているユーザの意図を特定すること、ユーザの意図を完全に推測するために必要な情報を（例えば、単語、ゲーム、意図などの曖昧性を除去することによって）能動的に引き出し、取得すること、推測された意図を満たすためのタスクフローを判定すること、及び、そのタスクフローを実行して、推測された意図を満たすこと。
【０１６３】
一部の実施例では、図７Ｂに示されるように、Ｉ／Ｏ処理モジュール７２８は、ユーザ入力（例えば、発話入力）を取得するために、及びユーザ入力への応答を（例えば、発話出力として）提供するために、図７ＡのＩ／Ｏデバイス７１６を通じてユーザと対話し、又は、図７Ａのネットワーク通信インタフェース７０８を通じてユーザデバイス（例えば、デバイス１０４、２００、４００、又はデバイス６００）と対話する。Ｉ／Ｏ処理モジュール７２８は、任意選択的に、ユーザ入力と共に、又はユーザ入力の受信の直後に、そのユーザ入力に関連付けられたコンテキスト情報をユーザデバイスから取得する。コンテキスト情報は、そのユーザ入力に関連する、ユーザ固有のデータ、語彙、及び／又は選好を含む。一部の実施例では、コンテキスト情報はまた、ユーザ要求が受信される時点での、ユーザデバイスのソフトウェア状態及びハードウェア状態、並びに／あるいは、ユーザ要求が受信された時点での、ユーザの周囲環境に関する情報も含む。一部の実施例では、Ｉ／Ｏ処理モジュール７２８はまた、ユーザ要求に関して、ユーザに補足質問を送信し、ユーザから回答を受信する。ユーザ要求がＩ／Ｏ処理モジュール７２８によって受信され、そのユーザ要求が発話入力を含む場合、Ｉ／Ｏ処理モジュール７２８は、音声テキスト化変換のために、その発話入力をＳＴＴ処理モジュール７３０（又は、発話認識器）に転送する。
【０１６４】
ＳＴＴ処理モジュール７３０は、１つ以上のＡＳＲシステム７５８を含む。１つ以上のＡＳＲシステム７５８は、Ｉ／Ｏ処理モジュール７２８を介して受信された発話入力を処理して、認識結果を生成することができる。各ＡＳＲシステム７５８は、フロントエンド発話プリプロセッサを含む。このフロントエンド発話プリプロセッサは、発話入力から代表的特徴を抽出する。例えば、フロントエンド発話プリプロセッサは、発話入力に対してフーリエ変換を実行することにより、その発話入力を代表的な多次元ベクトルのシーケンスとして特徴付ける、スペクトル特徴を抽出する。更には、各ＡＳＲシステム７５８は、１つ以上の発話認識モデル（例えば、音響モデル及び／又は言語モデル）を含み、１つ以上の発話認識エンジンを実装する。発話認識モデルの例としては、隠れマルコフモデル、混合ガウスモデル、ディープニューラルネットワークモデル、ｎグラム言語モデル、及び他の統計的モデルが挙げられる。発話認識エンジンの例としては、動的時間伸縮法ベースのエンジン、及び重み付き有限状態トランスデューサ（weighted finite-state transducer；ＷＦＳＴ）ベースのエンジンが挙げられる。１つ以上の発話認識モデル及び１つ以上の音声認識エンジンが、フロントエンド音声プリプロセッサの抽出された代表的特徴を処理して中間認識結果（例えば、音素、音素列、部分語）、最終的にテキスト認識結果（単語、単語列、トークンのシーケンス）を生成するために使用される。一部の実施例では、発話入力は、認識結果を生成するために、第三者サービスによって、又はユーザのデバイス（例えば、デバイス１０４、２００、４００、又はデバイス６００）上で、少なくとも部分的に処理される。ＳＴＴ処理モジュール７３０が、テキスト文字列（例えば、単語、単語の列、又はトークンの列）を含む認識結果を生成すると、その認識結果は、意図推論のために自然言語処理モジュール７３２に渡される。一部の実施例では、ＳＴＴ処理モジュール７３０は、発話入力の複数のテキスト表現候補を生成する。各テキスト表現候補は、発話入力に対応する、単語又はトークンのシーケンスである。一部の実施例では、各テキスト表現候補は、発話認識信頼性スコアに関連付けられる。この発話認識信頼性スコアに基づいて、ＳＴＴ処理モジュール７３０は、テキスト表現候補をランク付けし、ｎ個の最良の（例えば、ｎ個の最高ランクの）テキスト表現候補（単数又は複数）を、意図推論のために自然言語処理モジュール７３２に提供する（ｎは、ゼロよりも大きい所定の整数である）。例えば、一実施例では、最高ランク（ｎ＝１）のテキスト表現候補のみが、意図推論のために自然言語処理モジュール７３２に渡される。別の実施例では、５つの最高ランク（ｎ＝５）のテキスト表現候補が、意図推論のために自然言語処理モジュール７３２に渡される。
【０１６５】
音声テキスト化処理についての更なる詳細は、開示全体が参照により本明細書に組み込まれる、２０１１年９月２０日出願の、「Ｃｏｎｓｏｌｉｄａｔｉｎｇ  Ｓｐｅｅｃｈ  Ｒｅｃｏｇｎｉｔｉｏｎ  Ｒｅｓｕｌｔｓ」に関する米国実用特許出願第１３／２３６，９４２号で説明されている。
【０１６６】
一部の実施例では、ＳＴＴ処理モジュール７３０は、認識可能な単語の語彙を含み、及び／又は、音標文字変換モジュール７３１を介して、その語彙にアクセスする。各語彙単語は、発話認識音標文字で表された、その単語の１つ以上の発音候補と関連付けられている。具体的には、認識可能な単語の語彙は、複数の発音候補に関連付けられている単語を含む。例えば、語彙は、
【数１】
2021504843.tif 000002
の発音候補に関連付けられている単語「ｔｏｍａｔｏ（トマト）」を含む。更には、語彙単語は、ユーザからの以前の発話入力に基づく、カスタム発音候補に関連付けられている。そのようなカスタム発音候補は、ＳＴＴ処理モジュール７３０内に記憶され、デバイス上のユーザのプロファイルを介して、特定のユーザに関連付けられている。一部の実施例では、単語に関する発音候補は、単語の綴り、並びに１つ以上の言語規則及び／又は音標規則に基づいて判定される。一部の実施例では、発音候補は、例えば既知の正規発音に基づいて、手動で生成される。
【０１６７】
一部の実施例では、発音候補は、その発音候補の一般性に基づいてランク付けされる。例えば、発音候補
【数２】
2021504843.tif 000003
は、
【数３】
2021504843.tif 000004
よりも高くランク付けされるが、これは、前者が、（例えば、全てのユーザの間で、特定の地理的領域内のユーザに関して、又は、任意の他の適切なユーザのサブセットに関して）より一般的に使用される発音であるためである。一部の実施例では、発音候補は、その発音候補がユーザに関連付けられているカスタム発音候補であるか否かに基づいて、ランク付けされる。例えば、カスタム発音候補は、正規発音候補よりも高くランク付けされる。このことは、正規発音から逸脱した独特の発音を有する固有名詞を認識するために、有用となり得る。一部の実施例では、発音候補は、出身地、国籍、又は民族性などの、１つ以上の発話特性に関連付けられている。例えば、発音候補
【数４】
2021504843.tif 000005
は、米国に関連付けられているが、発音候補
【数５】
2021504843.tif 000006
は、英国に関連付けられている。更には、発音候補のランクは、デバイス上のユーザのプロファイル内に記憶されている、そのユーザの１つ以上の特性（例えば、出身地、国籍、民族性など）に基づく。例えば、ユーザのプロファイルから、そのユーザが米国に関連付けられていることを判定することができる。ユーザが米国に関連付けられていることに基づいて、（米国に関連付けられている）発音候補
【数６】
2021504843.tif 000007
は、（英国に関連付けられている）発音候補
【数７】
2021504843.tif 000008
よりも高くランク付けされる。一部の実施例では、ランク付けされた発音候補のうちの１つが、予測される発音（例えば、最も可能性が高い発音）として選択される。
【０１６８】
発話入力が受信されると、ＳＴＴ処理モジュール７３０を使用して、その発話入力に対応する音素が（例えば、音響モデルを使用して）判定され、次いで、その音素に一致する単語を（例えば、言語モデルを使用して）判定することが試みられる。例えば、ＳＴＴ処理モジュール７３０が最初に、発話入力の一部分に対応する音素の列
【数８】
2021504843.tif 000009
を特定した場合には、次いで、語彙索引７４４に基づいて、この列が単語「ｔｏｍａｔｏ（トマト）」に対応すると判定することができる。
【０１６９】
一部の実施例では、ＳＴＴ処理モジュール７３０は、近似照合技術を使用して、発言内の単語を判定する。このように、例えば、ＳＴＴ処理モジュール７３０は、たとえその特定の音素の列がその単語の音素列候補のうちの１つではない場合であっても、音素の列
【数９】
2021504843.tif 000010
が単語「ｔｏｍａｔｏ（トマト）」に対応するものであると判定する。
【０１７０】
デジタルアシスタントの自然言語処理モジュール７３２（「自然言語プロセッサ」）は、ＳＴＴ処理モジュール７３０によって生成された、ｎ個の最良のテキスト表現候補（単数又は複数）（「単語列（単数又は複数）」又は「トークン列（単数又は複数）」）を取得して、それらのテキスト表現候補のそれぞれを、デジタルアシスタントによって認識される１つ以上の「実施可能な意図」に関連付けることを試みる。「実施可能な意図」（又は、「ユーザ意図」）とは、デジタルアシスタントによって実行することが可能なタスクを表すものであり、タスクフローモデル７５４内に実装される、関連するタスクフローを有し得る。この関連するタスクフローは、そのタスクを実行するためにデジタルアシスタントが実施する、一連のプログラムされたアクション及びステップである。デジタルアシスタントの能力の範囲は、タスクフローモデル７５４内に実装及び記憶されている、タスクフローの数及び多様性に応じて判定され、あるいは、換言すれば、そのデジタルアシスタントが認識する「実施可能な意図」の数及び多様性に応じて判定される。しかしながら、デジタルアシスタントの有効性はまた、自然言語で表現されたユーザ要求から正しい「実施可能な意図（単数又は複数）」を推測する、そのアシスタントの能力に応じても判定される。
【０１７１】
一部の実施例では、ＳＴＴ処理モジュール７３０から取得される単語又はトークンの列に加えて、自然言語処理モジュール７３２はまた、例えばＩ／Ｏ処理モジュール７２８から、ユーザ要求に関連付けられたコンテキスト情報も受信する。自然言語処理モジュール７３２は、任意選択的に、そのコンテキスト情報を使用して、ＳＴＴ処理モジュール７３０から受信されたテキスト表現候補内に含まれている情報を、明らかにし、補完し、及び／又は更に定義する。コンテキスト情報は、例えば、ユーザ選好、ユーザデバイスのハードウェア及び／又はソフトウェア状態、ユーザ要求の前、最中、又は直後に収集されたセンサ情報、並びに、デジタルアシスタントとユーザとの間の以前の対話（例えば、ダイアログ）などを含む。本明細書で説明されるように、コンテキスト情報は、一部の実施例では動的であり、時間、場所、ダイアログの内容、及び他の因子によって変化する。
【０１７２】
一部の実施例では、自然言語処理は、例えば、オントロジ７６０に基づく。オントロジ７６０は、多数のノードを含む階層構造であり、各ノードは、「実施可能な意図」を表すか、又は、「実施可能な意図」のうちの１つ以上に関連する「属性」若しくは他の「属性」を表す。上述のように、「実施可能な意図」は、デジタルアシスタントが実行することが可能なタスクを表すものであり、すなわち、そのタスクは、「実施可能」であるか、又は実施対象となり得るものである。「属性」は、実施可能な意図に関連付けられた、又は別の属性の下位態様に関連付けられた、パラメータを表す。オントロジ７６０内の実施可能な意図ノードと属性ノードとの間のリンクは、属性ノードによって表されるパラメータが、実施可能な意図ノードによって表されるタスクにどのように関与するかを定義する。
【０１７３】
一部の実施形態では、オントロジ７６０は、実施可能な意図ノード及び属性ノードで構成されている。オントロジ７６０内では、各実施可能な意図ノードは、１つ以上の属性ノードに直接リンクされているか、又は、１つ以上の中間属性ノードを介してリンクされている。同様に、各属性ノードは、１つ以上の実施可能な意図ノードに直接リンクされているか、又は、１つ以上の中間属性ノードを介してリンクされている。例えば、図７Ｃに示されるように、オントロジ７６０は、「レストラン予約」ノード（すなわち、実施可能な意図ノード）を含む。属性ノード「レストラン」、「日付／時間」（予約用）、及び「参加人数」が、それぞれ、実施可能な意図ノード（すなわち、「レストラン予約」ノード）に直接リンクされている。
【０１７４】
更には、属性ノード「料理」、「価格帯」、「電話番号」、及び「場所」は、属性ノード「レストラン」の下位ノードであり、それぞれ、中間属性ノード「レストラン」を介して、「レストラン予約」ノード（すなわち、実施可能な意図ノード）にリンクされている。別の例として、図７Ｃに示されるように、オントロジ７６０はまた、「リマインダ設定」ノード（すなわち、別の実施可能な意図ノード）も含む。属性ノード「日付／時間」（リマインダ設定用）及び「テーマ」（リマインダ用）が、それぞれ、「リマインダ設定」ノードにリンクされている。属性ノード「日付／時間」は、レストラン予約を実施するタスク及びリマインダを設定するタスクの双方に関連しているため、属性ノード「日付／時間」は、オントロジ７６０内で、「レストラン予約」ノード及び「リマインダ設定」ノードの双方にリンクされている。
【０１７５】
実施可能な意図ノードは、そのリンクされている属性ノードと共に、「ドメイン」として説明される。本論考では、各ドメインは、対応の実施可能な意図と関連付けられており、その特定の実施可能な意図に関連付けられているノードのグループ（及び、それらノード間の関係）を指すものである。例えば、図７Ｃに示されるオントロジ７６０は、レストラン予約ドメイン７６２の一実施例、及びリマインダドメイン７６４の一実施例を、オントロジ７６０内に含む。レストラン予約ドメインは、実施可能な意図ノード「レストラン予約」、属性ノード「レストラン」、「日付／時間」、及び「参加人数」、並びに、下位属性ノード「料理」、「価格帯」、「電話番号」、及び「場所」を含む。リマインダドメイン７６４は、実施可能な意図ノード「リマインダ設定」、並びに属性ノード「テーマ」及び「日付／時間」を含む。一部の実施例では、オントロジ７６０は、多数のドメインで構成される。各ドメインは、１つ以上の属性ノードを、１つ以上の他のドメインと共有している。例えば、「日付／時間」属性ノードは、レストラン予約ドメイン７６２及びリマインダドメイン７６４に加えて、多数の異なるドメイン（例えば、スケジューリングドメイン、旅行予約ドメイン、映画チケットドメインなど）に関連付けられている。
【０１７６】
図７Ｃは、オントロジ７６０内の２つの例示的なドメインを示すものであるが、他のドメインとしては、例えば、「映画を探す」、「電話通話を開始する」、「道順を探す」、「会合をスケジュールする」、「メッセージを送信する」、「質問の答えを提供する」、「リストを読み上げる」、「ナビゲーションの指示を提供する」、及び「タスクに関する指示を提供する」などが挙げられる。「メッセージを送信する」ドメインは、「メッセージを送信する」実施可能な意図ノードに関連付けられており、「受信者（単数又は複数）」、「メッセージタイプ」、及び「メッセージ本文」などの属性ノードを更に含む。属性ノード「受信者」は、例えば、「受信者名」及び「メッセージアドレス」などの下位属性ノードによって、更に定義される。
【０１７７】
一部の実施例では、オントロジ７６０は、デジタルアシスタントが理解及び遂行することが可能な、全てのドメイン（またそれゆえ、実施可能な意図）を含む。一部の実施例では、オントロジ７６０は、ドメイン若しくはノード全体を追加又は除去することによって、あるいは、オントロジ７６０内のノード間の関係を修正することなどによって、修正される。
【０１７８】
一部の実施例では、関連する複数の実施可能な意図に関連付けられているノードは、オントロジ７６０内の「上位ドメイン」の下にクラスタ化されている。例えば、「旅行」上位ドメインは、旅行に関連する属性ノード及び実施可能な意図ノードの、クラスタを含む。旅行に関連する実施可能な意図ノードとしては、「航空券予約」、「ホテル予約」、「自動車のレンタル」、「道順を知る」、及び「興味のある場所を探す」などが挙げられる。同じ上位ドメイン（例えば、「旅行」上位ドメイン）の下の実施可能な意図ノードは、多数の属性ノードを共有している。例えば、「航空券予約」、「ホテル予約」、「自動車のレンタル」、「道順を知る」、及び「興味のある場所を探す」に関する実施可能な意図ノードは、属性ノード「出発地」、「目的地」、「出発日／時間」、「到着日／時間」、及び「参加人数」のうちの１つ以上を共有している。
【０１７９】
一部の実施形態では、オントロジ７６０内の各ノードは、そのノードによって表される属性若しくは実施可能な意図に関連する、単語及び／又はフレーズのセットに関連付けられている。各ノードに関連付けられている対応の単語及び／又はフレーズのセットは、そのノードに関連付けられた、いわゆる「語彙」である。各ノードに関連付けられている対応の単語及び／又はフレーズのセットは、そのノードによって表される属性又は実施可能な意図に関連して、語彙索引７４４内に記憶されている。例えば、図７Ｂに戻ると、「レストラン」の属性に関するノードに関連付けられている語彙としては、「食べ物」、「飲み物」、「料理」、「空腹」、「食べる」、「ピザ」、「ファストフード」、「食事」などの単語が挙げられる。別の例として、「電話通話を開始する」の実施可能な意図に関するノードに関連付けられている語彙としては、「電話する（call）」、「電話（phone）」、「ダイヤルする（dial）」、「電話をかける（ring）」、「この番号に電話する（call this number）」、「〜に電話をかける（make a call to）」などの、単語及びフレーズが挙げられる。語彙索引７４４は、任意選択的に、異なる言語の単語及びフレーズを含む。
【０１８０】
自然言語処理モジュール７３２は、ＳＴＴ処理モジュール７３０から候補テキスト表現（例えば、文字列又はトークン列）を受信し、候補表現ごとに、候補文字表現中の単語がどのノードを暗示しているかを判定する。一部の実施例では、テキスト表現候補内の単語又はフレーズが、オントロジ７６０内の１つ以上のノードに関連付けられていることが（語彙索引７４４を介して）見出される場合には、その単語又はフレーズは、それらのノードを「トリガ」又は「アクティブ化」する。アクティブ化されたノードの量及び／又は相対的重要性に基づいて、自然言語処理モジュール７３２は、それらの実施可能な意図のうちの１つを、デジタルアシスタントにユーザが実行させるように意図したタスクとして選択する。一部の実施例では、最も多く「トリガされた」ノードを有するドメインが選択される。一部の実施例では、最も高い信頼値（例えば、そのトリガされた様々なノードの相対的重要性に基づくもの）を有するドメインが選択される。一部の実施例では、トリガされたノードの数及び重要性の組み合わせに基づいて、ドメインが選択される。一部の実施例では、ノードを選択する際には、デジタルアシスタントが、ユーザからの同様の要求を以前に正確に解釈したか否かなどの、追加的因子も考慮される。
【０１８１】
ユーザデータ７４８は、ユーザ固有語彙、ユーザ選好、ユーザアドレス、ユーザの既定言語及び第２言語、ユーザの連絡先リスト、並びに各ユーザに関する他の短期的若しくは長期的情報などの、ユーザ固有情報を含む。一部の実施例では、自然言語処理モジュール７３２は、ユーザ入力内に含まれている情報を補完して、ユーザ意図を更に定義するために、これらのユーザ固有情報を使用する。例えば、ユーザ要求「私の誕生日パーティーに私の友人を招待して（invite my friends to my birthday party）」に関して、自然言語処理モジュール７３２は、誰が「友人」であり、いつ及びどこで「誕生日パーティー」が催されることになるかを判定するために、そのような情報をユーザ要求内で明示的に提供するようにユーザに要求することなく、ユーザデータ７４８にアクセスすることが可能である。
【０１８２】
一部の実施例では、自然言語処理モジュール７３２は、１つ以上の機械学習機構（例えば、ニューラルネットワーク）を使用して実装されることを認識されたい。具体的には、１つ以上の機械学習機構は、テキスト表現候補、及び、そのテキスト表現候補に関連付けられたコンテキスト情報を受信するように構成されている。それらテキスト表現候補及び関連するコンテキスト情報に基づいて、１つ以上の機械学習機構は、実施可能な意図候補のセットにわたって、意図信頼性スコアを判定するように構成されている。自然言語処理モジュール７３２は、判定された意図信頼性スコアに基づいて、実施可能な意図候補のセットから、１つ以上の実施可能な意図候補を選択することができる。一部の実施例では、オントロジ（例えば、オントロジ７６０）もまた、実施可能な意図候補のセットから、１つ以上の実施可能な意図候補を選択するために使用される。
【０１８３】
トークン文字列に基づくオントロジの検索の他の詳細は、開示全体が参照により本明細書に組み込まれる、２００８年１２月２２日出願の「Ｍｅｔｈｏｄ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｓｅａｒｃｈｉｎｇ  Ｕｓｉｎｇ  ａｎ  Ａｃｔｉｖｅ  Ｏｎｔｏｌｏｇｙ」に関する米国実用特許出願第１２／３４１，７４３号で説明されている。
【０１８４】
一部の実施例では、自然言語処理モジュール７３２が、ユーザ要求に基づいて実施可能な意図（又は、ドメイン）を特定すると、自然言語処理モジュール７３２は、その特定された実施可能な意図を表すように、構造化クエリを生成する。一部の実施例では、この構造化クエリは、その実施可能な意図に関するドメイン内の１つ以上のノードについてのパラメータを含み、それらのパラメータの少なくとも一部には、ユーザ要求内で指定された具体的な情報及び要件が入力されている。例えば、「７時に寿司屋で夕食の予約を取ってください（Make me a dinner reservation at a sushi place at 7）」とユーザが言う。この場合には、自然言語処理モジュール７３２は、そのユーザ入力に基づいて、実施可能な意図が「レストラン予約」であると、正確に特定することが可能である。オントロジによれば、「レストラン予約」ドメインに関する構造化クエリは、｛料理｝、｛時間｝、｛日付｝、｛参加人数｝などのパラメータを含む。一部の実施例では、発話入力、及びＳＴＴ処理モジュール７３０を使用して発話入力から導出されたテキストに基づいて、自然言語処理モジュール７３２は、レストラン予約ドメインに関する部分的構造化クエリを生成し、この部分的構造化クエリは、パラメータ｛料理＝「寿司」｝及びパラメータ｛時間＝「午後７時」｝を含む。しかしながら、この実施例では、ユーザの発言に含まれる情報は、そのドメインに関連付けられる構造化クエリを完成するためには不十分である。それゆえ、｛参加人数｝及び｛日付｝などの他の必要なパラメータは、現時点で入手可能な情報に基づく構造化クエリ内では指定されていない。一部の実施例では、自然言語処理モジュール７３２は、この構造化クエリの一部のパラメータに、受信されたコンテキスト情報を追加入力する。例えば、一部の実施例では、ユーザが「近所の」寿司レストランを要求した場合には、自然言語処理モジュール７３２は、構造化クエリ内の｛場所｝パラメータに、ユーザデバイスからのＧＰＳ座標を追加入力する。
【０１８５】
一部の実施例では、自然言語処理モジュール７３２は、ＳＴＴ処理モジュール７３０から受信された各テキスト表現候補に関して、複数の実施可能な意図候補を特定する。更には、一部の実施例では、特定された実施可能な意図候補のそれぞれに関して、対応の（部分的又は完全な）構造化クエリが生成される。自然言語処理モジュール７３２は、実施可能な意図候補のそれぞれに関する意図信頼性スコアを判定し、その意図信頼性スコアに基づいて、それら実施可能な意図候補をランク付けする。一部の実施例では、自然言語処理モジュール７３２は、任意の入力済みパラメータを含む、生成された構造化クエリ（単数又は複数）を、タスクフロー処理モジュール７３６（「タスクフロープロセッサ」）に渡す。一部の実施例では、ｍ個の最良の（例えば、ｍ個の最高ランクの）実施可能な意図候補に関する構造化クエリ（単数又は複数）が、タスクフロー処理モジュール７３６に提供される（ｍは、ゼロよりも大きい所定の整数である）。一部の実施例では、ｍ個の最良の実施可能な意図候補に関する構造化クエリ（単数又は複数）は、対応するテキスト表現候補（単数又は複数）と共に、タスクフロー処理モジュール７３６に提供される。
【０１８６】
発話入力の複数のテキスト表現候補から判定された複数の実施可能な意図候補に基づく、ユーザ意図の推測の他の詳細は、開示全体が参照により本明細書に組み込まれる、２０１４年６月６日出願の「Ｓｙｓｔｅｍ  ａｎｄ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｉｎｆｅｒｒｉｎｇ  Ｕｓｅｒ  Ｉｎｔｅｎｔ  Ｆｒｏｍ  Ｓｐｅｅｃｈ  Ｉｎｐｕｔｓ」に関する米国実用特許出願第１４／２９８，７２５号で説明されている。
【０１８７】
タスクフロー処理モジュール７３６は、自然言語処理モジュール７３２から構造化クエリ（単数又は複数）を受信して、必要に応じて構造化クエリを完成させ、ユーザの最終的な要求を「完了する」ために必要とされるアクションを実行するように構成されている。一部の実施例では、これらのタスクを完了するために必要な様々な手順が、タスクフローモデル７５４内で提供される。一部の実施例では、タスクフローモデル７５４は、ユーザから追加情報を取得するための手順、及び、実施可能な意図に関連付けられたアクションを実行するためのタスクフローを含む。
【０１８８】
上述のように、構造化クエリを完成させるためには、タスクフロー処理モジュール７３６は、追加情報を取得し、及び／又は潜在的に曖昧な発言の曖昧性を除去するために、ユーザとの追加的なダイアログを開始することを必要とする。そのような対話が必要である場合、タスクフロー処理モジュール７３６は、ユーザとのダイアログに携わるために、ダイアログフロー処理モジュール７３４を呼び出す。一部の実施例では、ダイアログフロー処理モジュール７３４は、どのようにして（及び／又は、いつ）ユーザに追加情報を要求するべきかを判定し、そのユーザ応答を受信及び処理する。Ｉ／Ｏ処理モジュール７２８を介して、ユーザに質問が提供され、ユーザから回答が受信される。いくつかの例において、ダイアログフロー処理モジュール７３４は、オーディオ及び／又は視覚出力を介してユーザにダイアログ出力を提示し、ユーザからの入力を発話又は物理的（例えば、クリック）応答を介して受け取る。上記の実施例を続けると、タスクフロー処理モジュール７３６が、ドメイン「レストラン予約」に関連付けられる構造化クエリに関する「参加人数」及び「日付」の情報を判定するために、ダイアログフロー処理モジュール７３４を呼び出すと、ダイアログフロー処理モジュール７３４は、「何人分ですか？（For how many people?）」及び「どの日にしますか？（On which day?）」などの質問を生成して、ユーザに渡す。ユーザから回答が受信されると、次いで、ダイアログフロー処理モジュール７３４は、構造化クエリに、欠落している情報を追加入力するか、又は、構造化クエリから欠落している情報を完成させるために、その情報をタスクフロー処理モジュール７３６に渡す。
【０１８９】
タスクフロー処理モジュール７３６が、実施可能な意図に関する構造化クエリを完成させると、タスクフロー処理モジュール７３６は、その実施可能な意図に関連付けられた最終的なタスクの実行に進む。したがって、タスクフロー処理モジュール７３６は、構造化クエリ内に含まれている特定のパラメータに従って、タスクフローモデル内のステップ及び命令を実行する。例えば、「レストラン予約」の実施可能な意図に関するタスクフローモデルは、レストランと連絡を取り、特定の時間に特定の参加人数のための予約を実際に依頼する、ステップ及び命令を含む。例えば、｛レストラン予約、レストラン＝ＡＢＣ  Ｃａｆｅ、日付＝３／１２／２０１２、時間＝午後７時、参加人数＝５｝などの構造化クエリを使用して、タスクフロー処理モジュール７３６は、（１）ＡＢＣ  Ｃａｆｅのサーバ、又はＯＰＥＮＴＡＢＬＥ（登録商標）などのレストラン予約システムにログオンするステップと、（２）ウェブサイト上のフォーム内に日付、時間、及び参加人数の情報を入力するステップと、（３）そのフォームを提出するステップと、（４）ユーザのカレンダー内に、その予約に関するカレンダー項目を入力するステップとを実行する。
【０１９０】
一部の実施例では、タスクフロー処理モジュール７３６は、ユーザ入力で要求されているタスクを完了するために、又は、ユーザ入力で要求されている情報の回答を提供するために、サービス処理モジュール７３８（「サービス処理モジュール」）の支援を採用する。例えば、サービス処理モジュール７３８は、タスクフロー処理モジュール７３６の代わりに、電話通話し、カレンダー項目を設定し、地図検索を呼び出し、ユーザデバイス上にインストールされている他のユーザアプリケーションを呼び出すか若しくはそのユーザアプリケーションと対話し、第三者サービス（例えばレストラン予約ポータル、ソーシャルネットワーキングウェブサイト、バンキングポータルなど）を呼び出すか若しくはその第三者サービスと対話する機能を果たす。一部の実施例では、各サービスによって必要とされるプロトコル及びアプリケーションプログラミングインタフェース（application programming interface；ＡＰＩ）は、サービスモデル７５６の中の対応のサービスモデルによって指定されている。サービス処理モジュール７３８は、サービスに関する適切なサービスモデルにアクセスし、そのサービスモデルに従った、そのサービスによって必要とされるプロトコル及びＡＰＩに準拠して、そのサービスに関する要求を生成する。
【０１９１】
例えば、レストランが、オンライン予約サービスに対応している場合、そのレストランは、予約を行うために必要なパラメータ、及び、その必要なパラメータの値をオンライン予約サービスに通信するためのＡＰＩを指定する、サービスモデルを提出する。タスクフロー処理モジュール７３６によって要求されると、サービス処理モジュール７３８は、そのサービスモデル内に記憶されているウェブアドレスを使用して、オンライン予約サービスとのネットワーク接続を確立し、必要な予約パラメータ（例えば、時間、日付、参加人数）を、そのオンライン予約サービスのＡＰＩに従った形式で、オンライン予約インタフェースに送信する。
【０１９２】
一部の実施例では、自然言語処理モジュール７３２、ダイアログフロー処理モジュール７３４、及びタスクフロー処理モジュール７３６は、ユーザの意図を推測及び定義し、そのユーザ意図を更に明らかにして絞り込むための情報を取得し、ユーザの意図を満たすための応答（すなわち、ユーザへの出力又はタスクの完了）を最終的に生成するために、集合的かつ反復的に使用される。生成された応答は、ユーザの意図を少なくとも部分的に満たす、発話入力に対するダイアログ応答である。更には、一部の実施例では、生成された応答は、発話出力として出力される。これらの実施例では、生成された応答は、発話合成処理モジュール７４０（例えば、発話合成器）に送信され、その発話合成処理モジュールで、発話形式のダイアログ応答を合成するように処理することができる。更に他の実施例では、生成された応答は、発話入力内のユーザ要求を満たすことに関連する、データコンテンツである。
【０１９３】
タスクフロー処理モジュール７３６が、自然言語処理モジュール７３２から複数の構造化クエリを受信する実施例では、タスクフロー処理モジュール７３６は、最初に、受信された構造化クエリのうちの第１の構造化クエリを処理して、その第１の構造化クエリを完成させるように、及び／又は、その第１の構造化クエリによって表されている１つ以上のタスク若しくはアクションを実行するように試みる。一部の実施例では、第１の構造化クエリは、最高ランクの実施可能な意図に対応する。他の実施例では、第１の構造化クエリは、受信された構造化クエリから、対応する発話認識信頼性スコアと、対応する意図信頼性スコアとの組み合わせに基づいて、選択される。一部の実施例では、タスクフロー処理モジュール７３６が、第１の構造化クエリの処理中に（例えば、必要なパラメータが判定不能であることにより）エラーに遭遇した場合には、タスクフロー処理モジュール７３６は、より低いランクの実施可能な意図に対応する、受信された構造化クエリのうちの第２の構造化クエリを選択して処理するように、進むことができる。この第２の構造化クエリは、例えば、対応するテキスト表現候補の発話認識信頼性スコア、対応する実施可能な意図候補の意図信頼性スコア、第１の構造化クエリ内の欠落している必要なパラメータ、又はこれらの任意の組み合わせに基づいて選択される。
【０１９４】
発話合成処理モジュール７４０は、ユーザに提示するための発話出力を合成するように構成されている。発話合成処理モジュール７４０は、デジタルアシスタントによって提供されたテキストに基づいて、発話出力を合成する。例えば、生成されたダイアログ応答は、テキスト文字列の形態である。発話合成処理モジュール７４０は、そのテキスト文字列を、可聴の発話出力に変換する。発話合成処理モジュール７４０は、テキストから発話出力を生成するために、限定するものではないが、波形接続合成、単位選択合成、ダイフォン合成、分野限定合成、フォルマント合成、調音合成、隠れマルコフモデル（hidden Markov model；ＨＭＭ）に基づく合成、及びサイン波合成を含めた、任意の適切な発話合成技術を使用する。一部の実施例では、発話合成処理モジュール７４０は、単語に対応する音素列に基づいて個々の単語を合成するように構成される。例えば、生成されたダイアログ応答内の単語に音素列が関連付けられる。音素列は、単語に関連付けられたメタデータに記憶される。発話合成処理モジュール７４０は、メタデータ中の音素列を直接処理して音声形式で単語を合成するように構成される。
【０１９５】
一部の実施例では、発話合成処理モジュール７４０を使用する代わりに（又は、それに加えて）、発話合成は、リモートデバイス（例えば、サーバシステム１０８）上で実行され、合成された発話は、ユーザに出力するためにユーザデバイスに送信される。例えば、このことは、デジタルアシスタントに対する出力がサーバシステムで生成される、一部の実装形態で実施することができる。また、サーバシステムは、一般に、ユーザデバイスよりも多くの処理能力又はリソースを有するため、クライアント側での合成の場合に実用的となる出力よりも、高品質の発話出力を得ることが可能である。
【０１９６】
デジタルアシスタントについて更に詳しくは、参照することによりその開示全体が本明細書に組み込まれる、２０１１年１月１０日に出願された、「Ｉｎｔｅｌｌｉｇｅｎｔ  Ａｕｔｏｍａｔｅｄ  Ａｓｓｉｓｔａｎｔ」と題する米国実用出願第１２／９８７，９８２号と、２０１１年９月３０日に出願された、「Ｇｅｎｅｒａｔｉｎｇ  ａｎｄ  Ｐｒｏｃｅｓｓｉｎｇ  Ｔａｓｋ  Ｉｔｅｍｓ  Ｔｈａｔ  Ｒｅｐｒｅｓｅｎｔ  Ｔａｓｋｓ  ｔｏ  Ｐｅｒｆｏｒｍ」と題する米国実用出願第１３／２５１，０８８号とにおいて見ることができる。
４．マルチターンキャンドダイアログを提供するためのプロセス
【０１９７】
図８は、様々な実施例による、マルチターンキャンドダイアログを提供するためのプロセス８００を示す。プロセス８００は、例えば、デジタルアシスタントを実装する１つ以上の電子デバイスを使用して実行される。一部の実施例では、プロセス８００は、クライアントサーバシステム（例えば、システム１００）を使用して実行され、プロセス８００のブロックは、サーバ（例えば、ＤＡサーバ１０６）とクライアントデバイスとの間で任意の形で分割される。他の例では、プロセス８００のブロックは、サーバと複数のクライアントデバイス（例えば、携帯電話及びスマートウォッチ）との間で分割される。したがって、プロセス８００の一部分はクライアントサーバシステムの特定のデバイスによって実行されるように本明細書では説明されているが、プロセス８００はそのように限定されないことが理解されよう。他の実施例では、方法８００は、クライアントデバイス（例えば、ユーザデバイス１０４）のみを使用して、又は複数のクライアントデバイスのみを使用して実行される。プロセス８００では、いくつかのブロックが任意選択的に組み合わせられ、いくつかのブロックの順序が任意選択的に変更され、いくつかのブロックが任意選択的に省略される。一部の実施例では、プロセス８００と組み合わせて追加のステップを実行することができる。
【０１９８】
一般に、プロセス８００は、例えば、電子デバイスを使用して、マルチターンキャンドダイアログを提供するように実装されてもよい。本開示の実施例によれば、マルチターンキャンドダイアログは、ユーザ（又は複数ユーザ）と電子デバイスとの間のダイアログ（例えば、自然言語表現（単数又は複数））の流れを指示する１つ以上の既定のダイアログシーケンスのセットである。動作中、ユーザは、自然言語入力を電子デバイスに提供し、自然言語入力がダイアログ基準を満たす場合に、電子デバイスは、自然言語入力（例えば、応答）に関連付けられた自然言語出力を提供する。いくつかの実施例では、ユーザと電子デバイスとの間でダイアログが進行するにつれて、どの自然言語入力がダイアログ基準を満たすかが変化する（例えば、電子デバイスのダイアログ状態が変化する）。以下で更に詳細に説明するように、いくつかの実施例では、ダイアログ基準は、自然言語入力がマルチターンキャンドダイアログによって指定されたパターンに一致することを必要とする。このようにして、デジタルアシスタントは、完全な自然言語処理アーキテクチャを使用せずにユーザとインタフェースすることができる。
【０１９９】
例えば、以下の例示的なマルチターンキャンドダイアログ交換を検討する。
●ユーザ：「ノックノックジョークを教えて（Tell me a knock knock joke）」
●電子デバイス：「ノックノック！（Knock knock!）」
●ユーザ：「誰なの？（Who’s there?）」
●電子デバイス：「エッチ（Etch）」
●ユーザ：「エッチ、誰？（Etch who?）」
●電子デバイス：「おだいじに（Bless you!）」
【０２００】
前述の実施例では、ユーザは、自然言語入力「ノックノックジョークを教えて（Tell me a knock knock joke）」を提供し、それに応じて、電子デバイスは、「ノックノック！（Knock knock!）」などの、ユーザの入力（すなわち、「ノックノックジョークを教えて（Tell me a knock knock joke）」）に関連付けられた任意の数の既定の自然言語出力から選択し、出力を提供する。次いで、ユーザは、「誰なの？（Who’s there?）」と話し得る。ユーザの入力「誰なの？（Who’s there?）」はダイアログ基準を満たすため、電子デバイスは、ユーザの入力「誰なの？（Who’s there?）」に関連付けられた任意の数の既定の自然言語出力のうちの１つを選択し、自然言語出力「エッチ（Etch）」を提供する。同様に、ユーザは入力「エッチ、誰？（Etch who?）」を提供し、入力「エッチ、誰？（Etch who?）」がダイアログ基準を満たすため、電子デバイスは、自然言語出力「おだいじに（Bless you!）」を提供する。実施例の各ケースでは、ユーザ入力はダイアログ基準を満たし、それに応じて、電子デバイスは、各入力に対応する出力をそれぞれ提供する。ユーザ入力がダイアログ基準を満たさなかった他の実施例では、電子デバイスは、マルチターンキャンドダイアログのセッションを終了し（例えば、最初のダイアログ状態に戻る）、及び／又は図７Ａ〜図７Ｃを参照して説明した自然言語処理を使用して入力を処理してもよい。
【０２０１】
以下で更に詳細に記載されるように、いくつかの実施例では、電子デバイスは、自然言語入力を受信し、自然言語入力がマルチターンキャンドダイアログのダイアログ基準を満たすかどうかを判定する。自然言語入力がマルチターンキャンドダイアログのダイアログ基準を満たす場合、電子デバイスは、自然言語入力に対応するマルチターンキャンドダイアログの自然言語出力を特定し、自然言語出力を出力する。自然言語入力がマルチターンキャンドダイアログのダイアログ基準を満たさない場合、電子デバイスは、自然言語入力に関連付けられたタスクを特定し、自然言語入力に関連付けられたタスクを実行する。このように、電子デバイスは、例えば、ダイアログ基準を満たすかどうかに基づいて、マルチターンキャンドダイアログ又は自然言語処理のいずれかを使用して、自然言語入力を処理することができる。
【０２０２】
ブロック８０５において、電子デバイス（例えば、図１のユーザデバイス１０４）は、自然言語入力を受信する。いくつかの実施例では、電子デバイスは、電子デバイス１０４（図１）である。自然言語入力は、発話入力（例えば、発話発言）又はテキスト入力を含むことができる。いくつかの実施例では、自然言語入力は、電子デバイス及び／又は別のデバイスに対するタスクを実行する要求を含む。例えば、実施例「ノックノックジョークを教えて（Tell me a knock knock joke）」では、自然言語入力は、電子デバイスに対する要求を含み、任意選択的に、電子デバイスのデジタルアシスタントに対するジョークを話す要求を含む。いくつかの実施例では、自然言語入力は、要求されたタスクに対する１つ以上のパラメータを更に指定することができる。自然言語入力「ノックノック（Knock knock!）」の話された部分は、例えば、要求されたジョークのタイプを指定することができる。自然言語入力が特定のタスクに向けられているかどうかは、いくつかの場合では、例えば、別の入力に基づいて、及び／又は電子デバイスのコンテキスト情報に基づいて、パラメータの曖昧性を除去することによって判定されてもよい。
【０２０３】
ブロック８１０において、電子デバイスは、自然言語入力がマルチターンキャンドダイアログのダイアログ基準を満たすかどうかを判定する。いくつかの実施例では、ダイアログ基準は、自然言語入力が、例えば、マルチターンキャンドダイアログによって指定された既定パターン（例えば、正規表現の方言又は正規表現、テキスト文字列）と一致することを必要とする。いくつかの実施例では、マルチターンキャンドダイアログのパターンは、１つ以上のマクロ（例えば、サブパターン、正規表現マクロ）、名前付きエンティティ表現（例えば、＃ｅｎｔｉｔｙ＿ｎａｍｅ）、名前付きキャプチャグループ表現（例えば、「＄ｇｒｏｕｐ＿ｎａｍｅ＝．．．）、及び／又は任意選択的な表現（例えば、「＜＄ｏｐｔｉｏｎａｌ＿ｎａｍｅ＝．．．＞」）を含む。このようにして使用されるマクロは、文字クラス内に含むパターン内の任意の場所に配置することができ、例えば、記号（例えば、「＠」）を使用して指定されてもよい。いくつかの実施例では、名前付きエンティティ表現の実装形態は、スパンマッチングによって活用される。このようにして、自然言語入力内の名前付きエンティティは、特定の用語又は名前への厳密な順守を回避する正確な照合スキームを確実にするために、一般的な正規表現と置き換えられてもよい。
【０２０４】
したがって、いくつかの実施例では、電子デバイスは、自然言語入力（又は自然言語入力のシンタックス）をマルチターンキャンドダイアログの複数のパターンのそれぞれと比較し、一致が存在するかどうかを判定することによって、自然言語入力がダイアログ基準を満たすかどうかを判定する。いくつかの実施例では、電子デバイスは、自然言語入力とマルチターンキャンドダイアログのパターンとの間に正確な一致が見つかった場合にのみ、ダイアログ基準が満たされていると判定する。いくつかの実施例では、電子デバイスは、自然言語入力及びパターンが十分に一致する（例えば、比較により所定の閾値を満たす一致の程度をもたらす）場合に、ダイアログ基準が満たされていると判定する。
【０２０５】
いくつかの実施例では、電子デバイスは、自然言語入力に関連付けられた１つ以上の信頼性スコア（例えば、顕著性スコア）に基づいて、自然言語入力がダイアログ基準を満たすかどうかを判定する。例として、自然言語入力に応じて、電子デバイスは、パターンが自然言語入力と一致する程度を示すマルチターンキャンドダイアログの各パターンに対して信頼性スコア（例えば、顕著性スコア）を判定する。電子デバイスは、例えば、自然言語処理モジュール７３２を使用して、１つ以上の候補（例えば、候補意図及び／又はドメイン）を更に提供する。候補のそれぞれは、意図信頼性スコア（意図信頼性スコアは発話認識信頼性スコアに少なくとも部分的に基づいてもよいことを思い出されたい）などの信頼性スコアに関連付けられてもよい。信頼性スコアはランク付けされ、電子デバイスは最も高いスコアを選択する。最も高いスコアがマルチターンキャンドダイアログのパターンの信頼性スコアである場合、電子デバイスは、マルチターンキャンドダイアログに対して、より具体的には、選択された信頼性スコアに関連付けられたパターンに対して、ダイアログ基準が満たされていると判定する。いくつかの実施例では、パターン及び候補の信頼性スコアが直接比較される。他の実施例では、パターンの信頼性スコア及び／又は候補の信頼性スコアが、比較の前に調整される。
【０２０６】
いくつかの実施例では、マルチターンキャンドダイアログパターンは、オーバーライドタグ（例えば、一致が任意のドメイン結果をオーバーライドするかどうかを示すパラメータ）と関連付けられる。オーバーライドタグは、例えば、たとえパターンに関連付けられた顕著性スコアが最も高いスコアであると判定されない場合であっても、マルチターンキャンドダイアログのパターンが選択されることになるかどうかを示すことができる。いくつかの実施例では、パターンの信頼性スコアが閾値を満たす場合、オーバーライドタグのみが適用可能である。例えば、自然言語入力に応じて、電子デバイスが、ドメインが０．８２の信頼性スコアを有し、マルチターンキャンドダイアログのパターンが０．７０の信頼性スコアを有すると判定する実施例を検討する。パターンに関連付けられたオーバーライドタグが有効化され、任意選択的に、０．７０の顕著性スコアが閾値を満たす場合、電子デバイスは、以下に更に詳細に説明されるように、パターンのダイアログ基準が満たされていると判定し、マルチターンキャンドダイアログを実装することに進む。
【０２０７】
いくつかの実施例では、ダイアログ基準は、電子デバイスのコンテキストが特定の状態を有することを必要とし、特に、電子デバイスが特定のダイアログ状態を有することを必要とする。記載されるように、自然言語入力に応じて、電子デバイスは、自然言語入力がマルチターンキャンドダイアログのパターンと一致するかどうかを判定する。いくつかの実施例では、どのパターンが入力と比較されるかは、ユーザとデバイスとの間で交換されたダイアログに基づく。
【０２０８】
以下の例示的なマルチターンキャンドダイアログ交換を再び検討する。
●ユーザ：「ノックノックジョークを教えて（Tell me a knock knock joke）」
●電子デバイス：「ノックノック！（Knock knock!）」
●ユーザ：「誰なの？（Who’s there?）」
●電子デバイス：「エッチ（Etch）」
●ユーザ：「エッチ、誰？（Etch who?）」
●電子デバイス：「おだいじに（Bless you!）」
【０２０９】
入力「エッチ、誰？（Etch who?）」は、電子デバイスが出力「エッチ？（Etch）」を提供した後に一致し得るパターンである。もし、電子デバイスが「ノックノック！（Knock knock!）」を出力した後にユーザが「エッチ、誰？（Etch who?）」と代わりに話すと、一致は見つからず、マルチターンダイアログセッションが終了し得る。ダイアログ表現の実行されたシーケンスは、以下の例示的なマルチターンキャンドダイアログスクリプトから明らかである。
【数１０】
2021504843.tif 000011
【０２１０】
マルチターンキャンドダイアログスクリプトの前述の例は、マルチターンキャンドダイアログを通して進行するために単一のパターン（すなわち、「トリガ」）を含むが、他の実施例では、以下の実施例に記載されるように、任意の数のトリガが使用されてもよいことを理解されたい。
【数１１】
2021504843.tif 000012
【０２１１】
自然言語入力がマルチターンキャンドダイアログのダイアログ基準を満たすという判定に従って（８１５）、ブロック８２０において、電子デバイスは、自然言語入力に対応するマルチターンキャンドダイアログの自然言語出力を特定する。例として、電子デバイスが自然言語入力「ノックノックジョークを教えて（Tell me a knock knock joke）」を受信し、電子デバイスが自然言語入力がダイアログ基準を満たすと判定した場合、電子デバイスは、自然言語入力に関連付けられた自然言語出力を特定することができる。ブロック８２５において、電子デバイスは自然言語出力を提供する。自然言語出力は、例えば「ノックノック！（Knock knock!）」であってもよい。
【０２１２】
自然言語入力がマルチターンキャンドダイアログのダイアログ基準を満たさないという判定に従って（８３０）、ブロック８３５において、電子デバイスは、自然言語入力に関連付けられたタスクを特定する。いくつかの実施例では、電子デバイスは、例えば、タスクフロー処理モジュール７３６を使用してタスクを特定する。例として、電子デバイスは、説明されるように、ｍ個の最良の（例えば、最高ランクの）候補意図に基づいて、候補タスクを特定することができる。ブロック８４０において、電子デバイスは、特定されたタスクを実行する。
【０２１３】
いくつかの実施例では、ステップ８３５を参照して説明されるように、タスクを特定することは、自然言語入力に関連付けられた意図を判定し、続いて、意図に関連付けられたタスクを特定することを必要とする。いくつかの実施例では、ダイアログ基準が満たされているかどうかを判定する（ステップ８１０）ときに、１つ以上の意図を判定することができる。したがって、いくつかの実施例では、タスクを特定することは、以前に判定された意図に関連付けられたタスクを特定することのみを含んでもよい。
【０２１４】
いくつかの実施例では、電子デバイスは、ダイアログ状態を記憶する。例えば、自然言語入力がダイアログ基準を満たさない場合、電子デバイスは、ユーザがしばらく経ってマルチターンキャンドダイアログセッションを後で再開することができるように、電子デバイスのダイアログ状態を記憶してもよい。その後、ユーザは、ダイアログ基準を満たす後続の自然言語入力を提供して、マルチターンキャンドダイアログのセッションを継続することができる。このように、ユーザがダイアログ基準を満たす入力を提供しなかったと電子デバイスが判定した場合、ユーザは、マルチターンキャンドダイアログによって指定されたダイアログシーケンスを再開するようには強制されない。
【０２１５】
図８を参照して上述された動作は、任意選択的に、図１〜図４、図６Ａ〜図６Ｂ、及び図７Ａ〜図７Ｃに示される構成要素によって実装される。例えば、プロセス８００の動作は、限定するものではないが、デバイス１０４、２００、４００、及び６００を含む、本明細書で説明される任意のデバイス（又は、その構成要素）によって実装することができる。図１〜図４、図６Ａ〜図６Ｂ、及び図７Ａ〜図７Ｃに示される構成要素に基づいて、どのように他のプロセスが実装されるかは、当業者には明らかであろう。
【０２１６】
一部の実装形態によれば、コンピュータ可読記憶媒体（例えば、非一時的コンピュータ可読記憶媒体）が提供され、このコンピュータ可読記憶媒体は、電子デバイスの１つ以上のプロセッサによって実行される１つ以上のプログラムを記憶し、それら１つ以上のプログラムは、本明細書で説明される方法又はプロセスのうちのいずれかを実行する命令を含む。
【０２１７】
一部の実装形態によれば、本明細書で説明される方法又はプロセスのうちのいずれかを実行する手段を備える、電子デバイス（例えば、ポータブル電子デバイス）が提供される。
【０２１８】
一部の実装形態によれば、本明細書で説明される方法又はプロセスのうちのいずれかを実行するように構成された処理ユニットを備える、電子デバイス（例えば、ポータブル電子デバイス）が提供される。
【０２１９】
一部の実装形態によれば、１つ以上のプロセッサと、その１つ以上のプロセッサによって実行するための１つ以上のプログラムを記憶しているメモリとを備え、それら１つ以上のプログラムが、本明細書で説明される方法又はプロセスのうちのいずれかを実行する命令を含む、電子デバイス（例えば、ポータブル電子デバイス）が提供される。
【０２２０】
上記は、説明を目的として、特定の実施形態を参照して記述されている。しかしながら、上記の例示的な論考は、網羅的であること、又は開示される厳密な形態に本発明を限定することを意図するものではない。上記の教示を考慮して、多くの修正及び変形が可能である。これらの実施形態は、本技術の原理、及びその実際の適用を最もよく説明するために、選択及び記載されている。それにより、他の当業者は、意図された具体的な用途に適するような様々な修正を用いて、本技術及び様々な実施形態を最も良好に利用することが可能となる。
【０２２１】
添付図面を参照して、本開示及び例を十分に説明してきたが、様々な変更及び修正が、当業者には明らかとなるであろうことに留意されたい。そのような変更及び修正は、特許請求の範囲によって定義されるような、本開示及び例の範囲内に含まれるものとして理解されたい。
【０２２２】
上述のように、本技術の一態様は、ユーザが求める内容又はユーザが関心を持つ可能性のある任意の他の内容に関するユーザへの配信を改善するために、種々のソースから入手可能なデータを収集及び使用することである。本開示は、いくつかの例において、この収集されたデータは、特定の人を一意に特定する個人情報データ、又は特定の人に連絡する若しくはその所在を突き止めるために使用できる個人情報データを含み得ることを想到している。そのような個人情報データとしては、人口統計データ、位置に基づくデータ、電話番号、電子メールアドレス、自宅の住所、又は任意の他の識別情報を挙げることができる。
【０２２３】
本開示は、本技術におけるそのような個人情報データの使用がユーザの利益になる使用であり得る点を認識するものである。例えば、よりユーザの興味を引く対象のコンテンツを配信するために、個人情報データが使用されてもよい。したがって、そのような個人情報データの使用は、配信されるコンテンツの意図的な制御を可能にする。更には、ユーザに利益をもたらす、個人情報データに関する他の使用もまた、本開示によって想到される。
【０２２４】
本開示は、そのような個人情報データの収集、分析、開示、転送、記憶、又は他の使用目的の責任を負うエンティティが、適切に規定されたプライバシーのポリシー及び／又はプライバシーの慣行に準拠すると更に想到する。具体的には、そのようなエンティティは、個人情報データを秘密として厳重に保守するための、業界又は政府の要件を満たしているか又は上回るものとして一般に認識されている、プライバシーのポリシー及び慣行を実装し、一貫して使用するべきである。例えば、ユーザからの個人情報は、そのエンティティの合法的かつ正当な使用のために収集されるべきであり、それらの合法的使用を除いて、共用又は販売されるべきではない。更には、そのような収集は、ユーザに告知して同意を得た後にのみ実施するべきである。加えて、そのようなエンティティは、そのような個人情報データへのアクセスを保護して安全化し、その個人情報データへのアクセス権を有する他者が、それらのプライバシーのポリシー及び手順を遵守することを保証するための、あらゆる必要な措置を講じるであろう。更には、そのようなエンティティは、広く受け入れられているプライバシーのポリシー及び慣行に対する自身の遵守を証明するために、第三者による評価を自らが受けることができる。
【０２２５】
前述のことがらにもかかわらず、本開示はまた、個人情報データの使用又は個人情報データへのアクセスを、ユーザが選択的に阻止する実施形態も想到する。すなわち、本開示は、そのような個人情報データへのアクセスを防止又は阻止するように、ハードウェア要素及び／又はソフトウェア要素を提供することができると想到する。例えば、広告配信サービスの場合において、本技術は、ユーザが、サービスの登録の間、個人情報データの収集への参加の「オプトイン」又は「オプトアウト」を選択することを可能とするように構成することができる。別の実施例では、ユーザは、対象のコンテンツ配信サービスに対して位置情報を提供しないことを選択してもよい。更に別の実施例では、ユーザは、正確な位置情報を提供しないが位置のゾーン情報の転送は許可することを選択してもよい。
【０２２６】
それゆえ、本開示は、１つ以上の様々な開示された実施形態を実施するための、個人情報データの使用を広範に網羅するものではあるが、本開示はまた、そのような個人情報データにアクセスすることを必要とせずに、それらの様々な実施形態を実装することもまた可能であることを想到している。すなわち、本技術の様々な実施形態は、そのような個人情報データの全て又は一部分が欠如することにより、実施不可能となるものではない。例えば、ユーザに関連付けられたデバイスによって要求されるコンテンツなどの非個人情報データ若しくは必要最小限の個人情報、コンテンツ配信サービスが入手可能な他の非個人情報、又は公的に入手可能な情報に基づいて嗜好を推測することによって、コンテンツを選択し、ユーザへ配信することができる。
【図１】
2021504843.tif 000013
【図２Ａ】
2021504843.tif 000014
【図２Ｂ】
2021504843.tif 000015
【図３】
2021504843.tif 000016
【図４】
2021504843.tif 000017
【図５Ａ】
2021504843.tif 000018
【図５Ｂ】
2021504843.tif 000019
【図６Ａ】
2021504843.tif 000020
【図６Ｂ】
2021504843.tif 000021
【図７Ａ】
2021504843.tif 000022
【図７Ｂ】
2021504843.tif 000023
【図７Ｃ】
2021504843.tif 000024
【図８】
2021504843.tif 000025
【手続補正書】
【提出日】令和2年5月29日(2020.5.29)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
１つ以上のプロセッサと、
メモリと、
１つ以上のプログラムと、を備える、電子デバイスであって、前記１つ以上のプログラムは、前記メモリに記憶され、前記１つ以上のプロセッサによって実行されるように構成されており、前記１つ以上のプログラムは、
第１の自然言語入力を受信し、
前記第１の自然言語入力がマルチターンキャンドダイアログの第１のダイアログ基準を満たすかどうかを判定し、
前記第１の自然言語入力が前記マルチターンキャンドダイアログの前記第１のダイアログ基準を満たすという判定に従って、
前記第１の自然言語入力に対応する前記マルチターンキャンドダイアログの第１の既定の自然言語出力を特定し、
前記第１の既定の自然言語出力を出力し、
第２の自然言語入力を受信し、
前記第２の自然言語入力が前記マルチターンキャンドダイアログの第２のダイアログ基準を満たすかどうかを判定し、
前記第２の自然言語入力が前記マルチターンキャンドダイアログの前記第２のダイアログ基準を満たすという判定に従って、
前記第２の自然言語入力に対応する前記マルチターンキャンドダイアログの第２の既定の自然言語出力を特定し、
前記第２の既定の自然言語出力を出力し、
前記第１の自然言語入力が前記マルチターンキャンドダイアログの前記第１のダイアログ基準を満たさないという判定に従って、
前記第１の自然言語入力に関連付けられたタスクを特定し、
前記第１の自然言語入力に関連付けられた前記タスクを実行する、
命令を含む、電子デバイス。
【請求項２】
前記マルチターンキャンドダイアログの前記第１のダイアログ基準は、前記第１の自然言語入力が前記マルチターンキャンドダイアログのパターンと一致するという要件を含む、請求項１に記載の電子デバイス。
【請求項３】
前記１つ以上のプログラムは、
前記第１の自然言語入力に対して、前記マルチターンキャンドダイアログに関連付けられた第１の顕著性スコアを判定し、
前記第１の自然言語入力に対して、ドメインに関連付けられた第２の顕著性スコアを判定する、命令を更に含み、
前記マルチターンキャンドダイアログの前記第１のダイアログ基準は、前記第１の顕著性スコアが前記第２の顕著性スコアよりも高いという要件を含む、
請求項１に記載の電子デバイス。
【請求項４】
前記第１の自然言語入力に対して、前記マルチターンキャンドダイアログに関連付けられた前記第１の顕著性スコアを判定することは、
前記第１の自然言語入力が前記マルチターンキャンドダイアログのスパンと一致する程度を判定することを含む、請求項３に記載の電子デバイス。
【請求項５】
前記第１の自然言語入力が前記マルチターンキャンドダイアログの第１のダイアログ基準を満たすかどうかを判定することは、
前記マルチターンキャンドダイアログがオーバーライドタグに関連付けられているかどうかを判定することと、
前記マルチターンキャンドダイアログが前記オーバーライドタグに関連付けられているという判定に従って、前記第１の自然言語入力が前記マルチターンキャンドダイアログの前記第１のダイアログ基準を満たすと判定することと、
を含む、請求項３に記載の電子デバイス。
【請求項６】
前記１つ以上のプログラムは、
前記第２の自然言語入力が前記マルチターンキャンドダイアログの前記第２のダイアログ基準を満たさないという判定に従って、前記マルチターンキャンドダイアログの状態を記憶する命令を更に含む、請求項１に記載の電子デバイス。
【請求項７】
前記１つ以上のプログラムは、
第３の自然言語入力を受信し、
前記第３の自然言語入力が前記マルチターンキャンドダイアログの前記状態に対応するかどうかを判定し、
前記第３の自然言語入力が前記マルチターンキャンドダイアログの前記状態に対応するという判定に従って、前記第２の既定の自然言語出力を出力する、
命令を更に含む、請求項６に記載の電子デバイス。
【請求項８】
前記第３の自然言語入力が前記マルチターンキャンドダイアログの前記状態に対応するかどうかを判定することは、前記第３の自然言語入力が前記マルチターンキャンドダイアログの前記第２のダイアログ基準を満たすかどうかを判定することを含む、請求項７に記載の電子デバイス。
【請求項９】
前記第１の自然言語入力に関連付けられたタスクを特定することは、前記第１の自然言語入力に関連付けられた意図に基づいて前記タスクを特定することを含む、請求項１に記載の電子デバイス。
【請求項１０】
前記第１の自然言語入力に関連付けられた前記タスクを実行することは、前記意図に関連付けられたタスクを実行することを含む、請求項９に記載の電子デバイス。
【請求項１１】
１つ以上のプログラムを記憶しているコンピュータ可読記憶媒体であって、前記１つ以上のプログラムは命令を含み、前記命令は、電子デバイスの１つ以上のプロセッサによって実行されると、前記電子デバイスに、
第１の自然言語入力を受信させ、
前記第１の自然言語入力がマルチターンキャンドダイアログの第１のダイアログ基準を満たすかどうかを判定させ、
前記第１の自然言語入力が前記マルチターンキャンドダイアログの前記第１のダイアログ基準を満たすという判定に従って、
前記第１の自然言語入力に対応する前記マルチターンキャンドダイアログの第１の既定の自然言語出力を特定させ、
前記第１の既定の自然言語出力を出力させ、
前記第２の自然言語入力が前記マルチターンキャンドダイアログの第２のダイアログ基準を満たすかどうかを判定させ、
前記第２の自然言語入力が前記マルチターンキャンドダイアログの前記第２のダイアログ基準を満たすという判定に従って、
前記第２の自然言語入力に対応する前記マルチターンキャンドダイアログの第２の既定の自然言語出力を特定させ、
前記第２の既定の自然言語出力を出力させ、
前記第１の自然言語入力が前記マルチターンキャンドダイアログの前記第１のダイアログ基準を満たさないという判定に従って、
前記第１の自然言語入力に関連付けられたタスクを特定させ、
前記第１の自然言語入力に関連付けられた前記タスクを実行させる、
コンピュータ可読記憶媒体。
【請求項１２】
１つ以上のプロセッサを有する電子デバイスにおいて、
第１の自然言語入力を受信することと、
前記第１の自然言語入力がマルチターンキャンドダイアログの第１のダイアログ基準を満たすかどうかを判定することと、
前記第１の自然言語入力が前記マルチターンキャンドダイアログの前記第１のダイアログ基準を満たすという判定に従って、
前記第１の自然言語入力に対応する前記マルチターンキャンドダイアログの第１の既定の自然言語出力を特定することと、
前記第１の既定の自然言語出力を出力することと、
第２の自然言語入力を受信することと、
前記第２の自然言語入力が前記マルチターンキャンドダイアログの第２のダイアログ基準を満たすかどうかを判定することと、
前記第２の自然言語入力が前記マルチターンキャンドダイアログの前記第２のダイアログ基準を満たすという判定に従って、
前記第２の自然言語入力に対応する前記マルチターンキャンドダイアログの第２の既定の自然言語出力を特定することと、
前記第２の既定の自然言語出力を出力することと、
前記第１の自然言語入力が前記マルチターンキャンドダイアログの前記第１のダイアログ基準を満たさないという判定に従って、
前記第１の自然言語入力に関連付けられたタスクを特定することと、
前記第１の自然言語入力に関連付けられた前記タスクを実行することと、
を含む、方法。
【請求項１３】
前記マルチターンキャンドダイアログの前記第１のダイアログ基準は、前記第１の自然言語入力が前記マルチターンキャンドダイアログのパターンと一致するという要件を含む、請求項１１に記載のコンピュータ可読記憶媒体。
【請求項１４】
前記１つ以上のプログラムは命令を更に含み、前記命令は、電子デバイスの１つ以上のプロセッサによって実行されると、前記電子デバイスに、
前記第１の自然言語入力に対して、前記マルチターンキャンドダイアログに関連付けられた第１の顕著性スコアを判定させ、
前記第１の自然言語入力に対して、ドメインに関連付けられた第２の顕著性スコアを判定させ、
前記マルチターンキャンドダイアログの前記第１のダイアログ基準は、前記第１の顕著性スコアが前記第２の顕著性スコアよりも高いという要件を含む、
請求項１１に記載のコンピュータ可読記憶媒体。
【請求項１５】
前記第１の自然言語入力に対して、前記マルチターンキャンドダイアログに関連付けられた前記第１の顕著性スコアを判定することは、
前記第１の自然言語入力が前記マルチターンキャンドダイアログのスパンと一致する程度を判定することを含む、
請求項１４に記載のコンピュータ可読記憶媒体。
【請求項１６】
前記第１の自然言語入力が前記マルチターンキャンドダイアログの第１のダイアログ基準を満たすかどうかを判定することは、
前記マルチターンキャンドダイアログがオーバーライドタグに関連付けられているかどうかを判定することと、
前記マルチターンキャンドダイアログが前記オーバーライドタグに関連付けられているという判定に従って、前記第１の自然言語入力が前記マルチターンキャンドダイアログの前記第１のダイアログ基準を満たすと判定することと、
を含む、請求項１４に記載のコンピュータ可読記憶媒体。
【請求項１７】
前記１つ以上のプログラムは命令を更に含み、前記命令は、電子デバイスの１つ以上のプロセッサによって実行されると、前記電子デバイスに、
前記第２の自然言語入力が前記マルチターンキャンドダイアログの前記第２のダイアログ基準を満たさないという判定に従って、前記マルチターンキャンドダイアログの状態を記憶させる、
請求項１１に記載のコンピュータ可読記憶媒体。
【請求項１８】
前記１つ以上のプログラムは命令を更に含み、前記命令は、電子デバイスの１つ以上のプロセッサによって実行されると、前記電子デバイスに、
第３の自然言語入力を受信させ、
前記第３の自然言語入力が前記マルチターンキャンドダイアログの前記状態に対応するかどうかを判定させ、
前記第３の自然言語入力が前記マルチターンキャンドダイアログの前記状態に対応するという判定に従って、前記第２の既定の自然言語出力を出力させる、
請求項１７に記載のコンピュータ可読記憶媒体。
【請求項１９】
前記第３の自然言語入力が前記マルチターンキャンドダイアログの前記状態に対応するかどうかを判定することは、前記第３の自然言語入力が前記マルチターンキャンドダイアログの前記第２のダイアログ基準を満たすかどうかを判定することを含む、請求項１８に記載のコンピュータ可読記憶媒体。
【請求項２０】
前記第１の自然言語入力に関連付けられたタスクを特定することは、前記第１の自然言語入力に関連付けられた意図に基づいて前記タスクを特定することを含む、請求項１１に記載のコンピュータ可読記憶媒体。
【請求項２１】
前記第１の自然言語入力に関連付けられた前記タスクを実行することは、前記意図に関連付けられたタスクを実行することを含む、請求項２０に記載のコンピュータ可読記憶媒体。
【請求項２２】
前記マルチターンキャンドダイアログの前記第１のダイアログ基準は、前記第１の自然言語入力が前記マルチターンキャンドダイアログのパターンと一致するという要件を含む、請求項１２に記載の方法。
【請求項２３】
前記第１の自然言語入力に対して、前記マルチターンキャンドダイアログに関連付けられた第１の顕著性スコアを判定することと、
前記第１の自然言語入力に対して、ドメインに関連付けられた第２の顕著性スコアを判定することと、を更に含み、
前記マルチターンキャンドダイアログの前記第１のダイアログ基準は、前記第１の顕著性スコアが前記第２の顕著性スコアよりも高いという要件を含む、
請求項１２に記載の方法。
【請求項２４】
前記第１の自然言語入力に対して、前記マルチターンキャンドダイアログに関連付けられた前記第１の顕著性スコアを判定することは、
前記第１の自然言語入力が前記マルチターンキャンドダイアログのスパンと一致する程度を判定することを含む、
請求項２３に記載の方法。
【請求項２５】
前記第１の自然言語入力が前記マルチターンキャンドダイアログの第１のダイアログ基準を満たすかどうかを判定することは、
前記マルチターンキャンドダイアログがオーバーライドタグに関連付けられているかどうかを判定することと、
前記マルチターンキャンドダイアログが前記オーバーライドタグに関連付けられているという判定に従って、前記第１の自然言語入力が前記マルチターンキャンドダイアログの前記第１のダイアログ基準を満たすと判定することと、
を含む、請求項２３に記載の方法。
【請求項２６】
前記第２の自然言語入力が前記マルチターンキャンドダイアログの前記第２のダイアログ基準を満たさないという判定に従って、前記マルチターンキャンドダイアログの状態を記憶すること、
を更に含む、請求項１２に記載の方法。
【請求項２７】
第３の自然言語入力を受信することと、
前記第３の自然言語入力が前記マルチターンキャンドダイアログの前記状態に対応するかどうかを判定することと、
前記第３の自然言語入力が前記マルチターンキャンドダイアログの前記状態に対応するという判定に従って、前記第２の既定の自然言語出力を出力することと、
を更に含む、請求項２６に記載の方法。
【請求項２８】
前記第３の自然言語入力が前記マルチターンキャンドダイアログの前記状態に対応するかどうかを判定することは、前記第３の自然言語入力が前記マルチターンキャンドダイアログの前記第２のダイアログ基準を満たすかどうかを判定することを含む、請求項２７に記載の方法。
【請求項２９】
前記第１の自然言語入力に関連付けられたタスクを特定することは、前記第１の自然言語入力に関連付けられた意図に基づいて前記タスクを特定することを含む、請求項１２に記載の方法。
【請求項３０】
前記第１の自然言語入力に関連付けられた前記タスクを実行することは、前記意図に関連付けられたタスクを実行することを含む、請求項２９に記載の方法。
【国際調査報告】
2021504843.tif 000026
2021504843.tif 000027