(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-19
(45)【発行日】2024-01-29
(54)【発明の名称】異種エンドポイントへの動的な通信ルーティング
(51)【国際特許分類】
H04L 65/1089 20220101AFI20240122BHJP
H04L 51/52 20220101ALI20240122BHJP
H04L 67/141 20220101ALI20240122BHJP
H04L 51/02 20220101ALI20240122BHJP
【FI】
H04L65/1089
H04L51/52
H04L67/141
H04L51/02
(21)【出願番号】P 2022524978
(86)(22)【出願日】2020-10-28
(86)【国際出願番号】 US2020057746
(87)【国際公開番号】W WO2021086970
(87)【国際公開日】2021-05-06
【審査請求日】2022-05-17
(32)【優先日】2019-10-28
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】511094772
【氏名又は名称】ライブパーソン, インコーポレイテッド
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(74)【代理人】
【識別番号】100108855
【氏名又は名称】蔵田 昌俊
(74)【代理人】
【識別番号】100179062
【氏名又は名称】井上 正
(74)【代理人】
【識別番号】100199565
【氏名又は名称】飯野 茂
(74)【代理人】
【識別番号】100212705
【氏名又は名称】矢頭 尚之
(74)【代理人】
【識別番号】100219542
【氏名又は名称】大宅 郁治
(74)【代理人】
【識別番号】100153051
【氏名又は名称】河野 直樹
(74)【代理人】
【識別番号】100162570
【氏名又は名称】金子 早苗
(72)【発明者】
【氏名】ソルター、ジェフリー
(72)【発明者】
【氏名】ロカッシオ、ロバート
【審査官】大石 博見
(56)【参考文献】
【文献】米国特許出願公開第2013/0297625(US,A1)
【文献】特開2005-078129(JP,A)
【文献】米国特許出願公開第2007/0250783(US,A1)
【文献】米国特許出願公開第2019/0166540(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 65/1089
H04L 51/52
H04L 67/141
H04L 51/02
(57)【特許請求の範囲】
【請求項1】
コンピュータ実装方法であって、
質問に関連付けられた1つまたは複数の応答を受信すること、ここにおいて、前記応答は、1つまたは複数のクライアントデバイスから受信される、と、
ユーザのデバイスに前記質問と前記
応答のうちの少なくとも1つとを公開すること、ここにおいて、前記質問および前記少なくとも1つの
応答は、前記ユーザの1つまたは複数の特性に基づいて、前記ユーザのために選択され、前記少なくとも1つの
応答は、前記クライアントデバイスのうちの少なくとも1つに関連付けられている、と、
前記ユーザ
の前記デバイスからフォローアップ要求を受信すること、ここにおいて、前記フォローアップ要求は、前記少なくとも1つの
応答に関する更なる情報を求める、と、
前記フォローアップ要求に基づいて、前記ユーザ
の前記デバイスと前記少なくとも1つのクライアントデバイスとの間の通信セッションを
確立することと、
を備える方法。
【請求項2】
前記質問および前記応答のうちの少なくとも1つは、前記クライアントデバイスの同じものから受信される、請求項1に記載の方法。
【請求項3】
前記質問に関する入力を受信することをさらに備え、前記入力は、前記クライアントデバイスのうちの1つから受信される、請求項1に記載の方法。
【請求項4】
1つまたは複数の質問のメニューが、前記クライアントデバイスに提示され、前記入力は、前記メニューからの選択を含む、請求項3に記載の方法。
【請求項5】
前記質問は、1つまたは複数の所定の基準にさらに基づいて選択される、請求項1に記載の方法。
【請求項6】
前記質問および前記少なくとも1つの
応答を公開することは、グラフィカルインターフェースを生成することを含む、請求項1に記載の方法。
【請求項7】
前記グラフィカルインターフェースは、前記ユーザ
の前記デバイスとボットとの間の通信セッションに最初に関連付けられる、請求項6に記載の方法。
【請求項8】
前記ユーザ
の前記デバイスと前記少なくとも1つのクライアントデバイスとの間の前記通信セッションを促進することは、前記ボットとの前記通信セッションから前記少なくとも1つのクライアントデバイスとの前記通信セッションに切り替えることを含む、請求項
7に記載の方法。
【請求項9】
前記少なくとも1つのクライアントデバイスとの前記通信セッションが閉じられたときに、前記ボットとの前記通信セッションに戻るように切り替えることをさらに備える、請求項8に記載の方法。
【請求項10】
前記フォローアップ要求を受信することは、フォローアップオプションのメニューからの選択を含む、請求項1に記載の方法。
【請求項11】
前記ユーザ
の前記デバイスと前記少なくとも1つのクライアントデバイスとの間の前記通信セッションの時間を追跡するタイマを提供することをさらに備える、請求項1に記載の方法。
【請求項12】
前記追跡された時間に基づいて、支払うべき金額を決定することをさらに備える、請求項
11に記載の方法。
【請求項13】
前記ユーザ
の前記デバイスから格付けを受信することをさらに備え、ここにおいて、前記格付けは、前記少なくとも1つのクライアントデバイスに関連付けられる、請求項1に記載の方法。
【請求項14】
前記通信セッションは、前記少なくとも1つのクライアントデバイスに関連付けられた一種の情報が示されないように構成される、請求項1に記載の方法。
【請求項15】
履歴データに関連して前記通信セッションに関する情報を記憶することをさらに備える、請求項1に記載の方法。
【請求項16】
前記履歴データに基づいて、1つまたは複数の後続の通信セッションを開始することをさらに備える、請求項
15に記載の方法。
【請求項17】
システムであって、
通信ネットワーク上で通信する通信インターフェース、ここにおいて、前記通信インターフェースは、
質問に関連付けられた1つまたは複数の応答を受信し、ここにおいて、前記応答は、1つまたは複数のクライアントデバイスから受信され、
ユーザのデバイスに前記質問と前記
応答のうちの少なくとも1つとを公開し、ここにおいて、前記質問および前記少なくとも1つの
応答は、前記ユーザの1つまたは複数の特性に基づいて、前記ユーザのために選択され、前記少なくとも1つの
応答は、前記クライアントデバイスのうちの少なくとも1つに関連付けられており、
前記ユーザ
の前記デバイスからフォローアップ要求を受信する、ここにおいて、前記フォローアップ要求は、前記少なくとも1つの
応答に関する更なる情報を求める、と、
前記フォローアップ要求に基づいて、前記ユーザ
の前記デバイスと前記少なくとも1つのクライアントデバイスとの間の通信セッションを
確立するために、メモリに記憶された命令を実行するプロセッサと、
を備えるシステム。
【請求項18】
質問に関連付けられた1つまたは複数の応答を受信すること、ここにおいて、前記応答は、1つまたは複数のクライアントデバイスから受信される、と、
ユーザのデバイスに前記質問と前記
応答のうちの少なくとも1つとを公開すること、ここにおいて、前記質問および前記少なくとも1つの
応答は、前記ユーザの1つまたは複数の特性に基づいて、前記ユーザのために選択され、前記少なくとも1つの
応答は、前記クライアントデバイスのうちの少なくとも1つに関連付けられている、と、
前記ユーザ
の前記デバイスからフォローアップ要求を受信すること、ここにおいて、前記フォローアップ要求は、前記少なくとも1つの
応答に関する更なる情報を求める、と、
前記フォローアップ要求に基づいて、前記ユーザ
の前記デバイスと前記少なくとも1つのクライアントデバイスとの間の通信セッションを
確立することと、
を備える方法を実行するために、プロセッサによって実行可能なプログラムがその上に具現化された非一時的なコンピュータ可読記憶媒体。
【発明の詳細な説明】
【関連出願の相互参照】
【0001】
[0001]本特許出願は、2019年10月28日に出願された米国仮特許出願第62/926,773号の優先権の利益を主張するものであり、その開示は、参照により本明細書に組み込まれている。
【技術分野】
【0002】
[0002]本開示は、一般に、通信のルーティングを促進することに関する。より具体的には、マルチチャネル能力で構成された通信セッション中に、ある特定のインテントを有するメッセージをボットとユーザデバイスとの間で動的にルーティングするための技法が提供される。
【発明の概要】
【0003】
[0003]実施形態という用語および同様の用語は、本開示および以下の特許請求の範囲の主題の全てを広く指すことが意図される。これらの用語を含む記述は、本明細書で説明される主題を限定するものではなく、あるいは以下の特許請求の範囲の意味または範囲を限定するものではないことが理解されるべきである。本明細書でカバーされる本開示の実施形態は、この発明の概要ではなく、以下の特許請求の範囲によって定義される。この発明の概要は、本開示の様々な態様の大まかな概要であり、以下の発明を実施するための形態のセクションにおいてさらに説明される概念のうちのいくつかを紹介する。この発明の概要は、請求項に記載の主題の重要なまたは本質的な特徴を識別することを意図したものではなく、請求項に記載の主題の範囲を決定するために単独で使用されることを意図したものでもない。主題は、本開示の明細書全体の適切な部分、任意または全ての図面、および各請求項を参照することによって理解されるべきである。
【0004】
[0004]本開示のある特定の実施形態は、コンピュータ実装方法を含む。方法は、第1のユーザからメッセージを受信することを含み得る。メッセージは、質問を含む。方法は、メッセージに対する応答を受信することをさらに含み得る。応答は、質問に対する回答を含む。方法は、第2のユーザのデバイスに質問および回答を公開すること(publishing)をさらに含み得る。質問および回答は、第2のユーザの1つまたは複数の特性に基づいて、第2のユーザのために選択される。方法は、第2のユーザからフォローアップ要求を受信することをさらに含み得る。フォローアップ要求は、回答に関する更なる情報を求める。方法は、第1のユーザと第2のユーザとの間の通信セッションを促進することをさらに含み得る。第1のユーザは、第2のユーザに更なる情報を提供する。
【0005】
[0005]本開示のある特定の実施形態は、システムを含む。システムは、1つまたは複数のデータプロセッサと、命令を含む非一時的なコンピュータ可読記憶媒体とを含み得、命令は、1つまたは複数のデータプロセッサ上で実行されると、1つまたは複数のデータプロセッサに、上記および本明細書で説明される方法を実行させる。
【0006】
[0006]本開示のある特定の実施形態は、データ処理装置に、上記および本明細書で説明される方法を実行させるように構成された命令を含む、非一時的な機械可読記憶媒体において有形に具現化されたコンピュータプログラム製品を含む。
【0007】
[0007]本開示は、添付の図面と併せて説明される。
【図面の簡単な説明】
【0008】
【
図1】[0008]
図1は、ネットワークインタラクションシステムの一実施形態のブロック図を示す。
【
図2】[0009]
図2は、ネットワークインタラクションシステムの別の実施形態のブロック図を示す。
【
図3A】[0010]
図3Aは、接続管理システムを含むネットワークインタラクションシステムの他の実施形態のブロック図を示す。
【
図3B】
図3Bは、接続管理システムを含むネットワークインタラクションシステムの他の実施形態のブロック図を示す。
【
図3C】
図3Cは、接続管理システムを含むネットワークインタラクションシステムの他の実施形態のブロック図を示す。
【
図4】[0011]
図4は、接続コンポーネントの動作のプロトコルスタックマッピングを表したものを示す。
【
図5】[0012]
図5は、一実施形態によるマルチデバイス通信交換システムを表す。
【
図6】[0013]
図6は、接続管理システムの一実施形態のブロック図を示す。
【
図7】[0014]
図7は、通信セッション中にボットとユーザデバイスとの間で動的に切り替えるためのネットワーク環境のブロック図を示す。
【
図8】[0015]
図8は、マルチプルチャネル環境にわたってエンドポイントを動的に選択するためのネットワーク環境を表すブロック図を示す。
【
図9】[0016]
図9は、機械学習技法を使用してエンドポイント選択を向上させるためのネットワーク環境を表すブロック図を示す。
【
図10】[0017]
図10は、通信セッション中にボットとユーザデバイスとの間でメッセージをルーティングするための例となるプロセスを示す。
【
図11A】[0018]
図11Aは、通信セッション中にボットとユーザデバイスとの間でインタラクションを切り替えるために使用されるグラフィカルユーザインターフェースのスクリーンショットである。
【
図11B】
図11Bは、通信セッション中にボットとユーザデバイスとの間でインタラクションを切り替えるために使用されるグラフィカルユーザインターフェースのスクリーンショットである。
【
図11C】
図11Cは、通信セッション中にボットとユーザデバイスとの間でインタラクションを切り替えるために使用されるグラフィカルユーザインターフェースのスクリーンショットである。
【
図11D】
図11Dは、通信セッション中にボットとユーザデバイスとの間でインタラクションを切り替えるために使用されるグラフィカルユーザインターフェースのスクリーンショットである。
【
図11E】
図11Eは、通信セッション中にボットとユーザデバイスとの間でインタラクションを切り替えるために使用されるグラフィカルユーザインターフェースのスクリーンショットである。
【
図11F】
図11Fは、通信セッション中にボットとユーザデバイスとの間でインタラクションを切り替えるために使用されるグラフィカルユーザインターフェースのスクリーンショットである。
【
図11G】
図11Gは、通信セッション中にボットとユーザデバイスとの間でインタラクションを切り替えるために使用されるグラフィカルユーザインターフェースのスクリーンショットである。
【
図11H】
図11Hは、通信セッション中にボットとユーザデバイスとの間でインタラクションを切り替えるために使用されるグラフィカルユーザインターフェースのスクリーンショットである。
【
図11I】
図11Iは、通信セッション中にボットとユーザデバイスとの間でインタラクションを切り替えるために使用されるグラフィカルユーザインターフェースのスクリーンショットである。
【
図11J】
図11Jは、通信セッション中にボットとユーザデバイスとの間でインタラクションを切り替えるために使用されるグラフィカルユーザインターフェースのスクリーンショットである。
【
図11K】
図11Kは、通信セッション中にボットとユーザデバイスとの間でインタラクションを切り替えるために使用されるグラフィカルユーザインターフェースのスクリーンショットである。
【
図11L】
図11Lは、通信セッション中にボットとユーザデバイスとの間でインタラクションを切り替えるために使用されるグラフィカルユーザインターフェースのスクリーンショットである。
【
図11M】
図11Mは、通信セッション中にボットとユーザデバイスとの間でインタラクションを切り替えるために使用されるグラフィカルユーザインターフェースのスクリーンショットである。
【
図11N】
図11Nは、通信セッション中にボットとユーザデバイスとの間でインタラクションを切り替えるために使用されるグラフィカルユーザインターフェースのスクリーンショットである。
【
図12A】[0019]
図12Aは、通信セッション中にボット間を切り替えるために使用されるグラフィカルユーザインターフェースのスクリーンショットである。
【
図12B】
図12Bは、通信セッション中にボット間を切り替えるために使用されるグラフィカルユーザインターフェースのスクリーンショットである。
【
図12C】
図12Cは、通信セッション中にボット間を切り替えるために使用されるグラフィカルユーザインターフェースのスクリーンショットである。
【
図12D】
図12Dは、通信セッション中にボット間を切り替えるために使用されるグラフィカルユーザインターフェースのスクリーンショットである。
【
図12E】
図12Eは、通信セッション中にボット間を切り替えるために使用されるグラフィカルユーザインターフェースのスクリーンショットである。
【
図12F】
図12Fは、通信セッション中にボット間を切り替えるために使用されるグラフィカルユーザインターフェースのスクリーンショットである。
【
図12G】
図12Gは、通信セッション中にボット間を切り替えるために使用されるグラフィカルユーザインターフェースのスクリーンショットである。
【
図12H】
図12Hは、通信セッション中にボット間を切り替えるために使用されるグラフィカルユーザインターフェースのスクリーンショットである。
【
図12I】
図12Iは、通信セッション中にボット間を切り替えるために使用されるグラフィカルユーザインターフェースのスクリーンショットである。
【
図12J】
図12Jは、通信セッション中にボット間を切り替えるために使用されるグラフィカルユーザインターフェースのスクリーンショットである。
【
図12K】
図12Kは、通信セッション中にボット間を切り替えるために使用されるグラフィカルユーザインターフェースのスクリーンショットである。
【
図12L】
図12Lは、通信セッション中にボット間を切り替えるために使用されるグラフィカルユーザインターフェースのスクリーンショットである。
【
図12M】
図12Mは、通信セッション中にボット間を切り替えるために使用されるグラフィカルユーザインターフェースのスクリーンショットである。
【
図12N】
図12Nは、通信セッション中にボット間を切り替えるために使用されるグラフィカルユーザインターフェースのスクリーンショットである。
【
図12O】
図12Oは、通信セッション中にボット間を切り替えるために使用されるグラフィカルユーザインターフェースのスクリーンショットである。
【
図12P】
図12Pは、通信セッション中にボット間を切り替えるために使用されるグラフィカルユーザインターフェースのスクリーンショットである。
【
図12Q】
図12Qは、通信セッション中にボット間を切り替えるために使用されるグラフィカルユーザインターフェースのスクリーンショットである。
【
図12R】
図12Rは、通信セッション中にボット間を切り替えるために使用されるグラフィカルユーザインターフェースのスクリーンショットである。
【発明を実施するための形態】
【0009】
[0020]添付の図面では、同様のコンポーネントおよび/または特徴は、同じ参照ラベルを有し得る。さらに、同じタイプの様々なコンポーネントは、参照ラベルの後に、ダッシュと、同様のコンポーネント同士を区別する第2のラベルとを続けることによって区別され得る。本明細書において第1の参照ラベルのみが使用される場合、その説明は、第2の参照ラベルにかかわらず、同じ第1の参照ラベルを有する同様のコンポーネントのうちの任意の1つに適用可能である。
【0010】
[0021]次に続く説明は、(1つまたは複数の)実施形態の好ましい例のみを提供し、本開示の範囲、適用性、または構成を限定するようには意図されない。むしろ、(1つまたは複数の)実施形態の好ましい例の次に続く説明は、実施形態の好ましい例を実施することを可能にする説明を当業者に提供する。様々な変更が、添付の特許請求の範囲に記載されるような趣旨および範囲から逸脱することなく、要素の配置および機能において行われ得ることが理解される。
【0011】
[0022]
図1は、本明細書で説明されるある特定の実施形態および機能を実装およびサポートする、ネットワークインタラクションシステム100の一実施形態のブロック図を示す。ある特定の実施形態は、ネットワークデバイス105(これは、ユーザ110によって操作され得る)と、端末デバイス115(これは、エージェント120によって操作され得る)との間の接続チャネルを確立することに関する。ある特定の実施形態では、ネットワークインタラクションシステム100は、クライアント125に関連付けられたクライアントデバイス130を含み得る。
【0012】
[0023]ある特定の実施形態では、ユーザ110は、ウェブサイトを閲覧している個人、またはリモートサーバ140によって提供されるオンラインサービスにアクセスしている個人であり得る。クライアント125は、ウェブサイトまたはオンラインサービスを提供、運用(operates)、または運営する(runs)エンティティであり得るか、あるいは本明細書で説明されるように、クライアント125に利用可能なタスクを実行するために、そのようなエンティティによって雇用またはアサインされた個人であり得る。エージェント120は、ウェブサイトまたはオンラインサービスに関するサポートまたは情報をユーザ110に提供することをタスクとして課されたサポートエージェント等の個人であり得る。多数のエージェントのうち、エージェントのサブセットが、特定のクライアント125に対してサポートまたは情報を提供するのに適切であり得る。エージェント120は、クライアント125と提携していても、提携していなくてもよい。各エージェントは、1つまたは複数のクライアント125に関連付けられ得る。いくつかの非限定的な例では、ユーザ110は、パーソナルコンピューティングデバイスからオンラインストアでショッピングする個人であり得、クライアント125は、製品をオンラインで販売する企業であり得、エージェント120は、この企業によって雇用された担当者であり得る。様々な実施形態では、ユーザ110、クライアント125、およびエージェント120は、他の個人またはエンティティであり得る。
【0013】
[0024]
図1が単一のネットワークデバイス105、端末デバイス115、およびクライアントデバイス130のみを示している一方で、インタラクションシステム100は、複数または多数(例えば、数十、数百、または数千)もの、これらのタイプのデバイスのうちの1つまたは複数の各々を含み得る。同様に、
図1が単一のユーザ110、エージェント120およびクライアント125のみを示している一方で、インタラクションシステム100は、複数または多数もの、このようなエンティティのうちの1つまたは複数の各々を含み得る。したがって、所与のネットワークデバイスと通信するためにどの端末デバイスが選択されるべきかを決定する必要があり得る。さらに複雑な問題として、リモートサーバ140もまた、選択ネットワークデバイス通信(select network-device communications)を受信しおよびそれに応答するように構成され得る。
【0014】
[0025]接続管理システム150は、通信の戦略的ルーティングを促進し得る。通信は、(例えば、タイプ入力または音声入力等の、エンティティからの入力に基づいて定義された)コンテンツを有するメッセージを含み得る。通信はまた、送信デバイスに関するデータ(例えば、IPアドレス、アカウント識別子、デバイスタイプ、および/またはオペレーティングシステム)、宛先アドレス、クライアントの識別子、ウェブページまたはウェブページ要素(例えば、通信が生成されたときに訪問されているか、または別の方法で通信に関連付けられているウェブページまたはウェブページ要素)の識別子またはオンライン履歴データ、時間(例えば、時刻および/または日付)、および/または宛先アドレス等の、追加のデータを含み得る。他の情報も通信に含められ得る。いくつかの事例では、接続管理システム150は、通信全体を別のデバイスにルーティングする。いくつかの事例では、接続管理システム150は、通信を修正(modifies)するか、または(例えば、当初の通信に基づいて)新しい通信を生成する。新しいまたは修正された通信は、メッセージ(またはその処理されたバージョン)、(例えば、送信デバイス、ウェブページまたはオンライン履歴、および/または時間に関する)追加のデータのうちの少なくともいくつか(または全て)、および/または接続管理システム150によって識別された他のデータ(例えば、特定のアカウント識別子またはデバイスに関連付けられたアカウントデータ)を含み得る。新しいまたは修正された通信は、他の情報も含み得る。
【0015】
[0026]戦略的ルーティング促進の一部は、ネットワークデバイス105と1つまたは複数の端末デバイス115との間の1つまたは複数の接続チャネルを確立、更新、および使用することを含み得る。例えば、ネットワークデバイス105から通信を受信すると、接続管理システム150は、まず(もしあれば)どのクライアントに通信が対応するかを推定し得る。クライアントを識別すると、接続管理システム150は、ネットワークデバイス105との通信のためにクライアントに関連付けられた端末デバイス115を識別し得る。いくつかの事例では、識別は、複数のエージェント(または、エキスパートもしくは代行者(delegates))の各々のプロファイルを評価することを含み得、複数のエージェントにおける各エージェント(例えば、エージェント120)は、端末デバイス(例えば、端末デバイス115)に関連付けられている。評価は、ネットワークデバイスのメッセージにおけるコンテンツに関連し得る。端末デバイス115の識別は、例えば、2010年3月17日に出願された米国特許出願第12/725,799号に記載された技法を含み得、これは、あらゆる目的のために、その全体が参照により本明細書に組み込まれている。
【0016】
[0027]いくつかの事例では、接続管理システム150は、ネットワークデバイス105と、クライアント(またはリモートサーバ140)に関連付けられた端末デバイスとの間に何らかの接続チャネルが確立されているかどうか、および確立されている場合には、その通信を含む一連の通信を交換するために、そのようなチャネルが使用されるべきかどうかを決定し得る。
【0017】
[0028]ネットワークデバイス105と通信するための端末デバイス115を選択すると、接続管理システム150は、ネットワークデバイス105と端末デバイス115との間の接続チャネルを確立し得る。いくつかの事例では、接続管理システム150は、選択された端末デバイス115にメッセージを送信し得る。メッセージは、ネットワークデバイス105と通信するための提案された割当ての受諾を要求し得るか、またはそのような割当てが生成されたことを識別し得る。メッセージは、ネットワークデバイス105に関する情報(例えば、IPアドレス、デバイスタイプ、および/またはオペレーティングシステム)、関連付けられたユーザ110に関する情報(例えば、使用言語(language spoken)、クライアントとインタラクトした持続時間、スキルレベル、センチメント、および/またはトピック選好)、受信された通信、ネットワークデバイス105への通信を生成および送信するためのコード(例えば、クリック可能なハイパーリンク)、および/またはネットワークデバイス105への通信を生成および送信するための命令を含み得る。
【0018】
[0029]一事例では、ネットワークデバイス105と端末デバイス115との間の通信は、接続管理システム150を通じてルーティングされ得る。このような構成は、接続管理システム150が、通信交換を監視することと、いずれかのデバイスの非応答性または延長されたレイテンシ等の(例えば、規則に基づいて定義されるような)問題を検出することと、を可能にし得る。さらに、このような構成は、通信の選択的または完全な記憶を促進し得、これは、後に、例えば、通信交換の品質を評価するために、および/または、特定の通信後ターゲット(post-communication targets)を増進する(promote)ようにルーティング規則を更新または生成するための学習をサポートするために使用され得る。
【0019】
[0030]いくつかの実施形態では、接続管理システム150は、リアルタイムで通信交換を監視し、ライブ通信に基づいて、自動化されたアクション(例えば、規則ベースのアクション)を実行し得る。例えば、接続管理システム150が、通信が特定のアイテム(例えば、製品)に関連すると決定すると、接続管理システム150は、アイテムに関する追加の情報(例えば、入手可能なアイテムの数量、アイテムに関連するサポート書類(support documents)へのリンク、またはアイテムもしくは類似のアイテムに関する他の情報)を含む追加のメッセージを端末デバイス115に自動的に送信し得る。
【0020】
[0031]一事例では、指定された端末デバイス115は、接続管理システム150を通じて通信を中継することなく、ネットワークデバイス105と通信し得る。デバイス105、115の一方または両方が、通信の監視および/またはデータ記憶を促進するために、特定の通信メトリックまたはコンテンツを接続管理システム150に報告してもよい(または報告しなくてもよい)。
【0021】
[0032]上述されたように、接続管理システム150は、選択通信をリモートサーバ140にルーティングし得る。リモートサーバ140は、所定の方法で情報を提供するように構成され得る。例えば、リモートサーバ140は、通信に応答して送信するために、定義された1つまたは複数のテキストパッセージ、音声記録(voice recording)、および/またはファイルにアクセスし得る。リモートサーバ140は、例えば、受信された通信の解析(例えば、意味解析またはマッピング解析)に基づいて、特定のテキストパッセージ、記録、またはファイルを選択し得る。
【0022】
[0033]接続管理システム150において実行されるルーティングおよび/または他の決定または処理は、1つまたは複数のクライアントデバイス130によって少なくとも部分的に定義されるかまたは提供されるデータおよび/または規則に基づいて実行され得る。例えば、クライアントデバイス130は、エージェントの優先順位付け、端末デバイスのタイプ、および/または、トピック/スキルマッチングを識別する通信を送信し得る。別の例として、クライアントデバイス130は、ルーティング決定に潜在的に影響を及ぼす様々な変数(例えば、言語互換性、予測応答時間、デバイスタイプおよび能力、ならびに/または端末デバイスの負荷均衡化)に適用するための1つまたは複数の重みを識別し得る。どの端末デバイスおよび/またはエージェントがクライアントに関連付けられるべきかは、動的であり得ることが理解されよう。クライアントデバイス130および/または端末デバイス115からの通信は、所与の端末デバイスおよび/またはエージェントがクライアントに関連付けられたものとして追加または削除されるべきであることを示す情報を提供し得る。例えば、クライアントデバイス130は、IPアドレスと、そのアドレスを有する端末デバイスが、クライアント関連の端末デバイスを識別するリストに追加されるべきか、またはリストから削除されるべきかに関するインジケーションと、を有する通信を送信し得る。
【0023】
[0034]各通信(例えば、デバイス間、デバイスと接続管理システム150との間、リモートサーバ140と接続管理システム150との間、またはリモートサーバ140とデバイスとの間)は、1つまたは複数のネットワーク170上で行われ得る。オープンまたはクローズドネットワークの任意の組合せが、1つまたは複数のネットワーク170に含まれ得る。好適なネットワークの例は、インターネット、パーソナルエリアネットワーク、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、またはワイヤレスローカルエリアネットワーク(WLAN)を含む。他のネットワークも同様に好適であり得る。1つまたは複数のネットワーク170は、イントラネット、エクストラネット、またはこれらの組合せ内に完全に組み込まれ得るか、またはそれらを含み得る。いくつかの事例では、1つまたは複数のネットワーク170におけるネットワークは、Bluetooth(登録商標)またはBluetooth Low Energyチャネル等の、短距離通信チャネルを含む。一実施形態では、2つ以上のシステムおよび/またはデバイス間の通信は、セキュアソケットレイヤ(SSL)またはトランスポートレイヤセキュリティ(TLS)等の、セキュア通信プロトコルによって達成され得る。加えて、データおよび/またはトランザクションの詳細は、限定はしないが、データ暗号化標準(DES)、トリプルDES、Rivest-Shamir-Adleman暗号(RSA)、Blowfish暗号、Advanced Encryption Standard(AES)、CAST-128、CAST-256、無相関化高速暗号(DFC:Decorrelated Fast Cipher)、Tiny Encryption Algorithm(TEA)、eXtended TEA(XTEA)、Corrected Block TEA(XXTEA)、および/またはRC5等のような、任意の便利な、既知の、または将来開発される方法に基づいて、暗号化され得る。
【0024】
[0035]ネットワークデバイス105、端末デバイス115、および/またはクライアントデバイス130は、例えば、ポータブル電子デバイス(例えば、スマートフォン、タブレット、ラップトップコンピュータ、またはスマートウェアラブルデバイス)、または非ポータブル電子デバイス(例えば、1つまたは複数のデスクトップコンピュータ、スマート家電、サーバ、および/またはプロセッサ)を含み得る。接続管理システム150は、ネットワークデバイス、端末デバイス、およびクライアントデバイスとは別個に収容され得るか、または(例えば、デバイス上でのアプリケーションのインストールを介して)1つまたは複数のそのようなデバイスの一部であり得る。リモートサーバ140は、各デバイスおよび接続管理システム150とは別個に収容され得、および/または、別のデバイスまたはシステムの一部であり得る。
図1における各デバイス、サーバ、およびシステムが、単一のデバイスとして示されている一方で、代わりに複数のデバイスが使用され得ることが理解されよう。例えば、ネットワークデバイスのセットが、単一のユーザから様々な通信を送信するために使用され得、またはリモートサーバ140が、サーバスタックを含み得る。
【0025】
[0036]ソフトウェアエージェントまたはアプリケーションが、図示されたデバイス、システム、またはサーバ上にインストールされ得、および/またはその上で実行可能であり得る。一事例では、ソフトウェアエージェントまたはアプリケーションは、様々な図示された要素が相補的な形で動作し得るように構成される。例えば、デバイス上のソフトウェアエージェントは、デバイス使用に関するデータを収集し、別個の接続管理システムに送信するように構成され得、別個の接続管理システム上のソフトウェアアプリケーションが、このデータを受信および処理するように構成され得る。
【0026】
[0037]
図2は、ネットワークインタラクションシステム200の別の実施形態のブロック図を示す。一般に、
図2は、ネットワークデバイス205が、1つまたは複数の端末デバイス215と通信することを可能にするように構成および配置された様々なコンポーネントを例示する。図示された事例は、3つのローカルエリアネットワーク235に含まれる9個の端末デバイス215を含む。
【0027】
[0038]いくつかの事例では、ネットワークデバイス205からの通信は、どの端末デバイスが通信を受信すべきかを少なくとも部分的にまたは完全に示す宛先データ(例えば、宛先IPアドレス)を含む。ネットワークインタラクションシステム200は、宛先データを処理し、適切なルーティングを促進し得る、1つまたは複数のインターネットワーク接続コンポーネント240および/または1つまたは複数のイントラネットワーク接続コンポーネント255を含み得る。
【0028】
[0039]各インターネットワーク接続コンポーネント245は、複数のネットワーク235に接続され得、複数のネットワークカードをインストールされ得る(例えば、各カードは異なるネットワークに接続される)。例えば、インターネットワーク接続コンポーネント245は、広域ネットワーク270(例えば、インターネット)および1つまたは複数のローカルエリアネットワーク235に接続され得る。図示された事例では、通信がネットワークデバイス205から端末デバイスのいずれかに送信されるためには、図示されたシステムでは、通信は複数のインターネットワーク接続コンポーネント245によって処理されなければならない。
【0029】
[0040]インターネットワーク接続コンポーネント245が通信(または通信に対応するパケットのセット)を受信すると、インターネットワーク接続コンポーネント245は、この通信を宛先に関連付けられたネットワークに渡すルートの少なくとも一部を決定し得る。ルートは、例えば、(例えば、ルータにおいて記憶された)ルーティングテーブルを使用して決定され得、これは、事前に定義されたか、(例えば、別のルータからかまたは別のデバイスからの)到来するメッセージに基づいて生成されたか、または学習された1つまたは複数のルートを含み得る。
【0030】
[0041]インターネットワーク接続コンポーネント245の例は、ルータ260およびゲートウェイ265を含む。インターネットワーク接続コンポーネント245(例えば、ゲートウェイ265)は、ネットワークシステムまたはプロトコル間で変換するように構成され得る。例えば、ゲートウェイ265は、伝送制御プロトコル/インターネットプロトコル(TCP/IP)デバイスと、インターネットワークパケット交換/シーケンスパケット交換(IPX/SPX)デバイスとの間の通信を促進し得る。
【0031】
[0042]ローカルエリアネットワーク235において通信を受信すると、更なるルーティングが依然として実行される必要があり得る。このようなイントラネットワークルーティングは、スイッチ280またはハブ285等の、イントラネットワーク接続コンポーネント255を介して実行され得る。各イントラネットワーク接続コンポーネント255は、(例えば、ワイヤレスに、またはイーサネット(登録商標)ケーブル等を介して有線で)複数の端末デバイス215に接続され得る。ハブ285は、それが接続されている各デバイスに対して、全ての受信された通信を繰り返すように構成され得る。次いで、各端末デバイスは、端末デバイスが宛先デバイスであるかどうか、または通信が無視されるべきであるかどうかを決定するために、各通信を評価し得る。スイッチ280は、通信を宛先端末デバイスのみに選択的に誘導するように構成され得る。
【0032】
[0043]いくつかの事例では、ローカルエリアネットワーク235は、複数のセグメントに分割され得、その各々が、独立したファイアウォール、セキュリティ規則、およびネットワークプロトコルに関連付けられ得る。イントラネットワーク接続コンポーネント255は、イントラセグメントルーティングを促進するために、1つ、複数、または全てのセグメントの各々において設けられ得る。ブリッジ280は、セグメント275にわたって通信をルーティングするように構成され得る。
【0033】
[0044]ネットワークにわたって、またはネットワーク内で通信を適切にルーティングするために、様々なコンポーネントが通信における宛先データを分析する。例えば、そのようなデータは、通信がどのネットワークにルーティングされるべきか、通信がネットワーク内のどのデバイスにルーティングされるべきか、または端末デバイスがどの通信を処理すべきか(無視すべきか)を示し得る。しかしながら、いくつかの事例では、ネットワークデバイスからの通信にどの端末デバイスが参加すべきか(またはどのネットワークが参加すべきかさえも)は直ぐには分からない。
【0034】
[0045]例として、端末デバイスのセットが、同様のタイプの応答通信を提供するように構成され得る。したがって、ネットワークデバイスからの通信におけるクエリは、どのネットワークデバイスに通信がルーティングされるかにかかわらず、同様の方法で応答され得ることが予期され得る。この仮定は、高いレベルで当てはまり得るが、端末デバイスに関係する様々な詳細は、特定のルーティングが他のものと比較して有利になることをもたらし得る。例えば、セット内の端末デバイスは、(例えば)どの通信チャネルがサポートされているか、ネットワークデバイスへの地理的近接性および/もしくはネットワーク近接性、および/または、関連付けられたエージェントの特性(例えば、知識ベース、経験、使用言語、可用性、一般的な性格またはセンチメント等)に関して互いに異なり得る。したがって、選択ルーティングは、ネットワークデバイスの通信により正確におよび/または完全に応答する、より高速な応答を促進し得る。1つの問題点は、ネットワークデバイスを端末デバイスにマッピングする静的ルーティングが、通信のトピック、チャネルタイプ、エージェントの可用性等におけるバリエーションを考慮できない場合があることである。
【0035】
[0046]
図3A~
図3Cは、接続管理システムを含むネットワークインタラクションシステム300a~cの他の実施形態のブロック図を示す。図示されたシステム300a~cの各々は、簡略化のために2つのローカルエリアネットワーク235のみを示しているが、ローカルエリアネットワークの数を増やすために、実施形態が拡張され得ることが理解され得る。システム300a~cの各々は、接続管理システム350を含み、これは、どの端末デバイスがネットワークデバイス205と通信すべきかを識別し得、接続チャネルを確立および管理(例えば、維持するまたは閉じる)し得、交換において通信を再ルーティングするかどうかおよびいつ再ルーティングするかを決定し得る、等する。したがって、接続管理システム350は、ルーティング決定に影響を及ぼすために、通信、エージェントの可用性、端末デバイスまたはエージェントの能力等を動的にかつリアルタイムで評価するように構成され得る。
【0036】
[0047]
図3Aでは、接続管理システム350は、ネットワークデバイス205およびリモートサーバ340の各々に関連付けられている(例えば、接続管理システム350aは、ネットワークデバイス205に関連付けられており、接続管理システム350bは、リモートサーバ340に関連付けられている)。例えば、接続管理システム350aおよび/または接続管理システム350bは、それぞれネットワークデバイス205およびリモートサーバ340の各々にアプリケーションとしてインストールまたは記憶され得る。(1つまたは複数の)アプリケーションの実行は、例えば、ネットワークデバイス205との通信交換に参加するために選択される端末デバイス215を識別するための、ネットワークデバイス205とリモートサーバ340との間の通信を促進し得る。識別は、本明細書で開示される1つまたは複数のファクタ(例えば、可用性、通信のトピック/詳細レベルと、エージェントまたは端末デバイスの知識ベースとの間のマッチング、予測レイテンシ、チャネルタイプの可用性等)に基づいて行われ得る。
【0037】
[0048]クライアントデバイス330は、ルーティング決定がどのように行われるべきか示すクライアントデータを提供し得る。例えば、このようなデータは、特定の特性をどのように重み付けまたはマッチングさせるべきかに関するインジケーション、または制約もしくはバイアス(例えば、負荷バランシングまたは予測応答レイテンシに関係する)を含み得る。クライアントデータはまた、通信チャネルがいつ確立される(または閉じられる)べきか、または異なるネットワークデバイスに通信がいつ再ルーティングされるべきかに関する仕様も含み得る。クライアントデータは、通信ルーティング等のための規則等の、様々なクライアント固有の規則を定義するために使用され得る。
【0038】
[0049]リモートサーバ340上で実行中の接続管理システム350bは、どの通信チャネルがサポートされているか、ネットワークデバイスへの地理的近接性および/もしくはネットワーク近接性、端末デバイスとの通信のレイテンシおよび/もしくは安定性、端末デバイスのタイプ、端末デバイスの能力、端末デバイス(またはエージェント)が所与のネットワークデバイス(またはユーザ)と以前に通信したことがあるかどうか、ならびに/または、関連付けられたエージェントの特性(例えば、知識ベース、経験、使用言語、可用性、一般的な性格またはセンチメント等)のような、端末デバイスに関係する(例えば、所与のクライアントに関係する)様々なメトリックを監視し得る。したがって、接続管理システム350bは、メトリックに基づいて、ネットワークデバイスの通信により正確におよび/または完全に応答する、より高速な応答を促進するようにルーティングを選択することが可能となり得る。
【0039】
[0050]
図3Aに図示される例では、ネットワークデバイス205とリモートサーバ340との間の通信交換は、宛先アドレスの早期識別を促進し得る。次いで、ネットワークデバイス205は、後続の通信を誘導するために、宛先アドレスを使用し得る。例えば、ネットワークデバイス205は、(例えば、1つまたは複数のインターネットワーク接続および広域ネットワークを介して)リモートサーバ340に初期通信を送り得、リモートサーバ340は、1つまたは複数の対応するクライアントを識別し得る。次いで、リモートサーバ340は、1つまたは複数の対応するクライアントに関連付けられた端末デバイスのセットを識別し、それらの端末デバイスについてのメトリックを収集し得る。メトリックは、通信交換に関与させる端末デバイスを選択するために(例えば、リモートサーバ340によって)評価され得、端末デバイスに関係する情報(例えば、IPアドレス)が、ネットワークデバイス205に送られ得る。いくつかの実施形態では、リモートサーバ340は、様々な端末デバイスについてのメトリックを継続的または周期的に収集および評価し、評価結果をデータストアに記憶し得る。このような実施形態では、1つまたは複数の対応するクライアントに関連付けられた端末デバイスのセットを識別すると、リモートサーバ340は、データストアからの記憶された評価結果にアクセスし、記憶された評価結果に基づいて、通信交換に関与させる端末デバイスを選択し得る。
【0040】
[0051]
図3Bでは、接続管理システム350は、中継器および/または宛先アドレスとして機能するように構成され得る。したがって、例えば、ネットワークデバイス205のセットは、各々が接続管理システム350を宛先として識別する通信を送信し得る。接続管理システム350は、各通信を受信し得、端末デバイスのセットを(例えば、各端末デバイスについてのメトリックを生成するために)同時並行に監視し得る。監視および規則に基づいて、接続管理システム350は、それが各通信を中継し得る端末デバイス215を識別し得る。実施形態に応じて、端末デバイスの通信は、同様に、更なる中継のために(例えば、接続管理システム350の)一貫した宛先に誘導され得るか、または、端末デバイスは、対応するネットワークデバイスと直接通信することを開始し得る。これらの実施形態は、効率的なルーティングおよび徹底した通信の監視を促進し得る。
【0041】
[0052]
図3Cに図示される実施形態は、
図3Bのものと同様である。しかしながら、いくつかの実施形態では、接続管理システム350は、イントラネットワークコンポーネント(例えば、端末デバイス、イントラネットワーク接続、またはその他)に直接接続される。
【0042】
[0053]
図3A~
図3Cの多くのバリエーションが企図されることが理解されよう。例えば、接続管理システム350は、接続管理システム350(またはその一部)に対応するアプリケーションが、コンポーネント上にインストールされるように、接続コンポーネント(例えば、インターネットワーク接続コンポーネント245またはイントラネットワーク接続コンポーネント255)に関連付けられ得る。アプリケーションは、例えば、独立に、または(例えば、1つまたは複数の他のコンポーネント、ネットワークデバイス、またはリモートサーバ上で実行中の)1つまたは複数の同様のまたは相補的なアプリケーションと通信することによって、実行し得る。
【0043】
[0054]
図4は、接続コンポーネントの動作のプロトコルスタックマッピング400を表したものを示す。より具体的には、
図4は、様々な接続コンポーネントに対応する開放型システムインタラクション(OSI:Open Systems Interaction)モデルにおける動作の層を識別する。
【0044】
[0055]OSIモデルは、複数の論理層402~414を含み得る。これらの層は、層402~412がそれぞれ上位レベルをサービスし、層404~414がそれぞれ下位層によってサービスされるように、順序付けられたスタックにおいて配置されている。OSIモデルは、物理層402を含む。物理層402は、パラメータの物理的通信(例えば、電気的、光学的、または電磁的)を定義し得る。物理層402はまた、接続を確立および閉じるためのプロトコル等の接続管理プロトコルを定義する。物理層402は、フロー制御プロトコルおよび送信モードをさらに定義し得る。
【0045】
[0056]リンク層404は、ノード間通信を管理し得る。リンク層404は、エラー(例えば、物理層402における送信エラー)を検出および訂正し、アクセス許可を管理し得る。リンク層404は、媒体アクセス制御(MAC)層および論理リンク制御(LLC)層を含み得る。
【0046】
[0057]ネットワーク層406は、(例えば、データグラムとして)同じネットワーク内のノードにわたる(例えば、可変長の)データの転送を調整し得る。ネットワーク層406は、論理ネットワークアドレスを物理機械アドレスに変換し得る。
【0047】
[0058]トランスポート層408は、送信品質および受信品質を管理し得る。トランスポート層408は、送信制御プロトコル(TCP)等の、データを転送するためのプロトコルを提供し得る。トランスポート層408は、送信用のデータパケットのセグメント化/非セグメント化を実行し得、層402~406において発生する送信エラーを検出し、それに対処し得る。セッション層410は、ローカルアプリケーションとリモートアプリケーションとの間の接続を開始、維持、および終了させ得る。セッションは、リモートプロシージャインタラクションの一部として使用され得る。プレゼンテーション層412は、アプリケーション層またはネットワーク層によって受け入れられることが知られているデータタイプに基づいて、データを暗号化、解読、およびフォーマットし得る。
【0048】
[0059]アプリケーション層414は、通信を制御または管理するソフトウェアアプリケーションとインタラクトし得る。そのようなアプリケーションを介して、アプリケーション層414は、(例えば)宛先、ローカルリソースの状態もしくは可用性、および/または通信のコンテンツもしくはフォーマッティングを識別し得る。様々な層402~414は、利用可能かつ適用可能な場合、他の機能を実行し得る。
【0049】
[0060]イントラネットワーク接続コンポーネント422、424は、物理層402およびリンク層404において動作するように示されている。より具体的には、通信の受信および送信に関して動作が制御され得るように、ハブが物理層で動作し得る。ハブには、通信をアドレス指定するまたはデータをフィルタリングする能力がないため、それらは、上位レベルで動作する能力をほとんどまたは全く有していない。一方、スイッチは、それらがアドレス(例えば、MACアドレス)に基づいて通信フレームをフィルタリングすることが可能であるので、リンク層404で動作し得る。
【0050】
[0061]一方、インターネットワーク接続コンポーネント426、428は、上位レベル(例えば、層406~414)で動作するように示されている。例えば、ルータは、アドレス(例えば、IPアドレス)に基づいて、通信データパケットをフィルタリングし得る。ルータは、パケットを適切なネットワークに誘導するように、アドレスに基づいて特定のポートにパケットを転送し得る。ゲートウェイは、ネットワーク層およびそれより上位で動作し、同様のフィルタリングおよび誘導、ならびに(例えば、プロトコルまたはアーキテクチャにわたる)更なるデータのトランスレーションを実行し得る。
【0051】
[0062]接続管理システム450は、様々な実施形態において、様々な層のうちの1つ、複数、全て、または任意のものとインタラクトし得、および/またはその上で動作し得る。例えば、接続管理システム450は、どの端末デバイスとハブが通信するかを動的に調整するように、ハブとインタラクトし得る。別の例として、接続管理システム450は、コンポーネントが宛先(例えば、MAC、論理、または物理)アドレスとしてどの端末デバイスを選択するかに影響を及ぼすように、ブリッジ、スイッチ、ルータ、またはゲートウェイと通信し得る。更なる例として、接続管理システム450は、トランスポート層408上のデータパケットのセグメント化、セッション層410上のセッション持続時間、ならびに/または、プレゼンテーション層412上での暗号化および/もしくは圧縮を、監視、制御、または指示し得る。いくつかの実施形態では、接続管理システム450は、特定の層で動作する機器(例えば、リンク層404で動作するスイッチ)と通信を交換すること(例えば、それにコマンドを送ること)によって、(例えば、ネットワークデバイスと端末デバイスとの間の)既存の通信を特定の方法でルーティングまたは修正することによって、および/または、既存の通信に基づいて特定の情報(例えば、新しい宛先アドレス)を含む新しい通信を生成することによって、様々な層とインタラクトし得る。したがって、接続管理システム450は、様々なデバイスとのインタラクションを介して、および/または様々なプロトコルスタック層での動作に影響を及ぼすことを介して、通信ルーティングおよびチャネル確立(あるいは、維持または終了)に影響を及ぼし得る。
【0052】
[0063]
図5は、一実施形態によるマルチデバイス通信交換システム500を表す。システム500は、様々なタイプの通信チャネル上で様々なタイプの端末デバイスと通信するように構成されたネットワークデバイス505を含む。
【0053】
[0064]図示される事例では、ネットワークデバイス505は、セルラネットワーク上で(例えば、基地局510を介して)通信を送信し得る。通信は、動作ネットワーク515にルーティングされ得る。動作ネットワーク515は、通信を受信し、どの端末デバイスが通信に応答すべきかを識別する接続管理システム520を含み得る。このような決定は、(例えば、コンテンツ分析またはクライアントを示すユーザ入力に基づいて)その通信が関係するクライアントを識別することと、クライアントに関連付けられた1つまたは複数の端末デバイスの各々について1つまたは複数のメトリックを決定することとに依存し得る。例えば、
図5では、端末デバイス530a~cの各クラスタは、異なるクライアントに対応し得る。端末デバイスは、地理的にコロケートされ得るか、または分散され得る。メトリックは、記憶または学習されたデータおよび/またはリアルタイムの監視に基づいて(例えば、可用性に基づいて)決定され得る。
【0054】
[0065]接続管理システム520は、1つまたは複数のルータ525、または他のインターネットワークもしくはイントラネットワーク接続コンポーネントを介して、様々な端末デバイスと通信し得る。接続管理システム520は、1つまたは複数のデータストアにおいて、通信、端末デバイスの動作、クライアント規則、および/またはユーザ関連のアクション(例えば、オンラインアクティビティ)からの、またはそれらに関係するデータを収集、分析、および/または記憶し得る。このようなデータは、通信ルーティングに影響を及ぼし得る。
【0055】
[0066]特に、通信ルーティングおよび/または処理に影響を及ぼすために、様々な他のデバイスがさらに使用され得る。例えば、図示される事例では、接続管理システム520はまた、ウェブサーバ540にも接続される。したがって、接続管理システム520は、技術的製品詳細等のような、関心対象のデータを検索し得る。
【0056】
[0067]ネットワークデバイス505はまた、ウェブサーバ(例えば、ウェブサーバ545を含む)に接続され得る。いくつかの事例では、そのようなサーバとの通信には、接続管理システム520と通信交換を開始するための初期オプションが提供される。例えば、ネットワークデバイス505は、特定のウェブページを訪問している間に、通信機会が利用可能であることを検出し得、そのようなオプションが提示され得る。
【0057】
[0068]通信システム500の1つまたは複数の要素がまた、ソーシャルネットワーキングサーバ550に接続され得る。ソーシャルネットワーキングサーバ550は、様々なユーザデバイスから受信したデータを集約し得る。したがって、例えば、接続管理システム520は、所与のユーザまたはユーザのクラスの一般的な(またはユーザ固有の)挙動を推定することが可能であり得る。
【0058】
[0069]
図6は、接続管理システム600の一実施形態のブロック図を示す。メッセージ受信機インターフェース605が、メッセージを受信し得る。いくつかの事例では、メッセージは、例えば、ネットワークデバイスまたは端末デバイス等の、(例えば、接続管理システム600とは別個に収容されるか、または同じハウジング内に収容される)ソースデバイスによって送信された通信の一部として受信され得る。いくつかの事例では、通信は、一連の通信または通信交換の一部であり得、これは、2つのデバイス(例えば、ネットワークデバイスおよび端末デバイス)間でルーティングされている一連のメッセージまたはメッセージ交換を含み得る。このメッセージまたは通信交換は、デバイス間のインタラクションの一部であり得、および/またはそれを定義し得る。通信チャネルまたは動作チャネルは、デバイス間のルーティングおよび通信交換を促進するために使用される1つまたは複数のプロトコル(例えば、ルーティングプロトコル、タスク割当てプロトコル、および/またはアドレス指定プロトコル)を含み得る。
【0059】
[0070]いくつかの事例では、メッセージは、ローカルまたはリモートユーザインターフェースにおいて受信された入力に基づいて生成されたメッセージを含み得る。例えば、メッセージは、ボタンもしくはキーの押下または記録された音声信号に基づいて生成されたメッセージを含み得る。一事例では、メッセージは、ネットワークデバイスが特定のアプリページまたはウェブページを提示していること、または特定の入力コマンド(例えば、キー順)を提供したことを検出した際に生成されるもの等の、自動的に生成されたメッセージを含む。メッセージは、通信交換を開始するためのもの等の、命令または要求を含み得る。
【0060】
[0071]いくつかの事例では、メッセージは、クライアントの識別子を含み得るか、またはそれに関連付けられ得る。例えば、メッセージは、クライアント(またはクライアントに関連付けられたデバイス)を明示的に識別し得、メッセージは、クライアントに関連付けられたウェブページまたはアプリページを含み得るか、またはそれに関連付けられ得、メッセージは、クライアントに関連付けられた宛先アドレスを含み得るか、またはそれに関連付けられ得、あるいは、メッセージは、クライアントに関連付けられたアイテム(例えば、製品)またはサービスの識別を含み得るか、またはそれに関連付けられ得る。例として、ネットワークデバイスは、特定のクライアントのアプリページを提示し得、これは、エージェントに通信を送信するためのオプションを提供し得る。メッセージに対応するユーザ入力を受信すると、メッセージおよび特定のクライアントの識別子を含むように、通信が生成され得る。
【0061】
[0072]処理エンジン610は、受信された通信および/またはメッセージを処理し得る。処理は、例えば、1つまたは複数の特定のデータ要素(例えば、メッセージ、クライアント識別子、ネットワークデバイス識別子、アカウント識別子等)を抽出することを含み得る。処理は、(例えば、特定のデバイスタイプ、オペレーティングシステム、通信チャネルタイプ、プロトコルおよび/またはネットワークと互換性があるように)フォーマッティングまたは通信タイプを変換することを含み得る。
【0062】
[0073]メッセージ評価エンジン615が、(例えば、抽出または受信された)メッセージを評価し得る。評価は、例えば、メッセージについての1つまたは複数のカテゴリまたはタグを識別することを含み得る。カテゴリまたはタグのタイプの例は、(例えば)トピック、センチメント、複雑さ、および緊急性を含み得る。メッセージをカテゴリ分類することと、タグ付けすることとの間の違いは、カテゴリが(例えば、カテゴリオプションの所定のセットにしたがって)限定され得る一方で、タグは自由(open)であり得ることである。トピックは、例えば、技術的問題、使用の質問(a use question)、または要求を含み得る。カテゴリまたはタグは、例えば、(例えば、キーワード、文構造、繰り返された単語、句読文字および/または冠詞でない単語を識別することによる)メッセージの意味解析、(例えば、選択された1つまたは複数のカテゴリを有する)ユーザ入力、および/またはメッセージ関連の統計値(例えば、タイピング速度および/または応答レイテンシ)に基づいて決定され得る。
【0063】
[0074]いくつかの事例では、メッセージ評価エンジン615は、メッセージについてのメトリックを決定し得る。メトリックは、例えば、文字数、単語数、大文字数、全て大文字の単語数、または特定の文字もしくは句読点(例えば、感嘆符、疑問符、および/またはピリオド)の事例の数を含み得る。メトリックは、感嘆符(または疑問符)で終わる文の割合、全て大文字の単語の割合等の比率を含み得る。
【0064】
[0075]メッセージ評価エンジン615は、メッセージ、メッセージメトリック、および/またはメッセージ統計値をメッセージデータストア620に記憶し得る。各メッセージはまた、対応するソースデバイス、宛先デバイス、ネットワークデバイス、端末デバイス、クライアント、1つまたは複数のカテゴリ、1つまたは複数の段階、および/またはメッセージ関連の統計値を識別するデータ等の、他のデータ(例えば、メタデータ)に関連して記憶され得る。接続管理システム600の様々なコンポーネント(例えば、メッセージ評価エンジン615および/またはインタラクション管理エンジン625)は、クエリ応答メッセージ、メッセージメトリック、および/またはメッセージ統計値を検索する(retrieve)ために、メッセージデータストア620をクエリし得る。
【0065】
[0076]インタラクション管理エンジン625は、どのデバイスに通信がルーティングされるべきか、ならびに受信デバイスおよび送信デバイスがどのように通信すべきかを決定し得る。これらの決定の各々は、例えば、特定のネットワークデバイス(または特定のユーザに関連付けられた任意のネットワークデバイス)が、端末デバイスのセットにおける端末デバイス(例えば、接続管理システム600に関連付けられた任意の端末デバイス、または1つまたは複数の特定のクライアントに関連付けられた任意の端末デバイス)と以前に通信しことがあるかどうかに依存し得る。
【0066】
[0077]いくつかの事例では、ネットワークデバイス(または、同じユーザもしくはプロファイルに関連付けられた他のネットワークデバイス)が、所与の端末デバイスと以前に通信したことがあるとき、通信ルーティングは、一般に、同じ端末デバイスに向かってバイアスされ得る。ルーティングに影響を及ぼし得る他のファクタは、例えば、端末デバイス(または対応するエージェント)が利用可能であるかどうか、および/または端末デバイスの予測応答レイテンシを含み得る。このようなファクタは、絶対的に、または他の端末デバイスに対応する同様のメトリックに対して相対的に考慮され得る。再ルーティング規則(例えば、クライアント固有の規則または一般的規則)が、エージェント一貫性を断念する(forego)かどうかを決定するために、そのようなファクタがどのように評価され、重み付けされるべきかを示し得る。
【0067】
[0078]ネットワークデバイス(または同じユーザもしくはアカウントに関連付けられた他のネットワークデバイス)が所与の端末デバイスと以前に通信したことがないとき、端末デバイスの選択は、例えば、様々なエージェントの知識ベースが通信のトピックに対応する程度、所与の時間でのおよび/またはチャネルタイプ上での様々なエージェントの可用性、(例えば、クライアントに関連付けられた)端末デバイスのタイプおよび/または能力等のファクタに基づいて実行され得る。一事例では、規則は、これらのような1つまたは複数のファクタに対するサブパラメータと、各パラメータに割り当てるべき重みとをどのように決定するかを識別し得る。重み付けされたサブパラメータを組み合わせる(例えば、合計する)ことによって、各エージェントについてのパラメータが決定され得る。次いで、端末デバイスの選択が、端末デバイスのパラメータを比較することによって行われ得る。
【0068】
[0079]デバイスがどのように通信すべきか決定することに関して、インタラクション管理エンジン625は、(例えば)端末デバイスが、(例えば)SMSメッセージ、音声通話、ビデオ通信等を介して通信に応答すべきかどうかを決定し得る。通信タイプは、例えば、(例えば、クライアントまたはユーザによって少なくとも部分的に定義される)通信タイプ優先順位リスト、(例えば、一貫性を増進するように)ネットワークデバイスから以前に受信された通信のタイプ、受信されたメッセージの複雑さ、ネットワークデバイスの能力、および/または、1つまたは複数の端末デバイスの可用性に基づいて選択され得る。明らかに、いくつかの通信タイプは、(例えば、高速メッセージ応答が予期される)リアルタイム通信をもたらすことになる一方で、その他は、(例えば、メッセージ間の(例えば、数分または数時間の)遅延が許容可能である)非同期通信をもたらし得る。
【0069】
[0080]さらに、インタラクション管理エンジン625は、2つのデバイス間の連続チャネルが確立、使用、または終了されるべきかどうかを決定し得る。連続チャネルは、ネットワークデバイスから指定された端末デバイスへの将来の通信のルーティングを促進するように構造化され得る。このバイアスは、メッセージ系列(message series)にわたってさえも持続し得る。いくつかの事例では、(例えば、エージェントを識別する)連続チャネルの表現が、ネットワークデバイス上で提示されるべき提示に含まれ得る。このようにして、ユーザは、効率を増進するために、通信が一貫してルーティングされるべきであることを理解し得る。
【0070】
[0081]一事例では、パラメータが、所与のネットワークデバイスおよび端末デバイスに対応する接続パラメータを決定するために、本明細書で説明される1つまたは複数のファクタと、(例えば、1つまたは複数のファクタの各々についての重みを含む)規則とを使用して生成され得る。パラメータは、全体的な一致または所与の通信もしくは通信系列に固有の一致に関係し得る。したがって、例えば、パラメータは、所与の端末デバイスがネットワークデバイス通信に応答するのに適していると予測される程度を反映し得る。いくつかの事例では、パラメータ分析が、所与の通信をルーティングすべき端末デバイスの各々を識別するために、および接続チャネルを確立、使用、または終了させるかどうかを識別するために使用され得る。パラメータ分析がルーティング決定とチャネル決定との両方に対処するために使用されるとき、各決定に関連するパラメータは、同じ、同様の、または異なる方式で決定され得る。
【0071】
[0082]したがって、例えば、パラメータが、長期一致(long-term match)の強度を予測するためのものであるか、特定のメッセージクエリに応答するためのものであるかに応じて、異なるファクタが考慮され得ることが理解されよう。例えば、前者の場合には、全体的なスケジュールおよび時間帯の考慮が重要であり得、一方、後者の場合には、即時の可用性がより高く重み付けされ得る。1つのパラメータが、単一のネットワークデバイス/端末デバイスの組合せに対して決定され得、または所与のネットワークデバイスと異なる端末デバイスとの間の一致をそれぞれ特徴付けている複数のパラメータが決定され得る。
【0072】
[0083]例として、クライアントに関連付けられた3つの端末デバイスのセットが、潜在的な通信ルーティングについて評価され得る。特定の通信に関する一致に関連する各々についてのパラメータが生成され得る。最初の2つの端末デバイスの各々は、通信を送信したネットワークデバイスと以前に通信したことがあり得る。ネットワークデバイスからの入力は、第1のデバイスとの(1つまたは複数の)通信でのインタラクションに関連付けられた肯定的なフィードバックを示したものであり得る。したがって、第1、第2、および第3のデバイスについての(規則にしたがって計算された)過去のインタラクトサブパラメータは、それぞれ、10、5、および0であり得る。(ネガティブフィードバックの入力は、ネガティブサブパラメータをもたらし得る)。第3の端末デバイスのみが利用可能であることが決定され得る。第2の端末デバイスは、15分以内に応答のために利用可能になるが、第1の端末デバイスは、次の日まで応答のために利用可能にならないことが予測され得る。したがって、第1、第2、および第3のデバイスについての高速応答サブパラメータは、1、3、および10であり得る。最後に、(端末デバイスに関連付けられた)エージェントが通信におけるトピックについて精通している程度が推定され得る。第3の端末デバイスに関連付けられたエージェントが、他の2つのデバイスに関連付けられたエージェントよりも精通していると決定され得、サブパラメータは、3、4および9となる。この例では、規則は、重み付けまたは正規化パラメータを含まず(ただし、他の事例では、規則に含まれる場合もある)、パラメータは、14、11および19となる。したがって、規則は、最も高いパラメータを有するデバイス、すなわち、第3の端末デバイスに、メッセージがルーティングされるべきであることを示し得る。特定の端末デバイスへのルーティングが失敗した場合、そのメッセージは、次に高いパラメータを有するデバイスにルーティングされ得、以下同様である。
【0073】
[0084]パラメータは、1つまたは複数の絶対閾値または相対閾値と比較され得る。例えば、通信がルーティングされ得る端末デバイスを選択するために、端末デバイスのセットについてのパラメータが、高いパラメータを識別するために互いに比較され得る。別の例として、パラメータ(例えば、高いパラメータ)が、端末デバイスとの連続チャネルを確立するかどうかを決定するために、1つまたは複数の絶対閾値と比較され得る。連続チャネルを確立するための全体的な閾値は、(そうである必要はないが)所与の一連のメッセージにおいて通信を一貫してルーティングするための閾値よりも高くなり得る。全体的な閾値と、通信を一貫してルーティングするかどうかを決定するための閾値との間のこの差は、チャネルの拡張された有用性を仮定すると(given)、連続チャネルのコンテキストでは、強い一致が重要であるからであり得る。いくつかの実施形態では、連続チャネルを使用するための全体的な閾値は、(そうである必要はないが)所与の一連のメッセージにおいて通信を一貫してルーティングするための、および/または連続チャネルを確立するための閾値よりも低くなり得る。
【0074】
[0085]インタラクション管理エンジン625は、様々なコンテキストにおいて、アカウントエンジン630とインタラクトし得る。例えば、アカウントエンジン630は、デバイスに対応するアカウントを識別するために、アカウントデータストア635内のネットワークデバイスまたは端末デバイスの識別子をルックアップし得る。さらに、アカウントエンジン630は、以前の通信交換に関するデータ(例えば、回数(times)、(1つまたは複数の)関与した他のデバイス、チャネルタイプ、解決段階、(1つまたは複数の)トピックおよび/または関連付けられたクライアント識別子)、(例えば、-1つまたは複数のクライアントの各々について-何らかのチャネルが存在するかどうか、各チャネルに関連付けられた端末デバイス、確立時間、使用頻度、最終使用日付、任意のチャネル制約および/またはサポートされる通信のタイプを示す)接続チャネルに関するデータ、(例えば、端末デバイスの選択、応答レイテンシ、端末デバイスの一貫性、エージェントの専門知識、および/または通信タイプの選好もしくは制約に関連する)ユーザまたはエージェントの選好または制約に関するデータ、および/または、ユーザまたはエージェントの特性に関するデータ(例えば、年齢、(1つまたは複数の)使用言語または選好の言語、地理的ロケーション、関心等)を維持し得る。
【0075】
[0086]さらに、インタラクション管理エンジン625は、アカウントデータストア635が現在のチャネルデータを反映するように更新され得るように、アカウントエンジン630に様々な接続チャネルアクションを知らせ(alert)得る。例えば、チャネルを確立すると、インタラクション管理エンジン625は、アカウントエンジン630に確立を通知し、ネットワークデバイス、端末デバイス、アカウント、およびクライアントのうちの1つまたは複数を識別し得る。その後、アカウントエンジン635は、(いくつかの事例では)利用されているエージェント一貫性をユーザが認識し得るように、チャネルの存在をユーザに通知し得る。
【0076】
[0087]インタラクション管理エンジン625は、クライアントマッピングエンジン640とさらにインタラクトし得、それは、通信を1つまたは複数のクライアント(および/または関連付けられたブランド)にマッピングし得る。いくつかの事例では、ネットワークデバイス自体から受信される通信が、クライアントに対応する識別子(例えば、クライアント、ウェブページ、またはアプリページの識別子)を含む。識別子は、(例えば、クライアントマッピングエンジン640が検出し得る)メッセージの一部として含まれ得るか、またはメッセージ包含通信(message-inclusive communication)における他のデータとして含まれ得る。次いで、クライアントマッピングエンジン640は、クライアントおよび/またはクライアントの識別子に関する追加のデータを検索するために、クライアントデータストア645内の識別子をルックアップし得る。
【0077】
[0088]いくつかの事例では、メッセージは、特にいずれのクライアントにも対応しない場合がある。例えば、メッセージは、一般的なクエリを含み得る。クライアントマッピングエンジン640は、例えば、メッセージに対して意味解析を実行し、1つまたは複数のキーワードを識別し、(1つまたは複数の)キーワードに関連付けられた1つまたは複数のクライアントを識別し得る。いくつかの事例では、単一のクライアントが識別される。いくつかの事例では、複数のクライアントが識別される。次いで、各クライアントの識別が、ユーザが(例えば、関連付けられた端末デバイスを介して)通信すべきクライアントを選択し得るように、ネットワークデバイスを介して提示され得る。
【0078】
[0089]クライアントデータストア645は、クライアントに関連付けられた1つまたは複数の端末デバイス(および/またはエージェント)の識別を含み得る。端末ルーティングエンジン650が、ルーティング決定に影響を及ぼすために、1つ、複数、または全てのそのような端末デバイス(および/またはエージェント)の各々に関係するデータを検索または収集し得る。例えば、端末ルーティングエンジン650は、端末データストア655を維持し得、これは、端末デバイスのデバイスタイプ、オペレーティングシステム、通信タイプの能力、インストールされたアプリケーションアクセサリ、地理的ロケーション、および/または識別子(例えば、IPアドレス)等の情報を記憶し得る。一部の情報は、動的に更新され得る。例えば、端末デバイスが利用可能であるかどうかを示す情報は、(例えば)端末デバイスからの通信(例えば、デバイスがスリープ状態にあるか、オフ/オンにされているか、非アクティブ/アクティブ状態にあるかを識別し、または入力が時間期間内に受信されたかどうかを識別する)、通信ルーティング(例えば、端末デバイスが通信交換に関与しているかどうか、またはそれに参加するように割り当てられているかどうかを示す)、または通信交換が終了または開始したことを示す、ネットワークデバイスまたは端末デバイスからの通信に基づいて、動的に更新され得る。
【0079】
[0090]様々なコンテキストでは、1つまたは複数の通信交換に従事していることは、必ずしも端末デバイスが別の通信交換に従事するのに利用可能でないことを示すとは限らないことが理解されよう。通信タイプ(例えば、メッセージ)、クライアントにより識別されたもしくはユーザにより識別されたターゲット応答時間、および/または(例えば、一般的な、またはユーザに関する)システム負荷等の様々なファクタが、端末デバイスがいくつの交換に関与し得るかに影響を及ぼし得る。
【0080】
[0091]インタラクション管理エンジン625が通信交換または接続チャネルに関与させるべき端末デバイスを識別したとき、それは、端末ルーティングエンジン650に通知し得、端末ルーティングエンジン650は、端末データストア655から、宛先(例えば、IP)アドレス、デバイスタイプ、プロトコル等のような、端末デバイスに関する任意の関連データを検索し得る。次いで、処理エンジン610は、(いくつかの事例では)特定のフォーマットを有し、特定のプロトコルに準拠するように等、メッセージ包含通信を修正し得るか、または(メッセージを含む)新しい通信を生成し得る。いくつかの事例では、新しいまたは修正されたメッセージは、ネットワークデバイスに対応するアカウントデータ、メッセージクロニクル、および/またはクライアントデータ等の、追加のデータを含み得る。
【0081】
[0092]次いで、メッセージ送信機インターフェース660が、通信を端末デバイスに送信し得る。送信は、例えば、別個のハウジングに収容されたデバイスへのワイヤード送信またはワイヤレス送信を含み得る。端末デバイスは、接続管理システム600と同じまたは異なるネットワーク(例えば、ローカルエリアネットワーク)内の端末デバイスを含み得る。したがって、端末デバイスに通信を送信することは、インターまたはイントラネットワーク接続コンポーネントに通信を送信することを含み得る。
【0082】
[0093](例えば、ユーザによって操作される)ネットワークデバイスとの通信セッション中に、ボットと(例えば、生身のユーザによって操作される)ユーザデバイスとの間で動的に切り替えるためのシステムおよび方法が提供される。いくつかの実装形態では、ボットは、ネットワークデバイスと自律的に通信するように構成され得る。さらに、ボットは、特定の能力のために構成され得る。能力の例は、データベースレコードを更新すること、ユーザに更新を提供すること、ユーザに関する追加のデータをエージェントに提供すること、ユーザのインテントを決定することおよびインテントに基づいてユーザを宛先システムにルーティングすること、ユーザと通信しているエージェントに対する応答を予測または提案すること、1つまたは複数の追加のボットまたはエージェントを含むように通信セッションを段階的に拡大させること(escalating)、ならびに他の好適な能力を含み得る。いくつかの実装形態では、ボットが、(例えば、チャット対応インターフェースを使用して)通信セッション中に(例えば、ユーザによって操作される)ネットワークデバイスと通信している間に、通信サーバが、ボットをユーザデバイスに切り替えることを自動的かつ動的に決定し得る。例えば、ボットは、ある特定のタスク(例えば、ユーザに関連付けられたデータベースレコードを更新すること)に関してユーザと通信し得、一方、端末デバイスは、(例えば、技術的問題を解決するために、通信チャネルを使用して通信する等)より困難なタスクについてユーザと通信し得る。
【0083】
[0094]いくつかの実装形態では、通信セッション中に、ボットとユーザデバイスとの間で切り替えるかどうかを決定することは、通信セッションにおけるメッセージの、1つまたは複数の特性の分析に基づき得る。さらに、動的センチメントパラメータが、メッセージ、会話、エンティティ、エージェント等のセンチメントを表すために生成され得る。例えば、動的センチメントパラメータが、ユーザがボットに不満を抱いていることを示す場合、システムは、生身のエージェントがユーザと通信し得るように、ボットをユーザデバイスに自動的に切り替え得る。あらゆる目的のために、その開示全体が参照により本明細書に組み込まれている、2016年6月2日に出願された米国特許出願第15/171,525号を参照されたい。いくつかの例では、ボットとユーザデバイスとの間で切り替えるかどうかを決定することは、ユーザからのプロンプトなしで実行され得る。決定は、通信セッション(例えば、チャット)における現在のメッセージの特性、以前の通信セッションにおいてユーザによって送信された以前のメッセージの特性、会話における複数のメッセージにわたる特性(例えば、センチメント)の軌跡、またはユーザに関連付けられた追加の情報(例えば、プロファイル情報、選好情報、およびユーザに関連付けられた他の好適な情報)を含む、任意の数のファクタに基づいて、通信サーバにおいて自動的に実行され得る。
【0084】
[0095]
図7は、通信セッション中にボットとユーザデバイスとの間で動的に切り替えるためのネットワーク環境のブロック図を示す。いくつかの実装形態では、ネットワーク環境700は、ネットワークデバイス705と、通信サーバ710と、ユーザデバイス715と、ボット720と、を含み得る。通信サーバ710は、少なくとも1つの記憶デバイスを有する1つまたは複数のプロセッサを有するサーバであり得、本明細書で説明される方法および技法を実行するように構成され得る。例えば、通信サーバ710は、ネットワークデバイス(例えば、ユーザによって操作される)と、端末デバイス(例えば、エージェントによって操作される)との間の通信セッションを管理し得る。通信サーバ710は、ネットワークデバイス705とユーザデバイス715とが通信セッション中に互いに通信し得るように、ネットワークデバイス705とユーザデバイス715との間に通信チャネルを確立し得る。通信セッションは、ネットワークデバイス705とユーザデバイス715との間の1つまたは複数のメッセージの交換を促進し得る。本開示は、通信セッション中のメッセージの交換に限定されない。例えば、ビデオ通信(例えば、ビデオフィード)およびオーディオ通信(例えば、Voice-Over-IP接続)等の他の形態の通信が、通信セッションによって促進され得る。
【0085】
[0096]いくつかの実装形態では、通信サーバ710は、ネットワークデバイス705とボット720との間に通信チャネルを確立し得る。ボット720は、実行されると、ネットワークデバイス705と自律的に通信するように構成されたコードであり得る。例えば、ボット720は、ネットワークデバイス705に関連付けられたユーザとの会話を開始するためのメッセージを自動的に生成するための、および/またはネットワークデバイス705からのメッセージに自動的に応答するためのボットであり得る。加えて、通信サーバ710は、プラットフォームに関連付けられ得る。クライアント(例えば、プラットフォームに対する外部システム)は、プラットフォームを使用して、それらの内部通信システムにおけるボットを展開し得る。いくつかの例では、クライアントは、プラットフォームにおいてそれら独自のボットを使用し得、これは、クライアントが、本明細書で説明される方法および技法をそれらの内部通信システムに実装することを可能にする。
【0086】
[0097]いくつかの実装形態では、ボットは、1つまたは複数のソースによって定義され得る。例えば、データストア730は、通信サーバのクライアントによって定義された(例えば、作成またはコーディングされた)ボットを表すコードを記憶し得る。例えば、独自のボットを定義したクライアントは、ボットを通信サーバ710にロードし得る。クライアントによって定義されたボットは、クライアントボットデータストア730に記憶され得る。データストア740は、サードパーティシステムによって定義されたボットを表すコードを記憶し得る。例えば、サードパーティシステムは、独立したソフトウェアベンダを含み得る。データストア750は、通信サーバ710に関連付けられたエンティティによって定義されたボットを表すコードを記憶し得る。例えば、エンティティによってコーディングされたボットは、ボットが実行され、ユーザと自律的に通信し得るように、通信サーバ710にロードされ得るか、または通信サーバ710によってアクセス可能であり得る。いくつかの実装形態では、通信サーバ710は、クラウドネットワーク760を使用して、データストア730、データストア740、および/またはデータストア750に記憶されたボットにアクセスし得る。クラウドネットワーク760は、任意のネットワークであり得、インターネット等のオープンネットワーク、パーソナルエリアネットワーク、ローカルエリアネットワーク(LAN)、キャンパスエリアネットワーク(CAN)、メトロポリタンエリアネットワーク(MAN)、広域ネットワーク(WAN)、ワイヤレスローカルエリアネットワーク(WLAN)、イントラネット、エクストラネット、または他のバックボーン等のプライベートネットワークを含み得る。
【0087】
[0098]加えて、ユーザデバイス715は、ユーザによって操作され得る。ユーザデバイス715は、任意のポータブルデバイス(例えば、携帯電話、タブレット、ラップトップ)または非ポータブルデバイス(例えば、電子キオスク、デスクトップコンピュータ等)であり得る。いくつかの事例では、エージェントは、ユーザデバイス715上で実行中のブラウザを使用して、ウェブサイトにアクセスし得る。例えば、ウェブサイトは、ユーザデバイス715のブラウザ上で実行中のコンソールまたはプラットフォームを含み得る。エージェントは、ブラウザを使用してプラットフォームにログインされ得る。1つまたは複数のログイン認証情報(例えば、ユーザ名、パスワード、および同様のもの)が、エージェントがコンソールまたはコンソールに含まれるウェブアプリケーションへのアクセスを得ることを可能にする前に、エージェントのアイデンティティを認証するために使用され得る。コンソールの例は、1つまたは複数のAPI(アプリケーションプログラミングインターフェース)、1つまたは複数の機能を含むダッシュボード、通信セッションを確立することまたはそれに参加することができる(プラグインをダウンロードすることを必要とせずに)ウェブブラウザ上で実行中のウェブホステッドアプリケーション、および他の好適なインターフェースを含むプラットフォームを含み得る。さらに、コンソールは、実行され得る1つまたは複数のウェブアプリケーションまたは機能を含み得る。ウェブアプリケーションまたは機能は、ブラウザ、通信サーバ710、ローカルサーバ、リモートサーバ、または他の好適なコンピューティングデバイスにおいて実行され得る。例えば、ウェブアプリケーション、ネイティブアプリケーション、または機能は、エージェントが、ユーザと通信すること、および、ユーザと1つまたは複数のボットとの間の通信を閲覧することを可能にし得る。
【0088】
[0099]いくつかの実装形態では、通信サーバ710は、特定の通信セッション中にボット720とユーザデバイス715との間で動的に切り替えるように構成され得る。例えば、通信サーバ710は、ネットワークデバイス705とボット720との間の通信セッションを促進し得る。ボット720は、通信セッション中にネットワークデバイス705と1つまたは複数のメッセージを交換することによって、ネットワークデバイス705と自律的に通信するように構成され得る。通信サーバ710は、ボット720の代わりに、生身のエージェントがネットワークデバイス705と通信し得るように、ボット720をユーザデバイス715に(または場合によってはその逆に)切り替えるかどうかを動的に決定し得る。いくつかの実装形態では、切替えは、ネットワークデバイス705またはユーザデバイス715からのプロンプトなしに実行され得る。例えば、切替えは、端末デバイスを要求するようにネットワークデバイス705にプロンプトすることなく、ネットワークデバイス705とボット720との間で交換されるメッセージのメッセージパラメータ(例えば、メッセージまたは一連のメッセージのセンチメントを表すスコア)に基づき得る。
【0089】
[00100]いくつかの実装形態では、通信サーバ710は、ボット720とネットワークデバイス705との間で交換されるメッセージの特性に基づいて、ボット720とユーザデバイス715との間で自動的に切り替えることを決定し得る。いくつかの事例では、特性(例えば、メッセージパラメータ)を決定するためにメッセージのテキストを分析することは、メッセージに関連付けられたテキスト属性または非テキスト属性の分析を含み得る。例えば、通信サーバ710は、ネットワークデバイス705からのメッセージに含まれるテキストの1つまたは複数の行を抽出し得る。通信サーバ710は、テキストの1つまたは複数の行がアンカーを含むかどうかを識別し得る。アンカーの例は、極性(例えば、センチメントまたはインテント、「不満がある(frustrated)」という単語は、否定的な極性または不満がある極性に対応し、「嬉しい(happy)」という単語は、肯定的な極性に対応する等)に関連付けられたテキストの文字列を含む。例えば、「議論する(dispute)」という用語は、あるクライアントにとっては否定的であり得るが、第2のクライアントにとっては中立または肯定的であり得る。いくつかの事例では、アンカーは、教師あり機械学習技法を使用して動的に決定され得る。例えば、1つまたは複数のクラスタリングアルゴリズムが、記憶されたメッセージ内のパターンを見つけるために、記憶されたメッセージに対して実行され得る。クラスタ化されたメッセージは、アンカーを決定するために、さらにフィルタリングおよび評価され得る。さらに、識別されたアンカーの近くの1つまたは複数の単語が、増幅詞(amplifiers)について構文解析され得る。増幅詞の例は、例えば、「本当に~(really)」、「それほど~ではない(not really)」、「あまり~(kind of)」等の、アンカーの極性に関連付けられた強度を増加または減少させる用語である。特性は、例えば、タイピングの速度、メッセージ中で使用される特殊文字(例えば、感嘆符、疑問符等)の数、(例えば、キーワード、文構造、繰り返された単語、句読文字および/または冠詞でない単語を識別することによる)メッセージの意味解析、(例えば、選択された1つまたは複数のカテゴリを有する)ユーザ入力、および/またはメッセージ関連の統計値(例えば、応答レイテンシ)を含み得る。
【0090】
[00101]非限定的な例として、メッセージパラメータは、負の極性の高い強度を示す数値であり得る(例えば、0~100のスケールで20のメッセージパラメータであり、より低い数は負の極性を示し、より高い数は正の極性を示す)。アルゴリズムが、メッセージパラメータを計算するために使用され得る。例えば、アルゴリズムは、教師あり機械学習技法に基づき得る。更なる例では、「あまり~(kind of)」という用語が、(例えば、「私は~をあまり好きでない(I kind of don’t like)」という文でのように)アンカー「好きでない(don’t like)」に近い場合、「あまり~」という用語は、負の極性の中程度の強度を示す増幅詞用語として識別され得る。この場合、メッセージパラメータは、負の極性の中程度の強度の識別に基づいて生成され得る。非限定的な例として、メッセージパラメータは、負の極性の中程度の強度を示す数値であり得る(例えば、20のメッセージパラメータとは対照的に40のメッセージパラメータ)。いくつかの事例では、メッセージパラメータは、どのセカンダリキューが通信を記憶すべきかを決定するために使用され得る。
【0091】
[00102]いくつかの実装形態では、メッセージの特性は、メッセージに関連付けられたセンチメントであり得る。メッセージパラメータは、メッセージのセンチメントを表し得る。例えば、メッセージのセンチメントが嬉しいである場合、メッセージパラメータは、ある値または値の範囲であり得、一方、メッセージのセンチメントが怒りである場合、メッセージパラメータは、別の値または値の範囲であり得る。ボットと端末デバイスとの間で切り替えるかどうかを決定することは、メッセージパラメータに基づき得、これは、通信サーバ710において受信される新しいメッセージごとに継続的かつ自動的に更新される。
【0092】
[00103]いくつかの実装形態では、通信サーバ710は、ネットワークデバイス705から受信されたメッセージに対する応答を推奨または予測し得る。例えば、通信サーバ710は、メッセージ推奨システムを含み得、これは、ネットワークデバイス705から受信されたメッセージを評価し、それらの受信されたメッセージに対する応答を推奨するために機械学習モデルを使用し得る。メッセージ推奨システムは、エージェントがネットワークデバイス705と通信するのを支援するために、ユーザデバイス715上に推奨されるメッセージのセットを表示し得る。
【0093】
[00104]
図8は、複数の通信チャネルにわたってエンドポイントを動的に選択するためのネットワーク環境800を表すブロック図を示す。いくつかの実装形態では、ネットワーク環境800は、ネットワークデバイス805と、ユーザデバイス810と、通信サーバ820と、を含み得る。ネットワークデバイス805は、ネットワークデバイス705と同様であり得、したがって、ここでは簡潔さのために説明を省略する。ユーザデバイス810は、端末デバイス715と同様であり得、したがって、ここでは簡潔さのために説明を省略する。通信サーバ820は、通信サーバ710と同様であり得、したがって、ここでは簡潔さのために説明を省略する。
【0094】
[00105]通信サーバ820は、ネットワークデバイス805とユーザデバイス810との間の通信チャネルを確立し得るか、またはその確立を促進し得る。
図8に例示されるように、通信サーバ820は、通信チャネルC840を確立し得、これは、ネットワークデバイス805とユーザデバイス810が、1つまたは複数のメッセージを交換することを可能にする。非限定的な例として、通信チャネルC840は、ウェブサイトのウェブチャット機能であり得、通信チャネルB835は、モバイルデバイス(例えば、スマートフォン)上で実行中のチャットアプリケーションであり得、通信チャネルA830は、エージェントがユーザと通信することを可能にするボイスオーバーインターネットプロトコル(VOIP)オーディオチャネルであり得る。
【0095】
[00106]通信サーバ820は、ネットワークデバイス805と自律的に通信するようにボット825を構成し得る。いくつかの実装形態では、ボット825は、ボット825が通信チャネルC840を使用してネットワークデバイス805と通信することを可能にする、1つまたは複数のプロトコルにアクセスし、それを実行し得る。上記の非限定的な例を続けると、ボット825は、ウェブサイトのウェブチャット機能を介して通信するためのプロトコルにアクセスし、それを実行し得る。この例では、プロトコルは、ウェブチャット機能を使用してメッセージを交換するための、ウェブチャット機能に固有のコーディング言語を含み得る。プロトコルは、実行されると、端末デバイス810においてエージェントによって入力されたメッセージ(例えば、テキスト文字列または他のコンテンツ)を構造化コンテンツ(例えば、独立したデータフィールドに分離されたコンテンツ)に変換し、構造化コンテンツをウェブサイトのウェブチャット機能の要素にマッピングするコードを含み得る。端末デバイス810において(例えば、エージェントによって)入力が受信されると、ボット825は、メッセージがウェブチャット機能を使用して通信されることを可能にするために、構造化コンテンツをウェブチャット機能の要素にトランスレートし得る。
【0096】
[00107]いくつかの実装形態では、ボット825はまた、通信チャネルB835を使用してネットワークデバイス805と通信するように構成され得る。通信チャネルB835は、通信チャネルC840とは異なる通信チャネルであり得る。さらに、通信チャネルB835は、通信を促進するために、通信チャネルC840に必要とされる要素とは異なる要素を必要とし得る。ボット825は、構造化コンテンツを通信チャネルB835の要素にトランスレートするように構成され得る。上記で説明された非限定的な例を続けると、通信チャネルB835は、スマートフォン上で実行中のネイティブアプリケーションのアプリ内チャット機能であり得る。1つまたは複数の要素が、通信チャネルB835を使用した通信を促進するために必要とされ得る。例えば、FACEBOOK MESSENGERは、スマートフォン上で実行中のネイティブアプリケーションであり得る。この例では、FACEBOOK MESSENGERの1つまたは複数の要素は、FACEBOOK MESSENGERを使用して通信を促進するために必要とされる、FACEBOOK MESSENGERに固有のテンプレートであり得る。ボット825が通信チャネルB835を使用して通信することを可能にするプロトコルは、FACEBOOK MESSENGERアプリケーション内のメッセージとして構造化コンテンツを送信するために、構造化コンテンツをFACEBOOK MESSENGERネイティブアプリケーションのテンプレートにマッピングし得る。
【0097】
[00108]いくつかの例では、モバイルアプリケーション(例えば、モバイルネイティブアプリケーション)は、ネットワークデバイス(例えば、スマートフォン)のオペレーティングシステムを使用して実行され得る(モバイルデバイスに、または1つもしくは複数の外部サーバに記憶された)実行可能コードを含み得る。いくつかの例では、モバイルアプリケーションは、(モバイルデバイスにおいて生成および記憶される)ネイティブユーザインターフェース(UI)コンポーネントから構成されるが、(例えば、ウェブベースのコーディング言語を使用して)インタープリタ型言語で記述されているハイブリッドモバイルアプリケーションを含み得る。本開示は、モバイルネイティブアプリケーションまたはハイブリッドアプリケーションに限定されず、したがって、任意のタイプのモバイルアプリケーションが、本明細書で説明される方法において使用され得る。
【0098】
[00109]いくつかの実装形態では、ボット825はまた、通信チャネルA830を使用してネットワークデバイス805と通信するように構成され得る。通信チャネルA835は、通信チャネルC840および通信チャネルB835とは異なる通信チャネルであり得る。さらに、通信チャネルA830は、通信を促進するために、通信チャネルC840および通信チャネルB835に必要とされる要素とは異なる要素を必要とし得る。ボット825は、構造化コンテンツを通信チャネルA830の要素にトランスレートするように構成され得る。上記で説明された非限定的な例を続けると、通信チャネルA830は、ネットワークデバイス805とユーザデバイス810との間のVOIPオーディオ通信リンクであり得る。1つまたは複数の要素が、通信チャネルA830を使用した通信を促進するために必要とされ得る。プロトコルは、通信チャネルA830に関連付けられた要素への構造化コンテンツのマッピングを含み得る。
【0099】
[00110]いくつかの実装形態では、通信サーバ820は、ボット825が通信チャネルにかかわらずネットワークデバイス805と継続的に通信し得るように、異なる通信チャネル間で通信セッションを動的に、自律的に、および/または自動的に転送するように構成され得る。例えば、ネットワークデバイス805は、第1の通信チャネル845(すなわち、通信チャネルC840)を使用して、ユーザデバイス810と通信していることがあり得る。ネットワークデバイス805は、ネットワークデバイス805を操作しているユーザが、通信セッションのために現在使用されている通信チャネルを変更しようと意図していることを示すメッセージを送信し得る。例えば、ネットワークデバイス805は、第2の通信チャネル850が、ユーザデバイス810との通信セッションを継続するためのターゲット通信チャネルであることを示し得る。ボット825は、通信チャネルが第1の通信チャネル845から第2の通信チャネル850に変更されるべきであるというインジケーションを自動的に検出し得る。例えば、ボット825は、通信チャネルが変更されるべきであることを検出するために、通信セッション中に交換されるメッセージを継続的に評価し得る。通信チャネルが変更されるべきであるというインジケーションを検出すると、通信サーバは、ネットワークデバイス805に関連付けられたユーザ識別子を識別し得る。例えば、ユーザデータデータベース815は、様々なユーザのためのユーザ識別子を記憶し得る。ユーザ識別子は、ネットワークデバイスを一意に識別するテキストおよび/または数字の文字列であり得る。任意の所与の時間において、通信サーバ820が、同じユーザ識別子が2つのアクティブな通信チャネルに関連付けられていると決定した場合、通信サーバ820は、ネットワークデバイスが通信セッションを継続するが、通信チャネルを変更することを要求していると認識し得る。
【0100】
[00111]通信サーバ820は、異なる通信チャネル間の継続性をサポートするように構成され得る。例えば、ターゲット通信チャネル(例えば、第2の通信チャネル850)は、第1の通信チャネル845の代わりに第2の通信チャネル850を使用してではあるが、ネットワークデバイス805との通信セッションを継続するために、ボット825によって自動的に使用され得る。いくつかの実装形態では、ボット825は、第2の通信チャネル850を使用して、ネットワークデバイス805にメッセージを自動的に送信し得る。ネットワークデバイス805にメッセージを送信することは、通信チャネルの転送が完了したことをネットワークデバイス805に示し得る。いくつかの実装形態では、通信サーバ820は、通信チャネルが第1の通信チャネル845から第2の通信チャネル850に変更されたことを自動的に検出し得る。例えば、通信サーバ820は、ネットワークデバイス805が第1の通信チャネル845を使用してボット825と通信しているときに、ネットワークデバイス805に関連付けられたユーザ識別子を認識し得る。ネットワークデバイス805が(例えば、通信セッション中に通信チャネルを変更する意図を示すことなく)第2の通信チャネル850の使用を開始した場合、通信サーバ820は、ネットワークデバイス805についてのユーザ識別子が、現在2つのアクティブな通信チャネル(例えば、第1の通信チャネル845および第2の通信チャネル850)に関連付けられていることを自動的に検出し得る。通信サーバ820は、第1の通信チャネル845がメッセージの最近の履歴(例えば、過去5分以内に送信または交換されたメッセージ)に関連付けられていること、および、第2の通信チャネル850がメッセージの最近の履歴(例えば、過去数分以内)に関連付けられていないことを検出し得る。結果として、通信サーバ820は、ネットワークデバイス805が通信セッションを第1の通信チャネル845から第2の通信チャネル850に転送することを要求していると決定し得る。通信サーバ820は、第2の通信チャネル850に関連付けられたプロトコルにアクセスし、ボット825またはユーザデバイス810が、第1の通信チャネル845を使用する代わりに、第2の通信チャネル850を使用してネットワークデバイス805と通信することを可能にするために、アクセスされたプロトコルを使用してボット825を実行することによって、転送を実施し得る。
【0101】
[00112]いくつかの実装形態では、1つまたは複数の機械学習技法が、ネットワークデバイス805の通信チャネル使用におけるパターンを識別するために使用され得る。例えば、ネットワークデバイス805による通信チャネルの使用は、追跡および記録され得る(および履歴データとして記憶され得る)。特定のエンティティ(例えば、ボット、企業、端末デバイス、エージェント等)と通信するときに、どの通信チャネルをネットワークデバイス805が使用する可能性が最も高いかを識別するために、機械学習技法が履歴データに適用され得る。ユーザデバイス810(またはボット825もしくはその他任意の端末デバイス)からネットワークデバイス805への通信を開始するとき、通信サーバ820は、(機械学習技法の結果に基づいて)ネットワークデバイス805が使用する可能性が最も高いタイプの通信チャネルを確立し得る。ネットワークデバイス805が異なる通信チャネルをより頻繁に使用し始めるにつれて、通信サーバ820は、この変化する傾向を識別し、最も使用されている、または最も頻繁に使用されている通信チャネルを使用して、通信セッションを開始し得る。
【0102】
[00113]
図9は、機械学習技法を使用してエンドポイント選択を向上させるためのネットワーク環境900を表すブロック図を示す。ネットワーク環境900は、ネットワークデバイス905(ユーザによって操作される)と、通信サーバ910と、ボット915と、ユーザデバイス920と、を含み得る。通信サーバ910は、ネットワークデバイス905ならびに少なくとも1つのボット915および端末デバイス920が通信することを可能にする通信チャネルの確立を促進し得る。
【0103】
[00114]通信サーバ910は、インテリジェントルーティングシステム925と、メッセージ推奨システム930と、メッセージデータストア935と、を含み得る。インテリジェントルーティングシステム925およびメッセージ推奨システム930の各々は、ある特定の動作を実施するための命令を実行する、プロセッサとメモリとを有する1つまたは複数のコンピューティングデバイスを含み得る。いくつかの実装形態では、インテリジェントルーティングシステム925は、ネットワークデバイスから受信された通信を適切な宛先にインテリジェントにルーティングするように構成されたボットであり得る。インテリジェントルーティングシステム925は、1つまたは複数の機械学習技法または人工知能技法に、メッセージをインテリジェントにルーティングすることを行わせるコードを実行するように構成された1つまたは複数のプロセッサを含み得る。いくつかの実装形態では、インテリジェントルーティングシステム925は、ネットワークデバイス905から受信されたメッセージに関連付けられた宛先を予測するモデルを訓練するために、1つまたは複数の機械学習技法を実行し得る。
【0104】
[00115]非限定的な例として、インテリジェントルーティングシステム925は、通信サーバ910(例えば、ユーザが様々なデバイスにわたって互いに通信することを可能にするように構成されたネイティブアプリケーション)によって確立または促進された通信チャネルを通じて、ネットワークデバイス905からメッセージを受信し得る。インテリジェントルーティングシステム925は、上記で説明されたある特定の実施形態にしたがって、到来するメッセージを評価し得る。例えば、インテリジェントルーティングシステム925は、訓練された機械学習モデルを使用して、受信されたメッセージに含まれるコンテンツ(例えば、テキスト、オーディオクリップ、画像、エモティコン、または他の好適なコンテンツ)を評価し得る。メッセージのコンテンツは、予測された宛先(例えば、特定の端末デバイスまたはボット)を生成するために、機械学習モデルに入力され得る。機械学習モデルは、ネットワークデバイス905から受信されたフィードバック信号940に基づいて、継続的に訓練され得る。いくつかの実装形態では、インテリジェントルーティングシステム925は、予測された宛先についてネットワークデバイス905からの確認応答を要求し得る。非限定的な例として、インテリジェントルーティングシステム925は、機械学習技法を使用してメッセージを評価し得、評価の結果は、ボット915がメッセージについての宛先であるという予測を含み得る。確認するために、インテリジェントルーティングシステム925は、フィードバック信号940を自動的に要求し得る。例えば、フィードバック信号940は、ネットワークデバイス905に対して、ボット915がメッセージ(例えば、「技術サポートが正しい宛先でしょうか?」)についての正しい宛先であるかどうかを確認応答することを求める要求を含み得る。ネットワークデバイス905が、ボット915が正しい宛先(例えば、ネットワークデバイス905を操作するユーザによって意図された宛先)であるという確認応答を送信した場合には、インテリジェントルーティングシステム925は、受信されたメッセージと全く同じまたは類似のコンテンツ(例えば、コンテンツにおいて10パーセントの差等の、類似性の閾値)を含む将来のメッセージが、ボット915にルーティングされるべきであることを予測するように、機械学習モデルを訓練し得る。しかしながら、インテリジェントルーティングシステム925が、ボット915が受信されたメッセージについての正しいまたは意図された宛先ではなく、むしろユーザデバイス920が正しいまたは意図された宛先であったことを示すフィードバック信号940を受信した場合、インテリジェントルーティングシステム925は、受信されたメッセージと全く同じまたは類似のコンテンツを含む将来のメッセージが、(ボット915の代わりに)ユーザデバイス920にルーティングされることになるように、機械学習モデルを訓練し得る。いくつかの実装形態では、インテリジェントルーティングシステム925は、将来のメッセージを端末デバイス920にルーティングするように機械学習モデルを直ちに更新または訓練しない場合があり、むしろ、インテリジェントルーティングシステム925は、受信されたメッセージと全く同じまたは類似のコンテンツを有する全ての将来のメッセージをユーザデバイス920にルーティングする前に、ボット915への正しくないルーティングの閾値数まで待ち得る。非限定的な例として、インテリジェントルーティングシステム925は、ネットワークデバイスが、ボット915が正しいまたは意図された宛先ではないことを示すフィードバック信号を送信してきた5つの事例の後に、(ボット915にルーティングされるべきであると予測されていた)将来のメッセージを、ボット915の代わりにユーザデバイス920にルーティングし始め得る。
【0105】
[00116]いくつかの実施形態では、インテリジェントルーティングシステム925は、メッセージ中の特定の要求を処理するための受信された入札(bids)に基づいて、所与のメッセージをどこにルーティングするかを選択し得る。インテリジェントルーティングシステム925は、異種サービスにインテントをブロードキャストし、誰が要求を処理することに入札することを希望しているかを決定し得る。入札当事者は、要求を成功裏に処理するその自信のレベル(level of confidence)と、要求の処理を実行する計画とで応答し得る。インテリジェントルーティングシステム925は、入札当事者からの全ての応答を評価し、機械学習ポリシーに基づいて、所与のメッセージに対してどの入札当事者を使用すべきかを決定し得る。
【0106】
[00117]メッセージデータストア935は、1つまたは複数のネットワークデバイスから過去に受信された(例えば、全てではないが)いくつかまたは全てのメッセージを記憶し得る。さらに、メッセージデータストア935はまた、ネットワークデバイスとの以前の通信セッション中に端末デバイスまたはボットによって送信された一部または全てのメッセージを記憶し得る。メッセージデータストア935はまた、通信セッション中にネットワークデバイスによってボットに送信された一部または全てのメッセージを記憶し得る。さらに、メッセージデータストア935は、通信セッション中にボットによってネットワークデバイスに送信された一部または全てのメッセージを記憶し得る。いくつかの実装形態では、メッセージデータストア935は、通信サーバ910によって処理された(例えば、それによって送信された、またはそれにおいて受信された)全てのメッセージのデータベースであり得る。
【0107】
[00118]メッセージ推奨システム930は、メッセージデータストア935において記憶されたメッセージのデータベースを分析し得る。メッセージデータストア935内のメッセージのデータベースには、ユーザと、ボット、エージェント、または他のエンドポイントとの間の1つまたは複数の質問と回答、クエリと応答、および他の通信セットが含まれ得る。通信セットは、ユーザとの通信の成功に関する格付けまたは評価にさらに関連付けられ得る。いくつかの実施形態では、メッセージ推奨システム930は、質問および回答の主題に関する専門知識を有すると識別されたユーザから、質問と回答を求め得る。選択された質問と回答のセットは、メッセージ推奨システム930によって、ネットワークデバイス905のユーザにさらに提供および提示され得る。ネットワークデバイス905のユーザによって設定された特定の質問と回答の選択に関する情報は、メッセージデータストア935において追跡され得、ならびにネットワークデバイス905を、選択された質問と回答に関連付けられたエキスパートのユーザデバイス920に接続するために、インテリジェントルーティングシステム925によって使用され得る。ネットワークデバイス906とユーザデバイス920との間のインタラクションにおける成功または不成功(lack thereof)(ユーザ満足度の割り当てられたスコアまたは観察されたインジケータによって示される)は、メッセージデータストア935にさらに記憶され、その後、後続のルーティング決定を改良するために使用され得る。例えば、ユーザデバイス920のエキスパートとの成功したインタラクションは、質問と回答の主題に関わるより後続の会話(more subsequent conversations)をルーティングするために使用され得る。
【0108】
[00119]いくつかの実装形態では、メッセージ推奨システム930は、1つまたは複数の機械学習アルゴリズムまたは人工知能アルゴリズムを使用して、メッセージデータストア935に記憶されたメッセージを評価し得る。例えば、メッセージ推奨システム930は、メッセージデータストア935に記憶されたメッセージのデータベースに対して、K平均クラスタリング(K-means clustering)、平均シフトクラスタリング、雑音を伴うアプリケーションの密度ベースの空間クラスタリング(DBSCAN:Density-Based Spatial Clustering of Applications with Noise)クラスタリング、混合ガウスモデル(GMM:Gaussian Mixture Models)を用いた期待値最大化(EM:Expectation-Maximization)クラスタリング、および他の好適な機械学習アルゴリズム等の、1つまたは複数のクラスタリングアルゴリズムを実行し得る。いくつかの実装形態では、リカレント型ニューラルネットワーク(RNN:recurrent neural network)または畳み込みニューラルネットワーク(CNN:convolutional neural network)が、エージェントを支援するために、応答メッセージを予測するために使用され得る。いくつかの実装形態では、メッセージ推奨システム930は、通信セッション中にネットワークデバイスから受信される到来するメッセージに対する応答を予測するために、サポートベクターマシン(SVM:support vector machines)、教師あり、半教師あり、アンサンブル技法、または教師なし機械学習技法を使用して、全ての以前のメッセージを評価し得る。例えば、メッセージ推奨システム930は、ネットワークデバイスから受信されたメッセージ(または、ボットもしくは端末デバイスからの、通信サーバ910において受信されたメッセージ)のコンテンツを評価し、評価の結果をメッセージデータストア935に記憶された以前のメッセージの1つまたは複数のクラスタと比較し得る。クラスタが識別されると、メッセージ推奨システム930は、信頼度閾値に基づいて、最も関連性の高い応答メッセージを識別し得る。例えば、(例えば、通信サーバ910においてネットワークデバイス905から受信された)到来するメッセージは、到来するメッセージのコンテンツに基づく技術的問題に対応し得る。メッセージ推奨システム930は、到来するメッセージのコンテンツの評価(例えば、テキスト評価)に基づいて、到来するメッセージが技術的問題に対応することを識別し得る。メッセージ推奨システム930は、技術的問題に関連付けられたメッセージのクラスタを識別するために、メッセージデータストア935にアクセスし得る。メッセージ推奨システム930は、信頼度閾値に基づいて、メッセージのクラスタ内の1つまたは複数の応答メッセージ(および関連付けられたエンドポイント)を選択し得る。例えば、技術的問題に関するエキスパートは、過去に同様の問題を解決することに成功したと識別され得、この識別に基づいて、技術的問題のインジケータを示すことが観察されているか、またはそれを通信するネットワークデバイス905に動的にルーティングされ得る。非限定的な例として、信頼度アルゴリズムが、信頼度スコアを生成するために実行され得る。信頼度スコアは、パーセンテージが低いほど、到来するメッセージに対して応答が良好な予測である可能性が低くなり、パーセンテージが高いほど、到来するメッセージに対して応答が良好な予測である可能性が高くなる、パーセンテージ値であり得る。最小信頼度閾値は、各発見されたパターンに関連付けられた確実性または信用性の尺度として定義され得る。さらに、信頼度アルゴリズムの例は、アプリオリアルゴリズム(Apriori Algorithm)、2つのデータセット間の類似性を示す類似性アルゴリズム、および他の好適な信頼度アルゴリズムであり得る。
【0109】
[00120]
図10は、ネットワークデバイスとの通信セッション中に、ボットとユーザデバイスとの間で切り替えるための例となるプロセスを示す。ステップ1005において、メッセージが、第1のユーザから受信される。メッセージは、質問を含み得る。例えば、メッセージは、「ニューヨークからロサンゼルスまでの最も安いフライトは何ですか?」と述べ得る。しかしながら、質問は、ニュース、天気、スポーツ、ショッピング、技術、娯楽、旅行、および/または同様のもの等、任意のトピックに関連し得ることが企図される。
【0110】
[00121]ステップ1010において、メッセージに対する応答が受信される。応答は、質問に対する回答を含み得る。例えば、「ロサンゼルスへの最も安いフライトは何ですか?」という質問に対する応答は、「Great Airwaysのニューヨークからロサンゼルスへの$287のフライトがあります」であり得る。いくつかの実施形態では、メッセージおよび応答の両方が、第1のユーザから受信され得る。他の実施形態では、メッセージおよび応答は、異なるユーザから受信され得る。
【0111】
[00122]ステップ1015において、質問および回答は、第2のユーザのデバイスに公開され得る。質問および回答は、第2のユーザの1つまたは複数の特性に基づいて、第2のユーザのために選択され得る。例えば、クッキーまたは閲覧履歴情報が、第2のユーザの関心、デモグラフィック情報(demographic information)、および/または同様のものを決定するために、第2のユーザについてアクセスされ得る。上記の例では、第2のユーザは、ニューヨークに住んでおり、頻繁に旅行していると決定され得る。したがって、この特定の質問および回答は、第2のユーザのデバイスに対して公開され得る。
【0112】
[00123]ステップ1020において、フォローアップ要求が、第2のユーザのデバイスから受信される。フォローアップ要求は、回答に関する更なる情報を求め得る。上記の例では、フォローアップ要求は、「そのフライトは、いつ利用可能ですか?」と尋ね得る。ステップ1025において、通信セッションが、第1のユーザと第2のユーザとの間で促進され得る。第1のユーザは、更なる情報を第2のユーザに提供し得る。上記の例では、更なる情報は、「火曜日午前7時」であり得る。
【0113】
[00124]ステップ1030において、セッションデータは、履歴データとして保存され得る。第1のユーザと第2のユーザとの間のインタラクションに関する情報および通信に加えて、セッションデータは、第1のユーザに提示された質問および回答と、閲覧のための質問および回答のうちの1つまたは複数の、第1のユーザの選択と、質問および回答のいずれかに関連する任意のフォローアップ要求と、ユーザ間の一致の品質に関連する格付けまたは他のインジケータと、を含み得る。例えば、第2のユーザは、第1のユーザとのインタラクションに関するコメントを提供するのみならず、直接数値的な、カテゴリ的な、または他のタイプの格付けを与え得る。いくつかの実施形態では、ユーザ評価は、会話における後続のコメントまたはとられた更なるアクション(例えば、同じ質問を再び尋ねること)から推論され得る。このようなコメントまたはアクションは、現在のインテントが満たされなかった可能性があることを示し得、このような事例では、ボットが、当初のインテントの決定が正確でなかった可能性があるかどうか、または第1のユーザがインテントを満たせなかったかどうかに関して、フォローアップ質問を尋ねるタスクを課され得、ならびに、何故かまたは何故そうでなかったかの考えられる理由を決定し得る。通信およびインタラクションに関するメタデータがまた、セッションのデータに含まれ、履歴データとして記憶され得る。
【0114】
[00125]ステップ1035において、異なるユーザへの質問および回答のマッチング、異なるユーザ(ならびにエージェントおよびボット)間での会話のルーティング、ならびに会話のエンドポイントの切替えに関する決定を含む、ユーザおよび類似のユーザに関する決定を改良するために、履歴データが、人工知能および機械学習技法にしたがって使用され得る。したがって、例示的な実施形態では、ボットとの会話に従事しているユーザは、履歴データに基づいてある特定のトピックに関心がある可能性が高いと識別され得、したがって、そのようなトピックに関連付けられた1つまたは複数の異なるエンドポイント(例えば、専門ボット、エージェント、エキスパート、ブランド担当者)にリアルタイムで動的に接続され得る。例えば、このような識別は、ステップ1005~1030に関して上記で説明されたセッションと一致する挙動のインジケータまたはパターンを現在示しているユーザに動的かつリアルタイムに基づき得る。さらに、1つまたは複数の予測は、ある特定のトピック、サービス、または機能に関連して従事またはインタラクトするインテントを含む、ユーザの1つまたは複数のインテントに関して、リアルタイムで動的に行われ得る。したがって、応答アクションもまた、(1つまたは複数の)予測されたインテントに基づいて、動的かつリアルタイムで行われ得る。このようなアクションは、決定されたエンドポイントにリアルタイムで動的に接続され得るユーザに関連する異なるルーティングまたはスイッチング決定を含み得る。エンドポイントに関する決定は、予測、ならびにユーザに関するリアルタイムデータに基づき得る。したがって、経時的に、
図10に例示される方法は、異なるユーザ間の専門知識の領域を識別し、エキスパートユーザをそのような専門知識に関心がある可能性が高い他のユーザに接続すること可能にするのみならず、将来の決定を通知および改良するために使用され得るフィードバックおよび他のデータももたらす。
【0115】
[00126]
図11A~
図11Nは、通信セッション中にボットとユーザデバイスとの間でインタラクションを切り替えるために使用されるグラフィカルユーザインターフェースのスクリーンショットである。
図11Aにおいて、ユーザは、システム(すなわち、ボット)とのダイアログを開く。システムは、複数の質問を表示し得る。質問は、ユーザのデモグラフィックス、閲覧履歴、関心および/または同様のものに基づいて選択され得る。いくつかの実施形態では、質問は、タイミング、例えば、投稿された最も新しい質問および回答、人気、最高格付け等に基づいて選択され得る。
図11B~
図11Eにおいて、ユーザは、どの質問を選択するかを決定するために、表示されている利用可能な質問をスクロールする。
図11Fにおいて、ユーザは、回答したい質問を選択する。この例では、彼は、「ブルックリンでお気に入りのレストランはどこですか?」を選択した。
図11Gにおいて、ユーザは質問に回答する。ユーザはまた、回答の品質に対する格付けの形でフィードバックを受け取る。格付けは、システムによって提供され得るか、または投稿された質問および回答をレビューしている他のユーザから求められ得る。
【0116】
[00127]
図11Hにおいて、システムは、別の回答を提供したい質問があるかどうかをユーザに尋ねる。
図11Iにおいて、ユーザは、「NYCで食事をするのに絶好の場所はどこですか?」と尋ねる。ユーザは回答を求められ、
図11Jにおいて、質問および回答のプレビューがユーザに表示される。
図11Kにおいて、ユーザは、システムに質問および回答を公開するように求め、システムはそれを公開する。次いで、システムは、別のユーザであるJeffが、公開された質問および回答に関連するフォローアップ質問を有していることを述べる。
図11Lにおいて、システムは、フォローアップ質問を表示し、Jeffとの通信セッションを開くか、またはJeffと話すことを拒否するかのいずれかを行うためのボタンを提供する。
図11Mにおいて、ユーザは、Jeffとの通信セッションを開くことを決定する。
図11Mに示されるように、Jeffは、電話番号または個人情報が示されないように、同じグラフィカルインターフェース上でユーザと通信することが可能である。ユーザは、Jeffのフォローアップ質問に回答することが可能であり、Jeffは、
図11Nにおいて会話を閉じる。次いで、会話は、ボットへと戻される。
図11Nにおいて、ユーザは、格付けの形で、彼自の回答の有用性または会話に関するフィードバックを得ることができる。
【0117】
[00128]
図12A~
図12Rは、通信セッション中にボット間を切り替えるために使用されるグラフィカルユーザインターフェースのスクリーンショットである。
図12Aより前に、ユーザが通信セッションを開くことができるいくつかの質問および回答が表示され得る。
図12Aにおいて、ユーザは、Vodafoneとの通信セッションを開くことを求める。システム(すなわちボット)は、Vodafoneとの会話が終了した後に、システムに戻る方法をユーザに通知する。
図12Bは、Vodafoneとのユーザの会話を示しており、ここで、ユーザは、例えば、「料金を下げるにはどうすればよいですか?」という質問をし得る。Vodafoneは、別個のもしくは同じボットによって、または端末デバイス上のエージェントによって操作され得る。
図12Cは、ユーザのデバイス上の会話のリストを示す。
図12Dにおいて、ユーザは、システム(すなわち、「Maven」)を選択し、ボットとの会話に戻り得る。ユーザが戻ったと述べると、システムは、ユーザがVodafoneとの会話を開いてから後に、受信されたまたは置かれた(located)更なる質問および回答を表示し得る。
図12Eにおいて、ユーザは、現在の回答が不十分であるかまたは望ましくない場合、もっと多くの回答を求め得る。
図12Fにおいて、システムは、更なる質問および回答を表示し得、ユーザは、表示された質問および回答を格付けし得る。ユーザは、更なる情報を要求するために、回答を提供した人物との会話をさらに開始し得る。
【0118】
[00129]
図12Gにおいて、システムは、他のユーザとの通信セッションを開き、要求しているユーザに、システムに戻る方法について指示する。
図12Hは、質問および回答に関する他のユーザとの会話を示す。
図12Iは、商品またはサービスに対する質問および回答の作成者を雇うために、どのようにシステムが使用され得るかを示す。
図12Jは、支払情報を収集するためのインターフェースを示す。
図12Kは、時間期間によって支払うときに、エキスパートがどれだけ長く使用されているかを合計するタイマを示す。
図12Lは、更なる会話を促進するために、ユーザをチャット画面に戻し得る。
【0119】
[00130]
図12Mは、ユーザによる全ての会話のリストを示す。
図12Nに示されるように、ユーザは、システムとの会話に戻るために、システム(すなわち、「Maven」)を選択し得る。
図12Nにおいて、システムは、ユーザが会話から離れていた間に受信された任意の新しい関連する(または無関係な)質問および回答を表示し得る。
【0120】
[00131]
図12Oにおいて、ユーザは、異なる会話を開始するために、異なる質問および回答を選択し得る。メッセージが、新たに選択された質問および回答の作成者から、ユーザに送られ得る。
図12Pは、作成者との開かれた会話、ならびに交換された質問および回答を示している。
図12Qは、ユーザがそこから新しい会話を選択し得るか、またはシステム(すなわち、「Maven」)に戻り得る、全ての会話のリストを示している。ユーザは、会話に戻ったことを述べ得、プロセスは継続し得る。
【0121】
[00132]開示される方法は、コンピューティングシステムを使用して実行され得る。例となるコンピューティングシステムは、プロセッサ(例えば、中央処理ユニット)、メモリ、不揮発性メモリ、およびインターフェースデバイスを含み得る。メモリは、データおよび/または1つまたは複数のコードセット、ソフトウェア、スクリプト等を記憶し得る。コンピュータシステムのコンポーネントは、バスを介して、または何らかの他の既知のもしくは便利なデバイスを通じて、互いに結合され得る。プロセッサは、例えば、例えばメモリに記憶されたコードを実行することによって、本明細書で説明された方法の全てまたは一部を行うように構成され得る。ユーザデバイスもしくはコンピュータ、プロバイダサーバもしくはシステム、またはサスペンドされたデータベース更新システム(a suspended database update system)のうちの1つまたは複数が、コンピューティングシステムまたはそのようなシステムの変形例のコンポーネントを含み得る。
【0122】
[00133]本開示は、限定はしないが、店舗販売時点情報管理システム(「POS:Point-of-Sale system」)を含む、任意の好適な物理的形態をとるコンピュータシステムを企図する。限定ではなく例として、コンピュータシステムは、埋込み型コンピュータシステム、システムオンチップ(SOC)、シングルボードコンピュータシステム(SBC)(例えば、コンピュータオンモジュール(COM)またはシステムオンモジュール(SOM)等)、デスクトップコンピュータシステム、ラップトップもしくはノートブックコンピュータシステム、インタラクティブキオスク、メインフレーム、コンピュータシステムのメッシュ、モバイル電話、携帯情報端末(PDA)、サーバ、またはこれらのうちの2つ以上の組合せであり得る。適切な場合、コンピュータシステムは、1つまたは複数のコンピュータシステムを含み得る;単一であり得るかまたは分散され得る;複数のロケーションにまたがり得る;複数の機械にまたがり得る;および/または1つまたは複数のネットワーク内の1つまたは複数のクラウドコンポーネントを含み得るクラウド内に存在し得る。適切な場合、1つまたは複数のコンピュータシステムは、実質的な空間的または時間的制限なしに、本明細書で説明または例示された1つまたは複数の方法の、1つまたは複数のステップを実行し得る。限定ではなく例として、1つまたは複数のコンピュータシステムは、リアルタイムまたはバッチモードにおいて、本明細書で説明または例示された1つまたは複数の方法の、1つまたは複数のステップを実行し得る。1つまたは複数のコンピュータシステムは、適切な場合、異なる時間または異なるロケーションにおいて、本明細書で説明または例示された1つまたは複数の方法の、1つまたは複数のステップを実行し得る。
【0123】
[00134]プロセッサは、例えば、Intel Pentium(登録商標)マイクロプロセッサまたはMotorola power PCマイクロプロセッサ等の従来のマイクロプロセッサであり得る。当業者であれば、「機械可読(記憶)媒体」または「コンピュータ可読(記憶)媒体」という用語が、プロセッサによってアクセス可能な任意のタイプのデバイスを含むことを認識するであろう。
【0124】
[00135]メモリは、例えばバスによって、プロセッサに結合され得る。メモリは、限定ではなく例として、ダイナミックRAM(DRAM)およびスタティックRAM(SRAM)等のランダムアクセスメモリ(RAM)を含み得る。メモリは、ローカル、リモート、または分散型であり得る。
【0125】
[00136]バスはまた、プロセッサを不揮発性メモリおよび駆動ユニットに結合し得る。不揮発性メモリは、多くの場合、磁気フロッピー(登録商標)もしくはハードディスク、光磁気ディスク、光ディスク、CD-ROM、EPROM、もしくはEEPROM(登録商標)等の読取専用メモリ(ROM)、磁気カードもしくは光カード、または大量のデータのための別の形態の記憶装置である。このデータの一部は、多くの場合、コンピュータにおけるソフトウェアの実行中に、ダイレクトメモリアクセスプロセスによって、メモリに書き込まれる。不揮発性記憶装置は、ローカル、リモート、または分散型であり得る。システムは、全ての適用可能なデータがメモリにおいて利用可能な状態で作成され得るので、不揮発性メモリはオプションである。典型的なコンピュータシステムは、通常、少なくともプロセッサと、メモリと、メモリをプロセッサに結合するデバイス(例えば、バス)と、を含むことになる。
【0126】
[00137]ソフトウェアは、不揮発性メモリおよび/または駆動ユニットに記憶され得る。実際、大きいプログラムの場合、プログラム全体をメモリに記憶することさえ可能でない場合がある。とはいえ、ソフトウェアを実行するためには、必要であれば、それは処理に適したコンピュータ可読ロケーションに移動され、例示を目的として、そのロケーションは、本明細書ではメモリと呼ばれることが理解されるべきである。ソフトウェアが実行のためにメモリに移動されるときでさえも、プロセッサは、ソフトウェアに関連付けられた値を記憶するためのハードウェアレジスタと、理想的には実行を高速化する機能を果たすローカルキャッシュとを利用し得る。本明細書で使用される場合、ソフトウェアプログラムは、ソフトウェアプログラムが「コンピュータ可読媒体で実装される」と言及されるとき、(不揮発性記憶装置からハードウェアレジスタまで)あらゆる既知のまたは便利なロケーションにおいて記憶されていると仮定される。プロセッサは、プログラムに関連付けられた少なくとも1つの値が、プロセッサによって可読なレジスタに記憶されているとき、「プログラムを実行するように構成されている」と見なされる。
【0127】
[00138]バスはまた、プロセッサをネットワークインターフェースデバイスに結合し得る。インターフェースは、モデムまたはネットワークインターフェースのうちの1つまたは複数を含み得る。モデムまたはネットワークインターフェースは、コンピュータシステムの一部であると見なされ得ることが理解されよう。インターフェースは、アナログモデム、統合サービスデジタルネットワーク(ISDN0モデム、ケーブルモデム、トークンリングインターフェース、衛星伝送インターフェース(例えば、「ダイレクトPC」)、またはコンピュータシステムを他のコンピュータシステムに結合するための他のインターフェースを含み得る。インターフェースは、1つまたは複数の入力および/または出力(I/O)デバイスを含み得る。I/Oデバイスは、限定ではなく例として、キーボード、マウスまたは他のポインティングデバイス、ディスクドライブ、プリンタ、スキャナ、ならびにディスプレイデバイスを含む他の入力デバイスおよび/または出力デバイスを含み得る。ディスプレイデバイスは、限定ではなく例として、陰極線管(CRT)、液晶ディスプレイ(LCD)、または何らかの他の適用可能な既知のまたは便利なディスプレイデバイスを含み得る。
【0128】
[00139]動作中、コンピュータシステムは、ディスクオペレーティングシステム等のファイル管理システムを含むオペレーティングシステムソフトウェアによって制御され得る。関連付けられたファイル管理システムソフトウェアを有するオペレーティングシステムソフトウェアの一例は、ワシントン州レドモンドのMicrosoft社からのWindows(登録商標)として知られるオペレーティングシステムのファミリー、およびそれらの関連付けられたファイル管理システムである。その関連付けられたファイル管理システムソフトウェアを有するオペレーティングシステムソフトウェアの別の例が、Linux(登録商標)(商標)オペレーティングシステムおよびその関連付けられたファイル管理システムである。ファイル管理システムは、不揮発性メモリおよび/または駆動ユニットに記憶され得、プロセッサに、不揮発性メモリおよび/または駆動ユニット上にファイルを記憶することを含む、データを入力および出力し、メモリにデータを記憶するためにオペレーティングシステムによって必要とされる様々な動作を実行させ得る。
【0129】
[00140]発明を実施するための形態のいくつかの部分は、コンピュータメモリ内のデータビットに対する動作のアルゴリズムおよび記号表現によって提示され得る。これらのアルゴリズム的記述および表現は、データ処理技術分野の当業者によって、彼らの作業の内容を他の当業者に最も効果的に伝えるために用いられる手段である。アルゴリズムは、本明細書において、また一般に、所望の結果をもたらす、動作の首尾一貫したシーケンス(self-consistent sequence)であると考えられている。動作は、物理量の物理的操作を必要とするものである。必ずしもではないが、通常、これらの量は、記憶される、転送される、組み合わされる、比較される、または他の方法で操作されることが可能な電気信号または磁気信号の形態をとる。主に一般的な使用法の理由から、これらの信号を、ビット、値、要素、シンボル、文字、ターム(terms)、数字、または同様のものとして参照することが、時として好都合であることがわかっている。
【0130】
[00141]しかしながら、これらおよび同様の用語の全ては、適切な物理量に関連付けられるべきであり、これらの量に適用される単に便利なラベルに過ぎないということに留意されたい。別段に明記されていない限り、以下の説明から明らかなように、本説明全体を通して、「処理」または「コンピューティング」または「計算」または「決定」または「表示」または「生成」または同様のこと等の用語を用いる説明は、コンピュータシステムのレジスタおよびメモリ内で物理的な(電子的な)量として表されるデータを操作し、コンピュータシステムメモリもしくはレジスタもしくは他のそのような情報記憶装置、送信デバイスまたは表示デバイス内で物理量として同様に表される他のデータへと変換する、コンピュータシステムまたは同様の電子コンピューティングデバイスのアクションおよびプロセスを指すことが理解される。
【0131】
[00142]本明細書で提示されるアルゴリズムおよびディスプレイは、本質的に、いかなる特定のコンピュータまたは他の装置にも関連するものではない。様々な汎用システムが、本明細書の教示にしたがってプログラムとともに使用され得るか、またはいくつかの例の方法を実行するために、より特化された装置を構築することが好都合であるとわかる場合がある。様々なこれらのシステムのために必要とされる構造は、以下の説明から明らかになるであろう。加えて、本技法は、任意の特定のプログラミング言語を参照して説明されず、したがって、様々な例は、様々なプログラミング言語を使用して実装され得る。
【0132】
[00143]様々な実装形態では、システムは、スタンドアロンデバイスとして動作するか、または他のシステムに接続(例えば、ネットワーク接続)され得る。ネットワーク化された展開では、システムは、クライアントサーバネットワーク環境においてサーバまたはクライアントシステムのキャパシティで動作し得るか、またはピアツーピア(または、分散型)ネットワーク環境におけるピアシステムとして動作し得る。
【0133】
[00144]システムは、サーバコンピュータ、クライアントコンピュータ、パーソナルコンピュータ(PC)、タブレットPC、ラップトップコンピュータ、セットトップボックス(STB)、携帯情報端末(PDA)、携帯電話、iPhone(登録商標)、Blackberry(登録商標)、プロセッサ、電話、ウェブアプライアンス、ネットワークルータ、スイッチもしくはブリッジ、またはそのシステムによって行われるべきアクションを指定する命令のセットを(順次または他の方法で)実行することが可能な任意のシステムであり得る。
【0134】
[00145]機械可読媒体または機械可読記憶媒体が、例として、単一の媒体であるように示されている一方で、「機械可読媒体」および「機械可読記憶媒体」という用語は、1つまたは複数の命令セットを記憶する単一の媒体または複数の媒体(例えば、集中型もしくは分散型データベース、ならびに/または関連するキャッシュおよびサーバ)を含むものと解釈されるべきである。「機械可読媒体」および「機械可読記憶媒体」という用語はまた、システムによる実行のための命令セットを記憶、符号化、または搬送することが可能であり、かつ、システムに、本明細書で開示される方法またはモジュールのうちの任意の1つまたは複数を実行させる、任意の媒体を含むと解釈されるものとする。
【0135】
[00146]一般に、本開示の実装形態を実装するために実行されるルーチンは、「コンピュータプログラム」と呼ばれる、オペレーティングシステムの一部または特定のアプリケーション、コンポーネント、プログラム、オブジェクト、モジュール、もしくは命令のシーケンスとして実装され得る。コンピュータプログラムは、典型的に、コンピュータ内の様々なメモリおよび記憶デバイスに様々な時間において設定された1つまたは複数の命令を備え、それらの命令は、コンピュータ内の1つまたは複数の処理ユニットまたはプロセッサによって読み取られおよび実行されると、コンピュータに、本開示の様々な態様に関与する要素を実行するための動作を実行させる。
【0136】
[00147]さらに、例が、完全に機能するコンピュータおよびコンピュータシステムのコンテキストで説明されているが、当業者であれば、様々な例が様々な形態においてプログラムオブジェクトとして配布されることが可能であること、および本開示が、実際に配布を行うために使用される特定のタイプの機械可読媒体またはコンピュータ可読媒体にかかわらず、等しく適用されることを理解するであろう。
【0137】
[00148]機械可読記憶媒体、機械可読媒体、またはコンピュータ可読(記憶)媒体の更なる例は、限定はしないが、特に、揮発性および不揮発性メモリデバイス、フロッピーおよび他のリムーバブルディスク、ハードディスクドライブ、光ディスク(例えば、コンパクトディスク読取専用メモリ(CD ROMS)、デジタル多用途ディスク(DVD)等)等の記録可能なタイプの媒体、ならびにデジタルおよびアナログ通信リンク等の送信タイプの媒体を含む。
【0138】
[00149]いくつかの状況では、バイナリ1からバイナリ0への、またはその逆への状態における変化等のメモリデバイスの動作が、例えば、物理的変換等の変換を備え得る。特定のタイプのメモリデバイスでは、このような物理的変換は、異なる状態または物への物品(an article)の物理的変換を備え得る。例えば、限定はしないが、いくつかのタイプのメモリデバイスについては、状態における変化は、電荷の蓄積および貯蔵、または貯蔵された電荷の解放を伴い得る。同様に、他のメモリデバイスでは、状態の変化は、磁気方位における物理的変化もしくは変換、または結晶性から非結晶性への、もしくはその逆へ等の分子構造における物理的変化もしくは変換を備え得る。前述は、メモリデバイス中でのバイナリ1からバイナリ0への、またはその逆への状態における変化が物理的変換等の変換を備え得る、全ての例の網羅的なリストであるようには意図されない。むしろ、前述は、例示的な例として意図される。
【0139】
[00150]記憶媒体は、典型的に、非一時的であり得るか、または非一時的なデバイスを含み得る。このコンテキストでは、非一時的な記憶媒体は、有形であるデバイスを含み得、これは、デバイスがその物理的状態を変化させ得るが、デバイスが具体的な形のある物理的形態を有することを意味する。したがって、例えば、非一時的とは、状態におけるこの変化にもかかわらず、有形のままであるデバイスを指す。
【0140】
[00151]上記の説明および図面は例示的であり、主題を開示された厳密な形態に限定するものとして解釈されるべきではない。当業者は、多くの修正および変形が上記の開示に照らして可能であることを理解し得る。本開示の完全な理解を提供するために、多数の特定の詳細が説明された。しかしながら、ある特定の事例では、説明を不明瞭にすることを回避するために、周知または従来の詳細は説明されていない。
【0141】
[00152]本明細書で使用される場合、「接続された」、「結合された」という用語、またはそれらの任意の変形は、システムのモジュールに適用されるとき、2つ以上の要素間の直接的または間接的のいずれかの任意の接続または結合を意味し、要素間の接続の結合は、物理的、論理的、またはこれらの任意の組合せであり得る。加えて、「本明細書において」、「上記」、「以下」という用語、および同様の趣旨の用語は、本願で使用される場合、本願の任意の特定の部分ではなく、本願全体を指すものとする。コンテキストが許す場合、単数または複数の数を使用する上記の発明を実施するための形態における用語はまた、それぞれ複数または単数の数を含み得る。2つ以上のアイテムのリストに関する、「または(or)」という用語は、その用語の次の解釈の全てを網羅する:リスト中のアイテムのいずれか、リスト中のアイテムの全て、またはリスト中のアイテムの任意の組合せ。
【0142】
[00153]当業者であれば、開示された主題が、以下に示されていない他の形態および方法で具現化され得ることを理解するであろう。もしあれば、第1、第2、最上位および最下位等のような関係を示す用語の使用は、そのようなエンティティまたはアクション間の任意のそのような実際の関係または順序を必ずしも必要とすることまたは暗示することなく、1つのエンティティまたはアクションを別のものから区別するためにのみ使用されることが理解される。
【0143】
[00154]プロセスまたはブロックが所与の順序で提示されているが、代替の実装形態は、異なる順序で、ステップを有するルーチンを実行し得るか、またはブロックを有するシステムを用い得、いくつかのプロセスまたはブロックは、代替の組合せまたはサブ組合せを提供するために、削除、移動、追加、再分割、置換、組合せ、および/または修正され得る。これらのプロセスまたはブロックの各々は、様々な異なる方法で実装され得る。また、プロセスまたはブロックは、時として順次実行されるものとして示されているが、これらのプロセスまたはブロックは、代わりに、並行して実行され得るか、または異なった時間に実行され得る。さらに、本明細書に記載される任意の数は、単なる例であり、代替の実装形態は、異なる値または範囲を用い得る。
【0144】
[00155]本明細書で提供された開示の教示は、必ずしも上記で説明されたシステムではなく、他のシステムにも適用され得る。上記で説明された様々な例の要素および動作は、更なる例を提供するために組み合わされ得る。
【0145】
[00156]添付の出願書類に列挙され得る任意のものを含む、上記の任意の特許および出願ならびに他の参考文献は、参照により本明細書に組み込まれている。本開示の態様は、必要に応じて、上記で説明された様々な参考文献のシステム、機能、および概念を用いるために修正されて、本開示のなお更なる例を提供し得る。
【0146】
[00157]これらおよび他の変更が、上記の発明を実施するための形態に照らして、本開示に対して行われ得る。上記の説明は、ある特定の例を説明し、企図される最良のモードを説明しているが、上記がテキスト中でいかに詳細に書かれていたとしても、本教示は多くの方法で実施され得る。システムの詳細は、本明細書に開示される主題によって依然として包含されながらも、その実装形態の詳細において大幅に異なり得る。上述されたように、本開示のある特定の特徴または態様を説明するときに使用される特定の用語は、その用語が関連付けられている本開示の任意の特性、特徴、または態様に制限されるように、本明細書で再定義されていることを暗示するように解釈されるべきではない。一般に、以下の特許請求の範囲において使用される用語は、上記の発明を実施するための形態のセクションがそのような用語を明示的に定義しない限り、本開示を本明細書において開示される特定の実装形態に限定するように解釈されるべきではない。したがって、本開示の実際の範囲は、開示された実装形態だけでなく、特許請求の範囲の下で本開示を実施または実装する全ての同等な方法も包含する。
【0147】
[00158]本開示のある特定の態様がある特定の請求項の形態で以下に提示されるが、本発明者らは、本開示の様々な態様を任意の数の請求項の形態で企図する。35U.S.C.§112(f)の下で取り扱われることが意図される任意の請求項は、「~のための手段(means for)」という用語で始まることになる。したがって、本出願人は、本開示の他の態様についてのそのような追加の請求項の形態を追求するために、出願後に追加の請求項を追加する権利を留保する。
【0148】
[00159]本明細書で使用される用語は、一般に、本開示のコンテキスト内で、および各用語が使用される特定のコンテキストにおいて、当該技術分野におけるそれらの通常の意味を有する。本開示を説明するために使用されるある特定の用語は、本開示の説明に関して実施者に追加のガイダンスを提供するために、上記で説明されているか、または本明細書中の他の箇所で説明されている。便宜上、ある特定の用語は、例えば、大文字、イタリック体、および/または引用符を使用して、強調表示され得る。強調表示の使用は、用語の範囲および意味に影響を及ぼさず、用語の範囲および意味は、強調表示されているか否かにかかわらず、同じコンテキストにおいては同じである。同じ要素が1つより多くの方法で説明され得ることが理解されよう。
【0149】
[00160]結果として、代替の文言および同義語が、本明細書で説明される用語のうちの任意の1つまたは複数に対して使用され得、また、用語が本明細書で詳述または説明されている否かに対して、いかなる特別な重要性も置かれない。ある特定の用語の同義語が提供される。1つまたは複数の同義語の詳述は、他の同義語の使用を排除しない。本明細書で説明された任意の用語の例を含む、本明細書の任意の箇所における例の使用は、例示的なものに過ぎず、本開示のまたは任意の例示された用語の範囲および意味をさらに限定することは意図されていない。同様に、本開示は、本明細書で与えられる様々な例に限定されない。
【0150】
[00161]本開示の範囲をさらに限定することを意図せずに、本開示の例による機器(instruments)、装置、方法、およびそれらの関連する結果の例が以下に与えられる。タイトルまたはサブタイトルが、読者の便宜のために例において使用され得るが、これは決して本開示の範囲を限定すべきではないことに留意されたい。別段に定義されていない限り、本明細書で使用された全ての技術的および科学的用語は、本開示が関連する当該技術分野の当業者によって一般に理解されているものと同じ意味を有する。矛盾が生じた場合、定義を含めて本文書が優先されることになる。
【0151】
[00162]本説明のいくつかの部分は、情報に対する動作のアルゴリズムおよび記号表現によって例を説明している。これらのアルゴリズム的記述および表現は、データ処理技術分野の当業者によって、彼らの作業の内容を他の当業者に最も効果的に伝えるために一般的に用いられている。これらの動作は、機能的、コンピューティング処理的、または論理的に説明されているが、コンピュータプログラムもしくは同等の電気回路、マイクロコード、または同様のものによって実装されることが理解される。さらに、一般性を失うことなく、これらの動作の構成(arrangements)をモジュールと呼ぶことが時として好都合であることもわかっている。説明された動作およびそれらの関連付けられたモジュールは、ソフトウェア、ファームウェア、ハードウェア、またはこれらの任意の組合せで具現化され得る。
【0152】
[00163]本明細書で説明されたステップ、動作、またはプロセスの任意のものが、単独でまたは他のデバイスと組み合わせて、1つまたは複数のハードウェアモジュールまたはソフトウェアモジュールを用いて実行または実装され得る。いくつかの例では、ソフトウェアモジュールは、コンピュータプログラムコードを含むコンピュータ可読媒体を含むコンピュータプログラムオブジェクトで実装され、これは、説明されたステップ、動作、またはプロセスのいずれかまたは全てを実行するために、コンピュータプロセッサによって実行され得る。
【0153】
[00164]例はまた、本明細書の動作を実行するための装置に関係し得る。この装置は、必要とされる目的のために特別に構築され得、および/または、それは、コンピュータに記憶されたコンピュータプログラムによって選択的にアクティブ化または再構成される汎用コンピューティングデバイスを備え得る。このようなコンピュータプログラムは、コンピュータシステムバスに結合され得る、非一時的な有形のコンピュータ可読記憶媒体、または電子命令を記憶するのに好適な任意のタイプの媒体に記憶され得る。さらに、本明細書で言及される任意のコンピューティングシステムは、単一のプロセッサを含み得るか、または増大されたコンピューティング能力のために、マルチプロセッサ設計を用いたアーキテクチャであり得る。
【0154】
[00165]例はまた、本明細書で説明されたコンピューティングプロセスによって生成されるオブジェクトに関係し得る。このようなオブジェクトは、コンピューティングプロセスから生じる情報を備え得、ここで、情報は、非一時的な有形のコンピュータ可読記憶媒体上に記憶され、本明細書で説明されたコンピュータプログラムオブジェクトまたは他のデータ組合せの任意の実装形態を含み得る。
【0155】
[00166]本明細書で使用される文言は、主に読みやすさおよび教示目的のために選択されており、それは主題を線引きまたは制限するように選択されたものではない場合がある。したがって、本開示の範囲は、この発明を実施するための形態によってではなく、本明細書に基づく出願に関して発行される任意の特許請求の範囲によって限定されることが意図される。したがって、例の開示は、以下の特許請求の範囲に記載される主題の範囲を例示するものであり、限定するものではないことが意図される。
【0156】
[00167]コンテクスチュアル接続システムのためのシステムおよびコンポーネントの様々な実装形態の完全な理解を提供するために、前述の説明において特定の詳細が与えられた。しかしながら、当業者であれば、上記で説明された実装形態は、これらの特定の詳細なしに実施され得ることを理解されよう。例えば、回路、システム、ネットワーク、プロセス、および他のコンポーネントは、不要な詳細で実施形態を曖昧にしないために、ブロック図形式のコンポーネントとして示され得る。他の事例では、周知の回路、プロセス、アルゴリズム、構造、および技法が、これら実施形態を曖昧にすることを避けるために、不要な詳細なしで示され得る。
【0157】
[00168]また、個々の実装形態は、フローチャート、フロー図、データフロー図、構造図、またはブロック図として図示されるプロセスとして説明され得ることにも留意されたい。フローチャートは、順次プロセスとして動作を説明し得るが、動作の多くは、並行してまたは同時並行に実行され得る。加えて、動作の順序は並べ換えられ得る。プロセスは、その動作が完了したときに終了するが、図面に含まれていない追加のステップを有し得る。プロセスは、方法、関数、プロシージャ、サブルーチン、サブプログラム等に対応し得る。プロセスが関数に対応するとき、その終了は、関数が呼出し関数または主関数に戻ることに対応し得る。
【0158】
[00169]クライアントデバイス、ネットワークデバイス、および他のデバイスは、特に、1つまたは複数の集積回路、入力デバイス、出力デバイス、データ記憶デバイス、および/またはネットワークインターフェースを含むコンピューティングシステムであり得る。集積回路は、例えば、特に、1つまたは複数のプロセッサ、揮発性メモリ、および/または不揮発性メモリを含み得る。入力デバイスは、例えば、キーボード、マウス、キーパッド、タッチインターフェース、マイクロフォン、カメラ、および/または他のタイプの入力デバイスを含み得る。出力デバイスは、例えば、ディスプレイスクリーン、スピーカ、触覚フィードバックシステム、プリンタ、および/または他のタイプの出力デバイスを含み得る。ハードドライブまたはフラッシュメモリ等のデータ記憶デバイスは、コンピューティングデバイスがデータを一時的または永久的に記憶することを可能にし得る。ワイヤレスまたは有線インターフェース等のネットワークインターフェースは、コンピューティングデバイスがネットワークと通信することを可能にし得る。コンピューティングデバイスの例は、デスクトップコンピュータ、ラップトップコンピュータ、サーバコンピュータ、ハンドヘルドコンピュータ、タブレット、スマートフォン、携帯情報端末、デジタルホームアシスタント、ならびにコンピューティングデバイスが組み込まれている機械および装置を含む。
【0159】
[00170]「コンピュータ可読媒体」という用語は、限定はしないが、ポータブルまたは非ポータブル記憶デバイス、光記憶デバイス、ならびに(1つまたは複数の)命令および/またはデータを記憶するか、含むか、または搬送することが可能な様々な他の媒体を含む。コンピュータ可読媒体は、データが記憶され得かつワイヤレスにまたは有線接続を介して伝搬する搬送波および/または一時的な電子信号を含まない、非一時的な媒体を含み得る。非一時的な媒体の例は、限定はしないが、磁気ディスクまたは磁気テープ、コンパクトディスク(CD)もしくはデジタル多用途ディスク(DVD)等の光記憶媒体、フラッシュメモリ、メモリまたはメモリデバイスを含み得る。コンピュータ可読媒体は、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、または命令、データ構造、もしくはプログラムステートメントの任意の組合せを表し得るコードおよび/または機械実行可能命令を記憶し得る。コードセグメントは、情報、データ、引数、パラメータ、またはメモリコンテンツを渡すことおよび/または受け取ることによって、別のコードセグメントまたはハードウェア回路に結合され得る。情報、引数、パラメータ、データ等は、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク送信、または同様のことを含む、任意の好適な手段を介して渡され得るか、転送され得るか、または送信され得る。
【0160】
[00171]さらに、上記で説明された様々な例は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはこれらの任意の組合せによってさらに実装され得る。ソフトウェア、ファームウェア、ミドルウェアまたはマイクロコードで実装されるとき、必要なタスクを実行するためのプログラムコードまたはコードセグメント(例えば、コンピュータプログラム製品)は、コンピュータ可読媒体または機械可読媒体(例えば、プログラムコードまたはコードセグメントを記憶するための媒体)に記憶され得る。集積回路で実装される(1つまたは複数の)プロセッサが、必要なタスクを実行し得る。
【0161】
[00172]コンポーネントが、ある特定の動作を実行する「ように構成される」ものとして説明されている場合、このような構成は、例えば、動作を実行するように電子回路または他のハードウェアを設計することによって、動作を実行するようにプログラム可能な電子回路(例えば、マイクロプロセッサ、または他の好適な電子回路)をプログラミングすることによって、またはこれらの任意の組合せで、達成され得る。
【0162】
[00173]本明細書で開示された実装形態に関連して説明された様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、ファームウェア、またはこれらの組合せとして実装され得る。ハードウェアおよびソフトウェアのこの互換性を明確に例示するために、様々な例示的なコンポーネント、ブロック、モジュール、回路、およびステップが、概してそれらの機能の観点から上記で説明されてきた。このような機能が、ハードウェアとして実装されるか、またはソフトウェアとして実装されるかは、特定のアプリケーションおよびシステム全体に課せられる設計制約に依存する。当業者は、特定のアプリケーションごとに多様な方法において、説明された機能を実装し得るが、このような実装の決定は、本開示の範囲から逸脱を引き起こしていると解釈されるべきでない。
【0163】
[00174]本明細書で説明された技法はまた、電子ハードウェア、コンピュータソフトウェア、ファームウェア、またはこれらの任意の組合せで実装され得る。このような技法は、汎用コンピュータ、ワイヤレス通信デバイスハンドセット、またはワイヤレス通信デバイスハンドセットおよび他のデバイスにおけるアプリケーションを含む複数の用途を有する集積回路デバイス等の様々なデバイスのうちの任意のもので実装され得る。モジュールまたは構成要素として説明された任意の特徴は、集積論理デバイスにおいて共に、またはディスクリートではあるが相互動作可能な論理デバイスとして別々に実装され得る。ソフトウェアでインプリメントされる場合、本技法は、少なくとも部分的に、命令を含むプログラムコードを備えるコンピュータ可読データ記憶媒体によって実現され得、これら命令は、実行されると、上記で説明された方法のうちの1つまたは複数を実行する。コンピュータ可読データ記憶媒体は、コンピュータプログラム製品の一部を形成し得、これは、パッケージング材料を含み得る。コンピュータ可読媒体は、同期ダイナミックランダムアクセスメモリ(SDRAM)等のランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、不揮発ランダムアクセスメモリ(NVRAM)、電気的に消去可能なプログラマブル読取専用メモリ(EEPROM)、FLASH(登録商標)メモリ、磁気または光データ記憶媒体、および同様のもの等の、メモリまたはデータ記憶媒体を備え得る。本技法は、追加または代替として、少なくとも部分的に、伝搬された信号または波等の、コンピュータによってアクセス、読み取り、および/または実行され得、かつ、データ構造または命令の形態でプログラムコードを搬送または通信する、コンピュータ可読通信媒体によって実現され得る。
【0164】
[00175]プログラムコードは、プロセッサによって実行され得、これは、1つまたは複数のデジタルシグナルプロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルロジックアレイ(FPGA)、または他の同等の集積されたまたはディスクリートなロジック回路等の、1つまたは複数のプロセッサを含み得る。このようなプロセッサは、本開示において説明された技法のうちの任意のものを実行するように構成され得る。汎用プロセッサは、マイクロプロセッサであり得るが、代替として、このプロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシン(state machine)であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、例えば、DSPとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPコアと連携した1つまたは複数のマイクロプロセッサ、またはその他任意のこのような構成として実装され得る。したがって、本明細書で使用される場合、「プロセッサ」という用語は、前述の構造の任意のもの、前述の構造の任意の組合せ、または本明細書で説明された技法の実装に好適なその他任意の構造または装置を指し得る。加えて、いくつかの態様では、本明細書で説明された機能は、サスペンドされたデータベース更新システムの実装のために構成された専用のソフトウェアモジュールまたはハードウェアモジュール内で提供され得る。
【0165】
[00176]本技術の前述の詳細な説明は、例示および説明を目的として提示された。それは、網羅的であること、または本技術を開示された厳密な形態に限定することを意図したものではない。上記教示を踏まえて、多くの修正および変形が可能である。説明された実施形態は、技術の原理、その実際の適用を最もよく説明するために、また、他の当業者が、様々な実施形態において、および企図される特定の使用に適した様々な修正を伴って、技術を利用することを可能にするために選ばれた。本技術の範囲は、特許請求の範囲によって定義されることが意図される。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
コンピュータ実装方法であって、
質問に関連付けられた1つまたは複数の応答を受信すること、ここにおいて、前記応答は、1つまたは複数のクライアントデバイスから受信される、と、
ユーザのデバイスに前記質問と前記回答のうちの少なくとも1つとを公開すること、ここにおいて、前記質問および前記少なくとも1つの回答は、前記ユーザの1つまたは複数の特性に基づいて、前記ユーザのために選択され、前記少なくとも1つの回答は、前記クライアントデバイスのうちの少なくとも1つに関連付けられている、と、
前記ユーザデバイスからフォローアップ要求を受信すること、ここにおいて、前記フォローアップ要求は、前記少なくとも1つの回答に関する更なる情報を求める、と、
前記フォローアップ要求に基づいて、前記ユーザデバイスと前記少なくとも1つのクライアントデバイスとの間の通信セッションを促進することと、
を備える方法。
[C2]
前記質問および前記応答のうちの少なくとも1つは、前記クライアントデバイスの同じものから受信される、C1に記載の方法。
[C3]
前記質問に関する入力を受信することをさらに備え、前記入力は、前記クライアントデバイスのうちの1つから受信される、C1に記載の方法。
[C4]
1つまたは複数の質問のメニューが、前記クライアントデバイスに提示され、前記入力は、前記メニューからの選択を含む、C3に記載の方法。
[C5]
前記質問は、1つまたは複数の所定の基準にさらに基づいて選択される、C1に記載の方法。
[C6]
前記質問および前記少なくとも1つの回答を公開することは、グラフィカルインターフェースを生成することを含む、C1に記載の方法。
[C7]
前記グラフィカルインターフェースは、前記ユーザデバイスとボットとの間の通信セッションに最初に関連付けられる、C6に記載の方法。
[C8]
前記ユーザデバイスと前記少なくとも1つのクライアントデバイスとの間の前記通信セッションを促進することは、前記ボットとの前記通信セッションから前記少なくとも1つのクライアントデバイスとの前記通信セッションに切り替えることを含む、C6に記載の方法。
[C9]
前記少なくとも1つのクライアントデバイスとの前記通信セッションが閉じられたときに、前記ボットとの前記通信セッションに戻るように切り替えることをさらに備える、C8に記載の方法。
[C10]
前記フォローアップ要求を受信することは、フォローアップオプションのメニューからの選択を含む、C1に記載の方法。
[C11]
前記ユーザデバイスと前記少なくとも1つのクライアントデバイスとの間の前記通信セッションの時間を追跡するタイマを提供することをさらに備える、C1に記載の方法。
[C12]
前記追跡された時間に基づいて、支払うべき金額を決定することをさらに備える、C10に記載の方法。
[C13]
前記ユーザデバイスから格付けを受信することをさらに備え、ここにおいて、前記格付けは、前記少なくとも1つのクライアントデバイスに関連付けられる、C1に記載の方法。
[C14]
前記通信セッションは、前記少なくとも1つのクライアントデバイスに関連付けられた一種の情報が示されないように構成される、C1に記載の方法。
[C15]
履歴データに関連して前記通信セッションに関する情報を記憶することをさらに備える、C1に記載の方法。
[C16]
前記履歴データに基づいて、1つまたは複数の後続の通信セッションを開始することをさらに備える、C14に記載の方法。
[C17]
システムであって、
通信ネットワーク上で通信する通信インターフェース、ここにおいて、前記通信インターフェースは、
質問に関連付けられた1つまたは複数の応答を受信し、ここにおいて、前記応答は、1つまたは複数のクライアントデバイスから受信され、
ユーザのデバイスに前記質問と前記回答のうちの少なくとも1つとを公開し、ここにおいて、前記質問および前記少なくとも1つの回答は、前記ユーザの1つまたは複数の特性に基づいて、前記ユーザのために選択され、前記少なくとも1つの回答は、前記クライアントデバイスのうちの少なくとも1つに関連付けられており、
前記ユーザデバイスからフォローアップ要求を受信する、ここにおいて、前記フォローアップ要求は、前記少なくとも1つの回答に関する更なる情報を求める、と、
前記フォローアップ要求に基づいて、前記ユーザデバイスと前記少なくとも1つのクライアントデバイスとの間の通信セッションを促進するために、メモリに記憶された命令を実行するプロセッサと、
を備えるシステム。
[C18]
質問に関連付けられた1つまたは複数の応答を受信すること、ここにおいて、前記応答は、1つまたは複数のクライアントデバイスから受信される、と、
ユーザのデバイスに前記質問と前記回答のうちの少なくとも1つとを公開すること、ここにおいて、前記質問および前記少なくとも1つの回答は、前記ユーザの1つまたは複数の特性に基づいて、前記ユーザのために選択され、前記少なくとも1つの回答は、前記クライアントデバイスのうちの少なくとも1つに関連付けられている、と、
前記ユーザデバイスからフォローアップ要求を受信すること、ここにおいて、前記フォローアップ要求は、前記少なくとも1つの回答に関する更なる情報を求める、と、
前記フォローアップ要求に基づいて、前記ユーザデバイスと前記少なくとも1つのクライアントデバイスとの間の通信セッションを促進することと、
を備える方法を実行するために、プロセッサによって実行可能なプログラムがその上に具現化された非一時的なコンピュータ可読記憶媒体。