(57)【特許請求の範囲】
【請求項１】
少なくとも１つのプロセッサを含む電子デバイスにおいて、
少なくとも１人のユーザから、構造化されていない自然言語情報を受信すること（１４０２）と、
前記構造化されていない自然言語情報の受信に応じて、イベント情報が前記構造化されていない自然言語情報内に存在するか否かを判定すること（１４１０）と、
イベント情報が前記構造化されていない自然言語情報内に存在するとの判定に従って、イベントへの同意が前記構造化されていない自然言語情報内に存在するか否かを判定すること（１４６０）と、
イベントへの同意が存在しているとの判定に従って、前記イベントのイベント種類を判定すること（１４６６）と、
前記イベント種類に基づいてイベント説明を提供すること（１５０５）と、
を含む方法（１４００）。
【請求項２】
前記構造化されていない自然言語情報は、１つ以上のメッセージを含む（１４０３）、請求項１に記載の方法。
【請求項３】
イベント情報が前記構造化されていない自然言語情報内に存在するか否かを判定することは、
前記構造化されていない自然言語情報に関連付けられた１つ以上のポラリティを判定すること（１４１１）と、
イベント情報が存在するか否かを前記１つ以上のポラリティに基づいて判定すること（１４５４）と、
を含む、請求項１に記載の方法。
【請求項４】
前記構造化されていない自然言語情報に関連付けられた１つ以上のポラリティを判定すること（１４１１）は、
前記構造化されていない自然言語情報に基づいて入力レイヤを生成することであって、前記入力レイヤが複数の入力ユニット及び複数の先行する第１のコンテキストユニットを含む、こと（１４１２）と、
前記入力レイヤに基づいて隠れレイヤを生成することであって、前記隠れレイヤは複数の現在の第１のコンテキストユニットを含む、こと（１４２４）と、
前記隠れレイヤに基づいて出力レイヤを生成することであって、前記出力レイヤは前記構造化されていない自然言語情報の少なくとも一部分の前記１つ以上のポラリティを表す１つ以上の出力ラベルユニットを含む、こと（１４４０）と、
を含む、請求項３に記載の方法。
【請求項５】
前記構造化されていない自然言語情報に基づいて前記入力レイヤを生成すること（１４１２）は、
前記構造化されていない自然言語情報に基づいて単語列を取得すること（１４１３）と、
前記構造化されていない自然言語情報に基づいて複数のトークンを取得すること（１４１６）と、
前記単語列及び前記複数のトークンのうちの少なくとも１つを用いて前記入力レイヤを生成すること（１４２０）と、
を含む、請求項４に記載の方法。
【請求項６】
前記入力レイヤに基づいて前記隠れレイヤを生成すること（１４２４）は、
現在の入力ユニットを第１の重み行列を用いて重み付けすること（１４２５）と、
先行する第１のコンテキストユニットを、第２の重み行列を用いて重み付けすること（１４２６）と、
前記現在の入力ユニットの前記重み付け及び前記先行する第１のコンテキストユニットの前記重み付けに基づいて、現在の第１のコンテキストユニットを判定すること（１４２８）と、
を含む、請求項４に記載の方法。
【請求項７】
前記隠れレイヤは複数の第２のコンテキストユニットを更に含む（１４３４）、請求項４に記載の方法。
【請求項８】
前記入力レイヤに基づいて前記隠れレイヤを生成すること（１４２４）は、
現在の入力ユニットを第３の重み行列を用いて重み付けすること（１４３５）と、
後続する第２のコンテキストユニットを、第４の重み行列を用いて重み付けすること（１４３６）と、
前記現在の入力ユニットの前記重み付け及び前記後続する第２のコンテキストユニットの前記重み付けに基づいて、現在の第２のコンテキストユニットを判定すること（１４３７）と、
を含む、請求項７に記載の方法。
【請求項９】
前記出力レイヤは、複数の出力ラベルユニットを含み、各出力ラベルユニットは１−ｏｆ−Ｋ符号化を有し、前記Ｋは予め判定されたポラリティセットのポラリティの数を表す（１４４２）、請求項４に記載の方法。
【請求項１０】
前記予め判定されたポラリティセットは、提案、拒絶、受諾、及びイベント無しを含む（１４４３）、請求項９に記載の方法。
【請求項１１】
前記隠れレイヤに基づいて前記出力レイヤを生成すること（１４４０）は、
現在の第１のコンテキストユニットを、第５の重み行列を用いて重み付けすること（１４４４）と、
現在の出力ラベルユニットを、前記現在の第１のコンテキストユニットの前記重み付けに基づいて判定すること（１４４６）と、
を含む、請求項４に記載の方法。
【請求項１２】
前記隠れレイヤに基づいて出力レイヤを生成すること（１４４０）は、
現在の状態を、現在の第１のコンテキストユニット及び現在の第２のコンテキストユニットに基づいて取得すること（１４４８）と、
前記現在の状態を第６の重み行列を用いて重み付けすること（１４４９）と、
現在の出力ラベルユニットを、前記現在の状態の前記重み付けに基づいて判定すること（１４５０）と、
を更に含む、請求項４に記載の方法。
【請求項１３】
イベント情報が存在するか否かを前記１つ以上のポラリティに基づいて判定すること（１４５４）は、
前記１つ以上のポラリティが提案、拒絶又は受諾のうちの少なくとも１つを含むか否かを判定すること（１４５５）と、
前記１つ以上のポラリティが提案、拒絶又は受諾のうちの少なくとも１つを含むとの判定に従って、前記提案、拒絶、又は受諾のうちの前記少なくとも１つに関連付けられた確率を判定すること（１４５６）と、
前記確率が第１の確率閾値を満たすか否かを判定すること（１４５７）と、
前記確率が第１の確率閾値を満たすとの判定に従って、イベント情報が前記構造化されていない自然言語情報内に存在することを判定すること（１４５８）と、
を含む、請求項３に記載の方法。
【請求項１４】
イベント情報が前記構造化されていない自然言語情報内に存在するとの判定に従って、イベントへの同意が前記構造化されていない自然言語情報内に存在するか否かを判定すること（１４６０）は、
前記１つ以上のポラリティが受諾を含むか否かを判定すること（１４６１）と、
前記１つ以上のポラリティが受諾を含むとの判定に従って、前記受諾に関連付けられた確率を判定すること（１４６２）と、
前記確率が第２の確率閾値を満たすか否かを判定すること（１４６３）と、
確率が前記第２の確率閾値を満たすとの判定に従って、イベントへの同意が存在することを判定すること（１４６４）と、
を含む、請求項３に記載の方法。
【請求項１５】
前記イベント種類を判定すること（１４６６）は、自然言語イベントオントロジを用いた階層分類に基づくものである（１４６７）、請求項１に記載の方法。
【請求項１６】
前記自然言語イベントオントロジは１つ以上のレベルを含み、各レベルは１つ以上のイベント種類ノードを含む（１４６８）、請求項１５に記載の方法。
【請求項１７】
少なくとも１つのイベント種類ノードは、優先規則に関連付けられており、前記優先規則は前記少なくとも１つのイベント種類ノードの、別のイベント種類ノードに対する相対的優先度を示す（１４７１）、請求項１６に記載の方法。
【請求項１８】
前記イベントの前記イベント種類を判定することは、
前記イベントに関連付けられた第１のレベルのイベント種類を判定すること（１４７４）と、
前記イベントの前記イベント種類を、前記第１のレベルのイベント種類に基づいて判定すること（１４８４）と、
を含む、請求項１に記載の方法。
【請求項１９】
前記第１のレベルのイベント種類を判定すること（１４７４）は、出力レイヤの第１のレベルのイベント種類出力を判定することであって、前記第１のレベルのイベント種類出力は、１−ｏｆ−Ｌ符号化を有し、前記Ｌは前記自然言語イベントオントロジの第１のレベルのイベント種類ノードの数を表す、こと（１４７５）、を含む、請求項１８に記載の方法。
【請求項２０】
前記第１のレベルのイベント種類出力を判定すること（１４７５）は、
隠れレイヤの後端の第１のコンテキストユニットを重み付けすること（１４７６）と、
前記第１のレベルのイベント種類出力を前記後端の第１のコンテキストユニットの前記重み付けに基づいて判定すること（１４７７）と、
を含む、請求項１９に記載の方法。
【請求項２１】
前記第１のレベルのイベント種類出力を判定すること（１４７５）は、
後端の第１のコンテキストユニットと先頭の第２のコンテキストユニットとを連結すること（１４７８）と、
前記後端の第１のコンテキストユニットと前記先頭の第２のコンテキストユニットの前記連結を重み付けすること（１４７９）と、
前記第１のレベルのイベント種類出力を、前記後端の第１のコンテキストユニットと前記先頭の第２のコンテキストユニットの前記連結の前記重み付けに基づいて判定すること（１４８０）と、
を含む、請求項１９に記載の方法。
【請求項２２】
前記第１のレベルのイベント種類出力を判定すること（１４７５）は、活性化関数を適用すること（１４８１）を含む、請求項１９に記載の方法。
【請求項２３】
前記イベントの前記イベント種類を、前記第１のレベルのイベント種類に基づいて判定すること（１４８４）は、
それぞれの第２のレベルのイベント種類ノードに対して、前記第２のレベルのイベント種類ノードと前記構造化されていない自然言語情報との間の相関の数を判定することであって、それぞれの第２のレベルのイベント種類ノードが、前記第１のレベルのイベント種類を表す前記第１のレベルのイベント種類ノードの子ノードである、こと（１４８６）と、
第２のレベルのイベント種類を、それぞれの第２のレベルのイベント種類ノードの前記相関の数に基づいて判定すること（１４８８）と、
を含む、請求項１８に記載の方法。
【請求項２４】
前記第２のレベルのイベント種類を判定すること（１４８８）は、
それぞれの第２のレベルのイベント種類ノードの前記相関の数に基づいて、相関の最大数を判定すること（１４９０）と、
前記第２のレベルのイベント種類を前記相関の最大数に基づいて判定すること（１４９２）と、
を含む、請求項２３に記載の方法。
【請求項２５】
少なくとも２つの第２のレベルのイベント種類ノードが、前記相関の最大数に対応するか否かを判定すること（１４９３）と、
少なくとも２つの第２のレベルのイベント種類ノードが、前記相関の最大数に対応するとの判定に従って、１つ以上の優先規則に基づいて前記第２のレベルのイベント種類を判定すること（１４９４）と、
を更に含む、請求項２４に記載の方法。
【請求項２６】
前記イベントの前記イベント種類に基づいて前記イベント説明を提供すること（１５０５）は、イベントタイトル（１５０６）、イベントの開始時間（１５０８）、イベントの終了時間（１５１０）、及びイベントの持続時間（１５１２）のうちの少なくとも１つを提供することを含み、前記イベントタイトルは、対応するイベント種類ノードのテーマを含む、請求項１に記載の方法。
【請求項２７】
カレンダーエントリを、前記イベント説明に基づいて生成すること（１５１８）と、
前記カレンダーエントリを表示すること（１５２０）と、
１つ以上のアフォーダンスを提供することであって、前記１つ以上のアフォーダンスが前記カレンダーエントリに関する１つ以上のユーザ入力を受信することを可能にする、こと（１５２２）と、
を更に含む、請求項１に記載の方法。
【請求項２８】
１つ以上のプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、前記１つ以上のプログラムが命令を含み、前記命令が、電子デバイスの１つ以上のプロセッサによって実行されると、前記電子デバイスに、
少なくとも１人のユーザから、構造化されていない自然言語情報を受信させ（１４０２）、
前記構造化されていない自然言語情報の受信に応じて、イベント情報が前記構造化されていない自然言語情報内に存在するか否かを判定させ（１４１０）、
イベント情報が前記構造化されていない自然言語情報内に存在するとの判定に従って、イベントへの同意が前記構造化されていない自然言語情報内に存在するか否かを判定させ（１４６０）、
イベントへの同意が存在しているとの判定に従って、前記イベントのイベント種類を判定させ（１４６６）、
前記イベント種類に基づいてイベント説明を提供させる（１５０５）、
非一時的コンピュータ可読記憶媒体。
【請求項２９】
１つ以上のプロセッサと、
メモリと、
メモリに記憶された１つ以上のプログラムであって、
少なくとも１人のユーザから、構造化されていない自然言語情報を受信し（１４０２）、
前記構造化されていない自然言語情報の受信に応じて、イベント情報が前記構造化されていない自然言語情報内に存在するか否かを判定し（１４１０）、
イベント情報が前記構造化されていない自然言語情報内に存在するとの判定に従って、イベントへの同意が前記構造化されていない自然言語情報内に存在するか否かを判定し（１４６０）、
イベントへの同意が存在しているとの判定に従って、前記イベントのイベント種類を判定し（１４６６）、
前記イベント種類に基づいてイベント説明を提供する（１５０５）、
命令を含む、１つ以上のプログラムと、
を備えるシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願の相互参照］
本出願は、２０１６年６月１１日に出願された「Ｄａｔａ  Ｄｒｉｖｅｎ  Ｎａｔｕｒａｌ  Ｌａｎｇｕａｇｅ  Ｅｖｅｎｔ  Ｄｅｔｅｃｔｉｏｎ  ａｎｄ  Ｃｌａｓｓｉｆｉｃａｔｉｏｎ」と題する米国仮特許出願第６２／３４８，８９８号、２０１６年９月１９日に出願された「Ｄａｔａ  Ｄｒｉｖｅｎ  Ｎａｔｕｒａｌ  Ｌａｎｇｕａｇｅ  Ｅｖｅｎｔ  Ｄｅｔｅｃｔｉｏｎ  ａｎｄ  Ｃｌａｓｓｉｆｉｃａｔｉｏｎ」と題する米国本出願第１５／２６９，７２１号、及び２０１６年７月２５日に出願された「Ｄａｔａ  Ｄｒｉｖｅｎ  Ｎａｔｕｒａｌ  Ｌａｎｇｕａｇｅ  Ｅｖｅｎｔ  Ｄｅｔｅｃｔｉｏｎ  ａｎｄ  Ｃｌａｓｓｉｆｉｃａｔｉｏｎ」と題するデンマーク特許出願第ＰＡ２０１６７０５５２号に対する優先権を主張するものである。これらの出願のそれぞれの内容は、その全体があらゆる目的で、参照により本明細書に組み込まれる。
［技術分野］
【０００２】
本開示は、全般的に、自然言語処理に関し、より具体的には、構造化されていない自然言語情報を用いたイベントの検出及び分類に関する。
【背景技術】
【０００３】
イベント情報が構造化されていない自然言語情報に含まれる場合がある。例えば、二人のユーザがテキストメッセージを使用し、ランチイベントを手配する場合がある。ユーザたちがイベントに同意すると、イベントに対するカレンダーエントリの作成を望む場合がある。従来から、カレンダーエントリを作成するのに、ユーザは、手動で、テキストメッセージ等の構造化されていない自然言語からカレンダーエントリにイベント情報を転写する必要がある。イベント情報の手動での転写には、典型的に、多数のコピー・アンド・ペースト操作又は退屈な手動によるエントリが必要とされる。よって、手動でカレンダーエントリを作成するプロセスは、厄介で時間がかかるものである。したがって、構造化されていない自然言語情報に基づいてイベントを検出及び分類する更に効率的な方法が必要とされる。
【発明の概要】
【０００４】
イベントを検出するいくつかの技法は、ＨＴＭＬフォーマットでの構造化されたメッセージ（例えば、航空会社、ホテル、又は旅行サービスからの、コンピュータが生成した電子メール）を使用する。メッセージは構造化されているので、検出は比較的簡単明瞭である。構造化されていない自然言語情報内のイベントの検出及び分類は、自然言語の固有の曖昧さのため、より難解である。構造化されていない自然言語情報としては、例えば、ユーザが生成したテキストメッセージ、電子メール、音声メール、インスタントメッセージ、会話等が挙げられる。構造化されていない自然言語は広く用いられているので、構造化されていない自然言語情報に基づいたイベントの検出及び分類は重要であり、望まれている。
【０００５】
デジタルアシスタントを動作させるためのシステム及びプロセスが提供される。１つ以上の実施例によれば、方法は、１つ以上のプロセッサ及びメモリを有するユーザデバイスにおいて、少なくとも１人のユーザから、構造化されていない自然言語情報を受信することを含む。方法はまた、構造化されていない自然言語情報の受信に応じて、イベント情報が構造化されていない自然言語情報内に存在するか否かを判定することを含む。方法は、イベント情報が構造化されていない自然言語情報内に存在するとの判定に従って、イベントへの同意が構造化されていない自然言語情報内に存在するか否かを判定することを更に含む。方法は、イベントへの同意が存在するとの判定に従って、イベントのイベント種類を判定することと、そのイベント種類に基づいてイベントの説明を提供することと、を更に含む。
【０００６】
これらの機能を実行する実行可能命令は、非一時的コンピュータ可読記憶媒体又は１つ以上のプロセッサによって実行されるように構成された他のコンピュータプログラム製品に、任意選択的に、含まれる。これらの機能を実行する実行可能命令は、一時的コンピュータ可読記憶媒体又は１つ以上のプロセッサによって実行されるように構成された他のコンピュータプログラム製品に、任意選択的に、含まれる。
【図面の簡単な説明】
【０００７】
説明される様々な実施形態のより良好な理解のために、以下の図面と併せて、以下の「実施形態の説明」を参照されたく、類似の参照番号は、それらの図の全体を通じて対応する部分を指す。
【０００８】
【図１】様々な実施例に係る、デジタルアシスタントを実施するシステム及び環境を示すブロック図である。
【０００９】
【図２Ａ】いくつかの実施形態に係る、デジタルアシスタントのクライアント側部分を実施するポータブル多機能デバイスを示すブロック図である。
【００１０】
【図２Ｂ】様々な実施例に係る、イベント処理のための例示的な構成要素を示すブロック図である。
【００１１】
【図３】様々な実施例に係る、デジタルアシスタントのクライアント側部分を実施するポータブル多機能デバイスを示す。
【００１２】
【図４】様々な実施例に係る、ディスプレイ及びタッチ感知面を備えた例示的な多機能デバイスのブロック図である。
【００１３】
【図５Ａ】様々な実施例に係る、ポータブル多機能デバイス上のメニューのアプリケーションに関する例示的なユーザインタフェースを示す。
【００１４】
【図５Ｂ】様々な実施例に係る、ディスプレイとは別個のタッチ感知面を有する多機能デバイスの例示的なユーザインタフェースを示す。
【００１５】
【図６Ａ】様々な実施例に係るパーソナル電子デバイスを示す。
【００１６】
【図６Ｂ】様々な実施例に係るパーソナル電子デバイスを示すブロック図である。
【００１７】
【図７Ａ】様々な実施例に係る、デジタルアシスタントシステム又はそのサーバ部分を示すブロック図である。
【００１８】
【図７Ｂ】様々な実施例に係る、図７Ａに示すデジタルアシスタントの機能を示す。
【００１９】
【図７Ｃ】様々な実施例に係る、オントロジの一部分を示す。
【００２０】
【図８】様々な実施例に係る、デジタルアシスタントの機能のブロック図を示す。
【００２１】
【図９Ａ】様々な実施例に係る、ユーザデバイスの例示的なユーザインタフェースを示す。
【００２２】
【図９Ｂ】様々な実施例に係る、イベント検出及び分類に関する例示的な第１のネットワークを示す。
【００２３】
【図９Ｃ】様々な実施例に係る、イベント検出及び分類に関する例示的な第１のネットワークを示す。
【００２４】
【図１０Ａ】様々な実施例に係る、ユーザデバイスの例示的なユーザインタフェースを示す図である。
【００２５】
【図１０Ｂ】様々な実施例に係る、イベント検出及び分類に関する例示的な第２のネットワークを示す図である。
【００２６】
【図１０Ｃ】様々な実施例に係る、イベント検出及び分類に関する例示的な第２のネットワークを示す図である。
【００２７】
【図１１Ａ】様々な実施例に係る例示的な自然言語イベントオントロジを示す。
【図１１Ｂ】様々な実施例に係る例示的な自然言語イベントオントロジを示す。
【図１１Ｃ】様々な実施例に係る例示的な自然言語イベントオントロジを示す。
【図１１Ｄ】様々な実施例に係る例示的な自然言語イベントオントロジを示す。
【図１１Ｅ】様々な実施例に係る例示的な自然言語イベントオントロジを示す。
【図１１Ｆ】様々な実施例に係る例示的な自然言語イベントオントロジを示す。
【図１１Ｇ】様々な実施例に係る例示的な自然言語イベントオントロジを示す。
【図１１Ｈ】様々な実施例に係る例示的な自然言語イベントオントロジを示す。
【００２８】
【図１２Ａ】様々な実施例に係るイベント種類判定モジュールの機能のブロック図を示す。
【００２９】
【図１２Ｂ】様々な実施例に係る例示的なイベント種類の判定を示す。
【図１２Ｃ】様々な実施例に係る例示的なイベント種類の判定を示す。
【００３０】
【図１３】様々な実施例に係るカレンダーエントリプロセスの機能のブロック図を示す。
【００３１】
【図１４Ａ】様々な実施例に係る、構造化されていない自然言語情報を用いてイベントを検出及び分類する例示的なプロセスのフロー図を示す。
【図１４Ｂ】様々な実施例に係る、構造化されていない自然言語情報を用いてイベントを検出及び分類する例示的なプロセスのフロー図を示す。
【図１４Ｃ】様々な実施例に係る、構造化されていない自然言語情報を用いてイベントを検出及び分類する例示的なプロセスのフロー図を示す。
【図１４Ｄ】様々な実施例に係る、構造化されていない自然言語情報を用いてイベントを検出及び分類する例示的なプロセスのフロー図を示す。
【図１４Ｅ】様々な実施例に係る、構造化されていない自然言語情報を用いてイベントを検出及び分類する例示的なプロセスのフロー図を示す。
【図１４Ｆ】様々な実施例に係る、構造化されていない自然言語情報を用いてイベントを検出及び分類する例示的なプロセスのフロー図を示す。
【図１４Ｇ】様々な実施例に係る、構造化されていない自然言語情報を用いてイベントを検出及び分類する例示的なプロセスのフロー図を示す。
【図１４Ｈ】様々な実施例に係る、構造化されていない自然言語情報を用いてイベントを検出及び分類する例示的なプロセスのフロー図を示す。
【図１４Ｉ】様々な実施例に係る、構造化されていない自然言語情報を用いてイベントを検出及び分類する例示的なプロセスのフロー図を示す。
【図１４Ｊ】様々な実施例に係る、構造化されていない自然言語情報を用いてイベントを検出及び分類する例示的なプロセスのフロー図を示す。
【００３２】
【図１５】様々な実施例に係る、電子デバイスのブロック図を示す。
【発明を実施するための形態】
【００３３】
以下の開示及び実施形態の説明では、実施することができる特定の実施形態が実例として示されている添付の図面を参照する。本開示の範囲から逸脱することなく、他の実施形態及び実施例を実施することができ、変更を行うことができることを理解されたい。
【００３４】
構造化されていない自然言語情報からイベントを検出及び分類する技法が望まれている。本明細書に記載するように、構造化されていない自然言語情報からイベントを検出及び分類する技法が、手動によるカレンダーエントリの手間と厄介さを減らす等の様々な目的にために望まれている。このような技法は、構造化されていない自然言語情報から、その固有の曖昧さにかかわらず、イベントの説明を自動的に正確に抽出できるので有利である。
【００３５】
以下の説明では、様々な要素を説明するために「第１」、「第２」等の用語を使用するが、これらの要素はこれらの用語によって限定されるべきではない。これらの用語は、ある要素を別の要素と区別するためにのみ使用される。例えば、説明されている様々な実施例の範囲から逸脱することなく、第１のコンテキストユニットは第２のコンテキストユニットと称することができ、同様に、第２のコンテキストユニットは第１のコンテキストユニットと称することができる。第１のコンテキストユニット及び第２のコンテキストユニットは、共にコンテキストユニットとすることができ、一部の場合には、別個で異なるコンテキストユニットとすることができる。
【００３６】
本明細書で説明される様々な実施例の説明で使用される用語は、特定の実施例を説明することのみを目的とするものであって、限定することを意図するものではない。説明される様々な実施例の説明及び添付の特許請求の範囲で使用する時、単数形「ａ」、「ａｎ」、及び「ｔｈｅ」は、文脈がそうではないことを明確に示さない限り、複数形もまた含むことが意図される。本明細書で使用する時に、用語「及び／又は」が、関連する列挙された項目のうちの１つ以上の全ての可能な任意の組み合わせを指し、かつこれを含むことをもまた理解されたい。用語「ｉｎｃｌｕｄｅｓ（含む）、「ｉｎｃｌｕｄｉｎｇ（含む）」、「ｃｏｍｐｒｉｓｅｓ（含む）」及び／又は「ｃｏｍｐｒｉｓｉｎｇ（含む）」は、本明細書で使用する時、述べられた特徴、整数、ステップ、動作、要素、及び／又は構成要素の存在を指定するが、１つ以上の他の特徴、整数、ステップ、動作、要素、構成要素、及び／又はそれらの群、の存在又は追加を除外しないことが更に理解されるであろう。
【００３７】
用語「ｉｆ（〜場合に）」は、文脈に応じて「ｗｈｅｎ（〜時に）」、「ｕｐｏｎ（〜時に）」、「ｉｎ  ｒｅｓｐｏｎｓｅ  ｔｏ  ｄｅｔｅｒｍｉｎｉｎｇ（〜という判定に応じて）」、又は「ｉｎ  ｒｅｓｐｏｎｓｅ  ｔｏ  ｄｅｔｅｃｔｉｎｇ（〜を検出したことに応じて）」を意味すると解釈することができる。同様に、句「ｉｆ  ｉｔ  ｉｓ  ｄｅｔｅｒｍｉｎｅｄ（〜と判定される場合に）」又は「ｉｆ  ［ａ  ｓｔａｔｅｄ  ｃｏｎｄｉｔｉｏｎ  ｏｒ  ｅｖｅｎｔ］ｉｓ  ｄｅｔｅｃｔｅｄ（［述べられる条件又はイベント］が検出される場合に）」は、文脈に応じて「ｕｐｏｎ  ｄｅｔｅｒｍｉｎｉｎｇ（〜と判定される時に）」、又は「ｉｎ  ｒｅｓｐｏｎｓｅ  ｔｏ  ｄｅｔｅｒｍｉｎｉｎｇ（〜との判定に応じて）」、又は「ｕｐｏｎ  ｄｅｔｅｃｔｉｎｇ  ［ｔｈｅ  ｓｔａｔｅｄ  ｃｏｎｄｉｔｉｏｎ  ｏｒ  ｅｖｅｎｔ］（［述べられる条件又はイベント］の検出時に）」、又は「ｉｎ  ｒｅｓｐｏｎｓｅ  ｔｏ  ｄｅｔｅｃｔｉｎｇ  ［ｔｈｅ  ｓｔａｔｅｄ  ｃｏｎｄｉｔｉｏｎ  ｏｒ  ｅｖｅｎｔ］（［述べられる条件又はイベント］の検出に応じて）」を意味すると解釈することができる。
１．システム及び環境
【００３８】
図１は、様々な実施例に係るシステム１００のブロック図を示す。いくつかの実施例では、システム１００はデジタルアシスタントを実施することができる。用語「デジタルアシスタント」、「仮想アシスタント」、「インテリジェント自動アシスタント」、又は「自動デジタルアシスタント」は、発語及び／又はテキスト形式の自然言語入力を解釈してユーザ意図を推測し、推測されたユーザ意図に基づきアクションを実行する任意の情報処理システムを指してもよい。例えば、推測されたユーザの意図を実行するために、システムは、以下の１つ以上を実行することができる。すなわち、推測されたユーザの意図を実現するために設計されたステップ及びパラメータを有するタスクフローを識別すること、推測されたユーザの意図から特定の要求をタスクフローに入力すること、プログラム、方法、サービス、ＡＰＩ等を呼び出すことによりタスクフローを実行すること、並びに音響（例えば、スピーチ）形式及び／又は視覚形式でユーザへの出力応答を生成すること。
【００３９】
具体的には、デジタルアシスタントは、少なくとも部分的に、自然言語コマンド、要求、陳述、叙述、及び／又は照会の形でユーザ要求を受け付ける能力を有することができる。通例、ユーザ要求はデジタルアシスタントによる情報回答又はタスクの実行のいずれかを求めることができる。ユーザ要求への満足な応答は、要求された情報回答の提供、要求されたタスクの実行、又は両者の組み合わせとなることができる。例えば、ユーザはデジタルアシスタントに「私は今どこにいますか？」等の質問をすることができる。ユーザの現在場所に基づき、デジタルアシスタントは、「あなたはセントラルパーク内の西門の近くにいます」と回答することができる。ユーザは、例えば、「私の友人を、来週の私のガールフレンドの誕生日パーティに招待して下さい」のように、タスク実行を要求することもできる。それに応じて、デジタルアシスタントは、「はい、ただ今」と述べることによって要求を確認し、次に、ユーザの代わりに、ユーザの電子アドレス帳に列挙されたユーザの友人の各々に適切なカレンダー招待状を送信することができる。要求されたタスクの実行中に、デジタルアシスタントは、長期間にわたる複数の情報交換を伴う継続的ダイアログ内でユーザと時折対話することができる。情報又は種々のタスクの実行を要求するためにデジタルアシスタントと対話する方法は他にも数多く存在する。言葉による応答を提供し、プログラムされたアクションを取ることに加えて、デジタルアシスタントは、他の視覚又はオーディオ形式の応答を、例えば、テキスト、警報、音楽、ビデオ、アニメーション等として提供することもできる。
【００４０】
図１に示されているように、いくつかの実施例では、デジタルアシスタントはクライアント−サーバモデルに従って実装することができる。デジタルアシスタントは、ユーザデバイス１０４上で実行されるクライアント側部分１０２（以後、「ＤＡクライアント１０２」）、及びサーバシステム１０８上で実行されるサーバ側部分１０６（以後「ＤＡサーバ１０６」）を含むことができる。ＤＡクライアント１０２は１つ以上のネットワーク１１０を通じてＤＡサーバ１０６と通信することができる。ＤＡクライアント１０２は、ユーザ対応入力及び出力処理、並びにＤＡサーバ１０６との通信等のクライアント側機能性を提供することができる。ＤＡサーバ１０６は、それぞれのユーザデバイス１０４上に各々常駐する任意の数のＤＡクライアント１０２のためのサーバ側機能性を提供することができる。
【００４１】
いくつかの実施例では、ＤＡサーバ１０６は、クライアント対応Ｉ／Ｏインタフェース１１２、１つ以上の処理モジュール１１４、データ及びモデル１１６、並びに外部サービスへのＩ／Ｏインタフェース１１８を含むことができる。クライアント対応Ｉ／Ｏインタフェース１１２は、ＤＡサーバ１０６のためのクライアント対応入力及び出力処理を促進することができる。１つ以上の処理モジュール１１４は、発語入力を処理し、自然言語入力に基づいてユーザの意図を判定するために、データ及びモデル１１６を利用することができる。更に、１つ以上の処理モジュール１１４は、推測されたユーザ意図に基づいてタスク実行を実行する。いくつかの実施例では、ＤＡサーバ１０６は、タスク完了又は情報取得のために、ネットワーク（単数又は複数）１１０を通じて外部サービス１２０と通信することができる。外部サービスへのＩ／Ｏインタフェース１１８はこのような通信を促進することができる。
【００４２】
ユーザデバイス１０４は、任意の好適な電子デバイスとすることができる。例えば、ユーザデバイスは、ポータブル多機能デバイス（例えば、図２Ａを参照して以下で説明するデバイス２００）、多機能デバイス（例えば、図４を参照して以下で説明するデバイス４００）、又はパーソナル電子デバイス（例えば、図６Ａ〜Ｂを参照して以下に説明するデバイス６００）とすることができる。ポータブル多機能デバイスは、例えば、ＰＤＡ機能及び／又は音楽再生機能等の他の機能をも含む、モバイル電話機とすることができる。ポータブル多機能デバイスの特定の例としては、Ｃａｌｉｆｏｒｎｉａ州ＣｕｐｅｒｔｉｎｏのＡｐｐｌｅ  Ｉｎｃ．のｉＰｈｏｎｅ（登録商標）、ｉＰｏｄ  Ｔｏｕｃｈ（登録商標）、及びｉＰａｄ（登録商標）デバイスが含まれ得る。ポータブル多機能デバイスの他の例としては、ラップトップコンピュータ又はタブレットコンピュータが含まれ得るが、これらに限定されない。更に、いくつかの例では、ユーザデバイス１０４は、非ポータブル多機能デバイスとすることができる。特に、ユーザデバイス１０４は、デスクトップコンピュータ、ゲームコンソール、テレビ又はテレビのセットトップボックスとすることができる。いくつかの例では、ユーザデバイス１０４は、タッチ感知面（例えば、タッチスクリーンディスプレイ及び／又はタッチパッド）を含むことができる。更に、ユーザデバイス１０４が、物理キーボード、マウス、及び／又はジョイスティック等の１つ以上の他の物理ユーザインタフェースデバイスを任意選択的に含むことができる。多機能デバイス等の電子デバイスの様々な例を、以下でより詳細に説明する。
【００４３】
通信ネットワーク（単数又は複数）１１０の例としては、ローカルエリアネットワーク（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、ＶｏＩＰ）、Ｗｉ−ＭＡＸ（登録商標）、又は任意の他の好適な通信プロトコル等の、様々な有線又は無線プロトコルを含む、任意の周知のネットワークプロトコルを用いて実装することができる。
【００４４】
サーバシステム１０８は、１つ以上のスタンドアロンデータ処理装置、又はコンピュータの分散型ネットワーク上に実装することができる。いくつかの実施例では、サーバシステム１０８は、また、様々な仮想デバイス及び／又はサードパーティサービスプロバイダ（例えば、サードパーティクラウドサービスプロバイダ）のサービスを利用して、サーバシステム１０８の基本的なコンピューティングリソース及び／又はインフラストラクチャリソースを提供することができる。
【００４５】
いくつかの例では、ユーザデバイス１０４は、第２のユーザデバイス１２２を介してＤＡサーバ１０６と通信することができる。第２のユーザデバイス１２２は、ユーザデバイス１０４と同様又は同一である。例えば、第２のユーザデバイス１２２は、図２Ａ、図４及び図６Ａ〜Ｂを参照して以下の説明するデバイス２００、４００、又は６００と同様とすることができる。ユーザデバイス１０４は、Ｂｌｕｅｔｏｏｔｈ、ＮＦＣ、ＢＴＬＥ等の直接通信接続を介して、又は有線若しくはローカルＷｉ−Ｆｉネットワーク等の無線ネットワークを介して、第２のユーザデバイス１２２と通信可能に結合するように構成され得る。いくつかの例では、第２のユーザデバイス１２２は、ユーザデバイス１０４とＤＡサーバ１０６との間でプロキシとして機能するように構成され得る。例えば、ユーザデバイス１０４のＤＡクライアントは、情報（例えば、ユーザデバイス１０４で受信されたユーザ要求）を、第２のユーザデバイス１２２を介してＤＡサーバ１０６に送信するように構成され得る。ＤＡサーバ１０６は、その情報を処理し、関連データ（例えば、ユーザ要求に応答するデータコンテンツ）を、第２のユーザデバイス１２２を介してユーザデバイス１０４に返すことができる。
【００４６】
いくつかの例では、ユーザデバイス１０４は、ユーザデバイス１０４から送信された情報量を削減するために、データに対する短縮された要求を第２のユーザデバイス１２２に通信するように構成され得る。第２のユーザデバイス１２２は、短縮された要求に追加する補足情報を判定して、ＤＡサーバ１０６へ送信される完全な要求を生成するように構成され得る。このシステムアーキテクチャにより、通信容量及び／又はバッテリ電力が制限されるユーザデバイス１０４（例えば、ウォッチ又は同様の小型電子デバイス）は、通信容量及び／又はバッテリ電力が多い第２のユーザデバイス１２２（例えば、携帯電話、ラップトップコンピュータ、タブレットコンピュータ等）を、ＤＡサーバ１０６に対するプロキシとして使用して、ＤＡサーバ１０６によって提供されるサービスに有利にアクセスできる。２つのユーザデバイス１０４及び１２２のみを図１に示すが、システム１００は、このプロキシ構成でＤＡサーバシステム１０６と通信するように構成されたあらゆる数及び種類のユーザデバイスを含むことができることを理解すべきである。
【００４７】
図１に示すデジタルアシスタントはクライアント側部分（例えば、ＤＡクライアント１０２）及びサーバ側部分（例えば、ＤＡサーバ１０６）の両方を含むことができるが、いくつかの例では、デジタルアシスタントの機能は、ユーザデバイスにインストールされるスタンドアロンアプリケーションとして実施することができる。加えて、デジタルアシスタントのクライアント部分とサーバ部分との間の機能の分配は実施態様によって異なり得る。例えば、いくつかの例では、ＤＡクライアントは、ユーザに対する入力出力処理機能のみを提供し、デジタルアシスタントの全ての他の機能をバックエンドサーバに委任するシンクライアントとすることができる。
２．電子デバイス
【００４８】
次に、デジタルアシスタントのクライアント側部分を実施するための電子デバイスの実施形態に注目する。図２Ａは、いくつかの実施形態に係る、タッチ感知ディスプレイシステム２１２を備えたポータブル多機能デバイス２００を示すブロック図である。タッチ感知ディスプレイ２１２は、便宜上「タッチスクリーン」と呼ばれる場合があり、「タッチ感知ディスプレイシステム」として、既知である場合又は呼ばれる場合もある。デバイス２００は、メモリ２０２（任意選択的に、１つ以上のコンピュータ可読記憶媒体を含む）、メモリコントローラ２２２、１つ以上の処理ユニット（ＣＰＵ）２２０、周辺機器インタフェース２１８、ＲＦ回路２０８、オーディオ回路２１０、スピーカ２１１、マイクロフォン２１３、入出力（Ｉ／Ｏ）サブシステム２０６、他の入力制御デバイス２１６、及び外部ポート２２４を含む。デバイス２００は、１つ以上の光センサ２６４を任意選択的に含む。デバイス２００は、デバイス２００（例えば、デバイス２００のタッチ感知ディスプレイシステム２１２等のタッチ感知面）上の接触の強度を検出するための、１つ以上の接触強度センサ２６５を任意選択的に含む。デバイス２００は、デバイス２００上に触知出力を生成する（例えば、デバイス２００のタッチ感知ディスプレイシステム２１２又はデバイス４００のタッチパッド４５５等の、タッチ感知面上に触知出力を生成する）ための、１つ以上の触知出力生成器２６７を任意選択的に含む。これらの構成要素は、１つ以上の通信バス又は信号ライン２０３を介して任意選択的に通信する。
【００４９】
本明細書及び特許請求の範囲で使用する時、タッチ感知面上の接触の「強度」という用語は、タッチ感知面上の接触（例えば、指接触）の力又は圧力（単位面積当りの力）、あるいはタッチ感知面上の接触の力又は圧力の代替物（代用物）を指す。接触の強度は、少なくとも４つの別個の数値を含み、より典型的には、何百もの異なる数値（例えば、少なくとも２５６）を含む、数値の範囲を有する。接触の強度は、様々な方法及び様々なセンサ、又はセンサの組み合わせを使用して、任意選択的に、判定（又は、測定）される。例えば、タッチ感知面の下に又は隣接して配置された１つ以上の力センサは、タッチ感知面上の様々な点における力を測定するために、任意選択的に使用される。いくつかの実装において、複数の力センサの力測定値を組み合わせて（例えば、加重平均）、接触力の推定値を判定する。同様に、スタイラスの感圧性先端部を任意選択的に使用して、タッチ感知面上のスタイラスの圧力を判定する。あるいは、タッチ感知面上で検出される接触領域のサイズ及び／又はその変化、接触に近接するタッチ感知面の電気容量及び／又はその変化、並びに／若しくは、接触に近接するタッチ感知面の抵抗及び／又はその変化が、タッチ感知面上の接触の力又は圧力の代替物として、任意選択的に用いられる。いくつかの実装では、接触の力又は圧力の代替的測定値は、強度閾値を超えているか否かを判定するために直接に用いられる（例えば、強度閾値は、代替的測定値に対応する単位で記述される）。いくつかの実装では、接触の力又は圧力の代替的測定値は、推定される力又は圧力に変換され、この推定される力又は圧力を用いて、強度閾値を超えているか否かを判定する（例えば、強度閾値は、圧力の単位で測定された圧力閾値である）。接触の強度をユーザ入力の属性として使用することにより、アフォーダンスを（例えば、タッチ感知ディスプレイ上に）表示するための、及び／又は、ユーザ入力を（例えば、タッチ感知ディスプレイ、タッチ感知面、又はノブ若しくはボタン等の物理的／機械的制御部を介して）受信するための、面積が制限されている、低減されたサイズのデバイス上で、他の場合であればユーザによってアクセスすることが不可能であり得る、追加的なデバイス機能への、ユーザのアクセスが可能となる。
【００５０】
本明細書及び特許請求の範囲で使用する時、用語「触知出力」は、ユーザの触覚でユーザによって検出されることになる、デバイスの従前の位置に対するデバイスの物理的変位、デバイスの構成要素（例えば、タッチ感知面）の、別の構成要素（例えば、筐体）に対する物理的変位、又はデバイスの質量中心に対する構成要素の変位を指す。例えば、デバイス又はデバイスの構成要素が、タッチに敏感なユーザの表面（例えば、ユーザの手の指、手のひら、又は他の部分）に接触している状況において、物理的変位によって生成された触知出力は、デバイス又はデバイスの構成要素の物理的特性の認識された変化に相当する触感として、ユーザによって解釈されるであろう。例えば、タッチ感知面（例えば、タッチ感知ディスプレイ又はトラックパッド）の移動は、ユーザによって、物理アクチュエータボタンの「ダウンクリック」又は「アップクリック」として任意選択的に解釈される。いくつかの場合、ユーザの動作により物理的に押された（例えば、変位された）タッチ感知面に関連付けられた物理アクチュエータボタンの移動がない時でさえ、ユーザは「ダウンクリック」又は「アップクリック」等の触感を感じるであろう。別の例として、タッチ感知面の移動は、タッチ感知面の平滑度に変化がない場合であっても、ユーザによって、そのタッチ感知面の「粗さ」として、任意選択的に解釈又は感知される。ユーザによるタッチのかかる解釈は、ユーザの個別の感覚認知によるが、大多数のユーザに共通したタッチの感覚認知が数多くある。したがって、触知出力が、ユーザの特定の感覚認知（例えば、「アップクリック」、「ダウンクリック」、「粗さ」）に対応するものとして記述される場合、別途記載のない限り、生成された触知出力は、典型的な（又は、平均的な）ユーザの記述された感覚認知を生成するデバイス、又はその構成要素の物理的変位に対応する。
【００５１】
デバイス２００は、ポータブル多機能デバイスの一実施例に過ぎず、デバイス２００は、示されるものよりも多いか又は少ない構成要素を任意選択的に有するか、２つ以上の構成要素を任意選択的に組み合わせるか、又は構成要素の異なる構成若しくは配置を任意選択的に有することを理解されたい。図２Ａに示す様々な構成要素は、１つ以上の信号処理回路及び／又は特定用途向け集積回路を含む、ハードウェア、ソフトウェア、又はハードウェア及びソフトウェアの双方の組み合わせで実装される。
【００５２】
メモリ２０２は、１つ以上のコンピュータ可読記憶媒体を含み得る。このコンピュータ可読記憶媒体は、有形かつ非一時的とすることができる。メモリ２０２は、高速ランダムアクセスメモリを含み得るものであり、また、１つ以上の磁気ディスク記憶デバイス、フラッシュメモリデバイス、又は他の不揮発性ソリッドステートメモリデバイス等の、不揮発性メモリもまた含み得る。メモリコントローラ２２２は、デバイス２００の他の構成要素によるメモリ２０２へのアクセスを制御することができる。
【００５３】
いくつかの実施例では、メモリ２０２の非一時的コンピュータ可読記憶媒体は、（例えば、以下に説明するプロセス１２００の態様を実行する）命令を、コンピュータベースのシステム、プロセッサを含むシステム、又は命令実行システム、装置、若しくはデバイスから命令をフェッチすることができ、それらの命令を実行することができる他のシステム等の、命令実行システム、装置、若しくはデバイスによる使用、又はそれと関連した使用のために記憶するために用いることができる。他の実施例では、（例えば、以下で説明するプロセス１２００の態様を実行する）命令は、サーバシステム１０８の非一時的コンピュータ可読記憶媒体（図示せず）上に記憶されてもよく、又はメモリ２０２の非一時的コンピュータ可読記憶媒体とサーバシステム１０８の非一時的コンピュータ可読記憶媒体との間で分配されてもよい。本明細書の文脈においては、「非一時的コンピュータ可読記憶媒体」は、命令実行システム、装置、若しくはデバイスによって、又はこれらと共に使用するためのプログラムを収容又は記憶し得る、任意の媒体であることができる。
【００５４】
周辺機器インタフェース２１８を使用して、このデバイスの入力及び出力周辺機器を、ＣＰＵ２２０及びメモリ２０２に連結することができる。１つ以上のプロセッサ２２０は、デバイス２００のための様々な機能を実行するため並びにデータ処理を行うために、メモリ２０２に記憶された様々なソフトウェアプログラム及び／若しくは命令セットを動作させたり、又は実行したりする。いくつかの実施形態では、周辺機器インタフェース２１８、ＣＰＵ２２０、及びメモリコントローラ２２２は、チップ２０４等のシングルチップ上に実装してもよい。いくつかの他の実施形態では、それらは、別個のチップ上に実装してもよい。
【００５５】
ＲＦ（無線周波数）回路２０８は、電磁信号とも呼ばれるＲＦ信号を送受信する。ＲＦ回路２０８は、電気信号を電磁信号に、又は電磁信号を電気信号に変換し、電磁信号を介して通信ネットワーク及び他の通信デバイスと通信する。ＲＦ回路２０８は、アンテナシステム、ＲＦ送受信機、１つ以上の増幅器、同調器、１つ以上の発振器、デジタル信号プロセッサ、ＣＯＤＥＣチップセット、加入者識別モジュール（ＳＩＭ）カード、メモリ等を含むがこれらに限定されない、これらの機能を実行するための周知の回路を、任意選択的に含む。ＲＦ回路２０８は、ワールドワイドウエブ（ＷＷＷ）とも呼ばれるインターネット、イントラネット、及び／又は、セルラ電話ネットワーク、無線ローカルエリアネットワーク（ＬＡＮ）及び／又は、メトロポリタンエリアネットワーク（ＭＡＮ）、等の無線ネットワーク、及び他のデバイスと無線通信によって、任意選択的に通信する。ＲＦ回路２０８は、短距離通信無線（short-range communication radio）等により、近距離通信（ＮＦＣ）フィールドを検出するための周知の回路を、任意選択的に含む。無線通信は、複数の通信規格、通信プロトコル、及び通信技術のうちのいずれかを、任意選択的に使用し、それらの通信規格、通信プロトコル、及び通信技術としては、移動通信用のグローバルシステム（Global System for Mobile Communications、ＧＳＭ（登録商標））、拡張データＧＳＭ環境（Enhanced Data GSM Environment、ＥＤＧＥ）、高速ダウンリンクパケット接続（high-speed downlink packet access、ＨＳＤＰＡ）、高速アップリンクパケット接続（high-speed uplink packet access、ＨＳＵＰＡ）、Ｅｖｏｌｕｔｉｏｎ，Ｄａｔａ−Ｏｎｌｙ（ＥＶ−ＤＯ）、ＨＳＰＡ、ＨＳＰＡ＋、２重セルＨＳＰＡ（Ｄｕａｌ−Ｃｅｌｌ  ＨＳＰＡ、ＤＣ−ＨＳＰＤＡ）、ロングタームエボリューション（long term evolution、ＬＴＥ）、近距離無線通信（near field communication、ＮＦＣ）、広帯域符号分割多元接続（wideband code division multiple access、Ｗ−ＣＤＭＡ）、符号分割多元接続（code division multiple access、ＣＤＭＡ）、時分割多元接続（time division multiple access、ＴＤＭＡ）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｂｌｕｅｔｏｏｔｈ  Ｌｏｗ  Ｅｎｅｒｇｙ（ＢＴＬＥ）、Ｗｉｒｅｌｅｓｓ  Ｆｉｄｅｌｉｔｙ（Ｗｉ−Ｆｉ）（登録商標）（例えば、ＩＥＥＥ  ８０２．１１ａ、ＩＥＥＥ  ８０２．１１ｂ、ＩＥＥＥ  ８０２．１１ｇ、ＩＥＥＥ  ８０２．１１ｎ、及び／又はＩＥＥＥ  ８０２．１１ａｃ）、ボイスオーバーインターネットプロトコル（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、ＳＭＳ）、あるいは本文書の出願日現在までにまだ開発されていない通信プロトコルを含めた任意の他の好適な通信プロトコルが挙げられるが、これらに限定されない。
【００５６】
オーディオ回路２１０、スピーカ２１１、及びマイクロフォン２１３は、ユーザとデバイス２００との間のオーディオインタフェースを提供する。オーディオ回路２１０は、周辺機器インタフェース２１８からオーディオデータを受信し、このオーディオデータを電気信号に変換し、この電気信号をスピーカ２１１に送信する。スピーカ２１１は、電気信号を人間の可聴音波に変換する。オーディオ回路２１０は、マイクロフォン２１３により音波から変換された電気信号もまた受信する。オーディオ回路２１０は、電気信号をオーディオデータに変換し、処理するためにオーディオデータを周辺機器インタフェース２１８に送信する。オーディオデータは、周辺機器インタフェース２１８によって、メモリ２０２及び／若しくはＲＦ回路２０８から取得され、並びに／又は、それらに送信してもよい。いくつかの実施形態では、オーディオ回路２１０はヘッドセットジャック（例えば、図３の３１２）を更に備える。ヘッドセットジャックは、オーディオ回路２１０と、出力専用ヘッドホン又は出力（例えば、片耳又は両耳用のヘッドホン）及び入力（例えば、マイクロフォン）の双方を有するヘッドセット等の、取り外し可能なオーディオ入出力周辺機器との間のインタフェースを提供する。
【００５７】
Ｉ／Ｏサブシステム２０６は、周辺機器インタフェース２１８に、タッチスクリーン２１２及び他の入力制御デバイス２１６等のデバイス２００の入出力周辺機器を連結する。Ｉ／Ｏサブシステム２０６は、任意選択的に、ディスプレイコントローラ２５６、光センサコントローラ２５８、強度センサコントローラ２５９、触覚フィードバックコントローラ２６１、及び他の入力若しくは制御デバイスのための１つ以上の入力コントローラ２６０を含む。１つ以上の入力コントローラ２６０は、他の入力制御デバイス２１６との間で、電気信号を受信／送信する。他の入力制御デバイス２１６は、任意選択的に、物理ボタン（例えば、プッシュボタン、ロッカボタン等）、ダイヤル、スライダスイッチ、ジョイスティック、クリックホイール等を含む。いくつかの代替的実施形態では、入力コントローラ（単数又は複数）２６０は、任意選択的に、キーボード、赤外線ポート、ＵＳＢポート、及びマウス等のポインタデバイスのうちのいずれかに結合される（又は、いずれにも結合されない）。１つ以上のボタン（例えば、図３の３０８）は、任意選択的に、スピーカ２１１及び／又はマイクロフォン２１３の音量調節のための、アップ／ダウンボタンを含む。１つ以上のボタンは、任意選択的に、プッシュボタン（例えば、図３の３０６）を含む。
【００５８】
２００５年１２月２３日に出願された、米国特許第７，６５７，８４９号である米国特許出願第１１／３２２，５４９号、「Ｕｎｌｏｃｋｉｎｇ  ａ  Ｄｅｖｉｃｅ  ｂｙ  Ｐｅｒｆｏｒｍｉｎｇ  Ｇｅｓｔｕｒｅｓ  ｏｎ  ａｎ  Ｕｎｌｏｃｋ  Ｉｍａｇｅ」に記載されているように、プッシュボタンの素早い押圧により、タッチスクリーン２１２のロックを解除するか、又はデバイスのロック解除にタッチスクリーン上のジェスチャを用いる処理を開始してもよい。この特許は、その全体が本明細書において参照により組み込まれている。プッシュボタン（例えば、３０６）をより長い押圧により、デバイス２００の電源をオンオフすることができる。ユーザは、１つ以上のボタンの機能をカスタマイズすることができる。タッチスクリーン２１２は、仮想又はソフトボタン、及び１つ以上のソフトキーボードを実現するために用いられる。
【００５９】
タッチ感知ディスプレイ２１２は、デバイスとユーザとの間の入力インタフェース及び出力インタフェースを提供する。ディスプレイコントローラ２５６は、タッチスクリーン２１２との間で、電気信号を受信及び／又は送信する。タッチスクリーン２１２は、ユーザに視覚出力を表示する。この視覚出力としては、グラフィック、テキスト、アイコン、ビデオ、及びそれらの任意の組み合わせ（「グラフィック」と総称される）を挙げることができる。いくつかの実施形態では、視覚出力の一部又は全てはユーザインタフェースオブジェクトに対応してもよい。
【００６０】
タッチスクリーン２１２は、触覚及び／若しくは触感の接触に基づくユーザからの入力を受け付けるタッチ感知面、センサ、又はセンサのセットを有している。タッチスクリーン２１２及びディスプレイコントローラ２５６は（メモリ２０２内の任意の関連モジュール及び／又は命令セットと共に）、タッチスクリーン２１２上で接触（及び任意の接触の移動又は中断）を検出し、検出された接触をタッチスクリーン２１２上に表示されたユーザインタフェースオブジェクト（例えば、１つ以上のソフトキー、アイコン、ウェブページ、又は画像）との対話に変換する。ある例示的な実施形態では、タッチスクリーン２１２とユーザとの間の接触点は、ユーザの指に対応する。
【００６１】
タッチスクリーン２１２は、ＬＣＤ（ｌｉｑｕｉｄ  ｃｒｙｓｔａｌ  ｄｉｓｐｌａｙ、液晶ディスプレイ）技術、ＬＰＤ（ｌｉｇｈｔ  ｅｍｉｔｔｉｎｇ  ｐｏｌｙｍｅｒ  ｄｉｓｐｌａｙ、発光ポリマーディスプレイ）技術、又はＬＥＤ（ｌｉｇｈｔ  ｅｍｉｔｔｉｎｇ  ｄｉｏｄｅ、発光ダイオード）技術を用いてもよいが、他の実施形態では、その他のディスプレイ技術を使用してもよい。タッチスクリーン２１２及びディスプレイコントローラ２５６は、現在既知の、又は今後開発される複数のタッチ感知技術のうちのいずれかを使用して、接触、及びその接触のあらゆる移動若しくは中断を検出することができ、これらの技術としては、静電容量技術、抵抗性技術、赤外線技術、及び表面弾性波技術、並びにタッチスクリーン２１２との１つ以上の接触点を判定するための、他の近接センサアレイ又は他の要素、が挙げられるが、これらに限定されない。例示的な実施形態では、Ｃａｌｉｆｏｒｎｉａ州ＣｕｐｅｒｔｉｎｏのＡｐｐｌｅ  Ｉｎｃ．によるｉＰｈｏｎｅ（登録商標）及びｉＰｏｄ  Ｔｏｕｃｈ（登録商標）において見られるような、投影型相互静電容量感知技術が使用されている。
【００６２】
タッチスクリーン２１２のいくつかの実施形態におけるタッチ感知ディスプレイは、以下の米国特許、第６，３２３，８４６号（Ｗｅｓｔｅｒｍａｎら）、第６，５７０，５５７号（Ｗｅｓｔｅｒｍａｎら）、及び／又は第６，６７７，９３２号（Ｗｅｓｔｅｒｍａｎ）、及び／又は米国特許出願公開第２００２／００１５０２４（Ａ１）号に記載されているマルチタッチ感知タッチパッドに類似し得る。これらの文献は、それぞれその全体が本明細書において参照により組み込まれている。ただし、タッチスクリーン２１２はデバイス２００からの視覚出力を表示するのに対して、タッチ感知タッチパッドは視覚出力を提供しない。
【００６３】
タッチスクリーン２１２のいくつかの実施形態におけるタッチ感知ディスプレイは、以下の出願で説明されているとおりにすることができる。（１）２００６年５月２日出願の米国特許出願第１１／３８１，３１３号、「Ｍｕｌｔｉｐｏｉｎｔ  Ｔｏｕｃｈ  Ｓｕｒｆａｃｅ  Ｃｏｎｔｒｏｌｌｅｒ」、（２）２００４年５月６日出願の同第１０／８４０，８６２号、「Ｍｕｌｔｉｐｏｉｎｔ  Ｔｏｕｃｈｓｃｒｅｅｎ」、（３）２００４年７月３０日出願の同第１０／９０３，９６４号、「Ｇｅｓｔｕｒｅｓ  Ｆｏｒ  Ｔｏｕｃｈ  Ｓｅｎｓｉｔｉｖｅ  Ｉｎｐｕｔ  Ｄｅｖｉｃｅｓ」、（４）２００５年１月３１日出願の同第１１／０４８，２６４号、「Ｇｅｓｔｕｒｅｓ  Ｆｏｒ  Ｔｏｕｃｈ  Ｓｅｎｓｉｔｉｖｅ  Ｉｎｐｕｔ  Ｄｅｖｉｃｅｓ」、（５）２００５年１月１８日出願の同第１１／０３８，５９０号、「Ｍｏｄｅ−Ｂａｓｅｄ  Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅｓ  Ｆｏｒ  Ｔｏｕｃｈ  Ｓｅｎｓｉｔｉｖｅ  Ｉｎｐｕｔ  Ｄｅｖｉｃｅｓ」、（６）２００５年９月１６日出願の同第１１／２２８，７５８号、「Ｖｉｒｔｕａｌ  Ｉｎｐｕｔ  Ｄｅｖｉｃｅ  Ｐｌａｃｅｍｅｎｔ  Ｏｎ  Ａ  Ｔｏｕｃｈ  Ｓｃｒｅｅｎ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ」、（７）２００５年９月１６日出願の同第１１／２２８，７００号、「Ｏｐｅｒａｔｉｏｎ  Ｏｆ  Ａ  Ｃｏｍｐｕｔｅｒ  Ｗｉｔｈ  Ａ  Ｔｏｕｃｈ  Ｓｃｒｅｅｎ  Ｉｎｔｅｒｆａｃｅ」、（８）２００５年９月１６日出願の同第１１／２２８，７３７号、「Ａｃｔｉｖａｔｉｎｇ  Ｖｉｒｔｕａｌ  Ｋｅｙｓ  Ｏｆ  Ａ  Ｔｏｕｃｈ−Ｓｃｒｅｅｎ  Ｖｉｒｔｕａｌ  Ｋｅｙｂｏａｒｄ」、及び（９）２００６年３月３日出願の同第１１／３６７，７４９号、「Ｍｕｌｔｉ−Ｆｕｎｃｔｉｏｎａｌ  Ｈａｎｄ−Ｈｅｌｄ  Ｄｅｖｉｃｅ」。これらの出願の全ては、全体が参照により本明細書に組み込まれる。
【００６４】
タッチスクリーン２１２は、１００ｄｐｉを超えるビデオ解像度を有し得る。いくつかの実施形態では、タッチスクリーンは約１６０ｄｐｉのビデオ解像度を有する。ユーザは、スタイラス、指等の、任意の好適な物体又は付属物を使用して、タッチスクリーン２１２と接触することができる。いくつかの実施形態では、ユーザインタフェースは、主として指に基づく接触及びジェスチャによって機能するように設計され、タッチスクリーン上の指の接触面積が広いことにより、スタイラスに基づく入力よりも精度が低いことがある。いくつかの実施形態において、デバイスは、指に基づく粗い入力を正確なポインタ／カーソル位置又はユーザの望むアクションを実行するためのコマンドに変換する。
【００６５】
いくつかの実施形態では、タッチスクリーンに加えて、デバイス２００は、特定の機能を起動又は停止させるためのタッチパッド（図示せず）を含んでもよい。いくつかの実施形態では、タッチパッドは、タッチスクリーンとは異なり、視覚出力を表示しない、デバイスのタッチ感知領域である。タッチパッドは、タッチスクリーン２１２とは別個のタッチ感知面、又はタッチスクリーンによって形成されるタッチ感知面の拡張部とすることができる。
【００６６】
デバイス２００はまた、様々な構成要素に電力を供給するための電力システム２６２も備えている。電力システム２６２は、電力管理システム、１つ以上の電源（例えば、バッテリ、交流（ＡＣ：alternating current））、再充電システム、停電検出回路、電力コンバータ又はインバータ、電力状態インジケータ（例えば、発光ダイオード（ＬＥＤ））、並びにポータブルデバイスにおける電力の生成、管理、及び分配に関連付けられる任意の他の構成要素を含んでもよい。
【００６７】
デバイス２００は１つ以上の光センサ２６４も含んでもよい。図２Ａは、Ｉ／Ｏサブシステム２０６内の光センサコントローラ２５８に結合された光センサを示す。光センサ２６４は、電荷結合素子（ＣＣＤ：charge-coupled device）又は相補的金属酸化物半導体（ＣＭＯＳ：complementary metal-oxide semiconductor）フォトトランジスタを含んでもよい。光センサ２６４は、１つ以上のレンズを通して投影された、環境からの光を受光し、その光を、画像を表すデータに変換する。撮像モジュール２４３（カメラモジュールとも呼ばれる）と連動して、光センサ２６４は静止画像又はビデオをキャプチャすることができる。いくつかの実施形態では、タッチ画像ディスプレイを静止画像及び／又はビデオ画像取得のためのビューファインダとして使用することができるように、デバイスの前面のタッチ画像ディスプレイ２１２の反対側である、デバイス２００の背面に光センサが配置されている。いくつかの実施形態では、ユーザが他のテレビ会議参加者をタッチスクリーンディスプレイ上で見るのと同時に、そのユーザの画像をテレビ会議のために得ることができるように、デバイスの前面に光センサが配置されている。いくつかの実施形態では、光センサ２６４の位置は、ユーザによって（例えば、デバイス筐体内のレンズ及びセンサを回転させることによって）変更することができ、それにより、テレビ会議並びに静止画像及び／又はビデオ画像の取得の双方のために、単一の光センサ２６４を、タッチスクリーンディスプレイと共に使用することができる。
【００６８】
デバイス２００はまた、１つ以上の接触強度センサ２６５も任意選択的に含む。図２Ａは、Ｉ／Ｏサブシステム２０６内の強度センサコントローラ２５９に結合された、接触強度センサを示す。接触強度センサ２６５には、１つ以上のピエゾ抵抗ひずみゲージ、電気容量式力センサ、電気力センサ、圧電力センサ、光学力センサ、容量式タッチ感知面、又は他の強度センサ（例えば、タッチ感知面上の接触の力（又は圧力）を測定するために使用するセンサ）が、任意選択的に含まれる。接触強度センサ２６５は、環境から接触強度情報（例えば、圧力情報又は圧力情報の代用物）を受信する。いくつかの実施形態では、少なくとも１つの接触強度センサが、タッチ感知面（例えば、タッチ感知ディスプレイシステム２１２）に配置されているか、又は、それに近接している。いくつかの実施形態において、少なくとも１つの接触強度センサが、デバイス２００の前面に配置されたタッチスクリーンディスプレイ２１２の反対側である、デバイス２００の背面に配置されている。
【００６９】
デバイス２００は１つ以上の近接センサ２６６を含んでもよい。図２Ａは、周辺機器インタフェース２１８と結合された近接センサ２６６を示す。あるいは、近接センサ２６６は、Ｉ／Ｏサブシステム２０６内の入力コントローラ２６０に結合してもよい。近接センサ２６６は、米国特許出願第１１／２４１，８３９号、「Ｐｒｏｘｉｍｉｔｙ  Ｄｅｔｅｃｔｏｒ  Ｉｎ  Ｈａｎｄｈｅｌｄ  Ｄｅｖｉｃｅ」、同第１１／２４０，７８８号、「Ｐｒｏｘｉｍｉｔｙ  Ｄｅｔｅｃｔｏｒ  Ｉｎ  Ｈａｎｄｈｅｌｄ  Ｄｅｖｉｃｅ」、同第１１／６２０，７０２号、「Ｕｓｉｎｇ  Ａｍｂｉｅｎｔ  Ｌｉｇｈｔ  Ｓｅｎｓｏｒ  Ｔｏ  Ａｕｇｍｅｎｔ  Ｐｒｏｘｉｍｉｔｙ  Ｓｅｎｓｏｒ  Ｏｕｔｐｕｔ」、同第１１／５８６，８６２号、「Ａｕｔｏｍａｔｅｄ  Ｒｅｓｐｏｎｓｅ  Ｔｏ  Ａｎｄ  Ｓｅｎｓｉｎｇ  Ｏｆ  Ｕｓｅｒ  Ａｃｔｉｖｉｔｙ  Ｉｎ  Ｐｏｒｔａｂｌｅ  Ｄｅｖｉｃｅｓ」、及び、同第１１／６３８，２５１号、「Ｍｅｔｈｏｄｓ  Ａｎｄ  Ｓｙｓｔｅｍｓ  Ｆｏｒ  Ａｕｔｏｍａｔｉｃ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｏｆ  Ｐｅｒｉｐｈｅｒａｌｓ」で説明されるように機能し得るものであり、これらの出願は、全体が参照により本明細書に組み込まれる。いくつかの実施形態では、多機能デバイスがユーザの耳の近くに配置される場合（例えば、ユーザが電話で通話している場合）、近接センサは、タッチスクリーン２１２をオフにして無効化する。
【００７０】
デバイス２００はまた、１つ以上の触知出力生成器２６７もまた、任意選択的に含む。図２Ａは、Ｉ／Ｏサブシステム２０６内の触覚フィードバックコントローラ２６１に結合された、触知出力生成器を示す。触知出力生成器２６７には、スピーカ又は他のオーディオ構成要素等の１つ以上の電気音響デバイス、及び／又はモータ、ソレノイド、電気活性ポリマー、圧電アクチュエータ、静電アクチュエータ、若しくは他の触知出力生成構成要素（例えば、デバイス上で電気信号を触知出力に変換する構成要素）等の、エネルギーを直線運動に変換する電気機械デバイス、が任意選択的に含まれる。接触強度センサ２６５は、触覚フィードバックモジュール２３３から触知フィードバック生成命令を受信し、デバイス２００のユーザが感知できる触知出力をデバイス２００上で生成する。いくつかの実施形態では、少なくとも１つの触知出力生成器は、タッチ感知面（例えば、タッチ感知ディスプレイシステム２１２）に配置されているか、又はそれに近接しており、任意選択的に、タッチ感知面を垂直方向（例えば、デバイス２００の表面の内／外）に、又は横方向（例えば、デバイス２００の表面と同じ平面内の前後）に動かすことによって、触知出力を生成する。いくつかの実施形態において、少なくとも１つの触知出力生成器センサは、デバイス２００の前面に配置されたタッチスクリーンディスプレイ２１２の反対側である、デバイス２００の背面に配置されている。
【００７１】
デバイス２００は更に、１つ以上の加速度計２６８を備えてもよい。図２Ａは、周辺機器インタフェース２１８に結合された加速度計２６８を示す。あるいは、加速度計２６８は、Ｉ／Ｏサブシステム２０６内の入力コントローラ２６０に結合してもよい。加速度計２６８は、米国特許出願公開第２００５０１９００５９号、「Ａｃｃｅｌｅｒａｔｉｏｎ−ｂａｓｅｄ  Ｔｈｅｆｔ  Ｄｅｔｅｃｔｉｏｎ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｐｏｒｔａｂｌｅ  Ｅｌｅｃｔｒｏｎｉｃ  Ｄｅｖｉｃｅｓ」、及び同第２００６００１７６９２号、「Ｍｅｔｈｏｄｓ  Ａｎｄ  Ａｐｐａｒａｔｕｓｅｓ  Ｆｏｒ  Ｏｐｅｒａｔｉｎｇ  Ａ  Ｐｏｒｔａｂｌｅ  Ｄｅｖｉｃｅ  Ｂａｓｅｄ  Ｏｎ  Ａｎ  Ａｃｃｅｌｅｒｏｍｅｔｅｒ」で説明されるように機能し得るものであり、これらの文献の双方は、全体が参照により本明細書に組み込まれる。いくつかの実施形態では、情報は、１つ以上の加速度計から受信したデータの分析に基づいて、縦長表示又は横長表示でタッチスクリーンディスプレイ上に表示される。デバイス２００は、加速度計（単数又は複数）２６８に加えて、磁気計（図示せず）並びにデバイス２００の位置及び向き（例えば、縦長又は横長）に関する情報を取得するためのＧＰＳ（又はＧＬＯＮＡＳＳ又は他のグローバルナビゲーションシステム）受信部（図示せず）を、任意選択的に含む。
【００７２】
いくつかの実施形態では、メモリ２０２に記憶されたソフトウェア構成要素は、オペレーティングシステム２２６、通信モジュール（又は命令セット）２２８、接触／動きモジュール（又は命令セット）２３０、グラフィックモジュール（又は命令セット）２３２、テキスト入力モジュール（又は命令セット）２３４、全地球測位システム（ＧＰＳ）モジュール（又は命令セット）２３５、デジタルアシスタントクライアントモジュール２２９、及びアプリケーション（又は命令セット）２３６を含む。更に、メモリ２０２は、ユーザデータ及びモデル２３１等の、データ及びモデルを記憶することができる。更に、いくつかの実施形態では、図２Ａ及び図４に示すように、メモリ２０２（図２Ａ）又はメモリ４７０（図４）は、デバイス／グローバル内部状態２５７を記憶する。デバイス／グローバル内部状態２５７は、現在アクティブ状態のアプリケーションがある場合、どのアプリケーションがアクティブかを示す、アクティブアプリケーション状態、どんなアプリケーション、ビュー、又は他の情報がタッチスクリーンディスプレイ２１２の様々な領域を占領しているかを示す、表示状態と、デバイスの様々なセンサ及び入力制御デバイス２１６から得られる情報を含む、センサ状態と、デバイスの位置及び／又は姿勢に関する位置情報と、のうちの１つ以上を含む。
【００７３】
オペレーティングシステム２２６（例えば、Ｄａｒｗｉｎ（登録商標）、ＲＴＸＣ（登録商標）、ＬＩＮＵＸ（登録商標）、ＵＮＩＸ（登録商標）、ＯＳ  Ｘ（登録商標）、ｉＯＳ（登録商標）、ＷＩＮＤＯＷＳ（登録商標）、又はＶｘＷｏｒｋｓ（登録商標）等の組み込みオペレーティングシステム）は、一般的なシステムタスク（例えば、メモリ管理、記憶デバイス制御、電力管理等）を制御及び管理するための様々なソフトウェアコンポーネント及び／又はドライバを含み、様々なハードウェア構成要素とソフトウェア構成要素との間の通信を容易にする。
【００７４】
通信モジュール２２８は、１つ以上の外部ポート２２４を通じて、他のデバイスとの通信を容易にし、ＲＦ回路２０８及び／又は外部ポート２２４が受信したデータを処理するための様々なソフトウェア構成要素をも含む。外部ポート２２４（例えば、ユニバーサルシリアルバス（ＵＳＢ）、ＦＩＲＥＷＩＲＥ（登録商標）等）は、直接的に、又はネットワーク（例えば、インターネット、無線ＬＡＮ等）を通じて間接的に、他のデバイスに連結するように適応している。いくつかの実施形態では、外部ポートは、ｉＰｏｄ（登録商標）（Ａｐｐｌｅ  Ｉｎｃ．の商標）デバイス上で使用される３０ピンのコネクタと同じか、若しくは同様の、かつ／又は互換性のあるマルチピン（例えば、３０ピン）コネクタである。
【００７５】
接触／動きモジュール２３０は、任意選択的に、（ディスプレイコントローラ２５６と関連して）タッチスクリーン２１２との接触、及び他のタッチ感知デバイス（例えば、タッチパッド又は物理クリックホイール）との接触を検出する。接触／動きモジュール２３０は、接触が生じたか否かを判定すること（例えば、指を下ろすイベントを検出すること）、接触の強度（例えば、接触の力若しくは圧力、又は、接触の力若しくは圧力の代替物）を判定すること、接触の移動が存在するか否かを判定し、タッチ感知面を横断する移動を追跡すること（例えば、指をドラッグする１つ以上のイベントを検出すること）、及び接触が停止したか否かを判定すること（例えば、指を上げるイベント又は接触の中断を検出すること）等の、接触の検出に関する様々な動作を実行するための、様々なソフトウェア構成要素を含む。接触／動きモジュール２３０は、タッチ感知面から接触データを受信する。一連の接触データにより表される接触点の移動を判定することは、接触点の速さ（大きさ）、速度（大きさ及び方向）、及び／又は加速度（大きさ及び／又は方向の変化）を判定することを任意選択的に含む。これらの動作は、任意選択的に、単一の接触（例えば、１本の指の接触）又は複数の同時接触（例えば、「マルチタッチ」／複数の指の接触）に適用される。一部の実施形態では、接触／動きモジュール２３０及びディスプレイコントローラ２５６は、タッチパッド上の接触を検出する。
【００７６】
一部の実施形態では、接触／動きモジュール２３０は、ユーザによって動作が実行されたか否かを判定するための（例えば、ユーザがアイコン上で「クリック」したか否かを判定するための）、１つ以上の強度閾値のセットを使用する。いくつかの実施形態において、少なくとも強度閾値のサブセットが、ソフトウェアパラメータに従って判定される（例えば、強度閾値は、特定の物理アクチュエータのアクティブ化閾値によって判定されず、デバイス２００の物理ハードウェアを変更することなく調整し得る）。例えば、トラックパッド又はタッチスクリーンディスプレイのマウス「クリック」閾値は、トラックパッド又はタッチスクリーンディスプレイのハードウェアを変更することなく広範囲の既定の閾値のうちのいずれかに設定することができる。更に、いくつかの実装において、デバイスのユーザには、（例えば、個々の強度閾値を調整することにより、及び／又は、システムレベルのクリック「強度」パラメータにより、一度に複数の強度閾値を調整することによって）強度閾値のセットのうちの１つ以上を調整するためのソフトウェア設定が提供される。
【００７７】
接触／動きモジュール２３０は任意選択的に、ユーザによるジェスチャ入力を検出する。タッチ感知面上の異なるジェスチャは、異なる接触パターン（例えば、異なる動き、タイミング、及び／又は検出される接触の強度）を有する。したがって、ジェスチャは、特定の接触パターンを検出することによって、任意選択的に検出される。例えば、指のタップジェスチャを検出することは、（例えば、アイコンの位置での）指を下ろすイベントを検出し、続いてその指を下ろすイベントと同じ位置（又は、実質的に同じ位置）で指を上げる（リフトオフ）イベントを検出することを含む。別の実施例として、タッチ感知面上での指のスワイプジェスチャを検出することは、指を下ろすイベントを検出し、続いて、１つ以上の、指をドラッグするイベントを検出し、その後、続いて指を上げる（リフトオフ）イベントを検出することを含む。
【００７８】
グラフィックモジュール２３２は、表示されるグラフィックの視覚的効果（例えば、輝度、透明度、彩度、コントラスト、又は他の視覚特性）を変更するための構成要素を含めた、タッチスクリーン２１２又は他のディスプレイ上にグラフィックをレンダリングして表示するための、様々な既知のソフトウェア構成要素を含む。本明細書で使用する時、用語「グラフィック」は、ユーザに対して表示することができる任意のオブジェクトを含み、これらのオブジェクトとしては、テキスト、ウェブページ、アイコン（ソフトキーを含むユーザインタフェースオブジェクト等）、デジタル画像、ビデオ、アニメーション等が挙げられるが、これらに限定されない。
【００７９】
いくつかの実施形態では、グラフィックモジュール２３２は、使用されるグラフィックを表すデータを記憶する。各グラフィックには、対応するコードが、任意選択的に割り当てられる。グラフィックモジュール２３２は、アプリケーション等から、必要に応じて、座標データ及び他のグラフィック特性データと共に、表示されるグラフィックを指定する１つ以上のコードを受信し、次にディスプレイコントローラ２５６に出力するスクリーン画像データを生成する。
【００８０】
触覚フィードバックモジュール２３３は、デバイス２００とのユーザ対話に応じて、デバイス２００上の１つ以上の場所で触知出力を生成するために、触知出力生成器（単数又は複数）２６７によって使用される命令を生成するための、様々なソフトウェア構成要素を含む。
【００８１】
テキスト入力モジュール２３４は、グラフィックモジュール２３２の構成要素とすることができ、様々なアプリケーション（例えば、連絡先２３７、電子メール２４０、ＩＭ２４１、ブラウザ２４７、及びテキスト入力を必要とする任意の他のアプリケーション）内でテキストを入力するための、ソフトキーボードを提供する。
【００８２】
ＧＰＳモジュール２３５は、デバイスの場所を判定し、この情報を様々なアプリケーション（例えば、位置ベースダイヤルで使用するために電話２３８、画像／ビデオメタデータとしてカメラ２４３並びに気象ウィジェット、ローカルイエローページウィジェット及びマップ／ナビゲーションウィジェット等の位置ベースサービスを提供するアプリケーション）で使用するために提供する。
【００８３】
デジタルアシスタントクライアントモジュール２２９は、デジタルアシスタントのクライアント側機能性を提供するための様々なクライアント側デジタルアシスタント命令を含み得る。例えば、デジタルアシスタントクライアントモジュール２２９は、ポータブル多機能デバイス２００の様々なユーザインタフェース（例えば、マイク２１３、加速度計２６８、タッチ感知ディスプレイシステム２１２、光センサ（単数又は複数）２６４、その他の入力制御装置２１６等）を介して、音声入力（例えば、発語入力）、テキスト入力、タッチ入力及び／又は、ジェスチャ入力を受け付ける能力を有することができる。デジタルアシスタントクライアントモジュール２２９はまた、ポータブル多機能デバイス２００の様々な出力インタフェース（例えば、スピーカ２１１、タッチ感知ディスプレイシステム２１２、触覚出力生成器２６７等）を介して、オーディオ（例えば、発語出力）形態、視覚形態及び／又は触覚形態で出力を提供する能力を有することができる。例えば、出力は、音声、音、警報、テキストメッセージ、メニュー、グラフィック、ビデオ、アニメーション、振動、及び／又は上記のうち２つ以上の組み合わせとして提供されてもよい。動作時、デジタルアシスタントクライアントモジュール２２９は、ＲＦ回路２０８を用いてＤＡサーバ１０６と通信することができる。
【００８４】
ユーザデータ及びモデル２３１は、デジタルアシスタントのクライアント側機能性を提供するために、ユーザに関連する様々なデータ（例えば、ユーザ別語彙データ、ユーザのプリファレンスデータ、ユーザ別の氏名の発音、ユーザの電子アドレス帳からのデータ、ｔｏ  ｄｏリスト、買い物リスト等）を含み得る。更に、ユーザデータ及びモデル２３１は、ユーザ入力を処理してユーザの意図を判定するための様々なモデル（例えば、発語認識モデル、統計的言語モデル、自然言語処理モデル、オントロジ、タスクフローモデル、サービスモデル等）を含み得る。
【００８５】
いくつかの実施例では、デジタルアシスタントクライアントモジュール２２９は、ユーザ、現在のユーザ対話及び／又は現在のユーザ入力と関連付けられたコンテキストを確立するために、ポータブル多機能デバイス２００の様々なセンサ、サブシステム及び周辺デバイスを利用して、ポータブル多機能デバイス２００の周囲環境から追加情報を収集することができる。いくつかの実施例では、デジタルアシスタントクライアントモジュール２２９は、ユーザの意図の推測を助けるために、ユーザ入力と共にコンテキスト情報又はそのサブセットをＤＡサーバ１０６に提供することができる。いくつかの例では、デジタルアシスタントはまた、ユーザへの出力をどのように準備し、配信するかを判定するために、コンテキスト情報を用いることもできる。コンテキスト情報は、コンテキストデータと称され得る。
【００８６】
いくつかの例では、ユーザ入力に伴うコンテキスト情報は、センサ情報、例えば、周囲環境の照明、周囲雑音、周囲温度、画像又は映像等を含み得る。いくつかの例では、コンテキスト情報はまた、デバイスの物理状態、例えば、デバイスの向き、デバイスの場所、デバイスの温度、電力レベル、速度、加速度、運動パターン、セルラ信号強度等も含み得る。いくつかの例では、ＤＡサーバ１０６のソフトウェア状態に関係する情報、例えば、ポータブル多機能デバイス２００の稼動中のプロセス、インストール済みのプログラム、過去と現在のネットワーク活動、バックグラウンドサービス、エラーログ、リソース使用量等が、ユーザ入力に関連付けられたコンテキスト情報として、ＤＡサーバ１０６に提供され得る。
【００８７】
いくつかの例では、デジタルアシスタントクライアントモジュール２２９は、ＤＡサーバ１０６からの要求に応じて、ポータブル多機能デバイス２００に記憶されている情報（例えば、ユーザデータ２３１）を選択的に提供することができる。いくつかの例では、デジタルアシスタントクライアントモジュール２２９はまた、ＤＡサーバ１０６による要求に応じて、自然言語ダイアログ又は他のユーザインタフェースを介してユーザから追加入力を引き出すことができる。デジタルアシスタントクライアントモジュール２２９は、ユーザ要求内に表されているユーザの意図の意図推論及び／又は達成においてＤＡサーバ１０６を助けるために、追加入力をＤＡサーバ１０６に渡すことができる。
【００８８】
デジタルアシスタントのより詳細な説明は、図７Ａ〜Ｃを参照して以下に説明する。デジタルアシスタントクライアントモジュール２２９は、以下に説明するデジタルアシスタントモジュール７２６のあらゆる数のサブモジュールを含み得ることを認識すべきである。
【００８９】
アプリケーション２３６は、以下のモジュール（又は、命令セット）、又はそれらのサブセット若しくはスーパーセットを含み得る。
●連絡先モジュール２３７（時には、アドレス帳又は連絡先リストとも呼ぶ）、
●電話モジュール２３８、
●ビデオ会議モジュール２３９、
●電子メールクライアントモジュール２４０、
●インスタントメッセージング（ＩＭ）モジュール２４１、
●トレーニングサポートモジュール２４２、
●静止画像及び／又はビデオ画像用のカメラモジュール２４３、
●画像管理モジュール２４４、
●ビデオ再生モジュール
●音楽再生モジュール
●ブラウザモジュール２４７、
●カレンダーモジュール２４８、
●気象ウィジェット２４９−１、株式ウィジェット２４９−２、電卓ウィジェット２４９−３、アラーム時計ウィジェット２４９−４、辞書ウィジェット２４９−５、及びユーザが取得した他のウィジェット、並びにユーザが作成したウィジェット２４９−６のうちの１つ以上を含むことができるウィジェットモジュール２４９、
●ユーザが作成したウィジェット２４９−６を作るためのウィジェットクリエータモジュール２５０、
●検索モジュール２５１、
●ビデオ再生モジュール及び音楽再生モジュールを統合した、ビデオ及び音楽再生モジュール２５２、
●メモモジュール２５３、
●マップモジュール２５４、及び／又は
●オンラインビデオモジュール２５５。
【００９０】
メモリ２０２内に記憶することができる他のアプリケーション２３６の例としては、他のワードプロセッシングアプリケーション、他の画像編集アプリケーション、描画アプリケーション、プレゼンテーションアプリケーション、ＪＡＶＡ（登録商標）対応アプリケーション、暗号化、デジタル著作権管理、音声認識、及び音声複製が挙げられる。
【００９１】
タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、及びテキスト入力モジュール２３４と連携して、連絡先モジュール２３７は、（例えば、メモリ２０２又はメモリ４７０内の連絡先モジュール２３７のアプリケーション内部状態２９２に記憶される）アドレス帳又は連絡先リストを管理するために用いられ得る。この管理することとしては、アドレス帳に名前（単数又は複数）を加えること、アドレス帳から名前（単数又は複数）を削除すること、電話番号（単数又は複数）、電子メールアドレス（単数又は複数）、住所（単数又は複数）、又は他の情報を名前と関連付けること、画像を名前と関連付けること、名前を分類して並べ替えること、電話番号又は電子メールアドレスを提供して、電話２３８、テレビ会議モジュール２３９、電子メール２４０、若しくはＩＭ２４１による通信を開始する、かつ／又は容易にすること、等が含まれる。
【００９２】
ＲＦ回路２０８、オーディオ回路２１０、スピーカ２１１、マイクロフォン２１３、タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、及びテキスト入力モジュール２３４と連携して、電話モジュール２３８は、電話番号に対応する一連の文字を入力し、連絡先モジュール２３７内の１つ以上の電話番号にアクセスし、入力された電話番号を修正し、対応する電話番号をダイヤルし、会話を行い、そして、会話が完了した際に接続を切るか又は電話を切るために、使用することができる。上述のように、無線通信は、複数の通信規格、通信プロトコル、及び通信技術のうちのいずれかを使用することができる。
【００９３】
ＲＦ回路機構２０８、オーディオ回路機構２１０、スピーカ２１１、マイクロフォン２１３、タッチスクリーン２１２、ディスプレイコントローラ２５６、光センサ２６４、光センサコントローラ２５８、接触／動きモジュール２３０、グラフィックモジュール２３２、テキスト入力モジュール２３４、連絡先モジュール２３７、及び電話モジュール２３８と関連して、テレビ会議モジュール２３９は、ユーザの指示に従って、ユーザと１人以上の他の参加者との間のテレビ会議を開始し、遂行し、終了する、実行可能命令を含む。
【００９４】
ＲＦ回路２０８、タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、及びテキスト入力モジュール２３４と連携して、電子メールクライアントモジュール２４０は、ユーザの指示に応じて、電子メールを作成し、送信し、受信し、管理する、実行可能な命令を含む。画像管理モジュール２４４と連携した電子メールクライアントモジュール２４０により、カメラモジュール２４３で撮影した静止画像又はビデオ画像を添付した電子メールを作成して送信することが非常に容易になる。
【００９５】
ＲＦ回路２０８、タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、及びテキスト入力モジュール２３４と連携して、インスタントメッセージングモジュール２４１は、インスタントメッセージに対応する文字列を入力したり、入力済みの文字を修正したり、（例えば、電話ベースのインスタントメッセージのためのショートメッセージサービス（ＳＭＳ）若しくはマルチメディアメッセージサービス（ＭＭＳ）プロトコルを使用して、又はインターネットベースのインスタントメッセージのためのＸＭＰＰ、ＳＩＭＰＬＥ、若しくはＩＭＰＳを使用して）対応するインスタントメッセージを送信したり、インスタントメッセージを受信してその受信したインスタントメッセージを表示したりする、実行可能な命令を含む。いくつかの実施形態では、送信及び／又は受信されるインスタントメッセージは、ＭＭＳ及び／又は拡張メッセージングサービス（ＥＭＳ：Enhanced Messaging Service）でサポートされるような、グラフィック、写真、オーディオファイル、ビデオファイル、及び／又は他の添付ファイルを含んでもよい。本明細書で使用する時、「インスタントメッセージング」とは、電話ベースのメッセージ（例えば、ＳＭＳ又はＭＭＳを使用して送信されるメッセージ）及びインターネットベースのメッセージ（例えば、ＸＭＰＰ、ＳＩＭＰＬＥ又はＩＭＰＳを使用して送信されるメッセージ）の双方を示す。
【００９６】
ＲＦ回路２０８、タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュー２３２、テキスト入力モジュール２３４、ＧＰＳモジュール２３５、マップモジュール２５４、及び音楽再生モジュールと連携して、トレーニングサポートモジュール２４２は、（例えば、時間、距離、及び／又はカロリー消費目標を有する）トレーニングを生成し、トレーニングセンサ（スポーツデバイス）と通信し、トレーニングセンサデータを受信し、トレーニングをモニタするために使用されるセンサを較正するし、トレーニングのための音楽を選択し、再生し、トレーニングデータを表示、記憶及び送信すする、実行可能な命令を含む。
【００９７】
タッチスクリーン２１２、ディスプレイコントローラ２５６、光センサ（単数又は複数）２６４、光センサコントローラ２５８、接触／動きモジュール２３０、グラフィックモジュール２３２、及び画像管理モジュール２４４と連携して、カメラモジュール２４３は、静止画像又は（ビデオストリームを含む）ビデオをキャプチャしてメモリ２０２にそれらを記憶したり、静止画像又はビデオの特性を変更したり、又はメモリ２０２から静止画像若しくはビデオを削除したりする、実行可能な命令を含む。
【００９８】
タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、テキスト入力モジュール２３４、及びカメラモジュール２４３と連携して、画像管理モジュール２４４は、静止画像及び／又はビデオ画像を配置し、修正し（例えば、編集し）及び別の方法で操作し、ラベルを付け、削除し、（例えば、デジタルスライドショー又はアルバムにおいて）提示し、並びに記憶したりする、実行可能な命令を含む。
【００９９】
ＲＦ回路２０８、タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、及びテキスト入力モジュール２３４と関連して、ブラウザモジュール２４７は、ウェブページ又はそれらの一部、並びにウェブページにリンクされた添付及び他のファイルを検索し、リンク付け、受信し、表示することを含むユーザの指示に従い、インターネットをブラウズする、実行可能命令を含む。
【０１００】
ＲＦ回路２０８、タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、テキスト入力モジュール２３４、電子メールクライアントモジュール２４０、及びブラウザモジュール２４７と連携して、カレンダーモジュール２４８は、ユーザの指示に従い、カレンダー及びカレンダーに関連付けられたデータ（例えば、カレンダー項目、ｔｏ  ｄｏリスト等）を作成し、表示し、変更し、記憶する、実行可能な命令を含む。
【０１０１】
ＲＦ回路２０８、タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、テキスト入力モジュール２３４、及びブラウザモジュール２４７と連携して、ウィジェットモジュール２４９は、ユーザがダウンロードし、使用できるミニアプリケーション（例えば、気象ウィジェット２４９−１、株価ウィジェット２４９−２、計算機ウィジェット２４９−３、アラーム時計ウィジェット２４９−４、及び辞書ウィジェット２４９−５）、又はユーザによって作成することが可能なミニアプリケーション（例えば、ユーザが作成したウィジェット２４９−６）である。いくつかの実施形態では、ウィジェットは、ＨＴＭＬ（ハイパーテキストマークアップ言語）ファイル、ＣＳＳ（カスケーディングスタイルシート）ファイル、及びＪａｖａＳｃｒｉｐｔ（登録商標）ファイルを含む。いくつかの実施形態では、ウィジェットは、ＸＭＬ（拡張可能マークアップ言語）ファイル及びＪａｖａＳｃｒｉｐｔファイル（例えば、Ｙａｈｏｏ！（登録商標）ウィジェット）を含む。
【０１０２】
ＲＦ回路２０８、タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、テキスト入力モジュール２３４、及びブラウザモジュール２４７と連携して、ウィジェットクリエータモジュール２５０は、ウィジェットを作成する（例えば、ウェブページのユーザ指定箇所をウィジェットに変える）ために、ユーザによって使用することができる。
【０１０３】
タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、及びテキスト入力モジュール２３４と連携して、検索モジュール２５１は、ユーザの指示に従い、１つ以上の検索基準（例えば、１つ以上のユーザ指定の検索語句）と一致する、メモリ２０２内のテキスト、音楽、音、画像、ビデオ、及び／又は他のファイルを検索する実行可能な命令を含む。
【０１０４】
タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィクモジュール２３２、音声回路２１０、スピーカ２１１、ＲＦ回路２０８、及びブラウザモジュール２４７と関連して、ビデオ及び音楽再生モジュール２５２は、ＭＰ３又はＡＡＣファイル等の１つ以上のファイル形式で記憶された録音済みの音楽又は他のサウンドファイルをユーザがダウンロード及び再生できるようにする実行可能命令、並びにビデオを（タッチスクリーン２１２上又は外部ポート２２４を介して接続された外部のディスプレイ上に）表示、提示、又は別の方法で再生する実行可能命令を含む。いくつかの実施形態では、デバイス２００は、任意選択的に、ｉＰｏｄ（Ａｐｐｌｅ  Ｉｎｃ．の商標）等のＭＰ３プレーヤの機能を備える。
【０１０５】
タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、及びテキスト入力モジュール２３４と関連して、メモモジュール２５３は、ユーザの指示に従って、メモ、ｔｏ  ｄｏリスト等を作成及び管理する、実行可能命令を含む。
【０１０６】
ＲＦ回路機構２０８、タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、テキスト入力モジュール２３４、ＧＰＳモジュール２３５、及びブラウザモジュール２４７と関連して、マップモジュール２５４は、ユーザの指示に従って、マップ、及びマップに関連付けられたデータ（例えば、運転方向、特定の場所若しくはその付近の店舗及び他の関心対象地点についてのデータ、並びに場所に基づく他のデータ）を受信し、表示し、修正し、記憶するために使用することができる。
【０１０７】
タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、オーディオ回路２１０、スピーカ２１１、ＲＦ回路２０８、テキスト入力モジュール２３４、電子メールクライアントモジュール２４０、及びブラウザモジュール２４７と連携して、オンラインビデオモジュール２５５は、ユーザがＨ．２６４等の１つ以上のファイル形式のオンラインビデオにアクセスし、閲覧し、（例えば、ストリーミング及び／又はダウンロードにより）受信し、（例えば、タッチスクリーン上で又は外部ポート２２４を介して接続された外部のディスプレイ上で）再生し、特定のオンラインビデオへのリンクを含む電子メールを送信し、別の方法で管理することが可能となる命令を含む。いくつかの実施形態では、特定のオンラインビデオへのリンクを送信するために、電子メールクライアントモジュール２４０ではなく、インスタントメッセージングモジュール２４１が使用される。オンラインビデオアプリケーションの追加の説明は、２００７年６月２０日に出願された米国特許仮出願第６０／９３６，５６２号、「Ｐｏｒｔａｂｌｅ  Ｍｕｌｔｉｆｕｎｃｔｉｏｎ  Ｄｅｖｉｃｅ，Ｍｅｔｈｏｄ，ａｎｄ  Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  ｆｏｒ  Ｐｌａｙｉｎｇ  Ｏｎｌｉｎｅ  Ｖｉｄｅｏｓ」、及び２００７年１２月３１日に出願された米国特許出願第１１／９６８，０６７号、「Ｐｏｒｔａｂｌｅ  Ｍｕｌｔｉｆｕｎｃｔｉｏｎ  Ｄｅｖｉｃｅ，Ｍｅｔｈｏｄ，ａｎｄ  Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  ｆｏｒ  Ｐｌａｙｉｎｇ  Ｏｎｌｉｎｅ  Ｖｉｄｅｏｓ」に見出すことができ、これらの出願の内容はその全体が本明細書において参照により組み込まれている。
【０１０８】
上記で識別されたモジュール及びアプリケーションのそれぞれは、１つ以上の上記の機能を実行するための実行可能な命令セット及び本出願に記載の方法（例えば、コンピュータにより実行される方法及び本明細書に記載の他の情報処理方法）に対応する。これらのモジュール（例えば、命令のセット）は、別個のソフトウェアプログラム、手順、又はモジュールとして実装される必要はなく、それゆえ、様々な実施形態では、これらのモジュールの様々なサブセットを組み合わせるか、又は他の方式で再編成することができる。例えば、ビデオ再生モジュールは、音楽再生モジュールと組み合わせて、単一のモジュール（例えば、図２Ａのビデオ及び音楽再生モジュール２５２）としてもよい。いくつかの実施形態では、メモリ２０２は、上記で識別されたモジュール及びデータ構造の部分集合を記憶することができる。更に、メモリ２０２は、上述されていない追加のモジュール及びデータ構造を記憶してもよい。
【０１０９】
いくつかの実施形態では、デバイス２００は、デバイス上の機能の既定のセットの動作が排他的にタッチスクリーン及び／又はタッチパッドを介して実行されるデバイスである。デバイス２００の動作に関する主要な入力制御デバイスとしてタッチスクリーン及び／又はタッチパッドを使用することによって、デバイス２００上の（プッシュボタン、ダイヤル等の）物理入力制御デバイスの数を低減することができる。
【０１１０】
排他的にタッチスクリーン及び／又はタッチパッドを介して実行される、既定の機能のセットは、任意選択的に、ユーザインタフェース間のナビゲーションを含む。いくつかの実施形態では、タッチパッドは、ユーザによってタッチされると、デバイス２００上に表示される任意のユーザインタフェースから、メインメニュー、ホームメニュー、又はルートメニューへデバイス２００をナビゲートする。かかる実施形態では、「メニューボタン」はタッチパッドを使って実装される。いくつかの他の実施形態では、メニューボタンは、タッチパッドの代わりに、物理的なプッシュボタン又は他の物理的な入力制御デバイスである。
【０１１１】
図２Ｂは、いくつかの実施形態に係る、イベント処理のための例示的な構成要素を示すブロック図である。いくつかの実施形態では、メモリ２０２（図２Ａ）又はメモリ４７０（図４）は、イベントソート部２７０（例えば、オペレーティングシステム２２６内）及び対応するアプリケーション２３６−１（例えば、上述のアプリケーション２３７〜２５１、２５５、４８０〜４９０のうちのいずれか）を含む。
【０１１２】
イベントソート部２７０は、イベント情報を受信し、イベント情報を配信するアプリケーション２３６−１及びアプリケーション２３６−１のアプリケーションビュー２９１を判定する。イベントソート部２７０は、イベントモニタ２７１及びイベントディスパッチャモジュール２７４を含む。いくつかの実施形態では、アプリケーション２３６−１は、アプリケーションがアクティブ又は実行中の時、タッチ感知ディスプレイ２１２上に表示される現在のアプリケーションビュー（単数又は複数）を示す、アプリケーション内部状態２９２を含む。いくつかの実施形態では、デバイス／グローバル内部状態２５７は、いずれのアプリケーション（単数又は複数）が現在アクティブであるかを判定するためにイベントソート部２７０によって使用され、アプリケーション内部状態２９２は、イベント情報の配信先となるアプリケーションビュー２９１を判定するためにイベントソート部２７０によって使用される。
【０１１３】
いくつかの実施形態では、アプリケーション内部状態２９２は、アプリケーション２３６−１が実行を再開する際に使用される再開情報、アプリケーション２３６−１によって情報が表示されているか又は表示の準備が整っていることを示すユーザインタフェース状態情報、ユーザがアプリケーション２３６−１の以前の状態又はビューに戻ることを可能にするための状態待ち行列、及びユーザが以前に行ったアクションのリドゥ／アンドゥ待ち行列、のうちの１つ以上等の追加情報を含む。
【０１１４】
イベントモニタ２７１は、周辺機器インタフェース２１８からイベント情報を受信する。イベント情報は、サブイベント（例えば、マルチタッチジェスチャの一部としての、タッチ感知ディスプレイ２１２上でのユーザのタッチ）についての情報を含む。周辺機器インタフェース２１８は、Ｉ／Ｏサブシステム２０６、又は近接センサ２６６、加速度計（単数又は複数）２６８、及び／若しくは（オーディオ回路２１０を介する）マイクロフォン２１３等のセンサから受信する情報を送信する。周辺機器インタフェース２１８がＩ／Ｏサブシステム２０６から受信する情報は、タッチ感知ディスプレイ２１２又はタッチ感知面からの情報を含む。
【０１１５】
いくつかの実施形態では、イベントモニタ２７１は、所定の間隔で周辺機器インタフェース２１８に要求を送信する。これに応じて、周辺機器インタフェース２１８はイベント情報を送信する。他の実施形態では、周辺機器インタフェース２１８は、重要なイベント（例えば、所定のノイズ閾値を上回り、かつ／又は所定の持続時間を超えた入力を受信すること）が存在する場合にのみ、イベント情報を送信する。
【０１１６】
いくつかの実施形態では、イベントソート部２７０はまた、ヒットビュー判定モジュール２７２及び／又はアクティブイベント認識部判定モジュール２７３も含む。
【０１１７】
ヒットビュー判定モジュール２７２は、タッチ感知ディスプレイ２１２が２つ以上のビューを表示する場合に、サブイベントが１つ以上のビュー内のいずれの場所で発生したかを判定するための、ソフトウェア手順を提供する。ビューは、制御部及びユーザがディスプレイ上で見ることが可能な他の要素で構成されている。
【０１１８】
アプリケーションに関連付けられたユーザインタフェースの別の態様は、本明細書では、アプリケーションビュー又はユーザインタフェースウィンドウと呼ばれる場合がある、ビューのセットであり、それらの中で情報が表示され、タッチに基づくジェスチャが生じる。タッチが検出される（対応するアプリケーションの）アプリケーションビューは、そのアプリケーションのプログラム階層又はビュー階層内のプログラムレベルに対応し得る。例えば、タッチが検出される最下位レベルのビューを、ヒットビューと呼ぶことができ、適切な入力として認識されるイベントのセットは、少なくとも部分的には、タッチに基づくジェスチャを開始する最初のタッチのヒットビューに基づいて、判定することができる。
【０１１９】
ヒットビュー判定モジュール２７２は、タッチベースのジェスチャのサブイベントと関連する情報を受信する。アプリケーションが、階層として編成された複数のビューを有する場合、ヒットビュー判定モジュール２７２は、そのサブイベントを処理すべき階層内の最下位のビューとしての、ヒットビューを識別する。ほとんどの状況では、ヒットビューは、最初のサブイベント（例えば、イベント又は潜在的なイベントを形成するサブイベントのシーケンスにおける最初のサブイベント）が発生する最下位レベルのビューである。ヒットビューがヒットビュー判定モジュール２７２によって特定されると、ヒットビューは、典型的には、それがヒットビューとして特定された、同じタッチ又は入力ソースに関連する全てのサブイベントを受信する。
【０１２０】
アクティブイベント認識部判定モジュール２７３は、ビュー階層内のどのビュー（単数又は複数）がサブイベントの特定のシーケンスを受信すべきかを判定する。いくつかの実施形態では、アクティブイベント認識部判定モジュール２７３は、ヒットビューのみがサブイベントの特定のシーケンスを受信すべきであると判定する。他の実施形態では、アクティブイベント認識部判定モジュール２７３は、サブイベントの物理的な位置を含む全てのビューはアクティブに関わっているビューであると判定し、したがって、全てのアクティブに関わっているビューは、サブイベントの特定のシーケンスを受信すべきであると判定する。他の実施形態では、タッチサブイベントがある特定のビューに関連付けられた領域に完全に限定されたとしても、階層の上位のビューは、依然としてアクティブに関わっているビューであり続ける。
【０１２１】
イベントディスパッチャモジュール２７４は、イベント情報をイベント認識部（例えば、イベント認識部２８０）に発信する。アクティブイベント認識部判定モジュール２７３を含む実施形態において、イベントディスパッチャモジュール２７４は、アクティブイベント認識部判定モジュール２７３により判定されたイベント認識部にイベント情報を配信する。いくつかの実施形態では、イベントディスパッチャモジュール２７４は、対応するイベント受信部２８２により取得されるイベント情報をイベント待ち行列に記憶する。
【０１２２】
いくつかの実施形態では、オペレーティングシステム２２６は、イベントソート部２７０を含む。あるいは、アプリケーション２３６−１が、イベントソート部２７０を含む。更に他の実施形態では、イベントソート部２７０は、スタンドアロンモジュール、又は接触／動きモジュール２３０等の、メモリ２０２に記憶された別のモジュールの一部である。
【０１２３】
いくつかの実施形態では、アプリケーション２３６−１は、そのアプリケーションのユーザインタフェースの各ビュー内で発生するタッチイベントを処理する命令をそれぞれが含む、複数のイベント処理部２９０及び１つ以上のアプリケーションビュー２９１を含む。アプリケーション２３６−１の各アプリケーションビュー２９１は、１つ以上のイベント認識部２８０を含む。通常は、各アプリケーションビュー２９１は、複数のイベント認識部２８０を含む。他の実施形態では、イベント認識部２８０のうちの１つ以上は、ユーザインタフェースキット（図示せず）又はアプリケーション２３６−１が方法及び他の特性を継承する上位レベルのオブジェクト等の、別個のモジュールの一部である。いくつかの実施形態では、各イベント処理部２９０は、データ更新部２７６、オブジェクト更新部２７７、ＧＵＩ更新部２７８、及び／又はイベントソート部２７０から受信したイベントデータ２７９、のうちの１つ以上を含む。イベント処理部２９０は、アプリケーション内部状態２９２を更新するために、データ更新部２７６、オブジェクト更新部２７７、若しくはＧＵＩ更新部２７８を利用するか、又は呼び出すことができる。あるいは、アプリケーションビュー２９１のうちの１つ以上は、１つ以上の各イベント処理部２９０を含む。また、一部の実施形態では、データ更新部２７６、オブジェクト更新部２７７、及びＧＵＩ更新部２７８のうちの１つ以上も、対応するアプリケーションビュー２９１に含まれる。
【０１２４】
それぞれのイベント認識部２８０は、イベントソート部２７０からイベント情報（例えば、イベントデータ２７９）を受信して、そのイベント情報からイベントを特定する。イベント認識部２８０は、イベント受信部２８２及びイベント比較部２８４を含む。いくつかの実施形態では、イベント認識部２８０は更に、メタデータ２８３及びイベント配信命令２８８（サブイベント配信命令を含んでいてもよい）の少なくとも部分集合を含む。
【０１２５】
イベント受信部２８２は、イベントソート部２７０からイベント情報を受信する。このイベント情報は、サブイベントについての情報、例えば、タッチ又はタッチの移動についての情報を含む。サブイベントによっては、イベント情報はまた、サブイベントの場所等の追加情報も含む。サブイベントが、タッチの動きに関係する場合、イベント情報はまた、そのサブイベントの速度及び方向も含み得る。一部の実施形態では、イベントは、１つの向きから別の向きへの（例えば、縦向きから横向きへの、又はその逆の）デバイスの回転を含み、そのイベント情報は、デバイスの現在の向き（デバイスの姿勢とも呼ばれる）についての対応する情報を含む。
【０１２６】
イベント比較部２８４は、イベント情報を既定のイベント又はサブイベントの定義と比較し、その比較に基づいて、イベント又はサブイベントを判定する、あるいはイベント又はサブイベントの状態を判定若しくは更新する。いくつかの実施形態では、イベント比較部２８４は、イベント定義２８６を含む。ベント定義２８６は、例えば、イベント１（２８７−１）、イベント２（２８７−２）等の、イベントの定義（例えば、サブイベントの既定のシーケンス）を含む。いくつかの実施形態では、イベント（２８７）内のサブイベントは、例えば、タッチ開始、タッチ終了、タッチの移動、タッチの中止、及び複数のタッチを含む。ある実施例では、イベント１（２８７−１）の定義は、表示されたオブジェクト上のダブルタップである。このダブルタップは、例えば、所定の段階に関する表示オブジェクト上での第１のタッチ（タッチの開始）、所定の段階に関する第１のリフトオフ（タッチの終了）、所定の段階に関する表示オブジェクト上での第２のタッチ（タッチの開始）、及び所定の段階に関する第２のリフトオフ（タッチの終了）を含む。別の実施例では、イベント２（２８７−２）の定義は、表示されたオブジェクト上のドラッグ操作である。このドラッグ操作は、例えば、所定の段階に関する表示オブジェクト上でのタッチ（又は、接触）、タッチ感知ディスプレイ２１２を横断するタッチの移動、及びタッチのリフトオフ（タッチの終了）を含む。いくつかの実施形態では、イベントはまた、１つ以上の関連したイベント処理部２９０に関する情報も含む。
【０１２７】
いくつかの実施形態では、イベント定義２８７は、それぞれのユーザインタフェースオブジェクトに関するイベントの定義を含む。いくつかの実施形態では、イベント比較部２８４は、サブイベントに関連付けられたユーザインタフェースオブジェクトを判定するヒットテストを実行する。例えば、３つのユーザインタフェースオブジェクトがタッチ感知ディスプレイ２１２に表示されるアプリケーションビューにおいて、タッチ感知ディスプレイ２１２上でタッチが検出されると、イベント比較部２８４は、３つのユーザインタフェースオブジェクトのうちのどれがタッチ（サブイベント）に関連付けられているかを判定するためのヒットテストを行う。表示された各オブジェクトが、対応するイベント処理部２９０に関連付けられている場合、イベント比較部は、ヒットテストの結果を用いて、どのイベント処理部２９０をアクティブ化すべきかを判定する。例えば、イベント比較部２８４は、サブイベント及びヒットテストのトリガとなるオブジェクトに関連付けられたイベント処理部を選択する。
【０１２８】
いくつかの実施形態では、各イベント（２８７）に関する定義はまた、サブイベントのシーケンスがイベント認識部のイベント種類に対応するか否かが判定されるまでイベント情報の配信を遅延させる遅延動作も含む。
【０１２９】
各イベント認識部２８０は、一連のサブイベントが、イベント定義２８６のイベントのうちのいずれとも一致しないと判定した場合、各イベント認識部２８０は、イベント不可能、イベント失敗、又はイベント終了の状態のいずれかに入り、その後は、タッチベースのジェスチャの次のサブイベントを無視する。この状況では、ヒットビューに関してアクティブのまま維持される他のイベント認識部があれば、進行中のタッチに基づくジェスチャのサブイベントを、引き続き追跡及び処理する。
【０１３０】
いくつかの実施形態では、各イベント認識部２８０は、構成可能なプロパティと、フラグと、及び／又はイベント配信システムがアクティブに関わっているイベント認識部にどのようにサブイベント配信を実行するかについて示すリストと、を有するメタデータ２８３を含む。いくつかの実施形態では、メタデータ２８３は、構成可能なプロパティと、フラグと、及び／又はイベント認識部が互いにどのように対話し得るか、あるいは、対話が可能になるかについて示すリストと、を含む。いくつかの実施形態では、メタデータ２８３は、構成可能なプロパティと、フラグと、及び／又はサブイベントがビュー階層又はプログラム階層内の様々なレベルに配信されるか否かを示すリストと、を含む。
【０１３１】
いくつかの実施形態では、各イベント認識部２８０は、イベントの１つ以上の特定のサブイベントが認識された時に、イベントに関連付けられたイベント処理部２９０をアクティブ化する。いくつかの実施形態では、各イベント認識部２８０は、イベントに関連付けられたイベント情報をイベント処理部２９０に配信する。イベント処理部２９０をアクティブ化することは、対応するヒットビューにサブイベントを送信（及び送信を延期する）することとは異なる。いくつかの実施形態では、イベント認識部２８０は、認識されたイベントに関連付けられたフラグをスローし、フラグに関連付けられたイベント処理部２９０は、フラグをキャッチし、既定の処理を実行する。
【０１３２】
いくつかの実施形態では、イベント配信命令２８８は、イベント処理部をアクティブ化せずに、サブイベントに関するイベント情報を配信するサブイベント配信命令を含む。その代わりに、サブイベント配信命令は、一連のサブイベントに関連付けられたイベント処理部又はアクティブに関わっているビューにイベント情報を配信する。一連のサブイベント又はアクティブに関わっているビューに関連付けられたイベント処理部は、イベント情報を受信し、所定の処理を実行する。
【０１３３】
いくつかの実施形態では、データ更新部２７６は、アプリケーション２３６−１で使用されるデータを作成及び更新する。例えば、データ更新部２７６は、連絡先モジュール２３７で使用される電話番号を更新したり、ビデオ再生モジュールで使用されるビデオファイルを記憶したりする。いくつかの実施形態では、オブジェクト更新部２７７は、アプリケーション２３６−１で使用されるオブジェクトを作成及び更新する。例えば、オブジェクト更新部２７７は、新たなユーザインタフェースオブジェクトを作成するか、又はユーザインタフェースオブジェクトの位置を更新する。ＧＵＩ更新部２７８は、ＧＵＩを更新する。例えば、ＧＵＩ更新部２７８は、表示情報を準備し、それをタッチ感知ディスプレイ上に表示するためにグラフィックモジュール２３２に送信する。
【０１３４】
いくつかの実施形態では、イベント処理部（単数又は複数）２９０は、データ更新部２７６、オブジェクト更新部２７７、及びＧＵＩ更新部２７８を含むか、若しくはそれらにアクセスすることができる。いくつかの実施形態では、データ更新部２７６、オブジェクト更新部２７７、及びＧＵＩ更新部２７８は、各アプリケーション２３６−１又はアプリケーションビュー２９１の単一モジュールに含まれる。他の実施形態では、それらは、２つ以上のソフトウェアモジュールに含まれる。
【０１３５】
タッチ感知ディスプレイ上のユーザのタッチのイベント処理に関する前述の論考はまた、入力デバイスを使用して多機能デバイス２００を動作させるための他の形態のユーザ入力にも適用されるが、その全てがタッチスクリーン上で開始されるわけではないことが理解されよう。例えば、単一又は複数のキーボードの押下又は保持に任意選択的に合わせたマウスの移動及びマウスボタンの押下、タッチパッド上でのタップ、ドラッグ、スクロール等の接触移動、ペンスタイラス入力、デバイスの移動、口頭による命令、検出された眼球運動、バイオメトリック入力、及び／又はこれらの任意の組み合わせが、認識対象のイベントを定義するサブイベントに対応する入力として任意選択的に利用される。
【０１３６】
図３は、いくつかの実施形態に係る、タッチスクリーン２１２を有するポータブル多機能デバイス２００を示す。タッチスクリーンは、ユーザインタフェース（ＵＩ）３００内に１つ以上のグラフィックを、任意選択的に表示する。本実施形態、並びに以下に説明する他の実施形態において、ユーザは、例えば、１本以上の指３０２（図には、正確な縮尺率では描かれていない）又は１つ以上のスタイラス３０３（図には、正確な縮尺率では描かれていない）を用いて、グラフィック上でジェスチャを行うことにより、グラフィックのうち１つ以上を選択することができる。いくつかの実施形態では、ユーザが１つ以上のグラフィックとの接触を断った際に、その１つ以上のグラフィックの選択が生じる。いくつかの実施形態では、ジェスチャは、１回以上のタップ、１回以上のスワイプ（左から右へ、右から左へ、上方向へ及び／又は下方向へ）、並びに／若しくは、デバイス２００と接触した指のローリング（右から左へ、左から右へ、上方向へ及び／又は下方向へ）を、任意選択的に含む。いくつかの実装又は状況では、グラフィックとの不測の接触は、そのグラフィックを選択するものではない。例えば、選択に対応するジェスチャがタップである場合、アプリケーションアイコンの上をスイープするスワイプジェスチャは、対応するアプリケーションを任意選択的に選択しない。
【０１３７】
デバイス２００はまた、「ホーム」又はメニューボタン３０４等の、１つ以上の物理ボタンも含み得る。上述したように、メニューボタン３０４を使用して、デバイス２００上で実行することができるアプリケーションセット内の任意のアプリケーション２３６へ、ナビゲートすることができる。あるいは、いくつかの実施形態では、メニューボタンは、タッチスクリーン２１２に表示されたＧＵＩにおけるソフトキーとして実装されている。
【０１３８】
一実施形態では、デバイス２００は、タッチスクリーン２１２、メニューボタン３０４、デバイスの電源をオン／オフし、デバイスをロックするためのプッシュボタン３０６、音量調節ボタン（単数又は複数）３０８、加入者識別モジュール（ＳＩＭ）カードスロット３１０、ヘッドセットジャック３１２、及びドッキング／充電用外部ポート２２４を含む。プッシュボタン３０６は、ボタンを押し下げて、既定の時間にわたってボタンを押し下げた状態で保持することによってデバイス上の電源をオン／オフし、ボタンを押し下げて、既定時間が経過する前にボタンを解放することによってデバイスをロックし、かつ／又は、デバイスのロックを解除するか、若しくはロック解除プロセスを開始するように、任意選択的に使用される。別の実施形態では、デバイス２００はまた、マイクロフォン２１３を通して、一部の機能をアクティブ化又は非アクティブ化するための口頭入力を受け付ける。デバイス２００はまた、タッチスクリーン２１２上の接触の強度を検出するための１つ以上の接触強度センサ２６５、及び／又は、デバイス２００のユーザに対する触知出力を生成するための１つ以上の触知出力生成器２６７も、任意選択的に含む。
【０１３９】
図４は、一部の実施形態による、ディスプレイ及びタッチ感知面を備える例示的多機能デバイスのブロック図である。デバイス４００は、ポータブル型である必要はない。一部の実施形態では、デバイス４００は、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、マルチメディアプレーヤデバイス、ナビゲーションデバイス、教育用デバイス（子供の学習玩具等）、ゲームシステム、又は制御デバイス（例えば、家庭用又は業務用コントローラ）である。デバイス４００は、典型的には、１つ以上の処理ユニット（ＣＰＵ）４１０、１つ以上のネットワーク若しくは他の通信インタフェース４６０、メモリ４７０、及びこれらの構成要素を相互接続するための１つ以上の通信バス４２０を含む。通信バス４２０は、システム構成要素間の通信を相互接続及び制御する回路（チップセットと呼ばれることがある）を、任意選択的に含む。デバイス４００は、典型的にはタッチスクリーンディスプレイであるディスプレイ４４０を備える入出力（Ｉ／Ｏ）インタフェース４３０を含む。Ｉ／Ｏインタフェース４３０はまた、キーボード及び／又はマウス（又は他のポインティングデバイス）４５０、並びにタッチパッド４５５、デバイス４００上に触知出力を生成するための（例えば、図２Ａを参照して上述した触知出力生成器２６７（単数又は複数）と同様の）触知出力生成器４５７、センサ４５９（例えば、光センサ、加速度センサ、近接センサ、タッチ感知センサ、及び／又は図２Ａを参照して上述した接触強度センサ（単数又は複数）２６５と同様の接触強度センサ）も、任意選択的に含む。メモリ４７０は、ＤＲＡＭ、ＳＲＡＭ、ＤＤＲ  ＲＡＭ、又は他のランダムアクセスソリッドステートメモリデバイス等の、高速ランダムアクセスメモリを含み、また任意選択的に、１つ以上の磁気ディスク記憶デバイス、光ディスク記憶デバイス、フラッシュメモリデバイス、又は他の不揮発性半導体記憶デバイス等の、不揮発性メモリを含む。メモリ４７０は、ＣＰＵ（単数又は複数）４１０から離れて位置する１つ以上の記憶デバイスを任意選択的に含む。いくつかの実施形態では、メモリ４７０は、ポータブル多機能デバイス２００（図２Ａ）のメモリ２０２に記憶されたプログラム、モジュール、及びデータ構造、又はそれらの部分集合に類似する、プログラム、モジュール、及びデータ構造を記憶する。更に、メモリ４７０は、ポータブル多機能デバイス２００のメモリ２０２に存在しない追加のプログラム、モジュール、及びデータ構造を、任意選択的に記憶する。例えば、デバイス４００のメモリ４７０は、描画モジュール４８０、プレゼンテーションモジュール４８２、ワードプロセッシングモジュール４８４、ウェブサイト作成モジュール４８６、ディスクオーサリングモジュール４８８、及び／又はスプレッドシートモジュール４９０を任意選択的に記憶するが、ポータブル多機能デバイス２００（図２Ａ）のメモリ２０２はこれらのモジュールを任意選択的に記憶しない。
【０１４０】
図４の上記で識別された要素のそれぞれは、前述のメモリデバイスの１つ以上に記憶してもよい。上記で識別されたモジュールのうちのそれぞれは、上述した機能を実行する命令セットに対応する。上記で特定されたモジュール又はプログラム（例えば、命令セット）は、別個のソフトウェアプログラム、手順、又はモジュールとして実装される必要はなく、それゆえ、様々な実施形態では、これらのモジュールの様々なサブセットを組み合わせるか、又は他の方式で再編成することができる。いくつかの実施形態では、メモリ４７０は、上記で識別されたモジュール及びデータ構造のサブセットを記憶することができる。更に、メモリ４７０は、上述されていない追加のモジュール及びデータ構造を記憶してもよい。
【０１４１】
次に、例えば、ポータブル多機能デバイス２００上に実装することができるユーザインタフェースの実施形態に注意を向ける。
【０１４２】
図５Ａは、いくつかの実施形態に係る、ポータブル多機能デバイス２００上のアプリケーションのメニューに関する例示的なユーザインタフェースを示す。同様のユーザインタフェースを、デバイス４００上に実装してもよい。いくつかの実施形態では、ユーザインタフェース５００は、以下の要素、又はそれらの部分集合若しくは上位集合を含む。
【０１４３】
セルラ信号及びＷｉ−Ｆｉ信号等の無線通信（単数又は複数）に関する信号強度インジケータ（単数又は複数）５０２、
●時刻５０４、
●Ｂｌｕｅｔｏｏｔｈインジケータ５０５、
●バッテリ状態インジケータ５０６、
●下記等の、頻繁に使用されるアプリケーション用のアイコンを含むトレイ５０８、
○必要に応じて不在着信又はボイスメールメッセージの数のインジケータ５１４を含む、「電話」とラベル付けされた電話モジュール２３８用のアイコン５１６
○未読電子メールの数のインジケータ５１０を任意選択的に含む、「メール」とラベル付けされた、電子メールクライアントモジュール２４０用のアイコン５１８、
○「ブラウザ」とラベル付けされた、ブラウザモジュール２４７用のアイコン５２０、及び
○「ｉＰｏｄ」とラベル付けされる、ｉＰｏｄ（Ａｐｐｌｅ  Ｉｎｃ．の商標）モジュール２５２とも称されるビデオ及び音楽再生モジュール２５２用のアイコン５２２、及び
●下記等の、その他のアプリケーション用のアイコン、
○「メッセージ」とラベル付けされる、ＩＭモジュール２４１用のアイコン５２４、
○「カレンダー」とラベル付けされた、カレンダーモジュール２４８用のアイコン５２６、
○「写真」とラベル付けされる、画像管理モジュール２４４用のアイコン５２８、
○「カメラ」とラベル付けされる、カメラモジュール２４３用のアイコン５３０、
○「オンライン映像」とラベル付けされたオンライン映像モジュール２５５用のアイコン５３２、
○「株式」とラベル付けされる、株式ウィジェット２４９−２用のアイコン５３４、
○「マップ」とラベル付けされたマップモジュール２５４用のアイコン５３６、
○「気象」とラベル付けされた、気象ウィジェット２４９−１用のアイコン５３８、
○「時計」とラベル付けされる、アラーム時計ウィジェット２４９−４用のアイコン５４０、
○「トレーニングサポート」とラベル付けされる、トレーニングサポートモジュール２４２用のアイコン５４２、
○「メモ」とラベル付けされた、メモモジュール２５３用のアイコン５４４、及び
○「設定」とラベル付けされた、デバイス２００及びその様々なアプリケーション２３６に関する設定へのアクセスを提供する、設定アプリケーション又はモジュール用のアイコン５４６。
【０１４４】
図５Ａに示されているアイコンのラベルは、単なる例示であることに留意されたい。例えば、ビデオ及び音楽再生モジュール２５２用のアイコン５２２は、任意選択的に、「音楽」又は「音楽プレーヤ」とラベル付けされてもよい。他のラベルが、様々なアプリケーションアイコンのために、任意選択的に使用される。いくつかの実施形態では、それぞれのアプリケーションアイコンに関するラベルは、それぞれのアプリケーションアイコンに対応するアプリケーションの名前を含む。いくつかの実施形態では、特定のアプリケーションアイコンのラベルは、特定のアプリケーションアイコンに対応するアプリケーションの名前とは異なる。
【０１４５】
図５Ｂは、ディスプレイ５５０（例えば、タッチスクリーンディスプレイ２１２）とは別個のタッチ感知面５５１（例えば、図４のタブレット又はタッチパッド４５５）を備えるデバイス（例えば、図４のデバイス４００）上の、例示的なユーザインタフェースを示す。デバイス４００はまた、タッチ感知面５５１上の接触の強度を検出するための１つ以上の接触強度センサ（例えば、センサ４５７のうちの１つ以上）、及び／又はデバイス４００のユーザに対する触知出力を生成するための１つ以上の触知出力生成器４５９を任意選択的に含む。
【０１４６】
以下の実施例のうちのいくつかはタッチスクリーンディスプレイ２１２上での入力（タッチ感知面とディスプレイとが組み合わされている場合）を参照して説明されるが、いくつかの実施形態では、デバイスは、図５Ｂに示されるように、ディスプレイとは別個のタッチ感知面上での入力を検出する。いくつかの実施形態では、このタッチ感知面（例えば、図５Ｂの５５１）は、ディスプレイ（例えば、５５０）上の主軸（例えば、図５Ｂの５５３）に対応する主軸（例えば、図５Ｂの５５２）を有する。これらの実施形態によれば、デバイスは、タッチ感知面５５１との接触（例えば、図５Ｂの５６０及び５６２）を、ディスプレイ上のそれぞれの場所に対応する場所（例えば、図５Ｂでは、５６０は５６８に対応し、５６２は５７０に対応する）にて検出する。このように、タッチ感知面がディスプレイとは別個のものである場合、タッチ感知面（例えば、図５Ｂの５５１）上でデバイスによって検出されたユーザ入力（例えば、接触５６０及び５６２、並びにそれらの移動）が、多機能デバイスのディスプレイ（例えば、図５Ｂでの５５０）上のユーザインタフェースを操作するために、デバイスによって使用される。同様の方法が、本明細書に記載の他のユーザインタフェースに任意選択的に使用されることを理解されたい。
【０１４７】
更に加えて、以下の実施例は主に指入力（例えば、指の接触、指のタップジェスチャ、及び指のスワイプジェスチャ）を参照して説明されるが、いくつかの実施形態では、それらの指入力のうちの１つ以上は、別の入力デバイスからの入力（例えば、マウスに基づく入力、又はスタイラス入力）で置き換えられることを理解されたい。例えば、スワイプジェスチャは、マウスクリック（例えば、接触の代わり）に続いて、スワイプの経路に沿ってカーソルを移動する動作（例えば、接触の移動の代わり）によって、任意選択的に置き換えられる。別の実施例としては、タップジェスチャは、（例えば、接触の検出に続いて、その接触の検出を停止する代わりに）カーソルがタップジェスチャの場所の上に配置されている間のマウスクリックによって、任意選択的に置き換えられる。同様に、複数のユーザ入力が同時に検出される場合、複数のコンピュータマウスが任意選択的に同時に使用されるか、又は、マウス及び／又は指の接触が任意選択的に同時に使用されることを理解されたい。
【０１４８】
図６Ａは、例示的なパーソナル電子デバイス６００を示す。デバイス６００は、本体６０２を含む。いくつかの実施形態では、デバイス６００は、デバイス２００及び４００（例えば、図２Ａ〜図４Ｂ）に関して記載した特徴の一部又は全てを含み得る。いくつかの実施形態では、デバイス６００は、タッチ感知ディスプレイ画面６０４、以後、タッチスクリーン６０４を有する。タッチスクリーン６０４の代わりに、又はそれに追加して、デバイス６００は、ディスプレイ及びタッチ感知面を有する。デバイス２００及び４００と同様に、いくつかの実施形態では、タッチスクリーン６０４（又はタッチ感知面）は、印加されている接触（例えば、タッチ）の強度を検出するための１つ以上の強度センサを有してもよい。タッチスクリーン６０４（又は、タッチ感知面）の１つ以上の強度センサは、タッチの強度を表す出力データを提供することができる。デバイス６００のユーザインタフェースは、タッチの強度に基づきタッチに応じてもよく、これは、異なる強度のタッチは、デバイス６００上で異なるユーザインタフェース動作を呼び出し得ることを意味する。
【０１４９】
タッチ強度を検出して処理するための技術は、例えば、関連出願である、２０１３年５月８日出願の「Ｄｅｖｉｃｅ，Ｍｅｔｈｏｄ，ａｎｄ  Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  ｆｏｒ  Ｄｉｓｐｌａｙｉｎｇ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ｏｂｊｅｃｔｓ  Ｃｏｒｒｅｓｐｏｎｄｉｎｇ  ｔｏ  ａｎ  Ａｐｐｌｉｃａｔｉｏｎ」と題された国際特許出願第ＰＣＴ／ＵＳ２０１３／０４００６１号、及び２０１３年１１月１１日出願の「Ｄｅｖｉｃｅ，Ｍｅｔｈｏｄ，ａｎｄ  Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  ｆｏｒ  Ｔｒａｎｓｉｔｉｏｎｉｎｇ  Ｂｅｔｗｅｅｎ  Ｔｏｕｃｈ  Ｉｎｐｕｔ  ｔｏ  Ｄｉｓｐｌａｙ  Ｏｕｔｐｕｔ  Ｒｅｌａｔｉｏｎｓｈｉｐｓ」と題された同第ＰＣＴ／ＵＳ２０１３／０６９４８３号に見出すことができ、これらの文献のそれぞれは、全体が参照により本明細書に組み込まれる。
【０１５０】
一部の実施形態では、デバイス６００は、１つ以上の入力機構６０６及び入力機構６０８を有する。入力機構６０６及び入力機構６０８は、含まれる場合には、物理的なものとすることができる。物理入力機構の例としては、プッシュボタン及び回転可能機構が挙げられる。一部の実施形態では、デバイス６００は、１つ以上の取り付け機構を有する。そのような取り付け機構は、含まれる場合には、例えば、帽子、アイウェア、イヤリング、ネックレス、シャツ、ジャケット、ブレスレット、腕時計バンド、チェーン、ズボン、ベルト、靴、財布、バックパック等に、デバイス６００を取り付けることを可能にし得る。これらの取り付け機構は、ユーザによってデバイス６００が着用されることを可能にし得る。
【０１５１】
図６Ｂは、例示的なパーソナル電子デバイス６００を示す。いくつかの実施形態では、デバイス６００は、図２Ａ、図２Ｂ及び図４に関して記載した構成要素の一部又は全てを含み得る。デバイス６００は、Ｉ／Ｏ部６１４を１つ以上のコンピュータプロセッサ６１６及びメモリ６１８に動作可能に連結するバス６１２を有する。Ｉ／Ｏ部６１４は、タッチ感知構成要素６２２、及び、任意選択的に、タッチ強度感知構成要素６２４を有し得るディスプレイ６０４に接続することができる。更に、Ｉ／Ｏ部６１４は、Ｗｉ−Ｆｉ、Ｂｌｕｅｔｏｏｔｈ、近距離通信（ＮＦＣ）、セルラ及び／又は他の無線通信技術を使用して、アプリケーション及びオペレーティングシステムのデータを受信するための通信ユニット６３０に接続し得る。デバイス６００は、入力機構６０６及び／又は６０８を含むことができる。入力機構６０６は、例えば、回転可能入力デバイス、又は押し下げ可能かつ回転可能な入力デバイスとしてもよい。入力機構６０８は、いくつかの実施例では、ボタンであってもよい。
【０１５２】
入力機構６０８は、いくつかの実施例では、マイクロフォンであってもよい。パーソナル電子デバイス６００は、ＧＰＳセンサ６３２、加速度計６３４、方向センサ６４０（例えば、コンパス）、ジャイロスコープ６３６、動きセンサ６３８、及び／又はこれらの組み合わせ等の、様々なセンサを含み得るものであり、それらの全ては、Ｉ／Ｏセクション６１４に動作可能に接続することができる。
【０１５３】
パーソナル電子デバイス６００のメモリ６１８は、コンピュータ実行可能命令を記憶するための非一時的コンピュータ可読記憶媒体とすることができ、それらの命令は、１つ以上のコンピュータプロセッサ６１６によって実行されると、例えば、コンピュータプロセッサに、プロセス１２００（図１２Ａ〜Ｄ）を含めた、以下に説明する技法を実行させることができる。コンピュータ実行可能な命令はまた、コンピュータベースのシステム、プロセッサを含むシステム、又は、命令実行システム、装置、若しくはデバイスから命令をフェッチし、その命令を実行し得る他のシステム等の、命令実行システム、装置、又はデバイス、によって、若しくはそれらに関連して、使用される任意の非一時的コンピュータ可読記憶媒体に記憶及び／又は伝送されてもよい。パーソナル電子デバイス６００は、図６Ｂの構成要素及び構成に限定されるものではなく、他の構成要素又は追加的構成要素を、複数の構成で含み得る。
【０１５４】
ここで使用する時、用語「アフォーダンス」は、デバイス２００、４００、及び／又は６００（図２、４、及び６）のディスプレイスクリーン上に表示され得るユーザ対話式のグラフィカルユーザインタフェースオブジェクトを指す。例えば、画像（例えば、アイコン）、ボタン、及びテキスト（例えば、リンク）はそれぞれ、アフォーダンスを構成することができる。
【０１５５】
本明細書で使用する時、用語「フォーカスセレクタ」とは、ユーザが対話しているユーザインタフェースの現在の部分を示す入力要素を指す。カーソル又は他の位置マーカを含むいくつかの実装において、タッチ感知面（例えば、図４のタッチパッド４５５、又は図５Ｂのタッチ感知面５５１）上で入力（例えば、押圧入力）が検出された時に、カーソルが特定のユーザインタフェース要素（例えば、ボタン、ウィンドウ、スライダ、又は他のユーザインタフェース要素）の上にある時、カーソルは「フォーカスセレクタ」として機能し、特定のユーザインタフェース要素が、検出された入力に従って調整される。タッチスクリーンディスプレイ上のユーザインタフェース要素との直接的な対話を可能にする、タッチスクリーンディスプレイ（例えば、図２Ａのタッチ感知ディスプレイシステム２１２、又は図５Ａのタッチスクリーン２１２）を含むいくつかの実装では、タッチスクリーン上で検出される接触が「フォーカスセレクタ」の役割を果たすため、入力（例えば、接触による押圧入力）がタッチスクリーンディスプレイ上の特定のユーザインタフェース要素（例えば、ボタン、ウィンドウ、スライダ、又は他のユーザインタフェース要素）の場所で検出されると、その特定のユーザインタフェース要素は検出された入力に従って調節される。いくつかの実装では、（例えば、タブキー又は矢印キーを使ってフォーカスを１つのボタンから別のボタンに移動させることにより）タッチスクリーンディスプレイ上の対応するカーソルの移動又は接触の移動なしに、フォーカスが、ユーザインタフェースの１つの領域からユーザインタフェースの別の領域に移動される。これらの実装において、フォーカスセレクタは、ユーザインタフェースの異なる領域間でのフォーカスの移動に従って移動する。フォーカスセレクタが採用する具体的な形態とは関わりなく、フォーカスセレクタは、全般的に、ユーザが意図するユーザインタフェースとの対話を（例えば、ユーザが対話することを意図しているユーザインタフェースの要素をデバイスに示すことによって）伝達するために、ユーザによって制御されるユーザインタフェース要素（又は、タッチスクリーンディスプレイ上での接触）である。例えば、タッチ感知面（例えば、タッチパッド又はタッチスクリーン）上で押圧入力が検出される間の、対応のボタンの上のフォーカスセレクタ（例えば、カーソル、接触、又は選択ボックス）の場所は、その対応のボタンを（そのデバイスのディスプレイ上に示される他のユーザインタフェース要素ではなく）アクティブ化することをユーザが意図していることを示すものである。
【０１５６】
本明細書及び特許請求の範囲で使用する時、接触の「特性強度」という用語は、接触の１つ以上の強度に基づく、その接触の特性を指す。いくつかの実施形態では、特性強度は複数の強度サンプルに基づく。特性強度は、任意選択的に、既定の数の強度サンプル、又は既定のイベント（例えば、接触を検出した後、接触のリフトオフを検出する前、接触の移動の開始を検出する前若しくは後、接触の終了を検出する前、接触の強度の増加を検出する前若しくは後、及び／又は接触の強度の減少を検出する前若しくは後）に対して所定の時間期間（例えば、０．０５、０．１、０．２、０．５、１、２、５、１０秒）内に収集された強度サンプルのセットに基づく。接触の特性強度は、任意選択的に、接触の強度の最大値、接触の強度の中間値（mean）、接触の強度の平均値（average）、接触の強度の上位１０個のパーセンタイル値、接触の強度の最大値の半分の値、接触の強度の最大値の９０パーセントの値等のうちの１つ以上に基づく。いくつかの実施形態では、特性強度を判定するために、接触の期間が使用される（例えば、特性強度が経時的な接触の強度の平均である時）。いくつかの実施形態では、動作がユーザによって実行されたか否かを判定するために、特性強度を１つ以上の強度閾値のセットと比較する。例えば、１つ以上の強度閾値のセットは、第１の強度閾値及び第２の強度閾値を含むことができる。この実施例では、第１の閾値を上回らない特性強度を有する接触の結果として第１の動作が実行され、第１の強度閾値を上回り、第２の強度閾値を上回らない特性強度を有する接触の結果として第２の動作が実行され、第２の閾値を上回る特性強度を有する接触の結果として第３の動作が実行される。いくつかの実施形態では、特性強度と１つ以上の閾値との間の比較が、第１の動作又は第２の動作のいずれを実行するかを判定するために使用されるのではなく、１つ以上の動作を実行するかどうか（例えば、それぞれの動作を実行するのか、又はそれぞれの動作の実行を省略するのか）を判定するために使用される。
【０１５７】
いくつかの実施形態では、特性強度を判定する目的で、ジェスチャの一部分が特定される。例えば、タッチ感知面は、接触の強度が増加する、開始位置から遷移して終了位置まで達する連続的なスワイプ接触を受け取ってもよい。この実施例では、終了位置における接触の特性強度は、連続的なスワイプ接触全体ではなく、そのスワイプ接触の一部分のみ（例えば、終了位置におけるスワイプ接触の部分のみ）に基づいてもよい。いくつかの実施形態では、接触の特性強度を判定する前に、平滑化アルゴリズムをそのスワイプ接触の強度に適用してもよい。例えば、平滑化アルゴリズムは、任意選択的に、非荷重移動平均平滑化アルゴリズム、三角平滑化アルゴリズム、中央値フィルタ平滑化アルゴリズム、及び／又は指数平滑化アルゴリズム、のうちの１つ以上を含む。いくつかの状況では、これらの平滑化アルゴリズムは、特性強度を判定する目的で、スワイプ接触の強度の小幅な上昇又は低下を除外する。
【０１５８】
タッチ感知面上の接触の強度は、接触検出強度閾値、軽い押圧強度閾値、深い押圧強度閾値、及び／又は１つ以上の他の強度閾値等の１つ以上の強度閾値に対して特徴付けしてもよい。いくつかの実施形態では、軽い押圧強度閾値は、物理マウスのボタン又はトラックパッドのクリックに典型的に関連付けられた動作を、デバイスが実行することになる強度に相当する。いくつかの実施形態では、深い押圧強度閾値は、物理マウスのボタン又はトラックパッドのクリックに典型的に関連付けられた動作とは異なる動作を、デバイスが実行することになる強度に相当する。いくつかの実施形態では、軽い押圧強度閾値を下回る（例えば、かつ、それを下回ると接触がもはや検出されないわずかな接触検出強度閾値を上回る）特性強度で接触が検出される場合、デバイスは、軽い押圧強度閾値又は深い押圧強度閾値に関連付けられた動作を実行することなく、タッチ感知面上の接触の移動に従って、フォーカスセレクタを移動させる。全般的には、特に明記しない限り、これらの強度閾値は、ユーザインタフェース図の異なるセット間でも一貫している。
【０１５９】
軽い押圧強度閾値を下回る強度から、軽い押圧強度閾値と深い押圧強度閾値との間の強度への接触の特性強度の増大は、「軽い押圧」入力と称される場合がある。深い押圧強度閾値を下回る強度から、深い押圧強度閾値を上回る強度への接触の特性強度の増大は、「深い押圧」入力と称される場合がある。接触検出強度閾値を下回る強度から、接触検出強度閾値と軽い押圧強度閾値との間の強度への接触の特性強度の増大は、タッチ面上の接触の検出と称される場合がある。接触検出強度閾値を上回る強度から、接触検出強度閾値を下回る強度への接触の特性強度の減少は、タッチ面からの接触のリフトオフの検出と称される場合がある。いくつかの実施形態では、接触検出強度閾値はゼロである。いくつかの実施形態では、接触検出強度閾値はゼロを上回る。
【０１６０】
本明細書で説明されるいくつかの実施形態では、１つ以上の動作は、それぞれの押圧入力を含むジェスチャの検出に応じて、又はそれぞれの接触（又は、複数の接触）で実行されるそれぞれの押圧入力の検出に応じて実行され、それぞれの押圧入力は、少なくとも部分的に、押圧入力強度閾値を上回る接触（又は、複数の接触）の強度の増大の検出に基づいて検出される。いくつかの実施形態では、それぞれの動作は、押圧入力強度閾値を上回る、対応する接触の強度の増大（例えば、対応する押圧入力の「ダウンストローク」）の検出に応じて実行される。いくつかの実施形態では、押圧入力は、押圧入力強度閾値を上回る、対応する接触の強度の増大、及び後続の、押圧入力強度閾値を下回る接触の強度の減少を含み、対応する動作は、その後続の押圧入力閾値を下回る対応する接触の強度の減少（例えば、対応する押圧入力の「アップストローク」）の検出に応じて、実行される。
【０１６１】
いくつかの実施形態では、デバイスは、「ジッタ」と呼ばれる場合がある不測の入力を回避するために強度ヒステリシスを採用し、デバイスは、押圧入力強度閾値との既定の関連性を有するヒステリシス強度閾値を定義又は選択する（例えば、ヒステリシス強度閾値は、押圧入力強度閾値よりもＸ強度単位低いか、又は、ヒステリシス強度閾値は、押圧入力強度閾値の７５％、９０％、若しくは何らかの妥当な比率である）。したがって、いくつかの実施形態では、押圧入力は、押圧入力強度閾値を上回る対応する接触の強度の増大、及び後続の、押圧入力強度閾値に対応するヒステリシス強度閾値を下回る接触の強度の減少を含み、対応する動作は、そのヒステリシス強度閾値を下回る、後続の対応する接触の強度の減少（例えば、対応する押圧入力の「アップストローク」）の検出に応じて、実行される。同様に、いくつかの実施形態では、押圧入力は、デバイスが、ヒステリシス強度閾値以下の強度から押圧入力強度閾値以上の強度への接触の強度の増大、及び任意選択的に、ヒステリシス強度以下の強度への、後続の接触の強度の減少を検出する場合にのみ検出され、対応する動作は、その押圧入力の検出（例えば、状況に応じて、接触の強度の増大、又は接触の強度の減少）に応じて、実行される。
【０１６２】
説明を容易にするために、押圧入力強度閾値に関連付けられた押圧入力に応じて、又はその押圧入力を含むジェスチャに応じて実行される動作の説明は、押圧入力強度閾値を上回る接触の強度の増大、ヒステリシス強度閾値を下回る強度から押圧入力強度閾値を上回る強度への接触の強度の増大、押圧入力強度閾値を下回る接触の強度の減少、及び／又は押圧入力強度閾値に対応するヒステリシス強度閾値を下回る接触の強度の減少のいずれかの検出に応じて、任意選択的にトリガされる。更に加えて、押圧入力強度閾値を下回る接触の強度の減少の検出に応じて動作が実行されるとして説明される実施例では、その動作は、押圧入力強度閾値に対応し、かつそれよりも低いヒステリシス強度閾値を下回る、接触の強度の減少の検出に応じて任意選択的に実行される。
３．デジタルアシスタントシステム
【０１６３】
図７Ａは、様々な実施例に係る、デジタルアシスタントシステム７００のブロック図を示す。いくつかの実施例では、デジタルアシスタントシステム７００はスタンドアロンコンピュータシステム上に実装することができる。いくつかの実施例では、デジタルアシスタントシステム７００は複数のコンピュータにわたって分散させることができる。いくつかの実施例では、デジタルアシスタントのモジュール及び機能のいくつかはサーバ部分及びクライアント部分に分割されることができる。この場合には、クライアント部分は１つ以上のユーザデバイス（例えば、デバイス１０４、１２２、２００、４００又は６００）上に常駐し、例えば、図１に示すように、１つ以上のネットワークを通じてサーバ部分（例えば、サーバシステム１０８）と通信する。いくつかの実施例では、デジタルアシスタントシステム７００は、図１に示すサーバシステム１０８（及び／又はＤＡサーバ１０６）の一実装形態であることができる。デジタルアシスタントシステム７００はデジタルアシスタントシステムの単なる一例にすぎず、デジタルアシスタントシステム７００は、図示されているよりも多い又は少ない構成要素を有することができるか、２つ以上の構成要素を組み合わせてもよいか、あるいは構成要素の異なる構成又は配置を有してもよいことに留意されたい。図７Ａに示す種々の構成要素は、１つ以上の信号処理回路及び／若しくは特定用途向け集積回路を含む、ハードウェア、１つ以上のプロセッサによって実行されるソフトウェア命令、ファームウェア、又はそれらの組み合わせの形態で実装されることができる。
【０１６４】
デジタルアシスタントシステム７００は、メモリ７０２、１つ以上のプロセッサ７０４、入力／出力（Ｉ／Ｏ）インタフェース７０６、及びネットワーク通信インタフェース７０８を含むことができる。これらの構成要素は１本以上の通信バス又は信号線７１０を通じて互いに通信することができる。
【０１６５】
いくつかの実施例では、メモリ７０２は、高速ランダムアクセスメモリ並びに／又は不揮発性コンピュータ可読記憶媒体（例えば、１つ以上の磁気ディスク記憶デバイス、フラッシュメモリデバイス、又は他の不揮発性固体メモリデバイス）等の、非一時的コンピュータ可読媒体を含むことができる。
【０１６６】
いくつかの実施例では、Ｉ／Ｏインタフェース７０６は、ディスプレイ、キーボード、タッチスクリーン、及びマイクロフォン等の、デジタルアシスタントシステム７００の入力／出力デバイス７１６をユーザインタフェースモジュール７２２に結合することができる。Ｉ／Ｏインタフェース７０６は、ユーザインタフェースモジュール７２２と協働して、ユーザ入力（例えば、音声入力、キーボード入力、タッチ入力等）を受信し、それらを適宜に処理することができる。いくつかの実施例では、例えば、デジタルアシスタントがスタンドアロンユーザデバイス上に実装される場合には、デジタルアシスタントシステム７００は、図２Ａ、図４、図６Ａ〜Ｂにおいてそれぞれデバイス２００、４００又は６００に関して説明されている構成要素及びＩ／Ｏ通信インタフェースの任意のものを含むことができる。いくつかの実施例では、デジタルアシスタントシステム７００はデジタルアシスタントの実装形態のサーバ部分を表すことができ、ユーザデバイス（例えば、ユーザデバイス１０４、２００、４００又は６００）上に常駐するクライアント側部分を通じてユーザと対話することができる。
【０１６７】
いくつかの実施例では、ネットワーク通信インタフェース７０８は有線通信ポート（単数又は複数）７１２並びに／又は無線伝送及び受信回路機構７１４を含むことができる。有線通信ポート（単数又は複数）７１２は、１つ以上の有線インタフェース、例えば、イーサネット、ユニバーサルシリアルバス（ＵＳＢ）、ＦＩＲＥＷＩＲＥ（登録商標）等を介して通信信号を受信及び送信することができる。無線回路７１４は、通信ネットワーク及び他の通信機器との間で、ＲＦ信号及び／又は光信号を受信及び送信することができる。無線通信は、ＧＳＭ（登録商標）、ＥＤＧＥ、ＣＤＭＡ、ＴＤＭＡ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｗｉ−Ｆｉ（登録商標）、ＶｏＩＰ、Ｗｉ−ＭＡＸ（登録商標）、あるいは任意のその他の好適な通信プロトコル等の、複数の通信規格、プロトコル及び技術のうちの任意のものを用いることができる。ネットワーク通信インタフェース７０８は、インターネット、イントラネット、及び／又はセルラ電話ネットワーク、無線ローカルエリアネットワーク（ＬＡＮ）等の無線ネットワーク、及び／又はメトロポリタンエリアネットワーク（metropolitan area network、ＭＡＮ）等の、ネットワークを用いた、デジタルアシスタントシステム７００とデバイスとの間の通信を可能にすることができる。
【０１６８】
いくつかの実施例では、メモリ７０２、又はメモリ７０２のコンピュータ可読記憶媒体は、オペレーティングシステム７１８、通信モジュール７２０、ユーザインタフェースモジュール７２２、１つ以上のアプリケーション７２４、及びデジタルアシスタントモジュール７２６の全て又はサブセットを含むプログラム、モジュール、命令、及びデータ構造を記憶することができる。特に、メモリ７０２、又はメモリ７０２のコンピュータ可読記憶媒体は、後述されるプロセス１２００を実行する命令を記憶することができる。１つ以上のプロセッサ７０４はこれらのプログラム、モジュール、及び命令を実行することができ、データ構造との間で、読み出し／書き込みを行うことができる。
【０１６９】
オペレーティングシステム７１８（例えば、Ｄａｒｗｉｎ（登録商標）、ＲＴＸＣ（登録商標）、ＬＩＮＵＸ（登録商標）、ＵＮＩＸ（登録商標）、ｉＯＳ、ＯＳ  Ｘ（登録商標）、ＷＩＮＤＯＷＳ（登録商標）、又はＶｘＷｏｒｋｓ等の組み込みオペレーティングシステム）は、一般的なシステムタスク（例えば、メモリ管理、記憶デバイス制御、電力管理等）を制御及び管理するための様々なソフトウェア構成要素及び／又はドライバを含むことができ、様々なハードウェア、ファームウェア、及びソフトウェア構成要素間の通信を促進する。
【０１７０】
通信モジュール７２０は、ネットワーク通信インタフェース７０８を通じたデジタルアシスタントシステム７００とその他のデバイスとの間の通信を促進することができる。例えば、通信モジュール７２０は、図２Ａに示すデバイス２００、図４に示すデバイス４００、図６Ａ〜Ｂに示すデバイス６００等の電子デバイスのＲＦ回路２０８と通信することができる。通信モジュール７２０はまた、無線回路機構７１４及び／又は有線通信ポート７１２によって受信されたデータを処理するための種々の構成要素も含むことができる。
【０１７１】
ユーザインタフェースモジュール７２２はＩ／Ｏインタフェース７０６を介して（例えば、キーボード、タッチスクリーン、ポインティング装置、コントローラ、及び／又はマイクロフォンから）ユーザからのコマンド及び／又は入力を受け取り、ディスプレイ上にユーザインタフェースオブジェクトを生成することができる。ユーザインタフェースモジュール７２２はまた、出力（例えば、発語、音響、アニメーション、テキスト、アイコン、振動、触覚フィードバック、光等）を準備し、Ｉ／Ｏインタフェース７０６を介して（例えば、ディスプレイ、オーディオチャネル、スピーカ、タッチパッド等を通じて）ユーザへ配信することができる。
【０１７２】
アプリケーション７２４は、１つ以上のプロセッサ７０４によって実行されるように構成されたプログラム及び／又はモジュールを含むことができる。例えば、デジタルアシスタントシステムがスタンドアロンのユーザデバイス上に実装される場合には、アプリケーション７２４は、ゲーム、カレンダーアプリケーション、ナビゲーションアプリケーション、又は電子メールアプリケーション等の、ユーザアプリケーションを含み得る。デジタルアシスタントシステム７００がサーバ上に実装される場合には、アプリケーション７２４は、例えば、資源管理アプリケーション、診断アプリケーション、又はスケジューリングアプリケーションを含むことができる。
【０１７３】
メモリ７０２はまた、デジタルアシスタントモジュール７２６（又はデジタルアシスタントのサーバ部分）も記憶することができる。いくつかの実施例では、デジタルアシスタントモジュール７２６は、以下のサブモジュール、又はそれらのサブセット若しくはスーパーセットを含むことができる。入力／出力処理モジュール７２８、発語テキスト化（speech-to-text、ＳＴＴ）処理モジュール７３０、自然言語処理モジュール７３２、ダイアログフロー処理モジュール７３４、タスクフロー処理モジュール７３６、サービス処理モジュール７３８、及び発語合成モジュール７４０。これらのモジュールの各々は、デジタルアシスタントモジュール７２６の以下のシステム又はデータ及びモデルのうちの１つ以上、又はそれらのサブセット若しくはスーパーセットへのアクセスを有することができる。オントロジ７６０、語彙索引７４４、ユーザデータ７４８、タスクフローモデル７５４、サービスモデル７５６、及びＡＳＲシステム７３１。
【０１７４】
いくつかの実施例では、デジタルアシスタントモジュール７２６内に実装された処理モジュール、データ及びモデルを用いて、デジタルアシスタントは以下のもののうちの少なくとも一部を実行することができる。発語入力をテキストに変換すること、ユーザから受信した自然言語入力内に表現されているユーザの意図を特定すること、ユーザの意図を完全に推測するために必要な情報を（例えば、単語、ゲーム、意図等の曖昧さを除去することによって）能動的に引き出し、取得すること、推測された意図を達成するためのタスクフローを判定すること、推測された意図を達成するようにタスクフローを実行すること。
【０１７５】
いくつかの実施例では、図７Ｂに示されるように、Ｉ／Ｏ処理モジュール７２８は、ユーザ入力（例えば、発語入力）を取得するため、及びユーザ入力への応答を（例えば、発語出力として）提供するために、図７ＡにおけるＩ／Ｏデバイス７１６を通じてユーザと対話するか、又は、図７Ａにおけるネットワーク通信インタフェース７０８を通じてユーザデバイス（例えば、デバイス１０４、２００、４００若しくは６００）と対話することができる。Ｉ／Ｏ処理モジュール７２８は、ユーザ入力と共に、又はその受信の直後に、ユーザ入力に関連付けられるコンテキスト情報をユーザデバイスから任意選択的に取得することができる。コンテキスト情報は、ユーザ入力に関連するユーザ固有のデータ、語彙、及び／又はプリファレンスを含むことができる。いくつかの実施例では、コンテキスト情報はまた、ユーザ要求が受信される時点におけるユーザデバイスのソフトウェア及びハードウェア状態、並びに／又はユーザ要求が受信された時点におけるユーザの周囲環境に関する情報も含む。いくつかの実施例では、Ｉ／Ｏ処理モジュール７２８はまた、ユーザ要求について、ユーザに補足質問を送り、ユーザから回答を受信することができる。ユーザ要求がＩ／Ｏ処理モジュール７２８によって受信され、ユーザ要求が発語入力を含むことができる場合には、Ｉ／Ｏ処理モジュール７２８は発語入力を発語テキスト化変換のためにＳＴＴ処理モジュール７３０（又は発語認識装置）へ転送することができる。
【０１７６】
ＳＴＴ処理モジュール７３０は１つ以上のＡＳＲシステムを含むことができる。１つ以上のＡＳＲシステムは、Ｉ／Ｏ処理モジュール７２８を通じて受信された発語入力を処理し、認識結果を生成することができる。各ＡＳＲシステムはフロントエンド発語プリプロセッサを含むことができる。フロントエンド発語プリプロセッサは発語入力から代表特徴を抽出することができる。例えば、フロントエンド発語プリプロセッサは発語入力に対してフーリエ変換を実行し、発語入力を一連の代表多次元ベクトルとして特徴付けるスペクトル特徴を抽出することができる。更に、各ＡＳＲシステムは１つ以上の発語認識モデル（例えば、音響モデル及び／又は言語モデル）を含むことができ、１つ以上の発語認識エンジンを実装することができる。発語認識モデルの例としては、隠れマルコフモデル、混合ガウスモデル、ディープニューラルネットワークモデル、ｎグラム言語モデル、及びその他の統計的モデルを挙げることができる。発語認識エンジンの例としては、動的タイムワーピングベースのエンジン、及び重み付き有限状態トランスデューサ（weighted finite−state transducer、ＷＦＳＴ）ベースのエンジンを挙げることができる。１つ以上の発語認識モデル及び１つ以上の発語認識エンジンを用いて、フロントエンド発語プリプロセッサの抽出された代表特徴を処理し、中間認識結果（例えば、音素、音素文字列、及び部分語）、並びに最終的に、テキスト認識結果（例えば、単語、単語文字列、若しくはトークンの列）を生成することができる。いくつかの例では、発語入力は、認識結果を生成するために、サードパーティサービスによって、又はユーザのデバイス（例えば、デバイス１０４、２００、４００、若しくは６００）上で少なくとも部分的に処理することができる。ＳＴＴ処理モジュール７３０が、テキスト文字列（例えば、単語、単語の列、又はトークンの列）を包含する認識結果を生成すると、認識結果は意図推論のために自然言語処理モジュール７３２に渡されることができる。
【０１７７】
発語テキスト化処理についての更なる詳細が、２０１１年９月２０日に出願された、「Ｃｏｎｓｏｌｉｄａｔｉｎｇ  Ｓｐｅｅｃｈ  Ｒｅｃｏｇｎｉｔｉｏｎ  Ｒｅｓｕｌｔｓ」についての米国実用特許出願第１３／２３６，９４２号に記載されている。同出願の開示全体は本明細書において参照により組み込まれている。
【０１７８】
いくつかの実施例では、ＳＴＴ処理モジュール７３０は、音声記号変換モジュール７３１を介して、認識可能な単語の語彙を含み、及び／又はそれにアクセスすることができる。各語彙単語は、発語認識音声記号で表現された単語の１つ以上の候補発音に関連付けられていることができる。特に、認識可能な単語の語彙は、複数の候補発音に関連付けられた単語を含むことができる。例えば、語彙は、
0006265516.tif 000002
の候補発音に関連付けられた単語「ｔｏｍａｔｏ」を含んでもよい。更に、語彙単語は、ユーザからの以前の発語入力に基づくカスタム候補発音に関連付けられていることができる。このようなカスタム候補発音はＳＴＴ処理モジュール７３０内に記憶されることができ、特定のユーザに、デバイス上のそのユーザのプロファイルを介して関連付けられていることができる。いくつかの実施例では、単語のための候補発音は、単語の綴り、並びに１つ以上の言語規則及び／若しくは音声規則に基づいて判定することができる。いくつかの実施例では、候補発音は、例えば、既知の標準的発音に基づいて、手動で生成することができる。
【０１７９】
いくつかの実施例では、候補発音は候補発音の一般性に基づいて順位付けすることができる。例えば、候補発音
0006265516.tif 000003
よりも高く順位付けすることができる。なぜなら、前者は、（例えば、全ユーザの間で、特定の地理的領域内のユーザについて、又はユーザの任意の他の適当なサブセットについて）より一般的に用いられている発音であるからである。いくつかの実施例では、候補発音は、候補発音が、ユーザに関連付けられたカスタム候補発音であるかどうかに基づいて順位付けすることができる。例えば、カスタム候補発音は標準的な候補発音よりも高く順位付けすることができる。これは、標準的な発音から逸脱した特有の発音を有する固有名詞を認識するために有用になり得る。いくつかの実施例では、候補発音は、出身地、国籍、又は民族等の、１つ以上の発語特性に関連付けられていることができる。例えば、候補発音
0006265516.tif 000004
は米国に関連付けられていることができ、それに対して、候補発音
0006265516.tif 000005
は英国に関連付けられていることができる。更に、候補発音の順位は、デバイス上のユーザのプロファイル内に記憶されているユーザの１つ以上の特性（例えば、出身地、国籍、民族等）に基づくことができる。例えば、ユーザのプロファイルから、ユーザは米国に関連付けられていると判定することができる。ユーザが米国に関連付けられていることに基づき、候補発音
0006265516.tif 000006
（米国に関連付けられている）を候補発音
0006265516.tif 000007
（英国に関連付けられている）よりも高く順位付けすることができる。いくつかの実施例では、順位付けされた候補発音のうちの１つを、予測される発音（例えば、最も可能性の高い発音）として選択することができる。
【０１８０】
発語入力が受信されると、ＳＴＴ処理モジュール７３０は、発語入力に対応する音素を（例えば、音響モデルを用いて）判定するために用いられることができ、次に、音素に一致する単語を（例えば、言語モデルを用いて）判定することを試みることができる。例えば、ＳＴＴ処理モジュール７３０がまず、発語入力の一部分に対応する音素列
0006265516.tif 000008
を特定することができた場合には、次に、それは、語彙索引７４４に基づいて、この列は単語「ｔｏｍａｔｏ」に対応すると判定することができる。
【０１８１】
いくつかの実施例では、ＳＴＴ処理モジュール７３０は、音声入力内の単語を判定するために近似照合技法を用いることができる。それゆえ、例えば、ＳＴＴ処理モジュール７３０は、たとえ、その特定の音素列がその単語のための候補音素列のうちの１つでなくても、音素列
0006265516.tif 000009
は単語「ｔｏｍａｔｏ」に対応すると判定することができる。
【０１８２】
デジタルアシスタントの自然言語処理モジュール７３２（「自然言語プロセッサ」）は、ＳＴＴ処理モジュール７３０によって生成された単語又はトークンの列（「トークン列」）を獲得し、トークン列を、デジタルアシスタントによって認識される１つ以上の「実施可能な意図」に関連付けようと試みることができる。「実施可能な意図」は、デジタルアシスタントによって実行されることができ、タスクフローモデル７５４内に実装される関連したタスクフローを有することができるタスクを表すことができる。関連付したタスクフローは、タスクを実行するためにデジタルアシスタントが取る一連のプログラムされたアクション及びステップであることができる。デジタルアシスタントの能力の範囲は、タスクフローモデル７５４内に実装され、記憶されているタスクフローの数及び種類に依存し、又は、換言すれば、デジタルアシスタントが認識する「実施可能な意図」の数及び種類に依存することができる。しかし、デジタルアシスタントの有効性はまた、自然言語で表現されたユーザ要求から正確な「実施可能な意図（単数又は複数）」を推測するアシスタントの能力にも依存し得る。
【０１８３】
いくつかの実施例では、ＳＴＴ処理モジュール７３０から取得される単語又はトークンの列に加えて、自然言語処理モジュール７３２はまた、ユーザ要求に関連付けられるコンテキスト情報も、例えば、Ｉ／Ｏ処理モジュール７２８から、受信することができる。自然言語処理モジュール７３２は、ＳＴＴ処理モジュール７３０から受信したトークン列内に包含されている情報を明らかにし、補完し、及び／又は更に明確にするために、コンテキスト情報を任意選択的に用いることができる。コンテキスト情報は、例えば、ユーザプリファレンス、ユーザデバイスのハードウェア及び／又はソフトウェア状態、ユーザ要求の前、最中、若しくは直後に収集されたセンサ情報、デジタルアシスタントとユーザとの間の以前の対話（例えば、ダイアログ）、並びに同様のものを含むことができる。本明細書で説明されるように、コンテキスト情報は動的であることができ、時間、ロケーション、ダイアログの内容及び他の因子によって変化し得る。
【０１８４】
いくつかの実施例では、自然言語処理は、例えば、オントロジ７６０に基づくことができる。オントロジ７６０は、多数のノードを包含する階層構造であり、各ノードは、「実施可能な意図」又はその他の「属性」のうちの１つ以上に関連する「実施可能な意図」又は「属性」のいずれかを表すことができる。上述したように、「実施可能な意図」は、デジタルアシスタントが実行する能力を有するタスクを表すことができる。即ち、それは「実施可能」であるか又は実施の対象とすることができる。「属性」は、実施可能な意図、又は別の属性の下位態様に関連付けられるパラメータを表すことができる。オントロジ７６０内の実施可能な意図ノードと属性ノードとの間のリンクは、属性ノードによって表されるパラメータが、実施可能な意図ノードによって表されるタスクにどのように関係するのかを定義することができる。
【０１８５】
いくつかの実施例では、オントロジ７６０は実施可能な意図ノード及び属性ノードで構成されることができる。オントロジ７６０内において、実施可能な意図ノードは、それぞれ１つ以上の属性ノードに直接又は１つ以上の中間属性ノードを介してリンクされていることができる。同様に、それぞれの属性ノードは、１つ以上の実施可能な意図ノードに直接又は１つ以上の中間属性ノードを介してリンクされていることができる。例えば、図７Ｃに示されるように、オントロジ７６０は「レストラン予約」ノード（即ち、実施可能な意図ノード）を含むことができる。属性ノードである「レストラン」、「日付／時間」（予約用）及び「参加人数」が、実施可能な意図ノード（即ち、「レストラン予約」ノード）にそれぞれ直接にリンクされ得る。
【０１８６】
更に、属性ノードである「料理」、「価格帯」、「電話番号」及び「ロケーション」は、属性ノード「レストラン」のサブノードであり、中間属性ノード「レストラン」を介して「レストラン予約」ノード（即ち、実施可能な意図ノード）にそれぞれリンクされ得る。別の例として、図７Ｃに示すように、オントロジ７６０は「リマインダ設定」ノード（即ち、別の実施可能な意図ノード）も含み得る。属性ノード「日付／時間」（リマインダ設定用）及び「テーマ」（リマインダ用）は、「リマインダ設定」ノードにそれぞれリンクされ得る。属性ノード「日付／時間」は、レストラン予約をするタスク及びリマインダを設定するタスクの両方に関連している場合があるため、属性ノード「日付／時間」はオントロジ７６０内において「レストラン予約」ノード及び「リマインダ設定」ノードの両方にリンクされ得る。
【０１８７】
実施可能な意図ノードは、そのリンクされた概念ノードと共に、「ドメイン」として記述することができる。本説明では、各ドメインは、それぞれの実施可能な意図に関連付けられていることができ、特定の実施可能な意図に関連付けられたノードのグループ（及びノード間の関係）を指すことができる。例えば、図７Ｃに示されるオントロジ７６０は、オントロジ７６０内のレストラン予約ドメイン７６２の例及びリマインダドメイン７６４の例を含むことができる。レストラン予約ドメインは、実施可能な意図ノード「レストラン予約」、属性ノード「レストラン」、「日付／時間」、及び「参加人数」、並びに下位属性ノード「料理」、「価格帯」、「電話番号」及び「ロケーション」を含む。リマインダドメイン７６４は、実施可能な意図ノード「リマインダ設定」、及び属性ノード「テーマ」及び「日付／時間」を含み得る。いくつかの実施例では、オントロジ７６０は多くのドメインで構成されることができる。各ドメインは、１つ以上の他のドメインと、１つ以上の属性ノードを共有することができる。例えば、「日付／時間」属性ノードは、レストラン予約ドメイン７６２及びリマインダドメイン７６４に加えて、多くの異なるドメイン（例えば、スケジューリングドメイン、旅行予約ドメイン、映画チケットドメイン等）に関連付けられ得る。
【０１８８】
図７Ｃは、オントロジ７６０内に２つの例示的なドメインを示すが、他のドメインは、例えば、「映画を探す」、「通話を開始する」、「道順を探す」、「会議をスケジュールする」、「メッセージを送信する」、及び「質問の答えを提供する」、「リストを読み上げる」、「ナビゲーションの指示を提供する」、「タスクの手順を提供する」等を含み得る。「メッセージを送信する」のドメインは、「メッセージを送信する」の実施可能な意図ノードに関連付けられることがあり、「受信者（単数又は複数）」、「メッセージタイプ」、及び「メッセージ本文」等の属性ノードを更に含むことができる。属性ノードの「受信者」は更に、例えば、「受信者名」と「メッセージアドレス」等の下位属性ノードによって定義され得る。
【０１８９】
いくつかの実施例では、オントロジ７６０は、デジタルアシスタントが理解し、作用する能力を有する全てのドメイン（及びしたがって実施可能な意図）を含むことができる。いくつかの実施例では、オントロジ７６０は、ドメイン若しくはノード全体を追加若しくは除去すること、又はオントロジ７６０内のノード間の関係を変更すること等によって、変更することができる。
【０１９０】
いくつかの例では、複数の関連する実施可能な意図に関連付けられるノードは、オントロジ７６０内の「上位ドメイン」の下にクラスタ化され得る。例えば、「旅行」上位ドメインは、旅行に関連する属性ノード及び実施可能な意図ノードのクラスタを含み得る。旅行に関連する実施可能な意図ノードは、「航空券予約」、「ホテル予約」、「カーレンタル」、「道順を知る」、「見所を探す」等を含み得る。同じ上位ドメイン（例えば、「旅行」上位ドメイン）の下の実施可能な意図ノードは、多くの属性ノードを共有し得る。例えば、「航空券予約」、「ホテル予約」、「カーレンタル」、「道順を知る」、「見所を探す」についての実施可能な意図ノードは、属性ノード「出発場所」、「目的地」、「出発日／時間」、「到着日／時間」、及び「参加人数」のうちの１つ以上を時により共有し得る。
【０１９１】
いくつかの実施例では、オントロジ７６０内の各ノードは、そのノードによって表される属性又は実施可能な意図に関連する単語及び／又はフレーズのセットに関連付けられていることができる。各ノードに関連付けられた単語及び／又はフレーズのそれぞれのセットは、そのノードに関連付けられたいわゆる「語彙」であることができる。各ノードに関連付けられる単語及び／又はフレーズのそれぞれのセットは、ノードによって表される属性又は実施可能な意図に関連して語彙索引７４４内に記憶することができる。例えば、図７Ｂに戻ると、「レストラン」の属性についてのノードに関連付けられる語彙は、「食べ物」、「飲み物」、「料理」、「空腹」、「食べる」、「ピザ」、「ファーストフード」、「食事」等の単語を含み得る。別の例として、「通話を開始する（initiate a phone call）」という実施可能な意図のノードに関連付けられる語彙は、「電話する（call）」、「電話（phone）」、「ダイヤルする（dial）」、「電話をかける（ring）」、「この番号に電話する（call this number）」、「〜に電話をかける（make a call to）」等の単語及びフレーズを含み得る。語彙索引７４４は異なる言語の単語及びフレーズを任意選択的に含むことができる。
【０１９２】
自然言語処理モジュール７３２は、ＳＴＴ処理モジュール７３０からトークン列（例えば、テキスト文字列）を受信し、どのノードがトークン列内の単語によって暗示されているのかを判定することができる。いくつかの実施例では、トークン列内の単語又はフレーズが（語彙索引７４４を介して）オントロジ７６０内の１つ以上のノードに関連付けられることが分かる場合は、その単語又はフレーズはそれらのノードを「トリガする」又は「アクティブにする」ことができる。アクティブにされたノードの量及び／又は相対的重要度に基づき、自然言語処理モジュール７３２は、実施可能な意図のうちの１つを、ユーザがデジタルアシスタントに実行させようと意図したタスクとして選択することができる。いくつかの実施例では、最も多く「トリガされた」ノードを有するドメインを選択することができる。いくつかの実施例では、最も高い信頼値を有するドメイン（例えば、その様々なトリガされたノードの相対的重要度に基づく）を選択することができる。いくつかの実施例では、ドメインは、トリガされたノードの数及び重要度の組み合わせに基づき選択することができる。いくつかの実施例では、ノードを選択する際には、デジタルアシスタントがユーザからの同様の要求を以前に正確に解釈したかどうか等の追加の因子も考慮される。
【０１９３】
ユーザデータ７４８は、ユーザ固有語彙、ユーザプリファレンス、ユーザアドレス、ユーザの既定言語及び第二言語、ユーザの連絡先リスト、並びに各ユーザに関するその他の短期的若しくは長期的情報等の、ユーザ固有の情報を含むことができる。いくつかの実施例では、自然言語処理モジュール７３２は、ユーザ入力内に包含されている情報を補完してユーザ意図を更に明確にするために、ユーザ固有の情報を用いることができる。例えば、ユーザ要求「私の誕生日パーティに私の友人を招待してほしい」に対して、自然言語処理モジュール７３２は、誰が「友人」であり、いつ及びどこで「誕生日パーティ」が催されるのであろうかを判定するために、こうした情報をユーザの要求内で明示的に提供するようにユーザに要請する代わりに、ユーザデータ７４８にアクセスすることができる。
【０１９４】
トークン文字列に基づくオントロジ検索のその他の詳細が、２００８年１２月２２日出願の「Ｍｅｔｈｏｄ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｓｅａｒｃｈｉｎｇ  Ｕｓｉｎｇ  ａｎ  Ａｃｔｉｖｅ  Ｏｎｔｏｌｏｇｙ」に対する米国実用特許出願第１２／３４１，７４３号に記載されている。同出願の開示全体は本明細書において参照により組み込まれている。
【０１９５】
いくつかの実施例では、自然言語処理モジュール７３２が、ユーザ要求に基づき、実施可能な意図（又はドメイン）を特定すると、自然言語処理モジュール７３２は、特定された実施可能な意図を表すように、構造化されたクエリを生成することができる。いくつかの実施例では、構造化されたクエリは、実施可能な意図のためのドメイン内の１つ以上のノードのためのパラメータを含むことができ、パラメータの少なくとも一部には、ユーザ要求内で指定された特定の情報及び要求事項が入力される。例えば、ユーザは「私のために７時に寿司屋でディナーの予約を取って下さい」と言う場合がある。この場合には、自然言語処理モジュール７３２は、ユーザ入力に基づき、実施可能な意図を「レストラン予約」であると正確に特定することができてもよい。オントロジによれば、「レストラン予約」ドメインのための構造化されたクエリは、｛料理｝、｛時間｝、｛日付｝、｛参加人数｝等のパラメータを含み得る。いくつかの実施例では、発語入力、及びＳＴＴ処理モジュール７３０を用いて発語入力から導き出されたテキストに基づいて、自然言語処理モジュール７３２は、レストラン予約ドメインのための部分的な構造化されたクエリを生成することができる。この場合、部分的な構造化されたクエリはパラメータ｛料理＝「寿司」｝及び｛時間＝「午後７時」｝を含む。しかし、本例では、ユーザの発語入力は、ドメインに関連付けられる構造化されたクエリを完成するために十分な情報を包含していない。したがって、｛参加人数｝及び｛日付｝等のその他の必要パラメータは、現在利用可能な情報に基づいては、構造化されたクエリ内に指定されていなくてもよい。いくつかの実施例では、自然言語処理モジュール７３２は、構造化されたクエリのいくつかのパラメータに、受信したコンテキスト情報を入力することができる。例えば、いくつかの例では、ユーザが「私の近くの」寿司レストランを要求した場合には、自然言語処理モジュール７３２は、構造化されたクエリ内の｛ロケーション｝パラメータにユーザデバイスからのＧＰＳ座標を入力する。
【０１９６】
いくつかの実施例では、自然言語処理モジュール７３２は、生成された構造化されたクエリ（任意の完成したパラメータを含む）をタスクフロー処理モジュール７３６（「タスクフロープロセッサ」）に渡すことができる。タスクフロー処理モジュール７３６は、自然言語処理モジュール７３２から、構造化されたクエリを受信し、必要に応じて、構造化されたクエリを完成させ、ユーザの最終的な要求を「完了する」ために必要とされるアクションを実行するように構成することができる。いくつかの実施例では、これらのタスクを完成させるために必要な種々の手順はタスクフローモデル７５４内で提供することができる。いくつかの実施例では、タスクフローモデル７５４は、ユーザから追加情報を取得するための手順、及び実施可能な意図に関連付けられるアクションを実行するためのタスクフローを含むことができる。
【０１９７】
上述したように、構造化されたクエリを完成させるために、タスクフロー処理モジュール７３６は、追加情報を取得し、及び／又は潜在的に曖昧な発語入力の曖昧さを除去するために、ユーザとの追加のダイアログを開始することが必要になる場合がある。このような対話が必要となる場合には、タスクフロー処理モジュール７３６は、ユーザとのダイアログに携わるためにダイアログフロー処理モジュール７３４を呼び出すことができる。いくつかの例では、ダイアログフロー処理モジュール７３４は、どのように（かつ／又はいつ）ユーザに追加情報を求めるべきかを判定することができ、ユーザ応答を受信し、これらを処理することができる。Ｉ／Ｏ処理モジュール７２８を通じてユーザに質問を提供することができ、ユーザから回答を受信することができる。いくつかの実施例では、ダイアログフロー処理モジュール７３４は音声及び／又は視覚出力を介してユーザにダイアログ出力を提示することができ、口頭の応答又は物理的な（例えば、クリック）応答を介してユーザから入力を受信することができる。上述の例を続けると、タスクフロー処理モジュール７３６が、ドメイン「レストラン予約」に関連付けられる構造化されたクエリについての「参加人数」及び「日付」情報を判定するためにダイアログフロー処理モジュール７３４を呼び出すと、ダイアログフロー処理モジュール７３４は、「何人分ですか？」及び「どの日にしますか？」等の質問を、ユーザに渡すために生成することができる。ユーザから回答が受信されると、次に、ダイアログフロー処理モジュール７３４は、構造化されたクエリに、欠けている情報を入力するか、又は構造化されたクエリから欠けている情報を完成させるために、その情報をタスクフロー処理モジュール７３６に渡すことができる。
【０１９８】
タスクフロー処理モジュール７３６が、実施可能な意図のための構造化されたクエリを完成すると、タスクフロー処理モジュール７３６は、実施可能な意図に関連付けられる最終的なタスクの実行に進むことができる。それに応じて、タスクフロー処理モジュール７３６は、構造化されたクエリ内に包含されている具体的なパラメータに応じて、タスクフローモデル内のステップ及び命令を実行することができる。例えば、「レストラン予約」の実施可能な意図のためのタスクフローモデルは、レストランと連絡を取り、特定の時間に特定の参加人数のための予約を実際に希望するためのステップ及び命令を含み得る。例えば、レストラン予約について、レストラン＝ＡＢＣ  Ｃａｆｅ、日付＝３／１２／２０１２、時間＝午後７時、参加人数＝５、等の構造化されたクエリを用いて、タスクフロー処理モジュール７３６は、（１）ＡＢＣ  Ｃａｆｅのサーバ、又はＯＰＥＮＴＡＢＬＥ（登録商標）等のレストラン予約システムにログオンするステップと、（２）ウェブサイト上のフォーム内に日付、時間、及び関係者人数情報を入力するステップと、（３）フォームを送信するステップと、及び（４）ユーザのカレンダー内に予約に対するカレンダーエントリを記入するステップと、を実行することができる。
【０１９９】
いくつかの実施例では、タスクフロー処理モジュール７３６は、ユーザ入力内で要求されたタスクを完了するため、又はユーザ入力内で要求された情報の回答を提供するために、サービス処理モジュール７３８（「サービス処理モジュール」）の補助を用いることができる。例えば、サービス処理モジュール７３８は、電話をかけるため、カレンダーエントリを設定するため、マップ検索を呼び出すため、ユーザデバイスにインストールされているその他のユーザアプリケーションを呼び出すか若しくはそれと対話するため、並びにサードパーティサービス（例えばレストラン予約ポータル、ソーシャルネットワーキングウェブサイト、バンキングポータル等）を呼び出すか若しくはそれと対話するために、タスクフロー処理モジュール７３６の代わりに動作することができる。いくつかの例では、各サービスによって必要とされるプロトコル及びアプリケーションプログラミングインタフェース（application programming interface、ＡＰＩ）は、サービスモデル群７５６の中のそれぞれのサービスモデルによって指定され得る。サービス処理モジュール７３８は、サービスのための適当なサービスモデルにアクセスし、サービスモデルに係るサービスによって必要とされるプロトコル及びＡＰＩに従ってサービスの要求を生成することができる。
【０２００】
例えば、レストランがオンライン予約サービスを可能にしている場合には、レストランは、予約を行うために必要なパラメータ、及び必要なパラメータの値をオンライン予約サービスへ伝達するためのＡＰＩを指定するサービスモデルを提出することができる。タスクフロー処理モジュール７３６によって要求されると、サービス処理モジュール７３８は、サービスモデルに記憶されているウェブアドレスを用いて、オンライン予約サービスとのネットワーク接続を確立し、必要な予約のパラメータ（例えば、時間、日付、参加人数）を、オンライン予約サービスのＡＰＩに従う形式でオンライン予約インタフェースへ送信することができる。
【０２０１】
いくつかの実施例では、ユーザの意図を推測して明確にし、ユーザ意図を更に明らかにして絞り込むための情報を取得し、ユーザの意図を達成するべく応答（例えば、ユーザへの出力又はタスクの完了）を最終的に生成するために、自然言語処理モジュール７３２、ダイアログフロー処理モジュール７３４、及びタスクフロー処理モジュール７３６を集合的かつ反復的に用いることができる。生成された応答は、ユーザの意図を少なくとも部分的に達成する発語入力に対するダイアログ応答であることができる。更に、いくつかの実施例では、生成された応答を発語出力として出力することができる。これらの実施例では、生成された応答を発語合成モジュール７４０（例えば、発語合成器）へ送信することができ、そこで、それを、発語形式のダイアログ応答を合成するために処理することができる。更に他の実施例では、生成された応答は、発語入力内のユーザ要求を満足することに関連するデータコンテンツであることができる。
【０２０２】
発語合成モジュール７４０は、ユーザへの提示のための発語出力を合成するように構成することができる。発語合成モジュール７４０は、デジタルアシスタントによって提供されたテキストに基づいて発語出力を合成する。例えば、生成されたダイアログ応答はテキスト文字列の形式のものであることができる。発語合成モジュール７４０はテキスト文字列を可聴発語出力に変換することができる。発語合成モジュール７４０は、テキストから発語出力を生成するために、限定するものではないが、波形接続合成、単位選択合成、ダイフォン（diphone）合成、分野限定合成、フォルマント合成、調音合成、隠れマルコフモデル（hidden Markov model、ＨＭＭ）ベースの合成、及び正弦波合成を含む、任意の適当な発語合成技法を用いることができる。いくつかの実施例では、発語合成モジュール７４０は、単語に対応する音素文字列に基づいて個々の単語を合成するように構成することができる。例えば、音素文字列が、生成されたダイアログ応答内の単語に関連付けられていることができる。音素文字列は、単語に関連付けられたメタデータ内に記憶されていることができる。発語合成モデル７４０は、単語を発語形式で合成するために、メタデータ内の音素文字列直接処理するように構成することができる。
【０２０３】
いくつかの実施例では、発語合成モジュール７４０を用いる代わりに（又はそれに加えて）、遠隔デバイス（例えば、サーバシステム１０８）上で発語合成を実行することができ、合成された発語をユーザへの出力のためにユーザデバイスへ送信することができる。例えば、これは、デジタルアシスタントのための出力がサーバシステムにおいて生成されるいくつかの実装形態において行われ得る。また、サーバシステムは一般的にユーザデバイスよりも多くの処理能力又は資源を有するため、クライアント側合成を用いて実施可能であろうよりも高品質の発語出力を得ることが可能になり得る。
【０２０４】
２０１１年１月１０日に出願された、「Ｉｎｔｅｌｌｉｇｅｎｔ  Ａｕｔｏｍａｔｅｄ  Ａｓｓｉｓｔａｎｔ」と題する米国実用特許出願第１２／９８７，９８２号、及び２０１１年９月３０日に出願された、「Ｇｅｎｅｒａｔｉｎｇ  ａｎｄ  Ｐｒｏｃｅｓｓｉｎｇ  Ｔａｓｋ  Ｉｔｅｍｓ  Ｔｈａｔ  Ｒｅｐｒｅｓｅｎｔ  Ｔａｓｋｓ  ｔｏ  Ｐｅｒｆｏｒｍ」と題する米国実用特許出願第１３／２５１，０８８号に、デジタルアシスタントに関する更なる詳細を見出すことができる。これらの出願の開示の全体は本明細書において参照により組み込まれている。
４．デジタルアシスタントの例示的な機能
【０２０５】
図８は、デジタルアシスタント８００（又はデジタルアシスタントのサーバ部分）の機能のブロック図を示す。いくつかの例では、デジタルアシスタント８００はデジタルアシスタントモジュール７２６を用いて実装される。デジタルアシスタント８００は、１つ以上のモジュール、モデル、アプリケーション、語彙、及びデジタルアシスタントモジュール７２６のそれらと同様のユーザデータを含む。例えば、デジタルアシスタント８００は、入力／出力処理モジュール、ＳＴＴ処理モジュール、自然言語処理モジュール、タスクフロー処理モジュール、及び発語合成モジュールのサブモジュール、又はそれらのサブセット若しくはスーパーセットを含む。これらのモジュールは、図７Ｂに示すように、対応するモジュールのものと同様に実装され得るので、図示も、繰り返し説明もしない。
【０２０６】
いくつかの例では、デジタルアシスタント８００は、イベント情報検出モジュール８２０、イベント同意検出モジュール８４０、イベント種類判定モジュール８６０、及びイベント説明生成モジュール８８０を更に含み得る。これらのモジュールは、例えば、自然言語処理モジュールの統合された部分又は別個の部分とすることができる。例えば、自然言語処理モジュール７３２は、イベント情報検出モジュール８２０を統合又は活用する。
【０２０７】
図８に示すように、いくつかの実施形態では、デジタルアシスタント８００は、構造化されていない自然言語情報を受信する。構造化されていない自然言語情報は、書かれた形態又は言葉による形態とすることができる。いくつかの例では、構造化されていない自然言語情報は、テキスト／ＳＭＳメッセージ、インスタントメッセージ、電子メールメッセージ、又は音声メール若しくはライブ会話等の発語入力を含む。例えば、構造化されていない自然言語情報は、複数のユーザ間又はその中でやりとりされる複数のテキストメッセージ又はインスタントメッセージを含む。別の例としては、構造化されていない自然言語情報は、ユーザ間又はその中でやりとりされる複数の電子メールメッセージを含む電子メールの写し又は本文を含む。別の例としては、構造化されていない自然言語情報は、ユーザ間又はその中の言葉によるコミュニケーションを含む。
【０２０８】
いくつかの例では、デジタルアシスタント８００は、更新された構造化されていない自然言語情報を動的に受信する。例えば、デジタルアシスタント８００は、ユーザがメッセージをやりとりしている間に、テキストメッセージ又はインスタントメッセージをリアルタイムで受信する。いくつかの例では、構造化されていない自然言語情報は、動的に更新されてユーザが提供する新しいメッセージを反映する。いくつかの実施形態では、構造化されていない自然言語情報が動的に更新される場合、より詳細に以下に説明するように、単方向リカレントニューラルネットワーク（recurrent neural network：ＲＮＮ）が構造化されていない自然言語情報を処理するのに使用される。
【０２０９】
図８に示すように、構造化されていない自然言語情報の受信に応じて、イベント情報検出モジュール８２０は、イベント情報が構造化されていない自然言語情報内に存在しているか否かを判定する。上記のように、構造化されていない自然言語情報は、例えば、テキストメッセージ又は電子メール等の異なる種類の情報を含む。いくつかの例では、イベント情報検出モジュール８２０は、構造化されていない自然言語情報に含まれる異なる種類の情報に対応した異なるネットワークを用いて実装されてもよい。例えば、構造化されていない自然言語情報が動的に更新されている情報（例えば、図９Ａに示すように、ユーザの中でやりとりされているテキストメッセージ）を含む場合は、イベント情報検出モジュール８２０は、図９Ｂ又は図９Ｃに示す第１のネットワーク９２０を用いて実装され得る。いくつかの例では、第１のネットワークは、単方向リカレントニューラルネットワーク（ＲＮＮ）等のニューラルネットワークである。別の例としては、構造化されていない自然言語情報が、処理されている情報全体を含み、動的に更新されない場合（例えば、図１０Ａに示すように、ユーザの中での会話全体を表す電子メールの写し又は本文）、イベント情報検出モジュール８２０は、図１０Ｂ又は図１０Ｃに示す第２のネットワーク１０２０を用いて実装され得る。いくつかの例では、第２のネットワークは、双方向ＲＮＮ等のニューラルネットワークである。いくつかの例では、イベント情報検出モジュール８２０は、構造化されていない自然言語情報に含まれる異なる種類の情報に対して単一のネットワークを用いて実装され得る。例えば、イベント情報検出モジュール８２０は、動的に更新される又は動的に更新されない構造化されていない自然言語情報に対して第１のネットワーク９２０（例えば、単方向ＲＮＮ）を用いて実装され得る。いくつかの例では、第１のネットワーク９２０及び第２のネットワーク１０２０は、デバイス１００、２００、４００又は６００（図１、図２、図４及び図６Ｂ）を含むが、これらに限定されない、１つ以上の多機能デバイスを用いて実装される。
【０２１０】
図９Ａは様々な実施例に係る、電子デバイス９００の例示的なユーザインタフェース９０２を示す。図８及び図９Ａを参照すると、いくつかの例では、デジタルアシスタント８００はユーザインタフェース９０２を介して複数のテキストメッセージを受信する。ユーザインタフェース９０２に表示される複数のテキストメッセージは第１のユーザと第２のユーザとの間のコミュニケーションを表す。例えば、このコミュニケーションは、イベントを手配する複数のメッセージを含む。図９Ａに示す例では、第１のユーザは、「今日、Ｃａｆｆｅ  Ｍａｃｓでランチする？正午ごろ？(Lunch today at Cafe Macs? Noon-ish?)」等のテキストメッセージ９０４を提供する。それに応じて、第２のユーザが、「都合が悪いわ、１２：３０まで会議があるの．．．。(Won’t work, I have a meeting until 12:30....)」等のテキストメッセージ９０８を提供する。次に、第１のユーザは、「んー、１２：３０って非常識ね。１：００はどう？(Hmm, too crazy at 12:30. How about 1:00?)」等のテキストメッセージ９１４を提供する。次に、第２のユーザは、「いいよ、じゃあね！(Sounds good, see you then!)」等のテキストメッセージ９１８を提供する。図９Ａに示すように、二人のユーザが会話を続けるにつれて、デジタルアシスタント８００は、動的に更新される構造化されていない自然言語情報を受信する。
【０２１１】
いくつかの例では、構造化されていない自然言語情報（例えば、図９Ａのテキストメッセージ）は、１つ以上のポラリティと関連付けられている。ポラリティは、構造化されていない自然言語情報内の感情の分類を指す。例えば、ポラリティは、イベント情報に関連する感情の分類を指す。いくつかの例では、ポラリティは、提案、拒絶、受諾又はイベント無しとすることができる。図９Ａに示すように、テキストメッセージ９０４及び９０８は、提案のポラリティを表す１つ以上の単語（例えば、「今日」、「正午ごろ」、「１：００はどう」）を含む。テキストメッセージ９０８及び９１４は、拒絶のポラリティを表す１つ以上の単語（例えば、「都合が悪いわ」「非常識すぎる」）を含む。テキストメッセージ９１８は、受諾のポラリティを表す１つ以上の単語（例えば、「いいね」、「じゃあね」）を含む。したがって、テキストメッセージ９０４、９０８、９１４、９１８等の構造化されていない自然言語情報は複数の提案及び／又は複数の拒絶を表す単語を含み得る。構造化されていない自然言語情報に含まれる単語は、以下に詳述するように、イベント情報が存在するか否か及びイベントへの同意が存在するか否かについての判定に使用される。
【０２１２】
いくつかの例では、構造化されていない自然言語情報は、日付及び時間情報を含む。例えば、図９Ａに示すように、テキストメッセージ９０４、９０８及び９１４は、「正午ごろ」、「１２：３０」、及び「１：００」等の時間情報を含む。いくつかの例では、日付及び時間情報は、以下に詳述するように、イベント情報が存在するか否か、イベントへの同意が存在するか否か、及びイベント種類の判定に使用される。いくつかの例では、構造化されていない自然言語情報はまた、以下に詳述するように、イベント種類の判定に使用されるイベント種類情報（例えば、「ランチ」、「会議」）を含む。
【０２１３】
図９Ａ〜図９Ｃを参照すると、いくつかの例では、構造化されていない自然言語情報が動的に更新される情報（例えば、二人のユーザ間でやりとりされているテキストメッセージ）を含む場合、イベント情報検出モジュール８２０は、第１のネットワーク９２０を用いて実装される。いくつかの例では、第１のネットワーク９２０は、長短期記憶（long short-term memory：ＬＳＴＭ）隠れノードで実装されたＲＮＮである。図９Ｂ及び図９Ｃは、様々な実施例に係る、イベント検出及び分類のための例示的な第１のネットワーク９２０を示す。図９Ｂは、第１のネットワーク９２０のコンパクトな表現であり、図９Ｃは、時間が展開された第１のネットワークの等価表現である。例えば、図９Ｂの入力ユニット９５４（例えば、ｘ（ｔ））は、図９Ｃの入力ユニット９５４Ａ−Ｔ（例えば、ｘ（１），ｘ（２），．．．ｘ（Ｔ））として展開されている。同様に、図９Ｂの第１のコンテキストユニット９４２（例えば、ｈ（ｔ））は、図９Ｃの第１のコンテキストユニット９４２Ａ−Ｔ（例えば、ｈ（１），ｈ（２），．．．ｈ（Ｔ））として展開されている。そして、出力ラベルユニット９３２（例えば、Ｚ（ｔ））は、出力ラベルユニット９３２Ａ−Ｔ（例えば、Ｚ（１），Ｚ（２），．．．Ｚ（Ｔ））として展開される。図９Ｂ及び図９Ｃに示す例では、「ｔ」は時間を表し、１，２，．．．Ｔ等の離散時間ステップである。図９Ｂ及び図９Ｃは一緒に以下に説明する。
【０２１４】
図８、図９Ｂ及び図９Ｃを参照すると、いくつかの実施形態では、デジタルアシスタント８００は、構造化されていない自然言語情報を受信し、イベント情報検出モジュール８２０は、構造化されていない自然言語情報に関連付けられた１つ以上のポラリティを判定する。説明したように、いくつかの例では、イベント情報検出モジュール８２０は、第１のネットワーク９２０を用いて実装される。第１のネットワーク９２０は、例えば、ニューラルネットワーク（例えば、単方向ＲＮＮ）である。第１のネットワーク９２０は、入力レイヤ９５０、１つ以上の隠れレイヤ９４０、及び出力レイヤ９３０等の複数のレイヤを含む。図９Ｂ及び図９Ｃに示す例では、第１のネットワーク９２０は、単一の隠れレイヤ９４０を含む。しかし、他の例では、第１のネットワーク９２０は、より深いネットワークを形成するために、１つ以上の追加の隠れレイヤを含み得ることが理解されるであろう。第１のネットワーク９２０の各レイヤは、多数のユニットを含む。レイアは、例えば、単一のユニット又は複数のユニットを含む。これらのユニットは、いくつかの例では、ディメンション、ニューロン、又はノード（例えば、コンテキストノード）と称されるが、第１のネットワーク９２０の計算要素として動作する。
【０２１５】
いくつかの実施形態では、構造化されていない自然言語情報に関連付けられた１つ以上のポラリティを判定するために、イベント情報検出モジュール８２０は、構造化されていない自然言語情報に基づいて入力レイヤ９５０を生成し、入力レイヤ９５０に基づいて隠れレイヤ９４０を生成し、隠れレイヤ９４０に基づいて出力レイヤ９３０を生成する。図９Ｂ及び図９Ｃに示すように、いくつかの例では、入力レイヤ９５０は、複数の入力ユニット９５４（例えば、ｘ（ｔ））及び先行する第１のコンテキストユニット９５２（例えば、ｈ（ｔ−１））を含む。隠れレイヤ９４０は、複数の現在の第１のコンテキストユニット９４２（例えば、ｈ（ｔ））を含む。出力レイヤ９３０は、構造化されていない自然言語情報の少なくとも一部分の１つ以上のポラリティを表す複数の出力ラベルユニット９３２（例えば、ｚ（ｔ））と、第１のレベルのイベント種類出力９３４を含む。
【０２１６】
いくつかの例では、入力ユニット９５４（例えば、ｘ（ｔ））は、構造化されていない自然言語情報に基づいて取得された単語列を含む。単語列は、単語の列又は文字列を含む。例えば、図９Ａに示すように、構造化されていない自然言語情報は、「ランチ(lunch)」、「今日(today)」、「正午ごろ(Noon-ish)」、「しない（Won't）」、「うまくいく（work）」、「すぎる（too）」、「非常識な（crazy）」等の複数の単語を含んでもよい。単語列は、複数の単語に基づいて生成され、この単語列に含まれる単語の相対的なタイミング関係を示している。例えば、単語列は、「ランチ」、「今日」、及び「正午ごろ」という単語が「しない」及び「うまくいく」の前に受信されたことを示している。単語のタイミング関係は、構造化されていない自然言語情報内の複数のメッセージと関連付けられている時間的な情報を示す。例えば、「ランチ」、「今日」、「正午ごろ」、「しない」及び「うまくいく」というタイミング関係は、テキストメッセージ９０４（「ランチ」、「今日」、及び「正午ごろ」という単語を含む）がテキストメッセージ９０８（「しない」及び「うまくいく」という単語を含む）より前に受信されたことを示す。いくつかの例では、時間的な情報は、イベント情報が存在するか否か、かつ／又はイベントへの同意が存在するか否かを判定する際の精度を高めるのに使用される。例えば、時間的な情報を含めることによって、第１のネットワーク９２０は、イベント情報が存在するか否か、かつ／又はイベントへの同意が存在するか否かを判定する際にテキストメッセージ９０４及び９０８の時間的な依存性を考慮する。本例では、テキストメッセージ９０８（「しない」及び「うまくいく」という単語を含む）は、テキストメッセージ９０４（「ランチ」、「今日」、及び「正午ごろ」という単語を含む）に含まれる提案の拒絶を含む。
【０２１７】
いくつかの例では、入力ユニット９５４は、構造化されていない自然言語情報に基づいて取得された複数のトークンを含む。複数のトークンは、例えば、日付及び時間情報並びに／又は、名付けエンティティ語彙（naming-entity vocabulary）に基づいて認識されたエンティティを表す。例えば、図９Ａに示すように、構造化されていない自然言語情報は、「今日」、「１２：３０」、及び「１：００」等の日付及び時間情報を含む。いくつかの例では、イベント情報検出モジュール８２０は、これらの日付及び時間情報を表す複数のトークンを生成する。別の例としては、構造化されていない自然言語情報は、「49ers」、「ジャイアンツ（Giants）」、「ウォーリアーズ（Warriors）」等のエンティティへの言及を含む。いくつかの例では、イベント情報検出モジュール８２０は、名付けられたエンティティ認識語彙に基づいてエンティティを表す複数のトークンを生成する。例えば、この語彙を用いて、１つ以上のトークン（例えば、Ｓａｎ  Ｆｒａｎｃｉｓｃｏのバスケットボールチーム）は、「ウォーリアーズ」はＳａｎ  Ｆｒａｎｃｉｓｃｏのバスケットボールチームであるという認識に基づいて生成され得る。
【０２１８】
図９Ｂ及び図９Ｃを参照すると、いくつかの例では、各入力ユニット９５４は、単語又はトークンを表す。結果として、複数の入力ユニット９５４は、１語以上の単語列及び／又は１つ以上のトークンを表す。図９Ｂ及び図９Ｃに示すように、いくつかの例では、入力ユニット９５４は、Ｎｘ１のディメンションを有するベクトルとして表される。結果として、各入力ユニット（例えば、現在の入力ユニットｘ（ｔ））は、１−ｏｆ−Ｎ符号化を有してもよい。いくつかの例では、Ｎは、イベント情報が構造化されていない自然言語情報内に存在するか否かを判定するように構成された語彙内の単語及びトークンの総数を表す。例えば、語彙は、イベント情報に関連するものと公知の単語又はトークンの集合を含む。
【０２１９】
いくつかの例では、入力レイヤ９５０は、先行する複数の第１のコンテキストユニット９５２を含むか、又はそれを受信する。先行する第１のコンテキストユニット９５２（例えば、ｈ（ｔ−１））は、隠れレイヤ９４０内の先行する時間ステップの１つ以上の出力値からのコンテキストの内部表現を含む。図９Ｂ及び図９Ｃに示すように、先行する第１のコンテキストユニット９５２（例えば、ｈ（ｔ−１））は入力レイヤ９５０に含まれるか、又はそこで受信される。いくつかの例では、先行する第１のコンテキストユニット９５２及び現在の入力ユニット９５４（例えば、ｘ（ｔ））は、現在の第１のコンテキストユニット９４２（例えば、ｈ（ｔ））を生成する際に使用される。例えば、図９Ｃに示すように、第１のコンテキストユニット９４２Ｂ（例えば、ｈ（２））は、入力ユニット９５４Ｂ（例えば、ｘ（２））及び先行する第１のコンテキストユニット９４２Ａ（例えば、ｈ（１））に基づいて生成される。図９Ｂに示すように、先行する第１のコンテキストユニット９５２は、１つ以上の第１のリカレント接続９４３（例えば、リカレント接続９４３Ａ、９４３Ｂ）を介して隠れレイヤ９４０から入力レイヤ９５０に提供される。
【０２２０】
説明したように、隠れレイヤ９４０は、複数の第１のコンテキストユニット９４２を含む。いくつかの例では、第１のコンテキストユニット９４２（例えば、ｈ（ｔ））は、Ｈｘ１のディメンションを有するベクトルとして表される。第１のネットワーク９２０等の単方向ＲＮＮでは、第１のコンテキストユニット９４２を生成することは、例えば、第１の重み行列を用いて第１の現在の入力ユニットを重み付けすることと、第２の重み行列を用いて先行する第１のコンテキストユニットを重み付けすることと、現在の入力ユニットの重み付け及び先行する第１のコンテキストユニットの重み付けに基づいて現在の第１のコンテキストユニットを判定することと、を含む。図９Ｂ及び図９Ｃに示すように、いくつかの例では、現在の第１のコンテキストユニット９４２（例えば、ｈ（ｔ））は、以下の式（１）に従って生成される。
ｈ（ｔ）＝Ｆ｛Ｘ・ｘ（ｔ）＋Ｗ・ｈ（ｔ−１）｝                          （１）
式（１）では、ｘ（ｔ）は、現在の入力ユニット９５４を表し、ｈ（ｔ−１）は、先行する第１のコンテキストユニット９５２を表し、ｈ（ｔ）は、現在の第１のコンテキストユニット９４２を表し、Ｘは、ＨｘＮのディメンションを有する第１の重み行列を表し、Ｗは、ＨｘＨのディメンションを有する第２の重み付け行列を表す。いくつかの実施形態では、Ｆ｛｝は、シグモイド、双曲線正接、整流線形ユニット、それらに関連する任意の関数、又はそれらの任意の組み合わせ等の活性化関数を表す。現在の第１のコンテキストユニット９４２（例えば、ｈ（ｔ））は、第１のネットワーク９２０の状態を示唆するものであり、Ｈｘ１のディメンションを有する。
【０２２１】
図９Ｂ及び９Ｃに示すように、いくつかの例では、第１のネットワーク９２０は、出力レイヤ９３０を含む。出力レイヤ９３０は、複数の出力ラベルユニット９３２（例えば、ｚ（ｔ））と、第１のレベルのイベント種類出力９３４（例えば、ｑ）を含む。いくつかの実施形態では、出力ラベルユニット９３２及び第１のレベルのイベント種類出力９３４は、第１のコンテキストユニット９４２に基づいて生成される。例えば、出力ラベルユニット９３２を生成することは、第５の重み行列を用いて現在の第１のコンテキストユニット９４２を重み付けすることと、現在の第１のコンテキストユニット９４２の重み付けに基づいて現在の出力ラベルユニット９３２を判定することを含む。図９Ｂ及び図９Ｃに示すように、いくつかの例では、現在の出力ラベルユニット９３２（例えば、ｚ（ｔ））は、以下の式（２）に従って生成される。
ｚ（ｔ）＝Ｇ｛Ｚ・ｈ（ｔ）｝                                            （２）
式（２）では、ｈ（ｔ）は、現在の第１のコンテキストユニット９４２を表し、Ｚは第５の重み付け行列を表し、Ｇはソフトマックス活性化関数等の関数を表す。いくつかの例では、出力ラベルユニットのそれぞれは１−ｏｆ−Ｋ符号化を有し、Ｋは予め判定されたポラリティセットのポラリティの数を表す。例えば、各出力ラベルユニット９３２（例えば、ｚ（１），ｚ（２），．．．ｚ（Ｔ））は、提案、拒絶、受諾、又はイベント無しのポラリティに関連付けられている。それに対応して、本例では、Ｋは４に等しく、出力ラベルユニット９３２は１−ｏｆ−４符号化を有する。いくつかの例では、各出力ラベルユニット９３２は、入力ユニット９５４に対応し、各入力ユニット９５４は単語列内の単語又は構造化されていない自然言語情報から取得されたトークンを含む。したがって、出力ラベルユニット９３２に関連付けられたポラリティは、構造化されていない自然言語情報に関連付けられた１つ以上のポラリティを表す。いくつかの例では、図９Ｂ及び図９Ｃに示すように、出力レイヤ９３０はまた、第１のレベルのイベント種類出力９３４（例えば、ｑ）を含み、それは第１のレベルのイベント種類を表す。第１のレベルのイベント種類出力９３４は、以下に詳述する。
【０２２２】
上記したように、構造化されていない自然言語情報は、動的に更新されても、更新されなくてもよい。例えば、構造化されていない自然言語情報は、二人のユーザ間のコミュニケーション全体を表す複数の電子メールメッセージを含み、動的に更新されない。図１０Ａは、複数の電子メールメッセージを表示する例示的なユーザインタフェース１０００を示す。図８、図１０Ａ及び図１０Ｂを参照すると、いくつかの例では、ユーザインタフェース１０００上に表示される複数の電子メールメッセージは、第１のユーザと第２のユーザとの間のコミュニケーション全体を表す。例えば、このコミュニケーションは、イベントを手配する二人のユーザ間の複数の電子メールメッセージを含んでもよい。図１０Ａに示すように、電子メールメッセージ１０１０の本文には、第１のユーザが送信した初期の電子メール（例えば、「今日、Ｃａｆｆｅ  Ｍａｃｓでランチする？正午ごろ？」）、第１のユーザの初期のメッセージに応じて第２のユーザが送信した第２の電子メール（例えば、「都合が悪いわ、１２：３０まで会議があるの．．．」）、第２のユーザの第２の電子メールに応じて第１のユーザが送信した第３の電子メール（例えば、「んー、１２：３０って非常識ね。１：００はどう？」）、及び第１のユーザの第３の電子メールに応じて第２のユーザが送信した第４の電子メール（例えば、「いいね、じゃあね！」）が含まれる。本例では、電子メールメッセージの本文１０１０は、イベント（例えば、ランチイベント）を手配するための第１のユーザと第２のユーザとの間のコミュニケーション全体を含み、動的に更新されない。
【０２２３】
いくつかの例では、構造化されていない自然言語情報（例えば、電子メールメッセージの本文１０１０）が動的に更新されない場合、イベント情報検出モジュール８２０は、上記したように第１のネットワーク９２０を用いて、又は図１０Ｂ又は図１０Ｃに示す第２のネットワーク１０２０を用いて実装され得る。いくつかの例では、第２のネットワーク１０２０は、双方向ＲＮＮ等のニューラルネットワークである。いくつかの例では、第２のネットワーク１０２０は、長短期記憶（ＬＳＴＭ）隠れノードで実装されたＲＮＮである。図１０Ｂ及び図１０Ｃは、様々な実施例に係る、イベント検出及び分類に関する例示的な第２のネットワーク１０２０を示す。図１０Ｂは、第２のネットワーク１０２０のコンパクトな表現であり、図１０Ｃは、時間が展開された第２のネットワークの等価表現である。例えば、図１０Ｂの入力ユニット１０５４（例えば、ｘ（ｔ））は、図１０Ｃの入力ユニット１０５４Ａ−Ｔ（例えば、ｘ（１），ｘ（２），．．．ｘ（Ｔ））として展開されている。同様に、図１０Ｂの第１のコンテキストユニット１０４２（例えば、ｈ（ｔ））は、図１０Ｃの第１のコンテキストユニット１０４２Ａ−Ｔ（例えば、ｈ（１），ｈ（２），．．．ｈ（Ｔ））として展開されている。図１０Ｂの第２のコンテキストユニット１０４４（例えば、ｇ（ｔ））は、図１０Ｃの第２のコンテキストユニット１０４４Ａ−Ｔ（例えば、ｇ（１），ｇ（２），．．．ｇ（Ｔ））として展開されている。そして、図１０Ｂの出力ラベルユニット１０３２（例えば、Ｚ（ｔ））は、図１０Ｃの出力ラベルユニット１０３２Ａ−Ｔ（例えば、Ｚ（１），Ｚ（２），．．．Ｚ（Ｔ））として展開される。図１０Ｂ及び図１０Ｃに示す例では、「ｔ」は時間を表し、１，２，．．．Ｔ等の離散時間ステップである。図１０Ｂ及び図１０Ｃは一緒に以下に説明する。
【０２２４】
図８、図１０Ｂ及び図１０Ｃを参照すると、いくつかの実施形態では、第２のネットワーク１０２０は、入力レイヤ１０５０、１つ以上の隠れレイヤ１０４０、及び出力レイヤ１０３０等の複数のレイヤを含む。本例では、第２のネットワーク１０２０は、単一の隠れレイヤ１０４０を含む。いくつかの実施形態では、構造化されていない自然言語情報（例えば、図１０Ａに示すような電子メールメッセージの本文１０１０）に関連付けられた１つ以上のポラリティを判定するために、イベント情報検出モジュール８２０は、構造化されていない自然言語情報に基づいて入力レイヤ１０５０を生成し、入力レイヤ１０５０に基づいて隠れレイヤ１０４０を生成し、隠れレイヤ１０４０に基づいて出力レイヤ１０３０を生成する。
【０２２５】
第１のネットワーク９２０の入力レイヤ９５０と同様に、第２のネットワーク１０２０の入力レイヤ１０５０は、複数の入力ユニット１０５４（例えば、ｘ（ｔ））を含む。各入力ユニット１０５４（例えば、ｘ（１），ｘ（２））は、構造化されていない自然言語情報（例えば、図１０Ａに示すような電子メールメッセージの本文１０１０）から取得された単語又はトークンを表す。入力ユニット１０５４は、Ｎｘ１のディメンションを有するベクトルとして表される。結果として、各入力ユニット（例えば、現在の入力ユニットｘ（ｔ））は、１−ｏｆ−Ｎ符号化を有してもよい。いくつかの例では、入力レイヤ１０５０は、また、先行する複数の第１のコンテキストユニット１０５２（例えば、ｈ（ｔ−１））を含むか、又はそれを受信する。上記した先行する第１のコンテキストユニット９５２と同様に、先行する第１のコンテキストユニット１０５２（例えば、ｈ（ｔ−１））は、隠れレイヤ１０４０内の先行する時間ステップの１つ以上の出力値からのコンテキストの内部表現を含む。図１０Ｂ及び図１０Ｃに示すように、いくつかの例では、先行する第１のコンテキストユニット１０５２（例えば、ｈ（ｔ−１））及び現在の入力ユニット１０５４（例えば、ｘ（ｔ））は、現在の第１のコンテキストユニット１０４２（例えば、ｈ（ｔ））を生成する際に使用される。先行する第１のコンテキストユニット１０５２は、１つ以上の第１のリカレント接続１０４３（例えば、リカレント接続１０４３Ａ、１０４３Ｂ）を介して隠れレイヤ１０４０から入力レイヤ１０５０に提供される。いくつかの例では、現在の第１のコンテキストユニット１０４２（例えば、ｈ（ｔ））は、上記したように式（１）（すなわち、ｈ（ｔ）＝Ｆ｛Ｘｘ（ｔ）＋Ｗｈ（ｔ−１）｝）に従って生成される。
【０２２６】
図１０Ｂ及び図１０Ｃに示すように、いくつかの例では、入力レイヤ１０５０はまた複数の後続する第２のコンテキストユニット１０５６を含むか、又はそれを受信する。後続する第２のコンテキストユニット１０５６（例えば、ｇ（ｔ＋１））は、隠れレイヤ１０４０内の後続する時間ステップ（例えば、未来の時間ステップ）の１つ以上の出力値からのコンテキストの内部表現を含む。図１０Ｂ及び図１０Ｃに示すように、いくつかの例では、後続する第２のコンテキストユニット１０５６（例えば、ｇ（ｔ＋１））及び現在の入力ユニット１０５４（例えば、ｘ（ｔ））は、現在の第２のコンテキストユニット１０４４（例えば、ｇ（ｔ））を生成する際に使用される。例えば、図１０Ｃに示すように、現在の第２のコンテキストユニット１０４４Ａ（例えば、ｇ（１））は、現在の入力ユニット１０５４Ａ（例えば、ｘ（１））及び後続する第２のコンテキストユニット１０４４Ｂ（例えば、ｇ（２））に基づいて生成される。図１０Ｂ及び図１０Ｃに示すように、後続する第２のコンテキストユニット１０５６は、１つ以上の第２のリカレント接続１０４５（例えば、リカレント接続１０４５Ａ、１０４５Ｂ）を介して隠れレイヤ１０４０から入力レイヤ１０５０に提供される。
【０２２７】
説明したように、隠れレイヤ１０４０は、複数の第２のコンテキストユニット１０４４を含む。いくつかの例では、第２のコンテキストユニット１０４４（例えば、ｇ（ｔ））は、Ｈｘ１のディメンションを有するベクトルとして表される。第２のネットワーク１０２０等の双方向ＲＮＮでは、第２のコンテキストユニット１０４４を生成することは、例えば、第３の重み行列を用いて現在の入力ユニットを重み付けすることと、第４の重み行列を用いて後続する第２のコンテキストユニットを重み付けすることと、現在の入力ユニットの重み付け及び後続する第２のコンテキストユニットの重み付けに基づいて現在の第２のコンテキストユニットを判定することと、を含む。図１０Ｂ及び図１０Ｃに示すように、いくつかの例では、現在の第２のコンテキストユニット１０４４（例えば、ｇ（ｔ））は、以下の式（３）に従って生成される。
ｇ（ｔ）＝Ｆ｛Ｙ・ｘ（ｔ）＋Ｖ・ｇ（ｔ＋１）｝                          （３）
式（３）では、ｘ（ｔ）は、現在の入力ユニット１０５４を表し、ｇ（ｔ＋１）は、後続する第２のコンテキストユニット１０５６を表し、ｇ（ｔ）は、現在の第２のコンテキストユニット１０４４を表し、Ｙは、ＨｘＮのディメンションを有する第３の重み行列を表し、Ｖは、ＨｘＨのディメンションを有する第４の重み付け行列を表す。いくつかの実施形態では、Ｆ｛｝は、シグモイド、双曲線正接、整流線形ユニット、それらに関連する任意の関数、又はそれらの任意の組み合わせ等の活性化関数を表す。
【０２２８】
図１０Ｂ及び図１０Ｃに示すように、いくつかの例では、第２のネットワーク１０２０は、出力レイヤ１０３０を含む。出力レイヤ１０３０は、複数の出力ラベルユニット１０３２（例えば、ｚ（ｔ））と第１のレベルのイベント種類出力１０３４（例えば、ｑ）を含む。いくつかの実施形態では、出力ラベルユニット１０３２及び第１のレベルのイベント種類出力１０３４は、第１のコンテキストユニット１０４２及び第２のコンテキストユニット１０４４に基づいて生成される。例えば、現在の出力ラベルユニット１０３２を生成することは、現在の第１のコンテキストユニット及び現在の第２のコンテキストユニットに基づいて現在の状態を取得することと、第６の重み行列を用いて現在の状態を重み付けすることと、現在の状態の重み付けに基づいて現在の出力ラベルユニットを判定することとを含む。現在の状態は、例えば、第２のネットワーク１０２０の状態を示唆するものであり、２Ｈのディメンションを有する。図１０Ｂ及び図１０Ｃに示すように、いくつかの例では、現在の状態（例えば、ｓ（ｔ））は、以下の式４に示すように、現在の第１のコンテキストユニット（例えば、ｈ（ｔ））及び現在の第２のコンテキストユニット（例えば、ｇ（ｔ））の連結によって取得される。
ｓ（ｔ）＝［ｈ（ｔ）ｇ（ｔ）］                                          （４）
式（４）では、ｓ（ｔ）は、第２のネットワーク１０２０の現在の状態を表し、ｈ（ｔ）は、現在の第１のコンテキストユニット１０４２を表し、ｇ（ｔ）は現在の第２のコンテキストユニット１０４４を表す。
【０２２９】
いくつかの実施形態では、出力レイヤ１０３０の現在の出力ラベルユニット１０３２（例えば、ｚ（ｔ））は、以下の式（５）に従って生成される。
ｚ（ｔ）＝Ｇ｛Ｚ・ｓ（ｔ）｝                                            （５）
式（５）では、ｓ（ｔ）は、第２のネットワーク１０２０の現在の状態を表し、Ｚは第６の重み付け行列を表し、Ｇはソフトマックス活性化関数等の関数を表す。いくつかの例では、出力ラベルユニット１０３２のそれぞれは１−ｏｆ−Ｋ符号化を有し、Ｋは予め判定されたポラリティセットのポラリティの数を表す。例えば、各出力ラベルユニット１０３２（例えば、ｚ（１），ｚ（２），．．．ｚ（Ｔ））は、提案、拒絶、受諾、又はイベント無しのポラリティと関連付けられている。それに対応して、本例では、Ｋは４に等しい。いくつかの例では、各出力ラベルユニット１０３２は、入力ユニット１０５４に対応し、各入力ユニット１０５４は単語列内の単語又は構造化されていない自然言語情報から取得されたトークンを含む。したがって、出力ラベルユニット１０３２に関連付けられたポラリティは、構造化されていない自然言語情報に関連付けられたポラリティを表す。図１０Ｂ及び図１０Ｃでは、第１のレベルのイベント種類出力１０３４（例えば、ｑ）は、第１のレベルのイベント種類を表し、以下に詳述する。
【０２３０】
図８、図９Ａ〜図９Ｃ、及び図１０Ａ〜図１０Ｃを参照すると、いくつかの実施形態では、構造化されていない自然言語情報に関連付けられた１つ以上のポラリティを判定した後、イベント情報検出モジュール８２０は、イベント情報が存在するか否かを１つ以上のポラリティに基づいて判定する。いくつかの実施形態では、イベント情報検出モジュール８２０は、出力ラベルユニット９３２又は１０３２に関連付けられた１つ以上のポラリティが提案、拒絶又は受諾のうちの少なくとも１つを含むかを判定する。１つ以上のポラリティが提案、拒絶又は受諾のうちの少なくとも１つを含むとの判定に従って、イベント情報検出モジュール８２０は、提案、拒絶、又は受諾のうちの少なくとも１つに関連付けられた確率を判定し、その確率が第１の確率閾値を満たすか否かを判定する。確率が第１の確率閾値を満たすとの判定に従って、イベント情報検出モジュール８２０は、イベント情報が構造化されていない自然言語情報内に存在することを判定する。
【０２３１】
例えば、図８、図９Ａ及び図１０Ａに示すように、構造化されていない自然言語情報は複数の部分を含む。構造化されていない自然言語情報の一部分は、１つ以上の単語及び／又はトークンを含み、単語（単数又は複数）、文（単数又は複数）、パラグラフ（単数又は複数）、又はメッセージ（単数又は複数）とすることができる。部分は、例えば、テキストメッセージ、電子メールメッセージ等を表すことができる。上記のように、いくつかの実施形態では、イベント情報検出モジュール８２０は、単語及び／又はトークンのそれぞれに対して、それに関連付けられたポラリティ（例えば、提案、拒絶、受諾、又はイベント無し）を判定する。いくつかの例では、イベント情報検出モジュール８２０は、構造化されていない自然言語情報の各部分に対して、構造化されていない自然言語情報の当該部分が特定のポラリティに関連付けられている確率を更に判定する。例えば、図９Ａに示すように、テキストメッセージ９０８は、「都合が悪いわ、１２：３０まで会議があるの。」等の単語及びトークンを含む。これらの単語及びトークンのそれぞれは、ポラリティに関連付けられている。例えば、「都合が悪いわ」という単語のそれぞれは、拒絶のポラリティに関連付けられており、「１２：３０まで会議があるの」という単語及びトークンのそれぞれは、拒絶又は提案のポラリティに関連付けられている。テキストメッセージ９０８内の単語及びトークンのポラリティに基づいて、イベント情報検出モジュール８２０は、テキストメッセージ９０８が特定のポラリティに関連付けられている確率を判定する。例えば、イベント情報検出モジュール８２０は、テキストメッセージ９０８が拒絶のポラリティに関連付けられている確率は約９０％であり、テキストメッセージ９０８が提案のポラリティに関連付けられている確率は約２０％であり、テキストメッセージ９０８が受諾のポラリティ又はイベント無しのポラリティに関連付けられている確率は約０％であることを判定する。いくつかの例では、イベント情報検出モジュール８２０は、その確率を第１の確率閾値（例えば、５０％）と比較し、テキストメッセージ９０８が拒絶であるという確率が第１の確率閾値を満たすことを判定する。したがって、イベント情報検出モジュール８２０は、イベント情報が構造化されていない自然言語情報内に存在することを判定する。いくつかの例では、構造化されていない自然言語の少なくとも一部分に関連付けられた確率は、確率分布である。
【０２３２】
いくつかの実施形態では、構造化されていない自然言語情報は、二人のユーザ間のコミュニケーション全体（例えば、図９Ａ及び図１０Ａに示すような複数のテキストメッセージ）を含む。構造化されていない自然言語情報はまた、任意の期間にわたる複数のユーザ間のコミュニケーションも含み得ることが理解される。例えば、このコミュニケーションは、ユーザが過去数分間、数時間、数日、数週間、数ヶ月、又は数年のうちにやりとりしたメッセージを含み得る。単方向ＲＮＮ（例えば、第１のネットワーク９２０）又は双方向ＲＮＮ（例えば、第２のネットワーク１０２０）は、任意の構造化されていない自然言語情報に基づいてイベント情報が存在するか否かを判定するのに使用され得ることも理解される。例えば、ＲＮＮは、数分、数時間、数日、数週間、数ヶ月、又は数年の期間を有する構造化されていない自然言語情報に使用され得る。
【０２３３】
図８に戻って参照すると、いくつかの実施形態では、イベント情報が構造化されていない自然言語情報内に存在するとの判定に従って、イベント同意検出モジュール８４０は、イベントへの同意が構造化されていない自然言語情報内に存在するか否かを判定する。いくつかの例では、イベント同意検出モジュール８４０は、構造化されていない自然言語情報の少なくとも一部に関連付けられた１つ以上のポラリティが受諾を含むか否かを判定する。１つ以上のポラリティが受諾を含むとの判定に従って、イベント同意検出モジュール８４０は、受諾に関連付けられた確率を判定し、その確率が第２の確率閾値を満たすか否かを判定する。確率が第２の確率閾値を満たすとの判定に従って、イベント同意検出モジュール８４０は、イベントへの同意が存在することを判定する。
【０２３４】
上記のように、いくつかの例では、イベント同意検出モジュール８２０は、構造化されていない自然言語情報の少なくとも一部（単語、文、パラグラフ、メッセージ）に関連付けられた１つ以上の確率を判定する。例えば、図１０Ａに示すように、電子メールメッセージの本文１０１０は、「いいね、じゃあね。」等の文を含む。その文内の単語のそれぞれは、ポラリティに関連付けられている。上記のように、単語に関連付けられたポラリティは、単語のコンテキスト（例えば、先行する単語及び／又は後続する単語）を考慮して判定される。いくつかの例では、イベント同意検出モジュール８４０は、構造化されていない自然言語情報の少なくとも一部（例えば、単語、文、パラグラフ、又は電子メールメッセージ）が受諾のポラリティに関連付けられているか否かを判定する。少なくとも一部が受諾のポラリティに関連付けられている場合、イベント同意検出モジュール８４０は、受諾に関連付けられた確率を判定し、同意が存在するか否かを判定する。例えば、イベント同意検出モジュール８４０は、「いいね、じゃあね」という文が受諾のポラリティに関連付けられている確率が９０％であることを判定する。イベント同意検出モジュール８４０は、９０％という確率を第２の確率閾値（例えば、５０％）と比較し、受諾に関連付けられた確率が第２の確率閾値を満たすことを判定する。したがって、イベント同意検出モジュール８４０は、イベント同意が構造化されていない自然言語情報内に存在することを判定する。いくつかの例では、構造化されていない自然言語の少なくとも一部に関連付けられた確率は、確率分布である。
【０２３５】
いくつかの実施形態では、第１の確率閾値及び／又は第２の確率閾値は、ユーザ別データ、履歴データ、又は他のデータ若しくは基準に基づいて構成可能である。いくつかの実施形態では、少なくとも１つの確率閾値は、ユーザのプリファレンスに基づいてユーザによって調整可能である。例えば、構造化されていない自然言語情報内にイベント情報が存在する、かつ／又は同意が存在する確度が非常に高くない限り、ユーザがイベント説明（後述する）を受信することを望まない場合、ユーザは、受諾の閾値をデフォルト値より高く設定してもよい。より多くのイベント説明を受け取ることを好み、過剰検知を気にしないユーザは、閾値を低く設定してもよい。
【０２３６】
図８に戻って参照すると、いくつかの実施形態では、イベントへの同意が存在するとの判定に従って、イベント種類判定モジュール８６０は、そのイベントのイベント種類を判定する。イベント種類は、イベントのカテゴリ又はサブカテゴリを表す。正確にイベント説明を提供するには、イベント種類を正確に判定することが望まれており、重要である。いくつかの実施形態では、イベント種類の判定は、自然言語イベントオントロジを用いた階層分類に基づくものである。
【０２３７】
図１１Ａ〜図１１Ｈは、例示的な自然言語イベントオントロジ１１００を示す。いくつかの例では、自然言語イベントオントロジ１１００は、複数のレベルを含む階層構造である。例えば、図１１Ａ〜図１１Ｂに示すように、自然言語イベントオントロジ１１００は、第１のレベル１１２０と第２のレベル１１４０を含む。各レベルは複数のイベント種類ノードを含む。第２のレベル１１４０のイベント種類ノードは、第１のレベル１１２０の子ノードである。子ノードは、階層的に親ノードに関係する。例えば、図１１Ａ〜図１１Ｂに示すように、自然言語イベントオントロジ１１００は、ルートノード１１１０を含み、それは、ノード１１２２、１１２４、１１２６及び１１２８等の複数の第１のレベルのイベント種類ノードへの親ノードである。第１のレベルのイベント種類ノード１１２２、１１２４、１１２６及び１１２８はルートノード１１１０の子ノードである。いくつかの実施形態では、第１のレベルのイベント種類ノード１１２２、１１２４、１１２６、及び１１２８はイベント種類の粗分類を表す。例えば、第１のレベル１１２０では、イベントは、集会、娯楽、予定、及び手配と粗く分類されてもよい。それに対応して、第１のレベル１１２０は、集会イベント種類ノード１１２２、娯楽イベント種類ノード１１２４、予定イベント種類ノード１１２６、及び手配イベント種類ノード１１２８を含む。
【０２３８】
説明したように、自然言語イベントオントロジ１１００は第２のレベル１１４０を含む。いくつかの実施形態では、第２のレベル１１４０では、各イベント種類ノードは、対応する第１のレベルのイベント種類ノードの子ノードである。第２のレベルのイベント種類ノードは、第１のレベルのイベント種類ノードよりイベント種類のより細かい分類を表す。例えば、集会イベント種類は、例えば、食事、パーティ、飲み、儀式、同窓会、実地見学、記念日等の第２のレベルのイベント種類を含むように更に分類されてもよい。それに対応して、第１のレベル１１２０の集会イベント種類ノード１１２２は、食事イベント種類ノード１１４２Ａ、パーティイベント種類ノード１１４２Ｂ、飲みイベント種類ノード１１４２Ｃ、儀式イベント種類ノード１１４２Ｄ、同窓会イベント種類ノード１１４２Ｅ、実地見学イベント種類ノード１１４２Ｆ、及び記念日イベント種類ノード１１４２Ｇの親ノードである。図１１Ａ〜図１１Ｂに示すように、第１のレベルのイベント種類ノード（例えば、集会イベント種類ノード１１２２）と複数の第２のレベルのイベント種類ノード（例えば第２のレベルのイベント種類ノード１１４２Ａ〜Ｇ）との間の階層関係は、方向付接続１１３２（実線）で表される。接続１１３２の方向は、イベント種類ノードの親子関係を示す。例えば、食事イベント種類ノード１１４２Ａと集会イベント種類ノード１１２２を接続する接続１１３２の方向は、食事イベント種類ノード１１４２Ａが集会イベント種類ノード１１２２に属する子ノードであることを示す。
【０２３９】
図１１Ａ〜図１１Ｂに示すように、同様に、娯楽イベント種類は、例えば、映画、文化、公園、スポーツ、ゲーム、ハイキング、カラオケ等の第２のレベルのイベント種類を含むように更に分類されてもよい。それに対応して、第１のレベル１１２０での娯楽イベント種類ノード１１２４は、これらの第２のレベルのイベント種類を表す複数の第２のレベルのイベント種類ノードへの親ノードである。予定イベント種類は、例えば、会議、健康、ウェルネス、美容、美容師、教育、インタビュー等を含むように更に分類されてもよい。それに対応して、第１のレベル１１２０での予定イベント種類ノード１１２６は、これらの第２のレベルのイベント種類を表す複数の第２のレベルのイベント種類ノードへの親ノードである。手配イベント種類は、例えば、ショッピング、ピックアップ、旅行等を含むように更に分類されてもよい。それに対応して、第１のレベル１１２０での手配イベント種類ノード１１２８は、これらの第２のレベルのイベント種類を表す複数の第２のレベルのイベント種類ノードへの親ノードである。自然言語イベントオントロジ１１００は、任意の所望の数のレベルを含むことができ、各レベルは、任意の所望の数のイベント種類ノードを有することができることが理解される。
【０２４０】
いくつかの例では、少なくとも１つのイベント種類ノードは、優先規則に関連付けられている。優先規則は、あるイベント種類ノードの、別のイベント種類ノードに対する相対的な優先度を示す。例えば、図１１Ａ〜図１１Ｂに示すように、第２のレベル１１４０では、食事イベント種類ノード１１４２Ａ、パーティイベント種類ノード１１４２Ｂ、飲みイベント種類ノード１１４２Ｃ、及び実地見学イベント種類ノード１１４２Ｆは、１つ以上の優先規則に関連付けられている。優先規則は、方向付接続１１４３Ａ〜Ｄ（破線）によって表される。接続１１４３の方向は、２つの関連したイベント種類ノード間の相対的な優先度レベルを示す。例えば、接続１１４３Ａの方向は、食事イベント種類ノード１１４２Ａからパーティイベント種類ノード１１４２Ｂまでであり、食事イベント種類ノード１１４２Ａがパーティイベント種類ノード１１４２Ｂより優先度が低いことを示す。同様に、飲みイベント種類ノード１１４２Ｃは、食事イベント種類ノード１１４２Ａより優先度が低い。以下に詳述するように、いくつかの例では、構造化されていない自然言語情報は、自然言語イベントオントロジ１１００内の１つより多いイベント種類ノードに関連付けられているイベント情報を含む。優先規則は、優先規則に関連付けられた複数のイベント種類ノードに基づいてイベントのイベント種類を判定するのに用いられ得る。例えば、構造化されていない自然言語情報が、食事イベント種類ノード１１４２Ａ及び飲みイベント種類１１４２Ｃの両方に関連付けられているイベント情報（例えば、「ディナーにピザと飲みは？」）を含む場合は、これら２つのノードに関連付けられた優先規則は、イベントのイベント種類を判定するのに用いられ得る。図１１Ａに示すように、優先規則に従って、いくつかの例では、イベント種類判定モジュール８６０は、食事イベント種類ノード１１４２Ａが飲みイベント種類ノード１１４２Ｃより優先度が高いので、イベント種類が食事であると判定する。
【０２４１】
いくつかの実施形態では、自然言語イベントオントロジ１１００の少なくとも１つのイベント種類ノードは、リーフノードである。リーフノードは、階層的に子ノードに関係しない。例えば、図１１Ａ〜図１１Ｂに示すように、美容師イベント種類ノード１１４６Ａ及び旅行イベント種類ノード１１４６Ｂはリーフノードであり、それらが子ノードの親ではないことを示している。
【０２４２】
図１１Ｃ〜図１１Ｇに示すように、いくつかの実施形態では、自然言語イベントオントロジ１１００は、階層的に第２のレベル１１４０に関係する１つ以上のより高レベル１１６０を含む。１つ以上の高レベル１１６０のイベント種類ノードは、第２のレベル１１４０の対応するイベント種類ノードの子ノードである。例えば、図１１Ｃに示すように、食事イベント種類は、例えば、朝食、ブランチ、ランチ、軽食、アイスクリーム、ポットラック、ＢＢＱ、ピクニック、ディナー等の第３のレベルのイベント種類を含むように更に分類されてもよい。それに対応して、第２のレベル１１４０での食事イベント種類ノード１１４２Ａは、これらの第３のレベルのイベント種類を表す複数の第３のレベルのイベント種類ノードへの親ノードである。いくつかの例では、第３のレベルのイベント種類のうち１つ以上は、より高いレベルのイベント種類を含むように更に分類されてもよい。例としては、ブランチイベント種類は、誕生日ブランチを含むように分類されてもよい。別の例としては、ランチイベント種類は、イースターランチ、クリスマスランチ、感謝祭ランチ、チームランチ、家族ランチ、誕生日ランチ等を含むように分類されてもよい。別の例としては、ディナーイベント種類は、イースターディナー、クリスマスディナー、感謝祭ディナー、チームディナー、家族ディナー、誕生日ディナー、映画ディナー等を含むように分類されてもよい。それに対応して、第３のレベルのイベント種類ノード（例えば、朝食イベント種類ノード、ブランチイベント種類ノード等）は、これら高レベルのイベント種類を表すそれぞれの高レベルのイベント種類ノードへの親ノードである。いくつかの例では、高レベルのイベント種類ノードは、１つ以上のリーフノード（例えば、イースターランチ、クリスマスランチ等）を含む。図１１Ｃに示すように、第３及びそれより高レベルのイベント種類ノード内では、少なくとも１つのイベント種類ノードは優先規則に関連付けられている。例えば、ランチイベント種類ノード及びディナーイベント種類ノードの両方は、ピクニックイベント種類ノードより優先度が低い。
【０２４３】
図１１Ｄに示すように、第２のレベル１１４０では、記念日イベント種類は、誕生日等の第３のレベルのイベント種類を含むように更に分類されてもよい。パーティイベント種類は、カクテルパーティ、誕生日パーティ、卒業、退職、新居披露、ハロウィン、新年のパーティ、中国の新年、シンコ・デ・マヨ、クリスマスホリデーパーティ、仮面舞踏会、ベビーシャワー、ブライダルシャワー、セントパトリックデー、ディーワーリ等の第３のレベルのイベント種類を含むように更に分類されてもよい。飲みイベント種類は、ハッピーアワー、コーヒー、紅茶、ホットチョコレート、オクトーバーフェスト等の第３のレベルのイベント種類を含むように更に分類されてもよい。儀式イベント種類は、朝の儀式、聖体拝領、堅信式、洗礼、成人式、結婚式等の第３のレベルのイベント種類を含むように更に分類されてもよい。それに対応して、第２のレベルのイベント種類ノード（例えば、記念日イベント種類ノード、パーティイベント種類ノード、飲みイベント種類ノード、及び儀式イベント種類ノード）は、図１１Ｄに示すように、各第３のレベルのイベント種類ノードの親ノードである。いくつかの例では、第３のレベルのイベント種類のうち１つ以上は、より高いレベルのイベント種類を含むように更に分類されてもよい。いくつかの実施形態では、第３及びそれより高レベルのイベント種類ノードの一部は、リーフノードである。
【０２４４】
図１１Ｅ及び図１１Ｆを参照すると、娯楽イベント種類は、例えば、映画、文化、公園、スポーツ、ゲーム、カラオケ、ハイキング等の第２のレベルのイベント種類を含むように更に分類されてもよい。それに対応して、第１のレベル１１２０での娯楽イベント種類ノード１１２４は、これらの第２のレベルのイベント種類を表す第２のレベルのイベント種類ノードの親ノードである。第２のレベル１１４０では、映画イベント種類は、シネマ及びディナー等の第３のレベルのイベント種類を含むように更に分類されてもよい。文化イベント種類は、展示会、劇場、コンサート、オペラ、ショー、祭り等の第３のレベルのイベント種類を含むように更に分類されてもよい。公園イベント種類は、遊園地、ウォータパーク等の第３のレベルのイベント種類を含むように更に分類されてもよい。スポーツイベント種類は、フットボール、テニス、ランニング、マラソン、サッカー、クリケット、ホッケー、野球、バスケットボール、ゴルフ、スケートボード、スノーボード、ラグビー、ヨガ、バレーボール、卓球、バスケットボール、自転車、ソフトボール、スキー等の第３のレベルのイベント種類を含むように更に分類されてもよい。ゲームイベント種類は、ポーカー、ボードゲーム、ボーリング、ゲームナイト、ビデオゲーム等の第３のレベルのイベント種類を含むように更に分類されてもよい。カラオケイベント種類は、カラオケナイト等の第３のレベルのイベント種類を含むように更に分類されてもよい。それに対応して、第２のレベルのイベント種類ノード（例えば、映画イベント種類ノード、文化イベント種類ノード、公園イベント種類ノード、スポーツイベント種類ノード、ゲームイベント種類ノード、及びカラオケイベント種類ノード）は、図１１Ｅ及び図１１Ｆに示すように、各第３のレベルのイベント種類ノードの親ノードである。いくつかの例では、第３のレベルのイベント種類のうち１つ以上は、図１１Ｅ及び図１１Ｆに示すように、より高いレベルのイベント種類を含むように更に分類されてもよい。いくつかの実施形態では、第３及びそれより高レベルのイベント種類ノードの一部は、リーフノードである。
【０２４５】
図１１Ｇを参照すると、予定イベント種類は、例えば、会議、健康、ウェルネス、美容、教育等の子供イベント種類を含むように更に分類されてもよい。それに対応して、第１のレベル１１２０での予定イベント種類ノード１１２６は、これらの第２のレベルのイベント種類を表す第２のレベルのイベント種類ノードの親ノードである。第２のレベル１１４０では、会議イベント種類は、１対１の会議、業務会議等の第３のレベルのイベント種類を含むように更に分類されてもよい。健康イベント種類は、歯科医、皮膚科医、オプトメトリー、脊柱指圧療法師等の第３のレベルのイベント種類を含むように更に分類されてもよい。ウェルネスイベント種類は、ＳＰＡ、マッサージ、リフレクソロジー、栄養士、鍼療法等の第３のレベルのイベント種類を含むように更に分類されてもよい。美容イベント種類は、マニキュア、ペディキュア等の第３のレベルのイベント種類を含むように更に分類されてもよい。教育イベント種類は、セミナー、コンファレンス、ワークショップ、研修、クラス、キーノート、議会等の第３のレベルのイベント種類を含むように更に分類されてもよい。それに対応して、第２のレベルのイベント種類ノード（例えば、インタビュー、会議、健康、ウェルネス、美容、教育）は、図１１Ｇに示すように第３のレベルのイベント種類ノードのそれぞれの親ノードである。いくつかの例では、第３のレベルのイベント種類のうち１つ以上は、より高いレベルのイベント種類を含むように更に分類されてもよい。いくつかの実施形態では、第３及びそれより高レベルのイベント種類ノードの一部は、リーフノードである。
【０２４６】
図１１Ｈを参照すると、手配イベント種類は、例えば、ショッピング、旅行、ピックアップ等の第２のイベント種類を含むように更に分類されてもよい。それに対応して、第１のレベル１１２０での手配イベント種類ノード１１２８は、これらの第２のレベルのイベント種類を表す第２のレベルのイベント種類ノードの親ノードである。第２のレベル１１４０では、ショッピングイベント種類は、セールス等の第３のレベルのイベント種類を含むように更に分類されてもよい。ピックアップイベント種類は、コンファレンス等の第３のレベルのイベント種類を含むように更に分類されてもよい。それに対応して、第２のレベルのイベント種類ノード（例えば、ショッピング、旅行及びピックアップ）は、図１１Ｈに示すように第３のレベルのイベント種類ノードのそれぞれの親ノードである。いくつかの例では、第３のレベルのイベント種類のうち１つ以上は、より高いレベルのイベント種類を含むように更に分類されてもよい。いくつかの実施形態では、第３及びそれより高レベルのイベント種類ノードの一部は、リーフノードである。
【０２４７】
図１２Ａを参照すると、いくつかの実施形態では、デジタルアシスタントのイベント種類判定モジュール８６０は、自然言語イベントオントロジ１１００を用いてイベント種類を判定する。いくつかの例では、イベント種類判定モジュール８６０は、第１のレベルイベント種類分類器１２０２、第２及びそれより高レベルイベント種類分類器１２０４、及びイベント種類調整器１２０６を含む。動作時、例えば、第１のレベルイベント種類分類器１２０２は、構造化されていない自然言語情報に基づいてイベントに関連付けられた第１のレベルイベント種類を判定し、第２及びそれより高レベルイベント種類分類器１２０４は、第１のレベルイベント種類に基づいてイベント種類を判定する。
【０２４８】
図１１Ａ〜図１１Ｂに示すように、いくつかの例では、自然言語イベントオントロジ１１００の第１のレベル１１２０は、集会イベント種類ノード１１２２、娯楽イベント種類ノード１１２４、予定イベント種類ノード１１２６及び手配イベント種類ノード１１２８等の複数の第１のレベルのイベント種類ノードを含む。第１のレベルのイベント種類ノードは、イベント種類の粗分類を表す。したがって、いくつかの例では、第１のレベルイベント種類を判定することは、構造化されていない自然言語情報に含まれるイベント情報が自然言語イベントオントロジ１１００に含まれる複数の第１のレベルイベント種類のうち１つに対応するか否かを判定することを含む。
【０２４９】
図９Ｂ、図９Ｃ及び図１２Ａを参照すると、第１のレベルイベント種類分類器１２０２は、ネットワークの第１のレベルのイベント種類出力に基づいて、第１のレベルのイベント種類を判定する。説明したように、いくつかの実施形態では、第１のネットワーク９２０等の単方向ＲＮＮは、第１のレベルのイベント種類を表す第１のレベルのイベント種類出力９３４（例えば、ｑ）を判定するのに使用される。いくつかの例では、第１のレベルイベント種類分類器１２０２は、第１のネットワーク９２０を実装するイベント情報検出モジュール８２０の一部分である。いくつかの例では、第１のレベルイベント種類分類器１２０２は、イベント情報検出モジュール８２０と別個のものであり、第１のネットワーク９２０の少なくとも一部を実装する部分である。
【０２５０】
いくつかの実施形態では、第１のレベルのイベント種類出力９３４を判定するために、第１のレベルイベント種類分類器１２０２は、隠れレイヤの後端の第１のコンテキストユニットを重み付けし、後端の第１のコンテキストユニットの重み付けに基づいて第１のレベルのイベント種類出力９３４を判定する。後端の第１のコンテキストユニットは、隠れレイヤの第１のコンテキストユニットの列内の末端の第１のコンテキストユニットである。例えば、後端の第１のコンテキストユニットは、時間ｔ＝Ｔにおける第１のコンテキストユニットであり、Ｔはシーケンスｈ（ｔ）内の最後の時間ステップである。図９Ｂ及び図９Ｃに示すように、隠れレイヤ９４０の第１のコンテキストユニット９３２Ｔ（例えば、ｈ（Ｔ））は後端の第１のコンテキストユニットである。いくつかの例では、第１のレベルのイベント種類出力９３４（例えば、ｑ）は、以下の式（６）に従って生成される。
ｑ＝Ｇ｛Ｑ・ｈ（Ｔ）｝）                                        （６）
式（６）では、ｈ（Ｔ）は後端の第１のコンテキストユニットを表し、Ｑは、第７の重み付け行列を表し、Ｇは、ソフトマックス活性化関数等の関数を表す。いくつかの実施形態では、第１のレベルのイベント種類出力９３４は、１−ｏｆ−Ｌ符号化を有する。Ｌは、自然言語イベントオントロジ１１００の第１のレベルのイベント種類ノードの数（例えば、４）を表す。
【０２５１】
図１０Ｂ、図１０Ｃ及び図１２Ａを参照すると、第１のレベルイベント種類分類器１２０２は、ネットワークの第１のレベルのイベント種類出力に基づいて、第１のレベルのイベント種類を判定する。説明したように、いくつかの実施形態では、第２のネットワーク１０２０等の双方向ＲＮＮは、第１のレベルのイベント種類を表す第１のレベルのイベント種類出力１０３４（例えば、ｑ）を判定するのに使用される。いくつかの例では、第１のレベルイベント種類分類器１２０２は、第２のネットワーク１０２０を実装するイベント情報検出モジュール８２０の一部である。いくつかの例では、第１のレベルイベント種類分類器１２０２は、イベント情報検出モジュール８２０と別個のものであり、第２のネットワーク１０２０の少なくとも一部を実装する部分である。
【０２５２】
いくつかの実施形態では、第１のレベルのイベント種類出力１０３４を判定するために、第１のレベルイベント種類分類器１２０２は、後端の第１のコンテキストユニットと先頭の第２のコンテキストユニットとを連結し、後端の第１のコンテキストユニットと先頭の第２のコンテキストユニットの連結を重み付けし、連結の重み付けに基づいて第１のレベルのイベント種類出力１０３４を判定する。説明したように、後端の第１のコンテキストユニットは、隠れレイヤの第１のコンテキストユニットの列内の末端のユニットである。図１０Ｂ及び図１０Ｃに示すように、隠れレイヤ１０４０の第１のコンテキストユニット１０４２Ｔ（例えば、ｈ（Ｔ））は後端の第１のコンテキストユニットである。先頭の第２のコンテキストユニットは、隠れレイヤの第２のコンテキストユニットの列内の初めの第２のコンテキストユニットである。例えば、先頭の第２のコンテキストユニットは、時間ｔ＝１における第２のコンテキストユニットであり、それはシーケンスｇ（ｔ）内の最初の時間ステップを表す。図１０Ｂ及び図１０Ｃに示すように、隠れレイヤ１０４０の第２のコンテキストユニット１０４４Ａ（例えば、ｇ（１））は先頭の第２のコンテキストユニットである。図１０Ｂ及び図１０Ｃに示すように、いくつかの例では、第１のレベルのイベント種類出力１０３４（例えば、ｑ）は、以下の式（７）に従って生成される。
ｑ＝Ｇ｛Ｑ・［ｈ（Ｔ）ｇ（１）］）｝                                  （７）
式（７）では、ｈ（Ｔ）は後端の第１のコンテキストユニットを表し、ｇ（１）は先頭の第２のコンテキストユニットを表し、［ｈ（Ｔ）ｇ（１）］は連結関数を表し、Ｑは第８の重み付け行列を表し、Ｇはソフトマックス活性化関数等の関数を表す。いくつかの実施形態では、第１のレベルのイベント種類出力１０３４は、１−ｏｆ−Ｌ符号化を有する。Ｌは、自然言語イベントオントロジ１１００の第１のレベルのイベント種類ノードの数（例えば、４）を表す。
【０２５３】
いくつかの例では、第１のレベルイベント種類分類器１２０２は、第１のレベルのイベント種類出力９３４又は１０３４を用いて、第１のレベルイベント種類を判定する。図１２Ｂに示すように、第１のレベルイベント種類分類器１２０２は、例えば、「ねえ、ディナーにピザは？」を含む構造化されていない自然言語情報を受信する。第１のレベルイベント種類分類器１２０２は、構造化されていない自然言語情報に基づいて第１のレベルのイベント種類出力９３４又は１０３４を判定する。第１のレベルのイベント種類出力９３４又は１０３４に基づいて、第１のレベルイベント種類分類器１２０２は、第１のレベルイベント種類が、例えば、集会であると判定する。
【０２５４】
図１２Ａ及び図１２Ｂを参照すると、いくつかの実施形態では、第２及びそれより高レベルのイベント種類分類器１２０４は、第１のレベルイベント種類分類器１２０２が生成した第１のレベルイベント種類に基づいて構造化されていない自然言語情報に関連付けられたイベント種類を判定する。いくつかの例では、第２及びそれより高レベルのイベント種類分類器１２０４は、それぞれの第２のレベルのイベント種類ノードに対して、第２のレベルのイベント種類ノードと構造化されていない自然言語情報との間の相関の数を判定する。それぞれの第２のレベルのイベント種類ノードの相関の数に基づいて、第２及びそれより高レベルのイベント種類分類器１２０４は、第２のレベルのイベント種類を判定する。
【０２５５】
図１２Ａに示すように、第１のレベルイベント種類分類器１２０２は、第１のレベルイベント種類（例えば、集会）を、第２及びそれより高レベルのイベント種類分類器１２０４に提供する。第１のレベルのイベント種類（例えば、集会）を表す第１のレベルのイベント種類ノードの子ノードであるそれぞれの第２のレベルのイベント種類ノードに対して、第２及びそれより高レベルのイベント種類分類器１２０４は、第２のレベルのイベント種類ノードと構造化されていない自然言語情報との間の相関の数を判定する。例えば、図１１Ａに示すように、第１のレベルのイベント種類ノード１１２２は、食事イベント種類ノード１１４２Ａ、パーティイベント種類ノード１１４２Ｂ、及び飲みイベント種類ノード１１４２Ｃ等の複数の第２のレベルのイベント種類ノードの親ノードである。図１１Ａ及び図１２Ｂに示すように、第２及びそれより高レベルイベント種類分類器１２０４は、食事イベント種類ノード１１４２Ａと構造化されていない自然言語情報（例えば、「ねえ、ディナーにピザは？」）との間の相関の数を判定する。例えば、正規表現パターンを用いて、第２及びそれより高レベルイベント種類分類器１２０４は、構造化されていない自然言語情報内の「ピザ」及び「ディナー」という単語両方が食事イベント種類ノード１１４２Ａに相関することを判定する。結果として、第２及びそれより高レベルのイベント種類分類器１２０４は、図１２Ｂの第２のレベルのイベント種類出力１２４２によって示された、食事イベント種類ノード１１４２Ａに関する相関の数は２であることを判定する。同様に、第２及びそれより高レベルイベント種類分類器１２０４は、構造化されていない自然言語情報とパーティイベント種類ノード１１４２Ｂ又は飲みイベント種類ノード１１４２Ｃとの間に相関がないことを判定する。結果として、第２及びそれより高レベルのイベント種類分類器１２０４は、図１２Ｂの第２のレベルのイベント種類出力１２４４及び１２４６によって示された、パーティイベント種類ノード１１４２Ｂ及び飲みイベント種類ノード１１４２Ｃ両方に対する相関の数はゼロであることを判定する。
【０２５６】
いくつかの実施形態では、第２のレベルのイベント種類を判定するために、第２及びそれより高レベルのイベント種類分類器１２０４は、それぞれの第２のレベルのイベント種類の相関の数に基づいて相関の最大数を判定し、相関の最大数に基づいて第２のレベルのイベント種類を判定する。例えば、図１１Ａ及び図１２Ｂに示すように、それぞれの第２のレベルのイベント種類１１４２Ａ〜Ｃの相関の数を示す第２のレベルのイベント種類出力１２４２、１２４４及び１２４６に基づいて、第２及びそれより高レベルのイベント種類分類器１２０４は、食事イベント種類ノード１１４２Ａと構造化されていない自然言語情報（例えば、「ねえ、ディナーにピザは？」）との間の相関の数である相関の最大数が２であると判定する。したがって、第２のレベルのイベント種類は、図１２Ｂの第２のレベルのイベント種類出力１２４２によって示された、食事であると判定される。
【０２５７】
いくつかの実施形態では、第２及びそれより高レベルイベント種類分類器１２０４は、第２のレベルのイベント種類に基づいて、階層的に、より高レベルのイベント種類を判定する。例えば、図１２Ｂに示すように、第２のレベルのイベント種類の判定に関して説明したものと同様に、第３のレベルのイベント種類出力１２６６は、第３のレベルのイベント種類ノード（例えば、ブランチイベント種類ノード、ランチイベント種類ノード、及びディナーイベント種類ノード）と構造化されていない自然言語情報（例えば、「ねえ、ディナーにピザは？」）との間の最大相関に対応するので、第２及びそれより高レベルのイベント種類分類器１２０４は、第３のレベルのイベント種類出力１２６６によって示された、第３のレベルのイベント種類をディナーであると判定する。
【０２５８】
いくつかの例では、第２及びそれより高レベルのイベント種類分類器１２０４は、リーフノードが達するまで、かつ／又はそれぞれのより高レベルのイベント種類ノードの相関の数がゼロになるまで、階層的に、より高レベルイベント種類を判定する。例えば、図１２Ｂに示すように、第４のレベルのイベント種類出力１２８２、１２８４及び１２８６は、自然言語イベントオントロジ１１００内のリーフノードに対応する。結果として、第２及びそれより高レベルのイベント種類分類器１２０４は第４のレベルを超えたより高レベルのイベント種類の判定を停止する。別の例としては、構造化されていない自然言語情報と第４のレベルのイベント種類ノード（例えば、チームディナーイベント種類ノード、誕生日ディナーイベント種類ノード、及び家族ディナーイベント種類ノード）との間には相関はないので、第２及びそれより高レベルのイベント種類分類器１２０４は、第４のレベルを超えてより高レベルのイベント種類の判定を停止する。
【０２５９】
いくつかの実施形態では、第２及びそれより高レベルのイベント種類分類器１２０４は、第２のレベルイベント種類又はより高レベルのイベント種類に基づいて構造化されていない自然言語情報に関連付けられたイベント種類を判定する。図１２Ｂに示すように、第２のレベルのイベント種類はディナーであり、より高レベルのイベント種類は存在しない。結果として、第２及びそれより高レベルのイベント種類分類器１２０４は、構造化されていない自然言語情報に関連付けられたイベント種類がディナーであると判定する。
【０２６０】
図１２Ｃを参照すると、いくつかの実施形態では、第２及びそれより高レベルのイベント種類分類器１２０４は、少なくとも２つの第２のレベルのイベント種類ノードが、相関の最大数に対応するか否かを更に判定する。少なくとも２つの第２のレベルのイベント種類ノードが、相関の最大数に対応するとの判定に従って、第２及びそれより高レベルのイベント種類分類器１２０４は、１つ以上の優先規則に基づいて第２のレベルのイベント種類を判定する。例えば、図１２Ｃに示すように、第１のレベルイベント種類分類器１２０２は、「ねえ、午後７時にピザと飲みは？」等の構造化されていない自然言語情報を受信する。第１のレベルイベント種類分類器１２０２は、第１のレベルイベント種類が、第１のレベルのイベント種類出力１２２２によって示された、例えば、集会であると判定する。第２及びそれより高レベルのイベント種類分類器１２０４は、第２のレベルで、食事イベント種類ノード及び飲みイベント種類ノード両方の相関の数が１であり、パーティイベント種類ノードの相関の数が０であると判定する。結果として、第２及びそれより高レベルのイベント種類分類器１２０４は、相関の最大数は１であると判定し、少なくとも２つの第２のレベルのイベント種類ノードは相関の最大数に対応すると判定する。
【０２６１】
図１２Ｃに示すように、少なくとも２つの第２のレベルのイベント種類ノードが、相関の最大数に対応するとの判定に従って、第２及びそれより高レベルのイベント種類分類器１２０４は、１つ以上の優先規則に基づいて第２のレベルのイベント種類を判定する。図１１Ａ及び図１２Ｃに示すように、いくつかの例では、食事イベント種類ノード１１４２Ａ及び飲みイベント種類ノード１１４２Ｃは、接続１１４３Ｂによって表された優先規則に関連付けられている。そして、接続１１４３Ｂの方向は、飲みイベント種類ノード１１４２Ｃから食事イベント種類ノード１１４２Ａまでであり、食事イベント種類ノード１１４２Ａが飲みイベント種類ノード１１４２Ｃより優先度が高いことを示す。それに対応して、第２及びそれより高レベルのイベント種類分類器１２０４は、食事イベント種類出力１２４２が飲みイベント種類出力１２４４より優先度が高いことを判定する。このため、第２のレベルのイベント種類は、第２のレベルのイベント種類出力１２４２によって示された、食事である。
【０２６２】
図１２Ａ及び図１２Ｃに示すように、いくつかの実施形態では、イベント種類調整器１２０６は、構造化されていない自然言語情報の１つ以上のトークンに基づいて、第１のレベルのイベント種類、第２のレベルのイベント種類、及びそれより高レベルのイベント種類のうちの少なくとも１つの判定を調整する。説明したように、１つ以上のトークンは、「ねえ、午後７時にピザと飲みは？」等の構造化されていない自然言語情報に基づいて生成され得る。いくつかの例では、トークンが、「午後７時」の時間情報を表すように生成される。このようなトークンに基づいて、イベント種類調整器１２０６は、第３のレベルのイベント種類の判定を調整する。例えば、上記したものと同様に、図１２Ｃに示すように、第１のレベルイベント種類分類器１２０２は、第１のレベルのイベント種類が集会であると判定する。第２及びそれより高レベルのイベント種類分類器１２０４は、第２のレベルのイベント種類は食事であると判定する。第３のレベルのイベント種類を階層的に判定する代わりに、イベント種類調整器１２０６は、「午後７時」の時間情報を表すトークンを用いて第３のレベルのイベント種類の判定を調整する。例えば、イベント種類調整器１２０６は、午後７時に開始する食事はおそらくディナーであると判定する。結果として、イベント種類調整器１２０６は、図１２Ｃの第３のレベルのイベント種類出力１２６６に示されるように、第３のレベルのイベント種類がディナーであると判定する。
【０２６３】
図８に戻って参照すると、いくつかの実施形態では、イベント説明生成モジュール８８０は、イベント種類判定モジュール８６０が判定したイベント種類に基づいてイベント説明を提供する。例えば、イベント説明生成モジュール８８０は、イベントタイトル、イベントの開始時間、イベントの終了時間、イベントの持続時間、イベントの場所、イベントの参加者等を提供する。イベントタイトルは、対応するイベント種類ノードのテーマを含む。例えば、イベントタイトルは、「ディナー」、「コーヒー」、「ランチ」等を含んでもよい。
【０２６４】
いくつかの実施形態では、イベント説明生成モジュール８８０は、コンテキスト情報に基づいてイベント説明を提供する。いくつかの例では、コンテキスト情報は、場所データ、日付及び時間情報、ユーザのプリファレンス、ユーザの履歴データ、及び／又はイベント別データ等のユーザ別データを含む。例としては、ユーザのＧＰＳの場所データは、そのユーザが米国に位置することを示している。平均して、米国での飲みイベントの開始時間は午後６時開始であり、飲みイベントの持続時間は約２時間である。結果として、本例では、イベント説明は、イベントのタイトルは飲みであり、イベントの開始時間は午後６時であり、イベントの持続時間は２時間であることを示している。別の例としては、イベント種類判定モジュール８６０はイベント種類がブランチであると判定し、コンテキスト情報はイベント日時が母の日であることを示す。したがって、イベント説明生成モジュール８８０は、イベントタイトルを「母の日ブランチ」として提供する。別の例としては、イベント種類判定モジュール８６０は、イベント種類がディナーであると判定する。また、コンテキスト情報は、ユーザの場所がスペインであることを示し、スペインのディナーは通常、午後７時に開始することを示している。したがって、イベント説明生成モジュール８８０は、ディナーの開始時間が午後７時となるように提供する。
【０２６５】
図８及び図１３を参照すると、いくつかの実施形態では、デジタルアシスタント８００は、イベント説明を用いて、プロセス（例えば、カレンダープロセス）をインスタンス生成する。プロセスをインスタンス生成することは、プロセスがまだ稼働していない場合、プロセスを呼び出すことを含む。プロセスの少なくとも１つのインスタンスが稼働している場合、プロセスをインスタンス生成することは、プロセスの既存のインスタンスを実行するか、又はプロセスの新しいインスタンスを生成することを含む。例えば、図１３に示すように、デジタルアシスタント８００は、カレンダープロセス１３０２を呼び出し、イベント説明に基づいてカレンダーエントリ１３０４を生成すると共に、カレンダーエントリ１３０４を表示する。例えば、カレンダーエントリ１３０４は、イベントのタイトル１３０８（例えば、飲み）、イベントの日付１３０９（例えば、３月１１日金曜日）、イベントの開始時間１３１０（例えば、午後６時）、及びイベントの終了時間１３１１（例えば、午後８時）を提供する。
【０２６６】
いくつかの実施形態では、カレンダーエントリ１３０４は、１つ以上のアフォーダンス１３１２及び１３１４を更に提供する。１つ以上のアフォーダンスは、カレンダーエントリ１３０４に関する１つ以上のユーザ入力の受け付けを可能にする。例えば、ユーザはアフォーダンス１３１２を選択し、カレンダーエントリ１３０４をユーザのカレンダーに追加してもよい。カレンダープロセスは、カレンダーエントリを確認及び追加するためのアフォーダンス１３１２のユーザ選択を受け取る。アフォーダンス１３１２のユーザ選択の受け取りに応じて、カレンダープロセス１３０２は、カレンダーエントリをユーザのカレンダーに追加する。
【０２６７】
いくつかの実施形態では、ユーザは、カレンダーエントリ１３０４を編集することを望む場合がある。例えば、カレンダーエントリ１３０４は、タイトル１３０８、日付１３０９、開始時間１３１０、終了時間１３１１等のカレンダー項目に関して編集可能である。ユーザは、入力装置（例えば、マウス、ジョイスティック、指、キーボード、スタイラス等）を使用して、カレンダー項目を編集することができる。カレンダーエントリ１３０４を編集する１つ以上のユーザ入力の受け付け後、カレンダープロセス１３０２は、編集されたカレンダーエントリをユーザのカレンダーに追加する。
【０２６８】
いくつかの実施形態では、ユーザは、カレンダーエントリを拒否したい場合がある。例えば、ユーザは、アフォーダンス１３１４を選択し、カレンダーエントリ１３０４を取消しすることができる。アフォーダンス１３１４のユーザ選択の受け取りに応じて、カレンダープロセス１３０２は、カレンダーエントリ１３０４を取消しする。いくつかの例では、デジタルアシスタントは、イベント説明を更に明確にするためにユーザとのダイアログを開始する。
【０２６９】
いくつかの実施形態では、カレンダープロセス１３０２は、イベント説明に基づいてカレンダーエントリ１３０４を生成し、自動的にカレンダーエントリ１３０４をユーザのカレンダーに追加する。例えば、デジタルアシスタント８００は、イベント情報検出、イベント同意検出、イベント種類判定、イベント説明生成又はそれらの組み合わせに関連付けられた信頼水準を判定する。デジタルアシスタント８００は、信頼水準が閾値を満たすと更に判定するので、自動的にカレンダーエントリ１３０４をユーザのカレンダーに追加する。
【０２７０】
いくつかの実施形態では、デジタルアシスタント８００は、イベント説明に基づいて、予約要求を更に生成する。例えば、イベント説明は、そのイベントがユーザの現在位置とは異なる場所での結婚式であることを示す。イベント説明に基づいて、デジタルアシスタント８００は、イベント説明に示された日付及び時間での結婚式の場所への便を予約する要求を生成する。イベント説明は、メッセージアプリケーション、電子メールアプリケーション、ソーシャルメディアアプリケーション等のあらゆる所望のアプリケーションに提供され得ることが理解される。
５．イベントの説明を提供するプロセス
【０２７１】
図１４Ａ〜Ｊは、いくつかの実施形態に係る、デジタルアシスタントを動作させる例示的なプロセス１４００のフロー図を示す。プロセス１４００は、１つ以上のデバイス１０４、１０８、２００、４００又は６００（図１、図２Ａ、図４又は図６Ａ〜Ｂ）を用いて実行され得る。プロセス１４００の動作は任意選択的に、組み合わされ、若しくは分割され、かつ／又は一部の動作の順序は任意選択的に変えられる。
【０２７２】
図１４Ａを参照すると、ブロック１４０２では、構造化されていない自然言語情報が少なくとも１人のユーザから受信される。ブロック１４０３では、構造化されていない自然言語情報はメッセージを含む。ブロック１４０４では、少なくとも１つのメッセージはテキストメッセージを含む。ブロック１４０５では、少なくとも１つのメッセージは発語入力を含む。ブロック１４０６では、構造化されていない自然言語情報は複数のメッセージを含む。ブロック１４０７では、構造化されていない自然言語情報は少なくとも１つの電子メールメッセージを含む。
【０２７３】
ブロック１４１０では、構造化されていない自然言語情報の受信に応じて、例えば、図８、図９Ａ〜図９Ｃ及び図１０Ａ〜図１０Ｃを参照して上記したように、イベント情報が構造化されていない自然言語情報内に存在するか否かが判定される。ブロック１４１１では、構造化されていない自然言語情報に関連付けられた１つ以上のポラリティが判定される。ブロック１４１２では、入力レイヤは、構造化されていない自然言語情報に基づいて生成される。入力レイヤは、複数の入力ユニット、及び複数の先行する第１のコンテキストユニットを含む。ブロック１４１３では、単語列は、構造化されていない自然言語情報に基づいて取得される。ブロック１４１４では、単語列は、単語列内の単語の相対的なタイミング関係を示す。
【０２７４】
図１４Ｂを参照すると、ブロック１４１６では、複数のトークンが構造化されていない自然言語情報に基づいて取得される。ブロック１４１７では、複数のトークンは、構造化されていない自然言語情報に含まれる日付及び時間情報を表す。ブロック１４１８では、複数のトークンは、名付けられたエンティティ語彙に基づいて認識されたエンティティを表す。
【０２７５】
ブロック１４２０では、入力レイヤは、単語列及び複数のトークンのうちの少なくとも１つを用いて生成される。ブロック１４２１では、入力レイヤは複数の入力ユニットを含む。入力ユニットのそれぞれは、単語又はトークンを表す。ブロック１４２２では、入力ユニットのそれぞれは１−ｏｆ−Ｎ符号化を有する。Ｎは、語彙内の単語及びトークンの総数を表す。語彙は、イベント情報が構造化されていない自然言語情報内に存在するか否かを判定するように構成されている。
【０２７６】
ブロック１４２４では、隠れレイヤは、入力レイヤに基づいて生成される。隠れレイヤは、複数の現在の第１のコンテキストユニットを含む。ブロック１４２５では、現在の入力ユニットは、第１の重み行列を用いて重み付けされる。ブロック１４２６では、先行する第１のコンテキストユニットは、第２の重み行列を用いて重み付けされる。
【０２７７】
図１４Ｃを参照すると、ブロック１４２８では、現在の第１のコンテキストユニットは、例えば、図８、図９Ａ〜図９Ｃ及び図１０Ａ〜図１０Ｃを参照して上記したように現在の入力ユニットの重み付け及び先行する第１のコンテキストユニットの重み付けに基づいて判定される。ブロック１４２９では、現在の第１のコンテキストユニットの判定は、活性化関数を適用することを含む。ブロック１４３０では、活性化関数はシグモイドを含む。ブロック１４３１では、活性化関数は双曲線正接を含む。ブロック１４３２では、活性化関数は整流線形ユニットを含む。
【０２７８】
ブロック１４３４では、隠れレイヤは複数の第２のコンテキストユニットを更に含む。ブロック１４３５では、現在の入力ユニットは、第３の重み行列を用いて重み付けされる。ブロック１４３６では、後続する第２のコンテキストユニットは、第４の重み行列を用いて重み付けされる。ブロック１４３７では、現在の第２のコンテキストユニットは、例えば、図８及び図１０Ａ〜図１０Ｃを参照して上記したように現在の入力ユニットの重み付け及び後続する第２のコンテキストユニットの重み付けに基づいて判定される。ブロック１４３８では、現在の第２のコンテキストユニットの判定は、活性化関数を適用することを含む。
【０２７９】
ブロック１４４０では、出力レイヤは、隠れレイヤに基づいて生成される。出力レイヤは、構造化されていない自然言語情報の少なくとも一部分の１つ以上のポラリティを表す１つ以上の出力ラベルユニットを含む。
【０２８０】
図１４Ｄを参照すると、ブロック１４４２では、出力レイヤは複数の出力ラベルユニットを含む。各出力ラベルユニットは１−ｏｆ−Ｋ符号化を有し、Ｋは予め判定されたポラリティセットのポラリティの数を表す。ブロック１４４３では、予め判定されたポラリティセットは、提案、拒絶、受諾、及びイベント無しを含む。
【０２８１】
ブロック１４４４では、現在の第１のコンテキストユニットは、第５の重み行列を用いて重み付けされる。ブロック１４４６では、現在の出力ラベルユニットは、例えば、図８、図９Ａ〜図９Ｃ及び図１０Ａ〜図１０Ｃを参照して上記したように、現在の第１のコンテキストユニットの重み付けに基づいて判定される。ブロック１４４７では、現在の出力ラベルユニットを判定することは、ソフトマックス活性化関数を適用することを含む。
【０２８２】
ブロック１４４８では、現在の状態は、現在の第１のコンテキストユニット及び現在の第２のコンテキストユニットに基づいて取得される。ブロック１４４９では、現在の状態は、第６の重み行列を用いて重み付けされる。ブロック１４５０では、現在の出力ラベルユニットは、例えば、図８、図９Ａ〜図９Ｃ及び図１０Ａ〜図１０Ｃを参照して上記したように、現在の状態の重み付けに基づいて判定される。ブロック１４５１では、現在の出力ラベルユニットを判定することは、ソフトマックス活性化関数を適用することを含む。
【０２８３】
ブロック１４５４では、例えば、図８、図９Ａ〜図９Ｃ及び図１０Ａ〜図１０Ｃを参照して上記したように、イベント情報が存在する否かについて、１つ以上のポラリティに基づいて判定される。
【０２８４】
図１４Ｅを参照すると、イベント情報が存在するか否かを判定するために、ブロック１４５５では、１つ以上のポラリティが提案、拒絶、又は受諾のうちの少なくとも１つを含むか否かが判定される。ブロック１４５６では、１つ以上のポラリティが提案、拒絶又は受諾のうちの少なくとも１つを含むとの判定に従って、提案、拒絶、又は受諾のうちの少なくとも１つに関連付けられた確率が判定される。ブロック１４５７では、その確率が第１の確率閾値を満たすか否かが判定される。ブロック１４５８では、その確率が第１の確率閾値を満たすという判定に従って、イベント情報が構造化されていない自然言語情報内に存在することが判定される。
【０２８５】
ブロック１４６０では、イベント情報が構造化されていない自然言語情報内に存在しているという判定に従って、例えば、図８、図９Ａ〜図９Ｃ、及び図１０Ａ〜図１０Ｃを参照して上記したように、イベントへの同意が構造化されていない自然言語情報内に存在するか否かが判定される。イベントへの同意が存在するか否かを判定するために、ブロック１４６１では、１つ以上のポラリティが受諾を含むか否かが判定される。ブロック１４６２では、その１つ以上のポラリティが受諾を含むとの判定に従って、受諾に関連付けられた確率が判定される。ブロック１４６３では、その確率が第２の確率閾値を満たすか否かが判定される。ブロック１４６４では、確率が第２の確率閾値を満たすという判定に従って、イベントへの同意が存在することが判定される。
【０２８６】
図１４Ｆを参照すると、ブロック１４６６では、イベントへの同意が存在しているという判定に従って、例えば、図８、図９Ａ〜図９Ｃ、図１０Ａ〜図１０Ｃ、図１１Ａ〜図１１Ｈ及び図１２Ａ〜図１２Ｃを参照して上記したように、イベント種類が判定される。ブロック１４６７では、イベント種類の判定は、自然言語イベントオントロジを用いた階層分類に基づくものである。ブロック１４６８では、自然言語イベントオントロジは１つ以上のレベルを含み、各レベルは、１つ以上のイベント種類ノードを含む。ブロック１４６９では、自然言語イベントオントロジの第１のレベルは、集会イベント種類ノード、娯楽イベント種類ノード、予定イベント種類ノード、及び手配イベント種類ノードを含む。ブロック１４７０では、自然言語イベントオントロジは第１のレベル及び第２のレベルを含み、第１のレベルのイベント種類ノードは階層的に、１つ以上の第２のレベルのイベント種類ノードに関係する。ブロック１４７１では、少なくとも１つのイベント種類ノードは、優先規則に関連付けられている。優先規則は、あるイベント種類ノードの、別のイベント種類ノードに対する相対的な優先度を示す。ブロック１４７２では、第２又はより高レベルの自然言語イベントオントロジのうちの少なくとも１つイベント種類ノードはリーフノードである。リーフノードは、階層的に子ノードに関係しない。
【０２８７】
ブロック１４７４では、そのイベントに関連付けられた第１のレベルのイベント種類は、例えば、図８、図９Ａ〜図９Ｃ、図１０Ａ〜図１０Ｃ、及び図１２Ａ〜図１２Ｃを参照して上記したように、判定される。ブロック１４７５では、出力レイヤの第１のレベルのイベント種類出力が判定される。第１のレベルのイベント種類出力は１−ｏｆ−Ｌ符号化を有し、Ｌは自然言語イベントオントロジの第１のレベルのイベント種類ノードの数を表す。ブロック１４７６では、隠れレイヤの後端の第１のコンテキストユニットが重み付けされる。ブロック１４７７では、第１のレベルのイベント種類出力は、後端の第１のコンテキストユニットの重み付けに基づいて判定される。
【０２８８】
図１４Ｇを参照すると、ブロック１４７８では、後端の第１のコンテキストユニット及び先頭の第２のコンテキストユニットが連結される。ブロック１４７９では、後端の第１のコンテキストユニットと先頭の第２のコンテキストユニットの連結が重み付けされる。ブロック１４８０では、第１のレベルのイベント種類出力は、後端の第１のコンテキストユニットと先頭の第２のコンテキストユニットの連結の重み付けに基づいて判定される。ブロック１４８１では、第１のレベルのイベント種類出力を判定することは、活性化関数を適用することを含む。
【０２８９】
ブロック１４８４では、例えば、図８、図１１Ａ〜図１１Ｈ及び図１２Ａ〜図１２Ｃを参照して上記したように、イベントのイベント種類が、第１のレベルのイベント種類に基づいて判定される。ブロック１４８６では、それぞれの第２のレベルのイベント種類ノードに対して、第２のレベルのイベント種類ノードと構造化されていない自然言語情報との間の相関の数が判定される。第２のレベルのイベント種類ノードはそれぞれ、第１のレベルのイベント種類を表す第１のレベルのイベント種類ノードの子ノードである。ブロック１４８８では、第２のレベルのイベント種類は、それぞれの第２のレベルのイベント種類ノードの相関の数に基づいて判定される。ブロック１４９０では、それぞれの第２のレベルのイベント種類ノードの相関の数に基づいて、相関の最大数が判定される。ブロック１４９２では、第２のレベルのイベント種類が相関の最大数に基づいて判定される。
【０２９０】
図１４Ｈを参照すると、ブロック１４９３では、例えば、図８、図１１Ａ〜図１１Ｈ及び図１２Ａ〜図１２Ｃを参照して上記したように、少なくとも２つの第２のレベルのイベント種類ノードが、相関の最大数に対応するか否かが判定される。ブロック１４９４では、少なくとも２つの第２のレベルのイベント種類ノードが、相関の最大数に対応するとの判定に従って、１つ以上の優先規則に基づいて第２のレベルのイベント種類が判定される。
【０２９１】
ブロック１４９６では、例えば、図８、図１１Ａ〜図１１Ｈ及び図１２Ａ〜図１２Ｃを参照して上記したように、より高レベルのイベント種類が、第２のレベルのイベント種類に基づいて階層的に判定される。ブロック１４９８では、階層的判定は、リーフノードに達するまで継続する。リーフノードは、階層的に子ノードに接続されない。ブロック１５００では、階層的判定は、それぞれのより高レベルのイベント種類ノードの相関の数がゼロになるまで継続する。ブロック１５０２では、イベントのイベント種類は、第２のレベルのイベント種類又はより高レベルのイベント種類に基づいて判定される。ブロック１５０４では、構造化されていない自然言語情報の１つ以上のトークンに基づいて、第１のレベルのイベント種類、第２のレベルのイベント種類、及びそれより高レベルのイベント種類のうちの少なくとも１つの判定が調整される。
【０２９２】
ブロック１５０５では、イベント説明は、イベント種類に基づいて提供される。ブロック１５０６では、イベントタイトルが提供される。イベントタイトルは、対応するイベント種類ノードのテーマを含む。
【０２９３】
図１４Ｉを参照すると、ブロック１５０８では、イベントの開始時間が提供される。ブロック１５１０では、イベントの終了時間が提供される。ブロック１５１２では、イベントの持続時間が提供される。ブロック１５１４では、イベントのイベント説明は、コンテキスト情報に基づいて提供される。ブロック１５１６では、コンテキスト情報は、場所、日付、時間又は１つ以上のユーザプリファレンスのうちの少なくとも１つを含む。
【０２９４】
ブロック１５１８では、カレンダーエントリは、イベント種類に基づいて生成される。ブロック１５２０では、カレンダーエントリが表示される。ブロック１５２２では、１つ以上のアフォーダンスが提供される。１つ以上のアフォーダンスは、カレンダーエントリに関する１つ以上のユーザ入力の受け付けを可能にする。
【０２９５】
ブロック１５２４では、カレンダーエントリを確認する１つ以上のユーザ入力が受信される。ブロック１５２６では、カレンダーエントリはユーザのカレンダーに追加される。
【０２９６】
図１４Ｊを参照すると、ブロック１５２８では、カレンダーエントリを編集する１つ以上のユーザ入力が受信される。ブロック１５３０では、編集されたカレンダーエントリがユーザのカレンダーに追加される。ブロック１５３２では、カレンダーエントリを拒否する１つ以上のユーザ入力が受信される。ブロック１５３４では、ダイアログがユーザと開始される。
【０２９７】
ブロック１５３６では、カレンダーエントリは、イベント説明に基づいて生成される。ブロック１５３８では、カレンダーエントリは自動的にユーザのカレンダーに追加される。ブロック１５４０では、予約要求は、イベント説明に基づいて生成される。ブロック１５４２では、イベント説明は、１つ以上のアプリケーションに提供される。
６．電子デバイス
【０２９８】
図１５は、図８、図９Ａ〜図１０Ｃ、図１０Ａ〜図１０Ｃ、図１１Ａ〜図１１Ｈ、図１２Ａ〜図１２Ｃ、図１３、及び図１４Ａ〜図１４Ｊを参照して上記したものを含む、様々な上記実施例の原理に従って構成された電子デバイス１６００の機能ブロック図を示す。デバイスの機能ブロックは、説明した種々の実施例の原理を実行するために、任意選択的に、ハードウェア、ソフトウェア、又はハードウェア及びソフトウェアの組み合わせによって実施することができる。当業者には、説明した種々の実施例の原理を実装するために、図１５で説明する機能ブロックを、任意選択的に組み合わせる、又はサブブロックに分離することできることが理解される。したがって、本明細書における説明は、本明細書で説明されている機能ブロックの任意の可能な組み合わせ、分離、又は更なる定義を任意選択的にサポートする。
【０２９９】
図１５に示すように、電子デバイス１６００はマイクロフォン１６０２及び処理ユニット１６０８を含むことができる。いくつかの例では、処理ユニット１６０８は、受信ユニット１６１０、判定ユニット１６１２、提供ユニット１６１４、生成ユニット１６１６、重み付けユニット１６１８、適用ユニット１６２０、取得ユニット１６２２、連結ユニット１６２４、調整ユニット１６２６、表示ユニット１６２８、追加ユニット１６３０、開始ユニット１６３２を含む。
【０３００】
処理ユニット１６０８は、少なくとも１人のユーザから、構造化されていない自然言語情報を（例えば、受信ユニット１６１０により）受信するように構成されている。構造化されていない自然言語情報の受信に応じて、処理ユニット１６０８は、（例えば、判定ユニット１６１２により）イベント情報が構造化されていない自然言語情報内に存在するか否かを判定するように更に構成されている。イベント情報が構造化されていない自然言語情報内に存在するとの判定に従って、処理ユニット１６０８は、（例えば、判定ユニット１６１２により）イベントへの同意が構造化されていない自然言語情報内に存在するか否かを判定するように更に構成されている。イベントへの同意が存在しているとの判定に従って、処理ユニット１６０８は、（例えば、判定ユニット１６１２により）イベントのイベント種類を判定するように更に構成されている。処理ユニット１６０８は、イベント種類に基づいて、（例えば、提供ユニット１６１４を用いて）イベント説明を提供するように更に構成されている。
【０３０１】
いくつかの例では、構造化されていない自然言語情報はメッセージを含む。
【０３０２】
いくつかの例では、少なくとも１つのメッセージはテキストメッセージを含む。
【０３０３】
いくつかの例では、少なくとも１つのメッセージは発語入力を含む。
【０３０４】
いくつかの例では、構造化されていない自然言語情報は複数のメッセージを含む。
【０３０５】
いくつかの例では、構造化されていない自然言語情報は少なくとも１つの電子メールメッセージを含む。
【０３０６】
いくつかの例では、イベント情報が構造化されていない自然言語情報内に存在するか否かを判定することは、構造化されていない自然言語情報に関連付けられた１つ以上のポラリティを（例えば、判定ユニット１６１２を用いて）判定することと、（例えば、判定ユニット１６１２を用いて）１つ以上のポラリティを基づいてイベント情報が存在するか否かを判定することと、を含む。
【０３０７】
いくつかの例では、構造化されていない自然言語情報に関連付けられた１つ以上のポラリティを判定することは、（例えば、生成ユニット１６１６を用いて）構造化されていない自然言語情報に基づいて入力レイヤを生成することを含む。入力レイヤは、複数の入力ユニット、及び複数の先行する第１のコンテキストユニットを含む。構造化されていない自然言語情報に関連付けられた１つ以上のポラリティを判定することは、（例えば、生成ユニット１６１６を用いて）入力レイヤに基づいて隠れレイヤを生成することを更に含む。隠れレイヤは、複数の現在の第１のコンテキストユニットを含む。構造化されていない自然言語情報に関連付けられた１つ以上のポラリティを判定することは、（例えば、生成ユニット１６１６を用いて）隠れレイヤに基づいて出力レイヤを生成することを更に含む。出力レイヤは、構造化されていない自然言語情報の少なくとも一部分の１つ以上のポラリティを表す１つ以上の出力ラベルユニットを含む。
【０３０８】
いくつかの例では、構造化されていない自然言語情報に基づいて入力レイヤを生成することは、（例えば、取得ユニット１６２２を用いて）構造化されていない自然言語情報に基づいて単語列を取得することと、（例えば、取得ユニット１６２２を用いて）構造化されていない自然言語情報に基づいて複数のトークンを取得することと、（例えば、生成ユニット１６１６を用いて）単語列及び複数のトークンのうちの少なくとも１つを用いて入力レイヤを生成することと、を含む。
【０３０９】
いくつかの例では、単語列は、単語列内の単語の相対的なタイミング関係を示す。
【０３１０】
いくつかの例では、複数のトークンは、構造化されていない自然言語情報に含まれる日付及び時間情報を表す。
【０３１１】
いくつかの例では、複数のトークンは、名付けられたエンティティ語彙に基づいて認識されたエンティティを表す。
【０３１２】
いくつかの例では、入力レイヤは複数の入力ユニットを含む。入力ユニットのそれぞれは、単語又はトークンを表す。
【０３１３】
いくつかの例では、入力ユニットのそれぞれは１−ｏｆ−Ｎ符号化を有する。Ｎは、語彙内の単語及びトークンの総数を表す。語彙は、（例えば判定ユニット１６１２を用いて）イベント情報が構造化されていない自然言語情報内に存在するか否かを判定するように構成されている。
【０３１４】
いくつかの例では、入力レイヤに基づいて隠れレイヤを生成することは、（例えば、重み付けユニット１６１８により）第１の重み行列を用いて現在の入力ユニット重み付けすることと、（例えば、重み付けユニット１６１８により）第２の重み行列を用いて先行する第１のコンテキストユニットを重み付けすることと、（例えば、判定ユニット１６１２により）現在の入力ユニットの重み付け及び先行する第１のコンテキストユニットの重み付けに基づいて、現在の第１のコンテキストユニットを判定することと、を含む。
【０３１５】
いくつかの例では、現在の第１のコンテキストユニットの判定は、活性化関数を適用することを含む。
【０３１６】
いくつかの例では、活性化関数はシグモイドを含む。
【０３１７】
いくつかの例では、活性化関数は双曲線正接を含む。
【０３１８】
いくつかの例では、活性化関数は整流線形ユニットを含む。
【０３１９】
いくつかの例では、隠れレイヤは複数の第２のコンテキストユニットを更に含む。
【０３２０】
いくつかの例では、入力レイヤに基づいて隠れレイヤを生成することは、（例えば、重み付けユニット１６１８により）第３の重み行列を用いて現在の入力ユニット重み付けすることと、（例えば、重み付けユニット１６１８により）第４の重み行列を用いて後続する第２のコンテキストユニットを重み付けすることと、（例えば、判定ユニット１６１２により）現在の入力ユニットの重み付け及び後続する第２のコンテキストユニットの重み付けに基づいて、現在の第２のコンテキストユニットを判定することと、を含む。
【０３２１】
いくつかの例では、現在の第２のコンテキストユニットの判定は、（例えば、適用ユニット１６２０を用いて）活性化関数を適用することを含む。
【０３２２】
いくつかの例では、出力レイヤは複数の出力ラベルユニットを含む。各出力ラベルユニットは、１−ｏｆ−Ｋ符号化を有する。Ｋは、予め判定されたポラリティセットのポラリティの数を表す。
【０３２３】
いくつかの例では、予め判定されたポラリティセットは、提案、拒絶、受諾、及びイベント無しを含む。
【０３２４】
いくつかの例では、隠れレイヤに基づいて出力レイヤを生成することは、（例えば、重み付けユニット１６１８により）現在の第１のコンテキストユニットを第５の重み行列を用いて重み付けすることと、（例えば、判定ユニット１６１２により）現在の出力ラベルユニットを、現在の第１のコンテキストユニットの重み付けに基づいて判定することと、を含む。
【０３２５】
いくつかの例では、現在の出力ラベルユニットを判定することは、（例えば、適用ユニット１６２０を用いて）ソフトマックス活性化関数を適用することを含む。
【０３２６】
いくつかの例では、隠れレイヤに基づいて出力レイヤを生成することは更に、（例えば、取得ユニット１６２２により）現在の第１のコンテキストユニット及び現在の第２のコンテキストユニットに基づいて、現在の状態を取得することと、（例えば、重み付けユニット１６１８により）第６の重み行列を用いて現在の状態を重み付けすることと、（例えば、判定ユニット１６１２により）現在の状態の重み付けに基づいて現在の出力ラベルユニットを判定することと、を含む。
【０３２７】
いくつかの例では、現在の出力ラベルユニットを判定することは、（例えば、適用ユニット１６２０を用いて）ソフトマックス活性化関数を適用することを含む。
【０３２８】
いくつかの例では、イベント情報が存在するか否かを１つ以上のポラリティに基づいて判定することは、（例えば、判定ユニット１６１２により）１つ以上のポラリティが提案、拒絶又は受諾のうちの少なくとも１つを含むか否かを判定することを含む。１つ以上のポラリティに基づいてイベント情報が存在するか否かを判定することは、１つ以上のポラリティが提案、拒絶又は受諾のうちの少なくとも１つを含むとの判定に従って、提案、拒絶、又は受諾のうちの少なくとも１つに関連付けられた確率を（例えば、判定ユニット１６１２により）判定することと、その確率が第１の確率閾値を満たすか否かを（例えば、判定ユニット１６１２により）判定することと、を更に含む。１つ以上のポラリティに基づいてイベント情報が存在するか否かを判定することは、更に、その確率が第１の確率閾値を満たすという判定に従って、イベント情報が構造化されていない自然言語情報内に存在することを（例えば、判定ユニット１６１２により）判定することを含む。
【０３２９】
いくつかの例では、イベント情報が構造化されていない自然言語情報内に存在しているとの判定に従って、イベントへの同意が構造化されていない自然言語情報内に存在するか否かを判定することは、１つ以上のポラリティが受諾を含むか否かを（例えば、判定ユニット１６１２により）判定することと、１つ以上のポラリティが受諾を含むとの判定に従って、受諾に関連付けられた確率を（例えば、判定ユニット１６１２により）判定することと、その確率が第２の確率閾値を満たすか否かを（例えば、判定ユニット１６１２により）判定することと、確率が第２の確率閾値を満たすとの判定に従って、イベントへの同意が存在することを（例えば、判定ユニット１６１２により）判定することと、を含む。
【０３３０】
いくつかの例では、イベント種類を判定することは、自然言語イベントオントロジを用いた階層分類に基づくものである。
【０３３１】
いくつかの例では、自然言語イベントオントロジは、１つ以上のレベルを含む。各レベルは１つ以上のイベント種類ノードを含む。
【０３３２】
いくつかの例では、自然言語イベントオントロジの第１のレベルは、集会イベント種類ノード、娯楽イベント種類ノード、予定イベント種類ノード、及び手配イベント種類ノードを含む。
【０３３３】
いくつかの例では、自然言語イベントオントロジは、第１のレベルと第２のレベルを含む。第１のレベルのイベント種類ノードは、階層的に、１つ以上の第２のレベルのイベント種類ノードに関係する。
【０３３４】
いくつかの例では、少なくとも１つのイベント種類ノードは、優先規則に関連付けられている。優先規則は、少なくとも１つのイベント種類ノードの、別のイベント種類ノードに対する相対的な優先度を示す。
【０３３５】
いくつかの例では、自然言語イベントオントロジの第２又はより高レベルのうちの少なくとも１つイベント種類ノードはリーフノードである。リーフノードは、階層的に子ノードに関係しない。
【０３３６】
いくつかの例では、イベントのイベント種類を判定することは、イベントに関連付けられた第１のレベルのイベント種類を（例えば、判定ユニット１６１２により）判定することと、第１のレベルのイベント種類に基づいてイベントのイベント種類を（例えば、判定ユニット１６１２により）判定することと、を含む。
【０３３７】
いくつかの例では、第１のレベルのイベント種類を判定することは、出力レイヤの第１のレベルのイベント種類出力を（例えば、判定ユニット１６１２により）判定することを含む。第１のレベルのイベント種類出力は、１−ｏｆ−Ｌ符号化を有する。Ｌは、自然言語イベントオントロジの第１のレベルのイベント種類ノードの数を表す。
【０３３８】
いくつかの例では、第１のレベルのイベント種類出力を判定することは、隠れレイヤの後端の第１のコンテキストユニットを（例えば、重み付けユニット１６１８により）重み付けすることと、後端の第１のコンテキストユニットの重み付けに基づいて第１のレベルのイベント種類出力を（例えば、判定ユニット１６１２により）判定することと、を含む。
【０３３９】
いくつかの例では、第１のレベルのイベント種類出力を判定することは、後端の第１のコンテキストユニットと先頭の第２のコンテキストユニットを（例えば、連結ユニット１６２４により）連結することと、後端の第１のコンテキストユニットと先頭の第２のコンテキストユニットの連結を（例えば、重み付けユニット１６１８により）重み付けすることと、後端の第１のコンテキストユニットと先頭の第２のコンテキストユニットの連結の重み付けに基づいて、第１のレベルのイベント種類出力を（例えば、判定ユニット１６１２により）判定することと、を含む。
【０３４０】
いくつかの例では、第１のレベルのイベント種類出力を判定することは、（例えば、適用ユニット１６２０を用いて）活性化関数を適用することを含む。
【０３４１】
いくつかの例では、第１のレベルのイベント種類に基づいてイベントのイベント種類を判定することは、それぞれの第２のレベルのイベント種類ノードに対して、第２のレベルのイベント種類ノードと構造化されていない自然言語情報との間の相関の数を（例えば、判定ユニット１６１２により）判定することを含む。第２のレベルのイベント種類ノードはそれぞれ、第１のレベルのイベント種類を表す第１のレベルのイベント種類ノードの子ノードである。
【０３４２】
いくつかの例では、第１のレベルのイベント種類に基づいてイベントのイベント種類を判定することは、更に、それぞれの第２のレベルのイベント種類ノードの相関の数に基づいて第２のレベルのイベント種類を（例えば、判定ユニット１６１２により）更に判定することを含む。
【０３４３】
いくつかの例では、第２のレベルのイベント種類を判定することは、それぞれの第２のレベルのイベント種類ノードの相関の数に基づいて、相関の最大数を（例えば、判定ユニット１６１２により）判定することと、相関の最大数に基づいて第２のレベルのイベント種類を（例えば、判定ユニット１６１２により）判定することと、を含む。
【０３４４】
いくつかの例では、処理ユニット１６０８は、少なくとも２つの第２のレベルのイベント種類ノードが、相関の最大数に対応するか否かを（例えば、判定ユニット１６１２により）判定し、少なくとも２つの第２のレベルのイベント種類ノードが、相関の最大数に対応するとの判定に従って、１つ以上の優先規則に基づいて第２のレベルのイベント種類を（例えば、判定ユニット１６１２により）判定するように更に構成されている。
【０３４５】
いくつかの例では、処理ユニット１６０８は、第２のレベルのイベント種類に基づいて、（例えば、判定ユニット１６１２により）より高レベルのイベント種類を階層的に判定するように更に構成されている。
【０３４６】
いくつかの例では、階層的判定は、リーフノードに達するまで継続する。リーフノードは、階層的に子ノードに接続されない。
【０３４７】
いくつかの例では、階層的判定は、それぞれのより高レベルのイベント種類ノードの相関の数がゼロになるまで継続する。
【０３４８】
いくつかの例では、処理ユニット１６０８は、第２のレベルのイベント種類又はより高レベルのイベント種類に基づいて、イベントのイベント種類を（例えば、判定ユニット１６１２を用いて）判定するように更に構成されている。
【０３４９】
いくつかの例では、処理ユニット１６０８は、構造化されていない自然言語情報の１つ以上のトークンに基づいて、第１のレベルのイベント種類、第２のレベルのイベント種類、及びそれより高レベルのイベント種類のうちの少なくとも１つの判定を（例えば、調整ユニット１６２６により）調整するように更に構成されている。
【０３５０】
いくつかの例では、イベントのイベント種類に基づいてイベント説明を提供することは、イベントタイトルを（例えば、提供ユニット１６１４により）提供することを含む。イベントタイトルは、対応するイベント種類ノードのテーマを含む。
【０３５１】
いくつかの例では、イベントのイベント種類に基づいてイベント説明を提供することは、イベントの開始時間を（例えば、提供ユニット１６１４により）提供することを含む。
【０３５２】
いくつかの例では、イベントのイベント種類に基づいてイベント説明を提供することは、イベントの終了時間を（例えば、提供ユニット１６１４により）提供することを含む。
【０３５３】
いくつかの例では、イベントのイベント種類に基づいてイベント説明を提供することは、イベントの持続時間を（例えば、提供ユニット１６１４により）提供することを含む。
【０３５４】
いくつかの例では、処理ユニット１６０８は、コンテキスト情報に基づいて、（例えば、提供ユニット１６１４により）イベントのイベント説明を提供するように更に構成されている。
【０３５５】
いくつかの例では、コンテキスト情報は、場所、日付、時間又は１つ以上のユーザプリファレンスのうちの少なくとも１つを含む。
【０３５６】
いくつかの例では、処理ユニット１６０８は、更に、イベント説明に基づいてカレンダーエントリを（例えば、生成ユニット１６１６を用いて）生成し、カレンダーエントリを（例えば、表示ユニット１６２８により）表示し、１つ以上のアフォーダンスを（例えば、提供ユニット１６１４により）提供するように、構成されており、この１つ以上のアフォーダンスは、カレンダーエントリに関する１つ以上のユーザ入力を受信するのを可能にするよ。
【０３５７】
いくつかの例では、処理ユニット１６０８は、カレンダーエントリを確認する１つ以上のユーザ入力を（例えば、受信ユニット１６１０により）受信し、そのカレンダーエントリをユーザのカレンダーに（例えば、追加ユニット１６３０により）追加するように更に構成されている。
【０３５８】
いくつかの例では、処理ユニット１６０８は、カレンダーエントリを編集する１つ以上のユーザ入力を（例えば、受信ユニット１６１０により）受信し、編集されたカレンダーエントリをユーザのカレンダーに（例えば、追加ユニット１６３０により）追加するように更に構成されている。
【０３５９】
いくつかの例では、処理ユニット１６０８は、カレンダーエントリを拒否する１つ以上のユーザ入力を（例えば、受信ユニット１６１０により）受信し、ユーザとダイアログを（例えば、開始ユニット１６３２により）開始するように更に構成されている。
【０３６０】
いくつかの例では、処理ユニット１６０８は、イベント説明に基づいてカレンダーエントリを（例えば、生成ユニット１６１６により）生成し、そのカレンダーエントリをユーザのカレンダーに（例えば、追加ユニット１６３０により）自動的に追加するように更に構成されている。
【０３６１】
いくつかの例では、処理ユニット１６０８は、イベント説明に基づいて予約要求を（例えば、生成ユニット１６１６により）生成するように更に構成されている。
【０３６２】
いくつかの例では、処理ユニット１６０８は、（例えば、提供ユニット１６１４により）イベント説明を１つ以上のアプリケーションに提供するように更に構成されている。
【０３６３】
図１５を関して上記した動作は、図１、図２Ａ、図４，図６Ａ〜Ｂ、図７Ａ〜図７Ｂ、図８又は図１２Ａに示される構成要素によって、任意選択的に実行される。例えば、受信動作１６１０、判定動作１６１２、及び提供動作１６１４は、プロセッサ（単数又は複数）２２０によって任意選択的に実行される。当業者にとって、他のプロセスが、図１、図２Ａ、図４、図６Ａ〜Ｂ、図７Ａ−７Ｂ、図８又は図１２Ａに示される構成要素に基づいてどのように実施され得るのかは明らかであろう。
【０３６４】
図１５で説明される機能ブロックが、説明される様々な実施形態の原理を実行するように、任意選択的に、組み合わされ、又はサブブロックに分離されることが当業者には理解される。したがって、本明細書における説明は、本明細書で説明されている機能ブロックの任意の可能な組み合わせ若しくは分離、又は更なる定義を任意選択的にサポートする。例えば、処理ユニット１６０８は、動作を可能にするために処理ユニット１６０８に動作可能に結合された関連「コントローラ」ユニットを有することができる。コントローラユニットは、図１５では別々に示されていないが、デバイス１６００等の処理ユニット１６０８を有するデバイスを設計している当業者の理解の範囲内にあることが理解される。別の例としては、受信ユニット１６１０等の１つ以上のユニットは、いくつかの実施形態における処理ユニット１６０８の外側のハードウェアユニットとすることができる。したがって、本明細書における説明は、本明細書で説明されている機能ブロックの組み合わせ、分離、及び／又は更なる定義を任意選択的にサポートする。
【０３６５】
説明の目的上、前述の説明は、特定の実施形態を参照して説明している。しかし、上述の例示的説明は、網羅的であること、又は本発明を、開示される厳密な形態に限定することを意図するものではない。上述の教示を考慮すれば、多くの修正及び変形が可能である。実施形態は、技法の原理及びそれらの実際の適用を最もうまく説明するために選定され、説明された。これにより、他の当業者は、技法及び様々な実施形態を、企図される特定の用途に適した様々な修正を加えて最もうまく利用することが可能になる。
【０３６６】
添付の図面を参照して本開示及び実施例が十分に説明されたが、様々な変更及び修正が当業者には明らかになるであろうということに留意されたい。このような変更及び修正は、特許請求の範囲によって定義されるとおりの本開示及び実施例の範囲内に含まれるものと理解されるべきである。
【図１】
0006265516.tif 000010
【図２Ａ】
0006265516.tif 000011
【図２Ｂ】
0006265516.tif 000012
【図３】
0006265516.tif 000013
【図４】
0006265516.tif 000014
【図５Ａ】
0006265516.tif 000015
【図５Ｂ】
0006265516.tif 000016
【図６Ａ】
0006265516.tif 000017
【図６Ｂ】
0006265516.tif 000018
【図７Ａ】
0006265516.tif 000019
【図７Ｂ】
0006265516.tif 000020
【図７Ｃ】
0006265516.tif 000021
【図８】
0006265516.tif 000022
【図９Ａ】
0006265516.tif 000023
【図９Ｂ】
0006265516.tif 000024
【図９Ｃ】
0006265516.tif 000025
【図１０Ａ】
0006265516.tif 000026
【図１０Ｂ】
0006265516.tif 000027
【図１０Ｃ】
0006265516.tif 000028
【図１１Ａ】
0006265516.tif 000029
【図１１Ｂ】
0006265516.tif 000030
【図１１Ｃ】
0006265516.tif 000031
【図１１Ｄ】
0006265516.tif 000032
【図１１Ｅ】
0006265516.tif 000033
【図１１Ｆ】
0006265516.tif 000034
【図１１Ｇ】
0006265516.tif 000035
【図１１Ｈ】
0006265516.tif 000036
【図１２Ａ】
0006265516.tif 000037
【図１２Ｂ】
0006265516.tif 000038
【図１２Ｃ】
0006265516.tif 000039
【図１３】
0006265516.tif 000040
【図１４Ａ】
0006265516.tif 000041
【図１４Ｂ】
0006265516.tif 000042
【図１４Ｃ】
0006265516.tif 000043
【図１４Ｄ】
0006265516.tif 000044
【図１４Ｅ】
0006265516.tif 000045
【図１４Ｆ】
0006265516.tif 000046
【図１４Ｇ】
0006265516.tif 000047
【図１４Ｈ】
0006265516.tif 000048
【図１４Ｉ】
0006265516.tif 000049
【図１４Ｊ】
0006265516.tif 000050
【図１５】
0006265516.tif 000051