(57)【特許請求の範囲】
【請求項１】
コンピューティング・デバイスが、
複数のノードと前記ノード同士をつなげている複数のエッジとを備えるソーシャル・グラフにアクセスする工程であって、前記ノードのうちの２つのノード間の前記エッジの各々が前記２つのノード間の単一分離度を表しており、前記ノードは、
オンライン・ソーシャル・ネットワークに関連付けられている第１のユーザに対応する第１のノードと、
複数の第２のノードであって、各々がコンセプトに対応するかまたは前記オンライン・ソーシャル・ネットワークに関連付けられている第２のユーザに対応する、複数の第２のノードとを含む、工程と、
前記第１のユーザが入力した非構造化テキスト・クエリを前記第１のユーザのクライアント・デバイスから受け取る工程と、
前記テキスト・クエリに基づいて構造化クエリの第１のセットを生成する工程であって、前記第１のセットにおける各構造化クエリは文脈自由文法モデルの１つの文法に対応し、前記第１のセットにおける各構造化クエリは、前記文脈自由文法モデルの１つの文法によって生成された自然言語ストリングに基づき、かつ、１以上の文法トークンおよび１以上のソーシャル・グラフ・トークンを含み、各ソーシャル・グラフ・トークンは、前記複数のノードのうちの１つのノード、または前記複数のエッジのうちの１つのエッジに対応する、工程と、
前記第１のセットにおける各構造化クエリにつき、前記テキスト・クエリおよび前記構造化クエリに基づいて品質スコアを計算する工程と、
前記第１のセットをフィルタリングして、しきい値品質スコア未満の品質スコアを有する各構造化クエリを前記第１のセットから除去する工程と、
前記フィルタリング後の第１のセットからの前記構造化クエリのうちの１以上を前記第１のユーザのクライアント・デバイスに送る工程であって、前記第１のユーザに送られる各構造化クエリは前記しきい値品質スコア以上の品質スコアを有する、工程と、を備える方法。
【請求項２】
前記計算する工程は、
前記テキスト・クエリにおけるＮグラムの数である第１の数を決定する工程と、
前記構造化クエリにおけるクエリ・トークンの数である第２の数を決定する工程と、
前記第１の数の前記第２の数に対する比に基づいて正規化済みコストを計算する工程とを含み、前記品質スコアは前記正規化済みコストに基づく、請求項１に記載の方法。
【請求項３】
前記計算する工程は、
前記テキスト・クエリにおけるＮグラムの数である第１の数を決定する工程と、
前記構造化クエリにおける文法トークンの数である第２の数を決定する工程と、
前記構造化クエリにおけるソーシャル・グラフ・トークンの数である第３の数を決定する工程と、
前記第１の数によって正規化された、前記第２の数の前記第３の数に対する比に基づいて、文法挿入コストを計算する工程と、を含み、前記品質スコアは前記文法挿入コストに基づく、請求項１に記載の方法。
【請求項４】
前記計算する工程は、
前記構造化クエリにおけるノードに対応するソーシャル・グラフ・トークンの数である第１の数を決定する工程と、
前記第１の数に基づいてエンティティ多数性コストを計算する工程と、を含み、前記品質スコアは前記エンティティ多数性コストに基づく、請求項１に記載の方法。
【請求項５】
前記計算する工程は、
前記構造化クエリの各クエリ・トークンであって前記テキスト・クエリの第１の語句に対応するクエリ・トークンごとに、前記クエリ・トークンが、前記テキスト・クエリの１以上の第２の語句に対応する前記構造化クエリの１以上の他のクエリ・トークンとペアになる確率を決定する工程であって、前記１以上の第２の語句が前記テキスト・クエリにおいて前記第１の語句に近接している、工程と、
各クエリ・トークンについての前記確率に基づいて言語モデル・スコアを計算する工程と、を含み、前記品質スコアは前記言語モデル・スコアに基づく、請求項１に記載の方法。
【請求項６】
前記テキスト・クエリは１以上のＮグラムを含み、各ソーシャル・グラフ・トークンは前記Ｎグラムの少なくとも１つに対応しており、
各ソーシャル・グラフ・トークンごとに、前記ソーシャル・グラフ・トークンをその対応するＮグラムに合致させるように前記文法によって挿入された語句の数である第１の数に基づいてエンティティ挿入コストを計算し、前記品質スコアは前記エンティティ挿入コストに基づく、請求項１に記載の方法。
【請求項７】
前記第１のセットをフィルタリングした後に残った構造化クエリの数がしきい値数よりも少ない場合は、前記テキスト・クエリに基づいてウェブ検索クエリを生成する、請求項１に記載の方法。
【請求項８】
１以上のエッジ、または１以上の第２のノードを識別する工程であって、識別された前記エッジまたは識別された前記ノードの各々は前記非構造化テキスト・クエリの少なくとも一部に対応する、工程と、
複数の文法を含む文脈自由文法モデルにアクセスする工程であって、各文法は１以上のクエリ・トークンを含み、各クエリ・トークンは文法トークンまたはソーシャル・グラフ・トークンである、工程と、
１以上の文法を識別する工程であって、識別された各文法は、識別された前記第２のノードおよび識別された前記エッジのうちの少なくとも１つに対応する１以上のクエリ・トークンを有する、工程と、をさらに備える、請求項１に記載の方法。
【請求項９】
識別された各文法について第１のスコアを決定する工程をさらに備え、
前記第１のセットにおける各構造化クエリは、文法しきい値スコアよりも高い第１のスコアを有する識別された文法に対応し、前記構造化クエリは、識別された前記文法によって生成されたストリングに基づき、各構造化クエリは、対応する識別された前記文法の前記クエリ・トークンを含み、前記構造化クエリの前記クエリ・トークンの１以上は、識別された前記第２のノードおよび識別された前記エッジのうちの少なくとも１つに対応する、請求項８に記載の方法。
【請求項１０】
前記テキスト・クエリは１以上のＮグラムを含み、識別された前記エッジおよび識別された前記ノードの各々は前記Ｎグラムのうちの少なくとも１つに対応する、請求項８に記載の方法。
【請求項１１】
各Ｎグラムは、前記第１のユーザによって入力されたテキストの１以上の文字を含む、請求項１０に記載の方法。
【請求項１２】
各Ｎグラムは、前記テキスト・クエリからのｎ個のアイテムの連続的なシーケンスを含む、請求項１０に記載の方法。
【請求項１３】
１以上のエッジまたは第２のノードを識別する前記工程は、
エッジまたは第２のノードに対応する各Ｎグラムにつき、第２のスコアを決定する工程と、
エッジしきい値スコアよりも高い第２のスコアを有する１以上のエッジを選択する工程であって、識別された前記エッジの各々は前記Ｎグラムの少なくとも１つに対応するものである工程と、
ノードしきい値スコアよりも高い第２のスコアを有する１以上の第２のノードを選択する工程であって、識別された前記第２のノードの各々は識別された前記エッジの少なくとも１つにつながっており、識別された前記第２のノードの各々が前記Ｎグラムのうちの少なくとも１つに対応する、工程と、を備える、請求項１０に記載の方法。
【請求項１４】
各Ｎグラムについての前記第２のスコアは、前記Ｎグラムがエッジまたは第２のノードに対応する確率である、請求項１３に記載の方法。
【請求項１５】
前記構造化クエリは、前記第１のユーザに表示するためのクエリ・フィールドに関連付けられているインタフェースに送られる、請求項１に記載の方法。
【請求項１６】
前記テキスト・クエリは、前記オンライン・ソーシャル・ネットワークに関連付けられているウェブページまたはネイティブ・アプリケーションのクエリ・フィールドにおいて前記第１のユーザによって入力される、請求項１に記載の方法。
【請求項１７】
前記構造化クエリのうちの１つの選択を前記第１のユーザのクライアント・デバイスから受け取る工程と、
選択された前記構造化クエリに合致する１以上の検索結果を生成する工程であって、前記１以上の検索結果は１以上の第２のノードにそれぞれ対応しており、各第２のノードは、選択された前記構造化クエリの前記ソーシャル・グラフ・トークンのうちの１つに対応する１つのエッジによって、選択された前記構造化クエリの前記ソーシャル・グラフ・トークンのうちの１つに対応するノードのうちの１つにつなげられている、工程と、をさらに備える、請求項１に記載の方法。
【請求項１８】
前記第１のユーザに送られた各構造化クエリにつき、前記構造化クエリを生成するために使用された前記文法は、１以上の識別されたノードまたは識別されたエッジに対応する
１以上のクエリ・トークンを含み、識別された前記ノードまたは識別された前記エッジの各々は、前記テキスト・クエリの少なくとも一部に対応する、請求項１に記載の方法。
【請求項１９】
ソフトウェアを具現化する１以上の非一時的コンピュータ可読記憶媒体であって、前記ソフトウェアは、実行されたとき、
複数のノードと前記ノード同士をつなげている複数のエッジとを備えるソーシャル・グラフにアクセスする工程であって、前記ノードのうちの２つのノード間の前記エッジの各々が前記２つのノード間の単一分離度を表しており、前記ノードは、
オンライン・ソーシャル・ネットワークに関連付けられている第１のユーザに対応する第１のノードと、
複数の第２のノードであって、各々がコンセプトに対応するかまたは前記オンライン・ソーシャル・ネットワークに関連付けられている第２のユーザに対応する、複数の第２のノードとを含む、工程と、
前記第１のユーザが入力した非構造化テキスト・クエリを前記第１のユーザのクライアント・デバイスから受け取る工程と、
前記テキスト・クエリに基づいて構造化クエリの第１のセットを生成する工程であって、前記第１のセットにおける各構造化クエリは文脈自由文法モデルの１つの文法に対応し、前記第１のセットにおける各構造化クエリは、前記文脈自由文法モデルの１つの文法によって生成された自然言語ストリングに基づき、かつ、１以上の文法トークンおよび１以上のソーシャル・グラフ・トークンを含み、各ソーシャル・グラフ・トークンは、前記複数のノードのうちの１つのノード、または前記複数のエッジのうちの１つのエッジに対応する、工程と、
前記第１のセットにおける各構造化クエリにつき、前記テキスト・クエリおよび前記構造化クエリに基づいて品質スコアを計算する工程と、
前記第１のセットをフィルタリングして、しきい値品質スコア未満の品質スコアを有する各構造化クエリを前記第１のセットから除去する工程と、
前記フィルタリング後の第１のセットからの前記構造化クエリのうちの１以上を前記第１のユーザのクライアント・デバイスに送る工程であって、前記第１のユーザに送られる各構造化クエリは前記しきい値品質スコア以上の品質スコアを有する、工程と、が行われるように構成される、媒体。
【請求項２０】
１以上のプロセッサと、前記プロセッサによって実行可能な命令を備える前記プロセッサに結合されたメモリと、を備えるシステムであって、前記プロセッサは、前記命令が実行されたとき、
複数のノードと前記ノード同士をつなげている複数のエッジとを備えるソーシャル・グラフにアクセスする工程であって、前記ノードのうちの２つのノード間の前記エッジの各々が前記２つのノード間の単一分離度を表しており、前記ノードは、
オンライン・ソーシャル・ネットワークに関連付けられている第１のユーザに対応する第１のノードと、
複数の第２のノードであって、各々がコンセプトに対応するかまたは前記オンライン・ソーシャル・ネットワークに関連付けられている第２のユーザに対応する、複数の第２のノードとを含む、工程と、
前記第１のユーザが入力した非構造化テキスト・クエリを前記第１のユーザのクライアント・デバイスから受け取る工程と、
前記テキスト・クエリに基づいて構造化クエリの第１のセットを生成する工程であって、前記第１のセットにおける各構造化クエリは文脈自由文法モデルの１つの文法に対応し、前記第１のセットにおける各構造化クエリは、前記文脈自由文法モデルの１つの文法によって生成された自然言語ストリングに基づき、かつ、１以上の文法トークンおよび１以上のソーシャル・グラフ・トークンを含み、各ソーシャル・グラフ・トークンは、前記複数のノードのうちの１つのノード、または前記複数のエッジのうちの１つのエッジに対応
する、工程と、
前記第１のセットにおける各構造化クエリにつき、前記テキスト・クエリおよび前記構造化クエリに基づいて品質スコアを計算する工程と、
前記第１のセットをフィルタリングして、しきい値品質スコア未満の品質スコアを有する各構造化クエリを前記第１のセットから除去する工程と、
前記フィルタリング後の第１のセットからの前記構造化クエリのうちの１以上を前記第１のユーザのクライアント・デバイスに送る工程であって、前記第１のユーザに送られる各構造化クエリは前記しきい値品質スコア以上の品質スコアを有する、工程と、が行われるように構成される、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は一般に、ソーシャル・グラフ、およびソーシャル・ネットワーキング環境内でオブジェクトを探して検索を実行することに関する。
【背景技術】
【０００２】
ソーシャル・ネットワーキング・システム（ソーシャルネットワーキング・ウェブサイトを含むことができる）は、そのソーシャル・ネットワーキング・システムのユーザ（人または組織など）がそのソーシャル・ネットワーキング・システムと、およびそのソーシャル・ネットワーキング・システムを通じて互いに対話することを可能にすることができる。ソーシャル・ネットワーキング・システムは、ユーザからの入力を用いて、そのユーザに関連付けられているユーザ・プロフィールを作成して、ソーシャル・ネットワーキング・システム内に記憶することができる。ユーザ・プロフィールは、人口統計学的情報、通信チャネル情報、およびユーザの個人的な関心に関する情報を含むことができる。ソーシャル・ネットワーキング・システムは、ユーザからの入力を用いて、そのユーザと、ソーシャル・ネットワーキング・システムのその他のユーザとの関係のレコードを作成および記憶すること、ならびにサービス（たとえば、ウォール投稿、写真共有、イベント編成、メッセージング、ゲーム、または広告）を提供して、ユーザ同士の間における社会的な交流を容易にすることも可能である。
【０００３】
ソーシャル・ネットワーキング・システムは、そのサービスに関連したコンテンツまたはメッセージを、１つまたは複数のネットワークを通じて、ユーザのモバイルまたはその他のコンピューティング・デバイスへ送信することができる。ユーザは、自分のユーザ・プロフィールおよびソーシャル・ネットワーキング・システム内のその他のデータにアクセスするためにソフトウェア・アプリケーションを自分のモバイルまたはその他のコンピューティング・デバイス上にインストールすることもできる。ソーシャル・ネットワーキング・システムは、ユーザにつながっているその他のユーザの集約されたストーリのニュース・フィードなど、ユーザに表示するためのコンテンツ・オブジェクトのパーソナライズされたセットを生成することができる。
【０００４】
ソーシャル・グラフ分析は、ソーシャルな関係を、ノードおよびエッジから構成されているネットワーク理論の点から見る。ノードは、ネットワーク内の個々の行為主体を表し、エッジは、行為主体同士の間における関係を表す。結果として生じるグラフベースの構造は、しばしば非常に複雑である。多くのタイプのノード、およびノード同士をつなげるための多くのタイプのエッジが存在することが可能である。ソーシャル・グラフは、その最もシンプルな形態においては、調査されているすべてのノードの間における関連があるすべてのエッジのマップである。
【図面の簡単な説明】
【０００５】
【図１】ソーシャル・ネットワーキング・システムに関連付けられている例示的なネットワーク環境を示す図。
【図２】例示的なソーシャル・グラフを示す図。
【図３】オンライン・ソーシャル・ネットワークの例示的なウェブページを示す図。
【図４Ａ】オンライン・ソーシャル・ネットワークの例示的なクエリを示す図。
【図４Ｂ】オンライン・ソーシャル・ネットワークの例示的なクエリを示す図。
【図５】オンライン・ソーシャル・ネットワーク上の構造化クエリの示唆をフィルタリングするための例示的な方法を示す図。
【図６】例示的なコンピュータ・システムを示す図。
【発明を実施するための形態】
【０００６】
特定の実施形態では、ユーザから受け取られたテキスト・クエリに応答して、ソーシャル・ネットワーキング・システムは、識別されたソーシャル・グラフ要素に対応するクエリ・トークンを含む構造化クエリを生成することができる。構造化クエリの示唆をユーザのテキスト・クエリに応答して提供することによって、ソーシャル・ネットワーキング・システムは、オンライン・ソーシャル・ネットワークのユーザが、ソーシャル・グラフにおいて表される要素を、それらのソーシャル・グラフ属性と、様々なソーシャル・グラフ要素に対するそれらの関係とに基づいて検索するための、強力な方法を提供することができる。
【０００７】
特定の実施形態では、ソーシャル・ネットワーキング・システムは、非構造化テキスト・クエリをユーザから受け取ることができる。これに応答して、ソーシャル・ネットワーキング・システムは、テキスト・クエリを解析し、テキスト・クエリに基づいて１つまたは複数の構造化クエリを生成することができる。次いで、これらの構造化クエリは、各構造化クエリの品質に基づいてフィルタリングされ得る。いくつかの非構造化テキスト・クエリを解析するとき、ソーシャル・ネットワーキング・システムは、それに応答して、低品質のまたは関連性のない構造化クエリを生成することがある。これは、文法モデルとうまく合致しない語句をテキスト・クエリが含むときに起こることがあり、したがって、この語句は、文法モデルによって解析されたとき、関連性のないクエリ・トークンに合致されてしまう。これらの低品質の構造化クエリは滑稽であるかまたは当惑させるものであることがあるので、これらのクエリが示唆として照会元ユーザに送り返される前に、これらのクエリをフィルタリングによって除去することが望ましいであろう。フィルタリングは、特定の示唆クエリが低品質であるかまたは関連性がないものであるかもしれないことを伝える様々な要因に基づいて、各構造化を分析しスコアリングすることによって行われ得る。各構造化クエリは、テキスト・クエリ自体および構造化クエリに基づいてスコアリングされ得る。品質スコアの低い構造化クエリはフィルタリングによって除去されてよく、したがって、高品質の構造化クエリのみが照会元ユーザに提示される。次いで、フィルタリング後に残った構造化クエリは、ユーザに対して送信および表示されてよく、次いでユーザは、適切なクエリを選択して所望のコンテンツを検索することができる。
【０００８】
システム外観
図１は、ソーシャル・ネットワーキング・システムに関連付けられている例示的なネットワーク環境１００を示している。ネットワーク環境１００は、ネットワーク１１０によって互いにつながっているクライアント・システム１３０、ソーシャル・ネットワーキング・システム１６０、およびサードパーティ・システム１７０を含む。図１は、クライアント・システム１３０、ソーシャル・ネットワーキング・システム１６０、サードパーティ・システム１７０、およびネットワーク１１０の特定の構成を示しているが、本開示は、クライアント・システム１３０、ソーシャル・ネットワーキング・システム１６０、サードパーティ・システム１７０、およびネットワーク１１０の任意の適切な構成を想定している。限定ではなく、例として、クライアント・システム１３０、ソーシャル・ネットワーキング・システム１６０、およびサードパーティ・システム１７０のうちの複数は、ネットワーク１１０を迂回して、互いに直接つながることが可能である。別の例として、クライアント・システム１３０、ソーシャル・ネットワーキング・システム１６０、およびサードパーティ・システム１７０のうちの複数は、物理的にまたは論理的に、全体としてまたは部分的に互いに同一場所に配置されることが可能である。その上、図１は、特定の数のクライアント・システム１３０、ソーシャル・ネットワーキング・システム１６０、サードパーティ・システム１７０、およびネットワーク１１０を示しているが、本開示は、任意の適切な数のクライアント・システム１３０、ソーシャル・ネットワーキング・
システム１６０、サードパーティ・システム１７０、およびネットワーク１１０を想定している。限定ではなく、例として、ネットワーク環境１００は、複数のクライアント・システム１３０、ソーシャル・ネットワーキング・システム１６０、サードパーティ・システム１７０、およびネットワーク１１０を含むことができる。
【０００９】
本開示は、任意の適切なネットワーク１１０を想定している。限定ではなく、例として、ネットワーク１１０の１つまたは複数の部分は、アド・ホック・ネットワーク、イントラネット、エクストラネット、仮想プライベート・ネットワーク（ＶＰＮ）、ローカル・エリア・ネットワーク（ＬＡＮ）、ワイヤレスＬＡＮ（ＷＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、ワイヤレスＷＡＮ（ＷＷＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、インターネットの一部分、公衆交換電話網（ＰＳＴＮ）の一部分、セルラー電話ネットワーク、またはこれらのうちの複数の組合せを含むことができる。ネットワーク１１０は、１つまたは複数のネットワーク１１０を含むことができる。
【００１０】
リンク１５０は、クライアント・システム１３０、ソーシャル・ネットワーキング・システム１６０、およびサードパーティ・システム１７０を通信ネットワーク１１０に、または互いに接続することができる。本開示は、任意の適切なリンク１５０を想定している。特定の実施形態においては、１つまたは複数のリンク１５０は、１つもしくは複数の有線リンク（たとえば、デジタル・サブスクライバ・ライン（ＤＳＬ）もしくはデータ・オーバ・ケーブル・サービス・インタフェース仕様（ＤＯＣＳＩＳ）など）、ワイヤレス・リンク（たとえば、Ｗｉ−Ｆｉもしくはワールドワイド・インターオペラビリティー・フォー・マイクロウェーブ・アクセス（ＷｉＭＡＸ）など）、または光リンク（たとえば、同期光ネットワーク（ＳＯＮＥＴ）もしくは同期デジタル階層（ＳＤＨ）など）を含む。特定の実施形態においては、１つまたは複数のリンク１５０はそれぞれ、アド・ホック・ネットワーク、イントラネット、エクストラネット、ＶＰＮ、ＬＡＮ、ＷＬＡＮ、ＷＡＮ、ＷＷＡＮ、ＭＡＮ、インターネットの一部分、ＰＳＴＮの一部分、セルラー・テクノロジーベースのネットワーク、衛星通信テクノロジーベースのネットワーク、別のリンク１５０、または複数のそのようなリンク１５０の組合せを含む。リンク１５０は、ネットワーク環境１００の全体を通じて必ずしも同じである必要はない。１つまたは複数の第１のリンク１５０は、１つまたは複数の点において１つまたは複数の第２のリンク１５０とは異なることが可能である。
【００１１】
特定の実施形態においては、クライアント・システム１３０は、クライアント・システム１３０によって実装またはサポートされる適切な機能を実行することができる、ハードウェア、ソフトウェア、もしくは組み込みロジック・コンポーネント、または複数のそのようなコンポーネントの組合せを含む電子デバイスであることが可能である。限定ではなく、例として、クライアント・システム１３０は、デスクトップ・コンピュータ、ノートブック・コンピュータもしくはラップトップ・コンピュータ、ネットブック、タブレット・コンピュータなどのコンピュータ・システム、ｅブック・リーダ、ＧＰＳデバイス、カメラ、携帯情報端末（ＰＤＡ）、ハンドヘルド電子デバイス、セルラー電話、スマートフォン、その他の適切な電子デバイス、またはそれらの任意の適切な組合せを含むことができる。本開示は、任意の適切なクライアント・システム１３０を想定している。クライアント・システム１３０は、クライアント・システム１３０のネットワーク・ユーザがネットワーク１１０にアクセスすることを可能にすることができる。クライアント・システム１３０は、自分のユーザがその他のクライアント・システム１３０のその他のユーザと通信することを可能にすることができる。
【００１２】
特定の実施形態においては、クライアント１３０は、ＭＩＣＲＯＳＯＦＴ  ＩＮＴＥＲＮＥＴ  ＥＸＰＬＯＲＥＲ、ＧＯＯＧＬＥ  ＣＨＲＯＭＥ、またはＭＯＺＩＬＬＡ  ＦＩＲＥＦＯＸなどのウェブ・ブラウザ１３２を含むことができ、１つまたは複数のアドオン
、プラグイン、またはＴＯＯＬＢＡＲもしくはＹＡＨＯＯ  ＴＯＯＬＢＡＲなどのその他の拡張を有することができる。クライアント・システム１３０のユーザは、ウェブ・ブラウザ１３２を特定のサーバ（サーバ１６２、またはサードパーティ・システム１７０に関連付けられているサーバなど）へ導くユニフォーム・リソース・ロケータ（ＵＲＬ）またはその他のアドレスを入力することができ、ウェブ・ブラウザ１３２は、ハイパー・テキスト転送プロトコル（ＨＴＴＰ）要求を生成して、そのＨＴＴＰ要求をサーバに通信することができる。サーバは、そのＨＴＴＰ要求を受け入れて、そのＨＴＴＰ要求に応答して１つまたは複数のハイパー・テキスト・マークアップ言語（ＨＴＭＬ）ファイルをクライアント・システム１３０に通信することができる。クライアント・システム１３０は、ユーザに提示するためにサーバからのＨＴＭＬファイルに基づいてウェブページをレンダリングすることができる。本開示は、任意の適切なウェブページ・ファイルを想定している。限定ではなく、例として、ウェブページは、特定のニーズに従って、ＨＴＭＬファイル、拡張可能ハイパー・テキスト・マークアップ言語（ＸＨＴＭＬ）ファイル、または拡張可能マークアップ言語（ＸＭＬ）ファイルからレンダリングすることができる。そのようなページは、限定ではなく、例として、ＪＡＶＡＳＣＲＩＰＴ（登録商標）、ＪＡＶＡ（登録商標）、ＭＩＣＲＯＳＯＦＴ  ＳＩＬＶＥＲＬＩＧＨＴで書かれたスクリプトなどのスクリプト、ＡＪＡＸ（Ａｓｙｎｃｈｒｏｎｏｕｓ  ＪＡＶＡＳＣＲＩＰＴ（登録商標）ａｎｄ  ＸＭＬ）などのマークアップ言語とスクリプトの組合せなどを実行することもできる。本明細書においては、ウェブページへの参照は、適切な場合には、（そのウェブページをレンダリングするためにブラウザが使用することができる）１つまたは複数の対応するウェブページ・ファイルを含み、その逆もまた同様である。
【００１３】
特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０は、オンライン・ソーシャル・ネットワークをホストすることができるネットワークアドレス可能なコンピューティング・システムであることが可能である。ソーシャル・ネットワーキング・システム１６０は、たとえば、ユーザプロフィール・データ、コンセプトプロフィール・データ、ソーシャル・グラフ情報、またはオンライン・ソーシャル・ネットワークに関連したその他の適切なデータなどのソーシャルネットワーキング・データを生成すること、記憶すること、受け取ること、および送信することが可能である。ソーシャル・ネットワーキング・システム１６０は、ネットワーク環境１００のその他のコンポーネントによって直接、またはネットワーク１１０を通じてアクセスされることが可能である。特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０は、１つまたは複数のサーバ１６２を含むことができる。それぞれのサーバ１６２は、単一のサーバ、または複数のコンピュータもしくは複数のデータセンターにわたる分散サーバであることが可能である。サーバ１６２は、限定ではなく、例として、ウェブ・サーバ、ニュース・サーバ、メール・サーバ、メッセージ・サーバ、広告サーバ、ファイル・サーバ、アプリケーション・サーバ、Ｅｘｃｈａｎｇｅサーバ、データベース・サーバ、プロキシ・サーバ、本明細書において記述されている機能もしくはプロセスを実行するのに適している別のサーバ、またはそれらの任意の組合せなど、さまざまなタイプのものであることが可能である。特定の実施形態においては、それぞれのサーバ１６２は、サーバ１６２によって実装またはサポートされる適切な機能を実行するためのハードウェア、ソフトウェア、もしくは組み込みロジック・コンポーネント、または複数のそのようなコンポーネントの組合せを含むことができる。特定の実施形態においては、ソーシャル・ネットワーキング・システム１６４は、１つまたは複数のデータ・ストア１６４を含むことができる。データ・ストア１６４は、さまざまなタイプの情報を記憶するために使用されることが可能である。特定の実施形態においては、データ・ストア１６４内に記憶されている情報は、特定のデータ構造に従って編成されることが可能である。特定の実施形態においては、それぞれのデータ・ストア１６４は、リレーショナル・データベースであることが可能である。特定の実施形態は、クライアント・システム１３０、ソーシャル・ネットワーキング・システム１６０、またはサードパーティ・システム１７０が、データ・ストア１６４内に記憶
されている情報を管理すること、取り出すこと、修正すること、追加すること、または削除することを可能にするインタフェースを提供することができる。
【００１４】
特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０は、１つまたは複数のソーシャル・グラフを１つまたは複数のデータ・ストア１６４内に記憶することができる。特定の実施形態においては、ソーシャル・グラフは、複数のノード（複数のユーザ・ノード（それぞれが、特定のユーザに対応している）、または複数のコンセプト・ノード（それぞれが、特定のコンセプトに対応している）を含むことができる）と、ノード同士をつなげる複数のエッジとを含むことができる。ソーシャル・ネットワーキング・システム１６０は、オンライン・ソーシャル・ネットワークのユーザに、その他のユーザと通信および対話する能力を提供することができる。特定の実施形態においては、ユーザたちは、ソーシャル・ネットワーキング・システム１６０を通じてオンライン・ソーシャル・ネットワークに参加し、次いで、自分たちがつながりたいと望むソーシャル・ネットワーキング・システム１６０のその他の複数のユーザにつながり（すなわち、関係）を付加することができる。本明細書においては、「友達」という用語は、ユーザがソーシャル・ネットワーキング・システム１６０を通じて、つながり、関連付け、または関係を形成しているソーシャル・ネットワーキング・システム１６０のその他の任意のユーザを示すことができる。
【００１５】
特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０は、ソーシャル・ネットワーキング・システム１６０によってサポートされるさまざまなタイプのアイテムまたはオブジェクトに関してアクションを取る能力をユーザに提供することができる。限定ではなく、例として、それらのアイテムおよびオブジェクトは、ソーシャル・ネットワーキング・システム１６０のユーザが属することが可能であるグループもしくはソーシャル・ネットワーク、ユーザが関心を抱く可能性があるイベントもしくはカレンダー・エントリー、ユーザが使用することができるコンピュータベースのアプリケーション、ユーザがサービスを通じてアイテムを購入もしくは販売することを可能にするトランザクション、ユーザが実行することができる広告との対話、またはその他の適切なアイテムもしくはオブジェクトを含むことができる。ユーザは、ソーシャル・ネットワーキング・システム１６０において、またはサードパーティ・システム１７０の外部システム（ソーシャル・ネットワーキング・システム１６０とは別個のものであって、ネットワーク１１０を通じてソーシャル・ネットワーキング・システム１６０に結合されている）によって表されることが可能である任意のものと対話することができる。
【００１６】
特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０は、さまざまなエンティティ同士をリンクできることが可能である。限定ではなく、例として、ソーシャル・ネットワーキング・システム１６０は、ユーザたちが互いに対話すること、ならびにサードパーティ・システム１７０もしくはその他のエンティティからのコンテンツを受け取ることを可能にすることができ、またはユーザたちがアプリケーション・プログラミング・インタフェース（ＡＰＩ）もしくはその他の通信チャネルを通じてこれらのエンティティと対話することを可能にすることができる。
【００１７】
特定の実施形態においては、サードパーティ・システム１７０は、１つもしくは複数のタイプのサーバ、１つもしくは複数のデータ・ストア、１つもしくは複数のインタフェース（ＡＰＩを含むが、それには限定されない）、１つもしくは複数のウェブ・サービス、１つもしくは複数のコンテンツ・ソース、１つもしくは複数のネットワーク、または（たとえば、サーバが通信することができる）その他の任意の適切なコンポーネントを含むことができる。サードパーティ・システム１７０は、ソーシャル・ネットワーキング・システム１６０を運営しているエンティティとは異なるエンティティによって運営されることが可能である。しかしながら、特定の実施形態においては、ソーシャル・ネットワーキン
グ・システム１６０およびサードパーティ・システム１７０は、ソーシャル・ネットワーキング・システム１６０またはサードパーティ・システム１７０のユーザにソーシャルネットワーキング・サービスを提供するために互いに連携して機能することができる。この意味において、ソーシャル・ネットワーキング・システム１６０は、サードパーティ・システム１７０などのその他のシステムがインターネットを通じてソーシャルネットワーキング・サービスおよび機能をユーザに提供するために使用することができるプラットフォーム、またはバックボーンを提供することができる。
【００１８】
特定の実施形態においては、サードパーティ・システム１７０は、サードパーティ・コンテンツ・オブジェクト・プロバイダを含むことができる。サードパーティ・コンテンツ・オブジェクト・プロバイダは、コンテンツ・オブジェクトの１つまたは複数のソースを含むことができ、それらのソースは、クライアント・システム１３０に通信されることが可能である。限定ではなく、例として、コンテンツ・オブジェクトは、ユーザにとって関心がある物またはアクティビティに関する情報、たとえば、映画の開始時刻、映画のレビュー、レストランのレビュー、レストランのメニュー、製品の情報およびレビュー、またはその他の適切な情報などを含むことができる。限定ではなく、別の例として、コンテンツ・オブジェクトは、インセンティブ・コンテンツ・オブジェクト、たとえば、クーポン、ディスカウント・チケット、ギフト券、またはその他の適切なインセンティブ・オブジェクトを含むことができる。
【００１９】
特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０はまた、ユーザによって生成されたコンテンツ・オブジェクトを含み、それらのコンテンツ・オブジェクトは、ソーシャル・ネットワーキング・システム１６０とのユーザの対話を高めることができる。ユーザによって生成されたコンテンツは、ユーザがソーシャル・ネットワーキング・システム１６０に付加、アップロード、送信、または「投稿」することができる任意のものを含むことができる。限定ではなく、例として、ユーザは、クライアント・システム１３０からソーシャル・ネットワーキング・システム１６０へ投稿を通信する。投稿は、ステータス更新もしくはその他のテキスト・データ、ロケーション情報、写真、映像、リンク、音楽、またはその他の類似したデータもしくはメディアなどのデータを含むことができる。コンテンツは、ニュース・フィードまたはストリームなどの「通信チャネル」を通じてサードパーティによってソーシャル・ネットワーキング・システム１６０に付加されることも可能である。
【００２０】
特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０は、さまざまなサーバ、サブシステム、プログラム、モジュール、ログ、およびデータ・ストアを含むことができる。特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０は、ウェブ・サーバ、アクション・ロガー、ＡＰＩ要求サーバ、関連性およびランキング・エンジン、コンテンツ・オブジェクト分類子、通知コントローラ、アクション・ログ、サードパーティ・コンテンツ・オブジェクト露出ログ、推測モジュール、認可／プライバシ・サーバ、検索モジュール、広告ターゲティング・モジュール、ユーザインタフェース・モジュール、ユーザプロフィール・ストア、つながりストア、サードパーティ・コンテンツ・ストア、またはロケーション・ストアのうちの１つまたは複数を含むことができる。ソーシャル・ネットワーキング・システム１６０は、適切なコンポーネント、たとえば、ネットワーク・インタフェース、セキュリティ機構、ロード・バランサ、フェイルオーバ・サーバ、管理およびネットワークオペレーション・コンソール、その他の適切なコンポーネント、またはそれらの任意の適切な組合せを含むこともできる。特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０は、ユーザ・プロフィールを記憶するための１つまたは複数のユーザプロフィール・ストアを含むことができる。ユーザ・プロフィールは、たとえば、経歴情報、人口統計学的情報、挙動情報、ソーシャルな情報、またはその他のタイプの記述的情報、たとえば、職業経験、学歴、趣味も
しくは好み、関心、親近感、またはロケーションを含むことができる。関心情報は、１つまたは複数のカテゴリに関連した関心を含むことができる。カテゴリは、一般的または具体的であることが可能である。限定ではなく、例として、ユーザが、あるブランドの靴に関する記事に対して「いいね！」の表明をした場合には、カテゴリは、そのブランド、または「靴」もしくは「衣類」という一般的なカテゴリであることが可能である。ユーザに関するつながり情報を記憶するために、つながりストアが使用されることが可能である。つながり情報は、類似のもしくは共通の職業経験、グループ・メンバーシップ、趣味、学歴を有しているか、または何らかの形で関連しているか、もしくは共通の属性を共有しているユーザ同士を示すことができる。つながり情報は、さまざまなユーザおよびコンテンツ（内部および外部の両方）の間におけるユーザ定義のつながりを含むこともできる。ネットワーク１１０を通じてソーシャル・ネットワーキング・システム１６０を１つもしくは複数のクライアント・システム１３０または１つもしくは複数のサードパーティ・システム１７０にリンクさせるために、ウェブ・サーバが使用されることが可能である。ウェブ・サーバは、ソーシャル・ネットワーキング・システム１６０と、１つまたは複数のクライアント・システム１３０との間においてメッセージを受け取って回送するためにメール・サーバまたはその他のメッセージング機能を含むことができる。ＡＰＩ要求サーバは、サードパーティ・システム１７０が、１つまたは複数のＡＰＩを呼び出すことによってソーシャル・ネットワーキング・システム１６０からの情報にアクセスすることを可能にすることができる。ソーシャル・ネットワーキング・システム１６０の上のまたは外のユーザのアクションに関してウェブ・サーバから通信を受け取るために、アクション・ロガーが使用されることが可能である。アクション・ログとともに、サードパーティコンテンツ・オブジェクトへのユーザの露出についてのサードパーティコンテンツオブジェクト・ログが保持されることが可能である。通知コントローラは、コンテンツ・オブジェクトに関する情報をクライアント・システム１３０に提供することができる。情報は、通知としてクライアント・システム１３０へプッシュされることが可能であり、または情報は、クライアント・システム１３０から受け取られた要求に応答してクライアント・システム１３０からプルされることが可能である。ソーシャル・ネットワーキング・システム１６０のユーザの１つまたは複数のプライバシ設定を実施するために、認可サーバが使用されることが可能である。ユーザのプライバシ設定は、ユーザに関連付けられている特定の情報がどのように共有されることが可能であるかを特定する。認可サーバは、ユーザが、たとえば、適切なプライバシ設定を設定することなどによって、自分のアクションをソーシャル・ネットワーキング・システム１６０によって記録されること、またはその他のシステム（たとえば、サードパーティ・システム１７０）と共有されることのオプト・インまたはオプト・アウトを行うことを可能にすることができる。サードパーティ・システム１７０などのサードパーティから受け取られたコンテンツ・オブジェクトを記憶するために、サードパーティコンテンツオブジェクト・ストアが使用されることが可能である。ユーザに関連付けられているクライアント・システム１３０から受け取られたロケーション情報を記憶するために、ロケーション・ストアが使用されることが可能である。広告価格設定モジュールが、ソーシャルな情報、現在時刻、ロケーション情報、またはその他の適切な情報を組み合わせて、関連がある広告を、通知の形式でユーザに提供することができる。
【００２１】
ソーシャル・グラフ
図２は、例示的なソーシャル・グラフ２００を示している。特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０は、１つまたは複数のソーシャル・グラフ２００を１つまたは複数のデータ・ストア内に記憶することができる。特定の実施形態においては、ソーシャル・グラフ２００は、複数のノード（複数のユーザ・ノード２０２、または複数のコンセプト・ノード２０４を含むことができる）と、ノード同士をつなげる複数のエッジ２０６とを含むことができる。図２において示されている例示的なソーシャル・グラフ２００は、教示上の目的から、二次元の視覚的マップ表示で示されている。特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０、クライ
アント・システム１３０、またはサードパーティ・システム１７０は、適切なアプリケーションに関してソーシャル・グラフ２００および関連したソーシャル・グラフ情報にアクセスすることができる。ソーシャル・グラフ２００のノードおよびエッジは、データ・オブジェクトとして、たとえば（ソーシャル・グラフ・データベースなどの）データ・ストア内に記憶されることが可能である。そのようなデータ・ストアは、ソーシャル・グラフ２００のノードまたはエッジの１つまたは複数の検索可能なまたはクエリ可能なインデックスを含むことができる。
【００２２】
特定の実施形態においては、ユーザ・ノード２０２は、ソーシャル・ネットワーキング・システム１６０のユーザに対応することができる。限定ではなく、例として、ユーザは、ソーシャル・ネットワーキング・システム１６０と、またはソーシャル・ネットワーキング・システム１６０を通じて対話または通信する個人（人間のユーザ）、エンティティ（たとえば、企業、ビジネス、もしくはサードパーティ・アプリケーション）、または（たとえば、個人もしくはエンティティの）グループであることが可能である。特定の実施形態においては、あるユーザがソーシャル・ネットワーキング・システム１６０とのアカウントに登録した場合には、ソーシャル・ネットワーキング・システム１６０は、そのユーザに対応するユーザ・ノード２０２を作成し、そのユーザ・ノード２０２を１つまたは複数のデータ・ストア内に記憶することができる。本明細書において記述されているユーザおよびユーザ・ノード２０２は、適切な場合には、登録されているユーザ、および登録されているユーザに関連付けられているユーザ・ノード２０２を示すことができる。追加として、または代替として、本明細書において記述されているユーザおよびユーザ・ノード２０２は、適切な場合には、ソーシャル・ネットワーキング・システム１６０に登録されていないユーザを示すことができる。特定の実施形態においては、ユーザ・ノード２０２は、ユーザによって提供された情報、またはソーシャル・ネットワーキング・システム１６０を含むさまざまなシステムによって収集された情報に関連付けられることが可能である。限定ではなく、例として、ユーザは、自分の名前、プロフィール画像、連絡先情報、生年月日、性別、婚姻状況、家族状況、勤務先、学歴、好み、関心、またはその他の人口統計学的情報を提供することができる。特定の実施形態においては、ユーザ・ノード２０２は、ユーザに関連付けられている情報に対応する１つまたは複数のデータ・オブジェクトに関連付けられることが可能である。特定の実施形態においては、ユーザ・ノード２０２は、１つまたは複数のウェブページに対応することができる。
【００２３】
特定の実施形態においては、コンセプト・ノード２０４は、コンセプトに対応することができる。限定ではなく、例として、コンセプトは、場所（たとえば、映画館、レストラン、ランドマーク、もしくは都市など）、ウェブサイト（たとえば、ソーシャルネットワーク・システム１６０に関連付けられているウェブサイト、もしくはウェブアプリケーション・サーバに関連付けられているサードパーティ・ウェブサイトなど）、エンティティ（たとえば、人、企業、グループ、スポーツ・チーム、もしくは有名人など）、ソーシャル・ネットワーキング・システム１６０内に、もしくはウェブアプリケーション・サーバなどの外部サーバ上に配置されることが可能であるリソース（たとえば、オーディオ・ファイル、営業ファイル、デジタル写真、テキスト・ファイル、構造化文書、もしくはアプリケーションなど）、物的もしくは知的財産（たとえば、彫塑、絵画、映画、ゲーム、曲、着想、写真、もしくは執筆作品など）、ゲーム、アクティビティ、着想もしくは理論、別の適切なコンセプト、または複数のそのようなコンセプトに対応することができる。コンセプト・ノード２０４は、ユーザによって提供されたコンセプトの情報、またはソーシャル・ネットワーキング・システム１６０を含むさまざまなシステムによって収集された情報に関連付けられることが可能である。限定ではなく、例として、コンセプトの情報は、名前もしくはタイトル、１つもしくは複数のイメージ（たとえば、本の表紙のイメージ）、ロケーション（たとえば、住所もしくは地理的ロケーション）、（ＵＲＬに関連付けられることが可能である）ウェブサイト、連絡先情報（たとえば、電話番号もしくはＥメ
ール・アドレス）、その他の適切なコンセプト情報、またはそのような情報の任意の適切な組合せを含むことができる。特定の実施形態においては、コンセプト・ノード２０４は、コンセプト・ノード２０４に関連付けられている情報に対応する１つまたは複数のデータ・オブジェクトに関連付けられることが可能である。特定の実施形態においては、コンセプト・ノード２０４は、１つまたは複数のウェブページに対応することができる。
【００２４】
特定の実施形態においては、ソーシャル・グラフ２００内のノードは、ウェブページ（「プロフィール・ページ」と呼ばれる場合もある）を表すこと、またはウェブページによって表されることが可能である。プロフィール・ページは、ソーシャル・ネットワーキング・システム１６０によってホストされること、またはソーシャル・ネットワーキング・システム１６０にとってアクセス可能であることが可能である。プロフィール・ページは、サードパーティ・サーバ１７０に関連付けられているサードパーティ・ウェブサイト上にホストされることも可能である。限定ではなく、例として、特定の外部ウェブページに対応するプロフィール・ページは、その特定の外部ウェブページであることが可能であり、そのプロフィール・ページは、特定のコンセプト・ノード２０４に対応することができる。プロフィール・ページは、その他のユーザのうちのすべてまたは選択されたサブセットによって閲覧できることが可能である。限定ではなく、例として、ユーザ・ノード２０２は、対応するユーザ・プロフィール・ページを有することができ、そのユーザ・プロフィール・ページにおいては、対応するユーザが、コンテンツを付加すること、言明を行うこと、またはその他の形で自分自身を表現することが可能である。限定ではなく、別の例として、コンセプト・ノード２０４は、対応するコンセプトプロフィール・ページを有することができ、そのコンセプトプロフィール・ページにおいては、１人または複数のユーザが、特にコンセプト・ノード２０４に対応するコンセプトに関連して、コンテンツを付加すること、言明を行うこと、または自分自身を表現することが可能である。
【００２５】
特定の実施形態においては、コンセプト・ノード２０４は、サードパーティ・システム１７０によってホストされているサードパーティ・ウェブページまたはリソースを表すことができる。サードパーティ・ウェブページまたはリソースは、数ある要素の中でも、コンテンツ、選択可能なもしくはその他のアイコン、または、アクションもしくはアクティビティを表す（たとえば、ＪＡＶＡＳＣＲＩＰＴ（登録商標）、ＡＪＡＸ、もしくはＰＨＰコードで実装されることが可能である）その他の対話可能なオブジェクトを含むことができる。限定ではなく、例として、サードパーティ・ウェブページは、「いいね！」、「チェックイン」、「食べる」、「推奨する」、または別の適切なアクションもしくはアクティビティなどの選択可能なアイコンを含むことができる。サードパーティ・ウェブページを閲覧しているユーザは、それらのアイコンのうちの１つ（たとえば、「食べる」）を選択することによってアクションを実行して、クライアント・システム１３０に、そのユーザのアクションを示すメッセージをソーシャル・ネットワーキング・システム１６０へ送信させることができる。そのメッセージに応答して、ソーシャル・ネットワーキング・システム１６０は、ユーザに対応するユーザ・ノード２０２と、サードパーティ・ウェブページまたはリソースに対応するコンセプト・ノード２０４との間においてエッジ（たとえば、「食べる」エッジ）を作成して、エッジ２０６を１つまたは複数のデータ・ストア内に記憶することができる。
【００２６】
特定の実施形態においては、ソーシャル・グラフ２００内の１対のノードが、１つまたは複数のエッジ２０６によって互いにつながることが可能である。１対のノードをつなげるエッジ２０６は、それらの１対のノードの間における関係を表すことができる。特定の実施形態においては、エッジ２０６は、１対のノードの間における関係に対応する１つまたは複数のデータ・オブジェクトまたは属性を含むことまたは表すことが可能である。限定ではなく、例として、第１のユーザは、第２のユーザが第１のユーザの「友達」であるということを示すことができる。この表示に応答して、ソーシャル・ネットワーキング・
システム１６０は、「友達要求」を第２のユーザに送信することができる。第２のユーザがその「友達要求」を承認した場合には、ソーシャル・ネットワーキング・システム１６０は、ソーシャル・グラフ２００内で第１のユーザのユーザ・ノード２０２を第２のユーザのユーザ・ノード２０２につなげるエッジ２０６を作成して、エッジ２０６をソーシャル・グラフ情報としてデータ・ストア２４のうちの１つまたは複数の中に記憶することができる。図２の例においては、ソーシャル・グラフ２００は、ユーザ「Ａ」のユーザ・ノード２０２と、ユーザ「Ｂ」のユーザ・ノード２０２との間における友達関係を示すエッジ２０６と、ユーザ「Ｃ」のユーザ・ノード２０２と、ユーザ「Ｂ」のユーザ・ノード２０２との間における友達関係を示すエッジとを含む。本開示は、特定のユーザ・ノード２０２同士をつなげる特定の属性を伴う特定のエッジ２０６を記述している、または示しているが、本開示は、ユーザ・ノード２０２同士をつなげる任意の適切な属性を伴う任意の適切なエッジ２０６を想定している。限定ではなく、例として、エッジ２０６は、友達関係、家族関係、ビジネスもしくは雇用関係、ファン関係、フォロワー関係、ビジター関係、サブスクライバ関係、上下関係、互恵的関係、非互恵的関係、別の適切なタイプの関係、または複数のそのような関係を表すことができる。その上、本開示は一般に、ノード同士をつながっているものとして記述しているが、本開示はまた、ユーザ同士またはコンセプト同士をつながっているものとして記述している。本明細書においては、つながっているユーザ同士またはコンセプト同士への言及は、適切な場合には、１つまたは複数のエッジ２０６によってソーシャル・グラフ２００内でつながっているそれらのユーザ同士またはコンセプト同士に対応するノード同士を示すことができる。
【００２７】
特定の実施形態においては、ユーザ・ノード２０２とコンセプト・ノード２０４との間におけるエッジ２０６は、ユーザ・ノード２０２に関連付けられているユーザによって、コンセプト・ノード２０４に関連付けられているコンセプトに対して実行された特定のアクションまたはアクティビティを表すことができる。限定ではなく、例として、図２において示されているように、ユーザは、コンセプトに対して「いいね！を表明すること」、「通うこと」、「プレイすること」、「聴くこと」、「料理すること」、「勤務すること」、または「観ること」を行った可能性があり、それらの各々は、エッジ・タイプまたはサブタイプに対応することができる。コンセプト・ノード２０４に対応するコンセプトプロフィール・ページは、たとえば、選択可能な「チェックイン」アイコン（たとえば、クリック可能な「チェックイン」アイコンなど）、または選択可能な「お気に入りに追加」アイコンを含むことができる。同様に、ユーザがこれらのアイコンをクリックした後に、ソーシャル・ネットワーキング・システム１６０は、それぞれのアクションに対応するユーザのアクションに応答して「お気に入り」エッジまたは「チェックイン」エッジを作成することができる。限定ではなく、別の例として、あるユーザ（ユーザ「Ｃ」）が、特定のアプリケーション（オンライン音楽アプリケーションであるＳＰＯＴＩＦＹ）を使用して特定の曲（「イマジン」）を聴く場合がある。このケースにおいては、ソーシャル・ネットワーキング・システム１６０は、そのユーザに対応するユーザ・ノード２０２と、その曲およびアプリケーションに対応するコンセプト・ノード２０４との間において、（図２に示されているような）「聴いた」エッジ２０６および「使用した」エッジを作成して、そのユーザがその曲を聴いてそのアプリケーションを使用したということを示すことができる。その上、ソーシャル・ネットワーキング・システム１６０は、その曲に対応するコンセプト・ノード２０４と、そのアプリケーションに対応するコンセプト・ノード２０４との間において、（図２に示されているような）「プレイした」エッジ２０６を作成して、その特定の曲がその特定のアプリケーションによってプレイされたということを示すことができる。このケースにおいては、「プレイした」エッジ２０６は、外部アプリケーション（ＳＰＯＴＩＦＹ）によって外部オーディオ・ファイル（「イマジン」という曲）に関して実行されたアクションに対応する。本開示は、ユーザ・ノード２０２とコンセプト・ノード２０４とをつなげる特定の属性を伴う特定のエッジ２０６について記述しているが、本開示は、ユーザ・ノード２０２とコンセプト・ノード２０４とをつなげる任意の
適切な属性を伴う任意の適切なエッジ２０６を想定している。その上、本開示は、単一の関係を表すユーザ・ノード２０２とコンセプト・ノード２０４との間におけるエッジについて記述しているが、本開示は、１つまたは複数の関係を表すユーザ・ノード２０２とコンセプト・ノード２０４との間におけるエッジを想定している。限定ではなく、例として、エッジ２０６は、ユーザが特定のコンセプトに対して「いいね！」の表明をしているということ、およびその特定のコンセプトを使用したということの両方を表すことができる。あるいは、別のエッジ２０６は、（図２において、ユーザ「Ｅ」を表すユーザ・ノード２０２と、「ＳＰＯＴＩＦＹ」を表すコンセプト・ノード２０４との間において示されているような）ユーザ・ノード２０２とコンセプト・ノード２０４との間におけるそれぞれのタイプの関係（または、単一の関係が複数集まったもの）を表すことができる。
【００２８】
特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０は、ソーシャル・グラフ２００内でユーザ・ノード２０２とコンセプト・ノード２０４との間においてエッジ２０６を作成することができる。限定ではなく、例として、（たとえば、ユーザのクライアント・システム１３０によってホストされているウェブ・ブラウザまたは専用のアプリケーションを使用することなどによって）コンセプトプロフィール・ページを閲覧しているユーザは、「いいね！」アイコンをクリックまたは選択することにより、コンセプト・ノード２０４によって表されているコンセプトを自分が気に入っているということを示すことができ、その「いいね！」アイコンをクリックまたは選択することは、ユーザのクライアント・システム１３０に、そのコンセプトプロフィール・ページに関連付けられているそのコンセプトをそのユーザが気に入っているということを示すメッセージをソーシャル・ネットワーキング・システム１６０へ送信させることができる。そのメッセージに応答して、ソーシャル・ネットワーキング・システム１６０は、そのユーザとコンセプト・ノード２０４との間における「いいね！」エッジ２０６によって示されているように、そのユーザに関連付けられているユーザ・ノード２０２とコンセプト・ノード２０４との間においてエッジ２０６を作成することができる。特定の実施形態においては、ソーシャル・ネットワーキング・システム１６０は、エッジ２０６を１つまたは複数のデータ・ストア内に記憶することができる。特定の実施形態においては、エッジ２０６は、特定のユーザ・アクションに応答してソーシャル・ネットワーキング・システム１６０によって自動的に形成されることが可能である。限定ではなく、例として、第１のユーザが、画像をアップロードすること、映画を観ること、または曲を聴くことを行った場合には、エッジ２０６は、第１のユーザに対応するユーザ・ノード２０２と、それらのコンセプトに対応するコンセプト・ノード２０４との間において形成されることが可能である。本開示は、特定の様式で特定のエッジ２０６を形成することについて記述しているが、本開示は、任意の適切な様式で任意の適切なエッジ２０６を形成することを想定している。
【００２９】
タイプアヘッド・プロセス
特定の実施形態では、１つまたは複数のクライアント側および／またはバックエンド（サーバ側）プロセスが、「タイプアヘッド（ｔｙｐｅａｈｅａｄ）」フィーチャを実装および利用する。それにより、ソーシャル・ネットワーキング・システム１６０によってホストされるかまたはソーシャル・ネットワーキング・システム１６０においてアクセス可能な要求されたウェブ・ページ（ユーザ・プロファイル・ページなど）と共にレンダリングされた入力フォームにおいてユーザによって現在入力されつつある情報に、それぞれの既存のユーザ・ノード２０２またはコンセプト・ノード２０４に対応するコンセプトを合致させようと自動的に試みる。特定の実施形態では、ユーザが宣言を行うためにテキストを入力しているとき、タイプアヘッド・フィーチャは、宣言の中で入力されつつあるテキスト文字のストリングを、既存のコンセプト（またはユーザ）、およびソーシャル・グラフ２００における対応するコンセプト（またはユーザ）ノード、に対応する文字（例えば名前）のストリングに合致させようと試みる。特定の実施形態では、合致が見つかったとき、タイプアヘッド・フィーチャは、既存のノードの、ノードへの参照（例えば、ノード
名、ノードＩＤ、または別の適切な参照もしくは識別子、など）で、フォームを自動的に埋めることができる。
【００３０】
特定の実施形態では、ユーザのプロファイル・ページまたは他のページの様々なセクションにおいてコンテンツを追加するかまたは宣言を行うのに使用されるフォームに、ユーザがテキストをタイプ入力するかまたは他の方法で入力するとき、タイプアヘッド・プロセスは、ソーシャル・ネットワーキング・システム１６０において（またはソーシャル・ネットワーキング・システム１６０内で）（例えばサーバ１６２内で）実行される、１つまたは複数のフロントエンド（クライアント側）および／またはバックエンド（サーバ側）タイプアヘッド・プロセス（以下では単に「タイプアヘッド・プロセス」と称される）と共に動作することができる。それにより、ユーザがテキストの文字を入力するのに伴ってユーザによって入力されたテキストの文字に最も関連性があるかまたは最もよく合致すると決定された、既存のソーシャル・グラフ・エンティティの名前に対応する１つもしくは複数の語句、または既存のソーシャル・グラフ・エンティティに関連付けられている語句で、フォームを対話式に、かつほぼ即座に（ユーザから見て）、自動的に埋めることを試みる。ノードおよびエッジに関連付けられている情報を含めた、ソーシャル・グラフ・データベースにおけるソーシャル・グラフ情報、またはソーシャル・グラフ・データベースから抽出されて索引付けされた情報を利用して、タイプアヘッド・プロセスは、ソーシャル・グラフ・データベースからの情報と共に、ならびに、場合によっては、ソーシャル・ネットワーキング・システム１６０内に位置するかまたはソーシャル・ネットワーキング・システム１６０内で実行される様々な他のプロセス、アプリケーション、またはデータベースと共に、ユーザの意図する宣言を高確度で予測することができる。しかし、ソーシャル・ネットワーキング・システム１６０はまた、ユーザの望む任意の宣言を入力する自由をユーザに提供し、ユーザが自分自身を自由に表現できるようにする。
【００３１】
特定の実施形態では、ユーザがテキスト文字をフォーム・ボックスまたは他のフィールドに入力するのに伴って、タイプアヘッド・プロセスは、ユーザが文字を入力しているときにユーザの宣言の中で入力された文字のストリングに合致する既存のソーシャル・グラフ要素（例えば、ユーザ・ノード２０２、コンセプト・ノード２０４、またはエッジ２０６）を識別しようと試みることができる。特定の実施形態では、ユーザが文字をフォーム・ボックスに入力するのに伴って、タイプアヘッド・プロセスは、入力されたテキスト文字のストリングを読み取ることができる。各キーストロークが行われるのに伴って、フロントエンド・タイプアヘッド・プロセスは、入力された文字ストリングを、要求（または呼出し）として、ソーシャル・ネットワーキング・システム１６０内で実行されるバックエンド・タイプアヘッド・プロセスに送信することができる。特定の実施形態では、タイプアヘッド・プロセスは、ＡＪＡＸ（Ａｓｙｎｃｈｒｏｎｏｕｓ  ＪａｖａＳｃｒｉｐｔ
ａｎｄ  ＸＭＬ）または他の適切な技法、および特に非同期技法により、通信することができる。特定の一実施形態では、要求は、結果を迅速かつ動的に送信およびフェッチするのを可能にするＸＭＬＨＴＴＰＲｅｑｕｅｓｔ（ＸＨＲ）であるか、またはそれを含む。特定の実施形態では、タイプアヘッド・プロセスはまた、要求の前に、後に、または要求と共に、セクション識別子（セクションＩＤ）も送信し、セクションＩＤは、ユーザが宣言を行っている特定のページの特定のセクションを識別する。特定の実施形態では、ユーザＩＤパラメータも送られることがあるが、これは実施形態によっては不要な場合もある。ユーザがソーシャル・ネットワーキング・システム１６０にログインしていることに基づいて、ユーザはすでに「知られている」からである。
【００３２】
特定の実施形態では、タイプアヘッド・プロセスは、１つまたは複数のマッチング・アルゴリズムを使用して、合致するソーシャル・グラフ要素を識別しようと試みることができる。特定の実施形態では、１つまたは複数の合致が見つかったとき、タイプアヘッド・プロセスは、応答（ＡＪＡＸまたは他の適切な技法を使用できる）をユーザのクライアン
ト・システム１３０に送信することができ、この応答は、例えば、合致するソーシャル・グラフ要素の名前（名前ストリング）、ならびに、場合によっては、合致するソーシャル・グラフ要素に関連付けられている他のメタデータを含むことができる。限定によってではなく例として、ユーザが文字「ｄａｔ」をクエリ・フィールドに入力している場合、タイプアヘッド・プロセスは、ドロップダウン・メニューを表示することができ、このドロップダウン・メニューは、合致する既存のプロファイル・ページ、およびそれぞれのユーザ・ノード２０２またはコンセプト・ノード２０４（例えば、「ｄａｔｉｎｇ」と名付けられているかまたは「ｄａｔｉｎｇ」を専ら扱うプロファイル・ページ）の、名前を表示する。次いでユーザは、これらをクリックするかまたは他の方法で選択することができ、それにより、選択したノードに対応する合致ユーザまたはコンセプトの名前を宣言したいことを確定することができる。限定によってではなく別の例として、「ｄａｔｉｎｇ」をクリックすると、タイプアヘッド・プロセスは、宣言「Ｄａｔｉｎｇ」でクエリ・フィールドを自動的に埋めるか、またはウェブ・ブラウザ１３２に自動的に埋めさせることができる。特定の実施形態では、タイプアヘッド・プロセスは、ドロップダウン・メニューを表示するのではなく、単に、最上位にランク付けされる合致の名前または他の識別子でフィールドを自動的に埋めることもできる。次いで、ユーザは、単に、自分のキーボード上で「ｅｎｔｅｒ」をキー入力することによって、または自動的に埋められた宣言をクリックすることによって、自動的に埋められた宣言を確定することができる。
【００３３】
タイプアヘッド・プロセスに関するより多くの情報は、参照により援用される、２０１０年４月１９日に出願された米国特許出願第１２／７６３１６２号、および２０１２年７月２３日に出願された米国特許出願第１３／５５６０７２号で見ることができる。
【００３４】
構造化検索クエリ
図３は、オンライン・ソーシャル・ネットワークの例示的なウェブページを示す。特定の実施形態では、ユーザは、テキスト・クエリをクエリ・フィールド３５０に入力することによって、クエリをソーシャル・ネットワーク・システム１６０に提出することができる。オンライン・ソーシャル・ネットワークのユーザは、特定の主題（例えば、ユーザ、コンセプト、外部コンテンツ、またはリソース）を記述する短いフレーズ（「検索クエリ」としばしば称される）を検索エンジンに提供することによって、主題に関係する情報を検索することができる。クエリは、非構造化テキスト・クエリであってよく、１つもしくは複数のテキスト・ストリング、または１つもしくは複数のＮグラム（ｎ−ｇｒａｍ）を含むものとすることができる。一般に、ユーザは、任意の文字ストリングをクエリ・フィールド３５０に入力して、テキスト・クエリに合致するコンテンツをソーシャル・ネットワーキング・システム１６０上で検索することができる。次いで、ソーシャル・ネットワーキング・システム１６０は、データ・ストア１６４（または、より詳細にはソーシャル・グラフ・データベース）内から検索して、クエリに合致するコンテンツを識別することができる。検索エンジンは、様々な検索アルゴリズムを使用してクエリ・フレーズに基づく検索を行い、検索結果を生成することができる。この検索結果は、検索クエリに関係する可能性が最も高いリソースまたはコンテンツ（例えば、ユーザプロファイル・ページ、コンテンツプロファイル・ページ、または外部リソース）を識別する。検索を行うために、ユーザは、検索クエリを検索エンジンに入力または送信することができる。これに応答して、検索エンジンは、検索クエリに関係する可能性の高い１つまたは複数のリソースを識別することができ、これらのリソースは、検索クエリに対して識別された「検索結果」と総称され得る。識別されたコンテンツは、例えば、ソーシャル・グラフ・エンティティ（すなわち、ユーザ・ノード２０２、コンセプト・ノード２０４、エッジ２０６）、プロファイル・ページ、外部ウェブページ、またはこれらの任意の組合せを含む場合がある。次いで、ソーシャル・ネットワーキング・システム１６０は、識別されたコンテンツに対応する検索結果を含む検索結果ウェブページを生成することができる。検索結果は、しばしば検索結果ウェブページ上のリンクのリストの形で、ユーザに提示されてよく、各リン
クは、識別されたリソースまたはコンテンツのいくらかを含む異なるウェブページに関連付けられている。特定の実施形態では、検索結果における各リンクは、対応するウェブページがどこに位置するかと、それを取り出すための機構とを指定するユニフォーム・リソース・ロケータ（ＵＲＬ）の形であってよい。次いで、ソーシャル・ネットワーキング・システム１６０は、検索結果ウェブページを、ユーザのクライアント・システム１３０上のユーザのウェブ・ブラウザ１３２に送信することができる。次いで、ユーザは、ＵＲＬリンクをクリックするか、または他の方法で検索結果ウェブページからコンテンツを選択して、ソーシャル・ネットワーキング・システム１６０からのまたは外部システムからのコンテンツに適宜アクセスすることができる。リソースは、検索クエリに対するそれらの相対的な関連度に従って、ランク付けされユーザに提示されてよい。検索結果はまた、ユーザに対するそれらの相対的な関連度に従って、ランク付けされユーザに提示されてもよい。言い換えれば、検索結果は、例えば、ソーシャル・グラフ情報、ユーザ情報、ユーザの検索履歴もしくは閲覧履歴、またはユーザに関係する他の適切な情報に基づいて、照会元ユーザに合わせて個人化されてよい。特定の実施形態では、リソースのランク付けは、検索エンジンによって実装されるランク付けアルゴリズムによって決定されてよい。限定によってではなく例として、検索クエリまたはユーザに対してより関連性のあるリソースは、検索クエリまたはユーザに対してより関連性のないリソースよりも、高くランク付けされるものとすることができる。特定の実施形態では、検索エンジンは、その検索を、オンライン・ソーシャル・ネットワーク上のリソースおよびコンテンツに限定することができる。しかし、特定の実施形態では、検索エンジンはまた、サードパーティ・システム１７０、インターネットもしくはワールド・ワイド・ウェブ、または他の適切なソースなど、他のソース上のリソースまたはコンテンツを検索することもできる。本開示はソーシャル・ネットワーキング・システム１６０を特定の方式で照会することを記述するが、本開示はソーシャル・ネットワーキング・システム１６０を任意の適切な方式で照会することを企図する。
【００３５】
特定の実施形態では、ユーザによって入力される検索クエリに、本明細書に記載のタイプアヘッド・プロセスが適用され得る。限定ではなく例として、ユーザがテキスト文字を検索フィールドに入力するのに伴って、タイプアヘッド・プロセスは、ユーザが文字を入力しているときに検索フィールドに入力された文字のストリングに合致する１つまたは複数のユーザ・ノード２０２、コンセプト・ノード２０４、またはエッジ２０６を識別しようと試みることができる。タイプアヘッド・プロセスがテキスト・クエリからのストリングまたはＮグラムを含む要求または呼出しを受け取ると、タイプアヘッド・プロセスは、入力されたテキストに合致するそれぞれの名前、タイプ、カテゴリ、または他の識別子を有する既存のソーシャル・グラフ要素（すなわち、ユーザ・ノード２０２、コンセプト・ノード２０４、エッジ２０６）を識別するための検索を実施することができ、またはこの検索が実施されるようにする。タイプアヘッド・プロセスは、１つまたは複数のマッチング・アルゴリズムを使用して、合致するノードまたはエッジを識別しようと試みることができる。合致が見つかったとき、タイプアヘッド・プロセスは、応答をユーザのクライアント・システム１３０に送信することができ、この応答は、例えば、合致するノードの名前（名前ストリング）、ならびに、場合によっては、合致するノードに関連付けられている他のメタデータを含むことができる。次いで、タイプアヘッド・プロセスはドロップダウン・メニュー３００を表示することができ、ドロップダウン・メニュー３００は、合致する既存のプロファイル・ページ、およびそれぞれのユーザ・ノード２０２またはコンセプト・ノード２０４の、名前を表示し、また、合致するユーザ・ノード２０２またはコンセプト・ノード２０４につながっている合致するエッジ２０６の名前を表示する。次いでユーザは、これらをクリックするかまたは他の方法で選択することができ、それにより、選択したノードに対応する合致ユーザもしくはコンセプトの名前を検索したいこと、または、合致するエッジによって合致ユーザもしくはコンセプトにつながっているユーザもしくはコンセプトを検索したいことを確定することができる。別法として、タイプアヘッド
・プロセスは、ドロップダウン・メニュー３００を表示するのではなく、単に、最上位にランク付けされる合致の名前または他の識別子でフォームを自動的に埋めることもできる。次いで、ユーザは、単に、キーボード上で「ｅｎｔｅｒ」をキー入力することによって、または自動的に埋められた宣言をクリックすることによって、自動的に埋められた宣言を確定することができる。合致するノードおよびエッジをユーザが確定すると、タイプアヘッド・プロセスは、合致するソーシャル・グラフ要素を含むクエリをユーザが確定したことをソーシャル・ネットワーキング・システム１６０に知らせる要求を送信することができる。送信された要求に応答して、ソーシャル・ネットワーキング・システム１６０は、自動的に（または別法として、要求における命令に基づいて）、合致するソーシャル・グラフ要素を求めて、または合致するソーシャル・グラフ要素につながっているソーシャル・グラフ要素を求めて、ソーシャル・グラフ・データベースを適宜呼び出すかまたは他の方法で検索することができる。本開示はタイプアヘッド・プロセスを特定の方式で検索クエリに適用することを記述するが、本開示は、タイプアヘッド・プロセスを任意の適切な方式で検索クエリに適用することを企図する。
【００３６】
検索クエリおよび検索結果に関して、特定の実施形態は、参照により援用される、２００６年８月１１日に出願された米国特許出願第１１／５０３０９３号、２０１０年１２月２２に出願された米国特許出願第１２／９７７０２７号、および２０１０年１２月２３日に出願された米国特許出願第１２／９７８２６５号に開示される、１つまたは複数のシステム、コンポーネント、要素、機能、方法、動作、またはステップを利用することができる。
【００３７】
テキスト・クエリの解析、および構造化クエリのレンダリング
図４Ａ〜図４Ｂは、オンライン・ソーシャル・ネットワークの例示的なクエリを示す。特定の実施形態では、第１のユーザ（すなわち照会元ユーザ）から受け取られたテキスト・クエリに応答して、ソーシャル・ネットワーキング・システム１６０は、自然言語構文でレンダリングされた１つまたは複数の構造化クエリを生成することができ、各構造化クエリは、１つまたは複数の識別されたソーシャル・グラフ要素に対応するクエリ・トークンを含む。自然言語の構造化クエリは、文脈自由文法モデルを使用して生成されてよい。これらの構造化クエリは、文法モデルの文法によって生成されたストリングに基づくものであってよく、したがってこれらは、自然言語構文を使用して、適切なソーシャル・グラフ要素への参照を用いてレンダリングされる。構造化クエリは、第１のユーザに送信されてドロップダウン・メニュー３００の中に表示されてよく（例えば、クライアント側のタイプアヘッド・プロセスにより）、次いで、第１のユーザは、適切なクエリを選択して所望のコンテンツを検索することができる。図４Ａ〜図４Ｂは、クエリ・フィールド３５０における様々な例示的なテキスト・クエリと、それに応答してドロップダウン・メニュー３００の中に生成された様々な構造化クエリとを示す。構造化クエリの示唆をユーザのテキスト・クエリに応答して提供することによって、ソーシャル・ネットワーキング・システム１６０は、オンライン・ソーシャル・ネットワークのユーザが、ソーシャル・グラフ２００において表される要素を、それらのソーシャル・グラフ属性と、様々なソーシャル・グラフ要素に対するそれらの関係とに基づいて検索するための、強力な方法を提供することができる。構造化クエリにより、照会元ユーザは、特定のエッジ・タイプによってソーシャル・グラフ２００における特定のユーザまたはコンセプトにつながっているコンテンツを検索することができる。本開示が記述し図４Ａ〜図４Ｂが示すのは、特定の構造化クエリを特定の方式で生成することだが、本開示は任意の適切な構造化クエリを任意の適切な方式で生成することを企図する。クエリの解析、文法モデル、および構造化クエリの生成に関するより多くの情報は、２０１２年７月２３日に出願された米国特許出願第１３／５５６０６０号、２０１２年１１月１２日に出願された米国特許出願第１３／６７４６９５号、２０１２年１２月３１日に出願された米国特許出願第１３／７３１８６６号、および２０１２年１２月３１に出願された米国特許出願第１３／７３２１７５号で見ること
ができ、これらの米国特許出願の各々は、参照により本明細書に援用される。
【００３８】
特定の実施形態では、ソーシャル・ネットワーキング・システム１６０は、照会元の／第１のユーザ（第１のユーザ・ノード２０２に対応する）から、非構造化テキスト・クエリを受け取ることができる。限定によってではなく例として、第１のユーザは、（１）第１のユーザの一次友達であって、かつ（２）スタンフォード大学に関連付けられている（すなわち、ユーザ・ノード２０２が、エッジ２０６によって、学校「スタンフォード」に対応するコンセプト・ノード２０４につながっている）、他のユーザを検索したい場合がある。第１のユーザは、この場合、図４Ａ〜図４Ｂに示されるように、テキスト・クエリ「ｆｒｉｅｎｄｓ  ｓｔａｎｆｏｒｄ（友達  スタンフォード）」をクエリ・フィールド３５０に入力することができる。第１のユーザがこのテキスト・クエリをクエリ・フィールド３５０に入力するのに伴って、ソーシャル・ネットワーキング・システム１６０は、ドロップダウン・メニュー３００の中に示されるように、様々な構造化クエリの示唆を提供することができる。本明細書においては、非構造化テキスト・クエリは、ユーザによって入力される単純なテキスト・ストリングに及ぶ。テキスト・クエリは、当然ながら、標準的な言語／文法規則（例えば英語言語文法）については構造化されているであろう。しかし、テキスト・クエリは通常、ソーシャル・グラフ要素については構造化されていないことになる。言い換えれば、単純なテキスト・クエリは通常、特定のソーシャル・グラフ要素への埋込み参照を含むことはない。よって、本明細書においては、構造化クエリは、特定のソーシャル・グラフ要素への参照を含むクエリであって、それにより検索エンジンが、識別された要素に基づいて検索することができるようなクエリに及ぶ。さらに、テキスト・クエリは、正式なクエリ構文について構造化されていない場合がある。言い換えれば、単純なテキスト・クエリは、必ずしも検索エンジンによって直接に実行可能なクエリ・コマンドのフォーマットのものであるとは限らないことになる。本開示は特定のクエリを特定の方式で受け取ることを記述するが、本開示は任意の適切なクエリを任意の適切な方式で受け取ることを企図する。
【００３９】
特定の実施形態では、ソーシャル・ネットワーキング・システム１６０は、第１のユーザ（すなわち照会元ユーザ）から受け取った非構造化テキスト・クエリ（単に検索クエリとも称される）を解析して、１つまたは複数のＮグラムを識別することができる。一般に、Ｎグラムは、テキストまたは音声の所与のシーケンスからの、ｎ個のアイテムの連続的なシーケンスである。アイテムは、テキストまたは音声のシーケンスからの、文字、音素、音節、字、単語、塩基対、接頭辞、または他の識別可能なアイテムである場合がある。Ｎグラムは、照会元ユーザによって入力されたテキストの、１つまたは複数の文字（字、数字、句読点など）を含むことができる。サイズ１のＮグラムは「ユニグラム」と称されることがあり、サイズ２のＮグラムは「バイグラム」または「ダイグラム」と称されることがあり、サイズ３のＮグラムは「トライグラム」と称されることがあり、以下同様である。各Ｎグラムは、照会元ユーザから受け取られたテキスト・クエリからの、１つまたは複数の部分を含むことができる。特定の実施形態では、各Ｎグラムは、第１のユーザによって入力された文字ストリング（例えば、テキストの１つまたは複数の文字）を含むことができる。限定によってではなく例として、ソーシャル・ネットワーキング・システム１６０は、テキスト・クエリ「ｆｒｉｅｎｄｓ  ｓｔａｎｆｏｒｄ」を解析して、ｆｒｉｅｎｄｓ、ｓｔａｎｆｏｒｄ、ｆｒｉｅｎｄｓ  ｓｔａｎｆｏｒｄ、というＮグラムを識別することができる。限定によってではなく別の例として、ソーシャル・ネットワーキング・システム１６０は、テキスト・クエリ「ｆｒｉｅｎｄｓ  ｉｎ  ｐａｌｏ  ａｌｔｏ（パロアルトにいる友達）」を解析して、ｆｒｉｅｎｄｓ、ｉｎ、ｐａｌｏ、ａｌｔｏ、ｆｒｉｅｎｄｓ  ｉｎ、ｉｎ  ｐａｌｏ、ｐａｌｏ  ａｌｔｏ、ｆｒｉｅｎｄ  ｉｎ  ｐａｌｏ、ｉｎ  ｐａｌｏ  ａｌｓｏ、ｆｒｉｅｎｄｓ  ｉｎ  ｐａｌｏ  ａｌｔｏ、というＮグラムを識別することができる。特定の実施形態では、各Ｎグラムは、テキスト・クエリからのｎ個のアイテムの連続的なシーケンスを含むことができる。本開示は特定のクエ
リを特定の方式で解析することを記述するが、本開示は任意の適切なクエリを任意の適切な方式で解析することを企図する。
【００４０】
特定の実施形態では、ソーシャル・ネットワーキング・システム１６０は、テキスト・クエリにおいて識別された各Ｎグラムにつき、Ｎグラムがソーシャル・グラフ要素に対応するスコアを決定または計算することができる。スコアは、例えば、信頼度スコア、確率、品質、ランキング、別の適切なタイプのスコア、またはこれらの任意の組合せとすることができる。限定によってではなく例として、ソーシャル・ネットワーキング・システム１６０は、Ｎグラムがソーシャル・グラフ２００のユーザ・ノード２０２、コンセプト・ノード２０４、またはエッジ２０６などのソーシャル・グラフ要素に対応する確率スコア（単に「確率」とも称される）を決定することができる。確率スコアは、Ｎグラムと特定のソーシャル・グラフ要素との間の類似性または関連性のレベルを示すことができる。確率を計算するための多くの異なる方法があり得る。本開示は、検索クエリにおいて識別されたＮグラムについて確率スコアを計算するための、任意の適切な方法を企図する。特定の実施形態では、ソーシャル・ネットワーキング・システム１６０は、Ｎグラムが特定のソーシャル・グラフ要素に対応する確率ｐを決定することができる。確率ｐは、特定の検索クエリＸが与えられた場合の、特定のソーシャル・グラフ要素ｋに対応する確率として計算されてよい。言い換えれば、確率は、ｐ＝（ｋ｜Ｘ）として計算されてよい。限定によってではなく例として、Ｎグラムがソーシャル・グラフ要素に対応する確率は、ｐｉ，ｊ，ｋとして表される確率スコアとして計算されてよい。入力は、テキスト・クエリＸ＝（ｘ１，ｘ２，．．．，ｘＮ）、およびクラスのセットとすることができる。各（ｉ：ｊ）およびクラスｋにつき、ソーシャル・ネットワーキング・システム１６０は、ｐｉ，ｊ，ｋ＝ｐ（クラス（ｘｉ；ｊ）＝ｋ｜Ｘ）を算出することができる。特定の実施形態では、識別されたソーシャル・グラフ要素を使用して、検索エンジンによって実行可能なクエリ・コマンドを生成することができる。このクエリ・コマンドは、特定の引数を受け入れる定義された関数を含む、構造化セマンティック・クエリとすることができる。限定によってではなく例として、テキスト・クエリ「ｆｒｉｅｎｄ  ｍｅ  ｍａｒｋ（友達  私  マーク）」が解析されて、クエリ・コマンドｉｎｔｅｒｓｅｃｔ（ｆｒｉｅｎｄ（ｍｅ），ｆｒｉｅｎｄ（Ｍａｒｋ））が形成される場合がある。言い換えれば、このクエリは、ソーシャル・グラフにおいて、照会元ユーザ（「私」）およびユーザ「マーク」と交差するノード（すなわち、友達タイプ・エッジ２０６によって照会元ユーザのユーザ・ノード２０２につながっていると共に、友達タイプ・エッジ２０６によってユーザ「マーク」のユーザ・ノード２０２につながっている、ユーザ・ノード２０２）を探している。本開示はＮグラムがソーシャル・グラフ要素に対応するか否かを特定の方式で決定することを記述するが、本開示はＮグラムがソーシャルグラム要素に対応するか否かを任意の適切な方式で決定することを企図する。さらに、本開示はＮグラムがソーシャル・グラフ要素に対応するか否かを特定のタイプのスコアを使用して決定することを記述するが、本開示はＮグラムがソーシ���ル・グラフ要素に対応するか否かを任意の適切なタイプのスコアを使用して決定することを企図する。
【００４１】
特定の実施形態では、ソーシャル・ネットワーキング・システム１６０は、エッジしきい値確率よりも高い確率を有する１つまたは複数のエッジ２０６を識別することができる。識別されたエッジ２０６の各々は、Ｎグラムの少なくとも１つに対応するものとすることができる。限定によってではなく例として、Ｎグラムは、ｐｉ，ｊ，ｋ＞ｐｅｄｇｅ−ｔｈｒｅｓｈｏｌｄである場合にのみ、エッジｋに対応するものとして識別されてよい。さらに、識別されたエッジ２０６の各々は、識別されたノードの少なくとも１つにつながっているものとすることができる。言い換えれば、ソーシャル・ネットワーキング・システム１６０は、特定のＮグラムに対応するものとして前に識別されたユーザ・ノード２０２またはコンセプト・ノード２０４につながっている、エッジ２０６またはエッジ・タイプのみを識別することができる。前に識別されたいずれのノードにもつながっていないエ
ッジ２０６またはエッジ・タイプは、通常、検索クエリにおける特定のＮグラムに対応する可能性が低い。これらのエッジ２０６およびエッジ・タイプをフィルタリングによって除去するかまたは無視することによって、ソーシャル・ネットワーキング・システム１６０は、ソーシャル・グラフ２００において関連性のあるソーシャル・グラフ要素をより効率的に検索することができる。本開示はＮグラムに対応するエッジ２０６を特定の方式で識別することを記述するが、本開示はＮグラムに対応するエッジ２０６を任意の適切な方式で識別することを企図する。
【００４２】
特定の実施形態では、ソーシャル・ネットワーキング・システム１６０は、ノードしきい値確率よりも高い確率を有する１つまたは複数のユーザ・ノード２０２またはコンセプト・ノード２０４を識別することができる。識別されたノードの各々は、Ｎグラムの少なくとも１つに対応し得る。限定によってではなく例として、Ｎグラムは、ｐｉ，ｊ，ｋ＞ｐｎｏｄｅ−ｔｈｒｅｓｈｏｌｄである場合にのみ、ノードｋに対応するものとして識別されてよい。さらに、識別されたユーザ・ノード２０２またはコンセプト・ノード２０４の各々は、識別されたエッジ２０６の少なくとも１つにつながっているものとすることができる。言い換えれば、ソーシャル・ネットワーキング・システム１６０は、特定のＮグラムに対応するものとして前に識別されたエッジ２０６につながっている、ノードまたはノードタイプのみを識別することができる。前に識別されたいずれのエッジ２０６にもつながっていないノードまたはノードタイプは、通常、検索クエリにおける特定のＮグラムに対応する可能性が低い。これらのノードおよびノードタイプをフィルタリングによって除去するかまたは無視することによって、ソーシャル・ネットワーキング・システム１６０は、ソーシャル・グラフ２００において関連性のあるソーシャル・グラフ要素をより効率的に検索することができる。本開示はＮグラムに対応するノードを特定の方式で識別することを記述するが、本開示はＮグラムに対応するノードを任意の適切な方式で識別することを企図する。
【００４３】
特定の実施形態では、ソーシャル・ネットワーキング・システム１６０は、複数の文法を含む文脈自由文法モデルにアクセスすることができる。文法モデルの各文法は、１つまたは複数の非終端トークン（または「非終端記号」）と、１つまたは複数の終端トークン（または「終端記号」／「クエリ・トークン」）とを含むことができ、特定の非終端トークンは、終端トークンで置き換えられ得る。文法モデルは、正式な言語のストリングに対する形成規則のセットである。特定の実施形態では、複数の文法は、順序木として編成された文法フォレストとして視覚化されることが可能であり、内部ノードは非終端トークンに対応し、葉ノードは終端トークンに対応する。各文法は、文法フォレスト内のサブツリーとして表されてよく、これらの文法は、非終端トークンによって相互に合成される。よって、２つ以上の文法は、文法フォレスト内のサブフォレストとすることができる。本開示は特定の文法にアクセスすることを記述するが、本開示は任意の適切な文法を企図する。
【００４４】
特定の実施形態では、ソーシャル・ネットワーキング・システム１６０は、１つまたは複数の文法を使用して１つまたは複数のストリングを生成することができる。言語でストリングを生成するには、単一の開始記号のみからなるストリングで開始する。次いで、開始記号も、指定された非終端記号も含まないストリングが作成されるまで、生成規則が任意の順序で適用される。文脈自由文法では、文法の各非終端記号の作成は、文法の他の非終端記号によって作成されるものとは独立している。非終端記号は、終端記号（すなわち、終端トークンまたはクエリ・トークン）で置き換えられ得る。クエリ・トークンのいくつかはソーシャル・グラフ・トークンであることがあり、ソーシャル・グラフ・トークンは、前述のように、識別されたノードまたは識別されたエッジに対応するものとすることができる。次いで、文法によって生成されたストリングは、識別されたノードまたは識別されたエッジへの参照を含む構造化クエリの基礎として使用されてよい。文法によって生
成されたストリングは、自然言語構文でレンダリングされてよく、したがって、ストリングに基づく構造化クエリもまた自然言語でレンダリングされる。文脈自由文法は、各生成規則の左側が単一の非終端記号のみからなる文法である。確率的な文脈自由文法の１つは、タプル〈Σ，Ｎ，Ｓ，Ｐ〉であり、ここで、互いに素な集合ΣおよびＮは、終端記号および非終端記号をそれぞれ指定し、Ｓ∈Ｎは開始記号である。Ｐは、作成の集合であり、これらの作成は、Ｅ→ξ（ｐ）の形をとり、Ｅ∈Ｎ、ξ∈（Σ∪Ｎ）＋、および、ｐ＝Ｐｒ（Ｅ→ξ）であり、これはＥがストリングξに展開される確率である。所与の非終端Ｅの全ての展開にわたる確率ｐの合計は、１でなければならない。本開示はストリングを特定の方式で生成することを記述するが、本開示はストリングを任意の適切な方式で生成することを企図する。
【００４５】
特定の実施形態では、ソーシャル・ネットワーキング・システム１６０は、前に識別されたノードおよびエッジに対応する、１つまたは複数のクエリ・トークンを識別することができる。言い換えれば、識別されたノードまたは識別されたエッジが、特定の文法によってクエリ・トークンとして使用され得る場合、このクエリ・トークンは、ソーシャル・ネットワーキング・システム１６０によって識別されてよい。クエリ・トークンは、文法トークンまたはソーシャル・グラフ・トークンを含むことができる。文法トークンは、自然言語構文でレンダリングするために挿入されるテキストに対応するクエリ・トークンである。ソーシャル・グラフ・トークンは、ソーシャル・グラフ２００の特定のノードまたはエッジに対応するクエリ・トークンである。限定によってではなく例として、例示的な文法が、［ｕｓｅｒ］［ｕｓｅｒ−ｆｉｌｔｅｒ］［ｓｃｈｏｏｌ］である場合がある。非終端記号［ｕｓｅｒ］、［ｕｓｅｒ−ｆｉｌｔｅｒ］、および［ｓｃｈｏｏｌ］は、この場合、受け取られたテキスト・クエリにおけるＮグラムに基づいて決定され得る。テキスト・クエリ「ｆｒｉｅｎｄｓ  ｓｔａｎｆｏｒｄ」の場合、このクエリは、この文法を使用して、例えば、「［ｆｒｉｅｎｄｓ］［ｗｈｏ］［ｇｏ  ｔｏ］［Ｓｔａｎｆｏｒｄ
Ｕｎｉｖｅｒｓｉｔｙ］（スタンフォード大学に通う友達）」、または「［ｆｒｉｅｎｄｓ］［ｗｈｏ］［ｗｏｒｋ  ａｔ］［Ｓｔａｎｆｏｒｄ  Ｕｎｉｖｅｒｓｉｔｙ］（スタンフォード大学に勤務する友達）」として解析され得る。この例では、クエリ・トークン［ｆｒｉｅｎｄｓ］、［ｇｏ  ｔｏ］、［ｗｏｒｋ  ａｔ］、および［Ｓｔａｎｆｏｒｄ  Ｕｎｉｖｅｒｓｉｔｙ］は全て、ソーシャル・グラフ２００の特定のノードおよびエッジに対応するソーシャル・グラフ・トークンとすることができる。同様に、クエリ・トークン［ｗｈｏ］は、構造化クエリを自然言語構文でレンダリングするために文法によって挿入された文法トークンとすることができる。上記の両方の例示的なケースで、受け取られたテキスト・クエリのＮグラムがクエリ・トークンとして使用され得る場合は、これらのクエリ・トークンは、ソーシャル・ネットワーキング・システム１６０によって識別されてよい。本開示は特定のクエリ・トークンを特定の方式で識別することを記述するが、本開示は任意の適切なクエリ・トークンを任意の適切な方式で識別することを企図する。
【００４６】
特定の実施形態では、ソーシャル・ネットワーキング・システム１６０は、前に識別されたノードまたはエッジの各々に対応する少なくとも１つのクエリ・トークンを有する１つまたは複数の文法を選択することができる。テキスト・クエリにおいて識別されたＮグラムに応じて、特定の文法のみが使用され得る。したがって、全ての利用可能な文法の終端トークンが調べられて、テキスト・クエリからの識別されたＮグラムに合致する文法が見つけられるべきである。言い換えれば、特定の文法が、識別されたノードおよびエッジの全てをクエリ・トークンとして使用できる場合、この文法は、構造化クエリの生成に使用するための可能な文法として、ソーシャル・ネットワーキング・システム１６０によって選択されてよい。これは事実上、ボトムアップ解析の一種であり、可能なクエリ・トークンを使用して、クエリに適用するための適用可能な文法を決定する。限定によってではなく例として、テキスト・クエリ「ｆｒｉｅｎｄｓ  ｓｔａｎｆｏｒｄ」に対して、ソー
シャル・ネットワーキング・システムは、クエリ・トークン［ｆｒｉｅｎｄｓ］および［Ｓｔａｎｆｏｒｄ  Ｕｎｉｖｅｒｓｉｔｙ］を識別する場合がある。文法モデルからの文法の終端トークンが、前に論じられたように識別されてよい。次いで、［ｆｒｉｅｎｄｓ］と［Ｓｔａｎｆｏｒｄ  Ｕｎｉｖｅｒｓｉｔｙ］の両方のトークンを使用できる任意の文法が選択されてよい。例えば、文法［ｕｓｅｒ］［ｕｓｅｒ−ｆｉｌｔｅｒ］［ｓｃｈｏｏｌ］が選択されてよい。この文法は、ストリング「ｆｒｉｅｎｄｓ  ｗｈｏ  ｇｏ  ｔｏ  Ｓｔａｎｆｏｒｄ  Ｕｎｉｖｅｒｓｉｔｙ（スタンフォード大学に通う友達）」または「ｆｒｉｅｎｄｓ  ｗｈｏ  ｗｏｒｋ  ａｔ  Ｓｔａｎｆｏｒｄ  Ｕｎｉｖｅｒｓｉｔｙ（スタンフォード大学に勤務する友達）」を形成するなどによって、［ｆｒｉｅｎｄｓ］および［Ｓｔａｎｆｏｒｄ  Ｕｎｉｖｅｒｓｉｔｙ］トークンをクエリ・トークンとして使用することができるからである。よって、受け取られたテキスト・クエリのＮグラムが文法によってクエリ・トークンとして使用され得る場合は、これらの文法がソーシャル・ネットワーキング・システム１６０によって選択されるものとすることができる。同様に、受け取られたテキスト・クエリが、文法によってクエリ・トークンとして使用され得ないＮグラムを含む場合は、この文法は選択されないものとすることができる。本開示は特定の文法を特定の方式で選択することを記述するが、本開示は、任意の適切な文法を任意の適切な方式で選択することを企図する。
【００４７】
特定の実施形態では、ソーシャル・ネットワーキング・システム１６０は、複数の文法によって形成される文法フォレストを分析することによって、１つまたは複数の文法を選択することができる。文法フォレストは、複数の非終端トークンと複数の終端トークンとを含む順序木として編成されてよい。各文法は、文法フォレスト内のサブツリーとして表されてよく、各サブツリーは、１つまたは複数の追加の非終端トークンによって他のサブツリーに合成される。限定によってではなく例として、ソーシャル・ネットワーキング・システム１６０は、テキスト・クエリの一部に対応する識別されたノードおよびエッジに対応する、文法フォレストにおける全ての終端トークン（すなわちクエリ・トークン）を識別することによって、開始することができる。文法フォレストにおけるこれらのクエリ・トークンが識別されると、次いでソーシャル・ネットワーキング・システム１６０は、これらのクエリ・トークンの各々から文法フォレストを上に辿って、１つまたは複数の交差非終端トークンを識別することができる。全てのクエリ・トークンからの経路が交差する非終端トークンが識別されると、この交差非終端トークンが選択されてよく、次いで、文法フォレストによってこの交差非終端トークンに合成される１つまたは複数の文法が選択されてよい。本開示は文法を特定の方式で選択することを記述するが、本開示は文法を任意の適切な方式で選択することを企図する。
【００４８】
特定の実施形態では、ソーシャル・ネットワーキング・システム１６０は、照会元ユーザからのテキスト・クエリに対応するセマンティック・ツリーを生成することができる。セマンティック・ツリーは、前に識別されたノードまたはエッジに対応する識別された各クエリ・トークンを含むことができ、インタセクト・トークンを含むこともできる。セマンティック・ツリーはまた、クエリ・トークンをインタセクト・トークンにつなげている非終端トークンを、適宜含むことができる。限定によってではなく例として、テキスト・クエリ「ｆｒｉｅｎｄｓ  ｓｔａｎｆｏｒｄ」が、クエリ・コマンド（ｉｎｔｅｒｓｅｃｔ（ｓｃｈｏｏｌ：＜Ｓｔａｎｆｏｒｄ  Ｕｎｉｖｅｒｓｉｔｙ＞，ｆｒｉｅｎｄｓ＿ｏｆ：＜ｍｅ＞））に解析される場合がある。言い換えれば、このクエリは、照会元ユーザ（「ｍｅ」）の友達（すなわち、友達タイプ・エッジ２０６によって照会元ユーザのユーザ・ノード２０２につながっているユーザ・ノード２０２）と、スタンフォード大学のコンセプト・ノード２０４との両方と交差する、ソーシャル・グラフにおけるノードを探している。本開示は特定のセマンティック・ツリーを特定の方式で生成することを記述するが、本開示は、任意の適切なセマンティック・ツリーを任意の適切な方式で生成することを企図する。
【００４９】
特定の実施形態では、ソーシャル・ネットワーキング・システム１６０は、複数の文法を含む文法フォレストを分析して、クエリに対応するセマンティック・ツリーにほぼ合致する非終端トークンおよびクエリ・トークンの１つまたは複数のセットを識別することができる。各セットは、セマンティック・ツリーのインタセクト・トークンに対応する非終端トークンを有する。次いで、ソーシャル・ネットワーキング・システム１６０は、インタセクト・トークンに対応する非終端トークンに合成される文法の１つまたは複数を、文法フォレストにおいて選択することができる。このアルゴリズムは、インタセクト・トークンに至る最低コストのマルチパスを文法フォレストにおいて見つけようと試みることになり、この最低コストのマルチパスに対応するインタセクト・トークンは、他のインタセクト・トークン（もしあれば）よりも優先的に選択されてよい。本開示は特定の文法フォレストを特定の方式で分析することを記述するが、本開示は任意の適切な文法フォレストを任意の適切な方式で分析することを企図する。
【００５０】
特定の実施形態では、ソーシャル・ネットワーキング・システム１６０は、選択された各文法につき、スコアを決定することができる。スコアは、例えば、信頼度スコア、確率、品質、ランキング、別の適切なタイプのスコア、またはこれらの任意の組合せとすることができる。スコアは、選択された文法によって使用されるクエリ・トークンに関連付けられている個別のスコアまたは確率に基づくものとすることができる。相対的により高い個別スコアを有するクエリ・トークンを文法が使用する場合、文法はより高い相対的スコアを有することができる。特定の実施形態では、ソーシャル・ネットワーキング・システム１６０は、ソーシャル・グラフ・アフィニティ（ａｆｆｉｎｉｔｙ）に基づいて、選択された文法のスコアを決定することができる。アフィニティは、オンライン・ソーシャル・ネットワークに関連付けられている特定のオブジェクト（ユーザ、コンセプト、コンテンツ、アクション、広告、オンライン・ソーシャル・ネットワークに関連付けられている他のオブジェクト、またはこれらの任意の適切な組合せ、など）間の、関係の強さ、または関心のレベルを表すことができる。照会元ユーザに対するより高いアフィニティを有するソーシャル・グラフ要素に対応するクエリ・トークンを含む文法は、照会元ユーザに対するより低いアフィニティを有するソーシャル・グラフ要素に対応するクエリ・トークンを含む文法よりも、高くスコアリングされるものとすることができる。特定の実施形態では、ソーシャル・ネットワーキング・システム１６０は、選択された文法に対応するインタセクト・トークンを識別するために辿られた経路の長さに基づいて、選択された文法のスコアを決定することができる。よりコストの低いマルチパス（すなわちより短い経路）を含む文法は、よりコストの高いマルチパス（すなわちより長い経路）を含む文法よりも、高くスコアリングされるものとすることができる。特定の実施形態では、ソーシャル・ネットワーキング・システム１６０は、広告スポンサシップに基づいて、選択された文法のスコアを決定することができる。広告主（例えば、特定のノードに対応する特定のプロファイル・ページのユーザまたは管理者など）が、特定のノードのスポンサとなる場合があり、したがって、このスポンサ付きノードを参照するクエリ・トークンを含む文法は、より高くスコアリングされてよい。本開示は特定の文法について特定のスコアを特定の方式で決定することを記述するが、本開示は、任意の適切な文法について任意の適切なスコアを任意の適切な方式で決定することを企図する。ソーシャル・グラフ・アフィニティおよびアフィニティ係数に関して、特定の実施形態は、２００６年８月１１日に出願された米国特許出願第１１／５０３０９３号、２０１０年１２月２２日に出願された米国特許出願第１２／９７７０２７号、２０１０年１２月２３日に出願された米国特許出願第１２／９７８２６５号、および２０１２年１０月１日に出願された米国特許出願第１３／６３２８６９号に開示される１つまたは複数のシステム、コンポーネント、要素、機能、方法、動作、またはステップを利用することができ、これらの米国特許出願の各々は参照により援用される。
【００５１】
特定の実施形態では、ソーシャル・ネットワーキング・システム１６０は、文法しきい値スコアよりも高いスコアを有する１つまたは複数の文法を選択することができる。選択された文法の各々は、識別されたノードまたは識別されたエッジ（受け取られたテキスト・クエリのＮグラムに対応する）の各々に対応するクエリ・トークンを含むことができる。特定の実施形態では、文法は、それらの決定されたスコアに基づいてランク付けされてよく、しきい値ランク内の文法のみが選択されてよい（例えば上位７個）。本開示は文法を特定の方式で選択することを記述するが、本開示は文法を任意の適切な方式で選択することを企図する。
【００５２】
特定の実施形態では、ソーシャル・ネットワーキング・システム１６０は、選択された文法（例えば、文法しきい値スコアよりも高いスコアを有する文法）に対応する１つまたは複数の構造化クエリを生成することができる。各構造化クエリは、対応する選択された文法によって生成されたストリングに基づくものとすることができる。限定によってではなく例として、テキスト・クエリ「ｆｒｉｅｎｄｓ  ｓｔａｎｆｏｒｄ」に応答して、文法［ｕｓｅｒ］［ｕｓｅｒ−ｆｉｌｔｅｒ］［ｓｃｈｏｏｌ］は、ストリング「ｆｒｉｅｎｄｓ  ｗｈｏ  ｇｏ  ｔｏ  Ｓｔａｎｆｏｒｄ  Ｕｎｉｖｅｒｓｉｔｙ」を生成することができ、この場合、文法の非終端トークン［ｕｓｅｒ］、［ｕｓｅｒ−ｆｉｌｔｅｒ］、［ｓｃｈｏｏｌ］が、終端トークン［ｆｒｉｅｎｄｓ］、［ｗｈｏ  ｇｏ  ｔｏ］、および［Ｓｔａｎｆｏｒｄ  Ｕｎｉｖｅｒｓｉｔｙ］にそれぞれ置き換えられて、ストリングが生成されている。特定の実施形態では、自然言語構文を使用する文法によって生成されるストリングは、自然言語の構造化クエリとしてレンダリングされるものとすることができる。限定によってではなく例として、前の例からの構造化クエリは、終端トークン［ｗｈｏ  ｇｏ  ｔｏ］を使用するが、この終端トークンは自然言語構文を使用し、したがって、文法によってレンダリングされるストリングは自然言語である。次いで、文法によって生成された自然言語ストリングは、ソーシャル・グラフ要素に対応するクエリ・トークンを修正してこれらのソーシャル・グラフ要素への参照を含めることによって、レンダリングされて構造化クエリが形成されてよい。限定によってではなく例として、ストリング「ｆｒｉｅｎｄｓ  ｗｈｏ  ｇｏ  ｔｏ  Ｓｔａｎｆｏｒｄ  Ｕｎｉｖｅｒｓｉｔｙ」は、「Ｓｔａｎｆｏｒｄ  Ｕｎｉｖｅｒｓｉｔｙ」のクエリ・トークンが、学校「Ｓｔａｎｆｏｒｄ  Ｕｎｉｖｅｒｓｉｔｙ」に対応するコンセプト・ノード２０４への参照として構造化クエリにおいて現れるようにレンダリングされてよく、参照は、強調表示、インライン・リンク、スニペット、別の適切な参照、またはこれらの任意の組合せを含むことができる。各構造化クエリは、対応する選択された文法に対応するクエリ・トークンを含むことができ、これらのクエリ・トークンは、識別されたエッジ２０６の１つまたは複数、および識別されたノードの１つまたは複数に対応する。構造化クエリの生成について、以下にさらに記述される。
【００５３】
構造化検索クエリの生成およびフィルタリング
特定の実施形態では、ソーシャル・ネットワーキング・システム１６０は、照会元ユーザから受け取ったテキスト・クエリに基づいて、構造化クエリのセットを生成することができる。生成される構造化クエリは、前述のように、１つまたは複数の文脈自由文法によって生成された自然言語ストリングに基づくものとすることができる。各構造化クエリは、対応する文法からのクエリ・トークンを含むことができる。クエリ・トークンは、識別されたユーザ・ノード２０２の１つもしくは複数、または識別されたエッジ２０６の１つもしくは複数に対応する、ソーシャル・グラフ・トークンである場合がある。限定によってではなく例として、テキスト・クエリ「ｓｈｏｗ  ｍｅ  ｆｒｉｅｎｄｓ  ｏｆ  ｍｙ
ｇｉｒｌｆｒｉｅｎｄ（私のガールフレンドの友達を見せてください）」に応答して、ソーシャル・ネットワーキング・システム１６０は、構造化クエリ「Ｆｒｉｅｎｄｓ  ｏｆ  Ｓｔｅｐｈａｎｉｅ（ステファニーの友達）」を生成する場合があり、構造化クエリにおける「Ｆｒｉｅｎｄｓ（友達）」および「Ｓｔｅｐｈａｎｉｅ（ステファニー）」は
、特定のソーシャル・グラフ要素に対応する参照である。「Ｓｔｅｐｈａｎｉｅ」への参照は、特定のユーザ・ノード２０２（すなわち、関係タイプのエッジ２０６によって照会元ユーザのユーザ・ノード２０２につながっている、ユーザ「ステファニー」に対応するユーザ・ノード２０２）に対応することになり、「ｆｒｉｅｎｄｓ」への参照は、このユーザ・ノード２０２を他のユーザ・ノード２０２につなげる「友達」エッジ２０６（すなわち、「ステファニー」の一次友達につながっているエッジ２０６）に対応することになる。特定の実施形態では、ソーシャル・ネットワーキング・システム１６０は、テキスト・クエリに応答して生成された構造化クエリのセットを、各構造化クエリの品質に基づいてフィルタリングすることができる。いくつかの非構造化テキスト・クエリを解析するとき、ソーシャル・ネットワーキング・システム１６０は、それに応答して、低品質のまたは関連性のない構造化クエリを生成することがある。これは、文法モデルとうまく合致しない語句をテキスト・クエリが含むときに起こることがあり、したがって、この語句は、文法モデルによって解析されたとき、関連性のないクエリ・トークンに合致されてしまう。限定によってではなく例として、「背の高い人々」についてのテキスト・クエリが、関連性のあるいずれの構造化クエリも生成しない可能性がある。文法モデルにおいて使用されるいずれのクエリ・トークンにもこれらの語句が合致しない（例えば、これらの語句がいずれのソーシャル・グラフ要素とも合致しない）場合、または、低品質の合致しか有さない（例えば、低品質の合致は、「背の高い人々！」と名付けられたページまたはグループを参照する構造化クエリであることがある）場合は、これらの語句は文法モデルによってうまく解析されないかもしれないからである。これらの低品質の示唆クエリは、滑稽であるかもしくは当惑させるものであることがあり、または誤って合致するかもしくは関連性のないクエリ・トークンを含むことがあり、または単にユーザの照会意図と合致しないことがある。ともかく、これらの構造化クエリが示唆クエリとして照会元ユーザに送り返される前に、これらの構造化クエリをフィルタリングによって除去することが望ましいであろう。このようなクエリを示唆としてユーザに送るのを避けるために、各構造化クエリは、特定の示唆クエリが低品質であるかまたは関連性がないものであるかもしれないことを伝える様々な要因に基づいて、分析されスコアリングされてよい。ソーシャル・ネットワーキング・システム１６０によって生成されたセットにおける各構造化クエリは、テキスト・クエリ自体および構造化クエリに基づいてスコアリングされてよい。品質スコアの低い構造化クエリはフィルタリングによって除去されてよく、したがって、高品質の構造化クエリのみが照会元ユーザに提示される。本開示は特定の構造化クエリを特定の方式で生成することを記述するが、本開示は任意の適切な構造化クエリを任意の適切な方式で生成することを企図する。
【００５４】
特定の実施形態では、ソーシャル・ネットワーキング・システム１６０は、オンライン・ソーシャル・ネットワークのユーザから受け取ったテキスト・クエリに基づいて、構造化クエリのセットを生成することができる。各構造化クエリは、１つまたは複数のクエリ・トークンを含むことができ、これらは、文法トークンであるか、または、識別されたコンセプト・ノード２０４および１つもしくは複数の識別されたエッジ２０６に対応するソーシャル・グラフ・トークンである場合がある。これらの構造化クエリにより、ソーシャル・ネットワーキング・システム１６０は、識別されたコンセプト・ノード２０４および識別されたエッジ２０６につながっているかまたは他の方法で関連付けられるコンテンツ・オブジェクトを検索することによって、オンライン・ソーシャル・ネットワークに関係するリソースおよびコンテンツ（例えばプロファイル・ページなど）をより効率的に検索することができる。限定によってではなく例として、テキスト・クエリ「ｆｒｉｅｎｄｓ
ｌｉｋｅ  ｆａｃｅｂｏｏｋ（登録商標）（友達  いいね  フェースブック（登録商標））」に応答して、ソーシャル・ネットワーキング・システム１６０は、構造化クエリ「Ｍｙ  ｆｒｉｅｎｄｓ  ｗｈｏ  ｌｉｋｅ  Ｆａｃｅｂｏｏｋ（フェースブックに「いいね」の表明を示した私の友達）」を生成する場合がある。この例では、構造化クエリにおける、「ｆｒｉｅｎｄｓ」、「ｌｉｋｅ」、および「Ｆａｃｅｂｏｏｋ」への参照は、前
述のように、特定のソーシャル・グラフ要素に対応するソーシャル・グラフ・トークンである（すなわち、「友達」エッジ２０６、「いいね」エッジ２０６、および「フェースブック」コンセプト・ノード２０４）。同様に、「ｍｙ」および「ｗｈｏ」への参照は、文法トークンであり、これらは、構造化クエリが自然言語構文でレンダリングされるように、構造化クエリに含められる。特定の実施形態では、ソーシャル・ネットワーキング・システム１６０は、複数の構造化クエリを生成することができ、これらの構造化クエリは、異なる複数の識別されたコンセプト・ノード２０４、または異なる複数の識別されたエッジ２０６への参照を含むことができる。限定によってではなく例として、前の例を続けると、構造化クエリ「Ｍｙ  ｆｒｉｅｎｄｓ  ｗｈｏ  ｌｉｋｅ  Ｆａｃｅｂｏｏｋ」に加えて、ソーシャル・ネットワーキング・システム１６０はまた、構造化クエリ「Ｍｙ  Ｆｒｉｅｎｄｓ  ｗｈｏ  ｌｉｋｅ  Ｆａｃｅｂｏｏｋ  Ｃｕｌｉｎａｒｙ  Ｔｅａｍ（フェースブック料理チームに「いいね」の表明を示した私の友達）」も生成する場合があり、構造化クエリにおける「Ｆａｃｅｂｏｏｋ  Ｃｕｌｉｎａｒｙ  Ｔｅａｍ」は、さらに別のソーシャル・グラフ要素に対応するクエリ・トークンである。特定の実施形態では、ソーシャル・ネットワーキング・システム１６０は、生成された構造化クエリをランク付けすることができる。構造化クエリは、様々な要因に基づいてランク付けされ得る。特定の実施形態では、ソーシャル・ネットワーキング・システム１６０は、広告スポンサシップに基づいて構造化クエリをランク付けすることができる。広告主（例えば、特定のノードに対応する特定のプロファイル・ページのユーザまたは管理者など）が、特定のノードのスポンサとなる場合があり、したがって、このノードを参照する構造化クエリは、より高くランク付けされてよい。本開示は特定の構造化クエリを特定の方式で生成することを記述するが、本開示は任意の適切な構造化クエリを任意の適切な方式で生成することを企図する。
【００５５】
特定の実施形態では、ソーシャル・ネットワーキング・システム１６０は、テキスト・クエリおよび構造化クエリに基づいて、構造化クエリの品質スコアを計算することができる。品質スコアは、例えば、信頼度スコア、確率、品質、ランキング、別の適切なタイプのスコア、またはこれらの任意の組合せとすることができる。限定によってではなく例として、構造化クエリの品質スコアｓを決定するとき、ソーシャル・ネットワーキング・システム１６０は、照会元ユーザから受け取られたテキスト・クエリと、テキスト・クエリに応答して生成された構造化クエリとを考慮に入れることができる。よって、特定の検索クエリＸおよび特定の構造化クエリＱが与えられた場合の、特定の構造化クエリに対応する品質スコアｓは、ｓ＝（Ｘ，Ｑ）として計算されてよい。品質スコアは、様々な方法で、様々な要因を使用して計算され得る。限定によってではなく例として、構造化クエリの品質スコアは、生成コスト、正規化済みコスト、文法挿入コスト、エンティティ多数性コスト、言語モデル・スコア、エンティティ挿入コスト、他の適切な要因、またはこれらの任意の組合せ、のうちの１つまたは複数に部分的に基づいて計算されてよい。特定の実施形態では、ソーシャル・ネットワーキング・システム１６０は、構造化クエリの生成コストに基づいて、構造化クエリの品質スコアを計算することができる。コストは、構造化クエリを生成するのに使用された各クエリ・トークンに関連付けられ得る。構造化クエリを構築するのに使用されたクエリ・トークンが多いほど、クエリのコストは増加するものとすることができる。さらに、異なるクエリ・トークンおよびトークン・タイプは、異なるコストを有することができる。テキスト・クエリに応答して構造化クエリのセットを生成するとき、ソーシャル・ネットワーキング・システム１６０は、可能な最低の生成コストを有する構造化クエリを生成しようと試みることができる。これは、例えば、文法モデルから文法を選択するのと同様に、またはそれに関連して、行われてよい。より低コストのマルチパスを有する文法は、より低い生成コストを有する構造化クエリを生成することができ、最短経路の文法は、最低の生成コストを有する構造化クエリを生成する。本開示は特定の構造化クエリの品質スコアを特定の方式で決定することを記述するが、本開示は任意の適切な構造化クエリの品質スコアを任意の適切な方式で決定することを企図する。
【００５６】
特定の実施形態では、ソーシャル・ネットワーキング・システム１６０は、構造化クエリの正規化済みコストに基づいて、構造化クエリの品質スコアを計算することができる。照会元ユーザから受け取られたテキスト・クエリにおける語句の数（例えば、テキスト・クエリにおける識別されたＮグラムの数）は、通常、このテキスト・クエリに応答して生成された構造化クエリにおけるクエリ・トークンの数に比例する。理想的には、Ｎグラムのクエリ・トークンに対する比は、１（１：１）に近づくべきである。よって、文法モデルがテキスト・クエリを解析し、予想よりも相当多いクエリ・トークンを有する構造化クエリを生成した場合、構造化クエリは低品質である可能性が高い。言い換えれば、テキスト・クエリに合致する文法を識別するために文法モデルがかなりの数のクエリ・トークンを挿入しなければならない場合は、この文法によって生成された構造化クエリは低品質である可能性が高い。同様に、テキスト・クエリが長いほど、テキスト・クエリに応答して生成される構造化クエリは、多くのクエリ・トークンを含みしたがって生成コストが高いことが予想される。よって、構造化クエリを生成するコストがテキスト・クエリの長さに基づいて正規化されてよく、したがって、コストがテキスト・クエリの長さに対して不釣合いである場合、高コストの構造化クエリは低品質として識別されてよい。高い正規化コストを有する構造化クエリは、それらが低品質であることを示し、したがって、高い正規化コストは、低い品質スコアと相関する。特定の実施形態では、ソーシャル・ネットワーキング・システム１６０は、照会元ユーザから受け取られたテキスト・クエリにおけるＮグラムの数を決定し、構造化クエリにおけるクエリ・トークンの数を決定することができる。次いで、ソーシャル・ネットワーキング・システム１６０は、テキスト・クエリにおけるＮグラムの数の、構造化クエリにおけるクエリ・トークンの数に対する比に基づいて、正規化済みコストを計算することができる。限定によってではなく例として、テキスト・クエリ「ｆｒｉｅｎｄｓ  ｓｔａｎｆｏｒｄ」に対して、ソーシャル・ネットワーキング・システム１６０は、図４Ｂに示されるように、「Ｆｒｉｅｎｄｓ  ｗｈｏ  ｇｏ  ｔｏ  Ｓｔａｎｆｏｒｄ  Ｕｎｉｖｅｒｓｉｔｙ」などの構造化クエリを生成する場合がある。ソーシャル・ネットワーキング・システム１６０は、この場合、テキスト・クエリが２つのＮグラム「ｆｒｉｅｎｄｓ」および「ｓｔａｎｆｏｒｄ」を有すると決定することができる。これらのＮグラムが文法モデルによって解析されて、３つのクエリ・トークン［ｆｒｉｅｎｄｓ］、［ｗｈｏ  ｇｏ  ｔｏ］、および［Ｓｔａｎｆｏｒｄ  Ｕｎｉｖｅｒｓｉｔｙ］を有する構造化クエリが生成された。よって、文法モデルは、テキスト・クエリをストリングに合致させるために、単一のクエリ・トークン［ｗｈｏ  ｇｏ  ｔｏ］を挿入した。クエリ・トークンのテキスト・クエリにおけるＮグラムに対する比が相対的に低い（３：２）ので、この構造化クエリは、相対的に低い正規化済みコストを有することができ、このことは、これが相対的に高品質の構造化クエリであることを示す。限定によってではなく別の��として、テキスト・クエリ「ｆｒｉｅｎｄｓ  ｓｔａｎｆｏｒｄ」に応答して、ソーシャル・ネットワーキング・システム１６０は、「Ｐｅｏｐｌｅ  ｗｈｏ  ａｒｅ  ｆｒｉｅｎｄｓ  ｗｉｔｈ  ｐｅｏｐｌｅ  ｗｈｏ  ｇｏ  ｔｏ  Ｓｔａｎｆｏｒｄ  Ｕｎｉｖｅｒｓｉｔｙ（スタンフォード大学に通う人々の友達である人々）」などの構造化クエリを生成する場合がある。この場合、構造化クエリは、前の例よりもかなり多くのクエリ・トークンを含む。この構造化クエリを生成するコストがテキスト・クエリにおけるＮグラムの数に基づいて正規化されたとき、この構造化クエリは高い正規化済みコストを有することになり、このことは、この構造化クエリが低い品質スコアを有し、したがってフィルタによって除去されるべきであることを示す。本開示は構造化クエリの品質スコアを特定の方式で計算することを記述するが、本開示は構造化クエリの品質スコアを任意の適切な方式で計算することを企図する。
【００５７】
特定の実施形態では、ソーシャル・ネットワーキング・システム１６０は、構造化クエリの文法挿入コストに基づいて、構造化クエリの品質スコアを計算することができる。文法モデルを使用して構造化クエリを生成するとき、構造化クエリの生成のために挿入され
る文法トークンの数は、理想的には最小限に抑えられるべきである。よって、文法モデルがテキスト・クエリを解析して、予想よりもかなり多い文法トークンを有する構造化クエリを生成した場合、構造化クエリは低品質である可能性が高い。言い換えれば、テキスト・クエリに合致する文法を識別する（したがって構造化クエリを自然言語構文でレンダリングする）ために文法モデルが有意な数の文法トークンを挿入しなければならない場合は、この文法によって生成される構造化クエリは低品質である可能性が高い。高い文法挿入コスト（すなわち、文法トークンを構造化クエリに挿入することに関連付けられているコスト）を有する構造化クエリは、それらが低品質であることを示し、したがって、高い文法挿入コストは、低い品質スコアと相関する。特定の実施形態では、ソーシャル・ネットワーキング・システム１６０は、照会元ユーザから受け取られたテキスト・クエリにおけるＮグラムの数を決定し、構造化クエリにおける文法トークンおよびソーシャル・グラフ・トークンの数を決定することができる。次いで、ソーシャル・ネットワーキング・システム１６０は、Ｎグラムの数で正規化された、文法トークンの数のソーシャル・グラフ・トークンの数に対する比に基づいて、文法挿入コストを計算することができる。限定によってではなく例として、テキスト・クエリ「ｇｉｒｌｓ  ｉ  ｈａｖｅ  ｄａｔｅｄ（私がデートしたことのある女の人）」に対して、ソーシャル・ネットワーキング・システム１６０は、「Ｆｅｍａｌｅ  ｕｓｅｒｓ  Ｉ  ｈａｖｅ  ｂｅｅｎ  ｆｒｉｅｎｄｓ  ｗｉｔｈ  ｗｈｏ  ｌｉｋｅ  ｔｈｅ  Ｄａｔｉｎｇ  ａｐｐ（私が友達だったことのある、デート・アプリに「いいね」の表明を示した女性ユーザ）」などの構造化クエリを生成する場合がある。ここで、Ｎグラム「ｇｉｒｌｓ」はクエリ・トークン［Ｆｅｍａｌｅ  ｕｓｅｒｓ］に合致し、Ｎグラム「ｄａｔｅｄ」は［Ｄａｔｉｎｇ  ａｐｐ］に合致する（ただしこれ自体は低品質の合致であるかもしれない）。しかし、Ｎグラム「ｉ  ｈａｖｅ」を合致させるために、文法モデルは、文法トークン［Ｉ  ｈａｖｅ  ｂｅｅｎ］、［ｆｒｉｅｎｄｓ  ｗｉｔｈ］、および［ｗｈｏ  ｌｉｋｅ］を挿入しなければならない。よって、クエリを生成するために挿入された文法トークンの数が相対的に多いので、この構造化クエリには高い文法挿入コストが関連付けられ、このことは、これが相対的に低品質の構造化クエリであることを示す。本開示は構造化クエリの品質スコアを特定の方式で計算することを記述するが、本開示は構造化クエリの品質スコアを任意の適切な方式で計算することを企図する。
【００５８】
特定の実施形態では、ソーシャル・ネットワーキング・システム１６０は、構造化クエリのエンティティ多数性コストに基づいて、構造化クエリの品質スコアを計算することができる。文法モデルを使用して構造化クエリを生成するとき、ソーシャル・グラフ・トークンのうちの全てではないがいくつかは、ソーシャル・グラフ２００のノードに対応すべきである。通常の非構造化テキスト・クエリを解析するとき、テキスト・クエリに基づいて生成される構造化クエリは、いくつかの文法トークンと、エッジ２０６またはエッジ・タイプに対するいくつかのソーシャル・グラフ・トークンと、ユーザ・ノード２０２またはコンセプト・ノード２０４に対するいくつかのソーシャル・グラフ・トークンとを含めた、様々なクエリ・トークンを含むことが予想される。しかし、解析によってノードに合致された語句が多すぎる場合、さもなければ、ノードに対応するクエリ・トークンを相対的に多数含む構造化クエリが解析によって生成された場合は、これらのノードのいくつかは、照会元ユーザの照会意図に合致しない誤った合致である可能性が高い。言い換えれば、構造化クエリの示唆が、過多なノードへの参照を含む場合、構造化クエリは低品質である可能性が高い。高いエンティティ多数性コスト（すなわち、他のクエリ・トークンに対して相対的な、ノードに対応するソーシャル・グラフ・トークンの挿入に関連付けられているコスト）を有する構造化クエリは、それらが低品質であることを示し、したがって、高いエンティティ多数性コストは、低い品質スコアと相関する。特定の実施形態では、ソーシャル・ネットワーキング・システム１６０は、構造化クエリにおける、ノードに対応するソーシャル・グラフ・トークンの数を決定することができる。次いで、ソーシャル・ネットワーキング・システム１６０は、構造化クエリにおけるソーシャル・グラフ・トー
クンの数に基づいて、エンティティ多数性コストを計算することができる。限定によってではなく例として、テキスト・クエリ「ｇｉｒｌｓ  ｉ  ｈａｖｅ  ｄａｔｅｄ  ｆｒｏｍ  ｓｔａｎｆｏｒｄ（私がデートしたことのある、スタンフォードからの女の人）」に対して、ソーシャル・ネットワーキング・システム１６０は、「Ｐｅｏｐｌｅ  ｆｒｏｍ
Ｓｔａｎｆｏｒｄ，Ｃａｌｉｆｏｒｎｉａ  ｗｈｏ  ｌｉｋｅ  ｔｈｅ’Ｇｉｒｌｓ  Ｉ  Ｈａｖｅ  Ｄａｔｅｄ’ｐａｇｅ（「私がデートしたことのある女の人」ページに「いいね」の表明を示した、カリフォルニア州スタンフォードからの人々）」などの構造化クエリを生成する場合がある。ここで、構造化クエリは、都市［Ｓｔａｎｆｏｒｄ，Ｃａｌｉｆｏｒｎｉａ］およびページ［Ｇｉｒｌｓ  Ｉ  Ｈａｖｅ  Ｄａｔｅｄ］のソーシャル・グラフ・トークンを含み、これらの各々は、ソーシャル・グラフ２００の特定のコンセプト・ノード２０４に対応する。よって、Ｎグラム「ｆｒｏｍ  ｓｔａｎｆｏｒｄ」は、文法モデルによって、クエリ・トークン［Ｐｅｏｐｌｅ  ｆｒｏｍ］［Ｓｔａｎｆｏｒｄ，Ｃａｌｉｆｏｒｎｉａ］に合致されており、Ｎグラム「ｇｉｒｌｓ  ｉ  ｈａｖｅ  ｄａｔｅｄ」は、ページ［Ｇｉｒｌｓ  Ｉ  Ｈａｖｅ  Ｄａｔｅｄ］に対応するコンセプト・ノード２０４に対するソーシャル・グラフ・トークンに合致されている（これ自体は低品質の合致であるかもしれないことに留意されたい）。テキスト・クエリの長さに対して、構造化クエリは、ノードに対する多数のソーシャル・グラフ・トークンを含む。さらに、単一のトークン［Ｇｉｒｌｓ  Ｉ  Ｈａｖｅ  Ｄａｔｅｄ］が、非構造化テキスト・クエリの大きい部分に合致されている。よって、クエリを生成するために挿入される、ノードに対するソーシャル・グラフ・トークンの数が相対的に多いので、この構造化クエリには高いエンティティ多数性コストが関連し、このことは、これが相対的に低品質の構造化クエリであることを示す。本開示は構造化クエリの品質スコアを特定の方式で計算することを記述するが、本開示は構造化クエリの品質スコアを任意の適切な方式で計算することを企図する。
【００５９】
特定の実施形態では、ソーシャル・ネットワーキング・システム１６０は、言語モデル・スコアに基づいて、構造化クエリの品質スコアを計算することができる。言語モデル・スコアは、構造化クエリのクエリ・トークンと比較された、元のテキスト・クエリの識別された語句に関して計算され得る。特定の構造化クエリを生成した後、ソーシャル・ネットワーキング・システム１６０は、構造化クエリにおける各クエリ・トークンおよびそれに近接するクエリ・トークン（例えば前または後のトークン）を、これらのクエリ・トークンに対応する元のテキスト・クエリからの語句のシーケンスに基づいて、分析することができる。次いで、トークンが元のテキスト・クエリからのシーケンスにおける近接トークンの１つまたは複数と共に現れる確率が分析されてよい。元のテキスト・クエリにおける近接クエリ・トークンと共に現れる可能性の低いクエリ・トークンを文法モデルが挿入した場合は、構造化クエリは低品質である可能性が高い。低い言語モデル・スコアを有する（すなわち、共に現れる確率の低いクエリ・トークンがある）構造化クエリは、それらが低品質であることを示し、したがって、低い言語モデル・スコアは、低い品質スコアと相関する。限定によってではなく例として、ソーシャル・ネットワーキング・システム１６０は、特定のクエリ・トークンが元のクエリからの特定の近接する語句とペアにされる確率ｐを決定することができる。この計算は、元のテキスト・クエリにおける語句のシーケンスを考慮に入れることができる。よって、特定の解析が特定のクエリ・トークン・ペアリングに対応する確率は、ｐ＝（ｔ１｜ｔ２，．．．，ｔｘ）として計算されてよく、ここで、ｔ１は分析対象のクエリ・トークンであり、ｔ２，．．．，ｔｘは、元のテキスト・クエリにおける近接クエリ・トークン２〜ｘである。次いで、各クエリ・トークンについての個別の確率を使用して、構造化クエリの全体的な言語モデル・スコアを決定することができる。特定の実施形態では、ソーシャル・ネットワーキング・システム１６０は、構造化クエリの各クエリ・トークンにつき、そのクエリ・トークンが元のテキスト・クエリにおける近接クエリ・トークンと共に現れる確率を決定することができる。次いで、ソーシャル・ネットワーキング・システム１６０は、クエリ・トークンについての確率に
基づいて、言語モデル・スコアを計算することができる。限定によってではなく例として、テキスト・クエリ「ｇｉｒｌｓ  ｉ  ｈａｖｅ  ｄａｔｅｄ」に対して、ソーシャル・ネットワーキング・システム１６０は、「Ｆｅｍａｌｅ  ｕｓｅｒｓ  Ｉ  ｈａｖｅ  ｗｈｏ  ｕｓｅ  ｔｈｅ  Ｄａｔｉｎｇ  ａｐｐ（デート・アプリを使用する、私が有する女性ユーザ）」などの構造化クエリを生成する場合があり、Ｄａｔｉｎｇ  ａｐｐは、エンティティタイプ［ａｐｐｌｉｃａｔｉｏｎ］のオンライン・ソーシャル・ネットワークに関連付けられている仮定のアプリケーションである（すなわち、これは非終端トークン［ａｐｐｌｉｃａｔｉｏｎ］に対応する）。クエリ・トークン［Ｄａｔｉｎｇ  ａｐｐ］についての確率を計算するために、次いでソーシャル・ネットワーキング・システム１６０は、元のテキスト・クエリにおける近接する語句に対応する、構造化クエリからの他のクエリ・トークンを分析することができる。この場合、ソーシャル・ネットワーキング・システム１６０は、クエリ・トークン［Ｆｅｍａｌｅ］、［Ｉ］、および［ｈａｖｅ］（元のテキスト・クエリからの語句「ｇｉｒｌｓ」、「ｉ」、および「ｈａｖｅ」にそれぞれ対応する）を、クエリ・トークン［Ｄａｔｉｎｇ  ａｐｐ］と共に使用する確率（または、非終端トークン［ａｐｐｌｉｃａｔｉｏｎ］を使用する確率）を決定することができる。この確率は、ｐ＝（［Ｄａｔｉｎｇ  ａｐｐ］｜（［Ｆｅｍａｌｅ］，［Ｉ］，［ｈａｖｅ］））として計算されてよく、または、前のクエリ・トークン［Ｆｅｍａｌｅ］，［Ｉ］，および［ｈａｖｅ］が与えられた場合にクエリ・トークン［Ｄａｔｉｎｇ  ａｐｐ］を挿入する確率として計算されてよい（別法として、確率は、ｐ＝（［ａｐｐｌｉｃａｔｉｏｎ］｜（［Ｆｅｍａｌｅ］，［Ｉ］，［ｈａｖｅ］））として計算されてもよい）。この場合、クエリ・トークン［Ｆｅｍａｌｅ］、［Ｉ］、および［ｈａｖｅ］がソーシャル・グラフ・トークン［Ｄａｔｉｎｇ  ａｐｐ］の前に使用される確率は低い可能性があり、よって、この構造化クエリは、相対的に低い言語モデル・スコアを有することになり、このことは、これが相対的に低品質の構造化クエリであることを示す。本開示は構造化クエリの品質スコアを特定の方式で計算することを記述するが、本開示は構造化クエリの品質スコアを任意の適切な方式で計算することを企図する。
【００６０】
特定の実施形態では、ソーシャル・ネットワーキング・システム１６０は、構造化クエリのエンティティ挿入コストに基づいて、構造化クエリの品質スコアを計算することができる。特定のテキスト・クエリを解析するとき、テキスト・クエリにおける語句（すなわち、テキスト・クエリにおけるＮグラム）は、生成された構造化クエリにおけるクエリ・トークンにできるだけ近く合致すべきである。よって、語句の変更または語句の追加は、その特定のクエリ・トークンを生成するコストを増加させ、したがって、そのような修正されたトークンを含む構造化クエリは、低品質である可能性がある。高いエンティティ挿入コスト（すなわち、テキスト・クエリからの語句に挿入または修正を加えて特定のクエリ・トークンに合致させることに関連付けられているコスト）を有する構造化クエリは、それらが低品質である可能性があることを示し、したがって、高いエンティティ挿入コストは、低い品質スコアと相関する。特定の実施形態では、ソーシャル・ネットワーキング・システム１６０は、構造化クエリにおける各ソーシャル・グラフ・トークンにつき、ソーシャル・グラフ・トークンをそれに対応するＮグラムと合致させるために文法によって挿入された語句の数を決定することができる。限定によってではなく例として、テキスト・クエリ「ｇｉｒｌｓ  ｗｈｏ  ｌｉｋｅ  ｄａｔｉｎｇ（デートに「いいね」の表明を示した女の人）」に対して、ソーシャル・ネットワーキング・システム１６０は、構造化クエリ「Ｆｅｍａｌｅ  ｕｓｅｒｓ  ｗｈｏ  ｌｉｋｅ  ｔｈｅ  ’Ｄａｔｉｎｇ  ｉｎ
Ｐａｌｏ  Ａｌｔｏ’ａｐｐ（「パロアルトでデート」アプリに「いいね」の表明を示した女性ユーザ）」を生成する場合がある。よって、テキスト・クエリからの語句「ｄａｔｉｎｇ」が文法モデルによって解析されて、［Ｄａｔｉｎｇ  ｉｎ  Ｐａｌｏ  Ａｌｔｏ］のクエリ・トークン（これは、アプリについての特定のコンセプト・ノード２０４に対応し得る）に合致された。しかし、語句「ｄａｔｉｎｇ」をこのクエリ・トークンに合致させるために、ソーシャル・ネットワーキング・システム１６０は、クエリ・トークン
［Ｄａｔｉｎｇ  ｉｎ  Ｐａｌｏ  Ａｌｔｏ］と合致するように追加の語句「ｉｎ  Ｐａｌｏ  Ａｌｔｏ」を挿入しなければならなかった。よって、テキスト・クエリからのＮグラムを構造化クエリにおけるクエリ・トークンに合致させるために文法モデルによって挿入された語句の数が相対的に多いので、この構造化クエリには高いエンティティ挿入コストが関連し、このことは、これが相対的に低品質の構造化クエリであることを示す。本開示は構造化クエリの品質スコアを特定の方式で計算することを記述するが、本開示は構造化クエリの品質スコアを任意の適切な方式で計算することを企図する。
【００６１】
特定の実施形態では、ソーシャル・ネットワーキング・システム１６０は、構造化クエリの１つまたは複数を照会元ユーザに送ることができる。限定によってではなく例として、構造化クエリが生成された後、ソーシャル・ネットワーキング・システム１６０は、構造化クエリの１つまたは複数を、応答（ＡＪＡＸまたは他の技法を利用できる）としてユーザのクライアント・システム１３０に送ることができ、この応答は、例えば、参照されるソーシャル・グラフ要素の名前（名前ストリング）、他のクエリ制限（例えばブール演算子など）、ならびに、場合によっては、参照されるソーシャル・グラフ要素に関連付けられている他のメタデータを含むことができる。照会元ユーザのクライアント・システム１３０上のウェブ・ブラウザ１３２は、図４Ａ〜図４Ｂに示されるように、送られた構造化クエリをドロップダウン・メニュー３００において表示することができる。特定の実施形態では、ソーシャル・ネットワーキング・システム１６０は、フィルタリング後の第１のセットからの構造化クエリの１つまたは複数を、第１の／照会元ユーザに送ることができる。第１のユーザに送られる各構造化クエリは、しきい値品質スコア以上の品質スコアを有するものとすることができる。このようにすれば、低品質の構造化クエリがフィルタリングによって除去される（すなわち、ユーザに対して生成される構造化クエリのセットから除去される）ことが可能である。次いで、フィルタリング後に残った構造化クエリ（もしあれば）は、ランク付けされてよく、次いでこれらの１つまたは複数が照会元ユーザに送られてよい。特定の実施形態では、フィルタリング後に残った構造化クエリがしきい値数よりも少ない場合は、ソーシャル・ネットワーキング・システム１６０は、テキスト・クエリに基づいてウェブ検索クエリを生成することができる。このようにすれば、文法モデルが関連性のあるクエリを作成できなかった場合でも、照会元ユーザには、検索を実施するためのオプションがなお残される。限定によってではなく例として、テキスト・クエリ「ｇｉｒｌｓ  ｉ  ｈａｖｅ  ｄａｔｅｄ」に対して、ソーシャル・ネットワーキング・システム１６０は、示唆クエリとして照会元ユーザに送るのに十分な品質の構造化クエリを、ごく少数しか、さらには１つも生成しない場合がある。前述のように、このテキスト・クエリの解析は様々な低品質の構造化クエリを作成することがあり、これらの各々は、ソーシャル・ネットワーキング・システム１６０によってフィルタリングによって除去されてよい。したがって、ソーシャル・ネットワーキング・システム１６０は、代わりに、例えば「’ｇｉｒｌｓ  ｉ  ｈａｖｅ  ｄａｔｅｄ’をウェブで検索する」など、ウェブ検索を実施するための示唆クエリを送ることができる。ユーザがこの示唆クエリを選択した場合、クエリは適切なＡＰＩを通じてウェブ検索エンジン（例えば、ＢＩＮＧ、ＧＯＯＧＬＥなど）に送信されてよく、そこで標準的なストリングマッチング検索が実施されてよい。次いで、結果が、照会元ユーザへの表示に向けてソーシャル・ネットワーキング・システム１６０に（例えばＡＰＩを通じて）送り返されてよい。別法として、照会元ユーザがウェブ検索オプションを選択したとき、ユーザのウェブ・ブラウザ１３２が検索エンジンのウェブページにリダイレクトされてもよい。特定の実施形態では、送られたクエリは、例えば前述のように前に決定されたランクなどに基づいて、ランク付けされた順序で照会元ユーザに提示されてよい。よりよいランキングを有する構造化クエリは、より目立つ位置で提示されるものとすることができる。さらに、特定の実施形態では、しきい値ランクよりも上の構造化クエリのみが、照会元ユーザに対して送信または表示されてもよい。限定によってではなく例として、図４Ａ〜図４Ｂに示されるように、構造化クエリは、ドロップダウン・メニュー３００において照会元ユーザに提示されてよく、高くラン
ク付けされる構造化クエリほどメニューの上部に提示され、低くランク付けされる構造化クエリほど、ランクの高い順にメニューにおいて下に提示されてよい。図４Ａ〜図４Ｂに示される例では、上位にランク付けされる７つのクエリのみが、ユーザに対して送信および表示される。しかし、これらの例で、ユーザに送るために利用可能な構造化クエリが７つ未満である場合は（例えば、いくつかが低品質によりフィルタリングによって除去されたため）、利用可能な構造化クエリのみが送られてよい。さらに、構造化クエリが７つ未満のとき、ソーシャル・ネットワーキング・システム１６０は、照会元ユーザに送られる示唆クエリのセットに、ウェブ検索クエリの示唆を含めることができる。特定の実施形態では、構造化クエリにおける１つまたは複数の参照が、特定のソーシャル・グラフ要素に対するその対応を示すために強調表示されてよい（例えば、輪郭付き、下線付き、丸囲み、太字、イタリック体、色付き、点灯、オフセット、大文字）。限定によってではなく例として、図４Ａ〜図４Ｂに示されるように、「Ｓｔａｎｆｏｒｄ  Ｕｎｉｖｅｒｓｉｔｙ」および「Ｓｔａｎｆｏｒｄ，Ｃａｌｉｆｏｒｎｉａ」への参照が、構造化クエリにおいて強調表示（輪郭付け）されて、それが特定のコンセプト・ノード２０４に対応することが示される。同様に、ドロップダウン・メニュー３００において提示される構造化クエリにおける「Ｆｒｉｅｎｄｓ」、「ｌｉｋｅ」、「ｗｏｒｋ  ａｔ」、および「ｇｏ  ｔｏ」への参照もまた強調表示されて、それらが特定のエッジ２０６に対応することが示されてよい。本開示は特定の構造化クエリを特定の方式で送ることを記述するが、本開示は任意の適切な構造化クエリを任意の適切な方式で送ることを企図する。
【００６２】
特定の実施形態では、ソーシャル・ネットワーキング・システム１６０は、構造化クエリのうちの１つの選択を照会元ユーザから受け取ることができる。別法として、ソーシャル・ネットワーキング・システム１６０は、いくつかのコンテキストで、システムによって自動的に選択されたクエリ（例えばデフォルト選択）として、構造化クエリを受け取ることもできる。受け取られた構造化クエリにおいて参照されるノードおよびエッジは、選択されたノードおよび選択されたエッジとしてそれぞれ参照され得る。限定によってではなく例として、照会元ユーザのクライアント・システム１３０上のウェブ・ブラウザ１３２は、図４Ａ〜図４Ｂに示されるように、送信された構造化クエリをドロップダウン・メニュー３００において表示することができ、次いでユーザは、クリックするかまたは他の方法で選択して（例えば、単に自分のキーボード上で「ｅｎｔｅｒ」をキー入力することによって）、ユーザがソーシャル・ネットワーキング・システム１６０に実行させたい特定の構造化クエリを示すことができる。特定の構造化クエリが選択されると、ユーザのクライアント・システム１３０は、選択された特定の構造化クエリを実行するよう、ソーシャル・ネットワーキング・システム１６０に呼出しを行うかまたは他の方法で命令することができる。限定によってではなく例として、特定の構造化クエリの選択に応答して、ソーシャル・ネットワーキング・システム１６０は、構造化クエリに基づいてクエリ・コマンドを生成することができ、次いで、このクエリ・コマンドは１つまたは複数のデータ・ストア１６４に送られて、クエリ・コマンドの制約に合致するコンテンツ・オブジェクトが検索されてよい。本開示は特定の構造化クエリの選択を特定の方式で受け取ることを記述するが、本開示は任意の適切な構造化クエリの選択を任意の適切な方式で受け取ることを企図する。
【００６３】
図５は、オンライン・ソーシャル・ネットワーク上の構造化クエリの示唆をフィルタリングするための例示的な方法５００を示す。方法はステップ５１０で開始することができ、ソーシャル・ネットワーキング・システム１６０は、複数のノードと、ノード同士をつなげる複数のエッジ２０６とを備える、ソーシャル・グラフ２００にアクセスすることができる。ノードは、第１のノード２０２と、複数の第２のノード（１つまたは複数のユーザ・ノード２０２、コンセプト・ノード２０４、またはこれらの任意の組合せ）を含むことができる。ステップ５２０で、ソーシャル・ネットワーキング・システム１６０は、非構造化テキスト・クエリを第１のユーザから受け取ることができる。テキスト・クエリは
、１つまたは複数のＮグラムを含むことができる。ステップ５３０で、ソーシャル・ネットワーキング・システム１６０は、テキスト・クエリに基づいて、構造化クエリの第１のセットを生成することができる。第１のセットにおける各構造化クエリは、文脈自由文法モデルの識別された文法に対応するものとすることができる。各構造化クエリはまた、１つもしくは複数の文法トークン、または１つもしくは複数のソーシャル・グラフ・トークンを含むことができる。各ソーシャル・グラフ・トークンは、複数のノードのうちの１つのノード、または複数のエッジのうちの１つのエッジに対応するものとすることができる。ステップ５４０で、ソーシャル・ネットワーキング・システム１６０は、各構造化クエリにつき、テキスト・クエリおよび構造化クエリに基づいて品質スコアを計算することができる。品質スコアは、本明細書に記載の任意の適切な方式で計算されてよい。ステップ５５０で、ソーシャル・ネットワーキング・システム１６０は、第１のセットをフィルタリングして、しきい値品質スコア未満の品質スコアを有する各構造化クエリを第１のセットから除去することができる。ステップ５６０で、ソーシャル・ネットワーキング・システム１６０は、フィルタリング後の第１のセットからの構造化クエリの１つまたは複数を、第１のユーザに送ることができる。第１のユーザに送られる各構造化クエリは、しきい値品質スコア以上の品質スコアを有するものとすることができる。特定の実施形態は、適切な場合に、図５の方法の１つまたは複数のステップを繰り返すことができる。本開示は図５の方法の特定のステップが特定の順序で発生するものとして記述および図示するが、本開示は図５の方法の任意の適切なステップが任意の適切な順序で発生することを企図する。さらに、本開示は特定のコンポーネント、デバイス、またはシステムが図５の方法の特定のステップを実施することを記述および図示するが、本開示は任意の適切なコンポーネント、デバイス、またはシステムの任意の適切な組合せが図５の方法の任意の適切なステップを実施することを企図する。
【００６４】
システムおよび方法
図６は、例示的なコンピュータ・システム６００を示している。特定の実施形態においては、１つまたは複数のコンピュータ・システム６００が、本明細書において記述されているまたは示されている１つまたは複数の方法の１つまたは複数の工程を実行する。特定の実施形態においては、１つまたは複数のコンピュータ・システム６００が、本明細書において記述されているまたは示されている機能を提供する。特定の実施形態においては、１つまたは複数のコンピュータ・システム６００上で稼働するソフトウェアが、本明細書において記述されているもしくは示されている１つもしくは複数の方法の１つもしくは複数の工程を実行し、または本明細書において記述されているもしくは示されている機能を提供する。特定の実施形態は、１つまたは複数のコンピュータ・システム６００の１つまたは複数の部分を含む。本明細書においては、コンピュータ・システムへの言及は、適切な場合には、コンピューティング・デバイスを包含することができる。その上、コンピュータ・システムへの言及は、適切な場合には、１つまたは複数のコンピュータ・システムを包含することができる。
【００６５】
本開示は、任意の適切な数のコンピュータ・システム６００を想定している。本開示は、任意の適切な物理的な形態を取るコンピュータ・システム６００を想定している。限定ではなく、例として、コンピュータ・システム６００は、組み込みコンピュータ・システム、システムオンチップ（ＳＯＣ）、シングルボード・コンピュータ・システム（ＳＢＣ）（たとえば、コンピュータオンモジュール（ＣＯＭ）もしくはシステムオンモジュール（ＳＯＭ）など）、デスクトップ・コンピュータ・システム、ラップトップもしくはノートブック・コンピュータ・システム、対話キオスク、メインフレーム、コンピュータ・システムのメッシュ、モバイル電話、携帯情報端末（ＰＤＡ）、サーバ、タブレット・コンピュータ・システム、またはこれらのうちの複数の組合せであることが可能である。適切な場合には、コンピュータ・システム６００は、１つもしくは複数のコンピュータ・システム６００を含むこと、単一型もしくは分散型であること、複数のロケーションにわたる
こと、複数のマシンにわたること、複数のデータセンターにわたること、または、クラウド（１つもしくは複数のネットワーク内の１つもしくは複数のクラウド・コンポーネントを含むことができる）内に常駐することが可能である。適切な場合には、１つまたは複数のコンピュータ・システム６００は、本明細書において記述されているまたは示されている１つまたは複数の方法の１つまたは複数の工程を、実質的な空間上のまたは時間上の制限を伴わずに実行することができる。限定ではなく、例として、１つまたは複数のコンピュータ・システム６００は、本明細書において記述されているまたは示されている１つまたは複数の方法の１つまたは複数の工程をリアルタイムで、またはバッチ・モードで実行することができる。１つまたは複数のコンピュータ・システム６００は、適切な場合には、本明細書において記述されているまたは示されている１つまたは複数の方法の１つまたは複数の工程を別々の時点で、または別々のロケーションで実行することができる。
【００６６】
特定の実施形態においては、コンピュータ・システム６００は、プロセッサ６０２、メモリ６０４、ストレージ６０６、入力／出力（Ｉ／Ｏ）インタフェース６０８、通信インタフェース６１０、およびバス６１２を含む。本開示は、特定の数の特定のコンポーネントを特定の構成で有する特定のコンピュータ・システムについて記述し、示しているが、本開示は、任意の適切な数の任意の適切なコンポーネントを任意の適切な構成で有する任意の適切なコンピュータ・システムを想定している。
【００６７】
特定の実施形態においては、プロセッサ６０２は、コンピュータ・プログラムを構成している命令などの命令を実行するためのハードウェアを含む。限定ではなく、例として、命令を実行するために、プロセッサ６０２は、内部レジスタ、内部キャッシュ、メモリ６０４、またはストレージ６０６から命令を取り出し（またはフェッチし）、それらの命令をデコードして実行し、次いで、１つまたは複数の結果を内部レジスタ、内部キャッシュ、メモリ６０４、またはストレージ６０６に書き込むことができる。特定の実施形態においては、プロセッサ６０２は、データ、命令、またはアドレスのための１つまたは複数の内部キャッシュを含むことができる。本開示は、適切な場合には、任意の適切な数の任意の適切な内部キャッシュを含むプロセッサ６０２を想定している。限定ではなく、例として、プロセッサ６０２は、１つまたは複数の命令キャッシュ、１つまたは複数のデータ・キャッシュ、および１つまたは複数の変換ルックアサイド・バッファ（ＴＬＢ）を含むことができる。命令キャッシュ内の命令は、メモリ６０４またはストレージ６０６内の命令のコピーであることが可能であり、命令キャッシュは、プロセッサ６０２によるそれらの命令の取り出しをスピードアップすることができる。データ・キャッシュ内のデータは、プロセッサ６０２において実行される命令が機能する際に基づくメモリ６０４もしくはストレージ６０６内のデータのコピー、プロセッサ６０２において実行される後続の命令によるアクセスのための、もしくはメモリ６０４もしくはストレージ６０６への書き込みのためのプロセッサ６０２において実行された以前の命令の結果、またはその他の適切なデータであることが可能である。データ・キャッシュは、プロセッサ６０２による読み取りオペレーションまたは書き込みオペレーションをスピードアップすることができる。ＴＬＢは、プロセッサ６０２のための仮想アドレス変換をスピードアップすることができる。特定の実施形態においては、プロセッサ６０２は、データ、命令、またはアドレスのための１つまたは複数の内部レジスタを含むことができる。本開示は、適切な場合には、任意の適切な数の任意の適切な内部レジスタを含むプロセッサ６０２を想定している。適切な場合には、プロセッサ６０２は、１つまたは複数の演算ロジック・ユニット（ＡＬＵ）を含むこと、マルチコア・プロセッサであること、または１つもしくは複数のプロセッサ６０２を含むことが可能である。本開示は、特定のプロセッサについて記述し、示しているが、本開示は、任意の適切なプロセッサを想定している。
【００６８】
特定の実施形態においては、メモリ６０４は、プロセッサ６０２が実行するための命令、またはプロセッサ６０２が機能する際に基づくデータを記憶するためのメイン・メモリ
を含む。限定ではなく、例として、コンピュータ・システム６００は、命令をストレージ６０６または別のソース（たとえば、別のコンピュータ・システム６００など）からメモリ６０４にロードすることができる。次いでプロセッサ６０２は、命令をメモリ６０４から内部レジスタまたは内部キャッシュにロードすることができる。命令を実行するために、プロセッサ６０２は、命令を内部レジスタまたは内部キャッシュから取り出し、それらの命令をデコードすることができる。命令の実行中または実行後に、プロセッサ６０２は、１つまたは複数の結果（それらは、中間の結果または最終的な結果である場合がある）を内部レジスタまたは内部キャッシュに書き込むことができる。次いでプロセッサ６０２は、それらの結果のうちの１つまたは複数をメモリ６０４に書き込むことができる。特定の実施形態においては、プロセッサ６０２は、（ストレージ６０６またはその他の場所ではなく）１つもしくは複数の内部レジスタもしくは内部キャッシュ内の、またはメモリ６０４内の命令のみを実行し、（ストレージ６０６またはその他の場所ではなく）１つもしくは複数の内部レジスタもしくは内部キャッシュ内の、またはメモリ６０４内のデータ上でのみ機能する。１つまたは複数のメモリ・バス（それらは各々、アドレス・バスおよびデータ・バスを含むことができる）は、プロセッサ６０２をメモリ６０４に結合することができる。バス６１２は、以降で記述されているような１つまたは複数のメモリ・バスを含むことができる。特定の実施形態においては、１つまたは複数のメモリ管理ユニット（ＭＭＵ）が、プロセッサ６０２とメモリ６０４との間に常駐し、プロセッサ６０２によって要求されるメモリ６０４へのアクセスを容易にする。特定の実施形態においては、メモリ６０４は、ランダム・アクセス・メモリ（ＲＡＭ）を含む。このＲＡＭは、適切な場合には、揮発性メモリであることが可能である。適切な場合には、このＲＡＭは、ダイナミックＲＡＭ（ＤＲＡＭ）またはスタティックＲＡＭ（ＳＲＡＭ）であることが可能である。その上、適切な場合には、このＲＡＭは、シングルポートＲＡＭまたはマルチポートＲＡＭであることが可能である。本開示は、任意の適切なＲＡＭを想定している。メモリ６０４は、適切な場合には、１つまたは複数のメモリ６０４を含むことができる。本開示は、特定のメモリについて記述し、示しているが、本開示は、任意の適切なメモリを想定している。
【００６９】
特定の実施形態においては、ストレージ６０６は、データまたは命令のためのマス・ストレージを含む。限定ではなく、例として、ストレージ６０６は、ハード・ディスク・ドライブ（ＨＤＤ）、フロッピー（登録商標）ディスク・ドライブ、フラッシュ・メモリ、光ディスク、光磁気ディスク、磁気テープ、またはユニバーサル・シリアル・バス（ＵＳＢ）ドライブ、またはこれらのうちの複数の組合せを含むことができる。ストレージ６０６は、適切な場合には、取り外し可能なまたは取り外し不能な（すなわち、固定された）媒体を含むことができる。ストレージ６０６は、適切な場合には、コンピュータ・システム６００の内部または外部に存在することが可能である。特定の実施形態においては、ストレージ６０６は、不揮発性のソリッドステート・メモリである。特定の実施形態においては、ストレージ６０６は、読み取り専用メモリ（ＲＯＭ）を含む。適切な場合には、このＲＯＭは、マスクプログラムＲＯＭ、プログラマブルＲＯＭ（ＰＲＯＭ）、消去可能ＰＲＯＭ（ＥＰＲＯＭ）、電気的消去可能ＰＲＯＭ（ＥＥＰＲＯＭ）、電気的書替え可能ＲＯＭ（ＥＡＲＯＭ）、またはフラッシュ・メモリ、またはこれらのうちの複数の組合せであることが可能である。本開示は、任意の適切な物理的な形態を取るマス・ストレージ６０６を想定している。ストレージ６０６は、適切な場合には、プロセッサ６０２とストレージ６０６との間における通信を容易にする１つまたは複数のストレージ・コントロール・ユニットを含むことができる。適切な場合には、ストレージ６０６は、１つまたは複数のストレージ６０６を含むことができる。本開示は、特定のストレージについて記述し、示しているが、本開示は、任意の適切なストレージを想定している。
【００７０】
特定の実施形態においては、Ｉ／Ｏインタフェース６０８は、コンピュータ・システム６００と１つまたは複数のＩ／Ｏデバイスとの間における通信のための１つまたは複数の
インタフェースを提供するハードウェア、ソフトウェア、またはその両方を含む。コンピュータ・システム６００は、適切な場合には、これらのＩ／Ｏデバイスのうちの１つまたは複数を含むことができる。これらのＩ／Ｏデバイスのうちの１つまたは複数は、人とコンピュータ・システム６００との間における通信を可能にすることができる。限定ではなく、例として、Ｉ／Ｏデバイスは、キーボード、キーパッド、マイクロフォン、モニタ、マウス、プリンタ、スキャナ、スピーカ、スチル・カメラ、スタイラス、タブレット、タッチ・スクリーン、トラックボール、映像カメラ、別の適切なＩ／Ｏデバイス、またはこれらのうちの複数の組合せを含むことができる。Ｉ／Ｏデバイスは、１つまたは複数のセンサを含むことができる。本開示は、任意の適切なＩ／Ｏデバイス、およびそれらのＩ／Ｏデバイスのための任意の適切なＩ／Ｏインタフェース６０８を想定している。適切な場合には、Ｉ／Ｏインタフェース６０８は、プロセッサ６０２がこれらのＩ／Ｏデバイスのうちの１つまたは複数を駆動することを可能にする１つまたは複数のデバイス・ドライバまたはソフトウェア・ドライバを含むことができる。Ｉ／Ｏインタフェース６０８は、適切な場合には、１つまたは複数のＩ／Ｏインタフェース６０８を含むことができる。本開示は、特定のＩ／Ｏインタフェースについて記述し、示しているが、本開示は、任意の適切なＩ／Ｏインタフェースを想定している。
【００７１】
特定の実施形態においては、通信インタフェース６１０は、コンピュータ・システム６００と、１つもしくは複数のその他のコンピュータ・システム６００または１つもしくは複数のネットワークとの間における通信（たとえば、パケットベースの通信など）のための１つまたは複数のインタフェースを提供するハードウェア、ソフトウェア、またはその両方を含む。限定ではなく、例として、通信インタフェース６１０は、イーサネット（登録商標）もしくはその他の有線ベースのネットワークと通信するためのネットワーク・インタフェース・コントローラ（ＮＩＣ）もしくはネットワーク・アダプタ、またはＷＩ−ＦＩネットワークなどのワイヤレス・ネットワークと通信するためのワイヤレスＮＩＣ（ＷＮＩＣ）もしくはワイヤレス・アダプタを含むことができる。本開示は、任意の適切なネットワーク、およびそのネットワークのための任意の適切な通信インタフェース６１０を想定している。限定ではなく、例として、コンピュータ・システム６００は、アド・ホック・ネットワーク、パーソナル・エリア・ネットワーク（ＰＡＮ）、ローカル・エリア・ネットワーク（ＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、またはインターネットの１つまたは複数の部分、またはこれらのうちの複数の組合せと通信することができる。これらのネットワークのうちの１つまたは複数の１つまたは複数の部分は、有線またはワイヤレスであることが可能である。例として、コンピュータ・システム６００は、ワイヤレスＰＡＮ（ＷＰＡＮ）（たとえば、ブルートゥースＷＰＡＮなど）、ＷＩ−ＦＩネットワーク、ＷＩ−ＭＡＸネットワーク、セルラー電話ネットワーク（たとえば、グローバル・システム・フォー・モバイル・コミュニケーションズ（ＧＳＭ（登録商標））ネットワークなど）、またはその他の適切なワイヤレス・ネットワーク、またはこれらのうちの複数の組合せと通信することができる。コンピュータ・システム６００は、適切な場合には、これらのネットワークのうちの任意のネットワークのための任意の適切な通信インタフェース６１０を含むことができる。通信インタフェース６１０は、適切な場合には、１つまたは複数の通信インタフェース６１０を含むことができる。本開示は、特定の通信インタフェースについて記述し、示しているが、本開示は、任意の適切な通信インタフェースを想定している。
【００７２】
特定の実施形態においては、バス６１２は、コンピュータ・システム６００のコンポーネント同士を互いに結合するハードウェア、ソフトウェア、またはその両方を含む。限定ではなく、例として、バス６１２は、アクセラレイティッド・グラフィックス・ポート（ＡＧＰ）もしくはその他のグラフィックス・バス、エンハンスト・インダストリー・スタンダード・アーキテクチャ（ＥＩＳＡ）バス、フロントサイド・バス（ＦＳＢ）、ハイパートランスポート（ＨＴ）インターコネクト、インダストリー・スタンダード・アーキテ
クチャ（ＩＳＡ）バス、インフィニバンド・インターコネクト、ローピンカウント（ＬＰＣ）バス、メモリ・バス、マイクロ・チャネル・アーキテクチャ（ＭＣＡ）バス、ペリフェラル・コンポーネント・インターコネクト（ＰＣＩ）バス、ＰＣＩエクスプレス（ＰＣＩｅ）バス、シリアル・アドバンスト・テクノロジー・アタッチメント（ＳＡＴＡ）バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション・ローカル（ＶＬＢ）バス、または別の適切なバス、またはこれらのうちの複数の組合せを含むことができる。バス６１２は、適切な場合には、１つまたは複数のバス６１２を含むことができる。本開示は、特定のバスについて記述し、示しているが、本開示は、任意の適切なバスまたはインターコネクトを想定している。
【００７３】
本明細書においては、１つまたは複数の非一時的コンピュータ可読記憶媒体は、適切な場合には、１つもしくは複数の半導体ベースのもしくはその他の集積回路（ＩＣ）（たとえば、フィールドプログラマブル・ゲート・アレイ（ＦＰＧＡ）もしくは特定用途向け集積回路（ＡＳＩＣ）など）、ハード・ディスク・ドライブ（ＨＤＤ）、ハイブリッド・ハード・ドライブ（ＨＨＤ）、光ディスク、光ディスク・ドライブ（ＯＤＤ）、光磁気ディスク、光磁気ドライブ、フロッピー（登録商標）・ディスケット、フロッピー（登録商標）・ディスク・ドライブ（ＦＤＤ）、磁気テープ、ソリッドステート・ドライブ（ＳＳＤ）、ＲＡＭドライブ、セキュア・デジタル・カードもしくはドライブ、その他の任意の適切な非一時的コンピュータ可読記憶媒体、またはこれらのうちの複数の組合せを含むことができる。非一時的コンピュータ可読記憶媒体は、適切な場合には、揮発性、不揮発性、または揮発性と不揮発性の組合せであることが可能である。
【００７４】
本明細書においては、「または（もしくは）」は、包含的であり、排他的ではない（ただし、そうではないことが明示されている場合、または、そうではないことが文脈によって示されている場合は除く）。したがって、本明細書においては、「ＡまたはＢ」は、「Ａ、Ｂ、またはその両方」を意味する（ただし、そうではないことが明示されている場合、または、そうではないことが文脈によって示されている場合は除く）。その上、「および（ならびに）」は、包括的および個別的の両方である（ただし、そうではないことが明示されている場合、または、そうではないことが文脈によって示されている場合は除く）。したがって、本明細書においては、「ＡおよびＢ」は、「まとめて、または個別に、ＡおよびＢ」を意味する（ただし、そうではないことが明示されている場合、または、そうではないことが文脈によって示されている場合は除く）。
【００７５】
本開示の範囲は、当技術分野における標準的な技術者が理解するであろう、本明細書において記述されているまたは示されている例示的な実施形態に対するすべての変更、置換、変形、改変、および修正を包含する。本開示の範囲は、本明細書において記述されているまたは示されている例示的な実施形態に限定されない。その上、本開示は、本明細書における各々の実施形態を、特定のコンポーネント、要素、機能、オペレーション、または工程を含むものとして記述し、示しているが、これらの実施形態のいずれも、当技術分野における標準的な技術者が理解するであろう、本明細書の任意の箇所において記述されているまたは示されているコンポーネント、要素、機能、オペレーション、または工程のうちの任意のものの任意の組合せまたは順列を含むことができる。さらに、特定の機能を実行するように適合されている、実行するようにアレンジされている、実行することができる、実行するように構成されている、実行することを可能にされている、実行するように機能できる、または実行するように機能する装置もしくはシステム、または装置もしくはシステムのコンポーネントへの添付の特許請求の範囲における言及は、その装置、システム、コンポーネント、またはその特定の機能が、アクティブ化されているか否か、オンにされているか否か、またはロック解除されているか否かを問わず、その装置、システム、またはコンポーネントが、そうするように適合されている、そうするようにアレンジされている、そうすることができる、そうするように構成されている、そうすることを可能に
されている、そうするように機能できる、またはそうするように機能する限り、その装置、システム、コンポーネントを包含する。
【要約】  一実施形態では、方法は、複数のノードとこれらのノード同士をつなげている複数のエッジとを備えるソーシャル・グラフにアクセスする工程と、非構造化テキスト・クエリをユーザから受け取る工程と、テキスト・クエリに基づいて構造化クエリのセットを生成する工程と、セットにおける各構造化クエリにつきテキスト・クエリおよび構造化クエリに基づいて品質スコアを計算する工程と、セットをフィルタリングして、しきい値スコア未満の品質スコアを有する各構造化クエリを除去する工程とを備える。【図１】
0005970624.tif 000002
【図２】
0005970624.tif 000003
【図３】
0005970624.tif 000004
【図４Ａ】
0005970624.tif 000005
【図４Ｂ】
0005970624.tif 000006
【図５】
0005970624.tif 000007
【図６】
0005970624.tif 000008