特許第6074433号(P6074433)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ フェイスブック,インク.の特許一覧

特許6074433動的デバイス構成のための周期的周囲波形分析
<>
  • 特許6074433-動的デバイス構成のための周期的周囲波形分析 図000002
  • 特許6074433-動的デバイス構成のための周期的周囲波形分析 図000003
  • 特許6074433-動的デバイス構成のための周期的周囲波形分析 図000004
  • 特許6074433-動的デバイス構成のための周期的周囲波形分析 図000005
  • 特許6074433-動的デバイス構成のための周期的周囲波形分析 図000006
  • 特許6074433-動的デバイス構成のための周期的周囲波形分析 図000007
  • 特許6074433-動的デバイス構成のための周期的周囲波形分析 図000008
  • 特許6074433-動的デバイス構成のための周期的周囲波形分析 図000009
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6074433
(24)【登録日】2017年1月13日
(45)【発行日】2017年2月1日
(54)【発明の名称】動的デバイス構成のための周期的周囲波形分析
(51)【国際特許分類】
   G10L 25/54 20130101AFI20170123BHJP
   G06F 13/00 20060101ALI20170123BHJP
   H04B 7/26 20060101ALI20170123BHJP
   H04M 1/00 20060101ALI20170123BHJP
【FI】
   G10L25/54
   G06F13/00 500A
   H04B7/26
   H04M1/00 S
