(57)【要約】  システム、方法、および非一時的なコンピュータ可読媒体は、拡張現実（ＡＲ）広告を表示するためのカメラビュー内の配置を決定することができ、カメラビューはコンピューティングデバイスに関連付けられている。コンピューティングデバイスに関連付けられたユーザへのＡＲ広告は、ユーザに関連付けられた属性に基づいて決定することができる。カメラビュー内の決定された配置でＡＲ広告を表示させることができる。【選択図】図１
2020515933.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティングシステムが、拡張現実（ＡＲ）広告を表示するためのカメラビュー内の配置を決定することであって、前記カメラビューはコンピューティングデバイスに関連付けられている、カメラビュー内の配置を決定することと、
前記コンピューティングシステムが、前記コンピューティングデバイスに関連付けられたユーザへのＡＲ広告を、前記ユーザに関連付けられた属性に基づいて決定することと、
前記コンピューティングシステムが、前記カメラビュー内の前記決定された配置で前記ＡＲ広告を表示させることと、
を含む、コンピュータ実施方法。
【請求項２】
前記カメラビュー内の前記配置を決定することは、前記カメラビュー内で１つまたは複数のオブジェクトを識別することを含む、請求項１に記載のコンピュータ実施方法。
【請求項３】
前記カメラビュー内で前記１つまたは複数のオブジェクトを識別することは、機械学習モデルに基づく、請求項２に記載のコンピュータ実施方法。
【請求項４】
前記ユーザへの前記ＡＲ広告は、前記１つまたは複数のオブジェクトに少なくとも部分的に基づいて決定される、請求項２に記載のコンピュータ実施方法。
【請求項５】
前記１つまたは複数のオブジェクトは、前記カメラビュー内で屋外空間にあるオブジェクトを含む、請求項２に記載のコンピュータ実施方法。
【請求項６】
前記カメラビュー内の前記配置を決定することは、前記カメラビューの画像データを、前記カメラビュー内の屋内空間の３次元（３Ｄ）マップにマッピングすることを含む、請求項１に記載のコンピュータ実施方法。
【請求項７】
前記屋内空間の前記３Ｄマップは、同時の位置特定およびマッピング（ＳＬＡＭ）に基づく、請求項６に記載のコンピュータ実施方法。
【請求項８】
前記配置は、前記３Ｄマップ中の予め定義された区画または予め定義されたオブジェクトに関連付けられている、請求項６に記載のコンピュータ実施方法。
【請求項９】
前記ユーザに関連付けられた前記属性は、年齢、年齢範囲、性別、地理的地域、または関心事、のうちの１つまたは複数を含む、請求項１に記載のコンピュータ実施方法。
【請求項１０】
前記ＡＲ広告を決定することは、ソーシャルネットワーキングシステム内で前記ユーザに関連付けられている情報に基づく、請求項１に記載のコンピュータ実施方法。
【請求項１１】
少なくとも１つのハードウェアプロセッサと、
命令を記憶したメモリと、を備えるシステムであって、前記命令は、前記少なくとも１つのプロセッサによって実行されたときに、前記システムに、
拡張現実（ＡＲ）広告を表示するためのカメラビュー内の配置を決定することであって、前記カメラビューはコンピューティングデバイスに関連付けられている、カメラビュー内の配置を決定することと、
前記コンピューティングデバイスに関連付けられたユーザへのＡＲ広告を、前記ユーザに関連付けられた属性に基づいて決定することと、
前記カメラビュー内の前記決定された配置で前記ＡＲ広告を表示させることと、
を行わせる、システム。
【請求項１２】
前記カメラビュー内の前記配置を決定することは、前記カメラビュー内で１つまたは複数のオブジェクトを識別することを含む、請求項１１に記載のシステム。
【請求項１３】
前記ユーザへの前記ＡＲ広告は、前記１つまたは複数のオブジェクトに少なくとも部分的に基づいて決定される、請求項１２に記載のシステム。
【請求項１４】
前記カメラビュー内の前記配置を決定することは、前記カメラビューの画像データを、前記カメラビュー内の屋内空間の３次元（３Ｄ）マップにマッピングすることを含む、請求項１１に記載のシステム。
【請求項１５】
前記配置は、前記３Ｄマップ中の予め定義された区画または予め定義されたオブジェクトに関連付けられている、請求項１４に記載のシステム。
【請求項１６】
コンピューティングシステムの少なくとも１つのハードウェアプロセッサによって実行されたときに、前記コンピューティングシステムに、
拡張現実（ＡＲ）広告を表示するためのカメラビュー内の配置を決定することであって、前記カメラビューはコンピューティングデバイスに関連付けられている、カメラビュー内の配置を決定することと、
前記コンピューティングデバイスに関連付けられたユーザへのＡＲ広告を、前記ユーザに関連付けられた属性に基づいて決定することと、
前記カメラビュー内の前記決定された配置で前記ＡＲ広告を表示させることと、
を含む方法を行わせる命令を含む、非一時的なコンピュータ可読媒体。
【請求項１７】
前記カメラビュー内の前記配置を決定することは、前記カメラビュー内で１つまたは複数のオブジェクトを識別することを含む、請求項１６に記載の非一時的なコンピュータ可読媒体。
【請求項１８】
前記ユーザへの前記ＡＲ広告は、前記１つまたは複数のオブジェクトに少なくとも部分的に基づいて決定される、請求項１７に記載の非一時的なコンピュータ可読媒体。
【請求項１９】
前記カメラビュー内の前記配置を決定することは、前記カメラビューの画像データを、前記カメラビュー内の屋内空間の３次元（３Ｄ）マップにマッピングすることを含む、請求項１６に記載の非一時的なコンピュータ可読媒体。
【請求項２０】
前記配置は、前記３Ｄマップ中の予め定義された区画または予め定義されたオブジェクトに関連付けられている、請求項１９に記載の非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、拡張現実（ＡＲ）の分野に関する。より詳細には、本技術は、メディアコンテンツに関連付けられたＡＲ効果またはコンテンツを提供する技法に関する。
【背景技術】
【０００２】
ユーザは、しばしば、コンピューティングデバイスを多種多様な目的に利用する。ユーザは、自身のコンピューティングデバイスを使用して、例えば、互いと対話し、メディアコンテンツにアクセスし、メディアコンテンツを共有し、メディアコンテンツを作成することができる。メディアコンテンツは、例えば、テキスト、画像、映像、および音声の１つまたは組み合わせを含むことができる。場合によっては、メディアコンテンツは、他の者による消費のためにソーシャルネットワーキングシステムのユーザによって提供されることがある。メディアコンテンツは、ユーザのコンピューティングデバイス上で捕捉され、ソーシャルネットワーキングシステムにアップロードされることがある。例えば、ユーザが、ソーシャルネットワーキングシステムによって提供されるアプリケーションなどのアプリケーションに関連付けられたカメラビューの中で、画像または映像を捕捉することができる。
【発明の概要】
【０００３】
本開示の様々な実施形態は、コンピューティングデバイスに関連付けられたカメラビューから画像データを取得するように構成された、システム、方法、および非一時的なコンピュータ可読媒体を含むことができ、画像データは屋内空間に関連付けられている。１つまたは複数の拡張現実（ＡＲ）コンテンツアイテムを表示するための画像データの部分を決定することができる。カメラビュー内に表示するＡＲコンテンツアイテムを決定することができる。ＡＲコンテンツアイテムは、画像データの決定された部分に基づいてカメラビュー内に提示するために提供することができる。
【０００４】
いくつかの実施形態では、カメラビューからの画像データに含まれている１つまたは複数のオブジェクトを識別することができる。
【０００５】
ある実施形態では、１つまたは複数のオブジェクトは、機械学習モデルに基づいて識別される。
【０００６】
一実施形態では、上記部分は、カメラビューからの画像データ中で識別されたオブジェクトである。
【０００７】
いくつかの実施形態では、屋内空間の３次元（３Ｄ）マップを提供することができる。
【０００８】
ある実施形態では、３Ｄマップは、同時の位置特定およびマッピング（ＳＬＡＭ（simultaneous localization and mapping））に基づく。
【０００９】
一実施形態では、カメラビューに関連付けられたユーザの３Ｄマップ内での位置または方向の１つまたは複数を判定するために、画像データを、屋内空間の３Ｄマップにマッピングすることができ、カメラビューはユーザの視点を表す。
【００１０】
いくつかの実施形態では、３Ｄマップは、屋内空間内にある１つまたは複数のオブジェクトの３Ｄモデルを含む。
【００１１】
ある実施形態では、上記部分は、３Ｄマップ中の予め定義された区画または予め定義されたオブジェクトの１つまたは複数に関連付けられている。
【００１２】
一実施形態では、ＡＲコンテンツアイテムに関連付けられたジェスチャに応答して情報を提供することができる。
【００１３】
本開示の様々な実施形態は、拡張現実（ＡＲ）広告を表示するためのカメラビュー内の配置を決定するように構成された、システム、方法、および非一時的なコンピュータ可読媒体を含むことができ、カメラビューはコンピューティングデバイスに関連付けられている。コンピューティングデバイスに関連付けられたユーザへのＡＲ広告は、ユーザに関連付けられた属性に基づいて決定することができる。カメラビュー内の決定された配置でＡＲ広告を表示させることができる。
【００１４】
いくつかの実施形態では、カメラビュー内の配置を決定することは、カメラビュー内で１つまたは複数のオブジェクトを識別することを備える。
【００１５】
ある実施形態では、カメラビュー内の１つまたは複数のオブジェクトを識別することは、機械学習モデルに基づく。
【００１６】
一実施形態では、ユーザへのＡＲ広告は、１つまたは複数のオブジェクトに少なくとも部分的に基づいて決定される。
【００１７】
いくつかの実施形態では、１つまたは複数のオブジェクトは、カメラビュー内で屋外空間にあるオブジェクトを含む。
【００１８】
ある実施形態では、カメラビュー内の配置を決定することは、カメラビューの画像データを、カメラビュー内の屋内空間の３次元（３Ｄ）マップにマッピングすることを含む。
【００１９】
一実施形態では、屋内空間の３Ｄマップは、同時の位置特定およびマッピング（ＳＬＡＭ）に基づく。
【００２０】
いくつかの実施形態では、上記配置は、３Ｄマップ中の予め定義された区画または予め定義されたオブジェクトに関連付けられている。
【００２１】
ある実施形態では、ユーザに関連付けられた属性は、年齢、年齢範囲、性別、地理的地域、または関心事、のうちの１つまたは複数を含む。
【００２２】
一実施形態では、ＡＲ広告を決定することは、ソーシャルネットワーキングシステム内で前記ユーザに関連付けられている情報に基づく。
【００２３】
開示される技術の多くの他の特徴、応用例、実施形態、および／または変形例が、添付図面および以下の詳細な説明から明らかになることを認識すべきである。本明細書に記載される構造、システム、非一時的なコンピュータ可読媒体、ならびに方法の追加的な実装形態および／または代替の実装形態は、開示される技術の原理から逸脱することなく用いることができる。
【図面の簡単な説明】
【００２４】
【図１】本開示の一実施形態による、カメラビューに関連付けられた様々なＡＲ効果を提供するように構成された例示的な拡張現実効果モジュールを含む例示的なシステムの図である。
【図２】本開示の一実施形態による、屋内空間に関連付けられたＡＲオーバーレイを提供するように構成された例示的なＡＲ屋内オーバーレイモジュールの図である。
【図３】本開示の一実施形態による、ＡＲパーソナライズ広告を提供するように構成された例示的なＡＲパーソナライズ広告モジュールの図である。
【図４】本開示の一実施形態による、屋内空間に関連付けられたＡＲオーバーレイを提供する例示的な第１の方法の説明図である。
【図５】本開示の一実施形態による、ＡＲパーソナライズ広告を提供する例示的な第２の方法の説明図である。
【図６】本開示の一実施形態による、様々なシナリオで利用することができる例示的なシステムのネットワーク図である。
【図７】本開示の一実施形態による、様々なシナリオで利用することができるコンピュータシステムの一例の説明図である。
【発明を実施するための形態】
【００２５】
図は、開示される技術の様々な実施形態を単に例示のために図示し、図では、同様の要素を識別するために同様の参照番号を使用する。当業者は、以下の論述から、本明細書に記載される開示される技術の原理から逸脱することなく、図に例示される構造および方法の代替の実施形態を用いることが可能であることを直ちに認識されよう。
【００２６】
拡張現実効果を提供すること
ユーザは、しばしば、コンピューティングデバイスを多種多様な目的に利用する。ユーザは、自身のコンピューティングデバイスを使用して、例えば、互いと対話し、メディアコンテンツにアクセスし、メディアコンテンツを共有し、メディアコンテンツを作成することができる。メディアコンテンツは、例えば、テキスト、画像、映像、および音声の１つまたは組み合わせを含むことができる。場合によっては、メディアコンテンツは、他の者による消費のためにソーシャルネットワーキングシステムのユーザによって提供されることがある。
【００２７】
メディアコンテンツは、ユーザのコンピューティングデバイス上で作成され、ソーシャルネットワーキングシステムにアップロードされることがある。例えば、ユーザが、ソーシャルネットワーキングシステムによって提供されるアプリケーションなどのアプリケーションに関連付けられたカメラビューに示された、画像または映像を捕捉することができる。コンピュータ技術の領域で特に台頭しつつある従来の手法は、メディアコンテンツの作成に関連するカメラビュー内にオーバーレイを提供するものがある。しかし、そのようなオーバーレイは、カメラビューに示される画像データに関係がない場合がある。そのため、従来の手法は、カメラビュー内の画像データに関して関連する情報を提供しない場合がある。
【００２８】
コンピュータ技術に由来する改良された手法が、特にコンピュータ技術の領域で台頭しつつある従来の手法に関する上述およびその他の不都合点を克服することができる。コンピュータ技術に基づき、開示される本技術は、アプリケーションに関連付けられたカメラビュー内に拡張現実（ＡＲ）効果を提供することができる。開示される本技術は、カメラビューに示される屋内空間との関係でカメラビュー内にＡＲ効果を提供することができる。いくつかの実施形態では、屋内空間内の１つまたは複数のオブジェクトを識別することができ、識別されたオブジェクトとの関係でＡＲオーバーレイを提供することができる。例えば、オブジェクトは、オブジェクト検出または認識技法に基づいて識別することができる。他の実施形態では、例えば屋内空間に関連付けられたエンティティにより、屋内空間の３Ｄマッピングが提供されることがある。屋内空間内のカメラビューを、当該カメラビューによって表される視点に基づいて屋内空間の３Ｄマップにマッピングすることができる。ＡＲオーバーレイは、屋内空間の３Ｄマップ内でのユーザの位置および／または方向との関係で提供することができる。例えば、ユーザが３Ｄマップ内のある位置にいること、およびユーザがある区画またはあるオブジェクトを見ていることを判定することができ、その区画またはそのオブジェクトに基づいてＡＲオーバーレイを提供することができる。開示される本技術は、カメラビュー内に、広告などのＡＲパーソナライズコンテンツも提供することができる。ＡＲパーソナライズ広告は、ユーザ、オブジェクト等に関連付けられた属性などの、選択された基準に基づいて選択することができる。ＡＲパーソナライズ広告は、カメラビュー内で識別された１つまたは複数のオブジェクトの上に重ねて表示することができる。ＡＲパーソナライズ広告は、カメラビュー内の予め定義された位置またはエリアに表示することもできる。このように、開示される本技術は、カメラビューに示される画像データに関連付けられたＡＲコンテンツを提供し、対話型の面白いユーザ体験を提供することができる。
【００２９】
図１は、本開示の一実施形態による、カメラビューに関連付けられた様々なＡＲ効果を提供するように構成された例示的な拡張現実効果モジュール１０２を含む例示的なシステム１００を例示する。拡張現実効果モジュール１０２は、ＡＲ屋内オーバーレイモジュール１０４およびＡＲパーソナライズ広告モジュール１０６を含むことができる。事例によっては、例示的なシステム１００は、少なくとも１つのデータストア１２０を含むことができる。同図および本明細書のすべての図に示される構成要素（例えばモジュール、要素、ステップ、ブロック等）は代表例にすぎず、他の実装形態は、追加的な構成要素、より少ない構成要素、統合された構成要素、または異なる構成要素を含んでよい。一部の構成要素は、関連する詳細を不明瞭にしないように図示しない場合がある。様々な実施形態において、拡張現実効果モジュール１０２との関係で記載される機能性の１つまたは複数は、任意の適切な組み合わせで実装することができる。例示の目的のために、開示される本技術はソーシャルネットワーキングシステムとの関係で説明するが、開示される本技術は、任意タイプのアプリケーションおよび／またはシステムに適用することができる。
【００３０】
拡張現実効果モジュール１０２は、カメラビューに示される画像データに関連付けられた様々なＡＲ効果を提供することができる。カメラビューは、カメラによって獲得された画像データを示すことができる。カメラビューに示される画像データは、画像や映像などのメディアコンテンツアイテムとして捕捉され得る。拡張現実効果モジュール１０２は、カメラビューに示される画像データに関連付けられた１つまたは複数のＡＲコンテンツアイテムを提供することができる。ＡＲコンテンツアイテムは、ＡＲオーバーレイなどのＡＲ効果を提供する任意のコンテンツを含むことができる。ＡＲコンテンツアイテムは、カメラビュー内に提供することができる。ＡＲコンテンツアイテムは、メディアコンテンツアイテムの一部として捕捉されてよい。例えば、ＡＲオーバーレイがカメラビュー内に表示され、カメラビューに示された画像が捕捉される場合、ＡＲオーバーレイはその画像の一部として含めることができる。いくつかの実施形態では、メディアコンテンツアイテムはライブとすることができ、記録されるのと同時にソーシャルネットワーキングシステムにアップロードすることができる。そのような実施形態では、ＡＲコンテンツアイテムも同様に、ライブのメディアコンテンツアイテムに対して提供することができる。
【００３１】
ＡＲ屋内オーバーレイモジュール１０４は、屋内空間に関連付けられた、ＡＲオーバーレイなどのＡＲコンテンツアイテムを提供することができる。例えば、ＡＲ屋内オーバーレイモジュール１０４は、屋内空間を示すカメラビュー内で識別された１つまたは複数のオブジェクトに対するＡＲオーバーレイを提供することができる。別の例として、ＡＲ屋内オーバーレイモジュール１０４は、カメラビューに示される屋内空間の３Ｄマッピングに基づいてユーザにＡＲオーバーレイを提供することができる。屋内空間は、建物や構造物の内側など、任意の屋内環境を含むことができる。屋内空間の例は、店舗、オフィス等を含むことができる。ＡＲ屋内オーバーレイモジュール１０４の機能性については、本明細書でより詳細に説明する。
【００３２】
ＡＲパーソナライズ広告モジュール１０６は、ＡＲパーソナライズ広告などのパーソナライズＡＲコンテンツアイテムを提供することができる。ＡＲパーソナライズ広告モジュール１０６は、カメラビュー内でのパーソナライズ広告の配置を決定することができる。ＡＲパーソナライズ広告モジュール１０６は、選択された基準に基づいて、特定のユーザに対して表示するパーソナライズ広告を選択することができる。選択されたパーソナライズ広告は、カメラビュー内の決定された配置に提供することができる。ＡＲパーソナライズ広告モジュール１０６の機能性については、本明細書でより詳細に説明する。
【００３３】
いくつかの実施形態では、拡張現実効果モジュール１０２は、一部または全体を、ソフトウェア、ハードウェア、またはそれらの任意の組み合わせとして実装することができる。一般に、本明細書で論じられるモジュールは、ソフトウェア、ハードウェア、またはそれらの任意の組み合わせに関連することがある。いくつかの実装形態では、モジュールの１つまたは複数の機能、タスク、および／または動作は、ソフトウェアルーチン、ソフトウェアプロセス、ハードウェア、および／またはそれらの任意の組み合わせによって実施するまたは行うことができる。場合によっては、拡張現実効果モジュール１０２は、一部または全体を、サーバシステムまたはクライアントコンピューティングデバイスなどの、１つまたは複数のコンピューティングデバイスまたはシステムで走るソフトウェアとして実装することができる。事例によっては、拡張現実効果モジュール１０２は、一部または全体を、図６のソーシャルネットワーキングシステム６３０などのソーシャルネットワーキングシステム（もしくはサービス）の内部に実装するか、またはソーシャルネットワーキングシステム（もしくはサービス）と連携して動作するように構成するか、またはソーシャルネットワーキングシステム（もしくはサービス）と統合することができる。同様に、事例によっては、拡張現実効果モジュール１０２は、一部または全体が、図６のユーザデバイス６１０などのクライアントコンピューティングデバイスの内部に実装されるか、またはクライアントコンピューティングデバイスと共に動作するように構成されるか、またはクライアントコンピューティングデバイスと一体化されることがある。例えば、拡張現実効果モジュール１０２は、ユーザコンピューティングデバイスまたはクライアントコンピューティングシステム上で走る、専用のアプリケーション（例えばアプリ）、プログラム、またはアプレットとして実装するか、またはそれらの内部に実装することができる。多くの変形例が可能であることを理解すべきである。
【００３４】
データストア１２０は、拡張現実効果モジュール１０２の支援および動作に関係するデータなど、様々なタイプのデータを記憶し、維持するように構成することができる。データストア１２０によって維持されるデータは、例えば、ＡＲオーバーレイ、カメラビュー内の画像データ、オブジェクトの識別（例えばオブジェクトの検出または認識）、空間の３Ｄマッピング等に関係する情報を含むことができる。データストア１２０は、ソーシャルネットワーキングシステムに関連付けられた他の情報も維持することができる。ソーシャルネットワーキングシステムに関連付けられた情報は、ユーザ、ソーシャル上のつながり、ソーシャル上の対話、ロケーション、ジオフェンスで囲まれたエリア、地図、場所、イベント、グループ、投稿、通信、コンテンツ、アカウント設定、プライバシー設定、およびソーシャルグラフ、に関するデータを含むことができる。ソーシャルグラフは、ソーシャルネットワーキングシステムのすべてのエンティティとエンティティの対話を表すことができる。例示的なシステム１００に示すように、拡張現実効果モジュール１０２は、データストア１２０と通信する、および／またはデータストア１２０と共に動作するように構成することができる。いくつかの実施形態では、データストア１２０は、クライアントコンピューティングデバイス内部のデータストアとすることができる。いくつかの実施形態では、データストア１２０は、クライアントコンピューティングデバイスと通信するサーバシステムのデータストアとすることができる。
【００３５】
図２は、本開示の一実施形態による、屋内空間に関連付けられたＡＲオーバーレイを提供するように構成された例示的なＡＲ屋内オーバーレイモジュール２０２を例示する。いくつかの実施形態では、図１のＡＲ屋内オーバーレイモジュール１０４は、例示的なＡＲ屋内オーバーレイモジュール２０２と共に実装することができる。図２の例に示されるように、例示的なＡＲ屋内オーバーレイモジュール２０２は、オブジェクト識別モジュール２０４、３Ｄモデル化モジュール２０６、およびＡＲコンテンツ決定モジュール２０８を含むことができる。
【００３６】
オブジェクト識別モジュール２０４は、カメラビュー内に示されたオブジェクトを識別することができる。オブジェクトの識別は、適当なトリガ条件（例えばカメラビューの開始）に基づいてトリガされることができる。オブジェクト識別モジュール２０４は、オブジェクト認識または検出技法に基づいてカメラビュー内のオブジェクトを検出することができる。オブジェクト識別モジュール２０４は、機械学習モデルに基づいてカメラビュー内のオブジェクトを検出することができる。いくつかの実施形態では、機械学習モデルは分類器とすることができる。機械学習モデルは、オブジェクトおよび関連付けられた画像を含む訓練データに基づいて訓練することができる。訓練された機械学習モデルは、カメラビュー内に含まれるオブジェクトを判定するために、オブジェクトの画像または映像に適用することができる。場合によっては、オブジェクトはカメラビュー内で移動する場合があり、オブジェクトを検出するためにオブジェクトが追跡されることがある。オブジェクト識別モジュール２０４は、リアルタイムまたは近リアルタイムでカメラビュー内のオブジェクトを検出することができる。いくつかの実施形態では、オブジェクトはロゴおよび／またはブランドとすることができる。他の実施形態では、オブジェクトは製品とすることができる。ある実施形態では、オブジェクトは、窓、ドア、何もない壁等とすることができる。多くの変形例が可能である。
【００３７】
３Ｄモデル化モジュール２０６は、屋内空間の３次元（３Ｄ）マッピングを提供することができる。例えば、屋内空間の３Ｄマップは、屋内空間に関連付けられたエンティティ（例えばユーザ、事業主、企業等）によって提供されることがある。３Ｄマップは、屋内空間の３Ｄ奥行きマップを提供することができる。場合によっては、屋内空間の３Ｄマップは、屋内空間内のオブジェクトの３Ｄモデルも含むことがある。いくつかの実施形態では、屋内空間の３Ｄマップは、同時の位置特定およびマッピング（ＳＬＡＭ）技法に基づいて提供することができる。例えば、ＳＬＡＭ技法は、未知の環境のマップを、その環境内でのユーザの位置を同時に追跡しながら、構築または更新することができる。屋内空間内のオブジェクトも、ＳＬＡＭ技法に基づいてマッピングすることができる。屋内空間に関連付けられたエンティティが、ＡＲオーバーレイを提供するために屋内空間の３Ｄマップ内で様々な区画および／またはオブジェクトを指定または規定することができる。例えば、ある店舗に関連付けられたエンティティが、ＡＲオーバーレイをその中で提供する、店舗の３Ｄマップ内の種々の店舗部門に対応する区画を指定することができる。
【００３８】
３Ｄモデル化モジュール２０６は、ユーザに提示されるカメラビューを、屋内空間の３Ｄマップにマッピングすることができる。屋内空間の３Ｄマップへのカメラビュー内の画像データのマッピングは、適当なトリガ条件（例えばカメラビューの開始）に基づいてトリガされることができる。３Ｄモデル化モジュール２０６は、ユーザのカメラビューに示された視点に基づいて、３Ｄマップ内でのユーザの位置および／または方向を判定することができる。カメラビュー内の画像データは、屋内空間内でのユーザの観点を表すことができ、３Ｄモデル化モジュール２０６は、ユーザが屋内空間内のどこにいるか、およびユーザが屋内空間内で何を眺めているかを、画像データを３Ｄマップにマッピングすることによって判定することができる。３Ｄモデル化モジュール２０６は、ユーザがカメラビューを通じて閲覧している任意の区画および／またはオブジェクトを判定することができ、その区画および／またはオブジェクトに関係するＡＲオーバーレイが、判定された区画および／またはオブジェクトとの関係で、例えばＡＲコンテンツ決定モジュール２０８によって提供され得る。
【００３９】
ＡＲコンテンツ決定モジュール２０８は、屋内空間との関係でＡＲオーバーレイを決定し、提供することができる。ＡＲオーバーレイは、任意タイプのコンテンツアイテムを含むことができる。コンテンツアイテムの例は、テキスト、画像、映像、音声等を含むことができる。コンテンツアイテムは、２次元（２Ｄ）コンテンツおよび／または３次元コンテンツを含むことができる。いくつかの実施形態では、ＡＲコンテンツ決定モジュール２０８は、すべてのユーザに対して同じまたは類似するＡＲオーバーレイを提供することができる。例えば、ＡＲオーバーレイは、店舗イベントまたはセールに関連する情報を提供することができる。他の実施形態では、ＡＲコンテンツ決定モジュール２０８は、選択された基準に基づいて、特定のユーザに提供するＡＲオーバーレイを選択することができる。選択された基準は、ユーザ、製品等に関連付けられた属性を含むことができる。例えば、ＡＲオーバーレイは、特定のユーザがある店舗で見た製品に基づいて、そのユーザに製品の推薦を提供することができる。いくつかの実施形態では、ユーザは、カメラビューを提示するインターフェースを通じて与える様々なジェスチャに基づいて、ＡＲオーバーレイと対話することができる。例えば、タッチジェスチャなどの特定のジェスチャが特定の機能性に対応することができる。一例として、ユーザは、特定のタッチジェスチャを行うことにより、ＡＲオーバーレイとの関連で追加的な情報（例えば状況情報）にアクセスすることができる。
【００４０】
いくつかの実施形態では、ＡＲコンテンツ決定モジュール２０８は、カメラビュー内の識別されたオブジェクトに基づいて、提供するＡＲオーバーレイを決定することができる。例えば、ＡＲコンテンツ決定モジュール２０８は、オブジェクト識別モジュール２０４によって識別された１つまたは複数のオブジェクトに対して、ＡＲオーバーレイを決定することができる。例として、オブジェクトはロゴまたはブランドであり得、ＡＲオーバーレイがカメラビュー内に表示されて、そのロゴまたはブランドに関連付けられた１つまたは複数の製品に関する情報を提供することができる。ある実施形態では、ＡＲコンテンツ決定モジュール２０８は、カメラビュー内の識別されたオブジェクトに基づいて、ＡＲオーバーレイを提供するカメラビュー内の位置を決定することもできる。例えば、ＡＲオーバーレイは、ドア、窓、または何もない空間などの、カメラビュー内で検出された１つまたは複数の他のオブジェクトの上に重ねて提供することができる。多くの変形例が可能である。
【００４１】
ある実施形態では、ＡＲコンテンツ決定モジュール２０８は、屋内空間の３Ｄマップへの、カメラビューからの画像データのマッピングに基づいて、提供するＡＲオーバーレイを決定することができる。上記で説明したように、ユーザの位置および／または方向を、例えば３Ｄモデル化モジュール２０６により、屋内空間の３Ｄマップ内で判定することができる。ＡＲコンテンツ決定モジュール２０８は、３Ｄマップ内のどこにユーザがいるか、およびユーザが何を閲覧しているかに基づいて、ＡＲオーバーレイを提供することができる。例えば、ユーザがある製品を見ている場合、ＡＲオーバーレイはその製品に関連付けられた情報を提供することができる。ＡＲコンテンツ決定モジュール２０８は、３Ｄマップ内の１つまたは複数の規定された区画にＡＲオーバーレイを提供することができる。ＡＲコンテンツ決定モジュール２０８は、３Ｄマップ内の１つまたは複数の規定されたオブジェクトとの関係でＡＲオーバーレイを提供することもできる。例えば、ＡＲオーバーレイを提供する対象区画および／またはオブジェクトを、屋内空間に関連付けられたエンティティによって指定または予め定義しておくことができる。一例として、屋内空間に関連付けられたエンティティは、組織、個人、または組織の代理人等を含み得る。例として、エンティティは、屋内空間に関連付けられた企業、その企業の社員、その企業の管理者等であり得る。
【００４２】
ＡＲコンテンツ決定モジュール２０８は、様々なタイプの情報をＡＲオーバーレイ内に提供することができる。ＡＲオーバーレイ内に提供される情報の例は、製品、店舗、イベント（例えばセール）、製品の推薦等に関係する情報を含むことができる。場合によっては、ＡＲオーバーレイ内に提供される情報は、屋内空間に関連付けられたエンティティによって定義されることがある。例えば、エンティティは、３Ｄマップ内のある区画の上に重ねて表示する映像または画像を選定することができる。いくつかの実施形態では、ユーザを援助するボット（bot）をＡＲオーバーレイとして提供することができる。例えば、ボットが、オブジェクトまたはアニメーションとしてカメラビュー内に出現することができる。別の例として、ボットが、メッセージ機能性としてカメラビュー内に出現することができる。本明細書におけるすべての例は例示を目的として提供されるものであり、多くの変形例および他の可能性があり得る。
【００４３】
図３は、本開示の一実施形態による、ＡＲパーソナライズ広告を提供するように構成された例示的なＡＲパーソナライズ広告モジュール３０２を例示する。いくつかの実施形態では、図１のＡＲパーソナライズ広告モジュール１０６は、例示的なＡＲパーソナライズ広告モジュール３０２と共に実装することができる。図３の例に示されるように、例示的なＡＲパーソナライズ広告モジュール３０２は、広告配置モジュール３０４および広告決定モジュール３０６を含むことができる。
【００４４】
広告配置モジュール３０４は、ＡＲパーソナライズ広告を表示するためのカメラビュー内の１つまたは複数の位置を決定することができる。いくつかの実施形態では、広告配置モジュール３０４は、カメラビュー内で識別された１つまたは複数のオブジェクトに基づいて、位置を決定することができる。オブジェクトの識別は、上記のオブジェクトの識別と同様であってよい。例えば、カメラビュー内のオブジェクトは、オブジェクト認識または検出技法に基づいて識別することができる。オブジェクトを識別するために機械学習モデルを使用することができる。パーソナライズ広告は、カメラビュー内の１つまたは複数の識別されたオブジェクトの上に重ねて提供することができる。他の実施形態では、広告配置モジュール３０４は、屋内空間の３Ｄマッピングに基づいて位置を決定することができる。屋内空間の３Ｄマッピングは、上記の３Ｄマッピングと同様であってよい。例えば、屋内空間に関連付けられたエンティティが、ＡＲパーソナライズ広告を提供するために屋内空間の３Ｄマップ内で１つまたは複数の区画および／またはオブジェクトを規定または予め定義しておくことができる。パーソナライズ広告は、３Ｄマップの規定された区画内に、または３Ｄマップ内で規定されたオブジェクトとの関係で、提供することができる。広告配置モジュール３０４は、屋内空間だけでなく屋外空間に対してもパーソナライズ広告を提供することができる。屋外空間の例は、公園、スタジアム、ランドマーク、建物等を含むことができる。単なる一例として、野球場のマウンドの上に重ねてパーソナライズ広告を提供することができる。広告配置モジュール３０４は、私的な空間だけでなく公の空間に対してパーソナライズ広告を提供することもできる。多くの変形例が可能である。
【００４５】
広告決定モジュール３０６は、カメラビュー内でユーザに提供する１つまたは複数のパーソナライズ広告を決定することができる。広告決定モジュール３０６は、選択された基準に基づいて、特定のユーザに提供する広告を選択することができる。選択された基準は、ユーザ、オブジェクト（例えば製品）等に関連付けられた属性を含むことができる。ユーザに関連付けられた属性の例は、年齢、年齢範囲、性別、地理的地域（例えば国、州、郡、市等）、関心事等を含むことができる。いくつかの実施形態では、広告決定モジュール３０６は、ソーシャルネットワーキングシステム内でユーザに関連付けられている情報に基づいて、ユーザへの広告を選択することができる。ユーザは、ソーシャルネットワーキングシステム内でコンテンツを作成すると共に、投稿を作成する、投稿にコメントする、投稿に「いいね」する、メディアコンテンツをアップロードする等の様々なアクティビティに携わることができる。広告決定モジュール３０６は、ソーシャルネットワーキングシステム内でのユーザのコンテンツおよびアクティビティに基づいて広告を決定することができる。広告決定モジュール３０６は、評価付け方法、ソーシャルグラフ、およびソーシャルネットワーキングシステムに関連付けられた他の属性に基づいて、ユーザへの広告を選択することもできる。ＡＲパーソナライズ広告は、任意タイプのコンテンツアイテムを含むことができる。コンテンツアイテムの例は、テキスト、画像、映像、音声等を含むことができる。コンテンツアイテムは、２次元（２Ｄ）コンテンツおよび／または３次元コンテンツを含むことができる。いくつかの実施形態では、ＡＲパーソナライズ広告は、カメラビュー内に示される画像データに関係することができる。例えば、ＡＲパーソナライズ広告は、カメラビュー内で識別されたオブジェクトに関係することができる。他の実施形態では、ＡＲパーソナライズ広告は、カメラビュー内に示される画像データには関係しない場合があり、ユーザに関連性があることもある。例えば、ＡＲパーソナライズ広告は、カメラビュー内の画像データに直接は関連しないユーザの関心事に関係することができる。ＡＲパーソナライズ広告は、カメラビュー内にオーバーレイとして提供することができる。いくつかの実施形態では、ユーザは、カメラビューを提示するインターフェースを通じて与える様々なジェスチャに基づいて、ＡＲパーソナライズ広告と対話することができる。例えば、タッチジェスチャなどの特定のジェスチャが特定の機能性に対応することができる。一例として、ユーザは、特定のタッチジェスチャを行うことにより、ＡＲパーソナライズ広告との関連で追加的な情報（例えば状況情報）にアクセスすることができる。例示の目的のために、開示される本技術はＡＲパーソナライズ広告との関係で説明するが、開示される本技術は、任意タイプのコンテンツに適用することができる。本明細書におけるすべての例は例示を目的として提供されるものであり、多くの変形例および他の可能性があり得る。
【００４６】
図４は、本開示の一実施形態による、屋内空間に関連付けられたＡＲオーバーレイを提供する例示的な第１の方法４００を例示する。特に断らない限り、本明細書に論じられる様々な特徴および実施形態に基づいて、同様の順序もしくは代替の順序で、または並行して行われる、追加的なステップ、より少ないステップ、または代替のステップがあり得ることを理解すべきである。
【００４７】
ブロック４０２で、例示的な方法４００は、コンピューティングデバイスに関連付けられたカメラビューから画像データを取得することができ、画像データはある屋内空間に関連付けられている。ブロック４０４で、例示的な方法４００は、１つまたは複数の拡張現実（ＡＲ）コンテンツアイテムを表示するための画像データの部分を決定することができる。ブロック４０６で、例示的な方法４００は、カメラビュー内に表示するＡＲコンテンツアイテムを決定することができる。ブロック４０８で、例示的な方法４００は、画像データの決定した部分に基づいて、カメラビュー内に提示するＡＲコンテンツアイテムを提供することができる。本開示の様々な特徴および実施形態を取り入れた他の適切な技法が可能である。
【００４８】
図５は、本開示の一実施形態による、ＡＲパーソナライズ広告を提供する例示的な第２の方法５００を例示する。特に断らない限り、本明細書に論じられる様々な特徴および実施形態に基づいて、同様の順序もしくは代替の順序で、または並行して行われる、追加的なステップ、より少ないステップ、または代替のステップがあり得ることを理解すべきである。方法５００のうちのあるステップは、上記で説明した例示的な方法４００と組み合わせて行われてよい。
【００４９】
ブロック５０２で、例示的な方法５００は、拡張現実（ＡＲ）広告を表示するためのカメラビュー内の配置を決定することができ、カメラビューはコンピューティングデバイスに関連付けられている。ブロック５０４で、例示的な方法５００は、コンピューティングデバイスに関連付けられたユーザへのＡＲ広告を、ユーザに関連付けられた属性に基づいて決定することができる。ブロック５０６で、例示的な方法５００は、カメラビュー内の決定された配置でＡＲ広告を表示させることができる。本開示の様々な特徴および実施形態を取り入れた他の適切な技法が可能である。
【００５０】
本開示の様々な実施形態に関連する多くの他の使用例、応用例、特徴、可能性、および／または変形例があり得ることが企図される。例えば、ユーザは、場合によっては、開示された技術を利用することをオプトイン（ｏｐｔ−ｉｎ）するか否かを選ぶことができる。開示された技術は、様々なプライバシー設定、嗜好、および構成が維持されることを、例えば保証することもでき、私的な情報が漏洩するのを防ぐことができる。別の例では、本開示の様々な実施形態は、時間と共に学習し、改良し、および／または精緻化することができる。
【００５１】
ソーシャルネットワーキングシステム  −  例示的な実装
図６は、本開示の一実施形態による、様々なシナリオで利用することができる例示的なシステム６００のネットワーク図を例示する。システム６００は、１つまたは複数のユーザデバイス６１０、１つまたは複数の外部システム６２０、ソーシャルネットワーキングシステム（またはサービス）６３０、およびネットワーク６５０を含む。一実施形態では、上記の実施形態との関連で論じられるソーシャルネットワーキングサービス、提供者、および／またはシステムは、ソーシャルネットワーキングシステム６３０として実装されてよい。例示の目的のために、図６によって示されるシステム６００の実施形態は、単一の外部システム６２０および単一のユーザデバイス６１０を含む。ただし、他の実施形態では、システム６００は、より多くのユーザデバイス６１０および／またはより多くの外部システム６２０を含んでよい。ある実施形態では、ソーシャルネットワーキングシステム６３０は、ソーシャルネットワーク提供者によって運営されるのに対して、外部システム６２０は、異なるエンティティによって運営され得るという点でソーシャルネットワーキングシステム６３０とは別個のものである。ただし、様々な実施形態において、ソーシャルネットワーキングシステム６３０および外部システム６２０は、共に動作して、ソーシャルネットワーキングシステム６３０のユーザ（またはメンバー）にソーシャルネットワーキングサービスを提供する。この意味で、ソーシャルネットワーキングシステム６３０は、外部システム６２０などの他のシステムがインターネット上のユーザにソーシャルネットワーキングサービスおよび機能性を提供するために使用し得る、プラットフォームまたはバックボーンを提供する。
【００５２】
ユーザデバイス６１０は、ユーザから入力を受け取ると共にネットワーク６５０を介してデータを送受信することができる１つまたは複数のコンピューティングデバイスを備える。１つの実施形態では、ユーザデバイス６１０は、例えば、マイクロソフトＷｉｎｄｏｗｓと互換性のあるオペレーティングシステム（ＯＳ）、Ａｐｐｌｅ  ＯＳ  Ｘ、および／またはＬｉｎｕｘディストリビューションを実行する従来のコンピュータシステムである。別の実施形態では、ユーザデバイス６１０は、スマートフォン、タブレット、携帯情報端末（ＰＤＡ）、携帯電話等の、コンピュータ機能性を有するデバイスとすることができる。ユーザデバイス６１０は、ネットワーク６５０を介して通信するように構成される。ユーザデバイス６１０は、アプリケーション、例えば、ユーザデバイス６１０のユーザがソーシャルネットワーキングシステム６３０と対話することを可能にするブラウザアプリケーションを実行することができる。別の実施形態では、ユーザデバイス６１０は、ｉＯＳおよびＡＮＤＲＯＩＤなどの、ユーザデバイス６１０のネイティブオペレーティングシステムによって提供されるアプリケーションプログラミングインターフェース（ＡＰＩ）を通じて、ソーシャルネットワーキングシステム６３０と対話する。ユーザデバイス６１０は、ネットワーク６５０を介して外部システム６２０およびソーシャルネットワーキングシステム６３０と通信するように構成され、ネットワーク６５０は、有線および／または無線通信システムを使用した、ローカルエリアネットワークおよび／またはワイドエリアネットワークの任意の組み合わせを備えてよい。
【００５３】
１つの実施形態では、ネットワーク６５０は、標準的な通信技術およびプロトコルを使用する。よって、ネットワーク６５０は、イーサネット、８０２．１１、マイクロ波接続のための世界規模の相互動作性（ＷｉＭＡＸ）、３Ｇ、４Ｇ、ＣＤＭＡ、ＧＳＭ、ＬＴＥ、デジタル加入者線（ＤＳＬ）等の技術を使用するリンクを含むことができる。同様に、ネットワーク６５０上で使用されるネットワーキングプロトコルは、マルチ・プロトコル・ラベル・スイッチング（ＭＰＬＳ）、伝送制御プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ）、ユーザ・データグラム・プロトコル（ＵＤＰ）、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、簡易メール転送プロトコル（ＳＭＴＰ）、ファイル転送プロトコル（ＦＴＰ）などを含むことができる。ネットワーク６５０を通じて交換されるデータは、ハイパーテキストマークアップ言語（ＨＴＭＬ）および拡張マークアップ言語（ＸＭＬ）を含む技術および／またはフォーマットを使用して表現されることができる。加えて、すべてまたは一部のリンクが、セキュア・ソケット・レイヤ（ＳＳＬ）、トランスポート・レイヤ・セキュリティ（ＴＬＳ）、およびインターネット・プロトコル・セキュリティ（ＩＰｓｅｃ）などの従来の暗号化技術を使用して暗号化されることがある。
【００５４】
１つの実施形態では、ユーザデバイス６１０は、外部システム６２０およびソーシャルネットワーキングシステム６３０から受信されるマークアップ言語文書６１４を、ブラウザアプリケーション６１２を使用して処理することによって、外部システム６２０からのコンテンツおよび／またはソーシャルネットワーキングシステム６３０からのコンテンツを表示してよい。マークアップ言語文書６１４は、コンテンツと、そのコンテンツのフォーマッティングまたは提示を記述する１つまたは複数の命令とを識別する。マークアップ言語文書６１４に含まれる命令を実行することによって、ブラウザアプリケーション６１２は、マークアップ言語文書６１４によって記述されたフォーマットまたは提示を使用して、識別されたコンテンツを表示する。例えば、マークアップ言語文書６１４は、外部システム６２０およびソーシャルネットワーキングシステム６３０から得られたテキストおよび／または画像データを含む複数個のフレームを有するウェブページを生成および表示するための命令を含む。様々な実施形態において、マークアップ言語文書６１４は、拡張マークアップ言語（ＸＭＬ）データ、拡張ハイパーテキストマークアップ言語（ＸＨＴＭＬ）データ、または、他のマークアップ言語データを含むデータファイルを備える。また、マークアップ言語文書６１４は、外部システム６２０とユーザデバイス６１０との間のデータ交換を容易にするためのＪａｖａＳｃｒｉｐｔオブジェクト・ノーテーション（ＪＳＯＮ）データ、パディング付きのＪＳＯＮデータ、およびＪａｖａＳｃｒｉｐｔデータを含んでよい。ユーザデバイス６１０のブラウザアプリケーション６１２は、ＪａｖａＳｃｒｉｐｔコンパイラを使用してマークアップ言語文書６１４を復号してよい。
【００５５】
マークアップ言語文書６１４は、ＦＬＡＳＨ（商標）アプリケーションまたはＵｎｉｔｙ（商標）アプリケーション、ＳｉｌｖｅｒＬｉｇｈｔ（商標）アプリケーションフレームワーク等の、アプリケーションまたはアプリケーションフレームワークも含むか、またはこれらにもリンクしてよい。
【００５６】
１つの実施形態では、ユーザデバイス６１０は、ユーザデバイス６１０のユーザがソーシャルネットワーキングシステム６３０へログインしたどうかを指示するデータを含む１つまたは複数のクッキー６１６も含み、クッキー６１６は、ソーシャルネットワーキングシステム６３０からユーザデバイス６１０へ通信されるデータの修正を可能にし得る。
【００５７】
外部システム６２０は、ネットワーク６５０を使用してユーザデバイス６１０に通信される１つまたは複数のウェブページ６２２ａ、６２２ｂを含む、１つまたは複数のウェブサーバを含む。外部システム６２０は、ソーシャルネットワーキングシステム６３０とは別個である。例えば、外部システム６２０は、第１のドメインに関連付けられ、一方、ソーシャルネットワーキングシステム６３０は、別個のソーシャルネットワーキングドメインに関連付けられる。外部システム６２０に含まれるウェブページ６２２ａ、６２２ｂは、コンテンツを識別すると共に識別されたコンテンツのフォーマッティングおよび提示を指定する命令を含む、マークアップ言語文書６１４からなる。
【００５８】
ソーシャルネットワーキングシステム６３０は、ソーシャルネットワークのための１つまたは複数のコンピューティングデバイスを含み、ソーシャルネットワークは、複数のユーザを含み、ソーシャルネットワークのユーザにソーシャルネットワークの他のユーザと通信および対話する能力を提供する。事例によっては、ソーシャルネットワークは、グラフ、すなわち、エッジとノードとを含むデータ構造によって表現されることがある。データベース、オブジェクト、クラス、メタ要素、ファイル、または任意の他のデータ構造を含むがこれらに限定されない他のデータ構造も、ソーシャルネットワークを表現するために使用することができる。ソーシャルネットワーキングシステム６３０は、オペレータによって運用、管理、または制御されてよい。ソーシャルネットワーキングシステム６３０のオペレータは、人間、自動化されたアプリケーション、または、コンテンツを管理し、ポリシーを規制し、ソーシャルネットワーキングシステム６３０内の使用メトリックを収集するための一連のアプリケーションであってよい。任意タイプのオペレータが用いられてよい。
【００５９】
ユーザは、ソーシャルネットワーキングシステム６３０に加入し、次いで、自身がつなげられることを望む、ソーシャルネットワーキングシステム６３０の任意数の他のユーザへのつながりを追加してよい。本明細書で使用される用語「友達」は、ユーザがソーシャルネットワーキングシステム６３０を介して、つながり、関連、または関係を形成した、ソーシャルネットワーキングシステム６３０の任意の他のユーザを指す。例えば、一実施形態では、ソーシャルネットワーキングシステム６３０内のユーザがソーシャルグラフ中のノードとして表現される場合、用語「友達」は、２つのユーザノード間に形成され２つのユーザノードを直接的に接続するエッジを指し得る。
【００６０】
つながりは、ユーザによって明示的に追加されても、または、ユーザ同士の共通の特性（例えば、同じ教育機関の卒業生であるユーザ）に基づいてソーシャルネットワーキングシステム６３０によって自動的に作成されてもよい。例えば、第１のユーザが、友達になりたい特定の他のユーザを具体的に選択する。ソーシャルネットワーキングシステム６３０内のつながりは、通常は双方向であるが、双方向である必要はなく、そのため、用語「ユーザ」および「友達」は枠組みに依存する。ソーシャルネットワーキングシステム６３０のユーザ間のつながりは、通常は、両側から（「二方向」）または「相互的」であるが、つながりは、片側のみから、または「一方向」であってもよい。例えば、ボブおよびジョーが、両者ともソーシャルネットワーキングシステム６３０のユーザであり、互いにつながっている場合、ボブおよびジョーは互いのつながりである。対して、ボブが、ジョーによってソーシャルネットワーキングシステム６３０へ通信されたデータを見るためにジョーとつながることを欲するものの、ジョーは、相互的なつながりを形成することを欲しない場合、片側のみからのつながりが確立され得る。ユーザ間のつながりは直接的なつながりであり得るが、ソーシャルネットワーキングシステム６３０のいくつかの実施形態は、つながりが、１つまたは複数のつながりレベルまたは分離度を介した間接的なものとなることを可能にする。
【００６１】
ユーザ間のつながりを確立および維持し、ユーザ間の対話を可能にすることに加えて、ソーシャルネットワーキングシステム６３０は、ソーシャルネットワーキングシステム６３０によってサポートされる様々なタイプのアイテムに対してアクションを行う能力をユーザに提供する。こうしたアイテムは、ソーシャルネットワーキングシステム６３０のユーザが所属し得るグループまたはネットワーク（すなわち、人々、エンティティ、およびコンセプトのソーシャルネットワーク）、ユーザが関心を持ち得るイベントまたはカレンダー項目、ユーザがソーシャルネットワーキングシステム６３０を介して使用し得るコンピュータベースのアプリケーション、ソーシャルネットワーキングシステム６３０によって提供されるサービスを介してまたはソーシャルネットワーキングシステム６３０を通じてユーザがアイテムを購入または販売することを可能にする取引、ならびにユーザがソーシャルネットワーキングシステム６３０内外で行い得る広告との対話を含み得る。これらは、ユーザがソーシャルネットワーキングシステム６３０上で作用を与え得るアイテムの数例にすぎず、多くの他の例が可能である。ユーザは、ソーシャルネットワーキングシステム６３０において、または、ソーシャルネットワーキングシステム６３０とは別個であるかもしくはネットワーク６５０を介してソーシャルネットワーキングシステム６３０に結合された外部システム６２０において表現されることが可能なあらゆるものと対話し得る。
【００６２】
ソーシャルネットワーキングシステム６３０は、各種のエンティティ同士をリンクすることも可能である。例えば、ソーシャルネットワーキングシステム６３０は、ユーザが互いに対話すること、ならびに、ＡＰＩ、ウェブサービス、または他の通信チャネルを通じて外部システム６２０または他のエンティティと対話することを可能にする。ソーシャルネットワーキングシステム６３０は、複数のエッジによって相互に連結された複数のノードを備える「ソーシャルグラフ」を生成し、維持する。ソーシャルグラフ中の各ノードは、別のノードに作用を与え得るエンティティ、および／または別のノードによって作用を与えられ得るエンティティを表現し得る。ソーシャルグラフは様々なタイプのノードを含んでよい。ノードのタイプの例は、ユーザ、非人間エンティティ、コンテンツアイテム、ウェブページ、グループ、アクティビティ、メッセージ、コンセプト、およびソーシャルネットワーキングシステム６３０内のオブジェクトによって表現され得る任意の他のものを含む。ソーシャルグラフ中の２つのノード間のエッジは、ノード関係から生じ得る、または両ノードのうちの一方によって他方に対して行われたアクションから生じ得る、２つのノード間の特定の種類のつながり、または関連付けを表現し得る。場合によっては、ノード間のエッジが重み付けされることがある。エッジの重みは、ノード間のつながりまたは関連付けの強さなどの、そのエッジに関連付けられている属性を表現することができる。異なるタイプのエッジに、異なる重みを提供することができる。例えば、あるユーザが別のユーザに「いいね」するとき作成されるエッジにはある重みが与えられる一方、ユーザが別のユーザを友達にするとき作成されるエッジには異なる重みが与えられてよい。
【００６３】
一例として、第１のユーザが第２のユーザを友達として識別すると、ソーシャルグラフ中に１つのエッジが生成されて、第１のユーザを表現するノードと第２のユーザを表現する第２のノードとを接続する。様々なノードが互いに関係する、または対話するのに伴い、ソーシャルネットワーキングシステム６３０は、それらの関係や対話を反映するように、それらの様々なノードを接続するエッジを修正する。
【００６４】
ソーシャルネットワーキングシステム６３０は、ユーザによるソーシャルネットワーキングシステム６３０との対話を高める、ユーザにより生成されたコンテンツも含む。ユーザにより生成されたコンテンツは、ユーザがソーシャルネットワーキングシステム６３０に対して追加、アップロード、送付、または「投稿」することができるあらゆるものを含み得る。例えば、ユーザは、ユーザデバイス６１０からソーシャルネットワーキングシステム６３０に投稿を通信する。投稿は、ステータスアップデートもしくは他の文字情報などのデータ、ロケーション情報、写真などの画像、映像、リンク、音楽、または、他の同様のデータおよび／もしくはメディアを含み得る。また、コンテンツは、サードパーティによってソーシャルネットワーキングシステム６３０に追加されてもよい。コンテンツ「アイテム」は、ソーシャルネットワーキングシステム６３０内でオブジェクトとして表現される。このようにして、ソーシャルネットワーキングシステム６３０のユーザは、様々な通信チャネルを通じて様々なタイプの媒体のテキストおよびコンテンツアイテムを投稿することによって、互いに通信することを促される。そのような通信は、ユーザ同士の対話を増加させ、ユーザがソーシャルネットワーキングシステム６３０と対話する頻度を増加させる。
【００６５】
ソーシャルネットワーキングシステム６３０は、ウェブサーバ６３２、ＡＰＩ要求サーバ６３４、ユーザプロフィールストア６３６、つながりストア６３８、アクションロガー６４０、アクティビティログ６４２、および認証サーバ６４４を含む。本発明の一実施形態では、ソーシャルネットワーキングシステム６３０は、様々なアプリケーションに関して、追加的な構成要素、より少ない構成要素、または異なる構成要素を含み得る。ネットワークインターフェース、セキュリティ機構、負荷分散装置、フェイルオーバサーバ、管理およびネットワーク操作コンソールなどの他の構成要素は、本システムの詳細を不明瞭にしないように、図示されていない。
【００６６】
ユーザプロフィールストア６３６は、ユーザによって申告された、またはソーシャルネットワーキングシステム６３０によって推測された、職歴、学歴、趣味または嗜好、所在地などの経歴的情報、人口統計学的情報、および他のタイプの記述的情報を含む、ユーザアカウントに関する情報を維持する。この情報は、各ユーザが一意に識別されるように、ユーザプロフィールストア６３６に記憶される。ソーシャルネットワーキングシステム６３０は、異なるユーザ間の１つまたは複数のつながりを記述するデータも、つながりストア６３８に記憶する。つながり情報は、類似または共通する職歴、グループメンバーシップ、趣味、または学歴を有するユーザを指示し得る。また、ソーシャルネットワーキングシステム６３０は、ユーザが自身と他のユーザとの関係を指定することを可能にする、種々のユーザ間にユーザによって定義されたつながりを含む。例えば、ユーザによって定義されたつながりは、友達、同僚、パートナー等の、ユーザの実生活の関係に相当する他のユーザとの関係を、ユーザが生成することを可能にする。ユーザは、予め定義されたタイプのつながりから選択しても、またはユーザ独自のつながりタイプを必要に応じて定義してもよい。非人間エンティティ、バケット、クラスタセンタ、画像、関心事、ページ、外部システム、コンセプト等の、ソーシャルネットワーキングシステム６３０内の他のノードとのつながりも、つながりストア６３８に記憶される。
【００６７】
ソーシャルネットワーキングシステム６３０は、ユーザが対話し得るオブジェクトに関するデータを維持する。このデータを維持するために、ユーザプロフィールストア６３６およびつながりストア６３８は、ソーシャルネットワーキングシステム６３０によって維持されている対応するタイプのオブジェクトのインスタンスを記憶する。各オブジェクトタイプは、オブジェクトのタイプに適する情報を記憶するのに適した情報フィールドを有する。例えば、ユーザプロフィールストア６３６は、ユーザのアカウントとユーザのアカウントに関連した情報とを記述するのに適したフィールドを有するデータ構造を保有する。特定のタイプの新しいオブジェクトが作成される場合、ソーシャルネットワーキングシステム６３０は、対応するタイプの新たなデータ構造を初期化し、この新たなデータ構造に一意のオブジェクト識別子を割り当て、必要に応じて、そのオブジェクトにデータを追加することを開始する。これは、例えば、ユーザがソーシャルネットワーキングシステム６３０のユーザになるとき発生し、ソーシャルネットワーキングシステム６３０は、ユーザプロフィールストア６３６にユーザプロフィールの新たなインスタンスを生成し、ユーザアカウントに一意の識別子を割り当て、ユーザによって提供される情報をユーザアカウントのフィールドに投入し始める。
【００６８】
つながりストア６３８は、他のユーザに対するユーザのつながり、外部システム６２０に対するつながり、または他のエンティティに対するつながりを記述するのに適したデータ構造を含む。つながりストア６３８は、つながりタイプもユーザのつながりに関連付けてよく、つながりタイプは、ユーザのプライバシー設定と共に使用されて、ユーザに関する情報へのアクセスを規制し得る。本発明の一実施形態では、ユーザプロフィールストア６３６およびつながりストア６３８は、連合データベースとして実装されてよい。
【００６９】
つながりストア６３８、ユーザプロフィールストア６３６、およびアクティビティログ６４２に記憶されたデータは、様々なオブジェクトを識別するノードと、異なるオブジェクト間の関係を識別するノード間を接続するエッジとを使用するソーシャルグラフを、ソーシャルネットワーキングシステム６３０が生成することを可能にする。例えば、第１のユーザがソーシャルネットワーキングシステム６３０内で第２のユーザとのつながりを確立する場合、ユーザプロフィールストア６３６にある第１のユーザおよび第２のユーザのユーザアカウントが、ソーシャルグラフ中のノードとなり得る。つながりストア６３８によって記憶された第１のユーザと第２のユーザとの間のつながりは、第１のユーザおよび第２のユーザに関連付けられた各ノード間のエッジである。この例を続けると、第２のユーザは、次いで、第１のユーザに対して、ソーシャルネットワーキングシステム６３０内でメッセージを送付し得る。メッセージを送付するアクションは、第１のユーザおよび第２のユーザを表現するソーシャルグラフ中の２つのノード間の別のエッジとなり、メッセージを送付するアクションは記憶されてよい。また、メッセージ自体が、第１のユーザおよび第２のユーザを表現する各ノードに接続される別のノードとして、ソーシャルグラフ中に識別され、ソーシャルグラフに含まれてもよい。
【００７０】
別の例では、第１のユーザが、ソーシャルネットワーキングシステム６３０によって維持される画像の中で（または、代替的に、ソーシャルネットワーキングシステム６３０の外部の別のシステムによって維持される画像の中で）第２のユーザをタグ付けし得る。画像は、それ自体がソーシャルネットワーキングシステム６３０内のノードとして表現され得る。このタグ付けアクションは、ユーザの各々と、同じくソーシャルグラフ中のノードである画像との間のエッジを作成するだけでなく、第１のユーザと第２のユーザとの間のエッジも作成し得る。さらに別の例において、ユーザが、あるイベントに参加することを確定した場合、そのユーザおよびそのイベントは、ユーザプロフィールストア６３６から取得されるノードであり、そのイベントへの参加は、アクティビティログ６４２から得られ得るノード間のエッジとなる。ソーシャルグラフを生成し、維持することにより、ソーシャルネットワーキングシステム６３０は、多くの異なるタイプのオブジェクトを記述するデータ、ならびに、それらのオブジェクト間の対話およびつながりを含むことになり、社交上関連する情報の豊富なソースを提供する。
【００７１】
ウェブサーバ６３２は、ソーシャルネットワーキングシステム６３０を、ネットワーク６５０を介して、１つもしくは複数のユーザデバイス６１０および／または１つもしくは複数の外部システム６２０にリンクする。ウェブサーバ６３２は、ウェブページ、およびＪａｖａ、ＪａｖａＳｃｒｉｐｔ、Ｆｌａｓｈ、ＸＭＬなどの他のウェブ関連コンテンツを供給する。ウェブサーバ６３２は、メールサーバ、または、ソーシャルネットワーキングシステム６３０と１つもしくは複数のユーザデバイス６１０との間のメッセージを受信およびルーティングするための他のメッセージング機能性を含み得る。メッセージは、インスタントメッセージ、キューメッセージ（例えば電子メール）、テキストおよびＳＭＳメッセージ、または任意の他の適切なメッセージングフォーマットであり得る。
【００７２】
ＡＰＩ要求サーバ６３４は、１つまたは複数の外部システム６２０およびユーザデバイス６１０が、１つまたは複数のＡＰＩ関数を呼び出すことによって、ソーシャルネットワーキングシステム６３０からアクセス情報を呼び出すことを可能にする。ＡＰＩ要求サーバ６３４は、外部システム６２０が、ＡＰＩを呼び出すことによって、ソーシャルネットワーキングシステム６３０に情報を送付することも可能にし得る。外部システム６２０は、１つの実施形態では、ネットワーク６５０を介してソーシャルネットワーキングシステム６３０にＡＰＩ要求を送付し、ＡＰＩ要求サーバ６３４は、ＡＰＩ要求を受信する。ＡＰＩ要求サーバ６３４は、ＡＰＩ要求に関連付けられたＡＰＩを呼び出すことにより要求を処理して適当な応答を生成し、ＡＰＩ要求サーバ６３４は、この応答を、ネットワーク６５０を介して外部システム６２０に通信する。例えば、ＡＰＩ要求に応答して、ＡＰＩ要求サーバ６３４は、外部システム６２０にログインしたユーザのつながりなどの、ユーザに関連付けられたデータを収集し、収集されたデータを外部システム６２０に通信する。別の実施形態では、ユーザデバイス６１０が、外部システム６２０と同じ方式で、ＡＰＩを通じてソーシャルネットワーキングシステム６３０と通信する。
【００７３】
アクションロガー６４０は、ソーシャルネットワーキングシステム６３０内での、および／またはソーシャルネットワーキングシステム６３０外でのユーザアクションに関する通信を、ウェブサーバ６３２から受信することが可能である。アクションロガー６４０は、ユーザアクションに関する情報をアクティビティログ６４２に投入して、ソーシャルネットワーキングシステム６３０の内部およびソーシャルネットワーキングシステム６３０の外部でシステム６３０のユーザによって行われた様々なアクションを、ソーシャルネットワーキングシステム６３０が発見することを可能にする。特定のユーザがソーシャルネットワーキングシステム６３０上の別のノードに関して行う任意のアクションが、アクティビティログ６４２または類似のデータベースもしくは他のデータレポジトリに維持される情報を通じて、各ユーザのアカウントに関連付けられてよい。識別および記憶される、ソーシャルネットワーキングシステム６３０内でユーザによって行われるアクションの例は、例えば、別のユーザに対するつながりを追加すること、別のユーザにメッセージを送付すること、別のユーザからのメッセージを読むこと、別のユーザに関連付けられたコンテンツを閲覧すること、別のユーザによって投稿されたイベントに参加すること、画像を投稿すること、画像の投稿を試みること、または、別のユーザもしくは別のオブジェクトと対話する他のアクションを含み得る。ユーザがソーシャルネットワーキングシステム６３０内でアクションを行うと、そのアクションは、アクティビティログ６４２に記録される。１つの実施形態では、ソーシャルネットワーキングシステム６３０は、アクティビティログ６４２を項目のデータベースとして維持する。ソーシャルネットワーキングシステム６３０内でアクションが行われると、そのアクションについての項目が、アクティビティログ６４２に追加される。アクティビティログ６４２は、アクションログと呼ばれることもある。
【００７４】
また、ユーザアクションは、ソーシャルネットワーキングシステム６３０とは別個の外部システム６２０などの、ソーシャルネットワーキングシステム６３０の外部のエンティティ内で発生するコンセプトおよびアクションに関連付けられてよい。例えば、アクションロガー６４０は、ユーザによる外部システム６２０との対話を記述するデータをウェブサーバ６３２から受信し得る。この例では、外部システム６２０は、ソーシャルグラフ中の構造化されたアクションおよびオブジェクトに従って、ユーザによる対話を報告する。
【００７５】
ユーザが外部システム６２０と対話するアクションの他の例は、ユーザが外部システム６２０もしくは別のエンティティにおいて関心を表出すること、ユーザが外部システム６２０もしくは外部システム６２０内のウェブページ６２２ａについて論じるコメントをソーシャルネットワーキングシステム６３０に投稿すること、ユーザがソーシャルネットワーキングシステム６３０に対して、ユニフォームリソースロケータ（ＵＲＬ）もしくは外部システム６２０に関連付けられた他の識別子を投稿すること、ユーザが外部システム６２０に関連付けられたイベントに参加すること、または、外部システム６２０に関係するユーザによる任意の他のアクションを含む。よって、アクティビティログ６４２は、ソーシャルネットワーキングシステム６３０のユーザと、ソーシャルネットワーキングシステム６３０とは別個の外部システム６２０との間の対話を記述するアクションを含み得る。
【００７６】
認証サーバ６４４は、ソーシャルネットワーキングシステム６３０のユーザの１つまたは複数のプライバシー設定を強化する。ユーザのプライバシー設定は、ユーザに関連付けられた特定の情報がどのように共有され得るかを決定する。プライバシー設定は、ユーザに関連付けられた特定の情報の仕様と、情報が共有され得る１つまたは複数のエンティティの仕様とを備える。情報が共有され得るエンティティの例は、他のユーザ、アプリケーション、外部システム６２０、または、その情報にアクセスする可能性のある任意のエンティティを含み得る。ユーザによって共有され得る情報は、プロフィール写真などのユーザアカウント情報、ユーザに関連付けられた電話番号、ユーザのつながり、つながりを追加することやユーザプロフィール情報を変更することなどのユーザによって行われるアクション等を備える。
【００７７】
プライバシー設定の仕様は、種々のレベルの粒度で提供され得る。例えば、プライバシー設定は、他のユーザと共有されるべき具体的な情報を識別し得る。プライバシー設定は、職場電話番号、または、プロフィール写真、自宅電話番号、およびステータスを含む個人情報などの関連情報の具体的な組を識別する。代替的に、プライバシー設定は、ユーザに関連付けられたすべての情報に適用されてもよい。特定の情報にアクセスすることができるエンティティの組の仕様も、様々なレベルの粒度で指定され得る。情報が共有され得るエンティティの様々な組は、例えば、ユーザのすべての友達、友達のすべての友達、すべてのアプリケーション、またはすべての外部システム６２０を含み得る。１つの実施形態は、エンティティの組の仕様がエンティティの一覧表を備えることを可能にする。例えば、ユーザは、ある情報にアクセスすることを許される外部システム６２０のリストを提供し得る。別の実施形態は、仕様が、情報にアクセスすることを許されない例外と併せてエンティティの組を備えることを可能にする。例えば、ユーザは、すべての外部システム６２０がユーザの職場情報にアクセスすることを許し得るが、職場情報へのアクセスを許されない外部システム６２０のリストを指定し得る。ある実施形態では、ある情報にアクセスすることを許されない例外のリストを「ブロックリスト」と呼ぶ。ユーザによって指定されるブロックリストに所属する外部システム６２０は、プライバシー設定において指定された情報にアクセスできないようにブロックされる。情報の仕様の粒度と、情報が共有されるエンティティの仕様の粒度との様々な組み合わせが可能である。例えば、すべての個人情報は、友達と共有され得るのに対して、すべての職場情報は、友達の友達と共有され得る。
【００７８】
認証サーバ６４４は、ユーザに関連付けられたある情報が、ユーザの友達、外部システム６２０、ならびに／または他のアプリケーションおよびエンティティによってアクセスされることが可能かどうかを決定するロジックを保有する。外部システム６２０は、ユーザの職場電話番号など、ユーザのより個人的かつ機密的な情報にアクセスするために、認証サーバ６４４からの認証を必要とし得る。ユーザのプライバシー設定に基づいて、認証サーバ６４４は、別のユーザ、外部システム６２０、アプリケーション、または別のエンティティが、ユーザによって行われたアクションに関する情報を含む、ユーザに関連付けられた情報にアクセスすることを許されるかを判定する。
【００７９】
いくつかの実施形態では、ソーシャルネットワーキングシステム６３０は、拡張現実効果モジュール６４６を含むことができる。拡張現実効果モジュール６４６は、本明細書でさらに詳しく論じるように、拡張現実効果モジュール１０２と共に実装することができる。いくつかの実施形態では、拡張現実効果モジュール６４６の１つまたは複数の機能性は、ユーザデバイス６１０内に実装することができる。
【００８０】
ハードウェア実装
前述のプロセスおよび特徴は、多種多様なマシンおよびコンピュータシステムアーキテクチャによって、ならびに、多種多様なネットワークおよびコンピューティング環境において実装することができる。図７は、本発明の一実施形態による、本明細書に記載される実施形態の１つまたは複数を実装するために使用され得るコンピュータシステム７００の一例を例示する。コンピュータシステム７００は、コンピュータシステム７００に、本明細書で論じられるプロセスおよび特徴を行わせるための命令のセットを含む。コンピュータシステム７００は、他のマシンに接続され（例えばネットワーク化され）得る。ネットワーク化された配備では、コンピュータシステム７００は、クライアント／サーバネットワーク環境内のサーバマシンもしくはクライアントマシンの資格で動作する、または、ピアツーピア（もしくは分散）ネットワーク環境内のピアマシンとして動作し得る。本発明の一実施形態では、コンピュータシステム７００は、ソーシャルネットワーキングシステム６３０、ユーザデバイス６１０、および外部システム７２０、またはそれらの一構成要素であってよい。本発明の一実施形態では、コンピュータシステム７００は、ソーシャルネットワーキングシステム６３０の一部または全部を構成する多数のサーバの中の１つのサーバであってよい。
【００８１】
コンピュータシステム７００は、プロセッサ７０２と、キャッシュ７０４と、コンピュータ可読媒体に記憶され、本明細書に記載されるプロセスおよび特徴を対象とする、１つまたは複数の実行可能なモジュールおよびドライバとを含む。また、コンピュータシステム７００は、高性能入出力（Ｉ／Ｏ）バス７０６と、標準Ｉ／Ｏバス７０８とを含む。ホストブリッジ７１０が、プロセッサ７０２を高性能Ｉ／Ｏバス７０６に結合するのに対し、Ｉ／Ｏバスブリッジ７１２は、２つのバス７０６および７０８を互いに結合する。システムメモリ７１４および１つまたは複数のネットワークインターフェース７１６が、高性能Ｉ／Ｏバス７０６に結合される。コンピュータシステム７００は、ビデオメモリと、ビデオメモリに結合された表示デバイスとをさらに含んでよい（図示せず）。マスストレージ７１８およびＩ／Ｏポート７２０が、標準Ｉ／Ｏバス７０８に結合される。コンピュータシステム７００は、標準Ｉ／Ｏバス７０８に結合される、キーボードおよびポインティングデバイス、表示デバイス、または他の入出力デバイス（図示せず）を任意選択で含んでもよい。全体的に、これらの要素は、カリフォルニア州サンタクララのインテルコーポレーション社（Ｉｎｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎ）によって製造されるｘ８６互換プロセッサ、カリフォルニア州サニーベルのアドバンスト・マイクロ・デバイス社（ＡＭＤ：Ａｄｖａｎｃｅｄ  Ｍｉｃｒｏ  Ｄｅｖｉｃｅｓ，Ｉｎｃ．）によって製造されるｘ８６互換プロセッサ、および任意の他の適切なプロセッサに基づくコンピュータシステムを含むが、これらに限定されない、広範なカテゴリのコンピュータハードウェアシステムを表現することが意図される。
【００８２】
オペレーティングシステムが、ソフトウェアアプリケーション（図示せず）との間のデータの入力および出力を含む、コンピュータシステム７００の動作を管理および制御する。オペレーティングシステムは、システム上で実行されているソフトウェアアプリケーションと、システムのハードウェア構成要素との間のインターフェースを提供する。任意の適切なオペレーティングシステム、例えば、ＬＩＮＵＸオペレーティングシステム、カリフォルニア州クパチーノのアップル・コンピュータ社（Ａｐｐｌｅ  Ｃｏｍｐｕｔｅｒ，Ｉｎｃ．）から市販されているアップル・マッキントッシュ・オペレーティング・システム、ＵＮＩＸオペレーティングシステム、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステム、ＢＳＤオペレーティングシステム等が使用され得る。他の実装形態が可能である。
【００８３】
コンピュータシステム７００の要素について以下詳細に説明する。具体的には、ネットワークインターフェース７１６は、コンピュータシステム７００と、幅広いネットワークのうちの任意のもの、例えば、イーサネット（例えばＩＥＥＥ８０２．３）ネットワーク、バックプレーン等との間の通信を提供する。マスストレージ７１８は、上記に識別されたそれぞれのコンピューティングシステムによって実装される上述されたプロセスおよび特徴を行うためのデータおよびプログラミング命令のための永続的なストレージを提供するのに対して、システムメモリ７１４（例えばＤＲＡＭ）は、プロセッサ７０２によって実行されたときデータおよびプログラミング命令のための一時的なストレージを提供する。Ｉ／Ｏポート７２０は、コンピュータシステム７００に結合され得る追加的な周辺デバイス間の通信を提供する、１つまたは複数のシリアル通信ポートおよび／またはパラレル通信ポートであり得る。
【００８４】
コンピュータシステム７００は、各種システムアーキテクチャを含んでよく、コンピュータシステム７００の様々な構成要素は、構成が変更されてよい。例えば、キャッシュ７０４は、プロセッサ７０２と共にチップ上に実装されてもよい。代替的に、キャッシュ７０４およびプロセッサ７０２が「プロセッサモジュール」としてまとめられて、プロセッサ７０２が「プロセッサコア」と称されてもよい。さらに、本発明のある実施形態は、上記構成要素のすべては必要とせず、また含まなくてよい。例えば、標準Ｉ／Ｏバス７０８に結合される周辺デバイスは、高性能Ｉ／Ｏバス７０６に結合されてもよい。加えて、いくつかの実施形態では、単一のバスのみが存在して、コンピュータシステム７００の構成要素が、その単一のバスに結合されてもよい。さらに、コンピュータシステム７００は、追加的なプロセッサ、記憶デバイス、またはメモリなどの追加的な構成要素を含んでよい。
【００８５】
一般に、本明細書に記載されるプロセスおよび特徴は、オペレーティングシステムもしくは特定のアプリケーションの一部、構成要素、プログラム、オブジェクト、モジュール、または「プログラム」と称される一連の命令として実装され得る。例えば、１つまたは複数のプログラムが、本明細書に記載される具体的なプロセスを実行するために使用され得る。プログラムは、典型的には、１つまたは複数のプロセッサによって読み出されて実行されると、本明細書に記載されるプロセスおよび特徴を実行するための動作をコンピュータシステム７００に行わせる１つまたは複数の命令を、コンピュータシステム７００内の様々なメモリおよび記憶デバイスに備える。本明細書に記載されるプロセスおよび特徴は、ソフトウェア、ファームウェア、ハードウェア（例えば特定用途向け集積回路）、または、これらの任意の組み合わせとして実装され得る。
【００８６】
一実装形態では、本明細書に記載されるプロセスおよび特徴は、分散コンピューティング環境において個々にまたはまとめて、コンピュータシステム７００によって実行される一連の実行可能モジュールとして実装される。前述のモジュールは、ハードウェア、コンピュータ可読媒体（もしくは機械可読媒体）に記憶される実行可能モジュール、または、両者の組み合わせによって実現され得る。例えば、モジュールは、プロセッサ７０２などの、ハードウェアシステム内のプロセッサによって実行される複数の命令または一連の命令を備え得る。まず、一連の命令は、マスストレージ７１８などの記憶デバイスに記憶され得る。ただし、一連の命令は、任意の適切なコンピュータ可読記憶媒体に記憶することができる。さらに、一連の命令は、ローカルに記憶される必要はなく、ネットワーク上のサーバなどの遠隔記憶デバイスからネットワークインターフェース７１６を通じて受信されてもよい。命令は、マスストレージ７１８などの記憶デバイスからシステムメモリ７１４内へコピーされ、次いで、プロセッサ７０２によってアクセスされ、実行される。様々な実装形態において、１つまたは複数のモジュールは、並列処理環境内の複数のサーバなど、１つまたは複数のロケーションにある１つまたは複数のプロセッサによって実行され得る。
【００８７】
コンピュータ可読媒体の例は、揮発性メモリデバイスおよび不揮発性メモリデバイスなどの記録可能なタイプの媒体、ソリッドステートメモリ、フロッピーディスクおよび他の取り外し可能なディスク、ハードディスクドライブ、磁気媒体、光ディスク（例えばコンパクトディスク読取専用メモリ（ＣＤ  ＲＯＭＳ）、デジタル多用途ディスク（ＤＶＤ））、他の同様の非一時的で（もしくは一時的で）、有形の（もしくは無形の）記憶媒体、または、本明細書に記載されるプロセスおよび特徴のうちの任意の１つもしくは複数を行うためにコンピュータシステム７００により実行される一連の命令を記憶し、符号化し、もしくは担持するのに適切な任意のタイプの媒体を含むが、これらに限定されない。
【００８８】
説明の目的のために、多くの具体的な詳細が、本説明の完全な理解を提供するために述べられている。しかし、こうした具体的な詳細なしに本開示の実施形態が実施され得ることは、当業者には明らかであろう。事例によっては、モジュール、構造、プロセス、特徴、およびデバイスは、説明を不明瞭にすることを回避するために、ブロック図の形式で示される。他の事例において、データおよび論理フローを表現するために、機能ブロック図およびフロー図が示される。ブロック図およびフロー図の構成要素（例えばモジュール、ブロック、構造、デバイス、特徴等）は、本明細書において明示的に記載および図示されたような方式以外の方式で、様々に組み合わされ、分離され、除去され、順序を並べ替えられ、置換されてもよい。
【００８９】
本明細書における、「１つの実施形態」、「一実施形態」、「他の実施形態」、「一連の実施形態」、「いくつかの実施形態」、「様々な実施形態」等への言及は、実施形態に関連して記載される特定の特徴、設計、構造、または特性が本開示の少なくとも１つの実施形態に含まれることを意味する。本明細書内の様々な箇所における、例えば「１つの実施形態では」、または「一実施形態では」という句の出現は、必ずしもすべてが同じ実施形態に言及するものとは限らず、また、別個の実施形態または代替的な実施形態は、他の実施形態と相互排他的ではない。さらに、「実施形態」等への明示的な言及が存在しても存在しなくても、様々な特徴が記載され、様々な特徴は、いくつかの実施形態において様々に組み合わされ、含まれ得るが、他の実施形態では様々に省略されてもよい。同様に、いくつかの実施形態にとっては選好事項または要件であり得るが、他の実施形態にとっては選好事項または要件ではない、様々な特徴が記載される。
【００９０】
本明細書において使用される文言は、主に、読みやすさと教育的目的のために選択されており、発明の主題の範囲を示す、または範囲を定めるために選択されたものとは限らない。したがって、本発明の範囲は、この詳細な説明によってではなく、本明細書に基づく出願に関して生じる特許請求の範囲によって限定されることが意図される。そのため、本発明の実施形態の開示は、添付の特許請求の範囲に記述される本発明の範囲を例示することを意図しており、限定することは意図していない。
【図１】
2020515933.tif 000003
【図２】
2020515933.tif 000004
【図３】
2020515933.tif 000005
【図４】
2020515933.tif 000006
【図５】
2020515933.tif 000007
【図６】
2020515933.tif 000008
【図７】
2020515933.tif 000009
【国際調査報告】
2020515933.tif 000010
2020515933.tif 000011
2020515933.tif 000012