(57)【要約】      （修正有）【課題】音声起動されたコンピュータネットワーク環境におけるシーケンス依存データメッセージ統合を提供する。【解決手段】システム１００において、データ処理システムの自然言語プロセッサ・コンポーネントは、第１及び第２の入力オーディオ信号をクライアントコンピューティングデバイスから受信し、各要求及び対応するトリガキーワードを識別する。ダイレクト・アクションＡＰＩは、各アクションデータ構造を生成でき、各アクションデータ構造を含む夫々のデータ送信を構築する。スレッド最適化コンポーネントは、第１、第２のデータ送信のデータパケットを取得し、夫々のデータ送信のデータパケットに適用されるヒューリスティック技術に基づいてシーケンス依存性パラメータを決定し、シーケンス依存性パラメータの閾値との比較に基づいて、第１及び第２のデータ送信を単一のスレッドにマージする。【選択図】図１
2020198630.tif 000002
【特許請求の範囲】
【請求項１】
音声ベースのコンピューティング環境においてシーケンス依存動作を行うシステムであって、
データ処理システムのインタフェースを介して、クライアントコンピューティングデバイスのセンサにより検出された1つまたは複数の入力オーディオ信号を含むデータパケットを受信する、前記データ処理システムにより実行される自然言語プロセッサ・コンポーネントと、
前記1つまたは複数の入力オーディオ信号を解析して、1つまたは複数の要求および前記1つまたは複数の要求に対応する1つまたは複数のトリガキーワードを識別する、前記自然言語プロセッサ・コンポーネントと、
前記1つまたは複数のトリガキーワードに基づいておよび前記1つまたは複数の要求に応答して、第1のアクションデータ構造および第2のアクションデータ構造を生成する、前記データ処理システムのダイレクト・アクション・アプリケーション・プログラミング・インタフェース(「ＡＰＩ」)と、
スレッド最適化コンポーネントであって、
前記第1のアクションデータ構造のデータパケットを取得し、前記第2のアクションデータ構造のデータパケットを取得することと、
前記第1のアクションデータ構造の前記データパケットおよび前記第2のアクションデータ構造の前記データパケットに適用されるヒューリスティック技術に基づいて、シーケンス依存性パラメータを決定することと、
前記シーケンス依存性パラメータと閾値との比較に基づいて、前記第1のアクションデータ構造の前記データパケットと前記第2のアクションデータ構造の前記データパケットとを単一のスレッドに結合することと、
前記単一のスレッドに対する一連のシーケンス依存アクションを識別することと
をするように前記データ処理システムにより実行される、スレッド最適化コンポーネントと、
前記一連のシーケンス依存アクションの少なくとも1つに対するコンテンツ・アイテムを選択する、コンテンツ・セレクタ・コンポーネントと、
前記クライアントコンピューティングデバイスに前記コンテンツ・アイテムを提供する、前記データ処理システムと
を備える、システム。
【請求項２】
前記1つまたは複数のトリガキーワードの第1のトリガキーワードに基づいて前記第1のアクションデータ構造を生成することと、
第1のサービス・プロバイダ・コンピューティング・デバイスと前記クライアントコンピューティングデバイスとの間の第1の通信セッションを確立するための前記第1のアクションデータ構造を含む第1のデータ送信を構築することであって、前記第1の通信セッションのデータパケットは、前記データ処理システムを介して前記クライアントコンピューティングデバイスから前記第1のサービス・プロバイダ・コンピューティング・デバイスにルーティングされる、ことと
をする、前記データ処理システムを含み、
前記単一のスレッドにおける前記第1のデータ送信を含む、請求項1に記載のシステム。
【請求項３】
前記1つまたは複数のトリガキーワードの第1のトリガキーワードに基づいて前記第1のアクションデータ構造を生成し、前記1つまたは複数のトリガキーワードの第2のトリガキーワードに基づいて前記第2のアクションデータ構造を生成することをする、前記データ処理システムを含む、請求項1に記載のシステム。
【請求項４】
第1のサービス・プロバイダ・コンピューティング・デバイスと前記クライアントコンピューティングデバイスとの間の第1の通信セッションを確立するための前記第1のアクションデータ構造を含む第1のデータ送信を構築することと、
第2のサービス・プロバイダ・コンピューティング・デバイスと前記クライアントコンピューティングデバイスとの間の第2の通信セッションを確立するための前記第2のアクションデータ構造を含む第2のデータ送信を構築することと、
前記シーケンス依存性パラメータと前記閾値との前記比較に基づいて、前記第1のデータ送信を前記第2のデータ送信とともに前記単一のスレッドにマージすることと
をする、前記データ処理システムを含む、請求項1に記載のシステム。
【請求項５】
前記第1のアクションデータ構造の第1のアクションの完了を検出することと、
前記第1のアクションの前記完了に続いて前記単一のスレッドの前記データパケットをサービス・プロバイダ・コンピューティング・デバイスに送信することであって、前記単一のスレッドは、前記第1のアクションが前記第2のアクションデータ構造の第2のアクションの前に発生するようにスケジュールされることを示す、ことと
をする、前記データ処理システムを含む、請求項1に記載のシステム。
【請求項６】
前記シーケンス依存性パラメータは、前記第1のアクションデータ構造に対応するアクションが前記第2のアクションデータ構造に対応するアクションの前に発生するようにスケジュールされることを示す、請求項1に記載のシステム。
【請求項７】
前記第1のアクションデータ構造に対応するアクションに関連付けられた時刻に基づいて前記第2のアクションデータ構造に対応するアクションに関連付けられた条件を識別することと、
前記条件に応答してサービス・プロバイダ・コンピューティング・デバイスへの前記第2のアクションデータ構造の前記データパケットの伝送を防止することと
をする、前記データ処理システムを含む、請求項1に記載のシステム。
【請求項８】
前記第1のアクションデータ構造に対応するアクションに関連付けられた時刻に基づいて前記第2のアクションデータ構造に対応するアクションに関連付けられた条件を識別することと、
前記条件の終了の指示を受信することと、
前記条件の前記終了に続いて前記第2のアクションデータ構造の前記データパケットをサービス・プロバイダ・コンピューティング・デバイスに送信することと
を含む、請求項1に記載のシステム。
【請求項９】
前記単一のスレッドは、前記単一のスレッドに対する一連のシーケンス依存アクションを示し、前記一連のシーケンス依存アクションは、第1のアクション、前記第1のアクションに続く第2のアクション、および前記第2のアクションに続く第3のアクションを含む、請求項1に記載のシステム。
【請求項１０】
前記第1のアクションデータ構造の実行の前に前記第2のアクションデータ構造のためのコンテンツ・アイテムを識別する、前記データ処理システムを備える、請求項1に記載のシステム。
【請求項１１】
音声ベースのコンピューティング環境においてシーケンス依存動作を行う方法であって、
データ処理システムにより、インタフェースを介して、クライアントコンピューティングデバイスのセンサにより検出された1つまたは複数の入力オーディオ信号を含むデータパケットを受信するステップと、
前記データ処理システムにより、前記1つまたは複数の入力オーディオ信号を解析して、1つまたは複数の要求および前記1つまたは複数の要求に対応する1つまたは複数のトリガキーワードを識別するステップと、
前記データ処理システムにより、前記1つまたは複数のトリガキーワードに基づいておよび前記1つまたは複数の要求に応答して、第1のアクションデータ構造および第2のアクションデータ構造を生成するステップと、
前記データ処理システムにより、前記第1のアクションデータ構造のデータパケットを取得し、前記第2のアクションデータ構造のデータパケットを取得するステップと、
前記データ処理システムにより、前記第1のアクションデータ構造の前記データパケットおよび前記第2のアクションデータ構造の前記データパケットに適用されるヒューリスティック技術に基づいて、シーケンス依存性パラメータを決定するステップと、
前記データ処理システムにより、前記シーケンス依存性パラメータと閾値との比較に基づいて、前記第1のアクションデータ構造の前記データパケットと前記第2のアクションデータ構造の前記データパケットとを単一のスレッドに結合するステップと、
前記データ処理システムにより、前記単一のスレッドに対する一連のシーケンス依存アクションを識別するステップと、
前記データ処理システムにより、前記一連のシーケンス依存アクションの少なくとも1つに対するコンテンツ・アイテムを選択するステップと、
前記データ処理システムにより、前記クライアントコンピューティングデバイスに前記コンテンツ・アイテムを提供するステップと
を含む、方法。
【請求項１２】
前記1つまたは複数のトリガキーワードの第1のトリガキーワードに基づいて前記第1のアクションデータ構造を生成するステップと、
第1のサービス・プロバイダ・コンピューティング・デバイスと前記クライアントコンピューティングデバイスとの間の第1の通信セッションを確立するための前記第1のアクションデータ構造を含む第1のデータ送信を構築するステップであって、前記第1の通信セッションのデータパケットは、前記データ処理システムを介して前記クライアントコンピューティングデバイスから前記第1のサービス・プロバイダ・コンピューティング・デバイスにルーティングされる、ステップと、
前記単一のスレッドにおける前記第1のデータ送信を提供するステップと
を含む、請求項11に記載の方法。
【請求項１３】
前記1つまたは複数のトリガキーワードの第1のトリガキーワードに基づいて前記第1のアクションデータ構造を生成し、前記1つまたは複数のトリガキーワードの第2のトリガキーワードに基づいて前記第2のアクションデータ構造を生成するステップを含む、請求項11に記載の方法。
【請求項１４】
第1のサービス・プロバイダ・コンピューティング・デバイスと前記クライアントコンピューティングデバイスとの間の第1の通信セッションを確立するための前記第1のアクションデータ構造を含む第1のデータ送信を構築するステップと、
第2のサービス・プロバイダ・コンピューティング・デバイスと前記クライアントコンピューティングデバイスとの間の第2の通信セッションを確立するための前記第2のアクションデータ構造を含む第2のデータ送信を構築するステップと、
前記シーケンス依存性パラメータと前記閾値との前記比較に基づいて、前記第1のデータ送信を前記第2のデータ送信とともに前記単一のスレッドに結合するステップと
を含む、請求項11に記載の方法。
【請求項１５】
前記第1のアクションデータ構造の第1のアクションの完了を検出するステップと、
前記第1のアクションの前記完了に続いて前記単一のスレッドの前記データパケットをサービス・プロバイダ・コンピューティング・デバイスに送信するステップであって、前記単一のスレッドは、前記第1のアクションが第2のアクションの前に発生するようにスケジュールされることを示す、ステップと
を含む、請求項11に記載の方法。
【請求項１６】
前記シーケンス依存性パラメータは、前記第1のアクションデータ構造に対応するアクションが前記第2のアクションデータ構造に対応するアクションの前に発生するようにスケジュールされることを示す、請求項11に記載の方法。
【請求項１７】
前記第1のアクションデータ構造に対応するアクションに関連付けられた時刻に基づいて前記第2のアクションデータ構造に対応するアクションに関連付けられた条件を識別するステップと、
前記条件に応答してサービス・プロバイダ・コンピューティング・デバイスへの前記第2のアクションデータ構造の前記データパケットの伝送を防止するステップと
を含む、請求項11に記載の方法。
【請求項１８】
前記第1のアクションデータ構造に対応するアクションに関連付けられた時刻に基づいて前記第2のアクションデータ構造に対応するアクションに関連付けられた条件を識別するステップと、
前記条件の終了の指示を受信するステップと、
前記条件の前記終了に続いて前記第2のアクションデータ構造の前記データパケットをサービス・プロバイダ・コンピューティング・デバイスに送信するステップと
を含む、請求項11に記載の方法。
【請求項１９】
前記単一のスレッドは、前記単一のスレッドに対する一連のシーケンス依存アクションを示し、前記一連のシーケンス依存アクションは、第1のアクション、前記第1のアクションに続く第2のアクション、および前記第2のアクションに続く第3のアクションを含む、請求項11に記載の方法。
【請求項２０】
前記第1のアクションデータ構造の実行の前に前記第2のアクションデータ構造のためのコンテンツ・アイテムを識別するステップを含む、請求項11に記載の方法。
【発明の詳細な説明】
【背景技術】
【０００１】
本願は、発明の名称を「音声起動されたコンピュータネットワーク環境におけるシーケンス依存データメッセージ統合」とした２０１６年１２月３０日出願の米国特許出願第１５／３９５、７２５号の優先権の利益を主張し、本明細書に引用によりすべての目的で全体として取り込まれる。
【０００２】
コンピューティングデバイスの間のパケット・ベースのまたは、ネットワークトラフィックデータの過度なネットワーク送信は、コンピューティングデバイスが当該ネットワークトラフィックデータを正しく処理し、当該ネットワークトラフィックデータに関連する動作を完了し、または当該ネットワークトラフィックデータにタイムリーに応答することを不可能としうる。ネットワークトラフィックデータの当該過度なネットワーク送信はまた、応答するコンピューティングデバイスがその処理容量を上回る場合に、データのルーティングを複雑化しまたは当該応答の当該品質を劣化させうる。これは非効率的な帯域幅利用をもたらしうる。コンテンツ・アイテムオブジェクトに対応するネットワーク送信の制御は、コンピューティングデバイスの間のネットワークトラフィックデータのネットワーク送信を開始しうる多数のコンテンツ・アイテムオブジェクトにより複雑化されうる。
【発明の概要】
【課題を解決するための手段】
【０００３】
少なくとも１つの態様は、シーケンス依存動作を示す複数の音声起動されたオーディオ入力データパケットを結合するためのシステムに関する。データ処理システムにより実行される自然言語プロセッサ・コンポーネントは、データ処理システムのインタフェースを介して、クライアントコンピューティングデバイスのセンサにより検出された第１の入力オーディオ信号を含むデータパケットを受信することができる。当該自然言語プロセッサ・コンポーネントは第１の入力オーディオ信号を解析して第１の要求および第１の要求に対応する第１のトリガキーワードを識別することができる。データ処理システムのダイレクト・アクション・アプリケーション・プログラミング・インタフェース（「ＡＰＩ」）は、第１のトリガキーワードに基づいておよび第１の要求に応答して、第１のアクションデータ構造を生成することができる。当該ダイレクト・アクションＡＰＩは第１のアクションデータ構造を含む第１のデータ送信を構築して第１のサービス・プロバイダ・コンピューティング・デバイスおよび当該クライアントコンピューティングデバイスの間の第１の通信セッションを確立することができる、第１の通信セッションのデータパケットは、データ処理システムを介して、当該クライアントコンピューティングデバイスから第１のサービス・プロバイダ・コンピューティング・デバイスにルーティングされる。当該自然言語プロセッサ・コンポーネントは、データ処理システムの当該インタフェースを介して、当該クライアントコンピューティングデバイスの当該センサにより検出された第２の入力オーディオ信号を含むデータパケットを受信し、第２の入力オーディオ信号を解析して、第２の要求および第２の要求に対応する第２のトリガキーワードを識別することができる。当該ダイレクト・アクションＡＰＩは、第２のトリガキーワードに基づいておよび第２の要求に応答して、第２のアクションデータ構造を生成することができる。当該ダイレクト・アクションＡＰＩは第２のアクションデータ構造を含む第２のデータ送信を構築して、第２のサービス・プロバイダ・コンピューティング・デバイスおよび当該クライアントコンピューティングデバイスの間の第２の通信セッションを確立することができる、第２の通信セッションのデータパケットは、データ処理システムを介して当該クライアントコンピューティングデバイスから第２のサービス・プロバイダ・コンピューティング・デバイスにルーティングされる。データ処理システムにより実行されるスレッド最適化コンポーネントは第１のデータ送信のデータパケットを取得することができ第２のデータ送信のデータパケットを取得することができる。当該スレッド最適化コンポーネントは、第１のデータ構造の当該データパケットおよび第２のデータ構造に適用される当該データパケットに適用されるヒューリスティック技術に基づいて、シーケンス依存性パラメータを決定することができる。当該スレッド最適化コンポーネントは、当該シーケンス依存性パラメータの閾値との比較に基づいて、第１のデータ送信を第２のアクションデータ送信とともに単一のスレッドにマージすることができる。
【０００４】
少なくとも１つの態様は、シーケンス依存動作を示す複数の音声起動されたオーディオ入力データ通信を管理する方法に関する。当該方法は、データ処理システムにより実行される自然言語プロセッサ・コンポーネントにより、データ処理システムのインタフェースを介して、クライアントコンピューティングデバイスのセンサにより検出された第１の入力オーディオ信号を含むデータパケットを受信するステップを含むことができる。当該方法は、当該自然言語プロセッサ・コンポーネントにより、第１の入力オーディオ信号から、第１の要求および第１の要求に対応する第１のトリガキーワードを識別するステップを含むことができる。当該方法は、データ処理システムのダイレクト・アクション・アプリケーション・プログラミング・インタフェース（「ＡＰＩ」）により、第１のトリガキーワードに基づいておよび第１の要求に応答して、第１のアクションデータ構造を生成するステップを含むことができる。当該方法は第１のサービス・プロバイダ・コンピューティング・デバイスおよび当該クライアントコンピューティングデバイスの間の第１の通信セッションに対する第１のアクションデータ構造を含む第１のデータ送信を構築するステップを含むことができる、第１の通信セッションのデータパケットは、データ処理システムを介して、当該クライアントコンピューティングデバイスから第１のサービス・プロバイダ・コンピューティング・デバイスにルーティングされる。当該方法は、当該自然言語プロセッサ・コンポーネントにより、データ処理システムの当該インタフェースを介して、当該クライアントコンピューティングデバイスの当該センサにより検出された第２の入力オーディオ信号を含むデータパケットを受信し、当該自然言語プロセッサ・コンポーネントにより、第２の入力オーディオ信号を解析して、第２の要求および第２の要求に対応する第２のトリガキーワードを識別するステップを含むことができる。当該方法は、当該ダイレクト・アクションＡＰＩにより、第２のトリガキーワードに基づいておよび第２の要求に応答して、第２のアクションデータ構造を生成するステップを含むことができる。当該方法は第２のサービス・プロバイダ・コンピューティング・デバイスおよび当該クライアントコンピューティングデバイスの間の第２の通信セッションに対する第２のアクションデータ構造を含む第２のデータ送信を構築するステップを含むことができる、第２の通信セッションのデータパケットは、データ処理システムを介して当該クライアントコンピューティングデバイスから第２のサービス・プロバイダ・コンピューティング・デバイスにルーティングされる。当該方法は、データ処理システムにより実行されるスレッド最適化コンポーネントにより、第１のデータ送信のデータ、および第２のデータ送信のデータを取得するステップを含むことができる。当該方法は、第１のデータ送信のデータに適用され第２のデータ送信のデータに適用されるヒューリスティック技術に基づいて、シーケンス依存性パラメータを決定するステップを含むことができる。当該方法は、当該シーケンス依存性パラメータの閾値との比較に基づいて、第１のアクションデータ構造および第２のアクションデータ構造を単一のスレッドに関連付けるステップを含むことができる。
【０００５】
少なくとも１つの態様は、１つまたは複数のデータプロセッサにより実行されたとき、当該１つまたは複数のデータプロセッサにシーケンス依存動作を示す複数の音声起動されたオーディオ入力データ通信を管理するための動作を実施させる命令を格納するコンピュータ可読記憶媒体に関する。当該動作は、データ処理システムにより実行される自然言語プロセッサ・コンポーネントにより、データ処理システムのインタフェースを介して、クライアントコンピューティングデバイスのセンサにより検出された第１の入力オーディオ信号を含むデータパケットを受信するステップを含むことができる。当該動作は、当該自然言語プロセッサ・コンポーネントにより、第１の入力オーディオ信号から、第１の要求および第１の要求に対応する第１のトリガキーワードを識別するステップを含むことができる。当該動作は、データ処理システムのダイレクト・アクション・アプリケーション・プログラミング・インタフェース（「ＡＰＩ」）により、第１のトリガキーワードに基づいておよび第１の要求に応答して、第１のアクションデータ構造を生成するステップを含むことができる。当該動作は第１のサービス・プロバイダ・コンピューティング・デバイスおよび当該クライアントコンピューティングデバイスの間の第１の通信セッションに対する第１のアクションデータ構造を含む第１のデータ送信を構築するステップを含むことができる、第１の通信セッションのデータパケットは、データ処理システムを介して、当該クライアントコンピューティングデバイスから第１のサービス・プロバイダ・コンピューティング・デバイスにルーティングされる。当該動作は、当該自然言語プロセッサ・コンポーネントにより、データ処理システムの当該インタフェースを介して、当該クライアントコンピューティングデバイスの当該センサにより検出された第２の入力オーディオ信号を含むデータパケットを受信し、当該自然言語プロセッサ・コンポーネントにより、第２の入力オーディオ信号を解析して、第２の要求および第２の要求に対応する第２のトリガキーワードを識別するステップを含むことができる。当該動作は、当該ダイレクト・アクションＡＰＩにより、第２のトリガキーワードに基づいておよび第２の要求に応答して、第２のアクションデータ構造を生成するステップを含むことができる。当該動作は第２のサービス・プロバイダ・コンピューティング・デバイスおよび当該クライアントコンピューティングデバイスの間の第２の通信セッションに対する第２のアクションデータ構造を含む第２のデータ送信を構築するステップを含むことができ、第２の通信セッションのデータパケットは、データ処理システムを介して当該クライアントコンピューティングデバイスから第２のサービス・プロバイダ・コンピューティング・デバイスにルーティングされる。当該動作は、データ処理システムにより実行されるスレッド最適化コンポーネントにより、第１のデータ送信のデータパケット、および第２のデータ送信のデータパケットを取得するステップを含むことができる。当該動作は、第１のデータ構造の当該データパケットおよび第２のデータ構造に適用される当該データパケットに適用されるヒューリスティック技術に基づいて、シーケンス依存性パラメータを決定するステップを含むことができる。当該動作は、当該シーケンス依存性パラメータに基づいて、第１のアクションデータ構造および第２のアクションデータ構造を単一のスレッドに関連付けるステップを含むことができる。
【０００６】
これらのおよび他の態様および実装を以下で説明する。以上の情報および以下の詳細な説明は様々な態様および実装の例示的な例を含み、クレームした態様および実装の性質と特徴を理解するための概要またはフレームワークを提供する。当該図面は当該様々な態様および実装の例示とさらなる理解を提供し、本明細書に組み込まれ本明細書の一部を構成する。
【０００７】
添付図面は正しい縮尺で描かれていない。当該様々な図面における同じ参照番号および指定は同じ要素を示す。明確さの目的のため、全てのコンポーネントが全ての図面においてラベル付けされていないかもしれない。
【図面の簡単な説明】
【０００８】
【図１】音声起動されたコンピュータネットワーク環境におけるシーケンス依存動作を示した複数の音声起動されたオーディオ入力データパケットを結合するっためのシステムを示す図である。
【図２】音声起動されたデータパケット・ベースのコンピュータネットワーク環境に対する単一のスレッド構造の機能図である。
【図３】スレッドデータ構造生成および音声起動されたデータパケット・ベースのコンピュータネットワーク環境におけるリモートデータ処理システムおよびサービス・プロバイダ・コンピューティング・デバイスの間の通信の機能図である。
【図４】シーケンス依存動作を示す複数の音声起動されたオーディオ入力データ通信を管理するための方法を示す図である。
【図５】本明細書で説明し図示したシステムおよび方法の要素を実装するために使用されうるコンピュータシステムのための汎用アーキテクチャを示すブロック図である。
【発明を実施するための形態】
【０００９】
以下は、音声起動されたコンピュータネットワーク環境における複数の音声起動されたオーディオ入力データパケットの処理を最適化するための方法、装置、およびシステムの実装に関連する様々な概念のより詳細な説明である。上で導入し以下でさらに詳細に説明する様々な概念を任意の多数の方法で実装してもよい。
【００１０】
本開示のシステムおよび方法は一般に、音声起動されたコンピュータネットワーク環境におけるパケット・ベースの送信を介して複数の音声起動されたパケット（または他のプロトコル）ベースの入力オーディオ信号を最適化または動的に調節するデータ処理システムに関する。データ処理システムは、例えば、情報を入力オーディオ信号から抽出して複数の対応するアクションデータ構造を生成することにより、１つまたは複数のコンピュータネットワーク上のデータパケット送信の効率および有効性を高めることができる。当該アクションデータ構造を、データ処理システムおよび複数の異なるサービス・プロバイダ・コンピューティング・デバイスの間の通信セッション中の送信に対して構築することができる。例えば、異なるアクションデータ構造の当該パケットから、データ処理システムは少なくとも１つのシーケンス依存性パラメータを決定することができる。当該シーケンス依存性パラメータは、当該アクションデータ構造またはそれらの対応するデータ送信により示されるアクションの動作の順序を示すことができる。当該シーケンス依存性パラメータに基づいて、データ処理システムは複数のアクションデータ送信を単一のスレッドにマージまたは結合することができる。
【００１１】
当該単一のスレッドは複数のアクションデータ構造のシーケンス依存動作を含むことができる。データ処理システムは当該単一のスレッドまたはその部分（例えば、少なくとも１つのパケット・ベースのデータ構造）を複数のサービス・プロバイダ・コンピューティング・デバイスに提供して、当該単一のスレッドにより示されるアクションを実現することができる。データ処理システムはまた、当該単一のスレッドまたはその部分を少なくとも１つのコンテンツ・プロバイダ・コンピューティング・デバイスに提供して、当該単一のスレッドに関連付けられたコンテンツ・アイテムを取得することができる。当該サービス・プロバイダ・コンピューティング・デバイスおよび当該コンテンツ・プロバイダ・コンピューティング・デバイスは、データ処理システムを介してまたはデータ処理システムをバイパスして、少なくとも１つのクライアントコンピューティングデバイス（例えば、当該オーディオ入力信号のソース）と通信して、オーディオ出力を描画し、当該スレッドにより示される当該アクションを実現するか、またはコンテンツ・アイテムを当該クライアントコンピューティングデバイスで描画することができる。
【００１２】
複数のアクションデータ構造を単一のスレッドに単一のスレッドマージまたは統合し、当該単一のスレッドにより示されるシーケンス依存動作を識別することで、データ処理システムの処理電力、およびメモリ利用要件が、かかる統合およびシーケンス依存性識別なしに、複数のアクションデータ構造の独立な処理に対して削減される。例えば、独立なアクションデータ構造の動作の非同期なまたはシーケンス外処理は、データ処理システムおよびサービス・プロバイダまたはコンテンツ・プロバイダ・コンピューティング・デバイスの間の確立された通信セッションを介した、タイムリーでない、未熟な、または不要なデータパケット通信を生じさせうる。これは帯域幅を無駄にし、データ処理システムによりならびに当該サービス・プロバイダまたはコンテンツ・プロバイダ・コンピューティング・デバイスによる不要な処理動作を生じさせ、複数のコンピューティングデバイスのコンピューティングリソースを無駄にする。
【００１３】
当該単一のスレッド内の識別されたシーケンス依存動作に基づいて、データ処理システムは１組のシーケンス依存動作の初期動作を一時的にまたは恒久的にスキップでき、代わりに後の時点のまたは最終的な動作に対応する動作に進むことができる。複数のシーケンス依存動作の早期動作に対応するパケットまたは他のプロトコルベースのデータ送信をバイパスすることによって、その代わり、データ処理システムが当該早期段階動作に関連付けられたデータ処理を減らし、遅延させ、または排除できる、動作のシーケンスにおける後の段階動作に対するパケット・ベースのデータ送信に直接に進む。これは、処理電力およびメモリのような他のコンピューティングリソースを節約し、データ処理システムによる電気電力消費および当該コンピュータネットワークを介した当該削減されたデータ送信を減らし、データ処理システムの帯域幅要件および利用を減らす。
【００１４】
本明細書で説明するシステムおよび方法は、第１の入力オーディオ信号を受信するデータ処理システムを含むことができる。第１の入力オーディオ信号から、データ処理システムは第１の要求および当該要求に対応する第１のトリガキーワードを識別することができる。第１のトリガキーワードまたは第１の要求に基づいて、データ処理システムは第１のアクションデータ構造を生成でき、第１のアクションデータ構造を含む第１のデータ送信を構築または準備することができる。第１のデータ送信を、データパケットまたは他のプロトコルベースの送信として、当該クライアントコンピューティングデバイスから少なくとも１つの第１のサービス・プロバイダ・コンピューティング・デバイスに第１の通信セッションの一部としてルーティングすることができる。
【００１５】
データ処理システムは第２の入力オーディオ信号を受信することができる。第２の入力オーディオ信号から、データ処理システムは第２の要求および当該要求に対応する第２のトリガキーワードを識別することができる。第２のトリガキーワードまたは第２の要求に基づいて、データ処理システムは第２のアクションデータ構造を生成でき、第２のアクションデータ構造を含む第２のデータ送信を構築または準備することができる。第２のデータ送信を、データパケットまたは他のプロトコルベースの送信として、当該クライアントコンピューティングデバイスから少なくとも１つの第２のサービス・プロバイダ・コンピューティング・デバイスに第２の通信セッションの一部としてルーティングすることができる。第１のおよび第２のサービス・プロバイダ・コンピューティング・デバイスは、データ処理システムを介して互いに通信しない異なるエンティティに対応することができる。
【００１６】
データ処理システムは、第１のおよび第２の送信のデータパケットを（例えば、第１のおよび第２のデータ構造から）取得でき、少なくとも１つのシーケンス依存性パラメータを決定するための情報を当該データパケットから抽出することができる。当該シーケンス依存性パラメータは、第１のおよび第２のデータ構造のアクションに対する動作のシーケンスを示すことができる。データ処理システムは当該シーケンス依存性パラメータを閾値（例えば、ルール、ポリシ、または値）と比較でき、当該比較に基づいてデータ処理システムは第１のおよび第２のデータ送信（または関連付けられたアクションデータ構造）を単一のスレッドにマージすることができる。当該単一のスレッドは第１のおよび第２の（またはそれ以上）アクションデータ構造のアクションを示すことができ、これらのアクションのシーケンスまたは順序、ならびにシーケンス依存性を示すことができる。この場合、例えば第２のアクションは、第１のアクションが完了した後まで、開始できない（かまたは開始するようにスケジュールされない）。
【００１７】
データ処理システムは、例えばシーケンス依存性に基づいてまたは当該クライアントコンピューティングデバイスから受信された入力に基づいて、当該単一のスレッドの幾つかのアクションに関連する動作を再順序付け、スキップ、または少なくとも一時的にバイパスすることができる。これを、当該バイパスされたアクションに基づいて、当該データ処理動作の少なくとも幾つかを実施する前またはそれを実施せずに、行うことができる。第１のアクションに対する当該処理動作をバイパスすることは、第２のアクションに関連するデータを、当該バイパスがない場合よりも少ないデータ処理および少ない電気電力利用で、識別し、送信し、描画することができる。
【００１８】
図１は、音声起動されたデータパケット（または他のプロトコル）ベースのコンピュータネットワーク環境におけるシーケンス依存動作を有する複数のアクションデータ構造の処理を最適化するための例示的なシステム１００を示す。システム１００は、例えば音声起動された通信または計画システムの一部として少なくとも１つのデータ処理システム１０５を含むことができる。データ処理システム１０５は、少なくとも１つのプロセッサを有する少なくとも１つのサーバを含むことができる。例えば、データ処理システム１０５は、少なくとも１つのデータセンタまたはサーバ・ファームに配置された複数のサーバを含むことができる。データ処理システム１０５は、オーディオ入力信号から要求および当該要求に関連付けられたトリガキーワードを決定することができる。当該要求およびトリガキーワードに基づいてデータ処理システム１０５はアクションデータ構造を生成することができる。当該アクションデータ構造は、当該入力オーディオ信号に対応する少なくとも１つのアクションを示すことができる。データ処理システム１０５は複数の別々の入力オーディオ信号を受信でき、入力オーディオ信号ごとにそれぞれのデータ構造を生成することができる。データ処理システム１０５は、各データ構造が、互いにコンピューティングデバイス（例えば、サービス・プロバイダ・コンピューティング・デバイスまたはコンテンツ・プロバイダ・コンピューティング・デバイス）との各通信セッション中に当該データ構造を送信するために、データ送信を構築または準備することができる。データ処理システム１０５は、当該アクションデータ構造または対応するデータ送信から、１つまたは複数のシーケンス依存性パラメータを決定することができる。当該シーケンス依存性パラメータに基づいて、データ処理システム１０５は複数のデータ送信（または対応するアクションデータ構造）を単一のスレッドにマージすることができる。当該単一のスレッドは少なくとも２つのアクションデータ構造からのアクション、ならびに動作の順序または当該アクションのシーケンス依存性を示すことができる。
【００１９】
データ処理システム１０５は、複数の論理的にグループ化されたサーバを含むことができ、分散コンピューティング技術を促進する。サーバの当該論理グループをデータセンタ、サーバ・ファームまたはマシン・ファームと称してもよい。当該サーバは地理的に分散されることができる。データセンタまたはマシン・ファームを単一のエンティティとして管理してもよく、または当該マシン・ファームは複数のマシン・ファームを含むことができる。各マシン・ファーム内の当該サーバは不均一であることができる。当該サーバまたはマシンのうち１つまたは複数が１つまたは複数のタイプのオペレーティング・システムプラットフォームに従って動作することができる。データ処理システム１０５は、関連付けられた記憶システムとともに１つまたは複数の高密度ラック・システムに格納され、例えばエンタープライズデータセンタに配置された、データセンタ内のサーバを含むことができる。このように統合されたサーバを有するデータ処理システム１０５は、当該システムのシステム管理可能性、データセキュリティ、当該物理セキュリティ、高性能ネットワーク上にサーバおよび高性能記憶システムを配置することでシステム性能を高めることができる。サーバおよび記憶システムを含むデータ処理システム１０５コンポーネントの全部または一部の集約と、それらを高度なシステム管理ツールと組み合わせることで、サーバリソースのより効率的な利用が可能となり、電力および処理要件が節約され、帯域幅利用が減る。
【００２０】
データ処理システム１０５は少なくとも１つの自然言語プロセッサ（ＮＬＰ）コンポーネント１１０、少なくとも１つのインタフェース１１５、少なくとも１つのスレッド最適化コンポーネント１２０、少なくとも１つのコンテンツ・セレクタ・コンポーネント１２５、少なくとも１つのオーディオ信号生成器コンポーネント１３０、少なくとも１つのダイレクト・アクション・アプリケーション・プログラミング・インタフェース（ＡＰＩ）１３５、少なくとも１つのセッションハンドラコンポーネント１４０、および少なくとも１つのデータ・リポジトリ１４５を含むことができる。ＮＬＰコンポーネント１１０、インタフェース１１５、スレッド最適化コンポーネント１２０、コンテンツ・セレクタ・コンポーネント１２５、オーディオ信号生成器コンポーネント１３０、ダイレクト・アクションＡＰＩ１３５、およびセッションハンドラコンポーネント１４０はそれぞれ、当該少なくとも１つのコンピュータネットワーク１６５を介してデータ・リポジトリ１４５および他のコンピューティングデバイス（例えば、クライアントコンピューティングデバイス１５０、コンテンツ・プロバイダ・コンピューティング・デバイス１５５、またはサービス・プロバイダ・コンピューティング・デバイス１６０）と通信するように構成されたプログラム可能論理アレイのような少なくとも１つの処理ユニット、サーバ、仮想サーバ、回路、エンジン、エージェント、機器、または他の論理デバイスを含むことができる。ネットワーク１６５は、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、メトロポリタン・ネットワーク、または他の領域ネットワーク、イントラネット、衛星ネットワーク、音声またはデータモバイル電話通信ネットワーク、およびその組合せのような他のコンピュータネットワークのようなコンピュータネットワークを含むことができる。
【００２１】
ネットワーク１６５は、コンテンツ配置または検索エンジン結果システムに関連付けられるか、または、サードパーティコンテンツ・アイテムをコンテンツ・アイテム配置キャンペーンの一部として含む権利があるディスプレイネットワーク、例えば、インターネット上で利用可能な情報リソースのサブセットを含むかまたは構成することができる。ネットワーク１６５を、クライアントコンピューティングデバイス１５０により提供、出力、描画、または表示できるウェブページ、ウェブサイト、ドメイン名、またはユニフォーム・リソース・ロケータのような情報リソースにアクセスするためにデータ処理システム１０５により使用することができる。例えば、ネットワーク１６５を介してクライアントコンピューティングデバイス１５０のユーザは、コンテンツ・プロバイダ・コンピューティング・デバイス１５５またはサービス・プロバイダ・コンピューティング・デバイス１６０により提供された情報またはデータにアクセスすることができる。
【００２２】
ネットワーク１６５は、例えばポイント・ツー・ポイントネットワーク、ブロードキャストネットワーク、広帯域ネットワーク、ローカル・エリア・ネットワーク、電気通信ネットワーク、データ通信ネットワーク、コンピュータネットワーク、ＡＴＭ（Asynchronous Transfer Mode)）ネットワーク、ＳＯＮＥＴ（Synchronous Optical Network）ネットワーク、ＳＤＨ（Synchronous Digital Hierarchy）ネットワーク、ワイヤレスネットワークまたは有線ネットワーク、およびその組合せを含むことができる。ネットワーク１６５は赤外線チャネルまたは衛星帯域のような無線リンクを含むことができる。ネットワーク１６５のトポロジはバス、星形、またはリング・ネットワークトポロジを含んでもよい。ネットワーク１６５は高度携帯電話プロトコル（「ＡＭＰＳ」）、時分割多重アクセス（「ＴＤＭＡ」）、符号分割多重アクセス（「ＣＤＭＡ」）、グローバル・システム・フォー・モバイル・コミュニケーション（「ＧＳＭ（登録商標）」）、汎用パケット無線サービス（「ＧＰＲＳ」）またはユニバーサル・モバイル電気通信システム（「ＵＭＴＳ」）を含む、モバイルデバイスの間で通信するために使用される任意の１つまたは複数のプロトコルを用いた携帯電話ネットワークを含むことができる。様々なタイプのデータが異なるプロトコルを介して送信されてもよい、または同一のタイプのデータが異なるプロトコルを介して送信されてもよい。
【００２３】
クライアントコンピューティングデバイス１５０、コンテンツ・プロバイダ・コンピューティング・デバイス１５５、およびサービス・プロバイダ・コンピューティング・デバイス１６０はそれぞれ、ネットワーク１６５を介して互いにまたはデータ処理システム１０５と通信するためのプロセッサを有するコンピューティングデバイスのような少なくとも１つの論理デバイスを含むことができる。クライアントコンピューティングデバイス１５０、コンテンツ・プロバイダ・コンピューティング・デバイス１５５、およびサービス・プロバイダ・コンピューティング・デバイス１６０はそれぞれ、少なくとも１つのデータセンタに配置された少なくとも１つのサーバ、プロセッサまたはメモリ、または複数の計算リソースまたはサーバを含むことができる。クライアントコンピューティングデバイス１５０、コンテンツ・プロバイダ・コンピューティング・デバイス１５５、およびサービス・プロバイダ・コンピューティング・デバイス１６０はそれぞれ少なくとも１つのコンピューティングデバイスのようなデスクトップコンピュータ、ラップトップ、タブレット、携帯情報端末、スマートフォン、ポータブルコンピュータ、サーバ、シン・クライアントコンピュータ、仮想サーバ、または他のコンピューティングデバイスを含むことができる。
【００２４】
クライアントコンピューティングデバイス１５０は少なくとも１つのセンサ１５１、少なくとも１つのトランスデューサ１５２、少なくとも１つのオーディオ・ドライバ１５３、および少なくとも１つのスピーカ１５４を含むことができる。センサ１５１はマイクロフォンまたはオーディオ入力センサを含むことができる。トランスデューサ１５２は当該オーディオ入力を電子信号を変換することができる。オーディオ・ドライバ１５３は、オーディオ入力を処理するかまたはオーディオ出力を提供するようにクライアントコンピューティングデバイス１５０の他のコンポーネントのうちセンサ１５１、トランスデューサ１５２またはオーディオ・ドライバ１５３を制御するために、クライアントコンピューティングデバイス１５０の１つまたは複数のプロセッサにより実行されるスクリプトまたはプログラムを含むことができる。スピーカ１５４は当該オーディオ出力信号を送信することができる。
【００２５】
クライアントコンピューティングデバイス１５０を、音声クエリをオーディオ入力としてクライアントコンピューティングデバイス１５０（センサ１５１を介して）に入力し、データ処理システム１０５（またはコンテンツ・プロバイダ・コンピューティング・デバイス１５５またはサービス・プロバイダ・コンピューティング・デバイス１６０）からクライアントコンピューティングデバイス１５０に提供できるコンピュータ生成された音声の形でオーディオ出力を受信し、スピーカ１５４から出力する。当該コンピュータ生成された音声は、実際の人またはコンピュータ生成された言語からの記録を含むことができるエンド・ユーザに関連付けることができる。
【００２６】
コンテンツ・プロバイダ・コンピューティング・デバイス１５５は、クライアントコンピューティングデバイス１５０によりオーディオ出力コンテンツ・アイテムとして表示するためのオーディオベースのコンテンツ・アイテムを提供することができる。当該コンテンツ・アイテムは「Would you like me to order you a taxi?」と述べる音声ベースのメッセージのような商品またはサービスの申し出を含むことができる。例えば、コンテンツ・プロバイダ・コンピューティング・デバイス１５５は、音声ベースのクエリに応答して提供できる一連のオーディオコンテンツ・アイテムを格納するためのメモリを含むことができる。コンテンツ・プロバイダ・コンピューティング・デバイス１５５はまた、オーディオベースのコンテンツ・アイテム（または他のコンテンツ・アイテム）をデータ処理システム１０５に提供することができる。それらをデータ・リポジトリ１４５に格納することができる。データ処理システム１０５は、オーディオコンポーネントを含み、当該コンテンツ・アイテムをクライアントコンピューティングデバイス１５０に提供する（または提供するようにコンテンツ・プロバイダ・コンピューティング・デバイス１５５に指示する）コンテンツ・アイテムを選択することができる。当該オーディオベースのコンテンツ・アイテムは、排他的にオーディオであることができ、または、テキスト、画像、またはビデオデータと組み合わせることができる。当該コンテンツ・アイテムは、描画するときにオーディオ出力または音波を提供する１つまたは複数のオーディオファイルを含むことができる。当該コンテンツ・アイテムはオーディオコンテンツに加えてまたはその代わりに他のコンテンツ（例えば、テキスト、ビデオ、または画像コンテンツ）を含むことができる。例えば、当該コンテンツ・アイテムは、オーディオファイルを含まずオーディオ出力を描画できないテキストまたは画像ファイル、またはその組合せを含むことができる。
【００２７】
サービス・プロバイダ・コンピューティング・デバイス１６０は、少なくとも１つのサービス・プロバイダ自然言語プロセッサ（ＮＬＰ）コンポーネント１６１および少なくとも１つのサービス・プロバイダ・インタフェース１６２を含むことができる。サービス・プロバイダＮＬＰコンポーネント１６１（またはサービス・プロバイダ・コンピューティング・デバイス１６０のダイレクト・アクションＡＰＩのような他のコンポーネント）は、クライアントコンピューティングデバイス１５０（データ処理システム１０５を介してまたはデータ処理システム１０５をバイパスして）と協調して、クライアントコンピューティングデバイス１５０およびサービス・プロバイダ・コンピューティング・デバイス１６０の間で行き来するリアルタイム音声またはオーディオベースの会話（例えば、セッション）を生成することができる。例えば、サービス・プロバイダ・インタフェース１６２はデータメッセージを受信し、または、データメッセージをデータ処理システム１０５のダイレクト・アクションＡＰＩ１３５に提供することができる。サービス・プロバイダ・コンピューティング・デバイス１６０およびコンテンツ・プロバイダ・コンピューティング・デバイス１５５を同一のエンティティに関連付けることができる。例えば、コンテンツ・プロバイダ・コンピューティング・デバイス１５５は、カーシェア・サービスに対して利用可能なコンテンツ・アイテムを生成、格納、または作成でき、サービス・プロバイダ・コンピューティング・デバイス１６０は、セッションをクライアントコンピューティングデバイス１５０とを確立して、タクシーまたは当該カーシェアサービスの車の配送がクライアントコンピューティングデバイス１５０のエンド・ユーザをピックアップするようにアレンジすることができる。データ処理システム１０５はまた、ダイレクト・アクションＡＰＩ１３５、ＮＬＰコンポーネント１１０または他のコンポーネントを介して、クライアントコンピューティングデバイス１５０との当該セッションを確立して、サービス・プロバイダ・コンピューティング・デバイス１６０を含むかまたはバイパスして、例えばタクシーまたは当該カーシェアサービスの車の配送をアレンジすることができる。
【００２８】
データ・リポジトリ１４５は１つまたは複数のローカルまたは分散データベースを含むことができ、データベース管理システムを含むことができる。データ・リポジトリ１４５はコンピュータデータ記憶またはメモリを含むことができ、他のデータのうち１つまたは複数のパラメータ１４６、１つまたは複数のポリシ１４７、コンテンツ・データ１４８、またはテンプレート１４９を格納することができる。パラメータ１４６、ポリシ１４７、およびテンプレート１４９は、クライアントコンピューティングデバイス１５０（またはサービス・プロバイダ・コンピューティング・デバイス１６０）とデータ処理システム１０５の間の音声ベースのセッションに関するルールのような情報を含むことができる。コンテンツ・データ１４８は、オーディオ出力に対するコンテンツ・アイテムまたは関連付けられたメタデータ、ならびにクライアントコンピューティングデバイス１５０との１つまたは複数の通信セッションの一部であることができる入力オーディオメッセージを含むことができる。
【００２９】
データ処理システム１０５は、入力オーディオ信号をデータ処理システム１０５のインタフェース１１５に通信して、当該クライアントコンピューティングデバイスのコンポーネントを駆動して、出力オーディオ信号を描画するアプリのような、クライアントコンピューティングデバイス１５０にインストールされたアプリケーション、スクリプトまたはプログラムを含むことができる。データ処理システム１０５はオーディオ入力信号を含むかまたは識別するデータパケットまたは他の信号を受信することができる。例えば、データ処理システム１０５はＮＬＰコンポーネント１１０の少なくとも一部を実行して、当該オーディオ入力信号を受信することができる。
【００３０】
ＮＬＰコンポーネント１１０は、当該入力信号を（例えば、データ・リポジトリ１４５内の）格納された、代表的な組のオーディオ波形と比較し、最も近いマッチを選択することによって、当該オーディオ入力信号を認識されたテキストに変換することができる。当該代表的な波形は多数のユーザにわたって生成され、会話サンプルで補強することができる。当該オーディオ信号を認識されたテキストに変換された後、ＮＬＰコンポーネント１１０は、例えばユーザにわたるトレーニングを介してまたはマニュアル仕様を通じて、データ処理システム１０５がサービス提供できるアクションに関連付けられる単語に当該テキストをマッチすることができる。
【００３１】
当該オーディオ入力信号は、当該クライアントコンピューティングデバイスのセンサ１５１（例えば、マイクロフォン）により検出されることができる。トランスデューサ１５２、オーディオ・ドライバ１５３、または他のコンポーネントを介して、クライアントコンピューティングデバイス１５０は当該オーディオ入力信号をデータ処理システム１０５に（例えば、ネットワーク１６５を介して）提供することができる。当該オーディオ入力信号を、（例えば、インタフェース１１５により）受信し、ＮＬＰコンポーネント１１０に提供するか、または、データ・リポジトリ１４５にコンテンツ・データ１４８として格納することができる。
【００３２】
システム１００は、音声起動されたデータパケット（または他のプロトコル）環境におけるシーケンス依存動作を含むアクションデータ構造の処理を最適化することができる。例えば、データ処理システム１０５は、音声起動されたアシスタントサービス、音声コマンドデバイス、インテリジェント・パーソナル・アシスタント、知識ナビゲータ、イベント計画、または他のアシスタントプログラムを含むことができるかまたはその一部であることができる。データ処理システム１０５は、クライアントコンピューティングデバイス１５０から表示するためのオーディオ出力の１つまたは複数のインスタンスを提供して、この入力オーディオ信号に関連するタスクを実現することができる。当該タスクはサービス・プロバイダ・コンピューティング・デバイス１６０または他のサードパーティコンピューティングデバイスを含み、例えば、サービス・プロバイダ・コンピューティング・デバイス１６０または他のサードパーティコンピューティングデバイスと通信して、ディナー予約を行うかまたは映画チケットを購入することができる。例えば、エンド・ユーザは、「OK, I would like to go to go dinner tonight」の入力オーディオ信号をクライアントコンピューティングデバイス１５０に入力できる。この入力オーディオ信号を、クライアントコンピューティングデバイス１５０のセンサ１５１（例えば、マイクロフォン）により検出して、（例えば、トランスデューサ１５２により）をデータ処理システム１０５に送信するためのデータパケットまたは他のプロトコルベースの構造に変換することができる。
【００３３】
ＮＬＰコンポーネント１１０は少なくとも１つの第１の入力オーディオ信号を受信または取得することができる。例えば、インタフェース１１５およびコンピュータネットワーク１６５を介して、ＮＬＰコンポーネント１１０は第１の入力オーディオ信号をクライアントコンピューティングデバイス１５０から取得することができる。ＮＬＰコンポーネント１１０は、第１の入力オーディオ信号からデータを抽出し、または、第１の入力オーディオ信号を解析して、少なくとも１つの第１の要求または第１の要求に対応する少なくとも１つの第１のトリガキーワードを識別することができる。第１の要求は、第１の入力オーディオ信号の意図または主題、例えば、ディナーを食べる意図を示すことができる。第１のトリガキーワードは行われる可能性があるアクションのタイプを示すことができる。例えば、ＮＬＰコンポーネント１１０は第１の入力オーディオ信号を解析して、夕方のディナーのために家を出るための少なくとも１つの要求を識別することができる。第１のトリガキーワードは、取るべきアクションを示す少なくとも１つの単語、フレーズ、語源または部分語、または派生物を含むことができる。例えば、当該入力オーディオ信号からのトリガキーワード「go」または「to go to」は輸送に対する必要性を示すことができる。本例では、当該入力オーディオ信号（または識別された要求）は輸送の意図を直接表現しないが、当該トリガキーワードは、輸送が、当該要求により示される少なくとも１つの他のアクションに対する補助またはサブアクションを示す。
【００３４】
ＮＬＰコンポーネント１１０は第２の入力オーディオ信号を受信することができる。例えば、第１のオーディオ入力信号は「OK, I would like to go to go dinner tonight」であることができ、第２のオーディオ入力信号は「OK, I would like to catch a movie later」であることができる。ＮＬＰコンポーネント１１０は、第２の入力オーディオ信号を任意のクライアントコンピューティングデバイス１５０から、第１の入力オーディオ信号が取得された類似の方式で、例えば、ネットワーク１６５を介して受信または取得することができる。ＮＬＰコンポーネント１１０は、データを第２の入力オーディオ信号から抽出し、または、第２の入力オーディオ信号を解析して、少なくとも１つの第２の要求または第２の要求に対応する少なくとも１つの第２のトリガキーワードを識別することができる。第２の要求は、第２の入力オーディオ信号の意図または主題、例えば、映画館で映画を観る意図を示すことができる。第２のトリガキーワードは行われる可能性があるアクションのタイプを示すことができる。例えば、ＮＬＰコンポーネント１１０は、第２の入力オーディオ信号を解析して、夕方に映画を観るために家を出る少なくとも１つの要求を識別することができる。第２のトリガキーワードは、取るべきアクションを示す少なくとも１つの単語、フレーズ、語源または部分語、または派生物を含むことができる。例えば、第２の入力オーディオ信号からのトリガキーワード「to catch」は、輸送に対する必要性を、例えば、当該要求により示される少なくとも１つの他のアクションに対する補助またはサブアクションとして、示すことができる。
【００３５】
ダイレクト・アクションＡＰＩ１３５は、プログラムまたはスクリプトを、例えばＮＬＰコンポーネント１１０、スレッド最適化コンポーネント１２０、またはコンテンツ・セレクタ・コンポーネント１２５から実行して、タスクまたはアクションを実施するか、または、入力オーディオ信号に応答してコンテンツ・アイテムを識別することができる。ダイレクト・アクションＡＰＩ１３５はデータ処理システム１０５により決定されるものとして、指定されたアクションを実行してエンド・ユーザの意図を満たすことができる。その入力で指定されたアクションに依存して、ダイレクト・アクションＡＰＩ１３５は、ユーザ要求を満たすのに必要なパラメータを識別するコードまたはダイアログスクリプトを実行することができる。かかるコードは、例えば、ホーム・オートメーションサービスの名前のようなデータ・リポジトリ１４５内の追加の情報を検索することができる、またはクライアントコンピューティングデバイス１５０で描画するためのオーディオ出力を提供して、エンド・ユーザに要求されたタクシーの意図した宛先、観る映画のジャンル、またはディナーに行くレストランのタイプのような質問をすることができる。ダイレクト・アクションＡＰＩ１３５は必要なパラメータを決定し、当該情報をアクションデータ構造にパッケージ化することができる。当該アクションデータ構造は次いで、コンテンツ・セレクタ・コンポーネント１２５のような別のコンポーネントにまたは満たすべきサービス・プロバイダ・コンピューティング・デバイス１６０（またはコンテンツ・プロバイダ・コンピューティング・デバイス１５５）に送信することができる。
【００３６】
データ処理システム１０５のダイレクト・アクションＡＰＩ１３５は、当該要求または当該トリガキーワードに基づいて、当該スレッドのアクションに対するデータ構造を生成することができる。当該アクションデータ構造を当該要求に応答して生成することができる。当該アクションデータ構造は、サービス・プロバイダ・コンピューティング・デバイス１６０により送受信されるメッセージに含まれることができる。ＮＬＰコンポーネント１１０により解析された当該要求に基づいて、ダイレクト・アクションＡＰＩ１３５は複数のサービス・プロバイダ・コンピューティング・デバイス１６０のうちどれに当該メッセージを送信すべきかを判定することができる。
【００３７】
ダイレクト・アクションＡＰＩ１３５は、第１のトリガキーワードに基づいておよび第１の要求に応答して、第１のアクションデータ構造を生成でき、第２のトリガキーワードに基づいておよび第２の要求に応答して第２のアクションデータ構造を生成することができる。例えば、第１の入力オーディオ信号が「go to dinner tonight」を含む場合、ＮＬＰコンポーネント１１０はトリガ単語「tonight」およびディナーの示唆または予約の要求を識別することができる。ダイレクト・アクションＡＰＩ１３５は当該要求を、レストランのサービス・プロバイダ・コンピューティング・デバイス１６０（またはコンテンツ・プロバイダ・コンピューティング・デバイス１５５）へのメッセージとして送信するための第１のアクションデータ構造にパッケージ化することができる。第１の入力オーディオ信号は、当該ディナーアクションに付属的な他のアクションを示す他の要求またはトリガキーワードを含むことができる。これらのアクションは第１のアクションデータ構造に含まれることができる。例えば、ＮＬＰコンポーネント１１０は、「OK, I would like to go to go dinner tonight」という、ディナーへの輸送に関する第１の要求または第１のトリガキーワード（追加のアクション）を第１の入力オーディオ信号から識別することができる。
【００３８】
例えば、第２の入力オーディオ信号が「catch a movie later」を含む場合、ＮＬＰコンポーネント１１０は、映画を観る要求をトリガキーワード「catch」または「later」で識別することができる。ダイレクト・アクションＡＰＩ１３５は当該要求を、映画会社または映画館のサービス・プロバイダ・コンピューティング・デバイス１６０（またはコンテンツ・プロバイダ・コンピューティング・デバイス１５５）に対するメッセージとして送信するための第２のアクションデータ構造へパッケージ化することができる。第２の入力オーディオ信号は、当該映画アクションに付属的な他のアクションを示す他の第２の要求または第２のトリガキーワードを含むことができる。これらのアクションは第２のアクションデータ構造に含まれることができる。例えば、ＮＬＰコンポーネント１１０は、映画館（追加のアクション）への輸送に関する第１の要求または第１のトリガキーワードを、「OK, I would like to catch a movie later」という第２の入力オーディオ信号から識別することができる。
【００３９】
第１のおよび第２の、または他の任意のアクションデータ構造をまた、コンテンツ・セレクタ・コンポーネント１２５に渡すことができる。当該アクションデータ構造は、要求に関連付けられた１つまたは複数のアクションを完了するための情報を含むことができる。本例では、当該情報は、レストランまたは映画関心インジケータ、位置情報、レストランまたはレストランのタイプの識別または位置、レストラン予約情報、映画館での映画上映時間、映画館位置情報、またはピックアップ位置および宛先位置を含むことができる。ダイレクト・アクションＡＰＩ１３５は、どのフィールドを当該アクションデータ構造に含めるべきかを判定するためにテンプレート１４９をリポジトリ１４５から取り出すことができる。ダイレクト・アクションＡＰＩ１３５は、当該データ構造のフィールドに関する情報を取得するために、コンテンツをリポジトリ１４５から取り出すことができる。ダイレクト・アクションＡＰＩ１３５は、当該テンプレートからのフィールドをその情報で埋めて、当該データ構造を生成することができる。ダイレクト・アクションＡＰＩ１３５はまた、当該フィールドを入力オーディオ信号またはサードパーティソースからのデータで埋めることができる。テンプレート１４９を、サービス・プロバイダのカテゴリに対して標準化するか、または、特定のサービス・プロバイダに対して標準化することができる。例えば、乗車共有サービス・プロバイダは以下の標準化されたテンプレート１４９を使用して当該データ構造{client_device_identifier; authentication_credentials; pick_up_location; destination_location; no_passengers; service_level}を生成することができる。当該データ構造は可変フィールドを含むことができる。当該可変フィールドは、例えば、データ構造の少なくとも１つのアクションにより示されるかまたはそれに関連する識別された複数のアクションのシーケンスまたは順序動作を示すことができる。ダイレクト・アクションＡＰＩ１３５は、可変フィールドを含む当該データ構造のフィールドを埋めることができる。ダイレクト・アクションＡＰＩ１３５は、第１のアクションが終了した後に開始する第２のアクションのようなアクションの間のシーケンス依存性に基づいて、データをデータ構造の１つまたは複数の可変フィールドに埋めることができる。
【００４０】
ダイレクト・アクションＡＰＩ１３５は、アクションデータ構造に対応するデータパケットを含むデータ送信を構築することができる。例えば、当該データ送信は、当該アクションデータ構造のパケット化されたバージョン、例えば、当該データ構造により表された情報を示すヘッダおよびペイロード領域を有するデータパケットを含むことができる。当該データ送信を、データ処理システム１０５を介して、サービス・プロバイダ・コンピューティング・デバイス１６０およびクライアントコンピューティングデバイス１５０の間の少なくとも１つの通信セッションを確立（例えば、参加）するために使用することができる。セッションハンドラコンポーネント１４０はインタフェース１１５を介して当該通信セッションを確立または識別することができる。例えば、アクション第１のおよび第２のデータ構造（またはそれらの対応するパケット化されたデータ送信）を単一のスレッドにマージまたは関連付けることに続いて、データ処理システム１０５は当該データ送信をサービス・プロバイダ・コンピューティング・デバイス１６０に提供することができる。当該通信セッションの通信の一部として、サービス・プロバイダ・コンピューティング・デバイス１６０はまた、データ処理システム１０５を介して、データパケット（または他のデータメッセージ）をクライアントコンピューティングデバイス１０５から受信することができる。例えば、データ処理システム１０５は、当該通信セッションの一部として、内向きデータメッセージをクライアントコンピューティングデバイス１５０から受信し、サービス・プロバイダ・コンピューティング・デバイス１６０に通すことができる。
【００４１】
スレッド最適化コンポーネント１２０は、第１のおよび第２の（および他の任意の）データ送信のデータパケットを取得またはそれにアクセスすることができる。例えば、ダイレクト・アクションＡＰＩ１３５は当該送信（例えば、対応するデータパケット）をデータ・リポジトリ１４５に記憶のために提供することができる。それらを、スレッド最適化コンポーネント１２０により取り出すことができる。スレッド最適化コンポーネント１２０はまた、当該データ送信のデータパケット（または他のプロトコルベースの構造）を、データ・リポジトリ１４５をバイパスしてダイレクト・アクションＡＰＩ１３５（または他のデータ処理システム１０５コンポーネント）から受信することができる。
【００４２】
スレッド最適化コンポーネント１２０は、それぞれ複数のアクションデータ構造に対応する複数のデータ送信のデータパケットから情報を解析または抽出することができる。例えば、スレッド最適化コンポーネント１２０は、少なくとも１つのシーケンス依存性パラメータを決定するために、ヒューリスティック技術を第１のデータ送信のデータパケットに（または対応する第１のデータ構造に）適用し、第２のデータ送信のデータパケットに（または対応する第２のデータ構造に）適用することができる。当該ヒューリスティックまたは他の統計的技術は、当該データ送信により示されるアクションのシーケンス依存性を示す第１のおよび第２のデータ送信（または対応するデータ構造）の中の確実性パターンの閾値量を決定または識別することができる。
【００４３】
当該シーケンス依存性パラメータは、互いに対する動作、時間、またはシーケンス依存性の順序を有するデータ送信（または対応するアクションデータ構造）により表されるアクションの（例えば、閾値レベルまたは他のベンチマークに対する）存在または可能性を示すことができる。当該シーケンス依存動作またはアクションは、当該シーケンス依存性パラメータにより示され、既知の、示唆された、要求された、または特定の順序で発生するアクションの数を含むことができる。例えば、家から映画館に行き、次いで家に戻ることは３つのシーケンス依存動作またはアクションを含むことができる。この例における第１のアクションは家から映画館に移動することを含む。第２のアクションは映画館で映画を観ることを含む。第３のアクションは映画館から家に戻ることを含む。
【００４４】
これらの３つの（およびおそらく他の）アクションを、ダイレクト・アクションＡＰＩ１３５により、入力オーディオ信号「OK, I would like to catch a movie later」に対応する要求またはトリガキーワードから決定することができる。本例では、当該シーケンス内の第２のアクション（映画を観ること）は第１のアクション（家から映画館に行くこと）に続きそれに依存し、第３のアクション（家に戻ること）は第１のアクションおよび第２のアクションに続きそれに依存する。第３のアクションは第２のアクションに続きそれに依存すると考えることができ、そのような意図を表した際、データ処理システム１０５は同様に、家に戻る前にエンド・ユーザが映画館で映画を観ると判定または予測する。
【００４５】
当該シーケンス依存性パラメータに基づいて、スレッド最適化コンポーネント１２０は、複数のパケット化されたデータ送信（またはそれらの対応するアクションデータ構造）を単一のスレッドにマージすることができる。当該単一のスレッドは、アクションならびに他のデータ（例えば、メタデータまたはサードパーティデータ）を複数のデータアクション構造から識別するデータを含むことができる。当該単一のスレッドは、パケット化された（または他のプロトコルベースの）形態で、例えば、第１のおよび第２のデータ送信と同一のフォーマットであることができる。当該単一のスレッドはまた、例えば、ダイレクト・アクションＡＰＩ１３５により生成されたデータ構造フォーマット、または少なくとも１つのテンプレート１４９、ポリシ１４７、またはパラメータ１４６のフォーマットであることができる。当該単一のスレッドは、１つまたは複数のデータ送信からのまたは１つまたは複数のアクションデータ構造からのアクションの関連付けまたはリンクを含むかまたは示すことができる。
【００４６】
当該通信セッションを介して当該アクションデータ構造により示されるデータをサービス・プロバイダ・コンピューティング・デバイス１６０に送信する前に、当該データ送信またはアクションデータ構造を、スレッド最適化コンポーネント１２０により互いにマージまたは関連付けて、当該単一のスレッドを生成することができる。
【００４７】
本例では、ダイレクト・アクションＡＰＩ１３５または他のデータ処理システム１０５コンポーネント（例えば、インタフェース１１５）は当該単一のスレッドにより示されるデータの少なくとも一部を、当該単一のスレッドの合併または生成に続いて、サービス・プロバイダ・コンピューティング・デバイス１６０に初めて送信することができる。例えば、当該単一のスレッドの生成の前に、データ処理システム１０５は、第１のまたは第２の（または他の任意の）データ構造に関連付けられたデータを、遅延させ、防止し、差し控え、または送信していなくてもよい。幾つかの例では、独立なデータ構造により示されるデータの少なくとも幾つかを、当該単一のスレッドの生成の前に、データ処理システム１０５によりそこから、サービス・プロバイダ・コンピューティング・デバイス１６０に提供することができる。
【００４８】
スレッド最適化コンポーネント１２０は、当該シーケンス依存性パラメータに基づいて、当該データ送信（または対応するアクションデータ構造）を当該単一のスレッドにマージ、または統合もしくは関連付けることができる。例えば、第１のデータ送信（および第１のデータ構造）は第１の入力オーディオ信号「OK, I would like to go to go dinner tonight」に関連付けられたアクションを表すことができ、第２のデータ送信（および第２のデータ構造）は第２の入力オーディオ信号「OK, I would like to catch a movie later」に関連付けられたアクションを表すことができる。第１のおよび第２の（または他の任意の）入力オーディオ信号は、逐次的（１分未満で互いに続く）であってもよく、別々の時間（例えば、１分より大きい）で互いから分離してもよく、同一のまたは異なるクライアントコンピューティングデバイス１５０から発生することができる。スレッド最適化コンポーネント１２０は、この情報を表すデータパケット（または他のデータ）を取得でき、少なくとも１つのシーケンス依存性パラメータを決定することができる。例えば、当該シーケンス依存性パラメータは、映画館から家に戻るアクションが当該映画を観るアクションの後に発生すること、または当該映画を観るアクションがディナーを食べるアクションの後に発生するかと発生すると予測されることを示すことができる。
【００４９】
（任意のデータ構造またはフォーマットでの）単一のスレッドは、一連のアクションのような、１つまたは複数の入力オーディオ信号（または対応するデータ構造またはデータ送信）に対応する１組のシーケンス依存動作を示すことができる。当該スレッドは、第１のアクション、第２のアクション、および第３のアクションのような任意の複数のアクションを含むことができる。例えば、第１の入力オーディオ信号「OK, I would like to go to go dinner tonight」、および第２の入力オーディオ信号「OK, I would like to catch a movie later」の合併は、ディナーおよび映画に参加する関心を示す少なくとも１つの要求、および輸送に対する必要性を示す少なくとも１つのトリガキーワード、例えば、「go」を含むことができる。スレッド最適化コンポーネント１２０は、当該アクションの間の少なくとも１つのシーケンス、時間的な、または動作依存性の順序を示す少なくとも１つのシーケンス依存性パラメータを識別でき、当該複数の入力オーディオ信号（または対応するテンプレートベースのデータ構造またはパケット／プロトコルベースのデータ送信）を結合するための単一のスレッドを生成することができる。スレッド最適化コンポーネント１２０は、ディナーアクション（第１のアクション）、映画アクション（第２のアクション）、および家への輸送アクション（第３のアクション）のような少なくとも３つのアクションを示す単一のスレッドを生成することができる。本例では、当該要求または当該トリガキーワードから、スレッド最適化コンポーネント１２０は、当該３つのアクションを示す複数の別々の入力から単一のスレッドを生成する。当該単一のスレッドは、ディナーアクションへの初期輸送のような他のアクションを含むことができる。
【００５０】
データ処理システム１０５またはスレッド最適化コンポーネント１２０のようなそのコンポーネントは、当該スレッドのアクションがシーケンス依存動作であると判定することができる。例えば、当該スレッド最適化コンポーネントは、映画を観る第２のアクションがディナーを食べる第１のアクションに続き、映画館から家に移動する第３のアクションが当該映画を観る第２のアクションの後であると判定することができる。スレッド最適化コンポーネント１２０は、当該シーケンス依存アクションの順序を決定または推定するために、データ・リポジトリ１４５内のパラメータ１４６またはポリシ１４７にアクセスすることができる。例えば、パラメータ１４６またはポリシ１４７は、輸送アクション（例えば、家へのタクシー）がイベントアクション（例えば、映画を観ること）の後に発生しうることを示しうる。
【００５１】
コンテンツ・セレクタ・コンポーネント１２５は、当該単一のスレッドのアクションの何れかの指示を取得することができる。例えば、スレッド最適化コンポーネント１２０は、第３の（または他の任意の）アクションを示す当該単一のスレッドの少なくとも一部をコンテンツ・セレクタ・コンポーネント１２５に直接または間接に（例えば、データ・リポジトリ１４５を介して）提供することができる。コンテンツ・セレクタ・コンポーネント１２５はこの情報をデータ・リポジトリ１４５から取得することができる。当該情報をコンテンツ・データ１４８の一部として格納することができる。第３のアクションの指示は、コンテンツ・セレクタ・コンポーネント１２５に、最終目的地への乗車のような、映画館の位置からクライアントコンピューティングデバイス１５０により決定または示される位置への輸送に対する必要性を知らせることができる。
【００５２】
コンテンツ・セレクタ・コンポーネント１２５は当該スレッド内の後のアクションの指示を少なくとも１つのより早いアクションの発生の前に取得することができる。例えば、コンテンツ・セレクタ・コンポーネント１２５は、映画が映画館で上映される（第２のアクション）前に、または入力オーディオ信号をクライアントコンピューティングデバイス１５０に入力した人がレストランでディナーを食べる（第１のアクション）前に、第３のアクションの指示（例えば、映画館からの乗車に対する必要性）を受信することができる。コンテンツ・セレクタ・コンポーネント１２５は、当該スレッドの少なくとも１つのアクションの完了の前に、当該スレッドの少なくとも１つのアクションの指示を取得することができる。
【００５３】
当該シーケンス依存スレッド内の少なくとも１つの過去のアクションの発生の前にコンテンツ・セレクタ・コンポーネント１２５により受信された情報、例えば、第３のアクションの指示から、コンテンツ・セレクタ・コンポーネント１２５は少なくとも１つのコンテンツ・アイテムを識別することができる。当該コンテンツ・アイテムは第３の（または他の任意の）アクションに応答または関連することができる。例えば、当該コンテンツ・アイテムは、輸送の必要性を示す第３のアクションに応答して、カーシェア会社のオーディオメッセージ提供サービスを含むことができる。コンテンツ・セレクタ・コンポーネント１２５はデータ・リポジトリ１４５に問い合わせて、当該コンテンツ・アイテムを、例えば、コンテンツ・データ１４８から選択または識別することができる。コンテンツ・セレクタ・コンポーネント１２５はまた、当該コンテンツ・アイテムをコンテンツ・プロバイダ・コンピューティング・デバイス１５５から選択することができる。例えばデータ処理システム１０５から受信されたクエリに応答して、コンテンツ・プロバイダ・コンピューティング・デバイス１５５はコンテンツ・アイテムをクライアントコンピューティングデバイス１５０による最終出力のためにデータ処理システム１０５（またはそのコンポーネント）に提供することができる。
【００５４】
オーディオ信号生成器コンポーネント１３０は、第３の（または他の任意の）アクションに応答して当該コンテンツ・アイテムを含む出力信号を生成または取得することができる。例えば、データ処理システム１０５は、当該オーディオ信号生成器コンポーネントを実行して、当該コンテンツ・アイテムに対応する出力信号を生成または作成することができる。データ処理システム１０５のインタフェース１１５は、コンピュータネットワーク１６５を介して当該出力信号を含む１つまたは複数のデータパケットを例えば、当該通信セッションの一部としてクライアントコンピューティングデバイス１５０に提供または送信することができる。インタフェース１１５は例えば、データパケットを用いて情報を送受信するように設計され、構成され、構築され、または動作することができる。インタフェース１１５は、ネットワークプロトコルのような１つまたは複数のプロトコルを用いて情報を送受信することができる。インタフェース１１５は、ハードウェアインタフェース、ソフトウェアインタフェース、有線インタフェース、またはワイヤレスインタフェースを含むことができる。インタフェース１１５は、或るフォーマットから別のフォーマットへのデータ変換またはデータ・フォーマットを促進することができる。例えば、インタフェース１１５は、システム１００のソフトウェアコンポーネントのような、様々なコンポーネントの間で通信するための定義を含むアプリケーション・プログラミング・インタフェースを含むことができる。
【００５５】
例えばデータ処理システム１０５は当該出力信号をデータ・リポジトリ１４５からまたはオーディオ信号生成器コンポーネント１３０からクライアントコンピューティングデバイス１５０に提供することができる。データ処理システム１０５はまた、データパケット送信を介して、コンテンツ・プロバイダ・コンピューティング・デバイス１５５またはサービス・プロバイダ・コンピューティング・デバイス１６０に、当該出力信号をクライアントコンピューティングデバイス１５０に提供するように指示することができる。当該出力信号を、取得し、生成し、１つまたは複数のデータパケット（または他の通信プロトコル）に変換し、または１つまたは複数のデータパケット（または他の通信プロトコル）としてデータ処理システム１０５（または他のコンピューティングデバイス）からクライアントコンピューティングデバイス１５０に送信することができる。
【００５６】
コンテンツ・セレクタ・コンポーネント１２５は、当該単一のスレッドにより示される１組のシーケンス依存動作における後のアクションにスキップして、当該後のアクションに対応する活動に対する発生の前（および即時の必要性の前）に当該後のアクションに対するコンテンツ・アイテムを選択することができる。例えば、第１の過去のアクションに対するコンテンツ・アイテムを選択する前に第２の後続のアクションに対するコンテンツ・アイテムを選択するために後の順序付けられたアクションにスキップすることで、データ処理システム１０５は、後続のアクションに対するコンテンツ・アイテムを選択するための過去のアクションに関連する情報を最初に処理する必要がない。これは、さもなければ第２のアクションに対するコンテンツ・アイテムを選択する前に（第１のアクションに対する）コンテンツ・アイテムを選択することに関連付けられるデータ送信のプロセッサ利用、電力消費および帯域幅を減らす。
【００５７】
コンテンツ・セレクタ・コンポーネント１２５は、当該コンテンツ・アイテムを、（後続のまたは後の）アクションに対してリアルタイムコンテンツ選択プロセスの一部として選択することができる。例えば、当該コンテンツ・アイテムを、当該入力オーディオ信号への直接応答の会話方式でオーディオ出力として送信するために当該クライアントコンピューティングデバイスに提供することができる。当該コンテンツ・アイテムを識別し当該コンテンツ・アイテムをクライアントコンピューティングデバイス１５０に提供するためのリアルタイムコンテンツ選択プロセスは、当該入力オーディオ信号の時刻から１分以内に発生でき、リアルタイムと考えることができる。
【００５８】
例えばオーディオ信号生成器コンポーネント１３０により取得または生成され、インタフェース１１５およびコンピュータネットワーク１６５を介してクライアントコンピューティングデバイス１５０に送信された、コンテンツ・プロバイダ・コンピューティング・デバイス１５５に対応するコンテンツ・アイテム（またはサービス・プロバイダ・コンピューティング・デバイス１６０に対応するデータ）に対応する出力信号はクライアントコンピューティングデバイス１５０に、オーディオ・ドライバ１５３を実行してスピーカ１５４を駆動し、当該出力信号に対応する音波を生成させることができる。当該音波は、当該コンテンツ・アイテムの単語もしくは当該コンテンツ・アイテムに対応する単語、または、後の（例えば、第２のまたは第３の）アクションに対する他のデータを含むことができる。当該コンテンツ・アイテムに対応する出力信号はまた、当該入力オーディオ信号のソースであるクライアントコンピューティングデバイス１５０上でまたは異なるクライアントコンピューティングデバイス１５０（例えば、ウェラブルデバイスのコンピューティングデバイス）上でオーディオ要素なしに描画できるテキストまたは画像メッセージとして描画する、非オーディオ・コンテンツ・アイテムを含むことができる。
【００５９】
データ処理システム１０５は、当該入力オーディオ信号に対する直接的またはリアルタイムな応答におけるアクションに応答して当該コンテンツ・アイテムまたは他のデータを含む出力信号を提供でき、その結果、データ処理システム１０５とクライアントコンピューティングデバイス１５０の間の通信セッションの一部であるコンピュータネットワーク１６５を介したパケット・ベースのデータ送信は、リアルタイムな人から人への会話の流れと感覚を有する。このパケット・ベースのデータ送信通信セッションはまた、コンテンツ・プロバイダ・コンピューティング・デバイス１５５またはサービス・プロバイダ・コンピューティング・デバイス１６０を含むことができる。
【００６０】
コンテンツ・セレクタ・コンポーネント１２５は、シーケンス内の任意の過去のアクションに対する任意のコンテンツ・アイテムを選択する前に、シーケンス依存の１組のアクションにおける第２の（または任意の非第１の）アクションに応答して提供されたコンテンツ・アイテムを選択することができる。これは、過去のアクションに対応するデータの少なくとも幾つかを処理する必要性を回避する。これは、第２のコンテンツ・アイテムを、アクションのシーケンスの順序にマッチする順序で当該コンテンツ・アイテムが選択された場合に発生する削減された数の処理動作とともに選択させる。当該過去の（例えば、第１のおよび第２の）アクションに対するコンテンツ・アイテムを、例えば第２のアクションに対するコンテンツ・アイテムの選択の後に選択してもしなくてもよい。
【００６１】
コンテンツ・セレクタ・コンポーネント１２５は、同一のスレッドの１つまたは複数の要求の主題と異なる主題を示すスレッドの少なくとも１つのトリガキーワードに基づいて、（例えば、第２のアクションに対する）コンテンツ・アイテムを選択することができる。例えば、当該単一のスレッドの当該要求はディナー要求の主題（第１のアクション）、および映画要求の主題（第２のアクション）を示すことができる。この主題は輸送の要求を示さない。しかし、ＮＬＰコンポーネント１１０またはスレッド最適化コンポーネント１２０（またはダイレクト・アクションＡＰＩ１３５の一部として実行される他のデータ処理システム１０５コンポーネント）は、トリガキーワード「go」「go to」または「to go to」を識別でき、少なくとも当該トリガキーワードに部分的に基づいて輸送の要求を決定することができる。したがって、データ処理システム１０５は、当該入力オーディオ信号の主要な要求または主題ではない二次要求である入力オーディオ信号からアクションを推論することができる。
【００６２】
データ処理システム１０５は当該コンテンツ・アイテムを含む出力信号の送信を防止または遅延することができる。例えば、インタフェース１１５またはダイレクト・アクションＡＰＩ１３５介して実行されるスクリプトは、トリガ・イベントまで、コンテンツ・アイテムまたは当該単一のスレッドのアクションに対応する出力信号を含むデータパケットの送信を防止することができる。当該トリガ・イベントは、映画のスケジュールされた終了時刻のような、２時間または当該スレッド内のより早いアクションの発生と一致する時間のような、所定の時間期間の期限切れを含むことができる。当該トリガ・イベントはまた、データ処理システム１０５によりクライアントコンピューティングデバイス１５０から受信された認証指示を含むことができる。当該認証指示は、当該スレッドに関連付けられた後続のオーディオ入力として発生するが、当該入力オーディオ信号、テキストベースのまたは他の非可聴信号に続いて、データ処理システム１０５により受信でき、またはクライアントコンピューティングデバイス１５０によるコンテンツ・アイテムの受信を承認するクライアントコンピューティングデバイス１５０の設定の指示を含むことができる。
【００６３】
データ処理システム１０５はまた、当該スレッドの第２のアクションまたは第２のアクションに関連付けられたコンテンツ・アイテムの送信を遅延して、処理の利用を最適化することができる。例えば、データ処理システム１０５はコンテンツ・アイテム送信をデータセンタ利用のオフピークまたは非ピークの期間まで遅延することができる、これはピーク帯域幅利用、熱出力または冷却要件を減らすことで当該データセンタのより効率的な利用をもたらす。データ処理システム１０５はまた、データ処理システム１０５を含むネットワーク１６５またはデータセンタのデータセンタ利用率または帯域幅メトリックまたは要件に基づいて、車サービスの注文のような、当該コンテンツ・アイテムに関連付けられた変換または他の活動を開始することができる。
【００６４】
当該コンテンツ・アイテムは当該スレッドのアクションに対応でき、コンテンツ・セレクタ・コンポーネント１２５は、当該スレッドの１つの、複数の、または全てのアクションに対するコンテンツ・アイテムを選択することができる。スレッド最適化コンポーネント１２０は、アクションのシーケンス依存スレッド、例えば、「ディナー」（第１のアクション）「映画」（第２のアクション）および「映画の場所からの輸送」（第３のアクション）を識別することができる。
【００６５】
例えば、当該単一のスレッドに基づいて、第３のアクションに対するコンテンツ・アイテムを、当該オーディオ入力信号に応答して「Would you like a ride home from the movie theater?」と述べるオーディオ応答として、クライアントコンピューティングデバイス１５０で描画するために提供することができる。この描画に続いてまたはその前に、データ処理システム１０５は、コンテンツ・アイテム、例えば、第１のアクション（ディナー）に対する「the Italian restaurant downtown has an opening for 7pm tonight - are you interested?」を選択または提供でき、別のコンテンツ・アイテム、例えば、第２のアクション（映画）に対して「would you like tickets to the 9pm movie at the downtown theater?」を選択または提供することができる。データ処理システム１０５は、当該入力オーディオ信号に応答して、オーディオ出力コンテンツ・アイテムとしてクライアントコンピューティングデバイス１５０により描画するためにこれらのコンテンツ・アイテムを提供する（提供するようにコンテンツ・プロバイダ・コンピューティング・デバイス１５５に指示することを含む）ことができる。データ処理システム１０５は、インタフェース１１５を介して、これらのコンテンツ・アイテムを任意の順序で選択しまたはクライアントコンピューティングデバイス１５０に提供することができる。例えば、第３の（例えば、最後の）アクションに対するコンテンツ・アイテムを、当該スレッドの他のより早いアクションに対応するコンテンツ・アイテムの前に最初に選択または提供することができる。
【００６６】
データ処理システム１０５は、コンテンツ・アイテム「would you like a ride home from the movie theater?」に対する応答を受信できる。当該応答は、エンド・ユーザによりクライアントコンピューティングデバイス１５０に入力されデータ処理システム１０５により受信された入力オーディオ信号、例えば、「yes please」を含むことができる。データ処理システム１０５またはそのコンポーネント（例えば、スレッド最適化コンポーネント）は当該単一のスレッドの一部として当該応答を含むことができる。この応答に基づいて、ダイレクト・アクションＡＰＩ１３５は、（カーシェア会社のようなコンテンツ・アイテムに関連付けることができる）サービス・プロバイダ・コンピューティング・デバイス１６０と通信して、映画が終了する時刻に映画館の位置へタクシーまたは相乗り車をオーダすることができる。データ処理システム１０５は、データ・リポジトリ１４５から、またはサービス・プロバイダ・コンピューティング・デバイス１６０またはコンテンツ・プロバイダ・コンピューティング・デバイス１５５のような他のソースから、クライアントコンピューティングデバイス１５０とのデータパケット（または他のプロトコル）ベースのデータメッセージ通信の一部として、この位置情報または時刻情報を取得することができる。このオーダ（または他の変換）の確認を、「great, you will have a car waiting for you at 11pm outside the theater」のようなオーディオ出力をクライアントコンピューティングデバイス１５０に描画させるデータ処理システム１０５からの出力信号の形で、オーディオ通信としてデータ処理システム１０５からクライアントコンピューティングデバイス１５０に提供することができる。データ処理システム１０５は、ダイレクト・アクションＡＰＩ１３５を介して、サービス・プロバイダ・コンピューティング・デバイス１６０と通信して車のオーダを確認することができる。
【００６７】
データ処理システム１０５は、コンテンツ・アイテム（「would you like a ride home from the movie theater?」）に対する応答（例えば、「yes please」）を取得でき、パケット・ベースのデータメッセージを、サービス・プロバイダＮＰＬコンポーネント１６１（またはサービス・プロバイダ・コンピューティング・デバイスの他のコンポーネント）にルーティングすることができる。このパケット・ベースのデータメッセージは、サービス・プロバイダ・コンピューティング・デバイス１６０に、変換に影響を及ぼして、例えば、映画館の外での車のピックアップ予約を行わせることができる。この変換、または確認された順序、（または当該スレッドの他の任意のアクションの他の任意の変換）は、当該スレッドの１つまたは複数のアクションの完了の前に、例えば映画の完了の前に、ならびに当該スレッドの１つまたは複数のアクションの完了に続いて、例えば、ディナーに続いて発生することができる。
【００６８】
シーケンス依存スレッド内の第３の最後のアクションに対するコンテンツ・アイテム「would you like a ride home from the movie theater」に対する応答「yes please」のような、当該スレッド内の後続のアクションコンテンツ・アイテムへの応答に基づいて、データ処理システム１０５は変換またはアクションを開始することができる。これは、エンド・ユーザが当該スレッドに関連付けられた任意のアクティビティを開始する前に、例えば、ディナー前または映画終了前に発生することができる。データ処理システム１０５のプロセッサは、そのカーシェアサービスからの車をオーダするスクリプトを実行するように、ダイレクト・アクションＡＰＩ１３５を起動することができる。ダイレクト・アクションＡＰＩ１３５は、データ・リポジトリ１４５からコンテンツ・データ１４８（またはパラメータ１４６またはポリシ１４７）を取得し、ならびにエンド・ユーザ同意によりクライアントコンピューティングデバイス１５０から受信されたデータを取得して、カーシェアサービスから車を予約するための位置、時間、ユーザアカウント、物流または他の情報を決定することができる。ダイレクト・アクションＡＰＩ１３５を用いて、データ処理システム１０５はまた、サービス・プロバイダ・コンピューティング・デバイス１６０と通信して、この例ではカーシェアのピックアップ予約を行うことによって当該変換を完了することができる。
【００６９】
ダイレクト・アクションＡＰＩ１３５は、当該スレッドのアクションを実現するための変換または活動を、当該スレッドに関連付けられた第１の入力オーディオ信号（例えば、「OK, I would like to go to go dinner and then a movie tonight」）のデータ処理システム１０５による受信から、当該スレッドのアクションの１つの完了に続く閾値時間期間まで（例えば、映画を観る第２のアクションの終了後１５分まで）の或る時間期間中の任意の時点で、開始することができる。データ処理システム１１０はまた、エンド・ユーザが当該スレッドのアクションを完了したこと、例えば、家に戻ったかまたは映画館にもはや居ないことの指示のような、他の因子に基づいてこの時間期間の終了を決定することができる。データ処理システム１０５はまた、当該スレッドがキャンセルされたまたは休眠であることまたはエンド・ユーザが当該スレッドのアクションをキャンセルまたは完了したことの指示（ネットワーク１６５を介して送信されたデータメッセージ）を、クライアントコンピューティングデバイス１５０から取得することができる。
【００７０】
ダイレクト・アクションＡＰＩ１３５は、他の当該スレッドのアクションの完了または完了の時点に基づいて、当該スレッドのアクションを実現するための変換または活動を開始することができる。例えば、データ処理システム１０５は、商品またはサービス（カーシェアピックアップ）を直接に、または、当該スレッド内の過去のアクションの完了の閾値時間期間内にサービス・プロバイダ・コンピューティング・デバイス１６０と通信することによって、オーダすることができる。映画（第２のアクション）のスケジュールされたまたは実際の完了の前または後の５分（または他の時間期間）内に、データ処理システム１０５は、カーシェアサービスを確認またはオーダして、エンド・ユーザを映画館（後続の、第３のアクション）でピックアップするために車を送ることができる。これは、この時間期間内にエンド・ユーザコンピューティングデバイス１５０から受信された入力がない状態で、または、この時間期間内にエンド・ユーザコンピューティングデバイス１５０から受信されたプロンプトに応答して、発生することができる。
【００７１】
ダイレクト・アクションＡＰＩ１３５は、当該スレッドのシーケンス依存動作に関連付けられた変換または他の活動を任意の順序で開始することができる。例えば、ダイレクト・アクションＡＰＩ１３５（または他のデータ処理システム１０５のコンポーネント）は、当該シーケンス内のより早いスレッドに対応する活動を開始する前に（例えば、ディナー予約を行う前にまたは映画のチケットを注文する前に）、最終アクション（例えば、タクシーのオーダのような３つのアクションスレッド内の第３のアクション）に対応する活動を開始することができる。本例ではデータ処理システム１０５は、後の（例えば、第３の）アクションに対する活動の開始に続いて、より早い（例えば、第２の）アクションに対する活動を開始する。
【００７２】
コンテンツ・セレクタ・コンポーネント１２５は、複数のコンテンツ選択プロセスから生ずる複数のコンテンツ・アイテムを識別、選択、または取得することができる。当該コンテンツ選択プロセスは、スレッドを含む、データ処理システム１０５とクライアントコンピューティングデバイス１５０の間のリアルタイムな、例えば、同一の会話、通信セッション、または一連の通信セッションの一部であることができる。当該会話は、例えば時間または日の期間だけ互いから分離した非同期な通信を含むことができる。当該会話または通信セッションは、第１の入力オーディオ信号の受信から、当該スレッドの最終アクションの推定されたまたは既知の結論、データ処理システム１０５による当該スレッドの終了の指示の受信までの或る時間期間だけ継続することができる。これを当該スレッドのアクティブ時間期間と称することができる。例えば、３つのアクション（例えば、ディナー、映画、および家への輸送）を有するスレッドに対して、コンテンツ・セレクタ・コンポーネント１２５はアクションごとに少なくとも１つのコンテンツ・アイテムを選択することができる。コンテンツ・アイテム・セレクタ・コンポーネント１２５は、アクションごとに異なるコンテンツ選択プロセスからの結果を実行または取得することができる。当該コンテンツ選択プロセスにおいて、コンテンツ・プロバイダ・コンピューティング・デバイス１５０は、コンテンツ・セレクタ・コンポーネント１２５による選択のためのコンテンツ・アイテムを説明することができる。少なくとも３つのアクションを有するスレッドに対して、当該コンテンツ・アイテム・セレクタ・コンポーネントは、第１のコンテンツ選択プロセスを介して第１のアクションに対する第１のコンテンツ・アイテムを、第２のコンテンツ選択プロセスを介して第２のアクションに対する第２のコンテンツ・アイテムを、および第３のコンテンツ選択プロセスを介して第３のアクションに対する第３のコンテンツ・アイテムを選択または識別することができる。当該スレッドのアクティブ時間期間中にクライアントコンピューティングデバイス１５０により描画するためにこれらのコンテンツ・アイテムを提供するデータ処理システム１０５を、リアルタイムに動作していると考えることができる。本例では当該コンテンツ選択プロセスおよび当該コンテンツ・アイテムの描画はリアルタイムに発生する。
【００７３】
データ処理システム１０５は、コンテンツ・アイテムに関連付けられたアクションをキャンセルすることができる。例えば、車サービスを注文した後、エンド・ユーザは、映画を観るが、車を家までもっていく代わりに、家まで歩くか、または、映画の後にデザートを食べることを決定するかもしれない。クライアントコンピューティングデバイス１５０でデータ処理システム１０５の一部として実行されているアプリまたは他のプログラムは、「cancel my ride home」の入力オーディオ信号を受信することができる。ＮＬＰコンポーネント１１０は、この入力オーディオ信号を、例えば１つまたは複数のパケット・ベースのデータメッセージとして受信でき、この入力オーディオ信号は既存のスレッド（例えば、ディナー、映画、家への輸送）に関し同一の会話または通信の一部であると判定することができる。例えば、ＮＬＰコンポーネント１１０（または他のデータ処理システム１０５コンポーネント）は、スレッドの過去の、現在の、またはスケジュールされたアクションのような時間データ、位置データおよび既存のスレッドデータをデータ・リポジトリ１４５のコンテンツ・データ１４８から評価して、入力オーディオ信号が既存のスレッドに関すると判定することができる。例えば、要求「ride」またはトリガキーワード「cancel」に基づいて、ＮＬＰコンポーネント１１０は、入力オーディオ信号「cancel my ride home」が既存のスレッドの第３のアクションに対応するコンテンツ・アイテム「would you like a ride home from the movie theater?」に関すると判定することができる。ダイレクト・アクションＡＰＩ１３５（または他のコンポーネント）はデータ処理システム１０５に、インタフェース１１５を介してサービス・プロバイダ・コンピューティング・デバイス１６０と通信して、映画の終了時にエンド・ユーザを映画館の外で車を待たせるタクシーまたはカーシェアサービスのオーダをキャンセルさせることができる。
【００７４】
ＮＬＰコンポーネント１３５は、当該スレッドの任意のアクションの完了の前または後に当該スレッドのアクションをキャンセルするためのデータパケットまたは他のプロトコルベースのメッセージを受信することができる。ＮＬＰコンポーネント１３５は、当該スレッドのより早いアクションによりトリガされた時間間隔内に当該スレッドのアクションをキャンセルするためのデータメッセージ（内向きオーディオ信号）を、クライアントコンピューティングデバイス１５０から受信する（またはデータ・リポジトリ１４５から取得する）ことができる。例えば、３つのアクション、即ち、ディナー、映画、輸送を有するシーケンス依存スレッド内で、データ処理システム１０５は、映画が終了する５分（または他の時間期間）以内に当該輸送をキャンセルするデータメッセージを受信することができる。データ処理システム１０５は、当該スレッドのアクションに関連する製品またはサービスの確認を促すことができる。例えば、第１のアクションおよび第２のアクションの間の時間期間中（例えば、ディナーの後、かつ、映画の前）に、データ処理システム１０５は、クライアントコンピューティングデバイス１５０で描画されるとき、「just confirming that you still want a car waiting for you after the movie」と述べるオーディオまたはテキストメッセージを出力するデータメッセージをクライアントコンピューティングデバイス１５０に送信することができる。データ処理システム１０５は、例えば、「yes, confirmed」または「no, cancel the car」の応答を受信することができる。この応答を、当該スレッドの一部として含めることができる。ダイレクト・アクションＡＰＩ１３５はスクリプトを実行してこの情報を処理でき、サービス・プロバイダ・コンピューティング・デバイス１６０と通信して、当該確認またはキャンセルを示すことができる。
【００７５】
とりわけ図１および図２を参照すると、当該シーケンス依存性パラメータに基づいて、スレッド最適化コンポーネント１２０は少なくとも１つの単一のスレッドデータ構造２００を生成することができる。単一のスレッドデータ構造２００はパケット・ベースのアーキテクチャ（または他のフォーマット）を含むことができ、少なくとも１つのヘッダ２０５を含むことができる。ヘッダ２０５は、データ処理システム１０５を識別する補完データ、ソースまたは宛先アドレス情報、支配的なプロトコル情報、ＩＰアドレス、フレーム同期データ、サイズデータ、解像度データ、またはアクションデータ構造に関連付けられたメタデータを含むことができる。単一のスレッドデータ構造２００のペイロードまたはボディは、少なくとも１つのシーケンス依存性パラメータ２１０、または少なくとも１つの第１のデータ送信２１５または少なくとも１つの第２のデータ送信２２０のような他の情報を含むことができる。単一のスレッドデータ構造２００は、１つまたは複数の構造、例えば、各ヘッダ２０５および第１のデータ送信２１５または第２のデータ送信２２０の少なくとも一部を示すペイロードを有する複数のパケットを含むことができる。シーケンス依存性パラメータ２１５は、第１のデータ送信２１５または第２のデータ送信２２０により示される当該複数のアクションからのアクションのシーケンス依存性を示すことができる。
【００７６】
ヘッダ２０５、シーケンス依存性パラメータ２１０、第１のデータ送信２１５、および第２のデータ送信２２０は、単一のスレッドデータ構造２００に含まれてもよいがその必要はない。例えば、単一のスレッドデータ構造２００のボディは、第１のデータ送信２１５（またはその部分）のみを含み、シーケンス依存性パラメータ２１０または第２のデータ送信２２０の何れも含まないことができ、または単一のスレッドデータ構造２００のボディはシーケンス依存性パラメータ２１０ならびに第１のデータ送信２１５および第２のデータ送信２２０のうち１つまたは複数を含むことができる。単一のスレッドデータ構造２００は、データ処理システム１０５とサービス・プロバイダ・コンピューティング・デバイス１６０またはコンテンツ・プロバイダ・コンピューティング・デバイス１５５との間の１つまたは複数のデータ送信の一部として逐次的にまたは並列に別々に送信された１つまたは複数の独立なパケットを含むことができる。ヘッダ２０５またはシーケンス依存性パラメータ２１０は、当該別々の送信または別々のデータパケットが同一のバッチ送信、例えば、同一の全体の単一のスレッドデータ構造２００に関連付けられると示すことができる。ダイレクト・アクションＡＰＩ１３５は複数の異なる単一のスレッドデータ構造を１つの単一のスレッドデータ構造２００にマージまたはリンクすることができる。単一のスレッドデータ構造２００は、別個だが互いに関連付けられた複数のパケットまたは複数の異なる構造を含むことができる。
【００７７】
スレッド最適化コンポーネント１２０は、単一のスレッドデータ構造２００の或るアクションを別のアクションに対して優先付けすることができる。当該優先付けはシーケンス依存性パラメータ２１０により示されることができ、または、ダイレクト・アクションＡＰＩ１３５またはコンテンツ・セレクタ・コンポーネント１２５に提供される。例えば、スレッド最適化コンポーネント１２０は、当該単一のスレッドのデータ構造２００で示される最初のアクションを優先付けすることができる。当該優先付けに応答して、ダイレクト・アクションＡＰＩ１３５またはコンテンツ・セレクタ・コンポーネント１２５のような他のコンポーネントは、データ送信（例えば、第１のデータ送信２１５または第２のデータ送信２２０の少なくとも一部）を、コンテンツ・プロバイダ・コンピューティング・デバイス１５５またはサービス・プロバイダ・コンピューティング・デバイス１６０に提供して、当該最初のアクションに関連する変換に影響を及ぼすことができる。
【００７８】
とりわけ図３を参照すると、データ処理システム１０５は第１の入力オーディオ信号３０５（例えば、「OK, I would like to go to go dinner tonight」）を第１のクライアントコンピューティングデバイス１５０から受信することができる。データ処理システム１０５はまた、第２の入力オーディオ信号３１０（例えば、「OK, I would like to catch a movie later」）を同一のまたは異なるクライアントコンピューティングデバイス１５０から受信することができる。データ処理システム１０５は、第１のおよび第２のオーディオ入力信号３０５、３１０に対する各アクションデータ構造および対応するデータ送信を生成することができる。スレッド最適化コンポーネント１２０のようなデータ処理システム１０５のコンポーネントは、統計的技術またはヒューリスティック技術を第１の入力オーディオ信号３０５および第２の入力オーディオ信号３１０に適用して、第１の入力オーディオ信号３０５および第２の入力オーディオ信号３１０のアクションからシーケンス依存アクションを示す少なくとも１つのシーケンス依存性パラメータを生成することができる。データ処理システム１０５は、第１の入力オーディオ信号３０５および第２の入力オーディオ信号３１０に対応するデータ送信（例えば、パケット）またはアクションデータ構造をバッチ化またはプールして、バッチ化またはプールされた単一のスレッドデータ構造２００を生成することができる。データ処理システム１０５は、単一のスレッドデータ構造２００をサービス・プロバイダ・コンピューティング・デバイス１６０により処理するためにサービス・プロバイダ・コンピューティング・デバイス１６０に送信または提供して、例えば第１のおよび第２の入力オーディオ信号３０５、３１０に応答して少なくとも１つの車の要約、映画チケットの購入、またはディナー予約を行うことができる。
【００７９】
同一の単一のスレッドデータ構造の一部の異なるインスタンスを異なるコンピューティングデバイスに提供することができる。例えば、単一のスレッド２００の全部または一部を、サービス・プロバイダ・コンピューティング・デバイス１６０に提供して、変換、例えば、カーシェアサービスからの車のオーダに影響を及ぼすことができ、単一のスレッド２００の同一のまたは異なる部分を（同時にまたは逐次的に）コンテンツ・プロバイダ・コンピューティング・デバイス１５５に提供して、別の変換に影響を及ぼす、例えば、レストランに対するコンテンツ・アイテムを取得することができる。
【００８０】
単一のスレッドデータ構造２００の受信に応答して、コンテンツ・プロバイダ・コンピューティング・デバイス１５５またはサービス・プロバイダ・コンピューティング・デバイス１６０は、当該単一のスレッドのデータ構造２００により定義または示される少なくとも１つの動作を実施することができる。当該動作は、第１のまたは第２の入力オーディオ信号３０５、３１０のアクションデータ構造（またはデータ送信）の各アクションのうち１つまたは複数に対応することができる。例えば、当該動作は、車をカーシェアサービスから、サービス・プロバイダ・コンピューティング・デバイス１６０から受信するステップ、または映画に対するコンテンツ・アイテムを提供するステップを含むことができる。例えば、コンテンツ・プロバイダ・コンピューティング・デバイス１５５は第１の応答３１５（例えば、映画に対するコンテンツ・アイテム）をクライアントコンピューティングデバイス１５０に提供でき、サービス・プロバイダ・コンピューティング・デバイス１６０は第２の応答３２０（例えば、車の予約）を同一のまたは異なるクライアントコンピューティングデバイス１５０に提供することができる。第１のおよび第２の応答３１５、３２０は、コンテンツ・プロバイダ・コンピューティング・デバイス１５５またはサービス・プロバイダ・コンピューティング・デバイス１６０からクライアントコンピューティングデバイス１５０への送信中に、データ処理システム１０５をバイパスすることができる。応答３１５、３２０は、車サービスからの車の予約またはコンテンツ・アイテムの描画のような変換アクションを確認するテキスト、画像、または他のデータメッセージ（オーディオを含む）を含むことができる。データ処理システム１０５は当該変換の（または応答３１５、３２０の）指示を、コンピュータネットワーク１６５を介してサービス・プロバイダ・コンピューティング・デバイス１６０、コンテンツ・プロバイダ・コンピューティング・デバイス１５５、またはクライアントコンピューティングデバイス１５０から受信することができる。
【００８１】
データ処理システム１０５により（例えば、スレッド最適化コンポーネント１２０またはダイレクト・アクションＡＰＩ１３５により）生成された単一のスレッド２００は、当該スレッドに対応するアクションの実際の、既知の、スケジュールされた、または推定された時刻を示すことができる。これらの時刻は、とりわけ、映画開始時間、輸送ピックアップ時刻、ディナー予約時刻、またはイベント時刻を含むことができる。当該時刻は、離散的時刻、例えば、午後８：００のディナー予約、または他のアクションに対する相対的な時刻であることができ、例えば、当該アクション‘Ｂ’は、アクション‘Ａ’の既知のまたは推定された結論時刻の後１５分で開始するようにスケジュールされる。例えば、当該スレッド２００は、第１のアクション（例えば、ディナーを食べる）は第２のアクション（例えば映画を観ること）の前に発生するようにスケジュールされることを示すことができる。これらのアクションは、入力オーディオ信号から識別されたデータ構造（またはデータ送信）アクションに対応することができる。ダイレクト・アクションＡＰＩ１３５は第１のアクションの完了を検出することができる。例えば、コンピューティングデバイス１５０はレストランで支払いを行うためのスクリプトを実行でき、またはダイレクト・アクションＡＰＩ１３５はディナーが９０分継続すると推定でき、またはエンド・ユーザはオーディオ入力信号または他のデータメッセージを提供して、第１のアクションが完了するまたは時間ウィンドウの時刻にまたは時間ウィンドウ内に完了するようにスケジュールされたことを示すことができる。第１のアクションの完了（例えば、既知のまたは推定された終了時刻）の検出に応答して、ダイレクト・アクションＡＰＩ１３５は、当該単一のスレッドのデータパケットをサービス・プロバイダ・コンピューティング・デバイス１６０にまたはコンテンツ・プロバイダ・コンピューティング・デバイス１５５に送信することに進むことができる。この送信は、既知のまたは推定された第１のアクションの完了に続いて、または既知のまたは推定された第１のアクションの完了の時間ウィンドウ内（例えば、１時間内）に発生することができる。例えば、ディナーの完了時に、ダイレクト・アクションＡＰＩ１３５は、単一のスレッド２００の少なくとも一部を、サービス・プロバイダ・コンピューティング・デバイス１６０に提供して、映画チケットを購入し、またはコンテンツ・プロバイダ・コンピューティング・デバイス１５５に提供して、映画に対するコンテンツ・アイテムを取得することができる。当該変換（例えば、クライアントコンピューティングデバイス１５０でのチケットの購入またはコンテンツ・アイテムの描画）の指示を、データ処理システム１０５にクライアントコンピューティングデバイス１５０、コンテンツ・プロバイダ・コンピューティング・デバイス１５５、またはサービス・プロバイダ・コンピューティング・デバイス１６０から提供することができる。シーケンス依存性パラメータ２１０は、単一のスレッド２００のアクションが発生するようにスケジュールされる順序を示すことができ、例えば、第１のアクションは第２のアクションの前に発生するようにスケジュールされることを示すことができる。
【００８２】
ダイレクト・アクションＡＰＩ１３５は、単一のスレッド２００の少なくとも１つのアクションの少なくとも１つのデッドロック条件を識別することができる。デッドロック条件は、最初の、過去のアクションが完了した後に第２のアクションが進むことができないことを示すことができる。例えば、ダイレクト・アクションＡＰＩ１３５は、第１のアクションが映画アクション（映画館で映画を観ること）であり第２のアクションが、映画が終了した後にカーシェアサービスを介して家に輸送することであるとき、デッドロック条件を識別することができる。ダイレクト・アクションＡＰＩ１３５は、映画のスケジュールされた終了時刻のような第１のアクションに関連付けられた時刻まで継続する第２のアクション（例えば、家への乗車）に対するデッドロック条件を決定することができる。ダイレクト・アクションＡＰＩ１３５またはインタフェース１１５のような他のコンポーネントは、当該デッドロック条件に応答してサービス・プロバイダ・コンピューティング・デバイス（例えば、カーシェアサービス）へのデータ送信の送信を防止することができる。例えば、データ処理システム１０５またはそのコンポーネントは、当該デッドロック条件の時間期間中の、（例えば、カーシェアサービスの）サービス・プロバイダ・コンピューティング・デバイス１６０へのアクション（例えば、車の予約）に対するデータ送信のデータパケット（またはデータ構造）の送信を防止することができる。これは、サービス・プロバイダ・コンピューティング・デバイス１６０が車（または他のサービス）の要求をあまりにも早く受信することを防ぐ。
【００８３】
ダイレクト・アクションＡＰＩ１３５は、当該デッドロック条件が終了したかまたはもはや存在しないことの指示を取得するか、または、そのように判定することができる。例えば、ダイレクト・アクションＡＰＩ１３５は、映画のスケジュールされた終了時刻または他のアクションを決定するために、サービス・プロバイダ・コンピューティング・デバイス１６０または他のサードパーティコンピューティングデバイスを問い合わせることができる。この時刻に達すると、または、この時刻の前の閾値時間期間（例えば、３０分または５分）内に、当該ダイレクト・アクションＡＰＩは当該デッドロック条件を壊し、解放し、または終了させることができる。当該デッドロック条件の期限切れに続いて、データ処理システム１０５は（例えば、インタフェース１０５を介して）、サービス・プロバイダ・コンピューティング・デバイス１６０に、映画の後の家までの乗車のような後続のアクションに対応するデータ送信またはデータ構造のデータを送信することができる。
【００８４】
ダイレクト・アクションＡＰＩ１３５は、当該デッドロック条件を終了するための指示をクライアントコンピューティングデバイス１５０から受信することができる。例えば、エンド・ユーザは、映画が終了する前に早めに映画から離れることを決定するかもしれず、入力オーディオ信号、例えば、「OK, this movie stinks, I’d like a ride home please」を当該クライアントコンピューティングデバイスに入力することができる。データ処理システム１０５（例えば、ＮＬＰコンポーネント１１０またはダイレクト・アクションＡＰＩ１３５）は、当該デッドロック条件が切れたことをこの入力オーディオ信号から判定でき、当該後続のアクションに関するデータをサービス・プロバイダ・コンピューティング・デバイス１６０に送信することができる。当該デッドロック条件の解放に続いて、ダイレクト・アクションＡＰＩ１３５はまた、アクションに関するデータ（例えば、単一のスレッド２００のデータ送信またはアクションデータ構造のデータ）をコンテンツ・プロバイダ・コンピューティング・デバイス１５５に提供して、デッドロックアクション後に関連するコンテンツ・アイテムを取得することができる。当該コンテンツ・アイテムを、データ処理システム１０５によりまたはコンテンツ・プロバイダ・コンピューティング・デバイス１５５により、描画するためにクライアントコンピューティングデバイス１５０に提供することができる。当該コンテンツ・アイテムは、例えば、「Sorry to hear about the movie, would you like to order a car from a car share company?」を示すことができる。コンテンツ・セレクタ・コンポーネント１２５（またはインタフェース１１５またはダイレクト・アクションＡＰＩ１３５のような他のコンポーネント）は、デッドロック条件に応答してまたは当該デッドロック条件の解放まで、当該コンテンツ・アイテムの選択、または当該選択されたコンテンツ・アイテムのクライアントコンピューティングデバイス１５０への送信ブロックすることができる。
【００８５】
ダイレクト・アクションＡＰＩ１３５は、単一のスレッド２００により示されるアクションの逐次的な順序を修正することができる。例えば、当該ダイレクト・アクションＡＰＩは、第１の逐次的な順序の指示、例えば、第１のアクション、第１のアクションに続く第２のアクション、および第２のアクションに続く第３のアクション（ディナー、次いで映画、次いで家へ乗車）を決定することができる。ダイレクト・アクションＡＰＩ１３５およびＮＬＰコンポーネント１１０およびインタフェース１１５のような他のコンポーネントは当該逐次的な順序を修正する要求を受信することができる。例えば、データ処理システム１０５は、「OK I’d like to eat dinner after the movie」という入力オーディオ信号を当該クライアントコンピューティングデバイスから受信することができる。ダイレクト・アクションＡＰＩ１３５（またはＮＬＰコンポーネント１１０）は、このオーディオ入力信号から、当該アクションの逐次的な順序を、例えば、映画、次いでディナー、次いで家へ乗車に修正する要求を取得することができる。この情報から、ダイレクト・アクションＡＰＩ１３５は修正された逐次的な順序を生成でき、その結果第２のアクション（映画を観ること）はこの時点で第１のアクション（ディナーを食べる）の前に発生するようにスケジュールされる。ダイレクト・アクションＡＰＩ１３５またはコンテンツ・セレクタ・コンポーネント１２５（または他のコンポーネント）はそれに応じて、当該ディナーアクションのコンテンツ・プロバイダ・コンピューティング・デバイス１５５またはサービス・プロバイダ・コンピューティング・デバイス１６０へのデータ送信の前に、映画アクションのデータ送信を送信することに進むことができる。ダイレクト・アクションＡＰＩ１３５はまた、第１の映画アクションの終了時刻に基づいて、当該ディナーアクションに関連する動作を遅延するデッドロック条件を識別または修正することができる。ディナー、映画、および輸送のアクションは例であり、任意の数のエンド・ユーザアクティビティまたは要求がアクションを構成することができる。当該修正は、当該入力オーディオ信号と異なる入力に応答して発生することができる。例えば、午後９時の映画（ディナーの後）に対するチケットが売り切れの場合、データ処理システム１０５はクライアントコンピューティングデバイス１５０で描画するためのオーディオ出力を提供して、ディナーの前に映画を観ること（例えば、午後５時のショー）を示唆することができる。
【００８６】
データ処理システム１０５はオフラインアクションを実施することができる。これは、処理および電気電力要件を節約し、ネットワークトラフィックを減らすかまたはオフピーク時間にシフトすることができる。例えば、単一のスレッド２００は、第１のアクションおよび第１のアクションの解像度に依存する第２の後続のアクションを示すことができる。これらのアクションは、この先６か月に発生する３週間の熱帯ビーチバケーションのために飛行機チケット（第１のアクション、今日）を購入し、バケーションの最終日のスキューバレッスン（第２のアクション、６か月以上先）を予約することのように、互いから数日または数週間（またはそれ以上）離れていることができる。ダイレクト・アクションＡＰＩ１３５は、リアルタイムに航空会社エンティティに対応するサービス・プロバイダ・コンピューティング・デバイス１６０と通信して、当該入力オーディオ信号の受信に応答して当該飛行機チケットをオンラインアクションで購入して変換に影響を及ぼす（？）こと、即ち、当該飛行機チケットの購入ができる。この例における第２のアクションは６か月先のままである。この６か月期間または他の時間ウィンドウにわたって、ダイレクト・アクションＡＰＩ１３５またはコンテンツ・セレクタ・コンポーネント１２５のような他のコンポーネントは、コンテンツ・アイテムを選択するかまたは第２のアクション（スキューバレッスン）に応答して他の動作を実施することができる。例えば、当該ダイレクト・アクションＡＰＩは、データ・リポジトリ１４５からまたはスキューバレッスンに関連するサードパーティデータ・リポジトリからこの情報を取得することで、オフラインで取得することができる。当該オフラインアクションはリアルタイムであってもなくてもよく、オフラインアクションはアクションの間の時間分離（例えば、６か月）を必要としない。例えば、データ処理システム１０５は、当該クライアントコンピューティングデバイスとの通信セッションまたは同期的または非同期な会話の一部として、データ・リポジトリ１４５からまたはサードパーティデータベースからのアクションに応答して情報をリアルタイムに取得することができる。
【００８７】
図４は、音声起動されたデータパケット・ベースのコンピュータネットワーク環境におけるシーケンス依存動作を示す音声起動されたオーディオ入力データ通信を管理するための方法４００を示す。方法４００は少なくとも１つの第１のオーディオ入力信号を受信することができる（動作４０５）。例えば、当該ＮＬＰコンポーネントはインタフェース１１５を介してデータパケットを受信することができる（動作４０５）。データ処理システム１０５は、ＮＬＰコンポーネント１１０を実行または起動して、当該ネットワークを介してパケットまたは他のプロトコルベースの送信を少なくとも１つのクライアントコンピューティングデバイス１５０から受信することができる。当該データパケットは、第１のエンド・ユーザが「OK, I would like to go to go dinner tonight」とクライアントコンピューティングデバイス１５０、例えば、スマートフォンに言うことのような、第１のクライアントコンピューティングデバイス１５０のセンサ１５１により検出された入力オーディオ信号を含むことができるかまたはそれに対応することができる。方法４００は当該入力オーディオ信号を解析して、少なくとも１つの第１の要求または少なくとも１つの第１のトリガキーワードを当該入力オーディオ信号から識別することができる（動作４１０）。例えば、ＮＬＰコンポーネント１１０は当該入力オーディオ信号を解析して、要求（「dinner」に対するエンターテイメント要求）ならびに当該要求に対応または関するトリガキーワード（「to go to」）を識別することができる。方法４００は、当該受信された第１のオーディオ入力信号に関連付けられた当該識別された要求またはキーワードに基づいて、少なくとも１つの第１のアクションデータ構造を生成することができる（動作４１５）。例えば、ダイレクト・アクションＡＰＩ１３５は、タクシーピックアップの要求されたサービス・プロバイダ、またはレストラン推奨のような第１のアクションを示すアクションデータ構造を生成することができる。
【００８８】
方法４００は少なくとも１つの第２のオーディオ入力信号を受信することができる（動作４２０）。例えば、ＮＬＰコンポーネント１１０は、パケットまたは他のプロトコルベースの送信を、ネットワーク１６５を介して第１の入力オーディオ信号を生成した同一のまたは異なるクライアントコンピューティングデバイス１５０から受信することができる。当該データパケットは、エンド・ユーザが「OK, I would like to catch a movie later」をクライアントコンピューティングデバイス１５０に言うことのような、第２のクライアントコンピューティングデバイス１５０のセンサ１５１により検出された入力オーディオ信号を含むことができるかまたはそれに対応することができる。方法４００は、少なくとも１つの第２の要求または少なくとも１つの第２のトリガキーワードを第２の入力オーディオ信号から識別することができる（動作４２５）。例えば、ＮＬＰコンポーネント１１０は当該入力オーディオ信号を解析して、要求（「movie」に対するエンターテイメント要求）ならびに当該要求に対応または関するトリガキーワード（「to catch」）を識別することができる。方法４００は、要求またはキーワードに基づいて当該受信された第１のオーディオ入力信号に関連付けられた当該識別された少なくとも１つの第２のアクションデータ構造を生成することができる（動作４３０）。例えば、ダイレクト・アクションＡＰＩ１３５は、タクシーピックアップの位置、要求されたサービス・プロバイダ、または映画情報のような第２のアクションを示すアクションデータ構造を生成することができる。
【００８９】
方法４００は、データ送信を当該アクションデータ構造から構築することができる（動作４３５）。例えば、ダイレクト・アクションＡＰＩ１３５は、第１の入力オーディオ信号に対応する第１のアクションデータ構造から第１のデータ送信を生成でき、第２の入力オーディオ信号に対応する第２のアクションデータ構造から第２のデータ送信を生成することができる。第１のおよび第２の（または他の数の）データ送信を、当該対応するアクションデータ構造から取得された情報をパケット化し、または、広範囲に定義された通信セッション、例えば、データ処理システム１０５を介したエンド・ユーザコンピューティングデバイス１５０とコンテンツ・プロバイダ・コンピューティング・デバイス１５５またはサービス・プロバイダ・コンピューティング・デバイス１６０との間のやり取りまたは非同期な会話もしくはデータの送信の一部として送信するための形態に当該アクションデータ構造を変換することで、構築または生成することができる（動作４３５）。異なるエンティティに対応する複数のサードパーティデバイス（例えば、コンテンツ・プロバイダ・コンピューティング・デバイス１５５またはサービス・プロバイダ・コンピューティング・デバイス１６０）との通信セッションを、共通の通信セッションの一部と考えることができる。通信セッションは、会話方式でクライアントコンピューティングデバイス１５０と行き来するデータ送信により同期的であることができ、または、休眠期間、例えば、少なくとも１つの時間がデータ送信の間に存在して非同期であることができる。
【００９０】
方法４００はデータを当該データ送信から取得することができる（動作４４０）。例えば、スレッド最適化コンポーネント１２０は、当該データ送信からの（または当該対応するアクションデータ構造からの）アクションに関する情報にアクセスするかそれを（例えば、データ・リポジトリ１４５から）取り出すことができる。方法４００は少なくとも１つのシーケンス依存性パラメータを決定することができる（動作４４５）。例えば、アクションの動作の順序またはシーケンス依存性を示す当該データ送信より取得されたデータ（動作４４０）に基づいて、スレッド最適化コンポーネント１２０は、少なくとも２つのアクションに対するシーケンス依存性の当該存在を示すシーケンス依存性パラメータを決定することができる。方法４００は、１つまたは複数のアクションデータ構造を（直接にまたは対応するデータ送信の関連付けを介して）単一のスレッドデータ構造２００に関連付けることができる。例えば、スレッド最適化コンポーネント１２０（または他のデータ処理システム１０５コンポーネント）は単一のスレッドデータ構造２００を生成することができる（動作４５０）。例えば、少なくとも２つのシーケンスまたは時間依存動作の指示に基づいて、スレッド最適化コンポーネント１２０は、第１のおよび第２のデータ送信、第１のおよび第２のアクションデータ構造、またはそれらの関連付けられたアクションを示す少なくとも１つの単一のスレッドデータ構造を生成することができる（動作４４０）。当該生成された単一のスレッドデータ構造２００（動作４５０）は、アクションの完了を検出するためにダイレクト・アクションＡＰＩ１３５により使用されるデータを含むことができ、その結果データ処理システム１０５は次いで、異なるアクションに対するデータパケットを、サービス・プロバイダ・コンピューティング・デバイス１６０にまたはコンテンツ・プロバイダ・コンピューティング・デバイス１５５に提供することができる。データ処理システム１０５はまた、当該生成された単一のスレッドデータ構造２００のアクションに関連付けられたデッドロック条件を識別することができる（動作４５０）。単一のスレッドデータ構造２００は複数のアクションの逐次的な順序を示すことができ、当該方法は、当該アクションの当該逐次的な順序を変更する修正された逐次的な順序を生成することができる。データ処理システム１０５は、単一のスレッドデータ構造２００の全部または一部を、１つまたは複数のコンテンツ・プロバイダ・コンピューティング・デバイス１５５またはサービス・プロバイダ・コンピューティング・デバイス１６０に提供することができる。
【００９１】
図５は例示的なコンピュータシステム５００のブロック図である。当該コンピュータシステムまたはコンピューティングデバイス５００は、システム１００、またはデータ処理システム１０５のようなそのコンポーネントを含むことができるかまたはそれを実装するために使用される。当該コンピューティングシステム５００は、情報を通信するためのバス５０５または他の通信コンポーネントおよび情報を処理するためにバス５０５に接続するためのプロセッサ５１０または処理回路を含む。当該コンピューティングシステム５００はまた、情報を処理するために当該バスに接続された１つまたは複数のプロセッサ５１０または処理回路を含むことができる。当該コンピューティングシステム５００はまた、情報、およびプロセッサ５１０により実行される命令を格納するためにバス５０５に接続されたランダム・アクセスメモリ（ＲＡＭ）または他の動的記憶デバイスのようなメイン・メモリ５１５を含む。メイン・メモリ５１５はデータ・リポジトリ１４５であることができるかまたはそれを含むことができる。メイン・メモリ５１５をまた、プロセッサ５１０による命令の実行中に位置情報、一時的変数、または他の中間情報を格納するために使用することができる。当該コンピューティングシステム５００はさらに、プロセッサ５１０のための静的情報および命令を格納するために、バス５０５に接続される読取専用メモリ（ＲＯＭ）５２０または他の静的記憶デバイスを含んでもよい。固体状態デバイス、磁気ディスクまたは光ディスクのような記憶デバイス５２５、は、永続的に情報および命令を格納するためにバス５０５に接続されることができる。当該記憶デバイス５２５は、データ・リポジトリ１４５を含むことができるかまたはその一部であることができる。
【００９２】
当該コンピューティングシステム５００を、バス５０５を介して、情報をユーザに表示するための、液晶ディスプレイ、またはアクティブ行列ディスプレイのようなディスプレイ５３５に接続してもよい。英数字および他のキーを含むキーボードのような入力デバイス５３０、が、情報およびコマンド選択をプロセッサ５１０に通信するためにバス５０５に接続されてもよい。当該入力デバイス５３０はタッチ・スクリーンディスプレイ５３５を含むことができる。当該入力デバイス５３０はまた、方向情報およびコマンド選択をプロセッサ５１０に通信し、当該ディスプレイ５３５上のカーソル移動を制御するための、マウス、トラックボール、またはカーソル方向キーのようなカーソル・コントロールを含むことができる。当該ディスプレイ５３５は、例えば、図１のデータ処理システム１０５、クライアントコンピューティングデバイス１５０または他のコンポーネントの一部であることができる。
【００９３】
本明細書で説明したプロセス、システムおよび方法、プロセッサ５１０がメイン・メモリ５１５に含まれる命令の配置を実行したことに応答して当該コンピューティングシステム５００により実装することができる。かかる命令を当該記憶デバイス５２５のような別のコンピュータ−可読媒体からメイン・メモリ５１５に読み込むことができる。メイン・メモリ５１５に含まれる命令の配置の実行は、当該コンピューティングシステム５００に本明細書で説明した例示的なプロセスを実施させる。マルチプロセッシング配置における１つまたは複数のプロセッサをまた、メイン・メモリ５１５に含まれる命令を実行するために使用することができる。ハードワイヤード回路を、本明細書で説明するシステムおよび方法とともにソフトウェア命令の代わりにまたはそれを組み合わせて使用することができる。本明細書で説明したシステムおよび方法はハードウェア回路およびソフトウェアの任意の特定の組合せに限定されない。
【００９４】
例示的なコンピューティングシステムを図５で説明したが、本明細書で説明した動作を含む当該主題を、本明細書で開示した構造およびそれらの構造的均等物を含む他のタイプのデジタル電子回路で、またはコンピュータソフトウェア、ファームウェア、またはハードウェアで、またはそれらの１つまたは複数の組合せで実装することができる。
【００９５】
本明細書で説明するシステムがユーザに関する個人情報を収集するか、または個人情報を利用しうる状況に対して、当該ユーザに個人情報（例えば、ユーザのソーシャルネットワーク、ソーシャルアクションまたはアクティビティ、ユーザの嗜好、またはユーザの位置に関する情報）をプログラムまたは機能が収集しうるかどうかを制御するか、または、当該ユーザにより関連しうるコンテンツサーバまたは他のデータ処理システムからコンテンツを受信するかどうかまたはその方法を制御ための機会を与えてもよい。さらに、特定のデータはそれが格納または使用される前に１つまたは複数の方法で匿名化してもよく、その結果個人的に識別可能な情報がパラメータを生成するときに除去される。例えば、ユーザのアイデンティティを匿名化してもよく、その結果個人的に識別可能な情報を当該ユーザに対して決定できず、またはユーザの特定の位置を決定できないように、ユーザの地理的位置を位置情報が取得される場所で（例えば都市、郵便番号、または状態レベルに）一般化してもよい。したがって、当該ユーザは、どのように情報が当該ユーザに関して収集され当該コンテンツサーバにより使用されるかを制御することができる。
【００９６】
当該主題および本明細書で説明した動作を、本明細書で開示した構造およびそれらの構造的均等物を含むデジタル電子回路で、またはコンピュータソフトウェア、ファームウェア、またはハードウェアで、またはそれらの１つまたは複数の組合せで実装することができる。本明細書で説明した当該主題を、データ処理装置による実行のためにまたは当該装置の動作を制御するために１つまたは複数のコンピュータ記憶媒体で符号化された、１つまたは複数のコンピュータプログラム、例えば、コンピュータプログラム命令の１つまたは複数の回路として実装することができる。代替的にまたは追加として、当該プログラム命令を、人工的に生成された伝播信号、例えば、データ処理装置による実行のために適切な受信器装置に送信するための情報を符号化するために生成されたマシン−生成された電気、光、または電磁気信号で符号化することができる。コンピュータ記憶媒体は、コンピュータ−可読記憶デバイス、コンピュータ−可読記憶基板、ランダムなまたはシリアル・アクセスメモリ・アレイまたはデバイス、またはそれらの１つまたは複数の組合せであることができ、または、それらに含まれることができる。コンピュータ記憶媒体は伝播信号ではないが、コンピュータ記憶媒体は、人工的に生成された伝播信号で符号化されたコンピュータプログラム命令のソースまたは宛先であることができる。当該コンピュータ記憶媒体はまた、１つまたは複数の別々のコンポーネントまたは媒体（例えば、複数のＣＤ、ディスク、または他の記憶デバイス）であることができ、または、それに含まれることができる。本明細書で説明した動作を、１つまたは複数のコンピュータ−可読記憶デバイスに格納されまたは他のソースから受信されたデータに対してデータ処理装置により実施される動作として実装することができる。
【００９７】
「データ処理システム」「コンピューティングデバイス」「コンポーネント」または「データ処理装置」という用語は、例としてプログラム可能プロセッサ、コンピュータ、システム・オン・チップ、または以上のうち複数または組合せを含む、データを処理するための様々な装置、デバイス、およびマシンを包含する。当該装置は、特殊目的論理回路、例えば、ＦＰＧＡ（フィールドプログラム可能ゲート・アレイ）またはＡＳＩＣ（特殊用途向け集積回路）を含むことができる。当該装置はまた、ハードウェアに加えて、着目するコンピュータプログラムに対する実行環境を生成するコード、例えば、プロセッサファームウェア、プロトコル・スタック、データベース管理システム、オペレーティング・システム、クロス・プラットフォームランタイム環境、仮想マシン、またはそれらの１つまたは複数の組合せを構成するコードを含むことができる。当該装置および実行環境は、ウェブサービス、分散コンピューティングおよびグリッド・コンピューティングインフラのような様々な異なるコンピューティングモデルインフラを実現することができる。ダイレクト・アクションＡＰＩ１３５、コンテンツ・セレクタ・コンポーネント１２５、スレッド最適化コンポーネント１２０またはＮＬＰコンポーネント１１０および他のデータ処理システム１０５コンポーネントは、１つまたは複数のデータ処理装置、システム、コンピューティングデバイス、またはプロセッサを含むかまたは共有ことができる。
【００９８】
コンピュータプログラム（プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、スクリプト、またはコードとしても知られる）を、コンパイル型言語またはインタプリタ型言語、宣言型または手続型言語を含む任意の形態のプログラミング言語で書くことができ、スタンドアロンプログラムまたはモジュール、コンポーネント、サブルーチン、オブジェクト、またはコンピューティング環境で使用するのに適した他のユニットを含む任意の形態で展開することができる。コンピュータプログラムはイルシステム内のファイルに対応することができる。コンピュータプログラムを、他のプログラムまたはデータを保持するファイル部分（例えば、マークアップ言語ドキュメントに格納された１つまたは複数のスクリプト）に、着目するプログラム専用の単一のファイルに、または複数の協調ファイルに（例えば、１つまたは複数のモジュール、サブプログラム、またはコード部分を格納するファイル）格納することができる。コンピュータプログラムを、１つのコンピュータ上でまたは１つのサイトに配置されるかまたは複数のサイトにわたって分散され通信ネットワークにより相互接続された複数のコンピュータ上で実行されるように展開することができる。
【００９９】
本明細書で説明した当該プロセスおよび論理フローを、１つまたは複数のプログラム可能プロセッサが、１つまたは複数のコンピュータプログラム（例えば、データ処理システム１０５のコンポーネント）を実行して、入力データで動作し出力を生成することでアクションを実施することにより、実施することができる。当該プロセスおよび論理フローはまた、特殊目的論理回路、例えば、ＦＰＧＡ（フィールドプログラム可能ゲート・アレイ）またはＡＳＩＣ（特殊用途向け集積回路）により実施でき、装置をまた特殊目的論理回路、例えば、ＦＰＧＡ（フィールドプログラム可能ゲート・アレイ）またはＡＳＩＣ（特殊用途向け集積回路）として実装することができる。コンピュータプログラム命令およびデータを格納するのに適したデバイスは、例として半導体メモリデバイス、例えば、ＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュ・メモリデバイスを含むあらゆる形態の非揮発性メモリ、媒体およびメモリデバイス、磁気ディスク、例えば、内部ハードディスクまたは取外し可能ディスク、磁気光ディスク、およびＣＤＲＯＭおよびＤＶＤ−ＲＯＭディスクを含む。当該プロセッサおよび当該メモリを特殊目的論理回路で補完するかまたはそれに組み込むことができる。
【０１００】
本明細書で説明する主題を、コンピューティングシステムで実装することができるバックエンドコンポーネントを、例えば、データサーバとして含むか、またはミドルウェアコンポーネント、例えば、アプリケーションサーバを含むか、またはフロントエンドコンポーネント、例えば、ユーザがそれを通じて本明細書で説明した当該主題の実装と対話できるグラフィカルユーザインタフェースまたはウェブブラウザを有するクライアントコンピュータ、または１つまたは複数のかかるバックエンド、ミドルウェア、またはフロントエンドコンポーネントの組合せを含む。当該システムの当該コンポーネントはデジタルデータ通信、例えば、通信ネットワークの任意の形態または媒体により相互接続することができる。通信ネットワークの例は、ローカル・エリア・ネットワーク（「ＬＡＮ」）および広帯域ネットワーク（「ＷＡＮ」）、インターネットワーク（例えば、インターネット）、およびピア・ツー・ピアネットワーク（例えば、アドホックピア・ツー・ピアネットワーク）を含む。
【０１０１】
システム１００またはシステム５００のような当該コンピューティングシステムはクライアントおよびサーバを含むことができる。クライアントおよびサーバは一般に互いから離れており、一般に通信ネットワークを通じて対話する（例えば、ネットワーク１６５）。クライアントおよびサーバの関係は、当該各コンピュータで実行され互いにクライアントサーバ関係を有するコンピュータプログラムにより生ずる。幾つかの実装では、サーバはデータ（例えば、コンテンツ・アイテムを表すデータパケット）をクライアントコンピューティングデバイス（例えば、当該クライアントコンピューティングデバイスと対話するユーザにデータを表示し、そこからユーザ入力を受信する目的で）に送信する。当該クライアントコンピューティングデバイスで生成されたデータ（例えば、当該ユーザ対話の結果）は当該サーバで当該クライアントコンピューティングデバイスから受信されることができる（例えば、データ処理システム１０５によりコンピューティングデバイス１５０またはコンテンツ・プロバイダ・コンピューティング・デバイス１５５またはサービス・プロバイダ・コンピューティング・デバイス１６０から受信される）。
【０１０２】
動作を当該図面において特定の順序で説明したが、かかる動作を示した特定の順序でまたは逐次的な順序で実施する必要はなく、全ての図示した動作を実施する必要はない。本明細書で説明した動作を異なる順序で実施することができる。
【０１０３】
様々なシステムコンポーネントの分離は全ての実装における分離を要求しないが、当該説明したプログラムコンポーネントを単一のハードウェアまたはソフトウェア製品に含めることができる。例えば、ＮＬＰコンポーネント１１０、コンテンツ・セレクタ・コンポーネント１２５、またはスレッド最適化コンポーネント１２０は、単一のコンポーネント、アプリ、またはプログラム、または１つまたは複数の処理回路を有する論理デバイス、またはデータ処理システム１０５の１つまたは複数のサーバの一部であることができる。
【０１０４】
幾つかの例示的な実装を説明したので、以上は、例示的であり限定的ではなく、例として提示されていることは明らかである。特に、本明細書で提示した例の多くは方法の動作またはシステム要素の特定の組合せを含むが、これらの動作およびこれらの要素を他の方法で組み合わせて同一の目的を実現してもよい。１実装と関連して説明した動作、要素および特徴は他の実装または実装における類似の役割から排除されるものではない。
【０１０５】
本明細書で使用したフレーズおよび用語は説明の目的のためであり限定として解釈されるべきではない。「〜を含む」、「〜を備える」、「〜を有する」、「〜を包含する」、「〜が関与する」、「〜により特徴付けられる」、「〜の点で特徴付けられる」、およびその本明細書における変形の使用、は、その後に列挙された項目、その均等物、および追加の項目、ならびに排他的にその後に列挙された項目からなる代替的な実装を含むことを意味する。１実装では、本明細書で説明するシステムおよび方法は当該説明した要素、動作、またはコンポーネントの１つ、複数の各組合せ、または全てから成る。
【０１０６】
本明細書で単一形で参照されるシステムおよび方法の実装または要素または動作に対する任意の言及は複数のこれらの要素を含む実装を含んでもよく、本明細書の任意の実装または要素または動作への複数形の任意の参照は単一の要素のみを含む実装を含んでもよい。単一形または複数形における参照は本明細書で開示したシステムまたは方法、それらのコンポーネント、動作、または要素を単一のまたは複数の構成に限定しようとするものではない。任意の情報、動作または要素に基づく任意の動作または要素への参照は当該動作または要素は任意の情報、動作、または要素に少なくとも部分的に基づく実装を含んでもよい。
【０１０７】
本明細書で開示した任意の実装を他の任意の実装または実施形態と組み合わせてもよく「実装」、「幾つかの実装」、「１実装」等への言及は必ずしも相互に排他的ではなく、当該実装と関連して説明した特定の特徴、構造、または特性が少なくとも１つの実装または実施形態に含まれてもよいを示すことを意図している。本明細書で使用した用語は必ずしも全て同一の実装を参照しない。任意の実装を、他の任意の実装と、包含的にまたは排他的に、本明細書で開示した態様および実装と一貫する任意の方式で結合してもよい。
【０１０８】
「または」に対する言及は、「または」を用いて説明された任意の用語が当該説明した用語のうち１つ、複数、および全ての何れかを示しうるように、包含的として解釈してもよい。例えば、「‘Ａ’および‘Ｂ’のうち少なくとも１つ」への言及は‘Ａ’のみ、‘Ｂ’のみ、ならびに‘Ａ’および‘Ｂ’の両方を含むことができる。「〜を備える」または他のオープンな用語と関連して使用されるかかる言及は追加の項目を含むことができる。
【０１０９】
当該図面、詳細な説明または任意の請求項における技術的特徴に参照記号が続く場合、当該参照記号は当該図面、詳細な説明、および特許請求の範囲の明瞭性を高めるために含まれている。したがって、当該参照記号もそれがないことも任意のクレーム要素の範囲に対する限定効果を有さない。
【０１１０】
本明細書で説明するシステムおよび方法をその特徴から逸脱せずに他の特定の形態で具体化してもよい。例えば、データ処理システム１０５のコンポーネントは別々のコンポーネントである必要はなく、或るコンポーネントは他のコンポーネントを含むことができる。１つまたは複数のコンピューティングデバイス（例えば、サーバ）のプロセッサはデータ処理システム１０５のコンポーネントを含むかまたは実行することができる。以上の実装は説明したシステムおよび方法の限定ではなく例示的なものである。本明細書で説明するシステムおよび方法の範囲はしたがって以上の説明ではなく添付の特許請求の範囲により示され、添付の特許請求の範囲の均等物の意味と範囲に入る変更がそこに包含される。
【符号の説明】
【０１１１】
１０５  データ処理システム
１１０  自然言語プロセッサ・コンポーネント
１１５  インタフェース
１２０  スレッド最適化コンポーネント
１２５  コンテンツ・セレクタ・コンポーネント
１３０  オーディオ信号生成器コンポーネント
１３５  ダイレクト・アクションＡＰＩ
１４０  セッション・ハンドラ
１４５  データ・リポジトリ
１４６  パラメータ
１４７  ポリシ
１４８  コンテンツ・データ
１４９  テンプレート
１５０  クライアント・コンピューティング・デバイス
１５１  センサ
１５２  トランスデューサ
１５３  オーディオ・ドライバ
１５４  スピーカ
１５５  コンテンツ・プロバイダ・デバイス
１６０  サービス・プロバイダ・デバイス
１６１  サービス・プロバイダの自然言語プロセッサ・コンポーネント
１６２  サービス・プロバイダ・インタフェース
１６５  ネットワーク
【図１】
2020198630.tif 000003
【図２】
2020198630.tif 000004
【図３】
2020198630.tif 000005
【図４】
2020198630.tif 000006
【図５】
2020198630.tif 000007
【外国語明細書】
2020198630000001.pdf