(57)【特許請求の範囲】
【請求項１】
オンライン・ソーシャル・ネットワークに関連付けられている選択された１以上のオブジェクトへの参照を含む構造化クエリを前記オンライン・ソーシャル・ネットワークの第１のユーザのクライアント・デバイスから受信する工程と、
前記構造化クエリを構文解析して、第１のクエリ制約および１以上の第２のクエリ制約を識別する工程と、
前記第１のクエリ制約に関連付けられている逆制約を識別する工程であって、前記第１のクエリ制約は、オブジェクトの閾値数よりも多くを識別するものとして、以前にフラグを付けられている、識別する工程と、
前記構造化クエリに基づいてクエリコマンドを生成する工程であって、前記クエリコマンドは、前記逆制約および前記１以上の第２のクエリ制約を含む、生成する工程と、
を備える、方法。
【請求項２】
複数のノードと、前記ノード同士をつなげている複数のエッジとを備えるソーシャル・グラフにアクセスする工程であって、前記ノードのうちの２つの間の前記エッジの各々は、それらの間の単一の分離度合いを表現しており、前記ノードは、
前記第１のユーザに対応している第１のノードと、
前記オンライン・ソーシャル・ネットワークに関連付けられている複数のオブジェクトに各々対応している複数の第２のノードと、
を含む、工程をさらに備える、請求項１に記載の方法。
【請求項３】
前記構造化クエリは、前記複数のノードから選択された１以上のノードおよび前記複数のエッジから選択された１以上のエッジへの参照を含む、請求項２に記載の方法。
【請求項４】
前記第１のクエリ制約は、第１のノード・タイプの１以上のノードに対応する第１のオブジェクト・タイプについてのものであり、前記第１のノード・タイプの１以上のノードは、前記構造化クエリにおいて参照されている選択された前記エッジのうちの１つによって、第２のノード・タイプの１以上のノードに各々つなげられており、
前記逆制約は、前記第２のノード・タイプの１以上のノードに対応する第２のオブジェクト・タイプについてのものであり、前記第２のノード・タイプの１以上のノードは、前記構造化クエリにおいて参照されている選択された前記エッジのうちの１つによって、前記第１のノード・タイプの１以上のノードにつなげられている、
請求項３に記載の方法。
【請求項５】
前記第１のクエリ制約は、第１のオブジェクト・タイプについてのものであり、前記逆制約は、第２のオブジェクト・タイプについてのものである、請求項１に記載の方法。
【請求項６】
前記第１のクエリ制約は、第１のオブジェクト・タイプについてのものであり、前記逆制約は、第１のオブジェクト・タイプについてのものである、請求項１に記載の方法。
【請求項７】
前記逆制約は、第１のオブジェクト・タイプについてのものであり、前記第２のクエリ制約のうちの１以上は、１以上の第２のオブジェクト・タイプについてのものである、請求項１に記載の方法。
【請求項８】
前記第１のクエリ制約は、内部制約および外部制約を含み、
前記クエリコマンドは、前記逆制約と前記内部制約との交差を含む、
請求項１に記載の方法。
【請求項９】
さらに、
前記第１のクエリ制約は、第１のオブジェクト・タイプについてのものであり、前記第１のクエリ制約は、前記第１のオブジェクト・タイプを第２のオブジェクト・タイプにマッピングする逆インデックスに対応し、
前記逆制約は、前記第２のオブジェクト・タイプについてのものであり、前記逆制約は、前記第２のオブジェクト・タイプを前記第１のオブジェクト・タイプにマッピングするフォワード・インデックスに対応する
請求項１に記載の方法。
【請求項１０】
前記逆制約に一致するオブジェクトの第１のセットを識別する工程と、
前記１以上の第２のクエリ制約に一致するオブジェクトの第２のセットを識別する工程と、
前記第１のセットおよび前記第２のセットに基づいて、１以上の検索結果を生成する工程であって、各検索結果は、前記オンライン・ソーシャル・ネットワークに関連付けられている複数のオブジェクトのうちの１つのオブジェクトに対応している、検索結果を生成する工程と
をさらに備える、請求項１に記載の方法。
【請求項１１】
前記検索結果を生成する工程は、前記オブジェクトの第１のセットと前記オブジェクトの第２のセットとの双方において識別された各オブジェクトに対応している検索結果を生成する工程を含む、請求項１０に記載の方法。
【請求項１２】
各検索結果は、前記オブジェクトの第１のセットの前記オブジェクトのうちの１以上に結び付けられる、前記オブジェクトの第２のセットのうちの１つのオブジェクトに対応する、請求項１０に記載の方法。
【請求項１３】
各検索結果は、前記オブジェクトの第１のセットのうちの１つのオブジェクトに対応しており、前記オブジェクトの第１のセットのうちの１つのオブジェクトは、前記オブジェクトの第２のセットのオブジェクトのうちの１以上につなげられている、請求項１０に記載の方法。
【請求項１４】
前記オブジェクトの第２のセットを識別する工程は、前記オンライン・ソーシャル・ネットワークに関連付けられている複数のオブジェクトのうちの１以上のオブジェクトを識別する工程を含み、前記複数のオブジェクトのうちの１以上のオブジェクトは、前記オブジェクトの第１のセットにおける前記オブジェクトのうちの１以上につなげられている、請求項１０に記載の方法。
【請求項１５】
前記第１のクエリ制約を満足させるオブジェクトの数を決定する工程と、
前記オブジェクトの数がオブジェクトの閾値数よりも大きい場合、前記逆制約を用いてクエリコマンドを生成する工程と、
そうでない場合、前記第１のクエリ制約を用いてクエリコマンドを生成する工程と
をさらに備える、請求項１に記載の方法。
【請求項１６】
前記構造化クエリに基づいて、予備的クエリコマンドを生成する工程であって、前記予備的クエリコマンドは、前記第１のクエリ制約と前記１以上の第２のクエリ制約とを含む、生成する工程と、
前記予備的クエリコマンドに基づいて、検索結果の第１のセットを生成する工程と、
前記検索結果の第１のセットが検索結果の閾値数よりも少ない場合、前記逆制約を用いてクエリコマンドを生成し、前記逆制約を用いる前記クエリコマンドに基づいて、検索結果の第２のセットを生成する工程と
をさらに備える、請求項１に記載の方法。
【請求項１７】
前記第１のクエリ制約に一致するオブジェクトの第１のセットを識別し、
前記第２のクエリ制約のうちの１以上に一致し、前記オブジェクトの第１のセットからの１以上のオブジェクトを含む、オブジェクトの第２のセットを識別する
ことによって、検索結果の第１のセットを生成する工程であって、各検索結果は、前記オンライン・ソーシャル・ネットワークに関連付けられている複数のオブジェクトのうちの１つのオブジェクトに対応している、生成する工程と、
前記オブジェクトの第２のセットがオブジェクトの閾値数よりも少ない場合、
前記逆制約に一致するオブジェクトの第３のセットを識別し、
前記第２のクエリ制約のうちの１以上に一致し、前記オブジェクトの第３のセットからの１以上のオブジェクトを含む、オブジェクトの第４のセットを識別する
ことによって、検索結果の第２のセットを生成する工程と
をさらに備える、請求項１に記載の方法。
【請求項１８】
１以上のクエリ制約にフラグを付ける工程であって、フラグを付けられた各クエリ制約は、実行されるとき、オブジェクトの閾値数よりも多くを識別するものとして識別されている、フラグを付ける工程と、
前記第１のクエリ制約が、フラグを付けられた前記クエリ制約のうちの１つであるか否かを決定する工程と、
前記第１のクエリ制約が、フラグを付けられたクエリ制約である場合、前記逆制約を含むクエリコマンドを生成する工程と
をさらに備える、請求項１に記載の方法。
【請求項１９】
ソフトウェアを具現化している１以上のコンピュータ読取可能非一時的記憶媒体であって、前記ソフトウェアは、実行されるとき、
オンライン・ソーシャル・ネットワークに関連付けられている選択された１以上のオブジェクトへの参照を含む構造化クエリを前記オンライン・ソーシャル・ネットワークの第１のユーザのクライアント・デバイスから受信する工程と、
前記構造化クエリを構文解析して、第１のクエリ制約および１以上の第２のクエリ制約を識別する工程と、
前記第１のクエリ制約に関連付けられている逆制約を識別する工程であって、前記第１のクエリ制約は、オブジェクトの閾値数よりも多くを識別するものとして、以前にフラグを付けられている、識別する工程と、
前記構造化クエリに基づいてクエリコマンドを生成する工程であって、前記クエリコマンドは、前記逆制約および前記１以上の第２のクエリ制約を含む、生成する工程と、
が行われるように動作可能である、媒体。
【請求項２０】
１以上のプロセッサと、前記プロセッサによって実行可能な命令を含み、前記プロセッサに結合されているメモリとを備えるシステムであって、前記プロセッサは、前記命令が実行されるとき、
オンライン・ソーシャル・ネットワークに関連付けられている選択された１以上のオブジェクトへの参照を含む構造化クエリを前記オンライン・ソーシャル・ネットワークの第１のユーザのクライアント・デバイスから受信する工程と、
前記構造化クエリを構文解析して、第１のクエリ制約および１以上の第２のクエリ制約を識別する工程と、
前記第１のクエリ制約に関連付けられている逆制約を識別する工程であって、前記第１のクエリ制約は、オブジェクトの閾値数よりも多くを識別するものとして、以前にフラグを付けられている、識別する工程と、
前記構造化クエリに基づいてクエリコマンドを生成する工程であって、前記クエリコマンドは、前記逆制約および前記１以上の第２のクエリ制約を含む、生成する工程と、
が行われるように動作可能である、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は一般に、ソーシャル・グラフ、およびソーシャルネットワーキング環境内でオブジェクトを探して検索を実行することに関する。
【背景技術】
【０００２】
ソーシャル・ネットワーキング・システム（ソーシャルネットワーキング・ウェブサイトを含むことができる）は、そのソーシャル・ネットワーキング・システムのユーザ（人または組織など）がそのソーシャル・ネットワーキング・システムと、およびそのソーシャル・ネットワーキング・システムを通じて互いに対話することを可能にすることができる。ソーシャル・ネットワーキング・システムは、ユーザからの入力を用いて、そのユーザに関連付けられているユーザ・プロフィールを作成して、ソーシャル・ネットワーキング・システム内に格納することができる。ユーザ・プロフィールは、人口統計学的情報、通信チャネル情報、およびユーザの個人的な関心に関する情報を含むことができる。ソーシャル・ネットワーキング・システムは、ユーザからの入力を用いて、そのユーザと、ソーシャル・ネットワーキング・システムのその他のユーザとの関係のレコードを作成および格納すること、ならびにサービス（たとえば、ウォール・ポスト、写真共有、イベント編成、メッセージング、ゲーム、または広告）を提供して、ユーザ同士の間における社会的な交流を容易にすることも可能である。
【０００３】
ソーシャル・ネットワーキング・システムは、そのサービスに関連したコンテンツまたはメッセージを、１つまたは複数のネットワークを通じて、ユーザのモバイルまたはその他のコンピューティング・デバイスへ送信することができる。ユーザは、自分のユーザ・プロフィールおよびソーシャル・ネットワーキング・システム内のその他のデータにアクセスするためにソフトウェア・アプリケーションを自分のモバイルまたはその他のコンピューティング・デバイス上にインストールすることもできる。ソーシャル・ネットワーキング・システムは、ユーザにつながっているその他のユーザの集約されたストーリのニュース・フィードなど、ユーザに表示するためのコンテンツ・オブジェクトのパーソナライズされたセットを生成することができる。
【０００４】
ソーシャル・グラフ分析は、ソーシャルな関係を、ノードおよびエッジから構成されているネットワーク理論の点から見る。ノードは、ネットワーク内の個々の行為主体を表し、エッジは、行為主体同士の間における関係を表す。結果として生じるグラフベースの構造は、しばしば非常に複雑である。多くのタイプのノード、およびノード同士をつなげるための多くのタイプのエッジが存在することが可能である。ソーシャル・グラフは、その最もシンプルな形態においては、調査されているすべてのノードの間における関連があるすべてのエッジのマップである。
【図面の簡単な説明】
【０００５】
【図１】ソーシャル・ネットワーキング・システムに関連付けられている例示的なネットワーク環境を示す図。
【図２】例示的なソーシャル・グラフを示す図。
【図３】ソーシャル・ネットワーキング・システムのオブジェクトを記憶するための例示的なパーティショニングを示す図。
【図４】オンライン・ソーシャル・ネットワークの例示的なウェブページを示す図。
【図５Ａ】ソーシャル・ネットワークの例示的なクエリを示す図。
【図５Ｂ】ソーシャル・ネットワークの例示的なクエリを示す図。
【図５Ｃ】ソーシャル・ネットワークの例示的なクエリを示す図。
【図５Ｄ】ソーシャル・ネットワークの例示的なクエリを示す図。
【図６】内部制約と外部制約とを有する検索クエリに応答して検索結果を生成するための例示的な方法を示す図。
【図７】逆演算子を使用して検索クエリを構文解析するための例示的な方法を示す図。
【図８】検索意図に基づいて検索結果を生成するための例示的な方法を示す図。
【図９】例示的なコンピュータ・システムを示す図。
【発明を実施するための形態】
【０００６】
特定の実施形態において、ソーシャル・ネットワーキング・システムのユーザは、特定のソーシャル・グラフ要素への参照を含む構造化クエリを使用して、当該システムに関連付けられているオブジェクトを検索し得る。構造化クエリは、オンライン・ソーシャル・ネットワークのユーザに、オブジェクトのソーシャル・グラフ属性と様々なソーシャル・グラフ要素に対するオブジェクトの関係性とに基づいてソーシャル・グラフにおいて表現されるオブジェクトを検索するための強力な手法を提供し得る。
【０００７】
特定の実施形態において、ネスト化された検索クエリなどの、内部制約と外部制約との双方を有する構造化クエリに応答して、ソーシャル・ネットワーキング・システムは、内部制約と外部制約との双方を満足させる、オンライン・ソーシャル・ネットワークに関連付けられているオブジェクトを識別し得る。ソーシャル・ネットワーキング・システムに関連付けられているオブジェクトのバーティカル（ｖｅｒｔｉｃａｌｓ）を検索するプロセスは、内部クエリ制約に一致するオブジェクトを識別する場合に外部クエリ制約が使用される、クエリヒンティングを使用することによって改善され得る。例えば、「パロ・アルトで撮影された女性の写真」などの比較的複雑な構造化クエリは、ユーザ・バーティカルが検索されて、女性であるユーザを識別し、「弱い論理積（ｗｅａｋ  ａｎｄ）」（ＷＡＮＤ）演算子などの、結果から引数が不在となる場合があることを可能にする演算子を使用することによって、パロ・アルトにおける写真にもタグ付けされている少なくとも何名かの女性ユーザを識別するように、構文解析され得る。次に、写真バーティカルが検索されて、識別された女性ユーザのいずれかがタグ付けされている、パロ・アルトで撮影された写真が識別され得る。特定の実施形態において、第１のバーティカルからの結果は、得点付けおよび順位付けされ、それらのスコアは、第２のバーティカルの結果を得点付けする際に使用され得る。このように、外部制約によって要求されるオブジェクトに対応するバーティカルの検索は、検索クエリを満足させる結果を生成する可能性が高い。これは、ソーシャル・ネットワーキング・システムがより良好な検索結果を生み出すことも可能にし、こうした結果を生成するための処理効率を改善し得る。
【０００８】
特定の実施形態において、ソーシャル・ネットワーキング・システムは、構造化検索クエリを構文解析し、逆演算子を含むクエリコマンドを生成し得る。ソーシャル・ネットワーキング・システムに関連付けられているオブジェクトのバーティカルを検索するプロセスは、逆演算子を使用することによって改善され得る。ここで、クエリ制約のうちの１つは、その逆制約を含むように修正され得る。ネスト化された検索クエリなどの、内部クエリ制約と外部クエリ制約との双方を有する構造化クエリを構文解析する場合、そのクエリの典型的な処理は、不適切な数の検索結果を生み出し得る。これは、例えば、内部クエリ制約があまりにも多くの結果を生み出し、それらのいずれかが外部クエリと交差（ｉｎｔｅｒｓｅｃｔ）する可能性を低減するという理由で、発生し得る。ソーシャル・ネットワーキング・システムに関連付けられているオブジェクトのバーティカルを検索するプロセスは、逆演算子を使用することによって改善され得る。ここで、一致するオブジェクトについてのバーティカルを検索する場合、元のクエリ制約の代わりに、逆制約が使用される。例えば、「中国の人々によって「いいね！」の表明をされた自分の写真」などの比較的
複雑な構造化クエリは、中国のユーザによって「いいね！」の表明をされた写真を検索するために「…によって“いいね！”の表明をされた（ｌｉｋｅｄ＿ｂｙ）」演算子を使用する代わりに、クエリを行うユーザの写真のユーザを検索するための「…について“いいね！”の表明をした（ｌｉｋｅｒｓ＿ｏｆ）」演算子を使用するように、構文解析され得る。このように、逆演算子は、特定のバーティカルの検索がより良好な検索結果を生み出すように使用され、こうした結果を生成するための処理効率を改善し得る。
【０００９】
特定の実施形態において、ソーシャル・ネットワーキング・システムは、クエリを行うユーザの検索意図に基づいて、検索結果を順位付けし得る。ユーザは、異なる検索クエリを実行する場合には、異なる意図を有し得る。検索結果を生成するために使用される検索アルゴリズムは、あるクエリに応答して検索結果が順位付けされる手法が、別のクエリに応答して検索結果が順位付けされる手法とは異なるように、これらの検索意図に基づいて修正され得る。ソーシャル・ネットワーキング・システムは、検索クエリについての１つまたは複数の検索意図を識別し、次いで、検索意図に基づいて、検索クエリに一致する検索結果を順位付けし得る。検索意図は、例えば、検索クエリにおいて参照されているソーシャル・グラフ要素、検索クエリ内の用語、クエリを行うユーザに関連付けられているユーザ情報、クエリを行うユーザの検索履歴、パターン検出、クエリもしくはユーザに関係する他の適切な情報、または、これらの任意の組み合わせなどに基づいて、多用な手法において決定され得る。例えば、検索クエリにおいて参照されている特定のソーシャル・グラフ要素は、特定の検索意図に対応し得る。検索結果を順位付けする際に検索意図を使用することによって、ソーシャル・ネットワーキング・システムは、クエリを行うユーザにより関連した検索結果、またはクエリを行うユーザにとってより興味のある検索結果を、より効果的に提示することが可能になる。
【００１０】
システムの概観
図１は、ソーシャル・ネットワーキング・システムに関連付けられている例示的なネットワーク環境１００を示している。ネットワーク環境１００は、ネットワーク１１０によって互いにつながっているクライアント・システム１３０、ソーシャル・ネットワーキング・システム１６０、およびサードパーティ・システム１７０を含む。図１は、クライアント・システム１３０、ソーシャル・ネットワーキング・システム１６０、サードパーティ・システム１７０、およびネットワーク１１０の特定の構成を示しているが、本開示は、クライアント・システム１３０、ソーシャル・ネットワーキング・システム１６０、サードパーティ・システム１７０、およびネットワーク１１０の任意の適切な構成を想定している。限定ではなく、例として、クライアント・システム１３０、ソーシャル・ネットワーキング・システム１６０、およびサードパーティ・システム１７０のうちの複数は、ネットワーク１１０を迂回して、互いに直接つながることが可能である。別の例として、クライアント・システム１３０、ソーシャル・ネットワーキング・システム１６０、およびサードパーティ・システム１７０のうちの複数は、物理的にまたは論理的に、全体としてまたは部分的に互いに同一場所に配置されることが可能である。その上、図１は、特定の数のクライアント・システム１３０、ソーシャル・ネットワーキング・システム１６０、サードパーティ・システム１７０、およびネットワーク１１０を示しているが、本開示は、任意の適切な数のクライアント・システム１３０、ソーシャル・ネットワーキング・システム１６０、サードパーティ・システム１７０、およびネットワーク１１０を想定している。限定ではなく、例として、ネットワーク環境１００は、複数のクライアント・システム１３０、ソーシャル・ネットワーキング・システム１６０、サードパーティ・システム１７０、およびネットワーク１１０を含むことができる。
【００１１】
本開示は、任意の適切なネットワーク１１０を想定している。限定ではなく、例として、ネットワーク１１０の１つまたは複数の部分は、アド・ホック・ネットワーク、イントラネット、エクストラネット、仮想プライベート・ネットワーク（ＶＰＮ）、ローカル・
エリア・ネットワーク（ＬＡＮ）、ワイヤレスＬＡＮ（ＷＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、ワイヤレスＷＡＮ（ＷＷＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、インターネットの一部分、公衆交換電話網（ＰＳＴＮ）の一部分、セルラー電話ネットワーク、またはこれらのうちの複数の組合せを含むことができる。ネットワーク１１０は、１つまたは複数のネットワーク１１０を含むことができる。
【００１２】
リンク１５０は、クライアント・システム１３０、ソーシャル・ネットワーキング・システム１６０、およびサードパーティ・システム１７０を通信ネットワーク１１０に、または互いに接続することができる。本開示は、任意の適切なリンク１５０を想定している。特定の実施形態においては、１つまたは複数のリンク１５０は、１つもしくは複数の有線リンク（たとえば、デジタル・サブスクライバ・ライン（ＤＳＬ）もしくはデータ・オーバ・ケーブル・サービス・インタフェース仕様（ＤＯＣＳＩＳ）など）、ワイヤレス・リンク（たとえば、Ｗｉ−Ｆｉもしくはワールドワイド・インターオペラビリティー・フォー・マイクロウェーブ・アクセス（ＷｉＭＡＸ）など）、または光リンク（たとえば、同期光ネットワーク（ＳＯＮＥＴ）もしくは同期デジタル階層（ＳＤＨ）など）を含む。特定の実施形態においては、１つまたは複数のリンク１５０はそれぞれ、アド・ホック・ネットワーク、イントラネット、エクストラネット、ＶＰＮ、ＬＡＮ、ＷＬＡＮ、ＷＡＮ、ＷＷＡＮ、ＭＡＮ、インターネットの一部分、ＰＳＴＮの一部分、セルラー・テクノロジーベースのネットワーク、衛星通信テクノロジーベースのネットワーク、別のリンク１５０、または複数のそのようなリンク１５０の組合せを含む。リンク１５０は、ネットワーク環境１００の全体を通じて必ずしも同じである必要はない。１つまたは複数の第１のリンク１５０は、１つまたは複数の点において１つまたは複数の第２のリンク１５０とは異なることが可能である。
【００１３】
特定の実施形態においては、クライアント・システム１３０は、クライアント・システム１３０によって実装またはサポートされる適切な機能を実行することができる、ハードウェア、ソフトウェア、もしくは組み込みロジック・コンポーネント、または複数のそのようなコンポーネントの組合せを含む電子デバイスであることが可能である。限定ではなく、例として、クライアント・システム１３０は、デスクトップ・コンピュータ、ノートブック・コンピュータもしくはラップトップ・コンピュータ、ネットブック、タブレット・コンピュータなどのコンピュータ・システム、ｅブック・リーダ、ＧＰＳデバイス、カメラ、携帯情報端末（ＰＤＡ）、ハンドヘルド電子デバイス、セルラー電話、スマートフォン、その他の適切な電子デバイス、またはそれらの任意の適切な組合せを含むことができる。本開示は、任意の適切なクライアント・システム１３０を想定している。クライアント・システム１３０は、クライアント・システム１３０のネットワーク・ユーザがネットワーク１１０にアクセスすることを可能にすることができる。クライアント・システム１３０は、自分のユーザがその他のクライアント・システム１３０のその他のユーザと通信することを可能にすることができる。
【００１４】
特定の実施形態においては、クライアント１３０は、ＭＩＣＲＯＳＯＦＴ  ＩＮＴＥＲＮＥＴ  ＥＸＰＬＯＲＥＲ、ＧＯＯＧＬＥ  ＣＨＲＯＭＥ、またはＭＯＺＩＬＬＡ  ＦＩＲＥＦＯＸなどのウェブ・ブラウザ１３２を含むことができ、１つまたは複数のアドオン、プラグイン、またはＴＯＯＬＢＡＲもしくはＹＡＨＯＯ  ＴＯＯＬＢＡＲなどのその他の拡張を有することができる。クライアント・システム１３０のユーザは、ウェブ・ブラウザ１３２を特定のサーバ（サーバ１６２、またはサードパーティ・システム１７０に関連付けられているサーバなど）へ導くユニフォーム・リソース・ロケータ（ＵＲＬ）またはその他のアドレスを入力することができ、ウェブ・ブラウザ１３２は、ハイパー・テキスト転送プロトコル（ＨＴＴＰ）要求を生成して、そのＨＴＴＰ要求をサーバに通信することができる。サーバは、そのＨＴＴＰ要求を受け入れて、そのＨＴＴＰ要求に応答して１つまたは複数のハイパー・テキスト・マークアップ言語（ＨＴＭＬ）ファイルをクライ
アント・システム１３０に通信することができる。クライアント・システム１３０は、ユーザに提示するためにサーバからのＨＴＭＬファイルに基づいてウェブページをレンダリングすることができる。本開示は、任意の適切なウェブページ・ファイルを想定している。限定ではなく、例として、ウェブページは、特定のニーズに従って、ＨＴＭＬファイル、拡張可能ハイパー・テキスト・マークアップ言語（ＸＨＴＭＬ）ファイル、または拡張可能マークアップ言語（ＸＭＬ）ファイルからレンダリングすることができる。そのようなページは、限定ではなく、例として、ＪＡＶＡＳＣＲＩＰＴ（登録商標）、ＪＡＶＡ（登録商標）、ＭＩＣＲＯＳＯＦＴ  ＳＩＬＶＥＲＬＩＧＨＴで書かれたスクリプトなどのスクリプト、ＡＪＡＸ（Ａｓｙｎｃｈｒｏｎｏｕｓ  ＪＡＶＡＳＣＲＩＰＴ（登録商標）ａｎｄ  ＸＭＬ）などのマークアップ言語とスクリプトの組合せなどを実行することもできる。本明細書においては、ウェブページへの参照は、適切な場合には、（そのウェブページをレンダリングするためにブラウザが使用することができる）１つまたは複数の対応するウェブページ・ファイルを含み、その逆もまた同様である。
【００１５】
特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０は、オンライン・ソーシャル・ネットワークをホストすることができるネットワークアドレス可能なコンピューティング・システムであることが可能である。ソーシャル・ネットワーキング・システム１６０は、たとえば、ユーザプロフィール・データ、コンセプトプロフィール・データ、ソーシャル・グラフ情報、またはオンライン・ソーシャル・ネットワークに関連したその他の適切なデータなどのソーシャルネットワーキング・データを生成すること、格納すること、受け取ること、および送信することが可能である。ソーシャル・ネットワーキング・システム１６０は、ネットワーク環境１００のその他のコンポーネントによって直接、またはネットワーク１１０を通じてアクセスされることが可能である。特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０は、１つまたは複数のサーバ１６２を含むことができる。それぞれのサーバ１６２は、単一のサーバ、または複数のコンピュータもしくは複数のデータセンターにわたる分散サーバであることが可能である。サーバ１６２は、限定ではなく、例として、ウェブ・サーバ、ニュース・サーバ、メール・サーバ、メッセージ・サーバ、広告サーバ、ファイル・サーバ、アプリケーション・サーバ、Ｅｘｃｈａｎｇｅサーバ、データベース・サーバ、プロキシ・サーバ、本明細書において記述されている機能もしくはプロセスを実行するのに適している別のサーバ、またはそれらの任意の組合せなど、さまざまなタイプのものであることが可能である。特定の実施形態においては、それぞれのサーバ１６２は、サーバ１６２によって実装またはサポートされる適切な機能を実行するためのハードウェア、ソフトウェア、もしくは組み込みロジック・コンポーネント、または複数のそのようなコンポーネントの組合せを含むことができる。特定の実施形態においては、ソーシャル・ネットワーキング・システム１６４は、１つまたは複数のデータ・ストア１６４を含むことができる。データ・ストア１６４は、さまざまなタイプの情報を格納するために使用されることが可能である。特定の実施形態においては、データ・ストア１６４内に格納されている情報は、特定のデータ構造に従って編成されることが可能である。特定の実施形態においては、それぞれのデータ・ストア１６４は、リレーショナル・データベースであることが可能である。特定の実施形態は、クライアント・システム１３０、ソーシャル・ネットワーキング・システム１６０、またはサードパーティ・システム１７０が、データ・ストア１６４内に格納されている情報を管理すること、取り出すこと、修正すること、追加すること、または削除することを可能にするインタフェースを提供することができる。
【００１６】
特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０は、１つまたは複数のソーシャル・グラフを１つまたは複数のデータ・ストア１６４内に格納することができる。特定の実施形態においては、ソーシャル・グラフは、複数のノード（複数のユーザ・ノード（それぞれが、特定のユーザに対応している）、または複数のコンセプト・ノード（それぞれが、特定のコンセプトに対応している）を含むことができる）と、
ノード同士をつなげる複数のエッジとを含むことができる。ソーシャル・ネットワーキング・システム１６０は、オンライン・ソーシャル・ネットワークのユーザに、その他のユーザと通信および対話する能力を提供することができる。特定の実施形態においては、ユーザたちは、ソーシャル・ネットワーキング・システム１６０を通じてオンライン・ソーシャル・ネットワークに参加し、次いで、自分たちがつながりたいと望むソーシャル・ネットワーキング・システム１６０のその他の複数のユーザにつながり（すなわち、関係）を付加することができる。本明細書においては、「友達」という用語は、ユーザがソーシャル・ネットワーキング・システム１６０を通じて、つながり、関連付け、または関係を形成しているソーシャル・ネットワーキング・システム１６０のその他の任意のユーザを示すことができる。
【００１７】
特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０は、ソーシャル・ネットワーキング・システム１６０によってサポートされるさまざまなタイプのアイテムまたはオブジェクトに関してアクションを取る能力をユーザに提供することができる。限定ではなく、例として、それらのアイテムおよびオブジェクトは、ソーシャル・ネットワーキング・システム１６０のユーザが属することが可能であるグループもしくはソーシャル・ネットワーク、ユーザが関心を抱く可能性があるイベントもしくはカレンダー・エントリー、ユーザが使用することができるコンピュータベースのアプリケーション、ユーザがサービスを通じてアイテムを購入もしくは販売することを可能にするトランザクション、ユーザが実行することができる広告との対話、またはその他の適切なアイテムもしくはオブジェクトを含むことができる。ユーザは、ソーシャル・ネットワーキング・システム１６０において、またはサードパーティ・システム１７０の外部システム（ソーシャル・ネットワーキング・システム１６０とは別個のものであって、ネットワーク１１０を通じてソーシャル・ネットワーキング・システム１６０に結合されている）によって表されることが可能である任意のものと対話することができる。
【００１８】
特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０は、さまざまなエンティティ同士をリンクできることが可能である。限定ではなく、例として、ソーシャル・ネットワーキング・システム１６０は、ユーザたちが互いに対話すること、ならびにサードパーティ・システム１７０もしくはその他のエンティティからのコンテンツを受け取ることを可能にすることができ、またはユーザたちがアプリケーション・プログラミング・インタフェース（ＡＰＩ）もしくはその他の通信チャネルを通じてこれらのエンティティと対話することを可能にすることができる。
【００１９】
特定の実施形態においては、サードパーティ・システム１７０は、１つもしくは複数のタイプのサーバ、１つもしくは複数のデータ・ストア、１つもしくは複数のインタフェース（ＡＰＩを含むが、それには限定されない）、１つもしくは複数のウェブ・サービス、１つもしくは複数のコンテンツ・ソース、１つもしくは複数のネットワーク、または（たとえば、サーバが通信することができる）その他の任意の適切なコンポーネントを含むことができる。サードパーティ・システム１７０は、ソーシャル・ネットワーキング・システム１６０を運営しているエンティティとは異なるエンティティによって運営されることが可能である。しかしながら、特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０およびサードパーティ・システム１７０は、ソーシャル・ネットワーキング・システム１６０またはサードパーティ・システム１７０のユーザにソーシャルネットワーキング・サービスを提供するために互いに連携して機能することができる。この意味において、ソーシャル・ネットワーキング・システム１６０は、サードパーティ・システム１７０などのその他のシステムがインターネットを通じてソーシャルネットワーキング・サービスおよび機能をユーザに提供するために使用することができるプラットフォーム、またはバックボーンを提供することができる。
【００２０】
特定の実施形態においては、サードパーティ・システム１７０は、サードパーティ・コンテンツ・オブジェクト・プロバイダを含むことができる。サードパーティ・コンテンツ・オブジェクト・プロバイダは、コンテンツ・オブジェクトの１つまたは複数のソースを含むことができ、それらのソースは、クライアント・システム１３０に通信されることが可能である。限定ではなく、例として、コンテンツ・オブジェクトは、ユーザにとって関心がある物またはアクティビティに関する情報、たとえば、映画の開始時刻、映画のレビュー、レストランのレビュー、レストランのメニュー、製品の情報およびレビュー、またはその他の適切な情報などを含むことができる。限定ではなく、別の例として、コンテンツ・オブジェクトは、インセンティブ・コンテンツ・オブジェクト、たとえば、クーポン、ディスカウント・チケット、ギフト券、またはその他の適切なインセンティブ・オブジェクトを含むことができる。
【００２１】
特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０はまた、ユーザによって生成されたコンテンツ・オブジェクトを含み、それらのコンテンツ・オブジェクトは、ソーシャル・ネットワーキング・システム１６０とのユーザの対話を高めることができる。ユーザによって生成されたコンテンツは、ユーザがソーシャル・ネットワーキング・システム１６０に付加、アップロード、送信、または「ポスト」することができる任意のものを含むことができる。限定ではなく、例として、ユーザは、クライアント・システム１３０からソーシャル・ネットワーキング・システム１６０へポストを通信する。ポストは、ステータス更新もしくはその他のテキスト・データ、ロケーション情報、写真、映像、リンク、音楽、またはその他の類似したデータもしくはメディアなどのデータを含むことができる。コンテンツは、ニュース・フィードまたはストリームなどの「通信チャネル」を通じてサードパーティによってソーシャル・ネットワーキング・システム１６０に付加されることも可能である。
【００２２】
特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０は、さまざまなサーバ、サブシステム、プログラム、モジュール、ログ、およびデータ・ストアを含むことができる。特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０は、ウェブ・サーバ、アクション・ロガー、ＡＰＩ要求サーバ、関連性およびランキング・エンジン、コンテンツ・オブジェクト分類子、通知コントローラ、アクション・ログ、サードパーティ・コンテンツ・オブジェクト露出ログ、推測モジュール、認可／プライバシー・サーバ、検索モジュール、広告ターゲティング・モジュール、ユーザインタフェース・モジュール、ユーザプロフィール・ストア、つながりストア、サードパーティ・コンテンツ・ストア、またはロケーション・ストアのうちの１つまたは複数を含むことができる。ソーシャル・ネットワーキング・システム１６０は、適切なコンポーネント、たとえば、ネットワーク・インタフェース、セキュリティー・メカニズム、ロード・バランサ、フェイルオーバ・サーバ、管理およびネットワークオペレーション・コンソール、その他の適切なコンポーネント、またはそれらの任意の適切な組合せを含むこともできる。特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０は、ユーザ・プロフィールを格納するための１つまたは複数のユーザプロフィール・ストアを含むことができる。ユーザ・プロフィールは、たとえば、経歴情報、人口統計学的情報、挙動情報、ソーシャルな情報、またはその他のタイプの記述的情報、たとえば、職業経験、学歴、趣味もしくは好み、関心、親近感、またはロケーションを含むことができる。関心情報は、１つまたは複数のカテゴリに関連した関心を含むことができる。カテゴリは、一般的または具体的であることが可能である。限定ではなく、例として、ユーザが、あるブランドの靴に関する記事に対して「いいね！」の表明をした場合には、カテゴリは、そのブランド、または「靴」もしくは「衣類」という一般的なカテゴリであることが可能である。ユーザに関するつながり情報を格納するために、つながりストアが使用されることが可能である。つながり情報は、類似のもしくは共通の職業経験、グループ・メンバーシップ、趣味、学歴を有しているか、または何らかの形で関連しているか、もしくは共通の属
性を共有しているユーザ同士を示すことができる。つながり情報は、さまざまなユーザおよびコンテンツ（内部および外部の両方）の間におけるユーザ定義のつながりを含むこともできる。ネットワーク１１０を通じてソーシャル・ネットワーキング・システム１６０を１つもしくは複数のクライアント・システム１３０または１つもしくは複数のサードパーティ・システム１７０にリンクさせるために、ウェブ・サーバが使用されることが可能である。ウェブ・サーバは、ソーシャル・ネットワーキング・システム１６０と、１つまたは複数のクライアント・システム１３０との間においてメッセージを受け取って回送するためにメール・サーバまたはその他のメッセージング機能を含むことができる。ＡＰＩ要求サーバは、サードパーティ・システム１７０が、１つまたは複数のＡＰＩを呼び出すことによってソーシャル・ネットワーキング・システム１６０からの情報にアクセスすることを可能にすることができる。ソーシャル・ネットワーキング・システム１６０の上のまたは外のユーザのアクションに関してウェブ・サーバから通信を受け取るために、アクション・ロガーが使用されることが可能である。アクション・ログとともに、サードパーティコンテンツ・オブジェクトへのユーザの露出についてのサードパーティコンテンツオブジェクト・ログが保持されることが可能である。通知コントローラは、コンテンツ・オブジェクトに関する情報をクライアント・システム１３０に提供することができる。情報は、通知としてクライアント・システム１３０へ押し出されることが可能であり、または情報は、クライアント・システム１３０から受け取られた要求に応答してクライアント・システム１３０から引き出されることが可能である。ソーシャル・ネットワーキング・システム１６０のユーザの１つまたは複数のプライバシー設定を実施するために、認可サーバが使用されることが可能である。ユーザのプライバシー設定は、ユーザに関連付けられている特定の情報がどのように共有されることが可能であるかを特定する。認可サーバは、ユーザが、たとえば、適切なプライバシー設定を設定することなどによって、自分のアクションをソーシャル・ネットワーキング・システム１６０によって記録されること、またはその他のシステム（たとえば、サードパーティ・システム１７０）と共有されることのオプトインまたはオプトアウトを行うことを可能にすることができる。サードパーティ・システム１７０などのサードパーティから受け取られたコンテンツ・オブジェクトを格納するために、サードパーティコンテンツオブジェクト・ストアが使用されることが可能である。ユーザに関連付けられているクライアント・システム１３０から受け取られたロケーション情報を格納するために、ロケーション・ストアが使用されることが可能である。広告価格設定モジュールが、ソーシャルな情報、現在時刻、ロケーション情報、またはその他の適切な情報を組み合わせて、関連がある広告を、通知の形式でユーザに提供することができる。
【００２３】
ソーシャル・グラフ
図２は、例示的なソーシャル・グラフ２００を示している。特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０は、１つまたは複数のソーシャル・グラフ２００を１つまたは複数のデータ・ストア内に格納することができる。特定の実施形態においては、ソーシャル・グラフ２００は、複数のノード（複数のユーザ・ノード２０２、または複数のコンセプト・ノード２０４を含むことができる）と、ノード同士をつなげる複数のエッジ２０６とを含むことができる。図２において示されている例示的なソーシャル・グラフ２００は、教示上の目的から、２次元のビジュアル・マップ表示で示されている。特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０、クライアント・システム１３０、またはサードパーティ・システム１７０は、適切なアプリケーションに関してソーシャル・グラフ２００および関連したソーシャル・グラフ情報にアクセスすることができる。ソーシャル・グラフ２００のノードおよびエッジは、データ・オブジェクトとして、たとえば（ソーシャル・グラフ・データベースなどの）データ・ストア内に格納されることが可能である。そのようなデータ・ストアは、ソーシャル・グラフ２００のノードまたはエッジの１つまたは複数の検索可能なまたはクエリ可能なインデックスを含むことができる。
【００２４】
特定の実施形態においては、ユーザ・ノード２０２は、ソーシャル・ネットワーキング・システム１６０のユーザに対応することができる。限定ではなく、例として、ユーザは、ソーシャル・ネットワーキング・システム１６０と、またはソーシャル・ネットワーキング・システム１６０を通じて対話または通信する個人（人間のユーザ）、エンティティ（たとえば、企業、ビジネス、もしくはサードパーティ・アプリケーション）、または（たとえば、個人もしくはエンティティの）グループであることが可能である。特定の実施形態においては、あるユーザがソーシャル・ネットワーキング・システム１６０とのアカウントに登録した場合には、ソーシャル・ネットワーキング・システム１６０は、そのユーザに対応するユーザ・ノード２０２を作成し、そのユーザ・ノード２０２を１つまたは複数のデータ・ストア内に格納することができる。本明細書において記述されているユーザおよびユーザ・ノード２０２は、適切な場合には、登録されているユーザ、および登録されているユーザに関連付けられているユーザ・ノード２０２を示すことができる。追加として、または代替として、本明細書において記述されているユーザおよびユーザ・ノード２０２は、適切な場合には、ソーシャル・ネットワーキング・システム１６０に登録されていないユーザを示すことができる。特定の実施形態においては、ユーザ・ノード２０２は、ユーザによって提供された情報、またはソーシャル・ネットワーキング・システム１６０を含むさまざまなシステムによって収集された情報に関連付けられることが可能である。限定ではなく、例として、ユーザは、自分の名前、プロフィール画像、連絡先情報、生年月日、性別、婚姻状況、家族状況、勤務先、学歴、好み、関心、またはその他の人口統計学的情報を提供することができる。特定の実施形態においては、ユーザ・ノード２０２は、ユーザに関連付けられている情報に対応する１つまたは複数のデータ・オブジェクトに関連付けられることが可能である。特定の実施形態においては、ユーザ・ノード２０２は、１つまたは複数のウェブページに対応することができる。
【００２５】
特定の実施形態においては、コンセプト・ノード２０４は、コンセプトに対応することができる。限定ではなく、例として、コンセプトは、場所（たとえば、映画館、レストラン、ランドマーク、もしくは都市など）、ウェブサイト（たとえば、ソーシャルネットワーク・システム１６０に関連付けられているウェブサイト、もしくはウェブアプリケーション・サーバに関連付けられているサードパーティ・ウェブサイトなど）、エンティティ（たとえば、人、企業、グループ、スポーツ・チーム、もしくは有名人など）、ソーシャル・ネットワーキング・システム１６０内に、もしくはウェブアプリケーション・サーバなどの外部サーバ上に配置されることが可能であるリソース（たとえば、オーディオ・ファイル、営業ファイル、デジタル写真、テキスト・ファイル、構造化されたドキュメント、もしくはアプリケーションなど）、物的もしくは知的財産（たとえば、彫塑、絵画、映画、ゲーム、曲、アイディア、写真、もしくは執筆作品など）、ゲーム、アクティビティ、アイディアもしくは理論、別の適切なコンセプト、または複数のそのようなコンセプトに対応することができる。コンセプト・ノード２０４は、ユーザによって提供されたコンセプトの情報、またはソーシャル・ネットワーキング・システム１６０を含むさまざまなシステムによって収集された情報に関連付けられることが可能である。限定ではなく、例として、コンセプトの情報は、名前もしくはタイトル、１つもしくは複数のイメージ（たとえば、本の表紙のイメージ）、ロケーション（たとえば、住所もしくは地理的ロケーション）、（ＵＲＬに関連付けられることが可能である）ウェブサイト、連絡先情報（たとえば、電話番号もしくはＥメール・アドレス）、その他の適切なコンセプト情報、またはそのような情報の任意の適切な組合せを含むことができる。特定の実施形態においては、コンセプト・ノード２０４は、コンセプト・ノード２０４に関連付けられている情報に対応する１つまたは複数のデータ・オブジェクトに関連付けられることが可能である。特定の実施形態においては、コンセプト・ノード２０４は、１つまたは複数のウェブページに対応することができる。
【００２６】
特定の実施形態においては、ソーシャル・グラフ２００内のノードは、ウェブページ（「プロフィール・ページ」と呼ばれる場合もある）を表すこと、またはウェブページによって表されることが可能である。プロフィール・ページは、ソーシャル・ネットワーキング・システム１６０によってホストされること、またはソーシャル・ネットワーキング・システム１６０にとってアクセス可能であることが可能である。プロフィール・ページは、サードパーティ・サーバ１７０に関連付けられているサードパーティ・ウェブサイト上にホストされることも可能である。限定ではなく、例として、特定の外部ウェブページに対応するプロフィール・ページは、その特定の外部ウェブページであることが可能であり、そのプロフィール・ページは、特定のコンセプト・ノード２０４に対応することができる。プロフィール・ページは、その他のユーザのうちのすべてまたは選択されたサブセットによって閲覧できることが可能である。限定ではなく、例として、ユーザ・ノード２０２は、対応するユーザ・プロフィール・ページを有することができ、そのユーザ・プロフィール・ページにおいては、対応するユーザが、コンテンツを付加すること、言明を行うこと、またはその他の形で自分自身を表現することが可能である。限定ではなく、別の例として、コンセプト・ノード２０４は、対応するコンセプトプロフィール・ページを有することができ、そのコンセプトプロフィール・ページにおいては、１人または複数のユーザが、特にコンセプト・ノード２０４に対応するコンセプトに関連して、コンテンツを付加すること、言明を行うこと、または自分自身を表現することが可能である。
【００２７】
特定の実施形態においては、コンセプト・ノード２０４は、サードパーティ・システム１７０によってホストされているサードパーティ・ウェブページまたはリソースを表すことができる。サードパーティ・ウェブページまたはリソースは、数ある要素の中でも、コンテンツ、選択可能なもしくはその他のアイコン、または、アクションもしくはアクティビティを表す（たとえば、ＪＡＶＡＳＣＲＩＰＴ（登録商標）、ＡＪＡＸ、もしくはＰＨＰコードで実装されることが可能である）その他の対話可能なオブジェクトを含むことができる。限定ではなく、例として、サードパーティ・ウェブページは、「いいね！」、「チェックイン」、「食べる」、「推奨する」、または別の適切なアクションもしくはアクティビティなどの選択可能なアイコンを含むことができる。サードパーティ・ウェブページを閲覧しているユーザは、それらのアイコンのうちの１つ（たとえば、「食べる」）を選択することによってアクションを実行して、クライアント・システム１３０に、そのユーザのアクションを示すメッセージをソーシャル・ネットワーキング・システム１６０へ送信させることができる。そのメッセージに応答して、ソーシャル・ネットワーキング・システム１６０は、ユーザに対応するユーザ・ノード２０２と、サードパーティ・ウェブページまたはリソースに対応するコンセプト・ノード２０４との間においてエッジ（たとえば、「食べる」エッジ）を作成して、エッジ２０６を１つまたは複数のデータ・ストア内に格納することができる。
【００２８】
特定の実施形態においては、ソーシャル・グラフ２００内の１対のノードが、１つまたは複数のエッジ２０６によって互いにつながることが可能である。１対のノードをつなげるエッジ２０６は、それらの１対のノードの間における関係を表すことができる。特定の実施形態においては、エッジ２０６は、１対のノードの間における関係に対応する１つまたは複数のデータ・オブジェクトまたは属性を含むことまたは表すことが可能である。限定ではなく、例として、第１のユーザは、第２のユーザが第１のユーザの「友達」であるということを示すことができる。この表示に応答して、ソーシャル・ネットワーキング・システム１６０は、「友達要求」を第２のユーザに送信することができる。第２のユーザがその「友達要求」を承認した場合には、ソーシャル・ネットワーキング・システム１６０は、ソーシャル・グラフ２００内で第１のユーザのユーザ・ノード２０２を第２のユーザのユーザ・ノード２０２につなげるエッジ２０６を作成して、エッジ２０６をソーシャル・グラフ情報としてデータ・ストア２４のうちの１つまたは複数の中に格納することができる。図２の例においては、ソーシャル・グラフ２００は、ユーザ「Ａ」のユーザ・ノ
ード２０２と、ユーザ「Ｂ」のユーザ・ノード２０２との間における友達関係を示すエッジ２０６と、ユーザ「Ｃ」のユーザ・ノード２０２と、ユーザ「Ｂ」のユーザ・ノード２０２との間における友達関係を示すエッジとを含む。本開示は、特定のユーザ・ノード２０２同士をつなげる特定の属性を伴う特定のエッジ２０６を記述している、または示しているが、本開示は、ユーザ・ノード２０２同士をつなげる任意の適切な属性を伴う任意の適切なエッジ２０６を想定している。限定ではなく、例として、エッジ２０６は、友達関係、家族関係、ビジネスもしくは雇用関係、ファン関係、フォロワー関係、ビジター関係、サブスクライバ関係、上下関係、互恵的関係、非互恵的関係、別の適切なタイプの関係、または複数のそのような関係を表すことができる。その上、本開示は一般に、ノード同士をつながっているものとして記述しているが、本開示はまた、ユーザ同士またはコンセプト同士をつながっているものとして記述している。本明細書においては、つながっているユーザ同士またはコンセプト同士への言及は、適切な場合には、１つまたは複数のエッジ２０６によってソーシャル・グラフ２００内でつながっているそれらのユーザ同士またはコンセプト同士に対応するノード同士を示すことができる。
【００２９】
特定の実施形態においては、ユーザ・ノード２０２とコンセプト・ノード２０４との間におけるエッジ２０６は、ユーザ・ノード２０２に関連付けられているユーザによって、コンセプト・ノード２０４に関連付けられているコンセプトに対して実行された特定のアクションまたはアクティビティを表すことができる。限定ではなく、例として、図２において示されているように、ユーザは、コンセプトに対して「いいね！を表明すること」、「通うこと」、「プレイすること」、「聴くこと」、「料理すること」、「勤務すること」、または「観ること」を行った可能性があり、それらのそれぞれは、エッジ・タイプまたはサブタイプに対応することができる。コンセプト・ノード２０４に対応するコンセプトプロフィール・ページは、たとえば、選択可能な「チェックイン」アイコン（たとえば、クリック可能な「チェックイン」アイコンなど）、または選択可能な「お気に入りに追加」アイコンを含むことができる。同様に、ユーザがこれらのアイコンをクリックした後に、ソーシャル・ネットワーキング・システム１６０は、それぞれのアクションに対応するユーザのアクションに応答して「お気に入り」エッジまたは「チェックイン」エッジを作成することができる。限定ではなく、別の例として、あるユーザ（ユーザ「Ｃ」）が、特定のアプリケーション（オンライン音楽アプリケーションであるＳＰＯＴＩＦＹ）を使用して特定の曲（「イマジン」）を聴く場合がある。このケースにおいては、ソーシャル・ネットワーキング・システム１６０は、そのユーザに対応するユーザ・ノード２０２と、その曲およびアプリケーションに対応するコンセプト・ノード２０４との間において、（図２に示されているような）「聴いた」エッジ２０６および「使用した」エッジを作成して、そのユーザがその曲を聴いてそのアプリケーションを使用したということを示すことができる。その上、ソーシャル・ネットワーキング・システム１６０は、その曲に対応するコンセプト・ノード２０４と、そのアプリケーションに対応するコンセプト・ノード２０４との間において、（図２に示されているような）「再生した」エッジ２０６を作成して、その特定の曲がその特定のアプリケーションによって再生されたということを示すことができる。このケースにおいては、「再生した」エッジ２０６は、外部アプリケーション（ＳＰＯＴＩＦＹ）によって外部オーディオ・ファイル（「イマジン」という曲）に関して実行されたアクションに対応する。本開示は、ユーザ・ノード２０２とコンセプト・ノード２０４とをつなげる特定の属性を伴う特定のエッジ２０６について記述しているが、本開示は、ユーザ・ノード２０２とコンセプト・ノード２０４とをつなげる任意の適切な属性を伴う任意の適切なエッジ２０６を想定している。その上、本開示は、単一の関係を表すユーザ・ノード２０２とコンセプト・ノード２０４との間におけるエッジについて記述しているが、本開示は、１つまたは複数の関係を表すユーザ・ノード２０２とコンセプト・ノード２０４との間におけるエッジを想定している。限定ではなく、例として、エッジ２０６は、ユーザが特定のコンセプトに対して「いいね！」の表明をしているということ、およびその特定のコンセプトを使用したということの両方を表すことができる。
あるいは、別のエッジ２０６は、（図２において、ユーザ「Ｅ」を表すユーザ・ノード２０２と、「ＳＰＯＴＩＦＹ」を表すコンセプト・ノード２０４との間において示されているような）ユーザ・ノード２０２とコンセプト・ノード２０４との間におけるそれぞれのタイプの関係（または、単一の関係が複数集まったもの）を表すことができる。
【００３０】
特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０は、ソーシャル・グラフ２００内でユーザ・ノード２０２とコンセプト・ノード２０４との間においてエッジ２０６を作成することができる。限定ではなく、例として、（たとえば、ユーザのクライアント・システム１３０によってホストされているウェブ・ブラウザまたは専用のアプリケーションを使用することなどによって）コンセプトプロフィール・ページを閲覧しているユーザは、「いいね！」アイコンをクリックまたは選択することにより、コンセプト・ノード２０４によって表されているコンセプトを自分が気に入っているということを示すことができ、その「いいね！」アイコンをクリックまたは選択することは、ユーザのクライアント・システム１３０に、そのコンセプトプロフィール・ページに関連付けられているそのコンセプトをそのユーザが気に入っているということを示すメッセージをソーシャル・ネットワーキング・システム１６０へ送信させることができる。そのメッセージに応答して、ソーシャル・ネットワーキング・システム１６０は、そのユーザとコンセプト・ノード２０４との間における「いいね！」エッジ２０６によって示されているように、そのユーザに関連付けられているユーザ・ノード２０２とコンセプト・ノード２０４との間においてエッジ２０６を作成することができる。特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０は、エッジ２０６を１つまたは複数のデータ・ストア内に格納することができる。特定の実施形態においては、エッジ２０６は、特定のユーザ・アクションに応答してソーシャル・ネットワーキング・システム１６０によって自動的に形成されることが可能である。限定ではなく、例として、第１のユーザが、画像をアップロードすること、映画を観ること、または曲を聴くことを行った場合には、エッジ２０６は、第１のユーザに対応するユーザ・ノード２０２と、それらのコンセプトに対応するコンセプト・ノード２０４との間において形成されることが可能である。本開示は、特定の様式で特定のエッジ２０６を形成することについて記述しているが、本開示は、任意の適切な様式で任意の適切なエッジ２０６を形成することを想定している。
【００３１】
オブジェクト・タイプに基づくインデックス付け
図３は、ソーシャル・ネットワーキング・システム１６０のオブジェクトを記憶するための例示的なパーティショニングを示す。複数のデータ・ストア１６４（これは「バーティカル」とも呼ばれ得る）は、ソーシャル・ネットワーキング・システム１６０のオブジェクトを記憶し得る。データ・ストアにおいて記憶されるデータ（例えば、ソーシャル・グラフ２００についてのデータ）の量は、非常に大きくなり得る。限定ではなく、例として、米国カリフォルニア州メンロー・パークのフェースブック（登録商標）・インコーポレイティッド社によって使用されるソーシャル・グラフは、１０８のオーダーの多数のノードと１０１０のオーダーの多数のエッジとを有し得る。典型的には、ビッグデータベースなどのビッグデータの集合は、多数のパーティションに分割され得る。データベースの各パーティションについてのインデックスは、データベース全体についてのインデックスよりも小さいため、パーティショニングは、データベースにアクセスする際のパフォーマンスを改善し得る。パーティションは、多くのサーバにわたって分散され得るため、パーティショニングは、データベースにアクセスする際のパフォーマンスおよび信頼性も改善し得る。通常は、データベースは、データベースの行（または列）を別個に記憶することによってパーティショニングされ得る。特定の実施形態において、データベースは、オブジェクト・タイプに基づいてパーティショニングされ得る。データ・オブジェクトは、複数のパーティションにおいて記憶され、各パーティションは、単一のオブジェクト・タイプのデータ・オブジェクトを保持する。特定の実施形態において、ソーシャル・ネットワーキング・システム１６０は、期待される検索クエリの結果と同じオブジェクト・タイプ
のオブジェクトを記憶する特定のパーティションへ検索クエリを提出することによって、検索クエリに応答する検索結果を取り出し得る。本開示は、オブジェクトを特定の方法で記憶することを説明するが、本開示は、オブジェクトを任意の適切な方法で記憶することも企図する。
【００３２】
特定の実施形態において、各オブジェクトは、ソーシャル・グラフ２００の特定のノードに対応し得る。特定のノードと別のノードとをつないでいるエッジ２０６は、これらのノードに対応するオブジェクト間の関係を示し得る。オブジェクトを記憶することに加えて、特定のデータ・ストアは、オブジェクトに関係するソーシャル・グラフ情報も記憶し得る。代替的に、特定のオブジェクトに関するソーシャル・グラフ情報は、オブジェクトとは異なるデータ・ストアに記憶されてもよい。ソーシャル・ネットワーキング・システム１６０は、新たに受信されるオブジェクトと、受信されるオブジェクトに関連付けられている関係とに基づいて、データ・ストアの検索インデックスを更新し得る。
【００３３】
特定の実施形態において、各データ・ストア１６４は、複数のオブジェクト・タイプのうちの特定の１つのオブジェクトをそれぞれのデータストレージデバイス３４０に記憶するように構成され得る。オブジェクト・タイプは、例えば、ユーザ、写真、投稿、コメント、メッセージ、イベント・リスト、ウェブページ、アプリケーション、ユーザ・プロフィール・ページ、コンセプトプロフィール・ページ、ユーザ・グループ、オーディオ・ファイル、映像、オファー／クーポン、または別の適切なタイプのオブジェクトであってもよい。本開示は、特定のタイプのオブジェクトを説明するが、本開示は、任意の適切なタイプのオブジェクトも企図する。限定ではなく、例として、図３において示されるユーザ・バーティカルＰ１は、ユーザ・オブジェクトを記憶し得る。ユーザ・バーティカルＰ１において記憶される各ユーザ・オブジェクトは、識別子（例えば、文字列）と、ユーザ名と、オンライン・ソーシャル・ネットワークのユーザについてのプロフィール写真とを含み得る。ソーシャル・ネットワーキング・システム１６０は、ユーザ・バーティカルＰ１において、言語、ロケーション、学歴、連絡先情報、興味、交際ステータス、友達／連絡先のリスト、家族のメンバーのリスト、プライバシー設定などのユーザ・オブジェクトに関連付けられている情報も記憶し得る。限定ではなく、例として、図３に示される投稿バーティカルＰ２は、投稿オブジェクトを記憶し得る。投稿バーティカルＰ２において記憶される各投稿オブジェクトは、識別子と、ソーシャル・ネットワーキング・システム１６０に投稿された投稿についてのテキスト文字列とを備え得る。ソーシャル・ネットワーキング・システム１６０は、投稿バーティカルＰ２において、タイム・スタンプ、作成者、プライバシー設定、投稿に「いいね！」の表明をするユーザ、「いいね！」の数、コメント、コメントの数、ロケーションなどの投稿オブジェクトに関連付けられている情報も記憶し得る。限定ではなく、例として、写真バーティカルＰ３は、写真オブジェクト（または、映像もしくはオーディオなどの他のメディア・タイプのオブジェクト）を記憶し得る。写真バーティカルＰ３において記憶される各写真オブジェクトは、識別子と写真とを備え得る。ソーシャル・ネットワーキング・システム１６０は、写真バーティカルＰ３において、タイム・スタンプ、作成者、プライバシー設定、写真においてタグ付けされているユーザ、写真に「いいね！」の表明をするユーザ、コメントなどの写真オブジェクトに関連付けられている情報も記憶し得る。特定の実施形態において、各データ・ストアは、記憶された各オブジェクトに関連付けられている情報をデータストレージデバイス３４０において記憶するようにも構成され得る。
【００３４】
特定の実施形態において、各バーティカル１６４において記憶されるオブジェクトは、１つまたは複数の検索インデックスによってインデックス付けされ得る。検索インデックスは、１つまたは複数のコンピューティング・デバイス（例えば、サーバ）を備えるそれぞれのインデックス・サーバ３３０によってホストされ得る。インデックス・サーバ３３０は、ソーシャル・ネットワーキング・システム１６０（またはサードパーティシステム
）のユーザまたは他のプロセスによってソーシャル・ネットワーキング・システム１６０へ提出されるデータ（例えば、写真および写真に関連付けられている情報）に基づいて、検索インデックスを更新し得る。インデックス・サーバ３３０は、検索インデックスを周期的に（例えば、２４時間ごとに）も更新し得る。インデックス・サーバ３３０は、検索用語を備えるクエリを受信し、その検索用語に対応する１つまたは複数の検索インデックスからの検索結果にアクセスし、その検索結果を取り出す。いくつかの実施形態において、特定のオブジェクト・タイプに対応するバーティカルは、複数の物理的パーティションまたは論理的パーティションを備え、各々がそれぞれの検索インデックスを備える。
【００３５】
特定の実施形態において、ソーシャル・ネットワーキング・システム１６０は、ＰＨＰ（ハイパーテキスト・プリプロセッサ）プロセス３１０から検索クエリを受信し得る。ＰＨＰプロセス３１０は、ソーシャル・ネットワーキング・システム１６０の１つまたは複数のサーバ１６２によってホストされる、１つまたは複数のコンピューティング・プロセスを備え得る。検索クエリは、ソーシャル・ネットワーキング・システム１６０（またはサードパーティシステム１７０）のユーザまたは別のプロセスによってＰＨＰプロセスへ提出されるテキスト文字列または構造化クエリであり得る。
【００３６】
インデックスおよび検索クエリに関するさらなる情報は、２０１２年７月２７日に出願された米国特許出願第１３／５６０２１２号、２０１２年７月２７日に出願された米国特許出願第１３／５６０９０１号、および２０１２年１２月２１日に出願された米国特許出願第１３／７２３８６１号において見出され、これらの出願の各々が、本願明細書に援用される。
【００３７】
タイプアヘッドプロセス
特定の実施形態において、１つまたは複数のクライアント側および／またはバックエンド（サーバ側）プロセスは、ソーシャル・グラフ要素（例えば、ユーザ・ノード２０２、コンセプト・ノード２０４、またはエッジ２０６）と、ソーシャル・ネットワーキング・システム１６０によってホストされ、またはソーシャル・ネットワーキング・システム１６０においてアクセス可能であり得る（例えば、ユーザ・プロフィール・ページ、コンセプトプロフィール・ページ、検索結果ウェブページ、またはオンライン・ソーシャル・ネットワークの別の適切なページなどの）要求されるウェブページと共にレンダリングされる入力フォームにおいてユーザによって現在入力されている情報とのマッチングを行うように自動的に試行し得る「タイプアヘッド（ｔｙｐｅａｈｅａｄ）」機能を実装および利用し得る。特定の実施形態において、ユーザが宣言を行うためにテキストを入力するにつれて、タイプアヘッド機能は、宣言において入力されているテキスト文字の文字列と、ユーザ、コンセプト、またはエッジに対応する文字の文字列（例えば、氏名、説明）およびソーシャル・グラフ２００におけるそれらの対応する要素とを一致させようと試行し得る。特定の実施形態において、一致が見出される場合、タイプアヘッド機能は、既存のソーシャル・グラフ要素の（例えば、ノード名／タイプ、ノードＩＤ、エッジ名／タイプ、エッジＩＤ、または別の適切な参照もしくは識別子などの）ソーシャル・グラフ要素への参照をフォームに自動的に追加し（ｐｏｐｕｌａｔｅ）得る。
【００３８】
特定の実施形態において、ユーザが、ユーザのプロフィール・ページ、ホーム・ページ、または他のページの様々なセクションにおいてコンテンツを追加し、または宣言を行うために使用されるフォーム内にテキストをタイプし、または、そうでなければ入力するにつれて、タイプアヘッドプロセスは、ソーシャル・ネットワーキング・システム１６０において（または内で）（例えば、サーバ１６２内で）実行される１つまたは複数のフロントエンド（クライアント側）および／またはバックエンド（サーバ側）タイプアヘッドプロセス（以下、単に「タイプアヘッドプロセス」と称される）と共に動作して、ユーザがテキストの文字を入力している最中に、ユーザによって入力されるテキストの文字と最も
関連性のある、または最も良く一致すると決定される、既存のソーシャル・グラフ要素の名前に対応する１つもしくは複数の用語、または既存のソーシャル・グラフ要素に関連付けられている用語をフォームに自動追加しようとインタラクティブに、かつ、実質的に瞬時に（ユーザには見えるように）試行し得る。ノードおよびエッジに関連付けられている情報を含む、ソーシャル・グラフ・データベースにおけるソーシャル・グラフ情報またはソーシャル・グラフ・データベースから抽出され、インデックス付けされた情報を利用することにより、タイプアヘッドプロセスは、ソーシャル・グラフ・データベースからの情報と共に、および、潜在的には、様々な他のプロセス、アプリケーション、またはソーシャル・ネットワーキング・システム１６０内に設置され、もしくはソーシャル・ネットワーキング・システム１６０内で実行されるデータベースと共に、ユーザの意図される宣言を高精度で予測することが可能になる。しかしながら、ソーシャル・ネットワーキング・システム１６０は、ユーザが望む本質的にいかなる宣言も入力するための自由をユーザに提供することもでき、ユーザがユーザ自身を自由に表現することを可能にする。
【００３９】
特定の実施形態において、ユーザがテキスト文字をフォーム・ボックスまたは他のフィールド内に入力するにつれて、タイプアヘッドプロセスは、ユーザが文字を入力している最中に、ユーザの宣言において入力される文字の文字列に一致する既存のソーシャル・グラフ要素（例えば、ユーザ・ノード２０２、コンセプト・ノード２０４、またはエッジ２０６）を識別しようと試行し得る。特定の実施形態において、ユーザが文字をフォーム・ボックス内に入力するにつれて、タイプアヘッドプロセスは、入力されるテキスト文字の文字列を読み得る。各キーストロークが行われるにつれて、フロントエンドタイプアヘッドプロセスは、入力された文字列を要求（またはコール）としてソーシャル・ネットワーキング・システム１６０内で実行されるバックエンドタイプアヘッドプロセスへ送信し得る。特定の実施形態において、タイプアヘッドプロセスは、ＡＪＡＸ（Ａｓｙｎｃｈｒｏｎｏｕｓ  ＪａｖａＳｃｒｉｐｔ  ａｎｄ  ＸＭＬ）または他の適切な技法、および、特に、非同期技法を通じて通信し得る。特定の実施形態において、要求は、結果の迅速かつ動的な送信およびフェッチングを可能にするＸＭＬＨＴＴＰ要求（ＸＨＲ：ＸＭＬＨＴＴＰＲｅｑｕｅｓｔ）であり、またはＸＭＬＨＴＴＰ要求を含み得る。特定の実施形態において、タイプアヘッドプロセスは、ユーザが宣言を行っている特定のページの特定のセクションを識別するセクション識別子（セクションＩＤ）も、要求の前に、要求の後に、または要求と共に、送信し得る。特定の実施形態において、ユーザＩＤパラメータも送信され得るが、これは、いくつかの実施形態において不要であり得る。なぜならば、ユーザがソーシャル・ネットワーキング・システム１６０にログイン済みである（または、そうでなければソーシャル・ネットワーキング・システム１６０によって認証済みである）ことに基づいて、ユーザは既に「既知」であり得るためである。
【００４０】
特定の実施形態において、タイプアヘッドプロセスは、１つまたは複数のマッチング・アルゴリズムを使用して、一致するソーシャル・グラフ要素を識別しようと試行し得る。特定の実施形態において、１つまたは複数の一致が見出される場合、タイプアヘッドプロセスは、例えば、一致するソーシャル・グラフ要素の名前（名前文字列）または説明と、潜在的には、一致するソーシャル・グラフ要素に関連付けられている他のメタデータとを含み得る（ＡＪＡＸまたは他の適切な技法を利用し得る）応答をユーザのクライアント・システム１３０へ送信し得る。限定ではなく、例として、ユーザがクエリフィールド内に文字「ｐｏｋ」を入力している場合、タイプアヘッドプロセスは、「ポーカ（ｐｏｋｅｒ）」または「ポケモン（ｐｏｋｅｍｏｎ）」と名付けられまたは供されるプロフィール・ページなどの、一致する既存のプロフィール・ページおよびそれぞれのユーザ・ノード２０２またはコンセプト・ノード２０４の名前を表示するドロップ・ダウン・メニューを表示し得る。ユーザは、次いで、ドロップ・ダウン・メニューをクリックし、または、そうでなければ選択することができ、それによって、選択されたノードに対応する、一致するユーザまたはコンセプト名を宣言したいという欲求を確認する。限定ではなく、別の例と
して、「ポーカ」のクリックがあると、タイプアヘッドプロセスは、クエリフィールドに宣言「ポーカ」を自動追加し、または、ウェブ・ブラウザ１３２に自動追加させ得る。特定の実施形態において、タイプアヘッドプロセスは、ドロップ・ダウン・メニューを表示するよりはむしろ、１位に順位付けされた一致の名前または他の識別子をフィールドに単に自動追加し得る。ユーザは、次いで、単に、ユーザのキーボード上の「Ｅｎｔｅｒ」をキー入力することによって、または自動追加された宣言をクリックすることによって、自動追加された宣言を確認し得る。
【００４１】
タイプアヘッドプロセスに関するさらなる情報は、２０１０年４月１９日に出願された米国特許出願第１２／７６３１６２号、および２０１２年７月２３日に出願された米国特許出願第１３／５５６０７２号において見出され、これらの出願の各々が、本願明細書に援用される。
構造化検索クエリ
図４は、オンライン・ソーシャル・ネットワークの例示的なウェブページを示す。特定の実施形態において、ユーザは、クエリフィールド４５０内にテキストを入力することによって、ソーシャル・ネットワーキング・システム１６０へクエリを提出し得る。オンライン・ソーシャル・ネットワークのユーザは、特定の主題（例えば、ユーザ、コンセプト、外部コンテンツまたはリソース）に関係する情報を、「検索クエリ」と称されることが多い、その主題を説明する短い語句を検索エンジンに提供することによって、検索し得る。クエリは、非構造化テキストクエリであることがあり、１つまたは複数のテキスト文字列（これは、１つまたは複数のｎ−ｇｒａｍを含み得る）を備え得る。一般に、ユーザは、クエリフィールド４５０内に任意の文字列を入力して、テキストクエリに一致する、ソーシャル・ネットワーキング・システム１６０上のコンテンツを検索し得る。ソーシャル・ネットワーキング・システム１６０は、次いで、データ・ストア１６４（または、特に、ソーシャル・グラフ・データベース）を検索して、クエリに一致するコンテンツを識別し得る。検索エンジンは、様々な検索アルゴリズムを使用してクエリ語句に基づいて検索を実施し、検索クエリに最も関係がありそうなリソースまたはコンテンツ（例えば、ユーザ・プロフィール・ページ、コンテンツ・プロフィール・ページ、または外部リソース）を識別する検索結果を生成し得る。検索を実施するために、ユーザは、検索クエリを検索エンジンに入力または送信し得る。応答して、検索エンジンは、検索クエリに関係がありそうな１つまたは複数のリソースを識別し、それらの各々は、検索クエリに対応する「検索結果（ｓｅａｒｃｈ  ｒｅｓｕｌｔ）」と個々に称されても、または「検索結果（ｓｅａｒｃｈ  ｒｅｓｕｌｔｓ）」とまとめて称されてもよい。識別されたコンテンツは、例えば、ソーシャル・グラフ要素（すなわち、ユーザ・ノード２０２、コンセプト・ノード２０４、エッジ２０６）、プロフィール・ページ、外部ウェブページ、または、これらの任意の組み合わせを含み得る。ソーシャル・ネットワーキング・システム１６０は、次いで、識別されたコンテンツに対応する検索結果を用いて検索結果ウェブページを生成し、その検索結果ウェブページをユーザへ送信し得る。特定の実施形態において、検索エンジンは、その検索をオンライン・ソーシャル・ネットワーク上のリソースおよびコンテンツに限定し得る。しかしながら、特定の実施形態において、検索エンジンは、サードパーティ・システム１７０、インターネットもしくはワールド・ワイド・ウェブ、または他の適切なソースなどの他のソース上のリソースおよびコンテンツも検索し得る。本開示は、ソーシャル・ネットワーキング・システム１６０に特定の方法でクエリを行うことについて説明するが、本開示は、ソーシャル・ネットワーキング・システム１６０に任意の適切な方法でクエリを行うことも企図する。
【００４２】
特定の実施形態において、本願明細書において説明されるタイプアヘッドプロセスは、ユーザによって入力される検索クエリに適用され得る。限定ではなく、例として、ユーザがクエリフィールド４５０内にテキスト文字を入力するにつれて、タイプアヘッドプロセスは、ユーザが文字を入力している最中に、クエリフィールド４５０内に入力される文字
列に一致する、１つまたは複数のユーザ・ノード２０２、コンセプト・ノード２０４、またはエッジ２０６を識別しようと試行し得る。タイプアヘッドプロセスが、テキストクエリから文字列またはｎ−ｇｒａｍを含む要求またはコールを受信するにつれて、タイプアヘッドプロセスは、入力されたテキストに一致する、それぞれの名前、タイプ、カテゴリ、または他の識別子を有する既存のソーシャル・グラフ要素（すなわち、ユーザ・ノード２０２、コンセプト・ノード２０４、エッジ２０６）を識別するための検索を実施し、または実施させられ得る。タイプアヘッドプロセスは、１つまたは複数のマッチング・アルゴリズムを使用して、一致するノードまたはエッジを識別しようと試行し得る。１つまたは複数の一致が見出される場合、タイプアヘッドプロセスは、例えば、一致するノードの名前（名前文字列）と、潜在的には、一致するノードに関連付けられている他のメタデータとを含み得る応答をユーザのクライアント・システム１３０へ送信し得る。タイプアヘッドプロセスは、次いで、それぞれのユーザ・ノード２０２またはコンセプト・ノード２０４の一致するプロフィール・ページ（例えば、ページに関連付けられている名前または写真）への参照を表示し、一致するユーザ・ノード２０２またはコンセプト・ノード２０４につなげる一致するエッジ２０６の名前を表示するドロップ・ダウン・メニュー４００を表示し得る。ユーザは、次いで、ドロップ・ダウン・メニュー４００をクリックし、または、そうでなければ選択し、それによって、選択されたノードに対応する一致したユーザまたはコンセプト名を検索したい、または一致するエッジによって一致したユーザまたはコンセプトにつながっているユーザまたはコンセプトを検索したいという欲求を確認する。代替的に、タイプアヘッドプロセスは、ドロップ・ダウン・メニュー４００を表示するよりもむしろ、１位に順位付けされた一致の名前または他の識別子をフォームに単に自動追加してもよい。ユーザは、次いで、単に、キーボード上の「Ｅｎｔｅｒ」をキー入力することによって、または自動追加された宣言をクリックすることによって、自動追加された宣言を確認し得る。一致するノードおよび／またはエッジのユーザ確認があると、タイプアヘッドプロセスは、一致するソーシャル・グラフ要素を包含するクエリのユーザの確認をソーシャル・ネットワーキング・システム１６０に通知する要求を送信し得る。送信された要求に応答して、ソーシャル・ネットワーキング・システム１６０は、一致するソーシャル・グラフ要素、または、必要に応じて、一致するソーシャル・グラフ要素につながっているソーシャル・グラフ要素を自動的に（または、代替的に、要求内の命令に基づいて）呼び出し、または、そうでなければ、それらがないかソーシャル・グラフ・データベースを検索し得る。本開示は、特定の方法でタイプアヘッドプロセスを検索クエリに適用することについて説明するが、本開示は、任意の適切な方法でタイプアヘッドプロセスを検索クエリに適用することも企図する。
【００４３】
検索クエリおよび検索結果に関連して、特定の実施形態は、２００６年８月１１日に出願された米国特許出願第１１／５０３０９３号、２０１０年１２月２２日に出願された米国特許出願第１２／９７７０２７号、および２０１０年１２月２３日に出願された米国特許出願第１２／９７８２６５号において開示された、１つまたは複数のシステム、コンポーネント、要素、機能、方法、動作、または工程を利用し、これらの出願の各々が、本願明細書に援用される。
【００４４】
要素検出および検索クエリの構文解析
図５Ａ〜図５Ｄは、オンライン・ソーシャル・ネットワークの例示的なクエリを示す。特定の実施形態において、第１のユーザ（すなわち、クエリを行うユーザ）から受信されるテキストクエリに応答して、ソーシャル・ネットワーキング・システム１６０は、テキストクエリを構文解析し、特定のソーシャル・グラフ要素に対応するテキストクエリの一部を識別し得る。ソーシャル・ネットワーキング・システム１６０は、次いで、構造化クエリのセットを生成し、ここで、各構造化クエリは、一致する可能性があるソーシャル・グラフ要素のうちの１つに対応する。これらの構造化クエリは、それらが関連性のあるソーシャル・グラフ要素を参照して自然言語構文においてレンダリングされるように、文法
モデルによって生成される文字列に基づき得る。これらの構造化クエリは、クエリを行うユーザへ提示され、そのユーザは、次いで、構造化クエリの中から選択して、選択された構造化クエリがソーシャル・ネットワーキング・システム１６０によって実行されるべきであることを示し得る。図５Ａ〜図５Ｄは、クエリフィールド４５０における様々な例示的なテキストクエリと、ドロップ・ダウン・メニュー４００（ただし、他の適切なグラフィカル・ユーザ・インターフェースも可能である）における、応答して生成される様々な構造化クエリとを示す。ユーザのテキストクエリに応答して、提案される構造化クエリを提供することによって、ソーシャル・ネットワーキング・システム１６０は、オンライン・ソーシャル・ネットワークのユーザに、ソーシャル・グラフ２００において表される要素を、それらのソーシャル・グラフ属性および様々なソーシャル・グラフ要素に対するそれらの関係性に基づいて検索するための強力な手法を提供し得る。構造化クエリは、クエリを行うユーザが、特定のエッジ・タイプによってソーシャル・グラフ２００において特定のユーザまたはコンセプトにつながっているコンテンツを検索することを可能にし得る。構造化クエリは、第１のユーザへ送信され、（例えば、クライアント側タイプアヘッドプロセスを通じて）ドロップ・ダウン・メニュー４００において表示され得る。ここで、第１のユーザは、次いで、適切なクエリを選択して、所望のコンテンツを検索し得る。本願明細書において説明される構造化クエリを使用する利点のうちのいくつかは、限定された情報に基づいてオンライン・ソーシャル・ネットワークのユーザを見出すこと、様々なソーシャル・グラフ要素に対するコンテンツの関係性に基づいて、オンライン・ソーシャル・ネットワークからそのコンテンツの仮想インデックスをまとめること、または、あなたおよび／もしくはあなたの友達に関係するコンテンツを見出すことを含む。本開示および図５Ａ〜図５Ｄは、特定の構造化クエリを特定の方法で生成することを説明および示すが、本開示は、任意の適切な構造化クエリを任意の適切な方法で生成することも企図する。
【００４５】
特定の実施形態において、ソーシャル・ネットワーキング・システム１６０は、クエリを行う／第１のユーザ（第１のユーザ・ノード２０２に対応する）から、非構造化テキストクエリを受信し得る。限定ではなく、例として、第１のユーザは、（１）第１のユーザの一次の友達であり、かつ（２）スタンフォード大学（Ｓｔａｎｆｏｒｄ  Ｕｎｉｖｅｒｓｉｔｙ）に関連付けられている他のユーザを検索したいと望み得る（すなわち、ユーザ・ノード２０２は、エッジ２０６によって、学校「スタンフォード」に対応するコンセプト・ノード２０４につながっている）。第１のユーザは、次いで、図５Ａ〜図５Ｂに示されるように、クエリフィールド４５０内にテキストクエリ「友達  スタンフォード」を入力し得る。クエリを行うユーザが、クエリフィールド４５０内にこのテキストクエリを入力するにつれて、ソーシャル・ネットワーキング・システム１６０は、ドロップ・ダウン・メニュー４００に示されるように、様々な提案される構造化クエリを提供し得る。本願明細書において、非構造化テキストクエリとは、ユーザによって入力される単純なテキスト文字列を示す。テキストクエリは、当然ながら、標準的な言語／文法規則（例えば、英語言語文法）に関して構造化され得る。しかしながら、テキストクエリは、通常は、ソーシャル・グラフ要素に関して構築化されていない。換言すれば、単純なテキストクエリは、通常は、特定のソーシャル・グラフ要素への埋め込まれた参照を含まない。したがって、本願明細書において、構造化クエリとは、特定のソーシャル・グラフ要素への参照を包含するクエリを指し、検索エンジンが、識別された要素に基づいて検索することを可能にする。さらに、テキストクエリは、正式なクエリ構文に関して構造化されていないことがある。換言すれば、単純なテキストクエリは、必ずしも検索エンジンによって直接実行可能なクエリコマンドの形式であるとは限らない（例えば、テキストクエリ「友達  スタンフォード」は、ソーシャル・グラフ・データベースにおいてクエリとして実行され得る、クエリコマンド「ｉｎｔｅｒｓｅｃｔ（ｓｃｈｏｏｌ（Ｓｔａｎｄｆｏｒｄ  Ｕｎｉｖｅｒｓｉｔｙ），  ｆｒｉｅｎｄｓ（ｍｅ）」を形成するように構文解析され得る）。本開示は、特定の方法で特定のクエリを受信することについて説明するが、本開示は、任意の
適切な方法で任意の適切なクエリを受信することについても企図する。
【００４６】
特定の実施形態において、ソーシャル・ネットワーキング・システム１６０は、第１のユーザ（すなわち、クエリを行うユーザ）から受信される非構造化テキストクエリ（単に検索クエリとも称される）を構文解析して、１つまたは複数のｎ−ｇｒａｍを識別し得る。一般に、ｎ−ｇｒａｍは、テキストまたはスピーチの所与のシーケンスからのｎアイテムの隣接するシーケンスである。アイテムは、文字、音素、音節、字、単語、語幹対、プレフィックス、または、テキストもしくはスピーチのシーケンスからの他の識別可能なアイテムであり得る。ｎ−ｇｒａｍは、クエリを行うユーザによって入力される１つまたは複数のテキストの文字（字、数字、句読点など）を備え得る。サイズ１のｎ−ｇｒａｍは「ユニグラム」と称され、サイズ２のｎ−ｇｒａｍは「バイグラム」または「ダイグラム」と称され、サイズ３のｎ−ｇｒａｍは「トライグラム」と称される、などが可能である。各ｎ−ｇｒａｍは、クエリを行うユーザから受信されるテキストクエリからの１つまたは複数の部分を含み得る。特定の実施形態において、各ｎ−ｇｒａｍは、第１のユーザによって入力された文字列（例えば、１つまたは複数のテキストの文字）を備え得る。限定ではなく、例として、ソーシャル・ネットワーキング・システム１６０は、テキストクエリ「友達  スタンフォード」を構文解析して、下記のｎ−ｇｒａｍを識別し得る：友達、スタンフォード、友達  スタンフォード。限定ではなく、別の例として、ソーシャル・ネットワーキング・システム１６０は、テキストクエリ「パロ・アルトの友達」を構文解析して、下記のｎ−ｇｒａｍを識別し得る：友達、の、パロ、アルト、の友達、パロの、パロ・アルト、パロの友達、パロ・アルソの、パロ・アルトの友達。特定の実施形態において、各ｎ−ｇｒａｍは、テキストクエリからのｎアイテムの隣接するシーケンスを備え得る。本開示は、特定の方法で特定のクエリを構文解析することについて説明するが、本開示は、任意の適切な方法で任意の適切なクエリを構文解析することについても企図する。
【００４７】
要素検出および検索クエリを構文解析することに関連して、特定の実施形態は、２０１２年７月２３日に出願された米国特許出願第１３／５５６０７２号、２０１２年１２月３１日に出願された米国特許出願第１３／７３２１０１号において開示される、１つまたは複数のシステム、コンポーネント、要素、機能、方法、動作、または工程を利用し、これらの出願の各々が、本願明細書に援用される。
【００４８】
構造化検索クエリの生成
特定の実施形態において、ソーシャル・ネットワーキング・システム１６０は、複数の文法を備える文脈自由文法モデルにアクセスし得る。文法モデルの各文法は、１つまたは複数の非終端トークン（または「非終端シンボル」）と、１つまたは複数の終端トークン（または「終端シンボル」／「クエリトークン」）とを備え、ここで、特定の非終端トークンは、終端トークンによって置換され得る。文法モデルは、公式言語における文字列のためのフォーメーション規則のセットである。本開示は、特定の文法にアクセスすることについて説明するが、本開示は、任意の適切な文法についても企図する。
【００４９】
特定の実施形態において、ソーシャル・ネットワーキング・システム１６０は、１つまたは複数の文法を使用して、１つまたは複数の文字列を生成し得る。言語において文字列を生成するために、ある者は、単一の開始シンボルのみからなる文字列から始める。プロダクション規則は、次いで、開始シンボルも、指定された非終端シンボルも包含しない文字列が生み出されるまで、任意の順序で適用される。文脈自由文法において、文法の各非終端シンボルを生み出すことは、文法の他の非終端シンボルによって生み出されるものからは独立している。非終端シンボルは、終端シンボル（すなわち、終端トークンまたはクエリトークン）によって置換され得る。クエリトークンのうちのいくつかは、前述されたように、識別されたノードまたは識別されたエッジに対応し得る。文法によって生成された文字列は、次いで、識別されたノードまたは識別されたエッジへの参照を包含する構造
化クエリのための基礎として使用され得る。文法によって生成された文字列は、文字列に基づく構造化クエリも自然言語においてレンダリングされるように、自然言語構文においてレンダリングされ得る。文脈自由文法は、各プロダクション規則の左辺が単一の非終端シンボルのみからなる文法である。確率的な文脈自由文法は、タプル（Σ、Ｎ、Ｓ、Ｐ）であり、ここで、互いに素な集合ΣおよびＮは、それぞれ終端シンボルおよび非終端シンボルを特定し、Ｓ∈Ｎが開始シンボルである。Ｐは、プロダクションのセットであり、これは、Ｅ→ξ（ｐ）の形式を取り、Ｅ∈Ｎ、ξ∈（Σ∪Ｎ）＋、およびｐ＝Ｐｒ（Ｅ→ξ）であり、Ｅが文字列ξに展開される確率である。所与の非終端Ｅの全ての展開にわたる確率ｐの和は、１でなければならない。本開示は、特定の方法で文字列を生成することについて説明するが、本開示は、任意の適切な方法で文字列を生成することについても企図する。
【００５０】
特定の実施形態において、ソーシャル・ネットワーキング・システム１６０は、１つまたは複数の構造化クエリを生成し得る。構造化クエリは、前述されたように、１つまたは複数の文法によって生成される自然言語文字列に基づき得る。各構造化クエリは、識別されたノードのうちの１つもしくは複数、または識別されたエッジ２０６のうちの１つもしくは複数への参照を含み得る。このタイプの構造化クエリは、識別されたユーザ・ノード２０２および識別されたエッジ２０６につながっている、または、そうでなければ関係するコンテンツを検索することによって、ソーシャル・ネットワーキング・システム１６０が、オンライン・ソーシャル・ネットワークに関係するリソースおよびコンテンツ（例えば、プロフィール・ページなど）をより効率的に検索することを可能にし得る。限定ではなく、例として、テキストクエリ「私の彼女の友達を私に見せて」に応答して、ソーシャル・ネットワーキング・システム１６０は、構造化クエリ「ステファニーの友達」を生成し得る。ここで、構造化クエリにおける「友達」および「ステファニー」は、特定のソーシャル・グラフ要素に対応する参照である。「ステファニー」への参照は、特定のユーザ・ノード２０２に対応する（ここで、ソーシャル・ネットワーキング・システム１６０は、ｎ−ｇｒａｍ「私の彼女」を構文解析して、ユーザ「ステファニー」についてのユーザ・ノード２０２に対応させている）一方で、「友達」への参照は、ユーザ・ノード２０２を他のユーザ・ノード２０２へつないでいる友達タイプ・エッジ（ｆｒｉｅｎｄ−ｔｙｐｅ  ｅｄｇｅｓ）２０６（すなわち、「ステファニーの」一次の友達につなげているエッジ２０６）に対応する。この構造化クエリを実行する場合、ソーシャル・ネットワーキング・システム１６０は、「ステファニー」に対応するユーザ・ノード２０２に友達タイプ・エッジ２０６によってつながっている１つまたは複数のユーザ・ノード２０２を識別し得る。限定ではなく、別の例として、テキストクエリ「フェースブックを「いいね！」と言っている友達」に応答して、ソーシャル・ネットワーキング・システム１６０は、構造化クエリ「フェースブックを「いいね！」と言っている友達」を生成し、ここで、構造化クエリにおける「友達」、「「いいね！」と言っている」、および「フェースブック」は、前述されたような特定のソーシャル・グラフ要素に対応する参照（すなわち、友達タイプ・エッジ２０６、「いいね！」タイプ・エッジ２０６、および会社「フェースブック」に対応するコンセプト・ノード２０４）である。本開示は、特定の構造化クエリを特定の方法で生成することを開示するが、本開示は、任意の適切な構造化クエリ任意の適切な方法で生成することも企図する。
【００５１】
特定の実施形態において、ソーシャル・ネットワーキング・システム１６０は、生成された構造化クエリを順位付けし得る。構造化クエリは、例えば、それらの構造化クエリにおいて参照されている識別されたノード／エッジが、ソーシャル・ネットワーキング・システム１６０によって決定されるような、クエリを行うユーザの検索意図に一致する確率または可能性の順序などの様々な要因に基づいて、順位付けされ得る。構造化クエリを順位付けした後、ソーシャル・ネットワーキング・システム１６０は、次いで、閾値順位よりも高い順位を有する構造化クエリのみを送信し得る（例えば、上位７位までのクエリが
、クエリを行うユーザへ送信され、ドロップ・ダウン・メニュー３００において表示され得る）。特定の実施形態において、構造化クエリについての順位は、クエリを行うユーザのユーザ・ノード２０２と、構造化クエリにおいて参照されている特定のソーシャル・グラフ要素との間の分離度合いに基づき得る。ソーシャル・グラフ２００において、クエリを行うユーザにより近い（すなわち、要素とクエリを行うユーザのユーザ・ノード２０２との間の分離度合いがより小さい）ソーシャル・グラフ要素を参照する構造化クエリは、ユーザからより遠い（すなわち、分離度合いがより大きい）ソーシャル・グラフ要素を参照する構造化クエリよりも上位に順位付けされ得る。特定の実施形態において、ソーシャル・ネットワーキング・システム１６０は、クエリを行うユーザに関連付けられている検索履歴に基づいて、構造化検索を順位付けし得る。クエリを行うユーザが以前にアクセスしたソーシャル・グラフ要素を参照し、またはクエリを行うユーザが以前にアクセスしたソーシャル・グラフ要素に関係する構造化クエリは、クエリを行うユーザの検索クエリの対象となる可能性が高くなり得る。したがって、これらの構造化クエリは、より上位に順位付けされ得る。限定ではなく、例として、クエリを行うユーザが、「スタンフォード大学」のプロフィール・ページは以前に訪問したことがあるが、「カリフォルニア州スタンフォード」のプロフィール・ページは訪問したことがない場合において、これらのコンセプトを参照する構造化クエリについての順位を決定するとき、ソーシャル・ネットワーキング・システム１６０は、「スタンフォード大学」についてのコンセプト・ノード２０４を参照する構造化クエリが比較的高い順位を有すると決定し得る。なぜならば、クエリを行うユーザが、その大学についてのコンセプト・ノード２０４に以前にアクセスしたことがあるためである。特定の実施形態において、構造化クエリは、構造化クエリにおいて参照されているソーシャル・グラフ要素のうちの１つまたは複数についての文脈情報のスニペットを含み得る。特定の実施形態において、ソーシャル・ネットワーキング・システム１６０は、広告スポンサーシップに基づいて、構造化クエリを順位付けし得る。（例えば、特定のノードに対応する特定のプロフィール・ページのユーザまたは管理者などの）広告主は、特定のノードを参照する構造化クエリがより上位に順位付けされ得るように、そのノードのスポンサーになり得る。本開示は、特定の方法で構造化クエリを順位付けすることについて説明するが、本開示は、任意の適切な方法で構造化クエリを順位付けすることも企図する。
【００５２】
特定の実施形態において、ソーシャル・ネットワーキング・システム１６０は、クエリを行うユーザから、構造化クエリのうちの１つの選択を受信し得る。受信された構造化クエリにおいて参照されているノードおよびエッジは、それぞれ選択されたノードおよび選択されたエッジと称され得る。限定ではなく、例として、クエリを行うユーザのクライアント・システム１３０上のウェブ・ブラウザ１３２は、図５Ａ〜図５Ｄに示されるように、送信された構造化クエリをドロップ・ダウン・メニュー３００において表示し得る。ユーザは、次いで、ドロップ・ダウン・メニューをクリックし、または、そうでなければ（例えば、ユーザのキーボード上の「Ｅｎｔｅｒ」を単にキー入力することによって）選択して、ソーシャル・ネットワーキング・システム１６０が実行することをユーザが望む特定の構造化クエリを示し得る。特定の構造化クエリを選択すると、ユーザのクライアント・システム１３０は、選択された構造化クエリを実行するようにソーシャル・ネットワーキング・システム１６０をコールし、または、そうでなければこれに命令し得る。本開示は、特定の構造化クエリの選択を特定の方法で受信することを説明するが、本開示は、任意の適切な構造化クエリの選択を任意の適切な方法で受信することも企図する。
【００５３】
構造化クエリの生成および文法モードに関するさらなる情報は、２０１２年７月２３日に出願された米国特許出願第１３／５５６０７２号、２０１２年１１月１２日に出願された米国特許出願第１３／６７４６９５号、および２０１２年１２月３１日に出願された米国特許出願第１３／７３１８６６号において見出され、これらの出願の各々が、本願明細書に援用される。
【００５４】
検索クエリの構文解析およびクエリコマンドの生成
特定の実施形態において、ソーシャル・ネットワーキング・システム１６０は、クエリを行うユーザから受信される構造化クエリに基づいて、クエリコマンドを生成し得る。クエリコマンドは、次いで、ソーシャル・ネットワーキング・システム１６０のデータ・ストア１６４内のオブジェクトに対する検索において使用され得る。特定の実施形態において、クエリコマンドは、ソーシャル・ネットワーキング・システム１６０の１つまたは複数のデータ・ストアまたはバーティカルについての検索インデックスを使用する検索のために提供され得る。クエリコマンドは、１つまたは複数のクエリ制約を備え得る。各クエリ制約は、構造化クエリの構文解析に基づいて、ソーシャル・ネットワーキング・システム１６０によって識別され得る。各クエリ制約は、特定のオブジェクト・タイプについての要求であり得る。特定の実施形態において、クエリコマンドは、クエリ制約を記号式またはＳ式において備え得る。ソーシャル・ネットワーキング・システム１６０は、構造化クエリ「私が「いいね！」と言っている写真」を、クエリコマンド（ｐｈｏｔｏｓ＿ｌｉｋｅｄ＿ｂｙ：＜ｍｅ＞）に構文解析し得る。クエリコマンド（ｐｈｏｔｏｓ＿ｌｉｋｅｄ＿ｂｙ：＜ｍｅ＞）は、ユーザ（すなわち、＜ｍｅ＞、これは、クエリを行うユーザに対応する）によって「いいね！」の表明をされた写真についてのクエリを単一の結果タイプの写真と共に表す。クエリ制約は、例えば、ソーシャル・グラフ制約（例えば、特定のノードもしくはノード・タイプについての要求、もしくは特定のエッジもしくはエッジ・タイプにつながっているノードについての要求）、オブジェクト制約（例えば、特定のオブジェクトもしくはオブジェクト・タイプについての要求）、ロケーション制約（例えば、特定の地理的ロケーションに関連付けられているオブジェクトもしくはソーシャル・グラフ・エンティティについての要求）、他の適切な制約、または、これらの任意の組み合わせを含み得る。特定の実施形態において、構造化クエリの構文解析は、構造化クエリを生成するために使用される文法に基づき得る。換言すれば、生成されたクエリコマンドおよびそのクエリ制約は、特定の文法（または、文法フォレストからのサブツリー）に対応し得る。特定の実施形態において、クエリコマンドは、プレフィックスおよびオブジェクトを備え得る。オブジェクトは、ソーシャル・グラフ２００における特定のノードに対応し得る一方で、プレフィックスは、ソーシャル・グラフ２００における特定のノードにつながっている特定のエッジ２０６またはエッジ・タイプ（特定のタイプの関係を示す）に対応し得る。限定ではなく、例として、クエリコマンド（ｐａｇｅｓ＿ｌｉｋｅｄ＿ｂｙ：＜ｕｓｅｒ＞）は、プレフィックスｐａｇｅｓ＿ｌｉｋｅｄ＿ｂｙと、オブジェクト＜ｕｓｅｒ＞とを備える。特定の実施形態において、ソーシャル・ネットワーキング・システム１６０は、１つまたは複数の検索結果を識別するために、特定のノードから、特定の結び付けエッジ（ｃｏｎｎｅｃｔｉｎｇ  ｅｄｇｅｓ）２０６（またはエッジ・タイプ）に沿って、クエリコマンドによって特定されるオブジェクトに対応するノードまで、ソーシャル・グラ���２００を辿ることによって、クエリコマンドを実行し得る。限定ではなく、例として、クエリコマンド（ｐａｇｅｓ＿ｌｉｋｅｄ＿ｂｙ：＜ｕｓｅｒ＞）は、＜ｕｓｅｒ＞に対応するユーザ・ノード２０２から、「いいね！」タイプ・エッジ（ｌｉｋｅ−ｔｙｐｅ  ｅｄｇｅ）２０６に沿って、＜ｕｓｅｒ＞によって「いいね！」の表明をされたページに対応するコンセプト・ノード２０４まで、ソーシャル・グラフ２００を辿ることによって、ソーシャル・ネットワーキング・システム１６０によって実行され得る。本開示は、特定のクエリコマンドを特定の方法で生成することを説明するが、本開示は、任意の適切なクエリコマンドを任意の適切な方法で生成することも企図する。
【００５５】
特定の実施形態において、ソーシャル・ネットワーキング・システム１６０は、ネスト化された検索クエリなどの、内部制約と外部制約との双方を有する複雑な構造化クエリの制約を満足させるオンライン・ソーシャル・ネットワークに関連付けられているオブジェクトを識別し得る。ソーシャル・ネットワーキング・システム１６０に関連付けられているオブジェクトのバーティカル１６４を検索するプロセスは、内部クエリ制約に一致する
オブジェクトを識別する場合に外部クエリ制約が使用される、クエリヒンティングを使用することによって改善され得る。限定ではなく、例として、図５Ｃに示されるような、「パロ・アルトで撮影された女性の写真」などの比較的複雑な構造化クエリは、女性であるユーザを識別するためにユーザ・バーティカル１６４がまず検索されて、次いで、それらの結果とパロ・アルトで撮影された写真の写真バーティカル１６４からの結果とを交差させるように、構文解析され得る。ユーザ・バーティカルは、数百人、または数千人もの女性ユーザに対応する結果を生み出し、これらの女性ユーザのうちの誰もパロ・アルトで撮影された写真においてタグ付けされていないことがあり、それによって、これらの結果の交差は、検索結果を生み出さない。代替的に、この構造化クエリは、構造化クエリ「パロ・アルトで撮影された女性の写真」が構文解析され得るように、例えば、女性であるユーザを識別するためにユーザ・バーティカルが検索されるように、クエリヒンティングを使用して、また、パロ・アルトにおける写真においてもタグ付けされている少なくとも何人かの女性ユーザを識別するために、「弱い論理積（ｗｅａｋ  ａｎｄ）」（ＷＡＮＤ）演算子などの、いくつかの結果から引数が不在となることを可能にする演算子を使用することによって、構文解析され得る。次に、写真バーティカル１６４が検索されて、識別された女性ユーザのいずれかがタグ付けされている、パロ・アルトで撮影された写真が識別され得る。このように、外部制約によって要求されるオブジェクトに対応するバーティカルの検索は、検索クエリを満足させる結果を生成する可能性が高い。これは、ソーシャル・ネットワーキング・システム１６０がより良好な検索結果を生み出すことも可能にし、こうした結果を生成するための処理効率を改善し得る。特定の実施形態において、内部クエリ制約に応答して検索されたバーティカルからの結果は、得点付けまたは順位付けされ、それらのスコアは、外部クエリ制約に応答して検索されるバーティカルから識別されるオブジェクトを得点付けする際に使用され得る。本開示は、構造化クエリに一致するオブジェクトを特定の方法で識別することを説明するが、本開示は、構造化クエリに一致するオブジェクトを任意の適切な方法で識別することも企図する。
【００５６】
特定の実施形態において、ソーシャル・ネットワーキング・システム１６０は、内部クエリ制約と外部クエリ制約とを備えるクエリコマンドを生成し得る。内部クエリ制約は、第１のオブジェクト・タイプの１つまたは複数の検索結果についての要求を含み、外部クエリ制約は、第２のオブジェクト・タイプの１つまたは複数の検索結果についての要求を含み得る。各クエリ制約は、構造化クエリにおいて参照されている選択されたエッジのうちの１つまたは複数によって、構造化クエリにおいて参照されている選択されたノードのうちの１つまたは複数につながっている１つまたは複数のノードについてのものであり得る。１つまたは複数のクエリ制約を有するクエリコマンドは、ネスト化されたクエリをＳ式において備え得る。限定ではなく、例として、ソーシャル・ネットワーキング・システム１６０は、構造化クエリ「私の友達によって「いいね！」の表明をされたページ」を、例えば、（ｐａｇｅｓ＿ｌｉｋｅｄ＿ｂｙ：（ｆｒｉｅｎｄｓ＿ｏｆ：＜ｍｅ＞））などのネスト化されたクエリに変換し得る。ネスト化された検索クエリ（ｐａｇｅｓ＿ｌｉｋｅｄ＿ｂｙ：（ｆｒｉｅｎｄｓ＿ｏｆ：＜ｍｅ＞））は、外部クエリ制約（ｐａｇｅｓ＿ｌｉｋｅｄ＿ｂｙ：＜ｕｓｅｒ＞）内にネスト化された内部クエリ制約（ｆｒｉｅｎｄｓ＿ｏｆ：＜ｍｅ＞）を含む。内部クエリ制約（ｆｒｉｅｎｄｓ＿ｏｆ：＜ｍｅ＞）は、ユーザ（すなわち、＜ｍｅ＞）の一次の友達についてのクエリを単一の結果タイプのユーザと共に表す。外部クエリ制約（ｐａｇｅｓ＿ｌｉｋｅｄ＿ｂｙ：＜ｕｓｅｒ＞）は、ユーザによって「いいね！」の表明をされたページについてのクエリを単一の結果タイプのページと共に表す。限定ではなく、別の例として、ソーシャル・ネットワーキング・システム１６０は、構造化クエリ「トムと名付けられた人々の写真」を、例えば、（ｐｈｏｔｏｓ＿ｏｆ：（ｎａｍｅ：ｔｏｍ））などのネスト化されたクエリに変換し得る。ネスト化されたクエリ（ｐｈｏｔｏｓ＿ｏｆ：（ｎａｍｅ：ｔｏｍ））は、外部クエリ制約（ｐｈｏｔｏｓ＿ｏｆ：＜ｕｓｅｒ＞）内にネスト化された内部クエリ制約（ｎａｍｅ：ｔｏｍ）を含む。内部クエリ制約は、その名前が「トム」に一致するユーザについてのクエリを
単一の結果タイプのユーザと共に表す。外部クエリ制約（ｐｈｏｔｏｓ＿ｏｆ：＜ｕｓｅｒ＞）は、ユーザがタグ付けされている写真についてのクエリを単一の結果タイプの写真と共に表す。また別の例として、ソーシャル・ネットワーキング・システム１６０は、構造化クエリ「ビルによって「いいね！」の表明をされた投稿を書いた人々」を、例えば、（ｅｘｔｒａｃｔ  ａｕｔｈｏｒ  （ｔｅｒｍ  ｐｏｓｔｓ＿ｌｉｋｅｄ＿ｂｙ：＜Ｂｉｌｌ＞））などのネスト化されたクエリに変換し得る。クエリコマンドは、ユーザ「ビル」によって「いいね！」の表明をされている投稿についての１人または複数の作成者の検索結果を（ｅｘｔｒａｃｔ演算子を用いて）要求し得る。ネスト化されたクエリは、ユーザ「ビル」によって「いいね！」の表明をされている投稿における検索結果を要求する検索用語に対応する内部クエリ（ｔｅｒｍ  ｐｏｓｔｓ＿ｌｉｋｅｄ＿ｂｙ：＜Ｂｉｌｌ＞）を含み得る。つまり、外部制約は、第１のオブジェクト・タイプ（ユーザ）の第１の検索結果を要求する一方で、内部制約は、第２のオブジェクト・タイプ（投稿）の第２の検索結果を要求する。本開示は、クエリを特定の方法で構文解析することを説明するが、本開示は、クエリを任意の適切な方法で構文解析することも企図する。
【００５７】
特定の実施形態において、ソーシャル・ネットワーキング・システム１６０は、クエリコマンドの１つまたは複数のクエリ制約に一致する、１つまたは複数のノードを識別し得る。ソーシャル・ネットワーキング・システム１６０は、１つまたは複数のデータ・ストア１６４を検索して、クエリコマンドの１つまたは複数の制約を満足させる、データ・ストアにおいて記憶される１つまたは複数のオブジェクトを識別し得る。限定ではなく、例として、ソーシャル・ネットワーキング・システム１６０は、クエリ制約（ｐｈｏｔｏｓ＿ｌｉｋｅｄ＿ｂｙ：＜ｍｅ＞）を（写真結果タイプと共に）写真バーティカルＰ３へ提出し得る。ソーシャル・ネットワーキング・システム１６０は、写真バーティカル１６４のインデックス・サーバ３３０にアクセスし、インデックス・サーバ３３０に、クエリ制約（ｐｈｏｔｏｓ＿ｌｉｋｅｄ＿ｂｙ：＜ｍｅ＞）についての結果を返させ得る。特定の実施形態において、ソーシャル・ネットワーキング・システム１６０は、クエリコマンドのクエリ制約ごとに、データ・ストア１６４のうちの少なくとも１つからの検索結果にアクセスしそれを取り出し得る。アクセスされたデータ・ストア１６４は、特定のクエリ制約によって特定されるオブジェクト・タイプのオブジェクトを記憶するように構成され得る。ソーシャル・ネットワーキング・システム１６０は、次いで、それぞれのクエリ制約の検索結果を集約し得る。限定ではなく、例として、ネスト化されたクエリ（ｐｈｏｔｏｓ＿ｏｆ：（ｎａｍｅ：ｔｏｍ））は、単一の結果タイプのユーザと共に内部クエリ制約（ｎａｍｅ：ｔｏｍ）と、単一の結果タイプの写真と共に外部クエリ制約（ｐｈｏｔｏｓ＿ｏｆ：＜ｕｓｅｒ＞）とを備える。ソーシャル・ネットワーキング・システム１６０は、次いで、ネスト化されたクエリを再構成し、まず、内部クエリ制約（ｎａｍｅ：ｔｏｍ）を（ユーザ結果タイプと共に）ユーザ・バーティカルＰ１へ提出し得る。ソーシャル・ネットワーキング・システム１６０は、ユーザ・バーティカルＰ１のインデックス・サーバ３３０にアクセスして、ユーザ＜１７＞、＜３１＞、および＜５９＞（各々、ユーザ識別子によって表現される）の検索結果を返し得る。つまり、＜１７＞、＜３１＞、および＜５９＞の各ユーザは、「トム」に一致する名前を有し得る。ソーシャル・ネットワーキング・システム１６０は、次いで、ネスト化されたクエリを、各々が結果タイプの写真を有するクエリ（ｐｈｏｔｏｓ＿ｏｆ：＜１７＞）、（ｐｈｏｔｏｓ＿ｏｆ：＜３１＞）、および（ｐｈｏｔｏｓ＿ｏｆ：＜５９＞）の論理和組み合わせに書き直し得る。ソーシャル・ネットワーキング・システム１６０は、次いで、クエリ（ｐｈｏｔｏｓ＿ｏｆ：＜１７＞）、（ｐｈｏｔｏｓ＿ｏｆ：＜３１＞）、および（ｐｈｏｔｏｓ＿ｏｆ：＜５９＞）を写真バーティカルＰ３へ提出し得る。ソーシャル・ネットワーキング・システム１６０は、写真バーティカルＰ３のインデックス・サーバ３３０にアクセスし、インデックス・サーバ３３０に、クエリ（ｐｈｏｔｏｓ＿ｏｆ：＜１７＞）、（ｐｈｏｔｏｓ＿ｏｆ：＜３１＞）、および（ｐｈｏｔｏｓ＿ｏｆ：＜５９＞）についての写真の検索結果を返させ得る。特定の実施形態において、ソーシャル・ネットワーキング・システム１６０は、検
索結果に対して論理和演算を実施することによって、検索結果を集約し得る。限定ではなく、例として、検索クエリ（ｐｈｏｔｏｓ＿ｏｆ：＜１７＞）についての検索結果は、＜１００１＞および＜１００２＞（各々、写真識別子によって表現される）であり得る。検索クエリ（ｐｈｏｔｏｓ＿ｏｆ：＜３１＞）についての検索結果は、＜１００１＞、＜１３２６＞、＜９０９０＞、および＜５２００＞であり得る。検索クエリ（ｐｈｏｔｏｓ＿ｏｆ：＜５９＞）についての検索結果は、＜９０９０＞および＜７１２３＞であり得る。ソーシャル・ネットワーキング・システム１６０は、検索結果に対して論理和演算を実施し、＜１００１＞、＜１００２＞、＜１３２６＞、＜９０９０＞、＜５２００＞、および＜７１２３＞という最終的な検索結果をもたらし得る。本開示は、特定の検索結果を特定の方法で識別することを説明するが、本開示は、任意の適切な検索結果を任意の適切な方法で識別することも企図する。
【００５８】
特定の実施形態において、クエリ制約についての一致するノードを識別する場合に、ソーシャル・ネットワーキング・システム１６０は、特定のバーティカル１６４において最大で閾値数までの一致するノードのみを識別し得る。一致するオブジェクトのこの閾値数は、次いで、検索結果として取り出され得る。閾値数は、検索品質を向上させるように、または検索結果の処理を最適化するように選ばれ得る。限定ではなく、例として、ソーシャル・ネットワーキング・システム１６０は、写真オブジェクトを要求するクエリコマンドに応答して、写真バーティカル１６４における上位Ｎ個の一致するオブジェクトのみを識別し得る。上位Ｎ個の写真オブジェクトは、写真バーティカルに対応する検索インデックスにおける写真オブジェクトの静的順位によって決定され得る。特定の実施形態において、上位Ｎ個の識別された結果は、検索クエリ自体に基づいて、再順位付けされ得る。限定ではなく、例として、Ｎが１０００である場合、（静的順位によって決定されるような）上位１０００個の写真オブジェクトが識別され得る。これらの１０００個の写真オブジェクトは、次いで、１つまたは複数の要因（例えば、検索クエリとの一致または他のクエリ制約、ソーシャル・グラフ親和性、検索履歴など）に基づいて順位付けされ、上位２０個の結果が、次いで、クエリを行うユーザへの提示のために検索結果として生成され得る。特定の実施形態において、１回または複数回の順位付け後の上位の結果は、最後の順位付けのためにアグリゲータ３２０へ送信され、アグリゲータ３２０において、クエリを行うユーザに対する提示の前に、結果が並べ替えられ、冗長な結果が破棄され、または任意の他のタイプの結果処理が発生し得る。本開示は、特定の数の検索結果を識別することを説明するが、本開示は、任意の適切な数の検索結果を識別することも企図する。さらに、本開示は、検索結果を特定の方法で順位付けすることを説明するが、本開示は、検索結果を任意の適切な方法で順位付けすることも企図する。
【００５９】
特定の実施形態において、ソーシャル・ネットワーキング・システム１６０は、「弱い論理積（ｗｅａｋ  ａｎｄ）」演算子（ＷＡＮＤ）を備えるクエリコマンドを生成し得る。ＷＡＮＤ演算子は、クエリコマンド内のその引数（例えば、キーワードまたは演算子とキーワードとを備える論理表現）のうちの１つまたは複数が、特定の回数または特定の時間の割合だけ不在となることを許容し得る。ソーシャル・ネットワーキング・システム１６０は、ＷＡＮＤ演算子を用いてクエリコマンドを生成する際に、構造化クエリにおいて参照されているソーシャル・グラフ要素を、それらのソーシャル・グラフ要素を参照する黙示的なクエリ制約を追加することによって、考慮し得る。ソーシャル・グラフ２００からのこの情報は、ＷＡＮＤ演算子を使用して検索結果を多様化させるために使用され得る。限定ではなく、例として、ユーザが構造化クエリ「パロ・アルトの喫茶店」を入力する場合、ソーシャル・ネットワーキング・システム１６０は、例えば、
（ＷＡＮＤ  ｃａｔｅｇｏｒｙ：＜ｃｏｆｆｅｅ  ｓｈｏｐ＞
ｌｏｃａｔｉｏｎ：＜Ｐａｌｏ  Ａｌｔｏ＞：ｏｐｔｉｏｎａｌ−ｗｅｉｇｈｔ  ０．３）
などのクエリコマンドを生成し得る。この例においては、検索結果がクエリコマンドの（
ｃａｔｅｇｏｒｙ：＜ｃｏｆｆｅｅ  ｓｈｏｐ＞）部分と（ｌｏｃａｔｉｏｎ：＜Ｐａｌｏ  Ａｌｔｏ＞）部分との双方に常に一致することを必要とする代わりに、クエリのパロ・アルト部分が、重み０．３を用いてオプション化される。この場合において、これは、検索結果の３０％が項（ｌｏｃａｔｉｏｎ：＜Ｐａｌｏ  Ａｌｔｏ＞）に一致しなければならず（すなわち、エッジ２０６によって、ロケーション「パロ・アルト」に対応するコンセプト・ノード２０４につなげられていなければならない）、検索結果の残りの７０％は、その項を除外し得ることを意味する。したがって、Ｎが１００である場合、３０件の喫茶店の結果は、「パロ・アルト」のロケーションを有しなければならず、７０件の喫茶店の結果は、いかなる場所に（例えば、喫茶店の静的順位によって決定されるグローバルな上位１００件の喫茶店に）由来してもよい。特定の実施形態において、検索結果が「喫茶店」についてのソーシャル・グラフ要素に常に一致する必要はなく、いくつかの結果はソーシャル・ネットワーキング・システム１６０によって任意のオブジェクト（例えば、場所）となるように選ばれ得るように、項（ｃａｔｅｇｏｒｙ：＜ｃｏｆｆｅｅ  ｓｈｏｐ＞）も、随意的な重みを割り当てられ得る。
【００６０】
特定の実施形態において、ソーシャル・ネットワーキング・システム１６０は、「強い論理和（ｓｔｒｏｎｇ  ｏｒ）」演算子（ＳＯＲ）を備えるクエリコマンドを生成し得る。ＳＯＲ演算子は、クエリコマンド内のその引数（例えば、キーワードまたは演算子とキーワードとを含む論理表現）のうちの１つまたは複数が、特定の回数または特定の時間の割合だけ存在することを必要とし得る。ソーシャル・ネットワーキング・システム１６０は、ＷＡＮＤ演算子を用いてクエリコマンドを生成する際に、構造化クエリにおいて参照されているソーシャル・グラフ要素を、それらのソーシャル・グラフ要素を参照する黙示的なクエリ制約を追加することによって、考慮し得る。ソーシャル・グラフ２００からのこの情報は、ＳＯＲ演算子を使用して検索結果を多様化させるために使用され得る。限定ではなく、例として、ユーザが構造化クエリ「パロ・アルトまたはレッドウッド・シティの喫茶店」を入力する場合、ソーシャル・ネットワーキング・システム１６０は、例えば、
（ＡＮＤ  ｃａｔｅｇｏｒｙ：＜ｃｏｆｆｅｅ  ｓｈｏｐ＞
（ＳＯＲ  ｌｏｃａｔｉｏｎ：＜Ｐａｌｏ  Ａｌｔｏ＞：ｏｐｔｉｏｎａｌ−ｗｅｉｇｈｔ  ０．４
ｌｏｃａｔｉｏｎ：＜Ｒｅｄｗｏｏｄ  Ｃｉｔｙ＞：ｏｐｔｉｏｎａｌ−ｗｅｉｇｈｔ  ０．３））
などのクエリコマンドを転換し得る。この例において、クエリコマンドの（ｌｏｃａｔｉｏｎ：＜Ｐａｌｏ  Ａｌｔｏ＞）部分または（ｌｏｃａｔｉｏｎ：＜Ｒｅｄｗｏｏｄ  Ｃｉｔｙ＞）部分のどちらかに一致する検索結果を許容する代わりに、クエリのパロ・アルト部分は、重み０．４を用いてオプション化され、クエリのレッドウッド・シティ部分は、重み０．３を用いてオプション化される。この場合において、これは、検索結果の４０％が、項（ｌｏｃａｔｉｏｎ：＜Ｐａｌｏ  Ａｌｔｏ＞）に一致しなければならず（すなわち、エッジ２０６によって、（ｌｏｃａｔｉｏｎ：＜Ｐａｌｏ  Ａｌｔｏ＞）に対応するコンセプト・ノード２０４に各々つながっている、「喫茶店」に対応するコンセプト・ノード２０４である）、検索結果の３０％は、項（ｌｏｃａｔｉｏｎ：＜Ｒｅｄｗｏｏｄ
Ｃｉｔｙ＞）に一致しなければならず、検索結果の残りは、パロ・アルト制約またはレッドウッド・シティ制約のどちらかに（または、ある場合においては必要に応じて、双方に）一致することを意味する。したがって、Ｎが１００である場合、４０件の喫茶店の結果は、「パロ・アルト」のロケーションを有しなければならず、３０件の喫茶店の結果は、「レッドウッド・シティ」のロケーションを有しなければならず、３０件の喫茶店は、どちらのロケーションに由来してもよい。
【００６１】
特定の実施形態において、内部クエリ制約と外部クエリ制約とを含むクエリコマンドに応答して、ソーシャル・ネットワーキング・システム１６０は、内部クエリ制約に一致し
、かつ、外部クエリ制約に少なくとも部分的に一致するノードの第１のセットを識別し得る。このように、ソーシャル・ネットワーキング・システム１６０に関連付けられているオブジェクトのバーティカル１６４を検索するプロセスは、内部クエリ制約に一致するオブジェクトを識別する場合に外部クエリ制約が使用される、クエリヒンティングを使用するクエリコマンドを生成することによって改善され得る。これは、ソーシャル・ネットワーキング・システム１６０がより良好な検索結果を生み出すことも可能にし、こうした結果を生成するための処理効率を改善し得る。第１の数の識別されたノードが内部制約に一致し、または内部制約もしくは外部制約に一致すること、および第２の数の識別されたノードが双方の制約もしくは外部制約だけ、またはこれらの任意の組み合わせに一致することをクエリコマンドが必要とするように、クエリコマンドは、例えば、ＷＡＮＤ演算子またはＳＯＲ演算子を使用して形成され得る。第１の数および第２の数は、例えば、実数、割合、または分数であってもよい。本開示は、特定のソーシャル・グラフ要素を特定のクエリ制約に一致するものとして特定の方法で識別することを説明するが、本開示は、任意の適切なソーシャル・グラフ要素を任意の適切なクエリ制約に一致するものとして任意の適切な方法で識別することも企図する。
【００６２】
特定の実施形態において、内部クエリ制約に一致し、かつ、外部クエリ制約に少なくとも部分的に一致するノードの第１のセットを識別することは、少なくとも内部クエリ制約に一致する第１の数のノードを識別することと、内部クエリ制約と外部クエリ制約との双方に一致する第２の数のノードを識別することとを備え得る。クエリコマンドは、クエリコマンドに応答して返される少なくとも第１の数の検索結果が内部クエリ制約と外部クエリ制約との双方に一致することを必要とする一方で、（例えば、ＷＡＮＤ演算子を使用する場合におけるように）少なくとも第２の数の検索結果は内部制約のみに一致することを許すように、形成され得る。限定ではなく、例として、構造化クエリ「パロ・アルトで撮影された女性の写真」に応答して、ソーシャル・ネットワーキング・システム１６０は、例えば、
（ＷＡＮＤ
（ｔｅｒｍ  ｇｅｎｄｅｒ＿ｔｏ＿ｕｓｅｒ：＜ｆｅｍａｌｅ＞）
（ｔｅｒｍ  ｐｈｏｔｏ＿ｐｌａｃｅ＿ｔａｇ＿ｔｏ＿ｕｓｅｒ：＜Ｐａｌｏ
Ａｌｔｏ＞：ｏｐｔｉｏｎａｌ−ｗｅｉｇｈｔ  ０．９））
などの内部クエリ制約を解決するためのクエリコマンドを生成し得る。この場合において、内部制約は、女性ユーザを識別するために存在し、外部制約は、パロ・アルト市で撮影された識別された女性ユーザの写真を識別するために存在する。ユーザ・バーティカル１６４を検索して、内部制約についての一致するユーザ・ノード２０２を識別する場合、女性ユーザが識別されるべきであることをただ特定すること（これは、パロ・アルトにおけるいかなる写真にもタグ付けされていない数多くの女性ユーザを識別し得る）よりはむしろ、クエリコマンドは、ユーザ結果の少なくとも９０％が、パロ・アルトにおける写真においてタグ付けもされている女性でなければならないことを特定する。このように、インデックスは、付加的な制約（ｔｅｒｍ  ｐｈｏｔｏ＿ｐｌａｃｅ＿ｔａｇ＿ｔｏ＿ｕｓｅｒ：＜Ｐａｌｏ  Ａｌｔｏ＞：ｏｐｔｉｏｎａｌ−ｗｅｉｇｈｔ  ０．９）を追加することによって、非正規化される。ユーザ結果の残りの１０％は、「女性」制約に一致しさえすればよい。したがって、内部クエリ制約を解決する場合に外部クエリ制約が考慮されるように、クエリヒンティングが使用される。次に、写真バーティカル１６４が検索されて、以前に識別された女性ユーザがタグ付けされている、パロ・アルトで撮影された写真が識別され得る。ユーザ・バーティカル１６４の検索によって識別されたノードの９０％は、パロ・アルトにおける写真にタグ付け済みである女性ユーザとして既に識別されているため、写真バーティカル１６４の検索は、識別された女性がタグ付けされている比較的多数の写真を生み出すことができる可能性が高い。本開示は、特定のソーシャル・グラフ要素を特定のクエリ制約に一致するものとして特定の方法で識別することを説明するが、本開示は、任意の適切なソーシャル・グラフ要素を任意の適切なクエリ制約に一致するもの
として任意の適切な方法で識別することも企図する。
【００６３】
特定の実施形態において、内部クエリ制約に一致し、かつ、外部クエリ制約に少なくとも部分的に一致するノードの第１のセットを識別することは、各ノードが内部クエリ制約または外部クエリ制約のどちらかに一致する第１の数のノードを識別することと、各ノードが内部クエリ制約と外部クエリ制約との双方に一致する第２の数のノードを識別することとを備え得る。クエリコマンドは、クエリコマンドに応答して返される少なくとも第１の数の検索結果が内部制約に一致し、少なくとも第２の数の検索結果が外部制約に一致し、残りは（例えば、ＳＯＲ演算子を使用する場合におけるように）内部制約または外部制約のどちらかに一致するように、形成され得る。限定ではなく、別の例として、構造化クエリ「マークと女性の写真」に応答して、ソーシャル・ネットワーキング・システム１６０は、例えば、
（ＷＡＮＤ
（ｔｅｒｍ  ｇｅｎｄｅｒ＿ｔｏ＿ｕｓｅｒ：＜ｆｅｍａｌｅ＞）
（ＳＯＲ：ｏｐｔｉｏｎａｌ−ｗｅｉｇｈｔ  ０．８
（ｔｅｒｍ  ｆｒｉｅｎｄ＿ｏｆ：＜Ｍａｒｋ＞：ｏｐｔｉｏｎａｌ−ｗｅｉｇｈｔ  ０．７）
（ｔｅｒｍ  ｎｏｎ＿ｆｒｉｅｎｄ＿ｉｎ＿ｓａｍｅ＿ｐｈｏｔｏ：＜Ｍａｒｋ＞：ｏｐｔｉｏｎａｌ−ｗｅｉｇｈｔ  ０．１）））
などの内部クエリ制約を解決するためのクエリコマンドを生成し得る。この場合において、内部制約は、女性ユーザを識別するために存在し、外部制約は、ユーザ「マーク」と共に撮影された識別された女性ユーザの写真を識別するために存在する。ユーザ・バーティカル１６４を検索して、内部制約についての一致するユーザ・ノード２０２を識別する場合、女性ユーザが識別されるべきであることをただ特定すること（これは、ユーザ「マーク」と一緒のいかなる写真にもタグ付けされていない数多くの女性ユーザを識別し得る）よりはむしろ、クエリコマンドは、ユーザ結果の少なくとも８０％がＳＯＲ制約における制約のうちの１つにも一致する女性でなければならないことを特定する。ここで、ＳＯＲ制約は、ユーザ結果の７０％が（ｆｒｉｅｎｄ＿ｏｆ：＜Ｍａｒｋ＞）制約に一致しなければならず、ユーザ結果の１０％が（ｎｏｎ＿ｆｒｉｅｎｄ＿ｉｎ＿ｓａｍｅ＿ｐｈｏｔｏ：＜Ｍａｒｋ＞）制約に一致しなければならず、検索結果の残りは、どちらかの（または、必要に応じて、双方の）制約に一致することを特定する。したがって、Ｎが１００である場合、２０件のユーザ結果は単に女性でなければならず、５６件のユーザ結果は、ユーザ「マーク」の友達である女性でなければならず、８件のユーザ結果は、「マーク」と一緒の写真にたまたまタグ付けされている、「マーク」の友達ではない女性でなければならず、１６件のユーザ結果は、女性であって、「マーク」の友達であるか、または「マーク」と一緒の写真にタグ付けされている友達ではない人でなければならない。このように、インデックスは、様々な付加的な制約を追加することによって、非正規化され、これは、結果の多様性を生成することにも役立ち得る。したがって、内部クエリ制約を解決する場合に外部クエリ制約（すなわち、ユーザ「マーク」と一緒の写真に存在すること）が考慮されるように、クエリヒンティングが使用される。次に、写真バーティカル１６４が検索されて、以前に識別された女性ユーザのいずれかがタグ付けされている、ユーザ「マーク」と共に撮影された写真が識別され得る。ユーザ・バーティカル１６４の検索によって識別されたノードの８０％は、ユーザ「マーク」と何らかのタイプの関係を有する女性ユーザとして既に識別されているため、写真バーティカル１６４の検索は、検索クエリを満足させる写真を生み出すことができる可能性が高い。本開示は、特定のソーシャル・グラフ要素を特定のクエリ制約に一致するものとして特定の方法で識別することを説明するが、本開示は、任意の適切なソーシャル・グラフ要素を任意の適切なクエリ制約に一致するものとして任意の適切な方法で識別することも企図する。
【００６４】
特定の実施形態において、ソーシャル・ネットワーキング・システム１６０は、クエリ
制約に一致するものとして識別された１つまたは複数のノードを得点付けし得る。識別されたノードは、任意の適切な方法で得点付けされ得る。クエリコマンドが複数のクエリ制約を含む場合、ソーシャル・ネットワーキング・システム１６０は、各クエリ制約に一致するノードを独立してまたは共同で得点付けし得る。ソーシャル・ネットワーキング・システム１６０は、識別されたノードのオブジェクト・タイプに対応するデータ・ストア１６４にアクセスすることによって、識別されたノードの第１のセットを得点付けし得る。限定ではなく、例として、クエリ制約（ｅｘｔｒａｃｔ  ａｕｔｈｏｒｓ：（ｔｅｒｍ  ｐｏｓｔｓ＿ｌｉｋｅｄ＿ｂｙ：＜Ｍａｒｋ＞））に一致する識別されたノードを生成する場合、ソーシャル・ネットワーキング・システム１６０は、ユーザ・バーティカル１６４においてユーザのセット（＜Ｔｏｍ＞、＜Ｄｉｃｋ＞、＜Ｈａｒｒｙ＞）を識別し得る。ソーシャル・ネットワーキング・システム１６０は、次いで、ユーザ＜Ｔｏｍ＞、＜Ｄｉｃｋ＞、および＜Ｈａｒｒｙ＞を、ユーザ＜Ｍａｒｋ＞に対する彼らそれぞれの社会的親和性に基づいて得点付けし得る。例えば、投稿バーティカル１６４のソーシャル・ネットワーキング・システム１６０は、次いで、ユーザ＜Ｔｏｍ＞、＜Ｄｉｃｋ＞、および＜Ｈａｒｒｙ＞の識別されたノードを、ユーザ＜Ｍａｒｋ＞によって「いいね！」の表明をされた投稿のリストにおける投稿数に基づいて得点付けし得る。ユーザ＜Ｔｏｍ＞、＜Ｄｉｃｋ＞、および＜Ｈａｒｒｙ＞は、ユーザ＜Ｍａｒｋ＞によって「いいね！」の表明をされた下記の投稿を書き込み済みであり得る：＜ｐｏｓｔ１＞、＜ｐｏｓｔ２＞、＜ｐｏｓｔ３＞、＜ｐｏｓｔ４＞、＜ｐｏｓｔ５＞、＜ｐｏｓｔ６＞。ユーザ＜Ｄｉｃｋ＞が投稿＜ｐｏｓｔ１＞、＜ｐｏｓｔ２＞、＜ｐｏｓｔ３＞を書き込み、ユーザ＜Ｔｏｍ＞が投稿＜ｐｏｓｔ５＞、＜ｐｏｓｔ６＞を書き込み、ユーザ＜Ｈａｒｒｙ＞が＜ｐｏｓｔ４＞を書き込んだ場合、ソーシャル・ネットワーキング・システム１６０は、ユーザ＜Ｄｉｃｋ＞を最も高く得点付けし得る。なぜならば、ユーザ＜Ｄｉｃｋ＞は、ユーザ＜Ｍａｒｋ＞によって「いいね！」の表明をされた投稿のリスト中の大部分の投稿を書き込んでおり、＜Ｔｏｍ＞および＜Ｈａｒｒｙ＞は、連続的により低いスコアを有するためである。限定ではなく、別の例として、先の例を使用すると、ソーシャル・ネットワーキング・システム１６０は、投稿をその投稿の「いいね！」の数にマッピングするフォワード・インデックス（ｆｏｒｗａｒｄ  ｉｎｄｅｘ）にアクセスし得る。インデックス・サーバは、フォワード・インデックスにアクセスし、ユーザ＜Ｍａｒｋ＞によって「いいね！」の表明をされた投稿のリストの投稿ごとの「いいね！」の数を取り出し得る。インデックス・サーバは、投稿のリスト中の投稿（すなわち、＜ｐｏｓｔ１＞、＜ｐｏｓｔ２＞、＜ｐｏｓｔ３＞、＜ｐｏｓｔ４＞、＜ｐｏｓｔ５＞、＜ｐｏｓｔ６＞）を、それぞれの「いいね！」の数に基づいて得点付けし、ソーシャル・ネットワーキング・システム１６０に、上位スコアの投稿（例えば、上位３つのスコアが付けられた、または最も「いいね！」の表明をされた投稿）の作成者を第１の識別されたノードとして返し得る。適切な各得点付け要因が特定の識別されたノードについて考慮された後、その識別されたノードについての全体的なスコアが決定され得る。ノードの得点付けに基づいて、ソーシャル・ネットワーキング・システム１６０は、次いで、識別されたノードの１つまたは複数のセットを生成し得る。限定ではなく、例として、ソーシャル・ネットワーキング・システム１６０は、閾値スコアよりも大きいスコアを有するノードに対応する識別されたノードのセットのみを生成し得る。限定ではなく、別の例として、ソーシャル・ネットワーキング・システム１６０は、得点付けされたノードを順位付けし、次いで、閾値順位（例えば、上位１０位、上位２０位など）よりも高い順位を有するノードに対応する識別されたノードのセットのみを生成し得る。本開示は、一致するノードを特定の方法で得点付けすることを説明するが、本開示は、一致するノードを任意の適切な方法で得点付けすることも企図する。
【００６５】
特定の実施形態において、ソーシャル・ネットワーキング・システム１６０は、ノードの第１のセットのスコアに少なくとも部分的に基づいて、ノードの第２のセットを得点付けし得る。検索結果は、任意の適切な方法で得点付けされ得る。クエリコマンドが複数のクエリ制約を含む場合、ソーシャル・ネットワーキング・システム１６０は、各クエリ制
約に一致するノードを別個に得点付けし得る。代替的に、ソーシャル・ネットワーキング・システム１６０は、ノードの１つまたは複数の他のセットを得点付けする場合に、ノードの１つのセットからのスコアを利用してもよい。内部制約と外部制約とを有するクエリコマンドについては、ソーシャル・ネットワーキング・システム１６０は、内部クエリ制約に一致するノードの第１のセットを識別し、次いで、これらのノードを得点付けし得る。ソーシャル・ネットワーキング・システム１６０は、次いで、外部クエリ制約に一致するノードの第２のセットを識別し、ノードの第１のセットのスコアに少なくとも部分的に基づいて、ノードの第２のセットを得点付けし得る。限定ではなく、例として、構造化クエリ「私の友達によって「いいね！」の表明をされたページ」に応答して、ソーシャル・ネットワーキング・システム１６０は、例えば、（ｐａｇｅｓ＿ｌｉｋｅｄ＿ｂｙ：（ｆｒｉｅｎｄｓ＿ｏｆ：＜ｍｅ＞））などのクエリコマンドを生成し得る。ソーシャル・ネットワーキング・システム１６０は、ユーザ・バーティカル１６４にアクセスし、クエリを行うユーザの友達であるユーザを要求する内部クエリ制約に対応するノードの第１のセットを識別することによって、内部クエリ制約をまず解決し得る。このユーザの第１のセットは、（＜Ｔｏｍ＞、＜Ｄｉｃｋ＞、＜Ｈａｒｒｙ＞）を備え、彼らは各々、友達タイプ・エッジ２０６によって、クエリを行うユーザのユーザ・ノード２０２につながっている、それぞれのユーザ・ノード２０２に対応し得る。ソーシャル・ネットワーキング・システム１６０は、次いで、このノードの第１のセットを任意の適切な方法で得点付けし得る。例えば、ユーザのセットは、クエリを行うユーザに対するユーザのそれぞれのソーシャル・グラフ親和性に基づいて、得点付けされ得る。ここで、ユーザ「Ｄｉｃｋ」は、セットにおいて最も良好な親和性を有し、「Ｈａｒｒｙ」は、２番目に良好な親和性を有し、「Ｔｏｍ」は、セットにおいて最も低い親和性を有し得る。次に、ソーシャル・ネットワーキング・システム１６０は、ページ・バーティカル１６４にアクセスし、第１のセット内のユーザによって「いいね！」の表明をされたページ（すなわち、「いいね！」タイプ・エッジ２０６によって、ユーザ「Ｔｏｍ」、「Ｄｉｃｋ」、および「Ｈａｒｒｙ」に対応するユーザ・ノード２０２のうちの少なくとも１つにつながっているコンセプト・ノード２０４に対応するページ）を要求する外部クエリ制約に対応するノードの第２のセットを識別することによって、外部クエリ制約を解決し得る。ユーザ「Ｔｏｍ」、「Ｄｉｃｋ」、および「Ｈａｒｒｙ」は、下記のページに「いいね！」済みであり得る：（＜ｐａｇｅ１＞、＜ｐａｇｅ２＞、＜ｐａｇｅ３＞、＜ｐａｇｅ４＞、＜ｐａｇｅ５＞）。ソーシャル・ネットワーキング・システム１６０は、次いで、このノードの第２のセットを任意の適切な方法で得点付けし得る。例えば、ページのセットは、オンライン・ソーシャル・ネットワーク上でのそれらの全体的な人気に基づいて、得点付けされ得る。ここで、グローバルにより人気のあるページは、より人気が低いページよりもそれぞれ高く得点付けされる。ページのセットは、ノードの第１のセットのスコアに少なくとも部分的に基づいて、得点付けされてもよい。例えば、＜ｐａｇｅ１＞は「Ｔｏｍ」によって「いいね！」の表明をされ、＜ｐａｇｅ２＞は「Ｄｉｃｋ」によって「いいね！」の表明をされ、＜ｐａｇｅ３＞は「Ｈａｒｒｙ」によって「いいね！」の表明をされ、＜ｐａｇｅ４＞は「Ｔｏｍ」および「Ｈａｒｒｙ」によって「いいね！」の表明をされ、＜ｐａｇｅ５＞は「Ｔｏｍ」、「Ｄｉｃｋ」、および「Ｈａｒｒｙ」によって「いいね！」の表明をされ得る。この場合において、ソーシャル・ネットワーキング・システム１６０は、より良好な親和性と共にユーザによって「いいね！」の表明をされたページのスコアを改善し、より低い親和性と共にユーザによって「いいね！」の表明をされたページのスコアを低下させる（または、少なくとも程度を抑えて改善する）ことによって、ノードの第１のセットに部分的に基づいて、ノードの第２のセットを得点付けし得る。例えば、ユーザ「Ｄｉｃｋ」は、クエリを行うユーザに対して最良の親和性を有するため、「Ｄｉｃｋ」によって「いいね！」の表明をされたページ（当該ページは、＜ｐａｇｅ２＞、および＜ｐａｇｅ５＞である）は全て、それらのスコアが改善され得る。同様に、ユーザ「Ｔｏｍ」は、クエリを行うユーザに対して最低の親和性を有するため、「Ｔｏｍ」によって「いいね！」の表明をされたページ（当該ページは、＜ｐａｇｅ１＞、＜ｐａｇｅ４＞、および＜ｐａｇｅ５
＞である）は全て、それらのスコアが低下され得る（または、少なくとも、同じだけは改善されない）。適切な各得点付け要因が特定の識別されたノードについて考慮された後、その識別されたノードについての全体的なスコアが決定され得る。ノードの得点付けに基づいて、ソーシャル・ネットワーキング・システム１６０は、次いで、識別されたノードの１つまたは複数のセットを生成し得る。限定ではなく、例として、ソーシャル・ネットワーキング・システム１６０は、閾値スコアよりも大きいスコアを有するノードに対応する識別されたノードのセットのみを生成し得る。限定ではなく、別の例として、ソーシャル・ネットワーキング・システム１６０は、得点付けされたノードを順位付けし、次いで、閾値順位（例えば、上位１０位、上位２０位など）よりも高い順位を有するノードに対応する識別されたノードのセットのみを生成し得る。本開示は、ノードを特定の方法で得点付けすることを説明するが、本開示は、ノードを任意の適切な方法で得点付けすることも企図する。
【００６６】
特定の実施形態において、ソーシャル・ネットワーキング・システム１６０は、内部クエリ制約に一致し、かつ、外部クエリ制約に少なくとも部分的に一致するものとして識別されたノードの第１のセットに基づいて、また、外部クエリ制約に一致するものとして識別されたノードの第２のセットにさらに基づいて、１つまたは複数の検索結果を生成し得る。各検索結果は、複数のノードのうちの１つのノードに対応し得る。既に論じられたように、外部クエリ制約からのクエリヒンティングを使用して識別することであり得る、内部クエリ制約に一致するものとして識別されたノードは、次いで、外部クエリ制約に一致するノードを識別するための基礎として使用され得る。外部クエリ制約に一致するものとして識別されたノードは、得点付けされ（および、場合により、順位付けされ）、次いで、１つまたは複数の（例えば、閾値数）が、ユーザに表示するための検索結果として生成され得る。検索結果は、生成された検索結果が表示される検索結果ページとして、クエリを行うユーザへ提示および送信され得る。限定ではなく、例として、構造化クエリ「パロ・アルトで撮影された女性の写真」に応答して、図５Ｃに示されるように、ソーシャル・ネットワーキング・システム１６０は、クエリヒンティングを使用して、内部クエリ制約に一致するノードの第１のセットを識別し得る。この例において、内部制約は、女性であるユーザを要求し、また、内部制約においては、第１のセットにおいて識別された多数のユーザがパロ・アルト市における写真にタグ付けもされているユーザとなるように、クエリヒンティングが使用され得る。次に、ソーシャル・ネットワーキング・システム１６０は、外部クエリ制約に一致するノードの第２のセットを識別し得る。この例において、外部制約は、パロ・アルトで撮影されている、第１のセットにおけるユーザの写真を要求する。１つまたは複数の検索結果が、次いで、ノードの第２のセットにおいて識別されるノードに基づいて生成され得る。生成された検索結果は、次いで、構造化クエリ「パロ・アルトで撮影された女性の写真」に対応する検索結果ページの一部として、クエリを行うユーザへ送信および表示され得る。検索結果ページは、検索結果を、例えば、第２のセットにおいて識別されたノードに対応する写真のサムネイルとして表示し得る。本開示は、特定の検索結果を特定の方法で生成することを説明するが、本開示は、任意の適切な検索結果を任意の適切な方法で生成することも企図する。
【００６７】
図６は、内部制約と外部制約とを有する検索クエリに応答して検索結果を生成するための例示的な方法６００を示す。本方法は、工程６１０において開始し、工程６１０において、ソーシャル・ネットワーキング・システム１６０は、複数のノード（例えば、ユーザ・ノード２０２またはコンセプト・ノード２０４）と、これらのノード同士をつないでいる複数のエッジ２０６とを備えるソーシャル・グラフ２００にアクセスし得る。２つのノード間の各エッジは、それらの間の単一の分離度合いを表現し得る。ノードは、オンライン・ソーシャル・ネットワークに関連付けられている第１のユーザに対応する第１のノード（例えば、第１のユーザ・ノード２０２）を備え得る。ノードは、オンライン・ソーシャル・ネットワークに関連付けられているコンセプトまたは第２のユーザに各々が対応す
る複数の第２のノードも含み得る。工程６２０において、ソーシャル・ネットワーキング・システム１６０は、第１のユーザから、複数のノードから選択された１以上のノードおよび複数のエッジから選択された１以上のエッジへの参照を含む構造化クエリを受信し得る。工程６３０において、ソーシャル・ネットワーキング・システム１６０は、構造化クエリに基づいて、クエリコマンドを生成し得る。クエリコマンドは、第１のクエリ制約と第２のクエリ制約と（例えば、内部制約と外部制約と）を備える。工程６４０において、ソーシャル・ネットワーキング・システム１６０は、第１のクエリ制約に一致し、かつ、第２のクエリ制約に少なくとも部分的に一致するノードの第１のセットを識別し得る。工程６５０において、ソーシャル・ネットワーキング・システム１６０は、第２のクエリ制約に一致するノードの第２のセットを識別し得る。工程６６０において、ソーシャル・ネットワーキング・システム１６０は、ノードの第１のセットおよびノードの第２のセットに基づいて、１つまたは複数の検索結果を生成し得る。各検索結果は、複数のノードのうちの１つのノードに対応し得る。特定の実施形態は、適切な場合には、図６の方法の１つまたは複数の工程を繰り返し得る。本開示は、図６の方法の特定の工程を特定の順序で発生するものとして説明および示すが、本開示は、図６の方法の任意の適切な工程が任意の適切な順序で発生することも企図する。さらに、本開示は、図６の方法の特定の工程を実行する特定のコンポーネント、デバイス、またはシステムを説明および示すが、本開示は、図６の方法の任意の適切な工程を実行する任意の適切なコンポーネント、デバイス、またはシステムの任意の適切な組み合わせも企図する。
【００６８】
特定の実施形態において、ソーシャル・ネットワーキング・システム１６０は、構造化検索クエリを構文解析し、逆演算子を含むクエリコマンドを生成し得る。ソーシャル・ネットワーキング・システム１６０に関連付けられているオブジェクトのバーティカル１６４を検索するプロセスは、逆演算子を使用することによって改善され得る。ここで、クエリ制約のうちの１つは、その逆制約を含むように修正され得る。ネスト化された検索クエリなどの、内部クエリ制約と外部クエリ制約との双方を有する構造化クエリを構文解析する場合、そのクエリの典型的な処理は、不適切な数の検索結果を生み出し得る。これは、例えば、内部クエリ制約があまりにも多くの結果を生み出し、それらのうちのいずれかが外部クエリ制約を満足させる可能性を低減するという理由で、発生し得る。限定ではなく、例として、「中国の人々によって「いいね！」の表明をされた私の写真」などの比較的複雑な構造化クエリは、図５Ｄに示されるように、（ｉｎｔｅｒｓｅｃｔ（ｐｈｏｔｏｓ＿ｏｆ：＜ｍｅ＞，ｐｈｏｔｏｓ＿ｌｉｋｅｄ＿ｂｙ：（ｕｓｅｒｓ＿ｆｒｏｍ：＜Ｃｈｉｎａ＞）））として構文解析され得る。この構文解析が実行される場合、当該構文解析は、ユーザ・バーティカル１６４をまず検索して、中国に位置するユーザを識別し、次いで、それらの結果と写真バーティカル１６４からの結果とを交差（ｉｎｔｅｒｓｅｃｔ）させて、中国内の識別されたユーザのうちの１人によって「いいね！」の表明をされる、クエリを行うユーザの写真を識別する。しかしながら、ユーザ・バーティカル１６４の最初の検索は、中国内の数百人、または数千人のユーザに対応する結果を生み出し、そのユーザのうちの誰も、クエリを行うユーザのいかなる写真にも「いいね！」の表明をしていないことがあり得る。代替的に、この構造化クエリは、逆演算子を使用して構文解析されてもよい。特定の実施形態において、ある演算子は、特定の逆演算子に対応し得る。限定ではなく、例として、「ｌｉｋｅｄ＿ｂｙ」演算子を使用するのではなく、構造化クエリは、その代わりに、その逆演算子、すなわち、「ｌｉｋｅｒｓ＿ｏｆ」演算子を含むように構文解析され得る。換言すれば、中国のユーザによって「いいね！」の表明をされた写真を検索するのではなく、クエリを行うユーザの写真の「ｌｉｋｅｒｓ＿ｏｆ」をその代わりに検索する。例えば、構造化クエリ「中国の人々によって「いいね！」の表明をされた私の写真」は、（ｉｎｔｅｒｓｅｃｔ（ｐｈｏｔｏｓ＿ｏｆ：＜ｍｅ＞，ｐｈｏｔｏｓ＿ｌｉｋｅｄ＿ｂｙ：（ｉｎｔｅｒｓｅｃｔ（ｌｉｋｅｒｓ＿ｏｆ（ｐｈｏｔｏｓ＿ｏｆ：＜ｍｅ＞），ｕｓｅｒｓ＿ｆｒｏｍ：＜Ｃｈｉｎａ＞））））として構文解析され得る。これは、まず、写真バーティカル１６４がアクセスされて、クエリを行うユーザの写真
が識別され、次いで、それらの写真に「いいね！」の表明をした人達が識別され得るように、クエリの処理順序を変化させる。次に、ユーザ・バーティカル１６４が検索されて、もしあれば、「いいね！」の表明をした人達のうちの誰が中国に住んでいるかが識別され得る。このように、第１のバーティカル１６４の検索がより良好な結果を生み出すように、逆演算子が使用され得る。これは、ソーシャル・ネットワーキング・システム１６０がより良好な検索結果を生み出すことも可能にし、こうした結果を生成するための処理効率を改善し得る。本開示は、構造化クエリに一致するオブジェクトを特定の方法で識別することを説明するが、本開示は、構造化クエリに一致するオブジェクトを任意の適切な方法で識別することも企図する。
【００６９】
特定の実施形態において、オブジェクト・タイプに対応するバーティカル１６４についての検索インデックスは、逆インデックスを備え得る。第１のオブジェクト・タイプについての逆インデックスは、第２のオブジェクト・タイプに関連付けられているクエリ語（ｑｕｅｒｙ  ｔｅｒｍ）を、第１のオブジェクト・タイプの１つまたは複数のオブジェクトにマッピングし得る。限定ではなく、例として、投稿バーティカル１６４における逆インデックスは、＜ｕｓｅｒ＞からの（ｐｏｓｔｓ＿ｌｉｋｅｄ＿ｂｙ：＜ｕｓｅｒ＞）などのユーザに関連付けられているクエリ語を、＜ｕｓｅｒ＞によって「いいね！」の表明をされた投稿のリストにマッピングし得る。同様に、逆インデックスは、＜ｕｓｅｒ＞からの（ｐｏｓｔｓ＿ｃｏｍｍｅｎｔｅｄ＿ｂｙ：＜ｕｓｅｒ＞）などのユーザに関連付けられているクエリ語を、＜ｕｓｅｒ＞によってコメントされた投稿のリストにマッピングし得る。限定ではなく、別の例として、写真バーティカル１６４における逆インデックスは、＜ｕｓｅｒ＞からの（ｐｈｏｔｏｓ＿ｌｉｋｅｄ＿ｂｙ：＜ｕｓｅｒ＞）などのユーザに関連付けられているクエリ語を、＜ｕｓｅｒ＞によって「いいね！」の表明をされた写真のリストにマッピングし得る。同様に、逆インデックスは、＜ｕｓｅｒ＞からの（ｐｈｏｔｏｓ＿ｏｆ：＜ｕｓｅｒ＞）などのユーザに関連付けられているクエリ語を、＜ｕｓｅｒ＞がタグ付けされている写真のリストにマッピングし得る。特定の実施形態において、あるオブジェクト・タイプに対応するバーティカル１６４についての逆インデックスは、そのオブジェクト・タイプに関連付けられているクエリ語を、そのオブジェクト・タイプの１つまたは複数のオブジェクトにマッピングし得る。限定ではなく、例として、ユーザ・バーティカル１６４における逆インデックスは、＜ｕｓｅｒ＞からの（ｆｒｉｅｎｄｓ：＜ｕｓｅｒ＞）などのユーザに関連付けられているクエリ語を、＜ｕｓｅｒ＞の友達の（すなわち、ユーザ・オブジェクト・タイプの）リストにマッピングし得る。特定の実施形態において、逆インデックスは、あるクエリ語について、１つを多数にマッピングし得る。限定ではなく、例として、写真バーティカル１６４の逆インデックスは、１人のユーザを、そのユーザがタグ付けされている多くの写真（例えば、１００枚を超える写真）にマッピングし得る。本開示は、バーティカル１６４を特定の方法で検索することを説明するが、本開示は、バーティカルを任意の適切な方法で検索することも企図する。
【００７０】
特定の実施形態において、あるオブジェクト・タイプに対応するバーティカル１６４についての検索インデックスは、フォワード・インデックスを備え得る。第１のオブジェクト・タイプについてのフォワード・インデックスは、第１のオブジェクト・タイプに関連付けられているクエリ語を、第２のオブジェクト・タイプの１つまたは複数のオブジェクトにマッピングし得る。限定ではなく、例として、投稿バーティカル１６４におけるフォワード・インデックスは、＜ｐｏｓｔ＞からの（ｌｉｋｅｒｓ＿ｏｆ：＜ｐｏｓｔ＞）などの投稿に関連付けられているクエリ語を、＜ｐｏｓｔ＞に「いいね！」するユーザのリストにマッピングし得る。同様に、フォワード・インデックスは、＜ｐｏｓｔ＞からの（ａｕｔｈｏｒ＿ｏｆ：＜ｐｏｓｔ＞）などの投稿に関連付けられているクエリ語を、＜ｐｏｓｔ＞の作成者であるユーザにマッピングし得る。限定ではなく、別の例として、写真バーティカル１６４におけるフォワード・インデックスは、＜ｐｈｏｔｏ＞からの（ｔａｇｇｅｄ＿ｉｎ：＜ｐｈｏｔｏ＞）などの写真に関連付けられているクエリ語を、＜ｐｈ
ｏｔｏ＞にタグ付けされているユーザのリストにマッピングし得る。同様に、フォワード・インデックスは、＜ｐｈｏｔｏ＞からの（ｃｏｍｍｅｎｔｅｒｓ＿ｏｆ：＜ｐｈｏｔｏ＞）などの写真に関連付けられているクエリ語を、＜ｐｈｏｔｏ＞に対してコメントするユーザのリストにマッピングし得る。特定の実施形態において、フォワード・インデックスは、クエリ語についての１対１マッピングを備え得る。限定ではなく、例として、写真バーティカル１６４のフォワード・インデックスは、写真を、その写真の所有者（例えば、その写真をソーシャル・ネットワーキング・システム１６０へアップロードしたユーザ）にマッピングし得る。特定の実施形態において、フォワード・インデックスは、クエリ語についての１対少数マッピングを備え得る。限定ではなく、例として、写真バーティカル１６４におけるフォワード・インデックスは、写真を、その写真にタグ付けされている少数のユーザ（例えば、１０人未満のユーザ）にマッピングし得る。本開示は、バーティカル１６４を特定の方法で検索することを説明するが、本開示は、バーティカルを任意の適切な方法で検索することも企図する。
【００７１】
特定の実施形態において、構造化クエリを構文解析して、複数のクエリ制約を識別した後、ソーシャル・ネットワーキング・システム１６０は、クエリ制約のうちの１つに関連付けられている逆制約を識別し得る。逆制約は、本質的には、構造化クエリを実行する際にバーティカル１６４が検索される順序を逆転させる。特定のクエリ制約が、第２のオブジェクト・タイプへの特定のつながりを有する第１のオブジェクト・タイプの検索結果を要求する場合、その対応する逆制約は、第２のオブジェクト・タイプの検索結果が第１のオブジェクト・タイプと当該つながりを有することを要求し得る。逆制約を使用することは、内部クエリ制約があまりにも多くの結果を生み出し、それらのうちのいずれかが外部クエリ制約を満足させる可能性を低減してしまう場合に、ネスト化されたクエリについて、特に有益であり得る。クエリ制約が、特定のオブジェクト・タイプについてのものである場合、その逆制約は、異なるオブジェクト・タイプ、または同じオブジェクト・タイプについてのものであり得る。特定の実施形態において、クエリ制約は、構造化クエリにおいて参照されている選択されたエッジのうちの１つによって、第２のノード・タイプの１つまたは複数のノードに各々つながっている、第１のノード・タイプの１つまたは複数のノードに対応する第１のオブジェクト・タイプについてのものであり、逆制約は、構造化クエリにおいて参照されている選択されたエッジのうちの１つによって、第１のノード・タイプの１つまたは複数のノードにつながっている、第２のノード・タイプの１つまたは複数のノードに対応する第２のオブジェクト・タイプについてのものであり得る。限定ではなく、例として、第１の制約が、（ｐｏｓｔｓ＿ｌｉｋｅｄ＿ｂｙ：＜ｕｓｅｒ＞）についてのものである場合、このクエリ制約は、「いいね！」タイプ・エッジ２０６によって特定のユーザ・ノード２０２（または、ユーザ・ノード２０２のタイプ）につながっている投稿オブジェクトに対応するコンセプト・ノード２０４を検索する。第１の制約についての逆制約は、例えば、（ｌｉｋｅｒｓ＿ｏｆ：＜ｐｏｓｔｓ＞）であり、これは、特定の投稿に対応する特定のコンセプト・ノード２０４（またはコンセプトノード２０４のタイプ）に「いいね！」タイプ・エッジ２０６によってつながっているユーザ・ノード２０２を検索する。換言すれば、「ｌｉｋｅｄ＿ｂｙ」演算子を使用して、ユーザによって「いいね！」の表明をされた写真を検索する代わりに、逆制約は、「ｌｉｋｅｒｓ＿ｏｆ」演算子を使用することによって、写真に「いいね！」するユーザを検索する。特定の実施形態において、クエリ制約とその逆制約との双方は、同じオブジェクト・タイプについてのものであり得る。限定ではなく、別の例として、第１の制約が（ｆｏｌｌｏｗｅｒｓ＿ｏｆ：＜ｕｓｅｒ＞）についてのものである場合、このクエリ制約は、第２のユーザを購読またはフォローする１人または複数の第１のユーザを検索する。第１の制約についての逆制約は、例えば、（ｕｓｅｒｓ＿ｆｏｌｌｏｗｅｄ＿ｂｙ：＜ｕｓｅｒ＞）であり、これは、第１のユーザによってフォローされる（または、第１のタイプのユーザによってフォローされる）１人または複数の第２のユーザを検索する。本開示は、特定の逆制約を特定の方法で識別することを説明するが、本開示は、任意の適切な逆制約を任意の適切な
方法で識別することも企図する。
【００７２】
特定の実施形態において、ソーシャル・ネットワーキング・システム１６０は、逆制約を含む構造化クエリに基づいて、クエリコマンドを生成し得る。構造化クエリの構文解析が、第１のクエリ制約と、１つまたは複数の第２のクエリ制約とを識別する場合、ソーシャル・ネットワーキング・システム１６０は、第１のクエリ制約についての逆制約を識別し、次いで、その逆制約と１つまたは複数の第２のクエリ制約とを備えるクエリコマンドを生成し得る。特定の実施形態において、逆制約を含むクエリコマンドを生成するソーシャル・ネットワーキング・システム１６０は、逆インデックスの代わりにフォワード・インデックスを検索するクエリコマンドを生成する工程を備え得る。限定ではなく、例として、第１のクエリ制約が（ｐｏｓｔｓ＿ａｕｔｈｏｒｅｄ＿ｂｙ：＜ｕｓｅｒ＞）である場合、このクエリ制約は、＜ｕｓｅｒ＞から＜ｕｓｅｒ＞によって書き込まれた投稿のリストにマッピングする逆インデックスを使用して、投稿バーティカル１６４を検索し得る。ソーシャル・ネットワーキング・システム１６０は、次いで、（ｐｏｓｔｓ＿ａｕｔｈｏｒｅｄ＿ｂｙ：＜ｕｓｅｒ＞）の逆制約を使用するクエリコマンドを生成し、これは、例えば、（ａｕｔｈｏｒｓ＿ｏｆ：＜ｐｏｓｔ＞）であり、これは、＜ｐｏｓｔ＞からその＜ｐｏｓｔ＞を書き込んだユーザのリストへマッピングするフォワード・インデックスを使用して、ユーザ・インデックス１６４を検索し得る。特定の実施形態において、第１のクエリ制約は、それ自体が、内部制約と外部制約とを有するネスト化されたクエリであり得る。この場合において、生成されたクエリコマンドは、第１の逆制約と内部制約との交差を備え得る。限定ではなく、例として、構造化クエリ「中国の人々によって「いいね！」の表明をされた私の写真」に応答して、ソーシャル・ネットワーキング・システム１６０は、構造化クエリを構文解析して、例えば、ｉｎｔｅｒｓｅｃｔ（ｐｈｏｔｏｓ＿ｏｆ：＜ｍｅ＞，ｐｈｏｔｏｓ＿ｌｉｋｅｄ＿ｂｙ：（ｕｓｅｒｓ＿ｆｒｏｍ：＜Ｃｈｉｎａ＞））などのクエリコマンドを生成し得る。しかしながら、このクエリコマンドを実行することは、不適切な数の検索結果を生み出し得る。なぜならば、内部制約（ｕｓｅｒｓ＿ｆｒｏｍ：＜Ｃｈｉｎａ＞）は、外部制約（ｐｈｏｔｏｓ＿ｌｉｋｅｄ＿ｂｙ：＜ｕｓｅｒｓ＞）を満足させない多数のユーザ・ノード２０２を識別し得るためである。したがって、ソーシャル・ネットワーキング・システム１６０は、次いで、例えば、（ｉｎｔｅｒｓｅｃｔ（ｐｈｏｔｏｓ＿ｏｆ：＜ｍｅ＞，ｐｈｏｔｏｓ＿ｌｉｋｅｄ＿ｂｙ：（ｉｎｔｅｒｓｅｃｔ（ｌｉｋｅｒｓ＿ｏｆ（ｐｈｏｔｏｓ＿ｏｆ：＜ｍｅ＞），ｕｓｅｒｓ＿ｆｒｏｍ：＜Ｃｈｉｎａ＞））））などの逆制約を使用するクエリコマンドを生成し得る。この例において、外部制約からの「ｌｉｋｅｄ＿ｂｙ」演算子に基づいて、ソーシャル・ネットワーキング・システム１６０は、内部制約に逆の「ｌｉｋｅｒｓ＿ｏｆ」演算子を含むようにクエリコマンドを修正し、これを内部クエリ制約（ｕｓｅｒｓ＿ｆｒｏｍ：＜Ｃｈｉｎａ＞）と交差させている。これは、中国のユーザによって「いいね！」の表明をされた写真を検索するのではなく、その代わりに、クエリを行うユーザの写真の「ｌｉｋｅｒｓ＿ｏｆ」であるユーザを検索し、それらの結果を中国におけるユーザの検索と交差させるように、バーティカル１６４においてオブジェクト・タイプが検索される順序を逆転させる。特定の実施形態において、逆制約を使用して生成されたクエリコマンドも、例えば、第１の数の識別されたノードが内部制約に一致し、または内部制約もしくは外部制約に一致すること、および第２の数の識別されたノードが双方の制約もしくは外部制約だけ、またはこれらの任意の組み合わせに一致することをクエリコマンドが必要とするように、ＷＡＮＤ演算子およびＳＯＲ演算子を組み込むことによって、前述されたようなクエリヒンティングを使用して生成される。第１の数および第２の数は、例えば、実数、割合、または分数であってもよい。本開示は、特定のクエリコマンドを特定の方法で生成することを説明するが、本開示は、任意の適切なクエリコマンドを任意の適切な方法で生成することも企図する。
【００７３】
特定の実施形態において、逆制約を備えるクエリコマンドに応答して、ソーシャル・ネ
ットワーキング・システム１６０は、その逆制約に一致するノードの第１のセットを識別し得る。前述されたように、ソーシャル・ネットワーキング・システム１６０は、クエリコマンドの１つまたは複数のクエリ制約にそれぞれ一致する、ノードの１つまたは複数の第２のセットも識別し得る。一致するノードは、例えば、既に論じられたように、検索インデックスを参照することなどによって、任意の適切な方法で識別され得る。特定の実施形態において、ソーシャル・ネットワーキング・システム１６０は、構造化クエリにおいて参照されている１つまたは複数の選択されたエッジによって、ノードの第１のセットにおける１つまたは複数のノードにつながっている複数のノードのうちの１つまたは複数のノードを識別し得る。限定ではなく、例として、構造化クエリ「中国の人々によって「いいね！」の表明をされた私の写真」に応答して、ソーシャル・ネットワーキング・システム１６０は、例えば、（ｉｎｔｅｒｓｅｃｔ（ｐｈｏｔｏｓ＿ｏｆ：＜ｍｅ＞，ｐｈｏｔｏｓ＿ｌｉｋｅｄ＿ｂｙ：（ｉｎｔｅｒｓｅｃｔ（ｌｉｋｅｒｓ＿ｏｆ（ｐｈｏｔｏｓ＿ｏｆ：＜ｍｅ＞），ｕｓｅｒｓ＿ｆｒｏｍ：＜Ｃｈｉｎａ＞））））などの逆制約を使用するクエリコマンドを生成し得る。ここで、構造化クエリにおける＜ｍｅ＞と＜Ｃｈｉｎａ＞とへの参照は、特定のソーシャル・グラフ要素、すなわち、クエリを行うユーザに対応するユーザ・ノード２０２と、ロケーション「中国」に対応するコンセプト・ノード２０４とを参照する。同様に、「私の写真」と「「いいね！」の表明をされた」とへの参照は、参照されるノードを所望の検索結果につなげている特定のエッジ・タイプを参照する。この場合において、クエリ制約（ｐｈｏｔｏｓ＿ｌｉｋｅｄ＿ｂｙ：（ｉｎｔｅｒｓｅｃｔ（ｌｉｋｅｒｓ＿ｏｆ（ｐｈｏｔｏｓ＿ｏｆ：＜ｍｅ＞），ｕｓｅｒｓ＿ｆｒｏｍ：＜Ｃｈｉｎａ＞）））は、それ自体がネスト化されたクエリであり、そのネスト化されたクエリにおいて、内部制約は、クエリを行うユーザの写真の「ｌｉｋｅｒｓ＿ｏｆ」であるユーザと、中国からのユーザとを要求する。ユーザ・バーティカル１６４を検索して、制約（ｌｉｋｅｒｓ＿ｏｆ（ｐｈｏｔｏｓ＿ｏｆ：＜ｍｅ＞））についての一致するユーザ・ノード２０２を識別する場合、ソーシャル・ネットワーキング・システム１６０は、ノードの比較的小さいセットを識別することが可能であり得る。なぜならば、クエリを行うユーザの写真に「いいね！」の表明をしたユーザの数は、おそらくは比較的小さい数（例えば、数十人から数百人のユーザ）であるためである。次に、ソーシャル・ネットワーキング・システム１６０は、ユーザ・バーティカル１６４を検索して、制約（ｕｓｅｒｓ＿ｆｒｏｍ：＜Ｃｈｉｎａ＞）についての一致するユーザ・ノード２０２を識別し得る。制約（ｕｓｅｒｓ＿ｆｒｏｍ：＜Ｃｈｉｎａ＞）は、数千件または数百万件の結果を生み出すことがあり、それらのうちの大部分が、おそらくはクエリコマンドを満足させないことに留意されたい。しかしながら、これを逆制約によって識別されたオブジェクトと交差させることによって、クエリを行うユーザの写真に「いいね！」の表明をする中国からのユーザに対応する、オブジェクトのより合理的なサイズのセットが識別される。いったんこの内部制約が解決されると、識別されたユーザのセットは、内部制約によって識別されたユーザによって「いいね！」の表明をされた写真を識別するための外部制約を解決するために使用され得る。写真のこのセットは、次いで、中国からのユーザによって「いいね！」の表明をされた、クエリを行うユーザの写真のセットが識別されるように、制約（ｐｈｏｔｏｓ＿ｏｆ：＜ｍｅ＞）の結果と交差され得る。本開示は、特定のソーシャル・グラフ要素を特定の逆制約に一致するものとして特定の方法で識別することを説明するが、本開示は、任意の適切なソーシャル・グラフ要素を任意の適切な逆制約に一致するものとして任意の適切な方法で識別することも企図する。
【００７４】
特定の実施形態において、ソーシャル・ネットワーキング・システム１６０は、逆クエリ制約に一致するものとして識別されたノードの第１のセットと、１つまたは複数のクエリ制約に一致するノードの１つまたは複数の第２のセットとのそれぞれに基づいて、１つまたは複数の検索結果を生成し得る。各検索結果は、複数のノードのうちの１つのノードに対応し得る。クエリコマンドに一致するものとして識別されたノードは、得点付けされ（および、場合により、順位付けされ）、次いで、１つまたは複数の（例えば、閾値数）
が、ユーザに表示するための検索結果として生成され得る。検索結果は、生成された検索結果が表示される検索結果ページとして、クエリを行うユーザへ提示および送信され得る。限定ではなく、例として、構造化クエリ「中国の人々によって「いいね！」の表明をされた私の写真」に応答して、図５Ｄに示されるように、ソーシャル・ネットワーキング・システム１６０は、逆制約に一致するノードの第１のセットを識別し得る。この例において、（逆制約によって修正されるような）内部制約は、クエリを行うユーザの写真に「いいね！」の表明をする人々でもある中国からのユーザを要求する。次に、ソーシャル・ネットワーキング・システム１６０は、外部クエリ制約に一致するノードの第２のセットを識別し得る。この例において、外部制約は、第１のセット内のユーザのうちの１人によって「いいね！」の表明をされた、クエリを行うユーザの写真を要求する。１つまたは複数の検索結果は、次いで、ノードの第２のセットにおいて識別されるノードに基づいて生成され得る。生成された検索結果は、次いで、構造化クエリ「中国の人々によって「いいね！」の表明をされた私の写真」に対応する検索結果ページの一部として、クエリを行うユーザに送信および表示され得る。検索結果ページは、検索結果を、例えば、第２のセットにおいて識別されたノードに対応する写真のサムネイルとして表示し得る。特定の実施形態において、ソーシャル・ネットワーキング・システム１６０は、ノードの第１のセットとノードの第２のセットの双方において識別されたノードごとに検索結果を生成し得る。特定の実施形態において、ソーシャル・ネットワーキング・システム１６０、ソーシャル・ネットワーキング・システム１６０によって生成された各検索結果は、構造化クエリにおいて参照されている１つまたは複数のエッジによって、ノードの第２のセットにつながっているノードの第１のセット（または、逆もまた同様）のノードに対応し得る。本開示は、特定の検索結果を特定の方法で生成することを説明するが、本開示は、任意の適切な検索結果を任意の適切な方法で生成することも企図する。
【００７５】
特定の実施形態において、ソーシャル・ネットワーキング・システム１６０は、初期クエリコマンドが閾値数未満の検索結果を生成する場合に、逆制約を備えるクエリコマンドを生成し得る。ネスト化された検索クエリを構文解析する場合、そのクエリの典型的な処理は、不適切な数の検索結果を生み出し得る。これは、例えば、内部クエリ制約があまりにも多くの結果を生み出し、それらのいずれかが外部クエリ制約を満足させる可能性を低減し、したがって、検索結果が少数しかまたは全く生成されないという理由で、発生し得る。逆制約は、構造化クエリの元の構文解析が不適切な数の検索結果を生み出すクエリコマンドを生成する特定のシナリオにおいて使用され得る。特定の実施形態において、逆制約は、特定のクエリ制約が構造化クエリの構文解析中に識別される場合に、使用され得る。特定のクエリ制約は、逆制約を使用する置換に適切なものとして既に識別済みであり得る。換言すれば、特定のクエリ制約は、おそらくはあまりにも多くのオブジェクトを識別するものとしてフラグを付けられ、逆制約がその特定のクエリ制約の代わりに使用され得る。限定ではなく、例として、ソーシャル・ネットワーキング・システム１６０は、クエリ制約によって生成されるセットが大きくなりそうな場合（例えば、（ｕｓｅｒｓ＿ｆｒｏｍ：＜ｃｏｕｎｔｒｙ＞）、または多数の「いいね！」の表明をした人達を有するページについての（ｌｉｋｅｒｓ＿ｏｆ：＜ｐａｇｅ＞））に、クエリ制約のリストを（例えば、アグリゲータ３２０に）記憶し得る。リストに関するクエリ制約が、クエリの構文解析中に識別される場合、ソーシャル・ネットワーキング・システム１６０は、次いで、リストに含まれる制約の逆制約を使用するクエリコマンドを自動的に生成し得る。特定の実施形態において、逆制約は、例えば、外部クエリ制約を満足させない多数のオブジェクトを内部クエリ制約が識別する場合などの、ネスト化された検索クエリを構文解析するためにクエリヒンティングが使用される場合に、使用され得る。逆制約は、外部制約を満足させない多数のオブジェクトを要求する内部制約を有するクエリコマンドを構造化クエリの初期構文解析が生み出すシナリオにおいて、特に有益であり得る。限定ではなく、例として、ソーシャル・ネットワーキング・システム１６０は、第１のクエリ制約を満足させるノードの数を決定し得る。ノードの数が、ノードの閾値数よりも大きい場合、ソーシャル
・ネットワーキング・システム１６０は、第１の逆制約を用いてクエリコマンドを生成し得る。そうでない場合、ソーシャル・ネットワーキング・システム１６０は、第１のクエリ制約を用いてクエリコマンドを生成し得る。換言すれば、構造化クエリの元の構文解析が、あまりにも多くのオブジェクトを識別するクエリコマンドを生み出す場合には、逆制約が代わりに使用されて、生成される結果の数が少なくされ得る。限定ではなく、別の例として、ソーシャル・ネットワーキング・システム１６０は、構造化クエリに基づいて、予備的クエリコマンドを生成し得る。この予備的クエリコマンドは、第１のクエリ制約と、１つまたは複数の第２のクエリ制約とを含み得る。このシナリオにおいて、予備的クエリコマンドは、構造化クエリのデフォルトの構文解析または通常の構文解析と見なされ得る。ソーシャル・ネットワーキング・システム１６０は、次いで、予備的クエリコマンドに基づいて、検索結果の第１のセットを生成し得る。検索結果の第１のセットが、検索結果の閾値数よりも少ない場合、ソーシャル・ネットワーキング・システム１６０は、第１の逆制約を用いてクエリコマンドを生成し、次いで、第１の逆制約を用いるクエリコマンドに基づいて（例えば、逆制約および外部制約に一致するノードの新たなセットを識別することによって）、検索結果の第２のセットを生成し得る。換言すれば、構造化クエリの元の構文解析が、あまりにも少ない検索結果を生成する場合には、逆制約が使用されて、検索結果が改善され得る。本開示は、特定のクエリコマンドを特定の方法で生成することを説明するが、本開示は、任意の適切なクエリコマンドを任意の適切な方法で生成することも企図する。
【００７６】
図７は、逆演算子を使用して検索クエリを構文解析するための例示的な方法７００を示す。本方法は、工程７１０において開始し、工程７１０において、ソーシャル・ネットワーキング・システム１６０は、複数のノード（例えば、ユーザ・ノード２０２またはコンセプト・ノード２０４）と、これらのノード同士をつなげている複数のエッジ２０６とを備えるソーシャル・グラフ２００にアクセスし得る。２つのノード間の各エッジは、それらの間の単一の分離度合いを表現し得る。ノードは、オンライン・ソーシャル・ネットワークに関連付けられている第１のユーザに対応する第１のノード（例えば、第１のユーザ・ノード２０２）を備え得る。ノードは、オンライン・ソーシャル・ネットワークに関連付けられているコンセプトまたは第２のユーザに各々が対応する複数の第２のノードも含み得る。工程７２０において、ソーシャル・ネットワーキング・システム１６０は、第１のユーザから、複数のノードから選択された１以上のノードおよび複数のエッジから選択された１以上のエッジへの参照を含む構造化クエリを受信し得る。工程７３０において、ソーシャル・ネットワーキング・システム１６０は、構造化クエリを構文解析して、第１のクエリ制約と、１つまたは複数の第２のクエリ制約とを識別し得る。工程７４０において、ソーシャル・ネットワーキング・システム１６０は、第１のクエリ制約に関連付けられている第１の逆制約を識別し得る。工程７５０において、ソーシャル・ネットワーキング・システム１６０は、構造化クエリに基づいて、クエリコマンドを生成し得る。クエリコマンドは、第１の逆制約と、１つまたは複数の第２のクエリ制約とを備え得る。クエリコマンドは、第１のクエリ制約も備え得る。工程７６０において、ソーシャル・ネットワーキング・システム１６０は、クエリコマンドに対応する１つまたは複数の検索結果を生成し得る。各検索結果は、複数のノードのうちの１つのノードに対応し得る。特定の実施形態は、適切な場合には、図７の方法の１つまたは複数の工程を繰り返し得る。本開示は、図７の方法の特定の工程を特定の順序で発生するものとして説明および示すが、本開示は、図７の方法の任意の適切な工程が任意の適切な順序で発生することも企図する。さらに、本開示は、図７の方法の特定の工程を実行する特定のコンポーネント、デバイス、またはシステムを説明および示すが、本開示は、図７の方法の任意の適切な工程を実行する任意の適切なコンポーネント、デバイス、またはシステムの任意の適切な組み合わせも企図する。
【００７７】
意図に基づく検索結果の生成
特定の実施形態において、クエリを行うユーザから受信される構造化クエリに応答して、ソーシャル・ネットワーキング・システム１６０は、その構造化クエリに対応する、１つまたは複数の検索結果を生成し得る。ソーシャル・ネットワーキング・システム１６０は、構造化クエリを満足させる、または、そうでなければこれに一致するオブジェクト（例えば、ユーザ、写真、プロフィール・ページ（または、プロフィール・ページのコンテンツ）など）を識別し得る。識別された各オブジェクトに対応する検索結果が、次いで、生成され得る。限定ではなく、例として、構造化クエリ「マット（Ｍａｔｔ）とステファニー（Ｓｔｅｐｈａｎｉｅ）の写真（ｐｈｏｔｏｓ＿ｏｆ）」に応答して、ソーシャル・ネットワーキング・システム１６０は、ユーザ「マット」および「ステファニー」の双方がタグ付けされている写真を識別し得る。この写真に対応する検索結果が、次いで、生成され、ユーザへ送信され得る。特定の実施形態において、各検索結果は、１つまたは複数のオブジェクトに関連付けられ、ここで、構造化クエリの各クエリ制約は、その特定の検索結果に関連付けられているオブジェクトのうちの１つまたは複数によって満足させられる。限定ではなく、例として、先の例を続けると、構造化クエリ「マットとステファニーの写真」に応答して、ソーシャル・ネットワーキング・システム１６０は、クエリを構文解析して、クエリコマンド（ｉｎｔｅｒｓｅｃｔ（ｐｈｏｔｏｓ＿ｏｆ：＜Ｍａｔｔ＞），（ｐｈｏｔｏｓ＿ｏｆ：＜Ｓｔｅｐｈａｎｉｅ＞））を生成し得る。このクエリコマンドは、実行されて、（双方共に構造化クエリにおいて参照された）ユーザ「マット」および「ステファニー」の双方がタグ付けされている（すなわち、彼らのユーザ・ノード同士２０２が、タグ付けタイプ・エッジ（ｔａｇｇｅｄ−ｉｎ−ｔｙｐｅ  ｅｄｇｅｓ）２０６によって、写真に対応するコンセプト・ノード２０４につなげられている）写真に対応する検索結果を生成し得る。換言すれば、（ｐｈｏｔｏｓ＿ｏｆ：＜Ｍａｔｔ＞）および（ｐｈｏｔｏｓ＿ｏｆ：＜Ｓｔｅｐｈａｎｉｅ＞）についての制約の双方は、その写真によって満足させられる。なぜならば、その写真は、ユーザ「マット」および「ステファニー」についてのユーザ・ノード２０２につなげられているからである。本開示は、検索結果を特定の方法で生成することを説明するが、本開示は、検索結果を任意の適切な方法で生成することも企図する。
【００７８】
特定の実施形態において、ソーシャル・ネットワーキング・システム１６０は、クエリを行うユーザの検索意図に基づいて、検索結果を生成し得る。検索結果（例えば、識別されたノード、または、それらの対応するプロフィール・ページ）は、検索結果を生成するために使用された特定の検索アルゴリズムによって決定されるような、検索クエリに対するそれらの相対的な関連性の度合いに従って、得点付けされ（または順位付けされ）、ユーザへ提示され得る。検索結果は、ユーザに対するそれらの相対的な関連性の度合いに従って、得点付けされ、ユーザへ提示されてもよい。特定の実施形態において、検索結果を得点付けするために使用される検索アルゴリズムは、クエリを行うユーザの検索意図に基づいて、変更され得る。検索意図は、検索クエリのタイプおよび／またはそのユーザが存在する検索モードのタイプに関する、クエリを行うユーザの意図に及ぶ。検索クエリに応答して、ソーシャル・ネットワーキング・システム１６０は、その検索クエリについての１つまたは複数の検索意図を決定し得る。検索意図は、例えば、検索クエリにおいて参照されているソーシャル・グラフ要素、検索クエリ内の用語、クエリを行うユーザに関連付けられているユーザ情報、クエリを行うユーザの検索履歴、パターン検出、クエリもしくはユーザに関係する他の適切な情報、または、これらの任意の組み合わせなどに基づいて、多様な手法で決定され得る。検索結果を生成するために使用される検索アルゴリズムは、あるクエリに応答して検索結果が順位付けされる手法が、別のクエリに応答して検索結果が順位付けされる手法とは異なるように、これらの検索意図に基づいて修正され得る。限定ではなく、例として、クエリを行うユーザが、そのクエリを行うユーザがデートをしたいと興味を持ち得る他のユーザを識別したいと興味を持つ場合、デートの意図を有する検索クエリに応答して生成される検索結果は、「独身」であると示すユーザが、「交際中」であると示すユーザよりも上位に順位付けされるように、結果を順位付けし得る。同様
に、クエリを行うユーザが、仕事を見つけるためにネットワーキングするべきユーザを識別したいと興味を持つ場合、ネットワーキング意図を有する検索クエリに応答して生成される検索結果は、クエリを行うユーザと同じ地理的領域内の企業で働くユーザが、地理的に離れた企業で働くユーザよりも上位に順位付けされるように、順位付けされ得る。特定の実施形態において、検索結果は、検索エンジンによって実装される特定の得点付け／順位付けアルゴリズムによって、得点付けまたは順位付けされ得る。限定ではなく、例として、検索クエリまたはユーザに対する関連性がより高い検索結果は、関連性がより低いリソースよりも高く得点付けされ得る。関連性が決定される手法は、ソーシャル・ネットワーキング・システム１６０によって識別される検索意図に基づいて修正され得る。特定の実施形態において、ソーシャル・ネットワーキング・システム１６０は、１つまたは複数の検索結果を順位付けし得る。検索結果は、例えば、検索結果について決定されたスコアに基づいて、順位付けされ得る。最も関連性のある結果（例えば、最高の／最良のスコア）は、最上位に順位付けされ、残りの結果は、最も関連性の低い結果が最下位に順位付けされるように、それらのスコア／関連性と同等の、より低い順位を有し得る。本開示は、検索結果を検索意図に基づいて特定の方法で順位付けすることを説明するが、本開示は、検索結果を検索意図に基づいて任意の適切な方法で順位付けすることも企図する。
【００７９】
特定の実施形態において、ソーシャル・ネットワーキング・システム１６０は、構造化クエリにおいて参照されている、１つまたは複数の選択されたノードまたは選択されたエッジに基づいて、１つまたは複数の検索意図を決定し得る。特定のソーシャル・グラフ要素は、特定の検索意図に対応し得る。特定の実施形態において、ソーシャル・ネットワーキング・システム１６０は、特定のソーシャル・グラフ要素が特定の検索意図ベースのソーシャル・グラフ情報に対応する確率を決定し得る。限定ではなく、例として、特定の検索意図が特定のクエリに関連付けられる確率ｐを決定する場合、この確率の計算は、ソーシャル・グラフ情報も考慮に入れ得る。したがって、特定の検索意図Ｉに対応する確率は、特定のソーシャル・グラフ要素Ｘおよびクエリｑが与えられると、ｐ＝（Ｉ｜Ｘ，ｑ）として計算され得る。特定の実施形態において、ソーシャル・ネットワーキング・システム１６０は、構造化クエリにおいて参照されている、ノードのうちの１つもしくは複数またはエッジのうちの１つもしくは複数に対応する、１つまたは複数の検索意図を識別し得る。各検索意図は、１つまたは複数のソーシャル・グラフ要素に対応し得る。同様に、特定のソーシャル・グラフ要素は、１つまたは複数の検索意図に対応し得る。限定ではなく、例として、構造化クエリ「パロ・アルトの独身の女性」について、ソーシャル・ネットワーキング・システム１６０は、構造化クエリにおいて参照されている独身タイプ・エッジ（ｓｉｎｇｌｅ−ｔｙｐｅ  ｅｄｇｅ）２０６が、デートのための意図に対応し、クエリを行うユーザが、デートまたは交流の目的のためのユーザを見つけたいと興味を持っていることを示すと決定し得る。同様に、構造化クエリにおいて参照されている女性の性別タイプ・エッジ２０６も、デートのための意図に対応し得る。換言すれば、クエリを行うユーザが、「独身」および／または「女性」に対応するソーシャル・グラフ要素を参照する構造化クエリを提出したため、ソーシャル・ネットワーキング・システム１６０は、クエリを行うユーザがデートの目的のためのオブジェクトを見つけようと試行していると決定することが可能であり、次いで、この決定された意図に基づいて、その後、検索結果を適切に得点付け／順位付けすることが可能であり得る。限定ではなく、別の例として、構造化クエリ「パロ・アルトでソフトウェア・エンジニアとして働く人々」について、ソーシャル・ネットワーキング・システム１６０は、構造化クエリにおいて参照されている勤務先タイプ・エッジ（ｗｏｒｋ−ａｔ−ｔｙｐｅ  ｅｄｇｅｓ）２０６が、ネットワーキングのための意図に対応し、クエリを行うユーザがネットワーキング、リクルーティング、または採用の目的のためのユーザを見つけたいと興味を持つことを示すと決定し得る。本開示は、特定のタイプの検索意図を説明するが、本開示は、任意の適切なタイプの検索意図も企図する。特定の実施形態において、ソーシャル・ネットワーキング・システム１６０は、パターン検出モデルを参照することによって、１つまたは複数の検索意図を識別
し得る。限定ではなく、例として、ソーシャル・ネットワーキング・システム１６０は、特定の検索意図に対応する特定のソーシャル・グラフ要素をインデックス付けするパターン検出モデルにアクセスし得る。インデックスは、例えば、特定のノードもしくはノード・タイプ、または特定のエッジもしくはエッジ・タイプが、単独でまたは組み合わせにおいて、特定の検索意図に対応することを示し得る。ソーシャル・ネットワーキング・システム１６０は、次いで、構造化クエリにおいて参照されているノードまたはエッジのうちのいずれかが、パターン検出モデルにおいてインデックス付けされたノードまたはエッジに一致するのかを決定し得る。インデックスにおいて見出された一致するノードまたはエッジごとに、ソーシャル・ネットワーキング・システム１６０は、パターン検出モデルにおいてインデックス付けされた検索意図を、構造化クエリにおいて参照されている一致するノードまたは一致するエッジに対応するものとして識別し得る。本開示は、特定の検索意図を特定の方法で決定することを説明するが、本開示は、任意の適切な検索意図を任意の適切な方法で決定することも企図する。
【００８０】
特定の実施形態において、ソーシャル・ネットワーキング・システム１６０は、クエリを行うユーザに関連付けられているユーザ・プロフィール・ページからのユーザ情報に基づいて、１つまたは複数の検索意図を決定し得る。クエリを行うユーザは、ソーシャル・グラフ２００の特定のユーザ・ノード２０２に関連付けられ、特定のユーザ・プロフィール・ページにも関連付けられ得る。特定のユーザ情報は、特定の検索意図に対応し得る。限定ではなく、例として、クエリを行うユーザが、そのユーザのユーザ・プロフィール・ページ上で、ユーザが「独身」である（すなわち、交際中ではない）ことを交際ステータス・フィールドにおいて示した場合、ソーシャル・ネットワーキング・システム１６０は、このユーザ・プロフィール情報がデートのための意図に対応すると決定し得る。ソーシャル・ネットワーキング・システム１６０は、次いで、このクエリを行うユーザからの特定の構造化クエリはデートの検索意図に関連付けられる可能性が高いと決定し得る。限定ではなく、別の例として、クエリを行うユーザが、そのユーザのユーザ・プロフィール・ページ上で、ユーザが「無職」であることを職歴フィールドにおいて示した場合、ソーシャル・ネットワーキング・システム１６０は、このユーザ・プロフィール情報はネットワーキングのための意図に対応すると決定し得る。ソーシャル・ネットワーキング・システム１６０は、次いで、このクエリを行うユーザからの特定の構造化クエリは、ネットワーキング意図に関連付けられる可能性が高いと決定し得る。本開示は、検索意図を特定のユーザ情報に基づいて特定の方法で決定することを説明するが、本開示は、検索意図を任意の適切なユーザ情報に基づいて任意の適切な方法で決定することも企図する。
【００８１】
特定の実施形態において、ソーシャル・ネットワーキング・システム１６０は、構造化クエリに応答して生成されるクエリコマンドのクエリ制約のうちの１つまたは複数に基づいて、１つまたは複数の検索意図を決定し得る。クエリを行うユーザから構造化クエリを受信することに応答して、ソーシャル・ネットワーキング・システム１６０は、構造化クエリに基づいて、クエリコマンドを生成し得る。ここで、クエリコマンドは、１つまたは複数のクエリ制約を備え得る。特定のクエリ制約は、特定の検索意図に対応し得る。限定ではなく、例として、構造化クエリ「パロ・アルト（Ｐａｌｏ  Ａｌｔｏ）の独身（ｓｉｎｇｌｅ）の女性（ｆｅｍａｌｅ）」について、ソーシャル・ネットワーキング・システム１６０は、例えば、（ｉｎｔｅｒｓｅｃｔ（ｕｓｅｒ＿ｇｅｎｄｅｒ：＜ｆｅｍａｌｅ＞，  ｕｓｅｒ＿ｌｏｃａｔｉｏｎ：＜Ｐａｌｏ  Ａｌｔｏ＞，ｕｓｅｒ＿ｒｅｌａｔｉｏｎｓｈｉｐ＿ｓｔａｔｕｓ：＜ｓｉｎｇｌｅ＞））などのクエリコマンドを生成し得る。ソーシャル・ネットワーキング・システム１６０は、次いで、（ｕｓｅｒ＿ｇｅｎｄｅｒ：＜ｆｅｍａｌｅ＞）についてのクエリ制約がデートのための意図に対応すると決定し得る。本開示は、検索意図を特定のクエリ制約に基づいて特定の方法で決定することを説明するが、本開示は、検索意図を任意の適切なクエリ制約に基づいて任意の適切な方法で決定することも企図する。
【００８２】
特定の実施形態において、ソーシャル・ネットワーキング・システム１６０は、クエリを行うユーザに関連付けられている検索履歴に基づいて、１つまたは複数の検索意図を決定し得る。クエリを行うユーザについて以前に決定された検索意図は、クエリを行うユーザの現在の検索クエリの検索意図に一致する可能性が高くなり得る。限定ではなく、例として、デートの意図に対応するとソーシャル・ネットワーキング・システム１６０が決定した検索クエリを、クエリを行うユーザが以前に実行したことがある場合において、その後の検索クエリが特定の検索意図に対応する確率を決定するとき、ソーシャル・ネットワーキング・システム１６０は、デートの意図がその後の検索クエリに対応する比較的より高い確率を有すると決定し得る。なぜならば、クエリを行うユーザは、その意図を有する検索クエリを以前に実行したことがあるためである。限定ではなく、別の例として、ネットワーキング意図に対応するとソーシャル・ネットワーキング・システム１６０が決定した検索クエリを、クエリを行うユーザが一度も実行したことがない場合において、その後の検索クエリが特定の検索意図に対応する確率を決定するとき、ソーシャル・ネットワーキング・システム１６０は、ネットワーキング意図がその後の検索クエリに対応する比較的より低い確率を有すると決定し得る。なぜならば、クエリを行うユーザは、その意図を有する検索クエリを一度も実行したことがないためである。本開示は、検索意図を特定の検索履歴情報に基づいて特定の方法で決定することを説明するが、本開示は、検索意図を任意の適切な検索履歴情報に基づいて任意の適切な方法で決定することも企図する。
【００８３】
特定の実施形態において、ソーシャル・ネットワーキング・システム１６０は、構造化クエリからの１つまたは複数のｎ−ｇｒａｍに基づいて、１つまたは複数の検索意図を決定し得る。ｎ−ｇｒａｍは、構造化クエリからのｎアイテムの任意の隣接するシーケンスであり、これは、文字列またはソーシャル・グラフ参照を含み得る。特定のｎ−ｇｒａｍは、特定の検索意図に対応し得る。本開示は、検索意図を特定のクエリ語に基づいて特定の方法で決定することを説明するが、本開示は、検索意図を任意の適切なクエリ語に基づいて任意の適切な方法で決定することも企図する。
【００８４】
特定の実施形態において、ソーシャル・ネットワーキング・システム１６０は、生成された検索結果を検索意図に基づいて得点付けし得る。検索意図は、例えば、検索数もしくは検索割合、ソーシャル・グラフ情報、ソーシャル・グラフ親和性、検索履歴、他の適切な要因、または、これらの任意の組み合わせなどの、１つまたは複数の要因に基づいて検索結果が得点付けされるべきであることを示し得る。検索結果は、広告スポンサーシップに基づいて得点付けされてもよい。本開示は、検索結果を特定の方法で得点付けすることを説明するが、本開示は、検索結果を任意の適切な方法で得点付けすることも企図する。
【００８５】
特定の実施形態において、ソーシャル・ネットワーキング・システム１６０は、１つまたは複数の検索意図に基づいて、検索結果を得点付けし得る。ソーシャル・ネットワーキング・システム１６０は、１つまたは複数の得点付けアルゴリズムを使用して、検索結果を得点付けし得る。ここで、検索結果は、検索クエリに対するそれらの関連性に基づいて得点付けされ得る。いくつかの場合において、ユーザは、あるクエリ制約に一致する写真またはユーザなどの、特定のオブジェクト・タイプについての検索要求を提出し得るが、静的順位によって決定される単なる上位Ｎ個のオブジェクトよりも検索結果における多様性を欲し得る。代わりに、クエリを行うユーザは、ユーザの検索意図を反映する検索結果を見たいと欲し得る。関係性の決定、および、したがって、検索結果の得点付けは、クエリについての決定された検索意図によって修正またはカスタマイズされ得る。特定の得点付けアルゴリズムは、特定の検索意図について使用され、得点付けアルゴリズムの特定の要因は、特定の検索意図について、より大きくまたはより小さく重み付けされ得る。限定ではなく、例として、先の例を続けると、構造化クエリ「パロ・アルトでソフトウェア・エンジニアとして働く人々」に応答して、ソーシャル・ネットワーキング・システム１６
０は、クエリの検索意図のうちの１つがネットワーキングについてのものであると決定し得る。このクエリに一致する識別されたユーザ・ノード２０２を得点付けする場合、ソーシャル・ネットワーキング・システム１６０は、典型的には、ソーシャル・グラフ親和性に基づいて得点付けし、クエリを行うユーザの一次のつながりを、より離れたつながりよりも高く得点付けし得る。しかしながら、ユーザが、ネットワーキング目的のためにクエリを行っている場合、ユーザは、クエリを行うユーザと識別されたユーザ・ノード２０２との間のつながりの度合いを気にしないことがあり得る。ネットワーキング目的のためにより有益なことは、例えば、ソフトウェア・エンジニアとして働く経験をより多く有するユーザ、または同じくソフトウェア・エンジニアである他のユーザ（特に、同じくパロ・アルトに住む他のソフトウェア・エンジニア）につながっているユーザを識別することであり得る。したがって、ネットワーキングの検索意図に基づいて検索結果を得点付けする場合、ソーシャル・ネットワーキング・システム１６０は、ソーシャル・グラフ２００においてユーザの距離に対してはより小さい重みを与え、ユーザの職歴および関連性のある仕事関係のつながりに関係するソーシャル・グラフ情報に対してはより大きい重みを与える得点付けアルゴリズムを使用し得る。本開示は、検索結果を特定の方法で得点付けすることを説明するが、本開示は、検索結果を任意の適切な方法で得点付けすることも企図する。
【００８６】
特定の実施形態において、検索意図に基づいて検索結果を得点付けする工程は、検索クエリのクエリ制約を満足させる検索結果のオブジェクトの数または割合に基づいて、検索結果を得点付けする工程を含み得る。検索クエリについての識別された検索意図に基づいて、数、割合、または、これらの任意の組み合わせが、検索結果を得点付けする場合の要因として使用され得る。特定のクエリ制約について、制約は、特定のオブジェクトによって複数回満足させられ得る。本開示は、検索結果を検索意図に基づいて特定の方法で得点付けすることを説明するが、本開示は、検索結果を検索意図に基づいて任意の適切な方法で得点付けすることも企図する。
【００８７】
特定の実施形態において、ソーシャル・ネットワーキング・システム１６０は、検索クエリのクエリ制約を満足させる検索結果のオブジェクトの数に基づいて、検索結果を得点付けし得る。ある場合において、クエリ制約に一致する特定のオブジェクトは、実際には、その制約を満足させる複数の属性を有し得る。限定ではなく、例として、ロケーションは、ユーザによる複数のチェックインを有することがあり、写真は、それらにタグ付けされている複数のユーザを有することがあり、グループは、メンバーである複数のユーザを有することがある。これらのタイプの場合において、特定のクエリ制約が何回満足させられているかの数は、検索結果を順位付けする際に考慮され得る。限定ではなく、例として、「私の友達（ｆｒｉｅｎｄｓ）の写真（ｆｒｉｅｎｄｓ）」についての構造化クエリに応答して、ソーシャル・ネットワーキング・システム１６０は、クエリコマンド（ｐｈｏｔｏｓ＿ｏｆ（ｕｓｅｒｓ：＜ｆｒｉｅｎｄｓ＞））を生成し、このクエリの検索意図は、ユーザの友達のグループ写真を眺めることであると決定し得る。しかしながら、このクエリコマンドは、例えば、クエリを行うユーザの１人の友達のみがタグ付けされている写真によって満足させられ、または複数の友達がタグ付けされている写真によって複数回満足させられ得る。結果として、ユーザの友達がタグ付けされている写真に対応する識別されたコンセプト・ノード２０４を得点付けする場合、ソーシャル・ネットワーキング・システム１６０は、写真にタグ付けされているユーザの友達の数に基づいて、写真をより高く得点付けし得る。したがって、（例えば、ユーザのプロフィール写真などの）１人の友達のみがタグ付けされている写真は、ユーザの友達のうちの何人かがタグ付けされている写真よりも低く得点付けされ得る。限定ではなく、別の例として、「独身女性の写真」についての構造化クエリに応答して、ソーシャル・ネットワーキング・システム１６０は、このクエリの検索意図が独身女性の個々の写真（すなわち、その写真内の唯一のユーザが独身女性である写真）を眺めることであると決定し得る。しかしながら、このクエリコマ
ンドは、例えば、独身女性達のグループ写真、または独身女性である１人のユーザだけがタグ付けされている写真によって満足させられ得る。結果として、独身女性がタグ付けされている写真に対応する識別されたコンセプト・ノード２０４を得点付けする場合、ソーシャル・ネットワーキング・システム１６０は、１人で立っている独身女性の写真を、独身女性達のグループの写真（または、独身女性ではない１人または複数の他のユーザと一緒の独身女性の写真）よりも高く得点付けし得る。さらに、独身女性のプロフィール写真は、独身女性のプロフィール以外の写真よりも高く得点付けされ得る。本開示は、検索結果を検索結果数に基づいて特定の方法で得点付けすることを説明するが、本開示は、検索結果を検索結果数に基づいて任意の適切な方法で得点付けすることも企図する。
【００８８】
特定の実施形態において、ソーシャル・ネットワーキング・システム１６０は、検索クエリのクエリ制約を満足させる検索結果のオブジェクトの割合に基づいて、検索結果を得点付けし得る。前述されたように、クエリ制約に一致する特定のオブジェクトは、その制約を満足させる複数の属性を有し得る。しかし、同じオブジェクトは、その制約を満足させない複数の属性も有し得る。これらのタイプの場合において、特定のクエリ制約が何回満足させられていないかと比較した、特定のクエリ制約が何回満足させられているかの数（すなわち、割合）は、検索結果を順位付けする際に考慮され得る。限定ではなく、例として、「私の家族（ｆａｍｉｌｙ）の写真（ｐｈｏｔｏｓ）」についての構造化クエリに応答して、ソーシャル・ネットワーキング・システム１６０は、クエリコマンド（ｐｈｏｔｏｓ＿ｏｆ（ｕｓｅｒｓ：＜ｆａｍｉｌｙ＞））を生成し、このクエリの検索意図は、ユーザの家族だけが写っているグループ写真を眺めることであると決定し得る。換言すれば、理想的な一致は、クエリ制約を満足させる、写真にタグ付けされている人々の割合が、できる限り１に近い（すなわち、ユーザの家族のメンバーのみが写真にタグ付けされており、他のユーザはその写真にタグ付けされていない）写真である。しかしながら、このクエリコマンドは、例えば、ユーザの家族のうちの１人のメンバーのみと併せて何人かの他のユーザを有する写真、またはユーザの家族のメンバー全員と何人かの他の人々とがタグ付けされている写真によって満足させられ得る。結果として、ユーザの家族のメンバーがタグ付けされている写真に対応する識別されたコンセプト・ノード２０４を得点付けする場合、ソーシャル・ネットワーキング・システム１６０は、ユーザの家族に属する、写真にタグ付けされているユーザの割合に基づいて、写真をより高く得点付けし得る（すなわち、写真に対応するコンセプト・ノード２０４は、タグ付けタイプ・エッジ２０６によって、家族タイプ・エッジ（ｆａｍｉｌｙ−ｔｙｐｅ  ｅｄｇｅｓ）２０６によってクエリを行うユーザにつながっているユーザに対応する１つまたは複数のユーザ・ノード２０２につながっている）。したがって、３人の家族ではない他のメンバーと共にポーズを取っているユーザの家族のメンバーのうちの４人が写っている写真は、ユーザの家族のメンバーのうちの３人（したがって、より小さい数）しか写っていないが、他のユーザがタグ付けされていない（したがって、より高い割合）写真よりも、低く得点付けされ得る。本開示は、検索結果を検索結果割合に基づいて特定の方法で得点付けすることを説明するが、本開示は、検索結果を検索結果割合に基づいて任意の適切な方法で得点付けすることも企図する。
【００８９】
特定の実施形態において、ソーシャル・ネットワーキング・システムは、検索クエリの複数のクエリ制約を満足させる検索結果のオブジェクトの数に基づいて、検索結果を得点付けし得る。検索クエリが複数のクエリ制約を有する場合、複数のクエリ制約を満足させる単一のオブジェクトを含む検索結果は、望ましくないことがあり得る。ある場合において、複数のクエリ制約を有するクエリコマンドに一致する特定のオブジェクトは、１つまたは複数の属性に基づいて、複数のクエリ制約を満足させ得る。これらのタイプの場合において、これらのクエリ制約を満足させるためにいくつのオブジェクト／属性が使用されているかの数は、検索結果を順位付けする際に考慮され得る。あるクエリについては、異なるノードまたはエッジを使用して、複数の制約を有するクエリコマンドの各クエリ制約
を満足させることが望ましい。限定ではなく、例として、構造化クエリ「マーク（Ｍａｒｋ）と男性（ｍａｌｅ）によって「いいね！」の表明をされた（ｌｉｋｅｄ＿ｂｙ）レストラン（ｒｅｓｔａｕｒａｎｔｓ）」に応答して、ソーシャル・ネットワーキング・システム１６０は、構造化クエリを、例えば、（ｉｎｔｅｒｓｅｃｔ（ｌｏｃａｔｉｏｎｓ：＜ｒｅｓｔａｕｒａｎｔｓ＞），（ｉｎｔｅｒｓｅｃｔ（ｌｏｃａｔｉｏｎｓ（ｌｉｋｅｄ＿ｂｙ：＜Ｍａｒｋ＞），ｌｏｃａｔｉｏｎｓ（ｌｉｋｅｄ＿ｂｙ（ｕｓｅｒ＿ｇｅｎｄｅｒ：＜ｍａｌｅ＞）））などのクエリコマンドとして構文解析し、このクエリの検索意図は、ユーザ「マーク」と、男性でもある少なくとも１人の他の人物とによって「いいね！」の表明をされたレストランを識別することであると決定し得る。この場合において、ユーザ「マーク」も男性であると仮定する。ソーシャル・ネットワーキング・システム１６０は、第１のクエリ制約に一致するオブジェクトの第１のセットを識別し得る。第１のクエリ制約は、レストランであるロケーション（すなわち、ロケーション・タイプ・エッジ（ｌｏｃａｔｉｏｎ  ｔｙｐｅ  ｅｄｇｅｓ）２０６によって、「レストラン」に対応するコンセプト・ノード２０４につながっているロケーションに対応するコンセプト・ノード２０４）である。次に、ソーシャル・ネットワーキング・システム１６０は、これらの結果を、第２のクエリ制約（第２のクエリ制約自体が複数の制約を有する）に一致するものとして識別されたオブジェクトの第２のセットと交差させ得る。これは、ユーザ「マーク」と男性ユーザとの双方によって「いいね！」の表明をされたロケーションとなる。しかしながら、ユーザ「マーク」も男性であるため、「マーク」によって「いいね！」の表明をされたロケーションも、オブジェクトのこの第２のセットにおいて識別され得る。この場合において、ユーザ「マーク」のみが「いいね！」の表明をするレストランは、オブジェクトの第１のセットとオブジェクトの第２のセットとの双方に存在し得るため、ソーシャル・ネットワーキング・システム１６０は、そのロケーションに「いいね！」の表明をする唯一のユーザがユーザ「マーク」（または、「マーク」と女性ユーザのみ）であるロケーションに対応する検索結果を生成することが可能である。しかし、クエリを行うユーザが、「マーク」によって「いいね！」の表明をされたレストランのみに対応する検索結果を眺めたいと望む可能性は低い（この場合には、クエリを行うユーザは、単に「マークによって「いいね！」の表明をされたレストラン」を検索できたはずである）。ユーザは、少なくとも２人のユーザ、すなわち、「マーク」と、男性である少なくとも１人の他のユーザとによって「いいね！」の表明をされたレストランを見つけようとしている可能性が高い。したがって、ソーシャル・ネットワーキング・システム１６０は、クエリコマンドを満足させるために１つまたは２つの「いいね！」タイプ・エッジ２０６が使用されているか（すなわち、「マーク」だけにつながっている「いいね！」タイプ・エッジ２０６が使用されているか、または、１つは「マーク」から、もう１つは別のユーザ」からの、少な��とも２つの異なる「いいね！」タイプ・エッジ２０６が使用されているか）を数え得る。したがって、双方のクエリ制約を満足させるために単一の「いいね！」タイプ・エッジ２０６のみが使用されているレストランは、それらの制約を満足させるために２つの異なる「いいね！」タイプ・エッジ２０６が使用されているレストランよりも、低く得点付けされ得る。本開示は、検索結果をクエリ制約意図に基づいて特定の方法で得点付けすることを説明するが、本開示は、検索結果をクエリ制約に基づいて任意の適切な方法で得点付けすることも企図する。
【００９０】
特定の実施形態において、ソーシャル・ネットワーキング・システム１６０は、クエリを行うユーザ（または、クエリを行うユーザのユーザ・ノード２０２）に関連付けられているソーシャル・グラフ親和性に基づいて、検索結果を得点付けし得る。ソーシャル・ネットワーキング・システム１６０は、様々なソーシャル・グラフ・エンティティのソーシャル・グラフ親和性（これは、本願明細書において「親和性」と称され得る）を互いに決定し得る。親和性は、ユーザ、コンセプト、コンテンツ、アクション、広告、オンライン・ソーシャル・ネットワークに関連付けられている他のオブジェクト、または、これらの任意の適切な組み合わせなどの、オンライン・ソーシャル・ネットワークに関連付けられ
ている特定のオブジェクト間の関係の強度または興味のレベルを表現し得る。特定の実施形態において、ソーシャル・ネットワーキング・システム１６０は、親和性係数（これは、本願明細書において「係数」と称され得る）を使用して、ソーシャル・グラフ親和性を測定または定量化し得る。係数は、オンライン・ソーシャル・ネットワークに関連付けられている特定のオブジェクト間の関係の強度を表現または定量化し得る。係数は、ユーザが特定のアクションを実施する予測される確率を、そのユーザのそのアクションへの興味に基づいて測定する確率または関数も表現し得る。特定の実施形態において、ソーシャル・グラフ親和性は、検索結果を得点付けする際の要因として使用され得る。限定ではなく、例として、構造化クエリ「私の友達の写真」に応答して、ソーシャル・ネットワーキング・システム１６０は、クエリコマンド（ｐｈｏｔｏｓ＿ｏｆ（ｕｓｅｒｓ：＜ｆｒｉｅｎｄｓ＞））を生成し、このクエリの検索意図が、ユーザの友達が写っているグループ写真を眺めることであると決定し得る。ユーザの友達がタグ付けされている写真に対応する識別されたコンセプト・ノード２０４を得点付けする場合、ソーシャル・ネットワーキング・システム１６０は、クエリを行うユーザに対する、写真にタグ付けされているユーザの、クエリを行うユーザとの（例えば、親和性係数によって測定されるような）それぞれのソーシャル・グラフ親和性に基づいて、その写真をより高く得点付けし得る。さらに、クエリを行うユーザの友達がより多く写っている写真は、そのユーザの友達がより少なく写っている写真よりも高くタグ付けされ得る。なぜならば、より多くの友達が写真にタグ付けされていることは、その特定の写真に対する、クエリを行うユーザの親和性を増加させ得るためである。本開示は、検索結果を親和性に基づいて特定の方法で得点付けすることを説明するが、本開示は、検索結果を親和性に基づいて任意の適切な方法で得点付けすることも企図する。さらに、ソーシャル・グラフ親和性および親和性係数に関連して、特定の実施形態は、２００６年８月１１日に出願された米国特許出願第１１／５０３０９３号、２０１０年１２月２２日に出願された米国特許出願第１２／９７７０２７号、２０１０年１２月２３日に出願された米国特許出願第１２／９７８２６５号、および２０１２年１０月１日に出願された米国特許出願第１３／６３２８６９号において開示される１つまたは複数のシステム、コンポーネント、要素、機能、方法、動作、または工程を利用し、これらの出願の各々が、本願明細書に援用される。
【００９１】
特定の実施形態において、検索意図に基づいて検索結果を得点付けする工程は、例えば、ソーシャル・グラフ２００における分離度合い、ノード・タイプおよびエッジ・タイプ情報、ソーシャル・グラフ親和性、他の適切なソーシャル・グラフ情報、または、これらの任意の組み合わせなどの、ソーシャル・グラフ情報に基づいて、検索結果を得点付けする工程を備え得る。限定ではなく、例として、構造化クエリ「パロ・アルトの独身女性」に応答して、ソーシャル・ネットワーキング・システム１６０は、そのクエリの検索意図のうちの１つがデートのためのものであると決定し得る。このクエリに一致する識別されたユーザ・ノード２０２を得点付けする場合、ソーシャル・ネットワーキング・システム１６０は、ソーシャル・グラフ親和性に基づいて得点付けし、クエリを行うユーザの一次のつながりを、より離れたつながりよりも高く得点付けし得る。しかしながら、ユーザがデート目的のためにクエリを行っている場合、そのユーザが一次のつながり（すなわち、そのユーザの友達）を眺めたいと望む可能性は低くなり得る。デート目的のためにより有益なことは、独身女性である二次のつながり（すなわち、友達の友達）を識別することであり得る。したがって、デートの検索意図に基づいて検索結果を得点付けする場合、ソーシャル・ネットワーキング・システム１６０は、二次のつながりを一次のつながりよりも高く得点付けする得点付けアルゴリズムを使用し得る。限定ではなく、別の例として、先の例を続けると、構造化クエリ「パロ・アルトの独身女性」に一致する識別されたユーザ・ノード２０２を得点付けする場合、ソーシャル・ネットワーキング・システム１６０は、ユーザが有するプロフィール写真の「いいね！」の数に基づいて、ユーザを高く得点付けし得る。ここで、人気のあるプロフィール写真を有する（すなわち、プロフィール写真に対応するコンセプト・ノード２０４が、「いいね！」タイプ・エッジ２０６によって多
くのユーザ・ノード２０２につながっている）ユーザは、デートのためのより魅力的な候補と見なされ得る。本開示は、検索結果をソーシャル・グラフ情報に基づいて特定の方法で得点付けすることを説明するが、本開示は、検索結果をソーシャル・グラフ情報に基づいて任意の適切な方法で得点付けすることも企図する。
【００９２】
特定の実施形態において、検索意図に基づいて検索結果を得点付けする工程は、検索結果を得点付けして、反対の検索結果を排除する工程を含み得る。ソーシャル・ネットワーキング・システム１６０によって識別される検索意図のうちの１つまたは複数は、反対の検索結果を排除する意図を含み得る。この場合において、検索結果を得点付けする工程は、構造化クエリにおいて参照されている選択されたノードのうちの少なくとも１つに対応する各検索結果のスコアを低下させる工程を含み得る。あるシナリオにおいて、クエリを行うユーザが、そのクエリを行うユーザがソーシャル・ネットワーキング・システム１６０へ送信したばかりの構造化クエリにおいて参照されているノードに対応する検索結果を眺めたいと望む可能性は、その参照されているノードが実際にはクエリの制約を満足させているという事実に反して、低い。限定ではなく、例として、構造化クエリ「私（ｍｅ）の写真の中の（ｐｈｏｔｏ＿ｏｆ）人々」に応答して、ソーシャル・ネットワーキング・システム１６０は、構造化クエリを、例えば、（ｕｓｅｒｓ＿ｔａｇｇｅｄ＿ｉｎ（ｐｈｏｔｏ＿ｏｆ（＜ｍｅ＞））などのクエリコマンドとして構文解析し得る。ソーシャル・ネットワーキング・システム１６０は、次いで、クエリを行うユーザもタグ付けされている写真にタグ付けされている、オンライン・ソーシャル・ネットワークのユーザをリスト化する検索結果を生成し得る。この場合において、クエリを行うユーザは、明らかに、クエリを行うユーザの写真にタグ付けされている人物であるが、クエリを行うユーザが、自分自身に対応する検索結果を眺めたいと望む可能性は低い（実際に、クエリを行うユーザは、自分自身のあらゆる写真にタグ付けされているため、クエリを行うユーザは、このクエリに対する最良の一致となり得る）。したがって、ソーシャル・ネットワーキング・システム１６０は、クエリの検索意図のうちの１つが、逆の結果を排除することであると決定し得る。逆の結果とは、構造化クエリにおいて参照されているノードに対応する検索結果である。先の例を続けると、逆の結果は、クエリを行うユーザに対応する検索結果である。したがって、クエリを行うユーザ（または、クエリを行うユーザに対応するユーザ・ノード２０２）がクエリコマンドによって識別される場合であっても、検索結果を得点付けするときには、クエリを行うユーザに対応する検索結果は、クエリを行うユーザへ実際に返される検索結果からは除外されるように、または他の結果よりも低く順位付けされるように少なくとも得点付けされるように、低下され得る。本開示は、特定の検索結果を特定の方法で得点付けすることを説明するが、本開示は、任意の適切な検索結果を任意の適切な方法で得点付けすることも企図する。
【００９３】
特定の実施形態において、検索意図に基づいて検索結果を得点付けする工程は、検索結果を得点付けして、内部検索結果を排除する工程を含み得る。ソーシャル・ネットワーキング・システム１６０によって識別される検索意図のうちの１つまたは複数は、内部検索結果を排除するための意図を含み得る。この場合において、検索結果を得点付けする工程は、内部制約に一致するものとして識別されたノードの第１のセットのノードのうちの少なくとも１つに対応する各検索結果のスコアを低下させる工程を含み得る。あるシナリオにおいて、クエリを行うユーザが、内部クエリ制約と外部クエリ制約との双方に一致する検索結果を眺めたいと望む可能性は低い。限定ではなく、例として、構造化クエリ「フェースブック社（Ｆａｃｅｂｏｏｋ）の従業員（ｅｍｐｌｏｙｅｄ＿ｂｙ）の友達（ｆｒｉｅｎｄｓ＿ｏｆ）」に応答して、ソーシャル・ネットワーキング・システム１６０は、構造化クエリを、例えば、（ｆｒｉｅｎｄｓ＿ｏｆ（ｕｓｅｒｓ＿ｅｍｐｌｏｙｅｄ＿ｂｙ（＜Ｆａｃｅｂｏｏｋ＞）））などのクエリコマンドとして構文解析し得る。ソーシャル・ネットワーキング・システム１６０は、内部クエリ制約に一致するオブジェクトの第１のセットを識別し得る。内部クエリ制約は、フェースブック社の従業員であるユーザ（す
なわち、従業者タイプ・エッジ（ｅｍｐｌｏｙｅｄ−ｂｙ−ｔｙｐｅ  ｅｄｇｅ）２０６によって、会社「フェースブック」についてのコンセプト・ノード２０４につながっているユーザ・ノード２０２）である。次に、ソーシャル・ネットワーキング・システム１６０は、外部クエリ制約に一致するオブジェクトの第２のセットを識別し得る。外部クエリ制約は、ユーザの第１のセットの友達であるユーザ（すなわち、友達タイプ・エッジ２０６によって、第１のセット内のユーザ・ノード２０２につながっているユーザ・ノード２０２）である。この場合において、フェースブック社の従業員の友達である多くのユーザ（外部制約についての一致）も、フェースブック社の従業員であり得る（内部制約についての一致）が、クエリを行うユーザが、フェースブック社の従業員に対応する検索結果を眺めたいと望む可能性は低い（この場合には、クエリを行うユーザは、ただ「フェースブック社の従業員である人々」を検索できたはずである）。ユーザは、フェースブック社の従業員と友達である、フェースブック社の従業員ではない人を識別しようとしている可能性が高い。したがって、ソーシャル・ネットワーキング・システム１６０は、クエリの検索意図のうちの１つが、内部クエリ制約に一致する検索結果である内部検索結果を排除することであると決定し得る。先の例を続けると、内部検索結果は、フェースブック社の従業員に対応する検索結果であり得る。したがって、多くのフェースブック社の従業員が他のフェースブック社の従業員と友達である場合であっても、フェースブック社の従業員に対応する検索結果についてのスコアは、クエリを行うユーザへ実際に返される検索結果から排除されるように、または、フェースブック社の従業員の友達である、フェースブック社の従業員ではない人に対応する検索結果よりも低く順位付けされるように少なくとも得点付けされるように、低下され得る。本開示は、特定の検索結果を特定の方法で得点付けすることを説明するが、本開示は、任意の適切な検索結果を任意の適切な方法で得点付けすることも企図する。
【００９４】
特定の実施形態において、検索意図に基づいて検索結果を得点付けする工程は、検索結果を得点付けして、重複する検索結果を排除する工程を含み得る。ソーシャル・ネットワーキング・システム１６０によって識別される検索意図のうちの１つまたは複数は、重複する検索結果を排除するための意図を含み得る。この場合において、検索結果を得点付けする工程は、第１のクエリ制約と第２のクエリ制約との双方に一致するノードに対応する各検索結果のスコアを低下させる工程を含み得る。あるシナリオにおいて、クエリを行うユーザが、オブジェクトの同じ属性がクエリコマンドにおける２つの異なる制約を満足させるために使用されている検索結果を眺めたいと望む可能性は低い。限定ではなく、例として、構造化クエリ「フェースブック社の従業員（ｅｍｐｌｏｙｅｄ＿ｂｙ  Ｆａｃｅｂｏｏｋ）と一緒のマークの写真（ｐｈｏｔｏｓ＿ｏｆ  Ｍａｒｋ）」に応答して、ソーシャル・ネットワーキング・システム１６０は、構造化クエリを、例えば、（ｉｎｔｅｒｓｅｃｔ（ｐｈｏｔｏｓ＿ｏｆ：＜Ｍａｒｋ＞），ｐｈｏｔｏｓ＿ｏｆ（ｕｓｅｒｓ＿ｅｍｐｌｏｙｅｄ＿ｂｙ：＜Ｆａｃｅｂｏｏｋ＞））などのクエリコマンドとして構文解析し得る。この場合において、ユーザ「マーク」もフェースブック社の従業員であると仮定する。ソーシャル・ネットワーキング・システム１６０は、第１のクエリ制約に一致するオブジェクトの第１のセットを識別し得る。第１のクエリ制約は、ユーザ「マーク」の写真（すなわち、タグ付けタイプ・エッジ２０６によって、ユーザ「マーク」に対応するユーザ・ノード２０２につながっている写真に対応するコンセプト・ノード２０４）である。次に、ソーシャル・ネットワーキング・システム１６０は、これらの結果を、第２のクエリ制約（これはネスト化された制約である）に一致するものとして識別されたオブジェクトの第２のセットと交差（ｉｎｔｅｒｓｅｃｔ）させ得る。第２のクエリ制約は、フェースブック社の従業員であるユーザの写真である。しかしながら、ユーザ「マーク」もフェースブック社の従業員であるため、「マーク」の写真も、この第２のセットにおいて識別され得る。この場合において、ユーザ「マーク」のみがタグ付けされている写真は、オブジェクトの第１のセットとオブジェクトの第２のセットとの双方において存在するため、ソーシャル・ネットワーキング・システム１６０は、写真にタグ付けされている唯一のユ
ーザが、ユーザ「マーク」である写真に対応する検索結果を生成することが可能である。しかし、クエリを行うユーザが、「マーク」のみの写真に対応する検索結果を眺めたいと望む可能性は低い（この場合には、クエリを行うユーザは、単に「マークの写真」を検索できたはずである）。ユーザは、少なくとも２人のユーザ、すなわち、「マーク」と、フェースブック社の従業員である少なくとも１人の他のユーザとを含む写真を識別しようとしている可能性が高い。したがって、ソーシャル・ネットワーキング・システム１６０は、クエリの検索意図のうちの１つが、重複する検索結果を排除することであると決定し得る。重複する検索結果は、検索結果の同じ属性が２つの異なるクエリ制約を満足させるために使用されている検索結果である。先の例を続けると、第１の制約は、マーク（マークは、この例では、たまたまフェースブック社の従業員である）の写真に対応する検索結果を生成し、第２の制約は、フェースブック社の従業員の写真に対応する検索結果を生成する。換言すれば、特定の写真に対応するコンセプト・ノード２０４は、単に、タグ付けタイプ・エッジ２０６によって、ユーザ「マーク」に対応する単一のユーザ・ノード２０２につながっていることによって、双方の制約を満足させ得る。なぜならば、そのユーザ・ノード２０２は、従業者タイプ・エッジ２０６によって、会社「フェースブック」についてのコンセプト・ノードにつながっているためである。したがって、ユーザ「マーク」がフェースブック社の従業員である場合であっても、検索結果を得点付けするときには、「マーク」だけ（または、フェースブック社の従業員ではない他者と一緒の「マーク」）の写真に対応する検索結果は、クエリを行うユーザへ返される検索結果からは排除されるように、または、同じくフェースブック社の従業員である少なくとも１人の他のユーザと一緒のユーザ「マーク」の写真に対応する検索結果よりも低く順位付けされるように少なくとも得点付けされるように、低下され得る。本開示は、特定の検索結果を特定の方法で得点付けすることを説明するが、本開示は、任意の適切な検索結果を任意の適切な方法で得点付けすることも企図する。
【００９５】
特定の実施形態において、ソーシャル・ネットワーキング・システム１６０は、１つまたは複数の検索結果を、クエリを行うユーザへ送信し得る。検索結果は、例えば、識別されたリソースまたはコンテンツのうちのいくつかを包含する異なるウェブページに各リンクが関連付けられている、検索結果ウェブページ上のリンクのリストの形式で、ユーザへ送信され得る。特定の実施形態において、検索結果における各リンクは、対応するウェブページがどこに位置するかと、対応するウェブページを取り出すためのメカニズムとを特定するユニフォーム・リソース・ロケータ（ＵＲＬ）の形式であり得る。ソーシャル・ネットワーキング・システム１６０は、次いで、検索結果ウェブページを、ユーザのクライアント・システム１３０上のウェブ・ブラウザ１３２へ送信し得る。ユーザは、次いで、必要に応じて、ＵＲＬリンクをクリックして、または、そうでなければ検索結果ウェブページからのコンテンツを選択して、ソーシャル・ネットワーキング・システム１６０からのコンテンツ、または（例えば、サードパーティ・システム１７０などの）外部システムからのコンテンツにアクセスし得る。特定の実施形態において、各検索結果は、プロフィール・ページへのリンクと、プロフィール・ページの説明もしくは概要（または、そのページに対応するノード）とを含み得る。検索結果は、検索結果ページとしてクエリを行うユーザへ提示および送信され得る。検索結果を生成する場合、ソーシャル・ネットワーキング・システム１６０は、検索結果ごとに１つまたは複数のスニペットを生成し得る。ここで、スニペットは、検索結果の対象についての文脈情報（すなわち、ソーシャル・グラフ・エンティティ、プロフィール・ページ、または特定の検索結果に対応する他のコンテンツについての文脈情報）である。特定の実施形態において、ソーシャル・ネットワーキング・システム１６０は、特定の閾値スコア／順位を上回るスコア／順位を有する検索結果のみを送信し得る。限定ではなく、例として、ソーシャル・ネットワーキング・システム１６０は、特定の検索クエリに応答して、上位１０個の結果のみをクエリを行うユーザへ送信し得る。本開示は、特定の検索結果を特定の方法で送信することを説明するが、本開示は、任意の適切な検索結果を任意の適切な方法で送信することも企図する。
【００９６】
特定の実施形態において、ソーシャル・ネットワーキング・システム１６０は、１つまたは複数の検索意図に基づいて、クエリコマンドを生成し得る。ソーシャル・ネットワーキング・システム１６０によって生成されるクエリコマンドの構造は、ある構造化クエリに応答してクエリコマンドが生成される手法が、別の構造化クエリに応答してクエリコマンドが形成される手法とは異なるように、これらの検索意図に基づいて修正され得る。同様に、クエリコマンドの１つまたは複数のクエリ制約は、これらの検索意図に基づき得る。したがって、検索意図に基づいて検索結果を得点付け／順位付けすることの代替案として、または、そのことに加えて、クエリコマンドを実行する際に、検索結果がソーシャル・ネットワーキング・システム１６０によって識別される手法。限定ではなく、例として、特定のノードまたはノード・タイプを識別し、クエリヒンティングを使用してノードを識別し、逆演算子を使用してノードを識別し、逆検索結果を排除し、内部検索結果を排除し、重複結果を排除するための意図、他の適切な意図、または、これらの任意の組み合わせは、ソーシャル・ネットワーキング・システム１６０によって受信される構造化クエリに応答して、クエリコマンド（または、クエリコマンドの特定のクエリ制約）を生成する際に使用され得る。本開示は、クエリコマンドを特定の検索意図に基づいて特定の方法で生成することを説明するが、本開示は、クエリコマンドを任意の適切な検索意図に基づいて任意の適切な方法で生成することも企図する。
【００９７】
図８は、検索意図に基づいて検索結果を生成するための例示的な方法８００を示す。本方法は、工程８１０において開始し、工程８１０において、ソーシャル・ネットワーキング・システム１６０は、複数のノード（例えば、ユーザ・ノード２０２またはコンセプト・ノード２０４）と、これらのノード同士をつなげている複数のエッジ２０６とを備えるソーシャル・グラフ２００にアクセスし得る。２つのノード間の各エッジは、それらの間の単一の分離度合いを表現し得る。ノードは、オンライン・ソーシャル・ネットワークに関連付けられている第１のユーザに対応する第１のノード（例えば、第１のユーザ・ノード２０２）を備え得る。ノードは、オンライン・ソーシャル・ネットワークに関連付けられているコンセプトまたは第２のユーザに各々が対応する複数の第２のノードも含み得る。工程８２０において、ソーシャル・ネットワーキング・システム１６０は、第１のユーザから、複数のノードから選択された１以上のノードおよび複数のエッジから選択された１以上のエッジへの参照を含む構造化クエリを受信し得る。工程８３０において、ソーシャル・ネットワーキング・システム１６０は、構造化クエリに対応する１つまたは複数の検索結果を生成し得る。各検索結果は、複数のノードのうちの１つのノードに対応し得る。工程８４０において、ソーシャル・ネットワーキング・システム１６０は、構造化クエリにおいて参照されている、選択されたノードのうちの１以上および選択されたエッジのうちの１以上に基づいて、１以上の検索意図を決定し得る。工程８５０において、ソーシャル・ネットワーキング・システム１６０は、検索意図のうちの１以上に基づいて、検索結果を得点付けし得る。工程８６０において、ソーシャル・ネットワーキング・システム１６０は、検索結果のうちの１以上を第１のユーザへ送信し得る。特定の実施形態は、適切な場合には、図８の方法の１以上の工程を繰り返し得る。本開示は、図８の方法の特定の工程を特定の順序で発生するものとして説明および示すが、本開示は、図８の方法の任意の適切な工程が任意の適切な順序で発生することも企図する。さらに、本開示は、図８の方法の特定の工程を実行する特定のコンポーネント、デバイス、またはシステムを説明および示すが、本開示は、図８の方法の任意の適切な工程を実行する任意の適切なコンポーネント、デバイス、またはシステムの任意の適切な組み合わせも企図する。
【００９８】
検索結果を生成することに関するさらなる情報は、２０１２年１２月３１日に出願された米国特許出願第１３／７３１９３９号において見出され、この出願は、本願明細書に援用される。
【００９９】
広告
特定の実施形態において、広告は、（ＨＴＭＬリンクされ得る）テキスト、（ＨＴＭＬリンクされ得る）１つもしくは複数の画像、１つもしくは複数の映像、オーディオ、１つもしくは複数のＡＤＯＢＥ  ＦＬＡＳＨファイル、これらの任意の組み合わせ、または、１つもしくは複数のウェブページ上に、１つもしくは複数の電子メールにおいて、またはユーザによって要求される検索結果に関連して提示される任意の適切なデジタル・フォーマットにおける任意の他の適切な広告であり得る）。付加的に、または代替案として、広告は、１つまたは複数のスポンサー付きのストーリ（例えば、ソーシャル・ネットワーキング・システム１６０上のニュース・フィードまたはティッカー・アイテム）であり得る。スポンサー付きのストーリは、例えば、広告主が、社会的なアクションを、ユーザのプロフィール・ページまたは他のページの所定の領域内に提示させること、その広告主に関連付けられている付加的な情報と共に提示させること、他のユーザのニュース・フィードもしくはティッカー内でバンプ・アップ（ｂｕｍｐ  ｕｐ）もしくはそうでなければハイライトさせること、または、促進させることによって促進する、（ページに「いいね！」の表明をすること、ページ上の投稿に「いいね！」の表明をすることもしくはコメントをすること、ページに関連付けられているイベントに対して返信すること、ページ上に投稿された質問に対して投票すること、ある場所にチェックインすること、アプリケーションを使用することもしくはゲームで遊ぶこと、または、ウェブサイトに「いいね！」の表明をすることもしくはこれを共有することなどの）ユーザによる社会的アクションであり得る。広告主は、社会的アクションを促進させるために代金を支払い得る。限定ではなく、例として、広告は、スポンサー付きのコンテンツがスポンサーなしのコンテンツよりも促進される、検索結果ページの検索結果の中に含まれ得る。限定ではなく、別の例として、広告は、提案される検索クエリの中に含まれ得る。ここで、広告主またはそのコンテンツ／製品を参照する、提案されるクエリは、スポンサーなしのクエリよりも促進され得る。特定の実施形態において、ソーシャル・ネットワーキング・システム１６０は、ユーザから受信される検索クエリに関連付けられている検索意図に基づいて、ユーザに表示する広告を選択し得る。異なる広告（または広告のタイプ）は、ユーザの検索意図に応じて、ユーザに表示され得る。
【０１００】
特定の実施形態において、広告は、ソーシャル・ネットワーキング・システムのウェブページ、サードパーティのウェブページ、または他のページ内での表示のために要求され得る。広告は、ページの上部のバナー領域において、ページの側部の列において、ページのＧＵＩにおいて、ポップ・アップ・ウィンドウにおいて、ドロップ・ダウン・メニューにおいて、ページの入力フィールドにおいて、ページのコンテンツの上に、またはページに関する他の場所などの、ページの専用の部分において表示され得る。付加的に、または代替案として、広告は、アプリケーション内に表示され得る。広告は、ユーザがページにアクセスし、またはアプリケーションを利用する前に、ユーザが広告と相互作用し、または広告を観察することを必要とする、専用のページ内に表示され得る。ユーザは、例えば、ウェブ・ブラウザを通じて広告を眺め得る。
【０１０１】
ユーザは、任意の適切な方法で広告と相互作用し得る。ユーザは、広告をクリックし、または、そうでなければ選択し得る。広告を選択することによって、ユーザは、その広告に関連付けられているページ（または、ユーザによって使用されているブラウザもしくは他のアプリケーション）へ向けられ得る。広告に関連付けられているページにおいて、ユーザは、広告に関連付けられている製品もしくはサービスを購入すること、広告に関連付けられている情報を受信すること、または広告に関連付けられているニュースレターを定期購読することなどの、付加的なアクションを行い得る。オーディオまたは映像を有する広告は、広告の（「再生ボタン」のような）コンポーネントを選択することによって、再生され得る。代替的に、広告を選択することによって、ソーシャル・ネットワーキング・システム１６０は、ユーザの特定のアクションを実行または修正し得る。
【０１０２】
広告は、ユーザが相互作用し得るソーシャル・ネットワーキング・システム機能性を含み得る。例えば、広告は、ユーザが、承認に関連付けられているアイコンまたはリンクを選択することによって、広告に「いいね！」の表明をし、または、そうでなければこれを承認することができるようにし得る。別の例として、広告は、ユーザが、（例えば、クエリを実行することによって）広告主に関係するコンテンツを検索することができるようにし得る。同様に、ユーザは、（例えば、ソーシャル・ネットワーキング・システム１６０を通じて）広告を別のユーザと共有し、または広告に関連付けられているイベントに対して（例えば、ソーシャル・ネットワーキング・システム１６０を通じて）返信し得る。付加的に、または代替案として、広告は、ユーザに向けられるソーシャル・ネットワーキング・システム文脈を含み得る。例えば、広告は、その広告の主題に関連付けられているアクションを行った、ソーシャル・ネットワーキング・システム１６０内のユーザの友達についての情報を表示し得る。
【０１０３】
システムおよび方法
図９は、例示的なコンピュータ・システム９００を示している。特定の実施形態においては、１つまたは複数のコンピュータ・システム９００が、本明細書において記述されているまたは示されている１つまたは複数の方法の１つまたは複数の工程を実行する。特定の実施形態においては、１つまたは複数のコンピュータ・システム９００が、本明細書において記述されているまたは示されている機能を提供する。特定の実施形態においては、１つまたは複数のコンピュータ・システム９００上で稼働するソフトウェアが、本明細書において記述されているもしくは示されている１つもしくは複数の方法の１つもしくは複数の工程を実行し、または本明細書において記述されているもしくは示されている機能を提供する。特定の実施形態は、１つまたは複数のコンピュータ・システム９００の１つまたは複数の部分を含む。本明細書においては、コンピュータ・システムへの言及は、適切な場合には、コンピューティング・デバイスを包含することができる。その上、コンピュータ・システムへの言及は、適切な場合には、１つまたは複数のコンピュータ・システムを包含することができる。
【０１０４】
本開示は、任意の適切な数のコンピュータ・システム９００を想定している。本開示は、任意の適切な物理的な形態を取るコンピュータ・システム９００を想定している。限定ではなく、例として、コンピュータ・システム９００は、組み込みコンピュータ・システム、システムオンチップ（ＳＯＣ）、シングルボード・コンピュータ・システム（ＳＢＣ）（たとえば、コンピュータオンモジュール（ＣＯＭ）もしくはシステムオンモジュール（ＳＯＭ）など）、デスクトップ・コンピュータ・システム、ラップトップもしくはノートブック・コンピュータ・システム、インタラクティブ・キオスク、メインフレーム、コンピュータ・システムのメッシュ、モバイル電話、携帯情報端末（ＰＤＡ）、サーバ、タブレット・コンピュータ・システム、またはこれらのうちの複数の組合せであることが可能である。適切な場合には、コンピュータ・システム９００は、１つもしくは複数のコンピュータ・システム９００を含むこと、単一型もしくは分散型であること、複数のロケーションにわたること、複数のマシンにわたること、複数のデータセンターにわたること、または、クラウド（１つもしくは複数のネットワーク内の１つもしくは複数のクラウド・コンポーネントを含むことができる）内に常駐することが可能である。適切な場合には、１つまたは複数のコンピュータ・システム９００は、本明細書において記述されているまたは示されている１つまたは複数の方法の１つまたは複数の工程を、実質的な空間上のまたは時間上の制限を伴わずに実行することができる。限定ではなく、例として、１つまたは複数のコンピュータ・システム９００は、本明細書において記述されているまたは示されている１つまたは複数の方法の１つまたは複数の工程をリアル・タイムで、またはバッチ・モードで実行することができる。１つまたは複数のコンピュータ・システム９００は、適切な場合には、本明細書において記述されているまたは示されている１つまたは複数
の方法の１つまたは複数の工程を別々の時点で、または別々のロケーションで実行することができる。
【０１０５】
特定の実施形態においては、コンピュータ・システム９００は、プロセッサ９０２、メモリ９０４、ストレージ９０６、入力／出力（Ｉ／Ｏ）インタフェース９０８、通信インタフェース９１０、およびバス９１２を含む。本開示は、特定の数の特定のコンポーネントを特定の構成で有する特定のコンピュータ・システムについて記述し、示しているが、本開示は、任意の適切な数の任意の適切なコンポーネントを任意の適切な構成で有する任意の適切なコンピュータ・システムを想定している。
【０１０６】
特定の実施形態においては、プロセッサ９０２は、コンピュータ・プログラムを構成している命令などの命令を実行するためのハードウェアを含む。限定ではなく、例として、命令を実行するために、プロセッサ９０２は、内部レジスタ、内部キャッシュ、メモリ９０４、またはストレージ９０６から命令を取り出し（またはフェッチし）、それらの命令をデコードして実行し、次いで、１つまたは複数の結果を内部レジスタ、内部キャッシュ、メモリ９０４、またはストレージ９０６に書き込むことができる。特定の実施形態においては、プロセッサ９０２は、データ、命令、またはアドレスのための１つまたは複数の内部キャッシュを含むことができる。本開示は、適切な場合には、任意の適切な数の任意の適切な内部キャッシュを含むプロセッサ９０２を想定している。限定ではなく、例として、プロセッサ９０２は、１つまたは複数の命令キャッシュ、１つまたは複数のデータ・キャッシュ、および１つまたは複数の変換ルックアサイド・バッファ（ＴＬＢ）を含むことができる。命令キャッシュ内の命令は、メモリ９０４またはストレージ９０６内の命令のコピーであることが可能であり、命令キャッシュは、プロセッサ９０２によるそれらの命令の取り出しをスピードアップすることができる。データ・キャッシュ内のデータは、プロセッサ９０２において実行される命令が機能する際に基づくメモリ９０４もしくはストレージ９０６内のデータのコピー、プロセッサ９０２において実行される後続の命令によるアクセスのための、もしくはメモリ９０４もしくはストレージ９０６への書き込みのためのプロセッサ９０２において実行された以前の命令の結果、またはその他の適切なデータであることが可能である。データ・キャッシュは、プロセッサ９０２による読み取りオペレーションまたは書き込みオペレーションをスピードアップすることができる。ＴＬＢは、プロセッサ９０２のための仮想アドレス変換をスピードアップすることができる。特定の実施形態においては、プロセッサ９０２は、データ、命令、またはアドレスのための１つまたは複数の内部レジスタを含むことができる。本開示は、適切な場合には、任意の適切な数の任意の適切な内部レジスタを含むプロセッサ９０２を想定している。適切な場合には、プロセッサ９０２は、１つまたは複数の演算ロジック・ユニット（ＡＬＵ）を含むこと、マルチコア・プロセッサであること、または１つもしくは複数のプロセッサ９０２を含むことが可能である。本開示は、特定のプロセッサについて記述し、示しているが、本開示は、任意の適切なプロセッサを想定している。
【０１０７】
特定の実施形態においては、メモリ９０４は、プロセッサ９０２が実行するための命令、またはプロセッサ９０２が機能する際に基づくデータを格納するためのメイン・メモリを含む。限定ではなく、例として、コンピュータ・システム９００は、命令をストレージ９０６または別のソース（たとえば、別のコンピュータ・システム９００など）からメモリ９０４にロードすることができる。次いでプロセッサ９０２は、命令をメモリ９０４から内部レジスタまたは内部キャッシュにロードすることができる。命令を実行するために、プロセッサ９０２は、命令を内部レジスタまたは内部キャッシュから取り出し、それらの命令をデコードすることができる。命令の実行中または実行後に、プロセッサ９０２は、１つまたは複数の結果（それらは、中間の結果または最終的な結果である場合がある）を内部レジスタまたは内部キャッシュに書き込むことができる。次いでプロセッサ９０２は、それらの結果のうちの１つまたは複数をメモリ９０４に書き込むことができる。特定
の実施形態においては、プロセッサ９０２は、（ストレージ９０６またはその他の場所ではなく）１つもしくは複数の内部レジスタもしくは内部キャッシュ内の、またはメモリ９０４内の命令のみを実行し、（ストレージ９０６またはその他の場所ではなく）１つもしくは複数の内部レジスタもしくは内部キャッシュ内の、またはメモリ９０４内のデータ上でのみ機能する。１つまたは複数のメモリ・バス（それらはそれぞれ、アドレス・バスおよびデータ・バスを含むことができる）は、プロセッサ９０２をメモリ９０４に結合することができる。バス９１２は、以降で記述されているような１つまたは複数のメモリ・バスを含むことができる。特定の実施形態においては、１つまたは複数のメモリ管理ユニット（ＭＭＵ）が、プロセッサ９０２とメモリ９０４との間に常駐し、プロセッサ９０２によって要求されるメモリ９０４へのアクセスを容易にする。特定の実施形態においては、メモリ９０４は、ランダム・アクセス・メモリ（ＲＡＭ）を含む。このＲＡＭは、適切な場合には、揮発性メモリであることが可能である。適切な場合には、このＲＡＭは、ダイナミックＲＡＭ（ＤＲＡＭ）またはスタティックＲＡＭ（ＳＲＡＭ）であることが可能である。その上、適切な場合には、このＲＡＭは、シングルポートＲＡＭまたはマルチポートＲＡＭであることが可能である。本開示は、任意の適切なＲＡＭを想定している。メモリ９０４は、適切な場合には、１つまたは複数のメモリ９０４を含むことができる。本開示は、特定のメモリについて記述し、示しているが、本開示は、任意の適切なメモリを想定している。
【０１０８】
特定の実施形態においては、ストレージ９０６は、データまたは命令のためのマス・ストレージを含む。限定ではなく、例として、ストレージ９０６は、ハード・ディスク・ドライブ（ＨＤＤ）、フロッピー（登録商標）ディスク・ドライブ、フラッシュ・メモリ、光ディスク、光磁気ディスク、磁気テープ、またはユニバーサル・シリアル・バス（ＵＳＢ）ドライブ、またはこれらのうちの複数の組合せを含むことができる。ストレージ９０６は、適切な場合には、取り外し可能なまたは取り外し不能な（すなわち、固定された）媒体を含むことができる。ストレージ９０６は、適切な場合には、コンピュータ・システム９００の内部または外部に存在することが可能である。特定の実施形態においては、ストレージ９０６は、不揮発性のソリッドステート・メモリである。特定の実施形態においては、ストレージ９０６は、読み取り専用メモリ（ＲＯＭ）を含む。適切な場合には、このＲＯＭは、マスクプログラムＲＯＭ、プログラマブルＲＯＭ（ＰＲＯＭ）、消去可能ＰＲＯＭ（ＥＰＲＯＭ）、電気的消去可能ＰＲＯＭ（ＥＥＰＲＯＭ）、電気的書替え可能ＲＯＭ（ＥＡＲＯＭ）、またはフラッシュ・メモリ、またはこれらのうちの複数の組合せであることが可能である。本開示は、任意の適切な物理的な形態を取るマス・ストレージ９０６を想定している。ストレージ９０６は、適切な場合には、プロセッサ９０２とストレージ９０６との間における通信を容易にする１つまたは複数のストレージ・コントロール・ユニットを含むことができる。適切な場合には、ストレージ９０６は、１つまたは複数のストレージ９０６を含むことができる。本開示は、特定のストレージについて記述し、示しているが、本開示は、任意の適切なストレージを想定している。
【０１０９】
特定の実施形態においては、Ｉ／Ｏインタフェース９０８は、コンピュータ・システム９００と１つまたは複数のＩ／Ｏデバイスとの間における通信のための１つまたは複数のインタフェースを提供するハードウェア、ソフトウェア、またはその両方を含む。コンピュータ・システム９００は、適切な場合には、これらのＩ／Ｏデバイスのうちの１つまたは複数を含むことができる。これらのＩ／Ｏデバイスのうちの１つまたは複数は、人とコンピュータ・システム９００との間における通信を可能にすることができる。限定ではなく、例として、Ｉ／Ｏデバイスは、キーボード、キーパッド、マイクロフォン、モニタ、マウス、プリンタ、スキャナ、スピーカ、スチル・カメラ、スタイラス、タブレット、タッチ・スクリーン、トラックボール、映像カメラ、別の適切なＩ／Ｏデバイス、またはこれらのうちの複数の組合せを含むことができる。Ｉ／Ｏデバイスは、１つまたは複数のセンサを含むことができる。本開示は、任意の適切なＩ／Ｏデバイス、およびそれらのＩ／
Ｏデバイスのための任意の適切なＩ／Ｏインタフェース９０８を想定している。適切な場合には、Ｉ／Ｏインタフェース９０８は、プロセッサ９０２がこれらのＩ／Ｏデバイスのうちの１つまたは複数を駆動することを可能にする１つまたは複数のデバイス・ドライバまたはソフトウェア・ドライバを含むことができる。Ｉ／Ｏインタフェース９０８は、適切な場合には、１つまたは複数のＩ／Ｏインタフェース９０８を含むことができる。本開示は、特定のＩ／Ｏインタフェースについて記述し、示しているが、本開示は、任意の適切なＩ／Ｏインタフェースを想定している。
【０１１０】
特定の実施形態においては、通信インタフェース９１０は、コンピュータ・システム９００と、１つもしくは複数のその他のコンピュータ・システム９００または１つもしくは複数のネットワークとの間における通信（たとえば、パケットベースの通信など）のための１つまたは複数のインタフェースを提供するハードウェア、ソフトウェア、またはその両方を含む。限定ではなく、例として、通信インタフェース９１０は、イーサネット（登録商標）もしくはその他の有線ベースのネットワークと通信するためのネットワーク・インタフェース・コントローラ（ＮＩＣ）もしくはネットワーク・アダプタ、またはＷＩ−ＦＩネットワークなどのワイヤレス・ネットワークと通信するためのワイヤレスＮＩＣ（ＷＮＩＣ）もしくはワイヤレス・アダプタを含むことができる。本開示は、任意の適切なネットワーク、およびそのネットワークのための任意の適切な通信インタフェース９１０を想定している。限定ではなく、例として、コンピュータ・システム９００は、アド・ホック・ネットワーク、パーソナル・エリア・ネットワーク（ＰＡＮ）、ローカル・エリア・ネットワーク（ＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、またはインターネットの１つまたは複数の部分、またはこれらのうちの複数の組合せと通信することができる。これらのネットワークのうちの１つまたは複数の１つまたは複数の部分は、有線またはワイヤレスであることが可能である。例として、コンピュータ・システム９００は、ワイヤレスＰＡＮ（ＷＰＡＮ）（たとえば、ブルートゥースＷＰＡＮなど）、ＷＩ−ＦＩネットワーク、ＷＩ−ＭＡＸネットワーク、セルラー電話ネットワーク（たとえば、グローバル・システム・フォー・モバイル・コミュニケーションズ（ＧＳＭ（登録商標））ネットワークなど）、またはその他の適切なワイヤレス・ネットワーク、またはこれらのうちの複数の組合せと通信することができる。コンピュータ・システム９００は、適切な場合には、これらのネットワークのうちの任意のネットワークのための任意の適切な通信インタフェース９１０を含むことができる。通信インタフェース９１０は、適切な場合には、１つまたは複数の通信インタフェース９１０を含むことができる。本開示は、特定の通信インタフェースについて記述し、示しているが、本開示は、任意の適切な通信インタフェースを想定している。
【０１１１】
特定の実施形態においては、バス９１２は、コンピュータ・システム９００のコンポーネント同士を互いに結合するハードウェア、ソフトウェア、またはその両方を含む。限定ではなく、例として、バス９１２は、アクセラレイティッド・グラフィックス・ポート（ＡＧＰ）もしくはその他のグラフィックス・バス、エンハンスト・インダストリー・スタンダード・アーキテクチャ（ＥＩＳＡ）バス、フロントサイド・バス（ＦＳＢ）、ハイパートランスポート（ＨＴ）インターコネクト、インダストリー・スタンダード・アーキテクチャ（ＩＳＡ）バス、インフィニバンド・インターコネクト、ローピンカウント（ＬＰＣ）バス、メモリ・バス、マイクロ・チャネル・アーキテクチャ（ＭＣＡ）バス、ペリフェラル・コンポーネント・インターコネクト（ＰＣＩ）バス、ＰＣＩエクスプレス（ＰＣＩｅ）バス、シリアル・アドバンスト・テクノロジー・アタッチメント（ＳＡＴＡ）バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション・ローカル（ＶＬＢ）バス、または別の適切なバス、またはこれらのうちの複数の組合せを含むことができる。バス９１２は、適切な場合には、１つまたは複数のバス９１２を含むことができる。本開示は、特定のバスについて記述し、示しているが、本開示は、任意の適切なバスまたはインターコネクトを想定している。
【０１１２】
本明細書においては、１つまたは複数の非一時的なコンピュータ可読記憶媒体は、適切な場合には、１つもしくは複数の半導体ベースのもしくはその他の集積回路（ＩＣ）（たとえば、フィールドプログラマブル・ゲート・アレイ（ＦＰＧＡ）もしくは特定用途向け集積回路（ＡＳＩＣ）など）、ハード・ディスク・ドライブ（ＨＤＤ）、ハイブリッド・ハード・ドライブ（ＨＨＤ）、光ディスク、光ディスク・ドライブ（ＯＤＤ）、光磁気ディスク、光磁気ドライブ、フロッピー（登録商標）・ディスケット、フロッピー（登録商標）・ディスク・ドライブ（ＦＤＤ）、磁気テープ、ソリッドステート・ドライブ（ＳＳＤ）、ＲＡＭドライブ、セキュア・デジタル・カードもしくはドライブ、その他の任意の適切な非一時的なコンピュータ可読記憶媒体、またはこれらのうちの複数の組合せを含むことができる。非一時的なコンピュータ可読記憶媒体は、適切な場合には、揮発性、不揮発性、または揮発性と不揮発性の組合せであることが可能である。
【０１１３】
本明細書においては、「または（もしくは）」は、包含的であり、排他的ではない（ただし、そうではないことが明示されている場合、または、そうではないことが文脈によって示されている場合は除く）。したがって、本明細書においては、「ＡまたはＢ」は、「Ａ、Ｂ、またはその両方」を意味する（ただし、そうではないことが明示されている場合、または、そうではないことが文脈によって示されている場合は除く）。その上、「および（ならびに）」は、包括的および個別的の両方である（ただし、そうではないことが明示されている場合、または、そうではないことが文脈によって示されている場合は除く）。したがって、本明細書においては、「ＡおよびＢ」は、「まとめて、または個別に、ＡおよびＢ」を意味する（ただし、そうではないことが明示されている場合、または、そうではないことが文脈によって示されている場合は除く）。
【０１１４】
本開示の範囲は、当技術分野における標準的な技術者が理解するであろう、本明細書において記述されているまたは示されている例示的な実施形態に対するすべての変更、置換、変形、改変、および修正を包含する。本開示の範囲は、本明細書において記述されているまたは示されている例示的な実施形態に限定されない。その上、本開示は、本明細書におけるそれぞれの実施形態を、特定のコンポーネント、要素、機能、オペレーション、または工程を含むものとして記述し、示しているが、これらの実施形態のいずれも、当技術分野における標準的な技術者が理解するであろう、本明細書の任意の箇所において記述されているまたは示されているコンポーネント、要素、機能、オペレーション、または工程のうちの任意のものの任意の組合せまたは順列を含むことができる。さらに、特定の機能を実行するように適合されている、実行するようにアレンジされている、実行することができる、実行するように構成されている、実行することを可能にされている、実行するように機能できる、または実行するように機能する装置もしくはシステム、または装置もしくはシステムのコンポーネントへの添付の特許請求の範囲における言及は、その装置、システム、コンポーネント、またはその特定の機能が、アクティブ化されているか否か、オンにされているか否か、またはロック解除されているか否かを問わず、その装置、システム、またはコンポーネントが、そうするように適合されている、そうするようにアレンジされている、そうすることができる、そうするように構成されている、そうすることを可能にされている、そうするように機能できる、またはそうするように機能する限り、その装置、システム、コンポーネントを包含する。
【図１】
0006055950.tif 000002
【図２】
0006055950.tif 000003
【図３】
0006055950.tif 000004
【図４】
0006055950.tif 000005
【図５Ａ】
0006055950.tif 000006
【図５Ｂ】
0006055950.tif 000007
【図５Ｃ】
0006055950.tif 000008
【図５Ｄ】
0006055950.tif 000009
【図６】
0006055950.tif 000010
【図７】
0006055950.tif 000011
【図８】
0006055950.tif 000012
【図９】
0006055950.tif 000013