特許第6605151号(P6605151)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ グーグル インコーポレイテッドの特許一覧

<>
  • 特許6605151-ボットインタラクション 図000002
  • 特許6605151-ボットインタラクション 図000003
  • 特許6605151-ボットインタラクション 図000004
  • 特許6605151-ボットインタラクション 図000005
  • 特許6605151-ボットインタラクション 図000006
  • 特許6605151-ボットインタラクション 図000007
  • 特許6605151-ボットインタラクション 図000008
  • 特許6605151-ボットインタラクション 図000009
  • 特許6605151-ボットインタラクション 図000010
  • 特許6605151-ボットインタラクション 図000011
  • 特許6605151-ボットインタラクション 図000012
  • 特許6605151-ボットインタラクション 図000013
  • 特許6605151-ボットインタラクション 図000014
  • 特許6605151-ボットインタラクション 図000015
  • 特許6605151-ボットインタラクション 図000016
  • 特許6605151-ボットインタラクション 図000017
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6605151
(24)【登録日】2019年10月25日
(45)【発行日】2019年11月13日
(54)【発明の名称】ボットインタラクション
(51)【国際特許分類】
   G06F 3/0484 20130101AFI20191031BHJP
   G06F 13/00 20060101ALI20191031BHJP
   G06F 21/62 20130101ALI20191031BHJP
【FI】
   G06F3/0484
   G06F13/00 650B
   G06F21/62 345
