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

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

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

特許5981024ソーシャルネットワーキングを介してテレビ番組およびビデオ番組を共有すること
<>
  • 特許5981024-ソーシャルネットワーキングを介してテレビ番組およびビデオ番組を共有すること 図000002
  • 特許5981024-ソーシャルネットワーキングを介してテレビ番組およびビデオ番組を共有すること 図000003
  • 特許5981024-ソーシャルネットワーキングを介してテレビ番組およびビデオ番組を共有すること 図000004
  • 特許5981024-ソーシャルネットワーキングを介してテレビ番組およびビデオ番組を共有すること 図000005
  • 特許5981024-ソーシャルネットワーキングを介してテレビ番組およびビデオ番組を共有すること 図000006
  • 特許5981024-ソーシャルネットワーキングを介してテレビ番組およびビデオ番組を共有すること 図000007
  • 特許5981024-ソーシャルネットワーキングを介してテレビ番組およびビデオ番組を共有すること 図000008
  • 特許5981024-ソーシャルネットワーキングを介してテレビ番組およびビデオ番組を共有すること 図000009
  • 特許5981024-ソーシャルネットワーキングを介してテレビ番組およびビデオ番組を共有すること 図000010
  • 特許5981024-ソーシャルネットワーキングを介してテレビ番組およびビデオ番組を共有すること 図000011
  • 特許5981024-ソーシャルネットワーキングを介してテレビ番組およびビデオ番組を共有すること 図000012
  • 特許5981024-ソーシャルネットワーキングを介してテレビ番組およびビデオ番組を共有すること 図000013
  • 特許5981024-ソーシャルネットワーキングを介してテレビ番組およびビデオ番組を共有すること 図000014
  • 特許5981024-ソーシャルネットワーキングを介してテレビ番組およびビデオ番組を共有すること 図000015
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5981024
(24)【登録日】2016年8月5日
(45)【発行日】2016年8月31日
(54)【発明の名称】ソーシャルネットワーキングを介してテレビ番組およびビデオ番組を共有すること
(51)【国際特許分類】
   G06F 17/30 20060101AFI20160818BHJP
   G06Q 50/00 20120101ALI20160818BHJP
【FI】
   G06F17/30 340B
   G06Q50/00 300
