特許第6096901号(P6096901)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ フェイスブック,インク.の特許一覧

特許6096901ソーシャルネットワーキングシステムにおけるコンテキストベースオブジェクトの取り出し
<>
  • 特許6096901-ソーシャルネットワーキングシステムにおけるコンテキストベースオブジェクトの取り出し 図000002
  • 特許6096901-ソーシャルネットワーキングシステムにおけるコンテキストベースオブジェクトの取り出し 図000003
  • 特許6096901-ソーシャルネットワーキングシステムにおけるコンテキストベースオブジェクトの取り出し 図000004
  • 特許6096901-ソーシャルネットワーキングシステムにおけるコンテキストベースオブジェクトの取り出し 図000005
  • 特許6096901-ソーシャルネットワーキングシステムにおけるコンテキストベースオブジェクトの取り出し 図000006
  • 特許6096901-ソーシャルネットワーキングシステムにおけるコンテキストベースオブジェクトの取り出し 図000007
  • 特許6096901-ソーシャルネットワーキングシステムにおけるコンテキストベースオブジェクトの取り出し 図000008
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6096901
(24)【登録日】2017年2月24日
(45)【発行日】2017年3月15日
(54)【発明の名称】ソーシャルネットワーキングシステムにおけるコンテキストベースオブジェクトの取り出し
(51)【国際特許分類】
   G06F 17/30 20060101AFI20170306BHJP
【FI】
   G06F17/30 340A
