(57)【要約】ボットインタラクションのためのシステム、方法およびコンピュータ可読媒体について記載する。例えばいくつかの実施形態は、第１のユーザと少なくとも１つの他のユーザとの間の通信を可能にするために、第１のユーザに関連付けられた第１のコンピューティングデバイス上にメッセージングアプリケーションを提供するステップを含むコンピュータが実行する方法を含むことができる。その方法はまた、メッセージングアプリケーションにおいてユーザ要求を検出するステップと、そのユーザ要求に応答する動作が第１のユーザに関連するデータの共有を必要とすることをプログラムにより決定するステップとを含むことができる。その方法は、第１のユーザが第１のユーザに関連するデータの共有を許可または禁止することを可能にする許可インタフェースを第１のコンピューティングデバイス上のメッセージングアプリケーションにレンダリングさせるステップと、第１のユーザに関連するデータの共有の許可を示す第１のユーザからのユーザ入力を受信すると、前記ユーザ要求に応答して第１のユーザに関連するデータにアクセスして、メッセージングアプリケーション内の第１のユーザに関連するデータを共有するステップとをさらに含むことができる。
2019519822.tif 000002
【特許請求の範囲】
【請求項１】
第１のユーザと少なくとも１つの他のユーザとの間の通信を可能にするために、前記第１のユーザに関連付けられた第１のコンピューティングデバイス上にメッセージングアプリケーションを提供するステップと、
前記メッセージングアプリケーションにおいてユーザ要求を検出するステップと、
前記ユーザ要求に応答する動作が前記第１のユーザに関連するデータの共有を必要とすることをプログラムにより決定するステップと、
前記第１のユーザが前記第１のユーザに関連するデータの共有を許可または禁止することを可能にする許可インタフェースを前記第１のコンピューティングデバイス上の前記メッセージングアプリケーションにレンダリングさせるステップと、
前記第１のユーザに関連するデータの共有の許可を示す前記第１のユーザからのユーザ入力を受信すると、前記ユーザ要求に応答して前記第１のユーザに関連するデータにアクセスして、前記メッセージングアプリケーション内の前記第１のユーザに関連するデータを共有するステップと
を含む、コンピュータが実行する方法。
【請求項２】
前記第１のユーザは人間のユーザであり、前記少なくとも１つの他のユーザは支援エージェントである、請求項１に記載のコンピュータが実行する方法。
【請求項３】
前記ユーザ要求を検出するステップは、前記メッセージングアプリケーションで受信された１つまたは複数のメッセージを前記支援エージェントが分析することを含み、前記メッセージは前記第１のユーザから前記支援エージェントに送信される、請求項２に記載のコンピュータが実行する方法。
【請求項４】
前記１つまたは複数のメッセージは、テキストメッセージ、マルチメディアメッセージ、および前記支援エージェントへのコマンドのうちの１つまたは複数を含む、請求項３に記載のコンピュータが実行する方法。
【請求項５】
前記第１のユーザの１つまたは複数の動作に基づいて前記支援エージェントを自動的に起動するステップをさらに含む、請求項２に記載のコンピュータが実行する方法。
【請求項６】
前記支援エージェントは、
特殊文字コマンド、
前記支援エージェントに関連するユーザインタフェース呼び出し要素のユーザ選択、
前記支援エージェントに対応するアバターのユーザ選択、および
前記支援エージェントによって提供される自動返信提案のユーザ選択
のうちの１つまたは複数に応答して起動される、請求項２に記載のコンピュータが実行する方法。
【請求項７】
前記第１のユーザは人間のユーザであり、前記少なくとも１つの他のユーザは、第２のコンピューティングデバイスに関連付けられた、前記第１のユーザとは異なる第２の人間のユーザを含み、前記許可インタフェースは、前記第１のユーザに関連付けられた前記第１のコンピューティングデバイス上の前記メッセージングアプリケーションにレンダリングされ、前記許可インタフェースは、前記第２の人間のユーザに関連付けられた前記第２のコンピューティングデバイス上には表示されない、請求項１に記載のコンピュータが実行する方法。
【請求項８】
前記第１のユーザは人間のユーザであり、前記少なくとも１つの他のユーザは、前記第１のユーザとは異なる第２の人間のユーザと、支援エージェントとを含み、前記ユーザ要求は、前記第１のユーザに関連付けられた前記第１のコンピューティングデバイスから受信され、前記方法は、前記ユーザ要求に応答して、前記メッセージングアプリケーションにおいて別個の会話を開始するステップをさらに含み、前記別個の会話は、前記第１のユーザおよび前記支援エージェントを中に入れ、かつ前記第２の人間のユーザを入らせない、請求項１に記載のコンピュータが実行する方法。
【請求項９】
前記第１のユーザと前記少なくとも１つの他のユーザのうちの少なくとも１つからの入力に基づいて第１のメッセージングアプリケーションに１つまたは複数の提案を提供するステップをさらに含む、請求項１に記載のコンピュータが実行する方法。
【請求項１０】
前記１つまたは複数の提案を前記メッセージングアプリケーションにおいて表示させるステップをさらに含む、請求項９に記載のコンピュータが実行する方法。
【請求項１１】
前記１つまたは複数の提案は、前記第１のユーザによって選択されると、対応する提案の詳細を表示させる提案要素としてレンダリングされる、請求項１０に記載のコンピュータが実行する方法。
【請求項１２】
メッセージングアプリケーションにおいて、以前に表示された確認応答メッセージの選択に対応するユーザ入力を支援エージェントから検出するステップであって、前記以前に表示された確認応答メッセージは、１つまたは複数の以前に表示された提案された自動返信応答に関連付けられている、ステップと、
前記以前に表示された提案された自動返信応答を表示させるステップと、
前記１つまたは複数の以前に表示された提案された自動返信応答のうちの任意の１つがユーザにより選択されたという指示を受信するステップと、
前記１つまたは複数の以前に表示された提案された自動返信応答のうちの任意の１つを前記支援エージェントおよび前記メッセージングアプリケーション内の会話に参加する第２のユーザに送信するステップと
を含む、コンピュータが実行する方法。
【請求項１３】
前記ユーザ入力に応答して前記支援エージェントを起動するステップをさらに含む、請求項１２に記載のコンピュータが実行する方法。
【請求項１４】
前記会話は、ユーザと少なくとも１つの他のユーザとを含み、前記ユーザは第１の人間のユーザであり、前記少なくとも１つの他のユーザは、前記第１の人間のユーザとは異なる第２の人間のユーザを含み、前記第１の人間のユーザは、第１のコンピューティングデバイスと関連付けられており、前記第２の人間のユーザは、第２のコンピューティングデバイスと関連付けられており、前記以前に表示されたメッセージ及び前記１つまたは複数の提案された自動返信応答は、前記第１の人間のユーザに関連付けられた前記第１のコンピューティングデバイス上の前記メッセージングアプリケーションにおいて最初にレンダリングされ、前記支援エージェントおよび前記メッセージングアプリケーション内の会話のうちの１つまたは複数に前記１つまたは複数の提案された自動返信応答を提供するステップは、前記メッセージングアプリケーションにおいて前記１つまたは複数の提案された自動返信応答を提供することを含む、請求項１２に記載のコンピュータが実行する方法。
【請求項１５】
非一時的なコンピュータ可読媒体に接続された１つまたは複数のハードウェアプロセッサを備えるシステムであって、前記非一時的なコンピュータ可読媒体はそれに格納されたソフトウェア命令を含み、前記ソフトウェア命令は、１つまたは複数のプロセッサにより実行されたときに、
第１のユーザに関連付けられた第１のコンピューティングデバイス上のメッセージングアプリケーションからユーザ要求を受信するステップであって、前記メッセージングアプリケーションは、前記第１のユーザと少なくとも１つの他のユーザとの間の通信を可能にするように構成されている、ステップと、
前記ユーザ要求に応答する動作が前記第１のユーザに関連するデータの共有を必要とすることをプログラムにより決定するステップと、
前記第１のコンピューティングデバイス上の前記メッセージングアプリケーションに許可インタフェースをレンダリングさせるステップであって、前記許可インタフェースは、前記第１のユーザが前記第１のユーザに関連するデータの共有を許可または禁止することを可能にする、ステップと、
前記第１のユーザに関連するデータの共有の許可を示す前記第１のユーザからのユーザ入力を受信すると、前記ユーザ要求に応答して前記第１のユーザに関連するデータにアクセスして、前記メッセージングアプリケーション内の前記第１のユーザに関連するデータを共有するステップと
を含む処理を前記１つまたは複数のプロセッサに実行させる、システム。
【請求項１６】
前記第１のユーザは人間のユーザであり、前記少なくとも１つの他のユーザは支援エージェントである、請求項１５に記載のシステム。
【請求項１７】
前記ユーザ要求を検出するステップは、支援エージェントにおいて、前記メッセージングアプリケーションにおいて受信された前記第１のユーザから前記支援エージェントへの１つまたは複数のメッセージを分析することを含む、請求項１６に記載のシステム。
【請求項１８】
前記第１のユーザは人間のユーザであり、前記少なくとも１つの他のユーザは、第２のコンピューティングデバイスに関連付けられた、前記第１のユーザとは異なる第２の人間のユーザを含み、前記許可インタフェースは、前記第１のユーザに関連付けられた前記第１のコンピューティングデバイス上の前記メッセージングアプリケーションにレンダリングされ、前記許可インタフェースは、前記第２の人間のユーザに関連付けられた前記第２のコンピューティングデバイス上には表示されない、請求項１５に記載のシステム。
【請求項１９】
前記第１のユーザは人間のユーザであり、前記少なくとも１つの他のユーザは、前記第１のユーザとは異なる第２の人間のユーザと、支援エージェントとを含み、前記ユーザ要求は、前記第１のユーザに関連付けられた前記第１のコンピューティングデバイスから受信され、前記処理は、前記ユーザ要求に応答して、前記メッセージングアプリケーションにおいて別個の会話を開始するステップをさらに含み、前記別個の会話は、前記第１のユーザおよび前記支援エージェントを中に入れ、かつ前記第２の人間のユーザを入らせない、請求項１５に記載のシステム。
【請求項２０】
前記第１のユーザおよび前記少なくとも１つの他のユーザのうちの少なくとも１つからの入力に基づいて、第１のメッセージングアプリケーションに１つまたは複数の提案を提供するステップをさらに含む、請求項１５に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
支援エージェント（すなわちボット）とのユーザインタラクション、特にボットの識別、メッセージングアプリケーションボットのためのユーザプライバシー管理、および／または以前のボット提案の呼び戻しに関する。
【背景技術】
【０００２】
ユーザは、メッセージングサービスを使用して、メッセージング会話、例えば、チャット、インスタントメッセージなどを行う。メッセージング会話は、コンピュータ、モバイルデバイス、ウェアラブルデバイスなどの任意のユーザデバイスを使用して行い得る。ユーザがメッセージングアプリケーションを使用してより多くの会話を行い、かつより多くのタスクを実行する場合、メッセージング会話またはタスクの自動支援（例えば、ボットやその他の自動化されたアシスタントアプリケーション）が効率を改善するのに役立ち得る。オートメーションはメッセージング通信をユーザにとってより効率的にするのに役立つものの、メッセージボットがユーザ情報にアクセスする時期および方法、およびメッセージボットが他のユーザとアクセスおよび／または共有することが許可されるユーザ情報がどれであるかに関するプライバシーおよび許可を管理する必要があり得る。
【０００３】
本明細書で提供される背景技術は、本開示の状況を一般的に提示することを目的とするものである。この背景技術の欄において記載される限りにおいて、現時点で明記されている本発明者らの取り組み、ならびにその他、出願時に先行技術としてみなされない態様の記載は、明示的にも黙示的にも、本開示に対する先行技術として認められない。
【発明の概要】
【０００４】
いくつかの実施形態は、コンピュータが実行する方法を含むことができる。その方法は、第１のユーザと少なくとも１つの他のユーザとの間の通信を可能にするために、前記第１のユーザに関連付けられた第１のコンピューティングデバイス上にメッセージングアプリケーションを提供するステップを含むことができる。前記方法はまた、前記メッセージングアプリケーションにおいてユーザ要求を検出するステップと、前記ユーザ要求に応答する動作が前記第１のユーザに関連するデータの共有を必要とすることをプログラムにより決定するステップとを含むことができる。前記方法は、前記第１のユーザが前記第１のユーザに関連するデータの共有を許可または禁止することを可能にする許可インタフェースを前記第１のコンピューティングデバイス上の前記メッセージングアプリケーションにレンダリングさせるステップと、前記第１のユーザに関連するデータの共有の許可を示す前記第１のユーザからのユーザ入力を受信すると、前記ユーザ要求に応答して前記第１のユーザに関連するデータにアクセスして、前記メッセージングアプリケーション内の前記第１のユーザに関連するデータを共有するステップとをさらに含むことができる。
【０００５】
いくつかの実施形態において、前記第１のユーザは人間のユーザであり、前記少なくとも１つの他のユーザは支援エージェントである。前記ユーザ要求を検出するステップは、前記支援エージェントが前記メッセージングアプリケーションで受信された１つまたは複数のメッセージを分析することを含むことができ、前記メッセージは前記第１のユーザから前記支援エージェントに送信される。前記１つまたは複数のメッセージは、テキストメッセージ、マルチメディアメッセージ、および前記支援エージェントへのコマンドのうちの１つまたは複数を含むことができる。
【０００６】
前記方法はまた、前記第１のユーザの１つまたは複数の動作に基づいて前記支援エージェントを自動的に起動するステップを含むことができる。前記支援エージェントは、特殊文字コマンド、前記支援エージェントに関連するユーザインタフェース呼び出し要素のユーザ選択、前記支援エージェントに対応するアバターのユーザ選択、および前記支援エージェントによって提供される自動返信提案のユーザ選択のうちの１つまたは複数に応答して起動することができる。
【０００７】
いくつかの実施形態において、前記第１のユーザは人間のユーザを含むことができ、前記少なくとも１つの他のユーザは、第２のコンピューティングデバイスに関連付けられた、前記第１のユーザとは異なる第２の人間のユーザを含むことができ、前記許可インタフェースは、前記第１のユーザに関連付けられた前記第１のコンピューティングデバイス上の前記メッセージングアプリケーションにレンダリングされることができ、前記許可インタフェースは、前記第２の人間のユーザに関連付けられた前記第２のコンピューティングデバイス上には表示されない。
【０００８】
前記第１のユーザは人間のユーザを含むことができ、前記少なくとも１つの他のユーザは、前記第１のユーザとは異なる第２の人間のユーザと、支援エージェントとを含むことができ、前記ユーザ要求は、前記第１のユーザに関連付けられた第１のコンピューティングデバイスから受信される。前記方法は、前記ユーザ要求に応答して、前記メッセージングアプリケーションにおいて別個の会話を開始するステップをさらに含み、前記別個の会話は、前記第１のユーザおよび前記支援エージェントを中にいれ、かつ前記第２の人間のユーザを入らせない。
【０００９】
前記方法は、前記第１のユーザと前記少なくとも１つの他のユーザのうちの少なくとも１つからの入力に基づいて前記第１のメッセージングアプリケーションに１つまたは複数の提案を提供するステップをさらに含むことができる。方法は、メッセージングアプリケーションに１つまたは複数の提案を表示させるステップをさらに含むことができる。前記１つまたは複数の提案は、前記第１のユーザによって選択されると、対応する提案の詳細を表示させる提案要素としてレンダリングされることができる。
【００１０】
いくつかの実施形態は、メッセージングアプリケーションにおいて、以前に表示された確認応答メッセージの選択に対応するユーザ入力を支援エージェントから検出するステップを含む、コンピュータが実行する方法を含むことができ、前記以前に表示された確認応答メッセージは、１つまたは複数の以前に表示された提案された自動返信応答に関連付けられている。前記方法はまた、前記以前に表示された提案された自動返信応答を表示させるステップと、前記１つまたは複数の以前に表示された提案された自動返信応答のうちの任意の１つがユーザにより選択されたという指示を受信するステップとを含むことができる。前記方法はさらに、前記１つまたは複数の以前に表示された提案された自動返信応答のうちの任意の１つを前記支援エージェントおよび前記メッセージングアプリケーション内の会話に参加する第２のユーザに送信するステップをさらに含むことができる。
【００１１】
前記方法はまた、前記ユーザ入力に応答して前記支援エージェントを起動するステップを含むことができる。いくつかの実施形態において、前記会話は、ユーザと少なくとも１つの他のユーザとを含むことができ、前記ユーザは第１の人間のユーザであり、前記少なくとも１つの他のユーザは、前記第１の人間のユーザとは異なる第２の人間のユーザを含み、前記第１の人間のユーザは、第１のコンピューティングデバイスと関連付けられており、前記第２の人間のユーザは、第２のコンピューティングデバイスと関連付けられており、前記以前に表示されたメッセージ及び前記１つまたは複数の提案された自動返信応答は、前記第１の人間のユーザに関連付けられた前記第１のコンピューティングデバイス上の前記メッセージングアプリケーションにおいて最初にレンダリングされ、前記支援エージェントおよび前記メッセージングアプリケーション内の会話のうちの１つまたは複数に前記１つまたは複数の提案された自動返信応答を提供するステップは、前記メッセージングアプリケーションにおいて前記１つまたは複数の提案された自動返信応答を提供することを含む。
【００１２】
いくつかの実施形態は、非一時的なコンピュータ可読媒体に接続された１つまたは複数のハードウェアプロセッサを備えるシステムを含むことができ、前記非一時的なコンピュータ可読媒体はそれに格納されたソフトウェア命令を含み、前記ソフトウェア命令は、１つまたは複数のプロセッサにより実行されたときに１つまたは複数のプロセッサに処理を実行させる。前記処理は、第１のユーザに関連付けられた第１のコンピューティングデバイス上のメッセージングアプリケーションからユーザ要求を受信するステップを含むことができ、前記メッセージングアプリケーションは、前記第１のユーザと少なくとも１つの他のユーザとの間の通信を可能にするように構成され、また、前記ユーザ要求に応答する動作が前記第１のユーザに関連するデータの共有を必要とすることをプログラムにより決定するステップを含むことができる。前記処理はまた、前記第１のコンピューティングデバイス上の前記メッセージングアプリケーションに許可インタフェースをレンダリングさせるステップを含むことができ、前記許可インタフェースは、前記第１のユーザが前記第１のユーザに関連するデータの共有を許可または禁止することを可能にし、また、前記第１のユーザに関連するデータの共有の許可を示す前記第１のユーザからのユーザ入力を受信すると、前記ユーザ要求に応答して前記第１のユーザに関連するデータにアクセスして、前記メッセージングアプリケーション内の前記第１のユーザに関連するデータを共有するステップを含むことができる。
【００１３】
いくつかの実施形態において、前記第１のユーザは人間のユーザを含むことができ、前記少なくとも１つの他のユーザは支援エージェントを含むことができる。前記ユーザ要求を検出するステップは、支援エージェントにおいて、前記メッセージングアプリケーションにおいて受信された前記第１のユーザから前記支援エージェントへの１つまたは複数のメッセージを分析することを含むことができる。前記第１のユーザは人間のユーザを含むことができ、前記少なくとも１つの他のユーザは、第２のコンピューティングデバイスに関連付けされた、前記第１のユーザとは異なる第２の人間のユーザを含むことができ、前記許可インタフェースは、前記第１のユーザに関連付けられた前記第１のコンピューティングデバイス上の前記メッセージングアプリケーションにレンダリングされ、前記許可インタフェースは、前記第２の人間のユーザに関連付けられた前記第２のコンピューティングデバイス上には表示されない。
【００１４】
いくつかの実施形態において、前記第１のユーザは人間のユーザを含むことができ、前記少なくとも１つの他のユーザは、前記第１のユーザとは異なる第２の人間のユーザと、支援エージェントとを含むことができ、前記ユーザ要求は、前記第１のユーザに関連付けられた前記第１のコンピューティングデバイスから受信され、前記処理は、前記ユーザ要求に応答して、前記メッセージングアプリケーションにおいて別個の会話を開始するステップをさらに含み、前記別個の会話は、前記第１のユーザおよび前記支援エージェントを中に入れ、かつ前記第２の人間のユーザを入らせない。
【００１５】
前記処理は、前記第１のユーザおよび前記少なくとも１つの他のユーザのうちの少なくとも１つからの入力に基づいて、前記第１のメッセージングアプリケーションに１つまたは複数の提案を提供するステップをさらに含むことができる。
【図面の簡単な説明】
【００１６】
【図１】いくつかの実施形態による、ユーザとボットとの間でメッセージを交換し得る例示的な環境のブロック図を示す。
【図２】いくつかの実施形態による、例示的なボット起動イベントを示す図である。
【図３】いくつかの実施形態による、ボット起動の例示的な方法を示すフロー図である。
【図４】いくつかの実施形態による、例示的なボット識別および起動要素を示すユーザインタフェースの図である。
【図５】いくつかの実施形態による、ボットインタラクション中にユーザのプライバシーを管理する例示的な方法のフロー図である。
【図６】いくつかの実施形態による、ボットインタラクション中にユーザのプライバシーを管理するための例示的なユーザインタフェースの図である。
【図７】いくつかの実施形態による、以前のボット提案を呼び戻す例示的な方法のフロー図である。
【図８】いくつかの実施例による、以前のボット提案の呼び戻しプロセスの一例を示す例示的なユーザインタフェースの図である。
【図９】いくつかの実施例による、以前のボット提案の呼び戻しプロセスの一例を示す例示的なユーザインタフェースの図である。
【図１０】いくつかの実施例による、以前のボット提案の呼び戻しプロセスの一例を示す例示的なユーザインタフェースの図である。
【図１１】いくつかの実施例による、以前のボット提案の呼び戻しプロセスの一例を示す例示的なユーザインタフェースの図である。
【図１２】いくつかの実施例による、以前のボット提案の呼び戻しプロセスの一例を示す例示的なユーザインタフェースの図である。
【図１３】いくつかの実施形態による、許可を管理するための例示的なプロセスを示すフロー図である。
【図１４】いくつかの実施形態による、任意のボットタイプについてテーマ化された例示的なユーザインタフェースを示す図である。
【図１５】いくつかの実施形態による、任意のボットタイプについてテーマ化された例示的なユーザインタフェースを示す図である。
【図１６】いくつかの実施形態による、ボットインタラクションのために構成された例示的なコンピューティングデバイスの図である。
【発明を実施するための形態】
【００１７】
本明細書に記載される１つまたは複数の実施形態は、一般に、支援エージェント（すなわちボット）とのユーザインタラクション、特にボットの識別、メッセージングアプリケーションボットのためのユーザプライバシー管理、および／または以前のボット提案の呼び戻しに関する。
【００１８】
図１は、いくつかの実施形態においてボットなどの自動支援エージェントを可能にし、また、いくつかの実施形態において自動支援エージェントを提供するメッセージングサービスを提供するための例示的な環境１００のブロック図を示す。例示的な環境１００は、メッセージングサーバ１０１、１つまたは複数のクライアントデバイス１１５ａ、１１５ｎ、サーバ１３５、およびネットワーク１４０を含む。ユーザ１２５ａ−１２５ｎは、個々のクライアントデバイス１１５ａ、１１５ｎに関連付けられ得る。サーバ１３５は、例えば、メッセージングサービスを提供するパーティとは異なるパーティによって制御されるサードパーティのサーバであり得る。様々な実施形態において、サーバ１３５は、以下でさらに詳細に説明するように、ボットサービスを実施し得る。いくつかの実施形態において、環境１００は、図１に示される１つまたは複数のサーバまたはデバイスを含んでいなくてもよく、また図１に示されていない他のサーバまたはデバイスを含み得る。図１および残りの図面において、参照番号の後の文字、例えば「１１５ａ」は、その特定の参照番号を有する要素への参照を表す。後続の文字を含まないテキスト中の参照番号、例えば「１１５」は、その参照番号を有する要素の実施形態に対する一般的な参照を表す。
【００１９】
図示された実施形態において、メッセージングサーバ１０１、クライアントデバイス１１５、およびサーバ１３５は、ネットワーク１４０を介して通信可能に接続されている。様々な実施形態において、ネットワーク１４０は、従来のタイプの有線または無線であってもよく、かつスター構成、トークンリング構成または他の構成を含み得る。さらに、ネットワーク１４０は、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）（例えば、インターネット）、および／または複数のデバイスが通信し得る他の相互接続されたデータパスを含み得る。いくつかの実施形態において、ネットワーク１４０はピアツーピアネットワークであり得る。ネットワーク１４０はまた、様々な異なる通信プロトコルでデータを送信するための電気通信ネットワークの一部に結合されるか、またはそれを含み得る。いくつかの実施形態において、ネットワーク１４０は、ショートメッセージングサービス（ＳＭＳ）、マルチメディアメッセージングサービス（ＭＭＳ）、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、直接データ接続、電子メール他を介することを含んでデータを送受信するためのＢｌｕｅｔｏｏｔｈ（登録商標）通信ネットワーク、Ｗｉ−Ｆｉ（登録商標）、またはセルラー通信ネットワークを含む。図１は、クライアントデバイス１１５、メッセージングサーバ１０１、およびサーバ１３５に結合された１つのネットワーク１４０を示しているが、実際には、１つまたは複数のネットワーク１４０をこれらのエンティティに結合し得る。
【００２０】
メッセージングサーバ１０１は、プロセッサ、メモリ、およびネットワーク通信能力を含み得る。いくつかの実施形態において、メッセージングサーバ１０１はハードウェアサーバである。いくつかの実施形態において、メッセージングサーバ１０１は、仮想化された環境に組み込まれてもよい。例えば、メッセージングサーバ１０１は、１つまたは複数の他の仮想マシンを含み得るハードウェアサーバ上で実行される仮想マシンであり得る。メッセージングサーバ１０１は、信号線１０２を介してネットワーク１４０に通信可能に接続される。信号線１０２は、イーサネット（登録商標）、同軸ケーブル、光ファイバケーブルなどの有線接続、またはＷｉ−Ｆｉ、Ｂｌｕｅｔｏｏｔｈ、または他の無線技術等の無線接続であり得る。いくつかの実施形態において、メッセージングサーバ１０１は、ネットワーク１４０を介してクライアントデバイス１１５ａ−１１５ｎ、サーバ１３５、およびボット１１３のうちの１つまたは複数との間でデータを送受信する。いくつかの実施形態において、メッセージングサーバ１０１は、クライアント機能を提供してユーザ（例えば、ユーザ１２５のいずれか）が他のユーザおよび／またはボットとメッセージを交換することを可能にするメッセージングアプリケーション１０３ａを含み得る。メッセージングアプリケーション１０３ａは、サーバアプリケーション、クライアント−サーバアプリケーションのサーバモジュール、または分散アプリケーション（例えば、１つまたは複数のクライアントデバイス１１５上の対応するクライアントメッセージングアプリケーション１０３ｂを有する）であり得る。
【００２１】
メッセージングサーバ１０１は、また、メッセージングサーバ１０１を介して交換されるメッセージ、１つまたは複数のボットのデータおよび／または構成、および１人または複数人のユーザ１２５に関連するユーザデータを格納し得るデータベース１９９を含み得、全てが、そのようなデータを格納するための個々のユーザからの明確な許可の上で行われる。いくつかの実施形態において、メッセージングサーバ１０１は、ボット１０７ａおよび１１１などの１つまたは複数の支援エージェントを含み得る。他の実施形態では、支援エージェントは、メッセージングサーバ１０１ではなく、クライアントデバイス１１５ａ−１１５ｎ上で実施され得る。
【００２２】
メッセージングアプリケーション１０３ａは、ユーザ１２５および１つまたは複数のボット１０５，１０７ａ、１０７ｂ、１０９ａ、１０９ｂ、１１１および１１３との間でメッセージの交換を可能にするためにプロセッサによって動作可能なコードおよびルーチンであり得る。いくつかの実施形態において、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）または特定用途向け集積回路（ＡＳＩＣ）を含むハードウェアを使用して実施し得る。いくつかの実施形態において、メッセージングアプリケーション１０３ａは、ハードウェアとソフトウェアの組み合わせを使用して実施し得る。
【００２３】
いくつかの実施形態において、クライアントデバイス１１５に関連付けられた個々のユーザがメッセージの格納に対する同意を提供する場合、データベース１９９は、１つまたは複数のクライアントデバイス１１５間で交換されるメッセージを格納し得る。いくつかの実施形態において、クライアントデバイスに関連する個々のユーザがメッセージの記憶に対する同意を提供する場合、データベース１９９は、１つまたは複数のクライアントデバイス１１５と、たとえば別のクライアントデバイス、メッセージングサーバ１０１、およびサーバ１３５などの異なるデバイス上で実施される１つまたは複数のボットとの間で交換されるメッセージを格納し得る。１人または複数人のユーザが同意を提供しない場合、それらのユーザによって送受信されたメッセージは格納されない。
【００２４】
いくつかの実施形態において、メッセージを暗号化して、例えば、メッセージの送信者および受信者のみが暗号化されたメッセージを見ることができるようにしてもよい。いくつかの実施形態において、メッセージが格納される。いくつかの実施形態において、データベース１９９は、ボット１０７ａ、ボット１１１などの１つまたは複数のボットのデータおよび／または構成をさらに格納し得る。いくつかの実施形態において、ユーザ１２５がユーザデータ（ソーシャルネットワークデータ、連絡先情報、画像など）の格納に対する同意を提供する場合、データベース１９９はまた、そのような同意を提供した個々のユーザ１２５に関連するユーザデータを格納し得る。
【００２５】
いくつかの実施形態において、メッセージングアプリケーション１０３ａ／１０３ｂは、ユーザ１２５が新たなボットを作成することを可能にするユーザインタフェースを提供し得る。これらの実施形態では、メッセージングアプリケーション１０３ａ／１０３ｂは、ユーザ作成のボットをメッセージングアプリケーション１０３ａ／１０３ｂのユーザ間の会話に含むようにすることを可能にする機能を含み得る。
【００２６】
クライアントデバイス１１５は、メモリとハードウェアプロセッサとを含むコンピューティングデバイス、例えば、カメラ、ラップトップコンピュータ、タブレットコンピュータ、携帯電話、ウェアラブルデバイス、モバイル電子メールデバイス、携帯ゲームプレーヤ、携帯音楽プレーヤ、リーダデバイス、ヘッドマウントディスプレイ、またはネットワーク１４０に無線でアクセス可能な他の電子デバイスであり得る。
【００２７】
図示された実施形態において、クライアントデバイス１１５ａは、信号線１０８を介してネットワーク１４０に接続され、クライアントデバイス１１５ｎは、信号線１１０を介してネットワーク１４０に接続される。信号線１０８および１１０は、有線接続（例えば、イーサネット（登録商標））、またはＷｉ−Ｆｉ、Ｂｌｕｅｔｏｏｔｈ、または他の無線技術などの無線接続であり得る。クライアントデバイス１１５ａ、１１５ｎは、それぞれユーザ１２５ａ、１２５ｎによってアクセスされる。図１におけるクライアントデバイス１１５ａ、１１５ｎは、例として使用される。図１は、２つのクライアントデバイス１１５ａおよび１１５ｎを示しているが、本開示は、１つまたは複数のクライアントデバイス１１５を有するシステムアーキテクチャに適用される。
【００２８】
いくつかの実施形態において、クライアントデバイス１１５は、ユーザ１２５が装着するウェアラブルデバイスであってもよい。例えば、クライアントデバイス１１５は、クリップ（例えば、リストバンド）の一部、宝飾品の一部、または眼鏡の一部として含まれるようにしてもよい。別の例では、クライアントデバイス１１５は、スマートウォッチとすることができる。様々な実施形態において、ユーザ１２５は、デバイスのディスプレイ上のメッセージングアプリケーション１０３ａ／１０３ｂからのメッセージを確認し、デバイスのスピーカまたは他の出力デバイスなどを介してメッセージにアクセスするようにしてもよい。例えば、ユーザ１２５は、スマートウォッチまたはスマートリストバンドのディスプレイ上のメッセージを確認し得る。別の例では、ユーザ１２５は、クライアントデバイス１１５、クライアントデバイス１１５のスピーカ、クライアントデバイス１１５の触覚フィードバック要素などに接続されるか、それらの一部に接続されたヘッドフォン（図示せず）を介してメッセージにアクセスし得る。
【００２９】
いくつかの実施形態において、メッセージングアプリケーション１０３ｂは、クライアントデバイス１１５ａに格納される。いくつかの実施形態において、メッセージングアプリケーション１０３ｂ（例えば、シンクライアントアプリケーション、クライアントモジュールなど）は、クライアントデバイス１１５ａ上に格納されたクライアントアプリケーションであり得、対応するメッセージングアプリケーション１０３ａ（例えば、サーバアプリケーション、サーバモジュールなど）はメッセージングサーバ１０１上に格納されている。例えば、メッセージングアプリケーション１０３ｂは、クライアントデバイス１１５ａ上のユーザ１２５ａによって作成されたメッセージを、メッセージングサーバ１０１上に格納されたメッセージングアプリケーション１０３ａに送信し得る。
【００３０】
いくつかの実施形態において、メッセージングアプリケーション１０３ａは、メッセージングサーバ１０１上に格納されたスタンドアロンアプリケーションであり得る。ユーザ１２５ａは、クライアントデバイス１１５ａ上のブラウザまたは他のソフトウェアを使用してウェブページを介してメッセージングアプリケーション１０３ａにアクセスし得る。いくつかの実施形態において、クライアントデバイス１１５ａ上で実施されるメッセージングアプリケーション１０３ｂは、メッセージングサーバ１０１に含まれるモジュールと同じか、または同様のモジュールを含み得る。いくつかの実施形態において、メッセージングアプリケーション１０３ｂは、スタンドアロンクライアントアプリケーションとして、例えば、１つまたは複数のクライアントデバイス１１５が他のクライアントデバイス１１５とのメッセージ交換を可能にする機能を含むピアツーピアまたは他の構成で、実施されてもよい。これらの実施形態では、メッセージングサーバ１０１は、制限されたメッセージング機能を含むか、またはメッセージング機能を含まない（例えば、クライアント認証、バックアップ等）。いくつかの実施形態において、メッセージングサーバ１０１は、１つまたは複数のボット、たとえばボット１０７ａおよびボット１１１を実施し得る。
【００３１】
サーバ１３５は、プロセッサ、メモリ、およびネットワーク通信能力を含み得る。いくつかの実施形態において、サーバ１３５はハードウェアサーバである。サーバ１３５は、信号線１２８を介してネットワーク１４０に通信可能に接続される。信号線１２８は、イーサネット、同軸ケーブル、光ファイバケーブルなどの有線接続、またはＷｉ−Ｆｉ、Ｂｌｕｅｔｏｏｔｈ、または他の無線技術などの無線接続であり得る。いくつかの実施形態において、サーバ１３５は、ネットワーク１４０を介して１つまたは複数のメッセージングサーバ１０１およびクライアントデバイス１１５との間でデータを送受信する。サーバ１３５は１つのサーバとして示されているが、様々な実施形態が１つまたは複数のサーバ１３５を含み得る。サーバ１３５は、サーバアプリケーションまたはサーバモジュール、例えばボット１０９ａおよびボット１１３として１つまたは複数のボットを実施し得る。
【００３２】
様々な実施形態において、サーバ１３５は、メッセージングサーバ１０１を管理するのと同じエンティティ、例えばメッセージングサービスのプロバイダの一部であり得る。いくつかの実施形態において、サーバ１３５は、例えば、メッセージングアプリケーション１０３ａ／１０３ｂを提供するエンティティとは異なるエンティティによって制御されるサードパーティのサーバであり得る。いくつかの実施形態において、サーバ１３５はボットを提供またはホストする。
【００３３】
ボットは、１つまたは複数のコンピュータ上で実施され、ユーザが例えばメッセージングアプリケーション１０３ａ／１０３ｂによりテキストを主に介してインタラクションする自動化されたサービスである。ボットは、ボットが様々なメッセージングアプリケーションのユーザとインタラクションできるようにボットプロバイダによって実施され得る。いくつかの実施形態において、メッセージングアプリケーション１０３ａ／１０３ｂのプロバイダは、１つまたは複数のボットも提供し得る。いくつかの実施形態において、メッセージングアプリケーション１０３ａ／１０３ｂのプロバイダによって提供されるボットは、ボットを、例えば他のプロバイダによって提供される他のメッセージングアプリケーションに含むようにすることができるように構成され得る。ボットは、他のモードよりもいくつかの利点がある。例えば、ボットは、クライアントデバイスにアプリケーションをインストールすることなく、またはウェブサイトにアクセスすることなく、ユーザが新たなサービス（例えば、タクシー予約サービス、レストラン予約サービスなど）を試みることを可能にし得る。さらに、ウェブサイト、ソフトウェアアプリケーション、例えば、インタラクション型音声応答（ＩＶＲ：interactive voice response）サービスに対する電話コール、またはサービスとインタラクションする他の方法を使用するのに必要とされるものと比較して、最小限の学習を必要とするか、または学習無しで、ユーザはテキストを介してボットとインタラクションし得る。メッセージングサービスまたはアプリケーション内にボットを組み込むことによって、ユーザは、他のユーザと共同して、メッセージングサービス内での旅行計画、買い物、イベントのスケジューリング、情報取得などの様々なタスクを達成し、かつタスクを達成するための様々なアプリケーション（例えば、タクシー予約アプリケーション、レストラン予約アプリケーション、カレンダーアプリケーションなど）間またはウェブサイト間の切り替えなどの面倒な操作を排除することができるようにし得る。
【００３４】
ボットは、メッセージングアプリケーション１０３ａ／１０３ｂを介して１人または複数のユーザ（例えば、ユーザ１２５ａ−ｎのいずれか）とインタラクションして、情報を提供するか、またはメッセージングアプリケーション１０３内で特定の動作を実行するコンピュータプログラムまたはアプリケーション（例えば、ソフトウェアアプリケーション）として実施され得る。一例として、情報検索ボットは、インターネット上の情報を検索し、最も関連性の高い検索結果をメッセージングアプリケーション内に提示し得る。別の例として、トラベルボットは、例えば、メッセージングアプリケーション内の旅行およびホテルチケットの購入を可能にすること、メッセージングアプリケーション内でホテル予約を行うこと、メッセージング内でレンタカー予約を行うこと、およびその他によって、メッセージングアプリケーション１０３を介して旅行手配を行う能力を有し得る。別の例として、タクシーボットは、別途タクシー予約アプリを起動するか、またはコールすることなく、例えば、ユーザの位置（ユーザ１２５が位置情報へのアクセスを許可したときに、クライアントデバイス１１５からタクシーボットによって取得される）に対してタクシーを呼び出す能力を有し得る。別の例として、コーチ／チューターボットは、ユーザを個人指導して、例えば、試験に出題される可能性のある問題を質問し、ユーザの回答が正しいか、または誤りであるかどうかについてのフィードバックを提供することによって、メッセージングアプリケーション内でいくつかの主題においてユーザを教育し得る。別の例として、ゲームボットは、メッセージングアプリケーション内のユーザと反対側または同じ側でゲームをプレイし得る。別の例として、商用ボットは、例えば、業者のカタログから製品情報を取得してメッセージングアプリケーションを介して購入を可能にすることによって、特定の業者からのサービスを提供し得る。別の例として、インタフェースボットは、メッセージングアプリケーションのユーザが遠隔デバイスまたは車両とチャットし、情報を取得し、および／または命令を提供できるように、遠隔デバイスまたは車両にインタフェースし得る。
【００３５】
ボットの能力は、ユーザの意図を理解し、それを実行することを含み得る。ユーザの会話およびユーザの状況を分析し理解することによって、ユーザの意図を理解し得る。ボットはまた、経時的に展開する会話に基づいて、会話の変化する状況または変化する感情および／またはユーザの意図を理解し得る。例えば、ユーザＡがコーヒーミーティングを提案しているが、ユーザＢがコーヒーを好きではないと言った場合、ボットは、ユーザＢに対してコーヒーについて否定的な感情スコアを割り当て、かつミーティングに関してコーヒーショップを提案しない。
【００３６】
メッセージングアプリケーション１０３ａ／１０３ｂのユーザと通信することができるボットを実施することによって、多くの利点が提供され得る。従来、ユーザは、ソフトウェアアプリケーションまたはウェブサイトを利用して、請求書の支払い、料理の注文、チケットの予約などの活動を行うことができる。そのような実施の問題は、複数の活動を行うために、ユーザが複数のソフトウェアアプリケーションおよびウェブサイトをインストールまたは使用する必要があることである。例えば、ユーザは、公共料金請求書（例えば、公益会社から）を支払ったり、映画チケット（例えば、発券サービスプロバイダからのチケット予約アプリケーション）を購入したり、（例えば、個々のレストランから）レストランの予約をしたりするための異なるソフトウェアアプリケーションをインストールするか、または各活動のために個々のウェブサイトを訪問する必要があり得る。このような実施の別の問題は、ユーザが複雑なユーザインタフェース、例えばウィンドウ、ボタン、チェックボックス、ダイアログボックスなどの複数のユーザインタフェース要素を使用して実施されるユーザインタフェースを習得する必要があり得ることである。
【００３７】
したがって、１つまたは複数の説明した実施形態の利点は、単一のアプリケーションが、別個のウェブサイトにアクセスすること、またはソフトウェアアプリケーションをインストールおよび実行する必要なく、任意の数のパーティとのインタラクションを含む活動をユーザが実行できることであり、このことは、クライアントデバイス上のメモリ、ストレージ、および処理リソースの消費を低減するという技術的効果がある。説明した実施形態の利点は、会話型インタフェースが、例えば、複雑なユーザインタフェースを習得する必要なしに、ユーザがそのような活動を完了するのをより容易かつ迅速にし、このことは、計算資源の消費を低減するという技術的効果がある。説明した実施形態の別の利点は、ボットを実施することにより、様々な参加エンティティがより低コストでユーザインタラクションを提供することが可能になり、１つまたは複数の通信サーバを使用して実施される料金不要の電話番号サービス、１つまたは複数のウェブサーバ上でホストされるウェブサイト、電子メールサーバ上でホストされる顧客サポート電子メールなどのユーザインタラクションを可能にするために配備される計算資源の必要性を低減するという技術的効果がある。記載した特徴の別の技術的効果は、通信ネットワークを介してユーザタスクを完了するために必要なシステム処理リソースおよび送信リソースの消費という問題を軽減するということである。
【００３８】
本明細書の特定の例は、ボットと１人または複数人のユーザとの間のインタラクション、ボットとユーザ１２５との間の１対１のインタラクション、ボットと２人以上のユーザとの間の１対多のインタラクション（例えば、グループメッセージング会話）、複数のボットと１人のユーザとの間の多対１のインタラクション、複数のボットと複数のユーザとの間の多対多のインタラクションなどの様々なタイプのインタラクションが可能である。さらに、いくつかの実施形態において、ボットは、メッセージングアプリケーション１０３を介して、ボット間の直接通信を介して、またはこれらの組み合わせを介して他のボット（例えば、ボット１０７ａ／１０７ｂ、１０９ａ／１０９ｂ、１１１、１１３など）とインタラクションするようにも構成され得る。例えば、レストラン予約ボットは、テーブルを予約するために特定のレストラン用のボットとインタラクションすることができる。
【００３９】
特定の実施形態では、ボットは、会話型インタフェースを使用して自然言語を使用してユーザと会話形式でインタラクションし得る。特定の実施形態では、ボットはテンプレートベースのフォーマットを使用して、例えば、レストランの住所の要求に応答して、「レストランＲの場所はＬ」のようなテンプレートを使用してユーザとインタラクションするための文章を作成し得る。場合によっては、ユーザがボットインタラクションフォーマットを選択すること、例えばボットが自然言語を使用してユーザとインタラクションするものであるかどうか、ボットがテンプレートベースのインタラクションを使用するものであるかどうかなどを選択することが可能であり得る。
【００４０】
ボットが自然言語を使用して会話形式でインタラクションする場合、ボットのインタラクションの内容および／またはスタイルは、自然言語処理を使用して決定された会話の内容、ユーザの会話における独自性、および１つまたは複数の会話の状況（例えば、ユーザのインタラクション上の履歴情報、ソーシャルグラフに基づく会話におけるユーザ間の接続）、外部条件（例えば、天気、交通）、ユーザのスケジュール、ユーザに関連付けられた関連する状況などのうちの１つまたは複数に基づいて動的に変化し得る。このような場合、ボットのインタラクションの内容とスタイルは、会話に参加しているユーザが同意を提供している要因のみに基づいて変化する。
【００４１】
一例として、会話のユーザが公式言語（例えば、スラング用語または絵文字がないか、または最小のスラング用語または絵文字）を使用していると判定された場合、ボットはまた、公式言語を使用してその会話内でインタラクションし得、逆も可能である。別の例として、会話中のユーザが、（現在および／または過去の会話に基づいて）絵文字のヘビーユーザであると判定された場合、ボットは、１つまたは複数の絵文字を使用してそのユーザとインタラクションし得る。別の例として、会話中の２人のユーザがソーシャルグラフ内で遠隔的に接続されていると判定された場合（例えば２人が友人の友人の友人であることを示す、２人の間に２つ以上の中間ノードを例えば有する場合）ボットは、その会話においてより公式な言語を使用し得る。会話に参加しているユーザが、ボットがユーザのソーシャルグラフ、スケジュール、場所、またはユーザに関連する他の状況などの要因を利用することに対する同意を提供していない場合、ボットのインタラクションの内容およびスタイルは、そのような要因の利用を必要としないデフォルトのスタイル、例えばニュートラルスタイルなどであり得る。
【００４２】
さらに、いくつかの実施形態において、１つまたは複数のボットが、ユーザとの前後の会話に参加する機能を含み得る。例えば、「＠ムービーボット（moviebot）、映画を推薦してもらえますか？」と入力することによりユーザが映画についての情報を要求する場合、ボット「ムービーボット」は、「あなたはコメディが良いですか？」と応答し得る。続いて、ユーザが例えば、「いいえ」と返事をすると、ボットが「分かりました。「スペースアンドスターズ」というタイトルのＳＦ映画が大評判です。チケットを予約する必要がありますか？」と応答し得る。続いて、ユーザは、「はい、午後６時以降に行くことができます。スティーブが参加できるかどうか確認してください。」と指示し得る。ユーザの連絡先に関する情報にボットがアクセスすることに対する同意、およびボットからのメッセージの受信することに対するスティーブの同意の上で、ボットはユーザの友人のスティーブにメッセージを送信し、適切な時間に映画のチケットを予約する動作を実行し得る。
【００４３】
特定の実施形態において、会話に参加するユーザは、例えば、ボット名またはボットハンドル（例えば、タクシー、＠タクシーボット（taxibot）、＠ムービーズ（movies）など）をタイプすることによって、特定のボットまたは特定のタスクを実行するボットを、音声コマンド（例えば、「バンクボット（bankbot）の呼び出し」など）を使用することにより、ユーザインタフェース要素（例えば、ボタンまたはボット名またはボットハンドルでラベル付けされた他の要素）のアクティブ化などによって、起動することが可能であり得る。ボットが呼び出されると、ユーザ１２５は、メッセージを他のユーザ１２５に送信するのと同様の方法で、メッセージングアプリケーション１０３ａ／１０３ｂを介してボットに送信し得る。例えば、タクシーを配車するために、ユーザは、「＠タクシーボット、タクシーを呼んで」とタイプし得、ホテル予約をするために、ユーザは「＠ホテルボット（hotelbot）、近くの中華料理のレストランで４人分のテーブルを予約して」とタイプし得る。
【００４４】
特定の実施形態において、ボットは、特に呼び出されることなく、メッセージング会話内で情報または動作を自動的に提案し得る。即ち、ユーザはボットを特に起動する必要がないことがあり得る。これらの実施形態において、ボットは、会話の継続的な、または別個の時点での分析および理解に依存し得る。会話の分析は、特定のユーザのニーズを理解し、かつボットによって支援が提案されるべき時期を特定するために使用され得る。一例として、ユーザが情報を必要とすると判定した場合（例えば、ユーザが別のユーザに質問をすることに基づいて、複数のユーザがある情報を有してないことを示していることに基づいて）、ボットは、ある情報を検索し、回答を提案し得る。別の例として、複数のユーザが中華料理を食べることに興味を示していると判定された場合、ボットは、ユーザの近くの一組の中華料理のレストランを、場所、評価、およびレストランのウェブサイトのリンクなどの追加情報を含んで自動的に提案し得る。
【００４５】
特定の実施形態では、ボットを自動的に起動するか、またはユーザがボットを明確に起動するのを待つのではなく、１つまたは複数のボットを起動するためにメッセージング会話の１人または複数人のユーザに自動提案を行うようにしてもよい。これらの実施形態において、会話は、継続的にまたは別々の時点で分析されてもよく、会話の分析は、特定のユーザのニーズを理解し、かつ会話内でボットが提案すべき時期を識別するために使用され得る。
【００４６】
ボットが特に呼び出されることなくメッセージング会話内で情報または動作を自動的に提案する実施形態では、例えば、メッセージング会話に参加する１人または複数のユーザが、ユーザの会話の分析を実行中のボットに同意を提供しない場合、このような機能は無効にされる。さらに、そのような機能は、ユーザの入力に基づいて一時的に無効にされ得る。例えば、会話がプライベートまたは機密であることをユーザが示している場合、ユーザがボットを起動するための入力を提供するまで、会話の状況の分析は中断される。さらに、分析機能が無効にされている標示は、会話の参加者に、例えばユーザインタフェース要素を用いて提供され得る。
【００４７】
様々な実施形態において、ボットは、様々な構成で実施され得る。例えば、図１に示すように、ボット１０５は、クライアントデバイス１１５ａ上で実施される。この例では、ボットは、クライアントデバイス１１５ａに対してローカルなソフトウェアアプリケーション内のモジュールであり得る。例えば、ユーザがタクシー配車アプリケーションをクライアントデバイス１１５ａ上にインストールした場合、ボット機能は、タクシー配車アプリケーションにおけるモジュールとして組み込まれ得る。この例では、ユーザは、例えば、「＠タクシーボット、タクシーを呼んで」というメッセージを送信することによってタクシーボットを呼び出し得る。メッセージングアプリケーション１０３ｂは、タクシー配車アプリケーションにおけるボットモジュールを自動的に起動させる。このようにして、ユーザがメッセージングアプリケーション１０３を介してボットと会話することができるように、ボットは、クライアントデバイス上でローカルに実施され得る。
【００４８】
図１に示す別の例では、ボット１０７ａがクライアントデバイス１１５ａで実施されるように示され、ボット１０７ｂがメッセージングサーバ１０１上で実施されるように示されている。この例において、ボットは、例えば、ボット機能の一部がボット１０７ａ（サーバモジュール）およびボット１０７ｂ（クライアントモジュール）の各々によって提供されるクライアント−サーバコンピュータプログラムとして実施され得る。例えば、ボットがハンドル＠カレンダーを有するスケジューリングボットである場合、ユーザ１１５ａは、「＠カレンダー、夕方に洗濯物を取り込むことを通知して」とタイプすることにより、リマインダーをスケジューリングし得、このタイプはボット１０７ｂ（クライアントモジュール）によって処理され得る。この例を続けると、ユーザ１１５ａがボットに「ジムが４時に会えるか確認して」と伝えると、ボット１０７ａ（サーバモジュール）は、ユーザのジム（または、ジムのスケジューリングボット）とコンタクトをとってメッセージを交換して、ユーザ１１５ａに応答を提供し得る。
【００４９】
別の例では、ボット１０９ａ（サーバモジュール）がサーバ１３５上で実施され、ボット１０９ｂ（クライアントモジュール）がクライアントデバイス１１５上で実施される。この例において、ボット機能は、クライアントデバイス１１５およびメッセージングサーバ１０１とは別のサーバ１３５上で実施されるモジュールによって提供される。いくつかの実施形態において、ボットは、例えば、複数のクライアントデバイスおよびサーバ（例えば、クライアントデバイス１１５、サーバ１３５、メッセージングサーバ１０１など）にわたって分散されたモジュールを有する分散アプリケーションとして実施されてもよい。いくつかの実施形態において、ボットは、サーバアプリケーション（例えばメッセージングサーバ１０１上で実施されるボット１１１、およびサーバ１３５上で実施されるボット１１３）として実施され得る。
【００５０】
クライアントのみ、サーバのみ、クライアント−サーバ、分散などのような異なる実施形態は、異なる利点を提供し得る。例えば、クライアントのみの実施形態では、例えば、ネットワークアクセスなしで、ボット機能をローカルに提供することができ、このことは、例えば、ユーザがネットワークのカバレッジエリア外にある場合、またはネットワーク帯域幅が狭いか、または制限されている任意のエリア内にある場合など、特定の状況で有利となり得る。サーバのみ、クライアント−サーバ、または分散構成などの１つまたは複数のサーバを含む実施形態は、クライアントデバイス上でローカルに提供することができない特定の機能、例えば金融取引、チケット予約などを可能にし得る。
【００５１】
図１は、メッセージングアプリケーション１０３とは別のボットを示しているが、いくつかの実施形態において、１つまたは複数のボットをメッセージングアプリケーション１０３の一部として実施し得る。ボットがメッセージングアプリケーション１０３の一部として実施される実施形態では、ボットを実施する前にユーザの許可が得られる。例えば、ボットがメッセージングアプリケーション１０３ａ／１０３ｂの一部として実施される場合、メッセージングアプリケーション１０３ａ／１０３ｂは、特定の活動を実行することができるボット、例えば、受信メッセージと発信メッセージを翻訳する翻訳ボット、イベントをユーザのカレンダーにスケジューリングするスケジューリングボット、その他を提供し得る。この例では、翻訳ボットは、ユーザの特定の許可がある場合にのみ有効となる。ユーザが同意を提供しない場合、メッセージングアプリケーション１０３ａ／１０３ｂ内のボットは実施されない（例えば、無効にされる、除去される、その他）。ユーザが同意を提供する場合、ボットまたはメッセージングアプリケーション１０３ａ／１０３ｂは、メッセージングアプリケーション１０３ａ／１０３ｂを介してユーザ間で交換されるメッセージの限定された状態で使用し、特定の機能、例えば翻訳、スケジューリングなどを提供する。
【００５２】
いくつかの実施形態において、メッセージングアプリケーション１０３ａ／１０３ｂのプロバイダおよびユーザ１２５とは異なるサードパーティが、特定の目的のためにメッセージングアプリケーション１０３ａ／１０３ｂによりユーザ１２５と通信することができるボットを提供し得る。例えば、タクシーサービスプロバイダがタクシーボットを提供してもよく、チケットサービスがイベントチケットを予約するボットを提供してもよく、バンクボットが金融取引などを行う能力を提供してもよい。
【００５３】
メッセージングアプリケーション１０３によりボットを実施する場合、ボットは、特定のユーザ認証を得た上でのみ、ユーザと通信することが許可される。例えば、ユーザがボットを起動する場合、ボットは、例えばボットを起動するユーザの動作に基づいて応答することができる。別の例において、ユーザは、ユーザとコンタクトし得る特定のボットまたはボットのタイプを示し得る。例えば、ユーザは、トラベルボットが彼女と通信することを許可するが、ショッピングボットに対しては彼女に認証を与えないようにしてもよい。この例において、メッセージングアプリケーション１０３ａ／１０３ｂは、トラベルボットがユーザとメッセージを交換することを許可するが、ショッピングボットからのメッセージをフィルタリングまたは拒否し得る。
【００５４】
さらに、いくつかの機能（例えば、タクシーの呼び出し、フライト予約の作成、友人への連絡など）を提供するために、ボットが場所、支払情報、連絡先リストなどのユーザデータにアクセスすることをユーザが許可するようボットが要求し得る。このような場合、ボットへのアクセスを許可するか、または拒否する選択肢がユーザに提示される。ユーザがアクセスを拒否した場合、ボットは、例えば「申し訳ありませんが、タクシーを予約できません」というメッセージで応答し得る。さらに、ユーザは制限された基準で情報にアクセスでき、例えば、ユーザは、ボットの特定の呼び出しがされたときにのみ現在の場所にアクセスすることが許可されるが、そうでない場合は許可されない。異なる実施形態において、ユーザは、ボットがアクセスできる情報のタイプ、数量、および細分性（granularity）を制御することができ、いつでもそのような許可を変更する能力を（例えば、ユーザインタフェースにより）備える。いくつかの実施形態において、ボットがそのようなデータにアクセスできる前に、例えば、個人識別可能な情報を除去して情報を特定のデータ要素に制限するようにユーザデータが処理され得る。さらに、ユーザは、メッセージングアプリケーション１０３ａ／１０３ｂおよび１つまたは複数のボットによってユーザデータの使用を制御することができる。たとえば、金融取引を行う機能を提供するボットに、取引が完了する前にユーザの認証が必要であることを指定することができ、例えば、ボットは「映画のスペースアンドスターズのチケットはそれぞれ１２ドルです。先に進めて予約しますか？」または「このシャツの最良価格は発送費用を含めて１２５ドルです。クレジットカードを１２３４までチャージしますか？」などのメッセージを送信し得る。
【００５５】
いくつかの実施形態において、メッセージングアプリケーション１０３ａ／１０３ｂは、例えばボタンまたは他のユーザインタフェース要素などのユーザインタフェースを介して、ユーザ１２５に１つまたは複数の提案、例えば、提案応答を提供し得る。提案応答は、例えば、ユーザが応答を入力する必要性を低減または排除することによって、より迅速なインタラクションを可能にし得る。例えば、クライアントデバイスがテキスト入力機能を欠いている場合（例えば、キーボードまたはマイクロフォンを含まないスマートウォッチ）、提案応答は、ユーザがメッセージに迅速かつ容易に応答できるようにし得る。提案応答はまた、例えば、ユーザが提案応答を選択したとき（例えば、タッチスクリーン上の対応するユーザインタフェース要素を選択することによって）、ユーザがメッセージに素早く応答することを可能にし得る。提案応答は、例えば、応答を生成するように訓練された機械学習モデルなどの予測モデルを使用して生成され得る。
【００５６】
例えば、メッセージングアプリケーション１０３ａ／１０３ｂは、メッセージングアプリケーション１０３とのユーザのインタラクションを強化することができる、例えば、深層学習モデルなどの機械学習を実施し得る。機械学習モデルは、合成データ、例えば、ユーザ情報を使用せずにコンピュータによって自動的に生成されるデータを使用して訓練される。いくつかの実施形態において、機械学習モデルは、例えば、学習のためにユーザデータを利用する許可がユーザから明確に得られたサンプルデータに基づいて、訓練され得る。例えば、サンプルデータは、受信したメッセージおよび受信したメッセージに対して送信された応答を含み得る。サンプルデータに基づいて、機械学習モデルは、受信されたメッセージに対する応答を予測することができ、その後、提案応答として提供され得る。受信したメッセージおよびユーザの状況に基づいてカスタマイズされた応答の選択肢を提供することによって、例えば、受信したメッセージに対する応答を作成するユーザの負担を軽減することによって、ユーザインタラクションが強化される。例えば、ユーザが同意を提供する場合、提案応答は、ユーザの以前の活動、例えば、会話における初期のメッセージ、異なる会話におけるメッセージなどに基づいてカスタマイズされ得る。例えば、ユーザのインタラクションのスタイルに基づいて、ユーザに対する適切な提案応答、例えば、遊び心のある応答、正式な応答などを決定するためにそのような活動が使用され得る。別の例では、ユーザが１つまたは複数の優先言語および／またはロケールを指定する場合、メッセージングアプリケーション１０３ａ／１０３ｂは、ユーザの優先言語で提案応答を生成し得る。様々な例では、提案応答は、テキスト応答、画像、マルチメディアなどであり得る。
【００５７】
いくつかの実施形態において、機械学習は、メッセージングサーバ１０１、クライアントデバイス１１５、またはメッセージングサーバ１０１およびクライアントデバイス１１５の両方で実施されてもよい。いくつかの実施形態において、（例えば、クライアントデバイスのメモリ、ストレージ、処理制約内でモデルの動作を許可するために）簡単な機械学習モデルがクライアントデバイス１１５上で実施され得、複雑な機械学習モデルがメッセージングサーバ１０１上で実施され得る。ユーザが機械学習技術の使用に同意を提供しない場合、そのような技術は実施されない。いくつかの実施形態において、ユーザは、クライアントデバイス１１５上でのみ実施される機械学習のために同意を選択的に提供し得る。これらの実施形態では、機械学習モデルに対する更新または機械学習モデルによって使用されるユーザ情報は、ローカルに格納または使用され、かつメッセージングサーバ１０１、サーバ１３５、または他のクライアントデバイス１１５などの他のデバイスとは共有されないように、機械学習モデルがクライアントデバイス１１５上で実施され得る。
【００５８】
例えば、機械学習技術に基づいて提案を受信することに対する同意を提供するユーザについては、メッセージングアプリケーション１０３によって提案を提供し得る。例えば、提案は、コンテンツ（例えば、映画、書籍など）、スケジュール（例えば、ユーザのカレンダー上で利用可能な時間）、イベント／会場（例えば、レストラン、コンサートなど）などを含み得る。いくつかの実施形態において、会話に参加しているユーザが会話データの使用に同意を提供する場合、提案は、会話の内容に基づく受信メッセージに対する提案応答を含み得る。例えば、会話コンテンツに基づいて提案に同意した２人のユーザのうちの第１のユーザが、「何か食べたい？イタリア料理はどう？」とメッセージを送信すると、第２のユーザに対して「＠アシスタントランチ、イタリア料理、２人用テーブル」という回答が提案され得る。この例では、提案応答は、ボット（記号＠およびボットハンドルアシスタントによって識別される）を含む。第２のユーザがこの応答を選択すると、アシスタントボットが会話に追加され、メッセージがボットに送信される。その後、ボットからの応答が会話に表示され、２人のユーザのどちらかがさらなるメッセージをボットに送信し得る。この例では、アシスタントボットは会話の内容へのアクセスが提供されておらず、提案応答はメッセージングアプリケーション１０３によって生成される。
【００５９】
特定の実施形態において、提案応答の内容は、ボットが既に会話中に存在するか、または会話に組み込むことができるかに基づいてカスタマイズされ得る。例えば、トラベルボットをメッセージングアプリに組み込むことができると判定された場合、フランスへの航空チケットの料金に関する質問に対する提案応答は、「トラベルボットに聞いてみよう！」とすることができる。
【００６０】
別の実施形態において、提案（例えば、提案応答）は、テキスト（例えば、「素晴らしい！」）、絵文字（例えば、笑顔、眠そうな顔など）、画像（ユーザの写真ライブラリからの写真）、テンプレートのフィールドに挿入されたユーザデータを有するテンプレートに基づいて生成されたテキスト（例えば、「彼女の番号は＜電話番号＞」、ここでフィールド「電話番号」は、ユーザがユーザデータへのアクセスを提供する場合、ユーザデータに基づいて記入される）、リンク（例えば、ユニフォームリソースロケータ）などのうちの１つまたは複数を含み得る。いくつかの実施形態において、提案応答は、例えば、色、フォント、レイアウトなどを使用して、フォーマット化および／またはスタイル化され得る。例えば、映画の推薦を含む提案応答は、映画についての記述テキスト、映画からの画像、およびチケットを購入するためのリンクを含み得る。異なる実施形態において、提案応答は、例えば、テキストボックス、情報カードなどの異なるタイプのユーザインタフェース要素として提示され得る。
【００６１】
異なる実施形態において、ユーザには、提案を受信するか否か、どのようなタイプの提案を受信するか、提案の頻度などにわたる制御が提供される。例えば、ユーザは、複数の提案を一括して受信することを拒否するか、または１日の特定の時間帯にのみ提案を受信し得る。別の例では、ユーザは個人別の提案を受信するように選択し得る。この例では、データの使用および機械学習技術の使用に関するユーザの嗜好に基づいて提案を提供するように機械学習が使用され得る。
【００６２】
図２は、いくつかの実施形態による例示的なボット起動イベントの図である。特に、ユーザデバイス２０２はボット２０４と通信状態にある。ボット２０４は、ユーザデバイス２０２上の１つまたは複数のイベントにより起動することができる。イベントは、特殊文字オートコンプリートまたは手動タイピング２０６、メッセージ内のボット呼び出しのタッピング２０８、ボットアバターのタッピング２１０、および自動返信提案の選択２１２を含むことができる。
【００６３】
特殊文字オートコンプリートまたはコマンドは、ボット名またはボットハンドルが後に続く特殊文字（例えば、「＠」）のユーザからの入力を含むことができる。この例のイベントでは、ボットは、ボットハンドル（例えば、「＠」記号の後にボットの名前（例えば、リザベーションボット（reservationbot）、アシスタントなど））によって識別することができる。特殊文字オートコンプリートまたはコマンドに対する例示的なユーザインタフェース要素が、図４の４０２に示され、かつ以下で説明される。ユーザが作成ボックスまたは他のテキスト入力エリアに特殊文字（例えば「＠」）を入力すると、システムは後続の文字を監視し、ユーザによってタイプされるか、そうでなければ入力された文字と一致する一部を有するハンドル（例えば、「＠ボット（bot）」）または名前（例えば、「ホテルボット（Hotel Bot）」）を有するボットを自動的に識別し、かつ提案することを試行することができる。ユーザは完全なボット名またはハンドル名をタイプしなくても、オートコンプリート候補を選択することができる。
【００６４】
ボット呼び出し（例えば、図４の４０４）をタップする（または、その他、タッチ、タイピング、または音声入力を介して選択する）と、呼び出しに関連付けられたボットを起動することができる。呼び出しが以前の提案応答と関連付けられていた場合、これらの応答は、図８〜図１２に示し、かつ以下に説明するように呼び戻され得る。ボットアバター（例えば、図４の４０６）をタップする（または、その他、タッチ、タイピング、または音声入力を介して選択する）。自動返信提案（例えば、図４の４０８）をタップする（または、その他、タッチ、タイピング、または音声入力を介して選択する）。
【００６５】
図３は、いくつかの実施形態によるボット起動の例示的な方法を示すフロー図である。処理は３０２で始まり、ボットを起動するための動作の指示が受信される。指示は、特殊文字ボットコマンドの指示、特殊文字オートコンプリートの選択、ボット呼び出しのタッピング、ボットアバターのタッピング、および／または自動返信提案の選択の指示を含むことができる。いくつかの実施形態において、（図２に示す動作の１つを伴うか、または伴わずに）ボットを自動的に起動することができ、システムは、例えば、＠または他の特殊文字の後にユーザが何を入力しているか、ユーザの動作または使用状況に基づいてユーザがどのようなタイプのタスクを実行することを求めているかまたは実行する必要があるか、ユーザが情報を探しているかどうか（ユーザがどのような情報を探しているか）、ユーザの音声コマンドなどの様々な情報に基づいて起動するボットを自動的に決定することができる。処理は３０４に続く。
【００６６】
３０４において、ボットを起動するための動作の指示に対する応答のタイプが決定される。例えば、指示が自動返信提案の選択である場合、動作は、ボットまたは会話の他の参加者に自動返信を提供することであり得る。別の例では、指示が特殊文字コマンドである場合、その動作は、コマンドに応答する動作であると判定され得る。処理は３０６に続く。
【００６７】
３０６において、ボットは、受信した動作の指示に応答して、３０４において決定された応答タイプに基づいてボットを起動する。例えば、ボットは、提案される自動返信を会話に提供し得、ボットは、受信したコマンドなどに対して動作し得る。
【００６８】
図４は、いくつかの実施形態による例示的なボット識別および起動要素を示すユーザインタフェース４００の図である。特に、ユーザインタフェース４００は、メッセージ作成ボックスに関連する例示的な特殊文字オートコンプリートセクション４０２を含む。ユーザインタフェースはまた、ボットに以前に送信されたメッセージまたはコマンドを表すことができる例示的なボット呼び出し４０４を含む。ユーザインタフェース４００は、例示的なボットアバター４０６および例示的な自動返信提案４０８を含む。ユーザインタフェースに複数のボット呼び出し、アバター、または自動返信提案を設けることができる。
【００６９】
図５は、いくつかの実施形態によるボットインタラクション中のユーザのプライバシーを管理する例示的な方法のフロー図である。処理は５０２で開始され、ユーザからの要求がボットで受信され、かつ／または提案が生成される。要求または提案には、ユーザデータが共有される必要があり得る。要求は、ボットが実行するための要求されるタスク（例えば、「私のフライトデータを共有する」、「私の子犬の写真を共有する」など）を含み得る。いくつかの実施形態において、要求はボットに関するコマンドであり得る。例えば、リザベーションボットに関するコマンドを含む要求は、「＠リザベーションボット（reservationbot）、近くのホテルを見つけて」であり得、アシスタントボットに関するコマンドを含む要求は、「＠アシスタント、フライトの詳細をジムに送信して」などであり得る。この例では、ボットは、ボットハンドル、例えば、「＠」記号の後に続くボット名（例えば、リザベーションボット、アシスタントなど）によって識別される。タスクを実行し、かつ／または要求に対する応答を提供するために、ボットはユーザデータへのアクセスを必要とし得る。ユーザおよびボットは、１対１の通信構成であり得る。例えば、ユーザは、カーサービスのピックアップを要求し得、カーサービスボットは、どの車がユーザを拾うために利用可能であるのかを決定するために、ユーザの場所を知る必要があり得る。別の例では、ユーザは近くのホテルでホテル予約を行うことを希望し得、ホテルリザベーションボットは、ユーザの場所を知る必要があり得る。さらに別の例では、ボットは、ユーザ情報（例えば、写真、カレンダーエントリ、フライトスケジュールなど）を共有することを含む、ユーザに対して提案応答を提供し得、提案ボットは、提案応答のために役立ち得るデータにアクセスし、そのようなデータを実際の応答として提供するためのユーザの許可を得る必要があり得る。要求は、ユーザからの要求であり得るか、または自動的に生成された要求（例えば、提案応答ボットなどからの）であり得る。処理は５０４に続く。
【００７０】
５０４において、許可ユーザインタフェース要素が、要求または提案応答に関連するユーザに表示されるようにする。許可要求ユーザインタフェース要素の一例が図６に示され、かつ以下に説明される。許可ユーザインタフェース要素は、音声プロンプトとして、または他のユーザインタフェースおよび／または出力方法を使用して提示され得る。処理は５０６に続く。
【００７１】
５０６において、ユーザが１対１の会話またはグループの会話であり得る進行中の会話内でユーザのデータを共有する許可をボットに与えるかどうかの指示が受信される。指示は、ユーザが許可を与えるか否かを指示するユーザインタフェース要素の選択（例えば、タッチ、タップ、オンスクリーンのユーザインタフェースボタンの選択、タイプによる選択、音声入力による選択、ジェスチャ入力による選択など）の形態で受信することができる。例えば、ユーザは、図６の許可ユーザインタフェース要素に示される「今ではない（NOT NOW）」または「許可（ALLOW）」オプションのうちの１つを選択することができる。処理は５０８に続く。
【００７２】
５０８において、ボット許可システムは、許可が与えられたか否かを判定する。許可が与えられたかどうかを判定することは、ステップ５０６で受信した指示を評価することによって達成することができる。許可が与えられた場合、処理は５１０に続く。許可が与えられない場合、処理は５１２に続く。
【００７３】
５１０において、ユーザデータの指示は、ユーザによって与えられた許可に従ってボットによって会話に共有される。
５１２において、ユーザデータは、ユーザによって許可が与えられていないことに従ってボットによって共有されない。
【００７４】
図６は、いくつかの実施形態によるボットメッセージングを有する例示的なユーザインタフェース６００の図である。特に、ユーザインタフェース６００は、ユーザからボットへのメッセージ（６０２）を含む。メッセージ６０２は、ユーザの個人情報（例えば、犬の写真）の使用を必要とし得る要求（「私の犬の写真を共有して」）を含む。ユーザからの要求に応答して、ボットは、要求を完了するためにユーザのデータ（６０６）を共有するための許可を求める容認／否認インタフェース要素（６０４）をユーザに対して表示し得る。許可要素６０４は、どのタイプのユーザデータの共有許可が必要であるかの記述またはサンプル（６０６）と、ユーザのデータを共有するためのボットの許可を否認または容認するためのそれぞれの入力要素６０８および６１０とを含むことができる。
【００７５】
図７は、いくつかの実施形態による、以前のボット提案を呼び戻すための例示的な方法のフロー図である。図８〜図１２は、図７の方法を説明するのを補助するための例示的なユーザインタフェースの図を提供し、かつ図７に関連して説明される。処理は７０２で開始され、ここで会話中にユーザからの要求がボットにおいて受信される。要求は、本明細書で説明するようにテキストコマンドまたは他の方法に由来するものとすることができる。例えば、ユーザは、図８の８０２に示すように、「＠ボット、今夜の７時に４人分のテーブルはありますか？」などのコマンドを発行することができる。処理は７０４に続く。
【００７６】
７０４において、ボットは、確認応答インタフェース要素（例えば、図８の８０４）を表示させることができる。確認応答要素は、ボットが要求またはコマンドに対して処理中または作業中であることの表示をユーザに提供することができる。確認応答は、１つまたは複数の提案される自動返信（たとえば、図８の８０６および８０８）を含むことができる。処理は７０６に続く。
【００７７】
７０６において、会話中の参加者による次のメッセージの指示（例えば、図９の９０２）。処理は７０８に続く。
７０８において、提案応答は、後続のメッセージ（例えば、９０２）の決定に基づいて除去される。図９において８０４と９０２の間に提案がないことによって、提案応答（８０６および８０８）の除去が示されている。処理は７１０に続く。
【００７８】
７１０において、確認応答メッセージに関連付けられた１つまたは複数の提案応答を有する以前に表示された確認応答メッセージ（例えば、８０４）をユーザがタップ（または他の方法で選択）（図１０の１００４）した指示が受信される。図１０において、次のメッセージ１００２も示されている。以前に表示された確認応答メッセージをタップするかまたは選択することによって、ユーザは、確認応答メッセージに関連する提案応答を呼び戻すことに関心を示していることを指示し得る。処理は７１２に続く。
【００７９】
７１２において、会話は、任意選択的に一時的に隠されるか、またはフェーディングまたは他の技術によって目立たなくされる。処理は７１４に続く。
７１４において、図１１に示すように、以前に表示された確認応答メッセージ（例えば、８０２）およびそれに関連する提案応答（８０６および８０８）が表示される。会話を隠す代わりに、システムは、確認応答メッセージを拡張し、かつ提案応答を表示することができる。処理は７１６に続く。
【００８０】
７１６において、提案応答のうちの１つの選択の指示が受信される。例えば、図１１の１１０２に示すように、「キャンセルする」の提案応答（８０８）の選択の指示を受信することができる。代替的に、提案された自動返信が選択されず、かつユーザは会話画面に戻ることを望むことを示す「戻る」の指示を受信して、提案応答を表示から再び除去することができる。処理は７１８に続く。
【００８１】
７１８において、表示は会話に戻され、ボットは提案応答に対して動作する。例えば、ボットは、図１２の１２０２に示すように、「それをキャンセルします」のメッセージを表示させることができる。
【００８２】
図１３は、いくつかの実施形態による、グループメッセージング環境内（例えば、「グループチャット」内）のボット許可を管理する例示的な方法のフロー図である。処理は１３０２で開始され、ユーザからの要求がボットで受信される。要求されたタスクを実行し、かつ／または要求に対する応答を提供するために、ボットはユーザデータへのアクセスを要求し得る。ユーザおよびボットは、複数のユーザおよび／またはボットとのグループ通信構成内にあってもよい。例えば、複数のユーザとの通信セッションでは、ユーザは、例えば、複数のユーザのために、カーサービスのピックアップを要求し得る。カーサービスボットは、どの車がユーザを拾うために利用可能であるかを決定するために、ピックアップに含まれるべき各ユーザの位置を知る必要があり得る。別の例において、ユーザは、会話に参加しているユーザのグループの近くのホテルでホテル予約を行うことを所望することがあり得る。この例において、ホテルリザベーションボットは、ユーザのグループに関する情報、例えば名前、支払情報などを知る必要があり得る。要求は、ユーザからの要求であってもよく、または自動的に生成された要求であってもよい（例えば、提案応答ボットなど）。処理は１３０４に続く。
【００８３】
１３０４において、ボットによって進行表示が任意選択的に表示され、かつグループ会話中のグループにまたは要求を行う個々のユーザに視認可能となり得る。たとえば、カーサービスボットは、グループ会話において「作業中です」などのメッセージを表示し得る。処理は１３０６に続く。
【００８４】
１３０６において、許可ユーザインタフェース要素が、要求に関連するユーザに対して表示される。許可要求ユーザインタフェース要素の一例が図６に示され、かつ上記したように説明されている。ボットがユーザデータを共有する代わりにユーザデータにアクセスする許可を要求している場合、許可要求ユーザインタフェース要素は、ボットに許可が与えられた場合にボットが共有することとなるデータの例を示す代わりに、ボットがアクセスに必要なユーザデータを記述し得る。許可ユーザインタフェース要素は、音声プロンプトとして、または他のユーザインタフェースおよび／または出力方法を使用して提示され得る。処理は１３０８に続く。
【００８５】
１３０８において、１人または複数のユーザがボットに個々のユーザデータにアクセスまたは個々のユーザデータを取得する許可を与えるかどうかの指示が受信される。この指示は、ユーザが許可を与えるか否かを指示するユーザインタフェース要素選択（例えば、タッチ、タップ、オンスクリーンユーザインタフェースボタンの選択、タイプによる選択、音声入力による選択、ジェスチャ入力による選択など）の形態で受信することができる。例えば、ユーザは、図６の許可ユーザインタフェース要素に示される「今ではない（NOT NOW）」または「許可（ALLOW）」のうちの１つを選択することができる。処理は１３１０に続く。
【００８６】
１３１０において、ボット許可システムは、許可が与えられたか否かを判定する。許可が与えられたかどうかを判定することは、ステップ１３０８において受信された指示を評価することによって達成することができる。許可が与えられた場合、処理はステップ１３１２に続く。許可が与えられなかった場合、処理はステップ８１６に続く。
【００８７】
１３１２において、ボットは、ユーザと１対１のチャットを開始することができる。１対１のチャットおよび１対１のチャットで交換されるメッセージは、グループメッセージング会話におけるグループのユーザには視認可能ではない。個々のボットに対応する異なる視覚テーマを有する（例えば、異なる個々の企業、組織などに対応する視覚テーマを有する）１対１のチャットのユーザインタフェースの例が、図１４および図１５に示されている。処理は１３１４に続く。
【００８８】
１３１４において、ボットは、１対１のユーザメッセージング会話内で与えられた許可に関連するタスクを完了するためのさらなる処理を実行し得る。例えば、カーサービスボットは、どの車がユーザにカーサービスを提供する場所にあるかを決定することを継続することができる。別の例では、宿泊施設ボットは、共有のユーザの場所を使用して空いているレンタル可能な近隣の宿泊施設を決定することができる。
【００８９】
１３１６において、ボットは、グループメッセージング会話内のユーザに対してタスクを拒否する「丁寧な」指示を表示させることができる。例えば、ボットは「あなたの場所を取得できませんでした。車をスケジューリングすることができません、その他」などの指示を提供することができる。この指示は、グラフィカルユーザインタフェース上に表示するか、またはオーディオキューまたは他の出力指示の形態で提供することができる。拒否メッセージの丁寧な側面は、ユーザがボットにユーザのデータの使用に対してボット許可を与えていなかったことを明確に示していないというメッセージを含むことができる。異なる実施形態において、指示は、例えば、要求または他の要因に基づく異なるテキストコンテンツを含み得る。例えば、車を発注する状況において位置へのアクセスを禁止するユーザに応答する指示は、「申し訳ありませんが、場所を取得できません」、「近くの車を見つけることができません」、「カーサービスは利用できません」などのテキストコンテンツを含み得る。いくつかの実施形態において、異なる指示が、グループ会話の異なる参加者に送信され得る。いくつかの実施形態において、指示は、テキストボックス、グラフィック指示、アニメーション指示などの異なるフォーマットを使用し得る。いくつかの実施形態において、指示は、太字のテキスト、イタリック体のテキスト、フォント、色など、異なるスタイルを使用し得る。
【００９０】
図１４は、いくつかの実施形態による任意のボットタイプに対してテーマ化された例示的な１対１のユーザインタフェース１４００を示す図である。図１４に示す例は、例示的なレストランボットである。テーマ別インタフェース１４００は、特定の背景色、画像、テクスチャなどを含むことができる（１４０２）。テーマ別インタフェース１４００は、ボット（１４０４）に関するロゴ、名前およびハンドルを含むこともできる。テーマ別インタフェースは、ボットによって提供される情報、例えばレストラン情報１４０６を含むこともできる。
【００９１】
図１５は、いくつかの実施形態による任意のボットタイプに対してテーマ化された例示的な１対１のユーザインタフェース１５００を示す図である。図１５に示す例は、ホテルボットの例である。テーマ別インタフェース１５００は、特定の背景色、画像、テクスチャなどを含むことができる（１５０２）。テーマ別インタフェース１５００は、ボット（１５０４）に関するロゴ、名前およびハンドルも含むことができる。テーマ別インタフェースは、レストラン情報１５０６−１５０８など、ボットによって提供される情報も含むことができる。１対１のインタフェース１５００は、ボット用のメッセージ（例えば、コマンド、要求など）を作成するための提案選択ボタン１５１０，１５１２および作成ボックス１５１４も含む。
【００９２】
図１６は、本明細書で説明される１つまたは複数の機能を実施するために使用され得る例示的なコンピューティングデバイス１６００のブロック図である。一例では、コンピューティングデバイス１６００は、クライアント（またはユーザ）デバイス、例えば図１に示されるクライアントデバイス１１５ａ−１１５ｎのいずれかを実施するために使用され得る。コンピューティングデバイス１６００は、任意の適切なコンピュータシステム、サーバ、または上記したような他の電子デバイスまたはハードウェアデバイスとすることができる。
【００９３】
本明細書で説明される１つまたは複数の方法は、任意のタイプのコンピューティングデバイス上で動作することができるスダンドアロンプログラム、ウェブブラウザ上で動作するプログラム、モバイルコンピューティングデバイス（例えば、セルフォン、スマートフォン、タブレットコンピュータ、ウェアラブルデバイス（腕時計、アームバンド、宝飾品、ヘッドウェア、仮想現実ゴーグルまたは眼鏡、拡張現実ゴーグルまたは眼鏡など）、ラップトップコンピュータなど）上で動作するモバイルアプリケーション（「アプリ」）で動作することができる。一例において、クライアント／サーバアーキテクチャを使用することができ、例えば、モバイルコンピューティングデバイス（ユーザデバイスとしての）がユーザ入力データをサーバデバイスに送信し、サーバから出力用（例えば、表示用）の最終出力データを受信する。別の例では、すべての計算は、モバイルコンピューティングデバイス上のモバイルアプリ（および／または他のアプリ）内で実行することができる。別の例では、計算は、モバイルコンピューティングデバイスと１つまたは複数のサーバデバイスとの間で分割することができる。
【００９４】
いくつかの実施形態において、コンピューティングデバイス１６００は、プロセッサ１６０２、メモリ１６０４、および入出力（Ｉ／Ｏ）インタフェース１６０６を含む。プロセッサ１６０２は、コンピューティングデバイス１６００のプログラムコードおよび制御ベースの処理を実行する１つまたは複数のプロセッサおよび／または処理回路とすることができる。「プロセッサ」は、データ、信号または他の情報を処理する任意の適切なハードウェアおよび／またはソフトウェアシステム、機構、またはコンポーネントを含む。プロセッサは、汎用中央処理ユニット（ＣＰＵ）、複数の処理ユニット、機能を達成するための専用回路、または他のシステムを有するシステムを含み得る。処理は、特定の地理的位置に限定される必要がないか、または一時的な制限がある。例えば、プロセッサは、「リアルタイム」、「オフライン」、「バッチモード」などでその機能を実行し得る。処理の一部は、異なる時間および異なる場所で、異なる（または同じ）処理システムによって実行され得る。コンピュータは、メモリと通信する任意のプロセッサであり得る。
【００９５】
メモリ１６０４は、典型的には、プロセッサ１６０２によるアクセスのためにコンピューティングデバイス１６００に提供され、かつランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、電気消去可能な読み出し専用メモリ（ＥＥＰＲＯＭ）、フラッシュメモリなどの、プロセッサによる実行のための命令を格納するのに適し、かつプロセッサ１６０２とは別個に配置され、かつ／またはプロセッサ１６０２とともに集積化されている任意の適切なプロセッサ読み取り可能な記憶媒体であり得る。メモリ１６０４は、オペレーティングシステム１６０８と、メッセージングアプリケーション、ボットインタラクションアプリケーションなどの１つまたは複数のアプリケーション１６１０とを含む、プロセッサ１６０２によってコンピューティングデバイス１６００上で動作するソフトウェアを格納することができる。いくつかの実施形態において、アプリケーション１６１０は、プロセッサ１６０２が、本明細書に記載の機能、例えば、図３、図５、図７および／または図１３の方法のうちの１つまたは複数を実行することを可能にする命令を含むことができる。例えば、アプリケーション１６１０は、ボット許可、ユーザプライバシー、過去のボット提案の再呼び出し、および／または本明細書で説明するようなボットの識別を管理するためのプログラムを含むメッセージングアプリケーションおよび／またはボットアプリケーションを含むことができる。１つまたは複数のアプリケーションは、例えば、選択可能なオプションまたは制御および選択されたオプションに基づくデータを表示するためのユーザ入力に応答する表示されるユーザインタフェースを提供することができる。本明細書に開示される１つまたは複数の方法は、例えば、任意のタイプのコンピューティングデバイス上で動作するスタンドアロンコンピュータプログラムとして、ウェブページを有するウェブアプリケーションとして、モバイルコンピューティングデバイス上で動作するモバイルアプリケーション（「アプリ」）として、いくつかの環境およびプラットフォームにおいて実行することができる。
【００９６】
メモリ１６０４内のソフトウェアのいずれかは、代替的に、任意の他の適切な記憶場所またはコンピュータ可読媒体に格納することができる。さらに、メモリ１６０４（および／または他の接続されたストレージデバイス（単数または複数））は、メッセージ、許可設定、ユーザ嗜好および関連のデータ構造、パラメータ、音声データ、ユーザ嗜好、および／またはデータベース１６１２内の本明細書に記載された機能に使用される他の命令およびデータを格納することができる。メモリ１６０４および任意の他のタイプのストレージ（磁気ディスク、光ディスク、磁気テープ、または他の有形の媒体）は、「ストレージ」または「ストレージデバイス」と見なすことができる。
【００９７】
Ｉ／Ｏインタフェース１６０６は、コンピューティングデバイス１６００と他のシステムおよびデバイスとのインタフェースを可能にする機能を提供することができる。インタフェースデバイスは、コンピューティングデバイス１６００の一部として含ませることができるか、またはコンピューティングデバイス１６００とは別個であり、かつ通信することができる。例えば、ネットワーク通信デバイス、無線通信デバイス、ストレージデバイス、および入出力デバイスは、Ｉ／Ｏインタフェース１６０６を介して通信することができる。いくつかの実施形態において、Ｉ／Ｏインタフェース１６０６は、入力デバイス（キーボード、ポインティングデバイス、タッチスクリーン、マイクロフォン、カメラ、スキャナ、センサなど）および／または出力デバイス（ディスプレイデバイス、スピーカデバイス、プリンター、モーターなど）等のインタフェースデバイスに接続することができる。
【００９８】
Ｉ／Ｏインタフェース１６０６に接続することができるインタフェースデバイスのいくつかの例は、例えば、画像、ビデオなどのコンテンツおよび／または本明細書に記載されているような出力アプリケーションのユーザインタフェースを表示するために使用することができるディスプレイデバイス１６１４を含むことができる。ディスプレイデバイス１６１４は、ローカル接続（例えば、ディスプレイバス）および／またはネットワーク接続を介してコンピューティングデバイス１６００に接続することができ、かつ任意の適切なディスプレイデバイスとすることができる。ディスプレイデバイス１６１４は、液晶ディスプレイ（ＬＣＤ）、発光ダイオード（ＬＥＤ）、またはプラズマディスプレイスクリーン、ブラウン管（ＣＲＴ）、テレビ、モニタ、タッチスクリーン、３Ｄディスプレイスクリーン、または他の視覚的ディスプレイデバイスなどの任意の適切なディスプレイデバイスを含むことができる。例えば、ディスプレイデバイス１６１４は、モバイルデバイス上に設けられたフラットディスプレイ画面、ゴーグルデバイスに設けられた複数のディスプレイ画面、またはコンピュータデバイスのモニタ画面とすることができる。
【００９９】
Ｉ／Ｏインタフェース１６０６は、他の入力デバイスおよび出力デバイスとインタフェースすることができる。いくつかの例は、画像フレームを取り込むことができる１つまたは複数のカメラを含む。方位センサ、例えば、ジャイロスコープおよび／または加速度計は、デバイスの向き（いくつかの実施形態において視聴方向に対応することができる）および／またはカメラの向きを示すセンサデータを提供することができる。いくつかの実施形態は、音声（例えば、音声コマンドなど）を捕捉するためのマイクロフォン、音声を出力するための音声スピーカデバイス、または他の入力および出力デバイスを提供することができる。
【０１００】
説明を容易にするために、図１６は、プロセッサ１６０２、メモリ１６０４、Ｉ／Ｏインタフェース１６０６、オペレーティングシステム１６０８、およびボットインタラクションアプリケーション１６１０のそれぞれに対するブロックを示す。これらのブロックは、１つまたは複数のプロセッサまたは処理回路、オペレーティングシステム、メモリ、Ｉ／Ｏインタフェース、アプリケーション、および／またはソフトウェアモジュールを表し得る。他の実施形態において、コンピューティングデバイス１６００は、図示されたコンポーネントのすべてを有していなくてもよく、かつ／または本明細書に記載されたものの代わりに、またはそれらに加えて他のタイプの構成を含む他の構成を有してもよい。ユーザデバイス（例えば、１１５ａ−１１５ｎ）が、本明細書のいくつかの実施形態で説明されるように、ブロックおよび動作を実行するものとして説明されているが、任意の適切なコンポーネントまたはユーザデバイス（例えば１１５ａ−１１５ｎ）または同様のデバイスのコンポーネントの組み合わせ、または任意の適切なプロセッサまたはそのようなシステムに関連するプロセッサは、説明したブロックおよび動作を実行し得る。
【０１０１】
本明細書に記載された方法は、コンピュータ上で実行することができるコンピュータプログラム命令またはコードによって実施することができる。例えば、コードは、１つまたは複数のデジタルプロセッサ（例えば、マイクロプロセッサまたは他の処理回路）によって実施することができ、かつ磁気、光学、電磁気などの非一時的なコンピュータ可読媒体（例えば、記憶媒体）、または半導体または固体メモリ、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、フラッシュメモリ、剛性磁気ディスク、光ディスク、ソリッドステートメモリドライブなどを含む半導体記憶媒体を含むコンピュータプログラム製品上に格納することができる。プログラム命令はまた、例えばサーバ（例えば、分散システムおよび／またはクラウドコンピューティングシステム）から配信されるサービス（ＳａａＳ）としてのソフトウェアの形態の電子信号に含まれ、かつ提供することができる。代替的に、１つまたは複数の方法は、ハードウェア（論理ゲートなど）、またはハードウェアとソフトウェアの組み合わせで、実施することができる。例示的なハードウェアは、プログラマブルプロセッサ（例えば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、コンプレックスプログラマブルロジックデバイス（ＣＰＬＤ）など）、汎用プロセッサ、グラフィックプロセッサ、特定用途向け集積回路（ＡＳＩＣ）などすることができる。１つまたは複数の方法は、システム上で動作するアプリケーションのコンポーネントの一部として、または他のアプリケーションおよびオペレーティングシステムと共に動作するアプリケーションまたはソフトウェアとして実行することができる。
【０１０２】
説明はその特定の実施形態に関して記載されているが、これらの特定の実施形態は単なる例示であり、限定的なものではない。実施例に示される概念は他の実施例および実施形態に適用されてもよい。
【０１０３】
本明細書で説明された特定の実施形態が、ユーザに関する個人情報（例えば、ユーザの電話番号または部分的な電話番号、ユーザデータ、ユーザのソーシャルネットワークに関する情報、ユーザの位置および時間、ユーザの生体情報、ユーザの活動および人口統計学的情報）を収集しかつ使用する状況において、ユーザには、個人情報が収集されるかどうか、個人情報が格納されるかどうか、個人情報が使用されるかどうか、およびユーザに関する情報が収集され、格納され使用される方法を制御するための１つ又は複数の機会が設けられている。すなわち、本明細書で説明されたシステムおよび方法は、特に、関連するユーザからの明確な許可を受けたときに、ユーザの個人情報を収集、格納および／または使用する。さらに、特定のデータは、個人識別可能な情報が削除されるように、格納または使用される前に１つまたは複数の方法で処理され得る。一例として、個人識別可能な情報が特定できないように、ユーザの身元が取り扱われ得る。別の例として、ユーザの地理的位置をより大きな領域に一般化して、ユーザの特定の位置を決定することができないようにし得る。
【０１０４】
本開示に記載されている機能ブロック、動作、特徴、方法、デバイス、およびシステムは、当業者に既知であるように、システム、デバイス、および機能ブロックの異なる組合せに統合または分割し得る。任意の適切なプログラミング言語およびプログラミング技術を使用して、特定の実施形態のルーチンを実施し得る。手続き型またはオブジェクト指向などの異なるプログラミング技術を採用し得る。ルーチンは、単一の処理装置または複数のプロセッサ上で実行し得る。ステップ、処理、または計算が特定の順序で提示されてもよいが、順序は、異なる特定の実施形態において変更されてもよい。いくつかの実施形態では、本明細書において逐次的に示される複数のステップまたは処理が同時に実行されてもよい。さらなる例示的な実施形態を以下に開示する。
【０１０５】
１．  第１のユーザと少なくとも１つの他のユーザとの間の通信を可能にするために、前記第１のユーザに関連付けられた第１のコンピューティングデバイス上にメッセージングアプリケーションを提供するステップと、
前記メッセージングアプリケーションにおいてユーザ要求を検出するステップと、
前記ユーザ要求に応答する動作が前記第１のユーザに関連するデータの共有を必要とすることをプログラムにより決定するステップと、
前記第１のユーザが前記第１のユーザに関連するデータの共有を許可または禁止することを可能にする許可インタフェースを第１のコンピューティングデバイス上の前記メッセージングアプリケーションにレンダリングさせるステップと、
前記第１のユーザに関連するデータの共有の許可を示す前記第１のユーザからのユーザ入力を受信すると、前記ユーザ要求に前記応答して第１のユーザに関連するデータにアクセスして、メッセージングアプリケーション内の前記第１のユーザに関連するデータを共有するステップと
を含む、コンピュータが実行する方法。
【０１０６】
２．  前記第１のユーザは人間のユーザであり、前記少なくとも１つの他のユーザは支援エージェントである、実施形態１に記載のコンピュータが実行する方法。
３．  前記第１のユーザは人間のユーザであり、前記少なくとも１つの他のユーザは、第２のコンピューティングデバイスに関連付けられた、前記第１のユーザとは異なる第２の人間のユーザを含み、前記許可インタフェースは、前記第１のユーザに関連付けられた前記第１のコンピューティングデバイス上の前記メッセージングアプリケーションにレンダリングされ、前記許可インタフェースは、前記第２の人間のユーザに関連付けられた前記第２のコンピューティングデバイス上には表示されない、実施形態１または２のコンピュータが実行する方法。
【０１０７】
４．  前記第１のユーザは人間のユーザであり、前記少なくとも１つの他のユーザは、前記第１のユーザとは異なる第２の人間のユーザと、支援エージェントとを含み、前記ユーザ要求は、前記第１のユーザに関連付けられた前記第１のコンピューティングデバイスから受信され、前記方法は、前記ユーザ要求に応答して、前記メッセージングアプリケーションにおいて別個の会話を開始するステップをさらに含み、前記別個の会話は、前記第１のユーザおよび前記支援エージェントを中に入れ、かつ前記第２の人間のユーザを入らせない、実施形態１乃至３のうちの１つのコンピュータが実行する方法。
【０１０８】
５．  前記ユーザ要求を検出するステップは、前記メッセージングアプリケーションで受信された前記第１のユーザから前記支援エージェントへの１つまたは複数のメッセージを支援エージェントが分析することを含む、実施形態１乃至４のうちの１つのコンピュータが実行する方法。
【０１０９】
６．  前記１つまたは複数のメッセージは、テキストメッセージ、マルチメディアメッセージ、および前記支援エージェントへのコマンドのうちの１つまたは複数を含む、実施形態５のコンピュータが実行する方法。
【０１１０】
７．  前記第１のユーザと前記少なくとも１つの他のユーザのうちの少なくとも１つからの入力に基づいて前記第１のメッセージングアプリケーションに１つまたは複数の提案を提供するステップをさらに含む、実施形態１乃至６のいずれか１つコンピュータが実行する方法。
【０１１１】
８．  前記１つまたは複数の提案を前記メッセージングアプリケーションにおいてレンダリングさせるステップをさらに含む、実施形態７に記載のコンピュータが実行する方法。
【０１１２】
９．  前記１つまたは複数の提案は、前記第１のユーザによって選択されると、その提案についての詳細を表示させる提案要素としてレンダリングされる、実施形態８のコンピュータが実行する方法。
【０１１３】
１０．  前記第１のユーザの１つまたは複数の動作に基づいて前記支援エージェントを自動的に起動するステップをさらに含む、実施形態１乃至９のいずれか１つのコンピュータが実行する方法。
【０１１４】
１１．  前記支援エージェントは、
前記支援エージェントを対象とする特殊文字コマンド、
前記支援エージェントに関連するユーザインタフェース呼び出し要素のユーザ選択、
前記支援エージェントに対応するアバターのユーザ選択、および
前記支援エージェントによって提供される自動返信提案のユーザ選択
のうちの１つまたは複数に応答して起動される、実施形態１乃至１０のうちの１つのコンピュータが実行する方法。
【図１】
2019519822.tif 000003
【図２】
2019519822.tif 000004
【図３】
2019519822.tif 000005
【図４】
2019519822.tif 000006
【図５】
2019519822.tif 000007
【図６】
2019519822.tif 000008
【図７】
2019519822.tif 000009
【図８】
2019519822.tif 000010
【図９】
2019519822.tif 000011
【図１０】
2019519822.tif 000012
【図１１】
2019519822.tif 000013
【図１２】
2019519822.tif 000014
【図１３】
2019519822.tif 000015
【図１４】
2019519822.tif 000016
【図１５】
2019519822.tif 000017
【図１６】
2019519822.tif 000018
【手続補正書】
【提出日】平成30年11月29日(2018.11.29)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１のユーザと少なくとも１つの他のユーザとの間の通信を可能にするために、前記第１のユーザに関連付けられた第１のコンピューティングデバイス上にメッセージングアプリケーションを提供するステップと、
前記メッセージングアプリケーションにおいて支援エージェントを用いてユーザ要求を検出するステップと、
前記ユーザ要求に応答する動作が前記第１のユーザに関連するデータの共有を必要とすることを前記支援エージェントを用いて決定するステップと、
前記第１のユーザが前記第１のユーザに関連するデータの共有を許可または禁止することを可能にする許可インタフェースを前記第１のコンピューティングデバイス上の前記メッセージングアプリケーションにレンダリングさせるステップと、
前記第１のユーザに関連するデータの共有の許可を示す前記第１のユーザからのユーザ入力を受信すると、前記ユーザ要求に応答して前記第１のユーザに関連するデータにアクセスして、前記メッセージングアプリケーション内の前記第１のユーザに関連するデータを共有するステップとを含む、コンピュータが実行する方法。
【請求項２】
前記第１のユーザは人間のユーザであり、前記少なくとも１つの他のユーザは前記支援エージェントである、請求項１に記載のコンピュータが実行する方法。
【請求項３】
前記ユーザ要求を検出するステップは、前記メッセージングアプリケーションで受信された１つまたは複数のメッセージを前記支援エージェントが分析することを含み、前記メッセージは前記第１のユーザから前記支援エージェントに送信される、請求項２に記載のコンピュータが実行する方法。
【請求項４】
前記１つまたは複数のメッセージは、テキストメッセージ、マルチメディアメッセージ、および前記支援エージェントへのコマンドのうちの１つまたは複数を含む、請求項３に記載のコンピュータが実行する方法。
【請求項５】
前記第１のユーザの１つまたは複数の動作に基づいて前記支援エージェントを自動的に起動するステップをさらに含む、請求項２〜４のいずれか一項に記載のコンピュータが実行する方法。
【請求項６】
前記支援エージェントは、
特殊文字コマンド、
前記支援エージェントに関連するユーザインタフェース呼び出し要素のユーザ選択、
前記支援エージェントに対応するアバターのユーザ選択、および
前記支援エージェントによって提供される自動返信提案のユーザ選択
のうちの１つまたは複数に応答して起動される、請求項２〜５のいずれか一項に記載のコンピュータが実行する方法。
【請求項７】
前記第１のユーザは人間のユーザであり、前記少なくとも１つの他のユーザは、第２のコンピューティングデバイスに関連付けられた、前記第１のユーザとは異なる第２の人間のユーザを含み、前記許可インタフェースは、前記第１のユーザに関連付けられた前記第１のコンピューティングデバイス上の前記メッセージングアプリケーションにレンダリングされ、前記許可インタフェースは、前記第２の人間のユーザに関連付けられた前記第２のコンピューティングデバイス上には表示されない、請求項１に記載のコンピュータが実行する方法。
【請求項８】
前記第１のユーザは人間のユーザであり、前記少なくとも１つの他のユーザは、前記第１のユーザとは異なる第２の人間のユーザと、前記支援エージェントとを含み、前記ユーザ要求は、前記第１のユーザに関連付けられた前記第１のコンピューティングデバイスから受信され、前記方法は、前記ユーザ要求に応答して、前記メッセージングアプリケーションにおいて別個の会話を開始するステップをさらに含み、前記別個の会話は、前記第１のユーザおよび前記支援エージェントを中に入れ、かつ前記第２の人間のユーザを入らせない、請求項１に記載のコンピュータが実行する方法。
【請求項９】
前記第１のユーザと前記少なくとも１つの他のユーザのうちの少なくとも１つからの入力に基づいて第１のメッセージングアプリケーションに１つまたは複数の提案を提供するステップをさらに含む、請求項１〜８のいずれか一項に記載のコンピュータが実行する方法。
【請求項１０】
前記１つまたは複数の提案を前記メッセージングアプリケーションにおいて表示させるステップをさらに含む、請求項９に記載のコンピュータが実行する方法。
【請求項１１】
前記１つまたは複数の提案は、前記第１のユーザによって選択されると、対応する提案の詳細を表示させる提案要素としてレンダリングされる、請求項１０に記載のコンピュータが実行する方法。
【請求項１２】
非一時的なコンピュータ可読媒体に接続された１つまたは複数のハードウェアプロセッサを備えるシステムであって、前記非一時的なコンピュータ可読媒体はそれに格納されたソフトウェア命令を含み、前記ソフトウェア命令は、１つまたは複数のプロセッサにより実行されたときに、
第１のユーザに関連付けられた第１のコンピューティングデバイス上のメッセージングアプリケーションからユーザ要求を受信するステップであって、前記メッセージングアプリケーションは、前記第１のユーザと少なくとも１つの他のユーザとの間の通信を可能にするように構成されている、ステップと、
前記ユーザ要求に応答する動作が前記第１のユーザに関連するデータの共有を必要とすることを支援エージェントを用いて決定するステップと、
前記第１のコンピューティングデバイス上の前記メッセージングアプリケーションに許可インタフェースをレンダリングさせるステップであって、前記許可インタフェースは、前記第１のユーザが前記第１のユーザに関連するデータの共有を許可または禁止することを可能にする、ステップと、
前記第１のユーザに関連するデータの共有の許可を示す前記第１のユーザからのユーザ入力を受信すると、前記ユーザ要求に応答して前記第１のユーザに関連するデータにアクセスして、前記メッセージングアプリケーション内の前記第１のユーザに関連するデータを共有するステップとを含む処理を前記１つまたは複数のプロセッサに実行させる、システム。
【請求項１３】
前記第１のユーザは人間のユーザであり、前記少なくとも１つの他のユーザは前記支援エージェントである、請求項１２に記載のシステム。
【請求項１４】
前記処理は、前記メッセージングアプリケーションにおいて受信された前記第１のユーザから前記支援エージェントへの１つまたは複数のメッセージを前記支援エージェントにおいて分析することにより前記ユーザ要求を検出することをさらに含む、請求項１３に記載のシステム。
【請求項１５】
前記第１のユーザは人間のユーザであり、前記少なくとも１つの他のユーザは、第２のコンピューティングデバイスに関連付けられた、前記第１のユーザとは異なる第２の人間のユーザを含み、前記許可インタフェースは、前記第１のユーザに関連付けられた前記第１のコンピューティングデバイス上の前記メッセージングアプリケーションにレンダリングされ、前記許可インタフェースは、前記第２の人間のユーザに関連付けられた前記第２のコンピューティングデバイス上には表示されない、請求項１２に記載のシステム。
【請求項１６】
前記第１のユーザは人間のユーザであり、前記少なくとも１つの他のユーザは、前記第１のユーザとは異なる第２の人間のユーザと、前記支援エージェントとを含み、前記ユーザ要求は、前記第１のユーザに関連付けられた前記第１のコンピューティングデバイスから受信され、前記処理は、前記ユーザ要求に応答して、前記メッセージングアプリケーションにおいて別個の会話を開始するステップをさらに含み、前記別個の会話は、前記第１のユーザおよび前記支援エージェントを中に入れ、かつ前記第２の人間のユーザを入らせない、請求項１２に記載のシステム。
【請求項１７】
前記第１のユーザおよび前記少なくとも１つの他のユーザのうちの少なくとも１つからの入力に基づいて、第１のメッセージングアプリケーションに１つまたは複数の提案を提供するステップをさらに含む、請求項１２に記載のシステム。
【国際調査報告】
2019519822.tif 000019
2019519822.tif 000020
2019519822.tif 000021
2019519822.tif 000022