(57)【要約】  実施形態は、ソーシャルネットワーキングシステムのオブジェクトを検索するために使用されるセレクタ構成要素に関連付けられた検索コンテキストを学習および／または適用することによって、ユーザに関連する可能性が高い情報を検索するソーシャルネットワーキングシステムのユーザの能力を向上する。検索コンテキストは、個々のセレクタの使用に特有であるので、セレクタを埋め込むページ全体またはページのセットのコンテキストほどに一般的である必要はない。ソーシャルネットワーキングシステムは、セレクタを使用して行われた以前の検索結果からのユーザ選択を監視することによって、セレクタのコンテキストを学習する。
2015522887.tif 000002
【特許請求の範囲】
【請求項１】
セレクタを含むユーザインタフェースを、クライアントデバイスに提供するステップであって、前記セレクタはオブジェクトタイプに関連付けられる、ステップと、
ソーシャルネットワーキングシステムのユーザによって前記クライアントデバイス上で前記セレクタに入力されるクエリを、受け取るステップと、
前記クエリと一致するオブジェクトを識別することによって、結果セットを形成するステップであって、前記オブジェクトのうちの１以上はオブジェクトタイプに関連付けられている、形成ステップと、
前記セレクタに関連付けられた前記オブジェクトタイプと前記結果セット内の前記オブジェクトの前記オブジェクトタイプとの比較、および
前記ソーシャルネットワーキングシステム上の前記ユーザのつながり
に少なくとも部分的に基づいて、前記結果セットを修正する、修正ステップと、
前記結果セットの１以上のオブジェクトを、前記セレクタに視覚的に関連する表示のために前記クライアントデバイスに提供するステップと、を含むコンピュータ実装された方法。
【請求項２】
前記セレクタを使用する複数のユーザからオブジェクトの複数の選択を受け取るステップと、
選択される前記オブジェクトに関連付けられた１以上のタイプを決定するステップと、
選択される前記オブジェクトに関連付けられた前記タイプに基づいて、前記セレクタに関連付けられたタイプを決定する、タイプ決定ステップと、をさらに含む請求項１に記載のコンピュータ実装された方法。
【請求項３】
前記タイプ決定ステップは、
前記選択されるオブジェクトに最も高頻度で関連付けられた最高頻度タイプを識別するステップと、
前記最高頻度タイプを、前記セレクタに関連付けられた前記オブジェクトタイプとして追加するステップと、を含む、請求項２に記載のコンピュータ実装された方法。
【請求項４】
前記修正ステップは、前記結果セットから、前記セレクタの前記オブジェクトタイプと一致しないタイプを有するオブジェクトを除去するステップを含む、請求項１に記載のコンピュータ実装された方法。
【請求項５】
前記修正ステップは、前記オブジェクトに関連付けられた前記オブジェクトタイプが、前記セレクタに関連付けられた前記オブジェクトタイプと一致するか否かに少なくとも部分的に基づいて、前記結果セット内の前記オブジェクトをランク付けするステップを含む、請求項１に記載のコンピュータ実装された方法。
【請求項６】
前記セレクタに関連付けられた前記オブジェクトタイプ、および前記クエリと一致する前記オブジェクトのタイプは、タイプグラフのノードであり、前記方法は、
前記セレクタに関連付けられた前記オブジェクトタイプと、前記クエリと一致する前記オブジェクトの前記タイプとの間の前記タイプグラフにおける距離を決定するステップと、
決定される前記距離に基づいて前記オブジェクトの前記ランク付けを決定するステップと、をさらに含む、請求項５に記載のコンピュータ実装された方法。
【請求項７】
前記修正ステップは、前記クエリと一致する前記オブジェクトのうちの第１のオブジェクトを、前記クエリと一致する前記オブジェクトのうちの第２のオブジェクトよりも高くランク付けするステップを含み、前記ランク付けは、前記セレクタに関連付けられた前記
オブジェクトタイプと一致するタイプを有する、前記オブジェクトのうちの前記第１のオブジェクトと、前記セレクタの前記オブジェクトタイプと一致するタイプを有しない、前記オブジェクトのうちの前記第２のオブジェクトとに対応してなされる、請求項６に記載のコンピュータ実装された方法。
【請求項８】
前記セレクタに関連付けられた前記オブジェクトタイプ、および前記クエリと一致する前記オブジェクトの前記タイプは、階層型タイプグラフのノードであり、オブジェクトのタイプは、前記オブジェクトタイプが、前記セレクタの前記オブジェクトタイプと同じ、または前記セレクタの前記オブジェクトタイプのサブタイプである場合に限り、前記セレクタの前記オブジェクトタイプと一致する、請求項６に記載のコンピュータ実装された方法。
【請求項９】
前記ユーザインタフェースは、ページに対するものであり、前記ユーザインタフェースは、複数のセレクタを含み、前記複数のセレクタのうちの少なくとも２つのセレクタは、異なるオブジェクトタイプに関連付けられる、請求項１に記載のコンピュータ実装された方法。
【請求項１０】
前記ユーザから、前記結果セットの前記オブジェクトの１つの選択を受け取るステップをさらに含む、請求項１に記載のコンピュータ実装された方法。
【請求項１１】
前記ソーシャルネットワーキングシステム上の前記ユーザのつながりに少なくとも部分的に基づいて前記結果セットを修正するステップは、前記ユーザと、他のユーザとの間のつながりに少なくとも部分的に基づく、請求項１に記載のコンピュータ実装された方法。
【請求項１２】
前記ソーシャルネットワーキングシステム上の前記ユーザのつながりに少なくとも部分的に基づいて前記結果セットを修正するステップは、前記ユーザと、前記ソーシャルネットワーキングシステム上のページとの間のつながりに少なくとも部分的に基づく、請求項１に記載のコンピュータ実装された方法。
【請求項１３】
前記ソーシャルネットワーキングシステム上の前記ユーザのつながりに少なくとも部分的に基づいて前記結果セットを修正するステップは、前記ユーザと、前記ソーシャルネットワーキングシステム上のメディアアイテムとの間のつながりに少なくとも部分的に基づく、請求項１に記載のコンピュータ実装された方法。
【請求項１４】
前記ソーシャルネットワーキングシステム上の前記ユーザのつながりに少なくとも部分的に基づいて前記結果セットを修正するステップは、前記ユーザと、前記ソーシャルネットワーキングシステム上でホストされるアプリケーションとの間のつながりに少なくとも部分的に基づく、請求項１に記載のコンピュータ実装された方法。
【請求項１５】
前記ソーシャルネットワーキングシステム上の前記ユーザのつながりに少なくとも部分的に基づいて前記結果セットを修正するステップは、前記ユーザと、前記ソーシャルネットワーキングシステムによって定義されるグループとの間のつながりに少なくとも部分的に基づく、請求項１に記載のコンピュータ実装された方法。
【請求項１６】
前記セレクタを含む前記ユーザインタフェースは、前記ソーシャルネットワーキングシステムの外部のウェブページである第三者サイトである、請求項１に記載のコンピュータ実装された方法。
【請求項１７】
実行形式のコンピュータプログラムの命令を記憶するコンピュータ可読記憶媒体であって、前記命令は、
セレクタを含むユーザインタフェースを、クライアントデバイスに提供するための命令であって、前記セレクタはオブジェクトタイプに関連付けられる、命令と、
前記クライアントデバイス上で前記セレクタに入力されるクエリを受け取るための命令と、
前記クエリと一致するオブジェクトを識別することによって、結果セットを形成するための命令であって、前記オブジェクトのうちの１以上はオブジェクトタイプに関連付けられている、命令と、
前記セレクタに関連付けられた前記オブジェクトタイプと前記結果セット内の前記オブジェクトの前記オブジェクトタイプとの比較に少なくとも部分的に基づいて、前記結果セットを修正するための命令と、
前記結果セットの１以上のオブジェクトを、前記セレクタに視覚的に関連する表示のために前記クライアントデバイスに提供するための命令と、を含む、コンピュータ可読記憶媒体。
【請求項１８】
前記セレクタを使用する複数のユーザからオブジェクトの複数の選択を受け取るための命令と、
前記選択されるオブジェクトに関連付けられた１以上のタイプを決定する、タイプ決定ステップのための命令と、
前記選択されるオブジェクトに関連付けられた前記タイプに基づいて、前記セレクタに関連付けられたタイプを決定するための命令と、をさらに含む請求項１７に記載のコンピュータ可読記憶媒体。
【請求項１９】
前記タイプ決定ステップは、
選択される前記オブジェクトに最も高頻度で関連付けられた最高頻度タイプを識別するステップと、
前記最高頻度タイプを、前記セレクタに関連付けられた前記オブジェクトタイプとして追加するステップと、を含む、請求項１８に記載のコンピュータ可読記憶媒体。
【請求項２０】
前記ユーザインタフェースは、ページに対するものであり、前記ユーザインタフェースは、複数のセレクタを含み、前記複数のセレクタのうちの少なくとも２つのセレクタは、異なるオブジェクトタイプに関連付けられる、請求項１７に記載のコンピュータ可読記憶媒体。
【請求項２１】
少なくとも１つのセレクタを含むユーザインタフェースを、クライアントデバイス（２８０）に提供するように構成される少なくとも１つのウェブサーバ（２９０）と、
複数のオブジェクトを有するオブジェクトストア（２１０）を有するソーシャルネットワーキングシステム（２００）であって、前記セレクタは、ネットワーク（２７０）を通じて前記ソーシャルネットワーキングシステム（２００）と通信するように構成される、ソーシャルネットワーキングシステム（２００）と、
前記セレクタのうちの少なくとも１つを少なくとも１つのオブジェクトタイプに関連付ける、少なくとも１つの構成リポジトリ、たとえば、テーブル（２２３）と、を含むシステムであって、
前記少なくとも１つのセレクタは、クエリ、好ましくはテキスト入力を受け取り、前記クエリを前記ソーシャルネットワーキングシステム（２００）に伝達するように構成され、
前記ソーシャルネットワーキングシステムは、
前記少なくとも１つのセレクタから前記クエリを受け取り、
前記オブジェクトストア（２１０）において前記クエリと一致するオブジェクトを識別し、
識別される前記オブジェクトのタイプを、前記少なくとも１つのセレクタに関連付けら
れた前記少なくとも１つのオブジェクトタイプと比較するステップによって、識別される前記オブジェクトをランク付けして、ランク付けされた結果セットを生成し、
前記ランク付けされた結果セットの少なくとも一部分を表示のために前記セレクタに伝達するように構成される、システム。
【請求項２２】
前記ソーシャルネットワーキングシステムは、複数のユーザと他のユーザとの間の関係、複数のユーザとオブジェクトとの間の関係、またはその両方の関係を記憶するための少なくとも１つのデータベースを備え、前記セレクタ、前記ソーシャルネットワーキングシステム（２００）、またはその両方は、前記クエリを発しているユーザを識別するように構成され、前記ソーシャルネットワーキングシステム（２００）は、識別される前記ユーザと他のオブジェクトとの間の関係を使用して、識別される前記オブジェクトをランク付けするように構成される、請求項２１に記載のシステム。
【請求項２３】
前記ソーシャルネットワーキングシステム（２００）は、好ましくは階層型の、タイプグラフ（２２１）に、任意のタイプのオブジェクトの情報関係を記憶し、前記タイプグラフ（２２１）において、識別される前記オブジェクトの前記タイプと、前記少なくとも１つのセレクタに関連付けられたオブジェクトタイプとの間の距離を計算することによって、識別される前記オブジェクトをランク付けるように構成される、請求項２１または２２に記載のシステム。
【請求項２４】
コンテキスト学習モジュール（２６０）を備え、前記セレクタは、複数のユーザに関して前記セレクタ内で行われる選択を前記コンテキスト学習モジュール（２６０）に伝達するように構成され、前記コンテキスト学習モジュールは、所定のセレクタによって選択されるオブジェクトのタイプを監視し、前記所定のセレクタと、少なくとも１つのオブジェクトタイプとの少なくとも１つの関連付けを、前記構成リポジトリに記憶するように構成される、請求項２１〜２３のいずれか１項に記載のシステム。
【請求項２５】
セレクタを含むユーザインタフェースを、クライアントデバイスに提供するステップであって、前記セレクタはオブジェクトタイプに関連付けられる、ステップと、
ソーシャルネットワーキングシステム（２００）のユーザによって前記クライアントデバイス上で前記セレクタに入力されたクエリを受け取るステップと、
前記ソーシャルネットワーキングシステムが、前記クエリと一致するオブジェクトを識別することによって結果セットを前形成するステップであって、前記オブジェクトのうちの１以上はオブジェクトタイプに関連付けられている、形成するステップと、
前記ソーシャルネットワーキングシステム（２００）が、前記オブジェクトに関連付けられた前記オブジェクトタイプが前記セレクタに関連付けられた前記オブジェクトタイプと一致するか否かに少なくとも部分的に基づいて、前記結果セットをランク付けするステップと、
たとえば前記ソーシャルネットワーキングシステム（２００）のテーブル（２２３）において、前記結果セットの１以上のオブジェクトを、表示のために前記セレクタに伝達するステップと、を含むコンピュータ実装された方法。
【請求項２６】
学習モジュール（２６０）が、前記セレクタを使用する複数のユーザからオブジェクトの複数の選択を受け取り、記憶するステップと、
前記学習モジュール（２６０）が、選択される前記オブジェクトに関連付けられた１以上のタイプを決定するステップと、
選択される前記オブジェクトに関連付けられた前記タイプに基づいて、前記セレクタに関連付けられたタイプを決定する、タイプ決定ステップと、
決定される前記タイプを、前記セレクタに関連付けられたオブジェクトタイプとして記憶するステップと、をさらに含む、請求項２５に記載のコンピュータ実装された方法。
【請求項２７】
前記タイプ決定ステップは、
学習モジュール（２６０）が、複数のタイプについて、前記複数のタイプが前記セレクタによって選択された頻度を計算するステップと、
選択される前記オブジェクトに最も高頻度で関連付けられた最高頻度タイプを識別するステップと、
前記最高頻度タイプを、前記セレクタに関連付けられた前記オブジェクトタイプとして記憶するステップと、を含む、請求項２５または２６に記載のコンピュータ実装された方法。
【請求項２８】
前記結果セットを修正するステップは、前記結果セットから、前記セレクタの前記オブジェクトタイプと一致しないタイプを有するオブジェクトを除去するステップを含む、請求項２５〜２７のいずれか１項に記載のコンピュータ実装された方法。
【請求項２９】
オブジェクトタイプとしてのノードと、互いに関係付けられたオブジェクトタイプの間のエッジとを有する、好ましくは階層型の、タイプグラフを記憶するステップと、
前記セレクタに関連付けられた前記オブジェクトタイプと前記クエリと一致する前記オブジェクトのタイプとの間の前記タイプグラフにおける距離を決定するステップと、
決定される前記距離に基づいて前記オブジェクトの前記ランク付けを決定するステップと、を含む、請求項２５〜２８のいずれか１項に記載のコンピュータ実装された方法。
【請求項３０】
前記結果セットを修正するステップは、前記クエリと一致する前記オブジェクトのうちの第１のオブジェクトを、前記クエリと一致する前記オブジェクトのうちの第２のオブジェクトよりも高くランク付けするステップを含み、前記ランク付けは、前記セレクタに関連付けられた前記オブジェクトタイプと一致するタイプを有する、前記オブジェクトのうちの前記第１のオブジェクトと、前記セレクタの前記オブジェクトタイプと一致するタイプを有しない、前記オブジェクトのうちの前記第２のオブジェクトとに対応してなされる、請求項２５〜２９のいずれか１項に記載のコンピュータ実装された方法。
【請求項３１】
前記セレクタに関連付けられた前記オブジェクトタイプ、および前記クエリと一致する前記オブジェクトのタイプは、階層型タイプグラフのノードであり、オブジェクトのタイプは、前記オブジェクトタイプが、前記セレクタの前記オブジェクトタイプと同じ、または前記セレクタの前記オブジェクトタイプのサブタイプである場合に限り、前記セレクタの前記オブジェクトタイプと一致する、請求項２５〜３０のいずれか１項、特に請求項６に記載のコンピュータ実装された方法。
【請求項３２】
前記結果セットを修正するステップは、前記ユーザと他のユーザとの間のつながり、前記ユーザと前記ソーシャルネットワーキングシステム上のページとの間のつながり、前記ユーザと前記ソーシャルネットワーキングシステム上のメディアアイテムとの間のつながり、前記ユーザと前記ソーシャルネットワーキングシステム上でホストされるアプリケーションとの間のつながり、前記ユーザと前記ソーシャルネットワーキングシステムによって定義されるグループとの間のつながり、またはこれらの任意の組合せに少なくとも部分的に基づく、請求項２５〜３１のいずれか１項に記載のコンピュータ実装された方法。
【請求項３３】
実行形式のコンピュータプログラムの命令を記憶するコンピュータ可読記憶媒体であって、前記命令は、実行されると請求項２５〜３２のいずれか１項に記載の方法を実装する、コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にコンピュータデータの記憶および取り出しの分野に関し、より詳細には、ソーシャルネットワーキングシステム内のオブジェクトの検索を実行することに関する。
【背景技術】
【０００２】
現在のコンピューティングシステムは膨大な量のデータを記憶し、その結果、ユーザの関心に関連する情報を突き止める効率的な方法をユーザに提供することがますます重要になっている。大量の情報を伴う分野の１つはソーシャルネットワーキングである。ソーシャルネットワーキングシステムは、ユーザが、他のユーザを友達として指定すること（または他の方法で他のユーザとつながるもしくは関係の形成をすること）、メディアアイテムを提供しメディアアイテムと対話すること、アプリケーションを使用すること、グループに参加すること、イベントへの参加をリストに記載し確認すること、ページを作成すること、ならびにソーシャル（ネットワーク上の）対話を促進する他のタスクを行うことを可能にする。これらの各タスクは種々のデータオブジェクトを伴うことがあるので、ソーシャルネットワーキングシステムは、システムによって追跡されるまたは他の方法で使用される大量の情報セットの中から関連情報をユーザが突き止めるのを助けるシステムに対する需要に適した例である。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
ソーシャルネットワーキングシステム上の情報の検索は、時として特定のコンテキスト内で行われる。たとえば、ユーザは、レストランに関するページ上に位置するデータ検索領域内においていくつかの検索を指定する。コンテキスト（たとえばレストラン）に特に関連するオブジェクトを得るまたは強調するように検索をカスタマイズすることが有用であるとされるが、ソーシャルネットワーキングシステム上で現在提供可能な検索機能は、通常、検索コンテキストが何であるかを決定する方法や検索を行うときにその検索コンテキストを考慮に入れる方法を含まない。このため、所与の検索に特に関連性がある情報を突き止めることが、より困難になる。
【課題を解決するための手段】
【０００４】
本発明の実施形態は、ソーシャルネットワーキングシステムのオブジェクトを検索するために使用されるセレクタ構成要素に関連付けられた検索コンテキストを学習および／または適用することによって、ユーザに関連する可能性が高い情報を検索するソーシャルネットワーキングシステムのユーザの能力を向上する。検索コンテキストは、個々のセレクタの使用に特有であるので、セレクタを埋め込むページ全体またはページのセットのコンテキストほどに一般的である必要はない。したがって、たとえば、特定のレストランに関係するページに対する任意の検索を、レストランのメニューに関連付けられた（たとえば、「メニューを検索」というタイトルの）データ検索領域内に埋め込まれた第１のセレクタを使用して指定することができ、同じページに対する異なる検索を、レストランで行われる特定のイベントに関連付けられた（たとえば、「今後のイベントを検索」というタイトルの）データ検索領域内の第２のセレクタを使用して指定する。
【０００５】
一実施形態では、ソーシャルネットワーキングシステムは、セレクタを使用して行われた以前の検索結果からのユーザ選択を監視することによって、セレクタのコンテキストを学習する。たとえば、ユーザが新しく追加されたセレクタを使用してオブジェクトを検索
し、大抵の場合、結果としてユーザが特定のタイプを有するオブジェクトを選択するとした場合、そのタイプが、セレクタコンテキストにおける主なタイプとしてセレクタに関連付けられ得る。
【０００６】
セレクタのコンテキストは、（それが、ソーシャルネットワーキングシステムにより自動的に学習される、ユーザにより手動で設定される、またはそれらの任意の組み合わせであるかに関わらず、）ユーザに検索結果として、表示されるオブジェクトを制御するために、またオブジェクトが表示される様式を制御するために、種々の手法で適用され得る。たとえば、一実施形態では、セレクタと一致するタイプを有しないオブジェクトが、そのセレクタによってもたらされる検索結果から除去される。一実施形態では、セレクタによってもたらされる検索結果におけるオブジェクトが、オブジェクトのタイプがセレクタコンテキストのタイプと一致するか否か、またはどの程度一致するかに基づいてランク付けされる。
【図面の簡単な説明】
【０００７】
【図１Ａ】あるコンテキストにおけるセレクタの使用の例を示す図。
【図１Ｂ】別のコンテキストにおけるセレクタの使用の例を示す図。
【図２】一実施形態によるコンピューティング環境のハイレベルブロック図。
【図３】一実施形態による、ソーシャルネットワーキングシステムのページおよび他のオブジェクトを分類するための階層の例を示す図。
【図４】一実施形態による、所与のセレクタに関連付けられたタイプを学習するときに行われる動作を示すフローチャート。
【図５】一実施形態による、オブジェクトの検索に応答してセレクタによって行われる動作を示すフローチャート。
【図６】架空の書店に関する管理者ユーザインタフェースのサンプルページを示す図。
【発明を実施するための形態】
【０００８】
図面は、単に例示のために本発明の実施形態を図示する。当業者には、本明細書に説明される本発明の原理から逸脱することなく使用され得る本明細書に例示される構造および方法の代替実施形態が以下の説明から容易に認識されるであろう。
【０００９】
例示的ユーザインタフェース
図１Ａおよび図１Ｂは、「セレクタ」、すなわち、検索が行われるコンテキストに特に関連するソーシャルネットワーキングシステムのオブジェクトをユーザが検索し突き止めることを可能にするソーシャルネットワーキングシステムのユーザインタフェース要素の例を示す、スクリーンショットである。たとえば、図１Ａは、玩具店に関するウェブベースのユーザインタフェース１０１の一部分を示す。ユーザインタフェース１０１は、テキスト入力領域として実装されるセレクタ１０５を含み、その中に、ユーザは、文字「ｒａ」、すなわち、玩具店の在庫のうちのアイテムに対する（おそらくより長い）クエリの最初の２文字を入力する。セレクタ１０５への文字の入力に応答して、ソーシャルネットワーキングシステムは、対応する検索結果１１０のセットを提供しており、検索結果の各アイテムが、入力された文字と一致する。（具体的には、検索結果１１０における各オブジェクトは、入力された文字がその接頭部（ｐｒｅｆｉｘ）となる単語の名前を有する。たとえば、入力された文字「ｒａ」は、検索結果１１０における単語「Ｒａｚｏｒ」、「ｒａｙ」、「ｒａｃｅ」、「Ｒａｎｄｏｍｉｚｅｄ」、および「Ｒａｙ」の接頭部である。）ソーシャルネットワーキングシステムのオブジェクトを取り出すためのセレクタ１０５の使用により、少数の文字をユーザが入力しただけであっても、玩具店ウェブページによって、ユーザが何を検索しているかに関してユーザに示唆を迅速に与えることが可能となり、これは、ユーザにとって非常に便利である。
【００１０】
セレクタ１０５は、玩具店に関するページのコンテキスト内に存在するが、より具体的には、玩具店の在庫の検索に対応することに留意されたい。それに対し、ソーシャルネットワーキングシステムは、広く様々なタイプ（たとえば、人、場所、イベント、または物）の莫大な数の異なるオブジェクト（たとえば、１００万または１０億）に対するデータを含むことができ、それらのすべてが検索に関連するというわけではない。したがって、単にセレクタ１０５に入力された文字に単純に基づいてオブジェクトを選択するのではなく、検索コンテンツに関連するオブジェクトを強調することが、ユーザにとって特に有益であろう。
【００１１】
したがって、セレクタ１０５の検索結果１１０は、オブジェクト１１０Ａ〜１１０Ｄに対応するｒａｚｏｒ  ｓｃｏｏｔｅｒ（レーザスクータ）、ｒａｙ  ｇｕｎ（光線銃）、ｃａｒ  ｒａｃｅ  ｔｒａｃｋ（カーレーストラック）、およびｇａｍｅ（ゲーム）などの、製品に対応するオブジェクトを強調する。検索結果１１０はまた、入力された文字と一致する名前を有する人物（「Ｒａｙ  Ａｌｌｅｎｄ（レイ・オールエンド）」という名前の架空の有名人）に関するウェブページを含み、これは、その有名人の絶大な人気ゆえに含まれる。しかしながら、そのページは、期待されるタイプでない（すなわち、製品ではないページである）ので、検索結果において製品より低いランクを与えられており、したがって、検索結果にこのページを含むことにより、ユーザがおそらく探しているもの（すなわち、製品）からユーザの気が散ることはない。
【００１２】
図１Ｂは、異なるコンテキストにおけるセレクタの使用を示すスクリーンショットである。具体的には、図１Ｂは、有名人のサインを販売する商業用ウェブサイトに関するウェブベースのユーザインタフェース１５１を示す。したがって、図１Ａの玩具店のユーザがセレクタ１０５を使用して製品（たとえば、玩具）を検索する傾向があるのに対して、図１Ｂのサインのウェブサイトのユーザは代わりに人（すなわち、ユーザがそのサインに関心を持つ有名人）を検索する傾向があるはずである。したがって、図１Ｂの関心の対象は、通常は、人またはそれらの人を専ら対象とするウェブページであろう。
【００１３】
したがって、同じ文字（すなわち、「ｒａ」）が図１Ｂのセレクタ１５５に入力されても、それらは図１Ａと異なる検索結果のセットをもたらす。具体的には、結果１６０は、入力された文字と一致する名前を有する人々（すなわち、「Ｒａｙ  Ａｌｌｅｎｄ（レイ・オールエンド）」、「Ｒａｍｏｎ  Ｊｏｎｅｓ（レイモン・ジョーンズ）」、および「Ａｌｉｃｅ  Ｒａｆｆｅｒｔｙ（アリス・ラフェルティ）」）を専ら対象とする３つのウェブページを含み、その後に、入力された文字と一致する名前を有するビデオゲーム（「Ｄａｙｔｏｎａ  Ｒａｃｅｒ  ２０１２（デイトナ・レイサー２０１２）」）が続き、これは、その広く世界的な人気ゆえに含まれる。
【００１４】
セレクタの例をここで示したので、次に、セレクタを実装するためのシステムアーキテクチャおよび技法について記載する。
システムアーキテクチャ
図２は、一実施形態によるコンピューティング環境のハイレベルブロック図である。図２は、ネットワーク２７０によって接続されたソーシャルネットワーキングシステム２００、クライアントデバイス２８０、および第三者のウェブサイト２９０を示す。クライアントデバイス２８０のユーザは、ウェブブラウザなどのアプリケーションを通じてソーシャルネットワーキングシステム２００と対話して、コンテンツの閲覧、メッセージの投稿、関心のある人々または他のコンテンツについてのクエリの実行などの操作を行う。また、ユーザは、クライアントデバイス２８０を使用して第三者のウェブサイト２９０と対話する。さらに、第三者のウェブサイト２９０もソーシャルネットワーキングシステム２００と対話して、ソーシャルネットワーキングシステムのデータを直接的または間接的に得
るまたは表示する。
【００１５】
ソーシャルネットワーキングシステム２００は、ソーシャルネットワーキング環境においてまたはそれによって表されるオブジェクト、およびオブジェクトの関係についての情報を記憶するために使用されるいくつかの構成要素を備える。ソーシャルネットワーキングシステム２００はさらに、システムのクライアント、（たとえば、対話的にシステムを使用するクライアントデバイス２８０の人間のユーザ、または外部化モジュール２５０（後でさらに説明する）を使用して情報を要求する第三者のウェブサイト２９０の構成要素など）が、関心のある情報をシステムに照会することを可能にするための構成要素を備える。
【００１６】
より具体的には、ソーシャルネットワーキングシステム２００は、ソーシャルネットワーキングシステム２００によって追跡される種々のオブジェクトに関する情報を記憶するオブジェクトストア２１０を備える。これらのオブジェクトは、ソーシャルネットワーキングシステム２００においてユーザが対話し得る様々なものを表すことができ、それらは、限定としてではなく、（たとえば、ユーザのプロフィールオブジェクトとして表される）ソーシャルネットワーキングシステムの他のユーザ２１１、アプリケーション２１２（たとえば、ソーシャルネットワーキングシステム内で支払い可能なゲーム）、イベント２１３（たとえば、ユーザが参加し得るコンサート）、ユーザが属し得るグループ２１４、ページ２１５（たとえば、架空の有名人「レイ・オールエンド」に関するページ、またはレストランの異なる態様に関するページなどの、システム上の特定の人物または組織の存在を構成するページ）、フィールド２２５（ビジネスページに記載された営業時間または電話番号などの、ページ上の意味論的に有意な情報の個別の単位）、メディアのアイテム２１６（たとえば、写真、ビデオ、音声、テキスト、または任意の他のメディアコンテンツ）、ユーザに関連付けられた場所２１７（たとえば、「米国カリフォルニア州サンノゼ」）、およびコンセプト２１８または他のアイテム（たとえば、コンセプト「ビクトリア朝文学）」または製品「レーザスクータ」に対応するオブジェクト）を非限定的に含む。一実施形態では、オブジェクトストア２１０はまた、図４に関連して後でさらに説明するように、オブジェクトストア２１０内の他のオブジェクトのクエリ、表示、および選択をするために使用されるオブジェクトである、オブジェクトセレクタ２１９を記憶する。オブジェクトストア２１０はさらに、受信トレイメッセージ、ステータス更新、コメント、メモ、および投稿など、ソーシャルネットワーキングシステム２００のユーザによって日常的に作成される他のデータを表すオブジェクトを記憶する。オブジェクトストア２１０内のオブジェクトは、ソーシャルネットワーキングシステム内に存在するエンティティ（たとえば、ソーシャルネットワーキングシステム上で提供可能なアプリケーション２１２）、ソーシャルネットワーキングシステムのドメイン外に存在する仮想エンティティ（たとえば、ウェブサイト）、または現実世界のエンティティ（たとえば、人物、スポーツチーム、もしくは小売店）を表す。
【００１７】
オブジェクトストア２１０は、アプリケーション２１２のコード、または画像メディアアイテム２１６に関連付けられた画像データなど、ソーシャルネットワーキングシステム２００内に存在するオブジェクトのすべてを記憶する。あるいは、ソーシャルネットワーキングシステム２００の外部に存在する仮想エンティティについて、オブジェクトストア２１０は、外部メディアアイテム２１６のユニフォームリソースロケータ（ＵＲＬ）などのエンティティに対する任意の形態のポインタまたは参照を含む。さらに、オブジェクトストア２１０は、オブジェクトに関連付けられたメタデータ、たとえば、オブジェクトを記述する名前（たとえば、人物に対する「レイ・オールエンド」、アプリケーションに対する「誕生日のリマインダ」、またはグループに対する「ペンギン愛好家」）、オブジェクトを表す画像（たとえば、ユーザプロフィール写真）、あるいはユーザによってオブジェクトに割り当てられた１以上のタグ（たとえば、戦略ゲームアプリケーションに対する
テキスト文字列「ゲーム」、「犯罪」、および「戦略」）などを含んでもよい。異なるタイプのオブジェクトは、異なるタイプのメタデータ、たとえば、グループ２１４に対する関連付けられたユーザ２１１のセット、メディアアイテムオブジェクト２１６に対するメディアタイプ（たとえば、「ビデオ」）、ユーザオブジェクト２１１に対する固有ユーザＩＤおよび名前トークン（たとえば、分離した名および姓「Ｒａｙ」および「Ａｌｌｅｎｄ」）などを有する。
【００１８】
一実施形態では、オブジェクトストア２１０は、オブジェクトタイプを各オブジェクトに関連付ける。タイプは、単一のアトミックタイプとしてもよく、または関係付けられたタイプまたはサブタイプの階層を記述する複合タイプとしてもよい。たとえば、（それ以上の修飾を必要としない）ユーザオブジェクト２１１が、「ユーザ」タイプを有するのに対し、日本のレストランを表すページオブジェクト２１５は、「ページ．ビジネス．レストラン．日本（Ｐａｇｅ．Ｂｕｓｉｎｅｓｓ．Ｒｅｓｔａｕｒａｎｔ．Ｊａｐａｎｅｓｅ）」タイプを有することが可能であり、このタイプは、オブジェクトがページであることを表し、より具体的にはビジネスを表すページ、さらに具体的にはレストランのビジネス、さらにより具体的には日本のレストランのビジネスを表す。
【００１９】
一実施形態では、ソーシャルネットワーキングシステム２００は、ページ２１５または他のタイプのオブジェクト、および個別ページ２１５内のフィールド２２５などを分類するために使用できる、タイプグラフ２２１内のオブジェクトの種々のタイプの関係をキャプチャする。図３は、タイプグラフ２２１のそのような階層の一例を示す。この例では、「オブジェクト」は、すべての他のタイプがそこから派生する汎用的に適用可能なタイプであり、「ページ」３０２（ページオブジェクト２１５のタイプ）および「コンセプト」３０４（コンセプトオブジェクト２１８のタイプ）は、オブジェクトストア２１０内の２つのタイプのオブジェクトである。また、「ビジネス」３０５、「芸術」、および「スポーツ」は、広範なトップレベルのタイプ２１８であり、「ビジネス」タイプは、「レストラン」および「書店」サブタイプ（商業エンティティの２つの例）を有し、「レストラン」はさらに、（レストランが専門とする異なる料理のタイプを表す）「日本」および「イタリア」サブタイプを有する。同様に、さらに「コンセプト」タイプは、（販売用のアイテムを表す）「製品」サブタイプを有し、さらに「製品」は、それ自体の（販売用の特定のタイプのアイテムを表す）「玩具」サブタイプを有する。このように、階層は、異なるタイプを他のタイプの一般的化したものまたは特化したものとして関係付ける。
【００２０】
一実施形態では、タイプグラフ２２１におけるページ２１５に適用可能な各タイプ（たとえば、図３のページタイプ３０２、およびそれの種々のサブタイプ）は、ページタイプが有するまたは有し得る特性を指定する関連付けられたフィールドタイプ３０３を有する。図３の例では、たとえば、「ビジネス」ページタイプ３０５は、関連付けられた「地図」、「時間」、および「電話」３０６フィールドタイプを有し、これらのタイプは、それぞれ、ビジネスの場所の地図、ビジネスが顧客に開かれた時間帯、およびビジネスの連絡できる電話番号を表す。さらに、「レストラン」ページタイプ３０７は、所与のレストランが提供する食べ物アイテムのセットを表す関連付けられた「メニュー」フィールドタイプを有する。一実施形態では、フィールドタイプ３０３自体がコンセプト３０４として実装される。一実施形態では、たとえば、親タイプの「ビジネス」の地図、時間、および電話フィールドを「レストラン」ページタイプ３０７も有するように、「子」タイプがそれらの「祖先」タイプのフィールドを継承する。
【００２１】
一実施形態では、階層は、ソーシャルネットワーキングシステム２００のオペレータによって手動で作成される。一実施形態では、階層は、部分または全体が動的に生成される。たとえば、後述の図６の記載には、タイプグラフ２２１におけるフィールド２２５の他のタイプとの動的関連付けの説明がある。
【００２２】
図３の階層は、単純に例示を目的としており、実際は、タイプの階層は、任意の手法で配置された任意の数のタイプおよび／またはフィールドを有してよいことが理解されるであろう。
【００２３】
図２を再び参照すると、一実施形態では、ソーシャルネットワーキングシステム２００は、オブジェクトストア２１０のオブジェクトを「ソーシャルグラフ」内の互いにリンクされたノードとして表すグラフ情報ストア２２０をさらに備える。したがって、グラフ情報ストア２２０は、種々のオブジェクトノード同士を接続するエッジとして表されるオブジェクト間の関係に関する情報を備える。ソーシャルグラフ内のエッジの種々の例には、２つのユーザがソーシャルネットワーキングシステムにおいて関係を有する（たとえば、友達である、または通信し、他人のプロファイルを閲覧し、もしくは任意の手法で対話した）ことを表す、ユーザオブジェクト２１１の間のエッジ、ユーザがアプリケーションを使用したことを表す、ユーザオブジェクト２１１とアプリケーションオブジェクト２１２の間のエッジ、ユーザがグループに属することを表す、ユーザオブジェクト２１１とグループオブジェクト２１４の間のエッジ、ならびに、ユーザがページを閲覧したことを表す、ユーザオブジェクト２１１とページオブジェクト２１５の間のエッジが含まれる。
【００２４】
たとえば、あるユーザ２１１がソーシャルネットワーキングシステムにおいて別のユーザと関係を確立した場合、これら２つのユーザは、それぞれノードとして表され、そのユーザ間のエッジは、確立された関係を表し、このとき、これら２つのユーザは、ソーシャルネットワークシステムにおいてつながっていると言う。この例を続けると、これらのユーザの一方が、ソーシャルネットワーキングシステム内で他方のユーザにメッセージを送ることがある。メッセージを送るこの行為は、ソーシャルネットワーキングシステムによって記憶および／または追跡され得るそれら２つのノードの間の別のエッジである。メッセージ自体がノードとして扱われてもよい。別の例では、あるユーザが、ソーシャルネットワーキングシステムによって保持される画像に別のユーザをタグ付けする。このタグ付けアクションは、ユーザの間のエッジ、ならびに各ユーザとノードである画像との間のエッジを作成する。さらに別の例では、ユーザがイベントに参加することを確認する場合、ユーザおよびイベントはノードであり、そこでユーザがイベントに参加するか否かの標識がエッジである。したがって、ソーシャルグラフを使用して、ソーシャルネットワーキングシステムは、多くの異なるタイプのオブジェクトおよびエッジ（これらのオブジェクトの間の対話およびつながり）を追跡し、それにより、ソーシャルで関連する情報の極めて豊富な記憶を保持する。
【００２５】
一実施形態では、グラフ情報ストア２２０内のエッジは、関係のタイプを記述するラベル（たとえば、２つのユーザオブジェクトの間のラベルとして「友達」）などの関連付けられたメタデータ、および／または関係の強さを数値化する値を有する。さらに、任意の２つのオブジェクトの間の関係度または「距離」を、オブジェクト間の最短経路上のエッジの数を決定することによって突き止める。たとえば、ユーザの間の（たとえば、友達関係を示す）エッジを有する２つのユーザオブジェトは、１の関係度（または「距離」）を有し、一次つながりと考えられる。同様に、ユーザオブジェクトＡがユーザオブジェクトＢの一次つながりであるが、ユーザオブジェクトＣの一次つながりでなく、ＢがＣの一次つながりである場合、オブジェクトＡおよびＣは、ＣがＡの二次つながりである（逆も同様である）ことを示す２の関係度を有する。
【００２６】
ページ２１５は、対応する特定のタイプに関連付けられてもよく、たとえば、日本料理を専門とする特定のレストランビジネスを専ら対象とするページが、図３に示すように、特定のタイプである「オブジェクト．ページ．ビジネス．レストラン．日本（Ｏｂｊｅｃｔ．Ｐａｇｅ．Ｂｕｓｉｎｅｓｓ．Ｒｅｓｔａｕｒａｎｔ．Ｊａｐａｎｅｓｅ）」に関連
付けられる。したがって、一実施形態では、グラフ情報ストア２２０は、ページ−タイプ関連付け２２２のセットを含み、各関連付けが、特定のページ２１５を対応するタイプに関係付ける。
【００２７】
一実施形態では、ページ−タイプ関連付け２２２は、ページの作成者によって手動で指定される。１つのそのような実施形態では、ページ作成時に、ソーシャルネットワーキングシステム２００は、ページが表すコンセプト２１８を指定する機会をページ２１５の作成者に与え、それに応じてページ−タイプ関連付け２２２が更新される。一実施形態では、ソーシャルネットワーキングシステム２００は、タイプグラフ２２１によって具現されるタイプ／サブタイプ関係に対応する一連の選択肢を、ページの作成者に提示する。図３の例を参照すると、ソーシャルネットワーキングシステム２００は、まず、日本のレストランに関するページを作成するページ作成者に、ページがビジネス、芸術、またはスポーツに関するものであるかという選択肢を提示する。「ビジネス」という回答に応答して、ソーシャルネットワーキングシステム２００は、より具体的にページがレストランまたは書店に関するものであるかという選択肢を作成者に提示し、以下同様に、最終タイプである「日本」に到達するまで行う。（一実施形態では、タイプは、オブジェクト−ページ−ビジネス−レストラン−日本（Ｏｂｊｅｃｔ−Ｐａｇｅ−Ｂｕｓｉｎｅｓｓ−Ｒｅｓｔａｕｒａｎｔ−Ｊａｐａｎｅｓｅ）のように、タイプおよびサブタイプの「経路」全体として表される。）
セレクタ２１９は、任意の数の異なるタイプのページ１２５に埋め込まれてもよく、各ページは潜在的に異なるコンテキストを表す。さらに、異なるセレクタが同じページに埋め込まれてもよく、たとえば、レストランページ上の１つのセレクタは、メニュー上の食べ物アイテムを選択するためのものであり、もう１つは、レストランで一般的に再生される異なる歌を選択するためのものである。一実施形態では、異なるセレクタの異なるコンテキストを追跡するために、グラフ情報２２０は、特定のセレクタ２１９と、セレクタ出力に影響するコンテキストとして作用する１以上の対応するタイプのセットとの間の関連付けを指定する、セレクタ−タイプ関連付け２２３を追加として備える。たとえば、図１Ａを再び参照すると、セレクタ１０５の目的が、購入される玩具に関連するオブジェクトの名前を選択することであるとき、セレクタ１０５を、図３の「製品」タイプを含むコンテキスト、またはそのより具体的な「玩具」サブタイプに関連付ける。これに対して、その目的が有名人の名前を選択することであるとき、図１Ｂのセレクタ１５５を、図３の「ユーザ」または「ページ」タイプに関連付ける（たとえば、ソーシャルネットワーキングシステム２００のユーザ２１１、または専ら有名人に関するページ２１５）。
【００２８】
セレクタの実装
セレクタ−タイプ関連付け２２３は、異なる実施形態で異なる方法で決定され得る。たとえば、一実施形態では、ページ作成者は、たとえば、タイプグラフ２２１に基づく一連の質問に答えることにより、ページ作成者がそのページ２１５に追加する各セレクタ２１９に対する１以上の関連付けられたタイプを手動で指定する。（たとえば、セレクタ２１５に対するタイプは、「ユーザは、他のユーザ、ページ、フィールド、それともコンセプトを探し出すことを望みますか？」、「コンセプトは、製品それとも文学作品に関係しますか？」、「製品は、玩具それともハードウェアですか？」などの一連の質問によって得る。）
多くの場合、ページ作成者がセレクタに関連付けられたタイプを手動で指定することが適切である。しかしながら、他の事例において、ページ作成者は、関連付けられたタイプを指定するために時間を費やすことを望まないことがあり、またはページ作成者は、セレクタが一般的にどのタイプのオブジェクトを選択するために使用されることになるかを事前に知らないことがある。したがって、別の実施形態では、ソーシャルネットワーキングシステム２００は、セレクタコンテキスト（すなわち、セレクタを使用した以前のユーザ選択に基づく所与のセレクタに特に関連性がある１以上のタイプ）を学習する、セレクタ
コンテキスト学習モジュール２６０を備える。この実施形態では、ページ作成者は、手動で指定されたコンテキストを必要とせずに、特定のセレクタをページ２１５に追加する。結果として、ユーザがセレクタを使用してオブジェクトを選択したとき、セレクタは、最初はコンテキストに基づいて検索結果を調節しない。しかしながら、セレクタコンテキスト学習モジュール２６０は、セレクタ結果セットから選択されたオブジェクトのタイプを監視し、異なる選択されたタイプの数に基づいてセレクタに関連付けられるべきタイプを決定する。
【００２９】
図４は、一実施形態による、所与のセレクタ２１９に関連付けられたタイプを学習するときにセレクタコンテキスト学習モジュール２６０が行う動作を示すフローチャートである。最初は、セレクタに関連付けられたコンテキスト（すなわち、オブジェクトタイプ）が存在しない。セレクタ２１９は、図１Ａで入力された文字「ｒａ」などの、入力を受け取る（４１０）。次いで、セレクタ２１９は、入力された文字から始まる少なくとも１つの単語の名前を有するすべてのオブジェクト（またはその一部のサブセット）などの、受け取った入力と一致するオブジェクトからなる結果セットを識別する（４２０）。あるいは、オブジェクトの名前は、入力された文字から始まる必要がなく、オブジェクトの名前内の任意の場所に入力された文字を有すればよく、たとえば、「ｒａ」は「Ｒａｙ（レイ）」だけでなく「Ｇｒａｐｅ（グレープ）」にも一致する。
【００３０】
結果セットを識別する（４２０）かつ／または修正するとき、セレクタ２１９は、結果セット内の種々のオブジェクトに対するユーザに関する推定される度合いを決定するために使用できる、クエリ入力を提供するユーザに関するソーシャルネットワーキングシステム２００内の情報を、任意に考慮することもできる。このユーザ情報は、ユーザが直接的または間接的に友達関係を有する他のユーザ２１１などのグラフ情報ストア２２０におけるユーザのつながり、ユーザが閲覧しているメディアアイテム２１６、ならびにユーザと結果セット内のオブジェクトとの間の地理的距離またはグラフ距離などを含み得る。たとえば、図１Ｂを再び参照すると、人物「Ｒａｍｏｎ  Ｊｏｎｅｓ」に関するウェブページ１６０Ｂは、クエリを入力するユーザ、および２以下の関係度を有するそのユーザのつながり（たとえば、友達）のいずれも、ページ１６０Ｂと対話していない、またはページによって表されるコンセプト２１８に対する関心を示していないなどの場合、結果１６０から省略されてもよい。また、ユーザ情報は、投票する、ユーザのプロフィールのデータを指定する、および特定のページを閲覧するなど、ソーシャルネットワーキングシステム２００上でユーザが行ったアクションを含むこともできる。（いくつかの実施形態では、ソーシャルネットワーキングシステム２００のオブジェクトストア２１０内の別のオブジェクトに対するユーザ２１１のアクションは、ユーザ２１１とページ２１５との間のユーザが閲覧したページを表すつながりなどの、グラフ情報２２０におけるつながりとして表される。）
結果セット内のオブジェクトは、多くの方法でランク付けされることが可能であり、たとえば、すべてのユーザの間のオブジェクトの世界的な人気や、グラフ情報ストア２２０のオブジェクトグラフにおける検索するユーザからオブジェクトまでの距離などの要因に応じてランク付けされる。
【００３１】
次いで、セレクタ２１９は、結果セット内のオブジェクトのうちの１つのユーザ選択を受け取り（４３０）、（たとえば、オブジェクトに関連付けられたタイプ属性を検査することにより）その選択されたオブジェクトに関連付けられたタイプを決定する（４４０）。
【００３２】
動作４１０〜４４０は、コンテキスト学習モジュール２６０がセレクタに対する関連付けられたタイプを識別するために十分なデータを得るまで、複数回行われてもよい。たとえば、一実施形態では、セレクタコンテキスト学習モジュール２６０は、関連付けられた
オブジェクトが、５０％を超える回数かつ少なくとも合計３回、セレクタを使用して選択される任意のタイプを、セレクタに対する第１の関連付けられたタイプとして識別し、２５％を超える回数かつ少なくとも合計２回、セレクタを使用して選択されるタイプを、第２のタイプとして識別する。コンテキスト学習モジュール２６０は、１以上の関連付けられたタイプを識別するために十分なデータを有すると、セレクタ−タイプ関連付け２２３を通じてセレクタ２１９とタイプを関連付ける。
【００３３】
一実施形態では、セレクタコンテキスト学習モジュール２６０は、任意のユーザによるオブジェクトのすべての選択を考慮し、それにより、集約的なユーザの挙動からセレクタコンテキストを決定する。他の実施形態では、セレクタコンテキスト学習モジュール２６０は、代わりに、該当セレクタに関する各ユーザの選択のみを考慮に入れることによって、それぞれのユーザについてセレクタコンテキストを個別化する。たとえば、「ビデオゲーム」と「スクータ」は両方とも、図３の一般的な「玩具」タイプのサブタイプと仮定する。さらに、特定のセレクタが「玩具」タイプに関連付けられ、特定のユーザは、通常、セレクタでの検索結果からとりわけ「ビデオゲーム」タイプの玩具を選択するが、そのセレクタのほとんどのユーザの場合はそうでないものと仮定する。そのような場合、セレクタコンテキスト学習モジュール２６０は、その特定のユーザについて、そのセレクタのタイプを「ビデオゲーム」に関連付けるが、すべてのユーザに当てはまることではない。したがって、その特定のユーザがそのセレクタにクエリを入力すると、クエリは、（そのユーザの好ましい玩具と推定される）ビデオゲームを表示するようにバイアスがかけられ、それにより、ユーザはより関連する結果を提示される。
【００３４】
図４の動作の具体的例として、図１Ａを再び参照して、玩具店の在庫を検索するために使用されるセレクタ１０５が、初期の関連付けられたコンテキストなしにページに追加されたと仮定する。セレクタ１０５が、セレクタテキスト領域内のユーザのキー入力により文字「ｒａ」を受け取る（４１０）場合、セレクタは、オブジェクトのタイプに関わらず、「ｒａ」で始まる単語を含む名前を有するオブジェクトの結果セットを識別する（４２０）。たとえば、人物「Ｒａｙ  Ａｌｌｅｎｄ（レイ・オールエンド）」に対応する結果１１０Ｅは、「玩具」タイプのオブジェクト、さらには製品というタイプに対応しなくても、その対応する人気ゆえに１番目としてランク付けされ得る。同様に、結果セットは、「動物」タイプの「Ｒａｔ（ラット）」という名前のオブジェクト、および「映画」タイプの「ＲＡＴＡＴＯＵＩＬＬＥ（ラタトゥユ）」という名前のオブジェクトを、これらのオブジェクトが「玩具」タイプではないにも関わらず、含む可能性がある。しかしながら、セレクタの最初の３回の使用の結果、セレクタ１０５がすべて「玩具」タイプであるオブジェクトの選択を受け取った（４３０）場合、セレクタコンテキスト学習モジュール２６０は、セレクタコンテキストが「玩具」タイプを含むと決定し（４４０）、「玩具」をセレクタの第１のコンテキストタイプとして関連付ける（４５０）。次いで、そのセレクタから得られた結果セットは、図１Ａの結果セットに示されるように、たとえば、結果セットにおいて「玩具」タイプのオブジェクトをより高くランク付けすることにより、「玩具」タイプに向かってバイアスがかけられる。したがって、たとえば、文字「ｒａ」についての後続のクエリは、（図１Ａに見られるように）玩具オブジェクト「Ｒａｚｏｒ  ｓｃｏｏｔｅｒ（レーザスクータ）」、「Ｒａｙ  ｇｕｎ（光線銃）」、「Ｃａｒ  ｒａｃｅ  ｔｒａｃｋ（カーレーストラック）」、および「Ｒａｎｄｏｍｉｚｅｄ  ｇａｍｅ（ランダム化ゲーム）」（ならびに、玩具でないが世界的に人気がある人物「Ｒａｙ  Ａｌｌｅｎｄ（レイ・オールエンド）」に関するページ）をもたらし、文字「ｒｏ」についてのクエリは、玩具オブジェクト「Ｒｏｃｋｅｔ（ロケット）」および「Ｒｏｂｏｔ（ロボット）」をもたらす。
【００３５】
一実施形態では、セレクタコンテキスト学習モジュール２６０は混合的な手法を採用し、セレクタに対する初期のコンテキストを割り当てるが、初期の割当てが不正確であるこ
とを示すその後のユーザ選択に従ってコンテキストを変更する。たとえば、図１Ｂのサインビジネスのページ作成者は、セレクタ１５５に対する第１のタイプを「ユーザ」（ソーシャルネットワーキングシステム２００のユーザ）に設定するのに対し、ユーザは、はるかに頻繁に、（ソーシャルネットワーキングシステムのユーザであることもそうでないこともある）関心のある有名人を専ら対象とするページ２１５に対応する「ページ」タイプのオブジェクトを選択することがある。そのような場合、セレクタコンテキスト学習モジュール２６０は、セレクタ結果セットから「ページ」タイプについてのいくつかのユーザ選択を受け取った後に、「ユーザ」から「ページ」に第１の関連付けられたタイプを変更する。別の例として、セレクタコンテキスト学習モジュール２６０は、ページのタイプに基づいてページに対するコンテキストの初期値を設定する。たとえば、「ビジネス」タイプのページに対するコンテキストの初期値は、ビジネスページ上のセレクタが一般に製品を探し出すために使用されることを反映して、「製品」タイプを含むように設定され得る。しかしながら、所与の都市における店舗の場所を識別するのに使用されることが意図されるビジネスページ上のセレクタの場合、セレクタコンテキスト学習モジュール２６０は、初期に結果セットの下部に向けて表示される場所オブジェクトのユーザ選択に基づいて、「場所」タイプを代わりに含むようにコンテキストを変更する。別の例として、セレクタコンテキスト学習モジュール２６０は、セレクタに関連付けられたタイプを完全に変更することはできないが、前述のように、たとえば、「玩具」を「ビデオゲーム」に変更するなど、単にタイプをサブタイプに絞り込む。
【００３６】
特定のセレクタ２１９が、（たとえば、セレクタコンテキスト学習モジュール２６０がコンテキストを学習することにより、）関連付けられたコンテキストを有すると、セレクタは、そのコンテキストを、より有用な検索結果をユーザに表示するために適用する。図５は、一実施形態による、オブジェクトの検索に応答してセレクタ２１９によって行われる動作を示すフローチャートである。セレクタ２１９は、図４の動作４１０〜４２０に関して上述したように、入力を受け取り（５１０）、その入力と一致するオブジェクトの結果セット識別する（５２０）。次いで、セレクタ２１９は、動作４４０に関して上述したように、結果セット内のオブジェクトのタイプを識別する（５３０）。セレクタ２１９はまた、セレクタコンテキスト学習モジュール２６０によって学習されたように、セレクタに関連付けられたコンテキストを構成する１以上のタイプを識別する（５４０）。
【００３７】
セレクタ２１９は、異なる実施形態において様々な手法でセレクタコンテキストに基づいて結果セットを修正する（５５０）。一実施形態では、セレクタ２１９は、セレクタコンテキスト内のどのタイプにも一致しないタイプを有するオブジェクトを（セレクタに入力された検索文字と一致するオブジェクトの結果セットから）除去する。（図３のような実施形態では、タイプは上位タイプおよびサブタイプに階層的に配置され、オブジェクトタイプがセレクタコンテキスト内のタイプと同じかまたはそのサブタイプである場合に、そのオブジェクトのタイプは、セレクタコンテキスト内のタイプと一致すると言われる。たとえば、図３におけるオブジェクトタイプである「レストラン」は、「レストラン」が「ビジネス」のサブタイプであるので、セレクタコンテキストタイプである「ビジネス」と一致する。
【００３８】
他の実施形態では、セレクタ２１９は、セレクタコンテキストと一致しないタイプを有する結果セットオブジェクトを除去せずに、むしろオブジェクトのランク付けスコアを調節する。たとえば、セレクタ２１９は、一致するタイプの欠如に関して、いくつかの所定の量または割合だけオブジェクトにペナルティを科す。これにより、一致するタイプを有しないオブジェクトは、セレクタコンテキストが考慮されない場合よりも、結果セット内でより低くランク付けされる傾向になる。別の実施形態では、一致するタイプを有しないオブジェクトは、第２のグループのオブジェクトに割り当てられ、第２のグループのすべてのオブジェクトは、一致するタイプを有するいずれの表示オブジェクトよりも結果セッ
ト内で先に表示されることがない。したがって、たとえば、図１Ａの有名人「レイ・オールエンド」は、タイプが「玩具」でないにも関わらず結果セット内に示されるが、「玩具」タイプの４つのすべてのオブジェクトの後に表示される。これらの手法のいずれも、他のタイプの重要なオブジェクトを引き続き表示し、他のあり得る選択肢をユーザに与えながらも、検索コンテキストに最も一致することが期待されるオブジェクトを目立つように表示する。他の選択肢を提供することにより、先の日付に一般的に選択されていたタイプと異なるタイプのオブジェクトの選択をユーザが始めた場合に、セレクタのコンテキストは経時的に再学習される。
【００３９】
セレクタ２１９はまた、そのコンテキストの一部分であるタイプにおいてランク付けスコアを調節することもできる。たとえば、第１の関連付けられたタイプと一致する結果セットのオブジェクトは、第２の関連付けられたタイプと一致する結果セットのオブジェクトよりも高くランク付けされ得る。
【００４０】
一実施形態では、オブジェクトのランク付けスコアは、単にオブジェクトタイプがセレクタコンテキスト内のタイプと一致するか否かに基づくのではなく、タイプがどの程度近く一致するかに基づいて計算される。一実施形態では、一致の近さは、タイプグラフ２２１におけるタイプ間の最短グラフ距離によって決定される。たとえば、図３を再び参照すると、特定のセレクタ２１９のコンテキストが、オブジェクト．ページ．ビジネス．レストラン．日本（Ｏｂｊｅｃｔ．Ｐａｇｅ．Ｂｕｓｉｎｅｓｓ．Ｒｅｓｔａｕｒａｎｔ．Ｊａｐａｎｅｓｅ）というタイプを有し、（テキスト文字の一致のみに基づく）初期の結果セット内のオブジェクトが、オブジェクト．ページ．ビジネス．レストラン．イタリア（Ｏｂｊｅｃｔ．Ｐａｇｅ．Ｂｕｓｉｎｅｓｓ．Ｒｅｓｔａｕｒａｎｔ．Ｉｔａｌｉａｎ）というタイプであるとした場合、近さは、２の距離、すなわち、一方のノードから最も近い共通の親へ、そこから他方のノードへと行く遷移の数を示す。
【００４１】
図２を再び参照すると、一実施形態では、ソーシャルネットワーキングシステム２００は、外部化モジュール２５０を含み、外部化モジュール２５０は、ソーシャルネットワーキングシステムの外部の第三者システムが、たとえばセレクタ２１９を通じて、関心のあるオブジェクトについてソーシャルネットワーキングシステムに照会することを可能にする。したがって、セレクタ２１９の使用は（たとえば）ソーシャルネットワーキングシステム２００自体に限定される必要がなく、むしろ任意の外部ウェブサイトが、ソーシャルネットワーキングシステムのデータを活用するカスタマイズされた検索インタフェースを作成する。
【００４２】
たとえば、一実施形態では、外部化モジュール２５０は、第三者のウェブページ上に第三者が含めるコードを提供し、このコードは、ソーシャルネットワーキングシステム２００のドメインにＵＲＬをロードするインラインフレームの作成を引き起こす。ＵＲＬ自体は、インラインフレームにおいてどのコンテンツを表示するかを決定するためにソーシャルネットワーキングシステム２００が使用できる（たとえば、キーと値の対の）情報を含む。たとえば、セレクタ２１９をインラインフレームで表示するとき、インラインフレームに対するＵＲＬは、ソーシャルネットワーキングシステム２００にどの特定のセレクタを表示すべきかを教えるセレクタ識別子を含むことができ、ソーシャルネットワーキングシステムは、その識別子を有するセレクタを通じて選ばれたオブジェクトタイプを追跡することにより、セレクタに関連付けられたオブジェクトタイプを学習することもできる。インラインフレームはソーシャルネットワーキングシステム２００のドメイン内にあるので、ソーシャルネットワーキングシステムは、たとえば、ユーザ名などの情報を得るために、ソーシャルネットワーキングシステムのユーザのクッキーにアクセスする。したがって、ソーシャルネットワーキングシステムは、任意に、グラフ情報ストア２２０からユーザのつながりにアクセスし、前述のように、セレクタを通じて入力されたクエリの結果を
修正するためにそれらを使用する。図１Ａを参照すると、玩具オブジェクトを検索するために使用されるセレクタ１０５を、たとえば、ソーシャルネットワーキングシステム２００のドメインからインフレームロードコンテンツとして実装し、玩具の販売にフォーカスした外部の第三者ウェブサイトのウェブページに埋め込む。この例では、インフレームは、ｗｗｗ．ｓｏｃｉａｌｎｅｔ．ｃｏｍにおけるソーシャルネットワークからのＩＤ１３８３９２２を有するセレクタが表示されるべきことを指定する、＜ｉｆｒａｍｅ  ｓｒｃ＝“ｈｔｔｐ：／／ｗｗｗ．ｓｏｃｉａｌｎｅｔ．ｃｏｍ／ｏｂｊｑｕｅｒｙ／ｉｄ＝１３８３９２２”＞＜／ｉｆｒａｍｅ＞などのＨＴＭＬコードによって指定され得る。
【００４３】
外部化モジュール２５０は、所与の名前の接頭部および所与のオブジェクトタイプを有するオブジェクトなどの特定の基準と一致するデータを求めて、ソーシャルネットワーキングシステム２００に明示的にコールするウェブサービスベースのＡＰＩなど、他の実施形態において他の方法で実装され得る。
【００４４】
アプリケーション：フィールド選択および学習
ページ２１５は、関連付けられたフィールド２２５、すなわち、ビジネスページの営業の時間帯を指定する「時間」フィールド、またはレストランページの主題であるレストランによって提供される食べ物を指定する「メニュー」フィールドなどの、所与のページの態様を記述するデータの個々の部分を有する。一実施形態では、種々のあり得るフィールドのそれぞれが、単にテキストまたは他の基本的データタイプの断片ではなくオブジェクトストア２１０におけるオブジェクト２２５として表され、そのため、以下ではフィールドオブジェクト２２５と称する。各フィールドオブジェクト２２５は、図３に示した「地図」、「時間」、「電話」、または「メニュー」フィールドなどの、タイプグラフ２２１における対応するフィールドタイプ３０３を有し、そのフィールドタイプに対するデータを表す１以上の値（たとえば、「電話」フィールドタイプに対するテキスト「５５５−５５５−１２３４」）を有する。
【００４５】
ソーシャルネットワーキングシステム２００は、ページ管理者用ユーザインタフェースを提供し、ページ管理者用ユーザインタフェースは、ソーシャルネットワーキングシステム上のエンティティについての異なる複数のページ２１５の管理者が、各ページ上にあるべきフィールドオブジェクト２２５または他の情報を指定することを可能にする。セレクタ２１９は、フィールドオブジェクト２２５の関連するタイプをページに追加するように迅速に指定するための１つの方法を管理者に提供する。
【００４６】
たとえば、図６は、架空の書店「Ｌｉｂ  ｂｏｏｋｓ」に関する管理者用ユーザインタフェース６００のサンプルのページを示す。ユーザは、第１の（または単一の）関連付けられたタイプの「フィールド」を持つコンテキストを有するセレクタ６０５に、文字「ｍ」を入力している。したがって、セレクタ６０５は、入力された文字「ｍ」と一致するタイプグラフ２２１に記憶されたフィールドオブジェクト３０３の結果セット６０６（すなわち、ユーザに場所の地図を提供するための「Ｍａｐｓ（地図）」フィールド、ミュージックジャンルをリストするための「Ｍｕｓｉｃ  ｌｉｓｔ（ミュージックリスト）」フィールド、および食べ物のタイプをリストするための「Ｍｅｎｕ（メニュー）」フィールド）を表示しており、フィールドタイプ３０３以外のオブジェクトを除去している（またはそれらに低いランクを割り当てている）。次いで、管理者は、フィールドオブジェクト２２５の適用可能なタイプを選択して、ソーシャルネットワーキングシステム２００上の管理者用ページに（たとえば、地図フィールドを）追加する。
【００４７】
一実施形態では、ソーシャルネットワーキングシステム２００は、フィールド学習モジュール２６５をさらに備え、フィールド学習モジュール２６５は、管理者のページ２１５について（たとえば、セレクタ１１９を通じて）管理者によって選択されたフィールドタ
イプ３０３を識別し、それらのフィールドタイプとページとの間の関連付けを形成する。具体的には、ソーシャルネットワーキングシステム２００は、グラフ情報ストア２２０にページ−フィールド関連付け２２４のセットを備え、そのような各関連付けは、特定のページタイプ３０２（たとえば、ビジネスタイプ３０５のページ）を、ページタイプとの関連付けの少なくとも所定の度合いに対するしきい値を有し、したがってそのページタイプに適切と考えられる特定のフィールドタイプ３０３に関係付ける。一実施形態では、フィールド学習モジュール２６５は、管理者が、特定のフィールドタイプ３０３を、ページ−フィールド関連付け２２４においてそのフィールドタイプにまだ関連付けられていないタイプのページに追加するたびに、注目する。次いで、フィールドタイプがそのページタイプに十分な回数（たとえば、最小数、そのタイプの総ページの最小割合）追加されて関連付けの度合いのしきい値が確立された後、フィールド学習モジュール２６５は、ページ−フィールド関連付け２２４においてそのフィールドタイプ３０３をそのページタイプ３０２に関連付ける。
【００４８】
たとえば、ビジネスページタイプ３０５が最初に作成されたとき、それは、ビジネスの電話番号を表す電話フィールドタイプ３０６に関連付けを有しないとする。しかしながら、何人かの管理者が、電話フィールドタイプ３０６をビジネスタイプ（またはレストランなどのそのサブタイプ）のページに追加した後、フィールド学習モジュール２６５は、ビジネスページタイプ３０５と電話フィールドタイプ３０６の間の関連付け３０６Ａを作成する。
【００４９】
次いで、ソーシャルネットワーキングシステム２００は、ページ−フィールド関連付け２２４を適用して、適切なフィールドタイプのフィールドをそのフィールドタイプをまだ有していないページに追加するのを開始することを含む、より有用な選択肢を管理者に提供する。一実施形態では、セレクタ２１９のコンテキストでフィールドタイプ３０３を有するセレクタ２１９は、どのフィールドタイプがそれらのセレクタが埋め込まれるページタイプに関連付けられるかに基づいて、結果のランク付けを調節する。具体的には、セレクタ２１９に対応するページのタイプに関連付けられたフィールドタイプ３０３は、それらのランク付けを上げることができ、そのページタイプに関連付けられていないフィールドタイプは、それらのランク付けを下げる。たとえば、図６の検索結果６０６における地図（Ｍａｐ）フィールドタイプは、ミュージックリスト（Ｍｕｓｉｃ  ｌｉｓｔ）フィールドタイプまたはメニュー（Ｍｅｎｕ）フィールドタイプよりも高くランク付けされることができ、その理由は、地図が図３のビジネスページタイプ３０５の既知のフィールドタイプであり、その他の２つのフィールドはそうではないからである。
【００５０】
一実施形態では、ソーシャルネットワーキングシステム２００は、ページ−フィールド関連付け２２４が所与のページタイプのページに関連付けられているとリストされる特定のフィールドを管理者が追加するように、ページの管理者に積極的に推奨する。たとえば、図６では、ユーザインタフェース６００は、図３のサンプルに示されるように「電話」および「時間」はビジネスタイプのページに関連付けられることが知られているフィールドタイプであるので、電話番号フィールドおよび／またはビジネス時間フィールドを管理者が「Ｌｉｂ  ｂｏｏｋｓ」ビジネスに関するページに追加するように推奨するリンク６１０を提供する。
【００５１】
あるいは、ソーシャルネットワーキングシステム２００は、ユーザの許可を必要とせずに、そのようなフィールドを自動的に追加する。一実施形態では、フィールドタイプとページタイプとの間の関連付けは、ページ−フィールド関連付け２２４においてページタイプとフィールドタイプとの間の関連付けを作成するために必要とされるよりも大きい少なくとも所定の強さの度合いのしきい値を有する場合、フィールドタイプのインスタンスが自動的にページに追加される。たとえば、一実施形態では、強さの度合いのしきい値は、
そのフィールドのインスタンスを有するそのページタイプのページの任意の最小数（たとえば、１０００）、および、そのフィールドのインスタンスを有するそのページタイプのページの任意の最小割合（たとえば、９０％）を含む。フィールドインスタンス（たとえば、電話番号フィールド）が自動的にページに追加されると、ソーシャルネットワーキングシステム２００は、ページ管理者に、そのインスタンスに対する値（たとえば、有効な電話番号）を指定するように要求する。
【００５２】
本発明の実施形態の以上の説明は、例示の目的で提示されており、網羅的であることも、開示される形態そのものに本発明を限定することも意図していない。以上の開示に鑑みて、多くの修正形態および変形形態が可能であることを当業者であれば理解されるであろう。
【００５３】
この説明のいくつかの部分は、情報の操作のアルゴリズムおよび記号表現の点で本発明の実施形態を説明する。これらのアルゴリズム上の説明および表現は、データ処理の技術の分野における当業者によって、自らの作業の本質を他の当業者に効果的に伝えるように、一般に使用される。これらの操作は、機能的、計算的、または論理的に説明されるが、コンピュータプログラム、または等価な電気回路もしくはマイクロコードなどによって実装されるものと理解される。さらに、操作のこれらの構成を、一般性を損なうことなしに、ときとして、モジュールと呼ぶことが好都合であることも判明している。説明される操作、およびそれらに関連付けられたモジュールは、ソフトウェア、ファームウェア、ハードウェア、またはこれらの任意の組み合わせによって具現化され得る。
【００５４】
本明細書で説明される工程、動作、または処理のいずれも、１以上のハードウェアモジュールまたはソフトウェアモジュールを単独で、または他のデバイスと組み合わせて用いて、実行または実装され得る。一実施形態では、ソフトウェアモジュールは、説明される工程、動作、または処理のいずれか、あるいはすべてを実行するためにコンピュータプロセッサによって実行され得るコンピュータプログラムコードを含むコンピュータ可読媒体を備えるコンピュータプログラム製品によって実装される。
【００５５】
また、本発明の実施形態は、本明細書の動作を実行するための装置に関する場合もある。この装置は、要求される目的のために特別に構築されることが可能であり、かつ／またはこの装置は、コンピュータ内に記憶されたコンピュータプログラムによって選択的に有効化されるまたは再構成される汎用コンピューティングデバイスを備え得る。そのようなコンピュータプログラムは、コンピュータシステムバスに結合され得る、非一時的な有形のコンピュータ可読記憶媒体、または電子命令を記憶するのに適した任意のタイプの媒体に記憶され得る。さらに、本明細書で言及される任意のコンピューティングシステムは、単一のプロセッサを含んでも、より高い計算能力のために複数プロセッサ設計を用いたアーキテクチャであってもよい。
【００５６】
また、本発明の実施形態は、本明細書で説明される計算処理によってもたらされる製品に関する場合もある。そのような製品は、計算処理からもたらされる情報を備えることができ、この情報は、非一時的な有形のコンピュータ可読記憶媒体に記憶され、また、そのような製品は、本明細書で説明されるコンピュータプログラム製品または他のデータの組み合わせの任意の実施形態を含み得る。
【００５７】
最後に、本明細書で使用される用語は、主に読み易さおよび教示のために選択されており、本発明の主題を線引きするまたは限定するために選択されたものではない。したがって、本発明の範囲は、この詳細な説明によってではなく、本明細書に基づく出願に関する特許請求の範囲によって限定されることが意図される。したがって、本発明の実施形態の開示は、添付の特許請求の範囲に記載される本発明の範囲を例示することを意図するが、
限定することは意図しない。
【図１Ａ】
2015522887.tif 000003
【図１Ｂ】
2015522887.tif 000004
【図２】
2015522887.tif 000005
【図３】
2015522887.tif 000006
【図４】
2015522887.tif 000007
【図５】
2015522887.tif 000008
【図６】
2015522887.tif 000009
【国際調査報告】
2015522887.tif 000010
2015522887.tif 000011
2015522887.tif 000012