(57)【要約】      （修正有）【課題】電子デバイス上で自動アシスタントを操作する方法を提供する。【解決手段】電子デバイスは、テキスト文字列を含む通信を受信し、テキスト文字列のある部位が、複数のデータ型のあるデータ型に関連付けられているか否かを判定する。このデータ型は、少なくとも１つのタスクに関連付けられている。テキスト文字列のある部位が、そのデータ型に関連付けられているという判定に従って、電子デバイスは、少なくとも１つのタスクのあるタスクを示すユーザ入力を受信し、これに応じて、あるタスクを、テキスト文字列のある部位に基づいて実行させる。【選択図】図１１
2018014086.tif 000002
【特許請求の範囲】
【請求項１】
電子デバイス上で自動アシスタントを操作するための方法であって、
前記電子デバイスにて、
テキスト文字列を含む通信を受信することと、
前記テキスト文字列のある部位が、複数のデータ型のあるデータ型に関連付けられているか否かを判定することであって、前記あるデータ型は関連付けられた少なくとも１つのタスクを有する、ことと、
前記テキスト文字列の前記ある部位が、前記複数のデータ型の前記あるデータ型に関連付けられているという判定に従って、
前記あるデータ型に関連付けられた前記少なくとも１つのタスクのあるタスクを示すユーザ入力を受信することと、
前記あるタスクを示す前記ユーザ入力に応じて、前記あるタスクを、前記テキスト文字列の前記ある部位に基づいて実行させることと、
前記テキスト文字列の前記ある部位が、前記複数のデータ型の前記あるデータ型に関連付けられていないという判定に従って、前記あるタスクを、前記テキスト文字列の前記ある部位に基づいて、実行させることを見送ることと、
を含む方法。
【請求項２】
前記自動アシスタントを用いて、前記通信の前記テキスト文字列に対応する音声出力を提供することを更に含む、請求項１に記載の方法。
【請求項３】
前記通信の前記テキスト文字列に対応する前記音声出力が、ユーザの要求に応じて提供される、請求項２に記載の方法。
【請求項４】
前記通信の前記テキスト文字列に対応する前記音声出力を提供することが、前記通信の前記テキスト文字列を音声に変換することを含む、請求項２に記載の方法。
【請求項５】
前記通信の前記テキスト文字列に対応する前記音声出力は第１の音声出力であり、前記あるタスクを示す前記音声入力は第１の音声入力であり、前記方法は、
前記第１の音声出力を提供した後に、前記電子デバイスを用いて、前記通信への返信のプロンプトを示す第２の音声出力を提供することと、
前記第２の音声出力を提供した後に、前記電子デバイスを用いて、第２の音声入力であって、
前記第２の音声入力は前記第１の音声入力が受信される前に受信される、第２の音声入力を、前記ユーザから受信することと、
を更に含む、請求項２に記載の方法。
【請求項６】
前記電子デバイスを用いて、
第１のサービスプロバイダを前記通信に基づいて特定することであって、前記第１のサービスプロバイダは複数のドメインの第１のドメインに関連付けられている、ことと、
前記第２の音声入力を受信した後に、前記複数のドメインの第２のドメインを示す第３の音声入力を受信することであって、前記第２のドメイン は前記第１のドメインとは異なる、ことと、
第２のサービスプロバイダを、前記第３の音声入力に基づいて特定することと、
前記第２の音声入力に関連付けられたデータを、前記第２のサービスプロバイダに提供することと、
を更に含む、請求項５に記載の方法。
【請求項７】
前記複数のデータ型の前記あるデータ型が、
住所、
電話番号、
ユニフォームリソースロケータ（「ＵＲＬ」）、
日付、
対象とする人、
対象とする場所、
荷物追跡番号、又は
フライト番号、
の少なくとも１つを含む、請求項１から６のいずれか１項に記載の方法。
【請求項８】
前記テキスト文字列の前記ある部位が、複数のデータ型 の前記あるデータ型に関連付けられているか否かを判定することが、
前記テキスト文字列の前記ある部位にて、検出器を用いて、前記あるデータ型のデータの存在を検出することであって、前記検出器は前記複数のデータ型の前記あるデータ型に対応する、ことを含む、請求項１から７のいずれか１項に記載の方法。
【請求項９】
前記電子デバイスを用いて、前記少なくとも１つのタスクを、複数のタスクから、前記電子デバイスの種類に基づいて特定する、請求項１から８のいずれか１項に記載の方法。
【請求項１０】
前記テキスト文字列の前記ある部位は前記テキスト文字列の第１の部位であり、前記あるデータ型は第１のデータ型であり、前記あるタスクは第１のタスクであり、前記方法は、
前記電子デバイスを用いて、前記テキスト文字列の第２の部位が、前記複数のデータ型の第２のデータ型に関連付けられているか否かを判定することと、
前記テキスト文字列の前記第２の部位が、前記複数のデータ型の前記第２のデータ型に関連付けられているという判定に従って、第２のタスクを、前記第２のデータ型に基づいて特定することと、
前記テキスト文字列の前記第２の部位が、前記複数のデータ型の前記第２のデータ型に関連付けられていないという判定に従って、前記第２のタスクを、前記第２のデータ型に基づいて、特定することを見送ることと、
を更に含む、請求項１から９のいずれか１項に記載の方法。
【請求項１１】
前記電子デバイスのディスプレイを用いて、前記あるタスクに対応するアフォーダンスを表示することを更に含み、前記ユーザ入力は、前記アフォーダンスの選択を含む、請求項１から１０のいずれか１項に記載の方法。
【請求項１２】
前記あるタスクは第１のタスクであり、前記方法は、
前記電子デバイスを用いて、前記第１のタスクの前記アフォーダンスの表示を、第２のタスクのアフォーダンスの表示よりも、前記電子デバイスの種類に基づいて優先することを更に含む、請求項１１に記載の方法。
【請求項１３】
前記第１のタスクの前記アフォーダンスの前記表示を、前記第２のタスクの前記アフォーダンスの前記表示よりも優先することが、
前記第２のタスクの前記アフォーダンスの前記表示を見送ることを含む、請求項１２に記載の方法。
【請求項１４】
前記電子デバイスを用いて、前記第２のタスクを示すユーザ入力を受信することと、
前記第２のタスクを実行させることと、
を更に含む、請求項１３に記載の方法。
【請求項１５】
前記あるタスクを示す前記ユーザ入力は音声入力である、請求項１から１０のいずれか１項に記載の方法。
【請求項１６】
前記音声入力は、前記テキストの前記ある部位を含まない、請求項１５に記載の方法。
【請求項１７】
ユーザの意図を、前記音声入力から、コンテキスト情報に基づいて導出することを更に含み、前記コンテキスト情報が、前記テキストの前記ある部位を含む、請求項１５に記載の方法。
【請求項１８】
前記電子デバイスは第１の電子デバイスであり、前記方法は、
前記第１の電子デバイスを用いて、
前記第１の電子デバイスとは異なる第２の電子デバイスに、前記音声入力に対応するデータであって、
前記音声入力に対応する前記データは前記通信の前記テキスト文字列を含まない、前記音声入力に対応するデータを送信することと、
前記第２の電子デバイスから、前記あるタスクに対応するユーザの意図を受信することと、
を更に含む、請求項１５に記載の方法。
【請求項１９】
前記電子デバイス上に、前記通信に関連付けられた情報を記憶することを更に含む、請求項１から１８のいずれか１項に記載の方法。
【請求項２０】
前記通信に関連付けられた、前記記憶された情報が、前記テキスト文字列の前記ある部位を含む、請求項１９に記載の方法。
【請求項２１】
前記通信に関連付けられた、前記記憶された情報が、前記あるデータ型を含む、請求項１９に記載の方法。
【請求項２２】
前記通信に関連付けられた、前記記憶された情報が、前記通信に関連付けられたメタデータを含む、請求項１９に記載の方法。
【請求項２３】
前記電子デバイスを用いて、
入力を受信することと、
あるタスクを、前記入力に基づいて特定することと、
前記あるタスクを、前記記憶された情報の少なくとも一部に基づいて実行することと、
を更に含む、請求項１９に記載の方法。
【請求項２４】
前記電子デバイスを用いて、
ソフトウェアアプリケーションを呼び出すことと、
前記あるタスクを、前記記憶された情報の少なくとも一部に基づいて実行することと、
を更に含む、請求項１９に記載の方法。
【請求項２５】
前記電子デバイスは第１の電子デバイスであり、前記あるタスクは第２の電子デバイス上にて実行される、請求項１から２４のいずれか１項に記載の方法。
【請求項２６】
電子デバイス上で自動アシスタントを操作するための方法であって、
前記電子デバイスにて、
テキスト文字列を含む通信を受信することと、
前記テキスト文字列のある部位が、複数のデータ型のあるデータ型に関連付けられているか否かを判定することと、
前記テキスト文字列の前記ある部位が、前記複数のデータ型の前記あるデータ型に関連付けられているという判定に従って、
１つ以上のパラメータであって、前記１つ以上のパラメータのあるパラメータが、前記テキスト文字列の前記ある部位を含む、１つ以上のパラメータを有するタスクを、前記あるデータ型に基づいて導出することと、
前記導出されたタスクを出力することと、
前記テキスト文字列の前記ある部位が、前記複数のデータ型の前記あるデータ型に関連付けられていないという判定に従って、１つ以上のパラメータを有するタスクを、前記あるデータ型に基づいて、導出することを見送ることと、
を含む方法。
【請求項２７】
前記導出されたタスクの選択を示すユーザ入力を受信することと、
前記導出されたタスクの前記選択を示す前記ユーザ入力に応じて、前記あるタスクを、前記テキスト文字列の前記ある部位に基づいて実行させることと、
を更に含む、請求項２６に記載の方法。
【請求項２８】
前記導出されたタスクを出力することが、前記電子デバイスのディスプレイを用いて、前記導出されたタスクに対応するアフォーダンスを表示することを含み、前記ユーザ入力が、前記アフォーダンスの選択を含む、請求項２６又は２７に記載の方法。
【請求項２９】
前記導出されたタスクを出力することが、オーディオ出力を出力することを含む、請求項２６又は２７に記載の方法。
【請求項３０】
前記複数のデータ型の前記あるデータ型が、
住所、
電話番号、
ユニフォームリソースロケータ（「ＵＲＬ」）、
日付、
対象とする人、
対象とする場所、
荷物追跡番号、又は
フライト番号、
の少なくとも１つを含む、請求項２６から２９のいずれか１項に記載の方法。
【請求項３１】
電子デバイスであって、
１つ以上のプロセッサと、
メモリと、
１つ以上のプログラムと、
を備え、前記１つ以上のプログラムが、前記メモリ内に記憶され、前記１つ以上のプロセッサによって実行されるよう構成されており、前記１つ以上のプログラムが、
テキスト文字列を含む通信を受信し、
前記テキスト文字列のある部位が、複数のデータ型のあるデータ型であって、前記あるデータ型は関連付けられた少なくとも１つのタスクを有する、あるデータ型に関連付けられているか否かを判定し、
前記テキスト文字列の前記ある部位が、前記複数のデータ型の前記あるデータ型に関連付けられているという判定に従って、
前記あるデータ型に関連付けられた前記少なくとも１つのタスクのあるタスクを示すユーザ入力を受信し、
前記あるタスクを示す前記ユーザ入力に応じて、前記あるタスクを、前記テキスト文字列の前記ある部位に基づいて実行させ、
前記テキスト文字列の前記ある部位が、前記複数のデータ型の前記あるデータ型に関連付けられていないという判定に従って、前記あるタスクを、前記テキスト文字列の前記ある部位に基づいて、実行させることを見送る、
命令を含む、電子デバイス。
【請求項３２】
電子デバイスであって、
１つ以上のプロセッサと、
メモリと、
１つ以上のプログラムと、
を備え、前記１つ以上のプログラムが、前記メモリ内に記憶され、前記１つ以上のプロセッサによって実行されるよう構成されており、前記１つ以上のプログラムが、
テキスト文字列を含む通信を受信し、
前記テキスト文字列のある部位が、複数のデータ型のあるデータ型に関連付けられているか否かを判定し、
前記テキスト文字列の前記ある部位が、前記複数のデータ型の前記あるデータ型に関連付けられているという判定に従って、
１つ以上のパラメータであって、前記１つ以上のパラメータのあるパラメータが、前記テキスト文字列の前記ある部位を含む、１つ以上のパラメータを有するタスクを、前記あるデータ型に基づいて導出し、
前記導出されたタスクを出力し、
前記テキスト文字列の前記ある部位が、前記複数のデータ型の前記あるデータ型に関連付けられていないという判定に従って、１つ以上のパラメータを有するタスクを、前記あるデータ型に基づいて、導出することを見送る、
命令を含む、電子デバイス。
【請求項３３】
１つ以上のプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、前記１つ以上のプログラムは命令を含み、前記命令は、電子デバイスの１つ以上のプロセッサにより実行されると、前記デバイスに、
テキスト文字列を含む通信を受信させ、
前記テキスト文字列のある部位が、複数のデータ型のあるデータ型であって、前記あるデータ型は関連付けられた少なくとも１つのタスクを有する、あるデータ型に関連付けられているか否かを判定させ、
前記テキスト文字列の前記ある部位が、前記複数のデータ型の前記あるデータ型に関連付けられているという判定に従って、
前記あるデータ型に関連付けられた前記少なくとも１つのタスクのあるタスクを示すユーザ入力を受信させ、
前記あるタスクを示す前記ユーザ入力に応じて、前記あるタスクを、前記テキスト文字列の前記ある部位に基づいて実行させ、
前記テキスト文字列の前記ある部位が、前記複数のデータ型の前記あるデータ型に関連付けられていないという判定に従って、前記あるタスクを、前記テキスト文字列の前記ある部位に基づいて、実行させることを見送らせる、
非一時的コンピュータ可読記憶媒体。
【請求項３４】
１つ以上のプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、前記１つ以上のプログラムは命令を含み、前記命令は、電子デバイスの１つ以上のプロセッサにより実行されると、前記デバイスに、
テキスト文字列を含む通信を受信させ、
前記テキスト文字列のある部位が、複数のデータ型のあるデータ型に関連付けられているか否かを判定させ、
前記テキスト文字列の前記ある部位が、前記複数のデータ型の前記あるデータ型に関連付けられているという判定に従って、
１つ以上のパラメータであって、前記１つ以上のパラメータのあるパラメータが、前記テキスト文字列の前記ある部位を含む、１つ以上のパラメータを有するタスクを、前記あるデータ型に基づいて導出させ、
前記導出されたタスクを出力させ、
前記テキスト文字列の前記ある部位が、前記複数のデータ型の前記あるデータ型に関連付けられていないという判定に従って、１つ以上のパラメータを有するタスクを、前記あるデータ型に基づいて、導出させることを見送らせる、
非一時的コンピュータ可読記憶媒体。
【請求項３５】
電子デバイスであって、
テキスト文字列を含む通信を受信する手段と、
前記テキスト文字列のある部位が、複数のデータ型のあるデータ型であって、前記あるデータ型は関連付けられた少なくとも１つのタスクを有する、あるデータ型に関連付けられているか否かを判定する手段と、
前記テキスト文字列の前記ある部位が、前記複数のデータ型の前記あるデータ型に関連付けられているという判定に従って、
前記あるデータ型に関連付けられた前記少なくとも１つのタスクのあるタスクを示すユーザ入力を受信し、
前記あるタスクを示す前記ユーザ入力に応じて、前記あるタスクを、前記テキスト文字列の前記ある部位に基づいて実行させる手段と、
前記テキスト文字列の前記ある部位が、前記複数のデータ型の前記あるデータ型に関連付けられていないという判定に従って、前記あるタスクを、前記テキスト文字列の前記ある部位に基づいて、実行させることを見送る手段と、
を備える電子デバイス。
【請求項３６】
電子デバイスであって、
テキスト文字列を含む通信を受信する手段と、
前記テキスト文字列のある部位が、複数のデータ型のあるデータ型に関連付けられているか否かを判定する手段と、
前記テキスト文字列の前記ある部位が、前記複数のデータ型の前記あるデータ型に関連付けられているという判定に従って、
１つ以上のパラメータであって、前記１つ以上のパラメータのあるパラメータが、前記テキスト文字列の前記ある部位を含む、１つ以上のパラメータを有するタスクを、前記あるデータ型に基づいて導出し、
前記導出されたタスクを出力する手段と、
前記テキスト文字列の前記ある部位が、前記複数のデータ型の前記あるデータ型に関連付けられていないという判定に従って、１つ以上のパラメータを有するタスクを、前記あるデータ型に基づいて、導出することを見送る手段と、
を備える電子デバイス。
【請求項３７】
電子デバイスであって、
１つ以上のプロセッサと、
メモリと、
１つ以上のプログラムと、
を備え、前記１つ以上のプログラムが、前記メモリ内に記憶され、前記１つ以上のプロセッサによって実行されるよう構成されており、前記１つ以上のプログラムが、請求項１から２５のいずれか１項に記載の方法を実行する命令を含む、電子デバイス。
【請求項３８】
１つ以上のプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、前記１つ以上のプログラムは命令を含み、前記命令は、電子デバイスの１つ以上のプロセッサによって実行されると、前記デバイスに、請求項１から２５のいずれか１項に記載の方法を実行させる、非一時的コンピュータ可読記憶媒体。
【請求項３９】
電子デバイスであって、
請求項１から２５のいずれか１項に記載の方法を実行する手段を備える、電子デバイス。
【請求項４０】
電子デバイスであって、
１つ以上のプロセッサと、
メモリと、
１つ以上のプログラムと、
を備え、前記１つ以上のプログラムが、前記メモリ内に記憶され、前記１つ以上のプロセッサによって実行されるよう構成されており、前記１つ以上のプログラムが、請求項２６から３０のいずれか１項に記載の方法を実行する命令を含む、電子デバイス。
【請求項４１】
１つ以上のプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、前記１つ以上のプログラムは命令を含み、前記命令は、電子デバイスの１つ以上のプロセッサによって実行されると、前記デバイスに、請求項２６から３０のいずれか１項に記載の方法を実行させる、非一時的コンピュータ可読記憶媒体。
【請求項４２】
電子デバイスであって、
請求項２６から３０のいずれか１項に記載の方法を実行する手段を備える、電子デバイス。
【請求項４３】
電子デバイスであって、
処理ユニットを備え、前記処理ユニットは、
テキスト文字列を含む通信を受信し、
前記テキスト文字列のある部位が、複数のデータ型のあるデータ型であって、前記あるデータ型は関連付けられた少なくとも１つのタスクを有する、あるデータ型に関連付けられているか否かを判定し、
前記テキスト文字列の前記ある部位が、前記複数のデータ型の前記あるデータ型に関連付けられているという判定に従って、
前記あるデータ型に関連付けられた前記少なくとも１つのタスクのあるタスクを示すユーザ入力を受信し、
前記あるタスクを示す前記ユーザ入力に応じて、前記あるタスクを、前記テキスト文字列の前記ある部位に基づいて実行させ、
前記テキスト文字列の前記ある部位が、前記複数のデータ型の前記あるデータ型に関連付けられていないという判定に従って、前記あるタスクを、前記テキスト文字列の前記ある部位に基づいて、実行させることを見送る、
よう構成されている、電子デバイス。
【請求項４４】
前記処理ユニットが、自動アシスタントを用いて、前記通信の前記テキスト文字列に対応する音声出力を提供するよう更に構成されている、請求項４３に記載の電子デバイス。
【請求項４５】
前記通信の前記テキスト文字列に対応する前記音声出力が、ユーザの要求に応じて提供される、請求項４４に記載の電子デバイス。
【請求項４６】
前記通信の前記テキスト文字列に対応する前記音声出力を提供することが、前記通信の前記テキスト文字列を音声に変換することを含む、請求項４４に記載の電子デバイス。
【請求項４７】
前記通信の前記テキスト文字列に対応する前記音声出力は第１の音声出力であり、前記あるタスクを示す前記音声入力は第１の音声入力であり、前記処理ユニットが、
前記第１の音声出力を提供した後に、前記通信への返信のプロンプトを示す第２の音声出力を提供し、
前記第２の音声出力を提供した後に、第２の音声入力であって、前記第２の音声入力前記第１の音声入力が受信される前に受信される、第２の音声入力を前記ユーザから受信する、
よう更に構成されている、請求項４４に記載の電子デバイス。
【請求項４８】
前記処理ユニットが、
第１のサービスプロバイダであって、前記第１のサービスプロバイダは複数のドメインの第１のドメインに関連付けられている、第１のサービスプロバイダを、前記通信に基づいて特定し、
前記第２の音声入力を受信した後に、前記複数のドメインの第２のドメインであって、前記第２のドメイン は前記第１のドメインとは異なる、第２のドメインを示す第３の音声入力を受信し、
第２のサービスプロバイダを、前記第３の音声入力に基づいて特定し、
前記第２の音声入力に関連付けられたデータを、前記第２のサービスプロバイダに提供する、
よう更に構成されている、請求項４７に記載の電子デバイス。
【請求項４９】
前記複数のデータ型の前記あるデータ型が、
住所、
電話番号、
ユニフォームリソースロケータ（「ＵＲＬ」）、
日付、
対象とする人、
対象とする場所、
荷物追跡番号、又は
フライト番号、
の少なくとも１つを含む、請求項４３から４８のいずれか１項に記載の電子デバイス。
【請求項５０】
前記テキスト文字列の前記ある部位が、複数のデータ型の前記あるデータ型に関連付けられているか否かを判定することが、
前記テキスト文字列の前記ある部位にて、検出器であって、前記検出器は前記複数のデータ型の前記あるデータ型に対応する、検出器を用いて、前記あるデータ型の前記データの存在を検出することを含む、請求項４３から４９のいずれか１項に記載の電子デバイス。
【請求項５１】
前記処理ユニットが、前記少なくとも１つのタスクを、複数のタスクから、前記電子デバイスの種類に基づいて特定するよう更に構成されている、請求項４３から５０のいずれか１項に記載の電子デバイス。
【請求項５２】
前記テキスト文字列の前記ある部位は前記テキスト文字列の第１の部位であり、前記あるデータ型は第１のデータ型であり、前記あるタスクは第１のタスクであり、前記処理ユニットが、
前記電子デバイスを用いて、前記テキスト文字列の第２の部位が、前記複数のデータ型の第２のデータ型に関連付けられているか否かを判定し、
前記テキスト文字列の前記第２の部位が、前記複数のデータ型の前記第２のデータ型に関連付けられているという判定に従って、第２のタスクを、前記第２のデータ型に基づいて特定し、
前記テキスト文字列の前記第２の部位が、前記複数のデータ型の前記第２のデータ型に関連付けられていないという判定に従って、前記第２のタスクを、前記第２のデータ型に基づいて、特定することを見送る、
よう更に構成されている、請求項４３から５１のいずれか１項に記載の電子デバイス。
【請求項５３】
前記処理ユニットが、前記電子デバイスのディスプレイを用いて、前記あるタスクに対応するアフォーダンスを表示するよう更に構成されており、前記ユーザ入力が、前記アフォーダンスの選択を含む、請求項４３から５２のいずれか１項に記載の電子デバイス。
【請求項５４】
前記あるタスクは第１のタスクであり、前記処理ユニットが、前記第１のタスクの前記アフォーダンスの表示を、第２のタスクのアフォーダンスの表示よりも、前記電子デバイスの種類に基づいて優先するよう更に構成されている、請求項５３に記載の電子デバイス。
【請求項５５】
前記第１のタスクの前記アフォーダンスの前記表示を、前記第２のタスクの前記アフォーダンスの前記表示よりも優先することが、前記第２のタスクの前記アフォーダンスの前記表示を見送ることを含む、請求項５４に記載の電子デバイス。
【請求項５６】
前記処理ユニットが、
前記電子デバイスを用いて、前記第２のタスクを示すユーザ入力を受信し、
前記第２のタスクを実行させる
よう更に構成されている、請求項５５に記載の電子デバイス。
【請求項５７】
前記あるタスクを示す前記ユーザ入力は音声入力である、請求項４３から５２のいずれか１項に記載の電子デバイス。
【請求項５８】
前記音声入力は、前記テキストの前記ある部位を含まない、請求項５７に記載の電子デバイス。
【請求項５９】
前記処理ユニットが、ユーザの意図を、前記音声入力から、コンテキスト情報に基づいて導出するよう更に構成されており、前記コンテキスト情報が、前記テキストの前記ある部位を含む、請求項５７に記載の電子デバイス。
【請求項６０】
前記電子デバイスは第１の電子デバイスであり、前記処理ユニットが、
前記第１の電子デバイスを用いて、
前記第１の電子デバイスとは異なる第２の電子デバイスに、前記音声入力に対応するデータであって、
前記音声入力に対応する前記データは前記通信の前記テキスト文字列を含まない、前記音声入力に対応するデータを送信し、
前記第２の電子デバイスから、前記あるタスクに対応するユーザの意図を受信する、
よう更に構成されている、請求項５７に記載の電子デバイス。
【請求項６１】
前記処理ユニットが、前記電子デバイス上に、前記通信に関連付けられた情報を記憶するよう更に構成されている、請求項４３から６０のいずれか１項に記載の電子デバイス。
【請求項６２】
前記通信に関連付けられた、前記記憶された情報が、前記テキスト文字列の前記ある部位を含む、請求項６１に記載の電子デバイス。
【請求項６３】
前記通信に関連付けられた、前記記憶された情報が、前記あるデータ型を含む、請求項６１に記載の電子デバイス。
【請求項６４】
前記通信に関連付けられた、前記記憶された情報が、前記通信に関連付けられたメタデータを含む、請求項６１に記載の電子デバイス。
【請求項６５】
前記処理ユニットが、
入力を受信し、
あるタスクを、前記入力に基づいて特定し、
前記あるタスクを、前記記憶された情報の少なくとも一部に基づいて実行する
よう更に構成されている、請求項６１に記載の電子デバイス。
【請求項６６】
前記処理ユニットが、
ソフトウェアアプリケーションを呼び出し、
前記あるタスクを、前記記憶された情報の少なくとも一部に基づいて実行する、
よう更に構成されている、請求項６１に記載の電子デバイス。
【請求項６７】
前記電子デバイスは第１の電子デバイスであり、前記あるタスクは第２の電子デバイス上にて実行される、請求項４３から６６のいずれか１項に記載の電子デバイス。
【請求項６８】
電子デバイスであって、
処理ユニットを備え、前記処理ユニットは、
テキスト文字列を含む通信を受信し、
前記テキスト文字列のある部位が、複数のデータ型のあるデータ型に関連付けられているか否かを判定し、
前記テキスト文字列の前記ある部位が、前記複数のデータ型の前記あるデータ型に関連付けられているという判定に従って、
１つ以上のパラメータであって、前記１つ以上のパラメータのあるパラメータが、前記テキスト文字列の前記ある部位を含む、１つ以上のパラメータを有するタスクを、前記あるデータ型に基づいて導出し、
前記導出されたタスクを出力し、
前記テキスト文字列の前記ある部位が、前記複数のデータ型の前記あるデータ型に関連付けられていないという判定に従って、１つ以上のパラメータを有するタスクを、前記あるデータ型に基づいて、導出することを見送る
よう構成されている、電子デバイス。
【請求項６９】
前記処理ユニットが、
前記導出されたタスクの選択を示すユーザ入力を受信し、
前記導出されたタスクの前記選択を示す前記ユーザ入力に応じて、前記タスクを、前記テキスト文字列の前記ある部位に基づいて実行させる、
よう更に構成されている、請求項６８に記載の電子デバイス。
【請求項７０】
前記導出されたタスクを出力することが、前記電子デバイスのディスプレイを用いて、前記導出されたタスクに対応するアフォーダンスを表示することを含み、前記ユーザ入力が、前記アフォーダンスの選択を含む、請求項６８又は６９に記載の電子デバイス。
【請求項７１】
前記導出されたタスクを出力することが、オーディオ出力を出力することを含む、請求項６８又は６９に記載の電子デバイス。
【請求項７２】
前記複数のデータ型の前記あるデータ型が、
住所、
電話番号、
ユニフォームリソースロケータ（「ＵＲＬ」）、
日付、
対象とする人、
対象とする場所、
荷物追跡番号、又は
フライト番号、
の少なくとも１つを含む、請求項６８から７１のいずれか１項に記載の電子デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は一般に、インテリジェント自動アシスタントに関し、より具体的には、インテリジェントタスクディスカバリのためのインテリジェント自動アシスタントに関する。
【背景技術】
【０００２】
インテリジェント自動アシスタントは、ユーザがコンテンツを電子デバイス上で利用することを助け得る。例えば、ユーザは、インテリジェント自動アシスタントに電子デバイスにて受信したテキストメッセージを読み上げるよう求め得、ユーザは、他のアクティビティに従事しながら（例えば、運転中）テキストメッセージを利用し得る。しかし、コンテンツの特定の部位（単数又は複数）（例えば、テキストメッセージ中に記された住所、電話番号、及びＵＲＬ）を使用して更なるタスクを実行するには、ユーザは、手動でサービスを立ち上げたり、サービス内のコンテンツの関連部位を手動で再生したりするなど、必要な入力を提供しなければならない。
【０００３】
例えば、ユーザが、物理住所を含むテキストメッセージを受信し、その物理住所へのナビゲーションを望む場合、ユーザは手動でナビゲーションアプリケーションを立ち上げ、そのナビゲーションアプリケーションに住所を提供（例えば、タイプ入力）しなければならない。この動作は煩わしいだけでなく、他の実行中のアクティビティ（例えば、運転中）からユーザの注意をそらすため、潜在的な危険を伴う。つまり、電子デバイスでの、コンテンツの関連する部位を使用しての、所望するタスクを便利に開始できない、及び／又は、実行することができないことは、ユーザにフラストレーションを引き起こし、ユーザエクスペリエンスに悪影響を及ぼす。
【発明の概要】
【０００４】
いくつかの方法例を本明細書に開示する。電子デバイス上で自動アシスタントを操作するための一方法例は、電子デバイスにて、テキスト文字列を含む通信を受信することと、テキスト文字列のある部位が、複数のデータ型のあるデータ型であって、あるデータ型は関連付けられた少なくとも１つのタスクを有する、あるデータ型に関連付けられているか否かを判定することと、を含む。テキスト文字列のある部位が、複数のデータ型のあるデータ型に関連付けられているという判定に従って、電子デバイスは、あるデータ型に関連付けられた少なくとも１つのタスクのあるタスクを示すユーザ入力を受信し、あるタスクを示すユーザ入力に応じて、あるタスクを、テキスト文字列のある部位に基づいて実行させる。テキスト文字列のある部位が、複数のデータ型のあるデータ型に関連付けられていないという判定に従って、電子デバイスは、あるタスクを、テキスト文字列のある部位に基づいて、実行させることを見送る。
【０００５】
一方法例は、電子デバイスにて、テキスト文字列を含む通信を受信することと、テキスト文字列のある部位が、複数のデータ型のあるデータ型に関連付けられているか否かを判定することと、を含む。テキスト文字列のある部位が、複数のデータ型のあるデータ型に関連付けられているという判定に従って、電子デバイスは、１つ以上のパラメータであって、１つ以上のパラメータのあるパラメータが、テキスト文字列のある部位を含む、１つ以上のパラメータを有するタスクを、あるデータ型に基づいて導出し、導出されたタスクを出力する。テキスト文字列のある部位が、複数のデータ型のあるデータ型に関連付けられていないという判定に従って、電子デバイスは、１つ以上のパラメータを有するタスクを、あるデータ型に基づいて、導出することを見送る。
【０００６】
いくつかの非一時的コンピュータ可読記憶媒体例を本明細書に開示する。例示的な、１つ以上のプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、１つ以上のプログラムは命令を含み、これらの命令は、電子デバイスの１つ以上のプロセッサにより実行されると、デバイスに、テキスト文字列を含む通信を受信させ、テキスト文字列のある部位が、複数のデータ型のあるデータ型であって、あるデータ型は関連付けられた少なくとも１つのタスクを有する、あるデータ型に関連付けられているか否かを判定させる、非一時的コンピュータ可読記憶媒体。これらの命令は更に、電子デバイスに、テキスト文字列のある部位が、複数のデータ型のあるデータ型に関連付けられているという判定に従って、あるデータ型に関連付けられた少なくとも１つのタスクのあるタスクを示すユーザ入力を受信させ、あるタスクを示すユーザ入力に応じて、あるタスクを、テキスト文字列のある部位に基づいて実行させる。これらの命令は更に、電子デバイスに、テキスト文字列のある部位が、複数のデータ型のあるデータ型に関連付けられていないという判定に従って、あるタスクを、テキスト文字列のある部位に基づいて、実行させることを見送る。
【０００７】
例示的な、１つ以上のプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、１つ以上のプログラムは命令を含み、これらの命令は、電子デバイスの１つ以上のプロセッサにより実行されると、デバイスに、テキスト文字列を含む通信を受信させ、テキスト文字列のある部位が、複数のデータ型のあるデータ型に関連付けられているか否かを判定させる、非一時的コンピュータ可読記憶媒体。これらの命令は更に、電子デバイスに、テキスト文字列のある部位が、複数のデータ型のあるデータ型に関連付けられているという判定に従って、１つ以上のパラメータであって、１つ以上のパラメータのあるパラメータが、テキスト文字列のある部位を含む、１つ以上のパラメータを有するタスクを、あるデータ型に基づいて導出させ 、導出されたタスクを出力させる 。これらの命令は更に、電子デバイスに、テキスト文字列のある部位が、複数のデータ型のあるデータ型に関連付けられていないという判定に従って、１つ以上のパラメータを有するタスクを、あるデータ型に基づいて、導出させることを見送る。
【０００８】
いくつかのデバイス例を本明細書に開示する。例示的な電子デバイスは、１つ以上のプロセッサと、メモリと、１つ以上のプログラムと、を含み、１つ以上のプログラムはメモリ内に記憶され、１つ以上のプロセッサによって実行されるよう構成されている。１つ以上のプログラムは、命令であって、テキスト文字列を含む通信を受信し、テキスト文字列のある部位が、複数のデータ型のあるデータ型であって、あるデータ型は関連付けられた少なくとも１つのタスクを有する、あるデータ型に関連付けられているか否かを判定する、命令を含む。１つ以上のプログラムは、命令であって、テキスト文字列のある部位が、複数のデータ型のあるデータ型に関連付けられているという判定に従って、あるデータ型に関連付けられた少なくとも１つのタスクのあるタスクを示すユーザ入力を受信し、あるタスクを示すユーザ入力に応じて、あるタスクを、テキスト文字列のある部位に基づいて実行させる、命令を更に含む。１つ以上のプログラムは、命令であって、テキスト文字列の部位が、複数のデータ型のそのデータ型に関連付けられていないという判定に従って、そのタスクを、テキスト文字列のその部位に基づいて、実行させることを見送る、命令を更に含む。
【０００９】
例示的な電子デバイスは、１つ以上のプロセッサと、メモリと、１つ以上のプログラムと、を含み、１つ以上のプログラムはメモリ内に記憶され、１つ以上のプロセッサによって実行されるよう構成されている。１つ以上のプログラムは、命令であって、テキスト文字列を含む通信を受信し、テキスト文字列のある部位が、複数のデータ型のあるデータ型に関連付けられているか否かを判定する命令を含む。１つ以上のプログラムは、命令であって、テキスト文字列のある部位が、複数のデータ型のあるデータ型に関連付けられているという判定に従って、１つ以上のパラメータであって、１つ以上のパラメータのあるパラメータが、テキスト文字列のある部位を含む、１つ以上のパラメータを有するタスクを、あるデータ型に基づいて導出し、導出されたタスクを出力する命令を更に含む。１つ以上のプログラムは、命令であって、テキスト文字列のある部位が、複数のデータ型のあるデータ型に関連付けられていないという判定に従って、１つ以上のパラメータを有するタスクを、あるデータ型に基づいて、導出することを見送る命令を更に含む。
【００１０】
例示的な電子デバイスは、テキスト文字列を含む通信を受信する手段と、テキスト文字列のある部位が、複数のデータ型のあるデータ型であって、あるデータ型は関連付けられた少なくとも１つのタスクを有する、あるデータ型に関連付けられているか否かを判定する手段と、テキスト文字列のある部位が、複数のデータ型のあるデータ型に関連付けられているという判定に従って、あるデータ型に関連付けられた少なくとも１つのタスクのあるタスクを示すユーザ入力を受信し、あるタスクを示すユーザ入力に応じて、あるタスクを、テキスト文字列のある部位に基づいて、実行させる手段と、テキスト文字列のある部位が、複数のデータ型のあるデータ型に関連付けられていないという判定に従って、あるタスクを、テキスト文字列のある部位に基づいて、実行させることを見送る手段と、を含む。
【００１１】
例示的な電子デバイスは、テキスト文字列を含む通信を受信する手段と、前記テキスト文字列のある部位が、複数のデータ型のあるデータ型に関連付けられているか否かを判定する手段と、テキスト文字列のある部位が、複数のデータ型のあるデータ型に関連付けられているという判定に従って、１つ以上のパラメータであって、１つ以上のパラメータのあるパラメータが、テキスト文字列のある部位を含む、１つ以上のパラメータを有するタスクを、あるデータ型に基づいて導出し、導出されたタスクを出力する手段と、テキスト文字列のある部位が、複数のデータ型のあるデータ型に関連付けられていないという判定に従って、１つ以上のパラメータを有するタスクを、あるデータ型に基づいて、導出することを見送る手段と、を含む。
【図面の簡単な説明】
【００１２】
説明される様々な実施形態のより良好な理解のために、以下の図面と併せて、以下の「発明を実施するための形態」を参照されたく、類似の参照番号は、それらの図の全体を通して対応する部分を指す。
【００１３】
【図１】様々な実施例に係る、デジタルアシスタントを実施するためのシステム及び環境を示すブロック図である。
【００１４】
【図２Ａ】いくつかの実施形態に係る、デジタルアシスタントのクライアント側部分を実施するポータブル多機能デバイスを示すブロック図である。
【００１５】
【図２Ｂ】様々な実施例に係る、イベント処理のための例示的な構成要素を示すブロック図である。
【００１６】
【図３】様々な実施例に係る、デジタルアシスタントのクライアント側部分を実施するポータブル多機能デバイスを示す。
【００１７】
【図４】様々な実施例に係る、ディスプレイ及びタッチ感知面を備える例示的な多機能デバイスのブロック図である。
【００１８】
【図５Ａ】様々な実施例に係る、ポータブル多機能デバイス上のアプリケーションのメニュー用の例示的なユーザインタフェースを示す。
【００１９】
【図５Ｂ】様々な実施例に係る、ディスプレイとは別個のタッチ感知面を備える多機能デバイスのための例示的なユーザインタフェースを示す。
【００２０】
【図６Ａ】様々な実施例に係る、パーソナル電子デバイスを示す。
【００２１】
【図６Ｂ】様々な実施例に係る、パーソナル電子デバイスを示すブロック図である。
【００２２】
【図７Ａ】様々な実施例に係る、デジタルアシスタントシステム又はそのサーバ部分を示すブロック図である。
【００２３】
【図７Ｂ】様々な実施例に係る、図７Ａに示すデジタルアシスタントの機能を示す。
【００２４】
【図７Ｃ】様々な実施例に係る、オントロジの一部分を示す。
【００２５】
【図８Ａ】いくつかの実施形態に係る、電子デバイスの例示的なユーザインタフェースを示す。
【図８Ｂ】いくつかの実施形態に係る、電子デバイスの例示的なユーザインタフェースを示す。
【図８Ｃ】いくつかの実施形態に係る、電子デバイスの例示的なユーザインタフェースを示す。
【図８Ｄ】いくつかの実施形態に係る、電子デバイスの例示的なユーザインタフェースを示す。
【図８Ｅ】いくつかの実施形態に係る、電子デバイスの例示的なユーザインタフェースを示す。
【００２６】
【図９Ａ】いくつかの実施形態に係る、電子デバイスの例示的なユーザインタフェースを示す。
【図９Ｂ】いくつかの実施形態に係る、電子デバイスの例示的なユーザインタフェースを示す。
【図９Ｃ】いくつかの実施形態に係る、電子デバイスの例示的なユーザインタフェースを示す。
【００２７】
【図１０Ａ】様々な実施例に係る、インテリジェントタスクディスカバリのための例示的なプロセスを示す。
【図１０Ｂ】様々な実施例に係る、インテリジェントタスクディスカバリのための例示的なプロセスを示す。
【図１０Ｃ】様々な実施例に係る、インテリジェントタスクディスカバリのための例示的なプロセスを示す。
【００２８】
【図１１】様々な実施例に係る、インテリジェントタスクディスカバリのための例示的なプロセスを示す。
【００２９】
【図１２】様々な実施例に係る、電子デバイスの機能ブロック図を示す。
【００３０】
【図１３】様々な実施例に係る、電子デバイスの機能ブロック図を示す。
【発明を実施するための形態】
【００３１】
以下の開示及び実施形態の説明では、実施することができる特定の実施形態が実例として示されている添付の図面を参照する。本開示の範囲から逸脱することなく、他の実施形態及び実施例を実施することができ、変更を行うことができることを理解されたい。
【００３２】
インテリジェントタスクディスカバリのための技術は好適である。本明細書に説明するように、記述する技術は、ユーザの、電子デバイスとの対話の能力を改善し、したがって生産性を高める。更に、そのような技術は、要求される計算を削減し、ユーザ入力に対する電子デバイスの無駄な応答の結果として消費されるバッテリ電力節約し得る。
【００３３】
以下の説明では、様々な要素を説明するために「第１」、「第２」などの用語を使用するが、これらの要素はこれらの用語によって限定されるべきではない。これらの用語は、ある要素を別の要素と区別するためにのみ使用される。例えば、説明されている様々な実施例の範囲から逸脱することなく、第１の入力は第２の入力と称することができ、同様に、第２の入力は第１の入力と称し得る。第１の入力及び第２の入力は双方とも出力であり得、いくつかの場合では、個別の、異なる入力であり得る。
【００３４】
本明細書で説明される様々な実施例の説明で使用される用語は、特定の実施例を説明することのみを目的とするものであって、限定することを意図するものではない。説明される様々な実施例の説明及び添付の特許請求の範囲で使用される時、単数形「ａ」、「ａｎ」、及び「ｔｈｅ」は、文脈がそうではないことを明確に示さない限り、複数形もまた含むことが意図される。本明細書で使用される時に、用語「及び／又は」が、関連する列挙された項目のうちの１つ以上の全ての可能な任意の組み合わせを指し、かつこれを含むことをもまた理解されたい。用語「ｉｎｃｌｕｄｅｓ（含む）、「ｉｎｃｌｕｄｉｎｇ（含む）」、「ｃｏｍｐｒｉｓｅｓ（含む）」及び／又は「ｃｏｍｐｒｉｓｉｎｇ（含む）」は、本明細書で使用される時、述べられた特徴、整数、ステップ、動作、要素、及び／又は構成要素の存在を指定するが、１つ以上の他の特徴、整数、ステップ、動作、要素、構成要素、及び／又はそれらの群、の存在又は追加を除外しないことが更に理解されるであろう。
【００３５】
用語「ｉｆ（〜場合に）」は、文脈に応じて「ｗｈｅｎ（〜時に）」、「ｕｐｏｎ（〜時に）」、「ｉｎ  ｒｅｓｐｏｎｓｅ  ｔｏ  ｄｅｔｅｒｍｉｎｉｎｇ（〜という判定に応じて）」、又は「ｉｎ  ｒｅｓｐｏｎｓｅ  ｔｏ  ｄｅｔｅｃｔｉｎｇ（〜を検出したことに応じて）」を意味すると解釈することができる。同様に、句「ｉｆ  ｉｔ  ｉｓ  ｄｅｔｅｒｍｉｎｅｄ（〜と判定される場合に）」又は「ｉｆ［ａ  ｓｔａｔｅｄ  ｃｏｎｄｉｔｉｏｎ  ｏｒ  ｅｖｅｎｔ］ｉｓ  ｄｅｔｅｃｔｅｄ（［述べられる条件又はイベント］が検出される場合に）」は、文脈に応じて「ｕｐｏｎ  ｄｅｔｅｒｍｉｎｉｎｇ（〜と判定される時に）」、又は「ｉｎ  ｒｅｓｐｏｎｓｅ  ｔｏ  ｄｅｔｅｒｍｉｎｉｎｇ（〜との判定に応じて）」、又は「ｕｐｏｎ  ｄｅｔｅｃｔｉｎｇ［ｔｈｅ  ｓｔａｔｅｄ  ｃｏｎｄｉｔｉｏｎ  ｏｒ  ｅｖｅｎｔ］（［述べられる条件又はイベント］の検出時に）」、又は「ｉｎ  ｒｅｓｐｏｎｓｅ  ｔｏ  ｄｅｔｅｃｔｉｎｇ［ｔｈｅ  ｓｔａｔｅｄ  ｃｏｎｄｉｔｉｏｎ  ｏｒ  ｅｖｅｎｔ］（［述べられる条件又はイベント］の検出に応じて）」を意味すると解釈することができる。
１．システム及び環境
【００３６】
図１は、様々な実施例に係る、システム１００のブロック図を示す。いくつかの実施例では、システム１００はデジタルアシスタントを実施し得る。用語「デジタルアシスタント」、「仮想アシスタント」、「インテリジェント自動アシスタント」、又は「自動デジタルアシスタント」は、発語及び／又はテキスト形式の自然言語入力を解釈してユーザ意図を推測し、推測されたユーザ意図に基づきアクションを実行する任意の情報処理システムを指してもよい。例えば、推測されたユーザの意図を実行するために、システムは、以下の１つ以上を実行することができる。すなわち、推測されたユーザの意図を実現するために設計されたステップ及びパラメータを有するタスクフローを特定すること、推測されたユーザの意図からの特定の要件をタスクフローに入力すること、プログラム、方法、サービス、ＡＰＩなどを呼び出すことによりタスクフローを実行すること、並びに音響（例えば、スピーチ）形式及び／又は視覚形式でユーザへの出力応答を生成すること。
【００３７】
具体的には、デジタルアシスタントは、少なくとも部分的に、自然言語コマンド、要求、陳述、叙述、及び／又は照会の形でユーザ要求を受け付ける能力を有することができる。通例、ユーザ要求はデジタルアシスタントによる情報回答又はタスクの実行のいずれかを求めることができる。ユーザ要求への満足な応答は、要求された情報回答の提供、要求されたタスクの実行、又は両者の組み合わせとなることができる。例えば、ユーザはデジタルアシスタントに「私は今どこにいますか？」などの質問をしてもよい。ユーザの現在の場所に基づき、デジタルアシスタントは、「あなたはセントラルパーク内の西門の近くにいます」と回答してもよい。ユーザは、例えば、「私の友人を、来週の私のガールフレンドの誕生日パーティーに招待して下さい」のように、タスク実行を要求してもよい。それに応じて、デジタルアシスタントは、「はい、ただ今」と述べることによって要求を確認し、次に、ユーザの代わりに、ユーザの電子アドレス帳に載っているユーザの友人の各々に適切なカレンダ招待状を送信してもよい。要求されたタスクの実行中に、デジタルアシスタントは、長期間にわたる複数の情報交換を伴う継続的ダイアログ内でユーザと時折対話することができる。情報又は様々なタスクの実行を要求するためにデジタルアシスタントと対話する方法は他にも数多く存在する。言葉による応答を提供し、プログラムされたアクションを取ることに加えて、デジタルアシスタントは、他の視覚又はオーディオ形式の応答を、例えば、テキスト、警報、音楽、ビデオ、アニメーション等として、提供することもできる。
【００３８】
図１に示すように、いくつかの実施例では、デジタルアシスタントはクライアントサーバモデルに従って実装することができる。デジタルアシスタントは、ユーザデバイス１０４上で実行されるクライアント側部分１０２（以後、「ＤＡクライアント１０２」）、及びサーバシステム１０８上で実行されるサーバ側部分１０６（以後「ＤＡサーバ１０６」）を含むことができる。ＤＡクライアント１０２は１つ以上のネットワーク１１０を通してＤＡサーバ１０６と通信することができる。ＤＡクライアント１０２は、ユーザ対応入力及び出力処理、並びにＤＡサーバ１０６との通信などのクライアント側機能性を提供することができる。ＤＡサーバ１０６は、それぞれのユーザデバイス１０４上に各々常駐する任意の数のＤＡクライアント１０２のためのサーバ側機能性を提供し得る。
【００３９】
いくつかの実施例では、ＤＡサーバ１０６は、クライアント対応Ｉ／Ｏインタフェース１１２、１つ以上の処理モジュール１１４、データ及びモデル１１６、及び外部サービスへのＩ／Ｏインタフェース１１８を含み得る。クライアント対応Ｉ／Ｏインタフェース１１２は、ＤＡサーバ１０６のためのクライアント対応入力及び出力処理を促進することができる。１つ以上の処理モジュール１１４は、音声入力を処理し、自然言語入力に基づいてユーザの意図を決定するために、データ及びモデル１１６を利用することができる。更に、１つ以上の処理モジュール１１４は、タスクの実行を、推測されたユーザの意図に基づいて実行する。いくつかの実施例では、ＤＡサーバ１０６は、タスク完了又は情報取得のために、ネットワーク（単数又は複数）１１０を通して外部サービス１２０と通信し得る。外部サービスへのＩ／Ｏインタフェース１１８はこのような通信を促進することができる。
【００４０】
ユーザデバイス１０４は、任意の好適な電子デバイスであり得る。例えば、ユーザデバイスは、ポータブル多機能デバイス（例えば、図２Ａを参照して以下に説明するデバイス２００）、多機能デバイス（例えば、図４を参照して以下に説明するデバイス４００）、又はパーソナル電子デバイス（例えば、図６Ａ〜図６Ｂを参照して以下に説明するデバイス６００）であり得る。ポータブル多機能デバイスは、例えば、他の機能をも含む携帯電話、例えば、ＰＤＡ及び／又はミュージックプレーヤ機能、であり得る。ポータブル多機能デバイスの特定の実施例は、Ａｐｐｌｅ  Ｉｎｃ．（Ｃｕｐｅｒｔｉｎｏ，Ｃａｌｉｆｏｒｎｉａ）による、ｉＰｈｏｎｅ（登録商標）、ｉＰｏｄ  Ｔｏｕｃｈ（登録商標）、及びｉＰａｄ（登録商標）デバイスを含み得る。ポータブル多機能デバイスの他の実施例は、限定を伴わずに、ラップトップコンピュータ又はタブレットコンピュータを含み得る。更に、いくつかの実施例では、ユーザデバイス１０４は、非ポータブル多機能デバイスであり得る。特に、ユーザデバイス１０４は、デスクトップコンピュータ、ゲームコンソール、テレビ、又はテレビセットトップボックスであり得る。いくつかの実施例では、ユーザデバイス１０４は、タッチ感知面（例えば、タッチスクリーンディスプレイ及び／又はタッチパッド）を含み得る。更に、ユーザデバイス１０４は、１つ以上の他の物理ユーザインタフェースデバイス、例えば、物理キーボード、マウス、及び／又はジョイスティック、を任意選択的に含み得る。電子デバイスの様々な実施例、例えば、多機能デバイス、を以下に詳細に説明する。
【００４１】
通信ネットワーク（単数又は複数）１１０の例としては、ローカルエリアネットワーク（ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ、ＬＡＮ）、及びワイドエリアネットワーク（ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ、ＷＡＮ）、例えば、インターネットを挙げることができる。通信ネットワーク（単数又は複数）１１０は、例えば、イーサネット（登録商標）、ユニバーサルシリアルバス（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ、ＵＳＢ）、ＦＩＲＥＷＩＲＥ（登録商標）、移動通信用のグローバルシステム（Ｇｌｏｂａｌ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｍｏｂｉｌｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ、ＧＳＭ）、拡張データＧＳＭ環境（Ｅｎｈａｎｃｅｄ  Ｄａｔａ  ＧＳＭ  Ｅｎｖｉｒｏｎｍｅｎｔ、ＥＤＧＥ）、符号分割多元接続（ｃｏｄｅ  ｄｉｖｉｓｉｏｎ  ｍｕｌｔｉｐｌｅ  ａｃｃｅｓｓ、ＣＤＭＡ）、時分割多元接続（ｔｉｍｅ  ｄｉｖｉｓｉｏｎ  ｍｕｌｔｉｐｌｅ  ａｃｃｅｓｓ、ＴＤＭＡ）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｗｉ−Ｆｉ（登録商標）、ボイスオーバーインターネットプロトコル（ｖｏｉｃｅ  ｏｖｅｒ  Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ、ＶｏＩＰ）、Ｗｉ−ＭＡＸ（登録商標）、又は任意の他の好適な通信プロトコル等の、様々な有線又は無線プロトコルを含む、任意の周知のネットワークプロトコルを用いて実施することができる。
【００４２】
サーバシステム１０８は、１つ以上の独立型データ処理装置、又はコンピュータの分散型ネットワーク上に実施することができる。いくつかの実施例では、サーバシステム１０８は、また、様々な仮想デバイス及び／又はサードパーティサービスプロバイダ（例えば、サードパーティクラウドサービスプロバイダ）のサービスを利用して、サーバシステム１０８の基本的なコンピューティングリソース及び／又はインフラストラクチャリソースを提供することができる。
【００４３】
いくつかの実施例では、ユーザデバイス１０４は、ＤＡサーバ１０６と、第２のユーザデバイス１２２を介して通信し得る。第２のユーザデバイス１２２は、ユーザデバイス１０４と同様であり得る。例えば、第２のユーザデバイス１２２は、図２Ａ、図４、及び図６Ａ〜図６Ｂを参照して以下に説明する、デバイス２００、デバイス４００、又はデバイス６００と類似し得る。ユーザデバイス１０４は、第２のユーザデバイス１２２に、直接通信接続、例えば、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＮＦＣ、ＢＴＬＥ等を介して、又は、有線ネットワーク又は無線ネットワーク、例えば、ローカルＷｉ−Ｆｉ（登録商標）ネットワーク、を介して通信可能に連結するよう構成され得る。いくつかの実施例では、第２のユーザデバイス１２２は、ユーザデバイス１０４とＤＡサーバ１０６との間のプロキシとして動作するよう構成され得る。例えば、ユーザデバイス１０４のＤＡクライアント１０２は、情報（例えば、ユーザデバイス１０４にて受信したユーザの要求）を、ＤＡサーバ１０６に、第２のユーザデバイス１２２を介して送信するよう構成され得る。ＤＡサーバ１０６は情報を処理し得、関連データ（例えば、ユーザの要求に応じてのデータコンテンツ）を、ユーザデバイス１０４に、第２のユーザデバイス１２２を介して返し得る。
【００４４】
いくつかの実施例では、ユーザデバイス１０４は、データに対する省略された要求を、第２のユーザデバイス１２２に通信し、ユーザデバイス１０４から送信する情報量を減らすよう構成され得る。第２のユーザデバイス１２２は、追加情報を判定し、省略された要求に加えて完全な要求を生成し、ＤＡサーバ１０６に送信するよう構成され得る。このシステムアーキテクチャは、限られた通信能力及び／又は限られたバッテリ電力を有するユーザデバイス１０４（例えば、携帯時計又は類似のコンパクト電子デバイス）を、ＤＡサーバ１０６が提供するサービスに、より強い通信能力及び／又はより大きなバッテリ電力を有する第２のユーザデバイス１２２（例えば、携帯電話、ラップトップコンピュータ、タブレットコンピュータ等）を、ＤＡサーバ１０６へのプロキシとして使用して、好適にアクセス可能とし得る。図１が２つのユーザデバイス１０４及びユーザデバイス１２２のみを示す一方で、システム１００が、ＤＡサーバシステム１０６と通信するよう、このプロキシ構成に構成された任意の数及び種類のユーザデバイスを含み得ることが理解されよう。
【００４５】
図１に示すデジタルアシスタントはクライアント側部分（例えば、ＤＡクライアント１０２）及びサーバ側部分（例えば、ＤＡサーバ１０６）の両方を含むことができるが、いくつかの実施例では、デジタルアシスタントの機能は、ユーザデバイス上にインストールされる独立型アプリケーションとして実装することができる。加えて、デジタルアシスタントのクライアント部分とサーバ部分との間の機能の分配は実施態様によって異なり得る。例えば、いくつかの実施例では、ＤＡクライアントは、ユーザ対応入力及び出力処理機能のみを提供し、デジタルアシスタントの全ての他の機能をバックエンドサーバに委ねるシンクライアントであり得る。
２．電子デバイス
【００４６】
ここで、デジタルアシスタントのクライアント側部分を実装するための電子デバイスの実施形態に注目する。図２Ａは、いくつかの実施形態に係る、タッチ感知ディスプレイシステム２１２を備えるポータブル多機能デバイス２００を示すブロック図である。タッチ感知ディスプレイ２１２は、便宜上「タッチスクリーン」と呼ばれる場合があり、タッチ感知ディスプレイシステムとして、既知である場合又は呼ばれる場合もある。デバイス２００は、メモリ２０２（任意選択的に、１つ以上のコンピュータ可読記憶媒体を含む）、メモリコントローラ２２２、１つ以上の処理ユニット（ＣＰＵ）２２０、周辺機器インタフェース２１８、ＲＦ回路２０８、オーディオ回路２１０、スピーカ２１１、マイクロフォン２１３、入出力（Ｉ／Ｏ）サブシステム２０６、他の入力制御デバイス２１６、及び外部ポート２２４を含む。デバイス２００は、１つ以上の光センサ２６４を任意選択的に含む。デバイス２００は、デバイス２００（例えば、デバイス２００のタッチ感知ディスプレイシステム２１２などのタッチ感知面）上の接触の強度を検出するための、１つ以上の接触強度センサ２６５を任意選択的に含む。デバイス２００は、デバイス２００上に触知出力を生成する（例えば、デバイス２００のタッチ感知ディスプレイシステム２１２又はデバイス４００のタッチパッド４５５などの、タッチ感知面上に触知出力を生成する）ための、１つ以上の触知出力生成器２６７を任意選択的に含む。これらの構成要素は、１つ以上の通信バス又は信号ライン２０３を介して任意選択的に通信する。
【００４７】
本明細書及び特許請求の範囲で使用される時、タッチ感知面上の接触の「強度」という用語は、タッチ感知面上の接触（例えば、指接触）の力又は圧力（単位面積当りの力）、あるいはタッチ感知面上の接触の力又は圧力の代替物（代用物）を指す。接触の強度は、少なくとも４つの別個の数値を含み、より典型的には、何百もの異なる数値（例えば、少なくとも２５６）を含む、数値の範囲を有する。接触の強度は、様々な方法及び様々なセンサ、又はセンサの組み合わせを使用して、任意選択的に、判定（又は、測定）される。例えば、タッチ感知面の下に又は隣接して配置された１つ以上の力センサは、タッチ感知面上の様々な点における力を測定するために、任意選択的に使用される。いくつかの実装において、複数の力センサの力測定値を組み合わせて（例えば、加重平均）、接触力の推定値を判定する。同様に、スタイラスの感圧性先端部を任意選択的に使用して、タッチ感知面上のスタイラスの圧力を判定する。あるいは、タッチ感知面上で検出される接触領域のサイズ及び／又はその変化、接触に近接するタッチ感知面の電気容量及び／又はその変化、並びに／若しくは、接触に近接するタッチ感知面の抵抗及び／又はその変化が、タッチ感知面上の接触の力又は圧力の代替物として、任意選択的に用いられる。いくつかの実装では、接触の力又は圧力の代替的測定値は、強度閾値を超えているか否かを判定するために直接に用いられる（例えば、強度閾値は、代替的測定値に対応する単位で記述される）。いくつかの実装では、接触の力又は圧力の代替的測定値は、推定される力又は圧力に変換され、この推定される力又は圧力を用いて、強度閾値を超えているか否かを判定する（例えば、強度閾値は、圧力の単位で測定された圧力閾値である）。接触の強度をユーザ入力の属性として使用することにより、アフォーダンスを（例えば、タッチ感知ディスプレイ上に）表示するための、及び／又は、ユーザ入力を（例えば、タッチ感知ディスプレイ、タッチ感知面、又はノブ若しくはボタンなどの物理的／機械的制御部を介して）受信するための、面積が制限されている、低減されたサイズのデバイス上で、他の場合であればユーザによってアクセスすることが不可能であり得る、追加的なデバイス機能への、ユーザのアクセスが可能となる。
【００４８】
本明細書及び特許請求の範囲で使用される時、用語「触知出力」は、ユーザの触覚でユーザによって検出されることになる、デバイスの従前の位置に対するデバイスの物理的変位、デバイスの構成要素（例えば、タッチ感知面）の、デバイスの別の構成要素（例えば、筐体）に対する物理的変位、又はデバイスの質量中心に対する構成要素の変位を指す。例えば、デバイス又はデバイスの構成要素が、タッチに敏感なユーザの表面（例えば、ユーザの手の指、手のひら、又は他の部分）に接触している状況において、物理的変位によって生成された触知出力は、デバイス又はデバイスの構成要素の物理的特性の認識された変化に相当する触感として、ユーザによって解釈される。例えば、タッチ感知面（例えば、タッチ感知ディスプレイ又はトラックパッド）の移動は、ユーザによって、物理アクチュエータボタンの「ダウンクリック」又は「アップクリック」として任意選択的に解釈される。いくつかの場合、ユーザの動作により物理的に押された（例えば、変位された）タッチ感知面に関連付けられた物理アクチュエータボタンの移動がない時でさえ、ユーザは「ダウンクリック」又は「アップクリック」などの触感を感じるであろう。別の例として、タッチ感知面の移動は、タッチ感知面の平滑度に変化がない場合であっても、ユーザによって、そのタッチ感知面の「粗さ」として、任意選択的に解釈又は感知される。そのようなユーザによるタッチの解釈は、ユーザの個人的な感覚認知に左右されるものではあるが、大多数のユーザに共通する、多くのタッチの感覚認知が存在する。したがって、触知出力が、ユーザの特定の感覚認知（例えば、「アップクリック」「ダウンクリック」、「粗さ」）に対応するものと記述される場合、別途記載のない限り、生成された触知出力は、典型的な（又は、平均的な）ユーザの記述された感覚認知を生成するデバイス、又はデバイスの構成要素の物理的変位に対応する。
【００４９】
デバイス２００は、ポータブル多機能デバイスの一実施例にすぎず、デバイス２００は、示されているものよりも多くの構成要素又は少ない構成要素を任意選択的に有し、２つ以上の構成要素を任意選択的に組み合わせるか、又は、それらの構成要素の異なる構成若しくは配置を任意選択的に有することが理解されよう。図２Ａに示す様々な構成要素は、１つ以上の信号処理回路及び／又は特定用途向け集積回路を含む、ハードウェア、ソフトウェア、又はハードウェア及びソフトウェアの双方の組み合わせで実装される。
【００５０】
メモリ２０２は、１つ以上のコンピュータ可読記憶媒体を含んでよい。このコンピュータ可読記憶媒体は、有形かつ非一時的であってよい。メモリ２０２は、高速ランダムアクセスメモリを含んでよく、１つ以上の磁気ディスク記憶デバイス、フラッシュメモリデバイス、又は他の不揮発性ソリッドステートメモリデバイスなどの、不揮発性メモリもまた含んでよい。メモリコントローラ２２２は、デバイス２００の他の構成要素によるメモリ２０２へのアクセスを制御してよい。
【００５１】
いくつかの実施例では、メモリ２０２の非一時的コンピュータ可読記憶媒体は、（例えば、以下に説明するプロセス１０００及びプロセス１１００の態様を実行する）命令を、コンピュータベースのシステム、プロセッサを含むシステム、又は命令実行システム、装置、若しくはデバイスから命令をフェッチすることができ、それらの命令を実行する他のシステムなどの、命令実行システム、装置、若しくはデバイスによる使用、又はそれと関連した使用のために記憶するために用いることができる。他の実施例では、（例えば、以下で説明するプロセス１０００及びプロセス１１００を実行する）命令は、サーバシステム１０８の非一時的コンピュータ可読記憶媒体（図示せず）上に記憶されてもよく、又はメモリ２０２の非一時的コンピュータ可読記憶媒体とサーバシステム１０８の非一時的コンピュータ可読記憶媒体との間で分配されてもよい。本明細書の文脈においては、「非一時的コンピュータ可読記憶媒体」は、命令実行システム、装置、若しくはデバイスによって、又はこれらと共に使用するためのプログラムを収容又は記憶し得る、任意の媒体であることができる。
【００５２】
周辺機器インタフェース２１８を使用して、このデバイスの入力及び出力周辺機器を、ＣＰＵ２２０及びメモリ２０２に連結することができる。１つ以上のプロセッサ２２０は、デバイス２００のための様々な機能を実行するため並びにデータ処理を実行するために、メモリ２０２に記憶された様々なソフトウェアプログラム及び／若しくは命令セットを動作させたり、又は実行したりする。いくつかの実施形態では、周辺機器インタフェース２１８、ＣＰＵ２２０、及びメモリコントローラ２２２は、チップ２０４などのシングルチップ上に実装してもよい。いくつかの他の実施形態では、それらは、別個のチップ上に実装してもよい。
【００５３】
ＲＦ（無線周波数）回路２０８は、電磁信号とも呼ばれるＲＦ信号を送受信する。ＲＦ回路２０８は、電気信号を電磁信号に、又は電磁信号を電気信号に変換し、電磁信号を介して通信ネットワーク及び他の通信デバイスと通信する。ＲＦ回路２０８は、アンテナシステム、ＲＦ送受信機、１つ以上の増幅器、同調器、１つ以上の発振器、デジタル信号プロセッサ、ＣＯＤＥＣチップセット、加入者識別モジュール（ＳＩＭ）カード、メモリなどを含むがこれらに限定されない、これらの機能を実行するための周知の回路を、任意選択的に含む。ＲＦ回路２０８は、ワールドワイドウェブ（ＷＷＷ）とも呼ばれるインターネット、イントラネット、及び／又は、セルラー電話ネットワーク、無線ローカルエリアネットワーク（ＬＡＮ）及び／又は、メトロポリタンエリアネットワーク（ＭＡＮ）、などの無線ネットワーク、及び他のデバイスと無線通信によって、任意選択的に通信する。ＲＦ回路２０８は、近距離通信無線などによる近距離無線通信（ＮＦＣ）フィールドを検出するための周知の回路を任意選択的に含む。無線通信は、複数の通信規格、通信プロトコル、及び通信技術のうちのいずれかを、任意選択的に使用する。これらとしては、移動通信用のグローバルシステム（Global System for Mobile Communications、ＧＳＭ（登録商標））、拡張データＧＳＭ環境（Enhanced Data GSM Environment、ＥＤＧＥ）、高速ダウンリンクパケットアクセス（high-speed downlink packet access、ＨＳＤＰＡ）、高速アップリンクパケットアクセス（high-speed uplink packet access、ＨＳＵＰＡ）、Ｅｖｏｌｕｔｉｏｎ，Ｄａｔａ−Ｏｎｌｙ（ＥＶ−ＤＯ）、ＨＳＰＡ、ＨＳＰＡ＋、２重セルＨＳＰＡ（Dual-Cell HSPDA、ＤＣ−ＨＳＰＤＡ）、ロングタームエボリューション（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、ＳＭＳ）、あるいは本文書の出願日現在までに���だ開発されていない通信プロトコルを含めた任意の他の好適な通信プロトコル、が挙げられるが、これらに限定されない。
【００５４】
オーディオ回路２１０、スピーカ２１１、及びマイクロフォン２１３は、ユーザとデバイス２００との間のオーディオインタフェースを提供する。オーディオ回路２１０は、周辺機器インタフェース２１８からオーディオデータを受信し、このオーディオデータを電気信号に変換し、この電気信号をスピーカ２１１に送信する。スピーカ２１１は、電気信号を人間の可聴音波に変換する。オーディオ回路２１０は、マイクロフォン２１３により音波から変換された電気信号もまた受信する。オーディオ回路２１０は、電気信号をオーディオデータに変換し、処理するためにオーディオデータを周辺機器インタフェース２１８に送信する。オーディオデータは、周辺機器インタフェース２１８によって、メモリ２０２及び／又はＲＦ回路２０８から取得され、かつ／あるいは、それらに送信されてもよい。いくつかの実施形態では、オーディオ回路２１０はヘッドセットジャック（例えば、図３の３１２）を更に備える。ヘッドセットジャックは、オーディオ回路２１０と、出力専用ヘッドホン又は出力（例えば、片耳又は両耳用のヘッドホン）及び入力（例えば、マイクロフォン）の双方を有するヘッドセットなどの、取り外し可能なオーディオ入出力周辺機器と、の間のインタフェースを提供する。
【００５５】
Ｉ／Ｏサブシステム２０６は、周辺機器インタフェース２１８に、タッチスクリーン２１２及び他の入力制御デバイス２１６などのデバイス２００の入出力周辺機器を連結する。Ｉ／Ｏサブシステム２０６は、任意選択的に、ディスプレイコントローラ２５６、光センサコントローラ２５８、強度センサコントローラ２５９、触覚フィードバックコントローラ２６１、及び他の入力若しくは制御デバイスのための１つ以上の入力コントローラ２６０を含む。１つ以上の入力コントローラ２６０は、他の入力制御デバイス２１６との間で、電気信号を受信／送信する。他の入力制御デバイス２１６は、任意選択的に、物理ボタン（例えば、プッシュボタン、ロッカボタンなど）、ダイヤル、スライダスイッチ、ジョイスティック、クリックホイールなどを含む。いくつかの代替的実施形態では、入力コントローラ（単数又は複数）２６０は、任意選択的に、キーボード、赤外線ポート、ＵＳＢポート、及びマウスなどのポインタデバイスのうちのいずれかに連結される（又は、いずれにも連結されない）。１つ以上のボタン（例えば、図３の３０８）は、任意選択的に、スピーカ２１１及び／又はマイクロフォン２１３の音量調節のための、アップ／ダウンボタンを含む。１つ以上のボタンは、任意選択的に、プッシュボタン（例えば、図３の３０６）を含む。
【００５６】
２００５年１２月２３日に出願された、米国特許第７，６５７，８４９号である米国特許出願第１１／３２２，５４９号、「Ｕｎｌｏｃｋｉｎｇ  ａ  Ｄｅｖｉｃｅ  ｂｙ  Ｐｅｒｆｏｒｍｉｎｇ  Ｇｅｓｔｕｒｅｓ  ｏｎ  ａｎ  Ｕｎｌｏｃｋ  Ｉｍａｇｅ」に記載されているように、プッシュボタンの素早い押し下げにより、タッチスクリーン２１２のロックを解除するか、又はデバイスのロック解除にタッチスクリーン上のジェスチャを用いる処理を開始してもよい。この特許は、その全体が本明細書において参照により組み込まれている。プッシュボタン（例えば、３０６）をより長く押し下げることにより、デバイス２００の電源をオンオフすることができる。ユーザは、１つ以上のボタンの機能をカスタマイズすることができる。タッチスクリーン２１２は、仮想又はソフトボタン、及び１つ以上のソフトキーボードを実現するために用いられる。
【００５７】
タッチ感知ディスプレイ２１２は、デバイスとユーザとの間の入力インタフェース及び出力インタフェースを提供する。ディスプレイコントローラ２５６は、タッチスクリーン２１２から電気信号を受信し、それへ電気信号を送信する。タッチスクリーン２１２は、ユーザに視覚出力を表示する。この視覚出力としては、グラフィック、テキスト、アイコン、ビデオ、及びそれらの任意の組み合わせ（「グラフィック」と総称される）を挙げることができる。いくつかの実施形態では、視覚出力の一部又は全てはユーザインタフェースオブジェクトに対応してもよい。
【００５８】
タッチスクリーン２１２は、触覚及び／若しくは触感の接触に基づくユーザからの入力を受け付けるタッチ感知面、センサ、又はセンサのセットを有している。タッチスクリーン２１２及びディスプレイコントローラ２５６は（メモリ２０２内の任意の関連モジュール及び／又は命令セットと共に）、タッチスクリーン２１２上で接触（及び任意の接触の移動又は中断）を検出し、検出された接触をタッチスクリーン２１２上に表示されたユーザインタフェースオブジェクト（例えば、１つ以上のソフトキー、アイコン、ウェブページ、又は画像）との対話に変換する。例示的な実施形態では、タッチスクリーン２１２とユーザとの間の接触点は、ユーザの指に対応する。
【００５９】
タッチスクリーン２１２は、ＬＣＤ（liquid crystal display、液晶ディスプレイ）技術、ＬＰＤ（light emitting polymer display、発光ポリマーディスプレイ）技術、又はＬＥＤ（light emitting diode、発光ダイオード）技術を用いてもよいが、他の実施形態では、その他のディスプレイ技術を使用してもよい。タッチスクリーン２１２及びディスプレイコントローラ２５６は、現在既知の、又は今後開発される複数のタッチ感知技術のうちのいずれかを使用して、接触、及びその接触のあらゆる移動若しくは中断を検出することができ、これらの技術としては、静電容量技術、抵抗性技術、赤外線技術、及び表面弾性波技術、並びにタッチスクリーン２１２との１つ以上の接触点を判定するための、他の近接センサアレイ又は他の要素、が挙げられるが、これらに限定されない。例示的な実施形態では、Ｃａｌｉｆｏｒｎｉａ州ＣｕｐｅｒｔｉｎｏのＡｐｐｌｅ  Ｉｎｃ．によるｉＰｈｏｎｅ（登録商標）及びｉＰｏｄ  Ｔｏｕｃｈ（登録商標）において見られるような、投影型相互静電容量感知技術が使用されている。
【００６０】
タッチスクリーン２１２のいくつかの実施形態におけるタッチ感知ディスプレイは、以下の米国特許、第６，３２３，８４６号明細書（Ｗｅｓｔｅｒｍａｎら）、第６，５７０，５５７号明細書（Ｗｅｓｔｅｒｍａｎら）、及び／又は第６，６７７，９３２号明細書（Ｗｅｓｔｅｒｍａｎ）、及び／又は米国特許出願公開第２００２／００１５０２４（Ａ１）号明細書に記載されているマルチタッチ感知タッチパッドに類似し得る。これらの文献は、それぞれその全体が本明細書において参照により組み込まれている。ただし、タッチスクリーン２１２はデバイス２００からの視覚出力を表示するのに対して、タッチ感知タッチパッドは視覚出力を提供しない。
【００６１】
タッチスクリーン２１２のいくつかの実施形態におけるタッチ感知ディスプレイは、以下の出願で説明されているとおりにすることができる。（１）２００６年５月２日出願の米国特許出願第１１／３８１，３１３号明細書、「Ｍｕｌｔｉｐｏｉｎｔ  Ｔｏｕｃｈ  Ｓｕｒｆａｃｅ  Ｃｏｎｔｒｏｌｌｅｒ」、（２）２００４年５月６日出願の同第１０／８４０，８６２号明細書、「Ｍｕｌｔｉｐｏｉｎｔ  Ｔｏｕｃｈｓｃｒｅｅｎ」、（３）２００４年７月３０日出願の同第１０／９０３，９６４号明細書、「Ｇｅｓｔｕｒｅｓ  Ｆｏｒ  Ｔｏｕｃｈ  Ｓｅｎｓｉｔｉｖｅ  Ｉｎｐｕｔ  Ｄｅｖｉｃｅｓ」、（４）２００５年１月３１日出願の同第１１／０４８，２６４号明細書、「Ｇｅｓｔｕｒｅｓ  Ｆｏｒ  Ｔｏｕｃｈ  Ｓｅｎｓｉｔｉｖｅ  Ｉｎｐｕｔ  Ｄｅｖｉｃｅｓ」、（５）２００５年１月１８日出願の同第１１／０３８，５９０号明細書、「Ｍｏｄｅ−Ｂａｓｅｄ  Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅｓ  Ｆｏｒ  Ｔｏｕｃｈ  Ｓｅｎｓｉｔｉｖｅ  Ｉｎｐｕｔ  Ｄｅｖｉｃｅｓ」、（６）２００５年９月１６日出願の同第１１／２２８，７５８号明細書、「Ｖｉｒｔｕａｌ  Ｉｎｐｕｔ  Ｄｅｖｉｃｅ  Ｐｌａｃｅｍｅｎｔ  Ｏｎ  Ａ  Ｔｏｕｃｈ  Ｓｃｒｅｅｎ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ」、（７）２００５年９月１６日出願の同第１１／２２８，７００号明細書、「Ｏｐｅｒａｔｉｏｎ  Ｏｆ  Ａ  Ｃｏｍｐｕｔｅｒ  Ｗｉｔｈ  Ａ  Ｔｏｕｃｈ  Ｓｃｒｅｅｎ  Ｉｎｔｅｒｆａｃｅ」、（８）２００５年９月１６日出願の同第１１／２２８，７３７号明細書、「Ａｃｔｉｖａｔｉｎｇ  Ｖｉｒｔｕａｌ  Ｋｅｙｓ  Ｏｆ  Ａ  Ｔｏｕｃｈ−Ｓｃｒｅｅｎ  Ｖｉｒｔｕａｌ  Ｋｅｙｂｏａｒｄ」、及び（９）２００６年３月３日出願の同第１１／３６７，７４９号明細書、「Ｍｕｌｔｉ−Ｆｕｎｃｔｉｏｎａｌ  Ｈａｎｄ−Ｈｅｌｄ  Ｄｅｖｉｃｅ」。これらの出願の全ては、全体が参照により本明細書に組み込まれる。
【００６２】
タッチスクリーン２１２は、１００ｄｐｉを超えるビデオ解像度を有し得る。いくつかの実施形態では、タッチスクリーンは約１６０ｄｐｉのビデオ解像度を有する。ユーザは、スタイラス、指などの、任意の好適な物体又は付属物を使用して、タッチスクリーン２１２と接触することができる。いくつかの実施形態では、ユーザインタフェースは、主として指に基づく接触及びジェスチャによって機能するように設計され、タッチスクリーン上の指の接触面積が広いことにより、スタイラスに基づく入力よりも精度が低いことがある。いくつかの実施形態では、デバイスは、指に基づく粗い入力を正確なポインタ／カーソル位置又はユーザの望むアクションを実行するためのコマンドに変換する。
【００６３】
いくつかの実施形態では、タッチスクリーンに加えて、デバイス２００は、特定の機能を起動又は停止させるためのタッチパッド（図示せず）を含んでもよい。いくつかの実施形態では、タッチパッドは、タッチスクリーンとは異なり、視覚出力を表示しない、デバイスのタッチ感知領域である。タッチパッドは、タッチスクリーン２１２とは別個のタッチ感知面、又はタッチスクリーンによって形成されるタッチ感知面の拡張部とすることができる。
【００６４】
デバイス２００はまた、様々な構成要素に電力を供給するための電力システム２６２をも含む。電力システム２６２は、電力管理システム、１つ以上の電源（例えば、バッテリ、交流（ＡＣ））、再充電システム、停電検出回路、電力コンバータ又はインバータ、電力状態インジケータ（例えば、発光ダイオード（ＬＥＤ））、並びにポータブルデバイスにおける電力の生成、管理、及び分配に関連する任意の他の構成要素を含んでもよい。
【００６５】
デバイス２００はまた、１つ以上の光センサ２６４を含んでもよい。図２Ａは、Ｉ／Ｏサブシステム２０６内の光センサコントローラ２５８に連結された光センサを示す。光センサ２６４は、電荷結合デバイス（ＣＣＤ）又は相補的金属酸化物半導体（ＣＭＯＳ）フォトトランジスタを含んでもよい。光センサ２６４は、１つ以上のレンズを通して投影された、環境からの光を受光し、その光を、画像を表すデータに変換する。撮像モジュール２４３（カメラモジュールとも呼ばれる）と連携して、光センサ２６４は静止画像又はビデオをキャプチャすることができる。いくつかの実施形態では、タッチスクリーンディスプレイを静止画像及び／又はビデオ画像取得のためのビューファインダとして使用することができるように、デバイスの前面のタッチスクリーンディスプレイ２１２の反対側である、デバイス２００の背面に光センサが配置されている。いくつかの実施形態では、ユーザが他のテレビ会議参加者をタッチスクリーンディスプレイ上で見るのと同時に、そのユーザの画像をテレビ会議のために得ることができるように、デバイスの前面に光センサが配置されている。いくつかの実施形態では、光センサ２６４の位置は、ユーザによって（例えば、デバイス筐体内のレンズ及びセンサを回転させることによって）変更することができ、それにより、テレビ会議並びに静止画像及び／又はビデオ画像の取得の双方のために、単一の光センサ２６４を、タッチスクリーンディスプレイと共に使用することができる。
【００６６】
デバイス２００はまた、１つ以上の接触強度センサ２６５も任意選択的に含む。図２Ａは、Ｉ／Ｏサブシステム２０６内の強度センサコントローラ２５９に連結された、接触強度センサを示す。接触強度センサ２６５は、１つ以上のピエゾ抵抗ひずみゲージ、電気容量式力センサ、電気力センサ、圧電力センサ、光学力センサ、容量式タッチ感知面、又は他の強度センサ（例えば、タッチ感知面上の接触の力（又は圧力）を測定するために使用するセンサ）を、任意選択的に含む。接触強度センサ２６５は、環境から接触強度情報（例えば、圧力情報又は圧力情報の代用物）を受信する。いくつかの実施形態では、少なくとも１つの接触強度センサが、タッチ感知面（例えば、タッチ感知ディスプレイシステム２１２）に配置されているか、又は、それに近接している。いくつかの実施形態において、少なくとも１つの接触強度センサが、デバイス２００の前面に配置されたタッチスクリーンディスプレイ２１２の反対側である、デバイス２００の背面に配置されている。
【００６７】
デバイス２００は１つ以上の近接センサ２６６を含んでもよい。図２Ａは、周辺機器インタフェース２１８と連結された近接センサ２６６を示す。あるいは、近接センサ２６６は、Ｉ／Ｏサブシステム２０６内の入力コントローラ２６０に連結されてもよい。近接センサ２６６は、米国特許出願第１１／２４１，８３９号明細書、「Ｐｒｏｘｉｍｉｔｙ  Ｄｅｔｅｃｔｏｒ  Ｉｎ  Ｈａｎｄｈｅｌｄ  Ｄｅｖｉｃｅ」、同第１１／２４０，７８８号明細書、「Ｐｒｏｘｉｍｉｔｙ  Ｄｅｔｅｃｔｏｒ  Ｉｎ  Ｈａｎｄｈｅｌｄ  Ｄｅｖｉｃｅ」、同第１１／６２０，７０２号明細書、「Ｕｓｉｎｇ  Ａｍｂｉｅｎｔ  Ｌｉｇｈｔ  Ｓｅｎｓｏｒ  Ｔｏ  Ａｕｇｍｅｎｔ  Ｐｒｏｘｉｍｉｔｙ  Ｓｅｎｓｏｒ  Ｏｕｔｐｕｔ」、同第１１／５８６，８６２号明細書、「Ａｕｔｏｍａｔｅｄ  Ｒｅｓｐｏｎｓｅ  Ｔｏ  Ａｎｄ  Ｓｅｎｓｉｎｇ  Ｏｆ  Ｕｓｅｒ  Ａｃｔｉｖｉｔｙ  Ｉｎ  Ｐｏｒｔａｂｌｅ  Ｄｅｖｉｃｅｓ」、及び、同第１１／６３８，２５１号明細書、「Ｍｅｔｈｏｄｓ  Ａｎｄ  Ｓｙｓｔｅｍｓ  Ｆｏｒ  Ａｕｔｏｍａｔｉｃ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｏｆ  Ｐｅｒｉｐｈｅｒａｌｓ」で説明されるように機能し得るものであり、これらの出願は、全体が参照により本明細書に組み込まれる。いくつかの実施形態では、多機能デバイスがユーザの耳の近くに配置される場合（例えば、ユーザが電話で通話している場合）、近接センサは、タッチスクリーン２１２をオフにして無効化する。
【００６８】
デバイス２００はまた、１つ以上の触知出力生成器２６７も任意選択的に含む。図２Ａは、Ｉ／Ｏサブシステム２０６内の触覚フィードバックコントローラ２６１に連結された、触知出力生成器を示す。触知出力生成器２６７は、スピーカ又は他のオーディオ構成要素などの１つ以上の電気音響デバイス、及び／又はモータ、ソレノイド、電気活性ポリマー、圧電アクチュエータ、静電アクチュエータ、若しくは他の触知出力生成構成要素（例えば、デバイス上で電気信号を触知出力に変換する構成要素）などの、エネルギーを直線運動に変換する電気機械デバイスを、任意選択的に含む。接触強度センサ２６５は、触覚フィードバックモジュール２３３から触覚フィードバック生成命令を受信し、デバイス２００のユーザが感知できる触知出力をデバイス２００上で生成する。いくつかの実施形態では、少なくとも１つの触知出力生成器は、タッチ感知面（例えば、タッチ感知ディスプレイシステム２１２）に配置されているか、又はそれに近接しており、任意選択的に、タッチ感知面を垂直方向（例えば、デバイス２００の表面の内／外）に、又は横方向（例えば、デバイス２００の表面と同じ平面内の前後）に動かすことによって、触知出力を生成する。いくつかの実施形態では、少なくとも１つの触知出力生成器センサは、デバイス２００の前面に配置されたタッチスクリーンディスプレイ２１２の反対側である、デバイス２００の背面に配置されている。
【００６９】
デバイス２００はまた、１つ以上の加速度計２６８も含み得る。図２Ａは、周辺機器インタフェース２１８に連結された加速度計２６８を示す。あるいは、加速度計２６８は、Ｉ／Ｏサブシステム２０６内の入力コントローラ２６０に連結されてもよい。加速度計２６８は、米国特許出願公開第２００５０１９００５９号明細書、「Ａｃｃｅｌｅｒａｔｉｏｎ−ｂａｓｅｄ  Ｔｈｅｆｔ  Ｄｅｔｅｃｔｉｏｎ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｐｏｒｔａｂｌｅ  Ｅｌｅｃｔｒｏｎｉｃ  Ｄｅｖｉｃｅｓ」、及び同第２００６００１７６９２号明細書、「Ｍｅｔｈｏｄｓ  Ａｎｄ  Ａｐｐａｒａｔｕｓｅｓ  Ｆｏｒ  Ｏｐｅｒａｔｉｎｇ  Ａ  Ｐｏｒｔａｂｌｅ  Ｄｅｖｉｃｅ  Ｂａｓｅｄ  Ｏｎ  Ａｎ  Ａｃｃｅｌｅｒｏｍｅｔｅｒ」で説明されるように機能し得るものであり、これらの文献の双方は、全体が参照により本明細書に組み込まれる。いくつかの実施形態では、情報は、１つ以上の加速度計から受信したデータの分析に基づいて、縦長表示又は横長表示でタッチスクリーンディスプレイ上に表示される。デバイス２００は、加速度計（単数又は複数）２６８に加えて、磁気計（図示せず）並びにデバイス２００の位置及び向き（例えば、縦長又は横長）に関する情報を取得するためのＧＰＳ（又はＧＬＯＮＡＳＳ又は他のグローバルナビゲーションシステム）受信部（図示せず）を、任意選択的に含む。
【００７０】
いくつかの実施形態では、メモリ２０２に記憶されたソフトウェア構成要素は、オペレーティングシステム２２６、通信モジュール（又は命令セット）２２８、接触／動きモジュール（又は命令セット）２３０、グラフィックモジュール（又は命令セット）２３２、テキスト入力モジュール（又は命令セット）２３４、全地球測位システム（ＧＰＳ）モジュール（又は命令セット）２３５、デジタルアシスタントクライアントモジュール２２９、及びアプリケーション（又は命令セット）２３６を含む。更に、メモリ２０２は、データ及びモデル、例えば、ユーザデータ及びモデル２３１を記憶し得る。更に、いくつかの実施形態では、図２Ａ及び図４に示すように、メモリ２０２（図２Ａ）又はメモリ４７０（図４）は、デバイス／グローバル内部状態２５７を記憶する。デバイス／グローバル内部状態２５７は、以下の１つ以上を含む：現在アクティブ状態のアプリケーションがある場合、どのアプリケーションがアクティブかを示す、アクティブアプリケーション状態、どのアプリケーション、ビュー、又は他の情報がタッチスクリーンディスプレイ２１２の様々な領域を占領しているかを示す、表示状態、デバイスの様々なセンサ及び入力制御デバイス２１６から得られる情報を含む、センサ状態、及び、デバイスの位置及び／又は姿勢に関する位置情報。
【００７１】
オペレーティングシステム２２６（例えば、Ｄａｒｗｉｎ（登録商標）、ＲＴＸＣ（登録商標）、ＬＩＮＵＸ（登録商標）、ＵＮＩＸ（登録商標）、ＯＳ  Ｘ（登録商標）、ｉＯＳ（登録商標）、ＷＩＮＤＯＷＳ（登録商標）、又はＶｘＷｏｒｋｓ（登録商標）などの組み込みオペレーティングシステム）は、一般的なシステムタスク（例えば、メモリ管理、記憶デバイス制御、電力管理など）を制御及び管理するための様々なソフトウェアコンポーネント及び／又はドライバを含み、様々なハードウェア構成要素とソフトウェア構成要素との間の通信を容易にする。
【００７２】
通信モジュール２２８は、１つ以上の外部ポート２２４を通して、他のデバイスとの通信を容易にし、ＲＦ回路２０８及び／又は外部ポート２２４が受信したデータを処理するための様々なソフトウェア構成要素をも含む。外部ポート２２４（例えば、ユニバーサルシリアルバス（ＵＳＢ）、ＦＩＲＥＷＩＲＥ（登録商標）など）は、直接的に、又はネットワーク（例えば、インターネット、無線ＬＡＮなど）を通して間接的に、他のデバイスに連結するように適応している。いくつかの実施形態では、外部ポートは、ｉＰｏｄ（登録商標）（Ａｐｐｌｅ  Ｉｎｃ．の商標）デバイス上で使用される３０ピンコネクタと同じか、若しくは同様のマルチピン（例えば、３０ピン）コネクタ、及び／又は互換性のあるマルチピン（例えば、３０ピン）コネクタである。
【００７３】
接触／動きモジュール２３０は、任意選択的に、（ディスプレイコントローラ２５６と連携して）タッチスクリーン２１２との接触、及び他のタッチ感知デバイス（例えば、タッチパッド又は物理クリックホイール）との接触を検出する。接触／動きモジュール２３０は、接触が生じたか否かを判定すること（例えば、指を下ろすイベントを検出すること）、接触の強度（例えば、接触の力若しくは圧力、又は、接触の力若しくは圧力の代替物）を判定すること、接触の移動が存在するか否かを判定し、タッチ感知面を横断する移動を追跡すること（例えば、指をドラッグする１つ以上のイベントを検出すること）、及び接触が停止したか否かを判定すること（例えば、指を上げるイベント又は接触の中断を検出すること）などの、接触の検出に関する様々な動作を実行するための、様々なソフトウェア構成要素を含む。接触／動きモジュール２３０は、タッチ感知面から接触データを受信する。一連の接触データにより表される接触点の移動を判定することは、接触点の速さ（大きさ）、速度（大きさ及び方向）、及び／又は加速度（大きさ及び／又は方向の変化）を判定することを任意選択的に含む。これらの動作は、任意選択的に、単一の接触（例えば、１本の指の接触）又は複数の同時接触（例えば、「マルチタッチ」／複数の指の接触）に適用される。いくつかの実施形態では、接触／動きモジュール２３０及びディスプレイコントローラ２５６は、タッチパッド上の接触を検出する。
【００７４】
いくつかの実施形態では、接触／動きモジュール２３０は、ユーザによって動作が実行されたか否かを判定するための（例えば、ユーザがアイコン上で「クリック」したか否かを判定するための）、１つ以上の強度閾値のセットを使用する。いくつかの実施形態において、少なくとも強度閾値のサブセットが、ソフトウェアパラメータに従って判定される（例えば、強度閾値は、特定の物理アクチュエータのアクティブ化閾値によって判定されず、デバイス２００の物理ハードウェアを変更することなく調整し得る）。例えば、トラックパッド又はタッチスクリーンディスプレイのマウス「クリック」閾値は、トラックパッド又はタッチスクリーンディスプレイのハードウェアを変更することなく広範囲の既定の閾値のうちのいずれかに設定することができる。更に、いくつかの実装では、デバイスのユーザには、（例えば、個々の強度閾値を調整することにより、及び／又は、システムレベルのクリック「強度」パラメータにより、一度に複数の強度閾値を調整することによって）強度閾値のセットのうちの１つ以上を調整するためのソフトウェア設定が提供される。
【００７５】
接触／動きモジュール２３０は任意選択的に、ユーザによるジェスチャ入力を検出する。タッチ感知面上の異なるジェスチャは、異なる接触パターン（例えば、異なる動き、タイミング、及び／又は検出される接触の強度）を有する。したがって、ジェスチャは、特定の接触パターンを検出することによって、任意選択的に検出される。例えば、指のタップジェスチャを検出することは、（例えば、アイコンの位置での）指を下ろすイベントを検出し、続いてその指を下ろすイベントと同じ位置（又は、実質的に同じ位置）で指を上げる（リフトオフ）イベントを検出することを含む。別の実施例として、タッチ感知面上での指のスワイプジェスチャを検出することは、指を下ろすイベントを検出し、続いて、１つ以上の、指をドラッグするイベントを検出し、その後、続いて指を上げる（リフトオフ）イベントを検出することを含む。
【００７６】
グラフィックモジュール２３２は、表示されるグラフィックの視覚的効果（例えば、輝度、透明度、彩度、コントラスト、又は他の視覚特性）を変更するための構成要素を含めた、タッチスクリーン２１２又は他のディスプレイ上にグラフィックをレンダリングして表示するための、様々な既知のソフトウェア構成要素を含む。本明細書にて使用される時、用語「グラフィック」は、ユーザに対して表示することができる任意のオブジェクトを含み、これらのオブジェクトとしては、テキスト、ウェブページ、アイコン（ソフトキーを含むユーザインタフェースオブジェクトなど）、デジタル画像、ビデオ、アニメーションなどが挙げられるが、これらに限定されない。
【００７７】
いくつかの実施形態では、グラフィックモジュール２３２は、使用されるグラフィックを表すデータを記憶する。各グラフィックには、対応するコードが、任意選択的に割り当てられる。グラフィックモジュール２３２は、アプリケーションなどから、必要に応じて、座標データ及び他のグラフィック特性データと共に、表示されるグラフィックを指定する１つ以上のコードを受信し、次にディスプレイコントローラ２５６に出力する画面の画像データを生成する。
【００７８】
触覚フィードバックモジュール２３３は、デバイス２００とのユーザ対話に応じて、デバイス２００上の１つ以上の場所で触知出力を生成するために、触知出力生成器（単数又は複数）２６７によって使用される命令を生成するための、様々なソフトウェア構成要素を含む。
【００７９】
テキスト入力モジュール２３４は、グラフィックモジュール２３２の構成要素であってもよく、様々なアプリケーション（例えば、連絡先２３７、電子メール２４０、ＩＭ２４１、ブラウザ２４７、及び、テキスト入力を必要とする任意の他のアプリケーション）でテキストを入力するための、ソフトキーボードを提供する。
【００８０】
ＧＰＳモジュール２３５は、デバイスの位置を判定し、この情報を、様々なアプリケーションでの使用のために提供する（例えば、位置に基づいての電話での使用のために電話２３８へ、写真／ビデオメタデータとしてカメラ２４３へ、及び、気象ウィジェット、ローカルイエローページウィジェット、及び地図／ナビゲーションウィジェットなどの、位置に基づくサービスを提供するアプリケーションへ）。
【００８１】
デジタルアシスタントクライアントモジュール２２９は様々なクライアント側デジタルアシスタント命令を含み得て、デジタルアシスタントのクライアント側機能性を提供する。例えば、デジタルアシスタントクライアントモジュール２２９は、ポータブル多機能デバイス２００の様々なユーザインタフェース（例えば、マイクロフォン２１３、加速度計（単数又は複数）２６８、タッチ感知ディスプレイシステム２１２、光センサ（単数又は複数）２２９、他の入力制御デバイス２１６、等）を通しての声の入力（例えば、音声入力）、テキスト入力、タッチ入力、及び／又はジェスチャ入力を受信可能であり得る。デジタルアシスタントクライアントモジュール２２９はまた、ポータブル多機能デバイス２００の様々な出力インタフェース（例えば、スピーカ２１１、タッチ感知ディスプレイシステム２１２、触知出力生成器（単数又は複数）２６７、等）を通しての、オーディオ（例えば、音声出力）、視覚、及び／又は触知の形態での出力を提供可能であり得る。例えば、出力は、音声、音響、警報、テキストメッセージ、メニュー、グラフィック、ビデオ、アニメーション、振動、及び／又は上記の２つ以上の組み合わせとして提供されてもよい。動作時、デジタルアシスタントクライアントモジュール２２９は、ＲＦ回路２０８を用いてＤＡサーバ１０６と通信し得る。
【００８２】
ユーザデータ及びモデル２３１は、ユーザに関連付けられた様々なデータ（例えば、ユーザ特有の語彙データ、ユーザ嗜好性データ、ユーザ特有の名前の発音、ユーザの電子アドレス帳からのデータ、ｔｏ  ｄｏリスト、買い物リスト、等）を含み得て、デジタルアシスタントのクライアント側機能性を提供する。更に、ユーザデータ及びモデル２３１は、ユーザ入力を処理し、ユーザの意図を判定するための様々なモデル（例えば、音声認識モデル、統計的言語モデル、自然言語処理モデル、オントロジ、タスクフローモデル、サービスモデル、等）を含み得る。
【００８３】
いくつかの実施例では、デジタルアシスタントクライアントモジュール２２９は、ポータブル多機能デバイス２００の様々なセンサ、サブシステム、及び周辺機器を使用し得て、ポータブル多機能デバイス２００の周囲環境から追加情報を収集し、ユーザ、現在のユーザ対話及び／又は現在のユーザ入力に関連付けられたコンテキストを確立する。いくつかの実施例では、デジタルアシスタントクライアントモジュール２２９は、ユーザの意図の推測を助けるために、ユーザ入力と共にコンテキスト情報又はそのサブセットをＤＡサーバ１０６に提供することができる。いくつかの実施例では、デジタルアシスタントはまた、ユーザへの出力をどのように準備し、配信するかを決定するために、コンテキスト情報を用いることができる。コンテキスト情報は、コンテキストデータとも呼ばれ得る。
【００８４】
いくつかの実施例では、ユーザ入力に伴うコンテキスト情報は、センサ情報、例えば、周囲環境の照明、周囲ノイズ、周囲温度、画像又は映像等を含み得る。いくつかの実施例では、コンテキスト情報は、デバイスの物理状態、例えば、デバイスの向き、デバイスの位置、デバイスの温度、電力レベル、速度、加速度、運動パターン、セルラー信号強度等をも含み得る。いくつかの実施例では、ＤＡサーバ１０６のソフトウェア状態、例えば、稼働中のプロセス、インストール済みのプログラム、過去と現在のネットワーク活動、バックグラウンドサービス、エラーログ、リソース使用量、等、及びポータブル多機能デバイス２００のソフトウェア状態に関係する情報が、ＤＡサーバ１０６に、ユーザ入力に関連付けられたコンテキスト情報として提供され得る。
【００８５】
いくつかの実施例では、デジタルアシスタントクライアントモジュール２２９は、ＤＡサーバ１０６からの要求に応じて、ポータブル多機能デバイス２００上に記憶されている情報（例えば、ユーザデータ２３１）を選択的に提供することができる。いくつかの実施例では、デジタルアシスタントクライアントモジュール２２９はまた、ＤＡサーバ１０６による要求に応じて、自然言語ダイアログ又は他のユーザインタフェースを介してユーザから追加入力を引き出すことができる。デジタルアシスタントクライアントモジュール２２９は、意図推論及び／又はユーザ要求内に表されているユーザの意図の達成においてＤＡサーバ１０６を助けるために、追加入力をＤＡサーバ１０６に渡すことができる。
【００８６】
デジタルアシスタントの更なる詳細を、図７Ａ〜図７Ｃを参照して以下に説明する。デジタルアシスタントクライアントモジュール２２９が、以下に説明するデジタルアシスタントモジュール７２６の任意の数のサブモジュールを含み得ることが認識されるべきである。
【００８７】
アプリケーション２３６は、以下のモジュール（又は、命令セット）、又はそれらのサブセット若しくはスーパーセットを含み得る。
●連絡先モジュール２３７（時には、アドレス帳又は連絡先リストとも呼ぶ）、
●電話モジュール２３８、
●テレビ会議モジュール２３９、
●電子メールクライアントモジュール２４０、
●インスタントメッセージング（ＩＭ）モジュール２４１、
●トレーニングサポートモジュール２４２、
●静止画像及び／又はビデオ画像用のカメラモジュール２４３、
●画像管理モジュール２４４、
●ビデオプレーヤモジュール、
●ミュージックプレーヤモジュール、
●ブラウザモジュール２４７、
●カレンダモジュール２４８、
●気象ウィジェット２４９−１、株式ウィジェット２４９−２、電卓ウィジェット２４９−３、アラーム時計ウィジェット２４９−４、辞書ウィジェット２４９−５、及びユーザが取得した他のウィジェット、並びにユーザ作成ウィジェット２４９−６のうちの１つ以上を含んでよいウィジェットモジュール２４９、
●ユーザ作成ウィジェット２４９−６を作成するためのウィジェットクリエータモジュール２５０、
●検索モジュール２５１、
●ビデオプレーヤモジュール及びミュージックプレーヤモジュールを統合した、ビデオ及びミュージックプレーヤモジュール２５２、
●メモモジュール２５３、
●地図モジュール２５４、及び／又は
●オンラインビデオモジュール２５５。
【００８８】
メモリ２０２内に記憶することができる他のアプリケーション２３６の例としては、他のワードプロセッシングアプリケーション、他の画像編集アプリケーション、描画アプリケーション、プレゼンテーションアプリケーション、ＪＡＶＡ（登録商標）対応アプリケーション、暗号化、デジタル著作権管理、音声認識、及び音声複製が挙げられる。
【００８９】
タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、及びテキスト入力モジュール２３４と連携して、連絡先モジュール２３７は、（例えば、メモリ２０２又はメモリ４７０内の連絡先モジュール２３７のアプリケーション内部状態２９２に記憶される）アドレス帳又は連絡先リストを管理するために用いられる。この管理することとしては、アドレス帳に名前（単数又は複数）を加えること、アドレス帳から名前（単数又は複数）を削除すること、電話番号（単数又は複数）、電子メールアドレス（単数又は複数）、住所（単数又は複数）、又は他の情報を名前と関連付けること、画像を名前と関連付けること、名前を分類して並べ替えること、電話番号又は電子メールアドレスを提供して、電話２３８、テレビ会議モジュール２３９、電子メール２４０、若しくはＩＭ２４１による通信を開始する及び／又は容易にすること、などが含まれる。
【００９０】
ＲＦ回路２０８、オーディオ回路２１０、スピーカ２１１、マイクロフォン２１３、タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、及びテキスト入力モジュール２３４と連携して、電話モジュール２３８は、電話番号に対応する一連の文字を入力し、連絡先モジュール２３７内の１つ以上の電話番号にアクセスし、入力された電話番号を修正し、対応する電話番号をダイヤルし、会話を行い、そして、会話が完了した際に接続を切るか又は電話を切るために、使用することができる。上述のように、無線通信は、複数の通信規格、通信プロトコル、及び通信技術のうちのいずれかを使用することができる。
【００９１】
ＲＦ回路２０８、オーディオ回路２１０、スピーカ２１１、マイクロフォン２１３、タッチスクリーン２１２、ディスプレイコントローラ２５６、光センサ２６４、光センサコントローラ２５８、接触／動きモジュール２３０、グラフィックモジュール２３２、テキスト入力モジュール２３４、連絡先モジュール２３７、及び電話モジュール２３８と連携して、テレビ会議モジュール２３９は、ユーザの指示に従って、ユーザと１人以上の他の参加者との間のテレビ会議を開始し、遂行し、終了するための、実行可能な命令を含む。
【００９２】
ＲＦ回路２０８、タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、及びテキスト入力モジュール２３４と連携して、電子メールクライアントモジュール２４０は、ユーザの指示に応じて、電子メールを作成し、送信し、受信し、管理するための、実行可能な命令を含む。画像管理モジュール２４４と連携して、電子メールクライアントモジュール２４０は、カメラモジュール２４３で撮影した静止画像又はビデオ画像を添付した電子メールを作成して送信することを非常に容易にする。
【００９３】
ＲＦ回路２０８、タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、及びテキスト入力モジュール２３４と連携して、インスタントメッセージングモジュール２４１は、インスタントメッセージに対応する文字列を入力したり、入力済みの文字を修正したり、（例えば、電話ベースのインスタントメッセージのためのショートメッセージサービス（ＳＭＳ）若しくはマルチメディアメッセージサービス（ＭＭＳ）プロトコルを使用して、又はインターネットベースのインスタントメッセージのためのＸＭＰＰ、ＳＩＭＰＬＥ、若しくはＩＭＰＳを使用して）対応するインスタントメッセージを送信したり、インスタントメッセージを受信してその受信したインスタントメッセージを表示したりするための、実行可能な命令を含む。いくつかの実施形態では、送信及び／又は受信されるインスタントメッセージは、ＭＭＳ及び／又は拡張メッセージングサービス（Enhanced Messaging Service、ＥＭＳ）でサポートされるような、グラフィック、写真、オーディオファイル、ビデオファイル、及び／又は他の添付ファイルを含んでもよい。本明細書で使用する時、「インスタントメッセージング」とは、電話ベースのメッセージ（例えば、ＳＭＳ又はＭＭＳを使用して送信されるメッセージ）及びインターネットベースのメッセージ（例えば、ＸＭＰＰ、ＳＩＭＰＬＥ、又はＩＭＰＳを使用して送信されるメッセージ）の双方を示す。
【００９４】
ＲＦ回路２０８、タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、テキスト入力モジュール２３４、ＧＰＳモジュール２３５、地図モジュール２５４、及びミュージックプレーヤモジュールと連携して、トレーニングサポートモジュール２４２は、次のための実行可能な命令を含む：（例えば、時間、距離、及び／又はカロリー消費目標を有する）トレーニングを作成することと、トレーニングセンサ（スポーツデバイス）と通信することと、トレーニングセンサデータを受信することと、トレーニングをモニタするために使用されるセンサを較正することと、トレーニングのための音楽を選択し、再生することと、トレーニングデータを表示し、記憶し、送信すること。
【００９５】
タッチスクリーン２１２、ディスプレイコントローラ２５６、光センサ（単数又は複数）２６４、光センサコントローラ２５８、接触／動きモジュール２３０、グラフィックモジュール２３２、及び画像管理モジュール２４４と連携して、カメラモジュール２４３は、静止画像又は（ビデオストリームを含む）ビデオをキャプチャしてメモリ２０２にそれらを記憶する、静止画像又はビデオの特性を変更する、又はメモリ２０２から静止画像若しくはビデオを削除するための、実行可能な命令を含む。
【００９６】
タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、テキスト入力モジュール２３４、及びカメラモジュール２４３と連携して、画像管理モジュール２４４は、静止画像及び／又はビデオ画像を配置する、修正し（例えば、編集し）及び別の方法で操作する、ラベルを付け、削除する、（例えば、デジタルスライドショー又はアルバムにおいて）提示する、又は記憶したりするための、実行可能な命令を含む。
【００９７】
ＲＦ回路２０８、タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、及びテキスト入力モジュール２３４と連携して、ブラウザモジュール２４７は、ウェブページ又はそれらの一部、並びにウェブページにリンクされた添付及び他のファイルを検索し、リンク付け、受信し、表示することを含むユーザの指示に従い、インターネットをブラウズするための、実行可能な命令を含む。
【００９８】
ＲＦ回路２０８、タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、テキスト入力モジュール２３４、電子メールクライアントモジュール２４０、及びブラウザモジュール２４７と連携して、カレンダモジュール２４８は、ユーザの指示に従い、カレンダ及びカレンダに関連付けられたデータ（例えば、カレンダ項目、ｔｏ  ｄｏリストなど）を作成し、表示し、変更し、記憶するための、実行可能な命令を含む。
【００９９】
ＲＦ回路２０８、タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、テキスト入力モジュール２３４、及びブラウザモジュール２４７と連携して、ウィジェットモジュール２４９は、ユーザによってダウンロードされ、使用することが可能なミニアプリケーション（例えば、気象ウィジェット２４９−１、株式ウィジェット２４９−２、計算機ウィジェット２４９−３、アラーム時計ウィジェット２４９−４、及び辞書ウィジェット２４９−５）、又はユーザによって作成することが可能なミニアプリケーション（例えば、ユーザ作成ウィジェット２４９−６）である。いくつかの実施形態では、ウィジェットは、ＨＴＭＬ（ハイパーテキストマークアップ言語）ファイル、ＣＳＳ（カスケーディングスタイルシート）ファイル、及びＪａｖａＳｃｒｉｐｔ（登録商標）ファイルを含む。いくつかの実施形態では、ウィジェットは、ＸＭＬ（拡張可能マークアップ言語）ファイル及びＪａｖａＳｃｒｉｐｔファイル（例えば、Ｙａｈｏｏ！（登録商標）ウィジェット）を含む。
【０１００】
ＲＦ回路２０８、タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、テキスト入力モジュール２３４、及びブラウザモジュール２４７と連携して、ウィジェットクリエータモジュール２５０は、ウィジェットを作成する（例えば、ウェブページのユーザ指定箇所をウィジェットに変える）ために、ユーザによって使用することができる。
【０１０１】
タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、及びテキスト入力モジュール２３４と連携して、検索モジュール２５１は、ユーザの指示に従い、１つ以上の検索基準（例えば、１つ以上のユーザ指定の検索語句）と一致する、メモリ２０２内のテキスト、音楽、音、画像、ビデオ、及び／又は他のファイルを検索するための、実行可能な命令を含む。
【０１０２】
タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィクモジュール２３２、オーディオ回路２１０、スピーカ２１１、ＲＦ回路２０８、及びブラウザモジュール２４７と連携して、ビデオ及びミュージックプレーヤモジュール２５２は、ＭＰ３又はＡＡＣファイルなどの１つ以上のファイル形式で記憶された録音済みの音楽又は他のサウンドファイルをユーザがダウンロード及び再生できるようにする実行可能な命令、並びにビデオを（タッチスクリーン２１２上又は外部ポート２２４を介して接続された外部のディスプレイ上に）表示、提示、又は別の方法で再生するための、実行可能な命令を含む。いくつかの実施形態では、デバイス２００は、任意選択的に、ｉＰｏｄ（Ａｐｐｌｅ  Ｉｎｃ．の商標）などのＭＰ３プレーヤの機能を備える。
【０１０３】
タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、及びテキスト入力モジュール２３４と連携して、メモモジュール２５３は、ユーザの指示に従って、メモ、ｔｏ  ｄｏリストなどを作成及び管理するための、実行可能な命令を含む。
【０１０４】
ＲＦ回路２０８、タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、テキスト入力モジュール２３４、ＧＰＳモジュール２３５、及びブラウザモジュール２４７と連携して、地図モジュール２５４は、ユーザの指示に従って、地図、及び地図に関連付けられたデータ（例えば、運転方向、特定の場所若しくはその付近の店舗及び他の関心対象地点についてのデータ、並びに位置に基づく他のデータ）を受信し、表示し、修正し、記憶するために使用することができる。
【０１０５】
タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、オーディオ回路２１０、スピーカ２１１、ＲＦ回路２０８、テキスト入力モジュール２３４、電子メールクライアントモジュール２４０、及びブラウザモジュール２４７と連携して、オンラインビデオモジュール２５５は、ユーザがＨ．２６４などの１つ以上のファイル形式のオンラインビデオにアクセスし、閲覧し、（例えば、ストリーミング及び／又はダウンロードにより）受信し、（例えば、タッチスクリーン上で又は外部ポート２２４を介して接続された外部のディスプレイ上で）再生し、特定のオンラインビデオへのリンクを含む電子メールを送信し、別の方法で管理することが可能となる命令を含む。いくつかの実施形態では、特定のオンラインビデオへのリンクを送信するために、電子メールクライアントモジュール２４０ではなく、インスタントメッセージングモジュール２４１が使用される。オンラインビデオアプリケーションの追加の説明は、２００７年６月２０日に出願された米国特許仮出願第６０／９３６，５６２号明細書、「Ｐｏｒｔａｂｌｅ  Ｍｕｌｔｉｆｕｎｃｔｉｏｎ  Ｄｅｖｉｃｅ，Ｍｅｔｈｏｄ，ａｎｄ  Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  ｆｏｒ  Ｐｌａｙｉｎｇ  Ｏｎｌｉｎｅ  Ｖｉｄｅｏｓ」、及び２００７年１２月３１日に出願された米国特許出願第１１／９６８，０６７号明細書、「Ｐｏｒｔａｂｌｅ  Ｍｕｌｔｉｆｕｎｃｔｉｏｎ  Ｄｅｖｉｃｅ，Ｍｅｔｈｏｄ，ａｎｄ  Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  ｆｏｒ  Ｐｌａｙｉｎｇ  Ｏｎｌｉｎｅ  Ｖｉｄｅｏｓ」に見出すことができ、これらの出願の内容はその全体が本明細書において参照により組み込まれている。
【０１０６】
上記で特定されたモジュール及びアプリケーションのそれぞれは、１つ以上の上記の機能を実行するための実行可能な命令セット及び本出願に記載の方法（例えば、コンピュータにより実行される方法及び本明細書に記載の他の情報処理方法）に対応する。これらのモジュール（例えば、命令のセット）は、別個のソフトウェアプログラム、手順、又はモジュールとして実装される必要はなく、それゆえ、様々な実施形態では、これらのモジュールの様々なサブセットを組み合わせるか、又は他の方式で再編成することができる。例えば、ビデオプレーヤモジュールは、ミュージックプレーヤモジュールと組み合わせて、単一のモジュール（例えば、図２Ａのビデオ及びミュージックプレーヤモジュール２５２）としてもよい。いくつかの実施形態では、メモリ２０２は、上記で特定されたモジュール及びデータ構造の部分集合を記憶することができる。更に、メモリ２０２は、上述されていない追加のモジュール及びデータ構造を記憶してもよい。
【０１０７】
いくつかの実施形態では、デバイス２００は、デバイス上の機能の既定のセットの動作が排他的にタッチスクリーン及び／又はタッチパッドを介して実行されるデバイスである。デバイス２００の動作に関する主要な入力制御デバイスとしてタッチスクリーン及び／又はタッチパッドを使用することによって、デバイス２００上の（プッシュボタン、ダイヤルなどの）物理入力制御デバイスの数を低減することができる。
【０１０８】
排他的にタッチスクリーン及び／又はタッチパッドを介して実行される、既定の機能のセットは、任意選択的に、ユーザインタフェース間のナビゲーションを含む。いくつかの実施形態では、タッチパッドは、ユーザによってタッチされると、デバイス２００上に表示される任意のユーザインタフェースから、メインメニュー、ホームメニュー、又はルートメニューへデバイス２００をナビゲートする。そのような実施形態では、「メニューボタン」はタッチパッドを使って実装される。いくつかの他の実施形態では、メニューボタンは、タッチパッドの代わりに、物理プッシュボタン又は他の物理入力制御デバイスである。
【０１０９】
図２Ｂは、いくつかの実施形態に係る、イベント処理のための例示的な構成要素を示すブロック図である。いくつかの実施形態では、メモリ２０２（図２Ａ）又はメモリ４７０（図４）は、イベントソート部２７０（例えば、オペレーティングシステム２２６内）及び対応するアプリケーション２３６−１（例えば、上述のアプリケーション２３７〜アプリケーション２５１、アプリケーション２５５、アプリケーション４８０〜アプリケーション４９０のうちのいずれか）を含む。
【０１１０】
イベントソート部２７０は、イベント情報を受信し、イベント情報を配信するアプリケーション２３６−１及びアプリケーション２３６−１のアプリケーションビュー２９１を決定する。イベントソート部２７０は、イベントモニタ２７１及びイベントディスパッチャモジュール２７４を含む。いくつかの実施形態では、アプリケーション２３６−１は、アプリケーションがアクティブ又は実行中の時、タッチ感知ディスプレイ２１２上に表示される現在のアプリケーションビュー（単数又は複数）を示す、アプリケーション内部状態２９２を含む。いくつかの実施形態では、デバイス／グローバル内部状態２５７は、いずれのアプリケーション（単数又は複数）が現在アクティブであるかを判定するためにイベントソート部２７０によって使用され、アプリケーション内部状態２９２は、イベント情報の配信先となるアプリケーションビュー２９１を決定するためにイベントソート部２７０によって使用される。
【０１１１】
いくつかの実施形態では、アプリケーション内部状態２９２は、アプリケーション２３６−１が実行を再開する際に使用される再開情報、アプリケーション２３６−１によって情報が表示されているか又は表示の準備が整っていることを示すユーザインタフェース状態情報、ユーザがアプリケーション２３６−１の以前の状態又はビューに戻ることを可能にするための状態待ち行列、及びユーザが以前に行ったアクションのリドゥ／アンドゥ待ち行列、のうちの１つ以上などの追加情報を含む。
【０１１２】
イベントモニタ２７１は、周辺機器インタフェース２１８からイベント情報を受信する。イベント情報は、サブイベント（例えば、マルチタッチジェスチャの一部としての、タッチ感知ディスプレイ２１２上でのユーザのタッチ）についての情報を含む。周辺機器インタフェース２１８は、Ｉ／Ｏサブシステム２０６、又は近接センサ２６６、加速度計（単数又は複数）２６８、及び／若しくは（オーディオ回路２１０を介する）マイクロフォン２１３などのセンサから受信する情報を送信する。周辺機器インタフェース２１８がＩ／Ｏサブシステム２０６から受信する情報は、タッチ感知ディスプレイ２１２又はタッチ感知面からの情報を含む。
【０１１３】
いくつかの実施形態では、イベントモニタ２７１は、所定の間隔で周辺機器インタフェース２１８に要求を送信する。これに応じて、周辺機器インタフェース２１８はイベント情報を送信する。他の実施形態では、周辺機器インタフェース２１８は、重要なイベント（例えば、所定のノイズ閾値を上回り、かつ／又は所定の持続時間を超えた入力を受信すること）が存在する場合にのみ、イベント情報を送信する。
【０１１４】
いくつかの実施形態では、イベントソート部２７０はまた、ヒットビュー判定モジュール２７２及び／又はアクティブイベント認識部判定モジュール２７３も含む。
【０１１５】
ヒットビュー判定モジュール２７２は、タッチ感知ディスプレイ２１２が２つ以上のビューを表示する場合に、サブイベントが１つ以上のビュー内のいずれの場所で発生したかを判定するための、ソフトウェア手順を提供する。ビューは、制御部及びユーザがディスプレイ上で見ることが可能な他の要素で構成される。
【０１１６】
アプリケーションに関連付けられたユーザインタフェースの別の態様は、本明細書では、アプリケーションビュー又はユーザインタフェースウィンドウと呼ばれる場合がある、ビューのセットであり、それらの中で情報が表示され、タッチに基づくジェスチャが生じる。タッチが検出される（対応するアプリケーションの）アプリケーションビューは、そのアプリケーションのプログラム階層又はビュー階層内のプログラムレベルに対応し得る。例えば、タッチが検出される最下位レベルのビューを、ヒットビューと呼ぶことができ、適切な入力として認識されるイベントのセットは、少なくとも部分的には、タッチに基づくジェスチャを開始する最初のタッチのヒットビューに基づいて、判定することができる。
【０１１７】
ヒットビュー判定モジュール２７２は、タッチベースのジェスチャのサブイベントと関連する情報を受信する。アプリケーションが、階層として編成された複数のビューを有する場合、ヒットビュー判定モジュール２７２は、そのサブイベントを処理すべき階層内の最下位のビューとしての、ヒットビューを特定する。ほとんどの状況では、ヒットビューは、最初のサブイベント（例えば、イベント又は潜在的なイベントを形成するサブイベントのシーケンスにおける最初のサブイベント）が発生する最下位レベルのビューである。ヒットビューがヒットビュー判定モジュール２７２によって特定されると、ヒットビューは、典型的には、それがヒットビューとして特定された、同じタッチ又は入力ソースに関連する全てのサブイベントを受信する。
【０１１８】
アクティブイベント認識部判定モジュール２７３は、ビュー階層内のどのビュー（単数又は複数）がサブイベントの特定のシーケンスを受信すべきかを判定する。いくつかの実施形態では、アクティブイベント認識部判定モジュール２７３は、ヒットビューのみがサブイベントの特定のシーケンスを受信すべきであると判定する。他の実施形態では、アクティブイベント認識部判定モジュール２７３は、サブイベントの物理位置を含む全てのビューはアクティブに関わっているビューであると判定し、したがって、全てのアクティブに関わっているビューは、サブイベントの特定のシーケンスを受信すべきであると判定する。他の実施形態では、タッチサブイベントがある特定のビューに関連付けられた領域に完全に限定されたとしても、階層の上位のビューは、依然としてアクティブに関わっているビューであり続ける。
【０１１９】
イベントディスパッチャモジュール２７４は、イベント情報をイベント認識部（例えば、イベント認識部２８０）に送信する。アクティブイベント認識部判定モジュール２７３を含む実施形態において、イベントディスパッチャモジュール２７４は、アクティブイベント認識部判定モジュール２７３により判定されたイベント認識部にイベント情報を配信する。いくつかの実施形態では、イベントディスパッチャモジュール２７４は、対応するイベント受信部２８２により取得されるイベント情報をイベント待ち行列に記憶する。
【０１２０】
いくつかの実施形態では、オペレーティングシステム２２６は、イベントソート部２７０を含む。あるいは、アプリケーション２３６−１が、イベントソート部２７０を含む。更に他の実施形態では、イベントソート部２７０は、スタンドアロンモジュール、又は接触／動きモジュール２３０などの、メモリ２０２に記憶された別のモジュールの一部である。
【０１２１】
いくつかの実施形態では、アプリケーション２３６−１は、そのアプリケーションのユーザインタフェースの各ビュー内で発生するタッチイベントを処理する命令をそれぞれが含む、複数のイベント処理部２９０及び１つ以上のアプリケーションビュー２９１を含む。アプリケーション２３６−１の各アプリケーションビュー２９１は、１つ以上のイベント認識部２８０を含む。通常は、それぞれのアプリケーションビュー２９１は、複数のイベント認識部２８０を含む。他の実施形態では、イベント認識部２８０のうちの１つ以上は、ユーザインタフェースキット（図示せず）又はアプリケーション２３６−１が方法及び他の特性を継承する上位レベルのオブジェクトなどの、別個のモジュールの一部である。いくつかの実施形態では、それぞれのイベント処理部２９０は、データアップデータ２７６、オブジェクトアップデータ２７７、ＧＵＩ更新部２７８、及び／又はイベントソート部２７０から受信したイベントデータ２７９、のうちの１つ以上を含む。イベント処理部２９０は、アプリケーション内部状態２９２を更新するために、データ更新部２７６、オブジェクト更新部２７７、若しくはＧＵＩ更新部２７８を利用するか、又は呼び出すことができる。あるいは、アプリケーションビュー２９１のうちの１つ以上は、１つ以上のそれぞれのイベント処理部２９０を含む。また、いくつかの実施形態では、データ更新部２７６、オブジェクト更新部２７７、及びＧＵＩ更新部２７８のうちの１つ以上も、対応するアプリケーションビュー２９１に含まれる。
【０１２２】
それぞれのイベント認識部２８０は、イベントソート部２７０からイベント情報（例えば、イベントデータ２７９）を受信して、そのイベント情報からイベントを特定する。イベント認識部２８０は、イベント受信部２８２及びイベント比較部２８４を含む。いくつかの実施形態では、イベント認識部２８０は更に、メタデータ２８３及びイベント配信命令２８８（サブイベント配信命令を含んでいてもよい）の少なくとも部分集合を含む。
【０１２３】
イベント受信部２８２は、イベントソート部２７０からイベント情報を受信する。このイベント情報は、サブイベントについての情報、例えば、タッチ又はタッチの移動についての情報を含む。サブイベントによっては、イベント情報はまた、サブイベントの場所などの追加情報も含む。サブイベントが、タッチの動きに関係する場合、イベント情報はまた、そのサブイベントの速度及び方向も含み得る。いくつかの実施形態では、イベントは、１つの向きから別の向きへの（例えば、縦向きから横向きへの、又はその逆の）デバイスの回転を含み、そのイベント情報は、デバイスの現在の向き（デバイスの姿勢とも呼ばれる）についての対応する情報を含む。
【０１２４】
イベント比較部２８４は、イベント情報を既定のイベント又はサブイベントの定義と比較し、その比較に基づいて、イベント又はサブイベントを判定する、あるいはイベント又はサブイベントの状態を判定若しくは更新する。いくつかの実施形態では、イベント比較部２８４は、イベント定義２８６を含む。ベント定義２８６は、例えば、イベント１（２８７−１）、イベント２（２８７−２）などの、イベントの定義（例えば、サブイベントの既定のシーケンス）を含む。いくつかの実施形態では、イベント（２８７）内のサブイベントは、例えば、タッチ開始、タッチ終了、タッチの移動、タッチの中止、及び複数のタッチを含む。ある実施例では、イベント１（２８７−１）の定義は、表示されたオブジェクト上のダブルタップである。このダブルタップは、例えば、所定の段階に関する表示オブジェクト上での第１のタッチ（タッチの開始）、所定の段階に関する第１のリフトオフ（タッチの終了）、所定の段階に関する表示オブジェクト上での第２のタッチ（タッチの開始）、及び所定の段階に関する第２のリフトオフ（タッチの終了）を含む。別の実施例では、イベント２（２８７−２）の定義は、表示されたオブジェクト上のドラッグ操作である。このドラッグ操作は、例えば、所定の段階に関する表示オブジェクト上でのタッチ（又は、接触）、タッチ感知ディスプレイ２１２を横断するタッチの移動、及びタッチのリフトオフ（タッチの終了）を含む。いくつかの実施形態では、イベントはまた、１つ以上の関連付けられたイベント処理部２９０に関する情報も含む。
【０１２５】
いくつかの実施形態では、イベント定義２８７は、それぞれのユーザインタフェースオブジェクトに関するイベントの定義を含む。いくつかの実施形態では、イベント比較部２８４は、サブイベントに関連付けられたユーザインタフェースオブジェクトを判定するヒットテストを実行する。例えば、３つのユーザインタフェースオブジェクトがタッチ感知ディスプレイ２１２に表示されるアプリケーションビューにおいて、タッチ感知ディスプレイ２１２上でタッチが検出されると、イベント比較部２８４は、３つのユーザインタフェースオブジェクトのうちのどれがタッチ（サブイベント）に関連付けられているかを判定するためのヒットテストを実行する。表示された各オブジェクトが、対応するイベント処理部２９０に関連付けられている場合、イベント比較部は、ヒットテストの結果を用いて、どのイベント処理部２９０をアクティブ化すべきかを判定する。例えば、イベント比較部２８４は、サブイベント及びヒットテストのトリガとなるオブジェクトに関連付けられたイベント処理部を選択する。
【０１２６】
いくつかの実施形態では、それぞれのイベント（２８７）に関する定義はまた、サブイベントのシーケンスがイベント認識部のイベントタイプに対応するか否かが判定されるまでイベント情報の配信を遅延させる遅延動作も含む。
【０１２７】
それぞれのイベント認識部２８０は、一連のサブイベントが、イベント定義２８６のイベントのうちのいずれとも一致しないと判定した場合、それぞれのイベント認識部２８０は、イベント不可能、イベント失敗、又はイベント終了の状態に入り、その後は、タッチベースのジェスチャの次のサブイベントを無視する。この状況では、ヒットビューに関してアクティブのまま維持される他のイベント認識部があれば、進行中のタッチに基づくジェスチャのサブイベントを、引き続き追跡及び処理する。
【０１２８】
いくつかの実施形態では、それぞれのイベント認識部２８０は、構成変更可能なプロパティと、フラグと、及び／又はイベント配信システムがアクティブに関わっているイベント認識部にどのようにサブイベント配信を実行するかについて示すリストと、を有するメタデータ２８３を含む。いくつかの実施形態では、メタデータ２８３は、構成変更可能なプロパティと、フラグと、及び／又はイベント認識部が互いにどのように対話し得るか、あるいは、対話が可能になるかについて示すリストと、を含む。いくつかの実施形態では、メタデータ２８３は、構成変更可能なプロパティと、フラグと、及び／又はサブイベントがビュー階層又はプログラム階層内の様々なレベルに配信されるか否かを示すリストと、を含む。
【０１２９】
いくつかの実施形態では、それぞれのイベント認識部２８０は、イベントの１つ以上の特定のサブイベントが認識された時に、イベントに関連付けられたイベント処理部２９０をアクティブ化する。いくつかの実施形態では、それぞれのイベント認識部２８０は、イベントに関連付けられたイベント情報をイベント処理部２９０に配信する。イベント処理部２９０をアクティブ化することは、対応するヒットビューにサブイベントを送信（及び送信を延期する）することとは異なる。いくつかの実施形態では、イベント認識部２８０は、認識されたイベントに関連付けられたフラグをスローし、フラグに関連付けられたイベント処理部２９０は、フラグをキャッチし、既定の処理を実行する。
【０１３０】
いくつかの実施形態では、イベント配信命令２８８は、イベント処理部をアクティブ化せずに、サブイベントに関するイベント情報を配信するサブイベント配信命令を含む。その代わりに、サブイベント配信命令は、一連のサブイベントに関連付けられたイベント処理部又はアクティブに関わっているビューにイベント情報を送る。一連のサブイベント又はアクティブに関わっているビューに関連付けられたイベント処理部は、イベント情報を受信し、所定の処理を実行する。
【０１３１】
いくつかの実施形態では、データ更新部２７６は、アプリケーション２３６−１で使用されるデータを作成及び更新する。例えば、データ更新部２７６は、連絡先モジュール２３７で使用される電話番号を更新したり、ビデオプレーヤモジュールで使用されるビデオファイルを記憶したりする。いくつかの実施形態では、オブジェクト更新部２７７は、アプリケーション２３６−１で使用されるオブジェクトを作成及び更新する。例えば、オブジェクト更新部２７７は、新たなユーザインタフェースオブジェクトを作成するか、又はユーザインタフェースオブジェクトの位置を更新する。ＧＵＩ更新部２７８は、ＧＵＩを更新する。例えば、ＧＵＩ更新部２７８は、表示情報を準備し、それをタッチ感知ディスプレイ上に表示するためにグラフィックモジュール２３２に送信する。
【０１３２】
いくつかの実施形態では、イベント処理部（単数又は複数）２９０は、データ更新部２７６、オブジェクト更新部２７７、及びＧＵＩ更新部２７８を含むか、若しくはそれらにアクセスすることができる。いくつかの実施形態では、データ更新部２７６、オブジェクト更新部２７７、及びＧＵＩ更新部２７８は、それぞれのアプリケーション２３６−１又はアプリケーションビュー２９１の単一モジュールに含まれる。他の実施形態では、それらは、２つ以上のソフトウェアモジュールに含まれる。
【０１３３】
タッチ感知ディスプレイ上のユーザのタッチのイベント処理に関する前述の論考はまた、入力デバイスを使用して多機能デバイス２００を動作させるための他の形態のユーザ入力にも適用されるが、その全てがタッチスクリーン上で開始されるわけではないことが理解されよう。例えば、単一又は複数のキーボードの押下又は保持に任意選択的に合わせたマウスの移動及びマウスボタンの押下、タッチパッド上でのタップ、ドラッグ、スクロールなどの接触移動、ペンスタイラス入力、デバイスの移動、口頭による指示検出された眼球運動、バイオメトリック入力、及び／又はこれらの任意の組み合わせが、認識対象のイベントを定義するサブイベントに対応する入力として任意選択的に利用される。
【０１３４】
図３は、いくつかの実施形態に係る、タッチスクリーン２１２を有するポータブル多機能デバイス２００を示す。タッチスクリーンは、ユーザインタフェース（ＵＩ）３００内に１つ以上のグラフィックを、任意選択的に表示する。本実施形態、並びに後述する実施形態において、ユーザは、例えば、１本以上の指３０２（図には、正確な縮尺率では描かれていない）又は１つ以上のスタイラス３０３（図には、正確な縮尺率では描かれていない）を用いて、グラフィック上でジェスチャを行うことにより、グラフィックのうちの１つ以上を選択することができる。いくつかの実施形態では、ユーザが１つ以上のグラフィックとの接触を断った際に、その１つ以上のグラフィックの選択が生じる。いくつかの実施形態では、ジェスチャは、１回以上のタップ、１回以上のスワイプ（左から右へ、右から左へ、上方向へ及び／又は下方向へ）、並びに／若しくは、デバイス２００と接触した指のローリング（右から左へ、左から右へ、上方向へ及び／又は下方向へ）を、任意選択的に含む。いくつかの実装又は状況では、グラフィックとの不測の接触は、そのグラフィックを選択するものではない。例えば、選択に対応するジェスチャがタップである場合、アプリケーションアイコンの上をスイープするスワイプジェスチャは、対応するアプリケーションを任意選択的に選択しない。
【０１３５】
デバイス２００はまた、「ホーム」又はメニューボタン３０４などの、１つ以上の物理ボタンも含み得る。上述したように、メニューボタン３０４を使用して、デバイス２００上で実行することができるアプリケーションセット内の任意のアプリケーション２３６へ、ナビゲートすることができる。あるいは、いくつかの実施形態では、メニューボタンは、タッチスクリーン２１２に表示されたＧＵＩにおけるソフトキーとして実装されている。
【０１３６】
一実施形態では、デバイス２００は、タッチスクリーン２１２、メニューボタン３０４、デバイスの電源をオン／オフし、デバイスをロックするためのプッシュボタン３０６、音量調節ボタン（単数又は複数）３０８、加入者識別モジュール（ＳＩＭ）カードスロット３１０、ヘッドセットジャック３１２、及びドッキング／充電用外部ポート２２４を含む。プッシュボタン３０６は、ボタンを押し下げて、既定の時間にわたってボタンを押し下げた状態で保持することによってデバイス上の電源をオン／オフし、ボタンを押し下げて、既定時間が経過する前にボタンを解放することによってデバイスをロックし、及び／又は、デバイスのロックを解除する、若しくは、ロック解除プロセスを開始する。別の実施形態では、デバイス２００はまた、マイクロフォン２１３を通して、一部の機能をアクティブ化又は非アクティブ化するための口頭入力を受信する。デバイス２００はまた、タッチスクリーン２１２上の接触の強度を検出するための１つ以上の接触強度センサ２６５、及び／又は、デバイス２００のユーザに対する触知出力を生成するための１つ以上の触知出力生成器２６７も、任意選択的に含む。
【０１３７】
図４は、いくつかの実施形態に係る、ディスプレイ及びタッチ感知面を備える例示的な多機能デバイスのブロック図である。デバイス４００は、ポータブル型である必要はない。いくつかの実施形態では、デバイス４００は、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、マルチメディアプレーヤデバイス、ナビゲーションデバイス、教育用デバイス（子供の学習玩具など）、ゲームシステム、又は制御デバイス（例えば、家庭用又は業務用コントローラ）である。デバイス４００は、典型的には、１つ以上の処理ユニット（ＣＰＵ）４１０、１つ以上のネットワーク若しくは他の通信インタフェース４６０、メモリ４７０、及びこれらの構成要素を相互接続するための１つ以上の通信バス４２０を含む。通信バス４２０は、システム構成要素間の通信を相互接続及び制御する回路（チップセットと呼ばれることがある）を、任意選択的に含む。デバイス４００は、典型的にはタッチスクリーンディスプレイであるディスプレイ４４０を備える入出力（Ｉ／Ｏ）インタフェース４３０を含む。Ｉ／Ｏインタフェース４３０はまた、キーボード及び／又はマウス（又は他のポインティングデバイス）４５０、並びにタッチパッド４５５、デバイス４００上に触知出力を生成するための（例えば、図２Ａを参照して上述した触知出力生成器２６７（単数又は複数）と同様の）触知出力生成器４５７、センサ４５９（例えば、光センサ、加速度センサ、近接センサ、タッチ感知センサ、及び／又は図２Ａを参照して上述した接触強度センサ（単数又は複数）２６５と同様の接触強度センサ）も、任意選択的に含む。メモリ４７０は、ＤＲＡＭ、ＳＲＡＭ、ＤＤＲ  ＲＡＭ、又は他のランダムアクセスソリッドステートメモリデバイスなどの、高速ランダムアクセスメモリを含み、また任意選択的に、１つ以上の磁気ディスク記憶デバイス、光ディスク記憶デバイス、フラッシュメモリデバイス、又は他の不揮発性半導体記憶デバイスなどの、不揮発性メモリを含む。メモリ４７０は、ＣＰＵ（単数又は複数）４１０から離れて位置する１つ以上の記憶デバイスを任意選択的に含む。いくつかの実施形態では、メモリ４７０は、ポータブル多機能デバイス２００（図２Ａ）のメモリ２０２に記憶されたプログラム、モジュール、及びデータ構造、又はそれらの部分集合に類似する、プログラム、モジュール、及びデータ構造を記憶する。更に、メモリ４７０は、ポータブル多機能デバイス２００のメモリ２０２に存在しない追加のプログラム、モジュール、及びデータ構造を、任意選択的に記憶する。例えば、デバイス４００のメモリ４７０は、描画モジュール４８０、プレゼンテーションモジュール４８２、ワードプロセッシングモジュール４８４、ウェブサイト作成モジュール４８６、ディスクオーサリングモジュール４８８、及び／又はスプレッドシートモジュール４９０を任意選択的に記憶するが、ポータブル多機能デバイス２００（図２Ａ）のメモリ２０２はこれらのモジュールを任意選択的に記憶しない。
【０１３８】
図４の上記で特定された要素のそれぞれは、前述のメモリデバイスの１つ以上に記憶してもよい。上記で特定されたモジュールのうちのそれぞれは、上述した機能を実行する命令セットに対応する。上記で特定されたモジュール又はプログラム（例えば、命令セット）は、別個のソフトウェアプログラム、手順、又はモジュールとして実装される必要はなく、それゆえ、様々な実施形態では、これらのモジュールの様々なサブセットを組み合わせるか、又は他の方式で再編成することができる。いくつかの実施形態では、メモリ４７０は、上記で特定されたモジュール及びデータ構造のサブセットを記憶することができる。更に、メモリ４７０は、上述されていない追加のモジュール及びデータ構造を記憶してもよい。
【０１３９】
次に、例えば、ポータブル多機能デバイス２００上に実装することができるユーザインタフェースの実施形態に注意を向ける。
【０１４０】
図５Ａは、いくつかの実施形態に係る、ポータブル多機能デバイス２００上のアプリケーションのメニュー用の例示的なユーザインタフェースを示す。同様のユーザインタフェースを、デバイス４００上に実装してもよい。いくつかの実施形態では、ユーザインタフェース５００は、以下の要素、又はそれらの部分集合若しくは上位集合を含む。
●セルラー信号及びＷｉ−Ｆｉ信号などの無線通信（単数又は複数）のための信号強度インジケータ（単数又は複数）５０２、
●時刻５０４、
●Ｂｌｕｅｔｏｏｔｈインジケータ５０５、
●バッテリ状態インジケータ５０６、
●下記などの、頻繁に使用されるアプリケーション用のアイコンを含むトレイ５０８、
○不在着信又は音声メールメッセージの数のインジケータ５１４を任意選択的に含む、「電話」とラベル付けされた、電話モジュール２３８用のアイコン５１６、
○未読電子メールの数のインジケータ５１０を任意選択的に含む、「メール」とラベル付けされた、電子メールクライアントモジュール２４０用のアイコン５１８、
○「ブラウザ」とラベル付けされた、ブラウザモジュール２４７用のアイコン５２０、及び
○「ｉＰｏｄ」とラベル付けされた、ｉＰｏｄ（Ａｐｐｌｅ  Ｉｎｃ．の商標）モジュール２５２とも称されるビデオ及びミュージックプレーヤモジュール２５２用のアイコン５２２、並びに
●下記などの、その他のアプリケーション用のアイコン、
○「メッセージ」とラベル付けされた、ＩＭモジュール２４１用のアイコン５２４、
○「カレンダ」とラベル付けされた、カレンダモジュール２４８用のアイコン５２６、
○「写真」とラベル付けされた、画像管理モジュール２４４用のアイコン５２８、
○「カメラ」とラベル付けされた、カメラモジュール２４３用のアイコン５３０、
○「オンラインビデオ」とラベル付けされた、オンラインビデオモジュール２５５用のアイコン５３２、
○「株式」とラベル付けされた、株式ウィジェット２４９−２用のアイコン５３４、
○「マップ」とラベル付けされた、マップモジュール２５４用のアイコン５３６、
○「気象」とラベル付けされた、気象ウィジェット２４９−１用のアイコン５３８、
○「時計」とラベル付けされた、アラーム時計ウィジェット２４９−４用のアイコン５４０、
○「トレーニングサポート」とラベル付けされた、トレーニングサポートモジュール２４２用のアイコン５４２、
○「メモ」とラベル付けされた、メモモジュール２５３用のアイコン５４４、及び
○デバイス２００及びその様々なアプリケーション２３６に関する設定へのアクセスを提供する、「設定」とラベル付けされた、設定アプリケーション若しくはモジュール用のアイコン５４６。
【０１４１】
図５Ａに示されているアイコンのラベルは、単なる例示であることに留意されたい。例えば、ビデオ及びミュージックプレーヤモジュール２５２用のアイコン５２２は、任意選択的に、「ミュージック」又は「ミュージックプレーヤ」とラベル付けされてもよい。他のラベルが、様々なアプリケーションアイコンのために、任意選択的に使用される。いくつかの実施形態では、それぞれのアプリケーションアイコンに関するラベルは、それぞれのアプリケーションアイコンに対応するアプリケーションの名前を含む。いくつかの実施形態では、特定のアプリケーションアイコンのラベルは、特定のアプリケーションアイコンに対応するアプリケーションの名前とは異なる。
【０１４２】
図５Ｂは、ディスプレイ５５０（例えば、タッチスクリーンディスプレイ２１２）とは別個のタッチ感知面５５１（例えば、図４のタブレット又はタッチパッド４５５）を備えるデバイス（例えば、図４のデバイス４００）上の、例示的なユーザインタフェースを示す。デバイス４００はまた、タッチ感知面５５１上の接触の強度を検出するための１つ以上の接触強度センサ（例えば、センサ４５７のうちの１つ以上）、及び／又はデバイス４００のユーザに対する触知出力を生成するための１つ以上の触知出力生成器４５９を任意選択的に含む。
【０１４３】
以下の実施例のうちのいくつかはタッチスクリーンディスプレイ２１２上での入力（タッチ感知面とディスプレイとが組み合わされている場合）を参照して説明されるが、いくつかの実施形態では、デバイスは、図５Ｂに示すように、ディスプレイとは別個のタッチ感知面上での入力を検出する。いくつかの実施形態では、このタッチ感知面（例えば、図５Ｂの５５１）は、ディスプレイ（例えば、５５０）上の主軸（例えば、図５Ｂの５５３）に対応する主軸（例えば、図５Ｂの５５２）を有する。これらの実施形態によれば、デバイスは、タッチ感知面５５１との接触（例えば、図５Ｂの５６０及び５６２）を、ディスプレイ上のそれぞれの場所に対応する場所（例えば、図５Ｂでは、５６０は５６８に対応し、５６２は５７０に対応する）にて検出する。このように、タッチ感知面がディスプレイとは別個のものである場合、タッチ感知面（例えば、図５Ｂの５５１）上でデバイスによって検出されたユーザ入力（例えば、接触５６０及び接触５６２、並びにそれらの移動）が、多機能デバイスのディスプレイ（例えば、図５Ｂでの５５０）上のユーザインタフェースを操作するために、デバイスによって使用される。同様の方法が、本明細書に記載の他のユーザインタフェースに任意選択的に使用されることを理解されたい。
【０１４４】
更に加えて、以下の説明は、主に指入力（例えば、指の接触、指のタップジェスチャ、指のスワイプジェスチャ）を参照して説明されるが、いくつかの実施形態では、それらの指入力のうちの１つ以上は、別の入力デバイスからの入力（例えば、マウスに基づく入力又はスタイラス入力）で置き換えられることを理解されたい。例えば、スワイプジェスチャは、任意選択的に、（例えば、接触の代わりに）マウスクリックと置換され、その後、（例えば、接触の移動の代わりに）スワイプの経路に沿ってカーソルの移動が行われる。別の例として、タップジェスチャは、（例えば、接触の検出に続いて接触の検出を停止する代わりに）カーソルがタップジェスチャの位置上に配置されている間、任意選択的に、マウスクリックと置換される。同様に、複数のユーザ入力が同時に検出される時、複数のコンピュータマウスが同時に、任意選択的に用いられているか、又はマウスと指接触が同時に用いられていることが理解されよう。
【０１４５】
図６Ａは、例示的なパーソナル電子デバイス６００を示す。デバイス６００は、本体６０２を含む。いくつかの実施形態では、デバイス６００は、デバイス２００及びデバイス４００（例えば、図２Ａ〜図４Ｂ）に関して記載した特徴のいくつか又は全てを含み得る。いくつかの実施形態では、デバイス６００は、タッチ感知ディスプレイ画面６０４、以後、タッチスクリーン６０４を有する。タッチスクリーン６０４の代わりに、又はそれに追加して、デバイス６００は、ディスプレイ及びタッチ感知面を有する。デバイス２００及びデバイス４００と同様に、いくつかの実施形態では、タッチスクリーン６０４（又はタッチ感知面）は、加えられている接触（例えば、タッチ）の強度を検出するための１つ以上の強度センサを有してもよい。タッチスクリーン６０４（又は、タッチ感知面）の１つ以上の強度センサは、タッチの強度を表す出力データを提供することができる。デバイス６００のユーザインタフェースは、タッチの強度に基づきタッチに応じてもよく、これは、異なる強度のタッチは、デバイス６００上で異なるユーザインタフェース動作を呼び出し得ることを意味する。
【０１４６】
タッチ強度を検出して処理するための技術は、例えば、関連出願である、２０１３年５月８日出願の「Ｄｅｖｉｃｅ，Ｍｅｔｈｏｄ，ａｎｄ  Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  ｆｏｒ  Ｄｉｓｐｌａｙｉｎｇ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ｏｂｊｅｃｔｓ  Ｃｏｒｒｅｓｐｏｎｄｉｎｇ  ｔｏ  ａｎ  Ａｐｐｌｉｃａｔｉｏｎ」と題された国際特許出願第ＰＣＴ／ＵＳ２０１３／０４００６１号、及び２０１３年１１月１１日出願の「Ｄｅｖｉｃｅ，Ｍｅｔｈｏｄ，ａｎｄ  Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  ｆｏｒ  Ｔｒａｎｓｉｔｉｏｎｉｎｇ  Ｂｅｔｗｅｅｎ  Ｔｏｕｃｈ  Ｉｎｐｕｔ  ｔｏ  Ｄｉｓｐｌａｙ  Ｏｕｔｐｕｔ  Ｒｅｌａｔｉｏｎｓｈｉｐｓ」と題された同第ＰＣＴ／ＵＳ２０１３／０６９４８３号に見出すことができ、これらの文献のそれぞれは、全体が参照により本明細書に組み込まれる。
【０１４７】
いくつかの実施形態では、デバイス６００は、１つ以上の入力機構６０６及び入力機構６０８を有する。入力機構６０６及び入力機構６０８は、含まれる場合には、物理的なものとすることができる。物理入力機構の例としては、プッシュボタン及び回転可能機構が挙げられる。いくつかの実施形態では、デバイス６００は、１つ以上のアタッチメント機構を有する。そのようなアタッチメント機構は、含まれる場合には、例えば、帽子、アイウェア、イヤリング、ネックレス、シャツ、ジャケット、ブレスレット、腕時計バンド、チェーン、ズボン、ベルト、靴、財布、バックパックなどに、デバイス６００を取り付けることを可能にし得る。これらのアタッチメント機構は、ユーザによってデバイス６００が着用されることを可能にし得る。
【０１４８】
図６Ｂは、例示的なパーソナル電子デバイス６００を示す。いくつかの実施形態では、デバイス６００は、図２Ａ、図２Ｂ、及び図４に関連して記載した構成要素のいくつか又は全てを含み得る。デバイス６００は、Ｉ／Ｏ部６１４を１つ以上のコンピュータプロセッサ６１６及びメモリ６１８に動作可能に連結するバス６１２を有する。Ｉ／Ｏ部６１４は、タッチ感知構成要素６２２、及び、任意選択的に、タッチ強度感知構成要素６２４を有し得るディスプレイ６０４に接続することができる。更には、Ｉ／Ｏ部６１４は、Ｗｉ−Ｆｉ（登録商標）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、近距離通信（「ＮＦＣ」）、セルラー、及び／又は他の無線通信技術を使用して、アプリケーション及びオペレーティングシステムデータを受信するための、通信ユニット６３０と接続することができる。デバイス６００は、入力機構６０６及び／又は入力機構６０８を含むことができる。入力機構６０６は、例えば、回転可能入力デバイス、又は押し下げ可能かつ回転可能な入力デバイスとしてもよい。入力機構６０８は、いくつかの実施例では、ボタンであってもよい。
【０１４９】
入力機構６０８は、いくつかの実施例では、マイクロフォンであってもよい。パーソナル電子デバイス６００は、ＧＰＳセンサ６３２、加速度計６３４、方向センサ６４０（例えば、コンパス）、ジャイロスコープ６３６、動きセンサ６３８、及び／又はこれらの組み合わせなどの、様々なセンサを含み得るものであり、それらの全ては、Ｉ／Ｏ部６１４に動作可能に接続することができる。
【０１５０】
パーソナル電子デバイス６００のメモリ６１８は、コンピュータ実行可能命令を記憶するための１つ以上の非一時的コンピュータ可読記憶媒体を含み得、それらの命令は、１つ以上のコンピュータプロセッサ６１６によって実行されると、例えば、コンピュータプロセッサに、プロセス１０００及びプロセス１１００（図１０〜図１１）を含めた、以下に説明する技術を実行させることができる。パーソナル電子デバイス６００は、図６Ｂの構成要素及び構成に限定されるものではなく、他の構成要素又は追加的構成要素を、複数の構成で含み得る。
【０１５１】
本明細書にて使用される時、用語「アフォーダンス」は、デバイス２００、デバイス４００、及び／又はデバイス６００（図２、図４、及び図６）のディスプレイスクリーン上に表示され得るユーザ対話式のグラフィカルユーザインタフェースオブジェクトを指す。例えば、画像（例えば、アイコン）、ボタン、及びテキスト（例えば、リンク）はそれぞれ、アフォーダンスを構成することができる。
【０１５２】
本明細書にて使用される時、用語「フォーカスセレクタ」とは、ユーザが対話しているユーザインタフェースの現在の部分を示す入力要素を指す。カーソル又は他の位置マーカを含むいくつかの実装において、タッチ感知面（例えば、図４のタッチパッド４５５、又は図５Ｂのタッチ感知面５５１）上で入力（例えば、押圧入力）が検出された時に、カーソルが特定のユーザインタフェース要素（例えば、ボタン、ウィンドウ、スライダ、又は他のユーザインタフェース要素）の上にある時、カーソルは「フォーカスセレクタ」として機能し、特定のユーザインタフェース要素が、検出された入力に従って調整される。タッチスクリーンディスプレイ上のユーザインタフェース要素との直接的な対話を可能にする、タッチスクリーンディスプレイ（例えば、図２Ａのタッチ感知ディスプレイシステム２１２、又は図５Ａのタッチスクリーン２１２）を含むいくつかの実装では、タッチスクリーン上で検出される接触が「フォーカスセレクタ」の役割を果たすため、入力（例えば、接触による押圧入力）がタッチスクリーンディスプレイ上の特定のユーザインタフェース要素（例えば、ボタン、ウィンドウ、スライダ、又は他のユーザインタフェース要素）の場所で検出されると、その特定のユーザインタフェース要素は検出された入力に従って調節される。いくつかの実装では、（例えば、タブキー又は矢印キーを使ってフォーカスを１つのボタンから別のボタンに移動させることにより）タッチスクリーンディスプレイ上の対応するカーソルの移動又は接触の移動なしに、フォーカスが、ユーザインタフェースの１つの領域からユーザインタフェースの別の領域に移動される。これらの実装において、フォーカスセレクタは、ユーザインタフェースの異なる領域間でのフォーカスの移動に従って移動する。フォーカスセレクタが採用する具体的な形態とは関わりなく、フォーカスセレクタは、全般的に、ユーザが意図するユーザインタフェースとの対話を（例えば、ユーザが対話することを意図しているユーザインタフェースの要素をデバイスに示すことによって）伝達するために、ユーザによって制御されるユーザインタフェース要素（又は、タッチスクリーンディスプレイ上での接触）である。例えば、タッチ感知面（例えば、タッチパッド又はタッチスクリーン）上で押圧入力が検出される間の、対応のボタンの上のフォーカスセレクタ（例えば、カーソル、接触、又は選択ボックス）の場所は、その対応のボタンを（そのデバイスのディスプレイ上に示される他のユーザインタフェース要素ではなく）アクティブ化することをユーザが意図していることを示すものである。
【０１５３】
本明細書及び特許請求の範囲で使用する時、接触の「特性強度」という用語は、接触の１つ以上の強度に基づく、その接触の特性を指す。いくつかの実施形態では、特性強度は複数の強度サンプルに基づく。特性強度は、任意選択的に、既定の数の強度サンプル、又は既定のイベント（例えば、接触を検出した後、接触のリフトオフを検出する前、接触の移動の開始を検出する前若しくは後、接触の終了を検出する前、接触の強度の増加を検出する前若しくは後、及び／又は接触の強度の減少を検出する前若しくは後）に対して所定の時間期間（例えば、０．０５、０．１、０．２、０．５、１、２、５、１０秒）内に収集された強度サンプルのセットに基づく。接触の特性強度は、任意選択的に、接触の強度の最大値、接触の強度の平均値（mean value）、接触の強度の平均値（average value）、接触の強度の上位１０％値、接触の強度の最大値の半分の値、接触の強度の最大値の９０％の値など、のうちの１つ以上に基づく。いくつかの実施形態では、特性強度を判定するために、接触の期間が使用される（例えば、特性強度が経時的な接触の強度の平均である時）。いくつかの実施形態では、動作がユーザによって実行されたか否かを判定するために、特性強度を１つ以上の強度閾値のセットと比較する。例えば、１つ以上の強度閾値のセットは、第１の強度閾値及び第２の強度閾値を含むことができる。この実施例では、第１の閾値を上回らない特性強度を有する接触の結果として第１の動作が実行され、第１の強度閾値を上回り、第２の強度閾値を上回らない特性強度を有する接触の結果として第２の動作が実行され、第２の閾値を上回る特性強度を有する接触の結果として第３の動作が実行される。いくつかの実施形態では、特性強度と１つ以上の閾値との間の比較が、第１の動作又は第２の動作のいずれを実行するかを判定するために使用されるのではなく、１つ以上の動作を実行するかどうか（例えば、それぞれの動作を実行するのか、又はそれぞれの動作の実行を省略するのか）を判定するために使用される。
【０１５４】
いくつかの実施形態では、特性強度を判定する目的で、ジェスチャの一部分が特定される。例えば、タッチ感知面は、接触の強度が増加する、開始位置から遷移して終了位置まで達する連続的なスワイプ接触を受け取ってもよい。この実施例では、終了位置における接触の特性強度は、連続的なスワイプ接触全体ではなく、そのスワイプ接触の一部分のみ（例えば、終了位置におけるスワイプ接触の部分のみ）に基づいてもよい。いくつかの実施形態では、接触の特性強度を判定する前に、平滑化アルゴリズムをそのスワイプ接触の強度に適用してもよい。例えば、平滑化アルゴリズムは、任意選択的に、非荷重移動平均平滑化アルゴリズム、三角平滑化アルゴリズム、中央値フィルタ平滑化アルゴリズム、及び／又は指数平滑化アルゴリズム、のうちの１つ以上を含む。いくつかの状況では、これらの平滑化アルゴリズムは、特性強度を判定する目的で、スワイプ接触の強度の小幅な上昇又は低下を除外する。
【０１５５】
タッチ感知面上の接触の強度は、接触検出強度閾値、軽い押圧強度閾値、深い押圧強度閾値、及び／又は１つ以上の他の強度閾値などの１つ以上の強度閾値に対して特徴付けしてもよい。いくつかの実施形態では、軽い押圧強度閾値は、物理マウスのボタン又はトラックパッドのクリックに典型的に関連付けられた動作を、デバイスが実行することになる強度に相当する。いくつかの実施形態では、深い押圧強度閾値は、物理マウスのボタン又はトラックパッドのクリックに典型的に関連付けられた動作とは異なる動作を、デバイスが実行することになる強度に相当する。いくつかの実施形態では、軽い押圧強度閾値を下回る（例えば、かつ、それを下回ると接触がもはや検出されないわずかな接触検出強度閾値を上回る）特性強度で接触が検出される場合、デバイスは、軽い押圧強度閾値又は深い押圧強度閾値に関連付けられた動作を実行することなく、タッチ感知面上の接触の移動に従って、フォーカスセレクタを移動させる。全般的には、特に明記しない限り、これらの強度閾値は、ユーザインタフェース図の異なるセット間でも一貫している。
【０１５６】
軽い押圧強度閾値を下回る強度から、軽い押圧強度閾値と深い押圧強度閾値との間の強度への接触の特性強度の増大は、「軽い押圧」入力と称される場合がある。深い押圧強度閾値を下回る強度から、深い押圧強度閾値を上回る強度への接触の特性強度の増大は、「深い押圧」入力と称される場合がある。接触検出強度閾値を下回る強度から、接触検出強度閾値と軽い押圧強度閾値との間の強度への接触の特性強度の増大は、タッチ面上の接触の検出と称される場合がある。接触検出強度閾値を上回る強度から、接触検出強度閾値を下回る強度への接触の特性強度の減少は、タッチ面からの接触のリフトオフの検出と称される場合がある。いくつかの実施形態では、接触検出強度閾値はゼロである。いくつかの実施形態では、接触検出強度閾値はゼロを上回る。
【０１５７】
本明細書で説明されるいくつかの実施形態では、１つ以上の動作は、それぞれの押圧入力を含むジェスチャの検出に応じて、又はそれぞれの接触（又は、複数の接触）で実行されるそれぞれの押圧入力の検出に応じて実行され、それぞれの押圧入力は、少なくとも部分的に、押圧入力強度閾値を上回る接触（又は、複数の接触）の強度の増大の検出に基づいて検出される。いくつかの実施形態では、それぞれの動作は、押圧入力強度閾値を上回る、対応する接触の強度の増大（例えば、対応する押圧入力の「ダウンストローク」）の検出に応じて実行される。いくつかの実施形態では、押圧入力は、押圧入力強度閾値を上回る、対応する接触の強度の増大、及び後続の、押圧入力強度閾値を下回る接触の強度の減少を含み、対応する動作は、その後続の押圧入力閾値を下回る対応する接触の強度の減少（例えば、対応する押圧入力の「アップストローク」）の検出に応じて、実行される。
【０１５８】
いくつかの実施形態では、デバイスは、「ジッタ」と呼ばれる場合がある不測の入力を回避するために強度ヒステリシスを採用し、デバイスは、押圧入力強度閾値との既定の関連性を有するヒステリシス強度閾値を定義又は選択する（例えば、ヒステリシス強度閾値は、押圧入力強度閾値よりもＸ強度単位低いか、又は、ヒステリシス強度閾値は、押圧入力強度閾値の７５％、９０％、若しくは何らかの妥当な比率である）。したがって、いくつかの実施形態では、押圧入力は、押圧入力強度閾値を上回る対応する接触の強度の増大、及び後続の、押圧入力強度閾値に対応するヒステリシス強度閾値を下回る接触の強度の減少を含み、対応する動作は、そのヒステリシス強度閾値を下回る、後続の対応する接触の強度の減少（例えば、対応する押圧入力の「アップストローク」）の検出に応じて、実行される。同様に、いくつかの実施形態では、押圧入力は、デバイスが、ヒステリシス強度閾値以下の強度から押圧入力強度閾値以上の強度への接触の強度の増大、及び任意選択的に、ヒステリシス強度以下の強度への、後続の接触の強度の減少を検出する場合にのみ検出され、対応する動作は、その押圧入力の検出（例えば、状況に応じて、接触の強度の増大、又は接触の強度の減少）に応じて、実行される。
【０１５９】
説明を容易にするために、押圧入力強度閾値に関連付けられた押圧入力に応じて、又はその押圧入力を含むジェスチャに応じて実行される動作の説明は、押圧入力強度閾値を上回る接触の強度の増大、ヒステリシス強度閾値を下回る強度から押圧入力強度閾値を上回る強度への接触の強度の増大、押圧入力強度閾値を下回る接触の強度の減少、及び／又は押圧入力強度閾値に対応するヒステリシス強度閾値を下回る接触の強度の減少のいずれかの検出に応じて、任意選択的にトリガされる。更に加えて、押圧入力強度閾値を下回る接触の強度の減少の検出に応じて動作が実行されるとして説明される実施例では、その動作は、押圧入力強度閾値に対応し、かつそれよりも低いヒステリシス強度閾値を下回る、接触の強度の減少の検出に応じて任意選択的に実行される。
３．デジタルアシスタントシステム
【０１６０】
図７Ａは、様々な実施例に係る、デジタルアシスタントシステム７００のブロック図を示す。いくつかの実施例では、デジタルアシスタントシステム７００は独立型コンピュータシステム上に実施することができる。いくつかの実施例では、デジタルアシスタントシステム７００は複数のコンピュータにわたって分散させることができる。いくつかの実施例では、デジタルアシスタントのモジュール及び機能のいくつかはサーバ部分及びクライアント部分に分割されることができる。この場合には、クライアント部分は１つ以上のユーザデバイス（例えば、デバイス１０４、デバイス１２２、デバイス２００、デバイス４００、又はデバイス６００）上に常駐し、例えば、図１に示すように、１つ以上のネットワークを通してサーバ部分（例えば、サーバシステム１０８）と通信する。いくつかの実施例では、デジタルアシスタントシステム７００は、図１に示すサーバシステム１０８（及び／又はＤＡサーバ１０６）の一実施形態であることができる。デジタルアシスタントシステム７００はデジタルアシスタントシステムの単なる一例にすぎず、デジタルアシスタントシステム７００は、図示されているよりも多数又は少数の構成要素を有することができるか、２つ以上の構成要素を組み合わせてもよいか、あるいは構成要素の異なる構成又は配置を有してもよいことに留意されたい。図７Ａに示す様々な構成要素は、１つ以上の信号処理回路及び／若しくは特定用途向け集積回路を含む、ハードウェア、１つ以上のプロセッサによって実行されるソフトウェア命令、ファームウェア、又はそれらの組み合わせの形態で実装されることができる。
【０１６１】
デジタルアシスタントシステム７００は、メモリ７０２、１つ以上のプロセッサ７０４、入出力（Ｉ／Ｏ）インタフェース７０６、及びネットワーク通信インタフェース７０８を含むことができる。これらの構成要素は１本以上の通信バス又は信号線７１０を通して互いに通信することができる。
【０１６２】
いくつかの実施例では、メモリ７０２は、高速ランダムアクセスメモリ並びに／又は不揮発性コンピュータ可読記憶媒体（例えば、１つ以上の磁気ディスク記憶デバイス、フラッシュメモリデバイス、又は他の不揮発性固体メモリデバイス）などの、非一時的コンピュータ可読媒体を含むことができる。
【０１６３】
いくつかの実施例では、Ｉ／Ｏインタフェース７０６は、ディスプレイ、キーボード、タッチスクリーン、及びマイクロフォンなどの、デジタルアシスタントシステム７００の入出力デバイス７１６をユーザインタフェースモジュール７２２に連結することができる。Ｉ／Ｏインタフェース７０６は、ユーザインタフェースモジュール７２２と連携して、ユーザ入力（例えば、音声入力、キーボード入力、タッチ入力等）を受信し、それらを適宜に処理することができる。いくつかの実施例では、例えば、デジタルアシスタントが独立型ユーザデバイス上に実装される場合には、デジタルアシスタントシステム７００は、図２Ａ、図４、図６Ａ〜図６Ｂにおいてそれぞれデバイス２００、デバイス４００、又はデバイス６００に関連して説明されている構成要素及びＩ／Ｏ通信インタフェースの任意のものを含むことができる。いくつかの実施例では、デジタルアシスタントシステム７００はデジタルアシスタントの実施形態のサーバ部分を表すことができ、ユーザデバイス（例えば、デバイス１０４、デバイス２００、デバイス４００、又はデバイス６００）上に常駐するクライアント側部分を通してユーザと対話することができる。
【０１６４】
いくつかの実施例では、ネットワーク通信インタフェース７０８は有線通信ポート（単数又は複数）７１２並びに／又は無線伝送及び受信回路７１４を含むことができる。有線通信ポート（単数又は複数）は、１つ以上の有線インタフェース、例えば、イーサネット、ユニバーサルシリアルバス（ＵＳＢ）、ＦＩＲＥＷＩＲＥ（登録商標）などを介して通信信号を受信及び送信し得る。無線回路７１４は、通信ネットワーク及び他の通信機器を起点／終点として、ＲＦ信号及び／又は光信号を受信及び送信し得る。無線通信は、ＧＳＭ（登録商標）、ＥＤＧＥ、ＣＤＭＡ、ＴＤＭＡ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｗｉ−Ｆｉ（登録商標）、ＶｏＩＰ、Ｗｉ−ＭＡＸ（登録商標）、あるいは任意のその他の好適な通信プロトコル等の、複数の通信規格、プロトコル及び技術のうちの任意のものを用いることができる。ネットワーク通信インタフェース７０８は、インターネット、イントラネット、及び／又はセルラー電話ネットワーク、無線ローカルエリアネットワーク（ＬＡＮ）などの無線ネットワーク、及び／又はメトロポリタンエリアネットワーク（metropolitan area network、ＭＡＮ）などの、ネットワークを用いた、デジタルアシスタントシステム７００とデバイスとの間の通信を可能にすることができる。
【０１６５】
いくつかの実施例では、メモリ７０２、又はメモリ７０２のコンピュータ可読記憶媒体は、オペレーティングシステム７１８、通信モジュール７２０、ユーザインタフェースモジュール７２２、１つ以上のアプリケーション７２４、及びデジタルアシスタントモジュール７２６の全て又はサブセットを含むプログラム、モジュール、命令、及びデータ構造を記憶することができる。特に、メモリ７０２、又はメモリ７０２のコンピュータ可読記憶媒体は、後述されるプロセス１０００及びプロセス１１００を実行する命令を記憶することができる。１つ以上のプロセッサ７０４はこれらのプログラム、モジュール、及び命令を実行し、データ構造から／へと読み出し／書き込みを行い得る。
【０１６６】
オペレーティングシステム７１８（例えば、Ｄａｒｗｉｎ（登録商標）、ＲＴＸＣ（登録商標）、ＬＩＮＵＸ（登録商標）、ＵＮＩＸ（登録商標）、ｉＯＳ、ＯＳ  Ｘ（登録商標）、ＷＩＮＤＯＷＳ（登録商標）、又はＶｘＷｏｒｋｓなどの組み込みオペレーティングシステム）は、一般的なシステムタスク（例えば、メモリ管理、記憶デバイス制御、電力管理など）を制御及び管理するための様々なソフトウェア構成要素及び／又はドライバを含むことができ、様々なハードウェア、ファームウェア、及びソフトウェア構成要素間の通信を促進する。
【０１６７】
通信モジュール７２０は、ネットワーク通信インタフェース７０８を通じたデジタルアシスタントシステム７００とその他のデバイスとの間の通信を促進することができる。例えば、通信モジュール７２０は、図２Ａ、図４、図６Ａ〜図６Ｂにそれぞれ示すデバイス２００、デバイス４００、及びデバイス６００等の電子デバイスのＲＦ回路２０８と通信し得る。通信モジュール７２０はまた、無線回路７１４及び／又は有線通信ポート７１２によって受信されたデータを処理するための様々な構成要素も含むことができる。
【０１６８】
ユーザインタフェースモジュール７２２はＩ／Ｏインタフェース７０６を介して（例えば、キーボード、タッチスクリーン、ポインティング装置、コントローラ、及び／又はマイクロフォンから）ユーザからのコマンド及び／又は入力を受信し得、ディスプレイ上にユーザインタフェースオブジェクトを生成する。ユーザインタフェースモジュール７２２はまた、出力（例えば、スピーチ、サウンド、アニメーション、テキスト、アイコン、振動、触覚フィードバック、光、等）を準備し、Ｉ／Ｏインタフェース７０６を介して（例えば、ディスプレイ、オーディオチャネル、スピーカ、タッチパッドなどを通して）ユーザへ配信することができる。
【０１６９】
アプリケーション７２４は、１つ以上のプロセッサ７０４によって実行されるよう構成されたプログラム及び／又はモジュールを含むことができる。例えば、デジタルアシスタントシステムがスタンドアロンのユーザデバイス上に実施される場合には、アプリケーション７２４は、ゲーム、カレンダアプリケーション、ナビゲーションアプリケーション、又は電子メールアプリケーション等の、ユーザアプリケーションを含み得る。デジタルアシスタントシステム７００がサーバ上に実施される場合には、アプリケーション７２４は、例えば、資源管理アプリケーション、診断アプリケーション、又はスケジューリングアプリケーションを含むことができる。
【０１７０】
メモリ７０２はまた、デジタルアシスタントモジュール７２６（又はデジタルアシスタントのサーバ部分）も記憶することができる。いくつかの実施例では、デジタルアシスタントモジュール７２６は、以下のサブモジュール、又はそれらのサブセット若しくはスーパーセットを含むことができる：入出力処理モジュール７２８、音声テキスト化（ＳＴＴ）処理モジュール７３０、自然言語処理モジュール７３２、ダイアログフロー処理モジュール７３４、タスクフロー処理モジュール７３６、サービス処理モジュール７３８、及び音声合成モジュール７４０。これらのモジュールの各々は、デジタルアシスタントモジュール７２６の以下のシステム又はデータ及びモデルのうちの１つ以上、又はそれらのサブセット若しくはスーパーセットへのアクセスを有することができる：オントロジ７６０、語彙索引７４４、ユーザデータ７４８、タスクフローモデル７５４、サービスモデル７５６、及びＡＳＲシステム４３１。
【０１７１】
いくつかの実施例では、デジタルアシスタントモジュール７２６内に実装された処理モジュール、データ、及びモデルを用いて、デジタルアシスタントは以下のもののうちの少なくともいくつかを実行することができる：音声入力をテキストに変換すること、ユーザから受信した自然言語入力内に表現されているユーザの意図を特定すること、ユーザの意図を完全に推測するために必要な情報を（例えば、単語、ゲーム、意図などの曖昧さを除去することによって）能動的に引き出し、取得すること、推測された意図を満たすためのタスクフローを判定すること、及び、そのタスクフローを実行し、推測された意図を満たすこと。
【０１７２】
いくつかの実施例では、図７Ｂに示すように、Ｉ／Ｏ処理モジュール７２８は、ユーザ入力（例えば、音声入力）を取得するため、及びユーザ入力への応答を（例えば、音声出力として）提供するために、図７ＡにおけるＩ／Ｏデバイス７１６を通してユーザと対話するか、又は、図７Ａにおけるネットワーク通信インタフェース７０８を通してユーザデバイス（例えば、デバイス１０４、デバイス２００、デバイス４００、若しくはデバイス６００）と対話することができる。Ｉ／Ｏ処理モジュール７２８は、ユーザ入力と共に、又はその受信の直後に、ユーザ入力に関連付けられるコンテキスト情報をユーザデバイスから任意選択的に取得することができる。コンテキスト情報は、ユーザ入力に関連するユーザ固有のデータ、語彙、及び／又はプリファレンスを含むことができる。いくつかの実施例では、コンテキスト情報はまた、ユーザ要求が受信された時点におけるユーザデバイスのソフトウェア及びハードウェア状態、並びに／又はユーザ要求が受信された時点におけるユーザの周囲環境に関する情報も含む。いくつかの実施例では、Ｉ／Ｏ処理モジュール７２８はまた、ユーザ要求について、ユーザに補足質問を送り、ユーザから回答を受信することができる。ユーザ要求がＩ／Ｏ処理モジュール７２８によって受信され、ユーザ要求が音声入力を含むことができる場合には、Ｉ／Ｏ処理モジュール７２８は音声入力を音声テキスト化変換のためにＳＴＴ処理モジュール７３０（又は音声認識装置）へ転送することができる。
【０１７３】
ＳＴＴ処理モジュール７３０は１つ以上のＡＳＲシステムを含むことができる。１つ以上のＡＳＲシステムは、Ｉ／Ｏ処理モジュール７２８を通して受信された音声入力を処理し、認識結果を生成することができる。各ＡＳＲシステムはフロントエンド音声プリプロセッサを含むことができる。フロントエンド音声プリプロセッサは音声入力から代表的特徴を導出することができる。例えば、フロントエンド音声プリプロセッサは音声入力に対してフーリエ変換を実行し、音声入力を一連の代表的多次元ベクトルとして特徴付けるスペクトル特徴を導出することができる。更に、各ＡＳＲシステムは１つ以上の音声認識モデル（例えば、音響モデル及び／又は言語モデル）を含むことができ、１つ以上の音声認識エンジンを実施装することができる。音声認識モデルの例としては、隠れマルコフモデル、混合ガウスモデル、ディープニューラルネットワークモデル、ｎグラム言語モデル、及びその他の統計的モデルを挙げることができる。音声認識エンジンの例としては、動的タイムワーピングベースのエンジン、及び重み付き有限状態トランスデューサ（weighted finite-state transducer、ＷＦＳＴ）ベースのエンジンを挙げることができる。１つ以上の音声認識モデル及び１つ以上の音声認識エンジンを用いて、フロントエンド音声プリプロセッサの導出された代表的特徴を処理し、中間認識結果（例えば、音素、音素文字列、及び部分語）、並びに最終的に、テキスト認識結果（例えば、単語、単語文字列、若しくはトークンの列）を生成することができる。いくつかの実施例では、音声入力は、認識結果を生成するために、サードパーティサービスによって、又はユーザのデバイス（例えば、デバイス１０４、デバイス２００、デバイス４００、若しくはデバイス６００）上で少なくとも部分的に処理することができる。ＳＴＴ処理モジュール７３０が、テキスト文字列（例えば、単語、単語の列、又はトークンの列）を包含する認識結果を生成すると、認識結果は意図推論のために自然言語処理モジュール７３２に渡されることができる。
【０１７４】
音声テキスト化処理についての更なる詳細が、２０１１年９月２０日に出願された、「Ｃｏｎｓｏｌｉｄａｔｉｎｇ  Ｓｐｅｅｃｈ  Ｒｅｃｏｇｎｉｔｉｏｎ  Ｒｅｓｕｌｔｓ」についての米国実用特許出願第１３／２３６，９４２号に記載されている。同出願の開示全体は本明細書において参照により組み込まれている。
【０１７５】
いくつかの実施例では、ＳＴＴ処理モジュール７３０は、音声記号変換モジュール７３１を介して、認識可能な単語の語彙を含み、及び／又はそれにアクセスすることができる。各語彙単語は、発語認識音声記号で表現された単語の１つ以上の候補発音に関連付けられていることができる。特に、認識可能な単語の語彙は、複数の候補発音に関連付けられた単語を含むことができる。例えば、語彙は、／
2018014086.tif 000003
／及び／
2018014086.tif 000004
／の候補発音に関連付けられた単語「ｔｏｍａｔｏ」を含んでもよい。更に、語彙単語は、ユーザからの以前の音声入力に基づくカスタム候補発音に関連付けられていることができる。このようなカスタム候補発音はＳＴＴ処理モジュール７３０内に記憶されることができ、特定のユーザに、デバイス上のそのユーザのプロファイルを介して関連付けられていることができる。いくつかの実施例では、単語のための候補発音は、単語の綴り、並びに１つ以上の言語規則及び／若しくは音声規則に基づいて決定することができる。いくつかの実施例では、候補発音は、例えば、既知の標準的発音に基づいて、手動で生成することができる。
【０１７６】
いくつかの実施例では、候補発音は候補発音の一般性に基づいて順位付けすることができる。例えば、候補発音／
2018014086.tif 000005
／は／
2018014086.tif 000006
／よりも高く順位付けすることができる。なぜなら、前者は、（例えば、全ユーザの間で、特定の地理的領域内のユーザについて、又はユーザの任意の他の適当なサブセットについて）より一般的に用いられている発音であるからである。いくつかの実施例では、候補発音は、候補発音が、ユーザに関連付けられたカスタム候補発音であるかどうかに基づいて順位付けすることができる。例えば、カスタム候補発音は標準的な候補発音よりも高く順位付けすることができる。これは、標準的な発音から逸脱した特有の発音を有する固有名詞を認識するために有用になり得る。いくつかの実施例では、候補発音は、出身地、国籍、又は民族などの、１つ以上の発語特性に関連付けられていることができる。例えば、候補発音／
2018014086.tif 000007
／は米国に関連付けられていることができ、それに対して、候補発音／
2018014086.tif 000008
／は英国に関連付けられていることができる。更に、候補発音の順位は、デバイス上のユーザのプロファイル内に記憶されているユーザの１つ以上の特性（例えば、出身地、国籍、民族など）に基づくことができる。例えば、ユーザのプロファイルから、ユーザは米国に関連付けられていると判定することができる。ユーザが米国に関連付けられていることに基づき、候補発音／
2018014086.tif 000009
／（米国に関連付けられている）を候補発音／
2018014086.tif 000010
／（英国に関連付けられている）よりも高く順位付けすることができる。いくつかの実施例では、順位付けされた候補発音のうちの１つを、予測される発音（例えば、最も可能性の高い発音）として選択することができる。
【０１７７】
音声入力が受信されると、ＳＴＴ処理モジュール７３０は、音声入力に対応する音素を（例えば、音響モデルを用いて）決定するために用いられることができ、次に、音素に一致する単語を（例えば、言語モデルを用いて）決定することを試みる。例えば、ＳＴＴ処理モジュール７３０がまず、音声入力の一部分に対応する音素列／
2018014086.tif 000011
／を特定することができた場合には、次に、それは、語彙索引７４４に基づいて、この列は単語「ｔｏｍａｔｏ」に対応すると決定することができる。
【０１７８】
いくつかの実施例では、ＳＴＴ処理モジュール７３０は、発言内の単語を決定するために近似照合技法を用いることができる。それゆえ、例えば、ＳＴＴ処理モジュール７３０は、たとえ、その特定の音素列がその単語のための候補音素列のうちの１つでなくても、音素列／
2018014086.tif 000012
／は単語「ｔｏｍａｔｏ」に対応すると決定することができる。
【０１７９】
デジタルアシスタントの自然言語処理モジュール７３２（「自然言語プロセッサ」）は、ＳＴＴ処理モジュール７３０によって生成された単語又はトークンの列（「トークン列」）を獲得し、トークン列を、デジタルアシスタントによって認識される１つ以上の「実施可能な意図」に関連付けようと試みることができる。「実施可能な意図」は、デジタルアシスタントによって実行されることができ、タスクフローモデル７５４内に実装される関連付けられたタスクフローを有することができるタスクを表すことができる。関連付けられたタスクフローは、タスクを実行するためにデジタルアシスタントが取る一連のプログラムされたアクション及びステップであることができる。デジタルアシスタントの能力の範囲は、タスクフローモデル７５４内に実装され、記憶されているタスクフローの数及び種類に依存し、又は、換言すれば、デジタルアシスタントが認識する「実施可能な意図」の数及び種類に依存することができる。しかし、デジタルアシスタントの有効性はまた、自然言語で表現されたユーザ要求から正確な「実施可能な意図（単数又は複数）」を推測するアシスタントの能力にも依存し得る。
【０１８０】
いくつかの実施例では、ＳＴＴ処理モジュール７３０から取得される単語又はトークンの列に加えて、自然言語処理モジュール７３２はまた、ユーザ要求に関連付けられるコンテキスト情報も、例えば、Ｉ／Ｏ処理モジュール７２８から、受信することができる。自然言語処理モジュール７３２は、ＳＴＴ処理モジュール７３０から受信したトークン列内に包含されている情報を明らかにし、補完し、及び／又は更に明確にするために、コンテキスト情報を任意選択的に用いることができる。コンテキスト情報は、例えば、ユーザプリファレンス、ユーザデバイスのハードウェア及び／又はソフトウェア状態、ユーザ要求の前、最中、若しくは直後に収集されたセンサ情報、デジタルアシスタントとユーザとの間の以前の対話（例えば、ダイアログ）、並びに同様のものを含むことができる。本明細書で説明されるように、コンテキスト情報は動的であることができ、時間、ロケーション、ダイアログの内容及び他の因子によって変化し得る。
【０１８１】
いくつかの実施例では、自然言語処理は、例えば、オントロジ７６０に基づくことができる。オントロジ７６０は、多数のノードを包含する階層構造であり、各ノードは、「実施可能な意図」又はその他の「属性」のうちの１つ以上に関連する「実施可能な意図」又は「属性」のいずれかを表すことができる。上述したように、「実施可能な意図」は、デジタルアシスタントが実行する能力を有するタスクを表すことができる。即ち、それは「実施可能」であるか又は実施の対象とすることができる。「属性」は、実施可能な意図、又は別の属性の下位態様に関連付けられるパラメータを表すことができる。オントロジ７６０内の実施可能な意図ノードと属性ノードとの間のリンクは、属性ノードによって表されるパラメータが、実施可能な意図ノードによって表されるタスクにどのように関係するのかを定義することができる。
【０１８２】
いくつかの実施例では、オントロジ７６０は実施可能な意図ノード及び属性ノードで構成されることができる。オントロジ７６０内において、それぞれの実施可能な意図ノードは１つ以上の属性ノードに直接又は１つ以上の中間属性ノードを介してリンクされていることができる。同様に、それぞれの属性ノードは、１つ以上の実施可能な意図ノードに直接又は１つ以上の中間属性ノードを介してリンクされていることができる。例えば、図７Ｃに示すように、オントロジ７６０は、「レストラン予約」ノード（すなわち、実施可能な意図ノード）含み得る。属性ノードである「レストラン」、「日付／時間」（予約用）及び「参加人数」が、実施可能な意図ノード（即ち、「レストラン予約」ノード）にそれぞれ直接に接続され得る。
【０１８３】
更に、属性ノードである「料理」、「価格帯」、「電話番号」及び「ロケーション」は、属性ノード「レストラン」のサブノードであり得、中間属性ノード「レストラン」を介して「レストラン予約」ノード（即ち、実施可能な意図ノード）にそれぞれ接続され得る。別の例として、図７Ｃに示すように、オントロジ７６０は「リマインダ設定」ノード（即ち、別の実施可能な意図ノード）も含み得る。属性ノード「日付／時間」（リマインダ設定用）及び「テーマ」（リマインダ用）は、「リマインダ設定」ノードにそれぞれリンクされ得る。属性ノード「日付／時間」は、レストラン予約をするタスク及びリマインダを設定するタスクの両方に関連し得るため、属性ノード「日付／時間」はオントロジ７６０内において「レストラン予約」ノード及び「リマインダ設定」ノードの両方にリンクされ得る。
【０１８４】
実施可能な意図ノードは、そのリンクされた概念ノードと共に、「ドメイン」として記述することができる。本説明では、各ドメインは、それぞれの実施可能な意図に関連付けられていることができ、特定の実施可能な意図に関連付けられたノードのグループ（及びノード間の関係）を指す。例えば、図７Ｃに示すオントロジ７６０は、オントロジ７６０内のレストラン予約ドメイン７６２の例及びリマインダドメイン７６４の例を含むことができる。レストラン予約ドメインは、実施可能な意図ノード「レストラン予約」、属性ノード「レストラン」、「日付／時間」、及び「参加人数」、並びに下位属性ノード「料理」、「価格帯」、「電話番号」及び「ロケーション」を含む。リマインダドメイン７６４は、実施可能な意図ノード「リマインダ設定」、及び属性ノード「テーマ」及び「日付／時間」を含み得る。いくつかの実施例では、オントロジ７６０は多くのドメインで構成されることができる。各ドメインは、１つ以上の他のドメインと、１つ以上の属性ノードを共有することができる。例えば、「日付／時間」属性ノードは、レストラン予約ドメイン７６２及びリマインダドメイン７６４に加えて、多くの異なるドメイン（例えば、スケジューリングドメイン、旅行予約ドメイン、映画チケットドメインなど）に関連付けられ得る。
【０１８５】
図７Ｃは、オントロジ７６０内に２つの例示的なドメインを示すが、他のドメイン（即ち、実施可能な意図）として、例えば、「映画を探す」、「電話をかける」、「道順を探す」、「会議をスケジュールする」、「メッセージを送信する」、及び「質問の答えを提供する」、「リストを読み上げる」、「ナビゲーションの指示を提供する」、「タスクの手順を提供する」などが挙げられ得る。「メッセージを送信する」のドメインは、「メッセージを送信する」の実施可能な意図ノードに関連付けられており、「受信者（単数又は複数）」、「メッセージタイプ」、及び「メッセージ本文」などの属性ノードを更に含み得る。属性ノードの「受信者」は更に、例えば、「受信者名」と「メッセージアドレス」などの下位属性ノードによって定義され得る。
【０１８６】
いくつかの実施例では、オントロジ７６０は、デジタルアシスタントが理解し、作用する能力を有する全てのドメイン（及び、したがって実施可能な意図）を含むことができる。いくつかの実施例では、オントロジ７６０は、ドメイン若しくはノード全体を追加若しくは除去すること、又はオントロジ７６０内のノード間の関係を変更することなどによって、変更することができる。
【０１８７】
いくつかの実施例では、複数の関連する実施可能な意図に関連付けられるノードは、オントロジ７６０内の「上位ドメイン」の下にクラスタ化され得る。例えば、「旅行」上位ドメインは、旅行に関連する属性ノード及び実施可能な意図ノードのクラスタを含み得る。旅行に関連する実施可能な意図ノードは、「航空券予約」、「ホテル予約」、「カーレンタル」、「道順を知る」、「興味のある場所を探す」などを含み得る。同じ上位ドメイン（例えば、「旅行」上位ドメイン）の下の実施可能な意図ノードは、多くの属性ノードを共有し得る。例えば、「航空券予約」、「ホテル予約」、「カーレンタル」、「道順を知る」、「興味のある場所を探す」についての実施可能な意図ノードは、属性ノードである「出発場所」、「目的地」、「出発日／時間」、「到着日／時間」、及び「参加人数」のうちの１つ以上を共有し得る。
【０１８８】
いくつかの実施例では、オントロジ７６０内の各ノードは、そのノードによって表される属性又は実施可能な意図に関連する単語及び／又はフレーズのセットに関連付けられていることができる。各ノードに関連付けられた単語及び／又はフレーズのそれぞれのセットは、そのノードに関連付けられたいわゆる「語彙」であることができる。各ノードに関連付けられる単語及び／又はフレーズのそれぞれのセットは、ノードによって表される属性又は実施可能な意図に関連して語彙索引７４４内に記憶することができる。例えば、図７Ｂに戻ると、「レストラン」の属性についてのノードに関連付けられる語彙は、「食べ物」、「飲み物」、「料理」、「空腹」、「食べる」、「ピザ」、「ファストフード」、「食事」などの単語を含み得る。別の例として、「通話を開始する（initiate a phone call）」という実施可能な意図のノードに関連付けられる語彙は、「電話する（call）」、「電話（phone）」、「ダイヤルする（dial）」、「電話をかける（ring）」、「この番号に電話する（call this number）」、「〜に電話をかける（make a call to）」などの単語及びフレーズを含み得る。語彙索引７４４は異なる言語の単語及びフレーズを任意選択的に含むことができる。
【０１８９】
自然言語処理モジュール７３２は、ＳＴＴ処理モジュール７３０からトークン列（例えば、テキスト文字列）を受信し、どのノードがトークン列内の単語によって暗示されているのかを判定することができる。いくつかの実施例では、トークン列内の単語又はフレーズが（語彙索引７４４を介して）オントロジ７６０内の１つ以上のノードに関連付けられることが分かれば、その単語又はフレーズはそれらのノードを「トリガする」又は「アクティブにする」ことができる。アクティブにされたノードの量及び／又は相対的重要度に基づき、自然言語処理モジュール７３２は、実施可能な意図のうちの１つを、ユーザがデジタルアシスタントに実行させようと意図したタスクとして選択することができる。いくつかの実施例では、最も多く「トリガされた」ノードを有するドメインを選択することができる。いくつかの実施例では、最も高い信頼値を有するドメイン（例えば、その様々なトリガされたノードの相対的重要度に基づく）を選択することができる。いくつかの実施例では、ドメインは、トリガされたノードの数及び重要度の組み合わせに基づき選択することができる。いくつかの実施例では、ノードを選択する際には、デジタルアシスタントがユーザからの同様の要求を以前に正確に解釈したかどうか等の追加の因子も考慮される。
【０１９０】
ユーザデータ７４８は、ユーザ固有語彙、ユーザプリファレンス、ユーザアドレス、ユーザの既定言語及び第二言語、ユーザの連絡先リスト、並びに各ユーザに関するその他の短期的若しくは長期的情報等の、ユーザ固有の情報を含むことができる。いくつかの実施例では、自然言語処理モジュール７３２は、ユーザ入力内に包含されている情報を補完してユーザ意図を更に明確にするために、ユーザ固有の情報を用いることができる。例えば、ユーザ要求「私の誕生日パーティーに私の友人を招待してほしい」に対して、自然言語処理モジュール７３２は、誰が「友人」であり、いつ及びどこで「誕生日パーティー」が催されるのであろうかを判定するために、こうした情報をユーザの要求内で明示的に提供するようにユーザに要請する代わりに、ユーザデータ７４８にアクセスすることができる。
【０１９１】
トークン文字列に基づくオントロジ検索のその他の詳細が、２００８年１２月２２日出願の「Ｍｅｔｈｏｄ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｓｅａｒｃｈｉｎｇ  Ｕｓｉｎｇ  ａｎ  Ａｃｔｉｖｅ  Ｏｎｔｏｌｏｇｙ」に対する米国実用特許出願第１２／３４１，７４３号に記載されている。同出願の開示全体は本明細書において参照により組み込まれている。
【０１９２】
いくつかの実施例では、自然言語処理モジュール７３２が、ユーザ要求に基づき、実施可能な意図（又はドメイン）を特定すると、自然言語処理モジュール７３２は、特定された実施可能な意図を表すように、構造化されたクエリを生成することができる。いくつかの実施例では、構造化されたクエリは、実施可能な意図のためのドメイン内の１つ以上のノードのためのパラメータを含むことができ、パラメータの少なくとも一部には、ユーザ要求内で指定された特定の情報及び要求事項が入力される。例えば、ユーザは「私のために７時に寿司屋で夕食の予約を取って下さい」と言う場合がある。この場合には、自然言語処理モジュール７３２は、ユーザ入力に基づき、実施可能な意図を「レストラン予約」であると正確に特定することができ得る。オントロジによれば、「レストラン予約」ドメインのための構造化されたクエリは、｛料理｝、｛時間｝、｛日付｝、｛参加人数｝、及び同様のもの等のパラメータを含み得る。いくつかの実施例では、音声入力、及びＳＴＴ処理モジュール７３０を用いて音声入力から導き出されたテキストに基づいて、自然言語処理モジュール７３２は、レストラン予約ドメインのための部分的な構造化されたクエリを生成することができる。この場合、部分的な構造化されたクエリはパラメータ｛料理＝「寿司」｝及びパラメータ｛時間＝「午後７時」｝を含む。しかし、本例では、ユーザの発言は、ドメインに関連付けられる構造化されたクエリを完成するために十分な情報を包含していない。したがって、｛参加人数｝及び｛日付｝等のその他の必要パラメータは、現在利用可能な情報に基づいては、構造化されたクエリ内に指定されなくともよい。いくつかの実施例では、自然言語処理モジュール７３２は、構造化されたクエリのいくつかのパラメータに、受信したコンテキスト情報を入力することができる。例えば、いくつかの実施例では、ユーザが「私の近くの」寿司レストランを要求した場合には、自然言語処理モジュール７３２は、構造化されたクエリ内の｛ロケーション｝パラメータにユーザデバイス１０４からのＧＰＳ座標を入力する。
【０１９３】
いくつかの実施例では、自然言語処理モジュール７３２は、生成された構造化されたクエリ（任意の完成したパラメータを含む）をタスクフロー処理モジュール７３６（「タスクフロープロセッサ」）に渡すことができる。タスクフロー処理モジュール７３６は、自然言語処理モジュール７３２から、構造化されたクエリを受信し、必要に応じて、構造化されたクエリを完成させ、ユーザの最終的な要求を「完了する」ために必要とされるアクションを実行するよう構成することができる。いくつかの実施例では、これらのタスクを完成させるために必要な様々な手順はタスクフローモデル７５４内で提供することができる。いくつかの実施例では、タスクフローモデル７５４は、ユーザから追加情報を取得するための手順、及び実施可能な意図に関連付けられるアクションを実行するためのタスクフローを含むことができる。
【０１９４】
上述したように、構造化されたクエリを完成させるために、タスクフロー処理モジュール７３６は、追加情報を取得し、及び／又は潜在的に曖昧な発言の曖昧さを除去するために、ユーザとの追加のダイアログを開始することが必要になる場合がある。このような対話が必要となる場合には、タスクフロー処理モジュール７３６は、ユーザとのダイアログに携わるためにダイアログフロー処理モジュール７３４を呼び出すことができる。いくつかの実施例では、ダイアログフロー処理モジュール７３４は、どのように（及び／又はいつ）ユーザに追加情報を求めるべきかを決定することができ、ユーザ応答を受信し、これらを処理する。Ｉ／Ｏ処理モジュール７２８を通してユーザに質問を提供することができ、ユーザから回答を受信することができる。いくつかの実施例では、ダイアログフロー処理モジュール７３４は音声及び／又は視覚出力を介してユーザにダイアログ出力を提示することができ、口頭の応答又は物理的な（例えば、クリック）応答を介してユーザから入力を受信する。上述の例を続けると、タスクフロー処理モジュール７３６が、ドメイン「レストラン予約」に関連付けられる構造化されたクエリについての「参加人数」及び「日付」情報を決定するためにダイアログフロー処理モジュール７３４を呼び出すと、ダイアログフロー処理モジュール７３４は、「何人分ですか？」及び「どの日にしますか？」等の質問を、ユーザに渡すために生成し得る。ユーザから返答が受信されると、次に、ダイアログフロー処理モジュール７３４は、構造化されたクエリに、欠けている情報を入力するか、又は構造化されたクエリから欠けている情報を完成させるために、その情報をタスクフロー処理モジュール７３６に渡すことができる。
【０１９５】
タスクフロー処理モジュール７３６が、実施可能な意図のための構造化されたクエリを完成すると、タスクフロー処理モジュール７３６は、実施可能な意図に関連付けられる最終的なタスクの実行に進むことができる。それに応じて、タスクフロー処理モジュール７３６は、構造化されたクエリ内に包含されている具体的なパラメータに応じて、タスクフローモデル内のステップ及び命令を実行し得る。例えば、「レストラン予約」の実施可能な意図のためのタスクフローモデルは、レストランと連絡を取り、特定の時間に特定の参加人数のための予約を実際に希望するためのステップ及び命令を含み得る。例えば、レストラン予約について、レストラン＝ＡＢＣ  Ｃａｆｅ、日付＝３／１２／２０１２、時間＝午後７時、参加人数＝５、等の構造化されたクエリを用いて、タスクフロー処理モジュール７３６は、（１）ＡＢＣ  Ｃａｆｅのサーバ、又はＯＰＥＮＴＡＢＬＥ（登録商標）等のレストラン予約システムにログオンするステップと、（２）ウェブサイト上のフォーム内に日付、時間、及び参加人数情報を入力するステップと、（３）フォームを送信するステップと、及び（４）ユーザのカレンダ内に予約のためのカレンダ項目を記入するステップと、を実行し得る。
【０１９６】
いくつかの実施例では、タスクフロー処理モジュール７３６は、ユーザ入力内で要求されたタスクを完了するため、又はユーザ入力内で要求された情報の回答を提供するために、サービス処理モジュール７３８（「サービス処理モジュール」）の補助を用いることができる。例えば、サービス処理モジュール７３８は、電話をかけるため、カレンダ項目を設定するため、地図検索を呼び出すため、ユーザデバイス上にインストールされているその他のユーザアプリケーションを呼び出すか若しくはそれと対話するため、並びにサードパーティサービス（例えばレストラン予約ポータル、ソーシャルネットワーキングウェブサイト、バンキングポータル等）を呼び出すか若しくはそれと対話するために、タスクフロー処理モジュール７３６の代わりに動作することができる。いくつかの実施例では、各サービスによって必要とされるプロトコル及びアプリケーションプログラミングインタフェース（application programming interface、ＡＰＩ）は、サービスモデル７５６の中のそれぞれのサービスモデルによって指定され得る。サービス処理モジュール７３８は、サービスのための適当なサービスモデルにアクセスし、サービスモデルに係るサービスによって必要とされるプロトコル及びＡＰＩに従ってサービスの要求を生成することができる。
【０１９７】
例えば、レストランがオンライン予約サービスを可能にしている場合には、レストランは、予約を行うために必要なパラメータ、及び必要なパラメータの値をオンライン予約サービスへ伝達するためのＡＰＩを指定するサービスモデルを提出することができる。タスクフロー処理モジュール７３６によって要求されると、サービス処理モジュール７３８は、サービスモデルに記憶されているウェブアドレスを用いて、オンライン予約サービスとのネットワーク接続を確立し、必要な予約のパラメータ（例えば、時間、日付、参加人数）を、オンライン予約サービスのＡＰＩに従う形式でオンライン予約インタフェースへ送信することができる。
【０１９８】
いくつかの実施例では、ユーザの意図を推測して明確にし、ユーザ意図を更に明らかにして絞り込むための情報を取得し、ユーザの意図を達成するべく応答（例えば、ユーザへの出力又はタスクの完了）を最終的に生成するために、自然言語処理モジュール７３２、ダイアログフロー処理モジュール７３４、及びタスクフロー処理モジュール７３６を集合的かつ反復的に用いることができる。生成された応答は、ユーザの意図を少なくとも部分的に達成する音声入力に対するダイアログ応答であることができる。更に、いくつかの実施例では、生成された応答を音声出力として出力することができる。これらの実施例では、生成された応答を音声合成モジュール７４０（例えば、音声合成器）へ送信することができ、そこで、それを、音声形式のダイアログ応答を合成するために処理することができる。更に他の実施例では、生成された応答は、音声入力内のユーザ要求を満足することに関連するデータコンテンツであることができる。
【０１９９】
音声合成モジュール７４０は、ユーザへの提示のための音声出力を合成するよう構成することができる。音声合成モジュール７４０は、デジタルアシスタントによって提供されたテキストに基づいて音声出力を合成する。例えば、生成されたダイアログ応答はテキスト文字列の形式のものであることができる。音声合成モジュール７４０はテキスト文字列を可聴音声出力に変換することができる。音声合成モジュール７４０は、テキストから音声出力を生成するために、限定するものではないが、波形接続合成、単位選択合成、ダイフォン（diphone）合成、分野限定合成、フォルマント合成、調音合成、隠れマルコフモデル（hidden Markov model、ＨＭＭ）ベースの合成、及び正弦波合成を含む、任意の適当な音声合成技法を用いることができる。いくつかの実施例では、音声合成モジュール７４０は、単語に対応する音素文字列に基づいて個々の単語を合成するよう構成することができる。例えば、音素文字列が、生成されたダイアログ応答内の単語に関連付けられていることができる。音素文字列は、単語に関連付けられたメタデータ内に記憶されていることができる。音声合成モデル７４０ は、単語を音声形式で合成するために、メタデータ内の音素文字列直接処理するよう構成することができる。
【０２００】
いくつかの実施例では、音声合成モジュール７４０を用いる代わりに（又はそれに加えて）、遠隔デバイス（例えば、サーバシステム１０８）上で音声合成を実行することができ、合成された音声をユーザへの出力のためにユーザデバイスへ送信することができる。例えば、これは、デジタルアシスタントのための出力がサーバシステムにおいて生成されるいくつかの実装形態において行われ得る。また、サーバシステムは一般的にユーザデバイスよりも多くの処理能力又は資源を有するため、クライアント側合成を用いて実現可能であろうよりも高品質の音声出力を得ることが可能になり得る。
【０２０１】
２０１１年１月１０日に出願された、「Ｉｎｔｅｌｌｉｇｅｎｔ  Ａｕｔｏｍａｔｅｄ  Ａｓｓｉｓｔａｎｔ」と題する米国実用特許出願第１２／９８７，９８２号、及び２０１１年９月３０日に出願された、「Ｇｅｎｅｒａｔｉｎｇ  ａｎｄ  Ｐｒｏｃｅｓｓｉｎｇ  Ｔａｓｋ  Ｉｔｅｍｓ  Ｔｈａｔ  Ｒｅｐｒｅｓｅｎｔ  Ｔａｓｋｓ  ｔｏ  Ｐｅｒｆｏｒｍ」と題する米国実用特許出願第１３／２５１，０８８号に、デジタルアシスタントに関する更なる詳細を見出すことができる。これらの出願の開示の全体は本明細書において参照により組み込まれている。
４．インテリジェントタスクディスカバリのための例示的な技術
【０２０２】
図８Ａ〜図８Ｅは、いくつかの実施形態に係る、インテリジェントタスクディスカバリのための例示的なユーザインタフェース（「ＵＩ」）を含む例示的な技術を示す。これらの図は、図１０Ａ〜図１０Ｃ及び図１１でのプロセスを含む、以下に説明するプロセスを例示するためにも使用される。
【０２０３】
図８Ａは、電子デバイス８００を示す。電子デバイス８００は、いくつかの実施形態では、デバイス１０４、デバイス１２２、デバイス２００、デバイス４００、デバイス６００、デバイス１２００、及びデバイス１３００（図１、図２Ａ、図３、図４、図５Ａ、図６Ａ〜図６Ｂ、図１２、及び図１３）の任意のものであってよい。図示の例では、電子デバイス８００は携帯電話である。図示の例が電子デバイス８００を参照して本明細書に説明される一方で、様々な電子デバイス、例えば、ラップトップ、デスクトップ、タブレット、ウェアラブルデバイス、並びに、テレビ及びスピーカを含む家電品が、他の実装にて使用され得ることが理解されよう。
【０２０４】
電子デバイス８００は、ユーザがインテリジェント自動アシスタントと対話するためのユーザインタフェースを提供する。ユーザインタフェースは、グラフィカル及び／又は聴覚的なものであり得る。いくつかの実施例では、電子デバイス８００は、グラフィカルユーザインタフェースを、ディスプレイスクリーン、例えば、タッチ感知ディスプレイスクリーン８０２上に表示する。いくつかの実施例では、電子デバイス８００は、電子デバイスのマイクロフォンを介して、オーディオユーザ入力をサンプルする。図８Ａを参照すると、電子デバイス８００は、ユーザ入力「ＲＥＡＤ  ＭＹ  ＭＥＳＳＡＧＥＳ（メッセージを読む）」を受信する。ユーザ入力は、口頭発言、物理タッチ、アクティブジェスチャ、又はそれらの組み合わせであってよい。これに応じて、電子デバイス８００は、ユーザ入力「ＲＥＡＤ  ＭＹ  ＭＥＳＳＡＧＥＳ（メッセージを読む）」のテキスト表記８０４をディスプレイスクリーン８０２上に表示する。
【０２０５】
ユーザ入力に応じて、電子デバイス８００は、ユーザの意図（例えば、電子デバイスにて受信した最新の、未読の１つ以上のテキストメッセージを読む）を導出し、続いて、電子デバイスにて受信した未読のテキストメッセージを取得する。電子デバイス８００は、テキストメッセージを音声に変換し、テキストメッセージのオーディオレプリゼンテーションを含むオーディオ出力を（例えば、スピーカを介して）提供する。いくつかの実施例では、オーディオ出力は、テキストメッセージに関連付けられた関連情報（例えば、送信者名、タイムスタンプ、等）及び追加入力のためのプロンプトをも含む。図示の例では、電子デバイス８００は、次のオーディオ出力８１２を提供する：「ＴＯＮＹ  ＳＡＩＤ，ＦＬＹＩＮＧ  ＯＶＥＲ  ＴＯ  １  ＩＮＦＩＮＩＴＥ  ＬＯＯＰ  ＣＵＰＥＲＴＩＮＯ，ＧＩＶＥ  ＰＥＰＰＥＲ  Ａ  ＣＡＬＬ  １２３−４５６−７８９０．（トニーさんより、「クパチーノ市ＩＮＦＩＮＩＴＥ  ＬＯＯＰ１番地に移動する。ペッパーに１２３−４５６−７８９０まで電話をかけてほしい。」とのことです。）ＷＯＵＬＤ  ＹＯＵ  ＬＩＫＥ  ＴＯ  ＲＥＰＬＹ？（返信しますか？）」。
【０２０６】
受信したテキストメッセージに基づいて、電子デバイス８００は、１つ以上のタスクを特定する。いくつかの実施例では、電子デバイス８００は、テキストメッセージの任意の部位（例えば、テキスト文字列のある部位）が、複数のデータ型のあるデータ型に関連付けられているか否かを判定する。複数のデータ型は、限定しないものの、次を含む：住所（単数又は複数）（例えば、「１  Ｉｎｆｉｎｉｔｅ  Ｌｏｏｐ，Ｃｕｐｅｒｔｉｎｏ」）、電話番号（単数又は複数）（例えば、「１２３−４５６−７８９０」）、ユニフォームリソースロケータ（「ＵＲＬ」）（例えば、「ｈｔｔｐ：／／ｗｗｗ．ａｐｐｌｅ．ｃｏｍ／」）、日付（単数又は複数）（例えば、「明日」、「２０００年６月１日」）、対象とする人（単数又は複数）（「Ｔｏｎｙ  Ｓｔａｒｋ（トニースターク）」）、対象とする場所（単数又は複数）、荷物追跡番号（単数又は複数）、フライト番号（単数又は複数）等。任意の対象とする情報は、１つ以上のデータ型、例えば、単語認識、パターン、及び／又は情報のメタデータに基づくものとして定義され得ることが理解されよう。
【０２０７】
いくつかの実施例では、１つ以上の検出器は、コンテンツ（例えば、テキストメッセージ、電子メール、等）を分析して、１つ以上の所定のデータ型を、電子デバイス８００にてそれぞれ検出するよう実装されている。検出器は、コンテンツ内の所定のデータ型（単数又は複数）のデータを認識できる１つ以上のソフトウェアプログラムを含む。いくつかの実施例では、検出器は、次のものを特定するようプログラムされている：テキスト（例えば、文字）、数値（例えば、整数）、特定のフォーマットに配列されたテキスト及び／又は数値（例えば、ｘｘ／ｘｘ／ｘｘｘｘ、（ｘｘｘ）ｘｘｘ−ｘｘｘｘ）、所定のキーワード（「ｈｔｔｐ：／／」、「Ａｐｔ．」）、対象とする情報（例えば、ユーザのアドレス帳内の名前）、又はそれらの組み合わせ。いくつかの実施例では、検出器は、単一のデータ型を検出するよう実装されている。例えば、電話番号検出器は電話番号を検出するよう実装され得、ＵＲＬ検出器はＵＲＬを検出するよう実装され得、住所検出器は住所を検出するよう実装され得る、等々。いくつかの実施例では、電子デバイス８００上の検出器のそれぞれは、コンテンツを分析して、それぞれのデータ型のデータの存在を検出するよう実行される。
【０２０８】
電子デバイス８００は、各データ型を、いくつかの実施例では１つ以上のパラメータを有する少なくとも１つのタスクと関連付ける。例えば、「住所」データ型は、住所のパラメータを有するナビゲーションのタスクに関連付けられているか、又は、連絡先エントリを更新するタスクに関連付けられているか、若しくはその双方であってよい。別の実施例として、「ＵＲＬ」データ型は、ウェブサイトリンクのパラメータを有する、ブラウザで開く第１のタスク、リンクされたアドレスのブックマークを作成する第２のタスク、及び、ウェブサイトリンクのパラメータを目録に追加する第３のタスクに関連付けられている。別の実施例として、「フライト番号」データ型は、リマインダを、日付及び時間のパラメータと共に設定するタスクに関連付けられている。
【０２０９】
いくつかの実施例では、異なる種類の電子デバイスは、異なるタスクのセットに同じデータ型を関連付ける。例えば、電子デバイス８００等の携帯電話では、「ＵＲＬ」データ型は、ブラウザにてＵＲＬを開くタスク、及び、ＵＲＬを目録に追加するタスク、の２つのタスクに関連付けられている。一方、ナビゲーションデバイスでは、「ＵＲＬ」データ型は、ＵＲＬを目録に追加するタスクのみに関連付けられている。ブラウザにてＵＲＬを開くタスクは、例えば、ナビゲーションデバイスを使用する場合（例えば、運転中）には好ましくないことがある。
【０２１０】
いくつかの実施例では、電子デバイス８００は、データ型を、１つ以上のタスクに、コンテキスト情報に基づいて関連付ける。例えば、電子デバイスの（例えば、デバイスのＧＰＳ座標により時間と共に測定される）移動速度に基づいて、又は、電子デバイスが車両に組み合わされていることに基づいて、電子デバイスは、電子デバイスが移動中の車両内にあるか否かを判定し得る。電子デバイスが移動中の車両内にあることを電子デバイスが判定すると、例えば、「ＵＲＬ」データ型は、ブラウザにて開くタスクに関連付けられず、ＵＲＬを目録に追加するタスクにのみに関連付けられる。
【０２１１】
いくつかの実施例では、特定のデータ型のデータを検出後、電子デバイス８００は、対応するパラメータと共に、データ型に関連付けられたタスクのうちの１つ以上を（例えば、ディスプレイスクリーン上に）表示する。図８Ｂを参照すると、多くの検出器が実行され、上記のテキストメッセージのテキスト文字列を分析する。電話検出器は電話番号「１２３−４５６−７８９０」を検出し、住所検出器は住所「１１  ＩＮＦＩＮＩＴＥ  ＬＯＯＰ  ＣＵＰＥＲＴＩＮＯ」を検出する。検出したデータ型に基づいて、電子デバイス８００は、「電話番号」データ型に関連付けられた第１のタスク （すなわち、番号に電話をかける）、及び、「住所」データ型に関連付けられた第２のタスク （すなわち、住所にナビゲートする）を特定する。それに応じて、電子デバイス８００は、第１のタスクを表す選択可能なアフォーダンス８０８（ＧＥＴ  ＤＩＲＥＣＴＩＯＮＳ  ＴＯ  １  ＩＮＦＩＮＩＴＥ  ＬＯＯＰ  ＣＵＰＥＲＴＩＮＯ（クパチーノ市ＩＮＦＩＮＩＴＥ  ＬＯＯＰ１番地への道順を知る））、及び、第２のタスクを表す選択可能なアフォーダンス８１０（ＣＡＬＬ  １２３−４５６−７８９０（１２３−４５６−７８９０に電話をかける））を、ディスプレイスクリーン上に表示する。
【０２１２】
いくつかの実施例では、多数のタスクが表示可能である場合（例えば、検出したデータ型が多数のタスクに関連付けられているため、及び／又は、多数のデータ型が検出されたため）、電子デバイス８００は、いくつかのタスクの表示を、他のタスクの表示よりも、例えば、電子デバイスの種類に基づいて優先する。例えば、ナビゲーションデバイス上に、ナビゲーションのタスクの表示が、電話をかけるタスクの表示よりも優先される。表示の優先は、多くの方法にて実行され得る。例えば、第１のタスクを表すアフォーダンスは、第２のタスクを表すアフォーダンスよりも目立って表示される（例えば、異なるフォント、異なる色、異なる位置）。別の実施例として、第１のタスクを表すアフォーダンスは、第２のタスクを表すアフォーダンスが表示される前に（例えば、一時的に）表示される。別の実施例として、第２のタスクを表すアフォーダンスは全く表示されない。第２のタスクは、たとえ表示されていなくとも、図８Ｃに関連して以下に詳述するように、音声入力によって依然として開始され得る。
【０２１３】
電子デバイス８００上でのタスクの表示は、他の因子、例えば、利用可能な表示領域量及びコンテキスト情報に基づいて異なり得ることが理解されよう。例えば、表示されたアフォーダンス（例えば、ボタン）のサイズ及び数量は、利用可能な表示領域量に基づいて異なり得、これは同様に、電子デバイスの種類（例えば、電話、タブレット、テレビ）及び／又は電子デバイスのオペレーティングシステムに基づいて異なり得る。いくつかの実施例では、視覚的強調（単数又は複数）が、利用可能な表示領域量に基づいて提供され得る。例えば、比較的大きな表示能力を持つ電子デバイス（例えば、テレビ）では、電子デバイスは、（例えば、ナビゲーションのタスクのための）住所を、地図上のピンとして、インテリジェント自動アシスタントＧＵＩの一部として、表示し得る。別の実施例として、ユーザの連絡先の電話番号が検出されると、電子デバイスは、連絡先に関する追加情報を（ユーザの連絡先リスト内のルックアップを介して）取得し、呼び出しのタスクのための情報を、インテリジェント自動アシスタントＧＵＩの一部として、提供し（例えば、表示し）得る。
【０２１４】
図８Ｃを参照すると、電子デバイス８００は、ナビゲーションのタスクを開始するユーザ入力を受信して、タスクを実行させる。図示するように、電子デバイス８００は、テキスト文字列「ＧＥＴＴＩＮＧ  ＤＩＲＥＣＴＩＯＮＳ  ＴＯ  １  ＩＮＦＩＮＩＴＥ  ＬＯＯＰ，ＣＵＰＥＲＴＩＮＯ（クパチーノ市ＩＮＦＩＮＩＴＥ  ＬＯＯＰ１番地への道順を知る）」を表示する。いくつかの実施例では、電子デバイス８００は、１つ以上のソフトウェアサービスプロバイダ（例えば、アプリケーション（単数又は複数）、ＡＰＩ（単数又は複数）、及び／又はナビゲーション用の機能（単数又は複数））を呼び出して、選択されたタスクを実行する。いくつかの実施例では、電子デバイス８００は、タスクを、電子デバイス８００とは異なる第２の電子デバイス上にて実行させる。例えば、ユーザ入力を受信すると、電子デバイス８００は、ナビゲーションデバイスに、例えば、住所をナビゲーションデバイスに送信することで、ナビゲーションを開始させる。
【０２１５】
いくつかの実施例では、ナビゲーションのタスクを開始するユーザ入力は、図８Ｂに示すように、選択可能なアフォーダンス８０８（「ＧＥＴ  ＤＩＲＥＣＴＩＯＮＳ  ＴＯ  １  ＩＮＦＩＮＩＴＥ  ＬＯＯＰ  ＣＵＰＥＲＴＩＮＯ（クパチーノ市ＩＮＦＩＮＩＴＥ  ＬＯＯＰ１番地への道順を知る）」）上の物理タッチである。いくつかの実施例では、電子デバイス８００は、ユーザに、音声入力、例えば、発言「ｄｒｉｖｅ  ｍｅ  ｔｈｅｒｅ（そこに案内してほしい）」、を介して、検出したデータ型に関連付けられた１つ以上のタスクの開始を可能にする。音声入力を受信することに応じて、電子デバイス８００は、音声入力が、検出したデータ型に関連付けられた１つ以上のタスクを示すか否かを判定する。音声入力が、検出したデータ型に関連付けられたタスクを示す場合、電子デバイスは、以下に詳述するように、タスクを実行させる。
【０２１６】
いくつかの実施例では、電子デバイス８００は、タスク（単数又は複数）及びパラメータ（単数又は複数）を、音声入力から、コンテキスト情報に基づいて特定する。いくつかの実施例では、コンテキスト情報は、電子デバイスにて現在表示されているものを含み得る。例えば、ユーザが「ｄｒｉｖｅ  ｍｅ  ｔｈｅｒｅ（そこに案内してほしい）」と発言した際に、図８Ｂのアフォーダンス８０８（「ＧＥＴ  ＤＩＲＥＣＴＩＯＮＳ  ＴＯ  １  ＩＮＦＩＮＩＴＥ  ＬＯＯＰ  ＣＵＰＥＲＴＩＮＯ（クパチーノ市ＩＮＦＩＮＩＴＥ  ＬＯＯＰ１番地への道順を知る）」）が表示されている場合、電子デバイスは、ユーザの意図を導出して、「１  ＩＮＦＩＮＩＴＥ  ＬＯＯＰ  ＣＵＰＥＲＴＩＮＯ」に、少なくとも部分的に、現在表示されているものに基づいて、ナビゲートする。いくつかの実施例では、コンテキスト情報は、電子デバイスにより検出されたデータ型（例えば、住所、電話番号）及び対応するデータ（例えば、「１  ＩＮＦＩＮＩＴＥ  ＬＯＯＰ  ＣＵＰＥＲＴＩＮＯ」、「１２３−４５６−７８９０」）を含み得る。例えば、アフォーダンス８０８が表示されていない際に、ユーザが、オーディオ入力「ｄｒｉｖｅ  ｍｅ  ｔｈｅｒｅ（そこに案内してほしい）」を提供すると、電子デバイスは、依然としてユーザの意図を導出し得、「１  ＩＮＦＩＮＩＴＥ  ＬＯＯＰ  ＣＵＰＥＲＴＩＮＯ」に、コンテキスト情報に基づいてナビゲートする。
【０２１７】
いくつかの実施例では、を実行するタスクを開始する音声入力（例えば、「ｄｒｉｖｅ  ｍｅ  ｔｈｅｒｅ（そこに案内してほしい）」）を受信すると、電子デバイス８００は、音声入力に対応するデータ、並びに、コンテキスト情報の選択的な部位を、１つ以上のサーバに、処理のために送信する。いくつかの実施例では、１つ以上のサーバは、データを、テキストレプリゼンテーション（例えば、テキスト文字列）に変換し、ユーザの意図の少なくとも一部を、テキストレプリゼンテーション及び受信したコンテキスト情報に基づいて導出し、及び／又は、導出したユーザの意図を、タスクに操作可能にする。いくつかの実施例では、ユーザのパーソナルデータは、１つ以上のサーバには送信されない。いくつかの実施例では、テキストメッセージ及び電子メール等のコンテキスト情報、並びに、テキストメッセージ及び電子メールから導出された情報（例えば、検出された種類）はパーソナルデータを構成し、したがって、１つ以上のサーバには送信されない。いくつかの実施例では、ユーザのパーソナルデータを含むコンテキスト情報は、電子デバイスによりローカルで使用されて、音声入力の処理、及び、タスク（単数又は複数）並びにパラメータ（単数又は複数）の特定を補助する。例えば、検出された電話番号「１２３−４５６−７８９０」及び検出された住所「１  ＩＮＦＩＮＩＴＥ  ＬＯＯＰ  ＣＵＰＥＲＴＩＮＯ」がサーバに送信されない一方で、電話番号及び住所が依然としてローカルで使用されて、呼び出しのタスク及びナビゲーションのタスクのためのパラメータが、電子デバイスにて、それぞれ導出される。いくつかの実施例では、タスク（単数又は複数）及びパラメータ（単数又は複数）の、音声入力に基づいての特定は、電子デバイス上にてローカルで実行される。
【０２１８】
電子デバイス８００により検出された特定のデータ型のデータは、電子デバイスにて自動的に記憶され得る。例えば、上記のテキストメッセージの処理後、電子デバイスは、検出された住所「１  ＩＮＦＩＮＩＴＥ  ＬＯＯＰ  ＣＵＰＥＲＴＩＮＯ」及び検出された電話番号「１２３−４５６−７８９０」を、それぞれのデータ型（すなわち、住所及び電話番号）と共に、電子デバイス８００にて記憶する。いくつかの実施例では、テキストメッセージに関連付けられたメタデータが記憶される。例えば、テキストメッセージの送信者（「ＴＯＮＹ  ＳＴＡＲＫ」）及びテキストメッセージのタイムスタンプが、データ及びデータ型に関連付けられて記憶される。いくつかの実施例では、記憶されたデータ、データ型、及びメタデータは、限られた期間（例えば、インテリジェント自動アシスタントの現在のユーザセッション、数分間、デバイスが無効状態になりまで）にのみ存続する短期メモリの一部である。いくつかの実施例では、記憶されたデータ、データ型、及びメタデータは、ユーザに関連付けられている長期メモリの一部である。
【０２１９】
いくつかの実施例では、記憶されたコンテキスト情報は、ユーザ入力の解釈に使用される。図８Ｄを参照すると、ユーザは、入力「ＤＲＩＶＥ  ＭＥ  ＴＯ  ＴＨＥ  ＬＡＳＴ  ＡＤＤＲＥＳＳ  ＴＯＮＹ  ＳＥＮＴ  ＭＥ（トニーさんが送ってくれた最新の住所に案内してほしい）」を提供し（例えば、発言し）、これは、表記され、テキスト文字列８１８として、ディスプレイスクリーン８０２上に表示される。フレーズ「ＴＨＥ  ＬＡＳＴ  ＡＤＤＲＥＳＳ  ＴＯＮＹ  ＳＥＮＴ  ＭＥ（トニーさんが送ってくれた最新の住所）」に基づいて、電子デバイス８００は、「ＴＯＮＹ」及び「住所」を、「１  ＩＮＦＩＮＩＴＥ  ＬＯＯＰ  ＣＵＰＥＲＴＩＮＯ」に関連付ける、記憶されたコンテキスト情報を参照する。それに応じて、電子デバイス８００は、ナビゲーションのタスクに対するパラメータ「１  ＩＮＦＩＮＩＴＥ  ＬＯＯＰ  ＣＵＰＥＲＴＩＮＯ」を導出することができる。図８Ｅを参照すると、電子デバイスは、サービスプロバイダ（例えば、ナビゲーションアプリケーション、機能、及び／又はＡＰＩ）を立ち上げて、ナビゲーションのタスクを、パラメータ「１  ＩＮＦＩＮＩＴＥ  ＬＯＯＰ  ＣＵＰＥＲＴＩＮＯ」を用いて実行する。
【０２２０】
記憶されたコンテキスト情報は、電子デバイス８００上の任意のソフトウェアアプリケーションに向けられたユーザ入力を処理するために使用され得ることが理解されよう。例えば、ユーザが、ソフトウェアアプリケーション（例えば、ナビゲーションアプリケーション）を呼び出し、「ＴＨＥ  ＬＡＳＴ  ＡＤＤＲＥＳＳ  ＴＯＮＹ  ＳＥＮＴ  ＭＥ（トニーさんが送ってくれた最新の住所）」と発言すると、ソフトウェアアプリケーションは、記憶されたコンテキスト情報を参照して、「１  ＩＮＦＩＮＩＴＥ  ＬＯＯＰ  ＣＵＰＥＲＴＩＮＯ」を導出することができる。記憶されたコンテキスト情報は、ユーザ入力を解釈する目的以外に、電子デバイスによって使用され得ることが更に理解されよう。例えば、ユーザが、ナビゲーションアプリケーションを呼び出すと、ナビゲーションアプリケーションは、コンテキスト情報の関連部位、例えば、住所「１  ＩＮＦＩＮＩＴＥ  ＬＯＯＰ  ＣＵＰＥＲＴＩＮＯ」を、提示する目的地として、ユーザの要求なく、提供し（例えば、表示し）得る。
【０２２１】
１つ以上のタスクの認識後、電子デバイスは、認識したタスクを、ユーザに、多数のポイントにて動作時に提示し（例えば、表示し）得る。認識したタスクに対する例示的なエントリポイントが、図９Ａ〜図９Ｃに関連して説明されている。図９Ａは、電子デバイス９００を示す。電子デバイス９００は、いくつかの実施形態では、デバイス１０４、デバイス１２２、デバイス２００、デバイス４００、デバイス６００、デバイス１２００、及びデバイス１３００（図１、図２Ａ、図３、図４、図５Ａ、図６Ａ〜図６Ｂ、図１２、及び図１３）の任意のものであってよい。図示の例では、電子デバイス９００は、ナビゲーション機能を備える電子デバイスである。図示の例が電子デバイス９００を参照して本明細書に説明される一方で、様々な電子デバイス、例えば、ラップトップ、デスクトップ、タブレット、ウェアラブルデバイス（例えば、携帯時計、ヘッドホン）、及び、テレビ並びにスピーカを含む家電品が、他の実施にて使用され得ることが理解されよう。
【０２２２】
いくつかの実施例では、電子デバイス９００は、エントリポイントを、特定のコンテンツ（例えば、テキストメッセージ、電子メール、文書）内にて認識されたタスクのいくつかに、コンテンツをユーザに提示後、及び／又は、コンテンツをユーザに提示している間に、提供する。図９Ａに示すように、電子デバイス９００は、電子デバイス９００にて受信したテキストメッセージに対応する次のオーディオ出力９１８を提供する：「ＴＯＮＹ  ＳＡＩＤ，ＦＬＹＩＮＧ  ＯＶＥＲ  ＴＯ  １  ＩＮＦＩＮＩＴＥ  ＬＯＯＰ  ＣＵＰＥＲＴＩＮＯ，ＧＩＶＥ  ＰＥＰＰＥＲ  Ａ  ＣＡＬＬ  １２３−４５６−７８９０．（トニーさんより、「クパチーノ市ＩＮＦＩＮＩＴＥ  ＬＯＯＰ１番地に移動する。ペッパーに１２３−４５６−７８９０まで電話をかけてほしい。」とのことです。）ＷＡＮＴ  ＴＯ  ＲＥＰＬＹ？（返信しますか？）」。電子デバイス９００は、ディスプレイスクリーン上に、アフォーダンス９１０（「道順」）、アフォーダンス９１２（「読み込み中」）、アフォーダンス９１４（「返信しない」）、及びアフォーダンス９１６（「返信する」）をも表示する。特に、アフォーダンス９１０（「道順」）は、オーディオ入力９１８にて参照されたテキストメッセージに基づいて認識されたナビゲーションのタスクを表す。いくつかの実施例では、アフォーダンス９１０は、電子デバイス９００がオーディオ出力９１８を提供する間、及び／又は電子デバイス９００がオーディオ出力９１８を提供することを終了後に、表示される。アフォーダンス９１０がユーザにより（例えば、物理タッチ入力を介して、音声入力「道順」を介して）選択されると、「１  ＩＮＦＩＮＩＴＥ  ＬＯＯＰ  ＣＵＰＥＲＴＩＮＯ」へのナビゲーションのタスクが開始される（図示せず）。
【０２２３】
図示の例では、電子デバイス９００がオーディオ出力９１８を提供することを終了後、電子デバイス９００は、入力「Ｙｅｓ，Ｈｅｌｌｏ（はい、もしもし）」を、ユーザから受信する。図９Ｂに示すように、電子デバイス９００は、オーディオ出力９２６（「ＹＯＵＲ  ＲＥＰＬＹ  ＴＯ  ＴＯＮＹ  ＳＡＹＳ，ＨＥＬＬＯ．（トニーさんに「もしもし」と返信します。）ＲＥＡＤＹ  ＴＯ  ＳＥＮＤ  ＩＴ？（送信してもよろしいですか？）」）を提供する。電子デバイス９００は、アフォーダンス９２０（「読み込み中」）、アフォーダンス９２２（「変更する」）、アフォーダンス９２４（「送信する」）をも、オーディオ出力９２６を提供している間に、表示する。ユーザがアフォーダンス９２４（「送信する」）を選択すると、電子デバイス９００は、いくつかの実施例では、あるサービス、例えば、テキストメッセージアプリケーション、を使用して、ユーザの返信を送信する。
【０２２４】
電子デバイスは、ユーザに、例えば、異なるサービスプロバイダを（例えば、異なるドメインからの）指定することで、返信メッセージの構成後の変更を許可する。例えば、（プロンプト「ＷＡＮＴ  ＴＯ  ＲＥＰＬＹ？（返信しますか？）」に応じて）ユーザ入力「ＹＥＳ，ＨＥＬＬＯ（はい、もしもし）」を受信すると、電子デバイス８００は、返信を送信するためのデフォルトのサービスプロバイダを特定し得る。いくつかの実施例では、サービスプロバイダは、オリジナルコンテンツ（例えば、オリジナルテキストメッセージ）に基づいて特定される。つまり、返信がテキストメッセージに応じている場合、電子デバイスは、テキストメッセージアプリケーションをデフォルトのサービスプロバイダとして特定する。しかし、ユーザが、続いての入力、例えば、「ＳＥＮＤ  ＡＳ  ＡＮ  ＥＭＡＩＬ（電子メールとして送信する）」又は「ＣＲＥＡＴＥ  Ａ  ＲＥＭＩＮＤＥＲ（リマインダを作成する）」、を提供すると、電子デバイスは、第２のサービスプロバイダを、ユーザ入力に基づいて特定し、構成されたメッセージ（例えば、「ＨＥＬＬＯ（はい）」）、並びに、関連コンテキスト情報（「ＴＯＮＹ  ＳＴＡＲＫ」）を、第２のサービスプロバイダ（例えば、電子メールアプリケーション又はリマインダＡＰＩ）に提供し得る。
【０２２５】
いくつかの実施例では、電子デバイス９００は、追加エントリポイントを、認識したタスクのいくつかに、インテリジェント自動アシスタントを使用してのユーザセッションを通して提供する。図９Ｃに示すように、電子デバイス９００は、いくつかの実施例では、ユーザ入力（図示せず）に応じて、オーディオ出力９３０（「Ｉ‘ＬＬ  ＳＥＮＤ  ＩＴ（送信する）」）を提供し、テキストメッセージを送信する。電子デバイス９００は、ナビゲーションのタスクを表し、以前に表示されたアフォーダンス９１０（図９Ａ）と同じ機能である、アフォーダンス９２８（「道順」）をも表示する。アフォーダンス９２８がユーザにより（例えば、物理タッチ入力を介して、音声入力「道順」を介して）選択されると、「１  ＩＮＦＩＮＩＴＥ  ＬＯＯＰ  ＣＵＰＥＲＴＩＮＯ」へのナビゲーションのタスクが開始される（図示せず）。いくつかの実施例では、認識されたナビゲーションのタスクを表すアフォーダンスが表示されなくとも、ユーザは、上記のように、音声入力を介してタスクを開始し得る。
【０２２６】
特に、電子デバイス８００（図８Ａ〜図８Ｅ）及び電子デバイス９００（図９Ａ〜図９Ｃ）のそれぞれは、同じテキスト文字列（「ＦＬＹＩＮＧ  ＯＶＥＲ  ＴＯ  １  ＩＮＦＩＮＩＴＥ  ＬＯＯＰ  ＣＵＰＥＲＴＩＮＯ，ＧＩＶＥ  ＰＥＰＰＥＲ  Ａ  ＣＡＬＬ  １２３−４５６−７８９０（クパチーノ市ＩＮＦＩＮＩＴＥ  ＬＯＯＰ１番地に移動する。ペッパーに１２３−４５６−７８９０まで電話をかけてほしい。）」）を含むテキストメッセージを受信するものの、デバイス８００及びデバイス９００のそれぞれは、認識したタスクに対応する、異なるビジュアル出力（例えば、図９Ａでのアフォーダンス９１０に比較しての、図８Ｂでのアフォーダンス８０８及びアフォーダンス８１０）を提供する。いくつかの実施例では、上記のように、２つの電子デバイス８００及び電子デバイス９００は、それらの異なるデバイス種類（例えば、携帯電話とナビゲーションデバイス）、及び、コンテキスト情報（例えば、デバイスが、移動中の車両内にあるか否か）の結果として、異なる数量及び種類のタスクを特定する。いくつかの実施例では、上記のように、２つの電子デバイスは、利用可能な表示領域量の結果として、異なる数量及び種類のタスクを表示する。
【０２２７】
図８Ａ〜図８Ｅ及び図９Ａ〜図９Ｃに図示の例が、テキストメッセージを参照して本明細書に説明される一方で、様々なコンテンツ、例えば、電子メール、オーディオメッセージ、ビデオ、画像、等、が分析されて、特定のデータ型（及び、関連付けられたタスク）が検出され得ることが理解されよう。
【０２２８】
データ型の検出及び関連付けられたタスクの特定は、ユーザの要求の有無に関わらずトリガされ得ることが更に理解されよう。例えば、電子デバイス８００は、テキストメッセージを受信すると、インテリジェントタスクディスカバリを、ユーザの要求（例えば、「ＲＥＡＤ  ＭＹ  ＭＥＳＳＡＧＥＳ（メッセージを読む）」）なく、開始し得る。電子デバイス８００が、１つ以上の特定のデータ型を検出すると、電子デバイスは自動的に、検出したデータ型に関連付けられたタスクのいくつかを出力し（例えば、表示し、又は、口頭出力を提供し）得る。特定されたタスクの表示及び選択は、上記に類似する様式にて実装され得る。
５．インテリジェントタスクディスカバリのための例示的なプロセス
【０２２９】
図１０Ａ〜図１０Ｃは、様々な実施例に係る、デジタルアシスタントを操作するためのプロセス１０００を示す。プロセス１０００は、例えば、デジタルアシスタントを実装する、１つ以上の電子デバイス（例えば、デバイス１０４、デバイス１０６、デバイス２００、デバイス４００、デバイス６００、デバイス１２００、又はデバイス１３００）を使用して実行される。いくつかの実施例では、プロセスは、デジタルアシスタントを実装するクライアントサーバシステム（例えば、システム１００）にて実行される。プロセスのブロックは、サーバ（例えば、ＤＡサーバ１０６）とクライアント（例えば、ユーザデバイス１０４）との間にて任意の様式に分割され得る。プロセス１０００では、いくつかのブロックは任意選択的に組み合わされ、いくつかのブロックの順序は任意選択的に変更され、いくつかのブロックは任意選択的に省略される。いくつかの実施例では、図１０Ａ〜図１０Ｃを参照して以下に説明する特徴又はブロックのサブセットのみが実行される。
【０２３０】
後述するように、方法１０００は、電子デバイス上での、コンテンツ、例えば、テキストメッセージ及び電子メール内のタスクディスカバリのための効率的な方法を提供する。この方法は、手動でタスク又はサービス（単数又は複数）を指定して呼び出し、手動でコンテンツの各部位を再生してタスク（単数又は複数）を実行するための、ユーザ側の認識的負担を減らし、したがって、より効率的なヒューマンマシンインタフェースを作り出す。バッテリ動作式のコンピューティングデバイスの場合には、ユーザがタスクの完了をより効率的に達成することを可能にすることにより、電力が節約され、バッテリ充電の間隔が増す。
【０２３１】
ブロック１００２にて、電子デバイスは、通信を受信する。いくつかの実施例では、通信は、限定しないものの、テキストメッセージ、電子メール、文書、オーディオクリップ、画像、又はそれらの組み合わせを含む、任意のコンテンツであり得る。いくつかの実施例では、通信は、（例えば、文字認識技術又は音声テキスト化技術を使用して導出された）テキスト文字列を含む。任意選択的に、ブロック１００３にて、電子デバイスは、自動アシスタントを用いて、通信のテキスト文字列に対応する音声出力を提供する（例えば、「ＦＬＹＩＮＧ  ＯＶＥＲ  ＴＯ  １  ＩＮＦＩＮＩＴＥ  ＬＯＯＰ  ＣＵＰＥＲＴＩＮＯ（クパチーノ市ＩＮＦＩＮＩＴＥ  ＬＯＯＰ１番地に移動する）」）。いくつかの実施例では、通信のテキスト文字列に対応する音声出力は、ユーザの要求に応じて提供される（例えば、「ＲＥＡＤ  ＭＹ  ＭＥＳＳＡＧＥＳ（メッセージを読む）」）。いくつかの実施例では、通信のテキスト文字列に対応する音声出力を提供することは、ブロック１０５０にて、通信のテキスト文字列を音声に変換することを含む。
【０２３２】
ブロック１００６にて、電子デバイスは、テキスト文字列のある部位が、複数のデータ型のあるデータ型に関連付けられているか否かを判定する。そのデータ型は、関連付けられた少なくとも１つのタスクを有する。任意選択的に、ブロック１００８にて、電子デバイスは、テキスト文字列のその部位にて、検出器を用いて、データ型のデータの存在を検出する。検出器は、複数のデータ型のそのデータ型に対応する。任意選択的に、ブロック１０１０にて、電子デバイスは、少なくとも１つのタスクを、複数のタスクから、電子デバイスの種類に基づいて特定する。
【０２３３】
いくつかの実施例では、複数のデータ型のそのデータ型は、住所、電話番号、ユニフォームリソースロケータ（「ＵＲＬ」）、日付、対象とする人、対象とする場所、荷物追跡番号、又はフライト番号、の少なくとも１つを含む。
【０２３４】
任意選択的に、ブロック１０１２にて、電子デバイスは、電子デバイスのディスプレイを用いて、タスクに対応するアフォーダンスを表示する。任意選択的に、ブロック１０１６にて、電子デバイスは、第１のタスクのアフォーダンスの表示を、第２のタスクのアフォーダンスの表示よりも、電子デバイスの種類に基づいて優先する。任意選択的に、ブロック１０１７にて、電子デバイスは、第２のタスクのアフォーダンスの表示を見送ることで、第１のタスクのアフォーダンスの表示を優先する。第２のタスクのアフォーダンスが表示されないいくつかの実施例では、電子デバイスが、第２のタスクを示すユーザ入力（例えば、音声）を受信すると、電子デバイスは、第２のタスクを実行させる。
【０２３５】
ブロック１０１４にて、電子デバイスは、テキスト文字列のその部位が、複数のデータ型のそのデータ型に関連付けられていないという判定に従って、そのタスクを、テキスト文字列のその部位に基づいて、実行させることを見送る。
【０２３６】
ブロック１０１８にて、電子デバイスは、テキスト文字列のその部位が、複数のデータ型のそのデータ型に関連付けられているという判定に従って、そのデータ型に関連付けられた少なくとも１つのタスクのあるタスクを示すユーザ入力を受信する。任意選択的に、ブロック１０２０にて、ユーザ入力は、表示されたアフォーダンスの選択を含む。
【０２３７】
任意選択的に、ブロック１０２２にて、タスクを示すユーザ入力は音声入力である。いくつかの実施例では、音声入力は、テキストのその部位を含まない。ブロック１０２５にて、ユーザの意図は、音声入力から、コンテキスト情報に基づいて導出される。コンテキスト情報は、テキストのその部位を含む。
【０２３８】
いくつかの実施例では、ブロック１０２３にて、電子デバイスは、音声入力に対応するデータを、この電子デバイスとは異なる第２の電子デバイスに送信する。音声入力に対応するデータは、通信のテキスト文字列を含まない。ブロック１０２４にて、電子デバイスは、第２の電子デバイスから、そのタスクに対応するユーザの意図を受信する。
【０２３９】
そのタスクを示すユーザ入力に応じて、ブロック１０１８にて、電子デバイスは、そのタスクを、テキスト文字列のその部位に基づいて実行させる。いくつかの実施例では、タスクは、電子デバイスとは異なる第２の電子デバイスにて実行される。
【０２４０】
いくつかの実施例では、通信のテキスト文字列に対応する音声出力は第１の音声出力であり、タスクを示す音声入力は第１の音声入力である。ブロック１００４にて、電子デバイスは、ブロック１００３にて第１の音声出力を提供した後に、通信への返信のプロンプトを示す第２の音声出力を提供する（例えば、「ＷＡＮＴ  ＴＯ  ＲＥＰＬＹ？（返信しますか？）」）。ブロック１００５ にて、電子デバイスは、ブロック１００４にて第２の音声出力を提供した後に、第２の音声入力をユーザから受信する（例えば、「ＹＥＳ，ＨＥＬＬＯ（はい、もしもし）」）。いくつかの実施例では、第１の音声入力が（例えば、「ＤＲＩＶＥ  ＭＥ  ＴＨＥＲＥ（そこに案内してほしい）」）が受信される前に、第２の音声入力が受信される。
【０２４１】
いくつかの実施例では、ブロック１０５４にて、電子デバイスは、第１のサービスプロバイダ（例えば、テキストメッセージソフトウェアアプリケーション）を、通信に基づいて特定する。第１のサービスプロバイダは、複数のドメインの第１のドメインに関連付けられている。ブロック１０５６にて、第２の音声入力（「ＹＥＳ，ＨＥＬＬＯ（はい、もしもし）」）を受信した後に、電子デバイスは、複数のドメインの第２のドメインを示す第３の音声入力（例えば、「ＳＥＮＤ  ＡＳ  ＡＮ  ＥＭＡＩＬ（電子メールとして送信する）」）を受信する。第２のドメインは、第１のドメインとは異なる。これに応じて、ブロック１０５８にて、電子デバイスは、第２のサービスプロバイダ（例えば、電子メールソフトウェアアプリケーション）を、第３の音声入力に基づいて特定し、ブロック１０６０にて、第２の音声入力に関連付けられたデータを、第２のサービスプロバイダに提供する。
【０２４２】
いくつかの実施例では、１つを超えるデータ型が、テキスト文字列内にて検出される。いくつかの実施例では、テキスト文字列のその部位はテキスト文字列の第１の部位であり、データ型は第１のデータ型であり、タスクは第１のタスクである。ブロック１０７０にて、電子デバイスは、テキスト文字列の第２の部位が、複数のデータ型の第２のデータ型に関連付けられているか否かを判定する。ブロック１０７２にて、テキスト文字列の第２の部位が、複数のデータ型の第２のデータ型に関連付けられているという判定に従って、電子デバイスは、第２のタスクを、第２のデータ型に基づいて特定する。ブロック１０７４にて、テキスト文字列の第２の部位が、複数のデータ型の第２のデータ型に関連付けられていないという判定に従って、電子デバイスは、第２のタスクを、第２のデータ型に基づいて、特定することを見送る。
【０２４３】
任意選択的に、ブロック１０３０にて、電子デバイスは、通信に関連付けられた情報を電子デバイス上に記憶する。いくつかの実施例では、通信に関連付けられた、記憶された情報は、テキスト文字列のその部位を含む。いくつかの実施例では、通信に関連付けられた、記憶された情報は、データ型を含む。いくつかの実施例では、通信に関連付けられた、記憶された情報は、通信に関連付けられたメタデータを含む。任意選択的に、ブロック１０３２にて、電子デバイスは、入力を受信する。任意選択的に、ブロック１０３４にて、電子デバイスは、タスクを、入力に基づいて特定する。任意選択的に、ブロック１０３６にて、電子デバイスは、タスクを、記憶された情報の少なくとも一部に基づいて実行する。
【０２４４】
任意選択的に、ブロック１０４０にて、電子デバイスは、通信に関連付けられた情報を電子デバイス上に記憶する。いくつかの実施例では、ブロック１０４０は機能的に、ブロック１０３０と同様及び／又は同一である。任意選択的に、ブロック１０４２にて、電子デバイスは、ソフトウェアアプリケーションを呼び出し、ブロック１０４４にて、タスクを、記憶された情報の少なくとも一部に基づいて実行する。
【０２４５】
図１１は、様々な実施例に係る、デジタルアシスタントを操作するためのプロセス１１００を示す。プロセス１１００は、例えば、デジタルアシスタントを実装する、１つ以上の電子デバイス（例えば、デバイス１０４、デバイス１０６、デバイス２００、デバイス４００、デバイス６００、デバイス１２００、又はデバイス１３００）を使用して実行される。いくつかの実施例では、プロセスは、デジタルアシスタントを実装するクライアントサーバシステム（例えば、システム１００）にて実行される。プロセスのブロックは、サーバ（例えば、ＤＡサーバ１０６）とクライアント（例えば、ユーザデバイス１０４）との間にて任意の様式に分割され得る。プロセス１１００では、いくつかのブロックは任意選択的に組み合わされ、いくつかのブロックの順序は任意選択的に変更され、いくつかのブロックは任意選択的に省略される。いくつかの実施例では、図１１を参照して以下に説明する特徴又はブロックのサブセットのみが実行される。
【０２４６】
後述するように、方法１１００は、電子デバイス上での、コンテンツ、例えば、テキストメッセージ及び電子メール内のタスクディスカバリのための効率的な方法を提供する。この方法は、手動でタスク又はサービス（単数又は複数）を指定して呼び出し、手動でコンテンツの各部位を再生してタスク（単数又は複数）を実行するための、ユーザ側の認識的負担を減らし、したがって、より効率的なヒューマンマシンインタフェースを作り出す。バッテリ動作式のコンピューティングデバイスの場合には、ユーザがタスクの完了をより効率的に達成することを可能にすることにより、電力が節約され、バッテリ充電の間隔が増す。
【０２４７】
ブロック１１０２にて、電子デバイスは、テキスト文字列を含む通信を受信する。ブロック１１０４にて、電子デバイスは、テキスト文字列のある部位が、複数のデータ型のあるデータ型に関連付けられているか否かを判定する。いくつかの実施例では、複数のデータ型のそのデータ型は、住所、電話番号、ユニフォームリソースロケータ（「ＵＲＬ」）、日付、対象とする人、対象とする場所、荷物追跡番号、又はフライト番号、の少なくとも１つを含む。
【０２４８】
テキスト文字列のその部位が、複数のデータ型のそのデータ型に関連付けられているという判定に従って、電子デバイスは、１つ以上のパラメータを有するタスクを、そのデータ型に基づいて、１１０８にて導出し、導出されたタスクを、１１１０にて出力する。１つ以上のパラメータのあるパラメータは、テキスト文字列のその部位を含む。
【０２４９】
任意選択的に、ブロック１１１２にて、電子デバイスは、電子デバイスのディスプレイを用いて、導出されたタスクに対応するアフォーダンスを表示し、ユーザ入力は、アフォーダンスの選択を含む。任意選択的に、１１１４にて、電子デバイスは、オーディオ出力を出力する。
【０２５０】
任意選択的に、ブロック１１１６にて、電子デバイスは、導出されたタスクの選択を示すユーザ入力を受信する。任意選択的に、ブロック１１１８にて、導出されたタスクの選択を示すユーザ入力に応じて、電子デバイスは、そのタスクを、テキスト文字列のその部位に基づいて実行させる。
【０２５１】
ブロック１１０６にて、テキスト文字列のその部位が、複数のデータ型のそのデータ型に関連付けられていないという判定に従って、電子デバイスは、１つ以上のパラメータを有するタスクを、そのデータ型に基づいて、導出することを見送る。
【０２５２】
いくつかの実施形態によれば、図１２は、図８Ａ〜図８Ｅ、図９Ａ〜図９Ｃ、及び図１０Ａ〜図１０Ｃを参照して説明されたそれらを含む、説明された様々な実施形態の原理に従って構成された電子デバイス１２００の機能ブロック図を示す。デバイスの機能ブロックは、任意選択的に、ハードウェア、ソフトウェア、又は、ハードウェア及びソフトウェアの組み合わせにより実装され、説明された様々な実施形態の原理を行う。図１２で説明される機能ブロックが、説明される様々な実施形態の原理を実施するように、任意選択的に、組み合わされ、又はサブブロックに分離されることが当業者には理解される。したがって、本明細書における説明は、本明細書で説明されている機能ブロックの任意の可能な組み合わせ若しくは分離、又は更なる定義を任意選択的にサポートする。
【０２５３】
図１２に示すように、電子デバイス１２００は、処理ユニット１２０８と、任意選択的に、ディスプレイユニット１２０２と、出力ユニット１２０４と、を含む。任意選択的に、処理ユニット１２０８は、ディスプレイユニット１２０２と、出力ユニット１２０４と、に連結される。いくつかの実施形態では、処理ユニット１２０８は、受信ユニット１２１０と、判定１２１２ と、誘発ユニット１２１４と、任意選択的に、変換ユニット１２１６と、特定ユニット１２１８と、提供ユニット１２２０と、検出ユニット１２２２と、導出ユニット１２２４と、送信ユニット１２２６と、記憶ユニット１２２８と、実行ユニット１２３０と、呼出ユニット１２３２と、を含む。
【０２５４】
いくつかの実施例では、処理ユニット１２０８は、（例えば、受信ユニット１２１０を用いて）テキスト文字列を含む通信を受信し（例えば、図１０Ａのブロック１００２）、（例えば、判定ユニット１２１２を用いて）テキスト文字列のある部位が、複数のデータ型のあるデータ型であって、あるデータ型は関連付けられた少なくとも１つのタスクを有する、データ型に関連付けられているか否かを判定し（例えば、図１０Ｂのブロック１００６）、テキスト文字列のその部位が、複数のデータ型のそのデータ型に関連付けられているという判定に従って、（例えば、受信ユニット１２１０を用いて）そのデータ型に関連付けられた少なくとも１つのタスクのあるタスクを示すユーザ入力を受信し（例えば、図１０Ｂのブロック１０１８）、そのタスクを示すユーザ入力に応じて、（例えば、誘発ユニット１２１４を用いて）そのタスクを、テキスト文字列のその部位に基づいて実行させ（例えば、図１０Ｃのブロック１０２６）、テキスト文字列のその部位が、複数のデータ型のそのデータ型に関連付けられていないという判定に従って、（例えば、誘発ユニット１２１４を用いて）そのタスクを、テキスト文字列のその部位に基づいて、実行させることを見送る（例えば、図１０Ｂのブロック１０１４）、よう構成されている 。
【０２５５】
いくつかの実施例では、処理ユニット１２０８は、（例えば、出力ユニット１２０４ を用いて）、自動アシスタントを用いて、通信のテキスト文字列に対応する音声出力を提供する（例えば、図１０Ａのブロック１００３）よう更に構成されている。
【０２５６】
いくつかの実施例では、通信のテキスト文字列に対応する音声出力は、ユーザの要求に応じて提供される。
【０２５７】
いくつかの実施例では、通信のテキスト文字列に対応する音声出力を提供することは、（例えば、変換ユニット１２１６を用いて）通信のテキスト文字列を、音声に変換することを含む（例えば、図１０Ａのブロック１０５０）。
【０２５８】
いくつかの実施例では、通信のテキスト文字列に対応する音声出力は第１の音声出力であり、タスクを示す音声入力は第１の音声入力であり、処理ユニット１２０８は、第１の音声出力を提供した後に、（例えば、出力ユニット１２０４を用いて）通信への返信のプロンプトを示す第２の音声出力を提供し（例えば、図１０Ａのブロック１００４）、第２の音声出力を提供した後に、（例えば、受信ユニット１２１０を用いて）第２の音声入力であって、第２の音声入力は第１の音声入力が受信される前に受信される、第２の音声入力をユーザから受信する（例えば、図１０Ａのブロック１００５ ）、よう更に構成されている。
【０２５９】
いくつかの実施例では、処理ユニット１２０８は、（例えば、特定ユニット１２１８を用いて）第１のサービスプロバイダであって、第１のサービスプロバイダは複数のドメインの第１のドメインに関連付けられている、第１のサービスプロバイダを、通信に基づいて特定し（例えば、図１０Ａのブロック１０５４）、第２の音声入力を受信した後に、（例えば、受信ユニット１２１０を用いて）複数のドメインの第２のドメインであって、第１のドメインとは異なる第２のドメイン を示す第３の音声入力を受信し（例えば、図１０Ａのブロック１０５６）、（例えば、特定ユニット１２１８を用いて）第２のサービスプロバイダを、第３の音声入力に基づいて特定し（例えば、図１０Ａのブロック１０５８）、（例えば、提供ユニット１２２０を用いて）第２の音声入力に関連付けられたデータを、第２のサービスプロバイダに提供する（例えば、図１０Ａのブロック１０６０）、よう更に構成されている。
【０２６０】
いくつかの実施例では、複数のデータ型のそのデータ型は、住所、電話番号、ユニフォームリソースロケータ（「ＵＲＬ」）、日付、対象とする人、対象とする場所、荷物追跡番号、又はフライト番号、の少なくとも１つを含む。
【０２６１】
いくつかの実施例では、テキスト文字列のその部位が、複数のデータ型のそのデータ型に関連付けられているか否かを判定することは、（例えば、検出ユニット１２２２を用いて）テキスト文字列のその部位にて、検出器であって、複数のデータ型のそのデータ型に対応する検出器を用いて、データ型のデータの存在を検出することを含む（例えば、図１０Ｂのブロック１００８）。
【０２６２】
いくつかの実施例では、処理ユニット１２０８は、（例えば、特定ユニット１２１８を用いて）少なくとも１つのタスクを、複数のタスクから、電子デバイス１２００の種類に基づいて特定するよう更に構成されている（例えば、図１０Ｂのブロック１０１０）。
【０２６３】
いくつかの実施例では、テキスト文字列のその部位はテキスト文字列の第１の部位であり、データ型は第１のデータ型であり、タスクは第１のタスクであり、処理ユニット１２０８は、（例えば、判定ユニット１２１２を用いて）テキスト文字列の第２の部位が、複数のデータ型の第２のデータ型に関連付けられているか否かを判定し（例えば、図１０Ｃのブロック１０７０）、テキスト文字列の第２の部位が、複数のデータ型の第２のデータ型に関連付けられているという判定に従って、（例えば、特定ユニット１２１８を用いて）第２のタスクを、第２のデータ型に基づいて特定し（例えば、図１０Ｃのブロック１０７２）、テキスト文字列の第２の部位が、複数のデータ型の第２のデータ型に関連付けられていないという判定に従って、（例えば、特定ユニット１２１８を用いて）第２のタスクを、第２のデータ型に基づいて、特定することを見送る（例えば、図１０Ｃのブロック１０７４）、よう更に構成されている。
【０２６４】
いくつかの実施例では、処理ユニット１２０８は、（例えば、ディスプレイユニット１２０２を用いて）タスクに対応するアフォーダンスを表示するよう更に構成されており（例えば、図１０Ｂのブロック１０１２）、ユーザ入力は、アフォーダンスの選択を含む（例えば、図１０Ｂのブロック１０２０）。
【０２６５】
いくつかの実施例では、タスクは第１のタスクであり、処理ユニット１２０８が、（例えば、ディスプレイユニット１２０２を用いて）第１のタスクのアフォーダンスの表示を、第２のタスクのアフォーダンスの表示よりも、電子デバイス１２００の種類に基づいて優先するよう更に構成されている（例えば、図１０Ｂのブロック１０１６）。
【０２６６】
いくつかの実施例では、第１のタスクのアフォーダンスの表示を、第２のタスクのアフォーダンスの表示よりも優先することは、（例えば、ディスプレイユニット１２０２を用いて）第２のタスクのアフォーダンスの表示を見送ることを含む（例えば、図１０Ｂのブロック１０１７）。
【０２６７】
いくつかの実施例では、処理ユニット１２０８は、（例えば、受信ユニット１２１０を用いて）第２のタスクを示すユーザ入力を受信し、（例えば、誘発ユニット１２１４を用いて）第２のタスクを実行させる、よう更に構成されている。
【０２６８】
いくつかの実施例では、タスクを示すユーザ入力は音声入力である（例えば、図１０Ｂのブロック１０２２）。いくつかの実施例では、音声入力は、テキストのその部位を含まない。
【０２６９】
いくつかの実施例では、処理ユニット１２０８は、（例えば、導出ユニット１２２４を用いて）ユーザの意図を、音声入力から、コンテキスト情報に基づいて導出するよう更に構成されており、コンテキスト情報は、テキストのその部位を含む（例えば、図１０Ｂのブロック１０２５）。
【０２７０】
いくつかの実施例では、電子デバイス１２００は第１の電子デバイスであり、処理ユニット１２０８は、第１の電子デバイスを用いて、（例えば、送信ユニット１２２６を用いて）音声入力に対応するデータであって、音声入力に対応するデータは通信のテキスト文字列を含まない、音声入力に対応するデータを、第１の電子デバイスとは異なる第２の電子デバイスに送信し（例えば、図１０Ｂのブロック１０２３）、（例えば、受信ユニット１２１０を用いて）、第２の電子デバイスから、そのタスクに対応するユーザの意図を受信する（例えば、図１０Ｂのブロック１０２４）よう更に構成されている。
【０２７１】
いくつかの実施例では、処理ユニット１２０８は、（例えば、記憶ユニット１２２８を用いて）、電子デバイス１２００上に、通信に関連付けられた情報を記憶するよう更に構成されている（例えば、図１０Ｃのブロック１０３０）。
【０２７２】
いくつかの実施例では、通信に関連付けられた、記憶された情報は、テキスト文字列のその部位を含む。
【０２７３】
いくつかの実施例では、通信に関連付けられた、記憶された情報は、データ型を含む。
【０２７４】
いくつかの実施例では、通信に関連付けられた、記憶された情報は、通信に関連付けられたメタデータを含む。
【０２７５】
いくつかの実施例では、処理ユニット１２０８は、（例えば、受信ユニット１２１０を用いて）入力を受信し（例えば、図１０Ｃのブロック１０３２）、（例えば、特定ユニット１２１８を用いて）タスクを、入力に基づいて特定し（例えば、図１０Ｃのブロック１０３４）、（例えば、実行ユニット１２３０を用いて）タスクを、記憶された情報の少なくとも一部に基づいて実行する（例えば、図１０Ｃのブロック１０３６）、よう更に構成されている。
【０２７６】
いくつかの実施例では、処理ユニット１２０８は、（例えば、呼出ユニット１２３０を用いて）ソフトウェアアプリケーションを呼び出し（例えば、図１０Ｃのブロック１０４２）、（例えば、実行ユニット１２３０を用いて）タスクを、記憶された情報の少なくとも一部に基づいて実行する（例えば、図１０Ｃのブロック１０４４）、よう更に構成されている。
【０２７７】
いくつかの実施例では、電子デバイス１２００は第１の電子デバイスであり、タスクは第２の電子デバイス上にて実行される。
【０２７８】
図１０Ａ〜図１０Ｃに関連する上記の動作は、任意選択的に、図１〜図４、図６Ａ〜図６Ｂ、図７Ａ、及び図１２に示す構成要素により実装される。例えば、受信動作１００２、判定動作１００６、及び誘発動作１０２６は、任意選択的に、プロセッサ（単数又は複数）１２０により実装される。当業者にとって、他のプロセスが、図１〜図４、図６Ａ〜図６Ｂ、図７Ａ、及び図１２に示す構成要素に基づいてどのように実装されるのかは明らかであろう。
【０２７９】
いくつかの実施形態によれば、図８Ａ〜図８Ｄ、図９Ａ〜図９Ｃ、及び図１１を参照して説明されたそれらを含み、図１３は、説明される様々な実施形態の原理に従って構成された電子デバイス１３００の機能ブロック図を示す。このデバイスの機能ブロックは、説明される様々な実施形態の原理を実行するために、ハードウェア、ソフトウェア、又はハードウェアとソフトウェアとの組み合わせによって、任意選択的に実装される。図１３で説明される機能ブロックが、説明される様々な実施形態の原理を実施するように、任意選択的に、組み合わされ、又はサブブロックに分離されることが当業者には理解される。したがって、本明細書における説明は、本明細書で説明されている機能ブロックの任意の可能な組み合わせ若しくは分離、又は更なる定義を任意選択的にサポートする。
【０２８０】
図１３に示すように、電子デバイス１３００は、出力ユニット１３０４と、処理ユニット１３０８と、任意選択的に、ディスプレイユニット１３０２と、を含む。処理ユニット１３０８は、出力ユニット１３０４と、任意選択的に、ディスプレイユニット１３０２と、に連結される。いくつかの実施形態では、処理ユニット１３０８は、受信ユニット１３１０と、判定ユニット１３１２と、導出ユニット１３１４と、任意選択的に、誘発ユニット１３１６と、を含む。
【０２８１】
いくつかの実施例では、処理ユニット１３０８は、（例えば、受信ユニット１３１０を用いて）テキスト文字列を含む通信を受信し（例えば、図１１のブロック１１０２）、（例えば、判定ユニット１３１２を用いて）テキスト文字列のある部位が、複数のデータ型のあるデータ型に関連付けられているか否かを判定し（例えば、図１１のブロック１１０４）、テキスト文字列のその部位が、複数のデータ型のそのデータ型に関連付けられているという判定に従って、（例えば、導出ユニット１３１４を用いて）１つ以上のパラメータであって、１つ以上のパラメータのあるパラメータが、テキスト文字列のその部位を含む、１つ以上のパラメータを有するタスクを、そのデータ型に基づいて導出し、（例えば、出力ユニット１３０４を用いて）導出されたタスクを出力し（例えば、図１１のブロック１１０８）、テキスト文字列のその部位が、複数のデータ型のそのデータ型に関連付けられていないという判定に従って、（例えば、導出ユニット１３１４を用いて）１つ以上のパラメータを有するタスクを、そのデータ型に基づいて、導出することを見送る（例えば、図１１のブロック１１０６）、よう構成されている。
【０２８２】
いくつかの実施例では、処理ユニット１３００は、（例えば、受信ユニット１３１０を用いて）導出されたタスクの選択を示すユーザ入力を受信し（例えば、図１１のブロック１１１６）、導出されたタスクの選択を示すユーザ入力に応じて、（例えば、誘発ユニット１３１６を用いて）そのタスクを、テキスト文字列のその部位に基づいて実行させる（例えば、図１１のブロック１１１８）、よう更に構成されている。
【０２８３】
いくつかの実施例では、導出されたタスクを出力することは、（例えば、ディスプレイユニット１３０２を用いて）導出されたタスクに対応するアフォーダンスを表示することを含み、ユーザ入力は、アフォーダンスの選択を含む（例えば、図１１のブロック１１１２）。
【０２８４】
いくつかの実施例では、導出されたタスクを出力することは、（例えば、出力ユニット１３０４を用いて）オーディオ出力を出力することを含む（例えば、図１１のブロック１１１４）。
【０２８５】
いくつかの実施例では、複数のデータ型のそのデータ型は、住所、電話番号、ユニフォームリソースロケータ（「ＵＲＬ」）、日付、対象とする人、対象とする場所、荷物追跡番号、又はフライト番号、の少なくとも１つを含む。
【０２８６】
図１１に関連する上記の動作は、任意選択的に、図１〜図４、図６Ａ〜図６Ｂ、図７Ａ、及び図１３に示す構成要素により実装される。例えば、受信動作１１０２、判定動作１１０４、及び導出動作１１０８は、任意選択的に、プロセッサ（単数又は複数）１２０により実装される。当業者にとって、他のプロセスが、図１〜図４、図６Ａ〜図６Ｂ、図７Ａ、及び図１３に示す構成要素に基づいてどのように実装されるのかは明らかであろう。
【０２８７】
いくつかの実施態様によると、コンピュータ可読記憶媒体（例えば、非一時的コンピュータ可読記憶媒体）が提供されており、このコンピュータ可読記憶媒体は、電子デバイスの１つ以上のプロセッサによって実行される１つ以上のプログラムを記憶し、この１つ以上のプログラムは、本明細書に記載の方法又はプロセスのいずれかを実行する命令を含む。
【０２８８】
いくつかの実施態様によると、本明細書に記載のいずれかの方法又はプロセスを実行する手段を含む電子デバイス（例えば、ポータブル電子デバイス）が提供されている。
【０２８９】
いくつかの実施態様によると、本明細書に記載のいずれかの方法又はプロセスを実行するよう構成された処理ユニットを含む電子デバイス（例えば、ポータブル電子デバイス）が提供されている。
【０２９０】
いくつかの実施態様によると、１つ以上のプロセッサ及び、１つ以上のプロセッサによって実行される１つ以上のプログラムを記憶するメモリを含み、この１つ以上のプログラムは、本明細書に記載のいずれかの方法又はプロセスを実行する命令を含む電子デバイス（例えば、ポータブル電子デバイス）が提供されている。
【０２９１】
前述の説明は、説明の目的上、特定の実施形態を参照して説明されている。しかしながら、上記の例示的な論考は、網羅的であること、又は本発明を、開示される厳密な形態に限定することを意図するものではない。上記の教示を鑑みて、多くの修正及び変形が可能である。これらの実施形態は、本技術の原理、及びその実際の適用を最も良好に説明するために、選択及び説明されたものである。当業者は、これにより、意図される特定の使用に適合する様々な修正を施して、本技術及び様々な実施形態を最も良好に利用することが可能になる。
【０２９２】
添付図面を参照して、本開示及び実施例を十分に説明してきたが、様々な変更及び修正が、当業者には明らかとなるであろうことに留意されたい。そのような変更及び修正は、特許請求の範囲によって定義されるような、本開示及び実施例の範囲内に含まれるものとして理解されたい。
【０２９３】
上述のように、本技術の一態様は、コンテンツ内のタスクの認識を向上するために、様々なソースから入手可能なデータを収集及び使用することである。本開示は、場合によっては、この収集されたデータは、特定の人を一意的に特定するか、又はその人に連絡するか、若しくはその人のロケーションを特定するために用いることができる個人情報データを含んでよいことを企図している。このような個人情報データは、人口統計学的データ、位置に基づくデータ、電話番号、電子メールアドレス、自宅住所、又は任意のその他の識別情報を含むことができる。
【０２９４】
本開示は、本技術における、このような個人情報データの使用は、ユーザの利益のために使用することができると認識している。例えば、個人情報データは、よりユーザの興味を引く、的を絞ったコンテンツを配信するために用いられてもよい。したがって、このような個人情報データの使用は、配信されるコンテンツの意図的な制御を可能にする。更に、ユーザに利益をもたらす個人情報データの他の使用法も、本開示によって企図されている。
【０２９５】
本開示は、このような個人情報データの収集、分析、開示、転送、記憶、又はその他の使用に関与する事業体は、しっかり確立されたプライバシーポリシー及び／又はプライバシー慣行を遵守することを更に企図している。具体的には、そのようなエンティティは、個人情報データを秘密として厳重に保守するための業界又は政府の要件を満たすか又は上回るものとして一般に認識されている、プライバシーのポリシー及び慣行を実施し常に使用すべきである。例えば、ユーザからの個人情報は、その事業体の合法的かつ正当な使用のために収集されるべきであり、それらの合法的使用を除いて、共有又は販売されるべきではない。更に、そのような収集は、ユーザに告知して同意を受けた後にのみ実施するべきである。更に、そのようなエンティティは、そのような個人情報へのアクセスを保護して安全化し、その個人情報へのアクセスを有する他者が、自身のプライバシーポリシー及び手順を遵守することを保証するための、あらゆる必要な措置を講じることとなる。更には、そのようなエンティティは、広く受け入れられているプライバシーのポリシー及び慣行に対する自身の遵守を証明するために、第三者による評価を自らが受けることができる。
【０２９６】
前述のことがらにもかかわらず、本開示はまた、ユーザが、個人情報データの使用又は個人情報データへのアクセスを選択的に阻止する実施形態も企図している。すなわち、本開示は、そのような個人情報データへのアクセスを防止又は阻止するためのハードウェア要素及び／又はソフトウェア要素を提供することができることを企図している。例えば、広告配信サービスの場合、本技術は、ユーザがサービスの登録中に個人情報データの収集への参加の「オプトイン」又は「オプトアウト」を選択することを可能にするよう構成することができる。別の実施例では、ユーザは、的を絞ったコンテンツ配信サービスのために位置情報を提供しないことを選択することができる。更に別の例では、ユーザは正確な位置情報を提供しないが、位置領域情報の転送を許可することを選択することができる。
【０２９７】
したがって、本開示は、１つ以上の様々な開示された実施形態を実施するための個人情報データの使用を広範に網羅しているが、本開示は、それらの様々な実施形態がまた、そのような個人情報データにアクセスすることを必要とせずに実施されることも可能であることも企図している。即ち、本技術の様々な実施形態は、そのような個人情報データの全て又は一部分の欠如により、実施不可能となるものではない。例えば、ユーザに関連付けられたデバイスによって要求されるコンテンツなどの非個人情報データ若しくは必要最小限の個人情報、コンテンツ配信サービスが入手可能な他の非個人情報、又は公的に入手可能な情報に基づき嗜好を推測することによって、コンテンツを選択し、ユーザへ配信することができる。
【図１】
2018014086.tif 000013
【図２Ａ】
2018014086.tif 000014
【図２Ｂ】
2018014086.tif 000015
【図３】
2018014086.tif 000016
【図４】
2018014086.tif 000017
【図５Ａ】
2018014086.tif 000018
【図５Ｂ】
2018014086.tif 000019
【図６Ａ】
2018014086.tif 000020
【図６Ｂ】
2018014086.tif 000021
【図７Ａ】
2018014086.tif 000022
【図７Ｂ】
2018014086.tif 000023
【図７Ｃ】
2018014086.tif 000024
【図８Ａ】
2018014086.tif 000025
【図８Ｂ】
2018014086.tif 000026
【図８Ｃ】
2018014086.tif 000027
【図８Ｄ】
2018014086.tif 000028
【図８Ｅ】
2018014086.tif 000029
【図９Ａ】
2018014086.tif 000030
【図９Ｂ】
2018014086.tif 000031
【図９Ｃ】
2018014086.tif 000032
【図１０Ａ】
2018014086.tif 000033
【図１０Ｂ】
2018014086.tif 000034
【図１０Ｃ】
2018014086.tif 000035
【図１１】
2018014086.tif 000036
【図１２】
2018014086.tif 000037
【図１３】
2018014086.tif 000038
【手続補正書】
【提出日】平成29年7月10日(2017.7.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
電子デバイス上で自動アシスタントを操作するための方法であって、
前記電子デバイスにて、
テキスト文字列を含む通信を受信することと、
前記テキスト文字列のある部位が、複数のデータ型のあるデータ型に関連付けられているか否かを判定することであって、前記あるデータ型は関連付けられた少なくとも１つのタスクを有する、ことと、
前記テキスト文字列の前記ある部位が、前記複数のデータ型の前記あるデータ型に関連付けられているという判定に従って、
前記あるデータ型に関連付けられた前記少なくとも１つのタスクのあるタスクを示すユーザ入力を受信することと、
前記あるタスクを示す前記ユーザ入力に応じて、前記あるタスクを、前記テキスト文字列の前記ある部位に基づいて実行させることと、
前記テキスト文字列の前記ある部位が、前記複数のデータ型の前記あるデータ型に関連付けられていないという判定に従って、前記あるタスクを、前記テキスト文字列の前記ある部位に基づいて、実行させることを見送ることと、
を含む方法。
【請求項２】
前記自動アシスタントを用いて、前記通信の前記テキスト文字列に対応する音声出力を提供することを更に含む、請求項１に記載の方法。
【請求項３】
前記通信の前記テキスト文字列に対応する前記音声出力が、ユーザの要求に応じて提供される、請求項２に記載の方法。
【請求項４】
前記通信の前記テキスト文字列に対応する前記音声出力を提供することが、前記通信の前記テキスト文字列を音声に変換することを含む、請求項２に記載の方法。
【請求項５】
前記通信の前記テキスト文字列に対応する前記音声出力は第１の音声出力であり、前記あるタスクを示す音声入力は第１の音声入力であり、前記方法は、
前記第１の音声出力を提供した後に、前記電子デバイスを用いて、前記通信への返信のプロンプトを示す第２の音声出力を提供することと、
前記第２の音声出力を提供した後に、前記電子デバイスを用いて、第２の音声入力であって、
前記第２の音声入力は前記第１の音声入力が受信される前に受信される、第２の音声入力を、ユーザから受信することと、
を更に含む、請求項２に記載の方法。
【請求項６】
前記電子デバイスを用いて、
第１のサービスプロバイダを前記通信に基づいて特定することであって、前記第１のサービスプロバイダは複数のドメインの第１のドメインに関連付けられている、ことと、
前記第２の音声入力を受信した後に、前記複数のドメインの第２のドメインを示す第３の音声入力を受信することであって、前記第２のドメインは前記第１のドメインとは異なる、ことと、
第２のサービスプロバイダを、前記第３の音声入力に基づいて特定することと、
前記第２の音声入力に関連付けられたデータを、前記第２のサービスプロバイダに提供することと、
を更に含む、請求項５に記載の方法。
【請求項７】
前記複数のデータ型の前記あるデータ型が、
住所、
電話番号、
ユニフォームリソースロケータ（「ＵＲＬ」）、
日付、
対象とする人、
対象とする場所、
荷物追跡番号、又は
フライト番号、
の少なくとも１つを含む、請求項１から６のいずれか１項に記載の方法。
【請求項８】
前記テキスト文字列の前記ある部位が、複数のデータ型の前記あるデータ型に関連付けられているか否かを判定することが、
前記テキスト文字列の前記ある部位にて、検出器を用いて、前記あるデータ型のデータの存在を検出することであって、前記検出器は前記複数のデータ型の前記あるデータ型に対応する、ことを含む、請求項１から７のいずれか１項に記載の方法。
【請求項９】
前記電子デバイスを用いて、前記少なくとも１つのタスクを、複数のタスクから、前記電子デバイスの種類に基づいて特定することを更に含む、請求項１から８のいずれか１項に記載の方法。
【請求項１０】
前記テキスト文字列の前記ある部位は前記テキスト文字列の第１の部位であり、前記あるデータ型は第１のデータ型であり、前記あるタスクは第１のタスクであり、前記方法は、
前記電子デバイスを用いて、前記テキスト文字列の第２の部位が、前記複数のデータ型の第２のデータ型に関連付けられているか否かを判定することと、
前記テキスト文字列の前記第２の部位が、前記複数のデータ型の前記第２のデータ型に関連付けられているという判定に従って、第２のタスクを、前記第２のデータ型に基づいて特定することと、
前記テキスト文字列の前記第２の部位が、前記複数のデータ型の前記第２のデータ型に関連付けられていないという判定に従って、前記第２のタスクを、前記第２のデータ型に基づいて、特定することを見送ることと、
を更に含む、請求項１から９のいずれか１項に記載の方法。
【請求項１１】
前記電子デバイスのディスプレイを用いて、前記あるタスクに対応するアフォーダンスを表示することを更に含み、前記ユーザ入力は、前記アフォーダンスの選択を含む、請求項１から１０のいずれか１項に記載の方法。
【請求項１２】
前記あるタスクは第１のタスクであり、前記方法は、
前記電子デバイスを用いて、前記第１のタスクの前記アフォーダンスの表示を、第２のタスクのアフォーダンスの表示よりも、前記電子デバイスの種類に基づいて優先することを更に含む、請求項１１に記載の方法。
【請求項１３】
前記第１のタスクの前記アフォーダンスの前記表示を、前記第２のタスクの前記アフォーダンスの前記表示よりも優先することが、
前記第２のタスクの前記アフォーダンスの前記表示を見送ることを含む、請求項１２に記載の方法。
【請求項１４】
前記電子デバイスを用いて、前記第２のタスクを示すユーザ入力を受信することと、
前記第２のタスクを実行させることと、
を更に含む、請求項１３に記載の方法。
【請求項１５】
前記あるタスクを示す前記ユーザ入力は音声入力である、請求項１から１０のいずれか１項に記載の方法。
【請求項１６】
前記音声入力は、前記テキスト文字列の前記ある部位を含まない、請求項１５に記載の方法。
【請求項１７】
ユーザの意図を、前記音声入力から、コンテキスト情報に基づいて導出することを更に含み、前記コンテキスト情報が、前記テキスト文字列の前記ある部位を含む、請求項１５に記載の方法。
【請求項１８】
前記電子デバイスは第１の電子デバイスであり、前記方法は、
前記第１の電子デバイスを用いて、
前記第１の電子デバイスとは異なる第２の電子デバイスに、前記音声入力に対応するデータであって、
前記データは前記通信の前記テキスト文字列を含まない、前記音声入力に対応する、データを送信することと、
前記第２の電子デバイスから、前記あるタスクに対応するユーザの意図を受信することと、
を更に含む、請求項１５に記載の方法。
【請求項１９】
前記電子デバイス上に、前記通信に関連付けられた情報を記憶することを更に含む、請求項１から１８のいずれか１項に記載の方法。
【請求項２０】
前記通信に関連付けられた、前記記憶された情報が、前記テキスト文字列の前記ある部位を含む、請求項１９に記載の方法。
【請求項２１】
前記通信に関連付けられた、前記記憶された情報が、前記あるデータ型を含む、請求項１９に記載の方法。
【請求項２２】
前記通信に関連付けられた、前記記憶された情報が、前記通信に関連付けられたメタデータを含む、請求項１９に記載の方法。
【請求項２３】
前記電子デバイスを用いて、
入力を受信することと、
あるタスクを、前記入力に基づいて特定することと、
前記あるタスクを、前記記憶された情報の少なくとも一部に基づいて実行することと、
を更に含む、請求項１９に記載の方法。
【請求項２４】
前記電子デバイスを用いて、
ソフトウェアアプリケーションを呼び出すことと、
前記あるタスクを、前記記憶された情報の少なくとも一部に基づいて実行することと、
を更に含む、請求項１９に記載の方法。
【請求項２５】
前記電子デバイスは第１の電子デバイスであり、前記あるタスクは第２の電子デバイス上にて実行される、請求項１から２４のいずれか１項に記載の方法。
【請求項２６】
請求項１から２５のいずれか１項に記載の方法をコンピュータに実行させるコンピュータプログラム。
【請求項２７】
電子デバイスであって、
１つ以上のプロセッサと、
メモリと、
１つ以上のプログラムと、
を備え、前記１つ以上のプログラムが、前記メモリ内に記憶され、前記１つ以上のプロセッサによって実行されるよう構成されており、前記１つ以上のプログラムが、請求項１から２５のいずれか１項に記載の方法を実行する命令を含む、電子デバイス。
【請求項２８】
請求項１から２５のいずれか１項に記載の方法を、請求項２６に記載の前記コンピュータプログラムに従って実行する手段を備えるデバイス。
【外国語明細書】
2018014086000001.pdf