(57)【特許請求の範囲】
【請求項１】
１以上のコンピューティング・デバイスが、
オンライン・ソーシャル・ネットワークの第１のユーザのクライアント・システムから、第１のオブジェクト・タイプの１以上のオブジェクトを求める検索クエリを受信する工程であって、前記検索クエリは内部クエリおよび外部クエリを識別するように解析され、前記内部クエリは、第２のオブジェクト・タイプのオブジェクトだけを記憶する第２のデータ・ストア内に記憶された第２のオブジェクト・タイプの１以上のオブジェクトを要求し、前記外部クエリは、前記第１のオブジェクト・タイプのオブジェクトだけを記憶する第１のデータ・ストア内に記憶された前記第１のオブジェクト・タイプの１以上のオブジェクトを要求する、工程と、
前記検索クエリを受信することに応答して、前記第２のオブジェクト・タイプに対応する前記第２のデータ・ストアの逆引きインデックスを使用して、前記内部クエリによって要求された前記第２のオブジェクト・タイプの前記１以上のオブジェクトを識別する、第２のオブジェクト・タイプ識別工程と、
識別された前記第２のオブジェクト・タイプの前記１以上のオブジェクトと、前記第２のオブジェクト・タイプに対応する前記第２のデータ・ストアの正引きインデックスとを使用して、前記外部クエリによって要求された前記第１のオブジェクト・タイプの前記１以上のオブジェクトを識別する工程であって、識別された前記第１のオブジェクト・タイプの前記１以上のオブジェクトは、識別された前記第２のオブジェクト・タイプの前記オブジェクトの１以上に前記オンライン・ソーシャル・ネットワーク内において関連している、第１のオブジェクト・タイプ識別工程と、
前記検索クエリに応答して１以上の検索結果を前記第１のユーザのクライアント・システムに送信する工程であって、各検索結果は、前記第１のデータ・ストアから識別された前記第１のオブジェクト・タイプのオブジェクトに対応する、工程と、を備える方法。
【請求項２】
複数のノードと、前記ノード同士を接続する複数のエッジとを備えるソーシャル・グラフにアクセスする工程であって、前記ノードのうちの２つの間の前記エッジの各々は、それらの間の単一の分離度を表す、工程をさらに備え、前記ノードは、
前記第１のユーザに対応する第１のノードと、
前記オンライン・ソーシャル・ネットワークに関連付けられている複数のオブジェクトにそれぞれ対応する複数の第２のノードと、を含む、請求項１に記載の方法。
【請求項３】
識別されたオブジェクトの各々は、前記ソーシャル・グラフ内における前記第１のノードの分離度のしきい値内である第２のノードに対応する、請求項２に記載の方法。
【請求項４】
前記第２のオブジェクト・タイプ識別工程は、
前記第２のオブジェクト・タイプに対応する前記第２のデータ・ストアの逆引きインデックスにアクセスする工程であって、前記逆引きインデックスは、第２の関係に応じてユーザ・ノードを１以上のコンセプト・ノードにマッピングする、工程と、
前記第２のオブジェクト・タイプに対応する前記第２のデータ・ストアの前記逆引きインデックスを使用して、前記内部クエリによって要求された前記第２のオブジェクト・タイプの前記１以上のオブジェクトを取り出す工程であって、前記第２のオブジェクト・タイプの前記１以上のオブジェクトは、前記オンライン・ソーシャル・ネットワークにおけるソーシャル・グラフの１以上のコンセプト・ノードを含み、前記１以上のコンセプト・ノードは、前記第２の関係によって、前記内部クエリにおいて指定されるユーザに関連する、工程と、を含む、請求項１に記載の方法。
【請求項５】
前記第１のオブジェクト・タイプ識別工程は、
前記第２のオブジェクト・タイプに対応する前記第２のデータ・ストアの正引きインデ
ックスにアクセスする工程であって、前記正引きインデックスは、第１の関係に応じてコンセプト・ノードを１以上のユーザ・ノードにマッピングする、工程と、
識別された前記第２のオブジェクト・タイプのオブジェクトの１以上と、前記第２のオブジェクト・タイプに対応する前記第２のデータ・ストアの前記正引きインデックスとを使用して、前記検索クエリによって要求された前記第１のオブジェクト・タイプの前記１以上のオブジェクトを取り出す工程であって、前記第１のオブジェクト・タイプの前記１以上のオブジェクトは、ソーシャル・グラフの１以上のユーザ・ノードを含み、前記ユーザ・ノードは、前記第１の関係によって前記１以上の取り出されたコンセプト・ノードに関連する、工程と、を含む、請求項１に記載の方法。
【請求項６】
前記第１のオブジェクト・タイプは、前記オンライン・ソーシャル・ネットワークにおける１つのユーザに対応し、前記第２のオブジェクト・タイプは、前記オンライン・ソーシャル・ネットワークにおけるコンセプトに対応する、請求項１に記載の方法。
【請求項７】
前記第１のオブジェクト・タイプまたは第２のオブジェクト・タイプは、ユーザ、投稿、写真、映像、オーディオ、ウェブ・ページ、およびアプリケーションから成る群から選択される、請求項１に記載の方法。
【請求項８】
前記検索クエリは、前記第１のユーザによってサブミットされたテキスト文字列である、請求項１に記載の方法。
【請求項９】
前記１以上の検索結果をランク付けする、ランク付け工程をさらに備える、請求項１に記載の方法。
【請求項１０】
前記ランク付け工程は、
前記第１のオブジェクト・タイプに対応する前記第１のデータ・ストアにアクセスする工程と、
前記第１のオブジェクト・タイプに対応する前記第１のデータ・ストアを使用して、前記第１のオブジェクト・タイプの前記オブジェクトの前記内部クエリの要素に対応する関係を決定する工程と、
前記第１のオブジェクト・タイプの前記オブジェクトの前記内部クエリの前記要素に対応する関係に基づいて、前記１以上の検索結果をランク付けする工程と、を含む、請求項９に記載の方法。
【請求項１１】
前記ランク付けは、前記第１のユーザと、前記検索結果に対応する識別されたオブジェクトの各々との間の関係に少なくとも部分的に基づく、請求項９に記載の方法。
【請求項１２】
前記ランク付けは、前記検索結果に対応する識別されたオブジェクトの各々に関連付けられている「いいね」の数に少なくとも部分的に基づく、請求項９に記載の方法。
【請求項１３】
前記ランク付けは、前記検索結果に関連付けられている前記第１のユーザが「いいね」と表明したオブジェクトの数に少なくとも部分的に基づく、請求項９に記載の方法。
【請求項１４】
前記逆引きインデックスは、前記第１のオブジェクト・タイプに関連付けられている検索語を前記第２のオブジェクト・タイプの１以上のオブジェクトにマッピングする、請求項１に記載の方法。
【請求項１５】
前記正引きインデックスは、前記第２のオブジェクト・タイプに関連付けられている検索語を前記第１のオブジェクト・タイプの１以上のオブジェクトにマッピングする、請求項１に記載の方法。
【請求項１６】
前記第１のデータ・ストア内に記憶されている前記第１のオブジェクト・タイプの前記１以上のオブジェクトは、
１以上のユーザ・オブジェクトであって、各ユーザ・オブジェクトは、ユーザ識別子、ユーザ名、および前記ユーザ・オブジェクトに関連付けられている情報を含む、ユーザ・オブジェクトと、
１以上の投稿オブジェクトであって、各投稿オブジェクトは、投稿識別子、テキスト文字列、および前記投稿オブジェクトに関連付けられている情報を含む、投稿オブジェクトと、
１以上の媒体オブジェクトであって、媒体識別子、媒体コンテキスト、および前記媒体オブジェクトに関連付けられている情報を含む、媒体オブジェクトと、から成る群から選択される、請求項１に記載の方法。
【請求項１７】
前記第１のオブジェクト・タイプは、前記第２のオブジェクト・タイプと異なる、請求項１に記載の方法。
【請求項１８】
ソフトウェアを記憶する１以上の非一時的コンピュータ可読記憶媒体であって、前記ソフトウェアは、１以上のコンピューティング・デバイスに、
オンライン・ソーシャル・ネットワークの第１のユーザのクライアント・システムから、第１のオブジェクト・タイプの１以上のオブジェクトを求める検索クエリを受信する工程であって、前記検索クエリは内部クエリおよび外部クエリを識別するように解析され、前記内部クエリは、第２のオブジェクト・タイプのオブジェクトだけを記憶する第２のデータ・ストア内に記憶された第２のオブジェクト・タイプの１以上のオブジェクトを要求し、前記外部クエリは、前記第１のオブジェクト・タイプのオブジェクトだけを記憶する第１のデータ・ストア内に記憶された前記第１のオブジェクト・タイプの１以上のオブジェクトを要求する、工程と、
前記検索クエリを受信することに応答して、前記第２のオブジェクト・タイプに対応する前記第２のデータ・ストアの逆引きインデックスを使用して、前記内部クエリによって要求された前記第２のオブジェクト・タイプの前記１以上のオブジェクトを識別する、第２のオブジェクト・タイプ識別工程と、
識別された前記第２のオブジェクト・タイプの前記１以上のオブジェクトと、前記第２のオブジェクト・タイプに対応する前記第２のデータ・ストアの正引きインデックスとを使用して、前記外部クエリによって要求された前記第１のオブジェクト・タイプの前記１以上のオブジェクトを識別する工程であって、識別された前記第１のオブジェクト・タイプの前記１以上のオブジェクトは、識別された前記第２のオブジェクト・タイプの前記オブジェクトの１以上に前記オンライン・ソーシャル・ネットワーク内において関連している、第１のオブジェクト・タイプ識別工程と、
前記検索クエリに応答して１以上の検索結果を前記第１のユーザのクライアント・システムに送信する工程であって、各検索結果は、前記第１のデータ・ストアから識別された前記第１のオブジェクト・タイプのオブジェクトに対応する、工程と、を実行させる、媒体。
【請求項１９】
１以上のプロセッサと、前記プロセッサによって実行可能な命令を含む、前記プロセッサに結合されている非一時的なメモリと、を備え、前記プロセッサは、前記命令を実行したとき、
オンライン・ソーシャル・ネットワークの第１のユーザのクライアント・システムから、第１のオブジェクト・タイプの１以上のオブジェクトを求める検索クエリを受信する工程であって、前記検索クエリは内部クエリおよび外部クエリを識別するように解析され、前記内部クエリは、第２のオブジェクト・タイプのオブジェクトだけを記憶する第２のデータ・ストア内に記憶された第２のオブジェクト・タイプの１以上のオブジェクトを要求
し、前記外部クエリは、前記第１のオブジェクト・タイプのオブジェクトだけを記憶する第１のデータ・ストア内に記憶された前記第１のオブジェクト・タイプの１以上のオブジェクトを要求する、工程と、
前記検索クエリを受信することに応答して、前記第２のオブジェクト・タイプに対応する前記第２のデータ・ストアの逆引きインデックスを使用して、前記内部クエリによって要求された前記第２のオブジェクト・タイプの前記１以上のオブジェクトを識別する、第２のオブジェクト・タイプ識別工程と、
識別された前記第２のオブジェクト・タイプの前記１以上のオブジェクトと、前記第２のオブジェクト・タイプに対応する前記第２のデータ・ストアの正引きインデックスとを使用して、前記外部クエリによって要求された前記第１のオブジェクト・タイプの前記１以上のオブジェクトを識別する工程であって、識別された前記第１のオブジェクト・タイプの前記１以上のオブジェクトは、識別された前記第２のオブジェクト・タイプの前記オブジェクトの１以上に前記オンライン・ソーシャル・ネットワーク内において関連している、第１のオブジェクト・タイプ識別工程と、
前記検索クエリに応答して１以上の検索結果を前記第１のユーザのクライアント・システムに送信する工程であって、各検索結果は、前記第１のデータ・ストアから識別された前記第１のオブジェクト・タイプのオブジェクトに対応する、工程と、を行うように構成される、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この開示は、一般にソーシャルネットワーキング・システムに関する。
【背景技術】
【０００２】
ソーシャルネットワーキング・ウェブサイトを含むソーシャルネットワーキング・システムは、そのユーザ（人または組織）がソーシャルネットワーキング・システムと、またソーシャルネットワーキング・システムを通じて互いに対話することを可能にする。ソーシャルネットワーキング・システムは、ユーザからの入力と共に、ソーシャルネットワーキング・システム内でそのユーザに関連付けられているユーザ・プロフィールを作成し記憶する。ユーザ・プロフィールは、人口統計情報、通信チャネル情報、およびユーザの個人的関心に関する情報を含んでもよい。また、ソーシャルネットワーキング・システムは、ユーザからの入力と共に、ソーシャルネットワーキング・システムの他のユーザとのユーザの関係の記録を作成および記憶し、サービス（たとえば、ウォール投稿、写真の共有、イベントの主催、メッセージング、ゲーム、または広告）を提供し、ユーザ間またはユーザの間でのソーシャル対話を容易にする。
【０００３】
ソーシャルネットワーキング・システムは、１または複数のネットワークを通じて、そのサービスに関係するコンテンツまたはメッセージをユーザの移動体コンピューティング・デバイスまたは他のコンピューティング・デバイスに送信する。ユーザは、ソーシャルネットワーキング・システム内のそのユーザのユーザ・プロフィールおよび他のデータにアクセスするために、ユーザの移動体コンピューティング・デバイスまたは他のコンピューティング・デバイス上にソフトウェア・アプリケーションをインストールしてもよい。ソーシャルネットワーキング・システムは、ユーザに接続された他のユーザの集約されたストーリのニュースフィードなど、コンテンツ・オブジェクトのパーソナライズされたセットを生成し、ユーザに対して表示してもよい。
【図面の簡単な説明】
【０００４】
【図１】ソーシャルネットワーキング・システムに関連付けられている例示的なネットワーク環境の図。
【図２】例示的なソーシャル・グラフの図。
【図３】ソーシャルネットワーキング・システムのオブジェクトを記憶するための例示的な分割の図。
【図４】正引きインデックスを使用して検索するための例示的な方法の図。
【図５】例示的なコンピュータ・システムの図。
【発明を実施するための形態】
【０００５】
特定の実施形態は、第１のオブジェクト・タイプの第１の検索結果を要求する検索クエリを受信し、検索クエリは、第２のオブジェクト・タイプの第２の検索結果を要求する内部クエリを含む。特定の実施形態は、第２のオブジェクト・タイプに対応するデータ・ストアの逆引きインデックスにアクセスし、内部クエリによって要求された第２の検索結果を取り出す。特定の実施形態は、データ・ストアの正引きインデックスにアクセスし、第２の検索結果を使用して第１の検索結果を取り出す。
【０００６】
図１は、ソーシャルネットワーキング・システムに関連付けられている例示的なネットワーク環境１００を示す。ネットワーク環境１００は、互いにネットワーク１１０によって接続されたユーザ１０１、クライアント・システム１３０、ソーシャルネットワーキング・システム１６０、およびサードパーティ・システム１７０を含む。図１は、ユーザ１
０１、クライアント・システム１３０、ソーシャルネットワーキング・システム１６０、サードパーティ・システム１７０、およびネットワーク１１０の特定の構成を示すが、この開示は、ユーザ１０１、クライアント・システム１３０、ソーシャルネットワーキング・システム１６０、サードパーティ・システム１７０、およびネットワーク１１０の任意の好適な構成を企図する。限定するものとしてではなく一例として、クライアント・システム１３０、ソーシャルネットワーキング・システム１６０、およびサードパーティ・システム１７０の２以上は、ネットワーク１１０をバイパスして互いに直接的に接続されてもよい。別の例として、クライアント・システム１３０、ソーシャルネットワーキング・システム１６０、およびサードパーティ・システム１７０の２以上が、全体として、または部分的に互いに物理的に、または論理的に同じ場所にあってもよい。さらに、図１は、特定の数のユーザ１０１、クライアント・システム１３０、ソーシャルネットワーキング・システム１６０、サードパーティ・システム１７０、およびネットワーク１１０を示すが、この開示は、任意の好適な数のユーザ１０１、クライアント・システム１３０、ソーシャルネットワーキング・システム１６０、サードパーティ・システム１７０、およびネットワーク１１０を企図する。限定するものとしてではなく一例として、ネットワーク環境１００は、複数のユーザ１０１、クライアント・システム１３０、ソーシャルネットワーキング・システム１６０、サードパーティ・システム１７０、およびネットワーク１１０を含んでもよい。
【０００７】
特定の実施形態では、ユーザ１０１は、ソーシャルネットワーキング・システム１６０と、またはソーシャルネットワーキング・システム１６０を通じて対話、すなわち通信する個人（人間のユーザ）、エンティティ（たとえば、企業、事業者、またはサードパーティ・アプリケーション）、または（たとえば、個人またはエンティティの）グループであってよい。特定の実施形態では、ソーシャルネットワーキング・システム１６０は、オンライン・ソーシャル・ネットワークをホストするネットワークアドレス指定可能なコンピューティング・システムであってよい。ソーシャルネットワーキング・システム１６０は、たとえばユーザプロフィール・データ、コンセプトプロフィール・データ、ソーシャル・グラフ情報、またはオンライン・ソーシャル・ネットワークに関係する他の好適なデータなど、ソーシャルネットワーキング・データを生成、記憶、受信、および送信する。ソーシャルネットワーキング・システム１６０は、ネットワーク環境１００の他の構成要素によって、直接的に、またはネットワーク１１０を通じてアクセスされてもよい。特定の実施形態では、ソーシャルネットワーキング・システム１６０は、ユーザ１０１がたとえば適切なプライバシ設定を設定することによってなど、自分達のアクションをソーシャルネットワーキング・システム１６０によって記録させる、または他のシステム（たとえば、サードパーティ・システム１７０）と共有させることについてオプトインまたはオプトアウトすることを可能にする認可サーバを含んでもよい。特定の実施形態では、サードパーティ・システム１７０は、ウェブサイトまたはアプリケーションをホストするネットワークアドレス指定可能なコンピューティング・システムであってよい。サードパーティ・システム１７０は、たとえば限定しないが、ウェブ・ページ、テキスト、画像、映像、オーディオ、またはアプリケーションなど、サードパーティ・システム・データを生成、記憶、受信、および送信する。サードパーティ・システム１７０は、ネットワーク環境１００の他の構成要素によって、直接的に、またはネットワーク１１０を通じてアクセスされてもよい。特定の実施形態では、１または複数のユーザ１０１が１または複数のクライアント・システム１３０を使用し、ソーシャルネットワーキング・システム１６０またはサードパーティ・システム１７０にアクセスし、データを送り、それらからデータを受信してもよい。クライアント・システム１３０は、ソーシャルネットワーキング・システム１６０またはサードパーティ・システム１７０に直接的に、ネットワーク１１０を通じて、またはサードパーティ・システムを通じてアクセスしてもよい。限定するものとしてではなく一例として、クライアント・システム１３０は、サードパーティ・システム１７０にソーシャルネットワーキング・システム１６０を通じてアクセスしてもよい。クライアン
ト・システム１３０は、たとえばパーソナル・コンピュータ、ラップトップ・コンピュータ、携帯電話、スマートフォン、またはタブレット・コンピュータなど、任意の好適なコンピューティング・デバイスであってよい。
【０００８】
この開示は、任意の好適なネットワーク１１０を企図する。限定するものとしてではなく一例として、ネットワーク１１０の１または複数の部分は、アドホック・ネットワーク、イントラネット、エクストラネット、仮想プライベート・ネットワーク（ＶＰＮ）、ローカル・エリア・ネットワーク（ＬＡＮ）、無線ＬＡＮ（ＷＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、無線ＷＡＮ（ＷＷＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、インターネットの一部分、公衆交換電話網（ＰＳＴＮ）の一部分、携帯電話ネットワーク、またはこれらの２以上の組合せを含んでもよい。ネットワーク１１０は、１または複数のネットワーク１１０を含んでもよい。
【０００９】
リンク１５０は、クライアント・システム１３０、ソーシャルネットワーキング・システム１６０、およびサードパーティ・システム１７０を通信ネットワーク１１０に、または互いに接続する。この開示は、任意の好適なリンク１５０を企図する。特定の実施形態では、１または複数のリンク１５０は、１または複数の有線（たとえば、デジタル加入者線（ＤＳＬ）またはＤＯＣＳＩＳ（Ｄａｔａ  Ｏｖｅｒ  Ｃａｂｌｅ  Ｓｅｒｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ）など）、無線（たとえば、Ｗｉ−ＦｉまたはＷｉＭＡＸ（Ｗｏｒｌｄｗｉｄｅ  ｉｎｔｅｒｏｐｅｒａｂｉｌｉｔｙ  ｆｏｒ
Ｍｉｃｒｏｗａｖｅ  Ａｃｃｅｓｓ）など）、または光（たとえば、同期光ネットワーク（ＳＯＮＥＴ）または同期デジタル・ハイアラーキ（ＳＤＨ）など）リンクを含む。特定の実施形態では、１または複数のリンク１５０は、それぞれ、アドホック・ネットワーク、イントラネット、エクストラネット、ＶＰＮ、ＬＡＮ、ＷＬＡＮ、ＷＡＮ、ＷＷＡＮ、ＭＡＮ、インターネットの一部分、ＰＳＴＮの一部分、セルラ技術ベースのネットワーク、衛星通信技術ベースのネットワーク、別のリンク１５０、または２以上のそのようなリンク１５０の組合せを含む。リンク１５０は、必ずしもネットワーク環境１００全体を通じて同じであることを必要としない。１または複数の第１のリンク１５０は、１または複数の点で１または複数の第２のリンク１５０と異なってもよい。
【００１０】
図２は、例示的なソーシャル・グラフ２００を示す。特定の実施形態では、ソーシャルネットワーキング・システム１６０は、１または複数のソーシャル・グラフ２００を１または複数のデータ・ストア内に記憶する。特定の実施形態では、ソーシャル・グラフ２００は、複数のノード（複数のユーザノード２０２または複数のコンセプトノード２０４を含んでもよい）と、それらのノードを接続する複数のエッジ２０６とを含んでもよい。図２に示されている例示的なソーシャル・グラフ２００は、説明のために、２次元の視覚マップ表現で示されている。特定の実施形態では、ソーシャルネットワーキング・システム１６０、クライアント・システム１３０、またはサードパーティ・システム１７０は、適切な用途のためにソーシャル・グラフ２００および関連するソーシャル・グラフ情報にアクセスする。ソーシャル・グラフ２００のノードおよびエッジは、データ・オブジェクトとして、たとえばデータ・ストア（ソーシャル・グラフ・データベースなど）内に記憶されてもよい。そのようなデータ・ストアは、ソーシャル・グラフ２００のノードまたはエッジの、１または複数の検索可能または照会可能なインデックスを含んでもよい。
【００１１】
特定の実施形態では、ユーザノード２０２は、ソーシャルネットワーキング・システム１６０のユーザに対応する。限定するものとしてではなく一例として、ユーザは、ソーシャルネットワーキング・システム１６０と、またはソーシャルネットワーキング・システム１６０を通じて対話または通信する個人（人間のユーザ）、エンティティ（たとえば、企業、事業者、またはサードパーティ・アプリケーション）、または（たとえば、個人またはエンティティの）グループであってよい。特定の実施形態では、ユーザがアカウント
をソーシャルネットワーキング・システム１６０に登録するとき、ソーシャルネットワーキング・システム１６０は、そのユーザに対応するユーザノード２０２を作成し、そのユーザノード２０２を１または複数のデータ・ストア内に記憶する。本明細書に記載のユーザおよびユーザノード２０２は、適切な場合、登録されたユーザ、および登録されたユーザに関連付けられているユーザノード２０２に及ぶ。それに加えて、または代替として、本明細書に記載のユーザおよびユーザノード２０２は、適切な場合、ソーシャルネットワーキング・システム１６０に登録しなかったユーザに及ぶ。特定の実施形態では、ユーザノード２０２は、ユーザによって提供された情報、またはソーシャルネットワーキング・システム１６０を含む様々なシステムによって収集された情報に関連付けられてもよい。限定するものとしてではなく一例として、ユーザは、自分の名前、プロフィール写真、連絡先情報、誕生日、性別、婚姻状態、家族状態、雇用、学歴、好み、関心、または他の人口統計情報を提供してもよい。特定の実施形態では、ユーザノード２０２は、ユーザに関連付けられている情報に対応する１または複数のデータ・オブジェクトに関連付けられてもよい。特定の実施形態では、ユーザノード２０２は、１または複数のウェブ・ページに対応してもよい。
【００１２】
特定の実施形態では、コンセプトノード２０４は、コンセプトに対応する。限定するものとしてではなく一例として、コンセプトは、場所（たとえば、映画館、レストラン、目印、または都市など）、ウェブサイト（たとえば、ソーシャルネットワーキング・システム１６０に関連付けられているウェブサイト、またはウェブアプリケーションサーバに関連付けられているサードパーティウェブサイトなど）、エンティティ（たとえば、人、事業者、グループ、スポーツチーム、または有名人など）、ソーシャルネットワーキング・システム１６０内、またはウェブアプリケーションサーバなど外部サーバ上に位置するリソース（たとえば、オーディオファイル、映像ファイル、デジタル写真、テキストファイル、構造化文書、またはアプリケーションなど）、実際の財産または知的財産（たとえば、彫刻、絵画、映画、ゲーム、楽曲、着想、写真、または書物など）、ゲーム、アクティビティ、着想もしくは理論、別の好適なコンセプト、または２以上のそのようなコンセプトに対応してもよい。コンセプトノード２０４は、ユーザによって提供されたコンセプトの情報、またはソーシャルネットワーキング・システム１６０を含む様々なシステムによって収集された情報に関連付けられてもよい。限定するものとしてではなく一例として、コンセプトの情報は、名前もしくはタイトル、１または複数の画像（たとえば、本の表紙の画像）、ロケーション（たとえば、住所または地理的ロケーション）、（ＵＲＬに関連付けられる）ウェブサイト、連絡先情報（たとえば、電話番号または電子メール・アドレス）、他の好適なコンセプト情報、またはそのような情報の任意の好適な組合せを含んでもよい。特定の実施形態では、コンセプトノード２０４は、コンセプトノード２０４に関連付けられている情報に対応する１または複数のデータ・オブジェクトに関連付けられてもよい。特定の実施形態では、コンセプトノード２０４は、１または複数のウェブ・ページに対応してもよい。
【００１３】
特定の実施形態では、ソーシャル・グラフ２００内のノードは、ウェブ・ページを表しても、ウェブ・ページによって表されてもよい（「プロフィールページ」と呼ばれる）。プロフィールページは、ソーシャルネットワーキング・システム１６０によってホストされ、またはそこからアクセス可能であってもよい。また、プロフィールページは、サードパーティ・システム１７０に関連付けられているサードパーティウェブサイト上でホストされてもよい。限定するものとしてではなく一例として、特定の外部ウェブ・ページに対応するプロフィールページは、その特定の外部ウェブ・ページであってもよく、プロフィールページが、特定のコンセプトノード２０４に対応してもよい。プロフィールページは、他のユーザのすべてまたは選択されたサブセットによって閲覧可能であってもよい。限定するものとしてではなく一例として、ユーザノード２０２は、対応するユーザがコンテンツを追加し、宣言をし、または他の方法で自分を表現する、対応するユーザプロフィー
ルページを有してもよい。限定するものとしてではなく別の例として、コンセプトノード２０４は、１または複数のユーザがコンセプトノード２０４に対応するコンセプトに特に関連してコンテンツを追加し、宣言をし、またはユーザ自身を表現する、対応するコンセプトプロフィールページを有してもよい。
【００１４】
特定の実施形態では、コンセプトノード２０４は、サードパーティ・システム１７０によってホストされるサードパーティウェブページまたはリソースを表す。サードパーティウェブページまたはリソースは、要素の中でもとりわけ、コンテンツ、選択可能なアイコンもしくは他のアイコン、またはアクションもしくはアクティビティを表す（たとえば、ＪａｖａＳｃｒｉｐｔ（登録商標）、ＡＪＡＸ、またはＰＨＰコードにより実装される）他の対話可能なオブジェクトを含んでもよい。限定するものとしてではなく一例として、サードパーティウェブページは、「いいね」、「チェックイン」、「食べる」、「推奨する」、または別の好適なアクションまたはアクティビティなど、選択可能なアイコンを含んでもよい。サードパーティウェブページを閲覧するユーザは、アイコンの１つ（たとえば、「食べる」）を選択することによって、アクションを行う。これによって、クライアント・システム１３０は、ユーザのアクションを示すメッセージをソーシャルネットワーキング・システム１６０へ送信する。ソーシャルネットワーキング・システム１６０は、メッセージに応答して、ユーザに対応するユーザノード２０２とサードパーティウェブページまたはリソースに対応するコンセプトノード２０４との間にエッジ（たとえば、「食べる」エッジ）を作成し、エッジ２０６を１または複数のデータ・ストア内に記憶する。
【００１５】
特定の実施形態では、ソーシャル・グラフ２００内の１対のノードが、１または複数のエッジ２０６によって互いに接続されてもよい。１対のノードを接続するエッジ２０６は、その対のノード間の関係を表す。特定の実施形態では、エッジ２０６は、１対のノード間の関係に対応する１または複数のデータ・オブジェクトまたは属性を含み、または表してもよい。限定するものとしてではなく一例として、第１のユーザは、第２のユーザが第１のユーザの「友達」であることを示してもよい。この示したことに応答して、ソーシャルネットワーキング・システム１６０は、「友達要求」を第２のユーザに送信してもよい。第２のユーザが「友達要求」を確認した場合、ソーシャルネットワーキング・システム１６０は、ソーシャル・グラフ２００内で第１のユーザのユーザノード２０２を第２のユーザのユーザノード２０２に接続するエッジ２０６を作成し、エッジ２０６をソーシャル・グラフ情報としてデータ・ストア２４の１または複数に記憶してもよい。図２の例では、ソーシャル・グラフ２００は、ユーザ「Ａ」とユーザ「Ｂ」とのユーザノード２０２間の友達関係を示すエッジ２０６と、ユーザ「Ｃ」とユーザ「Ｂ」とのユーザノード２０２間の友達関係を示すエッジとを含む。本開示は特定のユーザノード２０２を接続する特定の属性を有する特定のエッジ２０６について記載し示しているが、本開示は、ユーザノード２０２を接続する任意の好適な属性を有する任意の好適なエッジ２０６を企図する。限定するものとしてではなく一例として、エッジ２０６は、友達関係、家族関係、仕事関係もしくは雇用関係、ファン関係、フォロワ関係、ビジタ関係、加入者関係、主従関係、相互的関係、非相互的関係、別の好適なタイプの関係、または２以上のそのような関係を表してもよい。さらに、本開示は一般にノードを接続されているものとして記載しているが、本開示は、ユーザまたはコンセプトも接続されているものとして記載している。本明細書では、接続されているユーザまたはコンセプトへの言及は、適切な場合、ソーシャル・グラフ２００内で１または複数のエッジ２０６によって接続されているユーザまたはコンセプトに対応するノードに及ぶ。
【００１６】
特定の実施形態では、ユーザノード２０２とコンセプトノード２０４との間のエッジ２０６は、コンセプトノード２０４に関連付けられているコンセプトに向かってユーザノード２０２に関連付けられているユーザによって行われる特定のアクションまたはアクティビティを表してもよい。限定するものとしてではなく一例として、図２に示されているよ
うに、ユーザは、コンセプトに対して「いいね」と表明することができ、コンセプトに「通った」、コンセプトを「プレイした」、「聴いた」、「調理した」、コンセプトに「勤務した」、またはコンセプトを「見た」のであり、コンセプトのそれぞれは、エッジタイプまたはサブタイプに対応する。コンセプトノード２０４に対応するコンセプトプロフィールページは、たとえば、選択可能な「チェックイン」アイコン（たとえば、クリッカ可能な「チェックイン」アイコン）または選択可能な「お気に入りに追加」アイコンを含んでもよい。同様に、ユーザがこれらのアイコンをクリックした後、ソーシャルネットワーキング・システム１６０は、それぞれのアクションに対応するユーザのアクションに応答して「お気に入り」エッジ、または「チェックイン」エッジを作成する。限定するものとしてではなく別の例として、ユーザ（ユーザ「Ｃ」）は、特定のアプリケーション（オンラインミュージックアプリケーションであるＳＰＯＴＩＦＹ）を使用して特定の楽曲（ランブル・オン）を聴く。この場合には、ソーシャルネットワーキング・システム１６０は、ユーザに対応するユーザノード２０２と楽曲およびアプリケーションに対応するコンセプトノード２０４との間に「聴いた」エッジ２０６および「使用した」エッジ（図２に図示）を作成し、ユーザがその楽曲を聞き、そのアプリケーションを使用したことを示す。さらに、ソーシャルネットワーキング・システム１６０は、楽曲およびアプリケーションに対応するコンセプトノード２０４間に「プレイした」エッジ２０６（図２に図示）を作成し、特定の楽曲が特定のアプリケーションによってプレイされたことを示す。この場合には、「プレイした」エッジ２０６は、外部アプリケーション（ＳＰＯＴＩＦＹ）によって外部オーディオファイル（楽曲「イマジン」）に対して行われたアクションに対応する。本開示は、ユーザノード２０２とコンセプトノード２０４とを接続する特定の属性を有する特定のエッジ２０６について記載しているが、本開示は、ユーザノード２０２とコンセプトノード２０４とを接続する任意の好適な属性を有する任意の好適なエッジ２０６を企図する。さらに、本開示は、ユーザノード２０２とコンセプトノード２０４の間の単一の関係を表すエッジについて記載しているが、本開示は、ユーザノード２０２とコンセプトノード２０４との間の１または複数の関係を表すエッジを企図する。限定するものとしてではなく一例として、エッジ２０６は、ユーザが「いいね」と表明したこと、および特定のコンセプトを使用したことの両方を表してもよい。あるいは、別のエッジ２０６が、ユーザノード２０２とコンセプトノード２０４（図２に示されているように、ユーザ「Ｅ」に関するユーザノード２０２と「ＳＰＯＴＩＦＹ」に関するコンセプトノード２０４）との間の関係の各タイプ（または単一の関係の複数）を表してもよい。
【００１７】
特定の実施形態では、ソーシャルネットワーキング・システム１６０は、ソーシャル・グラフ２００内でユーザノード２０２とコンセプトノード２０４との間にエッジ２０６を作成する。限定するものとしてではなく一例として、（たとえば、ウェブブラウザまたはユーザのクライアント・システム１３０によってホストされる専用アプリケーションを使用することによってなど）コンセプトプロフィールページを閲覧するユーザは、「いいね」アイコンをクリックまたは選択することによって、ユーザがコンセプトノード２０４によって表されたコンセプトに対して「いいね」と表明することを示す。これによって、ユーザのクライアント・システム１３０は、コンセプトプロフィールページに関連付けられているコンセプトに対してユーザが「いいね」と表明することを示すメッセージをソーシャルネットワーキング・システム１６０へ送信する。ソーシャルネットワーキング・システム１６０は、そのメッセージに応答して、ユーザとコンセプトノード２０４との間の「いいね」エッジ２０６によって示されているように、ユーザに関連付けられているユーザノード２０２とコンセプトノード２０４との間にエッジ２０６を作成してもよい。特定の実施形態では、ソーシャルネットワーキング・システム１６０は、エッジ２０６を１または複数のデータ・ストア内に記憶してもよい。特定の実施形態では、エッジ２０６は、特定のユーザアクションに応答してソーシャルネットワーキング・システム１６０によって自動的に形成されてもよい。限定するものとしてではなく一例として、第１のユーザが写真をアップロードし、映画を見たか、または楽曲を聴いた場合、エッジ２０６は、第１の
ユーザに対応するユーザノード２０２とそれらのコンセプトに対応するコンセプトノード２０４との間に形成されてもよい。本開示は、特定のエッジ２０６を特定の方法で形成することについて記載しているが、本開示は、任意の好適なエッジ２０６を任意の好適な方法で形成することを企図する。
【００１８】
さらに、任意の２つのノード間の分離度は、一方のノードから他方のノードにソーシャル・グラフを横断するために必要とされるホップの最小数として定義される。２つのノード間の分離度は、ソーシャル・グラフ内の２つのノードによって表されるユーザ間またはコンセプト間の関連性の尺度と考えることができる。
【００１９】
ソーシャルネットワーキング・システムによって記憶されるデータ（たとえば、ソーシャル・グラフのためのデータ）の量は、非常に大きなものとなり得る。たとえば、カリフォルニア州メンロー・パークのＦａｃｅｂｏｏｋ（登録商標）によって使用されるソーシャル・グラフは、１０８程度の多数のノードと、１０１０程度の多数のエッジとを有する可能性がある。典型的には、大規模データベースなどデータの大規模な集まりは、いくつかのパーティションに分割され得る。各パーティションは、別々のサーバによって、または別々物理的ロケーションで保持され得る。データベースの各パーティションのためのインデックスがデータベース全体のためのインデックスより小さくなるにつれて、分割により、データベースにアクセスする際の性能を改善する。パーティションが多数のサーバにわたって分散され得るにつれて（一方、各パーティションは、地理的に多様なロケーションで複製されてもよい）、分割により、データベースにアクセスする際の性能および信頼性を改善することができる。通常、データベースは、データベースの行（または列）を別々に記憶することによって分割される。また、データベースは、ハッシング・アルゴリズムを使用することによって分割されてもよい。また、データベースは、データベースによって保持されるデータの任意の実世界の区分（たとえば、米国の各時間帯内の顧客）によって分割されてもよい。特定の実施形態は、オブジェクト・タイプに基づいてデータの集まりのストレージを分割する。特定の実施形態は、データ・オブジェクトを複数のパーティションで記憶することができ、各パーティションは、単一のオブジェクト・タイプに対応するデータ・オブジェクトを保持する。
【００２０】
図３は、ソーシャルネットワーキング・システムのオブジェクトを記憶するための例示的な分割を示す。図３の例では、複数のデータ・ストア、すなわちバーティカル（たとえば、Ｐ１、Ｐ２、Ｐ３など）が、ソーシャルネットワーキング・システムのオブジェクトを記憶する。特定の実施形態では、各データ・ストアは、複数のオブジェクト・タイプのうちの特定のオブジェクト・タイプのオブジェクトをそれぞれのデータ記憶デバイス３４０内に記憶するように構成されてもよい。また、各データ・ストアは、記憶された各オブジェクトに関連付けられている情報をデータ記憶デバイス３４０内に記憶するように構成されてもよい。オブジェクト・タイプは、ユーザ、写真、投稿、ウェブ・ページ、またはアプリケーションであってよい。オブジェクト・タイプの他の例は、音楽、コメント、イベント、メッセージ、オファー（たとえば、クーポン）、および評論であってもよい。この開示は、ソーシャルネットワーキング・システムにとっての任意の好適なオブジェクト・タイプを企図する。
【００２１】
たとえば、図３に示されているユーザ・バーティカルＰ１は、ユーザ・オブジェクトを記憶する。ユーザ・バーティカルＰ１内に記憶される各ユーザ・オブジェクトは、識別子（たとえば、文字列）、ユーザ名、およびソーシャルネットワーキング・システムのユーザ用のプロフィール写真を含む。また、ソーシャルネットワーキング・システムは、ユーザ・バーティカルＰ１内に、言語、ロケーション、教育、１または複数の電子メール・アドレス、関心、交際状態、友達のリスト、家族のリスト、プライバシ設定など、ユーザ・オブジェクトに関連付けられている情報を記憶してもよい。たとえば、図３に示されてい
る投稿バーティカルＰ２は、投稿オブジェクトを記憶する。投稿バーティカルＰ２内に記憶される各投稿オブジェクトは、識別子、ソーシャルネットワーキング・システムに投稿される投稿のためのテキスト文字列を含む。また、ソーシャルネットワーキング・システムは、投稿バーティカルＰ２内に、タイム・スタンプ、作者、プライバシ設定、その投稿に対して「いいね」と表明するユーザ、「いいね」の総数、コメント、コメントの総数、ロケーションなど、投稿オブジェクトに関連付けられている情報を記憶してもよい。たとえば、写真バーティカルＰ３は、写真オブジェクト（または映像もしくはオーディオなど他の媒体タイプのオブジェクト）を記憶する。写真バーティカルＰ３内に記憶される各写真オブジェクトは、識別子および写真を含む。また、ソーシャルネットワーキング・システムは、写真バーティカルＰ３内に、タイム・スタンプ、作者、プライバシ設定、写真内でタグ付けされているユーザ、その写真に対して「いいね」と表明するユーザ、コメントなど、写真オブジェクトに関連付けられている情報を記憶してもよい。
【００２２】
特定の実施形態では、各バーティカル内に記憶されるオブジェクトは、１または複数の検索インデックスによってインデックス付けされる。検索インデックスは、１または複数のコンピューティング・デバイス（たとえば、サーバ）を含むそれぞれのインデックス・サーバ３３０によってホストされてもよい。インデックス・サーバ３３０は、ユーザまたはソーシャルネットワーキング・システム（またはサードパーティ・システム）の他のプロセスによってソーシャルネットワーキング・システムにサブミットされたデータ（たとえば、写真、および写真に関連付けられている情報）に基づいて検索インデックスを更新する。また、インデックス・サーバ３３０は、定期的（たとえば、２４時間ごと）に検索インデックスを更新する。インデックス・サーバ３３０は、検索語を含むクエリを受け取り、その検索語に対応する１または複数の検索インデックスからの検索結果にアクセスし取り出す。いくつかの実施形態では、特定のオブジェクト・タイプに対応するバーティカルは、それぞれがそれぞれの検索インデックスを備える複数の物理パーティションまたは論理パーティションを備えてもよい。
【００２３】
特定の実施形態では、第１のオブジェクト・タイプに対応するバーティカルのための検索インデックスは、逆引きインデックスを含む。逆引きインデックスは、第２のオブジェクト・タイプに関連付けられている検索語を第１のオブジェクト・タイプの１または複数の検索結果にマッピングする。たとえば、図３に示されている投稿バーティカルＰ２内の逆引きインデックスは、（ｐｏｓｔｓ＿ｌｉｋｅｄ＿ｂｙ：＜ｕｓｅｒ＞）などユーザ（ｕｓｅｒ）に関連付けられている検索語を＜ｕｓｅｒ＞から＜ｕｓｅｒ＞によって「いいね」と表明されている投稿（ｐｏｓｔｓ＿ｌｉｋｅｄ＿ｂｙ）のリストにマッピングする。逆引きインデックスは、＜ｐｏｓｔｓ＿ｃｏｍｍｅｎｔｅｄ＿ｂｙ：＜ｕｓｅｒ＞）などユーザに関連付けられている検索語を＜ｕｓｅｒ＞から＜ｕｓｅｒ＞によってコメントされた投稿（ｐｏｓｔｓ＿ｃｏｍｍｅｎｔｅｄ＿ｂｙ）のリストにマッピングする。たとえば、図３に示されている写真バーティカルＰ３内の逆引きインデックスは、（ｐｈｏｔｏｓ＿ｌｉｋｅｄ＿ｂｙ：＜ｕｓｅｒ＞）などユーザに関連付けられている検索語を＜ｕｓｅｒ＞から＜ｕｓｅｒ＞によって「いいね」と表明されている写真（ｐｈｏｔｏｓ＿ｌｉｋｅｄ＿ｂｙ）のリストにマッピングする。逆引きインデックスは、（ｐｈｏｔｏｓ＿ｔａｇｇｅｄ＿ｗｉｔｈ：＜ｕｓｅｒ＞）などユーザに関連付けられている検索語を＜ｕｓｅｒ＞から＜ｕｓｅｒ＞がタグ付けされている写真（ｐｈｏｔｏｓ＿ｔａｇｇｅｄ＿ｗｉｔｈ）のリストにマッピングする。一実施形態では、特定のオブジェクト・タイプに対応するバーティカルのための逆引きインデックスは、特定のオブジェクト・タイプに関連付けられている検索語を、同じ特定のオブジェクト・タイプの１または複数の検索結果にマッピングする。たとえば、図３に示されているユーザ・バーティカルＰ１内の逆引きインデックスは、（ｆｒｉｅｎｄｓ：＜ｕｓｅｒ＞）などユーザに関連付けられている検索語を＜ｕｓｅｒ＞から＜ｕｓｅｒ＞の友達（ｆｒｉｅｎｄｓ）の（すなわち、ユーザ・オブジェクト・タイプの）リストにマッピングする。
【００２４】
特定の実施形態では、第１のオブジェクト・タイプに対応するバーティカルのための検索インデックスは、正引きインデックスを備えてもよい。正引きインデックスは、第１のオブジェクト・タイプに関連付けられている検索語を第２のオブジェクト・タイプの１または複数の検索結果にマッピングする。たとえば、投稿バーティカルＰ２内の正引きインデックスは、（ｌｉｋｅｒｓ＿ｏｆ：＜ｐｏｓｔ＞）など投稿（ｐｏｓｔ）に関連付けられている検索語を＜ｐｏｓｔ＞から＜ｐｏｓｔ＞に対して「いいね」と表明している（ｌｉｋｅｒｓ＿ｏｆ）ユーザのリストにマッピングする。正引きインデックスは、（ａｕｔｈｏｒ＿ｏｆ：＜ｐｏｓｔ＞）など投稿に関連付けられている検索語を＜ｐｏｓｔ＞から＜ｐｏｓｔ＞の作者（ａｕｔｈｏｒ＿ｏｆ）であるユーザにマッピングする。たとえば、写真バーティカルＰ３内の正引きインデックスは、（ｔａｇｇｅｄ＿ｉｎ：＜ｐｈｏｔｏ＞）など写真（ｐｈｏｔｏ）に関連付けられている検索語を＜ｐｈｏｔｏ＞から＜ｐｈｏｔｏ＞内でタグ付けされている（ｔａｇｇｅｄ＿ｉｎ）ユーザのリストにマッピングする。正引きインデックスは、（ｃｏｍｍｅｎｔｅｒｓ＿ｏｆ：＜ｐｈｏｔｏ＞）など写真に関連付けられている検索語を＜ｐｈｏｔｏ＞から＜ｐｈｏｔｏ＞についてコメントしている（ｃｏｍｍｅｎｔｅｒｓ＿ｏｆ）ユーザのリストにマッピングする。正引きインデックスは、検索語について１対１マッピングを備える。また、正引きインデックスは、検索語について１対少数マッピングを備える。一方、逆引きインデックスは、検索語について１対多マッピングを備える。たとえば、写真バーティカルＰ３の正引きインデックスは、写真をその写真の所有者（その写真をソーシャルネットワーキング・システムにアップロードしたユーザ）にマッピングする。たとえば、写真バーティカルＰ３の正引きインデックスは、写真をその写真にタグ付けされている数人のユーザ（たとえば、ユーザ１０人未満）にマッピングする。一方、写真バーティカルＰ３の逆引きインデックスは、ユーザをそのユーザがタグ付けされている多数の写真（たとえば、写真１００枚超）にマッピングする。
【００２５】
特定の実施形態は、正引きインデックスを使用する効率的な検索のための方法を表す。図４は、正引きインデックスを使用して検索するための例示的な方法４００を示す。方法４００は、ソーシャルネットワーキング・システムの１または複数のコンピューティング・デバイス（たとえば、サーバ）によって実装され得る。方法４００は、ステップ４１０で始まる。特定の実施形態では、ステップ４１０で、１または複数のコンピューティング・デバイスは、第１のオブジェクト・タイプの１または複数の第１の検索結果を要求する検索クエリを受信する。検索クエリは、第２のオブジェクト・タイプの１または複数の第２の検索結果を要求する内部クエリを含む。たとえば、図３に示されているアグリゲータ・プロセス３２０が検索クエリ（ｅｘｔｒａｃｔ  ａｕｔｈｏｒ（ｔｅｒｍ  ｐｏｓｔｓ＿ｌｉｋｅｄ＿ｂｙ：＜９＞））を受け取る。検索クエリは、（抽出（ｅｘｔｒａｃｔ）演算子で）＜９＞のユーザ識別子を有するユーザによって「いいね」と表明されている投稿（ｐｏｓｔｓ＿ｌｉｋｅｄ＿ｂｙ）について１または複数の作者（ａｕｔｈｏｒ）における検索結果を要求する。検索クエリは、ユーザ＜９＞によって「いいね」と表明されている投稿（ｐｏｓｔｓ＿ｌｉｋｅｄ＿ｂｙ）における検索結果を要求する検索語に対応する内部（内側の）クエリ（ｔｅｒｍ  ｐｏｓｔｓ＿ｌｉｋｅｄ＿ｂｙ：＜９＞）を含む。すなわち、検索クエリは、第１のオブジェクト・タイプ（ユーザ）の第１の検索結果を要求し、一方、内部クエリは、第２のオブジェクト・タイプ（投稿）の第２の検索結果を要求する。
【００２６】
アグリゲータ・プロセス３２０は、ソーシャルネットワーキング・システムの１または複数のコンピューティング・デバイス（たとえば、サーバ）によってホストされる１または複数のコンピューティング・プロセスであってよい。たとえば、アグリゲータ・プロセス３２０は、図３に示されているＰＨＰ（ハイパーテキスト・プリプロセッサ）プロセス３１０からの検索要求に基づいて検索クエリを決定する。ＰＨＰプロセス３１０は、ソー
シャルネットワーキング・システムの１または複数のコンピューティング・デバイス（たとえば、サーバ）によってホストされる１または複数のコンピューティング・プロセスであってよい。検索要求は、ユーザまたはソーシャルネットワーキング・システム（またはサードパーティ・システム）の別のプロセスによってＰＨＰプロセスにサブミットされた構造化テキスト文字列または実質的に構造化されていないテキスト文字列であってもよい。たとえば、アグリゲータ・プロセス３２０は、ユーザ＜９＞によってＰＨＰプロセス３１０にサブミットされた検索要求「私が「いいね」と表明している投稿の作者は誰か」に基づいて検索クエリ（ｅｘｔｒａｃｔ  ａｕｔｈｏｒ（ｔｅｒｍ  ｐｏｓｔｓ＿ｌｉｋｅｄ＿ｂｙ：＜９＞））を決定する。
【００２７】
特定の実施形態では、ステップ４２０で、１または複数のコンピューティング・デバイスは、第２のオブジェクト・タイプに対応するデータ・ストアの逆引きインデックスにアクセスする。特定の実施形態では、ステップ４３０で、１または複数のコンピューティング・デバイスは、第２のオブジェクト・タイプに対応するデータ・ストアの逆引きインデックスを使用して、内部クエリによって要求された第２の検索結果を取り出す。たとえば、アグリゲータ・プロセス３２０は、上記の検索クエリ（ｅｘｔｒａｃｔ  ａｕｔｈｏｒ（ｔｅｒｍ  ｐｏｓｔｓ＿ｌｉｋｅｄ＿ｂｙ：＜９＞））を図３に示されている投稿バーティカルＰ２にサブミットし、投稿バーティカルＰ２のインデックス・サーバ３３０を投稿バーティカルＰ２の逆引きインデックスにアクセスさせる。逆引きインデックスは、＜ｕｓｅｒ＞に関連付けられている検索語（ｐｏｓｔｓ＿ｌｉｋｅｄ＿ｂｙ：＜ｕｓｅｒ＞）を＜ｕｓｅｒ＞によって「いいね」と表明されている投稿（ｐｏｓｔｓ＿ｌｉｋｅｄ＿ｂｙ）のリストにマッピングする。インデックス・サーバは、逆引きインデックスにアクセスし、内部検索クエリ（ｔｅｒｍ  ｐｏｓｔｓ＿ｌｉｋｅｄ＿ｂｙ：＜９＞）によって要求されたユーザ＜９＞によって「いいね」と表明されている投稿のリストを取り出す。たとえば、ユーザ＜９＞によって「いいね」と表明されている投稿のリストは、識別子＜１０００＞、識別子＜２０００＞、識別子＜３０００＞、識別子＜４０００＞、識別子＜５０００＞、および識別子＜６０００＞を有する投稿を含んでもよい。
【００２８】
特定の実施形態では、ステップ４４０で、１または複数のコンピューティング・デバイスは、第２のオブジェクト・タイプに対応するデータ・ストアの正引きインデックスにアクセスする。特定の実施形態では、ステップ４５０で、１または複数のコンピューティング・デバイスは、第２の検索結果と第２のオブジェクト・タイプに対応するデータ・ストアの正引きインデックスとを使用して、検索クエリによって要求された第１の検索結果を取り出す。たとえば、上記の投稿バーティカルＰ２のインデックス・サーバは、投稿バーティカルＰ２の正引きインデックスにアクセスする。正引きインデックスは、＜ｐｏｓｔ＞に関連付けられている検索語（ａｕｔｈｏｒ：＜ｐｏｓｔ＞）を＜ｐｏｓｔ＞の作者（ａｕｔｈｏｒ）にマッピングする。インデックス・サーバは、（前述の抽出演算子を使用して）内部検索クエリ（ｔｅｒｍ  ｐｏｓｔｓ＿ｌｉｋｅｄ＿ｂｙ：＜９＞）についての投稿の結果リスト（＜１０００＞、＜２０００＞、＜３０００＞、＜４０００＞、＜５０００＞、＜６０００＞）を用いて正引きインデックスにアクセスし、投稿のリスト（＜１０００＞、＜２０００＞、＜３０００＞、＜４０００＞、＜５０００＞、＜６０００＞）についてそれぞれの作者のリスト（たとえば、＜３１＞、＜４１＞、＜５１＞）を取り出す。
【００２９】
前述のように、投稿バーティカルＰ２は、それぞれがそれぞれの検索インデックスを備える複数の物理パーティションまたは論理パーティションを備えてもよい。アグリゲータ・プロセスは、検索クエリ（ｅｘｔｒａｃｔ  ａｕｔｈｏｒ（ｔｅｒｍ  ｐｏｓｔｓ＿ｌｉｋｅｄ＿ｂｙ：＜９＞））を投稿バーティカルＰ２の各パーティションにサブミットする。各パーティションのインデックス・サーバは、各パーティションの逆引きインデックスおよび正引きインデックスにアクセスし、上述のように検索結果をアグリゲータに返す
。次いで、アグリゲータ・プロセスは、パーティションからの検索結果を集約する。たとえば、第１のパーティションは、検索結果の作者＜３１＞および作者＜５１＞を返す。第２のパーティションは、検索結果の作者＜４１＞および作者＜５１＞を返す。アグリゲータ・プロセスは、結果を（たとえば、ＯＲ演算を実施することによって）集約し、＜３１＞、＜４１＞、および＜５１＞の集約された結果をもたらす。
【００３０】
正引きインデックスが存在する場合、図４の方法は、検索性能を改善する。なぜなら、複雑な検索クエリ（たとえば、２以上の検索クエリを含むクエリ）でも、１つの特定のオブジェクト・タイプに対応する１つのバーティカルにアクセスするだけでよいからである。対照的に、正引きインデックスが存在しない場合、複雑な検索クエリは、異なる特定のオブジェクト・タイプにそれぞれが対応する２以上のバーティカルにアクセスすることを必要とし得る。一例として、上述のユーザ＜９＞によって「いいね」と表明されている投稿の作者を検索することなど複雑な検索クエリについて、アグリゲータ・プロセスは、最初に第１の検索クエリ（ｔｅｒｍ  ｐｏｓｔｓ＿ｌｉｋｅｄ＿ｂｙ：＜９＞）を投稿バーティカルＰ２にサブミットする。投稿バーティカルＰ２のインデックス・サーバは、第１の検索クエリを用いて（ユーザをユーザによって「いいね」と表明されている投稿（ｐｏｓｔｓ＿ｌｉｋｅｄ＿ｂｙ）にマッピングする）投稿バーティカルＰ２の逆引きインデックスにアクセスし、アグリゲータ・プロセスに、ユーザ＜９＞によって「いいね」と表明されている投稿のリスト（たとえば、＜１０００＞、＜２０００＞、＜３０００＞、＜４０００＞、＜５０００＞、＜６０００＞）を返す。次いで、アグリゲータ・プロセスは、検索クエリの第２のセット（ｔｅｒｍ  ａｕｔｈｏｒ：＜１０００＞）、（ｔｅｒｍ  ａｕｔｈｏｒ：＜２０００＞）、（ｔｅｒｍ  ａｕｔｈｏｒ：＜３０００＞）などをユーザ・バーティカルＰ１にサブミットする。すなわち、投稿バーティカルＰ２内に正引きインデックスが存在しない場合、アグリゲータ・プロセスは、ユーザ・バーティカルＰ１を１回だけでなく複数回ルック・アップすることが必要となり得る。ユーザ・バーティカルＰ１のインデックス・サーバは、（投稿をその作者にマッピングする）ユーザ・バーティカルＰ１の逆引きインデックスにアクセスし、アグリゲータ・プロセスに、投稿のリスト（＜１０００＞、＜２０００＞、＜３０００＞、＜４０００＞、＜５０００＞、＜６０００＞）について作者（ａｕｔｈｏｒ）のリスト（たとえば、＜３１＞、＜４１＞、＜５１＞）を返す。
【００３１】
さらに、前述のように、正引きインデックスは、１対１または１対少数である検索語をインデックスする。したがって、バーティカルの正引きインデックスは、１対多マッピングを有する検索語をインデックスするバーティカルの逆引きインデックスより著しく小さいものとなり得る。したがって、正引きインデックスは、そのより小さいサイズにより検索クエリについてアクセス時間および取出し時間が改善され得るので、検索性能をさらに改善する。
【００３２】
特定の実施形態では、アグリゲータ・プロセスは、第１のオブジェクト・タイプに対応する少なくとももう１つのデータ・ストアにアクセスすることによって第１の検索結果をランク付けする。たとえば、アグリゲータ・プロセスは、上記の作者のリスト（＜３１＞、＜４１＞、＜５１＞）をユーザ・バーティカルＰ１にサブミットする。サーバ・プロセス（ソーシャルネットワーキング・システムの１または複数のコンピューティング・デバイスによってホストされる）は、作者＜３１＞、作者＜４１＞、および作者＜５１＞を検索クエリ（ｅｘｔｒａｃｔ  ａｕｔｈｏｒ（ｔｅｒｍ  ｐｏｓｔｓ＿ｌｉｋｅｄ＿ｂｙ：＜９＞））のユーザ＜９＞に対するそれらのそれぞれの関係に基づいてランク付けする。たとえば、サーバ・プロセスが（たとえば、１または複数の検索インデックスにアクセスすることによって）作者がユーザ＜９＞の家族であると決定した場合、サーバ・プロセスは作者をより高くランク付けしてもよい。たとえば、サーバ・プロセスが（たとえば、１または複数の検索インデックスにアクセスすることによって）作者が所定の数（たとえば
、３）より多い共通の関心（または、共通の一次友達）を有すると決定した場合、サーバ・プロセスは作者をより高くランク付けしてもよい。サーバ・プロセスは、作者＜３１＞、＜４１＞、＜５１＞間のランク順をアグリゲータ・プロセスに返す。
【００３３】
他の実施形態では、第２のオブジェクト・タイプに対応するデータ・ストアの１または複数のコンピューティング・デバイス（たとえば、インデックス・サーバ）は、第１の検索結果をランク付けする。たとえば、投稿バーティカルＰ２のインデックス・サーバは、上記の検索結果の作者＜３１＞、作者＜４１＞、および作者＜５１＞を、それらの作者が書いた、ユーザ＜９＞によって「いいね」と表明されている投稿のリスト（＜１０００＞、＜２０００＞、＜３０００＞、＜４０００＞、＜５０００＞、＜６０００＞）内の投稿の数に基づいてランク付けする。たとえば、ユーザ＜４１＞が投稿＜１０００＞、＜２０００＞、＜３０００＞を書き、ユーザ＜３１＞が投稿＜５０００＞および投稿＜６０００＞を書き、ユーザ＜５１＞が投稿＜４０００＞を書いた場合、インデックス・サーバは、ユーザ＜４１＞がユーザ＜９＞によって「いいね」と表明されている投稿のリスト内の投稿の大多数を書いたので、ユーザ＜４１＞を最高としてランク付けしてもよい。インデックス・サーバは、ランク付けされた検索結果（＜４１＞、＜３１＞、＜５１＞）を第１の検索結果としてアグリゲータ・プロセスに返す。別の例として、インデックス・サーバは、投稿をその投稿の「いいね」の総数にマッピングする正引きインデックスにアクセスする。インデックス・サーバは、正引きインデックスにアクセスし、ユーザ＜９＞によって「いいね」と表明されている投稿のリストの各投稿について「いいね」の総数を取り出す。インデックス・サーバは、投稿のリスト内の投稿を、「いいね」のそれぞれの総数に基づいてランク付けし、上位にランク付けされた投稿（たとえば、３位までにランク付けされた、または最も多く「いいね」と表明された投稿）を第１の検索結果としてアグリゲータ・プロセスに返す。
【００３４】
特定の実施形態は、適切な場合、図４の方法の１または複数のステップを繰り返してもよい。この開示は、図４の方法の特定のステップを、特定の順番で発生するものとして記載し示しているが、この開示は、任意の好適な順番で発生する図４の方法の任意の好適なステップを企図する。さらに、この開示は、図４の方法の特定のステップを実施する特定の構成要素、デバイス、またはシステムについて記載し示しているが、この開示は、図４の方法の任意の好適なステップを実施する任意の好適な構成要素、デバイス、またはシステムの任意の好適な組合せを企図する。
【００３５】
図５は、例示的なコンピュータ・システム５００を示す。特定の実施形態では、１または複数のコンピュータ・システム５００は、本明細書に記載され、または示されている１または複数の方法の１または複数のステップを実施する。特定の実施形態では、１または複数のコンピュータ・システム５００は、本明細書に記載され、または示されている機能を提供する。特定の実施形態では、１または複数のコンピュータ・システム５００上で動作するソフトウェアは、本明細書に記載され、または示されている１または複数の方法の１または複数のステップを実施し、または本明細書に記載され、または示されている機能を提供する。特定の実施形態は、１または複数のコンピュータ・システム５００の１または複数の部分を含む。本明細書では、コンピュータ・システムに言及することは、適切な場合、コンピューティング・デバイスを包含してもよく、逆も同様である。さらに、コンピュータ・システムに言及することは、適切な場合、１または複数のコンピュータ・システムを包含してもよい。
【００３６】
この開示は、任意の好適な数のコンピュータ・システム５００を企図する。この開示は、任意の好適な物理形態をとるコンピュータ・システム５００を企図する。限定するものとしてではなく一例として、コンピュータ・システム５００は、組込みコンピュータ・システム、システム・オン・チップ（ＳＯＣ）、シングルボード・コンピュータ・システム
（ＳＢＣ）（たとえば、コンピュータ・オン・モジュール（ＣＯＭ）またはシステム・オン・モジュール（ＳＯＭ）など）、デスクトップ・コンピュータ・システム、ラップトップもしくはノートブック・コンピュータ・システム、対話キオスク、メインフレーム、コンピュータ・システムのメッシュ、移動体電話、携帯情報端末（ＰＤＡ）、サーバ、タブレット・コンピュータ・システム、またはこれらの２以上の組合せであってよい。適切な場合、コンピュータ・システム５００は、１または複数のコンピュータ・システム５００を含んでもよく、一元的なものであっても分散型であってもよく、複数のロケーションに跨ってもよく、複数のマシンに跨ってもよく、複数のデータ・センタに跨ってもよく、クラウド内にあってもよく、クラウドは、１または複数のネットワーク内で１または複数のクラウド・コンポーネントを含んでもよい。適切な場合、１または複数のコンピュータ・システム５００は、実質的な空間的または時間的制限なしに、本明細書に記載され、または示されている１または複数の方法の１または複数のステップを実施してもよい。限定するものとしてではなく一例として、１つまたは複数のコンピュータ・システム５００は、リアルタイムで、またはバッチ・モードで、本明細書に記載され、または示されている１または複数の方法の１または複数のステップを実施してもよい。１または複数のコンピュータ・システム５００は、適切な場合、異なる時に、または異なるロケーションで、本明細書に記載され、または示されている１または複数の方法の１または複数のステップを実施してもよい。
【００３７】
特定の実施形態では、コンピュータ・システム５００は、プロセッサ５０２、メモリ５０４、ストレージ５０６、入力／出力（Ｉ／Ｏ）インターフェース５０８、通信インターフェース５１０、およびバス５１２を含む。この開示は、特定の数の特定の構成要素を特定の構成で有する特定のコンピュータ・システムについて記載し示しているが、この開示は、任意の好適な数の任意の好適な構成要素を任意の好適な構成で有する任意の好適なコンピュータ・システムを企図する。
【００３８】
特定の実施形態では、プロセッサ５０２は、コンピュータ・プログラムを構成するものなど命令を実行するためのハードウェアを含む。限定するものとしてではなく一例として、命令を実行するために、プロセッサ５０２は、内部レジスタ、内部キャッシュ、メモリ５０４、またはストレージ５０６から命令を取り出し（またはフェッチし）、それらを復号および実行し、次いで、１または複数の結果を内部レジスタ、内部キャッシュ、メモリ５０４、またはストレージ５０６に書き込む。特定の実施形態では、プロセッサ５０２は、データ、命令、またはアドレス用に１または複数の内部キャッシュを含んでもよい。この開示は、適切な場合、任意の好適な数の任意の好適な内部キャッシュを含むプロセッサ５０２を企図する。限定するものとしてではなく一例として、プロセッサ５０２は、１または複数の命令キャッシュ、１または複数のデータ・キャッシュ、および１または複数の変換索引バッファ（ＴＬＢ）を含んでもよい。命令キャッシュ内の命令は、メモリ５０４またはストレージ５０６内の命令のコピーであってもよく、命令キャッシュは、プロセッサ５０２によるこれらの命令の取り出しを高速化する。データ・キャッシュ内のデータは、プロセッサ５０２にて実行される命令が操作するための、メモリ５０４またはストレージ５０６内のデータのコピー、プロセッサ５０２で実行される後続の命令によるアクセスための、またはメモリ５０４もしくはストレージ５０６に書き込むための、プロセッサ５０２で実行された以前の命令の結果、あるいは他の好適なデータであってもよい。データ・キャッシュは、プロセッサ５０２による読出しまたは書込み動作を高速化する。ＴＬＢは、プロセッサ５０２のために仮想アドレス変換を高速化する。特定の実施形態では、プロセッサ５０２は、データ、命令、またはアドレス用に１または複数の内部レジスタを含む。この開示は、適切な場合、任意の好適な数の任意の好適な内部レジスタを含むプロセッサ５０２を企図する。適切な場合、プロセッサ５０２は、１または複数の算術論理演算ユニット（ＡＬＵ）を含むことができ、マルチコア・プロセッサであってもよく、１または複数のプロセッサ５０２を含んでもよい。この開示は、特定のプロセッサについて記載
し示しているが、この開示は、任意の好適なプロセッサを企図する。
【００３９】
特定の実施形態では、メモリ５０４は、プロセッサ５０２が実行するための命令、またはプロセッサ５０２が操作するためのデータを記憶するための主記憶装置を含む。限定するものとしてではなく一例として、コンピュータ・システム５００は、ストレージ５０６または別のソース（たとえば、別のコンピュータ・システム５００など）からメモリ５０４に命令をロードする。次いで、プロセッサ５０２は、メモリ５０４から内部レジスタまたは内部キャッシュに命令をロードする。命令を実行するために、プロセッサ５０２は、内部レジスタまたは内部キャッシュから命令を取り出し、それらを復号する。命令の実行中、または実行後、プロセッサ５０２は、１または複数の結果（中間結果であることも最終結果であることもある）を内部レジスタまたは内部キャッシュに書き込む。次いで、プロセッサ５０２は、それらの結果の１または複数をメモリ５０４に書き込む。特定の実施形態では、プロセッサ５０２は、１もしくは複数の内部レジスタもしくは内部キャッシュ内、または（ストレージ５０６もしくは他の場所ではなく）メモリ５０４内の命令だけを実行し、１もしくは複数の内部レジスタもしくは内部キャッシュ内、または（ストレージ８０６もしくは他の場所ではなく）メモリ５０４内のデータだけを操作する。１または複数のメモリ・バス（それぞれがアドレス・バスとデータ・バスを含むことがある）がプロセッサ５０２をメモリ５０４に結合してもよい。バス５１２は、下記に記載されているように、１または複数のメモリ・バスを含んでもよい。特定の実施形態では、１または複数のメモリ管理ユニット（ＭＭＵ）が、プロセッサ５０２とメモリ５０４との間に存在し、プロセッサ５０２によって要求されるメモリ５０４へのアクセスを容易にする。特定の実施形態では、メモリ５０４は、ランダム・アクセス・メモリ（ＲＡＭ）を含む。このＲＡＭは、適切な場合、揮発性メモリであり得る。適切な場合、このＲＡＭは、ダイナミックＲＡＭ（ＤＲＡＭ）またはスタティックＲＡＭ（ＳＲＡＭ）であってよい。さらに、適切な場合、このＲＡＭは、シングルポート型またはマルチポート型ＲＡＭであってよい。この開示は、任意の好適なＲＡＭを企図する。メモリ５０４は、適切な場合、１または複数のメモリ５０４を含んでもよい。この開示は、特定のメモリについて記載し示しているが、この開示は、任意の好適なメモリを企図する。
【００４０】
特定の実施形態では、ストレージ５０６は、データまたは命令用のマス・ストレージを含む。限定するものとしてではなく一例として、ストレージ５０６は、ハード・ディスク・ドライブ（ＨＤＤ）、フロッピー（登録商標）ディスク・ドライブ、フラッシュ・メモリ、光ディスク、光磁気ディスク、磁気テープ、もしくはユニバーサル・シリアル・バス（ＵＳＢ）ドライブ、またはこれらの２以上の組合せを含んでもよい。ストレージ５０６は、適切な場合、取外し式または非取外し式（または固定）媒体を含んでもよい。ストレージ５０６は、適切な場合、コンピュータ・システム５００に対して内部であっても外部であってもよい。特定の実施形態では、ストレージ５０６は、不揮発性のソリッドステート・メモリである。特定の実施形態では、ストレージ５０６は、読出し専用メモリ（ＲＯＭ）を含む。適切な場合、このＲＯＭは、マスクプログラムドＲＯＭ、プログラマブルＲＯＭ（ＰＲＯＭ）、消去可能ＰＲＯＭ（ＥＰＲＯＭ）、電気的消去可能ＰＲＯＭ（ＥＥＰＲＯＭ）、電気的書き換え可能ＲＯＭ（ＥＡＲＯＭ）、もしくはフラッシュ・メモリ、またはこれらの２以上の組合せであってよい。この開示は、任意の好適な物理形態をとるマス・ストレージ５０６を企図する。ストレージ５０６は、適切な場合、プロセッサ５０２とストレージ５０６の間の通信を容易にする１または複数のストレージ制御ユニットを含んでもよい。適切な場合、ストレージ５０６は、１または複数のストレージ５０６を含んでもよい。この開示は、特定のストレージについて記載し示しているが、この開示は、任意の好適なストレージを企図する。
【００４１】
特定の実施形態では、Ｉ／Ｏインターフェース５０８は、コンピュータ・システム５００と１または複数のＩ／Ｏデバイスとの間の通信のために１または複数のインターフェー
スを提供するハードウェア、ソフトウェア、またはその両方を含む。コンピュータ・システム５００は、適切な場合、これらのＩ／Ｏデバイスの１または複数を含んでもよい。これらのＩ／Ｏデバイスの１または複数は、人とコンピュータ・システム５００の間の通信を可能にする。限定するものとしてではなく一例として、Ｉ／Ｏデバイスは、キーボード、キーパッド、マイクロフォン、モニタ、マウス、プリンタ、スキャナ、スピーカ、スチル・カメラ、スタイラス、タブレット、タッチ・スクリーン、トラックボール、ビデオ・カメラ、別の好適なＩ／Ｏデバイス、またはこれらの２以上の組合せを含んでもよい。Ｉ／Ｏデバイスは、１または複数のセンサを含んでもよい。この開示は、任意の好適なＩ／Ｏデバイス、およびそれらのための任意の好適なＩ／Ｏインターフェース５０８を企図する。適切な場合、Ｉ／Ｏインターフェース５０８は、プロセッサ５０２がこれらのＩ／Ｏデバイスの１または複数を駆動することを可能にする１または複数のデバイスまたはソフトウェア・ドライバを含む。Ｉ／Ｏインターフェース５０８は、適切な場合、１または複数のＩ／Ｏインターフェース５０８を含んでもよい。この開示は、特定のＩ／Ｏインターフェースについて記載し示しているが、この開示は、任意の好適なＩ／Ｏインターフェースを企図する。
【００４２】
特定の実施形態では、通信インターフェース５１０は、コンピュータ・システム５００と１もしくは複数の他のコンピュータ・システム５００または１もしくは複数のネットワークとの間の通信（たとえば、パケットベースの通信など）のために１または複数のインターフェースを提供するハードウェア、ソフトウェア、またはその両方を含む。限定するものとしてではなく一例として、通信インターフェース５１０は、ＥＴＨＥＲＮＥＴ（登録商標）もしくは他の有線ベースのネットワークとの通信のためのインターフェース・コントローラ（ＮＩＣ）もしくはネットワーク・アダプタ、またはＷＩ−ＦＩネットワークなど無線ネットワークとの通信のための無線ＮＩＣ（ＷＮＩＣ）もしくは無線アダプタを含んでもよい。この開示は、任意の好適なネットワーク、およびそのための任意の好適な通信インターフェース５１０を企図する。限定するものとしてではなく一例として、コンピュータ・システム５００は、アドホック・ネットワーク、パーソナル・エリア・ネットワーク（ＰＡＮ）、ローカル・エリア・ネットワーク（ＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、またはインターネットの１もしくは複数の部分、あるいはこれらの２以上の組合せと通信する。これらのネットワークの１または複数のうちの１または複数の部分は、有線であっても無線であってもよい。一例として、コンピュータ・システム５００は、無線ＰＡＮ（ＷＰＡＮ）（たとえば、ＢＬＵＥＴＯＯＴＨ（登録商標）ＷＰＡＮなど）、ＷＩ−ＦＩネットワーク、ＷＩ−ＭＡＸネットワーク、携帯電話ネットワーク（たとえば、グローバル移動体通信システム（ＧＳＭ（登録商標））ネットワークなど）、もしくは他の好適な無線ネットワーク、またはこれらの２以上の組合せと通信する。コンピュータ・システム５００は、適切な場合、これらのネットワークのいずれかのための任意の好適な通信インターフェース５１０を含んでもよい。通信インターフェース５１０は、適切な場合、１または複数の通信インターフェース５１０を含んでもよい。この開示は、特定の通信インターフェースについて記載し示しているが、この開示は、任意の好適な通信インターフェースを企図する。
【００４３】
特定の実施形態では、バス５１２は、コンピュータ・システム５００の構成要素を互いに結合するハードウェア、ソフトウェア、またはその両方を含む。限定するものとしてではなく一例として、バス５１２は、アクセラレィティッド・グラフィックス・ポート（ＡＧＰ）もしくは他のグラフィックス・バス、ＥＩＳＡ（Ｅｎｈａｎｃｅｄ  Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、フロントサイド・バス（ＦＳＢ）、ＨＴ（ＨＹＰＥＲＴＲＡＮＳＰＯＲＴ）相互接続、ＩＳＡ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、インフィニバンド相互接続、ＬＰＣ（ｌｏｗ−ｐｉｎ−ｃｏｕｎｔ）バス、メモリ・バス、ＭＣＡ（Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏ
ｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バス、ＰＣＩエクスプレス（ＰＣＩｅ）バス、ＳＡＴＡ（ｓｅｒｉａｌ  ａｄｖａｎｃｅｄ  ｔｅｃｈｎｏｌｏｇｙ  ａｔｔａｃｈｍｅｎｔ）バス、ＶＬＢ（Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ  ｌｏｃａｌ）バス、もしくは別の好適なバス、またはこれらの２以上の組合せを含んでもよい。バス５１２は、適切な場合、１または複数のバス５１２を含んでもよい。この開示は、特定のバスについて記載し示しているが、この開示は、任意の好適なバスまたは相互接続を企図する。
【００４４】
本明細書では、１または複数の非一時的コンピュータ可読記憶媒体は、適切な場合、１または複数の半導体ベースの、もしくは他の集積回路（ＩＣ）（たとえば、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）または特定用途向けＩＣ（ＡＳＩＣ））、ハード・ディスク・ドライブ（ＨＤＤ）、ハイブリッド・ハード・ドライブ（ＨＨＤ）、光ディスク、光ディスク・ドライブ（ＯＤＤ）、光磁気ディスク、光磁気ドライブ、フロッピー・ディスケット、フロッピー・ディスク・ドライブ（ＦＤＤ）、磁気テープ、ソリッドステート・ドライブ（ＳＳＤ）、ＲＡＭドライブ、セキュア・デジタル・カードもしくはセキュア・デジタル・ドライブ、任意の他の好適な非一時的コンピュータ可読記憶媒体、またはこれらの２以上の組合せを含んでもよい。非一時的コンピュータ可読記憶媒体は、適切な場合、揮発性、不揮発性、または揮発性と不揮発性の組合せであってよい。
【００４５】
本明細書では、「または（もしくは）」は、別段明確に示されていない限り、または別段文脈によって示されない限り、包括的（ｉｎｃｌｕｓｉｖｅ）であり、排他的なものではない。したがって、本明細書では、「ＡまたはＢ」は、別段明確に示されていない限り、または別段文脈によって示されない限り、「Ａ、Ｂ、またはその両方」を意味する。さらに、「および」は、別段明確に示されていない限り、または別段文脈によって示されない限り、共同であり、個別的でもある。したがって、本明細書では、「ＡおよびＢ」は、別段明確に示されていない限り、または別段文脈によって示されない限り、「ＡおよびＢを共同で、または個別的に」意味する。
【００４６】
この開示の範囲は、当業者であれば理解するであろう、本明細書に記載され、または示されている例示的な実施形態に対する変更、置換、変形、代替、および修正すべてを包含する。この開示の範囲は、本明細書に記載され、または示されている例示的な実施形態に限定されない。さらに、この開示は、それぞれの実施形態について、本明細書では、特定の構成要素、要素、機能、動作、またはステップを含むものとして記載し示しているが、これらの実施形態のいずれも、当業者であれば理解するであろう、本明細書のどこかに記載され、または示されている構成要素、要素、機能、動作、またはステップのいずれかの任意の組合せまたは並べ替えを含んでもよい。さらに、添付の特許請求の範囲において、特定の機能を実施するように適合された、するように配置された、することが可能な、するように構成された、することが可能である、するように動作可能である、またはするように動作する装置もしくはシステム、または装置もしくはシステムの構成要素に言及することは、その装置、システム、または構成要素がそのように適合され、配置され、動作可能であり、構成され、可能であり、動作可能であり、動作する限り、それ、またはその特定の機能が作動される、オンにされる、またはロック解除されるか否かにかかわらず、その装置、システム、構成要素を包含する。
【図１】
0005964526.tif 000002
【図２】
0005964526.tif 000003
【図３】
0005964526.tif 000004
【図４】
0005964526.tif 000005
【図５】
0005964526.tif 000006