(58)【調査した分野】(Int.Cl.,DB名)
前記ビデオ・リソースに基づいて生成された第2ビデオ表現を第3投稿が利用していることを検出するステップであって、前記第3投稿は、第2パブリッシャによって開始される、ステップと、
前記第2ビデオ表現の代わりに前記第3投稿に前記第1ビデオ表現を利用させるステップと、
前記第3投稿にさらに基づいて、前記第1ビデオ表現のデータ分析を集約するステップと、
をさらに備える、請求項1に記載のコンピュータ実装方法。
前記第1パブリッシャに、前記第2パブリッシャによって前記第3投稿が開始されていることを示す通知を提供するステップをさらに備え、前記第2ビデオ表現の代わりに前記第3投稿に前記第1ビデオ表現を利用させるステップは、前記第1パブリッシャからのコマンドに基づく、請求項2に記載のコンピュータ実装方法。
前記再生回数情報は、前記第1投稿に関連付けられている第1再生回数と、前記第2投稿に関連付けられている第2再生回数とを少なくとも含み、前記第1ビデオ表現の前記データ分析を集約するステップは、前記第1再生回数および前記第2再生回数を集約するステップを含む、請求項7に記載のコンピュータ実装方法。
前記再生回数情報は、前記第1投稿に関連付けられている前記第1再生回数に関する第1属性情報と、前記第2投稿に関連付けられている前記第2再生回数に関する第2属性情報とをさらに含む、請求項8に記載のコンピュータ実装方法。
前記ビデオ・リソースは、画像分類、画像ハッシュ値、ディスクリプション、キャプション、作者、時刻、日付、プレビュー画像、符号化、クリップ、タグおよびラベルのうちの少なくとも1つに関連付けられている、請求項1に記載のコンピュータ実装方法。
前記再生回数情報は、前記第1投稿に関連付けられている第1再生回数と、前記第2投稿に関連付けられている第2再生回数とを少なくとも含み、前記第1ビデオ表現の前記データ分析を集約するステップは、前記第1再生回数および前記第2再生回数を集約するステップを含む、請求項13に記載のシステム。
前記ビデオ・リソースは、画像分類、画像ハッシュ値、ディスクリプション、キャプション、作者、時刻、日付、プレビュー画像、符号化、クリップ、タグおよびラベルのうちの少なくとも1つに関連付けられている、請求項11に記載のシステム。
前記再生回数情報は、前記第1投稿に関連付けられている第1再生回数と、前記第2投稿に関連付けられている第2再生回数とを少なくとも含み、前記第1ビデオ表現の前記データ分析を集約するステップは、前記第1再生回数および前記第2再生回数を集約するステップを含む、請求項18に記載の非一時的コンピュータ可読記憶媒体。
前記ビデオ・リソースは、画像分類、画像ハッシュ値、ディスクリプション、キャプション、作者、時刻、日付、プレビュー画像、符号化、クリップ、タグおよびラベルのうちの少なくとも1つに関連付けられている、請求項16に記載の非一時的コンピュータ可読記憶媒体。
【発明を実施するための形態】
【0018】
図面は、説明のみを目的として開示される技術の種々の実施形態を示しており、同様の要素の識別には、同様の符号を使用している。以下の記述から、当業者には、本明細書に記載の開示される技術の原理から逸脱することなく、図面に示す構造および方法の代替の実施形態を採用可能であることが容易に認識されよう。当然のことながら、本明細書のすべての実施例は、説明の目的で提供されており、開示される技術に関連する多くの変形または他の可能性が可能である。
【0019】
階層アーキテクチャに基づくビデオのデータ分析の提供
人々は、さまざまな目的でコンピューティング・システム(またはデバイス)を使用する。ユーザは、自らのコンピューティング・システムを利用して、つながりを確立し、コミュニケーションに参加し、互いに相互作用し、および/またはさまざまなコンテンツのタイプと相互作用することができる。場合により、コンピューティング・デバイスは、画像またはビデオ(ビデオ画像フレームまたは静止フレームのセットを含む)等のメディア・コンテンツをキャプチャまたは記録することが可能なカメラを含むか、またはそのカメラに対応する。場合によっては、コンピューティング・デバイスは、ユーザがビデオ等のメディア・コンテンツ・アイテムを視聴、編集、アップロード、投稿および/または共有するために利用することができる。たとえば、ユーザは、自らのコンピューティング・デバイスを介して、ビデオ・コンテンツを視聴し、提供し、共有し、および/またはその他の形で相互作用するために、メディア共有オンライン・リソースにアクセスすることができる。この例では、メディア共有オンライン・リソースは、ソーシャル・ネットワーキング・システム(またはサービス)によって提供され、またはそのシステム(またはサービス)に含まれることができる。
【0020】
多くの場合において、ビデオを処理するためのコンピュータ技術の分野において特に生じる従来のアプローチは、ソーシャル・ネットワーキング・システム内で投稿された各ビデオをそれぞれの投稿の添付ファイルと見なし、またはそのように扱うことができる。そのような従来のアプローチは、異なるパブリッシャ(つまり、ユーザ)からの同じビデオの異なる投稿に、個別のビデオアップロード・プロセスおよび個別のビデオ記憶プロセスを有する必要があり得る。これは、多くの場合において、リソースの非効率な利用になり得る。また、場合により、同じビデオを異なる投稿の異なる添付ファイルとして扱うことで、同じビデオのデータ分析を、異なる投稿および/または異なるパブリッシャ・アカウントにわたって不必要に広めかねない。さらに、従来のアプローチによると、オリジナル・パブリッシャからの特定のビデオを別のパブリッシャが共有する場合、オリジナル・パブリッシャは、最初にビデオを提供しているということを十分にもしくは然るべくクレジット表示されず、もしくはその他の形でそのように認識されないことがあり、および/または共有パブリッシャは、ビデオを共有していることを十分にもしくは然るべくクレジット表示されないことがある。たとえば、場合によっては、共有パブリッシャは、オリジナル・パブリッシャと協働していた、および/またはその他の形でビデオと関わりがある可能性がある。従来のアプローチは、そのようなパブリッシャに適切な評価を与えないことがしばしばある。したがって、従来のアプローチは、ビデオ等のメディア・コンテンツの利用、アクセスまたはそのコンテンツとの相互作用に関連付けられる総合的な体験に関して課題を生み、または総合的な体験を低下させるおそれがある。
【0021】
以上のような懸念により、コンピュータ技術の分野において特に生じる従来のアプローチには、欠点があるか、または問題が多い。そのため、従来のアプローチに関連する上述の欠点および他の欠点を克服する、コンピュータ技術に根ざした改良されたアプローチが有益である。コンピュータ技術に基づき、開示される技術は、階層アーキテクチャに基づきビデオのデータ分析を提供することができる。開示される技術の種々実施形態は、階層アーキテクチャの第1レベルでビデオ・リソースを取得することができる。第1ビデオ表現は、ビデオ・リソースに基づき、階層アーキテクチャの第2レベルで生成することができる。第1ビデオ表現は、第1パブリッシャに関連付けることができる。第1ビデオ表現を少なくとも第1投稿および第2投稿が利用していることを検出することができる。第1投稿および第2投稿は、階層アーキテクチャの第3レベルで表現可能であるとともに、第1パブリッシャによって開始されることができる。第1ビデオ表現のデータ分析は、第1投稿および第2投稿に基づいて集約することができる。開示される技術に関連する多くの変形および/または他の可能性があり得ることが想定される。
【0022】
図1は、本開示の一実施形態に係る、階層アーキテクチャに基づくビデオのデータ分析の提供を行うように構成される例示的なビデオ階層アーキテクチャ・モジュール102を含む例示的なシステム100を示す。
図1の実施例に図示されるように、ビデオ階層アーキテクチャ・モジュール102は、ビデオ・リソース・モジュール104、ビデオ表現モジュール106およびビデオ投稿モジュール108を含むことができる。場合によっては、例示的なシステム100は、少なくとも1つのデータ・ストア110を含むことができる。この図および本明細書のすべての図に図示される構成要素(たとえば、モジュール、要素等)は例示にすぎず、他の実施態様は、追加の構成要素、より少ない構成要素、統合された構成要素、または異なる構成要素を含んでいてもよい。関連する細部が分かり難くならないように、図示していない構成要素もある。
【0023】
いくつかの実施形態において、ビデオ階層アーキテクチャ・モジュール102は、部分的にまたは全体的に、ソフトウェア、ハードウェアまたはその任意の組み合わせとして実装される。一般に、本明細書で説明されるモジュールは、ソフトウェア、ハードウェアまたはその任意の組み合わせに関連付けることができる。いくつかの実施態様において、モジュールの1つまたは複数の機能、タスクおよび/または動作は、ソフトウェアのルーチン、ソフトウェアのプロセス、ハードウェア、および/またはその任意の組み合わせによって遂行または実行することができる。場合により、ビデオ階層アーキテクチャ・モジュール102は、部分的にまたは全体として、ユーザまたはクライアント・コンピューティング・デバイス等、1つまたは複数のコンピューティング・デバイスまたはシステム上で稼働するソフトウェアとして実装される。たとえば、ビデオ階層アーキテクチャ・モジュール102または少なくともその一部は、
図6のユーザ・デバイス610等、ユーザ・コンピューティング・デバイスまたはクライアント・コンピューティング・システム上で稼働するアプリケーション(たとえば、アプリ)、プログラム、アプレット、またはオペレーティング・システム等として、またはその内部で実装される。別の実施例では、ビデオ階層アーキテクチャ・モジュール102または少なくともその一部は、ネットワーク・サーバまたはクラウド・サーバ等の1つまたは複数のサーバを含むことができる1つまたは複数のコンピューティング・デバイスまたはシステムを使用して実装される。場合によっては、ビデオ階層アーキテクチャ・モジュール102は、部分的にまたは全体として、
図6のソーシャル・ネットワーキング・システム630等のソーシャル・ネットワーキング・システム(またはサービス)内に実装され、またはそのシステム(またはサービス)と連携して動作するように構成することができる。当然のことながら、多くの変形または他の可能性が可能である。
【0024】
ビデオ階層アーキテクチャ・モジュール102は、階層アーキテクチャを提供するように構成することができ、これは、ビデオを取得、管理、記憶および/またはその他の形で処理するために利用することができる。いくつかの実施形態において、階層アーキテクチャは、基底レベル、1つまたは複数の中間レベル、および最上位レベル等、少なくとも3つのレベルを含むことができる。いくつかの実施態様において、ビデオ階層アーキテクチャ・モジュール102は、ビデオ・リソース・モジュール104を利用して、基底レベル等、階層アーキテクチャの第1レベルでビデオ・リソースの取得を行うことができる。基底レベルは、たとえば、複数のビデオ・リソースを保持することができる。一実施例において、ユーザ(ビデオのパブリッシャまたはプロバイダ等)は、ビデオをアップロードまたはその他の形で提供することができる。この実施例では、ビデオ・リソース・モジュール104は、ビデオを表すデータを受け取り、フェッチし、プルし、取り出し、受信し、および/またはその他の形で取得するように構成することができる。次に、ビデオを表すデータ(たとえば、ビデオ・ファイル)を、ビデオ・リソースとして取得することができる。この実施例では、ビデオ・リソースは、ビデオに対応するデータまたはファイルを備えることができる。
【0025】
また、いくつかの実施形態では、ビデオ・リソース・モジュール104は、ビデオ・リソースについて、画像分類、画像ハッシュ値、ディスクリプション、キャプション、作者、時刻、日付、プレビュー画像、符号化、クリップ、タグ、ラベルおよび/または他のメタデータ等のうちの少なくとも1つを計算、決定、認識、受信および/またはその他の形で取得することができる。たとえば、ディスクリプション、キャプション、ビデオ・クリップ/セグメント/部分情報、タグ、および/またはラベル等は、ユーザまたはパブリッシャからビデオ・リソース・モジュール104によって取得することができる。ビデオ・リソース・モジュール104は、画像分類プロセスを利用して、ビデオ・リソースの画像分類を取得し、および/または画像ハッシュ化アルゴリズムを利用して、ビデオ・リソースの画像ハッシュ値を取得することができる。ビデオ・リソース・モジュール104は、作者情報(たとえば、ユーザ/パブリッシャ情報)、および/または日付/時刻情報(たとえば、タイムスタンプ)も計算または取り出すことができる。ビデオ・リソース・モジュール104は、さらに、ビデオ・リソースについて、1つまたは複数のプレビュー画像(たとえば、サムネイル)および/または1つまたは複数の符号化(たとえば、標準精細度バージョン、高精細度バージョン、60フレーム毎秒で480ピクセル、60フレーム毎秒で720ピクセル、30フレーム毎秒で720ピクセル、30フレーム毎秒で1080ピクセル等)を生成することができる。そして、ビデオ・リソース・モジュール104は、画像分類、画像ハッシュ値、ディスクリプション、キャプション、作者、時刻、日付、プレビュー画像、符号化、クリップ、タグ、ラベル、および/または他のメタデータ等を、ビデオ・リソースに関連付けることができる。その後、ビデオ・リソースに関連付けられているそのような情報、プロパティ、および/またはメタデータは、ビデオ・リソースが再び使用されるときに、(再計算、再生成、再取得および/またはコピー等をされる代わりに)再利用することができる。当然のことながら、本明細書のすべての実施例は説明の目的で提供されており、開示される技術に関連する多くの変形が可能である。
【0026】
さらに、ビデオ表現モジュール106は、ビデオ・リソースに基づき、階層アーキテクチャの第2レベルで第1ビデオ表現(またはアセット、要約等)の生成を行うように構成することができる。第1ビデオ表現は、第1パブリッシャに関連付けることができる。ビデオ表現モジュール106は、第1ビデオ表現を少なくとも第1投稿および第2投稿が利用していることの検出を行うようにも構成することができる。第1投稿および第2投稿は、第1パブリッシャによって開始および/または作成されることができる。ビデオ表現モジュール106は、第1投稿および第2投稿に基づいて、第1ビデオ表現のデータ分析の集約を行うように、さらに構成することができる。ビデオ表現モジュール106に関するさらなる詳細は、
図2を参照して以下提供する。
【0027】
また、ビデオ投稿モジュール108は、第1投稿および第2投稿を階層アーキテクチャの第3レベルで表現可能にできることを行うように構成することができる。いくつかの実施形態では、ビデオ投稿モジュール108は、ビデオ表現モジュール106と互換性があるか、またはビデオ表現モジュール106と一緒に動作可能にすることもできる。一実施例において、ビデオ投稿モジュール108は、ビデオ表現モジュール106と連動して、第1ビデオ表現を少なくとも第1投稿および第2投稿が利用していることを検出することができる。別の実施例において、ビデオ投稿モジュール108は、ビデオ表現モジュール106が第1ビデオ表現についてのデータ分析を集約することができるように、第1投稿および第2投稿からデータ分析、メトリックスおよび/または他の情報を取得することができる。上述したように、本明細書のすべての実施例は説明の目的で提供されており、開示される技術に関連する多くの変形または他の可能性が可能であることが想定される。
【0028】
さらに、いくつかの実施形態において、ビデオ投稿モジュール108は、ビデオ表現モジュール106と連動して、ビデオ・リソースに基づいて生成される第2ビデオ表現を第3投稿が利用していることを検出することができる。第3投稿は、たとえば、第2パブリッシャによって開始または作成されることができる。ビデオ投稿モジュール108は、第3投稿が階層アーキテクチャの第3レベルで表現可能にできるようにすることも可能である。場合により、ビデオ投稿モジュール108および/またはビデオ表現モジュール106は、第3投稿に、第2ビデオ表現の代わりに第1ビデオ表現を利用させることができる。その後、ビデオ表現モジュール106は、さらに第3投稿に基づいて、第1ビデオ表現のデータ分析の集約を行うことができる。いくつかの実施態様において、第2ビデオ表現を第3投稿が利用していることを検出することは、1つまたは複数の画像ハッシュ化処理(たとえば、MD5ハッシュ)に基づくことができる。ここでも、多くの変形が可能である。
【0029】
さらに、いくつかの実施形態において、ビデオ階層アーキテクチャ・モジュール102は、例示的なシステム100に図示されるように、少なくとも1つのデータ・ストア110と通信する、および/または少なくとも1つのデータ・ストア110と一緒に動作するように構成することができる。少なくとも1つのデータ・ストア110は、さまざまなタイプのデータを記憶して維持するように構成することができる。いくつかの実施態様において、少なくとも1つのデータ・ストア110は、ソーシャル・ネットワーキング・システム(たとえば、
図6のソーシャル・ネットワーキング・システム630)に関連付けられている情報を記憶することができる。ソーシャル・ネットワーキング・システムに関連付けられている情報には、ユーザに関するデータ、ソーシャルつながり、ソーシャル対話、位置、ジオフェンス・エリア、地図、場所、イベント、ページ、グループ、投稿、コミュニケーション、コンテンツ、フィード、アカウント設定、プライバシー設定、ソーシャル・グラフ、およびさまざまな他のタイプのデータを含むことができる。いくつかの実施態様において、少なくとも1つのデータ・ストア110は、ユーザ識別子、ユーザ情報、プロフィール情報、ユーザの位置、ユーザが指定した設定、ユーザが生成または投稿したコンテンツ、および他のタイプのユーザ・データ等、ユーザに関連付けられている情報を記憶することができる。いくつかの実施形態では、少なくとも1つのデータ・ストア110は、ビデオ階層アーキテクチャ・モジュール102によって利用される情報を記憶することができる。ここでも、開示される技術に関連する多くの変形または他の可能性が可能であることが想定される。
【0030】
図2は、本開示の一実施形態に係る、階層アーキテクチャに基づくビデオのデータ分析の提供を行うように構成される例示的なビデオ表現モジュール202を示す。いくつかの実施形態において、
図1のビデオ表現モジュール106は、例示的なビデオ表現モジュール202として実装される。
図2に図示されるように、ビデオ表現モジュール202は、ビデオ表現生成モジュール204、ビデオ検出モジュール206、およびデータ分析モジュール208を含むことができる。
【0031】
前述したように、ビデオ表現モジュール202は、階層アーキテクチャの第1レベルのビデオ・リソースに基づいて、階層アーキテクチャの第2レベルで第1ビデオ表現の生成を行うように構成することができる。第1ビデオ表現は、第1パブリッシャに関連付けることができる。一般に、階層アーキテクチャの第2レベルは、ビデオ表現を位置付けるレイヤ(層)を提供することができる。ビデオ・リソースに関連付けられている1つまたは複数のビデオ表現は、データ分析、インサイト、情報、および/または他のメトリックス等を取得(および集約)できるようにすることが可能である。いくつかの実施形態において、第1パブリッシャは、ビデオを提供し、またはアップロードすることができる。ビデオは、第1レベルでビデオ・リソースとして記憶することができる。第1パブリッシャが、ビデオを含む投稿を開始、作成および/または公開しようとする場合、ビデオ表現モジュール202は、ビデオ表現生成モジュール204を利用して、ビデオのインスタンスを表す第1ビデオ表現(つまり、第1ビデオアセット、第1ビデオの要約等)を生成、開発、制作、および/または作成等することができる。場合により、1ビデオにつき1パブリッシャあたり1つのビデオ表現(またはアセット、要約等)にすることができる。場合によっては、特定のユーザ/パブリッシャについて、特定のビデオの複数のビデオ表現が存在可能である。多くの変形が可能である。
【0032】
また、ビデオ表現モジュール202は、述べたように、第1ビデオ表現を少なくとも第1投稿および第2投稿が利用していることの検出を行うように構成することができる。第1投稿および第2投稿は、たとえば、第1パブリッシャによって開始されることができ、階層アーキテクチャの第3レベルで表現可能とすることができる。いくつかの実施態様において、ビデオ表現モジュール202は、ビデオ検出モジュール206を利用して、第1ビデオ表現を少なくとも第1投稿および第2投稿が利用していることの検出を行うことができる。
【0033】
一実施例において、特定のユーザは、階層アーキテクチャの第1レベルで特定のビデオ・リソースとして記憶されることになるビデオをアップロードすることができる。特定のユーザは、ビデオを含む最初の投稿を開始および/または作成することもでき、これは、ビデオ表現生成モジュール204に、その特定のビデオ・リソースに基づいて、この最初の投稿に含まれるビデオの第1ビデオ表現を生成させることができる。ビデオを含むこの最初の投稿について、データ分析を追跡および/または維持することができる。特定のユーザは、次いで、同じくビデオを含む後続の投稿の作成を決めることができる。同じビデオを2回アップロードして記憶する代わりに、ビデオ表現生成モジュール204は、同じビデオの第2ビデオ表現を生成し、この第2ビデオ表現を特定のビデオ・リソースにリンクさせる(またはこの第2ビデオ表現を特定のビデオ・リソースに基づかせる)ことができる。ビデオを含むこの後続の投稿についても、データ分析を追跡および/または維持することができる。このように、開示される技術は、少なくともアップロード動作および記憶動作を減らすことにより、効率を改善することができる。
【0034】
さらに、いくつかの実施形態において、ビデオ表現モジュール202は、データ分析モジュール208を利用して、第1投稿および第2投稿に基づいて、第1ビデオ表現のデータ分析の集約を行うことができる。一般に、ビデオ表現に関連付けられている1つまたは複数の投稿のセット内の各投稿を介して収集されるデータ分析、メトリックス、インサイト、および/または他の情報等を集約して、対応するビデオの総合データ分析を得ることができる。場合により、データ分析は、リーチ情報(たとえば、潜在的なオーディエンス・メンバー/視聴者の数)、再生回数情報、視聴者情報(たとえば、特異な視聴者数)、ソーシャル・エンゲージメント情報(たとえば、「いいね!」、コメントおよび/またはシェアの数)、視聴時間情報(たとえば、視聴継続時間)、または完了情報(たとえば、平均完了率)のうちの少なくとも1つに関連付けることができる。一実施例において、再生回数情報は、第1投稿に関連付けられている第1再生回数と、第2投稿に関連付けられている第2再生回数とを少なくとも含むことができる。この実施例では、第1ビデオ表現のデータ分析を集約することは、第1再生回数および第2再生回数を集約することを含むことができる。さらに、場合により、再生回数情報は、第1投稿に関連付けられている第1再生回数に関する第1属性情報(たとえば、第1投稿に帰属することのできる総再生回数の数、量および/または割合)、および第2投稿に関連付けられている第2再生回数に関する第2属性情報(たとえば、第2投稿に帰属することのできる総再生回数の数、量および/または割合)をさらに含むことができる。ここでも、開示される技術に関連する多くの変形が可能である。
【0035】
いくつかの実施形態において、ビデオ検出モジュール206は、第1ビデオ表現が基づくビデオ・リソースに基づいて生成される第2ビデオ表現を第3投稿が利用しているということの検出を行うことができる。第3投稿は、たとえば、第1パブリッシャとは異なる第2パブリッシャによって開始されることができる。第2パブリッシャは、第2ビデオ表現を生成させるために、合法的に、または違法に(つまり、第1パブリッシャの許可なく)行っていることがある。第2パブリッシャが違法に行っているとき、または第1および第2のパブリッシャが協働を開始しようと決めたとき等、場合により、ビデオ表現モジュール202は、第3投稿に、第2ビデオ表現の代わりに第1ビデオ表現を利用させることができる。その結果、ビデオ分析モジュール208は、さらに第3投稿に基づいて、第1ビデオ表現のデータ分析を集約することができる。場合により、データ分析モジュール208は、第1パブリッシャだけでなく、第2パブリッシャにも、第1ビデオ表現のデータ分析のうちの少なくとも一部へのアクセスを提供することができる。
【0036】
さらに、いくつかの実施形態において、ビデオ検出モジュール206は、著作権確認プロセスを利用して、第2パブリッシャが合法的にビデオを投稿しているか否か(たとえば、著作権を侵害している)を決定することができる。一実施例において、ビデオ検出モジュール206は、たとえば1つまたは複数の画像ハッシュ化アルゴリズムに基づいて、第2パブリッシャからの投稿に含まれるビデオが、第1パブリッシャが投稿したビデオと実質的に(許容可能な偏差内で、かつ、指定された最低閾値信頼度を少なくとも満たすように)同じであるということを検出することができる。ビデオ検出モジュール206は、第2パブリッシャがビデオを利用する許可を第1パブリッシャが与えていなかったことも決定することができる。したがって、この実施例において、ビデオ表現モジュール202は、第1パブリッシャに対して、第2パブリッシャによって第3投稿が開始または作成されていることを示す通知を提供することができる。その後、第1パブリッシャは、たとえば、第2ビデオ表現の代わりに第3投稿に第1ビデオ表現を利用させるコマンドを提供することができる。その結果、生成される、またはビデオの第2パブリッシャの投稿に帰属することのできる再生回数は、引き続き、第1パブリッシャに関連付けられている第1ビデオ表現に対して然るべくクレジット表示されることができる。述べたように、多くの変形が可能である。
【0037】
図3Aは、本開示の一実施形態に係る、階層アーキテクチャに基づくビデオのデータ分析の提供に関連する例示的なシナリオ300を示す。
図3Aの例示的なシナリオ300に図示するように、ユーザA310、ユーザB320およびユーザC330等、複数のパブリッシャが存在することができる。この例示的なシナリオ300において、ユーザB320は、すでにビデオをアップロードしており、これは、開示される技術によって、階層アーキテクチャの第1レベル(たとえば、基底レベル)にビデオ・リソース302として記憶することができる。ユーザB320が、第3レベル(たとえば、最上位レベル)で表現可能な第1投稿322を開始し、または作成していて、ビデオを含めようとするとき、開示される技術は、第2レベル(たとえば、中間レベル)で、第1レベルのビデオ・リソース302に基づき、第1投稿322のビデオ表現326を作成することができる。その後、ユーザB320が同じビデオを含む第2投稿324を開始し、または作成しているとき、開示される技術は、第2投稿324に、すでに存在するビデオ表現326を利用させることができる。
【0038】
さらに、ユーザB320およびユーザC330は、たとえば、第3レベルのユーザCの投稿322が第2レベルのユーザBのビデオ表現326を利用するように協働することに合意済みである。そのため、この例示的なシナリオ300では、ユーザBのビデオ表現326のデータ分析は、ユーザB320およびユーザC330の投稿(たとえば、投稿322、324および332)から集約することができる。
【0039】
さらに、この実施例では、ユーザA310は、投稿312に同じビデオをアップロードすることを決めることができる。開示される技術は、たとえば画像処理手法に基づき、同じビデオのビデオ・リソース302がすでに存在していることを決定でき、そのため、そのビデオ・リソース302に基づいて、ユーザAの投稿312のビデオ表現314を生成することができる。場合により、開示される技術は、著作権確認も行って、ユーザA310の投稿312が合法的/許容可能か否かを決定することができる。いくつかの実施態様において、ユーザA310がユーザB320の同じビデオを含む投稿312を作成する許可を有していない場合、開示される技術は、ユーザB320に通知することができ、ユーザAの投稿312がユーザBのビデオ表現326に依拠するように、ユーザAの投稿312をリダイレクトする選択肢をユーザB320に与えることができる。開示される技術に関連する多くの変形が可能であることが想定される。
【0040】
図3Bは、本開示の一実施形態に係る、階層アーキテクチャに基づくビデオのデータ分析の提供に関連する例示的なシナリオを示す。
図3Bの例示的なシナリオは、ユーザA310の投稿312がリダイレクトされた後の
図3Aの例示的なシナリオを示しているので、ユーザAの投稿312は、ユーザB320に関連付けられているビデオ表現326を利用している。したがって、ユーザB320に関連付けられているビデオ表現326について、ユーザAの投稿312、ユーザBの投稿322および324、ならびにユーザCの投稿332からのデータ分析、インサイト、および/またはメトリックスを集約することができる。さらに、場合により、ビデオ表現326がユーザB320に関連付けられているため、ユーザB320は、すべてのデータ分析情報にアクセスすることができるのに対し、ユーザA310は、ユーザAの投稿312に関連付けられているデータ分析情報(および公開データ分析情報)等、ユーザA310に固有のデータ分析情報のみにアクセスすることができる。ここでも、多くの変形が可能である。
【0041】
図3Cは、本開示の一実施形態に係る、階層アーキテクチャに基づくビデオのデータ分析の提供に関連する例示的なインタフェース350を示す。例示的なインタフェース350は、さまざまなデータ分析352(たとえば、メトリックス、インサイトおよび/または情報等)を提示することができる。たとえば、図示されるように、データ分析352は、リーチ情報(たとえば、潜在的なオーディエンス・メンバー/視聴者の数)、再生回数情報、視聴者情報(たとえば、特異な視聴者数)、ソーシャル・エンゲージメント情報(たとえば、「いいね!」、コメント、および/またはシェアの数)、視聴時間情報(たとえば、視聴継続時間)、および/または完了情報(たとえば、平均完了率)のうちの少なくとも1つに関連付けることができる。いくつかの実施形態において、データ分析352は、1人または複数のユーザによる複数の投稿に関連付けられているビデオ表現について集約されたデータ分析を表すことができる。述べたように、当然のことながら、開示される技術に関連する多くの変形または他の可能性が可能である。
【0042】
図4は、本開示の一実施形態に係る、階層アーキテクチャに基づくビデオのデータ分析の提供に関連する例示的な方法400を示す。当然のことながら、別の記載がない限り、種々実施形態の範囲内で、同様なもしくは別の順番で、または並行して行われる追加のステップ、より少ないステップ、または別のステップが可能である。
【0043】
ブロック402で、例示的な方法400は、階層アーキテクチャの第1レベルでビデオ・リソースを取得することができる。ブロック404で、例示的な方法400は、ビデオ・リソースに基づき、階層アーキテクチャの第2レベルで第1ビデオ表現を生成することができる。第1ビデオ表現は、第1パブリッシャに関連付けることができる。ブロック406で、例示的な方法400は、少なくとも第1投稿および第2投稿が第1ビデオ表現を利用していることを検出することができる。第1投稿および第2投稿は、階層アーキテクチャの第3レベルで表現可能とすることができ、第1パブリッシャによって開始されることができる。ブロック408で、例示的な方法400は、第1投稿および第2投稿に基づいて、第1ビデオ表現のデータ分析を集約することができる。
【0044】
図5は、本開示の一実施形態に係る、階層アーキテクチャに基づくビデオのデータ分析の提供に関連する例示的な方法500を示す。述べたように、当然のことながら、別の記載がない限り、種々実施形態の範囲内で、同様なもしくは別の順番で、または並行して行われる追加のステップ、より少ないステップ、または別のステップが可能である。
【0045】
ブロック502で、例示的な方法500は、ビデオ・リソースに基づいて生成される第2ビデオ表現を第3投稿が利用していることを検出することができる。第3投稿は、第2パブリッシャによって開始されることができる。ブロック504で、例示的な方法500は、第3投稿に、第2ビデオ表現の代わりに第1ビデオ表現を利用させることができる。ブロック506で、例示的な方法500は、第3投稿にさらに基づいて第1ビデオ表現のデータ分析を集約することができる。
【0046】
本開示の種々実施形態に関連する多くの他の利用、アプリケーション、特徴、可能性および/または変形が可能であることが想定される。たとえば、ユーザは、場合により、開示される技術を利用するようオプトインするか否かを選択することができる。開示される技術は、たとえば、さまざまなプライバシー設定、好みおよび構成が維持されることも確保することができ、個人情報の漏洩を防止することができる。別の実施例では、本開示の種々実施形態は、長期的に学習し、改善し、および/または精度を上げることができる。
【0047】
ソーシャル・ネットワーキング・システム‐例示的な実施態様
図6は、本開示の一実施形態に係る、さまざまなシナリオにおいて利用できる例示的なシステム600のネットワーク図を示す。システム600は、1つまたは複数のユーザ・デバイス610、1つまたは複数の外部システム620、ソーシャル・ネットワーキング・システム(またはサービス)630、およびネットワーク650を含む。一実施形態において、上述の実施形態に関連して説明したソーシャル・ネットワーキング・サービス、プロバイダ、および/またはシステムは、ソーシャル・ネットワーキング・システム630として実装されていてもよい。説明のために、
図6に示すシステム600の実施形態には、単一の外部システム620および単一のユーザ・デバイス610を含む。ただし、他の実施形態において、システム600は、より多くのユーザ・デバイス610および/またはより多くの外部システム620を含んでいてもよい。特定の実施形態においては、ソーシャル・ネットワーキング・システム630がソーシャル・ネットワーク・プロバイダにより運用されるのに対して、外部システム620は、異なるエンティティにより運用可能である点において、ソーシャル・ネットワーキング・システム630から分離されている。ただし、種々実施形態において、ソーシャル・ネットワーキング・システム630および外部システム620は、協調して動作することにより、ソーシャル・ネットワーキング・システム630のユーザ(またはメンバー)にソーシャル・ネットワーキング・サービスを提供する。この意味において、ソーシャル・ネットワーキング・システム630は、プラットフォームまたはバックボーンを提供し、これを外部システム620等の他のシステムが利用して、インターネット全体でソーシャル・ネットワーキング・サービスおよび機能をユーザに提供するようにしてもよい。いくつかの実施形態において、ソーシャル・ネットワーキング・システム630は、ソーシャル・メディア・システム(またはサービス)を含み、またはそのシステム(またはサービス)に対応することができる。
【0048】
ユーザ・デバイス610は、ユーザからの入力を受け付けるとともにネットワーク650を介してデータを送受信可能な1つまたは複数のコンピューティング・デバイス(またはシステム)を備える。一実施形態において、ユーザ・デバイス610は、たとえば、Microsoft Windows(登録商標)互換オペレーティング・システム(OS)、Apple OS X、および/またはLinux(登録商標)ディストリビューションを実行する従来のコンピュータ・システムである。別の実施形態において、ユーザ・デバイス610としては、スマートフォン、タブレット、携帯情報端末(PDA)、携帯電話、ラップトップ・コンピュータ、ウェアラブル・デバイス(たとえば、眼鏡、腕時計、ブレスレット等)、カメラ、器具等、コンピューティング・デバイスまたはコンピュータ機能を有するデバイスが可能である。ユーザ・デバイス610は、ネットワーク650を介して通信を行うように構成されている。ユーザ・デバイス610は、そのユーザ・デバイス610のユーザによるソーシャル・ネットワーキング・システム630との相互作用を可能にするブラウザ・アプリケーション等のアプリケーションを実行可能である。別の実施形態において、ユーザ・デバイス610は、iOSおよびANDROID(登録商標)等、ユーザ・デバイス610のネイティブオペレーティング・システムが提供するアプリケーション・プログラミング・インタフェース(API)を通して、ソーシャル・ネットワーキング・システム630と相互作用する。ユーザ・デバイス610は、有線および/または無線通信システムの両方または一方を用いることにより、ローカルエリアおよび/またはワイドエリア・ネットワークの任意の組み合わせを含み得るネットワーク650を介して、外部システム620およびソーシャル・ネットワーキング・システム630と通信するように構成されている。
【0049】
一実施形態において、ネットワーク650は、標準的な通信技術およびプロトコルを使用する。このため、ネットワーク650には、イーサネット(登録商標)、802.11(たとえば、Wi−Fi)、WiMAX(Worldwide Interoperability for Microwave Access)、3G、4G、CDMA(Code Division Multiple Access)、GSM(登録商標)(Global System for Mobile Communications)、LTE(Long Term Evolution)、デジタル・サブスクライバ・ライン(DSL)等の技術を用いたリンクを含み得る。同様に、ネットワーク650で用いられるネットワーキング・プロトコルとしては、マルチ・プロトコル・ラベル・スイッチング(MPLS)、伝送制御プロトコル/インターネット・プロトコル(TCP/IP:Transmission Control Protocol/Internet Protocol)、ユーザ・データグラム・プロトコル(UDP)、ハイパー・テキスト転送プロトコル(HTTP:Hypertext Transport Protocol)、簡易メール転送プロトコル(SMTP:Simple Mail Transfer Protocol)、ファイル転送プロトコル(FTP:File Transfer Protocol)等が挙げられる。ネットワーク650上で交換されるデータは、ハイパー・テキスト・マークアップ言語(HTML:Hypertext Markup Language)および拡張マークアップ言語(XML:Extensible Markup Language)を含む技術および/または形式を用いて表すことができる。また、全部または一部のリンクは、セキュアソケットレイヤ(SSL:Secure Sockets Layer)、トランスポートレイヤセキュリティ(TLS:Transport Layer Security)、およびインターネット・プロトコル・セキュリティ(Ipsec:Internet Protocol security)等の従来の暗号化技術を用いて暗号化可能である。
【0050】
一実施形態において、ユーザ・デバイス610は、外部システム620およびソーシャル・ネットワーキング・システム630から受信したマークアップ言語ドキュメント614をブラウザ・アプリケーション612で処理することにより、外部システム620からの、および/またはソーシャル・ネットワーキング・システム630からのコンテンツを表示するようにしてもよい。マークアップ言語ドキュメント614は、コンテンツおよびそのコンテンツの書式設定または体裁を記述した1つまたは複数の命令を識別する。マークアップ言語ドキュメント614に含まれる命令を実行することにより、ブラウザ・アプリケーション612は、マークアップ言語ドキュメント614により記述された形式または体裁で識別コンテンツを表示する。たとえば、マークアップ言語ドキュメント614には、外部システム620およびソーシャル・ネットワーキング・システム630から読み出されたテキストおよび/または画像データを含む複数のフレームを有するウェブ・ページを生成および表示する命令を含む。種々実施形態において、マークアップ言語ドキュメント614は、拡張マークアップ言語(XML)データ、拡張ハイパー・テキスト・マークアップ言語(XHTML:Extensible Hypertext Markup Language)データ等のマークアップ言語データを含むデータ・ファイルを備える。また、マークアップ言語ドキュメント614は、JSON(JavaScript(登録商標)Object Notation)データ、JSONP(JSON with padding)、およびJavaScriptデータを含むことにより、外部システム620とユーザ・デバイス610との間のデータ交換を容易化するようにしてもよい。ユーザ・デバイス610上のブラウザ・アプリケーション612は、JavaScriptコンパイラを用いて、マークアップ言語ドキュメント614を復号化するようにしてもよい。
【0051】
また、マークアップ言語ドキュメント614は、FLASH(商標)またはUnity(商標)アプリケーション、Silverlight(商標)アプリケーション・フレームワーク等のアプリケーションまたはアプリケーション・フレームワークを含んでいてもよいし、これらとリンクしていてもよい。
【0052】
また、一実施形態において、ユーザ・デバイス610は、そのユーザ・デバイス610のユーザがソーシャル・ネットワーキング・システム630にログインしたか否かを示すデータを含む1つまたは複数のクッキー616を含むことにより、ソーシャル・ネットワーキング・システム630からユーザ・デバイス610に伝達されたデータの変更ができるようになっていてもよい。
【0053】
外部システム620は、ネットワーク650を用いてユーザ・デバイス610に伝達される1つまたは複数のウェブ・ページ622a、622bを含む1つまたは複数のウェブ・サーバを含む。また、外部システム620は、ソーシャル・ネットワーキング・システム630から分離されている。たとえば、外部システム620が第1のドメインと関連付けられる一方、ソーシャル・ネットワーキング・システム630は、別個のソーシャル・ネットワーキング・ドメインと関連付けられている。外部システム620に含まれるウェブ・ページ622a、622bは、コンテンツを識別するとともにその識別コンテンツの書式設定または体裁を指定する命令を含むマークアップ言語ドキュメント614を含む。
【0054】
ソーシャル・ネットワーキング・システム630は、複数のユーザを含み、ソーシャル・ネットワークのユーザに対してそのソーシャル・ネットワークの他のユーザと通信および相互作用する能力を提供する、そのソーシャル・ネットワーク用の1つまたは複数のコンピューティング・デバイスを含む。場合によっては、グラフ、すなわちエッジおよびノードを含むデータ構造により、ソーシャル・ネットワークを表すことができる。ソーシャル・ネットワークは、データベース、オブジェクト、クラス、メタ要素、ファイル、またはその他任意のデータ構造等、他のデータ構造を用いて表すこともできるが、これらに限定されない。ソーシャル・ネットワーキング・システム630は、オペレータにより運営、管理、または制御されるようになっていてもよい。ソーシャル・ネットワーキング・システム630のオペレータは、人間、自動化アプリケーション、またはコンテンツの管理、ポリシーの調整、ソーシャル・ネットワーキング・システム630内の利用状況総計値の収集を行う一連のアプリケーションであってもよい。オペレータは、任意の種類が用いられるようになっていてもよい。
【0055】
ユーザは、ソーシャル・ネットワーキング・システム630に参加した後、ソーシャル・ネットワーキング・システム630のつながりたい任意数の他のユーザとのつながりを追加するようにしてもよい。本明細書において、用語「友達」は、ユーザがソーシャル・ネットワーキング・システム630を介して、つながり、関連性、または関係を形成した、ソーシャル・ネットワーキング・システム630のその他任意のユーザを表す。たとえば、一実施形態において、ソーシャル・ネットワーキング・システム630のユーザがソーシャル・グラフのノードとして表される場合、用語「友達」は、2つのユーザ・ノード間に形成され、これら2つのユーザ・ノードを直接つなげるエッジを表し得る。
【0056】
つながりは、ユーザの共通特性(たとえば、同じ教育機関の同窓生であるユーザ)に基づいて、ユーザが明示的に追加してもよいし、ソーシャル・ネットワーキング・システム630が自動的に作成するようにしてもよい。たとえば、第1のユーザは、友達となる特定の他のユーザを具体的に選択する。ソーシャル・ネットワーキング・システム630におけるつながりは通例、両方向であるが、これは必須ではないため、用語「ユーザ」および「友達」は、枠組みによって決まる。ソーシャル・ネットワーキング・システム630のユーザ間のつながりは通例、双方向(「2方向」)すなわち「相互」であるが、単方向すなわち「1方向」であってもよい。たとえば、ボブ(Bob)およびジョー(Joe)がともにソーシャル・ネットワーキング・システム630のユーザであり、互いにつながっている場合、ボブおよびジョーは、互いのつながりである。一方、ボブがジョーとつながって、ジョーによりソーシャル・ネットワーキング・システム630に伝達されたデータを見たいものの、ジョーが相互のつながりを形成したくない場合は、単方向のつながりが確立されるようになっていてもよい。ユーザ間のつながりは、直接的なつながりであってもよい。ただし、ソーシャル・ネットワーキング・システム630のいくつかの実施形態によれば、つながりは、1つまたは複数のつながりレベルまたは分離度によって、間接的にすることができる。
【0057】
ユーザ間のつながりの確立および維持ならびにユーザ間の相互作用の許可に加えて、ソーシャル・ネットワーキング・システム630は、そのソーシャル・ネットワーキング・システム630によりサポートされたさまざまな種類の項目に対するアクションをユーザが起こせるようにする。これらの項目には、ソーシャル・ネットワーキング・システム630のユーザが属し得るグループまたはネットワーク(すなわち、人々、エンティティ、および概念のソーシャル・ネットワーク)、ユーザが関心を示す可能性があるイベントまたはカレンダ・エントリ、ユーザがソーシャル・ネットワーキング・システム630を介して使用可能なコンピュータ・ベースのアプリケーション、ソーシャル・ネットワーキング・システム630が提供するサービスまたはソーシャル・ネットワーキング・システム630を通してユーザがアイテムの売買を行える取引、およびユーザがソーシャル・ネットワーキング・システム630上またはソーシャル・ネットワーキング・システム630外で実行可能な広告との相互作用、を含んでいてもよい。これらは、ユーザがソーシャル・ネットワーキング・システム630上で行うことができる項目のわずかな例に過ぎず、その他多くが可能である。ユーザは、ソーシャル・ネットワーキング・システム630もしくは外部システム620にて表し得るあらゆるもの、ソーシャル・ネットワーキング・システム630とは別個のあらゆるもの、またはネットワーク650を介してソーシャル・ネットワーキング・システム630に結合されたあらゆるものと相互作用可能である。
【0058】
また、ソーシャル・ネットワーキング・システム630は、多様なエンティティをリンク可能である。たとえば、ソーシャル・ネットワーキング・システム630は、API、ウェブサービス、または他の通信チャンネルを通して、ユーザの互いの相互作用および外部システム620または他のエンティティとの相互作用を可能にする。ソーシャル・ネットワーキング・システム630は、複数のエッジにより相互につなげられた複数のノードを含む「ソーシャル・グラフ」を生成して保持する。ソーシャル・グラフの各ノードは、別のノードに作用可能なエンティティおよび/または別のノードが作用し得るエンティティを表していてもよい。ソーシャル・グラフは、さまざまな種類のノードを含んでいてもよい。ノードの種類の例としては、ユーザ、人間以外のエンティティ、コンテンツ・アイテム、ウェブ・ページ、グループ、アクティビティ、メッセージ、概念、およびソーシャル・ネットワーキング・システム630のオブジェクトにより表し得るその他任意の事物が挙げられる。ソーシャル・グラフの2つのノード間のエッジは、ノード関係または一方のノードが他方のノードに対して行ったアクションに由来し得る2つのノード間の特定種類のつながりすなわち関連性を表していてもよい。場合により、ノード間のエッジは、重み付け可能である。エッジの重みは、ノード間のつながりすなわち関連性の強度等、エッジと関連付けられた属性を表し得る。エッジの種類が異なれば、異なる重みが可能である。たとえば、あるユーザが別のユーザに「いいね!」をした場合に作成されるエッジにある重みが与えられる一方、ユーザが別のユーザと友達になった場合に作成されるエッジには、異なる重みが与えられるようになっていてもよい。
【0059】
一例として、第1のユーザが第2のユーザを友達として識別した場合は、第1のユーザを表すノードと第2のユーザを表す第2のノードとをつなげるソーシャル・グラフのエッジが生成される。さまざまなノードが互いに関連または相互作用すると、ソーシャル・ネットワーキング・システム630は、そのさまざまなノードをつなげるエッジを修正して、上記関係および相互作用を反映する。
【0060】
また、ソーシャル・ネットワーキング・システム630は、そのソーシャル・ネットワーキング・システム630とのユーザの相互作用を増進させるユーザ生成コンテンツを含む。ユーザ生成コンテンツには、ユーザがソーシャル・ネットワーキング・システム630に追加、アップロード、送信、または「投稿」可能なあらゆるものを含み得る。たとえば、ユーザは、ユーザ・デバイス610からソーシャル・ネットワーキング・システム630に投稿を伝達する。投稿には、近況等の文字情報、ロケーション情報、写真等の画像、映像、リンク、音楽、またはその他類似のデータおよび/または媒体等のデータを含んでいてもよい。また、コンテンツは、第三者によってソーシャル・ネットワーキング・システム630に追加されるようになっていてもよい。コンテンツ「アイテム」は、ソーシャル・ネットワーキング・システム630のオブジェクトとして表される。このように、ソーシャル・ネットワーキング・システム630のユーザは、さまざまな通信チャンネルを通して、さまざまな種類の媒体の文字およびコンテンツ・アイテムを投稿することにより、互いの通信が行われる。このような通信では、ユーザの互いの相互作用が増大するとともに、ユーザがソーシャル・ネットワーキング・システム630と相互作用する頻度が高くなる。
【0061】
ソーシャル・ネットワーキング・システム630は、ウェブ・サーバ632、API要求サーバ634、ユーザ・プロフィール・ストア636、つながりストア638、アクション・ロガー640、アクティビティ・ログ642、および認可サーバ644を含む。本発明の一実施形態において、ソーシャル・ネットワーキング・システム630は、さまざまなアプリケーションを対象として、追加の構成要素、より少ない構成要素、または異なる構成要素を含んでいてもよい。ネットワーク・インタフェース、セキュリティ機構、ロード・バランサ、フェイルオーバ・サーバ、管理・ネットワーク運用コンソール等の他の構成要素については、システムの細部が分かり難くならないように、図示していない。
【0062】
ユーザ・プロフィール・ストア636は、略歴、人口統計学的情報、およびユーザによる申告またはソーシャル・ネットワーキング・システム630による推察が行われた職歴、学歴、趣味または好み、ロケーション等の他の種類の記述的情報等、ユーザ・アカウントに関する情報を保持する。この情報は、各ユーザが一意に識別されるように、ユーザ・プロフィール・ストア636に記憶される。また、ソーシャル・ネットワーキング・システム630は、異なるユーザ間の1つまたは複数のつながりを記述したデータをつながりストア638に記憶する。つながり情報は、職歴、グループ・メンバーシップ、趣味、または学歴が類似または共通するユーザを示していてもよい。また、ソーシャル・ネットワーキング・システム630には、ユーザによる他のユーザとの関係の指定を可能にする異なるユーザ間のユーザ定義のつながりを含む。たとえば、ユーザ定義のつながりによれば、ユーザは、友達、同僚、パートナー等、ユーザの実生活の関係と似た他のユーザとの関係を生成可能である。ユーザは、所定の種類のつながりから選択を行うようにしてもよいし、必要に応じて、自身のつながりの種類を規定するようにしてもよい。人間以外のエンティティ、バケット、クラスタセンタ、画像、関心、ページ、外部システム、概念等、ソーシャル・ネットワーキング・システム630の他のノードとのつながりについても、つながりストア638に記憶される。
【0063】
ソーシャル・ネットワーキング・システム630は、ユーザが相互作用可能なオブジェクトに関するデータを保持する。このデータを保持するため、ユーザ・プロフィール・ストア636およびつながりストア638は、ソーシャル・ネットワーキング・システム630により保持された対応する種類のオブジェクトのインスタンスを記憶する。各オブジェクト種類は、オブジェクトの種類に相応しい情報を記憶するのに適した情報フィールドを有する。たとえば、ユーザ・プロフィール・ストア636は、ユーザのアカウントおよびユーザのアカウントに関する情報の記述に適したフィールドを備えたデータ構造を含む。特定種類の新たなオブジェクトが作成された場合、ソーシャル・ネットワーキング・システム630は、対応する種類の新たなデータ構造を初期化し、一意のオブジェクト識別子を割り当てるとともに、必要に応じて、オブジェクトへのデータの追加を開始する。これは、たとえばユーザがソーシャル・ネットワーキング・システム630のユーザとなり、ソーシャル・ネットワーキング・システム630がユーザ・プロフィール・ストア636のユーザ・プロフィールの新たなインスタンスを生成し、一意の識別子をユーザ・アカウントに割り当て、ユーザが提供する情報のユーザ・アカウントのフィールドへの入力を開始した場合に起こる可能性がある。
【0064】
つながりストア638は、ユーザの他のユーザとのつながり、外部システム620とのつながり、または他のエンティティとのつながりを記述するのに適したデータ構造を含む。また、つながりストア638は、ユーザに関する情報へのアクセスを調整するユーザのプライバシー設定と併せて使用可能なユーザのつながりに対して、つながりの種類を関連付けるようにしてもよい。本発明の一実施形態において、ユーザ・プロフィール・ストア636およびつながりストア638は、連合データベースとして実装されていてもよい。
【0065】
つながりストア638、ユーザ・プロフィール・ストア636、およびアクティビティ・ログ642に記憶されたデータによれば、ソーシャル・ネットワーキング・システム630は、ノードを用いてさまざまなオブジェクトを識別するとともに、ノードをつなげるエッジを用いて異なるオブジェクト間の関係を識別するソーシャル・グラフを生成することができる。たとえば、ソーシャル・ネットワーキング・システム630において、第1のユーザが第2のユーザとのつながりを確立した場合は、ユーザ・プロフィール・ストア636からの第1のユーザおよび第2のユーザのユーザ・アカウントがソーシャル・グラフのノードとして作用するようになっていてもよい。つながりストア638が記憶する第1のユーザと第2のユーザとの間のつながりは、第1のユーザおよび第2のユーザと関連付けられたノード間のエッジである。この例を続けて、第2のユーザは、ソーシャル・ネットワーキング・システム630において、第1のユーザにメッセージを送信するようにしてもよい。記憶可能なメッセージを送信するアクションは、第1のユーザおよび第2のユーザを表すソーシャル・グラフの2つのノード間の別のエッジである。また、メッセージ自体は、第1のユーザおよび第2のユーザを表すノードとつながった別のノードとして、ソーシャル・グラフにおいて識別されるとともに含まれていてもよい。
【0066】
別の例において、第1のユーザは、ソーシャル・ネットワーキング・システム630により保持された画像(または、ソーシャル・ネットワーキング・システム630の外部の別のシステムにより保持された画像)において、第2のユーザにタグを付けるようにしてもよい。画像自体は、ソーシャル・ネットワーキング・システム630のノードとして表されていてもよい。このタグ付けアクションによって、第1のユーザと第2のユーザとの間にエッジを作成するとともに、ユーザそれぞれと画像(これもソーシャル・グラフのノードである)との間にエッジを作成するようにしてもよい。さらに別の例において、ユーザがイベントへの出席を確認した場合は、ユーザおよびイベントは、ユーザ・プロフィール・ストア636から得られるノードであり、イベントへの出席は、アクティビティ・ログ642から読み出し可能なノード間のエッジである。ソーシャル・グラフを生成して保持することにより、ソーシャル・ネットワーキング・システム630は、さまざまな種類のオブジェクトならびにこれらオブジェクト間の相互作用およびつながりを記述したデータを含み、社会的な関連情報の宝庫となる。
【0067】
ウェブ・サーバ632は、ネットワーク650を介して、ソーシャル・ネットワーキング・システム630を1つもしくは複数のユーザ・デバイス610および/または1つもしくは複数の外部システム620にリンクさせる。また、ウェブ・サーバ632は、ウェブ・ページのほか、Java(登録商標)、JavaScript、Flash、XML等の他のウェブ関連コンテンツを提供する。ウェブ・サーバ632は、ソーシャル・ネットワーキング・システム630と1つまたは複数のユーザ・デバイス610との間でメッセージの受信およびルーティングを行うメール・サーバ等のメッセージング機能を含んでいてもよい。メッセージとしては、インスタント・メッセージ、待ち行列型メッセージ(たとえば、電子メール)、テキストおよびSMSメッセージ、またはその他任意の適当なメッセージング形式が可能である。
【0068】
API要求サーバ634によれば、1つまたは複数の外部システム620およびユーザ・デバイス610は、1つまたは複数のAPI機能を呼び出すことによって、ソーシャル・ネットワーキング・システム630からのアクセス情報を呼び出すことができる。また、API要求サーバ634によれば、外部システム620は、APIを呼び出すことによって、ソーシャル・ネットワーキング・システム630に情報を送ることができる。一実施形態において、外部システム620は、ネットワーク650を介して、API要求をソーシャル・ネットワーキング・システム630に送信し、API要求サーバ634は、このAPI要求を受信する。API要求サーバ634は、このAPI要求と関連付けられたAPIを呼び出して要求を処理することにより、適当な応答を生成し、これをAPI要求サーバ634が、ネットワーク650を介して外部システム620に伝達する。たとえば、API要求に応答して、API要求サーバ634は、外部システム620にログインしたユーザのつながり等、ユーザと関連付けられたデータを収集し、この収集データを外部システム620に伝達する。別の実施形態において、ユーザ・デバイス610は、外部システム620と同じ様態で、APIを介してソーシャル・ネットワーキング・システム630と通信する。
【0069】
アクション・ロガー640は、ソーシャル・ネットワーキング・システム630上および/またはソーシャル・ネットワーキング・システム630外でのユーザ・アクションに関するウェブ・サーバ632からの通信を受信可能である。また、アクション・ロガー640は、ユーザ・アクションに関する情報をアクティビティ・ログ642に入力することによって、ソーシャル・ネットワーキング・システム630のユーザがそのソーシャル・ネットワーキング・システム630内外で起こしたさまざまなアクションをそのソーシャル・ネットワーキング・システム630が発見できるようにする。ソーシャル・ネットワーキング・システム630上の別のノードに関して特定のユーザが起こした如何なるアクションも、アクティビティ・ログ642または類似のデータベース等のデータ・リポジトリに保持された情報によって、各ユーザのアカウントと関連付け可能である。ソーシャル・ネットワーキング・システム630においてユーザが起こす識別および記憶対象のアクションの例としては、たとえば別のユーザへのつながりの追加、別のユーザへのメッセージの送信、別のユーザからのメッセージを読むこと、別のユーザと関連付けられたコンテンツの閲覧、別のユーザが投稿したイベントへの出席、画像の投稿、画像の投稿の試行、または別のユーザもしくは別のオブジェクトと相互作用するその他のアクションが挙げられる。ユーザがソーシャル・ネットワーキング・システム630においてアクションを起こすと、そのアクションがアクティビティ・ログ642に記録される。一実施形態において、ソーシャル・ネットワーキング・システム630は、エントリのデータベースとしてアクティビティ・ログ642を維持する。ソーシャル・ネットワーキング・システム630においてアクションが起こされると、そのアクションのエントリがアクティビティ・ログ642に追加される。アクティビティ・ログ642は、アクション・ログと称する場合もある。
【0070】
また、ユーザ・アクションは、ソーシャル・ネットワーキング・システム630とは別個の外部システム620等、ソーシャル・ネットワーキング・システム630の外部のエンティティ内で起こる概念およびアクションと関連付けられていてもよい。たとえば、アクション・ロガー640は、外部システム620とのユーザの相互作用を記述したデータをウェブ・サーバ632から受信するようにしてもよい。この例において、外部システム620は、ソーシャル・グラフの構造化されたアクションおよびオブジェクトに従って、ユーザの相互作用を報告する。
【0071】
ユーザが外部システム620と相互作用するアクションの他の例としては、外部システム620または別のエンティティに対する関心をユーザが示すこと、外部システム620または外部システム620内のウェブ・ページ622aに関するコメントをユーザがソーシャル・ネットワーキング・システム630に投稿すること、ユニフォーム・リソース・ロケータ(URL)または外部システム620と関連付けられた他の識別子をユーザがソーシャル・ネットワーキング・システム630に投稿すること、外部システム620と関連付けられたイベントにユーザが出席すること、または外部システム620に関するユーザによるその他任意のアクションが挙げられる。このように、アクティビティ・ログ642には、ソーシャル・ネットワーキング・システム630のユーザとソーシャル・ネットワーキング・システム630とは別個の外部システム620との間の相互作用を記述したアクションを含んでいてもよい。
【0072】
認可サーバ644は、ソーシャル・ネットワーキング・システム630のユーザの1つまたは複数のプライバシー設定を強制する。ユーザのプライバシー設定は、ユーザと関連付けられた特定の情報がどのように共有可能であるかを決定する。プライバシー設定には、ユーザと関連付けられた特定の情報の仕様、および情報を共有可能な1つまたは複数のエンティティの仕様を含む。情報を共有可能なエンティティの例としては、他のユーザ、アプリケーション、外部システム620、または潜在的に情報にアクセス可能な任意のエンティティが挙げられる。ユーザが共有可能な情報には、プロフィール写真、ユーザと関連付けられた電話番号、ユーザのつながり、つながりの追加やユーザ・プロフィール情報の変更等、ユーザが起こしたアクション等のユーザ・アカウント情報を含む。
【0073】
プライバシー設定の仕様は、さまざまな粒度レベルで提供されていてもよい。たとえば、プライバシー設定は、他のユーザと共有される特定の情報を識別していてもよく、勤務先の電話番号またはプロフィール写真、自宅の電話番号、およびステータスを含む個人情報等の特定の関連情報集合を識別する。または、プライバシー設定は、ユーザと関連付けられたすべての情報に適用可能である。特定の情報にアクセス可能なエンティティ集合の仕様についても、さまざまな粒度レベルで指定可能である。情報を共有できるさまざまなエンティティ集合としては、たとえばユーザのすべての友達、友達のすべての友達、すべてのアプリケーション、またはすべての外部システム620が挙げられる。一実施形態によれば、エンティティ集合の仕様には、エンティティ一覧を含むことができる。たとえば、ユーザは、特定の情報へのアクセスが許可された外部システム620の一覧を提供するようにしてもよい。別の実施形態によれば、仕様には、情報へのアクセスが許可されていない例外と併せてエンティティ集合を含むことができる。たとえば、ユーザは、その勤務先情報にすべての外部システム620がアクセスすることを許可するが、その勤務先情報へのアクセスが許可されていない外部システム620の一覧を指定するようにしてもよい。特定の実施形態では、特定の情報へのアクセスが許可されていない例外の一覧を「ブロック・リスト」と称する。ユーザが指定するブロック・リストに属する外部システム620は、プライバシー設定に指定された情報へのアクセスがブロックされる。情報の仕様の粒度および情報が共有されるエンティティの仕様の粒度は、さまざまな組み合わせが可能である。たとえば、すべての個人情報が友達と共有される一方、すべての勤務先情報が友達の友達と共有されるようになっていてもよい。
【0074】
認可サーバ644は、ユーザと関連付けられた特定の情報にユーザの友達、外部システム620、ならびに/または他のアプリケーションおよびエンティティがアクセス可能であるか否かを判定するロジックを含む。外部システム620は、ユーザの勤務先の電話番号等、ユーザのより私的かつ繊細な情報にアクセスするため、認可サーバ644の認可が必要となる場合がある。ユーザのプライバシー設定に基づいて、認可サーバ644は、ユーザが起こすアクションに関する情報等、ユーザと関連付けられた情報に対して、別のユーザ、外部システム620、アプリケーション、または別のエンティティがアクセス可能であるか否かを判定する。
【0075】
いくつかの実施形態において、ソーシャル・ネットワーキング・システム630は、ビデオ階層アーキテクチャ・モジュール646を含むことができる。ビデオ階層アーキテクチャ・モジュール646は、たとえば、
図1のビデオ階層アーキテクチャ・モジュール102として実装される。前述したように、当然のことながら、開示される技術に関連する多くの変形または他の可能性が可能である。たとえば、場合によっては、ビデオ階層アーキテクチャ・モジュール(または少なくともその一部分)は、ユーザ・デバイス610に含まれ、または実装されることができる。ビデオ階層アーキテクチャ・モジュール646の他の特徴は、本明細書で、ビデオ階層アーキテクチャ・モジュール102に関連して説明する。
【0076】
ハードウェアの実装態様
上記プロセスおよび特徴は、多種多様なネットワークおよびコンピューティング環境において、多種多様なマシンおよびコンピュータ・システム・アーキテクチャにより実装可能である。
図7は、本発明の一実施形態に係る、本明細書に記載の実施形態のうちの1つまたは複数の実装に使用可能なコンピュータ・システム700の一例を示す。コンピュータ・システム700には、本明細書に記載のプロセスおよび特徴をそのコンピュータ・システム700に実行させる命令セットを含む。コンピュータ・システム700は、他のマシンにつなげられていてもよい(たとえば、ネットワーク化されていてもよい)。ネットワーク配置において、コンピュータ・システム700は、クライアント‐サーバ・ネットワーク環境におけるサーバ・マシンもしくはクライアント・マシンまたはピア・ツー・ピア(または分散)ネットワーク環境におけるピア・マシンとして動作するようになっていてもよい。本発明の一実施形態において、コンピュータ・システム700は、ソーシャル・ネットワーキング・システム630、ユーザ・デバイス610、および外部システム620、またはその構成要素であってもよい。本発明の一実施形態において、コンピュータ・システム700は、ソーシャル・ネットワーキング・システム630の全部または一部を構成する多くのサーバのうちの1つであってもよい。
【0077】
コンピュータ・システム700は、プロセッサ702、キャッシュ704、ならびにコンピュータ可読媒体に記憶され、本明細書に記載のプロセスおよび特徴を対象とした1つまたは複数の実行可能なモジュールおよびドライバを含む。また、コンピュータ・システム700は、高性能入出力(I/O)バス706および標準I/Oバス708を含む。ホスト・ブリッジ710がプロセッサ702を高性能I/Oバス706に結合させる一方、I/Oバス・ブリッジ712が2つのバス706および708を互いに結合させる。高性能I/Oバス706には、システム・メモリ714および1つまたは複数のネットワーク・インタフェース716が結合されている。コンピュータ・システム700は、ビデオメモリおよびそのビデオメモリに結合された表示装置をさらに含んでいてもよい(図示せず)。標準I/Oバス708には、マス・ストレージ718およびI/Oポート720が結合されている。コンピュータ・システム700は、任意選択として、標準I/Oバス708に結合されたキーボードおよびポインティング・デバイス、表示装置等の入出力デバイス(図示せず)を含んでいてもよい。これらの要素は総じて、カリフォルニア州サンタクララのインテル・コーポレーション社(Intel Corporation)が製造するx86互換プロセッサ、カリフォルニア州サニーベールのアドバンスト・マイクロ・デバイセズ(AMD)社(Advanced Micro Devices (AMD),Inc.)が製造するx86互換プロセッサ、およびその他任意の適当なプロセッサに基づくコンピュータ・システム等、広範囲のコンピュータ・ハードウェア・システムを表すことを意図しているが、これらに限定されない。
【0078】
ソフトウェア・アプリケーション(図示せず)に対するデータの入出力等、コンピュータ・システム700の動作は、オペレーティング・システムが管理および制御する。オペレーティング・システムは、システム上で実行されるソフトウェア・アプリケーションとシステムのハードウェア構成要素との間のインタフェースを提供する。LINUXオペレーティング・システム、カリフォルニア州クパチーノのアップル・コンピュータ・インコーポレイテッド社(Apple Computer Inc.)から入手可能なApple Macintosh オペレーティング・システム、UNIX(登録商標)オペレーティング・システム、Microsoft(登録商標) Windows(登録商標)オペレーティング・システム、BSDオペレーティング・システム等、任意の適切なオペレーティング・システムを使用可能である。他の実施態様も可能である。
【0079】
以下、コンピュータ・システム700の要素について、より詳しく説明する。特に、ネットワーク・インタフェース716は、コンピュータ・システム700とイーサネット(たとえば、IEEE 802.3)ネットワーク、バックプレーン等の広範なネットワークのいずれかとの間の通信を提供する。マス・ストレージ718は、上記識別された各コンピューティング・システムにより実装される上記プロセスおよび特徴を実行するデータおよびプログラミング命令の記憶を提供する。一方、システム・メモリ714(たとえば、DRAM)は、プロセッサ702により実行される場合のデータおよびプログラミング命令の一時的な記憶を提供する。I/Oポート720は、コンピュータ・システム700に結合し得る付加的な周辺機器間の通信を提供する1つもしくは複数のシリアルおよび/またはパラレル通信ポートであってもよい。
【0080】
コンピュータ・システム700は、多様なシステム・アーキテクチャを含んでいてもよく、コンピュータ・システム700のさまざまな構成要素が再配置されるようになっていてもよい。たとえば、キャッシュ704は、プロセッサ702とともにオンチップであってもよい。または、キャッシュ704およびプロセッサ702は、一体的に「プロセッサ・モジュール」としてパッケージングされていてもよく、プロセッサ702は「プロセッサ・コア」と称する。さらに、本発明の特定の実施形態においては、上記構成要素がすべて不要であってもよいし、すべて含んでいなくてもよい。たとえば、高性能I/Oバス706には、標準I/Oバス708に結合された周辺機器が結合されていてもよい。また、いくつかの実施形態においては、バスが1つだけ存在し、コンピュータ・システム700の構成要素がこの単一バスに結合されていてもよい。さらに、コンピュータ・システム700は、付加的なプロセッサ、記憶装置、またはメモリ等、付加的な構成要素を含んでいてもよい。
【0081】
一般的に、本明細書に記載のプロセスおよび特徴は、オペレーティング・システムまたは特定のアプリケーション、コンポーネント、プログラム、オブジェクト、モジュール、もしくは「プログラム」と称する一連の命令の一部として実装されていてもよい。たとえば、本明細書に記載の特定のプロセスは、1つまたは複数のプログラムを用いて実行してもよい。プログラムは通常、1つまたは複数のプロセッサにより読み出されて実行された場合に、本明細書に記載のプロセスおよび特徴を実行する演算をコンピュータ・システム700に行わせる1つまたは複数の命令をコンピュータ・システム700のさまざまなメモリおよび記憶装置に含む。本明細書に記載のプロセスおよび特徴は、ソフトウェア、ファームウェア、ハードウェア(たとえば、特定用途向け集積回路)、またはこれらの任意の組み合わせに実装されていてもよい。
【0082】
一実施態様において、本明細書に記載のプロセスおよび特徴は、分散コンピューティング環境において個別または一括に、コンピュータ・システム700が動作させる一連の実行可能モジュールとして実装されていてもよい。上記モジュールは、ハードウェア、コンピュータ可読媒体(または、機械可読媒体)に記憶された実行可能モジュール、または両者の組み合わせによって実現されるようになっていてもよい。たとえば、これらのモジュールは、プロセッサ702等、ハードウェア・システムのプロセッサにより実行される複数の命令または一連の命令を含んでいてもよい。最初は、マス・ストレージ718等の記憶装置に一連の命令が記憶されていてもよい。ただし、一連の命令は、任意適当なコンピュータ可読記憶媒体に記憶可能である。さらに、一連の命令は、ローカルに記憶する必要はなく、ネットワーク・インタフェース716を介して、ネットワーク上のサーバ等のリモート記憶装置から受信することも可能である。命令は、マス・ストレージ718等の記憶装置からシステム・メモリ714へのコピーの後、プロセッサ702がアクセスして実行する。種々実施態様においては、並列処理環境における複数のサーバ等、1つまたは複数のロケーションの1つまたは複数のプロセッサによって、1つまたは複数のモジュールを実行可能である。
【0083】
コンピュータ可読媒体の例としては、揮発性および不揮発性メモリ・デバイス等の記録可能な種類の媒体、ソリッド・ステート・メモリ、フロッピー(登録商標)等の取り外し可能なディスク、ハード・ディスク・ドライブ、磁気媒体、光ディスク(たとえば、コンパクト・ディスク・リード・オンリー・メモリ(CD ROM)、デジタル多用途ディスク(DVD))、その他類似する非一時的(または、一時的)の有形(または、無形)記憶媒体、またはコンピュータ・システム700による実行によって、本明細書に記載のプロセスおよび特徴のうちのいずれか1つもしくは複数を実行する一連の命令の記憶、符号化、または伝達に適した任意の種類の媒体が挙げられるが、これらに限定されない。
【0084】
説明の便宜上、本明細書の十分な理解が得られるように、多くの具体的詳細を示した。ただし、当業者には、これらの具体的詳細がなくても、本開示の実施形態を実現可能であることが明らかとなろう。場合により、モジュール、構造、プロセス、特徴、およびデバイスをブロック図の形態で示すことによって、説明が分かり難くならないようにしている。他の例では、機能ブロック図およびフロー図を示すことにより、データおよび論理の流れを表している。ブロック図およびフロー図の構成要素(たとえば、モジュール、ブロック、構造、デバイス、特徴等)は、本明細書における明示的な説明および図示以外の様態でのさまざまな組み合わせ、分離、除去、並び替え、および置き換えがなされていてもよい。
【0085】
本明細書における「一実施形態」、「他の実施形態」、「一連の実施形態」、「いくつかの実施形態」、「種々実施形態」等の言及は、その実施形態に関連して説明した特定の特徴、設計、構造、または特性が本開示の少なくとも1つの実施形態に含まれることを意味する。本明細書のさまざまな箇所における表現「一実施形態において」等の出現は、必ずしもすべてが同じ実施形態を表してはおらず、相互に他の実施形態を除外する別個または別の実施形態でもない。さらには、「実施形態」等の明示的な言及の有無に関わらず、いくつかの実施形態においてはさまざまに組み合わせて包含可能であり、他の実施形態においてはさまざまに省略も可能である種々特徴を記載している。同様に、いくつかの実施形態では選好または要件となり得るが、他の実施形態ではなり得ない種々特徴を記載している。さらに、本明細書における「基づく」の言及は、「に少なくとも部分的に基づく」、「の少なくとも一部分/一部に基づく」、「そのうちの少なくとも一部分/一部が〜に基づく」、および/またはその任意の組み合わせを意味することが可能である。
【0086】
本明細書において使用する言語は、主として読み易さおよび教示の便宜上から選択しており、本発明に係る主題を描写または限定するようには選択していない場合がある。したがって、本発明の範囲は、この詳細な説明ではなく、これに基づく用途に由来する任意の請求項によって限定されるものとする。以上から、本発明の実施形態に関する開示は、以下の特許請求の範囲に示す本発明の範囲の例示であり、何ら限定的なものではない。