(57)【要約】【課題】デジタルアシスタントとのアプリケーション統合のシステム及びプロセスを提供する。【解決手段】例えば、方法は、自然言語ユーザ入力を含むオーディオ入力を受信することと、インテントオブジェクトセットのうちのインテントオブジェクトを特定することと、を含む。インテントオブジェクトは自然言語ユーザ入力から導出することができる。該方法は、インテントオブジェクトセットのうちのインテントオブジェクトと関連付けられたソフトウェアアプリケーションを特定することと、インテントオブジェクトをソフトウェアアプリケーションに提供して、ソフトウェアアプリケーションにインテントオブジェクトと関連付けられたタスクを実行させることと、タスクの実行が成功したか否かを示す結果応答を受信することと、タスクが実行されたか否かを示す出力を提供することと、を更に含む。【選択図】図１２
2020077364.tif 000002
【特許請求の範囲】
【請求項１】
１つ以上のプロセッサ及びタッチ感知ディスプレイを有する電子デバイスにおいて、
自然言語ユーザ入力を含むオーディオ入力を受信することと、
インテントオブジェクトセットのうちのインテントオブジェクトを特定することであって、前記インテントオブジェクトが前記自然言語ユーザ入力から導出される、ことと、    前記インテントオブジェクトのセットのうちの前記インテントオブジェクトと関連付けられたソフトウェアアプリケーションを特定することと、
前記インテントオブジェクトを前記ソフトウェアアプリケーションに提供して、前記ソフトウェアアプリケーションに前記インテントオブジェクトと関連付けられたタスクを実行させることと、
前記ソフトウェアアプリケーションから、前記タスクの実行が成功したか否かを示す結果応答を受信することと、
前記タスクが実行されたか否かを示す出力を提供することと、
を含む方法。
【請求項２】
前記インテントオブジェクトセットのうちの前記インテントオブジェクトと関連付けられたソフトウェアアプリケーションを特定することが、前記インテントオブジェクトと関連付けられた第１のパラメータを特定することを含み、
前記インテントオブジェクトを前記ソフトウェアアプリケーションに提供して、前記ソフトウェアアプリケーションに前記インテントオブジェクトと関連付けられたタスクを実行させることが、前記第１のパラメータを前記ソフトウェアアプリケーションに提供することを含む、
請求項１に記載の方法。
【請求項３】
前記自然言語ユーザ入力が第１の自然言語入力であり、
前記ソフトウェアアプリケーションから、前記インテントオブジェクトと関連付けられた第２のパラメータの要求を受信することと、
前記要求に基づき自然言語クエリを提供することと、
第２の自然言語ユーザ入力を受信することと、
前記第２のパラメータを特定することであって、前記第２のパラメータが前記第２の自然言語ユーザ入力から導出される、ことと、
前記第２のパラメータを前記ソフトウェアアプリケーションに提供することと、
を更に含む、請求項１又は２に記載の方法。
【請求項４】
前記出力が、前記ソフトウェアアプリケーションが電気タスクの実行に成功したことを示す、請求項１に記載の方法。
【請求項５】
前記出力を提供した後、第２の入力を受信することと、
前記第２の入力に応じて、前記タスクと関連付けられた動作を調節することと、
を更に含む、請求項４に記載の方法。
【請求項６】
前記タスクと関連付けられた動作を調節することが、
前記インテントオブジェクトを調節することと、
前記調節されたインテントオブジェクトを前記ソフトウェアアプリケーションに提供することと、
を含む、請求項５に記載の方法。
【請求項７】
前記インテントオブジェクトを調節することが、前記インテントオブジェクトのパラメータを調節することを含む、請求項６に記載の方法。
【請求項８】
第２の入力を受信することが、アフォーダンスの選択を検出することを含み、
前記タスクと関連付けられた動作を調節することが、前記アフォーダンスの前記選択に応じて、前記タスクと関連付けられた動作を調節することを含む、
請求項７のいずれかに記載の方法。
【請求項９】
前記出力が、前記ソフトウェアアプリケーションが前記タスクの実行に失敗したことを示す、請求項１に記載の方法。
【請求項１０】
前記出力を提供した後、第３の入力を受信することと、
前記第３の入力に応じて、別のインテントオブジェクトを前記ソフトウェアアプリケーションに提供して、前記ソフトウェアアプリケーションに前記別のインテントオブジェクトと関連付けられたタスクを実行させることと、
を更に含む、請求項９に記載の方法。
【請求項１１】
第３の入力を受信することが、アフォーダンスの選択を検出することを含み、
別のインテントオブジェクトを前記ソフトウェアアプリケーションに提供して、前記ソフトウェアアプリケーションに前記別のインテントオブジェクトと関連付けられたタスクを実行させることが、前記アフォーダンスの前記選択に応じて、前記別のインテントオブジェクトを前記ソフトウェアアプリケーションに提供することを含む、
請求項１０に記載の方法。
【請求項１２】
前記インテントオブジェクト及び前記別のインテントオブジェクトが同一の種類のインテントオブジェクトであり、前記インテントオブジェクトと関連付けられたパラメータ及び前記別のインテントオブジェクトと関連付けられたパラメータが同一の値を有する、請求項１０又は１１に記載の方法。
【請求項１３】
前記インテントオブジェクト及び前記別のインテントオブジェクトが同一のインテントオブジェクトである、請求項１０又は１１に記載の方法。
【請求項１４】
前記タスクが実行されたか否かを示す出力を提供することが、
前記ソフトウェアアプリケーションから、ビューコントローラパラメータ値セットを受信することと、
前記ビューコントローラパラメータ値セットに従って前記出力を提供することと、
を含む、請求項１から１３のいずれか一項に記載の方法。
【請求項１５】
別の電子デバイスから複数の語を受信することを更に含み、
自然言語ユーザ入力を受信することが、前記複数の語のうちの語を含む自然言語ユーザ入力を受信することを含み、
前記インテントオブジェクトセットのうちの前記インテントオブジェクトと関連付けられたソフトウェアアプリケーションを特定することが、前記複数の語のうちの前記語に基づき前記ソフトウェアアプリケーションを特定することを含む、
請求項１から１４のいずれか一項に記載の方法。
【請求項１６】
インテントオブジェクトセットのうちのインテントオブジェクトを特定することが、前記電子デバイスの種類に基づき前記インテントオブジェクトセットのうちの前記インテントオブジェクトを特定することを含む、請求項１から１５のいずれか一項に記載の方法。
【請求項１７】
前記意図と関連付けられた複数の候補パラメータを特定することと、
前記複数の候補パラメータを前記ソフトウェアアプリケーションに提供することと、
を更に含む、請求項１から１６のいずれか一項に記載の方法。
【請求項１８】
前記ソフトウェアアプリケーションから、パラメータに対応する曖昧性除去要求を受信することと、
前記パラメータと関連付けられた候補パラメータセットから候補パラメータを特定することと、
前記選択された候補パラメータを前記ソフトウェアアプリケーションに提供することと、
を更に含む、請求項１から１７のいずれか一項に記載の方法。
【請求項１９】
前記インテントオブジェクトを前記ソフトウェアアプリケーションに提供して、前記ソフトウェアアプリケーションに前記インテントオブジェクトと関連付けられたタスクを実行させることが、
前記ソフトウェアアプリケーションを特定した後、前記タスクのキャンセル又は変更を要求するユーザ入力が期間内に受信されたか否かを判定することと、
前記タスクのキャンセル又は変更を要求する前記ユーザ入力が前記期間内に受信されなかったという判定に従って、前記インテントオブジェクトを前記ソフトウェアアプリケーションに提供することと、
を含む、請求項１から１８のいずれか一項に記載の方法。
【請求項２０】
前記タスクのキャンセル又は変更を要求する前記ユーザ入力が前記期間内に受信されなかったという判定に従って、前記インテントオブジェクトを前記ソフトウェアアプリケーションに提供することが、ユーザによる前記インテントオブジェクトの確認なしに前記インテントオブジェクトを前記ソフトウェアアプリケーションに提供することを含む、請求項１９に記載の方法。
【請求項２１】
前記ソフトウェアアプリケーションから、前記インテントオブジェクトと関連付けられたパラメータの要求を受信することと、
前記電子デバイスを用いて、前記要求に基づき自然言語クエリを特定することであって、前記自然言語クエリが、前記ソフトウェアアプリケーション及び前記パラメータと関連付けられる、ことと、
前記自然言語クエリを提供することと、
第４のユーザ入力を受信することと、
前記第４のユーザ入力に基づき前記パラメータを特定することと、
前記パラメータを前記ソフトウェアアプリケーションに提供することと、
を更に含む、請求項１から２０のいずれか一項に記載の方法。
【請求項２２】
それぞれが１つ以上のプロセッサとタッチ感知ディスプレイとを有する１つ以上の電子デバイスにおいて、
自然言語ユーザ入力を含むオーディオ入力を受信することと、
前記自然言語ユーザ入力から文字列を取得することと、
前記文字列に基づきインテントオブジェクトセットのうちのインテントオブジェクトを決定することと、
前記インテントオブジェクトセットのうちの前記インテントオブジェクトと関連付けられたソフトウェアアプリケーションを決定することと、
前記インテントオブジェクトを前記ソフトウェアアプリケーションに提供して、前記ソフトウェアアプリケーションに前記インテントオブジェクトと関連付けられたタスクを実行させることと、
前記ソフトウェアアプリケーションから、前記タスクの実行が成功したか否かを示す結果応答を受信することと、
前記タスクが実行されたか否かを示す出力を提供することと、
を含む方法。
【請求項２３】
前記文字列に基づきインテントオブジェクトセットのうちのインテントオブジェクトを決定することが、
前記文字列に自然言語処理を実行して、前記自然言語ユーザ入力の意図を判定することと、
前記意図と関連付けられたインテントオブジェクトを特定することと、
を含む、請求項２２に記載の方法。
【請求項２４】
前記タスクが実行されたか否かを示す出力を提供することが、自然言語出力を提供することを含む、請求項２２又は２３に記載の方法。
【請求項２５】
前記インテントオブジェクトセットのうちの前記インテントオブジェクトと関連付けられたソフトウェアアプリケーションを決定することが、前記インテントオブジェクトと関連付けられたパラメータを決定することを含み、
前記インテントオブジェクトを前記ソフトウェアアプリケーションに提供して、前記ソフトウェアアプリケーションに前記インテントオブジェクトと関連付けられたタスクを実行させることが、前記パラメータを前記ソフトウェアアプリケーションに提供することを含む、
請求項２２から２４のいずれか一項に記載の方法。
【請求項２６】
インテントオブジェクトセットのうちのインテントオブジェクトを決定することが、前記電子デバイスの種類に基づき前記インテントオブジェクトセットのうちの前記インテントオブジェクトを決定することを含む、請求項２２から２５のいずれか一項に記載の方法。
【請求項２７】
１つ以上のプロセッサとタッチ感知ディスプレイとを有する第１の電子デバイスにおいて、
インテントオブジェクトセットのうちのインテントオブジェクトを特定することであって、前記インテントオブジェクトが自然言語ユーザ入力から導出される、ことと、
前記インテントオブジェクトセットのうちの前記インテントオブジェクトと関連付けられたソフトウェアアプリケーションを特定することと、
第２の電子デバイスから、前記ソフトウェアアプリケーションと関連付けられたタスクフローを受信することと、
前記インテントオブジェクトを前記ソフトウェアアプリケーションに提供して、前記ソフトウェアアプリケーションに前記インテントオブジェクトと関連付けられたタスクを実行させることと、
前記ソフトウェアアプリケーションから要求を受信することと、
前記要求に基づきクエリを決定することであって、前記クエリが前記タスクフローに従って決定される、ことと、
前記タッチ感知ディスプレイを用いて前記クエリを提供することと、
前記クエリを提供した後、クエリ応答を示す第２のユーザ入力を受信することと、
前記クエリ応答を前記ソフトウェアアプリケーションに提供することと、
を含む方法。
【請求項２８】
前記ソフトウェアアプリケーションから、前記タスクの実行が成功したか否かを示す結果応答を受信することと、
前記タスクが実行されたか否かを示す出力を提供することと、
を更に含む、請求項２７に記載の方法。
【請求項２９】
前記クエリ応答を前記ソフトウェアアプリケーションに提供することが、
前記インテントオブジェクトを調節することと、
前記調節されたインテントオブジェクトを前記ソフトウェアアプリケーションに提供することと、
を含む、請求項２７又は２８に記載の方法。
【請求項３０】
前記ソフトウェアアプリケーションと関連付けられたタスクフローを受信することが、  別の電子デバイスから前記タスクフローを受信することと、
前記タスクフローを前記電子デバイスに記憶することと、
を含む、請求項２７から２９のいずれか一項に記載の方法。
【請求項３１】
前記要求に基づきクエリを決定することが、前記電子デバイスに記憶された前記タスクフローから前記クエリを取り出すことを含む、請求項３０に記載の方法。
【請求項３２】
前記クエリ応答が、前記インテントオブジェクトと関連付けられたパラメータを示す、請求項２７から３１のいずれか一項に記載の方法。
【請求項３３】
それぞれが１つ以上のプロセッサを有する１つ以上の電子デバイスにおいて、
インテントオブジェクトセットのうちのインテントオブジェクトを決定することと、    前記インテントオブジェクトセットのうちの前記インテントオブジェクトと関連付けられたソフトウェアアプリケーションを特定することと、
前記ソフトウェアアプリケーションと関連付けられたタスクフローを決定することと、
前記インテントオブジェクトを前記ソフトウェアアプリケーションに提供して、前記ソフトウェアアプリケーションに前記インテントオブジェクトと関連付けられたタスクを実行させることと、
前記ソフトウェアアプリケーションから要求を受信することと、
前記要求に基づきクエリを決定することであって、前記クエリが前記タスクフローに従って決定される、ことと、
前記タッチ感知ディスプレイを用いて前記クエリを提供することと、
前記クエリを提供した後、クエリ応答を示す第２のユーザ入力を受信することと、
前記クエリ応答を前記ソフトウェアアプリケーションに提供することと、
を含む方法。
【請求項３４】
自然言語ユーザ入力を含むオーディオ入力を受信することと、
前記自然言語ユーザ入力から文字列を取得することと、
を更に含み、
インテントオブジェクトセットのうちのインテントオブジェクトを決定することが、前記文字列に基づきインテントオブジェクトセットのうちのインテントオブジェクトを決定することを含む、
請求項３３に記載の方法。
【請求項３５】
前記ソフトウェアアプリケーションから、前記タスクの実行が成功したか否かを示す結果応答を受信することと、
前記タスクが実行されたか否かを示す出力を提供することと、
を更に含む、請求項３３又は３４に記載の方法。
【請求項３６】
前記ソフトウェアアプリケーションと関連付けられたタスクフローを決定することが、  第１の電子デバイスで前記タスクフローを決定することと、
前記タスクフローを第２の電子デバイスに提供することと、
前記タスクフローを前記第１の電子デバイスに記憶することと、
を含む、請求項３３から３５のいずれか一項に記載の方法。
【請求項３７】
前記要求に基づきクエリを決定することが、前記第１の電子デバイスで前記クエリを決定することを含む、請求項３６に記載の方法。
【請求項３８】
１つ以上のプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、前記１つ以上のプログラムが、電子デバイスの１つ以上のプロセッサによって実行されたときに、前記電子デバイスに、
自然言語ユーザ入力を含むオーディオ入力を受信させ、
インテントオブジェクトセットのうちのインテントオブジェクトであって、前記インテントオブジェクトが前記自然言語ユーザ入力から導出される、インテントオブジェクトを特定させ、
前記インテントオブジェクトセットのうちの前記インテントオブジェクトと関連付けられたソフトウェアアプリケーションを特定させ、
前記インテントオブジェクトを前記ソフトウェアアプリケーションに提供させて、前記ソフトウェアアプリケーションに前記インテントオブジェクトと関連付けられたタスクを実行させ、
前記ソフトウェアアプリケーションから、前記タスクの実行が成功したか否かを示す結果応答を受信させ、
前記タスクが実行されたか否かを示す出力を提供させる、
命令を含む、非一時的コンピュータ可読記憶媒体。
【請求項３９】
１つ以上のプログラムを記憶する１つ以上の非一時的コンピュータ可読記憶媒体であって、前記１つ以上のプログラムが、１つ以上の電子デバイスの１つ以上のプロセッサによって実行されたときに、前記１つ以上の電子デバイスに、
自然言語ユーザ入力を含むオーディオ入力を受信させ、
前記自然言語ユーザ入力から文字列を取得させ、
前記文字列に基づきインテントオブジェクトセットのうちのインテントオブジェクトを決定させ、
前記インテントオブジェクトセットのうちの前記インテントオブジェクトと関連付けられたソフトウェアアプリケーションを決定させ、
前記インテントオブジェクトを前記ソフトウェアアプリケーションに提供させて、前記ソフトウェアアプリケーションに前記インテントオブジェクトと関連付けられたタスクを実行させ、
前記ソフトウェアアプリケーションから、前記タスクの実行が成功したか否かを示す結果応答を受信させ、
前記タスクが実行されたか否かを示す出力を提供させる、
命令を含む、非一時的コンピュータ可読記憶媒体。
【請求項４０】
１つ以上のプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、前記１つ以上のプログラムが、電子デバイスの１つ以上のプロセッサによって実行されたときに、前記電子デバイスに、
インテントオブジェクトセットのうちのインテントオブジェクトであって、前記インテントオブジェクトが自然言語ユーザ入力から導出される、インテントオブジェクトを特定させ、
前記インテントオブジェクトセットのうちの前記インテントオブジェクトと関連付けられたソフトウェアアプリケーションを特定させ、
第２の電子デバイスから、前記ソフトウェアアプリケーションと関連付けられたタスクフローを受信させ、
前記インテントオブジェクトを前記ソフトウェアアプリケーションに提供させて、前記ソフトウェアアプリケーションに前記インテントオブジェクトと関連付けられたタスクを実行させ、
前記ソフトウェアアプリケーションから要求を受信させ、
前記要求に基づきクエリであって、前記クエリが前記タスクフローに従って決定される、クエリを決定させ、
前記タッチ感知ディスプレイを用いて前記クエリを提供させ、
前記クエリを提供した後、クエリ応答を示す第２のユーザ入力を受信させ、
前記クエリ応答を前記ソフトウェアアプリケーションに提供させる、
命令を含む非一時的コンピュータ可読記憶媒体。
【請求項４１】
１つ以上のプログラムを記憶する１つ以上の非一時的コンピュータ可読記憶媒体であって、前記１つ以上のプログラムが、１つ以上の電子デバイスの１つ以上のプロセッサによって実行されたときに、前記１つ以上の電子デバイスに、
インテントオブジェクトセットのうちのインテントオブジェクトを決定させ、
前記インテントオブジェクトセットのうちの前記インテントオブジェクトと関連付けられたソフトウェアアプリケーションを特定させ、
前記ソフトウェアアプリケーションと関連付けられたタスクフローを決定させ、
前記インテントオブジェクトを前記ソフトウェアアプリケーションに提供させて、前記ソフトウェアアプリケーションに前記インテントオブジェクトと関連付けられたタスクを実行させ、
前記ソフトウェアアプリケーションから要求を受信させ、
前記要求に基づきクエリであって、前記クエリが前記タスクフローに従って決定される、クエリを決定させ、
前記タッチ感知ディスプレイを用いて前記クエリを提供させ、
前記クエリを提供した後、クエリ応答を示す第２のユーザ入力を受信させ、
前記クエリ応答を前記ソフトウェアアプリケーションに提供させ、
命令を含む、非一時的コンピュータ可読記憶媒体。
【請求項４２】
１つ以上のプロセッサと、
メモリと、
１つ以上のプログラムと、
を備える電子デバイスであって、
前記１つ以上のプログラムが、前記メモリに記憶され、前記１つ以上のプロセッサによって実行されるように構成されており、前記１つ以上のプログラムが、
自然言語ユーザ入力を含むオーディオ入力を受信し、
インテントオブジェクトセットのうちのインテントオブジェクトであって、前記インテントオブジェクトが前記自然言語ユーザ入力から導出される、インテントオブジェクトを特定し、
前記インテントオブジェクトセットのうちの前記インテントオブジェクトと関連付けられたソフトウェアアプリケーションを特定し、
前記インテントオブジェクトを前記ソフトウェアアプリケーションに提供して、前記ソフトウェアアプリケーションに前記インテントオブジェクトと関連付けられたタスクを実行させ、
前記ソフトウェアアプリケーションから、前記タスクの実行が成功したか否かを示す結果応答を受信し、
前記タスクが実行されたか否かを示す出力を提供する、
命令を含む、電子デバイス。
【請求項４３】
１つ以上の電子デバイスの１つ以上のプロセッサと、
前記１つ以上の電子デバイスの１つ以上のメモリと、
１つ以上のプログラムと、
を備えるシステムであって、
前記１つ以上のプログラムが前記１つ以上のメモリに記憶され、前記１つ以上のプロセッサによって実行されるように構成されており、前記１つ以上のプログラムが、
自然言語ユーザ入力を含むオーディオ入力を受信し、
前記自然言語ユーザ入力から文字列を取得し、
前記文字列に基づきインテントオブジェクトセットのうちのインテントオブジェクトを決定し、
前記インテントオブジェクトセットのうちの前記インテントオブジェクトと関連付けられたソフトウェアアプリケーションを決定し、
前記インテントオブジェクトを前記ソフトウェアアプリケーションに提供して、前記ソフトウェアアプリケーションに前記インテントオブジェクトと関連付けられたタスクを実行させ、
前記ソフトウェアアプリケーションから、前記タスクの実行が成功したか否かを示す結果応答を受信し、
前記タスクが実行されたか否かを示す出力を提供する、
命令を含む、システム。
【請求項４４】
１つ以上のプロセッサと、
メモリと、
１つ以上のプログラムと、
を備える電子デバイスであって、
前記１つ以上のプログラムが、前記メモリに記憶され、前記１つ以上のプロセッサによって実行されるように構成されており、前記１つ以上のプログラムが、
インテントオブジェクトセットのうちのインテントオブジェクトであって、前記インテントオブジェクトが自然言語ユーザ入力から導出される、インテントオブジェクトを特定し、
前記インテントオブジェクトセットのうちの前記インテントオブジェクトと関連付けられたソフトウェアアプリケーションを特定し、
第２の電子デバイスから、前記ソフトウェアアプリケーションと関連付けられたタスクフローを受信し、
前記インテントオブジェクトを前記ソフトウェアアプリケーションに提供して、前記ソフトウェアアプリケーションに前記インテントオブジェクトと関連付けられたタスクを実行させ、
前記ソフトウェアアプリケーションから要求を受信し、
前記要求に基づきクエリであって、前記クエリが前記タスクフローに従って決定される、クエリを決定し、
前記タッチ感知ディスプレイを用いて前記クエリを提供し、
前記クエリを提供した後、クエリ応答を示す第２のユーザ入力を受信し、
前記クエリ応答を前記ソフトウェアアプリケーションに提供する、
命令を含む、電子デバイス。
【請求項４５】
１つ以上の電子デバイスの１つ以上のプロセッサと、
前記１つ以上の電子デバイスの１つ以上のメモリと、
１つ以上のプログラムと、
を備えるシステムであって、
前記１つ以上のプログラムが前記１つ以上のメモリに記憶され、前記１つ以上のプロセッサによって実行されるように構成されており、前記１つ以上のプログラムが、
インテントオブジェクトセットのうちのインテントオブジェクトを特定し、
前記インテントオブジェクトセットのうちの前記インテントオブジェクトと関連付けられたソフトウェアアプリケーションを特定し、
前記ソフトウェアアプリケーションと関連付けられたタスクフローを決定し、
前記インテントオブジェクトを前記ソフトウェアアプリケーションに提供して、前記ソフトウェアアプリケーションに前記インテントオブジェクトと関連付けられたタスクを実行させ、
前記ソフトウェアアプリケーションから要求を受信し、
前記要求に基づきクエリであって、前記クエリが前記タスクフローに従って決定される、クエリを決定し、
前記タッチ感知ディスプレイを用いて前記クエリを提供し、
前記クエリを提供した後、クエリ応答を示す第２のユーザ入力を受信し、
前記クエリ応答を前記ソフトウェアアプリケーションに提供する、
命令を含む、システム。
【請求項４６】
自然言語ユーザ入力を含むオーディオ入力を受信する手段と、
インテントオブジェクトセットのうちのインテントオブジェクトを特定する手段であって、前記インテントオブジェクトが前記自然言語ユーザ入力から導出される、手段と、
前記インテントオブジェクトセットのうちの前記インテントオブジェクトと関連付けられたソフトウェアアプリケーションを特定する手段と、
前記インテントオブジェクトを前記ソフトウェアアプリケーションに提供して、前記ソフトウェアアプリケーションに前記インテントオブジェクトと関連付けられたタスクを実行させる手段と、
前記ソフトウェアアプリケーションから、前記タスクの実行が成功したか否かを示す結果応答を受信する手段と、
前記タスクが実行されたか否かを示す出力を提供する手段と、
を備える電子デバイス。
【請求項４７】
自然言語ユーザ入力を含むオーディオ入力を受信する手段と、
前記自然言語ユーザ入力から文字列を取得する手段と、
前記文字列に基づきインテントオブジェクトセットのうちのインテントオブジェクトを決定する手段と、
前記インテントオブジェクトセットのうちの前記インテントオブジェクトと関連付けられたソフトウェアアプリケーションを決定する手段と、
前記インテントオブジェクトを前記ソフトウェアアプリケーションに提供して、前記ソフトウェアアプリケーションに前記インテントオブジェクトと関連付けられたタスクを実行させる手段と、
前記ソフトウェアアプリケーションから、前記タスクの実行が成功したか否かを示す結果応答を受信する手段と、
前記タスクが実行されたか否かを示す出力を提供する手段と、
を備えるシステム。
【請求項４８】
インテントオブジェクトセットのうちのインテントオブジェクトを特定する手段であって、前記インテントオブジェクトが自然言語ユーザ入力から導出される、手段と、
前記インテントオブジェクトセットのうちの前記インテントオブジェクトと関連付けられたソフトウェアアプリケーションを特定する手段と、
第２の電子デバイスから、前記ソフトウェアアプリケーションと関連付けられたタスクフローを受信する手段と、
前記インテントオブジェクトを前記ソフトウェアアプリケーションに提供して、前記ソフトウェアアプリケーションに前記インテントオブジェクトと関連付けられたタスクを実行させる手段と、
前記ソフトウェアアプリケーションから要求を受信する手段と、
前記要求に基づきクエリを決定する手段であって、前記クエリが前記タスクフローに従って、決定される、手段と、
前記タッチ感知ディスプレイを用いて前記クエリを提供する手段と、
前記クエリを提供した後、クエリ応答を示す第２のユーザ入力を受信する手段と、
前記クエリ応答に前記ソフトウェアアプリケーションを提供する手段と、
を備える電子デバイス。
【請求項４９】
インテントオブジェクトセットのうちのインテントオブジェクトを決定する手段と、
前記インテントオブジェクトセットのうちの前記インテントオブジェクトと関連付けられたソフトウェアアプリケーションを特定する手段と、
前記ソフトウェアアプリケーションと関連付けられたタスクフローを決定する手段と、  前記インテントオブジェクトを前記ソフトウェアアプリケーションに提供して、前記ソフトウェアアプリケーションに前記インテントオブジェクトと関連付けられたタスクを実行させる手段と、
前記ソフトウェアアプリケーションから要求を受信する手段と、
前記要求に基づきクエリを決定する手段であって、前記クエリが前記タスクフローに従って決定される、手段と、
前記タッチ感知ディスプレイを用いて前記クエリを提供する手段と、
前記クエリを提供した後に、クエリ応答を示す第２のユーザ入力を受信する手段と、
前記クエリ応答に前記ソフトウェアアプリケーションを提供する手段と、
を備えるシステム。
【請求項５０】
１つ以上のプロセッサと、
メモリと、
１つ以上のプログラムと、
を備える電子デバイスであって、
前記１つ以上のプログラムが、前記メモリに記憶され、前記１つ以上のプロセッサによって実行されるように構成されており、請求項１から２１及び２７から３２のいずれか一項に記載の方法を実行する命令を含む、電子デバイス。
【請求項５１】
１つ以上の電子デバイスの１つ以上のプロセッサと、
前記１つ以上の電子デバイスの１つ以上のメモリと、
１つ以上のプログラムと、
を備えるシステムであって、
前記１つ以上のプログラムが、前記１つ以上のメモリに記憶され、前記１つ以上のプロセッサによって実行されるように構成されており、請求項２２から２６及び３３から３７のいずれか一項に記載の方法を実行する命令を含む、システム。
【請求項５２】
１つ以上のプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、前記１つ以上のプログラムが、電子デバイスの１つ以上のプロセッサによって実行されたときに、前記電子デバイスに請求項１から２１及び２７から３２のいずれか一項に記載の方法を実行させる命令を含む、非一時的コンピュータ可読記憶媒体。
【請求項５３】
１つ以上のプログラムを記憶する１つ以上の非一時的コンピュータ可読記憶媒体であって、前記１つ以上のプログラムが、１つ以上の電子デバイスの１つ以上のプロセッサによって実行されたときに、前記１つ以上の電子デバイスに請求項２２から２６及び３３から３７のいずれか一項に記載の方法を実行させる命令を含む、非一時的コンピュータ可読記憶媒体。
【請求項５４】
請求項１から２１及び２７から３２のいずれか一項の記載の方法を実行する手段を備える、電子デバイス。
【請求項５５】
請求項２２から２６及び３３から３７のいずれか一項の記載の方法を実行する手段を備える、システム。
【請求項５６】
１つ以上のプロセッサと、
タッチ感知ディスプレイと、
処理ユニットと、
を備える電子デバイスであって、
前記処理ユニットが、
自然言語ユーザ入力を含むオーディオ入力を受信し、
インテントオブジェクトセットのうちのインテントオブジェクトであって、前記インテントオブジェクトが前記自然言語ユーザ入力から導出される、インテントオブジェクトを特定し、
前記インテントオブジェクトセットのうちの前記インテントオブジェクトと関連付けられたソフトウェアアプリケーションを特定し、
前記インテントオブジェクトを前記ソフトウェアアプリケーションに提供して、前記ソフトウェアアプリケーションに前記インテントオブジェクトと関連付けられたタスクを実行させ、
前記ソフトウェアアプリケーションから、前記タスクの実行が成功したか否かを示す結果応答を受信し、
前記タスクが実行されたか否かを示す出力を提供する、
ように構成されている電子デバイス。
【請求項５７】
前記インテントオブジェクトセットのうちの前記インテントオブジェクトと関連付けられたソフトウェアアプリケーションを特定することが、前記インテントオブジェクトと関連付けられた第１のパラメータを特定することを含み、
前記インテントオブジェクトを前記ソフトウェアアプリケーションに提供して、前記ソフトウェアアプリケーションに前記インテントオブジェクトと関連付けられたタスクを実行させることが、前記第１のパラメータを前記ソフトウェアアプリケーションに提供することを含む、請求項５６に記載の電子デバイス。
【請求項５８】
前記自然言語ユーザ入力が第１の自然言語入力であり、
前記処理ユニットが、
前記ソフトウェアアプリケーションから、前記インテントオブジェクトと関連付けられた第２のパラメータの要求を受信し、
前記要求に基づき自然言語クエリを提供し、
第２の自然言語ユーザ入力を受信し、
前記第２のパラメータであって、前記第２のパラメータが前記第２の自然言語ユーザ入力から導出される、前記第２のパラメータを特定し、
前記第２のパラメータを前記ソフトウェアアプリケーションに提供する、
ように更に構成されている、請求項５６又は５７に記載の電子デバイス。
【請求項５９】
前記出力が、前記ソフトウェアアプリケーションが前記タスクの実行に成功したことを示す、請求項５６に記載の電子デバイス。
【請求項６０】
前記処理ユニットが、
前記出力を提供した後、第２の入力を受信し、
前記第２の入力に応じて、前記タスクと関連付けられた動作を調節する、
ように更に構成されている、請求項５９に記載の電子デバイス。
【請求項６１】
前記タスクと関連付けられた動作を調節することが、
前記インテントオブジェクトを調節することと、
前記調節されたインテントオブジェクトを前記ソフトウェアアプリケーションに提供することと、
を含む、請求項６０に記載の電子デバイス。
【請求項６２】
前記インテントオブジェクトを調節することが、前記インテントオブジェクトのパラメータを調節することを含む、請求項６１に記載の電子デバイス。
【請求項６３】
第２の入力を受信することが、アフォーダンスの選択を検出することを含み、
前記タスクと関連付けられた動作を調節することが、前記アフォーダンスの前記選択に応じて、前記タスクと関連付けられた動作を調節することを含む、
請求項６２に記載の電子デバイス。
【請求項６４】
前記出力が、前記ソフトウェアアプリケーションが前記タスクの実行に失敗したことを示す、請求項６３に記載の電子デバイス。
【請求項６５】
前記処理ユニットが、
前記出力を提供した後、第３の入力を受信し、
前記第３の入力に応じて、別のインテントオブジェクトを前記ソフトウェアアプリケーションに提供して、前記ソフトウェアアプリケーションに前記別のインテントオブジェクトと関連付けられたタスクを実行させる、
ように更に構成されている、請求項６４に記載の電子デバイス。
【請求項６６】
第３の入力を受信することが、アフォーダンスの選択を検出することを含み、
別のインテントオブジェクトを前記ソフトウェアアプリケーションに提供して、前記ソフトウェアアプリケーションに前記別のインテントオブジェクトと関連付けられたタスクを実行させることが、前記アフォーダンスの前記選択に応じて、前記別のインテントオブジェクトを前記ソフトウェアアプリケーションに提供することを含む、
請求項６５に記載の電子デバイス。
【請求項６７】
前記インテントオブジェクト及び前記別のインテントオブジェクトが同一の種類のインテントオブジェクトであり、前記インテントオブジェクトと関連付けられたパラメータ及び前記別のインテントオブジェクトと関連付けられたパラメータが同一の値を有する、請求項６５又は６６に記載の電子デバイス。
【請求項６８】
前記インテントオブジェクト及び前記別のインテントオブジェクトが同一のインテントオブジェクトである、請求項６５又は６６に記載の電子デバイス。
【請求項６９】
前記タスクが実行されたか否かを示す出力を提供することが、
前記ソフトウェアアプリケーションから、ビューコントローラパラメータ値セットを受信することと、
前記ビューコントローラパラメータ値セットに従って前記出力を提供することと、
を含む、請求項５６から６８のいずれか一項の記載の電子デバイス。
【請求項７０】
前記処理ユニットが、別の電子デバイスから複数の語を受信するように更に構成されており、
自然言語ユーザ入力を受信することが、前記複数の語のうちの語を含む自然言語ユーザ入力を受信することを含み、
前記インテントオブジェクトセットのうちの前記インテントオブジェクトと関連付けられたソフトウェアアプリケーションを特定することが、前記複数の語の前記語に基づき前記ソフトウェアアプリケーションを特定することを含む、請求項５６から６９のいずれか一項に記載の電子デバイス。
【請求項７１】
インテントオブジェクトセットのうちのインテントオブジェクトを特定することが、前記電子デバイスの種類に基づき前記インテントオブジェクトセットのうちの前記インテントオブジェクトを特定することを含む、請求項５６から７０のいずれか一項に記載の電子デバイス。
【請求項７２】
前記処理ユニットが、
前記意図と関連付けられた複数の候補パラメータを特定し、
前記複数の候補パラメータを前記ソフトウェアアプリケーションに提供する、
ように更に構成されている、請求項５６から７１のいずれか一項に記載の電子デバイス。
【請求項７３】
前記処理ユニットが、
前記ソフトウェアアプリケーションから、パラメータに対応する曖昧性除去要求を受信し、
前記パラメータと関連付けられた候補パラメータセットから候補パラメータを特定し、  前記選択された候補パラメータを前記ソフトウェアアプリケーションに提供する、
ように更に構成されている、請求項５６から７２のいずれか一項に記載の電子デバイス。
【請求項７４】
前記インテントオブジェクトを前記ソフトウェアアプリケーションに提供して、前記ソフトウェアアプリケーションに前記インテントオブジェクトと関連付けられたタスクを実行させることが、
前記ソフトウェアアプリケーションを特定した後、前記タスクのキャンセル又は変更を要求する前記ユーザ入力が期間内に受信されたか否かを判定することと、
前記タスクのキャンセル又は変更を要求するユーザ入力が前記期間内に受信されなかったという判定に従って、前記インテントオブジェクトに前記ソフトウェアアプリケーションを提供することと、
を含む、請求項５６から７３のいずれか一項に記載の電子デバイス。
【請求項７５】
前記タスクのキャンセル又は変更を要求する前記ユーザ入力が前記期間内に受信されなかったという判定に従って、前記インテントオブジェクトに前記ソフトウェアアプリケーションを提供することが、ユーザによる前記インテントオブジェクトの確認なしに前記インテントオブジェクトを前記ソフトウェアアプリケーションに提供することを含む、請求項７４に記載の電子デバイス。
【請求項７６】
前記処理ユニットが、
前記ソフトウェアアプリケーションから、前記インテントオブジェクトと関連付けられたパラメータの要求を受信し、
前記電子デバイスを用いて、前記要求に基づき自然言語クエリであって、前記自然言語クエリが、前記ソフトウェアアプリケーション及び前記パラメータと関連付けられる、自然言語クエリを特定し
前記自然言語クエリを提供し、
第４のユーザ入力を受信し、
前記第４のユーザ入力に基づき前記パラメータを特定し、
前記パラメータを前記ソフトウェアアプリケーションに提供する、
ように更に構成されている、請求項５６から７５のいずれか一項に記載の電子デバイス。
【請求項７７】
１つ以上の処理ユニットと１つ以上のタッチ感知ディスプレイとを備える１つ以上の電子デバイスを備えるシステムであって、
前記１つ以上の処理ユニットが、
自然言語ユーザ入力を含むオーディオ入力を受信し、
前記自然言語ユーザ入力から文字列を取得し、
前記文字列に基づきインテントオブジェクトセットのうちのインテントオブジェクトを決定し、
前記インテントオブジェクトセットのうちの前記インテントオブジェクトと関連付けられたソフトウェアアプリケーションを決定し、
前記インテントオブジェクトを前記ソフトウェアアプリケーションに提供して、前記ソフトウェアアプリケーションに前記インテントオブジェクトと関連付けられたタスクを実行させ、
前記ソフトウェアアプリケーションから、前記タスクの実行が成功したか否かを示す結果応答を受信し、
前記タスクが実行されたか否かを示す出力を提供する、
ように構成されている、システム。
【請求項７８】
前記文字列に基づきインテントオブジェクトセットのうちのインテントオブジェクトを決定することが、
前記文字列に自然言語処理を実行して、前記自然言語ユーザ入力の意図を判定することと、
前記意図と関連付けられたインテントオブジェクトを特定することと、
を含む、請求項７７に記載のシステム。
【請求項７９】
前記タスクが実行されたか否かを示す出力を提供することが、自然言語出力を提供することを含む、請求項７７又は７８に記載のシステム。
【請求項８０】
前記インテントオブジェクトセットのうちの前記インテントオブジェクトと関連付けられたソフトウェアアプリケーションを決定することが、前記インテントオブジェクトと関連付けられたパラメータを決定することを含み、
前記インテントオブジェクトを前記ソフトウェアアプリケーションに提供して、前記ソフトウェアアプリケーションに前記インテントオブジェクトと関連付けられたタスクを実行させることが、前記パラメータを前記ソフトウェアアプリケーションに提供することを含む、
請求項７７から７９のいずれか一項に記載のシステム。
【請求項８１】
インテントオブジェクトセットのうちのインテントオブジェクトを決定することが、前記電子デバイスの種類に基づき前記インテントオブジェクトセットのうちの前記インテントオブジェクトを決定することを含む、請求項７７から８０のいずれか一項に記載のシステム。
【請求項８２】
処理ユニットを備える、電子デバイスであって、
処理ユニットが、
インテントオブジェクトセットのうちのインテントオブジェクトであって、前記インテントオブジェクトが自然言語ユーザ入力から導出される、インテントオブジェクトを特定し、
前記インテントオブジェクトセットのうちの前記インテントオブジェクトと関連付けられたソフトウェアアプリケーションを特定し、
第２の電子デバイスから、前記ソフトウェアアプリケーションと関連付けられたタスクフローを受信し、
前記インテントオブジェクトを前記ソフトウェアアプリケーションに提供して、前記ソフトウェアアプリケーションに前記インテントオブジェクトと関連付けられたタスクを実行させ、
前記ソフトウェアアプリケーションから要求を受信し、
前記要求に基づきクエリであって、前記クエリが前記タスクフローに従って決定される、クエリを決定し、
前記タッチ感知ディスプレイを用いて前記クエリを提供し、
前記クエリを提供した後、クエリ応答を示す第２のユーザ入力を受信し、
前記クエリ応答に前記ソフトウェアアプリケーションを提供する、
ように構成されている、電子デバイス。
【請求項８３】
前記処理ユニットが、
前記ソフトウェアアプリケーションから、前記タスクの実行が成功したか否かを示す結果応答を受信し、
前記タスクが実行されたか否かを示す出力を提供する、
ように更に構成されている、請求項８２に記載の電子デバイス。
【請求項８４】
前記クエリ応答を前記ソフトウェアアプリケーションに提供することが、
前記インテントオブジェクトを調節することと、
前記調節されたインテントオブジェクトを前記ソフトウェアアプリケーションに提供することと、
を含む、請求項８２又は８３に記載の電子デバイス。
【請求項８５】
前記ソフトウェアアプリケーションと関連付けられたタスクフローを受信することが、  別の電子デバイスから前記タスクフローを受信することと、
前記タスクフローを前記電子デバイスに記憶することと、
を含む、請求項８２から８４のいずれか一項に記載の電子デバイス。
【請求項８６】
前記要求に基づきクエリを決定することが、前記電子デバイスに記憶された前記タスクフローから前記クエリを取り出すことを含む、請求項８５に記載の電子デバイス。
【請求項８７】
前記クエリ応答が前記インテントオブジェクトと関連付けられたパラメータを示す、請求項８２から８６のいずれか一項に記載の電子デバイス。
【請求項８８】
１つ以上の処理ユニットを備える１つ以上の電子デバイスを備えるシステムであって、  前記１つ以上の処理ユニットが、
インテントオブジェクトセットのうちのインテントオブジェクトを決定し、
前記インテントオブジェクトセットのうちの前記インテントオブジェクトと関連付けられたソフトウェアアプリケーションを特定し、
前記ソフトウェアアプリケーションと関連付けられたタスクフローを決定し、
前記インテントオブジェクトを前記ソフトウェアアプリケーションに提供して、前記ソフトウェアアプリケーションに前記インテントオブジェクトと関連付けられたタスクを実行させ、
前記ソフトウェアアプリケーションから要求を受信する、
前記要求に基づきクエリであって、前記クエリが前記タスクフローに従って決定される、クエリを決定し、
前記タッチ感知ディスプレイを用いて前記クエリを提供し、
前記クエリを提供した後、クエリ応答を示す第２のユーザ入力を受信し、
前記クエリ応答を前記ソフトウェアアプリケーションに提供する、
ように構成されている、システム。
【請求項８９】
前記１つ以上の処理ユニットが、
自然言語ユーザ入力を含むオーディオ入力を受信し、
前記自然言語ユーザ入力から文字列を取得する、
ように更に構成されており、
インテントオブジェクトセットのうちのインテントオブジェクトを決定することが、前記文字列に基づきインテントオブジェクトセットのうちのインテントオブジェクトを決定することを含む、請求項８８に記載のシステム。
【請求項９０】
前記１つ以上の処理ユニットが、
前記ソフトウェアアプリケーションから、前記タスクの実行が成功したか否かを示す結果応答を受信し、
前記タスクが実行されたか否かを示す出力を提供する、
ように更に構成されている、請求項８８又は８９に記載のシステム。
【請求項９１】
前記ソフトウェアアプリケーションと関連付けられたタスクフローを決定することが、  第１の電子デバイスで前記タスクフローを決定することと、
前記タスクフローを第２の電子デバイスに提供することと、
前記タスクフローを前記第１の電子デバイスに記憶することと、
を含む、請求項８８から９０のいずれか一項に記載のシステム。
【請求項９２】
前記要求に基づきクエリを決定することが、前記第１の電子デバイスで前記クエリを決定することを含む、請求項９１に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は概してアプリケーションとインターフェースをとることに関し、特に、デジタルアシスタントとのアプリケーション統合技術に関する。
【背景技術】
【０００２】
デジタルアシスタントは、ユーザがユーザデバイス上で各種機能を実行するのを助けることができる。例えば、デジタルアシスタントは、ユーザに自然言語インターフェースを提供しながら、アラームの設定、天気の最新情報の提供、ローカル及びインターネット上の両方での検索の実行、を可能にする。しかしながら、既存のデジタルアシスタントは、ユーザデバイス上でローカルに保存されているアプリケーション等、特に第三者アプリケーションを有効に統合することができない。従って、既存のデジタルアシスタントは、このようなアプリケーションとの自然言語インターフェースを提供することができない。
【発明の概要】
【０００３】
例示の方法を本明細書で開示する。ある例示の方法は、１つ以上のプロセッサとタッチ感知ディスプレイとを有する電子デバイスにおいて、自然言語ユーザ入力を含むオーディオ入力を受信することと、インテントオブジェクトセットのうちのインテントオブジェクトを特定し、該インテントオブジェクトは自然言語ユーザ入力から導出されることと、インテントオブジェクトセットのうちのインテントオブジェクトと関連付けられたソフトウェアアプリケーションを特定することと、インテントオブジェクトをソフトウェアアプリケーションに提供して、ソフトウェアアプリケーションにインテントオブジェクトと関連付けられたタスクを実行させることと、ソフトウェアアプリケーションからタスクの実行が成功したか否かを示す結果応答を受信することと、タスクが実行されたか否かを示す出力を提供することと、を含む。
【０００４】
ある例示の方法は、それぞれが１つ以上のプロセッサを有する１つ以上の電子デバイスにおいて、自然言語ユーザ入力を含むオーディオ入力を受信することと、自然言語ユーザ入力から文字列を取得することと、文字列に基づきインテントオブジェクトセットのうちのインテントオブジェクトを決定することと、インテントオブジェクトセットのうちのインテントオブジェクトと関連付けられたソフトウェアアプリケーションを決定することと、インテントオブジェクトをソフトウェアアプリケーションに提供して、ソフトウェアアプリケーションにインテントオブジェクトと関連付けられたタスクを実行させることと、ソフトウェアアプリケーションからタスクの実行が成功したか否かを示す結果応答を受信することと、タスクが実行されたか否かを示す出力を提供することと、を含む。
【０００５】
ある例示の方法は、１つ以上のプロセッサを有する電子デバイスにおいて、自然言語ユーザ入力を受信することと、インテントオブジェクトセットのうちのインテントオブジェクトと関連付けられたソフトウェアアプリケーションを特定することと、第２の電子デバイスからソフトウェアアプリケーションと関連付けられたタスクフローを受信することと、インテントオブジェクトをソフトウェアアプリケーションに提供して、ソフトウェアアプリケーションにインテントオブジェクトと関連付けられたタスクを実行させることと、ソフトウェアアプリケーションから要求を受信することと、要求に基づきクエリを決定することであって、該クエリがタスクフローに従って決定される、ことと、タッチ感知ディスプレイを用いてクエリを提供することと、クエリを提供した後、クエリ応答を示す第２のユーザ入力を受信することと、クエリ応答をソフトウェアアプリケーションに提供することと、を含む。
【０００６】
ある例示の方法は、それぞれが１つ以上のプロセッサを有する１つ以上の電子デバイスにおいて、インテントオブジェクトセットのうちのインテントオブジェクトを決定することと、インテントオブジェクトセットのうちのインテントオブジェクトと関連付けられたソフトウェアアプリケーションを特定することと、ソフトウェアアプリケーションと関連付けられたタスクフローを決定することと、インテントオブジェクトをソフトウェアアプリケーションに提供して、ソフトウェアアプリケーションにインテントオブジェクトと関連付けられたタスクを実行させることと、ソフトウェアアプリケーションから要求を受信することと、要求に基づきクエリを決定することであって、該クエリがタスクフローに従って決定される、ことと、タッチ感知ディスプレイを用いてクエリを提供することと、クエリを提供した後、クエリ応答を示す第２のユーザ入力を受信することと、クエリ応答をソフトウェアアプリケーションに提供することと、を含む。
【０００７】
例示の非一時的コンピュータ可読媒体を本明細書で開示する。ある例示の非一時的コンピュータ可読記憶媒体は１つ以上のプログラムを記憶する。この１つ以上のプログラムは、電子デバイスの１つ以上のプロセッサによって実行されたときに、電子デバイスに、自然言語ユーザ入力を含むオーディオ入力を受信させ、インテントオブジェクトセットのうちのインテントオブジェクトであって、該インテントオブジェクトは自然言語ユーザ入力から導出される、インテントオブジェクトを特定させ、インテントオブジェクトセットのうちのインテントオブジェクトと関連付けられたソフトウェアアプリケーションを特定させ、インテントオブジェクトをソフトウェアアプリケーションに提供させて、ソフトウェアアプリケーションにインテントオブジェクトと関連付けられたタスクを実行させ、ソフトウェアアプリケーションからタスクの実行が成功したか否かを示す結果応答を受信させ、タスクが実行されたか否かを示す出力を提供させる、命令を備える。
【０００８】
ある例示の非一時的コンピュータ可読記憶媒体は１つ以上のプログラムを記憶する。１つ以上のプログラムは、電子デバイスの１つ以上のプロセッサによって実行されたときに、電子デバイスに、自然言語ユーザ入力を含むオーディオ入力を受信させ、自然言語ユーザ入力から文字列を取得させ、文字列に基づきインテントオブジェクトセットのうちのインテントオブジェクトを決定させ、インテントオブジェクトセットのうちのインテントオブジェクトと関連付けられたソフトウェアアプリケーションを決定させ、インテントオブジェクトをソフトウェアアプリケーションに提供させて、ソフトウェアアプリケーションにインテントオブジェクトと関連付けられたタスクを実行させ、ソフトウェアアプリケーションからタスクの実行が成功したか否かを示す結果応答を受信させ、タスクが実行されたか否かを示す出力を提供させる、命令を備える。
【０００９】
ある例示の非一時的コンピュータ可読記憶媒体は１つ以上のプログラムを記憶する。この１つ以上のプログラムは、１つ以上の電子デバイスの１つ以上のプロセッサによって実行されたときに、１つ以上の電子デバイスに、自然言語ユーザ入力を受信させ、インテントオブジェクトセットのうちのインテントオブジェクトと関連付けられたソフトウェアアプリケーションを特定させ、第２の電子デバイスからソフトウェアアプリケーションと関連付けられたタスクフローを受信させ、インテントオブジェクトをソフトウェアアプリケーションに提供させて、ソフトウェアアプリケーションにインテントオブジェクトと関連付けられたタスクを実行させ、ソフトウェアアプリケーションから要求を受信させ、要求に基づきクエリであって、該クエリがタスクフローに従って決定される、クエリを決定させ、タッチ感知ディスプレイを用いてクエリを提供させ、クエリを提供した後、クエリ応答を示す第２のユーザ入力を受信させ、クエリ応答をソフトウェアアプリケーションに提供させる、命令を備える。
【００１０】
ある例示の非一時的コンピュータ可読記憶媒体は１つ以上のプログラムを記憶する。この１つ以上のプログラムは１つ以上の電子デバイスの１つ以上のプロセッサによって実行されたときに、１つ以上の電子デバイスに、インテントオブジェクトセットのうちのインテントオブジェクトを決定させ、インテントオブジェクトセットのうちのインテントオブジェクトと関連付けられたソフトウェアアプリケーションを特定させ、ソフトウェアアプリケーションと関連付けられたタスクフローを決定させ、インテントオブジェクトをソフトウェアアプリケーションに提供させて、ソフトウェアアプリケーションにインテントオブジェクトと関連付けられたタスクを実行させ、ソフトウェアアプリケーションから要求を受信させ、要求に基づきクエリであって、該クエリがタスクフローに従って決定される、クエリを決定させ、タッチ感知ディスプレイを用いてクエリを提供させ、クエリを提供した後、クエリ応答を示す第２のユーザ入力を受信させ、クエリ応答をソフトウェアアプリケーションに提供させる、命令を備える。
【００１１】
例示の電子デバイス及びシステムを本明細書で開示する。ある例示の電子デバイスは、１つ以上のプロセッサと、メモリと、１つ以上のプログラムとを備え、この１つ以上のプログラムは、メモリに記憶され、１つ以上のプロセッサによって実行されるように構成されており、この１つ以上のプログラムは、自然言語ユーザ入力を含むオーディオ入力を受信し、インテントオブジェクトセットのうちのインテントオブジェクトであって、該インテントオブジェクトは自然言語ユーザ入力から導出する、インテントオブジェクトを特定し、インテントオブジェクトセットのうちのインテントオブジェクトと関連付けられたソフトウェアアプリケーションを特定し、インテントオブジェクトをソフトウェアアプリケーションに提供して、ソフトウェアアプリケーションにインテントオブジェクトと関連付けられたタスクを実行させ、ソフトウェアアプリケーションからタスクの実行が成功したか否かを示す結果応答を受信させ、タスクが実行されたか否かを示す出力を提供する、命令とを含む。
【００１２】
ある例示のシステムは、１つ以上の電子デバイスの１つ以上のプロセッサと、１つ以上の電子デバイスの１つ以上のメモリと、１つ以上のプログラムとを備え、この１つ以上のプログラムは、１つ以上のメモリに記憶され、１つ以上のプロセッサによって実行されるように構成されており、この１つ以上のプログラムは、自然言語ユーザ入力を含むオーディオ入力を受信し、自然言語ユーザ入力から文字列を取得し、文字列に基づきインテントオブジェクトセットのうちのインテントオブジェクトを決定し、インテントオブジェクトセットのうちのインテントオブジェクトと関連付けられたソフトウェアアプリケーションを決定し、インテントオブジェクトをソフトウェアアプリケーションに提供させて、ソフトウェアアプリケーションにインテントオブジェクトと関連付けられたタスクを実行させ、ソフトウェアアプリケーションからタスクの実行が成功したか否かを示す結果応答を受信し、タスクが実行されたか否かを示す出力を提供する、命令とを含む。
【００１３】
ある例示の電子デバイスは、１つ以上のプロセッサと、メモリと、１つ以上のプログラムとを備え、この１つ以上のプログラムは、メモリに記憶され、１つ以上のプロセッサによって実行されるように構成されており、この１つ以上のプログラムは、自然言語ユーザ入力を受信し、インテントオブジェクトセットのうちのインテントオブジェクトと関連付けられたソフトウェアアプリケーションを特定し、第２の電子デバイスからソフトウェアアプリケーションと関連付けられたタスクフローを受信し、インテントオブジェクトをソフトウェアアプリケーションに提供させて、ソフトウェアアプリケーションにインテントオブジェクトと関連付けられたタスクを実行させ、ソフトウェアアプリケーションから要求を受信し、要求に基づきクエリであって、該クエリがタスクフローに従って決定される、クエリを決定し、タッチ感知ディスプレイを用いてクエリを提供し、クエリを提供した後、クエリ応答を示す第２のユーザ入力を受信し、クエリ応答をソフトウェアアプリケーションに提供する、命令を含む。
【００１４】
ある例示のシステムは、１つ以上の電子デバイスの１つ以上のプロセッサと、１つ以上の電子デバイスの１つ以上のメモリと、１つ以上のプログラムとを含み、この１つ以上のプログラムは、１つ以上のメモリに記憶され、１つ以上のプロセッサによって実行されるように構成されており、この１つ以上のプログラムは、インテントオブジェクトセットのうちのインテントオブジェクトを決定し、インテントオブジェクトセットのうちのインテントオブジェクトと関連付けられたソフトウェアアプリケーションを特定し、ソフトウェアアプリケーションと関連付けられたタスクフローを決定し、インテントオブジェクトをソフトウェアアプリケーションに提供させて、ソフトウェアアプリケーションにインテントオブジェクトと関連付けられたタスクを実行させ、ソフトウェアアプリケーションから要求を受信し、要求に基づきクエリであって、該クエリがタスクフローに従って決定される、クエリを決定し、タッチ感知ディスプレイを用いてクエリを提供し、クエリを提供した後、クエリ応答を示す第２のユーザ入力を受信し、クエリ応答をソフトウェアアプリケーションに提供する、命令を含む。
【００１５】
ある例示の電子デバイスは、自然言語ユーザ入力を含むオーディオ入力を受信する手段と、インテントオブジェクトセットのうちのインテントオブジェクトを特定し、該インテントオブジェクトは自然言語ユーザ入力から導出される、手段と、インテントオブジェクトセットのうちのインテントオブジェクトと関連付けられたソフトウェアアプリケーションを特定する手段と、インテントオブジェクトをソフトウェアアプリケーションに提供して、ソフトウェアアプリケーションにインテントオブジェクトと関連付けられたタスクを実行させる手段と、ソフトウェアアプリケーションからタスクの実行が成功したか否かを示す結果応答を受信する手段と、タスクが実行されたか否かを示す出力を提供する手段と、を備える。
【００１６】
ある例示のシステムは、自然言語ユーザ入力を含むオーディオ入力を受信する手段と、自然言語ユーザ入力から文字列を取得する手段と、文字列に基づきインテントオブジェクトセットのうちのインテントオブジェクトを決定する手段と、インテントオブジェクトセットのうちのインテントオブジェクトと関連付けられたソフトウェアアプリケーションを決定する手段と、インテントオブジェクトをソフトウェアアプリケーションに提供して、ソフトウェアアプリケーションにインテントオブジェクトと関連付けられたタスクを実行させる手段と、ソフトウェアアプリケーションからタスクの実行が成功したか否かを示す結果応答を受信する手段と、タスクが実行されたか否かを示す出力を提供する手段と、を備える。
【００１７】
ある例示の電子デバイスは、自然言語ユーザ入力を受信する手段と、インテントオブジェクトセットのうちのインテントオブジェクトと関連付けられたソフトウェアアプリケーションを特定する手段と、第２の電子デバイスからソフトウェアアプリケーションと関連付けられたタスクフローを受信する手段と、インテントオブジェクトをソフトウェアアプリケーションに提供して、ソフトウェアアプリケーションにインテントオブジェクトと関連付けられたタスクを実行させる手段と、ソフトウェアアプリケーションから要求を受信する手段と、要求に基づきクエリを決定する手段であって、該クエリがタスクフローに従って決定される、手段と、タッチ感知ディスプレイを用いてクエリを提供する手段と、クエリを提供した後、クエリ応答を示す第２のユーザ入力を受信する手段と、クエリ応答をソフトウェアアプリケーションに提供する手段と、を備える。
【００１８】
ある例示のシステムは、インテントオブジェクトセットのうちのインテントオブジェクトを決定する手段と、インテントオブジェクトセットのうちのインテントオブジェクトと関連付けられたソフトウェアアプリケーションを特定する手段と、ソフトウェアアプリケーションと関連付けられたタスクフローを決定する手段と、インテントオブジェクトをソフトウェアアプリケーションに提供して、ソフトウェアアプリケーションにインテントオブジェクトと関連付けられたタスクを実行させる手段と、ソフトウェアアプリケーションから要求を受信する手段と、要求に基づきクエリを決定する手段であって、該クエリがタスクフローに従って決定される、手段と、タッチ感知ディスプレイを用いてクエリを提供する手段と、クエリを提供した後、クエリ応答を示す第２のユーザ入力を受信する手段と、クエリ応答をソフトウェアアプリケーションに提供する手段と、を備える。
説明される各種実施形態の理解を深めるため、以下の図面と併せて後述の発明を実施するための形態を参照すべきである。全図面を通じて、同一の参照符号は対応する部分を指す。
【図面の簡単な説明】
【００１９】
【図１】各種実施例に係るデジタルアシスタントを実装するシステム及び環境を示すブロック図である。
【図２Ａ】いくつかの実施形態に係るデジタルアシスタントのクライアント側部を実装するポータブル多機能デバイスを示すブロック図である。
【図２Ｂ】各種実施例に係る事象処理のための例示的要素を示すブロック図である。
【図３】各種実施例に係るデジタルアシスタントのクライアント側部を実装するポータブル多機能デバイスを示す図である。
【図４】各種実施例に係るディスプレイとタッチ感知面とを備える例示的多機能デバイスのブロック図である。
【図５Ａ】各種実施例に係るポータブル多機能デバイスのアプリケーションメニュー用の例示的ユーザインタフェースを示す図である。
【図５Ｂ】各種実施例に係るディスプレイから分離された、タッチ感知面を備える多機能デバイス用の例示的ユーザインタフェースを示す図である。
【図６Ａ】各種実施例に係るパーソナル電子デバイスを示す図である。
【図６Ｂ】各種実施例に係るパーソナル電子デバイスを示すブロック図である。
【図７Ａ】各種実施例に係るデジタルアシスタントシステム又はそのサーバ部を示すブロック図である。
【図７Ｂ】各種実施例に係る図７Ａに示すデジタルアシスタントの機能を示す図である。
【図７Ｃ】各種実施形態に係るオントロジの一部を示す図である。
【図８】いくつかの実施形態に係るデジタルアシスタントを動作させるプロセスを示すフロー図である。
【図９】いくつかの実施形態に係るデジタルアシスタントを動作させるプロセスを示すフロー図である。
【図１０Ａ】いくつかの実施形態に係る電子デバイスの例示的ユーザインタフェースを示す図である。
【図１０Ｂ】いくつかの実施形態に係る電子デバイスの例示的ユーザインタフェースを示す図である。
【図１０Ｃ】いくつかの実施形態に係る電子デバイスの例示的ユーザインタフェースを示す図である。
【図１０Ｄ】いくつかの実施形態に係るデジタルアシスタントシステムの例示的データフローを示す図である。
【図１０Ｅ】いくつかの実施形態に係るデジタルアシスタントシステムの例示的データフローを示す図である。
【図１１】いくつかの実施形態に係るデジタルアシスタントを動作させるプロセスを示すフロー図である。
【図１２】いくつかの実施形態に係るデジタルアシスタントを動作させるプロセスを示すフロー図である。
【図１３Ａ】いくつかの実施形態に係る電子デバイスの例示的ユーザインタフェースを示す図である。
【図１３Ｂ】いくつかの実施形態に係る電子デバイスの例示的ユーザインタフェースを示す図である。
【図１４】いくつかの実施形態に係る電子デバイスの機能ブロック図である。
【図１５】いくつかの実施形態に係る電子デバイスの機能ブロック図である。
【図１６】いくつかの実施形態に係る電子デバイスの機能ブロック図である。
【図１７】いくつかの実施形態に係る電子デバイスの機能ブロック図である。
【発明を実施するための形態】
【００２０】
以下の本開示及び実施形態の説明においては、実行することができる特定の実施形態を例示的に示す添付図面を参照する。なお、本開示の範囲を逸脱せずに、他の実施形態及び実施例も実行可能であると理解すべきである。
【００２１】
以下の説明では、各種要素を説明するために「第１」、「第２」などの文言を使用するが、これらの要素は上記文言によって限定されるべきではない。これらの文言は単に要素を区別するために使用される。例えば、説明される各種実施形態の範囲を逸脱せずに、第１の入力は第２の入力と称することができ、同様に、第２の入力は第１の入力と称することができる。第１の入力及び第２の入力はいずれも出力であってもよく、場合によっては、別個の異なる入力であってもよい。
【００２２】
本明細書における各種実施形態の説明で使用される文言は、単に特定の実施形態を説明するためのものであり、本発明を限定することを目的としていない。各種実施形態及び添付の請求項の説明で使用されるとき、単数形「ａ」、「ａｎ」及び「ｔｈｅ」は特段明示されない限り、複数も含むことを目的とする。また、本明細書で使用されるとき、「及び／又は」という文言は、対応付けられて列挙される１つ以上のアイテムの任意の又は全ての可能な組合せを指し、包含すると理解される。更に、本明細書で使用されるとき、「含む」、「含んで」、「備える」及び／又は「備えて」という文言は、記載される特徴、整数、ステップ、動作、要素及び／又は部品の存在を明示するが、１つ以上のその他の特徴、整数、ステップ、動作、要素、部品及び／又はそれらの群の存在又は追加を排除するものではないと理解される。
【００２３】
「場合」という文言は、コンテキストに応じて、「とき」若しくは「時」又は「判定に応じて」若しくは「検出に応じて」を意味するように解釈することができる。同様に、「判定される場合」又は「［記載される状態又は事象］が検出される場合」という句は、コンテキストに応じて、「判定時」若しくは「判定に応じて」又は「［記載される状態又は事象］の検出時」若しくは「［記載される状態又は事象］の検出に応じて」を意味するように解釈することができる。
１．システム及び環境
【００２４】
図１は、各種実施形態に係るシステム１００のブロック図である。いくつかの例では、システム１００はデジタルアシスタントを実装することができる。「デジタルアシスタント」、「仮想アシスタント」、「インテリジェント自動アシスタント」、又は「自動デジタルアシスタント」という用語は、口頭及び／又は文字形式の自然言語入力を解釈してユーザの意図を推測し、推測されたユーザの意図に基づきアクション（たとえば、タスク）を実行する任意の情報処理システムを指すことができる。例えば、推測されたユーザの意図に基づき動作するため、システムは、推測されたユーザの意図を実現するように設計されたステップ及びパラメータを備えるタスクフローを特定すること、推測されたユーザの意図からの具体的な要求をタスクフローに入力すること、プログラム、方法、サービス、ＡＰＩなどを呼び出すことによってタスクフローを実行すること、可聴（たとえば、音声）及び／又は可視形式でユーザへの出力応答を生成すること、のうち１つ以上を実行することができる。
【００２５】
具体的には、デジタルアシスタントは、少なくとも部分的に自然言語のコマンド、要求、ステートメント、話及び／又は問い合わせの形式でユーザの要求を受け入れることができる。通常、ユーザ要求は、デジタルアシスタントによる情報の回答又はタスクの実行を求めることができる。ユーザ要求に対する満足のいく応答は、要求された情報の回答の提供、要求されたタスクの実行又は両者の組合せとすることができる。例えば、ユーザは「私は今どこにいますか」等の質問をデジタルアシスタントに問いかけることができる。ユーザの現在位置に基づき、デジタルアシスタントは、「あなたはウエストゲート近くのセントラルパークにいます」と回答することができる。また、ユーザは、例えば「私の友人を来週の私のガールフレンドの誕生日パーティに招待してください」というタスクの実行を要求することができる。これに応じて、デジタルアシスタントは、「はい、ただいま」と言い、ユーザに代わってユーザの電子アドレス帳に載せられたユーザの友人それぞれに適切な日程の招待を送ることによって要求に応じることができる。要求されたタスクの実行中、デジタルアシスタントは、長時間にわたって複数の情報交換を含む連続的な会話でユーザと対話することがある。デジタルアシスタントと対話して、情報又は各種タスクの実行を要求する方法は他にも多数存在する。口頭応答の提供とプログラムされたアクションの実行に加えて、デジタルアシスタントは、その他の可視又は可聴形式で、例えば、文字、警告、音楽、映像、動画などとして応答を提供することもできる。
【００２６】
図１に示すように、いくつかの実施例では、デジタルアシスタントは、クライアント−サーバモデルに応じて実装されることができる。デジタルアシスタントは、ユーザデバイス１０４で実行されるクライアント側部１０２（以下「ＤＡクライアント１０２」と称する）とサーバシステム１０８で実行されるサーバ側部１０６（以下「ＤＡサーバ１０６」と称する）とを含むことができる。ＤＡクライアント１０２は、１つ以上のネットワーク１１０を通じてＤＡサーバ１０６と通信することができる。ＤＡクライアント１０２は、ユーザ対応入力及び出力処理機能やＤＡサーバ１０６との通信などのクライアント側機能を提供することができる。ＤＡサーバ１０６は、各自のユーザデバイス１０４に備わる任意の数のＤＡクライアント１０２用のサーバ側機能を提供することができる。
【００２７】
いくつかの実施例では、ＤＡサーバ１０６はクライアント対応Ｉ／Ｏインターフェース１１２と、１つ以上の処理モジュール１１４と、データ及びモデル１１６と、外部サービス１１８とのＩ／Ｏインターフェースとを含むことができる。クライアント対応Ｉ／Ｏインターフェース１１２は、ＤＡサーバ１０６のクライアント対応入力及び出力処理を簡易化することができる。１つ以上の処理モジュール１１４はデータ及びモデル１１６を利用して、音声入力を処理し、自然言語入力に基づきユーザの意図を定義することができる。更に、１つ以上の処理モジュール１１４は、推測されたユーザの意図に基づきタスクを実行することができる。いくつかの実施例では、ＤＡサーバ１０６は、タスク完了又は情報取得のためにネットワーク１１０を通じて外部サービス１２０と通信することができる。外部サービス１１８とのＩ／Ｏインターフェースはこのような通信を簡易化することができる。
【００２８】
ユーザデバイス１０４は任意の適切な電子デバイスとすることができる。例えば、ユーザデバイスは、ポータブル多機能デバイス（例えば、図２Ａを参照して後述するデバイス２００）、多機能デバイス（例えば、図４を参照して後述するデバイス４００）又はパーソナル電子デバイス（例えば、図６Ａ及び図６Ｂを参照して後述するデバイス６００）とすることができる。ポータブル多機能デバイスは、例えば、ＰＤＡ及び／又は音楽プレーヤ機能などのその他の機能を含む携帯電話とすることができる。ポータブル多機能デバイスの具体的な例としては、カリフォルニア州クパチーノのＡｐｐｌｅ社製のｉＰｈｏｎｅ（登録商標）、ｉＰｏｄ  Ｔｏｕｃｈ（登録商標）及びｉＰａｄ（登録商標）などが挙げられる。ポータブル多機能デバイスの他の例としては、ラップトップ又はタブレットコンピュータが挙げられるが、それらに限定されない。更に、いくつかの実施例では、ユーザデバイス１０４は非ポータブル多機能デバイスとすることができる。特に、ユーザデバイス１０４はデスクトップコンピュータ、ゲームコンソール、テレビ又はテレビセットトップボックスとすることができる。いくつかの実施例では、ユーザデバイス１０４はタッチ感知面（例えば、タッチスクリーンディスプレイ及び／又はタッチパッド）を含むことができる。更に、ユーザデバイス１０４は、物理的なキーボード、マウス及び／又はジョイスティックなどの１つ以上のその他の物理的ユーザインタフェースデバイスを任意で含むことができる。多機能デバイスなどの電子デバイスの各種実施例を以下より詳細に説明する。
【００２９】
通信ネットワーク１１０の例としては、ローカルエリアネットワーク（ＬＡＮ）及びワイドエリアネットワーク（ＷＡＮ）、例えば、インターネットなどが挙げられる。通信ネットワーク１１０は、各種有線又は無線プロトコルを含む任意の既知のネットワークプロトコル、例えば、イーサネット（登録商標）、ユニバーサルシリアルバス（ＵＳＢ）、ファイアワイヤ、移動通信用のグローバルシステム（ＧＳＭ（登録商標））、拡張データＧＳＭ環境（ＥＤＧＥ）、符号分割多元接続（ＣＤＭＡ）、時分割多元接続（ＴＤＭＡ）、Ｂｌｕｅｔｏｏｔｈ、Ｗｉ−Ｆｉ、ボイスオーバー・インターネット・プロトコル（ＶｏＩＰ）、Ｗｉ−ＭＡＸ、又はその他の任意の適切な通信プロトコルを用いて実装することができる。
【００３０】
サーバシステム１０８は、１つ以上のスタンドアローンデータ処理装置又はコンピュータの分散ネットワークに実装することができる。いくつかの実施例では、サーバシステム１０８は、各種仮想デバイス及び／又は第三者サービスプロバイダ（例えば、第三者クラウドサービスプロバイダ）のサービスを採用して、サーバシステム１０８の基本的なコンピューティングリソース及び／又はインフラリソースを提供することもできる。
【００３１】
いくつかの実施例では、ユーザデバイス１０４は、第２のユーザデバイス１２２を介してＤＡサーバ１０６と通信することができる。第２のユーザデバイス１２２はユーザデバイス１０４と類似又は同一であり得る。例えば、第２のユーザデバイス１２２は、図２Ａ、図４、図６Ａ及び図６Ｂを参照して後述するデバイス２００、４００又は６００と類似し得る。ユーザデバイス１０４は、Ｂｌｕｅｔｏｏｔｈ、ＮＦＣ、ＢＴＬＥなどの直接通信接続又はローカルＷｉ−Ｆｉネットワークなどの有線若しくは無線ネットワークを介して第２のユーザデバイス１２２と通信可能に接続されるように構成することができる。いくつかの実施例では、第２のユーザデバイス１２２は、ユーザデバイス１０４とＤＡサーバ１０６との間のプロクシとして作用するように構成することができる。例えば、ユーザデバイス１０４のＤＡクライアント１０２は、第２のユーザデバイス１２２を介して、情報（例えば、ユーザデバイス１０４で受信されたユーザ要求）をＤＡサーバ１０６に送信するように構成することができる。ＤＡサーバ１０６は情報を処理し、第２のユーザデバイス１２２を介して関連データ（例えば、ユーザ要求に応答するデータコンテンツ）をユーザデバイス１０４に返信することができる。
【００３２】
いくつかの実施例では、ユーザデバイス１０４は、第２のユーザデバイス１２２にデータの短縮要求を通信し、ユーザデバイス１０４から送信される情報量を低減するように構成することができる。第２のユーザデバイス１２２は、補足情報を決定し、短縮要求に追加し、完全要求を生成してＤＡサーバ１０６に送信するように構成することができる。このシステムのアーキテクチャによって、有限の通信能力及び／又は有限のバッテリパワー（例えば、腕時計又は類似のコンパクトな電子デバイス）を有するユーザデバイス１０４は、大きな通信能力及び／又はバッテリパワー（例えば、携帯電話、ラップトップコンピュータ、タブレットコンピュータなど）を有する第２のユーザデバイス１２２をＤＡサーバ１０６の代わりに使用することによって、ＤＡサーバ１０６が提供するサービスに好適にアクセスすることができる。２つのユーザデバイス１０４及び１２２しか図１に示されていないが、システム１００はこのプロクシ構造で構成されてＤＡサーバシステム１０６と通信する任意の数及び種類のユーザデバイスを含むことができると理解すべきである。
【００３３】
図１に示すデジタルアシスタントはクライアント側部（たとえば、ＤＡクライアント１０２）及びサーバ側部（たとえば、ＤＡサーバ１０６）の両方を含むことができるが、いくつかの実施例では、デジタルアシスタントの機能は、ユーザデバイスにインストールされたスタンドアローンのアプリケーションとして実行することができる。また、デジタルアシスタントのクライアント部とサーバ部との間の機能の分割は、様々な実装形態で変動させることができる。例えば、いくつかの実施例では、ＤＡクライアントは、ユーザ対応入力及び出力処理機能のみを提供し、デジタルアシスタントの他の全機能をバックエンドサーバに移管させるシンクライアントとすることができる。
２．電子デバイス
【００３４】
ここで、デジタルアシスタントのクライアント側部分を実現するための電子デバイスの実施形態に注意を向ける。図２Ａは、いくつかの実施形態によるタッチ感知ディスプレイシステム２１２を備えたポータブル多機能デバイス２００を示すブロック図である。タッチ感知ディスプレイ２１２は、便宜上、「タッチスクリーン」と呼ばれることもあり、「タッチ感知ディスプレイシステム」として知られる又は呼ばれることもある。デバイス２００は、メモリ２０２（任意選択的に一つ以上のコンピュータ可読記憶媒体を含む）、メモリコントローラ２２２、一つ以上の処理ユニット（ＣＰＵ）２２０、周辺機器インターフェース２１８、ＲＦ回路２０８、オーディオ回路２１０、スピーカ２１１、マイクロホン２１３、入出力（Ｉ／Ｏ）サブシステム２０６、他の入力コントロールデバイス２１６、及び外部ポート２２４を含む。デバイス２００は任意選択的に、一つ以上の光センサ２６４を含む。デバイス２００は任意選択的に、デバイス２００上の接触強度を検出するための一つ以上の接触強度センサ２６５を含む（例えば、デバイス２００のタッチ感知ディスプレイシステム２１２等のタッチ感知面）。デバイス２００は任意選択的に、デバイス２００上の触知出力を生成するための一つ以上の触知出力生成器２６７を含む（例えば、デバイス２００のタッチ感知ディスプレイシステム２１２又はデバイス４００のタッチパッド４５５等のタッチ感知面上に触知出力を生成する）。これらの構成要素は任意選択的に、一つ以上の通信バス又は信号線２０３上で通信を行う。
【００３５】
本明細書及び請求項で用いられる際、タッチ感知面上の接触の用語「強度」は、タッチ感知面上の接触（例えば、指接触）の力又は圧力（単位面積当たりの力）、又はタッチ感知面上の接触の力又は圧力の代替物（代用物）を指す。接触強度は、少なくとも四つの別個の値を含み、より一般的には、数百個の別個の値（例えば、少なくとも２５６個）を含む値の範囲を有する。接触強度は、任意選択的に、様々な方式及び様々なセンサ又はセンサの組合せを用いて決定（又は測定）される。例えば、タッチ感知面の下の又はそれに隣接する一つ以上の力センサを任意選択的に用いて、タッチ感知面上の様々な点における力を測定する。いくつかの実施形態では、複数の力センサからの力測定を組み合わせて（例えば、加重平均）、推定の接触力を決定する。同様に、スタイラスの感圧先端を任意選択的に用いて、タッチ感知面上のスタイラスの圧力を決定する。若しくは、タッチ感知面上で検出される接触面積のサイズ及び／又はその変化、及び／又は接触の近傍のタッチ感知面の抵抗及び／又はその変化を、任意選択的に、タッチ感知面上の接触力又は圧力の代替物として用いる。いくつかの実施形態では、接触力又は圧力の代替測定を用いて、強度閾値を超えたかどうかを直接決定する（例えば、強度閾値は、代替測定に対応する単位で説明される）。いくつかの実施形態では、接触力又は圧力の代替測定を推定力又は圧力に変換し、推定力又は圧力を用いて、強度閾値を超えたかどうかを決定する（例えば、強度閾値は圧力の単位で測定される圧力閾値である）。ユーザ入力の属性として接触強度を用いて、追加のデバイス機能へのユーザアクセスを可能にし、その機能は、そうでなければ、アフォーダンス（例えば、タッチ感知ディスプレイ上の）表示用及び／又はユーザ入力（例えば、タッチ感知ディスプレイ、タッチ感知面、又はノブ又はボタン等の物理的／機械的コントロールを介した）受取り用の領域が限られている小型のデバイス上ではアクセスできない可能性がある。
【００３６】
本明細書及び請求項で用いられる際、用語「触知出力」は、デバイスの以前の位置に対するデバイスの物理的変位、デバイスの別の構成要素（例えば、ハウジング）に対するある構成要素（例えば、タッチ感知面）の物理的変位、又はユーザの触覚を用いてユーザによって検出されるデバイスの重心に対する構成要素の変位を指す。例えば、デバイス又はデバイスの構成要素が、接触に敏感なユーザの面（例えば、指、手のひら、又はユーザの手の他の部分）と接触している状況では、物理的変位によって生成される触知出力が、デバイス又はデバイスの構成要素の物理的特性の認識された変化に対応する触感として解釈される。例えば、タッチ感知面（例えば、タッチ感知ディスプレイ又はトラックパッド）の移動は任意選択的に、物理アクチュエータボタンの「ダウンクリック」又は「アップクリック」としてユーザによって解釈される。いくつかの場合、ユーザの移動によって物理的に押される（例えば、変位させる）タッチ感知面に関連した物理アクチュエータボタンの移動がない場合でさえ、「ダウンクリック」又は「アップクリック」等の触感を感じることができる。別の例として、タッチ感知面の移動は任意選択的に、タッチ感知面の平滑度に変化がない場合でも、タッチ感知面の「粗さ」としてユーザによって解釈又は感知される。ユーザによる接触のこのような解釈はユーザの個人の知覚に影響されるが、大多数のユーザに共通である接触の多くの知覚がある。従って、触知出力がユーザの特定の知覚に対応するもの（例えば、「アップクリック」、「ダウンクリック」、「粗さ」）として説明される場合、特に明記されない限り、生成される触知出力はデバイス又はその構成要素の物理的な変位に対応し、一般的な（平均的な）ユーザ用に説明される知覚を生成できる。
【００３７】
当然のことながら、デバイス２００はポータブル多機能デバイスの一例にすぎず、デバイス２００は任意選択的に、図より多くの又は少ない構成要素を有するか、任意選択的に二つ以上の構成要素を組み合わせるか、又は任意選択的に構成要素の異なる構成又は配置を有する。図２Ａに示した様々な構成要素は、一つ以上の信号処理及び／又は特定用途向け集積回路を含むハードウェア、ソフトウェア、又はハードウェアとソフトウェアの両方の組合せで実現される。
【００３８】
メモリ２０２は、一つ以上のコンピュータ可読記憶媒体を含んでいてもよい。コンピュータ可読記憶媒体は、有形的であっても非一時的であってもよい。メモリ２０２は高速ランダムアクセスメモリを含んでいても、一つ以上の磁気ディスク記憶デバイス、フラッシュメモリデバイス、又は他の不揮発性ソリッドステートメモリデバイス等の不揮発性メモリを含んでいてもよい。メモリコントローラ２２２は、デバイス２００の他の構成要素によってメモリ２０２へのアクセスを制御できる。
【００３９】
いくつかの例では、メモリ２０２の非一時的コンピュータ可読記憶媒体を用いて、コンピュータベースシステム、プロセッサ格納システム、又は命令実行システム、装置又はデバイスから命令を取り出し、その命令を実行できる他のシステム等の命令実行システム、装置、又はデバイスで用いるために又はそれと共に（例えば、以降で説明される処理形態１１００の実行用の）命令を記憶できる。他の例では、命令（例えば、以降で説明される処理形態１１００の実行用）は、サーバシステム１０８の非一時的コンピュータ可読記憶媒体（図示せず）に記憶することも、メモリ２０２の非一時的コンピュータ可読媒体と、サーバシステム１０８の非一時的コンピュータ可読記憶媒体の間で分割することもできる。本文書のコンテキストでは、「非一時的コンピュータ可読記憶媒体」は、命令実行システム、装置、又はデバイスで用いるために又はそれと共にプログラムを格納又は記憶できる任意の媒体であってもよい。
【００４０】
周辺機器インターフェース２１８を用いて、ＣＰＵ２２０とメモリ２０２にデバイスの入出力周辺機器を結合できる。一つ以上のプロセッサ２２０は、メモリ２０２に記憶した様々なソフトウェアプログラム及び／又は命令セットを起動又は実行し、デバイス２００用の様々な機能を実行してデータを処理する。いくつかの実施形態では、周辺機器インターフェース２１８、ＣＰＵ２２０、及びメモリコントローラ２２２は、チップ２０４等の単一チップ上に実現できる。いくつかの他の実施形態では、それらは別個のチップ上に実現してもよい。
【００４１】
ＲＦ（高周波）回路２０８は、電磁信号とも呼ばれるＲＦ信号を送受信する。ＲＦ回路２０８は、電気信号と電磁信号を相互に変換し、電磁信号を介して通信ネットワーク及び他の通信デバイスと通信を行う。ＲＦ回路２０８は任意選択的に、これらの機能を実行する既知の回路を含み、アンテナシステム、ＲＦ送受信機、一つ以上の増幅器、チューナ、一つ以上の発信器、デジタル信号プロセッサ、コーデックチップセット、加入者識別モジュール（ＳＩＭ）カード、メモリ等を含むが、それらには限定されない。ＲＦ回路２０８は任意選択的に、ワールドワイドウェブ（ＷＷＷ）とも呼ばれるインターネット、イントラネット等のネットワーク、及び／又はセルラ電話ネットワーク、無線ローカルエリアネットワーク（ＬＡＮ）及び／又は都市規模ネットワーク（ＭＡＮ）、及び無線通信による他のデバイス等の無線ネットワークと通信を行う。ＲＦ回路２０８は任意選択的に、短距離通信ラジオ等によって近距離通信（ＮＦＣ）場を検出する既知の回路を含む。無線通信は任意選択的に、複数の通信規格、プロトコル、及び技術のいずれかを用い、移動通信用のグローバルシステム（ＧＳＭ）、拡張データＧＳＭ環境（ＥＤＧＥ）、高速ダウンリンクパケットアクセス（ＨＳＤＰＡ）、高速アップリンクパケットアクセス（ＨＳＵＰＡ）、エボリューションデータオンリー（ＥＶ−ＤＯ）、ＨＳＰＡ、ＨＳＰＡ＋、デュアルセルＨＳＰＡ（ＤＣ−ＨＳＰＤＡ）、ロングタームエボリューション（ＬＴＥ）、近距離通信（ＮＦＣ）、広帯域符号分割多元接続（Ｗ−ＣＤＭＡ）、符号分割多元接続（ＣＤＭＡ）、時分割多元接続（ＴＤＭＡ）、Ｂｌｕｅｔｏｏｔｈ、Ｂｌｕｅｔｏｏｔｈ  Ｌｏｗ  Ｅｎｅｒｇｙ（ＢＴＬＥ）、Ｗｉｒｅｌｅｓｓ  Ｆｉｄｅｌｉｔｙ（Ｗｉ−Ｆｉ）（例えば、ＩＥＥＥ８０２．１１ａ、ＩＥＥＥ８０２．１１ｂ、ＩＥＥＥ８０２．１１ｇ、ＩＥＥＥ８０２．１１ｎ、及び／又はＩＥＥＥ８０２．１１ａｃ）、ボイスオーバーインターネットプロトコル（ＶｏＩＰ）、Ｗｉ−ＭＡＸ、電子メール用のプロトコル（例えば、インターネットメッセージアクセスプロトコル（ＩＭＡＰ）及び／又はポストオフィスプロトコル（ＰＯＰ））、インスタントメッセージング（例えば、拡張可能なメッセージング及びプレゼンスプロトコル（ＸＭＰＰ）、インスタントメッセージング及びプレゼンスイベントパッケージのためのセッション開始プロトコル（ＳＩＭＰＬＥ）、インスタントメッセージング及びプレゼンスサービス（ＩＭＰＳ））、及び／又はショートメッセージサービス（ＳＭＳ）、又は本文書の出願日時点ではまだ開発されていない通信プロトコルを含む任意の他の適切な通信プロトコルを含むが、それらには限定されない。
【００４２】
オーディオ回路２１０、スピーカ２１１、及びマイクロホン２１３は、ユーザとデバイス２００の間にオーディオインタフェースを提供する。オーディオ回路２１０は、周辺機器インターフェース２１８からオーディオデータを受信し、オーディオデータを電気信号に変換し、電気信号をスピーカ２１１に送信する。スピーカ２１１は、電気信号を人間が聞こえる音波に変換する。また、オーディオ回路２１０は、音波からマイクロホン２１３によって変換された電気信号を受信する。オーディオ回路２１０は電気信号をオーディオデータに変換し、処理用の周辺機器インターフェース２１８にオーディオデータを送信する。オーディオデータは、周辺機器インターフェース２１８によってメモリ２０２及び／又はＲＦ回路２０８から取り出しても、そこに送信してもよい。また、いくつかの実施形態では、オーディオ回路２１０はヘッドセットジャック（例えば、図３の３１２）を含む。ヘッドセットジャックは、オーディオ回路２１０と、出力のみのヘッドホン又は出力（例えば、片耳又は両耳用のヘッドフォン）及び入力（例えば、マイクロホン）の両方を備えたヘッドセット等の着脱可能なオーディオ入出力周辺機器との間にインターフェースを提供する。
【００４３】
Ｉ／Ｏサブシステム２０６は、タッチスクリーン２１２及び他の入力コントロールデバイス２１６等のデバイス２００上の入出力周辺機器を周辺機器インターフェース２１８に結合する。Ｉ／Ｏサブシステム２０６は任意選択的に、ディスプレイコントローラ２５６、光センサコントローラ２５８、強度センサコントローラ２５９、触覚フィードバックコントローラ２６１、及び他の入力又は制御デバイス用の一つ以上の入力コントローラ２６０を含む。一つ以上の入力コントローラ２６０は、他の入力コントロールデバイス２１６と電気信号を送受信する。他の入力コントロールデバイス２１６は任意選択的に、物理ボタン（例えば、プッシュボタン、ロッカボタン等）、ダイヤル、スライダスイッチ、ジョイスティック、クリックホイール等を含む。いくつかの代替実施形態では、入力コントローラ２６０は任意選択的に、キーボード、赤外線ポート、ＵＳＢボート、及びマウス等のポインタデバイスのいずれかに結合される（又はなくてもよい）。一つ以上のボタン（例えば、図３の３０８）は任意選択的に、スピーカ２１１及び／又はマイクロホン２１３の音量コントロール用のアップ／ダウンボタンを含む。一つ以上のボタンは任意選択的に、プッシュボタン（例えば、図３の３０６）を含む。
【００４４】
プッシュボタンを素早く押すことで、タッチスクリーン２１２のロックを外すことも、米国特許出願１１／３２２，５４９の「ロック解除画像上でジェスチャを行うことによるデバイスのロック解除」、出願日２００５年１２月２３日、米国特許番号７，６５７，８４９に述べられているように、デバイスのロック解除を行うためにタッチスクリーン上のジェスチャを用いる処理を開始することもでき、この出願は、全体として参照によって組み込まれる。プッシュボタン（例えば、３０６）をより長く押すことで、デバイス２００の電源をオン又はオフにすることもできる。ユーザは、一つ以上のボタンの機能をカスタマイズすることもできる。タッチスクリーン２１２を用いて、仮想又はソフトボタン及び一つ以上のソフトキーボードを実現できる。
【００４５】
タッチ感知ディスプレイ２１２は、デバイスとユーザの間に入力インターフェース及び出力インターフェースを提供する。ディスプレイコントローラ２５６は、タッチスクリーン２１２と電気信号の送受信を行う。タッチスクリーン２１２は、ユーザに視覚出力を提供する。視覚出力は、グラフィクス、テキスト、アイコン、ビデオ、及びそれらの任意の組合せ（まとめて「グラフィクス」と呼ぶ）を含んでいてもよい。いくつかの実施形態では、視覚出力の一部又は全ては、ユーザインタフェースオブジェクトに対応してもよい。
【００４６】
タッチスクリーン２１２は、触覚及び／又は触知接触に基づいてユーザからの入力を受信するタッチ感知面、センサ、又はセンサセットを有する。タッチスクリーン２１２及びディスプレイコントローラ２５６は（任意の関連のモジュール及び／又はメモリ２０２内の命令セットと共に）、タッチスクリーン２１２上の接触（及び接触の任意の移動又は中断）を検出し、検出した接触を、タッチスクリーン２１２上に表示されるユーザインタフェースオブジェクト（例えば、一つ以上のソフトキー、アイコン、ウェブページ、又は画像）とのインタラクションに変換する。一例の実施形態では、タッチスクリーン２１２とユーザの間の接触点はユーザの指に対応する。
【００４７】
タッチスクリーン２１２は、ＬＣＤ（液晶ディスプレイ）技術、ＬＰＤ（発光ポリマーディスプレイ）技術、又はＬＥＤ（発光ダイオード）技術を用いてもよいが、他の実施形態では他のディスプレイ技術を用いてもよい。タッチスクリーン２１２とディスプレイコントローラ２５６は、容量式、抵抗式、赤外線、及び表面音響波技術、並びに他の近接センサアレイ又は他の素子を含むがそれらには限定されない、現在既知の又は後に開発される複数のタッチ感知技術のいずれかを用いて、接触及びその任意の移動又は中断を検出し、タッチスクリーン２１２との一つ以上の接触点を決定できる。一例の実施形態では、カリフォルニア州、クパチーノのＡｐｐｌｅ  Ｉｎｃ．からのｉＰｈｏｎｅ（登録商標）及びｉＰｏｄ  Ｔｏｕｃｈ（登録商標）内に見いだされるもの等の、投影型相互静電容量感知技術が用いられる。
【００４８】
タッチスクリーン２１２のいくつかの実施形態のタッチ感知ディスプレイは、次の米国特許６，３２３，８４６（Ｗｅｓｔｅｒｍａｎなど）、６，５７０，５５７（Ｗｅｓｔｅｒｍａｎなど）、及び／又は６，６７７，９３２（Ｗｅｓｔｅｒｍａｎ）、及び／又は米国特許公報２００２／００１５０２４Ａ１に述べられているマルチタッチ感知タッチパッドと同様であってもよく、それらは各々、ここで全体として参照によって組み込まれる。しかし、タッチスクリーン２１２はデバイス２００からの視覚出力を表示するが、タッチ感知タッチパッドは視覚出力を提供しない。
【００４９】
タッチスクリーン２１２のいくつかの実施形態のタッチ感知ディスプレイは、（１）米国特許出願第１１／３８１，３１３号の「Ｍｕｌｔｉｐｏｉｎｔ  Ｔｏｕｃｈ  Ｓｕｒｆａｃｅ  Ｃｏｎｔｒｏｌｌｅｒ」、出願日２００６年５月２日、（２）米国特許出願第１０／８４０，８６２号の「Ｍｕｌｔｉｐｏｉｎｔ  Ｔｏｕｃｈｓｃｒｅｅｎ」、出願日２００４年５月６日、（３）米国特許出願第１０／９０３，９６４号の「Ｇｅｓｔｕｒｅｓ Ｆｏｒ Ｔｏｕｃｈ Ｓｅｎｓｉｔｉｖｅ Ｉｎｐｕｔ Ｄｅｖｉｃｅｓ」、出願日２００４年７月３０日、（４）米国特許出願第１１／０４８，２６４号の「Ｇｅｓｔｕｒｅｓ Ｆｏｒ Ｔｏｕｃｈ Ｓｅｎｓｉｔｉｖｅ Ｉｎｐｕｔ Ｄｅｖｉｃｅｓ」、出願日２００５年１月３１日、（５）米国特許出願第１１／０３８，５９０号の「Ｍｏｄｅ−Ｂａｓｅｄ Ｇｒａｐｈｉｃａｌ Ｕｓｅｒ Ｉｎｔｅｒｆａｃｅｓ Ｆｏｒ Ｔｏｕｃｈ Ｓｅｎｓｉｔｉｖｅ Ｉｎｐｕｔ Ｄｅｖｉｃｅｓ」、出願日２００５年１月１８日、（６）米国特許出願第１１／２２８，７５８号の「Ｖｉｒｔｕａｌ Ｉｎｐｕｔ Ｄｅｖｉｃｅ Ｐｌａｃｅｍｅｎｔ Ｏｎ Ａ Ｔｏｕｃｈ Ｓｃｒｅｅｎ Ｕｓｅｒ Ｉｎｔｅｒｆａｃｅ」、出願日２００５年９月１６日、（７）米国特許出願第１１／２２８，７００号の「Ｏｐｅｒａｔｉｏｎ Ｏｆ Ａ Ｃｏｍｐｕｔｅｒ Ｗｉｔｈ Ａ Ｔｏｕｃｈ Ｓｃｒｅｅｎ Ｉｎｔｅｒｆａｃｅ」、出願日２００５年９月１６日、（８）米国特許出願第１１／２２８，７３７号の「Ａｃｔｉｖａｔｉｎｇ Ｖｉｒｔｕａｌ Ｋｅｙｓ Ｏｆ Ａ Ｔｏｕｃｈ−Ｓｃｒｅｅｎ Ｖｉｒｔｕａｌ Ｋｅｙｂｏａｒｄ」、出願日２００５年９月１６日、及び（９）米国特許出願第１１／３６７，７４９号の「Ｍｕｌｔｉ−Ｆｕｎｃｔｉｏｎａｌ Ｈａｎｄ−Ｈｅｌｄ Ｄｅｖｉｃｅ」、出願日２００６年３月３日等の出願に述べられたものであってもよい。これらの出願の全ては、全体として本明細書に参照によって組み込まれる。
【００５０】
タッチスクリーン２１２は、１００ｄｐｉ（約３９３７ドット／ｍ）を超えるビデオ解像度を有する。いくつかの実施形態では、タッチスクリーンは約１６０ｄｐｉ（約６２９９ドット／ｍ）のビデオ解像度を有する。ユーザは、スタイラス、指等の任意の適切なオブジェクト又は付属物を用いて、タッチスクリーン２１２に接触してもよい。いくつかの実施形態では、ユーザインタフェースは、最初に指ベースの接触及びジェスチャで動作するように設計され、それは、タッチスクリーン上の指の接触面積がより大きいため、スタイラスベースの入力より不正確になる可能性がある。いくつかの実施形態では、粗い指ベースの入力を正確なポインタ／カーソル位置又はコマンドに変換し、ユーザが望むアクションを実行する。
【００５１】
いくつかの実施形態では、タッチスクリーンに加えて、デバイス２００は、特定の機能の起動又は停止用のタッチパッド（図示せず）を含んでいてもよい。いくつかの実施形態では、タッチパッドは、タッチスクリーンとは異なり、視覚出力を表示しないデバイスのタッチ感知エリアである。タッチパッドは、タッチスクリーン２１２とは別個のタッチ感知面であっても、タッチスクリーンによって形成されるタッチ感知面の拡張部であってもよい。
【００５２】
また、デバイス２００は様々な構成要素を駆動する電力システム２６２を含む。電力システム２６２は、電力管理システム、一つ以上の電源（例えば、バッテリ、交流（ＡＣ））、充電システム、電力故障検出回路、電力変換器又はインバータ、電力状態インジケータ（例えば、発光ダイオード（ＬＥＤ））及びポータブルデバイス内の電力の生成、管理及び分配に関連した任意の他の構成要素を含んでいてもよい。
【００５３】
デバイス２００は、一つ以上の光センサ２６４を含んでいてもよい。図２Ａは、Ｉ／Ｏサブシステム２０６内の光センサコントローラ２５８に結合された光センサを示す。光センサ２６４は、電荷結合デバイス（ＣＣＤ）又は相補的金属酸化物半導体（ＣＭＯＳ）フォトトランジスタを含んでいてもよい。光センサ２６４は、環境からの光を受信し、一つ以上のレンズを介して投射し、画像を表すデータに光を変換する。撮像モジュール２４３（カメラモジュールとも呼ばれる）と共に、光センサ２６４は静止画像又はビデオを捕捉できる。いくつかの実施形態では、光センサは、デバイスの前面のタッチスクリーンディスプレイ２１２の逆側のデバイス２００の背面に配置され、タッチスクリーンディスプレイが静止画像及び／又はビデオ画像取得用のビューファインダとして使用できるようにする。いくつかの実施形態では、光センサはデバイスの前面に配置され、ユーザがタッチスクリーンディスプレイ上の他のテレビ会議参加者を観察している間、ユーザの画像がテレビ会議用に入手されるようにする。いくつかの実施形態では、光センサ２６４の位置はユーザによって変更可能であり（デバイスハウジング内のレンズ及びセンサを回転させることによって）、テレビ会議と静止及び／又はビデオ画像取得の両方に、タッチスクリーンディスプレイと共に光センサ２６４を使用できる。
【００５４】
また、デバイス２００は任意選択的に、一つ以上の接触強度センサ２６５を含む。図２Ａは、Ｉ／Ｏサブシステム２０６内の強度センサコントローラ２５９に結合した接触強度センサを示す。接触強度センサ２６５は任意選択的に、一つ以上のピエゾ抵抗ひずみゲージ、容量式力センサ、電気力センサ、圧電力センサ、光力センサ、容量式タッチ感知面、又は他の強度センサ（例えば、タッチ感知面上の接触の力（又は圧力）の測定に用いられるセンサ）を含む。接触強度センサ２６５は、環境から接触強度情報（例えば、圧力情報又は圧力情報の代用物）を受信する。いくつかの実施形態では、少なくとも一つの接触強度センサは、タッチ感知面（例えば、タッチ感知ディスプレイシステム２１２）に連結させるか、又は近接させる。いくつかの実施形態では、少なくとも一つの接触強度センサは、デバイス２００の前面に配置されるタッチスクリーンディスプレイ２１２の逆側のデバイス２００の背面に配置される。
【００５５】
デバイス２００は、一つ以上の近接センサ２６６を含んでいてもよい。図２Ａは、周辺機器インターフェース２１８に結合した近接センサ２６６を示す。若しくは、近接センサ２６６は、Ｉ／Ｏサブシステム２０６内の入力コントローラ２６０に結合できる。近接センサ２６６は、米国特許出願第１１／２４１，８３９号の「Ｐｒｏｘｉｍｉｔｙ Ｄｅｔｅｃｔｏｒ Ｉｎ Ｈａｎｄｈｅｌｄ Ｄｅｖｉｃｅ」、１１／２４０，７８８号の「Ｐｒｏｘｉｍｉｔｙ Ｄｅｔｅｃｔｏｒ Ｉｎ Ｈａｎｄｈｅｌｄ Ｄｅｖｉｃｅ」、１１／６２０，７０２号の「Ｕｓｉｎｇ Ａｍｂｉｅｎｔ Ｌｉｇｈｔ Ｓｅｎｓｏｒ Ｔｏ Ａｕｇｍｅｎｔ Ｐｒｏｘｉｍｉｔｙ Ｓｅｎｓｏｒ Ｏｕｔｐｕｔ」、１１／５８６、８６２号の「Ａｕｔｏｍａｔｅｄ Ｒｅｓｐｏｎｓｅ Ｔｏ Ａｎｄ Ｓｅｎｓｉｎｇ Ｏｆ Ｕｓｅｒ Ａｃｔｉｖｉｔｙ  Ｉｎ  Ｐｏｒｔａｂｌｅ  Ｄｅｖｉｃｅｓ」、及び１１／６３８，２５１号の「Ｍｅｔｈｏｄｓ Ａｎｄ Ｓｙｓｔｅｍｓ Ｆｏｒ Ａｕｔｏｍａｔｉｃ Ｃｏｎｆｉｇｕｒａｔｉｏｎ Ｏｆ Ｐｅｒｉｐｈｅｒａｌｓ」に述べられているように機能し、それらはここで全体として参照によって組み込まれる。いくつかの実施形態では、多機能デバイスがユーザの耳の近傍に配置されたとき（例えば、ユーザが電話を行うとき）、近接センサはタッチスクリーン２１２をオフにし停止させる。
【００５６】
また、デバイス２００は任意選択的に、一つ以上の触知出力生成器２６７を含む。図２Ａは、Ｉ／Ｏサブシステム２０６内の触覚フィードバックコントローラ２６１に結合した触知出力生成器を示す。触知出力生成器２６７は任意選択的に、スピーカ又は他のオーディオ構成要素等の一つ以上の電気音響デバイス、及び／又はモータ、ソレノイド、電気活性ポリマー、圧電アクチュエータ、静電アクチュエータ、又は他の触知出力生成構成要素（例えば、電気信号をデバイス上の触知出力に変換する構成要素）等のエネルギを直線運動に変換する電気機械的デバイスを含む。接触強度センサ２６５は、触覚フィードバックモジュール２３３から触知フィードバック生成命令を受信し、デバイス２００のユーザによって感知可能なデバイス２００上の触知出力を生成する。いくつかの実施形態では、少なくとも一つの触知出力生成器は、タッチ感知面（例えば、タッチ感知ディスプレイシステム２１２）に連結させるか、又は近接させ、任意選択的に、タッチ感知面を垂直に（例えば、デバイス２００の表面の内外に）又は水平に（例えば、デバイス２００の表面と同じ面で前後に）移動させることによって触知出力を生成する。いくつかの実施形態では、少なくとも一つの触知出力生成器センサは、デバイス２００の前面に配置されるタッチスクリーンディスプレイ２１２の逆側のデバイス２００の背面に配置される。
【００５７】
デバイス２００は、一つ以上の加速度計２６８を含んでいてもよい。図２Ａは、周辺機器インターフェース２１８に結合した加速度計２６８を示す。若しくは、加速度計２６８は、Ｉ／Ｏサブシステム２０６内の入力コントローラ２６０に結合できる。加速度計２６８は、米国特許出願公開第２００５０１９００５９号の「ポータブル電子デバイス用の加速度ベースの盗難検出システム」、及び米国特許出願公開第２００６００１７６９２号の「加速度計に基づいてポータブルデバイスを操作する方法及び装置」に述べられているように機能でき、これらは両方とも、全体として本明細書に参照によって組み込まれる。いくつかの実施形態では、一つ以上の加速度計から受信したデータの解析に基づいて、縦長表示又は横長表示でタッチスクリーンディスプレイに情報が表示される。デバイス２００は任意選択的に、加速度計２６８に加えて、磁気計（図示せず）及びＧＰＳ（又はＧＬＯＮＡＳＳ又は他の全地球航法システム）受信機（図示せず）を含み、デバイス２００の位置及び向き（例えば、縦長又は横長）に関する情報を入手する。
【００５８】
いくつかの実施形態では、メモリ２０２に記憶されるソフトウェア構成要素は、オペレーティングシステム２２６、通信モジュール（又は命令セット）２２８、接触／動きモジュール（又は命令セット）２３０、グラフィクスモジュール（又は命令セット）２３２、テキスト入力モジュール（又は命令セット）２３４、全地球測位システム（ＧＰＳ）モジュール（又は命令セット）２３５、デジタルアシスタントクライアントモジュール２２９、及びアプリケーション（又は命令セット）２３６を含む。更に、メモリ２０２は、ユーザデータ及びモデル２３１等のデータ及びモデルを記憶できる。その上、いくつかの実施形態では、メモリ２０２（図２Ａ）又は４７０（図４）は、図２Ａと４に示したように、デバイス／グローバル内部状態２５７を記憶する。デバイス／グローバル内部状態２５７は、もしあれば、どのアプリケーションが現在アクティブであるかを示すアクティブアプリケーション状態、どのアプリケーション、ビュー又は他の情報がタッチスクリーンディスプレイ２１２の様々な領域を占有しているかを示す表示状態、デバイスの様々なセンサ及び入力コントロールデバイス２１６から入手した情報を含むセンサ状態、及びデバイスの位置及び／又は姿勢に関する位置情報の一つ以上を含む。
【００５９】
オペレーティングシステム２２６（例えば、Ｄａｒｗｉｎ、ＲＴＸＣ、Ｌｉｎｕｘ、ＵＮＩＸ、ＯＳ  Ｘ、ｉＯＳ、Ｗｉｎｄｏｗｓ、又はＶｘＷｏｒｋｓ等の組込みオペレーティングシステム）は、一般的なシステムタスク（例えば、メモリ管理、記憶装置制御、電源管理等）の制御及び管理を行う様々なソフトウェア構成要素及び／又はドライバを含み、様々なハードウェア及びソフトウェア構成要素の間の通信を容易にする。
【００６０】
通信モジュール２２８は、一つ以上の外部ポート２２４上の他のデバイスとの通信を容易にし、また、ＲＦ回路２０８及び／又は外部ポート２２４によって受信するデータを処理する様々なソフトウェア構成要素を含む。外部ポート２２４（例えば、ユニバーサルシリアルバス（ＵＳＢ）、ＦＩＲＥＷＩＲＥなど）は、他のデバイスと直接、又はネットワーク（例えば、インターネット、無線ＬＡＮ等）上で間接的に結合するように適応させる。いくつかの実施形態では、外部ポートは、ｉＰｏｄ（Ａｐｐｌｅ  Ｉｎｃ．の登録商標）デバイスで用いられる３０ピンコネクタと同一又は同様及び／又は互換性のあるマルチピン（例えば、３０ピン）コネクタである。
【００６１】
接触／動きモジュール２３０は任意選択的に、タッチスクリーン２１２（ディスプレイコントローラ２５６と共に）及び他のタッチ感知デバイス（例えば、タッチパッド又は物理クリックホイール）との接触を検出する。接触／動きモジュール２３０は、接触が発生したかどうかを判定すること（例えば、指を下げるイベントを検出すること）、接触強度（例えば、接触力又は圧力、若しくは接触力又は圧力の代用物）を判定すること、接触の移動があるかどうかを判定してタッチ感知面全体で移動を追跡すること（例えば、一つ以上の指でドラグするイベントを検出すること）、接触が終わったかどうかを判定すること（例えば、指を上げるイベント又は接触の中断を検出すること）等の接触の検出に関連した様々な動作を実行する様々なソフトウェア構成要素を含む。接触／動きモジュール２３０は、タッチ感知面から接触データを受信する。一連の接触データによって表される接触点の動きを判定することは任意選択的に、接触点の速さ（大きさ）、速度（大きさ及び方向）、及び／又は加速度（大きさ及び／又は方向の変化）を判定することを含む。これらの操作は、任意選択的に、単一接点（例えば、一つの指の接触）又は複数の同時の接触（例えば、「マルチタッチ」／複数の指の接触）に適用される。いくつかの実施形態では、接触／動きモジュール２３０及びディスプレイコントローラ２５６はタッチパッド上の接触を検出する。
【００６２】
いくつかの実施形態では、接触／動きモジュール２３０は一つ以上の強度閾値セットを用いて、操作がユーザによって行われたかどうかを判定する（例えば、ユーザがアイコン上を「クリック」したかどうかを判定する）。いくつかの実施形態では、強度閾値の少なくともサブセットは、ソフトウェアパラメータ従って判定され（例えば、強度閾値は特定の物理アクチュエータの起動閾値によっては判定されず、デバイス２００の物理ハードウェアを変更することなく調整できる）。例えば、トラックパッド又はタッチスクリーンディスプレイのマウス「クリック」閾値は、トラックパッド又はタッチスクリーンディスプレイハードウェアを変更することなく、所定の閾値の大きな範囲のいずれかに設定できる。加えて、いくつかの実施形態では、デバイスのユーザにソフトウェア設定を提供し、（例えば、システムレベルのクリック「強度」パラメータを用いて直ちに個別の強度閾値及び／又は複数の強度閾値を調整することによって）一つ以上の強度閾値セットを調整する。
【００６３】
接触／動きモジュール２３０は任意選択的に、ユーザによるジェスチャ入力を検出する。タッチ感知面上の異なるジェスチャは、異なる接触パターン（例えば、異なる動き、タイミング、及び／又は検出される接触強度）を有する。従って、ジェスチャは、任意選択的に、特定の接触パターンを検出することによって検出される。例えば、指でタップするジェスチャを検出することは、指を下げるイベントを検出した後、指を下げるイベントと同じ位置（又は実質的に同じ位置）で（例えば、アイコンの位置で）指を上げる（リフトオフ）イベントを検出することを含む。別の例として、タッチ感知面を指でスワイプするジェスチャは、指を下げるイベントを検出した後、一つ以上の指をドラグするイベントを検出し、続いて指を上げる（リフトオフ）イベントを検出することを含む。
【００６４】
グラフィクスモジュール２３２は、タッチ画面２１２又は他のディスプレイ上でグラフィクスの描画及び表示を行う様々な既知のソフトウェア構成要素を含み、表示されるグラフィクスの視覚的影響（例えば、輝度、透明性、彩度、コントラスト、又は他の視覚的特性）を変更する構成要素を含む。本明細書で用いられる際、用語「グラフィクス」は、ユーザに表示可能な任意のオブジェクトを含み、制限なしで、テキスト、ウェブページ、アイコン（ソフトキーを含むユーザインタフェースオブジェクト等）、デジタル画像、ビデオ、アニメーション等を含む。
【００６５】
いくつかの実施形態では、グラフィクスモジュール２３２は、用いられるグラフィクスを表すデータを記憶する。各グラフィックには、任意選択的に、対応するコードが割り当てられる。グラフィクスモジュール２３２は、アプリケーション等から、必要に応じて、座標データ及び他のグラフィック特性データと共に、表示されるグラフィクスを指定する一つ以上のコードを受信し、その後、スクリーン画像データを生成し、ディスプレイコントローラ２５６に出力する。
【００６６】
触覚フィードバックモジュール２３３は、触知出力生成器２６７によって用いられる命令を生成する様々なソフトウェア構成要素を含み、デバイス２００とのユーザ対話に応じて、デバイス２００上の一つ以上の位置に触知出力を生成する。
【００６７】
テキスト入力モジュール２３４は、グラフィクスモジュール２３２の構成要素であってもよく、様々なアプリケーション（例えば、コンタクト２３７、電子メール２４０、ＩＭ２４１、ブラウザ２４７、及びテキスト入力を必要とする任意の他のアプリケーション）にテキストを入力するソフトキーボードを提供する。
【００６８】
ＧＰＳモジュール２３５はデバイスの位置を判定し、様々なアプリケーションで使用するために（例えば、位置ベースのダイヤリングで用いるために電話２３８に、ピクチャ／ビデオメタデータとしてカメラ２４３に、及び気象ウィジェット、ローカルイエローページウィジェット、及び地図／ナビゲーションウィジェット等の位置ベースのサービスを提供するアプリケーションに）この情報を提供する。
【００６９】
デジタルアシスタントクライアントモジュール２２９は、様々なクライアント側デジタルアシスタント命令を含み、デジタルアシスタントのクライアント側機能を提供できる。例えば、デジタルアシスタントクライアントモジュール２２９は、ポータブル多機能デバイス２００の様々なユーザインタフェース（例えば、マイクロホン２１３、加速度計２６８、タッチ感知ディスプレイシステム２１２、光センサ２２９、他の入力コントロールデバイス２１６等）を介して、音声入力（例えば、スピーチ入力）、テキスト入力、タッチ入力、及び／又はジェスチャ入力を受信可能にする。デジタルアシスタントクライアントモジュール２２９は、ポータブル多機能デバイス２００の様々な出力インターフェース（例えば、スピーカ２１１、タッチ感知ディスプレイシステム２１２、触知出力生成器２６７等）を介して、オーディオ（例えば、スピーチ出力）、視覚及び／又は触知形態の出力を提供することもできる。例えば、出力は、音声、サウンド、アラート、テキストメッセージ、メニュー、グラフィクス、ビデオ、アニメーション、振動、及び／又は以上の二つ以上の組合せとして提供することもできる。動作中、デジタルアシスタントクライアントモジュール２２９は、ＲＦ回路２０８を用いてＤＡサーバ１０６と通信を行うことができる。
【００７０】
ユーザデータ及びモデル２３１は、ユーザに関連した様々なデータ（例えば、ユーザ固有の語彙データ、ユーザ嗜好データ、ユーザ固有の名前の発音、ユーザの電子アドレス帳からのデータ、Ｔｏ−Ｄｏリスト、ショッピングリスト等）を含み、デジタルアシスタントのクライアント側機能を提供できる。更に、ユーザデータ及びモデル２３１は、ユーザ入力を処理してユーザの意図を判定する様々なモデル（例えば、音声認識モデル、統計的言語モデル、自然言語処理モデル、オントロジ、タスクフローモデル、サービスモデル等）を含むことができる。
【００７１】
いくつかの例では、デジタルアシスタントクライアントモジュール２２９は、ポータブル多機能デバイス２００の様々なセンサ、サブシステム、及び周辺機器を利用して、ポータブル多機能デバイス２００の周囲環境から追加の情報を収集し、ユーザ、現在のユーザ対話、及び現在のユーザ入力に関連したコンテキストを確立できる。いくつかの例では、デジタルアシスタントクライアントモジュール２２９は、ＤＡサーバ１０６へのユーザ入力にコンテキスト情報又はそのサブセットを提供し、ユーザの意図の推測に役立たせることができる。いくつかの例では、デジタルアシスタントはコンテキスト情報を用いて、ユーザへの出力を準備して送出する方法を判定することもできる。コンテキスト情報は、コンテキストデータと呼ぶこともできる。
【００７２】
いくつかの例では、ユーザ入力に付随するコンテキスト情報は、例えば、照明、周囲雑音、周囲温度、周囲環境の画像又はビデオ等のセンサ情報を含むことができる。いくつかの例では、コンテキスト情報は、例えば、デバイスの向き、デバイスの位置、デバイスの温度、電力レベル、速さ、加速度、動きのパターン、セルラ信号強度等のデバイスの物理状態を含むこともできる。いくつかの例では、ＤＡサーバ１０６のソフトウェア状態に関連した情報、例えば、ポータブル多機能デバイス２００の実行処理、インストールプログラム、過去及び現在のネットワークアクティビティ、バックグラウンドサービス、エラーログ、リソース使用量等は、ユーザ入力に関連したコンテキスト情報としてＤＡサーバ１０６に提供することもできる。
【００７３】
いくつかの例では、デジタルアシスタントクライアントモジュール２２９は、ＤＡサーバ１０６からのリクエストに応じて、ポータブル多機能デバイス２００上に記憶される情報（例えば、ユーザデータ２３１）を選択的に提供できる。いくつかの例では、デジタルアシスタントクライアントモジュール２２９は、ＤＡサーバ１０６によるリクエスト時の自然言語ダイアログ又は他のユーザインタフェースを介して、ユーザから追加の入力を引き出すこともできる。デジタルアシスタントクライアントモジュール２２９は、追加の入力をＤＡサーバ１０６に渡し、ユーザリクエストに表された意図の推論及び／又はユーザの意図の実現においてＤＡサーバ１０６を手助けできる。
【００７４】
デジタルアシスタントのより詳細な説明は、図７Ａ〜Ｃを参照しながら以降で説明する。当然のことながら、デジタルアシスタントクライアントモジュール２２９は、以降で説明するデジタルアシスタントモジュール７２６の任意の数のサブモジュールを含むことができる。
【００７５】
アプリケーション２３６は、以降のモジュール（又は命令セット）、又はそのサブセット又はスーパーセットを含んでいてもよい。
●コンタクトモジュール２３７（アドレス帳又はコンタクトリストとも呼ばれる）
●電話モジュール２３８
●テレビ会議モジュール２３９
●電子メールクライアントモジュール２４０
●インスタントメッセージング（ＩＭ）モジュール２４１
●ワークアウト支援モジュール２４２
●静止画及びビデオ画像用のカメラモジュール２４３
●画像管理モジュール２４４
●ビデオプレーヤモジュール
●音楽プレーヤモジュール
●ブラウザモジュール２４７
●カレンダモジュール２４８
●ウィジェットモジュール２４９（気象ウィジェット２４９−１、株式ウィジェット２４９−２、計算機ウィジェット２４９−３、アラームクロックウィジェット２４９−４、辞書ウィジェット２４９−５、及びユーザが入手した他のウィジェット並びにユーザ作成ウィジェット２４９−６の一つ以上を含むことができる。）
●ユーザ作成ウィジェット２４９−６を作成するためのウィジェットクリエータモジュール２５０
●検索モジュール２５１
●ビデオプレーヤモジュールと音楽プレーヤモジュールを融合したビデオ及び音楽プレーヤモジュール２５２
●メモモジュール２５３
●地図モジュール２５４及び／又は
●オンラインビデオモジュール２５５
【００７６】
メモリ２０２内に記憶可能な他のアプリケーション２３６の例は、他のワードプロセッシングアプリケーション、他の画像編集アプリケーション、描画アプリケーション、プレゼンテーションアプリケーション、Ｊａｖａ（登録商標）対応アプリケーション、暗号化、デジタル著作権管理、音声認識、音声複製を含む。
【００７７】
タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィクスモジュール２３２、及びテキスト入力モジュール２３４と共に、コンタクトモジュール２３７を用いて、アドレス帳又はコンタクトリスト（例えば、メモリ２０２又はメモリ４７０内のコンタクトモジュール２３７のアプリケーション内部状態２９２に記憶される）を管理してもよく、それは、アドレス帳への名前の追加、アドレス帳からの名前の削除、電話番号、電子メールアドレス、実際の住所又は他の情報と名前の関連付け、画像と名前の関連付け、名前の分類及びソート、電話番号又は電子メールアドレスを提供し、電話２３８、テレビ会議モジュール２３９、電子メール２４０、又はＩＭ２４１による通信を開始及び／又は容易にすること等を含む。
【００７８】
ＲＦ回路２０８、オーディオ回路２１０、スピーカ２１１、マイクロホン２１３、タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィクスモジュール２３２、及びテキスト入力モジュール２３４と共に、電話モジュール２３８を用いて、電話番号に対応する文字のシーケンスを入力し、コンタクトモジュール２３７内の一つ以上の電話番号にアクセスし、入力された電話番号を修正し、各電話番号をダイヤルし、会話を行い、会話が完了したら切断又は電話を切ることもできる。上記のように、無線通信は、複数の通信規格、プロトコル、及び技術のいずれかを使用できる。
【００７９】
ＲＦ回路２０８、オーディオ回路２１０、スピーカ２１１、マイクロホン２１３、タッチスクリーン２１２、ディスプレイコントローラ２５６、光センサ２６４、光センサコントローラ２５８、接触／動きモジュール２３０、グラフィクスモジュール２３２、テキスト入力モジュール２３４、コンタクトモジュール２３７、及び電話モジュール２３８と共に、テレビ会議モジュール２３９は、ユーザ命令に従って、ユーザと一人以上の他の参加者との間のテレビ会議の開始、実行及び終了を行う実行可能命令を含む。
【００８０】
ＲＦ回路２０８、タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィクスモジュール２３２、及びテキスト入力モジュール２３４と共に、電子メールクライアントモジュール２４０は、ユーザ命令に応じて電子メールの作成、送信、受信及び管理を行う実行可能命令を含む。画像管理モジュール２４４と共に、電子メールクライアントモジュール２４０は、カメラモジュール２４３で撮影した静止画又はビデオ画像付きの電子メールの作成及び送信を非常に容易にする。
【００８１】
ＲＦ回路２０８、タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィクスモジュール２３２、及びテキスト入力モジュール２３４と共に、インスタントメッセージングモジュール２４１は、インスタントメッセージに対応する文字のシーケンスを入力し、以前に入力した文字を修正し、各インスタントメッセージを送信し（例えば、電話ベースのインスタントメッセージ用のショートメッセージサービス（ＳＭＳ）又はマルチメディアメッセージサービス（ＭＭＳ）プロトコルを用いて、又はインターネットベースのインスタントメッセージ用のＸＭＰＰ、ＳＩＭＰＬＥ、又はＩＭＰＳを用いて）、インスタントメッセージを受信し、受信したインスタントメッセージを表示する実行可能命令を含む。いくつかの実施形態では、送信及び／又は受信されるインスタントメッセージは、ＭＭＳ及び／又は拡張メッセージングサービス（ＥＭＳ）でサポートされるように、グラフィクス、写真、オーディオファイル、ビデオファイル及び／又は他の添付物を含んでいてもよい。本明細書で用いられる際、「インスタントメッセージング」は、電話ベースのメッセージ（例えば、ＳＭＳ又はＭＭＳを用いて送信されたメッセージ）とインターネットベースのメッセージ（例えば、ＸＭＰＰ、ＳＩＭＰＬＥ、又はＩＭＰＳを用いて送信されたメッセージ）の両方を指す。
【００８２】
ＲＦ回路２０８、タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィクスモジュール２３２、テキスト入力モジュール２３４、ＧＰＳモジュール２３５、地図モジュール２５４、及び音楽プレーヤモジュールと共に、ワークアウトサポートモジュール２４２は、（例えば、時間、距離、及び／又はカロリー燃焼目標を用いて）ワークアウトを作成し、ワークアウトセンサ（スポーツデバイス）と通信を行い、ワークアウトセンサデータを受信し、ワークアウトの監視に用いられるセンサを校正し、ワークアウト用の音楽の選択及び再生を行い、ワークアウトデータの表示、記憶、及び送信を行う実行可能命令を含む。
【００８３】
タッチスクリーン２１２、ディスプレイコントローラ２５６、光センサ２６４、光センサコントローラ２５８、接触／動きモジュール２３０、グラフィクスモジュール２３２、及び画像管理モジュール２４４と共に、カメラモジュール２４３は、静止画又はビデオ（ビデオストリームを含む）を捕捉し、それらをメモリ２０２に記憶し、静止画又はビデオの特性を修正し、又はメモリ２０２から静止画又はビデオを削除する実行可能命令を含む。
【００８４】
タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィクスモジュール２３２、テキスト入力モジュール２３４、及びカメラモジュール２４３と共に、画像管理モジュール２４４は、静止画及び／又はビデオ画像の配置、修正（例えば、編集）、若しくは操作、ラベル付け、削除、提示（例えば、デジタルスライドショー又はアルバム内に）、及び記憶を行う実行可能命令を含む。
【００８５】
ＲＦ回路２０８、タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィクスモジュール２３２、及びテキスト入力モジュール２３４と共に、ブラウザモジュール２４７は、ユーザ命令に従ってインターネットをブラウズする実行可能命令を含み、それは、ウェブページ又はその一部、並びにウェブページにリンクされた添付物及び他のファイルの検索、リンク、受信、及び表示を含む。
【００８６】
ＲＦ回路２０８、タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィクスモジュール２３２、テキスト入力モジュール２３４、電子メールクライアントモジュール２４０、及びブラウザモジュール２４７と共に、カレンダモジュール２４８は、ユーザ命令に従って、カレンダー及びカレンダーに関連したデータ（カレンダーエントリ、Ｔｏ−Ｄｏリスト等）の作成、表示、修正、及び記憶を行う実行可能命令を含む。
【００８７】
ＲＦ回路２０８、タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィクスモジュール２３２、テキスト入力モジュール２３４、及びブラウザモジュール２４７と共に、ウィジェットモジュール２４９は、ユーザによってダウンロード及び使用可能なミニアプリケーション（例えば、気象ウィジェット２４９−１、株式ウィジェット２４９−２、計算機ウィジェット２４９−３、アラームクロックウィジェット２４９−４、及び辞書ウィジェット２４９−５）又はユーザによって作成できるミニアプリケーション（例えば、ユーザ作成ウィジェット２４９−６）である。いくつかの実施形態では、ウィジェットはＨＴＭＬ（ハイパーテキストマークアップ言語）ファイル、ＣＳＳ（カスケーディングスタイルシート）ファイル、及びＪａｖａＳｃｒｉｐｔ（登録商標）ファイルを含む。いくつかの実施形態では、ウィジェットはＸＭＬ（拡張マークアップ言語）ファイル及びＪａｖａＳｃｒｉｐｔファイル（例えば、Ｙａｈｏｏ！Ｗｉｄｇｅｔ）を含む。
【００８８】
ＲＦ回路２０８、タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィクスモジュール２３２、テキスト入力モジュール２３４、及びブラウザモジュール２４７と共に、ウィジェットクリエータモジュール２５０は、ユーザによって用いられ、ウィジェットを作成できる（例えば、ウェブページのユーザ指定部分をウィジェット内に差し込む）。
【００８９】
タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィクスモジュール２３２、及びテキスト入力モジュール２３４と共に、検索モジュール２５１は、ユーザ命令に従って一つ以上の検索基準（例えば、一つ以上のユーザ指定の検索項目）に一致するテキスト、音楽、音声、画像、ビデオ、及び／又は他のファイルをメモリ２０２内で検索する実行可能命令を含む。
【００９０】
タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィクスモジュール２３２、オーディオ回路２１０、スピーカ２１１、ＲＦ回路２０８、及びブラウザモジュール２４７と共に、ビデオ及び音楽プレーヤモジュール２５２は、ユーザが、ＭＰ３又はＡＡＣファイル等の一つ以上のファイルフォーマットで記憶された音楽及び他の音声ファイルをダウンロード及び再生可能にする実行可能命令、及び（例えば、タッチスクリーン２１２上又は外部ポート２２４を介して接続された外部のディスプレイ上への）ビデオの表示、提示、若しくは再生を行う実行可能命令を含む。いくつかの実施形態では、デバイス２００は任意選択的に、ｉＰｏｄ（Ａｐｐｌｅ  Ｉｎｃ．の登録商標）等のＭＰ３プレーヤの機能を含む。
【００９１】
タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィクスモジュール２３２、及びテキスト入力モジュール２３４と共に、メモモジュール２５３は、ユーザ命令に従ってメモ、Ｔｏ−Ｄｏリスト等の作成及び管理を行う実行可能命令を含む。
【００９２】
ＲＦ回路２０８、タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィクスモジュール２３２、テキスト入力モジュール２３４、ＧＰＳモジュール２３５、及びブラウザモジュール２４７と共に、地図モジュール２５４を用いて、ユーザ命令に従って地図及び地図に関連したデータ（例えば、運転案内、店舗及び特定の位置又はその近傍の所望の他の点におけるデータ、及び他の位置ベースのデータ）の受信、表示、修正及び記憶を行うことができる。
【００９３】
タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィクスモジュール２３２、オーディオ回路２１０、スピーカ２１１、ＲＦ回路２０８、テキスト入力モジュール２３４、電子メールクライアントモジュール２４０、及びブラウザモジュール２４７と共に、オンラインビデオモジュール２５５は、ユーザがアクセス、ブラウズ、受信を行い（例えば、ストリーミング及び／又はダウンロードによって）、再生し（タッチスクリーン上又は外部ポート２２４を介して接続された外部ディスプレイ上）、特定のオンラインビデオへのリンクを備えた電子メールを送信し、若しくはＨ．２６４等の一つ以上のファイルフォーマットでオンラインビデオを管理できる命令を含む。いくつかの実施形態では、電子メールクライアントモジュール２４０ではなく、インスタントメッセージングモジュール２４１を用いて、特定のオンラインビデオへのリンクを送信する。オンラインビデオアプリケーションの追加の説明は、米国仮特許出願第６０／９３６，５６２号の「Ｐｏｒｔａｂｌｅ Ｍｕｌｔｉｆｕｎｃｔｉｏｎ Ｄｅｖｉｃｅ, Ｍｅｔｈｏｄ, ａｎｄ Ｇｒａｐｈｉｃａｌ Ｕｓｅｒ Ｉｎｔｅｒｆａｃｅ ｆｏｒ Ｐｌａｙｉｎｇ Ｏｎｌｉｎｅ Ｖｉｄｅｏｓ」、出願日２００７年６月２０日、及び米国特許出願第１１／９６８，０６７号の「Ｐｏｒｔａｂｌｅ Ｍｕｌｔｉｆｕｎｃｔｉｏｎ Ｄｅｖｉｃｅ, Ｍｅｔｈｏｄ, ａｎｄ Ｇｒａｐｈｉｃａｌ Ｕｓｅｒ Ｉｎｔｅｒｆａｃｅ ｆｏｒ Ｐｌａｙｉｎｇ Ｏｎｌｉｎｅ Ｖｉｄｅｏｓ」、出願日２００７年１２月３１日に見出されるが、これらの内容は全体として参照によって組み込まれる。
【００９４】
上で識別されたモジュール及びアプリケーションは各々、上記の一つ以上の機能及び本出願で説明される方法（例えば、コンピュータ実行方法及び本明細書で説明される他の情報処理方法）を実行する実行可能命令セットに対応する。これらのモジュール（例えば、命令セット）は、別個のソフトウェアプログラム、手順、又はモジュールとして実現する必要はなく、従って、様々な実施形態では、これらのモジュールの様々なサブセットを組み合わせても、若しくは再配置してもよい。例えば、ビデオプレーヤモジュールは音楽プレーヤモジュールと単一のモジュール（例えば、図２Ａのビデオ及び音楽プレーヤモジュール２５２）に組み合わせてもよい。いくつかの実施形態では、メモリ２０２は、上で識別したモジュールのサブセット及びデータ構造を記憶できる。その上、メモリ２０２は、上で説明していない追加のモジュール及びデータ構造を記憶できる。
【００９５】
いくつかの実施形態では、デバイス２００は、タッチスクリーン及び／又はタッチパッドを介してデバイス上の所定の機能セットの操作を排他的に実行するデバイスである。デバイス２００の操作用の主入力コントロールデバイスとしてタッチスクリーン及び／又はタッチパッドを使用することによって、デバイス２００上の物理入力コントロールデバイス（プッシュボタン、ダイヤル等）の数を低減できる。
【００９６】
タッチスクリーン及び／又はタッチパッドを介して排他的に実行される所定の機能セットは任意選択的に、ユーザインタフェース間のナビゲーションを含む。いくつかの実施形態では、タッチパッドは、ユーザが触れた際、デバイス２００上に表示された任意のユーザインタフェースから主メニュー、ホームメニュー、又はルートメニューにデバイス２００をナビゲートする。このような実施形態では、タッチパッドを用いて「メニューボタン」を実現できる。いくつかの他の実施形態では、メニューボタンはタッチパッドの代わりの物理プッシュボタン又は他の物理入力コントロールデバイスである。
【００９７】
図２Ｂは、いくつかの実施形態によるイベント処理用の一例の構成要素を示すブロック図である。いくつかの実施形態では、メモリ２０２（図２Ａ）又は４７０（図４）は、イベントソータ２７０（例えば、オペレーティングシステム２２６内）及び各アプリケーション２３６−１（例えば、上記のアプリケーション２３７〜２５１、２５５、４８０〜４９０のいずれか）を含む。
【００９８】
イベントソータ２７０は、イベント情報を受信し、イベント情報を送出するアプリケーション２３６−１及びアプリケーション２３６−１のアプリケーションビュー２９１を判定する。イベントソータ２７０は、イベントモニタ２７１とイベントディスパッチャモジュール２７４を含む。いくつかの実施形態では、アプリケーション２３６−１はアプリケーション内部状態２９２を含み、アプリケーションがアクティブであるか又は実行中のとき、タッチ感知ディスプレイ２１２上に表示される現在のアプリケーションビューを示す。いくつかの実施形態では、デバイス／グローバル内部状態２５７はイベントソータ２７０によって用いられ、どのアプリケーションが現在アクティブであるかを判定し、アプリケーション内部状態２９２はイベントソータ２７０によって用いられ、イベント情報を送出するアプリケーションビュー２９１を判定する。
【００９９】
いくつかの実施形態では、アプリケーション内部状態２９２は、アプリケーション２３６−１が実行を再開する際に使用される再開情報、表示される情報を示す又はアプリケーション２３６−１による表示の準備用のユーザインタフェース状態情報、ユーザがアプリケーション２３６−１の前の状態又はビューに逆戻り可能にする状態キュー、及びユーザが取った前のアクションのリドゥ／アンドゥキューの一つ以上等の追加の情報を含む。
【０１００】
イベントモニタ２７１は、周辺機器インターフェース２１８からイベント情報を受信する。イベント情報は、サブイベント（例えば、マルチタッチジェスチャの一部としてのタッチ感知ディスプレイ２１２上のユーザタッチ）についての情報を含む。周辺機器インターフェース２１８は、Ｉ／Ｏサブシステム２０６又は近接センサ２６６等のセンサ、加速器２６８、及び／又はマイクロホン２１３（オーディオ回路２１０を介して）から受信する情報を送信する。周辺機器インターフェース２１８がＩ／Ｏサブシステム２０６から受信する情報は、タッチ感知ディスプレイ２１２又はタッチ感知面から受信する情報を含む。
【０１０１】
いくつかの実施形態では、イベントモニタ２７１は、所定の間隔で周辺機器インターフェース２１８にリクエストを送信する。それに応じて、周辺機器インターフェース２１８はイベント情報を送信する。他の実施形態では、周辺機器インターフェース２１８は、重要なイベントがあった（例えば、所定のノイズ閾値より上、及び／又は所定の持続期間より長い入力を受信した）ときだけイベント情報を送信する。
【０１０２】
また、いくつかの実施形態では、イベントソータ２７０は、ヒットビュー判定モジュール２７２及び／又はアクティブイベント認識部判定モジュール２７３を含む。
【０１０３】
ヒットビュー判定モジュール２７２は、タッチ感知ディスプレイ２１２が一つより多くのビューを表示したとき、一つ以上のビュー内でサブイベントが発生した場所を判定するソフトウェア手順を提供する。ビューは、コントロール及びユーザがディスプレイ上で視認可能な他の要素からなる。
【０１０４】
アプリケーションに関連するユーザインタフェースの別の態様は一組のビューであり、これは本明細書においてアプリケーションビュー又はユーザインタフェースィンドウと呼ぶこともある。該ビューでは情報が表示され、タッチベースのジェスチャが行われる。タッチが検出される（各アプリケーションの）アプリケーションビューは、そのアプリケーションのプログラム又はビューの階層内のプログラムレベルに対応させてもよい。例えば、タッチ検出の最下位ビューは、例えば、ヒットビューと呼ばれ、適正入力として認識されるイベントの組は、少なくとも一部において、タッチベースのジェスチャを開始する最初のタッチのヒットビューに基づいて判定してもよい。
【０１０５】
ヒットビュー判定モジュール２７２は、タッチベースのジェスチャのサブイベント関連情報を受信する。アプリケーションが階層構造化した複数のビューを有する場合、ヒットビュー判定モジュール２７２は、ヒットビューを、サブイベントを処理すべき階層内の最下ビューとして特定する。ヒットビューは、ほとんどの場合、最初のサブイベントが行われる最下位ビューである（例えば、イベント又は潜在的イベントを構成する一連のサブイベントの最初のイベント）。ヒットビュー判定モジュール２７２が一旦ヒットビューを特定すると、そのヒットビューは、通常、ヒットビューであることが特定された同じタッチ又は入力源に関する全てのサブイベントを受信する。
【０１０６】
アクティブイベント認識器判定モジュール２７３は、ビュー階層内の１つ以上のどのビューがサブイベントの特定のシーケンスを受信すべきかを判定する。いくつかの実施形態では、アクティブイベント認識器判定モジュール２７３は、ヒットビューのみがサブイベントの特定のシーケンスを受信すべきであると判定する。他の実施形態では、アクティブイベント認識器判定モジュール２７３は、一のサブイベントの物理的位置を含む全てのビューが積極的に関与するビューであると判定し、このことにより、全ての積極的に関与するビューが各サブイベントの特定のシーケンスを受信すべきであると判定する。別の実施形態では、タッチのサブイベントが全て特定の一のビューに関連する領域に限定されたとしても、階層内で高位のビューは、依然として積極的に関与するビューのままであろうと想定される。
【０１０７】
イベントディスパッチャモジュール２７４は、イベント情報をイベント認識器（例えば、イベント認識器２８０）に送信する。アクティブイベント認識器判定モジュール２７３を含む実施形態において、イベントディスパッチャモジュール２７４は、アクティブイベント認識器判定モジュール２７３により判定されるイベント認識器に、イベント情報を配信する。いくつかの実施形態では、イベントディスパッチャモジュール２７４はイベント情報をイベントキューに格納し、該イベント情報は各イベント受信器２８２により取り出される。
【０１０８】
いくつかの実施形態において、オペレーティングシステム２２６はイベントソータ２７０を備える、あるいは、イベントソータ２７０はアプリケーション２３６−１に含まれる。別の実施形態において、イベントソータ２７０は、独立したモジュール、又は、メモリ２０２に格納される接触／動きモジュール２３０等の別のモジュールの一部である。
【０１０９】
いくつかの実施形態において、アプリケーション２３６−１は、複数のイベント処理部２９０と１つ以上のアプリケーションビュー２９１を含み、各々がアプリケーションのユーザインタフェースの各ビュー内で発生するタッチイベントを処理する命令を含む。アプリケーション２３６−１の各アプリケーションビュー２９１は、１つ以上のイベント認識器２８０を含む。通常、各アプリケーションビュー２９１は複数のイベント認識器２８０を含む。他の実施形態では、１つ以上のイベント認識器２８０は、ユーザインタフェースキット（図示省略）、又は、アプリケーション２３６−１が方法や他のプロパティを引き継ぐより高位のオブジェクトの独立したモジュールの一部である。いくつかの実施形態において、各イベント処理部イベント処理部２９０は、データ更新部２７６、オブジェクト更新部２７７、ＧＵＩ更新部２７８、及び／又は、イベントソータ２７０から受信するイベントデータ２７９の１つ以上を含む。イベント処理部２９０は、データ更新部２７６、オブジェクト更新部２７７、又は、ＧＵＩ更新部２７８を利用するか呼び出すことで、アプリケーション内部状態２９２を更新してもよい。あるいは、１つ以上のアプリケーションビュー２９１は１つ以上のイベント処理部２９０を含む。また、いくつかの実施形態では、データ更新部２７６、オブジェクト更新部２７７、及び、ＧＵＩ更新部２７８は、その１つ以上が各アプリケーションビュー２９１に含まれる。
【０１１０】
各イベント認識器２８０は、イベントソータ２７０からイベント情報（例えばイベントデータ２７９）を受信し、該イベント情報からイベントを特定する。イベント認識器２８０は、イベント受信器２８２とイベント比較器２８４を含む。いくつかの実施形態では、イベント認識器２８０は、少なくともメタデータ２８３のサブセットとイベント配信命令２８８（サブイベント配信命令を含んでもよい）を更に含む。
【０１１１】
イベント受信器２８２は、イベントソータ２７０からイベント情報を受信する。該イベント情報は、サブイベント、例えば、タッチ又はタッチの移動についての情報を含む。サブイベントによって、該イベント情報は、サブイベントの位置等の追加情報を更に含む。サブイベントがタッチの動きに関するものである場合、該イベント情報は、そのサブイベントの速度や方向を含んでもよい。いくつかの実施形態では、各イベントは、デバイスの一定の向きから別の向き（例えば、横位置から縦位置へ、あるいはその逆）への回転を含み、該イベント情報は、デバイスの現在の向き（デバイス姿勢とも呼ぶ）についての対応情報を含む。
【０１１２】
イベント比較器２８４は、イベント情報を既定のイベント又はサブイベントの定義と比較し、この比較に基づいて、イベント又はサブイベントを判定する、又は、イベント又はサブイベントの状態を判定若しくは更新する。いくつかの実施形態では、イベント比較器２８４はイベント定義２８６を含む。イベント定義２８６は、イベント１（２８７−１）やイベント２（２８７−２）等、イベントの定義（例えば、既定の複数連のサブイベント）を含む。いくつかの実施形態では、あるイベント（２８７）のサブイベントは、例えばタッチの開始、タッチの終了、タッチの移動、タッチのキャンセル、及び複数回のタッチを含む。一例では、イベント１の定義（２８７−１）は、表示オブジェクトへのダブルタップである。ダブルタップは、例えば、所定のフェーズにおける表示オブジェクトへの最初のタッチ（タッチ開始）、所定のフェーズにおける最初のリフトオフ（タッチ終了）、所定のフェーズにおける表示オブジェクトへの２回目のタッチ（タッチ開始）、及び、所定のフェーズにおける２度目のリフトオフ（タッチ終了）から構成されている。別の例では、イベント２の定義（２８７−２）は、表示オブジェクト上のドラッグである。ドラッグは、例えば、所定のフェーズにおける表示オブジェクトへのタッチ（又は接触）と、タッチ感知ディスプレイ２１２上のタッチの移動と、タッチのリフトオフ（タッチ終了）から構成されている。いくつかの実施形態において、イベントは更に、１つ以上の関連するイベント処理部２９０に対する情報を含む。
【０１１３】
いくつかの実施形態において、イベント定義２８７は、各ユーザインタフェースオブジェクトに対するイベントの定義を含む。また、いくつかの実施形態では、イベント比較器２８４はヒットテストを実行し、どのユーザインタフェースオブジェクトがサブイベントに関連するかを判定する。例えば、３つのユーザインタフェースオブジェクトがタッチ感知ディスプレイ２１２に表示されるアプリケーションビューで、タッチ感知ディスプレイ２１２上のタッチが検出されると、イベント比較器２８４は、ヒットテストを実行して、上記３つのユーザインタフェースオブジェクトの内、どのユーザインタフェースオブジェクがそのタッチ（サブイベント）に関連するかを判定する。各表示オブジェクトが各イベント処理部２９０に関連付けられている場合、イベント比較器は、上記ヒットテストの結果を用いて、どのイベント処理部２９０を稼働させるべきかを判定する。例えば、イベント比較器２８４は、サブイベントに関連するイベント処理部と、ヒットテストをトリガするオブジェクトを選択する。
【０１１４】
いくつかの実施形態において、各イベント（２８７）の定義は、一連のサブイベントがイベント認識器のイベントタイプと合致するか否かの判定が済むまで、イベント情報の配信を遅延させる遅延動作を、更に含む。
【０１１５】
一連のサブイベントがイベント定義２８６内のいずれのイベントにも合致しないと各イベント認識器２８０が判定すると、そのイベント認識器２８０は、イベント不能、イベント失敗、又は、イベント終了状態に入り、以降、後続するタッチベースのジェスチャのサブイベントを無視する。この状況下、ヒットビューに対して依然アクティブな他のイベント認識器がある場合、そのイベント認識器は、進行中のタッチベースのジェスチャのサブイベントを継続して追跡し、処理する。
【０１１６】
いくつかの実施形態において、各イベント認識器２８０は、イベント配信システムが積極的に関与するイベント認識器に対してどのようにサブイベント配信を行うべきかを示す、設定可能なプロパティ、フラグ、及び／又は、リストをもつメタデータ２８３を含む。いくつかの実施形態において、メタデータ２８３は、イベント認識器同士がどのように相互作用するか、あるいは、どのような相互作用が可能であるかを示す、設定可能なプロパティ、フラグ、及び／又はリストを含む。いくつかの実施形態では、メタデータ２８３は、ビュー又はプログラムの階層内の様々な準位に対してサブイベントを配信するか否かを示す、設定可能なプロパティ、フラグ、及び／又は、リストを含む。
【０１１７】
いくつかの実施形態において、各イベント認識器２８０は、あるイベントの１つ以上の特定のサブイベントが認識されると、そのイベントに関連するイベント処理部２９０を稼働させる。いくつかの実施形態では、各イベント認識器２８０は、該イベントに関連するイベント情報をイベント処理部２９０に配信する。イベント処理部２９０を稼働させることは、サブイベントを各ヒットビューに送信（及び送信延期）することとは区別される。いくつかの実施形態では、イベント認識器２８０は、認識したイベントに関連するフラグをスローし、該フラグに関連するイベント処理部２９０は、そのフラグをキャッチし、既定の処理を実行する。
【０１１８】
いくつかの実施形態では、イベント配信命令２８８は、イベント処理部を稼働させずにサブイベント関連イベント情報を配信するサブイベント配信命令を含む。代わって、サブイベント配信命令は、一連のサブイベントに関連するイベント処理部又は積極的に関与するビューに、イベント情報を配信する。一連のサブイベント又は積極的に関与するビューに関連する各イベント処理部は、イベント情報を受信し、所定の処理を実行する。
【０１１９】
いくつかの実施形態において、データ更新部２７６は、アプリケーション２３６−１で用いるデータを生成かつ更新する。例えば、データ更新部２７６は、連絡先モジュール２３７で用いる電話番号を更新する、又は、ビデオプレーヤモジュールで用いるビデオファイルを保存する。いくつかの実施形態では、オブジェクト更新部２７７は、アプリケーション２３６−１で用いるオブジェクトを生成かつ更新する。例えば、オブジェクト更新部２７７は、新規のユーザインタフェースオブジェクトを生成する、又は、ユーザインタフェースオブジェクトの位置を更新する。ＧＵＩ更新部２７８はＧＵＩを更新する。例えば、ＧＵＩ更新部２７８は表示情報を用意してグラフィックスモジュール２３２に送信し、該表示情報をタッチ感知ディスプレイに表示させる。
【０１２０】
いくつかの実施形態において、１つ又は複数のイベント処理部２９０は、データ更新部−２７６、オブジェクト更新部２７７、及び、ＧＵＩ更新部２７８を備える、又は、該各更新部にアクセス可能である。いくつかの実施形態では、データ更新部２７６、オブジェクト更新部−２７７、及び、ＧＵＩ更新部−２７８は、アプリケーションビュー２９１又は各アプリケーション２３６−１の単一モジュールに含まれる。他の実施形態では、該各更新部は２つ以上のソフトウェアモジュールに含まれる。
【０１２１】
タッチ感知ディスプレイへのユーザタッチのイベント処理に関する上記の説明は、当然のことながら、入力デバイスによる多機能デバイス２００の操作に向けた、タッチスクリーン上の開始ではないものも含む異なる形態のユーザ入力にも当てはまる。例えば、単回又は複数回のキーボードの押圧又は継続押圧と任意に組み合わせたマウス移動及びマウスボタンの押圧、タッチパッド上のタップ、ドラッグ、スクロール等の接触の移動、ペンスタイラスによる入力、デバイスの移動、口頭命令、検出した視線の動き、バイオメトリック入力、及び／又は、これらを任意に組み合わせたものが、認識対象のイベントを規定するサブイベントに対応する入力として、必要に応じて用いられる。
【０１２２】
図３は、いくつかの実施形態に係るタッチスクリーン２１２を備える携帯型多機能デバイス２００を示す図である。タッチスクリーンは、任意に、ユーザインタフェース（ＵＩ）３００中に１つ以上のグラフィクスを表示する。この実施形態では、以下に記載する他の実施形態と同様、ユーザは、例えば、１本以上の指３０２（図示は正確な縮尺表示ではない）、又は、１本以上のスタイラス３０３（図示は正確な縮尺表示ではない）を用いてグラフィックス上でジェスチャを行うことにより、１つ以上のグラフィックスを選択することができる。いくつかの実施形態において、ユーザが１つ以上のグラフィックスとの接触を止めると、該１つ以上のグラフィックスが選択される。いくつかの実施形態では、ジェスチャは、任意に、１つ以上のタップ、１つ以上のスワイプ（左から右、右から左、上方向及び／又は下方向）、及び／又は、デバイス２００と接触した指の回転（右から左、左から右、上方向及び／又は下方向）を含む。実装例や状況下により、不注意でグラフィックスにうっかり接触しても、そのグラフィックスは選択されない。例えば、選択に対応するジェスチャがタップである場合、アプリケーションアイコン上を素早く通過するスワイプジェスチャでは、対応するアプリケーションが選択されないこともある。
【０１２３】
デバイス２００は、「ホーム」又はメニューボタン３０４等の１つ以上の物理的ボタンを更に含んでよい。上述のように、メニューボタン３０４はデバイス２００で実行し得るアプリケーション群の任意のアプリケーション２３６へのナビゲートに用いてもよい。あるいは、いくつかの実施形態では、メニューボタンはタッチスクリーン２１２に表示されるＧＵＩ内のソフトキーとして実装される。
【０１２４】
一実施形態において、デバイス２００は、タッチスクリーン２１２、メニューボタン３０４、デバイスの電源のオン／オフやデバイスのロックに用いるプッシュボタン３０６、１つ又は複数の音量調節ボタン３０８、加入者識別モジュール（ＳＩＭ）カードスロット３１０、ヘッドホンジャック３１２、及び、連結／充電用外部ポート２２４を含む。プッシュボタン３０６は、必要に応じて、ボタンを押下後、その押下状態を既定時間の間維持することでデバイスの電源をオン／オフしたり、ボタンを押下後、所定時間の経過前にボタンを離ことでデバイスをロックしたり、及び／又は、デバイスのロック解除又はロック解除処理を開始するために用いられる。別の実施形態では、デバイス２００は更に、マイク２１３を介して、一部の機能の有効化又は無効化のための口頭入力を受け付ける。デバイス２００は、必要に応じて、タッチスクリーン２１２上の接触強度を検出するための１つ以上の接触強度センサ２６５、及び／又は、デバイス２００のユーザに対する触知出力を生成するための１つ以上の触知出力生成器２６７を更に含む。
【０１２５】
図４は、いくつかの実施形態に係る、ディスプレイ及びタッチ感知面を備える多機能デバイスの一例を示すブロック図である。デバイス４００は携帯型デバイスである必要はない。いくつかの実施形態では、デバイス４００は、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、マルチメディア・プレーヤ機器、ナビゲーション機器、教育機器（知育玩具等）、ゲームシステム、又は制御デバイス（例えば、家庭用又は工業用制御器）である。デバイス４００は、通常、１つ以上の処理ユニット（ＣＰＵ）４１０と、１つ以上のネットワーク又は他の通信インターフェース４６０と、メモリ４７０と、これらの構成要素を相互接続するための１つ以上の通信バス４２０を含む。通信バス４２０は、任意に、システム構成要素を相互接続し、各システム構成要素間の通信を制御する回路（チップセットとも呼ばれる）を含む。デバイス４００は、ディスプレイ４４０を備える入力／出力（Ｉ／Ｏ）インターフェース４３０を含む。ディスプレイ４４０は、通常、タッチスクリーンディスプレイである。Ｉ／Ｏインターフェース４３０は、必要に応じて、キーボード及び／又はマウス（又は他のポインティングデバイス）４５０、タッチパッド４５５、デバイス４００上に触知出力を生成するための触知出力生成器４５７（図２Ａを参照して上述した１つ又は複数の触知出力生成器２６７と同様のもの）、センサ４５９（例えば、図２Ａを参照して上述した１つ又は複数の接触強度センサ２６５と同様の光学センサ、加速度センサ、近接センサ、タッチ感知センサ、及び／又は、接触強度センサ）を、更に備える。メモリ４７０は、任意に、ＤＲＡＭ、ＳＲＡＭ、ＤＤＲ、ＲＡＭ等の高速ランダムアクセスメモリ、又は、他のランダムアクセス・ソリッドステート・メモリデバイスを含み、また、任意に、１つ以上の磁気ディスク記憶デバイス、光学ディスク記憶デバイス、フラッシュメモリデバイス、又は他の不揮発性ソリッドステート記憶デバイス等の不揮発性メモリを含む。また、メモリ４７０は、必要に応じて、１つ又は複数のＣＰＵ４１０から離間配置した１つ以上の記憶装置を含む。いくつかの実施形態では、メモリ４７０は、携帯型多機能デバイス２００（図２Ａ）のメモリ２０２に格納した各プログラム、モジュール、データ構造に類似したプログラム、モジュール、データ構造、又はそのサブセットを格納する。更に、メモリ４７０は、携帯型多機能デバイス２００のメモリ２０２にはない追加の各プログラム、モジュール、及びデータ構造を、必要に応じて格納する。例えば、デバイス４００のメモリ４７０は、任意に、描画モジュール４８０、プレゼンテーションモジュール４８２、ワード処理モジュール４８４、ウェブサイト作成モジュール４８６、ディスクオーサリングモジュール４８８、及び／又は、スプレッドシートモジュール４９０を格納する。一方、これらのモジュールは、携帯型多機能デバイス２００（図２Ａ）のメモリ２０２には格納されない場合もある。
【０１２６】
図４で特定した各要素は、先に言及したメモリデバイスの１つ以上に格納されてもよい。前項で説明した各モジュールは、上述の機能を実行する命令セットに対応する。上述のモジュール又はプログラム（例えば命令セット）は、別個のソフトウェアプログラム、手順、又はモジュールとして実装する必要はなく、各種実施形態において、これらモジュールの種々のサブセットを組み合わせる、又は、再配置することも可能である。いくつかの実施形態において、メモリ４７０は上述したモジュール及びデータ構造のサブセットを格納してもよく、更に、メモリ４７０は、上述のもの以外の追加のモジュール及びデータ構造を格納してもよい。
【０１２７】
次に、例えば携帯型多機能デバイス２００で実装可能なユーザインタフェースの各実施形態について説明する。
【０１２８】
図５Ａは、いくつかの実施形態に係る携帯型多機能デバイス２００のアプリケーションのメニュー用ユーザインタフェースの一例を示す図である。同様のユーザインタフェースをデバイス４００に実装してもよい。いくつかの実施形態において、ユーザインタフェース５００は、以下の要素又はそのサブセット又はスーパーセットを含む。
●セルラ信号やＷｉ−Ｆｉ信号等、１つ又は複数の無線通信用の１つ又は複数の信号強度インジケータ５０２
●時刻５０４
●ブルートゥース（登録商標）インジケータ５０５
●バッテリ状態インジケータ５０６
●以下の頻用するアプリケーション用アイコンを含むトレー５０８
○未応答の通話又はボイスメールメッセージの個数を示すインジケータ５１４を任意に含む、「電話」とラベル付けした電話モジュール２３８用アイコン５１６
○未読電子メールの個数を示すインジケータ５１０を含む、「メール」とラベル付けした電子メールクライアントモジュール２４０用アイコン５１８
○「ブラウザ」とラベル付けしたブラウザモジュール２４７用アイコン５２０
○ｉＰｏｄ（アップル社の商標）モジュール２５２とも呼ぶ、「ｉＰｏｄ」とラベル付けしたビデオ・音楽プレーヤモジュール２５２用アイコン５２２
●上記以外のアプリケーション用アイコン
○「メッセージ」とラベル付けしたＩＭモジュール２４１用アイコン５２４
○「カレンダー」とラベル付けしたカレンダーモジュール２４８用アイコン５２６
○「写真」とラベル付けした画像管理モジュール２４４用アイコン５２８
○「カメラ」とラベル付けしたカメラモジュール２４３用アイコン５３０
○「オンラインビデオ」とラベル付けしたオンラインビデオモジュール２５５用アイコン５３２
○「株式」とラベル付けした株式ウィジェット２４９−２用アイコン５３４
○「地図」とラベル付けした地図モジュール２５４用アイコン５３６
○「天気」とラベル付けした天気ウィジェット２４９−１用アイコン５３８
○「時計」とラベル付けしたアラーム時計ウィジェット２４９−４用アイコン５４０
○「ワークアウト支援」とラベル付けしたワークアウト支援モジュール２４２用アイコン５４２
○「ノート」とラベル付けしたノートモジュール２５３用アイコン５４４
○デバイス２００とその種々のアプリケーション２３６の設定に対するアクセスを提供する、「設定」とラベル付けした設定アプリケーション又はモジュール用アイコン５４６
【０１２９】
当然ながら、図５Ａに図示のアイコンのラベルは単なる例示である。例えば、ビデオ・音楽プレーヤモジュール２５２用アイコン５２２は、「音楽」又は「音楽プレーヤ」とラベル付けしてもよい。また、任意に、上述以外のラベルを種々のアプリケーションアイコンに用いることもある。いくつかの実施形態において、各アプリケーションアイコンに用いるラベルは、各アプリケーションアイコンに対応するアプリケーションの名称を含む。いくつかの実施形態では、ある特定のアプリケーションアイコンに用いるラベルは、該特定のアプリケーションアイコンに対応するアプリケーションの名称とは異なる。
【０１３０】
図５Ｂは、ディスプレイ５５０（例えば、タッチスクリーンディスプレイ２１２）とは別個のタッチ感知面５５１（例えば、タブレット又はタッチパッド４５５、図４参照）を備えるデバイス（例えば、デバイス４００、図４参照）上のユーザインタフェースの一例を示す図である。デバイス４００は、任意に、タッチ感知面５５１上の接触強度を検出するための１つ以上の接触強度センサ（例えば、１つ以上のセンサ４５７）、及び／又は、デバイス４００のユーザに対する触知出力を生成するための１つ以上の触知出力生成器４５９を、更に備える。
【０１３１】
以下に示す各例の一部は、タッチスクリーンディスプレイ２１２（タッチ感知面とディスプレイの組合せ）上の入力に関するものであるが、いくつかの実施形態において、図５Ｂに示すように、デバイスはディスプレイとは別個のタッチ感知面上の入力を検出する。いくつかの実施形態では、タッチ感知面（例えば、図５Ｂの５５１）は、ディスプレイ（例えば、５５０）上の主軸（例えば、図５Ｂの５５３）と合致する主軸（例えば、図５Ｂの５５２）を有する。これらの実施形態によれば、デバイスは、タッチ感知面５５１との接触（例えば、図５Ｂの５６０と５６２）を、ディスプレイ上の各位置に対応する位置（例えば、図５Ｂでは５６０は５６８に対応し、５６２は５７０に対応する）で検出する。タッチ感知面がディスプレイと別個の場合、このようにして、多機能デバイスでは、タッチ感知面（例えば、図５Ｂの５５１）上でデバイスが検出するユーザ入力（例えば、接触５６０、５６２、ならびにその移動）を用いて、デバイスのディスプレイ（例えば図５Ｂの５５０）上のユーザインタフェースが操作される。また、必要に応じて、本明細書に開示の他のユーザインタフェースに同様の方法を用いることは言うまでもない。
【０１３２】
更に、以下に挙げる各例は、主に指入力（例えば、指接触、指タップジェスチャ、指スワイプジェスチャ）に関するものであるが、いくつかの実施形態では、当然のことながら、指入力の１つ以上を、他の入力デバイス（例えば、マウスやスタイラスによる入力）からの入力で代用可能である。例えば、スワイプジェスチャに代えて、マウスクリック（例えば、接触の代わり）と、それに続くスワイプの経路に沿ったカーソル移動（例えば、接触の移動の代わり）を行うこともある。別の例として、タップジェスチャに代えて、タップジェスチャの位置にカーソルを置いた状態でマウスクリックを行うこともある（例えば、接触検出とその後の接触検出の終了の代わり）。同様に、複数のユーザ入力が同時に検出される場合は、必要に応じて、複数のコンピュータマウスの同時使用やマウスと指入力の同時使用も、当然ながら行われる。
【０１３３】
図６Ａは、パーソナル電子デバイス６００の一例を示す図である。デバイス６００は本体６０２を備える。いくつかの実施形態において、デバイス６００は、デバイス２００や４００（例えば、図２Ａ〜４Ｂ）について記載した構成の一部又は全てを含むことができる。いくつかの実施形態では、デバイス６００は、タッチ感知ディスプレイスクリーン６０４（以下、タッチスクリーン６０４）を備える。あるいは、タッチスクリーン６０４に加えて、又はこれに代えて、デバイス６００は、ディスプレイ及びタッチ感知面を有する。デバイス２００や４００と同様、いくつかの実施形態では、タッチスクリーン６０４（又はタッチ感知面）は、受けた接触（例えば、タッチ）の強度を検出するための１つ以上の接触強度センサを備えてもよい。タッチスクリーン６０４（又はタッチ感知面）の１つ以上の強度センサは、タッチ強度を表す出力データを提供可能であり、デバイス６００のユーザインタフェースはタッチ強度に基づいて各タッチに応答可能である。これは、強度の異なるタッチにより、デバイス６００上で異なるユーザインタフェース動作を呼び出し可能であることを意味する。
【０１３４】
タッチ強度の検出・処理技術は、例えば、以下の関連出願、２０１３年５月８日出願の国際特許出願第ＰＣＴ／ＵＳ２０１３／０４００６１号、「Ｄｅｖｉｃｅ, Ｍｅｔｈｏｄ, ａｎｄ Ｇｒａｐｈｉｃａｌ Ｕｓｅｒ Ｉｎｔｅｒｆａｃｅ ｆｏｒ Ｄｉｓｐｌａｙｉｎｇ Ｕｓｅｒ Ｉｎｔｅｒｆａｃｅ Ｏｂｊｅｃｔｓ Ｃｏｒｒｅｓｐｏｎｄｉｎｇ ｔＯ ａｎ Ａｐｐｌｉｃａｔｉｏｎ」、及び、２０１３年１１月１１日出願の国際特許出願第ＰＣＴ／ＵＳ２０１３／０６９４８３号、「Ｄｅｖｉｃｅ, Ｍｅｔｈｏｄ, ａｎｄ Ｇｒａｐｈｉｃａｌ Ｕｓｅｒ Ｉｎｔｅｒｆａｃｅ ｆｏｒ Ｔｒａｎｓｉｔｉｏｎｉｎｇ Ｂｅｔｗｅｅｎ Ｔｏｕｃｈ Ｉｎｐｕｔ ｔｏ Ｄｉｓｐｌａｙ Ｏｕｔｐｕｔ Ｒｅｌａｔｉｏｎｓｈｉｐｓ」に開示されており、その全内容が参照により本明細書に組み込まれる。
【０１３５】
いくつかの実施形態において、デバイス６００は、１つ以上の入力機構６０６及び６０８を備える。入力機構６０６及び６０８を備える場合、該入力機構は物理的デバイスとすることが可能である。物理的な入力機構は、例えば、プッシュボタン及び回転機構が挙げられる。いくつかの実施形態では、デバイス６００は、１つ以上の取り付け機構を備える。該取り付け機構を備える場合、デバイス６００を、例えば、帽子、眼鏡、イヤリング、ネックレス、シャツ、ジャケット、ブレスレット、時計バンド、チェーン、ズボン、ベルト、靴、財布、バックパック等に取り付けることができる。こうした取り付け機構を備えれば、ユーザ自身がデバイス６００を身につけることができるようになる。
【０１３６】
図６Ｂは、パーソナル電子デバイス６００の一例を示す。いくつかの実施形態において、デバイス６００は、図２Ａ、図２Ｂ、図４を参照して上述した構成要素の一部又は全てを含むことができる。デバイス６００は、Ｉ／Ｏ部６１４を１つ以上のコンピュータプロセッサ６１６及びメモリ６１８に動作可能に接続するバス６１２を有する。Ｉ／Ｏ部６１４は、タッチ感知要素６２２と、任意に接触強度感知要素６２４を装備可能なディスプレイ６０４に接続可能である。更に、Ｉ／Ｏ部６１４は、アプリケーション及びオペレーティングシステムデータを、Ｗｉ−Ｆｉ、ブルートゥース、近接通信（ＮＦＣ）、セルラ、及び／又は、他の無線通信技術を介して受信する通信部６３０に接続可能である。デバイス６００は、入力機構６０６、及び／又は、入力機構６０８を備えることができる。入力機構６０６の例として、回転可能な入力デバイス、又は押下・回転可能な入力デバイスであってよい。いくつかの例では、入力機構６０８はボタンであってもよい。
【０１３７】
いくつかの例において、入力機構６０８はマイクロホンであってよい。パーソナル電子デバイス６００は、ＧＰＳセンサ６３２、加速度計６３４、方位センサ６４０（例えば、コンパス）、ジャイロスコープ６３６、モーションセンサ６３８、及び／又は、これらの任意の組み合わせ等、様々なセンサを備えることができる。また、搭載可能な各センサや計器はすべて、Ｉ／Ｏ部６１４に動作可能に接続することができる。
【０１３８】
パーソナル電子デバイス６００のメモリ６１８として、コンピュータにより実行可能な命令を格納するコンピュータ読み取り可能な非一過性記憶媒体を用いることができる。この記憶媒体に格納された命令は、例えば、１つ以上のコンピュータプロセッサ６１６により実行されると、各コンピュータプロセッサに処理８００〜９００（図８〜９）を含む以下に記載の技法を実行させることができる。コンピュータが実行可能な命令は、命令実行システム、装置、又はデバイスにより用いられる、又は、該システム、装置、又はデバイスに関連して用いられるコンピュータ読み取り可能な任意の非一過性記憶媒体内に保存及び／又は伝送可能である。上記命令実行システム、装置、又はデバイスは、例えば、コンピュータを用いたシステム、プロセッサを含むシステム、又は、該命令実行システム、装置、又はデバイスから命令を取得かつ実行可能な他のシステム等が挙げられる。パーソナル電子デバイス６００は、図６Ｂに図示の構成要素や形態に限られず、様々な形態の非図示又は追加の構成要素を備えることができる。
【０１３９】
本明細書に記載の「アフォーダンス」は、デバイス２００、４００、及び／又は、６００（図２、４及び６）のディスプレイスクリーン上に表示し得るグラフィカル・ユーザインタフェース・オブジェクトを指す。例えば、画像（例えば、アイコン）、ボタン、及び、テキスト（例えば、リンク）は、各々アフォーダンスを構成し得る。
【０１４０】
本明細書に記載の「フォーカスセレクタ」は、ユーザインタフェースにおいてユーザが現在操作中の箇所を示す入力要素のことを言う。カーソルや他の位置マーカを含むいくつかの実装例において、特定のユーザインタフェース要素（例えば、ボタン、ウィンドウ、スライダ、又は他のユーザインタフェース要素）上にカーソルがある間にタッチ感知面（例えば、図４のタッチパッド４５５又は図５Ｂのタッチ感知面５５１）上で入力（例えば、押圧入力）を検出すると、該特定のユーザインタフェース要素が検出した入力に従って調整されるように、カーソルは「フォーカスセレクタ」として作用する。タッチスクリーンディスプレイ上のユーザインタフェース要素の直接操作が可能なタッチスクリーンディスプレイ（例えば、図２Ａのタッチ感知ディスプレイシステム２１２、又は、図５Ａのタッチスクリーン２１２）を含むいくつかの実施形態において、特定のユーザインタフェース要素（例えば、ボタン、ウィンドウ、スライダ、又は他のユーザインタフェース要素）の位置で入力（例えば、接触による押圧入力）をタッチスクリーンディスプレイ上で検出すると、該特定のユーザインタフェース要素が検出した入力に従って調整されるように、タッチスクリーン上の検出接触は「フォーカスセレクタ」として作用する。いくつかの実装例では、タッチスクリーンディスプレイ上で接触やカーソルを対応して移動させる（例えば、タブキーや矢印キーを用いて、あるボタンから別のボタンへのフォーカスの移動）ことなく、フォーカスはユーザインタフェースのある領域から同ユーザインタフェースの別の領域へ移動する。こうした実装例では、フォーカスセレクタは、ユーザインタフェースの異領域間をまたぐフォーカスの移動に伴って移動する。フォーカスセレクタがどのような特定の形態をとろうと、フォーカスセレクタは通常、ユーザの意図するユーザインタフェース操作を伝達（例えば、ユーザが操作しようとするユーザインタフェース要素をデバイスに対して示すことで）するために、ユーザが制御するユーザインタフェース要素（又はタッチスクリーンディスプレイ上の接触）である。例えば、押圧入力をタッチ感知面（例えばタッチパッド又はタッチスクリーン）上で検出中の各ボタン上のフォーカスセレクタ（例えば、カーソル、接触、又は、選択ボックス）の位置は、（デバイスのディスプレイ上に表示する他のユーザインタフェース要素に対して）ユーザがそのボタンの有効化を意図していることを示すものである。
【０１４１】
本明細書及び特許請求の範囲に記載する接触の「特性強度」は、接触の１つ以上の強度に基づくその接触の特性を指す。いくつかの実施形態において、特性強度は複数の強度サンプルに基づく。また、特性強度は、任意に、既定数の強度サンプル、又は、既定のイベント（例えば接触検出後、接触のリフトオフ検出前、接触の移動開始を検出する前又は後、接触終了の検出前、接触強度の増大を検出する前又は後、及び／又は、接触強度の低下を検出する前又は後）に対する、所定時間（例えば、０．０５、０．１、０．２、０．５、１、２、５、１０秒）内に収集した強度サンプル群に基づく。接触の特性強度は、任意に、接触強度の最大値、接触強度の中間値、接触強度の平均値、接触強度の上位１０パーセンタイル値、接触強度の最大値の半値、接触強度の９０％最大値等の１つ以上に基づく。いくつかの実施形態では、接触の持続期間を用いて特性強度を判定する（例えば、特性強度が時間経過中の強度の平均である場合）。いくつかの実施形態では、特性強度は、１つ以上の強度閾値群との比較により、ユーザが動作を行ったか否かを判定する。例えば、１つ以上の強度閾値群は、第１の強度閾値と第２の強度閾値とを含んでよい。この例の場合、第１の閾値を超えない特性強度を有する接触は第１の動作、第１の閾値を超えるが第２の閾値を超えない特性強度を有する接触は第２の動作、第２の閾値を超える特性強度を有する接触は第３の動作となる。いくつかの実施形態では、特性強度と１つ以上の閾値を比較することで、第１と第２の動作のいずれかの実行判定ではなく、１つ以上の動作を実行するか否か（例えば、各動作を実行する、又は各動作の実行を控える）を判定する。
【０１４２】
いくつかの実施形態では、特性強度を判定するために、ジェスチャの一部を特定する。例えば、タッチ感知面は、開始位置から終了位置に遷移して終了位置で接触強度が大きくなる連続的なスワイプ接触を受ける場合がある。この例では、終了位置での接触の特性強度は、例えば、連続的なスワイプ接触の全体ではなく、その一部（例えば、終了位置でのスワイプ接触の部分）のみに基づくことが考えられる。いくつかの実施形態では、接触の特性強度を判定する前に、スワイプ接触の強度に平滑化アルゴリズムを適用してもよい。例えば、平滑化アルゴリズムは、任意に、単純スライド移動平均による平滑化アルゴリズム（unweighted sliding-average smoothing algorithm）、三角平滑化アルゴリズム（triangular smoothing algorithm）、中央値フィルタ平滑化アルゴリズム（median filter smoothing algorithm）、及び／又は、指数平滑化アルゴリズム（exponential smoothing algorithm）の１つ以上を含む。状況によっては、こうした平滑化アルゴリズムでは、特性強度の判定を目的として、スワイプ接触強度の狭小なスパイク（spike）やディップ（dip）を除去する。
【０１４３】
タッチ感知面上の接触強度は、接触検出強度の閾値、弱押圧強度の閾値、強押圧強度の閾値、及び／又は、１つ以上の上記以外の強度閾値等の、１つ以上の強度閾値との比較による特徴付けも可能である。いくつかの実施形態において、弱押圧強度の閾値は、通常物理的マウス又はトラックパッドボタンのクリックに関連付けられる動作をデバイスが実行する際の強度に対応する。いくつかの実施形態では、強押圧強度の閾値は、通常物理的マウス又はトラックパッドボタンのクリックに関連付けられる動作とは異なる動作をデバイスが実行する際の強度に対応する。いくつかの実施形態では、弱押圧強度の閾値未満（かつ、接触が検出不可となる公称接触検出強度の閾値を超える等）特性強度で接触が検出されると、デバイスは、弱押圧強度や強押圧強度の閾値に関連付けた動作を実行することなく、タッチ感知面上の接触の移動に従ってフォーカスセレクタを移動させる。特に明記しない限り、上述した強度の閾値は、概して、図示ユーザインタフェース各群の間で共通している。
【０１４４】
接触の特性強度が、弱押圧強度の閾値未満の強度から弱押圧強度と強押圧強度の閾値の間の強度へ増大すると、「弱押圧」入力と呼ぶ場合がある。接触の特性強度が、強押圧強度の閾値未満の強度から強押圧強度の閾値を超える強度へ増大すると、「強押圧」入力と呼ぶ場合がある。接触の特性強度が、接触検出強度の閾値未満の強度から接触検出強度と弱押圧強度の閾値の間の強度へ増大すると、タッチ面上の接触の検出と呼ぶ場合がある。接触の特性強度が、接触検出強度の閾値を超える強度から接触検出強度の閾値未満の強度へ低下すると、タッチ面からの接触のリフトオフの検出と呼ぶ場合がある。いくつかの実施形態では、接触検出強度の閾値は０である。別の実施形態では、接触検出強度閾値は０より大きい。
【０１４５】
本明細書に開示したいくつかの実施形態では、各押圧入力を含むジェスチャを検出する、あるいは、接触（又は複数の接触）で行う各押圧入力を検出すると、１つ以上の動作が実行される。ここで、接触（又は複数の接触）の強度が押圧入力強度の閾値を超えて大きくなったことが検出されると、少なくとも部分的にこの検出に基づいて、各押圧入力が検出される。いくつかの実施形態において、押圧入力強度の閾値を超えて各接触強度が大きくなったことを検出すると（例えば、各押圧入力の「ダウンストローク」）、各動作が実行される。いくつかの実施形態では、押圧入力には、各接触強度の押圧入力強度の閾値を超える増大、及び、その後の押圧入力強度の閾値を下回る低下が含まれ、後者の押圧入力強度の閾値を下回る接触強度の低下（例えば、各押圧入力の「アップストローク」）を検出すると、各動作が実行される。
【０１４６】
いくつかの実施形態において、デバイスは、「ジッタ（jitter）」と呼ばれることもある不測の入力を回避するため、強度ヒステリシス（intensity hysteresis）を用いる。具体的には、デバイスは、押圧入力強度の閾値と既定の関係にあるヒステリシス強度の閾値を規定又は選択する（例えば、ヒステリシス強度の閾値は押圧入力強度の閾値よりもＸ強度単位分低い、又は、ヒステリシス強度の閾値は押圧入力強度の閾値の７５％、９０％、又は、任意の妥当な比率値である）。従って、いくつかの実施形態において、押圧入力には、押圧入力強度の閾値を超える接触強度の増大と、それに続く、押圧入力強度の閾値に対応するヒステリシス強度の閾値未満の接触強度の低下が含まれ、後者のヒステリシス強度の閾値未満に接触強度が低下（例えば、押圧入力の「アップストローク」）したことを検出すると、各動作が実行される。同様に、いくつかの実施形態では、ヒステリシス強度の閾値以下の強度から押圧入力強度の閾値以上の強度へ接触強度が増大し、必要に応じて、それに続いてヒステリシス強度以下の強度へ接触強度が低下したことをデバイスが検出した場合にのみ、押圧入力が検出される。こうして押圧入力の検出に応じて（例えば、状況により、接触強度の増大又は低下）、各動作が実行される。
【０１４７】
説明を簡略化するために、以上説明した押圧入力強度の閾値に関連づけた押圧入力、又は、押圧入力を含むジェスチャに応じて実行する動作は、任意に、以下のいずれかを検出するとトリガの対象となる。すなわち、押圧入力強度の閾値を超える接触強度の増大、ヒステリシス強度の閾値未満の強度から押圧入力強度の閾値を超える強度への接触強度の増大、押圧入力強度の閾値未満への接触強度の低下、及び／又は、押圧入力強度の閾値に対応するヒステリシス強度の閾値未満への接触強度の低下のいずれかである。更に、いくつかの例では、接触強度が押圧入力強度の閾値未満へ低下したことを検出すると動作を実行するとしたが、この場合、必要に応じて、押圧入力強度の閾値に一致又はこれより低いヒステリシス強度の閾値未満に接触強度が低下したことを検出することに応じて動作が実行される。
３．デジタルアシスタントシステム
【０１４８】
図７Ａは、様々な例に基づくデジタルアシスタントシステム７００のブロック図である。幾つかの例においては、デジタルアシスタントシステム７００が、独立型コンピュータシステム上に実装されてもよい。幾つかの例においては、デジタルアシスタントシステム７００が、複数のコンピュータに分散されてもよい。幾つかの例においては、例えば図１に示すように、デジタルアシスタントのモジュール及び機能のうちの幾つかがサーバ部分とクライアント部分とに分割され、クライアント部分が（デバイス１０４、１２２、２００、４００又は６００などの）１つ又はそれ以上のユーザデバイス上に存在し、１つ又はそれ以上のネットワークを介して（サーバシステム１０８などの）サーバ部分と通信を行ってもよい。幾つかの例においては、デジタルアシスタントシステム７００が、図１に示すサーバシステム１０８（及び／又はデジタルアシスタントサーバ１０６）を具現化したものであってもよい。デジタルアシスタントシステム７００は、デジタルアシスタントシステムの単なる一例であり、デジタルアシスタントシステム７００が、図示する構成要素よりも多数又は少数の構成要素を有してもよく、２つ以上の構成要素を兼備してもよく、これらの構成要素とは異なる構成又は配置であってもよいことに留意すべきである。図７Ａに示す様々な構成要素が、ハードウェア、１つ又はそれ以上のプロセッサによって実行されるソフトウェア命令、１つ又はそれ以上の信号処理及び／又は特定用途向け集積回路を有するファームウェアあるいはこれらの組み合わせの中に組み込まれていてもよい。
【０１４９】
デジタルアシスタントシステム７００が、メモリ７０２、１つ又はそれ以上のプロセッサ７０４、入力／出力（Ｉ／Ｏ）インターフェース７０６及びネットワーク通信インターフェース７０８を有してもよい。これらの構成要素が、１つ又はそれ以上の通信バス又は信号ライン７１０を介して相互に通信可能であってもよい。
【０１５０】
幾つかの例においては、メモリ７０２が、（１つ又はそれ以上の磁気ディスク記憶装置、フラッシュメモリ装置又はその他の不揮発性ソリッドステートメモリ装置などの）高速ランダムアクセスメモリ及び／又は不揮発性コンピュータ可読記憶媒体などの非一時的なコンピュータ可読媒体を有してもよい。
【０１５１】
幾つかの例においては、Ｉ／Ｏインターフェース７０６が、デジタルアシスタントシステム７００のディスプレイ、キーボード、タッチスクリーン及びマイクロホンなどの入力／出力装置７０６を、ユーザインターフェースモジュール７２２に結合させてもよい。Ｉ／Ｏインターフェース７０６が、ユーザインターフェースモジュール７２２と協働して、（音声入力、キーボード入力、タッチ入力などの）ユーザ入力を受信し、これらを適宜処理してもよい。例えばデジタルアシスタントが独立型ユーザデバイス上に実装されている幾つかの例においては、デジタルアシスタントシステム７００が、図２Ａ、４、６Ａ−Ｂのデバイス２００、４００又は６００に関してそれぞれ記載されている構成要素及びＩ／Ｏ通信インターフェースのうちのいずれを有してもよい。幾つかの例においては、デジタルアシスタントシステム７００が、デジタルアシスタントを具現化したもののサーバ部分を意味してもよく、また、（デバイス１０４、２００、４００又は６００などの）ユーザデバイス上に存在するクライアント側部分を通してユーザと対話してもよい。
【０１５２】
幾つかの例においては、ネットワーク通信インターフェース７０８が、１つ又はそれ以上の有線通信ポート７１２及び／又は無線送受信回路装置７１４を有してもよい。有線通信ポートが、Ｅｔｈｅｒｎｅｔ（登録商標）、ユニバーサルシリアルバス（ＵＳＢ）、ＦＩＲＥＷＩＲＥ（登録商標）などの１つ又はそれ以上の有線インターフェースを介して通信信号を送受信してもよい。無線回路装置７１４が、通信ネットワーク及びその他の通信装置との間でＲＦ信号及び／又は光信号を送受信してもよい。無線装置が、ＧＳＭ、ＥＤＧＥ、ＣＤＭＡ、ＴＤＭＡ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｗｉ−Ｆｉ（登録商標）、ＶｏＩＰ、Ｗｉ−ＭＡＸ（登録商標）などの複数の通信規格、プロトコル及び技術あるいはその他の適切な通信プロトコルのうちのいずれを使用してもよい。ネットワーク通信インターフェース７０８が、デジタルアシスタントシステム７００と、インターネット、イントラネットなどのネットワーク及び／又は携帯電話ネットワーク、無線ローカルエリアネットワーク（ＬＡＮ）などの無線ネットワーク及び／又はメトロポリタンエリアネットワーク（ＭＡＮ）並びにその他の複数のデバイスとの間の通信を可能にしてもよい。
【０１５３】
幾つかの例においては、メモリ７０２又はメモリ７０２のコンピュータ可読記憶媒体が、オペレーティングシステム７１８、通信モジュール７２０、ユーザインターフェースモジュール７２２、１つ又はそれ以上のアプリケーション７２４及びデジタルアシスタントモジュール７２６のうちの全て又は一部を含む複数のプログラム、モジュール、命令及びデータ構造を記憶してもよい。詳細には、メモリ７０２又はメモリ７０２のコンピュータ可読記憶媒体が、以下に記載の処理８００、９００を実行する複数の命令を記憶してもよい。１つ又はそれ以上のプロセッサ７０４が、これらのプログラム、モジュール及び命令を実行し、複数のデータ構造との間で読み出し／書き込みを行ってもよい。
【０１５４】
（Ｄａｒｗｉｎ（登録商標）、ＲＴＸＣ、ＬＩＮＵＸ（登録商標）、ＵＮＩＸ（登録商標）、ｉＯＳ（登録商標）、ＯＳ  Ｘ（登録商標）、ＷＩＮＤＯＷＳ（登録商標）又は、ＶｘＷｏｒｋｓ（登録商標）などの組み込みオペレーティングシステムなどの）オペレーティングシステム７１８が、（メモリ管理、記憶装置制御、電力管理などの）一般的なシステムタスクの制御及び管理のための様々なソフトウェアコンポーネント及び／又はドライバを有し、様々なハードウェア、ファームウェア及びソフトウェアコンポーネントとの間の通信を容易にしてもよい。
【０１５５】
通信モジュール７２０が、デジタルアシスタントシステム７００とその他の複数のデバイスとの間のネットワーク通信インターフェース７０８を介した通信を容易にしてもよい。例えば、通信モジュール７２０が、図２Ａ、４、６Ａ−Ｂにそれぞれ示すデバイス２００、４００及び６００などの電子デバイスのＲＦ回路装置２０８と通信可能であってもよい。通信モジュール７２０が、無線回路装置７１４及び／又は有線通信ポート７１２によって受信されたデータを処理するための様々な構成要素を有してもよい。
【０１５６】
ユーザインターフェースモジュール７２２が、（例えばキーボード、タッチスクリーン、ポインティング装置、コントローラ及び／又はマイクロホンからなどのように）Ｉ／Ｏインターフェース７０６を介して、ユーザから命令及び／又は入力を受信してもよい。ユーザインターフェースモジュール７２２が、（例えば声、音、動画、テキスト、アイコン、振動、触覚フィードバック、光などの）出力を生成し、これを（例えばディスプレイ、オーディオチャネル、スピーカ、タッチパッドを通してなど）Ｉ／Ｏインターフェース７０６を介してユーザに伝達してもよい。
【０１５７】
アプリケーション７２４が、１つ又はそれ以上のプロセッサ７０４によって実行されるように構成されたプログラム及び／又はモジュールを含んでもよい。例えば、デジタルアシスタントシステムが独立型ユーザデバイス上に実装されている場合には、アプリケーション７２４が、ゲーム、カレンダーアプリケーション、ナビゲーションアプリケーション又は電子メールアプリケーションなどのユーザアプリケーションを含んでもよい。デジタルアシスタントシステム７００がサーバ上に実装されている場合には、アプリケーション７２４が、例えばリソース管理アプリケーション、診断アプリケーション又はスケジューリングアプリケーションを含んでもよい。
【０１５８】
メモリ７０２がデジタルアシスタントモジュール７２６（又はデジタルアシスタントのサーバ部分）を記憶してもよい。幾つかの例においては、デジタルアシスタントモジュール７２６が、以下のサブモジュール：入力／出力処理モジュール７２８、音声テキスト化（ＳＴＴ）処理モジュール７３０、自然言語処理モジュール７３２、ダイアログフロー処理モジュール７３４、タスクフロー処理モジュール７３６、サービス処理モジュール７３８及び音声合成モジュール７４０あるいはこれらのサブセット又はスーパーセットを含んでもよい。これらのモジュールのそれぞれが、デジタルアシスタントモジュール７２６の以下のシステム又はデータ及びモデル：オントロジ７６０、語彙索引７４４、ユーザデータ７４８、タスクフローモデル７５４、サービスモデル７５６及びＡＳＲシステムあるいはこれらのサブセット又はスーパーセットを含んでもよい。
【０１５９】
幾つかの例においては、デジタルアシスタントモジュール７２６内に実装された処理モジュール、データ及びモデルを使用して、デジタルアシスタントが、音声入力をテキストに変換すること；ユーザから受信した自然言語入力内に表現されているユーザの意図を特定すること；ユーザの意図を十分に推論するために必要な情報を（例えば単語、ゲーム、意図などの曖昧性を除去することにより）能動的に引き出して取得すること；推論された意図を履行するためのタスクフローを決定すること；推論された意図を履行するためのタスクフローを実行することのうちの少なくとも幾つかを実行してもよい。
【０１６０】
図７Ｂに示す幾つかの例においては、Ｉ／Ｏ処理モジュール７２８が、図７ＡのＩ／Ｏ装置７１６を介してユーザと、あるいは図７Ａのネットワーク通信インターフェース７０８を介して（デバイス１０４、２００、４００又は６００などの）ユーザデバイスと対話して、（音声入力などの）ユーザ入力を取得し、ユーザ入力に対して（音声出力などの）応答を行ってもよい。Ｉ／Ｏ処理モジュール７２８が、ユーザ入力の受信と同時に又はその直後に、ユーザデバイスからのユーザ入力に関するコンテキスト情報を任意選択的に取得してもよい。コンテキスト情報が、ユーザ入力に関するユーザ固有のデータ、語彙及び／又は嗜好を含んでもよい。幾つかの例においては、コンテキスト情報が、ユーザ要求の受信時点におけるユーザデバイスのソフトウェア及びハードウェア状態、及び／又はユーザ要求の受信時点におけるユーザの周囲環境に関する情報を更に含んでもよい。幾つかの例においては、Ｉ／Ｏ処理モジュール７２８が、ユーザ要求に関するフォローアップ質問をユーザに対して送信し、これに対する回答をユーザから受信してもよい。ユーザ要求がＩ／Ｏ処理モジュール７２８によって受信され、ユーザ要求が音声入力を含んでもよい場合には、Ｉ／Ｏ処理モジュール７２８が、音声入力をＳＴＴ処理モジュール７３０（又は音声レコグナイザ）に音声テキスト化変換のために送信してもよい。
【０１６１】
ＳＴＴ処理モジュール７３０が、１つ又はそれ以上のＡＳＲシステムを有してもよい。１つ又はそれ以上のＡＳＲシステムが、Ｉ／Ｏ処理モジュール７２８を介して受信された音声入力を処理して、認識結果を生成してもよい。各ＡＳＲシステムが、フロントエンド音声プリプロセッサを有してもよい。フロントエンド音声プリプロセッサが、音声入力から代表的な特徴を抽出してもよい。例えば、フロントエンド音声プリプロセッサが音声入力に対してフーリエ変換を実行して、音声入力を特徴付けるスペクトル特性を、代表的な多次元ベクトルの列として抽出してもよい。更に、各ＡＳＲシステムが、（音響モデル及び／又は言語モデルなどの）１つ又はそれ以上の音声認識モデルを有し、１つ又はそれ以上の音声認識エンジンを実装してもよい。音声認識モデルの複数の例に、隠れマルコフモデル、ガウス混合モデル、ディープニューラルネットワークモデル、ｎ−ｇｒａｍ言語モデル及びその他の統計的モデルが含まれてもよい。音声認識エンジンの例に、動的タイムワーピング利用エンジン及び重み付き有限状態トランスデューサ（ＷＦＳＴ）利用エンジンが含まれてもよい。１つ又はそれ以上の音声認識モデル及び１つ又はそれ以上の音声認識エンジンを、フロントエンド音声プリプロセッサの抽出された代表的な特徴を処理して、（音素、音素列及びサブワードなどの）中間認識結果を生成し、最終的には（単語、単語列又はトークン列などの）テキスト認識結果を生成するために使用してもよい。幾つかの例においては、音声入力が、サードパーティサービスにより、又はユーザの（デバイス１０４、２００、４００又は６００などの）デバイス上で少なくとも部分的に処理されて、認識結果を生成してもよい。ＳＴＴ処理モジュール７３０が（単語、単語列又はトークン列などの）テキスト列を含む認識結果を生成すると、認識結果が、意図の推論のために自然言語処理モジュール７３２へと渡されてもよい。
【０１６２】
音声テキスト化処理についての詳細は、その開示全体が本願中に引用をもって援用されている、「Ｃｏｎｓｏｌｉｄａｔｉｎｇ Ｓｐｅｅｃｈ Ｒｅｃｏｇｎｉｔｉｏｎ Ｒｅｓｕｌｔｓ」と題された２０１１年９月２０日出願の米国実用新案登録出願第１３／２３６，９４２号に記載されている。
【０１６３】
幾つかの例においては、ＳＴＴ処理モジュール７３０が、認識可能な単語の語彙を有するか、又は音標文字変換モジュール７３１を介してこれにアクセスしてもよい。各語彙単語が、音声認識音標文字で表される単語の１つ又はそれ以上の候補発音と関連付けられてもよい。詳細には、認識可能な単語の語彙が、複数の候補発音と関連付けられた単語を含んでもよい。例えば、語彙が、候補発音
【０１６４】
【数１】
2020077364.tif 000003
と関連付けられた単語「ｔｏｍａｔｏ」を含んでもよい。更に、語彙単語が、ユーザからの以前の音声入力に基づくカスタム候補発音と関連付けられていてもよい。そのようなカスタム候補発音が、ＳＴＴ処理モジュール７３０に記憶され、特定のユーザとデバイス上のユーザのプロファイルを介して関連付けられていてもよい。幾つかの例においては、単語に対する候補発音が、単語の綴り及び１つ又はそれ以上の言語学上の及び／又は発音上の規則に基づいて定められてもよい。幾つかの例においては、候補発音が、例えば周知の標準的な発音に基づいて手動で生成されてもよい。
【０１６５】
幾つかの例においては、候補発音が、候補発音の一般性の度合いに基づいて順位付けされてもよい。例えば、候補発音
【０１６６】
【数２】
2020077364.tif 000004
が、
【０１６７】
【数３】
2020077364.tif 000005
よりも（全ユーザ間で、特定の地域のユーザ間で、又は何らかのその他の適切なユーザのサブセット間で）一般的に使用される発音であるという理由で、
【０１６８】
【数４】
2020077364.tif 000006
よりも高く順位付けされてもよい。幾つかの例においては、候補発音が、候補発音がユーザと関連付けられたカスタム候補発音であるか否かに基づいて順位付けされてもよい。例えば、カスタム候補発音が、標準的な候補発音よりも高く順位付けされてもよい。このことは、標準的な候補発音から外れた独特の発音を有する固有名詞を認識するのに有用である。幾つかの例においては、候補発音が、地理的起源、国籍又は民族などの１つ又はそれ以上の音声的な特徴と関連付けられてもよい。例えば、候補発音
【０１６９】
【数５】
2020077364.tif 000007
が米国と関連付けられる一方で、候補発音
【０１７０】
【数６】
2020077364.tif 000008
が英国と関連付けられてもよい。更に、候補発音の順位が、デバイス上のユーザのプロファイルに記憶されているユーザの（地理的起源、国籍又は民族などの）１つ又はそれ以上の特徴に基づいてもよい。例えば、ユーザが米国と関連していることがユーザのプロファイルから特定されてもよい。ユーザが米国と関連していることに基づいて、（米国と関連付けられた）候補発音
【０１７１】
【数７】
2020077364.tif 000009
が、（英国と関連付けられた）候補発音
【０１７２】
【数８】
2020077364.tif 000010
よりも高く順位付けされてもよい。幾つかの例においては、順位付けされた複数の候補発音のうちの１つが、（最も可能性の高い発音などの）予測発音として選択されてもよい。
【０１７３】
音声入力が受信されると、ＳＴＴ処理モジュール７３０を使用して、音声入力に対応する音素を（例えば音響モデルを用いて）判定し、次に音素と一致する単語を（例えば言語モデルを用いて）判定することを試みてもよい。例えば、ＳＴＴ処理モジュール７３０が、最初に音声入力の一部に対応する音素列
【０１７４】
【数９】
2020077364.tif 000011
を特定した場合には、次に語彙索引７４４に基づき、この列が単語「ｔｏｍａｔｏ」に対応すると判定してもよい。
【０１７５】
幾つかの例においては、ＳＴＴ処理モジュール７３０が、近似的マッチング技術を用いて、発言中の単語を特定してもよい。従って、例えば、ＳＴＴ処理モジュール７３０が、単語「ｔｏｍａｔｏ」に対応する音素列
【０１７６】
【数１０】
2020077364.tif 000012
を、この音素列がこの単語の候補音素列のうちの１つではない場合であっても、単語「ｔｏｍａｔｏ」に対応すると特定してもよい。
【０１７７】
デジタルアシスタントの自然言語処理モジュール７３２（「自然言語プロセッサ」）が、ＳＴＴ処理モジュール７３０によって生成された複数の単語又はトークンの列（「トークン列」）を受信し、トークン列を、デジタルアシスタントによって認識された１つ又はそれ以上の「実施可能な意図」と関連付けるように試みてもよい。「実施可能な意図」が、デジタルアシスタントによって実行可能なタスクを表してもよく、またタスクフローモデル７５４として具現化される、関連するタスクフローを有してもよい。関連するタスクフローが、タスクを実行するためにデジタルアシスタントが行う一連のプログラムされたアクション及びステップであってもよい。デジタルアシスタントの能力の範囲が、タスクフローモデル７５４として具現化及び記憶されるタスクフローの数及び種類又は、換言すれば、デジタルアシスタントが認識する「実施可能な意図」の数及び種類に依存してもよい。デジタルアシスタントの効率性が、自然言語で表現されたユーザ要求から正しい「実施可能な意図」を推論するアシスタントの能力に依存してもよい。
【０１７８】
幾つかの例においては、ＳＴＴ処理モジュール７３０から取得された単語又はトークンの列に加えて、自然言語処理モジュール７３２が、ユーザ要求に関連するコンテキスト情報を、例えばＩ／Ｏ処理モジュール７２８から更に受信してもよい。自然言語処理モジュール７３２が、任意にコンテキスト情報を使用して、ＳＴＴ処理モジュール７３０から受信したトークン列に含まれる情報を、明瞭化、補足及び／又は更に定義してもよい。コンテキスト情報が、例えば、ユーザ嗜好、ハードウェア及び／又はユーザデバイスのソフトウェア状態、ユーザ要求の前、途中又は直後に収集されたセンサ情報、デジタルアシスタントとユーザとの間の以前の（ダイアログなどの）インタラクションなどを含んでもよい。本願中に記載するように、コンテキスト情報が動的であってもよく、時間、場所、ダイアログの内容及びその他の要因に伴って変化してもよい。
【０１７９】
幾つかの例においては、自然言語処理が、例えばオントロジ７６０に基づいていてもよい。オントロジ７６０が、多数のノードを含む階層構造であり、各ノードが、複数の「実施可能な意図」又はその他の複数の「属性」のうちの１つ又はそれ以上に関連している「実施可能な意図」又は「属性」を表してもよい。上述のように、「実施可能な意図」が、デジタルアシスタントが実行することの可能な、即ち「実施可能」であるか又は作用されることの可能なタスクを表してもよい。「属性」が、実施可能な意図又は別の属性の従属的な局面と関連付けられたパラメータを表してもよい。オントロジ７６０内での実施可能な意図ノードと属性ノードとのつながりが、属性ノードによって表されるパラメータが、前記実施可能な意図ノードによって表されるタスクとどのように関係するのかを定義してもよい。
【０１８０】
幾つかの例においては、オントロジ７６０が、複数の実施可能な意図ノード及び複数の属性ノードから形成されてもよい。オントロジ７６０内において、各実施可能な意図ノードが、１つ又はそれ以上の属性ノードと直接に、又は１つ又はそれ以上の中間属性ノードを介してリンクしていてもよい。同様に、各属性ノードが、１つ又はそれ以上の実施可能な意図ノードと直接に、又は１つ又はそれ以上の中間属性ノードを介してリンクしていてもよい。例えば、図７Ｃに示すように、オントロジ７６０が「レストラン予約」ノード（即ち実施可能な意図ノード）を含んでもよい。属性ノード「レストラン」、（予約の）「日付／時刻」及び「人数」が、それぞれ直接に実施可能な意図ノード（即ち「レストラン予約」ノード）にリンクしていてもよい。
【０１８１】
加えて、属性ノード「料理」、「価格帯」、「電話番号」及び「場所」が、属性ノード「レストラン」の従属ノードであってもよく、それぞれが、中間属性ノード「レストラン」を介して「レストラン予約」ノード（即ち実施可能な意図ノード）にリンクしていてもよい。別の一例として、図７Ｃに示すように、オントロジ７６０が「リマインダ設定」ノード（即ち別の実施可能な意図ノード）を更に含んでもよい。属性ノード（リマインダ設定のための）「日付／時刻」及び（リマインダの）「対象」が、それぞれ「リマインダ設定」ノードにリンクされていてもよい。属性「日付／時刻」が、レストランの予約を行うタスクとリマインダを設定するタスクとの双方に関連してもよいことから、オントロジ７６０において、属性ノード「日付／時刻」が「レストラン予約」ノードと「リマインダ設定」ノードとの双方にリンクしていてもよい。
【０１８２】
実施可能な意図ノードが、そのリンクされた概念ノードと共に、「ドメイン」として記載されてもよい。本説明において、各ドメインは、各実施可能な意図と関連付けられていてもよく、特定の実施可能な意図に関連する一群のノード（及びこれらの関連性）を意味する。例えば、図７Ｃに示すオントロジ７６０が、オントロジ７６０内でのレストラン予約ドメイン７６２の一例及びリマインダドメイン７６４の一例を含んでもよい。レストラン予約ドメインが、実施可能な意図ノード「レストラン予約」、属性ノード「レストラン」、「日付／時刻」及び「人数」及び従属的な属性ノード「料理」、「価格帯」、「電話番号」及び「場所」を含んでもよい。リマインダドメイン７６４が、実施可能な意図ノード「リマインダ設定」並びに属性ノード「対象」及び「日付／時刻」を含んでもよい。幾つかの例においては、オントロジ７６０が多数のドメインから形成されてもよい。各ドメインが、１つ又はそれ以上の属性ノードを１つ又はそれ以上の他のドメインと共有してもよい。例えば、「日付／時刻」属性ノードが、レストラン予約ドメイン７６２及びリマインダドメイン７６４に加えて、（スケジューリングドメイン、旅行予約ドメイン、映画チケットドメインなどの）多数の異なるドメインと関連付けられていてもよい。
【０１８３】
図７Ｃは、オントロジ７６０における２つの例示的なドメインを図示しているが、その他のドメインが、例えば「映画を探す」、「電話をかける」、「案内を知る」、「会議のスケジュールを立てる」、「メッセージを送る」及び「質問に答える」、「リストを読む」、「ナビゲーション指示を出す」、「タスク指示を出す」などを含んでもよい。「メッセージを送る」ドメインが、「メッセージを送る」実施可能な意図ノードと関連付けられていてもよく、また、「受信者」、「メッセージの種類」及び「メッセージ本文」などの属性ノードを更に含んでもよい。属性ノード「受信者」が、例えば「受信者名」及び「メッセージ宛先」などの従属的な属性ノードによって更に定義されてもよい。
【０１８４】
幾つかの例においては、オントロジ７６０が、デジタルアシスタントが理解し作用を及ぼすことの可能なすべてのドメイン（及び、これゆえに実施可能な意図）を含んでもよい。幾つかの例においては、オントロジ７６０が、ドメイン又はノード全体を追加又は除去することによって、あるいはオントロジ７６０内のノード間の関連性を変更することによって変更されてもよい。
【０１８５】
幾つかの例においては、相互に関係した複数の実施可能な意図に関連する複数のノードが、オントロジ７６０内で「スーパードメイン」の下にクラスタリングされていてもよい。例えば、「旅行」スーパードメインが、旅行に関連した複数の属性ノード及び実施可能な意図ノードのクラスタを含んでもよい。旅行に関連した複数の実施可能な意図ノードが、「エアライン予約」、「ホテル予約」、「レンタカー」、「案内を知る」、「名所を見つける」などを含んでもよい。（「旅行」スーパードメインなどの）同じスーパードメイン下の複数の実施可能な意図ノードが、多数の属性ノードを共通に有してもよい。例えば、「エアライン予約」、「ホテル予約」、「レンタカー」、「案内を知る」及び「名所を見つける」ための複数の実施可能な意図ノードが、複数の属性ノード「出発地」、「目的地」、「出発日／時刻」、「到着日／時刻」及び「人数」のうちの１つ又はそれ以上を共有してもよい。
【０１８６】
幾つかの例においては、オントロジ７６０内の各ノードが、ノードによって表される属性又は実施可能な意図に関する単語及び／又は句の組と関連付けられていてもよい。各ノードと関連付けられた単語及び／又は句の組のそれぞれが、ノードと関連付けられた、いわゆる「語彙」であってもよい。各ノードと関連付けられた単語及び／又は句の組のそれぞれが、ノードによって表される属性又は実施可能な意図と関連させて、語彙索引７４４内に格納されていてもよい。例えば、再び図７Ｂを参照すると、属性ノード「レストラン」に関する語彙が、「食べ物」、「飲み物」、「料理」、「空腹」、「食べる」、「ピザ」、「ファストフード」、「食事」などの単語を含んでもよい。別の一例としては、実施可能な意図ノード「電話をかける」に関する語彙が、「発信」、「電話」、「ダイヤル」、「着信」、「この番号にかける」、「に電話をかける」などの単語及び句を含んでもよい。語彙索引７４４が、複数の異なる言語の単語及び句を任意選択的に含んでもよい。
【０１８７】
自然言語処理モジュール７３２が、ＳＴＴ処理モジュール７３０から（テキスト列などの）トークン列を受信し、どのノードがトークン列中の単語によって連想されるのかを判定してもよい。幾つかの例においては、トークン列内のある単語又は句が、オントロジ７６０内の１つ又はそれ以上のノードと（語彙索引７４４を介して）関連付けられていることが見いだされた場合に、単語又は句がこれらのノードを「トリガ」又は「起動」させてもよい。自然言語処理モジュール７３２が、起動された複数のノードの量及び／又は相対的な重要度に基づき、複数の実施可能な意図のうちの１つを、デジタルアシスタントが実行するようにユーザが意図するタスクとして選択してもよい。幾つかの例においては、最も多くの「トリガ」されたノードを有するドメインが選択されてもよい。幾つかの例においては、（例えばその様々なトリガされたノードの相対的な重要度に基づく）信頼度の値が最も高いドメインが選択されてもよい。幾つかの例においては、ドメインが、トリガされた複数のノードの数と重要度との組み合わせに基づいて選択されてもよい。幾つかの例においては、デジタルアシスタントが、ユーザからの同様の要求を以前に正しく解釈したか否かなどの更なる要素も、ノードの選択に際して考慮されてもよい。
【０１８８】
ユーザデータ７４８が、ユーザ固有の語彙、ユーザの嗜好、ユーザのアドレス、ユーザのデフォルトの及び二次的な言語、ユーザの連絡先リストならびにその他の、各ユーザの短期的又は長期的な情報などのユーザ固有の情報を含んでもよい。幾つかの例においては、自然言語処理モジュール７３２が、ユーザ固有の情報を用いて、ユーザ入力に含まれる情報を補足し、ユーザの意図を更に定義してもよい。例えば、「私の友達を私の誕生日パーティに招待して」というユーザ要求に対し、自然言語処理モジュール７３２が、そのような情報を要求の中に明示するようにユーザに要求するのではなく、ユーザデータ７４８にアクセスして、「友達」とは誰なのか、「誕生日パーティ」がいつどこで催されるのかを判定してもよい。
【０１８９】
トークン列に基づくオントロジの検索のその他の詳細は、その開示全体が本願中に引用をもって援用されている、「Ｍｅｔｈｏｄ ａｎｄ Ａｐｐａｒａｔｕｓ ｆｏｒ Ｓｅａｒｃｈｉｎｇ Ｕｓｉｎｇ Ａｎ Ａｃｔｉｖｅ Ｏｎｔｏｌｏｇｙ」と題された２００８年１２月２２日出願の米国実用新案登録出願第１２／３４１，７４３号に記載されている。
【０１９０】
幾つかの例においては、自然言語処理モジュール７３２がユーザ要求に基づいて実施可能な意図（又はドメイン）を特定すると、自然言語処理モジュール７３２が、特定された実施可能な意図を表す構造化されたクエリを生成してもよい。幾つかの例においては、構造化されたクエリが、実施可能な意図のためのドメイン内の１つ又はそれ以上のノードの複数のパラメータを含んでもよく、複数のパラメータのうちの少なくとも幾つかに、ユーザ要求において指定されている固有の情報及び要件が組み込まれている。例えば、ユーザが「寿司屋で７時に夕食の予約を取って」と言ってもよい。この場合に、自然言語処理モジュール７３２が、実施可能な意図が「レストランの予約」であることを、ユーザ入力に基づいて正しく認識することが可能であってもよい。オントロジに従って、「レストラン予約」ドメインのための構造化されたクエリが、｛料理｝、｛時刻｝、｛日付｝、｛人数｝などのパラメータを含んでもよい。幾つかの例においては、音声入力及び音声入力からＳＴＴ処理モジュール７３０を用いて導出されたテキストに基づき、自然言語処理モジュール７３２が、レストラン予約ドメインのための部分的に構造化されたクエリを生成し、部分的に構造化されたクエリが、パラメータ｛料理＝「寿司」｝及びパラメータ｛時刻＝「午後７時」｝を含んでもよい。しかし、この例では、ユーザの発言に含まれる情報は、ドメインに関連する構造化されたクエリを完了するのには不十分である。従って、現在入手可能な情報に基づく構造化されたクエリにおいては、｛人数｝及び｛日付｝などのその他の必要なパラメータが指定されない可能性がある。幾つかの例においては、自然言語処理モジュール７３２が、構造化されたクエリの幾つかのパラメータに、受信したコンテキスト情報を組み込んでもよい。例えば、幾つかの例においては、ユーザが「私の近くの」寿司屋を要求した場合には、自然言語処理モジュール７３２が、構造化されたクエリ内の｛場所｝パラメータに、ユーザデバイスからのＧＰＳ座標を組み込んでもよい。
【０１９１】
幾つかの例においては、自然言語処理モジュール７３２が、（任意の完成したパラメータを含む）生成された構造化されたクエリを、タスクフロー処理モジュール７３６（「タスクフロープロセッサ」）へと提供してもよい。タスクフロー処理モジュール７３６が、自然言語処理モジュール７３２から構造化されたクエリを受信し、必要な場合には構造化されたクエリを完成させ、ユーザの最終的な要求を「完了する」のに必要なアクションを実行するように構成されていてもよい。幾つかの例においては、これらのタスクを完了するのに必要な様々な手順が、タスクフローモデル７５４において提供されてもよい。幾つかの例においては、タスクフローモデル７５４が、ユーザから更なる情報を取得するための手順及び、実施可能な意図と関連付けられたアクションを実行するためのタスクフローを含んでもよい。
【０１９２】
上述のように、構造化されたクエリを完了するために、タスクフロー処理モジュール７３６が、更なる情報を取得するためのユーザとの更なるダイアログを開始すること及び／又は、曖昧となる可能性のある発言の曖昧性を除去することが必要であってもよい。そのような対話が必要である場合に、タスクフロー処理モジュール７３６が、ユーザとのダイアログを行うために、ダイアログフロー処理モジュール７３４を呼び出してもよい。幾つかの例においては、ダイアログフロー処理モジュール７３４が、どのように（及び／又はいつ）ユーザに対して更なる情報を要求するのかを決定し、ユーザ応答を受信して処理してもよい。ユーザとの間での質問の送信及び返答の受信が、Ｉ／Ｏ処理モジュール７２８を介して行われてもよい。幾つかの例においては、ダイアログフロー処理モジュール７３４が、オーディオ及び／又はビジュアル出力を介してダイアログ出力をユーザに提供し、ユーザから口頭での又は（クリックなどの）物理的な応答による入力を受信してもよい。上述の例において、タスクフロー処理モジュール７３６が、ドメイン「レストラン予約」と関連付けられた構造化されたクエリのための「人数」及び「日付」情報を決定するためにダイアログフロー処理モジュール７３４を呼び出すと、ダイアログフロー処理モジュール７３４が、「人数は？」及び「何日ですか？」などのユーザへの質問を生成してもよい。ユーザからの返答を受信すると、ダイアログフロー処理モジュール７３４が、構造化されたクエリに欠落していた情報を組み込むか、情報をタスクフロー処理モジュール７３６に転送して、構造化されたクエリから欠落していた情報を完成させてもよい。
【０１９３】
タスクフロー処理モジュール７３６が、実施可能な意図のための構造化されたクエリを完成させると、タスクフロー処理モジュール７３６が、実施可能な意図と関連付けられた最終的なタスクの実行へと進んでもよい。従って、タスクフロー処理モジュール７３６が、構造化されたクエリに含まれる特定のパラメータに従い、タスクフローモデル中の手順及び命令を実行してもよい。例えば、「レストラン予約」という実施可能な意図のためのタスクフローモデルが、レストランに連絡して、特定の時刻での特定の人数の予約を実際に依頼するためのステップ及び命令を含んでもよい。例えば、タスクフロー処理モジュール７３６が、｛レストラン予約、レストラン＝ＡＢＣカフェ、日付＝３／１２／２０１２、時刻＝午後７時、人数＝５｝のような構造化されたクエリを用いて、（１）ＡＢＣカフェのサーバ又はレストラン予約システムＯＰＥＮＴＡＢＬＥ（登録商標）にログオンし、（２）ウェブサイト上のフォームに日付、時刻及び人数を入力し、（３）フォームを送信し、（４）ユーザのカレンダーに予約のカレンダーエントリを記入する手順を実行してもよい。
【０１９４】
幾つかの例においては、タスクフロー処理モジュール７３６が、ユーザ入力で要求されているタスクを完了するため、又はユーザ入力で要求されている情報を返信するために、サービス処理モジュール７３８（「サービス処理モジュール」）の支援を利用してもよい。例えば、サービス処理モジュール７３８が、タスクフロー処理モジュール７３６に代わって、電話をかけ、カレンダーエントリを設定し、地図検索を呼び出し、（レストラン予約ポータル、ソーシャルネットワーキングウェブサイト、銀行ポータルなどの）サードパーティサービスを呼び出すか、又はこれと対話してもよい。幾つかの例においては、各サービスが必要とするプロトコル及びアプリケーションプログラミングインターフェース（ＡＰＩ）が、複数のサービスモデル７５６中の各サービスモデルによって特定されてもよい。サービス処理モジュール７３８が、あるサービスについての適切なサービスモデルにアクセスし、サービスモデルに従ってサービスが必要とするプロトコル及びＡＰＩに従い、サービスの要求を生成してもよい。
【０１９５】
例えば、あるレストランがオンライン予約サービスを許可している場合には、レストランが、予約を行うための必要なパラメータ及び必要なパラメータの値をオンライン予約サービスに送信するためのＡＰＩを指定するためのサービスモデルを提出してもよい。サービス処理モジュール７３８が、タスクフロー処理モジュール７３６によって要求されると、サービスモデル内に記憶されているウェブアドレスを使用して、オンライン予約サービスとのネットワーク接続を確立し、予約のための（時刻、日付、人数などの）必要なパラメータを、オンライン予約サービスのＡＰＩに対応したフォーマットでオンライン予約インターフェースに送信してもよい。
【０１９６】
幾つかの例においては、自然言語処理モジュール７３２、ダイアログフロー処理モジュール７３４及びタスクフロー処理モジュール７３６を集合的に繰り返し使用して、ユーザの意図を推論及び定義し、ユーザの意図を更に明瞭化し洗練するための情報を取得し、最終的にユーザの意図を実現するための応答（即ちユーザへの出力又はタスクの完了）を生成してもよい。生成された応答が、ユーザの意図を少なくとも部分的に実現する音声入力へのダイアログ応答であってもよい。更に、幾つかの例においては、生成された応答が、音声出力としての出力であってもよい。これらの例において、生成された応答が、（音声シンセサイザなどの）音声合成モジュール７４０に送信され、ここでダイアログ応答を音声の形に合成するために処理されてもよい。更に別の複数の例においては、生成された応答が、音声入力でのユーザ要求を満たすことに関連したデータコンテンツであってもよい。
【０１９７】
音声合成モジュール７４０が、ユーザへの音声出力を合成するように構成されていてもよい。音声合成モジュール７４０が、デジタルアシスタントによって提供されたテキストに基づいて、音声出力を合成してもよい。例えば、生成されたダイアログ応答が、テキスト列の形であってもよい。音声合成モジュール７４０が、テキスト列を可聴音声出力に変換してもよい。音声合成モジュール７４０が、テキストから音声出力を生成するために、連結合成、単位選択合成、ダイフォン合成、分野限定合成、フォルマント合成、調音合成、隠れマルコフモデル（ＨＭＭ）に基づいた合成及び正弦波合成を非限定的に含むいかなる適切な音声合成技術を使用してもよい。幾つかの例においては、音声合成モジュール７４０が、個々の単語をこれらの単語に対応する音素列に基づいて合成するように構成されていてもよい。例えば、ある音素列が、生成されたダイアログ応答中の単語に関連付けられていてもよい。音素列が、単語に関連したメタデータ中に格納されていてもよい。音声合成モデル７４０が、メタデータ中の音素列を直接に処理して、単語を音声の形に合成するように構成されていてもよい。
【０１９８】
幾つかの例においては、音声合成が、音声合成モジュール７４０を使用する代わりに（又はこれに加えて）、（サーバシステム１０８などの）遠隔デバイス上で実行され、合成された音声が、ユーザへの出力のためにユーザデバイスへと送信されてもよい。例えば、このことが、デジタルアシスタントへの出力がサーバシステムで生成される実装例において起こってもよい。また、一般にはサーバシステムがユーザデバイスよりも多くの処理能力又は資源を有することから、クライアント側での合成において実際に用いられるであろうよりも高品質の音声出力を得ることが可能であってもよい。
【０１９９】
デジタルアシスタントについての更なる詳細は、その開示全体が本願中に引用をもって援用されている、「Ｉｎｔｅｌｌｉｇｅｎｔ Ａｕｔｏｍａｔｅｄ Ａｓｓｉｓｔａｎｔ」と題された２０１１年１月１０日出願の米国実用新案登録出願第１２／９８７，９８２号及び、「Ｇｅｎｅｒａｔｉｎｇ ａｎｄ Ｐｒｏｃｅｓｓｉｎｇ Ｔａｓｋ Ｉｔｅｍｓ Ｔｈａｔ Ｒｅｐｒｅｓｅｎｔ Ｔａｓｋｓ ｔｏ Ｐｅｒｆｏｒｍ」と題された２０１１年９月３０日出願の米国実用新案登録出願第１３／２５１，０８８号に記載されている。
４．デジタルアシスタントの動作のための処理
【０２００】
図８は、幾つかの例に従ってデジタルアシスタントを動作させるためのプロセス８００のフロー図である。プロセス８００は、例えば、デジタルアシスタントを実装している（デバイス１０４、１０８、２００、４００又は６００などの）１つ又はそれ以上の電子デバイスを用いて実行される。幾つかの例においては、プロセス８００が、（システム１００などの）クライアント−サーバシステムを用いて実行され、プロセス８００の複数のブロックが、（ＤＡサーバ１０６などの）サーバとクライアントサービスとの間で任意の方法で分割されていてもよい。別の複数の例においては、プロセス８００が、サーバと（携帯電話及びスマートウォッチなどの）複数のクライアントデバイスとの間で分割されてもよい。従って、本明細書中においては、プロセス８００の複数の部分が、クライアント−サーバシステムの特定のデバイスによって実行されるものとして記載されているが、プロセス８００がそのように限定されないことが理解されよう。別の複数の例においては、プロセス８００が、（ユーザデバイス１０４などの）単一のクライアントデバイスのみ、又は複数のクライアントデバイスのみを用いて実行される。プロセス８００においては、幾つかのブロックが任意に組み合わせられ、幾つかのブロックの順序が任意選択的に変更され、幾つかのブロックが任意選択的に省略される。幾つかの例においては、更なる複数のステップが、プロセス８００と組み合わせて実行されてもよい。
【０２０１】
ブロック８０５において、自然言語ユーザ入力が、図１のユーザデバイス１０４などのユーザデバイスによって受信される。自然言語ユーザ入力は、例えば音声入力又はテキスト入力に含まれる音声入力であってもよい。幾つかの例においては、自然言語ユーザ入力が、ユーザデバイス及び／又は別のデバイスに対するタスク実行要求であってもよい。例えば、「メインストリート１２００に車を呼んで」という例において、自然言語ユーザ入力が、ユーザデバイスに対する乗車予約サービスを用いた車の予約要求を含んでもよい。幾つかの例においては、自然言語ユーザ入力が、要求されたタスクの１つ又はそれ以上のパラメータを更に指定してもよい。例えば、「メインストリート１２００」は、車の予約のピックアップ場所を指定する。「ドミノでいつものを注文する」という例では、自然言語ユーザ入力が、ピザチェーンのＤｏｍｉｎｏ’ｓで食べ物を注文するというユーザデバイスへの要求を含んでもよい。「いつもの」が、どの食べ物を注文するのかをコンテキスチュアルに更に指定してもよい。
【０２０２】
ブロック８１０で、意図及び、任意選択的に、意図に関連した１つ又はそれ以上のパラメータが特定される。意図及びパラメータが、例えば自然言語ユーザ入力から導出されてもよい。幾つかの例においては、テキスト列が自然言語ユーザ入力から取得され、テキスト列から意図及びパラメータが導出される。テキスト列が、いかなる既知の音声テキスト化技術を用いて取得されてもよい。
【０２０３】
上述のように、意図がユーザによって要求されたタスクに対応していてもよい。従って、ある意図を（例えば判定するなどのように）特定することが、自然言語ユーザ入力で指定されたタスクを特定すること及び／又は、要求されたタスクに対応する意図を、自然言語ユーザ入力の言語及び／又はコンテキストに基づいて推論することを含んでもよい。意図が、ユーザデバイスによって実行されるいかなる種類のタスクに対応していてもよく、特に、以下により詳細に説明するユーザデバイスの１つ又はそれ以上のアプリケーションによって実行されるタスクに対応していてもよい。
【０２０４】
第１の種類のデバイスが第２の種類のデバイスとは異なるタスクを実行してもよいことから、意図及び／又はパラメータがデバイスの種類に基づいて特定されてもよい。例えば、第１の種類のデバイスが車を予約する意図と関連付けられたタスクを実行し、第２の種類のデバイスが、予約を行った後の車の予約の状態を提供する意図と関連付けられたタスクを実行してもよい。
【０２０５】
幾つかの例においては、意図が（意図カテゴリ、複数の意図の組などの）１つ又はそれ以上のドメインに（含まれるなど）関連付けられている。各ドメインが、特定のクラスの複数の意図を含み、複数の意図を直観的にグループ化することが可能であってもよい。例えば、車を予約する、車の予約を取り消す及び／又は、乗車予約に共通に関連付けられたタスクを対象とする任意のその他の複数の意図が、乗車予約ドメインに含まれてもよい。別の一例においては、フライトにチェックインする、フライトをキャンセルする、フライトを変更する、フライト情報を取り出す及び／又は、航空機による旅行に共通に関連するタスクを対象とする任意のその他の複数の意図が、航空機による旅行ドメインに含まれてもよい。別の一例においては、案内を知る、交通情報を取り出す及び／又は、ナビゲーションに共通に関連するタスクを対象とする任意のその他の複数の意図が、ナビゲーションドメインに含まれてもよい。更に別の一例においては、送金する、支払いを受信する及び／又は、金融取引に共通に関連するタスクを対象とする任意のその他の複数の意図が、金融取引ドメインに含まれてもよい。
【０２０６】
パラメータを特定することが、意図に対応するタスクが実行される方法を指定する自然言語入力の部分を特定することを含んでもよい。パラメータが、例えば、（住所又は名所などの）場所、時刻、日付、連絡先、種類、（例えば電子メール又はメッセージに挿入される）テキスト、（距離、金額などの）量及び、場合によってはタスクを実行するソフトウェアアプリケーションの名称を指定してもよい。パラメータが、本明細書中に例示されているタスクのその他の条件を更に指定してもよい。
【０２０７】
パラメータが、例えば１つ以上の検出器を用いて特定されてもよい。複数の検出器のそれぞれが、（自然言語ユーザ入力のテキスト表現などの）自然言語ユーザ入力を構文解析して、１つ又はそれ以上のデータ型を特定するように構成されていてもよい。例えば、第１の検出器がユーザの連絡先を特定するように構成されており、第２の検出器がアドレスを特定するように構成されていてもよい。その他の検出器が、電話番号、氏名、興味のある人物、名所、ＵＲＬ、時刻、便名、荷物追跡番号及び日付を非限定的に含むデータ型を特定してもよい。
【０２０８】
幾つかの例においては、カスタム語彙の単語が、自然言語ユーザ入力において、例えばパラメータとして特定されてもよい。一例においては、１つ又はそれ以上の検出器が、ユーザ固有の用語を特定するように構成されていてもよい。ユーザ固有の用語が、電子デバイスのユーザと関連する、及び／又はこれによって指定される、例えば連絡先名、アドレス、電話番号などのいかなる用語を含んでもよい。別の一例においては、１つ又はそれ以上の検出器が、１つ又はそれ以上のアプリケーションのカスタム語彙をそれぞれ特定するように構成されていてもよい。あるアプリケーションのカスタム語彙が、（Ｕｂｅｒ（登録商標）、Ｌｙｆｔ（登録商標）、Ｉｎｓｔａｇｒａｍ（登録商標）、Ｆｌｉｃｋｒ（登録商標）、ＷｅＣｈａｔ（登録商標）、ＷｈａｔｓＡｐｐ（登録商標）、ＬＩＮＥ（登録商標）、Ｖｉｂｅｒ（登録商標）などの）アプリケーションの名称及び／又は（ＵｂｅｒＸ、ＤＭ、Ｌｙｆｔｌｉｎｅ、ＺｉｐＣａｒ（登録商標）などの）アプリケーションに固有に関連付けられたその他の用語を含んでもよい。幾つかの例においては、カスタム語彙が、語彙索引７４４（図７Ｂ）に含まれてもよい。
【０２０９】
幾つかの例においては、１つ又はそれ以上のアプリケーションが、アプリケーション登録サービスに登録してもよい。サービスが、サーバ１０８及び／又はユーザデバイス１０４によってホスティングされるか、又はアクセス可能であってもよい。この方法での登録が、アプリケーションと関連付けられた１つ又はそれ以上のカスタム語彙用語及び、任意選択的にカスタム語彙用語の１つ又はそれ以上の言語モデルを指定することを含んでもよい。言語モデルが、例えば、複数のカスタム語彙用語のそれぞれについて、１つ又はそれ以上の発音を提示してもよい。この方法で用いられる言語モデルが、その後の自然言語ユーザ入力の分析中にそのようなカスタム用語の使用の特定を補助するために用いられてもよい。
【０２１０】
幾つかの例においては、１つ又はそれ以上のパラメータが、自然言語ユーザ入力から推論されてもよい。「スタジアムまでの車を手配して」という例においては、意図に関連する一パラメータがユーザの現在の場所であることが推論されてもよい。「ジョンに食事代を返金して」という別の一例においては、意図に関連する一パラメータが金額であることが推論されてもよい。
【０２１１】
幾つかの例においては、意図が自然言語ユーザ入力に基づいて特定された後に、意図と関連付けられたパラメータが特定される。更に、幾つかの例においては、意図に関連付けられていないパラメータは特定されない。例えば、（運転案内などの）案内に対応する意図が、（出発地及び／又は目的地などの）１つ又はそれ以上の場所及び／又は交通手段を特定するパラメータと関連付けられていてもよい。「メインストリート１２００までのリアルタイムの運転案内を教えて」という例について考えると、この例では、特定された意図が、案内を示すタスクに対応しており、「運転」が交通手段を指定するパラメータであり、「メインストリート１２００」が場所を指定するパラメータである。ユーザ入力中の「リアルタイムの」という部分は、特定された意図に関連するパラメータではない。従って、「リアルタイムの」が有効なパラメータである意図もありうるものの、動作中は「リアルタイムの」はパラメータとして特定されない。
【０２１２】
別の複数の例においては、１つ又はそれ以上のパラメータが最初に特定され、特定された１つ又はそれ以上のパラメータに基づいて、意図が特定されてもよい。更に別の複数の例においては、意図及び意図と関連付けられたパラメータが同時に特定されてもよい。
【０２１３】
幾つかの例においては、自然言語ユーザ入力の意図及びパラメータが、図１のユーザデバイス１０４などのユーザデバイスによって特定されてもよい。別の複数の例においては、ユーザデバイスが自然言語ユーザ入力（又はその表現）を、図１のサーバ１０８などのサーバに提供し、サーバが自然言語ユーザ入力の意図及びパラメータを、前述のように（判定するなどのように）特定する。その後、サーバが特定された意図及びパラメータをユーザデバイスに（送信するなどのように）提供する。
【０２１４】
任意選択的に、意図及び任意のパラメータが特定された後に、ユーザデバイスが、特定された意図及び／又はパラメータをユーザデバイスのユーザに確認し、また、幾つかの場合においては、推論されたパラメータをユーザデバイスのユーザに確認する。この方法で確認することが、自然言語クエリに応じて、特定された意図及び意図と関連付けられた全ての特定されたパラメータを確認するようにユーザを促すことを含んでもよい。例えば、「空港までの車を手配して」というユーザ入力に応じて、ユーザデバイスが、「あなたの現在の位置から空港までの車を手配してほしいのですか？」という自然言語クエリを提供してもよい。ユーザデバイスによって提供された自然言語クエリが、ユーザデバイスのタッチ感知ディスプレイを用いて、テキストとしてユーザに提供されてもよく、及び／又はユーザデバイスの（図２のスピーカ２１１などの）音声出力コンポーネントを用いて、音声としてユーザに提供されてもよい。ユーザが、例えば自然言語ユーザ入力をユーザデバイスに提供することによって、自然言語クエリに対して応じてもよい。
【０２１５】
任意選択的に、ユーザデバイスが個々のパラメータを確認する。幾つかの例においては、このことが、１つ又はそれ以上のパラメータを確認するようにユーザを促すことを含んでもよい。例えば、「駅までの車を手配して」というユーザ入力に応じて、ユーザデバイスが「ペン駅のことですか？」という自然言語クエリを提供してもよい。別の一例としては、「ジョンに５ドル支払って」というユーザ入力に応じて、ユーザデバイスが「ジョン・スミスさんのことですか？」という自然言語クエリを提供してもよい。ユーザデバイスによって提供される自然言語クエリが、ユーザデバイスのタッチ感知ディスプレイを用いて、テキストとしてユーザに提供されてもよく、及び／又は、ユーザデバイスの（図２のスピーカ２１１などの）音声出力コンポーネントを用いて、音声としてユーザに提供されてもよい。ユーザが、例えば自然言語ユーザ入力をユーザデバイスに提供することによって、自然言語クエリに応じてもよい。
【０２１６】
幾つかの例においては、１つ又はそれ以上のパラメータがコンテキスチュアルである。従って、ユーザデバイスが、１つ又はそれ以上のパラメータを、コンテキスト情報に基づいて（解析するなどのように）決定してもよい。コンテキスト情報が、ユーザデバイスのコンテキスト情報（又はここに記憶された任意のデータ）及び／又はユーザデバイスのユーザのコンテキスト情報であってもよい。例えば、自然言語ユーザ入力が「私の家までの車を手配して」であってもよい。「私の家」がコンテキスチュアルなパラメータであり、かつ実際の場所を指定していないので、ユーザデバイスがユーザデバイスの場所を判定し、判定された場所をパラメータとして（即ち、「私の家」の代わりに）特定してもよい。別の一例としては、自然言語ユーザ入力が「彼に電話を掛け直して」であってもよい。「彼に」がコンテキスチュアルなパラメータであり、かつ具体的な連絡先を指定していないので、ユーザデバイスが、「彼に」によって意図される連絡先を判定し、連絡先をパラメータとして（即ち、「彼に」の代わりに）特定してもよい。
【０２１７】
幾つかの例においては、特定された意図及びパラメータが、インテントオブジェクトとして具現化されてもよい。そのように具現化された各インテントオブジェクトは、（データ構造、プログラミングオブジェクトなどの）オブジェクトであり、各意図に対応している。各インテントオブジェクトが、それぞれが１つ又はそれ以上のパラメータに対応する１つ又はそれ以上の（インスタンス変数などの）フィールドであってもよい。例えば、乗車予約意図に対応するインテントオブジェクトが、以下の疑似コード：
ｐｕｂｌｉｃ  ｆｉｎａｌ  ｃｌａｓｓ  ＲｉｄｅＢｏｏｋｉｎｇＩｎｔｅｎｔ｛
ｐｕｂｌｉｃ  ｆｉｎａｌ  ｓｔａｔｉｃ  Ｓｔｒｉｎｇ  ＩＮＴＥＮＴ＿ＴＹＰＥ＝”ＲｉｄｅＢｏｏｋｉｎｇｌｎｔｅｎｔ”；
ｐｕｂｌｉｃ  ｆｉｎａｌ  ｐａｒａｍｅｔｅｒ＜Ｌｏｃａｔｉｏｎ＞ｐｉｃｋｕｐＬｏｃａｔｉｏｎ；
ｐｕｂｌｉｃ  ｆｉｎａｌ  ｐａｒａｍｅｔｅｒ＜Ｌｏｃａｔｉｏｎ＞ｄｒｏｐＯｆｆＬｏｃａｔｉｏｎ；
ｐｕｂｌｉｃ  ｆｉｎａｌ  ｐａｒａｍｅｔｅｒ＜ｄａｔａＳｔｒｉｎｇ＞ｖｅｈｉｃｌｅＴｙｐｅ；
ｐｕｂｌｉｃ  ｆｉｎａｌ  ｐａｒａｍｅｔｅｒ＜Ｉｎｔｅｇｅｒ＞ｐａｒｔｙＳｉｚｅ；
ｐｕｂｌｉｃ  ｆｉｎａｌ  ｐａｒａｍｅｔｅｒ＜ｄａｔｅＴｉｍｅ＞ｐｉｃｋｕｐＴｉｍｅ；
ｐｒｉｖａｔｅ  ＲｉｄｅＢｏｏｋｉｎｇＩｎｔｅｎｔ（Ｌｏｃａｔｉｏｎ  ｐ，Ｌｏｃａｔｉｏｎ  ｄ，ｄａｔａＳｔｒｉｎｇ  ｖ，Ｉｎｔｅｇｅｒ  ｐ，ｄａｔｅＴｉｍｅ  ｐｔ）｛
ｐｉｃｋｕｐ  Ｌｏｃａｔｉｏｎ＝ｐ；
ｄｒｏｐＯｆｆＬｏｃａｔｉｏｎ＝ｄ；ｖ
ｅｈｉｃｌｅＴｙｐｅ＝ｖ；
ｐａｒｔｙＳｉｚｅ＝ｐ；
ｐｉｃｋｕｐＴｉｍｅ＝ｐｔ；｝｝
として（作成されるなどのように）生成されてもよい。上述の疑似コードは例示的なものであり、インテントオブジェクトが別の方法で具現化されてもよいことは、当業者に理解されるであろう。
【０２１８】
意図をインテントオブジェクトとして具現化することにより、意図が言語非依存であってもよい。上述のように、意図が自然言語ユーザ入力から導出されてもよい。従って、同じ意図が、いかなる数の音声言語で提供される自然言語入力から導出されてもよい。例えば、英語の自然言語ユーザ入力である「Ｓｅｎｄ  ａｎ  Ｕｂｅｒ  ｔｏ  １２００  Ｐａｒｋ  Ａｖｅｎｕｅ」と、ドイツ語の自然言語ユーザ入力である「Ｓｅｎｄｅｎ  Ｓｉｅ  ｅｉｎｅ  Ｕｂｅｒ  ａｕｆ  １２００  Ｐａｒｋ  Ａｖｅｎｕｅ」とは、それぞれ同じ意図が特定される結果をもたらす（及び同じインテントオブジェクトに帰着する）ことになろう。
【０２１９】
ブロック８１５で、意図に関連するソフトウェアアプリケーションを（選択するなどのように）特定してもよい。一般には、このことが、意図に対応するタスクを実行するように構成された１つ又はそれ以上のソフトウェアアプリケーションを特定することを含んでもよい。
【０２２０】
幾つかの例においては、ソフトウェアアプリケーションを特定することが、意図に対応する１つ又はそれ以上のドメインを決定すること及び、ドメインに対応するアプリケーションを特定することを含んでもよい。幾つかの例においては、１つ又はそれ以上の（ニューラルネットワークなどの）機械学習機構を用いて、１つ又はそれ以上の候補ドメインが特定される。例えば、複数の候補ドメインのそれぞれに関連度スコアが割り当てられ、関連度スコアを用いて複数の候補ドメインが順位付けされる。関連度スコアが、自然言語ユーザ入力のテキスト及び／又は自然言語ユーザ入力のコンテキストをニューラルネットワークに提供することによって判定されてもよい。最も高く順位付けされた１つ又はそれ以上の候補ドメインが、意図に関連した１つ又はそれ以上のドメインとして判定されてもよい。幾つかの場合においては、２つ又はそれ以上の最も高く順位付けされた候補ドメインの関連度スコアが、しきい値の範囲内であってもよい。ユーザデバイスが、オントロジ７６０などのオントロジを用いて、これらの候補ドメインを区別してもよい。
【０２２１】
上述のように、１つ又はそれ以上のソフトウェアアプリケーションに、アプリケーション登録サービスが割り当てられてもよい。この方法で登録することが、（乗車予約ドメイン、航空機による旅行ドメイン、ナビゲーションドメインなどの）ドメインのいずれがソフトウェアアプリケーションに対応するのかを指定することを含んでもよい。あるドメインに対応するアプリケーションが、ドメインによって特定される意図のそれぞれを対象としてもよいが、ドメインによって特定される意図の一部のみを対象としてもよい。幾つかの例においては、アプリケーションに個々の意図が割り当てられてもよく、また、アプリケーションを特定することが、特定された意図に対応するアプリケーションを特定することを含んでもよい。
【０２２２】
幾つかの例においては、アプリケーションが特定されたパラメータに従って特定される。例えば、「空港までの黒い車を手配して」というユーザ入力に基づき、乗車予約サービスを用いて車を予約する意図及び、車の種類（即ち「黒い車」）を指定するパラメータが特定されてもよい。幾つかの利用可能なアプリケーションが、一般的に車を予約するように構成されていてもよいが、「黒い車」を予約するように構成されたアプリケーションのみが特定されてもよい。別の一例では、「サムに「こんにちは！」というメッセージを送って」というユーザ入力に基づいて、幾つかのアプリケーションがメッセージを送信するように構成されていてもよいが、サムと連絡を取るための連絡先情報を有するアプリケーションのみが特定されてもよい。
【０２２３】
幾つかの例においては、ユーザデバイス上にインストールされた、及び／又はこれにアクセス可能なアプリケーションのみが特定されてもよい。例えば、幾つかの利用可能なアプリケーションがタスクを実行するように構成されていてもよいが、ユーザデバイスにアクセス可能なアプリケーションのみが特定されてもよい。アクセス可能なアプリケーションは、ユーザデバイス上に存在する、及び／又はインストールされたアプリケーションを含み、また更に、ユーザデバイスによって遠隔アクセス可能な、１つ又はそれ以上のその他のデバイス上などのアプリケーションを含む。
【０２２４】
従って、少なくとも幾つかの実施形態においては、特定されたアプリケーションは、特定されたパラメータに従ってタスクを実行するように構成されており、かつユーザデバイスによってアクセス可能なアプリケーションである。幾つかの例においては、複数のアプリケーションがこの基準を満たしてもよいが、ユーザデバイスが、より少数のアプリケーション又は１つのみのアプリケーションを特定するように希望してもよい。従って、アプリケーションが、ユーザデバイスによるアプリケーションの以前の使用に基づいて更に特定されてもよい。幾つかの例においては、所与の意図について、意図に対応するタスクを実行するために最後に使用されたアプリケーションが特定されてもよい。「ロブに電話を掛けて」というユーザ入力について考えると、意図（即ち電話を掛けること）及びパラメータ「即ち「ロブ」」が特定されてもよい。この例では、電話を掛けるために最後に使用されたアプリケーションが特定される。別の複数の例においては、意図に対応するタスクを実行するために最も頻繁に使用されたアプリケーションが特定される。同じ例では、電話を掛けるたえに最も頻繁に使用されたアプリケーションが特定される。幾つかの例においては、１つ又はそれ以上のパラメータに従って、複数のアプリケーションが更に選択される。例えば、ロブの連絡先に電話を掛けるために最後に使用されたアプリケーション又は、ロブの連絡先に電話を掛けるために最も頻繁に使用されたアプリケーションが特定される。幾つかの例においては、１つ又はそれ以上の特定のタスク及び／又はパラメータについて、デフォルトアプリケーションが、例えばユーザ又はデジタルアシスタントによって指定されてもよい。ユーザが、例えば、第１の連絡先に電話を掛ける時には第１のアプリケーションを使用し、第２の連絡先に電話を掛ける時には第２のアプリケーションを使用するように指定してもよい。
【０２２５】
上述のように、自然言語ユーザ入力が、１つ又はそれ以上のパラメータとして特定可能なカスタム語彙を含んでもよい。幾つかの例においては、そのようなカスタム語彙がアプリケーション名を含み、従って、入力内におけるカスタム語彙の存在に基づいて、アプリケーションが特定されてもよい。例えば、自然言語ユーザ入力が、「Ｓｋｙｐｅ（登録商標）でロブに電話を掛けて」であってもよい。これに応じて、ソフトウェアアプリケーションＳｋｙｐｅ（登録商標）が、特定されたソフトウェアアプリケーションとなってもよい。別の一例においては、自然言語ユーザ入力が、「ビートルズをＳｐｏｔｉｆｙ（登録商標）でかけて」であってもよく、これに応じて、ソフトウェアアプリケーションＳｐｏｔｉｆｙ（登録商標）が、特定されたソフトウェアアプリケーションとなってもよい。
【０２２６】
カスタム語彙が、あるアプリケーションに固有に関連付けられた用語を更に含んでもよい。従って、そのような用語がパラメータとして特定され、任意選択的に、アプリケーションを特定するために使用されてもよい。「ＵｂｅｒＸ（登録商標）につないで」という例では、「ＵｂｅｒＸ（登録商標）」は、ソフトウェアアプリケーションＵｂｅｒ（登録商標）のカスタム語彙の用語であるので、Ｕｂｅｒ（登録商標）がソフトウェアアプリケーションとして特定される。「シャークスが優勝するといいなとツイートして」という例では、「ツイート」が、ソフトウェアアプリケーションＴｗｉｔｔｅｒ（登録商標）のカスタム語彙の用語であるので、Ｔｗｉｔｔｅｒ（登録商標）がソフトウェアアプリケーションとして特定される。
【０２２７】
カスタム語彙が、あるユーザに固有に関連付けられた用語を更に含んでもよい。従って、そのような用語がパラメータとして特定され、任意選択的に、アプリケーションを特定するために使用されてもよい。「上司に電話を掛けて」という例では、「上司」はカスタム語彙のユーザ固有の用語であるので、例えば、ユーザの連絡先リストを特定するためのパラメータとして特定されてもよい。
【０２２８】
幾つかの例においては、ユーザデバイスが、別のデバイスからカスタム語彙を受信してもよい。従って、ユーザデバイスが、他の方法ではデバイスに知られない語彙を特定するように構成されていてもよい。幾つかの例においては、ユーザデバイスが、定期的に及び／又は別のデバイスとの接続の確立に応じて、カスタム語彙を取り出してもよい。別の複数の例においては、ユーザデバイスが、ユーザが認識できない用語を提供したという判定に応じて、別のデバイスからカスタム語彙を検索してもよい。
【０２２９】
幾つかの例においては、特定されたパラメータに従ってタスクを実行するように構成されたいかなるアプリケーションも、ユーザデバイスにアクセスすることが不可能であってもよい。この結果、ユーザデバイスが、特定されたパラメータに従ってタスクを実行するように構成されたアプリケーションに（ダウンロード及び／又はインストールするなどのように）アクセスしてもよい。幾つかの例においては、ユーザデバイスが、複数のソフトウェアアプリケーションを特定して、ユーザにソフトウェアアプリケーションのリストを提示してもよい。ユーザが、複数のアプリケーションのうちの１つ又は複数を選択し、ユーザデバイスが１つ又はそれ以上の選択されたアプリケーションにアクセスしてもよい。
【０２３０】
ブロック８２０で、意図及びパラメータが特定されたソフトウェアアプリケーションに提供される。幾つかの例においては、意図及びパラメータが、インテントオブジェクトとしてソフトウェアアプリケーションに提供される。
【０２３１】
幾つかの例においては、意図及びパラメータが、ユーザデバイスの状態に基づいてソフトウェアアプリケーションに提供されてもよい。一例としては、意図及びパラメータが、ユーザデバイスがロック状態であるか否かに基づいて、選択可能にユーザデバイスに提供されてもよい。幾つかの例においては、デバイスがロック状態である時に、アプリケーションが特定の意図及びパラメータを受信することが許可されてもよい。他の複数の例においては、ユーザデバイスがロック状態でない時に、アプリケーションが特定の意図及びパラメータを受信することが許可されてもよい。ユーザデバイスが所与の状態である場合にアプリケーションが特定の意図を受信することが可能であるか否かが、例えばアプリケーション登録装置を用いた登録プロセス中に、ソフトウェアアプリケーションによって指定されてもよい。
【０２３２】
ブロック８２５で、ユーザデバイスが１つ又はそれ以上の応答をソフトウェアアプリケーションから受信してもよい。幾つかの例においては、ユーザデバイスが、ソフトウェアアプリケーションに提供された各パラメータについて応答を受信する。応答のそれぞれが、例えば、あるパラメータが有効であるか否か、又は更なるユーザ入力が必要であるか否かを示してもよい。あるパラメータが有効であることを応答が示している場合には、パラメータに関して更なるアクションが起こされることはない。
【０２３３】
ソフトウェアアプリケーションによって提供された応答が、パラメータが有効であることを示していない場合には、パラメータの明瞭化が必要であることを応答が示してもよい。例えば、パラメータが不適切（即ち無効）であり、ソフトウェアアプリケーションが、ユーザからの更なる入力を要求してもよい。一例として、「メインストリート１２００に青い車を呼んで」というユーザ入力について考えると、ユーザは青い車を要求しているが、（Ｕｂｅｒ（登録商標）、Ｌｙｆｔ（登録商標）などの）乗車予約アプリケーションが、（例えば青い車がサポートされたパラメータではないか、又は青い車が現在手配できないとアプリケーションが判定するなどのように）青い車の選択を許可しなくてもよい。従って、（ユーザが無効な種類の車を指定しているなどのように）パラメータが不適切である場合には、アプリケーションが、（車の種類などの）パラメータの（有効であるなどの）適切な値が提供されることを要求してもよい。例えば図１０Ａを参照すると、パラメータが不適切であることを示すソフトウェアアプリケーションからの応答に基づいて、ユーザデバイスが、ユーザに有効なパラメータを選択するように促す自然言語クエリ１００２を提供してもよい。この例においては、ユーザデバイスが、ユーザに対して有効な種類の車を選択するように依頼する自然言語クエリを提供する。自然言語クエリ１００２が、ユーザデバイスのタッチ感知ディスプレイを用いてテキストとしてユーザに提供されてもよく、及び／又は、ユーザデバイスのオーディオ出力コンポーネントを用いて音声としてユーザに提供されてもよい。図示するように、幾つかの例においては、ユーザデバイスが、１つ又はそれ以上の候補パラメータ１００４をユーザに選択のために（表示するなどのように）提示してもよい。この例においては、候補パラメータ１００４が、「予算」、「黒い車」、「ＳＵＶ」及び「シェア」を含んでもよい。幾つかの例においては、この方法で提供された候補パラメータが、ソフトウェアアプリケーションによって提供されてもよい。ユーザデバイスが、ユーザデバイスにタッチ入力を提供することによって、及び／又は自然言語ユーザ入力を提供することによって、候補パラメータのうちの１つを選択し、これに応じて、ユーザデバイスが選択された候補パラメータをソフトウェアアプリケーションに提供してもよい。
【０２３４】
ソフトウェアアプリケーションによって提供された応答が、パラメータが有効であることを示していない場合には、パラメータの曖昧性除去が必要であることを応答が示してもよい。例えば、「トムに電話して」というユーザ入力の場合に、電話を掛けるように構成されたソフトウェアアプリケーションに、トムへの連絡のためのパラメータが提供されてもよい。トムへの連絡のための（電話番号などの）連絡先情報を判定する際に、「トム」という名前に該当する複数の連絡先が存在するとソフトウェアアプリケーションが判定すると、どの「トム」が意図されているのかを示すようにソフトウェアアプリケーションが要求してもよい。
【０２３５】
ソフトウェアアプリケーションが、ユーザ入力に基づいてパラメータの曖昧性を除去するようにユーザデバイスに要求してもよい。要求の一部として、ソフトウェアアプリケーションが、複数の候補パラメータを含む曖昧性除去リストを応答の中に任意選択的に含める。ソフトウェアアプリケーションがユーザ入力に基づいて曖昧性の除去を要求する場合には、デバイスが、ユーザに候補パラメータを選択するように求める自然言語クエリを提供してもよい。更に、曖昧性除去リストの候補パラメータが、ユーザの選択を可能とするように表示されてもよい。ユーザが、例えば、タッチ入力を提供すること及び／又は自然言語ユーザ入力を提供することによって、複数の候補パラメータのうちの１つを選択してもよく、またユーザデバイスが、選択された候補パラメータをソフトウェアアプリケーションに提供してもよい。
【０２３６】
ソフトウェアアプリケーションが、ユーザデバイスがユーザ入力なしにパラメータの曖昧性を除去することを要求してもよい。従って、ユーザデバイスが、ユーザデバイス、ソフトウェアアプリケーション及び／又はパラメータのコンテキストに基づいてパラメータの曖昧性を自動的に除去してもよい。例えば、ユーザデバイスが、ユーザが最後に連絡した連絡先「トム」を選択してもよい。
【０２３７】
幾つかの場合においては、ソフトウェアアプリケーションが、パラメータの解析及び／又は曖昧性除去に必要な情報にアクセスすることが不可能であってもよい。ソフトウェアアプリケーションが、連絡先リストにアクセスすることが不可能であり、従って、ある名前について、複数のエントリだけでなく単一のエントリでさえも存在するのか否かを判定することが不可能であってもよい。この結果、ソフトウェアアプリケーションが解析することのできない任意のパラメータの曖昧性をユーザデバイスが除去することを、ソフトウェアアプリケーションが要求してもよい。加えて又は代わりに、ソフトウェアアプリケーションが曖昧性除去を実行できるように、ユーザデバイスがソフトウェアアプリケーションに候補パラメータを提供することを、ソフトウェアアプリケーションが要求してもよい。上述の例を参照すると、ソフトウェアアプリケーションが「トム」自体の曖昧性を除去できるように、デバイスが「トム」の曖昧性を除去するか、又は全ての「トム」の連絡先のリストを提供することを、ソフトウェアアプリケーションが要求してもよい。
【０２３８】
タスクを実行することが、パラメータの１つ又はそれ以上の具体的な種類がユーザによって指定されることを必要としてもよい。更に幾つかの例においては、自然言語ユーザ入力が、１つ又は複数の必要なパラメータを省略してもよい。従って、ソフトウェアアプリケーションが、必要なパラメータがある場合に、そのいずれが指定されていないのかを示す１つ又は複数の応答を、任意に提供してもよい。「メインストリート１２００に車を呼んで」というユーザ入力について考えると、通常はユーザ入力によって車が要求されるが、ユーザ入力に基づいて特定された乗車予約アプリケーションが、特定の車種を選択することを必要としてもよい。従って、（ユーザが車種を指定していないなどのように）パラメータが欠落している場合には、アプリケーションが、（車種などの）パラメータの認識可能な値が提供されることを要求してもよい。再び図１０Ａを参照すると、ユーザに有効なパラメータを指定するように促す自然言語クエリ１００２をユーザデバイスが提供してもよい。その後、ユーザが、例えば候補パラメータのリストから候補パラメータを選択してもよく、また選択されたパラメータが、上述のようにソフトウェアアプリケーションに提供されてもよい。
【０２３９】
各パラメータが有効であり、かつ更なる情報が不要であることをソフトウェアアプリケーションが示すと、ブロック８３０で、ユーザデバイスがソフトウェアアプリケーションに意図を確認してもよい。詳細には、ソフトウェアアプリケーションが意図及び意図と関連付けられたパラメータを与えられれば、意図に対応するタスクを実行可能であるという通知を、ユーザデバイスが要求してもよい。
【０２４０】
ソフトウェアアプリケーションがタスクを実行可能であることを示す通知をソフトウェアアプリケーションが提供すると、任意選択的に、ユーザデバイスがユーザに意図を確認する。例えば、ユーザデバイスが、「ｕｂｅｒＸ（登録商標）をあなたの場所に呼ぶことができます。申し込みましょうか？」という自然言語クエリを提供してもよい。ユーザが、タッチ入力又は自然言語入力によって意図を確認又は拒否してもよい。幾つかの例においては、ソフトウェアアプリケーションによって提供される通知が、ユーザに提供する情報を含んでもよい。情報が、例えば、ユーザが確認を促された時に、より詳しい決定を行うことを可能にしてもよい。例えば、ユーザデバイスが、「ｕｂｅｒＸ（登録商標）をあなたの場所に９分以内に呼ぶことができます。申し込みましょうか？」という自然言語クエリを提供してもよい。
【０２４１】
その後、ユーザデバイスが、ソフトウェアアプリケーションに（例えば命令するなど）意図に対応するタスクを実行させる。
【０２４２】
別の複数の例においては、ソフトウェアアプリケーションがタスクを実行可能であることを示す通知をソフトウェアアプリケーションが提供すると、ユーザデバイスが、ソフトウェアアプリケーションにユーザ確認なしでタスクを実行させる。例えばユーザが、「空港までＬｙｆｔ（登録商標）を呼んで」という自然言語ユーザ入力を提供した場合に、特定されたアプリケーションＬｙｆｔ（登録商標）が、ユーザのために車を予約できることを示すと、ソフトウェアアプリケーションが、タスクをユーザ確認なしで自動的に実行する。幾つかの例においては、あるタスクがユーザ確認なしで実行されるか否かが、ユーザデバイスの種類に基づいている。例えば携帯電話などの第１の種類のデバイスが、１つ又はそれ以上のタスクについてはユーザ確認を必要とし、例えばスマートウォッチなどの第２の種類のデバイスが、１つ又はそれ以上のタスクを、最初にユーザ確認を受信することなく実行してもよい。
【０２４３】
ブロック８３５で、ソフトウェアアプリケーションがタスクの実行に成功したか否かを示す結果応答を、ユーザデバイスがソフトウェアアプリケーションから受信する。
【０２４４】
タスクの実行に失敗したことを示す結果応答が、失敗の１つ又は複数の理由を更に示してもよい。幾つかの例においては、失敗の１つ又は複数の理由を示す、例えば自然言語出力又はテキスト出力などの出力を、ユーザデバイスがユーザに提供してもよい。
【０２４５】
タスクの実行に成功したことを示す結果応答が、１つ又は複数の応答項目を含んでもよい。各応答項目が、タスクの実行時にソフトウェアアプリケーションによって（例えば受信する、生成するなどのように）判定された結果であってもよい。例えば、乗車予約アプリケーションでの車の予約に対応する応答項目が、車種、ナンバープレート番号、運転者名、現在の車の位置、ピックアップ場所、目的地、推定所要時間、推定費用及び推定経路、（例えばＵｂｅｒ  ｐｏｏｌ（登録商標）対ｕｂｅｒＸ（登録商標）などの）サービスの種類などを含んでもよい。別の一例としては、フィットネスアプリケーションのワークアウトセッションを開始することに対応する応答項目が、セッションが開始していること、ワークアウトの持続時間、アクティビティの種類及び１つ又はそれ以上の目標の確認を含んでもよい。
【０２４６】
幾つかの例においては、複数の応答項目のうちの１つ又はそれ以上がユーザに提供されてもよい。例えば図１０Ｂを参照すると、複数の応答項目のうちの１つ又はそれ以上が、自然言語出力１０１２として、テキスト入力及び／又はオーディオ出力としてユーザに提供されてもよい。応答項目が視覚的に提供されてもよい。例えば、推定経路の地図１０１４がユーザに提供されてもよい。応答項目がいかなる所望の方法でユーザに提供されてもよいことが理解されよう。
【０２４７】
幾つかの例においては、１つ又はそれ以上の応答項目がユーザに提供される方法をソフトウェアアプリケーションが指定してもよい。即ち、どの応答項目がユーザに表示及び／又は発音されるのかをソフトウェアアプリケーションが決定し、これに従って、デジタルアシスタントが各応答項目を提供してもよい。
【０２４８】
幾つかの例においては、応答項目がデジタルアシスタントのＵＩ拡張部を用いてどのように提供されるのかを、ソフトウェアアプリケーションが指定してもよい。ユーザデバイスが、例えば、ソフトウェアアプリケーションに（ディスプレイ用のビューコントローラに供給可能なフィールドなどの）一組のビューコントローラパラメータを提供し、これに応じて、ソフトウェアアプリケーションが、一組のビューコントローラパラメータ値を提供してもよい。ビューコントローラの様々なフィールド内にどの応答項目を表示するのか、及び／又は応答項目が各フィールド内に表示される方法を、一組のビューコントローラパラメータが示してもよい。このように、応答項目がソフトウェアアプリケーションによって表示される方法を、デジタルアシスタントが（例えば限定するなどのように）制御してもよい。
【０２４９】
別の複数の例においては、応答項目がどのように提供されるのかをデジタルアシスタントが決定してもよい。更に別の複数の例においては、ユーザがソフトウェアアプリケーションと直接に対話することが可能となるように、ソフトウェアアプリケーションが呼び出される。幾つかの例においては、アプリケーションをこのように呼び出すことが、デジタルアシスタントとのセッションを終了させてもよい。
【０２５０】
幾つかの例においては、タスクの実行に成功すると、タスクと関連付けられた動作の状態を示す１つ又は複数の通知を、（ユーザデバイスのデジタルアシスタントなどの）ユーザデバイスがユーザに提供してもよい。一例として、車がユーザ入力に応じて予約されると、ユーザデバイスが、予約された車の場所、推定到着時刻及び／又は経路を提供してもよい。通知が、動作に関連してエラーが発生したか否かを更に示してもよい。例えば、予約した車が利用不可能となった場合に、ユーザが通知されてもよい。幾つかの例においては、このように提供される通知が、定期的に及び／又はリアルタイムで提供されてもよい。
【０２５１】
幾つかの例においては、タスクの実行に成功すると、タスクと関連付けられた動作をユーザデバイスが調整してもよい。タスクと関連付けられた動作の調整が、意図と関連付けられたパラメータを（例えば除去、追加及び／又は変更するなどのように）調整し、意図を調整されたパラメータと共にソフトウェアアプリケーションに提供することを含んでもよい。例えば、ソフトウェアアプリケーションが車を予約し、車の予約に成功したことをユーザに示してもよい。その後、乗車の新たな目的地を指定することによって、車の予約が調整されてもよい。別の複数の例においては、動作を調整することが、ソフトウェアアプリケーションに別の意図を提供することを含む。意図が、例えば異なるドメインの意図であってもよい。
【０２５２】
幾つかの例においては、デバイスによって表示されるアフォーダンスの選択に応じて、動作が調整される。一例として、あるタスクの実行に成功すると、タスクの実行の成功を知らせるため及び／又はタスクと関連付けられた動作を調整するためのユーザが希望する方法を示すためにユーザが選択可能な１つ又は複数のアフォーダンスを、デバイスが表示してもよい。幾つかの例においては、アフォーダンスがコンテキストに基づいて表示されてもよい。一例として、乗車予約のためのアフォーダンスが、目的地の住所の変更又は乗車予約の取り消しを可能としてもよい（図１３Ａ）。別の一例としては、夕食の予約のためのアフォーダンスが、予約時刻又は人数の変更を可能としてもよい。更に別の一例としては、進行案内のためのアフォーダンスが、目的地の住所又は交通手段の変更を可能としてもよい。更に別の一例としては、電子決済のためのアフォーダンスが、決済の取り消し又は決済金額の変更を可能としてもよい。
【０２５３】
幾つかの場合においては、ソフトウェアアプリケーションがタスクの実行に失敗してもよい。これに応じて、タスクの失敗を知らせるため及び／又はタスクの実行を要求するためにユーザが選択可能な１つ又は複数のアフォーダンスをデバイスが表示してもよい。一例としては、あるアフォーダンスの選択が、以前に失敗した同じタスクをユーザデバイスに実行させてもよい。このことが、同じ意図をソフトウェアアプリケーションに提供することを含んでもよい。意図が、同じ又は異なるパラメータ及び／又はパラメータ値を有してもよい。別の一例としては、あるアフォーダンスの選択が、デバイスに、異なるドメインと関連付けられたタスクなどの異なるタスクを実行させてもよい。
【０２５４】
一例として、動作中に、ソフトウェアアプリケーションがユーザ要求に応答した決済に失敗してもよい（図１３Ｂ）。これに応じて、デバイスが第１のアフォーダンスを表示してもよく、また、第１のアフォーダンスの選択に応じて、ユーザデバイスが意図をソフトウェアアプリケーションに提供してもよい。意図が、以前にソフトウェアアプリケーションに提供されたのと同じ意図（即ち決済を行う意図）であってもよい。ユーザデバイスが第２のアフォーダンスを更に表示してもよく、第２のアフォーダンスの選択に応じて、ユーザデバイスが意図を異なるソフトウェアアプリケーションに提供してもよい。ユーザデバイスが、第３のアフォーダンスを更に表示してもよく、第３のアフォーダンスの表示に応じて、ユーザデバイスが別のソフトウェアアプリケーションへのメッセージ送信のために意図を提供してもよい。例えば、ユーザが、決済の失敗を伝えることを希望してもよい。
【０２５５】
幾つかの例においては、ソフトウェアアプリケーションの許可が、例えば意図及びパラメータがソフトウェアアプリケーションに提供される前に検証される。例えば、ソフトウェアアプリケーションが特定の意図と関連付けられたデータにアクセスする許可を得ているか否かを、ユーザデバイスが判定してもよい。判定が、ユーザデバイス上に構成されている許可に基づいて行われてもよい。「今私がいる場所に黒い車を呼んで」という例においては、「場所」がユーザデバイスの（場所データなどの）コンテキスチュアルな情報を必要とするコンテキスチュアルなパラメータであってもよい。従って、ユーザデバイスの場所を解析して場所をパラメータとしてソフトウェアアプリケーションに提供する前に、ソフトウェアアプリケーションが情報にアクセスすることが許可されているか否かを、ユーザデバイスが最初に判定してもよい。ソフトウェアアプリケーションが情報にアクセスすることが許可されている場合には、動作が上述のように行われる。ソフトウェアアプリケーションが情報にアクセスすることが許可されていない場合には、意図及びパラメータはソフトウェアアプリケーションに提供されず、タスクは実行されない。幾つかの場合においては、ソフトウェアアプリケーションの許可が、複数のデバイス間で行われてもよい。例えば、あるソフトウェアアプリケーションを有する第１のデバイスが、同じソフトウェアアプリケーションを有するユーザの第２のデバイスに許可を与えてもよい。
【０２５６】
幾つかの例においては、自然言語入力が、複数のタスク要求を含んでもよい。従って、自然言語入力に基づいて、複数の意図及び／又は複数のアプリケーションが特定されてもよい。複数の意図のそれぞれと関連付けられたパラメータも、任意選択的に特定されてもよい。例えば「空港までの車を手配して、私のフライト状態を教えて」という自然言語入力が、車を予約する意図とユーザのフライトの状態を取り出す意図との双方を含んでもよい。幾つかの例においては、これらの意図のそれぞれに対応するタスクが、連続して又は同時に実行されてもよい。
【０２５７】
幾つかの例においては、自然言語入力が、複数の関連したタスク要求を含んでもよい。例えば、幾つかの例においては、自然言語ユーザ入力の要求されたタスクが、自然言語入力の別の要求されたタスクの完了に依存してもよい。「空港までの案内を私に電子メールで知らせて」という例では、２つのタスクが要求されている：第１のタスクは案内を知らせることであり、第２のタスクは電子メールを送ることである。「私に」というパラメータは、電子メールを送る意図のための特定の連絡先を指定するパラメータであり、「空港」というパラメータは、案内を知らせる意図のための目的地を指定するパラメータである。案内を電子メールで知らせることは、最初に案内を提供することを必要とするので、第２のタスク（電子メールを送ること）は、第１のタスク（案内を提供すること）に依存する。従って、案内を取り出すタスクが最初に実行される。
【０２５８】
幾つかの例においては、意図がアプリケーション間で提供されてもよい。例えば、あるアプリケーションがあるインテントオブジェクトを別のアプリケーションに提供して、アプリケーションにタスクを実行させてもよい。上述の例では、双方の意図（案内を知らせることと電子メールを送ること）が地図アプリケーションに提供されて、要求された案内を提供してもよい。例えば、第２の意図又は電子メールを送る意図が地図アプリケーションにパラメータとして提供されてもよい。第１の意図又は案内を知らせる意図に従って、地図アプリケーションが要求された案内を提供してもよい。次に、地図アプリケーションが、第２の意図を、例えば案内をパラメータとして含むインテントオブジェクトとして、電子メールアプリケーションに提供してもよい。これに応じて、電子メールアプリケーションが要求された案内を電子メールで知らせてもよい。
【０２５９】
別の一例としては、ユーザが、（ＥＳＰＮアプリケーションなどの）スポーツアプリケーションを見ている間に、「シャークスの試合を見に行くための車を手配して」というユーザ入力を提供してもよい。これに応じて、ゲームに関する情報を有するスポーツアプリケーションが、（車を予約するなどの）意図及び（試合の住所などの）パラメータを乗車予約アプリケーションに転送してもよい。幾つかの場合には、意図及びパラメータが、インテントオブジェクトとして提供されてもよい。
【０２６０】
更に別の一例においては、ユーザが、乗車予約アプリケーションを使用している間に、「私の兄弟に５ドル支払って」というユーザ入力を提供してもよい。これに応じて、乗車予約アプリケーションが、（支払うなどの）意図及びパラメータ（５ドル）を（などの）決済アプリケーション（ＰａｙＰａｌ，Ｖｅｎｍｏ，オンライン決済サービスなど）に転送してもよい。上述のように、幾つかの例においては、意図及びパラメータがインテントオブジェクトとして提供されてもよい。
【０２６１】
幾つかの例においては、意図が複数のデバイス間で提供されてもよい。上述のように、種類の異なる複数のデバイスが、それぞれ異なるタスクを実行するように構成されていてもよい。幾つかの場合においては、自然言語ユーザ入力が、自然言語ユーザ入力の意図に対応するタスクを実行するように構成されていない第１のデバイスに提供されてもよい。第１のデバイスが、意図と関連付けられたタスクが実行されるように、意図を第２のデバイスに提供してもよい。一例として、（携帯電話などの）第１のデバイスが車を予約するように構成されており、（スマートウォッチなどの）第２のデバイスが、予約された車の状態を提供するように構成されていてもよい。ユーザが第２のデバイスを使用して（例えば「空港までＵｂｅｒ（登録商標）を手配して」などの）車の予約を要求すると、第２のデバイスがユーザ入力から意図を導出して、導出された意図を第２のデバイスが実行できないと判定する。その後、タスクが第１のデバイスによって実行可能となるように、第２のデバイスが導出された意図を第１のデバイスに提供してもよい。
【０２６２】
上述のように、デバイスが動作中にユーザに自然言語出力を提供してもよい。例えば、自然言語クエリがユーザに提供されて、パラメータの確認を要求してもよい。幾つかの例においては、１つ又はそれ以上のソフトウェアアプリケーションと関連付けられたタスクフローに従って、自然言語出力がユーザに提供されてもよい。タスクフローが、例えば、提供される自然言語出力の方法及び種類を指定してもよい。例えば、ユーザが（「家までのＬｙｆｔ（登録商標）を手配して」などの）自然言語入力を提供してもよい。ソフトウェアアプリケーションが、意図及び任意の特定されたパラメータを受信した後に、意図と関連付けられたタスクを実行するためには１つ又はそれ以上のパラメータの明瞭化が必要であること及び／又は（ユーザの場所、「家」の住所、車種などの）更なるパラメータが必要であることを示してもよい。従って、全ての必要なパラメータがソフトウェアアプリケーションに提供されるように、タスクによって特定される１つ又はそれ以上の自然言語クエリを、デバイスがユーザに提供してもよい。
【０２６３】
幾つかの例においては、１つ又はそれ以上のタスクフローがデバイス上に記憶されている。従って、デバイスが、タスクフローの個々のクエリを動作中に外部デバイスから取り出すことなく、（自然言語クエリなどの）自然言語出力をユーザに提供してもよい。このような方法でタスクフローを記憶することが、動作の効率性を向上させてもよい。幾つかの例においては、対応するソフトウェアアプリケーションがデバイス上に記憶されている場合には、タスクフローがユーザデバイス上で取り出し及び／又は記憶されてもよい。
【０２６４】
図９は、幾つかの実施形態に従ってデジタルアシスタントを動作させるためのプロセスのフロー図を図示している。プロセス９００が、例えば、図８のブロック８１５及び／又は８２０を非限定的に含む図８のプロセス８００の少なくとも一部を具現化するために使用されてもよい。プロセス９００は、デジタルアシスタントを具現化している（例えばデバイス１０４、１０８、２００、４００又は６００などの）１つ又はそれ以上の電子デバイスを用いて実行される。幾つかの例においては、プロセス９００が（システム１００などの）クライアント−サーバシステムを使用して実行され、プロセス９００の複数のブロックが、（ＤＡサーバ１０６などの）サーバとクライアントデバイスとの間で任意の方法で分割されてもよい。従って、プロセス９００の複数の部分が、本明細書中ではクライアント−サーバシステムの特定のデバイスによって実行されるものとして記載されているが、プロセス９００がそのように限定されないことが理解されよう。別の複数の例では、プロセス９００は（ユーザデバイス１０４などの）１つのみのクライアントデバイスを使用して実行される。プロセス９００においては、幾つかのブロックが任意選択的に組み合わせられ、幾つかのブロックの順序が任意選択的に変更され、幾つかのブロックが任意選択的に省略される。幾つかの例においては、更なる複数のステップが、プロセス９００と組み合わせて実行されてもよい。
【０２６５】
ブロック９０５で、自然言語ユーザ入力が、図１のユーザデバイス１０４などのユーザデバイスによって受信される。上述のように、自然言語ユーザ入力が、ユーザデバイス及び／又は別のデバイスに対するタスク実行要求を含んでもよく、また、要求されたタスクの１つ又は複数のパラメータを更に指定してもよい。
【０２６６】
ブロック９１０で、意図及び、任意選択的に、意図と関連付けられた１つ又はそれ以上のパラメータが特定される。意図及びパラメータが、自然言語ユーザ入力から導出されてもよい。前述のように、意図がユーザデバイスによって実行されるいかなる種類のタスクに対応してもよく、詳細には、ユーザデバイスの１つ又は複数のアプリケーションによって実行されるタスクに対応してもよい。意図と関連付けられたパラメータが、意図に対応するタスクが実行される方法を指定する自然言語入力の部分を特定してもよい。「空港までの車を手配して」という例においては、意図が車を予約するタスクに対応し、「空港」が目的地を指定するパラメータである。ユーザの意図が車を予約することであるので、ユーザの場所も、（推論されるパラメータなどの）パラメータであってもよい。
【０２６７】
ブロック９１５で、意図に対応するタスクが履行可能であるか否かが判定される。幾つかの例においては、判定が、タスクをパラメータに従って実行するように構成されたアプリケーションがユーザデバイスにアクセス可能であるか否かを判定することを含んでもよい。この例では、ユーザデバイスの場所で車を予約するように構成されたアプリケーションにユーザデバイスがアクセス可能であるか否かが判定される。上述のように、アクセス可能なアプリケーションとは、ユーザデバイス上にローカルに記憶されたアプリケーション及び、ユーザデバイスによって遠隔アクセス可能なアプリケーションである。
【０２６８】
意図に対応するタスクが履行可能であるという判定に従って、ブロック９２０で意図及びパラメータがソフトウェアアプリケーションに提供される。例えば、ブロック９１５で、要求されたタスクを任意の特定されたパラメータに従って実行するように構成されたソフトウェアアプリケーションにユーザデバイスがアクセス可能であると判定されると、意図及びパラメータが、タスクを実行するためにアプリケーションに提供される。この例においては、このことが、ユーザの場所で車を予約するように構成されたソフトウェアアプリケーションがユーザデバイスにアクセス可能であると判定することを含む。例えば、乗車予約アプリケーションＬｙｆｔ（登録商標）がユーザデバイス上にインストールされ、本明細書中に記載の例に従って車を予約するために使用されてもよい。
【０２６９】
意図に対応するタスクが履行不可能であるという判定に従って、ブロック９２５で、１つ又はそれ以上のソフトウェアアプリケーションのリストが提供される。１つ又はそれ以上のソフトウェアアプリケーションのリストが、例えば、意図と関連付けられたタスクを任意の特定されたパラメータに従って実行するように構成された１つ又はそれ以上のソフトウェアアプリケーションを含んでもよい。幾つかの例においては、リストの１つ又はそれ以上のソフトウェアアプリケーションが、意図と関連付けられた１つ又はそれ以上のドメインに基づいて特定されてもよい（前述のように、アプリケーションは１つ又は複数のドメインに登録されていてもよい）。図１０Ｃを参照すると、（乗車予約アプリケーションなどの）ソフトウェアアプリケーションのリストが決定されると、ユーザデバイスがリストをユーザに提供してもよい。図示するように、リストを提供することが、１つ又はそれ以上のアプリケーションソフトウェアのリストからアプリケーションを選択するようにユーザに要求する自然言語入力１０２２を提供することを含んでもよい。幾つかの例においては、リストがユーザデバイスによって生成される。別の複数の例においては、ソフトウェアアプリケーションのリストがサーバによって生成されてユーザデバイスに提供され、次にユーザデバイスが、リストを前述のようにユーザに提供してもよい。
【０２７０】
ブロック９３０で、１つ又はそれ以上のソフトウェアアプリケーションのリストからの１つ又はそれ以上のソフトウェアアプリケーションの選択を示すユーザ入力を、ユーザデバイスが受信する。ユーザ入力が、ユーザデバイスのタッチ感知ディスプレイ上のタッチ入力であってもよく、及び／又は自然言語ユーザ入力であってもよい。
【０２７１】
ブロック９３５で、意図及びパラメータが、ユーザによって選択されたソフトウェアアプリケーションに提供される。幾つかの例においては、意図及びパラメータを提供することが、ユーザデバイスがソフトウェアアプリケーションにローカルにアクセス可能となるように、ソフトウェアアプリケーションをダウンロード及び／又はインストールすることを含む。別の複数の例においては、このことが、選択されたアプリケーションに遠隔アクセスすることを含む。
【０２７２】
上述のように、意図及びパラメータに応じて、ソフトウェアアプリケーションが１つ又はそれ以上の応答を提供してもよい。パラメータが検証された後に、ユーザデバイスが意図をソフトウェアアプリケーションに確認し、ソフトウェアアプリケーションにタスクを実行させてもよい。その後、ユーザデバイスが結果応答を受信し、任意選択的に、結果応答の１つ又はそれ以上の応答項目をユーザに提供してもよい。
【０２７３】
ユーザデバイスのユーザに自然言語出力及び／又は自然言語クエリを提供することについて、ここで説明する。幾つかの例においては、自然言語出力及びクエリがユーザに提供される方法が、ユーザデバイスの種類又は状態に依存する。例えば、ユーザデバイスが携帯電話である場合には、ユーザデバイスがテキスト及びオーディオの双方を用いてクエリを提供してもよい。一方、ユーザデバイスがスピーカである場合には、ユーザデバイスがオーディオのみを用いてクエリを提供してもよい。別の一例として、ユーザデバイスが、ヘッドホンがペアリングされていない携帯電話である場合には、ユーザデバイスが、テキスト及び／又は比較的短い自然言語クエリを用いてクエリを提供してもよい。ユーザデバイスにヘッドホンがペアリングされている場合には、ユーザデバイスが、比較的長い自然言語クエリのみを用いてクエリを提供してもよい。
【０２７４】
図１０Ｄ−Ｆは、幾つかの実施形態に基づくデジタルアシスタントの複数の例示的なデータフローを図示したものである。幾つかの例においては、図１０Ｄ−Ｆのデータフローが、プロセス８００、９００のうちの１つ又はそれ以上を用いて具現化されてもよい。図１０Ｄは、幾つかの実施形態に基づくデジタルアシスタントシステム１０３０の例示的な一データフローを図示している。詳細には、図１０Ｄは、アプリケーション登録プロセスのデータフロー及び、タスクの遂行のためのデータフローを図示している。データフロー１０３１−１０４１が、（図１０Ｄに破線として図示されている）アプリケーション登録プロセスと関連付けられていてもよく、またデータフロー１０４３−１０５１が、（図１０Ｄに実線として図示されている）タスクの遂行と関連付けられていてもよい。
【０２７５】
一般に、アプリケーション登録プロセスと関連付けられたデータフローは、アプリケーション及びこれに対応するカスタム語彙が、タスクを実行するためにデジタルアシスタントによってアクセス及び／又は使用されることを可能にする（検証サービスなどの）アプリケーション登録サービスへのアプリケーションの登録に関する。
【０２７６】
動作の際には、データフロー１０３１で、アプリケーションがアプリケーションレビューモジュール１０３２に提出される。アプリケーションに対応する言語モデル及びアプリケーションの意図も、同様に提出されてもよい。言語モデルが、アプリケーション用のカスタム語彙を含んでもよい。次に、データフロー１０３３で、アプリケーションレビューモジュール１０３２が、アプリケーション、カスタム語彙及び／又はアプリケーションの意図を検証サービス１０３４に提供してもよい。検証サービス１０３４が、アプリケーションを有効とするか否かを、例えばアプリケーションがデジタルアシスタントで操作可能であるか否かに基づいて判定してもよい。このことが、例えば、アプリケーションの任意の意図がアプリケーションの１つ又はそれ以上のドメインと対応することを確認することを含んでもよい。例えば、検証サービスが、車を予約する意図と関連付けられたメッセージングアプリケーションを、ドメインと意図との組合せが不適当であるという理由で拒絶してもよい。検証サービス１０３４が、データフロー１０３５で、アプリケーションが有効であるか否かを示す検証応答を提供してもよい。
【０２７７】
アプリケーションが有効であることを検証サービス１０３４が示した場合には、アプリケーションレビューモジュール１０３２が、（検証された）アプリケーションを、アプリケーションストア１０３６に提供する。一般には、アプリケーションは、データフロー１０３９によって示されるように、アプリケーションストア１０３６で、ユーザデバイス１０４０により、ＤＡサーバ１０３８を介してダウンロード及び／又はアクセスされてもよい。幾つかの例においては、ユーザデバイス１０４０が図１のユーザデバイス１０４であってもよく、ＤＡサーバ１０３８が図１のＤＡサーバ１０６であってもよい。この結果、例えば、ユーザデバイス１０４０の（ｉｎｆｏ．ｐｌｉｓｔなどの）アプリケーションリストが更新され、及び／又はＤＡサーバ１０３８と同期されてもよい。データフロー１０４１で、検証サービスが、上述のように自然言語入力の構文解析を支援するために、アプリケーションの（ランタイム語彙などの）カスタム語彙をＤＡサーバ１０３８に提供してもよい。
【０２７８】
一般には、タスクの遂行と関連付けられたデータフローは、意図及び任意選択的に１つ又はそれ以上のパラメータを、意図に対応するタスクの実行のためにアプリケーションに提供することに関する。
【０２７９】
動作の際には、データフロー１０４３で、ユーザデバイス１０４０が自然言語入力をＤＡサーバ１０３８に提供してもよい。幾つかの例においては、自然言語入力が、ユーザデバイス１０４０のデジタルアシスタント１０４２によって提供されてもよい。自然言語入力に基づき、自然言語入力で要求された１つ又はそれ以上のタスク及び意図と関連付けられた１つ又はそれ以上のパラメータを、ＤＡサーバ１０３８が特定してもよい。加えて、ＤＡサーバ１０３８が、タスクを実行するためのアプリケーションを意図によって特定してもよい。幾つかの例においては、特定されたアプリケーション１０４４の名称（又はその他の形の識別名）が、意図のパラメータであってもよい。その後、データフロー１０４５で、ＤＡサーバ１０３８が意図、パラメータ及び特定されたアプリケーション１０４４の識別情報を（ユーザデバイス１０４０のデジタルアシスタント１０４２などの）ユーザデバイス１０４０に提供する。幾つかの例においては、意図及びパラメータが、インテントオブジェクトとしてユーザデバイス１０４０に提供されてもよい。
【０２８０】
これに応じて、特定されたパラメータと関連付けられた情報へのアクセスを特定されたアプリケーション１０４４が許可されているか否かを、デジタルアシスタントが判定する。例えば、パラメータがユーザデバイス１０４０の場所である場合には、アプリケーション１０４４が場所データへのアクセスを許可されているか否かを、デジタルアシスタントがデータ許可部１０４６に対して問い合わせる。
【０２８１】
パラメータのそれぞれについてのデータへのアクセスをアプリケーションが許可されている場合には、（ユーザデバイスのデジタルアシスタント１０４２などの）ユーザデバイスが、意図をアプリケーションに提供する。図示するように、アプリケーションがユーザデバイス１０４０上に存在していてもよい。別の複数の例においては、アプリケーションが１つ又はそれ以上の他の複数のデバイス上に存在し、意図が１つ又はそれ以上のネットワークを介してアプリケーションに送信されてもよい。上述のように、その後、１つ又はそれ以上のパラメータが欠落している、不適切である、及び／又は不明瞭である場合には、アプリケーション１０４４が、ユーザデバイス１０４０のユーザからの入力を要求してもよい。幾つかの例においては、ユーザ入力を求めるクエリが、ＤＡサーバ１０３８によって生成された自然言語クエリとして提供されてもよい。従って、データフロー１０５１で、ユーザデバイス１０４０が、１つ又はそれ以上の自然言語クエリを要求し、その後受信してもよい。全てのパラメータが解析された後に、アプリケーション１０４４が意図と対応付けられたタスクを実行し、タスクの実行に成功したか否かを示す結果応答を提供してもよい。
【０２８２】
図１０Ｄの１つ又はそれ以上のデータフローが、例えば、デジタルアシスタントを具現化している（デバイス１０４、１０８、２００、４００又は６００などの）１つ又は複数の電子デバイスを用いて具現化されてもよい。詳細には、ＤＡサーバ１０３８とユーザデバイス１０４０のデジタルアシスタント１０４２との間で提供されるデータフローが、クライアント−サーバアーキテクチャに依存するものとして図示されている。別の複数の例においては、ＤＡサーバ１０３８がユーザデバイス１０４０上のプロセス及び／又はサービスとして具現化されていてもよい。従って、幾つかの例においては、ＤＡサーバ１０３８とデジタルアシスタント１０４２との間で交換されるデータフローが、ユーザデバイス１０４０上のみで交換されてもよい。
【０２８３】
図１０Ｅは、幾つかの実施形態に基づくデジタルアシスタントシステム１０６０の例示的なデータフローを図示したものである。詳細には、図１０Ｅはアプリケーションの登録プロセスの例示的なデータフローを図示しており、図１０Ｄに示すアプリケーション登録プロセスを具現化するために用いられてもよい。更に、図１０Ｅの幾つかの要素が、図１０Ｄの複数の要素にそれぞれ対応し、同じ参照番号を付与されている。簡潔化のために、これらの機能及び動作は改めて説明しない。
【０２８４】
データフロー１０６５で、検証された語彙が検証サービス１０３４からグローバルアプリケーション語彙ストア１０６０に提供される。一般には、グローバルアプリケーション語彙ストアは、いかなる数及び／又はバージョンのソフトウェアアプリケーションのための言語モデル及び／又は語彙を記憶してもよい。データフロー１０６１及び１０６３において、音声トレーニングモジュール１０６２及び自然言語トレーニングモジュール１０６４が、検証されたアプリケーションと共に供給されたアプリケーション固有の語彙を認識し、自然言語処理するように訓練される。データに基づき、アプリケーション固有の語彙を含む発言をデジタルアシスタントが認識及び処理することを可能にする１つ又はそれ以上の言語モデルを、グローバルアプリケーション語彙ストアが生成及び／又は訓練してもよい。
【０２８５】
図１０Ｄのユーザデバイスユーザデバイス１０４０などのユーザデバイスの動作中に、ランタイム固有のグローバルアプリケーション語彙ストアが、グローバルアプリケーション語彙ストア１０６０からユーザデバイスの１つ又はそれ以上のアプリケーションのための語彙及び／又は言語モデルを受信してもよい。語彙が、ユーザデバイスのユーザのユーザＩＤに固有のものであってもよく、及び／又はユーザデバイスのアプリケーション及び／又はオペレーティングシステムのバージョンに固有のものであってもよい。語彙に基づき、自然言語入力の１つ又はそれ以上の用語が、例えばパラメータとして特定されてもよい。
【０２８６】
図１１は、幾つかの実施形態に従ってデジタルアシスタントを動作させるためのプロセス１１００のフロー図である。プロセス１１００は、例えば、デジタルアシスタントを具現化している（デバイス１０４、１０８、２００、４００又は６００などの）１つ又はそれ以上の電子デバイスを用いて実行される。幾つかの例においては、プロセス１１００は（システム１００などの）クライアント−サーバシステムを使用して実行され、（ＤＡサーバ１０６などの）サーバとクライアントサービスとの間に任意の方法で分散されてもよい。別の複数の方法においては、プロセス１１００が、サーバと（携帯電話及びスマートウォッチなどの）複数のクライアントデバイスとの間に分散されてもよい。従って、本願中では、プロセス１１００の複数の部分がクライアント−サーバシステムの特定のデバイスによって実行されるものとして記載されているが、プロセス１１００がそのように限定されないことが理解されよう。別の複数の例においては、プロセス１１００は（ユーザデバイス１０４などの）１つのみのクライアントデバイス又は複数のクライアントデバイスを使用して実行される。プロセス１１００において、幾つかのブロックが任意選択的に組み合わせられ、幾つかのブロックの順序が任意選択的に変更され、幾つかのブロックが任意選択的に省略される。幾つかの例においては、更なる複数のステップがプロセス１１００と組み合わせて実行されてもよい。
【０２８７】
ブロック１１０５で、電子デバイスが自然言語ユーザ入力を含むオーディオ入力を受信する。
【０２８８】
ブロック１１１０で、電子デバイスが、一組のインテントオブジェクトのうちの一インテントオブジェクトを特定する。インテントオブジェクトは、自然言語ユーザ入力から導出される。幾つかの例においては、一組のインテントオブジェクトのうちの一オブジェクトを特定することが、一組のインテントオブジェクトのうちのオブジェクトを、電子デバイスの種類に基づいて特定することを含む。
【０２８９】
ブロック１１１５で、電子デバイスが、一組のインテントオブジェクトのうちのインテントオブジェクトと関連付けられたソフトウェアアプリケーションを特定する。幾つかの例においては、一組のインテントオブジェクトのうちのインテントオブジェクトと関連付けられたソフトウェアアプリケーションを特定することが、インテントオブジェクトと関連付けられた第１のパラメータを特定することを含む。
【０２９０】
幾つかの例において、電子デバイスが、複数の用語を別の電子デバイスから受信し、自然言語ユーザ入力を受信することが、複数の用語のうちの一用語を含む自然言語ユーザ入力を受信することを含み、一組のインテントオブジェクトのうちのインテントオブジェクトと関連付けられたソフトウェアアプリケーションを特定することが、ソフトウェアアプリケーションを複数の用語のうちの用語に基づいて特定することを含む。
【０２９１】
ブロック１１２０で、電子デバイスがインテントオブジェクトをソフトウェアアプリケーションに提供する。インテントオブジェクトを提供することが、ソフトウェアアプリケーションに、インテントオブジェクトと関連付けられたタスクを実行させる。幾つかの例においては、インテントオブジェクトをソフトウェアアプリケーションに提供して、ソフトウェアアプリケーションに、インテントオブジェクトと関連付けられたタスクを実行させることが、第１のパラメータをソフトウェアアプリケーションに提供することを含む。幾つかの例においては、インテントオブジェクトをソフトウェアアプリケーションに提供することが、ソフトウェアアプリケーションを特定した後に、タスクの取り消し又は変更を求めるユーザ入力がある時間の間に受信されたか否かを判定することを含み、タスクの取り消し又は変更を求めるユーザ入力が時間の間に受信されていないという判定に従って、インテントオブジェクトをソフトウェアアプリケーションに提供することを含む。幾つかの例においては、インテントオブジェクトをソフトウェアアプリケーションに提供することが、インテントオブジェクトのユーザ確認なしにインテントオブジェクトをソフトウェアアプリケーションに提供することを含む。
【０２９２】
幾つかの例においては、電子デバイスが、意図と関連付けられた複数の候補パラメータを特定し、複数の候補パラメータをソフトウェアアプリケーションに提供する。
【０２９３】
幾つかの例においては、電子デバイスが、あるパラメータに対応する曖昧性除去要求をソフトウェアアプリケーションから受信し、パラメータと関連付けられた一組の候補パラメータから一候補パラメータを特定し、選択された候補パラメータをソフトウェアアプリケーションに提供する。
【０２９４】
幾つかの例においては、自然言語ユーザ入力が第１の自然言語ユーザ入力である。電子デバイスが、ソフトウェアアプリケーションから、インテントオブジェクトと関連付けられた第２のパラメータを求める要求を受信し、要求に基づいて自然言語クエリを提供し、第２の自然言語ユーザ入力を受信し、第２の自然言語ユーザ入力から導出された第２のパラメータを特定し、第２のパラメータをソフトウェアアプリケーションに提供する。
【０２９５】
幾つかの例においては、電子デバイスが、ソフトウェアアプリケーションから、インテントオブジェクトと関連付けられたパラメータを求める要求を受信し、電子デバイスを用いて、要求に基づき、ソフトウェアアプリケーション及びパラメータと関連付けられた自然言語クエリを特定し、自然言語クエリを提供し、第４のユーザ入力を受信し、第４のユーザ入力に基づいてパラメータを特定し、パラメータをソフトウェアアプリケーションに提供する。
【０２９６】
ブロック１１２５で、タスクの実行に成功したか否かを示す結果応答を電子デバイスが受信する。結果応答がソフトウェアアプリケーションから受信されてもよい。
【０２９７】
ブロック１１３０で、タスクが実行されたか否かを示す出力を電子デバイスが提供する。幾つかの例においては、ソフトウェアアプリケーションがタスクの実行に成功したことを出力が示す。幾つかの例においては、ソフトウェアアプリケーションがタスクの実行に失敗したことを出力が示す。幾つかの例においては、タスクが実行されたか否かを示す出力を提供することが、一組のビューコントローラパラメータ値をソフトウェアアプリケーションから受信し、ビューコントローラパラメータ値の組に従って出力を提供することを含む。
【０２９８】
幾つかの例においては、出力を提供した後に、電子デバイスが第２の入力を受信し、第２の入力に応じて、タスクと関連付けられた動作を調整する。幾つかの例においては、タスクと関連付けられた動作を調整することが、インテントオブジェクトを調整すること及び、調整されたインテントオブジェクトをソフトウェアアプリケーションに提供することを含む。幾つかの例においては、インテントオブジェクトを調整することが、インテントオブジェクトのパラメータを調整することを含む。幾つかの例においては、第２の入力を受信することが、アフォーダンスの選択を検出することを含み、タスクと関連付けられた動作を調整することが、アフォーダンスの選択に応じて、タスクと関連付けられた動作を調整することを含む。
【０２９９】
幾つかの例においては、出力を提供した後に、電子デバイスが第３の入力を受信し、第３の入力に応じて、別のインテントオブジェクトをソフトウェアアプリケーションに提供して、別のインテントオブジェクトと関連付けられたタスクをソフトウェアアプリケーションに実行させる。幾つかの例においては、第３の入力を受信することが、アフォーダンスの選択を検出することを含み、別のインテントオブジェクトをソフトウェアアプリケーションに提供して、別のインテントオブジェクトと関連付けられたタスクをソフトウェアアプリケーションに実行させることが、アフォーダンスの選択に応じて別のインテントオブジェクトをソフトウェアアプリケーションに提供することを含む。幾つかの例においては、インテントオブジェクトと別のインテントオブジェクトとが同じ種類のインテントオブジェクトであり、インテントオブジェクトと関連付けられたパラメータと別のインテントオブジェクトと関連付けられたパラメータとが同じ値を有する。幾つかの例においては、インテントオブジェクトと別のインテントオブジェクトとが同じインテントオブジェクトである。
【０３００】
図１２は、幾つかの実施形態に従ってデジタルアシスタントを動作させるためのプロセス１２００のフロー図である。プロセス１２００は、例えば、デジタルアシスタントを実装している１つ又はそれ以上の（デバイス１０４、１０８、２００、４００又は６００などの）電子デバイスを使用して実行される。幾つかの例においては、プロセス１２００が（システム１００などの）クライアント−サーバシステムを使用して実行され、プロセス１２００の複数のブロックが、（ＤＡサーバ１０６などの）サーバとクライアントデバイスとの間に任意の方法で分散されていてもよい。別の複数の例においては、プロセス１２００が、サーバと（携帯電話及びスマートウォッチなどの）複数のクライアントデバイスとの間に分散されている。従って、プロセス１２００の複数の部分が、本明細書中ではクライアント−サーバシステムの特定のデバイスによって実行されるものとして記載されているが、プロセス１２００がそのように限定されないことが理解されよう。別の複数の例では、プロセス１２００が、（ユーザデバイス１０４などの）１つのみのクライアントデバイス又は複数のクライアントデバイスを用いて実行される。プロセス１２００において、幾つかのブロックが任意選択的に組み合わせられ、幾つかのブロックの順序が任意選択的に変更され、幾つかのブロックが任意選択的に省略される。幾つかの例においては、更なる複数のステップがプロセス１２００と組み合わせて実行されてもよい。
【０３０１】
ブロック１２０５で、一組のインテントオブジェクトのうちの一インテントオブジェクトであって、自然言語ユーザ入力から導出されたインテントオブジェクトを電子デバイスが特定する。
【０３０２】
ブロック１２１０で、一組のインテントオブジェクトのうちのインテントオブジェクトと関連付けられたソフトウェアアプリケーションを、電子デバイスが特定する。
【０３０３】
ブロック１２１５で、電子デバイスが、第２の電子デバイスから、ソフトウェアアプリケーションと関連付けられたタスクフローを受信する。幾つかの例においては、ソフトウェアアプリケーションと関連付けられたタスクフローを受信することが、タスクフローを別の電子デバイスから受信し、タスクフローを電子デバイス上に記憶することを含む。
【０３０４】
ブロック１２２０で、電子デバイスが、インテントオブジェクトをソフトウェアアプリケーションに提供し、インテントオブジェクトと関連付けられたタスクをソフトウェアアプリケーションに実行させる。
【０３０５】
ブロック１２２５で、電子デバイスがソフトウェアアプリケーションから要求を受信する。
【０３０６】
ブロック１２３０で、電子デバイスが要求に基づくクエリを決定する。クエリは、タスクフローに基づいて決定される。幾つかの例においては、要求に基づくクエリを決定することが、電子デバイス上に記憶されたタスクフローからクエリを取り出すことを含む。
【０３０７】
ブロック１２３５で、電子デバイスがクエリをタッチ感知ディスプレイを使用して提供する。
【０３０８】
ブロック１２４０で、電子デバイスが、クエリ応答を示す第２のユーザ入力を受信する。幾つかの例においては、第２のユーザ入力が、クエリを提供した後に受信される。幾つかの例においては、クエリ応答が、インテントオブジェクトと関連付けられたパラメータを示す。
【０３０９】
ブロック１２４５で、電子デバイスがクエリ応答をソフトウェアアプリケーションに提供する。幾つかの例においては、クエリ応答をソフトウェアアプリケーションに提供することが、インテントオブジェクトを調整して、調整されたインテントオブジェクトをソフトウェアアプリケーションに提供することを含む。
【０３１０】
幾つかの例においては、電子デバイスが、ソフトウェアアプリケーションから、タスクの実行に成功したか否かを示す結果応答を受信し、タスクが実行されたか否かを示す出力を提供する。
【０３１１】
幾つかの実施形態に従って、図１１を参照して説明したものを含む種々の記載された実施形態の原理に従って構成された電子デバイス１４００の機能ブロック図を、図１４に示す。デバイスの機能ブロック図は、任意選択的に、ハードウェア、ソフトウェア又はハードウェアとソフトウェアとの組合せによって、種々の記載された実施形態の原理を実行するように具現化されている。図１４に記載された複数の機能ブロックが、種々の記載された実施形態の原理を具現化するために、任意選択的に組み合わせられるか又は複数のサブブロックへと分割されることが、当業者に理解されよう。従って、本明細書中の記載は、本明細書中に記載されている複数の機能ブロックの任意の予想される組合せ又は分割又は更なる定義を、任意選択的に裏付ける。
【０３１２】
図１４に示すように、電子デバイス１４００は、タッチ感知ディスプレイユニット１４０２及び、タッチ感知ディスプレイユニット１４０２に任意選択的に結合された処理ユニット１４０８を含む。幾つかの実施形態においては、処理ユニット１１０８が、受信ユニット１４１０、特定ユニット１４１２、提供ユニット１４１４及び、任意選択的に、調整ユニット１４１６、検出ユニット１４１８及び判定ユニット１４２０を有する。
【０３１３】
幾つかの例においては、処理ユニット１４０８が、（例えば受信ユニット１４１０を用いて）自然言語ユーザ入力を含むオーディオ入力を受信し；（例えば特定ユニット１４１２を用いて）一組のインテントオブジェクトのうちの、自然言語ユーザ入力から導出された一インテントオブジェクトを特定し；（例えば特定ユニット１４１２を用いて）一組のインテントオブジェクトのうちのインテントオブジェクトと関連付けられたソフトウェアアプリケーションを特定し；（例えば提供ユニット１４１４を用いて）インテントオブジェクトとソフトウェアアプリケーションに提供して、インテントオブジェクトと関連付けられたタスクをソフトウェアアプリケーションに実行させ；（例えば受信ユニット１４１０を用いて）タスクの実行に成功したか否かを示す結果応答をソフトウェアアプリケーションから受信し；（例えば提供ユニット１４１４を用いて）タスクが実行されたか否かを示す出力を提供するように構成されている。
【０３１４】
幾つかの例においては、一組のインテントオブジェクトのうちのインテントオブジェクトと関連付けられたソフトウェアアプリケーションを特定することが、（例えば特定ユニット１４１２を用いて）インテントオブジェクトと関連付けられた第１のパラメータを特定し、インテントオブジェクトをソフトウェアアプリケーションに提供して、インテントオブジェクトと関連付けられたタスクをソフトウェアアプリケーションに実行させることが、（例えば提供ユニット１４１４を用いて）第１のパラメータをソフトウェアアプリケーションに提供することを含む。
【０３１５】
幾つかの例においては、自然言語ユーザ入力が第１の自然言語入力であり、処理ユニット１４０８が、（例えば受信ユニット１４１０を用いて）インテントオブジェクトと関連付けられた第２のパラメータを求める要求をソフトウェアアプリケーションから受信し；（例えば提供ユニット１４１４を用いて）要求に基づく自然言語クエリを提供し；（例えば受信ユニット１４１０を用いて）第２の自然言語ユーザ入力を受信し；（例えば特定ユニット１４１２を用いて）第２のパラメータを特定し、第２のパラメータが第２の自然言語ユーザ入力から導出され；第２のパラメータをソフトウェアアプリケーションに提供するように更に構成されている。
【０３１６】
幾つかの例においては、ソフトウェアアプリケーションがタスクの実行に成功したことを出力が示す。
【０３１７】
幾つかの例においては、処理ユニット１４０８が、出力の提供後に、（例えば受信ユニット１４１０を用いて）第２の入力を受信し；第２の入力に応じて、（例えば調整ユニット１４１６を用いて）タスクと関連付けられた動作を調整するように更に構成されている。
【０３１８】
幾つかの例においては、タスクと関連付けられた動作を調整することが、（例えば調整ユニット１４１６を用いて）インテントオブジェクトを調整すること及び、（例えば提供ユニット１４１４を用いて）調整されたインテントオブジェクトをソフトウェアアプリケーションに提供することを含む。
【０３１９】
幾つかの例においては、インテントオブジェクトを調整することが、（例えば調整ユニット１４１６を用いて）インテントオブジェクトのパラメータを調整することを含む。
【０３２０】
幾つかの例においては、第２の入力を受信することが、（例えば検出ユニット１４１８を用いて）アフォーダンスの選択を検出することを含み、タスクと関連付けられた動作を調整することが、アフォーダンスの選択に応じて、タスクと関連付けられた動作を、（例えば調整ユニット１４１６を用いて）調整することを含む。
【０３２１】
幾つかの例においては、ソフトウェアアプリケーションがタスクの実行に失敗したことを出力が示す。
【０３２２】
幾つかの例においては、処理ユニット１４０８が、出力の提供後に、（例えば受信ユニット１４１０を用いて）第３の入力を受信し；第３の入力に応じて、（例えば提供ユニット１４１４を用いて）別のインテントオブジェクトをソフトウェアアプリケーションに提供して、別のインテントオブジェクトと関連付けられたタスクをソフトウェアアプリケーションに実行させるように更に構成されている。
【０３２３】
幾つかの例においては、第３の入力を受信することが、（例えば検出ユニット１４１８を用いて）アフォーダンスの選択を検出することを含み、ソフトウェアアプリケーションに別のインテントオブジェクトを提供して、別のインテントオブジェクトと関連付けられたタスクをソフトウェアアプリケーションに実行させることが、アフォーダンスの選択に応じて、別のインテントオブジェクトを（例えば提供ユニット１４１４を用いて）ソフトウェアアプリケーションに提供することを含む。
【０３２４】
幾つかの例においては、インテントオブジェクトと別のインテントオブジェクトとが、同じ種類のインテントオブジェクトであり、インテントオブジェクトと関連付けられたパラメータと別のインテントオブジェクトと関連付けられたパラメータとが同じ値を有する。
【０３２５】
幾つかの例においては、インテントオブジェクトと別のインテントオブジェクトとが同じインテントオブジェクトである。
【０３２６】
幾つかの例においては、タスクが実行されたか否かを示す出力を提供することが、（例えば受信ユニット１４１０を用いて）一組のビューコントローラパラメータ値をソフトウェアアプリケーションから受信すること及び；出力を、（例えば提供ユニット１４１４を用いて）ビューコントローラパラメータ値の組に従って提供することを含む。
【０３２７】
幾つかの例においては、処理ユニット１４０８が、（例えば受信ユニット１４１０を用いて）複数の用語を別の電子デバイスから受信するように更に構成されており、自然言語ユーザ入力を受信することが、（例えば受信ユニット１４１０を用いて）複数の用語のうちの一用語を含む自然言語ユーザ入力を受信することを含み、一組のインテントオブジェクトのうちのインテントオブジェクトと関連付けられたソフトウェアアプリケーションを特定することが、ソフトウェアアプリケーションを、一組のインテントオブジェクトのうちの用語に基づき、（例えば特定ユニット１４１２を用いて）特定することを含む。
【０３２８】
幾つかの例においては、一組のインテントオブジェクトのうちの一インテントオブジェクトを特定することが、一組のインテントオブジェクトのうちのインテントオブジェクトを、電子デバイスの種類に基づき、（例えば特定ユニット１４１２を用いて）特定することを含む。
【０３２９】
幾つかの例においては、処理ユニット１４０８が、（例えば特定ユニット１４１２を用いて）意図と関連付けられた複数の候補パラメータを特定し；複数の候補パラメータを（例えば提供ユニット１４１４を用いて）ソフトウェアアプリケーションに提供するように更に構成されている。
【０３３０】
幾つかの例においては、処理ユニット１４０８が、（例えば受信ユニット１４１０を用いて）あるパラメータに対応する曖昧性除去要求をソフトウェアアプリケーションから受信し、（例えば特定ユニット１４１２を用いて）パラメータと関連付けられた一組の候補パラメータから候補パラメータを特定し、（例えば提供ユニット１４１４を用いて）選択された候補パラメータをソフトウェアアプリケーションに提供するように更に構成されている。
【０３３１】
幾つかの例においては、インテントオブジェクトをソフトウェアアプリケーションに提供して、インテントオブジェクトと関連付けられたタスクをソフトウェアアプリケーションに実行させることが、ソフトウェアアプリケーションの特定後に、タスクの取り消し又は変更を求めるユーザ入力がある時間以内に受信されたか否かを（例えば判定ユニット１４２０を用いて）判定し；タスクの取り消し又は変更を求めるユーザ入力が時間以内に受信されたという判定に従って、（例えば提供ユニット１４１４を用いて）インテントオブジェクトをソフトウェアアプリケーションに提供することを含む。
【０３３２】
幾つかの例においては、タスクの取り消し又は変更を求めるユーザ入力が時間以内に受信されなかったという判定に従って、インテントオブジェクトをソフトウェアアプリケーションに提供することが、インテントオブジェクトのユーザ確認なしに、（例えば提供ユニット１４１４を用いて）インテントオブジェクトをソフトウェアアプリケーションに提供することを含む。
【０３３３】
幾つかの例においては、処理ユニット１４０８が、（例えば受信ユニット１４１０を用いて）インテントオブジェクトと関連付けられたパラメータを求める要求をソフトウェアアプリケーションから受信し；電子デバイスを使用して、要求に基づく自然言語クエリを（例えば特定ユニット１４１２を用いて）特定し、自然言語クエリがソフトウェアアプリケーション及びパラメータと関連付けられており；（例えば提供ユニット１４１４を用いて）自然言語クエリを提供し；（例えば受信ユニット１４１０を用いて）第４のユーザ入力を受信し；（例えば特定ユニット１４１２を用いて）パラメータを第４のユーザ入力に基づいて特定し；（例えば提供ユニット１４１４を用いて）パラメータをソフトウェアアプリケーションに提供するように更に構成されている。
【０３３４】
図１１に関して上述した動作は、任意選択的に、図１、２Ａ、４、６Ａ−Ｂ、７Ａ及び１４に図示された構成要素によって具現化される。例えば、受信動作１１０５及び１１２５、特定動作１１１０及び１１１５並びに提供動作１１２０及び１１３０が、任意選択的にプロセッサ１２０によって具現化される。
【０３３５】
図１４に記載された複数の機能ブロックが、種々の記載された実施形態の原理を具現化するために、任意選択的に組み合わせられるか又は複数のサブブロックに分割されることが、当業者に理解されよう。従って、本明細書中の記載は、本明細書中に記載の複数の機能ブロックの任意の予想される組合せ又は分割又は更なる定義を任意選択的に裏付ける。例えば、処理ユニット１４０８が、処理ユニット１４０８に作動的に連結されて動作を可能とする付属の「コントローラ」ユニットを有してもよい。このコントローラユニットは、図１４には別個に図示されていないが、デバイス１４００などの処理ユニット１４０８を有するデバイスを設計している当業者によって理解可能であることが理解されよう。別の一例として、受信ユニット１４１０などの１つ又はそれ以上のユニットが、幾つかの実施態様では処理ユニット１４０８の外部のハードウェアユニットであってもよい。従って、本明細書中の記載は、本明細書中に記載の複数の機能ブロックの組合せ、分割及び／又は更なる定義を任意選択的に裏付ける。
【０３３６】
幾つかの実施形態に基づき、図１５は、図１１を参照して記載されたものを含む種々の記載された実施形態の原理に従って構成された電子デバイス１５００の機能ブロック図を図示している。デバイスの複数の機能ブロックは、種々の記載された実施形態の原理を実現するために、任意選択的に、ハードウェア、ソフトウェア又はハードウェアとソフトウェアとの組合せによって具現化される。図１５に記載されている複数の機能ブロックが、種々の記載された実施形態の原理を具現化するために、任意選択的に組み合わせられるか又は複数のサブブロックに分割されることが、当業者に理解されよう。従って、本明細書中の記載は、本明細書中に記載の複数の機能ブロックの任意の予想される組合せ又は分割又は更なる定義を任意選択的に裏付ける。
【０３３７】
図１５に示すように、１つ又はそれ以上のデバイス１５００が、１つ又はそれ以上の処理ユニット１５０８及び１つ又はそれ以上のタッチ感知ディスプレイ１５０２を含む。幾つかの実施形態においては、１つ又はそれ以上の処理ユニット１５０８が、受信ユニット１５１０、取得ユニット１５１２、判定ユニット１５１４、提供ユニット１５１６及び、任意選択的に、実行ユニット１５１８を含む。
【０３３８】
幾つかの例においては、１つ又はそれ以上の処理ユニット１５０８が、（例えば受信ユニット１５１０を用いて）自然言語ユーザ入力を含むオーディオ入力を受信し；（例えば取得ユニット１５１２を用いて）テキスト列を自然言語ユーザ入力から取得し；（例えば判定ユニット１５１４を用いて）一組のインテントオブジェクトのうちの一インテントオブジェクトを、テキスト列に基づいて判定し；（例えば判定ユニット１５１４を用いて）一組のインテントオブジェクトのうちのインテントオブジェクトと関連付けられたソフトウェアアプリケーションを決定し；（例えば提供ユニット１５１６を用いて）インテントオブジェクトをソフトウェアアプリケーションに提供して、インテントオブジェクトと関連付けられたタスクをソフトウェアアプリケーションに実行させ；（例えば受信ユニット１５１０を用いて）タスクの実行に成功したか否かを示す結果応答をソフトウェアアプリケーションから受信し；（提供ユニット１５１６を用いて）タスクが実行されたか否かを示す出力を提供するように構成されている。
【０３３９】
幾つかの例においては、テキスト列に基づいて一組のインテントオブジェクトのうちの一インテントオブジェクトを判定することが、（例えば実行ユニット１５１８を用いて）テキスト列に対して自然言語処理を行って、自然言語ユーザ入力の意図を判定すること及び、（例えば特定ユニット１５２０を用いて）意図と関連付けられたインテントオブジェクトを特定することを含む。
【０３４０】
幾つかの例においては、タスクが実行されたか否かを示す出力を提供することが、（例えば提供ユニット１５１６を用いて）自然言語出力を提供することを含む。
【０３４１】
幾つかの例においては、一組のインテントオブジェクトのうちのインテントオブジェクトと関連付けられたソフトウェアアプリケーションを決定することが、（例えば判定ユニット１５１４を用いて）インテントオブジェクトと関連付けられたパラメータを決定することを含み、インテントオブジェクトをソフトウェアアプリケーションに提供して、インテントオブジェクトと関連付けられたタスクをソフトウェアアプリケーションに実行させることが、（例えば提供ユニット１５１６を用いて）パラメータをソフトウェアアプリケーションに提供することを含む。
【０３４２】
幾つかの例においては、一組のインテントオブジェクトのうちの一インテントオブジェクトを判定することが、一組のインテントオブジェクトのうちのインテントオブジェクトを、電子デバイスの種類に基づいて、（例えば判定ユニット１５１４を用いて）判定することを含む。
【０３４３】
図１１に関する上述の記載が、任意選択的に、図１、２Ａ、４、６Ａ−Ｂ、７Ａ及び１５に記載されている構成要素によって具現化されてもよい。例えば、受信動作１１０５及び１１２５、特定動作１１１０及び１１１５及び提供動作１１２０及び１１３０が、任意選択的にプロセッサ１２０によって具現化されてもよい。その他のプロセスが、図１、２Ａ，４、６Ａ−Ｂ、７Ａ及び１５に記載の構成要素に基づいてどのように具現化可能であるのかは、当業者に明らかとなろう。
【０３４４】
図１５に記載された複数の機能ブロックが、種々の記載の実施形態を具現化するために、任意選択的に組み合わせられるか又は複数のサブブロックに分割されることが、当業者に理解されよう。従って、本明細書中の記載は、本明細書中に記載の複数の機能ブロックの任意の予想される組合せ又は分割又は更なる定義を任意選択的に裏付ける。例えば、１つ又はそれ以上の処理ユニット１５０８が、１つ又はそれ以上の処理ユニット１５０８のうちの少なくとも１つに作動的に連結されて動作を可能とする、付属の「コントローラ」ユニットを有してもよい。このコントローラユニットは、図１５には別個に図示されていないが、デバイス１５００などの処理ユニット１５０８を有するデバイスを設計している当業者によって理解可能であることが理解されよう。別の一例として、受信ユニット１５１０などの１つ又はそれ以上のユニットが、幾つかの実施態様では処理ユニット１２０８の外部のハードウェアユニットであってもよい。従って、本明細書中の記載は、本明細書中に記載の複数の機能ブロックの組合せ、分割及び／又は更なる定義を任意選択的に裏付ける。
【０３４５】
幾つかの実施形態に基づき、図１６は、図１２を参照して記載されたものを含む種々の記載された実施形態の原理に従って構成された電子デバイス１６００の機能ブロック図を図示している。デバイスの複数の機能ブロックは、種々の記載された実施形態の原理を実現するために、任意選択的に、ハードウェア、ソフトウェア又はハードウェアとソフトウェアとの組合せによって具現化される。図１６に記載されている複数の機能ブロックが、種々の記載された実施形態の原理を具現化するために、任意選択的に組み合わせられるか又は複数のサブブロックに分割されることが、当業者に理解されよう。従って、本明細書中の記載は、本明細書中に記載の複数の機能ブロックの任意の予想される組合せ又は分割又は更なる定義を任意選択的に裏付ける。
【０３４６】
図１６に示すように、１つ又はそれ以上のデバイス１６００が、タッチ感知ディスプレイユニット１６０２及び任意選択的にタッチ感知ディスプレイユニットに接続される処理ユニット１６０８を含む。幾つかの実施形態においては、１つ又はそれ以上の処理ユニット１６０８が、特定ユニット１６１０、受信ユニット１６１２、提供ユニット１６１４、判定ユニット１６１６及び、任意選択的に、調整ユニット１６１８及び取り出しユニット１６２０を含む。
【０３４７】
幾つかの例においては、処理ユニット１６０８が、（例えば特定ユニット１６１０を用いて）一組のインテントオブジェクトのうちの一インテントオブジェクトを特定し、インテントオブジェクトが自然言語ユーザ入力から導出され；（例えば特定ユニット１６１０を用いて）一組のインテントオブジェクトのうちのインテントオブジェクトと対応付けられたソフトウェアアプリケーションを特定し；（例えば受信ユニット１６１２を用いて）ソフトウェアアプリケーションと関連付けられたタスクフローを第２の電子デバイスから受信し；（例えば提供ユニット１６１４を用いて）インテントオブジェクトをソフトウェアアプリケーションに提供して、インテントオブジェクトと関連付けられたタスクをソフトウェアアプリケーションに実行させ；ソフトウェアアプリケーションから要求を受信し；（例えば判定ユニット１６１６を用いて）要求に基づくクエリを判定し、クエリがタスクフローに従って判定され；（例えば提供ユニット１６１４を用いて）タッチ感知ディスプレイ１６０２を使用してクエリを提供し；クエリの提供後に、（例えば受信ユニット１６１２を用いて）クエリ応答を示す第２のユーザ入力を受信し；（例えば提供ユニット１６１４を用いて）クエリ応答をソフトウェアアプリケーションに提供するように構成されている。
【０３４８】
幾つかの例においては、処理ユニット１６０８は、タスクの実行に成功したか否かを示す結果応答を、（例えば受信ユニット１６１２を用いて）ソフトウェアアプリケーションから受信し、（例えば提供ユニット１６１４を用いて）タスクが実行されたか否かを示す出力を提供するように更に構成されている。
【０３４９】
幾つかの例においては、クエリ応答をソフトウェアアプリケーションに提供することが、インテントオブジェクトを（例えば調整ユニット１６１８を用いて）調整し、調整されたインテントオブジェクトをソフトウェアアプリケーションに提供することを含む。
【０３５０】
幾つかの例においては、ソフトウェアアプリケーションと関連付けられたタスクフローを受信することが、タスクフローを（例えば受信ユニット１６１２を用いて）別の電子デバイスから受信し、タスクフローを電子デバイス上に記憶することを含む。
【０３５１】
幾つかの例においては、要求に基づくクエリを判定することが、クエリを（例えば取り出しユニット１６２０を用いて）電子デバイス上に記憶されたタスクフローから取り出すことを含む。
【０３５２】
幾つかの例においては、クエリ応答が、インテントオブジェクトと関連付けられたパラメータを示す。
【０３５３】
図１２に関して上述した動作は、任意選択的に、図１、２Ａ、４、６Ａ−Ｂ、７Ａ及び１６に図示された構成要素によって具現化される。例えば、特定動作１２０５及び１２１０；受信動作１２１５、１２２５及び１２４０；提供動作１２２０、１２３５及び１２４５；並びに判定動作１２３０が、任意選択的にプロセッサ１２０によって具現化される。その他のプロセスを図１、２Ａ、４、６Ａ−Ｂ、７Ａ及び１６に基づいてどのように具現化可能であるのかは、当業者に明らかとなろう。
【０３５４】
図１６に記載された複数の機能ブロックが、種々の記載された実施形態の原理を具現化するために、任意選択的に組み合わせられるか又は複数のサブブロックに分割されることが、当業者に理解されよう。従って、本明細書中の記載は、本明細書中に記載の複数の機能ブロックの任意の予想される組合せ又は分割又は更なる定義を任意選択的に裏付ける。例えば、１つ又はそれ以上の処理ユニット１６０８が、処理ユニット１６０８に作動的に連結されて動作を可能とする付属の「コントローラ」ユニットを有してもよい。このコントローラユニットは、図１６には別個に図示されていないが、デバイス１６００などの処理ユニット１６０８を有するデバイスを設計している当業者によって理解可能であることが理解されよう。別の一例として、特定ユニット１６１０などの１つ又はそれ以上のユニットが、幾つかの実施態様では処理ユニット１６０８の外部のハードウェアユニットであってもよい。従って、本明細書中の記載は、本明細書中に記載の複数の機能ブロックの組合せ、分割及び／又は更なる定義を任意選択的に裏付ける。
【０３５５】
幾つかの実施形態に基づき、図１７は、図１２を参照して記載されたものを含む種々の記載された実施形態の原理に従って構成された電子デバイス１４００の機能ブロック図を図示している。デバイスの複数の機能ブロックは、種々の記載された実施形態の原理を実現するために、任意選択的に、ハードウェア、ソフトウェア又はハードウェアとソフトウェアとの組合せによって具現化される。図１７に記載されている複数の機能ブロックが、種々の記載された実施形態の原理を具現化するために、任意選択的に組み合わせられるか又は複数のサブブロックに分割されることが、当業者に理解されよう。従って、本明細書中の記載は、本明細書中に記載の複数の機能ブロックの任意の予想される組合せ又は分割又は更なる定義を任意選択的に裏付ける。
【０３５６】
図１７に示すように、１つ又はそれ以上のデバイス１７００が、タッチ感知ディスプレイ１４０２及び１つ又はそれ以上の処理ユニット１７０８を含む。幾つかの実施形態においては、１つ又はそれ以上の処理ユニット１７０２が、判定ユニット１７１０、特定ユニット１７１２、提供ユニット１７１４、受信ユニット１７１６及び、任意選択的に、取得ユニット１７１８及び記憶ユニット１７２０を含む。
【０３５７】
幾つかの例においては、１つ又はそれ以上の処理ユニット１７０８が、（例えば判定ユニット１７１０を用いて）一組のインテントオブジェクトのうちの一インテントオブジェクトを判定し；（例えば特定ユニット１７１２を用いて）一組のインテントオブジェクトのうちのインテントオブジェクトと対応付けられたソフトウェアアプリケーションを特定し；（例えば判定ユニット１７１０を用いて）ソフトウェアアプリケーションと関連付けられたタスクフローを判定し；（例えば提供ユニット１７１４を用いて）インテントオブジェクトをソフトウェアアプリケーションに提供して、インテントオブジェクトと関連付けられたタスクをソフトウェアアプリケーションに実行させ；（例えば受信ユニット１７１６を用いて）ソフトウェアアプリケーションから要求を受信し；（例えば判定ユニット１７１０を用いて）要求に基づくクエリであって、クエリがタスクフローに基づいて判定される、クエリを判定し、；（例えば提供ユニット１７１４を用いて）タッチ感知ディスプレイを使用してクエリを提供し；クエリの提供後に、（例えば受信ユニット１７１６を用いて）クエリ応答を示す第２のユーザ入力を受信し；（例えば共有ユニット１７１４を用いて）クエリ応答をソフトウェアアプリケーションに提供するように構成されている。
【０３５８】
幾つかの例においては、１つ又はそれ以上の処理ユニット１７０８が、（例えば受信ユニット１７１６を用いて）自然言語ユーザ入力を含むオーディオ入力を受信し、（例えば取得ユニット１７１８を用いて）自然言語ユーザ入力からテキスト列を取得するように更に構成されており、一組のインテントオブジェクトのうちの一インテントオブジェクトを判定することが、（例えば判定ユニット１７１０を用いて）一組のインテントオブジェクトのうちの一インテントオブジェクトを、テキスト列に基づいて判定することを含む。
【０３５９】
幾つかの例においては、１つ又は複数の処理ユニット１７０８が、（例えば受信ユニット１７１６を用いて）タスクの実行に成功したか否かを示す結果応答を受信し、タスクが実行されたか否かを示す出力を（例えば提供ユニット１７１４を用いて）提供するように更に構成されている。
【０３６０】
幾つかの例においては、ソフトウェアアプリケーションと関連付けられたタスクフローを判定することが、（例えば判定ユニット１７１０を用いて）第１の電子デバイスにおいてタスクフローを判定し、（例えば提供ユニット１７１４を用いて）タスクフローを第２の電子デバイスに提供し、（例えば記憶ユニット１７２０を用いて）タスクフローを第１の電子デバイス上に記憶することを含む。
【０３６１】
幾つかの例においては、要求に基づくクエリを判定することが、（例えば判定ユニット１７１０を用いて）クエリを第１の電子デバイスで判定することを含む。
【０３６２】
図１２に関して上述した動作は、任意選択的に、図１、２Ａ、４、６Ａ−Ｂ、７Ａ及び１７に図示された構成要素によって具現化される。例えば、特定動作１２０５及び１２１０；受信動作１２１５、１２２５及び１２４０；提供動作１２２０、１２３５及び１２４５；並びに判定動作１２３０が、任意選択的にプロセッサ１２０によって具現化される。その他のプロセスが図１、２Ａ、４、６Ａ−Ｂ、７Ａ及び１７に図示する構成要素に基づいてどのように具現化可能であるのかは、当業者に明らかとなろう。
【０３６３】
図１４に記載された複数の機能ブロックが、種々の記載された実施形態の原理を具現化するために、任意選択的に組み合わせられるか又は複数のサブブロックに分割されることが、当業者に理解されよう。従って、本明細書中の記載は、本明細書中に記載の複数の機能ブロックの任意の予想される組合せ又は分割又は更なる定義を任意選択的に裏付ける。例えば、処理ユニット１７０８が、処理ユニット１７０８に作動的に連結されて動作を可能とする付属の「コントローラ」ユニットを有してもよい。このコントローラユニットは、図１７には別個に図示されていないが、デバイス１７００などの処理ユニット１７０８を有するデバイスを設計している当業者によって理解可能であることが理解されよう。別の一例として、特定ユニット１７１０などの１つ又はそれ以上のユニットが、幾つかの実施態様では処理ユニット１７０８の外部のハードウェアユニットであってもよい。従って、本明細書中の記載は、本明細書中に記載の複数の機能ブロックの組合せ、分割及び／又は更なる定義を任意選択的に裏付ける。
【０３６４】
上述の記載は、説明の目的で特定の実施形態に関連させて説明されているが、これらの例示的な記載は、網羅的であることも、本発明を開示された精確な形態に限定することも意図していない。上述の教示の観点から、数多くの修正及び変更が可能である。実施形態は、本願発明の技術の原理及びその実際的な応用を最適に説明するために選択及び記載されている。従って、当業者は、企図された特定の用途に適した様々な変更を加えることにより、本願発明の技術及びその様々な実施形態を十分に活用することが可能である。
【０３６５】
本願発明の開示及び例を添付の図面を参照しながら詳細に記載してきたが、様々な変更及び修正が当業者に明らかとなろうことに留意すべきである。そのような変更及び修正は、請求項によって規定される開示及び例の範囲に含まれるものとして理解されるべきである。
【図１】
2020077364.tif 000013
【図２Ａ】
2020077364.tif 000014
【図２Ｂ】
2020077364.tif 000015
【図３】
2020077364.tif 000016
【図４】
2020077364.tif 000017
【図５Ａ】
2020077364.tif 000018
【図５Ｂ】
2020077364.tif 000019
【図６Ａ】
2020077364.tif 000020
【図６Ｂ】
2020077364.tif 000021
【図７Ａ】
2020077364.tif 000022
【図７Ｂ】
2020077364.tif 000023
【図７Ｃ】
2020077364.tif 000024
【図８】
2020077364.tif 000025
【図９】
2020077364.tif 000026
【図１０Ａ】
2020077364.tif 000027
【図１０Ｂ】
2020077364.tif 000028
【図１０Ｃ】
2020077364.tif 000029
【図１０Ｄ】
2020077364.tif 000030
【図１０Ｅ】
2020077364.tif 000031
【図１１】
2020077364.tif 000032
【図１２】
2020077364.tif 000033
【図１３Ａ】
2020077364.tif 000034
【図１３Ｂ】
2020077364.tif 000035
【図１４】
2020077364.tif 000036
【図１５】
2020077364.tif 000037
【図１６】
2020077364.tif 000038
【図１７】
2020077364.tif 000039
【手続補正書】
【提出日】令和1年8月30日(2019.8.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
１つ以上のプロセッサ及びタッチ感知ディスプレイを有する電子デバイスにおいて、
自然言語ユーザ入力を含むオーディオ入力を受信することと、
インテントオブジェクトセットのうちのインテントオブジェクトを特定することであって、前記インテントオブジェクトが前記自然言語ユーザ入力から導出される、ことと、
前記インテントオブジェクトのセットのうちの前記インテントオブジェクトと関連付けられたソフトウェアアプリケーションを特定することと、
前記インテントオブジェクトを前記ソフトウェアアプリケーションに提供して、前記ソフトウェアアプリケーションに前記インテントオブジェクトと関連付けられたタスクを実行させることと、
前記ソフトウェアアプリケーションから、前記タスクの実行が成功したか否かを示す結果応答を受信することと、
前記タスクが実行されたか否かを示す出力を提供することと、
を含む方法。
【請求項２】
前記インテントオブジェクトセットのうちの前記インテントオブジェクトと関連付けられたソフトウェアアプリケーションを特定することが、前記インテントオブジェクトと関連付けられた第１のパラメータを特定することを含み、
前記インテントオブジェクトを前記ソフトウェアアプリケーションに提供して、前記ソフトウェアアプリケーションに前記インテントオブジェクトと関連付けられたタスクを実行させることが、前記第１のパラメータを前記ソフトウェアアプリケーションに提供することを含む、
請求項１に記載の方法。
【請求項３】
前記自然言語ユーザ入力が第１の自然言語入力であり、
前記ソフトウェアアプリケーションから、前記インテントオブジェクトと関連付けられた第２のパラメータの要求を受信することと、
前記要求に基づき自然言語クエリを提供することと、
第２の自然言語ユーザ入力を受信することと、
前記第２のパラメータを特定することであって、前記第２のパラメータが前記第２の自然言語ユーザ入力から導出される、ことと、
前記第２のパラメータを前記ソフトウェアアプリケーションに提供することと、
を更に含む、請求項１又は２に記載の方法。
【請求項４】
前記出力が、前記ソフトウェアアプリケーションが電気タスクの実行に成功したことを示す、請求項１に記載の方法。
【請求項５】
前記出力を提供した後、第２の入力を受信することと、
前記第２の入力に応じて、前記タスクと関連付けられた動作を調節することと、
を更に含む、請求項４に記載の方法。
【請求項６】
前記タスクと関連付けられた動作を調節することが、
前記インテントオブジェクトを調節することと、
前記調節されたインテントオブジェクトを前記ソフトウェアアプリケーションに提供することと、
を含む、請求項５に記載の方法。
【請求項７】
前記インテントオブジェクトを調節することが、前記インテントオブジェクトのパラメータを調節することを含む、請求項６に記載の方法。
【請求項８】
第２の入力を受信することが、アフォーダンスの選択を検出することを含み、
前記タスクと関連付けられた動作を調節することが、前記アフォーダンスの前記選択に応じて、前記タスクと関連付けられた動作を調節することを含む、
請求項５から７のいずれか一項に記載の方法。
【請求項９】
前記出力が、前記ソフトウェアアプリケーションが前記タスクの実行に失敗したことを示す、請求項１に記載の方法。
【請求項１０】
前記出力を提供した後、第３の入力を受信することと、
前記第３の入力に応じて、別のインテントオブジェクトを前記ソフトウェアアプリケーションに提供して、前記ソフトウェアアプリケーションに前記別のインテントオブジェクトと関連付けられたタスクを実行させることと、
を更に含む、請求項９に記載の方法。
【請求項１１】
第３の入力を受信することが、アフォーダンスの選択を検出することを含み、
別のインテントオブジェクトを前記ソフトウェアアプリケーションに提供して、前記ソフトウェアアプリケーションに前記別のインテントオブジェクトと関連付けられたタスクを実行させることが、前記アフォーダンスの前記選択に応じて、前記別のインテントオブジェクトを前記ソフトウェアアプリケーションに提供することを含む、
請求項１０に記載の方法。
【請求項１２】
前記インテントオブジェクト及び前記別のインテントオブジェクトが同一の種類のインテントオブジェクトであり、前記インテントオブジェクトと関連付けられたパラメータ及び前記別のインテントオブジェクトと関連付けられたパラメータが同一の値を有する、請求項１０又は１１に記載の方法。
【請求項１３】
前記インテントオブジェクト及び前記別のインテントオブジェクトが同一のインテントオブジェクトである、請求項１０又は１１に記載の方法。
【請求項１４】
前記タスクが実行されたか否かを示す出力を提供することが、
前記ソフトウェアアプリケーションから、ビューコントローラパラメータ値セットを受信することと、
前記ビューコントローラパラメータ値セットに従って前記出力を提供することと、
を含む、請求項１から１３のいずれか一項に記載の方法。
【請求項１５】
別の電子デバイスから複数の語を受信することを更に含み、
自然言語ユーザ入力を受信することが、前記複数の語のうちの語を含む自然言語ユーザ入力を受信することを含み、
前記インテントオブジェクトセットのうちの前記インテントオブジェクトと関連付けられたソフトウェアアプリケーションを特定することが、前記複数の語のうちの前記語に基づき前記ソフトウェアアプリケーションを特定することを含む、
請求項１から１４のいずれか一項に記載の方法。
【請求項１６】
インテントオブジェクトセットのうちのインテントオブジェクトを特定することが、前記電子デバイスの種類に基づき前記インテントオブジェクトセットのうちの前記インテントオブジェクトを特定することを含む、請求項１から１５のいずれか一項に記載の方法。
【請求項１７】
前記意図と関連付けられた複数の候補パラメータを特定することと、
前記複数の候補パラメータを前記ソフトウェアアプリケーションに提供することと、
を更に含む、請求項１から１６のいずれか一項に記載の方法。
【請求項１８】
前記ソフトウェアアプリケーションから、パラメータに対応する曖昧性除去要求を受信することと、
前記パラメータと関連付けられた候補パラメータセットから候補パラメータを特定することと、
前記選択された候補パラメータを前記ソフトウェアアプリケーションに提供することと、
を更に含む、請求項１から１７のいずれか一項に記載の方法。
【請求項１９】
前記インテントオブジェクトを前記ソフトウェアアプリケーションに提供して、前記ソフトウェアアプリケーションに前記インテントオブジェクトと関連付けられたタスクを実行させることが、
前記ソフトウェアアプリケーションを特定した後、前記タスクのキャンセル又は変更を要求するユーザ入力が期間内に受信されたか否かを判定することと、
前記タスクのキャンセル又は変更を要求する前記ユーザ入力が前記期間内に受信されなかったという判定に従って、前記インテントオブジェクトを前記ソフトウェアアプリケーションに提供することと、
を含む、請求項１から１８のいずれか一項に記載の方法。
【請求項２０】
前記タスクのキャンセル又は変更を要求する前記ユーザ入力が前記期間内に受信されなかったという判定に従って、前記インテントオブジェクトを前記ソフトウェアアプリケーションに提供することが、ユーザによる前記インテントオブジェクトの確認なしに前記インテントオブジェクトを前記ソフトウェアアプリケーションに提供することを含む、請求項１９に記載の方法。
【請求項２１】
前記ソフトウェアアプリケーションから、前記インテントオブジェクトと関連付けられたパラメータの要求を受信することと、
前記電子デバイスを用いて、前記要求に基づき自然言語クエリを特定することであって、前記自然言語クエリが、前記ソフトウェアアプリケーション及び前記パラメータと関連付けられる、ことと、
前記自然言語クエリを提供することと、
第４のユーザ入力を受信することと、
前記第４のユーザ入力に基づき前記パラメータを特定することと、
前記パラメータを前記ソフトウェアアプリケーションに提供することと、
を更に含む、請求項１から２０のいずれか一項に記載の方法。
【請求項２２】
請求項１から２１のいずれか一項に記載の方法を実行するための命令を含む、コンピュータプログラム。
【請求項２３】
請求項２２に記載のコンピュータプログラムを記憶するメモリと、
前記メモリに記憶された前記命令を実行することができる１つ以上のプロセッサと、
タッチ感知ディスプレイと、
を備える、電子デバイス。
【請求項２４】
請求項２２に記載のコンピュータプログラムを記憶する手段と、
前記メモリに記憶された前記命令を実行する手段と、
タッチ感知ディスプレイのための手段と、
を備える、電子デバイス。
【外国語明細書】
2020077364000001.pdf