IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ オキュラス ブイアール,エルエルシーの特許一覧

特表2023-541229時間同期された分散型パッシブキャプチャ
<>
  • 特表-時間同期された分散型パッシブキャプチャ 図1
  • 特表-時間同期された分散型パッシブキャプチャ 図2
  • 特表-時間同期された分散型パッシブキャプチャ 図3
  • 特表-時間同期された分散型パッシブキャプチャ 図4
  • 特表-時間同期された分散型パッシブキャプチャ 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-09-29
(54)【発明の名称】時間同期された分散型パッシブキャプチャ
(51)【国際特許分類】
   G01S 13/56 20060101AFI20230922BHJP
   G06F 3/01 20060101ALI20230922BHJP
【FI】
G01S13/56
G06F3/01 510
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023511835
(86)(22)【出願日】2021-08-06
(85)【翻訳文提出日】2023-03-30
(86)【国際出願番号】 US2021045033
(87)【国際公開番号】W WO2022060484
(87)【国際公開日】2022-03-24
(31)【優先権主張番号】63/078,743
(32)【優先日】2020-09-15
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/109,724
(32)【優先日】2020-12-02
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】515046968
【氏名又は名称】メタ プラットフォームズ テクノロジーズ, リミテッド ライアビリティ カンパニー
【氏名又は名称原語表記】META PLATFORMS TECHNOLOGIES, LLC
(74)【代理人】
【識別番号】100105957
【弁理士】
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【弁理士】
【氏名又は名称】恩田 博宣
(72)【発明者】
【氏名】ソマスンダラム、キラン クマール
(72)【発明者】
【氏名】ラブグローブ、スティーブン ジョン
(72)【発明者】
【氏名】ヴォ、ミン フォック
【テーマコード(参考)】
5E555
5J070
【Fターム(参考)】
5E555AA64
5E555BA02
5E555BB02
5E555BC15
5E555CA41
5E555CB66
5E555DD06
5E555EA14
5E555FA00
5J070AB15
5J070AC01
5J070AE01
5J070AE09
5J070AF01
5J070BD02
(57)【要約】
方法は、環境内の第1のデバイスによって検出された第1の無線信号を受信することであって、第1の無線信号は、環境内で動くオブジェクトによって引き起こされる第1の歪みパターンを含む、第1の無線信号を受信すること、環境内の第2のデバイスによって検出された第2の無線信号を受信することであって、第2の無線信号は、環境内で動くオブジェクトによって引き起こされる第2の歪みパターンを含む、第2の無線信号を受信すること、第1の歪みパターンを第2の歪みパターンと比較することによって、第1の歪みパターンおよび第2の歪みパターンが、環境内で動くオブジェクトに関連付けられた同じ動きイベントに対応すると判定すること、第1の歪みパターンおよび第2の歪みパターンに関連付けられた情報に基づいて、第1のデバイスと第2のデバイスとの間のタイミングオフセットを判定すること、タイミングオフセットに基づいて、第1のデバイスによって生成されたデータと第2のデバイスによって生成されたデータとの間の時間的な対応関係を判定することを含む。
【特許請求の範囲】
【請求項1】
環境内の第1のデバイスによって検出された第1の無線信号を受信することであって、前記第1の無線信号は、前記環境内で動くオブジェクトによって引き起こされる第1の歪みパターンを含む、第1の無線信号を受信すること、
前記環境内の第2のデバイスによって検出された第2の無線信号を受信することであって、前記第2の無線信号は、前記環境内で動く前記オブジェクトによって引き起こされる第2の歪みパターンを含む、第2の無線信号を受信すること、
前記第1の歪みパターンを前記第2の歪みパターンと比較することによって、前記第1の歪みパターンおよび前記第2の歪みパターンが、前記環境内で動く前記オブジェクトに関連付けられた同じ動きイベントに対応すると判定すること、
前記第1の歪みパターンおよび前記第2の歪みパターンに関連付けられた情報に基づいて、前記第1のデバイスと前記第2のデバイスとの間のタイミングオフセットを判定すること、
前記タイミングオフセットに基づいて、前記第1のデバイスによって生成されたデータと前記第2のデバイスによって生成されたデータとの間の時間的な対応関係を判定すること
を含む、方法。
【請求項2】
前記第1の歪みパターンおよび前記第2の歪みパターンは、前記環境内で動く前記オブジェクトに関連付けられたドップラーシフトに対応する、請求項1に記載の方法。
【請求項3】
前記第1の歪みパターンおよび前記第2の歪みパターンが、前記環境内で動く前記オブジェクトに関連付けられた同じ動きイベントに対応すると判定することは、
前記第1の無線信号を前記第2の無線信号と比較して、前記第1の無線信号に関連付けられた前記第1の歪みパターンが、前記第2の無線信号に関連付けられた前記第2の歪みパターンに対応すると判定すること
を含む、請求項1に記載の方法。
【請求項4】
前記第1の歪みパターンおよび前記第2の歪みパターンが、前記環境内で動く前記オブジェクトに関連付けられた同じ動きイベントに対応すると判定することは、
前記第1のデバイスおよび前記第2のデバイスが両方とも前記動きイベントに関連付けられた前記環境内にあると判定すること
を含む、請求項1に記載の方法。
【請求項5】
前記第1の歪みパターンおよび前記第2の歪みパターンに関連付けられた情報に基づいて、前記第1のデバイスと前記第2のデバイスとの間のタイミングオフセットを判定することは、
前記第1の歪みパターンに関連付けられた第1のタイムスタンプを、前記第2の歪みパターンに関連付けられた第2のスタンプと比較すること
を含む、請求項1に記載の方法。
【請求項6】
前記第1の無線信号および前記第2の無線信号は、Wi-Fi信号である、請求項1に記載の方法。
【請求項7】
前記第1の無線信号および前記第2の無線信号は、Bluetooth信号である、請求項1に記載の方法。
【請求項8】
ソフトウェアを具現化する1つまたは複数のコンピュータ可読非一時的記憶媒体であって、前記ソフトウェアは、実行されると、
環境内の第1のデバイスによって検出された第1の無線信号であって、前記環境内で動くオブジェクトによって引き起こされる第1の歪みパターンを含む、第1の無線信号を受信し、
前記環境内の第2のデバイスによって検出された第2の無線信号であって、前記環境内で動く前記オブジェクトによって引き起こされる第2の歪みパターンを含む、第2の無線信号を受信し、
前記第1の歪みパターンを前記第2の歪みパターンと比較することによって、前記第1の歪みパターンおよび前記第2の歪みパターンが、前記環境内で動く前記オブジェクトに関連付けられた同じ動きイベントに対応すると判定し、
前記第1の歪みパターンおよび前記第2の歪みパターンに関連付けられた情報に基づいて、前記第1のデバイスと前記第2のデバイスとの間のタイミングオフセットを判定し、
前記タイミングオフセットに基づいて、前記第1のデバイスによって生成されたデータと前記第2のデバイスによって生成されたデータとの間の時間的な対応関係を判定する
ように動作可能である、1つまたは複数のコンピュータ可読非一時的記憶媒体。
【請求項9】
前記第1の歪みパターンおよび前記第2の歪みパターンは、前記環境内で動く前記オブジェクトに関連付けられたドップラーシフトに対応する、請求項8に記載の1つまたは複数のコンピュータ可読非一時的記憶媒体。
【請求項10】
前記第1の歪みパターンおよび前記第2の歪みパターンが、前記環境内で動く前記オブジェクトに関連付けられた同じ動きイベントに対応すると判定することは、
前記第1の無線信号を前記第2の無線信号と比較して、前記第1の無線信号に関連付けられた前記第1の歪みパターンが、前記第2の無線信号に関連付けられた前記第2の歪みパターンに対応すると判定すること
を含む、請求項8に記載の1つまたは複数のコンピュータ可読非一時的記憶媒体。
【請求項11】
前記第1の歪みパターンおよび前記第2の歪みパターンが、前記環境内で動く前記オブジェクトに関連付けられた同じ動きイベントに対応すると判定することは、
前記第1のデバイスおよび前記第2のデバイスが両方とも前記動きイベントに関連付けられた前記環境内にあると判定すること
を含む、請求項8に記載の1つまたは複数のコンピュータ可読非一時的記憶媒体。
【請求項12】
前記第1の歪みパターンおよび前記第2の歪みパターンに関連付けられた情報に基づいて、前記第1のデバイスと前記第2のデバイスとの間のタイミングオフセットを判定することは、
前記第1の歪みパターンに関連付けられた第1のタイムスタンプを、前記第2の歪みパターンに関連付けられた第2のスタンプと比較すること
を含む、請求項8に記載の1つまたは複数のコンピュータ可読非一時的記憶媒体。
【請求項13】
a)前記第1の無線信号および前記第2の無線信号は、Wi-Fi信号であるか、または
b)前記第1の無線信号および前記第2の無線信号は、Bluetooth信号である、
請求項8に記載の1つまたは複数のコンピュータ可読非一時的記憶媒体。
【請求項14】
1つまたは複数のプロセッサと、前記1つまたは複数のプロセッサと通信する1つまたは複数のコンピュータ可読非一時的記憶媒体とを備えるシステムであって、前記1つまたは複数のコンピュータ可読非一時的記憶媒体は、前記1つまたは複数のプロセッサによって実行されると、前記システムに、
環境内の第1のデバイスによって検出された第1の無線信号であって、前記環境内で動くオブジェクトによって引き起こされる第1の歪みパターンを含む第1の無線信号を受信させ、
前記環境内の第2のデバイスによって検出された第2の無線信号であって、前記環境内で動く前記オブジェクトによって引き起こされる第2の歪みパターンを含む第2の無線信号を受信させ、
前記第1の歪みパターンを前記第2の歪みパターンと比較することによって、前記第1の歪みパターンおよび前記第2の歪みパターンが、前記環境内で動く前記オブジェクトに関連付けられた同じ動きイベントに対応すると判定させ、
前記第1の歪みパターンおよび前記第2の歪みパターンに関連付けられた情報に基づいて、前記第1のデバイスと前記第2のデバイスとの間のタイミングオフセットを判定させ、
前記タイミングオフセットに基づいて、前記第1のデバイスによって生成されたデータと前記第2のデバイスによって生成されたデータとの間の時間的な対応関係を判定させる
命令を備えている、システム。
【請求項15】
a)前記第1の歪みパターンおよび前記第2の歪みパターンは、前記環境内で動く前記オブジェクトに関連付けられたドップラーシフトに対応し、または
b)前記第1の歪みパターンおよび前記第2の歪みパターンが、前記環境内で動く前記オブジェクトに関連付けられた同じ動きイベントに対応すると判定することは、前記第1の無線信号を前記第2の無線信号と比較して、前記第1の無線信号に関連付けられた前記第1の歪みパターンが、前記第2の無線信号に関連付けられた前記第2の歪みパターンに対応すると判定することを含み、または
c)前記第1の歪みパターンおよび前記第2の歪みパターンが、前記環境内で動く前記オブジェクトに関連付けられた同じ動きイベントに対応すると判定することは、前記第1のデバイスおよび前記第2のデバイスが両方とも前記動きイベントに関連付けられた前記環境内にあると判定することを含み、または
d)前記第1の歪みパターンおよび前記第2の歪みパターンに関連付けられた情報に基づいて、前記第1のデバイスと前記第2のデバイスとの間のタイミングオフセットを判定することは、前記第1の歪みパターンに関連付けられた第1のタイムスタンプを、前記第2の歪みパターンに関連付けられた第2のスタンプと比較することを含み、または
e)前記第1の無線信号および前記第2の無線信号は、Wi-Fi信号またはBluetooth信号である、
請求項14に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、概して、拡張または仮想現実環境に関する。
【背景技術】
【0002】
仮想現実は、ユーザが一見現実的または物理的な方法でインタラクションすることができる環境(例えば、3D環境)のコンピュータで生成されたシミュレーションである。単一のデバイスまたはデバイスのグループであり得る仮想現実システムは、例えば、仮想現実ヘッドセットまたはいくつかの他のディスプレイデバイス上でユーザに表示するために、このシミュレーションを生成し得る。シミュレーションは、現実または想像上の環境を模倣するための画像、音、触覚フィードバック、および/または他の感覚を含み得る。仮想現実がますます注目されるようになるにつれて、その有用な用途の範囲は急速に広がっている。仮想現実の最も一般的な用途は、ゲームまたは他のインタラクティブコンテンツを含むが、娯楽またはトレーニング目的の視覚メディアアイテム(例えば、写真、ビデオ)の視聴などの他の用途は、これに迫るものである。実際の会話および他のユーザインタラクションをシミュレートするために仮想現実を使用することの実現可能性も探求されている。
【0003】
拡張現実は、コンピュータにより生成された感覚入力(例えば、視覚、聴覚)が追加された現実世界または物理世界のビューを提供する。換言すると、コンピュータにより生成された仮想効果は、現実の世界のビューを拡張または補完し得る。例えば、仮想現実ヘッドセット上のカメラは、現実の世界のシーンを(画像またはビデオとして)キャプチャするとともに、キャプチャされたシーンとコンピュータにより生成された仮想オブジェクトとの合成を表示し得る。仮想オブジェクトは、例えば、2次元オブジェクトおよび/または3次元オブジェクトであってよく、かつ静止画であってもよいし、または動画であってもよい。
【発明の概要】
【0004】
本発明の一態様によれば、環境内の第1のデバイスによって検出された第1の無線信号を受信することであって、第1の無線信号は、環境内で動くオブジェクトによって引き起こされる第1の歪みパターンを含む、第1の無線信号を受信すること、環境内の第2のデバイスによって検出された第2の無線信号を受信することであって、第2の無線信号は、環境内で動くオブジェクトによって引き起こされる第2の歪みパターンを含む、第2の無線信号を受信すること、第1の歪みパターンを第2の歪みパターンと比較することによって、第1の歪みパターンおよび第2の歪みパターンが、環境内で動くオブジェクトに関連付けられた同じ動きイベントに対応すると判定すること、第1の歪みパターンおよび第2の歪みパターンに関連付けられた情報に基づいて、第1のデバイスと第2のデバイスとの間のタイミングオフセットを判定すること、タイミングオフセットに基づいて、第1のデバイスによって生成されたデータと第2のデバイスによって生成されたデータとの間の時間的な対応関係を判定することを含む方法が提供される。
【0005】
好ましくは、第1の歪みパターンおよび第2の歪みパターンは、環境内で動くオブジェクトに関連付けられたドップラーシフトに対応する。
好ましくは、第1の歪みパターンおよび第2の歪みパターンが、環境内で動くオブジェクトに関連付けられた同じ動きイベントに対応すると判定することは、第1の無線信号を第2の無線信号と比較して、第1の無線信号に関連付けられた第1の歪みパターンが、第2の無線信号に関連付けられた第2の歪みパターンに対応すると判定することを含む。
【0006】
好ましくは、第1の歪みパターンおよび第2の歪みパターンが、環境内で動くオブジェクトに関連付けられた同じ動きイベントに対応すると判定することは、第1のデバイスおよび第2のデバイスが両方とも動きイベントに関連付けられた環境内にあると判定することを含む。
【0007】
好ましくは、第1の歪みパターンおよび第2の歪みパターンに関連付けられた情報に基づいて、第1のデバイスと第2のデバイスとの間のタイミングオフセットを判定することは、第1の歪みパターンに関連付けられた第1のタイムスタンプを、第2の歪みパターンに関連付けられた第2のスタンプと比較することを含む。
【0008】
好ましくは、第1の無線信号および第2の無線信号は、Wi-Fi信号である。
好ましくは、第1無線信号および第2無線信号は、Bluetooth(登録商標)信号である。
【0009】
本発明のさらなる態様によれば、実行されると、環境内の第1のデバイスによって検出された第1の無線信号であって、環境内で動くオブジェクトによって引き起こされる第1の歪みパターンを含む、第1の無線信号を受信し、環境内の第2のデバイスによって検出された第2の無線信号であって、環境内で動くオブジェクトによって引き起こされる第2の歪みパターンを含む、第2の無線信号を受信し、第1の歪みパターンを第2の歪みパターンと比較することによって、第1の歪みパターンおよび第2の歪みパターンが、環境内で動くオブジェクトに関連付けられた同じ動きイベントに対応すると判定し、第1の歪みパターンおよび第2の歪みパターンに関連付けられた情報に基づいて、第1のデバイスと第2のデバイスとの間のタイミングオフセットを判定し、タイミングオフセットに基づいて、第1のデバイスによって生成されたデータと第2のデバイスによって生成されたデータとの間の時間的な対応関係を判定するように動作可能であるソフトウェアを具現化する1つまたは複数のコンピュータ可読非一時的記憶媒体が提供される。
【0010】
好ましくは、第1の歪みパターンおよび第2の歪みパターンは、環境内で動くオブジェクトに関連付けられたドップラーシフトに対応する。
好ましくは、第1の歪みパターンおよび第2の歪みパターンが、環境内で動くオブジェクトに関連付けられた同じ動きイベントに対応すると判定することは、第1の無線信号を第2の無線信号と比較して、第1の無線信号に関連付けられた第1の歪みパターンが、第2の無線信号に関連付けられた第2の歪みパターンに対応すると判定することを含む。
【0011】
好ましくは、第1の歪みパターンおよび第2の歪みパターンが、環境内で動くオブジェクトに関連付けられた同じ動きイベントに対応すると判定することは、第1のデバイスおよび第2のデバイスが両方とも動きイベントに関連付けられた環境内にあると判定することを含む。
【0012】
好ましくは、第1の歪みパターンおよび第2の歪みパターンに関連付けられた情報に基づいて、第1のデバイスと第2のデバイスとの間のタイミングオフセットを判定することは、第1の歪みパターンに関連付けられた第1のタイムスタンプを、第2の歪みパターンに関連付けられた第2のスタンプと比較することを含む。
【0013】
好ましくは、第1の無線信号および第2の無線信号は、Wi-Fi信号である。
好ましくは、第1無線信号および第2無線信号は、Bluetooth信号である。
本発明のさらなる態様によれば、1つまたは複数のプロセッサと、1つまたは複数のプロセッサと通信する1つまたは複数のコンピュータ可読非一時的記憶媒体とを備えるシステムであって、1つまたは複数のコンピュータ可読非一時的記憶媒体は、1つまたは複数のプロセッサによって実行されると、システムに、環境内の第1のデバイスによって検出された第1の無線信号であって、環境内で動くオブジェクトによって引き起こされる第1の歪みパターンを含む、第1の無線信号を受信させ、環境内の第2のデバイスによって検出された第2の無線信号であって、環境内で動くオブジェクトによって引き起こされる第2の歪みパターンを含む、第2の無線信号を受信させ、第1の歪みパターンを第2の歪みパターンと比較することによって、第1の歪みパターンおよび第2の歪みパターンが、環境内で動くオブジェクトに関連付けられた同じ動きイベントに対応すると判定させ、第1の歪みパターンおよび第2の歪みパターンに関連付けられた情報に基づいて、第1のデバイスと第2のデバイスとの間のタイミングオフセットを判定させ、タイミングオフセットに基づいて、第1のデバイスによって生成されたデータと第2のデバイスによって生成されたデータとの間の時間的な対応関係を判定させる命令を備えている、システムが提供される。
【0014】
好ましくは、第1の歪みパターンおよび第2の歪みパターンは、環境内で動くオブジェクトに関連付けられたドップラーシフトに対応する。
好ましくは、第1の歪みパターンおよび第2の歪みパターンが、環境内で動くオブジェクトに関連付けられた同じ動きイベントに対応すると判定することは、第1の無線信号を第2の無線信号と比較して、第1の無線信号に関連付けられた第1の歪みパターンが、第2の無線信号に関連付けられた第2の歪みパターンに対応すると判定することを含む。
【0015】
好ましくは、第1の歪みパターンおよび第2の歪みパターンが、環境内で動くオブジェクトに関連付けられた同じ動きイベントに対応すると判定することは、第1のデバイスおよび第2のデバイスが両方とも動きイベントに関連付けられた環境内にあると判定することを含む。
【0016】
好ましくは、第1の歪みパターンおよび第2の歪みパターンに関連付けられた情報に基づいて、第1のデバイスと第2のデバイスとの間のタイミングオフセットを判定することは、第1の歪みパターンに関連付けられた第1のタイムスタンプを、第2の歪みパターンに関連付けられた第2のスタンプと比較することを含む。
【0017】
好ましくは、第1の無線信号および第2の無線信号は、Wi-Fi信号またはBluetooth信号である。
【図面の簡単な説明】
【0018】
図1図1は、無線信号を有する環境において動く例示的なオブジェクトを示す図である。
図2図2は、2つの無線信号を示す図である。
図3図3は、デバイス間のタイミングオフセットを判定する例示的な方法を示す図である。
図4図4は、ソーシャルネットワーキングシステムに関連付けられた例示的なネットワーク環境を示す図である。
図5図5は、例示的なコンピュータシステムを示す図である。
【発明を実施するための形態】
【0019】
(特定の実施形態の概要)
本開示の発明は、仮想環境における動的なオブジェクトを、当該オブジェクトの複数のオブザーバから収集した情報に基づいて再構成することに関する。動的なオブジェクトとは、何らかの形で動いているオブジェクト(例えば、ジョギングしている人、道路上を移動しているバス、手を振っている人の手など)を指す。特定の実施形態では、仮想環境は、オブジェクトが仮想環境内で現実の世界環境におけるオブジェクトの位置に対応する位置で再構築されるように、現実の世界環境に倣ってモデル化され得る。オブジェクトの位置は、複数のオブザーバ(例えば、デバイス)から受信された情報に基づいて判定され得る。複数の観測デバイスから受信された情報を組み合わせるために、デバイスは同期される必要があり得る。異なるデバイスによって観測される動的な動くオブジェクトの位置は、オブジェクトが同時に観測される場合、互いに一致するはずであるが、実際には、観測される位置は、クロック不整合により生じるデバイス間のタイミング差に起因して、互いに一致しないことが多い。これは、任意の特定のデバイスのクロックが他のデバイスのクロックから「ドリフト」または徐々に非同期化するクロックドリフトと呼ばれる現象によるものであり得る。本明細書で開示される実施形態は、デバイス間のタイミングオフセットを判定するとともに、タイミングオフセットに基づいてデバイスを同期させる新規の方法を提供することによって、これらの問題に対する解決策を提供する。
【0020】
本明細書で開示する実施形態は、限定ではないが、(1)デバイスによって受信される無線信号中の歪みパターン、(2)複数のデバイスによって行われる観測(例えば、キーポイント特徴の座標点、カメラ姿勢)、または(3)第1のデバイスによって行われる観測(例えば、キーポイント特徴の座標点)および第2のデバイスの視点からのその観測の再投影(reprojection)(例えば、第2のデバイスの位置およびカメラ姿勢に基づいて再投影される)に基づくいくつかの技法に基づいて、デバイス間のクロック不整合を判定することについて説明する。
【0021】
本発明の実施形態は、人工現実システムを含み、または人工現実システムと組み合わせて実装され得る。人工現実は、ユーザへの提示の前に何らかの方法で調整された現実の形態であり、例えば、仮想現実(VR)、拡張現実(AR)、複合現実(MR)、ハイブリッド現実、またはそれらのある組み合わせ、および/もしくは派生物を含み得る。人工現実コンテンツは、完全に生成されたコンテンツ、またはキャプチャされたコンテンツ(例えば、現実の世界の写真)と組み合わされた生成されたコンテンツを含み得る。人工現実コンテンツは、ビデオ、オーディオ、触覚フィードバック、またはそれらのある組み合わせを含むことができ、それらのいずれも、単一チャネルまたは複数チャネルで提示することができる(視聴者に対して3次元効果を生成するステレオビデオなど)。加えて、いくつかの実施形態では、人工現実は、例えば、人工現実におけるコンテンツを作成するために使用される、および/または人工現実において使用される(例えば、人工現実におけるアクティビティを実行する)、アプリケーション、製品、アクセサリ、サービス、またはそれらのある組み合わせに関連付けられてもよい。人工現実コンテンツを提供する人工現実システムは、ホストコンピュータシステムに接続されたヘッドマウントディスプレイ(HMD)、スタンドアロンHMD、モバイルデバイスもしくはコンピューティングシステム、または人工現実コンテンツを1人もしくは複数の視聴者に提供することが可能な任意の他のハードウェアプラットフォームを含む、様々なプラットフォーム上で実装され得る。
【0022】
なお、本明細書で開示される実施形態は例示に過ぎず、本開示の範囲はこれらに限定されるものではない。特定の実施形態は、上記に開示された実施形態の構成要素、要素、特徴、機能、動作、またはステップの全て、いくつかを含んでもよく、またはいずれも含まなくてもよい。本発明による実施形態は、特に、方法、記憶媒体、システム、およびコンピュータプログラム製品を対象とする添付の特許請求の範囲において開示され、ある請求項カテゴリ、例えば方法において言及される任意の特徴は、別の請求項カテゴリ、例えばシステムにおいても同様に請求され得る。添付の特許請求の範囲における従属関係または引用は、形式的な理由のみのために選択されている。しかしながら、任意の先行する請求項(特に複数のマルチ従属)を意図的に参照することから生じる任意の主題も同様に請求され得るので、添付の特許請求の範囲で選択された従属関係にかかわらず、請求項の任意の組み合わせおよびその特徴が開示されるとともに請求され得る。請求され得る主題は、添付の特許請求の範囲に記載される特徴の組み合わせだけでなく、特許請求の範囲における特徴の任意の他の組み合わせも含み、特許請求の範囲において言及される各特徴は、特許請求の範囲における任意の他の特徴または他の特徴の組み合わせと組み合わせることができる。さらに、本明細書で説明または描写される実施形態および特徴のいずれも、別個の請求項において、および/または本明細書で説明または描写される任意の実施形態もしくは特徴との、もしくは添付の特許請求の範囲の特徴のいずれかとの任意の組み合わせで請求され得る。
【0023】
(例示的な実施形態の説明)
特定の実施形態では、本開示の方法は、異なるデバイスの観測(observation)を比較することによって、デバイス間のクロック不整合を判定することを含み得る。動的なオブジェクトが複数のデバイスによって観測されるとともに、デバイスの位置および向きが既知であり、かつ正確であると仮定される場合、異なるデバイスにより観測されたオブジェクトの位置は、任意の所与の時点において、すべてのデバイスについて同じであるはずである。しかしながら、デバイス間にクロック不整合がある場合、いくつかのデバイスは、他のデバイスとはわずかに異なる時点でオブジェクトがその位置において観測されたことを登録し得る。そのようなタイミングオフセットは、特定の時点における1つのデバイスの観測を別のデバイスの観測と比較し、2つのデバイスの観測間の一致を見つけ、一致した観測のタイミング差を判定することによって判定することができる。このタイミング差またはタイミングオフセットは、デバイスを同期させるために使用され得る。
【0024】
特定の実施形態では、本開示の方法は、追跡アルゴリズムに基づいて、デバイスおよびデバイスの各々によって観測されたオブジェクトの位置および向きを判定することを含み得る。追跡アルゴリズムの一例は、SLAM(Simultaneous Localization and Mapping)である。高レベルでは、SLAMは、未知の環境の3Dマップを(例えば、リアルタイムで)生成するために使用され得る技術である。SLAM技術は、例えば、カメラ、LiDARセンサ、レーダー、ジャイロスコープ、および任意の他の適切なタイプのセンサを含む、様々なセンサからのセンサデータを採用し得る。特定の実施形態では、従来の携帯電話上で実装されるSLAMは、電話の(1つまたは複数の)カメラ、ジャイロスコープ、および/または加速度計を使用し得る。概念的には、ビデオフレームが与えられると、SLAMは、カメラとシーン中の関心のある特徴(例えば、しばしばエッジ、コーナーなど)との相対的な位置および向きを推定し、動きおよび結果として生じる特徴の観測に基づいて推定を反復的に更新することができる。動きによるそれらの特徴の位置ずれに基づいて、SLAMは、三角測量技術を使用して、キャプチャされたシーン中の認識可能なオブジェクトの3Dモデルを生成することができる。例えば、カメラが動くと、関心のある特徴に関連付けられたランドマークポイントが動き得る。そのランドマーク(および他のランドマーク)の動きは、オブジェクトの3D位置および向きを推定するために使用され得る。追跡アルゴリズムの別の例は、全地球測位システム(GPS)に基づく位置追跡である。
【0025】
特定の実施形態では、デバイスによって行われる観測は、オブジェクトから抽出されたキーポイント特徴を含み得る。キーポイント特徴は、スケール、回転、アフィン歪み、視点、ノイズ、または照明の変化に関して比較的不変なままであるオブジェクトの特有の特徴を指す。例えば、オブジェクトが車両である場合、キーポイント特徴は、外縁、車輪、またはサイドミラーに沿った点を含み得る。オブジェクトが人である場合、キーポイント特徴は、人の頭部、肩、手、膝、または足を含み得る。観測がデバイスによって行われる場合、デバイスは、オブジェクトのキーポイント特徴を識別するとともに、追跡アルゴリズムに基づいて3D環境内のキーポイント特徴の座標点を判定することができる。デバイスによって収集された各キーポイント特徴は、キーポイント特徴の座標点およびキャプチャ時のデバイスのカメラ姿勢とともにデータベースに格納され得る。データベースは、各観測に関連付けられたタイムスタンプ(例えば、キーポイント特徴がデバイスによってキャプチャされた時点)に基づいてインデックス付けされ得る。
【0026】
特定の実施形態では、本開示の方法は、デバイスの観測(例えば、キーポイント特徴、キーポイント特徴の座標点、カメラ姿勢)を比較すること、および比較に基づいてタイミングオフセットを判定することを含む、画像ベースの姿勢検出手法を対象とする。例えば、デバイスAおよびデバイスBの両方が同じ動的なオブジェクトを観測する場合、特定の時点におけるデバイスAの観測は、同じ時点におけるデバイスBの観測と比較され得る。これは、デバイスAのカメラ姿勢とともにデバイスAによって判定されたオブジェクトのキーポイント特徴の座標点を、デバイスBのそれらと比較することを含み得る。観測の間に不一致がある場合、それは、デバイス間のクロック不整合に起因し得る。クロック不整合から生じるタイミングオフセットを判定するために、デバイスAの観測は、データベースに格納されたデバイスBの過去の観測(historical observation)と比較され得る。デバイスAの観測とデバイスBの過去の観測のうちの1つとの間に一致がある場合、デバイスAとデバイスBとの間のタイミングオフセットは、一致した観測に関連付けられたタイムスタンプを比較することによって判定され得る。観測マッチングプロセスは、キーポイント特徴の座標点と観測の各々に関連付けられたカメラ姿勢とを比較すること、および観測がどれだけ密接に一致しているかを示す誤差メトリック値を計算することを含み得る。
【0027】
特定の実施形態では、本開示の方法は、デバイスの観測(例えば、キーポイント特徴の座標点)を別のデバイスの視点からのその観測の再投影と比較すること、および比較に基づいてデバイス間のタイミングオフセットを判定することを含む、画像ベースの姿勢検出手法を対象とする。例えば、デバイスAおよびデバイスBの両方が同じ動的なオブジェクトを観測する場合、特定の時点におけるデバイスAの観測は、同じ時点におけるデバイスBの位置およびカメラ姿勢に基づいて再投影され得る。次いで、デバイスAの観測は、デバイスBの視点からの再投影と比較され得る。これは、デバイスAのカメラ姿勢とともにデバイスAによって判定されたオブジェクトのキーポイント特徴の座標点を、デバイスBの視点(例えば、デバイスBの位置およびカメラ姿勢)からの再投影のそれらと比較することを含み得る。観測の間に不一致がある場合、それは、デバイス間のクロック不整合に起因し得る。クロック不整合から生じるタイミングオフセット、または時間的な対応関係(temporal correspondence)を判定するために、デバイスAの観測は、デバイスBの過去の観測に基づいてさらに再投影され得る。次いで、本方法は、デバイスAの観測を再投影の各々と比較するとともに、最小誤差メトリック値を生成する一致を見つけることを含み得る。次いで、デバイス間のタイミングオフセットは、デバイスAの観測と、最小誤差メトリック値を生成した再投影とに関連付けられたタイミング情報に基づいて判定され得る。
【0028】
特定の実施形態では、本開示の方法は、環境内の無線信号を活用することによってデバイス間のクロック不整合を判定することを含むレーダー信号検出手法を対象とする。無線信号またはパッシブレーダー(例えば、Wi-FiまたはBluetooth(登録商標)信号)が環境に存在する場合、環境内のオブジェクトまたは人の動きは、無線信号のドップラーシフトまたは歪みを引き起こし得る。ドップラーシフトとは、波源とオブザーバとの間の相対的な動きに関連した波の周波数の変化を指す。環境内で動くオブジェクトが無線信号に歪みを生じさせる場合、無線信号を受信する環境内のデバイスの各々は、対応する歪みパターンを実質的に同時に見るはずである。しかしながら、デバイス間に何らかのクロック不整合がある場合、デバイスのうちのいくつかは、わずかに異なる時間に歪みパターンを受信するものとして登録され得る。このタイミング差またはタイミングオフセットは、第1のデバイスによって生成されたデータと、第2のデバイスによって生成されたデータとの間の時間的な対応関係を判定するために使用され得る。例えば、図1を参照すると、デバイス110が、環境内で動くオブジェクト150によって引き起こされる歪みパターンを含む無線信号を受信する場合、デバイス120は、対応する歪みパターンを含む無線信号を実質的に同時に受信するはずである。しかしながら、デバイス110とデバイス120との間に何らかのクロック不整合が存在する場合、図2に示されるものなど、デバイスによって受信される歪みパターン間にわずかなタイミングオフセットが存在し得る。歪みパターン間のそのようなタイミングオフセットは、歪みパターンに関連付けられたタイミング情報を比較することによって判定され得る。
【0029】
特定の実施形態では、タイミングオフセットを判定する前に、デバイス110によって受信された無線信号が、デバイス120のものと比較されて、同じまたは対応する歪みパターンがデバイスによって受信されたかどうかを判定することができる。そのような実施形態では、デバイス110および120によって受信される無線信号は、そのそれぞれの無線信号を受信するときのデバイスの各々の位置が互いに異なり得ることを考慮して、最初に正規化される必要があり得る。1つの解決策は、レーダー信号検出手法を、上述の画像ベースの姿勢検出手法と組み合わせることである。例えば、デバイスの各々のポジションまたは位置は、画像ベースの姿勢検出手法に部分的に基づいて判定され、次いで、デバイスの各々によって検出された無線信号が、歪みパターンの振幅が互いに実質的に一致するように正規化され得る。他の実施形態では、デバイス110およびデバイス120が同じ環境にあることが分かっており(例えば、GPSまたは画像ベースの姿勢検出アプローチに基づいて)、かつ両方のデバイスが、無線信号の著しい、または異常なスパイクを観察する場合、異常なスパイクは、同じイベント(例えば、オブジェクトの動き)によって引き起こされたと仮定することができる。そのような実施形態では、デバイス間のタイミングオフセットは、無線信号中の異常なスパイクに関連付けられたタイミング情報を比較することによって判定され得る。特定の実施形態では、無線信号は見通し線(line-of-sight)を必要とせず、壁を通り抜けることができるので、デバイス間のタイミングオフセットは、デバイスが壁または障害物によって分離されている場合であっても判定され得る。
【0030】
上記で説明したように、本開示の方法は、限定ではないが、(1)デバイスによって受信される歪みパターン、(2)複数のデバイスによって行われる観測(例えば、キーポイント特徴の座標点、カメラ姿勢)、または(3)第1のデバイスによって行われる観測(例えば、キーポイント特徴の座標点)および第2のデバイスの視点からのその観測の再投影(例えば、第2のデバイスの位置およびカメラ姿勢に基づいて再投影される)に基づく様々な技法に基づいて、デバイス間のクロック不整合を判定することを含み得る。特定の実施形態では、本開示の方法は、本明細書で説明する技法の組み合わせに基づいて、デバイス間のクロック不整合を判定することを含み得る。例えば、各技法の結果を比較するとともに、正確である可能性が最も高い技法を選択することによって、2つ以上の技法を同時にまたは順次利用することができる。これは、機械学習アルゴリズムなどのコンピュータにより実行されるアルゴリズムに基づいて精度計算を実行することを含み得る。他の実施形態では、技法の各々に重みを割り当てるとともに、割り当てられた重みに基づいて技法の結果を組み合わせることによって、2つ以上の方法を同時にまたは順次利用することができる。例えば、2つの技法の組み合わせが使用される場合、各技法に0.5の重み値を割り当てることができる。次いで、各技法によって判定されたタイミングオフセットを半分ずつ加味して、互いに組み合わせることができる。特定の実施形態では、技法の各々に割り当てられる重み値は、デバイスを備える環境に基づいて決定され得る。例えば、環境が様々な壁および障害物を有する屋内である場合、無線信号の特性(例えば、壁を横断することができる)に起因してより正確な結果が得られる可能性があるため、無線シグネチャを伴う技法に、より大きな重みが割り当てられ得る。他の実施形態では、技法の各々に割り当てられる重み値は、観測されたオブジェクトの特性に基づいて決定され得る。例えば、オブジェクトの形態または形状が不規則であり、オブジェクトの異なる視点に基づいてオブジェクトが異なって見える場合、オブジェクトの異なる観点(perspective)に基づく計算がより正確な結果を提供し得るので、再投影を伴う技法により大きな重みが割り当てられ得る。
【0031】
特定の実施形態では、現実の世界環境を表す仮想環境マップは、現実の世界環境内の物理オブジェクトの空間的および時間的記述子を含むように生成され得る。仮想環境マップに含まれる物理オブジェクトの空間的および時間的記述子は、様々な時点における物理オブジェクトの位置を示す。仮想環境マップは、様々なユーザデバイスからの画像データの集約に基づいてクラウドベースのサーバによって生成および/または維持されてよい。各個々のデバイスがキャプチャすることができるものの制限を考慮すると、異なるデバイスからの画像データの集約は、物理的オブジェクトの位置が正確に判定されることを可能にする(例えば、1つのデバイスによって観測されるオブジェクトの位置が、他のデバイスによって観測される位置と一致するかどうかを検証することによって)。この集約技術は、デバイスによって観測される静的なオブジェクトに対して良好に機能するが、動的なオブジェクトに対しては、オブジェクトの位置を正確に判定する前に、本明細書で説明されるクロック不整合問題を最初に考慮する必要があり得る。
【0032】
特定の実施形態では、サーバが、特定のデバイスから受信された画像データに基づいて、特定のデバイスによって観測されたオブジェクトの位置が特定の時点において別のデバイスによって観測されたオブジェクトの位置と一致しないと判定した場合、サーバは、本明細書で説明する様々な技法(例えば、画像ベースの姿勢検出またはレーダー信号検出手法)に基づいてデバイス間のクロック不整合をさらに判定することができる。次いで、サーバは、仮想環境マップ上に観測を格納する前に、受信された画像データに関連付けられたタイミング情報を調整し得る。サーバは、判定されたタイミングオフセットをデバイスに提供することもでき、したがって、デバイスは、それらをサーバに提供する前に、タイミングオフセットに基づいてそれらの将来の観測を調整することができる。いくつかの実施形態では、サーバは、判定されたタイミングオフセットに基づいてそれらのクロックを調整するようにデバイスに命令し得る。特定の実施形態では、サーバは、互いに十分に近接している(例えば、オブジェクトを観測するときに、互いに近くに位置している)と判定された2つのデバイスの観測を比較して、あるデバイスによって観測された物理オブジェクトが、別のデバイスによって観測された同じオブジェクトであることを確認することができる。例えば、デバイスの位置は、GPSデータに基づいて判定され得る。代替的に、デバイスの位置は、仮想環境マップに対するそれらのそれぞれの位置特定(localization)に基づいて判定され得る。
【0033】
特定の実施形態では、サーバは、仮想環境マップにおいて以前にインデックス付けされた物理オブジェクトの空間的および時間的記述子に関連付けられた中央クロックを維持することができる。そのような実施形態では、サーバが特定のデバイスから画像データを受信する場合、サーバは、特定のデバイスの観測を、仮想環境マップにおいてインデックス付けされた空間的および時間的記述子と比較することができる。特定のデバイスによって観測されたオブジェクトの位置が、仮想環境マップにおいてインデックス付けされたオブジェクトの位置と一致しないとサーバが判定した場合、サーバは、デバイスと中央クロックとの間にクロック不整合があると判定し得る。そのような場合、デバイスと中央クロックとの間のクロック不整合は、本明細書で説明する様々な技法(例えば、画像ベースの姿勢検出)に基づいて判定され得る。次いで、サーバは、受信された画像データに関連付けられたタイミング情報を調整することができ、したがって、デバイスによって行われた観測は、仮想環境マップにおいてインデックス付けされた空間的および時間的記述子に対応する。サーバは、判定されたタイミングオフセットをデバイスに提供することもでき、したがって、デバイスは、それらをサーバに提供する前に、タイミングオフセットに基づいてそれらの将来の観測を調整することができる。いくつかの実施形態では、サーバは、デバイスに、そのクロックを調整して中央クロックに一致させるように命令し得る。特定の実施形態では、仮想環境マップ内でインデックス付けされた物理オブジェクトの空間的および時間的記述子は、デバイスによって行われた観測の統計的平均または中央値に基づき得る。例えば、オブジェクトの位置情報が10個の異なるデバイスによって観測される場合、サーバは、10個すべてのデバイスの位置座標点を平均化し、平均座標点を仮想環境マップにインデックス付けし得る。
【0034】
図3は、デバイスによって受信された無線信号において検出されたドップラーシフトまたは歪み(例えば、無線シグネチャ)に基づいて、デバイス間のクロック不整合を判定するための例示的な方法300を示す。方法は、ステップ310において、環境内の第1のデバイスによって検出された第1の無線信号を受信することによって開始することができ、第1の無線信号は、環境内で動くオブジェクトによって引き起こされる第1の歪みパターンを含む。ステップ320において、本方法は、環境内の第2のデバイスによって検出された第2の無線信号を受信することによって継続することができ、第2の無線信号は、環境内で動くオブジェクトによって引き起こされる第2の歪みパターンを含む。ステップ330において、本方法は、第1の歪みパターンを第2の歪みパターンと比較することによって、第1の歪みパターンおよび第2の歪みパターンが、環境内で動くオブジェクトに関連付けられた同じ動きイベントに対応すると判定することによって継続することができる。ステップ340において、本方法は、第1の歪みパターンおよび第2の歪みパターンに関連付けられた情報に基づいて、第1のデバイスと第2のデバイスとの間のタイミングオフセットを判定することによって継続することができる。ステップ350において、本方法は、タイミングオフセットに基づいて、第1のデバイスによって生成されたデータと第2のデバイスによって生成されたデータとの間の時間的な対応関係を判定することによって継続することができる。特定の実施形態は、適切な場合、図3の方法の1つまたは複数のステップを繰り返すことができる。本開示は、図3の方法の特定のステップを特定の順序で行われるものとして説明および図示しているが、本開示は、図3の方法の任意の適切なステップが任意の適切な順序で行われることを企図している。さらに、本開示は、図3の方法の特定のステップを含む、デバイスによって受信された無線信号において検出されたドップラーシフトまたは歪みに基づいてデバイス間のクロック不整合を判定するための例示的な方法を説明および図示しているが、本開示は、適切な場合、図3の方法のステップのすべて、いくつかを含むか、またはいずれも含まないことがある任意の適切なステップを含む、デバイスによって受信された無線信号において検出されたドップラーシフトまたは歪みに基づいてデバイス間のクロック不整合を判定するための任意の適切な方法を企図する。さらに、本開示は、図3の方法の特定のステップを実行する特定の構成要素、デバイス、またはシステムを説明および図示しているが、本開示は、図3の方法の任意の適切なステップを実行する任意の適切な構成要素、デバイス、またはシステムの任意の適切な組み合わせを企図する。
【0035】
図4は、ソーシャルネットワーキングシステムに関連付けられた例示的なネットワーク環境400を示す。ネットワーク環境400は、ネットワーク44によって互いに接続されたクライアントシステム430、ソーシャルネットワーキングシステム460、およびサードパーティシステム470を含む。図4は、クライアントシステム430、ソーシャルネットワーキングシステム460、サードパーティシステム470、およびネットワーク410の特定の構成を示しているが、本開示は、クライアントシステム430、ソーシャルネットワーキングシステム460、サードパーティシステム470、およびネットワーク44の任意の適切な構成を企図する。限定ではなく、例として、クライアントシステム430、ソーシャルネットワーキングシステム460、およびサードパーティシステム470のうちの2つ以上は、ネットワーク44を迂回して、互いに直接接続され得る。別の例として、クライアントシステム430、ソーシャルネットワーキングシステム460、およびサードパーティシステム470のうちの2つ以上は、全体的または部分的に、互いに物理的または論理的に同位置にある場合がある。さらに、図4は、特定の数のクライアントシステム430、ソーシャルネットワーキングシステム460、サードパーティシステム470、およびネットワーク44を示しているが、本開示は、任意の適切な数のクライアントシステム430、ソーシャルネットワーキングシステム460、サードパーティシステム470、およびネットワーク44を企図する。限定ではなく、例として、ネットワーク環境400は、複数のクライアントシステム430、複数のソーシャルネットワーキングシステム460、複数のサードパーティシステム470、および複数のネットワーク44を含むことができる。
【0036】
本開示は、任意の適切なネットワーク44を企図する。限定ではなく例として、ネットワーク44の1つまたは複数の部分は、アドホックネットワーク、イントラネット、エクストラネット、仮想プライベートネットワーク(VPN)、ローカルエリアネットワーク(LAN)、無線LAN(WLAN)、ワイドエリアネットワーク(WAN)、無線WAN(WWAN)、メトロポリタンエリアネットワーク(MAN)、インターネットの一部、公衆交換電話網(PSTN)の一部、セルラー電話ネットワーク、またはこれらのうちの2つ以上の組み合わせを含み得る。ネットワーク44は、1つまたは複数のネットワーク44を含んでいてよい。
【0037】
リンク450は、クライアントシステム430、ソーシャルネットワーキングシステム460、およびサードパーティシステム470を、通信ネットワーク44に、または互いに接続することができる。本開示は、任意の適切なリンク450を企図する。特定の実施形態では、1つまたは複数のリンク450は、1つまたは複数の有線リンク(例えば、デジタル加入者回線(DSL)またはDOCSIS(Data Over Cable Service Interface Specification)など)、無線リンク(例えば、Wi-Fi(登録商標)またはWiMAX(Worldwide Interoperability for Microwave Access)など)、または光リンク(例えば、同期光ネットワーク(SONET)または同期デジタル階層(SDH)など)を含む。特定の実施形態では、1つまたは複数のリンク450は、各々、アドホックネットワーク、イントラネット、エクストラネット、VPN、LAN、WLAN、WAN、WWAN、MAN、インターネットの一部、PSTNの一部、セルラー技術ベースのネットワーク、衛星通信技術ベースのネットワーク、別のリンク450、または2つ以上のそのようなリンク450の組み合わせを含む。リンク450は、ネットワーク環境400全体にわたって必ずしも同じである必要はない。1つまたは複数の第1のリンク450は、1つまたは複数の第2のリンク450と1つまたは複数の点で異なっていてよい。
【0038】
特定の実施形態では、クライアントシステム430は、ハードウェア、ソフトウェア、もしくは埋め込みロジック構成要素、または2つ以上のそのような構成要素の組み合わせを含むとともに、クライアントシステム430によって実装またはサポートされる適切な機能を実行することができる電子デバイスであってよい。限定ではなく、例として、クライアントシステム430は、デスクトップコンピュータ、ノートブックもしくはラップトップコンピュータ、ネットブック、タブレットコンピュータ、電子書籍リーダ、GPSデバイス、カメラ、携帯情報端末(PDA)、ハンドヘルド電子デバイス、セルラー電話、スマートフォン、拡張/仮想現実デバイス、他の適切な電子デバイス、またはそれらの任意の適切な組み合わせなどのコンピュータシステムを含み得る。本開示は、任意の適切なクライアントシステム430を企図する。クライアントシステム430は、クライアントシステム430のネットワークユーザがネットワーク44にアクセスすることを可能にし得る。クライアントシステム430は、そのユーザが他のクライアントシステム430の他のユーザと通信することを可能にし得る。
【0039】
特定の実施形態では、クライアントシステム430は、ウェブブラウザを含むことができるとともに、1つまたは複数のアドオン、プラグイン、または他の拡張を有することができる。クライアントシステム430のユーザは、ウェブブラウザを特定のサーバ(サーバ462、またはサードパーティシステム470に関連付けられたサーバなど)に向けるユニフォームリソースロケータ(URL)または他のアドレスを入力することができ、ウェブブラウザは、ハイパーテキスト転送プロトコル(HTTP)要求を生成し、HTTP要求をサーバに通信することができる。サーバは、HTTP要求を受け入れ、HTTP要求に応答してクライアントシステム430に1つまたは複数のハイパーテキストマークアップ言語(HTML)ファイルを通信することができる。クライアントシステム430は、ユーザに提示するためにサーバからのHTMLファイルに基づいてウェブページをレンダリングすることができる。本開示は、任意の適切なウェブページファイルを企図する。限定ではなく、例として、ウェブページは、特定のニーズに従って、HTMLファイル、拡張可能ハイパーテキストマークアップ言語(XHTML)ファイル、または拡張可能マークアップ言語(XML)ファイルからレンダリングすることができる。そのようなページは、スクリプト、マークアップ言語とスクリプトの組み合わせなどを実行することもできる。本明細書では、ウェブページへの言及は、1つまたは複数の対応するウェブページファイル(ブラウザがウェブページをレンダリングするために使用することができる)を包含し、適切な場合、逆も同様である。
【0040】
特定の実施形態では、ソーシャルネットワーキングシステム460は、オンラインソーシャルネットワークをホストすることができるネットワークアドレス指定可能コンピューティングシステムであってよい。ソーシャルネットワーキングシステム460は、例えば、ユーザプロファイルデータ、コンセプトプロファイルデータ、ソーシャルグラフ情報、またはオンラインソーシャルネットワークに関係する他の適切なデータなどのソーシャルネットワーキングデータを生成し、格納し、受信し、および送信することができる。ソーシャルネットワーキングシステム460は、ネットワーク環境400の他の構成要素によって、直接的に、またはネットワーク410を介してアクセスされ得る。限定ではなく、例として、クライアントシステム430は、ウェブブラウザ、またはソーシャルネットワーキングシステム460に関連付けられたネイティブアプリケーション(例えば、モバイルソーシャルネットワーキングアプリケーション、メッセージングアプリケーション、別の適切なアプリケーション、またはそれらの任意の組み合わせ)を使用して、直接またはネットワーク410を介してソーシャルネットワーキングシステム460にアクセスすることができる。特定の実施形態では、ソーシャルネットワーキングシステム460は、1つまたは複数のサーバ462を含むことができる。各サーバ462は、単体のサーバであってもよいし、複数のコンピュータまたは複数のデータセンタにまたがる分散サーバであってもよい。サーバ462は、例えば、限定ではないが、ウェブサーバ、ニュースサーバ、メールサーバ、メッセージサーバ、広告サーバ、ファイルサーバ、アプリケーションサーバ、交換サーバ、データベースサーバ、プロキシサーバ、本明細書で説明する機能またはプロセスを実行するのに適した別のサーバ、またはそれらの任意の組み合わせなど、様々なタイプのものであり得る。特定の実施形態では、各サーバ462は、サーバ462によって実装またはサポートされる適切な機能を実行するためのハードウェア、ソフトウェア、埋め込みロジック構成要素、または2つ以上のそのような構成要素の組み合わせを含むことができる。特定の実施形態においては、ソーシャルネットワーキングシステム460は、1つまたは複数のデータストア464を含むことができる。データストア464は、様々なタイプの情報を格納するために使用され得る。特定の実施形態では、データストア464に格納された情報は、特定のデータ構造に従って編成され得る。特定の実施形態では、各データストア464は、リレーショナルデータベース、カラム型データベース、相関データベース、または他の適切なデータベースであり得る。本開示は、特定のタイプのデータベースを説明または示しているが、本開示は、任意の適切なタイプのデータベースを企図する。特定の実施形態は、クライアントシステム430、ソーシャルネットワーキングシステム460、またはサードパーティシステム470が、データストア464に格納された情報を管理し、取り出し、修正し、追加し、または削除することを可能にするインタフェースを提供することができる。
【0041】
特定の実施形態においては、ソーシャルネットワーキングシステム460は、1つまたは複数のソーシャルグラフを1つまたは複数のデータストア464に格納することができる。特定の実施形態では、ソーシャルグラフは、(各々が特定のユーザに対応する)複数のユーザノードまたは(各々が特定のコンセプトに対応する)複数のコンセプトノードを含み得る複数のノードと、ノードをつなぐ複数のエッジとを含み得る。ソーシャルネットワーキングシステム460は、オンラインソーシャルネットワークのユーザに、他のユーザと通信およびインタラクションする能力を提供することができる。特定の実施形態では、ユーザは、ソーシャルネットワーキングシステム460を介してオンラインソーシャルネットワークに参加し、次いで、ユーザがつながりたいと望むソーシャルネットワーキングシステム460の複数の他のユーザにつながり(例えば、関係)を追加することができる。本明細書では、「友人」という用語は、ユーザがソーシャルネットワーキングシステム460を介してつながり、関連付け、または関係を形成したソーシャルネットワーキングシステム460の任意の他のユーザを指すことができる。
【0042】
特定の実施形態では、ソーシャルネットワーキングシステム460は、ソーシャルネットワーキングシステム460によってサポートされる様々なタイプのアイテムまたはオブジェクトに対してアクションをとる能力をユーザに提供し得る。限定ではなく、例として、アイテムおよびオブジェクトは、ソーシャルネットワーキングシステム460のユーザが属し得るグループもしくはソーシャルネットワーク、ユーザが関心を持ち得るイベントもしくはカレンダーエントリ、ユーザが使用し得るコンピュータベースのアプリケーション、ユーザがサービスを介してアイテムを購入もしくは販売することを可能にするトランザクション、ユーザが実行し得る広告とのインタラクション、または他の適切なアイテムもしくはオブジェクトを含み得る。ユーザは、ソーシャルネットワーキングシステム460において、またはソーシャルネットワーキングシステム460とは別個であり、ネットワーク410を介してソーシャルネットワーキングシステム460に結合されたサードパーティシステム470の外部システムによって表されることが可能な任意のものとインタラクションすることができる。
【0043】
特定の実施形態では、ソーシャルネットワーキングシステム460は、様々なエンティティをリンクすることが可能であり得る。限定ではなく、例として、ソーシャルネットワーキングシステム460は、ユーザが互いにインタラクションすること、ならびにサードパーティシステム470もしくは他のエンティティからコンテンツを受信することを可能にするか、またはユーザがアプリケーションプログラミングインタフェース(API)もしくは他の通信チャネルを通じてこれらのエンティティとインタラクションすることを可能にし得る。
【0044】
特定の実施形態では、サードパーティシステム470は、1つまたは複数のタイプのサーバ、1つまたは複数のデータストア、限定されるものではないが、APIを含む1つまたは複数のインタフェース、1つまたは複数のウェブサービス、1つまたは複数のコンテンツソース、1つまたは複数のネットワーク、または例えばサーバが通信することができる任意の他の適切な構成要素を含むことができる。サードパーティシステム470は、ソーシャルネットワーキングシステム460を運用するエンティティとは異なるエンティティによって運用され得る。しかしながら、特定の実施形態では、ソーシャルネットワーキングシステム460およびサードパーティシステム470は、互いに連携して動作して、ソーシャルネットワーキングシステム460またはサードパーティシステム470のユーザにソーシャルネットワーキングサービスを提供することができる。この意味で、ソーシャルネットワーキングシステム460は、サードパーティシステム470などの他のシステムが、インターネットを介してソーシャルネットワーキングサービスおよび機能をユーザに提供するために使用することができるプラットフォームまたはバックボーンを提供することができる。
【0045】
特定の実施形態では、サードパーティシステム470は、サードパーティコンテンツオブジェクトプロバイダを含むことができる。サードパーティコンテンツオブジェクトプロバイダは、クライアントシステム430に通信され得るコンテンツオブジェクトの1つまたは複数のソースを含み得る。限定ではなく、例として、コンテンツオブジェクトは、例えば、映画の上映時間、映画のレビュー、レストランのレビュー、レストランのメニュー、製品情報およびレビュー、または他の適切な情報など、ユーザにとって関心のある事柄またはアクティビティに関する情報を含み得る。限定ではなく別の例として、コンテンツオブジェクトは、クーポン、割引チケット、商品券、または他の適切なインセンティブオブジェクトなどのインセンティブコンテンツオブジェクトを含んでいてよい。
【0046】
特定の実施形態では、ソーシャルネットワーキングシステム460は、ソーシャルネットワーキングシステム460とのユーザのインタラクションを強化することができるユーザ生成コンテンツオブジェクトも含む。ユーザ生成コンテンツは、ユーザがソーシャルネットワーキングシステム460に追加し、アップロードし、送信し、または「投稿」することができる任意のものを含み得る。限定ではなく、例として、ユーザは、クライアントシステム430からソーシャルネットワーキングシステム460に投稿を通信する。投稿は、ステータス更新または他のテキストデータ、ロケーション情報、写真、ビデオ、リンク、音楽、または他の同様のデータもしくはメディアなどのデータを含み得る。コンテンツは、ニュースフィードまたはストリームなどの「通信チャネル」を通じてサードパーティによってソーシャルネットワーキングシステム460に追加されてもよい。
【0047】
特定の実施形態においては、ソーシャルネットワーキングシステム460は、様々なサーバ、サブシステム、プログラム、モジュール、ログ、およびデータストアを含むことができる。特定の実施形態では、ソーシャルネットワーキングシステム460は、ウェブサーバ、アクションロガー、API要求サーバ、関連性およびランク付けエンジン、コンテンツオブジェクト分類器、通知コントローラ、アクションログ、サードパーティコンテンツオブジェクト接触ログ、推論モジュール、認可/プライバシーサーバ、検索モジュール、広告ターゲティングモジュール、ユーザインタフェースモジュール、ユーザプロファイルストア、コネクションストア、サードパーティコンテンツストア、またはロケーションストアのうちの1つまたは複数を含み得る。ソーシャルネットワーキングシステム460は、ネットワークインタフェース、セキュリティメカニズム、ロードバランサ、フェイルオーバサーバ、管理およびネットワークオペレーションコンソール、他の適切な構成要素、またはそれらの任意の適切な組み合わせなどの適切な構成要素も含むことができる。特定の実施形態においては、ソーシャルネットワーキングシステム460は、ユーザプロファイルを格納するための1つまたは複数のユーザプロファイルストアを含むことができる。ユーザプロファイルは、例えば、経歴情報、デモグラフィック情報、行動情報、ソーシャル情報、または、仕事経験、学歴、趣味もしくは嗜好、関心、アフィニティ、もしくはロケーションなどの他のタイプの記述情報を含んでもよい。関心情報は、1つまたは複数のカテゴリに関連する関心を含んでもよい。カテゴリは、一般的なものであってもよいし、特定のものであってもよい。限定ではなく、例として、ユーザが靴のブランドに関する記事に「いいね」する場合、カテゴリは、ブランドであってもよいし、あるいは「靴」もしくは「衣類」の一般カテゴリであってもよい。コネクションストアは、ユーザに関するコネクション情報を格納するために使用され得る。コネクション情報は、類似または共通の仕事経験、グループメンバーシップ、趣味、学歴を有するユーザ、または何らかの形で関連または共通の属性を共有するユーザを示すことができる。コネクション情報は、異なるユーザとコンテンツ(内部および外部の両方)との間のユーザ定義のコネクションも含み得る。ウェブサーバは、ネットワーク410を介してソーシャルネットワーキングシステム460を1つまたは複数のクライアントシステム430、または1つまたは複数のサードパーティシステム470にリンクするために使用され得る。ウェブサーバは、ソーシャルネットワーキングシステム460と1つまたは複数のクライアントシステム430との間でメッセージを受信およびルーティングするためのメールサーバまたは他のメッセージング機能を含むことができる。API要求サーバは、サードパーティシステム470が、1つまたは複数のAPIを呼び出すことによってソーシャルネットワーキングシステム460からの情報にアクセスすることを可能にすることができる。アクションロガーを使用して、ソーシャルネットワーキングシステム460上または外でのユーザのアクションに関するウェブサーバからの通信を受信することができる。アクションログと併せて、サードパーティコンテンツオブジェクトに対するユーザ接触のサードパーティコンテンツオブジェクトログが維持されてもよい。通知コントローラは、コンテンツオブジェクトに関する情報をクライアントシステム430に提供することができる。情報は、通知としてクライアントシステム430にプッシュされ得るか、または情報は、クライアントシステム430から受信された要求に応答して、クライアントシステム430からプルされ得る。認可サーバは、ソーシャルネットワーキングシステム460のユーザの1つまたは複数のプライバシー設定を施行するために使用され得る。ユーザのプライバシー設定は、ユーザに関連付けられた特定の情報がどのように共有され得るかを決定する。認可サーバは、ユーザが、例えば、適切なプライバシー設定を設定することなどによって、自分のアクションをソーシャルネットワーキングシステム460によって記録させること、または他のシステム(例えば、サードパーティシステム470)と共有させることについてオプトインまたはオプトアウトを行うことを可能にすることができる。サードパーティコンテンツオブジェクトストアは、サードパーティシステム470などのサードパーティから受信されたコンテンツオブジェクトを格納するために使用され得る。ロケーションストアは、ユーザに関連付けられたクライアントシステム430から受信されたロケーション情報を格納するために使用され得る。広告価格設定モジュールは、ソーシャル情報、現在時刻、ロケーション情報、または他の適切な情報を組み合わせて、関連する広告を通知の形でユーザに提供することができる。
【0048】
図5は、例示的なコンピュータシステム500を示す。特定の実施形態では、1つまたは複数のコンピュータシステム500は、本明細書で説明または図示される1つまたは複数の方法の1つまたは複数のステップを実行する。特定の実施形態では、1つまたは複数のコンピュータシステム500は、本明細書で説明または図示される機能を提供する。特定の実施形態では、1つまたは複数のコンピュータシステム500上で実行されるソフトウェアは、本明細書で説明または図示される1つまたは複数の方法の1つまたは複数のステップを実行するか、または本明細書で説明または図示される機能を提供する。特定の実施形態は、1つまたは複数のコンピュータシステム500の1つまたは複数の部分を含む。本明細書において、コンピュータシステムへの言及は、適切な場合、コンピューティングデバイスを包含することができ、逆もまた同様である。さらに、コンピュータシステムへの言及は、適切な場合、1つまたは複数のコンピュータシステムを包含することができる。
【0049】
本開示は、任意の適切な数のコンピュータシステム500を企図する。本開示は、任意の適切な物理的形態をとるコンピュータシステム500を企図する。限定ではなく例として、コンピュータシステム500は、埋め込みコンピュータシステム、システムオンチップ(SOC)、シングルボードコンピュータシステム(SBC)(例えば、コンピュータオンモジュール(COM)またはシステムオンモジュール(SOM)など)、デスクトップコンピュータシステム、ラップトップまたはノートブックコンピュータシステム、インタラクティブキオスク、メインフレーム、コンピュータシステムのメッシュ、携帯電話、携帯情報端末(PDA)、サーバ、タブレットコンピュータシステム、拡張/仮想現実デバイス、またはこれらのうちの2つ以上の組み合わせであってよい。適切な場合、コンピュータシステム500は、1つまたは複数のコンピュータシステム500を含むことができ、一体型または分散型であってよく、複数の場所にまたがることができ、複数のマシンにまたがることができ、複数のデータセンタにまたがることができ、または1つまたは複数のネットワーク内に1つまたは複数のクラウドコンポーネントを含むことができるクラウド内に存在することができる。適切な場合、1つまたは複数のコンピュータシステム500は、本明細書で説明または図示される1つまたは複数の方法の1つまたは複数のステップを実質的に空間的または時間的に制限することなく実行することができる。限定ではなく例として、1つまたは複数のコンピュータシステム500は、本明細書で説明または図示される1つまたは複数の方法の1つまたは複数のステップをリアルタイムで、またはバッチモードで実行することができる。1つまたは複数のコンピュータシステム500は、適切な場合、本明細書で説明または図示される1つまたは複数の方法の1つまたは複数のステップを、異なる時間または異なる場所で実行することができる。
【0050】
特定の実施形態では、コンピュータシステム500は、プロセッサ502、メモリ504、ストレージ506、入力/出力(I/O)インタフェース508、通信インタフェース510、およびバス512を含む。本開示は、特定の数の特定の構成要素を特定の配置で有する特定のコンピュータシステムを説明および図示しているが、本開示は、任意の適切な数の任意の適切な構成要素を任意の適切な配置で有する任意の適切なコンピュータシステムを企図する。
【0051】
特定の実施形態では、プロセッサ502は、コンピュータプログラムを構成する命令などの命令を実行するためのハードウェアを含む。限定ではなく、例として、命令を実行するために、プロセッサ502は、内部レジスタ、内部キャッシュ、メモリ504、またはストレージ506から命令を取り出し(またはフェッチし)、それらを復号化および実行し、次いで、1つまたは複数の結果を内部レジスタ、内部キャッシュ、メモリ504、またはストレージ506に書き込むことができる。特定の実施形態では、プロセッサ502は、データ、命令、またはアドレスのための1つまたは複数の内部キャッシュを含むことができる。本開示は、適切な場合、任意の適切な数の任意の適切な内部キャッシュを含むプロセッサ502を企図する。限定ではなく例として、プロセッサ502は、1つまたは複数の命令キャッシュ、1つまたは複数のデータキャッシュ、および1つまたは複数のトランスレーションルックアサイドバッファ(TLB)を含むことができる。命令キャッシュ内の命令は、メモリ504またはストレージ506内の命令のコピーであってよく、命令キャッシュは、プロセッサ502によるそれらの命令の取り出しを高速化することができる。データキャッシュ内のデータは、プロセッサ502で実行される命令が動作するためのメモリ504またはストレージ506内のデータのコピー、プロセッサ502で実行される後続の命令によるアクセスのための、またはメモリ504もしくはストレージ506への書込みのための、プロセッサ502で実行された以前の命令の結果、または他の適切なデータであってよい。データキャッシュは、プロセッサ502による読取りまたは書込み動作を高速化することができる。TLBは、プロセッサ502の仮想アドレス変換を高速化することができる。特定の実施形態では、プロセッサ502は、データ、命令、またはアドレスのための1つまたは複数の内部レジスタを含むことができる。本開示は、適切な場合、任意の適切な数の任意の適切な内部レジスタを含むプロセッサ502を企図する。適切な場合、プロセッサ502は、1つまたは複数の演算論理ユニット(ALU)を含んでもよく、マルチコアプロセッサであってもよく、または1つまたは複数のプロセッサ502を含んでもよい。本開示は、特定のプロセッサを説明および図示しているが、本開示は、任意の適切なプロセッサを企図する。
【0052】
特定の実施形態では、メモリ504は、プロセッサ502が実行する命令またはプロセッサ502が動作するデータを格納するためのメインメモリを含む。限定ではなく、例として、コンピュータシステム500は、ストレージ506または別のソース(例えば、別のコンピュータシステム500など)からメモリ504に命令をロードすることができる。次いで、プロセッサ502は、メモリ504から内部レジスタまたは内部キャッシュに命令をロードすることができる。命令を実行するために、プロセッサ502は、内部レジスタまたは内部キャッシュから命令を取り出し、それらを復号化することができる。命令の実行中または実行後に、プロセッサ502は、1つまたは複数の結果(中間結果または最終結果であり得る)を内部レジスタまたは内部キャッシュに書き込むことができる。次いで、プロセッサ502は、それらの結果のうちの1つまたは複数をメモリ504に書き込むことができる。特定の実施形態では、プロセッサ502は、(ストレージ506または他の場所ではなく)1つまたは複数の内部レジスタもしくは内部キャッシュ内またはメモリ504内の命令のみを実行し、(ストレージ506または他の場所ではなく)1つまたは複数の内部レジスタもしくは内部キャッシュ内またはメモリ504内のデータのみに対して動作する。1つまたは複数のメモリバス(各々アドレスバスおよびデータバスを含むことができる)は、プロセッサ502をメモリ504に結合することができる。バス512は、以下で説明するように、1つまたは複数のメモリバスを含むことができる。特定の実施形態では、1つまたは複数のメモリ管理ユニット(MMU)が、プロセッサ502とメモリ504との間に存在し、プロセッサ502によって要求されたメモリ504へのアクセスを容易にする。特定の実施形態では、メモリ504は、ランダムアクセスメモリ(RAM)を含む。このRAMは、適切な場合、揮発性メモリであってよい。適切な場合、このRAMは、ダイナミックRAM(DRAM)またはスタティックRAM(SRAM)であってもよい。さらに、適切な場合、このRAMは、シングルポートまたはマルチポートRAMであってもよい。本開示は、任意の適切なRAMを企図する。メモリ504は、適切な場合、1つまたは複数のメモリ504を含み得る。本開示は、特定のメモリについて説明および図示しているが、本開示は、任意の適切なメモリを企図する。
【0053】
特定の実施形態では、ストレージ506は、データまたは命令のための大容量ストレージを含む。限定ではなく例として、ストレージ506は、ハードディスクドライブ(HDD)、フロッピー(登録商標)ディスクドライブ、フラッシュメモリ、光ディスク、光磁気ディスク、磁気テープ、ユニバーサルシリアルバス(USB)ドライブ、またはこれらのうちの2つ以上の組み合わせを含んでいてよい。ストレージ506は、適切な場合、リムーバブルまたは非リムーバブル(または固定)媒体を含むことができる。ストレージ506は、適切な場合、コンピュータシステム500の内部または外部にあってもよい。特定の実施形態では、ストレージ506は、不揮発性ソリッドステートメモリである。特定の実施形態では、ストレージ506は、読み出し専用メモリ(ROM)を含む。必要に応じて、このROMは、マスクプログラムROM、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)、電気的変更可能ROM(EAROM)、フラッシュメモリ、またはこれらのうちの2つ以上の組み合わせであってよい。本開示は、任意の適切な物理的形態をとるマスストレージ506を企図する。ストレージ506は、適切な場合、プロセッサ502とストレージ506との間の通信を容易にする1つまたは複数のストレージ制御ユニットを含むことができる。適切な場合、ストレージ506は、1つまたは複数のストレージ506を含むことができる。本開示は、特定のストレージを説明および図示しているが、本開示は、任意の適切なストレージを企図する。
【0054】
特定の実施形態では、I/Oインタフェース508は、コンピュータシステム500と1つまたは複数のI/Oデバイスとの間の通信のための1つまたは複数のインタフェースを提供するハードウェア、ソフトウェア、またはその両方を含む。コンピュータシステム500は、適切な場合、これらのI/Oデバイスのうちの1つまたは複数を含むことができる。これらのI/Oデバイスのうちの1つまたは複数は、人とコンピュータシステム500との間の通信を可能にし得る。限定ではなく、例として、I/Oデバイスは、キーボード、キーパッド、マイクロフォン、モニタ、マウス、プリンタ、スキャナ、スピーカ、スチルカメラ、スタイラス、タブレット、タッチスクリーン、トラックボール、ビデオカメラ、別の適切なI/Oデバイス、またはこれらのうちの2つ以上の組み合わせを含み得る。I/Oデバイスは、1つまたは複数のセンサを含んでいてよい。本開示は、任意の適切なI/Oデバイスおよびそれらのための任意の適切なI/Oインタフェース508を企図する。適切な場合、I/Oインタフェース508は、プロセッサ502がこれらのI/Oデバイスのうちの1つまたは複数を駆動することを可能にする、1つまたは複数のデバイスまたはソフトウェアドライバを含んでいてよい。I/Oインタフェース508は、適切な場合、1つまたは複数のI/Oインタフェース508を含むことができる。本開示は、特定のI/Oインタフェースを説明および図示しているが、本開示は、任意の適切なI/Oインタフェースを企図する。
【0055】
特定の実施形態では、通信インタフェース510は、コンピュータシステム500と、1つもしくは複数の他のコンピュータシステム500または1つもしくは複数のネットワークとの間の通信(例えば、パケットベースの通信など)のための1つまたは複数のインタフェースを提供するハードウェア、ソフトウェア、またはその両方を含む。限定ではなく例として、通信インタフェース510は、イーサネット(登録商標)もしくは他の有線ベースのネットワークと通信するためのネットワークインタフェースコントローラ(NIC)もしくはネットワークアダプタ、またはWI-FIネットワークなどの無線ネットワークと通信するための無線NIC(WNIC)もしくは無線アダプタを含むことができる。本開示は、任意の適切なネットワークおよびそのための任意の適切な通信インタフェース510を企図する。限定ではなく例として、コンピュータシステム500は、アドホックネットワーク、パーソナルエリアネットワーク(PAN)、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、インターネットの1つまたは複数の部分、またはこれらのうちの2つ以上の組み合わせと通信することができる。これらのネットワークのうちの1つまたは複数のうちの1つまたは複数の部分は、有線または無線であってよい。一例として、コンピュータシステム500は、無線PAN(WPAN)(例えば、BLUETOOTH(登録商標)WPANなど)、WI-FIネットワーク、WI-MAXネットワーク、携帯電話ネットワーク(例えば、GSM(登録商標)(Global System for Mobile Communications)ネットワークなど)、他の適切な無線ネットワーク、またはこれらのうちの2つ以上の組み合わせと通信することができる。コンピュータシステム500は、適切な場合、これらのネットワークのうちの任意のもののための任意の適切な通信インタフェース510を含むことができる。通信インタフェース510は、適切な場合、1つまたは複数の通信インタフェース510を含み得る。本開示は、特定の通信インタフェースについて説明および図示しているが、本開示は、任意の適切な通信インタフェースを企図する。
【0056】
特定の実施形態では、バス512は、コンピュータシステム500のコンポーネントを互いに結合するハードウェア、ソフトウェア、またはその両方を含む。限定ではなく例として、バス512は、加速グラフィックスポート(Accelerated Graphics Port,AGP)または他のグラフィックスバス、EISA(Enhanced Industry Standard Architecture)バス、フロントサイドバス(front-side bus,FSB)、ハイパートランスポート(HYPERTRANSPORT,HT)インターコネクト、ISA(Industry Standard Architecture)バス、インフィニバンド(INFINIBAND)インターコネクト、LPC(low-pin-count)バス、メモリバス、マイクロチャネルアーキテクチャ(Micro Channel Architecture,MCA)バス、PCI(Peripheral Component Interconnect)バス、PCI-エクスプレス(PCI-Express,PCIe)バス、SATA(serial advanced technology attachment)バス、VLB(Video Electronics Standards Association local)バス、他の適切なバス、またはこれらのうちの2つ以上の組み合わせを含んでいてよい。バス512は、適切な場合、1つまたは複数のバス512を含み得る。本開示は、特定のバスについて説明および図示しているが、本開示は、任意の適切なバスまたは相互接続を企図する。
【0057】
本明細書では、1つまたは複数のコンピュータ可読非一時的記憶媒体は、適切な場合、1つまたは複数の半導体ベースのまたは他の集積回路(IC)(例えば、フィールドプログラマブルゲートアレイ(FPGA)または特定用途向けIC(ASIC)など)、ハードディスクドライブ(HDD)、ハイブリッドハードドライブ(HHD)、光ディスク、光ディスクドライブ(ODD)、光磁気ディスク、光磁気ドライブ、フロッピー(登録商標)ディスケット、フロッピー(登録商標)ディスクドライブ(FDD)、磁気テープ、ソリッドステートドライブ(SSD)、RAMドライブ、セキュアデジタルカードもしくはドライブ、任意の他の適切なコンピュータ可読非一時的記憶媒体、またはこれらのうちの2つ以上の任意の適切な組み合わせを含み得る。コンピュータ可読非一時的記憶媒体は、適切な場合、揮発性、不揮発性、または揮発性および不揮発性の組み合わせであってよい。
【0058】
本明細書において、「または(or)」は、明示的に別段の指示がない限り、または文脈によって別段の指示がない限り、包括的であり、排他的ではない。したがって、本明細書では、「AまたはB」は、明示的に別段の指示がない限り、または文脈によって別段の指示がない限り、「A、B、または両方」を意味する。さらに、「および(and)」は、明示的に別段の指示がない限り、または文脈によって別段の指示がない限り、共同および個別の両方である。したがって、本明細書では、「AおよびB」は、明示的に別段の指示がない限り、または文脈によって別段の指示がない限り、「AおよびBを一緒にまたは個別に」を意味する。
【0059】
本開示の範囲は、本明細書に説明または図示される例示的実施形態に対する、当業者が理解するであろう全ての変更、置換、変形、代替、および修正を包含する。本開示の範囲は、本明細書で説明または図示される例示的な実施形態に限定されない。さらに、本開示は、特定の構成要素、要素、特徴、機能、動作、またはステップを含むものとして本明細書のそれぞれの実施形態を説明および図示しているが、これらの実施形態のいずれも、当業者が理解するであろう、本明細書のいずれかに説明または図示される構成要素、要素、特徴、機能、動作、またはステップのいずれかの任意の組み合わせまたは順列を含み得る。さらに、添付の特許請求の範囲における、特定の機能を実行するように適合され、配置され、可能であり、構成され、有効化され、動作可能であり、または作動する装置もしくはシステム、または装置もしくはシステムの構成要素への言及は、その装置、システム、または構成要素がそのように適合され、配置され、可能であり、構成され、有効化され、動作可能であり、または作動する限り、それまたはその特定の機能がアクティブ化され、オンにされ、またはロック解除されるかどうかにかかわらず、その装置、システム、構成要素を包含する。加えて、本開示は、特定の実施形態を特定の利点を提供するものとして説明または図示しているが、特定の実施形態は、これらの利点のいずれも提供しなくてもよく、これらの利点の一部または全部を提供してもよい。
【0060】
なお、本明細書で開示される実施形態は例示に過ぎず、本開示の範囲はこれらに限定されるものではない。特定の実施形態は、本明細書に開示される実施形態の構成要素、要素、特徴、機能、動作、またはステップの全て、いくつかを含んでもよく、またはいずれも含まなくてもよい。本発明による実施形態は、特に、方法、記憶媒体、システム、およびコンピュータプログラム製品を対象とする添付の特許請求の範囲において開示され、ある請求項カテゴリ、例えば方法において言及される任意の特徴は、別の請求項カテゴリ、例えばシステムにおいても同様に請求され得る。添付の特許請求の範囲における従属関係または引用は、形式的な理由のみのために選択されている。しかしながら、任意の先行する請求項(特に複数のマルチ従属)を意図的に参照することから生じる任意の主題も同様に請求され得るので、添付の特許請求の範囲で選択された従属関係にかかわらず、請求項の任意の組み合わせおよびその特徴が開示されるとともに請求され得る。請求され得る主題は、添付の特許請求の範囲に記載される特徴の組み合わせだけでなく、特許請求の範囲における特徴の任意の他の組み合わせも含み、特許請求の範囲において言及される各特徴は、特許請求の範囲における任意の他の特徴または他の特徴の組み合わせと組み合わせることができる。さらに、本明細書で説明または描写される実施形態および特徴のいずれも、別個の請求項において、および/または本明細書で説明または描写される任意の実施形態もしくは特徴との、もしくは添付の特許請求の範囲の特徴のいずれかとの任意の組み合わせで請求され得る。
図1
図2
図3
図4
図5
【国際調査報告】