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