【請求項の数】20
【全頁数】25
(21)【出願番号】特願2014-537082(P2014-537082)
(86)(22)【出願日】2012年9月27日
(65)【公表番号】特表2014-532892(P2014-532892A)
(43)【公表日】2014年12月8日
(86)【国際出願番号】US2012057413
(87)【国際公開番号】WO2013058948
(87)【国際公開日】20130425
【審査請求日】2015年9月16日
(31)【優先権主張番号】13/277,080
(32)【優先日】2011年10月19日
(33)【優先権主張国】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】508178054
【氏名又は名称】フェイスブック,インク.
(74)【代理人】
【識別番号】100105957
【弁理士】
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【弁理士】
【氏名又は名称】恩田 博宣
(74)【代理人】
【識別番号】100142907
【弁理士】
【氏名又は名称】本田 淳
(72)【発明者】
【氏名】パパキポス、マシュー ニコラス
(72)【発明者】
【氏名】ガルシア、デイビッド ハリー
【審査官】 千本 潤介
(56)【参考文献】
【文献】 米国特許出願公開第2010/0146445(US,A1)
【文献】 米国特許出願公開第2011/0066700(US,A1)
【文献】 米国特許出願公開第2008/0113657(US,A1)
【文献】 特開2007−174332(JP,A)
【文献】 特表2011−523486(JP,A)
【文献】 特開2008−271465(JP,A)
【文献】 特開2007−134826(JP,A)
【文献】 特開2010−266721(JP,A)
【文献】 特開2002−271866(JP,A)
【文献】 米国特許出願公開第2008/0160977(US,A1)
【文献】 米国特許第07392066(US,B1)
【文献】 米国特許出願公開第2007/0192067(US,A1)
【文献】 米国特許第08321394(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G10L 25/54
G06F 13/00
H04B 7/26
H04M 1/00
(57)【特許請求の範囲】
【請求項1】
コンピューティングシステムが、キャプチャされた周囲の音データに基づいて波形フィンガープリントを生成するステップと、
前記コンピューティングシステムが、前記コンピューティングシステムの自己決定済み位置を計算するステップと、
前記コンピューティングシステムが、生成された前記波形フィンガープリントおよび前記自己決定済み位置をサーバに送信するステップと、
前記コンピューティングシステムが、生成された前記波形フィンガープリントに一致する1または複数の音フィンガープリントを特定するステップと、
前記コンピューティングシステムが、1または複数の特定された音フィンガープリントのメタデータと、ソーシャルネットワーキングシステム上でのユーザのアクションの情報とを含む情報に基づいて、前記コンピューティングシステムの自己決定済み位置の精度を向上させるステップと、
前記コンピューティングシステムが、前記コンピューティングシステムの1または複数のデバイス設定を調整する命令を前記サーバから受信するステップであって、前記命令は、精度の向上された前記コンピューティングシステムの自己決定済み位置に少なくとも部分的に基づく、ステップと、
前記コンピューティングシステムが、受信した前記命令に応じて前記コンピューティングシステムの1または複数のデバイス設定を調整するステップと、を備える方法。
【請求項2】
前記デバイス設定を調整するステップは、前記コンピューティングシステムが、向上した精度の前記自己決定済み位置に基づいて、前記コンピューティングシステムの呼出音量を調整することを含む、請求項1に記載の方法。
【請求項3】
前記デバイス設定を調整するステップは、前記コンピューティングシステムが、向上した精度の前記自己決定済み位置に基づいて、振動モードを有効化することを含む、請求項1に記載の方法。
【請求項4】
前記メタデータは、前記自己決定済み位置を特定の現場または地理的位置に相関させる情報を含む、請求項1に記載の方法。
【請求項5】
前記デバイス設定を調整するステップは、前記コンピューティングシステムが前記自己決定済み位置に存在している間に発生する、請求項1に記載の方法。
【請求項6】
前記自己決定済み位置を計算するステップは、前記コンピューティングシステムの位置データまたはソーシャルネットワーキングシステム上でのユーザのアクションに基づく、請求項1に記載の方法。
【請求項7】
1または複数のコンピューティングシステムが、クライアントデバイスから波形フィンガープリントおよびクライアントが決定したクライアント決定位置を受信するステップであって、前記波形フィンガープリントは、前記クライアントデバイスがキャプチャした周囲の音データに基づいて生成されたものである、ステップと、
1または複数のコンピューティングシステムが、受信した前記波形フィンガープリントを、記憶済み音波形フィンガープリントのデータベースと比較するステップであって、該記憶済み音波形フィンガープリントのそれぞれがオブジェクトデータベース内のオブジェクトに関連付けられている、前記ステップと、
1または複数のコンピューティングシステムが、前記音波形フィンガープリントのデータベースから1または複数の一致する音波形フィンガープリントを特定するステップであって、前記一致する音波形フィンガープリントは、受信した前記波形フィンガープリントに一致するものである、ステップと、
1または複数のコンピューティングシステムが、1または複数の特定された音波形フィンガープリントのメタデータと、ソーシャルネットワーキングシステム上でのユーザのアクションの情報とを含む情報に基づいて、前記クライアント決定位置の精度を向上させるステップと、
1または複数のコンピューティングシステムが、前記クライアントデバイスの1または複数のデバイス設定を調整する1または複数の命令を送信するステップであって、前記命令は、精度の向上された前記クライアント決定位置に少なくとも部分的に基づく、ステップと、を備える方法。
【請求項8】
1または複数のコンピューティングシステムが、前記クライアント決定位置の近隣における1または複数の地理的位置に関連付けられた1または複数の外部データベースを検索するステップと、
1または複数のコンピューティングシステムが、前記1または複数の一致する音波形フィンガープリントに関連付けられた1または複数の前記オブジェクトについて一致が見つかると、前記一致が見つかった前記データベースに関連付けられた地理的位置を前記クライアント決定位置に割り当てるステップと、をさらに備え、
1または複数のデバイス設定を調整する前記1または複数の命令は、前記地理的位置にさらに基づく、請求項7に記載の方法。
【請求項9】
前記記憶済み音波形フィンガープリントは、ソーシャルネットワーキングシステム上のノードによって表された、1または複数の他のユーザからのアップロードされた音波形フィンガープリントを含み、方法は、
1または複数のコンピューティングシステムが、1または複数の他のノードであって、該1または複数の他のノードのアップロードされた音波形フィンガープリントが前記クライアントデバイスから受信した波形フィンガープリントと一致する1または複数の他のノードに関連付けられた位置情報をソーシャルグラフに照会するステップをさらに備え、
1または複数のデバイス設定を調整する前記1または複数の命令は、前記照会に応答して前記ソーシャルグラフによって返された前記位置情報にさらに基づく、請求項7に記載の方法。
【請求項10】
位置情報は特定の地理的位置へのチェックインを含む、請求項7に記載の方法。
【請求項11】
位置情報は特定のイベントへの出欠返信依頼を含む、請求項7に記載の方法。
【請求項12】
前記1または複数の命令によって、前記クライアントデバイスに該クライアントデバイスの呼出音量を大きくするよう命令することが可能である、請求項7に記載の方法。
【請求項13】
前記1または複数の命令によって、前記クライアントデバイスに該クライアントデバイスの呼出音量を小さくするよう命令することが可能である、請求項7に記載の方法。
【請求項14】
前記1または複数の命令によって、前記クライアントデバイスに振動モードを有効化するよう命令することが可能である、請求項7に記載の方法。
【請求項15】
命令を含む非一時的コンピュータ可読媒体であって、1または複数のコンピューティングシステムによって実行されると、前記命令は、
キャプチャされた周囲の音データに基づいて波形フィンガープリントを生成するステップと、
クライアントコンピューティングシステムの自己決定済み位置を計算するステップと、
生成された前記波形フィンガープリントおよび前記自己決定済み位置をサーバに送信するステップと、
生成された前記波形フィンガープリントに一致する1または複数の音フィンガープリントを特定するステップと、
1または複数の特定された音フィンガープリントのメタデータと、ソーシャルネットワーキングシステム上でのユーザのアクションの情報とを含む情報に基づいて、前記クライアントコンピューティングシステムの自己決定済み位置の精度を向上させるステップと、
前記クライアントコンピューティングシステムの1または複数のデバイス設定を調整する命令を前記サーバから受信するステップであって、前記命令は、精度の向上された前記クライアントコンピューティングシステムの自己決定済み位置に少なくとも部分的に基づく、ステップと、
受信した前記命令に応じて前記クライアントコンピューティングシステムの1または複数のデバイス設定を調整するステップとを行わせるように構成される、媒体。
【請求項16】
前記命令は、向上した精度の前記自己決定済み位置に基づいて、前記クライアントコンピューティングシステムの呼出音量を調整するステップを行わせるようにさらに構成される、請求項15に記載の媒体。
【請求項17】
前記命令は、向上した精度の前記自己決定済み位置に基づいて、振動モードを有効化することをするステップを行わせるようにさらに構成される、請求項15に記載の媒体。
【請求項18】
前記メタデータは、前記自己決定済み位置を特定の現場または地理的位置に相関させる情報を含む、請求項15に記載の媒体。
【請求項19】
前記デバイス設定を調整するステップは、前記クライアントコンピューティングシステムが前記自己決定済み位置に存在している間に発生する、請求項15に記載の媒体。
【請求項20】
前記自己決定済み位置を計算するステップは、前記クライアントコンピューティングシステムの位置データまたはソーシャルネットワーキングシステム上でのユーザのアクションに基づく、請求項15に記載の媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に携帯デバイスのセンササブシステムを使用して波形データを周期的にキャプチャし、動的デバイス構成のために波形のフィンガープリントを生成することに関する。
【背景技術】
【0002】
ソーシャルネットワーキングウェブサイトなどのソーシャルネットワーキングシステムは、ユーザとそのソーシャルネットワーキングシステムとの対話、およびシステムを通じたユーザ同士の対話を可能にする。ソーシャルネットワーキングシステムは、大抵ユーザプロファイルと呼ばれる記録を、ユーザと関連付けて生成し記憶する。ユーザプロファイルには、ユーザの人口学的情報、通信チャネル情報、および個人的関心などが含まれる。また、ソーシャルネットワーキングシステムは、ユーザとソーシャルネットワーキングシステム内の他のユーザとの関係の記録(例えばソーシャルグラフ)を作成して記憶し、サービス(ウォール投稿、写真の共有、インスタントメッセージなど)を提供して、ソーシャルネットワーキングシステム内のユーザ間の社会的対話を促すこともできる。ジオソーシャルネットワーキングシステムは、地理的サービスおよび地理的機能を使用して、付加的な社会的対話を可能にするソーシャルネットワーキングシステムである。ユーザ提供された位置データまたは地理的位置情報技法(例えば携帯電話の位置追跡)により、ジオソーシャルネットワークが、ユーザを地域の人やユーザの関心に合った地域のイベントに結びつけ、連係させることをできるようにする。例えば、ユーザは、場所の名前を提供することにより(または予め設定された場所のリストから場所を選択することにより)、モバイルクライアントアプリケーションを使用して任意の場所にチェックインすることができる。ジオソーシャルネットワーキングシステムは、とりわけその場所にユーザが存在することに関する情報を記録し、場合によってはその情報をジオソーシャルネットワーキングシステムの他のユーザに提供することなどもできる。
【図面の簡単な説明】
【0003】
図1】例示のソーシャルネットワーキング環境を示す図。
図2】例示のユーザデバイスを示す図。
図3】ソーシャルネットワーキングシステムが、携帯デバイスの設定を調整するか否か、およびどのような設定を調整するかを決定するために利用可能な例示のデータソースを示す図。
図4】自己報告された地理的位置が同一の近隣に存在する、ソーシャルネットワーキングシステムの3人のユーザの例を示す図。
図4A図3の3人のユーザを表すソーシャルグラフの例示の部分を示す図。
図5】オンラインデータベースで検索したキャプチャ済み周囲音に基づいてデバイス設定を調整する例示の方法を示す図。
図6】ソーシャル情報に基づいてデバイス設定を調整する例示の方法を示す図。
図7】例示のコンピュータシステムを示す図。
【発明を実施するための形態】
【0004】
特定の実施形態は、周囲音条件に基づき、携帯デバイス設定を自動的に調整するという特徴を含むジオソーシャルネットワーキングシステムに関する。また、本開示は、ジオソーシャルネットワーキングシステムの複数のユーザからの波形データの周期的なアップロードから算出したソーシャルデータに基づいて、携帯デバイスの設定を調整することに関する。本開示の前記およびその他の特徴、態様および利点について、添付図面とともに以下の詳細な説明でより詳細に述べる。
【0005】
本発明について、添付図面に示すいくつかの実施形態を参照しながら以下に詳述する。以下の説明では、本開示を十分に理解することができるように多くの特定の詳細を記載する。しかし、本開示は、これらの特定の詳細の一部または全部が存在しなくても実施可能であることが当業者には明らかである。また、本開示が無用にわかりにくくならないように、周知のプロセスステップおよび/または構造については詳細には説明しない。さらに、本開示を特定の実施形態とともに説明するが、以下の説明は、本開示を記載の実施形態に限定することを意図するものではないことが理解されるであろう。逆に、以下の説明は、添付の特許請求の範囲によって特定される本開示の趣旨および範囲に含まれる代替、変更、および均等物を網羅することを意図している。
【0006】
ソーシャルネットワーキングウェブサイトなどのソーシャルネットワーキングシステムは、ユーザがソーシャルネットワーキングシステムと対話し、またシステムを通じてユーザ同士が対話することができるようにする。一般に、ソーシャルネットワーキングシステムの登録ユーザになるためには、人間または人間以外の実体は、ソーシャルネットワーキングシステムにアカウント登録をする。その後、登録ユーザは、例えばアカウントを通じて正しいログインIDまたはユーザ名およびパスワードを提供することによって、ソーシャルネットワーキングシステムにログインすることができる。本明細書では、「ユーザ」は、そのようなソーシャルネットワーキング環境と、またはソーシャルネットワーキング環境を通じて、対話または通信する個人(人間のユーザ)、実体(例えば企業、事業所または第三者アプリケーション)、グループ(例えば個人または実体のグループ)であってもよい。
【0007】
ユーザがソーシャルネットワーキングシステムにアカウント登録すると、ソーシャルネットワーキングシステムは、大抵「ユーザプロファイル」と呼ばれる記録を作成し、ユーザと関連付けて記憶することができる。ユーザプロファイルは、そのユーザにより提供された情報および、ソーシャルネットワーキングシステムを含む様々なシステムによって収集された、ユーザのアクティビティまたは行動に関する情報を含み得る。例えば、ユーザは、自分の名前、プロファイル画像、連絡先情報、誕生日、性別、婚姻状況、家族関係、勤務先、学歴、趣味、関心、および、自分のユーザプロファイルに含めたいその他の人口学的情報を提供することができる。ユーザは、自分が友達とみなすソーシャルネットワーキングシステムの他のユーザを特定することもできる。ユーザの友達または一次連絡先(一次コンタクト)のリストをユーザのプロファイルに含めてもよい。ソーシャルネットワーキングシステム内のつながり(接続)は双方向であっても単に一方向であってもよい。例えば、ボブとジョーの両者が共にユーザであって互いにつながりがある場合、ボブとジョーのそれぞれは他方にとってつながりである。一方、ボブがサムの投稿コンテンツアイテムを閲覧するためにサムとつながりたいが、サムはボブとつながることを選択しない場合、一方向のつながりを形成することができ、その場合、サムはボブのつながりであるがボブはサムのつながりではない。ソーシャルネットワーキングシステムの一部の実施形態では、つながりは、1または複数のつながりレベル(例えば友達の友達)を通じた間接的なものであってもよい。つながりは、例えばユーザが、特定の他のユーザを友達として選択することによってユーザにより明示的に追加されるか、またはユーザの共通の特徴(例えば同じ教育機関の同窓生であるユーザ)に基づいてソーシャルネットワーキングシステムにより自動的に作成されてもよい。ユーザは、頻繁に閲覧するウェブサイトまたはウェブページを特定、またはブックマークに加えることができ、それらのウェブサイトまたはウェブページをユーザのプロファイルに含めることができる。
【0008】
ユーザは、ユーザがアカウント登録するとき、またはその後で、ユーザの様々な側面に関する情報(連絡先情報および関心など)に関する情報を提供してもよい。また、ユーザは自分のプロファイル情報を随時更新することができる。例えば、ユーザが転居または電
話番号を変更する場合、ユーザは自分の連絡先情報を更新することができる。さらに、時間の経過とともにユーザの関心が変化する可能性があり、ユーザはプロファイル内の自分の関心対象を随時更新してもよい。ソーシャルネットワーク上の特定の情報へのアクセス頻度など、ユーザのソーシャルネットワーキングシステム上でのアクティビティによっても、ユーザのプロファイルに含め得る情報を提供してもよい。この場合も、そのような情報は、ユーザの最新のアクティビティを反映させるように随時更新され得る。さらにまた、他のユーザ、友達、または連絡先も、ユーザのプロファイルに作用または更新を加えるアクティビティを行うことができる。例えば、連絡先がユーザを友達として追加する(またはユーザを友達から削除する)ことができる。連絡先は、メッセージをユーザプロファイルページに書き込むこともできる(通常ウォール投稿として知られている)。ユーザは、ユーザのプロファイルページに投稿される状況メッセージを入力することもできる。
【0009】
ソーシャルネットワークシステムは、ソーシャルグラフ情報を維持することが可能であり、ソーシャルグラフ情報は、一般に、個人のグループ間の関係をモデリングすることができ、単なる知人から親密な家族関係に至るまでの関係を含めることができる。ソーシャルネットワークは、グラフ構造を使用して表されることができる。グラフの各ノードは、ソーシャルネットワークのメンバに対応する。2つのノード同士を結合するエッジによって二者のユーザ間の関係を表す。さらに、2つのノード間の分離度は、一方のノードから他方のノードまでグラフ上を移動するのに必要な最小ホップ数で定義される。二者のユーザ間の分離度は、グラフ内のそれらのノードによって表されるユーザ二者間の関連度とみなすことができる。
【0010】
ソーシャルネットワーキングシステムは、写真の共有、オンラインカレンダ、イベントなどの様々なアプリケーションに対応することができる。例えば、ソーシャルネットワーキングシステムは、媒体共有機能を備えていてもよい。例えば、ソーシャルネットワーキングシステムは、ユーザが写真およびその他のマルチメディアファイルを、ウォール投稿内または写真アルバム内など、ユーザのプロファイルに投稿することができるようにしてもよく、ウォール投稿と写真アルバムは両方ともソーシャルネットワーキングシステムの他のユーザがアクセス可能であってもよい。ソーシャルネットワーキングシステムは、ユーザがイベントを構成することができるようにしてもよい。例えば、第1のユーザが、イベントの日時、イベントの場所およびイベントに招待された他のユーザを含む属性によってイベントを構成してもよい。招待されたユーザは、イベントへの招待状を受け取り、(招待を受け入れるかまたは辞退するなどにより)応答することができる。さらに、ソーシャルネットワーキングシステムは、ユーザがパーソナルカレンダを維持することができるようにしてもよい。イベントと同様、カレンダの項目には、時刻、日付、場所および他のユーザの識別情報を含むことができる。
【0011】
また、ソーシャルネットワーキングシステムは、プライバシモデルに対応することもできる。ユーザは、自分の情報を他のユーザまたは第三者アプリケーションと共有したいと望むことも望まないこともあり、またはユーザは、自分の情報を特定のユーザまたは第三者アプリケーションとのみ共有したいと望むこともある。ユーザは、自分の情報を他のユーザまたは第三者アプリケーションと共有するか否かを、自分のユーザプロファイルに関連付けられたプライバシ設定によって管理することができる。例えば、ユーザは、ユーザに関連付けられたユーザデータごとにプライバシ設定を選択、および/または、全般に適用されるように(グローバルに)選択するかまたはユーザプロファイル情報のカテゴリまたは種類に適用される設定を選択することができる。プライバシ設定により、ユーザデータにアクセス可能な実体(例えば他のユーザ、ユーザのつながり、友達の友達、または第三者アプリケーション)のセットが定義または特定される。プライバシ設定は、ソーシャルネットワーク内の特定の実体(例えば他のユーザ)、ユーザのつながりの事前定義されたグループ、特定の種類のつながり、ユーザのすべてのつながり、ユーザのつながりのう
ちのすべての一次つながり、ソーシャルネットワーク全体、さらには(例えば投稿コンテンツアイテムをインターネット上でインデックス付け可能または検索可能にするために)インターネット全体を指定するなどして、様々なレベルの粒度で指定することができる。ユーザは、投稿するユーザデータすべてについてデフォルトのプライバシ設定を選択することもできる。さらに、ユーザは、特定の実体がユーザデータまたは特定の種類のユーザデータを閲覧しないように明確に除外することも可能である。ソーシャルネットワーキングシステムは、地理的位置または場所に関する情報のデータベースを維持してもよい。場所は、レストラン、バー、駅、空港など、様々な物理的位置に対応し得る。場所の中には、空港内のレストランまたはゲート付近など、それ自体が場所を含むより大きな領域に対応しているものがあってもよい。一実施態様では、本願明細書に援用する米国特許出願第12/863181号に記載されているように、各場所をソーシャルネットワーキングシステムによって維持されているソーシャルグラフまたはその他のデータ構造内のハブノードとして維持することができる。ソーシャルネットワーキングシステムは、ユーザが、ラップトップ、デスクトップまたは携帯デバイスなどの有線局または無線局でホストされているクライアントアプリケーション(例えばブラウザ)を使用して、各場所に関する情報にアクセスすることができるようにしてもよい。例えば、ソーシャルネットワーキングシステムは、場所に関する情報を要求するユーザに対してウェブページ(またはその他の構造化文書)を提供してもよい。ユーザプロファイルおよび場所情報に加えて、ソーシャルネットワーキングシステムは、ユーザに関するその他の情報を追跡または維持してもよい。例えば、ソーシャルネットワーキングシステムは、ユーザの位置を記録する1または複数の位置ベースのサービスを含むジオソーシャルネットワーキングシステム機能に対応することができる。例えば、ユーザは、ユーザの携帯デバイスでホストされている専用クライアントアプリケーション(またはブラウザクライアントを使用するウェブベースまたはネットワークベースのアプリケーション)を使用してジオソーシャルネットワーキングシステムにアクセスすることができる。クライアントアプリケーションは、全地球測位システム(GPS)または、携帯デバイスに対応しているその他の地理的位置情報機能に自動的にアクセスし、ユーザの現在位置をソーシャルネットワーキングシステムに報告することができる。さらに、クライアントアプリケーションは、ユーザが様々な位置にチェックインして、その位置を他のユーザに伝えることができるようにするジオソーシャルネットワーキングシステムに対応してもよい。ユーザが任意の場所に物理的に位置し、携帯デバイスを使用してジオネットワーキングシステムにアクセスし、その場所にユーザの存在を登録すると、所与の場所へのチェックインが発生してもよい。ユーザは、ユーザの現在位置付近の既存の場所のリストから場所を選択するか、または新たな場所を作成することができる。ユーザは、所与の場所にチェックインしたときに文字列でコメントを提供することもできる。また、ユーザは、チェックインに関連して1または複数のユーザ(ユーザの友達など)を特定し、それらのユーザをチェックインに関連付けることもできる。本願明細書にあらゆる目的で援用する米国特許出願第12/584614号には、第1のユーザが任意の場所で他のユーザをチェックインすることができるシステムが記載されている。コメントと、ユーザがチェックインした時刻に対応するタイムスタンプを含む記載を、他のユーザに対して表示してもよい。例えば、ユーザのチェックインアクティビティの記録をデータベースに記憶してもよい。ソーシャルネットワーキングシステムは、任意の場所でのユーザのチェックインアクティビティに関連付けられた1または複数の記録を選択し、所与の場所に対応するウェブページ(またはその他の構造化文書)にそのようなチェックインアクティビティを含めることができる。例えば、ソーシャルネットワーキングシステムは、場所に対応するページを要求するユーザの友達またはその他のソーシャルネットワーキング上の連絡先に関連付けられたチェックインアクティビティを選択してもよい。本願明細書に参照によりその全体をあらゆる目的で援用する米国特許出願第12/858817号には、本発明の様々な実施形態に関連して使用することができるジオソーシャルネットワーキングシステムの一例が記載されている。チェックインアクティビティは、ユーザプロファイルページおよび、ソーシャルネットワーキングシステムのユーザに提供さ
れるニュースフィードに表示されてもよい。
【0012】
さらに、ユーザの携帯デバイス上でホストされている専用クライアントアプリケーションを、携帯デバイスの位置データを連続してキャプチャしてその位置データをソーシャルネットワーキングシステムに送信するように構成することができる。このようにして、ソーシャルネットワーキングシステムは、ユーザの位置を追跡し、ユーザの経路に近接する場所またはユーザが頻繁に訪れる場所に関する様々な推奨事項をユーザに提供してもよい。一実施形態では、ユーザはこの推奨サービスに加入し、それによってクライアントアプリケーションにユーザの位置データをソーシャルネットワーキングシステムに対して周期的に投稿させるようにすることも可能である。
【0013】
ユーザの携帯デバイスで稼働させている専用クライアントアプリケーションの特定の実施形態では、携帯デバイス内のマイクロフォンまたはセンササブシステムを使用して周囲音波形データを連続的にまたは周期的にキャプチャするように構成することができる。特定の実施形態では、携帯デバイスが周囲音の波形分析を行い、周囲波形データに基づいて呼出音の音量または振動モードなどのデバイス設定を調整することができる。特定の実施形態では、クライアントデバイスは、呼出音を周囲音レベルに一致するかまたはそれを僅かに超えるように自動的に対応させ、それによって呼出音が騒音の大きい環境でも聞き取れる可能性や静かな環境で適切なレベルになる可能性を高めることができる。特定の実施形態では、携帯デバイスの自己決定済み位置を利用してデバイス設定を調整することができる。例えば、ユーザのGPSによってユーザが映画館にいることが示される場合、デバイスは自動的に呼出音をオフにしてもよい。
【0014】
特定の実施形態では、ソーシャルネットワーキングシステムへのコンパクトで帯域効率のよい送信のために、携帯デバイスはキャプチャ済み周囲波形の波形フィンガープリントを生成することができる。特定の実施形態では、受信した波形フィンガープリントを、オブジェクト波形のデータベースと照合してもよい。例えば、ユーザが特定の位置に存在しており、ユーザの携帯デバイスによってアップロードされた波形フィンガープリントが、音データベースの特定の楽曲の記憶済みフィンガープリントと一致する場合、ソーシャルネットワーキングシステムは、ユーザが現在その楽曲を聴いていると決定してもよい。
【0015】
特定の実施形態では、データベース情報、波形照合、およびユーザのGPSデータの組み合わせを利用して、ユーザのデバイス設定を調整することができる。例えば、GPSデバイスは屋内では機能しないことが多い。したがって、ユーザの最後に報告された位置が映画館の付近であって映画館内ではない場合もある。ユーザデバイスの報告された位置が映画館の付近であり、ユーザの波形フィンガープリントが特定の映画のサウンドトラックと一致する場合、ソーシャルネットワーキングシステムは、ユーザの近くに存在する映画館の上映時間のオンラインデータベースにアクセスしてもよい。アップロードされた波形フィンガープリントからのタイムスタンプ、一致する映画、およびGPS位置に基づいて、ソーシャルネットワークは、ユーザが例えば、AMC30で「トゥルーグリット(True Grit)」の午後5時30分の上映を鑑賞していると決定することができる。したがってデバイスは、自動的に呼出音をオフにすることができる。
【0016】
さらに、特定の実施形態では、ソーシャルネットワーキングシステムがクライアントデバイスまたは携帯デバイスから波形フィンガープリントを受信し、波形フィンガープリントの分析を行い、向上させたソーシャル機能をデバイスのユーザに提供してもよい。特定の実施形態では、クライアントデバイスが決定したクライアントデバイス決定位置の精度を波形分析により高めることができる。例えば、ユーザが特定の現場にいる場合、ユーザの携帯デバイスによってキャプチャされた波形フィンガープリントが他のユーザによってアップロードされた波形フィンガープリントと一致する。他のユーザの位置のうちのいず
れかの位置が集中している場合、またはユーザの1人がチェックイン操作、イベントへの登録またはコメントによって自分がその現場にいるという明示的なネットワーク上の記述を行った場合、ソーシャルネットワーキングシステムは、ユーザの不正確な決定済み位置を更新しその精度を高めることができる。特定の実施形態では、携帯デバイスは、ソーシャルネットワーキングシステムから受信した位置に基づいてデバイスの設定値を調整することができる。
【0017】
特定の実施形態では、ソーシャルネットワーキングシステムからの情報を活用してデバイス設定を調整してもよい。特定の実施形態では、ユーザのプロファイルおよびソーシャルネットワーク上での行動からの情報を利用してユーザのデバイス設定を調整することができる。例えば、ユーザが公共図書館にチェックインした場合、デバイスは呼出音を自動的にオフにすることができる。あるいは、ユーザがスポーツイベントにチェックインまたはタグ付けされた場合、デバイスは呼出音の音量を上げてもよい。さらに、ソーシャルネットワーキングシステムの他のユーザからの情報を活用することができる。例えば、波形分析により複数のユーザが同じ位置に存在すると決定され、そのユーザのうちの1人が、コメント、チェックイン、自分の状況の更新、タグ付けなどによってイベントの種類に関する発信を行った場合、その位置に存在すると決定済みのすべてのユーザが自分のデバイス設定を自動的に変更されてもよい。
【0018】
図1に、例示のソーシャルネットワーキングシステムを示す。特定の実施形態では、ソーシャルネットワーキングシステムは、ユーザプロファイルデータおよびソーシャルグラフ情報をユーザプロファイルデータベース101に記憶することができる。特定の実施形態では、ソーシャルネットワーキングシステムは、ユーザイベントデータをイベントデータベース102に記憶することができる。例えば、ユーザは、クライアントアプリケーションにアクセスしてイベント名、時刻および位置を定義することによって新たなイベントを登録し、新たに作成されたイベントをイベントデータベース102に記憶させることができる。特定の実施形態では、ソーシャルネットワーキングシステムは、ユーザプライバシポリシデータをプライバシデータベース103に記憶することができる。特定の実施形態では、ソーシャルネットワーキングシステムは、地理データおよび位置データを位置データベース104に記憶することができる。特定の実施形態では、ソーシャルネットワーキングシステムは、様々な楽曲、テレビ番組、サウンドトラック、映画、演奏などの音波形、すなわち、音波形フィンガープリントを、音データベース105に記憶することができる。特定の実施形態では、データベース101、102、103、104および105はソーシャルネットワーキングシステムのフロントエンドに動作可能に接続されてもよい。特定の実施形態では、ソーシャルネットワーキングシステムは、アップロードされた波形フィンガープリントを音データベース105に記憶されている波形、すなわち、波形フィンガープリントと照合する波形照合アプリケーション118も含む。
【0019】
特定の実施形態では、フロントエンド120はネットワーククラウド121を通じてクライアントデバイス122と対話することができる。クライアントデバイス122は、一般に、コンピュータネットワークを通じて通信(例えば遠隔通信)するための機能を備えるコンピュータまたはコンピューティングデバイスである。クライアントデバイス122は、デスクトップコンピュータ、ラップトップコンピュータ、携帯情報端末(PDA)、車載または車外ナビゲーションシステム、スマートフォン、またはその他のセルラーまたは携帯電話、携帯ゲームデバイスなどの適切なコンピューティングデバイスであってもよい。クライアントデバイス122は、ウェブブラウザ(例えばマイクロソフトウィンドウズ(登録商標)インターネットエクスプローラ(Microsoft Windows(登録商標)Internet Explorer)、モジラファイアフォックス(Mozilla Firefox)、アップルサファリ(Apple Safari)、グーグルクローム(Google Chrome)、およびオペラ(Opera)など)または
専用クライアントアプリケーション(例えばアイフォン用のフェースブック(Facebook(登録商標)for iPhone(登録商標))など)などの1または複数のクライアントアプリケーションを実行して、コンピュータネットワークを通じてコンテンツにアクセスし、閲覧することができる。フロントエンド120は、ユーザがソーシャルネットワーキングシステムにアクセスすることができるようにするためにウェブまたはHTTPサーバ機能および他の機能を備えることができる。ネットワーククラウド121は、クライアントデバイス122がそれを通じてソーシャルネットワークシステムにアクセスすることができるネットワークまたはネットワークの集合(インターネットまたは企業内イントラネット、またはその両方の組み合わせなど)を一般に表す。
【0020】
特定の実施形態では、位置データベース104は、各場所が名前、地理的位置、およびメタ情報(最初にその場所を作成したユーザ、レビュー、コメント、チェックインアクティビティデータなど)を含む、場所の情報ベースを記憶することができる。場所は、システムの管理者および/またはシステムのユーザによって作成されてもよい。例えば、ユーザがクライアントアプリケーションにアクセスして場所名を定義することによって新たな場所を登録し、地理的位置を提供し、新たに作成された場所を位置データベース104に登録させることができる。前述のように、作成された場所はハブノードに対応してもよく、管理者は、場所に関する情報を補強する目的のためおよびユーザに配信する広告またはその他の提案を作成するためにハブノードを要する。特定の実施形態では、システムのフロントエンド120がユーザの要求に応じて場所のウェブページを構築し、提供することができる。いくつかの実施形態では、場所のウェブページは、ユーザがその場所に「いいね」を付与したりチェックインしたりするために選択可能な構成要素を含み得る。特定の実施形態では、位置データベース104は、チェックインに関連付けられたユーザの実際の地理的位置を識別する地理的位置情報データを記憶してもよい。例えば、インターネット接続されたコンピュータの地理的位置をコンピュータのIPアドレスによって識別することができる。例えば、セルラー機能、Wi−Fi機能および/またはGPS機能を備えた携帯電話の地理的位置は、基地局三角測量、Wi−Fi測位、および/またはGPS測位によって識別することができる。特定の実施形態では、位置データベース104は、複数の場所の地理的位置および付加的情報を記憶してもよい。例えば、場所は、地域企業、観光スポット(例えば米国カリフォルニア州サンフランシスコのユニオンスクエア)、大学、都市、国立公園などであってもよい。例えば、場所(例えば地域のコーヒーショップ)の地理的位置は、住所、地理座標の組(緯度および経度)、または他の場所への参照(例えば「駅の隣のコーヒーショップ」)であってもよい。例えば面積の広い場所(例えばヨセミテ国立公園)の地理的位置は、その場所の境界線に近似する形状(例えば円または多角形)および/またはその形状の中心であってもよい。例えば、場所の付加的情報は、その場所の営業時間、写真、またはユーザレビューであってもよい。特定の実施形態では、位置データベース104は、ユーザの位置データを記憶することができる。例えば、ユーザが場所(例えば新たなレストランまたはコーヒーショップ)を作成し、ソーシャルネットワーキングシステムが作成された場所を位置データベース104に記憶することができる。例えば、位置データベース104は、ユーザのチェックインアクティビティを記憶することができる。例えば、位置データベース104は、ユーザのGPS付き携帯デバイスによって提供されるユーザの地理的位置を記憶することができる。特定の実施形態では、ソーシャルネットワーキングシステムが、クライアントアプリケーション(上記参照)によって報告されたユーザのユーザプロファイル情報、チェックインアクティビティ、および/または地理的位置データに基づいて、ユーザの1または複数の経路を計算し、その1または複数の経路を位置データベース104に記憶することができる。例えば、ソーシャルネットワーキングシステムは、グーグルマップ(Google Map)などの地図サービスアプリケーションを使用して、またはユーザが職場まで車を運転する間のユーザのGPS付き携帯電話からの地理的位置データ点を使用して、ユーザの(ユーザプロファイルデータベース101に記憶されているユーザのユーザプロファイル情報に記載された
)自宅と職場との間のユーザの「通勤経路」を計算することができる。
【0021】
波形照合アプリケーション118は、クライアントデバイス122によってアップロードされた波形、すなわち波形フィンガープリントを、音データベース105内の波形、すなわち波形フィンガープリントと照合する。特定の実施形態では、波形照合アプリケーションは、高速フーリエ変換(FFT)または離散コサイン変換(Direct Cosine Transform:DCT)を使用した特徴検出を利用する。特定の実施形態では、波形照合のために周波数領域または時間領域の相互相関を使用する。特定の実施形態では、動的波形照合(dynamic waveform matching:DWM)を利用して、時間軸上で波形を変位させることができる。特定の実施形態では、波形照合アプリケーション118は、音データベース105内の波形ファイルの音フィンガープリントを利用する。本開示は、波形、すなわち波形フィンガープリント照合に適した任意の方法またはアルゴリズムを企図する。
【0022】
図2に、例示のクライアントデバイス122を示す。特定の実施形態では、クライアントデバイス122は、従来の携帯電話よりも高度なコンピューティング性能と接続性を提供する携帯電話であるスマートフォン(例えばアイフォン(iPhone)またはブラックベリー(Blackberry(登録商標)))であってもよい。これは、携帯電話と一体化した携帯型コンピュータとみなされる。特定の実施形態では、クライアントデバイス122はネットブックまたはタブレット型コンピュータ(例えばアイパッド(iPad(登録商標)))であってもよい。特定の実施形態では、クライアントデバイス122は無線接続を通じてネットワークに接続することができる。
【0023】
特定の実施形態では、クライアントデバイス122は、ハードウェア210およびソフトウェア220を備えることができる。特定の実施形態では、ハードウェア210は、例えば、プロセッサ211、メモリ212、ストレージ213、送受信機214、入出力デバイス215(例えばディスプレイ、タッチスクリーン、キーパッド、マイクロフォン、スピーカなど)、カメラ216、全地球測位システム(GPS)センサ217、センサハブ218、通知制御スイッチ219、RFIDリーダー241、RFIDセンサ242、加速度計243、光センサ244、マイクロフォン245(入出力ブロック215の一部であってもよい)などの任意の数のハードウェア構成要素を備えることができるが、これらには限定されない。本開示は、任意の適切なハードウェア構成要素を企図する。特定の実施形態では、ユーザのユーザデータの一部または全部をストレージ213に記憶することができる。
【0024】
特定の実施形態では、ソフトウェア220はオペレーティングシステム221を含むことができ、オペレーティングシステム221は、カーネル231および/または、クライアントデバイス122上で利用可能なハードウェア構成要素の一部に対応する任意の数のデバイスドライバ232を含むことができる。オペレーティングシステム221は、クライアントデバイス122の実際の種類に基づいてクライアントデバイス122のために選択されてもよい。例えば、クライアントデバイス122が携帯デバイス(例えばスマートフォン)である場合、オペレーティングシステム221は、例えばマイクロソフト(Microsoft)のウィンドウズモバイル(Windows Mobile)、グーグル(Google)のアンドロイド(Android(登録商標))、ノキア(Nokia)のシンビアン(Symbian)、アップル(Apple)のiOS、およびサムスン(Samsun)のバーダ(Bada)などのモバイルオペレーティングシステムであってもよいが、これらには限定されない。
【0025】
特定の実施形態では、クライアントデバイス122上で1または複数のソフトウェアアプリケーション223をホストおよび/または実行させることができる。特定の実施形態
では、これらはクライアントデバイス122にインストールされて常駐しているネイティブアプリケーションである。例えば、1つのアプリケーション(例えばグーグルマップ(Google Maps))によって、デバイスのユーザが地図を閲覧し、住所や事業所を検索し、道順を知ることができてもよく、第2のアプリケーションによって、デバイスのユーザが電子メールを読み、送信し、受信することができてもよく、第3のアプリケーション(例えばウェブブラウザ)によって、デバイスのユーザがインターネットの閲覧と検索を行うことができてもよく、第4のアプリケーションによって、デバイスのユーザがカメラ216を使用して写真撮影や録画をすることができてもよく、第5のアプリケーションによって、デバイスのユーザがVoIPおよび/またはセルラーネットワーク電話を送受信することができてもよい。特定の実施形態では、デバイスのユーザがクライアントデバイス122にプッシュ配信される通知を管理することができるようにするソフトウェアアプリケーション(例えば通知制御241)が存在してもよい。各ソフトウェアアプリケーション220は、ユーザインタフェースを有し、1または複数の特定の機能を実装してもよい。各ソフトウェアアプリケーション220は、個々の機能を実装する1または複数のソフトウェアモジュールを含み得る。通知制御241を含むソフトウェアアプリケーション220の実行可能コードは、クライアントデバイス122上のコンピュータ可読および非一時的媒体(例えばストレージ213またはメモリ212)に記憶されてもよい。
【0026】
マイクロフォン245およびセンサハブ218には音キャプチャプリケーション246が動作可能に接続されている。特定の実施形態では、音キャプチャアプリケーション246は、音データを連続的にキャプチャし、音特徴検出アルゴリズム(FFT/DCTなど)を使用してそれを波形フィンガープリントに変換する。特定の実施形態では、音キャプチャアプリケーション246は、波形データを周期的にのみキャプチャし、そのデータを波形フィンガープリントに変換する。特定の実施形態では、センサハブ218が、マイクロフォン245を通じて波形データをキャプチャし、その波形を、後で音キャプチャアプリケーション245によるフィンガープリント生成に使用するためにストレージ213に記憶する。特定の実施形態では、音キャプチャアプリケーション246は、ユーザが位置を変更したときにのみ実行される。特定の実施形態では、音キャプチャアプリケーション246は、検出された音量が所定のデシベル数を超えたときにのみ実行される。本開示は、周囲音データをキャプチャする任意の適切な方法を企図する。
【0027】
図3に、クライアントデバイス122またはソーシャルネットワーキングシステムが、クライアントデバイス122の設定を調整するか否か、およびどのように設定を調整するかを決定するために利用可能な例示のデータソースを示す。データソース301〜306は、クライアントデバイス122がクライアントデバイス122のデバイス設定を調整するために単独または互いに任意の組み合わせで利用されてもよい。クライアントデバイス122がソーシャルネットワーキングシステムと対話を行わずに、周囲音301および自己決定済みデバイス位置302が利用されてもよい。例えば、クライアントデバイス122の設定を調整する基本的方法は、周囲音301にのみ基づく。特定の実施形態では、クライアントデバイス122は、周囲音波形をキャプチャし、その環境の平均周囲騒音レベル(例えば95デシベル)を計算する。特定の実施形態では、クライアントデバイス122は呼出音量を周囲騒音レベルと一致するように、または周囲騒音レベルより僅かに高くなるように調整する。特定の実施形態では、周囲騒音が所定の閾値よりも大きいかまたは小さい場合、クライアントデバイス122は振動モードをオンにする。
【0028】
特定の実施形態では、自己決定済みデバイス位置302とオンラインデータベース306とを組み合わせて利用してデバイス設定を調整する。例えば、クライアントデバイス122が特定の現場に関連付けられた経度/緯度位置を報告した場合、クライアントデバイス122は現場の種類に基づいて設定値を調整してもよい。例えば、クライアントデバイス122の自己決定済み位置が映画館に関連付けられている場合、クライアントデバイス
122は呼出音をオフにするか、または振動モードを有効にする。特定の実施形態では、オンラインデータベース306はソーシャルネットワーキングシステム内の1または複数のサーバであってもよい。特定の実施形態では、オンラインデータベース306は、グーグルマップ(Google Maps)、イェルプ(Yelp)またはフォースクエア(FourSquare)などの外部の第三者データベースであってもよい。特定の実施形態では、クライアントデバイス122は、ソーシャルネットワーキングシステムからのアクションなしにオンラインデータベース306にアクセスする。特定の実施形態では、クライアントデバイス122は、ソーシャルネットワーキングシステムを通じてオンラインデータベース306にアクセスする。本開示は、オンラインデータベース306への任意の適切なアクセス方法および任意の種類のオンラインデータベース306を企図する。特定の実施形態では、クライアントデバイス122のデバイス設定を調整する際に明示的位置303を利用してもよい。明示的位置は、チェックイン、コメント、出欠返信依頼、タグなどにより、クライアントデバイス122のユーザが自ら申告したものでもよく、またはユーザをチェックイン、ユーザを写真でタグ付けするなどにより他のユーザが申告したものでもよい。例えば、ソーシャルネットワーキングシステムは、ソーシャルネットワーク上でのユーザのアクションから、クライアントデバイス122が特定の位置に存在するかまたは特定のイベントに参加していると決定し、その決定に基づいてデバイス設定を調整することができる。例えば、ユーザは、結婚式またはナイトクラブなど、ソーシャルネットワーク上のイベントにチェックインすることができる。それに応じて、ソーシャルネットワーキングシステムはクライアントデバイス122に対してコマンドを発して呼出音量をそれぞれ、小さくまたは大きくすることができる。本開示は、デバイス設定を調整するためにネットワーク上でのアクションを利用する任意の方法を企図する。
【0029】
特定の実施形態では、波形に基づく位置304を利用してデバイス設定を調整してもよい。例えば、クライアントデバイス122によってアップロードされた音波形フィンガープリントが、他のユーザによってアップロードされた音波形フィンガープリントと一致する場合、ソーシャルネットワーキングシステムは、クライアントデバイス122の位置を訂正し、その訂正された位置に基づいてデバイス設定を調整することができる。特定の実施形態では、他の検出されたユーザの明示的な位置情報303を利用してデバイス設定を調整してもよい。この特定の実施形態について、図4図4Aおよび図5を参照しながらさらに説明する。
【0030】
特定の実施形態では、データソース301〜306の様々な組み合わせを利用してクライアントデバイス122の設定を調整することができる。例えば、周囲音301を利用して音オブジェクトデータベース105内のオブジェクトと照合し、検出済み音オブジェクト305を生成する。この検出済み音オブジェクトを、自己決定済み位置302、明示的位置303、または波形に基づく位置304と共に利用して、クライアントデバイス122の位置の精度をさらに向上させることができる。これに代えて、またはこれに加えて、オンラインデータベース306を利用してクライアントデバイス122の位置の精度をさらに向上させ、その後でクライアントデバイス122のデバイス設定を調整することもできる。例えば、クライアントデバイスの自己決定済み位置302によって公園付近に存在することを示されるユーザは、その公園で演奏しているバンドの楽曲と一致する音波形フィンガープリントをキャプチャし、アップロードしてもよい。クライアントデバイス122またはそれに代えてソーシャルネットワーキングシステムが、公園付近の演奏のリストを含むオンラインデータベース306にアクセスすることができる。検出済み音オブジェクト305とオンラインデータベース306内の演奏の1つとの一致を見つけた場合、ソーシャルネットワーキングシステムは、そのユーザが実際に公園に存在しライブ演奏を聴いていることを知り、呼出音量を「高」に調整し、振動モードをオンにすることができる。本開示は、クライアントデバイス122の設定を調整するためのデータソース301〜306の任意の適切な組み合わせを企図する。
【0031】
図4に、例示の地理的領域400と、ソーシャルネットワーキングシステムの様々なユーザ410、420および430の地図上の自己報告済み位置とを示す。特定の実施形態では、自己報告済み位置は、クライアントデバイス122内のGPS受信機チップによって計算される。特定の実施形態では、位置はTDOAまたはその他の位置決定アルゴリズムによって計算される。特定の実施形態では、地理的領域を様々な象限に区分化することができ、ユーザ波形フィンガープリントを、同じ象限内の他のユーザによってアップロードされた波形フィンガープリントと突き合わせて検索することができる。特定の実施形態では、検索領域は、アップロードされたフィンガープリントの振幅または絶対音量に基づく。例えば、アップロードされたフィンガープリントが、ユーザの環境における周囲音が極端に大きいことを示している場合、異なる位置から同じ音を報告しているユーザの数が多いと考えられるため、検索領域を狭めてもよい。特定の実施形態では、ソーシャルネットワーキングシステムはまず、ユーザの友達らによって同時にアップロードされたフィンガープリントを、それらの友達が一緒にいる可能性が高いという想定に基づき、検索する。特定の実施形態では、空間分割アルゴリズムを使用して検索空間を決定してもよい。特定の実施形態では、八分木空間分割アルゴリズムを利用して検索空間に対処する。特定の実施形態では、kd木を使用する。特定の実施形態では、四分木またはその他の任意のグリッド式の方法を使用する。本開示は、ユーザによってアップロードされたフィンガープリントの検索領域を生成する任意の適切な方法を企図する。
【0032】
図4では、3人のユーザの自己決定済み位置が地図上に記されている。2人のユーザ410および420が、自分達の位置がフォックスプラザ内の互いに数メートル以内のところであると報告する。もう1人のユーザ430が、自分の位置が通りを隔てた「マーベラス」レストラン付近であると報告する。ユーザ410、420および430は、ソーシャルグラフ上で相互間の明示的なエッジ接続を有していてもいなくてもよい。この例では、ソーシャルネットワーキングシステムは、3人のユーザすべてが生成した波形フィンガープリントの照合を行っている。
【0033】
図4Aに、ユーザノード1で表されたユーザ410、ユーザノード2で表されたユーザ420、およびユーザノード3で表されたユーザ430を含むソーシャルグラフの一部の例を示す。3人のユーザ全員からの波形フィンガープリントが一致するため、ソーシャルネットワーキングシステムはこれらのユーザが概して同じ辺りにいるものと想定してもよい。特定の実施形態では、ソーシャルネットワーキングシステムは、3つの波形フィンガープリントすべての振幅を考慮に入れる。例えば、3つの波形フィンガープリントがすべて同じ音量であり、その音量が低い場合、ソーシャルネットワークは、ユーザ430のユーザ位置が誤っているものと推測し、ユーザ430のクライアントデバイス122の訂正された位置を送信してもよい。一方、3つの波形フィンガープリントがすべて同じ音量であり、その音量が極めて高い場合、ソーシャルネットワークは、訂正した位置を送信しなくてもよい。
【0034】
図4Aにおいて、ユーザノード1は、イベントページ、この場合は「ジョンとジェーンの結婚式」のために、イベントへの出欠返信依頼を送る、任意の位置にチェックインする、または位置またはイベントにタグ付けされているなどの明示的なネット上のアクションを行っている。したがって、ソーシャルネットワーキングシステムは、ユーザノード1によって送信されたフィンガープリントに一致する波形フィンガープリントを発見すると、一致するフィンガープリントを送信しているユーザも同じ位置におり、同じイベントに参加していることを即座に知る。したがって、ユーザノード2およびユーザノード3を同じ位置に配置し、訂正した位置をユーザノード3(図4のユーザ430)に送信することができる。特定の実施形態では、イベントの種類を使用してユーザのデバイス設定を変更するか否かを決定することができる。例えば、ソーシャルネットワーキングシステムは、ユ
ーザノード1、ユーザノード2およびユーザノード3が結婚式に出席していることを知ったとすると、ソーシャルネットワーキングシステムは、クライアントデバイス設定を「消音」または「振動」に自動的に変更するコマンドを送信してもよい。
【0035】
図5に、周囲波形キャプチャに基づいてデバイス設定を調整する例示の方法を示す。ステップ501で、クライアントデバイス122のマイクロフォン245が音波形を記録する。前述のように、音キャプチャアプリケーション246を実行しているプロセッサ221、またはセンサハブ218内の低電力プロセッサによって波形の記録が行われてもよい。特定の実施形態では、クライアントデバイス122は周囲音を絶えず記録し、ストレージ213に記憶する。特定の実施形態では、クライアントデバイス122は、分析のために周囲音を周期的に記録する。特定の実施形態では、クライアントデバイス122は、GPSセンサ217またはその他の位置決定アルゴリズムを通じて位置の変化が検出されるごとに周囲音を記録する。特定の実施形態では、クライアントデバイス122は、音が一定の音量を超えるごとに周囲音をキャプチャする。特定の実施形態では、ソーシャルネットワーキングアプリケーションを使用する、ソーシャルネットワーキングウェブサイトを閲覧する、または任意の位置にチェックインするなど、ソーシャルネットワークとのユーザ対話をトリガとして音キャプチャステップ501が実行される。本開示は、音キャプチャの開始またはタイミングの任意の適切な方法を企図する。
【0036】
ステップ502で、音キャプチャアプリケーション246は波形に対して特徴検出を行い、「波形DNA」とも呼ぶ波形特性を分析する。特徴検出ステップ502は、特定の実施形態では、音波形のスパイク、特定の周波数帯の優勢または欠如、または波形振幅のその他の傾向を特定することを含んでもよい。特定の実施形態では、特徴検出はFFTまたはDCTによって実装される。特定の実施形態では、その他の周波数領域変換を利用して、波形に高音域または低音域がどの程度存在するかなど波形の重要な特性を特定してもよい。特定の実施形態では、音キャプチャアプリケーション246は離散ウェーブレット変換を使用する。特定の実施形態では、音キャプチャアプリケーション246は短時間フーリエ変換を利用する。特定の実施形態では、音キャプチャアプリケーション246は波形の基本周波数を検出する。特定の実施形態では、音キャプチャアプリケーション246は、キャプチャ済み波形から雑音成分をフィルタリングして除去する。特定の実施形態では、音キャプチャアプリケーション246は、イベント開始検出の一形式を利用して、キャプチャされた波形のビートモデルを作成する。特定の実施形態では、音キャプチャアプリケーション246は、波形のビートヒストグラムを生成する。本開示は、音波形特徴検出の任意の適切な方法またはアルゴリズムを企図する。
【0037】
ステップ503で、1または複数の波形について音「フィンガープリント」を生成する。フィンガープリントは、波形、すなわち波形のセットを集約する小さくロバスト表現である。例えば、特定の実施形態では、毎秒1サンプルで周期的に波形をキャプチャし、分析してもよい。キャプチャ済み各波形を特徴検出のために分析することができ、音キャプチャアプリケーション246は、類似した特徴を有するいくつかの波形(恐らくは100〜200個の波形)を統合し、楽曲、映像、または映画のサウンドトラックを表す統合波形のフィンガープリントを生成する。特定の実施形態では、音キャプチャアプリケーション246は、ベクトル量子化を使用して代表ベクトルを波形フィンガープリントとして生成する。特定の実施形態では、音キャプチャアプリケーション246は、シャザム(Shazam)の楽曲認識ソフトウェアで使用されているものなど、スペクトログラムピークを、キャプチャ済み波形フィンガープリントとして利用する。波形フィンガープリントを生成する技法は当技術分野において周知である。本開示は、キャプチャ済みの1または複数の波形のフィンガープリントを生成する任意の適切な方法を企図する。
【0038】
ステップ504で、クライアントデバイス122はステップ503で生成されたフィン
ガープリントをサーバに送信する。特定の実施形態では、サーバはソーシャルネットワーキングシステムのシステムフロントエンド120である。特定の実施形態では、クライアントデバイス122は音照合アプリケーション118を実行する1または複数のサーバに直接フィンガープリントを送信する。本開示は、波形フィンガープリントを音照合アプリケーション118に送信する任意の適切な機構を企図する。ステップ505で、音照合アプリケーション118を実行する1または複数のサーバは、送信されたフィンガープリントを受信する。
【0039】
ステップ506で、受信したフィンガープリントが音データベース105に記憶されているフィンガープリントのデータベースと突き合わせて検索される。特定の実施形態では、音データベース105は様々な異なる形式のフィンガープリントを記憶するので、異なる方法によって生成されたフィンガープリントであっても記憶されているフィンガープリントと比較することができる。特定の実施形態では、音データベース105は波形を記憶し、記憶されている波形のフィンガープリントが動的に生成される。一致するものが見つからない場合、プロセスはステップ512で終了する。一致するものが見つかった場合、ステップ507で、一致するフィンガープリントに関連付けられたオブジェクトに関連する情報がソーシャルネットワーキングシステムから引き出される。特定の実施形態では、この情報は音データベース105に記憶される。特定の実施形態では、この情報はソーシャルネットワーキングシステム内の別個のオブジェクトデータベースまたはノードデータベースに記憶されてもよい。特定の実施形態では、この情報は音データベース105に記憶済みの波形に付加されるメタデータであってもよい。この情報は、アーチスト、楽曲名、アルバム名、録音日などの一般的な特性、および、ユーザの友達のうちの何人の友達が「いいね」を提供し、コメントを寄せ、またはその他の方法でオブジェクトと対話したかなどのソーシャルネットワーク上の特性を含むことができる。特定の実施形態では、この情報はそのアーチストが演奏する他の楽曲またはそのジャンルの他の種類の楽曲であってもよい。本開示は、一致する波形フィンガープリントに関連付けられたオブジェクトに関連する任意の種類の情報を企図する。
【0040】
ステップ508で、ソーシャルネットワーキングシステムは、ソーシャルネットワーキングシステム自体の内部データベースまたは第三者オンラインデータベースで、検出オブジェクトに関する位置情報を検索する。例えば、ソーシャルネットワーキングシステムはクライアントデバイス122の自己決定済み位置を知っているため、ソーシャルネットワーキングシステムは検出された音オブジェクトを、一般的な近隣に関連付けられたオンライン音データベース内の項目と照合することによって、クライアントデバイス122の位置の精度を向上させることができる。例えば、ユーザが映画館に存在するという明確なネットワーク上の記載が存在しない場合、従来は、ソーシャルネットワーキングシステムは、ユーザが映画館内に存在するのか映画館付近に存在するのかを決定する術がなかった。しかし、ソーシャルネットワーキングシステムが、クライアントデバイス122によってキャプチャされた音波形フィンガープリントを特定の映画と照合し、その特定の映画とクライアントデバイス122位置とをクライアントデバイス122の位置の近くに存在する映画館の上映時間のリストと照合した場合、ソーシャルネットワーキングシステムは、ユーザが特定の映画館で特定の映画を鑑賞しているということを確証することができる。
【0041】
ステップ509で、サーバはこの情報をクライアントデバイス122に送信し、ステップ510でこの情報がクライアントデバイス122で受信される。次に、クライアントデバイス122はステップ511で、呼出音量を下げる、または振動モードを有効にするなど、クライアントデバイス自体のデバイス設定を調整することができる。
【0042】
音オブジェクトデータベース105は、楽曲のみには限定されない。例えば、ソーシャルネットワーキングシステムは、特定のユーザが映画またはテレビ番組を観ているかを決
定することができる。特定の実施形態では、音オブジェクトデータベース105は、ソーシャルネットワークのユーザの音声ごとにフィンガープリントを記憶する。したがって、事前定義された規則に基づいて検出された特定のユーザの音声に基づき、デバイス設定を調整することが可能である。例えば、クライアントデバイス122のユーザは、ユーザの雇用主がいるところでは自分のクライアントデバイス122を消音モードに設定する明示的規則を設定することができる。これにより、サーバが、検出された音声を音データベース105内のユーザの雇用主の音声と照合する場合、デバイスは自動的に消音モードになることができる。
【0043】
図6に、検出された波形に基づいて精度を向上させたユーザの位置に基づきデバイス設定を調整する例示の方法を示す。この方法は、ステップ606までは図5の方法とほぼ同じである。特定の実施形態では、ステップ606〜610をステップ505〜509とほぼ同時にまたは並行して実行することができる。
【0044】
ステップ606で、音照合アルゴリズム246は、アップロードされた波形を、アップロードしているユーザと同じ概略時間および同じ領域から引き出す。位置は、GPS座標、TDOA、またはチェックインなどの自己報告済み位置によって確かめられてもよい。特定の実施形態では、多数のフィンガープリントがアップロードされている領域については地理的検索領域が小さくなる。特定の実施形態では、検索領域はアップロードされたフィンガープリントの振幅または絶対音量に基づく。例えば、アップロードされたフィンガープリントが、ユーザの環境における周囲音が極端に大きいことを示す場合、様々な異なる位置から同じ音を報告しているユーザの数が多いと考えられるため、検索領域を小さくしてもよい。特定の実施形態では、ソーシャルネットワーキングシステムはまず、フィンガープリントを同時にアップロードしたユーザの友達らは一緒にいる可能性がより高いという想定に基づき、ユーザの友達らが同時にアップロードしたフィンガープリントを検索する。特定の実施形態では、フィンガープリントをアップロードしている個々のユーザが地図またはグリッド上にプロットされる。このような実施形態では、空間分割アルゴリズムを利用して検索空間を決定してもよい。特定の実施形態では、八分木空間分割アルゴリズムを使用して検索空間に対処する。特定の実施形態では、kd木を使用する。特定の実施形態では、四分木またはその他の任意のグリッド式の方法を使用する。本開示は、他のユーザによってアップロードされたフィンガープリントの検索領域を生成する任意の適切な方法を企図する。
【0045】
ステップ608で、一致する1または複数のフィンガープリントを取得すると、ソーシャルネットワーキングシステムは、その1または複数の一致するフィンガープリントに関連付けられた位置データを引き出す。例えば、特定のユーザのアップロードされたフィンガープリントが3人の他のユーザのアップロードされたフィンガープリントと一致し、その3人の他のユーザのうちの1人が特定の位置にチェックインした場合、そのチェックインの位置データを引き出し、チェックインしなかった3人のユーザのクライアントデバイスに送信する。特定の実施形態では、ソーシャルネットワーキングシステムは、一致する波形をアップロードしているユーザらの地理的位置を平均するか、または一致する波形をアップロードしているユーザらのすべての位置に相当する1点を求めてもよい。例えば、3人の他のユーザのアップロードした音フィンガープリントがその特定のユーザのアップロードしたフィンガープリントと一致する場合、ソーシャルネットワーキングシステムは、3人の他のユーザの位置に相当する1点を計算してもよい。特定の実施形態では、ソーシャルネットワーキングシステムは位置の外れ値を検索し、例えば一致するアップロードされたフィンガープリントのある4人のユーザのうちの3人が極めて近く、1人が数百フィート(数十メートル)離れている場合、ソーシャルネットワーキングシステムは外れ値ユーザの位置が不正確であると推測してもよい。ステップ609で、ステップ608の位置データがクライアントデバイス122に送信され、ステップ610でクライアントデバ
イス122によって受信される。
【0046】
ステップ611で、クライアントデバイス122は受信した位置データに基づいてクライアントデバイス自体のデバイス設定を調整する。特定の実施形態では、この設定には、呼出音量の調整、振動の有効化または無効化、画面輝度の調整、様々な無線接続(ブルートゥース(Bluetooth(登録商標))、ワイファイ(Wi−Fi)、ワイマックス(WiMax)、近距離無線通信、またはセル無線)の有効化または無効化、デバイスのロックまたはロック解除、音録音の有効化などが含まれ得る。本開示は、デバイス設定を変更する任意の適切な方法を企図する。
【0047】
特定の実施形態は、1または複数のコンピュータシステム上に実装されてもよい。図7に、例示のコンピュータシステム700を示す。特定の実施形態では、1または複数のコンピュータシステム700が、本開示に記載され、図示される1または複数の方法の1または複数のステップを実行する。特定の実施形態では、1または複数のコンピュータシステム700が、本開示に記載され、図示される機能を提供する。特定の実施形態では、1または複数のコンピュータシステム700上で実行されるソフトウェアが、本明細書に記載され、図示される1または複数の方法の1または複数のステップを実行するか、または本明細書に記載され、図示される機能を提供する。特定の実施形態は、1または複数のコンピュータシステム700の1または複数の部分を含む。
【0048】
本開示は、任意の適合する数のコンピュータシステム700を企図する。本開示は、任意の適切な物理的形態を有するコンピュータシステム700を企図する。例として、コンピュータシステム700は、組込コンピュータシステム、システムオンチップ(SOC)、シングルボードコンピュータ(SBC)、(例えばコンピュータオンモジュール(COM)またはシステムオンモジュール(SOM)など)、デスクトップコンピュータシステム、ラップトップまたはノートブックコンピュータシステム、対話型キオスク、メインフレーム、メッシュ型コンピュータシステム、携帯電話、携帯情報端末(PDA)、サーバ、またはこれらのうちの2以上の組み合わせであってもよいが、これらには限定されない。適切であれば、コンピュータシステム700は1または複数のコンピュータシステム700を含むことができ、単独型または分散型、複数の場所にわたって設置されたもの、複数のマシンにわたって設置されたもの、または1または複数のネットワーク内の1または複数のクラウドコンピュータを含むクラウドに常駐するものでもよい。適切であれば、1または複数のコンピュータシステム700が、実質的な空間的または時間的な限定なしに、本明細書に記載され、図示される1または複数の方法の1または複数のステップを実行することができる。例として、1または複数のコンピュータシステム700は、本明細書に記載または図示する1または複数の方法の1または複数のステップを、リアルタイムまたはバッチモードで実行してもよいが、これには限定されない。1または複数のコンピュータシステム700は、適切であれば、本開示に記載または図示する1または複数の方法の1または複数のステップを、異なる時点または異なる場所で実行してもよい。
【0049】
特定の実施形態では、コンピュータシステム700は、プロセッサ702、メモリ704、ストレージ706、入出力(I/O)インタフェース708、通信インタフェース710、およびバス712を含む。本開示では、特定の構成の特定の数の特定の構成要素を有する特定のコンピュータシステムについて説明および図示しているが、本開示は、任意の構成の任意の適切な数の任意の適切な構成要素を有する任意の適切なコンピュータシステムを企図している。
【0050】
特定の実施形態では、プロセッサ702は、コンピュータプログラムを構成する命令などの命令を実行するためのハードウェアを備える。適切であれば、プロセッサ702は1または複数の算術演算論理ユニット(ALU)を含むことができ、マルチコアプロセッサ
であってもよく、1または複数のプロセッサ702を含んでもよい。本開示では、特定のプロセッサについて記載し、図示しているが、本開示は任意の適切なプロセッサを企図している。
【0051】
特定の実施形態では、メモリ704は、プロセッサ702が実行するための命令またはプロセッサ702が操作するためのデータを記憶するためのメインメモリを含む。1または複数のメモリバス(各バスがアドレスバスとデータバスとを含み得る)によって、プロセッサ702をメモリ704に結合することができる。バス712は、以下に述べるように、1または複数のメモリバスを含み得る。特定の実施形態では、1または複数のメモリ管理ユニット(MMU)が、プロセッサ702とメモリ70との間に常駐し、プロセッサ702によって要求されるメモリ704へのアクセスを容易にする。特定の実施形態では、メモリ704はランダムアクセスメモリ(RAM)を含む。このRAMは、適切であれば揮発性メモリであってもよい。適切であれば、このRAMは、ダイナミックRAM(DRAM)またはスタティックRAM(SRAM)であってもよい。さらに、適切であれば、このRAMはシングルポートまたはマルチポートRAMであってもよい。本開示では、任意の適切なRAMを企図している。メモリ704は、適切であれば、1または複数のメモリ704を含むことができる。本開示では、特定のメモリについて記載し、図示しているが、本開示は任意の適切なメモリを企図している。
【0052】
特定の実施形態では、ストレージ706はデータまたは命令のための大容量ストレージを含む。例として、ストレージ706はHDD、フロッピー(登録商標)ディスクドライブ、フラッシュメモリ、光ディスク、磁気光ディスク、磁気テープまたはユニバーサルシリアルバス(USB)ドライブ、またはこれらのうちの2以上の組み合わせを含み得るが、これらには限定されない。ストレージ706は、適切であれば、取り外し可能または取り外し不能(または固定)媒体を含むことができる。ストレージ706は、適切であれば、コンピュータシステム700の内部ストレージでも外部ストレージでもよい。特定の実施形態では、ストレージ706は不揮発性の固体メモリである。特定の実施形態では、ストレージ706は読み出し専用メモリ(ROM)を含む。本開示では、任意の適切な物理的形態の大容量ストレージ706を企図している。ストレージ706は、適切であれば、プロセッサ702とストレージ706との間の通信を容易にする1または複数の記憶制御ユニットを含み得る。適切であれば、ストレージ706は1または複数のストレージ706を含むことができる。本開示では特定のストレージについて記載し、図示しているが、本開示は任意の適切なストレージを企図している。
【0053】
特定の実施形態では、I/Oインタフェース708は、コンピュータシステム700と1または複数のI/Oデバイスとの間の通信のための1または複数のインタフェースを提供するハードウェア、ソフトウェア、またはその両方を含む。コンピュータシステム700は、適切であれば、これらのI/Oデバイスの1または複数を含み得る。これらのI/Oデバイスの1または複数のI/Oデバイスは、人間とコンピュータシステム700との間の通信を可能にすることができる。例として、I/Oデバイスはキーボード、キーパッド、マイクロフォン、モニタ、マウス、プリンタ、スキャナ、スピーカ、静止画像カメラ、スタイラス、タブレット、タッチスクリーン、トラックボール、ビデオカメラ、その他の適切なI/Oデバイスまたはこれらのうちの2以上の組み合わせを含むことができるが、これらには限定されない。I/Oデバイスは、1または複数のセンサを含み得る。本開示は、任意の適切なI/Oデバイスおよびそれらのための任意の適切なI/Oインタフェース708を企図している。適切であれば、I/Oインタフェース708は、プロセッサ702がこれらのI/Oデバイスの1または複数を駆動することができるようにする1または複数のデバイスドライバまたはソフトウェアドライバを含み得る。I/Oインタフェース708は、適切であれば、1または複数のI/Oインタフェース708を含むことができる。本開示では、特定のI/Oインタフェースについて記載し、図示しているが、本
開示は任意の適切なI/Oインタフェースを企図している。
【0054】
特定の実施形態では、通信インタフェース710は、コンピュータシステム700と1または複数の他のコンピュータシステム700または1または複数のネットワークとの間の通信(例えばパケット方式の通信など)のための1または複数のインタフェースを提供するハードウェア、ソフトウェアまたはその両方を含む。例として、通信インタフェース710は、イーサネット(登録商標)(Ethernet(登録商標))またはその他の有線ネットワークとの通信のためのネットワークインタフェースコントローラ(NIC)またはネットワークアダプタ、または、Wi−Fiネットワークなどの無線ネットワークとの通信のための無線ネットワークインタフェースコントローラ(WNIC)との通信のためのネットワークインタフェースコントローラ(NIC)または無線アダプタを含み得るが、これらには限定されない。本開示では、任意の適切なネットワークおよびそのための任意の適切な通信インタフェース710を企図している。例として、コンピュータシステム700は、アドホックネットワーク、パーソナルエリアネットワーク(PAN)、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、または、インターネットの1または複数の部分、またはこれらのうちの2以上の組み合わせと通信し得るが、これらには限定されない。これらのネットワークのうちの1または複数のネットワークの1または複数の部分は、有線または無線であってもよい。例として、コンピュータシステム700は、無線PAN(WPAN)、(例えばブルートゥース(Bluetooth)WPANなど)、WI−FIネットワーク、WIMAXネットワーク、セルラー電話ネットワーク(例えばグローバルシステムフォーモバイルコミュニケーションズ(Global System for Mobile Communication:GSM(登録商標))ネットワーク)、またはその他の適切な無線ネットワーク、またはこれらのうちの2以上の組み合わせと通信することができる。コンピュータシステム700は、適切であれば、これらのネットワークのいずれかに対して任意の適切な通信インタフェース710を含むことができる。通信インタフェース710は、適切であれば1または複数の通信インタフェース710を含み得る。本開示では特定の通信インタフェースについて記載し、図示しているが、本開示は任意の適切な通信インタフェースを企図している。
【0055】
特定の実施形態では、バス712は、コンピュータシステム700の構成要素を互いに結合するハードウェア、ソフトウェアまたはその両方を含む。バス712は、適切であれば1または複数のバス712を含むことができる。本開示では、特定のバスについて記載し、図示しているが、本開示は任意の適切なバスまたは相互接続部を企図している。
【0056】
本開示でコンピュータ可読記憶媒体という場合、それは1または複数の非一時的な有形のコンピュータ可読記憶媒体プロセス構造体を包含する。例として、コンピュータ可読記憶媒体は、適切であれば、半導体ベースまたはその他の集積回路(IC)、(例えばフィールドプログラマブルゲートアレイ(FPGA)または特殊用途向けIC(ASIC))、ハードディスク、HDD、ハイブリッドハードドライブ(HHD)、光ディスク、光ディスクドライブ(ODD)、磁気光ディスク、磁気光ドライブ、フロッピーディスク、フロッピーディスクドライブ(FDD)、磁気テープ、ホログラフィック記憶媒体、半導体ドライブ(SSD)、RAMドライブ、セキュアデジタル(SD)カード、SDドライブ、またはその他の適切なコンピュータ可読記憶媒体、またはこれらのうちの2以上の組み合わせを含むことができるが、これらには限定されない。本明細書において、コンピュータ可読記憶媒体という場合、それは米国特許法101条(35U.S.C.§101)の保護の対象として適格でない媒体を含まない。本明細書において、コンピュータ可読記憶媒体という場合、それは米国特許法101条の保護の対象として適格でない限りにおいて、信号送信(電気信号または電磁信号自体の伝播など)の一時的形態を含まない。コンピュータ可読非一時的記憶媒体は、適切であれば、揮発性、不揮発性または、揮発性と不揮
発性の組み合わせであってもよい。
【0057】
本開示では、任意の適切なストレージを実装する1または複数のコンピュータ可読記憶媒体を企図している。特定の実施形態では、コンピュータ可読記憶媒体は、適切であれば、プロセッサ702の1または複数の部分(例えば1または複数の内部レジスタまたはキャッシュなど)、メモリ704の1または複数の部分、ストレージ706の1または複数の部分、またはこれらの組み合わせを実装する。特定の実施形態では、コンピュータ可読記憶媒体は、RAMまたはROMを実装する。特定の実施形態では、コンピュータ可読記憶媒体は、揮発性または持続性メモリを実装する。特定の実施形態では、1または複数のコンピュータ可読記憶媒体はソフトウェアを具現化する。本明細書において、ソフトウェアという場合、それは、適切であれば、1または複数のアプリケーション、バイトコード、1または複数のコンピュータプログラム、1または複数の実行ファイル、1または複数の命令、論理、マシンコード、1または複数のスクリプト,またはソースコードを包含することができ、その逆も当てはまる。特定の実施形態では、ソフトウェアは1または複数のアプリケーションプログラミングインタフェース(API)を含む。本開示では、任意の適切なプログラミング言語またはプログラミング言語の組み合わせで記述またはその他の方法で表された任意の適切なソフトウェアを企図している。特定の実施形態では、ソフトウェアはソースコードまたはオブジェクトコードとして表される。特定の実施形態では、ソフトウェアは、例えばC、パール、またはこれらの適切な拡張版などのハイレベルプログラミング言語で表される。特定の実施形態では、ソフトウェアは、アセンブリ言語(またはマシンコード)などのローレベルプログラミング言語で表される。特定の実施形態では、ソフトウェアはJava(登録商標)、CまたはC++で表される。特定の実施形態では、ソフトウェアはハイパーテキストマークアップ言語(HTML)、拡張マークアップ言語(XML)またはその他の適切なマークアップ言語で表される。
【0058】
本明細書において、「または(or)」は、別様に明記する場合または文脈により別様に示される場合を除き、包含的であり、排他的ではない。したがって、本明細書において「AまたはB」は、別様に明記する場合または文脈により別様に示される場合を除き、「AまたはB、またはその両方」を意味する。また、「および(and)」は、別様に明記する場合または文脈により別様に示される場合を除き、共同と個別的の両方である。したがって、本開示において「AおよびB」は、別様に明記する場合または文脈により別様に示される場合を除き、「AとBとが共同して、またはAとBとが個別に」であることを意味する。
【0059】
本開示は、本開示に記載の例示の実施形態に対する、当業者が理解すると考えられるすべての変更、代替、変形、改変および修正を包含する。同様に、適切な場合には、添付の特許請求の範囲は、本開示に記載の例示の実施形態に対する、当業者が理解すると考えられるすべての変更、代替、変形、改変および修正を包含する。さらに、添付の特許請求の範囲において、特定の機能を、実行するように適合化された(adapted to)、実行するように設定された(arranged to)、実行可能な(capable of)、実行するように構成された(configured to)、実行可能にされた(enabled to)、実行するように動作可能な(operable to)、または、実行するように作動可能な(operative to perform)デバイスまたはシステム、またはデバイスまたはシステムの構成要素という場合、それはデバイス、システム、構成要素またはその特定の機能が起動、オン、またはロック解除されているか否かにかかわらず、そのデバイス、システムまたは構成要素がそのように適合化され、設定され、可能であり、構成され、可能にされ、動作可能、または作動可能である限りにおいて、そのデバイス、システム、構成要素を包含する。
図1
図2
図3
図4
図4A
図5
図6
図7