(57)【要約】  ユーザ間の進行中のメッセージ交換スレッドの1人または複数のユーザへの少なくとも1つの文脈上関連性のある提案を提供する。提案は、ユーザのコンピューティングデバイスのユーザインターフェース出力デバイスを介してユーザに提示するために提供される。提案は、メッセージ交換スレッドにクエリに応答するコンテンツを組み込むことを自動化アシスタントに行わせるために自動化アシスタントにサブミットされ得るクエリを指示する。いくつかの実装形態において、提案は、選択可能な提案であり、クエリに応答するコンテンツは、選択可能な提案に向けられているユーザインターフェース入力に応答するメッセージ交換スレッドに組み込まれる。いくつかの実装形態において、提案は、メッセージ交換スレッドのユーザの間ですでに通信がなされている1つまたは複数のメッセージに基づき決定される。
2019522266.tif 000002
【特許請求の範囲】
【請求項１】
1つまたは複数のプロセッサによって実装される方法であって、
進行中のメッセージ交換スレッドの1つまたは複数のすでに通信がなされたメッセージに基づき少なくとも1つの候補クエリを決定するステップであって、
前記進行中のメッセージ交換スレッドは、少なくとも第1のユーザと第2のユーザとの間であり、前記第1のユーザの第1のメッセージ交換クライアントおよび前記第2のユーザの第2のメッセージ交換クライアントを介したものである、ステップと、
少なくとも前記第1のユーザに前記第1のメッセージ交換クライアントを介して表示するために、前記候補クエリの指示を提供する選択可能なグラフィック要素を提供するステップと、
前記選択可能なグラフィック要素に向けられている前記第1のユーザのユーザインターフェース入力に応答して、
前記候補クエリに応答するコンテンツを前記進行中のメッセージ交換スレッドに組み込むステップであって、
前記コンテンツを前記進行中のメッセージ交換スレッドに組み込むステップは、前記コンテンツが前記第1のメッセージ交換クライアントを介して前記第1のユーザに表示され、および前記第2のメッセージ交換クライアントを介して前記第2のユーザに表示されることを引き起こす、ステップとを含む方法。
【請求項２】
前記コンテンツを前記進行中のメッセージ交換スレッドに組み込むステップは、前記メッセージ交換クライアントのうちの少なくとも1つが前記コンテンツを前記メッセージ交換クライアントのうちの前記少なくとも1つのクライアントのグラフィカルユーザインターフェースに表示される前記進行中のメッセージ交換スレッドのトランスクリプトに挿入することを要求するステップを含む請求項1に記載の方法。
【請求項３】
前記コンテンツは、テキストおよび画像の1つまたは複数を含む請求項2に記載の方法。
【請求項４】
前記候補クエリを決定するステップは、
前記候補クエリの1つまたは複数のクエリ語と前記進行中のメッセージ交換スレッドの前記すでに通信がなされたメッセージの1つまたは複数のメッセージ語との間の適合性に基づきクエリのコーパスから前記候補クエリを選択するステップを含む請求項1から3のいずれか一項に記載の方法。
【請求項５】
前記候補クエリを決定するステップは、
前記進行中のメッセージ交換スレッドの前記すでに通信がなされたメッセージで参照されている少なくとも1つのエンティティを決定するステップと、
前記少なくとも1つのエンティティに基づき前記候補クエリを決定するステップとを含む請求項1から4のいずれか一項に記載の方法。
【請求項６】
前記少なくとも1つのエンティティに基づき前記候補クエリを決定するステップは、
前記少なくとも1つのエンティティのエイリアスに基づき前記候補クエリに対する1つまたは複数のクエリ語を生成するステップとを含む請求項5に記載の方法。
【請求項７】
前記候補クエリを決定するステップおよび前記選択可能なグラフィック要素を提供するステップは、前記メッセージ交換スレッドに含めるための追加の自然言語入力のユーザによる作成から独立して行われる請求項1から6のいずれか一項に記載の方法。
【請求項８】
前記進行中のメッセージ交換スレッドのうちの前記すでに通信がなされたメッセージのうちの少なくとも1つのメッセージの1つまたは複数の語に基づき前記候補クエリに対するスコアを決定するステップをさらに含み、
前記選択可能なグラフィック要素を提供するステップは、閾値を満たす前記スコアに基づく請求項1から7のいずれか一項に記載の方法。
【請求項９】
前記1つまたは複数の語に基づき前記スコアを決定するステップは、
名前付きエンティティが前記語に含まれるかどうかに基づき前記スコアを決定するステップ、および
複数の前記語が少なくとも1つの事前定義されている検索クエリパターンに適合しているかどうかに基づき前記スコアを決定するステップのうちの少なくとも1つを含む請求項8に記載の方法。
【請求項１０】
前記候補クエリに対するスコアを、
前記候補クエリのサブミットの量に基づく前記候補クエリに対する人気尺度、および
前記候補クエリに応答する前記コンテンツに対する品質尺度のうちの少なくとも1つに基づき決定するステップをさらに含み、
前記選択可能なグラフィック要素を提供するステップは、閾値を満たす前記スコアに基づく請求項1から9のいずれか一項に記載の方法。
【請求項１１】
前記候補クエリを検索エンジンにサブミットするステップと、
前記候補クエリを前記検索エンジンにサブミットしたことに応答して1つまたは複数の検索結果を受信するステップと、
前記検索結果のうちの少なくとも1つに基づき前記進行中のメッセージ交換スレッドに組み込む前記コンテンツを決定するステップとをさらに含む請求項1から10のいずれか一項に記載の方法。
【請求項１２】
前記候補クエリを前記検索エンジンにサブミットするステップは、前記選択可能なグラフィック要素に向けられる前記ユーザインターフェース入力に応答する請求項11に記載の方法。
【請求項１３】
前記コンテンツを前記進行中のメッセージ交換スレッドに組み込むステップは、
前記コンテンツを前記進行中のメッセージ交換スレッドに、前記コンテンツが自動化アシスタントによって生成されることを示すグラフィック指示とともに組み込むステップを含む請求項1から12のいずれか一項に記載の方法。
【請求項１４】
前記第1のメッセージ交換クライアントを介して前記第1のユーザに表示するために、追加の選択可能なグラフィック要素を提供するステップをさらに含み、前記追加の選択可能なグラフィック要素が、1つまたは複数の語を識別し、選択されたときに、前記1つまたは複数の語を、前記1つまたは複数の語が前記第1のユーザから発せられたという指示とともに前記メッセージ交換スレッドに組み込ませ、前記1つまたは複数の語を、前記1つまたは複数の語に応答するコンテンツを組み込むことなく前記メッセージ交換スレッドに組み込ませる請求項1から13のいずれか一項に記載の方法。
【請求項１５】
前記グラフィック要素を提供するステップは、
前記グラフィック要素を前記第2のメッセージ交換クライアントを介して前記第2のユーザに表示するために提供するステップをさらに含む請求項1から14のいずれか一項に記載の方法。
【請求項１６】
前記コンテンツは、第1のエンティティにフォーカスを当てられた選択可能な第1のコンテンツアイテムと、第2のエンティティにフォーカスを当てられた選択可能な第2のコンテンツアイテムとを含み、
前記第1のコンテンツアイテムに向けられたユーザインターフェース入力は、前記第1のエンティティにフォーカスを当てられた追加の第1のエンティティコンテンツを前記メッセージ交換スレッドに組み込ませ、前記第2のコンテンツアイテムに向けられたユーザインターフェース入力は、前記第2のエンティティにフォーカスを当てられた追加の第2のエンティティコンテンツを前記メッセージ交換スレッドに組み込ませる請求項1から15のいずれか一項に記載の方法。
【請求項１７】
前記コンテンツは、第1のエンティティにフォーカスを当てられた第1の画像またはテキストを含み、選択されたときに前記第1のエンティティに特有の1つまたは複数の追加の計算アクションを実行させる少なくとも1つの選択可能なディープリンクをさらに含む請求項1から16のいずれか一項に記載の方法。
【請求項１８】
前記候補クエリおよび前記コンテンツの少なくとも1つに基づき追加の関係するクエリを決定するステップと、
前記第1のユーザの前記ユーザインターフェース入力の後に、少なくとも前記第1のユーザに前記第1のメッセージ交換クライアントを介して表示するために、前記追加の関係するクエリの指示を提供する追加の選択可能なグラフィック要素を提供するステップであって、
前記追加の選択可能なグラフィック要素は、前記グラフィック要素を同時に表示することなく表示のために提供される、ステップと、
前記追加の選択可能なグラフィック要素に向けられている前記第1のユーザの追加のユーザインターフェース入力に応答して、
前記追加の関係するクエリに応答する追加のコンテンツを前記進行中のメッセージ交換スレッドに組み込むステップであって、
前記追加のコンテンツを前記進行中のメッセージ交換スレッドに組み込むステップは、前記追加のコンテンツが前記第1のメッセージ交換クライアントを介して前記第1のユーザに表示され、および前記第2のメッセージ交換クライアントを介して前記第2のユーザに表示されることを引き起こす、ステップとをさらに含む請求項1から17のいずれか一項に記載の方法。
【請求項１９】
メモリおよび1つまたは複数のプロセッサを備えるシステムであって、前記メモリは、前記1つまたは複数のプロセッサによって実行されたときに、前記1つまたは複数のプロセッサに、
進行中のメッセージ交換スレッドの1つまたは複数のすでに通信がなされたメッセージに基づき少なくとも1つの候補クエリを決定し、
前記進行中のメッセージ交換スレッドは、少なくとも第1のユーザと第2のユーザとの間であり、前記第1のユーザの第1のメッセージ交換クライアントおよび前記第2のユーザの第2のメッセージ交換クライアントを介したものであり、
少なくとも前記第1のユーザに前記第1のメッセージ交換クライアントを介して表示するために、前記候補クエリの指示を提供する選択可能なグラフィック要素を提供し、
前記選択可能なグラフィック要素に向けられている前記第1のユーザのユーザインターフェース入力に応答して、
前記候補クエリに応答するコンテンツを前記進行中のメッセージ交換スレッドに組み込み、
前記コンテンツを前記進行中のメッセージ交換スレッドに組み込む際に、前記1つまたは複数のプロセッサは、前記コンテンツが前記第1のメッセージ交換クライアントを介して前記第1のユーザに表示され、および前記第2のメッセージ交換クライアントを介して前記第2のユーザに表示されることを引き起こすことを行わせる命令を記憶するシステム。
【請求項２０】
命令を記憶した少なくとも1つの非一時的コンピュータ可読記憶媒体であって、前記命令は、1つまたは複数のプロセッサによる前記命令の実行に応答して、前記1つまたは複数のプロセッサに、
進行中のメッセージ交換スレッドの1つまたは複数のすでに通信がなされたメッセージに基づき少なくとも1つの候補クエリを決定する動作であって、
前記進行中のメッセージ交換スレッドは、少なくとも第1のユーザと第2のユーザとの間であり、前記第1のユーザの第1のメッセージ交換クライアントおよび前記第2のユーザの第2のメッセージ交換クライアントを介したものである、動作と、
少なくとも前記第1のユーザに前記第1のメッセージ交換クライアントを介して表示するために、前記候補クエリの指示を提供する選択可能なグラフィック要素を提供する動作と、
前記選択可能なグラフィック要素に向けられている前記第1のユーザのユーザインターフェース入力に応答して、
前記候補クエリに応答するコンテンツを前記進行中のメッセージ交換スレッドに組み込む動作とを実行させる少なくとも1つの非一時的コンピュータ可読記憶媒体。
【請求項２１】
1つまたは複数のプロセッサによる前記命令の実行に応答して、前記1つまたは複数のプロセッサに、請求項2から18のいずれか一項に記載の方法を実行させる命令を有する請求項20に記載の少なくとも1つの非一時的コンピュータ可読記憶媒体。
【請求項２２】
請求項1から18のいずれか一項に記載の方法を実行するように構成された装置。
【請求項２３】
コンピューティング装置によって実行されたときに、請求項1から18のいずれか一項に記載の方法を実行させる機械可読命令を含むコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチユーザメッセージ交換スレッドにおける自動化アシスタントとのインタラクションのための提案を提供することに関する。
【背景技術】
【０００２】
複数のユーザが、テキストメッセージ交換、オンラインチャット(たとえば、インスタントメッセンジャー、インターネットリレーチャット)、ソーシャルネットワークメッセージングスレッド、などの様々な技術を使用して実装され得るメッセージ交換スレッドを介してテキストで互いに通信することができる。テキストメッセージングアプリ、オンラインチャットアプリ、ソーシャルネットワーキングアプリなどのクライアントメッセージ交換アプリは、グラフィカルユーザインターフェースの一部として進行中のメッセージ交換スレッドのトランスクリプト(たとえば、ユーザが会話するときにリアルタイムで更新されるテキストおよび/または画像のライブもしくはほぼライブの記録)の少なくとも一部を表示し得、したがって、ユーザは会話についていくことができる。
【０００３】
進行中のメッセージ交換スレッド、したがって、表示されるトランスクリプトは、典型的には、テキストまたはユーザが故意に、明示的にメッセージ交換スレッドに組み込む画像などの他のデータに制限される。その結果、会話に関係する外部情報を求めるユーザは、所望の情報を取得するためにウェブブラウザなどの異なるアプリケーションに切り替えなければならない。アプリケーションを切り替えるステップは、一度に単一のアプリケーションしか表示しないことが多いモバイルコンピューティングデバイスを使用したときなど、様々なシナリオにおいて1つまたは複数の欠点を有し得る。たとえば、アプリケーションを切り替えるステップは、気を散らし、煩わしく感じさせることがあり、会話の流れを中断するおそれがあり、および/または1つまたは複数の計算リソース(たとえば、モバイルコンピューティングデバイスのメモリ、プロセッサ、および/またはバッテリリソース)に負担を掛ける可能性がある。クライアントメッセージ交換アプリの追加のおよび/または代替的な欠点が提起され得る。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本明細書のいくつかの実装形態は、ユーザ間の進行中のメッセージ交換スレッドの1人または複数のユーザへの少なくとも1つの文脈上関連性のある提案を提供するステップに向けられる。提案は、ユーザのコンピューティングデバイスのユーザインターフェース出力デバイスを介してユーザに提示するために提供される。提案は、メッセージ交換スレッドにクエリに応答するコンテンツを組み込むことを自動化アシスタントに行わせるために自動化アシスタントにサブミットされ得る(たとえば、メッセージ交換スレッドを介して自動化アシスタントにサブミットされ得る)クエリを指示する。文脈上関連性のある提案をメッセージ交換スレッドに組み込むことで、ユーザがクエリに応答するコンテンツにアクセスするためにデバイスに対して行わなければならないユーザ入力の数を減らし得る。これは、あまり器用でないユーザ、または他の方法ではデバイスにユーザ入力を行うのが難しいユーザにとって、特に有益であり得る。少なくともこれらのユーザについて、選択可能な提案をメッセージ交換スレッドに組み込むことで、たとえば、あまり器用でないため誤りを犯すユーザを救うことによってそのデバイスの使用の信頼性および速度を高め得る。
【課題を解決するための手段】
【０００５】
いくつかの実装形態において、提案は、選択可能な提案(たとえば、表示用に提供されている選択可能なグラフィック要素)であり、クエリに応答するコンテンツは、選択可能な提案に向けられているユーザインターフェース入力(たとえば、「タップ」、「クリック」、「音声コマンド」)に応答するメッセージ交換スレッドに組み込まれる。いくつかの実装形態において、提案は、メッセージ交換スレッドのユーザの間ですでに通信がなされている1つまたは複数のメッセージに基づき決定される。たとえば、提案によって指示されるクエリは、すでに通信がなされているメッセージの1つまたは複数の語、画像、および/または他のコンテンツに基づき決定され得る。
【０００６】
本明細書で説明されているいくつかの実装形態の特定の一例として、「Tom(トム)」、「Jerry(ジェリー)」、および「Spike(スパイク)」が、メッセージ交換スレッドに参加していると仮定する。さらに、「Tom」は、自分のコンピューティングデバイスのちの1つのメッセージ交換クライアントを使用して、「I heard Band A has a concert in Louisville, any interest?(バンドAがルーイビルでコンサートをすると聞きましたが、興味ありますか？)」というメッセージを作成し、そのメッセージをスレッドに組み込むと仮定する。さらに、Jerryは自分のコンピューティングデバイスのテキストメッセージングアプリケーションを使用して、「Any idea what date?(何日ですか?)」という返信メッセージを作成し、そのメッセージをスレッドに組み込むと仮定する。「date of Band A Louisville concert(バンドAのルーイビルコンサートの日)」というクエリが、メッセージに基づき、また本明細書で説明されている1つまたは複数の技術による返信メッセージに基づき決定され得る。さらに、クエリの指示を提供する(たとえば、クエリのすべての語を含む)選択可能なグラフィック要素である提案が、それぞれのテキストメッセージングアプリケーションを介して、Tom、Jerry、および/またはSpikeに表示するために提供され得る。ユーザに対して表示される選択可能なグラフィック要素に向けられるユーザの1人からのユーザインターフェース入力に応答して、クエリに応答するコンテンツは、メッセージ交換スレッドに自動的に組み込まれ、ユーザの1人または複数(たとえば、全員)に表示され得る。たとえば、コンテンツは、ルーイビルにおけるBand Aのコンサートの日時および/または開催地を指示するテキストを含み得る。コンテンツは、たとえば、そのクエリに対して発行される検索について返される1つまたは複数の検索結果に基づき決定され得る。
【０００７】
いくつかの実装形態において、進行中のメッセージ交換スレッドにおいて文脈上関連性のある提案を提供するステップで、それらの提案によって指示されるクエリの、ユーザによるサブミットを円滑にするものとしてよく、そのサブミットは、文脈上関連性のあるコンテンツをメッセージ交換スレッドに組み込むことを自動化アシスタントに行わせる。これは、ユーザの特定の情報ニーズに応えるためにユーザがアプリケーションを切り替えてメッセージ交換スレッドを別のアプリケーションにレンダリングする必要性を低減し、および/またはなくし得る。これは、あまり器用でないユーザ、または他の方法ではデバイスに入力を行うのが難しいと感じたユーザにとって、特に有用であり得る。
【０００８】
これは、情報ニーズに応えるために別のアプリケーションに切り替える際に他の方法では消費されるであろういくつかの計算リソースの使用をさらに低減し得る。たとえば、別のアプリケーションに切り替えるには、アプリケーションの起動および/またはサーフェシングを介してプロセッサ、メモリ、および/またはバッテリリソースの使用が必要になり得る。さらに、メッセージ交換スレッドにおいて自動化アシスタントからコンテンツを取得する代わりに別のアプリケーションに切り替えてコンテンツを取得しようとすると、ユーザが情報を取得するのによけいに時間がかかる可能性があり、その結果、コンテンツを取得する際の計算リソースの消費の増大が引き起こされ得る。いくつかの実装形態において、本明細書において説明されている技術は、提案が提供されない、および/または提供される提案がユーザの情報ニーズを満たさないシナリオなどの、将来の進行中のメッセージ交換シナリオにおいてユーザによって自動化アシスタントに提供され得る様々な種類の入力をユーザに教えるのにさらに役立ち得る。少なくともこれらのシナリオにおいて、メッセージ交換スレッドに組み込まれる選択可能な提案は、提案が表示されるデバイスの外で、少なくともデータを1つまたは複数の外部コンピュータからデバイスへダウンロードさせることによって、効果を有し得る。このプロセスは、選択可能な提案によって信頼性を高められるものとしてよく、このことは、誤りを含む手作業による検索結果のユーザ選択など、1つまたは複数の誤りのあるユーザ入力により誤ったデータがデバイスにダウンロードされるリスクが著しく低減されることを確実にする。これは、ネットワークトラフィックを低減し、システム全体をより効率的に動作させ得る。
【０００９】
いくつかの実装形態において、進行中のメッセージ交換スレッドの1つまたは複数のすでに通信がなされたメッセージに基づき少なくとも1つの候補クエリを決定するステップを含む1つまたは複数のプロセッサによって実行される方法が提供される。進行中のメッセージ交換スレッドは、少なくとも第1のユーザと第2のユーザとの間であり、第1のユーザの第1のメッセージ交換クライアントおよび第2のユーザの第2のメッセージ交換クライアントを介したものである。この方法は、少なくとも第1のユーザに第1のメッセージ交換クライアントを介して表示するために、候補クエリの指示を提供する選択可能なグラフィック要素を提供するステップをさらに含む。方法は、選択可能なグラフィック要素に向けられた第1のユーザのユーザインターフェース入力に応答して、候補クエリに応答するコンテンツを進行中のメッセージ交換スレッドに組み込むステップをさらに含む。コンテンツを進行中のメッセージ交換スレッドに組み込むと、コンテンツが第1のメッセージ交換クライアントを介して第1のユーザに表示され、および/または第2のメッセージ交換クライアントを介して第2のユーザに表示されることが引き起こされる。
【００１０】
いくつかの実装形態において、コンテンツを進行中のメッセージ交換スレッドに組み込むステップは、メッセージ交換クライアントのうちの少なくとも1つがコンテンツをメッセージ交換クライアントのうちの少なくとも1つのグラフィカルユーザインターフェースに表示される進行中のメッセージ交換スレッドのトランスクリプトに挿入することを要求するステップを含む。
【００１１】
いくつかの実装形態において、コンテンツは、テキストおよび画像の1つまたは複数を含む。
【００１２】
いくつかの実装形態において、候補クエリを決定するステップは、候補クエリの1つまたは複数のクエリ語と進行中のメッセージ交換スレッドのすでに通信がなされたメッセージの1つまたは複数のメッセージ語との間の適合性に基づきクエリのコーパスから候補クエリを選択するステップを含む。
【００１３】
いくつかの実装形態において、候補クエリを決定するステップは、進行中のメッセージ交換スレッドのすでに通信がなされたメッセージにおいて参照されている少なくとも1つのエンティティを決定するステップと、少なくとも1つのエンティティに基づき候補クエリを決定するステップとを含む。それらの実装形態のうちのいくつかにおいて、少なくとも1つのエンティティに基づき候補クエリを決定するステップは、少なくとも1つのエンティティのエイリアスに基づき候補クエリに対する1つまたは複数のクエリ語を生成するステップを含む。
【００１４】
いくつかの実装形態において、候補クエリを決定するステップおよび選択可能なグラフィック要素を提供するステップは、メッセージ交換スレッドに含めるための追加の自然言語入力のユーザによる作成から独立して行われる。
【００１５】
いくつかの実装形態において、方法は、進行中のメッセージ交換スレッドのうちのすでに通信がなされたメッセージのうちの少なくとも1つの1つまたは複数の語に基づき候補クエリに対するスコアを決定するステップをさらに含む。選択可能なグラフィック要素を提供するステップは、閾値を満たすスコアに基づくものとしてよい。それらの実装形態のうちのいくつかにおいて、1つまたは複数の語に基づきスコアを決定するステップは、名前付きエンティティが語に含まれるかどうかに基づきスコアを決定するステップおよび/または複数の語が少なくとも1つの事前定義済み検索クエリパターンに適合しているかどうかに基づきスコアを決定するステップを含む。
【００１６】
いくつかの実装形態において、この方法は、候補クエリに対するスコアを、候補クエリのサブミットの量に基づく候補クエリに対する人気尺度、および/または候補クエリに応答するコンテンツに対する品質尺度に基づき決定するステップをさらに含む。選択可能なグラフィック要素を提供するステップは、閾値を満たすスコアに基づくものとしてよい。
【００１７】
いくつかの実装形態において、この方法は、候補クエリを検索エンジンにサブミットするステップと、候補クエリを検索エンジンにサブミットしたことに応答して1つまたは複数の検索結果を受信するステップと、検索結果のうちの少なくとも1つに基づき進行中のメッセージ交換スレッドに組み込むコンテンツを決定するステップとをさらに含む。それらの実装形態のうちのいくつかにおいて、候補クエリを検索エンジンにサブミットするステップは、選択可能なグラフィック要素に向けられるユーザインターフェース入力に応答する。
【００１８】
いくつかの実装形態において、コンテンツを進行中のメッセージ交換スレッドに組み込むステップは、コンテンツを、コンテンツが自動化アシスタントによって生成されるというグラフィック指示とともに進行中のメッセージ交換スレッドに組み込むステップを含む。
【００１９】
いくつかの実装形態において、方法は、第1のメッセージ交換クライアントを介して第1のユーザに表示するために、追加の選択可能なグラフィック要素を提供するステップをさらに含み、追加の選択可能なグラフィック要素は、1つまたは複数の語を識別し、選択されたときに、1つまたは複数の語を、1つまたは複数の語が第1のユーザから発せられたという指示とともにメッセージ交換スレッドに組み込ませ、1つまたは複数の語を、1つまたは複数の語に応答するコンテンツを組み込むことなくメッセージ交換スレッドに組み込ませる。
【００２０】
いくつかの実装形態において、グラフィック要素を提供するステップは、第2のメッセージ交換クライアントを介して第2のユーザに表示するグラフィック要素を提供するステップをさらに含む。
【００２１】
いくつかの実装形態において、コンテンツは、第1のエンティティにフォーカスを当てられた選択可能な第1のコンテンツアイテムと、第2のエンティティにフォーカスを当てられた選択可能な第2のコンテンツアイテムとを含む。それらの実装形態のうちのいくつかにおいて、第1のコンテンツアイテムに向けられたユーザインターフェース入力は、第1のエンティティにフォーカスを当てられた追加の第1のエンティティコンテンツをメッセージ交換スレッドに組み込ませ、および/または第2のコンテンツアイテムに向けられたユーザインターフェース入力は、第2のエンティティにフォーカスを当てられた追加の第2のエンティティコンテンツをメッセージ交換スレッドに組み込ませる。
【００２２】
いくつかの実装形態において、コンテンツは、第1のエンティティにフォーカスを当てられた第1の画像またはテキストを含み、選択されたときに第1のエンティティに特有の1つまたは複数の追加の計算アクションを実行させる少なくとも1つの選択可能なディープリンクをさらに含む。
【００２３】
いくつかの実装形態において、この方法は、候補クエリおよび/またはコンテンツに基づき追加の関係するクエリを決定するステップと、第1のユーザのユーザインターフェース入力の後に、少なくとも第1のユーザに第1のメッセージ交換クライアントを介して表示するために、追加の関係するクエリの指示を提供する追加の選択可能なグラフィック要素を提供するステップとをさらに含む。追加の選択可能なグラフィック要素は、グラフィック要素を同時に表示することなく表示のために提供され得る。この方法は、追加の選択可能なグラフィック要素に向けられた第1のユーザの追加のユーザインターフェース入力に応答して、追加の関係するクエリに応答する追加のコンテンツを進行中のメッセージ交換スレッドに組み込むステップをさらに含み得る。追加のコンテンツを進行中のメッセージ交換スレッドに組み込むと、追加のコンテンツが第1のメッセージ交換クライアントを介して第1のユーザに表示され、および/または第2のメッセージ交換クライアントを介して第2のユーザに表示されることが引き起こされる。
【００２４】
それに加えて、いくつかの実装形態は、1つまたは複数のコンピューティングデバイスの1つまたは複数のプロセッサを含み、1つまたは複数のプロセッサは、関連付けられているメモリに記憶されている命令を実行するように動作可能であり、命令は、前述の方法のうちのいずれかを実行させるように構成される。いくつかの実装形態は、前述の方法のうちのいずれかを実行するために1つまたは複数のプロセッサによって実行可能なコンピュータ命令を記憶する非一時的コンピュータ可読記憶媒体を含む。
【００２５】
前述の概念および本明細書でより詳しく説明されている追加の概念のすべての組合せは、本明細書で開示されている主題の一部であると企図されることは理解されるべきである。たとえば、本開示の末尾に現れる請求されている主題のすべての組合せは、本明細書で開示されている主題の一部であると企図される。
【図面の簡単な説明】
【００２６】
【図１】本明細書において開示されている実装形態が実装され得る例示的な環境の図である。
【図２Ａ】ユーザ間の進行中のメッセージ交換スレッドの1人または複数のユーザへの少なくとも1つの文脈上関連性のある提案を提供するステップの一例を示す図である。
【図２Ｂ】ユーザに提供され、クエリを指示する提案に向けられているユーザインターフェース入力などの、メッセージ交換スレッドのユーザのうちの1人のユーザインターフェース入力に応答してクエリに応答するコンテンツをメッセージ交換スレッドに組み込むステップの一例を示す図である。
【図３Ａ】様々な実装形態により、クライアントコンピューティングデバイスがメッセージ交換クライアントに対するグラフィカルユーザインターフェースをどのようにレンダリングし得るかの一例を示す図である。
【図３Ｂ】様々な実装形態により、クライアントコンピューティングデバイスがメッセージ交換クライアントに対するグラフィカルユーザインターフェースをどのようにレンダリングし得るかの一例を示す図である。
【図３Ｃ】様々な実装形態により、クライアントコンピューティングデバイスがメッセージ交換クライアントに対するグラフィカルユーザインターフェースをどのようにレンダリングし得るかの一例を示す図である。
【図３Ｄ】様々な実装形態により、クライアントコンピューティングデバイスがメッセージ交換クライアントに対するグラフィカルユーザインターフェースをどのようにレンダリングし得るかの一例を示す図である。
【図４】ユーザ間の進行中のメッセージ交換スレッドの1人または複数のユーザに少なくとも1つの文脈上関連性のある提案を提供し、メッセージ交換スレッドに、提案によって指示されるクエリに応答するコンテンツを組み込む例示的な方法を示すフローチャートである。
【図５】コンピューティングデバイスの例示的なアーキテクチャを示す図である。
【発明を実施するための形態】
【００２７】
本明細書の実装形態は、ユーザ間の進行中のメッセージ交換スレッドの1人または複数のユーザへの少なくとも1つの文脈上関連性のある提案を提供するステップに向けられる。提案は、ユーザのコンピューティングデバイスのユーザインターフェース出力デバイスを介してユーザに提示するために提供される。提案は、メッセージ交換スレッドにクエリに応答するコンテンツを組み込むことを自動化アシスタントに行わせるために自動化アシスタントにサブミットされ得る(たとえば、メッセージ交換スレッド内でサブミットされ得る)クエリを指示する。いくつかの実装形態において、提案は、選択可能な提案(たとえば、表示用に提供されている選択可能なグラフィック要素)であり、クエリに応答するコンテンツは、選択可能な提案に向けられているユーザインターフェース入力(たとえば、「タップ」、「クリック」、「音声コマンド」)に応答するメッセージ交換スレッドに組み込まれる。いくつかの実装形態において、提案は、メッセージ交換スレッドのユーザの間ですでに通信がなされている1つまたは複数のメッセージに基づき決定される。たとえば、提案によって指示されるクエリは、すでに通信がなされているメッセージの1つまたは複数の語、画像、および/または他のコンテンツに基づき決定され得る。
【００２８】
次に、図1を参照すると、本明細書において開示されている技術が実装され得る例示的な環境が示されている。例示的な環境は、複数のクライアントコンピューティングデバイス1061〜Nおよび自動化アシスタント120を備える。自動化アシスタント120は、図1にはクライアントコンピューティングデバイス1061〜Nと別のものとして例示されているけれども、いくつかの実装形態において、自動化アシスタント120のすべてまたはいくつかの態様は、クライアントコンピューティングデバイス1061〜Nのうちの1つまたは複数よって実装されてよい。たとえば、クライアントコンピューティングデバイス1061は、自動化アシスタント120の1つまたは複数の態様の1つのインスタンスを実装するものとしてよく、クライアントデバイス106Nは、自動化アシスタント120のそれらの1つまたは複数の態様の別個のインスタンスも実装するものとしてよい。自動化アシスタント120の1つまたは複数の(たとえば、すべての)態様がクライアントコンピューティングデバイス1061〜Nからリモートにある1つまたは複数のコンピューティングデバイスによって実装される実装形態では、クライアントコンピューティングデバイス1061〜Nおよび自動化アシスタント120のそれらの態様は、ローカルエリアネットワーク(LAN)および/またはワイドエリアネットワーク(WAN)(たとえば、インターネット)などの1つまたは複数のネットワークを介して互いに通信し得る。
【００２９】
クライアントコンピューティングデバイス1061〜Nは、たとえば、デスクトップコンピューティングデバイス、ラップトップコンピューティングデバイス、タブレットコンピューティングデバイス、携帯電話コンピューティングデバイス、ユーザの車両のコンピューティングデバイス(たとえば、車載通信システム、車載娯楽システム、車載ナビゲーションシステム)、またはコンピューティングデバイスを備えるユーザの着用可能装置(たとえば、コンピューティングデバイスを有するユーザの腕時計、コンピューティングデバイスを有するユーザの眼鏡、仮想または拡張現実コンピューティングデバイス)のうちの1つまたは複数を含み得る。追加の、および/または代替的なクライアントコンピューティングデバイスが実現され得る。
【００３０】
クライアントコンピューティングデバイス1061〜Nおよび自動化アシスタント120の各々は、データおよびソフトウェアアプリケーションを記憶するための1つまたは複数のメモリと、データにアクセスし、アプリケーションを実行するための1つまたは複数のプロセッサと、ネットワーク上の通信を円滑にする他のコンポーネントとを備え得る。クライアントコンピューティングデバイス1061〜Nのうちの1つまたは複数によって、および/または自動化アシスタント120によって実行される動作は、複数のコンピュータシステムに分散させてよい。自動化アシスタント120は、たとえば、ネットワークを通じて互いに結合されている1つまたは複数のロケーションにある1つまたは複数のコンピュータ上で実行されるコンピュータプログラムとして実装され得る。
【００３１】
いくつかの実装形態において、所与のユーザは、コンピューティングデバイスの協調「エコシステム」を共同で形成するユーザの複数のクライアントコンピューティングデバイスを利用する自動化アシスタント120と通信し得る。たとえば、ユーザは、ユーザの複数のコンピューティングデバイスを介して進行中のメッセージスレッドに参加し得る。たとえば、ユーザは、第1のコンピューティングデバイス(たとえば、デスクトップコンピューティングデバイス)におけるユーザインターフェース入力を介してメッセージスレッドに組み込む第1のメッセージを提供するものとしてよく、後から、第2のコンピューティングデバイス(たとえば、モバイルコンピューティングデバイス)におけるユーザインターフェース入力を介してメッセージスレッドに組み込む第2のメッセージを提供し得る。しかしながら、簡潔にするため、本開示において説明されている多くの例において、所与のユーザがクライアントコンピューティングデバイス1061〜Nのうちの単一の1つを操作することに注目する。
【００３２】
クライアントコンピューティングデバイス1061〜Nの各々は、メッセージ交換クライアント1071〜Nのうちの対応する1つなどの様々な異なるアプリケーションを操作し得る。メッセージ交換クライアント1071〜Nは、様々な形態のものがあり得、それらの形態は、クライアントコンピューティングデバイス1061〜Nによって異なっていてよく、および/または複数の形態はクライアントコンピューティングデバイス1061〜Nのうちの単一の1つで操作され得る。いくつかの実装形態において、メッセージ交換クライアント1071〜Nのうちの1つまたは複数は、ショートメッセージングサービス(「SMS」)および/またはマルチメディアメッセージングサービス(「MMS」)クライアント、オンラインチャットクライアント(たとえば、インスタントメッセンジャー、インターネットリレーチャット、または「IRC」など)、ソーシャルネットワークに関連付けられているメッセージングアプリケーション、などの形態をとり得る。いくつかの実装形態において、メッセージ交換クライアント1071〜Nのうちの1つまたは複数は、クライアントコンピューティングデバイスのウェブブラウザ(図示せず)または他のアプリケーションによってレンダリングされるウェブページまたは他のリソースを介して実装され得る。
【００３３】
自動化アシスタント120は、それらのユーザの複数のメッセージ交換クライアント1071〜Nを介して行われている複数のユーザ間の進行中のメッセージ交換スレッドの1つまたは複数のメッセージを調べる。いくつかの実装形態において、自動化アシスタント120は、ユーザ間のメッセージ交換スレッドを円滑にする中央電話局の機能を果たす。他の実装形態では、自動化アシスタント120は、中央電話局としての機能を果たし得ないが、それでも、進行中のメッセージ交換のメッセージを連続的に、定期的に、または他の規則正しいおよび/または不規則な間隔で調べ得る。たとえば、自動化アシスタント120は、進行中のメッセージ交換に参加しているユーザの1つまたは複数のクライアントコンピューティングデバイスの全体にまたは一部に実装され、クライアントコンピューティングデバイスを介してメッセージ交換を調べるものとしてよい。また、たとえば、自動化アシスタント120は、進行中のメッセージ交換に参加しているユーザのクライアントコンピューティングデバイスからリモートにある1つまたは複数のコンピューティングデバイスの全体にまたは一部に実装され得るが、クライアントコンピューティングデバイスの1つまたは複数から、および/またはメッセージ交換を円滑にしている別のコンピューティングデバイスから進行中のメッセージ交換のメッセージを受信し得る。
【００３４】
いくつかの実装形態において、自動化アシスタント120は、調べたメッセージのうちの1つまたは複数に基づき、少なくとも1つの文脈上関連性のある提案を決定し、メッセージ交換クライアント1071〜Nを介してそれらのユーザのうちの1人または複数に提示する(たとえば、グラフィック要素として表示する)ために提供し得る。
【００３５】
自動化アシスタントによって決定された提案は、メッセージ交換クライアント1071〜Nのうちの1つを介して、自動化アシスタント120にサブミットされ得るクエリを指示し、自動化アシスタント120および/または1つまたは複数のメッセージ交換クライアントに、メッセージ交換スレッドに、クエリに応答するコンテンツを組み込むことを行わせる。たとえば、提案に向けられ、メッセージ交換スレッドのユーザのうちの1人によって提供されるユーザインターフェース入力に応答して、自動化アシスタント120は、クエリに応答するコンテンツをメッセージ交換スレッドに組み込み得る。それらの実装形態のうちのいくつかにおいて、提案に向けられたユーザインターフェース入力は、提案によって指示されたクエリが自動化アシスタント120にサブミットされることを行わせ、自動化アシスタント120はクエリに基づき検索を開始し、自動化アシスタント120は、検索の1つまたは複数の検索結果に基づきコンテンツを決定し得る。他のいくつかの実装形態において、検索に応答するコンテンツは、すでに決定されていてよく、自動化アシスタント120によって、提案に向けられたユーザインターフェース入力に応答してクエリまたは他のデータを受信したことに応答してメッセージ交換スレッド内に入るように実装され得る。さらに他の実装形態において、ユーザは、提案によって指示されたクエリをタイピングするか、または発話し、ユーザインターフェース入力を提案に明示的に向けることなくクエリを自動化アシスタント120にサブミットしてよい。それらの実装形態のうちのいくつかにおいて、自動化アシスタント120は、コンテンツをメッセージ交換スレッドに組み込むことによって同様に応答し得る。
【００３６】
いくつかの実装形態において、自動化アシスタント120は、ユーザによって提供される1つまたは複数のユーザインターフェース入力と無関係にユーザへの提示のために提案を提供し得る。たとえば、提案は、メッセージ交換スレッドに潜在的に入れることになるメッセージを作成する際にユーザによって提供される自然言語ユーザインターフェース入力(たとえば、タイピングされるか、または発話される)と無関係に提供されてよい。たとえば、いくつかの実装形態において、提案は、少なくとも一部はメッセージ交換スレッドの最新のメッセージである所与のメッセージに基づき決定されてよく、1人または複数のユーザに対して、それらのユーザがメッセージ交換にサブミットされた場合に最新のものとなるであろう追加のメッセージを作成するステップに向けられているユーザインターフェース入力を提供する前に提示されてよい。
【００３７】
いくつかの実装形態において、提案は自動的に、ユーザインターフェース入力から独立して提供され得る。いくつかの他の実装形態において、提案は、ユーザインターフェース要素のユーザ選択、ユーザによって提供される発話されたコマンドなどの、特定のユーザインターフェース入力に応答して提供され得る。たとえば、提案は、ユーザが「タップ」するか、または他の何らかの形でメッセージ交換クライアント1071〜Nのうちの1つによってレンダリングされるグラフィカルユーザインターフェース内の「返信領域」を選択したことに応答して提供され得る。別の例として、提案は、ユーザが仮想ボタン(たとえば、タップ、長タップ)、音声コマンド(たとえば、「Hey Personal Assistant, give me some suggestions(パーソナルアシスタント、私にいくつか提案をください)」)などをインタラクティブに操作したことに応答して提供され得る。
【００３８】
いくつかの実装形態において、自動化アシスタント120が提案を提供するかどうか、および/またはどのように提供するかは、提案によって指示されるクエリに対するスコアに基づき得る。たとえば、自動化アシスタント120は、クエリに対するスコアが閾値を満たしている場合に提示する提案を自動的に提供し得るが、スコアが閾値を満たさない場合に提案を提供する前にユーザインターフェース入力を必要とし得る。また、たとえば、自動化アシスタント120は、スコアが第1の閾値を満たしている場合に提示する提案を自動的に提供し、スコアが第1の閾値を満たさないが、第2の閾値を満たす場合に提示する提案を提供する前に特定のユーザインターフェース入力を必要とし、スコアが第1の閾値または第2の閾値を満たさない場合にいくつかの状況の下で提案を提供し得ない。クエリに対するスコアを決定する実装形態の追加の説明がここで与えられる。
【００３９】
いくつかの実装形態において、自動化アシスタント120は、メッセージ処理エンジン122と、エンティティ決定エンジン124と、提案エンジン126と、コンテンツエンジン128と、メッセージ交換エンジン130とを備え得る。いくつかの実装形態において、エンジン122、124、126、128、および/または130のうちの1つまたは複数は、省かれ得る。いくつかの実装形態において、エンジン122、124、126、128、および/または130のうちの1つまたは複数のすべてのまたはいくつかの態様は、組み合わされ得る。いくつかの実装形態において、エンジン122、124、126、128、および/または130のうちの1つまたは複数は、自動化アシスタント120から分離しているコンポーネントで実装され得る。たとえば、エンジン122、124、126、128、および/または130のうちの1つまたは複数、またはその稼動部分は、クライアントコンピューティングデバイス1061〜Nによって実行されるコンポーネントで実装され得る。
【００４０】
メッセージ処理エンジン122は、メッセージ交換スレッドの1つまたは複数のメッセージを処理し、自動化アシスタント120の1つまたは複数の他のコンポーネントによる使用のため注釈付き出力を生成する。たとえば、メッセージ処理エンジン122は、クライアントデバイス1061の1つまたは複数のユーザインターフェース入力デバイスを介してユーザによって作成され、メッセージ交換クライアント1071によってメッセージ交換スレッドにサブミットされる自由形式自然言語入力を処理し得る。メッセージの生成された注釈付き出力は、メッセージのコンテンツおよび任意選択によりコンテンツそれ自体の少なくとも一部の1つまたは複数の注釈を含む。
【００４１】
いくつかの実装形態において、メッセージ処理エンジン122は、メッセージの自然言語コンテンツにおける様々な種類の文法情報を識別し、注釈を付けるように構成される。たとえば、メッセージ処理エンジン122は、語にその文法上の役割を注釈として付けるように構成されている品詞タグ付け器を含み得る。たとえば、品詞タグ付け器は、「名詞」、「動詞」、「形容詞」、「代名詞」などの品詞を各語にタグ付けするものとしてよい。また、たとえば、いくつかの実装形態において、メッセージ処理エンジン122は、それに加えて、および/または代替的に、自然言語入力における語の間の構文的関係を決定するように構成されている依存関係解析器を備え得る。たとえば、依存関係解析器は、どの語が文章の他の語、主語、および動詞を修飾するかなどを決定し(たとえば、解析木)、そのような依存関係の注釈を行い得る。
【００４２】
いくつかの実装形態において、メッセージ処理エンジン122は、それに加えておよび/または代替的に、人々、組織、場所などへの参照などのメッセージのコンテンツ(たとえば、自然言語コンテンツおよび/または画像)におけるエンティティ参照に注釈を付けるように構成されているエンティティタグ付け器を含み得る。エンティティタグ付け器は、高水準の粒度(たとえば、人々などのエンティティクラスへのすべての参照の識別を可能にする)および/または低水準の粒度(たとえば、特定の人などの特定のエンティティへのすべての参照の識別を可能にする)のエンティティへの参照に注釈を付け得る。エンティティタグ付け器は、特定のエンティティを解決するためにコンテンツそれ自体に依存するものとしてよく、および/または任意選択により、特定のエンティティを解決するために1つまたは複数のリソースと通信し得る。たとえば、自然言語コンテンツにおけるエンティティを解決するために、エンティティタグ付け器は、知識グラフまたは他のエンティティデータベースと通信して特定のエンティティを解決し得る。また、たとえば、画像コンテンツにおけるエンティティを解決するために、エンティティタグ付け器は、画像中に存在する1つまたは複数のエンティティ(たとえば、エンティティ分類)を識別するように構成されている畳み込みニューラルネットワークなどの画像処理システムと通信し得る。
【００４３】
いくつかの実装形態において、メッセージ処理エンジン122は、それに加えておよび/または代替的に、1つまたは複数のコンテキストから得られる手がかりに基づき同じエンティティへの参照をグループ化するか、または「クラスタ化」するように構成されている同一指示解決器を備え得る。たとえば、同一指示解決器は、自然言語入力「I think Restaurant A sounds good. Where is it located?(レストランAが良いと思います。それはどこにありますか?)」中の語「it(それ)」を「Restaurant A(レストランA)」に解決するために利用され得る。
【００４４】
いくつかの実装形態において、メッセージ処理エンジン122の1つまたは複数のコンポーネントは、メッセージ処理エンジン122の1つまたは複数の他のコンポーネントからの注釈に依存し得る。たとえば、いくつかの実装形態において、名前を付けられたエンティティタグ付け器は、特定のエンティティへのすべての言及に注釈を付ける際に同一指示解決器および/または依存関係解析器からの注釈に依存し得る。また、たとえば、いくつかの実装形態において、同一指示解決器は、同じエンティティへの参照をクラスタ化する際に依存関係解析器からの注釈に依存し得る。いくつかの実装形態において、特定のメッセージを処理する際に、メッセージ処理エンジン122の1つまたは複数のコンポーネントは、メッセージ交換スレッドの1つまたは複数の前のメッセージを使用してメッセージ交換スレッドの所与のメッセージに対する1つまたは複数の注釈を決定し得る。たとえば、メッセージ交換スレッドにおいて第1のユーザは、「How does Restaurant A sound?(レストランAはどう?)」というメッセージをスレッドに組み込み、第2のユーザは、メッセージ交換スレッドに、「Where is it located?」という応答メッセージを組み組み得る。「Where is it located」を処理する際に、同一指示解決器は「How does Restaurant A sound?」という前のメッセージに基づき「it」を「Restaurant A」に解決し得る。
【００４５】
エンティティ決定エンジン124は、メッセージ交換スレッドの1つまたは複数のメッセージで参照されている1つまたは複数のエンティティを決定する。いくつかの実装形態において、エンティティ決定エンジン124は、メッセージ交換スレッドのメッセージの部分集合の分析結果に基づきメッセージ交換スレッドで「最近」参照された1つまたは複数のエンティティを決定し得る。たとえば、エンジン124は、最後のN個のメッセージ(たとえば、最後の1、2、または4個のメッセージ)に基づき、および/または時間閾値(たとえば、最後の1分、最後の10分)の範囲でメッセージ交換スレッドに組み込まれているメッセージに基づき最近参照されたエンティティを決定し得る。
【００４６】
1つまたは複数のメッセージで参照されているエンティティを決定する際に、エンティティ決定エンジン124は、メッセージ処理エンジン122によって提供されるメッセージおよび/または注釈の内容に依存し得る(たとえば、エンジン122のエンティティタグ付け器によって提供されるエンティティタグ)。エンティティ決定エンジン124は、知識グラフまたは他のエンティティデータベースおよび/またはメッセージ交換スレッドに参加している1人または複数のユーザのユーザ属性などの、エンティティを決定する際に1つまたは複数の追加のリソースも利用し得る。
【００４７】
一例として、「what's the weather like then?(そのときの天気はどうですか?)」という一番最近のメッセージおよび「any interest in a trip to Louisville in May for the Derby?(ダービーのための5月のルーイビルへの旅行に関心がありますか?)」という直前のメッセージを仮定する。これら2つのメッセージに基づき、エンティティ決定エンジン124は、たとえば「Louisville(ルーイビル)」の「エイリアス」特性を有する知識グラフにおけるそのエンティティに対するエントリに基づき、および「Derby(ダービー)」に関連付けられているエンティティに対するエントリとの強い関係を有するエントリに基づきケンタッキー州のルーイビル市に対応するエンティティを決定し得る。エンティティ決定エンジン124は、また、任意選択により、メッセージ内の「May(5月)」という語の存在および/またはメッセージ内のその構文的関係に基づき(たとえば、エンジン122によって提供される注釈に基づき)5月に対応するエンティティを決定し得る。エンティティ決定エンジン124は、また、任意選択により、メッセージ内のその語の存在に基づき「天気」に対応するエンティティを決定し得る。いくつかの実装形態において、エンティティ決定エンジン124は、省かれてよい。
【００４８】
提案エンジン126は、メッセージ交換スレッドの1つまたは複数のメッセージに基づき、1つまたは複数のメッセージに文脈上関連性を有する1つまたは複数の提案を決定する。提案エンジン126は、メッセージ交換スレッドに参加しているユーザの1人または複数に提示(たとえば、グラフィック要素として表示)するために(たとえば、メッセージ交換クライアント1071〜Nの1つまたは複数を介して提示するために)決定された提案のうちの1つまたは複数を提供し得る。たとえば、提案は、スレッドに参加しているユーザのうちの1人または複数が見ることができるグラフィック要素として提供され得る。たとえば、グラフィック要素は、メッセージ交換クライアント1071〜Nのうちの1つまたは複数に関連付けられているグラフィカルユーザインターフェース上に表示されてよく、進行中のメッセージ交換スレッドのトランスクリプトと一緒に表示されるが、任意選択によりこれに含まれ得ない。本明細書において使用されているように、「トランスクリプト」は、メッセージ交換スレッドに参加している1人または複数のユーザによって交換され、および/または見られるテキスト、画像、音声、などのライブ記録を指すものとしてよい。いくつかの実装形態において、メッセージ交換スレッドのトランスクリプトは、ユーザが会話するときにリアルタイムでまたはほぼリアルタイムで更新され得る。
【００４９】
いくつかの実装形態において、提案エンジン126は提案をメッセージ交換エンジン130に提供するものとしてよく、その後これは提案をメッセージ交換クライアント1071〜Nの1つまたは複数に提供し得る。たとえば、メッセージ交換エンジン130は、メッセージ交換クライアント1071〜Nのうちの少なくとも1つがメッセージ交換クライアント1071〜Nの少なくとも1つによってレンダリングされるグラフィカルユーザインターフェースにおいてグラフィック要素を提供することを要求し得る。
【００５０】
いくつかの実装形態において、提案エンジン126は、メッセージ処理エンジン122によって決定された注釈付き出力に基づき、エンティティ決定エンジン124によって決定された1つまたは複数のエンティティに基づき、および/またはクエリデータベース156の1つまたは複数のクエリに基づき提案を決定する。クエリデータベース156は、たとえば、自動化アシスタントおよび/または検索エンジンにすでにサブミットされている1つまたは複数のクエリ、および/または1つまたは複数のクエリ「テンプレート」を含み得る。クエリテンプレートは、1つまたは複数の語と、クエリを生成するために特定のエンティティのエイリアスを「書き込まれる」ものとしてよい1つまたは複数のプレースホルダとを含み得る。たとえば、クエリテンプレートは、「actors in [movie]([映画]の俳優)」の形態をとり、「movie(映画)」はテンプレートに基づきクエリを生成するように特定の映画のエイリアスを書き込まれ得る。
【００５１】
いくつかの実装形態において、提案エンジン126は、メッセージ交換スレッドの1つまたは複数のメッセージに基づき候補検索クエリを決定し、その候補検索クエリに基づき提案を生成する。たとえば、提案は、候補検索クエリの指示を提供する選択可能なグラフィック要素であってよい。グラフィック要素は、検索クエリ全体または検索クエリの語のサブグループまたは検索クエリの書き換え(たとえば、検索クエリが表示を望んでいる以上に長いときに)を含み得る。
【００５２】
提案エンジン126は、候補検索クエリを決定するために様々な技術を利用し得る。いくつかの実装形態において、提案エンジン126は、エンティティ決定エンジン124によって決定された1つまたは複数のエンティティに基づき候補検索クエリを決定し得る。たとえば、提案エンジン126は、1つまたは複数のデータベース(たとえば、クエリデータベース156)におけるエンティティのうちの1つまたは複数に強く関連付けられている1つまたは複数の検索クエリを決定し得る。また、たとえば、提案エンジン126は、エンティティのうちの1つまたは複数のエイリアスに基づき1つまたは複数の検索クエリを決定し得る。たとえば、上で説明されているように、エンティティ決定エンジン124は、「any interest in a trip to Louisville in May for the Derby?」というメッセージに続く「what's the weather like then?」というメッセージに基づきケンタッキー州のルーイビル市に対応するエンティティを決定し得る。提案エンジン126は、エンジン124によって決定されたエンティティのエイリアス(「Louisville, KY(ケンタッキー州ルーイビル)」)に基づき、メッセージの語(「weather(天気)」、「May(5月)」)に基づき、およびメッセージ処理エンジン122によって提供される注釈付き出力に基づき「Louisville, KY weather in May(5月のケンタッキー州ルーイビルの天気)」という候補クエリを決定し得る(たとえば、「then(そのとき)」は「May」への参照であると決定する)。
【００５３】
いくつかの実装形態において、提案エンジン126は、それに加えておよび/または代替的に、クエリデータベース156のクエリなどの、前にサブミットされた検索クエリのコーパスから選択することに基づき候補検索クエリを決定し得る。候補検索クエリは、たとえば、メッセージ交換スレッドのメッセージに含まれる候補検索クエリと語との間の適合性、エンティティ決定エンジン124によって決定されたエンティティの候補クエリとエイリアスとの間の適合性に基づき、および/または検索クエリの人気尺度に基づき(たとえば、候補クエリのサブミットの頻度または候補クエリのサブミットの量を指示する他の尺度に基づき)選択され得る。
【００５４】
いくつかの実装形態において、提案エンジン126は、それに加えておよび/または代替的に、クエリデータベース156において、メッセージの1つまたは複数の語および/またはエンティティ(たとえば、エンティティ決定エンジン124によって決定される)に関連付けられているクエリテンプレートを識別することに基づき候補検索クエリを決定し得る。提案エンジン126は、クエリテンプレートのプレースホルダに1つまたは複数の適切な語を初期値として書き込むことによって候補クエリをさらに生成し得る。たとえば、「nearby [cuisine type] restaurants([料理タイプ]レストランの近く)」というクエリテンプレートは、「restaurants(レストラン)」というエンティティクラス、「cuisine type(料理タイプ)」というエンティティクラスなどの1つまたは複数のエンティティに関連付けられ、および/または「food(食品)」、「dinner(夕食)」、「reservations(予約)」、「restaurant」、「seafood(シーフード)」、「barbecue(バーベキュー)」などの1つまたは複数の語に関連付けられていると仮定する。提案エンジン126は、「Anybody want to grab lunch? - I'm in the mood for barbecue(どなたか昼食をとりたいですか? - 私はバーベキューの気分です)」というメッセージを含むメッセージ交換に基づきそのクエリテンプレートを識別するものとしてよい。提案エンジン126は、バーベキューが料理の一種であること、メッセージ含まれる語であることに基づき「[cuisine type]」プレースホルダに「barbecue」を初期値としてさらに書き込むものとしてよい。
【００５５】
いくつかの実装形態において、提案エンジン126が提案を提供するかどうかは、提案によって指示されるクエリに対するスコアに基づき得る。たとえば、いくつかの実装形態において、提案エンジン126は、本明細書で説明されているような1つまたは複数の技術を利用して1つまたは複数の候補クエリのグループを決定するものとしてよい。それらの実装形態のうちのいくつかにおいて、提案エンジン126は、グループの候補クエリの各々についてスコアを決定し、閾値を満たすスコアを有する候補クエリ(もしあれば)に基づく提案のみを提供し得る。
【００５６】
いくつかの実装形態において、提案エンジン126は、それに加えておよび/または代替的に、その候補クエリを指示する提案がどのように提供されるかを決定するために候補クエリに対してスコアを利用し得る。たとえば、いくつかの実装形態において、提案エンジン126は、候補クエリのスコアを使用して、候補クエリを指示するグラフィック要素として提供される提案の表示順序、サイズ、および/または他の視覚的に目立つものを決定し得る。また、たとえば、いくつかの実装形態において、提案エンジン126は、候補クエリに対するスコアが閾値を満たしている場合に提示する提案を自動的に提供し得るが、スコアが閾値を満たさない場合に提案を提供する前にユーザインターフェース入力を必要とし得る。また、たとえば、提案エンジン126は、スコアが第1の閾値を満たしている場合に提示する提案を自動的に提供し、スコアが第1の閾値を満たさないが、第2の閾値を満たす場合に提示する提案を提供する前に特定のユーザインターフェース入力を必要とし、スコアが第1の閾値または第2の閾値を満たさない場合にいくつかの状況の下で提案を提供し得ない。
【００５７】
いくつかの実装形態において、提案エンジン126は、候補クエリに対するスコアを、(1)候補クエリそれ自体の1つまたは複数の特性、(2)候補クエリに応答する検索結果の1つまたは複数の特性、および/または(3)進行中のメッセージ交換スレッドのメッセージのうちの1つまたは複数の1つまたは複数の特性に基づき決定する。候補クエリの1つまたは複数の特性は、たとえば、候補クエリの人気尺度を含み得る。候補クエリに応答する1つまたは複数の検索結果の1つまたは複数の特性は、たとえば、検索結果に対する品質尺度、および/または検索結果がナビゲーション検索結果、「とりまとめられた」検索結果、「ナレッジカード」検索結果などのいくつかの種類のものであるかどうかを含み得る。
【００５８】
進行中のメッセージ交換スレッドのメッセージのうちの1つまたは複数の1つまたは複数の特性は、たとえば、一番最近のメッセージまたは一番最近のN個のメッセージなどの、メッセージのうちの1つまたは複数の「饒舌さ(chattiness)」の尺度および/または「検索にかかりやすさ(searchiness)」の尺度を含み得る。いくつかの実装形態において、メッセージの「検索にかかりやすさ」の尺度は、メッセージの語および/または構文構造を前にサブミットされた検索クエリの語および/または構文パターンと比較することに基づき決定され得る。たとえば、メッセージの構文構造は、検索エンジンにサブミットされた検索に共通の構文構造と比較されてよく、適合度が高い場合に、これはメッセージが「検索しやすい」ことを指示し得る。また、たとえば、「what(何)」、「when(いつ)」、「?」などの存在などの、メッセージ内のいくつかの語の存在および/または非存在は、メッセージが「検索にかかりやすい」ことを指示し得る。また、たとえば、メッセージ内の名前付きエンティティの存在、名前付きエンティティの特定の量の存在、および/または名前付きエンティティの特定のクラスの存在は、メッセージが「検索にかかりやすい」ことを指示し得る。
【００５９】
いくつかの実装形態において、メッセージの「饒舌さ」の尺度は、メッセージの語および/または構文構造を2人またはそれ以上のユーザの間の前のメッセージ交換の語および/または構文パターンと比較することに基づき決定され得る。たとえば、メッセージの構文構造は、ユーザ同士の間の前のメッセージ交換に共通の構文構造と比較されてよく、適合度が高い場合に、これはメッセージが「饒舌である」ことを指示し得る。また、たとえば、メッセージ内のいくつかの語の存在および/または非存在は、メッセージが「饒舌である」ことを指示し得る。また、たとえば、メッセージ内の名前付きエンティティおよび/または名前付きエンティティの特定のクラスの非存在は、メッセージが「饒舌である」ことを指示し得る。
【００６０】
いくつかの実装形態において、提案エンジン126は、訓練された分類器および/または他の機械学習システムを利用して、「饒舌さ」および/または「検索にかかりやすさ」の尺度を決定し得る。たとえば、分類器は、入力として、メッセージの語、メッセージの注釈(たとえば、エンジン122によって提供される注釈)などの1つまたは複数のメッセージの1つまたは複数の特徴を受け取り、出力として、メッセージが「検索にかかりやすい」(すなわち、検索結果を望んでいることを示す)および/または「饒舌である」(すなわち、1人または複数のユーザとのさらなる通信を望んでいることを示す)かどうか、および/またはそれがどの程度のことであるかの指示を提供するように訓練され得る。
【００６１】
コンテンツエンジン128は、ユーザがそのクエリに基づく提案を選択するか、または他の何らかの形でインタラクティブに操作したことに応答して自動化アシスタント120に向けられたクエリなどの自動化アシスタント120に向けられたクエリに応答するコンテンツを決定する。コンテンツは、たとえば文書、画像、テキストコンテンツ、および/またはクエリに応答する他の情報を含むものとしてよく、たとえば、公開データベース154および/または個人用データベース152から識別され得る。様々な実装形態において、検索クエリに応答するコンテンツは、他の決定されたコンテンツに関係するさらなる提案をさらに含み得る。
【００６２】
いくつかの実装形態において、コンテンツエンジン128は、クエリを別個の検索エンジン(図示せず)にサブミットし、サブミットに応答して1つまたは複数の検索結果を取得し得る。いくつかの実装形態において、検索エンジンは、公開データベース154などの、1つまたは複数の公開コンテンツリソースを検索し得る。いくつかの実装形態において、検索エンジンは、それに加えておよび/または代替的に、個人用データベース152などの、クエリをサブミットしたユーザ(および/またはメッセージ交換スレッドの他のユーザ)の個人用の1つまたは複数の個人用コンテンツリソースを検索し得る。たとえば、個人用データベース152は、ユーザの予定表エントリ、ユーザの連絡先エントリ、ユーザの電子メール、ユーザの電子メールから導出されるコンテンツなどのユーザ個人のエントリを含み得る。検索エンジンは、たとえば、クエリサブミットとともにコンテンツエンジン128によって提供されるユーザ許可情報に基づき個人用データベース152(またはユーザ個人のデータベース152のエントリの部分集合)にアクセスし得る。いくつかの他の実装形態において、コンテンツエンジン128それ自体は、公開データベース154、個人用データベース152、および/またはクエリに基づく他のリソースの検索を実行し得る。
【００６３】
多くの場合において、クエリに応答するコンテンツは、会話の流れを中断することなくメッセージ交換スレッドに実現可能に組み込もうとしても扱いにくすぎる(たとえば、長すぎる、細部が細かすぎるなど)ことがある。そのような状況において、コンテンツエンジン128は、スレッドに組み込む全応答コンテンツの部分集合を選択し得る(すなわち、全応答コンテンツは間引きされ得る)。いくつかの実装形態において、コンテンツエンジン128は、メッセージ交換スレッドに組み込む部分集合を選択し(または応答コンテンツを間引き)得る。他の実装形態では、コンテンツエンジン128は、包括的応答情報をメッセージ交換クライアント1071〜Nのうちの1つまたは複数に提供し、それらは間引きを実行するものとしてよい。たとえば、いくつかの実装形態において、メッセージ交換クライアント1071は、クライアントコンピューティングデバイス1061の画面サイズに基づき情報を間引きし得る。さらに他の実装形態では、コンテンツエンジン128およびメッセージ交換クライアントは両方とも間引きを実行してよい。いくつかの実装形態において、上位N個の検索結果(または他のコンテンツ)は、メッセージ交換スレッドに組み込むために選択され、および/またはいくつかの種類の検索結果(または他のコンテンツ)は、メッセージ交換スレッドに組み込むために選択され得る。Nは、たとえば、画面サイズ、ユーザプリファレンスなどに基づき選択され得るか、または手動で選択されてよい(たとえば、Nは5、10、2、1などに設定されることもあり得る)。
【００６４】
様々な実装形態において、クエリに応答してメッセージ交換スレッドに組み込まれたコンテンツの少なくとも一部は、クエリに応答する1つまたは複数の電子文書にリンクするものとしてよく、したがって、ユーザは新しいリソース(たとえば、情報を表示するウェブブラウザ)に向けられるそのコンテンツのみを選択するだけでよい。いくつかの実装形態において、メッセージ交換スレッドに組み込まれているコンテンツの少なくとも一部は、クエリに応答する、メッセージ交換クライアント107のうちの少なくとも1つを操作するクライアントコンピューティングデバイス106上にインストールされているアプリケーションにリンクし得る。たとえば、ユーザが「dinner reservations at Franks(フランクスでの夕食の予約)」というクエリを指示する提案を選択した場合、「Franks(フランクス)」という場所に関係する1つまたは複数のグラフィック要素がメッセージ交換スレッドに組み込まれ、それらのグラフィック要素はFranksという場所の予約を作成するように特に動作可能である別のアプリケーションを開くように選択可能であり得る(たとえば、ディープリンク)。
【００６５】
メッセージ交換エンジン130は、(コンテンツエンジン128によって決定された)コンテンツをメッセージ交換スレッドに組み込むことを円滑にし、および/または(提案エンジン126によって決定された)提案を1つまたは複数のメッセージ交換クライアントを介して表示するように提供することを円滑にし得る。
【００６６】
メッセージ交換スレッドに組み込まれたコンテンツは、スレッドに参加しているユーザのうちの1人または複数が見ることができるものとしてよい。たとえば、コンテンツは、進行中のメッセージ交換スレッドのトランスクリプトを示すメッセージ交換クライアントに関連付けられているグラフィカルユーザインターフェース上で見ることができるものとしてよい。メッセージ交換エンジン130は、コンテンツを様々な仕方で複数のメッセージ交換クライアント1071〜Nの間でメッセージ交換スレッドに組み込み得る。いくつかの実装形態において、メッセージ交換エンジン130は、メッセージ交換スレッドに参加しているメッセージ交換クライアント1071〜Nのうちの少なくとも1つがコンテンツをグラフィカルユーザインターフェースに表示される進行中のメッセージ交換スレッドのトランスクリプトに挿入することを要求し得る。いくつかのシナリオにおいて、コンテンツは、メッセージ交換スレッドに参加しているすべてのメッセージ交換クライアントによってレンダリングされるトランスクリプトなどの、複数のメッセージ交換クライアントによってレンダリングされたトランスクリプトに組み込まれ得る。いくつかの実装形態において、メッセージ交換エンジン130は、単純に応答コンテンツをメッセージ交換クライアントに提供するものとしてよく、これは次いでメッセージ交換スレッドにどのようなコンテンツを組み込むかを選択し得る。
【００６７】
次に図2Aおよび図2Bを参照すると、自動化アシスタント120の様々なコンポーネントの追加の説明がなされている。
【００６８】
図2Aおよび図2Bにおいて、メッセージ交換クライアント1071とメッセージ交換クライアント107Nとの間でメッセージ交換スレッドが進行中である。図2Aでは、メッセージ交換エンジン130がスレッド201の1つまたは複数のメッセージを取得し、それらをメッセージ処理エンジン122に提供する。いくつかの実装形態において、メッセージ交換エンジン130は、メッセージ交換クライアント1071と107Nとの間のメッセージ交換スレッドを円滑にする中央電話局の機能を果たし得る。他の実装形態において、メッセージ交換エンジン130は、中央電話局の機能を果たし得ないが、それでもスレッド201のメッセージを取得し得る。
【００６９】
メッセージ処理エンジン122は、スレッド201のメッセージを処理し、スレッド201のメッセージの様々な注釈を生成する。メッセージ処理エンジン122は、注釈付き入力(たとえば、スレッド201のメッセージの語および/または他のコンテンツならびに生成された注釈)202をエンティティ決定エンジン124および提案エンジン126に提供する。
【００７０】
エンティティ決定エンジン124は、注釈付き入力202、エンティティデータベース、および/または他のリソースに基づきスレッド201のメッセージにおいて参照されている1つまたは複数のエンティティ203を決定する。エンティティ決定エンジン124は、1つまたは複数のエンティティ203を提案エンジン126に提供する。
【００７１】
提案エンジン126は、1つまたは複数の提案204を決定し、提案204をメッセージ交換エンジン130に提供する。メッセージ交換エンジン130は、メッセージ交換クライアント1071および107Nの一方または両方を介して表示する提案204を提供する。いくつかの実装形態において、提案204のうちの1つまたは複数は、候補検索クエリの語を含み、および/または他の何らかの形で候補検索クエリを指示する選択可能なグラフィック要素であってよい。いくつかの実装形態において、提案204のうちの1つまたは複数は、可聴提案として提供されてよい。
【００７２】
本明細書において説明されているように、提案エンジン126は、様々な技術のうちの1つまたは複数を利用して提案を決定し得る。たとえば、提案エンジン126は、注釈付き入力202、エンティティ203、および/またはクエリデータベース156に基づき候補検索クエリを決定し、候補検索クエリに基づき提案を生成し得る。いくつかの実装形態において、提案エンジン126は、提案204に関連付けられている候補クエリに対するスコアを決定し、それらのスコアに基づき提案204を提供するかどうかを決定する。いくつかの実装形態において、提案エンジン126は、それらのスコアを利用して提案204がどのように提供されるべきかを決定する。たとえば、提案エンジンは、これらのスコアを利用して、提案204を提供するために、提案204の特定の表示位置、提案204の特定の表示サイズ、および/または提案204の他の特定の表示特性を示す、コンピュータ可読命令を生成し得る。
【００７３】
図2Bは、ユーザに提供され、クエリを指示する提案に向けられているユーザインターフェース入力などの、メッセージ交換スレッドのユーザのうちの1人のユーザインターフェース入力に応答してクエリに応答するコンテンツをメッセージ交換スレッドに組み込むステップの一例を示す。
【００７４】
たとえば、図2Bにおいて、メッセージ交換エンジン130は、図2Aで提供される提供済み提案204のうちの1つに向けられたユーザインターフェース入力に応答してクエリ205を受け取るものとしてよい(すなわち、その提案はクエリ205を指示し得る)。図2Aに関して説明されているように、メッセージ交換クライアント1071および107Nの一方または両方を介して表示する提案が提供され得る。クエリ205は、提案の提供先であったメッセージ交換クライアント1071および107Nのいずれかを介して提案に向けられたユーザインターフェース入力に応答してメッセージ交換エンジン130に提供され得る。
【００７５】
メッセージ交換エンジン130は、クエリ205をコンテンツエンジン128に提供し、これはクエリ205に応答するコンテンツ206を取得する。コンテンツ206は、個人用データベース152および/または公開データベース154から、コンテンツエンジン128によって直接的にまたは間接的に取得され得る。いくつかの実装形態において、コンテンツエンジン128は、クエリ205をサブミットしたことに応答して検索結果または他のコンテンツの集合を決定し、そのコンテンツを間引いてコンテンツ206を生成する。コンテンツエンジン128は、コンテンツをメッセージ交換エンジン130に提供する。メッセージ交換エンジン130は、コンテンツ206をメッセージ交換クライアント1071と107Nとの間で進行中のメッセージ交換スレッドに組み込む。たとえば、コンテンツ206は、メッセージ交換クライアント1071および107Nの両方においてメッセージ交換スレッドの一部として表示するためにメッセージ交換スレッドに組み込まれ得る。
【００７６】
次に図3A〜図3Dを参照すると、本明細書で説明されている様々なコンポーネントおよび技術の追加の説明がなされている。図3A〜図3Dは各々、図1のクライアントコンピューティングデバイス1061を例示しており、表示画面140はクライアントコンピューティングデバイス1061がメッセージ交換スレッドにおいてメッセージ交換クライアント1061のグラフィカルユーザインターフェースをレンダリングする仕方の一例を示している。図3A〜図3Dにおいて、クライアントコンピューティングデバイス1061のユーザは、他の2人のユーザ「Tom」および「Alex(アレックス)」と進行中のメッセージ交換スレッドに参加している。
【００７７】
図3A〜図3Dの表示画面140は、ユーザが仮想キーボードを介してユーザ入力を生成するために選択し得るテキスト応答インターフェース要素388と、ユーザがマイクロフォンを介してユーザ入力を生成するためにユーザが選択し得る音声応答インターフェース要素389とをさらに備える。表示画面140は、コンピューティングデバイス1061に1つまたは複数のアクションを実行させるためにユーザがインタラクティブに操作し得るシステムインターフェース要素381、382、383も備える。
【００７８】
図3Aにおいて、ユーザは、自然言語メッセージ380Aをすでに作成しており、メッセージ交換スレッドに組み込むためにメッセージ380Aをサブミットしている。さらに、Tomは、自然言語メッセージ382Aをすでに作成しており、メッセージ380Aを組み込んだ後にメッセージ交換スレッドに組み込むためにメッセージ382Aをサブミットしている。Alexも、自然言語メッセージ384Aをすでに作成しており、メッセージ382Aを組み込んだ後にメッセージ交換スレッドに組み込むためにメッセージ384Aをサブミットしている。
【００７９】
自動化アシスタント120にサブミットされ得る「Acme Cast(Acmeのキャスト)」という候補クエリを指示する選択可能なグラフィック要素361も、図3Aに例示されている。グラフィック要素361は、候補クエリのテキストを含み、グラフィック要素361を選択した結果メッセージ交換スレッドに「Acme Cast」という候補クエリに応答するコンテンツを組み込むことをユーザに指示する「星印」も含む。「No(いいえ)」というテキストを含む選択可能なグラフィック要素371も図示されている。グラフィック要素371の選択は、「No」がテキスト応答インターフェース要素388(次いでユーザが1つまたは複数のユーザインターフェース入力を介してスレッドに組み込むためにサブミットすることができる)に初期値として自動的に書き込まれることを引き起こすか、または「No」がメッセージ交換スレッドに組み込むために自動的にサブミットされることを引き起こす。いずれかのシナリオにおいて、「No」は、ユーザからの返信として、「No」に応答するコンテンツも組み込まされることなくメッセージ交換スレッドに組み込まれる。言い換えると、グラフィック要素371の選択は、ユーザが「No」の返信を、ちょうどユーザがテキスト応答インターフェース要素388に「No」と打ち込み、および/または音声応答インターフェース要素385の選択の後に「No」と発話したかのように生成することを可能にし得る。
【００８０】
いくつかの実装形態において、自動化アシスタント120は、メッセージ交換スレッドのすでに通信がなされているメッセージ380A、382A、および384Aのうちの1つまたは複数に基づきグラフィック要素361によって指示される「Acme Cast」という候補検索クエリを決定し得る。たとえば、候補検索クエリは、Tomからのメッセージ382A内の「Acme」という語(映画の架空の名前)の存在に基づき、およびAlexからのメッセージ384A内の「cast」という語の存在に基づき決定され得る。
【００８１】
いくつかの実装形態において、Tomのメッセージ交換クライアントもグラフィック要素371および/またはグラフィック要素361をTomによる選択のために表示し得ることに留意されたい。また、Alexのメッセージ交換クライアントも、Alexによる選択のためにグラフィック要素371を表示し得る(グラフィック要素371は、「no」が自メッセージ384AへのAlexに対する文脈上適切な応答とならないのでAlexには表示され得ない)。
【００８２】
図3Bは、ユーザが図3Aのグラフィック要素361の方へ向けられたユーザインターフェース入力を提供した後のグラフィカルユーザインターフェースを示している。たとえば、ユーザは、グラフィック要素361を「タップ」している場合もあり得る。図3Bにおいて、グラフィック要素361のユーザ選択は、「Acme Cast」に応答するコンテンツを取得しメッセージ交換スレッドに組み込むためのメッセージ380Bが提供されたことを指示する星印とともに「Acme Cast」という候補クエリのテキストを含むユーザからのメッセージ380Bとしてメッセージ交換スレッドに組み込まれる。たとえば、コンピューティングデバイス1061のメッセージ交換クライアントは、自動化アシスタント120に「Acme Cast」を自動化アシスタント120に向けられたクエリとして処理させる指示とともに「Acme Cast」をサブミットすることによってメッセージ380Bを組み込み得る。指示は、人間が認識可能な指示および/または人間以外が認識可能な指示であってよい。いくつかの実装形態において、Tomおよび/またはAlexのメッセージ交換クライアントがメッセージ380Bも(「you(あなた)」の代わりにユーザの名前の指示とともに)表示し得ることに留意されたい。
【００８３】
コンテンツ390Aも、「Automated Assistant(自動化アシスタント)」からのメッセージとして図3Bにおけるメッセージ交換スレッドに組み込まれる。コンテンツ390Aは、コンテンツがメッセージ380Bに応答することを指示するために「Here's what I found: (私が見つけたものはここです)」というテキストを含み、三枚の「カード」と「Acme Cast」というクエリに応答する選択可能なオプション(「...」)とを含む。カードは、「Acme Movie(Acmeの映画)」のキャストの3人に対するものであり、選択可能なオプション(「...」)は、ユーザが追加のキャストに対する追加カードを見ることを可能にする。カードの各々は、キャストの画像、キャストの「知られている」名前、および「Acme Movie」内のキャストの名前(イタリック体で示されている)を含む。いくつかの実装形態において、Tomおよび/またはAlexのメッセージ交換クライアントがコンテンツ390Aも表示し得ることに留意されたい。それらの実装形態のうちのいくつかにおいて、追加のキャストに対する追加のカードを見るために選択可能なオプション(「...」)に向けられたユーザのいずれか1人のユーザインターフェース入力は、追加のカードをメッセージ交換クライアントのすべてのグラフィカルユーザインターフェース内に、またはユーザインターフェース入力を提供したユーザのクライアントのみに表示させ得る。いくつかの実装形態において、カードのうちの1つまたは複数は、そのカードのキャストに関する追加のコンテンツを提供させるようにユーザによって選択され得る。たとえば、カードの1つの選択は、追加のコンテンツがユーザに対する、および任意選択により追加のユーザに対してメッセージ交換スレッドに組み込まれることを行わせ得る。また、たとえば、カードのうちの1つの選択は、追加のコンテンツが別個のウェブブラウザアプリケーションなどのメッセージ交換クライアントから分離している別のアプリケーションにおいてユーザに提供されることを行わせ得る。
【００８４】
選択可能なグラフィック要素362および363も図3Bに示されており、自動化アシスタント120にサブミットされ得る「Acme Trailer(Acmeのトレーラー)」および「Acme Showtimes(Acmeの開始時間)」という候補クエリを指示する。グラフィック要素362および363は各々、候補クエリを指示するテキストを含み(ただし、候補クエリのテキスト全体を含まず)、各々選択した結果メッセージ交換スレッドに候補クエリに応答するコンテンツを組み込むことをユーザに指示する「星印」も含む。グラフィック要素361(図3A)と同様に、Tomおよび/またはAlexのメッセージ交換クライアントはグラフィック要素362および363も表示し得る。いくつかの実装形態において、自動化アシスタント120は、それらの候補クエリが「Acme Movie」という候補クエリに関係し、および/またはコンテンツ390Aに関係することに基づきグラフィック要素362および363の候補クエリを決定し得る。たとえば、自動化アシスタント120は、それらの候補クエリが「Acme Showtimes」をサブミットした後および/またはサブミットする前に最も頻繁に他のユーザによってサブミットされた2つのクエリであることを指示するデータベースエントリに基づきそれらの候補クエリを決定し得る。
【００８５】
図3Cは、Alexがグラフィカルユーザインターフェースに表示されるグラフィック要素363のインスタンスの方へ向けられたユーザインターフェース入力(たとえば、「タップ」)を提供した後のグラフィカルユーザインターフェースを示している。図3Cにおいて、グラフィック要素363のAlexによる選択は、「Acme Cast」に応答するコンテンツを取得しメッセージ交換スレッドに組み込むためのメッセージ384Bが提供されたことを指示する星印とともに「Acme Showtimes」という候補クエリのテキストを含むAlexからのメッセージ384Bとしてメッセージ交換スレッドに組み込まれる。
【００８６】
コンテンツ390Bも、「Automated Assistant」からのメッセージとして図3Cにおけるメッセージ交換スレッドに組み込まれる。コンテンツ390Bは、コンテンツがメッセージ384Bに応答することを指示するために「Here's what I found:」というテキストを含み、2つの映画館における「Acme Movie」に対する開始時間を指示する自然言語出力を含む。図3Cにおいて、2つ映画館は、Tom、Alex、およびユーザにとって近い位置にあり、コンテンツ390Bの自然言語出力は、Tom、Alex、およびユーザから映画館の各々までの距離の指示を含むことに留意されたい。たとえば、自動化アシスタント120は、メッセージ交換スレッドのユーザの各々に対する位置情報および/または他のユーザ属性とともに検索を発行することに基づきコンテンツを決定し、ユーザの位置および/またはメッセージ交換スレッドのメッセージから識別できない可能性のあるユーザの他の属性にも文脈上関連するコンテンツ390Bを決定し得る。
【００８７】
選択可能なグラフィック要素362および365も図3Cに示されており、自動化アシスタント120にサブミットされ得る「Acme Trailer」および「Acme Pictures(Acmeの写真)」という候補クエリを指示する。グラフィック要素362および365は各々、候補クエリを指示するテキストを含み、各々選択した結果メッセージ交換スレッドに候補クエリに応答するコンテンツを組み込むことをユーザに指示する「星印」も含む。いくつかの実装形態において、自動化アシスタント120は、それらの候補クエリが「Acme Showtimes」という候補クエリに関係し、および/またはコンテンツ390Bに関係することに基づきグラフィック要素362および365の候補クエリを決定し得る。
【００８８】
図3Cにおいて、「Let's do Cinema 1 @ 7(7時のシネマ1に行きましょう)」という自然言語入力は、テキスト応答インターフェース要素388に示され、ユーザによって作成され得る。たとえば、ユーザは、コンテンツ390Bがメッセージ交換スレッドに組み込まれた後に仮想キーボードを利用して自然言語入力を提供していてもよい。
【００８９】
図3Dは、ユーザが「Let's do Cinema 1 @ 7」という自然言語入力をメッセージ交換スレッドにサブミットした後のグラフィカルユーザインターフェースを示している。図3Dにおいて、自然言語入力のユーザによるサブミットは、そのメッセージがユーザからのものであり自動化アシスタントから応答コンテンツを取得することを意図されていないことを指示する星印を含まないユーザからのメッセージ380Cとしてメッセージ交換スレッドに組み込まれる。多くの実装形態において、Tomおよび/またはAlexのメッセージ交換クライアントがメッセージ380Cも(「you」の代わりにユーザの名前の指示とともに)表示することに留意されたい。
【００９０】
自動化アシスタント120にサブミットされ得る「Directions to Cinema 1(シネマ1への道順)」という候補クエリを指示する選択可能なグラフィック要素366も、図3Dに例示されている。グラフィック要素366は、候補クエリのテキストを含み、グラフィック要素366を選択した結果メッセージ交換スレッドに「Directions to Cinema 1」という候補クエリに応答するコンテンツを組み込むことをユーザに指示する「星印」も含む。
【００９１】
いくつかの実装形態において、自動化アシスタント120は、メッセージ380Cなどのすでに通信がなされているメッセージのうちの1つまたは複数に基づき、および/またはコンテンツ390Bに基づき、グラフィック要素366によって指示される「Directions to Cinema 1」という候補検索クエリを決定し得る。
【００９２】
図3A〜図3Dに例示されていないけれども、いくつかの実装形態において、メッセージ交換スレッドのユーザおよび/または他のユーザは、提供される提案を選択することなくクエリを自動化アシスタント120に明示的にサブミットしてよい。たとえば、ユーザは、テキスト応答インターフェース要素388に自然言語入力を作成し、その入力を自動化アシスタント120へサブミットさせる(たとえば、入力に応答するコンテンツで返信される「星印」を伴うメッセージとして現れる)入力と組み合わせたいくつかの語および/または記号(たとえば、プレフィックスとしての@automatedassistant)を含む。また、たとえば、ユーザは、音声応答インターフェース要素389を選択した後に音声で自然言語入力を作成するものとしてよく、その入力と組み合わせて特定の語を発話してその入力を自動化アシスタント120へサブミットさせるものとしてよい。さらに別の例として、別個のグラフィカルインターフェース要素が、選択されるとユーザ作成自然言語入力を自動化アシスタント120へサブミットさせるグラフィカルユーザインターフェース内に提供されてよい。
【００９３】
図4は、ユーザ間の進行中のメッセージ交換スレッドの1人または複数のユーザに少なくとも1つの文脈上関連性のある提案を提供し、メッセージ交換スレッドに、提案によって指示されるクエリに応答するコンテンツを組み込む例示的な方法400を示すフローチャートである。便宜上、フローチャートの動作は、動作を実行するシステムを参照しつつ説明されている。このシステムは、自動化アシスタント120などの、様々なコンピュータシステムの様々なコンポーネントを備え得る。さらに、方法400の動作が特定の順序で示されているが、これは制限することを意味しない。1つまたは複数の動作が、順序変更、省略、または追加されてもよい。
【００９４】
ブロック450において、システムは、複数のメッセージ交換クライアントを操作する複数のユーザの間の進行中のメッセージ交換スレッドを調べる。
【００９５】
ブロック452において、システムは、メッセージ交換スレッドの1つまたは複数のメッセージに基づき1つまたは複数の候補クエリを決定する。
【００９６】
ブロック454において、システムは、候補クエリの各々についてスコアを決定する。
【００９７】
ブロック456において、システムは、候補クエリの各々について、候補スコアのクエリが閾値を満たしているかどうかを決定する。システムが、ブロック456において、候補クエリのどれもが閾値を満たすスコアを有していないと決定した場合、システムはブロック458に進み、メッセージ交換スレッドでさらなるメッセージが届くのを待つ。メッセージ交換スレッドにおける別のメッセージに応答して、システムは再びブロック450に進み得る。
【００９８】
システムが、ブロック456において、候補クエリの少なくとも1つが閾値を満たすスコアを有していると決定した場合、システムはブロック460に進む。
【００９９】
ブロック460において、システムは、メッセージ交換スレッドのユーザの少なくとも1人に提示するために、スコアが閾値を満たしている1つまたは複数の候補クエリに対する1つまたは複数の提案を提供する。
【０１００】
ブロック462において、システムは、提供された提案のうちの1つに向けられたユーザインターフェース入力が生じたことを識別する。
【０１０１】
ブロック464において、システムは、ユーザインターフェース入力が向けられた先である提案の候補クエリに応答するコンテンツを決定する。
【０１０２】
ブロック466において、システムは、コンテンツをメッセージ交換スレッドに組み込み、ブロック458に進む。ブロック458において、システムは、メッセージ交換スレッドにさらなるメッセージが届くのを待ち、メッセージ交換スレッド内の別のメッセージに応答して、システムは再びブロック450に進み得る。
【０１０３】
図5は、本明細書で説明されている技術のうちの1つまたは複数の態様を実行するために任意選択で利用され得る例示的なコンピューティングデバイス510のブロック図である。いくつかの実装形態において、クライアントコンピューティングデバイス1601〜N、自動化アシスタント120、および/または他のコンポーネントのうちの1つまたは複数は、例示的なコンピューティングデバイス510の1つまたは複数のコンポーネントを含み得る。
【０１０４】
コンピューティングシステム510は、典型的には、バスサブシステム512を介して多数の周辺デバイスと通信する少なくとも1つのプロセッサ514を備える。これらの周辺デバイスは、たとえば、メモリサブシステム525およびファイル記憶装置サブシステム526を含む、記憶装置サブシステム524、ユーザインターフェース出力デバイス520、ユーザインターフェース入力デバイス522、およびネットワークインターフェースサブシステム516を含み得る。入力および出力デバイスは、ユーザとコンピューティングデバイス510とのインタラクションを可能にする。ネットワークインターフェースサブシステム516は、外部ネットワークへのインターフェースを備え、他のコンピューティングデバイス内の対応するインターフェースデバイスに結合される。
【０１０５】
ユーザインターフェース入力デバイス522は、キーボード、マウス、トラックボール、タッチパッド、もしくはグラフィックスタブレットなどのポインティングデバイス、スキャナ、ディスプレイに組み込まれたタッチスクリーン、音声認識システムなどの音声入力デバイス、マイクロフォン、および/または他の種類の入力デバイスを含み得る。一般に、「入力デバイス」という用語の使用は、情報をコンピューティングデバイス510内に、または通信ネットワーク上に入力するためのすべての可能な種類のデバイスおよび方法を含むことが意図されている。
【０１０６】
ユーザインターフェース出力デバイス520は、表示サブシステム、プリンタ、ファックス機、または音声出力デバイスなどの非視覚的ディスプレイを含み得る。表示サブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)などのフラットパネルデバイス、プロジェクションデバイス、または可視画像を生成するための他の何らかのメカニズムを含み得る。表示サブシステムは、音声出力デバイスなどを介して非視覚的ディスプレイも備え得る。一般に、「出力デバイス」という用語の使用は、情報をコンピューティングデバイス510からユーザまたは別のマシンもしくはコンピューティングデバイスに出力するためのすべての可能な種類のデバイスおよび方法を含むことが意図されている。
【０１０７】
記憶装置サブシステム524は、本明細書で説明されているモジュールのうちのいくつかまたはすべての機能を実現するプログラミングおよびデータ構造を記憶する。たとえば、記憶装置サブシステム524は、図4の方法の選択された態様を実行するための論理回路を備え得る。
【０１０８】
これらのソフトウェアモジュールは、一般的に、プロセッサ514によって、単独で、または他のプロセッサと組み合わせて、実行される。記憶装置サブシステム524において使用されるメモリ525は、プログラム実行時に命令およびデータを記憶するための主ランダムアクセスメモリ(RAM)530、ならびに固定された命令が記憶されるリードオンリーメモリ(ROM)532を含む多数のメモリを備えることができる。ファイル記憶装置サブシステム526は、プログラムおよびデータファイル用の永続的記憶域を備えることができ、ハードディスクドライブ、関連する取り外し可能媒体を伴ったフロッピー(登録商標)ディスクドライブ、CD-ROMドライブ、光ドライブ、または取り外し可能メディアカートリッジを含み得る。いくつかの実装形態の機能を実装するモジュールは、ファイル記憶装置サブシステム526によって、記憶装置サブシステム524、またはプロセッサ514によってアクセス可能な他のマシン内に記憶され得る。
【０１０９】
バスシステム512は、コンピューティングデバイス510の様々なコンポーネントおよびサブシステムに意図したとおりに互いに通信させるメカニズムを備える。バスシステム512は、単一のバスとして概略が図示されているけれども、バスシステムの代替的実装形態では、複数のバスを使用し得る。
【０１１０】
コンピューティングデバイス510は、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファーム、または他のデータ処理システムもしくはコンピューティングデバイスを含む様々な種類のデバイスであってよい。コンピュータおよびネットワークはその性質上絶えず変化し続けるので、図5に示されているコンピューティングデバイス510の説明は、いくつかの実装を例示することを目的とする特定の例としてのみ意図されている。コンピューティングデバイス510の他の多くの構成は、図5に示されているコンピューティングデバイスよりも多い、または少ないコンポーネントを有するものが可能である。
【０１１１】
本明細書で説明されているシステムがユーザに関する個人情報を収集するか、または個人情報を利用し得る状況において、ユーザは、プログラムまたは機能によりユーザ情報(たとえば、ユーザのソーシャルネットワークに関する情報、社会的行為もしくは活動、専門的職業、ユーザの選好、またはユーザの現在の地理的位置)を収集するかどうかを制御する、またはユーザに対してより高い関連性を有する思われるコンテンツをコンテンツサーバから受信するかどうか、および/またはどのように受信するかを制御する機会を与えられ得る。また、特定データが、それが記憶されるか、または使用される前に1つまたは複数の方法で処理されるものとしてよく、したがって個人識別可能情報は取り除かれる。たとえば、ユーザの身元は、ユーザに対して個人識別可能情報が決定され得ないように処理され得るか、または地理的位置情報(市名、郵便番号、国家レベルなど)が得られる場合にユーザの地理的位置が一般化されるものとしてよく、したがって、ユーザの特定の地理的位置が決定され得ない。したがって、ユーザは、ユーザに関して情報がどのように収集され、どのように使用されるかを制御し得る。
【０１１２】
いくつかの実装形態が本明細書において説明され例示されたが、機能を実行しおよび/または結果を取得するための様々な他の手段および/または構造体および/または本明細書において説明されている利点のうちの1つまたは複数が利用され、そのような変更形態および/または修正形態の各々は本明細書で説明されている実装形態の範囲内にあるとみなされる。より一般的には、本明細書で説明されているすべてのパラメータ、寸法、材料、および構成形状は例示的であり、実際のパラメータ、寸法、材料、および/または構成形状は教示が使用される特定の1つまたは複数のアプリケーションに依存することを意図されている。当業者であれば、単なる決まり切った実験を用いて、本明細書で説明されている特定の実装形態と同等の多数の実装形態を認識するか、または確認することができるであろう。したがって、前述の実装形態は、例としてのみ提示されていること、ならびに付属の請求項およびその等価物の範囲内で、具体的に説明され請求されている以外の方法でも実施され得ることは理解されるであろう。本開示の実装形態は、本明細書において説明されている各個別の特徴、システム、物品、材料、キット、および/または方法に向けられる。それに加えて、2つまたはそれ以上のそのような特徴、システム、物品、材料、キット、および/または方法の任意の組合せは、そのような特徴、システム、物品、材料、キット、および/または方法が相互に矛盾することがなければ、本開示の範囲内に含まれる。
【符号の説明】
【０１１３】
106  クライアントコンピューティングデバイス
1061〜N  クライアントコンピューティングデバイス
107  メッセージ交換クライアント
1071〜N  メッセージ交換クライアント
120  自動化アシスタント
122  メッセージ処理エンジン
124  エンティティ決定エンジン
126  提案エンジン
128  コンテンツエンジン
130  メッセージ交換エンジン
140  表示画面
152  個人用データベース
154  公開データベース
156  クエリデータベース
201  スレッド
202  注釈付き入力
203  エンティティ
204  提案
205  クエリ
206  コンテンツ
361  グラフィック要素
362および363  グラフィック要素
365  グラフィック要素
366  グラフィック要素
371  グラフィック要素
380A  自然言語メッセージ
380B  メッセージ
380C  メッセージ
381、382、383  システムインターフェース要素
382A  自然言語メッセージ
384A  自然言語メッセージ
384B  メッセージ
385  音声応答インターフェース要素
388  テキスト応答インターフェース要素
389  音声応答インターフェース要素
390A  コンテンツ
390B  コンテンツ
400  方法
510  コンピューティングデバイス
512  バスサブシステム
514  プロセッサ
516  ネットワークインターフェースサブシステム
520  ユーザインターフェース出力デバイス
522  ユーザインターフェース入力デバイス
524  記憶装置サブシステム
525  メモリサブシステム
526  ファイル記憶装置サブシステム
530  主ランダムアクセスメモリ(RAM)
532  リードオンリーメモリ(ROM)
【図１】
2019522266.tif 000003
【図２Ａ】
2019522266.tif 000004
【図２Ｂ】
2019522266.tif 000005
【図３Ａ】
2019522266.tif 000006
【図３Ｂ】
2019522266.tif 000007
【図３Ｃ】
2019522266.tif 000008
【図３Ｄ】
2019522266.tif 000009
【図４】
2019522266.tif 000010
【図５】
2019522266.tif 000011
【手続補正書】
【提出日】平成30年12月19日(2018.12.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
1つまたは複数のプロセッサによって実装される方法であって、
進行中のメッセージ交換スレッドの1つまたは複数のすでに通信がなされたメッセージに基づき少なくとも1つの候補クエリを決定するステップであって、
前記進行中のメッセージ交換スレッドは、少なくとも第1のユーザと第2のユーザとの間であり、前記第1のユーザの第1のメッセージ交換クライアントおよび前記第2のユーザの第2のメッセージ交換クライアントを介したものである、ステップと、
少なくとも前記第1のユーザに前記第1のメッセージ交換クライアントを介して表示するために、前記候補クエリの指示を提供する選択可能なグラフィック要素を提供するステップと、
前記選択可能なグラフィック要素に向けられている前記第1のユーザのユーザインターフェース入力に応答して、
前記候補クエリを検索エンジンにサブミットするステップと、
前記候補クエリを前記検索エンジンにサブミットしたことに応答して1つまたは複数の検索結果を受信するステップと、
前記検索結果のうちの少なくとも1つに基づき前記進行中のメッセージ交換スレッドに組み込むコンテンツを決定するステップと、
前記コンテンツを前記進行中のメッセージ交換スレッドに組み込むステップであって、
前記コンテンツを前記進行中のメッセージ交換スレッドに組み込むステップは、前記コンテンツが前記第1のメッセージ交換クライアントを介して前記第1のユーザに表示され、および前記第2のメッセージ交換クライアントを介して前記第2のユーザに表示されることを引き起こす、ステップとを含む方法。
【請求項２】
前記コンテンツを前記進行中のメッセージ交換スレッドに組み込むステップは、前記メッセージ交換クライアントのうちの少なくとも1つが前記コンテンツを前記メッセージ交換クライアントのうちの前記少なくとも1つのクライアントのグラフィカルユーザインターフェースに表示される前記進行中のメッセージ交換スレッドのトランスクリプトに挿入することを要求するステップを含む請求項1に記載の方法。
【請求項３】
前記コンテンツは、テキストおよび画像の1つまたは複数を含む請求項2に記載の方法。
【請求項４】
前記候補クエリを決定するステップは、
前記候補クエリの1つまたは複数のクエリ語と前記進行中のメッセージ交換スレッドの前記すでに通信がなされたメッセージの1つまたは複数のメッセージ語との間の適合性に基づきクエリのコーパスから前記候補クエリを選択するステップを含む請求項1から3のいずれか一項に記載の方法。
【請求項５】
前記候補クエリを決定するステップは、
前記進行中のメッセージ交換スレッドの前記すでに通信がなされたメッセージで参照されている少なくとも1つの実体を決定するステップと、
前記少なくとも1つの実体に基づき前記候補クエリを決定するステップとを含む請求項1から4のいずれか一項に記載の方法。
【請求項６】
前記少なくとも1つの実体に基づき前記候補クエリを決定するステップは、
前記少なくとも1つの実体のエイリアスに基づき前記候補クエリに対する1つまたは複数のクエリ語を生成するステップとを含む請求項5に記載の方法。
【請求項７】
前記候補クエリを決定するステップおよび前記選択可能なグラフィック要素を提供するステップは、前記メッセージ交換スレッドに含めるための追加の自然言語入力のユーザによる作成から独立して行われる請求項1から6のいずれか一項に記載の方法。
【請求項８】
前記進行中のメッセージ交換スレッドのうちの前記すでに通信がなされたメッセージのうちの少なくとも1つのメッセージの1つまたは複数の語に基づき前記候補クエリに対するスコアを決定するステップをさらに含み、
前記選択可能なグラフィック要素を提供するステップは、閾値を満たす前記スコアに基づく請求項1から7のいずれか一項に記載の方法。
【請求項９】
前記1つまたは複数の語に基づき前記スコアを決定するステップは、
名前付き実体が前記語に含まれるかどうかに基づき前記スコアを決定するステップ、および
複数の前記語が少なくとも1つの事前定義されている検索クエリパターンに適合しているかどうかに基づき前記スコアを決定するステップのうちの少なくとも1つを含む請求項8に記載の方法。
【請求項１０】
前記候補クエリに対するスコアを、
前記候補クエリのサブミットの量に基づく前記候補クエリに対する人気尺度、および
前記候補クエリに応答する前記コンテンツに対する品質尺度のうちの少なくとも1つに基づき決定するステップをさらに含み、
前記選択可能なグラフィック要素を提供するステップは、閾値を満たす前記スコアに基づく請求項1から9のいずれか一項に記載の方法。
【請求項１１】
前記候補クエリを前記検索エンジンにサブミットするステップは、前記選択可能なグラフィック要素に向けられる前記ユーザインターフェース入力に応答する請求項1に記載の方法。
【請求項１２】
前記コンテンツを前記進行中のメッセージ交換スレッドに組み込むステップは、
前記コンテンツを前記進行中のメッセージ交換スレッドに、前記コンテンツが自動化アシスタントによって生成されることを示すグラフィック指示とともに組み込むステップを含む請求項1から11のいずれか一項に記載の方法。
【請求項１３】
前記第1のメッセージ交換クライアントを介して前記第1のユーザに表示するために、追加の選択可能なグラフィック要素を提供するステップをさらに含み、前記追加の選択可能なグラフィック要素が、1つまたは複数の語を識別し、選択されたときに、前記1つまたは複数の語を、前記1つまたは複数の語が前記第1のユーザから発せられたという指示とともに前記メッセージ交換スレッドに組み込ませ、前記1つまたは複数の語を、前記1つまたは複数の語に応答するコンテンツを組み込むことなく前記メッセージ交換スレッドに組み込ませる請求項1から12のいずれか一項に記載の方法。
【請求項１４】
前記グラフィック要素を提供するステップは、
前記グラフィック要素を前記第2のメッセージ交換クライアントを介して前記第2のユーザに表示するために提供するステップをさらに含む請求項1から13のいずれか一項に記載の方法。
【請求項１５】
前記コンテンツは、第1の実体にフォーカスを当てられた選択可能な第1のコンテンツアイテムと、第2の実体にフォーカスを当てられた選択可能な第2のコンテンツアイテムとを含み、
前記第1のコンテンツアイテムに向けられたユーザインターフェース入力は、前記第1の実体にフォーカスを当てられた追加の第1の実体コンテンツを前記メッセージ交換スレッドに組み込ませ、前記第2のコンテンツアイテムに向けられたユーザインターフェース入力は、前記第2の実体にフォーカスを当てられた追加の第2の実体コンテンツを前記メッセージ交換スレッドに組み込ませる請求項1から14のいずれか一項に記載の方法。
【請求項１６】
前記コンテンツは、第1の実体にフォーカスを当てられた第1の画像またはテキストを含み、選択されたときに前記第1の実体に特有の1つまたは複数の追加の計算アクションを実行させる少なくとも1つの選択可能なディープリンクをさらに含む請求項1から15のいずれか一項に記載の方法。
【請求項１７】
前記候補クエリおよび前記コンテンツの少なくとも1つに基づき追加の関係するクエリを決定するステップと、
前記第1のユーザの前記ユーザインターフェース入力の後に、少なくとも前記第1のユーザに前記第1のメッセージ交換クライアントを介して表示するために、前記追加の関係するクエリの指示を提供する追加の選択可能なグラフィック要素を提供するステップであって、
前記追加の選択可能なグラフィック要素は、前記グラフィック要素を同時に表示することなく表示のために提供される、ステップと、
前記追加の選択可能なグラフィック要素に向けられている前記第1のユーザの追加のユーザインターフェース入力に応答して、
前記追加の関係するクエリに応答する追加のコンテンツを前記進行中のメッセージ交換スレッドに組み込むステップであって、
前記追加のコンテンツを前記進行中のメッセージ交換スレッドに組み込むステップは、前記追加のコンテンツが前記第1のメッセージ交換クライアントを介して前記第1のユーザに表示され、および前記第2のメッセージ交換クライアントを介して前記第2のユーザに表示されることを引き起こす、ステップとをさらに含む請求項1から16のいずれか一項に記載の方法。
【請求項１８】
メモリおよび1つまたは複数のプロセッサを備えるシステムであって、前記メモリは、前記1つまたは複数のプロセッサによって実行されたときに、前記1つまたは複数のプロセッサに、
進行中のメッセージ交換スレッドの1つまたは複数のすでに通信がなされたメッセージに基づき少なくとも1つの候補クエリを決定し、
前記進行中のメッセージ交換スレッドは、少なくとも第1のユーザと第2のユーザとの間であり、前記第1のユーザの第1のメッセージ交換クライアントおよび前記第2のユーザの第2のメッセージ交換クライアントを介したものであり、
少なくとも前記第1のユーザに前記第1のメッセージ交換クライアントを介して表示するために、前記候補クエリの指示を提供する選択可能なグラフィック要素を提供し、
前記選択可能なグラフィック要素に向けられている前記第1のユーザのユーザインターフェース入力に応答して、
前記候補クエリを検索エンジンにサブミットするステップと、
前記候補クエリを前記検索エンジンにサブミットしたことに応答して1つまたは複数の検索結果を受信するステップと、
前記検索結果のうちの少なくとも1つに基づき前記進行中のメッセージ交換スレッドに組み込むコンテンツを決定するステップと、
前記コンテンツを前記進行中のメッセージ交換スレッドに組み込み、
前記コンテンツを前記進行中のメッセージ交換スレッドに組み込む際に、前記1つまたは複数のプロセッサは、前記コンテンツが前記第1のメッセージ交換クライアントを介して前記第1のユーザに表示され、および前記第2のメッセージ交換クライアントを介して前記第2のユーザに表示されることを引き起こすことを行わせる命令を記憶するシステム。
【請求項１９】
命令を記憶した少なくとも1つの非一時的コンピュータ可読記憶媒体であって、前記命令は、1つまたは複数のプロセッサによる前記命令の実行に応答して、前記1つまたは複数のプロセッサに、
進行中のメッセージ交換スレッドの1つまたは複数のすでに通信がなされたメッセージに基づき少なくとも1つの候補クエリを決定する動作であって、
前記進行中のメッセージ交換スレッドは、少なくとも第1のユーザと第2のユーザとの間であり、前記第1のユーザの第1のメッセージ交換クライアントおよび前記第2のユーザの第2のメッセージ交換クライアントを介したものである、動作と、
少なくとも前記第1のユーザに前記第1のメッセージ交換クライアントを介して表示するために、前記候補クエリの指示を提供する選択可能なグラフィック要素を提供する動作と、
前記選択可能なグラフィック要素に向けられている前記第1のユーザのユーザインターフェース入力に応答して、
前記候補クエリを検索エンジンにサブミットするステップと、
前記候補クエリを前記検索エンジンにサブミットしたことに応答して1つまたは複数の検索結果を受信するステップと、
前記検索結果のうちの少なくとも1つに基づき前記進行中のメッセージ交換スレッドに組み込むコンテンツを決定するステップと、
前記候補クエリに応答するコンテンツを前記進行中のメッセージ交換スレッドに組み込む動作とを実行させる少なくとも1つの非一時的コンピュータ可読記憶媒体。
【請求項２０】
1つまたは複数のプロセッサによる前記命令の実行に応答して、前記1つまたは複数のプロセッサに、請求項2から18のいずれか一項に記載の方法を実行させる命令を有する請求項19に記載の少なくとも1つの非一時的コンピュータ可読記憶媒体。
【請求項２１】
請求項1から17のいずれか一項に記載の方法を実行するように構成されている装置。
【請求項２２】
コンピューティング装置によって実行されたときに、請求項1から17のいずれか一項に記載の方法を実行させる機械可読命令を含むコンピュータプログラム。
【国際調査報告】
2019522266.tif 000012
2019522266.tif 000013
2019522266.tif 000014