【請求項の数】20
【全頁数】20
(21)【出願番号】特願2015-523228(P2015-523228)
(86)(22)【出願日】2013年7月17日
(65)【公表番号】特表2015-522887(P2015-522887A)
(43)【公表日】2015年8月6日
(86)【国際出願番号】US2013050926
(87)【国際公開番号】WO2014015059
(87)【国際公開日】20140123
【審査請求日】2016年3月2日
(31)【優先権主張番号】13/553,760
(32)【優先日】2012年7月19日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】508178054
【氏名又は名称】フェイスブック,インク.
(74)【代理人】
【識別番号】100105957
【弁理士】
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【弁理士】
【氏名又は名称】恩田 博宣
(74)【代理人】
【識別番号】100142907
【弁理士】
【氏名又は名称】本田 淳
(72)【発明者】
【氏名】マーロウ、キャメロン アレクサンダー
(72)【発明者】
【氏名】キャスカート、ロバート ウィリアム
(72)【発明者】
【氏名】ダン、ジェフリー スコット
(72)【発明者】
【氏名】サグラ、ラファエル リンデン
(72)【発明者】
【氏名】ナンダゴパル、ベンカタラマナン アイヤー
(72)【発明者】
【氏名】カー、シッダールタ
(72)【発明者】
【氏名】サン、エリック
【審査官】 齊藤 貴孝
(56)【参考文献】
【文献】 米国特許出願公開第2011/0270850(US,A1)
【文献】 特開2009−026249(JP,A)
【文献】 特表2008−508605(JP,A)
【文献】 米国特許出願公開第2011/0191364(US,A1)
【文献】 米国特許出願公開第2011/0137902(US,A1)
【文献】 米国特許第08180804(US,B1)
【文献】 特表2010−536102(JP,A)
【文献】 米国特許出願公開第2009/0037355(US,A1)
【文献】 特開2007−249600(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/30
(57)【特許請求の範囲】
【請求項1】
1以上のコンピューティングデバイスが、セレクタを含むグラフィカルユーザインタフェースを、クライアントデバイスに提供するステップであって、前記セレクタは、前記セレクタの結果セット内のユーザによる複数の以前の選択からのオブジェクトのオブジェクトタイプに基づいて、オブジェクトタイプに関連付けられる、ステップと、
前記1以上のコンピューティングデバイスが、ソーシャルネットワーキングシステムのユーザによって前記クライアントデバイス上で前記セレクタに入力されるクエリを、受け取るステップであって、前記オブジェクトタイプは、前記クエリを受け取る前に前記セレクタに関連付けられる、ステップと、
前記1以上のコンピューティングデバイスが、前記クエリと一致するオブジェクトを識別することによって、結果セットを形成するステップであって、前記オブジェクトのうちの1以上はオブジェクトタイプに関連付けられている、形成ステップと、
前記セレクタに関連付けられた前記オブジェクトタイプと前記結果セット内の前記オブジェクトの前記オブジェクトタイプとの比較、および
前記ソーシャルネットワーキングシステム上の前記ユーザのつながり
に少なくとも部分的に基づいて、前記1以上のコンピューティングデバイスが、前記結果セットを修正する、修正ステップと、
前記1以上のコンピューティングデバイスが、前記結果セットの1以上のオブジェクトを、前記セレクタに視覚的に関連する表示のために前記グラフィカルユーザインタフェースにおいて前記クライアントデバイスに提供するステップと、を含むコンピュータ実装された方法。
【請求項2】
前記1以上のコンピューティングデバイスが、前記セレクタを使用する複数のユーザからオブジェクトの複数の選択を受け取るステップと、
前記1以上のコンピューティングデバイスが、選択される前記オブジェクトに関連付けられた1以上のタイプを決定するステップと、
前記1以上のコンピューティングデバイスが、選択される前記オブジェクトに関連付けられた前記タイプに基づいて、前記セレクタに関連付けられたタイプを決定する、タイプ決定ステップと、をさらに含む請求項1に記載のコンピュータ実装された方法。
【請求項3】
前記タイプ決定ステップは、
前記選択されるオブジェクトに最も高頻度で関連付けられた最高頻度タイプを識別するステップと、
前記最高頻度タイプを、前記セレクタに関連付けられた前記オブジェクトタイプとして追加するステップと、を含む、請求項2に記載のコンピュータ実装された方法。
【請求項4】
前記修正ステップは、前記結果セットから、前記セレクタの前記オブジェクトタイプと一致しないタイプを有するオブジェクトを除去するステップを含む、請求項1に記載のコンピュータ実装された方法。
【請求項5】
前記修正ステップは、前記オブジェクトに関連付けられた前記オブジェクトタイプが、前記セレクタに関連付けられた前記オブジェクトタイプと一致するか否かに少なくとも部分的に基づいて、前記結果セット内の前記オブジェクトをランク付けするステップを含む、請求項1に記載のコンピュータ実装された方法。
【請求項6】
前記セレクタに関連付けられた前記オブジェクトタイプ、および前記クエリと一致する前記オブジェクトのタイプは、タイプグラフのノードであり、前記方法は、
前記1以上のコンピューティングデバイスが、前記セレクタに関連付けられた前記オブジェクトタイプと、前記クエリと一致する前記オブジェクトの前記タイプとの間の前記タイプグラフにおける距離を決定するステップと、
前記1以上のコンピューティングデバイスが、決定される前記距離に基づいて前記オブジェクトの前記ランク付けを決定するステップと、をさらに含む、請求項5に記載のコンピュータ実装された方法。
【請求項7】
前記修正ステップは、前記クエリと一致する前記オブジェクトのうちの第1のオブジェクトを、前記クエリと一致する前記オブジェクトのうちの第2のオブジェクトよりも高くランク付けするステップを含み、前記ランク付けは、前記セレクタに関連付けられた前記オブジェクトタイプと一致するタイプを有する、前記オブジェクトのうちの前記第1のオブジェクトと、前記セレクタの前記オブジェクトタイプと一致するタイプを有しない、前記オブジェクトのうちの前記第2のオブジェクトとに対応してなされる、請求項6に記載のコンピュータ実装された方法。
【請求項8】
前記セレクタに関連付けられた前記オブジェクトタイプ、および前記クエリと一致する前記オブジェクトの前記タイプは、階層型タイプグラフのノードであり、オブジェクトのタイプは、前記オブジェクトタイプが、前記セレクタの前記オブジェクトタイプと同じ、または前記セレクタの前記オブジェクトタイプのサブタイプである場合に限り、前記セレクタの前記オブジェクトタイプと一致する、請求項6に記載のコンピュータ実装された方法。
【請求項9】
前記グラフィカルユーザインタフェースは、ページに対するものであり、前記グラフィカルユーザインタフェースは、複数のセレクタを含み、前記複数のセレクタのうちの少なくとも2つのセレクタは、異なるオブジェクトタイプに関連付けられる、請求項1に記載のコンピュータ実装された方法。
【請求項10】
前記1以上のコンピューティングデバイスが、前記ユーザから、前記結果セットの前記オブジェクトの1つの選択を受け取るステップをさらに含む、請求項1に記載のコンピュータ実装された方法。
【請求項11】
前記ソーシャルネットワーキングシステム上の前記ユーザのつながりに少なくとも部分的に基づいて前記結果セットを修正するステップは、前記ユーザと、他のユーザとの間の
つながりに少なくとも部分的に基づく、請求項1に記載のコンピュータ実装された方法。
【請求項12】
前記ソーシャルネットワーキングシステム上の前記ユーザのつながりに少なくとも部分的に基づいて前記結果セットを修正するステップは、前記ユーザと、前記ソーシャルネットワーキングシステム上のページとの間のつながりに少なくとも部分的に基づく、請求項1に記載のコンピュータ実装された方法。
【請求項13】
前記ソーシャルネットワーキングシステム上の前記ユーザのつながりに少なくとも部分的に基づいて前記結果セットを修正するステップは、前記ユーザと、前記ソーシャルネットワーキングシステム上のメディアアイテムとの間のつながりに少なくとも部分的に基づく、請求項1に記載のコンピュータ実装された方法。
【請求項14】
前記ソーシャルネットワーキングシステム上の前記ユーザのつながりに少なくとも部分的に基づいて前記結果セットを修正するステップは、前記ユーザと、前記ソーシャルネットワーキングシステム上でホストされるアプリケーションとの間のつながりに少なくとも部分的に基づく、請求項1に記載のコンピュータ実装された方法。
【請求項15】
前記ソーシャルネットワーキングシステム上の前記ユーザのつながりに少なくとも部分的に基づいて前記結果セットを修正するステップは、前記ユーザと、前記ソーシャルネットワーキングシステムによって定義されるグループとの間のつながりに少なくとも部分的に基づく、請求項1に記載のコンピュータ実装された方法。
【請求項16】
前記セレクタを含む前記グラフィカルユーザインタフェースは、前記ソーシャルネットワーキングシステムの外部のウェブページである第三者サイトである、請求項1に記載のコンピュータ実装された方法。
【請求項17】
実行形式のコンピュータプログラムの命令を記憶する非一時的コンピュータ可読記憶媒体であって、前記命令は、
セレクタを含むグラフィカルユーザインタフェースを、クライアントデバイスに提供するための命令であって、前記セレクタは、前記セレクタの結果セット内のユーザによる複数の以前の選択からのオブジェクトのオブジェクトタイプに基づいて、オブジェクトタイプに関連付けられる、命令と、
前記クライアントデバイス上で前記セレクタに入力されるクエリを受け取るための命令であって、前記オブジェクトタイプは、前記クエリを受け取る前に前記セレクタに関連付けられる、命令と、
前記クエリと一致するオブジェクトを識別することによって、結果セットを形成するための命令であって、前記オブジェクトのうちの1以上はオブジェクトタイプに関連付けられている、命令と、
前記セレクタに関連付けられた前記オブジェクトタイプと前記結果セット内の前記オブジェクトの前記オブジェクトタイプとの比較に少なくとも部分的に基づいて、前記結果セットを修正するための命令と、
前記結果セットの1以上のオブジェクトを、前記セレクタに視覚的に関連する表示のために前記グラフィカルユーザインタフェースにおいて前記クライアントデバイスに提供するための命令と、を含む、非一時的コンピュータ可読記憶媒体。
【請求項18】
前記セレクタを使用する複数のユーザからオブジェクトの複数の選択を受け取るための命令と、
前記選択されるオブジェクトに関連付けられた1以上のタイプを決定する、タイプ決定ステップのための命令と、
前記選択されるオブジェクトに関連付けられた前記タイプに基づいて、前記セレクタに
関連付けられたタイプを決定するための命令と、をさらに含む請求項17に記載の非一時的コンピュータ可読記憶媒体。
【請求項19】
前記タイプ決定ステップは、
選択される前記オブジェクトに最も高頻度で関連付けられた最高頻度タイプを識別するステップと、
前記最高頻度タイプを、前記セレクタに関連付けられた前記オブジェクトタイプとして追加するステップと、を含む、請求項18に記載の非一時的コンピュータ可読記憶媒体。
【請求項20】
前記グラフィカルユーザインタフェースは、ページに対するものであり、前記グラフィカルユーザインタフェースは、複数のセレクタを含み、前記複数のセレクタのうちの少なくとも2つのセレクタは、異なるオブジェクトタイプに関連付けられる、請求項17に記載の非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般にコンピュータデータの記憶および取り出しの分野に関し、より詳細には、ソーシャルネットワーキングシステム内のオブジェクトの検索を実行することに関する。
【背景技術】
【0002】
現在のコンピューティングシステムは膨大な量のデータを記憶し、その結果、ユーザの関心に関連する情報を突き止める効率的な方法をユーザに提供することがますます重要になっている。大量の情報を伴う分野の1つはソーシャルネットワーキングである。ソーシャルネットワーキングシステムは、ユーザが、他のユーザを友達として指定すること(または他の方法で他のユーザとつながるもしくは関係の形成をすること)、メディアアイテムを提供しメディアアイテムと対話すること、アプリケーションを使用すること、グループに参加すること、イベントへの参加をリストに記載し確認すること、ページを作成すること、ならびにソーシャル(ネットワーク上の)対話を促進する他のタスクを行うことを可能にする。これらの各タスクは種々のデータオブジェクトを伴うことがあるので、ソーシャルネットワーキングシステムは、システムによって追跡されるまたは他の方法で使用される大量の情報セットの中から関連情報をユーザが突き止めるのを助けるシステムに対する需要に適した例である。
【発明の概要】
【発明が解決しようとする課題】
【0003】
ソーシャルネットワーキングシステム上の情報の検索は、時として特定のコンテキスト内で行われる。たとえば、ユーザは、レストランに関するページ上に位置するデータ検索領域内においていくつかの検索を指定する。コンテキスト(たとえばレストラン)に特に関連するオブジェクトを得るまたは強調するように検索をカスタマイズすることが有用であるとされるが、ソーシャルネットワーキングシステム上で現在提供可能な検索機能は、通常、検索コンテキストが何であるかを決定する方法や検索を行うときにその検索コンテキストを考慮に入れる方法を含まない。このため、所与の検索に特に関連性がある情報を突き止めることが、より困難になる。
【課題を解決するための手段】
【0004】
本発明の実施形態は、ソーシャルネットワーキングシステムのオブジェクトを検索するために使用されるセレクタ構成要素に関連付けられた検索コンテキストを学習および/または適用することによって、ユーザに関連する可能性が高い情報を検索するソーシャルネットワーキングシステムのユーザの能力を向上する。検索コンテキストは、個々のセレクタの使用に特有であるので、セレクタを埋め込むページ全体またはページのセットのコンテキストほどに一般的である必要はない。したがって、たとえば、特定のレストランに関係するページに対する任意の検索を、レストランのメニューに関連付けられた(たとえば、「メニューを検索」というタイトルの)データ検索領域内に埋め込まれた第1のセレクタを使用して指定することができ、同じページに対する異なる検索を、レストランで行われる特定のイベントに関連付けられた(たとえば、「今後のイベントを検索」というタイトルの)データ検索領域内の第2のセレクタを使用して指定する。
【0005】
一実施形態では、ソーシャルネットワーキングシステムは、セレクタを使用して行われた以前の検索結果からのユーザ選択を監視することによって、セレクタのコンテキストを学習する。たとえば、ユーザが新しく追加されたセレクタを使用してオブジェクトを検索
し、大抵の場合、結果としてユーザが特定のタイプを有するオブジェクトを選択するとした場合、そのタイプが、セレクタコンテキストにおける主なタイプとしてセレクタに関連付けられ得る。
【0006】
セレクタのコンテキストは、(それが、ソーシャルネットワーキングシステムにより自動的に学習される、ユーザにより手動で設定される、またはそれらの任意の組み合わせであるかに関わらず、)ユーザに検索結果として、表示されるオブジェクトを制御するために、またオブジェクトが表示される様式を制御するために、種々の手法で適用され得る。たとえば、一実施形態では、セレクタと一致するタイプを有しないオブジェクトが、そのセレクタによってもたらされる検索結果から除去される。一実施形態では、セレクタによってもたらされる検索結果におけるオブジェクトが、オブジェクトのタイプがセレクタコンテキストのタイプと一致するか否か、またはどの程度一致するかに基づいてランク付けされる。
【図面の簡単な説明】
【0007】
図1A】あるコンテキストにおけるセレクタの使用の例を示す図。
図1B】別のコンテキストにおけるセレクタの使用の例を示す図。
図2】一実施形態によるコンピューティング環境のハイレベルブロック図。
図3】一実施形態による、ソーシャルネットワーキングシステムのページおよび他のオブジェクトを分類するための階層の例を示す図。
図4】一実施形態による、所与のセレクタに関連付けられたタイプを学習するときに行われる動作を示すフローチャート。
図5】一実施形態による、オブジェクトの検索に応答してセレクタによって行われる動作を示すフローチャート。
図6】架空の書店に関する管理者ユーザインタフェースのサンプルページを示す図。
【発明を実施するための形態】
【0008】
図面は、単に例示のために本発明の実施形態を図示する。当業者には、本明細書に説明される本発明の原理から逸脱することなく使用され得る本明細書に例示される構造および方法の代替実施形態が以下の説明から容易に認識されるであろう。
【0009】
例示的ユーザインタフェース
図1Aおよび図1Bは、「セレクタ」、すなわち、検索が行われるコンテキストに特に関連するソーシャルネットワーキングシステムのオブジェクトをユーザが検索し突き止めることを可能にするソーシャルネットワーキングシステムのユーザインタフェース要素の例を示す、スクリーンショットである。たとえば、図1Aは、玩具店に関するウェブベースのユーザインタフェース101の一部分を示す。ユーザインタフェース101は、テキスト入力領域として実装されるセレクタ105を含み、その中に、ユーザは、文字「ra」、すなわち、玩具店の在庫のうちのアイテムに対する(おそらくより長い)クエリの最初の2文字を入力する。セレクタ105への文字の入力に応答して、ソーシャルネットワーキングシステムは、対応する検索結果110のセットを提供しており、検索結果の各アイテムが、入力された文字と一致する。(具体的には、検索結果110における各オブジェクトは、入力された文字がその接頭部(prefix)となる単語の名前を有する。たとえば、入力された文字「ra」は、検索結果110における単語「Razor」、「ray」、「race」、「Randomized」、および「Ray」の接頭部である。)ソーシャルネットワーキングシステムのオブジェクトを取り出すためのセレクタ105の使用により、少数の文字をユーザが入力しただけであっても、玩具店ウェブページによって、ユーザが何を検索しているかに関してユーザに示唆を迅速に与えることが可能となり、これは、ユーザにとって非常に便利である。
【0010】
セレクタ105は、玩具店に関するページのコンテキスト内に存在するが、より具体的には、玩具店の在庫の検索に対応することに留意されたい。それに対し、ソーシャルネットワーキングシステムは、広く様々なタイプ(たとえば、人、場所、イベント、または物)の莫大な数の異なるオブジェクト(たとえば、100万または10億)に対するデータを含むことができ、それらのすべてが検索に関連するというわけではない。したがって、単にセレクタ105に入力された文字に単純に基づいてオブジェクトを選択するのではなく、検索コンテンツに関連するオブジェクトを強調することが、ユーザにとって特に有益であろう。
【0011】
したがって、セレクタ105の検索結果110は、オブジェクト110A〜110Dに対応するrazor scooter(レーザスクータ)、ray gun(光線銃)、car race track(カーレーストラック)、およびgame(ゲーム)などの、製品に対応するオブジェクトを強調する。検索結果110はまた、入力された文字と一致する名前を有する人物(「Ray Allend(レイ・オールエンド)」という名前の架空の有名人)に関するウェブページを含み、これは、その有名人の絶大な人気ゆえに含まれる。しかしながら、そのページは、期待されるタイプでない(すなわち、製品ではないページである)ので、検索結果において製品より低いランクを与えられており、したがって、検索結果にこのページを含むことにより、ユーザがおそらく探しているもの(すなわち、製品)からユーザの気が散ることはない。
【0012】
図1Bは、異なるコンテキストにおけるセレクタの使用を示すスクリーンショットである。具体的には、図1Bは、有名人のサインを販売する商業用ウェブサイトに関するウェブベースのユーザインタフェース151を示す。したがって、図1Aの玩具店のユーザがセレクタ105を使用して製品(たとえば、玩具)を検索する傾向があるのに対して、図1Bのサインのウェブサイトのユーザは代わりに人(すなわち、ユーザがそのサインに関心を持つ有名人)を検索する傾向があるはずである。したがって、図1Bの関心の対象は、通常は、人またはそれらの人を専ら対象とするウェブページであろう。
【0013】
したがって、同じ文字(すなわち、「ra」)が図1Bのセレクタ155に入力されても、それらは図1Aと異なる検索結果のセットをもたらす。具体的には、結果160は、入力された文字と一致する名前を有する人々(すなわち、「Ray Allend(レイ・オールエンド)」、「Ramon Jones(レイモン・ジョーンズ)」、および「Alice Rafferty(アリス・ラフェルティ)」)を専ら対象とする3つのウェブページを含み、その後に、入力された文字と一致する名前を有するビデオゲーム(「Daytona Racer 2012(デイトナ・レイサー2012)」)が続き、これは、その広く世界的な人気ゆえに含まれる。
【0014】
セレクタの例をここで示したので、次に、セレクタを実装するためのシステムアーキテクチャおよび技法について記載する。
システムアーキテクチャ
図2は、一実施形態によるコンピューティング環境のハイレベルブロック図である。図2は、ネットワーク270によって接続されたソーシャルネットワーキングシステム200、クライアントデバイス280、および第三者のウェブサイト290を示す。クライアントデバイス280のユーザは、ウェブブラウザなどのアプリケーションを通じてソーシャルネットワーキングシステム200と対話して、コンテンツの閲覧、メッセージの投稿、関心のある人々または他のコンテンツについてのクエリの実行などの操作を行う。また、ユーザは、クライアントデバイス280を使用して第三者のウェブサイト290と対話する。さらに、第三者のウェブサイト290もソーシャルネットワーキングシステム200と対話して、ソーシャルネットワーキングシステムのデータを直接的または間接的に得
るまたは表示する。
【0015】
ソーシャルネットワーキングシステム200は、ソーシャルネットワーキング環境においてまたはそれによって表されるオブジェクト、およびオブジェクトの関係についての情報を記憶するために使用されるいくつかの構成要素を備える。ソーシャルネットワーキングシステム200はさらに、システムのクライアント、(たとえば、対話的にシステムを使用するクライアントデバイス280の人間のユーザ、または外部化モジュール250(後でさらに説明する)を使用して情報を要求する第三者のウェブサイト290の構成要素など)が、関心のある情報をシステムに照会することを可能にするための構成要素を備える。
【0016】
より具体的には、ソーシャルネットワーキングシステム200は、ソーシャルネットワーキングシステム200によって追跡される種々のオブジェクトに関する情報を記憶するオブジェクトストア210を備える。これらのオブジェクトは、ソーシャルネットワーキングシステム200においてユーザが対話し得る様々なものを表すことができ、それらは、限定としてではなく、(たとえば、ユーザのプロフィールオブジェクトとして表される)ソーシャルネットワーキングシステムの他のユーザ211、アプリケーション212(たとえば、ソーシャルネットワーキングシステム内で支払い可能なゲーム)、イベント213(たとえば、ユーザが参加し得るコンサート)、ユーザが属し得るグループ214、ページ215(たとえば、架空の有名人「レイ・オールエンド」に関するページ、またはレストランの異なる態様に関するページなどの、システム上の特定の人物または組織の存在を構成するページ)、フィールド225(ビジネスページに記載された営業時間または電話番号などの、ページ上の意味論的に有意な情報の個別の単位)、メディアのアイテム216(たとえば、写真、ビデオ、音声、テキスト、または任意の他のメディアコンテンツ)、ユーザに関連付けられた場所217(たとえば、「米国カリフォルニア州サンノゼ」)、およびコンセプト218または他のアイテム(たとえば、コンセプト「ビクトリア朝文学)」または製品「レーザスクータ」に対応するオブジェクト)を非限定的に含む。一実施形態では、オブジェクトストア210はまた、図4に関連して後でさらに説明するように、オブジェクトストア210内の他のオブジェクトのクエリ、表示、および選択をするために使用されるオブジェクトである、オブジェクトセレクタ219を記憶する。オブジェクトストア210はさらに、受信トレイメッセージ、ステータス更新、コメント、メモ、および投稿など、ソーシャルネットワーキングシステム200のユーザによって日常的に作成される他のデータを表すオブジェクトを記憶する。オブジェクトストア210内のオブジェクトは、ソーシャルネットワーキングシステム内に存在するエンティティ(たとえば、ソーシャルネットワーキングシステム上で提供可能なアプリケーション212)、ソーシャルネットワーキングシステムのドメイン外に存在する仮想エンティティ(たとえば、ウェブサイト)、または現実世界のエンティティ(たとえば、人物、スポーツチーム、もしくは小売店)を表す。
【0017】
オブジェクトストア210は、アプリケーション212のコード、または画像メディアアイテム216に関連付けられた画像データなど、ソーシャルネットワーキングシステム200内に存在するオブジェクトのすべてを記憶する。あるいは、ソーシャルネットワーキングシステム200の外部に存在する仮想エンティティについて、オブジェクトストア210は、外部メディアアイテム216のユニフォームリソースロケータ(URL)などのエンティティに対する任意の形態のポインタまたは参照を含む。さらに、オブジェクトストア210は、オブジェクトに関連付けられたメタデータ、たとえば、オブジェクトを記述する名前(たとえば、人物に対する「レイ・オールエンド」、アプリケーションに対する「誕生日のリマインダ」、またはグループに対する「ペンギン愛好家」)、オブジェクトを表す画像(たとえば、ユーザプロフィール写真)、あるいはユーザによってオブジェクトに割り当てられた1以上のタグ(たとえば、戦略ゲームアプリケーションに対する
テキスト文字列「ゲーム」、「犯罪」、および「戦略」)などを含んでもよい。異なるタイプのオブジェクトは、異なるタイプのメタデータ、たとえば、グループ214に対する関連付けられたユーザ211のセット、メディアアイテムオブジェクト216に対するメディアタイプ(たとえば、「ビデオ」)、ユーザオブジェクト211に対する固有ユーザIDおよび名前トークン(たとえば、分離した名および姓「Ray」および「Allend」)などを有する。
【0018】
一実施形態では、オブジェクトストア210は、オブジェクトタイプを各オブジェクトに関連付ける。タイプは、単一のアトミックタイプとしてもよく、または関係付けられたタイプまたはサブタイプの階層を記述する複合タイプとしてもよい。たとえば、(それ以上の修飾を必要としない)ユーザオブジェクト211が、「ユーザ」タイプを有するのに対し、日本のレストランを表すページオブジェクト215は、「ページ.ビジネス.レストラン.日本(Page.Business.Restaurant.Japanese)」タイプを有することが可能であり、このタイプは、オブジェクトがページであることを表し、より具体的にはビジネスを表すページ、さらに具体的にはレストランのビジネス、さらにより具体的には日本のレストランのビジネスを表す。
【0019】
一実施形態では、ソーシャルネットワーキングシステム200は、ページ215または他のタイプのオブジェクト、および個別ページ215内のフィールド225などを分類するために使用できる、タイプグラフ221内のオブジェクトの種々のタイプの関係をキャプチャする。図3は、タイプグラフ221のそのような階層の一例を示す。この例では、「オブジェクト」は、すべての他のタイプがそこから派生する汎用的に適用可能なタイプであり、「ページ」302(ページオブジェクト215のタイプ)および「コンセプト」304(コンセプトオブジェクト218のタイプ)は、オブジェクトストア210内の2つのタイプのオブジェクトである。また、「ビジネス」305、「芸術」、および「スポーツ」は、広範なトップレベルのタイプ218であり、「ビジネス」タイプは、「レストラン」および「書店」サブタイプ(商業エンティティの2つの例)を有し、「レストラン」はさらに、(レストランが専門とする異なる料理のタイプを表す)「日本」および「イタリア」サブタイプを有する。同様に、さらに「コンセプト」タイプは、(販売用のアイテムを表す)「製品」サブタイプを有し、さらに「製品」は、それ自体の(販売用の特定のタイプのアイテムを表す)「玩具」サブタイプを有する。このように、階層は、異なるタイプを他のタイプの一般的化したものまたは特化したものとして関係付ける。
【0020】
一実施形態では、タイプグラフ221におけるページ215に適用可能な各タイプ(たとえば、図3のページタイプ302、およびそれの種々のサブタイプ)は、ページタイプが有するまたは有し得る特性を指定する関連付けられたフィールドタイプ303を有する。図3の例では、たとえば、「ビジネス」ページタイプ305は、関連付けられた「地図」、「時間」、および「電話」306フィールドタイプを有し、これらのタイプは、それぞれ、ビジネスの場所の地図、ビジネスが顧客に開かれた時間帯、およびビジネスの連絡できる電話番号を表す。さらに、「レストラン」ページタイプ307は、所与のレストランが提供する食べ物アイテムのセットを表す関連付けられた「メニュー」フィールドタイプを有する。一実施形態では、フィールドタイプ303自体がコンセプト304として実装される。一実施形態では、たとえば、親タイプの「ビジネス」の地図、時間、および電話フィールドを「レストラン」ページタイプ307も有するように、「子」タイプがそれらの「祖先」タイプのフィールドを継承する。
【0021】
一実施形態では、階層は、ソーシャルネットワーキングシステム200のオペレータによって手動で作成される。一実施形態では、階層は、部分または全体が動的に生成される。たとえば、後述の図6の記載には、タイプグラフ221におけるフィールド225の他のタイプとの動的関連付けの説明がある。
【0022】
図3の階層は、単純に例示を目的としており、実際は、タイプの階層は、任意の手法で配置された任意の数のタイプおよび/またはフィールドを有してよいことが理解されるであろう。
【0023】
図2を再び参照すると、一実施形態では、ソーシャルネットワーキングシステム200は、オブジェクトストア210のオブジェクトを「ソーシャルグラフ」内の互いにリンクされたノードとして表すグラフ情報ストア220をさらに備える。したがって、グラフ情報ストア220は、種々のオブジェクトノード同士を接続するエッジとして表されるオブジェクト間の関係に関する情報を備える。ソーシャルグラフ内のエッジの種々の例には、2つのユーザがソーシャルネットワーキングシステムにおいて関係を有する(たとえば、友達である、または通信し、他人のプロファイルを閲覧し、もしくは任意の手法で対話した)ことを表す、ユーザオブジェクト211の間のエッジ、ユーザがアプリケーションを使用したことを表す、ユーザオブジェクト211とアプリケーションオブジェクト212の間のエッジ、ユーザがグループに属することを表す、ユーザオブジェクト211とグループオブジェクト214の間のエッジ、ならびに、ユーザがページを閲覧したことを表す、ユーザオブジェクト211とページオブジェクト215の間のエッジが含まれる。
【0024】
たとえば、あるユーザ211がソーシャルネットワーキングシステムにおいて別のユーザと関係を確立した場合、これら2つのユーザは、それぞれノードとして表され、そのユーザ間のエッジは、確立された関係を表し、このとき、これら2つのユーザは、ソーシャルネットワークシステムにおいてつながっていると言う。この例を続けると、これらのユーザの一方が、ソーシャルネットワーキングシステム内で他方のユーザにメッセージを送ることがある。メッセージを送るこの行為は、ソーシャルネットワーキングシステムによって記憶および/または追跡され得るそれら2つのノードの間の別のエッジである。メッセージ自体がノードとして扱われてもよい。別の例では、あるユーザが、ソーシャルネットワーキングシステムによって保持される画像に別のユーザをタグ付けする。このタグ付けアクションは、ユーザの間のエッジ、ならびに各ユーザとノードである画像との間のエッジを作成する。さらに別の例では、ユーザがイベントに参加することを確認する場合、ユーザおよびイベントはノードであり、そこでユーザがイベントに参加するか否かの標識がエッジである。したがって、ソーシャルグラフを使用して、ソーシャルネットワーキングシステムは、多くの異なるタイプのオブジェクトおよびエッジ(これらのオブジェクトの間の対話およびつながり)を追跡し、それにより、ソーシャルで関連する情報の極めて豊富な記憶を保持する。
【0025】
一実施形態では、グラフ情報ストア220内のエッジは、関係のタイプを記述するラベル(たとえば、2つのユーザオブジェクトの間のラベルとして「友達」)などの関連付けられたメタデータ、および/または関係の強さを数値化する値を有する。さらに、任意の2つのオブジェクトの間の関係度または「距離」を、オブジェクト間の最短経路上のエッジの数を決定することによって突き止める。たとえば、ユーザの間の(たとえば、友達関係を示す)エッジを有する2つのユーザオブジェトは、1の関係度(または「距離」)を有し、一次つながりと考えられる。同様に、ユーザオブジェクトAがユーザオブジェクトBの一次つながりであるが、ユーザオブジェクトCの一次つながりでなく、BがCの一次つながりである場合、オブジェクトAおよびCは、CがAの二次つながりである(逆も同様である)ことを示す2の関係度を有する。
【0026】
ページ215は、対応する特定のタイプに関連付けられてもよく、たとえば、日本料理を専門とする特定のレストランビジネスを専ら対象とするページが、図3に示すように、特定のタイプである「オブジェクト.ページ.ビジネス.レストラン.日本(Object.Page.Business.Restaurant.Japanese)」に関連
付けられる。したがって、一実施形態では、グラフ情報ストア220は、ページ−タイプ関連付け222のセットを含み、各関連付けが、特定のページ215を対応するタイプに関係付ける。
【0027】
一実施形態では、ページ−タイプ関連付け222は、ページの作成者によって手動で指定される。1つのそのような実施形態では、ページ作成時に、ソーシャルネットワーキングシステム200は、ページが表すコンセプト218を指定する機会をページ215の作成者に与え、それに応じてページ−タイプ関連付け222が更新される。一実施形態では、ソーシャルネットワーキングシステム200は、タイプグラフ221によって具現されるタイプ/サブタイプ関係に対応する一連の選択肢を、ページの作成者に提示する。図3の例を参照すると、ソーシャルネットワーキングシステム200は、まず、日本のレストランに関するページを作成するページ作成者に、ページがビジネス、芸術、またはスポーツに関するものであるかという選択肢を提示する。「ビジネス」という回答に応答して、ソーシャルネットワーキングシステム200は、より具体的にページがレストランまたは書店に関するものであるかという選択肢を作成者に提示し、以下同様に、最終タイプである「日本」に到達するまで行う。(一実施形態では、タイプは、オブジェクト−ページ−ビジネス−レストラン−日本(Object−Page−Business−Restaurant−Japanese)のように、タイプおよびサブタイプの「経路」全体として表される。)
セレクタ219は、任意の数の異なるタイプのページ125に埋め込まれてもよく、各ページは潜在的に異なるコンテキストを表す。さらに、異なるセレクタが同じページに埋め込まれてもよく、たとえば、レストランページ上の1つのセレクタは、メニュー上の食べ物アイテムを選択するためのものであり、もう1つは、レストランで一般的に再生される異なる歌を選択するためのものである。一実施形態では、異なるセレクタの異なるコンテキストを追跡するために、グラフ情報220は、特定のセレクタ219と、セレクタ出力に影響するコンテキストとして作用する1以上の対応するタイプのセットとの間の関連付けを指定する、セレクタ−タイプ関連付け223を追加として備える。たとえば、図1Aを再び参照すると、セレクタ105の目的が、購入される玩具に関連するオブジェクトの名前を選択することであるとき、セレクタ105を、図3の「製品」タイプを含むコンテキスト、またはそのより具体的な「玩具」サブタイプに関連付ける。これに対して、その目的が有名人の名前を選択することであるとき、図1Bのセレクタ155を、図3の「ユーザ」または「ページ」タイプに関連付ける(たとえば、ソーシャルネットワーキングシステム200のユーザ211、または専ら有名人に関するページ215)。
【0028】
セレクタの実装
セレクタ−タイプ関連付け223は、異なる実施形態で異なる方法で決定され得る。たとえば、一実施形態では、ページ作成者は、たとえば、タイプグラフ221に基づく一連の質問に答えることにより、ページ作成者がそのページ215に追加する各セレクタ219に対する1以上の関連付けられたタイプを手動で指定する。(たとえば、セレクタ215に対するタイプは、「ユーザは、他のユーザ、ページ、フィールド、それともコンセプトを探し出すことを望みますか?」、「コンセプトは、製品それとも文学作品に関係しますか?」、「製品は、玩具それともハードウェアですか?」などの一連の質問によって得る。)
多くの場合、ページ作成者がセレクタに関連付けられたタイプを手動で指定することが適切である。しかしながら、他の事例において、ページ作成者は、関連付けられたタイプを指定するために時間を費やすことを望まないことがあり、またはページ作成者は、セレクタが一般的にどのタイプのオブジェクトを選択するために使用されることになるかを事前に知らないことがある。したがって、別の実施形態では、ソーシャルネットワーキングシステム200は、セレクタコンテキスト(すなわち、セレクタを使用した以前のユーザ選択に基づく所与のセレクタに特に関連性がある1以上のタイプ)を学習する、セレクタ
コンテキスト学習モジュール260を備える。この実施形態では、ページ作成者は、手動で指定されたコンテキストを必要とせずに、特定のセレクタをページ215に追加する。結果として、ユーザがセレクタを使用してオブジェクトを選択したとき、セレクタは、最初はコンテキストに基づいて検索結果を調節しない。しかしながら、セレクタコンテキスト学習モジュール260は、セレクタ結果セットから選択されたオブジェクトのタイプを監視し、異なる選択されたタイプの数に基づいてセレクタに関連付けられるべきタイプを決定する。
【0029】
図4は、一実施形態による、所与のセレクタ219に関連付けられたタイプを学習するときにセレクタコンテキスト学習モジュール260が行う動作を示すフローチャートである。最初は、セレクタに関連付けられたコンテキスト(すなわち、オブジェクトタイプ)が存在しない。セレクタ219は、図1Aで入力された文字「ra」などの、入力を受け取る(410)。次いで、セレクタ219は、入力された文字から始まる少なくとも1つの単語の名前を有するすべてのオブジェクト(またはその一部のサブセット)などの、受け取った入力と一致するオブジェクトからなる結果セットを識別する(420)。あるいは、オブジェクトの名前は、入力された文字から始まる必要がなく、オブジェクトの名前内の任意の場所に入力された文字を有すればよく、たとえば、「ra」は「Ray(レイ)」だけでなく「Grape(グレープ)」にも一致する。
【0030】
結果セットを識別する(420)かつ/または修正するとき、セレクタ219は、結果セット内の種々のオブジェクトに対するユーザに関する推定される度合いを決定するために使用できる、クエリ入力を提供するユーザに関するソーシャルネットワーキングシステム200内の情報を、任意に考慮することもできる。このユーザ情報は、ユーザが直接的または間接的に友達関係を有する他のユーザ211などのグラフ情報ストア220におけるユーザのつながり、ユーザが閲覧しているメディアアイテム216、ならびにユーザと結果セット内のオブジェクトとの間の地理的距離またはグラフ距離などを含み得る。たとえば、図1Bを再び参照すると、人物「Ramon Jones」に関するウェブページ160Bは、クエリを入力するユーザ、および2以下の関係度を有するそのユーザのつながり(たとえば、友達)のいずれも、ページ160Bと対話していない、またはページによって表されるコンセプト218に対する関心を示していないなどの場合、結果160から省略されてもよい。また、ユーザ情報は、投票する、ユーザのプロフィールのデータを指定する、および特定のページを閲覧するなど、ソーシャルネットワーキングシステム200上でユーザが行ったアクションを含むこともできる。(いくつかの実施形態では、ソーシャルネットワーキングシステム200のオブジェクトストア210内の別のオブジェクトに対するユーザ211のアクションは、ユーザ211とページ215との間のユーザが閲覧したページを表すつながりなどの、グラフ情報220におけるつながりとして表される。)
結果セット内のオブジェクトは、多くの方法でランク付けされることが可能であり、たとえば、すべてのユーザの間のオブジェクトの世界的な人気や、グラフ情報ストア220のオブジェクトグラフにおける検索するユーザからオブジェクトまでの距離などの要因に応じてランク付けされる。
【0031】
次いで、セレクタ219は、結果セット内のオブジェクトのうちの1つのユーザ選択を受け取り(430)、(たとえば、オブジェクトに関連付けられたタイプ属性を検査することにより)その選択されたオブジェクトに関連付けられたタイプを決定する(440)。
【0032】
動作410〜440は、コンテキスト学習モジュール260がセレクタに対する関連付けられたタイプを識別するために十分なデータを得るまで、複数回行われてもよい。たとえば、一実施形態では、セレクタコンテキスト学習モジュール260は、関連付けられた
オブジェクトが、50%を超える回数かつ少なくとも合計3回、セレクタを使用して選択される任意のタイプを、セレクタに対する第1の関連付けられたタイプとして識別し、25%を超える回数かつ少なくとも合計2回、セレクタを使用して選択されるタイプを、第2のタイプとして識別する。コンテキスト学習モジュール260は、1以上の関連付けられたタイプを識別するために十分なデータを有すると、セレクタ−タイプ関連付け223を通じてセレクタ219とタイプを関連付ける。
【0033】
一実施形態では、セレクタコンテキスト学習モジュール260は、任意のユーザによるオブジェクトのすべての選択を考慮し、それにより、集約的なユーザの挙動からセレクタコンテキストを決定する。他の実施形態では、セレクタコンテキスト学習モジュール260は、代わりに、該当セレクタに関する各ユーザの選択のみを考慮に入れることによって、それぞれのユーザについてセレクタコンテキストを個別化する。たとえば、「ビデオゲーム」と「スクータ」は両方とも、図3の一般的な「玩具」タイプのサブタイプと仮定する。さらに、特定のセレクタが「玩具」タイプに関連付けられ、特定のユーザは、通常、セレクタでの検索結果からとりわけ「ビデオゲーム」タイプの玩具を選択するが、そのセレクタのほとんどのユーザの場合はそうでないものと仮定する。そのような場合、セレクタコンテキスト学習モジュール260は、その特定のユーザについて、そのセレクタのタイプを「ビデオゲーム」に関連付けるが、すべてのユーザに当てはまることではない。したがって、その特定のユーザがそのセレクタにクエリを入力すると、クエリは、(そのユーザの好ましい玩具と推定される)ビデオゲームを表示するようにバイアスがかけられ、それにより、ユーザはより関連する結果を提示される。
【0034】
図4の動作の具体的例として、図1Aを再び参照して、玩具店の在庫を検索するために使用されるセレクタ105が、初期の関連付けられたコンテキストなしにページに追加されたと仮定する。セレクタ105が、セレクタテキスト領域内のユーザのキー入力により文字「ra」を受け取る(410)場合、セレクタは、オブジェクトのタイプに関わらず、「ra」で始まる単語を含む名前を有するオブジェクトの結果セットを識別する(420)。たとえば、人物「Ray Allend(レイ・オールエンド)」に対応する結果110Eは、「玩具」タイプのオブジェクト、さらには製品というタイプに対応しなくても、その対応する人気ゆえに1番目としてランク付けされ得る。同様に、結果セットは、「動物」タイプの「Rat(ラット)」という名前のオブジェクト、および「映画」タイプの「RATATOUILLE(ラタトゥユ)」という名前のオブジェクトを、これらのオブジェクトが「玩具」タイプではないにも関わらず、含む可能性がある。しかしながら、セレクタの最初の3回の使用の結果、セレクタ105がすべて「玩具」タイプであるオブジェクトの選択を受け取った(430)場合、セレクタコンテキスト学習モジュール260は、セレクタコンテキストが「玩具」タイプを含むと決定し(440)、「玩具」をセレクタの第1のコンテキストタイプとして関連付ける(450)。次いで、そのセレクタから得られた結果セットは、図1Aの結果セットに示されるように、たとえば、結果セットにおいて「玩具」タイプのオブジェクトをより高くランク付けすることにより、「玩具」タイプに向かってバイアスがかけられる。したがって、たとえば、文字「ra」についての後続のクエリは、(図1Aに見られるように)玩具オブジェクト「Razor scooter(レーザスクータ)」、「Ray gun(光線銃)」、「Car race track(カーレーストラック)」、および「Randomized game(ランダム化ゲーム)」(ならびに、玩具でないが世界的に人気がある人物「Ray Allend(レイ・オールエンド)」に関するページ)をもたらし、文字「ro」についてのクエリは、玩具オブジェクト「Rocket(ロケット)」および「Robot(ロボット)」をもたらす。
【0035】
一実施形態では、セレクタコンテキスト学習モジュール260は混合的な手法を採用し、セレクタに対する初期のコンテキストを割り当てるが、初期の割当てが不正確であるこ
とを示すその後のユーザ選択に従ってコンテキストを変更する。たとえば、図1Bのサインビジネスのページ作成者は、セレクタ155に対する第1のタイプを「ユーザ」(ソーシャルネットワーキングシステム200のユーザ)に設定するのに対し、ユーザは、はるかに頻繁に、(ソーシャルネットワーキングシステムのユーザであることもそうでないこともある)関心のある有名人を専ら対象とするページ215に対応する「ページ」タイプのオブジェクトを選択することがある。そのような場合、セレクタコンテキスト学習モジュール260は、セレクタ結果セットから「ページ」タイプについてのいくつかのユーザ選択を受け取った後に、「ユーザ」から「ページ」に第1の関連付けられたタイプを変更する。別の例として、セレクタコンテキスト学習モジュール260は、ページのタイプに基づいてページに対するコンテキストの初期値を設定する。たとえば、「ビジネス」タイプのページに対するコンテキストの初期値は、ビジネスページ上のセレクタが一般に製品を探し出すために使用されることを反映して、「製品」タイプを含むように設定され得る。しかしながら、所与の都市における店舗の場所を識別するのに使用されることが意図されるビジネスページ上のセレクタの場合、セレクタコンテキスト学習モジュール260は、初期に結果セットの下部に向けて表示される場所オブジェクトのユーザ選択に基づいて、「場所」タイプを代わりに含むようにコンテキストを変更する。別の例として、セレクタコンテキスト学習モジュール260は、セレクタに関連付けられたタイプを完全に変更することはできないが、前述のように、たとえば、「玩具」を「ビデオゲーム」に変更するなど、単にタイプをサブタイプに絞り込む。
【0036】
特定のセレクタ219が、(たとえば、セレクタコンテキスト学習モジュール260がコンテキストを学習することにより、)関連付けられたコンテキストを有すると、セレクタは、そのコンテキストを、より有用な検索結果をユーザに表示するために適用する。図5は、一実施形態による、オブジェクトの検索に応答してセレクタ219によって行われる動作を示すフローチャートである。セレクタ219は、図4の動作410〜420に関して上述したように、入力を受け取り(510)、その入力と一致するオブジェクトの結果セット識別する(520)。次いで、セレクタ219は、動作440に関して上述したように、結果セット内のオブジェクトのタイプを識別する(530)。セレクタ219はまた、セレクタコンテキスト学習モジュール260によって学習されたように、セレクタに関連付けられたコンテキストを構成する1以上のタイプを識別する(540)。
【0037】
セレクタ219は、異なる実施形態において様々な手法でセレクタコンテキストに基づいて結果セットを修正する(550)。一実施形態では、セレクタ219は、セレクタコンテキスト内のどのタイプにも一致しないタイプを有するオブジェクトを(セレクタに入力された検索文字と一致するオブジェクトの結果セットから)除去する。(図3のような実施形態では、タイプは上位タイプおよびサブタイプに階層的に配置され、オブジェクトタイプがセレクタコンテキスト内のタイプと同じかまたはそのサブタイプである場合に、そのオブジェクトのタイプは、セレクタコンテキスト内のタイプと一致すると言われる。たとえば、図3におけるオブジェクトタイプである「レストラン」は、「レストラン」が「ビジネス」のサブタイプであるので、セレクタコンテキストタイプである「ビジネス」と一致する。
【0038】
他の実施形態では、セレクタ219は、セレクタコンテキストと一致しないタイプを有する結果セットオブジェクトを除去せずに、むしろオブジェクトのランク付けスコアを調節する。たとえば、セレクタ219は、一致するタイプの欠如に関して、いくつかの所定の量または割合だけオブジェクトにペナルティを科す。これにより、一致するタイプを有しないオブジェクトは、セレクタコンテキストが考慮されない場合よりも、結果セット内でより低くランク付けされる傾向になる。別の実施形態では、一致するタイプを有しないオブジェクトは、第2のグループのオブジェクトに割り当てられ、第2のグループのすべてのオブジェクトは、一致するタイプを有するいずれの表示オブジェクトよりも結果セッ
ト内で先に表示されることがない。したがって、たとえば、図1Aの有名人「レイ・オールエンド」は、タイプが「玩具」でないにも関わらず結果セット内に示されるが、「玩具」タイプの4つのすべてのオブジェクトの後に表示される。これらの手法のいずれも、他のタイプの重要なオブジェクトを引き続き表示し、他のあり得る選択肢をユーザに与えながらも、検索コンテキストに最も一致することが期待されるオブジェクトを目立つように表示する。他の選択肢を提供することにより、先の日付に一般的に選択されていたタイプと異なるタイプのオブジェクトの選択をユーザが始めた場合に、セレクタのコンテキストは経時的に再学習される。
【0039】
セレクタ219はまた、そのコンテキストの一部分であるタイプにおいてランク付けスコアを調節することもできる。たとえば、第1の関連付けられたタイプと一致する結果セットのオブジェクトは、第2の関連付けられたタイプと一致する結果セットのオブジェクトよりも高くランク付けされ得る。
【0040】
一実施形態では、オブジェクトのランク付けスコアは、単にオブジェクトタイプがセレクタコンテキスト内のタイプと一致するか否かに基づくのではなく、タイプがどの程度近く一致するかに基づいて計算される。一実施形態では、一致の近さは、タイプグラフ221におけるタイプ間の最短グラフ距離によって決定される。たとえば、図3を再び参照すると、特定のセレクタ219のコンテキストが、オブジェクト.ページ.ビジネス.レストラン.日本(Object.Page.Business.Restaurant.Japanese)というタイプを有し、(テキスト文字の一致のみに基づく)初期の結果セット内のオブジェクトが、オブジェクト.ページ.ビジネス.レストラン.イタリア(Object.Page.Business.Restaurant.Italian)というタイプであるとした場合、近さは、2の距離、すなわち、一方のノードから最も近い共通の親へ、そこから他方のノードへと行く遷移の数を示す。
【0041】
図2を再び参照すると、一実施形態では、ソーシャルネットワーキングシステム200は、外部化モジュール250を含み、外部化モジュール250は、ソーシャルネットワーキングシステムの外部の第三者システムが、たとえばセレクタ219を通じて、関心のあるオブジェクトについてソーシャルネットワーキングシステムに照会することを可能にする。したがって、セレクタ219の使用は(たとえば)ソーシャルネットワーキングシステム200自体に限定される必要がなく、むしろ任意の外部ウェブサイトが、ソーシャルネットワーキングシステムのデータを活用するカスタマイズされた検索インタフェースを作成する。
【0042】
たとえば、一実施形態では、外部化モジュール250は、第三者のウェブページ上に第三者が含めるコードを提供し、このコードは、ソーシャルネットワーキングシステム200のドメインにURLをロードするインラインフレームの作成を引き起こす。URL自体は、インラインフレームにおいてどのコンテンツを表示するかを決定するためにソーシャルネットワーキングシステム200が使用できる(たとえば、キーと値の対の)情報を含む。たとえば、セレクタ219をインラインフレームで表示するとき、インラインフレームに対するURLは、ソーシャルネットワーキングシステム200にどの特定のセレクタを表示すべきかを教えるセレクタ識別子を含むことができ、ソーシャルネットワーキングシステムは、その識別子を有するセレクタを通じて選ばれたオブジェクトタイプを追跡することにより、セレクタに関連付けられたオブジェクトタイプを学習することもできる。インラインフレームはソーシャルネットワーキングシステム200のドメイン内にあるので、ソーシャルネットワーキングシステムは、たとえば、ユーザ名などの情報を得るために、ソーシャルネットワーキングシステムのユーザのクッキーにアクセスする。したがって、ソーシャルネットワーキングシステムは、任意に、グラフ情報ストア220からユーザのつながりにアクセスし、前述のように、セレクタを通じて入力されたクエリの結果を
修正するためにそれらを使用する。図1Aを参照すると、玩具オブジェクトを検索するために使用されるセレクタ105を、たとえば、ソーシャルネットワーキングシステム200のドメインからインフレームロードコンテンツとして実装し、玩具の販売にフォーカスした外部の第三者ウェブサイトのウェブページに埋め込む。この例では、インフレームは、www.socialnet.comにおけるソーシャルネットワークからのID1383922を有するセレクタが表示されるべきことを指定する、<iframe src=“http://www.socialnet.com/objquery/id=1383922”></iframe>などのHTMLコードによって指定され得る。
【0043】
外部化モジュール250は、所与の名前の接頭部および所与のオブジェクトタイプを有するオブジェクトなどの特定の基準と一致するデータを求めて、ソーシャルネットワーキングシステム200に明示的にコールするウェブサービスベースのAPIなど、他の実施形態において他の方法で実装され得る。
【0044】
アプリケーション:フィールド選択および学習
ページ215は、関連付けられたフィールド225、すなわち、ビジネスページの営業の時間帯を指定する「時間」フィールド、またはレストランページの主題であるレストランによって提供される食べ物を指定する「メニュー」フィールドなどの、所与のページの態様を記述するデータの個々の部分を有する。一実施形態では、種々のあり得るフィールドのそれぞれが、単にテキストまたは他の基本的データタイプの断片ではなくオブジェクトストア210におけるオブジェクト225として表され、そのため、以下ではフィールドオブジェクト225と称する。各フィールドオブジェクト225は、図3に示した「地図」、「時間」、「電話」、または「メニュー」フィールドなどの、タイプグラフ221における対応するフィールドタイプ303を有し、そのフィールドタイプに対するデータを表す1以上の値(たとえば、「電話」フィールドタイプに対するテキスト「555−555−1234」)を有する。
【0045】
ソーシャルネットワーキングシステム200は、ページ管理者用ユーザインタフェースを提供し、ページ管理者用ユーザインタフェースは、ソーシャルネットワーキングシステム上のエンティティについての異なる複数のページ215の管理者が、各ページ上にあるべきフィールドオブジェクト225または他の情報を指定することを可能にする。セレクタ219は、フィールドオブジェクト225の関連するタイプをページに追加するように迅速に指定するための1つの方法を管理者に提供する。
【0046】
たとえば、図6は、架空の書店「Lib books」に関する管理者用ユーザインタフェース600のサンプルのページを示す。ユーザは、第1の(または単一の)関連付けられたタイプの「フィールド」を持つコンテキストを有するセレクタ605に、文字「m」を入力している。したがって、セレクタ605は、入力された文字「m」と一致するタイプグラフ221に記憶されたフィールドオブジェクト303の結果セット606(すなわち、ユーザに場所の地図を提供するための「Maps(地図)」フィールド、ミュージックジャンルをリストするための「Music list(ミュージックリスト)」フィールド、および食べ物のタイプをリストするための「Menu(メニュー)」フィールド)を表示しており、フィールドタイプ303以外のオブジェクトを除去している(またはそれらに低いランクを割り当てている)。次いで、管理者は、フィールドオブジェクト225の適用可能なタイプを選択して、ソーシャルネットワーキングシステム200上の管理者用ページに(たとえば、地図フィールドを)追加する。
【0047】
一実施形態では、ソーシャルネットワーキングシステム200は、フィールド学習モジュール265をさらに備え、フィールド学習モジュール265は、管理者のページ215について(たとえば、セレクタ119を通じて)管理者によって選択されたフィールドタ
イプ303を識別し、それらのフィールドタイプとページとの間の関連付けを形成する。具体的には、ソーシャルネットワーキングシステム200は、グラフ情報ストア220にページ−フィールド関連付け224のセットを備え、そのような各関連付けは、特定のページタイプ302(たとえば、ビジネスタイプ305のページ)を、ページタイプとの関連付けの少なくとも所定の度合いに対するしきい値を有し、したがってそのページタイプに適切と考えられる特定のフィールドタイプ303に関係付ける。一実施形態では、フィールド学習モジュール265は、管理者が、特定のフィールドタイプ303を、ページ−フィールド関連付け224においてそのフィールドタイプにまだ関連付けられていないタイプのページに追加するたびに、注目する。次いで、フィールドタイプがそのページタイプに十分な回数(たとえば、最小数、そのタイプの総ページの最小割合)追加されて関連付けの度合いのしきい値が確立された後、フィールド学習モジュール265は、ページ−フィールド関連付け224においてそのフィールドタイプ303をそのページタイプ302に関連付ける。
【0048】
たとえば、ビジネスページタイプ305が最初に作成されたとき、それは、ビジネスの電話番号を表す電話フィールドタイプ306に関連付けを有しないとする。しかしながら、何人かの管理者が、電話フィールドタイプ306をビジネスタイプ(またはレストランなどのそのサブタイプ)のページに追加した後、フィールド学習モジュール265は、ビジネスページタイプ305と電話フィールドタイプ306の間の関連付け306Aを作成する。
【0049】
次いで、ソーシャルネットワーキングシステム200は、ページ−フィールド関連付け224を適用して、適切なフィールドタイプのフィールドをそのフィールドタイプをまだ有していないページに追加するのを開始することを含む、より有用な選択肢を管理者に提供する。一実施形態では、セレクタ219のコンテキストでフィールドタイプ303を有するセレクタ219は、どのフィールドタイプがそれらのセレクタが埋め込まれるページタイプに関連付けられるかに基づいて、結果のランク付けを調節する。具体的には、セレクタ219に対応するページのタイプに関連付けられたフィールドタイプ303は、それらのランク付けを上げることができ、そのページタイプに関連付けられていないフィールドタイプは、それらのランク付けを下げる。たとえば、図6の検索結果606における地図(Map)フィールドタイプは、ミュージックリスト(Music list)フィールドタイプまたはメニュー(Menu)フィールドタイプよりも高くランク付けされることができ、その理由は、地図が図3のビジネスページタイプ305の既知のフィールドタイプであり、その他の2つのフィールドはそうではないからである。
【0050】
一実施形態では、ソーシャルネットワーキングシステム200は、ページ−フィールド関連付け224が所与のページタイプのページに関連付けられているとリストされる特定のフィールドを管理者が追加するように、ページの管理者に積極的に推奨する。たとえば、図6では、ユーザインタフェース600は、図3のサンプルに示されるように「電話」および「時間」はビジネスタイプのページに関連付けられることが知られているフィールドタイプであるので、電話番号フィールドおよび/またはビジネス時間フィールドを管理者が「Lib books」ビジネスに関するページに追加するように推奨するリンク610を提供する。
【0051】
あるいは、ソーシャルネットワーキングシステム200は、ユーザの許可を必要とせずに、そのようなフィールドを自動的に追加する。一実施形態では、フィールドタイプとページタイプとの間の関連付けは、ページ−フィールド関連付け224においてページタイプとフィールドタイプとの間の関連付けを作成するために必要とされるよりも大きい少なくとも所定の強さの度合いのしきい値を有する場合、フィールドタイプのインスタンスが自動的にページに追加される。たとえば、一実施形態では、強さの度合いのしきい値は、
そのフィールドのインスタンスを有するそのページタイプのページの任意の最小数(たとえば、1000)、および、そのフィールドのインスタンスを有するそのページタイプのページの任意の最小割合(たとえば、90%)を含む。フィールドインスタンス(たとえば、電話番号フィールド)が自動的にページに追加されると、ソーシャルネットワーキングシステム200は、ページ管理者に、そのインスタンスに対する値(たとえば、有効な電話番号)を指定するように要求する。
【0052】
本発明の実施形態の以上の説明は、例示の目的で提示されており、網羅的であることも、開示される形態そのものに本発明を限定することも意図していない。以上の開示に鑑みて、多くの修正形態および変形形態が可能であることを当業者であれば理解されるであろう。
【0053】
この説明のいくつかの部分は、情報の操作のアルゴリズムおよび記号表現の点で本発明の実施形態を説明する。これらのアルゴリズム上の説明および表現は、データ処理の技術の分野における当業者によって、自らの作業の本質を他の当業者に効果的に伝えるように、一般に使用される。これらの操作は、機能的、計算的、または論理的に説明されるが、コンピュータプログラム、または等価な電気回路もしくはマイクロコードなどによって実装されるものと理解される。さらに、操作のこれらの構成を、一般性を損なうことなしに、ときとして、モジュールと呼ぶことが好都合であることも判明している。説明される操作、およびそれらに関連付けられたモジュールは、ソフトウェア、ファームウェア、ハードウェア、またはこれらの任意の組み合わせによって具現化され得る。
【0054】
本明細書で説明される工程、動作、または処理のいずれも、1以上のハードウェアモジュールまたはソフトウェアモジュールを単独で、または他のデバイスと組み合わせて用いて、実行または実装され得る。一実施形態では、ソフトウェアモジュールは、説明される工程、動作、または処理のいずれか、あるいはすべてを実行するためにコンピュータプロセッサによって実行され得るコンピュータプログラムコードを含むコンピュータ可読媒体を備えるコンピュータプログラム製品によって実装される。
【0055】
また、本発明の実施形態は、本明細書の動作を実行するための装置に関する場合もある。この装置は、要求される目的のために特別に構築されることが可能であり、かつ/またはこの装置は、コンピュータ内に記憶されたコンピュータプログラムによって選択的に有効化されるまたは再構成される汎用コンピューティングデバイスを備え得る。そのようなコンピュータプログラムは、コンピュータシステムバスに結合され得る、非一時的な有形のコンピュータ可読記憶媒体、または電子命令を記憶するのに適した任意のタイプの媒体に記憶され得る。さらに、本明細書で言及される任意のコンピューティングシステムは、単一のプロセッサを含んでも、より高い計算能力のために複数プロセッサ設計を用いたアーキテクチャであってもよい。
【0056】
また、本発明の実施形態は、本明細書で説明される計算処理によってもたらされる製品に関する場合もある。そのような製品は、計算処理からもたらされる情報を備えることができ、この情報は、非一時的な有形のコンピュータ可読記憶媒体に記憶され、また、そのような製品は、本明細書で説明されるコンピュータプログラム製品または他のデータの組み合わせの任意の実施形態を含み得る。
【0057】
最後に、本明細書で使用される用語は、主に読み易さおよび教示のために選択されており、本発明の主題を線引きするまたは限定するために選択されたものではない。したがって、本発明の範囲は、この詳細な説明によってではなく、本明細書に基づく出願に関する特許請求の範囲によって限定されることが意図される。したがって、本発明の実施形態の開示は、添付の特許請求の範囲に記載される本発明の範囲を例示することを意図するが、
限定することは意図しない。
図1A
図1B
図2
図3
図4
図5
図6