(57)【特許請求の範囲】
【請求項１】
１以上のコンピューティングデバイスが、
１以上のｎ−グラムを含む、構造化されていないテキストクエリを、オンラインソーシャルネットワークの第１のユーザに関連付けられているクライアントデバイスから受け取る工程であって、前記オンラインソーシャルネットワークは、複数のノードと前記ノード同士を接続する複数のエッジとを含むソーシャルグラフに関連付けられている、受け取る工程と、
各ノードに対して決定された確率であって前記ノードが前記ｎ−グラムの少なくとも１つに対応する確率に少なくとも基づいて１以上の前記ノードを識別する工程であって、識別された前記ノードの各々は、１以上の前記ｎ−グラムの少なくとも一部と一致している、識別する工程と、
１以上の前記エッジを識別する工程であって、識別された前記エッジの各々は、識別された前記ノードの少なくとも１つにつながっており、識別された前記エッジの各々は１以上の前記ｎ−グラムの少なくとも一部と一致している、エッジを識別する工程と、
１以上の構造化クエリを生成する工程であって、前記構造化クエリの各々は、前記テキストクエリのｎ−グラムと、識別された１以上の前記ノードおよび識別された１以上の前記エッジへの参照とを含む、構造化クエリを生成する工程と、
前記テキストクエリの受信に応答して、１以上の前記構造化クエリを、前記第１のユーザに提示するために、前記第１のユーザに関連付けられているクライアントデバイスに送信する工程と、を含む、方法。
【請求項２】
複数のノードと前記ノード同士を接続する複数のエッジとを含む前記ソーシャルグラフにアクセスする工程であって、前記ノードの２つの間の前記エッジの各々は、それらのノードの間における単一の分離度を表し、前記ノードは、
オンラインソーシャルネットワークに関連付けられている第１のユーザに対応する第１ノードと、
前記オンラインソーシャルネットワークに関連付けられているコンセプトまたは第２のユーザにそれぞれ対応する複数の第２ノードとを含む、アクセスする工程をさらに含む、請求項１に記載の方法。
【請求項３】
前記構造化クエリの１つの選択を、前記第１のユーザから受け取る工程と、
前記構造化クエリの１つの前記選択に対応する検索結果を生成する工程であって、各検索結果は、識別された前記エッジの少なくとも１つを通じて、識別された前記ノードの少なくとも１つにつながっている前記複数のノードのうちの１つへの参照を含む、工程とをさらに含む、請求項１に記載の方法。
【請求項４】
前記検索結果によって参照されている前記ノードの各々は、前記第１のユーザに対応する第１ノードから分離度のしきい値の範囲内に存在する、請求項３に記載の方法。
【請求項５】
前記構造化クエリの各々を、前記第１のユーザに対応する第１ノードと、前記構造化クエリにおいて参照されている識別された前記ノードの少なくとも１つとの間の分離度に基づいて、ランク付けする工程をさらに含む、請求項１に記載の方法。
【請求項６】
前記構造化クエリの各々を、前記第１のユーザに関連付けられている検索履歴に基づいて、ランク付けする工程をさらに含む、請求項１に記載の方法。
【請求項７】
前記構造化クエリの各々を、前記構造化クエリにおいて参照されている、識別された前記ノードまたは識別された前記エッジのソーシャルな関連性に基づいて、ランク付けする工程をさらに含む、請求項１に記載の方法。
【請求項８】
前記構造化クエリの各々を、前記構造化クエリのテキストの関連性に基づいて、ランク付けする工程をさらに含む、請求項１に記載の方法。
【請求項９】
識別された前記ノードの各々は、前記第１のユーザに対応する第１ノードから分離度のしきい値の範囲内に存在する、請求項１に記載の方法。
【請求項１０】
１以上の前記ノードを識別する工程は、各ｎ−グラムについて、
前記ノードが前記ｎ−グラムに対応する確率を、各ノードについて決定する工程と、
しきい値の確率よりも高い確率を有する各ノードを識別する工程とを含む、請求項１に記載の方法。
【請求項１１】
構造化されていないテキストクエリを前記第１のユーザから受け取る工程は、前記第１のユーザがクライアントシステムにおいてクエリフィールドを備えるグラフィカルユーザインタフェースに文字列を入力するに際し、前記文字列の１以上の文字を受け取る工程を含み、前記文字列は、前記第１のユーザによって前記クエリフィールドに入力される、請求項１に記載の方法。
【請求項１２】
前記グラフィカルユーザインタフェースは、前記オンラインソーシャルネットワークに関連付けられているネイティブアプリケーションのユーザインタフェースに表示される、請求項１１に記載の方法。
【請求項１３】
前記グラフィカルユーザインタフェースは、ブラウザクライアントによってアクセスされている前記オンラインソーシャルネットワークに関連付けられているウェブページに表示される、請求項１１に記載の方法。
【請求項１４】
送信された１以上の前記構造化クエリを前記第１のユーザに提示する工程をさらに含み、送信された構造化クエリの各々について、送信された前記構造化クエリに対する１以上の前記参照は、識別されたノードまたは識別されたエッジに対応する参照を示すように表示される際に、強調される、請求項１に記載の方法。
【請求項１５】
前記構造化されていないテキストクエリは、前記オンラインソーシャルネットワークに関連付けられているアプリケーションプログラムインタフェースを通じた、前記第１のユーザに関連付けられているクライアントデバイスからの呼び出しによって、サードパーティシステムから受け取られる、請求項１に記載の方法。
【請求項１６】
前記構造化されていないテキストクエリは、前記オンラインソーシャルネットワークに関連付けられている通信チャネルを通じて前記第１のユーザに関連付けられているクライアントデバイスからサードパーティシステムから受け取られる、請求項１に記載の方法。
【請求項１７】
１以上のプロセッサと、
前記プロセッサに結合されるメモリとを備え、前記メモリは、前記プロセッサによって実行可能な命令を含み、前記プロセッサは前記命令を実行すると、
１以上のｎ−グラムを含む、構造化されていないテキストクエリをオンラインソーシャルネットワークの第１のユーザに関連付けられているクライアントデバイスから受け取る工程であって、前記オンラインソーシャルネットワークは、複数のノードと前記ノード同士を接続する複数のエッジとを含むソーシャルグラフに関連付けられている、受け取る工程と、
各ノードに対して決定された確率であって前記ノードが前記ｎ−グラムの少なくとも１つに対応する確率に少なくとも基づいて１以上の前記ノードを識別する工程であって、識
別された前記ノードの各々は、１以上の前記ｎ−グラムの少なくとも一部と一致している、識別する工程と、
１以上の前記エッジを識別する工程であって、識別された前記エッジの各々は、識別された前記ノードの少なくとも１つにつながっており、識別された前記エッジの各々は１以上の前記ｎ−グラムの少なくとも一部と一致している、エッジを識別する工程と、
１以上の構造化クエリを生成する工程であって、前記構造化クエリの各々は、前記テキストクエリのｎ−グラムと、識別された１以上の前記ノードおよび識別された１以上の前記エッジへの参照とを含む、構造化クエリを生成する工程と、
前記テキストクエリの受信に応答して、１以上の前記構造化クエリを、前記第１のユーザに提示するために、前記第１のユーザに関連付けられているクライアントデバイスに送信する工程と、を行うように動作する、システム。
【請求項１８】
１以上の非一時的なコンピュータ可読記録媒体であって、実行されると、１以上のプロセッサに、
１以上のｎ−グラムを含む、構造化されていないテキストクエリをオンラインソーシャルネットワークの第１のユーザのクライアントデバイスから受け取る工程であって、前記オンラインソーシャルネットワークは、複数のノードと前記ノード同士を接続する複数のエッジとを含むソーシャルグラフに関連付けられている、受け取る工程と、
各ノードに対して決定された確率であって前記ノードが前記ｎ−グラムの少なくとも１つに対応する確率に少なくとも基づいて１以上の前記ノードを識別する工程であって、識別された前記ノードの各々は、１以上の前記ｎ−グラムの少なくとも一部と一致している、識別する工程と、
１以上の前記エッジを識別する工程であって、識別された前記エッジの各々は、識別された前記ノードの少なくとも１つにつながっており、識別された前記エッジの各々は１以上の前記ｎ−グラムの少なくとも一部分と一致している、エッジを識別する工程と、
１以上の構造化クエリを生成する工程であって、前記構造化クエリの各々は、前記テキストクエリのｎ−グラムと、識別された１以上の前記ノードおよび識別された１以上の前記エッジへの参照とを含む、構造化クエリを生成する工程と、
前記テキストクエリの受信に応答して、１以上の前記構造化クエリを、前記第１のユーザに提示するために前記第１のユーザに関連付けられているクライアントデバイスに送信する工程と、を行わせるように動作するソフトウェアを具現化する、媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、ソーシャルグラフおよびソーシャルネットワーキング環境内のオブジェクトの検索を実行することに関する。
【背景技術】
【０００２】
ソーシャルネットワーキングウェブサイトなどのソーシャルネットワーキングシステムにより、ユーザは、システムを通じてそれと双方向に対話し、また互いに双方向に対話する。ソーシャルネットワーキングシステムは、ユーザに関連する、ユーザプロファイルとしばしば称される、記録を作成し、記憶する。ユーザプロファイルは、ユーザの連絡先情報、背景情報、職業情報、人口統計学情報、通信チャネル情報、個人的関心事、または他の好適な情報を含む。ソーシャルネットワーキングシステムは、また、ソーシャルネットワーキングシステムにおけるユーザと他のユーザとの関係の記録（例えば、ソーシャルグラフ）を作成し、記憶するだけでなく、ソーシャルネットワーキングシステムにおけるユーザ間のソーシャル（ネットワークにおける）対話を円滑にするためのサービス（例えば、ウォール投稿、写真共有、イベント企画、メッセージング、ゲーム、または広告）を提供する。ソーシャルネットワーキングシステムは、個人、グループ、エンティティ、または組織がグラフ内のノードとして表され、ノードが１または複数の特定の種類の相互依存性を表すエッジによって接続される、ソーシャルグラフを記憶する。ソーシャルネットワーキングシステムはそのサービスに関係するコンテンツおよびメッセージをネットワーク上でユーザのクライアントデバイスに送信する。
【０００３】
ソーシャルグラフ分析では、ノードとエッジとを含むネットワーク理論に関するソーシャル（ネットワークにおける）関係が閲覧される。ノードは、ネットワーク内の個別のアクターを表し、エッジは、アクター間の関係を表す。その結果得られるグラフベースの構造は、非常に複雑であることが多い。ノードには多数の種類が存在し、またノード同士を接続するためのエッジも多数存在する。その最も単純な形態において、ソーシャルグラフは、調べられているすべてのノード間の関連するエッジのすべての地図である。
【図面の簡単な説明】
【０００４】
【図１】ソーシャルネットワーキングシステムを実装するためのネットワーク環境例のネットワーク環境１００を示す図。
【図２Ａ】例示的なソーシャルネットワーキングシステムの例示的な構成要素を示す図。
【図２Ｂ】例示的なソーシャルネットワーキングシステムの例示的なアーキテクチャおよび例示的なクライアントデバイスの例示的なアーキテクチャを示す図。
【図３】例示的なソーシャルグラフを示す図。
【図４Ａ】例示的なユーザプロファイルページを示す図。
【図４Ｂ】例示的なユーザプロファイルページを示す図。
【図４Ｃ】例示的なユーザプロファイルページを示す図。
【図４Ｄ】例示的なユーザプロファイルページを示す図。
【図５Ａ】例示的なコンセプトプロファイルページを示す図。
【図５Ｂ】例示的なコンセプトプロファイルページを示す図。
【図５Ｃ】例示的なコンセプトプロファイルページを示す図。
【図６Ａ】ソーシャルネットワークの例示的なクエリを示す図。
【図６Ｂ】ソーシャルネットワークの例示的なクエリを示す図。
【図６Ｃ】ソーシャルネットワークの例示的なクエリを示す図。
【図６Ｄ】ソーシャルネットワークの例示的なクエリを示す図。
【図６Ｅ】ソーシャルネットワークの例示的なクエリを示す図。
【図６Ｆ】ソーシャルネットワークの例示的なクエリを示す図。
【図６Ｇ】ソーシャルネットワークの例示的なクエリを示す図。
【図６Ｈ】ソーシャルネットワークの例示的なクエリを示す図。
【図６Ｉ】ソーシャルネットワークの例示的なクエリを示す図。
【図６Ｊ】ソーシャルネットワークの例示的なクエリを示す図。
【図６Ｋ】ソーシャルネットワークの例示的なクエリを示す図。
【図６Ｌ】ソーシャルネットワークの例示的なクエリを示す図。
【図６Ｍ】ソーシャルネットワークの例示的なクエリを示す図。
【図６Ｎ】ソーシャルネットワークの例示的なクエリを示す図。
【図６Ｏ】ソーシャルネットワークの例示的なクエリを示す図。
【図６Ｐ】ソーシャルネットワークの例示的なクエリを示す図。
【図６Ｑ】ソーシャルネットワークの例示的なクエリを示す図。
【図６Ｒ】ソーシャルネットワークの例示的なクエリを示す図。
【図７】構造化検索クエリに対するソーシャルグラフ要素を検出するための例示的な方法を示す図。
【図８】パーソナライズされた構造化検索クエリを生成するための例示的な方法を示す図。
【図９】ソーシャルグラフ情報に基づき構造化クエリを生成するための例示的な方法を示す図。
【図１０】例示的なソーシャルグラフを示す図。
【図１１Ａ】プライバシ設定を解決するための例示的なサブグラフを示す図。
【図１１Ｂ】プライバシ設定を解決するための例示的なサブグラフを示す図。
【図１１Ｃ】プライバシ設定を解決するための例示的なサブグラフを示す図。
【図１２】プライバシ設定に基づき構造化検索クエリに対する検索結果をフィルタ処理するための例示的な方法を示す図。
【図１３】例示的なコンピュータシステムを示す図。
【図１４】例示的なネットワーク環境を示す図。
【発明を実施するための形態】
【０００５】
システムの概要
図１は、ソーシャルネットワーキングシステムを実装するための例示的なネットワーク環境１００を示している。本明細書で説明されているさまざまな例示的な実施形態は、ネットワーク環境１００内で動作する。特定の実施形態は、複数のネットワークアドレッシング可能システムを含む、インターネットなどの、ワイドエリアネットワーク環境内で、またはそれとともに動作する。ネットワーク環境１００は、ソーシャルネットワーキングシステム２０、クライアントデバイス３０、ウェブアプリケーションサーバ４０、およびネットワーククラウド６０によって互いに接続されているエンタプライズサーバ５０を含む。図１は、ソーシャルネットワーキングシステム２０、クライアントデバイス３０、ウェブアプリケーションサーバ４０、エンタプライズサーバ５０、およびネットワーククラウド６０の特定の構成を示しているが、本開示では、ソーシャルネットワーキングシステム２０、クライアントデバイス３０、ウェブアプリケーションサーバ４０、エンタプライズサーバ５０、およびネットワーククラウド６０の任意の好適な構成を企図する。例えば、限定されるものでないが、ソーシャルネットワーキングシステム２０、クライアントデバイス３０、ウェブアプリケーションサーバ４０、およびエンタプライズサーバ５０のうちの２以上を、ネットワーククラウド６０をバイパスして、互いに直接に接続する。別の例として、ソーシャルネットワーキングシステム２０、クライアントデバイス３０、ウェブアプリケーションサーバ４０、およびエンタプライズサーバ５０のうちの２以上が、全体として、または一部だけ、互いに同じ場所に、物理的または論理的に配置される。さらに、図１は、特定の数のソーシャルネットワーキングシステム２０、クライアントデバイ
ス３０、ウェブアプリケーションサーバ４０、エンタプライズサーバ５０、およびネットワーククラウド６０を示しているが、本開示では、任意の好適な数のソーシャルネットワーキングシステム２０、クライアントデバイス３０、ウェブアプリケーションサーバ４０、エンタプライズサーバ５０、およびネットワーククラウド６０を企図する。例えば、限定されるものでないが、ネットワーク環境１００は、複数のソーシャルネットワーキングシステム２０、クライアントデバイス３０、ウェブアプリケーションサーバ４０、エンタプライズサーバ５０、およびネットワーククラウド６０を含む。
【０００６】
特定の実施形態において、ウェブアプリケーションサーバ４０は、サードパーティウェブサイト（例えば、ｈｔｔｐ：／／ｗｗｗ．ｅｓｐｎ．ｃｏｍ、ｈｔｔｐ：／／ｗｗｗ．ｙｏｕｔｕｂｅ．ｃｏｍ）をホストするネットワークアドレッシング可能なコンピューティングシステムであってもよい。ウェブアプリケーションサーバ４０は、例えば、ユーザデータおよびウェブページ情報の生成、記憶、受信、および送信を行う。ウェブアプリケーションサーバ４０は、直接的に、またはネットワーククラウド６０を通じて、ネットワーク環境１００の他の構成要素によってアクセスされる。特定の実施形態において、エンタプライズサーバ５０は、１または複数のエンタプライズシステムをホストするネットワークアドレッシング可能なコンピューティングシステムであってもよい。エンタプライズサーバ５０は、任意の好適なエンタプライズデータの生成、記憶、受信、および送信を行う。エンタプライズサーバ５０は、直接的に、またはネットワーククラウド６０を通じて、ネットワーク環境１００の他の構成要素によってアクセスされる。
【０００７】
特定の実施形態において、ユーザは、１または複数のクライアントデバイス３０を使用して、ソーシャルネットワーキングシステム２０またはウェブアプリケーションサーバ４０にアクセスし、データをソーシャルネットワーキングシステム２０またはウェブアプリケーションサーバ４０に送信し、ソーシャルネットワーキングシステム２０またはウェブアプリケーションサーバ４０からデータを受信する。クライアントデバイス３０は、ソーシャルネットワーキングシステム２０、またはウェブアプリケーションサーバ４０に、直接的に、ネットワーククラウド６０を通じて、またはサードパーティシステムを通じてアクセスする。例えば、限定されるものでないが、クライアントデバイス３０は、ウェブアプリケーションサーバ４０またはエンタプライズサーバ５０に、ソーシャルネットワーキングシステム２０を通じてアクセスする。クライアントデバイス３０は、例えば、パーソナルコンピュータ、ラップトップ、携帯電話、スマートフォンもしくは他のセルラデバイスもしくはモバイルデバイス、携帯情報端末、純正もしくは後付ナビゲーションシステム、モバイルゲーム機、またはコンピューティングタブレットなどの任意の好適なコンピューティングデバイスであってよい。
【０００８】
特定の実施形態において、ネットワーククラウド６０は、本明細書で説明されているさまざまなシステムおよびホストが通信する際に経由する１または複数の相互接続されたネットワークを含む。本開示では、任意の好適なネットワーククラウド６０を企図する。例えば、限定されるものでないが、ネットワーククラウド６０の１または複数の部分は、アドホックネットワーク、イントラネット、プライベートネットワーク、エクストラネット、仮想プライベートネットワーク（ＶＰＮ）、ローカルエリアネットワーク（ＬＡＮ）、無線ＬＡＮ（ＷＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、無線ＷＡＮ（ＷＷＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、インターネットの一部、パケットベースのワイドエリアネットワーク、公衆交換電話網（ＰＳＴＮ）の一部、携帯電話網、衛星ネットワーク、ページングネットワーク、またはこれらのネットワークの２以上の組み合わせを含む。ネットワーククラウド６０は、１または複数のネットワーククラウド６０を含む。
【０００９】
特定の実施形態において、接続７０で、ソーシャルネットワーキングシステム２０、ク
ライアントデバイス３０、ウェブアプリケーションサーバ４０、およびエンタプライズサーバ５０を互いに、または通信ネットワーククラウド６０と接続する。本開示では、任意の好適な接続７０を企図する。特定の実施形態において、１または複数の接続７０は、１または複数の有線接続（例えば、デジタル加入者回線（ＤＳＬ）またはデータオーバーケーブルサービスインタフェース仕様（ＤＯＣＳＩＳ）など）、無線接続（例えば、Ｗｉ−ＦｉまたはＷｉＭＡＸ（Ｗｏｒｌｄｗｉｄｅ  Ｉｎｔｅｒｏｐｅｒａｂｉｌｉｔｙ  ｆｏｒ  Ｍｉｃｒｏｗａｖｅ  Ａｃｃｅｓｓ）など）、または光接続（例えば、同期型光ネットワーク（ＳＯＮＥＴ）または同期デジタルハイアラキー（ＳＤＨ）など）を含む。特定の実施形態において、１または複数の接続７０は、それぞれ、アドホックネットワーク、イントラネット、エクストラネット、ＶＰＮ、ＬＡＮ、ＷＬＡＮ、ＷＡＮ、ＷＷＡＮ、ＭＡＮ、インターネットの一部、ＰＳＴＮの一部、携帯電話網、別の接続７０、または２以上のそのような接続７０の組み合わせを含む。接続７０は、ネットワーク環境１００全体を通して必ずしも同一でなくてよい。１または複数の第１の接続７０は、１または複数の第２の接続７０と１または複数の点で異なる。
【００１０】
特定の実施形態において、クライアントデバイス３０は、ウェブブラウザ（例えば、ＭＩＣＲＯＳＯＦＴ  ＷＩＮＤＯＷＳ（登録商標）ＩＮＴＥＲＮＥＴ  ＥＸＰＬＯＲＥＲ、ＭＯＺＩＬＬＡ  ＦＩＲＥＦＯＸ、ＡＰＰＬＥ  ＳＡＦＡＲＩ、ＧＯＯＧＬＥ  ＣＨＲＯＭＥ、およびＯＰＥＲＡなど）、または専用クライアントアプリケーション（例えば、ｉＰｈｏｎｅ（登録商標）用Ｆａｃｅｂｏｏｋ（登録商標）など）などの、１または複数のクライアントアプリケーションを実行して、ネットワーククラウド６０上のコンテンツにアクセスし、閲覧させる。特定の実施形態において、クライアントアプリケーションは、クライアントデバイス３０のユーザが、ソーシャルネットワーキングシステム２０、ウェブアプリケーションサーバ４０、エンタプライズサーバ５０、または別の好適なホストによってホストされる資源（リソース）などの取り出されるべき特定のネットワークリソースのアドレスを入力することを可能にする。これらのアドレスは、ユニフォームリソースロケータ（ＵＲＬ）または他の好適なアドレスタイプである。ウェブページまたは他のリソースが取り出された後、クライアントアプリケーションは、ユーザが他のリソースへのハイパーリンクを「クリック」したときに他のウェブページまたはリソースへのアクセスを提供する。例えば、限定されるものでないが、そのようなハイパーリンクは、ウェブページ内に配置され、ユーザが別のページのＵＲＬを入力し、そのページを取り出すための自動化された手段となり得る。
【００１１】
より具体的には、ユーザがクライアントデバイス３０でソーシャルネットワーキングシステム２０によってホストされる特定のウェブページ（これ以降、ターゲット構造化ドキュメントとも称する）、またはウェブアプリケーションサーバ４０によってホストされる（また場合によっては、ソーシャルネットワーキングシステム２０とともに利用可能にされる）ウェブアプリケーションを閲覧することを望んでいる場合、ユーザのウェブブラウザ、または別のクライアントサイド構造化ドキュメントレンダリングエンジンまたは好適なクライアントアプリケーションが、リクエストを定式化してソーシャルネットワーキングシステム２０に送信する。このリクエストは、ＵＲＬまたは他のドキュメント識別子、さらにはメタデータまたは他の情報を含む。例えば、限定されるものでないが、リクエストは、ユーザＩＤなどのユーザを識別する情報、さらにはユーザのクライアントデバイス３０上で動作しているウェブブラウザまたはオペレーティングシステムを識別または特徴付ける情報を含む。リクエストは、ユーザのクライアントデバイス３０の地理的位置またはユーザのクライアントデバイス３０の論理的ネットワーク位置を識別する位置情報、さらにはリクエストがいつ送信されたかを識別するタイムスタンプも含む。
【００１２】
図２Ａは、例示的なソーシャルネットワーキングシステム２０の例示的な構成要素を示す。特定の実施形態において、ソーシャルネットワーキングシステム２０は、オンライン
ソーシャルネットワークをホストするネットワークアドレッシング可能なコンピューティングシステムであってもよい。ソーシャルネットワーキングシステム２０は、例えば、ユーザプロファイルデータ、コンセプトプロファイルデータ、ソーシャルグラフ情報、またはオンラインソーシャルネットワークに関係する他の好適なデータなどの、ソーシャルネットワーキングデータの生成、記憶、受信、および送信を行う。特定の実施形態において、本明細書で説明されているような１または複数のウェブページまたはウェブアプリケーションは、ソーシャルネットワーキングシステム２０またはオンラインソーシャルネットワークに関連付けられる。ソーシャルネットワーキングシステム２０は、直接的に、またはネットワーククラウド６０を通じて、ネットワーク環境１００の他の構成要素によってアクセスされる。例えば、限定されるものでないが、ソーシャルネットワーキングシステム２０は、ユーザがクライアントデバイス３０で、本明細書で説明されるように、互いに通信するか、または他の任意の形で双方向に対話し、ユーザプロファイルなどのコンテンツにアクセスすることを可能にするコンピューティングシステムを含む。特定の実施形態において、ソーシャルネットワーキングシステム２０は、さまざまな例示的な実施形態において、１または複数の物理サーバ２２、さらには本明細書でデータストア２４と総称される１または複数のデータストア（さまざまな統合された、または分散されたコンピューティングシステム、データベース、またはデータサーバのうちの１または複数に実装されるか、またはそれらによって実装される）を含むネットワークアドレッシング可能なコンピューティングシステムを含む。物理サーバ２２は、例えば、一組のルータまたはネットワーキングスイッチ２６を通じて、コンピュータネットワーク６０に動作可能に接続される。特定の実施形態において、１または複数の物理サーバ２２によってホストされる機能は、ウェブまたはＨＴＴＰサーバ、ＦＴＰサーバ、さらには、限定されるものでないが、共通ゲートウェイインタフェース（ＣＧＩ）スクリプト、ＰＨＰハイパーテキストプリプロセッサ（ＰＨＰ）、アクティブサーバページ（ＡＳＰ）、ハイパーテキストマークアップ言語（ＨＴＭＬ）、拡張マークアップ言語（ＸＭＬ）、Ｊａｖａ（登録商標）、ＪａｖａＳｃｒｉｐｔ（登録商標）、ＡＪＡＸ（Ａｓｙｎｃｈｒｏｎｏｕｓ  ＪａｖａＳｃｒｉｐｔ  ａｎｄ  ＸＭＬ）、および同様のものを使用して実装されるウェブページおよびアプリケーションを含む。
【００１３】
特定の実施形態において、物理サーバ２２は、ソーシャルネットワーキングシステム２０のオペレーションを対象とする機能をホストする。例えば、限定されるものでないが、ソーシャルネットワーキングシステム２０は、１または複数のユーザが、１または複数のクライアントデバイス３０で、情報を閲覧し、投稿すること、さらにはウェブサイトを通じて互いに通信することを可能にするウェブサイトをホストする。これ以降、サーバ２２は、サーバ２２と称されるが、ここで説明するように、サーバ２２は、例えばソーシャルネットワーキングシステム２０、さらには他のコンテンツ配信サーバ、データストア、またはデータベースをホストする多数のサーバを含む。データストア２４は、ソーシャルネットワーキングシステム２０のオペレーションに関係する、またそのオペレーションを可能にする、コンテンツおよびデータを、コンテンツオブジェクトを含むデジタルデータオブジェクトとして記憶する。特定の実施形態において、データオブジェクトは、典型的にはデータファイル、データベース、またはレコード内に記憶されるか、または具現化される一デジタル情報であってよい。コンテンツオブジェクトは、テキスト（例えば、ＡＳＣＩＩ、ＳＧＭＬ、ＨＴＭＬ）、画像（例えば、ｊｐｅｇ、ｔｉｆ、およびｇｉｆ）、グラフィックス（ベクトルベースまたはビットマップ）、オーディオ、ビデオ（例えば、ｍｐｅｇ）、または他のマルチメディア、およびこれらの組み合わせを含む多数の形態をとり得る。コンテンツオブジェクトデータは、実行可能コードオブジェクト（例えば、ブラウザウィンドウまたはフレーム内で実行可能なゲーム）、ポッドキャストなども含む。論理的に、データストア２４は、１または複数の物理システム上に記憶されている論理的に関係するレコードまたはファイルの統合された集合体として情報を維持する関係データベースもしくはオブジェクト指向型データベースなどの、さまざまな個別、または統合データ
ベースのうちの１または複数に対応する。構造に関して、データストア２４は、一般的に、データストレージおよび管理システムの大きなクラスの１または複数を含む。特定の実施形態において、データストア２４は、１または複数のデータベースサーバ、大容量記憶媒体、メディアライブラリシステム、ストレージエリアネットワーク、データストレージクラウド、および同様のものなどの、構成要素を含む任意の好適な物理システム（複数可）によって実装される。特定の実施形態において、データストア２４は、１または複数のサーバ、データベース（例えば、ＭｙＳＱＬ）、および／またはデータウェアハウスを含む。データストア２４は、異なるソーシャルネットワーキングシステム２０のユーザ、クライアントデバイス３０、ウェブアプリケーションサーバ４０、またはエンタプライズサーバ５０に関連付けられているデータ、さらには特定の実施形態において、さまざまなコンセプトに関連付けられているデータを含む。
【００１４】
図２Ｂは、例示的なソーシャルネットワーキングシステム２０の例示的なアーキテクチャおよび例示的なクライアントデバイス３０の例示的なアーキテクチャを示す。特定の実施形態において、クライアントデバイス３０は、ウェブブラウザ２０２、およびフロントエンドタイプアヘッドプロセス２０４を含む。特定の実施形態において、ソーシャルネットワーキングシステム２０は、ソーシャルグラフデータベース２０６およびコンセプトデータベース２１６を含むデータストア２４を含む。特定の実施形態において、ソーシャルネットワーキングシステム２０は、ページ生成プロセス２００、バックエンドタイプアヘッドプロセス２０８、エッジ生成ＡＰＩ２１０、ノード生成ＡＰＩ２１２、ブートストラッピングプロセス２１４、推奨生成プロセス２１８、およびインデックス作成プロセス２２０を含む物理サーバ２２を含む。
【００１５】
特定の実施形態において、ソーシャルネットワーキングシステム２０は、ソーシャルグラフ情報を含むソーシャルグラフに関して記述されるか、または実装される。特定の実施形態において、データストア２４は、本明細書で説明されているソーシャルネットワーキングシステム２０を実装する際に使用するソーシャルグラフ情報が記憶されるソーシャルグラフデータベース２０６を含む。特定の実施形態において、データストア２４内に、特にソーシャルグラフデータベース２０６内に、ソーシャルネットワーキングシステム２０によって記憶されたソーシャルグラフ情報は、複数のノードおよび対応するノード間の接続を定義する複数のエッジを含む。特定の実施形態において、ノードまたはエッジそれ自体は、対応するユーザまたはコンセプトに対する識別子、属性、および情報（対応するプロファイルページに対する情報を含む）を含むデータオブジェクトであり、その一部は対応するプロファイルまたは他のページ上に実際にレンダリングされる。ノードは、各ノードに対応するプロファイルページのレンダリングと連携してコンテンツをレンダリングする際に使用する他のオブジェクト、データ構造、またはリソースへのポインタまたは参照も含む。
【００１６】
特定の実施形態において、ソーシャルネットワーキングシステム２０によってホストされているウェブページまたは構造化ドキュメントに対するリクエストが、ソーシャルネットワーキングシステム２０によって受信されると、ソーシャルネットワーキングシステム２０内で実行中の１または複数のページ生成プロセス２００が、ハイパーテキストマークアップ言語（ＨＴＭＬ）、拡張マークアップ言語（ＸＭＬ）、またはウェブブラウザによってサポートされている他の構造化ドキュメントの形態で基本ウェブページを生成する。次いで、生成された構造化ドキュメントは、１または複数の部分もしくは部分応答を含む、応答で、要求しているリクエストクライアント３０に、ハイパーテキスト転送プロトコル（ＨＴＴＰ）またはクライアントデバイス３０のウェブブラウザ２０２によるレンダリングに適した他の好適な接続を通じて送信される。構造化ドキュメントは、送信ドキュメント内に埋め込まれた、１または複数のリソース（例えば、ＪａｖａＳｃｒｉｐｔスクリプト、コードセグメント、またはリソース、カスケーディングスタイルシート（ＣＳＳ）
コードセグメントもしくはリソース、画像データもしくはリソース、ビデオデータもしくはリソースなど）、またはそのようなリソースへの参照を含む。例えば、限定されるものでないが、ＨＴＭＬドキュメント内に埋め込まれたリソースは、一般的に、リソースのタイプに応じて、とりわけスクリプト要素、画像要素、またはオブジェクト要素内に含まれるか、または指定される。リソースを参照または指定する要素は、サーバ２２またはソーシャルネットワーキングシステム２０内のデータストア２４内に、またはウェブページを要求したクライアントデバイス３０の１または複数の外部位置に配置される、リソースの位置を識別するソース属性（例えば、ｓｒｃ）を含む。応答を受信した後、クライアントデバイス３０で動作しているウェブブラウザ２０２または他のクライアントドキュメントレンダリングアプリケーションは、次いで、受信された構造化ドキュメントのドキュメントオブジェクトモデル（ＤＯＭ）表現を構築することができ、ドキュメント内に埋め込まれたリソース（複数可）（１または複数の他の外部位置にある）を要求する。
【００１７】
特定の実施形態において、ソーシャルネットワーキングシステム２０の登録ユーザが最初に所定のユーザセッションにおいてソーシャルネットワーキングシステム２０からウェブページを要求すると、ソーシャルネットワーキングシステム２０からユーザのクライアントデバイス３０に送信される応答は、クライアントデバイスにおいてログインページをレンダリングするためにページ生成プロセス２００によって生成された構造化ドキュメントを含む。次いで、ユーザは、自分のユーザログイン信用証明（例えば、ユーザＩＤおよびパスワード）を入力することができ、次いでユーザのクライアントデバイス３０からソーシャルネットワーキングシステム２０に送信される。ユーザの認証に成功した後、ソーシャルネットワーキングシステム２０は、ユーザのクライアントデバイス３０でユーザホームページ、ユーザプロファイルページ、または別のランディングページをレンダリングするためにページ生成プロセス２００によって生成された構造化ドキュメントを含む応答をユーザのクライアントデバイス３０におけるユーザのウェブブラウザ２０２に送信する。さらに、本明細書でさらに説明されている特定の実施形態において、この、またはその後の応答は、ユーザのクライアントデバイス３０によって受信されたときに、ユーザのウェブブラウザ２０２と連携して実行するフロントエンド（クライアントサイド）タイプアヘッドプロセス２０４を実装する１または複数の実行可能コードセグメント（例えば、ＪａｖａＳｃｒｉｐｔ）をさらに含む。
【００１８】
ソーシャルグラフ
図３は、例示的なソーシャルグラフ３００を示す。特定の実施形態において、ソーシャルネットワーキングシステム２０は、１または複数のデータストア２４に１または複数のソーシャルグラフ３００を記憶する。特定の実施形態において、ソーシャルグラフ３００は、複数のユーザノード３０２および／または複数のコンセプトノード３０４を含む、複数のノードからなり、またこれらのノードを接続する複数のエッジ３０６も含む。図３に示されている例示的なソーシャルグラフ３００は、教示を目的として、２次元の視覚的マップ表現で示されている。特定の実施形態において、ソーシャルネットワーキングシステム２０、クライアントデバイス３０、またはウェブアプリケーションサーバ４０は、本明細書で説明されているいくつかのアプリケーションを含む、さまざまなアプリケーションに対するソーシャルグラフ３００および関係するソーシャルグラフ情報にアクセスする。ソーシャルグラフ３００の複数のノードおよびエッジは、データオブジェクトとして、例えば、データストア２４、特にソーシャルグラフデータベース２０６内に記憶される。それに加えて、本明細書で説明されるように、データストア２４は、ソーシャルグラフデータベース２０６のインデックス作成によって生成されるノードまたはエッジの１または複数の検索可能な、またはクエリされるインデックスをさらに含む。
【００１９】
特定の実施形態において、それぞれのユーザノード３０２は、ソーシャルネットワーキングシステム２０のユーザに対応する。例えば、限定されるものでないが、ユーザは、ソ
ーシャルネットワーキングシステム２０を対話的に操作するか、またはそれと通信するか、またはソーシャルネットワーキングシステム２０経由で通信する個人（人間のユーザ）、エンティティ（例えば、企業、会社、またはサードパーティアプリケーション）、またはグループ（例えば、個人もしくはエンティティの）である。本明細書で使用されるように、「登録ユーザ」は、ソーシャルネットワーキングシステム２０内に正式に登録したユーザを示す。特定の実施形態において、ユーザがソーシャルネットワーキングシステム２０にアカウントを登録すると、ソーシャルネットワーキングシステム２０は、そのユーザに対応するユーザノード３０２を作成し、ユーザノード３０２を１または複数のデータストア２４内に記憶する。一般的に、本明細書で説明されているユーザおよびユーザノード３０２は、登録ユーザおよびこれらのユーザに関連付けられているユーザノード３０２を示すが、これは他の実施形態では必ずしも必要というわけではない。すなわち、特定の実施形態では、本明細書で説明されているユーザおよびユーザノード３０２は、ソーシャルネットワーキングシステム２０に登録していないユーザを示す。本明細書で使用されるように、「認証ユーザ」は、ソーシャルネットワーキングシステム２０によって、ユーザが管理者権限を有する対応するプロファイルページにおいて主張されているユーザ、あるいは主張されているユーザの好適な信頼できる代理であるものとして認証されているユーザを示す。特定の実施形態において、ユーザノード３０２は、ユーザによって提供される情報、およびソーシャルネットワーキングシステム２０を含む、さまざまなシステムによって集められた情報に関連付けられる。例えば、限定されるものでないが、ユーザは、自分の名前、プロファイル画像、連絡先情報、誕生日、性別、配偶者の有無、家族の有無、職業、学歴、好み、関心事、および他の人口統計学情報を提供する。特定の実施形態において、それぞれのユーザノード３０２は、ユーザに関連付けられている情報に対応する１または複数のデータオブジェクトに関連付けられる。特定の実施形態において、それぞれのユーザノード３０２は、１または複数のウェブページまたは１または複数のユーザプロファイルページに対応する。例えば、限定されるものでないが、特定のユーザのユーザ識別子を含むリクエストに応答して、ソーシャルネットワーキングシステム２０は、ユーザ識別子に基づき対応するユーザノード３０２にアクセスし、特定のユーザの名前、プロファイル画像、および関心事を含むユーザプロファイルページを構築する。
【００２０】
特定の実施形態において、それぞれのコンセプトノード３０４は、１つのコンセプトに対応する。例えば、限定されるものでないが、コンセプトは、場所（例えば、映画館、レストラン、名所旧跡、または都市）、ウェブサイト（例えば、ソーシャルネットワークシステム２０に関連付けられているウェブサイト、またはウェブアプリケーションサーバ４０に関連付けられているサードパーティウェブサイトなど）、エンティティ（例えば、人、会社、団体、スポーツチーム、または著名人など）、リソース（例えば、オーディオファイル、ビデオファイル、デジタル写真、テキストファイル、構造化ドキュメント、またはアプリケーション、リソースはソーシャルネットワーキングシステム２０またはウェブアプリケーションサーバ４０などの外部サーバ上に配置される）、不動産または知的財産（例えば、彫刻、画像、映画、ゲーム、楽曲、アイデア、写真、または著作物）、ゲーム、アクティビティ、アイデアもしくは理論、別の好適なコンセプト、または２以上のそのようなコンセプトに対応する。コンセプトの管理者ユーザ（例えば、コンセプトの所有者もしくは管理者など）は、コンセプトに関係する情報を与えることによって（例えば、オンラインフォームに記入することによって）コンセプトノード３０４を作成することができ、これにより、ソーシャルネットワーキングシステム２０は対応するコンセプトノード３０４を作成し、次いで、これがデータストア２４の１または複数に記憶される。コンセプトノード３０４は、コンセプトの管理者ユーザによって提供されるコンセプトの情報、およびソーシャルネットワーキングシステム２０を含む、さまざまなシステムによって集められた情報に関連付けられる。例えば、限定されるものでないが、コンセプトの情報は、名前または肩書きとして、１または複数の画像（例えば、書籍の表紙の画像）、位置（例えば、住所、地理的位置）、ウェブサイト（例えば、ＵＲＬアドレス）、連絡先情報（
例えば、電話番号、電子メールアドレス）、他の好適なコンセプト情報、またはこのような情報の組み合わせを含む。特定の実施形態において、それぞれのコンセプトノード３０４は、コンセプトノード３０４に関連付けられている情報に対応する１または複数のデータオブジェクトに関連付けられる。特定の実施形態において、それぞれのコンセプトノード３０４は、１つのウェブページに対応する。例えば、限定されるものでないが、名前（またはＵＲＬアドレス）を含むリクエストに応答して、ソーシャルネットワーキングシステムは、名前に基づき対応するコンセプトノード（データストア２４の１または複数に記憶される）にアクセスし、コンセプトの名前、１または複数の画像、および連絡先情報を含むウェブページを構築する。
【００２１】
特定の実施形態において、ソーシャルグラフ３００内のそれぞれのノードは、対応するウェブページ（「プロファイルページ」）を表すか、またはそれによって表される。プロファイルページは、ソーシャルネットワーキングシステム２０によってホストされるか、またはアクセス可能である。またプロファイルページは、ウェブアプリケーションサーバ４０に関連付けられているサードパーティウェブサイト上でホストされる。例えば、限定されるものでないが、特定の外部ウェブページに対応するプロファイルページは、単に、特定の外部ウェブページであってもよく、このプロファイルページは、特定のコンセプトノード３０４に対応する。プロファイルページは、すべてのユーザまたは他のユーザの選択された部分集合によって閲覧可能である。例えば、限定されるものでないが、ユーザノード３０２は、対応するユーザがコンテンツを追加すること、宣言を行うこと、または他の任意の形で自己表現することを行う対応するユーザプロファイルページを有する。一般的に、ユーザは、自分の各ユーザプロファイルページの全部または一部への管理者権限を有する。潜在的に、例えば、とりわけホームページ、ページホスティングウェブアプリケーションを含む特定のユーザによって作成されるか、または特定のユーザ向けに作成された他のページに対しても同様である。別の例として、限定されるものでないが、コンセプトノード３０４は、そのコンセプトノード３０４に対応するコンセプトプロファイルページ（「ハブ」）を有しており、１または複数のユーザは、コンテンツを追加すること、宣言を行うこと、または自己表現することを、特にコンセプトとの関連でコンセプトプロファイルページ（「ハブ」）に行う。本開示ではノードが接続されていることについて一般的に説明しているが、本開示ではプロファイルページが接続されていることについても説明する。プロファイルページが接続されていることに言及した場合、これは、一般的に、文脈上そうでないことが示唆されていない限り、それらのプロファイルページに対応するノードが１または複数のエッジ３０６によってソーシャルグラフ３００内で接続されていることを示す。
【００２２】
特定の実施形態において、コンセプトノード３０４は、ウェブアプリケーションサーバ４０によってホストされているサードパーティウェブページまたはリソースを表す。サードパーティウェブページまたはリソースは、アクションまたはアクティビティを表す選択可能なアイコン（例えば、ＪａｖａＳｃｒｉｐｔ、ＡＪＡＸ、またはＰＨＰコードで実装される）を含む。例えば、限定されるものでないが、カリフォルニア州パロアルトのザ・オールド・プロ・スポーツバー（Ｔｈｅ  Ｏｌｄ  Ｐｒｏ  Ｓｐｏｒｔｓ  Ｂａｒ  ｉｎ
Ｐａｌｏ  Ａｌｔｏ，  Ｃａｌｉｆｏｒｎｉａ）に関する「オールド・プロ（Ｏｌｄ  Ｐｒｏ）」に対するサードパーティウェブページは、図５Ｂに示されているウェブページ５２０のような「“いいね”と表明（Ｌｉｋｅ）」または「チェックイン」などの選択可能なアイコンを含むか、または例えば「食事をする」、「推奨する」、または他の好適なアクションもしくはアクティビティなどの選択可能なアイコンを含む。サードパーティウェブページを閲覧しているユーザは、いくつかのアイコンのうちの１つ（例えば、「食事をする」）を選択することによってアクションを実行することができ、これによりクライアントデバイス３０はソーシャルネットワーキングシステム２０に、ユーザのアクション（例えば、「Ｏｌｄ  Ｐｒｏ」で食事をする）を示すメッセージを送信する。サードパー
ティウェブページまたはリソースに対応するコンセプトノード３０４が、ソーシャルグラフ３００内に存在している場合、このメッセージに応答して、ソーシャルネットワーキングシステム２０は、そのユーザに対応するユーザノード３０２とサードパーティウェブページまたはリソースに対応するコンセプトノード３０４との間にエッジ（例えば、「食事をする」エッジ）を作成し、このエッジ３０６をデータストア２４の１または複数に記憶する。サードパーティウェブページまたはリソースに対応するコンセプトノード３０６が、ソーシャルグラフ３００内に存在していない場合、このメッセージに応答して、ソーシャルネットワーキングシステム２０は、サードパーティウェブページまたはリソースに対応するコンセプトノード３０４を作成し、新規作成されたコンセプトノードとそのユーザに対応するユーザノードとの間にエッジ３０６（例えば、「食事をする」エッジ）を作成し、コンセプトノード３０４およびエッジ３０６をデータストア２４の１または複数に記憶する。
【００２３】
特定の実施形態において、特定のコンセプトは、１または複数のコンセプトノード３０４に対応する。ソーシャルグラフ３００は、同じコンセプト（例えば、同じ現実世界のエンティティ）に対応する複数のコンセプトノード３０４を含む。すなわち、いくつかのコンセプトノード３０４のそれぞれのコンセプトノード３０４は、同じコンセプトに関するものである異なるウェブページに対応する。例えば、限定されるものでないが、人気のある著名人またはレストランは、例えば、さまざまなユーザによってオーサリングされている「ファンページ」、「公式ページ」、または「レビューページ」などのいくつかのウェブページを有している場合がある。
【００２４】
特定の実施形態において、複数のユーザノード３０２およびコンセプトノード３０４は、それぞれ、管理されているノードおよび管理されていないノードを表す。管理されているノード（すなわち、ユーザノード３０２）は、それぞれ各ユーザおよびそのユーザの各ユーザプロファイルページに対応するユーザ管理されているノードである。特定の実施形態において、ユーザノード３０２に対応するユーザプロファイルページは、各所有者（登録）ユーザによって、また各所有者（登録）ユーザによってのみ、修正されるか、書き込まれるか、または他の任意の形で管理される（例えば登録ユーザ側による良心的な、または他の任意の不適切なアクションの結果として、ソーシャルネットワーキングシステム２０の公式管理者が一般にユーザのプロファイルページの修正または削除のためアクセスすることを望むか、またはアクセスすることを必要としていない限り）。管理されていないノード（すなわち、コンセプトノード３０４）は、それぞれ各コンセプトおよび各コンセプトに割り振られた各コンセプトプロファイルページ（これ以降「ハブ」とも称する）に対応するユーザ管理されていないノードである。特定の実施形態において、管理されていないノードは、いずれのユーザによっても一般に管理されていない各コンセプトプロファイルページ（ハブ）を有するノードであり、むしろ、特定の実施形態において、ハブは、一般的に、少なくとも一部は、特定の実施形態においてコンセプトノード３０４との接続を有していないユーザ（すなわち、ユーザノード３０２が必ずしもソーシャルグラフデータベース２０６におけるソーシャルグラフ３００内のエッジでコンセプトノード３０４と接続されていないユーザ）を含むソーシャルネットワーキングシステム２０の登録ユーザによって管理され、作成され、書き込まれ、またそのような登録ユーザの寄与を受けるか、またはそのような登録ユーザによって修正される。ある意味で、ハブは、ソーシャルネットワーキングシステム２０の登録ユーザのコミュニティによって管理されるか、またはそのコミュニティによる寄与を受ける。
【００２５】
特定の実施形態において、ソーシャルグラフ３００内の一対のノードが、１または複数のエッジ３０６によって接続される。一対のノードを接続するエッジ３０６は、その一対のノード間の関係を表す。特定の実施形態において、それぞれのエッジ３０６は、一対のノードの間の関係に対応する１または複数のデータオブジェクトまたは属性を含むか、ま
たはそれらを表す。例えば、限定されるものでないが、第１のユーザは、第２のユーザが第１のユーザの「友達」であることを標識により示す。この標識に応答して、ソーシャルネットワーキングシステム２０は、「友達リクエスト」を第２のユーザに送信し得る。第２のユーザが「友達リクエスト」を確認した場合、ソーシャルネットワーキングシステム２０は、ソーシャルグラフ３００内の第１のユーザのユーザノード３０２と第２のユーザのユーザノード３０２とを接続するエッジ３０６を作成し、エッジ３０６をソーシャルグラフ情報としてデータストア２４の１または複数に記憶する。図３の例において、ソーシャルグラフ３００は、ユーザ「Ａ」およびユーザ「Ｂ」のユーザノード３０２の間の友達関係を示すエッジ３０６、およびユーザ「Ｃ」およびユーザ「Ｂ」のユーザノード３０２の間の友達関係を示すエッジを含む。本開示ではユーザノード３０２を接続する特定の属性を有するエッジ３０６を説明し、図３で図示しているが、本開示では、ユーザノード３０２を接続する任意の好適な属性を有するエッジ３０６を企図している。例えば、限定されるものでないが、エッジ３０６は、友達関係、家族関係、事業または雇用関係、ファン関係、フォロワー関係、訪問者関係、加入者関係、上位／下位関係、相互関係、非相互関係、別の好適なタイプの関係、または２以上のそのような関係を表す。さらに、本開示ではノード同士が接続されていることについて一般的に説明しているが、本開示ではユーザおよび／またはコンセプトが接続されていることについても説明する。ユーザおよび／またはコンセプトが接続されていることに言及した場合、これは、一般的に、文脈上そうでないことが示唆されていない限り、それらのユーザまたはコンセプトに対応するノードが１または複数のエッジ３０６によってソーシャルグラフ３００内で接続されていることを示す。
【００２６】
特定の実施形態において、それぞれのエッジタイプは、対応する対のノードの間の特定のタイプの接続を記述する詳細またはメタデータをさらに追加する１または複数のエッジサブタイプを含む。それぞれのエッジ３０６は、ソーシャルグラフ３００内でエッジが接続するノードのタイプに少なくとも一部は基づき複数のエッジタイプのうちの１つであってよい。さらに、いくつかの実施形態では、新しいエッジタイプは、自動的にまたは動的に定義または生成される。例えば、限定されるものでないが、サードパーティウェブアプリケーションに入力されるか、または関係する情報により、新しいエッジタイプを定義し、生成する。例えば、限定されるものでないが、ＮＥＴＦＬＩＸに対するウェブアプリケーションは、結果として、「私が見たい映画（ｍｏｖｉｅｓ  Ｉ  ｗａｎｔ  ｔｏ  ｓｅｅ）」を表すエッジタイプをもたらし得る。エッジ３０６が関連付けられているエッジタイプを有するか、割り当てられているそのような実施形態では、エッジ３０６それ自体は、エッジ３０６が接続する一対のノード間の接続のタイプを定義するデータ、例えば、エッジが接続するノードのタイプ（例えば、ユーザ、ハブ、カテゴリ、またはハブの分類）を記述するデータ、さまざまなユーザへのエッジ３０６の可視性を定義するプライバシ設定、エッジ３０６が接続する他方のノードに関するエッジ３０６によって接続される一対のノードのうちの一方のノードの管理者のアクセス権（例えば、エッジ３０６によって接続される他方のノードに関する一方のノードの管理者の読込または書込アクセス権限）、またはエッジ３０６が最初に（例えば、明示的なユーザアクションもしくは宣言に応答して、または明示的なユーザアクションなしで自動的に）初期化または作成された方法または理由、エッジ３０６によって接続されるノード（またはより具体的に、各接続されているノードに関連付けられているユーザもしくはコンセプト）に関係するか、またはそのようなノードによって共有されるさまざまな要因もしくは基準によって決定されるような接続の強度を記述するデータ、もしくは他の好適なもしくは関連するデータなどを記憶するか、またはこれらとともに記憶される。
【００２７】
特定の実施形態において、それぞれのエッジ３０６は、単に、エッジが接続するノードのタイプに関係なくノード間の接続を定義するか、または表す。エッジそれ自体は、エッジ３０６が接続するノードの識別子を記憶するか、またはそれらとともに記憶されるが、
エッジが接続する一対のノードの間の接続のタイプを記述するデータを記憶するか、またはそれとともに記憶されるということはない。さらに、これらの、または他の実施形態において、エッジによって接続されるノード間の接続または関係のタイプを示す標識となるデータは、ノードそれ自体とともに記憶される。特定の実施形態において、エッジ、さらには属性（例えば、エッジタイプおよびエッジによって接続されるノードに対応するノード識別子）、メタデータ、またはエッジを定義するか、または特徴付けるか、または関係する他の情報は、（例えば、データオブジェクトとして）ソーシャルグラフデータベース２０６内に記憶され、定期的に、またはさまざまなアクションまたは要因に応答して更新される（例えば、ユーザがさらにハブを対話的に操作するときに、各ユーザノードおよびコンセプトノード同士を接続するエッジは、この対話的な操作を反映するように更新され、次いで、以下でさらに詳しく説明されるようにエッジを特徴付ける親和性または接続の強度スコアに寄与し得る。）
特定の実施形態において、ユーザノード３０２とコンセプトノード３０４との間のエッジ３０６は、コンセプトノード３０４に関連付けられているコンセプトに向かうユーザノード３０２のユーザによって実行される特定のアクションまたはアクティビティを表す。例えば、限定されるものでないが、図３に示されるように、ユーザはコンセプトに対して「“いいね”と表明」、「通っていた」、「プレイした」、「視聴した」、「料理した」、「勤務した」、「見た」とすることができ、それぞれエッジタイプまたはサブタイプに対応する。コンセプトノード３０４に対応するコンセプトプロファイルページは、例えば、選択可能な「チェックイン」アイコン（例えば、図５Ｂに示されている「チェックイン」アイコン５２４など）または選択可能な「お気に入りに追加」アイコン（例えば、図５Ｂに示されているアイコン５２６など）を含む。同様に、ユーザがこれらのアイコンをクリックした後、ソーシャルネットワーキングシステム２０は、各アクションに対応するユーザのアクションに応答して「お気に入り」エッジまたは「チェックイン」エッジを作成する。別の例として、限定されるものでないが、ユーザ（ユーザ「Ｃ」）は、特定のアプリケーション（オンライン音楽アプリケーションのＳＰＯＴＩＦＹ）を使用して特定の曲（「イマジン」）を聴く。この場合、ソーシャルネットワーキングシステム２０は、ユーザに対応するユーザノード３０２と曲およびアプリケーションに対応するコンセプトノード３０４との間に「視聴した」エッジ３０６および「利用した」エッジ（図３に示されているような）を作成し、ユーザがその曲を聴き、そのアプリケーションを使用したことを示す。さらに、ソーシャルネットワーキングシステム２０は、曲およびアプリケーションに対応するコンセプトノード３０４の間に「プレイした」エッジ３０６（ここでもまた図３に示されているような）を作成し、特定の曲が特定のアプリケーションによって再生されたことを示す。この場合、「プレイした」エッジ３０６は、外部オーディオファイル（曲「イマジン」）に対して外部アプリケーション（ＳＰＯＴＩＦＹ）によって実行されたアクションに対応する。本開示では、ユーザノード３０２とコンセプトノード３０４とを接続する特定の属性を有するエッジ３０６を説明しているが、本開示では、ユーザノードとコンセプトノードとを接続する任意の好適な属性を有するエッジ３０６も企図している。さらに、本開示では、ユーザノードとコンセプトノードとの間の単一の関係を表すエッジを説明しているが、本開示では、ユーザノードとコンセプトノードとの間の１または複数の関係を表すエッジも企図している。例えば、限定されるものでないが、エッジ３０６は、ユーザが特定のコンセプトについて「いいね」と表明することと、特定のコンセプトで利用したことの両方を表す。あるいは、ユーザ「Ｅ」に対するユーザノード３０２と「ＳＰＯＴＩＦＹ」に対するコンセプトノード３０４との間で図３に示されるように、ユーザノード３０２とコンセプトノード３０４との間の関係（または単一の関係を複数にした関係）のそれぞれのタイプを表すように個別のエッジ３０６を生成することも可能である。
【００２８】
特定の実施形態において、ソーシャルネットワーキングシステム２０は、ソーシャルグラフ３００内のユーザノード３０２とコンセプトノード３０４と間にエッジ３０６を作成
する。例えば、限定されるものでないが、コンセプトプロファイルページを（例えば、ウェブブラウザまたはユーザのクライアントデバイス３０によってホストされている専用アプリケーションを使用することなどによって）閲覧しているユーザは、「“いいね”と表明」アイコン（例えば、図５Ｂまたは図５Ｃに示されている「Ｌｉｋｅ」アイコン５２２など）をクリックするか、または選択することによって自分がコンセプトノード３０４によって表されるコンセプトについて「いいね」と表明することを示すことができ、これにより、ユーザのクライアントデバイス３０は、コンセプトプロファイルページに関連付けられているコンセプトについてユーザが「いいね」と表明したことを示すメッセージをソーシャルネットワーキングシステム２０に送信する。このメッセージに応答して、ソーシャルネットワーキングシステム２０は、ユーザ「Ｂ」のユーザノードと図３のスポーツバー「Ｏｌｄ  Ｐｒｏ」のコンセプトノードとの間の「“いいね”と表明」エッジ３０６によって示されるように、ユーザに関連付けられているユーザノード３０２とコンセプトノード３０４との間にエッジ３０６を作成する。特定の実施形態において、ソーシャルネットワーキングシステム２０は、データストア２４の１または複数にエッジ３０６を記憶する。本開示では特定の様式でエッジ３０６を形成することを説明しているが、本開示は、任意の好適な様式でエッジ３０６を形成することを企図している。例えば、限定されるものでないが、ウェブページを訪問し、アイコンをクリックする代わりに、ユーザは、ユーザのユーザノード３０２とコンセプトノード３０４との間にエッジ３０６を形成するように動作可能であるモバイルアプリケーションまたは別の好適なアプリケーションを使用する。
【００２９】
特定の実施形態において、エッジ３０６は、特定のユーザアクションに応答してソーシャルネットワーキングシステム２０によって自動的に形成される。例えば、限定されるものでないが、第１のユーザが画像をアップロードするか、映画を見るか、または曲を視聴する場合、エッジ３０６が、第１のユーザに対応するユーザノード３０２とこれらのコンセプトに対応するコンセプトノード３０４との間に形成される。別の例として、限定されるものでないが、ソーシャルネットワーキングシステム２０は、ソーシャルネットワーキングシステム２０のユーザによって現在入力されている情報に基づきノードおよびエッジを自動的に生成する。さらに別の例として、限定されるものでないが、ソーシャルネットワーキングシステム２０は、ソーシャルネットワーキングシステム２０のユーザによってすでに入力された情報に基づきノードおよびエッジを自動的に生成する。ノードおよびエッジを自動的に生成することについての詳細は、本願明細書に援用する２０１０年４月１９日に出願した米国特許出願第１２／７６３１６２号において説明されている。
【００３０】
ユーザプロファイルページ
図４Ａ〜図４Ｄは、例示的なユーザプロファイルページを示す。特定の実施形態において、ソーシャルグラフ３００内のユーザノード３０２は、ユーザプロファイルページに対応する。特定の実施形態において、ユーザプロファイルページは、ユーザ、ユーザの友達、およびユーザのユーザノードに関連付けられているプライバシ設定によっては友達でない他のユーザに対しても可視である。ユーザは、例えば、ユーザのユーザプロファイルページ、ユーザホームページ、アカウント設定ページ、プライバシ設定ページ、または別の好適なインタフェースを通じて自分のプライバシ設定を設定もしくは修正する。ユーザプロファイルページは、１または複数のタブ４０１を選択することを通じて閲覧可能な、またはアクセス可能な多数の異なるサブページを含む。例えば、限定されるものでないが、図４Ａに示されている実施形態では、ユーザプロファイルページは、投稿のためウォール（フィード）にアクセスするためのウォール（フィード）タブ４０１ａ、ユーザに関する、またはユーザに関係する情報を入力し、表示するための情報タブ４０１ｂ、写真をアップロードし、表示するための写真タブ４０１ｃ、およびボックスタブ４０１ｄを含む。ユーザは、ユーザプロファイル画像４０３として表示するように写真タブ４０１ｃでアップロードされる特定の写真または画像を選択する。特定の実施形態において、ユーザのプロ
ファイル画像４０３、さらには例えば、メッセージを別のユーザに送信する、プロファイルページを編集する、ユーザの友達を閲覧する、またはユーザの写真を閲覧するオプションなどの他の特徴を、タブ４０１のいずれが選択されてるかに拘わらず、ページの「クローム（ｃｈｒｏｍｅ）」（境界）領域に表示する。特定の実施形態において、検索バーまたは検索インタフェースをユーザプロファイルページ（さらには他のページも）のクローム内に入れることができ、これにより、ユーザは、例えばユーザが検索したいと思っている他のユーザまたはコンセプトの名前もしくは属性などのソーシャルネットワークデータに対するクエリを入力する。
【００３１】
特定の実施形態において、ユーザプロファイルページを通じてユーザおよび他のユーザからアクセスできるか、または可視である情報の一部または全部が自己宣言される。ユーザは、ユーザプロファイルページが作成されたときに既定で自動的に表示される場合もされない場合もあるさまざまなセクションまたは形態で情報もしくはコンテンツをタイプ入力するか、または他の任意の方法で入力する。特定の実施形態において、ユーザは、ソーシャルネットワーキングシステム２０にユーザがログインしたときにいつでも自分のユーザプロファイルページを編集する。例えば、限定されるものでないが、ユーザプロファイルページは、情報タブ４０１ｂの下の基本情報セクション４０２にある、例えば、正式名称（人のファーストネーム、ミドルネーム、およびラストネーム、企業体の商号または会社名など）、ニックネーム、経歴、人口統計学情報、および他のタイプの記述情報を含む、ソーシャルネットワーキングシステム２０によって有効化されたオンラインソーシャルネットワークの各ユーザを記述するデータを含む。基本情報セクション４０２は、ユーザの性別、現在の都市、誕生日、出身都市、交際状況、政治観、ユーザが求めるもの、またはユーザのソーシャルネットワークの使い方（例えば、友達関係、交際関係、デート、ネットワーキングなどを探す場合）、および同様のものをさらに含む。
【００３２】
特定の実施形態において、ユーザプロファイルページは、ユーザがより多くの個人的宣言を入力できる個人情報セクション４０６を含む。例えば、限定されるものでないが、個人情報セクション４０６は、ユーザが自分が参加するか、または楽しむさまざまなアクティビティ、例えば、スポーツまたは音楽などを宣言するサブセクション４０８を含む。例えば、限定されるものでないが、セクション４０８では、ユーザはこれらのアクティビティを、例えば、アクティビティを単純に列挙するだけで宣言する。例えば、限定されるものでないが、ユーザは、「ウエイトリフティング、ハイキング、卓球、および、テーブルサッカーをプレイする」をリストに記載するか、または例えば、「私はウエイトリフティングを楽しみます、私はハイキングが好きです、私は卓球をするのが大好きです、私はテーブルサッカーが得意です。」などの語句を使用する。ユーザは、自分の宣言したアクティビティ（および以下で説明されている他の宣言）を、例えば、カンマ、セミコロン、ダッシュ、またはキャリッジリターン（以下で説明されているタイプアヘッドまたはブートストラッピングプロセスによって認識可能である）によって分離するか、または区切る。個人情報セクション４０６は、ユーザがさまざまな関心事項を宣言するサブセクション４１０も含む。ここでもまた、ユーザは、例えば、「読書と写真」とタイプ入力するか、または例えば、「私は読書が好きです、私は写真が好きです。」などの語句を使用することなどによって、そのような関心事を単純に列挙する。別の例として、関心事セクション４０６は、ユーザが自分が「いいね」と表明するか、または興味を抱いている音楽を宣言するお気に入り音楽サブセクション４１２、お気に入りテレビ番組サブセクション４１４、お気に入り映画サブセクション４１６、お気に入り書籍サブセクション４１８、お気に入り引用句サブセクション４２０、およびユーザがすでに説明されているセクションの下には収まらない自分自身に関する一般的な宣言を入力する一般的な「私について」サブセクション４２２さえも含む。
【００３３】
特定の実施形態において、ユーザプロファイルページは、ユーザが、例えば、電子メー
ルアドレス、電話番号、自宅の住所、職場の住所、または他の好適な連絡先情報を含むさまざまな連絡先情報を入力する連絡先情報セクション４２４も含む。ユーザプロファイルページは、ユーザが自分の学歴または職歴を入力する学歴および職業セクション４２６を含む。例えば、限定されるものでないが、ユーザは、例えば、単純に「スタンフォード大学」とタイプ入力するか、または「私はスタンフォード大学に通っていました。」とタイプ入力するか、またはメニューインタフェースからスタンフォード大学を選択することによって、セクション４２６にスタンフォード大学に通っていたと宣言する。ユーザは、例えば、授与された学位、学位の分野、卒業日などのより具体的な情報を記述する。別の例として、セクション４２６では、ユーザがユーザの職歴を入力する。例えば、限定されるものでないが、ユーザは、例えば、単純に「Ａｃｍｅ」とタイプ入力するか、または「私はＡｃｍｅに勤務しています。」とタイプ入力するか、またはメニューから会社「Ａｃｍｅ」を選択することによって、自分が「Ａｃｍｅ」社に勤めていると宣言する。
【００３４】
特定の実施形態において、ユーザプロファイルページは、ソーシャルグラフデータベース２０６内に記憶されているソーシャルグラフ３００のエッジ３０６によって定義されているようなユーザの友達の全部または部分集合を表示する友達セクション４２８（ページのクロームまたは他の領域に表示されてもよい）も含む。特定の実施形態において、ユーザは、友達に関連付けられている名前またはサムネイル画像４２９をクリックし、その結果選択された友達のユーザプロファイルページにユーザを導く。特定の実施形態において、ユーザが別の第２のユーザに関して取るアクションは、第２のユーザがユーザの友達であるか否かに拘わらず、また特定の実施形態において、ユーザがさまざまなコンセプトノードに関して取るアクションは、最近のアクティビティセクション４３０に表示され、これはウォール（フィード）タブ４０１ａの下のウォール（フィード）セクション４３２内にサブセクションとして閲覧可能である。一般的に、ウォール（フィード）セクション４３２は、ユーザおよび友達が入力ボックス４３４を通じてメッセージを投稿しユーザおよび友達が見るように、さらにはウォール（フィード）上の投稿に関してコメントするか、または他の任意の形で自己表現できるようにするすべてのユーザのプロファイルページ上の空間である。
【００３５】
特定の実施形態において、ユーザは、ユーザが編集したい、または宣言したいセクションに対応する編集リンク４４０をクリックするか、または他の任意の方法で選択することによって、自分のユーザプロファイルページを編集し、宣言する。例えば、限定されるものでないが、図４Ｃは、ユーザが個人情報セクション４０６に対応する編集リンク４４０を選択した後にユーザのクライアントデバイス３０でユーザに表示される結果として得られるレンダリングされたウェブページを示している。図４Ｃに示されるように、複数のフォームボックス４０９、４１１、４１３、４１５、４１７、４１９、４２１、および４２３がレンダリングされ、これにより、ユーザは宣言をそれぞれ対応するセクション４０８、４１０、４１２、４１４、４１６、４１８、４２０、および４２２内にタイプ入力するか、または他の任意の形で入力する。ユーザがテキスト文字をフォームボックス内に入力すると、フロントエンドタイプアヘッドプロセス２０４およびバックエンドタイプアヘッドプロセス２０８が、ユーザが文字を入力しているときにユーザの宣言内に入力された文字列と一致（ｍａｔｃｈ）する既存のコンセプトノード３０４（またはユーザノード３０４、例えば、特に、著名人、会社、または組織に対応するユーザノード）を識別することを試みる。
【００３６】
特定の実施形態において、ユーザは、テキストクエリを検索フィールド４５０内に入力することによってソーシャルネットワークシステム２０にクエリをサブミットする。クエリは、構造化されていないテキストクエリであってよく、また１もしくは複数のテキスト文字列または１もしくは複数のｎ−グラムを含む。一般に、ユーザは文字列を検索フィールド４５０に入力して、テキストクエリと一致するソーシャルネットワーキングシステム
２０上のコンテンツを検索する。次いで、ソーシャルネットワーキングシステム２０は、データストア２４（またはより具体的には、ソーシャルグラフデータベース２０６またはコンセプトデータベース２１６）を検索して、クエリと一致するコンテンツを識別する。識別されたコンテンツは、例えば、ソーシャルグラフエンティティ（すなわち、ユーザノード３０２、コンセプトノード３０４、エッジ３０６）、プロファイルページ、外部ウェブページ、またはこれらの組み合わせを含む。次いで、ソーシャルネットワーキングシステム２０のページ生成プロセス２００は、検索結果が識別されたコンテンツに対応している検索結果ウェブページを生成し得る。検索結果ウェブページは、テキストクエリと一致した識別されたコンテンツの一部または全部への参照を含む。次いで、ソーシャルネットワーキングシステム２０は、検索結果ウェブページをユーザのクライアントデバイス３０上のユーザのウェブブラウザ２０２に送信する。次いで、ユーザは、検索結果ウェブページからのコンテンツをクリックするか、または他の任意の形で選択することで、ソーシャルネットワーキングシステム２０から、または外部システムから、適宜、コンテンツにアクセスする。本開示では特定の様式でソーシャルネットワーキングシステム２０にクエリを実行することを説明しているが、本開示は、任意の好適な様式でソーシャルネットワーキングシステム２０にクエリを実行することを企図している。
【００３７】
コンセプトプロファイルページ
図５Ａ〜図５Ｃは、例示的なコンセプトプロファイルページを示す。特定の実施形態において、ソーシャルグラフ３００内のコンセプトノード３０４は、コンセプトプロファイルページに対応する。特定の実施形態において、コンセプトノード３０４およびそれらの各ハブは、ソーシャルネットワーキングシステム２０のユーザによって明示的に作成されるか、またはソーシャルネットワーキングシステム２０によって自動的に生成される。ユーザプロファイルページと同様に、コンセプトプロファイルページ（「ハブ」とも称される）は、対応するコンセプトノード３０４に関連付けられているコンセプトに関係する情報を共有する。特定の実施形態において、ソーシャルネットワーキングシステム２０にログインし、ハブを閲覧している登録ユーザは、コンテンツをハブに追加する（例えば、ウィキ（ｗｉｋｉ）サイトに似た様式などで）。例えば、限定されるものでないが、図５Ａは、「ショーシャンクの空に（Ｔｈｅ  Ｓｈａｗｓｈａｎｋ  Ｒｅｄｅｍｐｔｉｏｎ）」という映画の例示的なハブを示している。特定の実施形態において、図５Ａに示されるように、ハブは、ユーザプロファイルページに似たウォール（フィード）タブ５０１ａ、情報タブ５０１ｂ、写真タブ５０１ｃ、およびボックスタブ５０１ｄを通じてアクセス可能なサブページを含む。ハブは、一般的に、基本情報セクション５０２、詳細情報セクション５０４、さらには潜在的に、他のセクションも含む。コンセプトプロファイルページに含まれる情報は、例えば、コンセプトまたはコンセプトノード３０４に関連付けられている管理者、ハブを閲覧しているユーザ（特定の実施形態では、ユーザ生成またはユーザ追加コンテンツがハブ内に見えるようになる前にコンテンツ承認または同期プロセスに関連付けられた時間遅延がある）、ソーシャルネットワーキングシステム２０（内部または外部／サードパーティソース（例えば、ウィキペディア）から抽出された情報に基づく）、または別の好適なソースによって提供される。ハブは、写真タブ５０１ｃの下に写真または画像セクションも含むことができ、これにより、ユーザはコンセプト内の、またはコンセプトに関係する画像をアップロードすることができ、そのうちの１つはハブのプロファイル画像５１２として選択される。別の例として、限定されるものでないが、図５Ｂは、カリフォルニア州パロアルト（Ｐａｌｏ  Ａｌｔｏ，Ｃａｌｉｆｏｒｎｉａ）のスポーツバーである「Ｏｌｄ  Ｐｒｏ」のウェブページを示している。このウェブページは、例えば、選択可能な「いいね」アイコン５２２、選択可能な「チェックイン」アイコン５２４、選択可能な「お気に入りに追加」アイコン５２６、他の好適な構成要素、またはこれらの任意の組み合わせを含む。さらに別の例として、限定されるものでないが、図５Ｃは、「マシュー（Ｍａｔｔｈｅｗ）」の画像に対するウェブページを示している。このウェブページは、例えば、選択可能な「いいね」アイコン５２２、選択可能な「コメント」アイ
コン５３４、フィールド５３６内のさまざまなユーザからのコメントおよび「いいね」の歴、フィールド５３８内のコンセプトノードに対応するアプリケーションを示す標識、他の好適な構成要素、またはこれらの任意の組み合わせを含む。本開示では特定のコンセプトノードに関連付けられている特定のウェブページを説明し、図５Ａ〜図５Ｃでそれを示しているが、本開示では、任意の好適なコンセプトノードに関連付けられている任意の好適なウェブページを企図している。さらに、本開示ではコンセプトノードがウェブページに関連付けられていることを説明しているが、本開示ではウェブページに必ずしも関連付けられていないコンセプトノードを企図している。例えば、限定されるものでないが、コンセプトノードは、任意の特定のウェブページに関連付けられていない曲または他の音楽作品に対応する。
【００３８】
特定の実施形態において、ウォール（またはニュースフィード／アクティビティフィード）セクション５０１ａ、またはハブの他のフィードもしくはアクティビティセクションは、ハブを閲覧しているユーザおよびユーザの友達に関連付けられているコメント、ステータス更新、ウォール投稿、および他のユーザアクティビティを表示する。ウォール（またはニュースフィード／アクティビティフィード）セクション５０１ａ、またはハブの他のフィードもしくはアクティビティセクションは、ハブが作成されたコンセプトに関係するコメント、ステータス更新、ウォール投稿、ならびに他のユーザアクティビティおよびユーザ生成コンテンツを表示する。より具体的には、ソーシャルネットワーキングシステム２０内の１または複数のプロセスは、コンセプトによってフィルタリングされた要求しているリクエストユーザおよびリクエストユーザの友達に関連付けられているコメント、ステータス更新、ウォール投稿、ならびに他のユーザ生成コンテンツおよびユーザアクティビティに関する検索を実行する、すなわち、リクエストユーザおよびリクエストユーザの友達に関係するユーザフィードまたはアクティビティのストリーム内で、現在要求されているか、または閲覧されているハブのコンセプトに関係するキーワード（および潜在的に、推奨ハブに関連付けられているコンセプトに関係するキーワード）に対するキーワード検索を実行し、現在要求されているか、または閲覧されているハブのウォールまたはフィードセクション５０１ａ内のユーザコンテンツまたはアクティビティのこの部分集合を表示する。例えば、限定されるものでないが、２０１０年２月１１日に出願した米国特許出願第１２／７０４４００号明細書は、そのような検索、フィルタリング、および表示を実行するための方法、プロセス、またはシステムを説明しており、これにより本願明細書に援用される。ウォールまたはフィードセクション５０１ａは、ハブを閲覧しているユーザおよびユーザの友達のものだけでなく、ハブが作成されたコンセプトに関係するソーシャルネットワーキングシステム２０の任意のすべてのユーザによるコメント、ステータス更新、ウォール投稿、および他のユーザアクティビティを表示する、上述したものとは別のセクションであってもよい、セクションも含む。
【００３９】
特定の実施形態において、特定のハブに表示される規定セクションは、ハブの作成後に、コンセプトそれ自体に依存し得る、すなわち、コンセプトノード３０４は、ソーシャルネットワーキングシステム２０によっていくつかのカテゴリに分類され、これらのカテゴリ（例えば、人、場所、物、アクティビティ、スポーツ、スポーツチーム、著名人、都市、場所、映画、俳優、書籍、レストランなど）は、少なくとも一部は、どのセクションが特定のハブに表示されるかを示す。例えば、限定されるものでないが、映画ハブは、図５Ａに例示されるように、その映画に主演する俳優を入力するためのセクションまたはサブセクション、さらには監督、脚本、制作、公開日などの情報を入力するためのセクションまたはサブセクションを含む。特定の実施形態において、ハブは、図５Ａに例示されているファンセクション５０８などの、コンセプト（およびその対応するコンセプトノード３０４）への、またはそれとの接続（およびソーシャルグラフ３００内の対応するエッジ３０６）を有するユーザを列挙するか、または表示するセクション５０８（特定の実施形態では、タブ５０１のうちのどのタブが現在選択されていたとしても表示状態にある）も含
む。例えば、限定されるものでないが、そのようなユーザは、例えば、その映画について「いいね」と表明した、映画を見た、映画を見たいと思っている、映画で演じたなどを示すソーシャルグラフデータベース２０６に記憶されている接続、および関連付けられているエッジ３０６を有する。特定の実施形態において、ファンセクション５０８に表示されているユーザは、ハブを現在閲覧しているユーザと友達でもあるユーザのみを含む。
【００４０】
特定の実施形態において、ハブは、それぞれが各他のハブへのハイパーリンクを含む他のハブに関連付けられている名前５１２、サムネイル画像５１４、または他の識別子のリストまたは集合を含むか、または表示する推奨セクション５１０（特定の実施形態では、タブ５０１のうちのどのタブが現在選択されていたとしても表示状態にある）を含む。例えば、限定されるものでないが、図５Ａに例示されるように、映画に対応するハブに対する推奨セクション５１０は、同じ監督が監督する映画、同じ俳優のうちの何人かを共有する映画、同じジャンルの映画、またはユーザの友達が「いいね」と表明した映画などに対応するハブを表示する。特定の実施形態において、推奨セクション５１０に表示されるか、またはリストされるハブは、特定のハブ（これ以降「リクエストされたハブ」とも称される）を要求しているか、または現在閲覧している特定のユーザ（これ以降「リクエストユーザ」とも称される）、リクエストされたハブ、ユーザノード３０２が各エッジとともにリクエストされたハブのコンセプトノード３０４にも接続される場合もされない場合もあるユーザの友達、リクエストされたハブのコンセプトノード３０４にも接続されている各コンセプトノード３０４を有する他のハブ、またはこれらの任意の組み合わせのうちの１または複数に関連するとみなされるか、それらと何らかの決定された関係を有するか、またはそれらに関するソーシャルグラフデータベース２０６から抽出された情報を利用することに基づき決定される。例えば、限定されるものでないが、推奨セクション５１０に表示される推奨されるハブは、（ソーシャルグラフデータベース２０６内のエッジ３０６によって定義されているような）リクエストユーザの友達、および特に、リクエストされたハブにも（ソーシャルグラフデータベース２０６内のエッジ３０６で）接続されている友達に「いいね」と表明されているか、または他の任意の形で（ソーシャルグラフデータベース２０６内のエッジ３０６で）接続されているハブを含む。別の例として、推奨セクション５１０に表示される推奨されるハブは、ユーザ、および特に、（ソーシャルグラフデータベース２０６内のエッジ３０６によって定義されているような）リクエストユーザの友達も「いいね」と表明しているか、または他の任意の形で（ソーシャルグラフデータベース２０６内のエッジ３０６で）接続されるハブを含むが、ユーザはリクエストされたハブと（ソーシャルグラフデータベース２０６内のエッジ３０６で）必ずしも接続されない。さらに別の例として、推奨セクション５１０に表示される推奨されるハブは、（ソーシャルグラフデータベース２０６内のエッジ３０６で）リクエストされたハブおよび（ソーシャルグラフデータベース２０６内のエッジ３０６によって定義されるように）リクエストユーザの１または複数の友達に接続されているハブを含む。さらに別の例として、推奨セクション５１０に表示される推奨されるハブは、（ソーシャルグラフデータベース２０６内のエッジ３０６で）リクエストされたハブに接続されているが、（ソーシャルグラフデータベース２０６内のエッジ３０６によって定義されているような）リクエストユーザの友達と必ずしも接続されていないハブを含む。
【００４１】
特定の実施形態において、ソーシャルネットワーキングシステム２０は、コンセプトノード３０４がすでに作成されている実際の著名人または会社などの、コンセプトノード３０４に対応するハブの本当の声（または、認証されていないユーザノード３０２ｂに対応する認証されていないユーザプロファイルページ）がこれらのコンセプトノード３０４を主張し、それにより、それらに対する管理者権限が推定され、それらをソーシャルグラフ３００内で例えば登録された認証ユーザノード３０２ａとして（または、代替的に、認証コンセプトノード３０４として）再定義するための手段またはプロセス（例えば、選択可能なリンクまたはユーザインタフェース）を含む。
【００４２】
タイプアヘッドプロセス
特定の実施形態は、ソーシャルネットワーキングシステム２０のユーザによって現在入力されている情報に基づきソーシャルグラフ３００内のノードおよびエッジを自動的に生成するための方法にさらに関する。特定の実施形態において、１または複数のクライアントサイドおよび／またはバックエンド（サーバサイド）プロセスは、各既存のコンセプトノード３０４に対応するコンセプトと、ソーシャルネットワーキングシステム２０によって、ホストされるか、またはアクセス可能である、ユーザプロファイルページなどの、要求されたウェブページと併せてレンダリングされる入力形式でユーザによって現在入力されている情報とのマッチングを自動的に試みるために「タイプアヘッド」機能を実装し利用する。特定の実施形態において、一致が見つかった場合、これらの、または他のプロセスが、ユーザに対応するユーザノード３０２からコンセプトの一致に対応する既存のコンセプトノード３０４へのエッジを自動的に生成する。特定の実施形態は、既存のコンセプトおよび対応するノードへの一致が見つからないか、または少なくとも所望のレベルの確かさで見つからないときに新規ノードおよび新規ノードからユーザのノードへのエッジを自動的に作成する１または複数のプロセスにさらに関する。例えば、限定されるものでないが、以下で説明されるように、例えば、ユーザプロファイルページなどの、ソーシャルネットワーキングシステム２０でホストされるか、またはアクセス可能なさまざまなウェブページによって、ユーザは、各プロファイルページまたは他のコンセプトプロファイルページを通じて、メディアコンテンツ（例えば、写真、ビデオ、音楽、テキストなど）、ユニフォームリソースロケータ（ＵＲＬ）、他のノードなどの、追加のコンテンツにリンクすること、または他の任意の形で参照することを含む方法により、コンテンツを追加すること、関心事を宣言すること、または他の任意の形で自己表現すること（これ以降「宣言」とも総称される）ができる。次いで、そのような宣言は、オーサリングするユーザ、さらには他のユーザによって閲覧される。特定の実施形態において、ユーザが宣言を行うためにテキストを入力しているときに、タイプアヘッド機能は、宣言で入力されているテキスト文字列と既存のコンセプト（またはユーザ）およびソーシャルグラフ３００内の対応するコンセプト（またはユーザ）ノードに対応する文字列（例えば、名前）とのマッチングを試みる。特定の実施形態において、一致が見つかったときに、タイプアヘッド機能は、既存のノードのノードへの参照（例えば、ノード名、ノードＩＤ、または別の好適な参照もしくは識別子）をフォームに自動的に投入し、これにより、上記において説明したように、一致している既存のノードとユーザに関連付けられているユーザノード３０２との間のエッジ３０６が作成される。特定の実施形態において、ユーザがテキストを入力し続け、タイプアヘッド機能が、少なくとも確かさの静的に、または動的に所定のレベルに従って、宣言の全部または一部が任意の既存のノードと一致しないと決定するので、このタイプアヘッド機能により、ソーシャルネットワーキングシステム２０がユーザによって入力された宣言に基づく新規ノード、さらにはユーザのノードから新規ノードへのエッジを自動的に作成する。
【００４３】
特定の実施形態は、ソーシャルネットワーキングシステム２０のユーザによってすでに入力されている情報に基づきノードおよびエッジを自動的に生成するための方法にさらに関する。特定の実施形態において、１または複数のバックエンド（サーバサイド）プロセスは、それぞれがソーシャルグラフ３００内の各既存のコンセプトノード３０４に関連付けられるかまたは対応することが可能であるか、または可能でないデータストア内にインデックスを作成された既知のコンセプトと、さまざまなフォームまたは形式のうちの１または複数でユーザによってすでに入力されており、ソーシャルネットワーキングシステム２０内に記憶されている情報とのマッチングを自動的に試みるために「ブートストラッピング」機能を実装し、利用する。特定の実施形態において、既知のコンセプトとの一致が見つかった場合、これらの、または他のプロセスは、ユーザに対応するノード（すでに入力されている情報が一致した）からコンセプトの一致に対応する既存のコンセプトノード
３０４へのエッジ３０６を自動的に生成する。特定の実施形態は、既知のコンセプトとの一致が見つかったが、その既知のコンセプトに対してコンセプトノード３０４が現在存在していない場合に、その既知のコンセプトに対する新規コンセプトノード３０４および新規コンセプトノード３０４からユーザに関連付けられているユーザノード３０２へのエッジ３０６を自動的に作成する１または複数のプロセスにさらに関する。特定の実施形態は、既知のコンセプトまたは既存のコンセプトノード３０４との一致が見つからないか、または少なくとも確かさの所望のレベルで見つからない場合、すでに入力されている情報に基づく新規コンセプトノード３０４および新規コンセプトノード３０４からユーザに関連付けられているユーザノード３０４へのエッジ３０６を自動的に作成する１または複数のプロセスにさらに関する。ノードおよびエッジを自動的に生成することについての詳細は、本願明細書に援用する２０１０年４月１９日に出願した米国特許出願第１２／７６３１６２号において説明されている。
【００４４】
特定の実施形態は、１または複数の内部または外部ソースから得られたデータを使用してコンセプトデータベース２１６にデータを投入するための方法にさらに関する。特定の実施形態において、コンセプトデータベース２１６は、既知のコンセプトのインデックス、さらには、いくつかの実施形態では、各コンセプトに関連付けられているさまざまな属性、メタデータ、または他の情報を含む。特定の実施形態において、１または複数のバックエンド（サーバサイド）プロセスは、１または複数の外部データソース（例えば、ウィキペディア（ｗｗｗ．ｗｉｋｉｐｅｄｉａ．ｏｒｇ）、フリーベース（ｗｗｗ．ｆｒｅｅｂａｓｅ．ｃｏｍ、ＭＥＴＡＷＥＢから利用可能）、または一般にインターネット）をクロールして、コンセプトデータベース２１６の生成またはデータの投入を円滑にするか、または補助する。特定の実施形態において、コンセプトデータベース２１６は、本明細書で説明されているソーシャルネットワーキングシステム２０のユーザから抽出された情報で拡張する。
【００４５】
特定の実施形態は、ソーシャルネットワーキングシステム２０によって少なくとも一部はホストされている特定のウェブページまたは構造化ドキュメントを現在閲覧しているソーシャルネットワーキングシステム２０のユーザに表示する１または複数の推奨を生成するための方法にさらに関する。特定の実施形態において、１または複数のサーバサイド推奨生成プロセス２１８は、ソーシャルグラフ３００から抽出された情報に少なくとも一部は基づき現在閲覧されているページ（上）でユーザに表示する推奨を生成する。より具体的には、１または複数のサーバサイド推奨生成プロセス２１８は、ユーザに関係する情報を含むソーシャルグラフ情報、現在閲覧されているページ、現在閲覧されているページに何らかの方法でさらに接続されているユーザの友達、および現在閲覧されているページに何らかの方法で接続されている他のウェブページまたは構造化ドキュメントを活用して、ユーザが接続することを望んでいる可能性のある１または複数の他のウェブページまたは構造化ドキュメントを決定し、次いでその後、現在閲覧されているページ内でユーザに何らかの方法で表示するこれらの推奨ページのリストまたは集合を生成する。
【００４６】
特定の実施形態において、ここでさらに詳しく説明されるように、オンラインソーシャルネットワークのウェブページのすでに説明されているセクションまたはサブセクションのうちの１または複数に入力されている宣言内の１または複数の語が、強調されるか、異なる色でレンダリングされるか、下線を付けられるか、またはクリック可能とされる。例えば、限定されるものでないが、ソーシャルグラフ３００のノードまたはエッジと一致するユーザによって入力された語は、その語がソーシャルグラフ３００の要素と一致することを示すために（語がユーザによって入力されるとき、または語が入力された後のいずれかにおいて）ソーシャルネットワーキングシステム２０によって強調されるか、異なる色でレンダリングされるか、下線を付けられるか、またはクリック可能にされる。特定の実施形態において、ウェブページ上の特定の語は、特定のノードおよびエッジと一致し、こ
れらの語は、クリックされるか、または他の任意の方法で選択されたときに、ユーザをノードまたはエッジに関連付けられているプロファイルページに導くハイパーリンクに関連付けられる。例えば、限定されるものでないが、既知のコンセプトまたは既存のコンセプトノード３０４は、クリックされたときに、ユーザのウェブブラウザ２０２をコンセプトノード３０４に対応するコンセプトプロファイルページに導くハイパーリンクに関連付けられる。特定の実施形態において、語は、語がノードもしくはエッジに関連付けられている名前もしくは識別子と同一であるか、または実質的に類似しているか、または他の任意の形でノードもしくはエッジに関連付けられていると識別可能である場合にノードもしくはエッジに一致し得る。例えば、限定されるものでないが、お気に入りのテレビ番組セクション４１４の「ファミリー・ガイ」に対応するハイパーリンクをクリックすると、ユーザはファミリー・ガイというテレビ番組専用のウェブページ（以下で説明されているようなコンセプトプロファイルページ／ハブ）に導かれる。
【００４７】
特定の実施形態において、ユーザのプロファイルページまたは他のページのさまざまなセクション内でコンテンツを追加するか、または宣言を行うために使用されるフォームにユーザがテキストをタイプ入力するか、または他の任意の方法で入力すると、フロントエンドタイプアヘッドプロセス２０４は、ソーシャルネットワーキングシステム２０（例えば、サーバ２２内の）で（またはその中で）実行されている１または複数のバックエンド（サーバサイド）タイプアヘッドプロセス２０８（これ以降「バックエンドタイプアヘッドプロセス２０８」と単に称される）と連携して動作し、ユーザがテキストの文字を入力するときにユーザによって入力されるテキストの文字と最も関連するか、または最もよく一致すると決定される、既存のハブの名前に対応する１もしくは複数の語、または既存のハブに関連付けられている語をフォームに自動投入することを対話的に、また実質的に瞬時に（ユーザにはそう見えるように）試みる。ノードさらにはエッジ３０６に関連付けられている情報を含む、ソーシャルグラフデータベース２０６内のソーシャルグラフ情報またはソーシャルグラフデータベース２０６から抽出され、インデックスを作成された情報を利用することで、フロントエンドタイプアヘッドプロセス２０４およびバックエンドタイプアヘッドプロセス２０８は、ソーシャルグラフデータベース２０６からの情報と併せて、さらには潜在的に、ソーシャルネットワーキングシステム２０内に配置されるか、またはその中で実行中であるさまざまな他のプロセス、アプリケーション、またはデータベースと併せて、高い精度でユーザの意図された宣言を予測する。しかし、ソーシャルネットワーキングシステム２０は、望む任意の宣言を入力する自由をユーザに提供し、ユーザが自己表現を自由にできるようにもする。ソーシャルネットワーキングシステム２０は、新規ハブおよび実質的にどのようなコンセプトにも関係する対応するコンセプトノード３０４の作成を可能にする。
【００４８】
特定の実施形態において、ユーザがテキスト文字をフォームボックスまたは他のフィールド内に入力すると、フロントエンドタイプアヘッドプロセス２０４およびバックエンドタイプアヘッドプロセス２０８は、ユーザが文字を入力しているときにユーザの宣言内に入力された文字列と一致する既存のユーザノード３０２またはコンセプトノード３０４を識別することを試みる。特定の実施形態において、ユーザが文字をフォームボックス内に入力するとともに、フロントエンドタイプアヘッドプロセス２０４は、入力されたテキスト文字列を読み込む。キーが打たれる毎に、フロントエンドタイプアヘッドプロセス２０４は、入力された文字列をリクエスト（または呼び出し）としてソーシャルネットワーキングシステム２０内で実行されているバックエンドタイプアヘッドプロセス２０８に送信する。特定の実施形態において、フロントエンドタイプアヘッドプロセス２０４およびバックエンドタイプアヘッドプロセス２０８は、ＡＪＡＸ（Ａｓｙｎｃｈｒｏｎｏｕｓ  ＪａｖａＳｃｒｉｐｔ  ａｎｄ  ＸＭＬ）または他の好適で技術、および特に、非同期技術を通じて通信する。特定の一実施形態において、このリクエストは、結果の送信およびフェッチを迅速に、また動的に実行することを可能にするＸＭＬＨＴＴＰＲｅｑｕｅｓｔ（
ＸＨＲ）であるか、またはＸＭＬＨＴＴＰＲｅｑｕｅｓｔ（ＸＨＲ）を含む。特定の実施形態において、フロントエンドタイプアヘッドプロセス２０４は、そのリクエストの前、そのリクエストの後、またはそのリクエストとともに、ユーザが宣言を行っている特定のページの特定のセクションを識別するセクション識別子（セクションＩＤ）も送信する。特定の実施形態において、ユーザＩＤパラメータも送信されるが、これは、いくつかの実施形態においては不要な場合がある。それはユーザがソーシャルネットワーキングシステム２０にログインすることに基づきユーザがすでに「既知」だからである。
【００４９】
特定の実施形態において、バックエンドタイプアヘッドプロセス２０８がユーザ入力文字データおよびセクション識別子の列を含むリクエストまたは呼び出しを受信すると、バックエンドプロセス２０８は、文字列検索を実行するか、または実行させられ（例えば、ソーシャルネットワーキングシステム２０で実行されている１または複数の他の検索プロセスと併せて）、入力されたテキストと一致する、また特定の実施形態では、特定のセクション識別子によって少なくとも一部は決定されるようなソーシャルグラフデータベース２０６内のノードの特定のカテゴリと一致する各名前または他の識別子を有する既存のユーザノード３０２またはコンセプトノード３０４を識別する。カテゴリの細かさは変化し得る。例えば、限定されるものでないが、俳優、監督、製作、映画のタイプ、またはジャンルに対応するハブは、すべて、「映画」カテゴリにグループ化される。別の例として、限定されるものでないが、俳優、監督、製作、映画のタイプ、またはジャンルに対応するハブは、それぞれ、それ独自のカテゴリを表す。同様に、一例において、フットボール、バスケットボール、サッカー、ラグビー、およびテニスに対応するハブは、すべて、「スポーツ」カテゴリにグループ化されるが、別の例では、これらはそれぞれそれ独自のカテゴリを表す。特定の実施形態において、バックエンドタイプアヘッドプロセス２０８は、文字列マッチングを実行する。バックエンドタイプアヘッドプロセス２０８は、フロントエンドタイプアヘッドプロセス２０４から受信された最近の文字列とソーシャルグラフデータベース２０６内のノードの名前にそれぞれ対応する文字列のインデックスとのマッチングを試みる。特定の実施形態において、文字列のインデックスは、定期的に、またはユーザノード３０２およびコンセプトノード３０４がソーシャルグラフデータベース２０６またはソーシャルグラフデータベース２０６から生成された他のインデックスに追加されるときに更新される。バックエンドタイプアヘッドプロセス２０８は、入力されたテキスト文字列とのマッチングを試みるときにさまざまな要因のうちの１または複数を使用することができ、ソーシャルグラフデータベース２０６内の既存のノードのさまざまな異なる態様または属性のうちの１または複数を調べる。例えば、限定されるものでないが、入力されたテキストと既存のノードの名前（名前文字列）とのマッチングを試みることに加えて、バックエンドタイプアヘッドプロセス２０８はセクション識別子を使用して、その後カテゴリに関連付けられている既存のコンセプトノード３０４の部分集合を検索するために使用される宣言のカテゴリを決定する。特定の実施形態において、バックエンドタイプアヘッドプロセス２０８は、ノードがインデックスを作成され、ハブカテゴリによって検索可能（またはクエリ可能）であるソーシャルグラフデータベース２０６から生成されたノードのインデックスを検索するか、またはそれに対するクエリを実行する。バックエンドタイプアヘッドプロセス２０８は、ユーザのプロファイルページに入力された情報、ユーザの友達に関する情報、ユーザが接続されている他のユーザノード３０２またはコンセプトノード３０４に関する情報などを含むテキストを入力するユーザに関する情報を使用して、ユーザ宣言を既存のユーザまたはコンセプトおよび各ユーザノード３０２またはコンセプトノード３０４と最もよく一致させる。バックエンドタイプアヘッドプロセス２０８は、綴りを訂正するか、またはユーザ入力文字の同義語もしくは入力された文字を補完したものと一致させることも試み得る。
【００５０】
特定の実施形態において、バックエンドタイプアヘッドプロセス２０８は、１または複数のマッチングアルゴリズムを使用して一致しているノードを識別することを試みる。特
定の実施形態において、１または複数の一致が見つかった場合、バックエンドタイプアヘッドプロセス２０８は、例えば一致しているノードの名前（名前文字列）、さらには潜在的に、一致しているノードに関連付けられている他のメタデータを含む応答（ＡＪＡＸもしくは他の好適な技術を利用する）をユーザのクライアントデバイス３０に送信する。例えば、限定されるものでないが、図４Ｄは、アクティビティセクション４０８に対応するフォームボックス４０９内に文字「ｗｅｉ」をユーザが入力した結果を示している。図４Ｄに示されている例では、フロントエンドタイプアヘッドプロセス２０４は、一致している既存のプロファイルページおよび各ユーザノード３０２またはコンセプトノード３０４（例えば、「ウエイトリフティング（ｗｅｉｇｈｔ  ｌｉｆｔｉｎｇ）」という名前を持つ、またはそれ専用のハブ）の名前を表示するドロップダウンメニュー４４２を表示し、ユーザは、これをクリックするか、または他の任意の形で選択して、選択されたノードに対応する一致したユーザまたはコンセプト名を宣言することを望んでいることを確認する。別の例として、限定されるものでないが、「ｗｅｉｇｈｔ  ｌｉｆｔｉｎｇ」をクリックした後、フロントエンドタイプアヘッドプロセス２０４は、フォームボックス４０９に宣言「ｗｅｉｇｈｔ  ｌｉｆｔｉｎｇ」を自動投入するか、またはウェブブラウザ２０２に自動投入させる。特定の実施形態において、フロントエンドタイプアヘッドプロセス２０４は、ドロップダウンメニューを表示する代わりに、単純に、最高位にランク付けされた一致の名前または他の識別子をフォームに自動投入する。次いで、ユーザは、単純に自分のキーボードで「ｅｎｔｅｒ」と打ち込むか、または自動投入された宣言をクリックすることによって自動投入された宣言を確認する。
【００５１】
特定の実施形態において、一致しているノードをユーザが確認した後、フロントエンドタイプアヘッドプロセス２０４は、一致したプロファイルページをユーザが確認することをバックエンドタイプアヘッドプロセスに通知するリクエストをバックエンドタイプアヘッドプロセス２０８に送信する。特定の実施形態において、リクエストが送信されたことに応答して、バックエンドタイプアヘッドプロセスは、特定のユーザのノード３０２と確認された宣言に対応する特定のユーザノード３０２またはコンセプトノード３０４との間のエッジ３０６をソーシャルグラフデータベース２０６に記憶されているソーシャルグラフ３００内に作成するためのエッジ生成ＡＰＩ（アプリケーションプログラミングインタフェース）２１０を自動的に（あるいはリクエストの中の命令に基づき）呼び出すか、または他の任意の方法で命令する。特定の実施形態において、送信されるリクエストは、宣言（または表示されているフォームボックスのうちのいずれか、およびすべてで行われている宣言）を行うことをユーザが望んでいることを確認することを示す「変更を保存」（または他のサブミット）ボタン４４４をユーザが選択するまで、フロントエンドタイプアヘッドプロセス２０４によって生成および送信されない。
【００５２】
特定の実施形態において、例えば、少なくとも一部は、宣言が行われたセクションに対する対応するセクション識別子によって識別されるようなセクションカテゴリ（例えば、友達、お気に入りの映画）に基づき、またはソーシャルグラフデータベース２０６に記憶されているソーシャルグラフ情報に基づき決定されるような既存のノードのノードタイプまたはカテゴリが、バックエンドタイプアヘッドプロセス２０８によって使用され、これにより、宣言の入力された文字列と、一致しているノードに対する候補となり得る既存のノードとのよりよいマッチングを行う。例えば、限定されるものでないが、ユーザがユーザプロファイルセクション内に「ジャガー（ｊａｇｕａｒ）」とタイプ入力する例を考察する。このような一例では、バックエンドタイプアヘッドプロセス２０８は、少なくとも「ｊａｇｕａｒ」という名前、またはその派生形（例えば、「ｊａｇｕａｒｓ」）を含む対応する名前を有する多数の既存のノード（およびその関連付けられているプロファイルページ）を識別する。例えば、限定されるものでないが、バックエンドタイプアヘッドプロセス２０８は、「ビクトリア・ジャガー（Ｖｉｃｔｏｒｉａ  Ｊａｇｕａｒ）」と名付けられたユーザに関連付けられているコンセプトノード３０２を識別する。別の例として
、限定されるものでないが、バックエンドタイプアヘッドプロセス２０８は、ジャングルキャットであるジャガーに関連付けられているユーザノード３０４を識別する。さらに別の例として、バックエンドタイプアヘッドプロセス２０８は、ジャクソンビル・ジャガー（ＪＡＣＫＳＯＮＶＩＬＬＥ  ＪＡＧＵＡＲＳ）というプロフットボールチーム専用のさらに別のコンセプトノード３０４およびジャガー（ＪＡＧＵＡＲ）という高性能高級車メーカー専用のコンセプトノード３０４を識別する。そのような場合、これらのユーザノード３０２またはコンセプトノード３０４のすべてが、バックエンドタイプアヘッドプロセス２０８によってマッチングされ、したがって、いくつかの実施形態において、ノード名のすべてが送信されるが、他の実施形態では、バックエンドタイプアヘッドプロセス２０８は、例えば、上で説明されるように、ユーザのプロファイルから抽出されたセクションＩＤまたは他のパラメータを使用して最も関連性の高い一致するユーザノード３０２またはコンセプトノード３０４がインデックスを作成されるカテゴリを決定することに基づき最も関連性が高いと決定される１つの一致するノード名のみを送信する。
【００５３】
それに加えて、いくつかの実施形態では、例えば、各ユーザノード３０２が一致しているコンセプトノード３０４と接続されているユーザの友達の数、各ユーザノード３０２が一致しているコンセプトノード３０４と接続されている全ユーザの数、一致しているコンセプトノード３０４と接続されている他のコンセプトノード３０４の数、ユーザのノード３０２および一致しているコンセプトノード３０４の両方に接続されている他のコンセプトノード３０４、またはユーザの友達に対応する対応しているノード３０２、さらには一致しているコンセプトノード３０４に接続されている他のコンセプトノード３０４を分析することによって得られる情報を含む他の要因も一致しているコンセプトノード３０４の強度または関連性を決定するために使用される。さらに、以下で説明されるように、これらのノードのいずれかを接続するエッジに関連付けられている接続の強度を特徴付ける情報も、最も関連性の高い一致しているコンセプトノード３０４を決定する際の関連性に重みを付けるために使用される。
【００５４】
特定の実施形態において、バックエンドタイプアヘッドプロセス２０８は、フロントエンドタイプアヘッドプロセス２０４がフォームボックスに一致したプロファイルページおよび各ユーザノード３０２またはコンセプトノード３０４に対応する名前を自動投入する前に１回または複数回の決定を行い得る。最初に、上記の例を考察すると、既存のノードへの複数の一致が識別された場合、次いで、バックエンドタイプアヘッドプロセス２０８は一致しているノードの名前のそれぞれの絶対的または相対的な質を示す一致のそれぞれに対する信頼スコア、一致しているノードそれ自体の質、さもなければ一致が正しい（ユーザが入力していた、または入力を試みていた意図されたコンセプト）というバックエンドタイプアヘッドプロセス２０８が有する信頼度のレベルを決定する。この決定の結果、一致のランク付けを生じさせるか、または伴い得る（ドロップダウンメニュー４４２に表示される一致の順序に反映される）。
【００５５】
特定の実施形態において、１または複数の要因が、一致しているノードの信頼スコア、確率、質、または順位を決定するために使用される。例えば、限定されるものでないが、そのような要因は、ここでもまた、各ユーザノード３０２が一致しているコンセプトノード３０４と接続されているユーザの友達の数、各ユーザノード３０２が一致しているコンセプトノード３０４と接続されている全ユーザの数、一致しているコンセプトノード３０４と接続されている他のコンセプトノード３０４の数、ユーザのノード３０２および一致しているコンセプトノード３０４の両方に接続されている他のコンセプトノード３０４、ユーザの友達に対応する対応しているノード３０２、さらには一致しているコンセプトノード３０４に接続されている他のコンセプトノード３０４を分析することによって得られる情報、他の好適な要因、またはこれらの任意の組み合わせを含む。他の好適な要因は、書き込まれる対応する候補の一致しているハブ上のセクションの数、一致しているコンセ
プトノードに対応するハブ上に表示されているコンテンツと、ユーザのプロファイルページ上に表示されている、他の宣言を含むコンテンツとの関係、なども含む。ここでもまた、以下で説明されるように、これらのノードのいずれかを接続するエッジ３０６に関連付けられている接続の強度を特徴付ける情報も、最も関連性の高い一致しているコンセプトノード３０４を決定する際の関連性に重みを付けるために使用される。再び「ｊａｇｕａｒ」の例に戻って考察すると、バックエンドタイプアヘッドプロセス２０８は、「私はフットボールを観ることが大好きです（Ｉ  ｌｏｖｅ  ｗａｔｃｈｉｎｇ  ｆｏｏｔｂａｌｌ）」というユーザの別の宣言を識別することができ、そのようなものとして、この識別（さらには他の要因）に基づき、バックエンドタイプアヘッドプロセス２０８は、ＪＡＣＫＳＯＮＶＩＬＬＥ  ＪＡＧＵＡＲＳというプロフットボールチームに対応するノードを最良の一致としてランク付けし、フロントエンドタイプアヘッドプロセス２０４は、ドロップダウンメニューの一番上にこのノードの名前を列挙するか、またはフォームに名前を自動的に自動投入する。
【００５６】
特定の実施形態において、次いで、バックエンドタイプアヘッドプロセス２０８は、フロントエンドタイプアヘッドプロセス２０４がフォームボックスにランク付けされた一致したノードに対応する名前を自動投入する前に１回または複数回の第２の決定を行い得る。例えば、限定されるものでないが、信頼スコアに基づき、フロントエンドタイプアヘッドプロセス２０４およびバックエンドタイプアヘッドプロセス２０８の一方または両方は、それぞれの一致について一致が選択のためドロップダウンメニューの形態でユーザに表示されるか、またはフォームボックス内に自動投入される前に確率、確かさ、または信頼度（信頼スコア）の所定のレベルに達しているか否かを決定する。すなわち、特定の実施形態では、１または複数の一致がソーシャルグラフデータベース２０６内の既存のノードから識別されたとしても、決定された信頼スコアによって証明されるような各確かさ（ユーザが宣言することを意図していた実際のコンセプトであることの）は、第１の所定のしきい値より低く、したがって、一致はどれも、ユーザに表示されフロントエンドタイプアヘッドプロセス２０４によって自動投入されない。すなわち、しきい値より低い信頼スコアを有する１または複数の一致をユーザに表示しユーザに与える代わりに、フロントエンドタイプアヘッドプロセス２０４は、ユーザが自分で宣言をタイプ入力することを終了し、次いで、リクエストを送信することを可能にする。バックエンドプロセス２０８は、ユーザの宣言に対応する最良の一致を決定する。
【００５７】
特定の実施形態において、１または複数の一致が見つかったか否かの決定は、予想される一致について決定された各信頼スコアを上で説明されている第１の所定のしきい値より低い第２の所定のしきい値と比較することに基づく。すなわち、第２の所定のしきい値は、一致が見つかったか否かを決定するときに使用されるが、第１の所定のしきい値は、一致がユーザに表示するために自動投入されるべきか否かを決定するときに使用される。
【００５８】
特定の実施形態において、所定のレベルの確かさで好適な一致が識別されないか（例えば、信頼スコアと第２のしきい値との比較結果に基づき）、またはユーザが、与えられるか、または自動投入された一致を選択することを控えている場合、ユーザが宣言にテキスト文字を入力し続けると、フロントエンドタイプアヘッドプロセス２０４は、文字列、セクション識別子、または他の情報／データをバックエンドタイプアヘッドプロセス２０８に送信する前に、ユーザが例えば「変更を保存」ボタン４４４をクリックするか、または他の任意の形で選択することによって示されるようにユーザが宣言を入力するのを終了するまで待機し得る。
【００５９】
特定の実施形態において、ブートストラッピングプロセス２１４は、入力されるか、またはソーシャルネットワーキングシステム２０のそれぞれのユーザに他の任意の形で関連付けられるか、またはそれとともに記憶されているテキストについて、ソーシャルグラフ
データベース２０６を含む、データ構造２４を走査する。本明細書で説明されるように、ユーザのプロファイルページで入力され表示されているものを含む与えられたユーザに関する、または関連付けられている情報のすべてが、ソーシャルグラフデータベース２０６内のユーザのノード３０２とともに記憶される。特定の実施形態において、それぞれのユーザ（ただし、いくつかの実施形態において、潜在的に、対応するコンセプトノード３０４を有するそれぞれのハブも）について、ブートストラッピングプロセス２１４は、テキスト文字を含むユーザのノード３０２に関連付けられているフィールドまたはオブジェクトのすべてを識別する。そのようなフィールドは、ユーザのプロファイルページ内にセクション４０８、４１０、４１２、４１４、４１６、４１８、４２０、および４２２のうちのいずれか、さらには、いくつかの実施形態では、ユーザと他のユーザとの間で送信されるプライベートメッセージ中のテキスト、ウォール（フィード）セクションの投稿された公開メッセージ、ステータス更新、写真の下の説明文などを含む。
【００６０】
特定の実施形態において、テキストを含むそれぞれのフィールドまたはオブジェクトについて、ブートストラッピングプロセス２１４は、テキストの一定量の前処理を実行する。例えば、限定されるものでないが、与えられたフィールド内の一部または全部のテキストは、単一の文字列とみなされる。別の例として、限定されるものでないが、与えられたフィールド内のテキストの一部または全部は、１または複数のｎ−グラムとみなされる。特定の実施形態において、文字列の前処理は、文字列を構文解析し、分離し、または区切って明確に区別できるノード（すなわち、ユーザもしくはハブ／コンセプト）候補に関連付けられているいくつかの個別の単語、語句、またはｎ−グラムに分ける１または複数のヒューリスティック規則の１つの組を適用することを含む。より具体的には、前処理は、ブートストラッピングプロセス２１４が与えられたフィールド内の文字列をデリミタ（例えば、カンマ、セミコロン、キャリッジリターンなど）によって分離することを伴い得る。例えば、限定されるものでないが、図４Ａのセクション４０８に示されている文字列は、４つの明確に区別できるコンセプトまたはハブ候補に区切ることができ、第１の明確に区別できるハブ候補は「ウエイトリフティング」であり、第２の明確に区別できるハブ候補は「ハイキング」であり、第３の明確に区別できるハブ候補は「卓球」であり、第４の明確に区別できるハブ候補は「テーブルサッカー」である。それに加えて、前処理は、それぞれの明確に区別できるハブ候補における１または複数の単語の同義語を識別すること、綴りを誤る可能性のある単語を識別すること、潜在的に正しい綴りを識別すること、語句を拡張するか、または単語を語句に追加すること（例えば、意図的でなく脱落しているか、または短くした結果脱落している可能性がある単語）、ＵＲＬを削除すること、メタデータを削除すること、言語に基づき１または複数の単語を正規化すること（例えば、単語がユーザによって典型的に使用されている言語に入力された言語から単語を変換すること、またはハブ候補に対する最良の一致が見つかる可能性の高い、単語が言語に入力された言語から単語を変換すること）、および同様のことを伴い得る。例えば、限定されるものでないが、ユーザが「ゴッドファーザーＩ，ＩＩ，ＩＩＩ」とお気に入りの映画セクション４１６に入力しているという場合を考える。ブートストラッピングプロセス２１４は、ユーザが３つの映画ゴッドファーザーパートＩ、ゴッドファーザーパートＩＩ、およびゴッドファーザーパートＩＩＩを示すことを実際に意図していたことを識別する。そのような場合、ブートストラッピングプロセス２１４は、ユーザが３つの映画名すべてを明示的にタイプ入力したかのようにそれぞれの映画を別々のハブ候補とみなす。
【００６１】
特定の実施形態において、次いで、それぞれの識別された明確に区別できるノード候補（例えば、ｎ−グラムまたは文字列）が、さまざまな好適な文字列マッチングアルゴリズムのうちの１または複数を使用して、既知のユーザノード３０２またはコンセプトノード３０４（またはユーザおよびコンセプト）のリストとマッチングされるか、または比較される。特定の実施形態において、ノード候補が比較される既知のユーザまたはコンセプトは、対応するｎ−グラムまたは文字列の形態でインデックスを作成され、ソーシャルグラ
フデータベース２０６またはコンセプトデータベース２１６に記憶される。一般的に、コンセプトデータベース２１６は、候補ハブを既知のコンセプトとマッチングさせるためにブートストラッピングプロセス２１４がクエリを実行できるコンセプト情報のインデックス付きリポジトリとする。すなわち、特定の実施形態では、それぞれのハブ候補を単一の既知のコンセプトとマッチングさせることが望ましい。特定の実施形態において、コンセプトデータベース２１６は、１または複数の外部情報源もしくはデータリポジトリをクロールすること（例えばウィキペディア（ｗｗｗ．ｗｉｋｉｐｅｄｉａ．ｏｒｇ）またはフリーベース（ｗｗｗ．ｆｒｅｅｂａｓｅ．ｃｏｍ）などをクロールすること）、およびこれらのクロール結果を互いに組み合わせて、さらには、潜在的に、ソーシャルグラフデータベース２０６を含む、１または複数の内部情報源から抽出された情報と組み合わせることによって、既知のコンセプトを投入される。特定の実施形態において、インデックスを作成され、コンセプトデータベース２１６に記憶されているコンセプトは、必ずしも、ソーシャルグラフデータベース２０６内に対応する既存のコンセプトノード３０４（またはユーザノード３０２）を有しない。すなわち、コンセプトデータベース２１６は、一般的に、既知のコンセプト（それぞれ対応する文字列によって表される）のインデックス、さらにはこれらのコンセプト（上記において説明したものなどの外部データソースからクロールされる）に関する情報を記憶するが、これらの既知のコンセプトのすべてがソーシャルグラフデータベース２０６に記憶されている対応する既存のコンセプトノード３０４を有するとは限らない。特定の実施形態において、コンセプトデータベース２１６は、ソーシャルグラフデータベース２０６を含むか、またはその逆でもよい。特定の実施形態において、ノード候補とソーシャルグラフデータベース２０６またはコンセプトデータベース２１６においてインデックスを作成された既知のユーザまたはコンセプトとのマッチングを円滑にするため、既知のユーザまたはコンセプトのインデックスを、例えば、限定されるものでないが、人、場所、物、アクティビティ、スポーツ、スポーツチーム、著名人、都市、場所、映画、書籍、レストランなどのカテゴリに編成する。ブートストラッピングプロセス２１４によって検索される特定のカテゴリは、ノード候補が識別されたところに関連付けられているセクションＩＤまたは他のフィールド識別子によって決定される。
【００６２】
特定の実施形態において、前処理の結果として、それぞれのノード候補は、ソーシャルグラフデータベース２０６もしくはコンセプトデータベース２１６内の既知のユーザまたはコンセプトとそれぞれマッチングを試みられる１または複数のｎ−グラムまたは文字列を関連付けられる。例えば、限定されるものでないが、ユーザの入力テキストに対応する区切られた文字列がマッチングされるだけでなく、とりわけ綴りの変更、単語の追加、作業の取り除きが行われた他の文字列もマッチングされる。特定の実施形態において、次いで、ブートストラッピングプロセス２１４は、ノード候補と一致する最もよく一致しているユーザまたはコンセプトの「ショートリスト」を識別する。特定の実施形態において、次いで、ブートストラッピングプロセスは、ショートリストのそれぞれの一致に対する信頼スコアまたは値を生成もしくは決定する（上記のタイプアヘッドプロセスを参照しつつ説明されている信頼スコアと同様に）。例えば、限定されるものでないが、それぞれの既知のユーザまたはコンセプトに対する信頼スコアは、ノード候補の文字列内のテキストがそれぞれの既知のユーザまたはコンセプトの文字列内のテキストとどれだけ一致していたかの決定、ノード候補のｎ−グラムまたは文字列内の単語のうちのいずれかの単語の綴りが、一致が得られるように変更されたか否か、一致を得るために文字または単語がノード候補のｎ−グラムまたは文字列内に追加されたか、または取り除かれたか否か、などのうちの１または複数に基づき得る。
【００６３】
特定の実施形態において、潜在的なノード候補のリストが識別された後、リストは、ユーザに関する他の情報を使用することによってさらに絞り込まれる。例えば、限定されるものでないが、ユーザ「Ａ」は、ユーザのプロファイルページ上のお気に入りの映画セクション４１６において「トワイライト（Ｔｗｉｌｉｇｈｔ）、ハリー・ポッター（Ｈａｒ
ｒｙ  Ｐｏｔｔｅｒ）」を宣言する。ブートストラッピングプロセス２１４が「Ｔｗｉｌｉｇｈｔ」に対応する映画を曖昧でなく識別することができなかった場合（例えば、単語「ｔｗｉｌｉｇｈｔ」を含む複数の映画があるため）、ブートストラッピングプロセス２１４は、「Ｈａｒｒｙ  Ｐｏｔｔｅｒ」について「いいね」と表明する多くの他のユーザが「トワイライト：ニュー・ムーン（Ｔｗｉｌｉｇｈｔ：Ｎｅｗ  Ｍｏｏｎ）」（曖昧でない映画）について「いいね」と表明するという事実を使用し、したがって、ユーザ「Ａ」が「Ｔｗｉｌｉｇｈｔ」とタイプ入力したときに十分な確度でユーザ「Ａ」は「Ｔｗｉｌｉｇｈｔ：  Ｎｅｗ  Ｍｏｏｎ」を参照している（したがって、この映画に対応するコンセプトノード３０４を参照している）と決定する。同様に、ブートストラッピングプロセス２１４は、ユーザに関する人口統計学情報を使用することも可能である。例えば、限定されるものでないが、年配のユーザは、１９５８年版の「ロミオとジュリエット（Ｒｏｍｅｏ  ａｎｄ  Ｊｕｌｉｅｔ）」について「いいね」と表明するが、若い世代のユーザにとっては、１９９６年に公開されたより新しい版の「ロミオ＋ジュリエット（Ｒｏｍｅｏ＋Ｊｕｌｉｅｔ）」を意味する可能性が高い。
【００６４】
特定の実施形態において、ブートストラッピングプロセス２１４は、コンセプトデータベース２１６に対して繰り返し再クエリを実行して、すでに識別されている一致のリスト内の一致と同じ信頼スコアを有する一致を見つける。フォルスポジティブの可能性を低減するか、またはなくすために、２回目、３回目のマッチングが実行され、さらに追加のマッチングが実行される。例えば、限定されるものでないが、ブートストラッピングプロセス２１４では、２回目のマッチングを実行することによって、高いように見える、したがって一致において高い信頼レベルを示す可能性のある、最もよい信頼スコアを有する一致を単純に選択する代わりに、同じ信頼スコアを有する多数の一致している既知のユーザまたはコンセプトが存在することを見つけて、それによって一致の質、または一致における信頼性が誤解を招く恐れがあり、その一致を受け入れるべきでないという事実を伝える。
【００６５】
特定の実施形態において、次いで、ブートストラッピングプロセス２１４は、すでに決定されている結果に基づき与えられたノード候補に対して既知のユーザまたはコンセプトとの好適な一致が存在しているか否かを決定する。ソーシャルグラフデータベース２０６またはコンセプトデータベース２１６内に一致が存在すると決定された場合、ブートストラッピングプロセス２１４は、ソーシャルグラフデータベース２０６内に既存のユーザノード３０２またはコンセプトノード３０４が存在しているか否かを決定する。あるいは、ブートストラッピングプロセス２１４は、最初にノード候補をソーシャルグラフデータベース２０６内の既存のノードとマッチングさせることを、ノード候補をソーシャルグラフデータベース２０６内に対応する既存のノードを有していない既知のユーザまたはコンセプトとマッチングさせることを試みることに頼る前に試みる。
【００６６】
特定の実施形態において、少なくとも所望の、または所定のレベルの確率または信頼度に従って、ノード候補に関連付けられているｎ−グラムまたは文字列について一致を見つけることができないと判定された場合、ブートストラッピングプロセス２１４は、そのノード後方が分割可能であるか否かを決定する、すなわち、ｎ−グラムまたは文字列をいくつかの個別のノード候補に分割されるか否かを決定する。例えば、限定されるものでないが、ノード候補から既知のユーザまたはコンセプトへの一致は、さまざまな理由から見つからない場合があるが、その中でも最も単純なのは、ノード候補が一般的すぎて既知のユーザまたはコンセプトを確実に識別できない、共通の名前である、綴りの誤りがひどく多い、もしくは入力が間違っている、または一般的に１つの語句、さらには２以上のコンセプトを伴う「より高い次数の」コンセプトとみなされるという理由である。例えば、限定されるものでないが、ユーザは、前処理の後であっても、結果としてより高い次数のノード候補の文字列「ジョニー・デップまたはエドワード・ノートンが出演する映画すべて（ａｌｌ  ｍｏｖｉｅｓ  ｗｉｔｈ  Ｊｏｈｎｎｙ  Ｄｅｐｐ  ｏｒ  Ｅｄｗａｒｄ  Ｎｏ
ｒｔｏｎ）」をもたらす宣言をタイプ入力している可能性がある。このプロセスを円滑に進めるために、ブートストラッピングプロセス２１４は、とりわけ「および（ａｎｄ）」、または「または（ｏｒ）」などの「接続詞」のリストを維持する。特定の実施形態において、このような文字列に対する信頼できる一致が見つからない場合、ブートストラッピングプロセス２１４は、ノード候補に対応するｎ−グラムまたは文字列が分割可能であるか否かを決定する。特定の実施形態において、ｎ−グラムまたは文字列が分割可能であると決定された（例えば、ブートストラッピングプロセス２１４が文字列内の接続詞を識別した）場合、ブートストラッピングプロセス２１４は、ｎ−グラムまたは文字列を１または複数のノード候補に分割する。これらの分割ノード候補（例えば、「ジョニー・デップが出演する映画すべて（ａｌｌ  ｍｏｖｉｅｓ  ｗｉｔｈ  Ｊｏｈｎｎｙ  Ｄｅｐｐ）」および「エドワード・ノートンが出演する映画すべて（ａｌｌ  ｍｏｖｉｅｓ  ｗｉｔｈ
Ｅｄｗａｒｄ  Ｎｏｒｔｏｎ）」）のそれぞれについて、ブートストラッピングプロセス２１４は、これまで通りに進行する。
【００６７】
特定の実施形態において、ブートストラッピングプロセス２１４は、ノード候補が分割可能であるか、またはより具体的には簡約可能であるか否かを決定するために使用する「一般的な言い回し」の第２のリストを使用する。例えば、限定されるものでないが、上記の例において、「が出演する映画すべて（ａｌｌ  ｍｏｖｉｅｓ  ｗｉｔｈ）」と読める文字列の部分は、一般的な言い回しとして識別されて取り除かれ、その結果個別のノード候補は単純に「ジョニー・デップ（Ｊｏｈｎｎｙ  Ｄｅｐｐ）」および「エドワード・ノートン（Ｅｄｗａｒｄ  Ｎｏｒｔｏｎ）」となる。
【００６８】
特定の実施形態において、推奨生成プロセス２１８は、特定のプロファイルページ（「リクエストページ」）を要求しているか、または現在閲覧している特定のユーザ（「リクエストユーザ」）に対する推奨プロファイルページを決定することができ、さらに、推奨プロファイルページへの参照をプロファイルページの推奨セクションに表示または列挙させる。特定の実施形態において、推奨生成プロセス２１８は、リクエストユーザ、要求されたプロファイルページ、ユーザノード３０２が各エッジを有する要求されたプロファイルページのノードにも接続されるか、または接続されないユーザの友達、要求されたプロファイルページのノードにも接続されている各ノードを有する他のプロファイルページ、他の好適なソーシャルネットワーキングデータ、またはこれらの任意の組み合わせのうちの１または複数に関する情報を含む、ソーシャルグラフデータベース２０６から抽出された推奨プロファイルページベースの情報を決定する。例えば、限定されるものでないが、推奨セクション５１０に表示される推奨されたプロファイルページは、（ソーシャルグラフデータベース２０６内のエッジによって定義されているような）リクエストユーザの友達、および特に、要求されたプロファイルページにも（ソーシャルグラフデータベース２０６内のエッジで）接続されている友達に「“いいね”と表明」か、「友達」か、または他の任意の形で（ソーシャルグラフデータベース２０６内のエッジ３０６で）接続されているプロファイルページを含む。別の例として、限定されるものでないが、推奨セクション５１０に表示される推奨されたプロファイルページは、ユーザ、および特に、（ソーシャルグラフデータベース２０６内のエッジによって定義されているような）リクエストユーザの友達も「いいね」と表明するか、または他の任意の形で（ソーシャルグラフデータベース２０６内のエッジで）接続されるプロファイルページを含むが、ユーザは要求されたプロファイルページと（ソーシャルグラフデータベース２０６内のエッジで）必ずしも接続されない。さらに別の例として、限定されるものでないが、推奨セクション５１０に表示される推奨されたプロファイルページは、（ソーシャルグラフデータベース２０６内のエッジで）要求されたプロファイルページおよび（ソーシャルグラフデータベース２０６内のエッジによって定義されるように）リクエストユーザの１または複数の友達に接続されているプロファイルページを含む。さらに別の例として、限定されるものでないが、推奨セクション５１０に表示される推奨されたプロファイルページは、（ソーシャルグラ
フデータベース２０６内のエッジで）要求されたプロファイルページに接続されるが、必ずしも（ソーシャルグラフデータベース２０６内のエッジによって定義されるように）リクエストユーザの友達と接続されていないプロファイルページを含む。一般的に、特定のプロファイルページを現在閲覧しているか、または要求しているリクエストユーザに推奨されたプロファイルページを表示するための１つの目標または動機は、ユーザに、ユーザが閲覧または対話的に操作することに関心を有している推奨されたプロファイルページを提供し、さらに、現在閲覧されているプロファイルページからそのような推奨されたプロファイルページへのナビゲーションを円滑にし、特定の実施形態において、ユーザに対応するユーザノード３０２をユーザが関心のあることを証明するか、または示す推奨されたプロファイルページに対応するノードに接続するエッジ３０６の作成を円滑にすることである。
【００６９】
特定の実施形態において、この方法は、ソーシャルネットワーキングシステム２０が特定のユーザ（リクエストユーザ）から特定のプロファイルページ（要求されたプロファイルページ）に対するリクエストを受信したときに開始し得る。特定の実施形態において、リクエストに応答して、ソーシャルネットワーキングシステム２０、および特に、ページ生成プロセス２００は、リクエストユーザのクライアントデバイス３０にプロファイルページをレンダリングするための構造化ドキュメントを生成することができ、構造化ドキュメントを含む初期応答をリクエストユーザのクライアントデバイス３０に送信する。リクエストユーザに送信される構造化ドキュメントは、要求されたプロファイルページをクライアントに供給してクライアントのウェブブラウザ２０２によりレンダリングするために使用されるマークアップ言語コードさらにはさまざまなコードセグメント、スクリプト、リソース、または他の情報もしくはコンテンツを含むベース構造化ドキュメント（ｂａｓｅ  ｓｔｒｕｃｔｕｒｅｄ  ｄｏｃｕｍｅｎｔ）とする。特定の実施形態において、ベース構造化ドキュメントは、推奨セクション５１０の一部分を表示するためのコードを含む要求されたプロファイルページの１または複数の一部分をレンダリングするためのコードを含むが、推奨されたプロファイルページそれ自体をプロファイルページ名または他の識別子５１２および画像５１４の形態では含み得ない、すなわち、一実装では、ソーシャルネットワーキングシステム２０は、推奨されたプロファイルページが推奨生成プロセス２１８によって決定される前に初期応答で構造化ドキュメントを送信する。このようにして、クライアントのウェブブラウザ２０２は、構造化ドキュメントをレンダリングすることと、推奨生成プロセス２１８が推奨されたプロファイルページの決定を完了するとともに要求されたプロファイルページをレンダリングするためのリソースをダウンロードすることとを開始する。
【００７０】
特定の実施形態において、ベース構造化ドキュメントの生成または初期応答の送信と並行して、またはその後に、推奨生成プロセス２１８は、クライアントのウェブブラウザ２０２によるレンダリングのためにリクエストユーザのクライアントデバイス３０への１または複数のその後の応答で次いで送信される推奨されたプロファイルページを生成する。特定の実施形態において、プロファイルページに対するリクエストが、ソーシャルネットワーキングシステム２０によって受信された後、ソーシャルネットワーキングシステム２０内で実行されているページ生成プロセス２００または他のプロセスは、推奨セクション５１０に表示する１または複数の推奨されたプロファイルページを要求する命令またはクエリを推奨生成プロセス２１８に送信する。特定の実施形態において、この命令またはクエリは、ユーザの識別子（例えば、リクエストユーザのユーザノード３０２を識別するユーザＩＤ）および要求されたプロファイルページの識別子（例えば、要求されたプロファイルページのユーザノード３０２またはコンセプトノード３０４を識別するプロファイルページＩＤ）などの情報を含む。
【００７１】
特定の実施形態において、命令またはクエリに応答して、次いで、推奨生成プロセス２
１８は、その後、それぞれリクエストユーザ（例えば、リクエストユーザの友達、リクエストユーザに「いいね」と表明されているコンセプト）と接続され、また要求されたプロファイルページと接続されている１もしくは複数のユーザまたは１もしくは複数のコンセプト（例えば、要求されたプロファイルページについて「いいね」と表明するユーザ、リクエストユーザの友達に「いいね」と表明されているコンセプト）とそれぞれ接続されている（ソーシャルグラフデータベース２０６内のエッジ３０６を通じて）プロファイルページを含む第１のデータセットを決定するか、または識別する。特定の実施形態において、第１のデータセットを決定するのと並行して、またはその後に、推奨生成プロセス２１８は、要求されたプロファイルページと両方ともそれぞれ接続され（ソーシャルグラフデータベース２０６内のエッジ３０６を通じて）、また、その後（ソーシャルグラフデータベース２０６内のエッジ３０６を通じて）リクエストユーザ（例えば、リクエストユーザの友達）に接続される１もしくは複数のユーザまたは１もしくは複数のコンセプトとも接続されているプロファイルページを含む第２のデータセットを決定する。一般的に、第１および第２のデータセットは、同じプロファイルページのうちの１または複数を含む。
【００７２】
特定の実施形態において、ソーシャルグラフデータベース２０６は、ソーシャルグラフデータベース２０６内でデータにインデックスを作成することによって生成された１または複数のクエリ可能な（検索可能な）インデックスを含む（あるいは、別の実施形態では、インデックスは、ソーシャルグラフデータベース２０６の外部にある１または複数のデータストアまたはデータベースに記憶される）。特定の実施形態において、インデックス作成プロセス２２０は、インデックスを定期的（例えば、毎時間、毎日、毎週）に生成するか、または更新する。それに加えて、または代替的に、インデックスは、ソーシャルグラフデータベース２０６内の新規ノードまたは新規エッジの作成に応答して、さらには他のアクションに応答して（例えば、ユーザとプロファイルページとの間の双方向な対話に応答して、またはユーザプロファイルページもしくはハブに編集を加えたことに応答して）動的に更新される。特定の実施形態において、インデックス作成プロセス２２０は、これらの決定を円滑にするために複数のインデックスを生成する。例えば、限定されるものでないが、インデックス作成プロセス２２０は、ユーザＩＤ（例えば、ユーザおよびソーシャルグラフデータベース２０６内の各ユーザノード３０２の識別子）でインデックスを作成され、それぞれのユーザＩＤについて、各ユーザノード３０２がインデックスで特定のユーザＩＤに対応するユーザノード３０２に接続されている各ユーザＩＤによって識別される他のユーザの集合を含むすべての登録ユーザのインデックスを生成し、維持する。別の例として、限定されるものでないが、インデックス作成プロセス２２０は、ここでもまたユーザＩＤでインデックスを作成されるが、それぞれのユーザＩＤについて、インデックスで特定のユーザＩＤに対応するユーザノード３０２に接続されている各プロファイルページＩＤ（例えば、プロファイルページおよびソーシャルグラフデータベース２０６内の各コンセプトノード３０４の識別子）によって識別されるハブまたは各コンセプトノード３０４の集合を含むすべての登録ユーザの別のインデックスを生成し、維持する。さらに別の例として、限定されるものでないが、インデックス作成プロセス２２０は、プロファイルページＩＤでインデックスを作成され、それぞれのプロファイルページＩＤについて、インデックスで特定のプロファイルページＩＤに対応するコンセプトノード３０４に接続されているプロファイルページＩＤによって識別される他のプロファイルページおよび各コンセプトノード３０４の集合を含むすべてのプロファイルページの別のインデックスを生成し、維持する。さらに別の例として、限定されるものでないが、インデックス作成プロセス２２０は、プロファイルページＩＤでインデックスを作成され、それぞれのプロファイルページＩＤについて、インデックスで特定のプロファイルページＩＤに対応するコンセプトノード３０４に接続されているユーザＩＤによって識別されるユーザおよび各ユーザノード３０２の集合を含むすべてのプロファイルページの別のインデックスを生成し、維持する。
【００７３】
特定の実施形態において、推奨生成プロセス２１８は、インデックス作成プロセス２２０によって生成されたインデックスについてクエリを実行することによって、第１および第２のデータセットを、それぞれ、決定する。これは、インデックス作成プロセス２２０それ自体またはそれらのインデックスのうちの１または複数を検索することに基づきクエリを受信し、結果を返すように構成されている他の任意のプロセスにクエリを実行することを伴い得る。例えば、限定されるものでないが、推奨生成プロセス２１８は、第１のネストしたクエリの第１の部分またはステップにおいて、リクエストユーザと接続されているユーザ（例えば、友達）に対応するすべてのユーザＩＤを識別するようにインデックス作成プロセス２２０に命令する第１のネストしたクエリをインデックス作成プロセス２２０に送信することによって第１のデータセットを決定する。ネストしたクエリの第２の部分において、インデックス作成プロセス２２０は、第１の部分において識別されたユーザＩＤのうちのどれが要求されたプロファイルページにも接続されているユーザに対応しているかを識別するように命令される。第１のネストしたクエリの第３の部分において、推奨生成プロセス２１８に、インデックス作成プロセス２２０は、クエリの第２の部分において識別されたユーザＩＤと接続されているプロファイルページに対応するプロファイルページＩＤ（ただし、特定の実施形態では、リクエストユーザにすでに接続されているプロファイルページに対応するプロファイルページＩＤを除外する）、さらにはプロファイルページＩＤのそれぞれと一致したユーザＩＤそれ自体を返すように命令される。同様にして、推奨生成プロセス２１８は、第２のデータセットを、要求されたプロファイルページと接続されているプロファイルページに対応するすべてのプロファイルページＩＤを決定し、次いで、推奨生成プロセス２１８に、リクエストユーザと接続されている１または複数のユーザとも接続されている識別されたプロファイルページのうちの１つに対応するプロファイルページＩＤ（ただし、特定の実施形態では、リクエストユーザにすでに接続されているプロファイルページに対応するプロファイルページＩＤを除く）さらにはプロファイルページＩＤのそれぞれと一致したユーザＩＤそれ自体を返すようにインデックス作成プロセスに命令する第２のネストしたクエリをインデックス作成プロセス２２０に送信することによって決定する。
【００７４】
特定の実施形態において、インデックス作成プロセス２２０によって生成されるプロファイルページインデックスは、プロファイルページカテゴリ（例えば、ユーザ、グループ、関連付け、映画、音楽、アクティビティ、スポーツなど）によってインデックスを作成され、構成され、または他の任意の方法で検索可能である。特定の実施形態において、第１および第２のデータセットで返されるプロファイルページは、要求されたプロファイルページと同じカテゴリを共有するプロファイルページのみを含む。しかし、特定の実施形態では、異なるカテゴリのプロファイルページは、返されたデータセットに含まれる。
【００７５】
特定の実施形態において、第１および第２のデータセットのそれぞれは、プロファイルページのリストまたはインデックス（例えば、プロファイルページＩＤによって識別される）、さらにはそれぞれのプロファイルページについて、各プロファイルページと接続されているユーザ（例えば、ユーザＩＤによって識別され）および／またはコンセプト（例えば、コンセプトＩＤによって識別される）の集合も含む。次いで、推奨生成プロセス２１８は、第１および第２のデータセットで識別されているそれぞれのプロファイルページについてスコアを生成し、その後、各スコアに基づきプロファイルページをランク付けして推奨されたプロファイルページに対する候補であるランク付けされたプロファイルページ（これ以降、「候補ページ」ともに称される）の単一の組み合わされた、または相関されたリストを生成する。特定の実施形態において、推奨生成プロセス２１８は、第１または第２のデータセット内の各プロファイルページとともに返されるユーザ（すなわち、リクエストユーザの友達）またはコンセプト（すなわち、リクエストユーザまたはその友達に「いいね」と表明されるコンセプト）の数に少なくとも一部は基づき第１および第２のデータセットのそれぞれにおけるそれぞれのプロファイルページにスコアを付ける。
【００７６】
特定の実施形態において、推奨生成プロセス２１８は、第１および第２のデータセットのそれぞれの中のプロファイルページにスコアを付けることができ、次いで結果として得られたスコアを組み合わせる。例えば、限定されるものでないが、第１のセット内のプロファイルページがリクエストユーザの友達のうちの５人と接続されている場合、そのプロファイルページは、推奨生成プロセス２１８によって５というスコアまたは重みを割り当てられる。同様に、第２のセット内のプロファイルページがリクエストユーザの友達のうちの４人と接続されている場合、そのプロファイルページは、推奨生成プロセス２１８によって４というスコアまたは重みを割り当てられる。特定の実施形態において、次いで、推奨生成プロセスは、第１および第２のデータセットのそれぞれの中のプロファイルページのすべてを含む組み合わされたデータセットを生成し、第１および第２のデータセットのそれぞれに基づきスコアリングの結果を組み合わせるか、または相関を求めて、組み合わされたデータセット内のプロファイルページのそれぞれに対して単一の相関しているスコアを生成する。次いで、各候補ページに対する単一の相関しているスコアが、プロファイルページの相関しているランク付けリスト内でプロファイルページをランク付けする際に使用される。特定の実施形態において、第１および第２のデータセット内のプロファイルページに割り当てられる重みは、それ自体、推奨生成プロセス２１８によって等しく重み付けされる。例えば、限定されるものでないが、第１のデータセットからの５の重みを有するプロファイルページは、単一の相関しているランク付けリスト内で５のスコアを割り当てられる。同様に、第２のデータセットからの４の重みを有するプロファイルページは、単一の相関しているランク付けリスト内で４のスコアを割り当てられる。それに加えて、第１および第２のデータセットが共通のプロファイルページを共有するので、第１および第２のデータセットの両方で返されたプロファイルページが第１のデータセットに基づき６の重みを割り当てられ、第２のデータセットに基づき３の重みを割り当てられた場合、推奨生成プロセス２１８は、個別の重みの総和を求め、単一の相関しているランク付けリスト内でプロファイルページに９のスコアを割り当てる（６＋３＝９）。しかし、重みを生成するために使用される友達は、第１および第２のデータセットにおいて共有されるので、推奨生成プロセス２１８は、これを考慮して、組み合わされたスコアを小さくする。例えば、限定されるものでないが、上記の例を続けて、両方のデータセット内にあるプロファイルページは、それぞれのデータセット内の２人の友達をさらに共有すると仮定すると、プロファイルページに対する結果として得られる相関しているスコアは、７として計算される（６＋３−２＝７）。しかし、特定の実施形態では、推奨生成プロセス２１８は、最初に、第１および第２のデータセットを組み合わせて１つの組み合わされたデータセットを生成し、次いで、結果として得られた組み合わされたデータセット内のプロファイルページのそれぞれにスコアを付ける。このようにして、データセット間で共有されるプロファイルページおよび関連付けられているユーザは、望ましい場合には、プロファイルページに対するスコアを生成する前に考慮される。
【００７７】
特定の実施形態において、推奨生成プロセス２１８は、各プロファイルページと接続されているリクエストユーザの友達の、単なる数以外の要因に基づき組み合わされたデータセット内のそれぞれのプロファイルページに対するスコアを決定する。例えば、限定されるものでないが、推奨生成プロセス２１８は、１または複数の他のデータセットについてインデックス作成プロセス２２０にクエリを実行する。例えば、限定されるものでないが、推奨生成プロセス２１８は、要求されたプロファイルページと接続されているすべてのプロファイルページ、または要求されたプロファイルページと接続され、リクエストユーザの友達のどれにも接続されていないすべてのプロファイルページを含む第３のデータセットを決定する。別の例として、限定されるものでないが、推奨生成プロセス２１８は、リクエストユーザの友達と接続されているプロファイルページのすべて、またはリクエストユーザの友達と接続され、要求されたプロファイルページに接続されていないプロファイルページのすべてを含む第４のデータセットを決定する。これら第３または第４のデー
タセットは、第１および第２のデータセット内のデータを増やす際に、または第１および第２のデータセット内のプロファイルページにスコアを付けるための追加の基準（例えば、プロファイルページのそれぞれの全体的な人気度を示すグローバルフィルタ）を提供するために使用される。さらに、第３および第４のデータセットは、要求されたプロファイルページと接続されているユーザの友達が存在しない、または要求されたプロファイルページと接続されているプロファイルページのいずれもがリクエストユーザのいずれの友達にも接続されていない場合に特に役立つ。
【００７８】
特定の実施形態において、推奨生成プロセス２１８は、第１および第２のデータセット内のプロファイルページと異なる仕方で第３または第４のデータセット内のプロファイルページに重みを付ける。例えば、限定されるものでないが、第３または第４のデータセット内のそれぞれのプロファイルページは、各プロファイルページのユーザノード３０２またはコンセプトノード３０４と接続されているユーザノード３０２の総数に従って重み付けされる。しかし、第１、第２、第３、および第４のデータセットを組み合わせて、組み合わされたデータセット内のそれぞれのプロファイルページに対する相関するスコアを計算すると、第３および第４のデータセット内のそれぞれのプロファイルページと接続されている全ユーザの数から、単一の相関するスコアへの寄与が小さいことの説明がつく。例えば、限定されるものでないが、「プロファイルページＡ」が第１、第２、第３、および第４のデータセットのそれぞれに見つかり、第１のデータセット内の５人のユーザ、第２のデータセット内の４人の非共有ユーザ、第３のデータセット内の５０人のユーザ、第４のデータセット内の７５人のユーザに関連付けられている場合、推奨生成プロセスは、そのプロファイルページに対する相関するスコアを５ａ＋４ｂ＋５０ｃ＋７５ｄと計算することができ、ただし、ａ、ｂ、ｃ、およびｄはユーザの各数に掛ける重みである。例えば、限定されるものでないが、一実装において、ａ＝１、ｂ＝１、ｃ＝０．０１、およびｄ＝０．０１であり、プロファイルページＡに対する相関するスコアは５＋４＋０．５＋０．７５＝１０．２５である。
【００７９】
特定の実施形態において、推奨生成プロセス２１８は、組み合わされたデータセット内のそれぞれのプロファイルページについて、その後、組み合わされたデータセット内のそれぞれのプロファイルページおよび各プロファイルページと接続されているそれぞれのユーザについて生成される多数の係数スコアを総和するか、または他の任意の方法で組み合わせることによって、第１および第２のデータセット内のそれぞれのプロファイルページ（いくつかの実施形態では、第１および第２のデータセットのうちの１または複数の中にもない第３および第４のデータセット内のプロファイルページにはスコアが付けられない）に対する単一の相関するスコアを決定する。特定の実施形態において、この意味での係数スコアは、その接続の強度（エッジ３０６によって定義されるか、もしくは表されるような）または複数の接続を示す。特定のプロファイルページおよび関連付けられているユーザについて推奨生成プロセス２１８によって生成される係数スコアは、さまざまな要因、例えば、ユーザとプロファイルページとの関係、ユーザとリクエストユーザとの関係（例えば、友達、親戚、配偶者など）、プロファイルページとユーザとの間の双方向な対話のレベルまたは頻度（例えば、ユーザがプロファイルページを何回閲覧するか、または一定期間にユーザによってプロファイルページにコンテンツがどれだけ追加されたか）、ユーザとリクエストユーザとの間の双方向な対話のレベルまたは頻度（例えば、ユーザが互いのプロファイルページを何回閲覧したか、または一定期間に、ユーザが何回、コメントを投稿したか、ウォール（フィード）投稿したか、メッセージを送信したか、または互いのプロファイルページと他の任意の方法で双方向に対話したか）、プロファイルページおよびユーザの両方に接続されるか、またはユーザおよびリクエストユーザの両方に接続されるか、またはプロファイルページおよび要求されたプロファイルページの両方に接続されるか、またはプロファイルページおよび要求されたユーザの両方に接続されているユーザノード３０２、コンセプトノード３０４、または全ノードの数、プロファイルページと
要求されたプロファイルページとの間で共有されるコンテンツの量または質、他の好適な要因、またはこれらの任意の組み合わせなどに基づき得る。例えば、限定されるものでないが、組み合わされたデータセット内のそれぞれのプロファイルページに対する単一の相関するスコアを決定することは、推奨生成プロセス２１８が組み合わされたデータセット内のそれぞれのプロファイルページと各プロファイルページに接続されているリクエストユーザの友達のそれぞれとの間の１または複数の係数スコア、組み合わされたデータセット内のそれぞれのプロファイルページとリクエストユーザとの間の１または複数の係数スコア、組み合わされたデータセット内のそれぞれのプロファイルページと要求されたプロファイルページとの間の１または複数の係数スコア、またはリクエストユーザと組み合わされたデータセットからのプロファイルページと接続されているユーザのそれぞれとの間の１または複数の係数スコアを生成することを伴い得る。組み合わされたデータセット内のそれぞれのプロファイルページに対する単一の相関するスコアを決定することは、それに加えて、係数スコアのそれぞれを総和するか、または何らかの形で組み合わせてそれぞれのプロファイルページに対する単一の相関するスコアを生成することを伴い得る。
【００８０】
特定の実施形態において、組み合わされたデータセット内のプロファイルページのそれぞれについて係数スコアを、その後に単一の相関するスコアを計算するために、第１および第２のデータセット（およびいくつかの実施形態において、第３および第４のデータセットも）内の返されたデータ結果は、最初に、推奨生成プロセスによって（またはインデックス作成プロセス２２０から直接的に）データマイニングシステム、例えば、ＨＩＶＥ（ＨＡＤＯＯＰの上に構築されたデータウェアハウスインフラストラクチャ）などに送信されるものとしてよく、ＨＡＤＯＯＰは、次いで、データ上で多数のＭａｐＲｅｄｕｃｅジョブまたはプロセスを動作させるか、または実行し、それぞれのプロファイルページに対する単一の相関するスコアを生成するために推奨生成プロセス２１８によってその後使用される係数スコアを生成する。
【００８１】
特定の実施形態において、推奨生成プロセス２１８は、各相関するスコアでプロファイルページをランク付けすることができ、最も関連性の高いプロファイルページを表す最高の相関スコアを有するプロファイルページでプロファイルページのランク付けリスト（例えば、プロファイルページＩＤのランク付けリスト）を生成する。特定の実施形態において、次いで、推奨生成プロセス２１８は、最高の相関スコアを有する上位ｘ（例えば、図５Ａに示されている例では４）個のプロファイルページを推奨セクション５１０に表示される推奨されたプロファイルページとして選択する。
【００８２】
特定の実施形態において、次いで、推奨生成プロセス２１８は、推奨されたプロファイルページのプロファイルページＩＤを、例えばＨＴＭＬまたは他のマークアップ言語コードを含むコード、さらにはいくつかの実施形態では、例えば推奨されたプロファイルページ名５１２または画像５１４を推奨セクション５１０内にレンダリングする際に使用する画像リソースを含む、さまざまな他のコードセグメントまたはリソース、およびいくつかの実施形態では、推奨されたプロファイルページ名のテキストフィールド５１２またはプロファイルページ画像５１４をクリックするか、または他の任意の形で選択したユーザを推奨されたプロファイルページに誘導するハイパーリンクを実装するためのコードセグメントを次いで生成するページ生成プロセス２００または他のプロセスに伝達する。次いで、コードおよびリソースは、クライアントのウェブブラウザ２０２によるレンダリングに対するその後の応答でユーザのクライアントデバイス３０に送信される。特定の実施形態において、その後の応答は、要求されたプロファイルページをレンダリングするためのベース構造化ドキュメントは初期応答ですでに送信されている可能性があるので、ＡＪＡＸまたは他の非同期技術を使用して送信される。特定の実施形態において、ソーシャルネットワーキングシステム２０は、推奨生成プロセス２１８が推奨されたプロファイルページのプロファイルページＩＤを提供するのを待つものとしてよく、構造化ドキュメントをリ
クエストユーザに送信する前にクライアントデバイス３０にプロファイルページをレンダリングするために構造化ドキュメントの残りとともに推奨されたプロファイルページ名５１２またはプロファイルページ画像５１４を表示するためのコードもしくはリソースを含む。
【００８３】
特定の実施形態において、推奨されたプロファイルページのそれぞれと接続されているユーザまたはノードおよびリクエストユーザの選択された部分集合のノード名（例えば、テキスト）５１６またはノード画像５１８（例えば、ユーザプロファイル画像、アバター、コンセプトプロファイル画像）をレンダリングするためのコードも、推奨セクション５１０内に各推奨されたプロファイルページの隣にレンダリングし表示するためにその後の応答とともに送信される。それに加えて、または代替的に、送信されたその後の応答は、例えば、ｎを各推奨されたプロファイルページに接続されているリクエストユーザの友達の数である「ｎ人のあなたの友達もこれについて“いいね”と表明しています」、または「これらの友達」が各推奨されたプロファイルページの隣に表示されるノード名５１６またはノード画像５１８で表される、「これらの友達もこれについて“いいね”と表明しています」、または「：を含むｎ人のあなたの友達もこれについて“いいね”と表明しています」と読める各推奨されたプロファイルページの近くに推奨されたプロファイルページのそれぞれに対するテキスト文字列を表示するためのコードを含む。
【００８４】
特定の実施形態において、ウォール（またはニュースフィード／アクティビティフィード）セクション５０１ａ、またはプロファイルページの他のフィードもしくはアクティビティセクションは、プロファイルページを閲覧しているユーザおよびユーザの友達に関連付けられているコメント、ステータス更新、ウォール投稿、または他のユーザアクティビティを表示する。ウォール（またはニュースフィード／アクティビティフィード）セクション５０１ａ、またはプロファイルページの他のフィードもしくはアクティビティセクションは、プロファイルページが作成されたコンセプトに関係するコメント、ステータス更新、ウォール投稿、ならびに他のユーザアクティビティおよびユーザ生成コンテンツ、さらには、いくつかの実施形態では、現在要求されているか、または閲覧されているプロファイルページに対して決定された推奨されたプロファイルページに関連付けられているユーザ／コンセプトを表示する。推奨生成プロセス２１８は、ユーザまたはコンセプトでフィルタリングされたリクエストユーザおよびリクエストユーザの友達に関連付けられているコメント、ステータス更新、ウォール投稿および他のユーザ生成コンテンツおよびユーザアクティビティに関する検索、すなわち、リクエストユーザおよびリクエストユーザの友達に関係するユーザフィードまたはアクティビティのこれらのストリームにおける現在要求されているか、または閲覧されているプロファイルページのユーザまたはコンセプトに関係するキーワード（および潜在的に、推奨されたプロファイルページに関連付けられているユーザまたはコンセプトに関係するキーワード）に対するキーワード検索を実行し、現在要求されているか、または閲覧されているプロファイルページのウォールまたはフィードセクションにユーザコンテンツまたはアクティビティのこの部分集合を表示する。
【００８５】
構造化検索クエリ
特定の実施形態において、オンラインソーシャルネットワークのユーザは、「検索クエリ」と称されることが多い、検索対象を記述する短い語句を検索エンジンに提供することによって特定の検索対象（例えば、ユーザ、コンセプト、外部コンテンツ、またはリソース）に関係する情報を検索する。検索エンジンは、さまざまな検索アルゴリズムを使用してクエリ語句に基づき検索を実行し、検索クエリに関係する可能性が最も高いリソースまたはコンテンツ（例えば、ユーザプロファイルページ、コンテンツプロファイルページ、または外部リソース）を識別する検索結果を生成する。検索を実行するために、ユーザは、検索クエリを検索エンジンに入力するか、または送信し得る。それに応答して、検索エンジンは、検索クエリに対して識別された「検索結果」と総称される、検索クエリに関係
する可能性の高い１または複数のリソースを識別する。検索結果は、ユーザに対して、多くの場合に検索結果ウェブページ上のリンクのリストの形態で提示され、それぞれのリンクは識別されたリソースまたはコンテンツの一部を含む異なるウェブページに関連付けられる。特定の実施形態において、検索結果内のそれぞれのリンクは、対応するウェブページが配置される場所を指定するユニフォームリソースロケータ（ＵＲＬ）とそれを取り出すための機構の形態をとり得る。次いで、ユーザは、ＵＲＬリンクをクリックすることで自分が望んでいるとおりに対応するウェブページ内に含まれる特定のリソースまたはコンテンツを閲覧する。リソースは、検索クエリとの相対的関連度に従ってランク付けされ、ユーザに提示される。検索結果も、ユーザとの相対的関連度に従ってランク付けされ、ユーザに提示される。言い換えると、検索結果は、例えば、ソーシャルグラフ情報、ユーザ情報、ユーザの検索もしくはブラウザ閲覧履歴、またはユーザに関係する他の好適な情報に基づきクエリを実行するユーザに対してパーソナライズされる。特定の実施形態において、これらのリソースのランク付けは、検索エンジンに実装されているランク付けアルゴリズムによって決定される。例えば、限定されるものでないが、検索クエリまたはユーザに対する相対的関連性がより高いリソースは、検索クエリまたはユーザに対する相対的関連性がより低いリソースより高くランク付けされる。特定の実施形態において、検索エンジンは、その検索をオンラインソーシャルネットワーク上のリソースをおよびコンテンツに制限する。しかし、特定の実施形態では、検索エンジンは、ウェブアプリケーションサーバ４０、エンタプライズサーバ５０、インターネットもしくはワールドワイドウェブ、または他の好適なソースなどの、他のソース上のリソースもしくはコンテンツについても検索する。
【００８６】
特定の実施形態において、本明細書で説明されているタイプアヘッドプロセスは、ユーザによって入力されたクエリを検索するために適用される。例えば、限定されるものでないが、ユーザがテキスト文字を検索フィールド４５０内に入力すると、フロントエンドタイプアヘッドプロセス２０４および／またはバックエンドタイプアヘッドプロセス２０８は、ユーザが文字を入力しているときに検索フィールド４５０に入力された文字列と一致する既存のユーザノード３０２、コンセプトノード３０４、またはエッジ３０６を識別することを試みる。バックエンドタイプアヘッドプロセス２０８がテキストクエリから文字列またはｎ−グラムを含むリクエストまたは呼び出しを受信すると、バックエンドプロセス２０８は、入力されたテキストと一致する各名前、タイプ、カテゴリ、または他の識別子を有する既存のソーシャルグラフ要素（すなわち、ユーザノード３０２、コンセプトノード３０４、エッジ３０６）を識別する検索を実行するか、または実行させられる。バックエンドタイプアヘッドプロセス２０８は、１または複数のマッチングアルゴリズムを使用して一致しているノードまたはエッジを識別することを試みる。１または複数の一致が見つかった場合、バックエンドタイプアヘッドプロセス２０８は、例えば一致しているノードの名前（名前文字列）、さらには潜在的に、一致しているノードに関連付けられている他のメタデータを含む応答をユーザのクライアントデバイス３０に送信する。次いで、フロントエンドタイプアヘッドプロセス２０４は、一致している既存のプロファイルページおよび各ユーザノード３０２もしくはコンセプトノード３０４の名前を表示するドロップダウンメニュー（例えば、図６Ａ〜図６Ｒに示されているドロップダウンメニュー６００など）を表示することができ、一致しているユーザノード３０２またはコンセプトノード３０４に接続し得る一致しているエッジ３０６の名前を表示し、次いで、ユーザはこれをクリックするか、または他の任意の方法で選択して、選択されたノードに対応する一致したユーザもしくはコンセプト名を検索すること、または一致しているエッジによって一致したユーザもしくはコンセプトに接続されているユーザもしくはコンセプトを検索することを望んでいることを確認する。あるいは、フロントエンドタイプアヘッドプロセス２０４は、ドロップダウンメニューを表示する代わりに、単純に、最高位にランク付けされた一致の名前または他の識別子をフォームに自動投入する。次いで、ユーザは、単純に自分のキーボードで「ｅｎｔｅｒ」と打ち込むか、または自動投入された宣言をクリックす
ることによって自動投入された宣言を確認する。一致しているノードおよびエッジをユーザが確認した後、フロントエンドタイプアヘッドプロセス２０４は、一致しているソーシャルグラフ要素を含むクエリをユーザが確認することをバックエンドタイプアヘッドプロセスに通知するリクエストをバックエンドタイプアヘッドプロセス２０８に送信する。リクエストが送信されたことに応答して、バックエンドタイプアヘッドプロセスは、一致しているソーシャルグラフ要素について、または一致しているソーシャルグラフ要素に接続されているソーシャルグラフ要素について、適宜、ソーシャルグラフデータベース２０６を検索するためにソーシャルネットワーキングシステム２０を自動的に（あるいはリクエストの中の命令に基づき）呼び出すか、または他の任意の方法で命令する。本開示では特定の様式でタイプアヘッドプロセスを検索クエリに適用することを説明しているが、本開示は、任意の好適な様式でタイプアヘッドプロセスを検索クエリに適用することを企図している。
【００８７】
図６Ａ〜図６Ｒは、ソーシャルネットワークの例示的なクエリを示している。特定の実施形態において、ソーシャルネットワーキングシステム２０は、第１のユーザ（すなわち、クエリを実行しているユーザ）から受信されたテキストクエリに応答して１または複数の識別されたソーシャルグラフ要素への参照を含む１または複数の構造化クエリを生成する。図６Ａ〜図６Ｒは、さまざまな例示的なテキストクエリをクエリフィールド４５０内に、および応答して生成されるさまざまな構造化クエリをドロップダウンメニュー６００内に示している。ユーザのテキストクエリに応答して提案されたる構造化クエリを提供することによって、ソーシャルネットワーキングシステム２０は、ソーシャルグラフ属性およびさまざまなソーシャルグラフ要素との関係に基づきソーシャルグラフ３００で表される要素をオンラインソーシャルネットワークのユーザが検索するための強力な手段を提供し得る。構造化クエリを使用することで、クエリを実行するユーザは、特定のエッジタイプによってソーシャルグラフ３００内の特定のユーザまたはコンセプトに接続されているコンテンツを検索することが可能になる。例えば、限定されるものでないが、ソーシャルネットワーキングシステム２０は、実質的に構造化されていないテキストクエリを第１のユーザから受信する。それに対する応答として、ソーシャルネットワーキングシステム２０は（例えば、サーバサイド要素検出プロセスを通じて）、ソーシャルグラフ３００にアクセスし、次いで、テキストクエリを構文解析して、そのテキストクエリからｎ−グラムに対応するソーシャルグラフ要素を識別する。ソーシャルネットワーキングシステム２０は、それぞれのｎ−グラムに対する、それが特定のソーシャルグラフ要素に対応する確率を決定することによってこれらの対応するソーシャルグラフ要素を識別する。しきい値の確率より高い確率を有するソーシャルグラフ要素が識別され、次いで、ソーシャルネットワーキングシステム２０によって生成された１または複数の構造化クエリにおいて参照される。次いで、構造化クエリは、第１のユーザに送信され、ドロップダウンメニュー１００内に表示され（例えば、クライアントサイドタイプアヘッドプロセスを通じて）、そこで第１のユーザは所望のコンテンツを検索するのに適切なクエリを選択する。第１のユーザが特定の構造化クエリを選択した後、ソーシャルネットワーキングシステム２０は、そのクエリを処理して、そのクエリに対応するターゲットノードを識別する。次いで、これらのターゲットノードは、それらのノードに関連付けられているプライバシ設定に基づき（例えば、サーバサイドプライバシフィルタプロセスを通じて）フィルタリングされ、次いで、フィルタリングされた結果が、検索結果として第１のユーザに送信される。本明細書で説明されている構造化クエリを使用する利点のいくつかは、制限された情報に基づきオンラインソーシャルネットワーキングのユーザを見つけること、そのコンテンツとさまざまなソーシャルグラフ要素との関係に基づきオンラインソーシャルネットワークからコンテンツの仮想インデックスをまとめること、または自分および／または自分の友達に関係するコンテンツを見つけることを含む。本開示では特定の様式で特定の構造化クエリを生成することを説明し、図６Ａ〜図６Ｒにおいてそれを図示しているが、本開示は、好適な様式で好適な構造化クエリを生成することを企図している。
【００８８】
要素検出
特定の実施形態において、ソーシャルネットワーキングシステム２０は、クエリを実行している／第１のユーザ（第１のユーザノード３０２に対応する）から実質的に構造化されていないテキストクエリを受信する。例えば、限定されるものでないが、第１ユーザは、（１）第１のユーザの第１度の友達であり、（２）ＦＡＣＥＢＯＯＫ（登録商標）という会社について「いいね」と表明し（すなわち、ユーザノード３０２は、フェースブック（登録商標）社（ＦＡＣＥＢＯＯＫ  ＩＮＣ．）に対応するコンセプトノード３０４にエッジ３０６によって接続される）、（３）ある年齢より若い他のユーザを検索することを望み得る。次いで、第１のユーザは、図６Ｃ〜図６Ｉに示されるように、「フェースブックに  “いいね”と表明しているＸＸより若い友達（ｆｒｉｅｎｄｓ  ｗｈｏ  ｌｉｋｅ
ｆａｃｅｂｏｏｋ  ａｎｄ  ａｒｅ  ｙｏｕｎｇｅｒ  ｔｈａｎ）」というテキストクエリを検索フィールド４５０に入力する。別の例として、限定されるものでないが、その第１ユーザは、（１）「Ｏｌｄ  Ｐｒｏ」という場所について「いいね」と表明し、（２）「Ａｃｍｅ」という会社について「いいね」と表明し、（３）パロアルト（Ｐａｌｏ  Ａｌｔｏ）という市に居住している他のユーザを検索することを望み得る。次いで、第１のユーザは、図６Ｋ〜図６Ｏに示されるように、「パロアルトでｏｌｄ  ｐｒｏとａｃｍｅについて“いいね”と表明する人（ｐｅｏｐｌｅ  ｗｈｏ  ｌｉｋｅ  ｏｌｄ  ｐｒｏ
ａｎｄ  ａｃｍｅ  ｉｎ  ｐａｌｏ  ａｌｔｏ）」というテキストクエリを検索フィールド４５０に入力する。上で説明されている例の両方において、第１のユーザがこのテキストクエリを検索フィールド４５０内に入力すると、ソーシャルネットワーキングシステム２０は、ドロップダウンメニュー６００に示されるように、さまざまな提案される構造化クエリを提供する。本明細書で使用されるように、実質的に構造化されていないテキストクエリは、ユーザによって入力されるシンプルテキスト文字列を含む。テキストクエリは、当然に、標準的な言語／文法の規則に関して構造化される。しかし、テキストクエリは、通常、ソーシャルグラフ要素に関しては構造化されない。言い換えると、シンプルテキストクエリは、通常、特定のソーシャルグラフ要素への埋め込まれた参照を含まない。したがって、本明細書で使用されるように、構造化クエリは、特定のソーシャルグラフ要素への参照を含むクエリを示し、これにより検索エンジンは識別された要素に基づき検索を実行する。本開示は特定の様式で特定のクエリを受信することを説明しているが、本開示は、好適な様式で好適なクエリを受信することも企図している。
【００８９】
特定の実施形態において、ソーシャルネットワーキングシステム２０は、第１のユーザ（すなわち、クエリを実行しているユーザ）から受信された実質的に構造化されていないテキストクエリ（単に検索クエリとも称される）を構文解析して、１または複数のｎ−グラム識別する。一般に、ｎ−グラムは、テキストまたは音声の所定のシーケンスからの連続するｎ個のアイテムのシーケンスである。これらのアイテムは、テキストまたは音声のシーケンスからの文字、音韻、音節、英字、単語、ベースペア、接頭辞、または他の識別可能なアイテムである。ｎ−グラムは、クエリを実行しているユーザによって入力されたテキストの１または複数の文字（英字、数字、句読点など）を含む。ｎ−グラムは、サイズ１のものは「ユニグラム」と称され、サイズ２のものは、「バイグラム」または「ダイグラム」と称され、サイズ３のものは、「トライグラム」と称され、以下同様に称される。それぞれのｎ−グラムは、クエリを実行しているユーザから受信されたテキストクエリからの１または複数の部分を含むとしてよい。特定の実施形態において、それぞれのｎ−グラムは、第１のユーザによって入力された文字列（例えば、テキストの１または複数の文字）を含む。例えば、限定されるものでないが、ソーシャルネットワーキングシステム２０は、テキストクエリ「パロアルトの友達（ｆｒｉｅｎｄｓ  ｉｎ  ｐａｌｏ  ａｌｔｏ）」を構文解析して、ｎ−グラムである、友達（ｆｒｉｅｎｄｓ）、の（ｉｎ）、パロ（ｐａｌｏ）、アルト（ａｌｔｏ）、の友達（ｆｒｉｅｎｄｓ  ｉｎ）、パロの（ｉｎ  ｐａｌｏ）、パロアルト（ｐａｌｏ  ａｌｔｏ）、パロの友達（ｆｒｉｅｎｄ  ｉｎ  ｐ
ａｌｏ）、パロアルトの（ｉｎ  ｐａｌｏ  ａｌｓｏ）、パロアルトの友達（ｆｒｉｅｎｄｓ  ｉｎ  ｐａｌｏ  ａｌｔｏ）を識別する。特定の実施形態において、それぞれのｎ−グラムは、テキストクエリからの連続するｎ個のアイテムのシーケンスを含む。別の例として、限定されるものでないが、ソーシャルネットワーキングシステム２０は、テキストクエリ「フェースブックに“いいね”と表明している友達（ｆｒｉｅｎｄｓ  ｗｈｏ  ｌｉｋｅ  ｆａｃｅｂｏｏｋ）」を構文解析し（図６Ｆに示されるように）、ｎ−グラムである、友達（ｆｒｉｅｎｄｓ）、している（ｗｈｏ）、“いいね”と表明（ｌｉｋｅ）、フェースブック（ｆａｃｅｂｏｏｋ）、している友達（ｆｒｉｅｎｄｓ  ｗｈｏ）、“いいね”と表明している（ｗｈｏ  ｌｉｋｅ）、フェースブックに“いいね”と表明（ｌｉｋｅ  ｆａｃｅｂｏｏｋ）、“いいね”と表明している友達（ｆｒｉｅｎｄｓ  ｗｈｏ
ｌｉｋｅ）、フェースブックに“いいね”と表明している（ｗｈｏ  ｌｉｋｅ  ｆａｃｅｂｏｏｋ）を識別する。本開示は特定の様式で特定のクエリを構文解析することを説明しているが、本開示は、好適な様式で好適なクエリを構文解析することも企図している。
【００９０】
特定の実施形態において、ソーシャルネットワーキングシステム２０は、それぞれのテキストクエリを構文解析して、特定のソーシャルグラフ要素に対応するように予め決定されている１または複数のｎ−グラムを抽出する。検索クエリ内のすべての単語が所定の要素を表すわけではないことに留意されたい。特定の実施形態では、所定のクエリ要素を表さないｎ−グラムを無視し得る。例えば、限定されるものでないが、ソーシャルネットワーキングシステム２０は、図６Ｆに示されるように、「ｆｒｉｅｎｄｓ  ｗｈｏ  ｌｉｋｅ  ｆａｃｅｂｏｏｋ」を含む検索クエリを受信する。ユニグラム「ｆｒｉｅｎｄｓ」は、クエリを実行しているユーザをソーシャルグラフ３００内のそのユーザの第１度の友達（すなわち、クエリを実行しているユーザに対応するユーザノード３０２の分離度１の範囲内の他のユーザノード３０２）に接続する「友達」エッジ３０６に対応するように予め決定されている。同様に、ｎ−グラム「ｌｉｋｅ」は、ソーシャルグラフ３００内のコンセプトノード３０４に接続する「“いいね”と表明」エッジ３０６に対応するように予め決定されている。最後に、ｎ−グラム「ｆａｃｅｂｏｏｋ」は、フェースブック社という会社に対するコンセプトノード３０４に対応するように予め決定されている。別の例として、限定されるものでないが、ソーシャルネットワーキングシステム２０が「ドクター・イェイテス・ジルツァー（Ｄｏｃｔｏｒ  Ｙｅｉｔｅｓ  Ｚｉｌｔｚｅｒ）」を含む検索クエリを受信した場合、肩書きまたは地位に対する所定の要素が存在しない場合がある。したがって、「ドクター（ｄｏｃｔｏｒ）」というユニグラムは、ソーシャルグラフ要素を表し得ない（これが特定のソーシャルグラフ要素の属性または特性を表し、それに基づき検索可能であるが）。他方、人名に対して所定の要素が存在する場合がある。したがって、ｎ−グラム「Ｙｅｉｔｅｓ  Ｚｉｌｔｚｅｒ」は、イェイテス・ジルツァーという名前のユーザに対する特定のユーザノード３０２に対応するクエリ要素を表す。所定の要素を表さないｎ−グラムは、ヌル要素を表すものとして、または他の任意の形で特定のソーシャルグラフ要素に対応しないものとして印を付けられてもよい。本開示は特定の様式で特定の検索クエリを構文解析することを説明しているが、本開示は、好適な様式で好適な検索クエリを構文解析することも企図している。
【００９１】
特定の実施形態において、ソーシャルネットワーキングシステム２０は、テキストクエリで識別されているそれぞれのｎ−グラムについて、ｎ−グラムがソーシャルグラフ要素に対応するスコアを決定するか、または計算する。スコアは、例えば、信頼スコア、確率、質、順位、別の好適なタイプのスコア、またはこれらの組み合わせであってよい。例えば、限定されるものでないが、ソーシャルネットワーキングシステム２０は、ｎ−グラムがソーシャルグラフ３００のユーザノード３０２、コンセプトノード３０４、またはエッジ３０６などの、ソーシャルグラフ要素に対応する確率スコア（単に「確率」ともに称される）を決定する。確率スコアは、ｎ−グラムと特定のソーシャルグラフ要素との間の類似度または関連度のレベルを示す。確率を計算する方法にはさまざまなものがある。本開
示では、検索クエリで識別されたｎ−グラムに対する確率スコアを計算する好適な方法を企図している。特定の実施形態において、ソーシャルネットワーキングシステム２０は、ｎ−グラムが特定のソーシャルグラフ要素に対応する確率ｐを決定する。確率ｐは、特定の検索クエリＸが与えられたときに、特定のソーシャルグラフ要素ｋに対応する確率として計算される。言い換えると、この確率はｐ＝（ｋ｜Ｘ）として計算される。例えば、限定されるものでないが、ｎ−グラムがソーシャルグラフ要素に対応する確率は、ｐｉ，ｊ，ｋと表される確率スコアとして計算される。入力は、テキストクエリＸ＝（ｘ１，ｘ２，．．．，ｘＮ）、およびクラス（ｃｌａｓｓ）の集合である。それぞれの（ｉ：ｊ）およびクラスｋについて、ソーシャルネットワーキングシステム２０は、ｐｉ，ｊ，ｋ＝ｐ（ｃｌａｓｓ（ｘｉ：ｊ）＝ｋ｜Ｘ）を計算する。特定の実施形態において、ソーシャルネットワーキングシステム２０は、言語モデルに基づき特定のｎ−グラムがソーシャルグラフ要素に対応する確率を決定する。好適な確率的言語モデルを使用して、特定のｎ−グラムが特定のソーシャルグラフ要素に対応する確率を決定する。例えば、限定されるものでないが、ソーシャルネットワーキングシステム２０は、ｎ−グラムモデル、セグメンタルマルコフモデル、文法言語モデル、別の好適な確率的言語モデル、またはこれらの組み合わせを使用する。特定の実施形態において、ソーシャルネットワーキングシステム２０は、前向き後ろ向きアルゴリズムを使用して、特定のｎ−グラムが特定のソーシャルグラフ要素に対応する確率を決定する。テキストクエリ内の与えられたｎ−グラムについて、ソーシャルネットワーキングシステム２０は、先行のｎ−グラムと後続のｎ−グラムの両方を使用して、どの特定のソーシャルグラフ要素が与えられたｎ−グラムに対応するかを決定する。特定の実施形態において、ソーシャルネットワーキングシステム２０は、広告スポンサシップに基づき特定のｎ−グラムがソーシャルグラフ要素に対応する確率を決定する。広告主（例えば、特定のノードに対応する特定のプロファイルページのユーザまたは管理者など）は、特定のノードのスポンサになり、そのノードに、特定のｎ−グラムに対応するか否かを決定するときにより高い確率を与えられるようにするか、または決定された確率に関係なく特定のｎ−グラムに対応するものとして識別される。例えば、限定されるものでないが、ｎ−グラム「スマートフォン（ｓｍａｒｔ  ｐｈｏｎｅ）」は、「ｉＰｈｏｎｅ」（スマートフォンの一種である）に対するコンセプトノード３０４に対応し、また「Ａｎｄｒｏｉｄ（登録商標）」（別の種類のスマートフォンである）に対するコンセプトノードにも対応する。これらのコンセプトノード３０４のうちの１つに対して、広告主がスポンサになった場合、ソーシャルネットワーキングシステム２０は、ｎ−グラム「ｓｍａｒｔ  ｐｈｏｎｅ」に対応するより高い確率のｎ−グラムを決定する。本開示では特定の様式でｎ−グラムがソーシャルグラフ要素に対応するか否かを決定することを説明しているが、本開示は、任意の好適な様式でｎ−グラムがソーシャルグラフ要素に対応するか否��を決定することを企図している。さらに、本開示では特定のタイプのスコアを使用してｎ−グラムがソーシャルグラフ要素に対応するか否かを決定することを説明しているが、本開示は、任意の好適なタイプのスコアを使用してｎ−グラムがソーシャルグラフ要素に対応するか否かを決定することを企図している。
【００９２】
特定の実施形態において、ソーシャルネットワーキングシステム２０は、ソーシャルグラフ情報に基づき特定のｎ−グラムがソーシャルグラフ要素に対応する確率を決定する。例えば、限定されるものでないが、ｎ−グラムが特定のソーシャルグラフ要素に対応する確率ｐを決定するときに、この確率の計算において、ソーシャルグラフ情報も考慮する。したがって、特定のソーシャルグラフ要素ｋに対応する確率は、特定の検索クエリＸおよびソーシャルグラフ情報Ｇが与えられたときに、ｐ＝（ｋ｜Ｘ，Ｇ）として計算される。特定の実施形態において、ｎ−グラムが特定のノードに対応する確率は、第１のユーザノード３０２と特定のノードとの間の分離度に基づく。特定のｎ−グラムは、ユーザから遠い（すなわち、分離度が大きい）ソーシャルグラフ要素よりも、クエリを実行しているユーザの方にソーシャルグラフ３００内で近い（すなわち、要素と第１のユーザノード３０２との間の分離度が小さい）ソーシャルグラフ要素に対応するより高い確率を有する。例
えば、限定されるものでないが、図３を参照すると、ユーザ「Ｂ」が「チキン」のテキストクエリを入力した場合、これがエッジ３０６によってユーザ「Ｂ」に接続されているレシピ「チキンパルメザン」に対するコンセプトノード３０４に対応する計算された確率は、このｎ−グラムがソーシャルグラフ３００内でユーザ「Ｂ」に接続されていないｎ−グラム「チキン」に関連付けられている他のノード（例えば、「チキンナゲット」または「ファンキー・チキン・ダンス」に対応するコンセプトノード３０４）に対応する計算された確率よりも高いことがわかる。特定の実施形態において、ソーシャルネットワーキングシステム２０は、特定のｎ−グラムが第１のユーザ（すなわち、クエリを実行しているユーザ）に対応するユーザノード３０２の分離度のしきい値の範囲内のノードに対応する確率を決定することのみができる。したがって、この分離度のしきい値を超えるノードは、ｎ−グラムに対応する確率としてゼロまたはヌルを割り当てられる。あるいは、クエリを解決するときに、ソーシャルネットワーキングシステム２０は、分離度のしきい値の範囲内のノードにアクセスすることのみでき、またこれらのノードに対する確率を決定することのみできる。分離度のしきい値は、例えば、１、２、３、またはすべてであってよい。特定の実施形態において、ｎ−グラムが特定のノードに対応する確率は、特定のノードに接続されている識別されたエッジ３０６に基づく。ソーシャルネットワーキングシステム２０が、受信されたテキストクエリ内のｎ−グラムに対応する１または複数のエッジをすでに識別している場合、それらの識別されたエッジは、特定のノードがテキストクエリ内の特定のｎ−グラムに対応しているか否かを決定するときに考慮される。識別されたエッジのいずれにも接続されていないノードは、ｎ−グラムに対応する確率としてゼロまたはヌルを割り当てられる。例えば、限定されるものでないが、ユーザが「ポーカーをプレイしたことがある友達（ｆｒｉｅｎｄｓ  ｗｈｏ  ｈａｖｅ  ｐｌａｙｅｄ  ｐｏｋｅｒ）」を検索する場合、ソーシャルネットワーキングシステム２０は、ｎ−グラム「プレイしたことがある（ｈａｖｅ  ｐｌａｙｅｄ）」がソーシャルグラフ３００内の「プレイした」エッジ３０６に対応していると識別し、次いで１または複数の「プレイした」エッジ３０６に接続されているノードを検索する。引き続きこの例において、ソーシャルグラフ３００は、オンラインソーシャルネットワークのユーザによってオンラインで対戦できる、図３に示されているような、アプリケーション「オンライン・ポーカー」に対応するコンセプトノード３０４を含み（したがって、「プレイした」エッジを形成する）、またオンラインソーシャルネットワークのユーザが（例えば、書籍に対応するコンセプトプロファイルページ上でちょうどそれだけ示すことなどによって）「読む」かまたは「いいね」と表明する、「ポーカー・フォー・ダミーズ（Ｐｏｋｅｒ  ｆｏｒ  Ｄｕｍｍｉｅｓ）」という書籍に対応するコンセプトノード３０４も含む。これらのノードのうちのいずれかがｎ−グラム「ポーカー（ｐｏｋｅｒ）」に対応している確率を決定するときに、ソーシャルネットワーキ���グシステム２０は、「オンライン・ポーカー（ｏｎｌｉｎｅ  ｐｏｋｅｒ）」に対するコンセプトノード３０４は「プレイした」エッジ３０６に接続されているのでｎ−グラム「ｐｏｋｅｒ」に対応する比較的高い確率を有するが、「Ｐｏｋｅｒ  ｆｏｒ  Ｄｕｍｍｉｅｓ」に対するコンセプトノード３０４はどの「プレイした」エッジ３０６にも接続されていないのでｎ−グラム「ｐｏｋｅｒ」に対応する比較的低い確率を有すると決定する。特定の実施形態において、ｎ−グラムが特定のノードに対応する確率は、特定のノードに接続されているエッジ３０６の数に基づく。より多くの接続エッジ３０６を有するノードは、人気度が高く、検索クエリのターゲットとなる可能性がより高い。例えば、限定されるものでないが、引き続き前の例において、「ｏｎｌｉｎｅ  ｐｏｋｅｒ」に対するコンセプトノード３０４が５つのエッジでのみ接続されているが、「Ｐｏｋｅｒ  ｆｏｒ  Ｄｕｍｍｉｅｓ」に対するコンセプトノード３０４は５０００個のエッジで接続されている場合、ｎ−グラム「ｐｏｋｅｒ」がこれらのノードのうちのいずれかに対応している確率を決定するときに、ソーシャルネットワーキングシステム２０は、「Ｐｏｋｅｒ  ｆｏｒ  Ｄｕｍｍｉｅｓ」に対するコンセプトノード３０４が、そのコンセプトノード３０４に接続されているエッジの数が多いのでｎ−グラム「ｐｏｋｅｒ」に対応する比較的高い確率を有すると決定する。特定の実施形態において、ｎ−グラムが特定の
ノードに対応する確率は、第１のユーザ（すなわち、クエリを実行しているユーザ）に関連付けられている検索履歴に基づく。第１のユーザがすでにアクセスしているか、または第１のユーザがすでにアクセスしているノードに関連するノードは、第１のユーザの検索クエリのターゲットとなる可能性が高い。例えば、限定されるものでないが、引き続き前の例において、第１のユーザが「ｏｎｌｉｎｅ  ｐｏｋｅｒ」プロファイルページをすでに訪問しているが、「Ｐｏｋｅｒ  ｆｏｒ  Ｄｕｍｍｉｅｓ」プロファイルページには訪問したことがない場合、ｎ−グラム「ｐｏｋｅｒ」がこれらのページに対応するノードのいずれかに対応している確率を決定するときに、ソーシャルネットワーキングシステム２０は、「ｏｎｌｉｎｅ  ｐｏｋｅｒ」に対するコンセプトノード３０４が、クエリを実行しているユーザがそのコンセプトノード３０４にすでにアクセスしている（また実際、「閲覧した」エッジ３０６でそのノードにすでに接続されている可能性がある）のでｎ−グラム「ｐｏｋｅｒ」に対応する比較的高い確率を有すると決定する。別の例として、限定されるものでないが、第１のユーザが「フェースブック賄い料理チーム（Ｆａｃｅｂｏｏｋ  Ｃｕｌｉｎａｒｙ  Ｔｅａｍ）」に対するコンセプトプロファイルページをすでに訪問している場合、ｎ−グラム「フェースブック（ｆａｃｅｂｏｏｋ）」が特定のソーシャルグラフ要素に対応する確率を決定するときに、ソーシャルネットワーキングシステム２０は、クエリを実行しているユーザがコンセプトノード３０４にすでにアクセスしているので「Ｆａｃｅｂｏｏｋ  Ｃｕｌｉｎａｒｙ  Ｔｅａｍ」に対応するコンセプトノード３０４が比較的高い確率を有すると決定する。本開示では特定の様式でｎ−グラムがソーシャルグラフ要素に対応するか否かを決定することを説明しているが、本開示は、任意の好適な様式でｎ−グラムがソーシャルグラフ要素に対応するか否かを決定することを企図している。
【００９３】
特定の実施形態において、ソーシャルネットワーキングシステム２０は、ソーシャルグラフ要素とクエリを実行しているユーザ（すなわち、第１のユーザノード３０２に対応する、第１のユーザ）との関連性に基づき特定のｎ−グラムがソーシャルグラフ要素に対応する確率を決定する。エッジ３０６によって第１のユーザノード３０２に接続されているユーザノード３０２およびコンセプトノード３０４は、第１のユーザに関連しているとみなされる。例えば、限定されるものでないが、エッジ３０６によって第１のユーザノード３０２に接続されているコンセプトノード３０４は、第１のユーザノード３０２に関連しているとみなされる。本明細書で使用されるように、ソーシャルグラフ３００を参照するときに、「接続されている、接続される、接続された」という言い回しは、２つのノードの間のソーシャルグラフ３００内に経路が存在することを意味し、この経路は、１または複数のエッジ３０６ならびにゼロまたはそれ以上の中間ノードを含む。特定の実施形態において、１または複数の介在ノード（およびしたがって２以上のエッジ３０６）を通じて第１のユーザノード３０２に接続されているノードも、第１のユーザに関連しているとみなされる。さらに、特定の実施形態において、第２のノードが第１のユーザノードに近ければ近いほど、第２のノードと第１のユーザノードとの関連性が高いとみなされる。すなわち、第１のユーザノード３０２を特定のユーザノード３０２またはコンセプトノード３０４から隔てるエッジ３０６が少なければ少ないほど（すなわち、分離度が小さいほど）、ユーザノード３０２またはコンセプトノード３０４と第１のユーザとの関連性は高いとみなされる。例えば、限定されるものでないが、図３に示されるように、場所「Ｏｌｄ  Ｐｒｏ」に対応しているコンセプトノード３０４は、ユーザ「Ｂ」に対応しているユーザノード３０２に接続され、したがって、コンセプト「Ｏｌｄ  Ｐｒｏ」はユーザ「Ｂ」に関連しているとみなされる。別の例として、限定されるものでないが、「ＳＰＯＴＩＦＹ」に対応しているコンセプトノード３０４は、１つの中間ノードおよび２つのエッジ３０６（すなわち、ユーザ「Ｃ」に対応している中間ユーザノード３０２）を通じてユーザ「Ｂ」に対応しているユーザノード３０２に接続され、したがって、コンセプト「ＳＰＯＴＩＦＹ」は、ユーザ「Ｂ」に関連しているとみなされるが、「ＳＰＯＴＩＦＹ」に対するコンセプトノード３０４は、ユーザ「Ｂ」に関して第２度の接続であるため、その特定の
コンセプトノード３０４は、例えば、映画「ショーシャンクの空に」に対応しているコンセプトノード３０４などの、単一のエッジ３０６によってユーザ「Ｂ」のユーザノードに接続されるコンセプトノード３０４より関連性が低いとみなされる。さらに別の例として、限定されるものでないが、「オンライン・ポーカー」（オンラインマルチプレーヤゲームである）に対するコンセプトノードは、ソーシャルグラフ３００内のいずれの経路によってもユーザ「Ｂ」に対するユーザノードに接続されず、したがって、コンセプト「オンライン・ポーカー」は、ユーザ「Ｂ」に関連しているとみなされない。特定の実施形態において、第２のノードは、第２のノードが第１のユーザノード３０２の分離度のしきい値の範囲内に存在する場合にのみ、第１のユーザノードとの関連性が高いとみなされる。例えば、限定されるものでないが、分離度のしきい値が３である場合、ユーザ「Ｄ」に対応しているユーザノード３０２は、図３に示されているソーシャルグラフ３００上で互いに３度の範囲内に存在する、レシピ−「チキンパルメザン」に対応するコンセプトノード３０４に関連しているとみなされる。しかし、引き続きこの例を参照すると、アプリケーション「レシピすべて」に対応しているコンセプトノード３０４は、ユーザ「Ｄ」に対応しているユーザノード３０２に関連しているとみなされないが、それはこれらのノードがソーシャルグラフ３００内で４度離れているからである。本開示は特定の様式で特定のノードが互いに関連しているか否かを決定することを説明しているが、本開示は、好適な様式で好適なノードが互いに関連しているか否かを決定することも企図している。さらに、本開示はユーザノード３０２およびコンセプトノード３０４が第１のユーザノード３０２に関連しているか否かを決定することを説明しているが、本開示は、特定のノードが他の特定のノードと関連しているか否かを決定することも同様に企図している。例えば、限定されるものでないが、ソーシャルグラフ３００は、いずれのコンセプトノード３０４が他のコンセプトノード３０４に関連しているかを決定するために使用される。
【００９４】
特定の実施形態において、ソーシャルネットワーキングシステム２０は、ｎ−グラムが特定のソーシャルグラフ要素に対応しているか否かを決定するときに１または複数の制約を課す。例えば、限定されるものでないが、ソーシャルネットワーキングシステム２０はユーザノード３０２を、ユーザノード３０２に対応するユーザの名前がテキストクエリと正確に一致している場合にのみ識別する。一般に、人名を含む検索クエリは、典型的には、（ニックネーム、略称、呼び名などの名前の変更形態を考慮した後に）人名を含むと考えられるその特定のユーザプロファイルページに対する特定のユーザプロファイルページと正確な一致を有するべきである。これは、近接度の制約として表すことができ、検索クエリ内の人名を表すｎ−グラムは、ユーザプロファイルページ内で互いに隣り合い、ユーザプロファイルページが人名を含むものとしてみなされるように検索クエリ内に出現するのと同じ順序で配置されるべきである。したがって、オンラインソーシャルネットワークのユーザの名前を表す検索語「コリン・リー・ベイカー」に関して、図４Ａに示されているユーザプロファイルページはユーザの名前を含むが、他のユーザに関連付けられている他のユーザプロファイルページは（コリン・リー・ベイカーという名前の他のユーザまたはコンセプトが存在しないと仮定して）含まない。他のユーザプロファイルページは、検索クエリの３つすべての単語（例えば、パン職人として働いているコリン・リーという名前の人）を含むが、それらの単語は必ずしも検索クエリ内に出現するのと同じ順序で出現し得ない。したがって、同じ単語を含む他のユーザプロファイルページは、ユーザノード３０２に対するクエリを表すクエリ単語に必要な近接度制約を満たさない。この場合、検索エンジンは、対応するユーザプロファイルページがいくつかの単語「コリン・リー・ベイカー」をその順序で含むユーザノード３０２のみを参照する。本開示では特定のｎ−グラムが特定のソーシャルグラフ要素に対応するか否かを決定することに対して特定の制約を課すことを説明しているが、本開示は、好適なｎ−グラムが好適なソーシャルグラフ要素に対応するか否かを決定することに対して好適な制約を課すことを企図している。
【００９５】
特定の実施形態において、ソーシャルネットワーキングシステム２０は、エッジに対す
るしきい値の確率より高い確率を有する１または複数のエッジ３０６を識別する。識別されたエッジ３０６のそれぞれは、ｎ−グラムのうちの少なくとも１つに対応する。例えば、限定されるものでないが、ｎ−グラムは、Ｐｉ，ｊ，ｋ＞Ｐエッジ−しきい値の場合にエッジｋに対応しているものとしてのみ識別される。さらに、識別されたエッジ３０６のそれぞれは、識別されたノードのうちの少なくとも１つに接続される（以下で説明される）。言い換えると、ソーシャルネットワーキングシステム２０は、特定のｎ−グラムに対応しているものとしてすでに識別されているユーザノード３０２またはコンセプトノード３０４に接続されているエッジ３０６またはエッジタイプのみを識別する。すでに識別されているノードに接続されていないエッジ３０６またはエッジタイプは、典型的には、検索クエリ内の特定のｎ−グラムに対応しない。これらのエッジ３０６またはエッジタイプをフィルタで除去するか、または無視することによって、ソーシャルネットワーキングシステム２０は、関連するソーシャルグラフ要素についてソーシャルグラフをより効率的に検索する。例えば、限定されるものでないが、図３を参照すると、「スタンフォードに通った（ｗｅｎｔ  ｔｏ  Ｓｔａｎｆｏｒｄ）」を含むテキストクエリについて、識別されたコンセプトノード３０４が学校「スタンフォード」である場合、ソーシャルネットワーキングシステム２０は、「勤務していた」に対応するエッジ３０６および「通っていた」に対応するエッジ３０６を識別することができ、両方とも「スタンフォード」に対するコンセプトノード３０４に接続されていることがわかる。したがって、ｎ−グラム「通った（ｗｅｎｔ  ｔｏ）」は、これらのエッジ３０６に対応するものとして識別される。しかし、同じテキストクエリについて、ソーシャルネットワーキングシステム２０は、「スタンフォード」ノードがそれに接続されているそのようなエッジを有していないのでソーシャルグラフ３００内で「“いいね”と表明」または「ファン」に対応するエッジ３０６を識別し得ない。本開示では特定の様式でｎ−グラムに対応するエッジ３０６を識別することを説明しているが、本開示は、任意の好適な様式でｎ−グラムに対応するエッジ３０６を識別することを企図している。
【００９６】
特定の実施形態において、ソーシャルネットワーキングシステム２０は、ノードに対するしきい値の確率より高い確率を有する１または複数のユーザノード３０２またはコンセプトノード３０４を識別する。識別されたノードのそれぞれは、ｎ−グラムのうちの少なくとも１つに対応する。例えば、限定されるものでないが、ｎ−グラムは、ｐｉ，ｊ，ｋ＞ｐエッジ−しきい値の場合にノードｋに対応しているものとしてのみ識別される。さらに、識別されたユーザノード３０２またはコンセプトノード３０４のそれぞれは、識別されたエッジ３０６のうちの少なくとも１つに接続される（上で説明されている）。言い換えると、ソーシャルネットワーキングシステム２０は、特定のｎ−グラムに対応しているものとしてすでに識別されているエッジ３０６に接続されているノードまたはノードタイプのみを識別する。すでに識別されているエッジ３０６に接続されていないノードまたはノードタイプは、典型的には、検索クエリ内の特定のｎ−グラムに対応しない。これらのノードまたはノードタイプをフィルタで除去するか、または無視することによって、ソーシャルネットワーキングシステム２０は、関連するソーシャルグラフ要素についてソーシャルグラフをより効率的に検索する。例えば、限定されるものでないが、「アップルに勤務した（ｗｏｒｋｅｄ  ａｔ  Ａｐｐｌｅ）」を含むテキストクエリについて、識別されたエッジ３０６が「勤務した」である場合、ソーシャルネットワーキングシステム２０は、それに接続されている「勤務した」の複数のエッジ３０６を有する、アップル社（ＡＰＰＬＥ，ＩＮＣ．）に対応するコンセプトノード３０４を識別する。しかし、同じテキストクエリについて、ソーシャルネットワーキングシステム２０は、複数の「“いいね”と表明」または「ファン」エッジが接続されているが、「勤務した」エッジ接続を有し得ない、フルーツタイプ「リンゴ（ａｐｐｌｅ）」に対応するコンセプトノード３０４を識別しない。特定の実施形態において、ノードに対するしきい値の確率は、ユーザノード３０２およびコンセプトノード３０４について異なる。ｎ−グラムは、ｐｉ，ｊ，ｋ＞ｐユーザ−ノード−しきい値の場合にユーザノード３０２に対応しているものとして識別される
が、ｎ−グラムは、ｐｉ，ｊ，ｋ＞ｐコンセプト−ノード−しきい値の場合にコンセプトノード３０４ｋコンセプトに対応しているものとして識別される。特定の実施形態において、ソーシャルネットワーキングシステム２０は、第１のユーザ（すなわち、クエリを実行しているユーザ）に対応するユーザノード３０２の分離度のしきい値の範囲内のノードを識別することのみができる。分離度のしきい値は、例えば、１、２、３、またはすべてであってよい。本開示では特定の様式でｎ−グラムに対応するノードを識別することを説明しているが、本開示は、任意の好適な様式でｎ−グラムに対応するノードを識別することを企図している。
【００９７】
特定の実施形態において、ソーシャルネットワーキングシステム２０は、それぞれ識別されたエッジ３０６のうちの１または複数および識別されたノードのうちの１または複数への参照を含む１または複数の構造化クエリを生成する。構造化クエリを生成することについて以下で詳しく説明する。
【００９８】
図７は、構造化検索クエリに対するソーシャルグラフ要素を検出するための例示的な方法７００を示している。この方法はステップ７１０から始まり、そこで、ソーシャルネットワーキングシステム２０は、複数のノードおよびそれらのノードを接続する複数のエッジ３０６を含むソーシャルグラフ３００にアクセスする。これらのノードは、第１のユーザノード３０２および複数の第２のノード（１または複数のユーザノード３０２、コンセプトノード３０４、またはこれらの組み合わせ）を含む。ステップ７２０で、ソーシャルネットワーキングシステム２０は、実質的に構造化されていないテキストクエリを第１のユーザから受信する。ステップ７３０で、ソーシャルネットワーキングシステム２０はテキストクエリを構文解析して、１または複数のｎ−グラムを識別する。ステップ７４０で、ソーシャルネットワーキングシステム２０は、ｎ−グラムがエッジ３０６または第２のノードに対応するｎ−グラムのそれぞれについて確率を決定する。ステップ７５０で、ソーシャルネットワーキングシステム２０は、エッジのしきい値の確率より高い確率を有する１または複数のエッジ３０６を識別する。識別されたエッジ３０６のそれぞれは、ｎ−グラムのうちの少なくとも１つに対応する。ステップ７６０で、ソーシャルネットワーキングシステム２０は、ノードのしきい値の確率より高い確率を有する１または複数の第２のノードを識別する。識別された第２のノードのそれぞれは、識別されたエッジ３０６の少なくとも１つに接続される。さらに、識別された第２のノードのそれぞれは、ｎ−グラムの少なくとも１つに対応する。ステップ７７０で、ソーシャルネットワーキングシステム２０は１または複数の構造化クエリを生成する。それぞれの構造化クエリは、識別されたエッジ３０６の１または複数および識別された第２のノードの１または複数への参照を含む。特定の実施形態において、適切な場合に、図７の方法の１または複数のステップを繰り返す。本開示では図７の方法の特定のステップを特定の順序で生じさせるものとして説明し図示しているが、本開示は、好適な順序で生じさせる図７の方法の好適なステップを企図している。さらに、本開示では図７の方法の特定のステップを実行する特定の構成要素、デバイス、またはシステムを説明し図示しているが、本開示は、図７の方法の好適なステップを実行する好適な構成要素、デバイス、またはシステムの好適な組み合わせを企図している。
【００９９】
構造化検索クエリ
特定の実施形態において、ソーシャルネットワーキングシステム２０は、それぞれ識別されたユーザノード３０２のうちの１または複数および識別されたエッジ３０６のうちの１または複数への参照を含む１または複数の構造化クエリを生成する。このタイプの構造化検索クエリは、識別されたユーザノード３０２および識別されたエッジ３０６に接続された、または他の任意の形で関係するコンテンツを検索することによってソーシャルネットワーキングシステム２０がオンラインソーシャルネットワークに関係するリソースおよびコンテンツ（例えば、プロファイルページなど）をより効率的に検索することを可能に
する。例えば、限定されるものでないが、テキストクエリ「私のガールフレンドの友達を表示（ｓｈｏｗ  ｍｅ  ｆｒｉｅｎｄｓ  ｏｆ  ｍｙ  ｇｉｒｌｆｒｉｅｎｄ）」に応答して、ソーシャルネットワーキングシステム２０は、構造化クエリ「ステファニの友達（Ｆｒｉｅｎｄｓ  ｏｆ  Ｓｔｅｐｈａｎｉｅ）」を生成するが、ただし、構造化クエリ内の「友達（Ｆｒｉｅｎｄｓ）」および「ステファニ（Ｓｔｅｐｈａｎｉｅ）」は、特定のソーシャルグラフ要素に対応する参照である。「Ｓｔｅｐｈａｎｉｅ」への参照は、特定のユーザノード３０２に対応するが、「ｆｒｉｅｎｄｓ」への参照は、そのユーザノード３０２を他のユーザノード３０２に接続する「友達」エッジ３０６（すなわち、「ステファニの（Ｓｔｅｐｈａｎｉｅ’ｓ）」の第１度の友達に接続するエッジ３０６）に対応する。この構造化クエリを実行するときに、ソーシャルネットワーキングシステム２０は、「ステファニ」に対応するユーザノード３０２に「友達」エッジ３０６によって接続された１または複数のユーザノード３０２を識別する。特定の実施形態において、ソーシャルネットワーキングシステム２０は、複数の構造化クエリを生成することができ、構造化クエリは、異なる識別されたユーザノード３０２または異なる識別されたエッジ３０６への参照を含む。例えば、限定されるものでないが、テキストクエリ「ネコの写真（ｐｈｏｔｏｓ  ｏｆ  ｃａｔ）」に応答して、ソーシャルネットワーキングシステム２０は、第１の構造化クエリ「ケイティの写真（Ｐｈｏｔｏｓ  ｏｆ  Ｃａｔｅｙ）」および第２の構造化クエリ「キャサリンの写真（Ｐｈｏｔｏｓ  ｏｆ  Ｃａｔｈｅｒｉｎｅ）」を生成することができ、構造化クエリ内の「写真（Ｐｈｏｔｏｓ）」は、特定のソーシャルグラフ要素に対応する参照であり、「ケイティ（Ｃａｔｅｙ）」および「キャサリン（Ｃａｔｈｅｒｉｎｅ）」は、２つの異なるユーザノード３０２への参照である。これらの構造化クエリのいずれかを実行するときに、ソーシャルネットワーキングシステム２０は、エッジ３０６によって識別されたユーザノード３０２に接続された写真に対応する１または複数のコンセプトノード３０４を識別する。本開示は特定の様式で特定の構造化クエリを生成することを説明しているが、本開示は、好適な様式で好適な構造化クエリを生成することも企図している。
【０１００】
特定の実施形態において、ソーシャルネットワーキングシステム２０は、それぞれ識別されたコンセプトノード３０４のうちの１または複数および識別されたエッジ３０６のうちの１または複数への参照を含む１または複数の構造化クエリを生成する。このタイプの構造化検索クエリは、識別されたコンセプトノード３０４および識別されたエッジ３０６に接続された、または他の任意の形で関係するコンテンツの検索によってソーシャルネットワーキングシステム２０がオンラインソーシャルネットワークに関係するリソースおよびコンテンツ（例えば、プロファイルページなど）をより効率的に検索することを可能にする。例えば、限定されるものでないが、テキストクエリ「フェースブックに“いいね”と表明している友達（ｆｒｉｅｎｄｓ  ｗｈｏ  ｌｉｋｅ  ｆａｃｅｂｏｏｋ）」に応答して、ソーシャルネットワーキングシステム２０は、図６Ｆのドロップダウンメニュー６００に示されるように、構造化クエリ「Ｆｒｉｅｎｄｓ  ｗｈｏ  ｌｉｋｅ  Ｆａｃｅｂｏｏｋ」を生成することができ、ただし、構造化クエリ内の「友達（Ｆｒｉｅｎｄｓ）」、「“いいね”と表明（ｌｉｋｅ）」、および「フェースブック（Ｆａｃｅｂｏｏｋ）」は、すでに説明されるように特定のソーシャルグラフ要素（すなわち、「友達」エッジ３０６、「“いいね”と表明」エッジ３０６、および「フェースブック」コンセプトノード３０４）に対応する参照である。特定の実施形態において、ソーシャルネットワーキングシステム２０は、複数の構造化クエリを生成することができ、構造化クエリは、異なる識別されたコンセプトノード３０４または異なる識別されたエッジ３０６への参照を含む。例えば、限定されるものでないが、引き続き前の例において、構造化クエリ「Ｆｒｉｅｎｄｓ  ｗｈｏ  ｌｉｋｅ  Ｆａｃｅｂｏｏｋ」に加えて、ソーシャルネットワーキングシステム２０は、図６Ｆのドロップダウンメニュー６００にも示されるように、構造化クエリ「フェースブック賄い料理チームに“いいね“と表明している友達（Ｆｒｉｅｎｄｓ  ｗｈｏ  ｌｉｋｅ  Ｆａｃｅｂｏｏｋ  Ｃｕｌｉｎａｒｙ  Ｔｅａｍ）」も生成すること
ができ、構造化クエリ内の「フェースブック賄い料理チーム（Ｆａｃｅｂｏｏｋ  Ｃｕｌｉｎａｒｙ  Ｔｅａｍ）」は、さらに別のソーシャルグラフ要素に対応する参照である。本開示は特定の様式で特定の構造化クエリを生成することを説明しているが、本開示は、好適な様式で好適な構造化クエリを生成することも企図している。
【０１０１】
特定の実施形態において、ソーシャルネットワーキングシステム２０は、生成された構造化クエリをランク付けする。構造化クエリは、さまざまな要因に基づきランク付けされる。より高い／よりよい順位を与えられた構造化クエリは、クエリを実行しているユーザにより関連しているか、またはクエリを実行しているユーザから受信された構造化されていないテキストクエリとよりよく一致していると考えられる。同様に、より高い／よりよい順位を与えられた構造化クエリは、クエリを実行しているユーザにより関連しているか、またはクエリを実行しているユーザから受信された構造化されていないテキストクエリからのｎ−グラムと一致するより高い確率を有するソーシャルグラフ要素を参照する。特定の実施形態において、ソーシャルネットワーキングシステム２０は、第１のユーザ（すなわち、クエリを実行しているユーザ）に対応する第１のユーザノード３０２と構造化クエリにおいて参照されている識別されたユーザノード３０２またはコンセプトノード３０４の少なくとも１つとの間の分離度に基づき構造化クエリのそれぞれをランク付けする。クエリを実行しているユーザにソーシャルグラフ３００内でより近い（すなわち、分離度が小さい）参照されているノードを含む構造化クエリは、クエリを実行しているユーザから遠く離れているノードを含む構造化クエリに比べて高くランク付けされる。特定の実施形態において、ソーシャルネットワーキングシステム２０は、第１のユーザに関連付けられている検索履歴に基づき構造化クエリのそれぞれをランク付けする。クエリを実行しているユーザによってより最近または頻繁に検索されるかまたはアクセスされているソーシャルグラフ要素を参照している構造化クエリは、クエリを実行しているユーザによって最近、頻繁に、またはまったくアクセスされていないソーシャルグラフ要素を参照している構造化クエリに比べて高くランク付けされる。例えば、限定されるものでないが、クエリを実行しているユーザが「Ｆａｃｅｂｏｏｋ  Ｃｕｌｉｎａｒｙ  Ｔｅａｍ」をすでに検索しており、「Ｆａｃｅｂｏｏｋ  Ｃｕｌｉｎａｒｙ  Ｔｅａｍ」に対するコンセプトノード３０４に対応するコンセプトプロファイルページを訪問している場合、このソーシャルグラフ要素を参照している構造化クエリは、図６Ｆに示されるように、他の構造化クエリと比較して比較的高くランク付けされる。特定の実施形態において、構造化クエリは、広告スポンサシップに基づきランク付けされる。広告主（例えば、特定のノードに対応する特定のプロファイルページのユーザまたは管理者など）は、特定のノードのスポンサになり、特定のノードを参照していない構造化クエリに比べてそのノードを参照している構造化クエリが高くランク付けされるようにする。例えば、限定されるものでないが、ｎ−グラム「ｓｍａｒｔ  ｐｈｏｎｅ」は、「ＩＰＨＯＮＥ」（スマートフォンの一種である）に対するコンセプトノード３０４に対応し、また「ＡＮＤＲＯＩＤ」（別の種類のスマートフォンである）に対するコンセプトノードにも対応する。これらのコンセプトノード３０４のうちの１つに対して、広告主がスポンサになった場合、ソーシャルネットワーキングシステム２��は、スポンサ付きでない（またはスポンサ付きである程度が低い）ノードを参照している構造化クエリに比べてスポンサ付きのノードを参照している構造化クエリを高くランク付けする。特定の実施形態において、ソーシャルネットワーキングシステム２０は、構造化クエリにおいて参照されているソーシャルグラフ要素のソーシャル（ネットワーク上の）関連性に基づき構造化クエリのそれぞれをランク付けする。例えば、限定されるものでないが、特定のノードのソーシャル（ネットワーク上の）関連性は、特定のノードに接続されているエッジ３０６の数に基づくものとしてよく、したがって、より多くのエッジ３０６によって接続されているノードを参照している構造化クエリは、より少ないエッジ３０６によって接続されているノードを参照している構造化クエリに比べて高くランク付けされる。別の例として、限定されるものでないが、特定のエッジ３０６またはエッジタイプのソーシャル（ネットワーク上の）関連性は、そのエッジタイプが特定
のノードに接続される頻度に基づく。特定の実施形態において、ソーシャルネットワーキングシステム２０は、受信されたテキストクエリに関する構造化クエリのテキストの関連性に基づき構造化クエリのそれぞれをランク付けする。特定の構造化クエリのテキストの関連性は、特定の構造化クエリ内の語および語の数がクエリを実行しているユーザから受信されたテキストクエリとどのように一致するかに基づき得る。例えば、限定されるものでないが、受信されたテキストクエリと比較して挿入された語が少ない構造化クエリは、挿入された語が多い構造化クエリに比べて高くランク付けされる。特定の実施形態において、ソーシャルネットワーキングシステム２０は、構造化クエリの重要度または人気度に基づき構造化クエリのそれぞれをランク付けする。例えば、限定されるものでないが、「ユーザＡの友達（Ｆｒｉｅｎｄｓ  ｏｆ  Ｕｓｅｒ  Ａ）」を含む第１の構造化クエリは、「ユーザＡの写真（Ｐｉｃｔｕｒｅｓ  ｏｆ  Ｕｓｅｒ  Ａ）」を含む第２の構造化クエリに比べて高くランク付けされるが、それは、「友達」エッジタイプを参照している構造化クエリは、「写真」エッジタイプを参照している構造化クエリに比べて、オンラインソーシャルネットワーク上で重要または人気があるからである。別の例として、限定されるものでないが、「スタンフォードの学生（Ｓｔａｎｆｏｒｄ  ｓｔｕｄｅｎｔｓ）」を含む第１の構造化クエリは、「スタンフォードの従業者（Ｓｔａｎｆｏｒｄ  ｅｍｐｌｏｙｅｅｓ）」を含む第２の構造化クエリに比べて高くランク付けされるが、それは、「学生」エッジタイプを参照している構造化クエリは、「従業者」エッジタイプを参照している構造化クエリに比べて、オンラインソーシャルネットワーク上で重要または人気があるからである。特定の実施形態において、ソーシャルネットワーキングシステム２０は、構造化クエリにおいて使用されている語の時制に基づき構造化クエリのそれぞれをランク付けする。特定の時制の語を使用する構造化クエリは、異なる時制の語を使用する構造化クエリに比べて高くランク付けされる。本開示は特定の様式で構造化クエリをランク付けすることを説明しているが、本開示は、好適な様式で構造化クエリをランク付けすることも企図している。
【０１０２】
特定の実施形態において、ソーシャルネットワーキングシステム２０は、構造化クエリの１または複数を第１のユーザ（すなわち、クエリを実行しているユーザ）に送信する。例えば、限定されるものでないが、構造化クエリが生成された後、ソーシャルネットワーキングシステム２０は、構造化クエリの１または複数を、例えば参照されているソーシャルグラフ要素の名前（名前文字列）、他のクエリ制限（例えば、ブール演算子など）、さらには潜在的に、参照されているソーシャルグラフ要素に関連付けられている他のメタデータを含む応答（ＡＪＡＸもしくは他の好適な技術を利用する）としてユーザのクライアントデバイス３０に送信する。クエリを実行しているユーザのクライアントデバイス３０上のウェブブラウザ２０２は、図６Ａ〜図６Ｒに示されるように、ドロップダウンメニュー６００で送信された構造化クエリを表示する。特定の実施形態において、送信されたクエリは、ランク付けされた順序で、例えば、上で説明されるようにすでに決定された順位に基づくなどして、クエリを実行しているユーザに提示される。よりよい順位を有する構造化クエリは、より目立つ位置に提示される。さらに、特定の実施形態において、しきい値の順位を超える構造化クエリのみが、クエリを実行しているユーザに送信されるか、または表示される。例えば、限定されるものでないが、図６Ａ〜図６Ｒに示されるように、構造化クエリは、ドロップダウンメニュー６００でクエリを実行しているユーザに提示され、より高くランク付けされた構造化クエリは、メニューの上位部分に提示され、降順において、より低くランク付けされた構造化クエリは、メニューの下の方に提示される。図６Ａ〜図６Ｒに示されている例において、最高順位の７つのクエリのみがユーザに送信され、表示される。特定の実施形態において、構造化クエリ内の１または複数の参照は、特定のソーシャルグラフ要素との対応関係を示すために強調される。例えば、限定されるものでないが、図６Ｆ〜図６Ｉに示されるように、「フェースブック（Ｆａｃｅｂｏｏｋ）」への参照は、構造化クエリ内で強調され、特定のコンセプトノード３０４に対応していることを示す。同様に、ドロップダウンメニュー６００に提示されている構造化クエリ内
の「友達（Ｆｒｉｅｎｄｓ）」および「“いいね”と表明（ｌｉｋｅ）」への参照も、特定のエッジ３０６に対応していることを示すように強調される。本開示は特定の様式で特定の構造化クエリを送信することを説明しているが、本開示は、好適な様式で好適な構造化クエリを送信することも企図している。
【０１０３】
特定の実施形態において、ソーシャルネットワーキングシステム２０は、第１のユーザ（すなわち、クエリを実行しているユーザ）から構造化クエリのうちの１つの選択を受信する。例えば、限定されるものでないが、クエリを実行しているユーザのクライアントデバイス３０上のウェブブラウザ２０２は、図６Ａ〜図６Ｒに示されるように、ドロップダウンメニュー６００で送信された構造化クエリを表示することができ、次いで、ユーザはこれをクリックするか、または他の任意の形で選択して（例えば、自分のキーボードの「ｅｎｔｅｒ」を単に叩くことで）、ユーザがソーシャルネットワーキングシステム２０に実行させたい特定の構造化クエリを示す。特定の構造化クエリを選択した後、ユーザのクライアントデバイス３０は、選択された構造化クエリを実行するようにソーシャルネットワーキングシステム２０を呼び出すか、または他の任意の形でソーシャルネットワーキングシステム２０に命令する。本開示は特定の様式で特定の構造化クエリの選択を受信することを説明しているが、本開示は、好適な様式で好適な構造化クエリの選択を受信することも企図している。
【０１０４】
特定の実施形態において、ソーシャルネットワーキングシステム２０は、構造化クエリのうちの１つの選択に対応する検索結果を生成する。構造化クエリに基づき検索結果を生成することについて以下で詳しく説明する。
【０１０５】
図８は、パーソナライズされた構造化検索クエリを生成するための例示的な方法８００を示している。この方法はステップ８１０から始まり、そこで、ソーシャルネットワーキングシステム２０は、複数のユーザノード３０２およびそれらのユーザノード３０２を接続する複数のエッジ３０６を含むソーシャルグラフ３００にアクセスする。２つのユーザノード３０２の間のそれぞれのエッジ３０６は、それらの間の単一の分離度を表す。これら複数のユーザノード３０２は、オンラインソーシャルネットワークに関連付けられている第１のユーザに対応する第１のユーザノード３０２を含む。これら複数のユーザノード３０２は、オンラインソーシャルネットワークに関連付けられている第２のユーザにそれぞれ対応する１または複数の第２のユーザノード３０２も含む。第２のユーザノード３０２のそれぞれは、第１のユーザノード３０２から分離度のしきい値の範囲内に存在する。ステップ８２０で、ソーシャルネットワーキングシステム２０は、１または複数の文字列を含むテキストクエリを第１のユーザから受信する。ステップ８３０で、ソーシャルネットワーキングシステム２０は、それらの文字列のうちの１または複数に対応する第２のユーザノード３０２の１または複数を識別する。ステップ８４０で、ソーシャルネットワーキングシステム２０は、それらの文字列の１または複数に対応するエッジ３０６の１または複数を識別する。識別されたエッジ３０６のそれぞれは、第２のユーザノード３０２の１つに接続される。ステップ８５０で、ソーシャルネットワーキングシステム２０は、１または複数の推奨クエリを生成する。それぞれの構造化クエリは、識別された第２のユーザノード３０２の１または複数および識別されたエッジ３０６の１または複数への参照を含む。特定の実施形態において、適切な場合に、図８の方法の１または複数のステップを繰り返す。本開示では図８の方法の特定のステップを特定の順序で生じさせるものとして説明し図示しているが、本開示は、好適な順序で生じさせる図８の方法の好適なステップを企図している。さらに、本開示では図８の方法の特定のステップを実行する特定の構成要素、デバイス、またはシステムを説明し図示しているが、本開示は、図８の方法の好適なステップを実行する好適な構成要素、デバイス、またはシステムの好適な組み合わせを企図している。
【０１０６】
図９は、ソーシャルグラフ情報に基づき構造化クエリを生成するための例示的な方法９００を示している。この方法はステップ９１０から始まり、そこで、ソーシャルネットワーキングシステム２０は、複数のノードおよびそれらのノードを接続する複数のエッジ３０６を含むソーシャルグラフ３００にアクセスする。これらのノードは、第１のユーザノード３０２、複数の第２のノード（例えば、ユーザノード３０２およびコンセプトノード３０４）を含む。ステップ９２０で、ソーシャルネットワーキングシステム２０は、１または複数のｎ−グラムを含む実質的に構造化されていないテキストクエリを第１のユーザから受信する。ステップ９３０で、ソーシャルネットワーキングシステム２０は、それらのｎ−グラムの１または複数に対応する第２のノードの１または複数を識別する。ステップ９４０で、ソーシャルネットワーキングシステム２０は、それらのｎ−グラムの１または複数に対応するエッジ３０６の１または複数を識別する。識別されたエッジのそれぞれは、識別された第２のノードの少なくとも１つに接続される。ステップ９５０で、ソーシャルネットワーキングシステム２０は１または複数の構造化クエリを生成する。それぞれの構造化クエリは、識別された第２のノードの１または複数および識別されたエッジ３０６の１または複数への参照を含む。特定の実施形態において、適切な場合に、図９の方法の１または複数のステップを繰り返す。本開示では図９の方法の特定のステップを特定の順序で生じさせるものとして説明し図示しているが、本開示は、好適な順序で生じさせる図９の方法の好適なステップを企図している。さらに、本開示では図９の方法の特定のステップを実行する特定の構成要素、デバイス、またはシステムを説明し図示しているが、本開示は、図９の方法の好適なステップを実行する好適な構成要素、デバイス、またはシステムの好適な組み合わせを企図している。
【０１０７】
プライバシ設定に基づく検索結果のフィルタリング
特定の実施形態において、構造化検索クエリへの応答として検索結果を生成するときに、ソーシャルネットワーキングシステム２０は、オンラインソーシャルネットワークの特定のユーザに関連付けられているプライバシ設定に基づき検索結果をフィルタリングする。例えば、限定されるものでないが、構造化クエリが、クエリを実行しているユーザによって選択され、ソーシャルネットワーキングシステム２０によって受信された後に、検索エンジンが、クエリ条件を満たすか、または一致するターゲットコンテンツ（例えば、ノードおよび／またはそれの対応するプロファイルページ）を識別する。ターゲットコンテンツ（およびより具体的には、ターゲットコンテンツに対応するターゲットノード）は、オンラインソーシャルネットワークのいずれのユーザがコンテンツを閲覧またはコンテンツにアクセスできるかを指定するプライバシ設定に関連付けられる。例えば、特定のソーシャルグラフ要素は、クエリを実行しているユーザにとって可視でなく、したがって、そのソーシャルグラフ要素（またはその関係する要素）を参照している構造検索クエリは、その要素に依存する検索結果を生成すべきでない。その結果、コンテンツに関連付けられているプライバシ設定により、特定のターゲットコンテンツが検索結果内に表示されない。図１０は、例示的なソーシャルグラフ３００を示している。図１０に示されているソーシャルグラフ３００が以下の例のいくつかで参照され、プライバシ設定が検索結果のフィルタリングにどのように使用されるかを示す。本開示では特定の様式でプライバシ設定に基づき検索結果をフィルタリングすることを説明しているが、本開示は、任意の好適な様式でプライバシ設定に基づき検索結果をフィルタリングすることを企図している。
【０１０８】
特定の実施形態において、ソーシャルネットワーキングシステム２０は、それぞれのターゲットノードおよびそれぞれの選択されたノードに関連付けられているプライバシ設定にアクセスする。それぞれのノードに対するプライバシ設定において、ソーシャルネットワーキングシステム２０のユーザへのノードの可視性またはノードに接続しているエッジの可視性を定義する。この方法で、オンラインソーシャルネットワークのユーザ（またはネットワークの外部にいるユーザであっても）の能力は、特定のノードに関連付けられているプロファイルページ（または他の関係するコンテンツ）を閲覧またはこれらにアクセ
スする能力を限定することによって制限される。例えば、限定されるものでないが、第１のユーザのプライバシ設定で、そのユーザのプロファイルページが「友達の友達」（すなわち、第２度の友達）しか閲覧またはアクセスされないように指定し、それにより、３度以上のユーザが第１のユーザのプロファイルページを閲覧またはそれにアクセスすることを防ぐ。別の例として、限定されるものでないが、図１０を参照すると、ユーザ「９」に対するプライバシ設定で、そのユーザの教育情報が他のユーザに見えないように指定することができ、したがって、ユーザ「９」に対するユーザノード３０２を学校「スタンフォード」に対応するコンセプトノード３０４に接続する「通っていた」エッジ３０６は他のユーザにとって可視でないことがわかる。したがって、ユーザ「９」に対するプライバシ設定により、そのユーザのユーザノード３０２（または対応するユーザプロファイルページ）への参照がスタンフォード大学に通っていたユーザについて検索結果に表示されるのを防ぐことが可能であろう。本開示は特定の様式で特定のプライバシ設定にアクセスすることを説明しているが、本開示は、好適な様式で好適なプライバシ設定にアクセスすることも企図している。
【０１０９】
特定の実施形態において、ソーシャルネットワーキングシステム２０は、構造化クエリに対応する１または複数のターゲットノードを識別する。ターゲットノードは、選択された構造化クエリ内で参照されているノードのうちの少なくとも１つに少なくとも１つのエッジによって接続されているユーザノード３０２またはコンセプトノード３０４とされる。例えば、限定されるものでないが、図１０を参照すると、ソーシャルネットワーキングシステム２０は、実質的に構造化されていないテキストクエリ「ユーザ５の友達を表示（ｓｈｏｗ  ｍｅ  ｕｓｅｒ  ５’ｓ  ｆｒｉｅｎｄｓ）」をユーザから受信し、ソーシャルネットワーキングシステム２０はこれを構文解析して構造化クエリ「ユーザ５の友達（Ｆｒｉｅｎｄｓ  ｏｆ  Ｕｓｅｒ  ５）」を生成することができ、「Ｆｒｉｅｎｄｓ」への参照は、特定の「友達」エッジ３０６に対応し、「Ｕｓｅｒ  ５」は、ユーザ「５」に対するユーザノード３０２に対応することがわかる。次いで、ソーシャルネットワーキングシステム２０は、ユーザ「４」およびユーザ「７」に対応するユーザノード３０２を、構造化クエリに対応するターゲットノードとして識別するが、それは、これらのノードのうちの両方が「友達」エッジ３０６によってユーザ「５」に対するノードに接続されているからである。本開示は特定の様式で特定のターゲットノードを識別することを説明しているが、本開示は、好適な様式で好適なターゲットノードを識別することも企図している。
【０１１０】
特定の実施形態において、ソーシャルネットワーキングシステム２０は、第１のユーザにとって可視である可視性を有する一連のノードおよびエッジ３０６によってソーシャルグラフ３００内の第１の／クエリを実行しているユーザノード３０２に接続されているそれぞれのターゲットノードヘの参照を含む検索結果を生成する。第１のユーザとターゲットノードとの間の経路内のノードおよびエッジは、選択された構造化クエリ内のノードおよびエッジの参照を含む。例えば、限定されるものでないが、引き続き上で図１０を参照する前の例を参照すると、構造化クエリ「Ｆｒｉｅｎｄｓ  ｏｆ  Ｕｓｅｒ  ５」は、ユーザ「５」に対するユーザノード３０２およびそのノードに接続されている「友達」エッジ３０６を参照する。この構造化クエリは、ユーザ「４」およびユーザ「７」に対するターゲットノードを識別する。クエリを実行しているユーザがユーザ「５」に対するノードを閲覧すると仮定すると、これらのユーザを接続しているエッジが可視であるか否かを決定するためにユーザ「４」、「５」、および「７」に対するプライバシ設定にアクセスする。例えば、ユーザ「４」または「５」のいずれかが、これらを接続している「友達」エッジ３０６が特定の他のユーザに可視でないようにするプライバシ設定を有することができ、このエッジ３０６がクエリを実行しているユーザに可視である場合、生成された検索結果は、ユーザ「４」への参照を含む。同様に、ユーザ「５」または「７」のいずれかが、これらを接続している「友達」エッジ３０６が可視でないようにするプライバシ設定を
有することができ、したがって、このエッジ３０６がクエリを実行しているユーザにとって可視である場合、生成された検索結果は、ユーザ「７」への参照を含む。特定の実施形態において、クエリを実行しているユーザに対するユーザノード３０２は、必ずしも、ターゲットノードヘの可視である経路によって接続される必要はないが、クエリを実行しているユーザにとって可視であるノード（ソースノード）とターゲットノードとの間に少なくとも１つの経路が存在するべきである。例えば、限定されるものでないが、引き続き前の例を参照すると、クエリを実行しているユーザは、必ずしも、ユーザ「４」またはユーザ「７」のいずれかへの経路で接続される必要はないが、クエリを実行しているユーザが、この場合にはユーザ「５」であってよい、ソースノードを閲覧できる限り、またクエリを実行しているユーザがユーザ「５」とターゲットノードとの間の経路を閲覧できる限り、ターゲットノードは検索結果内に出現する。クエリを実行しているユーザは、例えば、ノードが公開されアクセス可能であるか、またはクエリを実行しているユーザの分離度のしきい値の範囲内に存在するので、ソースノードを閲覧できる。本開示は特定の様式で検索結果を生成することを説明しているが、本開示は、好適な様式で検索結果を生成することも企図している。
【０１１１】
特定の実施形態において、ソーシャルネットワーキングシステム２０は、第１の条件および１または複数の第２の条件を含む構造化クエリの選択を受信することができ、第２の条件のうちの少なくとも１つは、第１の条件に依存する。ソーシャルネットワーキングシステムは、第１の条件を満たす１または複数のノードを識別するステップと、第１の条件を満たすノードを第１の条件に依存するそれぞれの第２の条件に適用するステップとによってそのようなクエリを解決する。別の例として、限定されるものでないが、図１０を参照すると、ソーシャルネットワーキングシステム２０は、実質的に構造化されていないテキストクエリ「ユーザ１１の友達またはユーザ１０の友達であり、かつ、ユーザ５の友達またはスタンフォードに通っていた人々を見つける（ｆｉｎｄ  ｍｅ  ｐｅｏｐｌｅ  ｗｈｏ  ａｒｅ  ｆｒｉｅｎｄｓ  ｏｆ  ｕｓｅｒ  １１  ｏｒ  ｆｒｉｅｎｄｓ  ｏｆ  ｕｓｅｒ  １０  ａｎｄ  ｆｒｉｅｎｄｓ  ｏｆ  ｕｓｅｒ  ５  ｏｒ  ａｔｔｅｎｄｅｄ  ｓｔａｎｆｏｒｄ）」をユーザから受信することがわかる。ソーシャルネットワーキングシステム２０は、このテキストクエリを構文解析して、構造化検索クエリ「ユーザ１１の友達またはユーザ１１の友達、かつ、ユーザ５またはスタンフォードに通っていた友達を見つける（Ｆｉｎｄ  Ｆｒｉｅｎｄｓ  ｏｆ  Ｕｓｅｒ  １１  ｏｒ  ｆｒｉｅｎｄｓ  ｏｆ  Ｕｓｅｒ  １０  ｔｈａｔ  ａｒｅ  ａｌｓｏ  ｆｒｉｅｎｄｓ  ｏｆ  Ｕｓｅｒ  ５  ｏｒ  ａｔｔｅｎｄｅｄ  Ｓｔａｎｆｏｒｄ）」を生成し、「の友達（ｆｒｉｅｎｄｓ  ｏｆ）」および「通っていた（ａｔｔｅｎｄｅｄ）」への参照は、特定のエッジ３０６に対応し、「ユーザ５（Ｕｓｅｒ  ５）」、「ユーザ１０（Ｕｓｅｒ  １０）」、および「ユーザ１１（Ｕｓｅｒ  １１）」への参照は、特定のユーザノード３０２に対応し、「スタンフォード（Ｓｔａｎｆｏｒｄ）」への参照は、特定のコンセプトノード３０４に対応する。このクエリに対する等価な記号表現（「ｓ−式」）は、（ｏｒ（ａｎｄ
ｆｒｉｅｎｄ：１０（ａｐｐｌｙ  ｆｒｉｅｎｄ：（ｏｒ  ｆｒｉｅｎｄ：５  ａｔｔｅｎｄｅｄ＞６）））ｆｒｉｅｎｄ：１１）であり、「Ｓｔａｎｆｏｒｄ」に対応するコンセプトノード３０４は、「６」として参照されている。ソーシャルネットワーキングシステム２０は、内側の条件である（ａｐｐｌｙ  ｆｒｉｅｎｄ：（ｏｒ  ｆｒｉｅｎｄ：５  ａｔｔｅｎｄｅｄ＞６））を、内側の条件に依存する外側の条件が解決される前に解決される必要がある第１の条件として識別する。図１０を参照すると、内側の条件は、ユーザ「５」の友達または「スタンフォード」に通っていたユーザのいずれかであるユーザを識別することによって解決されることがわかる。ユーザ「５」の友達はユーザ「４」および「７」であり、両者とも「友達」エッジ３０６によってユーザ「５」に対するノードに接続される。「スタンフォード」に通っていたユーザは、ユーザ「４」、「７」、および「９」である。したがって、これらの結果を組み合わせて、内側の条件は、ユーザ「４」、「７」、および「９」に対するユーザノード３０２を識別している。次に、これら３
つの結果は、ａｐｐｌｙ演算子を使用して外側の条件に適用され、そこで、ｓ−式（ｏｒ（ａｎｄ  ｆｒｉｅｎｄ：１０（ｏｒ  ｆｒｉｅｎｄ：４  ｆｒｉｅｎｄ：７  ｆｒｉｅｎｄ：９）ｆｒｉｅｎｄ：１１）として表現し直される。表現し直されたクエリは、ユーザ「１１」の友達またはユーザ「１０」およびユーザ「４」、「７」、または「９」のうちの１つの両方の友達のいずれかであるユーザを識別することによって解決される。ユーザ「１１」の唯一の友達はユーザ「１０」である。ユーザ「１０」の友達はユーザ「３」および「８」を含むが、ユーザ「４」、「７」、および「９」の友達はユーザ「３」、「５」、および「８」を含み、したがって、ユーザ「３」および「８」は、両方の集合内の友達であり、この条件を満たす。したがって、外側の条件は、ユーザ「３」、「８」、および「１０」に対するユーザノード３０２を、構造化クエリに対応するターゲットノードとして識別する。本開示は特定の様式で検索クエリを解決することを説明しているが、本開示は、好適な様式で検索クエリを解決することも企図している。
【０１１２】
図１１Ａ〜図１１Ｃは、プライバシ設定を解決するための例示的なサブグラフを示している。特定の実施形態において、ソーシャルネットワーキングシステム２０は、それぞれのターゲットノードに対するサブグラフを生成する。このサブグラフは、第１のユーザのノード（すなわち、クエリを実行しているユーザのユーザノード３０２）、ターゲットノード、ならびにそれぞれの選択されたノードおよび第１のユーザのノードとターゲットノードとをソーシャルグラフ内で接続するそれぞれの選択されたエッジを含む。例えば、限定されるものでないが、引き続き前の段落からの例を参照すると、サブグラフは、ユーザ「３」、「８」、および「１０」に対するターゲットノードについて構築され、これらはそれぞれ図１１Ａ、図１１Ｂ、および図１１Ｃに示されている。これらのグラフは、クエリを実行しているユーザとターゲットノードとの間の経路内にそれぞれのエッジ３０６を示している。例えば、ユーザ「１０」および「３」を接続するエッジ３０６は、図１１Ａ内で、「ｆｒｉｅｎｄ：１０→３」と示されている。次いで、ソーシャルネットワーキングシステム２０は、それぞれのサブグラフについて、第１のユーザのノードをターゲットノードに接続するサブグラフ内のそれぞれの終端経路を識別する。終端経路は、この一連の選択されたノード、および第１のユーザのノードをターゲットノードに接続する選択されたエッジを含む。例えば、限定されるものでないが、クエリを実行しているユーザをユーザ「１０」に対するターゲットノードに接続する終端経路は、図１１Ｃに示されるように、クエリを実行しているユーザをユーザ「１１」に対するノードに接続するエッジ３０６、ユーザ「１１」に対するユーザノード３０２、およびユーザ「１１」をユーザ「１０」に接続するエッジ３０６を含む。図１１Ａおよび図１１Ｂに示されるように、当然に、クエリを実行しているユーザとターゲットノードとの間に複数の終端経路が存在し、これらの終端経路のそれぞれが識別される。次いで、ソーシャルネットワーキングシステム２０は、サブグラフ内のそれぞれの終端経路について、終端経路内のそれぞれの選択されたエッジが第１のユーザにとって可視である可視性を有するか否かを決定する。言い換えると、ソーシャルネットワーキングシステム２０は、サブグラフがクエリを実行しているユーザとターゲットノードとの間にプライバシ許可経路を有するか否かを調べることを試み得る。例えば、限定されるものでないが、図１１Ｃ内の終端経路がクエリを実行しているユーザにとって可視であるか否かを決定するために、ソーシャルネットワーキングシステム２０は、ｓ−式（ｅｄｇｅ  ｆｒｉｅｎｄ：１１  １０）を評価する。別の例として、限定されるものでないが、図１１Ａ内の終端経路がクエリを実行しているユーザにとって可視であるか否かを決定するために、ソーシャルネットワーキングシステム２０は、ｓ−式（ａｎｄ  （ｅｄｇｅ  ｆｒｉｅｎｄ：１０  ３）（ｅｄｇｅ  ｆｒｉｅｎｄ：４  ３）（ｏｒ（ｅｄｇｅ  ａｔｔｅｎｄｅｄ＞６  ４）（ｅｄｇｅ  ｆｒｉｅｎｄ：５  ４）））を評価する。複数の終端経路が特定のサブグラフ内に存在する場合、ソーシャルネットワーキングシステ��２０は、終端経路の一部または全部を評価して、それぞれの経路内のエッジ３０６が可視であるか否かを決定する。ソーシャルネットワーキングシステム２０は、少なくとも１つの終端経路を有するそれぞれのサブグラフを識別することができ、
経路内のそれぞれの選択されたエッジは、第１のユーザにとって可視である可視性を有する。したがって、サブグラフがクエリを実行しているユーザとターゲットノードとの間に複数の終端経路を含む場合、サブグラフは、そのまま、サブグラフ内の少なくとも１つの終端経路がユーザにとって可視である限りプライバシ許可経路を有するものとして識別される。次いで、生成された検索結果は、少なくとも１つの可視である終端経路を有する識別されたサブグラフに対応するそれぞれのターゲットノードへの参照を含む。例えば、限定されるものでないが、図１１Ａを参照すると、クエリを実行しているユーザとユーザ「３」に対するターゲットノードとの間に終端経路は２つ存在する。２つの取りうる終端経路のうちの少なくとも一方がクエリを実行しているユーザにとって可視である限り、ユーザ「３」に対するターゲットノードは、そのクエリに対する検索結果に含まれる。特定の実施形態において、クエリを実行しているユーザに対するユーザノード３０２は、必ずしも、ターゲットノードヘの可視である経路によって接続される必要はないが、クエリを実行しているユーザにとって可視であるノード（ソースノード）とターゲットノードとの間に少なくとも１つの経路が存在するべきである。例えば、限定されるものでないが、引き続き前の例を参照すると、クエリを実行しているユーザは、必ずしも、ユーザ「３」、「８」、または「１０」のいずれかへの経路で接続される必要はないが、クエリを実行しているユーザがソースノードおよびソースノードとターゲットノードとの間の経路を閲覧できる限り、ターゲットノードは検索結果内に出現し得る。本開示は特定の様式でプライバシ設定を解決することを説明し、図１１Ａ〜図１１Ｃに示しているが、本開示は、好適な様式でプライバシ設定を解決することも企図している。
【０１１３】
特定の実施形態において、ソーシャルネットワーキングシステム２０は、構造化クエリのうちの１つの選択に対応する検索結果を生成する。検索結果は、構造化クエリに対応するコンテンツ（例えば、プロファイルページ）への１もしくは複数のリンクまたは他の参照を含む構造化ドキュメント（例えば、検索結果ウェブページ）に提示される。検索結果における参照は、対応するコンテンツに案内するために使用される。特定の実施形態において、検索結果は、識別された第２のユーザノード３０２のうちの１または複数、識別されたコンセプトノード３０４のうちの１または複数、またはこれらの組み合わせへの参照を含む。例えば、限定されるものでないが、図３を参照すると、ユーザ「Ｂ」は、構造化クエリ「Ａｃｍｅに勤務した友達（Ｆｒｉｅｎｄｓ  ｗｈｏ  ｗｏｒｋｅｄ  ａｔ  Ａｃｍｅ）」を選択することができ、「友達（Ｆｒｉｅｎｄｓ）」は、ユーザ「Ｂ」を他のユーザに接続する「友達」エッジ３０６への参照であり、「勤務した（ｗｏｒｋｅｄ  ａｔ）」は、ユーザ「Ｂ」の友達のユーザノード３０２に接続された「勤務した」エッジ３０６への参照であり、「Ａｃｍｅ」は、会社「Ａｃｍｅ」に対するコンセプトノード３０４への参照である。次いで、ソーシャルネットワーキングシステム２０は、ソーシャルグラフ３００内でユーザ「Ｃ」に対応するユーザノード３０２を、構造化クエリに対応するものとして識別するが、それは、ユーザ「Ｃ」に対するユーザノード３０２は「友達」エッジ３０６によってユーザ「Ｂ」に接続され、また「勤務した」エッジによって「ＡＣＭＥ」に対応する識別されたコンセプトノード３０４に接続されているからである。次いで、ソーシャルネットワーキングシステム２０は、選択された検索クエリに対応する他のソーシャルグラフ要素とともに、ユーザ「Ｃ」を列挙するか、または他の任意の形で参照する検索結果を生成する。特定の実施形態において、検索結果は、１または複数のエッジ３０６によって識別されたユーザノード３０２または識別されたコンセプトノード３０４に接続されているユーザノード３０２またはコンセプトノード３０４への参照を含む。本開示は特定の様式で構造化クエリに対応する特定の検索結果を生成することを説明しているが、本開示は、好適な様式で構造化クエリに対応する好適な検索結果を生成することも企図している。
【０１１４】
特定の実施形態において、ソーシャルネットワーキングシステム２０は、第１のユーザ（すなわち、クエリを実行しているユーザ）に対応するユーザノード３０２の分離度のし
きい値の範囲内のターゲットノード（すなわち、ユーザノード３０２またはコンセプトノード３０４）への参照を含む検索結果のみを生成することのみができる。分離度のしきい値は、例えば、１、２、３、またはすべてであってよい。本開示は特定の様式で検索結果を生成することを説明しているが、本開示は、好適な様式で検索結果を生成することも企図している。
【０１１５】
図１２は、プライバシ設定に基づき構造化検索クエリに対する検索結果をフィルタ処理するための例示的な方法１２００を示している。この方法はステップ１２１０から始まり、そこで、ソーシャルネットワーキングシステム２０は、複数のノードおよびそれらのノードを接続する複数のエッジ３０６を含むソーシャルグラフ３００にアクセスする。これらのノードは、第１のユーザノード３０２および複数の第２のノード（１または複数のユーザノード３０２、コンセプトノード３０４、またはこれらの組み合わせ）を含む。それぞれの第２のノードは、第２のノードに接続されているそれぞれのエッジ３０６の可視性を定義するプライバシ設定に関連付けられる。ステップ１２２０で、ソーシャルネットワーキングシステム２０は、１または複数の第２のノードから選択された１または複数ノードおよび複数のエッジ３０６から選択された１または複数のエッジ３０６への参照を含む構造化クエリを第１のユーザから受信する。ステップ１２３０で、ソーシャルネットワーキングシステム２０は、構造化クエリに対応する１または複数のターゲットノードを識別する。それぞれのターゲットノードは、選択されたエッジ３０６の少なくとも１つによって選択されたノードの少なくとも１つに接続されている複数の第２のノードのうちの第２のノードであってよい。ステップ１２４０で、ソーシャルネットワーキングシステム２０は、第１のユーザにとって可視である可視性を有する一連の選択されたノードおよび選択されたエッジ３０６によってソーシャルグラフ３００内の第１のユーザノード３０２に接続されているそれぞれのターゲットノードヘの参照を含む検索結果を生成する。さらに、生成された検索結果は、第１のユーザノード３０２の分離度のしきい値の範囲内に存在するターゲットノードのみを含む。特定の実施形態において、適切な場合に、図１２の方法の１または複数のステップを繰り返す。本開示では図１２の方法の特定のステップを特定の順序で生じさせるものとして説明し図示しているが、本開示は、好適な順序で生じさせる図１２の方法の好適なステップを企図している。さらに、本開示では図１２の方法の特定のステップを実行する特定の構成要素、デバイス、またはシステムを説明し図示しているが、本開示は、図１２の方法の好適なステップを実行する好適な構成要素、デバイス、またはシステムの好適な組み合わせを企図している。
【０１１６】
システムおよび方法
図１３は、例示的なコンピュータシステム１３００を示している。特定の実施形態において、１または複数のコンピュータシステム１３００は、本明細書で説明されている、または図示されている１または複数の方法の１または複数のステップを実行する。特定の実施形態において、１または複数のコンピュータシステム１３００は、本明細書で説明されているか、または図示されている機能を提供する。特定の実施形態において、１または複数のコンピュータシステム１３００上で動作しているソフトウェアは、本明細書で説明されているか、または図示されている１または複数の方法の１または複数のステップを実行するか、または本明細書で説明されているか、または図示されている機能を提供する。特定の実施形態は、１または複数のコンピュータシステム１３００の１または複数の部分を含む。
【０１１７】
本開示では、好適な数のコンピュータシステム１３００を企図している。本開示では、好適な物理的形態をとるコンピュータシステム１３００を企図している。例えば、限定されるものでないが、コンピュータシステム１３００は、組み込み型コンピュータシステム、システムオンチップ（ＳＯＣ）、シングルボードコンピュータシステム（ＳＢＣ）（例えば、コンピュータオンモジュール（ＣＯＭ）またはシステムオンモジュール（ＳＯＭ）
）、デスクトップコンピュータシステム、ラップトップもしくはノートブックコンピュータシステム、対話型キオスク、メインフレーム、コンピュータシステム網、携帯電話、携帯情報端末（ＰＤＡ）、サーバ、タブレットコンピュータシステム、またはこれらの２もしくはそれ以上の組み合わせであってよい。適宜、コンピュータシステム１３００は、１または複数のコンピュータシステム１３００を含むか、または一体型もしくは分散型であるか、または複数の場所にまたがるか、または複数のマシンにまたがるか、または複数のデータセンタにまたがるか、または１もしくは複数のネットワーク内に１もしくは複数のクラウド構成要素を含む、クラウド内に常駐する。適宜、１または複数のコンピュータシステム１３００は、実質的に空間的な、または時間的な制限を受けることなく、本明細書で説明されている、または図示されている１または複数の方法の１または複数のステップを実行する。例えば、限定されるものでないが、１または複数のコンピュータシステム１３００は、リアルタイムで、またはバッチモードで、本明細書で説明されている、または図示されている１または複数の方法の１または複数のステップを実行する。適宜、１または複数のコンピュータシステム１３００は、異なる時点において、または異なる位置において、本明細書で説明されている、または図示されている１または複数の方法の１または複数のステップを実行する。
【０１１８】
特定の実施形態において、コンピュータシステム１３００は、プロセッサ１３０２、メモリ１３０４、ストレージ１３０６、入出力（Ｉ／Ｏ）インタフェース１３０８、通信インタフェース１３１０、およびバス１３１２を含む。本開示では、特定の構成で特定の数の特定の構成要素を有する特定のコンピュータシステムを説明し、例示しているが、本開示は、好適な構成で好適な数の好適な構成要素を有する好適なコンピュータシステムを企図している。
【０１１９】
特定の実施形態において、プロセッサ１３０２は、コンピュータプログラムを構成する命令などの、命令を実行するためのハードウェアを含む。例えば、限定されるものでないが、命令を実行するために、プロセッサ１３０２は、内部レジスタ、内部キャッシュ、メモリ１３０４、またはストレージ１３０６から命令を取り出し（またはフェッチし）、それらの命令を復号して実行し、次いで、１または複数の結果を内部レジスタ、内部キャッシュ、メモリ１３０４、またはストレージ１３０６に書き込む。特定の実施形態において、プロセッサ１３０２は、データ、命令、またはアドレス用の１または複数の内部キャッシュを含む。本開示では、適宜、好適な数の好適な内部キャッシュを含むプロセッサ１３０２を企図している。例えば、限定されるものでないが、プロセッサ１３０２は、１または複数の命令キャッシュ、１または複数のデータキャッシュ、および１または複数の変換索引バッファ（ＴＬＢ）を含む。命令キャッシュ内の命令は、メモリ１３０４もしくはストレージ１３０６内の命令のコピーとすることができ、命令キャッシュは、プロセッサ１３０２による命令の取り出しを高速化する。データキャッシュ内のデータは、操作するためのプロセッサ１３０２で実行する命令、プロセッサ１３０２で実行する後続の命令によるアクセスのため、またはメモリ１３０４もしくはストレージ１３０６に書き込むためプロセッサ１３０２で実行された前の命令の結果、または他の好適なデータに対する、メモリ１３０４もしくはストレージ１３０６内のデータのコピーとする。データキャッシュは、プロセッサ１３０２による読み出しまたは書き込みオペレーションを高速化する。ＴＬＢは、プロセッサ１３０２用の仮想アドレス変換を高速化する。特定の実施形態において、プロセッサ１３０２は、データ、命令、またはアドレス用の１または複数の内部レジスタを含む。本開示では、適宜、好適な数の好適な内部レジスタを含むプロセッサ１３０２を企図している。適宜、プロセッサ１３０２は、１または複数の算術論理演算ユニット（ＡＬＵ）を含むか、またはマルチコアプロセッサであるか、または１もしくは複数のプロセッサ１３０２を含む。本開示では特定のプロセッサを説明し、例示しているが、本開示は、任意の好適なプロセッサを企図している。
【０１２０】
特定の実施形態において、メモリ１３０４は、プロセッサ１３０２が実行する命令またはプロセッサが操作するデータを記憶するためのメインメモリを含む。例えば、限定されるものでないが、コンピュータシステム１３００は、ストレージ１３０６または別のソース（例えば、別のコンピュータシステム１３００など）から命令をメモリ１３０４にロードする。次いで、プロセッサ１３０２は、メモリ１３０４から命令を内部レジスタもしくは内部キャッシュにロードする。命令を実行するために、プロセッサ１３０２は、内部レジスタもしくは内部キャッシュから命令を取り出して、復号する。命令の実行中もしくは実行後に、プロセッサ１３０２は、１または複数の結果（中間結果もしくは最終結果とする）を内部レジスタまたは内部キャッシュに書き込む。次いで、プロセッサ１３０２は、これらの結果のうちの１または複数をメモリ１３０４に書き込む。特定の実施形態において、プロセッサ１３０２は、１または複数の内部レジスタもしくは内部キャッシュまたはメモリ１３０４にある命令のみを実行し（ストレージ１３０６または他の場所とは反対に）、１または複数の内部レジスタもしくは内部キャッシュまたはメモリ１３０４にあるデータのみを操作する（ストレージ１３０６または他の場所とは反対に）。１または複数のメモリバス（それぞれアドレスバスおよびデータバスを含む）は、プロセッサ１３０２をメモリ１３０４に結合する。バス１３１２は、後述のように、１または複数のメモリバスを含んでいてもよい。特定の実施形態において、１または複数のメモリ管理ユニット（ＭＭＵ）が、プロセッサ１３０２とメモリ１３０４との間に置かれ、プロセッサ１３０４によって要求されたメモリ１３０２へのアクセスを円滑にする。特定の実施形態において、メモリ１３０４は、ランダムアクセスメモリ（ＲＡＭ）を含む。このＲＡＭは、適宜、揮発性メモリであってよい。適宜、このＲＡＭはダイナミックＲＡＭ（ＤＲＡＭ）またはスタティックＲＡＭ（ＳＲＡＭ）であってよい。さらに、適宜、このＲＡＭはシングルポートまたはマルチポートＲＡＭであってよい。本開示では、好適なＲＡＭを企図する。メモリ１３０４は、適宜、１または複数のメモリ１３０４を含む。本開示では特定のメモリを説明し、例示しているが、本開示は、任意の好適なメモリを企図している。
【０１２１】
特定の実施形態において、ストレージ１３０６は、データもしくは命令用の大容量ストレージを含む。例えば、限定されるものでないが、ストレージ１３０６は、ハードディスクドライブ（ＨＤＤ）、フロッピー（登録商標）ディスクドライブ、フラッシュメモリ、光ディスク、光磁気ディスク、磁気テープ、またはユニバーサルシリアルバス（ＵＳＢ）ドライブ、またはこれらの２もしくはそれ以上の組み合わせを含む。ストレージ１３０６は、適宜、取り外し可能または取り外し不可能な（または固定）媒体を含む。適宜、ストレージ１３０６は、コンピュータシステム１３００に内蔵もしくは外付けとする。特定の実施形態において、ストレージ１３０６は、不揮発性ソリッドステートメモリである。特定の実施形態において、ストレージ１３０６は、リードオンリーメモリ（ＲＯＭ）を含む。適宜、このＲＯＭは、マスクプログラムＲＯＭ、プログラム可能ＲＯＭ（ＰＲＯＭ）、消去可能ＰＲＯＭ（ＥＰＲＯＭ）、電気的消去可能ＰＲＯＭ（ＥＥＰＲＯＭ）、電気的消去再書き込みＲＯＭ（ＥＡＲＯＭ）、またはフラッシュメモリ、またはこれらの２もしくはそれ以上の組み合わせとする。本開示では、好適な物理的形態をとる大容量ストレージ１３０６を企図している。ストレージ１３０６は、適宜、プロセッサ１３０２とストレージ１３０６との間の通信を円滑にする１または複数のストレージ制御ユニットを含む。適宜、ストレージ１３０６は、１または複数のストレージ１３０６を含む。本開示では特定のストレージを説明し、例示しているが、本開示は、任意の好適なストレージを企図している。
【０１２２】
特定の実施形態において、Ｉ／Ｏインタフェース１３０８は、コンピュータシステム１３００と１または複数のＩ／Ｏデバイスとの間の通信用のハードウェア、ソフトウェア、または１もしくは複数のインタフェースを備えるハードウェアとソフトウェアの両方を含む。適宜、コンピュータシステム１３００は、これらのＩ／Ｏデバイスのうち１または複数を含む。これらのＩ／Ｏデバイスのうちの１または複数を使用することで、人とコンピ
ュータシステム１３００との間の通信が可能になる。例えば、限定されるものでないが、Ｉ／Ｏデバイスは、キーボード、キーパッド、マイクロホン、モニタ、マウス、プリンタ、スキャナ、スピーカ、スチルカメラ、スタイラス、タブレット、タッチスクリーン、トラックボール、ビデオカメラ、別の好適なＩ／Ｏデバイス、またはこれらのうちの２もしくはそれ以上の組み合わせを含む。Ｉ／Ｏデバイスは、１または複数のセンサを含む。本開示では、好適なＩ／Ｏデバイスおよびそれらに適したＩ／Ｏインタフェース１３０８を企図している。適宜、Ｉ／Ｏインタフェース１３０８は、プロセッサ１３０２がＩ／Ｏデバイスのうちの１または複数を駆動できるようにする１または複数のデバイスもしくはソフトウェアドライバを含む。適宜、Ｉ／Ｏインタフェース１３０８は、１または複数のＩ／Ｏインタフェース１３０８を含む。本開示では特定のＩ／Ｏインタフェースを説明し、例示しているが、本開示は、任意の好適なＩ／Ｏインタフェースを企図している。
【０１２３】
特定の実施形態において、通信インタフェース１３１０は、コンピュータシステム１３００と１または複数の他のコンピュータシステム１３００または１もしくは複数のネットワークとの間の通信（例えば、パケットベースの通信など）用のハードウェア、ソフトウェア、または１または複数のインタフェースを備えるハードウェアとソフトウェアの両方を含む。例えば、限定されるものでないが、通信インタフェース１３１０は、ネットワークインタフェースコントローラ（ＮＩＣ）またはイーサネット（登録商標）もしくは他の有線ベースの、または無線ＮＩＣ（ＷＮＩＣ）と通信するためのネットワークアダプタ、またはＷｉ−Ｆｉネットワークなどの、無線ネットワークと通信するための無線アダプタを含む。本開示では、好適なネットワークおよびそれに適した通信インタフェース１３１０を企図している。例えば、限定されるものでないが、コンピュータシステム１３００は、アドホックネットワーク、パーソナルエリアネットワーク（ＰＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、またはインターネットの１または複数の部分、またはこれらのうちの２もしくはそれ以上の組み合わせと通信する。これらのネットワークのうちの１または複数の１または複数の部分を有線もしくは無線とする。例えば、限定されるものでないが、コンピュータシステム１３００は、無線ＰＡＮ（ＷＰＡＮ）（例えば、ＢＬＵＥＴＯＯＴＨ（登録商標）ＷＰＡＮなど）、Ｗｉ−Ｆｉネットワーク、Ｗｉ−ＭＡＸネットワーク、携帯電話ネットワーク（例えば、ＧＳＭ（登録商標）（Ｇｌｏｂａｌ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｍｏｂｉｌｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ）ネットワークなど）、または他の好適な無線ネットワーク、またはこれらのうちの２もしくはそれ以上の組み合わせと通信する。適宜、コンピュータシステム１３００は、これらのネットワークに好適な通信インタフェース１３１０を含む。通信インタフェース１３１０は、適宜、１または複数の通信インタフェース１３１０を含む。本開示では特定の通信インタフェースを説明し、例示しているが、本開示は、任意の好適な通信インタフェースを企図している。
【０１２４】
特定の実施形態において、バス１３１２は、コンピュータシステム１３００の構成要素を互いに結合するハードウェア、ソフトウェア、またはその両方を含む。例えば、限定されるものでないが、バス１３１２は、ＡＧＰ（Ａｃｃｅｌｅｒａｔｅｄ  Ｇｒａｐｈｉｃｓ  Ｐｏｒｔ）または他のグラフィックスバス、ＥＩＳＡ（Ｅｎｈａｎｃｅｄ  Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、フロントサイドバス（ＦＳＢ）、ＨＴ（ＨＹＰＥＲＴＲＡＮＳＰＯＲＴ）相互接続、ＩＳＡ（Ｉｎｄｕｓｔｒｙ
Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、インフィニバンド相互接続、ＬＰＣ（Ｌｏｗ−Ｐｉｎ−Ｃｏｕｎｔ）バス、メモリバス、ＭＣＡ（Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バス、ＰＣＩｅ（ＰＣＩ−Ｅｘｐｒｅｓｓ）バス、ＳＡＴＡ（Ｓｅｒｉａｌ  Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ）バス、ＶＬＢ（Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎローカル）バス、または他の好適なバス、またはこれらのうちの２
もしくは複数のものとの組み合わせを含む。バス１３１２は、適宜、１または複数のバス１３１２を含む。本開示では特定のバスを説明し、例示しているが、本開示は、任意の好適なバスもしくは相互接続を企図している。
【０１２５】
ここで、非一時的コンピュータ可読記憶媒体への参照は、適宜、半導体ベースの、または他の集積回路（ＩＣ）（例えば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）または特定用途向けＩＣ（ＡＳＩＣ）など）、ハードディスクドライブ（ＨＤＤ）、ハイブリッドハードドライブ（ＨＨＤ）、光ディスク、光ディスクドライブ（ＯＤＤ）、光磁気ディスク、光磁気ドライブ、フロッピーディスク、フロッピーディスクドライブ（ＦＤＤ）、磁気テープ、ホログラフィック記憶媒体、ソリッドステートドライブ（ＳＳＤ）、ＲＡＭドライブ、セキュアデジタル（ＳＥＣＵＲＥ  ＤＩＧＩＴＡＬ）カード、ＳＥＣＵＲＥ  ＤＩＧＩＴＡＬドライブ、または別の好適な非一時的コンピュータ可読記憶媒体、またはこれらの好適な組み合わせを含む。非一時的コンピュータ可読記憶媒体は、適宜、揮発性、不揮発性、または揮発性と不揮発性との組み合わせとする。
【０１２６】
本開示では、好適なストレージを実装する１または複数のコンピュータ可読記憶媒体を企図している。特定の実施形態において、コンピュータ可読記憶媒体は、適宜、プロセッサ１３０２の１または複数の部分（例えば、１または複数の内部レジスタもしくはキャッシュなど）、メモリ１３０４の１または複数の部分、ストレージ１３０６の１または複数の部分、またはこれらの組み合わせを実装する。特定の実施形態において、コンピュータ可読ストレージメディアは、ＲＡＭまたはＲＯＭを実装する。特定の実施形態において、コンピュータ可読記憶媒体は、揮発性もしくは永続的メモリを実装する。特定の実施形態において、１または複数のコンピュータ可読記憶媒体は、ソフトウェアを具現化する。ここで、ソフトウェアへの参照は、適宜、１または複数のアプリケーション、バイトコード、１または複数のコンピュータプログラム、１または複数の実行可能ファイル、１または複数の命令、ロジック、機械語コード、１または複数のスクリプト、またはソースコードを包含し、またその逆も言える。特定の実施形態において、ソフトウェアは、１または複数のアプリケーションプログラミングインタフェース（ＡＰＩ）を含む。本開示では、好適なプログラミング言語またはプログラミング言語の組み合わせで書かれた、または他の任意の形で表現された好適なソフトウェアを企図している。特定の実施形態において、ソフトウェアは、ソースコードまたはオブジェクトコードとして表される。特定の実施形態において、ソフトウェアは、例えば、Ｃ、Ｐｅｒｌ、またはその好適な拡張言語などの、ハイレベルプログラミング言語で表現される。特定の実施形態において、ソフトウェアは、アセンブリ言語（または機械語コード）などの、ローレベルプログラミング言語で表現される。特定の実施形態において、ソフトウェアは、ＪＡＶＡで表現される。特定の実施形態において、ソフトウェアは、ハイパーテキストマークアップ言語（ＨＴＭＬ）、拡張マークアップ言語（ＸＭＬ）、または他の好適なマークアップ言語で表現される。
【０１２７】
図１４は、例示的なネットワーク環境１４００を示している。本開示では、好適なネットワーク環境１４００を企図する。例えば、限定されるものでないが、本開示では、クライアントサーバモデルを実装するネットワーク環境１４００を説明し、図示しているが、本開示は、適宜、ピアツーピアであるネットワーク環境１４００の１または複数の部分を企図している。特定の実施形態は、１または複数のネットワーク環境１４００内で全体としてまたは一部だけ動作する。特定の実施形態において、ネットワーク環境１４００の１または複数は、本明細書で説明されているか、または図示されている機能を提供する。特定の実施形態は、ネットワーク環境１４００の１または複数の部分を含む。ネットワーク環境１４００は、１または複数のサーバ１４２０および１または複数のクライアント１４３０を互いに結合するネットワーク１４１０を備える。本開示では、好適なネットワーク１４１０を企図する。例えば、限定されるものでないが、ネットワーク１４１０の１または複数の部分は、アドホックネットワーク、イントラネット、エクストラネット、仮想プ
ライベートネットワーク（ＶＰＮ）、ローカルエリアネットワーク（ＬＡＮ）、無線ＬＡＮ（ＷＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、無線ＷＡＮ（ＷＷＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、インターネットの一部、公衆交換電話網（ＰＳＴＮ）の一部、携帯電話網、またはこれらのネットワークの２以上のネットワークの組み合わせを含む。ネットワーク１４１０は、１または複数のネットワーク１４１０を含む。
【０１２８】
リンク１４５０は、サーバ１４２０およびクライアント１４３０をネットワーク１４１０に、または相互に結合する。本開示では、好適なリンク１４５０を企図する。例えば、限定されるものでないが、１または複数のリンク１４５０は、それぞれ、１または複数の有線接続（例えば、デジタル加入者回線（ＤＳＬ）またはデータオーバーケーブルサービスインタフェース仕様（ＤＯＣＳＩＳ）など）、無線接続（例えば、Ｗｉ−ＦｉまたはＷｉＭＡＸ（Ｗｏｒｌｄｗｉｄｅ  Ｉｎｔｅｒｏｐｅｒａｂｉｌｉｔｙ  ｆｏｒ  Ｍｉｃｒｏｗａｖｅ  Ａｃｃｅｓｓ）など）、または光リンク（例えば、同期型光ネットワーク（ＳＯＮＥＴ）または同期デジタルハイアラキー（ＳＤＨ）など）１４５０を含む。特定の実施形態において、１または複数のリンク１４５０は、それぞれ、イントラネット、エクストラネット、ＶＰＮ、ＬＡＮ、ＷＬＡＮ、ＷＡＮ、ＭＡＮ、通信ネットワーク、衛星ネットワーク、インターネットの一部、または別のリンク１４５０、または２以上のそのようなリンク１４５０の組み合わせを含む。リンク１４５０は、ネットワーク環境１４００全体を通して必ずしも同一でなくてよい。１または複数の第１のリンク１４５０は、１または複数の第２のリンク１４５０と１または複数の点で異なる。
【０１２９】
本開示では、好適なサーバ１４２０を企図する。例えば、限定されるものでないが、１または複数のサーバ１４２０は、それぞれ、１または複数の広告サーバ、アプリケーションサーバ、カタログサーバ、通信サーバ、データベースサーバ、交換サーバ、ファクスサーバ、ファイルサーバ、ゲームサーバ、ホームサーバ、メールサーバ、メッセージサーバ、ニュースサーバ、ネームまたはＤＮＳサーバ、プリントサーバ、プロキシサーバ、サウンドサーバ、スタンドアロンサーバ、ウェブサーバ、またはウェブフィードサーバを含む。特定の実施形態において、サーバ１４２０は、サーバ１４２０の機能を提供するためのハードウェア、ソフトウェア、またはその両方を含む。例えば、限定されるものでないが、ウェブサーバとして動作するサーバ１４２０は、ウェブページまたはウェブページの要素を含むウェブサイトをホストすることができ、ホストするための適切なハードウェア、ソフトウェア、またはその両方を含む。特定の実施形態において、ウェブサーバは、リクエストがあったときにウェブページに対して、ＨＴＭＬまたは他の好適なファイルをホストするか、またはファイルを動的に作成もしくは構成する。クライアント１４３０からのハイパーテキスト転送プロトコル（ＨＴＴＰ）または他のリクエストに応答して、ウェブサーバは、１または複数のそのようなファイルをクライアント１４３０に伝達する。別の例として、メールサーバとして動作するサーバ１４２０は、１または複数のクライアント１４３０に電子メールサービスを提供する。別の例として、データベースサーバとして動作するサーバ１４２０は、１または複数のデータストア（例えば以下で説明されているデータストア１４４０など）と双方向に対話するためのインタフェースを提供する。適宜、サーバ１４２０は、１または複数のサーバ１４２０を含むか、または一体型もしくは分散型であるか、または複数の場所にまたがるか、または複数のマシンにまたがるか、または複数のデータセンタにまたがるか、または１もしくは複数のネットワーク内に１もしくは複数のクラウドコンポーネントを含む、クラウド内に常駐する。
【０１３０】
特定の実施形態において、１または複数のリンク１４５０は、サーバ１４２０を１または複数のデータストア１４４０に結合する。データストア１４４０は、好適な任意の情報を記憶することができ、データストア１４４０のコンテンツは、好適な方法で編成される。例えば、限定されるものでないが、データストア１４４０のコンテンツは、多次元デー
タベース、フラットデータベース、階層型データベース、ネットワークデータベース、オブジェクト指向データベース、関係データベース、ＸＭＬデータベース、または他の好適なデータベース、またはこれらのうちの２以上の組み合わせとして記憶する。データストア１４４０（またはそれに結合されたサーバ１４２０）は、データストア１４４０のコンテンツを管理するためにデータベース管理システムまたは他のハードウェアもしくはソフトウェアを含む。データベース管理システムは、読み出しおよび書き込みオペレーションを実行する、データを削除もしくは消去する、データ複製を実行する、データストア１４４０のコンテンツについてクエリまたは検索を実行する、またはデータストア１４４０への他のアクセスを提供する。
【０１３１】
特定の実施形態において、１または複数のサーバ１４２０は、それぞれ、１または複数の検索エンジン１４２２を含む。検索エンジン１４２２は、検索エンジン１４２２の機能を提供するためのハードウェア、ソフトウェア、またはその両方を含む。例えば、限定されるものでないが、検索エンジン１４２２は、検索エンジン１４２２で受信された検索クエリに応答してネットワークリソースを識別する１または複数の検索アルゴリズム、識別されたネットワークリソースをランク付けする１または複数のランク付けアルゴリズム、または識別されたネットワークリソースを要約する１または複数の要約アルゴリズムを実装し得る。特定の実施形態において、検索エンジン１４２２によって実装されるランク付けアルゴリズムは、適宜検索クエリと選択されたユニフォームリソースロケータ（ＵＲＬ）との対から構築された学習データの集合からこのランク付けアルゴリズムが自動的に取得し得る、機械学習によるランク付け公式を使用する。
【０１３２】
特定の実施形態において、１または複数のサーバ１４２０は、それぞれ、１または複数のデータモニタ／コレクタ１４２４を含む。データモニタ／コレクション１４２４は、データコレクタ／コレクタ１４２４の機能を提供するためのハードウェア、ソフトウェア、またはその両方を含む。例えば、限定されるものでないが、サーバ１４２０におけるデータモニタ／コレクタ１４２４は、サーバ１４２０でネットワーク通信量データを監視して収集し、ネットワーク通信量データを１または複数のデータストア１４４０に記憶する。特定の実施形態において、サーバ１４２０または別のデバイスは、適宜、ネットワーク通信量データから検索クエリと選択されたＵＲＬの対を抽出する。
【０１３３】
本開示では、好適なクライアント１４３０を企図する。クライアント１４３０では、クライアント１４３０におけるユーザがネットワーク１４１０、サーバ１４２０、または他のクライアント１４３０にアクセスするか、またはこれらと他の任意の方法で通信する。例えば、限定されるものでないが、クライアント１４３０は、ＭＩＣＲＯＳＯＦＴ  ＩＮＴＥＲＮＥＴ  ＥＸＰＬＯＲＥＲまたはＭＯＺＩＬＬＡ  ＦＩＲＥＦＯＸなどの、ウェブブラウザを有することができ、またＧＯＯＧＬＥ  ＴＯＯＬＢＡＲまたはＹＡＨＯＯ  ＴＯＯＬＢＡＲなどの、１または複数のアドオン、プラグイン、または他の拡張機能を有する。クライアント１４３０は、クライアント１４３０の機能を提供するためのハードウェア、ソフトウェア、またはその両方を含む電子デバイスであってよい。例えば、限定されるものでないが、クライアント１４３０は、適宜、組み込み型コンピュータシステム、ＳＯＣ、ＳＢＣ（例えば、ＣＯＭまたはＳＯＭなど）、デスクトップコンピュータシステム、ラップトップもしくはノートブックコンピュータシステム、対話型キオスク、メインフレーム、コンピュータシステム網、携帯電話、ＰＤＡ、ネットブックコンピュータシステム、サーバ、タブレットコンピュータシステム、またはこれらの２もしくはそれ以上の組み合わせであってよい。適宜、クライアント１４３０は、１または複数のクライアント１４３０を含むものとしてよく、または一体型もしくは分散型であるか、または複数の場所にまたがるか、または複数のマシンにまたがるか、または複数のデータセンタにまたがるか、または１もしくは複数のネットワーク内に１もしくは複数のクラウドコンポーネントを含む、クラウド内に常駐する。
【０１３４】
その他の事項
本明細書では、「または」、「もしくは」は、特に断りのない限り、または文脈上そうでないことが示されていない限り、排他的でなく、包含的である。したがって、本明細書では、「ＡまたはＢ」、「ＡもしくはＢ」は、特に断りのない限り、または文脈上そうでないことが示されていない限り、「Ａ、Ｂ、またはその両方」、「Ａ、Ｂ、もしくはその両方」を意味する。さらに、「および」は、特に断りのない限り、または文脈上そうでないことが示されていない限り、連帯である。したがって、本明細書では、「ＡおよびＢ」は、特に断りのない限り、または文脈上そうでないことが示されていない限り、「連帯的にＡおよびＢ」を意味する。さらに、英語原文中の「ａ」、「ａｎ」、または「ｔｈｅ」が付いている語に対して日本語で「１つの」が付いていない語は、特に断りのない限り、または文脈上そうでないことが示されていない限り、「１または複数」を意味することを意図している。したがって、本明細書では、英語原文の「ａｎ  Ａ」、「ｔｈｅ  Ａ」に対応する日本語の「Ａ」、「そのＡ」は、特に断りのない限り、または文脈上そうでないことが示されていない限り、「１または複数のＡ」を意味する。
【０１３５】
本開示は、当業者であれば理解されるであろう本明細書の例示的な実施形態へのすべての変更、代替、変形、改変、および修正を包含する。さらに、本開示では明細書の各実施形態を特定の構成要素、要素、機能、オペレーション、またはステップを含むものとして説明し、図示しているが、これらの実施形態はいずれも、当業者であれば理解されるであろう本明細書の任意の箇所で説明されるか、または図示されている構成要素、要素、機能、オペレーション、またはステップのうちのいずれかの組み合わせまたは置換を含む。さらに、特定の機能を実行するように適合されるか、配置されるか、そのような能力を有するか、構成されているか、使用可能にされているか、動作可能であるか、そのような働きをする付属の請求項における装置もしくはシステムまたは装置もしくはシステムの構成要素への参照は、その装置、システム、構成要素を、それがまたはその特定の機能が作動されるか、有効にされるか、または解除されるか否かに関係なく、その装置、システム、または構成要素がそうするように適合されるか、そのように配置されるか、そのような能力を有するか、そのように構成されているか、そのように使用可能にされるか、そのように動作可能であるか、またはそのように働く限り、包含する。
【図１】
0005997350.tif 000002
【図２Ａ】
0005997350.tif 000003
【図２Ｂ】
0005997350.tif 000004
【図３】
0005997350.tif 000005
【図４Ａ】
0005997350.tif 000006
【図４Ｂ】
0005997350.tif 000007
【図４Ｃ】
0005997350.tif 000008
【図４Ｄ】
0005997350.tif 000009
【図５Ａ】
0005997350.tif 000010
【図５Ｂ】
0005997350.tif 000011
【図５Ｃ】
0005997350.tif 000012
【図６Ａ】
0005997350.tif 000013
【図６Ｂ】
0005997350.tif 000014
【図６Ｃ】
0005997350.tif 000015
【図６Ｄ】
0005997350.tif 000016
【図６Ｅ】
0005997350.tif 000017
【図６Ｆ】
0005997350.tif 000018
【図６Ｇ】
0005997350.tif 000019
【図６Ｈ】
0005997350.tif 000020
【図６Ｉ】
0005997350.tif 000021
【図６Ｊ】
0005997350.tif 000022
【図６Ｋ】
0005997350.tif 000023
【図６Ｌ】
0005997350.tif 000024
【図６Ｍ】
0005997350.tif 000025
【図６Ｎ】
0005997350.tif 000026
【図６Ｏ】
0005997350.tif 000027
【図６Ｐ】
0005997350.tif 000028
【図６Ｑ】
0005997350.tif 000029
【図６Ｒ】
0005997350.tif 000030
【図７】
0005997350.tif 000031
【図８】
0005997350.tif 000032
【図９】
0005997350.tif 000033
【図１０】
0005997350.tif 000034
【図１１Ａ】
0005997350.tif 000035
【図１１Ｂ】
0005997350.tif 000036
【図１１Ｃ】
0005997350.tif 000037
【図１２】
0005997350.tif 000038
【図１３】
0005997350.tif 000039
【図１４】
0005997350.tif 000040