(57)【要約】      （修正有）【課題】サードパーティサービスをデジタルアシスタントと統合するシステム及び方法を提供する。【解決手段】１つ以上のプロセッサ及びメモリを有する電子機器は、ユーザの入力を受信する。電子機器は、入力に従って、複数のサードパーティサービスプロバイダに関連した複数の予め定義されたタスクタイプからのそれぞれのタスクタイプを特定する。それぞれのタスクタイプは、ユーザが許可される少なくとも１つのサードパーティサービスプロバイダ、及び、ユーザが許可されない少なくとも１つのサードパーティサービスプロバイダに関連づけられる。それぞれのタスクタイプを特定することに応じて、電子機器は、タスクの少なくとも一部を実行する要求を、複数のサードパーティサービスプロバイダのうち、それぞれのタスクタイプに関連しているサードパーティサービスプロバイダに送信する。【選択図】図４Ａ
2019003677.tif 000002
【特許請求の範囲】
【請求項１】
１つ以上のプロセッサ及びメモリを有する電子機器にて実行される、ユーザ入力を処理する方法であって、前記電子機器にて、
第１の組の１つ以上の予め定義されたタスクタイプをサービスプロバイダから受信するステップと、
複数の予め定義されたタスクを生成するために前記第１の組の１つ以上の予め定義されたタスクタイプを前記サービスプロバイダに関連していない第２の組の予め定義されたタスクタイプと統合するステップと、
ユーザの入力を受信するステップと、
前記入力に従って、前記複数の予め定義されたタスクタイプからのそれぞれのタスクタイプを特定するステップであって、前記それぞれのタスクタイプは、前記第１の組の１つ以上の予め定義されたタスクタイプの１つに対応する、ステップと、
前記それぞれのタスクタイプを特定することに応じて、前記サービスプロバイダに、前記入力に関連したタスクの少なくとも一部を実行する要求を送信するステップと、
を含む、方法。
【請求項２】
前記入力は、テキストに変換された前記ユーザの音声入力である、請求項１に記載の方法。
【請求項３】
前記ユーザの前記入力を受信する前に、前記サービスプロバイダから語彙の識別情報を受信するステップと、
前記語彙の前記識別情報に従って前記それぞれのタスクタイプを特定するステップと
を更に含む、請求項１〜２のいずれか一項に記載の方法。
【請求項４】
前記語彙を前記第１の組の１つ以上の予め定義されたタスクタイプと関連づけるステップを更に含む、請求項３に記載の方法。
【請求項５】
前記語彙の前記識別情報を受信するステップは、前記語彙を受信するステップを含む、請求項３〜４のいずれか一項に記載の方法。
【請求項６】
前記語彙の前記識別情報を受信するステップは、前記語彙の前記識別情報を受信する前に前記電子機器が利用することができる語彙の識別情報を受信するステップを含む、請求項３〜４のいずれか一項に記載の方法。
【請求項７】
前記入力に対応する１つ以上の結果を前記サービスプロバイダから取得するステップと、
前記１つ以上の結果の少なくともサブセットを、前記ユーザへの提示のために提供するステップと
を更に含む、請求項１〜６のいずれか一項に記載の方法。
【請求項８】
前記電子機器は、前記ユーザの携帯型電子機器であり、
前記携帯型電子機器は、前記サービスプロバイダに対応するソフトウェアアプリケーションを記憶しない、請求項１〜７のいずれか一項に記載の方法。
【請求項９】
前記携帯型電子機器は、電話である、請求項８に記載の方法。
【請求項１０】
１つ以上のプロセッサ及びメモリを有する電子機器にて実行される、ユーザ入力を処理する方法であって、
前記電子機器にて、
ユーザの入力を受信するステップと、
前記入力に従って、複数のサードパーティサービスプロバイダに関連した複数の予め定義されたタスクタイプからのそれぞれのタスクタイプを特定するステップであって、前記それぞれのタスクタイプは、前記ユーザが許可される少なくとも１つのサードパーティサービスプロバイダ、及び、前記ユーザが許可されない少なくとも１つのサードパーティサービスプロバイダに関連づけられる、ステップと、
前記それぞれのタスクタイプを特定することに応じて、タスクの少なくとも一部を実行する要求を、前記複数のサードパーティサービスプロバイダのうち、前記それぞれのタスクタイプに関連しているサードパーティサービスプロバイダに送信するステップと、
を含む、方法。
【請求項１１】
前記入力は、テキストに変換された前記ユーザの音声入力である、請求項１０に記載の方法。
【請求項１２】
前記ユーザは、前記ユーザが前記特定のサードパーティサービスプロバイダに関連したソフトウェアアプリケーションを使用する権限を与えられたときに、前記特定のサードパーティサービスプロバイダに関して許可される、請求項１０〜１１のいずれか一項に記載の方法。
【請求項１３】
前記電子機器は、前記ユーザの携帯型電子機器であり、
前記携帯型電子機器は、前記ソフトウェアアプリケーションを記憶する、請求項１２に記載の方法。
【請求項１４】
前記ソフトウェアアプリケーションを実行して前記要求を送信するステップを更に含む、請求項１３に記載の方法。
【請求項１５】
前記ソフトウェアアプリケーションを実行せずに前記要求を送信するステップを更に含む、請求項１３に記載の方法。
【請求項１６】
結果を前記サードパーティサービスプロバイダから取得するステップを更に含む、請求項１０〜１５のいずれか一項に記載の方法。
【請求項１７】
前記結果の少なくとも一部を前記ユーザに、前記ソフトウェアアプリケーションに関連したグラフィカルユーザインターフェースを介して表示するステップを更に含む、請求項１６に記載の方法。
【請求項１８】
前記結果の少なくとも一部を前記ユーザに、前記ソフトウェアアプリケーションに関連したグラフィカルユーザインターフェースを介さずに提示するステップを更に含む、請求項１６に記載の方法。
【請求項１９】
前記入力を受信する前に、サードパーティサービスプロバイダから、前記サードパーティサービスプロバイダがタスクの少なくとも一部を実行することができる前記１つ以上のタスクタイプの識別情報を受信するステップを更に含む、請求項１０〜１８のいずれか一項に記載の方法。
【請求項２０】
１つ以上のプロセッサ及びメモリを有する電子機器にて実行される、ユーザ入力を処理する方法であって、前記電子機器にて、
ユーザの入力を受信するステップと、
前記入力に従って、複数の予め定義されたタスクタイプからのそれぞれのタスクタイプを特定するステップと、
前記それぞれのタスクタイプを特定することに応じて、１つ以上のサービスプロバイダの場所を特定するステップであって、それぞれのサービスプロバイダは、１つ以上のサポートされたタスクタイプの識別情報に関連しており、前記サービスプロバイダの前記１つ以上のサポートされたタスクタイプは、前記それぞれのタスクタイプを含む、ステップと、
前記１つ以上のサービスプロバイダの場所を特定した後、タスクの少なくとも一部を実行する要求を前記１つ以上のサービスプロバイダのうちのサービスプロバイダに送信するステップと、
を含む、方法。
【請求項２１】
前記入力は、前記ユーザの音声入力である、請求項２０に記載の方法。
【請求項２２】
前記入力を受信する前に、特定のサービスプロバイダから、前記特定のサービスプロバイダに関連した１つ以上のサポートされたタスクタイプの前記識別情報を受信するステップを更に含む、請求項２０〜２１のいずれか一項に記載の方法。
【請求項２３】
前記それぞれのタスクタイプを特定することに応じて、２つ以上のサービスプロバイダの場所を特定するステップと、
前記２つ以上の、場所が特定されたサービスプロバイダの１つを選択するステップと、
前記要求を前記選択されたサービスプロバイダに送信するステップと
を更に含む、請求項２０〜２２のいずれか一項に記載の方法。
【請求項２４】
前記電子機器は、前記ユーザの携帯型電子機器であり、前記電子機器は、前記２つ以上のサービスプロバイダに対応するそれぞれのソフトウェアアプリケーションを記憶し、
前記方法は、前記２つ以上のサービスプロバイダのうち、前記それぞれのソフトウェアアプリケーションの中で最も最近に使用されたソフトウェアアプリケーションに対応するそれぞれのサービスプロバイダを選択するステップを含む、請求項２３に記載の方法。
【請求項２５】
前記電子機器は、前記ユーザの携帯型電子機器であり、前記電子機器は、前記２つ以上のサービスプロバイダに対応するそれぞれのソフトウェアアプリケーションを記憶し、
前記方法は、前記２つ以上のサービスプロバイダのうち、前記それぞれのソフトウェアアプリケーションの中で最も頻繁に使用されたソフトウェアアプリケーションに対応するそれぞれのサービスプロバイダを選択するステップを含む、請求項２３に記載の方法。
【請求項２６】
前記電子機器は、前記ユーザの携帯型電子機器であり、
前記携帯型電子機器は、前記２つ以上のサービスプロバイダの第１のサービスプロバイダに対応するそれぞれのソフトウェアアプリケーションを記憶し、
前記携帯型電子機器は、前記２つ以上のサービスプロバイダの第２のサービスプロバイダに対応するいずれのソフトウェアアプリケーションも記憶せず、
前記方法は、前記第１のサービスプロバイダを選択するステップを含む、請求項２３に記載の方法。
【請求項２７】
１つ以上のプロセッサ及びメモリを有するサーバシステムにて実行される、ユーザ入力を処理する方法であって、前記サーバシステムにて、
ユーザに関連した携帯型電子機器の場所を特定するステップと、前記ユーザに関連した前記携帯型電子機器の前記場所に対応するそれぞれのドメインを特定するステップと、
前記ユーザの入力を受信するステップと、
前記入力に従って、前記それぞれのドメインに対応するそれぞれのタスクタイプを特定するステップと、
前記それぞれのタスクタイプを特定することに応じて、前記入力に関連した、タスクの少なくとも一部を実行する要求を、前記それぞれのドメインに関連したそれぞれのサービスプロバイダに送信するステップと、
を含む、方法。
【請求項２８】
前記携帯型電子機器の前記場所を特定する前に前記それぞれのドメインを前記それぞれのサービスプロバイダから受信するステップを更に含む、請求項２７に記載の方法。
【請求項２９】
前記携帯型電子機器の前記場所を特定する前に少なくとも１つのタスクフローモデルを前記それぞれのサービスプロバイダから受信するステップを更に含む、請求項２７〜２８のいずれか一項に記載の方法。
【請求項３０】
前記携帯型電子機器の前記場所を特定する前に少なくとも語彙の識別情報を前記それぞれのサービスプロバイダから受信するステップを更に含む、請求項２７〜２９のいずれか一項に記載の方法。
【請求項３１】
前記それぞれのドメインを前記携帯型電子機器と関連づけるステップを更に含む、請求項２７〜３０のいずれか一項に記載の方法。
【請求項３２】
前記携帯型電子機器の更新された場所を特定するステップと、
前記更新された場所は、前記それぞれのドメインにもはや対応しないと判断するステップと、
前記判断に従って、前記それぞれのドメインを前記携帯型電子機器から分離するステップと
を更に含む、請求項３１に記載の方法。
【請求項３３】
前記それぞれのドメインを前記携帯型電子機器から分離した後に、
前記ユーザの第２の入力を受信するステップと、
前記第２の入力に従って、前記それぞれのドメインに対応しないタスクタイプを特定するステップと、
前記タスクタイプを特定することに応じて、前記入力に関連した、タスクの少なくとも一部を実行する要求を、前記それぞれのサービスプロバイダ以外のサービスプロバイダに送信するステップと、
を更に含む、請求項３２に記載の方法。
【請求項３４】
１つ以上のプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、前記１つ以上のプログラムは、電子機器の１つ以上のプロセッサにより実行されたときに、前記電子機器に、
第１の組の１つ以上の予め定義されたタスクタイプをサービスプロバイダから受信させ、
複数の予め定義されたタスクを生成するために、前記第１の組の１つ以上の予め定義されたタスクタイプを前記サービスプロバイダに関連していない第２の組の予め定義されたタスクタイプと統合させ、
ユーザの入力を受信させ、
前記入力に従って、前記複数の予め定義されたタスクタイプから、前記第１の組の１つ以上の予め定義されたタスクタイプの１つに対応する、それぞれのタスクタイプを特定させ、
前記それぞれのタスクタイプを特定することに応じて、前記サービスプロバイダに、前記入力に関連したタスクの少なくとも一部を実行する要求を送信させる、非一時的コンピュータ可読記憶媒体。
【請求項３５】
ユーザ入力を処理する電子機器であって、少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサにより実行される１つ以上のプログラムを記憶するメモリと、を備え、前記１つ以上のプログラムは、
第１の組の１つ以上の予め定義されたタスクタイプをサービスプロバイダから受信し、
複数の予め定義されたタスクを生成するために前記第１の組の１つ以上の予め定義されたタスクタイプを前記サービスプロバイダに関連していない第２の組の予め定義されたタスクタイプと統合し、
ユーザの入力を受信し、
前記入力に従って、前記複数の予め定義されたタスクタイプから、前記第１の組の１つ以上の予め定義されたタスクタイプの１つに対応する、それぞれのタスクタイプを特定し、
前記それぞれのタスクタイプを特定することに応じて、前記サービスプロバイダに、前記入力に関連したタスクの少なくとも一部を実行する要求を送信する命令を含む、電子機器。
【請求項３６】
第１の組の１つ以上の予め定義されたタスクタイプをサービスプロバイダから受信する手段と、
複数の予め定義されたタスクを生成するために、前記第１の組の１つ以上の予め定義されたタスクタイプを前記サービスプロバイダに関連していない第２の組の予め定義されたタスクタイプと統合する手段と、
ユーザの入力を受信する手段と、
前記入力に従って有効化される、前記複数の予め定義されたタスクタイプから、前記第１の組の１つ以上の予め定義されたタスクタイプの１つに対応するそれぞれのタスクタイプを特定する、手段と、
前記それぞれのタスクタイプを特定することに応じて有効化される、前記サービスプロバイダに、前記入力に関連したタスクの少なくとも一部を実行する要求を送信する手段と、
を備える、電子機器。
【請求項３７】
電子機器において使用される情報処理装置であって、第１の組の１つ以上の予め定義されたタスクタイプをサービスプロバイダから受信する手段と、
複数の予め定義されたタスクを生成するために、前記第１の組の１つ以上の予め定義されたタスクタイプを前記サービスプロバイダに関連していない第２の組の予め定義されたタスクタイプと統合する手段と、
ユーザの入力を受信する手段と、
前記入力に従って有効化される、前記複数の予め定義されたタスクタイプから、前記第１の組の１つ以上の予め定義されたタスクタイプの１つに対応するそれぞれのタスクタイプを特定する手段と、
前記それぞれのタスクタイプを特定することに応じて有効化される、前記サービスプロバイダに、前記入力に関連したタスクの少なくとも一部を実行する要求を送信する手段と、
を備える、情報処理装置。
【請求項３８】
１つ以上のプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、前記１つ以上のプログラムは、電子機器の１つ以上のプロセッサにより実行されたときに、前記電子機器に、
ユーザの入力を受信させ、
前記入力に従って、複数のサードパーティサービスプロバイダに関連した複数の予め定義されたタスクタイプからそれぞれのタスクタイプを特定させ、前記それぞれのタスクタイプは、前記ユーザが許可される少なくとも１つのサードパーティサービスプロバイダ、及び、前記ユーザが許可されない少なくとも１つのサードパーティサービスプロバイダに関連づけられ、前記電子機器に、更に、
前記それぞれのタスクタイプを特定することに応じて、タスクの少なくとも一部を実行する要求を、前記複数のサードパーティサービスプロバイダのうち、前記それぞれのタスクタイプに関連しているサードパーティサービスプロバイダに送信させる、非一時的コンピュータ可読記憶媒体。
【請求項３９】
ユーザ入力を処理する電子機器であって、少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサにより実行される１つ以上のプログラムを記憶するメモリと、
を備え、前記１つ以上のプログラムは、
ユーザの入力を受信することと、
前記入力に従って、複数のサードパーティサービスプロバイダに関連した複数の予め定義されたタスクタイプからそれぞれのタスクタイプを特定することであって、前記それぞれのタスクタイプは、前記ユーザが許可される少なくとも１つのサードパーティサービスプロバイダ、及び、前記ユーザが許可されない少なくとも１つのサードパーティサービスプロバイダに関連づけられる、特定することと、
前記それぞれのタスクタイプを特定することに応じて、タスクの少なくとも一部を実行する要求を、前記複数のサードパーティサービスプロバイダのうち、前記それぞれのタスクタイプに関連しているサードパーティサービスプロバイダに送信することと
を行なうための命令を含む、電子機器。
【請求項４０】
ユーザの入力を受信する手段と、
前記入力に従って有効化される、複数のサードパーティサービスプロバイダに関連した複数の予め定義されたタスクタイプからそれぞれのタスクタイプを特定する手段であって、前記それぞれのタスクタイプは、前記ユーザが許可される少なくとも１つのサードパーティサービスプロバイダ、及び、前記ユーザが許可されない少なくとも１つのサードパーティサービスプロバイダに関連づけられる、手段と、
前記それぞれのタスクタイプを特定することに応じて有効化される、タスクの少なくとも一部を実行する要求を、前記複数のサードパーティサービスプロバイダのうち、前記それぞれのタスクタイプに関連しているサードパーティサービスプロバイダに送信する手段と、
を備える、電子機器。
【請求項４１】
電子機器において使用される情報処理装置であって、ユーザの入力を受信する手段と、
前記入力に従って有効化される、複数のサードパーティサービスプロバイダに関連した複数の予め定義されたタスクタイプからそれぞれのタスクタイプを特定する手段であって、前記それぞれのタスクタイプは、前記ユーザが許可される少なくとも１つのサードパーティサービスプロバイダ、及び、前記ユーザが許可されない少なくとも１つのサードパーティサービスプロバイダに関連づけられる、手段と、
前記それぞれのタスクタイプを特定することに応じて有効化される、タスクの少なくとも一部を実行する要求を、前記複数のサードパーティサービスプロバイダのうち、前記それぞれのタスクタイプに関連しているサードパーティサービスプロバイダに送信する手段と、
を備える、電子機器。
【請求項４２】
１つ以上のプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、前記１つ以上のプログラムは、電子機器の１つ以上のプロセッサにより実行されたときに、前記電子機器に、
ユーザの入力を受信させ、
前記入力に従って、複数の予め定義されたタスクタイプからそれぞれのタスクタイプを特定させ、
前記それぞれのタスクタイプを特定することに応じて、１つ以上のサービスプロバイダの場所を特定させ、それぞれのサービスプロバイダは、１つ以上のサポートされたタスクタイプの識別情報に関連しており、前記サービスプロバイダの前記１つ以上のサポートされたタスクタイプは、前記それぞれのタスクタイプを含み、前記電子機器に、更に、
前記１つ以上のサービスプロバイダの場所を特定した後、タスクの少なくとも一部を実行する要求を前記１つ以上のサービスプロバイダのうちのサービスプロバイダに送信させる、非一時的コンピュータ可読記憶媒体。
【請求項４３】
ユーザ入力を処理する電子機器であって、
少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサにより実行される１つ以上のプログラムを記憶するメモリと、
を備え、前記１つ以上のプログラムは、
ユーザの入力を受信することと、
前記入力に従って、複数の予め定義されたタスクタイプからそれぞれのタスクタイプを特定することと、
前記それぞれのタスクタイプを特定することに応じて、それぞれ、１つ以上のサポートされたタスクタイプの識別情報に関連した、１つ以上のサービスプロバイダの場所を特定することであって、前記サービスプロバイダの前記１つ以上のサポートされたタスクタイプは前記それぞれのタスクタイプを含む、特定することと、
前記１つ以上のサービスプロバイダの場所を特定した後、タスクの少なくとも一部を実行する要求を前記１つ以上のサービスプロバイダのうちのサービスプロバイダに送信することと
を行なう命令を含む、電子機器。
【請求項４４】
ユーザの入力を受信する手段と、
前記入力に従って有効化される、複数の予め定義されたタスクタイプからそれぞれのタスクタイプを特定する手段と、
前記それぞれのタスクタイプを特定することに応じて有効化される、それぞれ、１つ以上のサポートされたタスクタイプの識別情報に関連した、１つ以上のサービスプロバイダの場所を特定する手段であって、前記サービスプロバイダの前記１つ以上のサポートされたタスクタイプは前記それぞれのタスクタイプを含む、手段と、
前記１つ以上のサービスプロバイダの場所を特定した後に有効化される、タスクの少なくとも一部を実行する要求を、前記１つ以上のサービスプロバイダのうちのサービスプロバイダに送信する手段と、
を備える、電子機器。
【請求項４５】
電子機器において使用される情報処理装置であって、ユーザの入力を受信する手段と、
前記入力に従って有効化される、複数の予め定義されたタスクタイプからそれぞれのタスクタイプを特定する手段と、
前記それぞれのタスクタイプを特定することに応じて有効化される、それぞれ、１つ以上のサポートされたタスクタイプの識別情報に関連した、１つ以上のサービスプロバイダの場所を特定する手段であって、前記サービスプロバイダの前記１つ以上のサポートされたタスクタイプは、前記それぞれのタスクタイプを含む、手段と、
前記１つ以上のサービスプロバイダの場所を特定した後に有効化される、タスクの少なくとも一部を実行する要求を、前記１つ以上のサービスプロバイダのうちのサービスプロバイダに送信する手段と、
を備える、情報処理装置。
【請求項４６】
１つ以上のプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、前記１つ以上のプログラムは、サーバシステムの１つ以上のプロセッサにより実行されたときに、前記サーバシステムに、
ユーザに関連した携帯型電子機器の場所を特定させ、
前記ユーザに関連した前記携帯型電子機器の前記場所に対応するそれぞれのドメインを特定させ、
前記ユーザの入力を受信させ、
前記入力に従って、前記それぞれのドメインに対応するそれぞれのタスクタイプを特定させ、
前記それぞれのタスクタイプを特定することに応じて、前記入力に関連した、タスクの少なくとも一部を実行する要求を、前記それぞれのドメインに関連したそれぞれのサービスプロバイダに送信させる、非一時的コンピュータ可読記憶媒体。
【請求項４７】
ユーザ入力を処理するサーバシステムであって、少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサにより実行される１つ以上のプログラムを記憶するメモリと、を備え、前記１つ以上のプログラムは、
ユーザに関連した携帯型電子機器の場所を特定し、
前記ユーザに関連した前記携帯型電子機器の前記場所に対応するそれぞれのドメインを特定し、
前記ユーザの入力を受信し、
前記入力に従って、前記それぞれのドメインに対応するそれぞれのタスクタイプを特定し、
前記それぞれのタスクタイプを特定することに応じて、前記入力に関連した、タスクの少なくとも一部を実行する要求を、前記それぞれのドメインに関連したそれぞれのサービスプロバイダに送信する
命令を含む、サーバシステム。
【請求項４８】
ユーザに関連した携帯型電子機器の場所を特定する手段と、
前記ユーザに関連した前記携帯型電子機器の前記場所に対応するそれぞれのドメインを特定する手段と、
前記ユーザの入力を受信する手段と、
前記入力に従って有効化される、前記それぞれのドメインに対応するそれぞれのタスクタイプを特定する手段と、
前記それぞれのタスクタイプを特定することに応じて有効化される、前記入力に関連した、タスクの少なくとも一部を実行する要求を、前記それぞれのドメインに関連したそれぞれのサービスプロバイダに送信する手段と、
を備える、サーバシステム。
【請求項４９】
サーバシステムにおいて使用される情報処理装置であって、
ユーザに関連した携帯型電子機器の場所を特定する手段と、
前記ユーザに関連した前記携帯型電子機器の前記場所に対応するそれぞれのドメインを特定する手段と、
前記ユーザの入力を受信する手段と、
前記入力に従って有効化される、前記それぞれのドメインに対応するそれぞれのタスクタイプを特定する手段と、
前記それぞれのタスクタイプを特定することに応じて有効化される、前記入力に関連した、タスクの少なくとも一部を実行する要求を、前記それぞれのドメインに関連したそれぞれのサービスプロバイダに送信する手段と、
を備える、情報処理装置。
【請求項５０】
１つ以上のプログラムを記憶するコンピュータ可読記憶媒体であって、前記１つ以上のプログラムは、１つ以上のプロセッサを有するポータブル電子機器又はコンピュータシステムによって実行されると、前記機器に請求項１〜３３に記載の方法のうちのいずれかを実行させる命令を含む、コンピュータ可読記憶媒体。
【請求項５１】
１つ以上のプロセッサと、前記１つ以上のプロセッサにより実行される１つ以上のプログラムを記憶するメモリとを備える携帯型電子機器又はコンピュータシステムであって、前記１つ以上のプログラムは、請求項１〜３３に記載の方法のいずれかを実行する命令を含む、携帯型電子機器又はコンピュータシステム。
【請求項５２】
ディスプレイ、メモリ、及び前記メモリ内に記憶された１つ以上のプログラムを実行するための１つ以上のプロセッサを有するポータブル電子機器又はコンピュータシステム上のグラフィカルユーザインターフェースであって、前記グラフィカルユーザインターフェースは、請求項１〜３３に記載の方法のいずれかに従って表示されるユーザインターフェース群を含む、グラフィカルユーザインターフェース。
【請求項５３】
請求項１〜３３に記載の方法のいずれかを実行する手段を備える携帯型電子機器又はコンピュータシステム。
【請求項５４】
請求項１〜３３に記載の方法のいずれかを実行する手段を備える、携帯型電子機器又はコンピュータシステムにおいて使用される情報処理装置。
【請求項５５】
ユーザの入力を受信するように構成された入力受信ユニットと、
前記入力受信ユニットに結合された処理ユニットと、を備え、前記処理ユニットは、
第１の組の１つ以上の予め定義されたタスクタイプをサービスプロバイダから受信し、
複数の予め定義されたタスクを生成するために、前記第１の組の１つ以上の予め定義されたタスクタイプを前記サービスプロバイダに関連していない第２の組の予め定義されたタスクタイプと統合し、
前記入力に従って、前記複数の予め定義されたタスクタイプから、前記第１の組の１つ以上の予め定義されたタスクタイプの１つに対応する、それぞれのタスクタイプを特定し、
前記それぞれのタスクタイプを特定することに応じて、前記サービスプロバイダに、前記入力に関連したタスクの少なくとも一部を実行する要求を送信する
ように構成される、電子機器。
【請求項５６】
前記入力は、テキストに変換された前記ユーザの音声入力である、請求項５５に記載の機器。
【請求項５７】
前記処理ユニットは、
前記ユーザの前記入力を受信する前に、語彙の識別情報を前記サービスプロバイダから受信し、
前記語彙の前記識別情報に従って前記それぞれのタスクタイプを特定するように更に構成される、請求項５５〜５６のいずれか一項に記載の機器。
【請求項５８】
前記処理ユニットは、前記語彙を前記第１の組の１つ以上の予め定義されたタスクタイプと関連づけるように更に構成される、請求項５７に記載の機器。
【請求項５９】
前記語彙の前記識別情報を受信することは、前記語彙を受信することを含む、請求項５７〜５８のいずれか一項に記載の機器。
【請求項６０】
前記語彙の前記識別情報を受信することは、前記語彙の前記識別情報を受信する前に前記電子機器が利用することができる語彙の識別情報を受信することを含む、請求項５７〜５８のいずれか一項に記載の機器。
【請求項６１】
前記処理ユニットは、
前記入力に対応する１つ以上の結果を前記サービスプロバイダから取得し、かつ、前記１つ以上の結果の少なくともサブセットを前記ユーザへの提示のために提供するように更に構成される、請求項５５〜６０のいずれか一項に記載の機器。
【請求項６２】
前記電子機器は、前記ユーザの携帯型電子機器であり、
前記携帯型電子機器は、前記サービスプロバイダに対応するソフトウェアアプリケーションを記憶するように構成されない、請求項５５〜６１のいずれか一項に記載の機器。
【請求項６３】
前記携帯型電子機器は、電話である、請求項６２に記載の機器。
【請求項６４】
ユーザの入力を受信するように構成された入力受信ユニットと、
前記入力受信ユニットに結合された処理ユニットと、を備え、前記処理ユニットは、
前記入力に従って、複数のサードパーティサービスプロバイダに関連した複数の予め定義されたタスクタイプからそれぞれのタスクタイプを特定することであって、前記それぞれのタスクタイプは、前記ユーザが許可される少なくとも１つのサードパーティサービスプロバイダ、及び、前記ユーザが許可されない少なくとも１つのサードパーティサービスプロバイダに関連づけられる、特定することと、
前記それぞれのタスクタイプを特定することに応じて、タスクの少なくとも一部を実行する要求を、前記複数のサードパーティサービスプロバイダのうち、前記それぞれのタスクタイプに関連しているサードパーティサービスプロバイダに送信することと
を行なうように構成される、電子機器。
【請求項６５】
前記入力は、テキストに変換された前記ユーザの音声入力である、請求項６４に記載の機器。
【請求項６６】
前記ユーザは、前記ユーザが特定のサードパーティサービスプロバイダに関連したソフトウェアアプリケーションを使用する権限を与えられたときに前記特定のサードパーティサービスプロバイダに関して許可される、請求項６４〜６５のいずれか一項に記載の機器。
【請求項６７】
前記電子機器は、前記ユーザの携帯型電子機器であり、前記携帯型電子機器は、前記ソフトウェアアプリケーションを記憶する、請求項６６に記載の機器。
【請求項６８】
前記処理ユニットは、前記要求を送信することのために前記ソフトウェアアプリケーションを実行するように更に構成される、請求項６７に記載の機器。
【請求項６９】
前記処理ユニットは、前記ソフトウェアアプリケーションを実行せずに前記要求を送信するように更に構成される、請求項６７に記載の機器。
【請求項７０】
前記処理ユニットは、結果を前記サードパーティサービスプロバイダから取得するように更に構成される、請求項６４〜６９のいずれか一項に記載の機器。
【請求項７１】
前記処理ユニットは、前記ユーザへの前記結果の少なくとも一部の表示を、前記ソフトウェアアプリケーションに関連したグラフィカルユーザインターフェースを介して有効化するように更に構成される、請求項７０に記載の機器。
【請求項７２】
前記処理ユニットは、前記結果の少なくとも一部をユーザに、前記ソフトウェアアプリケーションに関連したグラフィカルユーザインターフェースを介さずに提示するように更に構成される、請求項７０に記載の機器。
【請求項７３】
前記処理ユニットは、前記入力を受信する前に、サードパーティサービスプロバイダがタスクの少なくとも一部を実行することができる前記１つ以上のタスクタイプの識別情報を、前記サードパーティサービスプロバイダから受信するように更に構成される、請求項６４〜７２のいずれか一項に記載の機器。
【請求項７４】
ユーザの入力を受信するように構成された入力受信ユニットと、
前記入力受信ユニットに結合された処理ユニットと、を備え、前記処理ユニットは、
前記入力に従って、複数の予め定義されたタスクタイプからそれぞれのタスクタイプを特定することと、
前記それぞれのタスクタイプを特定することに応じて、１つ以上のサービスプロバイダの場所を特定することであって、それぞれのサービスプロバイダは、１つ以上のサポートされたタスクタイプの識別情報に関連しており、前記サービスプロバイダの前記１つ以上のサポートされたタスクタイプは、前記それぞれのタスクタイプを含む、１つ以上のサービスプロバイダの場所を特定することと、
前記１つ以上のサービスプロバイダの場所を特定した後、タスクの少なくとも一部を実行する要求を前記１つ以上のサービスプロバイダのうちのサービスプロバイダに送信することと
を行なうように構成される、電子機器。
【請求項７５】
前記入力は、前記ユーザの音声入力である、請求項７４に記載の機器。
【請求項７６】
前記処理ユニットは、前記入力を受信する前に、特定のサービスプロバイダから、前記特定のサービスプロバイダに関連した１つ以上のサポートされたタスクタイプの前記識別情報を受信するように更に構成される、請求項７４〜７５のいずれか一項に記載の機器。
【請求項７７】
前記処理ユニットは、
前記それぞれのタスクタイプを特定することに応じて、２つ以上のサービスプロバイダの場所を特定し、
前記２つ以上の場所が特定されたサービスプロバイダの１つを選択し、
前記選択したサービスプロバイダに前記要求を送信するように更に構成される、請求項７４〜７６のいずれか一項に記載の機器。
【請求項７８】
前記電子機器は、前記ユーザの携帯型電子機器であり、
前記携帯型電子機器は、前記２つ以上のサービスプロバイダに対応するそれぞれのソフトウェアアプリケーションを記憶するように構成され、
前記処理ユニットは、前記２つ以上のサービスプロバイダのうち、前記それぞれのソフトウェアアプリケーションの中の最も最近に使用されたソフトウェアアプリケーションに対応するそれぞれのサービスプロバイダを選択するように更に構成される、請求項７７に記載の機器。
【請求項７９】
前記電子機器は、前記ユーザの携帯型電子機器であり、
前記携帯型電子機器は、前記２つ以上のサービスプロバイダに対応するそれぞれのソフトウェアアプリケーションを記憶するように構成され、
前記処理ユニットは、前記２つ以上のサービスプロバイダのうち、前記それぞれのソフトウェアアプリケーションの中の最も頻繁に使用されたソフトウェアアプリケーションに対応するそれぞれのサービスプロバイダを選択するように更に構成される、請求項７７に記載の機器。
【請求項８０】
前記電子機器は、前記ユーザの携帯型電子機器であり、
前記携帯型電子機器は、前記２つ以上のサービスプロバイダの第１のサービスプロバイダに対応するそれぞれのソフトウェアアプリケーションを記憶するように構成され、
前記携帯型電子機器は、前記２つ以上のサービスプロバイダの第２のサービスプロバイダに対応するいずれのソフトウェアアプリケーションも記憶するように構成されず、
前記処理ユニットは、前記第１のサービスプロバイダを選択するように更に構成される、請求項７７に記載の機器。
【請求項８１】
ユーザの入力を受信するように構成された入力受信ユニットと、前記入力受信ユニットに結合された処理ユニットと、を備え、前記処理ユニットは、
前記ユーザの前記携帯型電子機器の場所を特定し、
前記ユーザの前記携帯型電子機器の前記場所に対応するそれぞれのドメインを特定し、
前記入力に従って、前記それぞれのドメインに対応するそれぞれのタスクタイプを特定し、
前記それぞれのタスクタイプを特定することに応じて、前記入力に関連した、タスクの少なくとも一部を実行する要求を、前記それぞれのドメインに関連したそれぞれのサービスプロバイダに送信する
ように構成される、サーバシステム。
【請求項８２】
前記処理ユニットは、前記携帯型電子機器の前記場所を特定する前に、前記それぞれのドメインを前記それぞれのサービスプロバイダから受信するように更に構成される、請求項８１に記載のシステム。
【請求項８３】
前記処理ユニットは、前記携帯型電子機器の前記場所を特定する前に、少なくとも１つのタスクフローモデルを前記それぞれのサービスプロバイダから受信するように更に構成される、請求項８１〜８２のいずれか一項に記載のシステム。
【請求項８４】
前記処理ユニットは、前記携帯型電子機器の前記場所を特定する前に、少なくとも語彙の識別情報を前記それぞれのサービスプロバイダから受信するように更に構成される、請求項８１〜８３のいずれか一項に記載のシステム。
【請求項８５】
前記処理ユニットは、前記それぞれのドメインを前記携帯型電子機器と関連づけるように更に構成される、請求項８１〜８４のいずれか一項に記載のシステム。
【請求項８６】
前記処理ユニットは、
前記携帯型電子機器の更新された場所を特定し、
前記更新された場所は、前記それぞれのドメインにもはや対応しないと判断し、
前記判断に従って、前記それぞれのドメインを前記携帯型電子機器から分離するように更に構成される、請求項８５に記載のシステム。
【請求項８７】
前記携帯型電子機器から前記それぞれのドメインを分離した後に、前記入力受信ユニットは、前記ユーザの第２の入力を受信するように更に構成され、前記処理ユニットは、
前記第２の入力に従って、前記それぞれのドメインに対応しないタスクタイプを特定し、
前記タスクタイプを特定することに応じて、前記入力に関連した、タスクの少なくとも一部を実行する要求を、前記それぞれのサービスプロバイダ以外のサービスプロバイダに送信する
ように更に構成される、請求項８６に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
開示する実施形態は、一般に、デジタルアシスタントシステムに関し、更に詳しくは、デジタルアシスタントシステムと統合されたサードパーティコンピュータシステム及びサービスに関する。
【背景技術】
【０００２】
人間の個人的なアシスタントとちょうど同じように、デジタルアシスタントシステムは、要求されたタスクを実行し、要求された助言、情報、又はサービスを提供することができる。デジタルアシスタントシステムの、ユーザの要求を実現する能力は、デジタルアシスタントシステムの、要求又は命令の正確な把握に依存する。自然言語処理における近年の進歩は、ユーザが自然言語を使って口頭又はテキストの形式でデジタルアシスタントシステムと対話することを可能にした。このようなデジタルアシスタントシステムは、ユーザの入力を解釈してユーザの意図を推測し、推測された意図を実施可能なタスク及びパラメータに翻訳し、タスクを実行するべく動作を実行するか又はサービスを配備し、ユーザが理解できる出力を作成することができる。理想的には、デジタルアシスタントシステムにより生成される出力は、ユーザとデジタルアシスタントシステムとの間での、自然言語による対話中に表されるユーザの意図を遂行するべきである。
【０００３】
デジタルアシスタントシステムがユーザ要求に対して満足な反応を生成することができるか否かは、デジタルアシスタントシステムが利用可能な自然言語処理、知識ベース、及び人工知能に左右される。更に、多数のサードパーティシステム及びサービスが現在のところ存在するが、デジタルアシスタントシステムがそのようなサードパーティコンピュータシステム及びサービスと効率的に統合する効率的な手段は存在しない。
【発明の概要】
【０００４】
先述したように、デジタルアシスタントシステムが、元来デジタルアシスタントシステムが利用できないデータベースにアクセスできるサードパーティコンピュータシステム及びサービスと、統合する必要性がある。これにより、デジタルアシスタントシステムは、デジタルアシスタントシステムが元来実行することのできないタスクを実行することができる。
【０００５】
本明細書で開示する実施形態は、１つ以上のサードパーティサービスプロバイダシステムの少なくとも１つから取得された情報又は支援に基づいて、ユーザ要求に対する応答を生成するためにデジタルアシスタントシステムを１つ以上のサードパーティサービスプロバイダシステムと統合する方法、システム及びコンピュータ可読記憶媒体を提供する。
【０００６】
いくつかの実施形態は、１つ以上のプロセッサ及びメモリを有する電子機器にて実行される、ユーザ入力を処理する方法を提供する。この方法は、サービスプロバイダから第１の組の１つ以上の予め定義されたタスクタイプを受信するステップと、複数の予め定義されたタスクを生成するために第１の組の１つ以上の予め定義されたタスクタイプをサービスプロバイダに関連していない第２の組の予め定義されたタスクタイプと統合するステップとを含む。この方法は、また、ユーザの入力を受信するステップと、入力に従って、複数の予め定義されたタスクタイプからのそれぞれのタスクタイプを特定するステップとを含む。それぞれのタスクタイプは、第１の組の１つ以上の予め定義されたタスクタイプの１つに対応する。この方法は、それぞれのタスクタイプを特定することに応じて、サービスプロバイダに、入力に関連したタスクの少なくとも一部を実行する要求を送信するステップを更に含む。
【０００７】
いくつかの実施形態では、１つ以上のプロセッサ及びメモリを有する電子機器にて実行される、ユーザ入力を処理する方法は、ユーザの入力を受信するステップと、入力に従って、複数のサードパーティサービスプロバイダに関連した複数の予め定義されたタスクタイプからのそれぞれのタスクタイプを特定するステップとを含む。それぞれのタスクタイプは、ユーザが許可される少なくとも１つのサードパーティサービスプロバイダ、及び、ユーザが許可されない少なくとも１つのサードパーティサービスプロバイダに関連づけられる。この方法は、それぞれのタスクタイプを特定することに応じて、タスクの少なくとも一部を実行する要求を、複数のサードパーティサービスプロバイダのうち、それぞれのタスクタイプに関連しているサードパーティサービスプロバイダに送信するステップも含む。
【０００８】
いくつかの実施形態では、１つ以上のプロセッサ及びメモリを有する電子機器にて実行される、ユーザ入力を処理する方法は、ユーザの入力を受信するステップと、入力に従って、複数の予め定義されたタスクタイプからのそれぞれのタスクタイプを特定するステップとを含む。この方法は、それぞれのタスクタイプを特定することに応じて、１つ以上のサービスプロバイダの場所を特定するステップも含む。それぞれの場所を特定されたサービスプロバイダは、１つ以上のサポートされたタスクタイプの識別情報（本明細書で「コンピテンシー」ともいう）に関連しており、サービスプロバイダの１つ以上のサポートされたタスクタイプは、それぞれのタスクタイプを含む。この方法は、１つ以上のサービスプロバイダの場所を特定した後、タスクの少なくとも一部を実行する要求を１つ以上のサービスプロバイダのうちのサービスプロバイダに送信するステップを更に含む。
【０００９】
いくつかの実施形態では、１つ以上のプロセッサ及びメモリを有するサーバシステムにて実行される、ユーザ入力を処理する方法は、ユーザに関連した携帯型電子機器の場所を特定するステップと、ユーザに関連した携帯型電子機器の場所に対応するそれぞれのドメインを特定するステップと、ユーザの入力を受信するステップと、入力に従って、それぞれのドメインに対応するそれぞれのタスクタイプを特定するステップとを含む。この方法は、それぞれのタスクタイプを特定することに応じて、それぞれのドメインに関連したそれぞれのサービスプロバイダに、入力に関連した、タスクの少なくとも一部を実行する要求を送信するステップも含む。
【００１０】
いくつかの実施形態では、入力は、ユーザの音声入力である。
【００１１】
いくつかの実施形態によれば、非一時的コンピュータ可読記憶媒体は、１つ以上のプロセッサ及びメモリを有する電子機器により実行されたときに、機器に、先述した方法のいずれかの動作を実行させる命令がその中に記憶されている。いくつかの実施形態によれば、電子機器は、１つ以上のプロセッサと、この１つ以上のプロセッサにより実行される１つ以上のプログラムを記憶したメモリと、を含む。１つ以上のプログラムは、上述の方法のいずれかの操作を実行するための命令を含む。いくつかの実施形態によれば、ディスプレイ、メモリ、及びこのメモリ内に記憶された１つ以上のプログラムを実行するための１つ以上のプロセッサを有する電子機器上のグラフィカルユーザインターフェースは、上述の方法のいずれかに記載されているように、入力に応じて更新される、上述の方法のいずれかで表示される要素のうちの１つ以上を含む。いくつかの実施形態に係る、電子機器は、上記に述べた方法のいずれかの動作を実行するための手段を含む。いくつかの実施形態に係る、電子機器において使用するための情報処理装置は、上記に述べた方法のいずれかの動作を実行するための手段を含む。
【００１２】
いくつかの実施形態によれば、電子機器は、ユーザ入力を受信するように構成された入力受信ユニットと、入力受信ユニットに結合された処理ユニットとを含む。処理ユニットは、第１の組の１つ以上の予め定義されたタスクタイプをサービスプロバイダから受信し、かつ、複数の予め定義されたタスクを生成するために、第１の組の１つ以上の予め定義されたタスクタイプをサービスプロバイダに関連していない第２の組の予め定義されたタスクタイプと統合するように構成される。処理ユニットは、入力に従って、第１の組の１つ以上の予め定義されたタスクタイプに対応する、複数の予め定義されたタスクタイプからのそれぞれのタスクタイプを特定するようにも構成される。処理ユニットは、それぞれのタスクタイプを特定することに応じて、サービスプロバイダに、入力に関連したタスクの少なくとも一部を実行する要求を送信するように更に構成される。
【００１３】
いくつかの実施形態によれば、電子機器は、ユーザの入力を受信するように構成された入力受信ユニットと、入力受信ユニットに結合された処理ユニットとを含む。処理ユニットは、入力に従って、複数のサードパーティサービスプロバイダに関連した複数の予め定義されたタスクタイプからのそれぞれのタスクタイプを特定するように構成され、それぞれのタスクタイプは、ユーザが許可される少なくとも１つのサードパーティサービスプロバイダ、及び、ユーザが許可されない少なくとも１つのサードパーティサービスプロバイダに関連づけられる。処理ユニットは、それぞれのタスクタイプを特定することに応じて、タスクの少なくとも一部を実行する要求を、複数のサードパーティサービスプロバイダのうち、それぞれのタスクタイプに関連しているサードパーティサービスプロバイダに送信するようにも構成される。
【００１４】
いくつかの実施形態によれば、電子機器は、ユーザの入力を受信するように構成された入力受信ユニットと、入力受信ユニットに結合された処理ユニットとを含む。処理ユニットは、入力に従って、複数の予め定義されたタスクタイプからのそれぞれのタスクタイプを特定するように構成される。処理ユニットは、それぞれのタスクタイプを特定することに応じて１つ以上のサービスプロバイダの場所を特定するようにも構成され、サービスプロバイダの１つ以上のサポートされたタスクタイプは、それぞれのタスクタイプを含む。処理ユニットは、１つ以上のサービスプロバイダの場所を特定した後、タスクの少なくとも一部を実行する要求を１つ以上のサービスプロバイダのうちのサービスプロバイダに送信するように更に構成される。
【００１５】
いくつかの実施形態によれば、サーバシステムは、ユーザの入力を受信するように構成された入力受信ユニットと、入力受信ユニットに結合された処理ユニットとを含む。処理ユニットは、ユーザの携帯型電子機器の場所を特定し、かつ、ユーザの携帯型電子機器の場所に対応するそれぞれのドメインを特定するように構成される。処理ユニットは、入力に従って、それぞれのドメインに対応するそれぞれのタスクタイプを特定するようにも構成される。処理ユニットは、それぞれのタスクタイプを特定することに応じて、入力に関連した、タスクの少なくとも一部を実行する要求を、それぞれのドメインに関連したそれぞれのサービスプロバイダに送信するように更に構成される。
【００１６】
したがって、デジタルアシスタントシステムは、サードパーティサービスプロバイダを統合し、それによってデジタルアシスタントシステム能力を改善及び拡張する、新規の改善された方法を備える。このような方法及びシステムは既存の方法及びシステムを補完するか又はそれらに取って代わることができる。
【図面の簡単な説明】
【００１７】
【図１】いくつかの実施形態に係るデジタルアシスタントが動作する環境を示すブロック図である。
【図２】いくつかの実施形態に係るデジタルアシスタントクライアントシステムを示すブロック図である。
【図３Ａ】いくつかの実施形態に係るスタンドアロンのデジタルアシスタントシステム又はデジタルアシスタントサーバシステムを示すブロック図である。
【図３Ｂ】いくつかの実施形態に係る、図３Ａに示すデジタルアシスタントの機能を示すブロック図である。
【図３Ｃ】いくつかの実施形態に係る、オントロジの一部を示すネットワーク図である。
【図４Ａ】いくつかの実施形態に係る、クライアントシステム、サーバシステム及びサービスプロバイダシステムにより実行される動作を示すフローチャートである。
【図４Ｂ】いくつかの実施形態に係る、クライアントシステム、サーバシステム及びサービスプロバイダシステムにより実行される動作を示すフローチャートである。
【図５】いくつかの実施形態に係る電子機器の機能ブロック図を示す。
【図６】いくつかの実施形態に係る電子機器の機能ブロック図を示す。
【図７】いくつかの実施形態に係る電子機器の機能ブロック図を示す。
【図８】いくつかの実施形態に係るサーバシステムの機能ブロック図を示す。
【発明を実施するための形態】
【００１８】
同様の参照番号は、図面を通して対応する部分を指す。
【００１９】
図１は、いくつかの実施形態に係るデジタルアシスタントの動作環境１００のブロック図である。用語「デジタルアシスタント」、「仮想アシスタント」、「インテリジェント自動アシスタント」、又は「自動デジタルアシスタント」は、口頭及び／又はテキスト形式の自然言語入力を解釈してユーザ意図を推測し（例えば、自然言語入力に対応するタスクの種類を特定し）、推測されたユーザ意図に基づき動作を実行する（例えば、特定されたタスクの種類に対応するタスクを実行する）あらゆる情報処理システムを指す。例えば、推測されたユーザ意図に基づいて動作するために、システムは、以下のことのうちの１つ以上を実行することができる：推測されたユーザ意図を果たすように設計されたステップ及びパラメータを有するタスクフローを特定すること（例えば、タスクの種類を特定すること）、推測されたユーザ意図からの具体的な要求事項をタスクフロー内に入力すること、プログラム、方法、サービス、ＡＰＩ、若しくは同様のものを呼び出すことによってタスクフローを実行すること（例えば、サービスプロバイダに要求を送信すること）、並びに可聴（例えば、発語）及び／又は視覚形式のユーザへの出力応答を生成すること。
【００２０】
具体的には、デジタルアシスタントシステムは、少なくとも部分的には自然言語のコマンド、要求、ステートメント、注釈、及び／又は問い合わせの形態でユーザ要求を受け入れる能力を有する。通例、ユーザ要求はデジタルアシスタントシステムによる情報回答又はタスクの実行のいずれかを求める。一般的に、ユーザ要求への満足な反応は、要求された情報回答の提供、要求されたタスクの実行のいずれか、又はその２つの組み合わせとなる。例えば、ユーザは、「ここはどこですか」など、デジタルアシスタントシステムに質問することができる。ユーザの現在の場所に基づいて、デジタルアシスタントは、「セントラルパークの西ゲート付近です」と答えることができる。ユーザは、例えば、「来週の僕の彼女の誕生パーティに僕の友達を招待してください」と記述することによりタスクの実行を要求することもできる。これに応じて、デジタルアシスタントは、音声出力「はい、すぐに」を生成することにより要求の確認応答をし、その後、適切なカレンダー招待をユーザの電子メールアドレスからユーザの電子アドレス帳に記載されたユーザの友達のそれぞれに送信することができる。情報又は種々のタスクの実行を要求するためにデジタルアシスタントと対話する方法は他にも数多く存在する。言葉による応答を提供し、プログラムされた動作を取ることに加えて、デジタルアシスタントは他の視覚又はオーディオ形式の応答を（例えば、テキスト、警報、音楽、ビデオ、アニメーション等として）提供することもできる。
【００２１】
図１に示されているように、いくつかの実施形態では、デジタルアシスタントシステムはクライアント−サーバモデルに従って実装される。デジタルアシスタントシステムは、ユーザ機器（例えば、１０４ａ及び１０４ｂ）上で実行されるクライアント側部分（例えば、１０２ａ及び１０２ｂ）（以後、「デジタルアシスタント（ＤＡ）クライアント１０２」）、並びにサーバシステム１０８上で実行されるサーバ側部分１０６（以後「デジタルアシスタント（ＤＡ）サーバ１０６」）を含む。ＤＡクライアント１０２は１つ以上のネットワーク１１０を通じてＤＡサーバ１０６と通信する。ＤＡクライアント１０２は、ユーザ対応入力及び出力処理、並びにＤＡサーバ１０６との通信等のクライアント側機能性を提供する。ＤＡサーバ１０６は、それぞれのユーザ機器１０４（クライアント機器とも呼ばれる）上に各々常駐する任意の数のＤＡクライアント１０２のためのサーバ側機能性を提供する。
【００２２】
いくつかの実施形態では、ＤＡサーバ１０６は、クライアント対応Ｉ／Ｏインターフェース１１２、１つ以上の処理モジュール１１４、データ及びモデル１１６、並びに外部サービスへのＩ／Ｏインターフェース１１８を含む。クライアント対応Ｉ／Ｏインターフェースはデジタルアシスタントサーバ１０６のためのクライアント対応入力及び出力処理を促進する。１つ以上の処理モジュール１１４はデータ及びモデル１１６を利用し、自然言語入力に基づきユーザの意図を判定し、推測されたユーザ意図に基づきタスク実行を実施する。
【００２３】
いくつかの実施形態では、ＤＡサーバ１０６は、タスク完了又は情報取得のためにネットワーク１１０を通じて外部サービス１２０（例えば、ナビゲーションサービス１２２−１、メッセージングサービス１２２−２、情報サービス１２２−３、カレンダーサービス１２２−４、電話サービス１２２−５等）と通信する。外部サービスへのＩ／Ｏインターフェース１１８はこのような通信を促進する。
【００２４】
ユーザ機器１０４の例としては、限定するものではないが、ハンドヘルドコンピュータ、無線携帯情報端末（ＰＤＡ）、タブレットコンピュータ、ラップトップコンピュータ、デスクトップコンピュータ、セルラー電話、スマートフォン、拡張型汎用パケット無線サービス（ＥＧＰＲＳ）携帯電話、メディアプレーヤ、ナビゲーション機器、ゲームコンソール、テレビ、遠隔制御装置、又はこれらのデータ処理機器のうちの任意の２つ以上の組み合わせ、あるいは任意の他の好適なデータ処理機器が挙げられる。ユーザ機器１０４に関する更なる詳細が、図２に示される例示的なユーザ機器１０４に関して提供されている。
【００２５】
通信ネットワーク（単数又は複数）１１０の例としては、ローカルエリアネットワーク（「ＬＡＮ」）及びワイドエリアネットワーク（「ＷＡＮ」）、例えば、インターネット、が挙げられる。通信ネットワーク（単数又は複数）１１０は、イーサネット（登録商標）、ユニバーサルシリアルバス（ＵＳＢ）、ファイヤワイヤ（登録商標）、移動通信用のグローバルシステム（ＧＳＭ）、拡張データＧＳＭ環境（ＥＤＧＥ）、符号分割多元接続（ＣＤＭＡ）、時分割多元接続（ＴＤＭＡ）、Ｂｌｕｅｔｏｏｔｈ、Ｗｉ−Ｆｉ、ボイス・オーバー・インターネット・プロトコル（ＶｏＩＰ）、Ｗｉ−ＭＡＸ、又は任意の他の好適な通信プロトコル等の、種々の有線若しくは無線プロトコルを含む、任意の周知のネットワークプロトコルを用いて実装されてよい。
【００２６】
サーバシステム１０８は少なくとも１つのデータ処理装置、及び／又はコンピュータの分散型ネットワーク上に実装することができる。いくつかの実施形態では、サーバシステム１０８は、また、様々な仮想機器及び／又はサードパーティサービスプロバイダ（例えば、サードパーティクラウドサービスプロバイダ）のサービスを採用して、サーバシステム１０８の基本的なコンピューティングリソース及び／又はインフラストラクチャリソースを提供する。
【００２７】
図１に示されるデジタルアシスタントシステムは、クライアント側部分（例えば、ＤＡクライアント１０２）及びサーバ側部分（例えば、ＤＡサーバ１０６）の両方を含むが、いくつかの実施形態では、デジタルアシスタントシステムはサーバ側部分（例えば、ＤＡサーバ１０６）のみを指す。いくつかの実施形態では、デジタルアシスタントの機能は、ユーザ機器上にインストールされるスタンドアロンのアプリケーションとして実装することができる。加えて、デジタルアシスタントのクライアント部分とサーバ部分との間の機能性の分配は実施形態よって異なり得る。例えば、いくつかの実施形態では、ＤＡクライアント１０２は、ユーザ対応入力及び出力処理機能のみを提供し、デジタルアシスタントの全ての他の機能性をＤＡサーバ１０６に委ねるシン・クライアントである。いくつかの他の実施形態では、ＤＡクライアント１０２は、ＤＡサーバ１０６の１つ以上の機能を実行又は支援するように構成される。
【００２８】
図２は、いくつかの実施形態に係るユーザ機器１０４のブロック図である。ユーザ機器１０４は、メモリインターフェース２０２、１つ以上のプロセッサ２０４、及び周辺機器インターフェース２０６を含む。ユーザ機器１０４内の種々の構成要素は１つ以上の通信バス又は信号線によって結合される。ユーザ機器１０４は、周辺機器インターフェース２０６に結合される種々のセンサ、サブシステム、及び周辺機器を含む。センサ、サブシステム、及び周辺機器は情報を収集し、及び／又はユーザ機器１０４の種々の機能性を促進する。
【００２９】
例えば、いくつかの実施形態では、配向、光、及び近接検知機能を促進するために、動きセンサ２１０、光センサ２１２、及び近接センサ２１４が周辺機器インターフェース２０６に結合される。いくつかの実施形態では、関連機能性を促進するために、測位システム（例えば、ＧＰＳ受信機）、温度センサ、生体測定センサ、及び同様のもの等の、その他のセンサ２１６が周辺機器インターフェース２０６に接続される。
【００３０】
いくつかの実施形態では、ユーザ機器１０４は、周辺機器インターフェース２０６に結合されるカメラサブシステム２２０を含む。いくつかの実施形態では、カメラサブシステム２２０の光学センサ２２２が、写真の撮影及びビデオクリップの録画等の、カメラ機能を促進する。いくつかの実施形態では、ユーザ機器１０４は、通信機能を提供する、１つ以上の有線及び／又は無線の通信サブシステム２２４を含む。通信サブシステム２２４は通例、種々の通信ポート、無線周波数受信機及び伝送機、並びに／又は光（例えば、赤外線）受信機及び伝送機を含む。いくつかの実施形態では、ユーザ機器１０４は、音声認識、音声応答、デジタル録音、及び電話機能等の、音声使用可能機能を促進するために、１つ以上のスピーカ２２８及び１つ以上のマイクロフォン２３０に結合されるオーディオサブシステム２２６を含む。
【００３１】
いくつかの実施形態では、Ｉ／Ｏサブシステム２４０も周辺機器インターフェース２０６に結合される。いくつかの実施形態では、ユーザ機器１０４はタッチスクリーン２４６を含み、Ｉ／Ｏサブシステム２４０は、タッチスクリーン２４６に結合されるタッチスクリーンコントローラ２４２を含む。ユーザ機器１０４がタッチスクリーン２４６及びタッチスクリーンコントローラ２４２を含む場合には、タッチスクリーン２４６及びタッチスクリーンコントローラ２４２は通例、例えば、容量性、抵抗性、赤外線、表面超音波技術、近接センサアレイ、及び同様のもの等の、複数のタッチ感知技術の任意のものを用いて接触及び移動又はその中断を検出するように構成される。いくつかの実施形態では、ユーザ機器１０４は、タッチ感知面を含まないディスプレイを含む。いくつかの実施形態では、ユーザ機器１０４は、分離したタッチ感知面を含む。いくつかの実施形態では、ユーザ機器１０４はその他の入力コントローラ（単数又は複数）２４４を含む。ユーザ機器１０４がその他の入力コントローラ（単数又は複数）２４４を含む場合には、その他の入力コントローラ（単数又は複数）２４４は通例、１つ以上のボタン、ロッカスイッチ、サムホイール、赤外線ポート、ＵＳＢポート、及び／又はスタイラス等のポインタ機器等の、その他の入力／制御機器２４８に結合される。
【００３２】
メモリインターフェース２０２はメモリ２５０に結合される。いくつかの実施形態では、メモリ２５０は、高速ランダムアクセスメモリ並びに／又は不揮発性メモリ（例えば、１つ以上の磁気ディスク記憶装置、１つ以上のフラッシュメモリ装置、１つ以上の光学記憶装置、及び／若しくはその他の不揮発性固体メモリ装置）等の、永続的コンピュータ可読媒体を含む。
【００３３】
いくつかの実施形態では、メモリ２５０は、オペレーティングシステム２５２、通信モジュール２５４、グラフィカルユーザインターフェースモジュール２５６、センサ処理モジュール２５８、電話モジュール２６０、及びアプリケーション２６２、並びにそれらのサブセット若しくはスーパーセットを記憶する。オペレーティングシステム２５２は、基本システムサービスを処理するための命令、及びハードウェア依存タスクを実行するための命令を含む。通信モジュール２５４は、１つ以上の追加機器、１つ以上のコンピュータ及び／又は１つ以上のサーバとの通信を促進する。グラフィカルユーザインターフェースモジュール２５６はグラフィックユーザインターフェース処理を促進する。センサ処理モジュール２５８はセンサ関連の処理及び機能（例えば、１つ以上のマイクロフォン２３０を用いて受け取られた音声入力の処理）を促進する。電話モジュール２６０は電話関連のプロセス及び機能を促進する。アプリケーションモジュール２６２は、電子メッセージング、ウェブブラウジング、メディア処理、ナビゲーション、イメージング及び／又はその他のプロセス及び機能等の、ユーザアプリケーションの種々の機能性を促進する。いくつかの実施形態では、ユーザ機器１０４は、それぞれ外部サービスプロバイダの少なくとも１つに関連した１つ以上のソフトウェアアプリケーション２７０−１及び２７０−２をメモリ２５０内に記憶する。
【００３４】
上述したように、いくつかの実施形態では、メモリ２５０はまた、デジタルアシスタントのクライアント側機能性を提供するために、（例えば、デジタルアシスタントクライアントモジュール２６４内の）クライアント側デジタルアシスタント命令、並びに種々のユーザデータ２６６（例えば、ユーザ固有語彙データ、プリファレンスデータ、及び／若しくはユーザの電子アドレス帳、ｔｏ−ｄｏリスト、買い物リストなど等のその他のデータ）も記憶する。
【００３５】
種々の実施形態では、デジタルアシスタントクライアントモジュール２６４は、ユーザ機器１０４の種々のユーザインターフェース（例えば、Ｉ／Ｏサブシステム２４４）を通じて音声入力、テキスト入力、タッチ入力、及び／又はジェスチャ入力を受け入れる能力を有する。デジタルアシスタントクライアントモジュール２６４はまた、オーディオ、視覚、及び／又は触覚形態の出力を提供する能力も有する。例えば、出力は、音声、音響、警報、テキストメッセージ、メニュー、グラフィック、ビデオ、アニメーション、振動、及び／又は上記のものの２つ以上の組み合わせとして提供することができる。動作時、デジタルアシスタントクライアントモジュール２６４は、通信サブシステム２２４を用いてデジタルアシスタントサーバ（例えば、デジタルアシスタントサーバ１０６、図１）と通信する。
【００３６】
いくつかの実施形態では、デジタルアシスタントクライアントモジュール２６４は、ユーザ入力に関連付けられるコンテキストを確立するために、種々のセンサ、サブシステム及び周辺機器を利用してユーザ機器１０４の周囲環境から追加情報を収集する。いくつかの実施形態では、デジタルアシスタントクライアントモジュール２６４は、ユーザの意図の推測を助けるために、ユーザ入力とともにコンテキスト情報又はそのサブセットをデジタルアシスタントサーバ（例えば、デジタルアシスタントサーバ１０６、図１）に提供する。
【００３７】
いくつかの実施形態では、ユーザ入力に伴うことができるコンテキスト情報は、センサ情報、例えば、周囲の環境の照明、周囲雑音、周囲温度、画像又は映像などを含む。いくつかの実施形態では、コンテキスト情報は、また、機器の物理状態、例えば、機器の方向、機器の位置、機器温度、電力レベル、速度、加速度、運動パターン、セルラー信号強度などを含む。いくつかの実施形態では、ユーザ機器１０６のソフトウェア状態、例えば、ユーザ機器１０４の稼動中のプロセス、インストール済みのプログラム、過去と現在のネットワーク活動、バックグラウンドサービス、エラーログ、リソース使用量などに関係する情報も、ユーザ入力に関連したコンテキスト情報として、デジタルアシスタントサーバ（例えば、デジタルアシスタントサーバ１０６、図１）に提供される。
【００３８】
いくつかの実施形態では、ＤＡクライアントモジュール２６４は、デジタルアシスタントサーバからの要求に応じてユーザ機器１０４上に記憶されている情報（例えば、ユーザデータ２６６の少なくとも一部）を選択的に提供する。いくつかの実施形態では、デジタルアシスタントクライアントモジュール２６４はまた、デジタルアシスタントサーバ１０６（図１）による要求に応じて自然言語ダイアログ又はその他のユーザインターフェースを介してユーザから追加入力も引き出す。デジタルアシスタントクライアントモジュール２６４は、意図推測及び／又はユーザ要求内に表されているユーザの意図の実現においてデジタルアシスタントサーバ１０６を助けるために、追加入力をデジタルアシスタントサーバ１０６に渡す。
【００３９】
いくつかの実施形態では、メモリ２５０は追加の命令又はより少数の命令を含んでもよい。更に、ユーザ機器１０４の種々の機能は、１つ以上の信号処理及び／又は特定用途向け集積回路の形態を含む、ハードウェアの形態及び／又はファームウェアの形態で実装されてもよく、それゆえ、ユーザ機器１０４は、図２に示されている全てのモジュール及びアプリケーションを含む必要はない。
【００４０】
図３Ａは、いくつかの実施形態に係る例示的なデジタルアシスタントシステム３００のブロック図である。いくつかの実施形態では、デジタルアシスタントシステム３００はスタンドアロンのコンピュータシステム上に実装される。いくつかの実施形態では、デジタルアシスタントシステム３００は複数のコンピュータにわたって分散される。いくつかの実施形態では、デジタルアシスタントのモジュール及び機能のいくつかはサーバ部分及びクライアント部分に分割される。この場合には、クライアント部分はユーザ機器（例えば、ユーザ機器１０４）上に常駐し、例えば、図１に示されているように、１つ以上のネットワークを通じてサーバ部分（例えば、サーバシステム１０８）と通信する。いくつかの実施形態では、デジタルアシスタントシステム３００は、図１に示されるサーバシステム１０８（及び／又はデジタルアシスタントサーバ１０６）の一実施形態である。いくつかの実施形態では、デジタルアシスタントシステム３００はユーザ機器（例えば、ユーザ機器１０４、図１）内に実装され、それにより、クライアント−サーバシステムの必要性をなくしている。デジタルアシスタントシステム３００はデジタルアシスタントシステムの単なる一例にすぎず、デジタルアシスタントシステム３００は、図示されているよりも多数若しくは少数の構成要素を有してもよく、２つ以上の構成要素を組み合わせてもよく、又は構成要素の異なる構成若しくは配置を有してもよいことに留意されたい。図３Ａに示される種々の構成要素は、１つ以上の信号処理及び／若しくは特定用途向け集積回路を含む、ハードウェア、ソフトウェア、ファームウェア、又はそれらの組み合わせの形態で実装されてもよい。
【００４１】
デジタルアシスタントシステム３００は、メモリ３０２、１つ以上のプロセッサ３０４、入力／出力（Ｉ／Ｏ）インターフェース３０６、及びネットワーク通信インターフェース３０８を含む。これらの構成要素は１本以上の通信バス又は信号線３１０を通じて互いに通信する。
【００４２】
いくつかの実施形態では、メモリ３０２は、高速ランダムアクセスメモリ並びに／又は不揮発性コンピュータ可読記憶媒体（例えば、１つ以上の磁気ディスク記憶装置、１つ以上のフラッシュメモリ装置、１つ以上の光学記憶装置、及び／若しくはその他の不揮発性固体メモリ装置）等の、永続的コンピュータ可読媒体を含む。
【００４３】
Ｉ／Ｏインターフェース３０６は、ディスプレイ、キーボード、タッチスクリーン、及びマイクロフォン等の、デジタルアシスタントシステム３００の入力／出力機器３１６をユーザインターフェースモジュール３２２に結合する。Ｉ／Ｏインターフェース３０６は、ユーザインターフェースモジュール３２２と協働して、ユーザ入力（例えば、音声入力、キーボード入力、タッチ入力等）を受け取り、それらを適宜に処理する。いくつかの実施形態では、デジタルアシスタントがスタンドアロンのユーザ機器上に実装される場合には、デジタルアシスタントシステム３００は、図２におけるユーザ機器１０４に関して説明されている構成要素並びにＩ／Ｏ及び通信インターフェースの任意のもの（例えば、１つ以上のマイクロフォン２３０）を含む。いくつかの実施形態では、デジタルアシスタントシステム３００はデジタルアシスタント実装のサーバ部分を表し、ユーザ機器（例えば、図２に示されるユーザ機器１０４）上に常駐するクライアント側部分を通じてユーザと対話する。
【００４４】
いくつかの実施形態では、ネットワーク通信インターフェース３０８は有線通信ポート（単数又は複数）３１２並びに／又は無線伝送及び受信回路機構３１４を含む。有線通信ポートは、１つ以上の有線インターフェース、例えば、イーサネット、ユニバーサルシリアルバス（ＵＳＢ）、ＦＩＲＥＷＩＲＥなどを介して通信信号を受信及び送信する。無線回路３１４は、典型的には、通信ネットワーク及び他の通信機器を起点・終点としてＲＦ信号及び／又は光信号を受信及び送信する。無線通信は、ＧＳＭ、ＥＤＧＥ、ＣＤＭＡ、ＴＤＭＡ、Ｂｌｕｅｔｏｏｔｈ、Ｗｉ−Ｆｉ、ＶｏＩＰ、Ｗｉ−ＭＡＸ、又は任意のその他の好適な通信プロトコル等の、複数の通信規格、プロトコル及び技術の任意のものを用いてよい。ネットワーク通信インターフェース３０８は、デジタルアシスタントシステム３００と、インターネット、セルラー電話ネットワーク、無線ローカルエリアネットワーク（ＬＡＮ）及び／又はメトロポリタンエリアネットワーク（ＭＡＮ）等のイントラネット及び／又は無線ネットワーク等の、ネットワーク、並びに他の機器との間の通信を可能にする。
【００４５】
いくつかの実施形態では、メモリ３０２の永続的コンピュータ可読記憶媒体は、オペレーティングシステム３１８、通信モジュール３２０、ユーザインターフェースモジュール３２２、１つ以上のアプリケーション３２４、及びデジタルアシスタントモジュール３２６の全て又はサブセットを含むプログラム、モジュール、命令、及びデータ構造を記憶する。１つ以上のプロセッサ３０４はこれらのプログラム、モジュール、及び命令を実行し、データ構造からの読み出し、又はデータ構造への書き込みを行う。
【００４６】
オペレーティングシステム３１８（例えば、Ｄａｒｗｉｎ、ＲＴＸＣ、ＬＩＮＵＸ、ＵＮＩＸ、ＯＳ  Ｘ、ＷＩＮＤＯＷＳ、又はＶｘＷｏｒｋｓ等の組み込みオペレーティングシステム）は、一般システムタスク（例えば、メモリ管理、記憶装置制御、電力管理等）を制御及び管理するための種々のソフトウェア構成要素及び／又はドライバを含み、種々のハードウェア、ファームウェア、及びソフトウェア構成要素の間の通信を促進する。
【００４７】
通信モジュール３２０は、ネットワーク通信インターフェース３０８を通じたデジタルアシスタントシステム３００とその他の機器との間の通信を促進する。例えば、通信モジュール３２０は、図２に示される機器１０４の通信モジュール２５４と通信してもよい。通信モジュール３２０はまた、無線回路３１４及び／又は有線通信ポート３１２によって受け取られたデータを処理するための種々のソフトウェア構成要素も含む。
【００４８】
いくつかの実施形態では、ユーザインターフェースモジュール３２２はＩ／Ｏインターフェース３０６を介して（例えば、キーボード、タッチスクリーン、及び／又はマイクロフォンから）ユーザからのコマンド及び／又は入力を受け取り、ディスプレイ上にユーザインターフェースオブジェクトを提供する。
【００４９】
アプリケーション３２４は、１つ以上のプロセッサ３０４によって実行されるように構成されるプログラム及び／又はモジュールを含む。例えば、デジタルアシスタントシステムがスタンドアロンのユーザ機器上に実装される場合には、アプリケーション３２４は、ゲーム、カレンダーアプリケーション、ナビゲーションアプリケーション、又は電子メールアプリケーション等の、ユーザアプリケーションを含んでもよい。デジタルアシスタントシステム３００がサーバファーム上に実装される場合には、アプリケーション３２４は、例えば、資源管理アプリケーション、診断アプリケーション、又はスケジューリングアプリケーションを含んでもよい。
【００５０】
メモリ３０２はまた、デジタルアシスタントモジュール（又はデジタルアシスタントのサーバ部分）３２６も記憶する。いくつかの実施形態では、デジタルアシスタントモジュール３２６は、以下のサブモジュール、又はそれらのサブセット若しくはスーパーセットを含む：入力／出力処理モジュール３２８、発語テキスト化（ＳＴＴ）処理モジュール３３０、自然言語処理モジュール３３２、ダイアログフロー処理モジュール３３４、タスクフロー処理モジュール３３６、及びサービス処理モジュール３３８。これらの処理モジュールの各々は、デジタルアシスタント３２６の以下のデータ及びモデルのうちの１つ以上、又はそれらのサブセット若しくはスーパーセットへのアクセスを有する：オントロジ３６０、語彙索引３４４、ユーザデータ３４８、タスクフローモデル３５４、及びサービスモデル３５６。
【００５１】
いくつかの実施形態では、オントロジ３６０は、１つ以上のサードパーティドメイン３７４を含む。いくつかの実施形態では、デジタルアシスタントシステム３００は、１つ以上のデフォルトドメイン３７２を含む。
【００５２】
いくつかの実施形態では、１つ以上のデフォルトドメイン３７２は、１つ以上の独自ドメインを含む。いくつかの実施形態では、１つ以上のサードパーティドメイン３７４は、１つ以上のパブリックドメインを含む。いくつかの実施形態では、１つ以上のサードパーティドメイン３７４は、１つ以上のデベロッパドメインを含む。
【００５３】
いくつかの実施形態では、語彙３４４は、１つ以上のサードパーティ語彙３７８を含む。いくつかの実施形態では、語彙３４４は、１つ以上のデフォルト語彙３７６を含む。
【００５４】
いくつかの実施形態では、タスクフローモデル３５４は、１つ以上のサードパーティタスクフローモデル３８２を含む。いくつかの実施形態では、タスクフローモデル３５４は、１つ以上のデフォルトタスクフローモデル３８０を含む。
【００５５】
いくつかの実施形態では、サービスモデル３５６は、１つ以上のサードパーティサービスモデル３８６を含む。いくつかの実施形態では、サービスモデル３５６は、１つ以上のデフォルトサービスモデル３８４を含む。
【００５６】
いくつかの実施形態では、メモリ３０２は、また、サービスプロバイダディレクトリ３９０を記憶する。いくつかの実施形態では、サービスプロバイダディレクトリ３９０は、それぞれのサードパーティサービスプロバイダシステムのための、サポートされたタスク又はコンピテンシー３９２のリストを含む。
【００５７】
いくつかの実施形態では、デジタルアシスタントモジュール３２６内に実装された処理モジュール（例えば、入力／出力処理モジュール３２８、ＳＴＴ処理モジュール３３０、自然言語処理モジュール３３２、ダイアログフロー処理モジュール３３４、タスクフロー処理モジュール３３６、及び／若しくはサービス処理モジュール３３８）、データ、並びにモデルを用いて、デジタルアシスタントシステム３００は以下のもののうちの少なくともいくつかを実行する：ユーザから受け取られた自然言語入力内に表現されているユーザの意図を特定すること、（例えば、単語、名前、意志等の曖昧さを除去することによって）ユーザの意図を完全に推測するために必要な情報を能動的に引き出して入手すること、推測された意図を実現するためのタスクフローを決定すること、及び推測された意図を実現するためにタスクフローを実行すること。いくつかの実施形態では、デジタルアシスタントはまた、種々の理由で満足のいく応答がユーザに提供されないか、又は提供できなかった場合に、適切な対応を取る。
【００５８】
いくつかの実施形態では、メモリ３０２は、それぞれのユーザが使用する権限を与えられる１つ以上のソフトウェアアプリケーションを特定するユーザアプリケーションデータ３４０も含む。いくつかの実施形態では、ユーザアプリケーションデータ３４０は、１つ以上のソフトウェアアプリケーションの使用の頻度及び最新性（即ち、１つ以上のソフトウェアアプリケーションがどれくらい最近に使用されたかという表示）も含む。いくつかの実施形態では、ユーザアプリケーションデータ３４０は、ユーザデータ３４８内に含められる。
【００５９】
いくつかの実施形態では、サードパーティサービスプロバイダ（例えば、図１の外部サービス１２０）のサーバは、図３Ａに示すコンポーネント（例えば、オントロジ３６０、タスクフローモデル３５４など）も含む。
【００６０】
図３Ｂに示すように、いくつかの実施形態では、Ｉ／Ｏ処理モジュール３２８は、ユーザ入力（例えば、発語入力）を入手するため、及びユーザ入力への応答を提供するために、図３ＡのＩ／Ｏ機器３１６を通じてユーザと対話するか、又は、図３Ａのネットワーク通信インターフェース３０８を通じてユーザ機器（例えば、図１におけるユーザ機器１０４）と対話する。Ｉ／Ｏ処理モジュール３２８は、ユーザ入力とともに、又はその受け取りの直後に、ユーザ入力に関連付けられるコンテキスト情報をユーザ機器から任意追加的に入手する。コンテキスト情報は、ユーザ入力に関連するユーザ固有データ、語彙、及び／又はプリファレンスを含む。いくつかの実施形態では、コンテキスト情報はまた、ユーザ要求が受け取られる時点における機器（例えば、図１におけるユーザ機器１０４）のソフトウェア及びハードウェア状態、並びに／又はユーザ要求が受け取られた時点におけるユーザの周囲環境に関する情報も含む。いくつかの実施形態では、Ｉ／Ｏ処理モジュール３２８はまた、ユーザ要求について、ユーザに補足質問を送信し、ユーザから回答を受け取る。いくつかの実施形態では、ユーザ要求がＩ／Ｏ処理モジュール３２８によって受け取られ、ユーザ要求が発語入力を包含する場合には、Ｉ／Ｏ処理モジュール３２８は発語入力を発語テキスト化変換のために発語テキスト化（ＳＴＴ）処理モジュール３３０へ転送する。
【００６１】
いくつかの実施形態では、発語テキスト化処理モジュール３３０は、Ｉ／Ｏ処理モジュール３２８を通じて発語入力（例えば、音声記録内にキャプチャされたユーザ発言）を受け取る。いくつかの実施形態では、発語テキスト化処理モジュール３３０は、発語入力を、音素の列、並びに最終的には、１つ以上の言語で書かれた単語若しくはトークンの列として認識するために、種々の音響モデル及び言語モデルを用いる。発語テキスト化処理モジュール３３０は、隠れマルコフモデル、動的タイムワーピング（ＤＴＷ）ベースの発語認識、並びにその他の統計的及び／若しくは解析的技法等の、任意の好適な発語認識技法、音響モデル、及び言語モデルを用いて実装される。いくつかの実施形態では、発語テキスト化処理は、サードパーティサービスによって、又はユーザの機器上で少なくとも部分的に実行され得る。発語テキスト化処理モジュール３３０が発語テキスト化処理（例えば、単語又はトークンの列）の結果を入手すると、それは結果を意図の推測のために自然言語処理モジュール３３２へ渡す。
【００６２】
デジタルアシスタント３２６の自然言語処理モジュール３３２（「自然言語プロセッサ」）は、発語テキスト化処理モジュール３３０によって生成された単語又はトークンの列（「トークン列」）を獲得し、トークン列を、デジタルアシスタントによって認識される１つ以上の「実施可能な意図」に関連付けようと試みる。本明細書で使用するとき、「実施可能な意図」は、デジタルアシスタント３２６及び／又はデジタルアシスタントシステム３００（図３Ａ）によって実行されることができ、タスクフローモデル３５４内に実装される、関連付けられたタスクフローを有するタスクを表す。関連付けられたタスクフローは、タスクを実行するためにデジタルアシスタントシステム３００が取る一連のプログラムされた動作及びステップである。デジタルアシスタントシステムの能力の範囲は、タスクフローモデル３５４内に実装され、記憶されているタスクフローの数及び種類に依存し、又は、換言すれば、デジタルアシスタントシステム３００が認識する「実施可能な意図」の数及び種類に依存する。ただし、デジタルアシスタントシステム３００の有効性はまた、自然言語で表現されたユーザ要求から正確な「実施可能な意図（単数又は複数）」を推測するデジタルアシスタントシステムの能力にも依存する。
【００６３】
いくつかの実施形態では、発語テキスト化処理モジュール３３０から入手される単語又はトークンの列に加えて、自然言語プロセッサ３３２はまた、ユーザ要求に関連付けられるコンテキスト情報も（例えば、Ｉ／Ｏ処理モジュール３２８から）受け取る。自然言語プロセッサ３３２は、発語テキスト化処理モジュール３３０から受け取られたトークン列内に包含されている情報を明らかにし、補完し、及び／又は更に明確にするために、コンテキスト情報を任意追加的に用いる。コンテキスト情報は、例えば、ユーザプリファレンス、ユーザ機器のハードウェア及び／又はソフトウェア状態、ユーザ要求の前、最中、若しくは直後に集められたセンサ情報、デジタルアシスタントとユーザとの間の以前の対話（例えば、ダイアログ）、並びに同様のものを含む。
【００６４】
いくつかの実施形態では、自然言語処理はオントロジ３６０に基づく。オントロジ３６０は、複数のノードを包含する階層構造であり、各ノードは、「実施可能な意図群」又はその他の「特性群」のうちの１つ以上に関連する「実施可能な意図」又は「特性」のいずれかを表す。上述のように、「実施可能な意図」は、デジタルアシスタントシステム３００が実行する能力を有するタスク（例えば、「実施可能」であるか又は実施の対象とすることができるタスク）を表す。「特性」は、実施可能な意図、又は別の特性の下位態様に関連付けられるパラメータを表す。オントロジ３６０内の実施可能な意図ノードと特性ノードとの間のリンクは、特性ノードによって表されるパラメータは、実施可能な意図ノードによって表されるタスクにどのように関連するのかを定義する。
【００６５】
いくつかの実施形態では、オントロジ３６０は実施可能な意図ノード及び特性ノードで構成される。オントロジ３６０内において、各々の実施可能な意図ノードは１つ以上の特性ノードに直接又は１つ以上の中間特性ノードを介してリンクされる。同様に、各特性ノードは１つ以上の実施可能な意図ノードに直接又は１つ以上の中間特性ノードを介してリンクされる。例えば、図３Ｃに示すオントロジ３６０は、実施可能な意図ノードである「レストラン予約」ノードを含む。特性ノード「レストラン」、（予約の）「日付／時間」及び「同行人数」が、「レストラン予約」ノード（実施可能な意図ノード）にそれぞれ直接にリンクされる。更に、特性ノード「料理」、「価格帯」、「電話番号」及び「場所」が、特性ノード「レストラン」のサブノードであり、中間特性ノード「レストラン」を介して「レストラン予約」ノードにそれぞれリンクされる。別の実施例として、図３Ｃに示すオントロジ３６０は、別の実施可能な意図ノードである「リマインダを設定する」ノードも含む。特性ノード「日付／時間」（設定リマインダ用）及び「テーマ」（リマインダ用）は、「リマインダを設定する」ノードにそれぞれリンクされる。特性ノード「日付／時間」はレストラン予約をするタスク及びリマインダを設定するタスクの両方に関連していることから、特性ノード「日付／時間」はオントロジ３６０において「レストラン予約」ノード及び「リマインダを設定する」ノードの両方にリンクされる。図３Ｃに示すオントロジ３６０は、実施可能な意図ノードである「レストランレビュー」ノードを含む。特性ノード「レビュー」（例えば、ユーザコメント）、「ランキング」（例えば、数字による得点）及び「レストラン」は、「レストランレビュー」ノードにそれぞれ直接にリンクされる。特性ノード「レストラン」はレストラン予約をするタスク及びレストランレビューを検索するタスクに関連していることから、特性ノード「レストラン」は、オントロジ３６０において「レストラン予約」ノード及び「レストランレビュー」ノードの両方にリンクされる。
【００６６】
実施可能な意図ノードは、リンクされた概念ノードとともに、「ドメイン」として記述することができる。本発明で論じる内容では、それぞれのドメインはそれぞれの実施可能な意図に関連しており、かつ、特定の実施可能な意図に関連したノードのグループ（及び関係）を指す。例えば、図３Ｃに示すオントロジ３６０は、レストラン予約ドメイン３６２の実施例と、リマインダドメイン３６４の実施例と、オントロジ３６０内のサードパーティレストランレビュードメイン３６６の実施例とを含む。レストラン予約ドメイン３６２は、実施可能な意図ノード「レストラン予約」、特性ノード「レストラン」、「日付／時間」、及び「同行人数」と、下位特性ノード「料理」、「価格帯」、「電話番号」、及び「場所」とを含む。リマインダドメイン３６４は、実施可能な意図ノード「リマインダを設定する」と、特性ノード「テーマ」、及び「日付／時間」とを含む。レストランレビュードメイン３６６は、実施可能な意図ノード「レストランレビュー」、特性ノード「レビュー」、「ランキング」及び「レストラン」と、下位特性ノード「料理」、「価格帯」、「電話番号」、及び「場所」とを含む。いくつかの実施形態では、オントロジ３６０は、多くのドメインから構成される。各ドメインは１つ以上の特性ノードを１つ以上の他のドメインと共有する場合がある。例えば、「日付／時間」特性ノードは、レストラン予約ドメイン３６２及びリマインダドメイン３６４に加えて、多くの他のドメイン（例えば、スケジューリングドメイン、旅行予約ドメイン、映画チケットドメインなど）に関連づけることができる。
【００６７】
図３Ｃはオントロジ３６０において２つの例示的なドメインを示すが、オントロジ３６０は、「通話を開始する」、「道順を探す」、「会議を予定する」、「メッセージを送る」、及び、「問題の答えを提供する」など、他のドメイン（即ち、実施可能な意図）を含むことができる。例えば、「メッセージを送る」ドメインは、「メッセージを送る」実施可能な意図ノードに関連しており、かつ、「受取人」「メッセージ形式」及び「メッセージ本文」などの特性ノードを更に含むことができる。特性ノード「受取人」は、例えば、「受取人名」及び「メッセージアドレス」などの下位特性ノードにより更に定義することができる。
【００６８】
いくつかの実施形態では、オントロジ３６０は、デジタルアシスタントが理解し、作用する能力を有する全てのドメイン（及びしたがって実施可能な意図）を含む。いくつかの実施形態では、オントロジ３６０は、ドメイン若しくはノードを追加若しくは除去すること、又はオントロジ３６０内のノード間の関係を変更することなどによって、変更されてもよい。
【００６９】
いくつかの実施形態では、複数の関連する実施可能な意図に関連付けられるノードは、オントロジ３６０内の「上位ドメイン」の下にクラスタ化されてもよい。例えば、「旅行」上位ドメインは、旅行に関連する特性ノード及び実施可能な意図ノードのクラスタを含んでもよい。旅行に関連する実施可能な意図ノードは、「航空券予約」、「ホテル予約」、「レンタカー」、「行き方を知る」、「興味のある場所を探す」などを含んでもよい。同じ上位ドメイン（例えば、「旅行」上位ドメイン）の下の実施可能な意図ノードは多くの特性ノードを共通に有する場合がある。例えば、「航空券予約」、「ホテル予約」、「レンタカー」、「行き方を知る」、「興味のある場所を探す」のための実施可能な意図ノードは、特性ノード「出発地」、「目的地」、「出発日／時間」、「到着日／時間」、及び「同行人数」のうちの１つ以上を共有してもよい。
【００７０】
いくつかの実施形態では、オントロジ３６０内の各ノードは、そのノードによって表される特性又は実施可能な意図に関連する単語及び／又は成句のセットに関連付けられる。各ノードに関連付けられる単語及び／又は成句のそれぞれのセットは、そのノードに関連付けられるいわゆる「語彙」である。各ノードに関連付けられる単語及び／又は成句のそれぞれのセットは、ノードによって表される特性又は実施可能な意図に関連して語彙索引３４４（図３Ｂ）内に記憶することができる。例えば、図３Ｂに戻ると、「レストラン」の特性のためのノードに関連付けられる語彙は、「食べ物」、「飲み物」、「料理」、「空腹」、「食べる」、「ピザ」、「ファーストフード」、「食事」など等の単語を含んでもよい。別の例を挙げると、「電話をかける（initiate a phone call）」という実施可能な意図のためのノードに関連付けられる語彙は、「電話する（call）」、「電話する（phone）」、「ダイアルする（dial）」、「電話をかける（ring）」、「この番号に電話する（call this number）」、「〜に電話をかける（make a call to）」など等の単語及び成句を含んでもよい。語彙索引３４４は異なる言語の単語及び成句を任意追加的に含む。
【００７１】
いくつかの実施形態では、図３Ｂに示す自然言語プロセッサ３３２は、発語テキスト化処理モジュール３３０からトークン列（例えば、テキストストリング）を受け取り、どのノードがトークン列内の単語によって暗示されているのかを判定する。いくつかの実施形態では、トークン列内の単語又は成句が（語彙索引３４４を介して）オントロジ３６０内の１つ以上のノードに関連付けられることが分かれば、その単語又は成句はそれらのノードを「トリガ」又は「活性化」することになる。複数のノードが「トリガされる」場合には、活性化されたノードの量及び／又は相対的重要度に基づき、自然言語プロセッサ３３２は実施可能な意図のうちの１つを、ユーザがデジタルアシスタントに実行させようと意図したタスク（又はタスクの種類）として選択することになる。いくつかの実施形態では、最も多く「トリガされた」ノードを有するドメインが選択される。いくつかの実施形態では、最も高い信頼値を有するドメイン（例えば、その種々のトリガされたノードの相対的重要度に基づく）が選択される。いくつかの実施形態では、ドメインは、トリガされたノードの数及び重要度の組み合わせに基づき選択される。いくつかの実施形態では、ノードを選択する際には、デジタルアシスタントシステム３００はユーザからの同様の要求を以前に正確に解釈したかどうか等の追加の因子も考慮される。
【００７２】
いくつかの実施形態では、デジタルアシスタントシステム３００はまた、特定の実体の名前も語彙索引３４４内に記憶する。そのため、これらの名前の１つがユーザ要求内に検出されると、自然言語プロセッサ３３２は、その名前はオントロジ内の特性又は下位特性の特定のインスタンスを指していると認識できることになる。いくつかの実施形態では、特定の実体の名前は、企業、レストラン、人、映画、及び同様のものの名前である。いくつかの実施形態では、デジタルアシスタントシステム３００は、ユーザのアドレス帳、映画データベース、ミュージシャンデータベース、及び／又はレストランデータベース等の、他のデータ源から特定の実体名を検索し、これらを特定することができる。いくつかの実施形態では、自然言語プロセッサ３３２が、トークン列内の単語は特定の実体の名前（ユーザのアドレス帳内の名前等）であると特定すると、その単語は、ユーザ要求のためにオントロジ内の実施可能な意図を選択する際に追加的な重要性を与えられる。
【００７３】
例えば、ユーザ要求から単語「Ｍｒ．Ｓａｎｔｏ」が認識され、語彙索引３４４内にユーザの連絡先リスト内の連絡先の１つとして姓「Ｓａｎｔｏ」が見つかった場合には、このとき、ユーザ要求は、「メッセージを送信する」又は「電話をかける」ドメインに対応する可能性が高い。別の例を挙げると、単語「ＡＢＣ  Ｃａｆｅ」がユーザ要求内に見つかり、語彙索引３４４内にユーザの市内の特定のレストランの名前として用語「ＡＢＣ  Ｃａｆｅ」が見つかった場合には、このとき、ユーザ要求は「レストラン予約」ドメインに対応する可能性が高い。
【００７４】
ユーザデータ３４８は、ユーザ固有語彙、ユーザプリファレンス、ユーザアドレス、ユーザの既定言語及び第二言語、ユーザの連絡先リスト、並びに各ユーザのためのその他の短期的若しくは長期的情報等の、ユーザ固有情報を含む。自然言語プロセッサ３３２は、ユーザ入力内に包含されている情報を補完してユーザ意図を更に明確にするためにユーザ固有情報を用いることができる。例えば、ユーザ要求「私の誕生日パーティに私の友人を招待する」の場合には、自然言語プロセッサ３３２は、誰が「友人」であり、いつ、及びどこで「誕生日パーティ」は催されるのであろうかを判定するために、こうした情報を自分の要求内で明示的に提供するようにユーザに要請する代わりに、ユーザデータ３４８にアクセスすることができる。
【００７５】
自然言語プロセッサ３３２がユーザ要求に基づき実施可能な意図（又はドメイン）を特定すると、自然言語プロセッサ３３２は、特定された実施可能な意図を表すために、構造化されたクエリを生成する。いくつかの実施形態では、構造化されたクエリは、実施可能な意図のためのドメイン内の１つ以上のノードのためのパラメータを含み、パラメータの少なくとも一部には、ユーザ要求内で指定される特定の情報及び要求事項が入力される。例えば、ユーザは、「私のために７にて寿司屋にて夕食の予約をする」と言うことができる。この場合、自然言語プロセッサ３３２は、ユーザ入力に基づいて「レストラン予約」である実施可能な意図を正しく特定することができることができる。オントロジによれば、「レストラン予約」ドメインのための構造化されたクエリは、｛料理｝、｛時間｝、｛日付｝、｛同行人数｝、及び同様のもの等のパラメータを含み得る。ユーザの発言に含まれた情報に基づいて、自然言語プロセッサ３３２は、レストラン予約ドメインについて部分的な構造化されたクエリを生成することができ、部分的な構造化されたクエリは、｛Ｃｕｉｓｉｎｅ＝「Ｓｕｓｈｉ」｝と、｛Ｔｉｍｅ＝「７ｐｍ」｝とを含む。しかしながら、この実施例において、ユーザ発言に含まれる情報は、ドメインに関連した構造化されたクエリを完成するには不十分である。したがって、｛同行人数｝及び｛日付｝等のその他の必要パラメータは、現在利用可能な情報に基づいては、構造化されたクエリ内に指定されていない。いくつかの実施形態では、自然言語プロセッサ３３２は、構造化されたクエリのいくつかのパラメータに、受け取られたコンテキスト情報を入力する。例えば、ユーザが「私の近くの」寿司レストランを要求した場合には、自然言語プロセッサ３３２は、構造化されたクエリ内の｛ロケーション｝パラメータにユーザ機器１０４からＧＰＳ座標を入力してもよい。
【００７６】
いくつかの実施形態では、自然言語プロセッサ３３２は、（あらゆる入力済みのパラメータを含む）構造化されたクエリをタスクフロー処理モジュール３３６（「タスクフロープロセッサ」）に渡す。タスクフロープロセッサ３３６は、自然言語プロセッサ３３２から、構造化されたクエリを受け取ること、構造化されたクエリを完成させること、及びユーザの最終的な要求を「完了する」ために必要とされる動作を実行すること、のうちの１つ以上を実行するように構成される。いくつかの実施形態では、これらのタスクを完了させるために必要な種々の手順はタスクフローモデル３５４内で提供される。いくつかの実施形態では、タスクフローモデル３５４は、ユーザから追加情報を入手するための手順、及び実施可能な意図に関連付けられる動作を実行するためのタスクフローを含む。
【００７７】
いくつかの実施形態では、デジタルアシスタント３２６は、テンプレート処理モジュールを含む。いくつかの実施形態では、会話：テキスト処理モジュール３３０により生成されたトークンシーケンスは、自然言語処理モジュール３３２に加えて、又はその代わりにテンプレート処理モジュールに送信される。テンプレート処理モジュールは、複数の予め定義されたテンプレートにアクセスすることができる。テンプレートは、典型的には特定の言語パターンを定義する。例示的なテンプレートとしては、「［ｘ］を再生する」と、「［ｘ］を［ｙ］で再生する」と、「［ａ］を［ｂ］から買う」と、「［ｃ］を［ｄ］に転送する」が挙げられる。
【００７８】
いくつかの実施形態では、テンプレート処理モジュールは、外部サービスと直接に結合される。いくつかの実施形態では、テンプレート処理モジュールは、サービス処理モジュール３３８を介して外部サービスと通信する。いくつかの実施形態では、外部サービスを特定する情報を含むサービスモデル３５６が、特定のテンプレートに関連づけられる。いくつかの実施形態では、サードパーティサービスプロバイダは、特定のテンプレート又はテンプレートの特定のセットに関連づけられるべき要求を送信し、これに反応して、サービスモデル３５６内の情報が更新されて、サードパーティサービスプロバイダが特定のテンプレート又はテンプレートの特定のセットに関連していることを示す。いくつかの実施形態では、アプリケーション（例えば、機器にインストールされたアプリケーション）は、対応するサードパーティサービスプロバイダが特定のテンプレート又はテンプレートの特定のセットに関連していることを示す情報を含む。いくつかの実施形態では、アプリケーションをインストールした後に、デジタルアシスタント３２６は、対応するサードパーティサービスプロバイダが特定のテンプレート又はテンプレートの特定のセットに関連していることを（例えば、機器又はそのユーザについて）反映するために情報を更新する。
【００７９】
いくつかの実施形態では、テンプレートは、グループ化される。例えば、「［ｘ］を再生する」及び「［ｘ］を［ｙ］で再生する」は、音楽（及び／又は映像）テンプレートのセットとして共にグループ化することができる。いくつかの実施形態では、テンプレートは、コンテキスト（例えば、機器の場所）に基づいて共にグループ化される。例えば、「車内」映像テンプレートのセットは、機器が車内にある間に使用される映像テンプレート（例えば、ムービーファイルの映像なしでオーディオを再生するテンプレート、カーステレオを制御するテンプレートなど）を含み、「自宅にて」のセットは、テンプレートを録画する機器が自宅にある間、使用される映像テンプレート（例えば、ムービーファイルの映像データ及び音声データの両方を再生するテンプレート、自宅ステレオシステムを制御するテンプレートなど）を含む。別の実施例では、「移動中」ニューステンプレートのセットは、機器（又はそのユーザ）が移動している間に使用されるニューステンプレート（例えば、ユーザが町中を運転中のときの方が閲覧に適している、短編、見出し及び／又テキストのみの物語を検索するためのテンプレート）を含み、「静止」ニューステンプレートのセットは、機器（又はそのユーザ）が静止中である間に使用されるニューステンプレート（例えば、ユーザが閲覧する時間がもっとあるときの方が閲覧に適している長い物語及び／又はグラフィックスを検索するためのテンプレート）を含む。いくつかの実施形態では、サードパーティサービスプロバイダは、１つ以上のテンプレートに関連しており、かつ、一部の他のテンプレートには関連していない。例えば、新しいサービスプロバイダＸＹＺは「移動中」ニューステンプレートに関連づけることができるが、「静止」ニューステンプレートには関連づけることができず、一方、新しいサービスプロバイダＪＫＬは、「移動中」及び「静止」の両方のニューステンプレートに関連づけることができる。
【００８０】
いくつかの実施形態では、１つ以上のテンプレートは、１つ以上のサードパーティサービスプロバイダにより提供される。例えば、サードパーティサービスプロバイダは、テンプレートをデジタルアシスタント３２６に送信し、デジタルアシスタント３２６は受信されたテンプレートを複数の予め定義されたテンプレートと統合する。これにより、サードパーティサービスプロバイダは、新しい語彙（例えば、「つぶやき［ｘ］」）でテンプレートを作成することができる。いくつかの実施形態では、受信されたテンプレートは、新しい語彙の１つ以上の同義語も含む。
【００８１】
いくつかの実施形態では、デジタルアシスタント３２６は、受信された入力が少なくとも１つの予め定義されたテンプレート及び少なくとも１つのサードパーティにより提供されたテンプレートに対応すると判断して、予め定義されたテンプレートを選択する。換言すると、予め定義されたテンプレートは、サードパーティにより提供されたテンプレートに優先する。
【００８２】
いくつかの実施形態では、テンプレートは、複数の言語でのテンプレートを含む。例えば、テンプレートは、英語での第１のテンプレートと、スペイン語での第２のテンプレートとを含むことができる。いくつかの実施形態では、第１のテンプレートは、第２のテンプレートに対応する（例えば、第１のテンプレート及び第２のテンプレートは、同じ動作に関するものである）。
【００８３】
いくつかの実施形態では、デジタルアシスタント３２６は、予め定義されたテンプレートに対応する入力を受信し、これに応じて、入力を特定のサードパーティサービスプロバイダに送信する。例えば、いくつかの実施形態では、入力は、「［ｘ］を［ｙ］で再生する」であり、デジタルアシスタント３２６は、入力（例えば、音声データ又は対応するテキスト）を［ｙ］に対応するサードパーティサービスプロバイダに送信する。
【００８４】
いくつかの実施形態では、デジタルアシスタント３２６は、特定のサードパーティサービスプロバイダに対応するアプリケーションのユーザインターフェースを示すと同時に特定のテンプレートに対応する入力を受信し、特定のテンプレートが特定のサードパーティサービスプロバイダに関連していると判断し、この入力を特定のサードパーティサービスプロバイダに送信する。例えば、デジタルアシスタントは、メッセージ送信アプリケーション（例えば、電子メール又はＳＭＳアプリケーション）を表示すると同時に、入力「［ｘ］を［ｙ］に転送する」を受信し、入力を、表示されている、又は開いているメッセージ送信アプリケーションに対応するサードパーティサービスプロバイダに転送する。いくつかの実施形態では、デジタルアシスタント３２６は、特定のテンプレートが特定のサードパーティサービスプロバイダに関連していないと判断し、入力を無視する。
【００８５】
いくつかの実施形態では、デジタルアシスタント３２６は、特定のアプリケーションのユーザインターフェースを表示すると同時にユーザ入力を受信し、入力が特定のアプリケーションに関連した１つ以上のテンプレートに対応するかどうか判断する。入力が特定のアプリケーションに関連した１つ以上のテンプレートに対応するという判断に従って、デジタルアシスタント３２６は、入力を特定のアプリケーションに関連したサードパーティサービスプロバイダに送信する。例えば、デジタルアシスタント３２６は、特定の音楽プレーヤーアプリケーションのユーザインターフェースを表示すると同時に、ユーザ入力「［ｘ］を再生する」を受信し、入力を（たとえ複数の音楽サービスプロバイダが同じテンプレートに関連しているとしても）特定の音楽プレーヤーアプリケーションに関連したサードパーティサービスプロバイダに送信する。
【００８６】
いくつかの実施形態では、デジタルアシスタント３２６は、ユーザ入力を受信して、ユーザ入力が複数のサードパーティサービスプロバイダに関連している特定のテンプレートに対応することを判断する。デジタルアシスタント３２６は、特定のテンプレートに関連した複数のサードパーティサービスプロバイダの１つを選択して、ユーザ入力を、選択したサードパーティサービスプロバイダに送信する。いくつかの実施形態では、サードパーティサービスプロバイダの選択は、複数のサードパーティサービスプロバイダのレビューに基づく。いくつかの実施形態では、サードパーティサービスプロバイダの選択は、複数のサードパーティサービスプロバイダの優先順位ランキングに基づく。いくつかの実施形態では、複数のサードパーティサービスプロバイダの優先順位ランキングは、それぞれのサードパーティサービスプロバイダが優先順位ランキングに記載されるために支払うことに同意した金額に基づく。例えば、高い入札を行うサードパーティサービスプロバイダは、より低い入札をするか、又は、入札をしないサードパーティサービスプロバイダよりも高くランク付けされる。
【００８７】
いくつかの実施形態では、デジタルアシスタント３２６は、ユーザ入力を受信して、ユーザ入力が複数のサードパーティサービスプロバイダに関連している特定のテンプレートに対応することを判断する。デジタルアシスタント３２６は、ユーザ入力を２つ以上のサードパーティサービスプロバイダに送信し、それぞれのサードパーティサービスプロバイダが利用可能かどうかを示す確認応答を受信する。いくつかの実施形態では、デジタルアシスタント３２６は、１つのサードパーティサービスプロバイダのみが利用可能であると判断し、利用可能なサードパーティサービスプロバイダを選択する。いくつかの実施形態では、デジタルアシスタント３２６は、特定のサービスプロバイダが複数のサードパーティサービスプロバイダの残りよりも速く確認応答を提供したと判断すると、特定のサービスプロバイダを選択する。
【００８８】
いくつかの実施形態では、全てのサードパーティサービスプロバイダがテンプレート選択ルールを知ることができるように、テンプレート選択ルールが公表される。
【００８９】
いくつかの実施形態では、サードパーティサービスプロバイダは、サードパーティデジタルアシスタントを含む。サードパーティデジタルアシスタントは、本明細書に記載のデジタルアシスタント３２６と類似のものである。いくつかの実施形態では、サードパーティデジタルアシスタントは、オントロジ（オントロジ３６０と類似）と、サードパーティ語彙（語彙３４４と類似）と、サードパーティユーザデータ（ユーザデータ３４８と類似）と、１つ以上のサードパーティタスクフローモデル（タスクフローモデル３５４と類似）とを含む。サードパーティサービスプロバイダは、入力を受信して、受信した入力を、本記載のデジタルアシスタント３２６の動作と類似の方法でサードパーティデジタルアシスタントで処理する。サードパーティサービスプロバイダは、結果をデジタルアシスタント３２６に提供し、デジタルアシスタント３２６は、結果を（例えば、デジタルアシスタント３２６の対話ユーザインターフェースにおいて、又は、音声出力として）ユーザに提示させる。いくつかの実施形態では、サードパーティデジタルアシスタントからの結果が、サードパーティデジタルアシスタントからではなく、結果を出力するのに使用された音声と異なる音声を使用して出力される。
【００９０】
いくつかの実施形態では、デジタルアシスタント３２６は、サードパーティサービスプロバイダからの入力を明確にする要求を受信する。例えば、デジタルアシスタント３２６は、ユーザ入力「ロックンロールを再生する」を音楽サービスプロバイダに送信すると、音楽サービスプロバイダは、デジタルアシスタント３２６に明確にする要求をデジタルアシスタント３２６に送り返す。この場合、要求は、ロックンロール音楽を有するラジオ局を再生したらよいのか、又は、「ロックンロール」という題名の歌を再生したらよいのかを明確にする要求を含むことができる。
【００９１】
上述したように、構造化されたクエリを完成させるために、タスクフロープロセッサ３３６は、追加情報を入手し、及び／又は潜在的に曖昧な発言の曖昧さを除去するために、ユーザとの追加のダイアログを開始することを必要とし得る。このような対話が必要となる場合には、タスクフロープロセッサ３３６は、ユーザとのダイアログに携わるためにダイアログフロー処理モジュール３３４を呼び出す。いくつかの実施形態では、ダイアログフロー処理モジュール３３４は、どのように（及び／又はいつ）ユーザに追加情報を求めるべきかを決定し、ユーザ応答を受け取り、これらを処理する。いくつかの実施形態では、Ｉ／Ｏ処理モジュール３２８を通じてユーザに質問が提供され、ユーザから回答が受け取られる。例えば、ダイアログフロー処理モジュール３３４はオーディオ及び／又は視覚出力を介してユーザにダイアログ出力を提示し、口頭の応答又は物理的（例えば、タッチジェスチャ）応答を介してユーザから入力を受け取る。上述の例を続けると、タスクフロープロセッサ３３６が、ドメイン「レストラン予約」に関連付けられる構造化されたクエリのための「同行人数」及び「日付」情報を決定するために、ダイアログ処理モジュール３３４を呼び出すと、ダイアログフロープロセッサ３３４は、「何人ですか？」及び「どの日にしますか？」等の質問を生成してユーザに提示する。ユーザから回答が受け取られると、ダイアログフロー処理モジュール３３４は、構造化されたクエリに、欠けている情報を入力するか、又は構造化されたクエリから欠けている情報を完成させるために情報をタスクフロープロセッサ３３６に渡す。
【００９２】
場合によっては、タスクフロープロセッサ３３６は、１つ以上の曖昧な特性を有する構造化されたクエリを受け取ることがある。例えば、「メッセージを送る」ドメインの構造化されたクエリは、意図される受信者が「Ｂｏｂ」であることを示すことがあり、ユーザは、「Ｂｏｂ」という名の複数の連絡先を有する場合がある。タスクフロープロセッサ３３６は、ダイアログフロー処理モジュール３３４が構造化されたクエリのこの特性を明確にするように要求することになる。その結果として、ダイアログフロープロセッサ３３４は「どのＢｏｂですか？」とユーザに尋ね、「Ｂｏｂ」という名前の連絡先のリストを表示し（又は読み上げ）、ユーザがそこから選択し得る。
【００９３】
タスクフロープロセッサ３３６が、実施可能な意図のための構造化されたクエリを完成させると、タスクフロープロセッサ３３６は、実施可能な意図に関連付けられる最終的なタスクの実行に進む。それに応じて、タスクフロープロセッサ３３６は、構造化されたクエリ内に包含されている特定のパラメータに応じてタスクフローモデル内のステップ及び命令を実行する。例えば、「レストラン予約」の実施可能な意図のためのタスクフローモデルは、レストランと連絡をとり、特定の時間に特定の同行人数のための予約を実際に希望するためのステップ及び命令を含み得る。例えば、｛レストラン予約、レストラン＝ＡＢＣ  Ｃａｆｅ、日付＝３／１２／２０１２、時間＝午後７時、同行人数＝５｝等の構造化されたクエリを用いて、タスクフロープロセッサ３３６は、（１）ＡＢＣ  Ｃａｆｅのサーバ、又はＡＢＣ  Ｃａｆｅ等の複数のレストランのための予約を受け入れるように構成されたレストラン予約システムにログオンするステップ、（２）ウェブサイト上のフォーム内に日付、時間、及び同行人数情報を入力するステップ、（３）フォームを送信するステップ、並びに（４）ユーザのカレンダー内に予約のためのカレンダー項目を記入するステップ、を実行してもよい。
【００９４】
いくつかの実施形態では、タスクフロープロセッサ３３６は、ユーザ入力内で要求されたタスクを完了するため、又はユーザ入力内で要求された情報の回答を提供するために、サービス処理モジュール３３８（「サービスプロセッサ」）の補助を用いる。例えば、サービスプロセッサ３３８は、電話をかけるため、カレンダー項目を設定するため、地図検索を呼び出すため、ユーザ機器上にインストールされているその他のユーザアプリケーションを呼び出すか若しくはそれと対話するため、並びにサードパーティサービス（例えばレストラン予約ポータル、ソーシャルネットワーキングウェブサイト、バンキングポータル等）を呼び出すか若しくはそれと対話するために、タスクフロープロセッサ３３６の代わりに動作することができる。いくつかの実施形態では、各サービスによって必要とされるプロトコル及びアプリケーションプログラミングインターフェース（application programming interface、ＡＰＩ）は、サービスモデル群３５６の中のそれぞれのサービスモデルによって指定され得る。サービスプロセッサ３３８はサービスのための適当なサービスモデルにアクセスし、サービスモデルに係るサービスによって必要とされるプロトコル及びＡＰＩに従ってサービスの要求を生成する。
【００９５】
例えば、レストランがオンライン予約サービスを可能にしている場合には、レストランは、予約を行うために必要なパラメータ、及び必要なパラメータの値をオンライン予約サービスへ伝達するためのＡＰＩを指定するサービスモデルを提出することができる。タスクフロープロセッサ３３６によって要求されると、サービスプロセッサ３３８は、サービスモデル群３５６内に記憶されているウェブアドレスを用いてオンライン予約サービスとのネットワーク接続を確立し、必要な予約のパラメータ（例えば、時間、日付、同行人数）を、オンライン予約サービスのＡＰＩに従う書式でオンライン予約インターフェースへ送信することができる。
【００９６】
先に説明したように、いくつかの実施形態では、１つ以上のデフォルトドメイン３７２は、１つ以上の独自ドメインを含む。いくつかの実施形態では、１つ以上の独自ドメインは、外部サービス（例えば、図１の外部サービス１２０）を必要としないタスクに対応するドメインを含む。いくつかの実施形態では、１つ以上の独自ドメインは、デフォルトサービスプロバイダに対応するドメインを含む（例えば、独自ドメインは、デフォルトサービスプロバイダからの外部サービスを必要とするタスクに対応する）。例えば、独自ドメインは、カレンダーイベントを記憶及び／又は検索するのに使用されるカレンダーサービスドメインを含むことができ、カレンダーサービスドメインは、デフォルトカレンダーサービスプロバイダからのサービスを記憶及び／又は検索するカレンダーイベントを必要とするタスクに対応する。いくつかの実施形態では、独自ドメインは、機器又はデジタルアシスタント３２６（例えば、ＡＰＰＬＥ  Ｉｎｃ．）のデベロッパにより所有される。したがって、ユーザインターフェース及びコンテンツは、共に、機器又はデジタルアシスタント３２６のデベロッパの制御下にある。
【００９７】
先に説明したように、いくつかの実施形態では、１つ以上のサードパーティドメイン３７４は、１つ以上の独自ドメインを含む。いくつかの実施形態では、１つ以上のパブリックドメインは、機器又はデジタルアシスタント３２６のデベロッパにより開発され、一方、コンテンツは、サードパーティから提供される。
【００９８】
いくつかの実施形態では、１つ以上のサードパーティドメイン３７４は、１つ以上のデベロッパドメインを含む。いくつかの実施形態では、パブリックドメイン及びデベロッパドメインは、１つ以上のサードパーティサービスプロバイダからの外部サービスを必要とするタスクに対応する。本明細書で使用するとき、サードパーティサービスプロバイダは、デフォルトサービスプロバイダ以外のサービスプロバイダである。いくつかの実施形態では、パブリックドメインは、サードパーティサービスプロバイダにより開発されるものではない（例えば、サードパーティサービスプロバイダから入手可能である情報に基づいて機器のメーカにより開発されたパブリックドメイン）。いくつかの実施形態では、デベロッパドメインは、サードパーティサービスプロバイダにより開発される。いくつかの実施形態では、デベロッパドメインは、ダイアログフロー処理モジュール３３４による処理（図３Ｂ）に向けて、サードパーティサービスプロバイダにより開発されたタスクフローモデル３５４及び／又はサードパーティサービスプロバイダにより開発されたダイアログフローモデルに対応する。いくつかの実施形態では、デベロッパドメインは、サードパーティサービスプロバイダ（例えば、外部サービス１２０）のサーバにて記憶される。
【００９９】
いくつかの実施形態では、ユーザの意図を推測して明確にし、ユーザ意図を更に明らかにして絞り込むための情報を入手し、ユーザの意図を実現するべく応答を最終的に生成する（例えば、ユーザに出力を提供するか、又はタスクを完了する）ために、自然言語プロセッサ３３２、ダイアログフロー処理モジュール３３４、及びタスクフロープロセッサ３３６は集合的かつ反復的に用いられる。
【０１００】
いくつかの実施形態では、ユーザの要求を実現するために必要なタスクが全て実行された後に、デジタルアシスタント３２６は確認応答を策定し、Ｉ／Ｏ処理モジュール３２８を通じてユーザへ応答を送り返す。ユーザ要求が情報の回答を求めている場合には、確認応答は、要求されている情報をユーザに提示する。いくつかの実施形態では、デジタルアシスタントはまた、デジタルアシスタント３２６によって作成された応答にユーザは満足であるかどうかを指示するようにユーザに要求する。
【０１０１】
図４Ａ〜４Ｂは、ＤＡサーバ、ＤＡクライアント、及びサービスプロバイダ（例えば、図１のサーバシステム１０８、ユーザ機器１０４ａ、及びメッセージングサービス１２２−２）により着手される例示的な動作を示すフローチャートである。これらの動作は、単に例示的にすぎず、より多くの、又は、より少ない他の対話が、種々の実施形態ではＤＡサーバ、ＤＡクライアント、及びサービスプロバイダにより実行され得る。
【０１０２】
いくつかの実施形態では、サービスプロバイダ（例えば、サービスプロバイダ１（１２０−１））は、１つ以上のタスクタイプ（例えば、「レストラン予約をする」及び／又は「適合得点を見つける」）をＤＡサーバに送信する（４０２）。いくつかの実施形態では、１つ以上のタスクタイプは、サービスプロバイダによりサポートされた１つ以上のタスクタイプを特定する。いくつかの実施形態では、サービスプロバイダは、語彙又は語彙の識別情報を送信する。いくつかの実施形態では、サービスプロバイダは、ドメインに１つ以上のタスクタイプの少なくとも１つに関する情報（例えば、図３Ｃに示すようなデータモデル）を送信する。いくつかの実施形態では、サービスプロバイダは、１つ以上のタスクタイプ、語彙又は語彙の識別情報、及びドメイン情報の２つ以上を送信する。
【０１０３】
典型的には、サードパーティサービスプロバイダ及びデジタルアシスタントシステム３００は、同じ人又はエンティティにより所有されない。例えば、デジタルアシスタントシステム３００は、出願人（ＡＰＰＬＥ  Ｉｎｃ．）により所有され、一方、サードパーティサービスプロバイダは、レストラン予約サービスプロバイダ（例えば、ＯＰＥＮＴＡＢＬＥ、Ｉｎｃ．）により所有されるサーバである。
【０１０４】
いくつかの実施形態では、ＤＡサーバは、１つ以上のタスクタイプを受信して（４０４）、タスクフローモデル３５４（例えば、サードパーティタスクフローモデル３８２内の１つ以上のサードパーティタスクフローモデルとして）に統合する（４０６）。図３Ａを参照して先に説明したように、いくつかの実施形態では、タスクフローモデル３５４は、サードパーティサービスプロバイダから受信されていない、サードパーティタスクフローモデル３８２と、デフォルトタスクフローモデル３８０とを含む。いくつかの実施形態では、タスクフローモデル３５４は、既に、既存のサードパーティタスクフローモデルを含み、ＤＡサーバは、受信された１つ以上のタスクタイプを既存のサードパーティタスクフローモデルで記憶する。いくつかの実施形態では、ＤＡサーバは、タスクフローモデルに対応するタスクをサードパーティタスクフローモデル３８２において実行する。例えば、デジタルアシスタントシステム３００（図３Ａ）がデフォルトにより（即ち、サードパーティサービスプロバイダシステムにより提供されたタスクフローモデルを使用せずに）レストランの予約をサポートするように構成されるとき、デフォルトタスクフローモデル３８０は、レストラン予約を行うタスクフローモデルを含む。引き続き、実施例について、デジタルアシスタントシステム３００がサードパーティドメイン３７４に基づいてスポーツ得点を提示するように構成されるとき、サードパーティタスクフローモデル３８２は、スポーツ得点を検索する（例えば、サービスプロバイダ１からのスポーツ得点を検索する）フローモデルを含む。
【０１０５】
いくつかの実施形態では、ＤＡサーバは、語彙又は語彙の識別情報を受信して語彙３４４（例えば、サードパーティ語彙３７８）に統合する。図３Ａを参照して先に説明したように、いくつかの実施形態では、語彙３４４は、サードパーティサービスプロバイダから受信されない、サードパーティ語彙３７８（又は、サードパーティ語彙索引）及びデフォルト語彙３７６（又は、デフォルト語彙索引）を含む。例えば、いくつかの実施形態では、デジタルアシスタントシステム３００（図３Ａ）がデフォルトにより（即ち、サードパーティサービスプロバイダシステムにより提供されたオントロジデータ又は語彙を使用せずに）レストランの予約をサポートするように構成されるとき、１つ以上のデフォルト語彙索引３７６は、「レストラン」、「予約」、及び「同行人数」など、レストラン予約に関係する用語を含む。いくつかの実施形態では、これらの用語のそれぞれは、同義語のリストに別々に属する。いくつかの実施形態では、デフォルトの語彙３７６は、レストラン名及び／又はレストラン場所（例えば、街路名）も含む。比較すると、１つ以上のサードパーティ語彙索引３７８としては、デジタルアシスタントシステム３００がサードパーティドメイン３７４に基づいてスポーツ得点を提示するように構成されるときに、スポーツの種類（例えば、野球、バスケットボール、フットボール、サッカーなど）、プレーヤ及びチームの名前、及びスポーツイベントの場所など、スポーツに関係する用語が挙げられる。
【０１０６】
同様に、いくつかの実施形態では、ＤＡサーバは、ドメイン情報を受信して、オントロジ３６０（例えば、サードパーティドメイン３７４）に統合する。図３Ａを参照して先に説明したように、いくつかの実施形態では、オントロジ３６０は、サードパーティサービスプロバイダから受信されない、サードパーティドメイン３７４と、デフォルトドメイン３７０と、（例えば、レストラン予約ドメイン３６２と、リマインダドメイン３６４、図３Ｃと）を含む、典型的には、１つ以上のサードパーティドメイン３７４は、デフォルトドメイン３７２に対応しない１つ以上のタスクタイプに対応する。例えば、いくつかの実施形態では、デフォルトのドメイン３７２は、スポーツ得点の検索には対応しないが、１つ以上のサードパーティドメイン３７４は、ユーザからのスポーツ得点クエリに対処する「スポーツ得点」ドメインを含む。
【０１０７】
いくつかの実施形態では、１つ以上のタスクタイプ及び／又はドメイン情報を受信することに応じて、ＤＡサーバは、サービスプロバイダディレクトリ３９０及び／又はサポートされたタスク３９２を更新する。サービスプロバイダディレクトリ３９０は、典型的には、ＤＡサーバがアクセスすることができるサードパーティサービスプロバイダのリストを含む。サポートされたタスク３９２は、典型的には、それぞれのサードパーティサービスプロバイダによりサポートされるタスクタイプのリスト及び／又はそれぞれのタスクタイプをサポートするサードパーティサービスプロバイダのリストを含む。例えば、ＤＡサーバは、サービスプロバイダ１をサービスプロバイダディレクトリ３９０に追加して、サービスプロバイダ１によりサポートされるタスクタイプを、サービスプロバイダ１に関連して、サポートされたタスク３９２内に記載する。
【０１０８】
いくつかの実施形態では、場所特定である、１つ以上のサードパーティドメイン３７４の少なくとも１つ（又は、１つ以上のサードパーティドメイン３７４の情報）が提供される。例えば、いくつかの実施形態では、ＤＡクライアント１０４が特定のホテルに接近するか、又は、入るときに、ホテルのサービスプロバイダシステムが、そのホテルに関連したドメインをデジタルアシスタントシステム３００に自動的に提供する。いくつかの実施形態では、デジタルアシスタントシステム３００は、そのホテルに関連したドメインを自動的に受信する。他の実施形態では、デジタルアシスタントシステム３００は、ユーザが局所的ドメイン（例えば、そのホテルに関連したドメイン）を受信したいかどうかユーザに尋ねる。いくつかの実施形態では、ホテルのサービスプロバイダシステムにより提供される少なくとも１つのドメインは、その特定のホテルに関係するタスク又はタスクタイプ（例えば、部屋料金を見つける、ホテル内のレストラン施設の場所を特定する、など）を含む。
【０１０９】
いくつかの実施形態では、ＤＡクライアント１０４は、デフォルトドメイン３７２に関連したタスクについて、第１の組の音声特性を有する音声で音声出力を生成し、サードパーティドメイン３７４に関連したタスクについて、第２の組の音声特性を有する音声で音声出力を生成する。例えば、ＤＡクライアント１０４は、デフォルトドメイン３７２に関連したタスクについて、特定の女性の声で音声出力を生成することができ、サードパーティドメイン３７４に関連したタスクについて、特定の男性の声で音声出力を生成することができる。音声特性は、ピッチ、速度、及び音量、並びに／又は例えば、性別（例えば、男性若しくは女性）、年齢（例えば、成人若しくは子ども）及び訛りに基づき分類される話者の特定グループに典型的な特性のうちの１つ以上を含んでもよい。いくつかの実施形態では、それぞれのサードパーティドメインは、それぞれの組の音声特性を有するそれぞれの音声に関連する。例えば、第１のサードパーティドメインは、第３の組の音声特性を有する音声に関連づけることができ、第２のサードパーティドメインは、第４の組の音声特性を有する音声に関連づけることができる。例えば、高級ホテルチェーンは、洗練された発音に関連したドメインを有することができる。
【０１１０】
いくつかの実施形態では、ＤＡクライアント１０４が予め定義された場所から離れたとき、ＤＡクライアントは、予め定義された場所に関連した１つ以上のドメインを自動的に除去する。例えば、ＤＡクライアント１０４がホテルから離れたとき、ＤＡクライアントは、ホテルのサービスプロバイダシステムにより提供された１つ以上のドメインを自動的に除去する。いくつかの他の実施形態では、ＤＡクライアントは、予め定義された数の最近使用されたサードパーティドメインを保持する（例えば、新しいサードパーティドメインを受信する前に、ＤＡクライアントは、最後に使用されたＤＡクライアント内に記憶されたサードパーティドメインを除去する−先入れ先出し（ＦＩＦＯ）としても知られている））。いくつかの実施形態では、ＤＡクライアントは、サードパーティドメインを最終使用の時間の代わりに使用頻度に基づいて除去する（例えば、使用頻度が最も低いドメインを除去する）。更に他の実施形態では、ＤＡサーバは、ＤＡクライアントに、ホテルのサービスプロバイダシステムにより提供された１つ以上のドメインを除去したいかどうか尋ねる。いくつかの実施形態では、ＤＡクライアントが利用可能な１つ以上のサードパーティドメイン３７４のリストが、ＤＡサーバ内に記憶され、ＤＡクライアントから応答に基づいて、ＤＡサーバは、１つ以上のサードパーティドメインをリストから除去する。他の実施形態では、ＤＡクライアントが利用可能な１つ以上のサードパーティドメイン３７４のリストは、ＤＡクライアント上に記憶され、ＤＡクライアントは、１つ以上のサードパーティドメインをリストから除去する。
【０１１１】
ユーザが特定のタスクを開始することになる入力を提供する前に（即ち、入力をユーザから受信する前に）これらの動作（例えば、動作４０２、４０４及び４０６）が典型的には実行されるが、これらは、ユーザが入力を提供した後にリアルタイムで実行することもできる。
【０１１２】
いくつかの実施形態では、別のサービスプロバイダ（例えば、サービスプロバイダ２（１２０−２））も、そのサービスプロバイダによりサポートされるタスクタイプをＤＡサーバに送信し、ＤＡサーバは、先述したように、これらをタスクフローモデル３５４及び／又はサービスプロバイダディレクトリ３９０に統合する。しかしながら、サーバ１０８がそのサービスプロバイダに対応するタスクタイプを特定するまで、サーバ１０８は、典型的には、要求をそのサービスプロバイダに送信しない。
【０１１３】
その後、いつでも、ＤＡクライアントは、ユーザからの入力（例えば、音声入力）を受信する（４０８）。いくつかの実施形態では、ＤＡクライアントは、１つ以上のマイクを介して入力を受信する。例えば、ＤＡクライアントは、「午後７時にレストランを予約する」など、ユーザの音声コマンドを受信することができる。いくつかの実施形態では、ＤＡクライアントは、タッチセンサ方式の表面を介して入力を受信する。ＤＡクライアントは、ユーザからの入力をＤＡサーバに送信し（４１０）、かつ、ＤＡクライアントの場所など、コンテキスト情報を送信することもできる。
【０１１４】
ＤＡサーバは、ユーザの入力を受信して（４１２）、図４Ｂを参照して以下で説明するようにそれぞれのタスクタイプを特定する（４１４）。いくつかの実施形態では、ユーザの入力が音声コマンドであるとき、ＤＡサーバは、入力を音声ファイルとして（又は、ＤＡクライアントがテキストを音声に変換するエンジンを含む場合には音声に対応するテキストのストリングとして）受信する。図３Ｂを参照して先に説明したように、いくつかの実施形態では、ＤＡサーバは、デジタルアシスタント３２６（図３Ｂ）を使用して、それぞれのタスクタイプを特定する。例えば、ＤＡサーバは、ユーザの入力から、ユーザがレストラン予約を所望することを判断する（即ち、「レストラン予約をする」を要求されたタスクタイプとして特定する）ことができる。例えば、ユーザ入力が「今夜、レストランを予約する」であるとき、特定されたタスクタイプは、少なくとも１つのレストラン予約サービスプロバイダに対応するレストラン予約であり、ユーザ入力が「最新のジャイアンツの得点は何点か」であるとき、特定されたタスクタイプは、スポーツ得点を検索することである。
【０１１５】
いくつかの実施形態では、機器はサードパーティサービスプロバイダから受信された語彙（又は、新しいタスク又はドメインとの既存の語彙の関連づけなど、語彙の識別情報）に従ってそれぞれのタスクタイプを特定する。例えば、機器は、問い合わせ「今日、Ｊｅｒｅｍｙ  Ｌｉｎはどこでプレーしているのか」をユーザから受信した後、用語Ｊｅｒｅｍｙ  Ｌｉｎは競技者の名前としてのスポーツゲームスケジュールサービスプロバイダからのサードパーティ語彙索引における情報入力に適合すると判断して、スポーツの試合の場所の検索が要求されたタスクであると特定することができる。同様に、問い合わせ「今日は、ハンガーゲームはどこで上映しているのか」をユーザから受信した後、機器は、用語ハンガーゲームは、映画タイトルとして映画スケジュール／チケット販売サービスプロバイダからのサードパーティ語彙索引における情報入力に適合すると判断して、映画上映の場所の検索が要求されたタスクであると特定することができる。
【０１１６】
いくつかの実施形態では、ＤＡサーバは、特定されたタスクタイプを実行することができる１つ以上のサービスプロバイダの場所を特定する（４１６）。いくつかの実施形態では、ＤＡサーバは、サービスプロバイダディレクトリ３９０及び／又はサポートされたタスクのリスト又は適性３９２における情報に従って特定されたタスクタイプを実行することができる１つ以上のサービスプロバイダの場所を特定する。ＤＡサーバは、適性を使用することにより、特定されたタスクタイプについて適切であるサービスプロバイダをより効率的に特定することができる。例えば、２つのレストラン予約サービスプロバイダ（例えば、第１のレストラン予約サービスプロバイダ及び第２のレストラン予約サービスプロバイダ）は、２つのレストラン予約サービスプロバイダがレストラン予約サービスを提供することができることを示す、レストラン予約をすることを含む１つ以上のサポートされたタスクタイプを有することができる。別の実施例では、特定のサービスプロバイダに関連した１つ以上のサポートされたタスクタイプが、特定のサービスプロバイダがスポーツゲームスケジュールに関する情報を提供することができることを示す、「スポーツスケジュール」を含むことができる。
【０１１７】
いくつかの実施形態では、ＤＡサーバが特定されたタスクタイプを実行することができる２つ以上のサービスプロバイダの場所を特定したとき、ＤＡサーバは、２つ以上のサービスプロバイダの１つを選択する。いくつかの他の実施形態では、ＤＡサーバは、２つ以上のサービスプロバイダの複数のサービスプロバイダを選択する。いくつかの実施形態では、ＤＡサーバは、特定されたタスクタイプのタスクを実行する要求を、１つ以上の選択されたサービスプロバイダ、典型的には１つのサービスプロバイダに送信する（４１８）。あるいは、他の実施形態では、ＤＡサーバは、要求をＤＡクライアント１０４に送信し、ＤＡクライアントが、要求を受信して、要求を１つ以上の選択されたサービスプロバイダに送信する（４１９）。いくつかの実施形態では、それぞれのサービスプロバイダは、タスクを完了するように構成される。いくつかの他の実施形態では、タスクは、複数のサービスプロバイダを必要とする。例えば、タスクは、「最も人気のある映画主演俳優Ｘのチケットを買う」とすることができる。このタスクを実行するには、情報を映画ランキングサービスプロバイダ、映画データベースサービスプロバイダ、及び映画チケット購入サービスプロバイダから受信するか、又は、タスクをこれらのサービスプロバイダと実行することが必要である場合がある。換言すると、それぞれのサービスプロバイダは、タスクの一部を実行し、機器は、複数の選択されたサービスプロバイダからの情報を統合する。
【０１１８】
いくつかの実施形態では、ＤＡサーバは、独自ドメインに対応する１つ以上のデフォルトサービスプロバイダ及び１つ以上のサードパーティサービスプロバイダ、つまり、特定されたタスクタイプを実行することができる１つ以上のデフォルトサービスプロバイダ及び１つ以上のサードパーティサービスプロバイダの場所を特定して、１つ以上のデフォルトサービスプロバイダを選択する。
【０１１９】
その後、サービスプロバイダは、要求を受信し（４２０）、要求されたタスクを実行して（４２２）、要求されたタスクのパフォーマンスに関係する１つ以上の結果をＤＡサーバ１０８に送信する（４２４）。
【０１２０】
ＤＡサーバ１０８は、１つ以上の結果をサービスプロバイダから受信して（４２６）、１つ以上の結果の１つ以上をＤＡクライアント１０４に送信する（４２８）。
【０１２１】
あるいは、サービスプロバイダは、１つ以上の結果を直接にクライアント１０４に送り返す（４２４と４２９との間で破線の矢印により図示）。
【０１２２】
ＤＡクライアント１０４は、１つ以上の結果を受信して（４２９）、１つ以上の受信された結果をユーザに、（例えば、音声出力又は視覚表示として）提示する（４３０）。いくつかの実施形態では、ＤＡクライアント１０４は、デジタルアシスタントクライアントモジュール２６４以外のソフトウェアアプリケーション（例えば、２７０−１又は２７０−２、図２）のユーザインターフェースを介して１つ以上の受信された結果の少なくとも一部をユーザに提示する（４３２）。いくつかの実施形態では、ＤＡクライアント１０４は、デジタルアシスタントクライアントモジュール２６４以外のソフトウェアアプリケーションのユーザインターフェースを介せず（例えば、デジタルアシスタントクライアントモジュール２６４のユーザインターフェースを介して、又は、任意の特定のソフトウェアアプリケーションに関連していない音声インターフェースを介して）１つ以上の受信された結果の少なくとも一部をユーザに提示する（４３４）いくつかの実施形態では、ＤＡクライアント１０４は、１つ以上の受信された結果の音声を出力する。
【０１２３】
図４Ｂは、図４Ａに示す特定の動作の更なる詳細を示すフローチャートである。
【０１２４】
いくつかの実施形態では、それぞれのタスクタイプを特定するステップ（４１４）は、ユーザが１つ以上のサードパーティサービスプロバイダのサービスを使用する権限を与えられているかどうか判断するステップを含む。いくつかの実施形態では、ユーザは、ユーザが特定のサードパーティサービスプロバイダに関連したソフトウェアアプリケーションを使用する権限が与えられているとき、特定のサードパーティサービスプロバイダに関して許可されているとみなされる。例えば、ユーザが特定のサービスプロバイダ（例えば、レストラン評価サービスプロバイダ）に向けてアプリケーションを買った場合、ユーザは、特定のサービスプロバイダのサービス（及び対応するサードパーティドメイン３７４）を使用する権限が与えられているとみなされる。ユーザが１つ以上のサードパーティサービスプロバイダに向けて認可されている場合、ＤＡサーバは、オントロジ３６０においてドメイン（例えば、１つ以上のサードパーティドメイン３７４）を検索する。ＤＡサーバが関連のドメインを特定すると、ＤＡサーバは、関連のドメインに関連した（かつ、１つ以上の許可されたサードパーティサービスプロバイダに対応する）適切なタスクフローモデルを使用する。
【０１２５】
いくつかの実施形態では、ＤＡサーバは、１つ以上の独自ドメイン（例えば、デフォルトドメイン３７２）及び１つ以上のサードパーティドメイン（例えば、サードパーティドメイン３７４）を特定して、独自ドメインに関連した適切なタスクフローモデルを使用する。換言すると、いくつかの実施形態では、ＤＡサーバは、独自ドメイン及びサードパーティドメインの両方が入力に対応するときに、サードパーティドメインよりも独自ドメインを選択する。
【０１２６】
いくつかの実施形態では、ユーザが１つ以上のサードパーティサービスプロバイダに向けて認可されていない場合、又は、許可されたサードパーティドメインがユーザの入力に対応しない場合、ＤＡサーバは、デフォルトドメインを検索するべきかどうか判断する。例えば、ＤＡサーバは、デフォルトドメインがユーザの入力に対応するドメインを含むかどうか判断する。ＤＡサーバがデフォルトドメインを検索するすると決断した（例えば、ＤＡサーバは、デフォルトドメインがユーザの入力に対応するドメインを含むと判断した）場合、ＤＡサーバは、デフォルトドメインを検索してユーザの入力に対応するそれぞれのデフォルトタスクフローモデルを特定し、かつそれぞれのデフォルトタスクフローモデルを処理する。
【０１２７】
いくつかの実施形態では、ＤＡサーバがデフォルトドメインをサーチしないと決断した場合、又は、デフォルトドメインがユーザの入力に対応しない場合、ＤＡサーバは、検索エンジン又は知識エンジンをサーチする、又は、入力を無視するなど、他のアクションを実行することができる。
【０１２８】
いくつかの実施形態では、ＤＡサーバがユーザの入力を後回しにしないと判断した場合、ＤＡサーバは、入力を無視する。
【０１２９】
いくつかの実施形態では、ＤＡサーバ１０８は、ＤＡクライアント１０４と通信する。いくつかの実施形態では、ＤＡクライアント１０４は、メモリ２５０内に、サードパーティサービスプロバイダに対応する１つ以上のソフトウェアアプリケーション２７０−１及び２７０−２（例えば、異なるレストランレビュープロバイダに対応するＺＡＧＡＴソフトウェアアプリケーション及びＹＥＬＰアプリケーション）を記憶する。先に説明したように、いくつかの実施形態では、ＤＡサーバは、ユーザアプリケーションデータ３４０を含む。
【０１３０】
いくつかの実施形態では、ＤＡサーバ３４０は、ユーザが、以下で詳細に説明するように、使用する権限が与えられている１つ以上のソフトウェアアプリケーションに基づいて、サービスプロバイダを選択する。いくつかの実施形態では、１つ以上のサービスプロバイダの場所を特定する（４１６）ステップは、対応するアプリケーションがＤＡクライアント（図１）内に記憶されるサードパーティサービスプロバイダの場所を特定するステップを含む。例えば、デジタルアシスタントシステム３００は、複数のレストランレビュープロバイダへのアクセスを有することができる。これは、ＤＡクライアント１０４のユーザが情報をサードパーティサービスプロバイダから受信することに興味があるという仮定に基づいており、ＤＡクライアント１０４のユーザが、ＤＡクライアント１０４上で対応するアプリケーションを保存する（例えば、インストールする）ことを選んだからというのがその理由である。いくつかの実施形態では、ＤＡクライアント１０４がＭＩＣＨＥＬＩＮ  ＧＵＩＤＥアプリケーションではなくＺＡＧＡＴソフトウェアアプリケーションを使用する権限が与えられているとき、ＤＡサーバは、レストランレビュープロバイダとしてＺＡＧＡＴを選択して、レストランレビューの要求をＺＡＧＡＴサーバに送信する。１つの論拠は、ユーザがＭＩＣＨＥＬＩＮ  ＧＵＩＤＥアプリケーションではなく、ＺＡＧＡＴソフトウェアアプリケーションを使用する権限が与えられているので、ＤＡクライアント１０４のユーザは、ＺＡＧＡＴレストランレビューを好むと想定されるということである。
【０１３１】
上記の実施例ではサービスプロバイダシステムに対応するソフトウェアアプリケーションを有するＤＡクライアント１０４を説明しているが、いくつかの実施形態では、ＤＡクライアント１０４は、サービスプロバイダシステムに対応するソフトウェアアプリケーションを記憶する必要はない。例えば、ユーザは、ソフトウェアアプリケーションを購入したと考えられるがＤＡクライアント１０４上ではソフトウェアアプリケーションをまだダウンロード又はインストールしていないか、又は、ユーザは、ユーザにより所有される別のＤＡクライアント上でソフトウェアアプリケーションをインストールした場合がある。あるいは、ユーザは、既存の口座（例えば、定期購読又はライセンス）をサービスプロバイダシステムについて有することができる。いくつかの実施形態では、ユーザアプリケーションデータ３４０は、ユーザが使用する権限が与えられている１つ以上のソフトウェアアプリケーションを特定する。いくつかの実施形態では、ユーザアプリケーションデータ３４０は、また、ユーザが使用する権限が与えられている１つ以上のソフトウェアアプリケーションに対応する１つ以上のサービスプロバイダ（例えば、１つ以上のソフトウェアアプリケーションに関連したウェブサイト又は企業名）を特定する。いくつかの実施形態では、ユーザアプリケーションデータ３４０は、ユーザがデフォルトサービスプロバイダ（例えば、デジタルアシスタントシステム３００の全てのユーザが使用する権限が与えられているサービスプロバイダ）以外の使用する権限が与えられている１つ以上のサービスプロバイダを特定する。
【０１３２】
いくつかの実施形態では、デジタルアシスタントシステム３００は、同じタスクタイプをサポートする２つ以上のサービスプロバイダシステムにアクセスすることができる。例えば、２つ以上のサービスプロバイダシステムは、同じタスクタイプ（例えば、レストランレビューを提供することのためのＺＡＧＡＴ及びＹＥＬＰ）のタスクを実行するように構成することができる。
【０１３３】
いくつかの実施形態では、１つ以上のサービスプロバイダの場所を特定する（４１６）ことは、ユーザが購入したソフトウェアアプリケーションに対応するサービスプロバイダ（例えば、ＹＥＬＰよりもＺＡＧＡＴ）の場所を特定することを含む。いくつかの実施形態では、１つ以上のサービスプロバイダの場所を特定すること（４１６）は、ごく最近に使用されたアプリケーションに対応するサードパーティサービスプロバイダの場所を特定することを含む。いくつかの実施形態では、１つ以上のサービスプロバイダの場所を特定すること（４１６）は、使用頻度が最も高いアプリケーションに対応するサードパーティサービスプロバイダの場所を特定することを含む。
【０１３４】
いくつかの実施形態では、１つ以上のサービスプロバイダの場所を特定するステップ（４１６）は、複数のサービスプロバイダを含む。例えば、ＤＡサーバは３つのレストランレビュープロバイダ、ＺＡＧＡＴ、ＹＥＬＰ、及びＭＩＣＨＥＬＩＮ  ＧＵＩＤＥからＺＡＧＡＴ及びＹＥＬＰを選択して、ＺＡＧＡＴ及びＹＥＬＰの両方により提供された結果を組み合わせることができる。あるいは、ＤＡサーバは、ユーザにＺＡＧＡＴとＹＥＬＰとの間で好みを選ぶように求めることができる。いくつかの実施形態では、ＤＡサーバは、ユーザ嗜好を（例えば、ユーザデータ３４８内に）記憶する。例えば、ユーザは、特定のサービスプロバイダがユーザに結果を提供することを可能にすることを選ぶことができる。更に、又は、あるいは、ユーザは、いくつかの他のサービスプロバイダがユーザに結果を提供するのを阻止することを選ぶことができる。いくつかの実施形態では、ユーザは特定のプロバイダが結果を提供することを許可される回数（例えば、１日に１回）を選択する。いくつかの実施形態では、ユーザは、特定のプロバイダがそれぞれの入力に応じて提供することが許可される多数の結果を選択する。
【０１３５】
いくつかの実施形態では、１つ以上のサービスプロバイダの場所を特定するステップ（４１６）は、ユーザのアイデンティティに基づいて１つ以上のサービスプロバイダを選択するステップを含む。例えば、２つのニュースサービスプロバイダ（「ＸＹＺニュース」及び「ＸＹＺキッズ」）が場所を特定されたとき、ニュースサービスプロバイダは、ユーザのアイデンティティに基づいて選択される（例えば、ユーザが大人である場合、大人向けにデザインされている「ＸＹＺニュース」を選択し、ユーザが子供である場合、子供向けにデザインされている「ＸＹＺキッズ」を選択する）。いくつかの実施形態では、ユーザのアイデンティティは、機器内に記憶されたユーザプロファイルから判断される。いくつかの実施形態では、ユーザのアイデンティティは、１つ以上の最近使用されたアプリケーション、時刻、入力の形式などから判断される。
【０１３６】
いくつかの実施形態では、タスクを実行する要求を送信するステップ（４１８）は、要求を１つ以上の選択されたサービスプロバイダに送信するステップを含む。次に、ＤＡサーバは、１つ以上の結果を１つ以上の選択されたサービスプロバイダの１つ以上から受信する（４２６）。例えば、いくつかの実施形態では、ＤＡサーバは、要求を複数のサービスプロバイダに（例えば、チケット価格設定について、複数の航空会社に）送信して、結果を複数のサービスプロバイダのサブセットから（例えば、予め定義された時間周期中に）受信する。これにより、ＤＡサーバは、素早く応答するサービスプロバイダにより提供される結果を利用して、ユーザエクスペリエンスを悪化させる、結果を待つ際の許容不可能な遅延を回避することができる。
【０１３７】
その後、ＤＡサーバは、ユーザに提示するために、１つ以上の結果の１つ以上をＤＡクライアント１０４に送信する（例えば、視覚又は音声）（４２８）。ＤＡクライアント１０４は、ＤＡサーバにより送信された１つ以上の結果を受信して、１つ以上の結果の少なくとも一部をユーザに提示する（４３０）。
【０１３８】
いくつかの実施形態では、要求を送信すること（４１８）は、要求を（例えば、１つ以上のサードパーティサービスプロバイダを含む）１つ以上のサービスプロバイダに送信する命令を、ＤＡクライアント内に記憶されたサードパーティソフトアプリケーションに送信することを含む。次に、ＤＡクライアントは、ＤＡサーバから命令を受信することに応じて、要求を１つ以上のサービスプロバイダに送信する。その後、ＤＡクライアントは、１つ以上の結果を１つ以上のサービスプロバイダの１つ以上から受信して、１つ以上の結果の少なくとも一部をクライアントに提示する（４３０）。
【０１３９】
いくつかの実施形態では、ＤＡクライアントは、結果を、ＤＡクライアント内に記憶されたサードパーティソフトアプリケーションを介して提示する（例えば、結果は、サードパーティソフトアプリケーションのユーザインターフェース内に表示される）。例えば、ＺＡＧＡＴサービスプロバイダからの結果は、ＤＡクライアント上に記憶されたＺＡＧＡＴアプリケーションのユーザインターフェース上に提示される。いくつかの実施形態では、ＤＡクライアントは、サードパーティソフトアプリケーションを介さずに結果を提示する（例えば、結果はデジタルアシスタントクライアントモジュール２６４（図２）のユーザインターフェース内に表示される）。例えば、ＺＡＧＡＴサービスプロバイダからの結果は、デジタルアシスタントクライアントモジュール２６４のユーザインターフェース上に提示される。
【０１４０】
いくつかの実施形態により、図５は、上記のように本発明の原理に従って構成された電子機器５００の機能ブロック図を示す。この機器の機能ブロックは、本発明の原理を実行するためにハードウェア、ソフトウェア、又はハードウェアとソフトウェアとの組み合わせにより実施することができる。図５に述べられる機能ブロックは、上記に述べたような本発明の原理を実施するために、組み合わせるか、又はサブブロックに分割することができることが当業者によって理解される。したがって、本明細書における説明は、あらゆる可能な組み合わせ若しくは分割、又は本明細書に述べられる更なる機能ブロックの定義を支持しうるものである。
【０１４１】
図５に示すように、電子機器５００は、ユーザの入力を受信するように構成された入力受信ユニット５０２を含む。いくつかの実施形態では、入力受信ユニット５０２は、音声入力を受信するように構成される。任意により、電子機器は、ユーザインターフェースを含む情報を表示するように構成されたディスプレイ装置を更に含む。電子機器５００は、入力受信ユニット５０２に結合された処理ユニット５０６も含む。いくつかの実施形態では、処理ユニット５０６は、受信ユニット８０８と、統合ユニット５１０と、特定ユニット５１２と、送信ユニット５１４と、関連づけユニット５１６と、取得ユニット５１８と、提供ユニット５２０とを含む。
【０１４２】
処理ユニット５０６は、第１の組の１つ以上の予め定義されたタスクタイプをサービスプロバイダから（例えば、受信ユニット５０８から）受信して、複数の予め定義されたタスクを生成するために、第１の組の１つ以上の予め定義されたタスクタイプをサービスプロバイダに関連していない第２の組の予め定義されたタスクタイプと（例えば、統合ユニット５１０で）統合するように構成される。処理ユニット５０６は、入力に従って、第１の組の１つ以上の予め定義されたタスクタイプの１つに対応する、複数の予め定義されたタスクタイプからのそれぞれのタスクタイプを特定する（例えば、特定ユニット５１２で）ようにも構成される。処理ユニット５０６は、それぞれのタスクタイプを特定することに応じて、入力に関連したタスクの少なくとも一部を実行する要求をサービスプロバイダに（例えば、送信ユニット５１４で）送信するように更に構成される。
【０１４３】
いくつかの実施形態では、入力は、テキストに変換されたユーザの音声入力である。
【０１４４】
いくつかの実施形態では、処理ユニット５０６は、ユーザの入力を受信する前に、サービスプロバイダから語彙の識別情報を（例えば、受信装置５０８で）受信して、語彙の識別情報に従って、それぞれのタスクタイプを（例えば、特定ユニット５１２で）特定するように更に構成される。
【０１４５】
いくつかの実施形態では、処理ユニット５０６は、語彙を第１の組の１つ以上の予め定義されたタスクタイプと（例えば、関連づけユニット５１６で）関連づけるように更に構成される。
【０１４６】
いくつかの実施形態では、語彙の識別情報を受信するステップは、語彙を受信するステップを含む。
【０１４７】
いくつかの実施形態では、語彙の識別情報を受信するステップは、語彙の識別情報を受信する前に電子機器が利用することができる語彙の識別情報を受信するステップを含む。
【０１４８】
いくつかの実施形態では、処理ユニット５０６は、サービスプロバイダからの入力に対応する１つ以上の結果を（例えば、取得ユニット５１８で）取得して、ユーザに提示するために、少なくとも１つ以上の結果のサブセットを提供する（例えば、提供ユニット５２０で）ように更に構成される。
【０１４９】
いくつかの実施形態では、電子機器５００は、ユーザの携帯型電子機器であり、携帯型電子機器は、サービスプロバイダに対応するソフトウェアアプリケーションを記憶しない。いくつかの実施形態では、携帯型電子機器は、サービスプロバイダに対応するソフトウェアアプリケーションを記憶するように構成されない。
【０１５０】
いくつかの実施形態では、携帯型電子機器は、電話である。
【０１５１】
いくつかの実施形態によれば、図６は、上記のように本発明の原理に従って構成された電子機器６００の機能ブロック図を示す。この機器の機能ブロックは、本発明の原理を実行するためにハードウェア、ソフトウェア、又はハードウェアとソフトウェアとの組み合わせにより実施することができる。図６に述べられる機能ブロックは、上記に述べたような本発明の原理を実施するために、組み合わせるか、又はサブブロックに分割することができることが当業者によって理解される。したがって、本明細書における説明は、あらゆる可能な組み合わせ若しくは分割、又は本明細書に述べられる更なる機能ブロックの定義を支持しうるものである。
【０１５２】
図６に示すように、電子機器６００は、ユーザの入力を受信するように構成された入力受信ユニット６０２を含む。いくつかの実施形態では、入力受信ユニット６０２は、音声入力を受信するように構成される。任意により、電子機器は、ユーザインターフェースを含む情報を表示するように構成されたディスプレイ装置を更に含む。電子機器６００は、入力受信ユニット６０２に結合された処理ユニット６０６も含む。いくつかの実施形態では、処理ユニット６０６は、特定ユニット６０８と、送信ユニット６１０と、実行ユニット６１２と、取得ユニット６１４と、表示有効化ユニット６１６と、提示ユニット６１８と、受信ユニット６２０とを含む。
【０１５３】
処理ユニット６０６は、入力に従って、複数のサードパーティサービスプロバイダに関連した複数の予め定義されたタスクタイプからのそれぞれのタスクタイプを特定するように構成され（例えば、特定ユニット６０８により）、それぞれのタスクタイプは、ユーザが許可される少なくとも１つのサードパーティサービスプロバイダ、及び、ユーザが許可されない少なくとも１つのサードパーティサービスプロバイダに関連づけられる。処理ユニット６０６は、それぞれのタスクタイプを特定することに応じて、それぞれのタスクタイプに関連している複数のサードパーティサービスプロバイダのサードパーティサービスプロバイダにタスクの少なくとも一部を実行する要求を（例えば、送信ユニット６１０で）送信するようにも構成される。
【０１５４】
いくつかの実施形態では、入力は、テキストに変換されたユーザの音声入力である。
【０１５５】
いくつかの実施形態では、ユーザは、ユーザが特定のサードパーティサービスプロバイダに関連したソフトウェアアプリケーションを使用する権限が与えられているとき、特定のサードパーティサービスプロバイダに関して許可される。いくつかの実施形態では、ユーザは、ユーザが特定のサードパーティサービスプロバイダに関連したソフトウェアアプリケーションを使用する権限が与えられているとき、特定のサードパーティサービスプロバイダに関して許可されているとみなされる。
【０１５６】
いくつかの実施形態では、電子機器６００は、ユーザの携帯型電子機器であり、携帯型電子機器は、ソフトウェアアプリケーションを記憶する。
【０１５７】
いくつかの実施形態では、処理ユニット６０６は、ソフトウェアアプリケーションを（例えば、実行ユニット６１２で）実行して要求を送信するように更に構成される。
【０１５８】
いくつかの実施形態では、処理ユニット６０６は、ソフトウェアアプリケーションを実行せずに要求を（例えば、送信ユニット６１０で）送信するように更に構成される。
【０１５９】
いくつかの実施形態では、処理ユニット６０６は、結果をサードパーティサービスプロバイダから（例えば、取得ユニット６１４で）取得するように更に構成される。
【０１６０】
いくつかの実施形態では、処理ユニット６０６は、ユーザへの結果の少なくとも一部の表示を、ソフトウェアアプリケーションに関連したグラフィカルユーザインターフェースを介して（例えば、表示有効化ユニット６１６で）有効化するように更に構成される。
【０１６１】
いくつかの実施形態では、処理ユニット６０６は、結果の少なくとも一部の表示をユーザに、ソフトウェアアプリケーションに関連したグラフィカルユーザインターフェースを介さずに（例えば、提示ユニット６１８で）提示するように更に構成される。
【０１６２】
いくつかの実施形態では、処理ユニット６０６は、サードパーティサービスプロバイダが入力を受信する前にタスクの少なくとも一部を実行することができる１つ以上のタスクタイプの識別情報をサードパーティサービスプロバイダから（例えば、受信ユニット６２０で）受信するように更に構成される。
【０１６３】
いくつかの実施形態によれば、図７は、上記のように本発明の原理に従って構成された電子機器７００の機能ブロック図を示す。この機器の機能ブロックは、本発明の原理を実行するためにハードウェア、ソフトウェア、又はハードウェアとソフトウェアとの組み合わせにより実施することができる。図７に述べられる機能ブロックは、上記に述べたような本発明の原理を実施するために、組み合わせるか、又はサブブロックに分割することができることが当業者によって理解される。したがって、本明細書における説明は、あらゆる可能な組み合わせ若しくは分割、又は本明細書に述べられる更なる機能ブロックの定義を支持しうるものである。
【０１６４】
図７に示すように、電子機器７００は、ユーザの入力を受信するように構成された入力受信ユニット７０２を含む。いくつかの実施形態では、入力受信ユニット７０２は、音声入力を受信するように構成される。任意により、電子機器は、ユーザインターフェースを含む情報を表示するように構成されたディスプレイ装置を更に含む。電子機器７００は、入力受信ユニット７０２に結合された処理ユニット７０６も含む。いくつかの実施形態では、処理ユニット７０６は、特定ユニット７０８と、場所特定ユニット７１０と、送信ユニット７１２と、受信ユニット７１４と、選択ユニット７１６と、及び、記憶ユニット７１８とを含む。
【０１６５】
処理ユニット７０６は、入力に従って、複数の予め定義されたタスクタイプからのそれぞれのタスクタイプを（例えば、特定ユニット７０８で）特定するように構成される。処理ユニット７０６は、それぞれのタスクタイプを特定することに応じて１つ以上のサービスプロバイダの場所を（例えば、場所特定ユニット７１０で）特定するようにも構成され、それぞれのサービスプロバイダは、１つ以上のサポートされたタスクタイプの識別情報に関連しており、サービスプロバイダの１つ以上のサポートされたタスクタイプは、それぞれのタスクタイプを含む。処理ユニット７０６は、１つ以上のサービスプロバイダの場所を特定した後にタスクの少なくとも一部を実行する要求を１つ以上のサービスプロバイダのサービスプロバイダに（例えば、送信ユニット７１２で）送信するように更に構成される。
【０１６６】
いくつかの実施形態では、入力は、テキストに変換されたユーザの音声入力である。
【０１６７】
いくつかの実施形態では、処理ユニット７０６は、入力を受信する前に特定のサービスプロバイダに関連した１つ以上のサポートされたタスクタイプの識別情報を特定のサービスプロバイダから（例えば、受信ユニット７１４で）受信するように更に構成される。
【０１６８】
いくつかの実施形態では、処理ユニット７０６は、それぞれのタスクタイプを特定することに応じて、２つ以上のサービスプロバイダの場所を（例えば、場所特定ユニット７１０で）特定し、２つ以上の場所が特定されたサービスプロバイダの１つを（例えば、選択ユニット７１６で）選択して、要求を選択されたサービスプロバイダに（例えば、送信ユニット７１２で）送信するように更に構成される。
【０１６９】
いくつかの実施形態では、電子機器７００は、ユーザの携帯型電子機器であり、携帯型電子機器は、２つ以上のサービスプロバイダに対応するそれぞれのソフトウェアアプリケーションを（例えば、記憶ユニット７１８で）記憶し、処理ユニット７０６は、それぞれのソフトウェアアプリケーションのごく最近に使用されたソフトウェアアプリケーションに対応する２つ以上のサービスプロバイダのそれぞれのサービスプロバイダを（例えば、選択ユニット７１６で）選択するように更に構成される。
【０１７０】
いくつかの実施形態では、電子機器７００は、ユーザの携帯型電子機器であり、携帯型電子機器は、２つ以上のサービスプロバイダに対応するそれぞれのソフトウェアアプリケーションを（例えば、記憶ユニット７１８で）記憶し、処理ユニット７０６は、それぞれのソフトウェアアプリケーションの使用頻度が最も高いソフトウェアアプリケーションに対応する２つ以上のサービスプロバイダのそれぞれのサービスプロバイダを（例えば、選択ユニット７１６で）選択するように更に構成される。
【０１７１】
いくつかの実施形態では、電子機器７００は、ユーザの携帯型電子機器であり、携帯型電子機器は、２つ以上のサービスプロバイダの第１のサービスプロバイダに対応するそれぞれのソフトウェアアプリケーションを（例えば、記憶ユニット７１８で）記憶し、携帯型電子機器は、２つ以上のサービスプロバイダの第２のサービスプロバイダに対応する任意のソフトウェアアプリケーションを記憶せず、処理ユニット７０６は、第１のサービスプロバイダを（例えば、選択ユニット７１６で）選択するように更に構成される。
【０１７２】
いくつかの実施形態によれば、図８は、上記のように、本発明の原理に従って構成するサーバシステム８００の機能ブロック図を示す。この機器の機能ブロックは、本発明の原理を実行するためにハードウェア、ソフトウェア、又はハードウェアとソフトウェアとの組み合わせにより実施することができる。図８に述べられる機能ブロックは、上記に述べたような本発明の原理を実施するために、組み合わせるか、又はサブブロックに分割することができることが当業者によって理解される。したがって、本明細書における説明は、あらゆる可能な組み合わせ若しくは分割、又は本明細書に述べられる更なる機能ブロックの定義を支持しうるものである。
【０１７３】
図８に示すように、サーバシステム８００は、ユーザの入力を受信するように構成された入力受信ユニット８０２を含む。サーバシステム８００は、入力受信インターフェースユニット８０２に結合された処理ユニット８０６も含む。いくつかの実施形態では、処理ユニット８０６は、場所特定ユニット８０８と、ドメイン特定ユニット８１０と、タスクタイプ特定ユニット８１２と、送信ユニット８１４と、受信ユニット８１６と、関連づけユニット８１８と、判断ユニット８２０とを含む。
【０１７４】
処理ユニット８０６は、ユーザの携帯型電子機器の場所を（例えば、場所特定ユニット８０８で）特定し、かつ、ユーザの携帯型電子機器の場所に対応するそれぞれのドメインを（例えば、ドメイン特定ユニット８１０で）特定するように構成される。処理ユニット８０６は、入力に従って、それぞれのドメインに対応するそれぞれのタスクタイプを（例えば、タスクタイプ特定ユニット８１２で）特定するようにも構成される。処理ユニット８０６は、それぞれのタスクタイプを特定することに応じて、入力に関連した、タスクの少なくとも一部を実行する要求を、それぞれのドメインに関連したそれぞれのサービスプロバイダに（例えば、送信ユニット８１４で）送信するように更に構成される。
【０１７５】
いくつかの実施形態では、処理ユニット８０６は、携帯型電子機器の場所を特定する前にそれぞれのドメインをそれぞれのサービスプロバイダから（例えば、受信ユニット８１６で）受信するように更に構成される。
【０１７６】
いくつかの実施形態では、処理ユニット８０６は、携帯型電子機器の場所を特定する前に少なくとも１つのタスクフローモデルをそれぞれのサービスプロバイダから（例えば、受信ユニット８１６で）受信するように更に構成される。
【０１７７】
いくつかの実施形態では、処理ユニット８０６は、携帯型電子機器の場所を特定する前に少なくとも１つの語彙の識別情報をそれぞれのサービスプロバイダから（例えば、受信ユニット８１６で）受信するように更に構成される。
【０１７８】
いくつかの実施形態では、処理ユニット８０６は、それぞれのドメインを携帯型電子機器と（例えば、関連づけユニット８１８で）関連づけるように更に構成される。
【０１７９】
いくつかの実施形態では、処理ユニット８０６は、ユーザの携帯型電子機器の場所を（例えば、場所特定ユニット８０８で）特定し、更新された場所がそれぞれのドメインにもはや対応しないと（例えば、判断ユニット８２０で）判断し、かつ、判断に従ってそれぞれのドメインを携帯型電子機器から（例えば、関連づけユニット８１８で）分離するように更に構成される。
【０１８０】
いくつかの実施形態では、入力受信ユニット８０２は、それぞれのドメインを携帯型電子機器から分離した後にユーザの第２の入力を受信するように更に構成され、処理ユニット８０６は、第２の入力に従って、それぞれのドメインに対応しないタスクタイプを（例えば、タスクタイプ特定ユニット８１２で）特定して、タスクタイプを特定することに応じて、入力に関連した、タスクの少なくとも一部を実行する要求をそれぞれのサービスプロバイダ以外のサービスプロバイダに（例えば、送信ユニット８１４で）送信するように更に構成される。
【０１８１】
上述の記載は、説明の目的のために、特定の実施形態を参照して記載されている。しかし、上述の例示的説明は、網羅的であること、又は本発明を、開示されている寸分違わない形態に限定することを意図されてはいない。多くの変更及び変形が上述の教示に鑑みて可能である。本発明の原理及びその実際的な応用を最良の形で説明し、それによって他の当業者が、想到される特定の用途に好適な種々の改良と共に本発明及び様々な実施形態を最良な形で利用することを可能とするために、これらの実施形態を選択し説明した。
【図１】
2019003677.tif 000003
【図２】
2019003677.tif 000004
【図３Ａ】
2019003677.tif 000005
【図３Ｂ】
2019003677.tif 000006
【図３Ｃ】
2019003677.tif 000007
【図４Ａ】
2019003677.tif 000008
【図４Ｂ】
2019003677.tif 000009
【図５】
2019003677.tif 000010
【図６】
2019003677.tif 000011
【図７】
2019003677.tif 000012
【図８】
2019003677.tif 000013
【手続補正書】
【提出日】平成30年9月10日(2018.9.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
１または複数のプロセッサおよびメモリを有する電子機器にて実行される、ユーザ入力を処理する方法であって、
前記電子機器にて、
ユーザと関連付けられたポータブル電子機器の位置を特定することと、
前記ユーザと関連連づけられた前記ポータブル電子機器の前記位置に対応するそれぞれのドメインを特定することと、
前記ユーザの入力を受信することと、
前記入力に基づいて、前記それぞれのドメインに対応するそれぞれのタスクタイプを特定することと、
前記それぞれのタスクタイプを特定することに応じて、前記入力に関連付けられた、タスクの少なくとも一部を実行する要求を、前記それぞれのドメインに関連付けられたそれぞれのサービスプロバイダへ送信すること
を有することを特徴とする方法。
【請求項２】
前記ポータブル電子機器の前記位置を特定する前に、前記それぞれのサービスプロバイダから前記それぞれのドメイン受信することを更に有することを特徴とする請求項１に記載の方法。
【請求項３】
前記ポータブル電子機器の前記位置を特定する前に、前記それぞれのサービスプロバイダから少なくとも１つのタスクフローモデルを受信することを更に有することを特徴とする請求項１または２に記載の方法。
【請求項４】
前記ポータブル電子機器の前記位置を特定する前に、前記それぞれのサービスプロバイダから少なくとも語彙の識別を受信することを更に有することを特徴とする請求項１または２に記載の方法。
【請求項５】
前記それぞれのドメインと前記ポータブル電子機器とを関連付けることを更に有することを特徴とする請求項１または２に記載の方法。
【請求項６】
前記ポータブル電子機器の更新された位置を特定することと、
前記更新された位置がもはや前記それぞれのドメインに対応しないことを判定することと、
前記判定に基づいて、前記ポータブル電子機器から前記それぞれのドメインを分離することと
を更に有することを特徴とする請求項５に記載の方法。
【請求項７】
前記ポータブル電子機器から前記それぞれのドメインを分離した後に、
前記ユーザの第２の入力を受信することと、
前記第２の入力に基づいて、前記それぞれのドメインに対応しないタスクタイプを特定することと、
前記タスクタイプを特定することに応じて、前記入力に関連付けられた、タスクの少なくとも一部を実行する要求を、前記それぞれのサービスプロバイダ以外のサービスプロバイダへ送信すること
を更に有することを特徴とする請求項６に記載の方法。
【請求項８】
前記入力は、テキストに変換された前記ユーザの音声入力であることを特徴とする請求項１に記載の方法。
【請求項９】
請求項１乃至８のいずれか一項に記載の方法を実行するための命令を有するコンピュータプログラム。
【請求項１０】
請求項９に記載の前記コンピュータプログラムを格納したメモリと、
前記メモリに格納された前記命令を実行可能な１または複数のプロセッサと
を備える電子機器。
【請求項１１】
請求項１乃至８のいずれか一項に記載の方法を実行するための手段を有する電子機器。
【外国語明細書】
2019003677000001.pdf