(57)【要約】システム、方法、および非一時的なコンピュータ可読媒体は、コンテンツアイテムにアクセスするための少なくとも１つの要求を決定する。要求されたコンテンツアイテムは、１組の異なる位置から１つまたは複数のシーンを撮像する１組のカメラフィードを用いて構成される。要求されたコンテンツアイテムにおける１つまたは複数のシーンのうちの少なくとも幾つかをナビゲートする自動視聴モードを記述する情報が取得される。要求されたコンテンツアイテムの再生が提示されるコンピューティングデバイスの表示画面上にビューポートインタフェースが提供される。自動視聴モードに少なくとも部分的に基づいた要求されたコンテンツアイテムの再生中に１つまたは複数のシーンのうちの少なくとも幾つかにわたって、ビューポートインタフェースが自動的にナビゲートされる。
2019521547.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータが実行する方法であって、
コンピューティングデバイスが、コンテンツアイテムにアクセスするための少なくとも１つの要求を決定することであって、要求されたコンテンツアイテムは、１組の異なる位置から１つまたは複数のシーンを撮像する１組のカメラフィードを用いて構成される、前記少なくとも１つの要求を決定すること、
前記コンピューティングデバイスが、前記要求されたコンテンツアイテムにおける前記１つまたは複数のシーンのうちの少なくとも幾つかをナビゲートする自動視聴モードを記述する情報を取得すること、
前記コンピューティングデバイスが、前記要求されたコンテンツアイテムの再生が提示される前記コンピューティングデバイスの表示画面上にビューポートインタフェースを提供すること、
前記コンピューティングデバイスが、前記自動視聴モードに少なくとも部分的に基づいた前記要求されたコンテンツアイテムの再生中に前記１つまたは複数のシーンのうちの少なくとも幾つかにわたって、前記ビューポートインタフェースが自動的にナビゲートされるようにすること、を備える方法。
【請求項２】
前記自動視聴モードを記述する情報を取得することは、
前記コンピューティングデバイスが、前記要求されたコンテンツアイテムの再生中に前記１つまたは複数のシーンのうちの少なくとも幾つかにわたって前記ビューポートインタフェースをナビゲートするための少なくとも１つの軌跡を記述する情報を取得すること、を含む、請求項１に記載の方法。
【請求項３】
前記少なくとも１つの軌跡を記述する情報を取得することは、
前記コンピューティングデバイスが、ユーザの１つまたは複数の属性に少なくとも部分的に基づいて前記コンピューティングデバイスを操作するユーザに対応するカテゴリを決定すること、
前記コンピューティングデバイスが、前記カテゴリに関連付けられた少なくとも１つの軌跡を取得することであって、前記軌跡は、前記カテゴリに含まれる少なくとも幾人にとって関心があると判定されている、前記少なくとも１つの軌跡を取得すること、を含む、請求項１に記載の方法。
【請求項４】
前記自動視聴モードを記述する情報を取得することは、
前記コンピューティングデバイスが、前記要求されたコンテンツアイテムの再生中に現れる少なくとも１つの注目点を記述する情報を取得すること、
前記コンピューティングデバイスが、前記要求されたコンテンツアイテムの再生中に前記１つまたは複数のシーンのうちの少なくとも幾つかにわたって、前記ビューポートインタフェースをナビゲートするための少なくとも１つの軌跡を記述する情報を取得すること、をさらに含み、
前記軌跡は、前記少なくとも１つの注目点を含む、請求項１に記載の方法。
【請求項５】
前記少なくとも１つの注目点は、前記要求されたコンテンツアイテムの開発者によって定義される、請求項４に記載の方法。
【請求項６】
前記少なくとも１つの軌跡を記述する情報を取得することは、
前記コンピューティングデバイスが、ユーザの１つまたは複数の属性に少なくとも部分的に基づいて前記コンピューティングデバイスを操作するユーザに対応するカテゴリを決定すること、
前記コンピューティングデバイスが、前記カテゴリに関連付けられた少なくとも１つの注目点を取得すること、を含み、
前記少なくとも１つの注目点は、前記カテゴリに含まれる少なくとも幾人にとって関心があると判定されている、請求項４に記載の方法。
【請求項７】
前記コンピューティングデバイスが、前記ビューポートインタフェースをマニュアルで特定の注目点にナビゲートするために、前記要求されたコンテンツアイテムの再生中に前記コンピューティングデバイスを操作するユーザが１つまたは複数のアクションを実行したことを判定すること、
前記コンピューティングデバイスが、前記特定の注目点を共有するための操作が実行されたことを判定すること、
前記コンピューティングデバイスが、前記特定の注目点を記述する情報がソーシャルネットワーキングシステムを介して共有されるようにすること、をさらに備える請求項１に記載の方法。
【請求項８】
前記コンピューティングデバイスが、前記ビューポートインタフェースをマニュアルでナビゲートしてカスタマイズされた軌跡を生成するために、前記要求されたコンテンツアイテムの再生中に前記コンピューティングデバイスを操作するユーザが１つまたは複数のアクションを実行したことを判定すること、
前記コンピューティングデバイスが、前記カスタマイズされた軌跡を共有するための操作が実行されたことを判定すること、
前記コンピューティングデバイスが、前記カスタマイズされた軌跡を記述する情報がソーシャルネットワーキングシステムを介して共有されるようにすること、をさらに備える請求項１に記載の方法。
【請求項９】
前記ビューポートインタフェースが自動的にナビゲートされるようにすることは、
前記コンピューティングデバイスが、前記要求されたコンテンツアイテムは第１の注目点および第２の注目点を含むと判定することであって、前記第２の注目点は、前記要求されたコンテンツアイテムの再生中に第１の注目点の後に現れる、前記判定すること、
前記コンピューティングデバイスが、前記ビューポートインタフェースを前記第１の注目点から前記第２の注目点に自動的にナビゲートする前に方向インジケータが前記ビューポートインタフェースに表示されるようにすること、をさらに含み、
前記方向インジケータは、前記第２の注目点に対応する方向を指し示す、請求項１に記載の方法。
【請求項１０】
前記ビューポートインタフェースが自動的にナビゲートされるようにすることは、
前記コンピューティングデバイスが、前記要求されたコンテンツアイテムは第１の注目点および第２の注目点を含むと判定することであって、前記第２の注目点は、前記要求されたコンテンツアイテムの再生中に第１の注目点の後に現れる、前記判定すること、
前記コンピューティングデバイスが、少なくとも１つの映像トランジション技術を用いて前記ビューポートインタフェースが前記第１の注目点から前記第２の注目点に自動的にナビゲートされるようにすること、をさらに含む、請求項１に記載の方法。
【請求項１１】
システムであって、
少なくとも１つのプロセッサと、
複数の命令を記憶するメモリと、を備え、
前記複数の命令は、前記少なくとも１つのプロセッサによって実行されると、
前記システムに、
コンテンツアイテムにアクセスするための少なくとも１つの要求を決定することであって、要求されたコンテンツアイテムは、１組の異なる位置から１つまたは複数のシーンを撮像する１組のカメラフィードを用いて構成される、前記少なくとも１つの要求を決定すること、
前記要求されたコンテンツアイテムにおける前記１つまたは複数のシーンのうちの少なくとも幾つかをナビゲートする自動視聴モードを記述する情報を取得すること、
前記要求されたコンテンツアイテムの再生が提示されるコンピューティングデバイスの表示画面上にビューポートインタフェースを提供すること、
前記自動視聴モードに少なくとも部分的に基づいた前記要求されたコンテンツアイテムの再生中に前記１つまたは複数のシーンのうちの少なくとも幾つかにわたって、前記ビューポートインタフェースが自動的にナビゲートされるようにすること、を行わせる、システム。
【請求項１２】
前記自動視聴モードを記述する情報を取得することは、
前記要求されたコンテンツアイテムの再生中に前記１つまたは複数のシーンのうちの少なくとも幾つかにわたって前記ビューポートインタフェースをナビゲートするための少なくとも１つの軌跡を記述する情報を取得すること、を前記システムにさらに行わせる、請求項１１に記載のシステム。
【請求項１３】
前記少なくとも１つの軌跡を記述する情報を取得することは、
ユーザの１つまたは複数の属性に少なくとも部分的に基づいて前記コンピューティングデバイスを操作するユーザに対応するカテゴリを決定すること、
前記カテゴリに関連付けられた少なくとも１つの軌跡を取得することであって、前記軌跡は、前記カテゴリに含まれる少なくとも幾人にとって関心があると判定されている、前記少なくとも１つの軌跡を取得すること、を前記システムにさらに行わせる、請求項１１に記載のシステム。
【請求項１４】
前記自動視聴モードを記述する情報を取得することは、
前記要求されたコンテンツアイテムの再生中に現れる少なくとも１つの注目点を記述する情報を取得すること、
前記要求されたコンテンツアイテムの再生中に前記１つまたは複数のシーンのうちの少なくとも幾つかにわたって、前記ビューポートインタフェースをナビゲートするための少なくとも１つの軌跡を記述する情報を取得することであって、前記軌跡は、前記少なくとも１つの注目点を含む、前記取得すること、を前記システムにさらに行わせる、請求項１１に記載のシステム。
【請求項１５】
前記少なくとも１つの注目点は、前記要求されたコンテンツアイテムの開発者によって定義される、請求項１４に記載のシステム。
【請求項１６】
複数の命令を備える非一時的なコンピュータ可読記憶媒体であって、
前記複数の命令は、コンピューティングシステムの少なくとも１つのプロセッサにより実行されると、
前記コンピューティングシステムに、
コンテンツアイテムにアクセスするための少なくとも１つの要求を決定することであって、要求されたコンテンツアイテムは、１組の異なる位置から１つまたは複数のシーンを撮像する１組のカメラフィードを用いて構成される、前記少なくとも１つの要求を決定すること、
前記要求されたコンテンツアイテムにおける前記１つまたは複数のシーンのうちの少なくとも幾つかをナビゲートする自動視聴モードを記述する情報を取得すること、
前記要求されたコンテンツアイテムの再生が提示されるコンピューティングデバイスの表示画面上にビューポートインタフェースを提供すること、
前記自動視聴モードに少なくとも部分的に基づいた前記要求されたコンテンツアイテムの再生中に前記１つまたは複数のシーンのうちの少なくとも幾つかにわたって、前記ビューポートインタフェースが自動的にナビゲートされるようにすること、を行わせる、非一時的なコンピュータ可読記憶媒体。
【請求項１７】
前記自動視聴モードを記述する情報を取得することは、
前記要求されたコンテンツアイテムの再生中に前記１つまたは複数のシーンのうちの少なくとも幾つかにわたって前記ビューポートインタフェースをナビゲートするための少なくとも１つの軌跡を記述する情報を取得すること、を前記コンピューティングシステムにさらに行わせる、請求項１６に記載の非一時的なコンピュータ可読記憶媒体。
【請求項１８】
前記少なくとも１つの軌跡を記述する情報を取得することは、
ユーザの１つまたは複数の属性に少なくとも部分的に基づいて前記コンピューティングデバイスを操作するユーザに対応するカテゴリを決定すること、
前記カテゴリに関連付けられた少なくとも１つの軌跡を取得することであって、前記軌跡は、前記カテゴリに含まれる少なくとも幾人にとって関心があると判定されている、前記少なくとも１つの軌跡を取得すること、を前記コンピューティングシステムにさらに行わせる、請求項１６に記載の非一時的なコンピュータ可読記憶媒体。
【請求項１９】
前記自動視聴モードを記述する情報を取得することは、
前記要求されたコンテンツアイテムの再生中に現れる少なくとも１つの注目点を記述する情報を取得すること、
前記要求されたコンテンツアイテムの再生中に前記１つまたは複数のシーンのうちの少なくとも幾つかにわたって、前記ビューポートインタフェースをナビゲートするための少なくとも１つの軌跡を記述する情報を取得することであって、前記軌跡は、前記少なくとも１つの注目点を含む、前記取得すること、を前記コンピューティングシステムにさらに行わせる、請求項１６に記載の非一時的なコンピュータ可読記憶媒体。
【請求項２０】
前記少なくとも１つの注目点は、前記要求されたコンテンツアイテムの開発者によって定義される、請求項１９に記載の非一時的なコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、コンテンツ提示の分野に関する。より詳細には、本技術は、コンピューティングデバイスを通じて、コンテンツアイテムを提示するための技法に関する。
【背景技術】
【０００２】
今日、人々は、多種多様な目的のためにコンピューティングデバイス（またはコンピューティングシステム）を利用している。ユーザは、コンピューティングデバイスを操作して、例えば、相互に対話したり、コンテンツを作成したり、コンテンツを共有したり、情報にアクセスしたりすることができる。従来のアプローチでは、コンテンツアイテム（例えば、画像、映像、音声ファイルなど）は、コンテンツ共有プラットフォームを通じて、利用可能にすることができる。ユーザは、自身のコンピューティングデバイスを操作して、プラットフォームを通じて、コンテンツアイテムにアクセスすることができる。典型的には、コンテンツアイテムは、例えば、コンテンツのパブリッシャおよびコンテンツ共有プラットフォームのユーザを含む多様なエンティティにより、提供またはアップロードされることができる。場合によっては、コンテンツアイテムを、カテゴライズおよびキュレートまたはカテゴライズもしくはキュレートすることができる。
【発明の概要】
【課題を解決するための手段】
【０００３】
本開示の様々な実施形態は、コンテンツアイテムにアクセスするための少なくとも１つの要求を決定するように構成されたシステム、方法、および非一時的なコンピュータ可読媒体を含み、要求されたコンテンツアイテムは、１組の異なる位置から１つまたは複数のシーンを撮像する１組のカメラフィードを用いて構成される。要求されたコンテンツアイテムにおける１つまたは複数のシーンのうちの少なくとも幾つかをナビゲートする自動視聴モードを記述する情報が取得される。要求されたコンテンツアイテムの再生が提示されるコンピューティングデバイスの表示画面上にビューポートインタフェースが提供される。自動視聴モードに少なくとも部分的に基づいた要求されたコンテンツアイテムの再生中に１つまたは複数のシーンのうちの少なくとも幾つかにわたって、ビューポートインタフェースが自動的にナビゲートされる。
【０００４】
幾つかの実施形態では、システム、方法、および非一時的なコンピュータ可読媒体は、要求されたコンテンツアイテムの再生中に１つまたは複数のシーンのうちの少なくとも幾つかにわたってビューポートインタフェースをナビゲートするための少なくとも１つの軌跡を記述する情報を取得するように構成される。
【０００５】
幾つかの実施形態では、システム、方法、および非一時的なコンピュータ可読媒体は、ユーザの１つまたは複数の属性に少なくとも部分的に基づいてコンピューティングデバイスを操作するユーザに対応するカテゴリを決定すること、カテゴリに関連付けられた少なくとも１つの軌跡を取得することであって、軌跡は、前記カテゴリに含まれる少なくとも幾人にとって関心があると判定されている、少なくとも１つの軌跡を取得すること、を実行するように構成される。
【０００６】
幾つかの実施形態では、システム、方法、および非一時的なコンピュータ可読媒体は、要求されたコンテンツアイテムの再生中に現れる少なくとも１つの注目点を記述する情報を取得すること、要求されたコンテンツアイテムの再生中に１つまたは複数のシーンのうちの少なくとも幾つかにわたって、ビューポートインタフェースをナビゲートするための少なくとも１つの軌跡を記述する情報を取得すること、を実行するように構成され、軌跡は、少なくとも１つの注目点を含む。
【０００７】
幾つかの実施形態では、少なくとも１つの注目点は、要求されたコンテンツアイテムの開発者によって定義される。
幾つかの実施形態では、システム、方法、および非一時的なコンピュータ可読媒体は、ユーザの１つまたは複数の属性に少なくとも部分的に基づいてコンピューティングデバイスを操作するユーザに対応するカテゴリを決定すること、カテゴリに関連付けられた少なくとも１つの注目点を取得すること、を実行するように構成され、少なくとも１つの注目点は、カテゴリに含まれる少なくとも幾人にとって関心があると判定されている。
【０００８】
幾つかの実施形態では、システム、方法、および非一時的なコンピュータ可読媒体は、ビューポートインタフェースをマニュアルで特定の注目点にナビゲートするために、要求されたコンテンツアイテムの再生中にコンピューティングデバイスを操作するユーザが１つまたは複数のアクションを実行したことを判定すること、特定の注目点を共有するための操作が実行されたことを判定すること、特定の注目点を記述する情報がソーシャルネットワーキングシステムを介して共有されるようにすること、を実行するように構成される。
【０００９】
幾つかの実施形態では、システム、方法、および非一時的なコンピュータ可読媒体は、ビューポートインタフェースをマニュアルでナビゲートしてカスタマイズされた軌跡を生成するために、要求されたコンテンツアイテムの再生中にコンピューティングデバイスを操作するユーザが１つまたは複数のアクションを実行したことを判定すること、カスタマイズされた軌跡を共有するための操作が実行されたことを判定すること、カスタマイズされた軌跡を記述する情報がソーシャルネットワーキングシステムを介して共有されるようにすること、を実行するように構成される。
【００１０】
幾つかの実施形態では、システム、方法、および非一時的なコンピュータ可読媒体は、要求されたコンテンツアイテムが、第１の注目点および第２の注目点を含むと判定することであって、第２の注目点は、要求されたコンテンツアイテムの再生中に第１の注目点の後に現れる、判定すること、ビューポートインタフェースを第１の注目点から第２の注目点に自動的にナビゲートする前に方向インジケータがビューポートインタフェースに表示されるようにすること、を実行するように構成され、方向インジケータは、第２の注目点に対応する方向を指し示す。
【００１１】
幾つかの実施形態では、システム、方法、および非一時的なコンピュータ可読媒体は、要求されたコンテンツアイテムは、第１の注目点および第２の注目点を含むと判定することであって、第２の注目点は、要求されたコンテンツアイテムの再生中に第１の注目点の後に現れる、判定すること、少なくとも１つの映像トランジション技術を用いてビューポートインタフェースが第１の注目点から第２の注目点に自動的にナビゲートされること、を実行するように構成される。
【００１２】
開示された技術の多くの他の特徴、応用、実施形態、および／または変形は、添付の図面および以下の詳細な説明から明らかとなることを理解されたい。開示された技術の原理から逸脱することなく、本明細書に記載の構造、システム、非一時的なコンピュータ可読媒体、および方法の追加の実施態様および代替の実施態様の両方または一方を採用することができる。
【図面の簡単な説明】
【００１３】
【図１】本開示の一実施形態による例示的なコンテンツプレゼンテーションモジュールを含む例示的なシステムを示す。
【図２】本開示の一実施形態によるインタフェースモジュールの一例を示す。
【図３】本開示の一実施形態によるコンテンツディレクタモジュールの一例を示す。
【図４Ａ】本開示の一実施形態による、コンテンツアイテムがアクセスされた場合にナビゲーションインジケータが提供されるビューポートインタフェースの例を示す。
【図４Ｂ】本開示の一実施形態による、コンテンツアイテムがアクセスされた場合にナビゲーションインジケータが提供されるビューポートインタフェースの例を示す。
【図４Ｃ】本開示の一実施形態による、コンテンツアイテムがアクセスされた場合にナビゲーションインジケータが提供されるビューポートインタフェースの例を示す。
【図５】本開示の一実施形態による仮想コンテンツアイテムのユーザエクスペリエンスをカスタマイズするための開発者インタフェースの一例を示す。
【図６Ａ−Ｆ】本開示の実施形態によるコンテンツアイテムがアクセスされた場合にビューポートインタフェースに提供可能なナビゲーションインジケータの例を示す。
【図７】本開示の一実施形態によるビューポートインタフェースをナビゲートする例示的な方法を示す。
【図８】本開示の実施形態による、多様なシナリオで利用することができる例示的なソーシャルネットワーキングシステムを含む例示的なシステムのネットワーク図である。
【図９】本開示の実施形態による、多様なシナリオで利用可能なコンピュータシステムまたはコンピューティングデバイスの例を示す図である。
【発明を実施するための形態】
【００１４】
図面は、説明の目的のためだけに、開示された技術の多様な実施形態を示しており、図面は、同様の要素を識別するために同じ参照番号を使用している。当業者は、以下の説明から、本明細書に記載された開示技術の原理から逸脱することなく、図面に示された構造および方法の代替の実施形態を用いることができることを認識するであろう。
【００１５】
コンテンツを提示するためのアプローチ
人々は、多種多様な目的のためにコンピューティングデバイス（またはコンピューティングシステム）を使用する。上記のように、従来のアプローチでは、ユーザは、コンピューティングデバイスを利用して、コンテンツアイテム（例えば、ドキュメント、画像、映像、音声など）を他のユーザと共有することができる。従来のアプローチでは、コンテンツアイテム（例えば、画像、映像、音声ファイルなど）は、コンテンツ共有プラットフォームを通じて、利用可能にすることができる。ユーザは、自身のコンピューティングデバイスを操作して、プラットフォームを通じて、コンテンツアイテムにアクセスすることができる。典型的には、コンテンツアイテムは、例えば、コンテンツのパブリッシャ（content publisher）およびコンテンツ共有プラットフォームのユーザを含む多様なエンティティにより、提供またはアップロードされることができる。
【００１６】
いくつかの例では、ユーザは、例えば、これらのコンピューティングデバイスの表示画面、仮想現実システム、および／またはヘッドマウントディスプレイを介して、仮想コンテンツにアクセスすることができる。仮想コンテンツは、例えば、地理的位置および／または実行されているアクティビティ（activity）などの複数のシーンを撮像する１つまたは複数のビデオおよび／または画像を使用して構成され得る。このような複数のシーンは、現実世界から撮像され、および／またはコンピュータにより生成されてもよい。場合によっては、仮想コンテンツは、ユーザが仮想コンテンツによってキャプチャされた（captured）シーン内をナビゲートできるように構成されている。したがって、仮想コンテンツにアクセスすることによって、ユーザは、例えば、ユーザが任意の場所に物理的に存在し、および／またはシーンにおいて示されたアクティビティを物理的に実行しているかのように、キャプチャされたシーンを仮想的に経験しナビゲートすることができる。
【００１７】
仮想コンテンツは、例えば、シーンの３６０度のビュー（view）を撮像する全天球映像（spherical video）であってもよい。全天球映像は、異なる場所および／または位置に配置された複数のカメラによって撮像された様々なビデオストリームまたはフィード（feed）を、シーンの３６０度のビューを撮像するためにスティッチ（stitching）することによって作成される。全体でスティッチされると、ユーザは、全天球映像にアクセスするかまたは全天球映像を再生して、ある角度で全天球映像の一部分を見ることができる。一般に、全天球映像にアクセスする間、ユーザは、全天球映像によって撮像されたシーンの別の部分にアクセスするために、ビューポート（viewport）の方向（例えば、ピッチ、ヨー、ロール）をズームするかおよび変更することができる。仮想コンテンツの特性を考慮すると、ユーザが、ズームレベルおよび／またはビューポートの方向に対する変更を把握することが困難な場合がある。そのような変更は、仮想コンテンツの開発者によって指定された意図されたズームレベルおよび／またはビューポートの方向から逸脱する可能性がある。幾つかの例では、ビューポートの方向を操作（maneuvering）している間に、ユーザは、１つまたは複数の注目点を含む全天球映像の一部を見逃す可能性がある。例えば、ユーザは、ビューポートの方向が反対の方向を向いていれば、注目点がユーザに視認された時点で一方向を見るようにビューポートの方向を変えることができる。そのような注目点がないと、全体的なユーザエクスペリエンスが低下し、ユーザが仮想コンテンツに関与することにも悪影響を与える可能性がる。したがって、このような従来のアプローチは、これらの問題およびコンピュータ技術で生じる他の問題に対処するには効果的でない可能性がある。
【００１８】
コンピュータ技術に基づく改良されたアプローチは、コンピュータ技術の分野において特に生じる従来のアプローチに関連する前述の欠点および他の欠点を克服する。様々な実施形態において、ナビゲーション要素またはインジケータは、仮想コンテンツが提示されるインタフェースまたはビューポートに提供され得る。ナビゲーションインジケータは、ユーザが仮想コンテンツと対話して、ｉ）仮想コンテンツによってキャプチャされた複数のシーンにおけるビューポートの方向または方位（heading）、および／またはｉｉ）ビューポートのズームレベルを視覚的に示すように自動的に更新され得る。様々な実施形態では、ナビゲーションインジケータは、アクセスされている仮想コンテンツに存在する複数の注目点のそれぞれの方向または方位を示すように構成することもできる。注目点の方向は、例えば、ビューポートの方向に関連してナビゲーションインジケータ内で識別され得る。その結果、ユーザは、注目点の相対的な方向とともに、いつ注目点が視聴可能であるかを容易に判定することができる。いくつかの実施形態では、ユーザは、ユーザのビューポートを複数の注目点にガイドする自動モードを自動的に用いる（engage）ことができる。
【００１９】
図１は、本開示の実施形態による、コンテンツアイテムをユーザに提供するように構成された例示的なコンテンツプレゼンテーションモジュール１０２を含む例示的なシステム１００を示す。図１の例に示されるように、コンテンツプレゼンテーションモジュール１０２は、インタフェースモジュール１０４と、コンテンツモジュール１０６と、コンテンツディレクタモジュール１０８とを含むことができる。場合によっては、例示的なシステム１００は、少なくとも１つのデータストア１１０を含むことができる。この図および本明細書におけるすべての図に示される構成要素（例えば、モジュール、要素など）は、単なる例示にすぎず、任意の他の実施態様は、追加の、より少ない、統合された、または異なる構成要素を含むことができる。いくつかの構成要素は、関連する詳細が不明瞭とならないように図示されない場合がある。
【００２０】
いくつかの実施形態では、コンテンツプレゼンテーションモジュール１０２は、ソフトウェア、ハードウェア、またはこれらの任意の組み合わせとして、部分的にまたは全体的に実装することができる。概して、本明細書で考察されるモジュールは、ソフトウェア、ハードウェア、またはこれらの任意の組み合わせと関連付けることができる。いくつかの実施態様において、モジュールの１つもしくは複数の機能、タスク、および／または動作を、ソフトウェアルーチン、ソフトウェアプロセス、ハードウェア、および／またはこれらの任意の組み合わせによって実行または行うことができる。場合によっては、コンテンツプレゼンテーションモジュール１０２は、ユーザコンピューティングデバイスまたはクライアントコンピューティングシステム上などの、１つまたは複数のコンピューティングデバイスまたはコンピューティングシステム上で実行しているソフトウェアとして、部分的にまたは全体的に実装することができる。例えば、コンテンツプレゼンテーションモジュール１０２またはこの少なくとも一部は、図８のユーザデバイス８１０などのユーザコンピューティングデバイスまたはクライアントコンピューティングシステム上で稼動するアプリケーション（例えば、ａｐｐ）、プログラム、またはアプレットなどとして実装するか、またはこれらの中に実装することができる。さらに、コンテンツプレゼンテーションモジュール１０２またはこの少なくとも一部は、ネットワークサーバまたはクラウドサーバなどの１つもしくは複数のサーバを含む１つもしくは複数のコンピューティングデバイスまたはコンピューティングシステムを使用して実装することができる。場合によっては、コンテンツプレゼンテーションモジュール１０２は、図８のソーシャルネットワーキングシステム８３０などのソーシャルネットワーキングシステム（またはソーシャルネットワーキングサービス）内で部分的にまたは全体的に実装されるか、これと連結して部分的にまたは全体的に動作するように構成することができる。多くの変形例またはその他の可能性が存在し得ることを理解されたい。
【００２１】
多様な実施形態では、コンテンツプレゼンテーションモジュール１０２は、インタフェースモジュール１０４およびコンテンツモジュール１０６を利用して、コンテンツアイテムをユーザに提供することができる。インタフェースモジュール１０４は、コンテンツアイテムが提示される（例えば、ストリームされる（streamed））ことができるビューポート（例えば、グラフィカルユーザーインタフェース）を提供するように構成することができる。例えば、ビューポートは、ユーザにより操作されているコンピューティングデバイス上で実行しているソフトウェアアプリケーションを通じて提供されてもよい。ビューポートは、コンピューティングデバイスの表示画面を通じて提示されてもよい。ユーザは、例えば、入力デバイス、または表示画面を通じてアクション、例えばジェスチャ（例えば、タッチスクリーンジェスチャ、ハンドジェスチャなど）を行うことにより、ビューポートと対話することができる。
【００２２】
コンテンツモジュール１０６は、インタフェースモジュール１０４によって提供されるインタフェースを介して提示され得る様々なタイプのコンテンツアイテム（content item）を提供するように構成され得る。例えば、コンテンツアイテムは、ソーシャルネットワーキングシステム（例えば、図８のソーシャルネットワーキングシステム８３０）または幾つかの他のコンテンツプロバイダシステムから取得されてもよい。様々な実施形態では、コンテンツモジュール１０６は、複数のシーン（例えば、地理的位置および／または実行されているアクティビティ）を撮像する１つまたは複数の映像および／または画像を使用して構成され得る仮想コンテンツを提供することができる。このような複数のシーンは、現実世界から撮像され、および／またはコンピュータにより生成されてもよい。仮想コンテンツは、３６０度のビューおよび／または任意の３次元（３Ｄ）コンテンツを撮像する任意のコンテンツであり得る。さらに、仮想コンテンツは、ビューポートが任意の時点に提示することができるよりも大きい任意のサイズのコンテンツを含むことができる。そのような例では、ビューポートの位置が変更されると、ビューポートは、コンテンツの異なる部分を表示できる。一例では、仮想コンテンツは、例えば、いくつかの例を挙げると、例えば、直線ステッチング（rectilinear stitching）、球状ステッチング（spherical stitching）、立方ステッチング（cubical stitching）を含む一般に知られているイメージステッチング技術を使用して作成され得る。別の例では、仮想コンテンツは、注目点などのシーンの３６０度のビューを撮像する全天球映像であってもよい。仮想コンテンツの他の例は、モノスコープ（monoscopic）の３６０度のビューを使用して構成された映像、立体視（stereoscopic）の１８０度のビューなどを使用して構成された映像を含み得る。全天球映像は、異なる場所および／または位置に配置された複数のカメラによって撮像された様々なビデオストリームまたはフィード（feed）を、シーンの３６０度のビューを撮像するためにステッチングすることによって作成され得る。このような複数のビデオストリームは、全天球映像の様々な角度（例えば、０度、３０度、６０度など）で予め決定されてもよい。ひとたび全体でステッチングされると、ユーザは、全天球映像にアクセスするかまたは全天球映像を再生してある角度で全天球映像の一部分を見ることができる。ユーザに示された全天球映像の一部分は、３次元空間におけるユーザのビューポートの位置及び方向に基づいて決定され得る。
【００２３】
コンテンツディレクタモジュール１０８は、仮想コンテンツを見るときのユーザエクスペリエンスのカスタマイズを可能にする様々な機能へのアクセスをコンテンツの開発者に提供することができる。コンテンツディレクタモジュール１０８に関するさらなる詳細は、図３を参照して以下に提供される。
【００２４】
いくつかの実施形態では、コンテンツプレゼンテーションモジュール１０２は、例示的なシステム１００における少なくとも１つのデータストア１１０と通信および動作または通信もしくは動作するように構成することができる。少なくとも１つのデータストア１１０は、多様なタイプのデータを記憶および維持するように構成することができる。多様な実施形態では、少なくとも１つのデータストア１１０は、コンテンツプレゼンテーションモジュール１０２の機能および動作に関連するデータを格納することができる。そのようなデータの１つの例は、インタフェースモジュール１０４により提供されたインタフェースを通じてアクセスするために利用可能であるコンテンツアイテムである。いくつかの実施態様において、少なくとも１つのデータストア１１０は、ソーシャルネットワーキングシステム（例えば、図８のソーシャルネットワーキングシステム８３０）に関連付けられた情報を格納することができる。ソーシャルネットワーキングシステムに関連付けられた情報としては、ユーザ、ソーシャルつながり、ソーシャル対話、位置、ジオフェンスエリア（geo-fenced area）、地図、場所、イベント、ページ、グループ、投稿、通信、コンテンツ、フィード、アカウント設定、プライバシー設定、ソーシャルグラフについてのデータ、および多様な他のタイプのデータが挙げられる。いくつかの実施態様において、少なくとも１つのデータストア１１０は、ユーザ識別子、ユーザ情報、プロファイル情報、ユーザ指定の設定、ユーザによって生成または投稿されたコンテンツ、多様な他のタイプのユーザデータなどの、ユーザに関連付けられた情報を格納することができる。多くの変形例または他の可能性が存在し得ることを理解されたい。
【００２５】
図２は、本開示の実施形態による、インタフェースモジュール２０２の例２００を示す。いくつかの実施形態では、図１のインタフェースモジュール１０４は、インタフェースモジュール２０２と共に実装されることができる。図２の例に示すように、インタフェースモジュール２０２は、ビュー方向モジュール２０４と、ビューズームレベルモジュール２０６と、インジケータモジュール２０８と、注目点モジュール（a points of interest module）２１０と、自動モードモジュール２１２と、モーショントランジションモジュール２１４と、を含むことができる。
【００２６】
上述したように、インタフェースモジュール２０２は、複数のコンテンツアイテム（例えば、複数の仮想コンテンツアイテム）を提示しアクセスすることができるビューポート（例えば、グラフィカルユーザーインタフェース）を提供するように構成され得る。様々な実施形態では、ユーザは、ユーザによって操作されるコンピューティングデバイスを使用して図１のコンテンツモジュール１０６を介して提供される複数の仮想コンテンツアイテムにアクセスすることができる。コンピューティングデバイスは、例えば、携帯電話、タブレット、バーチャルリアリティシステム、および／またはヘッドマウントディスプレイを含むコンテンツを処理し提示することができる任意のデバイスとすることができる。アクセスされると、インタフェースモジュール２０２は、仮想コンテンツアイテムをコンピューティングデバイスのディスプレイスクリーンを介して提示することができる。
【００２７】
仮想コンテンツアイテムが最初にアクセスされるとき、コンピューティングデバイスに関連するビューポートは、仮想コンテンツアイテムのシーンの特定の部分を表示する。表示される部分は、シーンに関連するビューポートの位置および／または方向（例えば、ピッチ、ヨー、ロール）に基づくことができる。いくつかの実施形態では、表示される部分は、仮想コンテンツアイテムの開発者によって指定された位置および／または方向（たとえば、ピッチ、ヨー、ロール）に対応する。いくつかの実施形態では、ユーザは、仮想コンテンツアイテムによってキャプチャされた１つまたは複数のシーンを仮想的にナビゲートすることによってシーンの異なる部分を見ることができる。例えば、ユーザがモバイルデバイスを用いて仮想コンテンツアイテムにアクセスしている場合、例えば、複数のタッチスクリーンジェスチャに基づいて、および／またはモバイルデバイスが所望の位置および／または方向において物理的に移動されていることに基づいて、ビューポートの位置および／または方向を変更することにより仮想コンテンツアイテムにおいて１つまたは複数のシーンをナビゲートすることができる。
【００２８】
ビューポートの位置および／または方向の変更は、ユーザが仮想コンテンツアイテムと対話するときに、ビュー方向モジュール（view direction module）２０４によってリアルタイムで決定されてもよい。別の例では、ユーザは、任意のシーンにアクセスしながら、ビューポートのズームレベルを変更することもできる。例えば、ユーザは、シーンの一部分を見るためにビューポートのズームレベルを増大または減少させたい場合がある。そのようなビューポートズームレベルへの変更によって、ビューズームレベルモジュール２０６によってリアルタイムで決定され得る。例えば、タッチジェスチャ（スワイプジェスチャ、ドラッグジェスチャ、スライドジェスチャ、タップジェスチャ、ダブルタップジェスチャ、ピンチジェスチャ、スプレッドジェスチャ、回転ジェスチャ、フリックジェスチャなど）、ハンドジェスチャおよび／またはコンピューティングデバイスジェスチャーを実行することによって、ユーザは、ビューポート（たとえば、位置、方向、ズームなど）を変更できる。コンピュータデバイスジェスチャ（例えば、傾斜）は、例えば、コンピューティングデバイス内の１つまたは複数のセンサ（例えば、ジャイロスコープ、加速度計、および／または慣性測定ユニット）を使用して判定される。さらに、バーチャルリアリティヘッドマウントディスプレイを介して仮想コンテンツアイテムにアクセスする場合、ユーザは、ユーザの頭の方向を変更することによって、ビューポートの方向を変更することができる。当然のことながら、他の手法が、全天球映像内をナビゲートしズームするために利用されてもよい。通常、ビューポートへの変更または調整は、ビュー方向モジュール２０４およびビューズームレベルモジュール２０６によってリアルタイム（たとえば、一定の時間間隔で）で監視され得る。このような変更は、ビューポートへの変更に基づいて決定されるように、仮想コンテンツアイテムからの適切な画像および／またはストリームがユーザに提示され得るように、ビューポートを更新するように用いられる。
【００２９】
上述したように、幾つかの例では、ビューポートへの変更を把握できないと、ユーザは、アクセスされている仮想コンテンツに関して方向が見失うことになり、そのような方向感覚を失うことは、ユーザエクスペリエンスを低下させる可能性がある。したがって、様々な実施形態において、インジケータモジュール２０８は、仮想コンテンツが提示されるビューポート内にナビゲーションインジケータを提供するように構成され得る。いくつかの実施形態では、ナビゲーションインジケータは、ビューポート内のオーバーレイ（overlay）として提供される。ナビゲーションインジケータは、ｉ）仮想コンテンツによって撮像された（複数の）シーン内のビューポートの方向または方向、および／またはｉｉ）（複数の）シーン内のビューポートのズームレベルを視覚的に示すことができる。いくつかの実施形態では、ナビゲーションインジケータによって示される方向は、ヨー（すなわち、垂直軸に沿ったビューポートの動き）に基づいて決定され得る。しかしながら、具体化に応じて、ナビゲーションインジケータは、ピッチ（すなわち、横軸に沿ったビューポートの動き）および／またはロール（すなわち、縦軸に沿ったビューポートの動き）を示すこともできる。ナビゲーションインジケータは、ユーザが仮想コンテンツと対話して、仮想コンテンツアイテムがアクセスされている間、任意の時点でビューポートの方向および／またはズームレベルを反映するように自動的に更新され得る。
【００３０】
いくつかの実施形態では、注目点モジュール２１０は、アクセスされている仮想コンテンツアイテムの複数のシーンにおける様々な注目点を識別するように用いられる。いくつかの実施形態では、注目点は、ビューポートを介して提示されているビデオストリームに対応する瞬間または時間において１つまたは複数のシーンにおける空間領域として定義され得る。いくつかの実施形態では、このような注目点は、例えば、仮想コンテンツアイテムの開発者によって指定されてもよい。通常、各注目点は、仮想コンテンツアイテムによってキャプチャされた１つまたは複数のシーンにおける任意の場所（例えば、複数の座標）に関連付けられる。いくつかの実施形態では、ナビゲーションインジケータは、ビューポートを介して提示されているシーンにおけるビューポートの位置の閾値距離内の複数の注目点を識別することができる。様々な実施形態において、ナビゲーションインジケータは、注目点の対応する位置または方向を視覚的に示すことができる。しかしながら、実施態様に応じて、複数の注目点を視覚的に示すための他のアプローチは、ナビゲーションインジケータとは別々に、またはナビゲーションインジケータに加えて用いられる。例えば、いくつかの実施形態では、注目点は、注目点の位置または方向を指す方向インジケータ（directional indicator）（例えば、矢印）を使用して視覚的に示される。この例では、注目点がビューポートの右に位置する場合、ビューポートのある領域には、右を指し示す矢印が表示される。同様に、注目点がビューポートが向いている方向の後ろである方向に位置する場合、ユーザに振り向くように指示する矢印が表示されてもよい。いくつかの実施形態では、注目点が、テキストでラベル付けされ得る。例えば、ランドマークなどの注目点は、注目点の名前、その位置、および／または注目点に関する事実を含む記述テキストでラベル付けされる。
【００３１】
いくつかの実施形態では、仮想コンテンツアイテムによってキャプチャされた複数のシーンの注目点は、シーンを見ながらユーザによって定義またはラベル付けされる。一例では、シーンを見ているユーザは、シーン内のある特徴を注目点としてタグ付けすることができる。ユーザは、注目点に関連付けるためにテキストラベルまたはコメントを提供することもできる。いくつかの実施形態では、仮想コンテンツアイテムに後でアクセスする他のユーザが、ユーザによって提供された任意のテキストラベルまたはコメントとともに、ユーザによってタグ付けされた注目点を見ることができるように、ユーザ定義の複数の注目点が保存される。したがって、そのような実施形態では、ユーザが、例えばナビゲーションインジケータを含む上述の複数のアプローチのいずれかを使用して仮想コンテンツアイテムにアクセスしている間に、ユーザ定義の複数の注目点が視覚的に識別される。いくつかの実施形態では、ユーザ定義の複数の注目点は、仮想コンテンツアイテムに組み込まれない。むしろ、ユーザ定義の複数の注目点を組み込んだ仮想コンテンツアイテムのコピーが保存される。次いで、ユーザは、例えばソーシャルネットワーキングシステムを介して、バーチャルコンテンツアイテムの変更されたコピーを他のユーザと共有することができる。いくつかの実施形態では、ユーザ定義の複数の注目点は、各注目点がバーチャルコンテンツアイテムにおいてどこで見つかるかを示すスクリーンショットおよび／または情報（例えば、１つまたは複数のフレーム、複数のタイムスタンプ、複数の時間範囲、座標等の位置データなど）として共有される。
【００３２】
いくつかの実施形態では、ユーザは、仮想コンテンツアイテムによってキャプチャされた複数のシーンを見ながら、ビューポートの軌跡（trajectory）を記録することができる。したがって、このような実施形態では、仮想コンテンツアイテム内のシーンを見ながらユーザによって作成されたビューポートの位置および／または方向の変更が、仮想コンテンツアイテムのユーザビューポートの軌跡として保存され得る。ユーザは、例えば、ソーシャルネットワーキングシステムを介して、ビューポートの軌跡を他のユーザと共有することができる。共有されたビューポートの軌跡にアクセスする異なるユーザのビューポートは、ビューポートの軌跡を共有したユーザによるビューポートの位置および／または方向に対する変更に基づいて、仮想コンテンツアイテムによってキャプチャされた複数のシーンにわたってガイドされる。
【００３３】
いくつかの実施形態では、仮想コンテンツアイテムの複数の注目点は、ユーザビューポートデータに基づいて自動的に判定される。例えば、仮想コンテンツアイテムを見ている間の複数のユーザビューポートのそれぞれの軌跡が分析されて、どのシーンまたはシーンの領域がユーザによって見られたかを判定することができる。いくつかの実施形態では、仮想コンテンツアイテムの複数のシーンを見ながら、複数のユーザビューポートのそれぞれの位置および／または方向を集約することによって、１つまたは複数のヒートマップ（heat map）が、仮想コンテンツアイテムに対して生成される。そのような実施形態では、ヒートマップが複数のシーンにおけるシーンまたは領域のうちのどれが、集約において他のものよりもより人気があるかまたはより興味深いかを判定するように用いられる。そのようなヒートマップ情報は、複数の特定のシーンまたは複数のシーンにおける領域を複数の注目点として自動的に識別するように用いられる。いくつかの実施形態では、複数のヒートマップは、異なる組のユーザのビューポートの軌跡を集約することによって、仮想コンテンツアイテムに対して生成される。そのような実施形態では、複数のユーザは、幾つかの例を挙げると、複数の人口統計（例えば、性別、年齢範囲など）、複数の興味（例えば、バードウォッチング、スノーボードなど）、および／または複数の関係（例えば、ソーシャルネットワーキングシステムにおける複数のソーシャルコネクション、または「友達」）などの属性に基づいて異なる組に分類される。異なる組のユーザのための別個のヒートマップを生成することにより、注目点モジュール２１０は、仮想コンテンツアイテムのどの注目点が、それらの共有された属性に応じて複数のユーザのカテゴリまたは組に最も関連するかを判定することができる。いくつかの実施形態では、仮想コンテンツアイテムに対して自動的に生成された複数の注目点を、提案として仮想コンテンツアイテムの開発者に提供される。開発者は、生成された注目点を仮想コンテンツアイテムに組み込むか、または認定することを選択できる。認定されると、生成された複数の注目点は、ユーザが、例えばナビゲーションインジケータを含む上述の複数のアプローチのいずれかを使用して仮想コンテンツアイテムにアクセスしている間に視覚的に示される。
【００３４】
いくつかの例では、開発者は、自動モードの一部として仮想コンテンツアイテムを見るユーザのためのビューポートの軌跡を予め定義することができる。そのような場合、自動モードモジュール２１２は、仮想コンテンツアイテムにアクセスしている間に、ユーザがいつでも自動モードを用いるかまたは用いないかを可能にする。いくつかの実施形態では、仮想コンテンツアイテムがアクセスされるときに、自動モードはデフォルトで有効にされてもよい。そのような実施形態では、自動モードにある間、ビューポートは、予め定義されたビューポートの軌跡に基づいて仮想コンテンツアイテムの１つまたは複数のシーンにわたって自動的にナビゲートされる。いくつかの実施形態では、ビューポートの軌跡は、仮想コンテンツアイテムの１つ以上の部分の再生中または仮想コンテンツアイテム全体の再生中にビューポートの対応する位置および／または方向を定義する。
【００３５】
いくつかの実施形態では、開発者は、１つまたは複数のシーンにおける１つ以上の注目点を指定してもよく、自動モードが用いられると、ビューポートが、複数の注目点に自動的にガイドされる。このような実施形態では、ビューポートが複数の注目点の間を移動するような各軌跡が自動的に生成される。いくつかの実施形態では、複数の注目点は、ビューポートが複数の注目点に焦点を当てるべき時間の長さを示す時間的情報（例えば、第１の注目点で３秒、第２の注目点で５秒など）に関連付けられる。そのような実施形態では、自動モードモジュール２１２は、そのような時間的情報に関してビューポートを適切にナビゲートすることができる。いくつかの実施形態では、自動モードが用いられる場合、第１のカラースキーム（color scheme）がナビゲーションインジケータに用いられ、かつ自動モードが用いられていない、つまり、マニュアルモードが有効である場合、第２のカラースキーム（例えば、第１のカラースキームとは逆のカラースキーム）がナビゲーションインジケータに用いられる。
【００３６】
モーショントランジションモジュール（motion transition module）２１４は、自動モードが用いられている間にビューポートの動きを制御するように構成される。例えば、いくつかの実施形態では、ビューポートは、自動モードで現れるように複数のシーンおよび／または複数の注目点を表示するように自動的に移行される。複数のシーンおよび／または複数の注目点の間で移行する場合、モーショントランジションモジュール２１４は、１つまたは複数の異なる映像トランジション（film transitioning）の技術を適用することができる。一例では、トランジションは、複数のシーンおよび／または複数の注目点の間の移行が緩やかに行われるディゾルブ効果を使用して実行されてもよい。別の例では、トランジションは、カッティング効果（cut effect）を用いて実行される。他の例は、ワイプトランジションエフェクト、リニアトランジション、イージング（easing）、およびヒンティング（hinting）（たとえば、トランジションを実行する前に方向インジケータを使用するなど）を含む。いくつかの実施形態では、ビューポートは、自動モードでは自動的に移行しない。代わりに、注目点は、注目点の位置または方向を示す方向インジケータ（たとえば、矢印）を使用して、ビューポートに視覚的に表示される。そのような実施形態では、ユーザは、注目点に対応するようにビューポートをマニュアルで操作するオプションを有する。いくつかの実施形態では、モーショントランジションモジュール２１４は、使用されるデバイスのタイプ（例えば、モバイルコンピューティングデバイス、バーチャルリアリティシステム、ヘッドマウントディスプレイなど）に応じて、異なる映像トランジション技術を適用することができる。例えば、複数のビューポートトランジションは、モバイルコンピューティングデバイスでは自動であるが、バーチャルリアリティシステムおよび／またはヘッドマウントディスプレイでは自動ではない。デバイスのタイプは、どのトランジションエフェクトが使用されるかとともに、複数のシーンおよび／または複数の注目点の間でビューポートがどのように移行するかに影響する。例えば、デバイスがバーチャルリアリティーヘッドマウントディスプレイである場合、方向インジケータおよび／またはディゾルブ効果が用いられてビューポートの移行を実行することができる。別の例では、デバイスがモバイルコンピューティングデバイスである場合、ビューポートの移行を実行するときに複数のトランジションエフェクトが無効される。
【００３７】
図３は、本開示の一実施形態によるコンテンツディレクタモジュール３０２の一例を示す。いくつかの実施形態では、図１のコンテンツディレクタモジュール１０８は、コンテンツディレクタモジュール３０２で具体化される。図３の例に示すように、コンテンツディレクタモジュール３０２は、インタフェースモジュール３０４、注目点モジュール３０６、および自動モードモジュール３０８を含む。
【００３８】
インタフェースモジュール３０４は、開発者が仮想コンテンツアイテムのユーザエクスペリエンスをカスタマイズするために利用可能な様々なオプションを含むインタフェースを提供することができる。このインタフェースに関するさらなる詳細は、図５を参照して以下に提供される。いくつかの実施形態では、注目点モジュール３０６が、仮想コンテンツアイテムにおける１つ以上の注目点を指定するように用いられる。仮想コンテンツアイテムを見ているユーザは、例えばナビゲーションインジケータを含む上記の複数のアプローチのいずれかを使用して、そのような注目点を通知される。一例では、注目点は、仮想コンテンツアイテムの再生中に注目点が現れる位置（例えば、座標）および／または時間（秒）によって定義される。自動モードモジュール３０８は、１つまたは複数のビューポートの軌跡を生成するように利用される。いくつかの実施形態では、ビューポートの軌跡は、仮想コンテンツアイテムの１つ以上の部分の再生中または仮想コンテンツアイテム全体の再生中にビューポートの対応する位置および／または方向を定義する。例えば、自動モードモジュール３０８は、注目点モジュール３０６を用いて指定された注目点に基づいて、仮想コンテンツアイテムの複数のシーンをナビゲートするためのビューポートの軌跡を生成することができる。いくつかの実施形態では、自動モードモジュール３０８が、仮想コンテンツアイテムの１つまたは複数の部分の再生中にまたは仮想コンテンツアイテム全体の再生中にビューポートの指定された位置および／または方向に基づいて、仮想コンテンツアイテムにおける複数のシーンをナビゲートするためのビューポートの軌跡を生成するように用いられる。例えば、開発者は、仮想コンテンツアイテムの再生中に任意の時間について、ビューポートの位置および／または方向を指定してもよい。
【００３９】
図４Ａは、本開示の一実施形態によるコンテンツアイテム（例えば、仮想コンテンツアイテム）がアクセスされている間にナビゲーションインジケータ４０６が提供されるビューポートインタフェース４０４の一例４００を示す。この例では、ビューポート４０４は、コンピューティングデバイス４０２の表示画面上に提示される。さらに、ビューポート４０４は、コンピューティングデバイス４０２上で実行されるソフトウェアアプリケーション（例えば、ウェブブラウザ、ソーシャルネットワーキングアプリケーションなど）を介して提供されてもよい。表示画面に示されているナビゲーションインジケータ４０６の位置および／またはサイズは、具体化に応じて変更されてもよい。図４Ａの例では、ビューポート４０４は、仮想コンテンツアイテムからのシーンを提示している。この例では、シーンは、他の複数の注目点の中に、２羽の鳥４１４およびハンググライダー４１６を含む。ビューポート４０４は、ビューポートの方向およびズームレベルを識別するための方位インジケータ４０８を含むナビゲーションインジケータ４０６を含む。また、ナビゲーションインジケータ４０６は、注目点４１０が識別されかつ方位インジケータ４０８によって識別されるビューポート方向に対して東方向に位置されていることを示す。コンピューティングデバイス４０２を操作するユーザは、例えば、ビューポートの方向および／またはズームレベルを変更することによってシーンをナビゲートする。例えば、ユーザは、注目点に対応する方向４１０に向くようにビューポートの方向を変更することができる。その結果、ビューポートは、図４Ｂの例に示すように、方向４１０に対応するコンテンツ（例えば、画像および／またはビデオストリーム）を提示するように更新され得る。いくつかの実施形態では、ナビゲーションインジケータ４０６は、複数の注目点の他に、アクセスされているシーン内で発生する他の複数のタイプのイベントを識別することもできる。例えば、ナビゲーションインジケータ４０６は、シーン内で生成された音の方向を示すことができる。
【００４０】
いくつかの実施形態では、ナビゲーションインジケータ４０６は、最初は、半透明であるかまたはぼやけた色であるか（faded）のように示される。そのような実施形態では、ナビゲーションインジケータ４０６は、例えば、ビューポート４０４および／またはコンピューティングデバイス４０２を用いて、ユーザ対話を検出すると不透明になる。ナビゲーションインジケータ４０６は、ユーザがナビゲーションインジケータ４０６に対応する表示画面の領域でタッチジェスチャーを実行するときに不透明になることもある。例えば、ナビゲーションインジケータ４０６は、コンピューティングデバイス内のセンサに基づいてユーザ対話を検出することができる。いくつかの実施形態では、ナビゲーションインジケータ４０６は、ユーザ対話が閾値期間において検出されない場合、半透明の状態またはぼやけた色の状態に戻ることができる。いくつかの実施形態では、仮想コンテンツアイテムがアクセスされるときに、自動モードが、デフォルトで有効にされてもよい。そのような実施形態では、自動モードでは、ビューポートは、仮想コンテンツアイテム内の（複数の）シーンを介して自動的にナビゲートされ得る。例えば、仮想コンテンツアイテムの開発者は、（複数の）シーン内の１つ以上の注目点を指定することができ、ビューポートは、複数の注目点が表示されるように自動的にナビゲートされ得る。いくつかの実施形態では、複数の注目点間のビューポート移動のような対応する軌跡が自動的に生成され得る。いくつかの実施形態では、注目点は、ビューポートを介して提示されているビデオストリームに対応する時点または時間に（複数の）シーン内の空間領域として定義され得る。いくつかの実施形態では、複数の注目点は、ビューポートが注目点に焦点を当てるべき時間の長さを示す時間的情報（例えば、第１の注目点で３秒、第２の注目点で５秒、など）に関連付けられる。
【００４１】
上述したように、幾つかの場合では、開発者は、仮想コンテンツアイテムを見るユーザのための自動モードを定義してもよい。このような場合、ユーザは、仮想コンテンツアイテムにアクセスしている間はいつでも自動モードを用いるかまたは用いないことができる。図４Ａの例では、自動モードが有効であり、その結果、ビューポート４０４は、予め定義されたビューポートの軌跡に基づいて仮想コンテンツアイテムにおける１つまたは複数のシーンにわたって自動的にナビゲートされている。幾つかの実施形態では、仮想コンテンツアイテムがアクセスされるとき、自動モードがデフォルトで有効にされてもよい。コンピューティングデバイス４０２を操作するユーザは、例えば、ビューポート４０４をマニュアルでナビゲートすることによって、またはナビゲーションインジケータ４０６に対応する表示画面内の領域を選択すること（例えば、タップジェスチャを実行すること）によって、自動モードを無効にすることができる。幾つかの実施形態では、自動モードは、ユーザが閾値時間の間、ビューポートをマニュアルでナビゲートしなかった場合に再度有効にされる。いくつかの実施形態では、開発者は、１つまたは複数のシーンにおける１つ以上の注目点を指定することができ、自動モードが用いられると、ビューポート４０４は、注目点に自動的にガイドされる。図４Ａの例では、ビューポート４０４は、図４Ｂの例に示すように、注目点４１０に向かって自動的にナビゲートされる。
【００４２】
図４Ｂは、本開示の一実施形態によるコンテンツアイテム（例えば、仮想コンテンツアイテム）がアクセスされている間にナビゲーションインジケータ４０６が提供されるビューポートインタフェース４０４の一例４４０を示す。上述したように、自動モードが用いられている間に、ビューポート４０４は、注目点に自動的にガイドされる。この例では、コンピューティングデバイス４０２の表示画面上に提示されるビューポート４０４の方向は、注目点４１０として図４Ａのナビゲーションインジケータ４０６に示された注目点４１８に対応する方向に向くように変更されている。したがって、この例では、自動モード中に予め定義された軌跡をたどる意図された方位４０７と方位インジケータ４０８の両方が、注目点４１８が見える方向に対応する。その結果、ビューポート４０４に提示されたシーンは、ビューポート調整に対応するコンテンツ（例えば、複数の画像および／または複数のビデオストリーム）を提示するように更新されている。この例では、シーンは、他の複数の注目点の中で、注目点４１０としてナビゲーションインジケータ４０６によって識別されたハンググライダー４１６および熱気球４１８を示す。図４Ｂにおいて、方位インジケータ４０８は、ビューポートの方向の変化に対応するように、点４１２の周りを右に回転されている。いくつかの実施形態では、コンピューティングデバイス４０２を操作するユーザは、ナビゲーションインジケータ４０６に対応するディスプレイ画面の領域でタッチジェスチャーを実行して、ビューポートを仮想コンテンツアイテムに対して定義された初期の、または意図された方向、例えば自動モードに戻らせることができる。また、そのような実施形態では、ビューポートのズームレベルは、タッチジェスチャーを検出すると、仮想コンテンツアイテムに対して定義されたデフォルトの、または意図されたズームレベルにリセットされる。方位インジケータ４０８は、例えば、ユーザがビューポートをナビゲートする方向に応じて、時計回りまたは反時計回りの方向に点４１２の周りを回転することができる。例えば、ビューポート方向を０度から１８０度に変更すると、方位インジケータ４０８が点４１２を中心に時計回りの方向に回転し、ビューポート方向が１８０度から３６０度に変化すると、方位インジケータ４０８が点４１２を中心に反時計回りの方向に回転する。図４Ｂの例では、自動モードは依然として有効であり、その結果、ビューポート４０４は、予め定義されたビューポートの軌跡に基づいて仮想コンテンツアイテムの１つまたは複数のシーンにわたって自動的にナビゲートされる。この例では、ビューポート４０４は、ナビゲーションインジケータ４０６に示される注目点４２０に向かって自動的にナビゲートされる。
【００４３】
図４Ｃは、本開示の一実施形態による、コンテンツアイテム（例えば、仮想コンテンツアイテム）がアクセスされている間にナビゲーションインジケータ４０６が提供されるビューポートインタフェース４０４の一例４８０を示す。上述したように、自動モードが用いられている間、ビューポート４０４は、注目点に自動的にガイドされる。この例では、コンピューティングデバイス４０２の表示画面上に提示されるビューポート４０４の方向は、図４Ａのシーンに示されている一対の鳥４１４に面するように変更されている。したがって、この例では、自動モードにあるときに予め定義された軌跡をたどる意図された方位（intended heading）４０７と方位インジケータ４０８は、注目点４１４を見ることが可能な方向に対応する。図４Ｃの例では、コンピューティングデバイス４０２を操作するユーザは、ビューポート４０４をマニュアルでナビゲートするオプションを有する。マニュアルでナビゲートされると、自動モードは無効にされ、ビューポート４０４は、予め定義された軌跡に基づいて自動的にガイドされない。ユーザは、例えば、ナビゲーションインジケータ４０６に対応する表示画面内の領域を選択することによって、自動モードを再び有効にするオプションを有する。
【００４４】
図５は、本開示の一実施形態による、仮想コンテンツアイテムのユーザエクスペリエンスをカスタマイズするための開発者インタフェース５０２の一例５００を示す。例示的なインタフェース５０２は、仮想コンテンツアイテムを再生することができる領域５０４を含む。仮想コンテンツアイテムの任意のカスタマイズまたは変更は、領域５０４内の仮想コンテンツアイテムの再生中に反映される。ナビゲータインジケータ５０６は、開発者がビューポートの位置および／または方向を視覚化することができるように、領域５０４に含められる。いくつかの実施形態では、開発者は、仮想コンテンツアイテムが再生を開始するときに使用されるビューポートの初期カメラ方向５０８を定義することができる。初期カメラ方向５０８は、例えば、ピッチ、ヨー、および／または視野に対応する度合いの値を指定することによって定義されてもよい。
【００４５】
いくつかの実施形態では、開発者は、仮想コンテンツアイテムを見ている複数のユーザが、仮想コンテンツアイテムにおける１つまたは複数のシーンにわたってビューポートを自動的にナビゲートする自動モードを有効にさせる自動モード５１０または「ディレクターズカット（director’s cut）」を有効にすることができる。幾つかの実施形態では、自動モードが用いられると、ユーザのビューポートは、仮想コンテンツアイテムにおける複数の注目点に自動的に移行することができる。複数の注目点間のビューポートの対応する軌跡は、自動的に生成されてもよい。開発者は、領域５０４内の仮想コンテンツアイテムを見ながら、注目点を追加するためのオプション５１２を使用することができる。例えば、バーチャルコンテンツアイテムが領域５０４で再生されている間、開発者は、注目点を選択してタグ付けするためのオプション５１２を選択することができる。タグ付けされた注目点は、幾つかの例を挙げると、シーンにおける特徴、シーン内の領域、１組のフレームに対応し得る。注目点インジケータ５１４は、これまで開発者によってタグ付けされている注目点の数をカウントすることができる。開発者は、例えば、ソーシャルネットワーキングシステムに仮想コンテンツアイテムを公開するためのオプション５１６を選択することができる。公開された仮想コンテンツアイテムは、指定されたビューポートの軌跡とともに、指定された様々な注目点を記述する情報を含むことができる。この情報は、複数の注目点が適切に表示されるように、ユーザが仮想コンテンツアイテムにアクセスしているときに利用される。いくつかの実施形態では、開発者は、開発者によって指定されるように仮想コンテンツアイテムの複数のシーンおよび／または複数のポイントにわたってユーザのビューポートを自動的にナビゲートする「ディレクターズカット」映像（例えば、自動生成フォールバックユーザインタフェース）の完全に自動化されたバージョンを作成することができる。具体化によっては、自動生成された「ディレクターズカット」映像が再生されているので、映像にアクセスしているユーザは、ビューポートの方向を変更したり、またはビューポートのズームレベルを変更したりすることはできない。いくつかの実施形態では、自動生成された「ディレクターズカット」映像の異なるフォーマットが生成される。例えば、「ディレクターズカット」映像の自動化されたバージョンは、いくつかの例を挙げると、全天球映像（spherical video）、標準レクティリニア映像（regular rectilinear video）、２次元（２Ｄ）映像、または３次元（３Ｄ）映像としてフォーマットされる。このような実施形態では、様々な属性は、再生のためにユーザのコンピューティングデバイスにどのフォーマットを提供すべきかを決定するように用いられる。例えば、提供されるフォーマットは、コンピューティングデバイスの特性（例えば、コンピューティングデバイス上で再生可能なフォーマット）、ユーザプリファレンス、またはその両方に部分的に基づいて決定されてもよい。いくつかの実施形態では、自動生成された「ディレクターズカット」映像のいくつかのフォーマットは、ユーザのコンピューティングデバイスが映像のデフォルトフォ���マットまたは好ましいフォーマットを再生できない場合のフォールバックオプション（fallback option）として機能することができる。例えば、開発者は、「ディレクターズカット」映像の全天球映像バージョンがデフォルトでユーザに提供されることを指定してもよい。ユーザのコンピューティングデバイスが映像の全天球映像バージョンを再生することができない場合、指定された映像バージョンの代わりに異なるバージョン（例えば、映像の２次元バージョン）が提供されてもよい。
【００４６】
図６Ａは、コンテンツアイテム（例えば、仮想コンテンツアイテム）がアクセスされているときに、ビューポートインタフェースに提示されるナビゲーションインジケータ６０２の一例６００を示す。図６Ａにおいて、ナビゲーションインジケータ６０２は、仮想コンテンツアイテムがアクセスされている間、ビューポートの初期または意図された方向６０４を示す。方向６０４は、例えば、仮想コンテンツアイテムの開発者によって指定されてもよく、仮想コンテンツアイテムの再生中に異なるポイントで変更されてもよい。また、ナビゲーションインジケータ６０２は、仮想コンテンツによってキャプチャされた１つまたは複数のシーンにアクセスしている間に、ビューポートの方向または方位を示す方位インジケータ６０６を含む。この例では、ビューポートの方向は、方位インジケータ６０６の方向によって示される。ビューポート方向が変化すると、方位インジケータ６０６は、更新されたビューポートの方向に対応する方向に向くように点６０８の周りを回転することができる。幾つかの実施形態では、方位インジケータ６０６によって示される方向は、垂直軸（すなわち、ヨー）に沿ったビューポートの動きに対応する。方位インジケータ６０６は、アクセスされている１つまたは複数のシーンにおけるビューポートのズームレベルも示すことができる。幾つかの実施形態では、方位インジケータ６０６の長さまたはサイズは、ビューポートのより高いズームレベルを示すために、点６０８の周りで増大または伸長する。このような実施形態では、方位インジケータ６０６の長さまたはサイズは、ビューポートの縮小されたズームレベルを示すために、点６０８の周りで縮小するか、または縮小する。幾つかの実施形態では、仮想コンテンツアイテムは、デフォルトのズームレベル（例えば、６０度または他の特定のズームレベル）に関連付けられてもよい。幾つかの実施形態では、仮想コンテンツアイテムの開発者は、ビューポートを介して適用され得る最小および／または最大のズームレベルを指定することができる。
【００４７】
図６Ｂは、コンテンツアイテム（例えば、仮想コンテンツアイテム）がアクセスされているときに、ビューポートインタフェースに提示されるナビゲーションインジケータ６２２の一例６２０を示す。図６Ｂでは、仮想コンテンツアイテムにアクセスするビューポートは、シーンにおいてズームインされる。その結果、方位インジケータ６２６は、ビューポートの増大されたズームレベルを示すために、点６２８の周りに伸長されるか、またはサイズが拡大されるように示される。
【００４８】
図６Ｃは、コンテンツアイテム（例えば、仮想コンテンツアイテム）がアクセスされているときに、ビューポートインタフェースに提示され得るナビゲーションインジケータ６３２の一例６３０を示す。図６Ｃにおいて、仮想コンテンツアイテムにアクセスするビューポートの方向は、ビューポートの初期のまたは意図された方向６３４に対して、西向きまたは左向きである。さらに、ビューポートは、見られているシーンからズームアウトされる。その結果、方位インジケータ６３６は、ビューポートの方向を示すために点６３８の周りで左に回転されているものとして示されている。さらに、方位インジケータ６３６は、ビューポートの低下されたズームレベルを示すために、点６３８の周りで収縮されるか、またはサイズが縮小されるように示される。
【００４９】
図６Ｄは、コンテンツアイテム（例えば、仮想コンテンツアイテム）がアクセスされているときに、ビューポートインタフェースに提示されるナビゲーションインジケータ６４２の一例６４０を示す。図６Ｄにおいて、仮想コンテンツアイテムにアクセスするビューポートは、仮想コンテンツアイテムのシーンにズームインされる。さらに、仮想コンテンツアイテムにアクセスするビューポートの方向は、ビューポートの初期のまたは意図された方向６４４に対して西向きかまたは左向きである。その結果、方位インジケータ６４６は、ビューポートの増大されたズームレベルを示すために、点６４８の周りで伸長されるか、またはサイズが増大されるように示される。さらに、方位インジケータ６４６は、ビューポートの方向を示すために、点６４８の周りを左に回転されているものとして示されている。
【００５０】
図６Ｅは、コンテンツアイテム（例えば、仮想コンテンツアイテム）がアクセスされているときにビューポートインタフェースに提示され得るナビゲーションインジケータ６５２の一例６５０を示す。図６Ｅでは、ビューポートの初期の、または意図された方向６５４が更新されている。意図された方向６５４への変更は、例えば、ビューポートが案内されるシーンにアクセスする場合（例えば、移動する車両からのビュー）など、仮想コンテンツアイテムの再生中の異なる時点で生じる可能性がある。この例では、仮想コンテンツアイテムにアクセスするビューポートは、ビューポートの意図された方向６５４に対して反対方向を向いている。その結果、方位インジケータ６５６は、意図された方向６５４に対して反対方向に点６５８の周りを回転しているように示される。
【００５１】
図６Ｆは、コンテンツアイテム（例えば、仮想コンテンツアイテム）がアクセスされているときに、ビューポートインタフェースに提示されるナビゲーションインジケータ６６２の一例６６０を示す。図６Ｆにおいて、仮想コンテンツアイテムにアクセスするビューポートは、仮想コンテンツアイテムのシーンにズームインされる。さらに、仮想コンテンツアイテムにアクセスするビューポートの方向は、ビューポートの初期の、または意図された方向６６４に対して西に向いているか、または左に向いている。その結果、方位インジケータ６６６は、ビューポートの拡大されたズームレベルを示すために、ポイント６６８の周りで伸長されるか、またはサイズが増大されるように示される。さらに、方位インジケータ６６６は、ビューポートの方向を示すために、点６６８の周りで左に回転されているものとして示される。いくつかの実施形態では、ナビゲーションインジケータ６６２は、アクセスされている仮想コンテンツアイテムのシーンにおける様々な注目点を識別することができる。そのような実施形態では、ナビゲーションインジケータ６６２は、例えば、方向６６４および／または方位インジケータ６６６に対して、注目点の対応する方向６７０を視覚的に示すことができる。このような複数の注目点は、例えば、仮想コンテンツアイテムの開発者によって指定され得る。一般に、各注目点は、アクセスされているシーン（例えば、ストリームまたはフィード）に対応する時点に関する仮想コンテンツアイテムによってキャプチャされた１つまたは複数のシーンにおける任意の位置に関連付けることができる。いくつかの実施形態では、ナビゲーションインジケータ６６２は、ビューポートを介して提示されるシーンにおけるビューポート位置の閾値距離内の複数の注目点を識別することができる。
【００５２】
図７は、本開示の一実施形態による、ビューポートインタフェースをナビゲートするための例示的な方法７００を示す。別段の記載がない限り、本明細書で説明する様々な実施形態の範囲内で、同様の、または代替の順序で、または並行して実行される追加の、より少ない、または代替のステップが存在し得ることを理解されたい。
【００５３】
ブロック７０２において、コンテンツアイテムにアクセスするための少なくとも１つの要求が決定される。要求されたコンテンツアイテムは、１組の異なる位置から１つまたは複数のシーンを撮像する１組のカメラフィードを使用して構成される。ブロック７０４において、要求されたコンテンツアイテムのシーンの少なくとも幾つかをナビゲートするための自動視聴モードを記述する情報が取得される。ブロック７０６において、要求されたコンテンツアイテムの再生が提示されるコンピューティングデバイスの表示画面上にビューポートインタフェースが提供される。ブロック７０８において、ビューポートインタフェースは、自動視聴モードに少なくとも部分的に基づいて、要求されたコンテンツアイテムの再生中にシーンの少なくとも幾つかにわたって自動的にナビゲートされる。
【００５４】
本開示の様々な実施形態に関連する多くの他の使用、用途、および／または変形があり得ることが企図される。例えば、場合によっては、ユーザは、開示された技術を利用するか否かを選択することができる。また、開示された技術は、様々なプライバシー設定および嗜好が維持され、個人情報が漏洩するのを防止することを保証することもできる。別の例では、本開示の様々な実施形態は、学習、改善、および／または経時的に改良され得る。
【００５５】
ソーシャルネットワーキングシステム−例示的な実装形態
図８は、本開示の一実施形態による、向上したビデオ符号化のための様々な実施形態で利用され得る例示的なシステム８００のネットワーク図を示す。システム８００は、１つまたは複数のユーザデバイス８１０と、１つまたは複数の外部システム８２０と、ソーシャルネットワーキングシステム（ソーシャルネットワーキングサービス）８３０と、ネットワーク８５０とを含む。一実施形態では、前述の実施形態との関連で論じられたソーシャルネットワーキングサービス、プロバイダ、および／またはシステムは、ソーシャルネットワーキングシステム８３０として実装されてよい。例示の目的のために、図８によって示される、システム８００の実施形態は、単一の外部システム８２０と、単一のユーザデバイス８１０とを含む。ただし、他の実施形態において、システム８００は、より多くのユーザデバイス８１０、および／または、より多くの外部システム８２０を含んでもよい。特定の実施形態において、ソーシャルネットワーキングシステム８３０は、ソーシャルネットワークプロバイダによって運営されるのに対して、外部システム８２０は、異なるエンティティによって運営され得るという点で、ソーシャルネットワーキングシステム８３０とは別個のものである。しかしながら、様々な実施形態において、ソーシャルネットワーキングシステム８３０および外部システム８２０は、共に動作して、ソーシャルネットワーキングシステム８３０のユーザ（またはメンバー）に対してソーシャルネットワーキングサービスを提供する。この意味において、ソーシャルネットワーキングシステム８３０は、外部システム８２０などの他のシステムがインターネット上のユーザに対してソーシャルネットワーキングサービスおよび機能を提供するために使用し得るプラットフォームまたはバックボーンを提供する。
【００５６】
ユーザデバイス８１０は、ユーザから入力を受信し、ネットワーク８５０を通じてデータを送受信することができる１つまたは複数のコンピューティングデバイス（またはコンピューティングシステム）を備える。一実施形態において、ユーザデバイス８１０は、例えば、マイクロソフトウィンドウズ（登録商標）と互換性のあるオペレーティングシステム（ＯＳ）、Ａｐｐｌｅ  ＯＳ  Ｘ、および／またはＬｉｎｕｘ（登録商標）ディストリビューションを実行する従来のコンピュータシステムである。別の実施形態において、ユーザデバイス８１０は、スマートフォン、タブレット、携帯情報端末（ＰＤＡ：ｐｅｒｓｏｎａｌ  ｄｉｇｉｔａｌ  ａｓｓｉｓｔａｎｔ）、携帯電話、ラップトップコンピュータ、ウェアラブルデバイス（例えば、眼鏡、腕時計、ブレスレット、その他）、カメラ、機器、その他などのコンピュータ機能を有するコンピューティングデバイスまたはデバイスであってもよい。ユーザデバイス８１０は、ネットワーク８５０を通じて通信するように構成される。ユーザデバイス８１０は、アプリケーション、例えば、ユーザデバイス８１０のユーザがソーシャルネットワーキングシステム８３０と対話することを可能にするブラウザアプリケーションを実行することができる。別の実施形態において、ユーザデバイス８１０は、ｉＯＳおよびＡＮＤＲＯＩＤ（登録商標）などの、ユーザデバイス８１０のネイティブオペレーティングシステムによって提供されるアプリケーションプログラミングインタフェース（ＡＰＩ）を通じてソーシャルネットワーキングシステム８３０を対話する。ユーザデバイス８１０は、ネットワーク８５０を通じて外部システム８２０およびソーシャルネットワーキングシステム８３０と通信するように構成される。ネットワーク８５０は、有線通信システムおよび／または無線通信システムを使用する、ローカルエリアネットワークおよび／または広域ネットワークの任意の組み合わせを備え得る。
【００５７】
１つの実施形態において、ネットワーク８５０は、標準的な通信技術およびプロトコルを使用する。したがって、ネットワーク８５０は、イーサネット（登録商標）、８０２．１１、マイクロ波アクセスのための世界的相互運用性（ＷｉＭＡＸ：ｗｏｒｌｄｗｉｄｅ  ｉｎｔｅｒｏｐｅｒａｂｉｌｉｔｙ  ｆｏｒ  ｍｉｃｒｏｗａｖｅ  ａｃｃｅｓｓ）、３Ｇ、４Ｇ、ＣＤＭＡ、ＧＳＭ（登録商標）、ＬＴＥ、デジタル加入者線（ＤＳＬ：ｄｉｇｉｔａｌ  ｓｕｂｓｃｒｉｂｅｒ  ｌｉｎｅ）等などの技術を使用するリンクを含み得る。同様に、ネットワーク８５０上で使用されるネットワーキングプロトコルは、マルチプロトコルラベルスイッチング（ＭＰＬＳ：ｍｕｌｔｉｐｒｏｔｏｃｏｌ  ｌａｂｅｌ  ｓｗｉｔｃｈｉｎｇ）、送信制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）、ユーザデータグラムプロトコル（ＵＤＰ）、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、簡易メール転送プロトコル（ＳＭＴＰ：ｓｉｍｐｌｅ  ｍａｉｌ  ｔｒａｎｓｆｅｒ  ｐｒｏｔｏｃｏｌ）、ファイル転送プロトコル（ＦＴＰ）などを含み得る。ネットワーク８５０上で交換されるデータは、ハイパーテキストマークアップ言語（ＨＴＭＬ）および拡張マークアップ言語（ＸＭＬ）を含む技術および／またはフォーマットを使用して表現され得る。また、全部または一部のリンクは、セキュアソケットレイヤ（ＳＳＬ）、トランスポートレイヤセキュリティ（ＴＬＳ）、およびインターネットプロトコルセキュリティ（ＩＰｓｅｃ）などの従来の暗号化技術を使用して暗号化され得る。
【００５８】
１つの実施形態において、ユーザデバイス８１０は、外部システム８２０から、およびソーシャルネットワーキングシステム８３０から受信されるマークアップ言語文書８１４を、ブラウザアプリケーション８１２を使用して処理することによって、外部システム８２０からのコンテンツおよび／またはソーシャルネットワーキングシステム８３０からのコンテンツを表示し得る。マークアップ言語文書８１４は、コンテンツと、そのコンテンツのフォーマッティングまたは表示方法を記述する１つまたは複数の命令とを識別する。マークアップ言語文書８１４内に含まれる命令を実行することによって、ブラウザアプリケーション８１２は、マークアップ言語文書８１４によって記述されたフォーマットまたは表示方法を使用して、識別されたコンテンツを表示する。例えば、マークアップ言語文書８１４は、外部システム８２０およびソーシャルネットワーキングシステム８３０から得られたテキストおよび／または画像データを含む複数のフレームを有するウェブページを生成および表示するための命令を含む。様々な実施形態において、マークアップ言語文書８１４は、拡張マークアップ言語（ＸＭＬ）データ、拡張ハイパーテキストマークアップ言語（ＸＨＴＭＬ）データ、または、他のマークアップ言語データを含むデータファイルを備える。また、マークアップ言語文書８１４は、外部システム８２０とユーザデバイス８１０との間のデータ交換を容易にするためのジャバスクリプトオブジェクトノーテーション（ＪＳＯＮ：ＪａｖａＳｃｒｉｐｔ（登録商標）Ｏｂｊｅｃｔ  Ｎｏｔａｔｉｏｎ）データ、パディング付きのＪＳＯＮ（ＪＳＯＮＰ：ＪＳＯＮ  ｗｉｔｈ  ｐａｄｄｉｎｇ）データ、およびジャバスクリプトデータを含み得る。ユーザデバイス８１０上のブラウザアプリケーション８１２は、ジャバスクリプトコンパイラを使用して、マークアップ言語文書８１４を復号し得る。
【００５９】
マークアップ言語文書８１４は、ＦＬＡＳＨ（商標）アプリケーションまたはＵｎｉｔｙ（商標）アプリケーション、ＳｉｌｖｅｒＬｉｇｈｔ（商標）アプリケーションフレームワーク等などの、アプリケーションまたはアプリケーションフレームワークも含み、または、これらに対してもリンクし得る。
【００６０】
１つの実施形態において、ユーザデバイス８１０は、ユーザデバイス８１０のユーザがソーシャルネットワーキングシステム８３０へログインしたかを示すデータを含む、１つまたは複数のクッキー８１６も含む。クッキー８１６は、ソーシャルネットワーキングシステム８３０からユーザデバイス８１０へ通信されるデータのカスタム化を可能にし得る。
【００６１】
外部システム８２０は、１つまたは複数のウェブページ８２２ａ、８２２ｂを含む、１つまたは複数のウェブサーバを含む。１つまたは複数のウェブページ８２２ａ、８２２ｂは、ネットワーク８５０を使用して、ユーザデバイス８１０へ通信される。外部システム８２０は、ソーシャルネットワーキングシステム８３０とは別個である。例えば、外部システム８２０は、第１のドメインに対して関連付けられるが、ソーシャルネットワーキングシステム８３０は、別個のソーシャルネットワーキングドメインに対して関連付けられる。外部システム８２０に含まれるウェブページ８２２ａ、８２２ｂは、コンテンツを識別し、識別されたコンテンツのフォーマッティングおよび表示方法を特定する命令を含むマークアップ言語文書８１４を備える。前述したように、多くのバリエーションまたは他の可能性があり得ることを理解されたい。
【００６２】
ソーシャルネットワーキングシステム８３０は、複数のユーザを含み、ソーシャルネットワークのユーザに対して、ソーシャルネットワークの他のユーザと通信および対話するための能力を提供する、ソーシャルネットワークのための１つまたは複数のコンピューティングデバイスを含む。さらに詳細に説明されるように、ソーシャルネットワークは、グラフ、すなわち、エッジとノードとを含むデータ構造によって表現され得る。データベース、オブジェクト、クラス、メタ要素、ファイル、または任意の他のデータ構造を含むが、これらに限定されない、他のデータ構造も、ソーシャルネットワークを表現するために使用され得る。ソーシャルネットワーキングシステム８３０は、オペレータによって監督、管理、または制御されてよい。ソーシャルネットワーキングシステム８３０のオペレータは、ソーシャルネットワーキングシステム８３０内でコンテンツを管理し、ポリシを統制し、使用メトリクスを収集するための、人間、自動化されたアプリケーション、または一連のアプリケーションであってよい。任意のタイプのオペレータが使用されてよい。
【００６３】
ユーザは、ソーシャルネットワーキングシステム８３０に加入し、次いで、そのユーザがつなげられることを望む、ソーシャルネットワーキングシステム８３０の任意の数の他のユーザへのつながりを追加し得る。本明細書において、「友達」という用語は、ユーザがソーシャルネットワーキングシステム８３０を通じてつながり、関連、または関係を形成した、ソーシャルネットワーキングシステム８３０の任意の他のユーザに及ぶ。例えば、一実施形態において、ソーシャルネットワーキングシステム８３０内のユーザが、ソーシャルグラフ内のノードとして表現される場合、「友達」という用語は、２つのユーザノード間に形成され、かつ、２つのユーザノードを直接的に接続するエッジを指し得る。
【００６４】
つながりは、ユーザによって明示的に追加されても、または、ユーザの共通の特性（例えば、同じ教育機関の卒業生であるユーザ）に基づいて、ソーシャルネットワーキングシステム８３０によって自動的に作成されてもよい。例えば、第１のユーザは、友達になりたい特定の他のユーザを具体的に選択する。ソーシャルネットワーキングシステム８３０におけるつながりは、通常は双方向であるが、双方向である必要はなく、そのため、「ユーザ」および「友達」という用語は、枠組みに依存する。ソーシャルネットワーキングシステム８３０のユーザ間のつながりは、通常は、双務的（「二方向」）または「相互的」であるが、つながりは、片務的、または「一方向」であってもよい。例えば、ボブおよびジョーの両者が、ソーシャルネットワーキングシステム８３０のユーザであり、互いにつながっている場合、ボブおよびジョーは、互いのつながりである。他方で、ボブは、ジョーによってソーシャルネットワーキングシステム８３０へ通信されたデータを見るためにジョーとつながることを欲するが、ジョーは、相互的なつながりを形成することを欲しない場合、片務的なつながりが確立され得る。ユーザ間のつながりは、直接的なつながりであり得る。ただし、ソーシャルネットワーキングシステム８３０のいくつかの実施形態は、つながりが、１つまたは複数のつながりのレベルまたは分離度を通じた間接的なものとなることを可能にする。
【００６５】
ユーザ間のつながりを確立および維持し、ユーザ間の対話を可能にすることに加えて、ソーシャルネットワーキングシステム８３０は、ソーシャルネットワーキングシステム８３０によってサポートされる様々なタイプのアイテムに対してアクションを行うための能力をユーザに対して提供する。こうしたアイテムは、ソーシャルネットワーキングシステム８３０のユーザが所属し得るグループまたはネットワーク（すなわち、人々、エンティティ、およびコンセプトのソーシャルネットワーク）、ユーザが興味を持ち得るイベントまたはカレンダー入力、ユーザがソーシャルネットワーキングシステム８３０を通じて使用し得るコンピュータベースのアプリケーション、ソーシャルネットワーキングシステム８３０によって提供されるサービスを通じてまたはソーシャルネットワーキングシステム８３０を通じてユーザがアイテムを購入または販売することを可能にする取引、ならびにユーザがソーシャルネットワーキングシステム８３０内外で実行し得る広告との対話を含み得る。これらは、ユーザがソーシャルネットワーキングシステム８３０上で作用を与え得るアイテムのわずかな例にすぎず、多くの他の例が可能である。ユーザは、ソーシャルネットワーキングシステム８３０において、または、ソーシャルネットワーキングシステム８３０とは別個の外部システム８２０もしくはネットワーク８５０を通じてソーシャルネットワーキングシステム８３０に対して結合される外部システム８２０において表現されることが可能なありとあらゆるものと対話し得る。
【００６６】
ソーシャルネットワーキングシステム８３０は、多様なエンティティとリンクすることも可能である。例えば、ソーシャルネットワーキングシステム８３０は、ユーザが互いに対話すること、および、ＡＰＩ、ウェブサービス、または他の通信チャネルを通じて外部システム８２０または他のエンティティと対話することを可能にする。ソーシャルネットワーキングシステム８３０は、複数のエッジによって相互接続された複数のノードを備える「ソーシャルグラフ」を生成および維持する。ソーシャルグラフ内の各ノードは、別のノードに対して作用を与え得るエンティティおよび／または別のノードによって作用を与えられ得るエンティティを表現し得る。ソーシャルグラフは、様々なタイプのノードを含み得る。ノードのタイプの例は、ユーザ、人間以外のエンティティ、コンテンツアイテム、ウェブページ、グループ、アクティビティ、メッセージ、コンセプト、およびソーシャルネットワーキングシステム８３０内のオブジェクトによって表現され得る任意の他のものを含む。ソーシャルグラフ内の２つのノード間のエッジは、ノード関係から、またはノードのうちの一方によって他方に対して実行されたアクションから生じ得る、２つのノード間の特定の種類のつながり、または関連を表現し得る。いくつかのケースでは、ノード間のエッジは、重み付けされ得る。エッジの重みは、ノード間のつながりまたは関連の強度などの、そのエッジに対して関連付けられている属性を表現し得る。異なるタイプのエッジが、異なる重みと共に提供され得る。例えば、あるユーザが別のユーザに対して「いいね」を表明するときに作成されるエッジには、ある重みが与えられてよく、ユーザが別のユーザと友達になるときに作成されるエッジには、異なる重みが与えられてよい。
【００６７】
例として、第１のユーザが第２のユーザを友達として識別した場合、第１のユーザを表すノードと、第２のユーザを表す第２のノードとを接続するソーシャルグラフ中のエッジが生成される。様々なノードが互いに関係するかまたは対話するのに伴い、ソーシャルネットワーキングシステム８３０は、関係および対話を反映するように、様々なノードを接続するエッジを修正する。
【００６８】
ソーシャルネットワーキングシステム８３０は、ユーザによるソーシャルネットワーキングシステム８３０との対話を高める、ユーザにより生成されたコンテンツも含む。ユーザにより生成されたコンテンツは、ユーザがソーシャルネットワーキングシステム８３０に対して追加し、アップロードし、送信し、または「投稿し」得るあらゆるものを含み得る。例えば、ユーザは、ユーザデバイス８１０からソーシャルネットワーキングシステム８３０への投稿を通信する。投稿は、ステータスアップデートもしくは他の文字情報などのデータ、位置情報、写真などの画像、映像、リンク、音楽、または、他の同様のデータおよび／もしくはメディアを含み得る。コンテンツも、第三者によってソーシャルネットワーキングシステム８３０に対して追加され得る。コンテンツ「アイテム」は、ソーシャルネットワーキングシステム８３０においてオブジェクトとして表現される。このようにして、ソーシャルネットワーキングシステム８３０のユーザは、様々な通信チャネルを通じて様々なタイプのテキストおよびコンテンツアイテムを投稿することによって、互いに通信することを促される。そのような通信は、ユーザ同士の対話を増加させ、ユーザがソーシャルネットワーキングシステム８３０と対話する頻度を増加させる。
【００６９】
ソーシャルネットワーキングシステム８３０は、ウェブサーバ８３２と、ＡＰＩ要求サーバ８３４と、ユーザプロファイルストア８３６と、つながりストア８３８と、アクションロガー８４０と、アクティビティログ８４２と、認証サーバ８４４とを含む。本発明の一実施形態において、ソーシャルネットワーキングシステム８３０は、様々なアプリケーションのための追加的な構成要素、より少ない構成要素、または異なる構成要素を含み得る。ネットワークインタフェース、セキュリティ機構、負荷分散装置、フェイルオーバサーバ、管理およびネットワーク操作コンソールなどの他の構成要素は、本システムの詳細を曖昧にしないように、図示されていない。
【００７０】
ユーザプロファイルストア８３６は、ユーザによって申告され、またはソーシャルネットワーキングシステム８３０によって推測された職歴、学歴、趣味または嗜好、住所などの経歴的情報、人口学的情報、および他のタイプの記述的情報を含む、ユーザアカウントに関する情報を維持する。この情報は、各ユーザが一意に識別されるように、ユーザプロファイルストア８３６内に記憶される。ソーシャルネットワーキングシステム８３０は、異なるユーザ間の１つまたは複数のつながりを記述するデータも、つながりストア８３８内に記憶する。つながり情報は、同様または共通の職歴、グループメンバーシップ、趣味、または学歴を有するユーザを示し得る。また、ソーシャルネットワーキングシステム８３０は、ユーザの他のユーザとの関係をユーザが特定することを可能にする、異なるユーザ間におけるユーザによって定義されたつながりを含む。例えば、ユーザによって定義されたつながりは、友達、同僚、パートナー等などの、ユーザの実生活の関係と並行する、他のユーザとの関係をユーザが生成することを可能にする。ユーザは、予め定義されたタイプのつながりから選択しても、またはユーザ自身のつながりタイプを必要に応じて定義してもよい。非人間エンティティ、バケット、クラスタセンタ、画像、興味、ページ、外部システム、コンセプト等などの、ソーシャルネットワーキングシステム８３０内の他のノードとのつながりも、つながりストア８３８内に記憶される。
【００７１】
ソーシャルネットワーキングシステム８３０は、ユーザが対話し得るオブジェクトに関するデータを維持する。このデータを維持するために、ユーザプロファイルストア８３６およびつながりストア８３８は、ソーシャルネットワーキングシステム８３０によって維持されるオブジェクトの対応するタイプのインスタンスを記憶する。各オブジェクトタイプは、オブジェクトのタイプに適した情報を記憶するのに適した情報フィールドを有する。例えば、ユーザプロファイルストア８３６は、ユーザのアカウントおよびユーザのアカウントに関連した情報を記述するのに適したフィールドを有するデータ構造を含む。特定のタイプの新たなオブジェクトが作成される場合、ソーシャルネットワーキングシステム８３０は、対応するタイプの新たなデータ構造を初期化し、その新たなデータ構造に対して一意のオブジェクト識別子を割り当て、必要に応じて、そのオブジェクトに対してデータを追加することを開始する。これは、例えば、ユーザがソーシャルネットワーキングシステム８３０のユーザになった場合に発生し、ソーシャルネットワーキングシステム８３０は、ユーザプロファイルストア８３６内にユーザプロファイルの新たなインスタンスを生成し、ユーザアカウントに対して一意の識別子を割り当て、ユーザによって提供される情報をユーザアカウントのフィールドへ投入し始める。
【００７２】
つながりストア８３８は、他のユーザに対するユーザのつながり、外部システム８２０に対するつながり、または他のエンティティに対するつながりを記述するのに適したデータ構造を含む。つながりストア８３８は、つながりタイプもユーザのつながりと関連付け得る。つながりタイプは、ユーザのプライバシー設定と共に使用されて、ユーザに関する情報に対するアクセスを規制し得る。本発明の一実施形態において、ユーザプロファイルストア８３６およびつながりストア８３８は、連合データベースとして実装され得る。
【００７３】
つながりストア８３８、ユーザプロファイルストア８３６、およびアクティビティログ８４２内に記憶されるデータは、ノードを使用して、ノードを接続する様々なオブジェクトおよびエッジを識別して、異なるオブジェクト間の関係を識別するソーシャルグラフをソーシャルネットワーキングシステム８３０が生成することを可能にする。例えば、第１のユーザが、ソーシャルネットワーキングシステム８３０内で第２のユーザとのつながりを確立する場合、ユーザプロファイルストア８３６からの第１のユーザおよび第２のユーザのユーザアカウントは、ソーシャルグラフ内のノードとして動作し得る。つながりストア８３８によって記憶される、第１のユーザと第２のユーザとの間のつながりは、第１のユーザおよび第２のユーザに対して関連付けられるノード間のエッジである。この例を続けると、第２のユーザは、次いで、第１のユーザに対して、ソーシャルネットワーキングシステム８３０内でメッセージを送信し得る。メッセージを送信するアクションは、第１のユーザおよび第２のユーザを表現する、ソーシャルグラフ内の２つのノード間の別のエッジであり、メッセージを送信するアクションは、記憶され得る。また、メッセージ自体が、第１のユーザを表現するノードおよび第２のユーザを表現するノードに対して接続される別のノードとして、ソーシャルグラフにおいて識別され、ソーシャルグラフに含まれ得る。
【００７４】
別の例において、第１のユーザは、ソーシャルネットワーキングシステム８３０によって維持される画像において（または、代替的に、ソーシャルネットワーキングシステム８３０の外部の別のシステムによって維持される画像において）第２のユーザをタグ付けし得る。画像は、それ自体がソーシャルネットワーキングシステム８３０内のノードとして表現され得る。このタグ付けアクションは、ユーザの各々と画像との間にエッジを作成するだけでなく、第１のユーザと第２のユーザとの間のエッジも作成し得る。画像もソーシャルグラフ内のノードである。また別の例において、ユーザが、イベントへ参加することを確かめる場合、そのユーザおよびそのイベントは、ユーザプロファイルストア８３６から取得されるノードであり、そのイベントへの参加は、アクティビティログ８４２から得られ得るノード間のエッジである。ソーシャルグラフを生成および維持することによって、ソーシャルネットワーキングシステム８３０は、多くの異なるタイプのオブジェクトを記述するデータ、ならびに、それらのオブジェクト間の対話およびつながりを含み、社会的に関連する情報の豊富なソースを提供する。
【００７５】
ウェブサーバ８３２は、ソーシャルネットワーキングシステム８３０を、ネットワーク８５０を通じて、１つもしくは複数のユーザデバイス８１０および／または１つもしくは複数の外部システム８２０に対してリンクする。ウェブサーバ８３２は、ウェブページ、およびＪａｖａ（登録商標）、ＪａｖａＳｃｒｉｐｔ、Ｆｌａｓｈ、ＸＭＬなどの他のウェブ関連コンテンツを供給する。ウェブサーバ８３２は、メールサーバを含み、または、ソーシャルネットワーキングシステム８３０と１つもしくは複数のユーザデバイス８１０との間のメッセージを受信およびルーティングするための他のメッセージング機能を含み得る。メッセージは、インスタントメッセージ、キューメッセージ（例えば、電子メール）、テキストおよびＳＭＳメッセージ、または任意の他の適切なメッセージングフォーマットであり得る。
【００７６】
ＡＰＩ要求サーバ８３４は、１つまたは複数の外部システム８２０およびユーザデバイス８１０が、１つまたは複数のＡＰＩ関数を呼び出すことによって、ソーシャルネットワーキングシステム８３０からのアクセス情報を呼び出すことを可能にする。ＡＰＩ要求サーバ８３４は、外部システム８２０が、ＡＰＩを呼び出すことによって、ソーシャルネットワーキングシステム８３０に対して情報を送信することも可能にし得る。外部システム８２０は、１つの実施形態において、ネットワーク８５０を通じてソーシャルネットワーキングシステム８３０へＡＰＩ要求を送信し、ＡＰＩ要求サーバ８３４は、そのＡＰＩ要求を受信する。ＡＰＩ要求サーバ８３４は、ＡＰＩ要求に対して関連付けられているＡＰＩを呼び出すことによって要求を処理して、適当な応答を生成する。ＡＰＩ要求サーバ８３４は、その適当な応答を、ネットワーク８５０を通じて外部システム８２０へ通信する。例えば、ＡＰＩ要求に応答して、ＡＰＩ要求サーバ８３４は、外部システム８２０に対してログインしたユーザのつながりなどの、ユーザに対して関連付けられているデータを収集し、収集されたデータを外部システム８２０へ通信する。別の実施形態において、ユーザデバイス８１０は、外部システム８２０と同じ手法で、ＡＰＩを通じてソーシャルネットワーキングシステム８３０と通信する。
【００７７】
アクションロガー８４０は、ソーシャルネットワーキングシステム８３０内での、および／またはソーシャルネットワーキングシステム８３０外でのユーザアクションに関する通信をウェブサーバ８３２から受信することが可能である。アクションロガー８４０は、ユーザアクションに関する情報をアクティビティログ８４２へ投入し、ソーシャルネットワーキングシステム８３０の内部で、およびソーシャルネットワーキングシステム８３０の外部で、そのユーザによって行われた様々なアクションをソーシャルネットワーキングシステム８３０が発見することを可能にする。特定のユーザが、ソーシャルネットワーキングシステム８３０上の別のノードに関して行う任意のアクションは、アクティビティログ８４２内または同様のデータベースもしくは他のデータレポジトリ内で維持される情報を通じて、各ユーザのアカウントに対して関連付けられ得る。識別および記憶される、ソーシャルネットワーキングシステム８３０内でユーザによって行われるアクションの例は、例えば、別のユーザに対するつながりを追加すること、別のユーザへメッセージを送信すること、別のユーザからのメッセージを読むこと、別のユーザに対して関連付けられるコンテンツを視聴すること、別のユーザによって投稿されたイベントに参加すること、画像を投稿すること、画像を投稿しようと試行すること、または、別のユーザもしくは別のオブジェクトと対話する他のアクションを含み得る。ユーザが、ソーシャルネットワーキングシステム８３０内でアクションを行う場合、そのアクションは、アクティビティログ８４２内に記録される。一実施形態において、ソーシャルネットワーキングシステム８３０は、アクティビティログ８４２をエントリのデータベースとして維持する。アクションが、ソーシャルネットワーキングシステム８３０内で行われる場合、そのアクションについてのエントリが、アクティビティログ８４２に対して追加される。アクティビティログ８４２は、アクションログと称され得る。
【００７８】
また、ユーザアクションは、ソーシャルネットワーキングシステム８３０とは別個の外部システム８２０などの、ソーシャルネットワーキングシステム８３０の外部のエンティティ内で発生するコンセプトおよびアクションに対して関連付けられ得る。例えば、アクションロガー８４０は、ユーザによる外部システム８２０との対話を記述するデータを、ウェブサーバ８３２から受信し得る。この例において、外部システム８２０は、ソーシャルグラフにおける構造化されたアクションおよびオブジェクトに従って、ユーザによる対話を報告する。
【００７９】
ユーザが外部システム８２０と対話するアクションの他の例は、ユーザが外部システム８２０もしくは別のエンティティにおいて興味を表現すること、外部システム８２０もしくは外部システム８２０内のウェブページ８２２ａと議論するソーシャルネットワーキングシステム８３０に対してユーザがコメントを投稿すること、ユーザがソーシャルネットワーキングシステム８３０に対してユニフォームリソースロケータ（ＵＲＬ）もしくは外部システム８２０に対して関連付けられる他の識別子を投稿すること、ユーザが外部システム８２０に対して関連付けられるイベントへ参加すること、または、外部システム８２０に関連する、ユーザによる任意の他のアクションを含む。したがって、アクティビティログ８４２は、ソーシャルネットワーキングシステム８３０のユーザと、ソーシャルネットワーキングシステム８３０とは別個の外部システム８２０との間の対話を記述するアクションを含み得る。
【００８０】
認証サーバ８４４は、ソーシャルネットワーキングシステム８３０のユーザの１つまたは複数のプライバシー設定を強化する。ユーザのプライバシー設定は、ユーザに対して関連付けられる特定の情報がどのように共有され得るかを決定する。プライバシー設定は、ユーザに対して関連付けられる特定の情報の仕様、および情報が共有され得る１つまたは複数のエンティティの仕様を備える。情報が共有され得るエンティティの例は、他のユーザ、アプリケーション、外部システム８２０、または、その情報に潜在的にアクセスし得る任意のエンティティを含み得る。ユーザによって共有され得る情報は、プロフィール写真などのユーザアカウント情報、ユーザに対して関連付けられる電話番号、ユーザのつながり、つながりを追加すること、ユーザプロフィール情報を変更することなどのユーザによって行われるアクション等を備える。
【００８１】
プライバシー設定仕様は、異なるレベルの粒度で提供され得る。例えば、プライバシー設定は、他のユーザと共有されるべき具体的な情報を識別し得る。プライバシー設定は、職場電話番号、または、プロフィール写真、自宅電話番号、およびステータスを含む個人情報などの関連情報の具体的なセットを識別する。代替的に、プライバシー設定は、ユーザに対して関連付けられる全ての情報に対して適用されてもよい。特定の情報にアクセスすることができるエンティティのセットの仕様も、様々なレベルの粒度で特定され得る。情報が共有され得るエンティティの様々なセットは、例えば、ユーザの全ての友達、友達の全ての友達、全てのアプリケーション、または全ての外部システム８２０を含み得る。１つの実施形態は、エンティティのセットの仕様がエンティティの一覧表を備えることを可能にする。例えば、ユーザは、一定の情報に対してアクセスすることを許可される外部システム８２０のリストを提供し得る。別の実施形態は、情報に対してアクセスすることを許可されない例外と共にエンティティのセットを仕様が備えることを可能にする。例えば、ユーザは、全ての外部システム８２０がユーザの職場情報に対してアクセスすることを許可し得るが、職場情報に対してアクセスすることを許可されない外部システム８２０のリストを特定し得る。一定の実施形態は、一定の情報に対してアクセスすることを許可されない例外のリストを「ブロックリスト」と呼ぶ。ユーザによって特定されるブロックリストに所属する外部システム８２０は、プライバシー設定において特定される情報に対してアクセスすることをブロックされる。情報の仕様の粒度と、情報が共有されるエンティティの仕様の粒度との様々な組み合わせが可能である。例えば、全ての個人情報は、友達と共有され得るのに対して、全ての職場情報は、友達の友達と共有され得る。
【００８２】
認証サーバ８４４は、ユーザに対して関連付けられる一定の情報がユーザの友達、外部システム８２０、ならびに／または他のアプリケーションおよびエンティティによってアクセスされ得るかを決定するためのロジックを含む。外部システム８２０は、ユーザの職場電話番号などの、ユーザのより個人的かつ機密的な情報に対してアクセスするために、認証サーバ８４４からの認証を必要とし得る。ユーザのプライバシー設定に基づいて、認証サーバ８４４は、別のユーザ、外部システム８２０、アプリケーション、または別のエンティティが、ユーザによって行われるアクションに関する情報を含む、ユーザに対して関連付けられる情報に対してアクセスすることを許可されているかを決定する。
【００８３】
いくつかの実施形態では、ソーシャルネットワーキングシステム８３０は、コンテンツプレゼンテーションモジュール８４６を備えることができる。コンテンツプレゼンテーションモジュール８４６は、例えば、図１のコンテンツプレゼンテーションモジュール１０２として実装されてもよい。幾つかの実施形態では、ユーザデバイス８１０は、図１のコンテンツプレゼンテーションモジュール１０２によって実行可能な機能の一部または全てを実行するように構成されたコンテンツプレゼンテーションモジュール８１８を含むことができる。上述したように、多くの変形または他の可能性が存在し得ることを理解されたい。
【００８４】
ハードウェア実装形態
前述のプロセスおよび特徴は、多種多様なマシンおよびコンピュータシステムアーキテクチャによって、ならびに、多種多様なネットワークおよびコンピューティング環境において実装され得る。図９は、本発明に応じて本明細書に記載された１つまたは複数の実施形態を実装するために使用され得るコンピュータシステム９００の例を例示する。コンピュータシステム９００は、コンピュータシステム９００に対して、本明細書において議論されるプロセスおよび特徴を実行させるための命令のセットを含む。コンピュータシステム９００は、他のマシンへ接続され（例えば、ネットワーク化され）得る。ネットワーク化された配置において、コンピュータシステム９００は、クライアント／サーバネットワーク環境内のサーバマシンもしくはクライアントマシンの資格において動作し、または、ピアツーピア（もしくは分散）ネットワーク環境内のピアマシンとして動作し得る。本発明の一実施形態において、コンピュータシステム９００は、ソーシャルネットワーキングシステム８３０、ユーザデバイス８１０、外部システム９２０、またはこれらの構成要素であってもよい。本発明の一実施形態において、コンピュータシステム９００は、ソーシャルネットワーキングシステム８３０の全てまたは部分を構成する多くのサー間のうちの１つのサーバであってもよい。
【００８５】
コンピュータシステム９００は、プロセッサ９０２と、キャッシュ９０４と、コンピュータ読取可能な媒体上に記憶され、本明細書において説明されるプロセスおよび特徴へ向けられた、１つまたは複数の実行可能なモジュールおよびドライバとを含む。また、コンピュータシステム９００は、高性能入出力（Ｉ／Ｏ）バス９０６と、標準Ｉ／Ｏバス９０８とを含む。ホストブリッジ９１０は、プロセッサ９０２を高性能Ｉ／Ｏバス９０６に対して結合する一方で、Ｉ／Ｏバスブリッジ９１２は、２つのバス９０６および９０８を互いに結合する。システムメモリ９１４および１つまたは複数のネットワークインタフェース９１６は、高性能Ｉ／Ｏバス９０６へ結合される。コンピュータシステム９００は、ビデオメモリと、ビデオメモリに対して結合される表示デバイスとをさらに含んでもよい（図示せず）。マスストレージ９１８およびＩ／Ｏポート９２０は、標準Ｉ／Ｏバス９０８へ結合される。コンピュータシステム９００は、バス９０８に対して結合される、キーボードおよびポインティングデバイス、表示デバイス、または他の入出力デバイス（図示せず）を随意的に含んでもよい。全体的に、これらの要素は、カリフォルニア州サンタクララのインテルコーポレーション社（Ｉｎｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎ）によって製造されるｘ８６互換性のあるプロセッサ、カリフォルニア州サニーベルのアドバンストマイクロデバイス社（ＡＭＤ：Ａｄｖａｎｃｅｄ  Ｍｉｃｒｏ  Ｄｅｖｉｃｅｓ，Ｉｎｃ）によって製造されるｘ８６互換性のあるプロセッサ、および任意の他の適切なプロセッサを含むが、これらに限定されない、広範なカテゴリのコンピュータハードウェアシステムを表現することが意図される。
【００８６】
オペレーティングシステムは、ソフトウェアアプリケーション（図示せず）へのデータの入力およびソフトウェアアプリケーションからのデータの出力を含む、コンピュータシステム９００の動作を管理および制御する。オペレーティングシステムは、システム上で実行されているソフトウェアアプリケーションと、システムのハードウェア構成要素との間のインタフェースを提供する。任意の適切なオペレーティングシステム、例えば、ＬＩＮＵＸオペレーティングシステム、カリフォルニア州クパチーノのアップルコンピュータ社（Ａｐｐｌｅ  Ｃｏｍｐｕｔｅｒ，Ｉｎｃ．）から市販されているアップルマッキントッシュオペレーティングシステム、ＵＮＩＸ（登録商標）オペレーティングシステム、マイクロソフト（登録商標）ウィンドウズ（登録商標）オペレーティングシステム、ＢＳＤオペレーティングシステム等などが使用され得る。他の実装も可能である。
【００８７】
コンピュータシステム９００の要素は、下記においてより詳細に説明される。具体的には、ネットワークインタフェース９１６は、コンピュータシステム９００と、幅広いネットワークのうちの任意のもの、例えば、イーサネット（例えば、ＩＥＥＥ８０２．３）ネットワーク、バックプレーン等などとの間の通信を提供する。マスストレージ９１８は、上記に識別されたそれぞれのコンピューティングシステムによって実装される上述されたプロセスおよび特徴を実行するためのデータおよびプログラミング命令のための永続的なストレージを提供するのに対して、システムメモリ９１４（例えば、ＤＲＡＭ）は、プロセッサ９０２によって実行される場合のデータおよびプログラミング命令のための一時的なストレージを提供する。Ｉ／Ｏポート９２０は、コンピュータシステム９００へ結合され得る付加的な周辺デバイス間の通信を提供する、１つまたは複数のシリアル通信ポートおよび／またはパラレル通信ポートであり得る。
【００８８】
コンピュータシステム９００は、多様なシステムアーキテクチャを含むことができ、コンピュータシステム９００の様々な構成要素は、再配置されてもよい。例えば、キャッシュ９０４は、プロセッサ９０２と共にチップ上に実装されてもよい。代替的に、キャッシュ９０４およびプロセッサ９０２は、「プロセッサモジュール」としてまとめられて、プロセッサ９０２が「プロセッサコア」と称されてもよい。さらに、本発明の一定の実施形態は、上記構成要素の全部を必要としなくても、または、含まなくてもよい。例えば、標準Ｉ／Ｏバス９０８へ結合される周辺デバイスは、高性能Ｉ／Ｏバス９０６へ結合されてもよい。また、いくつかの実施形態において、単一のバスのみが存在して、コンピュータシステム９００の構成要素が、その単一のバスへ結合されてもよい。さらに、コンピュータシステム９００は、付加的なプロセッサ、記憶デバイス、またはメモリなどの付加的な構成要素を含んでもよい。
【００８９】
一般に、本明細書において説明されるプロセスおよび特徴は、オペレーティングシステムの一部もしくは特定のアプリケーション、構成要素、プログラム、オブジェクト、モジュール、または「プログラム」と称される一連の命令として実装され得る。例えば、１つまたは複数のプログラムは、本明細書において説明される具体的なプロセスを実行するために使用され得る。プログラムは、典型的には、１つまたは複数のプロセッサによって読み出され、実行される場合に、コンピュータシステム９００に対して、本明細書において説明されるプロセスおよび特徴を実行するための動作を実行させる、１つまたは複数の命令を、コンピュータシステム９００内の様々なメモリおよび記憶デバイスにおいて備える。本明細書において説明されるプロセスおよび特徴は、ソフトウェア、ファームウェア、ハードウェア（例えば、特定用途向け集積回路）、または、これらの任意の組み合わせにおいて実装され得る。
【００９０】
１つの実施形態において、本明細書において説明されるプロセスおよび特徴は、分散コンピューティング環境において個々にまたはまとめて、コンピュータシステム９００によって実行される一連の実行可能なモジュールとして実装される。前述のモジュールは、ハードウェア、コンピュータ読取可能な媒体（もしくはマシン読取可能な媒体）上に記憶される実行可能なモジュール、または、両者の組み合わせによって実現され得る。例えば、モジュールは、プロセッサ９０２などの、ハードウェアシステム内のプロセッサによって実行されるべき複数の命令または一連の命令を備え得る。まず、一連の命令は、マスストレージ９１８などの記憶デバイス上に記憶され得る。ただし、一連の命令は、任意の適切なコンピュータ読取可能な記憶媒体上に記憶されてもよい。さらに、一連の命令は、局所的に記憶される必要はなく、ネットワーク上のサーバなどの遠隔記憶デバイスからネットワークインタフェース９１６を通じて受信されてもよい。命令は、マスストレージ９１８などの記憶デバイスからシステムメモリ９１４内へコピーされ、次いで、プロセッサ９０２によってアクセスされ、実行される。様々な実施形態において、１つまたは複数のモジュールは、並列処理環境内の複数のサーバなどの、１つまたは複数の位置における、１つまたは複数のプロセッサによって実行され得る。
【００９１】
コンピュータ読取可能な媒体の例は、揮発性メモリデバイスおよび不揮発性メモリデバイスなどの記録可能なタイプの媒体、ソリッドステートメモリ、フロッピー（登録商標）ディスクおよび他の取り外し可能なディスク、ハードディスクドライブ、磁気媒体、光ディスク（例えば、コンパクトディスク読取専用メモリ（ＣＤ  ＲＯＭＳ）、デジタル多用途ディスク（ＤＶＤ））、他の同様の非一時的で（もしくは一時的で）、有形の（もしくは無形の）記憶媒体、または、本明細書において説明されるプロセスおよび特徴のうちの任意の１つもしくは複数を実行すべく、コンピュータシステム９００による実行のために一連の命令を記憶し、符号化し、もしくは担持するのに適切な任意のタイプの媒体を含むが、これらに限定されない。
【００９２】
説明の目的のために、多くの具体的な詳細が、本説明の完全な理解を提供するために述べられている。しかしながら、こうした具体的な詳細なしに本開示の実施形態が実施され得ることは、当業者には明らかであろう。いくつかの例において、モジュール、構造、プロセス、特徴、およびデバイスは、本説明を曖昧にすることを回避するために、ブロック図の形式で示される。他の例において、機能ブロック図およびフロー図は、データおよび論理フローを表現するために示される。ブロック図およびフロー図の構成要素（例えば、モジュール、ブロック、構造、デバイス、特徴等）は、本明細書において明示的に説明および図示されたような手法以外の手法で、様々に組み合わされ、分離され、除去され、順序を並べ替えられ、置換されてもよい。
【００９３】
この明細書における、「１つの実施形態」、「一実施形態」、「他の実施形態」、「一連の実施形態」、「いくつかの実施形態」、「様々な実施形態」等への言及は、実施形態に関連して説明される特定の特徴、設計、構造、または特性が本開示の少なくとも１つの実施形態に含まれることを意味する。本明細書内の様々な部分における「１つの実施形態において」または「別の実施形態」という句の出現は、必ずしも全て同じ実施形態に言及するものとは限らず、別個の実施形態または代替的な実施形態は、他の実施形態と相互排他的ではない。さらに、「実施形態」等への明示的な言及が存在しても存在しなくても、様々な特徴が説明され、様々な特徴は、いくつかの実施形態において様々に組み合わされ、含まれ得るが、他の実施形態においては様々に省略され得る。同様に、いくつかの実施形態にとっては選好事項または要件であり得るが、他の実施形態にとっては選好事項または要件ではない、様々な特徴が説明される。
【００９４】
本明細書において使用される文言は、主に、読みやすさと教育的目的のために選択されており、発明の主題の輪郭を描くため、または境界線を描くために選択されたものではない。そのため、本発明の範囲は、この詳細な説明によって限定されるのではなく、むしろ、本明細書に基づく出願について発行される任意の請求項によって限定されることが意図される。したがって、本発明の実施形態の開示は、本発明の範囲の例示とはなるが、限定とはならないことが意図され、本発明の範囲は、下記の特許請求の範囲において述べられる。
【図１】
2019521547.tif 000003
【図２】
2019521547.tif 000004
【図３】
2019521547.tif 000005
【図４Ａ】
2019521547.tif 000006
【図４Ｂ】
2019521547.tif 000007
【図４Ｃ】
2019521547.tif 000008
【図５】
2019521547.tif 000009
【図６Ａ】
2019521547.tif 000010
【図６Ｂ】
2019521547.tif 000011
【図６Ｃ】
2019521547.tif 000012
【図６Ｄ】
2019521547.tif 000013
【図６Ｅ】
2019521547.tif 000014
【図６Ｆ】
2019521547.tif 000015
【図７】
2019521547.tif 000016
【図８】
2019521547.tif 000017
【図９】
2019521547.tif 000018
【国際調査報告】
2019521547.tif 000019
2019521547.tif 000020