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