(57)【特許請求の範囲】
【請求項１】
１以上のコンピューティングシステムが、
ソーシャルネットワーキングシステムにおいてビデオコンテンツプロバイダシステムから、前記ソーシャルネットワーキングシステムのユーザに関連付けられたユーザ識別子を含む要求を受信する、要求受信ステップと、
前記ソーシャルネットワーキングシステムにおける前記ユーザの１以上のつながりによって生成されたストーリについて前記ソーシャルネットワーキングシステムのソーシャルグラフにクエリを行うステップであって、前記ソーシャルグラフは、複数のノードと、前記ノード同士をつなげているエッジとを備え、前記ノードは、前記ソーシャルネットワーキングシステムの特定のユーザに各々関連付けられたユーザノードを含み、前記ユーザノードの間のエッジは、前記ソーシャルネットワーキングシステムの前記ユーザ同士の関係を識別する、クエリステップと、
前記ビデオコンテンツプロバイダによって前記ユーザに提供されるサービスに関連して使用されるように前記ソーシャルネットワーキングシステムから前記ストーリのうちの１以上を送信する、ストーリ送信ステップと、
前記ソーシャルネットワーキングシステムにおいて前記ビデオコンテンツプロバイダから、前記ユーザが現在、特定のコンテンツを観ていることを示す新たなストーリを前記ソーシャルネットワーキングシステム上に投稿するためのユーザインタフェース要素を前記ユーザが選択したことを示す標識を受信するステップであって、前記ユーザインタフェース要素は、前記特定のコンテンツが観られていることに伴って表示されている、ステップと、
前記ソーシャルネットワーキングシステムが、前記ユーザに関連付けられたユーザノードと、前記ユーザが現在観ている前記特定のコンテンツに関連付けられたコンテンツノードとの間に前記ソーシャルグラフにおける新たなエッジを生成するステップと、
前記ソーシャルネットワーキングシステムにおいて前記ビデオコンテンツプロバイダから、前記ユーザが将来的に観るものを前記ユーザがさらなる明示のアクションをすることなく受動的に共有するオプションを前記ユーザが選択したことを示す標識を受信するステップと、
前記ユーザが将来的に観るものを受動的に共有するオプションを前記ユーザが選択したことを示す標識を受信した後に、前記ソーシャルネットワーキングシステムが、前記ユーザが新たなコンテンツを観るに際し前記ソーシャルネットワーキングシステム上に新たな
ストーリを自動的に投稿するステップであって、各新たなストーリは、前記特定のコンテンツが前記ユーザによって観られていることを示す標識を含み、前記新たなストーリは、前記ユーザが所定の時間より長く前記新たなコンテンツを継続的に観た場合に限り、自動的に前記ソーシャルネットワーキングシステム上に投稿される、ステップと、
を含む方法。
【請求項２】
前記ビデオコンテンツプロバイダは、マルチサービスオペレータ（ＭＳＯ）を含み、前記ビデオコンテンツは、ケーブル番組を含み、
前記ストーリは、特定のビデオコンテンツを観ていることに対応するアクションを含み、
前記ストーリ送信ステップは、前記１以上のストーリを、電子番組案内（ＥＰＧ）の中で前記ストーリが提示されるように前記ソーシャルネットワーキングシステムのユーザに関連付けられたセットトップボックスに送信するステップを含む、請求項１に記載の方法。
【請求項３】
前記ストーリは、特定のコンテンツオブジェクトに対して「いいね！」と表明している前記ユーザのつながりを含む、請求項１に記載の方法。
【請求項４】
前記ストーリは、特定のコンテンツオブジェクトを観ている前記ユーザのつながりを含む、請求項１に記載の方法。
【請求項５】
前記ストーリは、将来的に閲覧するために特定のコンテンツオブジェクトをキューに入れる前記ユーザのつながりを含む、請求項１に記載の方法。
【請求項６】
前記クエリは、１以上のコンテンツ識別子を含む方法であって、
コンテンツオブジェクトデータベースにアクセスするステップと、
前記コンテンツ識別子のうちの１以上の識別子のそれぞれと前記コンテンツオブジェクトデータベースの中のコンテンツオブジェクトとのマッチングを行うステップと、をさらに備える、請求項１に記載の方法。
【請求項７】
前記クエリステップは、前記１以上のコンテンツオブジェクトに関して前記ソーシャルネットワーキングシステムのユーザのつながりによって生成されたストーリを求めて前記ソーシャルグラフを検索するステップを含む、請求項６に記載の方法。
【請求項８】
１以上のコンピューティングシステムにおける１以上の非一時的コンピュータ可読記憶媒体であって、前記媒体は、ロジックを具現化しており、前記ロジックは、実行されるとき、
ソーシャルネットワーキングシステムにおいてビデオコンテンツプロバイダシステムから、前記ソーシャルネットワーキングシステムのユーザに関連付けられたユーザ識別子を含む要求を受信するステップと、
前記ソーシャルネットワーキングシステムにおける前記ユーザの１以上のつながりによって生成されたストーリについて前記ソーシャルネットワーキングシステムのソーシャルグラフにクエリを行うステップであって、前記ソーシャルグラフは、複数のノードと、前記ノード同士をつなげているエッジとを備え、前記ノードは、前記ソーシャルネットワーキングシステムの特定のユーザに各々関連付けられたユーザノードを含み、前記ユーザノードの間のエッジは、前記ソーシャルネットワーキングシステムの前記ユーザ同士の関係を識別する、クエリステップと、
前記ビデオコンテンツプロバイダによって前記ユーザに提供されるサービスに関連して使用されるように前記ソーシャルネットワーキングシステムから前記ストーリのうちの１以上を送信するステップと、
前記ユーザに関連付けられたユーザノードと、前記ユーザが現在観ている前記特定のコンテンツに関連付けられたコンテンツノードとの間に前記ソーシャルグラフにおける新たなエッジを生成するステップと、
前記ソーシャルネットワーキングシステムにおいて前記ビデオコンテンツプロバイダから、前記ユーザが将来的に観るものを前記ユーザがさらなる明示のアクションをすることなく受動的に共有するオプションを前記ユーザが選択したことを示す標識を受信するステップと、
前記ユーザが将来的に観るものを受動的に共有するオプションを前記ユーザが選択したことを示す標識を受信した後に、前記ソーシャルネットワーキングシステムが、前記ユーザが新たなコンテンツを観るに際し前記ソーシャルネットワーキングシステム上に新たなストーリを自動的に投稿するステップであって、各新たなストーリは、前記特定のコンテンツが前記ユーザによって観られていることを示す標識を含み、前記新たなストーリは、前記ユーザが所定の時間より長く前記新たなコンテンツを継続的に観た場合に限り、自動的に前記ソーシャルネットワーキングシステム上に投稿される、ステップとを行わせる、媒体。
【請求項９】
前記ビデオコンテンツプロバイダは、マルチサービスオペレータ（ＭＳＯ）を含み、前記ビデオコンテンツは、ケーブル番組を含み、
前記ストーリは、特定のビデオコンテンツを観ていることに対応するアクションを含み、
ストーリを送信することは、前記１以上のストーリを、電子番組案内（ＥＰＧ）の中で前記ストーリが提示されるように前記ソーシャルネットワーキングシステムのユーザに関連付けられたセットトップボックスに送信するステップを含む、請求項８に記載の媒体。
【請求項１０】
前記ストーリは、特定のコンテンツオブジェクトに対して「いいね！」と表明している前記ユーザのつながりを含む、請求項８に記載の媒体。
【請求項１１】
前記ストーリは、特定のコンテンツオブジェクトを観ている前記ユーザのつながりを含む、請求項８に記載の媒体。
【請求項１２】
前記ストーリは、将来的に閲覧するために特定のコンテンツオブジェクトをキューに入れる前記ユーザのつながりを含む、請求項８に記載の媒体。
【請求項１３】
前記クエリは、１以上のコンテンツ識別子を含む、媒体であって、
前記ロジックは、実行されたとき、
コンテンツオブジェクトデータベースにアクセスするステップと、
前記コンテンツ識別子のうちの１以上の識別子のそれぞれと前記コンテンツオブジェクトデータベースの中のコンテンツオブジェクトとのマッチングを行うステップと、をさらに行わせる、請求項８に記載の媒体。
【請求項１４】
前記クエリステップは、前記１以上のコンテンツオブジェクトに関して前記ソーシャルネットワーキングシステムのユーザのつながりによって生成されたストーリを求めて前記ソーシャルグラフを検索するステップを含む、請求項８に記載の媒体。
【請求項１５】
１以上のプロセッサと、
前記プロセッサにより実行可能な命令を備え、前記プロセッサに結合されているメモリと、を備え、前記命令が実行されるとき、前記プロセッサは、
ソーシャルネットワーキングシステムにおいてビデオコンテンツプロバイダシステムから、前記ソーシャルネットワーキングシステムのユーザに関連付けられたユーザ識別子を含む要求を受信するステップと、
前記ソーシャルネットワーキングシステムにおける前記ユーザの１以上のつながりによって生成されたストーリについて前記ソーシャルネットワーキングシステムのソーシャルグラフにクエリを行うステップであって、前記ソーシャルグラフは、複数のノードと、前記ノード同士をつなげているエッジとを備え、前記ノードは、前記ソーシャルネットワーキングシステムの特定のユーザに各々関連付けられたユーザノードを含み、前記ユーザノードの間のエッジは、前記ソーシャルネットワーキングシステムの前記ユーザ同士の関係を識別する、ステップと、
前記ビデオコンテンツプロバイダによって前記ユーザに提供されるサービスに関連して使用されるように前記ソーシャルネットワーキングシステムから前記ストーリのうちの１以上を送信するステップと、
前記ユーザに関連付けられたユーザノードと、前記ユーザが現在観ている前記特定のコンテンツに関連付けられたコンテンツノードとの間に前記ソーシャルグラフにおける新たなエッジを生成するステップと、
前記ソーシャルネットワーキングシステムにおいて前記ビデオコンテンツプロバイダから、前記ユーザが将来的に観るものを前記ユーザがさらなる明示のアクションをすることなく受動的に共有するオプションを前記ユーザが選択したことを示す標識を受信するステップと、
前記ユーザが将来的に観るものを受動的に共有するオプションを前記ユーザが選択したことを示す標識を受信した後に、前記ソーシャルネットワーキングシステムが、前記ユーザが新たなコンテンツを観るに際し前記ソーシャルネットワーキングシステム上に新たなストーリを自動的に投稿するステップであって、各新たなストーリは、前記特定のコンテンツが前記ユーザによって観られていることを示す標識を含み、前記新たなストーリは、前記ユーザが所定の時間より長く前記新たなコンテンツを継続的に観た場合に限り、自動的に前記ソーシャルネットワーキングシステム上に投稿される、ステップとを行わせる、システム。
【請求項１６】
前記ビデオコンテンツプロバイダは、マルチサービスオペレータ（ＭＳＯ）を含み、前記ビデオコンテンツは、ケーブル番組を含み、
前記ストーリは、特定のビデオコンテンツを観ていることに対応するアクションを含み、
ストーリを送信することは、前記１以上のストーリを、電子番組案内（ＥＰＧ）の中で前記ストーリが提示されるように前記ソーシャルネットワーキングシステムのユーザに関連付けられたセットトップボックスに送信するステップを含む、請求項１５に記載のシステム。
【請求項１７】
前記ストーリは、
特定のコンテンツオブジェクトに対して「いいね！」と表明している前記ユーザのつながり、
特定のコンテンツオブジェクトを観ている前記ユーザのつながり、および、
将来的に閲覧するために特定のコンテンツオブジェクトをキューに入れる前記ユーザのつながり、のうちの１以上を含む、請求項１５に記載のシステム。
【請求項１８】
前記クエリは、１以上のコンテンツ識別子を含む、システムであって、
前記ロジックは、実行されたとき、
コンテンツオブジェクトデータベースにアクセスするステップと、
前記コンテンツ識別子のうちの１以上の識別子のそれぞれと前記コンテンツオブジェクトデータベースの中のコンテンツオブジェクトとのマッチングを行うステップと、をさらに行わせる、請求項１５に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般にソーシャルネットワーキングに関する。
【背景技術】
【０００２】
コンピュータユーザは、独自のネットワーク、ならびにインターネットなどの公共ネットワークを含む、様々なローカルエリアコンピュータネットワークおよびワイドエリアコンピュータネットワークを介して情報にアクセスし、情報を共有することができる。通常、ユーザのコンピューティングデバイスにインストールされたウェブブラウザが、例えば、関連するユニフォームリソースロケータ（ＵＲＬ）によって識別される様々なネットワークサーバに配置された情報に対するアクセス、およびそのような情報との対話を円滑にする。ソーシャルネットワーキングのウェブサイトは、ユーザによって生成されたコンテンツの共有を円滑にすることが可能である。そのようなウェブサイトは、ユーザが、他のユーザによって作成された、またはカスタマイズされた「プロフィール」ページを閲覧する、またはそのようなページと対話することを可能にするアプリケーションのためのプラットフォームを含む、そのようなプラットフォームにリンクされる、またはそのようなプラットフォームを提供することが可能である。規則のセットで、他のユーザのプロフィールページを閲覧する、またはそのようなページと対話するユーザの能力を左右することが可能であり、ユーザのプロフィールページは、連絡先情報、背景情報、求人情報もしくはキャリア情報、および関心などのユーザによって宣言された情報を含み得る。
【０００３】
ソーシャルネットワークは、特定の１以上のタイプの相互依存関係によって互いに結び付けられた（つながれた）ノードによって表される個人、グループ、エンティティ、または組織からなる社会構造体であり得る。ソーシャルネットワーク（グラフ）分析が、ソーシャル（ネットワークにおける）関係を、ネットワーク理論の点で、ノードおよびエッジと見なすことが可能である。ノードは、ソーシャルネットワーク内の個々のアクションを行う者を表すことが可能であり、エッジは、個々のアクションを行う者の間の関係を表すことが可能である。その結果生じるグラフベースの構造は、非常に複雑である。ノードの間に多くの種類のエッジが存在し得る。ソーシャルネットワーク（またはソーシャルグラフ）は、調査対象であるすべてのノード間の関係があるすべてのエッジの地図（マップ）であり得る。
【図面の簡単な説明】
【０００４】
【図１】例示的なソーシャルネットワーキングシステムを示す図。
【図２】例示的なソーシャルネットワーク環境の例示的なコンピュータネットワーク環境を示す図。
【図３】ソーシャルネットワーキングを介してテレビ番組およびビデオ番組を共有することに関する例示的なプロセスサイクルを示す図。
【図４】複数のサービスからのコンテンツを単一のコンテンツ識別子に割り当てるための例示的な方法を示す図。
【図５】複数の外部サービスに対するコンテンツオブジェクトに関するストーリの例示的な共有を示す図。
【図６Ａ】ソーシャルデータを組み込んだ電子番組案内の例を示す図。
【図６Ｂ】ソーシャルデータを組み込んだ電子番組案内の別の例を示す図。
【図７】外部システムによってより容易に解釈され得るフォーマットでソーシャルデータおよびコンテンツ識別子を送信するための例示的な方法を示す図。
【図８Ａ】組み込まれたソーシャルデータを含めたコンテンツを表示するコンテンツブラウザの例を示す図。
【図８Ｂ】組み込まれたソーシャルデータを含めたコンテンツを表示するビデオ再生デバイスの例を示す図。
【図９Ａ】実質的にリアルタイムのソーシャルデータを表示するビデオ再生デバイスの例を示す図。
【図９Ｂ】ソーシャルネットワーキングシステムの他のメンバと一緒に実質的にリアルタイムでコンテンツ組み込みを表示するビデオ再生デバイスの例を示す図。
【図１０】例示的なネットワーク環境を示す図。
【図１１】例示的なコンピューティングシステムを示す図。
【発明を実施するための形態】
【０００５】
特定の実施形態では、ソーシャルネットワーキングシステムのユーザの間で消費されるコンテンツを能動的および受動的に共有するために、ケーブルプロバイダおよびオンラインビデオサービスなどのサードパーティコンテンツ配信サービスをソーシャルネットワーキングシステムと統合する。そのような統合は、ソーシャルネットワーキングシステムのユーザが、そのユーザの友達および一次つながりによって観られた、「いいね！ボタンを押された」、または観られるようにスケジュールされたコンテンツを発見できるようにすることが可能である。同様に、ユーザは、コンテンツに対して「いいね！ボタンを押す」ように、もしくはコンテンツを「共有する」ようにユーザインタフェース要素を能動的に選択することによって、ユーザの友達および一次つながりに対してコンテンツを明示的に共有すること、または「共有」モードを有効にすることによって、現在、閲覧されているコンテンツを実質的にリアルタイムで受動的に共有することができる。
【０００６】
特定の実施形態において、ユーザは、ソーシャルネットワーキングシステムと統合された任意のデバイスまたはサービスからのコンテンツを発見する、または共有することができる。例えば、特定のユーザが、ソーシャルネットワーキングシステムに記憶され、ソーシャルネットワーキングシステムによってレンダリングされるそのユーザの友達のプロフィールページをブラウズすることによってだけでなく、ネットフリックス（ＮｅｔＦｌｉｘ）社またはフール（ＨｕＬｕ）社などのオーバーザトップ（ＯＴＴ：ｏｖｅｒ  ｔｈｅ
ｔｏｐ）コンテンツプロバイダのサードパーティウェブページにアクセスすることによっても、コンテンツを発見することができる。特定の実施形態において、ユーザは、マルチプルシステムオペレータ（ＭＳＯ：ｍｕｌｔｉｐｌｅ  ｓｙｓｔｅｍ  ｏｐｅｒａｔｏｒ）または他のケーブルプロバイダを介してユーザのテレビ経由でコンテンツを発見する、または共有することができる。特定の実施形態において、ユーザのセットトップボックス（ＳＴＢ：ｓｅｔ−ｔｏｐ  ｂｏｘ）によってＭＳＯから受信されて、ユーザのテレビ上で表示される電子番組案内を介して、ソーシャルデータをユーザに提示することが可能である。特定の実施形態において、ソーシャルネットワーキングシステムのユーザは、スマートフォンまたはタブレットなどのモバイルコンピューティングデバイス上でサードパーティサービスに関する専用のアプリケーションを介してコンテンツを発見する、または共有することができる。例えば、ユーザは、ユーザのスマートフォン上に常駐するネットフリックス（ＮｅｔＦｌｉｘ）アプリケーションを介して、ユーザの友達の好みの映画をブラウズする、またはユーザ自身の好みの映画を共有することができる。別の例として、ユーザが、ＡＴ＆Ｔ  Ｕバース（ＡＴ＆Ｔ  Ｕ−Ｖｅｒｓｅ）ケーブルサービスによって提供されるユーザのデジタルビデオレコーダ（ＤＶＲ）を管理するためのモバイルアプリケーションなどの、ＭＳＯまたはケーブルプロバイダにもリンクされたスマートフォンアプリケーションを介して、コンテンツを発見する、または共有することが可能である。
【０００７】
特定の実施形態では、様々なフォーマットの複数のサービスからの複数のコンテンツ記述子を単一のコンテンツ識別子に割り当てることが可能である。例えば、４人のユーザが、フール社（Ｈｕｌｕ）、ネットフリックス社（ＮｅｔＦｌｉｘ）、コムキャスト（Ｃｏ
ｍｃａｓｔ）ケーブル、およびディッシュネットワーク（Ｄｉｓｈ  Ｎｅｔｗｏｒｋ）衛星ＴＶから「ザオフィス（Ｔｈｅ  Ｏｆｆｉｃｅ）」というショーを観ていることを共有することが可能である。コンテンツを識別するためのそれぞれの個々のサービスプロバイダのフォーマットは、異なるフォーマットであることが可能であり、様々なテキストまたはメタデータを含むことが可能である。これらの異種のコンテンツ記述子が単一のコンテンツ識別子に一元化されて集約されることがない限り、異種のサービスのユーザからの共有は、無意味であり、使用不能である。このため、特定の実施形態では、様々なフォーマットのコンテンツ識別子と、ソーシャルグラフ内の単一のノードとのマッチングを行うためのシステムが提供される。
【０００８】
図１は、ソーシャルネットワーキングシステム１００の一実施形態のネットワーク図である。このネットワーク環境は、１以上のユーザデバイス１２３と、ネットワーク１２１を介する１以上の外部システム１２２とを含む。ウェブサーバ１０１が、ウェブページ、ならびにＪＡＶＡ（登録商標）、Ｆｌａｓｈ、ＸＭＬなどの他のウェブ関連のコンテンツを提供する。ウェブサーバ１０１は、ソーシャルネットワーキングシステム１００と１以上のユーザデバイス１２３との間でメッセージを受信するため、およびルーティングするためのメールサーバまたは他のメッセージング機能を含み得る。それらのメッセージは、インスタントメッセージ、キューに入れられたメッセージ（例えば、電子メール）、テキストメッセージおよびＳＭＳメッセージ、または他の任意の適切なメッセージングフォーマットであり得る。
【０００９】
アプリケーションプログラミングインタフェース（ＡＰＩ）要求サーバ１０６は、１以上の外部システム１２２、およびユーザデバイス１２３が、１以上のＡＰＩを呼び出すことによってソーシャルネットワーキングシステム１００からの情報にアクセスすることを可能にする。また、ＡＰＩ要求サーバ１０６は、外部システム１２２が、ＡＰＩを呼び出すことによってソーシャルネットワーキングウェブサイトに情報を送信することを可能にすることもできる。外部システム１２２が、一実施形態において、ネットワーク１２１を介してソーシャルネットワーキングシステム１００にＡＰＩ要求を送信し、ＡＰＩ要求サーバ１０６が、そのＡＰＩ要求を受信する。ＡＰＩ要求サーバ１０６が、そのＡＰＩ要求に関連付けられたＡＰＩを呼び出すことによってその要求を処理して、適切な応答を生成し、この応答を、ＡＰＩ要求サーバ１０６が、ネットワーク１２１を介して外部システム１２２に通信する。例えば、ＡＰＩ要求に応答して、ＡＰＩ要求サーバ１０６が、外部システム１２２にログインしているユーザのつながりなどの、ユーザに関連付けられたデータを収集し、その収集されたデータを外部システム１２２に通信する。別の実施形態において、ユーザデバイス１１０が、外部システム１２２と同様にＡＰＩを介してソーシャルネットワーキングシステム１００と通信する。
【００１０】
アクションロガー１０２は、ウェブサーバ１０１から、ソーシャルネットワーキングシステム１００上のユーザアクション、および／またはソーシャルネットワーキングシステム１００を離れてのユーザアクションについての通信を受信することができる。アクションロガー１０２は、ユーザアクションについての情報をアクションログ１０７に収めて、ソーシャルネットワーキングシステム１００が、ソーシャルネットワーキングシステム１００内、およびソーシャルネットワーキングシステム１００外でユーザによって行われる様々なアクションを発見することを可能にする。ソーシャルネットワーキングシステム１００上の別のノードに関して特定のユーザが行ういずれのアクションも、アクションログ１０７の中に、または類似したデータベースもしくは他のデータリポジトリの中に維持される情報を介して、各ユーザのプロフィールに関連付けられる。識別されて、記憶されるソーシャルネットワーク１３０内のユーザによって行われるアクションの例には、例えば、別のユーザに対するつながりを追加すること、別のユーザにメッセージを送信すること、別のユーザからのメッセージを読み取ること、別のユーザに関連付けられたコンテンツ
を閲覧すること、別のユーザによって投稿されたイベントに出席すること、または別のユーザと対話する他のアクションが含まれ得る。ユーザが、ソーシャルネットワーキングシステム１００内でアクションを行うと、そのアクションが、アクションログ１０７の中に記録される。一実施形態において、ソーシャルネットワーキングシステムは、アクションログ１０７をエントリのデータベースとして維持する。ソーシャルネットワーキングシステム１００内でアクションが行われると、そのアクションに関するエントリが、アクションログ１０７に追加される。一実施形態において、アクションログ１０７は、アクションログと呼ばれ得る。
【００１１】
さらに、ユーザアクションは、ソーシャルネットワーキングシステム１００とは別個である外部システム１２２などの、ソーシャルネットワーキングシステム１００の外部のエンティティ内で生じる概念およびアクションに関連付けられてもよい。例えば、アクションロガー１０２は、ウェブサーバ１０１から、外部システム１２２とのユーザの対話を記述するデータを受信することが可能である。この例において、外部システム１２２は、ソーシャルグラフにおける構造化されたアクションおよびオブジェクトに応じてユーザの対話を報告する。受信される対話は、一実施形態において、グラフ定義モジュール１０３によって定義されたグラフオブジェクトおよびグラフアクションを含み得る。アクションロガー１０２は、受信された対話を、そのグラフアクションおよびグラフオブジェクトの定義に応じて解釈する。例えば、アクションロガー１０２は、ユーザの一意識別子、「観る」と呼ばれるグラフアクション、および「ショー」と呼ばれるグラフオブジェクトを含む対話を受信することが可能である。アクションログ１０７に、この受信された情報を収める。ユーザが外部システム１２２と対話するアクションの他の例には、ユーザが、外部システム１２２もしくは別のエンティティに対する関心を表明すること、ユーザが、外部システム１２２、もしくは外部システム１２２内のウェブページ１２２ａについて述べるコメントをソーシャルネットワーキングシステム１００に投稿すること、ユーザが、外部システム１２２に関連付けられたユニフォームリソースロケータ（ＵＲＬ）もしくは他の識別子をソーシャルネットワーキングシステム１００に投稿すること、ユーザが、外部システム１２２に関連付けられたイベントに出席すること、または外部システム１２２と関係するユーザによる他の任意のアクションが含まれる。このため、アクションログ１０７は、ソーシャルネットワーキングシステム１００のユーザと、ソーシャルネットワーキングシステム１００とは別個である外部システム１２２との間の対話を記述するアクションを含み得る。
【００１２】
認可サーバ１１７は、ソーシャルネットワーキングシステム１００のユーザの１以上のプライバシ設定を確実にする。ユーザのプライバシ設定は、ユーザに関連付けられた特定の情報がどのように共有され得るかを決定する。プライバシ設定は、ユーザに関連付けられた特定の情報の指定、およびその情報が共有され得る相手のエンティティまたは複数のエンティティの指定からなる。情報が共有され得る相手のエンティティの例には、その情報にアクセス可能な他のユーザ、アプリケーション、外部システム１２２、または任意のエンティティが含まれ得る。ユーザによって共有され得る情報は、プロフィール写真などのプロフィール情報、ユーザに関連付けられた電話番号、ユーザのつながり、つながりを追加すること、プロフィール情報を変更することなどの、ユーザによって行われるアクションからなる。
【００１３】
プライバシ設定指定は、様々なレベルの粒度において提供され得る。例えば、プライバシ設定は、他のユーザと共有されるべき特定の情報を識別することが可能である。例えば、プライバシ設定は、職場電話番号、またはプロフィール写真、自宅電話番号、およびステータスを含む個人情報などの関連付けられた情報の特定のセットを識別する。代替として、プライバシ設定は、ユーザに関連付けられたすべての情報に適用されてもよい。また、特定の情報にアクセスすることができるエンティティのセットの指定も、様々なレベル
の粒度において指定され得る。情報が共有され得る相手のエンティティの様々なセットには、例えば、ユーザのすべての友達、友達のすべての友達、すべてのアプリケーション、またはすべての外部システム１２２が含まれ得る。一実施形態は、セットのエンティティの指定が、エンティティの列挙からなることを可能にし、例えば、ユーザが、特定の情報にアクセスすることを許される外部システム１２２のリストを提供することが可能である。別の実施形態は、その指定が、セットのエンティティ、ならびにその情報にアクセスすることを許されない例外からなることを可能にする。例えば、ユーザは、すべての外部システム１２２が、ユーザの仕事情報にアクセスすることを許すが、その仕事情報にアクセスすることを許されない外部システム１２２のリストを指定することが可能である。いくつかの実施形態は、特定の情報にアクセスすることを許されない例外のリストを阻止リストと呼ぶ。ユーザによって指定された阻止リストに属する外部システム１２２は、プライバシ設定において指定された情報にアクセスすることを阻止される。情報の指定の粒度と、情報が共有される相手のエンティティの指定の粒度の様々な組み合わせが可能であること、すなわち、すべての個人情報が友達と共有され得る一方で、すべての仕事情報が、友達の友達と共有され得ることに留意されたい。
【００１４】
認可サーバ１１７は、ユーザに関連付けられた特定の情報が、ユーザの友達、外部システム１２２、ならびに／または他のアプリケーションおよびエンティティによってアクセスされ得るか否かを判定するロジックを含む。外部システム１２２に関連付けられたＵＲＬについてのユーザのコメントにアクセスしようと試みる外部システム１２２は、ユーザの職場電話番号などの、ユーザのよりプライベートで、慎重な扱いを要する情報にアクセスする認可を認可サーバ１１７から必要とすることも可能である。ユーザのプライバシ設定に基づいて、認可サーバ１１７は、別のユーザ、外部システム１２２、アプリケーション、または別のエンティティが、ユーザによって行われたアクションについての情報を含む、ユーザに関連付けられた情報にアクセスすることを許されるか否かを判定する。一実施形態において、認可サーバ１１７は、ユーザプライバシ設定を使用して、外部システム１２２に関連付けられたＵＲＬについてのユーザのコメントが外部システム１２２によってアクセスされ得るか否かを判定する。ユーザのプライバシ設定は、他のいずれのユーザ、または他のいずれのエンティティが、ユーザのアクションについてのデータ、またはユーザに関連付けられた他の情報を受信することを許されるかを指定することが可能である。
【００１５】
さらに、ソーシャルネットワーキングシステム１００は、ユーザが対話することが可能なオブジェクトについてのデータを維持する。このデータを維持するのに、ユーザプロフィールストア１１０およびつながりストア１１１が、ソーシャルネットワーキングシステム１００によって維持される対応するタイプのオブジェクトのインスタンスを記憶する。各オブジェクトタイプは、そのタイプのオブジェクトに適切な情報を記憶するのに適した情報フィールドを有する。例えば、ユーザプロフィールストア１１０は、ユーザのプロフィールを記述するのに適したフィールドを有するデータ構造を包含する。特定のタイプの新たなオブジェクトが作成されると、ソーシャルネットワーキングシステム１００は、対応するタイプの新たなデータ構造を初期設定し、そのデータ構造に一意オブジェクト識別子を割り当て、さらに必要に応じてそのオブジェクトにデータを追加することを始める。このことが行われ得るのは、例えば、ユーザが、ソーシャルネットワーキングシステム１００のユーザとなり、ソーシャルネットワーキングシステム１００が、ユーザプロフィールストア１１０の中でユーザプロフィールの新たなインスタンスを生成し、そのユーザプロフィールに一意識別子を割り当て、さらにそのユーザプロフィールのフィールドにユーザによって供給される情報を収めることを開始するときである。
【００１６】
つながりストア１１１は、他のユーザに対するユーザのつながり、外部システム１２２に対するつながり、または他のエンティティに対するつながりを記述するのに適したデー
タ構造を含む。また、つながりストア１１１は、ユーザについての情報に対するアクセスを制約するようにユーザのプライバシ設定と連携して使用され得るつながりタイプをユーザのつながりに関連付けることも可能である。
【００１７】
つながりストア１１１、ユーザプロフィールストア１１０、およびアクションログ１０７の中に記憶されたデータは、ソーシャルネットワーキングシステム１２０が、ノードを使用して様々なオブジェクトを識別し、さらにノードをつなぐエッジを使用して異なるオブジェクトの間の関係を識別するソーシャルグラフを生成することを可能にする。ソーシャルグラフにおける２つのノード間のエッジは、それらのノードのうちの一方によって他方のノードに対してアクションが実行された結果生じ、その２つのノード間の特定の種類のつながりを表す。
【００１８】
例えば、第１のユーザが、ソーシャルネットワーキングシステムにおける第２のユーザとのつながりを確立した場合、ユーザプロフィールストア１１０からの第１のユーザのユーザプロフィールおよび第２のユーザのユーザプロフィールが、ソーシャルグラフにおけるノードの役割を担うことが可能である。つながりストア１１１によって記憶された第１のユーザと第２のユーザの間のつながりは、第１のユーザに関連付けられたノードと第２のユーザに関連付けられたノードの間のエッジである。この例を続けると、次に、第２のユーザが、ソーシャルネットワーキングシステム１００内で第１のユーザにメッセージを送信することが可能であり、この送信することが、アクションロガー１０２によって識別され、さらにアクションログ１０７の中に記憶される。メッセージを送信するというこの記憶されたアクションが、第１のユーザおよび第２のユーザを表すソーシャルグラフにおける２つのノード間の別のエッジである。さらに、このメッセージ自体、アクションログ１０７から識別されることが可能であり、さらに第１のユーザおよび第２のユーザを表すノードにつながれた別のノードとしてソーシャルグラフに含められることが可能である。
【００１９】
別の例において、第１のユーザが、ソーシャルネットワーキングシステム１００によって維持される画像の中で（または、代替として、ソーシャルネットワーキングシステム１００の外部の別のシステムによって維持される画像の中で）第２のユーザにタグを付けることが可能である。この画像は、それ自体、ソーシャルネットワーキングシステム１００におけるノードとして表され得る。このタグを付けるアクションは、第１のユーザと第２のユーザの間でエッジを作成することが可能であるとともに、ユーザのそれぞれと、画像との間でエッジを作成することが可能であり、このエッジも、ソーシャルグラフにおけるノードである。さらに別の例において、ユーザが、イベントに出席することを確認した場合、そのユーザおよびそのイベントは、ユーザプロフィールストア１１０から得られるノードであり、ここで、そのイベントへの出席は、アクションログ１０７から取り出され得るノード間のエッジである。ソーシャルグラフを生成し、維持することによって、ソーシャルネットワーキングシステム１００は、異なる多くのタイプのオブジェクト、ならびにそれらのオブジェクトの間の対話およびつながりを記述するデータを含み、社内的（ソーシャル）に関連した豊富な情報源を提供することになる。
【００２０】
ノードと、エッジとを含むソーシャルグラフのこの理解を基礎として、ソーシャルグラフは、サードパーティ開発者および外部システム１２２が、ソーシャルグラフに公開されるべきオブジェクトおよびアクションを定義することを可能にすることによって、「開かれる」ことが可能である。前述したように、グラフ定義モジュール１０３が、グラフアクションタイプストア１１２およびグラフオブジェクトタイプストア１１４にリンクされ得る。グラフ定義モジュール１０３は、現実世界の対話に倣ったアクションおよびオブジェクトの作成を可能にする。「観られる」などのアクションは、そのアクションが行われる場所、そのアクションに参加するユーザまたは複数のユーザ、およびユーザがどれだけの時間、そのアクションを実行したかを記録する所要時間フィールドなどの、様々なプロパ
ティを含み得る。その結果生じるグラフアクションタイプは、一実施形態において、グラフアクションタイプストア１１２の中に記憶され得る。「映画」、「ＴＶショー」、「ジャンル」、および「局」などのオブジェクトが、視覚オブジェクトタイプ、聴覚オブジェクトタイプ、音楽オブジェクトタイプ、パフォーマンスアートオブジェクトタイプなどの、オブジェクトプロパティを有するようにグラフオブジェクトタイプストア１１４を使用して定義され得る。これらのグラフオブジェクトタイプは、グラフオブジェクトタイプストア１１４の中に記憶される。
【００２１】
一実施形態において、グラフ定義モジュール１０３は、いくつかのオブジェクトに対して実行されるべきいくつかのアクションを定義する。例えば、ソーシャルネットワーキングシステム１００の管理者は、「観る」アクションが、「映画」オブジェクト、「ショー」オブジェクト、「ジャンル」オブジェクト、および「局」オブジェクトなどの視覚オブジェクトタイプに対してだけ実行されるべきことを定義することが可能である。このため、ユーザが「聞く」というアクションを実行することができる「スピーチ」オブジェクトを定義することを所望するサードパーティ開発者が、サードパーティ開発者の「スピーチ」オブジェクトを聴覚オブジェクトタイプとして定義して、「聞く」アクションがそのオブジェクトに対して実行され得るようにすることが可能である。
【００２２】
別の実施形態において、グラフ定義モジュール１０３が、任意のオブジェクトに対してアクションが実行されることを可能にして、ウィジェットによって解釈されるマークアップ言語文書１１４上のアクションおよびオブジェクトを利用するサードパーティ開発者にセマンティクスを任せる。このため、この実施形態において、サードパーティ開発者は、ソーシャルネットワーキングシステム１００のユーザとＶｏＩＰアプリケーションのユーザとの間のＶｏＩＰアプリケーション電話通話における「ユーザ」オブジェクトに対して「聞く」アクションを利用することができる。ＶｏＩＰアプリケーションのユーザがソーシャルネットワーキングシステム１００のユーザではない場合、外部システム１２２から受信された情報だけが、ソーシャルネットワーキングシステム１００におけるニュースフィードまたはストリームにおいて公開されるようにアクションログ１０７において使用されることが可能である。このため、外部ユーザ対話をキャプチャして、外部ユーザ対話をソーシャルネットワーキングシステム１００に組み込むために文脈自由（コンテキストフリー）文法が利用され得る。
【００２３】
グラフパブリッシャＡＰＩ１０８は、一実施形態において、受け取られたアクションおよびオブジェクトを、ソーシャルネットワーキングシステム１００におけるニュースフィードストーリ、またはコンテンツアイテムのストリームの中の他のコンテンツアイテムになるように組み立てる。別の実施形態において、グラフパブリッシャＡＰＩ１０８は、外部システム１２２からのＡＰＩ呼び出しに応答して、外部システム１２２上のユーザ対話を取り出す。グラフパブリッシャＡＰＩ１０８は、アクションおよびオブジェクトの定義を利用して、データをソーシャルネットワーキングシステム１００のソーシャルグラフにどのように公開すべきかを決定する。一実施形態において、マークアップ言語文書１１４は、外部システム１２２上で行われたすべてのアクションを、ストリームにおけるニュースフィードストーリまたはコンテンツアイテムとして公開させるソーシャルネットワーキングシステム１００に対する命令を含む。別の実施形態において、マークアップ言語文書１１４は、外部システム１２２上で行われたアクションをバッチで、または集約して公開させるソーシャルネットワーキングシステム１００に対する命令を含む。ソーシャルネットワーキングシステム１００は、外部システム１２２に事前の認可が与えられているために、これらのコンテンツアイテムを、ソーシャルネットワーキングシステム１００上のユーザのストリームに受動的に公開してもよいことに留意されたい。コンテンツアイテムをストリームに投稿するためのそのような認可が、ユーザによって与えられていない場合、認可を求めるダイアログボックスがユーザを促す。
【００２４】
グラフ変換モジュール１０５は、ソーシャルネットワーキングシステム１００が、トレーニング中に走ったキロメートル（マイル）数、または今週までに最も聴かれたアーティストを示すアプリケーションなどの、外部システム１２２上で生成された構造化されたオブジェクトおよびアクションに基づいて、文を動的に形成することを可能にする。これらのオブジェクト、例えば、アーティストオブジェクトおよびトレーニングオブジェクトについてのメタデータが、一実施形態において、グラフコンテンツアイテムランキングモジュール１０４によって、これらの外部ユーザ対話から生成されたコンテンツアイテムのランキングを行うのに利用されることが可能である。これらのオブジェクトについてのメタデータは、ニュースフィードストリームに公開されること、ユーザのプロフィールに追加されること、またはソーシャルネットワーキングシステム１００とのインタフェースとなる外部システム１２２上のプラグイン（例えば、ｉｆｒａｍｅ）を介して表示されることが可能である。ソーシャルネットワーキングシステム１００の別々のモジュールが、アプリケーションおよび／または外部システム１２２に関する評判スコアを算出して、スパム、または不要なアプリケーションを識別することが可能である。スパムである蓋然性を示すアプリケーションの評判スコアが、グラフコンテンツアイテムランキングモジュール１０４によって、アプリケーションによって生成されたコンテンツアイテムに関するランキングスコアを算出する際に利用される。評判スコアは、ヒューリスティクス分析から集められたそのアプリケーションの挙動、そのアプリケーションがスパムである、煩わしい、または不快であるというユーザからのレポート、およびそのアプリケーションがスパムであることを示す要注意リストを含め、いくつかの要因から算出され得る。
【００２５】
グラフコンテンツアイテムランキングスコアに適用され得る別の全般的な要因は、そのコンテンツアイテムを生成するアプリケーションの全体的な品質である。アプリケーションの品質は、別々のモジュールを介して判定されることが可能であり、アプリケーションの品質を判断する際に考慮される要因には、そのアプリケーションに対するユーザ関与、ソーシャルネットワーキングシステム１００のすべてのユーザの間でのそのアプリケーションの人気度、ソーシャルネットワーキングシステム１００によって観察されるアプリケーションの挙動の整合性、そのアプリケーションの作成者の評判、ソーシャルネットワーキングシステム１００のユーザおよび管理者によるそのアプリケーションの平均評価が含まれ得る。一実施形態において、アプリケーションの全体的な品質は、アプリケーション品質スコアとして表されることが可能であり、さらにアプリケーション品質スコアは、閲覧するユーザに表示するためにコンテンツアイテムのランキングを行う際の要因とされる。
【００２６】
また、ユーザ特有の要因は、グラフコンテンツアイテムのランキングに適用されることも可能である。これらのユーザ特有の要因には、閲覧するユーザにつながった他のユーザに対する重み、および閲覧するユーザによって選好されるアプリケーションおよび関心に対する重みが含まれる。例えば、閲覧するユーザは、ソーシャルネットワーキングシステム１３０上の他のユーザに対して１０００を超えるつながりを有することが可能であるが、ユーザのサブセットによって生成されるコンテンツアイテムの範囲内で実現されるリンクを共有すること、そのようなリンクにコメントすること、そのようなリンクに賛同を表明すること、およびそのようなリンクを選択することを介して、日常的にそれらのユーザのうちの２０人だけとしか対話しないことが可能である。このため、そのサブセットの中のユーザからのコンテンツアイテムが、グラフコンテンツアイテムランキングモジュール１０４によって、より高くランキングされることが可能である。さらに、観察されるクリックスルー率、ユーザが、そのコンテンツアイテムを生成するアプリケーションをインストールしたか否か、そのアプリケーションと対話して以来、経過した時間、およびそのアプリケーションとの対話の回数から判定された、閲覧するユーザによって選好されるアプリケーションによって生成されたコンテンツアイテムが、グラフコンテンツアイテムラン
キングモジュール１０４によって、より高くランキングされることも可能である。アプリケーション、関心、およびその他の概念に関する閲覧するユーザの選好は、ユーザプロフィールストア１１０の中のその閲覧するユーザに関連付けられたユーザプロフィールオブジェクトの中に親和性スコアとして記憶されることが可能である。
【００２７】
例として、閲覧するユーザが、そのユーザに関連付けられたユーザプロフィールオブジェクトの中のレディガガに関する親和性スコアによって示されるように、レディガガに非常に関心がある場合がある。親和性スコアは、ユーザのプロフィールページ上のユーザによって明記された関心、またはソーシャルネットワーキングシステム１００上、および外部システム１２２上のユーザのアクション、およびユーザのつながりによって暗示される関心に基づいて、ソーシャルネットワーキングシステム１００の様々な関心、ノード、およびユーザに関して別々のモジュールによって計算され得る。一実施形態において、レディガガに関するアーティストオブジェクトが、閲覧するユーザのユーザプロフィールオブジェクトに高い親和性スコアで関連付けられる。レディガガに関連付けられたコンテンツアイテムは、外部システム１２２上に生成される。
【００２８】
グラフコンテンツアイテムランキングモジュール１０４が、他のオブジェクトとの過去の対話、閲覧するユーザの表明された関心、および閲覧するユーザにつながった他のユーザによる他のオブジェクトとの過去の対話に基づいて、閲覧するユーザの関心対象であり得るオブジェクトを強調表示する推奨エンジンを含むことが可能である。オブジェクト−オブジェクト間の類似性分析が、推奨エンジンによって非同期で判定されることが可能である。さらに、一実施形態において、推奨エンジンが、いずれのオブジェクトタイプがユーザに表示されたかのログ記録をとることが可能であり、さらに、ユーザに提示されるオブジェクトタイプを多様化しようとして、最近表示されていないオブジェクトタイプを推奨することも可能である。推奨は、ランキングスコアを指数的に、直線的に、または対数的に増加させることなどによって、グラフコンテンツアイテムランキングモジュール１０４によって生成されるランキングスコアに様々な強度で影響を与えることが可能である。一実施形態において、オブジェクト所有者、ブランド所有者、または他のサードパーティが、ソーシャルネットワーキングシステムのユーザインタフェースを介してランキングスコアの上昇を購入することが可能である。例えば、ソーシャルネットワーキングシステムのユーザによって実行されたグラフアクションインスタンスとしてソーシャルネットワーキングシステムに通信された電子小売店上の書籍の購入は、その書籍の発行元が、ソーシャルネットワーキングシステムの閲覧するユーザに対する推奨内でその書籍のプレミアム配置を購入した場合、そのユーザにつながった閲覧するユーザに対する推奨のランキングを上昇させることが可能である。
【００２９】
グラフデータは、グラフデータストア１１３の中に記憶され、インデックスを付けられることが可能である。グラフデータストア１１３は、外部システム１２２から受信されたグラフデータを記述するのに適したデータ構造を含む。一実施形態において、ユーザが、グラフデータを含むストーリを他のユーザと共有すること、ユーザが、ソーシャルネットワーキングシステム１００上のストーリのユーザのニュースフィードストリーム内で共有された曲を再生すること、ユーザが、ソーシャルネットワーキングシステム１００上のアプリケーション内から製品を購入すること、およびユーザが、ソーシャルネットワーキングシステム１００の他のユーザからのメッセージの中で共有された再生リストからのビデオを観ることなどのグラフデータが、ソーシャルネットワーキングシステム１００内から受信されることが可能である。グラフデータは、カスタムグラフアクション、アクションを行う者（カスタムグラフアクションを実行するユーザ）、カスタムグラフオブジェクト、ならびにソーシャルネットワーキングシステム１００の外部のエンティティによって定義されているカスタムグラフアクションおよびカスタムグラフオブジェクトのプロパティを含み得る。
【００３０】
グラフデータが受信されると、ソーシャルネットワーキングシステム１００は、グラフデータストア１１３の中でそのグラフデータを検索することが可能であり、さらに、必要に応じて、オブジェクトにデータを追加することが可能である。このことは、例えば、外部システム１２２上で以前に観た番組またはショーをユーザが観ると、行われることが可能である。この事例において、そのショーオブジェクトに対応するグラフデータは、その新たな観るアクションを反映するように変更されることが可能である。グラフ統合モジュール１１６は、グラフデータストア１１３と対話して、その新たな観るアクションを反映するユーザインタフェースを、ソーシャルネットワーキングシステム１００上のユーザのユーザプロフィールページ上で提供することが可能である。グラフデータは、スポティファイ（Ｓｐｏｔｉｆｙ）、ｉＴｕｎｅｓ、ロヴィ（Ｒｏｖｉ）、ＭＳＯからの独自のＥＰＧデータ、およびＲＤＩＯなどの、複数のドメインからの類似したオブジェクトについて収集され得るため、仮想オブジェクトが、ソーシャルネットワーキングシステム１００によって作成され、グラフデータストア１１３の中に記憶されることが可能である。観るアクションインスタンスは、ショーのタイトル、俳優、製作者、および所要時間によりソーシャルネットワーキングシステム１００によって識別される、同一のＴＶショーに対して実行された複数のドメインから受信されるので、グラフデータストア１１３にアクセスが行われて、それらの観るアクションインスタンスに関連付けられたショーオブジェクトを表す仮想オブジェクトが識別される。次に、それらの観るアクションインスタンスは、ソーシャルネットワーキングシステム１００による判定により、類似するショーオブジェクトを表す、ソーシャルネットワーキングシステム１００によって作成された仮想オブジェクトに関連付けられる。このようにして、ソーシャルネットワーキングシステム１００は、そのショーがｉＴｕｎｅｓ上で観られたのか、ネットフリックス（Ｎｅｔｆｌｉｘ）上で観られたのか、フール（Ｈｕｌｕ）上で観られたのか、グーグル（Ｇｏｏｇｌｅ）ＴＶ上で観られたのか、コムキャスト（Ｃｏｍｃａｓｔ）上で観られたのか、ＡＴ＆Ｔ  Ｕバース（ＡＴ＆Ｔ  Ｕ−Ｖｅｒｓｅ）上で観られたのか、ディッシュネットワーク（Ｄｉｓｈ  Ｎｅｔｗｏｒｋ）上で観られたのか、タイムワーナケーブル（Ｔｉｍｅ  Ｗａｒｎｅｒ  Ｃａｂｌｅ）上で観られたのか、または他の任意のビデオコンテンツプロバイダ上で観られたのかにかかわらず、「ザオフィス（Ｔｈｅ  Ｏｆｆｉｃｅ）」などの特定のショーに関する観るアクションおよび仮想オブジェクトを含むニュースフィードストーリを報告することが可能である。一実施形態において、ニュースフィードストーリは、ショーが観られたドメイン、またはビデオサービスを含むことが可能であるが、ユーザが、ソーシャルネットワーキングシステムのそのニュースフィードストーリ内から異なるドメイン上、または異なるコンテンツ配信サービスにおいてそのショーにアクセスすることを可能にし得る。別の実施形態において、ユーザは、カスタムグラフアクションインスタンスに、そのグラフアクションがどこで実行されたかを示す地理的位置を追加することが可能である。仮想オブジェクトは、ニュースストーリ、商品、ビデオ、コンサート、舞台ショー、曲などの、他のタイプのカスタムグラフオブジェクトに関してソーシャルネットワーキングシステム１００によって生成されてもよい。
【００３１】
グラフ統合モジュール１１６は、グラフオブジェクトタイプストア１１４およびグラフアクションタイプストア１１２に記憶された、グラフ定義モジュール１０３によって定義されたアクションタイプおよびオブジェクトタイプを利用して、外部システム１２２上のユーザ対話をソーシャルネットワーキングシステム１００と統合する。例えば、ストリーミングビデオサービスは、ユーザが、ウェブサイトまたはモバイルアプリケーションなどの、外部システム１２２上のコンテンツを観ることを可能にすることができる。一実施形態において、ソーシャルネットワーキングシステム１００は、ユーザインタフェース上のボタンおよびリンクを、ストリーミング音楽サービスをホストする外部システム１２２上の組み込まれたウェブサーバに送信される要求に関連付けることが可能である。それらの要求は、外部サーバ上でホストされるビデオをキューに入れることなどの、要求されたア
クションのトリガとなる。このことは、ユーザが、ハイパーリンクを介してソーシャルネットワーキングシステム１００上でＴＶショーおよび映画をユーザの友達と共有することを可能にする。リンクを選択することにより、この事例では、ネットワーク１２１を介してソーシャルネットワーキングシステム１００にアクセスするユーザデバイス１２３を介してビデオまたはショーをキューに入れることである、アクションを実行する要求が、外部システム１２２に対して生成される。
【００３２】
図２は、ソーシャルＴＶ視聴を可能にする例示的なソーシャルネットワーキングシステムのための例示的なネットワーク環境を示す。ソーシャルネットワーキングシステム１００は、インターネット１２１を介して、接続された複数のデバイス２０４に接続され得る。接続されたデバイス２０４には、限定するものではないが、ローカルインターネットサービスプロバイダ（ＩＳＰ）を介してネットワーク１２１に接続されるインターネットに対応したテレビ２０４ａ、無線セルラデータネットワークなどの無線接続を介してネットワーク１２１に接続されるモバイルデバイス２０４ｂ、またはＳＴＢもしくはゲートウェイデバイス２０４ｃを介してインターネット（ネットワーク１２１）に接続されるＴＶ２０４ｄが含まれ得る。ＳＴＢ／ゲートウェイ１０４ｃは、コンテンツを配信する、またはローカルエリアネットワーク（ＬＡＮ）に接続するためのネットワークインタフェースカード（ＮＩＣ）を有する任意のハードウェアまたはソフトウェアであり得る。例えば、ＳＴＢ／ゲートウェイ２０４ｃは、コムキャスト（Ｃｏｍｃａｓｔ）、タイムワーナ（Ｔｉｍｅ  Ｗａｒｎｅｒ）、ＡＴ＆Ｔ  Ｕバース（ＡＴ＆Ｔ  Ｕ−Ｖｅｒｓｅ）、またはディッシュネットワーク（Ｄｉｓｈ  Ｎｅｔｗｏｒｋ）などのＭＳＯによって提供されるケーブルボックスであり得る。そのような例において、ＳＴＢは、ＭＳＯ２０２からコンテンツを受信することが可能である。別の例として、ＳＴＢ／ゲートウェイ２０４ｃは、ＯＴＴプロバイダ２０３などのサードパーティインターネットサイトまたはサードパーティインターネットサービスからビデオをストリーミングするデバイスであり得る。そのようなゲートウェイ２０４ｃの例には、限定するものではないが、ロク（Ｒｏｋｕ）、ボクシ（Ｂｏｘｅｅ）、アップル（Ａｐｐｌｅ）ＴＶ、およびグーグル（Ｇｏｏｇｌｅ）ＴＶが含まれており、ユーザが、ネットフリックス（ＮｅｔＦｌｉｘ）、フール（Ｈｕｌｕ）、アマゾンビデオ（Ａｍａｚｏｎ  Ｖｉｄｅｏ）、ユーチューブ（ＹｏｕＴｕｂｅ（登録商標））などのＯＴＴプロバイダ２０３からのコンテンツにアクセスすることを可能にする。
【００３３】
特定の実施形態において、接続されたデバイス２０４は、ソーシャルネットワーキングシステム１００からソーシャルデータを受信するに際し、またはソーシャルネットワーキングシステム１００にソーシャルデータを送信するに際し、ＭＳＯ２０２またはＯＴＴプロバイダ２０３からコンテンツを受信する。例えば、いずれかのサービスにおいて特定のＴＶショーまたは映画を観ているユーザは、ユーザが現在、番組を視聴していることを、ユーザの友達と共有することを選択することが可能である。逆に、ＭＳＯ２０２のＥＰＧ、またはＯＴＴプロバイダ２０３のコンテンツナビゲータをブラウズしているユーザに、ユーザの友達がソーシャルネットワーキングシステム１００上で観た、現在観ている、または観る予定であるコンテンツを含むソーシャルデータが提示されてもよい。このため、接続されたデバイス２０４に対してユーザのソーシャルネットワーキングＩＤを認証するａｕｔｈメッセージ２０６をソーシャルネットワーキングシステム１００と交換した後、接続されたデバイス２０４は、ユーザの友達によってソーシャルネットワーク上で消費されている、または観られているコンテンツを識別する発見メッセージ２０８を受信し、さらにユーザが何を観た、もしくは「消費」したか、何を観ている、もしくは「消費」しているか、または何を観る予定である、もしくは「消費」する予定であるかをソーシャルネットワーキングシステム１００に知らせる共有メッセージ２０７を送信することが可能である。図２は、これらのメッセージを、ソーシャルネットワーキングシステム１００と、接続されたデバイス２０４の間で直接に伝送されているものとして示すものの、特定の実施形態において、認可メッセージ２０６、共有メッセージ２０７、および発見メッセージ
２０８は、コンテンツにアクセスが行われているプロバイダ、すなわち、ＭＳＯ２０２とＯＴＴプロバイダ２０３の間で交換されてもよい。本開示は、閲覧するデバイス２０４からソーシャルネットワーキングシステム１００にメッセージをルーティングする任意の適切な手段を企図する。
【００３４】
ますます稀になっているものの、ソーシャルネットワーキングシステムの特定のユーザが、ユーザのＴＶまたは閲覧するデバイスをソーシャルネットワーキングシステム１００にリンクする手段を有しないシナリオが存在する。接続されていないデバイス２０５は、インターネット／ネットワーク１２１に接続する手段を有しない。例えば、ユーザが、ローカルＩＳＰを有さず、ＭＳＯからのＴＶサービスだけを有する可能性がある。別の例として、ユーザが、ＭＳＯからのケーブルサービスとローカルＩＳＰからのインターネットアクセスをともに有し得るが、ユーザのＳＴＢ２０４ｃが、ＮＩＣを含まない可能性がある。そのような構成において、ＭＳＯ２０２は、認可メッセージ、共有メッセージ、および発見メッセージをソーシャルネットワーキングシステム１００に通信し、接続されていないデバイス２０５は、ＳＴＢ２０４ｃを介して、ＭＳＯ２０２とだけ通信する。
【００３５】
特定の実施形態において、コンテンツは、コンテンツ識別子およびメタデータのタグを付けられたユーザデバイス２０４および２０５に配信されることが可能である。例えば、コムキャスト社（Ｃｏｍｃａｓｔ）が、番組名、放送日、俳優、製作者、ディレクタなどをリストアップするコムキャスト社（Ｃｏｍｃａｓｔ）独自のＥＰＧデータフォーマットを利用することが可能である。特定の実施形態において、ロヴィコーポレーション社（Ｒｏｖｉ  Ｃｏｒｐｏｒａｔｉｏｎ）などのコンテンツプロバイダ２０２および２０３は、コンテンツデータベース２０１からコンテンツ識別子およびメタデータを得ることが可能である。それぞれの特定のコンテンツは、デバイス２０４から、または特定の実施形態において、コンテンツプロバイダ２０２および２０３を介して、グラフオブジェクトおよびグラフアクションを含むグラフデータとして送信され得る。前述したように、ソーシャルネットワーキングシステム１００は、コンテンツオブジェクトについての様々な属性、例えば、名前、俳優、所要時間、放送日などを比較することによって、グラフデータストア１１３の中で同一のグラフオブジェクトに関するグラフデータの重複を解消することが可能である。このため、ソーシャルネットワーキングシステム１００は、ソーシャルネットワーキングシステム１００は、任意の特定のユーザが、評論家から高く評価される長編映画、「ザマリーン」を観たという、フール社（Ｈｕｌｕ）から送信されたグラフデータを、コンテンツメタデータの送信元およびフォーマットにかかわらず、コムキャスト社（Ｃｏｍｃａｓｔ）デジタルケーブル上で「ザマリーン」を現在観ているユーザと同一のグラフオブジェクトに帰属させることができる。
【００３６】
図３は、観られるビデオコンテンツの共有のサイクルを概念的に示す。認可段階３０１で、特定のユーザ３００は、ユーザ３００がコンテンツをブラウズする、または閲覧することを所望するデバイス２０４または２０５に対してユーザ３００のソーシャルネットワーキングユーザ識別子の認証をする。前述したように、デバイス２０４／２０５は、ＯＴＴプロバイダ２０３のウェブサイトを閲覧するブラウザアプリケーション１２４を含むパーソナルコンピューティングデバイス、テレビ、またはコンテンツプロバイダに関する専用のアプリケーションを実行しているモバイルデバイスを含め、ユーザがコンテンツを閲覧することができる任意のデバイスであり得る。特定の実施形態において、ユーザは、アカウントをユーザのソーシャルネットワーキング識別子によって複数の外部サービス１２２に関連付けできるので、外部サービス１２２は、ソーシャルネットワーキングシステム１００にソーシャルグラフについてクエリを行うか、またはグラフデータを公開することを許すことが可能である。例えば、ユーザ３００は、ユーザ３００のフール社（Ｈｕｌｕ）のアカウント、ネットフリックス社（Ｎｅｔｆｌｉｘ）のアカウント、およびＡＴＴ  Ｕバース（ＡＴＴ  Ｕ−Ｖｅｒｓｅ）のアカウントを、ユーザ３００のソーシャルネット
ワーキングユーザ識別子およびパスワードに関連付けて、その結果、複数のコンテンツ配信サービスに亘るすべてのコンテンツをソーシャルネットワークと共有し、したがって、ソーシャルネットワーク上のユーザ３００の友達と共有することが可能である。
【００３７】
消費−共有段階３０２で、ユーザ３００は、ビデオコンテンツを観ること、またはキューに入れることによってコンテンツを消費し、その消費したストーリをソーシャルネットワーキングシステム１００と共有する。特定の実施形態において、ユーザ３００は、ユーザインタフェース上の共有ボタンを能動的に選択することによって、ユーザが消費したコンテンツのストーリをソーシャルネットワーキングシステム１００と明示的に共有することが可能である。そのような実施形態について、図７を参照してさらに詳細に説明される。特定の実施形態において、共有することは、ユーザ選択なしに受動的に行われる。そのような実施形態について、図１０を参照してさらに詳細に説明される。ユーザ３００によるコンテンツ消費のストーリがソーシャルネットワーキングシステム１００に送信されると、ユーザ３００の友達３００ａ〜３００ｅが、共有ストーリを閲覧して、その結果、消費すべき新たなコンテンツを発見することが可能である。特定の実施形態において、ユーザ３００は、ユーザ３００の友達３００ａ〜３００ｅのいずれがユーザ３００の消費ストーリを閲覧することができるかを指定することが可能である。特定の実施形態において、ユーザ３００は、能動的に共有される消費ストーリ、および受動的に共有される消費ストーリに関して様々なプライバシ設定を有することが可能である。発見段階３０３で、ユーザ３００は、ユーザ３００の友達３００ａ〜３００ｅによって公開された消費ストーリを閲覧することが可能である。前述したように、ユーザの友達３００ａ〜３００ｅによって公開された消費ストーリをユーザ３００が閲覧することができることは、個別の各ユーザ３００ａ〜３００ｅのプライバシ設定に依存する。このため、図３の概念フレームワークは、ユーザが、絶えず、ユーザの友達によって共有される新たなコンテンツを発見しており、コンテンツを消費しており、さらにユーザの友達とコンテンツを共有しているサイクルを表す。したがって、ソーシャルネットワーキングシステム１００上のユーザ体験とソーシャルネットワーキングシステム１００を離れてのユーザ体験がともに、向上される。
【００３８】
図４は、外部システム１２２から受信されたグラフデータからのコンテンツ識別子を、共有するための単一のコンテンツ識別子に割り当てるための方法を示す。ステップ４０１で、ソーシャルネットワーキングシステム１００が、ＭＳＯ２０２またはＯＴＴプロバイダ２０３などの外部システム１２２からグラフデータを受信する。代替として、ソーシャルネットワーキングシステム１００は、接続されたデバイス２０４から直接にグラフデータを受信してもよい。特定の実施形態において、グラフデータは、１以上の属性を有するコンテンツオブジェクト、ならびに「観ている」、「観た」、「スケジュールした」、「いいね！ボタンを押した」、または「共有する」などのグラフアクションを有することが可能である。特定の実施形態において、各コンテンツオブジェクトは、そのコンテンツオブジェクトに関する複数のオブジェクト属性またはメタデータを有することも可能である。例えば、コムキャスト社（Ｃｏｍｃａｓｔ）は、コンテンツオブジェクトのタイトル、日付、俳優、アメリカ映画協会（ＭＰＡＡ：Ｍｏｔｉｏｎ  Ｐｉｃｔｕｒｅ  Ａｓｓｏｃｉａｔｉｏｎ  ｏｆ  Ａｍｅｒｉｃａ）レーティング、および所要時間を含むコムキャスト社（Ｃｏｍｃａｓｔ）独自のデータフォーマットで、コンテンツ識別子を含めて、消費ストーリをグラフデータとしてソーシャルネットワーキングシステム１００に送信することが可能である。
【００３９】
ステップ４０２で、ソーシャルネットワーキングシステム１００は、同一のタイトルを有するグラフオブジェクトを求めてグラフデータストア１１３を検索することが可能である。特定の実施形態において、ソーシャルネットワーキングシステム１００は、所定の割合の語または文字が同一である場合、２つのタイトルが一致するものと見なすことによって、フォーマット設定の特定の違いを補償することが可能である。例えば、ソーシャルネ
ットワーキングシステム１００は、「ザオフィス（Ｔｈｅ  Ｏｆｆｉｃｅ）」と「オフィス、ザ（Ｏｆｆｉｃｅ、Ｔｈｅ）」を、順序の違いにもかかわらず、一致していると見なすことが可能である。
【００４０】
ソーシャルネットワーキングシステム１００は、受信されたグラフオブジェクトが、グラフデータストア１１３の中に既存のコンテンツ識別子を有すると判定した場合、ソーシャルネットワーキングシステム１００は、ステップ４０３で、受信されたグラフオブジェクトの重複を解消することにとりかかる。前述したように、ソーシャルネットワーキングシステム１００は、さらなる検査を実行して、外部システム１２２から受信されたコンテンツオブジェクトが、グラフデータストア１１３の中に記憶されたコンテンツ識別子と同一のコンテンツオブジェクトであると判定することが可能である。例えば、ソーシャルネットワーキングシステムは、外部システム１２２から受信された俳優名、上映日、ＭＰＡＡレーティング、所要時間、および他のメタデータを、グラフデータストア１１３の中のコンテンツ識別子に関するメタデータまたはオブジェクト属性と比較することが可能である。特定の実施形態において、特定の割合で一致するメタデータは、それらのオブジェクトが同一であることを示す。特定の実施形態において、特定のメタデータフィールドには、より大きな重みが付けられる、またはより大きい重要度が与えられることが可能である。例えば、１年当たり文字通り数千の番組が放送されるため、放送日には、例えば、主演俳優と比べて、非常に小さい重みが付けられることが可能である。特定の実施形態において、ソーシャルネットワーキングシステム１００は、１以上のコンテンツデータベース２０１に対するアクセスを有することが可能であり、さらにコンテンツデータベース２０１から引き出された（プルされた）属性でグラフデータストア１１３を構築することが可能である。本開示は、受信されたコンテンツオブジェクト、およびグラフデータストア１１３の中のコンテンツ識別子の重複を解消する任意の適切な方法を企図する。
【００４１】
ステップ４０４で、ソーシャルネットワーキングシステムは、受信されたコンテンツオブジェクトがグラフデータストア１１３の中のいずれの既存のコンテンツ識別子とも一致しないと判定した場合、ソーシャルネットワーキングシステム１００は、その受信されたコンテンツオブジェクトに関して新たなグラフオブジェクトを作成する。特定の実施形態において、作成されるグラフオブジェクトは、仮想グラフオブジェクトであり得る。特定の実施形態において、外部システム１２２から受信されたメタデータを、作成されたグラフオブジェクトのオブジェクト属性に収めるのに使用され得る。特定の実施形態において、メタデータを正しいオブジェクト属性に収めるために、ソーシャルネットワーキングシステムが、特定の受信されたメタデータを、グラフデータストア１１３の中のすべてのコンテンツオブジェクト属性と比較することが可能である。例えば、グラフデータが、「ジョージクルーニ」というメタデータを伴って受信された場合、ソーシャルネットワーキングシステム１００は、グラフデータストア１１３の中のすべてのコンテンツオブジェクト属性に亘って「ジョージクルーニ」という文字列を検索し、マッチが生じた新たに作成された仮想オブジェクトのオブジェクト属性に、この例では、「俳優」オブジェクト属性にそのメタデータを割り当てることが可能である。本開示は、新たなグラフオブジェクトを作成し、その新たに作成されたオブジェクトのオブジェクト属性に受信されたメタデータを収める任意の適切な方法を企図する。
【００４２】
ステップ４０５で、ソーシャルネットワーキングシステムは、受信されたグラフデータの中に包含されるユーザＩＤとグラフオブジェクト（ステップ４０４で作成された新たな仮想グラフオブジェクト、またはステップ４０３で識別されたコンテンツ識別子）との間にエッジを描く。前述したように、グラフアクションは、任意のタイプであり得るとともに、サードパーティによって定義され得る。特定の実施形態において、ソーシャルネットワーキングシステム１００は、すべてのソーシャルＴＶ  ＡＰＩユーザの間で基準となり得るソーシャルＴＶアクションのセットを定義することが可能である。特定の実施形態に
おいて、ソーシャルネットワーキングシステムは、グラフアクションの同様の重複の解消を実行して、「フールプラス（Ｈｕｌｕ  Ｐｌｕｓ）で観た」などの、フール社（Ｈｕｌｕ）から受信されたグラフアクションが、「観た」という汎用のグラフアクションに割り当てられるようにすることが可能である。本開示は、ユーザノードとオブジェクトの間のグラフアクションを作成し、描く任意の適切な方法を企図する。
【００４３】
ステップ４０６で、ソーシャルネットワーキングシステム１００は、ユーザの消費のストーリを公開する。ストーリは、異なるいくつかのチャネルを介して公開され得る。特定の実施形態において、このストーリは、ユーザのウォール上に出現する。特定の実施形態において、このストーリは、ユーザの友達のニュースフィードにおいて出現する。特定の実施形態において、このストーリは、外部システム１２２に公開される。特定の実施形態において、このストーリは、ユーザのソーシャルネットワーキングプロフィールページの一部分に組み込まれ得るソーシャルプラグインに公開される。例えば、ユーザが、ユーザのプロフィールページの一部分の上に「現在、観ている」ウィジェットを含めることを所望することが可能である。本開示は、ソーシャルネットワーキングシステムによって受信される消費ストーリを公開する任意の適切な方法を企図する。
【００４４】
図５は、複数の配信チャネルに亘って消費ストーリを公開することを概念的に示す。図５で、ユーザ３００は、ユーザが現在、映画、「ポイントブレイク（Ｐｏｉｎｔ  Ｂｒｅａｋ）」を観ているという発言を、ソーシャルネットワーキングシステム１００（および、その結果、ユーザ３００の友達）と共有する。前述したように、ソーシャルネットワーキングシステム１００は、ユーザ３００が「ポイントブレイク（Ｐｏｉｎｔ  Ｂｒｅａｋ）」を観ているコンテンツサービスプロバイダから受信されたグラフデータを処理し、そのグラフデータを処理して、そのグラフデータを単一のコンテンツ識別子に割り当てる。その結果生じるストーリは、ウェブサイト５０１、アプリケーション５０２、ソーシャルネットワーキングシステム自体５０１、およびソーシャルプラグイン５０４などの、いくつかのチャネルに公開され得る。
【００４５】
特定の実施形態において、消費ストーリは、配信サービス５０１〜５０４に「プッシュ」されるのではなく、サービスが、ソーシャルグラフについてクエリを行う要求をソーシャルネットワーキングシステム１００に対して発行する。例えば、ユーザが、ユーザのソーシャルネットワーキングＩＤでクリッカ（Ｃｌｉｃｋｅｒ）ウェブサイト５０１にログインすると、ユーザデバイスに配信されるマークアップ言語に組み込まれたプラグインのスクリプトが、ユーザのソーシャルネットワーキング識別子を包含するソーシャルグラフにクエリを発行することが可能である。これに応答して、ソーシャルネットワーキングシステム１００が、ユーザの友達のすべての消費ストーリを返すことが可能であり、さらにプラグインは、そのページの所定の部分でそれらの消費ストーリを表示することが可能である。特定の実施形態において、この例では、クリッカ（Ｃｌｉｃｋｅｒ）である外部システム１２２が、ソーシャルネットワーキングシステム１００から受信されたソーシャルグラフコンテンツ識別子を、外部システム自らのウェブサイト上のコンテンツに割り当てる役割を担う。
【００４６】
別の例として、ユーザが、ユーザのモバイルデバイス（アイフォン（ｉＰｈｏｎｅ（登録商標））またはアイパッド（ｉＰａｄ（登録商標））など）上の５０２の、例えば、ＮＢＣ．ｃｏｍモバイルアプリケーションなどのモバイルアプリケーションにアクセスするとき、そのアプリケーションは、アカウントがそのモバイルデバイスに関連付けられた友達の消費ストーリに関するソーシャルグラフに対するクエリを発行することが可能である。特定の実施形態において、ソーシャルネットワーキングシステム１００は、ソーシャルグラフコンテンツ識別子から、外部サービス１２２によって使用されるコンテンツ識別子に割り当てる役割を担う。例えば、ユーザは、ユーザのＡＴ＆Ｔ  Ｕバース（ＡＴ＆Ｔ  
Ｕ−Ｖｅｒｓｅ）サービスにおいてユーザのＥＰＧにアクセスした場合、ソーシャルネットワーキングシステムは、公開される消費ストーリを電子番組案内の番組に関連付けるデータを返すことが可能である。
【００４７】
図６Ａは、例示的な電子番組案内（ＥＰＧ）６００を示す。ＥＰＧ６００は、特定の曜日に関する午後７時００分〜８時００のブロックからのチャネル１００２〜チャネル１１０２に関する番組スケジュールを含む。ＥＰＧ６００は、様々なチャネルに関してスケジュールにアクセスするように垂直にスクロールされることも、様々な時刻に関してスケジュールにアクセスするように水平にスクロールされることも可能である。また、ＥＰＧ６００は、様々な日付に関してスケジュールを閲覧する、ユーザが選択可能なオプションを含むことも可能である。ＥＰＧ６００は、ソーシャルネットワーキングシステム１００から受信されたソーシャルデータによって強化され得る。例えば、ユーザが、ユーザのソーシャルネットワーキングＩＤを、この例では、ユーザのケーブルアカウントにアクセスするＳＴＢである、ユーザの閲覧デバイスに関連付けた後、ＥＰＧ６００は、特定のショーの下にアイコンを含めて、そのショーと関係する１以上の消費ストーリの存在を示すことが可能である。この１以上のアイコンは、その消費ストーリの概要を含むことも可能である。例えば、チャネル１００２上で午後７時００分に再生される「ハウス（Ｈｏｕｓｅ）」というショーの下のアイコンは、ユーザの友達のうちの１人、「マーカススミス（Ｍａｒｃｕｓ  Ｓｍｉｔｈ）」が、現在、その番組を観ていることを提示する。別の例として、１００４上の午後７時００分の「ザシングオフ（Ｔｈｅ  Ｓｉｎｇ  Ｏｆｆ）」というショーの下のアイコンは、ユーザの友達のうちの３人がそのショーを記録していることを示す。別の例として、ＥＰＧ６００におけるソーシャルデータは、ユーザが、「ザバンパイアダイアリーズ（Ｔｈｅ  Ｖａｍｐｉｒｅ  Ｄｉａｒｉｅｓ）」に関するＥＰＧエントリなどの特定のショーを記録するようにスケジュールされていることを示すことも可能である。さらに、ＥＰＧ６００は、各ショーに関して、ユーザの友達が、そのショーに対して、それ以外で親和性を表明している、またはそのショーにつながっていることを示す標識を含み得る。例えば、ＥＰＧ６００は、ユーザの友達が特定のショーに対して「いいね！ボタンを押した」ことを示す、いくつかの「サムズアップ」アイコンを含む。特定の実施形態において、これらの「サムズアップ」アイコンは、「いいね！」ボタンを押されたストーリの概要を含むことも可能である。本開示は、任意の関連するソーシャルデータの表示を企図する。
【００４８】
図６Ｂは、ユーザが、特定のショーまたは番組に関する情報を閲覧することを選択する際の例示的なＥＰＧエントリ６０１を示す。特定の実施形態において、ユーザは、ＥＰＧ６００においてそのショーを選択すること、およびユーザのリモコン上で「さらに」または「情報」を選択することによって特定のコンテンツについての詳細な情報を閲覧することができる。ＥＰＧエントリ６０１は、コンテンツサービスプロバイダまたはコンテンツデータベース２０１から得られた番組名６０２およびメタデータ６０３〜６０７を含む。特定の実施形態において、メタデータは、ＭＰＡＡレーティング６０３、所要時間６０４、俳優６０５、放送日６０６、およびテーマ６０７を含み得る。特定の実施形態において、ＥＰＧエントリ６０１は、番組の概要または要約を含むことも可能である。本開示は、ＥＰＧエントリ６０１に任意の適切なメタデータを含めることを企図する。
【００４９】
ＥＰＧ６０１は、ソーシャル部分６０８をさらに含む。特定の実施形態において、ＥＰＧ６０１は、マークアップ言語文書としてユーザに配信され、ソーシャル部分６０８は、ウィジェットまたはプラグインとして機能するマークアップ文書の中のコードのブロックである。本開示は、ソーシャル部分６０８をレンダリングし、実装する任意の適切な方法を企図する。ソーシャル部分６０８は、閲覧するデバイスに関連付けられたユーザに特有のソーシャルデータを含み得る。例えば、ユーザのＳＴＢがＥＰＧエントリ６０１を要求する際、ＳＴＢは、ユーザのソーシャルネットワーキングＩＤ、および番組６０２のタイ
トルを含むクエリをソーシャルグラフに発行することも可能である。これに応答して、ソーシャルネットワーキングシステム１００は、図４を参照して説明したように、番組名６０２を特定のグラフオブジェクトまたはコンテンツ識別子に割り当て、さらにそのグラフオブジェクトに対して親和性（いいね！ボタンを押す）エッジを有するユーザの友達を返すことが可能である。特定の実施形態において、ソーシャル部分６０８は、コメント６１２を含むことも可能である。コメント６１２は、ソーシャルネットワーキングシステム１００上のコンテンツオブジェクトを表すページ（「ハブページ」または「ランディグページ」とも呼ばれる）から取り出され得る。特定の実施形態では、ハブページからのユーザの友達または一次連絡先からのコメントだけでもよい。特定の実施形態において、コメントは、ｒｏｔｔｅｎｔｏｍａｔｏｅｓ．ｃｏｍまたはｉｍｄｂ．ｃｏｍなどの外部サイトからプルされることが可能である。本開示は、任意の適切な源からコメントまたは他のソーシャルデータを取り出すことを企図する。特定の実施形態において、コメント６１２は、時系列で並べられることが可能である。特定の実施形態において、コメント６１２は、ソーシャル値により並べられることが可能であり、つまり、ＥＰＧ６０１の閲覧者がより高いソーシャル係数を有する相手である近い友達またはユーザからのコメントが、先に表示される。本開示は、ソーシャル部分６０８の中でコメント６１２にスコアを付ける、または並べる任意の適切な方法を企図する。
【００５０】
特定の実施形態において、ソーシャル部分６０８は、能動的な、または明示的な共有ユーザインタフェース要素を含む。例えば、ソーシャル部分６０８は、「いいね！」ボタン６０９と、「共有」ボタン６１０とを含むことが可能である。「いいね！」ボタン６０９の選択により、ソーシャルグラフにおいて、閲覧するデバイスに関連付けられたユーザノードとグラフデータストア１１３の中のコンテンツオブジェクトとの間で「いいね！ボタンを押す」エッジを描く要求が、ソーシャルネットワーキングシステム１００に送信される。特定の実施形態において、そのような「いいね！ボタンを押す」アクションは、ストーリとしてユーザのウォール、およびユーザの友達のニュースフィードに公開される。同様に、共有ボタン６１０を選択することにより、ユーザのＳＴＢに、閲覧するユーザのソーシャルグラフユーザノードとコンテンツオブジェクトとの間で「共有する」エッジを描く要求を、ソーシャルネットワーキングシステム１００に送信させることが可能である。本開示は、特定のアクションに関してソーシャルグラフにおいてエッジを同様に描く、「観る」、「キューに入れる」、または「記録するためにスケジュールする」などの他のボタンも企図する。本開示は、ユーザが観ているものを共有する、または特定のショーに関する親和性を表明する明示的なアクションを行うことをユーザに認可する能動的な共有ボタン６０９、６１０の任意の適切な選択および構成を企図する。
【００５１】
図７は、外部システム１２２によって解釈され得るフォーマットでソーシャルネットワーキングシステム１００から外部システム１２２にソーシャルデータを送信するための方法を示す。外部システム１２２は、任意の独自のフォーマットのＥＰＧデータを利用する可能性があるため、特定のショー、例えば、「イッツオールウェイズサニーインフィラデルフィア（Ｉｔ’ｓ  Ａｌｗａｙｓ  Ｓｕｎｎｙ  ｉｎ  Ｐｈｉｌａｄｅｌｐｈｉａ）」を、「共有する」段階と「発見する」段階の両方でソーシャルネットワーキングシステム１００のグラフデータベース１１３の中の同一のショーに関するコンテンツ識別子に割り当てることに困難がある。このため、ソーシャルネットワーキングシステム１００から受信されるソーシャルデータ（ユーザの友達が、ショーを観ているか否か、ショーに対して「いいね！ボタンを押した」か否かなど）は、ＥＰＧデータとさらに折り合いがつけられなければならない。特定の実施形態において、外部システム１２２が、着信するソーシャルネットワーキングコンテンツ識別子を外部システム１２２のＥＰＧにおける外部システム１２２のそれぞれのショーまたは番組に割り当てる逆マッチング手順を実装することが可能である。図７の方法などの特定の実施形態において、外部システム１２２は、ＡＰＩ要求サーバ１０６を介してソーシャルグラフＡＰＩにクエリを発行し、さらにユーザが現
在、ブラウズしているショーに関するコンテンツ識別子を送信する。例えば、ユーザがＥＰＧ６００をブラウズしている場合、外部システム１２２は、ＥＰＧ６００の中に見えるすべてのショーのタイトルを送信する。同様に、ユーザがＥＰＧ６０１をブラウズしている場合、外部システム１２２は、「ラタトゥーユ（Ｒａｔａｔｏｕｉｌｌｅ）」というタイトルをソーシャルネットワーキングシステム１００に送信する。そのような実施形態において、ソーシャルネットワーキングシステム１００は、一連のルックアップを実行して、ユーザの友達の共有アクションをＥＰＧ６００または６０１の中の特定のショーに相関させる。このため、ソーシャルデータは、外部システム１２２によって容易に解釈され得るフォーマットでソーシャルネットワーキングシステム１００から配信される。
【００５２】
ステップ７０１で、ソーシャルネットワーキングシステム１００が、ＡＰＩ要求サーバ１０６を介して、外部システム１２２からソーシャルグラフについてクエリを行う要求を受信する。特定の実施形態において、ステップ７０１は、ユーザ認証と同時に行われ、ユーザのソーシャルネットワーキング識別子およびパスワードを含み得る。特定の実施形態において、ステップ７０１は、ソーシャルネットワーキングシステム１００が、デバイスを既に認証して、ユーザのソーシャルネットワーキング識別子をデバイスに関連付けた後に行われる。
【００５３】
ステップ７０２で、ソーシャルネットワーキングシステム１００は、１以上のＥＰＧコンテンツオブジェクトを受信する。ユーザがＥＰＧ６００を閲覧している際などの特定の実施形態において、ソーシャルネットワーキングシステム１００が、番組名のリストを受信する。ユーザがＥＰＧ６０１の詳細を閲覧している場合などの特定の実施形態において、ソーシャルネットワーキングシステムは、外部システム１２２から単一の番組名を受信する。特定の実施形態において、外部システム１２２が、番組名と一緒にメタデータを送信することが可能である。
【００５４】
ステップ７０３で、ソーシャルネットワーキングシステムが、外部システム１２２によって送信された番組名と一致するグラフデータストア１１３の中のオブジェクトを繰り返し検索することを開始する。特定の実施形態において、ソーシャルネットワーキングシステムは、図４におけるステップ４０２〜ステップ４０３と同一の方法を実行して、ＥＰＧ番組名をコンテンツオブジェクトに割り当てる。特定の実施形態において、ソーシャルネットワーキングシステム１００は、ＥＰＧ番組名だけを受信し、一致すると疑われるものが見出された場合に、外部システム１２２からさらなるメタデータを要求することが可能である。
【００５５】
既存の一致が見出されなかった場合、ソーシャルネットワーキングシステム１００は、タイトルのリストの中の次のＥＰＧ番組名で同様に繰り返すことが可能である。特定の実施形態において、ソーシャルネットワーキングシステム１００は、グラフデータストア１１３の中のタイトルに関して仮想オブジェクトを作成することが可能である。本開示は、グラフデータストア１１３の中で一致するエントリを見出すことができなかったときのソーシャルネットワーキングシステム１００による任意の適切なアクションを企図する。
【００５６】
既存のエントリが見出された場合、ソーシャルネットワーキングシステム１００は、そのコンテンツオブジェクトについてのユーザの友達からの共有ストーリが存在するか否かを調べる。存在する場合、プロセスは、ステップ７０７に進み、ソーシャルネットワーキングシステム１００は、その共有ストーリをＥＰＧ番組名に相関させる。ステップ７０８で、ソーシャルネットワーキングシステム１００が、共有ストアリングと、ＥＰＧ番組名とからなるソーシャルデータを外部システム１２２に送信する。このため、外部システム１２２は、ＥＰＧ６００および６０１を、外部システム１２２において最低限のプログラミングおよびコンテンツマッチングしか行わずに、受信されたソーシャルデータを容易に
収めることができる。
【００５７】
次に、このプロセスは、受信されたＥＰＧ番組名のリスト全体に亘って同様に繰り返される。特定の実施形態において、ユーザのビューが変わるたびに、外部システム１２２からソーシャルネットワーキングシステム１００に新たな要求が送信される。例えば、ユーザがＥＰＧ６００において垂直に、または水平にスクロールした場合、ユーザには、新たなセットのショーが提示される。ユーザのビューが変わるたびに、視聴可能なショーに関するソーシャルストーリが存在するか否かを判定するよう新たな要求がソーシャルネットワーキングシステムに送信される。このため、ＥＧＰ６００のユーザのビューは、ソーシャルストーリで絶えず更新される。
【００５８】
図７の方法は、教示の目的でのみ説明される。当業者は、ＥＰＧ番組名を、ソーシャルネットワーキングシステム１００上のコンテンツ識別子に相関させる様々な方法を構想することが可能である。例えば、特定の実施形態において、ソーシャルネットワーキングシステム１００はまず、ユーザの友達のすべての共有ストーリのリストを得て、さらにコンテンツオブジェクトのタイトルを用いて、受信されたＥＰＧ番組名の検索を実行することが可能である。そのような方法は、ストーリを有する番組の方が、ストーリを有しない番組より必然的に少ないことになるので、ユーザがＥＰＧ６００をブラウズしている際の必要な検索の量を大幅に低減することが可能である。しかし、受信されたＥＰＧ番組名の数が少ない場合、図７の方法そのものを実行する方が、より高速であり得る。本開示は、ＥＰＧ６０１および６００をソーシャルデータを収める任意の適切な方法を企図する。
【００５９】
図６Ａおよび図６Ｂの例は、コンテンツデータがソーシャルデータ（すなわち、ユーザの友達からの共有ストーリ）で得られる外部システム１２２によって提供されるユーザインタフェースを示す。そのようなユーザインタフェースは、ほとんど外部システム１２２における労力なしに、図７の方法、および類似した他の方法を介して、非常に単純に実装され得る。しかし、図８Ａおよび図８Ｂは、コンテンツオブジェクト自体がソーシャルデータによって決定される、外部システム１２２によって提供される例示的なユーザインタフェースを示す。
【００６０】
図８Ａは、教示の目的で、３つのコンテンツ、「アバター（Ａｖａｔａｒ）」という映画８０２、「ザオフィス（Ｔｈｅ  Ｏｆｆｉｃｅ）」というＴＶショー８０３、および「サタデーナイトライブ（Ｓａｔｕｒｄａｙ  Ｎｉｇｈｔ  Ｌｉｖｅ）」というＴＶショー８０４を含む例示的なコンテンツブラウザ８０１を示す。特定の実施形態において、ユーザが、例えば、ネットフリックス（ＮｅｔＦｌｉｘ）などの特定の外部システム１２２にログインし、ユーザのソーシャルネットワーキングユーザＩＤおよびパスワードを用いて認証されると、ネットフリックス（ＮｅｔＦｌｉｘ）は、ユーザのソーシャルネットワーキングの友達によって最も頻繁にいいね！ボタンを押される、または観られる、示唆されるコンテンツオブジェクト８０２〜８０４を表示することを選択することが可能である。このため、外部システム１２２は、ソーシャルネットワーキングシステム１００から受信されたソーシャルデータに基づいて、コンテンツブラウザ８０１に収めなければならない。これは、外部システム１２２が、コンテンツオブジェクト識別子によって表されるコンテンツを表示し得るように、ソーシャルグラフコンテンツオブジェクト識別子と、オブジェクトに対するアクションと、それらのアクションを実行したユーザのユーザ識別子とからなる受信されたソーシャルデータを、外部システム１２２が解釈できることを必要とする。例えば、ネットフリックス（ＮｅｔＦｌｉｘ）ユーザにとって、「ブレットテイラー（Ｂｒｅｔ  Ｔａｙｌｏｒ）と１２７人の友達がアバター（Ａｖａｔａｒ）を観る」という文が提示されることは、そのリンクが選択可能ではなく、ユーザをネットフリックス（ＮｅｔＦｌｉｘ）上のアバター（Ａｖａｔａｒ）に関するコンテンツページに移動させることもない場合、何も得るところがなく、もどかしいことである。特定の実施形態におい
て、外部システム１２２は、図４に示されるコンテンツ識別子マッチングと同一の方法を逆方向で実装することが可能である。例えば、ネットフリックス（ＮｅｔＦｌｉｘ）が、ソーシャルグラフコンテンツオブジェクト識別子を受信して、ＡＰＩサーバ１０６を介してそのソーシャルグラフについてクエリを行い、タイトル、俳優、ディレクタ、所要時間、およびその他のオブジェクト属性を得ることが可能である。次に、ネットフリックス（ＮｅｔＦｌｉｘ）が、ネットフリックス（ＮｅｔＦｌｉｘ）独自のコンテンツデータ（またはロヴィ社（Ｒｏｖｉ）などの外部プロバイダによって提供される）の中で検索を行って、そのソーシャルグラフコンテンツオブジェクト識別子に対応するネットフリックス（ＮｅｔＦｌｉｘ）コンテンツを見出すことが可能である。特定の実施形態において、ロヴィ社（Ｒｏｖｉ）などのサードパーティ仲介業者が、このコンテンツマッチングを実行することが可能である。本開示は、ソーシャルネットワーキングコンテンツ識別子を外部システム１２２のコンテンツ識別子とのマッチングを行う任意の適切な方法を企図する。
【００６１】
コンテンツオブジェクト８０２〜８０４のそれぞれが、ソーシャルデータ８０２ａ、８０３ａ、および８０４ａを含む。特定の実施形態において、ソーシャルデータは、コンテンツを「観た」、観ることを予定している、または現在観ている友達の数を含む。特定の実施形態において、ソーシャルデータ８０２ａ〜８０４ａは、コンテンツオブジェクト８０２〜８０４に関する共有ストーリを生成した友達に関するソーシャルネットワーキングシステム１００からプルされたプロフィール写真を含む。特定の実施形態において、それらのプロフィール写真は、ソーシャル係数の高い順に並べられ、つまり、ユーザに最も近い友達が先に表示される。特定の実施形態において、ソーシャルデータ８０２ａ〜８０４ａは、ユーザが特定のコンテンツオブジェクトに対して「いいね！ボタンを押す」か否かなどの、他の明示的なソーシャルアクションを含む。本開示は、ソーシャルデータ８０２ａ〜８０４ａの中の任意の適切なソーシャルアクションを表示することを企図する。
【００６２】
コンテンツブラウザ８０１は、ユーザが、コンテンツオブジェクトに対して特定のアクションを実行することを可能にするアクションボタン８０６をさらに含む。特定の実施形態において、アクションボタン８０６を選択することによって、関連するコンテンツオブジェクトのストリーミングまたは再生が即時に開始され得る。特定の実施形態において、アクションボタン８０６を選択することによって、コンテンツがユーザのキューに入れられることが可能である。特定の実施形態において、アクションボタン８０６を選択することによって、コンテンツがＤＶＲ上で記録されるようにスケジュールされ得る。本開示は、任意の適切なアクションボタン８０６、およびコンテンツオブジェクトに対して実行され得る任意の適切なアクションを企図する。
【００６３】
図８Ｂは、コンテンツ閲覧中のディスプレイデバイス９００の例示的なビューを示す。特定の実施形態において、ディスプレイ９００は、ソーシャルネットワーキング部分９０３を含む。特定の実施形態において、ソーシャルネットワーキング部分９０３は、ユーザが、ユーザのリモコン上でソーシャルネットワーキングボタンを押すと、表示されるポップアップメニューであり得る。特定の実施形態において、ソーシャルネットワーキング部分９０３は、それほど目立たないソーシャルネットワーキングアイコンが選択されると、展開されるポップアップメニューであり得る。本開示は、ソーシャル部分９０３の表示を制御する任意の適切な方法を企図する。
【００６４】
特定の実施形態において、ソーシャル部分９０３は、リアルタイム共有ストーリ９０３ａ〜９０３ｃを含み得る。リアルタイム共有ストーリ９０３ａ〜９０３ｃは、現時点でどのようなコンテンツをユーザの友達も観ているかを記述する。このため、ユーザは、リアルタイム共有ストーリ９０３ａ〜９０３ｃのうちのいずれか１つを選択して、ユーザの友達が観ているのと同一の番組を閲覧するようにディスプレイ９００を切り換えることができる。そのような情報は、メッセージもしくはウォール掲示などのネットワーク上の対話
と、後の時点の電話通話もしくは対面での会話などのネットワークを離れての「現実の」社会的な対話の両方を促すことが可能である。また、ソーシャル部分９０３は、前述したように、能動的な、または明示的な共有ボタン９０４および９０５を含むことも可能である。ボタン９０４を選択することによって、現在、観られている番組に関する共有ストーリがソーシャルネットワーキングシステム１００上に生成され得る。
【００６５】
能動的な、または明示的な共有ボタン９０４および９０５は、ユーザが現在観ているものをソーシャルネットワーキングシステム１００と（したがって、ソーシャルネットワーキングシステム１００上のユーザの友達と）共有する、ユーザによる能動的な参加を要求する。特定の実施形態において、ユーザのデバイスは、ユーザが現在観ているものをソーシャルネットワーキングシステム１００と共有することを、ユーザからそうすることの明示的なアクションなしに、受動的に行うことが可能である。特定の実施形態において、ユーザが様々なチャネルを次々に変えるにつれ、ユーザのデバイスは、ソーシャルネットワーキング１００に投稿されるべき共有ストーリを実質的にリアルタイムで生成する。特定の実施形態において、ソーシャルネットワーキングシステムは、ユーザが、所定の時間より長く１つの番組を継続的に観た場合に限って、共有ストーリを公開して、チャネルサーフィンが他のユーザのニュースフィードを溢れさせることを防止することが可能である。特定の実施形態において、目に見える「共有」標識９０１が、ユーザが現在の番組を観ていることをユーザがソーシャルネットワーキングシステム１００と共有していることをユーザに知らせるようにディスプレイ９００に表示され得る。特定の実施形態において、共有標識９０１は、ユーザが現在、ユーザの閲覧選択肢を共有していることを示して、人前で恥をかくことを防ぐ明示的な警告９０２を含み得る。図８Ｂの例において、共有標識９０２は、単に「共有モードオン」を示す。特定の実施形態において、ユーザは、閲覧するデバイスに関するユーザインタフェースまたはハードウェアデバイスにおけるボタンを用いて共有モードのオン、オフを切り換えることができる。特定の実施形態において、共有標識９０１および９０２は、それほど表示領域を見えにくくしないことが可能である。例えば、特定の実施形態において、共有モードは、ピクチャの周囲に赤い縁を備え得る。他の実施形態において、共有モードは、閲覧するデバイス上でＬＥＤを点滅させることによって示され得る。本開示は、ハードウェアまたはソフトウェアで実装される任意の適切な共有標識を企図する。
【００６６】
図９Ａは、ユーザがソーシャルデータで強化された特定の番組を観る場合の別の例示的な表示を示す。図８Ｂの場合と同様に、図９Ａの表示は、ソーシャル部分９０３を含む。特定の実施形態において、ソーシャル部分９０３は、同一のショーを現在観ているユーザの友達を表示することが可能である。特定の実施形態において、ユーザの友達のプロフィールピクチャが表示される。特定の実施形態において、ソーシャル部分９０３は、ユーザの友達も同一のショーを観ることを始めると、ポップアップすることが可能である。特定の実施形態において、ソーシャル部分９０３は、所定の時間の後、自動的に最小化され得る。特定の実施形態において、ソーシャル部分９０３は、新たな友達が同一の番組を観ることを始めるたびにポップアップすることが可能である。特定の実施形態において、「いいね！」ボタンおよび「共有する」ボタンに加えて、ソーシャル部分９０３は、ユーザが、同一の番組を観ているユーザの友達を相手に実質的にリアルタイムのチャットセッションに参加することを可能にする「チャット」オプションを含み得る。そのような実施形態について、図９Ｂを参照してさらに詳細に説明される。
【００６７】
図９Ｂは、ユーザが、同一の番組を観ているユーザの友達を相手にグループチャットを行っている例示的な表示を示す。チャットウインドウ９１０は、同一の番組を観ているユーザの友達の数も含むことが可能である。個々のメッセージ９１１、９１２、および９１３は、ユーザの友達またはユーザがキーボードもしくは他の入力デバイスと対話することによって投稿され得る。個々のメッセージ９１１〜９１３は、投稿の時刻、および投稿す
るユーザに関するピクチャを含み得る。特定の実施形態において、チャットウインドウ９１０は、別個のデバイス上に表示され得る。例えば、ユーザは、ユーザのテレビ上で番組を観ており、グループチャットに参加する場合、ユーザのソーシャルネットワーキングスマートフォンアプリケーションは、チャットウインドウ９１０を表示して、ユーザが、専用のＴＶ入力デバイスなしにチャットを入力することができるようにすることが可能である。本開示は、チャットウインドウ９１０と対話する任意の適切な配置または手段を企図する。
【００６８】
前述の実施形態は、様々なネットワーク構成で実施され得るが、以下に、限定する目的ではなく、教示の目的で例示的なネットワーク環境を示す。図１０は、例示的なネットワーク環境１０００を示す。ネットワーク環境１０００は、１以上のサーバ１０２０と１以上のクライアント１０３０を互いに結合するネットワーク１０１０を含む。ネットワーク環境１００は、１以上のサーバ１０２０に結び付けられた１以上のデータストレージ１０４０をさらに含む。特定の実施形態は、ネットワーク環境１０００において実装され得る。例えば、ソーシャルネットワーキングシステムフロントエンド１２０は、１以上のサーバ１０２０によってホストされるソフトウェアプログラムとして書かれることが可能である。例えば、イベントデータベース１０２は、１以上のストレージ１０４０の中に記憶されることが可能である。特定の実施形態において、ネットワーク１０１０は、イントラネット、エクストラネット、仮想プライベートネットワーク（ＶＰＮ）、ローカルエリアネットワーク（ＬＡＮ）、無線ＬＡＮ（ＷＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、インターネットの一部分、もしくは別のネットワーク１０１０、または２つ以上のそのようなネットワーク１０１０の組み合わせである。本開示は、任意の適切なネットワーク１０１０を企図する。
【００６９】
１以上のリンク１０５０は、サーバ１０２０またはクライアント１０３０をネットワーク１０１０に結合する。特定の実施形態において、１以上のリンク１０５０はそれぞれ、１以上の有線リンク１０５０、無線リンク１０５０、または光リンク１０５０を含む。特定の実施形態において、１以上のリンク１０５０はそれぞれ、イントラネット、エクストラネット、ＶＰＮ、ＬＡＮ、ＷＬＡＮ、ＷＡＮ、ＭＡＮ、インターネットの一部分、もしくは別のリンク１０５０、または２つ以上のそのようなリンク１０５０の組み合わせを含む。本開示は、サーバ１０２０およびクライアント１０３０をネットワーク１０１０に結合する任意の適切なリンク１０５０を企図する。
【００７０】
特定の実施形態において、各サーバ１０２０は、単体のサーバであっても、複数のコンピュータまたは複数のデータセンタにまたがる分散型サーバであってもよい。サーバ１０２０は、例えば、限定するものではないが、ウェブサーバ、ニュースサーバ、メールサーバ、メッセージサーバ、広告サーバ、ファイルサーバ、アプリケーションサーバ、交換サーバ、データベースサーバ、またはプロクシサーバなどの、様々なタイプであることが可能である。特定の実施形態において、各サーバ１０２０は、サーバ１０２０によって実装される、またはサポートされる適切な機能を実行するためのハードウェア、ソフトウェア、もしくは組み込まれた論理構成要素、または２つ以上のそのような構成要素の組み合わせを含み得る。例えば、ウェブサーバは、一般に、ウェブページ、またはウェブページの特定の要素を包含するウェブサイトをホストすることができる。より具体的には、ウェブサーバは、ＨＴＭＬファイルもしくは他のファイルタイプをホストすることができ、または要求が行われると、ファイルを動的に作成、もしくは構成し、それらのファイルを、クライアント１０３０からのＨＴＴＰ要求もしくは他の要求に応答してクライアント１０３０に通信することができる。メールサーバは、一般に、様々なクライアント１０３０に電子メールサービスを提供することができる。データベースサーバは、一般に、１以上のデータストアの中に記憶されたデータを管理するためのインタフェースを提供することができる。
【００７１】
特定の実施形態において、１以上のデータストレージ１０４０は、１以上のリンク１０５０を介して１以上のサーバ１０２０に通信可能に結び付けられることが可能である。特定の実施形態において、データストレージ１０４０が、様々なタイプの情報を記憶するのに使用され得る。特定の実施形態において、データストレージ１０４０の中に記憶された情報は、特定のデータ構造に応じて編成され得る。特定の実施形態において、各データストレージ１０４０は、リレーショナルデータベースであり得る。特定の実施形態は、サーバ１０２０またはクライアント１０３０が、データストレージ１０４０の中に記憶された情報を管理すること、例えば、取り出すこと、変更すること、追加すること、または削除することを可能にするインタフェースを提供する。
【００７２】
特定の実施形態において、各クライアント１０３０は、ハードウェア、ソフトウェア、もしくは組み込まれた論理構成要素、または２つ以上のそのような構成要素の組み合わせを含むとともに、クライアント１０３０によって実装される、またはサポートされる適切な機能を実行することができる電子デバイスであり得る。例えば、限定するものではないが、クライアント１０３０は、デスクトップコンピュータシステム、ノートブックコンピュータシステム、ネットブックコンピュータシステム、ハンドヘルド電子デバイス、またはモバイル電話機であり得る。本開示は、任意の適切なクライアント１０３０を企図する。クライアント１０３０は、クライアント１０３０におけるネットワークユーザがネットワーク１０３０にアクセスすることを可能にすることができる。クライアント１０３０は、クライアント１０３０のユーザが、他のクライアント１０３０における他のユーザと通信することを可能にすることができる。
【００７３】
クライアント１０３０は、マイクロソフトインターネットエクスプローラ（ＭＩＣＲＯＳＯＦＴ  ＩＮＴＥＲＮＥＴ  ＥＸＰＬＯＲＥＲ）、グーグルクローム（ＧＯＯＧＬＥ  ＣＨＲＯＭＥ）、またはモジラファイアフォックス（ＭＯＺＩＬＬＡ  ＦＩＲＥＦＯＸ）などのウェブブラウザ１０３２を有することが可能であり、さらにツールバー（ＴＯＯＬＢＡＲ）またはヤフーツールバー（ＹＡＨＯＯ  ＴＯＯＬＢＡＲ）などの１以上のアドオン、プラグイン、または他の拡張機能を有することが可能である。クライアント１０３０におけるユーザが、ウェブブラウザ１０３２をサーバ１０２０に向かわせるユニフォームリソースロケータ（ＵＲＬ）または他のアドレスを入力することが可能であり、さらにウェブブラウザ１０３２が、ハイパーテキスト転送プロトコル（ＨＴＴＰ）要求を生成し、そのＨＴＴＰ要求をサーバ１０２０に通信することが可能である。サーバ１０２０は、そのＨＴＴＰ要求を受け付け、そのＨＴＴＰ要求に応答する１以上のハイパーテキストマークアップ言語（ＨＴＭＬ）ファイルをクライアント１０３０に通信することが可能である。クライアント１０３０は、サーバ１０２０からのＨＴＭＬファイルに基づいてウェブページをユーザに提示するためにレンダリングすることが可能である。本開示は、任意の適切なウェブページファイルを企図する。例として、限定としてではなく、ウェブページは、特定のニーズに応じて、ＨＴＭＬファイル、拡張ハイパーテキストマークアップ言語（ＸＨＴＭＬ）ファイル、または拡張マークアップ言語（ＸＭＬ）ファイルからレンダリングされ得る。そのようなページは、例えば、限定するものではないが、ジャバスクリプト（ＪＡＶＡＳＣＲＩＰＴ（登録商標））、ジャバ（ＪＡＶＡ）、マイクロソフトシルバーライト（ＭＩＣＲＯＳＯＦＴ  ＳＩＬＶＥＲＬＩＧＨＴ）、ＡＪＡＸ（非同期のジャバスクリプト（ＪＡＶＡＳＣＲＩＰＴ）とＸＭＬ）などのマークアップ言語とスクリプトの組み合わせなどで書かれたスクリプトなどのスクリプトを実行することも可能である。本明細書で、ウェブページについて述べることには、適宜、対応する１以上のウェブページファイル（ブラウザがウェブページをレンダリングするのに使用し得る）が包含されるとともに、そのようなウェブページファイルについて述べることには、ウェブページが包含される。
【００７４】
図１１は、サーバを実装するのに使用され得る例示的なコンピューティングシステムアーキテクチャを示す。一実施形態において、ハードウェアシステム１１００は、プロセッサ１１０２、キャッシュメモリ１１０４、ならびに本明細書に記載される機能を対象とする、実体のあるコンピュータ可読媒体上に記憶された１以上の実行可能モジュールおよびドライバからなる。さらに、ハードウェアシステム１１００は、高性能入出力（Ｉ／Ｏ）バス１１０６、および標準のＩ／Ｏバス１１０８を含む。ホストブリッジ１１０８が、プロセッサ１１０２を高性能Ｉ／Ｏバス１１０６に結合する一方で、Ｉ／Ｏバスブリッジ１１１２が、２つのバス１１０６と１１０８を互いに結合する。システムメモリ１１１４、および１以上のネットワーク／通信インタフェース１１１６はバス１１０６に結合される。ハードウェアシステム１１００は、ビデオメモリ（図示せず）と、ビデオメモリに結合されたディスプレイデバイスをさらに含み得る。大容量ストレージ１１１１１、およびＩ／Ｏポート１１２０は、バス１１０８に結合される。ハードウェアシステム１１００は、オプションとして、キーボードおよびポインティングデバイス、ならびにバス１１０８に結合されたディスプレイデバイス（図示せず）を含み得る。集合的に、これらの要素は、米国カリフォルニア州サンタクララ（Ｓａｎｔａ  Ｃｌａｒａ）所在のインテルコーポレーション社（Ｉｎｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎ）によって製造されたｘ１１６互換プロセッサ、および米国カリフォルニア州サニーベール（Ｓｕｎｎｙｖａｌｅ）所在のアドバンストマイクロデバイセズインコーポレイテッド（ＡＭＤ：Ａｄｖａｎｃｅｄ  Ｍｉｃｒｏ  Ｄｅｖｉｃｅｓ，Ｉｎｃ．）によって製造されたｘ１１６互換プロセッサ、ならびに他の任意の適切なプロセッサに基づく汎用コンピュータシステムを含むが、これらに限定されない広いカテゴリのコンピュータハードウェアシステムを表すことを意図している。
【００７５】
ハードウェアシステム１１００の要素は、後段でより詳細に説明される。詳細には、ネットワークインタフェース１１１６によって、ハードウェアシステム１１００と、イーサネット（登録商標）（例えば、ＩＥＥＥ１１０２．３）ネットワーク、バックプレーンなどの多種多様なネットワークのうちの任意のネットワークとの間での通信が提供される。大容量ストレージ１１１１１によって、サーバ２２ａ、２２ｂにおいて実装される前述した機能を実行するデータおよびプログラミング命令のための永続したストレージが提供される一方で、システムメモリ１１１４（例えば、ＤＲＡＭ）によって、プロセッサ１１０２によって実行される際のデータおよびプログラミング命令のための一時ストレージが提供される。Ｉ／Ｏポート６２０は、周辺デバイスの間での通信を提供する１以上のシリアル通信ポートおよび／またはパラレル通信ポートであって、ハードウェアシステム１１００に結合され得る。
【００７６】
ハードウェアシステム１１００は、様々なシステムアーキテクチャを含むことが可能であり、さらにハードウェアシステム１１００の様々な構成要素は、構成変更されることが可能である。例えば、キャッシュ１１０４は、プロセッサ１１０２と一体化したオンチップであってもよい。代替として、キャッシュ１１０４とプロセッサ１１０２は、「プロセッサモジュール」として一緒にまとめられてもよく、プロセッサ１１０２は、「プロセッサコア」と呼ばれる。さらに、いくつかの実施形態は、前述した構成要素のすべてを要求するわけでも、含むわけでもない可能性がある。例えば、標準のＩ／Ｏバス１１０８に結合されて図示される周辺デバイスは、高性能Ｉ／Ｏバス１１０６に結合されてもよい。さらに、いくつかの実施形態において、単一のバスだけが存在してもよく、ハードウェアシステム１１００の構成要素は、その単一のバスに結合される。さらに、ハードウェアシステム１１００は、さらなるプロセッサ、ストレージデバイス、またはメモリなどのさらなる構成要素を含み得る。
【００７７】
一実施形態において、本明細書に記載される実施形態の動作は、分散コンピューティング環境において個々に、またはひとまとめに、ハードウェアシステム１１００によって実
行される一連の実行可能モジュールとして実施される。特定の実施形態において、セットのソフトウェアモジュールおよび／またはドライバが、ネットワーク通信プロトコルスタック機能、ブラウズ機能、および他のコンピューティング機能、最適化プロセスなどを実施する。前述した機能モジュールは、ハードウェア、コンピュータ可読媒体上に記憶された実行可能モジュール、またはハードウェアとそのような実行可能モジュールの組み合わせによって実現され得る。例えば、機能モジュールは、プロセッサ１１０２などのハードウェアシステムにおけるプロセッサによって実行されるべき複数の、または一連の命令からなることが可能である。初期には、それらの一連の命令は、大容量ストレージ１１１１１などのストレージデバイス上に記憶されてもよい。しかし、それらの一連の命令は、ディスケット、ＣＤ−ＲＯＭ、ＲＯＭ、ＥＥＰＲＯＭなどの任意の適切な記憶媒体上に記憶されて実体化され得る。さらに、それらの一連の命令は、ローカルで記憶される必要はなく、ネットワーク／通信インタフェース１１１６を介して、ネットワーク上のサーバなどの、遠隔ストレージデバイスから受信されることも可能である。それらの命令は、大容量ストレージ１１１１１などのストレージデバイスからメモリ１１１４の中にコピーされ、その後、プロセッサ１１０２によってアクセスされて、実行される。
【００７８】
オペレーティングシステムが、ソフトウェアアプリケーション（図示せず）に対するデータの入力、およびソフトウェアアプリケーションからのデータの出力を含むハードウェアシステム１１００の動作を管理し、制御する。オペレーティングシステムによって、システム上で実行されているソフトウェアアプリケーションとシステムのハードウェア構成要素との間のインタフェースが提供される。ＬＩＮＵＸ（登録商標）オペレーティングシステム、米国カリフォルニア州クーパチーノ所在のアップルコンピュータインコーポレイテッド（Ａｐｐｌｅ  Ｃｏｍｐｕｔｅｒ  Ｉｎｃ．）から入手可能なアップルマッキントッシュオペレーティングシステム（Ａｐｐｌｅ  Ｍａｃｉｎｔｏｓｈ  Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）、ＵＮＩＸ（登録商標）オペレーティングシステム、マイクロソフト（Ｍｉｃｒｏｓｏｆｔ）（登録商標）ウィンドウズ（Ｗｉｎｄｏｗｓ）（登録商標）オペレーティングシステム、ＢＳＤオペレーティングシステムなどの任意の適切なオペレーティングシステムが、使用されることが可能である。もちろん、他の実装形態も可能である。例えば、本明細書で説明されるニックネーム生成機能が、ファームウェアとして、または特定用途向け集積回路上に実装されることが可能である。
【００７９】
さらに、前述した要素および動作は、記憶媒体上に記憶された命令からなることが可能である。これらの命令は、処理システムによって取り出されて、実行され得る。命令のいくつかの例は、ソフトウェア、プログラムコード、およびファームウェアである。記憶媒体のいくつかの例は、メモリデバイス、テープ、ディスク、集積回路、およびサーバである。これらの命令は、処理システムによって実行されると、本開示に応じて動作するよう処理システムを導くように作用する。「処理システム」という用語は、単一の処理デバイス、またはグループの相互動作する処理デバイスを指す。処理デバイスのいくつかの例は、集積回路および論理回路である。当業者は、命令、コンピュータ、および記憶媒体に精通している。
【００８０】
本明細書で、非一時的コンピュータ可読記憶媒体について述べることには、適宜、半導体ベースの集積回路もしくは他の集積回路（ＩＣ）（例えば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）もしくは特定用途向けＩＣ（ＡＳＩＣ））、ハードディスク、ＨＤＤ、ハイブリッドハードドライブ（ＨＨＤ）、光ディスク、光ディスクドライブ（ＯＤＤ）、光磁気ディスク、光磁気ドライブ、フロッピー（登録商標）ディスク、フロッピーディスクドライブ（ＦＤＤ）、磁気テープ、ホログラフィック記憶媒体、ソリッドステートドライブ（ＳＳＤ）、ＲＡＭドライブ、セキュアデジタル（ＳＥＣＵＲＥ  ＤＩＧＩＴＡＬ）カード、セキュアデジタル（ＳＥＣＵＲＥ  ＤＩＧＩＴＡＬ）ドライブ、別の適切な非一時的コンピュータ可読記憶媒体、または以上の適切な組み合わせが含まれ得る。
非一時的コンピュータ可読記憶媒体は、適宜、揮発性、不揮発性、または揮発性と不揮発性の組み合わせであり得る。
【００８１】
本明細書で、「または」は、特に明記しない限り、または文脈によってそうでないことが示されない限り、包含的であり、排他的ではない。したがって、本明細書で「ＡまたはＢ」は、特に明記しない限り、または文脈によってそうでないことが示されない限り、「Ａ、Ｂ、またはＡとＢの両方」を意味する。さらに、「および」は、特に明記しない限り、または文脈によってそうでないことが示されない限り、合同と別々の両方である。したがって、本明細書で「ＡおよびＢ」は、特に明記しない限り、または文脈によってそうでないことが示されない限り、「ＡとＢを一緒に、または別々に」を意味する。
【００８２】
本開示は、当業者が理解する本明細書の例示的な実施形態のすべての変容、置換、変更、改変、および変形を包含する。例として、実施形態について、ソーシャルネットワーキングウェブサイトに関連して動作するものとして説明されてきたが、本開示は、ウェブアプリケーションをサポートする任意の通信ファシリティに関連して使用され得る。さらに、いくつかの実施形態において、「ウェブサーバ」という用語と「ウェブサイト」という用語は、互換的に使用されることが可能であり、さらに、サーバに対して直接にＡＰＩ呼び出しを行うモバイルデバイス（例えば、セルラ電話機、スマートフォン、パーソナルＧＰＳ、携帯情報端末、パーソナルゲームデバイスなど）などのデバイス上のカスタムの、または汎用のＡＰＩを指すことが可能である。さらに、本開示は、特定の構成要素、要素、機能、動作、またはステップを含むものとしてそれぞれの実施形態を本明細書で説明し、例示するものの、これらの実施形態のいずれも、当業者が理解する、本明細書の任意の箇所で説明される、または例示される構成要素、要素、機能、動作、またはステップのうちのいずれの任意の組み合わせまたは並べ替えも含むことが可能である。添付の特許請求の範囲における、特定の機能を実行するように適応された、実行するように配置された、実行することができる、実行するように構成された、実行することを可能にされた、実行するように動作可能である、または実行するように動作する装置もしくはシステム、または装置もしくはシステムの構成要素は、その装置、システム、または構成要素がそのように適応される、そのように配置される、そのようにすることができる、そのように構成される、そのようにすることを可能にされる、そのように動作可能である、またはそのように動作する限り、その装置、システム、もしくは構成要素、またはその特定の機能が活性化されるか否か、オンにされるか否か、またはロック解除されるか否かにかかわらず、その装置、システム、または構成要素を包含する。
【図１０】
0005981024.tif 000002
【図１１】
0005981024.tif 000003
【図１】
0005981024.tif 000004
【図２】
0005981024.tif 000005
【図３】
0005981024.tif 000006
【図４】
0005981024.tif 000007
【図５】
0005981024.tif 000008
【図６Ａ】
0005981024.tif 000009
【図６Ｂ】
0005981024.tif 000010
【図７】
0005981024.tif 000011
【図８Ａ】
0005981024.tif 000012
【図８Ｂ】
0005981024.tif 000013
【図９Ａ】
0005981024.tif 000014
【図９Ｂ】
0005981024.tif 000015