【請求項の数】17
【全頁数】32
(21)【出願番号】特願2018-539989(P2018-539989)
(86)(22)【出願日】2017年9月19日
(65)【公表番号】特表2019-519822(P2019-519822A)
(43)【公表日】2019年7月11日
(86)【国際出願番号】US2017052336
(87)【国際公開番号】WO2018057537
(87)【国際公開日】20180329
【審査請求日】2018年11月29日
(31)【優先権主張番号】62/397,318
(32)【優先日】2016年9月20日
(33)【優先権主張国】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
(74)【代理人】
【識別番号】100142907
【弁理士】
【氏名又は名称】本田 淳
(72)【発明者】
【氏名】ファン、シェルビアン
(72)【発明者】
【氏名】パーマー、エリカ
(72)【発明者】
【氏名】フーレイ、アミット
(72)【発明者】
【氏名】ボルコフ、アントン
(72)【発明者】
【氏名】ゲルショニー、オリ
(72)【発明者】
【氏名】ニュートン−スミス、ジェレミー
(72)【発明者】
【氏名】パーマー、ライアン
(72)【発明者】
【氏名】チャン、マーク
【審査官】 木村 雅也
(56)【参考文献】
【文献】 特開2014−225268(JP,A)
【文献】 特開2014−035771(JP,A)
【文献】 特開2016−157409(JP,A)
【文献】 特開2018−032125(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/0484
G06F 13/00
G06F 21/62
(57)【特許請求の範囲】
【請求項1】
第1のユーザと少なくとも1つの他のユーザとの間の通信を可能にするために、前記第1のユーザに関連付けられた第1のコンピューティングデバイス上にメッセージングアプリケーションを提供するステップと、
前記メッセージングアプリケーションにおいて支援エージェントを用いてユーザ要求を検出するステップと、
前記ユーザ要求に応答する動作が、前記第1のユーザと前記支援エージェントとの間での前記第1のユーザに関連するデータの共有を必要とすることを前記支援エージェントを用いて決定するステップと、
前記第1のユーザが前記第1のユーザに関連するデータの共有を許可または禁止することを可能にする許可インタフェースを前記第1のコンピューティングデバイス上の前記メッセージングアプリケーションにレンダリングさせるステップと、
前記第1のユーザに関連するデータの共有の許可を示す前記第1のユーザからのユーザ入力を受信すると、前記ユーザ要求に応答して前記第1のユーザに関連するデータにアクセスして、前記第1のユーザに関連するデータを前記支援エージェントと共有するステップと
を含む、コンピュータが実行する方法。
【請求項2】
前記第1のユーザは人間のユーザであり、前記少なくとも1つの他のユーザは前記支援エージェントである、請求項1に記載のコンピュータが実行する方法。
【請求項3】
前記ユーザ要求を検出するステップは、前記メッセージングアプリケーションで受信された1つまたは複数のメッセージを前記支援エージェントが分析することを含み、前記メッセージは前記第1のユーザから前記支援エージェントに送信される、請求項2に記載のコンピュータが実行する方法。
【請求項4】
前記1つまたは複数のメッセージは、テキストメッセージ、マルチメディアメッセージ、および前記支援エージェントへのコマンドのうちの1つまたは複数を含む、請求項3に記載のコンピュータが実行する方法。
【請求項5】
前記第1のユーザの1つまたは複数の動作に基づいて前記支援エージェントを自動的に起動するステップをさらに含む、請求項2〜4のいずれか一項に記載のコンピュータが実行する方法。
【請求項6】
前記支援エージェントは、
特殊文字コマンド、
前記支援エージェントに関連するユーザインタフェース呼び出し要素のユーザ選択、
前記支援エージェントに対応するアバターのユーザ選択、および
前記支援エージェントによって提供される自動返信提案のユーザ選択
のうちの1つまたは複数に応答して起動される、請求項2〜5のいずれか一項に記載のコンピュータが実行する方法。
【請求項7】
前記第1のユーザは人間のユーザであり、前記少なくとも1つの他のユーザは、第2のコンピューティングデバイスに関連付けられた、前記第1のユーザとは異なる第2の人間のユーザを含み、前記許可インタフェースは、前記第1のユーザに関連付けられた前記第1のコンピューティングデバイス上の前記メッセージングアプリケーションにレンダリングされ、前記許可インタフェースは、前記第2の人間のユーザに関連付けられた前記第2のコンピューティングデバイス上には表示されない、請求項1に記載のコンピュータが実行する方法。
【請求項8】
前記第1のユーザは人間のユーザであり、前記少なくとも1つの他のユーザは、前記第1のユーザとは異なる第2の人間のユーザと、前記支援エージェントとを含み、前記ユーザ要求は、前記第1のユーザに関連付けられた前記第1のコンピューティングデバイスから受信され、前記方法は、前記ユーザ要求に応答して、前記メッセージングアプリケーションにおいて別個の会話を開始するステップをさらに含み、前記別個の会話は、前記第1のユーザおよび前記支援エージェントを中に入れ、かつ前記第2の人間のユーザを入らせない、請求項1に記載のコンピュータが実行する方法。
【請求項9】
前記第1のユーザと前記少なくとも1つの他のユーザのうちの少なくとも1つからの入力に基づいて第1のメッセージングアプリケーションに1つまたは複数の提案を提供するステップをさらに含む、請求項1〜8のいずれか一項に記載のコンピュータが実行する方法。
【請求項10】
前記1つまたは複数の提案を前記メッセージングアプリケーションにおいて表示させるステップをさらに含む、請求項9に記載のコンピュータが実行する方法。
【請求項11】
前記1つまたは複数の提案は、前記第1のユーザによって選択されると、対応する提案の詳細を表示させる提案要素としてレンダリングされる、請求項10に記載のコンピュータが実行する方法。
【請求項12】
非一時的なコンピュータ可読媒体に接続された1つまたは複数のハードウェアプロセッサを備えるシステムであって、前記非一時的なコンピュータ可読媒体はそれに格納されたソフトウェア命令を含み、前記ソフトウェア命令は、1つまたは複数のプロセッサにより実行されたときに、
第1のユーザに関連付けられた第1のコンピューティングデバイス上のメッセージングアプリケーションからユーザ要求を受信するステップであって、前記メッセージングアプリケーションは、前記第1のユーザと少なくとも1つの他のユーザとの間の通信を可能にするように構成されている、ステップと、
前記ユーザ要求に応答する動作が、前記第1のユーザと支援エージェントとの間での前記第1のユーザに関連するデータの共有を必要とすることを支援エージェントを用いて決定するステップと、
前記第1のコンピューティングデバイス上の前記メッセージングアプリケーションに許可インタフェースをレンダリングさせるステップであって、前記許可インタフェースは、前記第1のユーザが前記第1のユーザに関連するデータの共有を許可または禁止することを可能にする、ステップと、
前記第1のユーザに関連するデータの共有の許可を示す前記第1のユーザからのユーザ入力を受信すると、前記ユーザ要求に応答して前記第1のユーザに関連するデータにアクセスして、前記第1のユーザに関連するデータを前記支援エージェントと共有するステップと
を含む処理を前記1つまたは複数のプロセッサに実行させる、システム。
【請求項13】
前記第1のユーザは人間のユーザであり、前記少なくとも1つの他のユーザは前記支援エージェントである、請求項12に記載のシステム。
【請求項14】
前記処理は、前記メッセージングアプリケーションにおいて受信された前記第1のユーザから前記支援エージェントへの1つまたは複数のメッセージを前記支援エージェントにおいて分析することにより前記ユーザ要求を検出することをさらに含む、請求項13に記載のシステム。
【請求項15】
前記第1のユーザは人間のユーザであり、前記少なくとも1つの他のユーザは、第2のコンピューティングデバイスに関連付けられた、前記第1のユーザとは異なる第2の人間のユーザを含み、前記許可インタフェースは、前記第1のユーザに関連付けられた前記第1のコンピューティングデバイス上の前記メッセージングアプリケーションにレンダリングされ、前記許可インタフェースは、前記第2の人間のユーザに関連付けられた前記第2のコンピューティングデバイス上には表示されない、請求項12に記載のシステム。
【請求項16】
前記第1のユーザは人間のユーザであり、前記少なくとも1つの他のユーザは、前記第1のユーザとは異なる第2の人間のユーザと、前記支援エージェントとを含み、前記ユーザ要求は、前記第1のユーザに関連付けられた前記第1のコンピューティングデバイスから受信され、前記処理は、前記ユーザ要求に応答して、前記メッセージングアプリケーションにおいて別個の会話を開始するステップをさらに含み、前記別個の会話は、前記第1のユーザおよび前記支援エージェントを中に入れ、かつ前記第2の人間のユーザを入らせない、請求項12に記載のシステム。
【請求項17】
前記第1のユーザおよび前記少なくとも1つの他のユーザのうちの少なくとも1つからの入力に基づいて、第1のメッセージングアプリケーションに1つまたは複数の提案を提供するステップをさらに含む、請求項12に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
支援エージェント(すなわちボット)とのユーザインタラクション、特にボットの識別、メッセージングアプリケーションボットのためのユーザプライバシー管理、および/または以前のボット提案の呼び戻しに関する。
【背景技術】
【0002】
ユーザは、メッセージングサービスを使用して、メッセージング会話、例えば、チャット、インスタントメッセージなどを行う。メッセージング会話は、コンピュータ、モバイルデバイス、ウェアラブルデバイスなどの任意のユーザデバイスを使用して行い得る。ユーザがメッセージングアプリケーションを使用してより多くの会話を行い、かつより多くのタスクを実行する場合、メッセージング会話またはタスクの自動支援(例えば、ボットやその他の自動化されたアシスタントアプリケーション)が効率を改善するのに役立ち得る。オートメーションはメッセージング通信をユーザにとってより効率的にするのに役立つものの、メッセージボットがユーザ情報にアクセスする時期および方法、およびメッセージボットが他のユーザとアクセスおよび/または共有することが許可されるユーザ情報がどれであるかに関するプライバシーおよび許可を管理する必要があり得る。
【0003】
本明細書で提供される背景技術は、本開示の状況を一般的に提示することを目的とするものである。この背景技術の欄において記載される限りにおいて、現時点で明記されている本発明者らの取り組み、ならびにその他、出願時に先行技術としてみなされない態様の記載は、明示的にも黙示的にも、本開示に対する先行技術として認められない。
【発明の概要】
【0004】
いくつかの実施形態は、コンピュータが実行する方法を含むことができる。その方法は、第1のユーザと少なくとも1つの他のユーザとの間の通信を可能にするために、前記第1のユーザに関連付けられた第1のコンピューティングデバイス上にメッセージングアプリケーションを提供するステップを含むことができる。前記方法はまた、前記メッセージングアプリケーションにおいてユーザ要求を検出するステップと、前記ユーザ要求に応答する動作が前記第1のユーザに関連するデータの共有を必要とすることをプログラムにより決定するステップとを含むことができる。前記方法は、前記第1のユーザが前記第1のユーザに関連するデータの共有を許可または禁止することを可能にする許可インタフェースを前記第1のコンピューティングデバイス上の前記メッセージングアプリケーションにレンダリングさせるステップと、前記第1のユーザに関連するデータの共有の許可を示す前記第1のユーザからのユーザ入力を受信すると、前記ユーザ要求に応答して前記第1のユーザに関連するデータにアクセスして、前記メッセージングアプリケーション内の前記第1のユーザに関連するデータを共有するステップとをさらに含むことができる。
【0005】
いくつかの実施形態において、前記第1のユーザは人間のユーザであり、前記少なくとも1つの他のユーザは支援エージェントである。前記ユーザ要求を検出するステップは、前記支援エージェントが前記メッセージングアプリケーションで受信された1つまたは複数のメッセージを分析することを含むことができ、前記メッセージは前記第1のユーザから前記支援エージェントに送信される。前記1つまたは複数のメッセージは、テキストメッセージ、マルチメディアメッセージ、および前記支援エージェントへのコマンドのうちの1つまたは複数を含むことができる。
【0006】
前記方法はまた、前記第1のユーザの1つまたは複数の動作に基づいて前記支援エージェントを自動的に起動するステップを含むことができる。前記支援エージェントは、特殊文字コマンド、前記支援エージェントに関連するユーザインタフェース呼び出し要素のユーザ選択、前記支援エージェントに対応するアバターのユーザ選択、および前記支援エージェントによって提供される自動返信提案のユーザ選択のうちの1つまたは複数に応答して起動することができる。
【0007】
いくつかの実施形態において、前記第1のユーザは人間のユーザを含むことができ、前記少なくとも1つの他のユーザは、第2のコンピューティングデバイスに関連付けられた、前記第1のユーザとは異なる第2の人間のユーザを含むことができ、前記許可インタフェースは、前記第1のユーザに関連付けられた前記第1のコンピューティングデバイス上の前記メッセージングアプリケーションにレンダリングされることができ、前記許可インタフェースは、前記第2の人間のユーザに関連付けられた前記第2のコンピューティングデバイス上には表示されない。
【0008】
前記第1のユーザは人間のユーザを含むことができ、前記少なくとも1つの他のユーザは、前記第1のユーザとは異なる第2の人間のユーザと、支援エージェントとを含むことができ、前記ユーザ要求は、前記第1のユーザに関連付けられた第1のコンピューティングデバイスから受信される。前記方法は、前記ユーザ要求に応答して、前記メッセージングアプリケーションにおいて別個の会話を開始するステップをさらに含み、前記別個の会話は、前記第1のユーザおよび前記支援エージェントを中にいれ、かつ前記第2の人間のユーザを入らせない。
【0009】
前記方法は、前記第1のユーザと前記少なくとも1つの他のユーザのうちの少なくとも1つからの入力に基づいて前記第1のメッセージングアプリケーションに1つまたは複数の提案を提供するステップをさらに含むことができる。方法は、メッセージングアプリケーションに1つまたは複数の提案を表示させるステップをさらに含むことができる。前記1つまたは複数の提案は、前記第1のユーザによって選択されると、対応する提案の詳細を表示させる提案要素としてレンダリングされることができる。
【0010】
いくつかの実施形態は、メッセージングアプリケーションにおいて、以前に表示された確認応答メッセージの選択に対応するユーザ入力を支援エージェントから検出するステップを含む、コンピュータが実行する方法を含むことができ、前記以前に表示された確認応答メッセージは、1つまたは複数の以前に表示された提案された自動返信応答に関連付けられている。前記方法はまた、前記以前に表示された提案された自動返信応答を表示させるステップと、前記1つまたは複数の以前に表示された提案された自動返信応答のうちの任意の1つがユーザにより選択されたという指示を受信するステップとを含むことができる。前記方法はさらに、前記1つまたは複数の以前に表示された提案された自動返信応答のうちの任意の1つを前記支援エージェントおよび前記メッセージングアプリケーション内の会話に参加する第2のユーザに送信するステップをさらに含むことができる。
【0011】
前記方法はまた、前記ユーザ入力に応答して前記支援エージェントを起動するステップを含むことができる。いくつかの実施形態において、前記会話は、ユーザと少なくとも1つの他のユーザとを含むことができ、前記ユーザは第1の人間のユーザであり、前記少なくとも1つの他のユーザは、前記第1の人間のユーザとは異なる第2の人間のユーザを含み、前記第1の人間のユーザは、第1のコンピューティングデバイスと関連付けられており、前記第2の人間のユーザは、第2のコンピューティングデバイスと関連付けられており、前記以前に表示されたメッセージ及び前記1つまたは複数の提案された自動返信応答は、前記第1の人間のユーザに関連付けられた前記第1のコンピューティングデバイス上の前記メッセージングアプリケーションにおいて最初にレンダリングされ、前記支援エージェントおよび前記メッセージングアプリケーション内の会話のうちの1つまたは複数に前記1つまたは複数の提案された自動返信応答を提供するステップは、前記メッセージングアプリケーションにおいて前記1つまたは複数の提案された自動返信応答を提供することを含む。
【0012】
いくつかの実施形態は、非一時的なコンピュータ可読媒体に接続された1つまたは複数のハードウェアプロセッサを備えるシステムを含むことができ、前記非一時的なコンピュータ可読媒体はそれに格納されたソフトウェア命令を含み、前記ソフトウェア命令は、1つまたは複数のプロセッサにより実行されたときに1つまたは複数のプロセッサに処理を実行させる。前記処理は、第1のユーザに関連付けられた第1のコンピューティングデバイス上のメッセージングアプリケーションからユーザ要求を受信するステップを含むことができ、前記メッセージングアプリケーションは、前記第1のユーザと少なくとも1つの他のユーザとの間の通信を可能にするように構成され、また、前記ユーザ要求に応答する動作が前記第1のユーザに関連するデータの共有を必要とすることをプログラムにより決定するステップを含むことができる。前記処理はまた、前記第1のコンピューティングデバイス上の前記メッセージングアプリケーションに許可インタフェースをレンダリングさせるステップを含むことができ、前記許可インタフェースは、前記第1のユーザが前記第1のユーザに関連するデータの共有を許可または禁止することを可能にし、また、前記第1のユーザに関連するデータの共有の許可を示す前記第1のユーザからのユーザ入力を受信すると、前記ユーザ要求に応答して前記第1のユーザに関連するデータにアクセスして、前記メッセージングアプリケーション内の前記第1のユーザに関連するデータを共有するステップを含むことができる。
【0013】
いくつかの実施形態において、前記第1のユーザは人間のユーザを含むことができ、前記少なくとも1つの他のユーザは支援エージェントを含むことができる。前記ユーザ要求を検出するステップは、支援エージェントにおいて、前記メッセージングアプリケーションにおいて受信された前記第1のユーザから前記支援エージェントへの1つまたは複数のメッセージを分析することを含むことができる。前記第1のユーザは人間のユーザを含むことができ、前記少なくとも1つの他のユーザは、第2のコンピューティングデバイスに関連付けされた、前記第1のユーザとは異なる第2の人間のユーザを含むことができ、前記許可インタフェースは、前記第1のユーザに関連付けられた前記第1のコンピューティングデバイス上の前記メッセージングアプリケーションにレンダリングされ、前記許可インタフェースは、前記第2の人間のユーザに関連付けられた前記第2のコンピューティングデバイス上には表示されない。
【0014】
いくつかの実施形態において、前記第1のユーザは人間のユーザを含むことができ、前記少なくとも1つの他のユーザは、前記第1のユーザとは異なる第2の人間のユーザと、支援エージェントとを含むことができ、前記ユーザ要求は、前記第1のユーザに関連付けられた前記第1のコンピューティングデバイスから受信され、前記処理は、前記ユーザ要求に応答して、前記メッセージングアプリケーションにおいて別個の会話を開始するステップをさらに含み、前記別個の会話は、前記第1のユーザおよび前記支援エージェントを中に入れ、かつ前記第2の人間のユーザを入らせない。
【0015】
前記処理は、前記第1のユーザおよび前記少なくとも1つの他のユーザのうちの少なくとも1つからの入力に基づいて、前記第1のメッセージングアプリケーションに1つまたは複数の提案を提供するステップをさらに含むことができる。
【図面の簡単な説明】
【0016】
図1】いくつかの実施形態による、ユーザとボットとの間でメッセージを交換し得る例示的な環境のブロック図を示す。
図2】いくつかの実施形態による、例示的なボット起動イベントを示す図である。
図3】いくつかの実施形態による、ボット起動の例示的な方法を示すフロー図である。
図4】いくつかの実施形態による、例示的なボット識別および起動要素を示すユーザインタフェースの図である。
図5】いくつかの実施形態による、ボットインタラクション中にユーザのプライバシーを管理する例示的な方法のフロー図である。
図6】いくつかの実施形態による、ボットインタラクション中にユーザのプライバシーを管理するための例示的なユーザインタフェースの図である。
図7】いくつかの実施形態による、以前のボット提案を呼び戻す例示的な方法のフロー図である。
図8】いくつかの実施例による、以前のボット提案の呼び戻しプロセスの一例を示す例示的なユーザインタフェースの図である。
図9】いくつかの実施例による、以前のボット提案の呼び戻しプロセスの一例を示す例示的なユーザインタフェースの図である。
図10】いくつかの実施例による、以前のボット提案の呼び戻しプロセスの一例を示す例示的なユーザインタフェースの図である。
図11】いくつかの実施例による、以前のボット提案の呼び戻しプロセスの一例を示す例示的なユーザインタフェースの図である。
図12】いくつかの実施例による、以前のボット提案の呼び戻しプロセスの一例を示す例示的なユーザインタフェースの図である。
図13】いくつかの実施形態による、許可を管理するための例示的なプロセスを示すフロー図である。
図14】いくつかの実施形態による、任意のボットタイプについてテーマ化された例示的なユーザインタフェースを示す図である。
図15】いくつかの実施形態による、任意のボットタイプについてテーマ化された例示的なユーザインタフェースを示す図である。
図16】いくつかの実施形態による、ボットインタラクションのために構成された例示的なコンピューティングデバイスの図である。
【発明を実施するための形態】
【0017】
本明細書に記載される1つまたは複数の実施形態は、一般に、支援エージェント(すなわちボット)とのユーザインタラクション、特にボットの識別、メッセージングアプリケーションボットのためのユーザプライバシー管理、および/または以前のボット提案の呼び戻しに関する。
【0018】
図1は、いくつかの実施形態においてボットなどの自動支援エージェントを可能にし、また、いくつかの実施形態において自動支援エージェントを提供するメッセージングサービスを提供するための例示的な環境100のブロック図を示す。例示的な環境100は、メッセージングサーバ101、1つまたは複数のクライアントデバイス115a、115n、サーバ135、およびネットワーク140を含む。ユーザ125a−125nは、個々のクライアントデバイス115a、115nに関連付けられ得る。サーバ135は、例えば、メッセージングサービスを提供するパーティとは異なるパーティによって制御されるサードパーティのサーバであり得る。様々な実施形態において、サーバ135は、以下でさらに詳細に説明するように、ボットサービスを実施し得る。いくつかの実施形態において、環境100は、図1に示される1つまたは複数のサーバまたはデバイスを含んでいなくてもよく、また図1に示されていない他のサーバまたはデバイスを含み得る。図1および残りの図面において、参照番号の後の文字、例えば「115a」は、その特定の参照番号を有する要素への参照を表す。後続の文字を含まないテキスト中の参照番号、例えば「115」は、その参照番号を有する要素の実施形態に対する一般的な参照を表す。
【0019】
図示された実施形態において、メッセージングサーバ101、クライアントデバイス115、およびサーバ135は、ネットワーク140を介して通信可能に接続されている。様々な実施形態において、ネットワーク140は、従来のタイプの有線または無線であってもよく、かつスター構成、トークンリング構成または他の構成を含み得る。さらに、ネットワーク140は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)(例えば、インターネット)、および/または複数のデバイスが通信し得る他の相互接続されたデータパスを含み得る。いくつかの実施形態において、ネットワーク140はピアツーピアネットワークであり得る。ネットワーク140はまた、様々な異なる通信プロトコルでデータを送信するための電気通信ネットワークの一部に結合されるか、またはそれを含み得る。いくつかの実施形態において、ネットワーク140は、ショートメッセージングサービス(SMS)、マルチメディアメッセージングサービス(MMS)、ハイパーテキスト転送プロトコル(HTTP)、直接データ接続、電子メール他を介することを含んでデータを送受信するためのBluetooth(登録商標)通信ネットワーク、Wi−Fi(登録商標)、またはセルラー通信ネットワークを含む。図1は、クライアントデバイス115、メッセージングサーバ101、およびサーバ135に結合された1つのネットワーク140を示しているが、実際には、1つまたは複数のネットワーク140をこれらのエンティティに結合し得る。
【0020】
メッセージングサーバ101は、プロセッサ、メモリ、およびネットワーク通信能力を含み得る。いくつかの実施形態において、メッセージングサーバ101はハードウェアサーバである。いくつかの実施形態において、メッセージングサーバ101は、仮想化された環境に組み込まれてもよい。例えば、メッセージングサーバ101は、1つまたは複数の他の仮想マシンを含み得るハードウェアサーバ上で実行される仮想マシンであり得る。メッセージングサーバ101は、信号線102を介してネットワーク140に通信可能に接続される。信号線102は、イーサネット(登録商標)、同軸ケーブル、光ファイバケーブルなどの有線接続、またはWi−Fi、Bluetooth、または他の無線技術等の無線接続であり得る。いくつかの実施形態において、メッセージングサーバ101は、ネットワーク140を介してクライアントデバイス115a−115n、サーバ135、およびボット113のうちの1つまたは複数との間でデータを送受信する。いくつかの実施形態において、メッセージングサーバ101は、クライアント機能を提供してユーザ(例えば、ユーザ125のいずれか)が他のユーザおよび/またはボットとメッセージを交換することを可能にするメッセージングアプリケーション103aを含み得る。メッセージングアプリケーション103aは、サーバアプリケーション、クライアント−サーバアプリケーションのサーバモジュール、または分散アプリケーション(例えば、1つまたは複数のクライアントデバイス115上の対応するクライアントメッセージングアプリケーション103bを有する)であり得る。
【0021】
メッセージングサーバ101は、また、メッセージングサーバ101を介して交換されるメッセージ、1つまたは複数のボットのデータおよび/または構成、および1人または複数人のユーザ125に関連するユーザデータを格納し得るデータベース199を含み得、全てが、そのようなデータを格納するための個々のユーザからの明確な許可の上で行われる。いくつかの実施形態において、メッセージングサーバ101は、ボット107aおよび111などの1つまたは複数の支援エージェントを含み得る。他の実施形態では、支援エージェントは、メッセージングサーバ101ではなく、クライアントデバイス115a−115n上で実施され得る。
【0022】
メッセージングアプリケーション103aは、ユーザ125および1つまたは複数のボット105,107a、107b、109a、109b、111および113との間でメッセージの交換を可能にするためにプロセッサによって動作可能なコードおよびルーチンであり得る。いくつかの実施形態において、フィールドプログラマブルゲートアレイ(FPGA)または特定用途向け集積回路(ASIC)を含むハードウェアを使用して実施し得る。いくつかの実施形態において、メッセージングアプリケーション103aは、ハードウェアとソフトウェアの組み合わせを使用して実施し得る。
【0023】
いくつかの実施形態において、クライアントデバイス115に関連付けられた個々のユーザがメッセージの格納に対する同意を提供する場合、データベース199は、1つまたは複数のクライアントデバイス115間で交換されるメッセージを格納し得る。いくつかの実施形態において、クライアントデバイスに関連する個々のユーザがメッセージの記憶に対する同意を提供する場合、データベース199は、1つまたは複数のクライアントデバイス115と、たとえば別のクライアントデバイス、メッセージングサーバ101、およびサーバ135などの異なるデバイス上で実施される1つまたは複数のボットとの間で交換されるメッセージを格納し得る。1人または複数人のユーザが同意を提供しない場合、それらのユーザによって送受信されたメッセージは格納されない。
【0024】
いくつかの実施形態において、メッセージを暗号化して、例えば、メッセージの送信者および受信者のみが暗号化されたメッセージを見ることができるようにしてもよい。いくつかの実施形態において、メッセージが格納される。いくつかの実施形態において、データベース199は、ボット107a、ボット111などの1つまたは複数のボットのデータおよび/または構成をさらに格納し得る。いくつかの実施形態において、ユーザ125がユーザデータ(ソーシャルネットワークデータ、連絡先情報、画像など)の格納に対する同意を提供する場合、データベース199はまた、そのような同意を提供した個々のユーザ125に関連するユーザデータを格納し得る。
【0025】
いくつかの実施形態において、メッセージングアプリケーション103a/103bは、ユーザ125が新たなボットを作成することを可能にするユーザインタフェースを提供し得る。これらの実施形態では、メッセージングアプリケーション103a/103bは、ユーザ作成のボットをメッセージングアプリケーション103a/103bのユーザ間の会話に含むようにすることを可能にする機能を含み得る。
【0026】
クライアントデバイス115は、メモリとハードウェアプロセッサとを含むコンピューティングデバイス、例えば、カメラ、ラップトップコンピュータ、タブレットコンピュータ、携帯電話、ウェアラブルデバイス、モバイル電子メールデバイス、携帯ゲームプレーヤ、携帯音楽プレーヤ、リーダデバイス、ヘッドマウントディスプレイ、またはネットワーク140に無線でアクセス可能な他の電子デバイスであり得る。
【0027】
図示された実施形態において、クライアントデバイス115aは、信号線108を介してネットワーク140に接続され、クライアントデバイス115nは、信号線110を介してネットワーク140に接続される。信号線108および110は、有線接続(例えば、イーサネット(登録商標))、またはWi−Fi、Bluetooth、または他の無線技術などの無線接続であり得る。クライアントデバイス115a、115nは、それぞれユーザ125a、125nによってアクセスされる。図1におけるクライアントデバイス115a、115nは、例として使用される。図1は、2つのクライアントデバイス115aおよび115nを示しているが、本開示は、1つまたは複数のクライアントデバイス115を有するシステムアーキテクチャに適用される。
【0028】
いくつかの実施形態において、クライアントデバイス115は、ユーザ125が装着するウェアラブルデバイスであってもよい。例えば、クライアントデバイス115は、クリップ(例えば、リストバンド)の一部、宝飾品の一部、または眼鏡の一部として含まれるようにしてもよい。別の例では、クライアントデバイス115は、スマートウォッチとすることができる。様々な実施形態において、ユーザ125は、デバイスのディスプレイ上のメッセージングアプリケーション103a/103bからのメッセージを確認し、デバイスのスピーカまたは他の出力デバイスなどを介してメッセージにアクセスするようにしてもよい。例えば、ユーザ125は、スマートウォッチまたはスマートリストバンドのディスプレイ上のメッセージを確認し得る。別の例では、ユーザ125は、クライアントデバイス115、クライアントデバイス115のスピーカ、クライアントデバイス115の触覚フィードバック要素などに接続されるか、それらの一部に接続されたヘッドフォン(図示せず)を介してメッセージにアクセスし得る。
【0029】
いくつかの実施形態において、メッセージングアプリケーション103bは、クライアントデバイス115aに格納される。いくつかの実施形態において、メッセージングアプリケーション103b(例えば、シンクライアントアプリケーション、クライアントモジュールなど)は、クライアントデバイス115a上に格納されたクライアントアプリケーションであり得、対応するメッセージングアプリケーション103a(例えば、サーバアプリケーション、サーバモジュールなど)はメッセージングサーバ101上に格納されている。例えば、メッセージングアプリケーション103bは、クライアントデバイス115a上のユーザ125aによって作成されたメッセージを、メッセージングサーバ101上に格納されたメッセージングアプリケーション103aに送信し得る。
【0030】
いくつかの実施形態において、メッセージングアプリケーション103aは、メッセージングサーバ101上に格納されたスタンドアロンアプリケーションであり得る。ユーザ125aは、クライアントデバイス115a上のブラウザまたは他のソフトウェアを使用してウェブページを介してメッセージングアプリケーション103aにアクセスし得る。いくつかの実施形態において、クライアントデバイス115a上で実施されるメッセージングアプリケーション103bは、メッセージングサーバ101に含まれるモジュールと同じか、または同様のモジュールを含み得る。いくつかの実施形態において、メッセージングアプリケーション103bは、スタンドアロンクライアントアプリケーションとして、例えば、1つまたは複数のクライアントデバイス115が他のクライアントデバイス115とのメッセージ交換を可能にする機能を含むピアツーピアまたは他の構成で、実施されてもよい。これらの実施形態では、メッセージングサーバ101は、制限されたメッセージング機能を含むか、またはメッセージング機能を含まない(例えば、クライアント認証、バックアップ等)。いくつかの実施形態において、メッセージングサーバ101は、1つまたは複数のボット、たとえばボット107aおよびボット111を実施し得る。
【0031】
サーバ135は、プロセッサ、メモリ、およびネットワーク通信能力を含み得る。いくつかの実施形態において、サーバ135はハードウェアサーバである。サーバ135は、信号線128を介してネットワーク140に通信可能に接続される。信号線128は、イーサネット、同軸ケーブル、光ファイバケーブルなどの有線接続、またはWi−Fi、Bluetooth、または他の無線技術などの無線接続であり得る。いくつかの実施形態において、サーバ135は、ネットワーク140を介して1つまたは複数のメッセージングサーバ101およびクライアントデバイス115との間でデータを送受信する。サーバ135は1つのサーバとして示されているが、様々な実施形態が1つまたは複数のサーバ135を含み得る。サーバ135は、サーバアプリケーションまたはサーバモジュール、例えばボット109aおよびボット113として1つまたは複数のボットを実施し得る。
【0032】
様々な実施形態において、サーバ135は、メッセージングサーバ101を管理するのと同じエンティティ、例えばメッセージングサービスのプロバイダの一部であり得る。いくつかの実施形態において、サーバ135は、例えば、メッセージングアプリケーション103a/103bを提供するエンティティとは異なるエンティティによって制御されるサードパーティのサーバであり得る。いくつかの実施形態において、サーバ135はボットを提供またはホストする。
【0033】
ボットは、1つまたは複数のコンピュータ上で実施され、ユーザが例えばメッセージングアプリケーション103a/103bによりテキストを主に介してインタラクションする自動化されたサービスである。ボットは、ボットが様々なメッセージングアプリケーションのユーザとインタラクションできるようにボットプロバイダによって実施され得る。いくつかの実施形態において、メッセージングアプリケーション103a/103bのプロバイダは、1つまたは複数のボットも提供し得る。いくつかの実施形態において、メッセージングアプリケーション103a/103bのプロバイダによって提供されるボットは、ボットを、例えば他のプロバイダによって提供される他のメッセージングアプリケーションに含むようにすることができるように構成され得る。ボットは、他のモードよりもいくつかの利点がある。例えば、ボットは、クライアントデバイスにアプリケーションをインストールすることなく、またはウェブサイトにアクセスすることなく、ユーザが新たなサービス(例えば、タクシー予約サービス、レストラン予約サービスなど)を試みることを可能にし得る。さらに、ウェブサイト、ソフトウェアアプリケーション、例えば、インタラクション型音声応答(IVR:interactive voice response)サービスに対する電話コール、またはサービスとインタラクションする他の方法を使用するのに必要とされるものと比較して、最小限の学習を必要とするか、または学習無しで、ユーザはテキストを介してボットとインタラクションし得る。メッセージングサービスまたはアプリケーション内にボットを組み込むことによって、ユーザは、他のユーザと共同して、メッセージングサービス内での旅行計画、買い物、イベントのスケジューリング、情報取得などの様々なタスクを達成し、かつタスクを達成するための様々なアプリケーション(例えば、タクシー予約アプリケーション、レストラン予約アプリケーション、カレンダーアプリケーションなど)間またはウェブサイト間の切り替えなどの面倒な操作を排除することができるようにし得る。
【0034】
ボットは、メッセージングアプリケーション103a/103bを介して1人または複数のユーザ(例えば、ユーザ125a−nのいずれか)とインタラクションして、情報を提供するか、またはメッセージングアプリケーション103内で特定の動作を実行するコンピュータプログラムまたはアプリケーション(例えば、ソフトウェアアプリケーション)として実施され得る。一例として、情報検索ボットは、インターネット上の情報を検索し、最も関連性の高い検索結果をメッセージングアプリケーション内に提示し得る。別の例として、トラベルボットは、例えば、メッセージングアプリケーション内の旅行およびホテルチケットの購入を可能にすること、メッセージングアプリケーション内でホテル予約を行うこと、メッセージング内でレンタカー予約を行うこと、およびその他によって、メッセージングアプリケーション103を介して旅行手配を行う能力を有し得る。別の例として、タクシーボットは、別途タクシー予約アプリを起動するか、またはコールすることなく、例えば、ユーザの位置(ユーザ125が位置情報へのアクセスを許可したときに、クライアントデバイス115からタクシーボットによって取得される)に対してタクシーを呼び出す能力を有し得る。別の例として、コーチ/チューターボットは、ユーザを個人指導して、例えば、試験に出題される可能性のある問題を質問し、ユーザの回答が正しいか、または誤りであるかどうかについてのフィードバックを提供することによって、メッセージングアプリケーション内でいくつかの主題においてユーザを教育し得る。別の例として、ゲームボットは、メッセージングアプリケーション内のユーザと反対側または同じ側でゲームをプレイし得る。別の例として、商用ボットは、例えば、業者のカタログから製品情報を取得してメッセージングアプリケーションを介して購入を可能にすることによって、特定の業者からのサービスを提供し得る。別の例として、インタフェースボットは、メッセージングアプリケーションのユーザが遠隔デバイスまたは車両とチャットし、情報を取得し、および/または命令を提供できるように、遠隔デバイスまたは車両にインタフェースし得る。
【0035】
ボットの能力は、ユーザの意図を理解し、それを実行することを含み得る。ユーザの会話およびユーザの状況を分析し理解することによって、ユーザの意図を理解し得る。ボットはまた、経時的に展開する会話に基づいて、会話の変化する状況または変化する感情および/またはユーザの意図を理解し得る。例えば、ユーザAがコーヒーミーティングを提案しているが、ユーザBがコーヒーを好きではないと言った場合、ボットは、ユーザBに対してコーヒーについて否定的な感情スコアを割り当て、かつミーティングに関してコーヒーショップを提案しない。
【0036】
メッセージングアプリケーション103a/103bのユーザと通信することができるボットを実施することによって、多くの利点が提供され得る。従来、ユーザは、ソフトウェアアプリケーションまたはウェブサイトを利用して、請求書の支払い、料理の注文、チケットの予約などの活動を行うことができる。そのような実施の問題は、複数の活動を行うために、ユーザが複数のソフトウェアアプリケーションおよびウェブサイトをインストールまたは使用する必要があることである。例えば、ユーザは、公共料金請求書(例えば、公益会社から)を支払ったり、映画チケット(例えば、発券サービスプロバイダからのチケット予約アプリケーション)を購入したり、(例えば、個々のレストランから)レストランの予約をしたりするための異なるソフトウェアアプリケーションをインストールするか、または各活動のために個々のウェブサイトを訪問する必要があり得る。このような実施の別の問題は、ユーザが複雑なユーザインタフェース、例えばウィンドウ、ボタン、チェックボックス、ダイアログボックスなどの複数のユーザインタフェース要素を使用して実施されるユーザインタフェースを習得する必要があり得ることである。
【0037】
したがって、1つまたは複数の説明した実施形態の利点は、単一のアプリケーションが、別個のウェブサイトにアクセスすること、またはソフトウェアアプリケーションをインストールおよび実行する必要なく、任意の数のパーティとのインタラクションを含む活動をユーザが実行できることであり、このことは、クライアントデバイス上のメモリ、ストレージ、および処理リソースの消費を低減するという技術的効果がある。説明した実施形態の利点は、会話型インタフェースが、例えば、複雑なユーザインタフェースを習得する必要なしに、ユーザがそのような活動を完了するのをより容易かつ迅速にし、このことは、計算資源の消費を低減するという技術的効果がある。説明した実施形態の別の利点は、ボットを実施することにより、様々な参加エンティティがより低コストでユーザインタラクションを提供することが可能になり、1つまたは複数の通信サーバを使用して実施される料金不要の電話番号サービス、1つまたは複数のウェブサーバ上でホストされるウェブサイト、電子メールサーバ上でホストされる顧客サポート電子メールなどのユーザインタラクションを可能にするために配備される計算資源の必要性を低減するという技術的効果がある。記載した特徴の別の技術的効果は、通信ネットワークを介してユーザタスクを完了するために必要なシステム処理リソースおよび送信リソースの消費という問題を軽減するということである。
【0038】
本明細書の特定の例は、ボットと1人または複数人のユーザとの間のインタラクション、ボットとユーザ125との間の1対1のインタラクション、ボットと2人以上のユーザとの間の1対多のインタラクション(例えば、グループメッセージング会話)、複数のボットと1人のユーザとの間の多対1のインタラクション、複数のボットと複数のユーザとの間の多対多のインタラクションなどの様々なタイプのインタラクションが可能である。さらに、いくつかの実施形態において、ボットは、メッセージングアプリケーション103を介して、ボット間の直接通信を介して、またはこれらの組み合わせを介して他のボット(例えば、ボット107a/107b、109a/109b、111、113など)とインタラクションするようにも構成され得る。例えば、レストラン予約ボットは、テーブルを予約するために特定のレストラン用のボットとインタラクションすることができる。
【0039】
特定の実施形態では、ボットは、会話型インタフェースを使用して自然言語を使用してユーザと会話形式でインタラクションし得る。特定の実施形態では、ボットはテンプレートベースのフォーマットを使用して、例えば、レストランの住所の要求に応答して、「レストランRの場所はL」のようなテンプレートを使用してユーザとインタラクションするための文章を作成し得る。場合によっては、ユーザがボットインタラクションフォーマットを選択すること、例えばボットが自然言語を使用してユーザとインタラクションするものであるかどうか、ボットがテンプレートベースのインタラクションを使用するものであるかどうかなどを選択することが可能であり得る。
【0040】
ボットが自然言語を使用して会話形式でインタラクションする場合、ボットのインタラクションの内容および/またはスタイルは、自然言語処理を使用して決定された会話の内容、ユーザの会話における独自性、および1つまたは複数の会話の状況(例えば、ユーザのインタラクション上の履歴情報、ソーシャルグラフに基づく会話におけるユーザ間の接続)、外部条件(例えば、天気、交通)、ユーザのスケジュール、ユーザに関連付けられた関連する状況などのうちの1つまたは複数に基づいて動的に変化し得る。このような場合、ボットのインタラクションの内容とスタイルは、会話に参加しているユーザが同意を提供している要因のみに基づいて変化する。
【0041】
一例として、会話のユーザが公式言語(例えば、スラング用語または絵文字がないか、または最小のスラング用語または絵文字)を使用していると判定された場合、ボットはまた、公式言語を使用してその会話内でインタラクションし得、逆も可能である。別の例として、会話中のユーザが、(現在および/または過去の会話に基づいて)絵文字のヘビーユーザであると判定された場合、ボットは、1つまたは複数の絵文字を使用してそのユーザとインタラクションし得る。別の例として、会話中の2人のユーザがソーシャルグラフ内で遠隔的に接続されていると判定された場合(例えば2人が友人の友人の友人であることを示す、2人の間に2つ以上の中間ノードを例えば有する場合)ボットは、その会話においてより公式な言語を使用し得る。会話に参加しているユーザが、ボットがユーザのソーシャルグラフ、スケジュール、場所、またはユーザに関連する他の状況などの要因を利用することに対する同意を提供していない場合、ボットのインタラクションの内容およびスタイルは、そのような要因の利用を必要としないデフォルトのスタイル、例えばニュートラルスタイルなどであり得る。
【0042】
さらに、いくつかの実施形態において、1つまたは複数のボットが、ユーザとの前後の会話に参加する機能を含み得る。例えば、「@ムービーボット(moviebot)、映画を推薦してもらえますか?」と入力することによりユーザが映画についての情報を要求する場合、ボット「ムービーボット」は、「あなたはコメディが良いですか?」と応答し得る。続いて、ユーザが例えば、「いいえ」と返事をすると、ボットが「分かりました。「スペースアンドスターズ」というタイトルのSF映画が大評判です。チケットを予約する必要がありますか?」と応答し得る。続いて、ユーザは、「はい、午後6時以降に行くことができます。スティーブが参加できるかどうか確認してください。」と指示し得る。ユーザの連絡先に関する情報にボットがアクセスすることに対する同意、およびボットからのメッセージの受信することに対するスティーブの同意の上で、ボットはユーザの友人のスティーブにメッセージを送信し、適切な時間に映画のチケットを予約する動作を実行し得る。
【0043】
特定の実施形態において、会話に参加するユーザは、例えば、ボット名またはボットハンドル(例えば、タクシー、@タクシーボット(taxibot)、@ムービーズ(movies)など)をタイプすることによって、特定のボットまたは特定のタスクを実行するボットを、音声コマンド(例えば、「バンクボット(bankbot)の呼び出し」など)を使用することにより、ユーザインタフェース要素(例えば、ボタンまたはボット名またはボットハンドルでラベル付けされた他の要素)のアクティブ化などによって、起動することが可能であり得る。ボットが呼び出されると、ユーザ125は、メッセージを他のユーザ125に送信するのと同様の方法で、メッセージングアプリケーション103a/103bを介してボットに送信し得る。例えば、タクシーを配車するために、ユーザは、「@タクシーボット、タクシーを呼んで」とタイプし得、ホテル予約をするために、ユーザは「@ホテルボット(hotelbot)、近くの中華料理のレストランで4人分のテーブルを予約して」とタイプし得る。
【0044】
特定の実施形態において、ボットは、特に呼び出されることなく、メッセージング会話内で情報または動作を自動的に提案し得る。即ち、ユーザはボットを特に起動する必要がないことがあり得る。これらの実施形態において、ボットは、会話の継続的な、または別個の時点での分析および理解に依存し得る。会話の分析は、特定のユーザのニーズを理解し、かつボットによって支援が提案されるべき時期を特定するために使用され得る。一例として、ユーザが情報を必要とすると判定した場合(例えば、ユーザが別のユーザに質問をすることに基づいて、複数のユーザがある情報を有してないことを示していることに基づいて)、ボットは、ある情報を検索し、回答を提案し得る。別の例として、複数のユーザが中華料理を食べることに興味を示していると判定された場合、ボットは、ユーザの近くの一組の中華料理のレストランを、場所、評価、およびレストランのウェブサイトのリンクなどの追加情報を含んで自動的に提案し得る。
【0045】
特定の実施形態では、ボットを自動的に起動するか、またはユーザがボットを明確に起動するのを待つのではなく、1つまたは複数のボットを起動するためにメッセージング会話の1人または複数人のユーザに自動提案を行うようにしてもよい。これらの実施形態において、会話は、継続的にまたは別々の時点で分析されてもよく、会話の分析は、特定のユーザのニーズを理解し、かつ会話内でボットが提案すべき時期を識別するために使用され得る。
【0046】
ボットが特に呼び出されることなくメッセージング会話内で情報または動作を自動的に提案する実施形態では、例えば、メッセージング会話に参加する1人または複数のユーザが、ユーザの会話の分析を実行中のボットに同意を提供しない場合、このような機能は無効にされる。さらに、そのような機能は、ユーザの入力に基づいて一時的に無効にされ得る。例えば、会話がプライベートまたは機密であることをユーザが示している場合、ユーザがボットを起動するための入力を提供するまで、会話の状況の分析は中断される。さらに、分析機能が無効にされている標示は、会話の参加者に、例えばユーザインタフェース要素を用いて提供され得る。
【0047】
様々な実施形態において、ボットは、様々な構成で実施され得る。例えば、図1に示すように、ボット105は、クライアントデバイス115a上で実施される。この例では、ボットは、クライアントデバイス115aに対してローカルなソフトウェアアプリケーション内のモジュールであり得る。例えば、ユーザがタクシー配車アプリケーションをクライアントデバイス115a上にインストールした場合、ボット機能は、タクシー配車アプリケーションにおけるモジュールとして組み込まれ得る。この例では、ユーザは、例えば、「@タクシーボット、タクシーを呼んで」というメッセージを送信することによってタクシーボットを呼び出し得る。メッセージングアプリケーション103bは、タクシー配車アプリケーションにおけるボットモジュールを自動的に起動させる。このようにして、ユーザがメッセージングアプリケーション103を介してボットと会話することができるように、ボットは、クライアントデバイス上でローカルに実施され得る。
【0048】
図1に示す別の例では、ボット107aがクライアントデバイス115aで実施されるように示され、ボット107bがメッセージングサーバ101上で実施されるように示されている。この例において、ボットは、例えば、ボット機能の一部がボット107a(サーバモジュール)およびボット107b(クライアントモジュール)の各々によって提供されるクライアント−サーバコンピュータプログラムとして実施され得る。例えば、ボットがハンドル@カレンダーを有するスケジューリングボットである場合、ユーザ115aは、「@カレンダー、夕方に洗濯物を取り込むことを通知して」とタイプすることにより、リマインダーをスケジューリングし得、このタイプはボット107b(クライアントモジュール)によって処理され得る。この例を続けると、ユーザ115aがボットに「ジムが4時に会えるか確認して」と伝えると、ボット107a(サーバモジュール)は、ユーザのジム(または、ジムのスケジューリングボット)とコンタクトをとってメッセージを交換して、ユーザ115aに応答を提供し得る。
【0049】
別の例では、ボット109a(サーバモジュール)がサーバ135上で実施され、ボット109b(クライアントモジュール)がクライアントデバイス115上で実施される。この例において、ボット機能は、クライアントデバイス115およびメッセージングサーバ101とは別のサーバ135上で実施されるモジュールによって提供される。いくつかの実施形態において、ボットは、例えば、複数のクライアントデバイスおよびサーバ(例えば、クライアントデバイス115、サーバ135、メッセージングサーバ101など)にわたって分散されたモジュールを有する分散アプリケーションとして実施されてもよい。いくつかの実施形態において、ボットは、サーバアプリケーション(例えばメッセージングサーバ101上で実施されるボット111、およびサーバ135上で実施されるボット113)として実施され得る。
【0050】
クライアントのみ、サーバのみ、クライアント−サーバ、分散などのような異なる実施形態は、異なる利点を提供し得る。例えば、クライアントのみの実施形態では、例えば、ネットワークアクセスなしで、ボット機能をローカルに提供することができ、このことは、例えば、ユーザがネットワークのカバレッジエリア外にある場合、またはネットワーク帯域幅が狭いか、または制限されている任意のエリア内にある場合など、特定の状況で有利となり得る。サーバのみ、クライアント−サーバ、または分散構成などの1つまたは複数のサーバを含む実施形態は、クライアントデバイス上でローカルに提供することができない特定の機能、例えば金融取引、チケット予約などを可能にし得る。
【0051】
図1は、メッセージングアプリケーション103とは別のボットを示しているが、いくつかの実施形態において、1つまたは複数のボットをメッセージングアプリケーション103の一部として実施し得る。ボットがメッセージングアプリケーション103の一部として実施される実施形態では、ボットを実施する前にユーザの許可が得られる。例えば、ボットがメッセージングアプリケーション103a/103bの一部として実施される場合、メッセージングアプリケーション103a/103bは、特定の活動を実行することができるボット、例えば、受信メッセージと発信メッセージを翻訳する翻訳ボット、イベントをユーザのカレンダーにスケジューリングするスケジューリングボット、その他を提供し得る。この例では、翻訳ボットは、ユーザの特定の許可がある場合にのみ有効となる。ユーザが同意を提供しない場合、メッセージングアプリケーション103a/103b内のボットは実施されない(例えば、無効にされる、除去される、その他)。ユーザが同意を提供する場合、ボットまたはメッセージングアプリケーション103a/103bは、メッセージングアプリケーション103a/103bを介してユーザ間で交換されるメッセージの限定された状態で使用し、特定の機能、例えば翻訳、スケジューリングなどを提供する。
【0052】
いくつかの実施形態において、メッセージングアプリケーション103a/103bのプロバイダおよびユーザ125とは異なるサードパーティが、特定の目的のためにメッセージングアプリケーション103a/103bによりユーザ125と通信することができるボットを提供し得る。例えば、タクシーサービスプロバイダがタクシーボットを提供してもよく、チケットサービスがイベントチケットを予約するボットを提供してもよく、バンクボットが金融取引などを行う能力を提供してもよい。
【0053】
メッセージングアプリケーション103によりボットを実施する場合、ボットは、特定のユーザ認証を得た上でのみ、ユーザと通信することが許可される。例えば、ユーザがボットを起動する場合、ボットは、例えばボットを起動するユーザの動作に基づいて応答することができる。別の例において、ユーザは、ユーザとコンタクトし得る特定のボットまたはボットのタイプを示し得る。例えば、ユーザは、トラベルボットが彼女と通信することを許可するが、ショッピングボットに対しては彼女に認証を与えないようにしてもよい。この例において、メッセージングアプリケーション103a/103bは、トラベルボットがユーザとメッセージを交換することを許可するが、ショッピングボットからのメッセージをフィルタリングまたは拒否し得る。
【0054】
さらに、いくつかの機能(例えば、タクシーの呼び出し、フライト予約の作成、友人への連絡など)を提供するために、ボットが場所、支払情報、連絡先リストなどのユーザデータにアクセスすることをユーザが許可するようボットが要求し得る。このような場合、ボットへのアクセスを許可するか、または拒否する選択肢がユーザに提示される。ユーザがアクセスを拒否した場合、ボットは、例えば「申し訳ありませんが、タクシーを予約できません」というメッセージで応答し得る。さらに、ユーザは制限された基準で情報にアクセスでき、例えば、ユーザは、ボットの特定の呼び出しがされたときにのみ現在の場所にアクセスすることが許可されるが、そうでない場合は許可されない。異なる実施形態において、ユーザは、ボットがアクセスできる情報のタイプ、数量、および細分性(granularity)を制御することができ、いつでもそのような許可を変更する能力を(例えば、ユーザインタフェースにより)備える。いくつかの実施形態において、ボットがそのようなデータにアクセスできる前に、例えば、個人識別可能な情報を除去して情報を特定のデータ要素に制限するようにユーザデータが処理され得る。さらに、ユーザは、メッセージングアプリケーション103a/103bおよび1つまたは複数のボットによってユーザデータの使用を制御することができる。たとえば、金融取引を行う機能を提供するボットに、取引が完了する前にユーザの認証が必要であることを指定することができ、例えば、ボットは「映画のスペースアンドスターズのチケットはそれぞれ12ドルです。先に進めて予約しますか?」または「このシャツの最良価格は発送費用を含めて125ドルです。クレジットカードを1234までチャージしますか?」などのメッセージを送信し得る。
【0055】
いくつかの実施形態において、メッセージングアプリケーション103a/103bは、例えばボタンまたは他のユーザインタフェース要素などのユーザインタフェースを介して、ユーザ125に1つまたは複数の提案、例えば、提案応答を提供し得る。提案応答は、例えば、ユーザが応答を入力する必要性を低減または排除することによって、より迅速なインタラクションを可能にし得る。例えば、クライアントデバイスがテキスト入力機能を欠いている場合(例えば、キーボードまたはマイクロフォンを含まないスマートウォッチ)、提案応答は、ユーザがメッセージに迅速かつ容易に応答できるようにし得る。提案応答はまた、例えば、ユーザが提案応答を選択したとき(例えば、タッチスクリーン上の対応するユーザインタフェース要素を選択することによって)、ユーザがメッセージに素早く応答することを可能にし得る。提案応答は、例えば、応答を生成するように訓練された機械学習モデルなどの予測モデルを使用して生成され得る。
【0056】
例えば、メッセージングアプリケーション103a/103bは、メッセージングアプリケーション103とのユーザのインタラクションを強化することができる、例えば、深層学習モデルなどの機械学習を実施し得る。機械学習モデルは、合成データ、例えば、ユーザ情報を使用せずにコンピュータによって自動的に生成されるデータを使用して訓練される。いくつかの実施形態において、機械学習モデルは、例えば、学習のためにユーザデータを利用する許可がユーザから明確に得られたサンプルデータに基づいて、訓練され得る。例えば、サンプルデータは、受信したメッセージおよび受信したメッセージに対して送信された応答を含み得る。サンプルデータに基づいて、機械学習モデルは、受信されたメッセージに対する応答を予測することができ、その後、提案応答として提供され得る。受信したメッセージおよびユーザの状況に基づいてカスタマイズされた応答の選択肢を提供することによって、例えば、受信したメッセージに対する応答を作成するユーザの負担を軽減することによって、ユーザインタラクションが強化される。例えば、ユーザが同意を提供する場合、提案応答は、ユーザの以前の活動、例えば、会話における初期のメッセージ、異なる会話におけるメッセージなどに基づいてカスタマイズされ得る。例えば、ユーザのインタラクションのスタイルに基づいて、ユーザに対する適切な提案応答、例えば、遊び心のある応答、正式な応答などを決定するためにそのような活動が使用され得る。別の例では、ユーザが1つまたは複数の優先言語および/またはロケールを指定する場合、メッセージングアプリケーション103a/103bは、ユーザの優先言語で提案応答を生成し得る。様々な例では、提案応答は、テキスト応答、画像、マルチメディアなどであり得る。
【0057】
いくつかの実施形態において、機械学習は、メッセージングサーバ101、クライアントデバイス115、またはメッセージングサーバ101およびクライアントデバイス115の両方で実施されてもよい。いくつかの実施形態において、(例えば、クライアントデバイスのメモリ、ストレージ、処理制約内でモデルの動作を許可するために)簡単な機械学習モデルがクライアントデバイス115上で実施され得、複雑な機械学習モデルがメッセージングサーバ101上で実施され得る。ユーザが機械学習技術の使用に同意を提供しない場合、そのような技術は実施されない。いくつかの実施形態において、ユーザは、クライアントデバイス115上でのみ実施される機械学習のために同意を選択的に提供し得る。これらの実施形態では、機械学習モデルに対する更新または機械学習モデルによって使用されるユーザ情報は、ローカルに格納または使用され、かつメッセージングサーバ101、サーバ135、または他のクライアントデバイス115などの他のデバイスとは共有されないように、機械学習モデルがクライアントデバイス115上で実施され得る。
【0058】
例えば、機械学習技術に基づいて提案を受信することに対する同意を提供するユーザについては、メッセージングアプリケーション103によって提案を提供し得る。例えば、提案は、コンテンツ(例えば、映画、書籍など)、スケジュール(例えば、ユーザのカレンダー上で利用可能な時間)、イベント/会場(例えば、レストラン、コンサートなど)などを含み得る。いくつかの実施形態において、会話に参加しているユーザが会話データの使用に同意を提供する場合、提案は、会話の内容に基づく受信メッセージに対する提案応答を含み得る。例えば、会話コンテンツに基づいて提案に同意した2人のユーザのうちの第1のユーザが、「何か食べたい?イタリア料理はどう?」とメッセージを送信すると、第2のユーザに対して「@アシスタントランチ、イタリア料理、2人用テーブル」という回答が提案され得る。この例では、提案応答は、ボット(記号@およびボットハンドルアシスタントによって識別される)を含む。第2のユーザがこの応答を選択すると、アシスタントボットが会話に追加され、メッセージがボットに送信される。その後、ボットからの応答が会話に表示され、2人のユーザのどちらかがさらなるメッセージをボットに送信し得る。この例では、アシスタントボットは会話の内容へのアクセスが提供されておらず、提案応答はメッセージングアプリケーション103によって生成される。
【0059】
特定の実施形態において、提案応答の内容は、ボットが既に会話中に存在するか、または会話に組み込むことができるかに基づいてカスタマイズされ得る。例えば、トラベルボットをメッセージングアプリに組み込むことができると判定された場合、フランスへの航空チケットの料金に関する質問に対する提案応答は、「トラベルボットに聞いてみよう!」とすることができる。
【0060】
別の実施形態において、提案(例えば、提案応答)は、テキスト(例えば、「素晴らしい!」)、絵文字(例えば、笑顔、眠そうな顔など)、画像(ユーザの写真ライブラリからの写真)、テンプレートのフィールドに挿入されたユーザデータを有するテンプレートに基づいて生成されたテキスト(例えば、「彼女の番号は<電話番号>」、ここでフィールド「電話番号」は、ユーザがユーザデータへのアクセスを提供する場合、ユーザデータに基づいて記入される)、リンク(例えば、ユニフォームリソースロケータ)などのうちの1つまたは複数を含み得る。いくつかの実施形態において、提案応答は、例えば、色、フォント、レイアウトなどを使用して、フォーマット化および/またはスタイル化され得る。例えば、映画の推薦を含む提案応答は、映画についての記述テキスト、映画からの画像、およびチケットを購入するためのリンクを含み得る。異なる実施形態において、提案応答は、例えば、テキストボックス、情報カードなどの異なるタイプのユーザインタフェース要素として提示され得る。
【0061】
異なる実施形態において、ユーザには、提案を受信するか否か、どのようなタイプの提案を受信するか、提案の頻度などにわたる制御が提供される。例えば、ユーザは、複数の提案を一括して受信することを拒否するか、または1日の特定の時間帯にのみ提案を受信し得る。別の例では、ユーザは個人別の提案を受信するように選択し得る。この例では、データの使用および機械学習技術の使用に関するユーザの嗜好に基づいて提案を提供するように機械学習が使用され得る。
【0062】
図2は、いくつかの実施形態による例示的なボット起動イベントの図である。特に、ユーザデバイス202はボット204と通信状態にある。ボット204は、ユーザデバイス202上の1つまたは複数のイベントにより起動することができる。イベントは、特殊文字オートコンプリートまたは手動タイピング206、メッセージ内のボット呼び出しのタッピング208、ボットアバターのタッピング210、および自動返信提案の選択212を含むことができる。
【0063】
特殊文字オートコンプリートまたはコマンドは、ボット名またはボットハンドルが後に続く特殊文字(例えば、「@」)のユーザからの入力を含むことができる。この例のイベントでは、ボットは、ボットハンドル(例えば、「@」記号の後にボットの名前(例えば、リザベーションボット(reservationbot)、アシスタントなど))によって識別することができる。特殊文字オートコンプリートまたはコマンドに対する例示的なユーザインタフェース要素が、図4の402に示され、かつ以下で説明される。ユーザが作成ボックスまたは他のテキスト入力エリアに特殊文字(例えば「@」)を入力すると、システムは後続の文字を監視し、ユーザによってタイプされるか、そうでなければ入力された文字と一致する一部を有するハンドル(例えば、「@ボット(bot)」)または名前(例えば、「ホテルボット(Hotel Bot)」)を有するボットを自動的に識別し、かつ提案することを試行することができる。ユーザは完全なボット名またはハンドル名をタイプしなくても、オートコンプリート候補を選択することができる。
【0064】
ボット呼び出し(例えば、図4の404)をタップする(または、その他、タッチ、タイピング、または音声入力を介して選択する)と、呼び出しに関連付けられたボットを起動することができる。呼び出しが以前の提案応答と関連付けられていた場合、これらの応答は、図8図12に示し、かつ以下に説明するように呼び戻され得る。ボットアバター(例えば、図4の406)をタップする(または、その他、タッチ、タイピング、または音声入力を介して選択する)。自動返信提案(例えば、図4の408)をタップする(または、その他、タッチ、タイピング、または音声入力を介して選択する)。
【0065】
図3は、いくつかの実施形態によるボット起動の例示的な方法を示すフロー図である。処理は302で始まり、ボットを起動するための動作の指示が受信される。指示は、特殊文字ボットコマンドの指示、特殊文字オートコンプリートの選択、ボット呼び出しのタッピング、ボットアバターのタッピング、および/または自動返信提案の選択の指示を含むことができる。いくつかの実施形態において、(図2に示す動作の1つを伴うか、または伴わずに)ボットを自動的に起動することができ、システムは、例えば、@または他の特殊文字の後にユーザが何を入力しているか、ユーザの動作または使用状況に基づいてユーザがどのようなタイプのタスクを実行することを求めているかまたは実行する必要があるか、ユーザが情報を探しているかどうか(ユーザがどのような情報を探しているか)、ユーザの音声コマンドなどの様々な情報に基づいて起動するボットを自動的に決定することができる。処理は304に続く。
【0066】
304において、ボットを起動するための動作の指示に対する応答のタイプが決定される。例えば、指示が自動返信提案の選択である場合、動作は、ボットまたは会話の他の参加者に自動返信を提供することであり得る。別の例では、指示が特殊文字コマンドである場合、その動作は、コマンドに応答する動作であると判定され得る。処理は306に続く。
【0067】
306において、ボットは、受信した動作の指示に応答して、304において決定された応答タイプに基づいてボットを起動する。例えば、ボットは、提案される自動返信を会話に提供し得、ボットは、受信したコマンドなどに対して動作し得る。
【0068】
図4は、いくつかの実施形態による例示的なボット識別および起動要素を示すユーザインタフェース400の図である。特に、ユーザインタフェース400は、メッセージ作成ボックスに関連する例示的な特殊文字オートコンプリートセクション402を含む。ユーザインタフェースはまた、ボットに以前に送信されたメッセージまたはコマンドを表すことができる例示的なボット呼び出し404を含む。ユーザインタフェース400は、例示的なボットアバター406および例示的な自動返信提案408を含む。ユーザインタフェースに複数のボット呼び出し、アバター、または自動返信提案を設けることができる。
【0069】
図5は、いくつかの実施形態によるボットインタラクション中のユーザのプライバシーを管理する例示的な方法のフロー図である。処理は502で開始され、ユーザからの要求がボットで受信され、かつ/または提案が生成される。要求または提案には、ユーザデータが共有される必要があり得る。要求は、ボットが実行するための要求されるタスク(例えば、「私のフライトデータを共有する」、「私の子犬の写真を共有する」など)を含み得る。いくつかの実施形態において、要求はボットに関するコマンドであり得る。例えば、リザベーションボットに関するコマンドを含む要求は、「@リザベーションボット(reservationbot)、近くのホテルを見つけて」であり得、アシスタントボットに関するコマンドを含む要求は、「@アシスタント、フライトの詳細をジムに送信して」などであり得る。この例では、ボットは、ボットハンドル、例えば、「@」記号の後に続くボット名(例えば、リザベーションボット、アシスタントなど)によって識別される。タスクを実行し、かつ/または要求に対する応答を提供するために、ボットはユーザデータへのアクセスを必要とし得る。ユーザおよびボットは、1対1の通信構成であり得る。例えば、ユーザは、カーサービスのピックアップを要求し得、カーサービスボットは、どの車がユーザを拾うために利用可能であるのかを決定するために、ユーザの場所を知る必要があり得る。別の例では、ユーザは近くのホテルでホテル予約を行うことを希望し得、ホテルリザベーションボットは、ユーザの場所を知る必要があり得る。さらに別の例では、ボットは、ユーザ情報(例えば、写真、カレンダーエントリ、フライトスケジュールなど)を共有することを含む、ユーザに対して提案応答を提供し得、提案ボットは、提案応答のために役立ち得るデータにアクセスし、そのようなデータを実際の応答として提供するためのユーザの許可を得る必要があり得る。要求は、ユーザからの要求であり得るか、または自動的に生成された要求(例えば、提案応答ボットなどからの)であり得る。処理は504に続く。
【0070】
504において、許可ユーザインタフェース要素が、要求または提案応答に関連するユーザに表示されるようにする。許可要求ユーザインタフェース要素の一例が図6に示され、かつ以下に説明される。許可ユーザインタフェース要素は、音声プロンプトとして、または他のユーザインタフェースおよび/または出力方法を使用して提示され得る。処理は506に続く。
【0071】
506において、ユーザが1対1の会話またはグループの会話であり得る進行中の会話内でユーザのデータを共有する許可をボットに与えるかどうかの指示が受信される。指示は、ユーザが許可を与えるか否かを指示するユーザインタフェース要素の選択(例えば、タッチ、タップ、オンスクリーンのユーザインタフェースボタンの選択、タイプによる選択、音声入力による選択、ジェスチャ入力による選択など)の形態で受信することができる。例えば、ユーザは、図6の許可ユーザインタフェース要素に示される「今ではない(NOT NOW)」または「許可(ALLOW)」オプションのうちの1つを選択することができる。処理は508に続く。
【0072】
508において、ボット許可システムは、許可が与えられたか否かを判定する。許可が与えられたかどうかを判定することは、ステップ506で受信した指示を評価することによって達成することができる。許可が与えられた場合、処理は510に続く。許可が与えられない場合、処理は512に続く。
【0073】
510において、ユーザデータの指示は、ユーザによって与えられた許可に従ってボットによって会話に共有される。
512において、ユーザデータは、ユーザによって許可が与えられていないことに従ってボットによって共有されない。
【0074】
図6は、いくつかの実施形態によるボットメッセージングを有する例示的なユーザインタフェース600の図である。特に、ユーザインタフェース600は、ユーザからボットへのメッセージ(602)を含む。メッセージ602は、ユーザの個人情報(例えば、犬の写真)の使用を必要とし得る要求(「私の犬の写真を共有して」)を含む。ユーザからの要求に応答して、ボットは、要求を完了するためにユーザのデータ(606)を共有するための許可を求める容認/否認インタフェース要素(604)をユーザに対して表示し得る。許可要素604は、どのタイプのユーザデータの共有許可が必要であるかの記述またはサンプル(606)と、ユーザのデータを共有するためのボットの許可を否認または容認するためのそれぞれの入力要素608および610とを含むことができる。
【0075】
図7は、いくつかの実施形態による、以前のボット提案を呼び戻すための例示的な方法のフロー図である。図8図12は、図7の方法を説明するのを補助するための例示的なユーザインタフェースの図を提供し、かつ図7に関連して説明される。処理は702で開始され、ここで会話中にユーザからの要求がボットにおいて受信される。要求は、本明細書で説明するようにテキストコマンドまたは他の方法に由来するものとすることができる。例えば、ユーザは、図8の802に示すように、「@ボット、今夜の7時に4人分のテーブルはありますか?」などのコマンドを発行することができる。処理は704に続く。
【0076】
704において、ボットは、確認応答インタフェース要素(例えば、図8の804)を表示させることができる。確認応答要素は、ボットが要求またはコマンドに対して処理中または作業中であることの表示をユーザに提供することができる。確認応答は、1つまたは複数の提案される自動返信(たとえば、図8の806および808)を含むことができる。処理は706に続く。
【0077】
706において、会話中の参加者による次のメッセージの指示(例えば、図9の902)。処理は708に続く。
708において、提案応答は、後続のメッセージ(例えば、902)の決定に基づいて除去される。図9において804と902の間に提案がないことによって、提案応答(806および808)の除去が示されている。処理は710に続く。
【0078】
710において、確認応答メッセージに関連付けられた1つまたは複数の提案応答を有する以前に表示された確認応答メッセージ(例えば、804)をユーザがタップ(または他の方法で選択)(図10の1004)した指示が受信される。図10において、次のメッセージ1002も示されている。以前に表示された確認応答メッセージをタップするかまたは選択することによって、ユーザは、確認応答メッセージに関連する提案応答を呼び戻すことに関心を示していることを指示し得る。処理は712に続く。
【0079】
712において、会話は、任意選択的に一時的に隠されるか、またはフェーディングまたは他の技術によって目立たなくされる。処理は714に続く。
714において、図11に示すように、以前に表示された確認応答メッセージ(例えば、802)およびそれに関連する提案応答(806および808)が表示される。会話を隠す代わりに、システムは、確認応答メッセージを拡張し、かつ提案応答を表示することができる。処理は716に続く。
【0080】
716において、提案応答のうちの1つの選択の指示が受信される。例えば、図11の1102に示すように、「キャンセルする」の提案応答(808)の選択の指示を受信することができる。代替的に、提案された自動返信が選択されず、かつユーザは会話画面に戻ることを望むことを示す「戻る」の指示を受信して、提案応答を表示から再び除去することができる。処理は718に続く。
【0081】
718において、表示は会話に戻され、ボットは提案応答に対して動作する。例えば、ボットは、図12の1202に示すように、「それをキャンセルします」のメッセージを表示させることができる。
【0082】
図13は、いくつかの実施形態による、グループメッセージング環境内(例えば、「グループチャット」内)のボット許可を管理する例示的な方法のフロー図である。処理は1302で開始され、ユーザからの要求がボットで受信される。要求されたタスクを実行し、かつ/または要求に対する応答を提供するために、ボットはユーザデータへのアクセスを要求し得る。ユーザおよびボットは、複数のユーザおよび/またはボットとのグループ通信構成内にあってもよい。例えば、複数のユーザとの通信セッションでは、ユーザは、例えば、複数のユーザのために、カーサービスのピックアップを要求し得る。カーサービスボットは、どの車がユーザを拾うために利用可能であるかを決定するために、ピックアップに含まれるべき各ユーザの位置を知る必要があり得る。別の例において、ユーザは、会話に参加しているユーザのグループの近くのホテルでホテル予約を行うことを所望することがあり得る。この例において、ホテルリザベーションボットは、ユーザのグループに関する情報、例えば名前、支払情報などを知る必要があり得る。要求は、ユーザからの要求であってもよく、または自動的に生成された要求であってもよい(例えば、提案応答ボットなど)。処理は1304に続く。
【0083】
1304において、ボットによって進行表示が任意選択的に表示され、かつグループ会話中のグループにまたは要求を行う個々のユーザに視認可能となり得る。たとえば、カーサービスボットは、グループ会話において「作業中です」などのメッセージを表示し得る。処理は1306に続く。
【0084】
1306において、許可ユーザインタフェース要素が、要求に関連するユーザに対して表示される。許可要求ユーザインタフェース要素の一例が図6に示され、かつ上記したように説明されている。ボットがユーザデータを共有する代わりにユーザデータにアクセスする許可を要求している場合、許可要求ユーザインタフェース要素は、ボットに許可が与えられた場合にボットが共有することとなるデータの例を示す代わりに、ボットがアクセスに必要なユーザデータを記述し得る。許可ユーザインタフェース要素は、音声プロンプトとして、または他のユーザインタフェースおよび/または出力方法を使用して提示され得る。処理は1308に続く。
【0085】
1308において、1人または複数のユーザがボットに個々のユーザデータにアクセスまたは個々のユーザデータを取得する許可を与えるかどうかの指示が受信される。この指示は、ユーザが許可を与えるか否かを指示するユーザインタフェース要素選択(例えば、タッチ、タップ、オンスクリーンユーザインタフェースボタンの選択、タイプによる選択、音声入力による選択、ジェスチャ入力による選択など)の形態で受信することができる。例えば、ユーザは、図6の許可ユーザインタフェース要素に示される「今ではない(NOT NOW)」または「許可(ALLOW)」のうちの1つを選択することができる。処理は1310に続く。
【0086】
1310において、ボット許可システムは、許可が与えられたか否かを判定する。許可が与えられたかどうかを判定することは、ステップ1308において受信された指示を評価することによって達成することができる。許可が与えられた場合、処理はステップ1312に続く。許可が与えられなかった場合、処理はステップ816に続く。
【0087】
1312において、ボットは、ユーザと1対1のチャットを開始することができる。1対1のチャットおよび1対1のチャットで交換されるメッセージは、グループメッセージング会話におけるグループのユーザには視認可能ではない。個々のボットに対応する異なる視覚テーマを有する(例えば、異なる個々の企業、組織などに対応する視覚テーマを有する)1対1のチャットのユーザインタフェースの例が、図14および図15に示されている。処理は1314に続く。
【0088】
1314において、ボットは、1対1のユーザメッセージング会話内で与えられた許可に関連するタスクを完了するためのさらなる処理を実行し得る。例えば、カーサービスボットは、どの車がユーザにカーサービスを提供する場所にあるかを決定することを継続することができる。別の例では、宿泊施設ボットは、共有のユーザの場所を使用して空いているレンタル可能な近隣の宿泊施設を決定することができる。
【0089】
1316において、ボットは、グループメッセージング会話内のユーザに対してタスクを拒否する「丁寧な」指示を表示させることができる。例えば、ボットは「あなたの場所を取得できませんでした。車をスケジューリングすることができません、その他」などの指示を提供することができる。この指示は、グラフィカルユーザインタフェース上に表示するか、またはオーディオキューまたは他の出力指示の形態で提供することができる。拒否メッセージの丁寧な側面は、ユーザがボットにユーザのデータの使用に対してボット許可を与えていなかったことを明確に示していないというメッセージを含むことができる。異なる実施形態において、指示は、例えば、要求または他の要因に基づく異なるテキストコンテンツを含み得る。例えば、車を発注する状況において位置へのアクセスを禁止するユーザに応答する指示は、「申し訳ありませんが、場所を取得できません」、「近くの車を見つけることができません」、「カーサービスは利用できません」などのテキストコンテンツを含み得る。いくつかの実施形態において、異なる指示が、グループ会話の異なる参加者に送信され得る。いくつかの実施形態において、指示は、テキストボックス、グラフィック指示、アニメーション指示などの異なるフォーマットを使用し得る。いくつかの実施形態において、指示は、太字のテキスト、イタリック体のテキスト、フォント、色など、異なるスタイルを使用し得る。
【0090】
図14は、いくつかの実施形態による任意のボットタイプに対してテーマ化された例示的な1対1のユーザインタフェース1400を示す図である。図14に示す例は、例示的なレストランボットである。テーマ別インタフェース1400は、特定の背景色、画像、テクスチャなどを含むことができる(1402)。テーマ別インタフェース1400は、ボット(1404)に関するロゴ、名前およびハンドルを含むこともできる。テーマ別インタフェースは、ボットによって提供される情報、例えばレストラン情報1406を含むこともできる。
【0091】
図15は、いくつかの実施形態による任意のボットタイプに対してテーマ化された例示的な1対1のユーザインタフェース1500を示す図である。図15に示す例は、ホテルボットの例である。テーマ別インタフェース1500は、特定の背景色、画像、テクスチャなどを含むことができる(1502)。テーマ別インタフェース1500は、ボット(1504)に関するロゴ、名前およびハンドルも含むことができる。テーマ別インタフェースは、レストラン情報1506−1508など、ボットによって提供される情報も含むことができる。1対1のインタフェース1500は、ボット用のメッセージ(例えば、コマンド、要求など)を作成するための提案選択ボタン1510,1512および作成ボックス1514も含む。
【0092】
図16は、本明細書で説明される1つまたは複数の機能を実施するために使用され得る例示的なコンピューティングデバイス1600のブロック図である。一例では、コンピューティングデバイス1600は、クライアント(またはユーザ)デバイス、例えば図1に示されるクライアントデバイス115a−115nのいずれかを実施するために使用され得る。コンピューティングデバイス1600は、任意の適切なコンピュータシステム、サーバ、または上記したような他の電子デバイスまたはハードウェアデバイスとすることができる。
【0093】
本明細書で説明される1つまたは複数の方法は、任意のタイプのコンピューティングデバイス上で動作することができるスダンドアロンプログラム、ウェブブラウザ上で動作するプログラム、モバイルコンピューティングデバイス(例えば、セルフォン、スマートフォン、タブレットコンピュータ、ウェアラブルデバイス(腕時計、アームバンド、宝飾品、ヘッドウェア、仮想現実ゴーグルまたは眼鏡、拡張現実ゴーグルまたは眼鏡など)、ラップトップコンピュータなど)上で動作するモバイルアプリケーション(「アプリ」)で動作することができる。一例において、クライアント/サーバアーキテクチャを使用することができ、例えば、モバイルコンピューティングデバイス(ユーザデバイスとしての)がユーザ入力データをサーバデバイスに送信し、サーバから出力用(例えば、表示用)の最終出力データを受信する。別の例では、すべての計算は、モバイルコンピューティングデバイス上のモバイルアプリ(および/または他のアプリ)内で実行することができる。別の例では、計算は、モバイルコンピューティングデバイスと1つまたは複数のサーバデバイスとの間で分割することができる。
【0094】
いくつかの実施形態において、コンピューティングデバイス1600は、プロセッサ1602、メモリ1604、および入出力(I/O)インタフェース1606を含む。プロセッサ1602は、コンピューティングデバイス1600のプログラムコードおよび制御ベースの処理を実行する1つまたは複数のプロセッサおよび/または処理回路とすることができる。「プロセッサ」は、データ、信号または他の情報を処理する任意の適切なハードウェアおよび/またはソフトウェアシステム、機構、またはコンポーネントを含む。プロセッサは、汎用中央処理ユニット(CPU)、複数の処理ユニット、機能を達成するための専用回路、または他のシステムを有するシステムを含み得る。処理は、特定の地理的位置に限定される必要がないか、または一時的な制限がある。例えば、プロセッサは、「リアルタイム」、「オフライン」、「バッチモード」などでその機能を実行し得る。処理の一部は、異なる時間および異なる場所で、異なる(または同じ)処理システムによって実行され得る。コンピュータは、メモリと通信する任意のプロセッサであり得る。
【0095】
メモリ1604は、典型的には、プロセッサ1602によるアクセスのためにコンピューティングデバイス1600に提供され、かつランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、電気消去可能な読み出し専用メモリ(EEPROM)、フラッシュメモリなどの、プロセッサによる実行のための命令を格納するのに適し、かつプロセッサ1602とは別個に配置され、かつ/またはプロセッサ1602とともに集積化されている任意の適切なプロセッサ読み取り可能な記憶媒体であり得る。メモリ1604は、オペレーティングシステム1608と、メッセージングアプリケーション、ボットインタラクションアプリケーションなどの1つまたは複数のアプリケーション1610とを含む、プロセッサ1602によってコンピューティングデバイス1600上で動作するソフトウェアを格納することができる。いくつかの実施形態において、アプリケーション1610は、プロセッサ1602が、本明細書に記載の機能、例えば、図3図5図7および/または図13の方法のうちの1つまたは複数を実行することを可能にする命令を含むことができる。例えば、アプリケーション1610は、ボット許可、ユーザプライバシー、過去のボット提案の再呼び出し、および/または本明細書で説明するようなボットの識別を管理するためのプログラムを含むメッセージングアプリケーションおよび/またはボットアプリケーションを含むことができる。1つまたは複数のアプリケーションは、例えば、選択可能なオプションまたは制御および選択されたオプションに基づくデータを表示するためのユーザ入力に応答する表示されるユーザインタフェースを提供することができる。本明細書に開示される1つまたは複数の方法は、例えば、任意のタイプのコンピューティングデバイス上で動作するスタンドアロンコンピュータプログラムとして、ウェブページを有するウェブアプリケーションとして、モバイルコンピューティングデバイス上で動作するモバイルアプリケーション(「アプリ」)として、いくつかの環境およびプラットフォームにおいて実行することができる。
【0096】
メモリ1604内のソフトウェアのいずれかは、代替的に、任意の他の適切な記憶場所またはコンピュータ可読媒体に格納することができる。さらに、メモリ1604(および/または他の接続されたストレージデバイス(単数または複数))は、メッセージ、許可設定、ユーザ嗜好および関連のデータ構造、パラメータ、音声データ、ユーザ嗜好、および/またはデータベース1612内の本明細書に記載された機能に使用される他の命令およびデータを格納することができる。メモリ1604および任意の他のタイプのストレージ(磁気ディスク、光ディスク、磁気テープ、または他の有形の媒体)は、「ストレージ」または「ストレージデバイス」と見なすことができる。
【0097】
I/Oインタフェース1606は、コンピューティングデバイス1600と他のシステムおよびデバイスとのインタフェースを可能にする機能を提供することができる。インタフェースデバイスは、コンピューティングデバイス1600の一部として含ませることができるか、またはコンピューティングデバイス1600とは別個であり、かつ通信することができる。例えば、ネットワーク通信デバイス、無線通信デバイス、ストレージデバイス、および入出力デバイスは、I/Oインタフェース1606を介して通信することができる。いくつかの実施形態において、I/Oインタフェース1606は、入力デバイス(キーボード、ポインティングデバイス、タッチスクリーン、マイクロフォン、カメラ、スキャナ、センサなど)および/または出力デバイス(ディスプレイデバイス、スピーカデバイス、プリンター、モーターなど)等のインタフェースデバイスに接続することができる。
【0098】
I/Oインタフェース1606に接続することができるインタフェースデバイスのいくつかの例は、例えば、画像、ビデオなどのコンテンツおよび/または本明細書に記載されているような出力アプリケーションのユーザインタフェースを表示するために使用することができるディスプレイデバイス1614を含むことができる。ディスプレイデバイス1614は、ローカル接続(例えば、ディスプレイバス)および/またはネットワーク接続を介してコンピューティングデバイス1600に接続することができ、かつ任意の適切なディスプレイデバイスとすることができる。ディスプレイデバイス1614は、液晶ディスプレイ(LCD)、発光ダイオード(LED)、またはプラズマディスプレイスクリーン、ブラウン管(CRT)、テレビ、モニタ、タッチスクリーン、3Dディスプレイスクリーン、または他の視覚的ディスプレイデバイスなどの任意の適切なディスプレイデバイスを含むことができる。例えば、ディスプレイデバイス1614は、モバイルデバイス上に設けられたフラットディスプレイ画面、ゴーグルデバイスに設けられた複数のディスプレイ画面、またはコンピュータデバイスのモニタ画面とすることができる。
【0099】
I/Oインタフェース1606は、他の入力デバイスおよび出力デバイスとインタフェースすることができる。いくつかの例は、画像フレームを取り込むことができる1つまたは複数のカメラを含む。方位センサ、例えば、ジャイロスコープおよび/または加速度計は、デバイスの向き(いくつかの実施形態において視聴方向に対応することができる)および/またはカメラの向きを示すセンサデータを提供することができる。いくつかの実施形態は、音声(例えば、音声コマンドなど)を捕捉するためのマイクロフォン、音声を出力するための音声スピーカデバイス、または他の入力および出力デバイスを提供することができる。
【0100】
説明を容易にするために、図16は、プロセッサ1602、メモリ1604、I/Oインタフェース1606、オペレーティングシステム1608、およびボットインタラクションアプリケーション1610のそれぞれに対するブロックを示す。これらのブロックは、1つまたは複数のプロセッサまたは処理回路、オペレーティングシステム、メモリ、I/Oインタフェース、アプリケーション、および/またはソフトウェアモジュールを表し得る。他の実施形態において、コンピューティングデバイス1600は、図示されたコンポーネントのすべてを有していなくてもよく、かつ/または本明細書に記載されたものの代わりに、またはそれらに加えて他のタイプの構成を含む他の構成を有してもよい。ユーザデバイス(例えば、115a−115n)が、本明細書のいくつかの実施形態で説明されるように、ブロックおよび動作を実行するものとして説明されているが、任意の適切なコンポーネントまたはユーザデバイス(例えば115a−115n)または同様のデバイスのコンポーネントの組み合わせ、または任意の適切なプロセッサまたはそのようなシステムに関連するプロセッサは、説明したブロックおよび動作を実行し得る。
【0101】
本明細書に記載された方法は、コンピュータ上で実行することができるコンピュータプログラム命令またはコードによって実施することができる。例えば、コードは、1つまたは複数のデジタルプロセッサ(例えば、マイクロプロセッサまたは他の処理回路)によって実施することができ、かつ磁気、光学、電磁気などの非一時的なコンピュータ可読媒体(例えば、記憶媒体)、または半導体または固体メモリ、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フラッシュメモリ、剛性磁気ディスク、光ディスク、ソリッドステートメモリドライブなどを含む半導体記憶媒体を含むコンピュータプログラム製品上に格納することができる。プログラム命令はまた、例えばサーバ(例えば、分散システムおよび/またはクラウドコンピューティングシステム)から配信されるサービス(SaaS)としてのソフトウェアの形態の電子信号に含まれ、かつ提供することができる。代替的に、1つまたは複数の方法は、ハードウェア(論理ゲートなど)、またはハードウェアとソフトウェアの組み合わせで、実施することができる。例示的なハードウェアは、プログラマブルプロセッサ(例えば、フィールドプログラマブルゲートアレイ(FPGA)、コンプレックスプログラマブルロジックデバイス(CPLD)など)、汎用プロセッサ、グラフィックプロセッサ、特定用途向け集積回路(ASIC)などすることができる。1つまたは複数の方法は、システム上で動作するアプリケーションのコンポーネントの一部として、または他のアプリケーションおよびオペレーティングシステムと共に動作するアプリケーションまたはソフトウェアとして実行することができる。
【0102】
説明はその特定の実施形態に関して記載されているが、これらの特定の実施形態は単なる例示であり、限定的なものではない。実施例に示される概念は他の実施例および実施形態に適用されてもよい。
【0103】
本明細書で説明された特定の実施形態が、ユーザに関する個人情報(例えば、ユーザの電話番号または部分的な電話番号、ユーザデータ、ユーザのソーシャルネットワークに関する情報、ユーザの位置および時間、ユーザの生体情報、ユーザの活動および人口統計学的情報)を収集しかつ使用する状況において、ユーザには、個人情報が収集されるかどうか、個人情報が格納されるかどうか、個人情報が使用されるかどうか、およびユーザに関する情報が収集され、格納され使用される方法を制御するための1つ又は複数の機会が設けられている。すなわち、本明細書で説明されたシステムおよび方法は、特に、関連するユーザからの明確な許可を受けたときに、ユーザの個人情報を収集、格納および/または使用する。さらに、特定のデータは、個人識別可能な情報が削除されるように、格納または使用される前に1つまたは複数の方法で処理され得る。一例として、個人識別可能な情報が特定できないように、ユーザの身元が取り扱われ得る。別の例として、ユーザの地理的位置をより大きな領域に一般化して、ユーザの特定の位置を決定することができないようにし得る。
【0104】
本開示に記載されている機能ブロック、動作、特徴、方法、デバイス、およびシステムは、当業者に既知であるように、システム、デバイス、および機能ブロックの異なる組合せに統合または分割し得る。任意の適切なプログラミング言語およびプログラミング技術を使用して、特定の実施形態のルーチンを実施し得る。手続き型またはオブジェクト指向などの異なるプログラミング技術を採用し得る。ルーチンは、単一の処理装置または複数のプロセッサ上で実行し得る。ステップ、処理、または計算が特定の順序で提示されてもよいが、順序は、異なる特定の実施形態において変更されてもよい。いくつかの実施形態では、本明細書において逐次的に示される複数のステップまたは処理が同時に実行されてもよい。さらなる例示的な実施形態を以下に開示する。
【0105】
1. 第1のユーザと少なくとも1つの他のユーザとの間の通信を可能にするために、前記第1のユーザに関連付けられた第1のコンピューティングデバイス上にメッセージングアプリケーションを提供するステップと、
前記メッセージングアプリケーションにおいてユーザ要求を検出するステップと、
前記ユーザ要求に応答する動作が前記第1のユーザに関連するデータの共有を必要とすることをプログラムにより決定するステップと、
前記第1のユーザが前記第1のユーザに関連するデータの共有を許可または禁止することを可能にする許可インタフェースを第1のコンピューティングデバイス上の前記メッセージングアプリケーションにレンダリングさせるステップと、
前記第1のユーザに関連するデータの共有の許可を示す前記第1のユーザからのユーザ入力を受信すると、前記ユーザ要求に前記応答して第1のユーザに関連するデータにアクセスして、メッセージングアプリケーション内の前記第1のユーザに関連するデータを共有するステップと
を含む、コンピュータが実行する方法。
【0106】
2. 前記第1のユーザは人間のユーザであり、前記少なくとも1つの他のユーザは支援エージェントである、実施形態1に記載のコンピュータが実行する方法。
3. 前記第1のユーザは人間のユーザであり、前記少なくとも1つの他のユーザは、第2のコンピューティングデバイスに関連付けられた、前記第1のユーザとは異なる第2の人間のユーザを含み、前記許可インタフェースは、前記第1のユーザに関連付けられた前記第1のコンピューティングデバイス上の前記メッセージングアプリケーションにレンダリングされ、前記許可インタフェースは、前記第2の人間のユーザに関連付けられた前記第2のコンピューティングデバイス上には表示されない、実施形態1または2のコンピュータが実行する方法。
【0107】
4. 前記第1のユーザは人間のユーザであり、前記少なくとも1つの他のユーザは、前記第1のユーザとは異なる第2の人間のユーザと、支援エージェントとを含み、前記ユーザ要求は、前記第1のユーザに関連付けられた前記第1のコンピューティングデバイスから受信され、前記方法は、前記ユーザ要求に応答して、前記メッセージングアプリケーションにおいて別個の会話を開始するステップをさらに含み、前記別個の会話は、前記第1のユーザおよび前記支援エージェントを中に入れ、かつ前記第2の人間のユーザを入らせない、実施形態1乃至3のうちの1つのコンピュータが実行する方法。
【0108】
5. 前記ユーザ要求を検出するステップは、前記メッセージングアプリケーションで受信された前記第1のユーザから前記支援エージェントへの1つまたは複数のメッセージを支援エージェントが分析することを含む、実施形態1乃至4のうちの1つのコンピュータが実行する方法。
【0109】
6. 前記1つまたは複数のメッセージは、テキストメッセージ、マルチメディアメッセージ、および前記支援エージェントへのコマンドのうちの1つまたは複数を含む、実施形態5のコンピュータが実行する方法。
【0110】
7. 前記第1のユーザと前記少なくとも1つの他のユーザのうちの少なくとも1つからの入力に基づいて前記第1のメッセージングアプリケーションに1つまたは複数の提案を提供するステップをさらに含む、実施形態1乃至6のいずれか1つコンピュータが実行する方法。
【0111】
8. 前記1つまたは複数の提案を前記メッセージングアプリケーションにおいてレンダリングさせるステップをさらに含む、実施形態7に記載のコンピュータが実行する方法。
【0112】
9. 前記1つまたは複数の提案は、前記第1のユーザによって選択されると、その提案についての詳細を表示させる提案要素としてレンダリングされる、実施形態8のコンピュータが実行する方法。
【0113】
10. 前記第1のユーザの1つまたは複数の動作に基づいて前記支援エージェントを自動的に起動するステップをさらに含む、実施形態1乃至9のいずれか1つのコンピュータが実行する方法。
【0114】
11. 前記支援エージェントは、
前記支援エージェントを対象とする特殊文字コマンド、
前記支援エージェントに関連するユーザインタフェース呼び出し要素のユーザ選択、
前記支援エージェントに対応するアバターのユーザ選択、および
前記支援エージェントによって提供される自動返信提案のユーザ選択
のうちの1つまたは複数に応答して起動される、実施形態1乃至10のうちの1つのコンピュータが実行する方法。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16