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