【請求項の数】18
【全頁数】35
(21)【出願番号】特願2015-504695(P2015-504695)
(86)(22)【出願日】2013年4月3日
(65)【公表番号】特表2015-515689(P2015-515689A)
(43)【公表日】2015年5月28日
(86)【国際出願番号】US2013035051
(87)【国際公開番号】WO2013152060
(87)【国際公開日】20131010
【審査請求日】2016年3月18日
(31)【優先権主張番号】13/440,306
(32)【優先日】2012年4月5日
(33)【優先権主張国】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】508178054
【氏名又は名称】フェイスブック,インク.
(74)【代理人】
【識別番号】100105957
【弁理士】
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【弁理士】
【氏名又は名称】恩田 博宣
(74)【代理人】
【識別番号】100142907
【弁理士】
【氏名又は名称】本田 淳
(72)【発明者】
【氏名】アーチボン、アイミ
(72)【発明者】
【氏名】バドロス、グレゴリー ジョセフ
(72)【発明者】
【氏名】マーロウ、キャメロン アレクサンダー
(72)【発明者】
【氏名】ヘイネン、マーク
(72)【発明者】
【氏名】シェイファー、ジャスティン アレクサンダー
(72)【発明者】
【氏名】コックス、クリストファー
【審査官】 吉田 誠
(56)【参考文献】
【文献】 国際公開第2001/050309(WO,A1)
【文献】 特開2006−50370(JP,A)
【文献】 米国特許出願公開第2012/0331496(US,A1)
【文献】 米国特許出願公開第2012/0174157(US,A1)
【文献】 米国特許出願公開第2011/0126251(US,A1)
【文献】 米国特許出願公開第2008/0178242(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 17/30
G06Q 50/00
(57)【特許請求の範囲】
【請求項1】
1以上のコンピューティングシステム
ソーシャルネットワーキングシステムにおいてビデオコンテンツプロバイダシステムから、前記ソーシャルネットワーキングシステムのユーザに関連付けられたユーザ識別子を含む要求を受信する、要求受信ステップと、
前記ソーシャルネットワーキングシステムにおける前記ユーザの1以上のつながりによって生成されたストーリについて前記ソーシャルネットワーキングシステムのソーシャルグラフにクエリを行うステップであって、前記ソーシャルグラフは、複数のノードと、前記ノード同士をつなげているエッジとを備え、前記ノードは、前記ソーシャルネットワーキングシステムの特定のユーザに各々関連付けられたユーザノードを含み、前記ユーザノードの間のエッジは、前記ソーシャルネットワーキングシステムの前記ユーザ同士の関係を識別する、クエリステップと、
前記ビデオコンテンツプロバイダによって前記ユーザに提供されるサービスに関連して使用されるように前記ソーシャルネットワーキングシステムから前記ストーリのうちの1以上を送信する、ストーリ送信ステップと、
前記ソーシャルネットワーキングシステムにおいて前記ビデオコンテンツプロバイダから、前記ユーザが現在、特定のコンテンツを観ていることを示す新たなストーリを前記ソーシャルネットワーキングシステム上に投稿するためのユーザインタフェース要素を前記ユーザが選択したことを示す標識を受信するステップであって、前記ユーザインタフェース要素は、前記特定のコンテンツが観られていることに伴って表示されている、ステップと、
前記ソーシャルネットワーキングシステムが、前記ユーザに関連付けられたユーザノードと、前記ユーザが現在観ている前記特定のコンテンツに関連付けられたコンテンツノードとの間に前記ソーシャルグラフにおける新たなエッジを生成するステップと、
前記ソーシャルネットワーキングシステムにおいて前記ビデオコンテンツプロバイダから、前記ユーザが将来的に観るものを前記ユーザがさらなる明示のアクションをすることなく受動的に共有するオプションを前記ユーザが選択したことを示す標識を受信するステップと、
前記ユーザが将来的に観るものを受動的に共有するオプションを前記ユーザが選択したことを示す標識を受信した後に、前記ソーシャルネットワーキングシステムが、前記ユーザが新たなコンテンツを観るに際し前記ソーシャルネットワーキングシステム上に新たな
ストーリを自動的に投稿するステップであって、各新たなストーリは、前記特定のコンテンツが前記ユーザによって観られていることを示す標識を含み、前記新たなストーリは、前記ユーザが所定の時間より長く前記新たなコンテンツを継続的に観た場合に限り、自動的に前記ソーシャルネットワーキングシステム上に投稿される、ステップと、
を含む方法。
【請求項2】
前記ビデオコンテンツプロバイダは、マルチサービスオペレータ(MSO)を含み、前記ビデオコンテンツは、ケーブル番組を含み、
前記ストーリは、特定のビデオコンテンツを観ていることに対応するアクションを含み、
前記ストーリ送信ステップは、前記1以上のストーリを、電子番組案内(EPG)の中で前記ストーリが提示されるように前記ソーシャルネットワーキングシステムのユーザに関連付けられたセットトップボックスに送信するステップを含む、請求項1に記載の方法。
【請求項3】
前記ストーリは、特定のコンテンツオブジェクトに対して「いいね!」と表明している前記ユーザのつながりを含む、請求項1に記載の方法。
【請求項4】
前記ストーリは、特定のコンテンツオブジェクトを観ている前記ユーザのつながりを含む、請求項1に記載の方法。
【請求項5】
前記ストーリは、将来的に閲覧するために特定のコンテンツオブジェクトをキューに入れる前記ユーザのつながりを含む、請求項1に記載の方法。
【請求項6】
前記クエリは、1以上のコンテンツ識別子を含む方法であって、
コンテンツオブジェクトデータベースにアクセスするステップと、
前記コンテンツ識別子のうちの1以上の識別子のそれぞれと前記コンテンツオブジェクトデータベースの中のコンテンツオブジェクトとのマッチングを行うステップと、をさらに備える、請求項1に記載の方法。
【請求項7】
前記クエリステップは、前記1以上のコンテンツオブジェクトに関して前記ソーシャルネットワーキングシステムのユーザのつながりによって生成されたストーリを求めて前記ソーシャルグラフを検索するステップを含む、請求項6に記載の方法。
【請求項8】
1以上のコンピューティングシステムにおける1以上の非一時的コンピュータ可読記憶媒体であって、前記媒体は、ロジックを具現化しており、前記ロジックは、実行されると
ソーシャルネットワーキングシステムにおいてビデオコンテンツプロバイダシステムから、前記ソーシャルネットワーキングシステムのユーザに関連付けられたユーザ識別子を含む要求を受信するステップと
前記ソーシャルネットワーキングシステムにおける前記ユーザの1以上のつながりによって生成されたストーリについて前記ソーシャルネットワーキングシステムのソーシャルグラフにクエリを行うステップであって、前記ソーシャルグラフは、複数のノードと、前記ノード同士をつなげているエッジとを備え、前記ノードは、前記ソーシャルネットワーキングシステムの特定のユーザに各々関連付けられたユーザノードを含み、前記ユーザノードの間のエッジは、前記ソーシャルネットワーキングシステムの前記ユーザ同士の関係を識別する、クエリステップと、
前記ビデオコンテンツプロバイダによって前記ユーザに提供されるサービスに関連して使用されるように前記ソーシャルネットワーキングシステムから前記ストーリのうちの1以上を送信するステップと
前記ユーザに関連付けられたユーザノードと、前記ユーザが現在観ている前記特定のコンテンツに関連付けられたコンテンツノードとの間に前記ソーシャルグラフにおける新たなエッジを生成するステップと、
前記ソーシャルネットワーキングシステムにおいて前記ビデオコンテンツプロバイダから、前記ユーザが将来的に観るものを前記ユーザがさらなる明示のアクションをすることなく受動的に共有するオプションを前記ユーザが選択したことを示す標識を受信するステップと、
前記ユーザが将来的に観るものを受動的に共有するオプションを前記ユーザが選択したことを示す標識を受信した後に、前記ソーシャルネットワーキングシステムが、前記ユーザが新たなコンテンツを観るに際し前記ソーシャルネットワーキングシステム上に新たなストーリを自動的に投稿するステップであって、各新たなストーリは、前記特定のコンテンツが前記ユーザによって観られていることを示す標識を含み、前記新たなストーリは、前記ユーザが所定の時間より長く前記新たなコンテンツを継続的に観た場合に限り、自動的に前記ソーシャルネットワーキングシステム上に投稿される、ステップとを行わせる、媒体。
【請求項9】
前記ビデオコンテンツプロバイダは、マルチサービスオペレータ(MSO)を含み、前記ビデオコンテンツは、ケーブル番組を含み、
前記ストーリは、特定のビデオコンテンツを観ていることに対応するアクションを含み、
ストーリを送信することは、前記1以上のストーリを、電子番組案内(EPG)の中で前記ストーリが提示されるように前記ソーシャルネットワーキングシステムのユーザに関連付けられたセットトップボックスに送信するステップを含む、請求項に記載の媒体。
【請求項10】
前記ストーリは、特定のコンテンツオブジェクトに対して「いいね!」と表明している前記ユーザのつながりを含む、請求項に記載の媒体。
【請求項11】
前記ストーリは、特定のコンテンツオブジェクトを観ている前記ユーザのつながりを含む、請求項8に記載の媒体。
【請求項12】
前記ストーリは、将来的に閲覧するために特定のコンテンツオブジェクトをキューに入れる前記ユーザのつながりを含む、請求項8に記載の媒体。
【請求項13】
前記クエリは、1以上のコンテンツ識別子を含む、媒体であって、
前記ロジックは、実行されたとき、
コンテンツオブジェクトデータベースにアクセスするステップと、
前記コンテンツ識別子のうちの1以上の識別子のそれぞれと前記コンテンツオブジェクトデータベースの中のコンテンツオブジェクトとのマッチングを行うステップと、をさらに行わせる、請求項8に記載の媒体。
【請求項14】
前記クエリステップは、前記1以上のコンテンツオブジェクトに関して前記ソーシャルネットワーキングシステムのユーザのつながりによって生成されたストーリを求めて前記ソーシャルグラフを検索するステップを含む、請求項8に記載の媒体。
【請求項15】
1以上のプロセッサと、
前記プロセッサにより実行可能な命令を備え、前記プロセッサに結合されているメモリと、を備え、前記命令が実行されるとき、前記プロセッサは、
ソーシャルネットワーキングシステムにおいてビデオコンテンツプロバイダシステムから、前記ソーシャルネットワーキングシステムのユーザに関連付けられたユーザ識別子を含む要求を受信するステップと
前記ソーシャルネットワーキングシステムにおける前記ユーザの1以上のつながりによって生成されたストーリについて前記ソーシャルネットワーキングシステムのソーシャルグラフにクエリを行うステップであって、前記ソーシャルグラフは、複数のノードと、前記ノード同士をつなげているエッジとを備え、前記ノードは、前記ソーシャルネットワーキングシステムの特定のユーザに各々関連付けられたユーザノードを含み、前記ユーザノードの間のエッジは、前記ソーシャルネットワーキングシステムの前記ユーザ同士の関係を識別する、ステップと、
前記ビデオコンテンツプロバイダによって前記ユーザに提供されるサービスに関連して使用されるように前記ソーシャルネットワーキングシステムから前記ストーリのうちの1以上を送信するステップと
前記ユーザに関連付けられたユーザノードと、前記ユーザが現在観ている前記特定のコンテンツに関連付けられたコンテンツノードとの間に前記ソーシャルグラフにおける新たなエッジを生成するステップと、
前記ソーシャルネットワーキングシステムにおいて前記ビデオコンテンツプロバイダから、前記ユーザが将来的に観るものを前記ユーザがさらなる明示のアクションをすることなく受動的に共有するオプションを前記ユーザが選択したことを示す標識を受信するステップと、
前記ユーザが将来的に観るものを受動的に共有するオプションを前記ユーザが選択したことを示す標識を受信した後に、前記ソーシャルネットワーキングシステムが、前記ユーザが新たなコンテンツを観るに際し前記ソーシャルネットワーキングシステム上に新たなストーリを自動的に投稿するステップであって、各新たなストーリは、前記特定のコンテンツが前記ユーザによって観られていることを示す標識を含み、前記新たなストーリは、前記ユーザが所定の時間より長く前記新たなコンテンツを継続的に観た場合に限り、自動的に前記ソーシャルネットワーキングシステム上に投稿される、ステップとを行わせる、システム。
【請求項16】
前記ビデオコンテンツプロバイダは、マルチサービスオペレータ(MSO)を含み、前記ビデオコンテンツは、ケーブル番組を含み、
前記ストーリは、特定のビデオコンテンツを観ていることに対応するアクションを含み、
ストーリを送信することは、前記1以上のストーリを、電子番組案内(EPG)の中で前記ストーリが提示されるように前記ソーシャルネットワーキングシステムのユーザに関連付けられたセットトップボックスに送信するステップを含む、請求項15に記載のシステム。
【請求項17】
前記ストーリは、
特定のコンテンツオブジェクトに対して「いいね!」と表明している前記ユーザのつながり、
特定のコンテンツオブジェクトを観ている前記ユーザのつながり、および、
将来的に閲覧するために特定のコンテンツオブジェクトをキューに入れる前記ユーザのつながり、のうちの1以上を含む、請求項15に記載のシステム。
【請求項18】
前記クエリは、1以上のコンテンツ識別子を含む、システムであって、
前記ロジックは、実行されたとき、
コンテンツオブジェクトデータベースにアクセスするステップと、
前記コンテンツ識別子のうちの1以上の識別子のそれぞれと前記コンテンツオブジェクトデータベースの中のコンテンツオブジェクトとのマッチングを行うステップと、をさらに行わせる、請求項15に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般にソーシャルネットワーキングに関する。
【背景技術】
【0002】
コンピュータユーザは、独自のネットワーク、ならびにインターネットなどの公共ネットワークを含む、様々なローカルエリアコンピュータネットワークおよびワイドエリアコンピュータネットワークを介して情報にアクセスし、情報を共有することができる。通常、ユーザのコンピューティングデバイスにインストールされたウェブブラウザが、例えば、関連するユニフォームリソースロケータ(URL)によって識別される様々なネットワークサーバに配置された情報に対するアクセス、およびそのような情報との対話を円滑にする。ソーシャルネットワーキングのウェブサイトは、ユーザによって生成されたコンテンツの共有を円滑にすることが可能である。そのようなウェブサイトは、ユーザが、他のユーザによって作成された、またはカスタマイズされた「プロフィール」ページを閲覧する、またはそのようなページと対話することを可能にするアプリケーションのためのプラットフォームを含む、そのようなプラットフォームにリンクされる、またはそのようなプラットフォームを提供することが可能である。規則のセットで、他のユーザのプロフィールページを閲覧する、またはそのようなページと対話するユーザの能力を左右することが可能であり、ユーザのプロフィールページは、連絡先情報、背景情報、求人情報もしくはキャリア情報、および関心などのユーザによって宣言された情報を含み得る。
【0003】
ソーシャルネットワークは、特定の1以上のタイプの相互依存関係によって互いに結び付けられた(つながれた)ノードによって表される個人、グループ、エンティティ、または組織からなる社会構造体であり得る。ソーシャルネットワーク(グラフ)分析が、ソーシャル(ネットワークにおける)関係を、ネットワーク理論の点で、ノードおよびエッジと見なすことが可能である。ノードは、ソーシャルネットワーク内の個々のアクションを行う者を表すことが可能であり、エッジは、個々のアクションを行う者の間の関係を表すことが可能である。その結果生じるグラフベースの構造は、非常に複雑である。ノードの間に多くの種類のエッジが存在し得る。ソーシャルネットワーク(またはソーシャルグラフ)は、調査対象であるすべてのノード間の関係があるすべてのエッジの地図(マップ)であり得る。
【図面の簡単な説明】
【0004】
図1】例示的なソーシャルネットワーキングシステムを示す図。
図2】例示的なソーシャルネットワーク環境の例示的なコンピュータネットワーク環境を示す図。
図3】ソーシャルネットワーキングを介してテレビ番組およびビデオ番組を共有することに関する例示的なプロセスサイクルを示す図。
図4】複数のサービスからのコンテンツを単一のコンテンツ識別子に割り当てるための例示的な方法を示す図。
図5】複数の外部サービスに対するコンテンツオブジェクトに関するストーリの例示的な共有を示す図。
図6A】ソーシャルデータを組み込んだ電子番組案内の例を示す図。
図6B】ソーシャルデータを組み込んだ電子番組案内の別の例を示す図。
図7】外部システムによってより容易に解釈され得るフォーマットでソーシャルデータおよびコンテンツ識別子を送信するための例示的な方法を示す図。
図8A】組み込まれたソーシャルデータを含めたコンテンツを表示するコンテンツブラウザの例を示す図。
図8B】組み込まれたソーシャルデータを含めたコンテンツを表示するビデオ再生デバイスの例を示す図。
図9A】実質的にリアルタイムのソーシャルデータを表示するビデオ再生デバイスの例を示す図。
図9B】ソーシャルネットワーキングシステムの他のメンバと一緒に実質的にリアルタイムでコンテンツ組み込みを表示するビデオ再生デバイスの例を示す図。
図10】例示的なネットワーク環境を示す図。
図11】例示的なコンピューティングシステムを示す図。
【発明を実施するための形態】
【0005】
特定の実施形態では、ソーシャルネットワーキングシステムのユーザの間で消費されるコンテンツを能動的および受動的に共有するために、ケーブルプロバイダおよびオンラインビデオサービスなどのサードパーティコンテンツ配信サービスをソーシャルネットワーキングシステムと統合する。そのような統合は、ソーシャルネットワーキングシステムのユーザが、そのユーザの友達および一次つながりによって観られた、「いいね!ボタンを押された」、または観られるようにスケジュールされたコンテンツを発見できるようにすることが可能である。同様に、ユーザは、コンテンツに対して「いいね!ボタンを押す」ように、もしくはコンテンツを「共有する」ようにユーザインタフェース要素を能動的に選択することによって、ユーザの友達および一次つながりに対してコンテンツを明示的に共有すること、または「共有」モードを有効にすることによって、現在、閲覧されているコンテンツを実質的にリアルタイムで受動的に共有することができる。
【0006】
特定の実施形態において、ユーザは、ソーシャルネットワーキングシステムと統合された任意のデバイスまたはサービスからのコンテンツを発見する、または共有することができる。例えば、特定のユーザが、ソーシャルネットワーキングシステムに記憶され、ソーシャルネットワーキングシステムによってレンダリングされるそのユーザの友達のプロフィールページをブラウズすることによってだけでなく、ネットフリックス(NetFlix)社またはフール(HuLu)社などのオーバーザトップ(OTT:over the
top)コンテンツプロバイダのサードパーティウェブページにアクセスすることによっても、コンテンツを発見することができる。特定の実施形態において、ユーザは、マルチプルシステムオペレータ(MSO:multiple system operator)または他のケーブルプロバイダを介してユーザのテレビ経由でコンテンツを発見する、または共有することができる。特定の実施形態において、ユーザのセットトップボックス(STB:set−top box)によってMSOから受信されて、ユーザのテレビ上で表示される電子番組案内を介して、ソーシャルデータをユーザに提示することが可能である。特定の実施形態において、ソーシャルネットワーキングシステムのユーザは、スマートフォンまたはタブレットなどのモバイルコンピューティングデバイス上でサードパーティサービスに関する専用のアプリケーションを介してコンテンツを発見する、または共有することができる。例えば、ユーザは、ユーザのスマートフォン上に常駐するネットフリックス(NetFlix)アプリケーションを介して、ユーザの友達の好みの映画をブラウズする、またはユーザ自身の好みの映画を共有することができる。別の例として、ユーザが、AT&T Uバース(AT&T U−Verse)ケーブルサービスによって提供されるユーザのデジタルビデオレコーダ(DVR)を管理するためのモバイルアプリケーションなどの、MSOまたはケーブルプロバイダにもリンクされたスマートフォンアプリケーションを介して、コンテンツを発見する、または共有することが可能である。
【0007】
特定の実施形態では、様々なフォーマットの複数のサービスからの複数のコンテンツ記述子を単一のコンテンツ識別子に割り当てることが可能である。例えば、4人のユーザが、フール社(Hulu)、ネットフリックス社(NetFlix)、コムキャスト(Co
mcast)ケーブル、およびディッシュネットワーク(Dish Network)衛星TVから「ザオフィス(The Office)」というショーを観ていることを共有することが可能である。コンテンツを識別するためのそれぞれの個々のサービスプロバイダのフォーマットは、異なるフォーマットであることが可能であり、様々なテキストまたはメタデータを含むことが可能である。これらの異種のコンテンツ記述子が単一のコンテンツ識別子に一元化されて集約されることがない限り、異種のサービスのユーザからの共有は、無意味であり、使用不能である。このため、特定の実施形態では、様々なフォーマットのコンテンツ識別子と、ソーシャルグラフ内の単一のノードとのマッチングを行うためのシステムが提供される。
【0008】
図1は、ソーシャルネットワーキングシステム100の一実施形態のネットワーク図である。このネットワーク環境は、1以上のユーザデバイス123と、ネットワーク121を介する1以上の外部システム122とを含む。ウェブサーバ101が、ウェブページ、ならびにJAVA(登録商標)、Flash、XMLなどの他のウェブ関連のコンテンツを提供する。ウェブサーバ101は、ソーシャルネットワーキングシステム100と1以上のユーザデバイス123との間でメッセージを受信するため、およびルーティングするためのメールサーバまたは他のメッセージング機能を含み得る。それらのメッセージは、インスタントメッセージ、キューに入れられたメッセージ(例えば、電子メール)、テキストメッセージおよびSMSメッセージ、または他の任意の適切なメッセージングフォーマットであり得る。
【0009】
アプリケーションプログラミングインタフェース(API)要求サーバ106は、1以上の外部システム122、およびユーザデバイス123が、1以上のAPIを呼び出すことによってソーシャルネットワーキングシステム100からの情報にアクセスすることを可能にする。また、API要求サーバ106は、外部システム122が、APIを呼び出すことによってソーシャルネットワーキングウェブサイトに情報を送信することを可能にすることもできる。外部システム122が、一実施形態において、ネットワーク121を介してソーシャルネットワーキングシステム100にAPI要求を送信し、API要求サーバ106が、そのAPI要求を受信する。API要求サーバ106が、そのAPI要求に関連付けられたAPIを呼び出すことによってその要求を処理して、適切な応答を生成し、この応答を、API要求サーバ106が、ネットワーク121を介して外部システム122に通信する。例えば、API要求に応答して、API要求サーバ106が、外部システム122にログインしているユーザのつながりなどの、ユーザに関連付けられたデータを収集し、その収集されたデータを外部システム122に通信する。別の実施形態において、ユーザデバイス110が、外部システム122と同様にAPIを介してソーシャルネットワーキングシステム100と通信する。
【0010】
アクションロガー102は、ウェブサーバ101から、ソーシャルネットワーキングシステム100上のユーザアクション、および/またはソーシャルネットワーキングシステム100を離れてのユーザアクションについての通信を受信することができる。アクションロガー102は、ユーザアクションについての情報をアクションログ107に収めて、ソーシャルネットワーキングシステム100が、ソーシャルネットワーキングシステム100内、およびソーシャルネットワーキングシステム100外でユーザによって行われる様々なアクションを発見することを可能にする。ソーシャルネットワーキングシステム100上の別のノードに関して特定のユーザが行ういずれのアクションも、アクションログ107の中に、または類似したデータベースもしくは他のデータリポジトリの中に維持される情報を介して、各ユーザのプロフィールに関連付けられる。識別されて、記憶されるソーシャルネットワーク130内のユーザによって行われるアクションの例には、例えば、別のユーザに対するつながりを追加すること、別のユーザにメッセージを送信すること、別のユーザからのメッセージを読み取ること、別のユーザに関連付けられたコンテンツ
を閲覧すること、別のユーザによって投稿されたイベントに出席すること、または別のユーザと対話する他のアクションが含まれ得る。ユーザが、ソーシャルネットワーキングシステム100内でアクションを行うと、そのアクションが、アクションログ107の中に記録される。一実施形態において、ソーシャルネットワーキングシステムは、アクションログ107をエントリのデータベースとして維持する。ソーシャルネットワーキングシステム100内でアクションが行われると、そのアクションに関するエントリが、アクションログ107に追加される。一実施形態において、アクションログ107は、アクションログと呼ばれ得る。
【0011】
さらに、ユーザアクションは、ソーシャルネットワーキングシステム100とは別個である外部システム122などの、ソーシャルネットワーキングシステム100の外部のエンティティ内で生じる概念およびアクションに関連付けられてもよい。例えば、アクションロガー102は、ウェブサーバ101から、外部システム122とのユーザの対話を記述するデータを受信することが可能である。この例において、外部システム122は、ソーシャルグラフにおける構造化されたアクションおよびオブジェクトに応じてユーザの対話を報告する。受信される対話は、一実施形態において、グラフ定義モジュール103によって定義されたグラフオブジェクトおよびグラフアクションを含み得る。アクションロガー102は、受信された対話を、そのグラフアクションおよびグラフオブジェクトの定義に応じて解釈する。例えば、アクションロガー102は、ユーザの一意識別子、「観る」と呼ばれるグラフアクション、および「ショー」と呼ばれるグラフオブジェクトを含む対話を受信することが可能である。アクションログ107に、この受信された情報を収める。ユーザが外部システム122と対話するアクションの他の例には、ユーザが、外部システム122もしくは別のエンティティに対する関心を表明すること、ユーザが、外部システム122、もしくは外部システム122内のウェブページ122aについて述べるコメントをソーシャルネットワーキングシステム100に投稿すること、ユーザが、外部システム122に関連付けられたユニフォームリソースロケータ(URL)もしくは他の識別子をソーシャルネットワーキングシステム100に投稿すること、ユーザが、外部システム122に関連付けられたイベントに出席すること、または外部システム122と関係するユーザによる他の任意のアクションが含まれる。このため、アクションログ107は、ソーシャルネットワーキングシステム100のユーザと、ソーシャルネットワーキングシステム100とは別個である外部システム122との間の対話を記述するアクションを含み得る。
【0012】
認可サーバ117は、ソーシャルネットワーキングシステム100のユーザの1以上のプライバシ設定を確実にする。ユーザのプライバシ設定は、ユーザに関連付けられた特定の情報がどのように共有され得るかを決定する。プライバシ設定は、ユーザに関連付けられた特定の情報の指定、およびその情報が共有され得る相手のエンティティまたは複数のエンティティの指定からなる。情報が共有され得る相手のエンティティの例には、その情報にアクセス可能な他のユーザ、アプリケーション、外部システム122、または任意のエンティティが含まれ得る。ユーザによって共有され得る情報は、プロフィール写真などのプロフィール情報、ユーザに関連付けられた電話番号、ユーザのつながり、つながりを追加すること、プロフィール情報を変更することなどの、ユーザによって行われるアクションからなる。
【0013】
プライバシ設定指定は、様々なレベルの粒度において提供され得る。例えば、プライバシ設定は、他のユーザと共有されるべき特定の情報を識別することが可能である。例えば、プライバシ設定は、職場電話番号、またはプロフィール写真、自宅電話番号、およびステータスを含む個人情報などの関連付けられた情報の特定のセットを識別する。代替として、プライバシ設定は、ユーザに関連付けられたすべての情報に適用されてもよい。また、特定の情報にアクセスすることができるエンティティのセットの指定も、様々なレベル
の粒度において指定され得る。情報が共有され得る相手のエンティティの様々なセットには、例えば、ユーザのすべての友達、友達のすべての友達、すべてのアプリケーション、またはすべての外部システム122が含まれ得る。一実施形態は、セットのエンティティの指定が、エンティティの列挙からなることを可能にし、例えば、ユーザが、特定の情報にアクセスすることを許される外部システム122のリストを提供することが可能である。別の実施形態は、その指定が、セットのエンティティ、ならびにその情報にアクセスすることを許されない例外からなることを可能にする。例えば、ユーザは、すべての外部システム122が、ユーザの仕事情報にアクセスすることを許すが、その仕事情報にアクセスすることを許されない外部システム122のリストを指定することが可能である。いくつかの実施形態は、特定の情報にアクセスすることを許されない例外のリストを阻止リストと呼ぶ。ユーザによって指定された阻止リストに属する外部システム122は、プライバシ設定において指定された情報にアクセスすることを阻止される。情報の指定の粒度と、情報が共有される相手のエンティティの指定の粒度の様々な組み合わせが可能であること、すなわち、すべての個人情報が友達と共有され得る一方で、すべての仕事情報が、友達の友達と共有され得ることに留意されたい。
【0014】
認可サーバ117は、ユーザに関連付けられた特定の情報が、ユーザの友達、外部システム122、ならびに/または他のアプリケーションおよびエンティティによってアクセスされ得るか否かを判定するロジックを含む。外部システム122に関連付けられたURLについてのユーザのコメントにアクセスしようと試みる外部システム122は、ユーザの職場電話番号などの、ユーザのよりプライベートで、慎重な扱いを要する情報にアクセスする認可を認可サーバ117から必要とすることも可能である。ユーザのプライバシ設定に基づいて、認可サーバ117は、別のユーザ、外部システム122、アプリケーション、または別のエンティティが、ユーザによって行われたアクションについての情報を含む、ユーザに関連付けられた情報にアクセスすることを許されるか否かを判定する。一実施形態において、認可サーバ117は、ユーザプライバシ設定を使用して、外部システム122に関連付けられたURLについてのユーザのコメントが外部システム122によってアクセスされ得るか否かを判定する。ユーザのプライバシ設定は、他のいずれのユーザ、または他のいずれのエンティティが、ユーザのアクションについてのデータ、またはユーザに関連付けられた他の情報を受信することを許されるかを指定することが可能である。
【0015】
さらに、ソーシャルネットワーキングシステム100は、ユーザが対話することが可能なオブジェクトについてのデータを維持する。このデータを維持するのに、ユーザプロフィールストア110およびつながりストア111が、ソーシャルネットワーキングシステム100によって維持される対応するタイプのオブジェクトのインスタンスを記憶する。各オブジェクトタイプは、そのタイプのオブジェクトに適切な情報を記憶するのに適した情報フィールドを有する。例えば、ユーザプロフィールストア110は、ユーザのプロフィールを記述するのに適したフィールドを有するデータ構造を包含する。特定のタイプの新たなオブジェクトが作成されると、ソーシャルネットワーキングシステム100は、対応するタイプの新たなデータ構造を初期設定し、そのデータ構造に一意オブジェクト識別子を割り当て、さらに必要に応じてそのオブジェクトにデータを追加することを始める。このことが行われ得るのは、例えば、ユーザが、ソーシャルネットワーキングシステム100のユーザとなり、ソーシャルネットワーキングシステム100が、ユーザプロフィールストア110の中でユーザプロフィールの新たなインスタンスを生成し、そのユーザプロフィールに一意識別子を割り当て、さらにそのユーザプロフィールのフィールドにユーザによって供給される情報を収めることを開始するときである。
【0016】
つながりストア111は、他のユーザに対するユーザのつながり、外部システム122に対するつながり、または他のエンティティに対するつながりを記述するのに適したデー
タ構造を含む。また、つながりストア111は、ユーザについての情報に対するアクセスを制約するようにユーザのプライバシ設定と連携して使用され得るつながりタイプをユーザのつながりに関連付けることも可能である。
【0017】
つながりストア111、ユーザプロフィールストア110、およびアクションログ107の中に記憶されたデータは、ソーシャルネットワーキングシステム120が、ノードを使用して様々なオブジェクトを識別し、さらにノードをつなぐエッジを使用して異なるオブジェクトの間の関係を識別するソーシャルグラフを生成することを可能にする。ソーシャルグラフにおける2つのノード間のエッジは、それらのノードのうちの一方によって他方のノードに対してアクションが実行された結果生じ、その2つのノード間の特定の種類のつながりを表す。
【0018】
例えば、第1のユーザが、ソーシャルネットワーキングシステムにおける第2のユーザとのつながりを確立した場合、ユーザプロフィールストア110からの第1のユーザのユーザプロフィールおよび第2のユーザのユーザプロフィールが、ソーシャルグラフにおけるノードの役割を担うことが可能である。つながりストア111によって記憶された第1のユーザと第2のユーザの間のつながりは、第1のユーザに関連付けられたノードと第2のユーザに関連付けられたノードの間のエッジである。この例を続けると、次に、第2のユーザが、ソーシャルネットワーキングシステム100内で第1のユーザにメッセージを送信することが可能であり、この送信することが、アクションロガー102によって識別され、さらにアクションログ107の中に記憶される。メッセージを送信するというこの記憶されたアクションが、第1のユーザおよび第2のユーザを表すソーシャルグラフにおける2つのノード間の別のエッジである。さらに、このメッセージ自体、アクションログ107から識別されることが可能であり、さらに第1のユーザおよび第2のユーザを表すノードにつながれた別のノードとしてソーシャルグラフに含められることが可能である。
【0019】
別の例において、第1のユーザが、ソーシャルネットワーキングシステム100によって維持される画像の中で(または、代替として、ソーシャルネットワーキングシステム100の外部の別のシステムによって維持される画像の中で)第2のユーザにタグを付けることが可能である。この画像は、それ自体、ソーシャルネットワーキングシステム100におけるノードとして表され得る。このタグを付けるアクションは、第1のユーザと第2のユーザの間でエッジを作成することが可能であるとともに、ユーザのそれぞれと、画像との間でエッジを作成することが可能であり、このエッジも、ソーシャルグラフにおけるノードである。さらに別の例において、ユーザが、イベントに出席することを確認した場合、そのユーザおよびそのイベントは、ユーザプロフィールストア110から得られるノードであり、ここで、そのイベントへの出席は、アクションログ107から取り出され得るノード間のエッジである。ソーシャルグラフを生成し、維持することによって、ソーシャルネットワーキングシステム100は、異なる多くのタイプのオブジェクト、ならびにそれらのオブジェクトの間の対話およびつながりを記述するデータを含み、社内的(ソーシャル)に関連した豊富な情報源を提供することになる。
【0020】
ノードと、エッジとを含むソーシャルグラフのこの理解を基礎として、ソーシャルグラフは、サードパーティ開発者および外部システム122が、ソーシャルグラフに公開されるべきオブジェクトおよびアクションを定義することを可能にすることによって、「開かれる」ことが可能である。前述したように、グラフ定義モジュール103が、グラフアクションタイプストア112およびグラフオブジェクトタイプストア114にリンクされ得る。グラフ定義モジュール103は、現実世界の対話に倣ったアクションおよびオブジェクトの作成を可能にする。「観られる」などのアクションは、そのアクションが行われる場所、そのアクションに参加するユーザまたは複数のユーザ、およびユーザがどれだけの時間、そのアクションを実行したかを記録する所要時間フィールドなどの、様々なプロパ
ティを含み得る。その結果生じるグラフアクションタイプは、一実施形態において、グラフアクションタイプストア112の中に記憶され得る。「映画」、「TVショー」、「ジャンル」、および「局」などのオブジェクトが、視覚オブジェクトタイプ、聴覚オブジェクトタイプ、音楽オブジェクトタイプ、パフォーマンスアートオブジェクトタイプなどの、オブジェクトプロパティを有するようにグラフオブジェクトタイプストア114を使用して定義され得る。これらのグラフオブジェクトタイプは、グラフオブジェクトタイプストア114の中に記憶される。
【0021】
一実施形態において、グラフ定義モジュール103は、いくつかのオブジェクトに対して実行されるべきいくつかのアクションを定義する。例えば、ソーシャルネットワーキングシステム100の管理者は、「観る」アクションが、「映画」オブジェクト、「ショー」オブジェクト、「ジャンル」オブジェクト、および「局」オブジェクトなどの視覚オブジェクトタイプに対してだけ実行されるべきことを定義することが可能である。このため、ユーザが「聞く」というアクションを実行することができる「スピーチ」オブジェクトを定義することを所望するサードパーティ開発者が、サードパーティ開発者の「スピーチ」オブジェクトを聴覚オブジェクトタイプとして定義して、「聞く」アクションがそのオブジェクトに対して実行され得るようにすることが可能である。
【0022】
別の実施形態において、グラフ定義モジュール103が、任意のオブジェクトに対してアクションが実行されることを可能にして、ウィジェットによって解釈されるマークアップ言語文書114上のアクションおよびオブジェクトを利用するサードパーティ開発者にセマンティクスを任せる。このため、この実施形態において、サードパーティ開発者は、ソーシャルネットワーキングシステム100のユーザとVoIPアプリケーションのユーザとの間のVoIPアプリケーション電話通話における「ユーザ」オブジェクトに対して「聞く」アクションを利用することができる。VoIPアプリケーションのユーザがソーシャルネットワーキングシステム100のユーザではない場合、外部システム122から受信された情報だけが、ソーシャルネットワーキングシステム100におけるニュースフィードまたはストリームにおいて公開されるようにアクションログ107において使用されることが可能である。このため、外部ユーザ対話をキャプチャして、外部ユーザ対話をソーシャルネットワーキングシステム100に組み込むために文脈自由(コンテキストフリー)文法が利用され得る。
【0023】
グラフパブリッシャAPI108は、一実施形態において、受け取られたアクションおよびオブジェクトを、ソーシャルネットワーキングシステム100におけるニュースフィードストーリ、またはコンテンツアイテムのストリームの中の他のコンテンツアイテムになるように組み立てる。別の実施形態において、グラフパブリッシャAPI108は、外部システム122からのAPI呼び出しに応答して、外部システム122上のユーザ対話を取り出す。グラフパブリッシャAPI108は、アクションおよびオブジェクトの定義を利用して、データをソーシャルネットワーキングシステム100のソーシャルグラフにどのように公開すべきかを決定する。一実施形態において、マークアップ言語文書114は、外部システム122上で行われたすべてのアクションを、ストリームにおけるニュースフィードストーリまたはコンテンツアイテムとして公開させるソーシャルネットワーキングシステム100に対する命令を含む。別の実施形態において、マークアップ言語文書114は、外部システム122上で行われたアクションをバッチで、または集約して公開させるソーシャルネットワーキングシステム100に対する命令を含む。ソーシャルネットワーキングシステム100は、外部システム122に事前の認可が与えられているために、これらのコンテンツアイテムを、ソーシャルネットワーキングシステム100上のユーザのストリームに受動的に公開してもよいことに留意されたい。コンテンツアイテムをストリームに投稿するためのそのような認可が、ユーザによって与えられていない場合、認可を求めるダイアログボックスがユーザを促す。
【0024】
グラフ変換モジュール105は、ソーシャルネットワーキングシステム100が、トレーニング中に走ったキロメートル(マイル)数、または今週までに最も聴かれたアーティストを示すアプリケーションなどの、外部システム122上で生成された構造化されたオブジェクトおよびアクションに基づいて、文を動的に形成することを可能にする。これらのオブジェクト、例えば、アーティストオブジェクトおよびトレーニングオブジェクトについてのメタデータが、一実施形態において、グラフコンテンツアイテムランキングモジュール104によって、これらの外部ユーザ対話から生成されたコンテンツアイテムのランキングを行うのに利用されることが可能である。これらのオブジェクトについてのメタデータは、ニュースフィードストリームに公開されること、ユーザのプロフィールに追加されること、またはソーシャルネットワーキングシステム100とのインタフェースとなる外部システム122上のプラグイン(例えば、iframe)を介して表示されることが可能である。ソーシャルネットワーキングシステム100の別々のモジュールが、アプリケーションおよび/または外部システム122に関する評判スコアを算出して、スパム、または不要なアプリケーションを識別することが可能である。スパムである蓋然性を示すアプリケーションの評判スコアが、グラフコンテンツアイテムランキングモジュール104によって、アプリケーションによって生成されたコンテンツアイテムに関するランキングスコアを算出する際に利用される。評判スコアは、ヒューリスティクス分析から集められたそのアプリケーションの挙動、そのアプリケーションがスパムである、煩わしい、または不快であるというユーザからのレポート、およびそのアプリケーションがスパムであることを示す要注意リストを含め、いくつかの要因から算出され得る。
【0025】
グラフコンテンツアイテムランキングスコアに適用され得る別の全般的な要因は、そのコンテンツアイテムを生成するアプリケーションの全体的な品質である。アプリケーションの品質は、別々のモジュールを介して判定されることが可能であり、アプリケーションの品質を判断する際に考慮される要因には、そのアプリケーションに対するユーザ関与、ソーシャルネットワーキングシステム100のすべてのユーザの間でのそのアプリケーションの人気度、ソーシャルネットワーキングシステム100によって観察されるアプリケーションの挙動の整合性、そのアプリケーションの作成者の評判、ソーシャルネットワーキングシステム100のユーザおよび管理者によるそのアプリケーションの平均評価が含まれ得る。一実施形態において、アプリケーションの全体的な品質は、アプリケーション品質スコアとして表されることが可能であり、さらにアプリケーション品質スコアは、閲覧するユーザに表示するためにコンテンツアイテムのランキングを行う際の要因とされる。
【0026】
また、ユーザ特有の要因は、グラフコンテンツアイテムのランキングに適用されることも可能である。これらのユーザ特有の要因には、閲覧するユーザにつながった他のユーザに対する重み、および閲覧するユーザによって選好されるアプリケーションおよび関心に対する重みが含まれる。例えば、閲覧するユーザは、ソーシャルネットワーキングシステム130上の他のユーザに対して1000を超えるつながりを有することが可能であるが、ユーザのサブセットによって生成されるコンテンツアイテムの範囲内で実現されるリンクを共有すること、そのようなリンクにコメントすること、そのようなリンクに賛同を表明すること、およびそのようなリンクを選択することを介して、日常的にそれらのユーザのうちの20人だけとしか対話しないことが可能である。このため、そのサブセットの中のユーザからのコンテンツアイテムが、グラフコンテンツアイテムランキングモジュール104によって、より高くランキングされることが可能である。さらに、観察されるクリックスルー率、ユーザが、そのコンテンツアイテムを生成するアプリケーションをインストールしたか否か、そのアプリケーションと対話して以来、経過した時間、およびそのアプリケーションとの対話の回数から判定された、閲覧するユーザによって選好されるアプリケーションによって生成されたコンテンツアイテムが、グラフコンテンツアイテムラン
キングモジュール104によって、より高くランキングされることも可能である。アプリケーション、関心、およびその他の概念に関する閲覧するユーザの選好は、ユーザプロフィールストア110の中のその閲覧するユーザに関連付けられたユーザプロフィールオブジェクトの中に親和性スコアとして記憶されることが可能である。
【0027】
例として、閲覧するユーザが、そのユーザに関連付けられたユーザプロフィールオブジェクトの中のレディガガに関する親和性スコアによって示されるように、レディガガに非常に関心がある場合がある。親和性スコアは、ユーザのプロフィールページ上のユーザによって明記された関心、またはソーシャルネットワーキングシステム100上、および外部システム122上のユーザのアクション、およびユーザのつながりによって暗示される関心に基づいて、ソーシャルネットワーキングシステム100の様々な関心、ノード、およびユーザに関して別々のモジュールによって計算され得る。一実施形態において、レディガガに関するアーティストオブジェクトが、閲覧するユーザのユーザプロフィールオブジェクトに高い親和性スコアで関連付けられる。レディガガに関連付けられたコンテンツアイテムは、外部システム122上に生成される。
【0028】
グラフコンテンツアイテムランキングモジュール104が、他のオブジェクトとの過去の対話、閲覧するユーザの表明された関心、および閲覧するユーザにつながった他のユーザによる他のオブジェクトとの過去の対話に基づいて、閲覧するユーザの関心対象であり得るオブジェクトを強調表示する推奨エンジンを含むことが可能である。オブジェクト−オブジェクト間の類似性分析が、推奨エンジンによって非同期で判定されることが可能である。さらに、一実施形態において、推奨エンジンが、いずれのオブジェクトタイプがユーザに表示されたかのログ記録をとることが可能であり、さらに、ユーザに提示されるオブジェクトタイプを多様化しようとして、最近表示されていないオブジェクトタイプを推奨することも可能である。推奨は、ランキングスコアを指数的に、直線的に、または対数的に増加させることなどによって、グラフコンテンツアイテムランキングモジュール104によって生成されるランキングスコアに様々な強度で影響を与えることが可能である。一実施形態において、オブジェクト所有者、ブランド所有者、または他のサードパーティが、ソーシャルネットワーキングシステムのユーザインタフェースを介してランキングスコアの上昇を購入することが可能である。例えば、ソーシャルネットワーキングシステムのユーザによって実行されたグラフアクションインスタンスとしてソーシャルネットワーキングシステムに通信された電子小売店上の書籍の購入は、その書籍の発行元が、ソーシャルネットワーキングシステムの閲覧するユーザに対する推奨内でその書籍のプレミアム配置を購入した場合、そのユーザにつながった閲覧するユーザに対する推奨のランキングを上昇させることが可能である。
【0029】
グラフデータは、グラフデータストア113の中に記憶され、インデックスを付けられることが可能である。グラフデータストア113は、外部システム122から受信されたグラフデータを記述するのに適したデータ構造を含む。一実施形態において、ユーザが、グラフデータを含むストーリを他のユーザと共有すること、ユーザが、ソーシャルネットワーキングシステム100上のストーリのユーザのニュースフィードストリーム内で共有された曲を再生すること、ユーザが、ソーシャルネットワーキングシステム100上のアプリケーション内から製品を購入すること、およびユーザが、ソーシャルネットワーキングシステム100の他のユーザからのメッセージの中で共有された再生リストからのビデオを観ることなどのグラフデータが、ソーシャルネットワーキングシステム100内から受信されることが可能である。グラフデータは、カスタムグラフアクション、アクションを行う者(カスタムグラフアクションを実行するユーザ)、カスタムグラフオブジェクト、ならびにソーシャルネットワーキングシステム100の外部のエンティティによって定義されているカスタムグラフアクションおよびカスタムグラフオブジェクトのプロパティを含み得る。
【0030】
グラフデータが受信されると、ソーシャルネットワーキングシステム100は、グラフデータストア113の中でそのグラフデータを検索することが可能であり、さらに、必要に応じて、オブジェクトにデータを追加することが可能である。このことは、例えば、外部システム122上で以前に観た番組またはショーをユーザが観ると、行われることが可能である。この事例において、そのショーオブジェクトに対応するグラフデータは、その新たな観るアクションを反映するように変更されることが可能である。グラフ統合モジュール116は、グラフデータストア113と対話して、その新たな観るアクションを反映するユーザインタフェースを、ソーシャルネットワーキングシステム100上のユーザのユーザプロフィールページ上で提供することが可能である。グラフデータは、スポティファイ(Spotify)、iTunes、ロヴィ(Rovi)、MSOからの独自のEPGデータ、およびRDIOなどの、複数のドメインからの類似したオブジェクトについて収集され得るため、仮想オブジェクトが、ソーシャルネットワーキングシステム100によって作成され、グラフデータストア113の中に記憶されることが可能である。観るアクションインスタンスは、ショーのタイトル、俳優、製作者、および所要時間によりソーシャルネットワーキングシステム100によって識別される、同一のTVショーに対して実行された複数のドメインから受信されるので、グラフデータストア113にアクセスが行われて、それらの観るアクションインスタンスに関連付けられたショーオブジェクトを表す仮想オブジェクトが識別される。次に、それらの観るアクションインスタンスは、ソーシャルネットワーキングシステム100による判定により、類似するショーオブジェクトを表す、ソーシャルネットワーキングシステム100によって作成された仮想オブジェクトに関連付けられる。このようにして、ソーシャルネットワーキングシステム100は、そのショーがiTunes上で観られたのか、ネットフリックス(Netflix)上で観られたのか、フール(Hulu)上で観られたのか、グーグル(Google)TV上で観られたのか、コムキャスト(Comcast)上で観られたのか、AT&T Uバース(AT&T U−Verse)上で観られたのか、ディッシュネットワーク(Dish Network)上で観られたのか、タイムワーナケーブル(Time Warner Cable)上で観られたのか、または他の任意のビデオコンテンツプロバイダ上で観られたのかにかかわらず、「ザオフィス(The Office)」などの特定のショーに関する観るアクションおよび仮想オブジェクトを含むニュースフィードストーリを報告することが可能である。一実施形態において、ニュースフィードストーリは、ショーが観られたドメイン、またはビデオサービスを含むことが可能であるが、ユーザが、ソーシャルネットワーキングシステムのそのニュースフィードストーリ内から異なるドメイン上、または異なるコンテンツ配信サービスにおいてそのショーにアクセスすることを可能にし得る。別の実施形態において、ユーザは、カスタムグラフアクションインスタンスに、そのグラフアクションがどこで実行されたかを示す地理的位置を追加することが可能である。仮想オブジェクトは、ニュースストーリ、商品、ビデオ、コンサート、舞台ショー、曲などの、他のタイプのカスタムグラフオブジェクトに関してソーシャルネットワーキングシステム100によって生成されてもよい。
【0031】
グラフ統合モジュール116は、グラフオブジェクトタイプストア114およびグラフアクションタイプストア112に記憶された、グラフ定義モジュール103によって定義されたアクションタイプおよびオブジェクトタイプを利用して、外部システム122上のユーザ対話をソーシャルネットワーキングシステム100と統合する。例えば、ストリーミングビデオサービスは、ユーザが、ウェブサイトまたはモバイルアプリケーションなどの、外部システム122上のコンテンツを観ることを可能にすることができる。一実施形態において、ソーシャルネットワーキングシステム100は、ユーザインタフェース上のボタンおよびリンクを、ストリーミング音楽サービスをホストする外部システム122上の組み込まれたウェブサーバに送信される要求に関連付けることが可能である。それらの要求は、外部サーバ上でホストされるビデオをキューに入れることなどの、要求されたア
クションのトリガとなる。このことは、ユーザが、ハイパーリンクを介してソーシャルネットワーキングシステム100上でTVショーおよび映画をユーザの友達と共有することを可能にする。リンクを選択することにより、この事例では、ネットワーク121を介してソーシャルネットワーキングシステム100にアクセスするユーザデバイス123を介してビデオまたはショーをキューに入れることである、アクションを実行する要求が、外部システム122に対して生成される。
【0032】
図2は、ソーシャルTV視聴を可能にする例示的なソーシャルネットワーキングシステムのための例示的なネットワーク環境を示す。ソーシャルネットワーキングシステム100は、インターネット121を介して、接続された複数のデバイス204に接続され得る。接続されたデバイス204には、限定するものではないが、ローカルインターネットサービスプロバイダ(ISP)を介してネットワーク121に接続されるインターネットに対応したテレビ204a、無線セルラデータネットワークなどの無線接続を介してネットワーク121に接続されるモバイルデバイス204b、またはSTBもしくはゲートウェイデバイス204cを介してインターネット(ネットワーク121)に接続されるTV204dが含まれ得る。STB/ゲートウェイ104cは、コンテンツを配信する、またはローカルエリアネットワーク(LAN)に接続するためのネットワークインタフェースカード(NIC)を有する任意のハードウェアまたはソフトウェアであり得る。例えば、STB/ゲートウェイ204cは、コムキャスト(Comcast)、タイムワーナ(Time Warner)、AT&T Uバース(AT&T U−Verse)、またはディッシュネットワーク(Dish Network)などのMSOによって提供されるケーブルボックスであり得る。そのような例において、STBは、MSO202からコンテンツを受信することが可能である。別の例として、STB/ゲートウェイ204cは、OTTプロバイダ203などのサードパーティインターネットサイトまたはサードパーティインターネットサービスからビデオをストリーミングするデバイスであり得る。そのようなゲートウェイ204cの例には、限定するものではないが、ロク(Roku)、ボクシ(Boxee)、アップル(Apple)TV、およびグーグル(Google)TVが含まれており、ユーザが、ネットフリックス(NetFlix)、フール(Hulu)、アマゾンビデオ(Amazon Video)、ユーチューブ(YouTube(登録商標))などのOTTプロバイダ203からのコンテンツにアクセスすることを可能にする。
【0033】
特定の実施形態において、接続されたデバイス204は、ソーシャルネットワーキングシステム100からソーシャルデータを受信するに際し、またはソーシャルネットワーキングシステム100にソーシャルデータを送信するに際し、MSO202またはOTTプロバイダ203からコンテンツを受信する。例えば、いずれかのサービスにおいて特定のTVショーまたは映画を観ているユーザは、ユーザが現在、番組を視聴していることを、ユーザの友達と共有することを選択することが可能である。逆に、MSO202のEPG、またはOTTプロバイダ203のコンテンツナビゲータをブラウズしているユーザに、ユーザの友達がソーシャルネットワーキングシステム100上で観た、現在観ている、または観る予定であるコンテンツを含むソーシャルデータが提示されてもよい。このため、接続されたデバイス204に対してユーザのソーシャルネットワーキングIDを認証するauthメッセージ206をソーシャルネットワーキングシステム100と交換した後、接続されたデバイス204は、ユーザの友達によってソーシャルネットワーク上で消費されている、または観られているコンテンツを識別する発見メッセージ208を受信し、さらにユーザが何を観た、もしくは「消費」したか、何を観ている、もしくは「消費」しているか、または何を観る予定である、もしくは「消費」する予定であるかをソーシャルネットワーキングシステム100に知らせる共有メッセージ207を送信することが可能である。図2は、これらのメッセージを、ソーシャルネットワーキングシステム100と、接続されたデバイス204の間で直接に伝送されているものとして示すものの、特定の実施形態において、認可メッセージ206、共有メッセージ207、および発見メッセージ
208は、コンテンツにアクセスが行われているプロバイダ、すなわち、MSO202とOTTプロバイダ203の間で交換されてもよい。本開示は、閲覧するデバイス204からソーシャルネットワーキングシステム100にメッセージをルーティングする任意の適切な手段を企図する。
【0034】
ますます稀になっているものの、ソーシャルネットワーキングシステムの特定のユーザが、ユーザのTVまたは閲覧するデバイスをソーシャルネットワーキングシステム100にリンクする手段を有しないシナリオが存在する。接続されていないデバイス205は、インターネット/ネットワーク121に接続する手段を有しない。例えば、ユーザが、ローカルISPを有さず、MSOからのTVサービスだけを有する可能性がある。別の例として、ユーザが、MSOからのケーブルサービスとローカルISPからのインターネットアクセスをともに有し得るが、ユーザのSTB204cが、NICを含まない可能性がある。そのような構成において、MSO202は、認可メッセージ、共有メッセージ、および発見メッセージをソーシャルネットワーキングシステム100に通信し、接続されていないデバイス205は、STB204cを介して、MSO202とだけ通信する。
【0035】
特定の実施形態において、コンテンツは、コンテンツ識別子およびメタデータのタグを付けられたユーザデバイス204および205に配信されることが可能である。例えば、コムキャスト社(Comcast)が、番組名、放送日、俳優、製作者、ディレクタなどをリストアップするコムキャスト社(Comcast)独自のEPGデータフォーマットを利用することが可能である。特定の実施形態において、ロヴィコーポレーション社(Rovi Corporation)などのコンテンツプロバイダ202および203は、コンテンツデータベース201からコンテンツ識別子およびメタデータを得ることが可能である。それぞれの特定のコンテンツは、デバイス204から、または特定の実施形態において、コンテンツプロバイダ202および203を介して、グラフオブジェクトおよびグラフアクションを含むグラフデータとして送信され得る。前述したように、ソーシャルネットワーキングシステム100は、コンテンツオブジェクトについての様々な属性、例えば、名前、俳優、所要時間、放送日などを比較することによって、グラフデータストア113の中で同一のグラフオブジェクトに関するグラフデータの重複を解消することが可能である。このため、ソーシャルネットワーキングシステム100は、ソーシャルネットワーキングシステム100は、任意の特定のユーザが、評論家から高く評価される長編映画、「ザマリーン」を観たという、フール社(Hulu)から送信されたグラフデータを、コンテンツメタデータの送信元およびフォーマットにかかわらず、コムキャスト社(Comcast)デジタルケーブル上で「ザマリーン」を現在観ているユーザと同一のグラフオブジェクトに帰属させることができる。
【0036】
図3は、観られるビデオコンテンツの共有のサイクルを概念的に示す。認可段階301で、特定のユーザ300は、ユーザ300がコンテンツをブラウズする、または閲覧することを所望するデバイス204または205に対してユーザ300のソーシャルネットワーキングユーザ識別子の認証をする。前述したように、デバイス204/205は、OTTプロバイダ203のウェブサイトを閲覧するブラウザアプリケーション124を含むパーソナルコンピューティングデバイス、テレビ、またはコンテンツプロバイダに関する専用のアプリケーションを実行しているモバイルデバイスを含め、ユーザがコンテンツを閲覧することができる任意のデバイスであり得る。特定の実施形態において、ユーザは、アカウントをユーザのソーシャルネットワーキング識別子によって複数の外部サービス122に関連付けできるので、外部サービス122は、ソーシャルネットワーキングシステム100にソーシャルグラフについてクエリを行うか、またはグラフデータを公開することを許すことが可能である。例えば、ユーザ300は、ユーザ300のフール社(Hulu)のアカウント、ネットフリックス社(Netflix)のアカウント、およびATT Uバース(ATT U−Verse)のアカウントを、ユーザ300のソーシャルネット
ワーキングユーザ識別子およびパスワードに関連付けて、その結果、複数のコンテンツ配信サービスに亘るすべてのコンテンツをソーシャルネットワークと共有し、したがって、ソーシャルネットワーク上のユーザ300の友達と共有することが可能である。
【0037】
消費−共有段階302で、ユーザ300は、ビデオコンテンツを観ること、またはキューに入れることによってコンテンツを消費し、その消費したストーリをソーシャルネットワーキングシステム100と共有する。特定の実施形態において、ユーザ300は、ユーザインタフェース上の共有ボタンを能動的に選択することによって、ユーザが消費したコンテンツのストーリをソーシャルネットワーキングシステム100と明示的に共有することが可能である。そのような実施形態について、図7を参照してさらに詳細に説明される。特定の実施形態において、共有することは、ユーザ選択なしに受動的に行われる。そのような実施形態について、図10を参照してさらに詳細に説明される。ユーザ300によるコンテンツ消費のストーリがソーシャルネットワーキングシステム100に送信されると、ユーザ300の友達300a〜300eが、共有ストーリを閲覧して、その結果、消費すべき新たなコンテンツを発見することが可能である。特定の実施形態において、ユーザ300は、ユーザ300の友達300a〜300eのいずれがユーザ300の消費ストーリを閲覧することができるかを指定することが可能である。特定の実施形態において、ユーザ300は、能動的に共有される消費ストーリ、および受動的に共有される消費ストーリに関して様々なプライバシ設定を有することが可能である。発見段階303で、ユーザ300は、ユーザ300の友達300a〜300eによって公開された消費ストーリを閲覧することが可能である。前述したように、ユーザの友達300a〜300eによって公開された消費ストーリをユーザ300が閲覧することができることは、個別の各ユーザ300a〜300eのプライバシ設定に依存する。このため、図3の概念フレームワークは、ユーザが、絶えず、ユーザの友達によって共有される新たなコンテンツを発見しており、コンテンツを消費しており、さらにユーザの友達とコンテンツを共有しているサイクルを表す。したがって、ソーシャルネットワーキングシステム100上のユーザ体験とソーシャルネットワーキングシステム100を離れてのユーザ体験がともに、向上される。
【0038】
図4は、外部システム122から受信されたグラフデータからのコンテンツ識別子を、共有するための単一のコンテンツ識別子に割り当てるための方法を示す。ステップ401で、ソーシャルネットワーキングシステム100が、MSO202またはOTTプロバイダ203などの外部システム122からグラフデータを受信する。代替として、ソーシャルネットワーキングシステム100は、接続されたデバイス204から直接にグラフデータを受信してもよい。特定の実施形態において、グラフデータは、1以上の属性を有するコンテンツオブジェクト、ならびに「観ている」、「観た」、「スケジュールした」、「いいね!ボタンを押した」、または「共有する」などのグラフアクションを有することが可能である。特定の実施形態において、各コンテンツオブジェクトは、そのコンテンツオブジェクトに関する複数のオブジェクト属性またはメタデータを有することも可能である。例えば、コムキャスト社(Comcast)は、コンテンツオブジェクトのタイトル、日付、俳優、アメリカ映画協会(MPAA:Motion Picture Association of America)レーティング、および所要時間を含むコムキャスト社(Comcast)独自のデータフォーマットで、コンテンツ識別子を含めて、消費ストーリをグラフデータとしてソーシャルネットワーキングシステム100に送信することが可能である。
【0039】
ステップ402で、ソーシャルネットワーキングシステム100は、同一のタイトルを有するグラフオブジェクトを求めてグラフデータストア113を検索することが可能である。特定の実施形態において、ソーシャルネットワーキングシステム100は、所定の割合の語または文字が同一である場合、2つのタイトルが一致するものと見なすことによって、フォーマット設定の特定の違いを補償することが可能である。例えば、ソーシャルネ
ットワーキングシステム100は、「ザオフィス(The Office)」と「オフィス、ザ(Office、The)」を、順序の違いにもかかわらず、一致していると見なすことが可能である。
【0040】
ソーシャルネットワーキングシステム100は、受信されたグラフオブジェクトが、グラフデータストア113の中に既存のコンテンツ識別子を有すると判定した場合、ソーシャルネットワーキングシステム100は、ステップ403で、受信されたグラフオブジェクトの重複を解消することにとりかかる。前述したように、ソーシャルネットワーキングシステム100は、さらなる検査を実行して、外部システム122から受信されたコンテンツオブジェクトが、グラフデータストア113の中に記憶されたコンテンツ識別子と同一のコンテンツオブジェクトであると判定することが可能である。例えば、ソーシャルネットワーキングシステムは、外部システム122から受信された俳優名、上映日、MPAAレーティング、所要時間、および他のメタデータを、グラフデータストア113の中のコンテンツ識別子に関するメタデータまたはオブジェクト属性と比較することが可能である。特定の実施形態において、特定の割合で一致するメタデータは、それらのオブジェクトが同一であることを示す。特定の実施形態において、特定のメタデータフィールドには、より大きな重みが付けられる、またはより大きい重要度が与えられることが可能である。例えば、1年当たり文字通り数千の番組が放送されるため、放送日には、例えば、主演俳優と比べて、非常に小さい重みが付けられることが可能である。特定の実施形態において、ソーシャルネットワーキングシステム100は、1以上のコンテンツデータベース201に対するアクセスを有することが可能であり、さらにコンテンツデータベース201から引き出された(プルされた)属性でグラフデータストア113を構築することが可能である。本開示は、受信されたコンテンツオブジェクト、およびグラフデータストア113の中のコンテンツ識別子の重複を解消する任意の適切な方法を企図する。
【0041】
ステップ404で、ソーシャルネットワーキングシステムは、受信されたコンテンツオブジェクトがグラフデータストア113の中のいずれの既存のコンテンツ識別子とも一致しないと判定した場合、ソーシャルネットワーキングシステム100は、その受信されたコンテンツオブジェクトに関して新たなグラフオブジェクトを作成する。特定の実施形態において、作成されるグラフオブジェクトは、仮想グラフオブジェクトであり得る。特定の実施形態において、外部システム122から受信されたメタデータを、作成されたグラフオブジェクトのオブジェクト属性に収めるのに使用され得る。特定の実施形態において、メタデータを正しいオブジェクト属性に収めるために、ソーシャルネットワーキングシステムが、特定の受信されたメタデータを、グラフデータストア113の中のすべてのコンテンツオブジェクト属性と比較することが可能である。例えば、グラフデータが、「ジョージクルーニ」というメタデータを伴って受信された場合、ソーシャルネットワーキングシステム100は、グラフデータストア113の中のすべてのコンテンツオブジェクト属性に亘って「ジョージクルーニ」という文字列を検索し、マッチが生じた新たに作成された仮想オブジェクトのオブジェクト属性に、この例では、「俳優」オブジェクト属性にそのメタデータを割り当てることが可能である。本開示は、新たなグラフオブジェクトを作成し、その新たに作成されたオブジェクトのオブジェクト属性に受信されたメタデータを収める任意の適切な方法を企図する。
【0042】
ステップ405で、ソーシャルネットワーキングシステムは、受信されたグラフデータの中に包含されるユーザIDとグラフオブジェクト(ステップ404で作成された新たな仮想グラフオブジェクト、またはステップ403で識別されたコンテンツ識別子)との間にエッジを描く。前述したように、グラフアクションは、任意のタイプであり得るとともに、サードパーティによって定義され得る。特定の実施形態において、ソーシャルネットワーキングシステム100は、すべてのソーシャルTV APIユーザの間で基準となり得るソーシャルTVアクションのセットを定義することが可能である。特定の実施形態に
おいて、ソーシャルネットワーキングシステムは、グラフアクションの同様の重複の解消を実行して、「フールプラス(Hulu Plus)で観た」などの、フール社(Hulu)から受信されたグラフアクションが、「観た」という汎用のグラフアクションに割り当てられるようにすることが可能である。本開示は、ユーザノードとオブジェクトの間のグラフアクションを作成し、描く任意の適切な方法を企図する。
【0043】
ステップ406で、ソーシャルネットワーキングシステム100は、ユーザの消費のストーリを公開する。ストーリは、異なるいくつかのチャネルを介して公開され得る。特定の実施形態において、このストーリは、ユーザのウォール上に出現する。特定の実施形態において、このストーリは、ユーザの友達のニュースフィードにおいて出現する。特定の実施形態において、このストーリは、外部システム122に公開される。特定の実施形態において、このストーリは、ユーザのソーシャルネットワーキングプロフィールページの一部分に組み込まれ得るソーシャルプラグインに公開される。例えば、ユーザが、ユーザのプロフィールページの一部分の上に「現在、観ている」ウィジェットを含めることを所望することが可能である。本開示は、ソーシャルネットワーキングシステムによって受信される消費ストーリを公開する任意の適切な方法を企図する。
【0044】
図5は、複数の配信チャネルに亘って消費ストーリを公開することを概念的に示す。図5で、ユーザ300は、ユーザが現在、映画、「ポイントブレイク(Point Break)」を観ているという発言を、ソーシャルネットワーキングシステム100(および、その結果、ユーザ300の友達)と共有する。前述したように、ソーシャルネットワーキングシステム100は、ユーザ300が「ポイントブレイク(Point Break)」を観ているコンテンツサービスプロバイダから受信されたグラフデータを処理し、そのグラフデータを処理して、そのグラフデータを単一のコンテンツ識別子に割り当てる。その結果生じるストーリは、ウェブサイト501、アプリケーション502、ソーシャルネットワーキングシステム自体501、およびソーシャルプラグイン504などの、いくつかのチャネルに公開され得る。
【0045】
特定の実施形態において、消費ストーリは、配信サービス501〜504に「プッシュ」されるのではなく、サービスが、ソーシャルグラフについてクエリを行う要求をソーシャルネットワーキングシステム100に対して発行する。例えば、ユーザが、ユーザのソーシャルネットワーキングIDでクリッカ(Clicker)ウェブサイト501にログインすると、ユーザデバイスに配信されるマークアップ言語に組み込まれたプラグインのスクリプトが、ユーザのソーシャルネットワーキング識別子を包含するソーシャルグラフにクエリを発行することが可能である。これに応答して、ソーシャルネットワーキングシステム100が、ユーザの友達のすべての消費ストーリを返すことが可能であり、さらにプラグインは、そのページの所定の部分でそれらの消費ストーリを表示することが可能である。特定の実施形態において、この例では、クリッカ(Clicker)である外部システム122が、ソーシャルネットワーキングシステム100から受信されたソーシャルグラフコンテンツ識別子を、外部システム自らのウェブサイト上のコンテンツに割り当てる役割を担う。
【0046】
別の例として、ユーザが、ユーザのモバイルデバイス(アイフォン(iPhone(登録商標))またはアイパッド(iPad(登録商標))など)上の502の、例えば、NBC.comモバイルアプリケーションなどのモバイルアプリケーションにアクセスするとき、そのアプリケーションは、アカウントがそのモバイルデバイスに関連付けられた友達の消費ストーリに関するソーシャルグラフに対するクエリを発行することが可能である。特定の実施形態において、ソーシャルネットワーキングシステム100は、ソーシャルグラフコンテンツ識別子から、外部サービス122によって使用されるコンテンツ識別子に割り当てる役割を担う。例えば、ユーザは、ユーザのAT&T Uバース(AT&T
U−Verse)サービスにおいてユーザのEPGにアクセスした場合、ソーシャルネットワーキングシステムは、公開される消費ストーリを電子番組案内の番組に関連付けるデータを返すことが可能である。
【0047】
図6Aは、例示的な電子番組案内(EPG)600を示す。EPG600は、特定の曜日に関する午後7時00分〜8時00のブロックからのチャネル1002〜チャネル1102に関する番組スケジュールを含む。EPG600は、様々なチャネルに関してスケジュールにアクセスするように垂直にスクロールされることも、様々な時刻に関してスケジュールにアクセスするように水平にスクロールされることも可能である。また、EPG600は、様々な日付に関してスケジュールを閲覧する、ユーザが選択可能なオプションを含むことも可能である。EPG600は、ソーシャルネットワーキングシステム100から受信されたソーシャルデータによって強化され得る。例えば、ユーザが、ユーザのソーシャルネットワーキングIDを、この例では、ユーザのケーブルアカウントにアクセスするSTBである、ユーザの閲覧デバイスに関連付けた後、EPG600は、特定のショーの下にアイコンを含めて、そのショーと関係する1以上の消費ストーリの存在を示すことが可能である。この1以上のアイコンは、その消費ストーリの概要を含むことも可能である。例えば、チャネル1002上で午後7時00分に再生される「ハウス(House)」というショーの下のアイコンは、ユーザの友達のうちの1人、「マーカススミス(Marcus Smith)」が、現在、その番組を観ていることを提示する。別の例として、1004上の午後7時00分の「ザシングオフ(The Sing Off)」というショーの下のアイコンは、ユーザの友達のうちの3人がそのショーを記録していることを示す。別の例として、EPG600におけるソーシャルデータは、ユーザが、「ザバンパイアダイアリーズ(The Vampire Diaries)」に関するEPGエントリなどの特定のショーを記録するようにスケジュールされていることを示すことも可能である。さらに、EPG600は、各ショーに関して、ユーザの友達が、そのショーに対して、それ以外で親和性を表明している、またはそのショーにつながっていることを示す標識を含み得る。例えば、EPG600は、ユーザの友達が特定のショーに対して「いいね!ボタンを押した」ことを示す、いくつかの「サムズアップ」アイコンを含む。特定の実施形態において、これらの「サムズアップ」アイコンは、「いいね!」ボタンを押されたストーリの概要を含むことも可能である。本開示は、任意の関連するソーシャルデータの表示を企図する。
【0048】
図6Bは、ユーザが、特定のショーまたは番組に関する情報を閲覧することを選択する際の例示的なEPGエントリ601を示す。特定の実施形態において、ユーザは、EPG600においてそのショーを選択すること、およびユーザのリモコン上で「さらに」または「情報」を選択することによって特定のコンテンツについての詳細な情報を閲覧することができる。EPGエントリ601は、コンテンツサービスプロバイダまたはコンテンツデータベース201から得られた番組名602およびメタデータ603〜607を含む。特定の実施形態において、メタデータは、MPAAレーティング603、所要時間604、俳優605、放送日606、およびテーマ607を含み得る。特定の実施形態において、EPGエントリ601は、番組の概要または要約を含むことも可能である。本開示は、EPGエントリ601に任意の適切なメタデータを含めることを企図する。
【0049】
EPG601は、ソーシャル部分608をさらに含む。特定の実施形態において、EPG601は、マークアップ言語文書としてユーザに配信され、ソーシャル部分608は、ウィジェットまたはプラグインとして機能するマークアップ文書の中のコードのブロックである。本開示は、ソーシャル部分608をレンダリングし、実装する任意の適切な方法を企図する。ソーシャル部分608は、閲覧するデバイスに関連付けられたユーザに特有のソーシャルデータを含み得る。例えば、ユーザのSTBがEPGエントリ601を要求する際、STBは、ユーザのソーシャルネットワーキングID、および番組602のタイ
トルを含むクエリをソーシャルグラフに発行することも可能である。これに応答して、ソーシャルネットワーキングシステム100は、図4を参照して説明したように、番組名602を特定のグラフオブジェクトまたはコンテンツ識別子に割り当て、さらにそのグラフオブジェクトに対して親和性(いいね!ボタンを押す)エッジを有するユーザの友達を返すことが可能である。特定の実施形態において、ソーシャル部分608は、コメント612を含むことも可能である。コメント612は、ソーシャルネットワーキングシステム100上のコンテンツオブジェクトを表すページ(「ハブページ」または「ランディグページ」とも呼ばれる)から取り出され得る。特定の実施形態では、ハブページからのユーザの友達または一次連絡先からのコメントだけでもよい。特定の実施形態において、コメントは、rottentomatoes.comまたはimdb.comなどの外部サイトからプルされることが可能である。本開示は、任意の適切な源からコメントまたは他のソーシャルデータを取り出すことを企図する。特定の実施形態において、コメント612は、時系列で並べられることが可能である。特定の実施形態において、コメント612は、ソーシャル値により並べられることが可能であり、つまり、EPG601の閲覧者がより高いソーシャル係数を有する相手である近い友達またはユーザからのコメントが、先に表示される。本開示は、ソーシャル部分608の中でコメント612にスコアを付ける、または並べる任意の適切な方法を企図する。
【0050】
特定の実施形態において、ソーシャル部分608は、能動的な、または明示的な共有ユーザインタフェース要素を含む。例えば、ソーシャル部分608は、「いいね!」ボタン609と、「共有」ボタン610とを含むことが可能である。「いいね!」ボタン609の選択により、ソーシャルグラフにおいて、閲覧するデバイスに関連付けられたユーザノードとグラフデータストア113の中のコンテンツオブジェクトとの間で「いいね!ボタンを押す」エッジを描く要求が、ソーシャルネットワーキングシステム100に送信される。特定の実施形態において、そのような「いいね!ボタンを押す」アクションは、ストーリとしてユーザのウォール、およびユーザの友達のニュースフィードに公開される。同様に、共有ボタン610を選択することにより、ユーザのSTBに、閲覧するユーザのソーシャルグラフユーザノードとコンテンツオブジェクトとの間で「共有する」エッジを描く要求を、ソーシャルネットワーキングシステム100に送信させることが可能である。本開示は、特定のアクションに関してソーシャルグラフにおいてエッジを同様に描く、「観る」、「キューに入れる」、または「記録するためにスケジュールする」などの他のボタンも企図する。本開示は、ユーザが観ているものを共有する、または特定のショーに関する親和性を表明する明示的なアクションを行うことをユーザに認可する能動的な共有ボタン609、610の任意の適切な選択および構成を企図する。
【0051】
図7は、外部システム122によって解釈され得るフォーマットでソーシャルネットワーキングシステム100から外部システム122にソーシャルデータを送信するための方法を示す。外部システム122は、任意の独自のフォーマットのEPGデータを利用する可能性があるため、特定のショー、例えば、「イッツオールウェイズサニーインフィラデルフィア(It’s Always Sunny in Philadelphia)」を、「共有する」段階と「発見する」段階の両方でソーシャルネットワーキングシステム100のグラフデータベース113の中の同一のショーに関するコンテンツ識別子に割り当てることに困難がある。このため、ソーシャルネットワーキングシステム100から受信されるソーシャルデータ(ユーザの友達が、ショーを観ているか否か、ショーに対して「いいね!ボタンを押した」か否かなど)は、EPGデータとさらに折り合いがつけられなければならない。特定の実施形態において、外部システム122が、着信するソーシャルネットワーキングコンテンツ識別子を外部システム122のEPGにおける外部システム122のそれぞれのショーまたは番組に割り当てる逆マッチング手順を実装することが可能である。図7の方法などの特定の実施形態において、外部システム122は、API要求サーバ106を介してソーシャルグラフAPIにクエリを発行し、さらにユーザが現
在、ブラウズしているショーに関するコンテンツ識別子を送信する。例えば、ユーザがEPG600をブラウズしている場合、外部システム122は、EPG600の中に見えるすべてのショーのタイトルを送信する。同様に、ユーザがEPG601をブラウズしている場合、外部システム122は、「ラタトゥーユ(Ratatouille)」というタイトルをソーシャルネットワーキングシステム100に送信する。そのような実施形態において、ソーシャルネットワーキングシステム100は、一連のルックアップを実行して、ユーザの友達の共有アクションをEPG600または601の中の特定のショーに相関させる。このため、ソーシャルデータは、外部システム122によって容易に解釈され得るフォーマットでソーシャルネットワーキングシステム100から配信される。
【0052】
ステップ701で、ソーシャルネットワーキングシステム100が、API要求サーバ106を介して、外部システム122からソーシャルグラフについてクエリを行う要求を受信する。特定の実施形態において、ステップ701は、ユーザ認証と同時に行われ、ユーザのソーシャルネットワーキング識別子およびパスワードを含み得る。特定の実施形態において、ステップ701は、ソーシャルネットワーキングシステム100が、デバイスを既に認証して、ユーザのソーシャルネットワーキング識別子をデバイスに関連付けた後に行われる。
【0053】
ステップ702で、ソーシャルネットワーキングシステム100は、1以上のEPGコンテンツオブジェクトを受信する。ユーザがEPG600を閲覧している際などの特定の実施形態において、ソーシャルネットワーキングシステム100が、番組名のリストを受信する。ユーザがEPG601の詳細を閲覧している場合などの特定の実施形態において、ソーシャルネットワーキングシステムは、外部システム122から単一の番組名を受信する。特定の実施形態において、外部システム122が、番組名と一緒にメタデータを送信することが可能である。
【0054】
ステップ703で、ソーシャルネットワーキングシステムが、外部システム122によって送信された番組名と一致するグラフデータストア113の中のオブジェクトを繰り返し検索することを開始する。特定の実施形態において、ソーシャルネットワーキングシステムは、図4におけるステップ402〜ステップ403と同一の方法を実行して、EPG番組名をコンテンツオブジェクトに割り当てる。特定の実施形態において、ソーシャルネットワーキングシステム100は、EPG番組名だけを受信し、一致すると疑われるものが見出された場合に、外部システム122からさらなるメタデータを要求することが可能である。
【0055】
既存の一致が見出されなかった場合、ソーシャルネットワーキングシステム100は、タイトルのリストの中の次のEPG番組名で同様に繰り返すことが可能である。特定の実施形態において、ソーシャルネットワーキングシステム100は、グラフデータストア113の中のタイトルに関して仮想オブジェクトを作成することが可能である。本開示は、グラフデータストア113の中で一致するエントリを見出すことができなかったときのソーシャルネットワーキングシステム100による任意の適切なアクションを企図する。
【0056】
既存のエントリが見出された場合、ソーシャルネットワーキングシステム100は、そのコンテンツオブジェクトについてのユーザの友達からの共有ストーリが存在するか否かを調べる。存在する場合、プロセスは、ステップ707に進み、ソーシャルネットワーキングシステム100は、その共有ストーリをEPG番組名に相関させる。ステップ708で、ソーシャルネットワーキングシステム100が、共有ストアリングと、EPG番組名とからなるソーシャルデータを外部システム122に送信する。このため、外部システム122は、EPG600および601を、外部システム122において最低限のプログラミングおよびコンテンツマッチングしか行わずに、受信されたソーシャルデータを容易に
収めることができる。
【0057】
次に、このプロセスは、受信されたEPG番組名のリスト全体に亘って同様に繰り返される。特定の実施形態において、ユーザのビューが変わるたびに、外部システム122からソーシャルネットワーキングシステム100に新たな要求が送信される。例えば、ユーザがEPG600において垂直に、または水平にスクロールした場合、ユーザには、新たなセットのショーが提示される。ユーザのビューが変わるたびに、視聴可能なショーに関するソーシャルストーリが存在するか否かを判定するよう新たな要求がソーシャルネットワーキングシステムに送信される。このため、EGP600のユーザのビューは、ソーシャルストーリで絶えず更新される。
【0058】
図7の方法は、教示の目的でのみ説明される。当業者は、EPG番組名を、ソーシャルネットワーキングシステム100上のコンテンツ識別子に相関させる様々な方法を構想することが可能である。例えば、特定の実施形態において、ソーシャルネットワーキングシステム100はまず、ユーザの友達のすべての共有ストーリのリストを得て、さらにコンテンツオブジェクトのタイトルを用いて、受信されたEPG番組名の検索を実行することが可能である。そのような方法は、ストーリを有する番組の方が、ストーリを有しない番組より必然的に少ないことになるので、ユーザがEPG600をブラウズしている際の必要な検索の量を大幅に低減することが可能である。しかし、受信されたEPG番組名の数が少ない場合、図7の方法そのものを実行する方が、より高速であり得る。本開示は、EPG601および600をソーシャルデータを収める任意の適切な方法を企図する。
【0059】
図6Aおよび図6Bの例は、コンテンツデータがソーシャルデータ(すなわち、ユーザの友達からの共有ストーリ)で得られる外部システム122によって提供されるユーザインタフェースを示す。そのようなユーザインタフェースは、ほとんど外部システム122における労力なしに、図7の方法、および類似した他の方法を介して、非常に単純に実装され得る。しかし、図8Aおよび図8Bは、コンテンツオブジェクト自体がソーシャルデータによって決定される、外部システム122によって提供される例示的なユーザインタフェースを示す。
【0060】
図8Aは、教示の目的で、3つのコンテンツ、「アバター(Avatar)」という映画802、「ザオフィス(The Office)」というTVショー803、および「サタデーナイトライブ(Saturday Night Live)」というTVショー804を含む例示的なコンテンツブラウザ801を示す。特定の実施形態において、ユーザが、例えば、ネットフリックス(NetFlix)などの特定の外部システム122にログインし、ユーザのソーシャルネットワーキングユーザIDおよびパスワードを用いて認証されると、ネットフリックス(NetFlix)は、ユーザのソーシャルネットワーキングの友達によって最も頻繁にいいね!ボタンを押される、または観られる、示唆されるコンテンツオブジェクト802〜804を表示することを選択することが可能である。このため、外部システム122は、ソーシャルネットワーキングシステム100から受信されたソーシャルデータに基づいて、コンテンツブラウザ801に収めなければならない。これは、外部システム122が、コンテンツオブジェクト識別子によって表されるコンテンツを表示し得るように、ソーシャルグラフコンテンツオブジェクト識別子と、オブジェクトに対するアクションと、それらのアクションを実行したユーザのユーザ識別子とからなる受信されたソーシャルデータを、外部システム122が解釈できることを必要とする。例えば、ネットフリックス(NetFlix)ユーザにとって、「ブレットテイラー(Bret Taylor)と127人の友達がアバター(Avatar)を観る」という文が提示されることは、そのリンクが選択可能ではなく、ユーザをネットフリックス(NetFlix)上のアバター(Avatar)に関するコンテンツページに移動させることもない場合、何も得るところがなく、もどかしいことである。特定の実施形態におい
て、外部システム122は、図4に示されるコンテンツ識別子マッチングと同一の方法を逆方向で実装することが可能である。例えば、ネットフリックス(NetFlix)が、ソーシャルグラフコンテンツオブジェクト識別子を受信して、APIサーバ106を介してそのソーシャルグラフについてクエリを行い、タイトル、俳優、ディレクタ、所要時間、およびその他のオブジェクト属性を得ることが可能である。次に、ネットフリックス(NetFlix)が、ネットフリックス(NetFlix)独自のコンテンツデータ(またはロヴィ社(Rovi)などの外部プロバイダによって提供される)の中で検索を行って、そのソーシャルグラフコンテンツオブジェクト識別子に対応するネットフリックス(NetFlix)コンテンツを見出すことが可能である。特定の実施形態において、ロヴィ社(Rovi)などのサードパーティ仲介業者が、このコンテンツマッチングを実行することが可能である。本開示は、ソーシャルネットワーキングコンテンツ識別子を外部システム122のコンテンツ識別子とのマッチングを行う任意の適切な方法を企図する。
【0061】
コンテンツオブジェクト802〜804のそれぞれが、ソーシャルデータ802a、803a、および804aを含む。特定の実施形態において、ソーシャルデータは、コンテンツを「観た」、観ることを予定している、または現在観ている友達の数を含む。特定の実施形態において、ソーシャルデータ802a〜804aは、コンテンツオブジェクト802〜804に関する共有ストーリを生成した友達に関するソーシャルネットワーキングシステム100からプルされたプロフィール写真を含む。特定の実施形態において、それらのプロフィール写真は、ソーシャル係数の高い順に並べられ、つまり、ユーザに最も近い友達が先に表示される。特定の実施形態において、ソーシャルデータ802a〜804aは、ユーザが特定のコンテンツオブジェクトに対して「いいね!ボタンを押す」か否かなどの、他の明示的なソーシャルアクションを含む。本開示は、ソーシャルデータ802a〜804aの中の任意の適切なソーシャルアクションを表示することを企図する。
【0062】
コンテンツブラウザ801は、ユーザが、コンテンツオブジェクトに対して特定のアクションを実行することを可能にするアクションボタン806をさらに含む。特定の実施形態において、アクションボタン806を選択することによって、関連するコンテンツオブジェクトのストリーミングまたは再生が即時に開始され得る。特定の実施形態において、アクションボタン806を選択することによって、コンテンツがユーザのキューに入れられることが可能である。特定の実施形態において、アクションボタン806を選択することによって、コンテンツがDVR上で記録されるようにスケジュールされ得る。本開示は、任意の適切なアクションボタン806、およびコンテンツオブジェクトに対して実行され得る任意の適切なアクションを企図する。
【0063】
図8Bは、コンテンツ閲覧中のディスプレイデバイス900の例示的なビューを示す。特定の実施形態において、ディスプレイ900は、ソーシャルネットワーキング部分903を含む。特定の実施形態において、ソーシャルネットワーキング部分903は、ユーザが、ユーザのリモコン上でソーシャルネットワーキングボタンを押すと、表示されるポップアップメニューであり得る。特定の実施形態において、ソーシャルネットワーキング部分903は、それほど目立たないソーシャルネットワーキングアイコンが選択されると、展開されるポップアップメニューであり得る。本開示は、ソーシャル部分903の表示を制御する任意の適切な方法を企図する。
【0064】
特定の実施形態において、ソーシャル部分903は、リアルタイム共有ストーリ903a〜903cを含み得る。リアルタイム共有ストーリ903a〜903cは、現時点でどのようなコンテンツをユーザの友達も観ているかを記述する。このため、ユーザは、リアルタイム共有ストーリ903a〜903cのうちのいずれか1つを選択して、ユーザの友達が観ているのと同一の番組を閲覧するようにディスプレイ900を切り換えることができる。そのような情報は、メッセージもしくはウォール掲示などのネットワーク上の対話
と、後の時点の電話通話もしくは対面での会話などのネットワークを離れての「現実の」社会的な対話の両方を促すことが可能である。また、ソーシャル部分903は、前述したように、能動的な、または明示的な共有ボタン904および905を含むことも可能である。ボタン904を選択することによって、現在、観られている番組に関する共有ストーリがソーシャルネットワーキングシステム100上に生成され得る。
【0065】
能動的な、または明示的な共有ボタン904および905は、ユーザが現在観ているものをソーシャルネットワーキングシステム100と(したがって、ソーシャルネットワーキングシステム100上のユーザの友達と)共有する、ユーザによる能動的な参加を要求する。特定の実施形態において、ユーザのデバイスは、ユーザが現在観ているものをソーシャルネットワーキングシステム100と共有することを、ユーザからそうすることの明示的なアクションなしに、受動的に行うことが可能である。特定の実施形態において、ユーザが様々なチャネルを次々に変えるにつれ、ユーザのデバイスは、ソーシャルネットワーキング100に投稿されるべき共有ストーリを実質的にリアルタイムで生成する。特定の実施形態において、ソーシャルネットワーキングシステムは、ユーザが、所定の時間より長く1つの番組を継続的に観た場合に限って、共有ストーリを公開して、チャネルサーフィンが他のユーザのニュースフィードを溢れさせることを防止することが可能である。特定の実施形態において、目に見える「共有」標識901が、ユーザが現在の番組を観ていることをユーザがソーシャルネットワーキングシステム100と共有していることをユーザに知らせるようにディスプレイ900に表示され得る。特定の実施形態において、共有標識901は、ユーザが現在、ユーザの閲覧選択肢を共有していることを示して、人前で恥をかくことを防ぐ明示的な警告902を含み得る。図8Bの例において、共有標識902は、単に「共有モードオン」を示す。特定の実施形態において、ユーザは、閲覧するデバイスに関するユーザインタフェースまたはハードウェアデバイスにおけるボタンを用いて共有モードのオン、オフを切り換えることができる。特定の実施形態において、共有標識901および902は、それほど表示領域を見えにくくしないことが可能である。例えば、特定の実施形態において、共有モードは、ピクチャの周囲に赤い縁を備え得る。他の実施形態において、共有モードは、閲覧するデバイス上でLEDを点滅させることによって示され得る。本開示は、ハードウェアまたはソフトウェアで実装される任意の適切な共有標識を企図する。
【0066】
図9Aは、ユーザがソーシャルデータで強化された特定の番組を観る場合の別の例示的な表示を示す。図8Bの場合と同様に、図9Aの表示は、ソーシャル部分903を含む。特定の実施形態において、ソーシャル部分903は、同一のショーを現在観ているユーザの友達を表示することが可能である。特定の実施形態において、ユーザの友達のプロフィールピクチャが表示される。特定の実施形態において、ソーシャル部分903は、ユーザの友達も同一のショーを観ることを始めると、ポップアップすることが可能である。特定の実施形態において、ソーシャル部分903は、所定の時間の後、自動的に最小化され得る。特定の実施形態において、ソーシャル部分903は、新たな友達が同一の番組を観ることを始めるたびにポップアップすることが可能である。特定の実施形態において、「いいね!」ボタンおよび「共有する」ボタンに加えて、ソーシャル部分903は、ユーザが、同一の番組を観ているユーザの友達を相手に実質的にリアルタイムのチャットセッションに参加することを可能にする「チャット」オプションを含み得る。そのような実施形態について、図9Bを参照してさらに詳細に説明される。
【0067】
図9Bは、ユーザが、同一の番組を観ているユーザの友達を相手にグループチャットを行っている例示的な表示を示す。チャットウインドウ910は、同一の番組を観ているユーザの友達の数も含むことが可能である。個々のメッセージ911、912、および913は、ユーザの友達またはユーザがキーボードもしくは他の入力デバイスと対話することによって投稿され得る。個々のメッセージ911〜913は、投稿の時刻、および投稿す
るユーザに関するピクチャを含み得る。特定の実施形態において、チャットウインドウ910は、別個のデバイス上に表示され得る。例えば、ユーザは、ユーザのテレビ上で番組を観ており、グループチャットに参加する場合、ユーザのソーシャルネットワーキングスマートフォンアプリケーションは、チャットウインドウ910を表示して、ユーザが、専用のTV入力デバイスなしにチャットを入力することができるようにすることが可能である。本開示は、チャットウインドウ910と対話する任意の適切な配置または手段を企図する。
【0068】
前述の実施形態は、様々なネットワーク構成で実施され得るが、以下に、限定する目的ではなく、教示の目的で例示的なネットワーク環境を示す。図10は、例示的なネットワーク環境1000を示す。ネットワーク環境1000は、1以上のサーバ1020と1以上のクライアント1030を互いに結合するネットワーク1010を含む。ネットワーク環境100は、1以上のサーバ1020に結び付けられた1以上のデータストレージ1040をさらに含む。特定の実施形態は、ネットワーク環境1000において実装され得る。例えば、ソーシャルネットワーキングシステムフロントエンド120は、1以上のサーバ1020によってホストされるソフトウェアプログラムとして書かれることが可能である。例えば、イベントデータベース102は、1以上のストレージ1040の中に記憶されることが可能である。特定の実施形態において、ネットワーク1010は、イントラネット、エクストラネット、仮想プライベートネットワーク(VPN)、ローカルエリアネットワーク(LAN)、無線LAN(WLAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、インターネットの一部分、もしくは別のネットワーク1010、または2つ以上のそのようなネットワーク1010の組み合わせである。本開示は、任意の適切なネットワーク1010を企図する。
【0069】
1以上のリンク1050は、サーバ1020またはクライアント1030をネットワーク1010に結合する。特定の実施形態において、1以上のリンク1050はそれぞれ、1以上の有線リンク1050、無線リンク1050、または光リンク1050を含む。特定の実施形態において、1以上のリンク1050はそれぞれ、イントラネット、エクストラネット、VPN、LAN、WLAN、WAN、MAN、インターネットの一部分、もしくは別のリンク1050、または2つ以上のそのようなリンク1050の組み合わせを含む。本開示は、サーバ1020およびクライアント1030をネットワーク1010に結合する任意の適切なリンク1050を企図する。
【0070】
特定の実施形態において、各サーバ1020は、単体のサーバであっても、複数のコンピュータまたは複数のデータセンタにまたがる分散型サーバであってもよい。サーバ1020は、例えば、限定するものではないが、ウェブサーバ、ニュースサーバ、メールサーバ、メッセージサーバ、広告サーバ、ファイルサーバ、アプリケーションサーバ、交換サーバ、データベースサーバ、またはプロクシサーバなどの、様々なタイプであることが可能である。特定の実施形態において、各サーバ1020は、サーバ1020によって実装される、またはサポートされる適切な機能を実行するためのハードウェア、ソフトウェア、もしくは組み込まれた論理構成要素、または2つ以上のそのような構成要素の組み合わせを含み得る。例えば、ウェブサーバは、一般に、ウェブページ、またはウェブページの特定の要素を包含するウェブサイトをホストすることができる。より具体的には、ウェブサーバは、HTMLファイルもしくは他のファイルタイプをホストすることができ、または要求が行われると、ファイルを動的に作成、もしくは構成し、それらのファイルを、クライアント1030からのHTTP要求もしくは他の要求に応答してクライアント1030に通信することができる。メールサーバは、一般に、様々なクライアント1030に電子メールサービスを提供することができる。データベースサーバは、一般に、1以上のデータストアの中に記憶されたデータを管理するためのインタフェースを提供することができる。
【0071】
特定の実施形態において、1以上のデータストレージ1040は、1以上のリンク1050を介して1以上のサーバ1020に通信可能に結び付けられることが可能である。特定の実施形態において、データストレージ1040が、様々なタイプの情報を記憶するのに使用され得る。特定の実施形態において、データストレージ1040の中に記憶された情報は、特定のデータ構造に応じて編成され得る。特定の実施形態において、各データストレージ1040は、リレーショナルデータベースであり得る。特定の実施形態は、サーバ1020またはクライアント1030が、データストレージ1040の中に記憶された情報を管理すること、例えば、取り出すこと、変更すること、追加すること、または削除することを可能にするインタフェースを提供する。
【0072】
特定の実施形態において、各クライアント1030は、ハードウェア、ソフトウェア、もしくは組み込まれた論理構成要素、または2つ以上のそのような構成要素の組み合わせを含むとともに、クライアント1030によって実装される、またはサポートされる適切な機能を実行することができる電子デバイスであり得る。例えば、限定するものではないが、クライアント1030は、デスクトップコンピュータシステム、ノートブックコンピュータシステム、ネットブックコンピュータシステム、ハンドヘルド電子デバイス、またはモバイル電話機であり得る。本開示は、任意の適切なクライアント1030を企図する。クライアント1030は、クライアント1030におけるネットワークユーザがネットワーク1030にアクセスすることを可能にすることができる。クライアント1030は、クライアント1030のユーザが、他のクライアント1030における他のユーザと通信することを可能にすることができる。
【0073】
クライアント1030は、マイクロソフトインターネットエクスプローラ(MICROSOFT INTERNET EXPLORER)、グーグルクローム(GOOGLE CHROME)、またはモジラファイアフォックス(MOZILLA FIREFOX)などのウェブブラウザ1032を有することが可能であり、さらにツールバー(TOOLBAR)またはヤフーツールバー(YAHOO TOOLBAR)などの1以上のアドオン、プラグイン、または他の拡張機能を有することが可能である。クライアント1030におけるユーザが、ウェブブラウザ1032をサーバ1020に向かわせるユニフォームリソースロケータ(URL)または他のアドレスを入力することが可能であり、さらにウェブブラウザ1032が、ハイパーテキスト転送プロトコル(HTTP)要求を生成し、そのHTTP要求をサーバ1020に通信することが可能である。サーバ1020は、そのHTTP要求を受け付け、そのHTTP要求に応答する1以上のハイパーテキストマークアップ言語(HTML)ファイルをクライアント1030に通信することが可能である。クライアント1030は、サーバ1020からのHTMLファイルに基づいてウェブページをユーザに提示するためにレンダリングすることが可能である。本開示は、任意の適切なウェブページファイルを企図する。例として、限定としてではなく、ウェブページは、特定のニーズに応じて、HTMLファイル、拡張ハイパーテキストマークアップ言語(XHTML)ファイル、または拡張マークアップ言語(XML)ファイルからレンダリングされ得る。そのようなページは、例えば、限定するものではないが、ジャバスクリプト(JAVASCRIPT(登録商標))、ジャバ(JAVA)、マイクロソフトシルバーライト(MICROSOFT SILVERLIGHT)、AJAX(非同期のジャバスクリプト(JAVASCRIPT)とXML)などのマークアップ言語とスクリプトの組み合わせなどで書かれたスクリプトなどのスクリプトを実行することも可能である。本明細書で、ウェブページについて述べることには、適宜、対応する1以上のウェブページファイル(ブラウザがウェブページをレンダリングするのに使用し得る)が包含されるとともに、そのようなウェブページファイルについて述べることには、ウェブページが包含される。
【0074】
図11は、サーバを実装するのに使用され得る例示的なコンピューティングシステムアーキテクチャを示す。一実施形態において、ハードウェアシステム1100は、プロセッサ1102、キャッシュメモリ1104、ならびに本明細書に記載される機能を対象とする、実体のあるコンピュータ可読媒体上に記憶された1以上の実行可能モジュールおよびドライバからなる。さらに、ハードウェアシステム1100は、高性能入出力(I/O)バス1106、および標準のI/Oバス1108を含む。ホストブリッジ1108が、プロセッサ1102を高性能I/Oバス1106に結合する一方で、I/Oバスブリッジ1112が、2つのバス1106と1108を互いに結合する。システムメモリ1114、および1以上のネットワーク/通信インタフェース1116はバス1106に結合される。ハードウェアシステム1100は、ビデオメモリ(図示せず)と、ビデオメモリに結合されたディスプレイデバイスをさらに含み得る。大容量ストレージ11111、およびI/Oポート1120は、バス1108に結合される。ハードウェアシステム1100は、オプションとして、キーボードおよびポインティングデバイス、ならびにバス1108に結合されたディスプレイデバイス(図示せず)を含み得る。集合的に、これらの要素は、米国カリフォルニア州サンタクララ(Santa Clara)所在のインテルコーポレーション社(Intel Corporation)によって製造されたx116互換プロセッサ、および米国カリフォルニア州サニーベール(Sunnyvale)所在のアドバンストマイクロデバイセズインコーポレイテッド(AMD:Advanced Micro Devices,Inc.)によって製造されたx116互換プロセッサ、ならびに他の任意の適切なプロセッサに基づく汎用コンピュータシステムを含むが、これらに限定されない広いカテゴリのコンピュータハードウェアシステムを表すことを意図している。
【0075】
ハードウェアシステム1100の要素は、後段でより詳細に説明される。詳細には、ネットワークインタフェース1116によって、ハードウェアシステム1100と、イーサネット(登録商標)(例えば、IEEE1102.3)ネットワーク、バックプレーンなどの多種多様なネットワークのうちの任意のネットワークとの間での通信が提供される。大容量ストレージ11111によって、サーバ22a、22bにおいて実装される前述した機能を実行するデータおよびプログラミング命令のための永続したストレージが提供される一方で、システムメモリ1114(例えば、DRAM)によって、プロセッサ1102によって実行される際のデータおよびプログラミング命令のための一時ストレージが提供される。I/Oポート620は、周辺デバイスの間での通信を提供する1以上のシリアル通信ポートおよび/またはパラレル通信ポートであって、ハードウェアシステム1100に結合され得る。
【0076】
ハードウェアシステム1100は、様々なシステムアーキテクチャを含むことが可能であり、さらにハードウェアシステム1100の様々な構成要素は、構成変更されることが可能である。例えば、キャッシュ1104は、プロセッサ1102と一体化したオンチップであってもよい。代替として、キャッシュ1104とプロセッサ1102は、「プロセッサモジュール」として一緒にまとめられてもよく、プロセッサ1102は、「プロセッサコア」と呼ばれる。さらに、いくつかの実施形態は、前述した構成要素のすべてを要求するわけでも、含むわけでもない可能性がある。例えば、標準のI/Oバス1108に結合されて図示される周辺デバイスは、高性能I/Oバス1106に結合されてもよい。さらに、いくつかの実施形態において、単一のバスだけが存在してもよく、ハードウェアシステム1100の構成要素は、その単一のバスに結合される。さらに、ハードウェアシステム1100は、さらなるプロセッサ、ストレージデバイス、またはメモリなどのさらなる構成要素を含み得る。
【0077】
一実施形態において、本明細書に記載される実施形態の動作は、分散コンピューティング環境において個々に、またはひとまとめに、ハードウェアシステム1100によって実
行される一連の実行可能モジュールとして実施される。特定の実施形態において、セットのソフトウェアモジュールおよび/またはドライバが、ネットワーク通信プロトコルスタック機能、ブラウズ機能、および他のコンピューティング機能、最適化プロセスなどを実施する。前述した機能モジュールは、ハードウェア、コンピュータ可読媒体上に記憶された実行可能モジュール、またはハードウェアとそのような実行可能モジュールの組み合わせによって実現され得る。例えば、機能モジュールは、プロセッサ1102などのハードウェアシステムにおけるプロセッサによって実行されるべき複数の、または一連の命令からなることが可能である。初期には、それらの一連の命令は、大容量ストレージ11111などのストレージデバイス上に記憶されてもよい。しかし、それらの一連の命令は、ディスケット、CD−ROM、ROM、EEPROMなどの任意の適切な記憶媒体上に記憶されて実体化され得る。さらに、それらの一連の命令は、ローカルで記憶される必要はなく、ネットワーク/通信インタフェース1116を介して、ネットワーク上のサーバなどの、遠隔ストレージデバイスから受信されることも可能である。それらの命令は、大容量ストレージ11111などのストレージデバイスからメモリ1114の中にコピーされ、その後、プロセッサ1102によってアクセスされて、実行される。
【0078】
オペレーティングシステムが、ソフトウェアアプリケーション(図示せず)に対するデータの入力、およびソフトウェアアプリケーションからのデータの出力を含むハードウェアシステム1100の動作を管理し、制御する。オペレーティングシステムによって、システム上で実行されているソフトウェアアプリケーションとシステムのハードウェア構成要素との間のインタフェースが提供される。LINUX(登録商標)オペレーティングシステム、米国カリフォルニア州クーパチーノ所在のアップルコンピュータインコーポレイテッド(Apple Computer Inc.)から入手可能なアップルマッキントッシュオペレーティングシステム(Apple Macintosh Operating System)、UNIX(登録商標)オペレーティングシステム、マイクロソフト(Microsoft)(登録商標)ウィンドウズ(Windows)(登録商標)オペレーティングシステム、BSDオペレーティングシステムなどの任意の適切なオペレーティングシステムが、使用されることが可能である。もちろん、他の実装形態も可能である。例えば、本明細書で説明されるニックネーム生成機能が、ファームウェアとして、または特定用途向け集積回路上に実装されることが可能である。
【0079】
さらに、前述した要素および動作は、記憶媒体上に記憶された命令からなることが可能である。これらの命令は、処理システムによって取り出されて、実行され得る。命令のいくつかの例は、ソフトウェア、プログラムコード、およびファームウェアである。記憶媒体のいくつかの例は、メモリデバイス、テープ、ディスク、集積回路、およびサーバである。これらの命令は、処理システムによって実行されると、本開示に応じて動作するよう処理システムを導くように作用する。「処理システム」という用語は、単一の処理デバイス、またはグループの相互動作する処理デバイスを指す。処理デバイスのいくつかの例は、集積回路および論理回路である。当業者は、命令、コンピュータ、および記憶媒体に精通している。
【0080】
本明細書で、非一時的コンピュータ可読記憶媒体について述べることには、適宜、半導体ベースの集積回路もしくは他の集積回路(IC)(例えば、フィールドプログラマブルゲートアレイ(FPGA)もしくは特定用途向けIC(ASIC))、ハードディスク、HDD、ハイブリッドハードドライブ(HHD)、光ディスク、光ディスクドライブ(ODD)、光磁気ディスク、光磁気ドライブ、フロッピー(登録商標)ディスク、フロッピーディスクドライブ(FDD)、磁気テープ、ホログラフィック記憶媒体、ソリッドステートドライブ(SSD)、RAMドライブ、セキュアデジタル(SECURE DIGITAL)カード、セキュアデジタル(SECURE DIGITAL)ドライブ、別の適切な非一時的コンピュータ可読記憶媒体、または以上の適切な組み合わせが含まれ得る。
非一時的コンピュータ可読記憶媒体は、適宜、揮発性、不揮発性、または揮発性と不揮発性の組み合わせであり得る。
【0081】
本明細書で、「または」は、特に明記しない限り、または文脈によってそうでないことが示されない限り、包含的であり、排他的ではない。したがって、本明細書で「AまたはB」は、特に明記しない限り、または文脈によってそうでないことが示されない限り、「A、B、またはAとBの両方」を意味する。さらに、「および」は、特に明記しない限り、または文脈によってそうでないことが示されない限り、合同と別々の両方である。したがって、本明細書で「AおよびB」は、特に明記しない限り、または文脈によってそうでないことが示されない限り、「AとBを一緒に、または別々に」を意味する。
【0082】
本開示は、当業者が理解する本明細書の例示的な実施形態のすべての変容、置換、変更、改変、および変形を包含する。例として、実施形態について、ソーシャルネットワーキングウェブサイトに関連して動作するものとして説明されてきたが、本開示は、ウェブアプリケーションをサポートする任意の通信ファシリティに関連して使用され得る。さらに、いくつかの実施形態において、「ウェブサーバ」という用語と「ウェブサイト」という用語は、互換的に使用されることが可能であり、さらに、サーバに対して直接にAPI呼び出しを行うモバイルデバイス(例えば、セルラ電話機、スマートフォン、パーソナルGPS、携帯情報端末、パーソナルゲームデバイスなど)などのデバイス上のカスタムの、または汎用のAPIを指すことが可能である。さらに、本開示は、特定の構成要素、要素、機能、動作、またはステップを含むものとしてそれぞれの実施形態を本明細書で説明し、例示するものの、これらの実施形態のいずれも、当業者が理解する、本明細書の任意の箇所で説明される、または例示される構成要素、要素、機能、動作、またはステップのうちのいずれの任意の組み合わせまたは並べ替えも含むことが可能である。添付の特許請求の範囲における、特定の機能を実行するように適応された、実行するように配置された、実行することができる、実行するように構成された、実行することを可能にされた、実行するように動作可能である、または実行するように動作する装置もしくはシステム、または装置もしくはシステムの構成要素は、その装置、システム、または構成要素がそのように適応される、そのように配置される、そのようにすることができる、そのように構成される、そのようにすることを可能にされる、そのように動作可能である、またはそのように動作する限り、その装置、システム、もしくは構成要素、またはその特定の機能が活性化されるか否か、オンにされるか否か、またはロック解除されるか否かにかかわらず、その装置、システム、または構成要素を包含する。
図10
図11
図1
図2
図3
図4
図5
図6A
図6B
図7
図8A
図8B
図9A
図9B