(57)【要約】  意図に基づいてボットを検索するための技術が記載される。１つの実施形態では、装置が、ボットサービスシステムにおいて複数のボットについての複数のボット能力カタログを受信するように動作するボット・アプリケーション・インターフェース・コンポーネントであって、複数のボット能力カタログの各々は、関連付けられたボットについてボット能力を自然言語で表す、ボット・アプリケーション・インターフェース・コンポーネントと、ユーザクライアントデバイスからユーザサービスプロンプトを受信し、ユーザサービスプロンプトが自然言語で表されており、ユーザクライアントデバイスからユーザサービスプロンプトを受信するのに応答して、１つまたは複数の選択されたボットをユーザクライアントデバイスに対して識別するように動作するクライアント通信コンポーネントと、ユーザサービスプロンプトを複数のボット能力カタログと照合することにより、複数のボットのうち１つまたは複数の選択されたボットを決定するように動作する対話処理コンポーネントと、を備え得る。他の実施形態が記載され、特許請求される。【選択図】図１
2020518893.tif 000002
【特許請求の範囲】
【請求項１】
ボットサービスシステムにおいて複数のボットについての複数のボット能力カタログを受信することであって、前記複数のボット能力カタログの各々は、関連付けられたボットについてボット能力を自然言語で表す、複数のボット能力カタログを受信することと、
ユーザクライアントデバイスからユーザサービスプロンプトを受信することであって、前記ユーザサービスプロンプトは自然言語で表されている、ユーザサービスプロンプトを受信することと、
前記ユーザサービスプロンプトを前記複数のボット能力カタログと照合することにより、前記複数のボットのうち１つまたは複数の選択されたボットを決定することと、
前記ユーザクライアントデバイスから前記ユーザサービスプロンプトを受信するのに応答して、前記１つまたは複数の選択されたボットを前記ユーザクライアントデバイスに対して識別することと、
を含む、コンピュータ実装方法。
【請求項２】
開発者ボット構成インターフェースを介して前記複数のボット能力カタログのうち１つまたは複数のボット能力カタログを受信することをさらに含む、請求項１に記載の方法。
【請求項３】
前記複数のボット能力カタログのうち１つまたは複数が、１つまたは複数の実例ユーザプロンプトを含む、請求項１に記載の方法。
【請求項４】
前記ユーザプロンプトが、前記ユーザクライアントデバイス上のメッセージングクライアントを介して受信され、前記１つまたは複数の選択されたボットが、前記ユーザクライアントデバイス上の前記メッセージングクライアントに対して識別される、請求項１に記載の方法。
【請求項５】
前記ユーザプロンプトが、２人以上のユーザ間の対話の一部分を含む、請求項１に記載の方法。
【請求項６】
自然言語処理コンポーネントに前記複数のボット能力カタログをサブミットすることと、
前記自然言語処理コンポーネントからボット能力テーブルを受け取ることと、
前記自然言語処理コンポーネントに前記ユーザプロンプトをサブミットすることと、
前記自然言語処理コンポーネントからユーザ意図を受け取ることと、
前記ユーザ意図を前記ボット能力テーブルと比較することにより、前記１つまたは複数の選択されたボットを決定することと、
をさらに含む、請求項１に記載の方法。
【請求項７】
前記ボット能力テーブルは、前記複数のボット能力カタログを複数のボット能力ベクトルとして表現し、前記ユーザ意図は、前記ユーザプロンプトをユーザ意図ベクトルとして表現し、前記ユーザ意図を前記ボット能力テーブルと比較することは、前記ユーザ意図ベクトルに基づいて前記複数のボット能力ベクトルの類似度検索を行うことを含む、請求項６に記載の方法。
【請求項８】
前記自然言語処理コンポーネントが自然言語機械学習コンポーネントを備え、前記方法が、
前記ボットサービスシステムに関するボット対話履歴に基づいて前記自然言語機械学習コンポーネントに教示すること
をさらに含む、請求項６に記載の方法。
【請求項９】
デバイス上のプロセッサ回路と、
ボットサービスシステムにおいて複数のボットについての複数のボット能力カタログを受信するように前記プロセッサ回路上で動作するボット・アプリケーション・インターフェース・コンポーネントであって、前記複数のボット能力カタログの各々は、関連付けられたボットについてボット能力を自然言語で表す、ボット・アプリケーション・インターフェース・コンポーネントと、
ユーザクライアントデバイスからユーザサービスプロンプトを受信し、前記ユーザサービスプロンプトが自然言語で表されており、前記ユーザクライアントデバイスから前記ユーザサービスプロンプトを受信するのに応答して、１つまたは複数の選択されたボットを前記ユーザクライアントデバイスに対して識別するように動作するクライアント通信コンポーネントと、
前記ユーザサービスプロンプトを前記複数のボット能力カタログと照合することにより、前記複数のボットのうち前記１つまたは複数の選択されたボットを決定するように動作する対話処理コンポーネントと、
を備える装置。
【請求項１０】
前記複数のボット能力カタログの１つまたは複数が、１つまたは複数の実例ユーザプロンプトを含む、請求項９に記載の装置。
【請求項１１】
前記ユーザプロンプトが、前記ユーザクライアントデバイス上のメッセージングクライアントを介して受信され、前記１つまたは複数の選択されたボットが、前記ユーザクライアントデバイス上の前記メッセージングクライアントに対して識別され、前記ユーザプロンプトが、２人以上のユーザ間の対話の一部分を含む、請求項９に記載の装置。
【請求項１２】
前記対話処理コンポーネントが、前記複数のボット能力カタログを自然言語処理コンポーネントにサブミットし、前記自然言語処理コンポーネントからボット能力テーブルを受け取り、前記ユーザプロンプトを前記自然言語処理コンポーネントにサブミットし、前記自然言語処理コンポーネントからユーザ意図を受け取り、前記ユーザ意図を前記ボット能力テーブルと比較することによって前記１つまたは複数の選択されたボットを決定するように動作すること
をさらに含む、請求項９に記載の装置。
【請求項１３】
前記ボット能力テーブルは、前記複数のボット能力カタログを複数のボット能力ベクトルとして表現し、前記ユーザ意図は、前記ユーザプロンプトをユーザ意図ベクトルとして表現し、前記ユーザ意図を前記ボット能力テーブルと比較することは、前記ユーザ意図ベクトルに基づいて前記複数のボット能力ベクトルの類似度検索を行うことを含む、請求項１２に記載の装置。
【請求項１４】
前記自然言語処理コンポーネントが自然言語機械学習コンポーネントを備え、前記装置が、
前記対話処理コンポーネントが、前記ボットサービスシステムに関するボット対話履歴に基づいて前記自然言語機械学習コンポーネントに教示するように動作すること
をさらに含む、請求項１２に記載の装置。
【請求項１５】
実行されるとシステムに、
ボットサービスシステムにおいて複数のボットについての複数のボット能力カタログを受信することであって、前記複数のボット能力カタログの各々は、関連付けられたボットについてボット能力を自然言語で表す、複数のボット能力カタログを受信することと、
ユーザクライアントデバイスからユーザサービスプロンプトを受信することであって、前記ユーザサービスプロンプトは自然言語で表されている、ユーザサービスプロンプトを受信することと、
前記ユーザサービスプロンプトを前記複数のボット能力カタログと照合することにより、前記複数のボットのうち１つまたは複数の選択されたボットを決定することと、
前記ユーザクライアントデバイスから前記ユーザサービスプロンプトを受信するのに応答して、前記１つまたは複数の選択されたボットを前記ユーザクライアントデバイスに対して識別することと、
を行わせる命令を備える、少なくとも１つのコンピュータ可読記憶媒体。
【請求項１６】
前記複数のボット能力カタログのうち１つまたは複数が、１つまたは複数の実例ユーザプロンプトを含む、請求項１５に記載のコンピュータ可読記憶媒体。
【請求項１７】
前記ユーザプロンプトが、前記ユーザクライアントデバイス上のメッセージングクライアントを介して受信され、前記１つまたは複数の選択されたボットが、前記ユーザクライアントデバイス上の前記メッセージングクライアントに対して識別され、前記ユーザプロンプトが、２人以上のユーザ間の対話の一部分を含む、請求項１５に記載のコンピュータ可読記憶媒体。
【請求項１８】
実行されるとシステムに、
自然言語処理コンポーネントに前記複数のボット能力カタログをサブミットすることと、
前記自然言語処理コンポーネントからボット能力テーブルを受け取ることと、
前記自然言語処理コンポーネントに前記ユーザプロンプトをサブミットすることと、
前記自然言語処理コンポーネントからユーザ意図を受け取ることと、
前記ユーザ意図を前記ボット能力テーブルと比較することにより、前記１つまたは複数の選択されたボットを決定することと、
を行わせるさらなる命令を備える、請求項１５に記載のコンピュータ可読記憶媒体。
【請求項１９】
前記ボット能力テーブルは、前記複数のボット能力カタログを複数のボット能力ベクトルとして表現し、前記ユーザ意図は、前記ユーザプロンプトをユーザ意図ベクトルとして表現し、前記ユーザ意図を前記ボット能力テーブルと比較することは、前記ユーザ意図ベクトルに基づいて前記複数のボット能力ベクトルの類似度検索を行うことを含む、請求項１８に記載のコンピュータ可読記憶媒体。
【請求項２０】
前記自然言語処理コンポーネントが自然言語機械学習コンポーネントを備え、前記コンピュータ可読記憶媒体が、実行されるとシステムに、
前記ボットサービスシステムに関するボット対話履歴に基づいて前記自然言語機械学習コンポーネントに教示させる
さらなる命令を備える、請求項１８に記載のコンピュータ可読記憶媒体。
【請求項２１】
ボットサービスシステムにおいて複数のボットについての複数のボット能力カタログを受信することであって、前記複数のボット能力カタログの各々は、関連付けられたボットについてボット能力を自然言語で表す、複数のボット能力カタログを受信することと、
ユーザクライアントデバイスからユーザサービスプロンプトを受信することであって、前記ユーザサービスプロンプトは自然言語で表されている、ユーザサービスプロンプトを受信することと、
前記ユーザサービスプロンプトを前記複数のボット能力カタログと照合することにより、前記複数のボットのうち１つまたは複数の選択されたボットを決定することと、
前記ユーザクライアントデバイスから前記ユーザサービスプロンプトを受信するのに応答して、前記１つまたは複数の選択されたボットを前記ユーザクライアントデバイスに対して識別することと、
を含む、コンピュータ実装方法。
【請求項２２】
開発者ボット構成インターフェースを介して前記複数のボット能力カタログのうち１つまたは複数のボット能力カタログを受信することをさらに含む、請求項２１に記載の方法。
【請求項２３】
前記複数のボット能力カタログのうち１つまたは複数が、１つまたは複数の実例ユーザプロンプトを含む、請求項２１または２２に記載の方法。
【請求項２４】
前記ユーザプロンプトが、前記ユーザクライアントデバイス上のメッセージングクライアントを介して受信され、前記１つまたは複数の選択されたボットが、任意選択で、前記ユーザクライアントデバイス上の前記メッセージングクライアントに対して識別される、請求項２１から２３のいずれか一項に記載の方法。
【請求項２５】
前記ユーザプロンプトが、２人以上のユーザ間の対話の一部分を含む、請求項２１から２４のいずれか一項に記載の方法。
【請求項２６】
自然言語処理コンポーネントに前記複数のボット能力カタログをサブミットすることと、
前記自然言語処理コンポーネントからボット能力テーブルを受け取ることと、
前記自然言語処理コンポーネントに前記ユーザプロンプトをサブミットすることと、
前記自然言語処理コンポーネントからユーザ意図を受け取ることと、
前記ユーザ意図を前記ボット能力テーブルと比較することにより、前記１つまたは複数の選択されたボットを決定することと、
をさらに含む、請求項２１から２５のいずれか一項に記載の方法。
【請求項２７】
前記ボット能力テーブルは、前記複数のボット能力カタログを複数のボット能力ベクトルとして表現し、前記ユーザ意図は、前記ユーザプロンプトをユーザ意図ベクトルとして表現し、前記ユーザ意図を前記ボット能力テーブルと比較することは、前記ユーザ意図ベクトルに基づいて前記複数のボット能力ベクトルの類似度検索を行うことを含む、請求項２６に記載の方法。
【請求項２８】
前記自然言語処理コンポーネントが自然言語機械学習コンポーネントを備え、前記方法が、
前記ボットサービスシステムに関するボット対話履歴に基づいて前記自然言語機械学習コンポーネントに教示すること
をさらに含む、請求項２６または２７に記載の方法。
【請求項２９】
前記メッセージングボットは、メッセージスレッド内で参加者として表現されるのに適した、ネットワークアクセス可能なサービスへの自動化されたフロントエンドであり、前記メッセージングボットが、任意選択で、
前記メッセージングボットを明示的に含むメッセージスレッド内で、特に特定のユーザと前記メッセージングボットとの間の１対１メッセージスレッドとして、または、
前記メッセージングボットが普段の参加者ではないメッセージスレッドであって、前記メッセージングボットが、前記サービスと対話することを目的とした、前記メッセージスレッドへの一時的な参加者である、メッセージスレッド内で、
やり取りされる、請求項２１から２８のいずれか一項に記載の方法。
【請求項３０】
デバイス上のプロセッサ回路と、
ボットサービスシステムにおいて複数のボットについての複数のボット能力カタログを受信するように前記プロセッサ回路上で動作するボット・アプリケーション・インターフェース・コンポーネントであって、前記複数のボット能力カタログの各々は、関連付けられたボットについてボット能力を自然言語で表す、ボット・アプリケーション・インターフェース・コンポーネントと、
ユーザクライアントデバイスからユーザサービスプロンプトを受信し、前記ユーザサービスプロンプトが自然言語で表されており、前記ユーザクライアントデバイスから前記ユーザサービスプロンプトを受信するのに応答して、１つまたは複数の選択されたボットを前記ユーザクライアントデバイスに対して識別するように動作するクライアント通信コンポーネントと、
前記ユーザサービスプロンプトを前記複数のボット能力カタログと照合することにより、前記複数のボットのうち前記１つまたは複数の選択されたボットを決定するように動作する対話処理コンポーネントと、
を備える、装置。
【請求項３１】
前記プロセッサ回路によって実行されると、請求項２１から２９の少なくとも１つに記載の方法のステップのすべてを伴う方法を前記プロセッサ回路に実行させる命令を含む非一時的コンピュータ可読媒体をさらに備える、請求項３０に記載の装置。
【請求項３２】
メッセージングコンポーネントが、
複数のクライアントデバイス上に多ユーザインターフェースをインスタンス化することであって、前記インスタンス化することは、前記多ユーザインターフェースの少なくとも一部分を前記複数のクライアントデバイスの各々に表示することを意味する、インスタンス化することと、
前記複数のクライアントデバイスのうち第１のクライアントデバイスからユーザインターフェース対話を受信することと、
前記ユーザインターフェース対話に基づいて前記複数のクライアントデバイス上の前記多ユーザインターフェースを更新することと、
を行うように前記プロセッサ回路上で動作し、ならびに／または、
前記ボット・アプリケーション・インターフェース・コンポーネントが、前記ボット管理コンポーネントへのフロントエンド、および／もしくはボットアプリケーションのためのメッセージングシステムとして働くように構成される、請求項３０または３１に記載の装置。
【請求項３３】
ボット管理コンポーネントを備え、前記ボット管理コンポーネントは、前記対話処理コンポーネントからユーザ意図を受け取り、前記ユーザ意図に基づいて前記クライアントデバイスのためのメッセージングボットオプション構成を決定し、前記メッセージングボットオプション構成を前記クライアントデバイスに送るように動作可能であり、前記メッセージングボットオプションを前記クライアントデバイスに送ることは、任意選択で、前記メッセージングボットオプション構成をメッセージ待ち行列に加えることを含む、請求項３０から３２の少なくとも１つに記載の装置。
【請求項３４】
前記メッセージングボットオプション構成は、メッセージスレッドを表示する際のメッセージングクライアントのメッセージングインターフェースを、前記メッセージングボットとの対話を可能にするコントロールで構成するように動作可能であり、および／または、
前記メッセージングボットオプション構成は、各々が異なるメッセージングボットに関連付けられた、複数のメッセージングボット起動コントロールから構成される、請求項３３に記載の装置。
【請求項３５】
実行されると、請求項２１から２９の少なくとも１つに記載の方法のステップのすべてを伴う方法をシステムに実行させる命令を備える、少なくとも１つのコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本願は、２０１７年４月１２日に出願された「Ｔｅｃｈｎｉｑｕｅｓ  ｆｏｒ  Ｉｎｔｅｎｔ−Ｂａｓｅｄ  Ｓｅａｒｃｈ  ｆｏｒ  Ｂｏｔｓ」という名称の米国特許出願番号第１５／４８５，６６５号、代理人整理番号１３６０Ｆ０１６９．１に対する米国特許法第１１９条（ｅ）の下での優先権の利益を主張し、同出願は全体が参照によって本明細書に援用される。
【０００２】
本願は、２０１７年４月１２日に出願された「Ｔｅｃｈｎｉｑｕｅｓ  ｆｏｒ  Ｐｅｒｓｏｎａｌｉｚｅｄ  Ｓｅａｒｃｈ  ｆｏｒ  Ｂｏｔｓ」という名称の米国特許出願番号第１５／４８５，７３８号、代理人整理番号１３６０Ｆ０１６９．２の関連出願であり、同出願は全体が参照によって本明細書に援用される。
【０００３】
本願は、２０１７年４月１２日に出願された「Ｔｅｃｈｎｉｑｕｅｓ  ｆｏｒ  Ｅｖｅｎｔ−Ｂａｓｅｄ  Ｒｅｃｏｍｍｅｎｄａｔｉｏｎｓ  ｆｏｒ  Ｂｏｔｓ」という名称の米国特許出願番号第１５／４８５，８１２号、代理人整理番号１３６０Ｆ０１６９．３の関連出願であり、同出願は全体が参照によって本明細書に援用される。
【０００４】
本願は、２０１７年４月１２日に出願された「Ｔｅｃｈｎｉｑｕｅｓ  ｆｏｒ  Ｒｅｉｎｆｏｒｃｅｍｅｎｔ  ｆｏｒ  Ｂｏｔｓ」という名称の米国特許出願番号第１５／４８５，８５３号、代理人整理番号１３６０Ｆ０１６９．４の関連出願であり、同出願は全体が参照によって本明細書に援用される。
【０００５】
本願は、２０１７年４月１２日に出願された「Ｔｅｃｈｎｉｑｕｅｓ  ｆｏｒ  Ｍｕｌｔｉｐｌｅ−Ｕｓｅｒ  Ｂｏｔ  Ａｐｐｌｉｃａｔｉｏｎｓ」という名称の米国特許出願番号第１５／４８５，８８０号、代理人整理番号１３６０Ｆ０１６９．５の関連出願であり、同出願は全体が参照によって本明細書に援用される。
【背景技術】
【０００６】
ユーザはメッセージングシステム内で互いと対話し、２人以上のユーザ間のテキストベースの会話の中で互いとメッセージをやり取りすることがある。ユーザは、メッセージングシステムシステム内で自身に関連付けられたユーザアカウントを有することがあり、ユーザアカウントは、ユーザ用のオンライン識別、ユーザに向けられたメッセージの宛先を提供し、また一般には、メッセージングシステムへのユーザのアクセスおよびその使用を連携させる。ユーザは、モバイルデバイス（例えば携帯電話）、デスクトップコンピュータ、ウェブブラウザ、特化したメッセージングクライアント等を含む各種のエンドポイントからメッセージングシステムにアクセスし得る。
【発明の概要】
【０００７】
以下に、本明細書に記載されるいくつかの新規な実施形態の基本的理解を提供するために、簡略化された概要を提供する。この概要は広範な概観ではなく、また主要／必須の要素を特定するものでも、その範囲を明確にするものでもない。いくつかの概念は、後に与えられるより詳細な説明への前置きとして簡略化された形態で与えられる。
【０００８】
様々な実施形態は、概して、ボットのための技術を対象とする。いくつかの実施形態は特に、意図に基づいておよび／または個人に合わせて、ボットを検索するための技術を対象とする。いくつかの実施形態は、イベントに基づくボットの推奨を対象とする。いくつかの実施形態は、ボットの強化を対象とする。いくつかの実施形態は、多ユーザボットアプリケーションを対象とする。
【０００９】
例えば、１つの実施形態では、装置が、ボットサービスシステムにおいて複数のボットについての複数のボット能力カタログを受信するように動作するボット・アプリケーション・インターフェース・コンポーネントであって、複数のボット能力カタログの各々は、関連付けられたボットについてボット能力を自然言語で表す、ボット・アプリケーション・インターフェース・コンポーネントと、ユーザクライアントデバイスからユーザサービスプロンプトを受信し、ユーザサービスプロンプトが自然言語で表されており、ユーザクライアントデバイスからユーザサービスプロンプトを受信するのに応答して、１つまたは複数の選択されたボットをユーザクライアントデバイスに対して識別するように動作するクライアント通信コンポーネントと、ユーザサービスプロンプトを複数のボット能力カタログと照合することにより、複数のボットのうち１つまたは複数の選択されたボットを決定するように動作する対話処理コンポーネントと、備え得る。他の実施形態が記載され、特許請求される。
【００１０】
別の実施形態では、例えば、装置が、ボットサービスシステムにおいてユーザクライアントデバイスからユーザサービスプロンプトを受信し、ユーザサービスプロンプトが自然言語で表されており、ユーザクライアントデバイスからユーザサービスプロンプトを受信するのに応答して、２つ以上のフィルタリングされたボットをユーザクライアントデバイスに対して識別するように動作するクライアント通信コンポーネントと、ボット関連度に基づいて、複数のボットのうち２つ以上の選択されたボットを決定し、その２つ以上の選択されたボットのうち２つ以上のフィルタリングされたボットを決定するように動作する対話処理コンポーネントと、を備え得る。他の実施形態が記載され、特許請求される。
【００１１】
別の実施形態では、例えば、装置が、ボットサービスシステムにおいて複数のエージェントについての複数のエージェント・イベント・サブスクリプションを受信するように動作するボット・アプリケーション・インターフェース・コンポーネントと、ユーザアカウントに関連付けられたイベントを検出し、ユーザアカウントはユーザクライアントデバイスに関連付けられており、そのイベントを複数のエージェント・イベント・サブスクリプションと照合して、１つまたは複数のイベント応答エージェントを決定するように動作する対話処理コンポーネントと、イベントを検出するのに応答してそれら１つまたは複数のイベント応答エージェントをユーザクライアントデバイスに対して識別するように動作するクライアント通信コンポーネントと、を備え得る。他の実施形態が記載され、特許請求される。
【００１２】
別の実施形態では、例えば、装置が、ボットサービスシステムにおいて複数のボットについての複数のボット能力カタログを受信するように動作するボット・アプリケーション・インターフェース・コンポーネントであって、複数のボット能力カタログの各々は、関連付けられたボットについてボット能力を自然言語で表す、ボット・アプリケーション・インターフェース・コンポーネントと、複数のユーザクライアントデバイスから複数のユーザサービスプロンプトを受信し、複数のユーザサービスプロンプトは自然言語で表されており、上記複数のユーザサービスプロンプトを受信するのに応答して、選択されたボットを複数のユーザクライアントデバイスに提供するように動作するクライアント通信コンポーネントと、自然言語機械学習コンポーネントによって生成されたボット能力テーブルを使用して、複数のユーザサービスプロンプトを複数のボット能力カタログと照合することにより、複数のユーザプロンプトの各々に対して複数のボットのうち選択されたボットを決定し、選択されたボットとのユーザ対話に基づくボット対話履歴を記録し、ボット対話履歴に基づいて自然言語機械学習コンポーネントを更新するように動作する対話処理コンポーネントと、を備え得る。他の実施形態が記載され、特許請求される。
【００１３】
別の実施形態では、例えば、装置が、複数のクライアントデバイス上に多ユーザインターフェースをインスタンス化することであって、インスタンス化することは、多ユーザインターフェースの少なくとも一部分を複数のクライアントデバイスの各々に表示することを意味する、インスタンス化することと、複数のクライアントデバイスのうち第１のクライアントデバイスからユーザインターフェース対話を受信することと、ユーザインターフェース対話に基づいて複数のクライアントデバイス上の多ユーザインターフェースを更新することと、を行うようにプロセッサ回路上で動作するメッセージングコンポーネントを備え得る。他の実施形態が記載され、特許請求される。
【００１４】
上述の目的および関係する目的を達成するために、特定の説明のための態様は、以下の説明および添付図面との関係で本明細書に記載される。これらの態様は、本明細書に開示される原理を実施することが可能な様々な様式を指示し、すべての態様およびその均等物は、特許請求される主題の範囲内にあることが意図される。図面と併せて検討すると、以下の詳細または説明から他の利点および新規な特徴が明らかになろう。
【００１５】
本発明に係る実施形態は、特に、方法、システム、およびコンピュータ可読記憶媒体を対象とする添付の特許請求の範囲に開示される。１つのクレームカテゴリ、例えばシステムに述べられる特徴は、別のクレームカテゴリ、例えば方法、記憶媒体、例えばコンピュータプログラム製品にも特許請求され得る。添付の特許請求の範囲における従属関係または先行箇所に戻る参照は、単に形式上の理由から選ばれたものである。ただし、任意の先行するクレーム（特に多従属関係）に戻る意図的な参照の結果生じる主題も特許請求され得、そのため、添付の特許請求の範囲において選ばれた従属関係に関係なく、クレームおよびその特徴の任意の組み合わせが開示され、特許請求され得る。特許請求され得る主題は、添付の特許請求の範囲に記載される特徴の組み合わせだけでなく、特許請求の範囲における特徴の任意の他の組み合わせも含み、特許請求の範囲で言及される各特徴は、特許請求の範囲中の任意の他の特徴または他の特徴の組み合わせと組み合わせられ得る。さらに、本明細書に記載または図示される実施形態および特徴はいずれも、別個のクレームに、および／または本明細書に記載もしくは図示される任意の実施形態もしくは特徴と、または添付の特許請求の範囲の特徴のいずれかと組み合わせて、特許請求され得る。
【００１６】
コンピュータ実装方法は、ボットサービスシステムにおいて複数のボットについての複数のボット能力カタログを受信することであって、複数のボット能力カタログの各々は、関連付けられたボットについてボット能力を自然言語で表す、複数のボット能力カタログを受信することと、ユーザクライアントデバイスからユーザサービスプロンプトを受信することであって、ユーザサービスプロンプトは自然言語で表されている、ユーザサービスプロンプトを受信することと、ユーザサービスプロンプトを複数のボット能力カタログと照合することにより、複数のボットのうち１つまたは複数の選択されたボットを決定することと、ユーザクライアントデバイスからユーザサービスプロンプトを受信するのに応答して、１つまたは複数の選択されたボットをユーザクライアントデバイスに対して識別することと、を含み得る。
【００１７】
コンピュータ実装方法は、開発者ボット構成インターフェースを介して複数のボット能力カタログのうち１つまたは複数のボット能力カタログを受信することをさらに含み得る。
【００１８】
コンピュータ実装方法は、複数のボット能力カタログのうち１つまたは複数が１つまたは複数の実例ユーザプロンプトを含むことを、任意の他の方法との組み合わせにおいてさらに含み得る。
【００１９】
コンピュータ実装方法は、ユーザプロンプトが、ユーザクライアントデバイス上のメッセージングクライアントを介して受信され、１つまたは複数の選択されたボットが、任意選択で、ユーザクライアントデバイス上のメッセージングクライアントに対して識別されることを、任意の他の方法との組み合わせにおいてさらに含み得る。
【００２０】
コンピュータ実装方法は、ユーザプロンプトが２人以上のユーザ間の対話の一部分を含むことを、任意の他の方法との組み合わせにおいてさらに含み得る。
【００２１】
コンピュータ実装方法は、自然言語処理コンポーネントに複数のボット能力カタログをサブミットすることと、自然言語処理コンポーネントからボット能力テーブルを受け取ることと、自然言語処理コンポーネントにユーザプロンプトをサブミットすることと、自然言語処理コンポーネントからユーザ意図を受け取ることと、ユーザ意図をボット能力テーブルと比較することにより、１つまたは複数の選択されたボットを決定することとを、任意の他の方法との組み合わせにおいてさらに含み得る。
【００２２】
コンピュータ実装方法は、ボット能力テーブルが、複数のボット能力カタログを複数のボット能力ベクトルとして表現し、ユーザ意図が、ユーザプロンプトをユーザ意図ベクトルとして表現し、ユーザ意図をボット能力テーブルと比較することが、ユーザ意図ベクトルに基づいて複数のボット能力ベクトルの類似度検索を行うことを含むことを、任意の他の方法との組み合わせにおいてさらに含み得る。
【００２３】
コンピュータ実装方法は、自然言語処理コンポーネントが自然言語機械学習コンポーネントを備え、上記方法が、ボットサービスシステムに関するボット対話履歴に基づいて自然言語機械学習コンポーネントに教示することを、任意の他の方法との組み合わせにおいてさらに含み得る。
【００２４】
コンピュータ実装方法は、メッセージングボットが、メッセージスレッド内で参加者として表現されるのに適した、ネットワークアクセス可能なサービスへの自動化されたフロントエンドであり、メッセージングボットは任意選択で、メッセージングボットを明示的に含むメッセージスレッド内で、特に特定のユーザとメッセージングボットとの間の１対１メッセージスレッドとして、または、メッセージングボットが普段の参加者ではないメッセージスレッドであって、メッセージングボットが、サービスと対話することを目的とした、メッセージスレッドへの一時的な参加者である、メッセージスレッド内で、やり取りされることを、任意の他の方法との組み合わせにおいてさらに含み得る。
【００２５】
装置は、デバイス上のプロセッサ回路と、ボットサービスシステムにおいて複数のボットについての複数のボット能力カタログを受信するようにプロセッサ回路上で動作するボット・アプリケーション・インターフェース・コンポーネントであって、複数のボット能力カタログの各々は、関連付けられたボットについてボット能力を自然言語で表す、ボット・アプリケーション・インターフェース・コンポーネントと、ユーザクライアントデバイスからユーザサービスプロンプトを受信し、ユーザサービスプロンプトが自然言語で表されており、ユーザクライアントデバイスからユーザサービスプロンプトを受信するのに応答して、１つまたは複数の選択されたボットをユーザクライアントデバイスに対して識別するように動作するクライアント通信コンポーネントと、ユーザサービスプロンプトを複数のボット能力カタログと照合することにより、複数のボットのうち１つまたは複数の選択されたボットを決定するように動作する対話処理コンポーネントと、を備え得る。
【００２６】
装置は、プロセッサ回路によって実行されると、本明細書に記載される方法のいずれかをプロセッサ回路に実行させる命令を含んだ非一時的コンピュータ可読媒体をさらに備え得る。
【００２７】
装置は、メッセージングコンポーネントが、複数のクライアントデバイス上に多ユーザインターフェースをインスタンス化することであって、インスタンス化することは、多ユーザインターフェースの少なくとも一部分を複数のクライアントデバイスの各々に表示することを意味する、インスタンス化することと、複数のクライアントデバイスのうち第１のクライアントデバイスからユーザインターフェース対話を受信することと、ユーザインターフェース対話に基づいて複数のクライアントデバイス上の多ユーザインターフェースを更新することと、を行うようにプロセッサ回路上で動作し、ならびに／または、ボット・アプリケーション・インターフェース・コンポーネントが、ボット管理コンポーネントへのフロントエンド、および／もしくはボットアプリケーションのためのメッセージングシステムとして働くように構成されること、を任意の他の装置との組み合わせにおいて備え得る。
【００２８】
装置は、ボット管理コンポーネントを備え、ボット管理コンポーネントは、対話処理コンポーネントからユーザ意図を受け取り、ユーザ意図に基づいてクライアントデバイスのためのメッセージングボットオプション構成を決定し、メッセージングボットオプション構成をクライアントデバイスに送るように動作可能であり、メッセージングボットオプションをクライアントデバイスに送ることは、任意選択で、メッセージングボットオプション構成をメッセージ待ち行列に加えることを含むこと、を任意の他の装置との組み合わせにおいて備え得る。
【００２９】
装置は、メッセージングボットオプション構成が、メッセージスレッドを表示する際のメッセージングクライアントのメッセージングインターフェースを、メッセージングボットとの対話を可能にするコントロールで構成するように動作可能であり、および／または、メッセージングボットオプション構成は、各々が異なるメッセージングボットに関連付けられた複数のメッセージングボット起動コントロールから構成されること、を任意の他の装置との組み合わせにおいて備え得る。
【００３０】
少なくとも１つのコンピュータ可読記憶媒体が、実行されると、本明細書記載される方法のいずれかをプロセッサ回路に実行させる命令を備え得る。
【図面の簡単な説明】
【００３１】
【図１】消費者・企業間メッセージングシステムの一実施形態を示す図である。
【図２】ソーシャルグラフの一実施形態を示す図である。
【図３Ａ】メッセージングボット起動コントロールを含むメッセージ対話表示を備えたユーザインターフェースの一実施形態を示す図である。
【図３Ｂ】メッセージングボットメニューを含むユーザインターフェースの一実施形態を示す図である。
【図３Ｃ】マルチユーザ要求コントロールを含むメッセージングボットメニューを備えたユーザインターフェースの一実施形態を示す図である。
【図３Ｄ】副マルチユーザインターフェースを備えるユーザインターフェースの一実施形態を示す図である。
【図３Ｅ】マルチユーザ寄与要素を含む、構成されたサービス要求のためのメッセージングボットメニューのユーザインターフェースの一実施形態を示す図である。
【図４Ａ】メッセージ対話表示を含むユーザインターフェースの一実施形態を示す図であり、管理テキストがサービス要求を伝えている図である。
【図４Ｂ】メッセージ対話表示を含むユーザインターフェースの一実施形態を示す図であり、管理テキストが、多ユーザインターフェースの副ユーザに合わせてカスタマイズされたサービス要求を伝えている図である。
【図５】メッセージング対話に基づいてユーザ意図を判定する消費者・企業間メッセージングシステムの一実施形態を示す図である。
【図６】ユーザ意図に基づいてメッセージングボットオプション構成を判定する消費者・企業間メッセージングシステムの一実施形態を示す図である。
【図７】ユーザ情報交換およびボット情報交換に基づいてメッセージングボットオプション構成を決定する消費者・企業間メッセージングシステムの一実施形態を示す図である。
【図８Ａ】図１のシステムのための第１の論理フローの実施形態を示す図である。
【図８Ｂ】図１のシステムのための第１の論理フローの実施形態を示す図である。
【図８Ｃ】図１のシステムのための第１の論理フローの実施形態を示す図である。
【図８Ｄ】図１のシステムのための第１の論理フローの実施形態を示す図である。
【図８Ｅ】図１のシステムのための第１の論理フローの実施形態を示す図である。
【図９】図１のシステムのための集中システムの一実施形態を示す図である。
【図１０】図１のシステムのための分散システムの一実施形態を示す図である。
【図１１】コンピューティングアーキテクチャの一実施形態を示す図である。
【図１２】通信アーキテクチャの一実施形態を示す図である。
【図１３】無線デバイスアーキテクチャの一実施形態を示す図である。
【発明を実施するための形態】
【００３２】
ネットワーク接続されたコンピューティングデバイスは、個人間通信に関わるためのこれまでにない能力をそのユーザに提供することができる。人々は、友達、家族、同僚、および他の関係者とのメッセージング対話に関わることができる。連絡先との間のユーザのメッセージ交換は、別個のメッセージスレッド内に維持され得る。
【００３３】
このようなネットワーク接続されたコンピューティングデバイスは、そのユーザに、ネットワークアクセス可能なサービスへのアクセスを提供することもできる。例えば、輸送サービス、ダイニングサービス、娯楽サービス、および他のサービスが、ウェブサイト、ウェブアプリケーション、クライアントアプリケーション、または他のネットワークアクセスを可能にする技術を使用して、人々が自身のクライアントデバイスを使用して自社のサービスに関わることを可能にし得る。一部の娯楽またはメディアサービスなどいくつかの場合には、サービスの手配と送付の両方がクライアントデバイスを介して行われることがある。例えば、クライアントデバイスを介して音楽が購入され、再生のためにクライアントデバイスに送付され得る。輸送、ダイニング、および対面で行われる娯楽のような他の場合、サービスはクライアントデバイスを介して手配可能であるが、クライアントデバイスの外部で行われる。例えば、自動車同乗サービスは、クライアントデバイスを介して手配されるが、ユーザに自動車同乗を提供する車両および運転者を通じて行われ得る。
【００３４】
いくつかの場合には、ネットワークアクセス可能なサービスの使用は、２人以上の人に関係することがある。特にサービスへのユーザのアクセス手段が、メッセージングにも使用するクライアントデバイスである場合、ユーザは、メッセージングクライアントにおけるネットワークアクセス可能なサービスとの自身の関わりを、当該サービスが関係する他者と共有することから、利益を得られる可能性がある。そのため、メッセージスレッドは、連絡先とのユーザのオンラインソーシャル関係のためのハブとして働くことができ、メッセージスレッドは、メッセージングに使用されるのと同じクライアントを介して要求されるサービス、監視されるサービス、または関わりを持ったサービスを取り込む。
【００３５】
ユーザがメッセージングコンテクストを介してサービスと対話するのを支援するために、サービスがメッセージングシステム内でメッセージングボットとして表現され得る。メッセージングボットは、メッセージスレッドの中で参加者として表現されることが可能な、ネットワークアクセス可能なサービスへの自動化されたフロントエンドであり得る。いくつかの場合には、メッセージングボットは、特定のユーザとそのメッセージングボットとの間の１対１メッセージスレッドなど、そのメッセージングボットを明示的に含むメッセージスレッド内でやり取りされ得る。他の場合には、メッセージングボットは、そのメッセージングボットが普段の参加者ではないメッセージスレッド内でやり取りされ得、メッセージングボットは、サービスと対話することを目的とした、メッセージスレッドへの一時的な参加者となる。メッセージングボットは、２人のユーザ間の１対１スレッドであれ、または複数のユーザ間のグループスレッドであれ、任意の他のスレッドに一時的な参加者として含まれ得る。
【００３６】
いくつかの場合には、ネットワークアクセス可能なサービスの使用は、２人以上の人に関係することがある。特にサービスへのユーザのアクセス手段が、メッセージングにも使用するクライアントデバイスである場合、ユーザは、メッセージングクライアントにおけるネットワークアクセス可能なサービスとの自身の関わりを、当該サービスが関係する他者と共有することから、利益を得られる可能性がある。そのため、メッセージスレッドは、連絡先とのユーザのオンラインソーシャル関係のためのハブとして働くことができ、メッセージスレッドは、メッセージングに使用されるのと同じクライアントを介して要求されるサービス、監視されるサービス、または関わりを持ったサービスを取り込む。
【００３７】
ユーザがメッセージングコンテクストを介してサービスと対話するのを支援するために、サービスがメッセージングシステム内でメッセージングボットとして表現され得る。メッセージングボットは、メッセージスレッドの中で参加者として表現されることが可能な、ネットワークアクセス可能なサービスへの自動化されたフロントエンドであり得る。いくつかの場合には、メッセージングボットは、特定のユーザとそのメッセージングボットとの間の１対１メッセージスレッドなど、そのメッセージングボットを明示的に含むメッセージスレッド内でやり取りされ得る。他の場合には、メッセージングボットは、そのメッセージングボットが普段の参加者ではないメッセージスレッド内でやり取りされ得、メッセージングボットは、サービスと対話することを目的とした、メッセージスレッドへの一時的な参加者となる。メッセージングボットは、２人のユーザ間の１対１スレッドであれ、または複数のユーザ間のグループスレッドであれ、任意の他のスレッドに一時的な参加者として含まれ得る。
【００３８】
そのため、ユーザは、メッセージングクライアントの慣れ親しんだ体験の中でネットワークサービスと関わることができる。さらに、メッセージングクライアントを使用することにより、ユーザは、他の人々の包含を許すようにメッセージングコンテクスト内でネットワークサービスと関わることができる。いくつかの場合には、これは、友達や家族に輸送の詳細を知らせるなど、単に他の人々にサービスについて知らせることであり得る。他の場合には、これは、食事、乗車、娯楽、または他のサービスが複数の人々による使用のために手配される場合など、複数の人々に対するサービスの実施を可能にすることができる。その結果、実施形態は、ネットワークアクセス可能なサービスを使用する際の体験を向上させることができ、またネットワークアクセス可能なサービスの到達範囲をメッセージングシステムのユーザまで拡大することができる。
【００３９】
ユーザは関わるべきボットを提案され得る。これらの提案は、２人以上のユーザ間のメッセージスレッドのコンテクスト内で行われ得る。そのため、これらの提案は、提案を表示するために使用される画面空間の量を制御する技術を使用して行われ得る。これらの提案は、選択されるとメッセージングボットを用いてサービス要求を構成するためのより大きいインターフェースをインスタンス化する、コントロールであり得る。
【００４０】
開発者は、自身のメッセージングボットの能力を指定するための自然な様式を提供されることによって支援され得る。ボットプラットフォームは、開発者が開発者によって定義された例のセットを使用して自身のボットの能力を定義することを可能にするボットエンジンを提供し得る。例は、開発者が自身のメッセージングボットを推奨させるべきであると考える実例発言または会話であり得る。その結果、実施形態は、ユーザに推奨するメッセージングボットを決定する難しさを低減させることができる。
【００４１】
次いで図面を参照する。図面では、すべての図を通じて同様の参照符号を使用して同様の要素を参照する。以下の記載では、説明の目的で、その完全な理解を提供するために多数の具体的な詳細が述べられる。ただし、新規な実施形態はそれらの具体的な詳細を用いずに実施することも可能であることが明らかであろう。他の事例では、よく知られた構造およびデバイスは、その説明を容易にするためにブロック図の形態で示される。特許請求される主題に矛盾しないすべての修正、均等物、および代替物を包含することが意図される。
【００４２】
本明細書で使用される「ａ」および「ｂ」および「ｃ」ならびに同様の指示子は任意の正の整数を表現する変数であることを意図することに注意されたい。よって、例えば、ある実装形態が値をａ＝５と設定する場合、コンポーネント１２２−１〜１２２−ａと例示されるコンポーネント１２２の完全な組は、コンポーネント１２２−１、１２２−２、１２２−３、１２２−４、および１２２−５を含み得る。実施形態はこれに関して限定されない。
【００４３】
図１は、消費者・企業間通信システム１００のブロック図を例示する。１つの実施形態では、消費者・企業間通信システム１００は、１つまたは複数のコンポーネントを備えるソフトウェアアプリケーションを有するコンピュータ実装システムからなり得る。図１に示す消費者・企業間通信システム１００は、限られた数の要素を特定のトポロジーで有するが、消費者・企業間通信システム１００は、所与の実装の必要に応じて、より多くのまたは少ない要素を代替のトポロジーで含み得ることが理解できよう。
【００４４】
消費者・企業間サービス１１０は、消費者と企業との間の仲介として機能し得る。消費者および企業の両方が消費者・企業間サービス１１０のユーザとなり得、消費者は、個人ユーザアカウントを介して表現され、企業は、商業アカウントと、場合によっては、企業の代表者や他の従業員に関連付けられた個人ユーザアカウントなどの、その企業に関連付けられた１つまたは複数の個人ユーザアカウントとによって表現される。消費者ユーザは、ソーシャルグラフ内でユーザエンティティを用いて表現され得る。企業または他の商用ユーザは、ソーシャルグラフ内で企業エンティティによって表現され得る。消費者ユーザと商用ユーザとの間の関係は、ソーシャルグラフ内で、ユーザエンティティと企業エンティティとの間の１つまたは複数のエッジによって表現され得る。
【００４５】
消費者・企業間サービス１１０は、メッセージングシステム１４０を備え得る。メッセージングシステム１４０は一般に、個人ユーザなどの個人エンティティと、企業や他の組織などの集団エンティティとの間で、メッセージを受信し、記憶し、および送付するようになされ得る。メッセージングシステム１４０は、メッセージングエンドポイント１２５などのメッセージングエンドポイントがオフラインである間にメッセージを記憶し、メッセージングエンドポイントが利用可能になるとそのメッセージを送付し得る。メッセージングシステム１４０は、ユーザが、複数のメッセージングエンドポイント（例えば、モバイルデバイスのメッセージングクライアント、パーソナルコンピュータのウェブブラウザ）を同じユーザアカウントに対して使用することを可能にし得、メッセージングシステム１４０は、すべてのメッセージングエンドポイントをユーザアカウントのメッセージング状態に関して最新の状態に保つ。
【００４６】
消費者・企業間サービス１１０は、ソーシャルネットワーキングサービス１３０を備え得る。ソーシャルネットワーキングサービス１３０は、ソーシャルグラフを表現するソーシャルグラフデータ構造を維持し得る。ソーシャルグラフは、ユーザエンティティ、商業エンティティ、および任意の他の種のエンティティなどのエンティティ間の関係を表現し得る。ソーシャルグラフはそれらの関係をグラフ関係として表現し得、その中で、すべての情報は、グラフ中の特定のノードに付加されるか、またはグラフ中の２つのノード間の特定のエッジに付加されるかのいずれかとして符号化される。メッセージングシステム１４０はソーシャルネットワーキングサービス１３０の一要素であり得、ソーシャルグラフは、少なくとも部分的にソーシャルネットワーキング情報を収容している。消費者・企業間サービス１１０の全体は、ソーシャルネットワーキングサービスの一要素であるか、または複数の要素から構成され得る。
【００４７】
消費者・企業間サービス１１０は、消費者ポータル１５０を備え得る。消費者ポータル１５０は、消費者によって使用されているクライアントアプリケーションのための消費者・企業間サービス１１０への統一された入口点であり得る。消費者ポータル１５０は、消費者・企業間サービス１１０を使用して商業に関わることがないユーザを含む非商業エンティティのための一般ユーザポータルとして機能することができる。消費者ポータル１５０は、メッセージングシステム１４０およびソーシャルネットワーキングサービス１３０へのアクセスを提供することができる。いくつかの実施形態では、ソーシャルネットワーキングサービス１３０へのすべてのアクセスは、消費者ポータル１５０によって仲介され得、消費者ポータル１５０内ではソーシャルネットワーキングサービス１３０の情報がユーザに代わって使用および管理され、ユーザがソーシャルグラフ情報の一部またはすべてに直接アクセスすることはない。いくつかの実施形態では、ユーザは、自身のユーザアカウントを使用してメッセージングシステム１４０に直接アクセスし得、消費者ポータル１５０は、消費者ポータル１５０の仲介なしにメッセージングエンドポイント１２５とメッセージングシステム１４０との間の直接のネットワーク通信を通じて提供される一般的なメッセージング機能性（例えば友達とのメッセージング）を用いる、消費者・企業間サービス１１０の消費者機能に限定される。
【００４８】
消費者・企業間サービス１１０は、企業ポータル１６０を備え得る。企業ポータル１６０は、企業エンティティによって使用されているクライアントアプリケーションのための消費者・企業間サービス１１０への統一された入口点であり得る。企業ポータル１６０は、メッセージングシステム１４０およびソーシャルネットワーキングサービス１３０へのアクセスを提供することができる。いくつかの実施形態では、ソーシャルネットワーキングサービス１３０へのすべてのアクセスは、企業ポータル１６０によって仲介され得、企業ポータル１６０内ではソーシャルネットワーキングサービス１３０の情報が企業エンティティに代わって使用および管理され、企業エンティティがソーシャルグラフ情報の一部またはすべてに直接アクセスすることはない。いくつかの実施形態では、企業エンティティは、自身の商業アカウントを使用してメッセージングシステム１４０に直接アクセスし得、企業ポータル１６０は、企業ポータル１６０の仲介なしに１つまたは複数のボット１９０とメッセージングシステム１４０との間の直接のネットワーク通信を通じて提供される一般的なメッセージング機能性（例えば顧客とのメッセージング）を用いる、消費者・企業間サービス１１０のビジネス機能に限定される。
【００４９】
ユーザは、消費者・企業間通信システム１００に参加し、クライアントデバイス１２０で実行されるメッセージングエンドポイント１２５のソフトウェアアプリケーションを使用して消費者・企業間サービス１１０と対話し得る。クライアントデバイス１２０は通例、スマートフォン、すなわち、ｉＰｈｏｎｅ（登録商標）、Ａｎｄｒｏｉｄ（登録商標）フォン、または他のスマートフォンなど、従来の電話機の機能を超える機能性を提供するソフトウェアアプリケーションを実行することが可能な携帯電話機であり得る。メッセージングエンドポイント１２５は、消費者・企業間サービス１１０の一部を形成する特定のメッセージングシステム１４０に明確に関連付けられる場合も、または複数のメッセージングサービスと対話するように動作する汎用メッセージングクライアントである場合もある。メッセージングエンドポイント１２５は、消費者ポータル１５０およびメッセージングシステム１４０の一方または両方と、メッセージングタスクおよび商業タスクを実施するために対話し得る。
【００５０】
企業エンティティは、メッセージングシステム内で、ユーザに表示するための情報の集合を備える商業表現によって表現され得る。商業表現は企業ページを備えることがあり、企業ページは、消費者・企業間通信システム１００内での企業の識別である。企業ページは、企業エンティティに関する情報を表示し得る。企業ページは、企業エンティティについての情報、例えば、企業エンティティの物理的位置、物理的位置の営業時間、またはその企業エンティティ（例えば企業エンティティの代表者）が消費者・企業間通信システム１００を通じてメッセージング可能である時間、の１つまたは複数を含み得る。企業ページは、ソーシャルグラフで表現され得る、ソーシャルネットワーク内でその企業エンティティを「いいね！」したまたは「フォロー」した閲覧ユーザの友達のリストなどの、企業エンティティのソーシャルネットワーキング情報を含み得る。
【００５１】
商業表現は、企業エンティティと正確に対応しないこともある。企業などの単一の企業エンティティが複数の商業表現を有し、したがって複数の企業ページを有することがある。例えば、単一の企業が、その同じ企業によって所有され、運営される異なるブランドに対して異なる表現を有し得る。小売業者または再販業者が、複数のブランドを販売することがあり、販売する各異なるブランドに対して異なる表現を有し得る。企業は、米国向けに１つの企業ページがあり、ヨーロッパ向けに別の企業ページがあり、ロシア向けに別の企業ページがある等、その企業が営業している異なる地理的エリアごとに異なる表現を有し得る。
【００５２】
ユーザがメッセージングコンテクスト内でサービスと対話するのを支援するために、サービスがボット１９０として表現され得る。ボットは、対話の中で参加者として表現されることが可能な、ネットワークアクセス可能なサービスへの完全にまたは部分的に自動化されたフロントエンドであり得る。一部の事例では、対話は、メッセージスレッド内で具現化されたメッセージング対話からなることができ、ボット１９０はメッセージングボットからなる。いくつかの場合には、メッセージングボットは、特定のユーザとメッセージングボットとの間の１対１メッセージスレッドなど、そのメッセージングボットを明示的に含むメッセージスレッド内でやり取りされ得る。他の場合には、メッセージングボットは、そのメッセージングボットが普段の参加者ではないメッセージスレッド内でやり取りされ得、メッセージングボットは、サービスと対話することを目的とした、メッセージスレッドへの一時的な参加者となる。メッセージングボットは、２人のユーザ間の１対１スレッドであれ、または３人以上のユーザ間のグループスレッドであれ、任意の他のスレッドに一時的な参加者として含まれ得る。
【００５３】
ボット１９０は、メッセージング以外の通信チャネルを使用してユーザと対話し得る。例えば、ボットは、スマートフォン、パーソナルコンピュータ、音声作動式機器、またはユーザが音声を介して対話し得る他のデバイスなどの、音声システムを介して動作する音声ボットからなり得る。そのような実施形態では、音声システムが、ボット１９０に代わって音声認識および音声生成を行い得る。ボット１９０とユーザとの間を仲介するために他のタイプの対話型システムが使用され得る。
【００５４】
商業表現のためのメッセージングボットは、メッセージングシステム１４０内のメッセージング会話の中に提示され得る。メッセージングシステム１４０のユーザは、企業の仮想表現を備えるメッセージングボットとのメッセージングによって、その企業と対話し得る。メッセージングボットは、企業ページとして提示される商業表現に明確に対応し得、メッセージングボットは、メッセージングコンテクストにおける企業ページの表現である。ボットとのメッセージングは、したがって、主として企業からユーザへの情報を提供するため専用の企業ページにある商業表現の存在を、ユーザと企業が会話に関わることができる対話型メッセージングへと拡張し得る。
【００５５】
企業は、１つまたは複数の商業アプリケーションを使用してメッセージングシステム１４０と関わり得る。アプリケーションは、アプリケーション・プログラミング・インターフェース（ＡＰＩ）を介したメッセージングシステム１４０および／またはソーシャルネットワーキングサービス１３０へのアクセスを可能にする、特定の登録に対応し得る。アプリケーションは、そのアプリケーションにメッセージングシステム１４０からどのように接触できるかを指定する、そのアプリケーションのための様々な登録されたフックを介して、メッセージングシステム１４０に登録され得る。これらのフックは、メッセージングシステム１４０内でのユーザメッセージングなどのイベントに応答してアプリケーションに接触するために使用され得る。アプリケーションには、認証ならびにメッセージングシステム１４０との間の情報の安全な（例えば暗号化された）受信および送信のために使用され得るセキュアトークンが割り当てられ得る。アプリケーションは、メッセージングシステム１４０および／またはソーシャルネットワーキングサービス１３０との特定のＡｐｐＩＤに対応し得る。企業は、エージェントを介してその企業が提供するサービスおよび製品の複数の態様をもたらすことがあるので、メッセージングシステム１４０を介してユーザと対話するために、複数の異なるアプリケーションが企業エンティティによって使用され得る。各アプリケーションは、そのアプリケーションが支持する企業ページなどの１つまたは複数の商業表現に対して、メッセージングシステム１４０にサブスクライブし得る。
【００５６】
ネットワーク１８０は、コンピュータデバイス間のコンピュータ送信を搬送するように動作する任意形態のコンピュータネットワークからなり得る。ネットワーク１８０は、イントラネットおよびインターネットの一方または両方を含み得る。ネットワーク１８０は、モバイルクライアントデバイス１２０に接続性を提供するために使用されるものなどの、セルラーデータおよび／またはＷｉ−Ｆｉデータネットワークを含み得る。
【００５７】
消費者・企業間通信システム１００は、ユーザ間の対話から生成された知識を使用し得る。消費者・企業間通信システム１００は、ソーシャルネットワーキングサービス１３０の一コンポーネントを構成し得、ソーシャルネットワーキングサービス１３０のより広範な対話から生成される知識を使用し得る。そのため、消費者・企業間通信システム１００およびさらに大きなソーシャルネットワーキングサービス１３０のユーザのプライバシーを保護するために、消費者・企業間通信システム１００は、認可サーバ（または他の適切なコンポーネント）を含み得、認可サーバは、ユーザが、例えば適当なプライバシー設定を設定することにより、自身のアクションを消費者・企業間通信システム１００によってログに記録させること、または他のシステム（例えばサードパーティシステム）と共有させることをオプトインまたはオプトアウトできるようにする。ユーザのプライバシー設定は、そのユーザに関連付けられたどの情報がログに記録され得るか、そのユーザに関連付けられた情報がどのようにログに記録され得るか、そのユーザに関連付けられた情報がいつログに記録され得るか、そのユーザに関連付けられた情報を誰がログに記録し得るか、そのユーザに関連付けられた情報が誰と共有され得るか、およびそのユーザに関連付けられた情報がどのような目的でログに記録される、または共有されるか、を決定し得る。認可サーバまたは他の認可コンポーネントを使用して、ブロッキング、データのハッシュ化、匿名化、または適宜他の適切な技術を通じて、消費者・企業間通信システム１００およびソーシャルネットワーキングサービス１３０の他の要素のユーザの１つまたは複数のプライバシー設定を施行し得る。例えば、ソーシャルネットワーキングサービス１３０のユーザとソーシャルネットワーキングサービス１３０との間の対話を使用してメディアコンテンツの嗜好や、異なるコンテンツに対する嗜好間の関係を学習し得るが、これらの対話は、学習プロセスに先立って、またはその一部として、匿名化され得る。
【００５８】
図２は、ソーシャルグラフ２００の一例を例示する。特定の実施形態では、ソーシャルネットワーキングシステムは、１つまたは複数のソーシャルグラフ２００を１つまたは複数のデータストアにソーシャルグラフデータ構造として記憶し得る。
【００５９】
特定の実施形態では、ソーシャルグラフ２００は複数のノードを含み得、このノードは、複数のユーザノード２０２および複数の概念ノード２０４を含み得る。ソーシャルグラフ２００は、ノード同士を接続する複数のエッジ２０６を含み得る。特定の実施形態では、ソーシャルネットワーキングシステム、クライアントシステム、サードパーティシステム、または任意の他のシステムもしくはデバイスが、適切なアプリケーションについてのソーシャルグラフ２００と、関係するソーシャルグラフ情報とにアクセスし得る。ソーシャルグラフ２００のノードおよびエッジは、データオブジェクトとして、例えばデータストア（ソーシャルグラフデータベースなど）に記憶され得る。そのようなデータストアは、ソーシャルグラフ２００のノードまたはエッジの、１つまたは複数の検索可能または照会可能な索引を含み得る。
【００６０】
特定の実施形態では、ユーザノード２０２は、ソーシャルネットワーキングシステムのユーザに対応し得る。限定ではなく例として、ユーザは、ソーシャルネットワーキングシステムと、またはソーシャルネットワーキングシステムを通じて対話または通信する、個人（人間のユーザ）、エンティティ（例えばエンタープライズ、企業、もしくはサードパーティアプリケーション）、または（例えば個人またはエンティティの）グループであり得る。特定の実施形態では、ユーザがソーシャルネットワーキングシステムのアカウントを登録するときに、ソーシャルネットワーキングシステムは、そのユーザに対応するユーザノード２０２を作り、そのユーザノード２０２を１つまたは複数のデータストアに記憶し得る。本明細書に記載されるユーザおよびユーザノード２０２は、該当する場合、登録されたユーザおよび登録されたユーザに関連付けられたユーザノード２０２を指し得る。追加として、または代替として、本明細書に記載されるユーザおよびユーザノード２０２は、該当する場合、ソーシャルネットワーキングシステムに登録していないユーザを指すこともある。特定の実施形態では、ユーザノード２０２は、ユーザによって提供された情報、またはソーシャルネットワーキングシステムを含む様々なシステムによって収集された情報に、関連付けられ得る。限定ではなく例として、ユーザは、自身の名前、プロフィール写真、連絡先情報、誕生日、性別、婚姻関係、家族関係、雇用、学歴、嗜好、関心事、または他の人口統計学的情報を提供し得る。特定の実施形態では、ユーザノード２０２は、ユーザに関連付けられた情報に対応する１つまたは複数のデータオブジェクトに関連付けられ得る。特定の実施形態では、ユーザノード２０２は、１つまたは複数のウェブページに対応し得る。ユーザノード２０２は、ソーシャルネットワーキングシステム内でユーザのための一意のユーザ識別子に関連付けられ得る。
【００６１】
特定の実施形態では、概念ノード２０４は概念に対応し得る。限定ではなく例として、概念は、場所（例えば、映画館、レストラン、ランドマーク、もしくは都市など）、ウェブサイト（例えば、ソーシャルネットワークサービスに関連するウェブサイトや、ウェブアプリケーションサーバに関連するサードパーティウェブサイトなど）、エンティティ（例えば、人、企業、グループ、スポーツチーム、もしくは有名人など）、ソーシャルネットワーキングシステム内部またはウェブアプリケーションサーバなどの外部サーバに位置し得るリソース（例えば、オーディオファイル、ビデオファイル、デジタル写真、テキストファイル、構造化文書、もしくはアプリケーションなど）、不動産または知的財産（例えば、彫刻、絵画、映画、ゲーム、歌、アイディア、写真、もしくは文章作品など）、ゲーム、活動、アイディアもしくは理論、別の適切な概念、または２つ以上のそのような概念に対応し得る。概念ノード２０４は、ユーザによって提供された概念の情報、またはソーシャルネットワーキングシステムを含む様々なシステムによって収集された情報に関連付けられ得る。限定ではなく例として、概念の情報は、名前もしくはタイトル、１つまたは複数の画像（例えば本の表紙の画像）、位置（例えば住所もしくは地理的位置）、ウェブサイト（ＵＲＬに関連付けられ得る）、連絡先情報（例えば電話番号もしくは電子メールアドレス）、他の適切な概念情報、またはそのような情報の任意の適切な組み合わせを含み得る。特定の実施形態では、概念ノード２０４は、概念ノード２０４に関連付けられた情報に対応する１つまたは複数のデータオブジェクトに関連付けられ得る。特定の実施形態では、概念ノード２０４は、１つまたは複数のウェブページに対応し得る。
【００６２】
特定の実施形態では、ソーシャルグラフ２００内のノードは、ウェブページ（「プロフィールページ」と呼ぶこともある）を表現するか、またはウェブページによって表現され得る。プロフィールページは、ソーシャルネットワーキングシステムによってホストされるか、またはソーシャルネットワーキングシステムにアクセス可能であり得る。プロフィールページは、サードパーティサーバに関連付けられたサードパーティウェブサイト上にホストされてもよい。限定ではなく例として、特定の外部のウェブページに対応するプロフィールページは、その特定の外部のウェブページであり得、プロフィールページは特定の概念ノード２０４に対応し得る。プロフィールページは、他のユーザのすべてまたはそのうちの選択された部分集合により閲覧可能であり得る。限定ではなく例として、ユーザノード２０２は、対応するユーザプロフィールページを有し得、このページの中で、対応するユーザはコンテンツを追加し、宣言を行い、またはその他の形で自身を表し得る。企業ページ２０５などの企業ページは、商業エンティティのユーザプロフィールページを備え得る。別の例として、限定ではなく、概念ノード２０４は、対応する概念プロフィールページを有し得、このページの中で、１人または複数のユーザが、特に概念ノード２０４に対応する概念との関連で、コンテンツを追加し、宣言を行い、または自身を表し得る。
【００６３】
特定の実施形態では、概念ノード２０４は、サードパーティシステムによってホストされるサードパーティウェブページまたはリソースを表現し得る。サードパーティウェブページまたはリソースは、種々の要素の中でも特に、コンテンツ、選択可能なもしくはその他のアイコン、またはアクションもしくは活動を表現する他の対話可能オブジェクト（例えば、ＪａｖａＳｃｒｉｐｔ、ＡＪＡＸ、またはＰＨＰコードで実装され得る）を含み得る。限定ではなく例として、サードパーティウェブページが、「いいね！」、「チェックイン」、「食べる」、「推奨される」、または他の適切なアクションもしくは活動などの、選択可能なアイコンを含み得る。そのサードパーティウェブページを閲覧するユーザは、アイコンの１つ（例えば「食べる」）を選択して、クライアントシステムからソーシャルネットワーキングシステムにユーザのアクションを指示するメッセージを送信させることにより、アクションを行うことができる。そのメッセージに応答して、ソーシャルネットワーキングシステムは、当該ユーザに対応するユーザノード２０２と、サードパーティウェブページまたはリソースに対応する概念ノード２０４との間にエッジ（例えば「食べる」のエッジ）を作り、エッジ２０６を１つまたは複数のデータストアに記憶し得る。
【００６４】
特定の実施形態では、ソーシャルグラフ２００中のノードのペアが、１つまたは複数のエッジ２０６によって互いと接続され得る。ノードのペア同士を接続するエッジ２０６は、そのノードのペア間の関係を表現し得る。特定の実施形態では、エッジ２０６は、ノードのペア間の関係に対応する１つまたは複数のデータオブジェクトまたは属性を含むか、または表現し得る。限定ではなく例として、第１のユーザが、第２のユーザが第１のユーザの「友達」であることを指示し得る。この指示に応答して、ソーシャルネットワーキングシステムは、第２のユーザに「友達申請」を送信し得る。第２のユーザが「友達申請」を確定した場合、ソーシャルネットワーキングシステムは、ソーシャルグラフ２００内に第１のユーザのユーザノード２０２を第２のユーザのユーザノード２０２に接続するエッジ２０６を作り、エッジ２０６をソーシャルグラフ情報として１つまたは複数のデータストアに記憶し得る。図２の例では、ソーシャルグラフ２００は、ユーザ「アマンダ」のユーザノード２０２とユーザ「ドロシー」のユーザノード２０２との間の友達関係を指示するエッジ２０６を含んでいる。本開示は、特定のユーザノード２０２同士を接続する特定の属性をもつ特定のエッジ２０６について記載または例示するが、本開示は、ユーザノード２０２同士を接続する任意の適切な属性をもつ任意の適切なエッジ２０６を企図する。限定ではなく例として、エッジ２０６は、友達関係、家族関係、ビジネスもしくは雇用関係、ファン関係、フォロワー関係、ビジター関係、サブスクライバ関係、上下関係、互恵関係、非互恵関係、別の適切なタイプの関係、または２つ以上の同様の関係を表現し得る。さらに、本開示は概してノードを接続されたものとして説明するが、本開示は、ユーザまたは概念も接続されたものとして説明する。本明細書において、接続されたユーザまたは概念への言及は、該当する場合、ソーシャルグラフ２００内で１つまたは複数のエッジ２０６によって接続されているそれらユーザまたは概念に対応するノードを指し得る。
【００６５】
特定の実施形態では、ユーザノード２０２と概念ノード２０４との間のエッジ２０６は、概念ノード２０４に関連付けられた概念に向けて、ユーザノード２０２に関連付けられたユーザによって行われる特定のアクションまたは活動を表現し得る。限定ではなく例として、図２に例示されるように、ユーザは、概念を「いいね！」する、概念に「在籍した」、概念を「再生した」、「聴いた」、「料理した」、概念で「勤務した」、または概念を「視聴した」可能性があり、それぞれが１つのエッジタイプまたはサブタイプに対応し得る。概念ノード２０４に対応する概念プロフィールページは、例えば、選択可能な「チェックイン」アイコン（例えばクリック可能な「チェックイン」アイコンなど）、または選択可能な「お気に入りに追加」アイコンを含み得る。同様に、ユーザがこれらのアイコンをクリックした後、ソーシャルネットワーキングシステムは、それぞれのアクションに対応するユーザのアクションに応じて、「お気に入り」エッジまたは「チェックイン」エッジを作り得る。別の例として、限定ではなく、ユーザ（ユーザ「カーラ」）が、特定のアプリケーション（オンライン音楽アプリケーション、ＳＰＯＴＩＦＹ）を使用して特定の歌（「Ａｃｒｏｓｓ  ｔｈｅ  Ｓｅａ」）を聴くとする。この場合、ソーシャルネットワーキングシステムは、当該ユーザに対応するユーザノード２０２と、その歌およびアプリケーションに対応する概念ノード２０４との間に「聴いた」エッジ２０６および「使用した」エッジを作って（図２に例示されるように）、そのユーザがその歌を聴き、そのアプリケーションを使用したことを指示し得る。さらに、ソーシャルネットワーキングシステムは、歌に対応する概念ノード２０４とアプリケーションに対応する概念ノード２０４との間に「再生した」エッジ２０６を作って（図２に例示されるように）、その特定の歌がその特定のアプリケーションによって再生されたことを指示し得る。この場合、「再生した」エッジ２０６は、外部のアプリケーション（ＳＰＯＴＩＦＹ）によって外部のオーディオファイル（歌「Ａｃｒｏｓｓ  ｔｈｅ  Ｓｅａ」）に対して行われたアクションに対応する。本開示は、ユーザノード２０２と概念ノード２０４とを接続する特定の属性をもつ特定のエッジ２０６について記載するが、本開示は、ユーザノード２０２と概念ノード２０４とを接続する任意の適切な属性をもつ任意の適切なエッジ２０６を企図する。さらに、本開示は、単一の関係を表現するユーザノード２０２と概念ノード２０４との間のエッジについて記載するが、本開示は、１つまたは複数の関係を表現するユーザノード２０２と概念ノード２０４の間のエッジを企図する。限定ではなく例として、エッジ２０６は、ユーザが特定の概念を好むことおよびその概念を使用したことの両方を表現し得る。あるいは、別のエッジ２０６は、ユーザノード２０２と概念ノード２０４との間の各タイプの関係を（または単一の関係を複数個）表現してもよい（図２でユーザ「エドウィン」のユーザノード２０２と「ＳＰＯＴＩＦＹ」の概念ノード２０４との間に例示されるように）。
【００６６】
特定の実施形態では、ソーシャルネットワーキングシステムは、ソーシャルグラフ２００中でユーザノード２０２と概念ノード２０４との間にエッジ２０６を作り得る。限定ではなく例として、ある概念プロフィールページを（例えば、ユーザのクライアントシステムにホストされるウェブブラウザまたは特殊目的アプリケーションを使用するなどにより）閲覧しているユーザが、「いいね！」アイコンをクリックまたは選択することにより、概念ノード２０４によって表現される概念を好むことを指示し、それにより、ユーザのクライアントシステムがソーシャルネットワーキングシステムに、その概念プロフィールページに関連付けられた概念をユーザが好むことを指示するメッセージを送り得る。メッセージに応答して、ソーシャルネットワーキングシステムは、ユーザと概念ノード２０４の間の「いいね！」エッジ２０６で例示されるように、ユーザに関連付けられたユーザノード２０２と概念ノード２０４との間にエッジ２０６を作り得る。特定の実施形態では、ソーシャルネットワーキングシステムは、エッジ２０６を１つまたは複数のデータストアに記憶し得る。特定の実施形態では、エッジ２０６は、特定のユーザアクションに応答してソーシャルネットワーキングシステムによって自動的に形成され得る。限定ではなく例として、第１のユーザが写真をアップロードする、映画を見る、または歌を聴くと、第１のユーザに対応するユーザノード２０２と、それらの概念に対応する概念ノード２０４との間にエッジ２０６が形成され得る。本開示は、特定のエッジ２０６を特定の手法で形成することを記載するが、本開示は、任意の適切なエッジ２０６を任意の適切な手法で形成することを企図する。
【００６７】
ソーシャルグラフ２００は、複数の製品ノードをさらに含み得る。製品ノードは、特定の企業に関連付けられる場合もある特定の製品を表現し得る。企業は、消費者・企業間サービス１１０に製品カタログを提供することができ、したがって消費者・企業間サービス１１０は、製品の各々を、ソーシャルグラフ２００内の製品の中に表現することができ、各製品はそれぞれ別個の製品ノードにある。製品ノードは、価格情報、説明情報、製造者情報、在庫情報、および他の関連情報などの、製品に関係する情報を含み得る。例えば、レストランのメニューにある品目の各々が、ソーシャルグラフ２００内で各品目を記述する製品ノードで表現され得る。製品ノードは、その製品を提供する企業にエッジでリンクされ得る。複数の企業が１つの製品を提供する場合は、各企業が当該製品の自身の提供に関連付けられた別個の製品ノードを有するか、またはそれぞれが同じ製品ノードにリンクし得る。製品ノードは、その製品を購入した、評価付けした、所有している、推奨した、または閲覧した各ユーザにエッジでリンクされ得、エッジは、関係の性質（例えば購入した、評価した、所有している、推奨した、閲覧した、または他の関係）を記述する。各製品ノードは、リンクされた取引業者企業によってグラフＩＤおよび関連する取引業者ＩＤに関連付けられ得る。したがって、ある企業から入手可能な製品は、ソーシャルグラフ２００内でその企業のユーザノードにリンクされた利用可能な製品ノードを取り出すことにより、ユーザに伝えられ得る。製品ノードについての情報は、参照される製品に関する情報をカプセル化している製品オブジェクトとして、ソーシャルネットワーキングシステムによって操作され得る。
【００６８】
図３Ａは、メッセージングボット起動コントロール３１５を含むメッセージ対話表示３１０を備えたユーザインターフェース３００の一実施形態を例示する。
【００６９】
クライアントデバイス３２０は、消費者・企業間通信システム１００にアクセスするために使用される任意のデバイスに対応し得る。図３Ａに例示される実施形態では、クライアントデバイス３２０はスマートフォンデバイスを模しているが、本明細書に記載される技術は任意タイプのデバイスに使用され得ることが理解されよう。ユーザインターフェース３００は、一般に、メッセージングシステム１４０に関するメッセージスレッドの表示に対応し得る。
【００７０】
メッセージングクライアントは、メッセージングクライアントヘッダ３０５を表示し得る。メッセージングクライアントヘッダ３０５は、メッセージスレッドに参加している１人または複数のユーザの名前など、メッセージスレッドのタイトルを含むことができ、ユーザの名前は、実名、ニックネーム、または他の名前情報に従って選択され得る。メッセージングクライアントヘッダ３０５は、ユーザをメッセージングクライアントの受信ボックスビューに戻すためのコントロールを含み得る。受信ボックスビューコントロールは、未読メッセージを含む最近のメッセージスレッドの数で強化されてもよい。
【００７１】
メッセージスレッドのユーザインターフェース３００は、作成コントロール３２２を含み得る。作成コントロール３２２の多く、大半、またはほぼすべては、テキスト入力、メディア選択、絵文字選択、カメラの使用、ソーシャル承認アイコン等の、様々なタスクを行うためのインターフェースコントロールへのアクセスおよび使用を可能にし得る。コントロールは、テキストベースのメッセージを作成するためのテキストの入力を可能にする、テキスト入力コントロールを含み得る。コントロールは、ハードウェアコントロールを含み得る。いくつかの実施形態では、コントロールは、タッチ画面に基づくコントロールであり得る。
【００７２】
メッセージスレッドのユーザインターフェース３００は、メッセージ対話表示３１０を備え得る。メッセージ対話表示３１０は、メッセージスレッド内で交換されるメッセージを備え得る。メッセージ対話表示３１０は、メッセージスレッドの参加者によって追加的なメッセージがメッセージスレッドに追加されるのに伴い、反復的に更新され得る。メッセージは、ユーザのアバターに関連付けて表示され得る。
【００７３】
メッセージングクライアントおよび／またはメッセージングシステム１４０は、１つまたは複数のメッセージングボットを選択および構成する際に使用するためのメッセージング内容を検出し得る。抽出されるメッセージング内容は、一般に、単語、句、文、メッセージの連続もしくは交換、またはメッセージングシステム１４０が潜在的なアクション、オプション、もしくは他の提案に関連付けるメッセージスレッドの他の要素に対応し得る。メッセージングシステム１４０は、識別したメッセージング内容を使用して、そのメッセージング内容に関係する、提案されるメッセージングボットなどの提案されるサービスを起動し得る。抽出するメッセージング内容は、単語および／または句ならびに様々な提案の間の事前に決定され、事前に割り当てられた関連付けに基づいて決定され得、または自然言語プログラミング技術に基づいて自動的に決定され得る。
【００７４】
メッセージングボットと対話することへの潜在的なユーザの関心を検出することによって、メッセージングボット起動コントロール３１５の表示を起動し得る。メッセージングクライアントは、提案されるメッセージングボットに対応するものなどの、複数の提案されるサービスを取り出して、複数のトリガされたメッセージングボット起動コントロール３１５内で表示し得る。いくつかの実施形態では、複数の提案されるサービスは、メッセージングクライアントおよび／またはメッセージングシステム１４０が関連するコンテクストを検出するのに応答して、自動的に表示され得る。メッセージングボット起動コントロール３１５は、複数のメッセージングボットオプションを含み得る。メッセージングボット起動コントロールは、特定のサービスに関連付けられた特定のメッセージングボットを含み得る。
【００７５】
メッセージングボット起動コントロール３１５は、メッセージングボットによって表現されるものなど、サービスに関する提案を含み得る。メッセージングボット起動コントロール３１５は、提案されるメッセージングボットのランク付けされたリストを備え得る。提案されるメッセージングボットは、各種技術に基づいて、および各種要因に基づいて決定され得る。提案されるメッセージングボットのランク付けは、メッセージングボット起動コントロール３１５の順序付けで表現され得、ランクが高いメッセージングボットはより目立つように表示され、ランクが低いメッセージングボットはあまり目立たないように表示される。例えば、ランクが低いいくつかのメッセージングボットは、完全にまたは部分的に画面外に置かれ、ユーザがメッセージングボット起動コントロール３１５を通じてナビゲートした場合にのみ公開される（または完全に公開される）ように配置され得る。
【００７６】
情報は、メッセージスレッドとして具現化されるメッセージング対話の内容、または内容の一部分から抽出され得る。いくつかの場合には、メッセージスレッドとの関わりのうち現在の期間を検出し、その現在の期間にわたるメッセージスレッドを分析するなどにより、メッセージスレッドの最近の部分が使用され得る。メッセージスレッドの最近の部分は、各種技術に従って定義され得る。いくつかの場合には、最近の部分は、事前に定義された長さの時間に従って定義され得、最近の部分は、事前に定義された長さに等しい長さに及び、かつ現在の時間で終了する範囲の時間中に交換されたスレッドの断片である。いくつかの場合には、最近の部分は、メッセージスレッドとの関わりの一時的な解消を示す、十分な長さ（事前に定義され得る）の会話の直近の中断を検出するなどにより、可変の長さに及ぶように決定され得る。例えば、メッセージスレッドの最近の部分は、１時間よりも長い会話の断絶を全く含まない、現在の時間に終了するスレッドの最大範囲であり得る。スレッドの最近の部分を検出するための他の技術が使用され得る。
【００７７】
複数のメッセージングボット起動コントロール３１５の中からメッセージングボット起動コントロールを選択すると、その特定の選択されたメッセージングボットと対話するためのインターフェースが起動され得る。
【００７８】
いくつかの実施形態では、メッセージスレッドは、複数の参加者がメッセージ対話に関わるマルチユーザメッセージスレッドであり得る。しかし、代替実施形態では、メッセージスレッドはボット要求スレッドであってもよく、ボット要求スレッドでは、様々なメッセージングボットを推奨し、それらにユーザを誘導することができるシステムに、ユーザが直接かつ意図的に関わる。ユーザは、ボットのリストからボット要求スレッドを選択し、ボット要求エンジンと関わって推奨されるボットを受け取り、その後ボット要求スレッド内でそれらのボットと関わることができる。例えば、「今夜食事をしに行きたい？僕は中華料理を考えている。」と尋ねる代わりに、ユーザは、ボット要求スレッド内で「今夜食事をしに行きたいんだけど中華料理を考えている」とサブミットし、それに応答してボット要求システムがユーザにメッセージングボットを推奨する。そして、ユーザ間対話の中で暗黙的な推奨の機会を検出することへの応答ではなく、ユーザによる直接的な照会への応答として、メッセージングボット起動コントロール３１５が提示され得る。
【００７９】
別の代替実施形態では、メッセージングボットの支援を求める要求が、ユーザ間メッセージスレッド内で直接起動され得る。ボット要求は、ボット提案システムを直接的にアドレス指定することによって行われ得る。ボット提案システムを直接的にアドレス指定することは、各種技術を使用して行われ得る。例えば、ボット提案システムは、ボット提案システムがアドレス指定されていることを指示するテキスト断片をテキストベースの要求の先頭に付けることにより、アドレス指定され得る。例えば、ユーザが「＠Ｍ今夜食事をしに行きたいんだけど中華料理を考えている」と入力し、「＠Ｍ」のテキスト断片がボット提案システムを起動させる。代替として、または追加として、ユーザ間メッセージスレッドでボット提案システムをアドレス指定することを可能にするコントロールが、作成コントロール３２２の一部として提供されてもよい。いくつかの実施形態では、ボット提案システムが直接起動される場合、ボット提案システムの起動、ボット提案システムによる応答（メッセージングボット起動コントロール３１５もしくは他の応答など）、またはメッセージングボットとの対話は、ボット提案システムおよび任意のボットを起動するクライアントデバイス３２０のユーザのみに示され得、メッセージングシステム１４０は、これらの対話を他のクライアントデバイスに提供することを控える。これにより、起動元のユーザと、ボット提案システムと、メッセージングボットとの間のユーザ間メッセージスレッド内に、スレッドにいるどの他の参加者からもプライベートなサイド会話を作り出す。しかし、他の実施形態では、他のクライアントデバイス、およびしたがってそれらのユーザに、そのような対話の一部またはすべてが提供されてもよい。
【００８０】
図３Ｂは、メッセージングボットメニュー３３５を含むユーザインターフェース３２５の一実施形態を例示する。
【００８１】
特定のメッセージングボットのメッセージングボットメニュー３３５は、そのメッセージングボットのためのメッセージングボット起動コントロールが、クライアントデバイス３２０のユーザによって選択されるのに応答して表示され得る。メッセージングボットメニュー３３５は、そのメニューが起動されるメッセージングスレッドに関連付けて表示され得る。
【００８２】
メッセージングボットメニュー３３５は、特定のメッセージングボットに明確に関連付けられた表示要素であり、そのメニューが起動されたメッセージスレッドのコンテクストの中で、ユーザがメッセージングボットのインターフェースと対話することを可能にする。クライアントデバイス３２０のユーザは、メッセージングボットメニュー３３５の中に移動し、メッセージングボットメニュー３３５と対話してメッセージングボットと対話し、メッセージングボットメニュー３３５から戻ってメッセージスレッドでのメッセージング会話に再度関わり、メッセージングボットメニュー３３５の中に戻ってメッセージングボットに再度関わり、異なるメッセージングボットメニュー間を移動し、メッセージスレッドのコンテクストの中で一般には動的にメッセージングボットメニューと対話することにより、進行中のメッセージング会話への接続を保持しながら、メッセージングボットを選択し、そのメッセージングボットと対話し得る。
【００８３】
メッセージングボット起動コントロール３３０は、メッセージングボットメニュー３３５に隣接して表示され得る。メッセージングボット起動コントロール３３０は、メッセージング会話に隣接して表示されるメッセージングボット起動コントロール３１５と実質的に同様であり得るが、クライアントデバイス３２０の画面の一番上の部分に移される。移されたメッセージングボット起動コントロール３３０は、様々なメッセージングボットメニューから選択するためのタブであり得る。そのため、現在選択されていないメッセージングボット起動コントロールを選択すると、メッセージングクライアントが遷移して、現在選択されたメッセージングボット起動コントロールに対応するメッセージングボットメニューを表示させ得る。現在のメッセージングボットメニュー３３５に関連付けられた特定のメッセージングボット起動コントロールは、別個の視覚的スタイルで表示されて、それにより、そのメッセージングボット起動コントロールに対応するメッセージングボットが、アクティブなメッセージングボットメニュー３３５を現在有していることを指示し得る。現在アクティブなメッセージングボットメニュー３３５に対応するコントロールを再度選択すると、メッセージングボットメニュー３３５が最小化されて、ユーザがメッセージング対話表示３１０内のメッセージングボット会話のビューに戻ることを可能にし得る。
【００８４】
メッセージングボットメニュー３３５は、複数のカスタマイズオプション３４５を含み得る。これらのカスタマイズオプション３４５は、メッセージングボットメニュー３３５の一部として提供されたメッセージングボットのためのコントロールによって設定されたメッセージングボットを構成する設定を含む。カスタマイズオプション３４５は、メッセージスレッドのコンテクストに基づいて、メッセージングボット起動コントロール３１５の表示を促す特定のメッセージング対話の内容に基づいて、メッセージスレッドおよび／もしくは特定のメッセージング対話についてのユーザ情報に基づいて、ならびに／またはメッセージングボットメニュー３３５のコンテクストの他の分析に従って、最初に自動的に設定され得る。これらのカスタマイズオプション３４５は、その後ユーザによって保持されるか、メッセージングボットメニュー３３５のコントロールを使用して修正され得る。
【００８５】
一般に、メッセージングボットメニュー３３５は、自動的に設定されるカスタマイズオプション３４５であれ、またはクライアントデバイス３２０のユーザによって手動で設定されるものであれ、カスタマイズオプション３４５に基づいて構成される。いくつかの事例では、メッセージングボットメニュー３３５は、１つまたは複数のメニュー項目を含み得る。例えば、レストランの推奨を構成、表示、および選択するために設計されたメッセージングボットメニュー３３５の場合、メニュー項目３４０は特定のレストランに対応し得る。メニュー項目３４０は、店名、位置、価格情報、パフォーマンス情報、およびメニュー項目３４０に関係する他の情報を含み得る。メニュー項目３４０は、１つまたは複数のコントロールを含み得る。例えば、レストランメニューのためのコントロールは、レストランと、そのレストランについての特定の利用可能な予約時間との両方の選択を可能にし得る。これらの事例では、メニュー項目は、少なくとも部分的にカスタマイズオプション３４５に基づいて決定される。メニュー項目は、部分的に、メッセージスレッドまたはメッセージスレッドの参加者に関係する情報などの追加的な情報に基づいて決定されてもよい。
【００８６】
図３Ｃは、マルチユーザ要求コントロール３５５を含むメッセージングボットメニューを備えたユーザインターフェース３５０の一実施形態を例示する。
【００８７】
いくつかの場合には、複数のクライアントデバイスの複数のユーザがサービス要求の構成に寄与するように、消費者・企業間サービス１１０と対話するためのインターフェースが、複数のクライアントデバイスに分散され得る。主ユーザがメッセージングボットとの対話を開始し、そのメッセージングボットと対話するために主インターフェースを使用し得る。しかし、メッセージスレッド内の他のユーザは、主ユーザおよびいる場合には他の副ユーザと一緒にメッセージングボットに関わる機会を与えられ得る。
【００８８】
いくつかの場合には、メッセージングボットのためのインターフェース、または消費者・企業間サービス１１０を使用してユーザと通信する他のエージェントが、主ユーザがそのエージェントを選択することに基づいて、複数のクライアントデバイスにまたがってインスタンス化され得る。他の場合には、エージェントが、最初に単一のクライアントデバイス上で単一ユーザインターフェースをインスタンス化し、任意選択でまたは単に最終的に、複数のクライアントデバイス上でインスタンス化し得る。インスタンス化元のクライアントデバイスのインターフェースは、マルチユーザインターフェースのための主インターフェースまたは制御インターフェースである、主マルチユーザインターフェースとなり得る。
【００８９】
マルチユーザ要求コントロール３５５は、副クライアントデバイス上に副ユーザインターフェースをインスタンス化するために使用され得る。副クライアントデバイスは、グループメッセージスレッド内の他の参加者によって現在使用されているデバイスとして識別され得る。マルチユーザ要求コントロール３５５は、サービス要求を構成するために、１つまたは複数の他のクライアントデバイス上で副ユーザインターフェースのインスタンス化を開始し得る。図の実施形態では、マルチユーザ要求コントロール３５５は、副クライアントデバイス上にユーザインターフェースをインスタンス化して、副クライアントデバイスのユーザに、要求されるサービスに参加する人の数に自分を含めるべきか否かを指示するように求めている。
【００９０】
図３Ｄは、副マルチユーザインターフェース３６５を備えるユーザインターフェース３６０の一実施形態を例示する。
【００９１】
ユーザインターフェース３６０は、副クライアントデバイス３７０上で表示され得る。副クライアントデバイス３７０は、メッセージングボットへの接触を開始したユーザ以外の、メッセージスレッド内の参加者によって使用されるクライアントデバイスからなり得る。
【００９２】
副クライアントデバイス３７０向けのユーザインターフェース３６０は、主クライアントデバイス上の主マルチユーザインターフェースに基づいて副クライアントデバイス３７０上でインスタンス化される副マルチユーザインターフェース３６５を含み得る。副マルチユーザインターフェース３６５は、主マルチユーザインターフェース内で指定された情報を含み得る。例えば、レストラン予約の場合、主マルチユーザインターフェースは、特定のレストラン、日付、および予約の時間を決定することができる。副マルチユーザインターフェース３６５は、１つまたは複数のマルチユーザコントロールからなるマルチユーザコントロール３６８を含み得る。副マルチユーザインターフェースのマルチユーザコントロール３６８は、メッセージスレッドの参加者がサービス要求の構成に寄与することを可能にし得る。例えば、サービス要求を構成しようとしている場合には、１つまたは複数のマルチユーザコントロールが、ユーザが要求対象のサービスに自身を含めたいか否かを登録することを可能にし得る。
【００９３】
メッセージスレッドのユーザインターフェース３６０は、作成コントロール３６９を含み得る。作成コントロール３６９の多く、大半、またはほぼすべては、テキスト入力、メディア選択、絵文字選択、カメラの使用、ソーシャル承認アイコンなど、様々なタスクを行うためのインターフェースコントロールへのアクセスおよび使用を可能にし得る。コントロールは、テキストベースのメッセージを作成するためのテキストの入力を可能にする、テキスト入力コントロールを含み得る。コントロールは、ハードウェアコントロールを含み得る。いくつかの実施形態では、コントロールは、タッチ画面に基づくコントロールであってよい。
【００９４】
図３Ｅは、マルチユーザ寄与要素３９５を含む、構成されたサービス要求についてのメッセージングボットメニュー３９０のユーザインターフェース３８０の一実施形態を例示する。
【００９５】
メッセージングボットメニュー３９０は、サービス要求が、サービス要求を許すのに十分に構成されたところまで進行し得る。メッセージングボットメニュー３９０がこの状態に達すると、サービス要求コントロール３８５が表示され得る。サービス要求コントロール３８５は、ユーザがサービスの実施を要求することを可能にする。
【００９６】
構成されたサービス要求についてのメッセージングボットメニュー３９０は、マルチユーザインターフェースに基づいて構成されたオプションを含み得、構成されたオプションの少なくとも一部分は、１つまたは複数の副マルチユーザインターフェースのユーザによるマルチユーザインターフェースへの参加に基づく。構成されたオプションは、マルチユーザ寄与要素３９５を含み得、マルチユーザ寄与要素３９５は、マルチユーザインターフェースに対応する主クライアントデバイス３２０以外の１つまたは複数の副クライアントデバイス上での、ユーザインターフェース対話を反映する。図の実施形態では、マルチユーザ寄与要素３９５は、メッセージスレッドの参加者がグループ予約に加わるかどうかに関する情報を副マルチユーザインターフェースが収集した結果を反映している。
【００９７】
図４Ａは、メッセージ対話表示４１０を含むユーザインターフェース４００の一実施形態を例示し、管理テキスト４１５がサービス要求を伝えている。
【００９８】
ユーザがサービス要求コントロール３８５を選択するか、その他の方法でメッセージングボットにサービスを要求すると、メッセージングボットは、管理テキスト４１５をメッセージングシステム１４０に提供し得、管理テキスト４１５が、構成されたサービスを伝える。管理テキスト４１５はその後、メッセージング対話表示４１０の一部として表示するために、メッセージングシステム１４０によってクライアントデバイス３２０に提供される。管理テキスト４１５は、当該ユーザに属する他のクライアントデバイス、およびメッセージスレッドの他の参加者に関連付けられたクライアントデバイスにも配布されてよい。管理テキスト４１５は、テキスト、画像、コントロール、または任意の他の要素を含み得る。管理テキスト４１５は、閲覧者に基づいてカスタマイズされ得る。例えば、管理テキストは、あるサービスを要求しているユーザを、そのユーザと、他のユーザとに対して異なるように識別し得る。
【００９９】
図４Ｂは、メッセージ対話表示４３５を含むユーザインターフェース４２５の一実施形態を例示しており、管理テキスト４４０が、多ユーザインターフェースの副ユーザに合わせてカスタマイズされたサービス要求を伝えている。
【０１００】
管理テキスト４４０は、副クライアントデバイス３７０上のメッセージ対話表示４３５に提供される。管理テキストは、メッセージスレッドの参加者に対応する各クライアントデバイスに合わせてカスタマイズされ得る。副クライアントデバイス７２０向けの管理テキスト４４０は、副クライアントデバイス３７０のユーザがその構成に参加したサービス要求を伝え得る。副クライアントデバイス３７０向けの管理テキスト４４０は、副クライアントデバイス３７０の具体的な寄与を反映し得る。例えば、あるサービスに対する要求の場合、管理テキスト４４０は、ユーザがそのサービス要求に参加することを選択決定したかどうかを反映し得る。いくつかの実施形態では、サービス要求に参加することを拒否したユーザは管理テキストの受信から除外され、管理テキストは、そのサービス要求に参加することを選択決定したユーザのみに送られる。
【０１０１】
図５は、メッセージング対話に基づいてユーザ意図５１５を判定する消費者・企業間通信システム１００の一実施形態を例示する。
【０１０２】
メッセージングシステム１４０は、複数のコンポーネントを備え得る。いくつかの実施形態では、これら複数のコンポーネントは、複数のサーバ間に分散され得る。他の実施形態では、単一のサーバが複数のコンポーネントを実装し得る。いくつかの実施形態では、複数のサーバが単一のサーバデバイスによって実行され得る。他の実施形態では、複数のサーバが複数のサーバデバイスによって実行され得る。いくつかの実施形態では、様々なコンポーネントおよび様々なサーバの複数のインスタンスを実行して、冗長性、向上したスケーリング、および他の利益を提供し得る。同様に、クライアントデバイスが、メッセージングクライアントの一部として複数のコンポーネントを実行してもよい。
【０１０３】
クライアントデバイスは、ワイヤレス送信を使用してネットワークトラフィックを交換することにより、他のデバイスと通信し得る。メッセージングトランザクションの交換に含まれるものなどのネットワークトラフィックの交換は、ネットワーク・インターフェース・コントローラ（ＮＩＣ）を介してネットワークトラフィックを送受信することを含み得る。ＮＩＣは、クライアントデバイスなどのコンピュータデバイスをコンピュータネットワークに接続するハードウェアコンポーネントを備える。ＮＩＣは、ソフトウェアアプリケーションがＮＩＣにアクセスし、使用することを可能にするソフトウェアネットワークインターフェースに関連付けられ得る。ネットワークトラフィックは、データリンクを通じて送信される信号として、コンピュータネットワークを通じて受信され得る。ネットワークトラフィックは、これらの信号を捕捉し、解釈することによって受信され得る。ＮＩＣは、コンピュータネットワークを通じてネットワークトラフィックを受信し、そのネットワークトラフィックを、ネットワーク・インターフェース・アプリケーション・プログラミング・インターフェース（ＡＰＩ）を使用して、ソフトウェアアプリケーションからアクセス可能なメモリストレージに転送し得る。ネットワーク・インターフェース・コントローラは、ネットワーク通信を通じたメッセージングクライアントおよびメッセージングサーバの相互動作を含む、本明細書に記載される実施形態のネットワーク活動に使用され得る。例えば、クライアントフロントエンドサーバ５３５にメッセージを送信する、またはそこからメッセージを受信するメッセージングクライアントは、情報の送信または受信用の通信ネットワークにネットワークアクセスするためにネットワーク・インターフェース・コントローラを使用しているものと解釈され得る。
【０１０４】
メッセージングクライアントは、ユーザインターフェースコンポーネント５２３を備え得る。ユーザインターフェースコンポーネント５２３は、一般に、クライアントデバイスのユーザにユーザインターフェースを表示し、クライアントデバイスのメッセージングクライアントに対するユーザコマンドを受け取るようになされ得る。メッセージングクライアントは、クライアントメッセージングコンポーネント５２６を備え得る。クライアントメッセージングコンポーネント５２６は、一般に、クライアントフロントエンドサーバ５３５との通信を介して、メッセージングクライアントに代わってメッセージング対話を行うようになされ得る。
【０１０５】
クライアントフロントエンドサーバ５３５は、一般に、送り元クライアントデバイス５２０などのクライアントデバイスに対して、メッセージングシステム１４０へのネットワークアクセスポイントとして働くようになされ得る。クライアントフロントエンドサーバ５３５は、メッセージングコンポーネント５３０を備え得、メッセージングコンポーネント５３０は、一般に、メッセージングシステム１４０に関するメッセージングサービスへのネットワークアクセスポイントとして働くようになされ得る。メッセージングコンポーネント５３０は、クライアントデバイスからメッセージを受信し、そのメッセージをメッセージ待ち行列に追加し得る。
【０１０６】
メッセージ待ち行列５８０は、メッセージングシステム１４０内で送り元クライアントデバイス５２０のユーザのユーザアカウントに一意に関連付けられることなどにより、送り元クライアントデバイス５２０のユーザに明確に関連付けられ得る。メッセージ待ち行列５８０は、このユーザによって使用されるすべてのメッセージングエンドポイントに使用される単一の待ち行列であり得る。メッセージ待ち行列５８０は、厳格な線形の順序で更新の表現を含み得る。メッセージ待ち行列５８０は、各種技術によりデータ単位として編成され得る。メッセージ待ち行列５８０は、半永続的メモリ、永続的ストレージ、半永続的メモリおよび永続的ストレージの両方、または両者の組み合わせに記憶され得る。メッセージ待ち行列５８０は、リンクされたリスト、配列を含む各種のデータ構造、ならびに待ち行列を編成するための他の技術により編成され得る。メッセージ待ち行列５８０は、一般に、更新が自身より先に受信されたどの更新よりも前に待ち行列から除去または取り出されることがない、先入れ先出し（ＦＩＦＯ）型の待ち行列からなり得る。
【０１０７】
メッセージングシステム１４０は、ワーカサーバ５４５、５５５、５６５などの１つまたは複数のワーカサーバを含み得る。一般に、メッセージングシステム１４０は、様々なタスクに割り当てられ得る複数のワーカサーバを含むことができる。ワーカサーバ５４５はメッセージ待ち行列監視コンポーネント５４０を備え得る。メッセージ待ち行列監視コンポーネント５４０は、メッセージ待ち行列５８０およびメッセージングシステム１４０の他のメッセージ待ち行列内で、様々なフラグ、インジケータ、および他の情報に関して、メッセージを含むものなどの更新を監視するようになされる。ワーカサーバ５５５は対話処理コンポーネント５５０を備え得、対話処理コンポーネント５５０は、メッセージング対話の内容に基づくユーザ意図５１５の生成を管理するように動作する。ワーカサーバ５６５は自然言語処理コンポーネント５６０を備え得、自然言語処理（ＮＬＰ）コンポーネント５６０は、自然言語処理技術を使用してメッセージング対話を分析することによってメッセージング対話を分析し、メッセージング対話に基づいてユーザ意図５１５を生成するように動作する。ＮＬＰコンポーネント５６０は、自然言語機械学習技術を使用して自身のＮＬＰ動作を向上させるように動作する自然言語機械学習コンポーネントを備え得る。
【０１０８】
対話処理コンポーネント５５０は、ＮＬＰコンポーネント５６０とのインターフェースを取り得る。ＮＬＰコンポーネント５６０は、消費者・企業間通信システム１００に関する自然言語処理を行う。自然言語処理の実行は、メッセージング対話の意図を判定するためのメッセージング対話の内容の分析を含み得る。意図は、メッセージング対話が求めようとしている目標を表す。例えば、どこに食事をしに行くかを話し合っている人たちは、「ダイニング」、「食べる」、「レストラン」、または他の関係する語である意図を有し得る。対話処理コンポーネント５５０は、１つまたは複数のメッセージを含むメッセージング対話の内容をＮＬＰコンポーネント５６０に提供し得、ＮＬＰコンポーネント５６０は、その対話に対して自身が検出するユーザ意図５１５または複数のユーザ意図を返す。ＮＬＰコンポーネント５６０は、知られている自然言語処理（ＮＬＰ）および機械学習（ＭＬ）技術を使用して実装され得る。
【０１０９】
メッセージ待ち行列監視コンポーネント５４０は、メッセージング対話を監視する。このメッセージング対話は、メッセージングシステム１４０を介して交換される。このメッセージング対話は、送り元クライアントデバイス５２０および／または受け取り先クライアントデバイス５９０などの、少なくとも１つのクライアントデバイスに関与する。メッセージ５１０は、送り元クライアントデバイス５２０上のメッセージングクライアントのクライアントメッセージングコンポーネント５２６から送られ得る。このメッセージ５１０はメッセージスレッドに関連付けられ、メッセージスレッドは、送り元クライアントデバイス５２０のユーザを含む２人以上の参加者に関与する。このメッセージ５１０は、メッセージスレッドのメッセージング対話の一部分を含む。
【０１１０】
メッセージ５１０は、クライアントフロントエンドサーバ５３５のメッセージングコンポーネント５３０によって受信され、送り元に関連付けられたメッセージ待ち行列５８０に追加される。メッセージ５１０は、メッセージ待ち行列５８０を使用して受け取り先クライアントデバイス５９０に配布される。メッセージ待ち行列監視コンポーネント５４０もメッセージ５１０を受信し、メッセージ５１０を対話処理コンポーネント５５０に提供する。
【０１１１】
対話処理コンポーネント５５０は、メッセージ５１０をＮＬＰコンポーネント５６０に提供し、それに応答してユーザ意図５１５を受け取る。メッセージ５１０は、複数のメッセージの保管場所の一部としてのＮＬＰコンポーネント５６０に提供され、それによりメッセージング対話全体の分析を可能にし得る。そのため、対話処理コンポーネント５５０は、メッセージング対話の少なくとも一部分をＮＬＰコンポーネント５６０にサブミットし、メッセージング対話の少なくとも一部分をＮＬＰコンポーネント５６０にサブミットするのに応答してＮＬＰコンポーネント５６０からユーザ意図５１５を受け取ることにより、メッセージング対話に関するユーザ意図を判定する。したがって、対話処理コンポーネント５５０は、ＮＬＰコンポーネント５６０を使用することによってメッセージング対話に関するユーザ意図５１５を検出し得る。
【０１１２】
図６は、ユーザ意図５１５に基づいてメッセージングボットオプション構成を判定する消費者・企業間通信システム１００の一実施形態を例示する。
【０１１３】
いくつかの実施形態では、消費者・企業間通信システム１００は、消費者・企業間通信システム１００のためのメッセージングボットサービスへのアクセスポイントとして働くボット管理コンポーネント６６０を含み得る。ボット管理コンポーネント６６０は、メッセージングシステム１４０のサーバと、１つまたは複数の内部および／または外部のボット実行サーバとの間の仲介として働き得る。ボット管理コンポーネント６６０は、一般にはメッセージングボットシステムにアクセス可能なフレームワークを提供するようになされるボットフレームワークを備え得る。ボット管理コンポーネント６６０は、図５を参照して説明したワーカサーバ５４５、５５５、５６５と実質的に同様であるワーカサーバ６６５によって実行され得る。
【０１１４】
いくつかの場合には、メッセージングボットは、ボットに関連付けられたサービスによって運営される外部のボットサーバなど、消費者・企業間通信システム１００の外部にあるサーバによって実行され得る。ボット管理コンポーネント６６０は、メッセージングボットに関連付けられたサービスのための外部のボットサーバを決定し得る。ボット管理コンポーネント６６０は、メッセージングボットに関連付けられた外部のボットサーバにメッセージを送ることにより、メッセージングボットにメッセージをサブミットし得る。いくつかの実施形態では、メッセージをサブミットすることは、メッセージ内容を抽出し、ボットサーバ対話のアプリケーション・プログラミング・インターフェース（ＡＰＩ）を使用してそのメッセージ内容を外部のボットサーバに送信することを含み得る。メッセージングボットからのボットメッセージも同様に、外部のボットサーバからボット管理コンポーネント６６０によって受信され得る。
【０１１５】
他の場合には、メッセージングボットは、消費者・企業間通信システム１００のサーバによって実行され得る。ボット管理コンポーネント６６０は、メッセージングボットに関連付けられたサービスのためのホストされたボットサーバを決定し得る。ホストされたボットサーバは、消費者・企業間通信システム１００の提供者によって維持されるボットサーバからなり得る。ボット管理コンポーネント６６０は、メッセージングボットに関連付けられたホストされたボットサーバにメッセージを送ることにより、メッセージングボットにメッセージをサブミットし、ホストされたボットサーバからメッセージを受信することにより、メッセージングボットからのメッセージを受信し得る。
【０１１６】
ボット管理コンポーネント６６０は、対話処理コンポーネント５５０からユーザ意図５１５を受け取り、ユーザ意図５１５に基づいてクライアントデバイスのためのメッセージングボットオプション構成６１０を決定する。メッセージングボットオプション構成６１０は、１つまたは複数のクライアントデバイスを、１つまたは複数のクライアントデバイスの１人または複数のユーザが１つまたは複数のメッセージングボットと関わることを可能にするインターフェースコントロールで構成する。
【０１１７】
ボット管理コンポーネント６６０はその後、メッセージ５１０が送り元クライアントデバイス５２０によって送られることによって起こるメッセージング対話のコンテクストの変化に応答して、送り元クライアントデバイス５２０にメッセージングボットオプション構成６１０を送る。メッセージングボットオプション構成６１０を送り元クライアントデバイス５２０に送ることは、メッセージングボットオプション構成６１０を、メッセージング対話が現在行われているメッセージスレッドに関連付けられたメッセージ待ち行列５８０などの、メッセージ待ち行列５８０に追加することを含み得る。メッセージングボットオプション構成はその後、サーバメッセージングコンポーネント５３０がメッセージングボットオプション構成６１０をメッセージ待ち行列５８０から取り出し、クライアントメッセージングコンポーネント５２６に送付することにより、送り元クライアントデバイス５２０に配布される。メッセージングボットオプション構成６１０は、メッセージスレッド内のあらゆる参加者に属するあらゆるクライアントデバイスなど、メッセージング対話に関与するあらゆるユーザおよびクライアントデバイスに配布され得る。そのため、メッセージ５１０の受け取り先クライアントデバイス５９０も、メッセージ５１０に応答して生成されたメッセージングボットオプション構成６１０を受信し得る。いくつかの実施形態では、メッセージングボットオプション構成６１０は、あるメッセージングボット対話を開始した主クライアントと、メッセージスレッド内に存在するが、メッセージングボット対話を開始したのではない１つまたは複数の副クライアントとに対して、別個に構成され得る。
【０１１８】
メッセージング対話は、複数の交換されるメッセージを含む。この複数の交換されるメッセージは、メッセージ対話の直近のメッセージ５１０を含む。メッセージングコンポーネント５３０を介してクライアントデバイスに送られる、直近のメッセージ５１０に関連付けられたメッセージパッケージは、メッセージングボットオプション構成６１０を送付するために使用され得る。送り元クライアントデバイス５１０に送られるメッセージパッケージは、メッセージングシステム１４０によりメッセージ５１０の受信を確認するために使用され得るか、１つまたは複数の受け取り先ユーザへのメッセージ５１０の送付を報告するために使用され得るか、および／または受け取り先ユーザがメッセージ５１０を見たことを報告するために使用され得る。受け取り先クライアントデバイス５９０に送られるメッセージパッケージは、受け取り先クライアントデバイス５９０へのメッセージ５１０の最初の送付などの場合に、メッセージ５１０の両方を含み得る。いずれの場合も、メッセージパッケージは、追加的にメッセージングボットオプション構成６１０を含み得る。
【０１１９】
一般に、メッセージ５１０は、メッセージ５１０を送るために使用されるクライアントデバイスを含む、あるメッセージスレッドに関係するあらゆるクライアントデバイスに送られ得る。このメッセージ５１０は、メッセージ５１０を送付するために使用されるパッケージ中で、メッセージングボットオプション構成６１０によって強化され得る。メッセージングボットオプション構成６１０は、メッセージスレッドを表示する際のメッセージングクライアントのメッセージングインターフェースを、メッセージングボットとの対話を可能にするコントロールで構成する。したがって、ボット管理コンポーネント６６０は、クライアントデバイスにメッセージパッケージを送るように動作し、メッセージパッケージは直近のメッセージ５１０に関連付けられており、メッセージパッケージはメッセージングボットオプション構成６１０を含む。このメッセージパッケージは、クライアントデバイスを直近のメッセージ５１０で更新する。いくつかの場合には、この直近のメッセージ５１０は、メッセージパッケージを受信するクライアントデバイスとは異なるクライアントデバイスから受信される。いくつかの場合には、メッセージパッケージ５１０は、クライアントデバイスからの直近のメッセージを受信したことを送信側に通知し得る。
【０１２０】
一部の事例では、メッセージングボットオプション構成６１０は、メッセージングボットに関連付けられたメッセージングボットメニューであり得る。メッセージングボットメニューは、ユーザ意図５１５に基づいてカスタマイズされる。メッセージングボットメニューは、複数のユーザカスタマイズ可能なオプションから構成され得る。ユーザ意図に基づいてメッセージングボットメニューをカスタマイズすることは、ユーザカスタマイズ可能なオプションの１つまたは複数をユーザ意図に基づいて事前に埋めることから構成され得る。メッセージングボットメニューは、メッセージングボットオプション構成をクライアントデバイスに提供する後段段階または第２段階を備えることができ、第１段階は、メッセージングボットオプション構成であり、第２段階は、メッセージングボット起動コントロールの作動に応答して提供されるカスタマイズされたメッセージングボットメニューである。
【０１２１】
一部の事例では、メッセージングボットオプション構成６１０は、複数のメッセージングボット起動コントロールから構成され得る。各メッセージングボット起動コントロールは、異なるメッセージングボットに関連付けられる。この複数のメッセージングボット起動コントロールは、ユーザ意図５１５に基づいて選択される。ユーザ意図５１５は、ユーザによって表された目標またはメッセージング対話の主題を反映し得る。様々なメッセージングボットがこのユーザ意図５１５に関連付けられ得る。例えば、メッセージングボットには、消費者・企業間通信システム１００への登録時に１つまたは複数のユーザ意図が割り当てられ得る。ユーザ意図５１５に関連付けられた複数のメッセージングボットが決定され、クライアントデバイスに提供される。一部の事例では、ユーザコンテクストに基づいて複数のメッセージングボット起動コントロールが追加的に選択され得る。ユーザコンテクストは、制限なしに、ユーザの位置およびローカルユーザ時間の１つまたは複数から構成され得る。複数のメッセージングボット起動コントロールは、ユーザプロフィールに記憶されたユーザサービス嗜好情報に基づくなど、ユーザプロフィールに基づいて追加的に選択され得る。
【０１２２】
メッセージングボット起動コントロールを含むメッセージングボットオプション構成６１０の送付後、クライアントデバイスのユーザは、メッセージングボット起動コントロールの１つを選択し得る。そして、メッセージングコンポーネント５５０は、クライアントデバイスから、複数のメッセージングボット起動コントロールのうち選択されたメッセージングボット起動コントロールのユーザメッセージングボット選択を受信し得る。選択されたメッセージングボット起動コントロールは、選択されたメッセージングボットに関連付けられる。ユーザメッセージングボット選択はボット管理コンポーネント６６０に渡され、ボット管理コンポーネント６６０は、その後それに応答してメッセージングボットインターフェースをクライアントデバイスに送る。このメッセージングボットインターフェースは、一部の事例ではメッセージングボットメニューを備え得る。
【０１２３】
メッセージングボット選択を処理するために、ボット管理コンポーネント６６０は、選択されたメッセージングボットに関連付けられたボットサーバに、メッセージングボット起動メッセージを送る。メッセージングボット起動メッセージは、メッセージングボットがユーザ意図５１５に従って自身を構成するのを可能にするためにユーザ意図５１５を含んでいる。一部の事例では、ボットサーバは、消費者・企業間通信システム１００によってホストされ得る。他の事例では、ボットサーバは、メッセージングボットの開発者などによって、外部でホストされ得る。ボット管理コンポーネント６６０はその後、メッセージングボット起動メッセージに応答してボットサーバからメッセージングボットインターフェース仕様を受信し、このメッセージングボットインターフェースはメッセージングボットインターフェース仕様に基づく。
【０１２４】
メッセージングコンポーネント５３０は、複数のクライアントデバイス上に多ユーザインターフェースをインスタンス化し得る。インスタンス化することは、多ユーザインターフェースの少なくとも一部分を複数のクライアントデバイスの各々に表示することを意味する。それに応答して、複数のクライアントデバイス各々のメッセージングクライアントは、多ユーザインターフェースの少なくとも一部分を表示する。メッセージングコンポーネントは、複数のクライアントデバイスのうちの第１のクライアントデバイスからユーザインターフェース対話を受信し、ユーザインターフェース対話に基づいて複数のクライアントデバイス上の多ユーザインターフェースを更新する。メッセージングコンポーネント５３０は、複数のクライアントデバイスのうちの開始元クライアントデバイスから多ユーザアプリケーションの開始を受信し、その多ユーザアプリケーションの開始に応答して複数のクライアントデバイス上に多ユーザインターフェースをインスタンス化し得る。
【０１２５】
多ユーザアプリケーションの開始は、メッセージングシステムに関するメッセージスレッドに関連付けられ得る。メッセージスレッドは、複数の参加者ユーザアカウントに関連付けられ得、複数の参加者ユーザアカウントは複数のクライアントデバイスに関連付けられている。多ユーザインターフェースは、複数の参加者ユーザアカウントが、メッセージスレッド内の複数の参加者ユーザアカウントに対応する複数のクライアントデバイスに関連付けられていることに基づいて、複数のクライアントデバイス上でインスタンス化される。
【０１２６】
メッセージングコンポーネント５３０は、複数の参加者ユーザアカウントとメッセージスレッドとの間の関連付けに基づいてユーザインターフェース更新オブジェクトを配布することにより、複数のクライアントデバイス上の多ユーザインターフェースを更新し得る。ユーザインターフェース更新オブジェクトは、メッセージ待ち行列５８０を使用して配布され得、オブジェクトは、複数のクライアントデバイスに配布するために待ち行列に入れられる。
【０１２７】
開始元クライアントデバイスは、複数の参加者ユーザアカウントのうち開始元ユーザアカウントに関連付けられ得る。開始元ユーザアカウントは、ボットと対話するための主アカウントとして使用され得、要求されるサービスは、開始元ユーザアカウントからの要求として要求される。メッセージングコンポーネント５３０は、多ユーザインターフェースを介して、複数の参加者ユーザアカウントからの入力を含むサービス要求を受信することができ、そのサービス要求をメッセージングボットにサブミットし得る。サービス要求は、開始元ユーザアカウントに関連付けられているものとして開始元ユーザアカウントによってサブミットされる。サービス要求は、開始元ユーザアカウントで発生したものとしてメッセージングボットに送られる。
【０１２８】
複数の参加者ユーザアカウントは、開始元ユーザアカウントと、開始元ユーザアカウント以外の１つまたは複数の寄与者ユーザアカウントとを含み得る。サービス要求を含む入力は、開始元ユーザアカウントからのグループサービス構成と、１つまたは複数の寄与者ユーザアカウントからの１つまたは複数の個人サービス構成とを含み得る。例えば、各参加ユーザは、自身が受信したいと思うサービスの特定部分を指示し得る。例えば、参加ユーザは、料理の注文、輸送の注文、または他のサービスの注文を選択し得る。そのため、１つまたは複数の個人サービス構成は、１つまたは複数のオプション選択を含み得る。あるいは、１つまたは複数の個人サービス構成は、１つまたは複数のサービス要求参加確認を含み得、そのため、要求されるサービスへの参加者数は、１つまたは複数のサービス要求参加確認に基づいて決定される。
【０１２９】
関連費用を伴うサービス要求を生成するために、多ユーザアプリケーションが使用され得る。いくつかの場合には、メッセージングコンポーネント５３０が、開始元ユーザアカウントから費用分担要求を受信し、その費用分担要求を１つまたは複数の寄与者ユーザアカウントに送り得る。費用分担要求は、メッセージ待ち行列５８０を介して送られ得る。費用分担要求は、１つまたは複数の寄与者ユーザアカウントからの金銭の転送を開始するように動作し得る。一部の事例では、金銭の転送は、開始元ユーザアカウントに払い戻しをするために使用され得る。あるいは、１つまたは複数の参加者ユーザアカウントからの金銭の転送は、要求されるサービスの支払いのためにプールしておいてもよい。
【０１３０】
図７は、ユーザ情報交換７３０およびボット情報交換７９５に基づいてメッセージングボットオプション構成６１０を決定する消費者・企業間通信システム１００の一実施形態を例示する。
【０１３１】
ユーザ・ボット間会話は、ボット管理コンポーネント６６０によって仲介され得る。ボット管理コンポーネント６６０は、メッセージングシステム１４０のメッセージングサーバに結合され得る。メッセージングサーバは、ボット管理コンポーネント６６０とユーザクライアント７２０との間のメッセージの送受信を行い得る。メッセージングサーバが、ボット管理コンポーネント６６０とボットアプリケーション７９０との間の情報の送受信を行い得、または企業ポータル１６０などのボット・アプリケーション・フロントエンドが使用され得る。
【０１３２】
ユーザクライアント７２０は、メッセージングクライアント、ボットアプリケーション７９０もしくは複数のボット１９０に関する複数のボットアプリケーションにアクセスするための専用クライアント、またはメッセージング機能性を含む任意の他のクライアントからなり得る。ユーザクライアント７２０は、クライアントデバイスで実行され得る。ユーザクライアント７２０は、クライアント通信コンポーネント７４０を使用して、ボット管理コンポーネント６６０とのユーザ情報交換７３０に関わり得る。クライアント通信コンポーネント７４０は、ボット管理コンポーネント６６０へのクライアントフロントエンドを提供することができ、これは、メッセージングシステム１４０によるメッセージの送信によって仲介され得る。ユーザ情報交換７３０は、ユーザクライアント７２０からボット管理コンポーネント６６０にユーザによって作成されたメッセージを送ることと、ボット管理コンポーネント６６０からユーザクライアント７２０にボットメッセージを送ることを含み得る。ユーザ情報交換７３０は、ユーザメッセージに加えて追加的なユーザ情報をさらに含んでよく、追加的なユーザ情報は、制限なしに、１人または複数のユーザのソーシャルネットワーキング情報、１人または複数のユーザのボット対話履歴情報、または他のユーザ情報などである。
【０１３３】
ボットアプリケーション７９０は、開発者コンピュータシステムで実行される、または消費者・企業間通信システム１００によってホストされるものなどの、ソフトウェアプログラムを備え得る。ボットアプリケーション７９０は、ボット・アプリケーション・インターフェース・コンポーネント７８０を介して、ボット管理コンポーネント６６０とのボット情報交換７９５に関わり得る。ボット・アプリケーション・インターフェース・コンポーネント７８０は、ボット管理コンポーネント６６０および／またはボットアプリケーションのためのメッセージングシステムへのフロントエンドとして働き得る。ボット情報交換７９５は、ボット管理コンポーネント６６０への実例会話のサブミットと、ボットアプリケーション７９０との間のボット・アプリケーション・インターフェース・コンポーネント７８０によるボットＡＰＩ呼び出しの実行とを含み得る。ボット情報交換７９５は、ボット管理コンポーネント６６０へのボット能力カタログのサブミット、および／またはユーザに提案するボットの選択に関する他の情報交換を含み得る。
【０１３４】
ボット・アプリケーション・インターフェース・コンポーネント７８０は、ボットサービスシステムにおいて複数のボットについての複数のボット能力カタログ７７０を受信する。ボットサービスシステムは、メッセージングシステム１４０の一コンポーネントを構成し得る。特定のボットアプリケーション７９０のボット能力カタログは、そのボットアプリケーション７９０との間のボット情報交換７９０の少なくとも一部として受信され得る。ボット・アプリケーション・インターフェース・コンポーネント７８０は、ボット能力カタログ７７０を、ボット各々についてのボット情報交換７９５の一部として対話処理コンポーネント７６０に提供する。
【０１３５】
複数のボット能力カタログ７７０の各々は、関連付けられたボットについてボット能力を自然言語で表す。特定のサービスまたはサービスのセットを提供するために、特定のボットが構築される。これらのサービスは、英語、スペイン語、または任意の他の言語などの自然言語で表され得る。これらのサービスは、ボットがユーザにどのようなサービスを提供できるのかを、自然言語を使用して人間が読める言葉で記述し得る。人間が読める様々なボット能力記述が使用され得る。例えば、開発者が、「このボットはサンフランシスコ地域で料理の配達を探し、注文するのを助けることができます」という文で料理配達注文ボットを記述し得る。複数のボット能力カタログ７７０の１つまたは複数が、１つまたは複数の実例ユーザプロンプト内でボット能力を表し得る。実例ユーザプロンプトは、ボットをユーザに提案するなど、そのボットとの対話を促すべきと開発者が指示するユーザ発言、ユーザ対話、または他のユーザ挙動の例である。例えば、実例ユーザプロンプトは、文章例に例示されるように、「何か注文するのはどう？」という人間が読める自然言語文であり得る。実例文に例示されるように、実例ユーザプロンプトは、ユーザ間交換の一部分を構成し得、それにより、ユーザは、１人または複数の他のユーザとの会話の自然な流れに同伴するボットを提案され得る。
【０１３６】
ボット・アプリケーション・インターフェース・コンポーネント７８０は、開発者ボット構成インターフェースを介して、複数のボット能力カタログ７７０のうちの１つまたは複数のボット能力カタログを受信し得る。そのため、ボット能力の自然言語描写は、開発者が書いたボット能力の記述であり得る。さらに、開発者が書いたボット能力の記述は、開発者が書いた実例ユーザプロンプトであり得る。いくつかの場合には、開発者は、ボットとのユーザ対話のログを受け取り得る。そして、開発者は、ユーザプロンプトを、そのボットとの対話を促すユーザ発言の例として今後使用されるべき実例ユーザプロンプトとしてマークし得る。そのため、少なくとも一部のボット能力記述は、開発者によって承認され、ユーザによって生成された実例ユーザプロンプトであり得る。いくつかの場合には、開発者が、ユーザによって生成されたプロンプトを、ユーザによって生成されたそのプロンプトをボットに対して実例ユーザプロンプトとして使用する前に編集し得る。
【０１３７】
クライアント通信コンポーネント７４０は、ユーザクライアントデバイスからユーザサービスプロンプトを受信する。ユーザサービスプロンプトは、ユーザにボットを提案することが適当であり得ることをそのユーザとの関連で知らせる、任意の指示である。ユーザサービスプロンプトは自然言語で表され得る。この自然言語は、書かれたテキスト、話し言葉、視覚的な仕草もしくは身ぶり（例えば手話）、または自然言語の任意の他の使用を含み得る。いくつかの場合には、ユーザプロンプトは、ユーザクライアントデバイス上のメッセージングクライアントを介して受信され得る。ユーザプロンプトは、２人以上のユーザ間の対話の一部分を含み得る。この対話は、メッセージングクライアントを使用して行われるメッセージング対話を含み得る。
【０１３８】
いくつかの場合には、ユーザプロンプトは、ボット対話結果を含み得る。ボット対話結果は、１人または複数のユーザと１つまたは複数のボットとの間の対話の結果である。例えば、ユーザがボットを介してレストランの予約をすることは、ボット対話結果である。ボット対話結果は、ボットとの対話のつながりを促進するために、ユーザプロンプトとして認識され得る。例えば、ユーザは、面会の約束、予約、または特定の位置に行く他の計画を行ったというボット対話結果に応答して、輸送サービスのボットを提案され得る。例えば、ボットを介してレストランの予約が行われるのに応答して、ユーザは、ユーザによる一切の他のユーザアクション（輸送への具体的な関心を表すなど）を行うことなく、自動車同乗ボットを提案され得る。
【０１３９】
対話処理コンポーネント７６０は、ユーザサービスプロンプトを複数のボット能力カタログ７７０と照合することにより、複数のボットのうち１つまたは複数の選択されたボットを決定する。いくつかの場合には、消費者・企業間システム１００は、可能な場合には、ユーザにオプションを提供するために複数のボットを提案するように構成され得る。そのため、対話処理コンポーネント７６０は、複数のボットのうち２つ以上の選択されたボットを決定してもよい。
【０１４０】
クライアント通信コンポーネント７４０はその後、ユーザ情報交換７３０の一部としてユーザクライアントデバイスからユーザサービスプロンプトを受信するのに応答して、１つまたは複数の選択されたボットをユーザクライアントデバイスに対して識別する。１つまたは複数の選択されたボットは、ユーザプロンプトを検出するために使用された、ユーザクライアントデバイス上の同じメッセージングクライアントに対して識別され得る。
【０１４１】
対話処理コンポーネント７６０は、ＮＬＰコンポーネント５６０を使用して、自然言語のユーザプロンプトを自然言語のボット能力と照合する。対話処理コンポーネント７６０は、複数のボット能力カタログ７７０をＮＬＰコンポーネント５６０にサブミットし、それに対してＮＬＰコンポーネント５６０からボット能力テーブル７１０を受け取る。対話処理コンポーネント７６０は、ＮＬＰコンポーネント５６０にユーザプロンプトをサブミットし、それに対してＮＬＰコンポーネント５６０からユーザ意図を受け取る。そして、対話処理コンポーネント７６０は、ユーザ意図をボット能力テーブルと比較することにより、１つまたは複数の選択されたボットを決定する。
【０１４２】
この比較は、推測される自然言語描写の意味を抽象化された数値形態で表現する数値ベクトルを使用して行われ得る。ボット能力テーブル７１０は、複数のボット能力カタログを複数のボット能力ベクトルとして表現し得る。複数のボット能力ベクトルは、自然言語のボット能力を、抽象化された数値形態に符号化する。いくつかの実施形態では、各ボットは、単一のボット能力ベクトルによって表現され得、そのため、複数の自然言語ボット能力描写でさえも組み合わせて単一の数値ベクトルとされる。しかし、他の実施形態では、ボット能力テーブル７１０内で複数のボット能力描写（例えば複数の実例ユーザプロンプト）の各々に対して別個のベクトルを有することなどにより、ボットが複数のベクトルによって表現され得る。自然言語のボット能力から非自然言語のボット能力ベクトルへの変形は、自然言語・ベクトル変換技術を使用してＮＬＰコンポーネント５６０によって行われる。
【０１４３】
同様に、ユーザ意図は、ユーザプロンプトをユーザ意図ベクトルとして表現し得る。自然言語のユーザプロンプトから非自然言語の数値ベクトルへの変形は、自然言語・ベクトル変換技術を使用してＮＬＰコンポーネント５６０によって行われる。
【０１４４】
したがって、ユーザ意図をボット能力テーブル７１０と比較することは、ユーザ意図ベクトルに基づいて複数のボット能力ベクトルの類似度検索を行うことを含み得る。対話処理コンポーネント７６０は、ベクトル化されたユーザ意図を検索語として使用してボット能力テーブル７１０を検索し得る。類似度検索は、コサイン類似度比較に基づき得る。ボット能力テーブル７１０は、効率的なコサイン類似度比較を可能にするように編成され得、それにより、直接のコサイン類似度計算が複数のボット能力ベクトルのすべてとユーザ意図ベクトルとの間で行われることなく、複数のボット能力ベクトルが検索される。対話処理コンポーネント７６０は、１つまたは複数のボットについての１つまたは複数のボット能力ベクトルがユーザ意図ベクトルと類似すると類似検索で判定することに基づいて、１つまたは複数のボットを選択する。
【０１４５】
対話処理コンポーネント７６０は、ユーザ意図ベクトルとの類似度が最も高いボット能力ベクトルをもつ、事前に定義された数のボットを選択することにより、事前に定義された数のボットを選択し得る。あるいは、対話処理コンポーネント７６０は、ユーザ意図ベクトルとの事前に定義された類似度閾値を上回るボット能力ベクトルをもつボットを選択することにより、ボットのうち選抜されたものを選択してもよい。これらの技術は、組み合わせて使用されてもよく、例えば、ユーザ意図ベクトルとの事前に定義された類似度閾値を上回るボット能力ベクトルをもつボットを、事前に定義された数のボットを超えないように選択し、事前に定義された数によって許されるよりも多くのボットが、事前に定義された類似度閾値を上回る場合は、ユーザ意図との類似度が最も高い事前に定義された数のボットが選択されるようにする。そのため、選択されたボットは、最大で事前に定義された数のボットまでの、事前に定義された類似度閾値を上回るボットであり得る。選択されたボットは、クライアントデバイスで表示するために類似度に従ってランク付けされ得、類似度がより高いボットは、類似度がより低いボットよりも高くランク付けされる。
【０１４６】
いくつかの実施形態では、選択されたボットをユーザ固有の情報に基づいてフィルタリングして、特定のユーザに対するボットの選択およびランク付けを向上させ得る。そのため、対話処理コンポーネント７６０は、ボット関連度に基づいて２つ以上の選択されたボットのうち２つ以上のフィルタリングされたボットを決定し、ユーザクライアントデバイスからユーザサービスプロンプトを受信するのに応答して、２つ以上のフィルタリングされたボットをユーザクライアントデバイスに対して識別し得る。ボット関連度は、特定のユーザへの特定のボットの予測される関連度に対応する。選択されたボットを、特定のユーザへの、またはメッセージスレッド内の複数のユーザへのボット関連度に関してフィルタリングすることで、消費者・企業間通信システム１００のユーザベース全体にわたって均一に推奨を行う場合と比べて、１人または複数のユーザの特定の嗜好に対処し、それにより特定のユーザ個々の経験を向上させる。
【０１４７】
対話処理コンポーネント７６０は、２つ以上の提案されるボットのボット関連度を決定して、１つまたは複数のフィルタリングされたボットを決定する。ボット関連度の決定は、制限なしに、ユーザプロフィール情報、ユーザ挙動情報、ユーザ位置情報、ユーザメッセージングコンテクスト情報、およびユーザボット履歴情報などの、１つまたは複数の信号に基づき得る。クライアント通信コンポーネント７４０は、信号を分析する際に使用するユーザ情報を取り出し、そのユーザ情報をユーザ情報交換７３０の一部として提供し得る。
【０１４８】
ユーザプロフィール情報は、各種の異なるタイプの情報を含み得る。ユーザプロフィール情報は、人口統計学的情報を含み得る。ユーザプロフィール情報は、関係情報を含み得る。ユーザプロフィール情報は、教育および／または職業の情報を含み得る。ユーザプロフィール情報は、ユーザの好きなメディア、サービス、または他の嗜好を指示する、ユーザによって生成された情報などの、嗜好情報を含み得る。そのため、ユーザプロフィール情報は、ユーザのユーザプロフィールにユーザサービス嗜好情報を含み得る。
【０１４９】
ボットは、消費者・企業間通信システム１００がボットをランク付けするのを支援するために、ボットのランク付けに関連するボットランク付け情報を消費者・企業間通信システム１００に提供することを可能にされ得る。ボットには、ユーザサービスプロンプト、および／または１つもしくは複数のボットの提供を促す１人もしくは複数のユーザを記述する情報が提供され得る。ボットは、この情報を分析し、ユーザサービスプロンプトに応答するため、および／または１人もしくは複数のユーザにサービスを提供するためにそのボットが適当であるかどうかの自身の分析を指示するボットランク付け情報を提供することを許される。そのボットを高くランク付けすべきであることを指示するボットランク付け情報を提供するものの、その後ユーザによる評判がよくないボットにペナルティを課すことにより、ボットは、ありのままの正確な査定を提供するように促進され得る。一般に、ユーザによる当該ボットの評判に確実に対応しているボットランク付け情報を提供するボットに報酬を与え、ユーザによる当該ボットの評判に良好に対応していないボットランク付け情報を提供するボットを罰することにより、ボットは、ありのままの正確な査定を提供するように促進され得る。ユーザによるボットの評判は、これらに限定されないが、使用するために選択されているボット、サービスを受けるためにボットを使用しているユーザ、ボットから受けたサービスのユーザ満足度、またはボット体験の何らかの他の要素など、提案されるボットに対するユーザ反応の１つまたは複数の指標を含み得る。
【０１５０】
対話処理コンポーネント７６０は、２つ以上のフィルタリングされたボットのボットランク付け情報を照会し、ボットランク付け情報に基づいて２つ以上のフィルタリングされたボットをランク付けする。フィルタリングされたボットのランク付けは、フィルタリングされたボットのどれを１人もしくは複数のユーザに対して表示するか、および／または、１つもしくは複数のフィルタリングされたボットを１人もしくは複数のユーザに表示する順序を決定し得る。ランク付けボット情報は、フィルタリングされたボットのランク付け順序の決定に寄与し得る。最もランクの高いフィルタリングされたボットのグループが、１つまたは複数のクライアントデバイスに表示のために提供され、提供されたフィルタリングされたボットのランク付け順序に基づいて、表示のために順序付けされ得る。ボットランク付け情報は、ボット情報交換７９５の少なくとも一部分を構成し得る。ボットランク付け情報は、ボットによって生成された数値スコアを含み得、数値スコアは、数値スコアを含む複数の要因の数学的組み合わせを通じて各ボットのランク付け番号に寄与する。
【０１５１】
いくつかの場合には、ボットは、ボットランク付け情報をボットが生成するのを支援するために、ユーザのユーザ情報を提供され得る。２つ以上のフィルタリングされたボットのボットランク付け情報を照会することは、ユーザアカウントにユーザ情報を提供することを含み得、ユーザサービスプロンプトはボットサービスシステムのユーザアカウントに関連付けられる。ユーザ情報は、人口統計学的情報およびユーザ関心事情報などを含み得る、ユーザプロフィール情報を含み得る。ユーザ情報は、ユーザサービス嗜好情報を含み得る。ユーザ情報は位置情報を含み得、位置情報は特に、料理の配達や輸送などのための物理的コンポーネントを含むサービスに関係するボットに有用であり得る。
【０１５２】
ユーザ情報は、消費者・企業間通信システム１００によって安全に保たれ、そのため、情報を共有する前にユーザ情報を共有するためのユーザからの許可が必要とされ得る。そのため、対話処理コンポーネント７６０は、２つ以上のフィルタリングされたボットのうちのボットについてのユーザ情報共有設定を決定し、そのユーザ情報共有設定と、そのボットをフィルタリングされたボットとして決定することとに基づいて、ユーザアカウントにユーザ情報共有許可を要求し得る。ユーザ情報共有許可は、ユーザアカウントに関連付けられたユーザ情報を第三者と共有するための許可である。そのような許可は、情報が第三者と共有される前に必要とされ得る。いくつかの実施形態では、第三者と情報を共有する許可が、消費者・企業間通信システム１００を使用してすべてのボットについて要求され、受け取られ、一般には提案されるボットを決定するときに特定の情報を共有する許可が付与される。あるいは、いくつかの実施形態では、第三者と情報を共有する許可は、特定のボットについて要求され、受け取られてもよく、そのため、ユーザ情報を共有する許可は、その特定のボットに関してユーザに要求され、受け取られた許可はその特定のボットだけについてのものとなる。そのため、そのような実施形態では、ユーザは、他のボットと情報を共有するためのさらに他の許可を要求される可能性がある。
【０１５３】
ある場合には、フィルタリングされたボットは、アカウントに基づくボットを含み得る。アカウントに基づくボットは、サービスを受けるためのそのボットの使用が、消費者・企業間通信システム１００に使用されるユーザアカウントに加えてユーザアカウントを使用するボットである。例えば、ユーザは、メッセージングシステム１４０のメッセージングアカウントを有し、さらに自動車同乗ボットに使用するための別個のユーザアカウントを有し得る。これらのアカウントは、消費者・企業間通信システム１００との間のサービスの使用を容易にするために互いとリンクされ得るが、各アカウントは、それぞれ別個のシステムへのユーザの別個の登録を表現する。この場合、アカウントに基づくボットに提供されるユーザ情報は、アカウントに基づくボットに関連付けられたサービスのためのアカウント情報などの、アカウントに基づくボットのためのアカウント情報を含み得る。例えば、自動車同乗サービスに関連付けられた自動車同乗ボットは、ユーザクライアントデバイス上で自動車同乗アプリケーションによっても表現され得る。
【０１５４】
ボットサービスシステムは、ユーザ対話をエージェントとつなぐように動作して、あるエージェントとの１つの対話が、追加的なエージェントにつながり得る追加的な提案を生じさせるようにし、このパターンが可能性としては無限に継続する。エージェントは、メッセージスレッドの参加者の便益のためにメッセージスレッドと関わるように動作する任意のエンティティを含み得る。エージェントは、１つまたは複数のメッセージングボット、１つまたは複数の多ユーザアプリケーション、１つまたは複数のメッセージングクライアントツール、および１つまたは複数のソーシャルネットワーキングツール、のうちの１つまたは複数を備え得る。メッセージングクライアントツールは、ユーザ入力に基づいてメッセージスレッドにサービスを提供するように動作し、メッセージスレッドに関する結果を生じさせるメッセージングクライアント機構を備え得る。ソーシャルネットワーキングツールは、ソーシャルネットワーキング情報に基づいてサービスを提供するように動作する、および／またはメッセージスレッドに関するソーシャルネットワーキング情報を生成する、メッセージングクライアント機構を備え得る。
【０１５５】
エージェントは、多ユーザ投票ツールを備え得る。多ユーザ投票ツールは、複数のクライアントデバイス上で投票を提供することができ、この投票は、クライアントデバイスから選択を収集し、クライアントデバイスからの個々の選択に基づくグループ選択をメッセージスレッド内に提供する。多ユーザ投票は、複数のオプションを備える。いくつかの場合には、多ユーザ投票ツールのオプションは、主ユーザによって構成されてよく、メッセージスレッド内の参加者を共に構成する主ユーザおよび１人または複数の副ユーザは、その後それらのオプションに票を入れ、多ユーザ投票の結果が、オプションの中からの過半数または複数の選択を構成する。いくつかの実施形態では、消費者・企業間通信システム１００は、１つまたは複数のオプションを自動的に構成し得る。オプションの自動的な構成は、メッセージング対話情報およびメッセージングボットからのボット情報のうち一方または両方に基づき得る。メッセージングボットからのボット情報は、メッセージングボット構成オプションを含み得る。メッセージングボット構成オプションは、メッセージングボットによって提供されるサービスを構成するためにメッセージングボットを構成するのに利用可能なオプションを含み得る。
【０１５６】
ユーザ対話をエージェントとつなぐことは、エージェントが特定のイベントをサブスクライブすることに基づき得る。イベントは、これらに限定されないが、メッセージスレッドとの対話から結果が生じることを含む。対話処理コンポーネント７６０は、ボット情報交換７９５の一部として、ボットサービスシステムにおいて複数のエージェントについての複数のエージェント・イベント・サブスクリプションを受信し得る。エージェントは、そのエージェントを消費者・企業間通信システム１００と共に使用するためのエージェントの構成の一部として、１つまたは複数のイベントにサブスクライブされる。例えば、メッセージングボットは、開発者によるメッセージングボットの構成の一部として、様々なイベントにサブスクライブされ得る。
【０１５７】
対話処理コンポーネント７６０は、ユーザアカウントに関連付けられたイベントを検出する。このユーザアカウントは、ユーザクライアントデバイスに関連付けられている。対話処理コンポーネント７６０は、イベントを複数のエージェント・イベント・サブスクリプションと照合して、１つまたは複数のイベント応答エージェントを決定し、イベントを検出するのに応答してそれら１つまたは複数のイベント応答エージェントをユーザクライアントデバイスに対して識別する。イベント応答エージェントは、ユーザクライアントデバイスに対して、ユーザによる選択が可能な複数の提案されるエージェントとして識別され得る。
【０１５８】
イベントは、ユーザサービスプロンプト、ユーザアカウントに関するソーシャル情報更新、およびユーザアカウントに関するユーザコンテクストの変化、のうち１つまたは複数を含み得る。ユーザサービスプロンプトは、２人以上のユーザ間の対話においてエージェントに基づくサービスに関わることへの検出された関心を含み得る。ソーシャル情報更新は、制限なしに、関係ステータスの変化および友達の追加の一方を含み得る。ユーザコンテクストの変化は、制限なしに、ユーザ位置の変化を含み得る。イベントは、ボット対話結果を含み得る。ユーザ位置の変化は、特定の都市区域への到着、特定の都市への到着、または任意の他のユーザ位置の変化に対応し得る。
【０１５９】
イベントは、２人以上のユーザ間の対話の一部分に基づいて検出され得る。例えば、消費者・企業間通信システム１００は、多ユーザ投票ツールを実行し、多ユーザ投票数から多ユーザ投票結果を受け取り、多ユーザ投票結果に基づいてその対話についての後続イベントを生成し得る。後続イベントが複数のエージェント・イベント・サブスクリプションと照合されて、１つまたは複数の追加的なイベント応答エージェントを決定する。そして、これらの追加的なイベント応答エージェントは、当該後続イベントを検出するのに応答してユーザクライアントデバイスに対して識別され得る。イベントは、イベント情報に従って検出され得る。イベント情報は、ユーザクライアントデバイス上のメッセージングクライアントを介して受信され得、１つまたは複数のイベント応答エージェントは、ユーザクライアントデバイス上のメッセージングクライアントに対して識別される。イベント情報は、例えば、特定のイベントへの特定の位置での予定される出席を含み得る。
【０１６０】
ＮＬＰコンポーネント５６０は自然言語機械学習コンポーネントを含み得、それにより、ＮＬＰコンポーネント５６０は、機械学習技術を使用して自身の性能を向上させるように動作する。したがって、対話処理コンポーネント７６０は、ボットサービスシステムに関するボット対話履歴に基づいて自然言語機械学習コンポーネントに教示し得る。
【０１６１】
いくつかの実施形態では、ボットサービスシステムの最初の期間には分類法が使用され、その後、ボット能力とサービスプロンプトとの間の機械学習に基づくマッチングに置き換えられ得る。分類法は、定義された分類法に従ってボット能力を表現する、人間によって生成された分類法を含み得、対話処理コンポーネント７６０が、定義された分類法用の技術を使用して、定義された分類法に基づいて、ユーザプロンプトをボット能力と照合する。対話処理コンポーネント７６０は、ボットサービスシステムに対して分類法に基づく複数のボット選択を行って、ボット対話履歴の少なくとも一部分を生成し得る。
【０１６２】
消費者・企業間通信システム１００は、ユーザにボットを提案することの進行中の体験に基づく機械学習を使用することにより、自身の性能を反復的に向上させ得る。ボット・アプリケーション・インターフェース・コンポーネント７８０は、ボットサービスシステムにおいて複数のボットについての複数のボット能力カタログを受け取る。複数のボット能力カタログの各々は、関連付けられたボットについて自然言語でボット能力を表す。クライアント通信コンポーネント７４０は、複数のユーザクライアントデバイスから複数のユーザサービスプロンプトを受信し、複数のユーザサービスプロンプトは自然言語で表されている。対話処理コンポーネント７６０は、自然言語機械学習コンポーネントによって生成されたボット能力テーブル７１０を使用して、複数のユーザサービスプロンプトを複数のボット能力カタログと照合することにより、複数のユーザプロンプトの各々に対して複数のボットのうち選択されたボットを決定する。
【０１６３】
クライアント通信コンポーネント７４０は、上記複数のユーザサービスプロンプトを受信するのに応答して、選択されたボットを複数のユーザクライアントデバイスに提供する。対話処理コンポーネント７６０は、選択されたボットとのユーザ対話に基づくボット対話履歴を記録し、その後ボット対話履歴に基づいて自然言語機械学習コンポーネントを更新する。対話処理コンポーネント７６０は、ボット対話履歴に基づくボットの性能に関係する信号を集める。
【０１６４】
対話処理コンポーネント７６０は、ボット完了率を最適化することに基づいて自然言語機械学習コンポーネントを更新し得る。ボット完了率は、ユーザがボットとの対話を完了する率に対応し得る。ボットとの対話は、対話がそのユーザに対して結果を生じた場合に完了する。ボット完了率の最適化は、ユーザボット棄却率に基づき得る。ボット完了率の最適化は、ユーザボット棄却率を、定義されたボット棄却閾値未満に維持することに基づき得る。ボット完了率の最適化は、ユーザボット履歴信号に基づき得る。ユーザボット履歴信号は、ユーザとボットとの間の対話に関する情報を指示する。ボット能力テーブルが、複数のボット能力カタログを複数のボット能力ベクトルとして表現する場合、対話処理コンポーネント７６０は、複数のボット能力カタログと複数のボット能力ベクトルとの間の対応付けを修正するように、自然言語機械学習コンポーネントを更新し得る。
【０１６５】
いくつかの実施形態では、対話処理コンポーネント７６０は、ボット情報の共有を増すことに基づいて自然言語機械学習コンポーネントを更新し得る。結果を生じさせるが、ボットサービスシステムへの正式の情報報告信号を使用して結果に関する情報を共有しないボットは、提案されるボットの中でそのランクを下げることによってペナルティを課され得る。ボットがサービスの構成時にユーザ情報を受け取るが、そのユーザ情報をボットサービスシステムに提供しない場合にも、同様のペナルティが課されてよい。反対に、ボットは、それらがサービスの構成中に決定されたユーザに関するユーザ情報などの情報を、ボットサービスシステムに提供する場合に、より高いランク付けで報酬を与えられ得る。
【０１６６】
本明細書には、開示されるアーキテクチャの新規な態様を実施するための例示的方法論を表すフローチャートの組が含まれている。説明を簡略化するために、例えばフローチャートまたは流れ図の形態で本明細書に示される１つまたは複数の方法論は、一連の動作として図示され、説明されるが、一部の動作は、本明細書に従い、本明細書に図示および記載されるのとは異なる順序で、および／または他の動作と同時に行われ得るため、それらの方法論は動作の順序によって制限されないことを理解し、認識すべきである。例えば、当業者は、方法論は代わりに、状態図など、相互に関係する一連の状態または事象として表現されることも可能であることを理解し、認識されよう。さらに、方法論に例示されるすべての動作が新規の実装形態のために必要であるとは限らない。
【０１６７】
図８Ａは、論理フロー８００の一実施形態を例示する。論理フロー８００は、本明細書に記載される１つまたは複数の実施形態によって実行される動作の一部またはすべてを表し得る。
【０１６８】
図８Ａに示す例示実施形態では、論理フロー８００は、ブロック８０２で、ボットサービスシステムにおいて複数のボットについての複数のボット能力カタログを受信し得、複数のボット能力カタログの各々は、関連付けられたボットについてボット能力を自然言語で表す。
【０１６９】
論理フロー８００は、ブロック８０４で、ユーザクライアントデバイスからユーザサービスプロンプトを受信し得、ユーザサービスプロンプトは自然言語で表されている。
【０１７０】
論理フロー８００は、ブロック８０６で、ユーザサービスプロンプトを複数のボット能力カタログと照合することにより、複数のボットのうち１つまたは複数の選択されたボットを決定し得る。
【０１７１】
論理フロー８００は、ブロック８０８で、ユーザクライアントデバイスからユーザサービスプロンプトを受信するのに応答して、１つまたは複数の選択されたボットをユーザクライアントデバイスに対して識別し得る。
【０１７２】
図８Ｂは、論理フロー８２０の一実施形態を例示する。論理フロー８２０は、本明細書に記載される１つまたは複数の実施形態によって実行される動作の一部またはすべてを表し得る。
【０１７３】
図８Ｂに示される例示実施形態では、論理フロー８２０は、ブロック８２２で、ボットサービスシステムにおいてユーザクライアントデバイスからユーザサービスプロンプトを受信し得、ユーザサービスプロンプトは自然言語で表されている。
【０１７４】
論理フロー８２０は、ブロック８２４で、複数のボットのうち２つ以上の選択されたボットを決定し得る。
【０１７５】
論理フロー８２０は、ブロック８２６で、ボット関連度に基づいて、２つ以上の選択されたボットのうち２つ以上のフィルタリングされたボットを決定し得る。
【０１７６】
論理フロー８２０は、ブロック８２８で、ユーザクライアントデバイスからユーザサービスプロンプトを受信するのに応答して、２つ以上のフィルタリングされたボットをユーザクライアントデバイスに対して識別し得る。
【０１７７】
図８Ｃは、論理フロー８４０の一実施形態を例示する。論理フロー８４０は、本明細書に記載される１つまたは複数の実施形態によって実行される動作の一部またはすべてを表し得る。
【０１７８】
図８Ｃに示される例示実施形態では、論理フロー８４０は、ブロック８４２で、ボットサービスシステムにおいて、複数のエージェントについての複数のエージェント・イベント・サブスクリプションを受信し得る。
【０１７９】
論理フロー８４０は、ブロック８４４で、ユーザアカウントに関連付けられたイベントを検出し得、ユーザアカウントはユーザクライアントデバイスに関連付けられている。
【０１８０】
論理フロー８４０は、ブロック８４６で、イベントを複数のエージェント・イベント・サブスクリプションと照合して、１つまたは複数のイベント応答エージェントを決定し得る。
【０１８１】
論理フロー８４０は、ブロック８４８で、イベントを検出するのに応答してそれら１つまたは複数のイベント応答エージェントをユーザクライアントデバイスに対して識別し得る。
【０１８２】
図８Ｄは、論理フロー８６０の一実施形態を例示する。論理フロー８６０は、本明細書に記載される１つまたは複数の実施形態によって実行される動作の一部またはすべてを表し得る。
【０１８３】
図８Ｄに示される例示実施形態では、論理フロー８６０は、ブロック８６２で、ボットサービスシステムにおいて複数のボットについての複数のボット能力カタログを受信し得、複数のボット能力カタログの各々は、関連付けられたボットについてボット能力を自然言語で表す。
【０１８４】
論理フロー８６０は、ブロック８６４で、複数のユーザクライアントデバイスから複数のユーザサービスプロンプトを受信し得、複数のユーザサービスプロンプトは自然言語で表されている。
【０１８５】
論理フロー８６０は、ブロック８６６で、自然言語機械学習コンポーネントによって生成されたボット能力テーブルを使用して、複数のユーザサービスプロンプトを複数のボット能力カタログと照合することにより、複数のユーザプロンプトの各々に対して複数のボットのうち選択されたボットを決定し得る。
【０１８６】
論理フロー８６０は、ブロック８６８で、上記複数のユーザサービスプロンプトを受信するのに応答して、選択されたボットを複数のユーザクライアントデバイスに提供し得る。
【０１８７】
論理フロー８６０は、ブロック８７０で、選択されたボットとのユーザ対話に基づくボット対話履歴を記録し得る。
【０１８８】
論理フロー８６０は、ブロック８７２で、ボット対話履歴に基づいて自然言語機械学習コンポーネントを更新し得る。
【０１８９】
図８Ｅは、論理フロー８８０の一実施形態を例示する。論理フロー８８０は、本明細書に記載される１つまたは複数の実施形態によって実行される動作の一部またはすべてを表し得る。
【０１９０】
図８Ｅに示される例示実施形態では、論理フロー８８０は、ブロック８８２で、複数のクライアントデバイス上に多ユーザインターフェースをインスタンス化し得、インスタンス化することは、多ユーザインターフェースの少なくとも一部分を複数のクライアントデバイスの各々に表示することを意味する。
【０１９１】
論理フロー８８０は、ブロック８８４で、複数のクライアントデバイスのうちの第１のクライアントデバイスからユーザインターフェース対話を受信し得る。
【０１９２】
論理フロー８８０は、ブロック８８６で、ユーザインターフェース対話に基づいて複数のクライアントデバイス上の多ユーザインターフェースを更新し得る。
【０１９３】
実施形態はこれらの例に限定されない。
【０１９４】
図９は、集中システム９００のブロック図を例示する。集中システム９００は、消費者・企業間通信システム１００に関する構造および／または動作の一部またはすべてを単一の集中サーバデバイス９２０内に完全に実装するなど、単一のコンピューティングエンティティ内に実装し得る。
【０１９５】
集中サーバデバイス９２０は、消費者・企業間通信システム１００に関する情報を受信し、処理し、送ることが可能な任意の電子デバイスを含み得る。電子デバイスの例は、制限なしに、ウルトラモバイルデバイス、モバイルデバイス、携帯情報端末（ＰＤＡ）、モバイルコンピューティングデバイス、スマートフォン、電話機、デジタル電話、セルラー電話、電子書籍リーダ、ハンドセット、一方向ページャ、双方向ページャ、メッセージングデバイス、コンピュータ、パーソナルコンピュータ（ＰＣ）、デスクトップコンピュータ、ラップトップコンピュータ、ノート型コンピュータ、ネットブックコンピュータ、手持ち型コンピュータ、タブレットコンピュータ、サーバ、サーバアレイもしくはサーバファーム、ウェブサーバ、ネットワークサーバ、インターネットサーバ、ワークステーション、ミニコンピュータ、メインフレームコンピュータ、スーパーコンピュータ、ネットワークアプライアンス、ウェブアプライアンス、分散コンピューティングシステム、マルチプロセッサシステム、プロセッサを利用したシステム、消費者家電機器、プログラム可能消費者家電機器、ゲームデバイス、テレビ、デジタルテレビ、セットトップボックス、ワイヤレスアクセスポイント、基地局、加入者局、モバイル加入者センター、無線ネットワークコントローラ、ルータ、ハブ、ゲートウェイ、ブリッジ、スイッチ、機械、またはそれらの組み合わせを含み得る。実施形態はこれに関して制限されない。
【０１９６】
集中サーバデバイス９２０は、処理コンポーネント９３０を使用して消費者・企業間通信システム１００に関する処理動作またはロジックを実行し得る。処理コンポーネント９３０は、様々なハードウェア要素、ソフトウェア要素、または両者の組み合わせを含み得る。ハードウェア要素の例は、デバイス、論理デバイス、コンポーネント、プロセッサ、マイクロプロセッサ、回路、プロセッサ回路、回路要素（例えばトランジスタ、抵抗、コンデンサ、インダクタ等）、集積回路、特定用途向け集積回路（ＡＳＩＣ）、プログラム可能論理デバイス（ＰＬＤ）、デジタル信号プロセッサ（ＤＳＰ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、メモリユニット、論理ゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップセット等を含み得る。ソフトウェア要素の例は、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、ソフトウェア開発プログラム、機械プログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、関数、メソッド、プロシージャ、ソフトウェアインターフェース、アプリケーション・プログラム・インターフェース（ＡＰＩ）、命令セット、コンピューティングコード、コンピュータコード、コード断片、コンピュータコード断片、ワード、値、シンボル、またはそれらの任意の組み合わせを含み得る。ある実施形態をハードウェア要素を使用して実施するか、および／またはソフトウェア要素を使用して実施するかの決定は、所与の実装の必要に応じて、所望の演算レート、電力レベル、耐熱性、処理サイクル予算、入力データレート、出力データレート、メモリリソース、データバス速度、および他の設計または性能上の制約などの、任意数の要因に応じて異なり得る。
【０１９７】
集中サーバデバイス９２０は、通信コンポーネント９４０を使用して消費者・企業間通信システム１００に関する通信動作またはロジックを実行し得る。通信コンポーネント９４０は、任意のよく知られた通信技術およびプロトコルを実装し得、それらには、パケット交換ネットワーク（例えばインターネットなどの公衆ネットワーク、エンタープライズイントラネットなどのプライベートネットワーク等）、回路交換ネットワーク（例えば公衆交換電話網）、またはパケット交換ネットワークと回線交換ネットワークとの組み合わせ（適切なゲートウェイおよびトランスレータを伴う）に使用するのに適した技術がある。通信コンポーネント９４０は、１つまたは複数の通信インターフェース、ネットワークインターフェース、ネットワークインターフェースカード（ＮＩＣ）、無線機、ワイヤレス送信器／受信器（送受信器）、有線および／またはワイヤレス通信媒体、物理コネクタ等の、様々なタイプの標準的な通信要素を含み得る。制限ではなく例として、通信媒体９１２は、有線通信媒体およびワイヤレス通信媒体を含む。有線通信媒体の例は、配線、ケーブル、金属導線、プリント回路基板（ＰＣＢ）、バックプレーン、スイッチファブリック、半導体材料、ツイストペア線、同軸ケーブル、光ファイバー、伝搬信号等を含み得る。ワイヤレス通信媒体の例は、音響、無線周波（ＲＦ）スペクトル、赤外線、および他のワイヤレス媒体を含み得る。
【０１９８】
集中サーバデバイス９２０は、消費者・企業間サービス１１０を単一のコンピューティングエンティティ内に実装し得る。集中サーバデバイス９２０は、通信コンポーネント９４０を介して、通信信号９１４を使用して通信媒体９１２を通じて他のデバイスと通信し得る。デバイスは、所与の実装の必要に応じて、集中サーバデバイス９２０の内部にある場合も外部にある場合もある。集中サーバデバイス９２０は、クライアントデバイス１２０、クライアントデバイス３２０、副クライアントデバイス３７０、送り元クライアントデバイス５２０、受け取り先クライアントデバイス５９０、または任意の他のクライアントデバイスを含み得るものなどの、複数のクライアントデバイス９１０と通信し得る。
【０１９９】
図１０は、分散システム１０００のブロック図を例示する。分散システム１０００は、消費者・企業間通信システム１００に関する構造および／または動作のいくつかの部分を、複数のコンピューティングエンティティにわたって分散させ得る。分散システム１０００の例は、制限なしに、クライアント・サーバアーキテクチャ、３層アーキテクチャ、Ｎ層アーキテクチャ、密結合またはクラスタアーキテクチャ、ピアツーピアアーキテクチャ、マスター・スレーブアーキテクチャ、共有データベースアーキテクチャ、および他のタイプの分散システムを含み得る。実施形態はこれに関して制限されない。
【０２００】
分散システム１０００は、複数の分散サーバデバイス１０１０を備え得る。一般に、分散サーバデバイス１０１０は、図９を参照して説明したような、集中サーバデバイス８２０と同じまたは同様であり得る。例えば、分散サーバデバイス１０１０は各々、処理コンポーネント１０３０および通信コンポーネント１０４０を備え得、これらは、図９を参照して説明したような、それぞれ処理コンポーネント９３０および通信コンポーネント９４０と同じまたは同様であり得る。別の例では、分散サーバデバイス１０１０は、通信コンポーネント１０４０を介して、通信信号１０１４を使用して通信媒体１０１２を通じて通信し得る。
【０２０１】
分散サーバデバイス１０１０は、記載される実施形態に従って様々な方法論を行うように動作する１つまたは複数のサーバプログラムを備える、または用い得る。１つの実施形態では、例えば、分散サーバデバイス１０１０は各々、１つまたは複数の消費者・企業間サーバ１０１５を実装し得る。消費者・企業間サーバ１０１５は、分散コンピューティングエンティティとして消費者・企業間サービス１１０を共に実装し得る。消費者・企業間サーバ１０１５は、クライアントデバイス１２０、クライアントデバイス３２０、副クライアントデバイス３７０、送り元クライアントデバイス５２０、受け取り先クライアントデバイス５９０、クライアントデバイス９１０、または任意の他のクライアントデバイスを含み得るものなどの、複数のクライアントデバイス１０２０と通信し得る。
【０２０２】
図１１は、上記に記載したような様々な実施形態を実施するのに適した例示的コンピューティングアーキテクチャ１１００の一実施形態を例示する。１つの実施形態では、コンピューティングアーキテクチャ１１００は、電子デバイスの一部を構成するか、または一部として実施され得る。電子デバイスの例は、とりわけ図９、図１０を参照して説明したものを含み得る。実施形態はこれに関して制限されない。
【０２０３】
本願で使用される場合、用語「システム」および「コンポーネント」は、ハードウェアハードウェアとソフトウェアの組み合わせ、ソフトウェア、または実行中のソフトウェアであるかを問わず、コンピュータに関係するエンティティを指すことが意図され、その例が、例示的コンピューティングアーキテクチャ１１００によって提供される。例えば、コンポーネントは、これらに限定されないが、プロセッサで走るプロセス、プロセッサ、ハードディスクドライブ、（光学および／または磁気記憶媒体の）複数の記憶ドライブ、オブジェクト、実行ファイル、実行のスレッド、プログラム、および／またはコンピュータであり得る。例示として、サーバで走るアプリケーションとサーバの両方がコンポーネントであり得る。１つまたは複数のコンポーネントが、プロセスおよび／または実行のスレッド内に存在することができ、コンポーネントは、１つのコンピュータに局所化する、および／または２つ以上のコンピュータ間に分散させることができる。さらに、コンポーネント同士を、様々なタイプの通信媒体によって通信的に結合して動作を連携させ得る。連携は、情報の単方向または二方向の交換を伴い得る。例えば、コンポーネント同士は、通信媒体を通じて通信される信号の形態で情報を通信し得る。情報は、様々な信号線に割り振られた信号として実施され得る。そのような割り振りでは、各メッセージが信号となる。しかし、さらなる実施形態は、代替としてデータメッセージを用い得る。そのようなデータメッセージは、様々な接続を介して送られ得る。例示的な接続には、パラレルインターフェース、シリアルインターフェース、およびバスインターフェースが含まれる。
【０２０４】
コンピューティングアーキテクチャ１１００は、１つまたは複数のプロセッサ、マルチコアプロセッサ、コプロセッサ、メモリユニット、チップセット、コントローラ、周辺機器、インターフェース、発振器、タイミングデバイス、ビデオカード、オーディオカード、マルチメディア入出力（Ｉ／Ｏ）コンポーネント、電源等の、様々な一般的コンピューティング要素を含む。しかし、実施形態は、コンピューティングアーキテクチャ１１００による実施に限定されない。
【０２０５】
図１１に示すように、コンピューティングアーキテクチャ１１００は、処理ユニット１１０４、システムメモリ１１０６、およびシステムバス１１０８を備える。処理ユニット１１０４は、ＡＭＤ（登録商標）Ａｔｈｌｏｎ（登録商標）、Ｄｕｒｏｎ（登録商標）、およびＯｐｔｅｒｏｎ（登録商標）プロセッサ、ＡＲＭ（登録商標）アプリケーション、組み込みおよびセキュアプロセッサ、ＩＢＭ（登録商標）およびＭｏｔｏｒｏｌａ（登録商標）ＤｒａｇｏｎＢａｌｌ（登録商標）およびＰｏｗｅｒＰＣ（登録商標）プロセッサ、ＩＢＭおよびＳｏｎｙ（登録商標）のＣｅｌｌプロセッサ、Ｉｎｔｅｌ（登録商標）Ｃｅｌｅｒｏｎ（登録商標）、Ｃｏｒｅ（２）Ｄｕｏ（登録商標）、Ｉｔａｎｉｕｍ（登録商標）、Ｐｅｎｔｉｕｍ（登録商標）、Ｘｅｏｎ（登録商標）、およびＸＳｃａｌｅ（登録商標）プロセッサ、ならびに同様のプロセッサを制限なしに含む、様々な市販プロセッサのいずれかであり得る。デュアルマイクロプロセッサ、マルチコアプロセッサ、および他のマルチプロセッサアーキテクチャも、処理ユニット１１０４として用いられ得る。
【０２０６】
システムバス１１０８は、処理ユニット１１０４への、これに限定されないが、システムメモリ１１０６を含むシステムコンポーネントのためのインターフェースを提供する。システムバス１１０８は、各種の市販バスアーキテクチャのいずれかを使用して、メモリバス（メモリコントローラを備える、または備えない）、ペリフェラルバス、およびローカルバスにさらに相互接続し得る、数タイプのバス構造のいずれかとすることができる。インターフェースアダプタが、スロットアーキテクチャを介してシステムバス１１０８に接続し得る。例示的なスロットアーキテクチャは、制限なしに、アクセラレーテッドグラフィックスポート（ＡＧＰ：Ａｃｃｅｌｅｒａｔｅｄ  Ｇｒａｐｈｉｃｓ  Ｐｏｒｔ）、カードバス、（拡張）業界標準アーキテクチャ（（Ｅ）ＩＳＡ：（Ｅｘｔｅｎｄｅｄ）Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）、マイクロチャネルアーキテクチャ（ＭＣＡ：Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）、ＮｕＢｕｓ、周辺コンポーネント相互接続（拡張）（ＰＣＩ（Ｘ）：Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ（Ｅｘｔｅｎｄｅｄ））、ＰＣＩエクスプレス、パーソナルコンピュータメモリカード国際組織（ＰＣＭＣＩＡ：Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ  Ｍｅｍｏｒｙ  Ｃａｒｄ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ａｓｓｏｃｉａｔｉｏｎ）等を含み得る。
【０２０７】
コンピューティングアーキテクチャ１１００は、様々な製造品を備える、または実装し得る。製造品は、ロジックを記憶するためのコンピュータ可読記憶媒体を備え得る。コンピュータ可読記憶媒体の例は、揮発性メモリまたは不揮発性メモリ、取り外し可能または取り外し不能メモリ、消去可能または非消去可能メモリ、書込み可能または再書込み可能メモリ等を含む、電子データを記憶することが可能な任意の有形媒体を含み得る。ロジックの例は、ソースコード、コンパイルされるコード、解釈されるコード、実行可能コード、静的コード、動的コード、オブジェクト指向コード、視覚コード等の任意の適切なタイプのコードを使用して実施される、実行可能コンピュータプログラム命令を含み得る。実施形態は、少なくとも部分的に、非一時的コンピュータ可読媒体に収容された命令として実施されてもよく、その命令が１つまたは複数のプロセッサによって読み出され、実行されて、本明細書に記載される動作を行えるようにする。
【０２０８】
システムメモリ１１０６は、１つまたは複数のより高速なメモリユニットの形態の様々なタイプのコンピュータ可読記憶媒体を含み得、そのような記憶媒体は、読出し専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、ダブルデータレートＤＲＡＭ（ＤＤＲＡＭ）、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）、プログラム可能ＲＯＭ（ＰＲＯＭ）、消去可能なプログラム可能ＲＯＭ（ＥＰＲＯＭ）、電気的に消去可能なプログラム可能ＲＯＭ（ＥＥＰＲＯＭ）、フラッシュメモリ、強誘電性ポリマーメモリなどのポリマーメモリ、オーボニックメモリ、相変化または強誘電性メモリ、シリコン−酸化物−窒化物−酸化物−シリコン（ＳＯＮＯＳ）メモリ、磁気または光学カード、独立ディスクの冗長アレイ（ＲＡＩＤ：Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋｓ）ドライブなどのデバイスのアレイ、固体状態メモリデバイス（例えば、ＵＳＢメモリ、ソリッドステートドライブ（ＳＳＤ））、および情報を記憶するのに適した任意の他のタイプの記憶媒体などである。図１１に示す例示実施形態では、システムメモリ１１０６は、不揮発性メモリ１１１０および／または揮発性メモリ１１１２を含むことができる。基本入出力システム（ＢＩＯＳ）が、不揮発性のメモリ１１１０に記憶され得る。
【０２０９】
コンピュータ１１０２は、内部（または外部）ハードディスクドライブ（ＨＤＤ）１１１４、取り外し可能磁気ディスク１１１８の読み書きを行う磁気フロッピーディスクドライブ（ＦＤＤ）１１１６、および取り外し可能光ディスク１１２２（例えばＣＤ−ＲＯＭまたはＤＶＤ）の読み書きを行う光ディスクドライブ１１２０を含む、１つまたは複数のより低速のメモリユニットの形態の様々なタイプのコンピュータ可読記憶媒体を含み得る。ＨＤＤ１１１４、ＦＤＤ１１１６、および光ディスクドライブ１１２０は、それぞれＨＤＤインターフェース１１２４、ＦＤＤインターフェース１１２６、および光学ドライブインターフェース１１２８によってシステムバス１１０８に接続され得る。外部ドライブ実装のためのＨＤＤインターフェース１１２４は、ユニバーサルシリアルバス（ＵＳＢ）およびＩＥＥＥ１３９４インターフェース技術の少なくとも一方または両方を含むことができる。
【０２１０】
これらのドライブおよび関連するコンピュータ可読媒体は、データ、データ構造、コンピュータ実行可能命令等の揮発性および／または不揮発性の記憶を提供する。例えば、オペレーティングシステム１１３０、１つまたは複数のアプリケーションプログラム１１３２、他のプログラムモジュール１１３４、およびプログラムデータ１１３６を含む、いくつかのプログラムモジュールが、ドライブおよびメモリユニット１１１０、１１１２に記憶され得る。１つの実施形態では、１つまたは複数のアプリケーションプログラム１１３２、他のプログラムモジュール１１３４、およびプログラムデータ１１３６は、例えば、システム１００の様々なアプリケーションおよび／またはコンポーネントを含むことができる。
【０２１１】
ユーザは、１つまたは複数の配線／ワイヤレス入力装置、例えば、キーボード１１３８、およびマウス１１４０などのポインティングデバイスを通じて、コンピュータ１１０２にコマンドおよび情報を入力することができる。他の入力装置は、マイクロフォン、赤外線（ＩＲ）リモコン、無線周波（ＲＦ）リモコン、ゲームパッド、スタイラスペン、カードリーダ、ドングル、指紋リーダ、グローブ、グラフィックタブレット、ジョイスティック、キーボード、網膜リーダ、タッチ画面（例えば容量式、抵抗式等）、トラックボール、トラックパッド、センサ、スタイラス等を含み得る。これらおよび他の入力装置は、多くの場合、システムバス１１０８に結合された入力装置インターフェース１１４２を通じて処理ユニット１１０４に接続されるが、パラレルポート、ＩＥＥＥ１３９４シリアルポート、ゲームポート、ＵＳＢポート、ＩＲインターフェース等の他のインターフェースによって接続されることが可能である。
【０２１２】
モニタ１１４４または他のタイプの表示デバイスも、ビデオアダプタ１１４６などのインターフェースを介してシステムバス１１０８に接続される。モニタ１１４４は、コンピュータ１１０２の内部にある場合も外部にある場合もある。モニタ１１４４に加えて、コンピュータは通例、スピーカ、プリンタ等の他の周辺出力装置を含む。
【０２１３】
コンピュータ１１０２は、リモートコンピュータ１１４８などの１つまたは複数のリモートコンピュータへの配線および／またはワイヤレス通信を介した論理接続を使用して、ネットワーク化された環境で動作し得る。リモートコンピュータ１１４８は、ワークステーション、サーバコンピュータ、ルータ、パーソナルコンピュータ、携帯型コンピュータ、マイクロプロセッサを利用した娯楽アプライアンス、ピアデバイス、または他の一般的なネットワークノードであり得、通例は、コンピュータ１１０２に関して記載される要素の多くまたはすべてを含むが、図を簡潔にするために、メモリ／記憶装置１１５０のみが例示されている。図示される論理接続は、ローカルエリアネットワーク（ＬＡＮ）１１５２、および／またはより大きいネットワーク、例えばワイドエリアネットワーク（ＷＡＮ）１１５４への配線／ワイヤレス接続性を含む。このようなＬＡＮおよびＷＡＮネットワーキング環境は、オフィスや会社で一般に見られ、イントラネットなどのエンタープライズ規模のコンピュータネットワークを容易にし、それらのコンピュータネットワークはすべて、世界規模の通信ネットワーク、例えばインターネットに接続し得る。
【０２１４】
ＬＡＮネットワーキング環境で使用される場合、コンピュータ１１０２は、配線および／またはワイヤレス通信ネットワークインターフェースまたはアダプタ１１５６を通じてＬＡＮ１１５２に接続される。アダプタ１１５６は、ＬＡＮ１１５２への配線および／またはワイヤレス通信を容易にすることができ、ＬＡＮ１１５２は、アダプタ１１５６のワイヤレス機能性と通信するために配設されたワイヤレスアクセスポイントも含み得る。
【０２１５】
ＷＡＮネットワーキング環境で使用される場合、コンピュータ１１０２は、モデム１１５８を含むことができ、またはＷＡＮ１１５４上の通信サーバに接続されるか、またはインターネットを経由するなど、ＷＡＮ１１５４を通じて通信を確立するための他の手段を有する。モデム１１５８は、内部または外部にある、配線および／またはワイヤレスデバイスであり得、入力装置インターフェース１１４２を介してシステムバス１１０８に接続する。ネットワーク化された環境では、コンピュータ１１０２に関して図示されたプログラムモジュール、またはその一部は、リモートのメモリ／記憶装置１１５０に記憶され得る。図示されるネットワーク接続は例示的なものであり、コンピュータ間に通信リンクを確立する他の手段が使用され得ることが認識されよう。
【０２１６】
コンピュータ１１０２は、ワイヤレス通信（例えばＩＥＥＥ８０２．１１オーバーザエア変調技術）に動作可能に配設されたワイヤレスデバイスなど、ＩＥＥＥ８０２系規格を使用して配線およびワイヤレスデバイスまたはエンティティと通信するように動作可能である。これは、とりわけ、Ｗｉ−Ｆｉ（またはＷｉｒｅｌｅｓｓ  Ｆｉｄｅｌｉｔｙ）、ＷｉＭａｘ、およびＢｌｕｅｔｏｏｔｈ（商標）ワイヤレス技術を少なくとも含む。よって、通信は、従来のネットワークのように事前に定義された構造である場合も、または単に少なくとも２つのデバイス間のアドホック通信である場合もある。Ｗｉ−Ｆｉネットワークは、ＩＥＥＥ  ８０２．ｌ  ｌｘ（ａ、ｂ、ｇ、ｎ等）と呼ばれる無線技術を使用して、安全で、信頼性が高く、高速なワイヤレス接続性を提供する。Ｗｉ−Ｆｉネットワークを使用して、コンピュータを互いに、インターネットに、および配線ネットワーク（ＩＥＥＥ８０２．３に関係する媒体および機能を使用する）に接続することができる。
【０２１７】
図１２は、上記に記載したような様々な実施形態を実施するのに適した例示的通信アーキテクチャ１２００のブロック図を例示する。通信アーキテクチャ１２００は、送信器、受信器、送受信器、無線機、ネットワークインターフェース、ベースバンドプロセッサ、アンテナ、増幅器、フィルタ、電源等の、様々な一般的な通信要素を含む。しかし、実施形態は、通信アーキテクチャ１２００による実施に限定されない。
【０２１８】
図１２に示すように、通信アーキテクチャ１２００は、１つまたは複数のクライアント１２０２およびサーバ１２０４を備える。クライアント１２０２は、メッセージングクライアントまたは他の通信クライアントに対応し得る。サーバ１２０４は、消費者・企業間サービス１１０のサーバを実装し得る。クライアント１２０２およびサーバ１２０４は、クッキーおよび／または関連付けられたコンテクスト情報など、それぞれのクライアント１２０２およびサーバ１２０４にとってローカルな情報を記憶するために用いることが可能な、１つまたは複数の各自のクライアントデータストア１２０８およびサーバデータストア１２１０に動作的に接続される。
【０２１９】
クライアント１２０２およびサーバ１２０４は、通信フレームワーク１２０６を使用して互いとの間で情報を通信し得る。通信フレームワーク１２０６は、任意のよく知られた通信技術およびプロトコルを実装し得る。通信フレームワーク１２０６は、パケット交換ネットワーク（例えばインターネットなどの公衆ネットワーク、エンタープライズイントラネットなどのプライベートネットワーク等）、回路交換ネットワーク（例えば衆交換電話網）、またはパケット交換ネットワークと回路交換ネットワークの組み合わせ（適切なゲートウェイおよびトランスレータを伴う）として実施され得る。
【０２２０】
通信フレームワーク１２０６は、通信ネットワークを受け入れ、通信ネットワークと通信し、通信ネットワークに接続するようになされた様々なネットワークインターフェースを実装し得る。ネットワークインターフェースは、特殊化された形態の入出力インターフェースとみなし得る。ネットワークインターフェースは、直接接続、イーサネット（例えば、シック、シン、ツイストペア１０／１００／１０００  Ｂａｓｅ  Ｔ等）、トークンリング、ワイヤレスネットワークインターフェース、セルラーネットワークインターフェース、ＩＥＥＥ８０２．１１ａ−ｘネットワークインターフェース、ＩＥＥＥ８０２．１６ネットワークインターフェース、ＩＥＥＥ８０２．２０ネットワークインターフェース等を制限なしに含む、接続プロトコルを用い得る。さらに、様々な通信ネットワークタイプと関わるために複数のネットワークインターフェースが使用され得る。例えば、複数のネットワークインターフェースを用いて、ブロードキャスト、マルチキャスト、およびユニキャストネットワークを通じた通信を可能にし得る。処理要件がより高量の速度および容量を要求する場合は、分散ネットワークコントローラアーキテクチャを同様に用いて、クライアント１２０２およびサーバ１２０４によって必要とされる通信帯域幅をプールし、負荷分散し、その他の形で増大させ得る。通信ネットワークは、直接相互接続、セキュリティ保護されたカスタム接続、プライベートネットワーク（例えばエンタープライズイントラネット）、公衆ネットワーク（例えばインターネット）、パーソナルエリアネットワーク（ＰＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、メトロポリタンネットワーク（ＭＡＮ）、インターネット上でノードとして動作しているミッション（ＯＭＮＩ：Ｏｐｅｒａｔｉｎｇ  Ｍｉｓｓｉｏｎｓ  ａｓ  Ｎｏｄｅｓ  ｏｎ  Ｉｎｔｅｒｎｅｔ）、ワイドエリアネットワーク（ＷＡＮ）、ワイヤレスネットワーク、セルラーネットワーク、および他の通信ネットワークを制限なしに含む、有線および／またはワイヤレスネットワークのうちの任意の１つまたは組み合わせであり得る。
【０２２１】
図１３は、システム１００などのマルチキャリアＯＦＤＭシステムで使用するためのデバイス１３００の一実施形態を例示する。デバイス１３００は、例えば、システム１００を参照して説明したようなソフトウェアコンポーネント１３６０、および／または論理回路１３３５を実装し得る。論理回路１３３５は、システム１００に関して説明した動作を行うための物理的回路を含み得る。図１３に示すように、デバイス１３００は、無線インターフェース１３１０、ベースバンド回路構成１３２０、およびコンピューティングプラットフォーム１３３０を含み得るが、実施形態はこの構成に制限されない。
【０２２２】
デバイス１３００は、システム１００および／または論理回路１３３５に関する構造および／または動作の一部またはすべてを、単一のデバイス内に完全に実装するなど、単一のコンピューティングエンティティ内に実装し得る。あるいは、デバイス１３００は、システム１００および／または論理回路１３３５に関する構造および／または動作のいくつかの部分を、分散システムアーキテクチャを使用して複数のコンピューティングエンティティに分散させ得、そのような分散システムアーキテクチャには、クライアント・サーバアーキテクチャ、３層アーキテクチャ、Ｎ層アーキテクチャ、密結合またはクラスタアーキテクチャ、ピアツーピアアーキテクチャ、マスター・スレーブアーキテクチャ、共有データベースアーキテクチャ、および他のタイプの分散システムなどがある。実施形態はこれに関して制限されない。
【０２２３】
１つの実施形態では、無線インターフェース１３１０は、単一キャリアまたはマルチキャリアの変調信号（例えば相補符号変調（ＣＣＫ：ｃｏｍｐｌｅｍｅｎｔａｒｙ  ｃｏｄｅ  ｋｅｙｉｎｇ）および／または直交周波数分割多重化（ＯＦＤＭ）シンボルを含む）を送信および／または受信するために適合されたコンポーネントまたはコンポーネントの組み合わせを含み得るが、実施形態は、どの特定のオーバーザエアインターフェースまたは変調方式にも限定されない。無線インターフェース１３１０は、例えば、受信器１３１２、送信器１３１６、および／または周波数合成器１３１４を含み得る。無線インターフェース１３１０は、バイアスコントロール、水晶発振器、および／または１つまたは複数のアンテナ１３１８を含み得る。別の実施形態では、無線インターフェース１３１０は、必要に応じて、外部の電圧制御発振器（ＶＣＯ）、弾性表面波フィルタ、中間周波数（ＩＦ）フィルタ、および／またはＲＦフィルタを使用し得る。潜在的なＲＦインターフェース設計が多岐にわたるため、その広範な説明は省略する。
【０２２４】
ベースバンド回路構成１３２０は、無線インターフェース１３１０と通信して信号を処理、受信および／または送信し得、例えば、受信信号をダウンコンバートするためのアナログ・デジタル変換器１３２２、送信する信号をアップコンバートするためのデジタル・アナログ変換器１３２４を含み得る。さらに、ベースバンド回路構成１３２０は、それぞれの受信／送信信号のＰＨＹリンク層処理を行うためのベースバンドまたは物理層（ＰＨＹ）処理回路１３５６を含み得る。ベースバンド回路構成１３２０は、例えば、メディアアクセス制御（ＭＡＣ）／データリンク層処理のための処理回路１３２８を含み得る。ベースバンド回路構成１３２０は、例えば１つまたは複数のインターフェース１３３４を介して、処理回路１３２８および／またはコンピューティングプラットフォーム１３３０と通信するためのメモリコントローラ１３３２を含み得る。
【０２２５】
いくつかの実施形態では、ＰＨＹ処理回路１３２６は、無線フレームなどの通信フレームを構築および／または分解するために、バッファメモリなどの追加的な回路構成と組み合わせてフレーム構築および／または検出モジュールを含み得る。代替として、または追加的に、ＭＡＣ処理回路１３２８は、これらの機能のうち特定のものについての処理をＰＨＹ処理回路１３２６と分担する、またはこれらのプロセスをＰＨＹ処理回路１３２６とは独立して行い得る。いくつかの実施形態では、ＭＡＣおよびＰＨＹの処理が単一の回路に統合され得る。
【０２２６】
コンピューティングプラットフォーム１３３０は、デバイス１３００にコンピューティング機能性を提供し得る。図示されるように、コンピューティングプラットフォーム１３３０は、処理コンポーネント１３４０を含み得る。ベースバンド回路構成１３２０に加えて、またはその代替として、デバイス１３００は、処理コンポーネント１３４０を使用してシステム１００および論理回路１３３５に関する処理動作またはロジックを実行し得る。処理コンポーネント１３４０（ならびに／またはＰＨＹ１３２６および／もしくはＭＡＣ１３２８）は、様々なハードウェア要素、ソフトウェア要素、または両者の組み合わせを備え得る。ハードウェア要素の例は、デバイス、論理デバイス、コンポーネント、プロセッサ、マイクロプロセッサ、回路、プロセッサ回路、回路要素（例えば、トランジスタ、抵抗、コンデンサ、インダクタ等）、集積回路、特定用途向け集積回路（ＡＳＩＣ）、プログラム可能論理デバイス（ＰＬＤ）、デジタル信号プロセッサ（ＤＳＰ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、メモリユニット、論理ゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップセット等を含み得る。ソフトウェア要素の例は、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、ソフトウェア開発プログラム、機械プログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、関数、メソッド、プロシージャ、ソフトウェアインターフェース、アプリケーション・プログラム・インターフェース（ＡＰＩ）、命令セット、コンピューティングコード、コンピュータコード、コード断片、コンピュータコード断片、ワード、値、シンボル、またはそれらの任意の組み合わせを含み得る。ある実施形態をハードウェア要素を使用して実施するか、および／またはソフトウェア要素を使用して実施するかの決定は、所与の実装の必要に応じて、所望の演算レート、電力レベル、耐熱性、処理サイクル予算、入力データレート、出力データレート、メモリリソース、データバス速度、および他の設計または性能上の制約などの、任意数の要因に応じて異なり得る。
【０２２７】
コンピューティングプラットフォーム１３３０はさらに、他のプラットフォームコンポーネント１３５０を含み得る。他のプラットフォームコンポーネント１３５０は、１つまたは複数のプロセッサ、マルチコアプロセッサ、コプロセッサ、メモリユニット、チップセット、コントローラ、周辺機器、インターフェース、発振器、タイミングデバイス、ビデオカード、オーディオカード、マルチメディア入出力（Ｉ／Ｏ）コンポーネント（例えばデジタルディスプレイ）、電源等の、一般的なコンピューティング要素を含む。メモリユニットの例は、１つまたは複数のより高速なメモリユニットの形態の様々なタイプのコンピュータ可読および機械可読記憶媒体を制限なしに含み得、そのような記憶媒体は、読出し専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、ダブルデータレートＤＲＡＭ（ＤＤＲＡＭ）、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）、プログラム可能ＲＯＭ（ＰＲＯＭ）、消去可能なプログラム可能ＲＯＭ（ＥＰＲＯＭ）、電気的に消去可能なプログラム可能ＲＯＭ（ＥＥＰＲＯＭ）、フラッシュメモリ、強誘電性ポリマーメモリなどのポリマーメモリ、オーボニックメモリ、相変化または強誘電性メモリ、シリコン−酸化物−窒化物−酸化物−シリコン（ＳＯＮＯＳ）メモリ、磁気または光学カード、独立ディスクの冗長アレイ（ＲＡＩＤ：Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋｓ）ドライブなどのデバイスのアレイ、固体状態メモリデバイス（例えば、ＵＳＢメモリ、ソリッドステートドライブ（ＳＳＤ））、および情報を記憶するのに適した任意の他のタイプの記憶媒体などである。
【０２２８】
デバイス１３００は、例えば、ウルトラモバイルデバイス、モバイルデバイス、固定デバイス、マシンツーマシン（Ｍ２Ｍ）デバイス、携帯情報端末（ＰＤＡ）、モバイルコンピューティングデバイス、スマートフォン、電話機、デジタル電話、セルラー電話、ユーザ機器、電子書籍リーダ、ハンドセット、一方向ページャ、双方向ページャ、メッセージングデバイス、コンピュータ、パーソナルコンピュータ（ＰＣ）、デスクトップコンピュータ、ラップトップコンピュータ、ノート型コンピュータ、ネットブックコンピュータ、手持ち型コンピュータ、タブレットコンピュータ、サーバ、サーバアレイまたはサーバファーム、ウェブサーバ、ネットワークサーバ、インターネットサーバ、ワークステーション、ミニコンピュータ、メインフレームコンピュータ、スーパーコンピュータ、ネットワークアプライアンス、ウェブアプライアンス、分散コンピューティングシステム、マルチプロセッサシステム、プロセッサを利用したシステム、消費者家電機器、プログラム可能な消費者家電機器、ゲームデバイス、テレビ、デジタルテレビ、セットトップボックス、ワイヤレスアクセスポイント、基地局、ノードＢ、発展型ノードＢ（ｅＮＢ）、加入者局、モバイル加入者センター、無線ネットワークコントローラ、ルータ、ハブ、ゲートウェイ、ブリッジ、スイッチ、機械、またはそれらの組み合わせであり得る。それゆえに、本明細書に記載されるデバイス１３００の機能および／または特定の構成は、必要に応じて適宜デバイス１３００の様々な実施形態に含められる、または省略され得る。いくつかの実施形態では、デバイス１３００は、３ＧＰＰ  ＬＴＥ仕様および／またはＷＭＡＮのためのＩＥＥＥ  １３０２．１６規格、および／または本明細書で引用される他の広帯域ワイヤレスネットワークの１つまたは複数に関連付けられたプロトコルおよび周波数と互換性をもつように構成され得るが、実施形態はこれに関して制限されない。
【０２２９】
デバイス１３００の実施形態は、単入力単出力（ＳＩＳＯ）アーキテクチャを使用して実施され得る。しかし、特定の実装形態は、ビーム形成もしくは空間分割多重接続（ＳＤＭＡ）のための適応アンテナ技術を使用する、および／またはＭＩＭＯ通信技術を使用する、送信および／または受信用の複数のアンテナ（例えばアンテナ１３１８）を含み得る。
【０２３０】
デバイス１３００のコンポーネントおよび機構は、離散回路構成、特定用途向け集積回路（ＡＳＩＣ）、論理ゲート、および／または単一チップアーキテクチャの任意の組み合わせを使用して実施され得る。さらに、デバイス１３００の機構は、マイクロコントローラ、プログラム可能ロジックアレイおよび／またはマイクロプロセッサ、または適切な場合には前述の任意の組み合わせを使用して実施され得る。ハードウェア、ファームウェアおよび／またはソフトウェア要素を、本明細書ではまとめてまたは個々に「ロジック」または「回路」と呼ぶことがあることに留意されたい。
【０２３１】
図１３のブロック図に示す例示的デバイス１３００は、多くの潜在的な実装形態のうち１つの機能的説明例を表し得ることを認識すべきである。それゆえに、添付図面に図示されるブロック機能の分割、省略、または包含は、それらの機能を実装するためのハードウェアコンポーネント、回路、ソフトウェアおよび／または要素が、実施形態において必ず分割、省略、または包含されることを示唆するものではない。
【０２３２】
コンピュータ実装方法は、ボットサービスシステムにおいて複数のボットについての複数のボット能力カタログを受信することであって、複数のボット能力カタログの各々は、関連付けられたボットについてボット能力を自然言語で表す、複数のボット能力カタログを受信することと、ユーザクライアントデバイスからユーザサービスプロンプトを受信することであって、ユーザサービスプロンプトは自然言語で表されている、ユーザサービスプロンプトを受信することと、ユーザサービスプロンプトを複数のボット能力カタログと照合することにより、複数のボットのうち１つまたは複数の選択されたボットを決定することと、ユーザクライアントデバイスからユーザサービスプロンプトを受信するのに応答して、１つまたは複数の選択されたボットをユーザクライアントデバイスに対して識別することと、を含み得る。
【０２３３】
コンピュータ実装方法は、開発者ボット構成インターフェースを介して複数のボット能力カタログのうち１つまたは複数のボット能力カタログを受信することをさらに含み得る。
【０２３４】
コンピュータ実装方法は、複数のボット能力カタログのうち１つまたは複数が、１つまたは複数の実例ユーザプロンプトを含むこと、をさらに含み得る。
【０２３５】
コンピュータ実装方法は、ユーザプロンプトが、ユーザクライアントデバイス上のメッセージングクライアントを介して受信され、１つまたは複数の選択されたボットが、ユーザクライアントデバイス上のメッセージングクライアントに対して識別されること、をさらに含み得る。
【０２３６】
コンピュータ実装方法は、ユーザプロンプトが２人以上のユーザ間の対話の一部分を含むこと、をさらに含み得る。
【０２３７】
コンピュータ実装方法は、対話がメッセージング対話を含むこと、をさらに含み得る。
【０２３８】
コンピュータ実装方法は、自然言語処理コンポーネントに複数のボット能力カタログをサブミットすることと、自然言語処理コンポーネントからボット能力テーブルを受け取ることと、自然言語処理コンポーネントにユーザプロンプトをサブミットすることと、自然言語処理コンポーネントからユーザ意図を受け取ることと、ユーザ意図をボット能力テーブルと比較することにより、１つまたは複数の選択されたボットを決定することと、をさらに含み得る。
【０２３９】
コンピュータ実装方法は、ボット能力テーブルが、複数のボット能力カタログを複数のボット能力ベクトルとして表現し、ユーザ意図が、ユーザプロンプトをユーザ意図ベクトルとして表現し、ユーザ意図をボット能力テーブルと比較することが、ユーザ意図ベクトルに基づいて複数のボット能力ベクトルの類似度検索を行うことを含むこと、をさらに含み得る。
【０２４０】
コンピュータ実装方法は、類似度検索がコサイン類似度比較に基づくこと、をさらに含み得る。
【０２４１】
コンピュータ実装方法は、自然言語処理コンポーネントが自然言語機械学習コンポーネントを備え、方法が、ボットサービスシステムに関するボット対話履歴に基づいて自然言語機械学習コンポーネントに教示することをさらに含むこと、をさらに含み得る。
【０２４２】
コンピュータ実装方法は、ボットサービスシステムに対して分類法に基づく複数のボット選択を行って、ボット対話履歴の少なくとも一部分を生成することをさらに含み得る。
【０２４３】
装置は、デバイス上のプロセッサ回路と、ボットサービスシステムにおいて複数のボットについての複数のボット能力カタログを受信するようにプロセッサ回路上で動作するボット・アプリケーション・インターフェース・コンポーネントであって、複数のボット能力カタログの各々は、関連付けられたボットについてボット能力を自然言語で表す、ボット・アプリケーション・インターフェース・コンポーネントと、ユーザクライアントデバイスからユーザサービスプロンプトを受信し、ユーザサービスプロンプトが自然言語で表されており、ユーザクライアントデバイスからユーザサービスプロンプトを受信するのに応答して、１つまたは複数の選択されたボットをユーザクライアントデバイスに対して識別するように動作するクライアント通信コンポーネントと、ユーザサービスプロンプトを複数のボット能力カタログと照合することにより、複数のボットのうち１つまたは複数の選択されたボットを決定するように動作する対話処理コンポーネントと、を備え得る。装置は、本明細書に記載されるコンピュータ実装方法のいずれかを実施するように動作し得る。
【０２４４】
コンピュータ実装方法は、ボットサービスシステムにおいてユーザクライアントデバイスからユーザサービスプロンプトを受信することであって、ユーザサービスプロンプトが自然言語で表されている、ユーザサービスプロンプトを受信することと、複数のボットのうち２つ以上の選択されたボットを決定することと、ボット関連度に基づいて２つ以上の選択されたボットのうち２つ以上のフィルタリングされたボットを決定することと、ユーザクライアントデバイスからユーザサービスプロンプトを受信するのに応答して、２つ以上のフィルタリングされたボットをユーザクライアントデバイスに対して識別することと、を含み得る。
【０２４５】
コンピュータ実装方法は、ユーザプロンプトが、ユーザクライアントデバイス上のメッセージングクライアントを介して受信され、１つまたは複数の選択されたボットが、ユーザクライアントデバイス上のメッセージングクライアントに対して識別されること、をさらに含み得る。
【０２４６】
コンピュータ実装方法は、ユーザプロンプトが２人以上のユーザ間の対話の一部分を含むこと、をさらに含み得る。
【０２４７】
コンピュータ実装方法は、ユーザプロンプトがボット対話結果を含むこと、をさらに含み得る。
【０２４８】
コンピュータ実装方法は、２つ以上のフィルタリングされたボットのボットランク付け情報を照会することと、ボットランク付け情報に基づいて２つ以上のフィルタリングされたボットをランク付けすることとをさらに含み得る。
【０２４９】
コンピュータ実装方法は、ユーザサービスプロンプトがボットサービスシステムのユーザアカウントに関連付けられており、２つ以上のフィルタリングされたボットのボットランク付け情報を照会することが、ユーザアカウントにユーザ情報を提供することを含むこと、をさらに含み得る。
【０２５０】
コンピュータ実装方法は、２つ以上のフィルタリングされたボットのうちのボットについてのユーザ情報共有設定を決定すること、および、そのユーザ情報共有設定と、そのボットをフィルタリングされたボットとして決定することとに基づいて、ユーザアカウントにユーザ情報共有許可を要求すること、をさらに含み得る。
【０２５１】
コンピュータ実装方法は、２つ以上のフィルタリングされたボットが、アカウントに基づくボットを含み、ユーザ情報が、アカウントに基づくボットのためのアカウント情報を含むこと、をさらに含み得る。
【０２５２】
コンピュータ実装方法は、ユーザプロフィール情報、ユーザ挙動情報、ユーザ位置情報、ユーザメッセージングコンテクスト情報、およびユーザボット履歴情報の１つまたは複数に基づいて、２つ以上の提案されるボットのボット関連度を決定することをさらに含み得る。
【０２５３】
装置は、デバイス上のプロセッサ回路と、ボットサービスシステムにおいてユーザクライアントデバイスからユーザサービスプロンプトを受信し、ユーザサービスプロンプトが自然言語で表されており、ユーザクライアントデバイスからユーザサービスプロンプトを受信するのに応答して、２つ以上のフィルタリングされたボットをユーザクライアントデバイスに対して識別するようにプロセッサ回路上で動作するクライアント通信コンポーネントと、ボット関連度に基づいて、複数のボットのうち２つ以上の選択されたボットを決定し、その２つ以上の選択されたボットのうち２つ以上のフィルタリングされたボットを決定するように動作する対話処理コンポーネントと、を備え得る。装置は、本明細書に記載されるコンピュータ実装方法のいずれかを実施するように動作し得る。
【０２５４】
コンピュータ実装方法は、ボットサービスシステムにおいて複数のエージェントについての複数のエージェント・イベント・サブスクリプションを受信することと、ユーザアカウントに関連付けられたイベントを検出し、ユーザアカウントはユーザクライアントデバイスに関連付けられている、イベントを検出することと、イベントを複数のエージェント・イベント・サブスクリプションと照合して、１つまたは複数のイベント応答エージェントを決定することと、イベントを検出するのに応答して１つまたは複数のイベント応答エージェントをユーザクライアントデバイスに対して識別することと、を含み得る。
【０２５５】
コンピュータ実装方法は、イベントがイベント情報に従って検出され、イベント情報がユーザクライアントデバイス上のメッセージングクライアントを介して受信され、１つまたは複数のイベント応答エージェントが、ユーザクライアントデバイス上のメッセージングクライアントに対して識別されること、をさらに含み得る。
【０２５６】
コンピュータ実装方法は、イベントが２人以上のユーザ間の対話の一部分に基づいて検出されること、をさらに含み得る。
【０２５７】
コンピュータ実装方法は、複数のエージェントが、１つまたは複数のメッセージングボット、１つまたは複数の多ユーザアプリケーション、１つまたは複数のメッセージングクライアントツール、および１つまたは複数のソーシャルネットワーキングツールの１つまたは複数を含むこと、をさらに含み得る。
【０２５８】
コンピュータ実装方法は、複数のエージェントが多ユーザ投票ツールを備えること、をさらに含み得る。
【０２５９】
コンピュータ実装方法は、イベントが２人以上のユーザ間の対話の一部分に基づいて検出され、方法が、多ユーザ投票ツールを実行することと、多ユーザ投票数から多ユーザ投票結果を受け取ることと、多ユーザ投票結果に基づいてその対話についての後続イベントを生成することとをさらに含むこと、をさらに含み得る。
【０２６０】
コンピュータ実装方法は、イベントが、ユーザサービスプロンプト、ユーザアカウントに関するソーシャル情報更新、およびユーザアカウントに関するユーザコンテクストの変化のうち１つまたは複数を含むこと、をさらに含み得る。
【０２６１】
コンピュータ実装方法は、ソーシャル情報更新が、関係ステータスの変化および友達の追加の一方を含むこと、をさらに含み得る。
【０２６２】
コンピュータ実装方法は、ユーザコンテクストの変化がユーザ位置の変化を含むこと、をさらに含み得る。
【０２６３】
コンピュータ実装方法は、イベントがボット対話結果を含むこと、をさらに含み得る。
【０２６４】
装置は、デバイス上のプロセッサ回路と、ボットサービスシステムにおいて複数のエージェントについての複数のエージェント・イベント・サブスクリプションを受信するようにプロセッサ回路上で動作するボット・アプリケーション・インターフェース・コンポーネントと、ユーザアカウントに関連付けられたイベントを検出し、ユーザアカウントはユーザクライアントデバイスに関連付けられており、そのイベントを複数のエージェント・イベント・サブスクリプションと照合して、１つまたは複数のイベント応答エージェントを決定するように動作する対話処理コンポーネントと、イベントを検出するのに応答して１つまたは複数のイベント応答エージェントをユーザクライアントデバイスに対して識別するように動作するクライアント通信コンポーネントと、を備え得る。装置は、本明細書に記載されるコンピュータ実装方法のいずれかを実施するように動作し得る。
【０２６５】
コンピュータ実装方法は、ボットサービスシステムにおいて複数のボットについての複数のボット能力カタログを受信することであって、複数のボット能力カタログの各々は、関連付けられたボットについてボット能力を自然言語で表す、複数のボット能力カタログを受信することと、複数のユーザクライアントデバイスから複数のユーザサービスプロンプトを受信することであって、複数のユーザサービスプロンプトが自然言語で表されている、複数のユーザサービスプロンプトを受信することと、自然言語機械学習コンポーネントによって生成されたボット能力テーブルを使用して、複数のユーザサービスプロンプトを複数のボット能力カタログと照合することにより、複数のユーザプロンプトの各々に対して複数のボットのうち選択されたボットを決定することと、複数のユーザサービスプロンプトを受信するのに応答して、選択されたボットを複数のユーザクライアントデバイスに提供することと、選択されたボットとのユーザ対話に基づくボット対話履歴を記録することと、ボット対話履歴に基づいて自然言語機械学習コンポーネントを更新することと、を含み得る。
【０２６６】
コンピュータ実装方法は、ボット完了率を最適化することに基づいて自然言語機械学習コンポーネントを更新することをさらに含み得る。
【０２６７】
コンピュータ実装方法は、ボット完了率の最適化がユーザボット棄却率に基づくこと、をさらに含み得る。
【０２６８】
コンピュータ実装方法は、ボット完了率の最適化が、ユーザボット棄却率を定義されたボット棄却閾値未満に維持することに基づくこと、をさらに含み得る。
【０２６９】
コンピュータ実装方法は、ボット完了率の最適化がユーザボット履歴信号に基づくこと、をさらに含み得る。
【０２７０】
コンピュータ実装方法は、ボット情報を増大させることに基づいて自然言語機械学習コンポーネントを更新することをさらに含み得る。
【０２７１】
コンピュータ実装方法は、ボット能力テーブルが、複数のボット能力カタログを複数のボット能力ベクトルとして表現し、方法が、複数のボット能力カタログと複数のボット能力ベクトルとの間の対応付けを修正するように、自然言語機械学習コンポーネントを更新することをさらに含むこと、をさらに含み得る。
【０２７２】
装置は、デバイス上のプロセッサ回路と、ボットサービスシステムにおいて複数のボットについての複数のボット能力カタログを受信するようにプロセッサ回路上で動作するボット・アプリケーション・インターフェース・コンポーネントであって、複数のボット能力カタログの各々は、関連付けられたボットについてボット能力を自然言語で表す、ボット・アプリケーション・インターフェース・コンポーネントと、複数のユーザクライアントデバイスから複数のユーザサービスプロンプトを受信し、複数のユーザサービスプロンプトが自然言語で表されており、複数のユーザサービスプロンプトを受信するのに応答して、選択されたボットを複数のユーザクライアントデバイスに提供するように動作するクライアント通信コンポーネントと、自然言語機械学習コンポーネントによって生成されたボット能力テーブルを使用して、複数のユーザサービスプロンプトを複数のボット能力カタログと照合することにより、複数のユーザプロンプトの各々に対して複数のボットのうち選択されたボットを決定し、選択されたボットとのユーザ対話に基づくボット対話履歴を記録し、ボット対話履歴に基づいて自然言語機械学習コンポーネントを更新するように動作する対話処理コンポーネントと、を備え得る。装置は、本明細書に記載されるコンピュータ実装方法のいずれかを実施するように動作し得る。
【０２７３】
コンピュータ実装方法は、複数のクライアントデバイス上に多ユーザインターフェースをインスタンス化することであって、インスタンス化することは、多ユーザインターフェースの少なくとも一部分を複数のクライアントデバイスの各々に表示することを意味する、インスタンス化することと、複数のクライアントデバイスのうち第１のクライアントデバイスからユーザインターフェース対話を受信することと、ユーザインターフェース対話に基づいて複数のクライアントデバイス上の多ユーザインターフェースを更新することと、を含み得る。
【０２７４】
コンピュータ実装方法は、複数のクライアントデバイス上のメッセージングクライアントが、多ユーザインターフェースの少なくとも一部分を表示することをさらに含み得る。
【０２７５】
コンピュータ実装方法は、複数のクライアントデバイスのうちの開始元クライアントデバイスから多ユーザアプリケーションの開始を受信することと、多ユーザアプリケーションの開始に応答して複数のクライアントデバイス上に多ユーザインターフェースをインスタンス化することと、をさらに含み得る。
【０２７６】
コンピュータ実装方法は、多ユーザアプリケーションの開始が、メッセージングシステムに関するメッセージスレッドに関連付けられており、メッセージスレッドが複数の参加者ユーザアカウントに関連付けられており、複数の参加者ユーザアカウントが複数のクライアントデバイスに関連付けられており、多ユーザインターフェースは、複数の参加者ユーザアカウントが、メッセージスレッド内の複数の参加者ユーザアカウントに対応する複数のクライアントデバイスに関連付けられていることに基づいて、複数のクライアントデバイス上でインスタンス化されること、をさらに含み得る。
【０２７７】
コンピュータ実装方法は、複数の参加者ユーザアカウントとメッセージスレッドとの間の関連付けに基づいてユーザインターフェース更新オブジェクトを配布することにより、複数のクライアントデバイス上の多ユーザインターフェースを更新することをさらに含み得る。
【０２７８】
コンピュータ実装方法は、開始元クライアントデバイスが、複数の参加者ユーザアカウントのうち開始元ユーザアカウントに関連付けられており、方法が、多ユーザインターフェースを介して、複数の参加者ユーザアカウントからの入力を含むサービス要求を受信することと、そのサービス要求をメッセージングボットにサブミットすることとをさらに含むこと、をさらに含み得る。
【０２７９】
コンピュータ実装方法は、サービス要求が開始元ユーザアカウントによってサブミットされ、サービス要求が、開始元ユーザアカウントで発生したものとしてメッセージングボットに送られること、をさらに含み得る。
【０２８０】
コンピュータ実装方法は、複数の参加者ユーザアカウントが、開始元ユーザアカウントと、開始元ユーザアカウント以外の１つまたは複数の寄与者ユーザアカウントとを含み、入力が、開始元ユーザアカウントからのグループサービス構成と、１つまたは複数の寄与者ユーザアカウントからの１つまたは複数の個人サービス構成とを含むこと、をさらに含み得る。
【０２８１】
コンピュータ実装方法は、１つまたは複数の個人サービス構成が、１つまたは複数のサービス要求参加確認を含むこと、をさらに含み得る。
【０２８２】
コンピュータ実装方法は、１つまたは複数の個人サービス構成が１つまたは複数のオプション選択を含むこと、をさらに含み得る。
【０２８３】
コンピュータ実装方法は、開始元ユーザアカウントから費用分担要求を受信することと、その費用分担要求を１つまたは複数の寄与者ユーザアカウントに送ることとをさらに含み得る。
【０２８４】
装置は、デバイス上のプロセッサ回路と、複数のクライアントデバイス上に多ユーザインターフェースをインスタンス化することであって、インスタンス化することは、多ユーザインターフェースの少なくとも一部分を複数のクライアントデバイスの各々に表示することを意味する、インスタンス化することと、複数のクライアントデバイスのうち第１のクライアントデバイスからユーザインターフェース対話を受信することと、ユーザインターフェース対話に基づいて複数のクライアントデバイス上の多ユーザインターフェースを更新することと、を行うようにプロセッサ回路上で動作するメッセージングコンポーネントと、を備え得る。装置は、本明細書に記載されるコンピュータ実装方法のいずれかを実施するように動作し得る。
【０２８５】
少なくとも１つのコンピュータ可読記憶媒体は、実行されると、本明細書に記載されるコンピュータ実装方法のいずれかをシステムに実行させる命令を含み得る。
【０２８６】
コンピュータ実装方法は、メッセージングボットが、メッセージスレッド内で参加者として表現されるのに適した、ネットワークアクセス可能なサービスへの自動化されたフロントエンドであり、メッセージングボットが任意選択で、メッセージングボットを明示的に含むメッセージスレッド内で、特に特定のユーザとメッセージングボットとの間の１対１メッセージスレッドとして、または、メッセージングボットが普段の参加者ではないメッセージスレッドであって、メッセージングボットが、サービスと対話することを目的とした、メッセージスレッドへの一時的な参加者である、メッセージスレッド内で、やり取りされること、をさらに含み得る。
【０２８７】
装置は、メッセージングコンポーネントが、複数のクライアントデバイス上に多ユーザインターフェースをインスタンス化することであって、インスタンス化することは、多ユーザインターフェースの少なくとも一部分を複数のクライアントデバイスの各々に表示することを意味する、インスタンス化することと、複数のクライアントデバイスのうち第１のクライアントデバイスからユーザインターフェース対話を受信することと、ユーザインターフェース対話に基づいて複数のクライアントデバイス上の多ユーザインターフェースを更新することと、を行うようにプロセッサ回路上で動作し、ならびに／または、ボット・アプリケーション・インターフェース・コンポーネントが、ボット管理コンポーネントへのフロントエンド、および／もしくはボットアプリケーションのためのメッセージングシステムとして働くように構成されること、をさらに含み得る。
【０２８８】
装置は、ボット管理コンポーネントをさらに備え得、ボット管理コンポーネントは、対話処理コンポーネントからユーザ意図を受け取り、ユーザ意図に基づいてクライアントデバイスのためのメッセージングボットオプション構成を決定し、メッセージングボットオプション構成をクライアントデバイスに送るように動作可能であり、メッセージングボットオプションをクライアントデバイスに送ることは、任意選択で、メッセージングボットオプション構成をメッセージ待ち行列に加えることを含む。
【０２８９】
装置は、メッセージングボットオプション構成が、メッセージスレッドを表示する際のメッセージングクライアントのメッセージングインターフェースを、メッセージングボットとの対話を可能にするコントロールで構成するように動作可能であり、および／または、メッセージングボットオプション構成は、各々が異なるメッセージングボットに関連付けられた、複数のメッセージングボット起動コントロールから構成されること、をさらに含み得る。
【０２９０】
いくつかの実施形態は、「１つの実施形態」または「一実施形態」という表現をそれらの派生形と共に使用して説明されることがある。これらの用語は、その実施形態との関連で記載される特定の特徴、構造、または特性が少なくとも１つの実施形態に含まれることを意味する。明細書中の様々な箇所における「１つの実施形態では」というフレーズの出現は、必ずしもすべてが同じ実施形態を指しているとは限らない。さらに、いくつかの実施形態は、「結合された（ｃｏｕｐｌｅｄ）」および「接続された（ｃｏｎｎｅｃｔｅｄ）」という表現をそれらの派生形と共に使用して説明されることがある。これらの用語は、必ずしも互いの同義語であることを意図されない。例えば、いくつかの実施形態は、２つ以上の要素が互いと物理的または電気的に直接接触していることを指示するために、用語「接続された」および／または「結合された」を使用して説明されることがある。しかし、用語「結合された」は、２つ以上の要素が互いと直接接触していないものの、なお互いと協働する、または相互作用することも意味し得る。
【０２９１】
本明細書で使用される表記および術語を一般に参照すると、本明細書における詳細な説明は、コンピュータまたはコンピュータのネットワーク上で実行されるプログラム手順の点から提示されることがある。これらの手順的な説明および表現は、当業者が自身の仕事の実質的内容を他の当業者に最も効果的に伝えるために使用される。
【０２９２】
手順は、ここでは、また一般的に、所望の結果をもたらす動作の自己充足的な連続と考えられる。それらの動作は、物理的数量の物理的操作を必要とする動作である。通常、ただし必ずそうである訳ではないが、それらの数量は、記憶、転送、組み合わせ、比較、およびその他の形で操作されることが可能な、電気信号、磁気信号、または光学信号の形態を取る。時に、主として広く使用されているという理由から、それらの信号をビット、値、要素、シンボル、文字、項、数等と呼ぶことが利便であることが判明する。しかし、これらおよび同様の用語はすべて、該当する物理的数量に関連付けられ、単にそれらの数量に適用される利便なラベルに過ぎないことに留意すべきである。
【０２９３】
さらに、行われる操作はしばしば、追加する、または比較するなどの用語の中で参照されるが、これらは普通、人間のオペレータによって頭の中で行われる動作に関連する。そのような人間のオペレータの能力は、１つまたは複数の実施形態の一部を形成する本明細書に記載される動作のいずれにおいても、大半の場合は必要でないか、または望まれない。むしろ、それらの動作は機械動作である。様々な実施形態の動作を行うのに有用な機械には、汎用デジタルコンピュータまたは同様のデバイスが含まれる。
【０２９４】
様々な実施形態は、これらの動作を行うための装置またはシステムにも関する。この装置は、必要とされる目的のために特別に構築され得、またはコンピュータに記憶されたコンピュータプログラムによって選択的に起動もしくは再構成される汎用コンピュータからなり得る。本明細書に提示される手順は、基本的に特定のコンピュータまたは他の装置には関係しない。本明細書の教示に従って書かれたプログラムと共に様々な汎用機械が使用され得、または必要とされる方法ステップを行うためにより特化された装置を構築することが利便であることが判明する場合もある。各種のそのような機械のために必要とされる構造は、与えられる説明から明らかになろう。
【０２９５】
本開示の要約書は、読者が技術的開示内容の性質を手早く把握できるように提供されることを強調しておく。要約書は、請求項の範囲または意味を解釈または制限するために使用されることはないという理解の下に与えられる。また、前述の詳細な説明では、本開示を効率化する目的で様々な特徴が１つの実施形態に共にまとめられていることが見て取れる。この開示方法は、特許請求される実施形態が、各請求項に明確に述べられるよりも多くの特徴を必要とするという意向を反映しているとは解釈すべきではない。むしろ、以下の特許請求の範囲が反映するように、発明の主題は、単一の開示される実施形態のすべての特徴よりも少ない特徴に存在する。よって、以下の特許請求の範囲は、それにより詳細な説明に援用され、各請求項は別々の実施形態として独立している。添付の特許請求の範囲において、用語「ｉｎｃｌｕｄｉｎｇ」および「ｉｎ  ｗｈｉｃｈ」は、それぞれ用語「ｃｏｍｐｒｉｓｉｎｇ」および「ｗｈｅｒｅｉｎ」の平易な英語の相当語として使用される。さらに、用語「第１の」、「第２の」、「第３の」等は単にラベルとして使用され、それらの対象に数値的要件を課すものではない。
【０２９６】
上述した内容は、開示されるアーキテクチャの例を含んでいる。無論、構成要素および／または方法論のあらゆる可能な組み合わせを記載することは可能でなく、当業者は、多くのさらなる組み合わせおよび置換が可能であることを認識されよう。それゆえに、新規なアーキテクチャは、添付の特許請求の範囲の主旨および範囲内に該当するすべてのそのような改変、修正、および変形を包含することが意図される。
【図１】
2020518893.tif 000003
【図２】
2020518893.tif 000004
【図３Ａ】
2020518893.tif 000005
【図３Ｂ】
2020518893.tif 000006
【図３Ｃ】
2020518893.tif 000007
【図３Ｄ】
2020518893.tif 000008
【図３Ｅ】
2020518893.tif 000009
【図４Ａ】
2020518893.tif 000010
【図４Ｂ】
2020518893.tif 000011
【図５】
2020518893.tif 000012
【図６】
2020518893.tif 000013
【図７】
2020518893.tif 000014
【図８Ａ】
2020518893.tif 000015
【図８Ｂ】
2020518893.tif 000016
【図８Ｃ】
2020518893.tif 000017
【図８Ｄ】
2020518893.tif 000018
【図８Ｅ】
2020518893.tif 000019
【図９】
2020518893.tif 000020
【図１０】
2020518893.tif 000021
【図１１】
2020518893.tif 000022
【図１２】
2020518893.tif 000023
【図１３】
2020518893.tif 000024
【国際調査報告】
2020518893.tif 000025
2020518893.tif 000026