(58)【調査した分野】(Int.Cl.,DB名)
前記写真と相互作用することは、前記写真を閲覧すること、前記写真についてコメントすること、および前記写真について「いいね」と表明することのうちの1つ以上を含む、請求項1に記載の方法。
前記1または複数の特徴を抽出する工程は、前記写真に1または複数の顔認識アルゴリズムを適用する工程を含み、前記1または複数の特徴のうちの1つは、前記写真における
検出済みの顔の数である、請求項1に記載の方法。
前記1または複数の特徴を抽出する工程は、前記写真に1または複数の性別認識アルゴリズムを適用する工程を含み、前記1または複数の特徴のうちの1つは、前記写真における人物の性別である、請求項1に記載の方法。
前記1または複数の特徴を抽出する工程は、前記写真に1または複数の顔認識アルゴリズムを適用する工程を含み、前記1または複数の特徴のうちの1つは、前記写真における検出済みの笑顔の数である、請求項1に記載の方法。
前記1または複数の特徴を抽出する工程は、前記写真に1または複数の画像認識アルゴリズムを適用する工程を含み、前記1または複数の特徴のうちの1つは、前記写真における検出済みの人物間の距離である、請求項1に記載の方法。
前記1または複数の特徴を抽出する工程は、前記写真に1または複数の顔認識アルゴリズムを適用する工程を含み、前記1または複数の特徴のうちの1つは、前記写真における検出済みの顔についての大きさである、請求項1に記載の方法。
前記1または複数の特徴を抽出する工程は、前記写真に1または複数の画像認識アルゴリズムを適用する工程を含み、前記1または複数の特徴のうちの1つは、前記写真における検出済みの、カメラを見ている人物の数である、請求項1に記載の方法。
前記写真と相互作用することは、前記写真を閲覧すること、前記写真についてコメントすること、および前記写真について「いいね」と表明することのうちの1つ以上を含む、請求項33に記載のシステム。
前記1または複数の特徴を抽出する前記命令は、前記写真に1または複数の顔認識アルゴリズムを適用する工程を行う命令を含み、前記1または複数の特徴のうちの1つは、前
記写真における検出済みの顔の数である、請求項33に記載のシステム。
前記1または複数の特徴を抽出する前記命令は、前記写真に1または複数の性別認識アルゴリズムを適用する工程を行う命令を含み、前記1または複数の特徴のうちの1つは、前記写真における人物の性別である、請求項33に記載のシステム。
前記1または複数の特徴を抽出する前記命令は、前記写真に1または複数の顔認識アルゴリズムを適用する工程を行う命令を含み、前記1または複数の特徴のうちの1つは、前記写真における検出済みの笑顔の数である、請求項33に記載のシステム。
前記1または複数の特徴を抽出する前記命令は、前記写真に1または複数の画像認識アルゴリズムを適用する工程を行う命令を含み、前記1または複数の特徴のうちの1つは、前記写真における検出済みの人物間の距離である、請求項33に記載のシステム。
前記1または複数の特徴を抽出する前記命令は、前記写真に1または複数の顔認識アルゴリズムを適用する工程を行う命令を含み、前記1または複数の特徴のうちの1つは、前記写真における検出済みの顔についての大きさである、請求項33に記載のシステム。
前記1または複数の特徴を抽出する前記命令は、前記写真に1または複数の画像認識アルゴリズムを適用する工程を行う命令を含み、前記1または複数の特徴のうちの1つは、前記写真における検出済みの、カメラを見ている人物の数である、請求項33に記載のシステム。
【発明を実施するための形態】
【0006】
これらの図は、例示のみの目的で本開示のさまざまな実施形態を示す。本明細書で例示する構造および方法の代替実施形態は本明細書で説明する本発明の原理から逸脱することなく用いられることを、当業者であれば以下の議論から容易に理解するであろう。
【0007】
概要
特定の実施形態は、ソーシャルネットワーキングシステムを含むソーシャルネットワーキング環境に関する。ソーシャルネットワーキングシステムは、そのユーザに、ソーシャルネットワーキングシステムの他のユーザと通信し相互作用する能力を提供する。ユーザは、ソーシャルネットワーキングシステムに参加し、次いで、関係付けを所望する任意の数の他のユーザへのつながりを追加する。ユーザは、ソーシャルネットワークのメンバーになると、自分のページに記事および状況メッセージを投稿することによって、ソーシャルネットワークそのものと相互作用し、他のユーザのページ上の記事にコメントしたり、他のユーザのページに記事を投稿したりすることなどによって他のユーザと相互作用することができ、または、購読しているファンページ、履行するもしくは申し込んだオンライン取引、またはチェックインしたロケーションなどの、ユーザでないエンティティと相互作用することができる。さらに、ユーザは、ソーシャルネットワーキングシステムに写真およびビデオなどのマルチメディアオブジェクトをアップロードして、ソーシャルネットワークの他のユーザと共有することができる。ユーザは、写真またはビデオをイベントページにアップロードする、またはマルチメディアオブジェクト内の個々の物にタグを付けるなど、ソーシャルネットワーク上で明確なアクションを行って、写真をソーシャルネットワークの別の要素と関連付けることができる。特定の実施形態では、ソーシャルネットワーキングシステムは、コンピュータビジョンアルゴリズムによってアップロードされた写真の中で認識されるオブジェクト、ブランド、およびロケーションなどのさまざまな要因に基づいて、ユーザノードとオブジェクトノードの間の非明示的なつながりを作成することができる。
【0008】
本開示では、ソーシャルネットワーキング環境について、ソーシャルグラフ情報を含むソーシャルグラフに関して説明され得る。特定の実施形態では、ソーシャルネットワーキング環境を実装するソーシャルネットワーキング環境の1または複数のコンピューティングシステムは、本明細書で説明するソーシャルネットワーキング環境を実装する際に使用するためのソーシャルグラフ情報を含むデータ構造を含み、これを記憶し、またはこれにアクセスする。ソーシャルネットワークはソーシャルグラフを利用し、ソーシャルグラフは、ソーシャルネットワーキング環境内のユーザおよびコンセプトを表すノード、ならびにそのようなノード間のつながりを定義するまたは表すエッジを含む。
【0009】
特定の実施形態では、ソーシャルグラフ情報は、それぞれのユーザにそれぞれ対応するユーザノードからなる第1のセットと、それぞれのコンセプトにそれぞれ対応するコンセプトノードからなる第2のセットとを含む。本明細書で用いる場合、「ユーザ」は、個人(人間のユーザ)であってもよく、エンティティ(たとえば、企業、会社、またはサードパーティアプリケーション)であってもよく、またはそのようなソーシャルネットワーキング環境と相互作用するもしくはそのようなソーシャルネットワーキング環境上で通信するグループ(たとえば、個人またはエンティティからなる)であってもよい。本明細書で用いる場合、「コンセプト」とは、例を挙げると、スポーツ、スポーツチーム、音楽のジャンル、作曲家、趣味、会社(企業)、エンティティ、グループ、サードパーティアプリケーション、有名人、未登録ユーザである人物などに対する関心、これらについての好み
、またはこれらとのつながりをユーザが宣言するまたは明示することができる実質的にすべてのものを指すことができる。特定の実施形態では、各ノードは、ソーシャルネットワーキング環境内でホストされるまたはアクセス可能な対応するウェブページ(「プロファイルページ」)を有する、これを表す、またはこれによって表される。
【0010】
例として、ユーザノードは、対応するユーザがコンテンツを追加する、宣言する、およびその他の方法で自分の考えを表現することが可能な、対応するユーザプロファイルページを有することができ、コンセプトノードは、複数のユーザが、特にそのコンセプトに関連して、コンテンツを追加する、宣言する、および自分の考えを表現することが可能な、対応するコンセプトプロファイルページ(「ハブ」)を有することができる。特定の実施形態では、ソーシャルグラフ情報は、ソーシャルグラフ内の対応するノードのペア間のつながりをそれぞれ定義するまたは表す複数のエッジをさらに含む。
【0011】
特定の実施形態では、ソーシャルネットワーキングシステムにアップロードされた写真は、画像オブジェクト認識アルゴリズムの対象となる。この画像オブジェクト認識アルゴリズムは、アップロードされた画像を写真オブジェクトデータベースに記憶された画像と比較し、類似のオブジェクトが存在するか否か検索する。オブジェクト検索のための方法は当技術分野において周知であり、周波数領域画像処理、フィルタリング、ウェーブレット解析、特徴抽出、ニューラルネットワークなどの学習アルゴリズム、テクスチャ認識などがありうる。本開示は、一致するオブジェクトを見つけるための任意の種類のコンピュータビジョンアルゴリズムを企図する。本開示は、本願の権利者が所有する米国実用特許出願であって、先だって2011年8月18日に出願された「メディアにおけるオブジェクトをユーザと接続するためのコンピュータ−ビジョンコンテンツ検出(Computer−Vision Content Detection for Connecting Objects in Media to Users)」という名称の米国特許出願第13/212,344号を参照により本願明細書に援用する。
【0012】
本開示は、アップロードされたマルチメディアオブジェクトを、マルチメディアオブジェクトがどのように関っているか予測する生成モデルに基づいて得点付けすることによって、これらのコンセプトをすべてのユーザ、特定のユーザ、またはユーザの特定のセットに拡張する。
【0013】
そのようなソーシャルネットワークプラットフォームのさまざまな部分は、限定ではなく、例として以下でより詳細に説明するように、さまざまなソフトウェアコンポーネントまたは方法が特定の実施形態を実装することを可能にするハードウェアアーキテクチャまたはソフトウェアフレームワークを通じて実装されてもよい。プラットフォームは、1または複数のハードウェアコンポーネントまたはソフトウェアコンポーネントを含むことができ、そのうちの1または複数は、1または複数の統合コンピューティングシステムまたは分散コンピューティングシステムの中に配置されるかまたは具現化されてもよい。加えて、本明細書で用いる場合、「または(もしくは)」は、「および」ならびに「または(もしくは)」を暗示することができる。すなわち、「または(もしくは)」は、明記または暗示しない限り、必ずしも「および」を排除するものではない。
【0014】
図1は、一実施形態による画像に基づくオブジェクト判定システムを含むソーシャルネットワーキングシステムのハイレベルブロック図である。
図1は、ソーシャルネットワーキングシステム100、クライアントデバイス250、無線セルラーネットワーク300、およびサードパーティウェブサイト260を示す。無線セルラーネットワーク300は、複数の通信事業者によって提供される複数の無線セルラーネットワークを表すことを理解されたい。クライアントデバイス250は携帯電話として示されているが、クライアントデバイス250は、携帯電話、ラップトップ、ネットブックタブレット、ケーブルボッ
クス、テレビなどを含む、任意の種類のコンピューティングデバイスを含み得る。クライアントデバイス250は、ネットワーク240へのデータ接続を有する任意のデバイスである。クライアントデバイス250は、ネットワーク240または無線データネットワーク300への直接接続を有する必要はない。たとえば、クライアントデバイス250は、モデムへのブルートゥース接続を有するデジタルカメラであってよい。クライアントデバイス250は、写真、ビデオ、およびオーディオファイルなどの取り込んだマルチメディアオブジェクトを記憶することが可能な1または複数のメモリを有する。
【0015】
ソーシャルネットワーキングシステム100は、本明細書で説明するように、メンバーが互いに通信または相互作用し、コンテンツにアクセスすることを可能にするコンピューティングシステムを含む。ソーシャルネットワーキングシステム100は、職歴、学歴、趣味または好み、ロケーションなどの、略歴、人口学的情報、および他の種類の記述的情報を含む、ソーシャルネットワークのメンバーについて説明するメンバープロファイルを記憶する。ソーシャルネットワーキングシステム100は、異なるメンバー間の1または複数のつながりについて説明するデータをさらに記憶するウェブサイトであってよい。つながり情報は、類似または共通の職歴、グループへの加入、趣味、または学歴を有するメンバーを示すことができる。
【0016】
クライアントデバイス250のユーザは、ウェブブラウザまたはネイティブアプリケーションなどのアプリケーションを通じてソーシャルネットワーキングシステム100と相互作用して、コンテンツのブラウジング、メッセージの投稿および送信、他のユーザから受信したメッセージの検索および記憶、マルチメディアオブジェクトのアップロードなどの動作を実行する。クライアントデバイス250はまた、アプリケーションまたはブラウザも使用して、ソーシャルネットワーキングシステム100内のさまざまなユーザノードおよびハブに対するプロファイル情報を引き出してブラウジングを行うことができる。
【0017】
ソーシャルネットワーキングシステム100は、オブジェクトストア110と、グラフ情報ストア120とを含む。オブジェクトストア110は、ソーシャルネットワーキング環境100内の、またはこれによって表される、ユーザなどのオブジェクトに関する情報を記憶する。グラフ情報ストア120は、オブジェクトストア110内のオブジェクトのつながりに関する情報を記憶する。オブジェクトストア110は、さまざまな記憶領域を含む。ユーザストア111は、ソーシャルネットワーキングシステム100の特定のユーザアカウントまたはメンバーのためのプロファイルページを含む。ハブストア115は、会社、ロケーション、および有名人などのコンセプトノードのためのプロファイルページまたはハブページを含む。アプリストア112は、ユーザがプロファイルページ上にインストールし実行できるサードパーティアプリケーションを含む。メディアストア117は、写真、ビデオ、オーディオファイル、および他の種類のマルチメディアオブジェクトなどのアップロードされたユーザメディアを含む。
【0018】
画像オブジェクトデータベース150は、ブランド、製品、または会社などの、コンセプトノードと関連付けることができる、実世界の物理的なオブジェクトまたはロゴに関する情報を記憶する。画像オブジェクトデータベース150は、実世界の物理的なロケーションと関連付けられた複数の画像も含むこともできる。画像オブジェクトデータベース150は、ハブストア115、コンセプトストア114、イベントストア113、およびロケーションストア118に通信可能に結合される。
【0019】
一実装形態では、各オブジェクトは、ソーシャルグラフ内のノードまたはソーシャルネットワーキングシステムによって維持される他のデータ構造として維持することができる。ソーシャルネットワーキングシステム100は、ユーザがラップトップ、デスクトップ、またはモバイルデバイスなどの有線局または無線局によってホストされるクライアント
アプリケーション(たとえば、ブラウザ)を使用して各オブジェクトに関する情報にアクセスすることを可能にすることができる。たとえば、ソーシャルネットワーキングシステムは、オブジェクトについての情報を要求するユーザに、ウェブページ(または他の構造化文書)を供給することができる。ユーザプロファイルおよび場所情報に加えて、ソーシャルネットワーキングシステムは、ユーザについての他の情報を追跡または維持することができる。たとえば、ソーシャルネットワーキングシステムは、ユーザのロケーションを記録する1または複数のロケーションに基づいたサービスを含むジオソーシャルネットワーキングシステム機能をサポートすることができる。たとえば、ユーザは、ユーザのモバイルデバイスによってホストされる特殊目的クライアントアプリケーション(またはブラウザクライアントを使用するウェブベースもしくはネットワークベースのアプリケーション)を使用して、ジオソーシャルネットワーキングシステムにアクセスすることができる。クライアントアプリケーションは、モバイルデバイスによってサポートされる全地球測位システム(GPS)または他のジオロケーション機能に自動的にアクセスし、ジオソーシャルネットワーキングシステムにユーザの現在のロケーションを報告することができる。加えて、クライアントアプリケーションは、ユーザがさまざまなロケーションにチェックインしてこのロケーションを他のユーザに通信することを可能にするジオソーシャルネットワーク機能をサポートすることができる。
【0020】
特徴抽出API140は、写真オブジェクトデータベース150にアクセスする。写真オブジェクトデータベース150は、ロゴ、製品、ブランドなどの画像の集まりを含む。特定の実施形態では、写真オブジェクトデータベース150は、各写真に対して、コンセプトストア114に記憶されている特定のコンセプトノードとの関連を含む。特定の実施形態では、OCRによって抽出される検索可能なテキストは、標識(signage)または他のテキストの源を含む写真画像に関連して記憶される。たとえば、写真オブジェクトデータベース150は、コカコーラ製品の写真に関連して、検索可能な形式で「コカコーラ」というテキストを記憶することができる。特定の実施形態では、写真オブジェクトデータベース150は、オブジェクトに関連付けられたノードへのリンクを記憶し、必要に応じてノードからテキストまたは他の関連データを直接引き出す。特徴抽出APIはまた、写真からいくつかの特徴を抽出する。たとえば、特徴抽出APIは、写真の中の人物の数、写真の中の人物の性別、それらの人物の顔の大きさ、それらの人物が笑っているか否か、顔認識アルゴリズムに依存した、写真における検出済みの人物の身元およびユーザノードを検出することができる。特定の実施形態では、特徴抽出API140はまた、EXIFデータまたは他の形態のメタデータを通じて、写真そのものに関する情報を抽出することができる。本開示は、特徴抽出API140による任意の適切な種類の特徴抽出を企図する。
【0021】
写真オブジェクトデータベース150を更新して、写真を最新に保つことができる。特定の実施形態では、他のユーザから受信した写真およびビデオを利用して、写真オブジェクトデータベース150を更新することができる。特定の実施形態では、ロケーション特徴抽出API140は、イェルプ(Yelp!)またはグーグル(Google)画像などのサードパーティサイト260から画像を引き出して、写真オブジェクトデータベース150を更新することができる。
【0022】
加えて、ソーシャルネットワーキングシステム100は、ウェブサーバ160と、アクションロガー190と、アクションログ220と、ニュースフィードジェネレータ200と、広告サーバ210と、広告要求のデータベース230とを含む。他の実施形態では、ソーシャルネットワーキングシステム100は、さまざまなアプリケーションのために、追加モジュール、より少ないモジュール、または異なるモジュールを含むことができる。
【0023】
ウェブサーバ160は、ソーシャルネットワーキングシステム100を、ネットワーク
240を通じて1または複数のクライアントデバイス250に、ならびに1または複数のサードパーティウェブサイト260にリンク付けする。ウェブサーバ160は、ソーシャルネットワーキングシステム100とクライアントデバイス250またはサードパーティウェブサイト260との間でメッセージを受信しルーティングするためのメールサーバまたは他のメッセージ機能を含むことができる。メッセージは、インスタントメッセージ、待ち行列型メッセージ(たとえば、電子メール)、テキストメッセージおよびSMSメッセージ、または他の任意の適切なメッセージング技法によるものであってもよい。
【0024】
アクションロガー190は、ソーシャルネットワーキングシステム100上でのまたはソーシャルネットワーキングシステム100外でのメンバーのアクションについて、ウェブサーバ160から通信を受信することが可能である。ニュースフィードジェネレータ200は、各メンバーに対して、そのメンバーに関連しうる情報についての通信を生成する。これらの通信は、記事の形態であってもよく、各記事は、特定のメンバーに関連した、アクションログ内のアクションについての1行または数行の情報を含む情報メッセージである。記事は、ソーシャルネットワーキングシステム100の1ページまたは複数ページを通じて、たとえば各メンバーのホームページまたはニュースフィードページの中で、メンバーに提示される。
【0025】
広告サーバ210は、広告選択アルゴリズムを実行する。広告サーバ210は、この目的のために、広告要求のデータベース230に、およびアクションログ220に通信可能に結合される。
【0026】
図2には、ユーザによってアップロードされた例示的な画像200を示す。画像200は、教示の目的で、顔205および206と、ソーシャルネットワーキングシステム100による受信時に特徴抽出API140によって認識されうるさまざまなオブジェクト201〜204とを含む。画像オブジェクト201、この場合は「コカコーラ」のボトルは、光学文字認識または他のコンピュータビジョン技法によって検出することができる。同様に、特徴抽出API140は、ロゴを写真オブジェクトデータベース150に保存されているいくつかのロゴと比較することによって、飲料202を検出することができる。例示的な画像200は4種類の製品ラベルを含んでいるが、本開示は、写真の背景、自動車、有名な建物などにおける標識などの任意の種類の画像オブジェクト検出することを企図する。たとえば、オブジェクト画像認識アルゴリズムは、自分の新車に座っている人物のピクチャにおける車両のメーカーおよびモデルを認識し、それに応じて画像にタグを付けることができる。同様に、特徴抽出API140は、企業が後援するイベントで標識を検出することができる。本開示は、任意の種類のオブジェクト認識を企図する。
【0027】
特徴抽出API160はまた、所与のマルチメディアオブジェクトまたは画像の他の特徴を抽出することができる。たとえば、API160は、画像200における人物の数を検出することができる。特定の実施形態では、API160は、写真200における人物の性別を検出することができる。特定の実施形態では、API160は、顔認識アルゴリズムによって、検出済みの顔をソーシャルネットワーキングシステム内のユーザと照合することができる。特定の実施形態では、API160は、写真200におけるユーザ同士の間の相対距離または平均距離を検出することができる。特定の実施形態では、API160は、写真200における検出済みの顔についての大きさを検出することができる。特定の実施形態では、API160は、写真200においてカメラレンズを実際に見ている人物の数を検出することができる。特定の実施形態では、API160は、写真200における個人の属する民族を検出するまたは推定することができる。特定の実施形態では、API160は、識別されている肌の色などの共通色のセットを幅広い範囲で検出することによって、写真200における人物の裸の状態を推定することができる。本開示は、コンピュータビジョンアルゴリズムの適用による特徴抽出の任意の適切な方法を企図する。
【0028】
特定の実施形態では、API140はまた、アップロードされた画像に添付されたメタデータまたはEXIFデータから情報を抽出することができる。たとえば、特定の実施形態では、API140は、写真を撮影した時刻、写真を撮影した曜日、写真を撮影したデバイスまたはカメラの種類、写真を撮影した設定(絞り、露光時間、シャッター速度、ISO設定、焦点距離、フラッシュ設定など)を、画像ファイルに付加されたEXIFデータから決定することができる。撮影デバイスがGPSまたはジオタグによるロケーションデータを含む特定の実施形態では、API140は、画像を撮影したロケーションを抽出することができる。特定の実施形態では、API140は、画像の解像度および色深度、画像が修正されているか否か、どのソフトウェアによって修正されているのか、測距設定およびオートフォーカス設定、または画像の他の任意のメタデータを抽出することができる。本開示は、画像ファイルからの任意の適切なデータの抽出および符号化を企図する。
【0029】
抽出済みの特徴210は、特徴のリスト、すなわち写真200からAPI140によって抽出された特性210a〜210nを示す。特定の実施形態では、各特徴は、ソーシャルグラフ内の特性ノードまたは特徴ノードに対応する。特定の実施形態では、抽出されたデータは、概して特性ノードに分類されることができる。たとえば、時刻特性210mは、写真が土曜日の晩の遅くに撮影されたことを示す。写真のEXIFまたはメタデータは、月、日、年、時刻形式(たとえば、土曜日、1/24/11、23:39太平洋標準時)として表現され得るが、写真のエンゲージのレベルでパターンを識別するのに、このような粒度が必要である可能性は低い。したがって、特定の実施形態では、抽出されたさまざまな特徴を一般化して、「土曜日に撮影した」または「夜間に撮影した」などの幅広い特徴カテゴリに分類することができる。特定の実施形態では、正確な日付および時刻を表す特定の特性ノードを生成することができ、ソーシャルネットワーキングシステムは、その正確な日付/時刻ノードからより幅広い特徴カテゴリノードへのエッジを生成することができる。本開示は、マルチメディアオブジェクトの抽出済みの特徴を表すノードを生成し分類する任意の適切な方法を企図する。
【0030】
図3は、教示の目的で、エンゲージ済み写真300のためのソーシャルグラフの例示的な一部分を示す。本願では、「エンゲージ済み写真」とは、ソーシャルネットワーキングシステム上で相互作用される写真オブジェクトまたはマルチメディアオブジェクト(ビデオなど)である。たとえば、ユーザが写真を閲覧するときはいつでも、ソーシャルネットワーキングシステムは、写真ノードから、写真を閲覧したユーザへのエッジを生成する。たとえば、ユーザノード307によって表される「マイケルチャン(Michael Chan)」というユーザが、写真300を閲覧してコメントした。次いで、ソーシャルネットワークが、ユーザ307が写真300と相互作用したことを示すエッジ306を生成する。特定の実施形態では、ソーシャルネットワーキングシステムは、相互作用またはエンゲージ(関り)ごとに別個のエッジ接続を生成する。たとえば、ソーシャルネットワーキングシステムは、ノード300と307の間に「閲覧済みエッジ」ならびに「コメント済みエッジ」を生成することができる。特定の実施形態では、ソーシャルネットワーキングシステムは、マルチメディアオブジェクト300上でユーザノード307によって実行されるすべてのアクションを含む1つの「エンゲージエッジ」を生成する。本開示は、特定の写真に対するユーザアクションのログを維持する任意の適切な方法を企図する。
【0031】
ソーシャルネットワーキングシステムは、写真300と、ノード307などの特定のユーザノードまたはすべてのユーザのための特化したノード306との間に、エンゲージエッジを生成することができる。したがって、特定の実施形態では、ソーシャルネットワーキングシステムは、すべてのユーザについて所与の写真に対するエンゲージ度を追跡する。特定の実施形態では、直接エッジが、エンゲージ済み写真300からすべてのユーザを表すノード306へと生成されてもよい。特定の実施形態では、「メンバーである」エッ
ジ312が、ユーザノード307とすべてのユーザノード306との間に生成されてもよい。特定の実施形態では、ソーシャルネットワーキングシステムは、複数のユーザのセットを表すカスタムノードを生成することができる。たとえば、年齢、ソーシャルネットワーク上の近接性などの社会人口統計に基づいて、ユーザを「バケツ(bucket)」に入れることができる。一例として、写真300は、21〜28歳グループの独身男性ユーザによってエンゲージ済みであることが多く、ソーシャルネットワーキングシステムは、このパターンを検出すると、写真を21〜28歳グループのユーザ独身男性用のモデルもしくはプロファイルまたは他の任意の「バケツ」に追加することができる。
【0032】
ソーシャルグラフは、API140によって抽出される特徴210a〜210nのそれぞれに対するノードを含むことができる。明瞭にする目的のため、
図3では抽出された4つの特徴のみが表示されているが、特徴210a〜210nのそれぞれに対して別個のノードが存在してよいことが、当業者であれば容易に理解されるであろう。特定の実施形態では、ノードは、検出済みのユーザノード210f「ジョンスミス(John Smith)」および検出済みのオブジェクトノード「グレイグースウォッカ」210jなどの、API140によって検出済みの既存のユーザノードおよびオブジェクトノードである。前述のノード210fおよび210jのそれぞれは、特徴が特徴抽出API140によって検出されたことを示す「検出済み」エッジ311を通じて、エンゲージ済み写真300に対するノードに接続される。特定の実施形態では、ノードは、「不明な女性」を表すノード315などの汎用的ノードであってよい。特定の実施形態では、特徴は、「検出済み」エッジ311ならびにノード315、210f、および210jなどのエッジおよびノードによって定義される。特定の実施形態では、特徴は、汎用的な「特徴」エッジ313によって接続された「顔の大きさ=中」ノード314などのノードのみによって定義される。本開示は、ソーシャルグラフ上の抽出済みの特徴210a〜210nを表す任意の適切な方法を企図する。
【0033】
特定の実施形態では、ユーザノード210fおよびオブジェクトノード210jなどの、エンゲージ済み写真300に関連付けられたソーシャルネットワーキングシステム上のノードは、エンゲージ済み写真300を有するユーザノードまたはソーシャルネットワーキングシステム上の他のノード(図示せず)への明示的なエッジ接続を含むことができる。たとえば、ユーザノード307は「いいね」と表明したグレイグース310jを有し、ソーシャルネットワーキングシステムは、この2つのノードを、「いいね」と表明済みエッジ304によって接続する。ただし、特定の実施形態では、抽出済みの特徴210a〜210nの大半は、ユーザには不可視のソーシャルネットワーキングシステム上のノードによって表され、したがって、他のノードへの明示的なエッジ接続を含まないことが可能である。たとえば、写真における検出済みの人物のうちの1人が「不明な女性」であるという特性を表すノード315は、一般的にユーザにとって不可視であり、ユーザは、このノードに「いいね」と表明したり、コメントしたり、明示的に相互作用したりすることはできない。しかし、ユーザが、不明な女性を有するマルチメディアオブジェクトを連続しておよび頻繁に閲覧することもある。このつながりは、
図4に関して説明する生成モデルにおいて取り込みされる。
【0034】
特定の実施形態では、ソーシャルネットワーキングシステムは、特定のユーザに固有のエンゲージ済み写真300の特徴を計算することができる。たとえば、ソーシャルネットワーキングシステムは、閲覧しているユーザの友達である、写真における検出済みのユーザの数を計算することができる。別の例として、ソーシャルネットワーキングシステムは、写真における検出済みのユーザと写真を閲覧しているユーザとの間の平均ソーシャル距離を計算することができる。たとえば、写真の中で3人のユーザが検出され、そのうち2人が、閲覧しているユーザと友達であり(分離度1)、1人が友達の友達である場合、平均ソーシャル距離は1.33となる。特定の実施形態では、ソーシャルネットワーキング
システムは、ソーシャルネットワーキングシステム上の2人のユーザ間の親密度を表すソーシャル係数を計算するまたは利用することができる。たとえば、ユーザは、チャットしたりメッセージを送信したりソーシャルネットワーキングシステム上で相互作用したりすることが多い友達を含む写真を閲覧する可能性が高い。本開示は、写真における検出済みのユーザと閲覧しているユーザの間のソーシャルネットワーク情報を利用する任意の適切な方法を企図する。特定の実施形態では、このソーシャルネットワーク情報は、エッジ316などの、写真と閲覧しているユーザノードとの間のエッジとして表すことができ、このエッジは、写真300における検出済みのユーザとユーザノード307との間の平均ソーシャル距離についての情報を含む。
【0035】
図4は、特定のモデルまたはプロファイルに対するエンゲージメトリックを計算するための生成モデルを図式的に示す。生成モデルMは、ユーザノード307などの単一ユーザプロファイル、ユーザのグループ、またはノード306などのすべてのユーザに対応することができる。したがって、特定の実施形態では、ソーシャルネットワーキングシステムは、すべてのユーザ306のための一般化された汎用のモデルならびにソーシャルネットワーキングシステムの各ユーザのためのモデルを有することができる。上記で説明したように、ユーザは、21歳から28歳の間のすべての独身男性などの社会人口統計のカテゴリに分類されることができ、ソーシャルネットワーキングシステムは、追跡している各人口統計学的グループのためのモデルを維持することができる。特定の実施形態では、これらのモデルは互いから独立してもよい。特定の実施形態では、これらのモデルは互いに相互依存してもよい。たとえば、すべてのユーザのためのモデルは、ソーシャルネットワーキングシステムのユーザのためのモデルすべての重み付き平均であってよい。本開示は、任意の数のモデルおよび相互依存度を企図する。
【0036】
特定の実施形態では、エンゲージメトリックは、ベイズ確率によって計算される。教示の目的で、
図4のモデルMは、ユーザノード307のためのモデル/プロファイルである。特定の実施形態では、生成モデルは、「潜在的変数モデル」または「原因モデル」とも呼ばれ、多変量データDのセット、この場合はユーザ307が閲覧権限を有する写真D
1〜D
nのセットを含む。特定の実施形態では、ソーシャルネットワーキングシステムは、各種類のユーザについてエンゲージ(関り)の種類ごとに別個のモデルを維持することができる。たとえば、ソーシャルネットワーキングシステムは、データ点とユーザ307がコメントした写真の特徴との間にのみリンクを引き、ユーザが所与の写真にコメントする確率のための別個のモデルを生成することができる。特定の実施形態では、リンクの各種類に異なる重みが割り当てられ、たとえば、写真にコメントすることまたは写真について「いいね」と表明することは、単に写真を閲覧することよりも重い要因とされてもよい。教示の目的で、リンクは、閲覧を含む任意の方法のすべての相互作用を含む。多変量データDは、根本にある原因のセットαに関して説明され得る。
図4の生成モデルでは、原因は、写真D
1〜D
nから抽出済みの特徴であり、この例では検出済みの不明な女性315、検出済みのユーザノード210f、検出済みのオブジェクトノード210j、および中の大きさの検出済みの顔314である。抽出済みの特徴は、原因が互いにどのように相互作用するかを表す1または複数のリンクによって接続されてもよい。たとえば、不明な女性の顔315はグレイグースウォッカ210jと同じ写真に検出されることが多い可能性がありうる。特定の実施形態では、リンクは(因子分析の場合のように)線形であってよく、より一般的には、リンクは、特徴間でまたは特徴もしくはデータ間で極めて非線形的な相互作用をインスタンス化することができる。特定の実施形態では、データセットDは動的に更新され、すなわち、ユーザが写真またはマルチメディアオブジェクトをソーシャルネットワーキングシステムにアップロードすると、新たなデータ点Dnが追加され、ユーザが、写真を閲覧する、「いいね」と表明する、コメントするなどによって写真と相互作用すると、写真からその写真と相互作用した1または複数のユーザの特徴への新たなリンクが追加される。
【0037】
生成モデルには、解決するべき基本的な問題が2つ存在する。1つは、セットD内の特定のデータ項目D
1〜D
nを表す特徴の最良のセットを推論することである。もう1つは、データDのセット全体を説明するための最良のモデルMを学習することである。第1の問題は知覚性の問題とみなすことができ、第2の問題は適合性の問題である。
【0038】
特定の実施形態では、所与の1つのデータを説明する原因の最良のセットを推論することは、αに対して事後(posterior)を最大にすること(代替えとして、その平均値を算出すること)を必要とする。
【0040】
特定の実施形態では、モデルMは、潜在的原因、事前確率、およびデータを発生させる生成プロセスのセットを指定する。すべてのデータを最もよく説明する特定のモデルMの学習は、モデルに対する事後分布を最大にすることによって達成され、ベイズの公式によれば、次の通りである。
【0042】
特定の実施形態では、計算は、モデルに対する事後において断定的ではなく(agnostic)、したがって、モデルは、P(D|M)の尤度、すなわち、ユーザが写真のセット全体に関る確率を最大にする。したがって、ユーザ307がすべてのデータに対して写真に関る総確率は、次の通りである。
【0044】
ここで、D
iは、個々のデータ項目(たとえば、特定の画像)を示す。したがって、ユーザが個々のデータ項目(すなわち、任意の特定の写真)に関る確率は、次のようにデータに対するすべての可能な特徴を合計することによって得られる。
【0046】
言い換えれば、ユーザまたはユーザのセットがモデルMに対して特定の写真D
iに関る確率は、ある特定の特徴を有する写真にユーザが関る確率に、ユーザがその特定の特徴を有するすべての写真に関る確率を乗算したものの、すべての特徴に対する合計である。特
定の実施形態では、この合計は、計算のより少ない他の関数によって近似されてもよい。本開示では、関りの確率(すなわち「エンゲージメトリック」)を計算する特定の方法について説明するが、任意の適切な数学的方法を用いてよい。特定の実施形態では、遺伝的アルゴリズムを利用することができる。発生観測に基づいて学習モデルを生成する方法が当技術分野において周知である。
【0047】
図5は、アップロードされた写真またはマルチメディアオブジェクトに対する一般化されたエンゲージメトリックを生成する例示的な方法を示す。特定の実施形態では、一般化されたエンゲージメトリックは、すべてのユーザが特定の写真と相互作用する確率である。モデルMは、本質的に、すべてのユーザのモデルであり、セットDは、ソーシャルネットワーキングシステム内のすべての写真のセットである。この確率を計算する計算の複雑度が高いために、一般化されたエンゲージメトリックは、写真のアップロード時に計算され、次いで、1週間などの所定の間隔で更新されてもよい。
【0048】
工程501では、ソーシャルネットワーキングシステムは、マルチメディアオブジェクト(この例では写真)を受信する。当技術分野において周知であるように、ユーザは、従来の有線インターネット接続およびPCによって、または携帯電話もしくはタブレットなどのモバイルデバイスを通じた無線セルラー式データネットワークによってなど、さまざまなネットワーク接続によってソーシャルネットワーキングシステムに写真をアップロードすることができる。特定の実施形態では、アップロードされた写真は、ソーシャルネットワーキングシステム上のどのユーザが写真を閲覧することができるか指定するプライバシー設定を有する。特定の実施形態では、生成モデルは、写真の潜在的視聴者対そのエンゲージ度を考慮に入れる。少ない潜在的視聴者を有する写真(すなわち、その写真は、非常に少数の人物に閲覧される)は、当然、非常に低いエンゲージ度を有する。
図5は、すべてのユーザに対してエンゲージメトリックを計算する方法について説明するが、
図5の方法を適用して、単一のユーザに対してであっても、人工統計学的にグループ化されたユーザのセットに対してであっても、任意のモデルに対するエンゲージメトリックを生成し得ることは容易に理解されるであろう。
【0049】
工程502では、特徴抽出API140は、アップロード済みの画像から、
図2に関して論じたさまざまな特徴を抽出する。特定の実施形態では、特徴抽出API140は、アップロードに際して直ちに特徴を抽出し始める。特定の実施形態では、負荷分散アルゴリズムに従って、アップロードされた写真に対して特徴抽出API140を繰り返す。たとえば、多数のユーザが同時に写真をアップロードした場合、特徴抽出API140は、ソーシャルネットワーキングシステムのプロセッサに過度な負担をかけないように、後で写真を待ち行列に入れることができる。
【0050】
工程503では、ソーシャルネットワーキングシステムは、抽出済みの特徴を全体的(グローバル)エンゲージプロファイルの特徴と比較し、工程504では、ソーシャルネットワーキングシステムは、全体的エンゲージメトリックを計算する。数学的に、工程503および工程504は同じ工程内で行われる。ソーシャルネットワーキングシステムは、すべてのユーザを表すモデルMに基づいて、アップロードされた写真にすべてのユーザがエンゲージする(関る)確率を計算する。
【0051】
工程505では、エンゲージメトリックは、写真と関連して記憶される。特定の実施形態では、エンゲージメトリックは、最新の観測された相互作用またはエンゲージ(関り)に基づいて更新されてもよい。特定の実施形態では、エンゲージメトリックは、実質的にリアルタイムで更新される。特定の実施形態では、エンゲージメトリックは、所定の間隔で周期的に更新される。本開示は、エンゲージメトリックを更新する任意の適切な方法を企図する。
【0052】
工程505では、ソーシャルネットワーキングシステムは、その計算されたエンゲージメトリックに基づいて写真にさまざまなポリシーを適用する。たとえば、エンゲージメトリックが所定の閾値を下回る場合、ソーシャルネットワーキングシステムは、ユーザに対して自分のニュースフィードに写真を示さなくてもよい。特定の実施形態では、ソーシャルネットワーキングシステムは、高いエンゲージメトリックを有する写真をユーザのニュースフィードの一番上に押し上げる、または高いエンゲージメトリックを有する写真をアルバムカバーに推奨することができる。特定の実施形態では、ソーシャルネットワーキングシステムは、所定の閾値を超えるエンゲージメトリックを有する写真に対して、ユーザのニュースフィードにおける写真の永続性を増加させてもよい。特定の実施形態では、ソーシャルネットワーキングシステムは、所定の閾値を上回るエンゲージメトリックを有する写真を、アップロードしているユーザのプロファイルの異なる部分に推奨することができる。特定の実施形態では、ソーシャルネットワーキングシステムは、後援者を有する記事に対してより高いエンゲージメトリックを有する写真に優先順位を付ける。本開示は、エンゲージメトリックに基づいて写真に対してソーシャルネットワーキングシステムによって実行される任意の適切なポリシーまたはアクションを企図する。
【0053】
図6は、ビューを要求するユーザの写真に対するエンゲージメトリックに基づいて、1または複数の写真を含むビューを生成する例示的なプロセスを示す。ソーシャルネットワーキングシステムの個々のユーザ間の関心が多岐に亘るため、ソーシャルネットワーキングシステムが各ユーザのブラウズ体験をそのユーザの特定の好みに基づいてパーソナライズすることが望ましい。たとえば、あるユーザは食物のピクチャを連続しておよび頻繁に閲覧することがあるが、別のユーザは食物のピクチャを閲覧することを常に避けることがある。
図6のプロセスによって、ソーシャルネットワーキングシステムは、閲覧しているユーザにコンテンツを特に適合させることができる。
【0054】
工程601では、ソーシャルネットワーキングシステムは、コンテンツに対する要求を特定のユーザから受信する。コンテンツは、ニュースフィード、場所のページ、ユーザ自身のプロファイルページ、別のユーザのプロファイルページ、会社のハブページ、ファンページなど、1または複数の写真または1または複数の写真へのリンクを含む任意のウェブコンテンツまたはモバイルウェブコンテンツであってよい。特定の実施形態では、写真のセットから引き出す任意のビューも、写真「を含む」と考えられる。たとえば、一般にユーザが写真のセットを投稿すると、一番最近に投稿された4つの写真が、ユーザの友達に表示するために、ニュースフィード記事に含まれる。ニュースフィードビューはアルバムのすべての写真を含むとは限らないが、ニュースフィードビューは写真のセット全体へのリンクを含むので、ニュースフィードビューは、本願では、アルバムにおける各写真またはマルチメディアオブジェクトを含むと考えられる。
【0055】
工程602では、ソーシャルネットワーキングシステムは、コンテンツに表示されうるすべての写真を識別する。上述したように、すべての写真のそのセットには、写真がそこから取り出される写真セットを含むことができる。別の例として、あるユーザのプロファイルページを閲覧すると、そのユーザにタグが付けられた4つまたは5つの写真が含まれていてもよい。一般的に、これらの写真は時系列に並べられるが、ソーシャルネットワーキングシステムは、そのユーザにタグが付けられた写真のセット全体から取り出すことができる。プロセスは、次いで、識別された各写真に対してループを開始する。
【0056】
工程603では、特徴抽出API140は、工程602で識別された写真のセット内の第1の写真の特徴を取得する。このプロセスは、上記で説明した特徴抽出プロセスと実質的に同一である。
【0057】
工程604では、ソーシャルネットワーキングシステムは、抽出した特徴を、要求しているユーザのモデルまたはエンゲージプロファイルの特徴と比較し、工程605では、ソーシャルネットワーキングシステムは、特定の写真および特定のユーザモデルMに対するエンゲージメトリックを生成する。上記で説明したように、数学的に、工程604および605は同じ工程内で行われる。
【0058】
工程606では、ソーシャルネットワーキングシステムは、エンゲージメトリックがすべての写真に対して計算されたかどうか確認し、計算されていない場合、プロセスは、工程607で次の写真を選択し、ループバックして、工程603で、その写真に対する特徴を抽出する。プロセスは、すべての写真が得点付けされるまで継続する。
【0059】
工程608では、ソーシャルネットワーキングシステムは、所定のポリシーのセットを適用し、ユーザに表示するために、要求されたビュー/コンテンツを生成する。たとえば、ソーシャルネットワーキングシステムは、ユーザの写真アルバム記事を含むニュースフィードビューを生成することができ、ニュースフィードビューに表示される4つの写真は、所定の期間内にアップロードされた、最も高いエンゲージスコアを有する4つの写真である。したがって、ユーザには、新たな写真がアップロードされたことが知らされるが、個人的に最も関心のある写真が表示される。別の例として、あるユーザが別のユーザのプロファイルを閲覧することを要求すると、エンゲージスコアによる上位4つの写真が、他のユーザのプロファイルの一番上に表示されてもよい。特定の実施形態では、あるユーザが別のユーザのアルバムのすべてのサムネイルビューを閲覧することを要求するとき、エンゲージスコアはアルバムカバーとして使用されてもよい。各アルバムカバーは、そのアルバムの中で個人的に最も関心のある写真を含む。特定の実施形態では、写真は、エンゲージメトリックによって仕分けられてもよい。たとえば、あるユーザが別のユーザのアルバムをクリックすると、写真が、まず、個人的に最も関心のある写真と共に、要求したユーザに表示される。本開示は、エンゲージメトリックに基づく任意の適切なポリシーを企図する。
図6の方法の適用によって、ソーシャルネットワーキングシステムは、個々のユーザが閲覧したいと思う写真がより高い頻度で現れ、個々のユーザが通常避ける写真がブラウズ体験から実質上消失するように、個々のユーザのブラウズ体験を調整することができる。
【0060】
前述の実施形態は、さまざまなネットワーク構成において実装することができるが、以下では、限定する目的ではなく教示の目的で、例示的なネットワーク環境を示す。
図7には、例示的なネットワーク環境700を示す。ネットワーク環境700は、1または複数のサーバ720と1または複数のクライアント730を互いに結合するネットワーク710を含む。ネットワーク環境700は、1または複数のサーバ720にリンク付けされた1または複数のデータストレージ740も含む。特定の実施形態は、ネットワーク環境700において実装されてもよい。たとえば、ソーシャルネットワーキングシステムフロントエンド120は、1または複数のサーバ720によってホストされるソフトウェアプログラムに記述されてもよい。たとえば、イベントデータベース102は、1または複数のストレージ740に記憶されてもよい。特定の実施形態では、ネットワーク710は、イントラネット、エクストラネット、仮想プライベートネットワーク(VPN)、ローカルエリアネットワーク(LAN)、無線LAN(WLAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、インターネットの一部分、または別のネットワーク710もしくは2以上のそのようなネットワーク710の組み合わせである。本開示は、任意の適切なネットワーク710を企図する。
【0061】
1または複数のリンク750は、サーバ720またはクライアント730をネットワーク710に結合する。特定の実施形態では、1または複数のリンク750はそれぞれ、1または複数の有線リンク750、無線リンク750、または光リンク750を含む。特定
の実施形態では、1または複数のリンク750はそれぞれ、イントラネット、エクストラネット、VPN、LAN、WLAN、WAN、MAN、インターネットの一部分、または別のリンク750もしくは2以上のそのようなリンク750の組み合わせを含む。本開示は、サーバ720およびクライアント730をネットワーク710に結合する任意の適切なリンク750を企図する。
【0062】
特定の実施形態では、各サーバ720は、単一サーバであってもよいし、複数のコンピュータまたは複数のデータセンタに分けられる分散型サーバであってもよい。サーバ720は、たとえば、限定はしないが、ウェブサーバ、ニュースサーバ、メールサーバ、メッセージサーバ、広告サーバ、ファイルサーバ、アプリケーションサーバ、交換サーバ、データベースサーバ、またはプロキシサーバなど、さまざまな種類であってよい。特定の実施形態では、各サーバ720は、サーバ720によって実装またはサポートされる適切な機能を実行するために、ハードウェア、ソフトウェア、または組込ロジックコンポーネントもしくは2以上のそのようなコンポーネントの組み合わせを含むことができる。
【0063】
特定の実施形態では、1または複数のデータストレージ740は、1または複数のリンク750を通じて1または複数のサーバ720に通信可能にリンク付けられてもよい。特定の実施形態では、データストレージ740は、さまざまな種類の情報を記憶するために使用することができる。特定の実施形態は、サーバ720またはクライアント730がデータストレージ740に記憶された情報を管理する、たとえば、取り出す、修正する、追加する、または削除することを可能にするインタフェースを提供することができる。
【0064】
特定の実施形態では、各クライアント730は、ハードウェア、ソフトウェア、または組込ロジックコンポーネントもしくは2以上のそのようなコンポーネントの組み合わせを含み、かつクライアント730によって実装またはサポートされる適切な機能を実行することが可能な、電子デバイスであってよい。たとえば、限定はしないが、クライアント730は、デスクトップコンピュータシステム、ノートブックコンピュータシステム、ネットブックコンピュータシステム、ハンドヘルド電子デバイス、または携帯電話であってよい。本開示は、任意の適切なクライアント730を企図する。クライアント730は、クライアント730におけるネットワークユーザがネットワーク730にアクセスすることを可能にすることができる。クライアント730は、そのユーザが他のクライアント730における他のユーザと通信することを可能にすることができる。
【0065】
クライアント730は、マイクロソフトインターネットエクスプローラ(MICROSOFT INTERNET EXPLORER)、グーグルクロム(GOOGLE CHROME)、またはモジラファイアフォックス(MOZILLA FIREFOX)などのウェブブラウザ732を有することができ、ツールバーもしくはヤフー(YAHOO)ツールバーなどの、1または複数のアドオン、プラグイン、または他の拡張機能を有することができる。クライアント730におけるユーザは、ユニフォームリソースロケータ(URL)またはサーバ720にウェブブラウザ732を向ける他のアドレスを入力することができ、ウェブブラウザ732は、ハイパーテキスト転送プロトコル(HTTP)要求を生成し、このHTTP要求をサーバ720に通信することができる。サーバ720は、このHTTP要求を受け入れ、このHTTP要求に応答する1または複数のハイパーテキストマークアップ言語(HTML)ファイルをクライアント730に通信することができる。クライアント730は、ユーザに提示するために、サーバ720からのHTMLファイルに基づいてウェブページをレンダリングすることができる。本開示は、任意の適切なウェブページファイルを企図する。本明細書では、必要に応じて、ウェブページに言及する場合、1または複数の対応するウェブページファイル(ブラウザが、ウェブページをレンダリングするために使用することができる)を包含し、その逆も同様である。
【0066】
図8は、例示的なコンピュータシステム800を示す。特定の実施形態では、1または複数のコンピュータシステム800は、本明細書で説明または図示する1または複数の方法の1または複数の工程を実行する。特定の実施形態では、1または複数のコンピュータシステム800は、本明細書で説明または図示する機能を提供する。特定の実施形態では、1または複数のコンピュータシステム800上で実行されるソフトウェアは、本明細書で説明もしくは図示する1もしくは複数の方法の1もしくは複数の工程を実行する、または本明細書で説明もしくは図示する機能を提供する。特定の実施形態は、1または複数のコンピュータシステム800の1または複数の部分を含む。
【0067】
本開示は、任意の適切な数のコンピュータシステム800を企図する。本開示は、任意の適切な物理的形態であるコンピュータシステム800を企図する。限定としてではなく例として、コンピュータシステム800は、組込型コンピュータシステム、システムオンチップ(SOC)、シングルボードコンピュータシステム(SBC)(たとえば、コンピュータオンモジュール(COM)またはシステムオンモジュール(SOM)など)、デスクトップコンピュータシステム、ラップトップコンピュータシステムまたはノートブックコンピュータシステム、インタラクティブキオスク、メインフレーム、コンピュータシステムのメッシュ、携帯電話、携帯情報端末(PDA)、サーバ、タブレットコンピュータシステム、またはこれらのうち2以上の組み合わせであってよい。必要に応じて、コンピュータシステム800は、1または複数のコンピュータシステム800を含むことができ、単一であってもよいし、分散型であってもよく、複数のロケーションに分けられてもよく、複数のマシンに分けられてもよく、複数のデータセンタに分けられてもよく、または、1もしくは複数のネットワーク内の1もしくは複数のクラウドコンポーネントを含みうるクラウドに常駐することができる。必要に応じて、1または複数のコンピュータシステム800は、本明細書で説明または図示する1または複数の方法の1または複数の工程を、実質的な空間的制限または時間的制限なしで実行することができる。限定としてではなく一例として、1または複数のコンピュータシステム800は、本明細書で説明または図示する1または複数の方法の1または複数の工程を、リアルタイムで、またはバッチモードで、実行することができる。必要に応じて、1または複数のコンピュータシステム800は、本明細書で説明または図示する1または複数の方法の1または複数の工程を、異なる時刻に、または異なるロケーションで、実行することができる。
【0068】
特定の実施形態では、コンピュータシステム800は、プロセッサ802と、メモリ804と、ストレージ806と、入出力(I/O)インタフェース808と、通信インタフェース810と、バス812とを含む。本開示では、特定の数の特定の構成要素を特定の配置で有する特定のコンピュータシステムについて説明し図示するが、本開示は、任意の適切な数の任意の適切な構成要素を任意の適切な配置で有する任意の適切なコンピュータシステムを企図する。
【0069】
特定の実施形態では、プロセッサ802は、コンピュータプログラムを構成する命令などの命令を実行するためのハードウェアを含む。限定としてではなく一例として、命令を実行するため、プロセッサ802は、内部レジスタ、内部キャッシュ、メモリ804、またはストレージ806から、命令を取り出し(またはフェッチし)、それらの命令を復号して実行し、次いで、1または複数の結果を、内部レジスタ、内部キャッシュ、メモリ804、またはストレージ806に書込むことができる。特定の実施形態では、プロセッサ802は、データ、命令、またはアドレス用の1または複数の内部キャッシュを含むことができる。本開示は、必要に応じて、任意の適切な数の任意の適切な内部キャッシュを含むプロセッサ802を企図する。限定としてではなく一例として、プロセッサ802は、1または複数の命令キャッシュと、1または複数のデータキャッシュと、1または複数の変換索引バッファ(TLB:translation lookaside buffer)とを含むことができる。命令キャッシュ内の命令は、メモリ804またはストレージ
806内の命令のコピーであってよく、命令キャッシュは、プロセッサ802によるこれらの命令の取り出しを高速化することができる。データキャッシュ内のデータは、プロセッサ802で実行される命令が作用する、メモリ804またはストレージ806内のデータのコピーであってもよいし、プロセッサ802で実行される後続の命令によるアクセスのための、またはメモリ804もしくはストレージ806に書込むための、プロセッサ802で実行された前の命令の結果であってもよいし、他の適切なデータであってもよい。データキャッシュは、プロセッサ802による読取動作または書込動作を高速化することができる。TLBは、プロセッサ802のための仮想アドレス変換を高速化することができる。特定の実施形態では、プロセッサ802は、データ、命令、またはアドレス用の1または複数の内部レジスタを含むことができる。本開示は、必要に応じて、任意の適切な数の任意の適切な内部レジスタを含むプロセッサ802を企図する。必要に応じて、プロセッサ802は、1または複数の演算論理ユニット(ALU)を含んでもよいし、マルチコアプロセッサであってもよいし、1または複数のプロセッサ802を含んでもよい。本開示では、特定のプロセッサについて説明し図示するが、本開示は、任意の適切なプロセッサを企図する。
【0070】
特定の実施形態では、メモリ804は、プロセッサ802が実行する命令またはプロセッサ802が作用するデータを記憶するためのメインメモリを含む。限定としてではなく一例として、コンピュータシステム800は、ストレージ806または別の供給源(たとえば、別のコンピュータシステム800など)からメモリ804に命令をロードすることができる。プロセッサ802は、次いで、その命令をメモリ804から内部レジスタまたは内部キャッシュにロードすることができる。その命令を実行するため、プロセッサ802は、その命令を内部レジスタまたは内部キャッシュから取り出して、その命令を復号することができる。命令の実行中またはその後に、プロセッサ802は、1または複数の結果(中間結果であってもよいし、最終結果であってもよい)を内部レジスタまたは内部キャッシュに書込むことができる。プロセッサ802は、次いで、それらの結果のうち1または複数をメモリ804に書込むことができる。特定の実施形態では、プロセッサ802は、1または複数の内部レジスタもしくは内部キャッシュ内または(ストレージ806または他の場所ではなく)メモリ804内の命令のみを実行し、1または複数の内部レジスタもしくは内部キャッシュ内または(ストレージ806または他の場所ではなく)メモリ804内のデータのみに作用する。1または複数のメモリバス(それぞれ、アドレスバスおよびデータバスを含むことができる)は、プロセッサ02をメモリ804に結合することができる。バス812は、以下で説明するように、1または複数のメモリバスを含むことができる。特定の実施形態では、1または複数のメモリ管理ユニット(MMU)がプロセッサ802とメモリ804の間に常駐し、プロセッサ802によって要求されるメモリ804へのアクセスを容易にする。特定の実施形態では、メモリ804にはランダムアクセスメモリ(RAM)が含まれる。このRAMは、必要に応じて、揮発性メモリであってよい。必要に応じて、このRAMはダイナミック(DRAM)であってもよいし、スタティックRAM(SRAM)であってもよい。さらに、必要に応じて、このRAMは、シングルポートRAMであってもよいし、マルチポートRAMであってもよい。本開示は、任意の適切なRAMを企図する。メモリ804は、必要に応じて、1または複数のメモリ804を含むことができる。本開示では、特定のメモリについて説明し図示するが、本開示は、任意の適切なメモリを企図する。
【0071】
特定の実施形態では、ストレージ806は、データまたは命令のための大容量ストレージを含む。限定としてではなく一例として、ストレージ806は、HDD、フロッピー(登録商標)ディスクドライブ、フラッシュメモリ、光ディスク、光磁気ディスク、磁気テープ、またはユニバーサルシリアルバス(USB)ドライブ、またはこれらのうち2以上の組み合わせを含みうる。ストレージ806は、必要に応じて、リムーバブルメディアまたは非リムーバブル(すなわち固定)メディアを含みうる。ストレージ806は、必要に
応じて、コンピュータシステム800の内部に存在してもよいし、外部に存在してもよい。特定の実施形態では、ストレージ806は、不揮発性のソリッドステートメモリである。特定の実施形態では、ストレージ806には、読出専用メモリ(ROM)が含まれる。必要に応じて、このROMは、マスクプログラムROM、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)、電気的書換可能ROM(EAROM)、またはフラッシュメモリ、またはこれらのうち2以上の組み合わせであってよい。本開示は、任意の適切な物理的形態の大容量ストレージ806を企図する。ストレージ806は、必要に応じて、プロセッサ802とストレージ806の間の通信を容易にする1または複数のストレージ制御ユニットを含むことができる。必要に応じて、ストレージ806は、1または複数のストレージ806を含むことができる。本開示では、特定のストレージについて説明し図示するが、本開示は、任意の適切なストレージを企図する。
【0072】
特定の実施形態では、I/Oインタフェース808は、コンピュータシステム800と1または複数のI/Oデバイスの間の通信のための1または複数のインタフェースを提供する、ハードウェア、ソフトウェア、またはこれらの両方を含む。コンピュータシステム800は、必要に応じて、これらのI/Oデバイスのうちの1または複数を含むことができる。これらのI/Oデバイスのうちの1または複数は、人間とコンピュータシステム800の間の通信を可能にすることができる。限定としてではなく一例として、I/Oデバイスは、キーボード、キーパッド、マイクロホン、モニタ、マウス、プリンタ、スキャナ、スピーカ、スチールカメラ、スタイラス、タブレット、タッチスクリーン、トラックボール、ビデオカメラ、他の適切なI/Oデバイス、またはこれらのうち2以上の組み合わせを含みうる。I/Oデバイスは、1または複数のセンサを含むことができる。本開示は、任意の適切なI/Oデバイスと、それらのI/Oデバイス用の任意の適切なI/Oインタフェース808を企図する。必要に応じて、I/Oインタフェース808は、プロセッサ802がこれらのI/Oデバイスのうちの1または複数を駆動することを可能にする1または複数のデバイスドライバまたはソフトウェアドライバを含むことができる。I/Oインタフェース808は、必要に応じて、1または複数のI/Oインタフェース808を含むことができる。本開示では、特定のI/Oインタフェースについて説明し図示するが、本開示は、任意の適切なI/Oインタフェースを企図する。
【0073】
特定の実施形態では、通信インタフェース810は、コンピュータシステム800と1もしくは複数の他のコンピュータシステム800または1もしくは複数のネットワークの間の通信(たとえば、パケットベースの通信など)のための1または複数のインタフェースを提供する、ハードウェア、ソフトウェア、またはこれらの両方を含む。限定としてではなく一例として、通信インタフェース810は、イーサネット(登録商標)もしくは他の有線ベースのネットワークと通信するためのネットワークインタフェースコントローラ(NIC)もしくはネットワークアダプタ、またはWI−FIネットワークなどの無線ネットワークと通信するための無線NIC(WNIC)もしくは無線アダプタを含みうる。本開示は、任意の適切なネットワークと、そのネットワークのための任意の適切な通信インタフェース810を企図する。限定としてではなく一例として、コンピュータシステム800は、アドホックネットワーク、パーソナルエリアネットワーク(PAN)、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、またはインターネットの1もしくは複数の部分、またはこれらのうち2以上の組み合わせと通信することができる。これらのネットワークのうちの1または複数の1または複数の部分は、有線であってもよいし、無線であってもよい。一例として、コンピュータシステム800は、無線PAN(WPAN)(たとえば、ブルートゥースWPANなど)、WI−FIネットワーク、WI−MAXネットワーク、セルラー式電話ネットワーク(たとえば、グローバルシステムフォーモバイルコミュニケーションズ(Global System for Mobile Communicat
ions)(GSM(登録商標))ネットワークなど)、または他の適切な無線ネットワーク、またはこれらのうち2以上の組み合わせと通信することができる。コンピュータシステム800は、必要に応じて、これらのネットワークのいずれかのための任意の適切な通信インタフェース810を含むことができる。通信インタフェース810は、必要に応じて、1または複数の通信インタフェース810を含むことができる。本開示では、特定の通信インタフェースについて説明し図示するが、本開示は、任意の適切な通信インタフェースを企図する。
【0074】
特定の実施形態では、バス812は、コンピュータシステム800の構成要素を互いに結合する、ハードウェア、ソフトウェア、またはこれらの両方を含む。限定としてではなく一例として、バス812は、アクセラレーテッドグラフィックスポート(Accelerated Graphics Port)(AGP)または他のグラフィックスバス、エンハンスドインダストリスタンダードアーキテクチャ(Enhanced Industry Standard Architecture)(EISA)バス、フロントサイドバス(FSB)、ハイパートランスポート(HYPERTRANSPORT)(HT)相互接続、インダストリスタンダードアーキテクチャ(Industry Standard Architecture)(ISA)バス、インフィニバンド(INFINIBAND)相互接続、ローピンカウント(low−pin−count)(LPC)バス、メモリバス、マイクロチャネルアーキテクチャ(MCA)バス、ペリフェラルコンポーネントインターコネクト(Peripheral Component Interconnect)(PCI)バス、PCI−エクスプレス(PCI−Express)(PCI−X)バス、シリアルアドバンスドテクノロジーアタッチメント(SATA)バス、ビデオエレクトロニクススタンダーズアソシエーション(Video Electronics Standards Associationローカル)(VLB)バス、または他の適切なバス、またはこれらのうち2以上の組み合わせを含みうる。バス812は、必要に応じて、1または複数のバス812を含むことができる。本開示では、特定のバスについて説明し図示するが、本開示は、任意の適切なバスまたは相互接続を企図する。
【0075】
本明細書では、コンピュータ可読記憶媒体に言及する場合、構造を所有する1または複数の非一時的有形のコンピュータ可読記憶媒体を包含する。限定としてではなく一例として、コンピュータ可読記憶媒体は、必要に応じて、半導体ベースの回路または他の集積回路(IC)(たとえば、フィールドプログラマブルゲートアレイ(FPGA)または特定用途向けIC(ASIC)など)、ハードディスク、HDD、ハイブリッドハードドライブ(HHD)、光ディスク、光ディスクドライブ(ODD)、光磁気ディスク、光磁気ドライブ、フロッピーディスク、フロッピーディスクドライブ(FDD)、磁気テープ、ホログラフィック記憶媒体、ソリッドステートドライブ(SSD)、RAMドライブ、セキュアデジタル(SECURE DIGITAL)カード、SECURE DIGITALドライブ、または他の適切なコンピュータ可読記憶媒体、またはこれらのうち2以上の組み合わせを含みうる。本明細書では、コンピュータ可読記憶媒体への言及は、米国特許法第101条の下での特許権保護に適格でない任意の媒体を除外する。本明細書では、コンピュータ可読記憶媒体への言及は、信号伝送の一時的形態(電気信号または電磁信号それ自体の伝播など)が米国特許法第101条の下での特許権保護に適格でない範囲内において、この信号伝送の一時的形態を除外する。非一時的コンピュータ可読記憶媒体は、必要に応じて、揮発性であってもよいし、不揮発性であってもよいし、揮発性と不揮発性の組み合わせであってもよい。
【0076】
本開示は、任意の適切なストレージを実装する1または複数のコンピュータ可読記憶媒体を企図する。特定の実施形態では、コンピュータ可読記憶媒体は、必要に応じて、プロセッサ802の1もしくは複数の部分(たとえば、1または複数の内部レジスタまたは内部キャッシュなど)、メモリ804の1もしくは複数の部分、ストレージ806の1もし
くは複数の部分、またはこれらの組み合わせを実装する。特定の実施形態では、コンピュータ可読記憶媒体は、RAMまたはROMを実装する。特定の実施形態では、コンピュータ可読記憶媒体は、揮発性メモリまたは永続性メモリを実装する。特定の実施形態では、1または複数のコンピュータ可読記憶媒体は、ソフトウェアを具現化する。本明細書では、ソフトウェアへの言及は、必要に応じて、1または複数のアプリケーション、バイトコード、1または複数のコンピュータプログラム、1または複数の実行ファイル、1または複数の命令、ロジック、マシンコード、1または複数のスクリプト、またはソースコードを包含することができ、その逆も同様である。特定の実施形態では、ソフトウェアは、1または複数のアプリケーションプログラミングインタフェース(API)を含む。本開示は、任意の適切なプログラミング言語またはプログラミング言語の組み合わせで記述または表された任意の適切なソフトウェアを企図する。特定の実施形態では、ソフトウェアは、ソースコードまたはオブジェクトコードとして表される。特定の実施形態では、ソフトウェアは、たとえば、C、Perl、またはその適切な拡張機能などのハイレベルプログラミング言語で表される。特定の実施形態では、ソフトウェアは、アセンブリ言語(またはマシンコード)などのローレベルプログラミング言語で表される。特定の実施形態では、ソフトウェアはJAVA(登録商標)で表される。特定の実施形態では、ソフトウェアは、ハイパーテキストマークアップ言語(HTML)、拡張マークアップ言語(XML)、または他の適切なマークアップ言語で表される。
【0077】
上記で説明したクライアント側機能は、実行されるとプログラマブルプロセッサに上記で説明した動作を実装させるコンピュータ可読記憶媒体上に記憶された一連の命令として実装され得る。クライアントデバイス250は、さまざまな異なるハードウェアおよびコンピューティングシステムにおいて実装されてもよいが、
図9は、さまざまな特定の実施形態に応じた、例示的なコンピューティングプラットフォーム902の主要構成要素の概略図を示す。マルチポイント感知デバイスは、一般的にコントローラ904を含み、コントローラ904は、命令を実行するように、かつコンピューティングプラットフォームに関連付けられた動作を実行するように構成されたマイクロコントローラまたは1もしくは複数のプロセッサからなりうる。さまざまな実施形態では、コントローラ904は、シングルチップとして実装されてもよいし、複数のチップとして実装されてもよいし、1または複数の集積回路およびプリント回路基板を含む他の電気構成要素として実装されてもよい。コントローラ904は、命令、データ、またはコンピュータアドレスを一時的にローカルに記憶するためのキャッシュメモリユニットを任意選択で含むことができる。例として、メモリから取り出された命令を使用して、コントローラ904は、コンピューティングプラットフォーム902の構成要素の間で入出力されたデータの受信および操作を制御することができる。
【0078】
コントローラ904は、適切なオペレーティングシステムと共に、コンピュータコードの形をした命令を実行し、データを生成および使用するように作動することができる。オペレーティングシステム、他のコンピュータコード(以下で説明する制御クライアント907を含む)、またはデータは、コントローラ904に動作可能に結合されたメモリブロック906の内部に物理的に記憶されてもよい。メモリブロック906は、1または複数の記憶媒体を包含し、一般的に、コンピューティングプラットフォーム902によって使用されるコンピュータコード(たとえば、ソフトウェアまたはファームウェア)およびデータを記憶する場所を提供する。メモリブロック906は、例として、コントローラ904に双方向に結合されるメモリのさまざまな適切な形態の中でもとりわけソリッドステートハードディスクドライブ(HDD)の形式の、1または複数の固定ストレージデバイスを含むこともある。情報はまた、必要なときにマルチポイント感知デバイスにロードまたはインストールされるリムーバブル記憶媒体上に存在してもよい。
【0079】
コントローラ904はまた、一般的に、グラフィックス制御、ビデオインタフェース、
入力インタフェース、出力インタフェース、およびストレージインタフェース、およびネットワークインタフェースなどのさまざまなインタフェースに結合され、これらのインタフェースは適切なデバイスに結合される。特定の実施形態では、コントローラ904は入力構造体914に接続されることができ、接触感知機構がディスプレイ916に関連して設けられるタッチスクリーンなどの場合、ディスプレイ916を一緒に設けることができる。そのような実施形態では、ユーザは、接触感知機構を通じて、表示されるインタフェース要素を選択するまたはこれと相互作用することができる。このようにして、表示されるインタフェースは相互作用機能を提供することができ、ユーザがディスプレイ916に接触することによって表示されるインタフェースをナビゲートすることが可能になる。
【0080】
電気信号(たとえばアナログ)は、マイクロホン910によって生成され、イヤホン912に供給されてもよい。コントローラ904は、入力構造体914から命令信号を受信し、ディスプレイ916の動作を制御することができる。例を挙げると、ディスプレイ916には、液晶ディスプレイ(LCD)、発光ダイオード(LED)、光干渉変調器ディスプレイ(IMOD)、または他の任意の適切なディスプレイ技術を組み込むことができる。音声信号は、ラジオインタフェース920またはマイクロホン924などの音声入力インタフェースを通じてコントローラ904の制御下で信号を処理するように構成されたコーデック922に接続されうるアンテナ917によって、送信および受信されてもよい。加えて、マルチポイント感知デバイスは、電源932によって電力を供給されてもよい。
【0081】
コンピューティングプラットフォーム902は、コントローラ904に動作可能に結合された1または複数のユーザ入力デバイス934(入力構造体914とは異なる)も含むことができる。一般的に、入力デバイス934は、データ、コマンド、および応答を外部からマルチポイント感知デバイスへと転送するように構成される。例を挙げると、モバイルデバイスは、キーボードまたはマウスを含むことができる。入力デバイス934は、1または複数のハードボタンも含むことができる。
【0082】
ディスプレイデバイス916は、一般的に、コンピューティングプラットフォーム902のユーザとオペレーティングシステムまたはモバイルデバイス上で実行されているアプリケーション(複数可)との間の視覚的インタフェースを使用する簡単な方法を提供するグラフィカルユーザインタフェース(GUI)を表示するように構成される。一般的に、GUIは、プログラム、ファイル、および動作に関する選択肢をグラフィカル画像付きで提示する。動作中に、ユーザは、機能およびそれに関連するタスクを開始するために、ディスプレイ916上に表示されるさまざまなグラフィカル画像を選択して作動させることができる。
【0083】
本明細書では、「または(もしくは)」は、別段の指示がない限り、または文脈によって指示されない限り、排他的ではなく包含的である。したがって、本明細書では、「AまたはB」は、別段の指示がない限り、または文脈によって指示されない限り、「A、B、または両方」を意味する。さらに、「および」は、別段の指示がない限り、または文脈によって指示されない限り、共同かつ別個である。したがって、本明細書では、「AおよびB」は、別段の指示がない限り、または文脈によって指示されない限り、「共同でまたは別個にAおよびB」を意味する。
【0084】
本開示は、当業者であれば理解するであろう本明細書における例示的な実施形態に対するあらゆる変更、置換、変形、改変、および修正を包含する。同様に、必要に応じて、添付の特許請求の範囲は、当業者であれば理解するであろう本明細書における例示的な実施形態に対するあらゆる変更、置換、変形、改変、および修正を包含する。さらに、添付の特許請求の範囲において、特定の機能を実行するように適合された、配置された、可能で
ある、構成された、可能にする、または動作可能である装置またはシステムまたは装置もしくはシステムの構成要素に言及する場合、その装置、システム、または構成要素がそのように適合されている、配置されている、可能である、構成される、可能にされている、動作可能、または動作的である限り、その装置、システム、構成要素またはその特定の機能が起動されているか否かにかかわらず、有効であるか否かにかかわらず、またはロックされているか否かにかかわらず、これらを包含する。
【0085】
本発明の実施形態の前述の説明は、説明の目的で提示されており、網羅的に述べることや、本発明を開示された厳密な形態に限定することは意図されていない。上記の開示に照らして多くの修正および変形が可能であることは、当業者であれば理解されるであろう。たとえば、前述の実施形態について、ソーシャルネットワーキングシステムの文脈で説明してきたが、本発明がたとえウェブサイトを通じて提供されなくても、任意の電子的なソーシャルネットワークサービスで使用されうることは、当業者には明らかであろう。ソーシャルネットワーキング機能を提供するコンピュータベースのシステムは、たとえば、電子メール、インスタントメッセージング、または他の形態のピアツーピア通信、およびユーザ間で通信するための他の技法に依存するとしても、本発明に従って使用することができる。したがって、本発明はいかなる特定の種類の通信システム、ネットワーク、プロトコル、フォーマットまたはアプリケーションにも限定されない。
【0086】
この説明のいくつかの箇所で、情報に関する動作のアルゴリズムおよび記号的表現に関して本発明の実施形態を説明している。これらのアルゴリズムに関する説明および表現は、動作内容を他の当業者に効率的に伝達するために、データ処理技術の当業者によって一般的に使用される。これらの動作は機能的、計算論的、または論理的に説明されているが、コンピュータプログラムまたは等価な電気回路、マイクロコードなどによって実装され得ることを理解されたい。さらに、これらの動作の配置について、普遍性を失うことなく、モジュールとして言及することは、便利であることがわかっている。説明した動作および関連モジュールは、ソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組み合わせで具現化されてもよい。
【0087】
本明細書で説明する工程、動作、またはプロセスのいずれも、1または複数のハードウェアまたはソフトウェアモジュールによって、単独で、または他のデバイスと組み合わせて実行または実装されてもよい。一実施形態では、ソフトウェアモジュールは、コンピュータプログラムコードを含むコンピュータ可読媒体からなるコンピュータプログラム製品によって実装され、コンピュータプログラムコードは、説明した工程、動作、またはプロセスのいずれかまたはすべてを実行するためのコンピュータプロセッサによって実行されてもよい。本発明の実施形態はまた、本明細書の動作を実行するための装置に関してもよい。この装置は、要求される目的のために特別に構築されてもよいし、コンピュータに記憶されたコンピュータプログラムによって選択的に起動または再構成される汎用コンピューティングデバイスを含み得る。そのようなコンピュータプログラムは、コンピュータシステムバスに結合された、電子命令を記憶するのに適した有形のコンピュータ可読記憶媒体または任意の種類の媒体に記憶されてもよい。さらに、本明細書で言及されるコンピューティングシステムのいずれも、単一プロセッサを含んでもよいし、計算能力を高めるために複数のプロセッサ設計を採用するアーキテクチャであってもよい。
【0088】
前述のプロセスおよび機構は、多種多様のネットワークおよびコンピューティング環境において多種多様の物理的システムによって実装されることが可能であるが、以下で説明するサーバまたはコンピューティングシステムは、限定する目的ではなく教示の目的で、例示的なコンピューティングシステムアーキテクチャを提供する。
【0089】
本発明について、特定の実施形態に関して説明してきた。たとえば、本発明の実施形態
について、ソーシャルネットワーキングシステムと共に動作すると説明してきたが、本発明は、電子メールホスティングサイトなど、ユーザ間のメッセージの通信を可能にする任意の通信設備と共に使用することが可能である。他の実施形態は、当業者には明らかであろう。したがって、本発明は、添付の特許請求の範囲によって示される場合を除き、制限されることを意図したものではない。
【0090】
最後に、本明細書で使用する用語は、主に読みやすさおよび教育の目的で選択したものであり、本発明の主題を説明するまたは制限するために選択されていない可能性がある。したがって、本発明の範囲は、この詳細な説明によって限定されず、むしろ、本明細書に基づく出願上で公表されるすべての請求項によって限定されることが意図されている。したがって、本発明の実施形態の開示は、以下の特許請求の範囲に記載される本発明の範囲の例示を意図したものであり、限定するものではない。