(58)【調査した分野】(Int.Cl.,DB名)
各カードは、示された前記1つのクエリ−ドメインおよび1以上のクエリ−フィルタを参照する複数の語を備える提案された検索クエリを備え、前記クエリ−フィルタは、1以上のオブジェクトと前記1以上のオブジェクトの1以上のオブジェクト属性とを参照する、請求項1に記載の方法。
各カードは、前記提案された検索クエリに対応する1以上の検索結果をさらに備え、各検索結果は、前記カードの提案された検索クエリに一致するオブジェクトを参照し、かつ、示された前記クエリ−ドメイン内にあり、前記検索結果に対応するオブジェクトは、示された1以上のクエリ−フィルタの各々に一致する、請求項2に記載の方法。
複数のノードと、前記ノード同士をつなげる複数のエッジとを備えるソーシャル・グラフにアクセスする工程であって、2つのノード間の前記エッジの各々は、2つの前記ノード間の関係を表し、それらの間の単一の分離度を確立し、前記ノードは、
第1のユーザに対応する第1のノード、および、
複数のオブジェクトにそれぞれ対応する複数の第2のノードを備える、工程をさらに備え、
各クエリ−フィルタは、前記ソーシャル・グラフの前記複数のノードのうちの1以上のノードまたは前記ソーシャル・グラフの前記複数のエッジのうちの1以上のエッジを参照する、請求項1に記載の方法。
各検索結果は、示された前記1つのクエリ−ドメインおよび1以上のクエリ−フィルタに一致する前記複数の第2のノードのうちの複数の第2のノードを参照する、請求項4に記載の方法。
各カードは、前記複数のノードのうちの1以上のノードおよび前記複数のエッジのうちの1以上のエッジへの参照を備える構造化クエリを備える、請求項4に記載の方法。
前記1以上のユーザ・エンゲージメント・ファクタに基づいて、前記複数のカードの各カードについてユーザ・エンゲージメント・スコアを計算する工程であって、各カードに対する前記ユーザ・エンゲージメント・スコアは、前記カードに前記第1のユーザが関る確率の尺度であり、各カードの前記ランキングは、計算された前記ユーザ・エンゲージメント・スコアに基づく、工程をさらに備える、請求項1に記載の方法。
前記ユーザ・エンゲージメント・ファクタは、対応するカードによって参照された前記オブジェクトの1以上に関して第2のユーザのソーシャル・グラフ情報を備え、前記第2のユーザは、前記第1のユーザの人口統計情報に共通する人口統計情報の少なくともサブセットを有する、請求項7に記載の方法。
前記ユーザ・エンゲージメント・ファクタは、対応するカードによって参照された1以上のオブジェクトに対する前記第1のユーザのソーシャル・グラフ親和性を備える、請求項7に記載の方法。
前記カード・クラスタの各カードは、対応するカードに1以上のクエリ−フィルタを適用するか、または修正するよう動作可能な1以上の対話要素を備える、請求項1に記載の方法。
カード・スタック・インタフェースにアクセスするための前記第1のユーザによる入力を前記クライアント・システムから受け取る工程をさらに備える、請求項1に記載の方法。
前記カード・スタック・インタフェースは、前記クライアント・システムにインストールされたネイティブ・アプリケーションのユーザ・インタフェースとして表示される、請求項15に記載の方法。
前記カード・スタック・インタフェースは、前記クライアント・システムにインストールされたブラウザ・クライアントによってアクセスされるウェブページとして表示される、請求項15に記載の方法。
前記カード・スタック・インタフェースは、前記カード・スタック・インタフェースに現在表示されているカードのスワイプ・ジェスチャに対応する前記第1のユーザによる入力の検出に応答して、前記第1のユーザに後続のカードを表示するように構成され、前記後続のカードは、現在表示されている前記カードと同じクエリ−ドメインおよび1以上の異なるクエリ−フィルタに対応する1以上のオブジェクトを参照する、請求項15に記載の方法。
1以上のプロセッサと、前記プロセッサによって実行可能な命令を備え、前記プロセッサに結合されているメモリとを備えるシステムであって、前記プロセッサは、前記命令を実行したとき、
1つのクエリ−ドメインおよび1以上のクエリ−フィルタを示す第1のユーザによる入力を前記第1のユーザのクライアント・システムから受け取る工程と、
示された前記1つのクエリ−ドメインおよび1以上のクエリ−フィルタに対応する複数のオブジェクトを参照する複数のカードを備えるカード・クラスタを生成する工程と、
1以上のユーザ・エンゲージメント・ファクタに基づいて、前記複数のカードをランク付けする工程と、
前記第1のユーザによる前記入力に応答して、前記カード・クラスタを前記第1のユーザに表示するための命令を前記クライアント・システムに送る工程であって、前記カード・クラスタのカードは、カードに関連付けられているランキングに基づいて順序付けられる、工程と、
が行われるように構成され、
前記カード・クラスタの以前に表示されたカードのスワイプ・ジェスチャに対応する入力を前記第1のユーザから検出したことに応答して、前記カード・クラスタは、後続のカードを前記第1のユーザに対して表示するよう動作可能であり、前記後続のカードは、以前に表示された前記カードと同じクエリ−ドメインおよび1以上の異なるクエリ−フィルタを有する、システム。
【発明を実施するための形態】
【0007】
特定の実施形態では、ソーシャル・ネットワーキング・システムは、特定のソーシャル・グラフ要素に対する参照を含む構造化クエリを生成することができる。これらの構造化クエリは、たとえば、ユーザによって提供される、またはデフォルトのクエリとして生成されるテキスト・クエリに応答して生成されてもよい。ユーザのテキスト・クエリに対して提案される構造化クエリを提供することによって、ソーシャル・ネットワーキング・システムは、オンライン・ソーシャル・ネットワークのユーザがソーシャル・グラフ内で表される要素を求めて、それらのソーシャル・グラフ属性および様々なソーシャル・グラフ要素に対するそれらの関係に基づいて検索するための強力な方法を提供することができる。
【0008】
特定の実施形態では、カード・スタックは、どのアプリケーションまたはアプリケーションのコンテンツがコンピューティング・デバイス上で実行されているかを示す視覚的なモデルとすることができる。カード・スタックは、コンピューティング・デバイス上にインストールされたすべてのアプリケーションを表示するランチャと似ているカードを有することができる。特定の実施形態では、ユーザは、たとえば上から下へスワイプすること、またはコンピューティング・デバイスの「ホーム」ボタンを押すことなど、ジェスチャを実施することによってランチャに対応するカードにアクセスすることができる。コンピューティング・デバイス上で実行されるアプリケーション、またはそれらのアプリケーションのコンテンツ(たとえば、ソーシャル・ネットワーク上のユーザのプロフィール・ページまたはウェブ・ブラウザのタブ)は、ランチャ・カードの上方に積まれたカードとして表示されてもよい。特定の実施形態では、カード・スタックのカードは、時系列で順序付けられ、つい最近実行されたアプリケーションがカード・スタック内でより高いところにあってもよい。各カードは、それらのカードが画面上でどのように積まれているかに応じて、カードの露出されたエッジ(縁)上で上へスワイプすること、またはカードの露出されたエッジ上で引き下げることによってアクセスされてもよい。
【0009】
特定の実施形態では、ソーシャル・ネットワーキング・システムは、推奨クエリ、および所与のユーザの関心、プリファレンス、または好みに対する手がかりを提供し得る信号を使用するクエリ・フィルタを用いて「カード」を生成することができる。ソーシャル・ネットワークは、ユーザに対して表示するために1または複数のカードを備えるユーザ・インタフェースを提供してもよい。この着想は、ユーザの関心のあるものとなり、ユーザにソーシャル・ネットワーキング・システムまたは他のシステム(たとえば、特定の広告主に関連付けられているシステム、または他のサードパーティ・システム)に関らせる、またはさらにそれらを探らせることになるカードを生成することである。これは、モバイルの状況(たとえば、FBモバイルに進み、カードを探りたいと望む退屈したユーザ)において特に有用となり得る。各カードは、特定のドメイン(場所、人、写真など)を表すことができ、推奨クエリがそのカードに関連付けられている。1つまたは複数のクエリ・フィルタをカードの推奨クエリに適用することができる。たとえば、場所カードは、フィルタ・オプション[ロケーション][タイプ][サブタイプ][時]を有することができ、これらは、[“パロ・アルト”][“レストラン”][“中華料理”][“営業中”]として選択することができる。フィルタのいくつかは、特定のエンティティ(たとえば、ソーシャル・ネットワーク内またはソーシャル・ネットワークなしでのオブジェクトに対する「いいね」の構造化クエリ)に対する参照であってもよく、いくつかのフィルタは、特定のメタデータまたはオブジェクト属性に関するものであってもよい。
【0010】
特定の実施形態では、ソーシャル・ネットワーキング・システムは、カードに関連付けられている特定のドメインまたはフィルタに基づいて「カード」をランク付けすることができる。ソーシャル・ネットワークは、各ユーザに適したようにランク付けされた1または複数のカードを備えるユーザ・インタフェースを提供することができる。この着想は、最も関心のあるカードがユーザに提示されることになり、ユーザにソーシャル・ネットワークに関らせ、さらにそれを探らせるようにカードをランク付けすることである。各カードは、推奨クエリ(たとえば、グラフ検索クエリ)およびクエリを修正するための1つまたは複数のフィルタと共に、特定のドメイン(場所、人、写真など)を表すことができる。カードは、通知、ニュースフィード・ストーリ、提案ヌル状態クエリとして、スタンドアロンのアプリケーションにおいて、クライアント・システムのホーム画面上で、または任意の他の好適な方法を含めて、任意の好適なようにして提示することができることに留意されたい。
【0011】
特定の実施形態では、ソーシャル・ネットワーキング・システムは、カードに関連付けられている特定のドメインまたはフィルタに対するユーザの親和性に基づいて、「ヒント・カード」をクラスタ化することができる。各カードは、推奨クエリ(たとえば、グラフ検索クエリ)およびクエリを修正するための1つまたは複数のフィルタと共に、特定のドメイン(場所、人、写真など)を表すことができる。システムは、ユーザからの入力/アクションに基づいてカードに対するフィルタを修正してもよい。換言すれば、ユーザは、異なるフィルタによりカードを見るためにカードを探索することができる。たとえば、カードをスワイプすることにより、追加のフィルタを適用するためのオプションが現れても、以前のカードに対する推奨クエリの変形を有するカードが示されてもよい。システムは、カード対カードの親和性を決定し、次いでこの決定された親和性に基づいてカードを共にクラスタ化することによって、各ユーザについてカスタマイズされるようにしてカードをクラスタ化してもよい。目標は、ユーザがソーシャル・ネットワークに関る、またはさらにそれを探る気になるように、ユーザにとって関心のあるカードをクラスタ化することである。互いに関係するカードをクラスタ化することにより、ユーザには、より楽しいカード・ブラウズ体験が提供され得る。
【0012】
上記に開示されている実施形態は例にすぎず、本開示の範囲はそれらに限定されない。特定の実施形態は、上記に開示されている実施形態の構成要素、要素、特徴、機能、動作、またはステップのすべてまたは一部を含むことも、含まないこともある。
【0013】
本発明による実施形態は、方法、記憶媒体、およびシステムを対象とする添付の特許請求の範囲に特に開示されており、1つの請求項カテゴリ、たとえば方法に述べられている特徴は、別の請求項カテゴリ、たとえばシステムにおいても特許請求され得る。
【0014】
本発明による一実施形態では、コンピューティング・デバイスによる方法が、複数のノードと、ノード同士をつなげる複数のエッジとを備えるソーシャル・グラフにアクセスする工程であって、2つのノード間のエッジの各々は、それらの間の単一の分離度を表し、ノードは、オンライン・ソーシャル・ネットワークに関連付けられている第1のユーザに対応する第1のノード、および各々が、コンセプト、またはオンライン・ソーシャル・ネットワークに関連付けられている第2のユーザに対応する、複数の第2のノードを備える、工程と、複数のカードを生成する工程であって、各カードは、オンライン・ソーシャル・ネットワークに関連付けられているクエリ−ドメインと、ゼロまたは1以上のクエリ−フィルタとを参照する提案クエリを備え、各クエリ−フィルタは、複数のノードのうちの1以上のノードまたは複数のエッジのうちの1以上のエッジを参照する、工程と、1以上のユーザ・エンゲージメント・ファクタに基づいて、各カードについてユーザ・エンゲージメント・スコアを計算する工程と、しきい値ユーザ・エンゲージメント・スコアより大きなユーザ・エンゲージメント・スコアを有する各カードを、第1のユーザによって現在アクセスされているページ上に表示するために第1のユーザに送る工程とを備える。
【0015】
この方法は、特定のカードにクエリ−フィルタを適用する入力を第1のユーザから受け取る工程と、入力に基づいて1以上の他のカードに対するクエリ−フィルタを修正する工程とをさらに備えることができる。
【0016】
この方法は、以前に表示されたカードのスワイプに対応する入力を第1のユーザから検出したことに応答して、後続のカードを第1のユーザに対して表示する工程であって、後続のカードは、以前に表示されたカードと同じクエリ−ドメインおよび1以上の異なるクエリ−フィルタを有する、工程をさらに備えることができる。
【0017】
送られたカードは、1以上のカード・クラスタとして表示させることができる。
各カード・クラスタのカードは、カードに関連付けられているランキングに基づいて順序付けられる。
【0018】
各カードは、カードに対応する提案クエリに対応する1以上の検索結果のプレビューを備えることができる。
各提案クエリは、複数のノードのうちの1以上のノードおよび複数のエッジのうちの1以上のエッジに対する参照を備える構造化クエリとすることができる。
【0019】
構造化クエリによって参照される少なくとも1以上の第2のノードは、ロケーションに対応することができ、構造化クエリによって参照されるエッジの少なくとも1つは、ロケーションにおけるチェックインに対応することができる。
【0020】
構造化クエリによって参照される少なくとも1以上の第2のノードは、コンテンツ・オブジェクトに対応することができ、構造化クエリによって参照されるエッジの少なくとも1つは、コンテンツ・オブジェクトに対する「いいね」に対応することができる。
【0021】
ユーザ・エンゲージメント・ファクタは、第1のユーザの人口統計情報、現在の情報、およびソーシャル・グラフ情報のうちの1以上を備えることができる。
ユーザ・エンゲージメント・ファクタは、第2のノードの1以上に関して別のユーザのソーシャル・グラフ情報を備えることができ、第2のユーザは、第1のユーザの人口統計情報に共通する人口統計情報の少なくともサブセットを有する。
【0022】
この方法は、第1のユーザが現在のロケーションに関して旅行者であるか否かを、現在のロケーションの第1のユーザの人口統計情報に対する比較に基づいて決定する工程をさらに含むことができる。
【0023】
ユーザ・エンゲージメント・ファクタは、構造化クエリによって参照された1以上の第2のノードに対する第1のユーザのソーシャル・グラフ親和性を備えることができる。
提案クエリは、1以上のオブジェクト属性をそれぞれ参照する1以上のクエリ−フィルタを参照することができる。
【0024】
生成されたカードの少なくとも1つは、第1のユーザの検索履歴に基づいて選択されたクエリ−フィルタを参照する提案クエリを備えることができる。
ページは、オンライン・ソーシャル・ネットワークに関連付けられているネイティブ・アプリケーションのユーザ・インタフェースとすることができる。
【0025】
ページは、ブラウザ・クライアントによってアクセスされるソーシャル・ネットワーキング・システムのウェブページとすることができる。
特許請求することができる本発明の他の実施形態では、1以上の非一時的なコンピュータ可読記憶媒体がソフトウェアを含み、ソフトウェアは、実行されたとき、複数のノードと、ノード同士をつなげる複数のエッジとを備えるソーシャル・グラフにアクセスすることであって、2つのノード間のエッジの各々は、それらの間の単一の分離度を表し、ノードは、オンライン・ソーシャル・ネットワークに関連付けられている第1のユーザに対応する第1のノード、および各々が、コンセプト、またはオンライン・ソーシャル・ネットワークに関連付けられている第2のユーザに対応する、複数の第2のノードを備えること、複数のカードを生成することであって、各カードは、オンライン・ソーシャル・ネットワークに関連付けられているクエリ−ドメインと、ゼロまたは1以上のクエリ−フィルタとを参照する提案クエリを備え、各クエリ−フィルタは、複数のノードのうちの1以上のノードまたは複数のエッジのうちの1以上のエッジを参照すること、1以上のユーザ・エンゲージメント・ファクタに基づいて、各カードについてユーザ・エンゲージメント・スコアを計算すること、およびしきい値ユーザ・エンゲージメント・スコアより大きなユーザ・エンゲージメント・スコアを有する各カードを、第1のユーザによって現在アクセスされているページ上に表示するために第1のユーザに送ることを行うように動作可能である。
【0026】
特許請求することができる本発明の他の実施形態では、システムは、1以上のプロセッサと、プロセッサによって実行可能な命令を備え、プロセッサに結合されているメモリとを備え、プロセッサは、命令を実行したとき、複数のノードと、ノード同士をつなげる複数のエッジとを備えるソーシャル・グラフにアクセスすることであって、2つのノード間のエッジの各々は、それらの間の単一の分離度を表し、ノードは、オンライン・ソーシャル・ネットワークに関連付けられている第1のユーザに対応する第1のノード、および各々が、コンセプト、またはオンライン・ソーシャル・ネットワークに関連付けられている第2のユーザに対応する、複数の第2のノードを備えること、複数のカードを生成することであって、各カードは、オンライン・ソーシャル・ネットワークに関連付けられているクエリ−ドメインと、ゼロまたは1以上のクエリ−フィルタとを参照する提案クエリを備え、各クエリ−フィルタは、複数のノードのうちの1以上のノードまたは複数のエッジのうちの1以上のエッジを参照すること、1以上のユーザ・エンゲージメント・ファクタに基づいて、各カードについてユーザ・エンゲージメント・スコアを計算すること、およびしきい値ユーザ・エンゲージメント・スコアより大きなユーザ・エンゲージメント・スコアを有する各カードを、第1のユーザによって現在アクセスされているページ上に表示するために第1のユーザに送ることを行うように動作可能である。
【0027】
本発明の他の実施形態では、1以上の非一時的なコンピュータ可読記憶媒体がソフトウェアを含み、ソフトウェアは、実行されたとき本発明による方法または上述の実施形態のいずれかを実施するように動作可能である。
【0028】
本発明の他の実施形態では、システムは、1以上のプロセッサと、プロセッサによって実行可能な命令を備え、プロセッサに結合されているメモリとを備え、プロセッサは、命令を実行したとき本発明による方法または上述の実施形態のいずれかを実施するように動作可能である。
【0029】
システム概要
図1は、ソーシャル・ネットワーキング・システムに関連付けられている例示的なネットワーク環境100を示している。ネットワーク環境100は、ネットワーク110によって互いにつながっているクライアント・システム130、ソーシャル・ネットワーキング・システム160、およびサードパーティ・システム170を含む。
図1は、クライアント・システム130、ソーシャル・ネットワーキング・システム160、サードパーティ・システム170、およびネットワーク110の特定の構成を示しているが、本開示は、クライアント・システム130、ソーシャル・ネットワーキング・システム160、サードパーティ・システム170、およびネットワーク110の任意の適切な構成を想定している。限定ではなく、例として、クライアント・システム130、ソーシャル・ネットワーキング・システム160、およびサードパーティ・システム170のうちの複数は、ネットワーク110を迂回して、互いに直接つながることが可能である。別の例として、クライアント・システム130、ソーシャル・ネットワーキング・システム160、およびサードパーティ・システム170のうちの複数は、物理的にまたは論理的に、全体としてまたは部分的に互いに同一場所に配置されることが可能である。その上、
図1は、特定の数のクライアント・システム130、ソーシャル・ネットワーキング・システム160、サードパーティ・システム170、およびネットワーク110を示しているが、本開示は、任意の適切な数のクライアント・システム130、ソーシャル・ネットワーキング・システム160、サードパーティ・システム170、およびネットワーク110を想定している。限定ではなく、例として、ネットワーク環境100は、複数のクライアント・システム130、ソーシャル・ネットワーキング・システム160、サードパーティ・システム170、およびネットワーク110を含むことができる。
【0030】
本開示は、任意の適切なネットワーク110を想定している。限定ではなく、例として、ネットワーク110の1つまたは複数の部分は、アド・ホック・ネットワーク、イントラネット、エクストラネット、仮想プライベート・ネットワーク(VPN)、ローカル・エリア・ネットワーク(LAN)、無線LAN(WLAN)、ワイド・エリア・ネットワーク(WAN)、無線WAN(WWAN)、メトロポリタン・エリア・ネットワーク(MAN)、インターネットの一部分、公衆交換電話網(PSTN)の一部分、セルラ電話ネットワーク、またはこれらのうちの複数の組合せを含むことができる。ネットワーク110は、1つまたは複数のネットワーク110を含むことができる。
【0031】
リンク150は、クライアント・システム130、ソーシャル・ネットワーキング・システム160、およびサードパーティ・システム170を通信ネットワーク110に、または互いにつなげることができる。本開示は、任意の適切なリンク150を想定している。特定の実施形態においては、1つまたは複数のリンク150は、1つもしくは複数の有線リンク(たとえば、デジタル・サブスクライバ・ライン(DSL)もしくはデータ・オーバ・ケーブル・サービス・インタフェース仕様(DOCSIS)など)、無線リンク(たとえば、Wi−Fiもしくはワールドワイド・インターオペラビリティー・フォー・マイクロウェーブ・アクセス(WiMAX)など)、または光リンク(たとえば、同期光ネットワーク(SONET)もしくは同期デジタル階層(SDH)など)を含む。特定の実施形態においては、1つまたは複数のリンク150はそれぞれ、アド・ホック・ネットワーク、イントラネット、エクストラネット、VPN、LAN、WLAN、WAN、WWAN、MAN、インターネットの一部分、PSTNの一部分、セルラー・テクノロジーベースのネットワーク、衛星通信テクノロジーベースのネットワーク、別のリンク150、または複数のそのようなリンク150の組合せを含む。リンク150は、ネットワーク環境100の全体を通じて必ずしも同じである必要はない。1つまたは複数の第1のリンク150は、1つまたは複数の点において1つまたは複数の第2のリンク150とは異なることが可能である。
【0032】
特定の実施形態においては、クライアント・システム130は、クライアント・システム130によって実装またはサポートされる適切な機能を実行することができる、ハードウェア、ソフトウェア、もしくは組み込みロジック・コンポーネント、または複数のそのような構成要素の組合せを含む電子デバイスであることが可能である。限定ではなく、例として、クライアント・システム130は、デスクトップ・コンピュータ、ノートブック・コンピュータもしくはラップトップ・コンピュータ、ネットブック、タブレット・コンピュータなどのコンピュータ・システム、eブック・リーダ、GPSデバイス、カメラ、携帯情報端末(PDA)、ハンドヘルド電子デバイス、セルラ電話、スマートフォン、その他の適切な電子デバイス、またはそれらの任意の適切な組合せを含むことができる。本開示は、任意の適切なクライアント・システム130を想定している。クライアント・システム130は、クライアント・システム130のネットワーク・ユーザがネットワーク110にアクセスすることを可能にすることができる。クライアント・システム130は、自分のユーザがその他のクライアント・システム130のその他のユーザと通信することを可能にすることができる。
【0033】
特定の実施形態においては、クライアント130は、MICROSOFT INTERNET EXPLORER、GOOGLE CHROME、またはMOZILLA FIREFOX(いずれも登録商標)などのウェブ・ブラウザ132を含むことができ、1つまたは複数のアドオン、プラグイン、またはTOOLBARもしくはYAHOO TOOLBAR(登録商標)などのその他の拡張を有することができる。クライアント・システム130のユーザは、ウェブ・ブラウザ132を特定のサーバ(サーバ162、またはサードパーティ・システム170に関連付けられているサーバなど)へ導くユニフォーム・リソース・ロケータ(URL)またはその他のアドレスを入力することができ、ウェブ・ブラウザ132は、ハイパー・テキスト転送プロトコル(HTTP)要求を生成して、そのHTTP要求をサーバに通信することができる。サーバは、そのHTTP要求を受け入れて、そのHTTP要求に応答して1つまたは複数のハイパー・テキスト・マークアップ言語(HTML)ファイルをクライアント・システム130に通信することができる。クライアント・システム130は、ユーザに提示するためにサーバからのHTMLファイルに基づいてウェブページをレンダリングすることができる。本開示は、ネイティブ・アプリケーションのユーザ・インタフェースとして提示されるウェブページまたはページを含む、任意の適切なページ・ファイルを想定している。限定ではなく、例として、ウェブページは、特定のニーズに従って、HTMLファイル、拡張可能ハイパー・テキスト・マークアップ言語(XHTML)ファイル、または拡張可能マークアップ言語(XML)ファイルからレンダリングすることができる。そのようなページは、限定ではなく、例として、JAVASCRIPT(登録商標)、JAVA(登録商標)、MICROSOFT SILVERLIGHTで書かれたスクリプトなどのスクリプト、AJAX(Asynchronous JAVASCRIPT(登録商標) and XML)などのマークアップ言語とスクリプトの組合せなどを実行することもできる。本明細書においては、ウェブページへの参照は、適切な場合には、(そのウェブページをレンダリングするためにブラウザが使用することができる)1つまたは複数の対応するウェブページ・ファイルを含み、その逆もまた同様である。
【0034】
特定の実施形態においては、ソーシャル・ネットワーキング・システム160は、オンライン・ソーシャル・ネットワークをホストすることができるネットワークアドレス可能なコンピューティング・システムであることが可能である。ソーシャル・ネットワーキング・システム160は、たとえば、ユーザプロフィール・データ、コンセプトプロフィール・データ、ソーシャル・グラフ情報、またはオンライン・ソーシャル・ネットワークに関連したその他の適切なデータなどのソーシャルネットワーキング・データを生成すること、記憶すること、受け取ること、および送信することが可能である。ソーシャル・ネットワーキング・システム160は、ネットワーク環境100のその他の構成要素によって直接、またはネットワーク110を通してアクセスされることが可能である。特定の実施形態においては、ソーシャル・ネットワーキング・システム160は、1つまたは複数のサーバ162を含むことができる。それぞれのサーバ162は、単一のサーバ、または複数のコンピュータもしくは複数のデータセンターにわたる分散サーバであることが可能である。サーバ162は、限定ではなく、例として、ウェブ・サーバ、ニュース・サーバ、メール・サーバ、メッセージ・サーバ、広告サーバ、ファイル・サーバ、アプリケーション・サーバ、Exchangeサーバ、データベース・サーバ、プロキシ・サーバ、本明細書において記述されている機能もしくはプロセスを実行するのに適している別のサーバ、またはそれらの任意の組合せなど、さまざまなタイプのものであることが可能である。特定の実施形態においては、それぞれのサーバ162は、サーバ162によって実装またはサポートされる適切な機能を実行するためのハードウェア、ソフトウェア、もしくは組み込みロジック・コンポーネント、または複数のそのような構成要素の組合せを含むことができる。特定の実施形態においては、ソーシャル・ネットワーキング・システム164は、1つまたは複数のデータ・ストア164を含むことができる。データ・ストア164は、さまざまなタイプの情報を記憶するために使用されることが可能である。特定の実施形態においては、データ・ストア164内に記憶されている情報は、特定のデータ構造に従って編成されることが可能である。特定の実施形態においては、それぞれのデータ・ストア164は、リレーショナル・データベースであることが可能である。本開示は特定のタイプのデータベースを記述し、例示するが、本開示においては、任意の適切なタイプのデータベースが考えられる。特定の実施形態は、クライアント・システム130、ソーシャル・ネットワーキング・システム160、またはサードパーティ・システム170が、データ・ストア164内に記憶されている情報を管理すること、取り出すこと、修正すること、追加すること、または削除することを可能にするインタフェースを提供することができる。
【0035】
特定の実施形態においては、ソーシャル・ネットワーキング・システム160は、1つまたは複数のソーシャル・グラフを1つまたは複数のデータ・ストア164内に記憶することができる。特定の実施形態においては、ソーシャル・グラフは、複数のノード(複数のユーザ・ノード(各々が、特定のユーザに対応している)、または複数のコンセプト・ノード(各々が、特定のコンセプトに対応している)を含むことができる)と、ノード同士をつなげる複数のエッジとを含むことができる。ソーシャル・ネットワーキング・システム160は、オンライン・ソーシャル・ネットワークのユーザに、その他のユーザと通信および対話する能力を提供することができる。特定の実施形態においては、ユーザたちは、ソーシャル・ネットワーキング・システム160を通してオンライン・ソーシャル・ネットワークに参加し、次いで、自分たちがつながりたいと望むソーシャル・ネットワーキング・システム160のその他の複数のユーザにつながり(すなわち、関係)を付加することができる。本明細書においては、「友達」という用語は、ユーザがソーシャル・ネットワーキング・システム160を通して、つながり、関連付け、または関係を形成しているソーシャル・ネットワーキング・システム160のその他の任意のユーザを示すことができる。
【0036】
特定の実施形態においては、ソーシャル・ネットワーキング・システム160は、ソーシャル・ネットワーキング・システム160によってサポートされるさまざまなタイプのアイテムまたはオブジェクトに関してアクションを取る能力をユーザに提供することができる。限定ではなく、例として、それらのアイテムおよびオブジェクトは、ソーシャル・ネットワーキング・システム160のユーザが属することが可能であるグループもしくはソーシャル・ネットワーク、ユーザが関心を抱く可能性があるイベントもしくはカレンダー・エントリー、ユーザが使用することができるコンピュータベースのアプリケーション、ユーザがサービスを通してアイテムを購入もしくは販売することを可能にするトランザクション、ユーザが実行することができる広告との対話、またはその他の適切なアイテムもしくはオブジェクトを含むことができる。ユーザは、ソーシャル・ネットワーキング・システム160において、またはサードパーティ・システム170の外部システム(ソーシャル・ネットワーキング・システム160とは別個のものであって、ネットワーク110を通してソーシャル・ネットワーキング・システム160に結合されている)によって表されることが可能である任意のものと対話することができる。
【0037】
特定の実施形態においては、ソーシャル・ネットワーキング・システム160は、さまざまなエンティティ同士をリンクできることが可能である。限定ではなく、例として、ソーシャル・ネットワーキング・システム160は、ユーザたちが互いに対話すること、ならびにサードパーティ・システム170もしくはその他のエンティティからのコンテンツを受け取ることを可能にすることができ、またはユーザたちがアプリケーション・プログラミング・インタフェース(API)もしくはその他の通信チャネルを通じてこれらのエンティティと対話することを可能にすることができる。
【0038】
特定の実施形態においては、サードパーティ・システム170は、1つもしくは複数のタイプのサーバ、1つもしくは複数のデータ・ストア、1つもしくは複数のインタフェース(APIを含むが、それには限定されない)、1つもしくは複数のウェブ・サービス、1つもしくは複数のコンテンツ・ソース、1つもしくは複数のネットワーク、または(たとえば、サーバが通信することができる)その他の任意の適切な構成要素を含むことができる。サードパーティ・システム170は、ソーシャル・ネットワーキング・システム160を運営しているエンティティとは異なるエンティティによって運営されることが可能である。しかしながら、特定の実施形態においては、ソーシャル・ネットワーキング・システム160およびサードパーティ・システム170は、ソーシャル・ネットワーキング・システム160またはサードパーティ・システム170のユーザにソーシャルネットワーキング・サービスを提供するために互いに連携して機能することができる。この意味において、ソーシャル・ネットワーキング・システム160は、サードパーティ・システム170などのその他のシステムがインターネットを通してソーシャルネットワーキング・サービスおよび機能をユーザに提供するために使用することができるプラットフォーム、またはバックボーンを提供することができる。
【0039】
特定の実施形態においては、サードパーティ・システム170は、サードパーティ・コンテンツ・オブジェクト・プロバイダを含むことができる。サードパーティ・コンテンツ・オブジェクト・プロバイダは、コンテンツ・オブジェクトの1つまたは複数のソースを含むことができ、それらのソースは、クライアント・システム130に通信されることが可能である。限定ではなく、例として、コンテンツ・オブジェクトは、ユーザにとって関心がある物またはアクティビティに関する情報、たとえば、映画の開始時刻、映画のレビュー、レストランのレビュー、レストランのメニュー、製品の情報およびレビュー、またはその他の適切な情報などを含むことができる。限定ではなく、別の例として、コンテンツ・オブジェクトは、インセンティブ・コンテンツ・オブジェクト、たとえば、クーポン、ディスカウント・チケット、ギフト券、またはその他の適切なインセンティブ・オブジェクトを含むことができる。
【0040】
特定の実施形態においては、ソーシャル・ネットワーキング・システム160はまた、ユーザによって生成されたコンテンツ・オブジェクトを含み、それらのコンテンツ・オブジェクトは、ソーシャル・ネットワーキング・システム160とのユーザの対話を高めることができる。ユーザによって生成されたコンテンツは、ユーザがソーシャル・ネットワーキング・システム160に付加、アップロード、送信、または「投稿」することができる任意のものを含むことができる。限定ではなく、例として、ユーザは、クライアント・システム130からソーシャル・ネットワーキング・システム160へ投稿を通信する。投稿は、ステータス更新もしくはその他のテキスト・データ、ロケーション情報、写真、映像、リンク、音楽、またはその他の類似したデータもしくはメディアなどのデータを含むことができる。コンテンツは、ニュース・フィードまたはストリームなどの「通信チャネル」を通じてサードパーティによってソーシャル・ネットワーキング・システム160に付加されることも可能である。
【0041】
特定の実施形態においては、ソーシャル・ネットワーキング・システム160は、さまざまなサーバ、サブシステム、プログラム、モジュール、ログ、およびデータ・ストアを含むことができる。特定の実施形態においては、ソーシャル・ネットワーキング・システム160は、ウェブ・サーバ、アクション・ロガー、API要求サーバ、関連性およびランキング・エンジン、コンテンツ・オブジェクト分類子、通知コントローラ、アクション・ログ、サードパーティ・コンテンツ・オブジェクト露出ログ、推測モジュール、認可/プライバシー・サーバ、検索モジュール、広告ターゲティング・モジュール、ユーザインタフェース・モジュール、ユーザプロフィール・ストア、つながりストア、サードパーティ・コンテンツ・ストア、またはロケーション・ストアのうちの1つまたは複数を含むことができる。ソーシャル・ネットワーキング・システム160は、適切な構成要素、たとえば、ネットワーク・インタフェース、セキュリティー・メカニズム、ロード・バランサ、フェイルオーバ・サーバ、管理およびネットワークオペレーション・コンソール、その他の適切な構成要素、またはそれらの任意の適切な組合せを含むこともできる。特定の実施形態においては、ソーシャル・ネットワーキング・システム160は、ユーザ・プロフィールを記憶するための1つまたは複数のユーザプロフィール・ストアを含むことができる。ユーザ・プロフィールは、たとえば、経歴情報、人口統計学的情報、挙動情報、ソーシャルな情報、またはその他のタイプの記述的情報、たとえば、職業経験、学歴、趣味もしくはプリファレンス、関心、親近感、またはロケーションを含むことができる。関心情報は、1つまたは複数のカテゴリに関連した関心を含むことができる。カテゴリは、一般的または具体的であることが可能である。限定ではなく、例として、ユーザが、あるブランドの靴に関するストーリに対して「いいね!」を表明した場合には、カテゴリは、そのブランド、または「靴」もしくは「衣類」という一般的なカテゴリであることが可能である。ユーザに関するつながり情報を記憶するために、つながりストアが使用されることが可能である。つながり情報は、類似のもしくは共通の職業経験、グループ・メンバーシップ、趣味、学歴を有しているか、または何らかの形で関連しているか、もしくは共通の属性を共有しているユーザ同士を示すことができる。つながり情報は、さまざまなユーザおよびコンテンツ(内部および外部の両方)の間におけるユーザ定義のつながりを含むこともできる。ネットワーク110を通してソーシャル・ネットワーキング・システム160を1つもしくは複数のクライアント・システム130または1つもしくは複数のサードパーティ・システム170にリンクさせるために、ウェブ・サーバが使用されることが可能である。ウェブ・サーバは、ソーシャル・ネットワーキング・システム160と、1つまたは複数のクライアント・システム130との間においてメッセージを受け取って回送するためにメール・サーバまたはその他のメッセージング機能を含むことができる。API要求サーバは、サードパーティ・システム170が、1つまたは複数のAPIを呼び出すことによってソーシャル・ネットワーキング・システム160からの情報にアクセスすることを可能にすることができる。ソーシャル・ネットワーキング・システム160の上のまたは外のユーザのアクションに関してウェブ・サーバから通信を受け取るために、アクション・ロガーが使用されることが可能である。アクション・ログとともに、サードパーティコンテンツ・オブジェクトへのユーザの露出についてのサードパーティコンテンツオブジェクト・ログが保持されることが可能である。通知コントローラは、コンテンツ・オブジェクトに関する情報をクライアント・システム130に提供することができる。情報は、通知としてクライアント・システム130へ押し出されることが可能であり、または情報は、クライアント・システム130から受け取られた要求に応答してクライアント・システム130から引き出されることが可能である。ソーシャル・ネットワーキング・システム160のユーザの1つまたは複数のプライバシ設定を実施するために、認可サーバが使用されることが可能である。ユーザのプライバシ設定は、ユーザに関連付けられている特定の情報がどのように共有されることが可能であるかを特定する。認可サーバは、ユーザが、たとえば、適切なプライバシ設定を設定することなどによって、自分のアクションをソーシャル・ネットワーキング・システム160によって記録されること、またはその他のシステム(たとえば、サードパーティ・システム170)と共有されることのオプトインまたはオプトアウトを行うことを可能にすることができる。サードパーティ・システム170などのサードパーティから受け取られたコンテンツ・オブジェクトを記憶するために、サードパーティコンテンツオブジェクト・ストアが使用されることが可能である。ユーザに関連付けられているクライアント・システム130から受け取られたロケーション情報を記憶するために、ロケーション・ストアが使用されることが可能である。広告価格設定モジュールが、ソーシャルな情報、現在時刻、ロケーション情報、またはその他の適切な情報を組み合わせて、関連がある広告を、通知の形式でユーザに提供することができる。
【0042】
ソーシャル・グラフ
図2は、例示的なソーシャル・グラフ200を示している。特定の実施形態においては、ソーシャル・ネットワーキング・システム160は、1つまたは複数のソーシャル・グラフ200を1つまたは複数のデータ・ストア内に記憶することができる。特定の実施形態においては、ソーシャル・グラフ200は、複数のノード(複数のユーザ・ノード202、または複数のコンセプト・ノード204を含むことができる)と、ノード同士をつなげる複数のエッジ206とを含むことができる。
図2において示されている例示的なソーシャル・グラフ200は、教示上の目的から、2次元の視覚的なマップ表示で示されている。特定の実施形態においては、ソーシャル・ネットワーキング・システム160、クライアント・システム130、またはサードパーティ・システム170は、適切なアプリケーションに関してソーシャル・グラフ200および関連したソーシャル・グラフ情報にアクセスすることができる。ソーシャル・グラフ200のノードおよびエッジは、データ・オブジェクトとして、たとえば(ソーシャル・グラフ・データベースなどの)データ・ストア内に記憶されることが可能である。そのようなデータ・ストアは、ソーシャル・グラフ200のノードまたはエッジの1つまたは複数の検索可能なまたはクエリ可能なインデックスを含むことができる。
【0043】
特定の実施形態においては、ユーザ・ノード202は、ソーシャル・ネットワーキング・システム160のユーザに対応することができる。限定ではなく、例として、ユーザは、ソーシャル・ネットワーキング・システム160と、またはソーシャル・ネットワーキング・システム160を通して対話または通信する個人(人間のユーザ)、エンティティ(たとえば、企業、ビジネス、もしくはサードパーティ・アプリケーション)、または(たとえば、個人もしくはエンティティの)グループであることが可能である。特定の実施形態においては、あるユーザがソーシャル・ネットワーキング・システム160とのアカウントに登録した場合には、ソーシャル・ネットワーキング・システム160は、そのユーザに対応するユーザ・ノード202を作成し、そのユーザ・ノード202を1つまたは複数のデータ・ストア内に記憶することができる。本明細書において記述されているユーザおよびユーザ・ノード202は、適切な場合には、登録されているユーザ、および登録されているユーザに関連付けられているユーザ・ノード202に及ぶ。追加として、または代替として、本明細書において記述されているユーザおよびユーザ・ノード202は、適切な場合には、ソーシャル・ネットワーキング・システム160に登録されていないユーザに及ぶ。特定の実施形態においては、ユーザ・ノード202は、ユーザによって提供された情報、またはソーシャル・ネットワーキング・システム160を含むさまざまなシステムによって収集された情報に関連付けられることが可能である。限定ではなく、例として、ユーザは、自分の名前、プロフィール画像、連絡先情報、生年月日、性別、婚姻状況、家族状況、勤務先、学歴、プリファレンス、関心、またはその他の人口統計学的情報を提供することができる。特定の実施形態においては、ユーザ・ノード202は、ユーザに関連付けられている情報に対応する1つまたは複数のデータ・オブジェクトに関連付けられることが可能である。特定の実施形態においては、ユーザ・ノード202は、1つまたは複数のページに対応することができる。
【0044】
特定の実施形態においては、コンセプト・ノード204は、コンセプトに対応することができる。限定ではなく、例として、コンセプトは、場所(たとえば、映画館、レストラン、ランドマーク、もしくは都市など)、ウェブサイト(たとえば、ソーシャル・ネットワーキング・システム160に関連付けられているウェブサイト、もしくはウェブアプリケーション・サーバに関連付けられているサードパーティ・ウェブサイトなど)、エンティティ(たとえば、人、企業、グループ、スポーツ・チーム、もしくは有名人など)、ソーシャル・ネットワーキング・システム160内に、もしくはウェブアプリケーション・サーバなどの外部サーバ上に配置されることが可能であるリソース(たとえば、オーディオ・ファイル、映像ファイル、デジタル写真、テキスト・ファイル、構造化されたドキュメント、もしくはアプリケーションなど)、物的もしくは知的財産(たとえば、彫塑、絵画、映画、ゲーム、楽曲、着想、写真、もしくは執筆作品など)、ゲーム、アクティビティ、着想もしくは理論、別の適切なコンセプト、または複数のそのようなコンセプトに対応することができる。コンセプト・ノード204は、ユーザによって提供されたコンセプトの情報、またはソーシャル・ネットワーキング・システム160を含むさまざまなシステムによって収集された情報に関連付けられることが可能である。限定ではなく、例として、コンセプトの情報は、名前もしくはタイトル、1つもしくは複数のイメージ(たとえば、本の表紙のイメージ)、ロケーション(たとえば、住所もしくは地理的ロケーション)、(URLに関連付けられることが可能である)ウェブサイト、連絡先情報(たとえば、電話番号もしくはEメール・アドレス)、その他の適切なコンセプト情報、またはそのような情報の任意の適切な組合せを含むことができる。特定の実施形態においては、コンセプト・ノード204は、コンセプト・ノード204に関連付けられている情報に対応する1つまたは複数のデータ・オブジェクトに関連付けられることが可能である。特定の実施形態においては、コンセプト・ノード204は、1つまたは複数のページに対応することができる。
【0045】
特定の実施形態においては、ソーシャル・グラフ200内のノードは、ページ(「プロフィール・ページ」と呼ばれる場合もある)を表すこと、またはページによって表されることが可能である。プロフィール・ページは、ソーシャル・ネットワーキング・システム160によってホストされること、またはソーシャル・ネットワーキング・システム160にとってアクセス可能であることが可能である。プロフィール・ページは、サードパーティ・サーバ170に関連付けられているサードパーティ・ウェブサイト上にホストされることも可能である。限定ではなく、例として、特定の外部ウェブページに対応するプロフィール・ページは、その特定の外部ウェブページであることが可能であり、そのプロフィール・ページは、特定のコンセプト・ノード204に対応することができる。プロフィール・ページは、その他のユーザのうちのすべてまたは選択されたサブセットによって閲覧できることが可能である。限定ではなく、例として、ユーザ・ノード202は、対応するユーザプロフィール・ページを有することができ、そのユーザプロフィール・ページにおいては、対応するユーザが、コンテンツを付加すること、言明を行うこと、またはその他の形で自分自身を表現することが可能である。限定ではなく、別の例として、コンセプト・ノード204は、対応するコンセプトプロフィール・ページを有することができ、そのコンセプトプロフィール・ページにおいては、1または複数のユーザが、特にコンセプト・ノード204に対応するコンセプトに関連して、コンテンツを付加すること、言明を行うこと、または自分自身を表現することが可能である。
【0046】
特定の実施形態においては、コンセプト・ノード204は、サードパーティ・システム170によってホストされているサードパーティ・ウェブページまたはリソースを表すことができる。サードパーティ・ウェブページまたはリソースは、数ある要素の中でも、コンテンツ、選択可能なもしくはその他のアイコン、または、アクションもしくはアクティビティを表す(たとえば、JAVASCRIPT(登録商標)、AJAX、もしくはPHPコードで実装されることが可能である)その他の対話可能なオブジェクトを含むことができる。限定ではなく、例として、サードパーティ・ウェブページは、「いいね!」、「チェックイン」、「食べる」、「推奨する」、または別の適切なアクションもしくはアクティビティなどの選択可能なアイコンを含むことができる。サードパーティ・ウェブページを閲覧しているユーザは、それらのアイコンのうちの1つ(たとえば、「食べる」)を選択することによってアクションを実行して、クライアント・システム130に、そのユーザのアクションを示すメッセージをソーシャル・ネットワーキング・システム160へ送信させることができる。そのメッセージに応答して、ソーシャル・ネットワーキング・システム160は、ユーザに対応するユーザ・ノード202と、サードパーティ・ウェブページまたはリソースに対応するコンセプト・ノード204との間においてエッジ(たとえば、「食べる」エッジ)を作成して、エッジ206を1つまたは複数のデータ・ストア内に記憶することができる。
【0047】
特定の実施形態においては、ソーシャル・グラフ200内の1対のノードが、1つまたは複数のエッジ206によって互いにつながることが可能である。1対のノードをつなげるエッジ206は、それらの1対のノードの間における関係を表すことができる。特定の実施形態においては、エッジ206は、1対のノードの間における関係に対応する1つまたは複数のデータ・オブジェクトまたは属性を含むことまたは表すことが可能である。限定ではなく、例として、第1のユーザは、第2のユーザが第1のユーザの「友達」であるということを示すことができる。この表示に応答して、ソーシャル・ネットワーキング・システム160は、「友達要求」を第2のユーザに送信することができる。第2のユーザがその「友達要求」を承認した場合には、ソーシャル・ネットワーキング・システム160は、ソーシャル・グラフ200内で第1のユーザのユーザ・ノード202を第2のユーザのユーザ・ノード202につなげるエッジ206を作成して、エッジ206をソーシャル・グラフ情報としてデータ・ストア24のうちの1つまたは複数の中に記憶することができる。
図2の例においては、ソーシャル・グラフ200は、ユーザ「A」のユーザ・ノード202と、ユーザ「B」のユーザ・ノード202との間における友達関係を示すエッジ206と、ユーザ「C」のユーザ・ノード202と、ユーザ「B」のユーザ・ノード202との間における友達関係を示すエッジとを含む。本開示は、特定のユーザ・ノード202同士をつなげる特定の属性を伴う特定のエッジ206を記述している、または示しているが、本開示は、ユーザ・ノード202同士をつなげる任意の適切な属性を伴う任意の適切なエッジ206を想定している。限定ではなく、例として、エッジ206は、友達関係、家族関係、ビジネスもしくは雇用関係、ファン関係、フォロワー関係、ビジター関係、サブスクライバ関係、上下関係、互恵的関係、非互恵的関係、別の適切なタイプの関係、または複数のそのような関係を表すことができる。その上、本開示は一般に、ノード同士をつながっているものとして記述しているが、本開示はまた、ユーザ同士またはコンセプト同士をつながっているものとして記述している。本明細書においては、つながっているユーザ同士またはコンセプト同士への言及は、適切な場合には、1つまたは複数のエッジ206によってソーシャル・グラフ200内でつながっているそれらのユーザ同士またはコンセプト同士に対応するノード同士に及ぶ。
【0048】
特定の実施形態においては、ユーザ・ノード202とコンセプト・ノード204との間におけるエッジ206は、ユーザ・ノード202に関連付けられているユーザによって、コンセプト・ノード204に関連付けられているコンセプトに対して実行された特定のアクションまたはアクティビティを表すことができる。限定ではなく、例として、
図2において示されているように、ユーザは、コンセプトに対して「いいね!を表明すること」、「通うこと」、「プレイすること」、「聴くこと」、「料理すること」、「勤務すること」、または「観ること」を行った可能性があり、それらのそれぞれは、エッジタイプまたはサブタイプに対応することができる。コンセプト・ノード204に対応するコンセプトプロフィール・ページは、たとえば、選択可能な「チェックイン」アイコン(たとえば、クリック可能な「チェックイン」アイコンなど)、または選択可能な「お気に入りに追加」アイコンを含むことができる。同様に、ユーザがこれらのアイコンをクリックした後に、ソーシャル・ネットワーキング・システム160は、それぞれのアクションに対応するユーザのアクションに応答して「お気に入り」エッジまたは「チェックイン」エッジを作成することができる。限定ではなく、別の例として、あるユーザ(例えば、ユーザ「C」)が、特定のアプリケーション(例えば、オンライン音楽アプリケーションであるSPOTIFY)を使用して特定の楽曲(例えば「イマジン」)を聴く場合がある。このケースにおいては、ソーシャル・ネットワーキング・システム160は、そのユーザに対応するユーザ・ノード202と、その楽曲およびアプリケーションに対応するコンセプト・ノード204との間において、(
図2に示されているような)「聴いた」エッジ206および「使用した」エッジを作成して、そのユーザがその楽曲を聴いてそのアプリケーションを使用したということを示すことができる。その上、ソーシャル・ネットワーキング・システム160は、その楽曲に対応するコンセプト・ノード204と、そのアプリケーションに対応するコンセプト・ノード204との間において、(
図2に示されているような)「再生した」エッジ206を作成して、その特定の楽曲がその特定のアプリケーションによって再生されたということを示すことができる。このケースにおいては、「再生した」エッジ206は、外部アプリケーション(SPOTIFY)によって外部オーディオ・ファイル(「イマジン」という楽曲)に関して実行されたアクションに対応する。本開示は、ユーザ・ノード202とコンセプト・ノード204とをつなげる特定の属性を伴う特定のエッジ206について記述しているが、本開示は、ユーザ・ノード202とコンセプト・ノード204とをつなげる任意の適切な属性を伴う任意の適切なエッジ206を想定している。その上、本開示は、単一の関係を表すユーザ・ノード202とコンセプト・ノード204との間におけるエッジについて記述しているが、本開示は、1つまたは複数の関係を表すユーザ・ノード202とコンセプト・ノード204との間におけるエッジを想定している。限定ではなく、例として、エッジ206は、ユーザが特定のコンセプトに対して「いいね!」を表明しているということ、およびその特定のコンセプトを使用したということの両方を表すことができる。あるいは、別のエッジ206は、(
図2において、ユーザ「E」を表すユーザ・ノード202と、「SPOTIFY」を表すコンセプト・ノード204との間において示されているような)ユーザ・ノード202とコンセプト・ノード204との間におけるそれぞれのタイプの関係(または、単一の関係が複数集まったもの)を表すことができる。
【0049】
特定の実施形態においては、ソーシャル・ネットワーキング・システム160は、ソーシャル・グラフ200内でユーザ・ノード202とコンセプト・ノード204との間においてエッジ206を作成することができる。限定ではなく、例として、(たとえば、ユーザのクライアント・システム130によってホストされているウェブ・ブラウザまたは専用のアプリケーションを使用することなどによって)コンセプトプロフィール・ページを閲覧しているユーザは、「いいね!」アイコンをクリックまたは選択することにより、コンセプト・ノード204によって表されているコンセプトを自分が気に入っているということを示すことができ、その「いいね!」アイコンをクリックまたは選択することは、ユーザのクライアント・システム130に、そのコンセプトプロフィール・ページに関連付けられているそのコンセプトをそのユーザが気に入っているということを示すメッセージをソーシャル・ネットワーキング・システム160へ送信させることができる。そのメッセージに応答して、ソーシャル・ネットワーキング・システム160は、そのユーザとコンセプト・ノード204との間における「いいね!」エッジ206によって示されているように、そのユーザに関連付けられているユーザ・ノード202とコンセプト・ノード204との間においてエッジ206を作成することができる。特定の実施形態においては、ソーシャル・ネットワーキング・システム160は、エッジ206を1つまたは複数のデータ・ストア内に記憶することができる。特定の実施形態においては、エッジ206は、特定のユーザ・アクションに応答してソーシャル・ネットワーキング・システム160によって自動的に形成されることが可能である。限定ではなく、例として、第1のユーザが、画像をアップロードすること、映画を観ること、または楽曲を聴くことを行った場合には、エッジ206は、第1のユーザに対応するユーザ・ノード202と、それらのコンセプトに対応するコンセプト・ノード204との間において形成されることが可能である。本開示は、特定の様式で特定のエッジ206を形成することについて記述しているが、本開示は、任意の適切な様式で任意の適切なエッジ206を形成することを想定している。
【0050】
カード・スタック・インタフェース
図3は、例示的なモバイル・クライアント・システム130を示す。本開示は、任意の好適な物理的形態をとるモバイル・クライアント・システム130を企図する。特定の実施形態では、モバイル・クライアント・システム130は、下記のようにコンピューティング・システムであってもよい。限定するものとしてではなく例として、モバイル・クライアント・システム130は、シングルボード・コンピュータ・システム(SBC)(たとえば、コンピュータ・オン・モジュール(COM)もしくはシステム・オン・モジュール(SOM)など)、ラップトップもしくはノートブック・コンピュータ・システム、モバイル電話、スマートフォン、携帯情報端末(PDA)、タブレット・コンピュータ・システム、またはそれらの2つ以上の組合せであってもよい。特定の実施形態では、モバイル・クライアント・システム130は、入力構成要素としてタッチ・センサ132を有してもよい。
図3の例では、タッチ・センサ132は、モバイル・クライアント・システム130の前面に組み込まれている。容量性タッチ・センサの場合、送信用と受信用の2つのタイプの電極があり得る。これらの電極は、電気パルスで送信用電極を駆動し、タッチまたは近接入力によって引き起こされるキャパシタンスの変化を受信用電極から測定するように設計されたコントローラに接続され得る。
図3の例では、1つまたは複数のアンテナ134A〜134Bがモバイル・クライアント・システム130の1つまたは複数の側部に組み込まれてもよい。アンテナ134A〜134Bは、電流を電波に、またその逆に変換する構成要素である。信号の送信中、送信機は、振動する無線周波数(RF)電流をアンテナ134A〜134Bの端子に印加し、アンテナ134A〜134Bは、印加された電流のエネルギーを電磁(EM)波として放射する。信号の受信中には、アンテナ134A〜134Bは、入って来たEM波の電力をアンテナ134A〜134Bの端子における電圧に変換する。この電圧は、増幅するために受信機に伝送され得る。
【0051】
特定の実施形態では、モバイル・クライアント・システム130は、イーサネット(登録商標)もしくは他の有線ベースのネットワークと通信するためのアンテナ134A〜134Bに結合されている通信構成要素、または無線NIC(WNIC)、たとえばWI−FIネットワークなど無線ネットワークと通信するための無線アダプタ、または第3世代移動通信(3G)もしくはロング・ターム・エボリューション(LTE)ネットワークなどセルラ・ネットワークと通信するためのモデムを含んでもよい。本開示は、任意の好適なネットワーク、およびそのための任意の好適な通信構成要素20を企図する。限定するものとしてではなく一例として、モバイル・クライアント・システム130は、アド・ホック・ネットワーク、パーソナル・エリア・ネットワーク(PAN)、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)、メトロポリタン・エリア・ネットワーク(MAN)、またはインターネットの1つもしくは複数の部分、あるいはそれらの2つ以上の組合せと通信することができる。これらのネットワークの1つまたは複数のうちの1つまたは複数の部分は、有線であっても無線であってもよい。別の例として、モバイル・クライアント・システム130は、無線PAN(WPAN)(たとえば、BLUETOOTH(登録商標)WPANなど)、WI−FIネットワーク、WI−MAXネットワーク、セルラ電話ネットワーク(たとえば、グローバル移動体通信システム(GSM(登録商標))、3G、またはLTEネットワークなど)、または他の任意の無線ネットワーク、あるいはそれらの2つ以上の組合せと通信することができる。モバイル・クライアント・システム130は、適切な場合、これらのネットワークのいずれかのための任意の好適な通信構成要素を含むことができる。
【0052】
特定の実施形態では、モバイル・クライアント・システム130のアンテナ134A〜134Bに結合されている通信構成要素は、全世界測位システム(GPS)信号、セルラ三角法、無線ホットスポット、またはロケーション・データを決定するための任意の好適な方法に基づいてロケーション・データを決定するように構成されてもよい。特定の実施形態では、モバイル・クライアント・システム130のロケーション・サービスは、たとえば1つまたは複数のセルラ・タワーのロケーション、WI−FIホットスポットに関連付けられているクラウドソーシングによるロケーション情報、またはモバイル・クライアント・システム130のGPS機能を使用することなど、1つまたは複数のロケーション決定方法を使用してもよい。限定するものとしてではなく一例として、アプリケーションは、少なくとも一部にはモバイル・クライアント・システム130が所定の期間内にGPSデータを取得することができるか否かに応じて、GPSデータをロケーション情報の主要源として使用してもよい。別の例として、モバイル・クライアント・システム130が所定のサンプリング持続時間内にGPSデータを取得することができない場合、アプリケーションは、1つまたは複数のセルラ・タワーまたはWI−FIホットスポットを使用して決定されたロケーションを使用してもよい。本開示は、ロケーション決定の特定の方法を使用するロケーション・サービスについて述べているが、本開示は、ロケーション検出の任意の好適な方法または方法の組合せを使用するロケーション・サービスを企図する。
【0053】
特定の実施形態では、カード・スタック・インタフェースは、下記のように、ホーム画面、およびモバイル・クライアント・システム130上で実行される1つもしくは複数のアプリケーションまたはアプリケーションに関連付けられている任意のコンテンツの視覚的なモデルであってよい。限定するものとしてではなく一例として、ホーム画面は、たとえばモバイル・クライアント・システム130の背景画像などモバイル・クライアント130の1つもしくは複数の設定を設定する、または、たとえばデフォルトのウェブ・ブラウザなどモバイル・クライアント・システム130上にインストールされた特定のアプリケーションに特定の機能を関連付けることができるアプリケーションであってもよい。特定の実施形態では、モバイル・クライアント・システム130は、下記のように、カード・スタック・インタフェースを使用し、ホーム画面とアプリケーションまたはアプリケーションのコンテンツとの間で探索することができる。限定するものとしてではなく一例として、カード・スタック・インタフェースのカードは、ホーム画面のグラフィカル・ユーザ・インタフェース(GUI)に対応してもよく、モバイル・クライアント・システム130上で実行されるアプリケーションを使用した後、またはモバイル・クライアント・システム130上で電話呼を完了した後、ユーザが「ホーム」ボタンを押した、または作動させたことに応答してモバイル・クライアント・システム130上に表示するために提供されてもよい。下記のように、アプリケーションまたはアプリケーションのコンテンツに対応するカードを、そのアプリケーションを「起動」または実行したことに応答してカード・スタックに追加してもよい。特定の実施形態では、モバイル・クライアント・システム130のユーザは、下記のように、カード・スタック・インタフェースのカードを通じてアプリケーションと実行されたアプリケーションのコンテンツとの間で探索することができる。
【0054】
図4は、例示的なカード・スタック・インタフェースを示す。カード・スタック・インタフェース(カード450A〜450Cを含む)の1または複数の「カード」450が、モバイル・クライアント・システム130の表示領域454内に表示されてもよい。
図4の例では、各カード450は、モバイル・クライアント・システム130上で実行されるアプリケーションまたはアプリケーションに関連付けられているコンテンツのGUIに対応し得る。特定の実施形態では、カード・スタック・インタフェースのカード450Bは、モバイル・クライアント・システム130上で実行されるアプリケーションのGUIに対応してもよい。上記のように、カード・スタック・インタフェース内のカード450Aは、モバイル・クライアント・システム130のホーム画面のGUIに対応してもよい。限定するものとしてではなく一例として、カード450Aは、ホーム画面のGUIに対応し、モバイル・クライアント・システム130のアプリケーション・ランチャとして機能してもよい。限定するものとしてではなく一例として、カード450Aは、「ホーム」ボタンを作動させたこと、または、たとえば実質的に表示領域454の上部から下向きにスワイプを実施することなど所定のタッチ入力を検出したことに応答して表示するように提供されてもよい。特定の実施形態では、ホーム画面のGUIに対応するカード450Aは、モバイル・クライアント・システム130上にインストールされた1つまたは複数のアプリケーションまたはコンテンツに対応する1つまたは複数の対話要素452を含んでもよい。特定の実施形態では、カード450Aは、対話要素452の直線横断の視覚的な表現であってもよい。限定するものとしてではなく一例として、対話要素452は、起動されたアプリケーションまたはコンテンツに従って左から右に順序付けられてもよい。別の例として、対話要素652をタップすることにより、対話要素452に関連付けられているカード650B〜650Cを生成することができる。
【0055】
特定の実施形態では、モバイル・クライアント・システム130上で実行されるアプリケーションまたはアプリケーションのコンテンツに対応する1または複数のカード450は、カード・スタック・インタフェース450として表示されてもよい。
図4の例では、カード450Bは、モバイル・クライアント・システム130上で実行されるアプリケーションのGUIに対応し、カード450Cは、モバイル・クライアント・システム130上で実行されるアプリケーションに関連付けられているコンテンツのGUIに対応する。特定の実施形態では、カード450Bは、モバイル・クライアント・システム130上でアプリケーションを起動したことに応答して表示するように提供されてもよい。特定の実施形態では、モバイル・クライアント・システム130上の1つまたは複数のアプリケーションが、それらのGUIの提示を、カード・スタック・インタフェース450内のカード450Cとして制御してもよい。カード450Cは、実行されるアプリケーションの設定に少なくとも一部基づいて表示するように提供されてもよい。限定するものとしてではなく一例として、カード450Bは、ソーシャル・ネットワーキング・システムまたはウェブ・ブラウザのGUIに対応してもよく、コンテンツ・カード450Cは、それぞれソーシャル・ネットワーキング・システム上のユーザのプロフィール・ページまたはウェブ・ブラウザのタブに対応してもよい。ソーシャル・ネットワーキング・システムまたはウェブ・ブラウザは、1つまたは複数の別個のカード450C内に特定のコンテンツのGUIを自動的に表示するようにカード・スタック・インタフェースを構成してもよい。特定の実施形態では、アプリケーションのコンテンツに関連付けられているカード450Cは、たとえばスワイプ・タッチジェスチャ、またはアプリケーションのGUIの所定のロケーションをタップすることなど、所定のタッチ入力をユーザが実施したことに応答して表示するように提供されてもよい。特定の実施形態では、各カード450のGUIは、関連のアプリケーションまたは関連のアプリケーションのコンテンツのスクリーンショットとして描かれてもよい。本開示は、特定の特性およびコンテンツを有するカードの特定の構成について例示し述べているが、本開示は、たとえば寸法または外観など任意の好適な特性およびコンテンツを有するカードの任意の好適な構成を企図する。さらに、本開示は、たとえばパーソナル・コンピュータ、タブレット・コンピュータ、またはスマートフォンなど任意の好適なコンピューティング・デバイス上で実装されたカード・スタック・インタフェースを企図する。
【0056】
図4の例では、起動されたアプリケーションのGUIに対応するカード450Bおよび起動されたアプリケーションに関連付けられているコンテンツのGUIに対応するカード450Cが、モバイル・クライアント・システム130のホーム画面のGUIに関連付けられているカード450Aを覆い隠してもよい。上記のように、モバイル・クライアント・システム130上でアプリケーションのGUIを開くことにより、そのGUIに対応するカード450Cをカード・スタック・インタフェース450に追加することが開始されてもよい。特定の実施形態では、カード450Cは、カード450Cに関連付けられているアプリケーションまたはコンテンツが起動されたときカード・スタック・インタフェースの上部に配置されてもよい。特定の実施形態では、カード・スタック450内のカードの順序は、カード450B〜450Cに対応するGUIが開かれた順序に少なくとも一部基づいて決定されてもよい。限定するものとしてではなく一例として、カード450B〜450Cは、アプリケーションがいつ起動されたか、またはアプリケーションに関連付けられているコンテンツがいつアプリケーションから分離された、または「飛び出した(popped out)」かに基づいて時系列で表示されてもよい。限定するものとしてではなく一例として、アプリケーション・カード450Bおよびコンテンツ・カード450Cは、つい最近実行されたアプリケーションまたはアプリケーションに関連付けられているコンテンツがカード・スタック内のより高いところに表示されるように表示するために提供されてもよい。
【0057】
特定の実施形態では、モバイル・クライアント・システム130のユーザは、モバイル・クライアント・システム130のタッチ・センサによって検出されるタッチ入力を使用してカード450を探索することができる。限定するものとしてではなく一例として、ユーザは、モバイル・クライアント・システム130のディスプレイ上でカード450がどのように積まれているかに応じて、カード450の露出された縁を上へスワイプすること、または引き下げることによってカード450間を探索することができる。本開示は、特定のタッチ・ジェスチャを使用してカードを探索することについて述べているが、本開示は、たとえばボタンを作動させることなど、任意の好適なユーザ入力を通じたカードの探索を企図する。特定の実施形態では、モバイル・クライアント・システム130のカード・スタック・インタフェースは、ユーザ入力を検出し、たとえば450Bなどカードをカード・スタック・インタフェースの上部のカードとして表示してもよく、カード・スタック・インタフェースは、ユーザ入力に応答してカード・スタック・インタフェースの上部のカードを表示してもよい。限定するものとしてではなく一例として、カード・スタック・インタフェースは、より最近開かれたGUIに対応するカード450B〜450Cをカード・スタック・インタフェース内でより高いところに、開かれたのがそれほど最近でないGUIをカード・スタック・インタフェース内でより低いところに表示することによって、カード・スタック・インタフェース内でカード450を順序付けてもよい。特定の実施形態では、カード・スタック・インタフェースのカード450は、モバイル・クライアント・システム130のディスプレイの電源を切ったこと、モバイル・クライアント・システム130の地理的ロケーションの変化、モバイル・クライアント・システム130の1つもしくは複数のセンサを通じて所定の移動が検出されたこと、モバイル・クライアント・システム130のタッチ・センサを通じて1もしくは複数の所定のタッチ・ジェスチャが検出されたこと、ネットワーク条件の変化(たとえば、コネクティビティの喪失)、アプリケーション・プログラミング・インタフェース(API)を通じて1もしくは複数のカード450に対するより高い優先順位を求める要求を受け取ったこと、またはそれらの任意の組合せに応答して再順序付けされてもよい。本開示は、特定の基準に基づいてカード・スタック・インタフェースの1または複数のカードを再順序付けすることについて述べているが、本開示は、任意の好適な基準に基づくカード・スタック・インタフェースのカードの再順序付けを企図する。
【0058】
特定の実施形態では、ユーザは、カード・スタック・インタフェースの上部のカード450Cに関連付けられているアプリケーションまたはコンテンツと対話することができる。
図4の例では、カード450Cは、ソーシャル・ネットワーキング・システム上の特定のユーザのプロフィール・ページに対応するGUIとすることができ、モバイル・クライアント・システム130のユーザは、プロフィール・ページのGUIに対応するカード450Cを通じてプロフィール・ページと対話することができる。次いで、ユーザは、モバイル・クライアント・システム130のホーム画面のGUIに対応するカード450Aをカード・スタック・インタフェースの上部に移動し、たとえばニュース・フィードなど対話要素452の1つに関連付けられているアプリケーションを起動することができる。ニュース・フィードを起動した後で、ユーザは、ソーシャル・ネットワーキング・システムに関連付けられているカード450Bをカード・スタック・インタフェースの上部に移動し、ソーシャル・ネットワーキング・システムのGUIに対応するカード450Bを通じて、たとえば別のユーザのソフトウェア更新に対してコメントすることなど、ソーシャル・ネットワーキング・システムと対話することができる。
【0059】
提案クエリおよびカード
はじめに
特定の実施形態では、ソーシャル・ネットワーキング・システム160は、上記のソーシャル・グラフのコンセプト・ノードとして表され得るオブジェクトのパーソナライズされた推奨を生成するように構成されてもよい。本明細書では、提案クエリと称することは、1つまたは複数の検索語がユーザの情報により自動的に埋められる検索クエリに及ぶ。本明細書では、クエリ−ドメインと称することは、特定のカテゴリに関係するコンテンツ・オブジェクトの論理グループ化に及ぶ。本明細書では、クエリ−フィルタと称することは、メタデータを参照するクエリ−ドメインまたはそのクエリ−ドメインのオブジェクトの属性に適用されたフィルタに及び。限定するものとしてではなく一例として、ソーシャル・ネットワーキング・システム160は、ユーザのための提案クエリを、1つもしくは複数の構造化クエリ、非構造化クエリ、またはそれらの任意の組合せとして生成することができる。別の例として、ソーシャル・ネットワーキング・システム160は、提案クエリの1つまたは複数の検索結果を参照する1または複数のカードを生成することができる。本開示は、提案クエリを特定の方法で生成することについて述べているが、本開示は、提案クエリを任意の好適なようにして生成することを企図する。
【0060】
図5は、オンライン・ソーシャル・ネットワークの例示的なページを示す。検索を行うために、ユーザは、検索クエリを検索エンジンに入力する、または送ることができる。一般に、ユーザは、ソーシャル・ネットワーキング・システム160のページ520の検索クエリ・フィールド510内に任意の文字列を入力し、そのテキスト・クエリに一致するソーシャル・ネットワーキング・システム160上のコンテンツを求めて検索することができる。特定の実施形態では、ページ520は、下記のようにユーザに対してパーソナライズされる推奨に各カード450が対応し得る1つまたは複数のカード・クラスタ530を提示することができる。限定するものとしてではなく一例として、1つまたは複数のカード・クラスタ530は、ユーザが検索クエリ・フィールド510内でクラスタをクリックしたことに応答してページ520上に表示されてもよい。特定の実施形態では、ソーシャル・ネットワーキング・システム160によって自動的に生成された1つまたは複数のユーザに関連する検索語を含むユーザのための提案クエリを通じて、アプリケーションまたはページ520がカードを生成してもよい。次いで、各カード450は、カード450に関連付けられている提案クエリに対応する1つまたは複数の検索結果550を含むことができる。特定の実施形態では、最初のカード・クラスタ530は、下記のようにフィルタリングなしで1または複数のカード450を含んでもよい。
【0061】
特定の実施形態では、提案クエリは、1つまたは複数の検索語により自動的に埋められた句に対応してもよく、非構造化テキスト・クエリの形態をとってもよい。次いで、ソーシャル・ネットワーキング・システム160は、提案クエリに一致するコンテンツを識別するためにデータ・ストア164(または、具体的にはソーシャル・グラフ・データベース)を検索することができる。検索エンジンは、様々な検索アルゴリズムを使用して、提案クエリに基づいて検索を行い、提案された検索クエリに最も関係するであろうリソースまたはコンテンツ(たとえば、ユーザプロフィール・ページ、コンテンツプロフィール・ページ、または外部リソース)を識別する検索結果を生成することができる。それに応じて、検索エンジンは、提案クエリに関連するであろう1つまたは複数のリソースを識別することができ、その各々が個別に、提案クエリに対応する「検索結果」と呼ばれることも、まとめて「検索結果」と呼ばれることもある。識別されたコンテンツは、たとえばソーシャル・グラフ要素(たとえば、ユーザ・ノード202またはコンセプト・ノード204)、プロフィール・ページ、外部ウェブページ、またはそれらの任意の組合せを含んでもよい。下記のように、次いでソーシャル・ネットワーキング・システム160は、ユーザに送ることができる識別されたコンテンツに対応する1または複数のカード450を有する1つまたは複数のカード・クラスタ530を生成することができる。
【0062】
図5および
図8の例に示されているように、提案クエリの結果は、1または複数のカード450の形態でユーザに提示されてもよく、各カードは、1つまたは複数のリンクまたはハイパーリンクを含んでもよい1つまたは複数の検索結果550を有し、各リンクは、識別されたリソースまたはコンテンツのいくつかを含む異なるページに関連付けられる。特定の実施形態では、カード450内の各リンクは、対応するページがどこに位置するか、およびそれを取り出すための機構を指定するユニフォーム・リソース・ロケータ(URL)の形態であってもよい。次いで、ソーシャル・ネットワーキング・システム160は、1または複数のカード450を(たとえば、カード・クラスタ530として)ユーザのクライアント・システム130上のウェブ・ブラウザ132に送ることができる。次いで、ユーザは、URLリンク上でクリックする、または他の方法でカード450のコンテンツを選択し、ソーシャル・ネットワーキング・システム160から、または外部システム(たとえば、サードパーティ・システム170など)から適宜コンテンツにアクセスすることができる。
【0063】
下記のように各カード・クラスタ530のカード450は、ユーザに対するそれらの推定される相対関連度に従ってランク付けされ、ユーザに提示されてもよい。換言すれば、カード450は、たとえばソーシャル・グラフ情報、ユーザ情報、ユーザの検索もしくはブラウズ履歴、またはユーザに関係する他の好適な情報に基づいて、ユーザのためにパーソナライズされてもよい。特定の実施形態では、これらのカードは、ランキング・アルゴリズムを使用してランク付けされ(したがって、特定のユーザのためにパーソナライズされ)てもよい。ランキング・アルゴリズムは、任意の好適なようにしてソーシャル・ネットワーキング・システム160によって(たとえば、検索エンジンによって、または別の好適なシステムによって)実装されてもよい。限定するものとしてではなく一例として、ユーザに対してより関連性の高いカードは、ユーザに対してより関連性が低いカードより高くランク付けされてもよい。特定の実施形態では、検索エンジンは、その検索をオンライン・ソーシャル・ネットワーク上のリソースおよびコンテンツに限定してもよい。しかし、特定の実施形態では、検索エンジンは、サードパーティ・システム170、インターネットもしくはワールド・ワイド・ウェブ、または他の好適なリソースなど、他のリソース上のリソースおよびコンテンツを求めて検索してもよい。本開示は、特定の方法でソーシャル・ネットワーキング・システム160にクエリすることについて述べているが、本開示は、任意の好適なようにしてソーシャル・ネットワーキング・システム160にクエリすることを企図する。
【0064】
特定の実施形態では、ページ520上に表示された1もしくは複数のカード450またはカード・クラスタ530は、テキストが検索クエリ・フィールド510内に入力されたことに応答して修正されてもよい。特定の実施形態では、1つまたは複数のクライアント側および/またはバックエンド(サーバ側)プロセスは、ユーザに関連する語、およびユーザによって検索クエリ・フィールド510内に現在入力されているテキストを含むように提案クエリを自動的に修正することができる「タイプ・アヘッド」機能を実装し使用してもよい。特定の実施形態では、ユーザがテキストを検索クエリ・フィールド510内に入力しているとき、タイプ・アヘッド機能は、宣言内に入力されるテキスト文字列を、ユーザ、コンセプト、またはエッジ、およびソーシャル・グラフ200内のそれらの対応する要素に対応する文字列(たとえば、名前、説明)に一致させようと試みることができる。特定の実施形態では、一致が見出された場合、タイプ・アヘッド機能は、提案クエリに、既存のソーシャル・グラフ要素のソーシャル・グラフ要素(たとえば、ノード名/タイプ、ノードID、エッジ名/タイプ、エッジID、または別の好適な参照もしくは識別子)に対する参照を自動的に入力することができる。限定するものとしてではなく一例として、ユーザが「食品」または「レストラン」とタイプ入力した場合、ユーザにタイプ入力を続けさせながら、「...のレストラン」などいくつかのタイプ・アヘッドによる提案を組み込む1または複数のカード450が表示されてもよい。さらに、[レストラン]カード(たとえば、450)がカード・クラスタ530の上部に移動されてもよく、たとえば「TVで何が放映中か」など食品関連でない1または複数のカード(たとえば、450)が隠されてもよい。次いで、ユーザは、1または複数の[レストラン]カードをレストラン推奨のパーソナライズされたリストとして探索することができる。タイプ・アヘッド・プロセスに関するより多くの情報は、2010年4月19日に出願された米国特許出願第12/763162号および2012年7月23日に出願された米国特許出願第13/556072号に見出すことができ、これらを本願明細書に援用する。
【0065】
特定の実施形態では、本明細書に記載のタイプ・アヘッド・プロセスは、ユーザによって入力される検索クエリに適用されてもよい。限定するものとしてではなく一例として、ユーザがテキスト文字を検索クエリ・フィールド510内に入力したとき、タイプ・アヘッド・プロセスは、ユーザが文字を入力しているとき検索クエリ・フィールド510内入力された文字列に一致する1つまたは複数のユーザ・ノード202、コンセプト・ノード204、またはエッジ206を識別しようと試みることができる。タイプ・アヘッド・プロセスが文字列またはnグラムを含む要求または呼出しをテキスト・クエリから受け取ったとき、タイプ・アヘッド・プロセスは、修正された提案クエリを実施する、または実施させ、既存のソーシャル・グラフ要素(すなわち、ユーザ・ノード202、コンセプト・ノード204、エッジ206)を、それぞれの名前、タイプ、カテゴリ、またはユーザに関連付けられている情報と共に入力されたテキストと一致する他の識別子に少なくとも一部基づいて識別することができる。タイプ・アヘッド・プロセスは、1つまたは複数のマッチング・アルゴリズムを使用し、一致するノードまたはエッジを識別しようと試み、識別されたノードまたはエッジを組み込む修正された提案クエリを処理することができる。修正された提案クエリに応答して、ソーシャル・ネットワーキング・システム160は、一致するソーシャル・グラフ要素を求めて、または一致するソーシャル・グラフ要素につながっているソーシャル・グラフ要素を求めて、適宜、ソーシャル・グラフ・データベースを自動的に(あるいは、要求内の命令に基づいて)呼び出す、または他の方法で検索することができる。本開示は、タイプ・アヘッド・プロセスを特定の方法で検索クエリに適用することについて述べているが、本開示は、タイプ・アヘッド・プロセスを任意の好適なようにして検索クエリに適用することを企図する。
【0066】
検索クエリおよび検索結果に関連して、特定の実施形態は、2006年8月11日に出願された米国特許出願第11/503093号、2010年12月22日に出願された米国特許出願第12/977027号、2010年12月23日に出願された米国特許出願第12/978265号、および2013年10月11日に出願された米国特許出願第14/052536号に開示されている1つまたは複数のシステム、構成要素、要素、機能、方法、動作、またはステップを使用することができ、これらを本願明細書に援用する。
【0067】
要素検出、および曖昧語の構文解析
上記のように、ユーザによってテキストが検索クエリ・フィールド510内に入力されたことに応答して、ソーシャル・ネットワーキング・システム160は、特定のソーシャル・グラフ要素に対応し得るテキストの一部分を識別することができる。しかし、場合によっては、検索クエリ・フィールド510内に入力されたテキストは、曖昧な1つまたは複数の語を含むことがあり、曖昧語は、複数のソーシャル・グラフ要素に対応する可能性がある語である。曖昧語を構文解析するために、ソーシャル・ネットワーキング・システム160は、ソーシャル・グラフ200にアクセスし、次いで、テキスト・クエリからの曖昧なnグラムに対応するソーシャル・グラフ要素を識別するためにテキストを構文解析することができる。次いで、ソーシャル・ネットワーキング・システム160は、1つまたは複数の構造化クエリを含むように提案クエリを修正することができ、各構造化クエリは、可能な一致するソーシャル・グラフ要素の1つに対応する。これらの構造化クエリは、関連のソーシャル・グラフ要素に対する参照を有する自然言語構文で書き直されるように、文法モデルによって生成される文字列に基づいてもよい。特定の実施形態では、これらの構造化クエリは、どのソーシャル・グラフ要素がユーザに対して最も関連性が高いか構造化クエリから推定するために、ユーザに関連付けられている情報に基づいてランク付けされてもよい。次いで、ソーシャル・ネットワーキング・システム160は、テキスト内の曖昧語をユーザに対して最も関連性が高いと推定されたソーシャル・グラフ要素にロックし、次いで、関連のソーシャル・グラフ要素に基づいて構造化クエリの新しいセットを生成することができる。本開示は、特定の構造化クエリを特定の方法で生成することについて述べているが、本開示は、構造化クエリを任意の好適なようにして生成することを企図する。
【0068】
限定するものとしてではなく一例として、ユーザは、非構造化テキスト「友達 スタンフォード」を検索クエリ・フィールド510内に入力することができる。クエリするユーザがこの非構造化テキストを検索クエリ・フィールド510内に入力したとき、ソーシャル・ネットワーキング・システム160は、上記のように、この非構造化テキストを組み込む構造化クエリを含むように提案クエリを修正することができる。特定の実施形態では、ソーシャル・ネットワーキング・システム160、提案クエリは、下記のように、たとえば現在の、またはユーザ・プロフィール情報など、ユーザに関連する情報を含むように自動的に埋められた1つまたは複数の非構造化クエリの形態をとってもよい。当然ながら、テキストは、標準的な言語/文法規則(たとえば、英語の文法)に関して構造化されてもよい。しかし、テキストは、通常、ソーシャル・グラフ要素に関して非構造化されたものになる。換言すれば、検索クエリ・フィールド510内に入力されるテキストは、通常、特定のソーシャル・グラフ要素に対する埋め込まれた参照を含まないことがある。したがって、本明細書では、構造化クエリは、特定のソーシャル・グラフ要素に対する参照を含み、検索エンジンが識別された要素に基づいて検索することを可能にするクエリに及ぶ。さらに、テキストは、形式クエリ構文に関して非構造化されたものになり得る。換言すれば、テキストは、必ずしも検索エンジンによって直接的に実行可能なクエリ・コマンドのフォーマットではないことがある(たとえば、テキスト・クエリ「友達 スタンフォード」を構文解析し、提案クエリ・コマンド「intersect(学校(スタンフォード大学),友達(私)」または「/search/私/友達/[スタンフォード大学のためのノードID]/生徒/ever−past/intersect」を形成することができ、これらは、ソーシャル・グラフ・データベース内で提案クエリとして実行され得る)。下記で論じるカード450に関して、ソーシャル・ネットワーキング・システム160は、タイプ・アヘッド・クエリ結果にも構造化クエリ結果にも対応するカード450を生成することができる。限定するものとしてではなく一例として、ソーシャル・ネットワーキング・システム160は、タイプ・アヘッド・プロセスの結果に対応する第1のカード450、クエリ「近くの友達」に対応する第2のカード450、および構造化クエリ「スタンフォードに行った近くの友達」の結果に対応する第3のカード450を生成することができる。次いで、これらのカード450は、下記で論じるように、ランク付けおよびフィルタされてもよい。
【0069】
本開示は、特定の提案クエリを特定の方法で受け取ることについて述べているが、本開示は、任意の好適な提案クエリを任意の好適なようにして受け取ることを企図する。
要素検出およびクエリの構文解析に関するより多くの情報は、2012年7月23日に出願された米国特許出願第13/556072号、2012年12月31日に出願された米国特許出願第13/731866号、および2012年12月31日に出願された米国特許出願第13/732101号に見出すことができ、これらのそれぞれを本願明細書に援用する。
【0070】
構造化検索クエリの生成
特定の実施形態では、ソーシャル・ネットワーキング・システム160は、複数の文法を含む文脈自由文法モデルにアクセスすることができる。この文法モデルの各文法は、1つまたは複数の非終端トークン(または「非終端記号」)および1つまたは複数の終端トークン(または「終端記号「V」クエリ・トークン」)を含むことができ、特定の非終端トークンは、終端トークンによって置き換えられてもよい。文法モデルは、形式言語における文字列のための形成規則のセットである。特定の実施形態では、ソーシャル・ネットワーキング・システム160は、1つまたは複数の文法を使用して1つまたは複数の文字列を生成することができる。言語における文字列を生成するためには、単一の開始記号だけからなる文字列から始める。次いで、開始記号も指定された非終端記号も含まない文字列が生成されるまで生成規則が任意の順序で適用される。文脈自由文法では、文法の各非終端の生成は、文法の他の非終端記号によって生成されるものから独立している。非終端記号は、終端記号(すなわち、終端トークンまたはクエリ・トークン)で置き換えられ得る。クエリ・トークンのいくつかは、前述のように、識別されたノードまたは識別されたエッジに対応し得る。次いで、文法によって生成される文字列を、識別されたノードまたは識別されたエッジに対する参照を含む構造化クエリのための基礎として使用することができる。文法によって生成される文字列は、その文字列に基づく構造化クエリもまた自然言語において書き直されるように、自然言語構文で書き直され得る。文脈自由文法は、各生成規則の左側が単一の非終端記号だけからなる文法である。確率文脈自由文法は、タプル<Σ,N,S,P>であり、疎な集合ΣおよびNがそれぞれ終端記号および非終端記号を指定し、S∈Nは開始記号である。Pは生成規則(production)の集合であり、E→ξ(P)の形態をとり、E∈N、ξ∈(Σ∪N)
+、およびp=Pr(E→ξ)、Eが文字列ξに拡張する確率である。所与の非終端Eの拡張すべてにわたる確率pの和は、1でなければならない。本開示は、特定の文法にアクセスすることについて述べているが、本開示は、任意の好適な文法を企図する。さらに、本開示は、文字列を特定の方法で生成することについて述べているが、本開示は、文字列を任意の好適なようにして生成することを企図する。
【0071】
特定の実施形態では、ソーシャル・ネットワーキング・システム160は、1つまたは複数の構造化クエリを含んでもよい提案クエリを生成することができる。構造化クエリは、前述のように、1つまたは複数の文法によって生成された自然言語文字列に基づいてもよい。各構造化クエリは、識別されたノードの1つもしくは複数または識別されたエッジ206の1つもしくは複数に対する参照を含んでもよい。このタイプの構造化クエリは、識別されたユーザ・ノード202および識別されたエッジ206につながっている、または他の形で関係するコンテンツを求めて検索することによって、ソーシャル・ネットワーキング・システム160が、オンライン・ソーシャル・ネットワーク(たとえば、プロフィール・ページなど)に関係するリソースおよびコンテンツを求めてより効率的に検索することを可能にすることができる。限定するものとしてではなく一例として、検索クエリ・フィールド510内のテキスト「私のガールフレンドの友達を見せて」に応答して、ソーシャル・ネットワーキング・システム160は、構造化クエリ「ステファニーの友達」を含む提案クエリを生成することができ、この構造化クエリ内の「友達」および「ステファニー」は、特定のソーシャル・グラフ要素に対応する参照である。「ステファニー」に対する参照は、特定のユーザ・ノード202に対応することになり(ソーシャル・ネットワーキング・システム160は、ユーザ「ステファニー」のためのユーザ・ノード202と合致するようにnグラム「私のガールフレンド」を構文解析した)、一方、「友達」に対する参照は、ユーザ・ノード202を他のユーザ・ノード202(すなわち、「ステファニー」の一次の友達につなげるエッジ206)につなげる友達タイプ・エッジ206に対応する。この構造化クエリを実行したとき、ソーシャル・ネットワーキング・システム160は、友達タイプ・エッジ206によって「ステファニー」に対応するユーザ・ノード202につながっている1つまたは複数のユーザ・ノード202を識別することができる。限定するものとしてではなく別の例として、テキスト「フェースブック(登録商標)で働く友達」に応答して、ソーシャル・ネットワーキング・システム160は、構造化クエリ「フェースブックで働く私の友達」を生成することができ、この構造化クエリ内の「私の友達」「で働く」および「フェースブック」は、前述のように特定のソーシャル・グラフ要素(すなわち、友達タイプ・エッジ206、「で働く」タイプ・エッジ206、および会社「フェースブック」に対応するコンセプト・ノード204)に対応する参照である。修正された提案クエリの結果に基づいて、ソーシャル・ネットワーキング・システム160は、たとえば一致するノードの名前(名前文字列)を組み込むように1もしくは複数のカード450またはカード・クラスタ530A〜530Bを修正することができる。これらの構造化クエリは、予め生成しキャッシュからアクセスすることも、ユーザからの入力に応答して動的に生成することもできる。本開示は、特定の構造化クエリを特定の方法で生成することについて述べているが、本開示は、任意の好適な構造化クエリを任意の好適なようにして生成することを企図する。
【0072】
特定の実施形態では、ソーシャル・ネットワーキング・システム160は、生成された提案クエリにスコア付けすることができる。スコアは、たとえば、信頼スコア、確率、品質、ランキング、別の好適なタイプのスコア、またはそれらの任意の組合せであってよい。提案クエリは、たとえば、ユーザがアクセスしているページもしくはページのタイプ、ユーザ・エンゲージメント・ファクタ、ビジネス・インテリジェンス・データ、特定の提案クエリの予測クリック・スルー・レート率(CTR)、特定の提案クエリの転換率、ユーザのユーザプリファレンス、ユーザの検索履歴、特定のクエリの広告スポンサーシップ、特定のクエリ内で参照されているソーシャル・グラフ要素に対するユーザのソーシャル・グラフ親和性、ユーザの推定される意図、特定の提案クエリの一般的もしくは現在の傾向、特定の提案クエリの有用性、ユーザの現在の地理的ロケーション、現在時刻、他の好適なファクタ、またはそれらの任意の組合せなど、様々なファクタに基づいてスコア付けされてよい。本開示は、提案クエリを特定の方法でランク付けすることについて述べているが、本開示は、提案クエリを任意の好適なようにしてランク付けすることを企図する。
【0073】
上記のように、提案クエリに対応するカード450は、
図3に示されているように、ユーザのクライアント・システム130上のネイティブ・アプリケーションのユーザ・インタフェース(UI)上、またはブラウザ・クライアントによってアクセスされるウェブページ上に表示されてもよい。特定の実施形態では、提案クエリに対応するカード450は、たとえば上記のように以前に決定されたランクに基づいてなど、ランク付けされた順序でユーザに提示されてもよい。さらに、特定の実施形態では、しきい値ランクより上の提案クエリに対応するカード450がユーザに送られ、表示されてもよい。構造化検索クエリおよび文法モデルに関するより多くの情報は、2012年7月23日に出願された米国特許出願第13/556072号、2012年11月12日に出願された米国特許出願第13/674695号、および2012年12月31日に出願された米国特許出願第13/731866号に見出すことができ、これらのそれぞれを本願明細書に援用する。
【0074】
検索結果の生成
特定の実施形態では、特定のアプリケーションまたはプログラムによって生成された提案クエリに応答して、ソーシャル・ネットワーキング・システム160は、1つまたは複数の検索結果を生成することができ、各検索結果は、提案クエリの語に一致する(または実質的に一致する)。ソーシャル・ネットワーキング・システム160は、ユーザ・ノード202に対応するユーザの情報に少なくとも一部基づいて提案クエリを生成することができる。下記のように、提案クエリに応答して、ソーシャル・ネットワーキング・システム160は、提案クエリの検索結果に対応する1または複数のカード450を生成することができる。特定の実施形態では、検索結果に対応するカード450をクラスタ化またはランク付けし、ブラウザ・クライアントまたはネイティブ・アプリケーションのUIによってアクセスされるページとしてユーザに送ってもよい。本開示は、特定のページ上でカードおよびカード・クラスタを表示することについて記載し示しているが、本開示は、任意の好適なページ上でカードおよびカード・クラスタを表示することを企図する。
【0075】
特定の実施形態では、ソーシャル・ネットワーキング・システム160は、提案クエリの検索結果に対応する1または複数のカード450を生成することができる。カード450は、提案クエリに一致する、またはそれに関係するであろうリソースまたはコンテンツ(たとえば、ユーザプロフィール・ページ、コンテンツプロフィール・ページ、または外部リソース)を識別する情報を含んでもよい。特定の実施形態では、各カード450は、ソーシャル・グラフ200の特定のユーザ・ノード202またはコンセプト・ノード204に対応してよい。カード450は、ノードに関連付けられているプロフィール・ページに対するリンク、ならびにノードについてのコンテキスト情報(すなわち、ノードに対応するユーザまたはコンセプトについてのコンテキスト情報)を含んでもよい。特定の実施形態では、各検索結果は、提案クエリの選択されたエッジの1つまたは複数によって、選択されたノードの1つまたは複数に接続されるノードに対応してもよい。特定の実施形態では、また、ソーシャル・ネットワーキング・システム160は、提案クエリに応答して、広告または他のスポンサ付きのコンテンツをクライアント・システム130に送信してもよい。広告は、カード450の一部として、または別々に含まれてもよい。広告は、カード450内で参照されるオブジェクトの1つまたは複数に対応してもよい。特定の実施形態では、ソーシャル・ネットワーキング・システム160は、特定のリソースまたはコンテンツを識別する1つまたは複数のカード450を、それらのリソースまたはコンテンツに関連付けられているユーザに関連付けられているプライバシ設定に基づいてフィルタにより除外してもよい。本開示は、提案クエリに対応する特定のカードを特定の方法で生成することについて述べているが、本開示は、任意の好適な提案クエリに対応する任意の好適なカードを任意の好適なようにして生成することを企図する。
【0076】
検索結果を生成することに関するより多くの情報は、2012年7月23日に出願された米国特許出願第13/556,017号、2012年12月31日に出願された米国特許出願第13/731939号、および2013年10月11日に出願された米国特許出願第14/052564号に見出すことができ、これらのそれぞれを本願明細書に援用する。
【0077】
提案クエリを有するカードの生成
特定の実施形態では、ソーシャル・ネットワーキング・システム160は、ユーザに対してパーソナライズされた、または関連するカード450の形態で推奨を生成および表示することができる。特定の実施形態では、1つまたは複数のカード・スタック530A〜530Bをユーザに送ることができる。本明細書では、フィルタ−値と称することは、オブジェクトの特定の特性について説明するメタデータまたは属性に及ぶ。本明細書では、ユーザ・エンゲージメント・スコアと称することは、たとえば他のユーザ、コンセプト、コンテンツなどに関ることによるなど、オンライン・ソーシャル・ネットワークのユーザの関りを測定するためのメトリックに及ぶ。限定するものとしてではなく一例として、ソーシャル・ネットワーキング・システム160は、ソーシャル・ネットワーキング・システム上の特定の検索ページのヌル検索状態の一部としてユーザに送ることができる1つまたは複数のカード・スタック530A〜530Bを生成することができる。限定するものとしてではなく別の例として、ソーシャル・ネットワーキング・システム160は、モバイル・クライアント・システム130上で実行されるソーシャル・ネットワーキング・システム160に関連付けられているネイティブ・アプリケーションの一部としてカード・スタック530A〜530Bを生成することができる。本開示は、パーソナライズされた推奨を特定の方法で生成することについて述べているが、本開示は、パーソナライズされた推奨を任意の好適なようにして生成することを企図する。
【0078】
図6は、例示的なカードを生成するための例示的なモジュールを示す。
図6は、特定の機能を有する特定のモジュールの特定の構成を示すが、本開示は、任意の好適な機能または機能の組合せを有することができる任意の好適なモジュールのモジュールの任意の好適な構成を企図する。上記のように、ソーシャル・ネットワーキング・システム160は、たとえばユーザの現在のロケーションまたは時刻など、ユーザの情報に基づいてカード450を生成することができる。特定の実施形態では、クライアント・システム130またはソーシャル・ネットワーキング・システム160上で実行されるアプリケーション610は、ユーザの情報をカード生成モジュール620に送ることができる。特定の実施形態では、ソーシャル・ネットワーキング・システム160は、ソーシャル・グラフ200に関連付けられている情報、ソーシャル・グラフ以外の情報、またはそれらの任意の組合せを使用し、1または複数のカード450を生成することができる。限定するものとしてではなく一例として、ユーザの「チェックイン」に関連付けられている地理的ロケーションは、どのようにユーザが「場所」または地理的ロケーションにつなげられるか、およびどのように世界の場所すべてがそれらの地理的ロケーションを訪れたことがあるユーザを通じて互いにつなげられるかのソーシャル・グラフ以外であることができる。特定の実施形態では、アプリケーション610は、たとえばユーザに関連付けられている現在のロケーションまたは時刻など、ユーザに関連付けられている現在の情報にアクセスすることができる。限定するものとしてではなく一例として、アプリケーション610は、上記のように、モバイル・クライアント・システム130のロケーション・サービスを通じてユーザの現在のロケーションを決定することができる。別の例として、アプリケーション610は、クライアント・システム130のインターネット・プロトコル(IP)またはメディア・アクセス・コントロール(MAC)アドレスを通じてユーザの現在のロケーションを決定することができる。特定の実施形態では、アプリケーション610によってアクセスされたユーザの現在の情報は、カードアグリゲータ・モジュール620に送ることができる。カードアグリゲータ・モジュール620は、1つまたは複数の提案クエリを生成することができ、次いでそれらの提案クエリは、ドメイン・モジュール、ドメイン
1〜ドメイン
Nに送ることができる。さらに、カードアグリゲータ・モジュール620は、たとえばユーザの現在のロケーションまたは時刻など受け取られた情報に基づいて提案クエリ内に自動的に埋められ得る1つまたは複数の検索語を推定することができる。
【0079】
特定の実施形態では、各ドメイン・モジュール、ドメイン
1〜ドメイン
Nは、特定のクエリ−ドメインに対応してもよい。限定するものとしてではなく一例として、各ドメイン・モジュール、ドメイン
1〜ドメイン
Nは、下記のように、ソーシャル・ネットワーキング・システム160上に記憶されたオブジェクトのバーティカルの検索インデックスを含むことができる。検索インデックスは、1つまたは複数のコンピューティング・デバイス(たとえば、サーバ)を備えるそれぞれのインデックス・サーバによってホストされてもよい。限定するものとしてではなく一例として、各クエリ−ドメインの検索インデックスは、特定のタイプの場所(たとえば、映画館、レストラン、ランドマーク、または都市)、特定のタイプのエンティティ(たとえば、人、事業体、グループ、スポーツ・チーム、または著名人)、特定のタイプのリソース(たとえば、オーディオ・ファイル、ビデオ・ファイル、デジタル写真、テキスト・ファイル、構造化文書、またはアプリケーション)、または特定のタイプの物的財産もしくは知的財産(たとえば、彫刻、絵画、映画、ゲーム、楽曲、着想、写真、または著述)、あるいはそれらの任意の組合せに関連付けられているオブジェクトを参照することができる。特定の実施形態では、データ・ストアまたはバーティカルは、ソーシャル・ネットワーキング・システムのオブジェクトを記憶することができる。特定の実施形態では、各データ・ストアまたはバーティカルは、それぞれのデータ記憶デバイス内の特定のクエリ−ドメインのオブジェクトを記憶するように構成されてもよい。限定するものとしてではなく一例として、第1のバーティカルは、映画に関連付けられているオブジェクトを記憶することができ、第2のバーティカルは、レストランに関連付けられているオブジェクトを記憶することができ、第3のバーティカルは、ランドマークに関連付けられているオブジェクトを記憶することができる。特定の実施形態では、各オブジェクトは、ソーシャル・ネットワーキング・システム160上に記憶されたオブジェクトの特性である特定のクエリ−フィルタについて説明するメタデータまたは属性であるフィルタ値を有してもよい。限定するものとしてではなく一例として、例示的なクエリ−フィルタ[“ジャンル”][“料理”][“ロケーション”]は、それぞれ例示的なフィルタ値[“SF”][“中華”][“パロ・アルト”]が関連付けられてもよい。
【0080】
特定の実施形態では、カードアグリゲータ・モジュール620に返される提案クエリの検索結果は、カード推奨モジュール630によって識別されるクエリ−フィルタおよび関連のフィルタ値によって修正されてもよい。特定の実施形態では、カード推奨モジュール630は、ユーザに関連する1つまたは複数のクエリ−フィルタを、各ドメイン・モジュール、ドメイン
1〜ドメイン
Nに関連付けられているクエリ−フィルタの所定のリストから識別することができる。特定の実施形態では、カード推奨モジュール630は、ユーザのソーシャル・グラフ200からの情報、オブジェクトの特徴(たとえば、オブジェクトに関連付けられている「いいね」の数)、ユーザの人口統計情報、またはそれらの任意の組合せに関係する情報を記憶する、またはそれにアクセスすることができる。さらに、カード推奨モジュール630は、1つまたは複数のサードパーティ・システム170上に記憶された1つまたは複数のオブジェクトに関連付けられているデータ(たとえば、動作の時間、物理的なロケーション、またはイベント時間)にアクセスし、ソーシャル・ネットワーキング・システム160上に記憶された1つまたは複数のオブジェクトのフィルタ値を補うことができる。さらに、カード推奨モジュール630は、ユーザのソーシャル・グラフ200の1つまたは複数のコンセプト・ノードまたはユーザ・ノードにつながっている1つまたは複数のエッジの識別を通じて、1つまたは複数のクエリ−フィルタおよび関連のフィルタ値を識別することができる。さらに、カード推奨モジュール630は、カード推奨モジュール630のデータとの組合せで、ユーザ履歴モジュール640および人口統計データ・モジュール650に記憶された情報にアクセスすることによって、ユーザに関連し得る特定のクエリ−フィルタおよび関連のフィルタ値を識別することができる。限定するものとしてではなく一例として、カード推奨モジュール630は、ユーザの「友達」のアクティビティにアクセスし、その「友達」のアクティビティに基づいて1つまたは複数のクエリ−フィルタおよび関連のフィルタ値を識別してもよい。たとえば、クエリ−フィルタおよび関連のフィルタ値は、たとえば特定の映画または特定のジャンルの複数の映画など特定のコンテンツ・オブジェクトに「いいね」を表明しているユーザの1または複数の「友達」に基づいて識別されてもよい。別の例として、カード推奨モジュール630は、ユーザと同様の人口統計データの少なくともサブセットを有する他のユーザのアクティビティに基づいて1つまたは複数のクエリ−フィルタおよび関連のフィルタ値を識別してもよい。
【0081】
特定の実施形態では、人口統計データ・モジュール650は、上記のユーザ・プロフィールまたはソーシャル・グラフ200を通じてユーザの人口統計情報を記憶することができる。ユーザの例示的な人口統計情報は、性別、年齢、出身地、居住地、在籍した学校、組織メンバーシップ、信仰する宗教、教育レベル、交際状態、職業、またはそれらの任意の組合せを含んでよい。特定の実施形態では、1つまたは複数のクエリ−フィルタおよび関連のフィルタ値は、カード推奨モジュール630によって、人口統計データ・モジュール650上に記憶されたユーザと同様の人口統計情報を有する他のユーザのソーシャル・グラフ200内のオブジェクトに対するエッジを識別することに少なくとも一部基づいて識別されてもよい。限定するものとしてではなく一例として、カード推奨モジュール630は、たとえば同じ教育レベルおよび職業を有するなど、ユーザと共通の人口統計情報の少なくともサブセットを有する他のユーザに基づいて関連のフィルタ値(たとえば、[“SF”])を有する特定のクエリ−フィルタ(たとえば、[“ジャンル”])を識別してもよい。特定の実施形態では、カード推奨モジュール630は、ユーザが現在のロケーションに対して地元民であるか、それとも旅行者であるかの決定に少なくとも一部基づいて、特定のクエリ−ドメインについて1つまたは複数のクエリ−フィルタおよびフィルタ値を識別してもよい。限定するものとしてではなく一例として、ユーザが現在のロケーションの地元民であるか、それとも旅行者であるかの決定は、ユーザの現在のロケーションを、人口統計データ・モジュール650によって記憶された出身地または居住地情報に比較することに基づいてもよい。別の例として、たとえばユーザの出身地、仕事、学校など、ある人口統計情報を、ユーザの記憶されたGPSまたはロケーションのデータ履歴から導出してもよい。たとえば、ユーザが大抵の日の勤務時間中、メンロー・パークにいるとユーザのロケーション・データが示す場合、ソーシャル・ネットワーキング・システムは、メンロー・パークがユーザの職場であると推定することができる。さらに、推定されたユーザの地理的ロケーションを、人口統計データ・モジュール650内に記憶し、ユーザがこの情報を自分達のユーザ・プロフィール内で明示的に提供しない場合でさえ、カード推奨モジュール630によって使用してもよい。別の例として、ロケーション・データをユーザの写真から抽出し、ユーザに関連付けられている地理的ロケーションを決定し、ユーザの出身地を推定してもよい。
【0082】
特定の実施形態では、ユーザ履歴モジュール640は、上記のようにソーシャル・グラフ200のユーザのノードをユーザの他のノードにつなげるエッジとして表され得るソーシャル・ネットワーキング・システム160内でのユーザの過去のアクティビティを含んでもよいソーシャル・グラフ情報を記憶することができる。限定するものとしてではなく一例として、ユーザ履歴モジュール640は、ユーザのチェックイン履歴または「いいね」履歴を含んでもよい。たとえば、カード推奨モジュール630は、ユーザの居住地近くの特定の料理のレストランでユーザが複数回チェックインしていることに少なくとも一部基づいて、ユーザに関連する特定のクエリ−フィルタ[“料理”]および[“ロケーション”]と関連のフィルタ値[“中華”]および[“パロ・アルト”]をそれぞれ識別することができる。別の例では、カード推奨モジュール630は、ユーザ履歴モジュール640上に記憶されたユーザの検索履歴に少なくとも一部基づいて1つまたは複数のクエリ−フィルタおよび関連のフィルタ値を識別してもよい。特定の実施形態では、ユーザ履歴モジュール640は、以前に表示されたカード450とのユーザ対話に関連付けられている情報を含んでもよい。下記のように、1つまたは複数のクエリ−フィルタおよび関連のフィルタ値は、それらのクエリ−フィルタおよび関連のフィルタ値を参照するカード450とのユーザによる対話、または対話がないことに少なくとも一部基づいて、ユーザに対してより関連性が高い、またはより関連性が低いものとして識別されてもよい。特定の実施形態では、カード推奨モジュール630は、ユーザが現在のロケーションに対して地元民であるか、それとも旅行者であるかの決定に少なくとも一部基づいて、特定のクエリ−ドメインについて1つまたは複数のクエリ−フィルタを識別してもよい。限定するものとしてではなく一例として、ユーザが現在のロケーションの地元民であるか、それとも旅行者であるかの決定は、ユーザ履歴モジュール640によって記憶された「チェックイン」または「いいね」に基づいてもよい。特定の実施形態では、ユーザが地元民であるか、それとも旅行者であるかの決定は、上記のように、ユーザ履歴モジュール640または人口統計データ・モジュール650によって記憶されたユーザの情報に基づいてスコアを計算することに基づいてもよい。
【0083】
カード推奨モジュール630は、提案クエリの特定のクエリ−ドメインの識別されたクエリ−フィルタおよび関連のフィルタ値をドメイン・モジュール、ドメイン
1〜ドメイン
Nに送ることができる。本開示は、特定の数の関連のフィルタ値を有する特定の数のクエリ−フィルタを有するクエリ−ドメインについて述べているが、本開示は、任意の好適な数のクエリ−フィルタおよび関連のフィルタ値を有するクエリ−ドメインを企図する。特定の実施形態では、クエリ−フィルタは、識別されたクエリ−フィルタおよび関連のフィルタ値に少なくとも一部基づいて、ドメイン・モジュール、ドメイン
1〜ドメイン
Nによって返された検索結果のサブセットを除去または無視してもよい。限定するものとしてではなく一例として、[“レストラン”]クエリ−ドメインのクエリ−フィルタ[“等級”]および関連のフィルタ値[“4つ星”]について、提案クエリに応答して返され、[“等級”]クエリ−フィルタのための[“4つ星”]フィルタ値を有する[“レストラン”]クエリ−ドメインに関連付けられている1つまたは複数のオブジェクトがカードアグリゲータ・モジュール620に送られる。
【0084】
上記のように、カードアグリゲータ・モジュール620は、提案クエリに応答してドメイン・モジュール、ドメイン
1〜ドメイン
Nから受け取られる1つまたは複数のオブジェクトを参照する1または複数のカード450を生成することができる。特定の実施形態では、1つまたは複数のユーザ・エンゲージメント・ファクタに基づいて、各カード450について、ユーザ・エンゲージメント・スコアを計算してもよい。特定の実施形態では、ユーザ・エンゲージメント・ファクタは、ソーシャル・グラフ情報、人口統計情報、ユーザの現在の情報、またはそれらの任意の組合せのうちの1つまたは複数を含んでもよい。ユーザ・エンゲージメント・スコアは、たとえば、信頼スコア、確率、品質、ランキング、別の好適なタイプのスコア、またはそれらの任意の組合せであってよい。限定するものとしてではなく一例として、各カードについてのユーザ・エンゲージメント・スコアは、ユーザがカードに関る確率を表すことができる。別の例として、ユーザ・エンゲージメント・スコアは、明確に定義された目標のセットに対して特定のオブジェクトを参照するカード450とのユーザ対話の度合いおよび深さの推定値を表すことができる。限定するものとしてではなく一例として、ユーザ・エンゲージメント・スコアを計算することは、各クエリ−ドメインを参照するカード450との以前の関り、各クエリ−ドメインを参照するカード450の以前のクリック・スルー率、各クエリ−ドメインを参照する特定のカード450の転換率、ユーザのプリファレンス、ユーザの検索履歴、カード450によって参照されるソーシャル・グラフ要素もしくはオブジェクトに対するユーザのソーシャル・グラフ親和性、ユーザの意図を推定すること、ユーザの現在のロケーション、カード450のクエリ−ドメインの一般的もしくは現在の傾向、他の好適なファクタ、またはそれらの任意の組合せに基づいてもよい。限定するものとしてではなく一例として、ユーザのプリファレンスは、たとえばユーザにとって関心のある、または関心のない提案クエリまたは提案クエリのタイプを指定し得る。限定するものとしてではなく一例として、ソーシャル・ネットワーキング・システム160は、提案クエリに対応する、またはユーザのユーザプリファレンスによって指定されるユーザによって好まれるクエリ−ドメイン/フィルタを参照するカード450を識別し、ユーザによって好まれると指定されたこれらのカード450のためにより高いユーザ・エンゲージメント・スコアを計算してもよい(同様に、好まれないと指定された提案クエリまたは提案クエリ−ドメイン/フィルタは、より低くスコア付けされても、完全に除外されても/ヌル・スコアが割り当てられてもよい)。別の例として、ユーザの意図を、下記のように推定することができ、その意図に関係する提案クエリに対応するカードを生成し、ユーザに送ってもよい。本開示は、カードのユーザ・エンゲージメント・スコアを特定の方法で計算することについて述べているが、本開示は、カードのユーザ・エンゲージメント・スコアを任意の好適なようにして計算することを企図する。
【0085】
ソーシャル・ネットワーキング・システム160は、1または複数のカード450をユーザに送ることができる。限定するものとしてではなく一例として、カード450は、1つまたは複数のカード・クラスタ530として送られてもよい。特定の実施形態では、カード450は、ユーザによって現在アクセスされているページ上に表示されてもよい。限定するものとしてではなく一例として、ページは、ソーシャルネットワーク・システム160のプロフィール・ページ(たとえば、クエリするユーザのユーザプロフィール・ページまたはオンライン・ソーシャル・ネットワークに関連付けられているコンセプトのコンセプトプロフィール・ページ)、オンライン・ソーシャル・ネットワークのニュースフィード・ページ、特定のカードに対応する検索結果ページ、またはオンライン・ソーシャル・ネットワークの別の好適なページであってよい。特定の実施形態では、送られた各カード450は、そのユーザについてのしきい値ユーザ・エンゲージメントより大きなユーザ・エンゲージメント・スコアを有することができる。カード450にスコア付けした後で、次いでソーシャル・ネットワーキング・システム160は、しきい値ユーザ・エンゲージメント・スコアより大きなユーザ・エンゲージメント・スコアを有するカード450だけを送ることができる。特定の実施形態では、送られたカード450は、オンライン・ソーシャル・ネットワークのニュースフィード・ページ上に表示されてもよい。特定の実施形態では、しきい値ユーザ・エンゲージメント・スコアより大きなユーザ・エンゲージメント・スコアを有する提案クエリに対応するカード450がユーザに対して自動的にプッシュされてもよい。限定するものとしてではなく一例として、送られたカードは、ユーザのニュース・フィード内の1つまたは複数のストーリ、ユーザのクライアント・システム130にプッシュされる通知、ヌル状態の提案クエリ、またはそれらの任意の組合せとして表示されてもよい。カード450は、前述のように生成およびスコア付けされてもよく、検索クエリ・フィールド350に関連するカードを表示するのではなく、カードをニュースフィード・ストアとして生成し、スタンドアロンのアプリケーションにおいて、またはクライアント・システムのホーム画面上で、オンライン・ソーシャル・ネットワークのニュースフィード・ページにユーザがアクセスしたことに応答して、ユーザのニュース・フィード内に表示することができる。
【0086】
図7は、ユーザのためにカードを生成するための例示的な方法700を示す。この方法は、ステップ710で始まることができ、ソーシャル・ネットワーキング・システム160は、複数のノードと、ノード同士とをつなげる複数のエッジ206とを含むソーシャル・グラフ200にアクセスすることができる。ノードは、第1のユーザ・ノード202と、複数の第2のノード(1つもしくは複数のユーザ・ノード202、コンセプト・ノード204、またはそれらの任意の組合せ)とを備えることができる。ステップ720では、ソーシャル・ネットワーキング・システム160は、いくつかのカードを生成することができる。特定の実施形態では、各カードは、オンライン・ソーシャル・ネットワークに関連付けられているクエリ−ドメインと、ゼロまたは1以上のクエリ−フィルタとを参照する提案クエリを含んでもよい。各クエリ−フィルタは、複数のノードのうちの1以上のノードまたは複数のエッジのうちの1以上のエッジを参照することができる。ステップ730では、ソーシャル・ネットワーキング・システム160は、1つまたは複数のユーザ・エンゲージメント・ファクタに基づいて、各カードについてユーザ・エンゲージメント・スコアを計算することができる。ステップ740では、ソーシャル・ネットワーキング・システム160は、しきい値ユーザ・エンゲージメント・スコアより大きなユーザ・エンゲージメント・スコアを有する各カードを、第1のユーザによって現在アクセスされているページ上に表示するために第1のユーザに送ることができる。特定の実施形態は、適切な場合、
図7の方法の1つまたは複数のステップを繰り返すことができる。本開示は、
図7の方法の特定のステップについて特定の順序で行われるものとして記載し示しているが、本開示は、任意の好適な順序で行われる
図7の方法の任意の好適なステップを企図する。さらに、本開示は、
図7の方法の特定のステップを含む、ユーザのためにカードを生成するための例示的な方法について記載し示しているが、本開示は、適切な場合、
図7の方法のステップのすべて、または一部を含んでも、それらを含まなくてもよい任意の好適なステップを含む、ユーザのためにカードを生成するための任意の好適な方法を企図する。さらに、本開示は、
図7の方法の特定のステップを実施する特定の構成要素、デバイス、またはシステムについて記載し示しているが、本開示は、
図7の方法の任意の好適なステップを実施する任意の好適な構成要素、デバイス、またはシステムの任意の好適な組合せを企図する。
【0087】
図8は、例示的なモバイル・クライアント・システム130上の例示的なカード・インタフェースの例示的なワイヤフレームを示す。上記のように、ソーシャル・ネットワーキング・システム160は、各々が、1つまたは複数の検索結果550を含む1または複数のカード450を自動的に生成することができる。特定の実施形態では、最初のカード・スタックは、特定のクエリ−ドメインと、ゼロのクエリ−フィルタとを参照する1または複数のカード450を含んでもよい。さらに、各カード450は、ソーシャル・ネットワーキング・システム160に関連付けられているクエリ−ドメインを参照する提案クエリに対応し得る。特定の実施形態では、1または複数のカード450は、提案クエリの1つまたは複数の検索結果のプレビューに対応してもよい。
【0088】
上記のように、カード450のクエリ−ドメインは、1つまたは複数のクエリ−フィルタによって修正されてもよい。たとえば、[“レストラン”]クエリ−ドメインは、たとえば[“ロケーション”][“料理”]または[“等級”]など、1つまたは複数のクエリ−フィルタを有してもよい。特定の実施形態では、カード450は、クエリ−ドメインと、ゼロもしくは1以上のクエリ−フィルタと、ソーシャル・グラフ200の1つもしくは複数のコンセプト・ノード、ユーザ・ノード、エッジ、ソーシャル・ネットワーキング・システム160上のリソースもしくはオブジェクト、またはそれらの任意の組合せを参照することができるゼロもしくは1以上のフィルタ値との組合せに由来してもよい。上記のように、ユーザは、表示されたカード・クラスタ530の1または複数のカード450と対話することができる。限定するものとしてではなく一例として、モバイル・クライアント・システム130上のネイティブ・アプリケーションは、カード・クラスタ530のカード450間を探索するための「スクロール」ジェスチャに対応する入力を検出することができる。たとえば、ユーザは、カード・クラスタ530をスクロールすることによって、異なるクエリ−フィルタを用いてカード450を見ることができる。別の例では、ネイティブ・アプリケーションは、特定のカード450上で「スワイプ」ジェスチャに対応する入力を検出し、ユーザが追加の、または異なるクエリ−フィルタを適用するためのオプションを現すことができる。特定の実施形態では、特定のカード450上で「スワイプ」ジェスチャに対応する入力を検出することにより、以前に表示されたカード450と同じクエリ−ドメインおよび1つまたは複数の異なるクエリ−フィルタを有する後続のカード450が表示される。限定するものとしてではなく一例として、ユーザは、[“等級”]に対応するクエリ−フィルタを、クエリ−ドメイン[“レストラン”]およびクエリ−フィルタ[“料理”]を有するカード・クラスタ530のカード450に適用してもよい。特定の実施形態では、カード・クラスタ530内で下の方のカード450は、カード・クラスタ530の表示されたカード450とのユーザ対話に基づいて修正されてもよい。限定するものとしてではなく一例として、カード・クラスタ530内で下の方のカード450は、さらに特定の等級を有する特定の料理のレストランを表示してもよい。特定の実施形態では、ソーシャル・ネットワーキング・システム160は、異なる期間に関連するカード450を生成してもよい。特定のカード450は、直ちに関連、将来の期間に関連、または任意の他の好適な期間に関連する検索結果を有する検索クエリに対応してもよい。カード450は、一部にはそれらが関連する期間でランク付けされてもよい。限定するものとしてではなく一例として、クエリ−フィルタ[“ディナー”]の履歴上の適用に基づいて、現在時刻が午後2:00にすぎず、これは「通常」のディナー時間外であり、したがって数時間の間、直ちに関連するものでない可能性がある場合でさえ、「今夜ディナーをとる場所」に対応するカード450がカード・クラスタ530内でより高く配置されてもよい。限定するものとしてではなく別の例として、(たとえば、ユーザのモバイル・クライアント・システム130から決定される)ユーザの現在のロケーションが事務所の外であることに基づいて、現在時刻が午後2:00であり、これは「通常」の昼食時間後であり得るが、ユーザの現在のロケーションに基づいて直ちに関連するものと考えられ得る場合でさえ、「いま食事する場所」に対応するカード450がカード・クラスタ530内でより高く配置されてもよい。
【0089】
提案クエリを用いるカードのランキング
特定の実施形態では、カード450のランキングは、特定のクエリ−ドメイン、クエリ−フィルタ、フィルタ値、またはそれらの任意の組合せに少なくとも一部基づいてもよい。本明細書では、予測CTRランキングと称することは、ユーザが、特定のカード450のコンテンツに関連付けられているエンティティまたはユーザと対話するために「クリック」する確率に及ぶ。限定するものとしてではなく一例として、ソーシャル・ネットワーキング・システム160は、下記の値モデルを使用してカード450をランク付けすることができる。限定するものとしてではなく別の例として、ソーシャル・ネットワーキング・システム160は、下記のように、カード450に関連付けられているユース・ケースを推定することに従ってカード450をランク付けすることができる。本開示は、1つまたは複数の特定の方法でカードをランク付けすることについて述べているが、本開示は、任意の好適な方法を企図する。
【0090】
特定の実施形態では、ソーシャル・ネットワーキング・システム160は、値モデルに少なくとも一部基づいて特定のカード・クラスタ530のカード450をランク付けすることができる。限定するものとしてではなく一例として、ランキングの値モデルは、予測CTRならびにカードのユーザ関心値に基づいてもよく、ユーザ関心値は、特定のカード上でクリックする(またはカードに関連付けられているアクティビティを実施する)とき、ユーザの関心、満足、幸福などを表すことができ、または特定のカードと対話することに関連付けられている実際の金銭的価値(たとえば、広告スポンサーシップ)を表してもよい。限定するものとしてではなく一例として、クリック・スルー率10%を有する第1のアクティビティ(たとえば、記事を読むこと)には、ユーザ関心値1が割り当てられ、そのアクティビティにおける通常のユーザ関心を表してもよく、一方、第2のアクティビティ(たとえば、コンサート・チケットを買うこと)は、CTR1%、しかしユーザ関心値100を有してもよく、第2のアクティビティは、これを行うために第1のアクティビティよりユーザを100倍幸福にする(またはユーザに100倍関心を引き起こさせる)と決定されてもよい。したがって、第2のアクティビティに関係するカード450は、より低い予測CTRを有するカードに第2のアクティビティが関連付けられていても、第1のアクティビティに関係するカード450より高くランク付けされてもよい。特定の実施形態では、値モデルは、予測CTRに予測転換率を乗じ、転換イベントのユーザ関心値を乗じたものの関数となり得る。
【0091】
別の例として、ランキングの値モデルは、ソーシャル・ネットワーキング・システム160が各カード450について予測CTRを計算することに少なくとも一部基づいてもよい。ソーシャル・ネットワーキング・システム160は、より高い予測CTRを有する提案クエリに対応するカード450がユーザにとってより関心の高いものであると推定してもよい。たとえば、ソーシャル・ネットワーキング・システム160は、たとえば時刻、曜日、ユーザの現在のロケーション、同様の人口統計データを有する他のユーザのCTR、特定のクエリ−ドメイン/クエリ−フィルタに関してユーザのために計算されたCTR、ソーシャル・グラフ親和性、またはそれらの任意の組合せなどのファクタに少なくとも一部基づいて予測CTRを計算してもよい。特定の実施形態では、ソーシャル・ネットワーキング・システム160は、ユーザのプリファレンスに少なくとも一部基づいて各カード450について予測CTRを計算してもよい。限定するものとしてではなく一例として、複数のユーザプリファレンスの1つは、ユーザ、他のユーザ(たとえば、親、またはユーザの雇用者)、システム管理者、サードパーティ・システム170によって指定されても、他の方法でソーシャル・ネットワーキング・システム160によって決定されてもよい。
【0092】
特定の実施形態では、ソーシャル・ネットワーキング・システム160は、ソーシャル・ネットワークの検索履歴ユーザに少なくとも一部基づいて各カード450について予測CTRを計算してもよい。限定するものとしてではなく一例として、ユーザが以前アクセスした(もしくはユーザの「友達」などユーザに関連する他のユーザによってアクセスされた)ソーシャルグラフ・オブジェクト(もしくはオブジェクトのタイプ)、またはユーザが以前アクセスしたソーシャルグラフ・オブジェクトに関連するカード450は、ユーザにとって関心のあるものである可能性がより高いことがある。したがって、これらのカード450は、より高くスコア付けされてもよい。限定するものとしてではなく一例として、ユーザが以前「スタンフォード大学」プロフィール・ページを訪れたことがあり、「パロ・アルト」の現在のロケーションを有する場合、ソーシャル・ネットワーキング・システム160は、「スタンフォード大学」のためのコンセプト・ノード204を参照する特定のカード450が、ユーザがこの大学のためのコンセプト・ノード204に以前アクセスしたことがあることに少なくとも一部基づいて、比較的高いCTRを有すると決定してもよい。別の例として、ユーザが以前、特定のクエリ−ドメインに関連付けられている検索結果と対話したことがあるが他のクエリ−ドメインに関連付けられている検索結果と対話したことがない場合には、ソーシャル・ネットワーキング・システム160は、ユーザによって以前対話されたクエリ−ドメインを参照するカード450の予測CTRを、以前に対話されなかった他のクエリ−ドメインを参照するカード450より高くスコア付けしてもよい。
【0093】
特定の実施形態では、ソーシャル・ネットワーキング・システム160は、1または複数のカード450内で参照されているノードの1つまたは複数に関してユーザに対応するユーザ・ノード202のソーシャル・グラフ親和性に少なくとも一部基づいて各カード450について予測CTRを計算してもよい。ユーザに関して比較的高いソーシャル・グラフ親和性(たとえば、高い親和性係数)を有するノードを参照するカード450は、ユーザにとって関心のあるものである可能性がより高いことがある。したがって、これらのカード450は、より高い予測CTRを有してもよい。限定するものとしてではなく一例として、ソーシャル・ネットワーキング・システム160は、ユーザのユーザ・ノード202とそれぞれのカード450内で参照されている特定のソーシャルグラフ・オブジェクトとの間の分離度(親和性の1つの尺度とすることができる)に少なくとも一部基づいてカード450の予測CTRを計算してもよい。ソーシャル・グラフ200内でユーザにより近い(たとえば、オブジェクトとユーザのユーザ・ノード202との間のより小さい分離度)ソーシャルグラフ・オブジェクトを参照するカード450は、ユーザから遠い(たとえば、より大きな分離度)ソーシャルグラフ・オブジェクトを参照するカード450より高い予測CTRを有してもよい。本開示は、予測CTRを特定の方法で計算することについて述べているが、本開示は、予測CTRを任意の好適なようにして計算することを企図する。
【0094】
特定の実施形態では、ソーシャル・ネットワーキング・システム160は、カード450の提案クエリの特定のクエリ−ドメインまたはフィルタ値に関する傾向を決定することに少なくとも一部基づいて各カード450について予測CTRを計算してもよい。さらに、ソーシャル・ネットワーキング・システム160は、ソーシャル・ネットワーキング・システム160上のすべてのユーザのアクティビティに基づいてトレンド・クエリ−ドメインまたはクエリ−フィルタを計算してもよい。限定するものとしてではなく一例として、ソーシャル・ネットワーキング・システム160は、レストランに対応する1つまたは複数のコンセプト・ノードに関連付けられている、たとえば「チェックイン」または「いいね」などアクティビティが比較的短期間の間に増大したとき、特定のクエリ−ドメイン(たとえば、[“レストラン”])に傾向がみられると決定してもよい。さらに、ソーシャル・ネットワーキング・システム160は、中華レストランに対応するコンセプト・ノードに関連付けられている、たとえば「チェックイン」コメントまたは「いいね」などアクティビティが比較的短期間の間に増大したとき、特定のクエリ−フィルタ(たとえば、[“料理”])に関連付けられている特定のフィルタ値(たとえば、[“中華”])に傾向がみられると決定してもよい。特定の実施形態では、トレンド・クエリ−ドメインまたはクエリ−フィルタに関連付けられているフィルタ値に対応するオブジェクトを参照するカード450は、傾向がみられないオブジェクトを参照するカード450より高い予測CTRを有してもよい。
【0095】
特定の実施形態では、ソーシャル・ネットワーキング・システム160は、各カード450に関連付けられているユース・ケースを推定すること少なくとも一部基づいてカード450をランク付けしてもよい。さらに、ユーザのユース・ケースを推定することは、ユーザ、またはユーザと同様の人口統計情報を有する他のユーザのユーザ履歴に少なくとも一部基づいてもよい。特定の実施形態では、ユーザの推定される意図は、特定の提案クエリまたはクエリ−ドメイン/フィルタに対応してもよく、ユーザの推定される意図に一致する提案クエリに対応するカード450は、より高いランキングを有してもよい。特定の実施形態では、ソーシャル・ネットワーキング・システム160は、たとえば時刻、ユーザの他のユーザもしくはオブジェクトに対する近さ、ソーシャル・グラフ情報、ソーシャル・グラフ親和性、ユーザの検索履歴、ユーザからのフィードバック、ユーザの地理的ロケーション、ユーザについての他の関連の情報、またはそれらの任意の組合せなど、様々なファクタに基づいてユーザの意図を推定してもよい。限定するものとしてではなく一例として、ソーシャル・ネットワーキング・システム160は、時刻、およびたとえばユーザ履歴などユーザの情報に基づいて、ユーザがレストランを見つけることに関心があると推定してもよい。たとえば、ソーシャル・ネットワーキング・システム160は、ユーザが特定の時刻にレストランで頻繁にチェックインすることに少なくとも一部基づいて、レストランを参照するカード450を、特定の時間枠でより高くランク付けしてもよい。別の例として、ソーシャル・ネットワーキング・システム160は、特定の曜日、およびたとえばユーザ履歴などユーザの情報に基づいて、特定のカード450をより高くランク付けしてもよい。たとえば、ソーシャル・ネットワーキング・システム160は、特定の曜日における映画館に関してユーザ履歴(たとえば、「チェックイン」)に少なくとも一部基づいて、[“映画”]を参照するカード450を、特定の曜日(たとえば、金曜日)においてより高くランク付けしてもよい。ユーザの意図を決定することに関するより多くの情報は、2013年2月25日に出願された米国特許出願第13/776469号に見出すことができ、それを本願明細書に援用する。本開示は、ユーザの意図を特定の方法で推定することについて述べているが、本開示は、ユーザの意図を任意の好適なようにして推定することを企図する。
【0096】
図9は、カードをランク付けするための例示的な方法900を示す。この方法は、ステップ910で始まることができ、ソーシャル・ネットワーキング・システム160は、複数のノードと、ノード同士とをつなげる複数のエッジ206とを含むソーシャル・グラフ200にアクセスすることができる。ノードは、第1のユーザ・ノード202と、複数の第2のノード(1つもしくは複数のユーザ・ノード202、コンセプト・ノード204、またはそれらの任意の組合せ)とを備えることができる。ステップ920では、ソーシャル・ネットワーキング・システム160は、何枚かのカードを含むカード・クラスタを生成することができる。特定の実施形態では、各カードは、オンライン・ソーシャル・ネットワークに関連付けられているクエリ−ドメインと、ゼロまたは1以上のクエリ−フィルタとを参照する提案クエリに対応する。特定の実施形態では、各クエリ−フィルタは、1つもしくは複数のノードまたは1つもしくは複数のエッジを参照する。ステップ930では、ソーシャル・ネットワーキング・システム160は、1つまたは複数のユーザ・エンゲージメント・ファクタに基づいて、カード・クラスタ内の各カードについて予想CTRを計算することができる。ステップ940では、ソーシャル・ネットワーキング・システム160は、予測CTRに基づいて、カード・クラスタ内のカードの各々をランク付けすることができる。ステップ950では、ソーシャル・ネットワーキング・システム160は、カード・クラスタを、第1のユーザによって現在アクセスされているページ上に表示するために第1のユーザに送ることができる。特定の実施形態では、カード・クラスタのカードは、カードに関連付けられているランキングに基づいて順序付けられてもよい。特定の実施形態は、適切な場合、
図9の方法の1つまたは複数のステップを繰り返すことができる。本開示は、
図9の方法の特定のステップについて特定の順序で行われるものとして記載し示しているが、本開示は、任意の好適な順序で行われる
図9の方法の任意の好適なステップを企図する。さらに、本開示は、
図9の方法の特定のステップを含む、カードをランク付けするための例示的な方法について記載し示しているが、本開示は、適切な場合、
図9の方法のステップのすべて、または一部を含んでも、それらを含まなくてもよい任意の好適なステップを含む、カードをランク付けするための任意の好適な方法を企図する。さらに、本開示は、
図9の方法の特定のステップを実施する特定の構成要素、デバイス、またはシステムについて記載し示しているが、本開示は、
図9の方法の任意の好適なステップを実施する任意の好適な構成要素、デバイス、またはシステムの任意の好適な組合せを企図する。
【0097】
図10は、例示的なカード・クラスタ530の例示的なグループ化を示す。
図10は、カードの特定の構成を有するカード・クラスタ530の特定の構成を示すが、本開示は、カードの任意の好適な構成を有するカード・クラスタの任意の好適な構成を企図する。特定の実施形態では、ソーシャル・ネットワーキング・システム160は、最も関心のあるカード450がユーザに提示されるように、複数のカード・クラスタ530のカード450(各カード450が1つまたは複数の検索結果550を示す)をランク付けし、各カード・クラスタ530をランク付けしてもよい。
図10の例に示されているように、カード・クラスタ530A〜530CがUIまたはページ上に垂直に並べて表示されてもよい。上記のように、各カード・クラスタ530は、特定のクエリ−ドメインと、ゼロまたは1以上のクエリ−フィルタとを参照してよい。特定の実施形態では、カード・クラスタ530A〜530Cは、下記のように最高から最低までのユーザに対する推定される関連性に従ってランク付けされ、高い順に表示されてもよい。限定するものとしてではなく一例として、第1のカード・クラスタ530Aは、[“レストラン”]クエリ−ドメインを参照するカード450を含んでもよく、第2のカード・クラスタ530Bは、[“映画”]クエリ−ドメインを参照するカード450を含んでもよく、第3のカード・クラスタ530Cは、[“ランドマーク”]クエリ−ドメインを参照するカード450を含んでもよい。特定の実施形態では、ユーザは、「スクロール」タッチ・ジェスチャを実施することによってカード・クラスタ530A〜530C間で探索することができる。
【0098】
図10の例に示されているように、異なるクエリ−フィルタを有する特定のクエリ−ドメインを参照するカード・クラスタ530A(カード450A〜450Cを含む)は、水平に並べて配置されてもよい。特定の実施形態では、カード・クラスタ530Aを水平にスクロールすることにより、同じクエリ−ドメインおよび異なるフィルタ値を参照するカード450を有するカード450A〜450C間で探索される。限定するものとしてではなく一例として、カード・クラスタ530Aは、各々が[“レストラン”]クエリ−ドメインおよび異なるクエリ−フィルタを参照するカードを含んでもよい。たとえば、第1のカード450Aは、クエリ−フィルタ[“料理”]を参照してもよく、第2のカード450Bは、クエリ−フィルタ[“等級”]を参照してもよく、第3のカード450Cは、クエリ−フィルタ[“ロケーション”]を参照してもよい。別の例として、カード・クラスタ530Aは、各々が[“レストラン”]クエリ−ドメイン、および異なるフィルタ値を有する[“料理”]クエリ−フィルタを参照するカード450を含んでもよい。たとえば、第1のカード450Aは、フィルタ値[“中華”]を参照してもよく、第2のカード450Bは、フィルタ値[“インド”]を参照してもよく、第3のカード450Cは、フィルタ値[“エチオピア”]を参照してもよい。
【0099】
特定の実施形態では、ソーシャル・ネットワーキング・システム160は、各カード・クラスタ530のカード450の予測CTRに少なくとも一部基づいてカード・クラスタ530をランク付けしてもよい。さらに、カード・クラスタ530内のカード450は、同様の基準でランク付けしてもよい。限定するものとしてではなく一例として、ソーシャル・ネットワーキング・システム160は、各カード・クラスタ530A〜530Cの最高の予測CTRを有するカード450の予測CTRの値に少なくとも一部基づいて各カード・クラスタ530A〜530Cをランク付けしてもよい。たとえば、各カード・クラスタ530A〜530Cの最高の予測CTRを有するカード450のランキングに基づいて、第1のカード・クラスタ530Aは、[“レストラン”]クエリ−ドメインを参照するカード450を含んでもよく、第2のカード・クラスタ530Bは、[“映画”]クエリ−ドメインを参照するカード450を含んでもよく、第3のカード・クラスタ530Cは、[“ランドマーク”]クエリ−ドメインを参照するカード450を含んでもよい。別の例として、ソーシャル・ネットワーキング・システム160は、特定のクエリ−ドメインのカードすべての平均CTRに少なくとも一部基づいてカード・クラスタ530をランク付けしてもよい。別の例として、各クエリ−ドメインのカード・クラスタ530A〜530Cは、特定のクエリ−ドメインのカード450の予測CTRの加重平均でランク付けされてもよい。特定の実施形態では、1つまたは複数のカード・クラスタ530のカード450間のより滑らかな移行のために、より低い予測CTR値のカード450をカード・クラスタ530に追加してもよい。本開示は、特定の方法でのクエリ−ドメインのカード・クラスタのランキングについて述べているが、本開示は、任意の好適なようにしてのクエリ−ドメインのカード・クラスタのランキングを企図する。
【0100】
提案クエリを用いるカードのグループ化
特定の実施形態では、ソーシャル・ネットワーキング・システム160は、カード450をカード・クラスタ530にグループ化することができる。カード450は、各カード450に関して計算されたカード親和性に基づいてカード・クラスタ530にグループ化されてもよい。本明細書では、カード親和性と称することは、2つ以上のカード450間の関係の強さを表すためのメトリックに及ぶ。本明細書では、カード親和性しきい値と称することは、カード・クラスタ530にグループ化されたカード450間のカード親和性の最小値に及ぶ。限定するものとしてではなく一例として、ソーシャル・ネットワーキング・システム160は、カード450のクエリ−ドメインまたはクエリ−フィルタに少なくとも一部基づいてカード親和性を計算することに基づいて1つまたは複数のカード・クラスタ530を生成してもよい。別の例として、ソーシャル・ネットワーキング・システム160は、ユーザ対話に基づいて1つまたは複数のクエリ−フィルタをカード・クラスタ530の後続のカード450に伝搬させてもよい。本開示は、カード・クラスタを特定の方法で生成することについて述べているが、本開示は、カード・クラスタを任意の好適なようにして生成することを企図する。
【0101】
特定の実施形態では、ソーシャル・ネットワーキング・システム160は、他のカード450に対してカード450のカード親和性を計算するとき、1または複数の親和性を考慮してもよい。カード親和性を計算するために使用され得る例示的な親和性は、クエリ−ドメイン対クエリ−ドメイン、クエリ−フィルタ対クエリ−フィルタ、フィルタ値対フィルタ値対フィルタ値、それらの任意の組合せを含んでもよい。限定するものとしてではなく一例として、ソーシャル・ネットワーキング・システム160は、ソーシャル・ネットワーキング・システム160の実質的にすべてのユーザによって提供される信号に少なくとも一部基づいてカード親和性を計算してもよい。別の例として、ソーシャル・ネットワーキング・システム160は、オブジェクトの特徴、ユーザのソーシャル・グラフ親和性、ユーザの人口統計情報、「友達」のアクティビティ、またはそれらの任意の組合せに少なくとも一部基づいてカード親和性を計算してもよい。本開示は、提案クエリを特定の方法で生成することについて述べているが、本開示は、提案クエリを任意の好適なようにして生成することを企図する。
【0102】
特定の実施形態では、ソーシャル・ネットワーキング・システム160は、異なるクエリ−ドメインおよび同じクエリ−フィルタまたは関連のフィルタ値に対応するカードの親和性を計算することに少なくとも一部基づいてカード親和性を計算してもよい。限定するものとしてではなく一例として、ソーシャル・ネットワーキング・システム160は、[“ジャンル”]クエリ−フィルタおよび[“SF”]フィルタ値に対応するオブジェクトに関して、ユーザと少なくともいくつかの重なり合う人口統計データを有するソーシャル・ネットワーキング・システム160の他のユーザのアクティビティに少なくとも一部基づいて、[“本 ”][“TVショー”]および[“映画”]クエリ−ドメインに対応するカード450が、[“ジャンル”]クエリ−フィルタおよび[“SF”]フィルタ値において互いに高い親和性を有すると決定してもよい。特定の実施形態では、ソーシャル・ネットワーキング・システム160は、同じクエリ−ドメインおよび異なるクエリ−フィルタまたは関連のフィルタ値に対応するカードの親和性を計算することに少なくとも一部基づいてカード親和性を計算してもよい。限定するものとしてではなく一例として、ソーシャル・ネットワーキング・システム160は、[“料理”]クエリ−フィルタを参照するオブジェクトに関して、たとえばユーザが特定の料理のレストランにおいて「いいね」を表明した、または「チェックイン」したことなど、ソーシャル・ネットワーキング・システム160のユーザのユーザ履歴に少なくとも一部基づいて、[“料理”]クエリ−フィルタに対応するカード450が、[“レストラン”]クエリ−ドメインにおいて互いに高い親和性を有すると決定してもよい。別の例として、ソーシャル・ネットワーキング・システム160は、[“等級”]クエリ−フィルタに対応するオブジェクトに関して、たとえば特定の等級のレストランにおける「いいね」または「チェックイン」など、ソーシャル・ネットワーキング・システム160のユーザのユーザ履歴に少なくとも一部基づいて、[“等級”]クエリ−フィルタに対応するカード450が、[“レストラン”]クエリ−ドメインにおいて互いに高い親和性を有すると計算してもよい。
【0103】
特定の実施形態では、ソーシャル・ネットワーキング・システム160は、カード450とのユーザ対話に少なくとも一部基づいてカード親和性計算を更新してもよい。上記のように、ソーシャル・ネットワーキング・システム160は、カード・クラスタ530の表示されたカード450とのユーザ対話に基づいてカード・クラスタ530の1または複数のカード450を修正してもよい。限定するものとしてではなく一例として、ソーシャル・ネットワーキング・システム160は、ユーザ対話に基づいて、特定のクエリ−フィルタおよび関連のフィルタ値をカード450に適用してもよい。たとえば、第1のカード・クラスタ530Aは、クエリ−フィルタ[“等級”]および関連のフィルタ値[“4つ星”]を有する[“レストラン”]クエリ−ドメインを参照するカード450を含んでもよく、その結果、第1のカード・クラスタ530Aは、任意のタイプの料理と共に4つ星レストランを参照するカードを含む。第2のカード・クラスタ530Bは、クエリ−フィルタ[“等級”]および関連のフィルタ値[“3つ星”]を有する[“レストラン”]クエリ−ドメインを参照するカード450を含んでもよい。さらに、ユーザが、たとえば第1のカード・クラスタ530Aのカード450をスワイプすることによってなど、特定のクエリ−フィルタ(たとえば、[“料理”])について特定のフィルタ値(たとえば、[“中華”])を選択した場合には、第1のカード・クラスタ530Aの後続のカード450は、4つ星等級を有する中華レストランを参照するように修正されてもよく、第2のカード・クラスタ530Bのカードは、3つ星等級を有する中華レストランを参照するように修正されてもよい。特定の実施形態では、ソーシャル・ネットワーキング・システム160は、1つまたは複数の以前選択されたクエリ−フィルタまたはフィルタ値を、後で表示されるカード・クラスタ530に適用してもよい。限定するものとしてではなく一例として、ユーザが特定のクエリ−フィルタ(たとえば、[“料理”])を参照するカード450と対話したことのユーザ履歴に基づいて、ソーシャル・ネットワーキング・システム160は、同じ料理を有するカード450についてより高いカード親和性を計算してもよい。さらに、後続のカード・クラスタ530は、クエリ−フィルタ(たとえば、[“料理”])によってグループ化されたカード450を自動的に含んでもよい。本開示は、カード親和性を特定の方法で修正することについて述べているが、本開示は、カード親和性を任意の好適なようにして修正することを企図する。
【0104】
図11は、カード・クラスタを生成するための例示的な方法1100を示す。この方法は、ステップ1110で始まることができ、ソーシャル・ネットワーキング・システム160は、複数のノードと、ノード同士をつなげる複数のエッジ206とを含むソーシャル・グラフ200にアクセスすることができる。ノードは、第1のユーザ・ノード202と、複数の第2のノード(1つもしくは複数のユーザ・ノード202、コンセプト・ノード204、またはそれらの任意の組合せ)とを備えることができる。ステップ1120では、ソーシャル・ネットワーキング・システム160は、いくつかのカードを生成することができる。特定の実施形態では、各カードは、オンライン・ソーシャル・ネットワークに関連付けられているクエリ−ドメインと、クエリ−ドメインのためのゼロまたは1以上のクエリ−フィルタとを参照する提案クエリを含んでもよい。特定の実施形態では、各クエリ−フィルタは、1つもしくは複数のノードまたは1つもしくは複数のエッジを参照してもよい。ステップ1130では、ソーシャル・ネットワーキング・システム160は、複数のカードの各カードについて複数のカードの他のカードに対するカード親和性を計算することができる。ステップ1140では、ソーシャル・ネットワーキング・システム160は、複数のカードから1つまたは複数のカード・クラスタを生成することができ、各カード・クラスタは、しきい値カード親和性より大きな、カード・クラスタ内の他のカードに対するカード親和性を各々が有する1または複数のカードを含んでもよい。ステップ1150では、ソーシャル・ネットワーキング・システム160は、1つまたは複数のカード・クラスタを、第1のユーザによって現在アクセスされているページ上に表示するために第1のユーザに送ることができる。特定の実施形態は、適切な場合、
図11の方法の1つまたは複数のステップを繰り返すことができる。本開示は、
図11の方法の特定のステップについて特定の順序で行われるものとして記載し示しているが、本開示は、任意の好適な順序で行われる
図11の方法の任意の好適なステップを企図する。さらに、本開示は、
図11の方法の特定のステップを含む、カード・クラスタを生成するための例示的な方法について記載し示しているが、本開示は、適切な場合、
図11の方法のステップのすべて、または一部を含んでも、それらを含まなくてもよい任意の好適なステップを含む、カード・クラスタを生成するための任意の好適な方法を企図する。さらに、本開示は、
図11の方法の特定のステップを実施する特定の構成要素、デバイス、またはシステムについて記載し示しているが、本開示は、
図11の方法の任意の好適なステップを実施する任意の好適な構成要素、デバイス、またはシステムの任意の好適な組合せを企図する。
【0105】
ソーシャル・グラフ親和性および係数
特定の実施形態では、ソーシャル・ネットワーキング・システム160は、互いについて様々なソーシャルグラフ・エンティティのソーシャル・グラフ親和性(本明細書では「親和性」と呼ばれる)を決定してよい。親和性は、ユーザ、コンセプト、コンテンツ、アクション、広告、オンライン・ソーシャル・ネットワークに関連付けられている他のオブジェクト、またはそれらの任意の適切な組み合わせなど、オンライン・ソーシャル・ネットワークに関連付けられている特定のオブジェクト間における関係の強さまたは関心のレベルを表すことができる。また、親和性は、サードパーティ・システム170または他の適切なシステムに関連付けられているオブジェクトに関して決定されてもよい。各ユーザ、主題、またはコンテンツのタイプについて、ソーシャルグラフ・エンティティに対する総合親和性が確立されてもよい。総合親和性は、ソーシャルグラフ・エンティティに関連付けられているアクションまたは関係の継続的なモニタリングに基づき、変化し得る。本開示では特定の方式による特定の親和性の決定について記載するが、本開示では任意の適切な方式による任意の適切な親和性の決定が想定される。
【0106】
特定の実施形態では、ソーシャル・ネットワーキング・システム160は、親和性係数(本明細書では「係数」と呼ばれる)を用いてソーシャル・グラフ親和性を測定または定量してよい。この係数は、オンライン・ソーシャル・ネットワークに関連付けられている特定のオブジェクト間の関係の強さを表してよい、または定量してよい。また、この係数は、ユーザが特定のアクションを行う予測される確率を測定する確率または関数を表してもよく(または、そのような確率を計算するための入力として使用されてもよく)、この確率または関数は、そのアクションについてのそのユーザの関心に基づく。このようにして、ユーザの将来のアクションは、ユーザの以前のアクションに基づいて予測されることができ、その係数は少なくとも部分的にはユーザのアクションの履歴により計算され得る。係数によって表されるこの予測される確率は、適宜、前述された検索クエリまたはカードをスコア付けするために使用された確率と異なっていてもよく、これらの確率を計算する係数として使用されてもよく、または、これらの確率のために直接的に使用されてもよい。係数は、オンライン・ソーシャル・ネットワークの内外の任意の数のアクションを予測するために用いられてよい。限定ではなく一例として、これらのアクションは、メッセージの送信、コンテンツの投稿、またはコンテンツに対するコメントなど、様々なタイプの通信、プロフィール・ページ、メディア、または他の適切なコンテンツのアクセスまたは閲覧など、様々なタイプの観察アクション、同じグループにある、同じ写真にタグ付けされる、同じロケーションにおいてチェックインされる、もしくは同じイベントに出席する、または他の適切なアクションなど、2つ以上のソーシャルグラフ・エンティティに関する様々なタイプの同時発生情報、または他の適切なアクションを含んでよい。本開示では特定の方式による特定の親和性の測定について記載するが、本開示では任意の適切な方式による親和性の測定が想定される。
【0107】
特定の実施形態では、ソーシャル・ネットワーキング・システム160は、係数を計算するために様々な因子を用いてよい。これらの因子は、例えば、ユーザ・アクション、オブジェクト間の関係のタイプ、ロケーション情報、他の適切な因子、またはそれらの任意の組み合わせを含んでよい。特定の実施形態では、係数を計算するとき、様々な因子に異なる重み付けを行ってもよい。各因子の重みは静的であってもよく、例えば、ユーザ、関係のタイプ、アクションのタイプ、ユーザのロケーションなどによって変化してもよい。因子のための格付け、そのユーザに対する総合的な係数を決定するべく、それらの重みにしたがって組み合わせられてもよい。限定ではなく一例として、特定のユーザ・アクションには格付けおよび重みの両方が割り当てられる一方、その特定のユーザ・アクションに関連付けられている関係には、格付けと相互に関連する重みとが割り当てられる(例えば、したがって重みが計100%になる)。特定のオブジェクトに対するユーザの係数を計算するために、そのユーザのアクションに割り当てられた格付けが、例えば、総合的な係数の60%を含む一方、そのユーザとそのオブジェクトとの間の関係は、総合的な係数の40%を含んでもよい。特定の実施形態では、ソーシャル・ネットワーキング・システム160は、係数を計算するために用いられる様々な因子の重みを決定するときに、例えば、情報がアクセスされてからの時間、減衰因子、アクセスの頻度、情報に対する関係またはそれに関する情報がアクセスされたオブジェクトに対する関係、オブジェクトにつながっているソーシャルグラフ・エンティティに対する関係、ユーザ・アクションの短期的または長期的な平均、ユーザ・フィードバック、他の適切な変数、またはそれらの任意の組み合わせなど、様々な変数を考慮してもよい。限定ではなく一例として、係数は、係数を計算するとき、より最近のアクションがより関連性を有するように、特定のアクションによって提供される信号の強さを時間とともに減衰させる減衰因子を含んでもよい。格付けおよび重みは、その係数が基づくアクションの継続的なトラッキングに基づいて、継続的に更新されてもよい。任意のタイプのプロセスまたはアルゴリズムが、各因子およびそれらの因子に割り当てられる重みの格付けの割当、結合、平均化などに用いられてよい。特定の実施形態では、ソーシャル・ネットワーキング・システム160は、履歴のアクションおよび過去のユーザ応答、またはデータを様々なオプションに晒し応答を測定することによってユーザから集められたデータに基づきトレーニングされた機械学習アルゴリズムを用いて、係数を決定してもよい。本開示では特定の方式による特定の係数の計算について記載するが、本開示では任意の適切な方式による係数の計算が想定される。
【0108】
特定の実施形態では、ソーシャル・ネットワーキング・システム160は、ユーザのアクションに基づき係数を計算してもよい。ソーシャル・ネットワーキング・システム160は、オンライン・ソーシャル・ネットワーク上、サードパーティ・システム170上、他の適切なシステム上、またはそれらの任意の組み合わせ上において、そのようなアクションを監視してよい。任意の適切なタイプのユーザ・アクションのトラッキングまたは監視が行われてよい。典型的なユーザ・アクションには、プロフィール・ページを閲覧すること、コンテンツを作成または投稿すること、コンテンツと対話すること、イメージ内にタグ付けを行うか、もしくは、タグ付けされること、グループに参加すること、イベントへの参加をリストまたは確認すること、ロケーションにチェックインすること、特定のページに「いいね」と表明すること、ページを作成すること、およびソーシャル・アクションを行う他のタスクを実行することが含まれる。特定の実施形態では、ソーシャル・ネットワーキング・システム160は、特定のタイプのコンテンツを有するユーザのアクションに基づき、係数を計算してよい。コンテンツは、オンライン・ソーシャル・ネットワーク、サードパーティ・システム170、または別の適切なシステムに関連付けられてよい。コンテンツは、ユーザ、プロフィール・ページ、投稿、ニュース・ストーリ、ヘッドライン、インスタント・メッセージ、チャット・ルーム会話、電子メール、広告、写真、動画、音楽、他の適切なオブジェクト、またはそれらの任意の組み合わせを含んでよい。ソーシャル・ネットワーキング・システム160は、ユーザのアクションを、そのアクションのうちの1つ以上が主題、コンテンツ、他のユーザなどに対する親和性を示すか否かを決定するために分析してよい。限定ではなく一例として、ユーザが、「コーヒー」またはその変形に関係するコンテンツを頻繁に投稿する場合、ソーシャル・ネットワーキング・システム160は、ユーザがコンセプト「コーヒー」に関して高い係数を有すると決定してもよい。特定のアクションまたはアクションのタイプは、他のアクションよりも大きな重み、より高い格付け、またはその両方を割り当てられ、これが総合的な計算された係数に影響を与えてもよい。限定ではなく一例として、第1のユーザが第2のユーザに電子メールを送る場合、そのアクションに対する重みまたは格付けは、第1のユーザが単に第2のユーザのユーザ・プロファイル・ページを閲覧する場合よりも高くてもよい。
【0109】
特定の実施形態では、ソーシャル・ネットワーキング・システム160は、特定のオブジェクトの間の関係のタイプに基づき係数を計算してもよい。ソーシャル・グラフ200を参照すると、ソーシャル・ネットワーキング・システム160は、係数を計算するとき、特定のユーザ・ノード202およびコンセプト・ノード204をつなげるエッジ206の数および/またはタイプを分析してもよい。限定ではなく一例として、配偶者タイプのエッジ(2人のユーザが結婚していることを表す)によって接続されているユーザ・ノード202は、友達タイプのエッジによって接続されているユーザ・ノード202より高い係数を割り当てられてもよい。換言すれば、特定のユーザのアクション及び関係に割り当てられた重みに応じて、総合親和性は、ユーザの友達に関するコンテンツに対するよりもユーザの配偶者に関するコンテンツに対してより高くなるように決定されてもよい。特定の実施形態では、ユーザが別のオブジェクトと有する関係は、そのオブジェクトについての係数の計算に関して重みおよび/またはユーザのアクションの格付けに影響を与えてもよい。限定ではなく一例として、ユーザが第1の写真にタグ付けされているが、第2の写真にいいねと表明しかしない場合、コンテンツに対してタグ付けタイプの関係を有することにはコンテンツに対して「いいね」タイプの関係を有するよりも高い重みおよび/または格付けが割り当てられることから、ソーシャル・ネットワーキング・システム160は、ユーザが第2の写真より第1の写真に関して高い係数を有すると決定してもよい。特定の実施形態では、ソーシャル・ネットワーキング・システム160は、1以上の第2のユーザが特定のオブジェクトに対して有する関係に基づき、第1のユーザのための係数を計算してもよい。換言すれば、他のユーザがオブジェクトに対して有する接続および係数は、そのオブジェクトに対する第1のユーザの係数に影響を与えてもよい。限定ではなく一例として、第1のユーザが1以上の第2のユーザに接続されるか、1以上の第2のユーザに対する高い係数を有し、それらの第2のユーザが特定のオブジェクトに接続されるか、特定のオブジェクトに対する高い係数を有する場合、ソーシャル・ネットワーキング・システム160は、その特定のオブジェクトに対して第1のユーザが比較的高い係数を有するべきであると決定してもよい。特定の実施形態では、係数は特定のオブジェクト間の隔たりの程度に基づいてもよい。係数が低いほど、ソーシャル・グラフ200において第1のユーザに間接的に接続されているユーザのコンテンツ・オブジェクトへの関心を第1のユーザが共有する見込みが減少することを表してもよい。限定ではなく一例として、ソーシャル・グラフ200においてより近くにある(すなわち、より隔たりの程度が小さい)ソーシャルグラフ・エンティティ同士は、ソーシャル・グラフ200においてより遠くにあるエンティティ同士よりも高い係数を有してもよい。
【0110】
特定の実施形態では、ソーシャル・ネットワーキング・システム160は、ロケーション情報に基づき係数を計算してもよい。互いに地理的に近くにあるオブジェクト同士は、より離れたオブジェクト同士よりも、より関連している、または互いにより高い関心を有すると考えられてよい。特定の実施形態では、特定のオブジェクトに対するユーザの係数は、そのユーザに関連付けられている現在のロケーション(またはそのユーザのクライアント・システム130のロケーション)に対するそのオブジェクトのロケーションの近接度に基づいてもよい。第1のユーザは、第1のユーザのより近くにある他のユーザまたはコンセプトに、より高い関心を有し得る。限定ではなく一例として、ユーザが空港から1マイル(約1.6km)に位置し、ガソリン・スタンドから2マイル(約3.2km)に位置する場合、ソーシャル・ネットワーキング・システム160は、そのユーザに対する空港の近接度に基づき、ユーザがガソリン・スタンドよりも空港に対しより高い係数を有すると決定してもよい。特定の実施形態において、1または複数のオブジェクトに向けられたユーザの係数は、オブジェクトの地理的近接性(たとえば、ユーザに対して、および/または、互いに)およびオブジェクトとのユーザの対話に基づいてもよい。限定するものではないが例として、ユーザによって順次に訪問される地理的ロケーションの組み、たとえば、レストランと近くの映画館は、関連の無い地理的ロケーションよりも互いに関心があるものとみなされてもよい。
【0111】
特定の実施形態では、ソーシャル・ネットワーキング・システム160は、係数情報に基づきユーザに関する特定のアクションを行ってもよい。係数を用いて、ユーザが特定のアクションを行うか否かを、そのアクションについてのそのユーザの関心に基づき予測することができる。係数は、広告、検索結果、ニュース・ストーリ、メディア、メッセージ、通知、または他の適切なオブジェクトなど、ユーザに対する任意のタイプのオブジェクトを生成または提示するときに用いられてよい。また、適切な場合、係数は、そのようなオブジェクトのランクおよび順序を決定するためにも利用されて得る。このように、ソーシャル・ネットワーキング・システム160は、ユーザの関心および現在の状況に関連する情報を提供してもよく、それによって、それらがそのような関心を有する情報を見出す見込みを高める。特定の実施形態では、ソーシャル・ネットワーキング・システム160は、係数情報に基づきコンテンツを生成してもよい。コンテンツ・オブジェクトは、ユーザに特有の係数に基づき提供または選択されてもよい。限定ではなく一例として、係数はユーザに対するメディアを生成するために用いられてもよく、ユーザには、そのメディア・オブジェクトに関してそのユーザが高い総合係数を有するメディアが、提示される。限定ではなく別の一例として、限定ではなく一例として、係数はユーザに対する広告を生成するために用いられてもよく、ユーザには、その広告オブジェクトに関してそのユーザが高い総合係数を有する広告が、提示される。特定の実施形態では、ソーシャル・ネットワーキング・システム160は、係数情報に基づき検索結果を生成してもよい。特定のユーザのための検索結果は、問い合わせを行うユーザに関して検索結果に関連付けられている係数に基づき、得点またはランクを決定されてよい。限定ではなく一例として、より高い係数を有するオブジェクトに対応する検索結果は、より低い係数を有するオブジェクトに対応する結果よりも、検索結果のページにおいて、より高いランクを決定されてもよい。
【0112】
特定の実施形態では、ソーシャル・ネットワーキング・システム160は、特定のシステムまたはプロセスからの係数の要求に応じて、係数を計算してもよい。ユーザが所与の状況において取り得る(あるいは対象となる)可能性の高いアクションを予測するために、任意のプロセスによって、ユーザの計算された係数が要求されてよい。また、この要求は、係数を計算するために用いられる様々な因子に用いる1組の重みを含んでもよい。この要求は、オンライン・ソーシャル・ネットワーク上で動作するプロセスから、サードパーティ・システム170から(例えば、APIまたは他の通信チャンネルを通して)、または別の適切なシステムから届いてよい。要求に応じて、ソーシャル・ネットワーキング・システム160は、係数を計算してよい(または、係数が以前に計算され記憶されている場合、その係数情報にアクセスしてよい)。特定の実施形態では、ソーシャル・ネットワーキング・システム160は、特定のプロセスに関する親和性を測定してもよい。様々なプロセス(オンライン・ソーシャル・ネットワークに対して内外の両方)は、特定の1つのオブジェクトまたは複数のオブジェクトからなる組に対する係数を要求してもよい。ソーシャル・ネットワーキング・システム160は、親和性の尺度を要求した特定のプロセスに関連する親和性の尺度を提供してもよい。このように、各プロセスは、プロセスが親和性の尺度を用いる様々なコンテキストに適合する親和性の尺度を受信する。
【0113】
ソーシャル・グラフ親和性および親和性係数に関して、特定の実施形態では、米国特許出願第11/503093号(2006年8月11日提出)、米国特許出願第12/977027号(2010年12月22日提出)、米国特許出願第12/978265号(2010年12月23日受信)、および米国特許出願第13/632869号、において開示されている1以上のシステム、構成要素、要素、機能、方法、動作、または工程を利用してよい。それらの文献の各々を引用によって本明細書に援用する。
【0114】
広告
特定の実施形態では、広告は、テキスト(HTMLリンクされてもよい)、1つもしくは複数の画像(HTMLリンクされてもよい)、1つもしくは複数のビデオ、オーディオ、1つもしくは複数のADOBE FLASHファイル、これらの好適な組合せ、あるいは1つもしくは複数のページ上、1つもしくは複数の電子メール内、またはユーザによって要求された検索結果との関連で提示される任意の好適なデジタル・フォーマットにある任意の他の好適な広告であってよい。それに加えて、または代替として、広告は、1つまたは複数のスポンサ付きのストーリ(たとえば、ソーシャル・ネットワーキング・システム160上のニュース・フィードまたはティッカ・アイテム)であっても、1つまたは複数のスポンサ付きのクエリ(たとえば、特定のオブジェクトを参照する提案クエリ)であってもよい。スポンサ付きのストーリまたはクエリは、ユーザによるソーシャル・アクションに対する参照(ページに「いいね」を表明すること、ページ上の投稿に対して「いいね」を表明する、もしくはコメントすること、ページに関連付けられているイベントに対してRSVPすること、ページ上で投稿された質問に対して投票すること、ある場所にチェックインすること、アプリケーションを使用する、もしくはゲームをプレイすること、またはウェブサイドに「いいね」を表明する、もしくは共有することなど)を含んでもよく、この参照は、たとえばソーシャル・アクションをユーザのプロフィール・ページもしくは他のページの所定の領域内で提示させる、広告主に関連付けられている追加の情報と共に提示させる、ニュース・フィードもしくは他のユーザのティッカ内で上昇させる、もしくは他の方法で強調させる、または他の方法で奨励させることによって、広告主が奨励する。広告主は、ソーシャル・アクションを奨励させるために支払ってもよい。
【0115】
特定の実施形態では、広告は、ソーシャルネットワーキング・システム・ページ、サードパーティ・ウェブページ、または他のページ内に表示するために要求されてもよい。広告は、ページの上部におけるバナー領域内、ページの側部におけるコラム内、ページのGUI内、ポップアップ・ウィンドウ内、ドロップダウン・メニュー内、ページの入力フィールド内、ページのコンテンツの上部の上、またはページに関するどこかなど、ページの専用部分内に表示されてもよい。それに加えて、または代替として、広告は、アプリケーション内に表示されてもよい。広告は、専用ページ内に表示され、ユーザがページにアクセスする、またはアプリケーションを使用することができる前に、ユーザが広告と対話する、または広告を見ることを必要としてもよい。ユーザは、たとえばウェブ・ブラウザを通じて広告を見ることができる。
【0116】
ユーザは、任意の好適なようにして広告と対話することができる。ユーザは、広告をクリックしても、他の方法で選択してもよい。広告を選択することによって、ユーザは、広告に関連付けられているページ(またはユーザによって使用されるブラウザもしくは他のアプリケーション)に導かれてもよい。広告に関連付けられているページでは、ユーザは、広告に関連付けられている製品もしくはサービスを購入すること、広告に関連付けられている情報を受け取ること、または広告に関連付けられているニュースレターを購読することなど、追加のアクションをとることができる。広告の(「再生ボタン」のような)構成要素を選択することによって、オーディオまたはビデオを有する広告が再生されてもよい。あるいは、広告を選択することによって、ソーシャル・ネットワーキング・システム160は、ユーザの特定のアクションを実行または修正してもよい。限定するものとしてではなく一例として、広告は、スポンサ付きのコンテンツがスポンサ付きでないコンテンツの上で奨励される検索結果ページの検索結果の中に含まれてもよい。限定するものとしてではなく別の例として、広告は、広告主またはそのコンテンツ/製品を参照する提案クエリがスポンサ付きでないクエリの上で奨励されてもよい、提案される検索クエリの中に含まれてもよい。
【0117】
広告は、ユーザが対話することができるソーシャル・ネットワーキング・システム機能を含んでもよい。たとえば、広告は、推奨宣伝に関連付けられているアイコンまたはリンクを選択することによってユーザが広告に対して「いいね」を表明する、または他の方法で推奨宣伝することを可能にしてもよい。別の例として、広告は、ユーザが(たとえば、クエリを実行することによって)広告主に関係するコンテンツを求めて検索することを可能にしてもよい。同様に、ユーザは、(たとえば、ソーシャル・ネットワーキング・システム160を通じて)広告を別のユーザと共有しても、(たとえば、ソーシャル・ネットワーキング・システム160を通じて)広告に関連付けられているイベントに対してRSVPしてもよい。それに加えて、または代替として、広告は、ユーザを対象とするソーシャルネットワーキング・システム・コンテンツを含んでもよい。たとえば、広告は、広告の主題に関連付けられているアクションをとったソーシャル・ネットワーキング・システム160内のユーザの友達についての情報を表示してもよい。限定するものとしてではなく一例として、広告主が奨励したいと望む特定の場所またはオブジェクトが、カード・クラスタ530のカード450内で、またはそれらのランク付けされたカード内におけるユーザのための単一のアイテム・カード450として後押しまたは奨励されてもよい。奨励されるカード450のランキングは、ユーザにとって潜在的に関りが少ない別のカード450を表示するために受けた関りの「ヒット」をオフセットするようにダイナミック・オークションを考慮してもよい。別の例として、単にスポンサ付きのアイテムではなくスポンサ付きのカード450がユーザに対して表示されてもよい。たとえば、NETFLIXカード450は、NETFLIX上で使用可能なコンテンツだけに対応してもよく、スターバックス・カード450は、「近くのカフェ」に対応するカード450より前に表示され得る「近くのスターバックス」カード450であってもよい。
【0118】
システムおよび方法
図12は、例示的なコンピュータ・システム1200を示している。特定の実施形態においては、1つまたは複数のコンピュータ・システム1200が、本明細書において記述されているまたは示されている1つまたは複数の方法の1つまたは複数の工程を実行する。特定の実施形態においては、1つまたは複数のコンピュータ・システム1200が、本明細書において記述されているまたは示されている機能を提供する。特定の実施形態においては、1つまたは複数のコンピュータ・システム1200上で稼働するソフトウェアが、本明細書において記述されているもしくは示されている1つもしくは複数の方法の1つもしくは複数の工程を実行し、または本明細書において記述されているもしくは示されている機能を提供する。特定の実施形態は、1つまたは複数のコンピュータ・システム1200の1つまたは複数の部分を含む。本明細書においては、コンピュータ・システムへの言及は、適切な場合には、コンピューティング・デバイスを、またはその逆を包含することができる。その上、コンピュータ・システムへの言及は、適切な場合には、1つまたは複数のコンピュータ・システムを包含することができる。
【0119】
本開示は、任意の適切な数のコンピュータ・システム1200を想定している。本開示は、任意の適切な物理的な形態を取るコンピュータ・システム1200を想定している。限定ではなく、例として、コンピュータ・システム1200は、組み込みコンピュータ・システム、システムオンチップ(SOC)、シングルボード・コンピュータ・システム(SBC)(たとえば、コンピュータオンモジュール(COM)もしくはシステムオンモジュール(SOM)など)、デスクトップ・コンピュータ・システム、ラップトップもしくはノートブック・コンピュータ・システム、対話キオスク、メインフレーム、コンピュータ・システムのメッシュ、モバイル電話、携帯情報端末(PDA)、サーバ、タブレット・コンピュータ・システム、またはこれらのうちの複数の組合せであることが可能である。適切な場合には、コンピュータ・システム1200は、1つもしくは複数のコンピュータ・システム1200を含むこと、単一型もしくは分散型であること、複数のロケーションにわたること、複数のマシンにわたること、複数のデータセンターにわたること、または、クラウド(1つもしくは複数のネットワーク内の1つもしくは複数のクラウド・コンポーネントを含むことができる)内に常駐することが可能である。適切な場合には、1つまたは複数のコンピュータ・システム1200は、本明細書において記述されているまたは示されている1つまたは複数の方法の1つまたは複数の工程を、実質的な空間上のまたは時間上の制限を伴わずに実行することができる。限定ではなく、例として、1つまたは複数のコンピュータ・システム1200は、本明細書において記述されているまたは示されている1つまたは複数の方法の1つまたは複数の工程をリアル・タイムで、またはバッチ・モードで実行することができる。1つまたは複数のコンピュータ・システム1200は、適切な場合には、本明細書において記述されているまたは示されている1つまたは複数の方法の1つまたは複数の工程を別々の時点で、または別々のロケーションで実行することができる。
【0120】
特定の実施形態においては、コンピュータ・システム1200は、プロセッサ1202、メモリ1204、ストレージ1206、入力/出力(I/O)インタフェース1208、通信インタフェース1210、およびバス1212を含む。本開示は、特定の数の特定の構成要素を特定の構成で有する特定のコンピュータ・システムについて記述し、示しているが、本開示は、任意の適切な数の任意の適切な構成要素を任意の適切な構成で有する任意の適切なコンピュータ・システムを想定している。
【0121】
特定の実施形態においては、プロセッサ1202は、コンピュータ・プログラムを構成している命令などの命令を実行するためのハードウェアを含む。限定ではなく、例として、命令を実行するために、プロセッサ1202は、内部レジスタ、内部キャッシュ、メモリ1204、またはストレージ1206から命令を取り出し(またはフェッチし)、それらの命令をデコードして実行し、次いで、1つまたは複数の結果を内部レジスタ、内部キャッシュ、メモリ1204、またはストレージ1206に書き込むことができる。特定の実施形態においては、プロセッサ1202は、データ、命令、またはアドレスのための1つまたは複数の内部キャッシュを含むことができる。本開示は、適切な場合には、任意の適切な数の任意の適切な内部キャッシュを含むプロセッサ1202を想定している。限定ではなく、例として、プロセッサ1202は、1つまたは複数の命令キャッシュ、1つまたは複数のデータ・キャッシュ、および1つまたは複数の変換ルックアサイド・バッファ(TLB)を含むことができる。命令キャッシュ内の命令は、メモリ1204またはストレージ1206内の命令のコピーであることが可能であり、命令キャッシュは、プロセッサ1202によるそれらの命令の取り出しをスピードアップすることができる。データ・キャッシュ内のデータは、プロセッサ1202において実行される命令が機能する際に基づくメモリ1204もしくはストレージ1206内のデータのコピー、プロセッサ1202において実行される後続の命令によるアクセスのための、もしくはメモリ1204もしくはストレージ1206への書き込みのためのプロセッサ1202において実行された以前の命令の結果、またはその他の適切なデータであることが可能である。データ・キャッシュは、プロセッサ1202による読み取りオペレーションまたは書き込みオペレーションをスピードアップすることができる。TLBは、プロセッサ1202のための仮想アドレス変換をスピードアップすることができる。特定の実施形態においては、プロセッサ1202は、データ、命令、またはアドレスのための1つまたは複数の内部レジスタを含むことができる。本開示は、適切な場合には、任意の適切な数の任意の適切な内部レジスタを含むプロセッサ1202を想定している。適切な場合には、プロセッサ1202は、1つまたは複数の演算ロジック・ユニット(ALU)を含むこと、マルチコア・プロセッサであること、または1つもしくは複数のプロセッサ1202を含むことが可能である。本開示は、特定のプロセッサについて記述し、示しているが、本開示は、任意の適切なプロセッサを想定している。
【0122】
特定の実施形態においては、メモリ1204は、プロセッサ1202が実行するための命令、またはプロセッサ1202が機能する際に基づくデータを記憶するためのメイン・メモリを含む。限定ではなく、例として、コンピュータ・システム1200は、命令をストレージ1206または別のソース(たとえば、別のコンピュータ・システム1200など)からメモリ1204にロードすることができる。次いでプロセッサ1202は、命令をメモリ1204から内部レジスタまたは内部キャッシュにロードすることができる。命令を実行するために、プロセッサ1202は、命令を内部レジスタまたは内部キャッシュから取り出し、それらの命令をデコードすることができる。命令の実行中または実行後に、プロセッサ1202は、1つまたは複数の結果(それらは、中間の結果または最終的な結果である場合がある)を内部レジスタまたは内部キャッシュに書き込むことができる。次いでプロセッサ1202は、それらの結果のうちの1つまたは複数をメモリ1204に書き込むことができる。特定の実施形態においては、プロセッサ1202は、(ストレージ1206またはその他の場所ではなく)1つもしくは複数の内部レジスタもしくは内部キャッシュ内の、またはメモリ1204内の命令のみを実行し、(ストレージ1206またはその他の場所ではなく)1つもしくは複数の内部レジスタもしくは内部キャッシュ内の、またはメモリ1204内のデータ上でのみ機能する。1つまたは複数のメモリ・バス(それらはそれぞれ、アドレス・バスおよびデータ・バスを含むことができる)は、プロセッサ1202をメモリ1204に結合することができる。バス1212は、以降で記述されているような1つまたは複数のメモリ・バスを含むことができる。特定の実施形態においては、1つまたは複数のメモリ管理ユニット(MMU)が、プロセッサ1202とメモリ1204との間に常駐し、プロセッサ1202によって要求されるメモリ1204へのアクセスを容易にする。特定の実施形態においては、メモリ1204は、ランダム・アクセス・メモリ(RAM)を含む。このRAMは、適切な場合には、揮発性メモリであることが可能である。適切な場合には、このRAMは、ダイナミックRAM(DRAM)またはスタティックRAM(SRAM)であることが可能である。その上、適切な場合には、このRAMは、シングルポートRAMまたはマルチポートRAMであることが可能である。本開示は、任意の適切なRAMを想定している。メモリ1204は、適切な場合には、1つまたは複数のメモリ1204を含むことができる。本開示は、特定のメモリについて記述し、示しているが、本開示は、任意の適切なメモリを想定している。
【0123】
特定の実施形態においては、ストレージ1206は、データまたは命令のためのマス・ストレージを含む。限定ではなく、例として、ストレージ1206は、ハード・ディスク・ドライブ(HDD)、フロッピー(登録商標)・ディスク・ドライブ、フラッシュ・メモリ、光ディスク、光磁気ディスク、磁気テープ、またはユニバーサル・シリアル・バス(USB)ドライブ、またはこれらのうちの複数の組合せを含むことができる。ストレージ1206は、適切な場合には、取り外し可能なまたは取り外し不能な(すなわち、固定された)媒体を含むことができる。ストレージ1206は、適切な場合には、コンピュータ・システム1200の内部または外部に存在することが可能である。特定の実施形態においては、ストレージ1206は、不揮発性のソリッドステート・メモリである。特定の実施形態においては、ストレージ1206は、読み取り専用メモリ(ROM)を含む。適切な場合には、このROMは、マスクプログラムROM、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)、電気的書替え可能ROM(EAROM)、またはフラッシュ・メモリ、またはこれらのうちの複数の組合せであることが可能である。本開示は、任意の適切な物理的な形態を取るマス・ストレージ1206を想定している。ストレージ1206は、適切な場合には、プロセッサ1202とストレージ1206との間における通信を容易にする1つまたは複数のストレージ・コントロール・ユニットを含むことができる。適切な場合には、ストレージ1206は、1つまたは複数のストレージ1206を含むことができる。本開示は、特定のストレージについて記述し、示しているが、本開示は、任意の適切なストレージを想定している。
【0124】
特定の実施形態においては、I/Oインタフェース1208は、コンピュータ・システム1200と1つまたは複数のI/Oデバイスとの間における通信のための1つまたは複数のインタフェースを提供するハードウェア、ソフトウェア、またはその両方を含む。コンピュータ・システム1200は、適切な場合には、これらのI/Oデバイスのうちの1つまたは複数を含むことができる。これらのI/Oデバイスのうちの1つまたは複数は、人とコンピュータ・システム1200との間における通信を可能にすることができる。限定ではなく、例として、I/Oデバイスは、キーボード、キーパッド、マイクロフォン、モニタ、マウス、プリンタ、スキャナ、スピーカ、スチル・カメラ、スタイラス、タブレット、タッチ・スクリーン、トラックボール、ビデオ・カメラ、別の適切なI/Oデバイス、またはこれらのうちの複数の組合せを含むことができる。I/Oデバイスは、1つまたは複数のセンサを含むことができる。本開示は、任意の適切なI/Oデバイス、およびそれらのI/Oデバイスのための任意の適切なI/Oインタフェース1208を想定している。適切な場合には、I/Oインタフェース1208は、プロセッサ1202がこれらのI/Oデバイスのうちの1つまたは複数を駆動することを可能にする1つまたは複数のデバイス・ドライバまたはソフトウェア・ドライバを含むことができる。I/Oインタフェース1208は、適切な場合には、1つまたは複数のI/Oインタフェース1208を含むことができる。本開示は、特定のI/Oインタフェースについて記述し、示しているが、本開示は、任意の適切なI/Oインタフェースを想定している。
【0125】
特定の実施形態においては、通信インタフェース1210は、コンピュータ・システム1200と、1つもしくは複数のその他のコンピュータ・システム1200または1つもしくは複数のネットワークとの間における通信(たとえば、パケットベースの通信など)のための1つまたは複数のインタフェースを提供するハードウェア、ソフトウェア、またはその両方を含む。限定ではなく、例として、通信インタフェース1210は、イーサネット(登録商標)もしくはその他の有線ベースのネットワークと通信するためのネットワーク・インタフェース・コントローラ(NIC)もしくはネットワーク・アダプタ、またはWI−FIネットワークなどの無線ネットワークと通信するための無線NIC(WNIC)もしくは無線アダプタを含むことができる。本開示は、任意の適切なネットワーク、およびそのネットワークのための任意の適切な通信インタフェース1210を想定している。限定ではなく、例として、コンピュータ・システム1200は、アド・ホック・ネットワーク、パーソナル・エリア・ネットワーク(PAN)、ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)、メトロポリタン・エリア・ネットワーク(MAN)、またはインターネットの1つまたは複数の部分、またはこれらのうちの複数の組合せと通信することができる。これらのネットワークのうちの1つまたは複数の1つまたは複数の部分は、有線または無線であることが可能である。例として、コンピュータ・システム1200は、無線PAN(WPAN)(たとえば、ブルートゥースWPANなど)、WI−FIネットワーク、WI−MAXネットワーク、セルラ電話ネットワーク(たとえば、グローバル・システム・フォー・モバイル・コミュニケーションズ(GSM(登録商標))ネットワークなど)、またはその他の適切な無線ネットワーク、またはこれらのうちの複数の組合せと通信することができる。コンピュータ・システム1200は、適切な場合には、これらのネットワークのうちの任意のネットワークのための任意の適切な通信インタフェース1210を含むことができる。通信インタフェース1210は、適切な場合には、1つまたは複数の通信インタフェース1210を含むことができる。本開示は、特定の通信インタフェースについて記述し、示しているが、本開示は、任意の適切な通信インタフェースを想定している。
【0126】
特定の実施形態においては、バス1212は、コンピュータ・システム1200の構成要素同士を互いに結合するハードウェア、ソフトウェア、またはその両方を含む。限定ではなく、例として、バス1212は、アクセラレイティッド・グラフィックス・ポート(AGP)もしくはその他のグラフィックス・バス、エンハンスト・インダストリー・スタンダード・アーキテクチャ(EISA)バス、フロントサイド・バス(FSB)、ハイパートランスポート(HT)インターコネクト、インダストリー・スタンダード・アーキテクチャ(ISA)バス、インフィニバンド・インターコネクト、ローピンカウント(LPC)バス、メモリ・バス、マイクロ・チャネル・アーキテクチャ(MCA)バス、ペリフェラル・コンポーネント・インターコネクト(PCI)バス、PCIエクスプレス(PCIe)バス、シリアル・アドバンスト・テクノロジー・アタッチメント(SATA)バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション・ローカル(VLB)バス、または別の適切なバス、またはこれらのうちの複数の組合せを含むことができる。バス1212は、適切な場合には、1つまたは複数のバス1212を含むことができる。本開示は、特定のバスについて記述し、示しているが、本開示は、任意の適切なバスまたはインターコネクトを想定している。
【0127】
本明細書においては、1つまたは複数の非一時的なコンピュータ可読記憶媒体は、適切な場合には、1つもしくは複数の半導体ベースのもしくはその他の集積回路(IC)(たとえば、フィールドプログラマブル・ゲート・アレイ(FPGA)もしくは特定用途向け集積回路(ASIC)など)、ハード・ディスク・ドライブ(HDD)、ハイブリッド・ハード・ドライブ(HHD)、光ディスク、光ディスク・ドライブ(ODD)、光磁気ディスク、光磁気ドライブ、フロッピー(登録商標)・ディスケット、フロッピー(登録商標)・ディスク・ドライブ(FDD)、磁気テープ、ソリッドステート・ドライブ(SSD)、RAMドライブ、セキュア・デジタル・カードもしくはドライブ、その他の任意の適切な非一時的なコンピュータ可読記憶媒体、またはこれらのうちの複数の組合せを含むことができる。非一時的なコンピュータ可読記憶媒体は、適切な場合には、揮発性、不揮発性、または揮発性と不揮発性の組合せであることが可能である。
【0128】
その他
本明細書においては、「または(もしくは)」は、包含的であり、排他的ではない(ただし、そうではないことが明示されている場合、または、そうではないことが文脈によって示されている場合は除く)。したがって、本明細書においては、「AまたはB」は、「A、B、またはその両方」を意味する(ただし、そうではないことが明示されている場合、または、そうではないことが文脈によって示されている場合は除く)。その上、「および(ならびに)」は、包括的および個別的の両方である(ただし、そうではないことが明示されている場合、または、そうではないことが文脈によって示されている場合は除く)。したがって、本明細書においては、「AおよびB」は、「まとめて、または個別に、AおよびB」を意味する(ただし、そうではないことが明示されている場合、または、そうではないことが文脈によって示されている場合は除く)。
【0129】
本開示の範囲は、当技術分野における標準的な技術者が理解するであろう、本明細書において記述されているまたは示されている例示的な実施形態に対するすべての変更、置換、変形、改変、および修正を包含する。本開示の範囲は、本明細書において記述されているまたは示されている例示的な実施形態に限定されない。その上、本開示は、本明細書におけるそれぞれの実施形態を、特定の構成要素、要素、特徴、機能、オペレーション、または工程を含むものとして記述し、示しているが、これらの実施形態のいずれも、当技術分野における標準的な技術者が理解するであろう、本明細書の任意の箇所において記述されているまたは示されている構成要素、要素、特徴、機能、オペレーション、または工程のうちの任意のものの任意の組合せまたは順列を含むことができる。さらに、特定の機能を実行するように適合されている、実行するようにアレンジされている、実行することができる、実行するように構成されている、実行することを可能にされている、実行するように機能できる、または実行するように機能する装置もしくはシステム、または装置もしくはシステムの構成要素への添付の特許請求の範囲における言及は、その装置、システム、構成要素、またはその特定の機能が、有効化されているか否か、オンにされているか否か、またはロック解除されているか否かを問わず、その装置、システム、または構成要素が、そうするように適合されている、そうするようにアレンジされている、そうすることができる、そうするように構成されている、そうすることを可能にされている、そうするように機能できる、またはそうするように機能する限り、その装置、システム、構成要素を包含する。