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