(57)【要約】システム、方法、および非一時的なコンピュータ可読媒体は、ビデオを表現する一組のビデオセグメントを識別する。一組のビデオセグメントから一部のビデオセグメントが選択される。一部のビデオセグメントに関する再生シーケンスを示すリストが生成される。一部のビデオセグメントの再生は、リストにより示された再生シーケンスに基づいて提供される。
2018514127.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ実行方法であって、
コンピューティングシステムがビデオを表現する一組のビデオセグメントを識別するステップと、
前記コンピューティングシステムが前記一組のビデオセグメントから一部のビデオセグメントを選択するステップと、
前記コンピューティングシステムが前記一部のビデオセグメントに関する再生シーケンスを示すリストを生成するステップと、
前記コンピューティングシステムが前記リストにより示される再生シーケンスに基づいて前記一部のビデオセグメントの再生を提供するステップと
を含むコンピュータ実行方法。
【請求項２】
前記一組のビデオセグメントから前記一部のビデオセグメントを選択することは、
１つまたは複数のオブジェクト認識プロセスを使用して前記一組のビデオセグメントを分析するステップであって、一組における各ビデオセグメントは、静止フレームの個々の集合を含む、前記分析するステップと、
前記一組のビデオセグメントから特定のビデオセグメントに含まれる静止フレームの特定の集合で表される１つまたは複数のオブジェクトを認識するステップと、
前記特定のビデオセグメントを前記一部のビデオセグメントに含めるステップと
を含む、請求項１に記載のコンピュータ実行方法。
【請求項３】
前記１つまたは複数のオブジェクトは、顔、テキスト、文字、記号、ロゴ、マーク、ランドマーク、シーンまたはアクションのうちの少なくとも１つを含む、請求項２に記載のコンピュータ実行方法。
【請求項４】
前記再生シーケンスは、一部における各ビデオセグメントに対する前記ビデオにおける個々の開始時間、一部における各ビデオセグメントに対する前記ビデオにおける個々の再生位置、または一部における各ビデオセグメントに対する個々の再生長のうちの少なくとも１つを含む、請求項１に記載のコンピュータ実行方法。
【請求項５】
前記一部のビデオセグメントを選択することは、前記ビデオの視聴者に関する情報に基づく、請求項１に記載のコンピュータ実行方法。
【請求項６】
前記一部のビデオセグメントに関する再生シーケンスを示すリストを生成することは、前記ビデオの視聴者に関する情報に基づいて動的に実行される、請求項５に記載のコンピュータ実行方法。
【請求項７】
前記ビデオの第２の視聴者に関する情報に基づいて、前記一組のビデオセグメントから第２の一部のビデオセグメントを選択するステップと、
前記第２の一部のビデオセグメントに関する第２の再生シーケンスを示す第２のリストを生成するステップと、
前記第２のリストにより示される第２の再生シーケンスに基づいて前記第２の一部のビデオセグメントの再生を提供するステップと
をさらに含む請求項５に記載のコンピュータ実行方法。
【請求項８】
前記一部のビデオセグメントを選択することは、前記ビデオに関連するメタデータ、前記ビデオに関連する１つまたは複数のサブタイトル、またはサードパーティサービスによって提供される情報のうちの少なくとも１つに基づく、請求項１に記載のコンピュータ実行方法。
【請求項９】
前記リストにより示される前記再生シーケンスに基づいて前記一部のビデオセグメントの再生を提供することは、新たなビデオファイルを作成することなく、かつ新たなビデオ符号化プロセスを実行することなく実行される、請求項１に記載のコンピュータ実行方法。
【請求項１０】
前記一部のビデオセグメントの再生を提供することは、前記一部のビデオセグメントが、前記ビデオの視聴者のコンピューティングデバイスに関連付けられた表示要素の表示領域内にあると判定されたときに自動的に実行され、前記一部のビデオセグメントの再生を提供することは、特定のユーザコマンドが検出されたときに前記ビデオの再生を提供することに移行する、請求項１に記載のコンピュータ実行方法。
【請求項１１】
システムであって、
少なくとも１つのプロセッサと、
命令を格納するメモリと
を備え、前記命令は、前記少なくとも１つのプロセッサによって実行されるときに、システムに
ビデオを表現する一組のビデオセグメントを識別すること、
前記一組のビデオセグメントから一部のビデオセグメントを選択すること、
前記一部のビデオセグメントに関する再生シーケンスを示すリストを生成すること、
前記リストにより示される再生シーケンスに基づいて前記一部のビデオセグメントの再生を提供することを行わせる、システム。
【請求項１２】
前記一組のビデオセグメントから前記一部のビデオセグメントを選択することは、
１つまたは複数のオブジェクト認識プロセスを使用して前記一組のビデオセグメントを分析すること、ここで、一組における各ビデオセグメントは、静止フレームの個々の集合を含み、
前記一組のビデオセグメントから特定のビデオセグメントに含まれる静止フレームの特定の集合で表される１つまたは複数のオブジェクトを認識すること、
前記特定のビデオセグメントを前記一部のビデオセグメントに含めることを含む、請求項１１に記載のシステム。
【請求項１３】
前記再生シーケンスは、一部における各ビデオセグメントに対する前記ビデオにおける個々の開始時間、一部における各ビデオセグメントに対する前記ビデオにおける個々の再生位置、または一部における各ビデオセグメントに対する個々の再生長のうちの少なくとも１つを含む、請求項１１に記載のシステム。
【請求項１４】
前記一部のビデオセグメントを選択することは、前記ビデオの視聴者に関する情報に基づく、請求項１１に記載のシステム。
【請求項１５】
前記リストにより示される前記再生シーケンスに基づいて前記一部のビデオセグメントの再生を提供することは、新たなビデオファイルを作成することなく、かつ新たなビデオ符号化プロセスを実行することなく実行される、請求項１１に記載のシステム。
【請求項１６】
命令を含む非一時的なコンピュータ可読媒体であって、前記命令は、コンピュータ・システムの少なくとも１つのプロセッサによって実行されるときに、前記コンピュータ・システムに
ビデオを表現する一組のビデオセグメントを識別すること、
前記一組のビデオセグメントから一部のビデオセグメントを選択すること、
前記一部のビデオセグメントに関する再生シーケンスを示すリストを生成すること、
前記リストにより示される再生シーケンスに基づいて前記一部のビデオセグメントの再生を提供することを行わせる、非一時的なコンピュータ可読媒体。
【請求項１７】
前記一組のビデオセグメントから前記一部のビデオセグメントを選択することは、
１つまたは複数のオブジェクト認識プロセスを使用して前記一組のビデオセグメントを分析すること、ここで、一組における各ビデオセグメントは、静止フレームの個々の集合を含み、
前記一組のビデオセグメントから特定のビデオセグメントに含まれる静止フレームの特定の集合で表される１つまたは複数のオブジェクトを認識すること、
前記特定のビデオセグメントを前記一部のビデオセグメントに含めることを含む、請求項１６に記載の非一時的なコンピュータ可読媒体。
【請求項１８】
前記再生シーケンスは、一部における各ビデオセグメントに対する前記ビデオにおける個々の開始時間、一部における各ビデオセグメントに対する前記ビデオにおける個々の再生位置、または一部における各ビデオセグメントに対する個々の再生長のうちの少なくとも１つを含む、請求項１６に記載の非一時的なコンピュータ可読媒体。
【請求項１９】
前記一部のビデオセグメントを選択することは、前記ビデオの視聴者に関する情報に基づく、請求項１６に記載の非一時的なコンピュータ可読媒体。
【請求項２０】
前記リストにより示される前記再生シーケンスに基づいて前記一部のビデオセグメントの再生を提供することは、新たなビデオファイルを作成することなく、かつ新たなビデオ符号化プロセスを実行することなく実行される、請求項１６に記載の非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、メディア処理の分野に関する。より詳細には、本技術は、選択されたビデオセグメントの再生を提供するための技術に関する。
【背景技術】
【０００２】
今日、人々は、広範囲の目的のためにコンピューティングデバイス（またはシステム）を頻繁に利用する。ユーザは、コンピューティングデバイスを使用して、例えば、相互にやりとりしたり、コンテンツを作成したり、情報を共有したり、情報にアクセスしたりすることができる。場合によっては、コンピューティングデバイス（またはシステム）のユーザは、コンピューティングデバイスを利用して、ビデオまたは画像などのメディアコンテンツを生成または作成することができる。例えば、ユーザは、コンピューティングデバイスのカメラまたは画像センサを利用して、ビデオを記録または撮影することができる。別の例では、ユーザは、コンピューティングデバイス上で動作するソフトウェアを利用して、ビデオを生成することができる。
【０００３】
場合によっては、ビデオなどのメディアコンテンツを、メディアコンテンツサービス（またはシステム）にアップロードまたは提供することができ、これにより、ビデオを１人または複数の視聴者または観客がアクセスまたは視聴することが可能になる。例えば、ユーザは、コンピューティングデバイスを利用して、ソーシャル・ネットワーキング・サービス（またはシステム）にビデオをアップロードして、ソーシャル・ネットワーキング・サービス（またはシステム）がユーザの特定の社会的つながり（または友達）にユーザのビデオへのアクセスを提供することができる。従来のアプローチの下では、メディアコンテンツサービスからのビデオは一般に長編で再生されるので、ビデオ中の無益な、魅力のない、または無関係なコンテンツが提示されることが多い。このように、ビデオ再生に対する従来のアプローチによれば、視聴者または観客は、ビデオで再生されているもののためにビデオへの関心を失う可能性がある。これらおよびその他の理由により、従来のアプローチは、ビデオなどのメディアコンテンツの提供およびアクセスに関連する全体的なユーザエクスペリエンスの課題を引き起こすか、または低減させる可能性がある。
【発明の概要】
【０００４】
本開示の様々な実施形態は、ビデオを表現する一組のビデオセグメントを識別するように構成されたシステム、方法、および非一時的なコンピュータ可読媒体を含むことができる。一組のビデオセグメントから一部のビデオセグメントを選択することができる。一部のビデオセグメントに関する再生シーケンスを示すリストを生成することができる。一部のビデオセグメントの再生は、リストにより示された再生シーケンスに基づいて提供することができる。
【０００５】
一実施形態では、一組のビデオセグメントから一部のビデオセグメントを選択することは、１つまたは複数のオブジェクト認識プロセスを使用して一組のビデオセグメントを分析することをさらに含むことができる。一組における各ビデオセグメントは、静止フレームの個々の集合を含むことができる。一組のビデオセグメントからの特定のビデオセグメントに含まれる静止フレームの特定の集合で表される１つまたは複数のオブジェクトを認識することができる。特定のビデオセグメントは、一部のビデオセグメントに含めることができる。
【０００６】
一実施形態では、１つまたは複数のオブジェクトは、顔、テキスト、文字、シンボル、ロゴ、マーク、ランドマーク、シーン、またはアクションのうちの少なくとも１つを含むことができる。
【０００７】
一実施形態では、再生シーケンスは、一部における各ビデオセグメントに対するビデオにおける個々の開始時間、一部における各ビデオセグメントに対するビデオにおける個々の再生位置、または一部における各ビデオセグメントに対する個々の再生長のうちの少なくとも１つを含むことができる。
【０００８】
一実施形態では、一部のビデオセグメントを選択することは、ビデオの視聴者に関する情報に基づくことができる。
一実施形態では、一部のビデオセグメントに関する再生シーケンスを示すリストを生成することは、ビデオの視聴者に関する情報に基づいて動的に実行することができる。
【０００９】
一実施形態では、第２の一部のビデオセグメントは、ビデオの第２の視聴者に関する情報に基づいて、一組のビデオセグメントから選択することができる。第２の一部のビデオセグメントの第２の再生シーケンスを示す第２のリストを生成することができる。第２の一部のビデオセグメントの再生は、第２のリストにより示される第２の再生シーケンスに基づいて提供することができる。
【００１０】
一実施形態では、一部のビデオセグメントを選択することは、ビデオに関連するメタデータ、ビデオに関連する１つまたは複数のサブタイトル、またはサードパーティサービスによって提供される情報のうちの少なくとも１つに基づくことができる。
【００１１】
一実施形態では、リストにより示された再生シーケンスに基づいて一部のビデオセグメントの再生を提供することは、新たなビデオファイルを作成することなく、かつ新たなビデオ符号化プロセスを実行することなく実行することができる。
【００１２】
一実施形態では、一部のビデオセグメントの再生を提供することは、一部のビデオセグメントがビデオの視聴者のコンピューティングデバイスに関連付けられた表示要素の表示領域内にあると判定されたときに自動的に実行することができる。一部のビデオセグメントの再生を提供することは、特定のユーザコマンドが検出されたときにビデオの再生を提供することに移行することができる。
【００１３】
開示された技術の多くの他の特徴、応用、実施形態、および／または変形は、添付の図面および以下の詳細な説明から明らかになるであろうことを理解されたい。開示された技術の原理から逸脱することなく、本明細書で説明される構造、システム、非一時的なコンピュータ可読媒体、および方法の追加のおよび／または代替の実施形態を使用することができる。
【図面の簡単な説明】
【００１４】
【図１】本開示の一実施形態による、選択されたビデオセグメントの再生の提供が可能となるように構成された例示的なビデオセグメントモジュールを含む例示的なシステムを示す図である。
【図２Ａ】本開示の一実施形態による、選択されたビデオセグメントの再生の提供が可能となるように構成された例示的なビデオセグメント選択モジュールを示す図である。
【図２Ｂ】本開示の一実施形態による、選択されたビデオセグメントの再生の提供が可能となるように構成されたリスト生成モジュールの一例を示す。
【図３】本開示の一実施形態による、選択されたビデオセグメントの再生を提供することに関連する例示的なビデオ表現を示す図である。
【図４Ａ】本開示の一実施形態による、選択されたビデオセグメントの再生を提供することに関連する例示的なリスト表現を示す図である。
【図４Ｂ】本開示の一実施形態による、選択されたビデオセグメントの再生を提供することに関連する例示的なリスト表現を示す図である。
【図５】本開示の一実施形態による、選択されたビデオセグメントの再生を提供することに関連する例示的な方法を示す。
【図６】本開示の一実施形態による、選択されたビデオセグメントの再生を提供することに関連する例示的な方法を示す図である。
【図７】本開示の一実施形態による、様々なシナリオで利用することができる例示的なソーシャル・ネットワーキング・システムを含む例示的なシステムのネットワーク図を示す。
【図８】本開示の一実施形態による、様々なシナリオで利用することができるコンピュータ・システムまたはコンピューティングデバイスの例を示す。
【発明を実施するための形態】
【００１５】
図面は、説明のみの目的のための開示された技術の様々な実施形態を示しており、図面は同様の構成要素を識別するために同じ参照番号を使用する。当業者であれば、以下の説明から、本明細書に記載の開示された技術の原理から逸脱することなく、図面に示された構造および方法の代替の実施形態を使用できることを容易に認識するであろう。
【００１６】
人々は、多種多様な目的のためにコンピューティングデバイス（またはシステム）を使用する。コンピューティングデバイスは、さまざまな種類の機能を提供することができる。ユーザは、コンピューティングデバイスを利用して情報を生成し、情報にアクセスし、情報を共有することができる。場合によっては、コンピューティングデバイスは、ビデオなどのメディアコンテンツを撮影、記録、または取得することができるカメラを含むか、またはメディアコンテンツに対応することができる。いくつかの例では、ユーザは、コンピューティングデバイス上で動作するメディアソフトウェアを介する等により、コンピューティングデバイスを利用して、ビデオを作成、生成、または制作することができる。
【００１７】
場合によっては、ユーザは、自分のコンピューティングデバイスを使用して、メディアコンテンツサービス（またはシステム）からビデオなどのメディアコンテンツアイテムを取得するか、またはメディアコンテンツサービス（またはシステム）にメディアコンテンツアイテムを提供することができる。例えば、ユーザは、メディアコンテンツを処理し、管理し、格納し、提供するソーシャル・ネットワーキング・サービス（またはシステム）にビデオをアップロードまたは送信することができる。ユーザのプライバシー設定および／または他のプリファレンスに従って、ソーシャル・ネットワーキング・サービスは、ソーシャル・ネットワーキング・サービス内のユーザの社会的つながりまたは友達などの特定の視聴者がユーザのビデオを視聴またはアクセスすることが可能となる。
【００１８】
ビデオ再生を提供する従来のアプローチの下では、ビデオを格納および提供するメディアコンテンツサービスは、一般に、ビデオを完全に提示または再生する。そのため、ビデオの視聴者または観客は、しばしば退屈で、魅力的ではなく、興味のない部分に遭遇することがある。一例では、従来のアプローチに従って、ソーシャル・ネットワーキング・サービスのメディアコンテンツの装備または機能は、特定のビデオをその完全な再生長で提示または再生することができる。ビデオの最初の部分は、１人または複数人の視聴者にとって退屈であり、また無関係であり、後の部分はより興味がある。しかしながら、この例では、退屈なまたは関係のない開始部分のために、１人または複数人の視聴者は、ビデオの視聴をやめて、ビデオのより興味深い部分を見逃す可能性がある。
【００１９】
したがって、これらのおよび／または他の懸念のために、従来のアプローチは、不便、非効率、および／または非実用的であり得る。したがって、改善されたアプローチは、従来のアプローチに関連する様々な欠点に対処するか、または軽減するために有益であり得る。開示された技術は、ビデオ再生長を低減しつつ、選択されたビデオセグメントが視聴者にとってより興味深いものとなり得るように、選択されたビデオセグメントの再生を提供することができる。本開示の様々な実施形態は、ビデオを表現する一組の（ａ  ｓｅｔ  ｏｆ）ビデオセグメントを識別することができる。一組のビデオセグメントから一部の（ａ  ｓｕｂｓｅｔ  ｏｆ）ビデオセグメントを選択することができる。一部のビデオセグメントの再生シーケンスを示すリストを生成することができる。一部のビデオセグメントの再生は、リストにより示される再生シーケンスに基づいて（すなわち、少なくとも部分的に基づいて）提供され得る。多くの変形および／または他の展開性があり得ることが企図される。
【００２０】
図１は、本開示の一実施形態による、選択されたビデオセグメントの再生の提供が可能となるように構成された例示的なビデオセグメントモジュール１０２を含む例示的なシステム１００を示す。図１の例に示すように、ビデオセグメントモジュール１０２は、ビデオ識別モジュール１０４、ビデオセグメント選択モジュール１０６、リスト生成モジュール１０８、およびビデオ再生モジュール１１０を含むことができる。場合によっては、例示的なシステム１００は、少なくとも１つのデータストア１２０を含んでもよい。この図およびすべての図に示された構成要素（例えば、モジュール、要素など）は、例示的なものに過ぎず、他の実施形態は、追加の、より少ない、統合された、または異なる構成要素を含むことができる。いくつかの構成要素は、関連する詳細が曖昧にならないように表示されない場合がある。
【００２１】
いくつかの実施形態では、ビデオセグメントモジュール１０２は、ソフトウェア、ハードウェア、またはそれらの任意の組み合わせとして、部分的または全体的に実施することができる。一般に、本明細書で説明するモジュールは、ソフトウェア、ハードウェア、またはそれらの任意の組み合わせと関連付けることができる。いくつかの実施形態では、モジュールの１つまたは複数の機能、タスク、および／または動作を、ソフトウェアルーチン、ソフトウェアプロセス、ハードウェア、および／またはそれらの任意の組み合わせによって実行または行うことができる。場合によっては、ビデオセグメントモジュール１０２は、ユーザコンピューティングデバイスまたはクライアントコンピューティングデバイス上など、１つまたは複数のコンピューティングデバイスまたはシステム上で動作するソフトウェアとして、部分的または全体的に実施することができる。例えば、ビデオセグメントモジュール１０２またはその少なくとも一部は、図７のユーザデバイス７１０等のユーザコンピューティングデバイスまたはクライアントコンピューティングシステム上で動作するアプリケーション（例えば、アプリ）、プログラム、またはアプレットなどとして、またはその内部で実施することができる。別の例では、ビデオセグメントモジュール１０２またはその少なくとも一部は、ネットワークサーバまたはクラウドサーバなどの１つまたは複数のサーバを含む１つまたは複数のコンピューティングデバイスまたはシステムを使用して実施することができる。いくつかの例では、ビデオセグメントモジュール１０２は、図７のソーシャル・ネットワーキング・システム７３０のようなソーシャル・ネットワーキング・システム（またはサービス）と共に部分的または全体的に実施されるか、または動作するように構成され得る。多くの変形やその他の展開性があることを理解されたい。
【００２２】
ビデオ識別モジュール１０４は、ビデオ（すなわち、ビデオファイル、ビデオクリップなど）を表現する一組のビデオセグメントの識別が可能となるように構成することができる。いくつかの実施形態では、ビデオは、一組のイントラフレームまたはＩフレームを有することができる。例えば、ビデオは、ビデオ用の一組のイントラフレームにおける各イントラフレームに関する情報を提供するメタデータまたはプロパティを有することができる。一般に、イントラフレームは、ビデオの符号化中に他のフレームによって参照される静止フレーム（すなわち、ビデオ静止フレーム、ビデオ画像フレーム、画像など）に対応することができる。場合によっては、イントラフレームは、ビデオ内に周期的に及び／又は繰り返し存在することができる。いくつかの例では、ビデオ内の各新たなシーンの冒頭に個々にイントラフレームを配置することができる。いくつかの例では、符号化プロセスは、イントラフレームをビデオ内のどこに配置するかを決定することができる。多くの変形が可能であることが企図される。
【００２３】
多くの場合、ビデオは、多数のビデオセグメント、ビデオ部分、またはビデオチャンクから構成することができ、形成することができ、および／またはそれらを含むことができる。各イントラフレームは、ビデオ内の特定のビデオセグメントまたはビデオ部分の開始を示すか、または表現することができる。したがって、いくつかの実施形態では、ビデオ識別モジュール１０４は、一組のイントラフレームに関する情報を判定、受信、または取得することに基づいて（すなわち、少なくとも部分的に基づいて）一組のビデオセグメントを識別することができる。
【００２４】
いくつかの実施形態では、ビデオ識別モジュール１０４は、一組のビデオセグメントによって表現されるビデオを識別するように構成することができる。一例では、ビデオ識別モジュール１０４は、ソーシャル・ネットワーキング・システムのメディアコンテンツの装備または機能のようなメディアコンテンツサービスにユーザがアップロードまたは提供することを要求したビデオを識別することができる。この例では、ビデオは、ビデオが一組のビデオによって表現されることを示す情報を含むか、またはその情報に関連付けられている。ビデオ識別モジュール１０４は、そのような情報にアクセスし、その情報の知識を得ること、および／またはその情報を認識することができる。したがって、この例では、ビデオ識別モジュール１０４は、ビデオを識別することに基づいて一組のビデオセグメントを識別することができる。本明細書中のすべての例は、説明のために提供されており、多くの変形または他の展開性があり得ることを理解されたい。
【００２５】
さらに、ビデオセグメント選択モジュール１０６は、一組のビデオセグメントから一部のビデオセグメントを選択することが可能となるように構成することができる。例えば、ビデオセグメント選択モジュール１０６は、興味深い、魅力的な、訴求力のある、および／または視聴者に関連する可能性が高いビデオセグメントを決定して選択するように構成することができる。これらのビデオセグメントを、ビデオセグメント選択モジュール１０６によって選択された一部のビデオセグメントに含めることができる。ビデオセグメント選択モジュール１０６に関するさらなる詳細は、図２Ａを参照して以下に提供される。
【００２６】
さらに、リスト生成モジュール１０８は、一部のビデオセグメントの再生シーケンスを示すリストの生成が可能となるように構成することができる。例えば、リスト生成モジュール１０８は、どのビデオセグメントがどの順序で再生されるべきかを指定するプレイリストまたはマニフェストファイルを生成または作成することができる。この例では、リスト（例えば、プレイリスト、マニフェストファイルなど）は、一部における各ビデオセグメントがいつ再生、表示、または提供されるかを指定することができる。リスト生成モジュール１０８については、図２Ｂを参照してより詳細に説明する。
【００２７】
さらに、ビデオ再生モジュール１１０は、リストにより示される再生シーケンスに基づいて一部のビデオセグメントの再生を提供することが可能となるように構成することができる。いくつかの実施形態では、リストにより示される再生シーケンスに基づいて一部のビデオセグメントの再生を提供することは、新たなビデオファイルを作成することなく、かつ新たなビデオ符号化プロセスを実行することなく実行することができる。例えば、リストに示された再生シーケンスに基づいて、ビデオ再生モジュール１１０は、リストによって指定された順序で一部における各ビデオセグメントの再生を提供することができる。この例では、再生中に、ビデオ再生モジュール１１０は、一部におけるビデオセグメントを、再生シーケンスに基づいて共に切替えるか、または結合されているように見せることができる。リストまたは再生シーケンスは一部における各ビデオセグメントにどのようにアクセスするか（一部における各ビデオセグメントがビデオのどこに位置するか、または配置されているか）を示すのみならず、一部におけるビデオセグメントが再生または提示される順序またはシーケンスをすでに示しているので、一部のビデオを使用して、含むようにして、または基づいて新たなビデオまたは追加のビデオ（つまり、追加のビデオファイル）を作成する必要はない。
【００２８】
また、ビデオのアップロード時に最初の符号化プロセスに続く別の符号化プロセスまたはトランスコードプロセスなどの新たなビデオ符号化プロセスまたは繰り返しのビデオ符号化プロセスは、再生シーケンスに従う一部のビデオセグメントの再生または表示に関して必要ではない。したがって、開示された技術は、時間およびコンピュータ処理能力などの重要なリソースを必要とすることなく、一部のビデオセグメントの再生を提供することができる。
【００２９】
さらに、いくつかの実施形態では、一部のビデオセグメントの再生を提供することは、一部のビデオセグメントが、ビデオの視聴者のコンピューティングデバイスに関連する表示要素の表示領域内にあると判定されたとき、ビデオ再生モジュール１１０によって自動的に実行することができる。ビデオ再生モジュール１１０による一部のビデオセグメントの再生を提供することは、場合によっては、特定のユーザコマンドが検出されたときにビデオの再生を提供することに移行することができる。一例では、視聴者は、ソーシャル・ネットワーキング・システムのユーザを含むことができる。この例では、ユーザは、ソーシャル・ネットワーキング・システムのフィード、タイムライン、プロファイル、またはウォールなどを通してスクロールまたはブラウズすることができる。ユーザは、ポストまたはコンテンツアイテムが、ユーザのコンピューティングデバイスの表示要素（例えば、表示画面、タッチディスプレイなど）上で可視または視認可能となるように、ビデオに対応するポストまたはコンテンツアイテムをスクロールまたはブラウズすることができる。その結果、ビデオ再生モジュール１１０は、ビデオ全体を再生または表示する代わりに、一部のビデオセグメントの再生または表示を自動的に提供することができる。この例を続けると、自身が望む場合、ユーザは、ビデオに対応するポストまたはコンテンツアイテムをクリックしたり、タップしたり、他の方法でインタラクションすることができる。ビデオ再生モジュール１１０は、これに応答して、ビデオに関するユーザのクリック、タップ、または他のインタラクションが検出されたときに一部のビデオセグメントの再生を提供することからビデオの再生を提供することに移行することができる。いくつかの例では、ユーザコマンドが検出されると、ユーザコマンドを検出した時点における一部のビデオセグメントの再生位置からビデオ全体を再生することができる。場合によっては、ユーザコマンドが検出されると、ビデオ全体を最初から再生することができる。いくつかの例では、一部のビデオセグメントおよび／またはビデオの再生中に音声を含める（または除外する）ことができる。多くの変形が可能である。
【００３０】
さらに、いくつかの実施形態では、ビデオセグメントモジュール１０２は、例示的なシステム１００に示すように、少なくとも１つのデータストア１２０と通信および／または動作するように構成することができる。少なくとも１つのデータストア１２０は、多種のデータを格納および維持するように構成されている。いくつかの実施形態では、少なくとも１つのデータストア１２０は、ソーシャル・ネットワーキング・システム（例えば、図７のソーシャル・ネットワーキング・システム７３０）に関連する情報を格納することができる。ソーシャル・ネットワーキング・システムに関連する情報は、ユーザ、社会的つながり、社会的インタラクション、位置、地理的区域、地図、場所、イベント、ページ、グループ、ホスト、通信、コンテンツ、フィード、アカウント設定、プライバシー設定、ソーシャルグラフ、およびその他の各種データを含むことができる。いくつかの実施形態では、少なくとも１つのデータストア１２０は、ユーザ識別子、ユーザ情報、プロファイル情報、ユーザ位置、ユーザ指定設定、ユーザによって生成またはポストされたコンテンツ、および他の各種ユーザデータ等のユーザに関連する情報を格納することができる。いくつかの実施形態では、少なくとも１つのデータストア１２０は、ビデオセグメントモジュール１０２によって利用される情報を格納することができる。例えば、少なくとも１つのデータストア１２０は、ビデオに関連する情報および／またはビデオの１人または複数人の視聴者に関連する情報を格納することができる。多くの変形または他の展開性があり得ることが企図される。
【００３１】
図２Ａは、本開示の一実施形態による、選択されたビデオセグメントの再生の提供が可能となるように構成されたビデオセグメント選択モジュール２０２の一例を示す。いくつかの実施形態では、図１のビデオセグメント選択モジュール１０６は、ビデオセグメント選択モジュール２０２の例として実施することができる。図２Ａに示すように、ビデオセグメント選択モジュール２０２は、オブジェクト認識モジュール２０４、視聴者情報モジュール２０６、およびビデオ情報モジュール２０８を含む。
【００３２】
ビデオセグメント選択モジュール２０２は、ビデオを表現する一組のビデオセグメントから一部のビデオセグメントを選択することが可能となるように構成することができる。例えば、ビデオセグメント選択モジュール２０２は、特定の視聴者および／または一般に対して、興味深い、魅力的な、訴求力のある、および／または関連する可能性がより高いビデオセグメントを決定および選択することを試行することができる。これらのビデオセグメントは、一部のビデオセグメントに含められるか、または一部のビデオセグメントを構成することができる。いくつかの実施形態では、ビデオセグメント選択モジュール２０２は、１つまたは複数のオブジェクト認識プロセス（例えば、マシンビジョン（ｍａｃｈｉｎｅ  ｖｉｓｉｏｎ））を用いて一組のビデオセグメントを分析するオブジェクト認識モジュール２０４を利用することに基づいて一組のビデオセグメントから一部のビデオセグメントを選択することができる。いくつかの例では、一組における各ビデオセグメントは、静止フレーム（すなわち、ビデオ静止フレーム、ビデオ画像フレーム、画像など）の個々の集合を含むことができる。オブジェクト認識モジュール２０４は、一組のビデオセグメントから特定のビデオセグメントに含まれる静止フレームの特定の集合で表現される１つまたは複数のオブジェクトを認識することができる。ビデオセグメント選択モジュール２０２は、特定のビデオセグメントを一部のビデオセグメントに含めるか、または組み込むことができる。これを繰り返して、一部用の他のビデオセグメントを選択することができる。
【００３３】
いくつかの実施形態では、１つまたは複数のオブジェクトは、顔、テキスト、文字、シンボル、ロゴ、マーク、ランドマーク、シーン、またはアクションなどのうちの少なくとも１つを含むことができる。例えば、１つまたは複数のオブジェクト認識プロセスは、１つまたは複数の顔認識プロセスを含むことができる。このように、オブジェクト認識モジュール２０４は、有名人などの関心のあるエンティティが、任意のビデオセグメントの静止フレームに含まれるか、または静止フレームによって描写される（ｄｅｐｉｃｔｅｄ）かどうかを判定または認識することができる。任意のビデオセグメントが、特定の視聴者および／または一般に興味深い少なくとも可能性の閾値であるエンティティ（エンティティの表現（ａ  ｆａｃｅ  ｏｆ  ａｎ  ｅｎｔｉｔｙ））を描写する場合、ビデオセグメント選択モジュール２０２は、任意のビデオセグメントを一部に含めることができる。別の例では、１つまたは複数のオブジェクト認識プロセスは、１つまたは複数の光学的文字認識（ＯＣＲ）プロセスを含むことができる。したがって、オブジェクト認識モジュール２０４は、興味のあるテキスト、文字、記号、および／またはマークなどが任意のビデオセグメントに関する静止フレームに含まれているかどうかを判定または認識することができる。含まれている場合、ビデオセグメント選択モジュール２０２は、任意のビデオセグメントを一部に含めることができる。さらなる例では、１つまたは複数のオブジェクト認識プロセスは、１つまたは複数のアクション／シーン認識プロセス（たとえば、画像／ビデオ分類プロセス）を含むことができる。オブジェクト認識モジュール２０４は、関心のある動作またはシーンが特定のビデオセグメントに関する静止フレームに含まれているかどうかを判定または認識することができる。第１の視聴者（例えば、第１のユーザ、第１の組のユーザ）にとっては、爆発シーンまたはスタントシーンなどのアクションシーンを興味深いか、または関連性があるものとすることができる。特定のビデオセグメントがアクションシーンを含む場合、ビデオセグメント選択モジュール２０２は、第１の視聴者に再生される特定のビデオセグメントを一部に含めることができる。第２の視聴者にとっては、キスシーンのようなロマンチックなシーンを興味深いか、または関連性があるものとすることができる。別のビデオセグメントがロマンチックなシーンを含む場合、ビデオセグメント選択モジュール２０２は、第２の視聴者に再生される他のビデオセグメントを一部に含めることができる。ここでも、例は説明のために提供されており、多くの変形が可能であることを理解されたい。
【００３４】
さらに、いくつかの実施形態では、ビデオセグメント選択モジュール２０２は、ビデオの視聴者に関する情報に基づいて一部のビデオセグメントを選択することができる。ビデオセグメント選択モジュール２０２は、視聴者情報モジュール２０６を利用して、ビデオを視聴しているか、またはアクセスしているソーシャル・ネットワーキング・システムのユーザなど、ビデオの特定の視聴者に関する情報を取得することができる。いくつかの例では、ユーザのプライバシー設定および／またはプリファレンスが許可される場合、視聴者情報モジュール２０６は、ユーザの興味、お気に入り、社会的つながり、および／または他の社会的データなどのユーザに関する情報を取得することができる。この情報に基づいて、一部のビデオセグメントを選択して、一部がユーザに興味深いか、または関連するコンテンツを含む可能性を増加または最大化することができる。
【００３５】
さらに、いくつかの実施形態では、ビデオセグメント選択モジュール２０２は、ビデオに関連するメタデータ、ビデオに関連する１つまたは複数のサブタイトル、またはサードパーティサービスによって提供される情報の少なくとも１つに基づいて一部のビデオセグメントを選択することができる。ビデオ情報モジュール２０８は、そのようなビデオ情報（例えば、メタデータ、サブタイトル、サードパーティ情報など）を取得および／または処理するように構成することができる。例えば、任意のビデオのメタデータは、ビデオセグメント選択モジュール２０２が特定のビデオセグメントを一部に含めることができるように、任意のビデオが特定のビデオセグメントで興味深い公的人物（ｐｕｂｌｉｃ  ｆｉｇｕｒｅ）を描写することを示すことができる。別の例では、サブタイトルは、ビデオセグメント選択モジュール２０２が任意のビデオセグメントを一部に含めることができるように、任意のビデオセグメントが関心のある特定の引用文（ｑｕｏｔｅ）に関連付けられていることを示すことができる。さらなる例では、サードパーティ情報は、特定のオブジェクト、エンティティ、アクション、トピックなどが特定のビデオセグメントに含まれていることを示すことができる。このようなサードパーティ情報は、一部のビデオセグメントを選択する際にも利用することができる。多くの変形または他の可能性があり得ることを理解されたい。
【００３６】
いくつかの実施形態では、ビデオセグメント選択モジュール２０２は、一組のうちのどのビデオセグメントが興味深さ、関連性が低いかを決定し、そのようなビデオセグメントを一部のビデオセグメントから除外することもできる。ここでも、多くの変形が可能である。
【００３７】
図２Ｂは、本開示の一実施形態による、選択されたビデオセグメントの再生の提供が可能となるように構成されたリスト生成モジュール２５２の例を示す。いくつかの実施形態では、図１のリスト生成モジュール１０８は、リスト生成モジュール２５２の例として実施することができる。図２Ｂに示すように、リスト生成モジュール２５２は、ビデオセグメント開始時間モジュール２５４、ビデオセグメント再生位置モジュール２５６、およびビデオセグメント再生長モジュール２５８を含む。
【００３８】
上述したように、リスト生成モジュール２５２は、一部のビデオセグメントの再生シーケンスを示すリストの生成が可能となるように構成することができる。場合によっては、リストは、一部におけるビデオセグメントを識別するプレイリストファイルまたはマニフェストファイル（すなわち、マニフェスト）、一部における各ビデオセグメントにアクセスして再生を提供する方法を指定するプレイリストファイルまたはマニフェストファイル、および／または、一部における各ビデオセグメントの再生時間を示すプレイリストファイルまたはマニフェストファイルのうちの少なくとも１つに関連付けることができる。
【００３９】
いくつかの例では、再生シーケンスは、一部における各ビデオセグメントに対するビデオにおける個々の開始時間（例えば、タイムスタンプなど）、一部における各ビデオセグメントに対するビデオにおける個々の再生位置（例えば、バイト範囲、リソースアドレス、リソースロケーションなど）、または一部における各ビデオセグメントに対する個々の再生長のうちの少なくとも１つを示すことができる。ビデオセグメント開始時間モジュール２５４は、一部における各ビデオセグメントに対する開始時間を決定、受信、または取得するように構成することができる。ビデオセグメント開始時間モジュール２５４はまた、一部における各ビデオセグメントに対する開始時間に関する情報を格納し、かつ／または提供することもできる。同様に、ビデオセグメント再生位置モジュール２５６は、一部における各ビデオセグメントに対する再生位置を取得することができる。ビデオセグメント再生位置モジュール２５６はまた、一部における各ビデオセグメントに対する再生位置に関する情報を格納し、かつ／または提供することもできる。さらに、ビデオセグメント再生長モジュール２５８は、一部における各ビデオセグメントの再生長を取得、格納、および／または提供することができる。したがって、いくつかの実施形態では、ビデオセグメント開始時間モジュール２５４、ビデオセグメント再生位置モジュール２５６、および／またはビデオセグメント再生長モジュール２５８によって提供される情報に基づいてリストを生成することができる。
【００４０】
前述のように、いくつかの実施形態では、一部のビデオセグメントは、ビデオの視聴者に関する情報に基づいて選択することができる。リスト生成モジュール２５２は、場合によっては、ビデオの視聴者に関する情報に基づいてリストを動的に（または「オンザフライで」）生成することができる。例えば、特定の視聴者または視聴者の特定のグループに関する情報は、リアルタイム（または、ニアタイム）で取得することができる。リスト生成モジュール２５２は、特定の視聴者または視聴者の特定のグループに関する情報に基づいて、リアルタイム（またはニアタイム）でリストを生成することができる。場合によっては、一部のビデオセグメントが、予告編、プレビュー、またはビデオ用のハイライトとして提供または表示されることがある。特定の視聴者に関する情報に基づいて一部のビデオセグメントが選択されると、一部のビデオセグメントは、予告編、プレビュー、または特定の視聴者向けに調整されたビデオのハイライトとして提供または表示される。
【００４１】
さらに、一例では、ビデオの第２の視聴者が存在し得る。第２の一部のビデオセグメントは、ビデオの第２の視聴者に関する情報に基づいて（すなわち、少なくとも部分的に基づいて）一組のビデオセグメントから選択することができる。この例では、リスト生成モジュール２５２は、第２の一部のビデオセグメントに対する第２の再生シーケンスを示す第２のリストを生成することができる。開示された技術は、第２のリストにより示される第２の再生シーケンスに基づいて第２の一部のビデオセグメントの再生を提供することができる。したがって、一部のビデオセグメントは、ビデオの視聴者に応じて調整またはカスタマイズすることができる。多くの変形が可能であることが企図される。
【００４２】
図３は、本開示の一実施形態による、選択されたビデオセグメントの再生を提供することに関連する例示的なビデオ表現３００を示す。例示的なビデオ表現３００は、例えば、ビデオまたはビデオファイルに対応することができる。例示的なビデオ表現３００の音声部分は、関連する詳細が曖昧にならないように、図３に明示的に示されていない。図３に示すように、例示的なビデオ表現３００は、ビデオデータ３０２を含むことができる。ビデオデータ３０２は、一組のビデオセグメントまたは一組のビデオ部分をさらに含み、各ビデオセグメントまたは各ビデオ部分が静止フレームの個々の集合に基づくものである。一組のビデオセグメントは、ビデオを表現するか、または例示的なビデオ表現３００を形成することができる。
【００４３】
図３の例に示すように、一組における各ビデオセグメントは、個々のイントラフレームまたはＩフレームに関連付けることができる。いくつかの例では、イントラフレームは、ビデオの規則的な間隔で、新たなシーンがビデオに現れる場所、または適切な場所（例えば、ビデオ符号化プロセスによって決定される）に挿入または配置することができる。場合によっては、一組における各ビデオセグメントの先頭を、特定のイントラフレームによって示すことができる。この例では、第１のイントラフレームＩ１  ３０４は、第１のビデオセグメントの開始を示すことができる。第２のイントラフレームＩ２  ３０６は、第２のビデオセグメントの開始（ならびに第１のビデオセグメントの終わり）を示すことができ、第３のイントラフレームＩ３  ３０８は、第３のビデオセグメントの開始（ならびに第２のビデオセグメントの終わり）、等々を示すことができる。
【００４４】
さらに、ビデオは、シーン１（Ｓ１）〜シーン７（Ｓ７）のような複数のシーンを含むことができる。この例では、特定のシーンの先頭を特定のイントラフレームに関連付けることができる。この例に示すように、第１のシーンＳ１は、第１のイントラフレームＩ１  ３０４に対応することができ、第２のシーンＳ２は、第３のイントラフレームＩ３  ３０８に対応することができ、第３のシーンＳ３は、第５のイントラフレームＩ５に対応すること等ができる。上述したように、開示された技術の様々な実施形態は、一組のビデオセグメントから一部のビデオセグメントを選択し、ビデオのプレビュー、予告編、またはハイライトとして提供または表示することができる選択された一部のビデオセグメントを再生することができる。
【００４５】
図４Ａは、本開示の一実施形態による、選択されたビデオセグメントの再生を提供することに関連する例示的なリスト表現４０２を示す。例示的なリスト表現４０２は、図３の例示的なビデオ表現３００のプレイリストファイルまたはマニフェストファイルに対応することができる。図４Ａに示されるように、例示的なリスト表現４０２は、イントラフレーム４０４に基づくようなビデオセグメントを識別することができる。例示的なリスト表現４０２はまた、各ビデオセグメントのビデオ内の開始時間４０６（または再生位置）を示すことができる。さらに、例示的なリスト表現４０２は、各ビデオセグメントについての再生長４０８を示すこともできる。この例では、例示的なリスト表現４０２は、任意のビデオ（例えば、図３の例示的なビデオ表現３００）に関する一組のすべてのビデオセグメントがオリジナルまたはデフォルトの順序で再生される再生シーケンスを示す。したがって、例示的なリスト表現４０２に基づいて再生を提供する場合、ビデオの全体が再生または提示されることになる。
【００４６】
図４Ｂは、本開示の一実施形態による、選択されたビデオセグメントの再生を提供することに関連する例示的なリスト表現４５２を示す。例示的なリスト表現４５２は、図３の例示的なビデオ表現３００のプレイリストファイルまたはマニフェストファイルに対応することができる。図４Ｂに示すように、例示的なリスト表現４５２は、任意のビデオ（例えば、図３の例示的なビデオ表現３００）を表現する一組のすべてのビデオセグメントから一部のビデオセグメントを識別することができる。一部のビデオセグメントは、各ビデオセグメントがどのように興味深く、魅力的で、訴求力があり、かつ／または関連しているかに基づいて選択することができる。
【００４７】
図４Ｂの例では、第１のシーンＳ１、第３のシーンＳ３、第４のシーンＳ４、および第６のシーンＳ６を含む特定の一部のビデオセグメントが、興味深い（および／または魅力的である、訴求力がある、関連性があるなど）可能性がより高いと判定することができる。例えば、興味深い可能性が高いオブジェクトは、これらのシーンで認識されている可能性がある。したがって、例示的なリスト表現４５２は、これらのシーン（Ｓ１、Ｓ３、Ｓ４、およびＳ６）に対応するビデオセグメントを、再生または提示される一部に含めることができる。示されているように、例示的なリスト表現４５２は、個々のイントラフレーム４５４に基づいてこれらのビデオセグメント（またはシーン）を識別する再生シーケンスを示すことができる。再生シーケンスは、任意のビデオにおける一部の各ビデオセグメントに対する開始時間（または再生位置）４５６をも示すことができる。さらに、再生シーケンスは、各ビデオセグメントに関する再生長４５８を示すことができる。いくつかの実施形態では、例示的なリスト表現４５２において示されるように、各ビデオセグメントがその完全な個々の再生長の持続時間にわたって再生される必要はない。例えば、より高い関心度または関連性レベルを有する可能性が高い一部における特定のシーンまたはビデオセグメントは、より長い期間にわたって再生され得るが、関心度または関連性レベルがより低い可能性がある一部における別のシーンまたはビデオセグメントは、短い期間の間再生される。多くの変形および他の展開性があり得ることが企図される。
【００４８】
図５は、本開示の一実施形態による、選択されたビデオセグメントの再生を提供することに関連する例示的な方法５００を示す。別段の記載がない限り、様々な実施形態の範囲内で、同様のまたは代替の順序で、または並行して実行される、追加の、より少ない、または代替のステップが存在し得ることを理解されたい。
【００４９】
ブロック５０２において、例示的な方法５００は、ビデオを表現する一組のビデオセグメントを識別する。ブロック５０４において、例示的な方法５００は、一組のビデオセグメントから一部のビデオセグメントを選択する。ブロック５０６において、例示的な方法５００は、一部のビデオセグメントに関する再生シーケンスを示すリストを生成する。ブロック５０８において、例示的な方法５００は、リストにより示される再生シーケンスに基づいて一部のビデオセグメントの再生を提供する。
【００５０】
図６は、本開示の一実施形態による、選択されたビデオセグメントの再生を提供することに関連する例示的な方法６００を示す。ここでも、別段の記載がない限り、様々な実施形態の範囲内で、同様のまたは代替の順序で、または並行して実行される追加の、より少ない、または代替のステップが存在し得ることを理解されたい。
【００５１】
ブロック６０２において、例示的な方法６００は、１つまたは複数のオブジェクト認識プロセスを使用して一組のビデオセグメントを分析する。ブロック６０４において、例示的な方法６００は、一組のビデオセグメントから特定のビデオセグメントに含まれる静止フレームの特定の集合で表される１つまたは複数のオブジェクトを認識する。ブロック６０６において、例示的な方法６００は、特定のビデオセグメントを一部のビデオセグメントに含める。
【００５２】
いくつかの実施形態では、任意のビデオを表現する一部のビデオセグメントをランダムに選択することができる。いくつかの実施形態では、一部のビデオセグメントは、任意のビデオ内の特定の時間または間隔で選択することができる。さらに、いくつかの実施形態では、標準画質／解像度バージョンおよび高詳細度／解像度バージョンなど、任意のビデオ（および／または音声）の複数のバージョンを生成することができる。同様に、いくつかの実施形態では、任意のビデオに関する一部のビデオセグメントの複数のバージョンを同様に提供することができる。
【００５３】
本開示の様々な実施形態に関連する多くの他の用途、適用、特徴、可能性、および／または変形があり得ることが企図される。例えば、場合によっては、ユーザは開示された技術を利用することを承諾するか否かを選択することができる。また、開示された技術は、様々なプライバシー設定およびプロファレンスが維持され、かつ個人情報が開示されないようにすることもできる。別の例では、本開示の様々な実施形態は、時間とともに学習、改善、および／または洗練され得る。
【００５４】
ソーシャル・ネットワーキング・システム−例示的な具体例
図７は、本開示の一実施形態に係る、様々なシナリオにおいて利用され得る例示的なシステム７００のネットワーク図を例示する。システム７００は、１つまたは複数のユーザデバイス７１０と、１つまたは複数の外部システム７２０と、ソーシャル・ネットワーキング・システム（またはサービス）７３０と、ネットワーク７５０とを含む。一実施形態において、上述された実施形態に関連して考察されたソーシャル・ネットワーキング・サービス、プロバイダ、および／またはシステムは、ソーシャル・ネットワーキング・システム７３０として具体化され得る。例示の目的のために、図７によって示されるシステム７００の実施形態は、単一の外部システム７２０と、単一のユーザデバイス７１０とを含む。しかしながら、他の実施形態においては、システム７００は、より多くのユーザデバイス７１０、および／または、より多くの外部システム７２０を含んでもよい。一定の実施形態において、ソーシャル・ネットワーキング・システム７３０は、ソーシャル・ネットワーク・プロバイダによって運用されるのに対して、外部システム７２０は、これらが異なるエンティティによって運用され得るという点で、ソーシャル・ネットワーキング・システム７３０とは別個である。しかしながら、様々な実施形態において、ソーシャル・ネットワーキング・システム７３０と外部システム７２０とは、連動して動作して、ソーシャル・ネットワーキング・システム７３０のユーザ（またはメンバー）に対してソーシャル・ネットワーキング・サービスを提供する。この意味で、ソーシャル・ネットワーキング・システム７３０は、プラットフォームまたはバックボーンを提供しており、外部システム７２０などの他のシステムは、このプラットフォームまたはバックボーンを使用して、インターネットでユーザに対してソーシャル・ネットワーキング・サービスおよび機能性を提供し得る。
【００５５】
ユーザデバイス７１０は、ユーザからの入力を受信し、ネットワーク７５０を介してデータを送信および受信することができる、１つまたは複数のコンピューティングデバイス（またはシステム）を備える。１つの実施形態において、ユーザデバイス７１０は、例えば、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）対応のオペレーティング・システム（ＯＳ）、Ａｐｐｌｅ  ＯＳ  Ｘ、および／またはＬｉｎｕｘ（登録商標）ディストリビューションを実行する従来のコンピュータ・システムである。別の実施形態において、ユーザデバイス７１０は、スマートフォン、タブレット、携帯情報端末（ＰＤＡ）、携帯電話、ラップトップコンピュータ、ウェアラブルデバイス（例えば、眼鏡、時計、ブレスレット等）、カメラ、アプライアンスなどの、コンピュータ機能性を有するコンピューティングデバイスまたはデバイスであってもよい。ユーザデバイス７１０は、ネットワーク７５０を介して通信するように構成される。ユーザデバイス７１０は、アプリケーション、例えば、ユーザデバイス７１０のユーザがソーシャル・ネットワーキング・システム７３０とインタラクションすることを可能にするブラウザ・アプリケーションを実行することができる。別の実施形態において、ユーザデバイス７１０は、ｉＯＳおよびＡＮＤＲＯＩＤ（登録商標）などの、ユーザデバイス７１０のネイティブ・オペレーティング・システムによって提供されるアプリケーション・プログラミング・インターフェース（ＡＰＩ）を介して、ソーシャル・ネットワーキング・システム７３０とインタラクションする。ユーザデバイス７１０は、外部システム７２０およびソーシャル・ネットワーキング・システム７３０とネットワーク７５０を介して通信するように構成されており、ネットワーク７５０は、有線通信システムおよび／または無線通信システムを使用した、ローカルエリア・ネットワークおよび／または広域ネットワークの任意の組合せを含み得る。
【００５６】
１つの実施形態において、ネットワーク７５０は、標準的な通信技術およびプロトコルを使用する。したがって、ネットワーク７５０は、イーサネット（登録商標）、７０２．１１、マイクロ波アクセスのための世界的相互運用（ＷｉＭＡＸ）、３Ｇ、４Ｇ、ＣＤＭＡ、ＧＳＭ（登録商標）、ＬＴＥ、デジタル加入者回線（ＤＳＬ）等などの技術を使用するリンクを含むことができる。同様に、ネットワーク７５０上で使用されるネットワーキング・プロトコルは、マルチプロトコル・ラベル・スイッチング（ＭＰＬＳ）、伝送制御プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ）、ユーザ・データグラム・プロトコル（ＵＤＰ）、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、簡易メール転送プロトコル（ＳＭＴＰ）、ファイル転送プロトコル（ＦＴＰ）等を含むことができる。ネットワーク７５０上で交換されるデータは、ハイパーテキスト・マークアップ言語（ＨＴＭＬ）および拡張マークアップ言語（ＸＭＬ）を含む技術および／またはフォーマットを使用して表され得る。また、全部または一部のリンクは、セキュア・ソケット層（ＳＳＬ）、トランスポート層セキュリティ（ＴＬＳ）、およびインターネット・プロトコル・セキュリティ（ＩＰｓｅｃ）などの従来の暗号化技術を使用して暗号化され得る。
【００５７】
１つの実施形態において、ユーザデバイス７１０は、ブラウザ・アプリケーション７１２を使用して、外部システム７２０およびソーシャル・ネットワーキング・システム７３０から受信されるマークアップ言語文書７１４を処理することによって、外部システム７２０および／またはソーシャル・ネットワーキング・システム７３０からのコンテンツを表示し得る。マークアップ言語文書７１４は、コンテンツと、コンテンツのフォーマットまたはプレゼンテーションを記述した１つまたは複数の命令とを識別する。マークアップ言語文書７１４に含まれる命令を実行することによって、ブラウザ・アプリケーション７１２は、マークアップ言語文書７１４によって記述されたフォーマットまたはプレゼンテーションを使用して、識別されたコンテンツを表示する。例えば、マークアップ言語文書７１４は、外部システム７２０およびソーシャル・ネットワーキング・システム７３０から取得されたテキストおよび／または画像データを含む複数のフレームを有するウェブ・ページを生成および表示するための命令を含む。様々な実施形態において、マークアップ言語文書７１４は、拡張マークアップ言語（ＸＭＬ）データ、拡張可能ハイパーテキスト・マークアップ言語（ＸＨＴＭＬ）データ、または他のマークアップ言語データを含むデータ・ファイルを含む。また、マークアップ言語文書７１４は、ＪａｖａＳｃｒｉｐｔ（登録商標）オブジェクト表記（ＪＳＯＮ：ＪａｖａＳｃｒｉｐｔ  Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ）データ、パディングを有するＪＳＯＮ（ＪＳＯＮＰ：ＪＳＯＮ  ｗｉｔｈ  ｐａｄｄｉｎｇ）、およびＪａｖａＳｃｒｉｐｔデータを含んで、外部システム７２０とユーザデバイス７１０との間のデータ交換を容易にし得る。ユーザデバイス７１０上のブラウザ・アプリケーション７１２は、ＪａｖａＳｃｒｉｐｔコンパイラを使用して、マークアップ言語文書７１４をデコードし得る。
【００５８】
マークアップ言語文書７１４はまた、ＦＬＡＳＨ（商標）アプリケーションまたはＵｎｉｔｙ（商標）アプリケーション、ＳｉｌｖｅｒＬｉｇｈｔ（商標）アプリケーション・フレームワーク等などの、アプリケーションもしくはアプリケーション・フレームワークを含み、またはアプリケーションもしくはアプリケーション・フレームワークにリンクし得る。
【００５９】
１つの実施形態において、ユーザデバイス７１０は、ユーザデバイス７１０のユーザがソーシャル・ネットワーキング・システム７３０にログインされているかどうかを示すデータを含む、１つまたは複数のクッキー７１６も含んでおり、クッキー７１６は、ソーシャル・ネットワーキング・システム７３０からユーザデバイス７１０へ通信されるデータの修正を可能にし得る。
【００６０】
外部システム７２０は、１つまたは複数のウェブ・ページ７２２ａ、７２２ｂを含む１つまたは複数のウェブ・サーバを含んでおり、ウェブ・ページ７２２ａ、７２２ｂは、ネットワーク７５０を使用してユーザデバイス７１０へ通信される。外部システム７２０は、ソーシャル・ネットワーキング・システム７３０とは別個である。例えば、外部システム７２０は、第１のドメインに関連付けられる一方で、ソーシャル・ネットワーキング・システム７３０は、別個のソーシャル・ネットワーク・ドメインに関連付けられる。外部システム７２０に含まれるウェブ・ページ７２２ａ、７２２ｂは、コンテンツを識別し、識別されたコンテンツのフォーマットまたはプレゼンテーションを特定する命令を含むマークアップ言語文書７１４を含む。
【００６１】
ソーシャル・ネットワーキング・システム７３０は、複数のユーザを含み、ソーシャル・ネットワークのユーザにソーシャル・ネットワークの他のユーザと通信およびインタラクションする能力を提供するソーシャル・ネットワークのための、１つまたは複数のコンピューティングデバイスを含む。いくつかの例において、ソーシャル・ネットワークは、グラフ、すなわち、エッジとノードとを含むデータ構造によって表され得る。データベース、オブジェクト、クラス、メタ要素、ファイル、または任意の他のデータ構造を含むが、これらに限定されない他のデータ構造も、ソーシャル・ネットワークを表すために使用され得る。ソーシャル・ネットワーキング・システム７３０は、運用者によって運営され、管理され、または制御され得る。ソーシャル・ネットワーキング・システム７３０の運用者は、人間であっても、自動化されたアプリケーションであっても、ソーシャル・ネットワーキング・システム７３０内のコンテンツを管理し、ポリシーを規制し、使用メトリックを収集するための一連のアプリケーションであってもよい。任意のタイプの運用者が使用され得る。
【００６２】
ユーザは、ソーシャル・ネットワーキング・システム７３０に参加し、次いで、ユーザがつながりたいと望むソーシャル・ネットワーキング・システム７３０の任意の数の他のユーザへのつながりを追加し得る。本明細書において、「友達」という用語は、ユーザがソーシャル・ネットワーキング・システム７３０を介してつながり、関連付け、または関係を形成した、ソーシャル・ネットワーキング・システム７３０の任意の他のユーザを指す。例えば、一実施形態において、ソーシャル・ネットワーキング・システム７３０内のユーザが、ソーシャルグラフ内のノードとして表されている場合、「友達」という用語は、２つのユーザ・ノード間に形成され、２つのユーザ・ノードを直接つなげるエッジを指すことができる。
【００６３】
つながりは、ユーザによって明示的に追加されても、ユーザの共通の特性（例えば、同じ教育機関の卒業生であるユーザ）に基づいてソーシャル・ネットワーキング・システム７３０によって自動的に作成されてもよい。例えば、第１のユーザは、友達となるべき特定の他のユーザを具体的に選択する。ソーシャル・ネットワーキング・システム７３０内のつながりは、通常は、両方の方向に存在するが、そうである必要はなく、そのため、「ユーザ」および「友達」という用語は、枠組みに依存する。ソーシャル・ネットワーキング・システム７３０のユーザ間のつながりは、通常は、双方向（「２方向」）または「相互的」であるが、つながりは、一方的または「１方向」であってもよい。例えば、ボブとジョーとの両方が、ソーシャル・ネットワーキング・システム７３０のユーザであり、互いにつなげられている場合、ボブとジョーとは、互いのつながりである。他方で、ボブは、ジョーによってソーシャル・ネットワーキング・システム７３０へ通信されたデータを見るために、ジョーとつながることを望むが、ジョーは、相互的なつながりを形成することを望まない場合には、一方的なつながりが確立され得る。ユーザ間のつながりは、直接的なつながりであってもよい。ただし、ソーシャル・ネットワーキング・システム７３０のいくつかの実施形態は、１つまたは複数のレベルのつながりまたは分離度を介して、つながりが間接的となることを可能にする。
【００６４】
ユーザ間のつながりを確立および維持し、ユーザ間のインタラクションを可能にすることに加えて、ソーシャル・ネットワーキング・システム７３０は、ソーシャル・ネットワーキング・システム７３０によってサポートされる様々なタイプのアイテムに対してアクションを行う能力をユーザに提供する。これらのアイテムは、ソーシャル・ネットワーキング・システム７３０のユーザが所属し得るグループまたはネットワーク（すなわち、人々、エンティティ、およびコンセプトのソーシャル・ネットワーク）、ユーザが興味を持つ可能性があるイベントまたはカレンダー・エントリ、ユーザがソーシャル・ネットワーキング・システム７３０を介して使用し得るコンピュータベースのアプリケーション、ユーザがソーシャル・ネットワーキング・システム７３０によって、またはソーシャル・ネットワーキング・システム７３０を通じて提供されるサービスを介してアイテムを購入または販売することを可能にするトランザクション、ならびに、ユーザがソーシャル・ネットワーキング・システム７３０上でまたはソーシャル・ネットワーキング・システム７３０外で行い得る広告とのインタラクションとを含んでもよい。これらは、ユーザがソーシャル・ネットワーキング・システム７３０上で作用し得るアイテムのほんの少数の例であり、多くの他のものが可能である。ユーザは、ソーシャル・ネットワーキング・システム７３０において表現されることが可能な、または、ソーシャル・ネットワーキング・システム７３０とは別個であるか、もしくはネットワーク７５０を介してソーシャル・ネットワーキング・システム７３０に結合されている外部システム７２０において表現されることが可能な、いかなるものともインタラクションしてもよい。
【００６５】
ソーシャル・ネットワーキング・システム７３０は、多様なエンティティをリンクさせることもできる。例えば、ソーシャル・ネットワーキング・システム７３０は、ユーザが互いにインタラクションすること、およびユーザが外部システム７２０または他のエンティティとＡＰＩ、ウェブ・サービス、または他の通信チャネルを介してインタラクションすることを可能にする。ソーシャル・ネットワーキング・システム７３０は、複数のエッジによって相互接続された複数のノードを含む「ソーシャルグラフ」を生成し、維持する。ソーシャルグラフ内の各ノードは、別のノードに対して作用することができるエンティティおよび／または別のノードによって作用されるエンティティを表し得る。ソーシャルグラフは、様々なタイプのノードを含み得る。ノードのタイプの例は、ユーザ、非人間エンティティ、コンテンツアイテム、ウェブ・ページ、グループ、アクティビティ、メッセージ、コンセプト、および、ソーシャル・ネットワーキング・システム７３０内のオブジェクトによって表現され得る任意の他のものを含む。ソーシャルグラフ内の２つのノードの間のエッジは、この２つのノード間の特定の種類のつながりまたは関連付けを表すことができ、このつながりまたは関連付けは、ノード関係に、またはノードのうちの一方によって他方のノードに対して行われたアクションに由来し得る。いくつかの例においては、ノード間のエッジが、重み付けされてもよい。エッジの重みは、そのエッジに関連付けられた属性、例えば、ノード間のつながりまたは関連付けの強度を表すことができる。異なるタイプのエッジには、異なる重みが提供され得る。例えば、１人のユーザが別のユーザに対して「いいね」を表明した場合に作成されるエッジには、１つの重みが与えられ得る一方で、ユーザが他のユーザと友達になった場合に作成されるエッジには、異なる重みが与えられてもよい。
【００６６】
一例として、第１のユーザが、第２のユーザを友達として識別する場合、第１のユーザを表すノードと、第２のユーザを表す第２のノードとをつなげる、ソーシャルグラフ内のエッジが生成される。様々なノードが互いに関連し、または相互作用するので、ソーシャル・ネットワーキング・システム７３０は、様々なノードをつなげるエッジを修正して、関係および相互作用を反映する。
【００６７】
ソーシャル・ネットワーキング・システム７３０は、ソーシャル・ネットワーキング・システム７３０とのユーザのインタラクションを強化するユーザ生成されたコンテンツも含む。ユーザ生成されたコンテンツは、ユーザがソーシャル・ネットワーキング・システム７３０に追加し、アップロードし、送信し、または「ポストする」ことができる任意のものを含み得る。例えば、ユーザは、ユーザデバイス７１０からソーシャル・ネットワーキング・システム７３０へポストを通信する。ポストは、ステータス更新もしくは他のテキスト・データ、位置情報、写真などの画像、ビデオ、リンク、音楽、または他の同様のデータおよび／もしくは媒体などのデータを含んでもよい。コンテンツはまた、第三者によってソーシャル・ネットワーキング・システム７３０に対して追加されてもよい。「アイテム」というコンテンツは、ソーシャル・ネットワーキング・システム７３０内でオブジェクトとして表される。このようにして、ソーシャル・ネットワーキング・システム７３０のユーザは、様々な通信チャネルを介してテキストおよび様々なタイプの媒体のコンテンツアイテムをポストすることによって、互いに通信するように促される。このような通信は、ユーザ同士のインタラクションを増大させ、ユーザがソーシャル・ネットワーキング・システム７３０とインタラクションする頻度を増加させる。
【００６８】
ソーシャル・ネットワーキング・システム７３０は、ウェブ・サーバ７３２と、ＡＰＩ要求サーバ７３４と、ユーザ・プロフィール・ストア７３６と、つながりストア７３８と、アクション・ロガー７４０と、アクティビティ・ログ７４２と、認証サーバ７４４とを含む。本発明の一実施形態において、ソーシャル・ネットワーキング・システム７３０は、様々なアプリケーションのための付加的な構成要素、より少ない構成要素、または異なる構成要素を含んでもよい。ネットワーク・インターフェース、セキュリティ機構、負荷分散装置、フェイルオーバ・サーバ、管理およびネットワーク運用コンソール等などの他の構成要素は、本システムの詳細を不明瞭にしないように図示されていない。
【００６９】
ユーザ・プロフィール・ストア７３６は、ユーザによって宣言され、またはソーシャル・ネットワーキング・システム７３０によって推測された、職歴、学歴、趣味または嗜好、位置等などの、経歴情報、人口統計学的情報、および他のタイプの記述的情報を含む、ユーザ・アカウントについての情報を維持する。この情報は、各ユーザが一意に識別されるように、ユーザ・プロフィール・ストア７３６内に記憶される。ソーシャル・ネットワーキング・システム７３０は、異なるユーザ間の１つまたは複数のつながりを記述したデータも、つながりストア７３８内に記憶する。つながり情報は、同様のまたは共通の職歴、グループ・メンバーシップ、趣味、または学歴を有するユーザを示し得る。また、ソーシャル・ネットワーキング・システム７３０は、異なるユーザ間のユーザ定義されたつながりを含み、ユーザが他のユーザとの自身の関係を指定することを可能にする。例えば、ユーザ定義されたつながりは、友達、同僚、パートナー等などの、ユーザの実生活の関係と並行する、他のユーザとの関係をユーザが生成することを可能にする。ユーザは、予め定義されたタイプのつながりから選択しても、必要に応じてユーザ自身のつながりタイプを定義してもよい。非人間エンティティ、バケット、クラスタ・センタ、画像、興味、ページ、外部システム、コンセプト等などの、ソーシャル・ネットワーキング・システム７３０内の他のノードとのつながりも、つながりストア７３８内に記憶される。
【００７０】
ソーシャル・ネットワーキング・システム７３０は、ユーザがインタラクションし得るオブジェクトについてのデータを維持する。このデータを維持するために、ユーザ・プロフィール・ストア７３６およびつながりストア７３８は、ソーシャル・ネットワーキング・システム７３０によって維持される、対応するタイプのオブジェクトのインスタンスを記憶する。各オブジェクト・タイプは、そのタイプのオブジェクトに適している情報を記憶するのに適した情報フィールドを有する。例えば、ユーザ・プロフィール・ストア７３６は、ユーザのアカウントおよびユーザのアカウントに関連する情報を記述するのに適したフィールドを有するデータ構造を含む。特定のタイプの新しいオブジェクトが作成されると、ソーシャル・ネットワーキング・システム７３０は、対応するタイプの新しいデータ構造を初期化し、新たなオブジェクトに対して一意のオブジェクト識別子を割り当て、必要に応じて、そのオブジェクトに対するデータを追加し始める。これは、例えば、ユーザがソーシャル・ネットワーキング・システム７３０のユーザとなり、ソーシャル・ネットワーキング・システム７３０が、ユーザ・プロフィール・ストア７３６においてユーザ・プロフィールの新しいインスタンスを生成し、ユーザ・アカウントに対して一意の識別子を割り当て、ユーザによって提供された情報をユーザ・アカウントのフィールドに投入し始める場合に発生し得る。
【００７１】
つながりストア７３８は、他のユーザとのユーザのつながり、外部システム７２０へのつながり、または他のエンティティへのつながりを記述するのに適したデータ構造を含む。つながりストア７３８はまた、接続タイプをユーザのつながりに関連付けることができ、これは、ユーザについての情報へのアクセスを規制するために、ユーザのプライバシー設定と共に使用され得る。本発明の一実施形態において、ユーザ・プロフィール・ストア７３６およびつながりストア７３８は、連合データベースとして実施されてもよい。
【００７２】
つながりストア７３８、ユーザ・プロフィール・ストア７３６、およびアクティビティ・ログ７４２内に記憶されたデータは、ソーシャル・ネットワーキング・システム７３０が、様々なオブジェクトを識別するためのノードと、異なるオブジェクト間の関係を識別するためにノードをつなげるエッジとを使用するソーシャルグラフを生成することを可能にする。例えば、第１のユーザが、ソーシャル・ネットワーキング・システム７３０において第２のユーザとのつながりを確立する場合、ユーザ・プロフィール・ストア７３６からの第１のユーザおよび第２のユーザのユーザ・アカウントは、ソーシャルグラフ内のノードとしての機能を果たし得る。つながりストア７３８によって記憶された、第１のユーザと第２のユーザとの間のつながりは、第１のユーザおよび第２のユーザに関連付けられたノード間のエッジである。この例を続けると、次いで、第２のユーザは、ソーシャル・ネットワーキング・システム７３０内で第１のユーザにメッセージを送信し得る。メッセージを送信するアクションは、記憶されてもよく、第１のユーザおよび第２のユーザを表す、ソーシャルグラフ内の２つのノードの間の別のエッジとなる。また、メッセージ自体は、第１のユーザおよび第２のユーザを表すノードにつなげられた別のノードとしてソーシャルグラフ内で識別され、ソーシャルグラフに含まれ得る。
【００７３】
別の例において、第１のユーザは、ソーシャル・ネットワーキング・システム７３０によって維持される画像において（または、代替的に、ソーシャル・ネットワーキング・システム７３０の外部の別のシステムによって維持されている画像において）第２のユーザをタグ付けし得る。画像は、それ自体が、ソーシャル・ネットワーキング・システム７３０内のノードとして表され得る。このタグ付けアクションは、第１のユーザと第２のユーザとの間にエッジを作成し、ユーザの各々と画像との間にもエッジを作成する。画像も、ソーシャルグラフ内のノードである。さらに別の例において、ユーザがイベントへの出席を確認する場合、ユーザおよびイベントは、ユーザ・プロフィール・ストア７３６から取得されるノードであり、イベントへの出席は、アクティビティ・ログ７４２から取得され得るノード間のエッジである。ソーシャルグラフを生成し、維持することによって、ソーシャル・ネットワーキング・システム７３０は、多くの異なるタイプのオブジェクトならびにそれらのオブジェクト間の相互作用およびつながりを記述するデータを含んで、社会的に関連する情報の豊富なソースを提供する。
【００７４】
ウェブ・サーバ７３２は、ソーシャル・ネットワーキング・システム７３０を、１つもしくは複数のユーザデバイス７１０および／または１つもしくは複数の外部システム７２０に、ネットワーク７５０を介してリンクする。ウェブ・サーバ７３２は、ウェブ・ページに、およびＪａｖａ（登録商標）、ＪａｖａＳｃｒｉｐｔ、Ｆｌａｓｈ、ＸＭＬ等などの他のウェブ関連コンテンツにサービスを提供する。ウェブ・サーバ７３２は、ソーシャル・ネットワーキング・システム７３０と１つまたは複数のユーザデバイス７１０との間でメッセージを受信およびルーティングするための、メール・サーバまたは他のメッセージング機能を含み得る。メッセージは、インスタント・メッセージ、キューに入れられたメッセージ（例えば、電子メール）、テキストおよびＳＭＳメッセージ、または任意の他の適切なメッセージング・フォーマットであってもよい。
【００７５】
ＡＰＩ要求サーバ７３４は、１つまたは複数の外部システム７２０およびユーザデバイス７１０が、１つまたは複数のＡＰＩ関数を呼び出すことによって、ソーシャル・ネットワーキング・システム７３０からのアクセス情報を呼び出すことを可能にする。ＡＰＩ要求サーバ７３４は、外部システム７２０が、ＡＰＩを呼び出すことによって、ソーシャル・ネットワーキング・システム７３０へ情報を送信することも可能にし得る。外部システム７２０は、１つの実施形態において、ネットワーク７５０を介してソーシャル・ネットワーキング・システム７３０へＡＰＩ要求を送信し、ＡＰＩ要求サーバ７３４は、このＡＰＩ要求を受信する。ＡＰＩ要求サーバ７３４は、ＡＰＩ要求に関連付けられたＡＰＩを呼び出して、適当な応答を生成することによって、要求を処理し、ＡＰＩ要求サーバ７３４は、この適当な応答を、ネットワーク７５０を介して外部システム７２０へ通信する。例えば、ＡＰＩ要求に応じて、ＡＰＩ要求サーバ７３４は、ユーザに関連付けられたデータ、例えば、外部システム７２０にログインしたユーザのつながりなどを収集し、収集されたデータを外部システム７２０へ通信する。別の実施形態において、ユーザデバイス７１０は、外部システム７２０と同様に、ＡＰＩを介してソーシャル・ネットワーキング・システム７３０と通信する。
【００７６】
アクション・ロガー７４０は、ウェブ・サーバ７３２から、ソーシャル・ネットワーキング・システム７３０上でのおよび／またはソーシャル・ネットワーキング・システム７３０外でのユーザ・アクションについての通信を受信することが可能である。アクション・ロガー７４０は、ユーザ・アクションについての情報をアクティビティ・ログ７４２に投入し、ソーシャル・ネットワーキング・システム７３０が、ソーシャル・ネットワーキング・システム７３０内およびソーシャル・ネットワーキング・システム７３０外でそのユーザによって行われた様々なアクションを発見することを可能にする。特定のユーザが、ソーシャル・ネットワーキング・システム７３０上の別のノードに対して行う任意のアクションは、アクティビティ・ログ７４２または類似のデータベースもしくは他のデータ・リポジトリにおいて維持される情報を介して、各ユーザのアカウントに関連付けられ得る。識別および記憶される、ソーシャル・ネットワーキング・システム７３０内でユーザによって行われるアクションの例は、例えば、別のユーザへのつながりを追加すること、別のユーザにメッセージを送信すること、別のユーザからのメッセージを読むこと、別のユーザに関連付けられたコンテンツを見ること、別のユーザによってポストされたイベントに出席すること、画像をポストすること、画像をポストしようと試みること、または別のユーザもしくは別のオブジェクトと相互作用する他のアクションを含んでもよい。ユーザが、ソーシャル・ネットワーキング・システム７３０内でアクションを行う場合、このアクションは、アクティビティ・ログ７４２内に記録される。１つの実施形態において、ソーシャル・ネットワーキング・システム７３０は、アクティビティ・ログ７４２をエントリのデータベースとして維持する。アクションが、ソーシャル・ネットワーキング・システム７３０内で行われると、そのアクションについてのエントリは、アクティビティ・ログ７４２に対して追加される。アクティビティ・ログ７４２は、アクション・ログと称されてもよい。
【００７７】
また、ユーザ・アクションは、ソーシャル・ネットワーキング・システム７３０とは別個の外部システム７２０などの、ソーシャル・ネットワーキング・システム７３０の外部のエンティティ内で発生するコンセプトおよびアクションに関連付けられてもよい。例えば、アクション・ロガー７４０は、ウェブ・サーバ７３２から、外部システム７２０とのユーザのインタラクションを記述したデータを受信し得る。この例において、外部システム７２０は、ソーシャルグラフ内の構造化されたアクションおよびオブジェクトに従ってユーザのインタラクションを報告する。
【００７８】
ユーザが外部システム７２０とインタラクションするアクションの他の例は、ユーザが外部システム７２０または別のエンティティにおいて興味を表現すること、外部システム７２０または外部システム７２０内のウェブ・ページ７２２ａを考察するコメントをユーザがソーシャル・ネットワーキング・システム７３０にポストすること、外部システム７２０に関連付けられたユニフォーム・リソース・ロケータ（ＵＲＬ）もしくは他の識別子をユーザがソーシャル・ネットワーキング・システム７３０にポストすること、外部システム７２０に関連付けられたイベントにユーザが出席すること、または外部システム７２０に関連する、ユーザによる任意の他のアクションを含む。したがって、アクティビティ・ログ７４２は、ソーシャル・ネットワーキング・システム７３０のユーザと、ソーシャル・ネットワーキング・システム７３０とは別個の外部システム７２０との間のインタラクションを記述したアクションを含み得る。
【００７９】
認証サーバ７４４は、ソーシャル・ネットワーキング・システム７３０のユーザの１つまたは複数のプライバシー設定を強化する。ユーザのプライバシー設定は、ユーザに関連付けられた特定の情報がどのように共有されるかを決定する。プライバシー設定は、ユーザに関連付けられた特定の情報の仕様と、その情報が共有され得る１つまたは複数のエンティティの仕様とを含む。情報が共有され得るエンティティの例は、他のユーザ、アプリケーション、外部システム７２０、または情報に潜在的にアクセスすることができる任意のエンティティを含み得る。ユーザによって共有され得る情報は、ユーザ・アカウント情報、例えば、プロフィール写真、ユーザに関連付けられた電話番号、ユーザのつながり、ユーザによって行われたアクション、例えば、つながりを追加すること、ユーザ・プロフィール情報を変更すること等などを含む。
【００８０】
プライバシー設定仕様は、異なるレベルの粒度で提供され得る。例えば、プライバシー設定は、他のユーザと共有されるべき特定の情報を識別してもよい。プライバシー設定は、勤務先電話番号、または、プロフィール写真、自宅電話番号、およびステータスを含む個人情報などの特定の一組の関連情報を識別し得る。代替的に、プライバシー設定は、ユーザに関連付けられる全ての情報に対して適用されてもよい。特定の情報にアクセスすることができる一組のエンティティの仕様も、様々なレベルの粒度で特定され得る。情報が共有され得る様々な一組のエンティティは、例えば、ユーザの全ての友達、友達の全ての友達、全てのアプリケーション、または全ての外部システム７２０を含み得る。１つの実施形態は、一組のエンティティの仕様がエンティティの列挙を含むことを可能にする。例えば、ユーザは、一定の情報にアクセスすることが許可された外部システム７２０のリストを提供してもよい。別の実施形態は、情報にアクセスすることを許可されていない例外と共に、一組のエンティティを仕様が含むことを可能にする。例えば、ユーザは、全ての外部システム７２０がユーザの勤務先情報にアクセスすることを許可し得るが、勤務先情報にアクセスすることが許可されない外部システム７２０のリストを特定し得る。一定の実施形態は、一定の情報にアクセスすることが許可されない例外のリストを「ブロック・リスト」と呼ぶ。ユーザによって特定されたブロック・リストに属する外部システム７２０は、プライバシー設定で特定された情報にアクセスすることを阻止される。情報の仕様の粒度と、情報が共有されるエンティティの仕様の粒度との様々な組合せが可能である。例えば、全ての個人情報が、友達と共有され得るのに対して、全ての勤務先情報は、友達の友達と共有されてもよい。
【００８１】
認証サーバ７４４は、ユーザに関連付けられた一定の情報が、ユーザの友達、外部システム７２０、ならびに／または他のアプリケーションおよびエンティティによってアクセスされ得るかどうかを決定するためのロジックを含む。外部システム７２０は、ユーザの勤務先電話番号等の、ユーザのより私的な機密情報にアクセスするために、認証サーバ７４４からの認証を必要とし得る。ユーザのプライバシー設定に基づいて、認証サーバ７４４は、別のユーザ、外部システム７２０、アプリケーション、または別のエンティティが、ユーザによって行われたアクションについての情報を含む、ユーザに関連付けられた情報にアクセスすることを許可されているかどうかを決定する。
【００８２】
いくつかの実施形態では、ソーシャル・ネットワーキング・システム７３０は、ビデオセグメントモジュール７４６を含むことができる。ビデオセグメントモジュール７４６は、例えば、図１のビデオセグメントモジュール１０２として実施することができる。前述したように、多くの変形または他の展開性がある。例えば、一部の例では、ビデオセグメントモジュール７４６（またはその少なくとも一部）をユーザデバイス７１０に含めることができる。ビデオセグメントモジュール７４６の他の機能は、ビデオセグメントモジュール１０２に関連して本明細書で説明する。
【００８３】
ハードウェアの具体例
前述の方法および特徴は、多種多様な機械およびコンピュータ・システム・アーキテクチャによって、ならびに多種多様なネットワーク環境およびコンピューティング環境において具体化され得る。図８は、本発明の一実施形態に係る、本明細書において記載される実施形態のうちの１つまたは複数を実施するために使用され得るコンピュータ・システム８００の一例を例示する。コンピュータ・システム８００は、コンピュータ・システム８００に、本明細書において考察される方法および特徴を実行させるための一組の命令を含む。コンピュータ・システム８００は、他の機械に接続され（例えば、ネットワーク化され）てもよい。ネットワーク化された配置において、コンピュータ・システム８００は、クライアント・サーバ・ネットワーク環境におけるサーバ・マシンもしくはクライアント・マシンの能力内で、またはピア・ツー・ピア（もしくは分散）ネットワーク環境におけるピア・マシンとして動作し得る。本発明の一実施形態において、コンピュータ・システム８００は、ソーシャル・ネットワーキング・システム７３０、ユーザデバイス７１０、および外部システム８２０、または、これらの構成要素であってもよい。本発明の一実施形態において、コンピュータ・システム８００は、ソーシャル・ネットワーキング・システム７３０の全部または一部を構成する多くのうちの１つのサーバであってもよい。
【００８４】
コンピュータ・システム８００は、プロセッサ８０２と、キャッシュ８０４と、本明細書において記載された方法および特徴に向けられる、コンピュータ読取可能な媒体上に記憶された１つまたは複数の実行可能なモジュールおよびドライバとを含む。また、コンピュータ・システム８００は、高性能入出力（Ｉ／Ｏ）バス８０６と、標準Ｉ／Ｏバス８０８とを含む。ホスト・ブリッジ８１０は、プロセッサ８０２を高性能Ｉ／Ｏバス８０６に結合するのに対して、Ｉ／Ｏバス・ブリッジ８１２は、２つのバス８０６および８０８を互いに結合する。システム・メモリ８１４および１つまたは複数のネットワーク・インターフェース８１６は、高性能Ｉ／Ｏバス８０６に結合される。コンピュータ・システム８００は、ビデオ・メモリと、ビデオ・メモリ（図示せず）に結合された表示装置とをさらに含み得る。大容量記憶装置８１８およびＩ／Ｏポート８２０は、標準Ｉ／Ｏバス８０８に結合される。コンピュータ・システム８００は、随意的に、キーボードおよびポインティング・デバイス、表示装置、または標準Ｉ／Ｏバス８０８に結合された他の入出力装置（図示せず）を含んでもよい。集合的に、これらの要素は、カリフォルニア州サンタ・クララのＩｎｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎによって製造されたｘ８６互換プロセッサ、およびカリフォルニア州サニーヴェイルのＡｄｖａｎｃｅｄ  Ｍｉｃｒｏ  Ｄｅｖｉｃｅｓ（ＡＭＤ），Ｉｎｃ．によって製造されたｘ８６互換プロセッサ、ならびに任意の他の適切なプロセッサに基づくコンピュータ・システムを含むが、これらに限定されない、広いカテゴリのコンピュータ・ハードウェア・システムを表すことを意図されている。
【００８５】
オペレーティング・システムは、ソフトウェア・アプリケーション（図示せず）へのデータの入力およびソフトウェア・アプリケーションからのデータの出力を含む、コンピュータ・システム８００の動作を管理し、制御する。オペレーティング・システムは、システム上で実行されるソフトウェア・アプリケーションとシステムのハードウェア構成要素との間のインターフェースを提供する。任意の適切なオペレーティング・システム、例えば、ＬＩＮＵＸオペレーティング・システム、カリフォルニア州クパチーノのＡｐｐｌｅ  Ｃｏｍｐｕｔｅｒ  Ｉｎｃ．から入手可能なＡｐｐｌｅ  Ｍａｃｉｎｔｏｓｈオペレーティング・システム、ＵＮＩＸ（登録商標）オペレーティング・システム、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｗｉｎｄｏｗｓ（登録商標）オペレーティング・システム、ＢＳＤオペレーティング・システム等などが使用され得る。他の実施例も可能である。
【００８６】
コンピュータ・システム８００の要素は、下記でより詳細に記載される。特に、ネットワーク・インターフェース８１６は、コンピュータ・システム８００と、幅広いネットワークのうちの任意のもの、例えば、イーサネット（例えばＩＥＥＥ８０２．３）ネットワーク、バックプレーン等などとの間の通信を提供する。大容量記憶装置８１８は、上記されたそれぞれのコンピューティングシステムによって具体化される、上述された方法および特徴を実行するためのデータおよびプログラミング命令のための固定記憶装置を提供するのに対して、システム・メモリ８１４（例えば、ＤＲＡＭ）は、プロセッサ８０２によって実行されたときにデータおよびプログラミング命令のための一時記憶装置を提供する。Ｉ／Ｏポート８２０は、コンピュータ・システム８００に結合され得る付加的な周辺装置間の通信を提供する、１つまたは複数のシリアル通信ポートおよび／またはパラレル通信ポートであってもよい。
【００８７】
コンピュータ・システム８００は、多様なシステム・アーキテクチャを含むことができ、コンピュータ・システム８００の様々な構成要素は、再配置されてもよい。例えば、キャッシュ８０４は、プロセッサ８０２とオンチップであってもよい。代替的に、キャッシュ８０４およびプロセッサ８０２は、「プロセッサ・モジュール」としてまとめてパックされてもよく、プロセッサ８０２は「プロセッサ・コア」と称される。さらに、本発明の一定の実施形態は、上記の構成要素の全部を必要としなくても、含まなくてもよい。例えば、標準Ｉ／Ｏバス８０８に結合された周辺装置は、高性能Ｉ／Ｏバス８０６に結合されてもよい。また、いくつかの実施形態においては、コンピュータ・システム８００の構成要素が単一のバスに結合されている状態で、単一のバスのみが存在してもよい。さらに、コンピュータ・システム８００は、付加的なプロセッサ、記憶装置、またはメモリなどの付加的な構成要素を含んでもよい。
【００８８】
一般に、本明細書において記載される方法および特徴は、オペレーティング・システムもしくは特定のアプリケーションの一部、構成要素、プログラム、オブジェクト、モジュール、または、「プログラム」と称される一連の命令として具体化され得る。例えば、１つまたは複数のプログラムは、本明細書において記載された特定の方法を実行するために使用され得る。このプログラムは、通常は、１つまたは複数のプロセッサによって読み出され、実行されると、コンピュータ・システム８００に、本明細書において記載された方法および特徴を実行するための動作を行わせる、コンピュータ・システム８００内の様々なメモリおよび記憶装置内の１つまたは複数の命令を含む。本明細書において記載された方法および特徴は、ソフトウェア、ファームウェア、ハードウェア（例えば、特定用途向け集積回路）、または、これらの任意の組合せで具体化され得る。
【００８９】
１つの実施例において、本明細書において記載された方法および特徴は、分散コンピューティング環境において、個別にまたは集合的に、コンピュータ・システム８００によって実行される一連の実行可能なモジュールとして具体化される。前述のモジュールは、ハードウェア、コンピュータ読取可能な媒体（もしくは機械読取可能な媒体）に記憶された実行可能なモジュール、または両方の組合せによって実現され得る。例えば、モジュールは、プロセッサ８０２などの、ハードウェア・システム内のプロセッサによって実行されるべき複数の命令または一連の命令を含んでもよい。最初に、一連の命令は、大容量記憶装置８１８などの記憶装置に記憶され得る。ただし、一連の命令は、任意の適切なコンピュータ読取可能な記憶媒体に記憶されてもよい。さらに、一連の命令は、局所的に記憶される必要はなく、ネットワーク上のサーバなどの遠隔記憶装置からネットワーク・インターフェース８１６を介して受信されてもよい。命令は、大容量記憶装置８１８などの記憶装置からシステム・メモリ８１４内へコピーされ、次いで、プロセッサ８０２によってアクセスされ、実行される。様々な実施例において、１つまたは複数のモジュールは、並列処理環境における複数のサーバなどの、１つまたは複数の位置における１つまたは複数のプロセッサによって実行され得る。
【００９０】
コンピュータ読取可能な媒体の例は、揮発性メモリ装置および不揮発性メモリ装置などの記録可能なタイプの媒体、ソリッド・ステート・メモリ、フロッピー（登録商標）・ディスクおよび他の取り外し可能なディスク、ハード・ディスク・ドライブ、磁気媒体、光ディスク（例えば、コンパクト・ディスク読み出し専用メモリ（ＣＤ  ＲＯＭＳ）、デジタル多用途ディスク（ＤＶＤ））、他の同様の非一時的な（もしくは一時的な）有形の（もしくは非有形の）記憶媒体、または、本明細書において記載された方法および特徴のうちのいずれか１つもしくは複数を実行するためにコンピュータ・システム８００による実行のための一連の命令を記憶し、符号化し、もしくは搬送するのに適した任意のタイプの媒体を含むが、これらに限定されない。
【００９１】
説明の目的のために、多くの特定の詳細が、本記載の完全な理解を提供するために述べられている。しかしながら、本開示の実施形態がこれらの特定の詳細なしに実施され得ることは、当業者には明らかであろう。いくつかの例においては、モジュール、構造、方法、特徴、および装置が、本記載を不明瞭にすることを避けるために、ブロック図の形式で示されている。他の例においては、機能ブロック図およびフロー図が、データおよび論理フローを表すために示されている。ブロック図およびフロー図の構成要素（例えば、モジュール、ブロック、構造、装置、特徴等）は、本明細書において明示的に記載および図示されたもの以外の手法で、様々に組み合わせられ、分離され、除去され、並べ替えられ、置換されてもよい。
【００９２】
本明細書における、「１つの実施形態」、「一実施形態」、「他の実施形態」、「一連の実施形態」、「いくつかの実施形態」、「様々な実施形態」等への言及は、実施形態に関連して記載される特定の特徴、設計、構造、または特性が本開示の少なくとも１つの実施形態に含まれることを意味する。例えば、本明細書の様々な場所における、「１つの実施形態において」または「一実施形態において」というフレーズの出現は、必ずしも全て同じ実施形態に言及するものとは限らず、別個のまたは代替的な実施形態は、他の実施形態と相互に排他的でもない。さらに、「実施形態」等への明示的な言及が存在しても存在しなくても、様々な特徴が記述されており、様々な特徴は、いくつかの実施形態においては様々に組み合わせられ、含まれてもよいが、他の実施形態においては様々に省略されてもよい。同様に、いくつかの実施形態については好適または要件となり得るが、他の実施形態についてはそうではない、様々な特徴が記載される。
【００９３】
本明細書において使用されている文言は、読みやすさおよび教示目的のために主に選択されており、本発明の主題を描写または制限するためには選択されていないことがある。そのため、本発明の範囲は、この詳細な説明によってではなく、むしろ、本明細書に基づいて出願に対して発行される任意の請求項によって制限されることが意図される。したがって、本発明の実施形態の開示は、本発明の範囲の例示であって、限定ではないことが意図されており、本発明の範囲は、下記の特許請求の範囲において述べられている。
【図１】
2018514127.tif 000003
【図２Ａ】
2018514127.tif 000004
【図２Ｂ】
2018514127.tif 000005
【図３】
2018514127.tif 000006
【図４Ａ】
2018514127.tif 000007
【図４Ｂ】
2018514127.tif 000008
【図５】
2018514127.tif 000009
【図６】
2018514127.tif 000010
【図７】
2018514127.tif 000011
【図８】
2018514127.tif 000012
【国際調査報告】
2018514127.tif 000013
2018514127.tif 000014
2018514127.tif 000015