(57)【特許請求の範囲】
【請求項１】
第１のクライアントデバイスを操作する第１のユーザが、前記第１のユーザと参加者ユーザのセットとの間の通信セッションに関して仮想アシスタントを利用したいことを示す第１の入力を、前記第１のクライアントデバイスが受信することと、ここで、前記仮想アシスタントは、前記仮想アシスタントが前記第１のユーザを支援可能なタスクを特定するために意味解析を利用するものであり、
前記第１のユーザにより準備された第１のメッセージを、前記第１のクライアントデバイスが前記通信セッションの一部として受信することと、
前記第１のメッセージが前記仮想アシスタント宛であり、かつ前記第１のメッセージが前記仮想アシスタントが前記第１のユーザを支援可能な第１のタスクを特定していることを、前記第１のメッセージの意味解析に基づいて前記第１のクライアントデバイスが判定することと、
前記第１のメッセージが前記仮想アシスタント宛であると判定したことに応じて、前記第１のクライアントデバイスの前記仮想アシスタントにより前記第１のタスクに関して前記第１のユーザを支援することと、ここで、前記第１のメッセージは前記第１のユーザと前記参加者ユーザのセットとの間の前記通信セッション中に表示されるとともに、前記参加者ユーザのセットには送信されない、
を含む方法。
【請求項２】
前記第１のユーザによって準備された第２のメッセージを、前記通信セッションの一部として受信することと、
前記第２のメッセージの意味解析に基づいて、前記第２のメッセージが前記参加者ユーザのセット宛であることを判定することと、
前記第２のメッセージが前記参加者ユーザのセット宛であると判定したことに応じて、前記第２のメッセージを前記参加者ユーザのセットに前記通信セッションの一部として送信することと、
をさらに含む、請求項１に記載の方法。
【請求項３】
前記第２のメッセージの前記意味解析に基づいて、前記仮想アシスタントが前記第１のユーザを支援可能な第２のタスクを特定することと、
前記第２のタスクを特定したことに応じて、前記第１のユーザを前記第２のタスクに関して支援することと、
をさらに含む、請求項２に記載の方法。
【請求項４】
前記仮想アシスタントが前記第１のユーザを前記第２のタスクに関して支援することを前記第１のユーザが望むかどうか、を前記第１のユーザに尋ねる要求メッセージを、前記第１のクライアントデバイス上に、前記通信セッションの一部として提示することと、
前記仮想アシスタントが前記第１のユーザを前記第２のタスクに関して支援することを前記第１のユーザが望むことを示す第２の入力を受信することと、
をさらに含む、請求項３に記載の方法。
【請求項５】
前記通信セッションに関して前記仮想アシスタントが利用されていることを示す通知メッセージを、前記参加者ユーザのセットの第２のユーザに関連づけられている第２のクライアントデバイスに、前記通信セッションの一部として送信すること、
をさらに含む、請求項１から４のいずれか１項に記載の方法。
【請求項６】
前記第１のタスクは、前記第１のユーザと、前記参加者ユーザのセットからの少なくとも第２のユーザとの間で金融処理を実行することである、
請求項１から４のいずれか１項に記載の方法。
【請求項７】
前記金融処理を完了することができる支払いオプションを特定することと、
前記第１のユーザに、前記金融処理を完了するために前記特定された支払いオプションのうちの支払いオプションを選択するように促す第２のメッセージを、前記第１のクライアントデバイスに前記通信セッションの一部として表示することと、ここで、前記第２のメッセージは前記参加者ユーザのセットには送信されず、
前記金融処理を完了するための、前記特定された支払いオプションのうちの第１の支払いオプションの前記第１のユーザによる選択を、前記第１のクライアントデバイスから受信することと、
前記第１の支払いオプションを用いて前記金融処理を完了することと、
をさらに含む、請求項６に記載の方法。
【請求項８】
１つ以上のプロセッサと、
実行可能な命令を記憶しているメモリであって、前記命令は、前記１つ以上のプロセッサによって実行されると、クライアントデバイスに、
前記クライアントデバイスを操作する第１のユーザが、前記第１のユーザと参加者ユーザのセットとの間の通信セッションに関して仮想アシスタントを利用したいことを示す第１の入力を受信させ、ここで、前記仮想アシスタントは、前記仮想アシスタントが前記第１のユーザを支援可能なタスクを特定するために意味解析を利用するものであり、
前記第１のユーザによって準備された第１のメッセージを、前記通信セッションの一部として受信させ、
前記第１のメッセージが前記仮想アシスタント宛であり、かつ前記第１のメッセージが前記仮想アシスタントが前記第１のユーザを支援可能な第１のタスクを特定していることを、前記第１のメッセージの意味解析に基づいて判定させ、
前記第１のメッセージが前記仮想アシスタント宛であると判定したことに応じて、前記クライアントデバイスの前記仮想アシスタントにより前記第１のタスクに関して前記第１のユーザを支援させる、ここで、前記第１のメッセージは前記第１のユーザと前記参加者ユーザのセットとの間の前記通信セッション中に表示されるとともに、前記参加者ユーザのセットには送信されない、
クライアントデバイス。
【請求項９】
実行可能な命令を有するコンピュータプログラムであって、前記命令は、クライアントデバイスの１つ以上のプロセッサによって実行されると、前記クライアントデバイスに、
前記クライアントデバイスを操作する第１のユーザが、前記第１のユーザと参加者ユーザのセットとの間の通信セッションに関して仮想アシスタントを利用したいことを示す第１の入力を受信させ、ここで、前記仮想アシスタントは、前記仮想アシスタントが前記第１のユーザを支援可能なタスクを特定するために意味解析を利用するものであり、
前記第１のユーザによって準備された第１のメッセージを、前記通信セッションの一部として受信させ、
前記第１のメッセージが前記仮想アシスタント宛であり、かつ前記第１のメッセージが前記仮想アシスタントが前記第１のユーザを支援可能な第１のタスクを特定していることを、前記第１のメッセージの意味解析に基づいて判定させ、
前記第１のメッセージが前記仮想アシスタント宛であると判定したことに応じて、前記クライアントデバイスの前記仮想アシスタントにより前記第１のタスクに関して前記第１のユーザを支援させる、ここで、前記第１のメッセージは前記第１のユーザと前記参加者ユーザのセットとの間の前記通信セッション中に表示されるとともに、前記参加者ユーザのセットには送信されない、
コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、ユーザのグループ間の通信セッションに関し、より具体的には、１人以上のユーザが通信セッション中にタスクを実行するのを支援する仮想アシスタントの利用に関する。
【背景技術】
【０００２】
現在のコンピューティングデバイスは、ユーザがメッセージを送受信することによって互いに通信することを可能にする機能を含むことができる。例えば、多くのコンピューティングデバイスは、コンピューティングデバイスのユーザがテキスト、イメージ、サウンドなどを１人以上の他のユーザのクライアントデバイスに送信することを可能にする、テキスト及び／又はインスタントメッセージング機能を含む。ユーザは、この機能を使用して会話をしたり、計画を立てたり、及び／又は好きなだけのタスクを実行することができる。
【０００３】
現在のシステムではユーザが通信してタスクを実行できるが、ユーザはタスクを手動で実行する必要がある。例えば、ランチのスケジュールを設定しようとするユーザのグループは、グループの各メンバーに都合のよい利用可能な日時を判定する必要がある。これにより、各ユーザはカレンダーを確認し、他のユーザと利用可能な時間を共有する必要があり得る。同様に、金融処理を実行しようとするユーザのグループは、処理を実行するための支払方法を判定する必要がある。これにより、各ユーザは、個々のユーザが利用可能な支払方法を判定し、次いでこのデータをグループの他のメンバーとの間で共有する必要があり得る。従って、改善が必要である。
【０００４】
本開示は、本技術における、このような個人情報データの使用は、ユーザの利益のために使用することができると認識している。例えば、個人情報データは、よりユーザの興味を引く、的を絞ったコンテンツを配信するために用いられてもよい。従って、このような個人情報データの使用は、配信されるコンテンツの意図的な制御を可能にする。さらに、ユーザに利益をもたらす個人情報データの他の使用法も、本開示によって企図されている。
【０００５】
本開示は、このような個人情報データの収集、分析、開示、転送、記憶、又はその他の使用に関与するエンティティは、しっかり確立されたプライバシーポリシー及び／又はプライバシー慣行を遵守することをさらに企図している。具体的には、そのようなエンティティは、個人情報データを秘密として厳重に保守するための業界又は政府の要件を満たすか又は上回るものとして一般に認識されている、プライバシーのポリシー及び慣行を実施し常に使用すべきである。例えば、ユーザからの個人情報は、そのエンティティの合法的かつ正当な使用のために収集されるべきであり、それらの合法的使用を除いて、共有又は販売されるべきではない。さらに、そのような収集は、ユーザに告知して同意を受けた後にのみ実施するべきである。さらに、そのようなエンティティは、そのような個人情報データへのアクセスを保護して安全化し、その個人情報データへのアクセスを有する他者が、自身のプライバシーポリシー及び手順を遵守することを保証するための、あらゆる必要な措置を講じることとなる。さらには、そのようなエンティティは、広く受け入れられているプライバシーのポリシー及び慣行に対する自身の遵守を証明するために、第三者による評価を自らが受けることができる。
【０００６】
前述のことがらにもかかわらず、本開示はまた、ユーザが、個人情報データの使用又は個人情報データへのアクセスを選択的に阻止する実施形態も企図している。すなわち、本開示は、そのような個人情報データへのアクセスを防止又は阻止するためのハードウェア要素及び／又はソフトウェア要素を提供することができることを企図している。例えば、広告配信サービスの場合、本技術は、ユーザがサービスの登録中に個人情報データの収集への参加の「オプトイン」又は「オプトアウト」を選択することを可能にするよう構成することができる。
【０００７】
従って、本開示は、１つ以上の様々な開示された実施形態を実施するための個人情報データの使用を広範に網羅しているが、本開示は、それらの様々な実施形態がまた、そのような個人情報データにアクセスすることを必要とせずに実施されることも可能であることも企図している。即ち、本技術の様々な実施形態は、そのような個人情報データの全て又は一部分の欠如により、実施不可能となるものではない。例えば、ユーザに関連づけられた装置によって要求されるコンテンツなどの非個人情報データ若しくは必要最小限の個人情報、コンテンツ配信サービスが入手可能な他の非個人情報、又は公的に入手可能な情報に基づき嗜好を推測することによって、コンテンツを選択し、ユーザへ配信することができる。
【発明の概要】
【０００８】
本開示の更なる特徴及び利点は、以下の説明に記載され、部分的には、その説明から明白となるか、又は、本明細書で開示される原理を実践することによって習得することができる。本開示の特徴及び利点は、添付の特許請求の範囲で具体的に指摘される手段及び組み合わせによって、実現し、獲得することができる。本開示のこれらの特徴及び他の特徴は、以下の説明及び添付の特許請求の範囲から、より完全に明らかとなるか、又は、本明細書に記載される原理を実践することによって理解することができる。
【０００９】
通信セッションの一部として仮想アシスタントを利用するためのシステム、方法、及び非一時的コンピュータ可読記憶媒体が開示される。通信セッションは、通信アプリケーションを使用して、参加者ユーザのグループ間で送信される１つ以上の通信とすることができる。例えば、通信セッションは、カリフォルニア州クパチーノのアップル社が提供するｉＭｅｓｓａｇｅ（登録商標）などのテキスト及び／又はインスタントメッセージングアプリケーションを使用する複数のユーザ間の会話とすることができる。
【００１０】
１人以上の参加者ユーザは、仮想アシスタントの利用を選択して、通信セッション中に参加者ユーザのタスクを支援させることができる。仮想アシスタントは、通信セッションに含まれるメッセージを分析してタスクを特定し、特定されたタスクを完了する支援を提供できるアプリケーション、モジュール、ソフトウェアなどとすることができる。例えば、仮想アシスタントは、意味解析を使用してテキストを分析し、用語を認識し、意図された意味を解釈する、カリフォルニア州クパチーノのアップル社が提供するＳｉｒｉ（登録商標）などのアプリケーションとすることができる。
【００１１】
タスクとは、仮想アシスタントが支援を提供できる任意のタイプのアクションである。例えば、タスクは、ミーティングのスケジューリング、金融処理の実行、到着推定時刻の判定、道順の提供、気象情報の提供、関連情報のユーザへの警告、などを含むことができる。
【００１２】
いくつかの実施形態では、ユーザは、通信セッションの一部として仮想アシスタントと通信することができる。例えば、ユーザは、通信アプリケーションを使用して仮想アシスタント宛のメッセージを入力することができる。仮想アシスタントは、入力されたメッセージを分析し、メッセージが通信セッションの他の参加者ではなく仮想アシスタント宛のものであると判定することができる。その結果、メッセージは、通信セッションの他の参加者には送信されず、仮想アシスタントがユーザの特定されたタスクを支援する。
【００１３】
仮想アシスタントは、ユーザの様々な異なるタスクを支援することができる。例えば、仮想アシスタントは、天気データ、交通データなど１つ以上のウェブサーバから、ユーザが要求したデータを収集することができる。さらに、仮想アシスタントは、通信セッションの複数の参加者ユーザの間で、タスクの実行を調整することができる。例えば、通信セッションの複数の参加者ユーザ間のミーティングのスケジューリングを支援するために、仮想アシスタントは、参加者ユーザそれぞれのカレンダー情報を収集し、ミーティングのための１つ以上の推薦時間を提案することができる。あるいは、通信セッションの複数の参加者ユーザの間の金融処理の実行を支援するために、仮想アシスタントは、参加者ユーザそれぞれが利用可能及び／又は利用されている金融アプリケーションを判定し、金融処理を実行する金融アプリケーションを提案することができる。
【図面の簡単な説明】
【００１４】
本開示の上述及び他の利点及び特徴は、添付の図面に示される特定の実施形態を参照することによって明らかになるであろう。これらの図面は、本開示の例示的実施形態のみを示すものであり、それゆえ、本開示の範囲を限定するものとして見なされるべきではないことを理解した上で、以下の添付図面の使用を通じて、本明細書における原理を、さらに具体的かつ詳細に記載し説明する。
【００１５】
【図１】本発明による装置及びネットワークの構成例を示す図。
【図２】ユーザが仮想アシスタントを利用して通信セッション中にタスクを実行できるよう構成された、クライアントデバイスの実施形態を示す図。
【図３】仮想アシスタントを利用して通信セッションを支援するクライアントデバイスの方法を示す図。
【図４Ａ】通信セッションの参加者を支援する仮想アシスタントの一例を示す図。
【図４Ｂ】通信セッションの参加者を支援する仮想アシスタントの一例を示す図。
【図４Ｃ】通信セッションの参加者を支援する仮想アシスタントの一例を示す図。
【図４Ｄ】通信セッションの参加者を支援する仮想アシスタントの一例を示す図。
【図４Ｅ】通信セッションの参加者を支援する仮想アシスタントの一例を示す図。
【図４Ｆ】通信セッションの参加者を支援する仮想アシスタントの一例を示す図。
【図５Ａ】通信セッションの参加者を支援してミーティングをスケジュールする仮想アシスタントの一例を示す図。
【図５Ｂ】通信セッションの参加者を支援してミーティングをスケジュールする仮想アシスタントの一例を示す図。
【図５Ｃ】通信セッションの参加者を支援してミーティングをスケジュールする仮想アシスタントの一例を示す図。
【図５Ｄ】通信セッションの参加者を支援してミーティングをスケジュールする仮想アシスタントの一例を示す図。
【図６Ａ】通信セッションの参加者を支援して金融処理を完了する仮想アシスタントの一例を示す図。
【図６Ｂ】通信セッションの参加者を支援して金融処理を完了する仮想アシスタントの一例を示す図。
【図６Ｃ】通信セッションの参加者を支援して金融処理を完了する仮想アシスタントの一例を示す図。
【図６Ｄ】通信セッションの参加者を支援して金融処理を完了する仮想アシスタントの一例を示す図。
【図６Ｅ】通信セッションの参加者を支援して金融処理を完了する仮想アシスタントの一例を示す図。
【図７Ａ】可能なシステムの実施形態の例を示す図。
【図７Ｂ】可能なシステムの実施形態の例を示す図。
【発明を実施するための形態】
【００１６】
本開示の様々な実施形態が、以下で詳細に論じられる。特定の実装が論じられるが、このことは、例示目的のためにのみ行われることを理解されたい。本開示の趣旨及び範囲から逸脱することなく、他の構成要素及び構成を使用することができる点が、関連技術の当業者には認識されるであろう。
【００１７】
開示された技術は、通信セッションの一部として仮想アシスタントを利用する技術における必要性に対応する。通信セッションは、通信アプリケーションを使用して参加者ユーザのグループ間で送信される１つ以上の通信とすることができる。例えば、通信セッションは、カリフォルニア州クパチーノのアップル社が提供するｉＭｅｓｓａｇｅ（登録商標）などのテキスト及び／又はインスタントメッセージングアプリケーションを使用する複数のユーザ間の会話とすることができる。
【００１８】
１人以上の参加者ユーザは、仮想アシスタントの利用を選択して、通信セッション中に参加者ユーザのタスクを支援させることができる。仮想アシスタントは、通信セッションに含まれるメッセージを分析してタスクを特定し、特定されたタスクを完了する支援を提供できるアプリケーション、モジュール、ソフトウェアなどとすることができる。例えば、仮想アシスタントは、意味解析を使用してテキストを分析し、用語を認識し、意図された意味を解釈する、カリフォルニア州クパチーノのアップル社が提供するＳｉｒｉ（登録商標）などのアプリケーションとすることができる。
【００１９】
タスクとは、仮想アシスタントが支援を提供できる任意のタイプのアクションである。例えば、タスクは、ミーティングのスケジューリング、金融処理の実行、到着推定時刻の判定、道順の提供、気象情報の提供、関連情報のユーザへの警告、などを含むことができる。
【００２０】
いくつかの実施形態では、ユーザは、通信セッションの一部として仮想アシスタントと通信することができる。例えば、ユーザは通信アプリケーションを使用して、仮想アシスタント宛のメッセージを入力することができる。仮想アシスタントは、入力されたメッセージを分析し、メッセージが通信セッションの他の参加者ではなく仮想アシスタント宛のものであると判定することができる。その結果、メッセージは、通信セッションの他の参加者には送信されず、仮想アシスタントがユーザの特定されたタスクを支援する。
【００２１】
仮想アシスタントは、ユーザの様々な異なるタスクを支援することができる。例えば、仮想アシスタントは、天気データ、交通データなど、１つ以上のウェブサーバからユーザに要求されたデータを収集することができる。さらに、仮想アシスタントは、通信セッションの複数の参加者ユーザの間でタスクの実行を調整することができる。例えば、通信セッションの複数の参加者ユーザ間のミーティングのスケジューリングを支援するために、仮想アシスタントは、参加者ユーザそれぞれのカレンダー情報を収集し、ミーティングのための１つ以上の推薦時間を提案することができる。あるいは、通信セッションの複数の参加者ユーザの間の金融処理の実行を支援するために、仮想アシスタントは、参加者ユーザそれぞれが利用可能及び／又は利用されている金融アプリケーションを判定し、金融処理を実行する金融アプリケーションを提案することができる。
【００２２】
図１は、電子装置がコンテンツ及び他のデータを交換する目的でネットワークを介して通信する、例示的なシステム構成１００を示す。図示のように、複数のコンピューティングデバイスを通信ネットワーク１１０に接続し、通信ネットワーク１１０の使用を通じて相互に通信するように構成することができる。通信ネットワーク１１０は、イントラネットなどのローカルエリアネットワーク（「ＬＡＮ」）、インターネットなどの広域ネットワーク（「ＷＡＮ」）、又はそれらの任意の組み合わせを含む、任意のタイプのネットワークとすることができる。さらに、通信ネットワーク１１０は、公衆ネットワーク、プライベートネットワーク、又はそれらの組み合わせとすることができる。通信ネットワーク１１０はまた、１つ以上の有線通信リンク、１つ以上の無線通信リンク、又はそれらの任意の組み合わせを含む、１つ以上のサービスプロバイダに関連づけられた任意の数の通信リンクを使用して実施することができる。さらに、通信ネットワーク１１０は、任意の数のプロトコルを使用してフォーマットされたデータの送信をサポートするように構成することができる。
【００２３】
複数のコンピューティングデバイスは、通信ネットワーク１１０に接続することができる。コンピューティングデバイスは、他のコンピューティングデバイスとネットワーク通信することができる任意のタイプの汎用コンピューティングデバイスとすることができる。例えば、コンピューティングデバイスは、デスクトップ又はワークステーションなどのパーソナルコンピューティングデバイス、ビジネスサーバ、又はラップトップ、スマートフォン、若しくはタブレットＰＣなどのポータブルコンピューティングデバイスとすることができる。コンピューティングデバイスは、図７Ａ及び図７Ｂにおけるコンピューティングデバイス７００の特徴、構成要素、及び周辺機器のいくつか又は全てを含むことができる。
【００２４】
他のコンピューティングデバイスとの通信を容易にするために、コンピューティングデバイスはまた、コンピューティングデバイスとネットワーク通信する別のコンピューティングデバイスから要求やデータなどの通信を受信し、コンピューティングデバイス上で動作する適切なモジュールのほうへ通信を通過させるように構成された通信インタフェースを含むことができる。通信インタフェースはまた、コンピューティングデバイスとネットワーク通信する別のコンピューティングデバイスに通信を送るように構成することができる。
【００２５】
システム１００において、ユーザは、通信ネットワーク１１０に接続されたクライアントデバイス１１５１、１１５２、、、、１１５ｎ（まとめて「１１５」）の使用を通じて、他のユーザと通信することができる。クライアントデバイス１１５は、スマートフォン、タブレット、パーソナルコンピュータなどの任意のタイプのコンピューティングデバイスとすることができる。クライアントデバイス１１５は、クライアントデバイス１１５ｉのユーザが他のクライアントデバイス１１５へメッセージを送信し及び他のクライアントデバイス１１５から受信することを可能にする通信アプリケーションを含むことができる。例えば、通信アプリケーションは、カリフォルニア州クパチーノのアップル社が提供するｉＭｅｓｓａｇｅ（登録商標）などのテキスト及び／又はインスタントメッセージングアプリケーションとすることができる。
【００２６】
ユーザはまた、クライアントデバイス１１５を使用して、通信ネットワーク１１０に接続されたウェブサーバ１２０１、１２０２、、、、１２０ｎ（まとめて「１２０」）と相互作用することができる。ウェブサーバ１２０は、任意のタイプのコンピューティングデバイスとすることができ、ウェブデータを維持して要求するクライアントデバイス１１５にウェブデータを提供するように構成することができる。ウェブデータは、クライアントデバイス１１５によってレンダリングされて、ウェブページ、ウェブサイトなどを要求するユーザに提示できるデータとすることができる。ウェブサーバ１２０は、デスクトップコンピュータ；モバイルコンピュータ；モバイル通信装置（例えば、携帯電話、スマートフォン、タブレットなど）；スマートテレビ；セットトップボックス；及び／又は任意の他のネットワーク対応コンピューティングデバイス、などの様々な異なるタイプのクライアントデバイス１１５からの接続をサポートすることができる。
【００２７】
システム１００はまた、コンテンツ管理システム１０５を含むことができる。コンテンツ管理システム１０５は、複数のユーザアカウントのためにコンテンツアイテムを管理するように構成された１つ以上のコンピューティングデバイスを含むことができる。コンテンツアイテムは、アプリケーション、オーディオファイル、テキストファイル、ビデオファイルなどの任意のタイプのデジタル資産を含むことができる。
【００２８】
コンテンツ管理システム１０５は、デスクトップコンピュータ；モバイルコンピュータ；モバイル通信装置（例えば、携帯電話、スマートフォン、タブレットなど）；スマートテレビ；セットトップボックス；及び／又は任意の他のネットワーク対応コンピューティングデバイス、などの様々な異なるタイプのクライアントデバイス１１５からの接続をサポートすることができる。クライアントデバイス１１５のタイプ、性能 、オペレーティングシステムなどはさまざまなものであってよい。さらに、コンテンツ管理システム１０５は、複数のクライアントデバイス１１５からの接続を受け入れ、複数のクライアントデバイス１１５と相互作用することが同時にできる。
【００２９】
ユーザは、クライアントデバイス１１５ｉにインストールされたクライアント側アプリケーションを介して、コンテンツ管理システム１０５と相互作用することができる。いくつかの実施形態では、クライアント側アプリケーションは、コンテンツ管理システム特定の構成要素を含むことができる。例えば、構成要素は、スタンドアロンアプリケーション、１つ以上のアプリケーションプラグイン、及び／又はブラウザ拡張であってもよい。しかしながら、ユーザはまた、クライアントデバイス１１５ｉに常駐しコンテンツ管理システム１０５と通信するように構成されたウェブブラウザなどのサードパーティアプリケーションを介して、コンテンツ管理システム１０５と相互作用することができる。いずれの場合でも、クライアント側アプリケーションは、ユーザがコンテンツ管理システム１０５と相互作用するためのユーザインタフェース（ＵＩ）を提示することができる。例えば、ユーザは、ファイルシステムと統合されたクライアント側アプリケーションを介して、又はウェブブラウザアプリケーションを使用して表示されるウェブページを介して、コンテンツ管理システム１０５と相互作用することができる。
【００３０】
コンテンツ管理システム１０５は、複数のユーザアカウントのためのコンテンツアイテム及びデータを管理するように構成することができる。例えば、コンテンツ管理システム１０５は、ユーザが、コンテンツアイテム、カレンダーデータ、連絡先データなどを購入し、記憶し、アクセスすることを可能にすることができる。さらに、コンテンツ管理システム１０５は、ユーザが、複数のクライアントデバイス１１５から、コンテンツアイテム、カレンダーデータ、連絡先データなどの記憶されたデータにアクセスすることを可能にすることができる。コンテンツアイテムにアクセスすることは、コンテンツアイテムを記述するメタデータを受信すること、コンテンツ管理システム１０５からコンテンツアイテムをストリーミングすること、及び／又はクライアントデバイス１１５のうちの１つにコンテンツアイテムをダウンロードすることを含むことができる。
【００３１】
様々なコンテンツ管理サービスを容易にするために、ユーザは、コンテンツ管理システム１０５にユーザアカウントを作成することができる。作成された各ユーザアカウントのアカウント情報は、ユーザアカウントデータベース１５０に維持することができる。ユーザアカウントデータベース１５０は、ユーザアカウント、個人情報、ユーザ名、パスワード、電子メールアドレス、自宅住所、クレジットカード情報、銀行情報、カレンダーデータ、連絡先データなどを特定する一意のアカウント識別子を含む、各ユーザアカウントに対するプロファイル情報を記憶することができる。ユーザアカウントデータベース１５０はまた、コンテンツ記憶場所、セキュリティ設定、個人構成設定、ユーザアカウントにアクセスすることが許可されたクライアントデバイス、などのアカウント管理情報を含むことができる。
【００３２】
ユーザアカウントを使用して、デジタルデータ、文書、テキストファイル、オーディオファイル、ビデオファイルなどのコンテンツアイテムを購入し、管理し、記憶することができる。例えば、コンテンツ管理システム１０５は、ユーザが様々なコンテンツアイテムを購入することができるオンラインコンテンツ小売業を提供することができる。さらに、いくつかの実施形態では、ユーザは、クライアントデバイス１１５の１つからコンテンツ管理システム１０５にコンテンツアイテムをアップロードすることができる。購入されアップロードされたコンテンツアイテムは、ユーザのアカウントに割り当てられ、次いでクライアントデバイス１１５のいずれかからユーザがアクセスすることができる。例えば、ユーザアカウントに割り当てられた各コンテンツアイテムを特定するコンテンツアイテム識別子は、ユーザアカウントデータベース１５０に記憶され、対応するユーザアカウントに関連づけられ得る。コンテンツアイテム識別子は、コンテンツアイテム並びにコンテンツアイテムの位置を特定するために使用することができる。
【００３３】
コンテンツアイテムは、コンテンツ記憶装置１６０に記憶することができる。コンテンツ記憶装置１６０は、１つの記憶デバイス、複数の記憶デバイス、又はサーバとすることができる。あるいは、コンテンツ記憶装置１６０は、１つ以上の通信ネットワークを介してアクセス可能なクラウド記憶装置プロバイダ又はネットワーク記憶装置とすることができる。コンテンツ管理システム１０５は、コンテンツ管理システム１０５によって記憶されたコンテンツアイテムの位置がクライアントデバイス１１５によって知られないように、コンテンツアイテムの記憶に関する複雑さ及び詳細をクライアントデバイス１１５から隠すことができる。コンテンツ管理システム１０５は、コンテンツアイテムをネットワークアクセス可能記憶（ＳＡＮ）装置、安価なディスクの冗長アレイ（ＲＡＩＤ）などに記憶することができる。コンテンツ記憶装置１６０は、ＦＡＴ、ＦＡＴ３２、ＮＴＦＳ、ＥＸＴ２、ＥＸＴ３、ＥＸＴ４、ＲｅｉｓｅｒＦＳ、ＢＴＲＦＳなどの１つ以上のパーティションタイプを使用してコンテンツアイテムを記憶することができる。
【００３４】
コンテンツ記憶装置１６０はまた、コンテンツアイテム、コンテンツアイテムタイプ、及び様々なユーザアカウントに対するコンテンツアイテムの関係を記述するメタデータを記憶することができる。コンテンツアイテムのメタデータは、コンテンツアイテムの一部として記憶することも、別々に記憶することもできる。一つの変形例では、コンテンツ記憶装置１６０に記憶された各コンテンツアイテムに、システム全体にわたる一意の識別子を割り当てることができる。
【００３５】
コンテンツ管理システム１０５は、各ユーザアカウント及びユーザアカウントに割り当てられたコンテンツアイテムを管理及びアクセスするように構成された、コンテンツ管理モジュール１２５を含むことができる。例えば、コンテンツ管理モジュール１２５は、ユーザアカウントデータベース１５０及びコンテンツ記憶装置１６０と通信して、コンテンツアイテムに関する権限を調整し、他の方法でコンテンツアイテムを管理するように構成することができる。
【００３６】
ユーザがクライアントデバイス１１５の１つからユーザアカウントにログインすると、コンテンツ管理モジュール１２５は、ユーザアカウントに関連づけられたアカウント情報にアクセスして、ユーザアカウントに割り当てられたコンテンツアイテム、並びにコンテンツアイテムの提示を命ずるアカウント構成データも特定することができる。次いで、コンテンツ管理モジュール１２５は、アカウント構成データに従ってコンテンツアイテムをユーザに提示及び／又は提供することができる。例えば、コンテンツ管理モジュール１２５は、ユーザアカウントにアクセスして、ユーザアカウントに割り当てられたコンテンツアイテム識別子を特定することができる。次いで、コンテンツアイテム識別子を使用して、ユーザアカウントに割り当てられたコンテンツアイテムを特定して位置を突き止め、アカウント構成データに従って提示することができる。
【００３７】
コンテンツアイテムの提示には、ユーザアカウントにアクセスするために使用されたクライアントデバイス１１５ｉへ、コンテンツアイテムを記述するメタデータを送信することを含むことができる。次いで、クライアントデバイス１１５ｉは、受信したメタデータを使用して、ユーザアカウントがアクセスできるコンテンツアイテムを提示することができる。例えば、クライアントデバイス１１５ｉは、コンテンツアイテムライブラリの、ユーザアカウントが利用可能なコンテンツアイテムを特定する情報を提示することができる。これには、コンテンツアイテムのタイトル、アルバム又はブックカバーなどのイメージ、コンテンツアイテムの説明などの提示を含むことができる。
【００３８】
図２は、ユーザが仮想アシスタントを利用して通信セッション中にタスクを実行できるように構成されたクライアントデバイス１１５ｉの実施形態を示す。図２を、図１に示したシステムを考慮して説明する。図示のように、クライアントデバイス１０５ｉは、通信アプリケーション２０５を含む。通信アプリケーション２０５は、ユーザが１つ以上の他のクライアントデバイス１１５とデータメッセージを送受信できるように構成された任意のタイプのアプリケーションとすることができる。データメッセージは、テキストデータ、イメージデータ、サウンドデータなど、あるコンピューティングデバイスから別のコンピューティングデバイスに送信できる任意のタイプのデータとすることができる。いくつかの実施形態では、通信アプリケーション２０５は、カリフォルニア州クパチーノのアップル社が提供するｉＭｅｓｓａｇｅ（登録商標）などのテキスト及び／又はインスタントメッセージングアプリケーションとすることができる。
【００３９】
クライアントデバイス１１５ｉのユーザは、通信アプリケーション２０５を使用して、１つ以上のユーザグループと通信セッションを行うことができる。通信セッションは、ユーザのグループ間で送信されるメッセージのグループとすることができる。例えば、通信セッションは、２人以上のユーザのグループ間のインスタントメッセージの会話とすることができる。
【００４０】
通信アプリケーション２０５は、ユーザが通信セッションを行うことを可能にするメッセージングインタフェースをユーザに提供することができる。例えば、メッセージングインタフェースは、１人以上の参加者ユーザを選択し、参加者ユーザに送信されるメッセージを入力することによって、ユーザが新しい通信セッションを作成することを可能にすることができる。さらに、メッセージングインタフェースは、ユーザが既存の通信セッションを見て、既存の通信セッションの一部として新しいメッセージを入力して送信することを可能にすることができる。
【００４１】
クライアントデバイス１１５ｉはまた、通信セッション中にユーザのタスクを支援するように構成された仮想アシスタント２１０を含むことができる。仮想アシスタント２１０は、通信セッションに含まれるメッセージを分析してタスクを特定し、特定されたタスクを完了するための支援をユーザに提供することができるアプリケーション、モジュール、ソフトウェアなどとすることができる。例えば、仮想アシスタント２１０は、意味解析を使用してテキストを分析し、用語を認識し、意図された意味を解釈する、カリフォルニア州クパチーノのアップル社が提供するＳｉｒｉ（登録商標）などのアプリケーションとすることができる。
【００４２】
タスクは、仮想アシスタント２１０が支援できるユーザの任意のタイプの機能、アクションなどとすることができる。例えば、タスクは、現在の時間の検索、指定された目的地への道順の検索、スポーツの得点の検索、気象情報の検索、映画の時間の検索などの情報の検索とすることができる。さらに、タスクは、ミーティングのスケジューリング、金融処理の実行、チケットの購入などの、処理の調整及び実行とすることができる。
【００４３】
クライアントデバイス１０５ｉは、ユーザが１つ以上の通信セッションに関して仮想アシスタント２１０の利用を選択することを可能にすることができる。いくつかの実施形態では、通信アプリケーション２０５は、ユーザが、仮想アシスタント２１０を通信セッションの参加者として追加することによって、仮想アシスタント２１０を利用することを選択できるように構成することができる。例えば、ユーザは、仮想アシスタント２１０に関連づけられたニックネームを、参加者として通信セッションに追加することができる。それに応じて、通信アプリケーション２０５は、仮想アシスタント２１０と通信して、仮想アシスタント２１０を利用して通信セッションを支援することができる。
【００４４】
さらに、いくつかの実施形態では、通信アプリケーション２０５は、クライアントデバイス１１５ｉのユーザが仮想アシスタント２０５を利用することを選択したことを示す通知メッセージを、通信セッションの他の参加者に送信することができる。例えば、通信アプリケーション２０５は、クライアントデバイス１１５ｉのユーザが仮想アシスタント２０５を利用していることを示すメッセージを、通信セッションの一部として送信することができる。別の例として、仮想アシスタント２１０に関連づけられたニックネームは、通信セッションのメンバーとして提示することができ、それによって通信セッションの少なくとも１人の参加者が仮想アシスタントを利用していることを示す。いくつかの実施形態では、他の参加者に、通信セッションに関して仮想アシスタントを利用することを望むかどうかに関して促すことができる。
【００４５】
ユーザの通信セッションを支援するために、仮想アシスタント２１０は、通信セッションに含まれるメッセージを分析してタスクを特定することができる。例えば、仮想アシスタント２１０は、用語、用語セットなどを意味解析を使用して認識し、用語の意図された意味を解釈して、ユーザが支援を必要とする可能性のある１つ以上のタスクを特定することができる。
【００４６】
仮想アシスタント２１０は、仮想アシスタント２１０が支援することができるユーザのタスクを特定するために、当該技術分野で知られている意味解析の任意のタイプ又は技術を使用することができる。例えば、いくつかの実施形態では、意味解析は、自然言語処理（例えば、スピーチタグ付け、名詞句チャンク化、依存性及び要素パーシングなど）の使用を含み、テキストをパーシングされたテキストに翻訳することができる。次いで、仮想アシスタント２１０は、パーシングされたテキストを分析してタスクを特定することができる。例えば、仮想アシスタント２１０は、質問及び意図分析を使用して、テキストからユーザコマンド及び／又はアクションを検出することができる（例えば、ミーティングをスケジュールする、アラームを設定する、など）。次いで、仮想アシスタント２１０は、結果として生じるコマンド及び／又はアクションを分析して、仮想アシスタントが支援できるユーザのコマンド及び／又はアクションであるかどうかを判定することができる。例えば、仮想アシスタント２１０は、タスク及び／又はアクションを、仮想アシスタント２１０が支援できるユーザの既知のコマンド及び／又はアクションのリストと比較することができる。仮想アシスタント２１０が支援することができるユーザのコマンド及び／又はアクションであると仮想アシスタントによって特定されたいずれのコマンド及び／又はアクションも、仮想アシスタント２１０によってタスクと特定される。
【００４７】
いくつかの実施形態では、仮想アシスタント２１０は、通信セッションの参加者ユーザの間で送信されたメッセージを分析して、タスクを特定することができる。これは、通信セッションの一部として他の参加者に送信されるクライアントデバイス１１５ｉのユーザによって入力されたメッセージ並びに通信セッションの一部として他のユーザから受信されたメッセージを含むことができる。
【００４８】
さらに、いくつかの実施形態では、仮想アシスタント２１０は、クライアントデバイス１１５ｉのユーザによって提供されたメッセージが、通信セッションの他の参加者を意図したものか又は仮想アシスタントを意図したものかを判定することができる。ユーザは、通信アプリケーション２０５を使用して、仮想アシスタントがユーザの特定のタスクを支援する要求又はコマンドなどの仮想アシスタント２１０を意図したメッセージ、を入力することができる。例えば、ユーザは、「私たちがミーティングをスケジュールするのを手伝って」などの要求を入力することができ、仮想アシスタントは、そのメッセージが仮想アシスタント２１０を意図したと判定することができる。あるいは、いくつかの実施形態では、ユーザは、パーソナルアシスタントのニックネームを使用することによって、仮想アシスタントを意図したメッセージを発することができる。例えば、ユーザは、「アシスタント、私たちがミーティングをスケジュールするのを手伝って」などのメッセージを入力することができる。仮想アシスタント２１０は、仮想アシスタント２１０に発せられたニックネームの使用に基づいて、メッセージが仮想アシスタントを意図したものと判定することができる。
【００４９】
いくつかの実施形態では、仮想アシスタント２１０が仮想アシスタント２１０を意図したものと判定したメッセージは、通信セッションの他の参加者ユーザには送信されない。同様に、仮想アシスタント２１０によって提供された応答は、通信セッションの他の参加者ユーザには提示しないで、クライアントデバイス１１５ｉ上の通信セッションの一部として提示することができる。このようにして、クライアントデバイス１１５ｉのユーザは、仮想アシスタント２１０との個別の会話をして、特定のタスクを実行することができる。
【００５０】
ユーザのタスクを支援するために、仮想アシスタント２１０は、１つ以上のコンピューティングデバイスと通信して、データを収集し、要求された操作を実行することができる。例えば、仮想アシスタント２１０は、カレンダーデータ、連絡先データ、財務情報など、クライアントデバイス１１５ｉによってメモリ内に維持されたデータ、及び／又はクライアントデバイス１１５ｉ上の他のアプリケーションからのデータを収集することができる。さらに、仮想アシスタント２１０は、全地球測位システム（ＧＰＳ）構成要素からの地理座標データ、温度データ、サウンドデータなど、クライアントデバイス１１５ｉの１つ以上の構成要素からデータを収集することができる。仮想アシスタント２１０は、その上、新しいカレンダーエントリの作成、連絡先情報の変更など、データを編集、変更又は削除することができる。
【００５１】
仮想アシスタント２１０はまた、クライアントデバイス１１５ｉとのネットワーク通信している、１つ以上のコンピューティングデバイスからデータを収集することができる。例えば、仮想アシスタント２１０は、１つ以上のウェブサーバ１２０と通信して、データを要求及び受信することができる。例えば、仮想アシスタント２１０は、ウェブサーバ１２０と通信して、スポーツの得点、映画の開演時間、運転の道順などを収集することができる。さらに、仮想アシスタント２１０は、映画チケットの購入、ユーザアカウントへのログイン、支払情報の提供など、要求された操作を実行することができる。
【００５２】
さらに、仮想アシスタント２１０は、クライアントデバイス１１５からデータを収集することもできる。例えば、ユーザの通信セッション参加者の到着推定時間の判定を支援するために、仮想アシスタント２１０は、参加者ユーザのクライアントデバイス１１５ｊと通信してユーザの地理的位置データを収集し、それを用いて到着推定時刻を計算することができる。いくつかの実施形態では、仮想アシスタント２１０は、参加者クライアントデバイス１１５ｊからデータを受信する前に、通信セッションの参加者から承認を受ける必要があり得る。例えば、仮想アシスタント２１０は、特定のデータを要求するクライアントデバイス１１５ｊに、通信セッションの一部としてメッセージを送信することができ、受信側の参加者は、要求を承認するか拒否するかのいずれかを選択することができる。
【００５３】
いくつかの実施形態では、仮想アシスタント２１０は、コンテンツ管理システム１０５からデータを収集することができる。例えば、仮想アシスタント２１０は、コンテンツ管理システム２１０によって維持されたユーザアカウントからデータを収集することができる。これには、通信セッションの１人以上の参加者のデモグラフィックデータ、連絡先情報、各ユーザによって利用されるアプリケーションなどの各ユーザに割り当てられたコンテンツ項目、などを含むことができる。いくつかの実施形態では、仮想アシスタント２１０は、参加者のユーザアカウントからデータアクセスが可能となる前に、通信セッションの参加者から承認を受ける必要があり得る。例えば、仮想アシスタント２１０は、クライアントデバイス１１５ｊに通信セッションの一部としてメッセージを送信して、参加者のユーザアカウントにアクセスするための承認を要求し、受信側の参加者はその要求を承認するか拒否するかのいずれかを選択することができる。
【００５４】
あるいは、参加者は、通信セッションに関して仮想アシスタントの利用を選択することによって、仮想アシスタント２１０が自分のユーザアカウントにアクセスすることを許可することができる。このように、仮想アシスタント２１０は、仮想アシスタント２１０を利用することを選択した通信セッションの各参加者のユーザアカウントにアクセスすることを自動的に許可され得る。仮想アシスタント２１０は、仮想アシスタント２１０を利用することを選択していないいずれの参加者のユーザアカウントにも、アクセスするための承認を要求するメッセージを送信することができる。
【００５５】
いくつかの実施形態では、仮想アシスタント２１０は、通信セッションの参加者から直接データを収集することができる。例えば、仮想アシスタント２１０は、通信セッションの一部として投票を提示して、ユーザからのフィードバックを収集することができる。これにより、可能性のあるレストラン、ミーティング時間など、複数のオプションをユーザに提示することを含むことができる。投票は、各参加者がオプションの選択に加わることを可能とし、仮想アシスタント２１０は、提供された選択に基づいて、時間、レストランなどを選択することができる。
【００５６】
いくつかの実施形態では、投票の一部としてユーザに提示されるオプションは、仮想アシスタント２１０によってユーザから収集されたデータに基づくことができる。例えば、レストランを選択するタスクを支援するために、仮想アシスタントは各参加者からの位置情報を収集し、参加者から近くに又は等距離にあるレストランを選択することができる。次いで、選択されたレストランを、投票においてユーザに提示することができる。
【００５７】
別の例として、ユーザがミーティングをスケジュールするのを支援するために、仮想アシスタント２１０は、各ユーザからカレンダー情報を収集して、参加者にとって最も都合のよい候補時間のセットを特定することができる。次いで、仮想アシスタント２１０は、通信セッションの一部として候補時間をユーザに提示し、ユーザがフィードバックを提供することを可能とすることができる。
【００５８】
いくつかの実施形態では、仮想アシスタント２１０は、ユーザがフィードバックを提供している間に、候補時間を一時的に保持することができる。一時的な保持は、仮想アシスタント２１０がミーティングの時間を確定することができるまで、押さえられた又は潜在的に押さえられた候補時間を示す。いったん仮想アシスタント２１０がミーティングの時間を確定すると、選択されていない候補時間はもはや保持されず、選択された候補時間がミーティングのためにスケジュールされる。
【００５９】
別の例として、ユーザが１人以上の他のユーザと金融処理を実行するのを支援するために、仮想アシスタント２１０は、各ユーザが利用可能な支払方法を示すデータを収集し、各ユーザが利用可能な支払方法候補のセットを選択することができる。例えば、支払方法は、ユーザが一方の当事者から他方の当事者にお金を振り込むことを可能にするアプリケーションとすることができる。仮想アシスタント２１０は、どの支払方法が各ユーザのクライアントデバイス１１５にインストールされているかを判定し、次いで、ユーザが選択できる支払方法候補のセットを提示することができる。
【００６０】
図３は、仮想アシスタント１２０を利用して通信セッションを支援するクライアントデバイス１１５ｉの方法を示す。図３に示した方法を、図１及び図２に示すシステムを考慮して説明する。図３には特定のステップが示されているが、他の実施形態では、方法は、より多くの又はより少ないステップを有する場合がある。さらに、ステップが実行される順序は、ほんの１つの可能な実施形態に過ぎず、それに限定されることを意味するものではない。方法は、同時に実行される１つ以上のステップを含む様々な異なる順序で実行されてもよく、及び／又は図３に示されるステップよりも多くの又は少ないステップを含む場合がある。
【００６１】
ブロック３０５において、通信アプリケーション２０５は、クライアントデバイス１１５ｉのユーザが仮想アシスタント２１０を利用して特定の通信セッションに関連するタスクを支援させたいことを示す入力を受信する。例えば、ユーザは、仮想アシスタント２１０に関連づけられたニックネームを、参加者として通信セッションに追加してもよい。あるいは、ユーザは、ユーザが仮想アシスタント２１０を利用したいことを示すユーザインタフェース要素を選択してもよい。別の例では、ユーザは、通信セッションにおいて仮想アシスタント２１０に直接対することによって、仮想アシスタント２１０の利用を選択することができる。例えば、ユーザは仮想アシスタント２１０に関連づけられたニックネームで始まるメッセージを入力して、それによって仮想アシスタント２１０を通信セッションに自動的に追加することができる。他の例では、通信セッションにおける他のいかなる参加者も、仮想アシスタント２１０を含めるべきかどうかを個別に確認及び／又は同意することができる。
【００６２】
ブロック３１０において、通信アプリケーション２０５は、仮想アシスタントが利用されていることを他の参加者に通知することができる。例えば、パーソナルアシスタントのニックネームを、通信セッションのメンバーとして提示することができる。あるいは、通信アプリケーション２０５は、仮想アシスタント２１０が利用されていることを示すメッセージを、通信セッションの一部として他の参加者に送信することができる。いくつかの実施形態では、メッセージは、他の参加者にも、仮想アシスタントを利用することを選択するよう促すことができる。
【００６３】
ブロック３１５において、通信アプリケーション２０５は、通信セッションに含まれるメッセージを受信する。例えば、クライアントデバイス１１５ｉのユーザは、通信アプリケーションを使用してメッセージを入力することができる。
【００６４】
ブロック３２０において、仮想アシスタント２１０は、そのメッセージが仮想アシスタント２１０を意図したものであるかを判定する。例えば、仮想アシスタント２１０は、意味解析を使用してメッセージを分析し、メッセージが仮想アシスタント２１０を意図したものか又は通信セッションの他の参加者を意図したものであるかを判定することができる。
【００６５】
ブロック３２０において、仮想アシスタント２１０がメッセージが仮想アシスタント２１０を意図したものであると判定した場合、方法はブロック３２５に続く。ブロック３２５において、仮想アシスタント２１０は、ユーザの要求されたタスクを特定し要求されたタスクを支援する。このメッセージは、仮想アシスタント２１０を意図したものであるため、通信セッションの他の受信者には送信しなくてもよい。
【００６６】
あるいは、ブロック３２０において、仮想アシスタント２１０が、メッセージが仮想アシスタント２１０を意図したものではない（すなわち、メッセージが通信セッションの他の受信者を意図したものである）と判定した場合、方法はブロック３３０に続く。ブロック２２０において、通信アプリケーション２０５は、メッセージを通信セッションの一部として通信セッションの他の参加者に送信する。
【００６７】
仮想アシスタント２１０が、メッセージが仮想アシスタント２１０を意図したものではないと判定した場合、次いでブロック３３５において、仮想アシスタント２１０は、仮想アシスタント２１０が支援できるタスクがあるかどうかを判定する。例えば、仮想アシスタント２１０は、意味解析を使用して、通信セッションに含まれる１つ以上のメッセージを分析して、仮想アシスタント２１０が支援できるタスクがあるかどうかを判定することができる。ブロック３３５において、仮想アシスタントがタスクを特定した場合、方法はブロック３４０に続き、仮想アシスタント２１０がユーザのタスクを支援する。
【００６８】
図４Ａから図４Ｆは、通信セッションの参加者を支援する仮想アシスタントの一例を示す。図４Ａは、複数の参加者間で通信セッション４０５を行うために使用されるクライアントデバイス４００を示す。示されるように、通信セッション４０５は、クライアントデバイス４０５のユーザからのメッセージを受信する通信セッション４０５の参加者を特定する受信者リスト４１０を含む。従って、通信セッション４０５は、３人の参加者：クライアントデバイス４００のユーザ、ブレットとジョエルを有することになる。参加者は、通信セッション４０５を使用して、昼食をどこで食べるか決めようとしている。
【００６９】
図４Ｂは、仮想アシスタント４１５が受信者リスト４１０に含まれることを示し、クライアントデバイス４００のユーザが通信セッション４０５に関して仮想アシスタントを利用することを選択したことを示す。示されるように、クライアントデバイス４００のユーザは、「君たちがここに来るのにどのくらいかかるの？」とメッセージを入力した。
【００７０】
図４Ｃは、仮想アシスタントがタスクを特定して、ユーザの特定されたタスクを支援していることを示すメッセージを、仮想アシスタント４１５が通信セッション４０５の一部として提示したことを示す。この場合、タスクは、通信セッション４０５の他の参加者が昼食のためにいつレストランに到着するかを判定することである。いくつかの実施形態では、仮想アシスタント４１５からのメッセージは、クライアントデバイス４００上のみで提示し、通信セッション４０５の他の参加者のクライアントデバイス上には提示しないことができる。あるいは、いくつかの実施形態では、通信セッション４０５の１人以上の他の参加者のクライアントデバイス上に提示することができる。
【００７１】
図４Ｄは、仮想アシスタント４１５がユーザの位置情報にアクセスする許可を要求していることを示す。このメッセージは、通信セッションの各参加者に提示することができる。ユーザが許可要求を拒否する選択をした場合、仮想アシスタントはユーザの位置情報にアクセスすることができなくなる。ユーザがパーソナルアシスタントにユーザの位置情報へのアクセスを許可する選択をした場合、仮想アシスタント４１５は、位置情報を要求し受信することができる。例えば、仮想アシスタントは、ユーザのクライアントデバイスから位置情報を要求することができる。あるいは、仮想アシスタント４１５は、図１のコンテンツ管理システム１０５などのユーザアカウントを維持するコンテンツ管理システムから位置情報を収集することができる。
【００７２】
図４Ｅは、他の参加者がいつレストランに到着するかを判定するユーザのタスクを完了するメッセージを、仮想アシスタント４１５が通信セッションに入力したことを示す。仮想アシスタント４１５からのメッセージは、通信セッション４０５の一部としてクライアントデバイス４００のユーザにのみ提示することができる。あるいは、仮想アシスタント４１５からのメッセージは、通信セッション４０５の１人以上の他の参加者のクライアントデバイス上に提示することができる。
【００７３】
図４Ｆは、通信セッションの他の参加者の到着推定時刻をユーザに提供する、仮想アシスタント４１５の別の実施形態を示す。示されるように、地図インタフェースは通信セッションの一部として提示され、他の参加者の位置が地図インタフェース上に提示される。
【００７４】
図５Ａから図５Ｄは、通信セッションの参加者を支援してミーティングをスケジュールする仮想アシスタントの一例を示す。図５Ａに示されるように、クライアントデバイス５００のユーザは、２人の他の参加者との通信セッション５０５に参加している。通信セッション５０５の参加者は、遊びの待ち合わせについて話し合っている。参加者リスト５１０に示されるように、仮想アシスタントは、通信セッション５０５に関して利用されていない。
【００７５】
図５Ｂは、仮想アシスタント５１５に宛てられた、クライアントデバイス５００のユーザによって入力されたメッセージを示す。メッセージはさらに、通信セッション５０５の各参加者が昼食のために利用可能である時間を判定するタスクを特定する。このメッセージは、ユーザが、仮想アシスタントを利用し、並びに特定のタスクを提供したいことを示すことができる。
【００７６】
図５Ｃは、仮想アシスタント５１５が通信セッション５０５の参加者リスト５１０に追加され、ユーザが仮想アシスタント５１５を利用することを選択したことを示す。さらに、仮想アシスタントは、通信セッション５０５の一部として投票を提示し、参加者に、彼らにとって最良の時間を選択する機会を提供する。仮想アシスタント５１５は、各参加者から集められたカレンダーデータに基づいて、提示された時間を判定することができる。例えば、仮想アシスタント５１５は、参加者のクライアントデバイスから、あるいは参加者のユーザアカウントを維持するコンテンツ管理システムから、カレンダーデータを収集することができる。提示された時間は、各参加者のカレンダーが予約されていない時間（例えば、各参加者が自由である時間）であってもよい。さらに、いくつかの実施形態では、仮想アシスタント５１５は、提示された時間に対する参加者のカレンダーのそれぞれに一時的な保持を置くことができる。これにより、仮想アシスタント５１５が参加者からの応答を待っている間に、提示された時間が予約されてしまわないことを確実にすることができる。仮想アシスタント５１５は、参加者のクライアントデバイスと通信して、及び／又はコンテンツ管理システムと通信して、参加者のカレンダーデータを編集することによって、この保持を置くことができる。いくつかの実施形態では、一時的な保持は、ミーティングのスケジュールに使用されない場合にその後一時的な保持が除去される有効期限と関連づけることができる。
【００７７】
図５Ｄは、仮想アシスタント５１５が、金曜日の正午から午後１時までがミーティングに最良の時間であると判定し、仮想アシスタント５１５が参加者のカレンダーにランチミーティングを追加したことを示す。
【００７８】
図６Ａから図６Ｅは、仮想アシスタントが、通信セッションの参加者を支援して金融処理を完了する一例を示す。図６Ａに示されるように、クライアントデバイス６００のユーザは、通信セッション６０５の一部としてメッセージを受信する。参加者リスト６１０によって示されるように、仮想アシスタントが利用されている。
【００７９】
図６Ｂは、クライアントデバイス６００のユーザが、通信セッションの一部としてメッセージを入力し、そのメッセージが仮想アシスタント６１５宛であることを示す。さらに、メッセージは、仮想アシスタント６１５がブレットに１０ドル送ることを要求する。このメッセージは、通信セッション６０５の他の参加者ではなく仮想アシスタント６１５を意図しているので、メッセージはクライアントデバイス６００のみで提示され、他の参加者のクライアントデバイスに示されたり又は提示され得ない。
【００８０】
図６Ｃは、仮想アシスタント６１５がユーザの要求に応じてメッセージを入力したことを示す。重ねて、このメッセージは、ユーザのクライアントデバイス６０５上でのみ提示され、通信セッションの他の参加者には示され得ない。
【００８１】
示されるように、仮想アシスタント６１５は、ユーザがお金を送るために使用できる複数の支払オプションをユーザに提示している。提示された支払オプションには、ユーザが利用可能な金融アプリケーション並びに意図された受取人を含めることができる。仮想アシスタント６１５は、それぞれのユーザのクライアントデバイスを検索し、及び／又はそれぞれのユーザのユーザアカウントを維持するコンテンツ管理システムと通信することによって、ユーザ及び意図された受信者が利用可能な金融アプリケーションを特定するデータを収集することができる。
【００８２】
仮想アシスタント６１５はまた、ユーザと意図された受信者の両方によって最もよく使用される金融アプリケーションであってもよい特定の支払オプションを提案する。ユーザは、お金を送るために所望の金融アプリケーションを選択すること並びに支払額及び意図された受取人を確認することができる。
【００８３】
図６Ｄは、仮想アシスタント６１５が、金融処理を完了するために認証情報の提供を要求することができることを示す。例えば、ユーザは、パスワード、指紋などの入力を要求され得る。
【００８４】
図６Ｅは、仮想アシスタント６１５が、資金が金融処理の一部として振り込まれたことを確認するメッセージを提示したことを示す。重ねて、このメッセージは、通信セッション６０５の他の参加者ではなく、ユーザにのみ提示することができる。最後に、資金の受領者は、資金を受け取ったことを確認するメッセージを、通信セッション６０５に入力する。
【００８５】
図７Ａ及び図７Ｂは、可能なシステムの実施形態の例を示す。より適切な実施形態は、本技術を実施する際の当業者には明らかであろう。当業者であれば、他のシステムの実施形態が可能であることも容易に理解するであろう。
【００８６】
図７Ａは、システムの構成要素がバス７０５を使用して互いに電気的に通信する、従来のシステムバスコンピューティングシステムアーキテクチャ７００を示す。例示的なシステム７００は、処理ユニット（ＣＰＵ又はプロセッサ）７１０と、読み出し専用メモリ（ＲＯＭ）７２０及びランダムアクセスメモリ（ＲＡＭ）７２５などのシステムメモリ７１５を含む様々なシステムコンポーネントをプロセッサ７１０に結合するシステムバス７０５とを含む。システム７００は、プロセッサ７１０に直接接続された、プロセッサ７１０に極めて近接した、又はプロセッサ７１０の一部として統合された高速メモリのキャッシュを含むことができる。システム７００は、プロセッサ７１０による迅速なアクセスのために、メモリ７１５及び／又は記憶デバイス７３０からキャッシュ７１２にデータをコピーすることができる。このようにして、キャッシュは、データを待っている間にプロセッサ７１０の遅延を回避する性能向上を提供することができる。これら及び他のモジュールは、様々なアクションを実行するようにプロセッサ７１０を制御することができ、又は制御するように構成することができる。他のシステムメモリ７１５も、同様に使用可能である。メモリ７１５は、異なる性能特性を有する複数の異なるタイプのメモリを含むことができる。プロセッサ７１０は、任意の汎用プロセッサ、及び、ハードウェアモジュール又は記憶デバイス７３０内に記憶されプロセッサ７１０を制御するように構成されたモジュール１（７３２）、モジュール２（７３４）、及びモジュール３（７３６）などの、ソフトウェアモジュール、並びに、ソフトウェア命令が実際のプロセッサ設計に組み込まれた専用プロセッサを含むことができる。プロセッサ７１０は、本質的に、複数のコア又はプロセッサ、バス、メモリコントローラ、キャッシュなどを含む、完全な自己完結型コンピューティングシステムであってもよい。マルチコアプロセッサは、対称でも非対称でもよい。
【００８７】
ユーザのコンピューティングデバイス７００との相互作用を可能にするために、入力デバイス７４５は、スピーチ用のマイクロフォン、ジェスチャ又はグラフィック入力用のタッチ感知スクリーン、キーボード、マウス、モーション入力、スピーチなどの、任意の数の入力メカニズムを表すことができる。出力デバイス７３５はまた、当業者に知られているいくつかの出力機構のうちの１つ以上であってもよい。一部の実例では、多モードシステムにより、ユーザが複数のタイプの入力を提供してコンピューティングデバイス７００と通信することが可能となる。通信インタフェース７４０は、ユーザ入力及びシステム出力を、全体的に統制及び管理することができる。いずれかの特定のハードウェア構成上で動作することに対する制限は存在せず、それゆえ、本明細書での基本的機構は、改善されたハードウェア又はファームウェアの構成が開発されるにつれ、それらの構成に容易に置き換えることができる。
【００８８】
記憶デバイス７３０は、不揮発性メモリであり、ハードディスク又は、磁気カセット、フラッシュメモリカード、ソリッドステートメモリ装置、デジタル多用途ディスク、カートリッジ、ランダムアクセスメモリ（ＲＡＭ）７２５、読み出し専用メモリ（ＲＯＭ）７２０、及びそれらの混成物などの、コンピュータによってアクセス可能なデータを記憶できる他のタイプのコンピュータ可読媒体とすることができる。
【００８９】
記憶デバイス７３０は、プロセッサ７１０を制御するためのソフトウェアモジュール７３２、７３４、７３６を含むことができる。他のハードウェア又はソフトウェアモジュールも想到される。記憶デバイス７３０は、システムバス７０５に接続することができる。一態様では、特有の機能を実行するハードウェアモジュールは、その機能を実行するために、プロセッサ７１０、バス７０５、ディスプレイ７３５などの必須のハードウェア構成要素に関連する、コンピュータ可読媒体内に記憶されたソフトウェア構成要素を含むことができる。
【００９０】
図７Ｂは、記載した方法を実行し、グラフィカルユーザインタフェース（ＧＵＩ）を生成し表示する際に使用できるチップセットアーキテクチャを有するコンピュータシステム７５０を示す。コンピュータシステム７５０は、開示された技術を実施するために使用できるコンピュータハードウェア、ソフトウェア、及びファームウェアの一例である。システム７５０は、特定された計算を実行するように構成されたソフトウェア、ファームウェア、及びハードウェアを実行できる任意の数の物理的及び／又は論理的に別個のリソースを表すプロセッサ７５５を含むことができる。プロセッサ７５５は、プロセッサ７５５への入力及びプロセッサ７５５からの出力を制御できるチップセット７６０と通信することができる。この例では、チップセット７６０は、ディスプレイなどの出力７６５に情報を出力し、例えば磁気媒体及びソリッドステート媒体を含み得る記憶デバイス７７０に情報を読み書きすることができる。チップセット７６０はまた、ＲＡＭ７７５からデータを読み取り、及びＲＡＭ７７５にデータを書き込むことができる。様々なユーザインタフェース構成要素７８５とインタフェースするブリッジ７８０が、チップセット７６０とインタフェースするために提供することができる。そのようなユーザインタフェース構成要素７８５は、キーボード、マイクロフォン、タッチ検出及び処理回路、マウスなどのポインティング装置、などを含むことができる。一般に、システム７５０への入力は、機械が生成した及び／又は人間が生成した様々なソースのいずれかから生じ得る。
【００９１】
チップセット７６０はまた、異なる物理的インタフェースを有し得る１つ以上の通信インタフェース７９０とインタフェースすることができる。そのような通信インタフェースは、有線及び無線のローカルエリアネットワーク、ブロードバンド無線ネットワークのためのインタフェース、並びにパーソナルエリアネットワークを含むことができる。本明細書で開示されたＧＵＩを生成、表示、及び使用する方法のいくつかのアプリケーションは、順序付けられたデータセットを物理的インタフェースを通じて受信することを含み、又は記憶装置７７０又は７７５に記憶されたデータを解析するプロセッサ７５５によって機械自体が生成することができる。さらに、機械は、ユーザインタフェース構成要素７８５を介してユーザからの入力を受信し、これらの入力をプロセッサ７５５を使用して解釈することによって機能をブラウジングするなどの適切な機能を実行することができる。
【００９２】
例示的システム７００及び７５０は、２つ以上のプロセッサ７１０を有し、又は一緒にネットワーク接続されたコンピューティングデバイスのグループ又はクラスタの一部となることで、より大きな処理能力を提供できることは理解されよう。
【００９３】
説明を明確にするため、いくつかの例では、本技術は、ソフトウェア、又はハードウェアとソフトウェアとの組み合わせで具現化された方法において、装置、装置構成要素、ステップ又はルーチンを備える機能ブロックを含む個々の機能ブロックを含むように提示することができる。
【００９４】
いくつかの実施形態では、コンピュータ可読記憶デバイス、媒体、及びメモリは、ビットストリームなどを含むケーブル又は無線信号を含むことができる。しかしながら、言及すると、非一時的なコンピュータ可読記憶媒体は、エネルギー、搬送波信号、電磁波、及び信号それ自体などの媒体を明示的に排除する。
【００９５】
上述の例による方法は、記憶されたか、さもなければコンピュータ可読媒体から利用可能なコンピュータ実行可能命令を使用して実施することができる。そのような命令は、例えば、汎用コンピュータ、専用コンピュータ、又は専用処理装置に、特定の機能若しくは機能グループを実行させるか、さもなければ構成する、命令及びデータを備えることができる。使用されるコンピュータリソースの一部は、ネットワークを介してアクセス可能である。コンピュータ実行可能命令は、例えば、バイナリや、アセンブリ言語、ファームウェア、又はソースコードのような中間フォーマット命令であってもよい。命令、記述された例による方法の間に利用される情報、及び／又は作成される情報を記憶するために使用され得るコンピュータ可読媒体の例としては、磁気又は光学ディスク、フラッシュメモリ、不揮発性メモリを備えたＵＳＢ装置、ネットワーク記憶デバイスなどが挙げられる。
【００９６】
これらの開示による方法を実行する装置は、ハードウェア、ファームウェア及び／又はソフトウェアを備えることができ、様々なフォームファクタのいずれかを採ることができる。そのようなフォームファクタの典型的な例には、ラップトップ、スマートフォン、小型フォームファクタのパーソナルコンピュータ、パーソナルデジタルアシスタントなどを含む。本明細書に記載される機能はまた、周辺機器又はアドインカードに組み込むことができる。このような機能はまた、更なる例として、単一の装置で実行される異なるチップ又は異なるプロセス間の回路基板上に実施することができる。
【００９７】
命令、そのような命令を伝達するための媒体、それらを実行するためのコンピューティング資源、及びそのようなコンピューティング資源をサポートする他の構造は、これらの開示に記載された機能を提供するための手段である。
【００９８】
添付の特許請求の範囲内の態様を説明するために様々な例及び他の情報が使用されたが、当業者がこれらの例を使用して多種多様な実施を導き出すことができるよう、そのような例における特別の特徴又は配置に基づいて、特許請求の範囲のいかなる限定も意味するものとすべきではない。さらに、いくつかの主題は、構造的特徴及び／又は方法ステップの例に特化した言語で説明されてきたが、添付の特許請求の範囲に定義された主題は必ずしもこれらの記載された特徴又は動作に限定されないことを理解されたい。例えば、そのような機能は、異なって供給されてもよいし、本明細書で特定されたもの以外の構成要素で実行されてもよい。むしろ、記載された特徴及びステップは、添付の特許請求の範囲内のシステム及び方法の構成要素の例として開示される。
【図１】
0006559254.tif 000002
【図２】
0006559254.tif 000003
【図３】
0006559254.tif 000004
【図４Ａ】
0006559254.tif 000005
【図４Ｂ】
0006559254.tif 000006
【図４Ｃ】
0006559254.tif 000007
【図４Ｄ】
0006559254.tif 000008
【図４Ｅ】
0006559254.tif 000009
【図４Ｆ】
0006559254.tif 000010
【図５Ａ】
0006559254.tif 000011
【図５Ｂ】
0006559254.tif 000012
【図５Ｃ】
0006559254.tif 000013
【図５Ｄ】
0006559254.tif 000014
【図６Ａ】
0006559254.tif 000015
【図６Ｂ】
0006559254.tif 000016
【図６Ｃ】
0006559254.tif 000017
【図６Ｄ】
0006559254.tif 000018
【図６Ｅ】
0006559254.tif 000019
【図７Ａ】
0006559254.tif 000020
【図７Ｂ】
0006559254.tif 000021