(58)【調査した分野】(Int.Cl.,DB名)
前記収集されたコンテンツの前記識別されたサブセットを報告するステップが、前記収集されたコンテンツの前記識別されたサブセットを、前記第1のクライアントとは異なるタイプのデバイスである第2のクライアントに送信するステップを含み、
前記第1のクライアントと前記第2のクライアントが前記第1のユーザーに関連付けられる、請求項1又は2に記載の方法。
【発明を実施するための形態】
【0010】
[0023]ユーザーが興味を持っているトピックおよび場所、ユーザーのソーシャルネットワーク内の人々、ユーザーのデモグラフィックおよびブラウジング履歴、ならびにユーザーがいる場所、ユーザーが一緒にいる人、およびユーザーがしていることについてのコンテキスト情報を学習して識別するシステムが開示される。クラウド(たとえば、インターネット)に接続されたサービスは、その情報を常に評価して、ユーザーが興味を示すと思われるインターネット(または他のソース)上で利用できる関連コンテンツを収集する。収集された情報は、ユーザーのコンテキストに基づいてフィルタリングされる。このフィルタリングされた情報は、ユーザーが操作する任意のデバイス上でユーザーエクスペリエンスの一部としてユーザーにプッシュされる。ユーザーエクスペリエンスはスクリーンによって異なる場合があるが、表示するデータは同じである(またはほぼ同じである)。システムは、多くの異なるタイプのサイトからコンテンツが収集され、コンテキストに基づいて自動的にフィルタリングされ、ユーザーの異なるタイプのコンピューティングデバイスの多くとの対話に基づいてユーザーに提供されるという点で、他のデータ発見システムよりも優れた利点を提供する。
【0011】
[0024]現在のコンテキストに基づいて、ユーザーが関心を持っている人々および物事についての最も関連するおよび現在の情報を自動的かつ継続的に発見および集約して、その情報を、ユーザーによって操作される様々な物理的デバイスのうちのいずれかのユーザーインターフェース上で遍在的にユーザーに報告するシステムが開示される。
図1は、このようなシステムを説明する高レベルの流れ図を提供する。
図1の処理のステップ2で、システムはユーザーにとって興味深い情報(たとえば、ユーザーが関心を持っている人々および物事についての現在の情報)を自動的かつ常に収集する。ステップ4で、システムは、それぞれのユーザーおよび彼らのコンテキストについての知識に基づいて、収集された情報を自動的かつ常に評価およびフィルタリングする。ステップ6で、ユーザーにとって興味があるとシステムが決定した情報がユーザーに報告される(たとえば、プッシュされる)。ステップ8で、システムはその情報に関するユーザー要求に応答する(ユーザーがこのような要求をした場合)。たとえば、ユーザーが報告されたことについてのさらなる情報を要求することもあり、ユーザーが報告されたトピックについてのさらなる情報を要求することもある。たとえば、ユーザーが購入したことがある特定の対象が近隣の店舗で入手可能であることをシステムが報告すると、ユーザーはその店舗への道順および営業時間などのさらなる情報を要求する場合がある。次いで、システムはその店舗についての関連情報とともに、地図および/または道順を提供する。
【0012】
[0025]以下の例を考察する。第1の女性がバスに乗っており、彼女のモバイルコンピューティングデバイス(たとえば、セルラー式電話、タブレット、ラップトップ等)でビデオを視聴している。ビデオを視聴している間、第1の女性は、バスの車内の通路の反対側に座っている第2の女性が履いている、彼女が好きな靴に気付く。第1の女性は、第2の女性に気付かれずに、彼女のモバイルコンピューティングデバイスを使用してその靴の写真を撮影する。その写真は、本明細書に記載のシステムに提供される。システムはその靴の正確な型およびモデル、ならびにその靴を購入する場所を識別する。その情報は全て、第1の女性に彼女のモバイルコンピューティングデバイス上で提供される。次いで、第1の女性はビデオの視聴を再開する。後に、バスがデパートメントストアーに近づくと、システムは、(GPS、または他のトラッキング技術を使用して)第1の女性がデパートメントストアーの近くにいること、およびそのデパートメントストアーで、興味がある靴のセールが行われていることを識別する。モバイルコンピューティングデバイスは、第1の女性に警告を表示する(または警告を鳴らす)。第1の女性が警告を選択する(たとえば、アイコンをタップする、ボタンをプッシュする等)と、第1の女性のコンピューティングデバイスのディスプレイスクリーン上に、近隣の店舗にて、彼女が興味を持っている靴の1日セールが行われていることを示すメッセージが提供される。この情報に応答して、第1の女性は適切なバス停でバスを降りて、靴を購入する。この女性は満足する。
【0013】
[0026]他の例では、バンドで演奏する第1の男性が劇場でショーを行っている。彼は、ソーシャルネットワーキングページ上で彼のショーを開示する。本明細書に記載のサービスは、そのショーの開示を取り上げて、その情報を第1の男性とつながりがある全てのユーザーに提供する。彼らが第1の男性のソーシャルネットワーキングページを訪れるかどうかは問わない。たとえば、第1の男性の友人が在宅してソファに座っており、第1の男性が今夜劇場で演奏するという警告を彼女の電話で受信する。このシステムは、その友人に、第2の友人がその劇場にいて、ショーのライブビデオをストリーミングすることも告げるので、彼女はより多くのデータを求めてリンクをクリックして、ライブビデオを取得する。彼女がショーからライブビデオをストリーミングしているとわかると、システムは彼女が公共交通機関(知られている、彼女の好みの移動方法)を使用してショーに行くことができる方法をすぐに計算して、その情報を彼女のセルラー式電話上で自動的に彼女に提供する。それに応じて女性はショーに行き、退屈な夜が回避される。
【0014】
[0027]次に、上述の機能を実行できるシステムの一実施形態のさらなる詳細を提供する。
図2は、本明細書に記載の機能を実行するために使用されうるコンポーネントの一実施形態を表すブロック図である。
図2のブロック図は、インターネット、他のグローバルネットワーク、あるいは他のタイプのネットワークまたは通信手段でよいクラウド10を示している。コンピューティングデバイスのセットがクラウド10を介して他のコンポーネントと通信している。これらのコンピューティングデバイスは、セルラー式電話12、テレビ(またはセットトップボックス)14、デスクトップコンピューティングデバイス16、モバイルコンピューティングデバイス18、ゲーム機20、および自動車22を含む。コンピューティングデバイス12〜22は、特定のユーザーによって操作されうる複数のコンピューティングデバイスの例である。他のコンピューティングデバイスも、本明細書に記載の技術で使用されうる。ユーザーは、デバイス12〜22のうちのいずれかを使用して、クラウド10を介して様々なエンティティと対話できる。
【0015】
[0028]やはりクラウド10と通信しているのはシステム30であり、現在のコンテキストに基づいて、ユーザーが関心を持っている人々および物事についての最も関連するおよび現在の情報を自動的かつ継続的に発見および集約して、その情報をユーザーのデバイス12〜22のうちのいずれかのユーザーインターフェース上で遍在的にユーザーに報告する。一実施形態では、システム30は1つまたは複数のサーバーを含む。システム30を実装するために使用されるサーバーの数は要件ではなく、サーバーの帯域幅、需要、性能、および実装固有の他の要因に基づく。ある例では、システム30は複数のサーバーファームによって実装される。
図2のシステムは、友人および家族のデバイス42、44、46、および48も示している。これらは、ユーザーの友人または使用の家族によって使用される任意のコンピューティングデバイス(たとえば、セルラー式電話、テレビ、デスクトップコンピューティングデバイス、モバイルコンピューティングデバイス、ゲーム機、自動車等)でよい。
図2には、4つの友人/家族のデバイスが示されているが、5つ以上または3つ以下の家族デバイスが使用されてもよい。ユーザーには、ユーザーが興味を持っている多くの友人および家族がいることが考えられる。したがって、本明細書の議論に関連する友人/家族のデバイスが、4つよりもさらに多い場合がある。もう1つの留意すべき点は、
図2はある特定のユーザーに関連するデバイス(ユーザーのデバイス、およびユーザーの友人/家族のデバイス)を示していることである。しかし、実装されたシステムは、多くのユーザーの(たとえば、数千人のユーザーの)デバイスと通信している可能性が高い。
【0016】
[0029]操作中、ユーザーは様々なタスク(たとえば、仕事、娯楽、社交等)を実行するために、任意のデバイス12〜22を(別の時間に、または同時に)使用する。これらのデバイスを操作している間に、ユーザーは興味のあるトピックを示し、これらのデバイス内のソフトウェアが、ユーザーについてのコンテキスト情報を(手動または自動で)検知する。また、システムはユーザーの行動に基づいて興味のあるトピックを検知する。ある人が野球のウェブサイトをよく見る場合、システムはその人が野球を好きであると仮定できる。興味のあるトピックについての情報およびコンテキストがシステム30に送信され、システム30は受信した情報を使用して、デバイス12〜22のうちのいずれかを介してユーザーについてのデータを識別するために、データをさらに検索、集約、および/またはフィルタリングする。システム30に送信された情報は、ユーザーについてのデジタル履歴を作成するためにも使用される。さらに、システムをより賢くするために使用されるので、システムはユーザーについてより多くのことを学習して、プッシュされる情報の関連性を改善できる。
図3は、ユーザーについての関連するおよび現在の情報を自動的かつ継続的に発見、集約、およびフィルタリングできるようにするソフトウェアコンポーネントの一実施形態を表すブロック図である。
図3は、ユーザーに関連付けられるユーザーデバイス60および66を示しており、それは任意のデバイス12〜22(ならびに他のコンピューティングデバイス)でよい。
図3は2つのユーザーデバイスだけを示しているが、システムは3つ以上のユーザーデバイスと連絡を取り合っていることが考えられる。それぞれのユーザーデバイスはクライアントソフトウェアモジュール(たとえば、ユーザーデバイス60上のクライアントモジュール62、およびユーザーデバイス66上のクライアントモジュール68)を有し、それらはシステム58のインターフェースソフトウェア72と通信している。インターフェースソフトウェア72は、クライアントモジュールと通信するために使用される。システム58は集約システム30の例示的な一実施形態である。
【0017】
[0030]システム58は、マグネット74、コントローラー76、リコメンデーションエンジン78、および検索エンジン80も含む。マグネット74は、興味のあるトピック(たとえば、人、場所、または物事)についての情報を自動的かつ継続的に収集するソフトウェア処理である。たとえば、マグネットはシード(たとえば、トピックまたは特定のコンテンツ)に関連するコンテンツを(クラウド10を介して)探す。たとえば、シードトピック(たとえば、靴のタイプ、音楽グループ、対象等)がマグネットに提供されると、マグネットはインターネット(または他のソース)を検索して、そのシードに関連する利用可能な情報を見つける。マグネットが一般的なインターネット検索エンジンと異なる点は、マグネットは持続的で、マグネットがその人について知っていることに基づいて個人専用にされており、いくつかのコンテキスト上の側面を有し、他のマグネットと対話でき、パブリックおよびプライベートインデックスの両方から多くのタイプのコンテンツ(ゲーム、音楽、ツイート)を表示でき、返されたコンテンツがコンテキストを有する(場所を返す、およびそこには他に誰がいるかを言う)ことである。
【0018】
[0031]マグネットは、(特定のトピックについての情報を取得するために)マグネットと対話するためだけに自身のユーザーインターフェースを有することができる。たとえば、ユーザーはマグネットの結果をセットアップ、構成、および見るために、ユーザーインターフェース(たとえば、タッチスクリーン)を介してマグネットと対話できる。ユーザーが互いに近くにある(たとえば、ユーザーインターフェース上の)2つのマグネットをプルすると、それらは互いに影響し合う。たとえば、ある人がタッチスクリーンディスプレイ上でニューヨークマグネットの近くにあるレストランマグネットをプルすると、それに応答して、2つのマグネットが対話して、検索されているトピックの共通部分(たとえば、ニューヨークにあるレストラン)を出力する。
【0019】
[0032]マグネットは「枝刈りする(取り除く、prune)」こともできる。ユーザーは、ある歌手についてのマグネットを、ファッション、音楽、およびゴシップは表示するが、刑務所関連は表示しないように個人専用にすることができる。
【0020】
[0033]一実施形態では、マグネットは、ある人、およびその人のコンテキスト用にカスタマイズされた同様の粒子を引き付ける仮想オブジェクトである。マグネットは、トピックまたは興味を中心としている。マグネットはそのトピックに関連し、マグネットを所有する人のプロファイル、および彼らの現在のコンテキスト(時間、位置、デバイス、一緒にいる人)に基づいてフィルタリングおよび優先順位付けをされた粒子の集合を引き付ける。
【0021】
[0034]粒子は、意見または提案である、意見粒子は、「株は現在下がっている」、または「母の誕生日は明日である」などの少量のテキスト情報で構成される。提案粒子は、「カルマクラブDJナイト」または「Halo 2」などのいくつかのデジタルコンテンツへのリンクで構成される。提案粒子は、あなたをどこかへ送る(すなわち、カルマイベントの全詳細を見つける、またはそのゲームで遊ぶ)。全ての粒子は作用されうる。ユーザーは、粒子を磁化する、粒子についてのフィードバックを与える、粒子を隠す、または保存することができる。粒子は値および動作を有することができる。値の例には、実際のコンテンツへのポインタ、メタデータ(タイプ、フォーマット、サムネイル)、活力(pizzazz)(関連性しきい値を超えて、活力を取得し、注目を集める)、および関連性(システムが関連性を見つけ出して、これらの値を適用する)がある。動作の例には、「コンテンツに移動する」、「この粒子を磁化して(同様の粒子を引き付けて、要するに一時的マグネットにする」、「コンテンツについてのフィードバック(賛成、反対)を与える」、「コンテンツを隠す(コンテンツを消し去る)」、および「コンテンツにピンを指し、戻ってこられるようにする」がある。他の値および動作も含むことができる。マグネットは、特定の主題または興味に関連する粒子を引き付ける。デジタル履歴は、ある人が過去のいくつかの時点で動作を行った、または閲覧した粒子の軌跡である。集約システム30は、現在のコンテキスト(位置、時間、一緒にいる人、デバイス、アクティビティ、意図等)に基づいて最も関連する粒子を示す。
【0022】
[0035]再び
図3を参照すると、クラウド10を介して利用可能な様々なソースを検索するために検索エンジン80が使用されている。一実施形態では、マグネット74は検索エンジン80を使用して検索する。他の実施形態では、マグネット74および検索エンジン80は単独で情報を検索する。リコメンデーションエンジン78は、マグネット74および検索エンジン80からの結果に基づいて、情報のリコメンデーションをユーザーに提供する。
【0023】
[0036]コントローラー76は、インターフェース72、マグネット74、リコメンデーションエンジン78、および検索エンジン80の動作を調整する中央脳(central brain)の機能を果たす。操作中、興味のあるトピックおよびコンテキスト情報がインターフェース72で受信されて、コントローラー76に提供される。一実施形態では、コントローラー76は、さらなるデータを取得するために、および/または既に見つけたデータをフィルタリングするために、トピック/およびまたはコンテキスト情報をマグネット74、リコメンデーションエンジン78、および検索エンジン80に提供する。いくつかの実施形態では、マグネット74、リコメンデーションエンジン78、および検索エンジン80が全てのデータをコントローラー74に提供して、コントローラー74がコンテキスト情報に基づいてそのデータをフィルタリングして、インターフェース72を介してフィルタリングの結果を適切なクライアントモジュール(62または68)に提供する。ある状況では、情報は、コンテキスト情報をシステム58に提供したのと同じデバイス/クライアントでユーザーに報告される。他の状況では、コンテキスト情報がユーザーに関連付けられる第1デバイス(たとえば、デバイス60)からシステム30に提供され、ユーザーが作業しているデバイスを変更したか、あるいは第2のデバイスの方が情報を報告するためにより適したプラットフォームであるため、システム30からの情報がユーザーに関連付けられる第2のデバイス(たとえば、デバイス66)にプッシュされる。
【0024】
[0037]一実施形態では、システム30を作成する(または操作する)ソフトウェア開発者は、クライアントモジュール62および68も作成(または配布)する。他の実施形態では、多くの異なるエンティティがシステム30と対話できるクライアントモジュールを開発できるように、システム30はアプリケーションプログラムインターフェース(API)を含む。
【0025】
[0038]システム30が報告するべき情報を有していることをユーザーに警告するための多くの方法がある。
図4A〜4Fは、ユーザーのための情報がないことを報告できるクライアントデバイスのユーザーインターフェースの様々な実施形態を表している。たとえば、
図4Aは、2つのウインドウ102および104を表示するディスプレイを備えたモバイルコンピューティングデバイス100を示している。ユーザーはウインドウ102でビデオを視聴している。インジケーター(たとえば、アイコン)のセットがウインドウ104に表示されている。それぞれのアイコンは、様々なタイプのコンテンツを表している。たとえば、インジケーターSはショッピングに関連するコンテンツを表し、インジケーターEは娯楽に関連するコンテンツを表し、インジケーターFは家族および/または友人に関連するコンテンツを表し、インジケーターWは仕事に関連するコンテンツを表し、インジケーターNはニュースに関連するコンテンツを表し、インジケーターOは他のタイプのコンテンツを表している。システム30がコンテンツをデバイス100にプッシュすると、適切なインジケーター(たとえば、S、E、F、W、N、またはO)が、そのカテゴリについて新しいコンテンツがプッシュされたことを示すために強調される。たとえば、
図4Aは、Fをボールドにして下線を付けることによって、Fが強調されていることを示している。ユーザーは、新たにプッシュされたコンテンツを示すウインドウを表示するために「F」をタップできる
[0039]
図4Bは、ビデオを表示するウインドウ112を備えたモバイルコンピューティングデバイス110を示している。ビデオを表示する間、システム30は新しいコンテンツをデバイス100にプッシュする。
図4Aに表されるようにインジケーターのセットを表示するのではなく、新しいコンテンツがビデオ上のウインドウ114に自動的に表示される(「あなたの現在の位置から3ブロック離れた店舗Yで、ブランドXの靴がセール中である」)。
【0026】
[0040]
図4Cは、ビデオを表示するウインドウ118を備えたモバイルコンピューティングデバイス116を含む、他の実施形態を示している。システム30によってモバイルコンピューティングデバイス116にコンテンツがプッシュされると、ディスプレイスクリーンの一部にインジケーター120が表示される。ユーザーはインジケーター120をタップでき、新しいコンテンツを示すウインドウ(ウインドウ114と類似している)が表示される。
【0027】
[0041]
図4Dは、アンロックスクリーン124を備えたモバイルコンピューティングデバイス122を含む、他の実施形態を示している。たとえば、コンピューティングデバイスが長時間使用されないか、あるいはスリープモードまたは休止モードにされている場合、ユーザーがデバイスを再び活性化したい時にシステムはアンロックスクリーンに入る。ユーザーは、デバイスを操作するために、デバイスをアンロックスクリーンからアンロックする必要がある。たとえば、アンロックスクリーン124は、デバイス122をアンロックするために左から右に動かされるスライダーを含む。ユーザーがアンロックスクリーンにアクセスすると、システム30からデバイス122にプッシュされた最新のコンテンツがウインドウ126に表示される。同様に、テレビは、テレビが最初に電源を入れられた時、またはショー/映画の合間に、システム30からプッシュされた最新のコンテンツを表示するように構成されうる。
【0028】
[0042]
図4Eは、2つのウインドウ132および134を表示するディスプレイを備えたモバイルコンピューティングデバイス130を示している。ユーザーはウインドウ132でビデオを視聴している。アイコンのセットがウインドウ134に表示されている。それぞれのアイコンは、現在の活動の人々、場所、または物事(興味がある事)を表している。
図4Eはアイコンを四角で示しているが、アイコンは人々、場所、または物事を表す画像でもよい。たとえば、友人を表すアイコンは、その友人のサムネイル写真でよい。バンドを表すアイコンは、そのバンドのロゴでよい。
【0029】
[0043]
図4Fは、ディスプレイ142を備えたモバイルコンピューティングデバイス140を示している。ディスプレイ142は、タッチスクリーンでもよく、他のタイプのディスプレイでもよい。
図4Fに表されるように、ディスプレイ142はレーダーのようなスクリーンを示している。レーダー上に印をつけられているのは、システム30が新しい情報を配信した人々、場所、または物事を表す丸およびテキストである。Uはユーザーを表す。Uにより近いアイテムほど、システム30がより関連性が高いと考えるアイテムである。
【0030】
[0044]
図4A〜4Eは、新しいコンテンツがシステム30からモバイルコンピューティングデバイスにプッシュされたことをユーザーに警告する、6つの例を提供する。これらは、可能なユーザーインターフェースの例の小さなセットにすぎない。本明細書に記載の技術のために、特定のユーザーインターフェースは必要ない。本明細書に記載の技術で、多くの異なるタイプのユーザーインターフェースを使用できる。たとえば、他の実施形態は、テキストメッセージ警告を送信すること、または「ティッカー」上に何かをポップアップすることを含み、それは見つけられた興味のあるアイテムのうちのいくつかを表示する、バックグラウンドで実行する目立たないUIである。さらに、モバイルコンピューティングデバイスにプッシュされた情報の複数のビュー、タイムラインビュー、地図ビュー、リストビュー、コラージュビュー等がある場合がある。
【0031】
[0045]
図5Aは、ユーザーについての関連するおよび現在の情報を自動的かつ継続的に発見、集約、およびフィルタリングできるようにするソフトウェアコンポーネントの他の実施形態を表すブロック図である。
図5Aのシステム150は、
図3の集約システム30の他の実施形態である。システム150は、1つまたは複数のコンピューターによって実装されうる。データは、多くの異なるタイプの入力ソース、たとえば、データベース152、センサー154(たとえば、カメラ、温度センサー、GPSセンサー、他の位置センサー等)、ウェブサイト156、イベントストアー158、ニュースソース160、およびウェブサーバー162から、システム150によって取得される。他のソース(たとえば、ソーシャルネットワーキングシステム、通信システム、データウェアハウジングシステム等)も使用できる。これらのソースからのデータは、データを取得して、データをスクラブして、データを再フォーマットして、データを1つまたは複数の適切なスタンディングクエリー166、168、170、...に提供する、1つまたは複数の入力アダプター164に提供される。一実施形態では、スタンディングクエリー166、168、170、...はマグネット74に対応する。スタンディングクエリーがクエリーに関連する情報を識別すると、入力ソースから見つかったものについての情報でデータベースレコードが生成される。この生成されたデータベースレコードは、
図5のシステムについてのイベントである。そのデータベースレコードは、データベース172に格納される。
【0032】
[0046]イベントに応答して、インテリジェント処理モジュール174は、データストアー172内の適切なデータ、ユーザープロファイルデータ176、およびコンテキストデータ178を取得する。ユーザープロファイルデータは、デモグラフィック情報、行動情報等のユーザーについての情報でよい。コンテキストデータは、ユーザーについて、ユーザーの友人/家族について、またはユーザーが興味を持っている人についてなどの現在のコンテキストデータである。コンテキストデータの例には、エンティティの位置、エンティティがしていること、エンティティが対話しているデバイス、エンティティが対話している相手、エンティティが言っていること、エンティティのための時刻、エンティティの現在の人物(たとえば、両親、被雇用者、配偶者、指導者、通勤者等)がある。インテリジェント処理174(コントローラー76の一部)は、上述の情報を評価して、その評価に基づいて特定のユーザーにとって興味のある情報を識別する。
【0033】
[0047]一実施形態では、ユーザープロファイルデータ、ユーザーの履歴、行動(および、可能であれば、電子メール、メッセンジャー、インターネット検索などのプロパティを使用することから知られる、彼らについての全てのこと)などを取り込んで、そのデータを結合してインテリジェント推論を作成する、インテリジェント処理の第2の形式がある。たとえば、推論エンジンは、ある人が金融について詳しく、スポーツには興味がないことがわかるだろう。いくつかのことは、その人がそれについてのマグネットを作成したことによって確実にわかり、他のことは、推論エンジンが考え出す。推論エンジンが、その人について考えるこれらのそれぞれの物事には、その人がそのトピックにどれくらい興味があるとシステムが考えるか、およびその人が興味を持つことの信頼度はどれくらい高いかについての値がある。たとえば、我々が考え出したことというのは、あなたから明確に聞いたことよりも信頼度が低いものである。これは、調べるべきデータが非常に多いので、非同期処理であると考えられる。それは、推論を行うためにユーザーを見渡すという点で、もう一つの側面を有する。たとえば、類似の行動またはプロファイルを有する他の人々が全てあるバンドを好む場合、システムはそのバンドを(低い信頼度で)推薦したくなる場合がある。
【0034】
[0048]ユーザーにとって興味深いであろうとインテリジェント処理174が信じるあらゆる情報が出力アダプター180に送信され、出力アダプター180はそのデータを特定のターゲットモバイルコンピューティングデバイスに適合させる。
図5Aに示されたターゲットは、セルラー式電話186、テレビ(またはセットトップボックス)188、デスクトップコンピューティングデバイス190、モバイルコンピューティングデバイス192、ゲーム機194、および自動車196(ユーザーデバイス12〜22に対応する)を含む。他のターゲットも利用できる。出力アダプター180は、適切なターゲットについてのデータをまとめて、適切なプロトコルを使用して通信する。一実施形態では、入力アダプター164および出力アダプター180はインターフェース72の一部である。さらに、インテリジェント処理174は、1つまたは複数のリコメンデーションエンジン、および/または検索エンジンを利用できる。
【0035】
[0049]
図5Aのコンポーネントのうちの任意の1つまたは複数は、システムが多くの異なるユーザーを同時に処理できるように、オブジェクト指向方法で作成されうる。このような実施形態では、システムは複数のユーザーごとにそれ自体のインスタンスを作成する。単一のインスタンスは、ストリーム処理において中心点または焦点として使用されている、1つまたは複数のモザイクアイデンティティファセットおよび他のコンテキストデータに関連付けられる。一例を挙げると、あるインスタンスはフェイスブックアイデンティティを、他のインスタンスはコーポレートアイデンティティを、および第3のアイデンティティはそれらの組合せを中心とすることができる。あるインスタンスは、異なるファセットのグループをその焦点として構成することもできる。
【0036】
[0050]
図5Bは、ユーザーについての関連するおよび現在の情報を自動的かつ継続的に発見、集約、およびフィルタリングできるようにするソフトウェアコンポーネントの他の実施形態を表すブロック図である。レーダークライアント250以外の
図5Bのコンポーネントは、
図3の集約システム30の他の実施形態である。レーダークライアント250は、ユーザーの任意の物理的コンピューティングデバイス(たとえば、
図2のデバイス12〜22)上で実行しているソフトウェアである。
図5Bは、アプリケーションプログラムインターフェース(API)254を介してレーダーサービス252と通信しているレーダークライアント230を示している。レーダークライアント250はコンテキスト情報(および、任意選択で、ユーザーの興味についての情報)をレーダーサービス252に提供して、ユーザーにとっての興味のある事のリコメンデーションを返答として受信する。受信した、ユーザーにとっての興味のある事のリコメンデーションは、上述のようにユーザーに報告されうる(
図4A〜4Fを参照)。
【0037】
[0051]レーダーサービス252は、リコメンデーションエンジン254、256、258、および260のセットについてのAPIを含み、それぞれが異なるタイプのコンテンツについての異なるタイプのリコメンデーションを作成する。たとえば、あるリコメンデーションエンジンは音楽について、他のリコメンデーションエンジンはショッピングについて、他のリコメンデーションエンジンはパーティーについて、他のリコメンデーションエンジンはレストランについてのリコメンデーションなどを作成できる。システムは、5つ以上のリコメンデーションエンジンを有することができる。レーダーサービス252は、上述のマグネット265、および関連性エンジン264を含む。マグネットは、リコメンデーションエンジンを利用してユーザーのためのコンテンツを識別する。さらに、リコメンデーションエンジンはマグネットの関与なしにリコメンデーションを作成できる。マグネットは、インテリジェンスシステムAPIを使用して、特定のトピックに興味がある特定のユーザーにとって有用であると思われる情報についての大量の知識を取り出す。マグネットは、リコメンデーションエンジンを使用して、特定のトピックについて、特定のユーザーにとって興味のあるリコメンデーションを作成する。リコメンデーションエンジンは、ユーザーのコンテキストおよびインテリジェンスシステムAPIを利用して、現在のコンテキストおよびユーザープロファイルに基づいて、特定のユーザーにとって興味のあるリコメンデーションを作成する。マグネットとリコメンデーションエンジンとの両方によって作成された全ての情報およびリコメンデーションは、次に関連性エンジンによってソートされて、レーダークライアントに提供される。
【0038】
[0052]マグネットは、リコメンデーションエンジンを利用してユーザーについてのコンテンツを識別し、関連性エンジンは、感知した関連性に基づいてコンテンツのそれぞれのアイテムを記録する。一実施形態では、関連性エンジン264は、アイテムコンテンツがユーザーの現在のコンテキストにとってどれくらい適切かに基づいて、数値関連性スコアを提供する。たとえば、レストランリコメンデーションは、午後3時〜5時の間は深夜よりも高い関連性スコアを得ることができる。同様に、サッカーチームについての情報は、サッカーシーズン中はシーズンオフよりも高い関連性スコアを得ることができる。ユーザーが一緒にいる、または会う予定である人についての情報は、他の人についての情報よりも高いスコアを得ることになる。ユーザーが聴いているバンドについての情報は、より高いスコアを得ることになる。ユーザーがたった今写真を撮影した靴についての情報は、より高いスコアを得ることになる。
【0039】
[0053]レーダーサービス252は、API272を介してインテリジェンスシステム270と通信する。インテリジェンスシステム270は、レーダーサービス252にとって利用可能なデータについての情報を作成、取得、および格納する。一実施形態では、レーダーサービス252はコンピューターのセット(たとえば、サーバーファーム)によって実装され、インテリジェンスシステム270は異なるコンピューターのセット(たとえば、サーバーファーム)によって実装される。他の実施形態では、同じコンピューターのうちの1つまたは複数は、レーダーサービス252とインテリジェンスシステム270との両方を実装できる。
【0040】
[0054]インテリジェンスシステム270は、パブリックインデックス274、広告および提示(Ads and Offers)ストアー(またはインデックス)278、プライベートインデックス280、ならびにユーザープロファイルデータ282を含む。パブリックインデックス274は、ワールドワイドウェブ上のウェブサイトのインターネット検索インデックスである。プライベートインデックス280は、ユーザーごとにプライベートサイトの別々のインデックスを含む。たとえば、それぞれのユーザーは、彼らのソーシャルネットワーキングページ、電子メール、連絡先等についての情報を提供するプライベートインデックスを有する。広告および提示ストアーは、全ての広告のリスト(そこへのポインタ、または実際のコンテンツを備えた)を提供して、利用可能な消費者に提示する。ユーザープロファイルデータ282は、ユーザーごとに知られている、および推測された情報を提供する。一実施形態では、ユーザープロファイルデータ282は、ユーザーの行動に基づいて彼らについての情報を推測するソフトウェアである推論エンジンを含む。推論エンジンは、第1のユーザーの動作に基づいて、推論から派生した第1のユーザーの意図を含む、ユーザーについてのコンテキスト情報を提供できる。たとえば、ユーザーがレストランについて読んでいる場合、推論エンジンはユーザーが食事をしたい(たとえば、ユーザーは空腹である)と仮定できる。応答は、過去にユーザーが食べることが観察された食事を提供する近隣のレストランをユーザーに表示することでよい。パブリックインデックス274、広告および提示ストアー(またはインデックス)278、およびプライベートインデックス280は、ワールドワイドウェブ、ソーシャルネットワーキングシステム、コラボレートしたサービス、マルチプレイヤーゲームサービス、検索エンジン、および/あるいは他のネットワークまたはソース(フィード284を参照)上をクロールまたは検索することに基づいて作成される。
【0041】
[0055]操作中、マグネット265は、リコメンデーションエンジン、パブリックインデックス274、広告および提示ストアー(またはインデックス)278、プライベートインデックス280、ならびにユーザープロファイルデータ282を利用して、ユーザーにとって興味のあるコンテンツを識別する。関連性エンジン264は、ユーザーの現在のコンテキストに基づいて見つけられたアイテムについての関連性スコアを提供するために使用される。ユーザーの現在のコンテキストに最も近いコンテンツのアイテムに、より高いスコアが与えられる。より高いスコアを有するアイテムが、レーダーサービス252によってレーダークライアント250にプッシュされる。
【0042】
[0056]
図6は、現在のコンテキストに基づいて、ユーザーが関心を持っている人々および物事についての最も関連するおよび現在の情報を自動的かつ継続的に発見および集約して、現在のコンテキストに基づいてフィルタリングして、その情報をユーザーに報告/プッシュするための上述のシステムの動作の一実施形態を説明する流れ図である。ステップ200で、クライアントモジュールが、ユーザーにとって興味のあるトピックを取得する。クライアントモジュールはこの情報を対話形式で、受動的または能動的に、あるいは上記の組合せで、同時にまたは別の時に取得できる。以下で、興味のあるトピックを取得することについてのより多くの情報を提供する。ステップ202で、ユーザーと対話すること、またはユーザーを観察することに応じて、クライアントモジュールはトピックデータを生成して、そのトピックデータをシステム30の一部であるサーバーに通信する。
【0043】
[0057]ステップ202でトピックを受信することに応答して、ステップ204で、システム30が新しいマグネットを作成するか、既存のマグネット(または他のソフトウェアコンポーネント)をアップデートして、ユーザーがコンテンツの収集を要求することなしに、興味のあるトピックについてのコンテンツを自動的かつ継続的に検索およびフィルタリングする。興味のあるトピックが新しいものである場合、新しい基準を作成して、その新しい基準に関連するコンテンツを求めてインターネットまたは他の領域を検索する処理を開始することによって、新しいマグネットが作成される。ステップ202で受信されたトピックが既存のマグネットの焦点と類似している場合、既存のマグネットを変更して、新しいトピックに基づいてその焦点を修正できる。ステップ206で、マグネットが、マグネットごとのシードに関連するコンテンツを自動的かつ繰り返し検索および収集する。たとえば、マグネットはトピックのうちの1つまたは複数に関連するイベントまたはニュースを識別できる。
図6はステップを特定の順序で示しているが、これらのステップは他の順序で実行されうる。一実施形態では、ステップ206は継続的に実行される。したがって、ステップ206は、
図6の他のステップのうちの多くの前、後、およびその間に実行される。
【0044】
[0058]ステップ208で、1つまたは複数のクライアントモジュールが、それらのクライアントモジュールに関連付けられるユーザーについての、およびユーザーにとって興味のある人々についてのコンテキスト情報を取得する。コンテキスト情報は、対話形式で、受動的または能動的に(同時にまたは別の時に)取得できる。ステップ210で、ステップ208で取得されたコンテキスト情報がシステム30に提供される。たとえば、情報はシステム230の一部であるサーバーに送信される。ステップ212で、システム230が、ステップ210で提供された現在のコンテキスト情報に基づいて、1つまたは複数のマグネットからのコンテンツをフィルタリングする。ユーザーに関連付けられる様々なマグネットが、大量の情報を検索して識別することが考えられる。現在のコンテキスト情報は、その情報をより小さいサブセットにフィルタリングするために使用されうる。たとえば、マグネットが靴についての情報を検索している場合、および現在のコンテキスト情報がユーザーの位置を示す場合、靴についての情報は、ユーザーに地理的に近い店舗で販売されている靴についての情報だけを提供するためにフィルタリングされうる。ステップ214で、普通ならマグネットのうちのいずれによっても取得されないコンテキスト情報に関連するさらなる情報が検索および集約されうる。ステップ216で、ステップ212で(および、可能であればステップ214で)識別された情報が使用されて出力メッセージが作成され、その出力メッセージがユーザーについてのクライアントに送信される。
【0045】
[0059]ユーザーとって能動的である全てのクライアントにコンテンツが送信される。ある例では、興味のある情報を送信した、および/またはコンテキスト情報を送信したクライアントは、現在能動的なクライアントであり、したがって、結果データが同じクライアントに送信される。他の実施形態では、ユーザーは、コンテキスト情報がシステム30に送信されると第1のクライアントデバイスと対話して、返答として結果が報告されると第2のデバイスと対話する。したがって、結果は、全く異なるタイプのデバイスである場合がある、異なるクライアントデバイスに報告される。たとえば、ユーザーは情報がシステム30に送信された時にゲーム機で遊んでいることもあり、情報が返送された時にセルラー式電話を使用していることもある。したがって、情報はユーザーのゲーム機ではなくセルラー式電話用にまとめられる。ステップ218で、ステップ216でデータを受信したクライアントデバイスが、上述のように、または他の何らかの適切な方法で、ステップ218で新しいコンテンツを報告する。
図6のステップの多くについてのより多くの情報は、以下で
図7〜13に関連して提供する。
【0046】
[0060]
図7は、クライアントモジュールが、ユーザーから対話形式でデータを取得して、そのデータをシステム30に提供する処理の一実施形態を表す流れ図である。
図7の処理は、ステップ200でユーザーにとって興味のあるトピックを取得してシステム30に送信するために、またはステップ208でシステム30に通信するためのコンテキスト情報を取得するために使用されうる。
図7のステップ302で、ユーザーは興味のあるコンテンツを明確に表示する。たとえばユーザーは、写真を撮影してその写真についての情報を要求する、ユーザーのコンピューティングデバイス上の既存の写真から写真を選択する、キーワードを言う、キーワードをタイプする、ドキュメント内のキーワードを強調する、コンピューティングデバイス上のコンテンツを選択することなどができる。これらのいずれの場合にも、ユーザーがより多くの情報を望んでいるコンテンツを識別するために、ユーザーは意図的に選んでいる。この情報は、興味のあるトピックでよい。いくつかの実施形態では、情報はコンテキストも提供する。ステップ304で、ステップ302からのコンテンツの表示のコンテンツが、クライアントモジュールからシステム30に(たとえば、システム30を実装する1つまたは複数のサーバーに)送信される。
【0047】
[0061]
図8は、クライアントモジュールが能動的にデータ(たとえば、コンテキストデータまたは興味のあるトピック)を取得する処理の一実施形態を表す流れ図である。この処理は、ステップ200またはステップ208の一部として使用されうる。
図8のステップ240で、クライアントデバイスが、ユーザーによって要求された機能を実行する。たとえば、クライアントデバイスは、ウェブページをロードする、通話を実装する、テキストメッセージを実装する、電子メールを送信する、ゲームで遊ぶ、チャットする、ソーシャルネットワーキングサイトで対話する、または他の何らかの機能を実行する。ステップ342で、クライアントモジュールが、実行されている機能をシステム30に報告する。ステップ344で、クライアントモジュールが、機能の結果もシステム30に報告する。たとえば、ユーザーがゲームで遊んでいる場合、ゲームの結果が報告される。ユーザーが電話をかけている場合、電話の結果(誰に電話をかけたが、およびユーザーがこれまでに連絡を取ったことがあるか)をシステムに報告でき、システムは、ユーザーについてのデジタル履歴を作成するため、およびユーザーについて知っていることを改良して、システムをより賢くし、最終的によりよい結果をシステム30に提供するための両方に、この情報を使用する。
【0048】
[0062]
図9Aは、データ(たとえば、コンテキストデータ、または興味のあるトピック)を受動的に取得するステップの一実施形態を表す流れ図である。
図9Aの処理は、
図6のステップ200または208の一部として実行されうる。たとえば、セルラー式電話はユーザーが誰か、およびユーザーのいる場所がわかる。スマートフォンは、ユーザーが会議中か、およびその会議が何についての会議かがわかる。また、スマートフォンは、スピーチを聞き取って、スピーチのパターンからキーワードを見つけて、それらのキーワードをシステム30に提供して、それらのキーワードに基づいてインターネット検索を実行することができる。したがって、ユーザーおよびユーザーの友人がお気に入りのスポーツチームについて話していると、そのチームについての統計が、セルラー式電話に自動的に表示されうる。クライアントデバイスは、データを取得するためにクライアントデバイスのアプリケーションにアクセスできる。あるいは、クライアントモジュールはクライアントデバイス内の様々なセンサーに直接アクセスできる。ステップ360で、クライアントモジュールが、現在の状態の情報を求めてクライアントデバイスのアプリケーションにアクセスする。たとえば、クライアントデバイスでGPSまたは地図ソフトウェアを実行している場合、クライアントモジュールは位置ソフトウェアにアクセスして、モバイルコンピューティングデバイスの現在の位置を取得できる。同様に、現在受信した電子メールを識別するために、電子メールアプリケーションにアクセスできる。ステップ362で、クライアントモジュールが、現在の状況を求めてクライアントデバイスのセンサーにアクセスする。たとえば、クライアントモジュールは、クライアントデバイスの方位センサー、マイク、光センサー、温度センサー等にアクセスして、ユーザーが現在いる環境の様々な状況を取得できる。ステップ364で、ステップ360からの状態情報およびステップ362からの現在の状況が、クライアントデバイスについての識別情報とともにシステム30に送信される。このドキュメントのために、データが送信されると、通常はメッセージを最初に作成するために使用されて、次いでそのメッセージが送信される。
図7の処理はユーザーとの対話形式で実行される点に留意されたい。しかし、
図8および9Aの処理は、データを送信するというユーザーによる要求なしに自動的に実行される。
【0049】
[0063]
図9Bは、
図9Aの処理の実装形態の一例を提供する。ステップ380で、クライアントモジュールが、スマートフォン内のカレンダーアプリケーションにアクセスする。たとえば、クライアントモジュールが、カレンダーアプリケーションからユーザーは人Aおよび人Bと会議中であることを決定する。しかし、この例では、カレンダーアプリケーション内の会議情報は位置を識別しない。ステップ382で、クライアントモジュールはGPS位置アプリケーションにアクセスして、ユーザーの位置を決定する。ステップ380および382は、
図9Aのステップ360の例である点に留意されたい。ステップ384〜388は、
図9Aのステップ362の例である。ステップ384で、クライアントモジュールが、スマートフォン内の運動センサーにアクセスして、ユーザーが動いているかどうかを決定する。ステップ386で、クライアントモジュールが、スマートフォン内のマイクを利用してユーザーの位置で会話を聴く。デバイスは、検索可能なテキストを作成するために、テキストから音声への変換を実行する。デバイスは、検索可能なテキストからキーワードを識別しようとする。運動の表示とともにステップ386で識別されたキーワード、カレンダーから取得したクライアントデバイスの位置、および会議の表示が、作成されるメッセージに全てまとめられて、システム30に送信される。
【0050】
[0064]
図10は、システム30から結果情報を受信する場合の、クライアントモジュール(たとえば、クライアントモジュール62またはクライアントモジュール68)の動作を表す流れ図である。すなわち、
図7、8、および9Aの処理は、興味のあるトピックおよびコンテキスト情報をクライアントモジュールからシステム30に送信するために使用される。システム30で受信されたその情報に基づいて、システム30は、ユーザーにとって興味のある情報を識別して、その情報をクライアントにプッシュして戻す。
図10の処理は、システム30によってプッシュで戻されたその情報をクライアントモジュールが受信すると、クライアントモジュールによって実行される動作を説明する。
【0051】
[0065]
図10のステップ400で、クライアントモジュールが、ユーザーがコンテンツを要求することなしに、システム30からコンテンツを受信する。ステップ402で、クライアントモジュールが、新しいコンテンツについてユーザーに警告する。ステップ402もやはり、ユーザーがコンテンツを要求することなしに実行される。警告を提供する例は、
図4A〜Fに関連して上述している。ステップ404で、クライアントが、ユーザーから警告の選択を(任意で)受信できる。警告の選択を受信すると、ステップ400で受信された、警告に関連付けられるコンテンツが、ステップ406で表示される。たとえば、ステップ402は、
図4Cの警告120を表示するステップを含み、ステップ406は
図4Bのウインドウ114または
図4Dのウインドウ126を表示するステップを含みうる。ステップ408で、システムが、さらなる情報を求める要求をユーザーから受信できる。たとえば、一実施形態では、ユーザーがさらなる情報を要求するためのリンクとともにコンテンツが表示される。ユーザーがそのリンクを選択すると、次いでステップ410で、システムがさらなる情報を取得または報告する。たとえば、
図4Dのウインドウ126についてユーザーがより多くの情報を望む場合、ユーザーがそのウインドウを選択することに応答して、クライアントモジュールが、より多くの情報が要求されていることをシステム30に知らせることができる。より多くの情報を求める要求に応答して、システム30は、公共交通機関を利用する指示を提供する、運転の指示を提供するなど、ユーザーがセールを行っている店舗にナビゲートするための明確な詳細を提供できる。あるいは、ステップ408は、
図4FのUIに表された丸のうちの1つをユーザーが選択するステップを含みうる。
【0052】
[0066]上述のように、マグネットは、シードに関連するコンテンツを検索するソフトウェア処理である。コンテンツが見つかると、マグネットはデータベースエントリーを作成して、そのデータベースエントリーに関連付けられるイベントを生成する。次いで、データベースエントリーが格納されて、イベントが上述のフィルタリングをトリガする。
図11は、これらのイベントを生成するためにマグネットによって実行される処理の一実施形態を表す流れ図である。
図11のステップ450で、上述のように、ユーザーにとって興味のあるトピックなどのシードトピックに基づいて、1つまたは複数のマグネットがコンテンツを検索する。ステップ452で、マグネットはコンテンツを識別する。ステップ454でイベントが生成され、識別されたコンテンツが使用されてデータベースエントリーが作成され、そのデータベースエントリーが格納される。次いで、上述のように、ユーザーにプッシュされるべきデータを潜在的に識別するためのフィルタリング処理の一部として、そのデータが使用される。
【0053】
[0067]
図7、8、および9Aは、興味のあるトピックおよびユーザーコンテキストデータをシステム30に送信するステップを説明している。
図12は、その情報を受信するステップに応答してシステム30によって実行される処理の他の実施形態を表す流れ図である。たとえば、
図12の処理は、
図6のステップ204および212を実行するステップの一例である。ステップ500で、システムはユーザーAからコンテンツを受信する。ステップ502で、システムはそのコンテンツについてのマグネットが存在するかどうかを決定する。マグネットが存在する場合、ステップ504で、そのマグネットがアップデートされる。マグネットが存在しない場合、ステップ506で、マグネットを作成することが適切かどうかを決定する。適切である場合、ステップ508で、1つまたは複数のマグネットが作成される。たとえば、ステップ500で受信した情報が、検索されるべき興味のあるトピックの場合、マグネットが作成されるべきである。既存のマグネットをアップデートするステップ、1つまたは複数の新しいマグネットを作成するステップ、または新しいマグネットを作成することは適切ではないことを決定するステップの後、ステップ410で、システムが、ステップ500で受信した情報がユーザーAについてのユーザープロファイルをアップデートするために使用されるべきかどうかを決定する。たとえば、ステップ500で受信した情報がユーザーAについてのデモグラフィック情報(年齢、氏名、性別、興味がある事等)を含む場合、ステップ512で、ユーザーAについてのユーザープロファイルがアップデートされるべきである。ステップ514で、システムが、ステップ500で受信したデータのうちのいずれかが、ユーザーAについての現在のコンテキストデータかどうかを決定する。そうである場合、ステップ516で、コンテキストデータストアー178に格納されたユーザーAについてのコンテキストデータがアップデートされる。ステップ518で、システムが、ステップ500で受信したデータのうちのいずれかが、他のユーザー(たとえば、ユーザーA以外のユーザー)についてのコンテキストデータを含むかどうかを決定する。他のユーザーについてのコンテキストデータを含む場合、ステップ520で、他のユーザーについてのコンテキストデータがアップデートされる。ステップ522で、
図12の処理においてデータをアップデートした任意のユーザーについて1つまたは複数のイベントが作成される。したがって、ユーザーAがユーザーBと会話しており、システム30に提供された情報がユーザーAとユーザーBとの位置、およびユーザーAとユーザーBとの間で話された単語を含む場合、ステップ516および520で、ユーザーAとユーザーBとの両方の現在のコンテキストデータがアップデートされて、ユーザーAとユーザーBとについての位置、機能、およびキーワードを示す。
【0054】
[0068]
図11および12は、興味のあるコンテンツが見つかると、マグネットがデータベースイベントを生成するステップを含む処理を説明する。
図13は、イベントの生成に応答して
図5の実施形態においてシステムによって実行される処理の一実施形態を説明する流れ図である。一実施形態では、
図13の処理は、
図5のインテリジェント処理モジュール174(
図3のコントローラー76の一部)によって実行されうる。ステップ600で、ユーザーについてのイベントが受信される(例示のために、ユーザーはユーザーAと呼ばれる)。ステップ602で、イベントについてのコンテンツがアクセスされる。上述のように、イベントが生成されると、データベースレコードが生成されて、データストアー172に格納される。そのデータベースレコードは、ステップ602でアクセスされる。ステップ604で、コンテキストデータ178から、ユーザーAについてのコンテキストデータがアクセスされる。ステップ606で、ユーザーAについてのマグネットデータがアクセスされる。ユーザーAに代わってデータを収集したマグネットのうちのいずれかが、データストアー172にそのデータを格納する。ステップ606で、データの全てまたはサブセットがアクセスされる。ステップ608で、リコメンデーションエンジン78を使用して、上記でアクセスされたイベントデータ、コンテキストデータ、およびマグネットデータに基づいて、ユーザーAのためのリコメンデーションを識別する。さらに、友人および家族であるユーザーについてのコンテキストデータ、あるいはユーザーAにとって重要であるコンテキストデータも、分析に含まれる。ユーザーAは、電子メールアプリケーション、ソーシャルネットワーキングアプリケーション、インスタントメッセージングアプリケーション等の1つまたは複数のアプリケーションにおいて、友人および家族は誰かを表示している場合がある。リコメンデーションが生成されると(ステップ610)、ステップ612で、コンテンツをクライアントデバイスにプッシュすることによって、そのリコメンデーションがユーザーAに送信される。リコメンデーションが識別されない場合(ステップ610)、ユーザーAのクライアントデバイスにどのコンテンツもプッシュされない(ステップ614)。リコメンデーションの例には、店舗でのセール、劇場でのショー、コンサート等をユーザーに知らせることがある。
【0055】
[0069]
図14は、
図2のデバイスのうちのいずれかを実装するための例示的コンピューティングシステム710を表している。
図14のコンピューティングシステム710は、
図3〜5において説明した機能を実行するため、ならびに
図6〜13に関連して本明細書に記載した様々な処理を実行するために使用されうる。コンピューター710のコンポーネントは、これに限定されないが、処理装置720(本明細書に記載の処理を実行できる1つまたは複数のプロセッサー)、システムメモリー730(本明細書に記載の処理を実行するために、1つまたは複数のプロセッサーをプログラムするためのコードを格納できる)、およびシステムメモリーを含む様々なシステムコンポーネントと処理装置720とを結合するシステムバス721を含みうる。システムバス721は、メモリーバスまたはメモリーコントローラー、周辺バス、および様々なバスアーキテクチャのいずれかを使用するローカルバスを含むいくつかのタイプのバス構造のいずれでもよい。例を挙げると、これに限定されないが、このようなアーキテクチャは、業界標準アーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、拡張ISA(EISA)バス、ビデオエレクトロニクススタンダーズアソシエーション(VESA)ローカルバス、メザニンバスとしても知られるペリフェラルコンポーネントインターコネクト(PCI)バス、およびPCIエクスプレスを含む。
【0056】
[0070]コンピューティングシステム710は、一般的に様々なコンピューター可読メディアを含む。コンピューター可読メディアは、コンピューティングシステム710によってアクセスされうる任意の利用可能なメディアでよく、RAM、ROM、EEPROM、フラッシュメモリーまたは他のメモリー技術、CD−ROM、デジタル多用途ディスク(DVD)または他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気記憶装置、あるいは所望の情報を格納するために使用されうる、およびコンピューティングシステム710によってアクセスされうる他の何らかのメディアを含む、揮発性メディアおよび不揮発性メディアと、リムーバブルおよび非リムーバブルメディアとの両方を含む。
【0057】
[0071]システムメモリー730は、読出し専用メモリー(ROM)731およびランダムアクセスメモリー(RAM)732などの、揮発性および/または不揮発性メモリーの形式のコンピュータストレージメディアを含む。たとえばスタートアップの間に、コンピューター710内の要素間の情報の送信に役立つ基本的なルーチンを含む基本的な入力/出力システム733(BIOS)は、通常ROM731に格納されている。通常RAM732は、処理装置720によってすぐにアクセス可能な、および/または現在操作されている、データおよび/またはプログラムモジュールを含む。例を挙げると、これに限定されないが、
図14はオペレーティングシステム734、アプリケーションプログラム735、他のプログラムモジュール736、およびプログラムデータ737を示している。
【0058】
[0072]コンピューター710は、他のリムーバブル/非リムーバブル、揮発性/不揮発性コンピューター記憶メディアも含みうる。例を挙げると、
図14は、非リムーバブルの不揮発性磁気メディアから読み出すか、そこに書き込むハードディスクドライブ740、リムーバブルの不揮発性磁気ディスク752から読み出すか、そこに書き込む磁気ディスクドライブ351、およびCD−ROMまたは他の光メディアなどのリムーバブルの不揮発性光ディスク756から読み出すか、そこに書き込む光ディスクドライブ755を示している。例示的オペレーティング環境で使用されうる、他のリムーバブル/非リムーバブル、揮発性/不揮発性コンピューター記憶メディアには、これに限定されないが、磁気テープカセット、フラッシュメモリーカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートRAM、ソリッドステートROM、および同様のものがある。ハードディスクドライブ741は、一般にインターフェース740などの非リムーバブルメモリーインターフェースを通じてシステムバス721に接続されており、磁気ディスクドライブ751および光ディスクドライブ755は、一般にインターフェース750などのリムーバブルメモリーインターフェースによってシステムバス721に接続されている。
【0059】
[0073]上述の、および
図14に示されるドライブおよびそれらの関連コンピューター記憶メディアは、コンピューター710についてのコンピューター可読命令、データ構造、プログラムモジュール、および他のデータのストレージを提供する。
図14には、たとえばハードディスクドライブ741が、オペレーティングシステム344、アプリケーションプログラム745、他のプログラムモジュール746、およびプログラムデータ747を格納するように示されている。これらのコンポーネントはオペレーティングシステム734、アプリケーションプログラム735、他のプログラムモジュール736、およびプログラムデータ737と同じでもよく、異なってもよい点に留意されたい。この図では、少なくともこれらが異なるコピーであることを示すために、オペレーティングシステム744、アプリケーションプログラム745、他のプログラムモジュール746、およびプログラムデータ747に異なる番号が与えられている。ユーザーは、キーボード762、および一般にマウス、トラックボール、またはタッチパッドなどと呼ばれるポインティングデバイス761などの入力デバイスを通じて、コマンドおよび情報をコンピューターに入力できる。他の入力デバイス(図示せず)は、マイク、ジョイスティック、ゲームパッド、パラボラアンテナ、スキャナー、および同様のものを含みうる。これらおよび他の入力デバイスは、しばしばシステムバスに結合されたユーザー入力インターフェース760を通じて処理装置720に接続されるが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス(USB)などの他のインターフェースおよびバス構造によって接続されてもよい。モニター791または他のタイプのディスプレイデバイスも、ビデオインターフェース790などのインターフェースを介してシステムバス721に接続される。モニターに加えて、コンピューターは、出力周辺インターフェース790を通じて接続されうるスピーカー797およびプリンター796などの他の周辺出力デバイスも含みうる。
【0060】
[0074]コンピューター710は、リモートコンピューター780などの1つまたは複数のリモートコンピューターへの論理的な接続を使用して、ネットワーク化された環境において動作できる。リモートコンピューター780は、パーソナルコンピューター、サーバー、ルーター、ネットワークPC、ピアデバイス、または他の共通ネットワークノードでよく、一般的にコンピューティングデバイス710に関連する上述の要素のうちの多くまたは全てを含むが、
図14には1つのメモリー記憶装置781だけが示されている。
図14に示した論理的な接続は、ローカルエリアネットワーク(LAN)771、およびワイドエリアネットワーク(WAN)773を含むが、他のネットワークも含みうる。このようなネットワーキング環境は、オフィス、企業規模のコンピューターネットワーク、イントラネット、およびインターネットによく見られる。
【0061】
[0075]LANネットワーキング環境で使用される場合、コンピューター710は、ネットワークインターフェースまたはアダプター770を通じてLAN771に接続される。WANネットワーキング環境で使用される場合、コンピューター710は一般的にインターネットなどのWAN773を介して通信を確立するために、モデム772または他の手段を含む。内部にあっても外部にあってもよいモデム772は、ユーザー入力インターフェース760、または他の適切なメカニズムを介して、システムバス721に接続されうる。ネットワーク化された環境では、コンピューター710に関連して示されるプログラムモジュール、またはその一部が、リモートメモリー記憶装置に格納されうる。例を挙げると、これに限定されないが、
図14は、メモリーデバイス781に常駐するものとしてリモートアプリケーションプログラム785を示している。図示したネットワーク接続は例示的なものであり、コンピューター間に通信リンクを確立する他の手段が使用されうることが理解されよう。
【0062】
[0076]本発明の対象を、構造的特徴および/または方法論的行為に特有の文言で説明したが、添付の特許請求の範囲に定められた対象は、上述の特定の特徴または行為に必ずしも限定されないことが理解されるべきである。むしろ、上述の特定の特徴および行為は、特許請求の範囲を実装する例示的形式として開示したにすぎない。本発明の範囲は、本明細書に添付の特許請求の範囲によって定められることが意図される。