(57)【要約】  一実施形態では、ソーシャルネットワーキングシステムのユーザは、ユーザの現在のロケーションに近い場所へのチェックインを要求する。ソーシャルネットワーキングシステムは、ユーザの現在のロケーションに近い場所のリストを発生し、各場所とユーザの現在のロケーションとの間の距離と、各場所についてのユーザ及びそのソーシャルコンタクトのアクティビティとにより、ユーザの現在のロケーションに近い場所のリスト中の場所をランク付けし、ランク付けしたリストをユーザに返す。
2013543157.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティングシステムにおいて、ユーザに関連するユーザ識別子とジオグラフィックロケーションとを含む要求を受信するステップと、
ロケーション情報のデータ記憶装置にアクセスして、前記ジオグラフィックロケーションの付近にある一又は複数の場所のセットを特定するステップと、
前記一又は複数の場所のセット中の各場所について、前記ユーザのチェックインアクティビティに対応する一又は複数の値と、前記ユーザの一又は複数のソーシャルコンタクトのチェックインアクティビティに対応する一又は複数の値とを含むユーザアクティビティデータのセットにアクセスするステップと、
前記ジオグラフィックロケーションと各場所に対応するジオグラフィックロケーションとの間の距離と、各場所の前記ユーザアクティビティデータのセット中の一又は複数の値とに基づいて、前記一又は複数の場所のセット中の場所をランク付けするステップと、
前記一又は複数の場所のセットからランク付けされた場所のセットを含む応答を送信するステップとを含む方法。
【請求項２】
前記一又は複数の場所のセット中の各場所は、前記ジオグラフィックロケーションから所定距離内にある、
請求項１に記載の方法。
【請求項３】
前記要求は、文字ストリングを含み、前記データ記憶装置にアクセスするステップは、前記文字ストリングを前記データ記憶装置に記憶された場所に対応する場所識別子とマッチさせるステップを含む、
請求項１に記載の方法。
【請求項４】
前記文字ストリングを前記データ記憶装置に記憶された場所に対応する場所識別子とマッチさせるステップは、さらに、前記文字ストリングを各場所識別子と完全に又は部分的にマッチさせるステップを含む、
請求項３に記載の方法。
【請求項５】
前記ジオグラフィックロケーションは、地理的座標系パラメータにより特定される、
請求項１に記載の方法。
【請求項６】
前記ユーザアクティビティデータのセットは、ユーザチェックインアクティビティテーブルに配置される、
請求項１に記載の方法。
【請求項７】
前記ユーザアクティビティデータのセットは、さらに、ソーシャルネットワーキングシステム中のグローバルなユーザセットのチェックインアクティビティに対応する一又は複数の値を含む、
請求項１に記載の方法。
【請求項８】
前記ユーザアクティビティデータのセットは、ユーザチェックインアクティビティテーブルに配置される、
請求項７に記載の方法。
【請求項９】
前記ユーザの又はそのユーザのソーシャルコンタクトのチェックインアクティビティは、場所へのチェックインに関して他のユーザをタギングするステップを含む、
請求項１に記載の方法。
【請求項１０】
装置であって、
メモリと、
一又は複数のプロセッサと、
コンピュータ読み取り可能命令を含むプログラムであって、実行された時、前記一又は複数のプロセッサに：
ユーザに関連するユーザ識別子とジオグラフィックロケーションとを含む要求を受信させ、
ロケーション情報のデータ記憶装置にアクセスして、前記ジオグラフィックロケーションの付近にある一又は複数の場所のセットを特定させ、
前記一又は複数の場所のセット中の各場所について、前記ユーザのチェックインアクティビティに対応する一又は複数の値と、前記ユーザの一又は複数のソーシャルコンタクトのチェックインアクティビティに対応する一又は複数の値とを含むユーザアクティビティデータのセットを発生させ、
前記ジオグラフィックロケーションと各場所に対応するジオグラフィックロケーションとの間の距離と、各場所の前記ユーザアクティビティデータのセット中の一又は複数の値とに基づいて、前記一又は複数の場所のセット中の場所をランク付けさせ、
前記一又は複数の場所のセットからランク付けされた場所のセットを含む応答を送信させる、装置。
【請求項１１】
前記一又は複数の場所のセット中の各場所は、前記ジオグラフィックロケーションから所定距離内にある、
請求項１０に記載の装置。
【請求項１２】
前記要求は、文字ストリングを含み、データ記憶装置にアクセスするため、前記プログラムはさらに、前記一又は複数のプロセッサに、前記文字ストリングを前記データ記憶装置に記憶された場所に対応する場所識別子とマッチさせる命令を含む、
請求項１０に記載の装置。
【請求項１３】
前記文字ストリングを前記データ記憶装置に記憶された場所に対応する場所識別子とマッチするため、前記プログラムはさらに、前記一又は複数のプロセッサに、前記文字ストリングを各場所識別子と完全に又は部分的にマッチさせる命令を含む、
請求項１２に記載の装置。
【請求項１４】
前記ジオグラフィックロケーションは、地理的座標系パラメータにより特定される、
請求項１０に記載の装置。
【請求項１５】
前記ユーザアクティビティデータのセットは、ユーザチェックインアクティビティテーブルに配置される、
請求項１０に記載の装置。
【請求項１６】
前記ユーザアクティビティデータのセットは、さらに、ソーシャルネットワーキングシステム中のグローバルなユーザセットのチェックインアクティビティに対応する一又は複数の値を含む、
請求項１０に記載の装置。
【請求項１７】
前記ユーザアクティビティデータのセットは、ユーザチェックインアクティビティテーブルに配置される、
請求項１６に記載の装置。
【請求項１８】
前記ユーザの又はそのユーザのソーシャルコンタクトのチェックインアクティビティは、場所へのチェックインに関して他のユーザをタギングするステップを含む、
請求項１０に記載の装置。
【請求項１９】
命令を含む非一時的、コンピュータ読み取り可能媒体であって、前記命令は、実行された時、前記一又は複数のプロセッサに：
ユーザに関連するユーザ識別子とジオグラフィックロケーションとを含む要求にアクセスさせ、
ロケーション情報のデータ記憶装置にアクセスして、前記ジオグラフィックロケーションの付近にある一又は複数の場所のセットを特定させ、
前記一又は複数の場所のセット中の各場所について、前記ユーザのチェックインアクティビティに対応する一又は複数の値と、前記ユーザの一又は複数のソーシャルコンタクトのチェックインアクティビティに対応する一又は複数の値とを含むユーザアクティビティデータのセットにアクセスさせ、
前記ジオグラフィックロケーションと各場所に対応するジオグラフィックロケーションとの間の距離と、各場所の前記ユーザアクティビティデータのセット中の一又は複数の値とに基づいて、前記一又は複数の場所のセット中の場所をランク付けさせ、
前記一又は複数の場所のセットからランク付けされた場所のセットを含む応答を送信させる、非一時的、コンピュータ読み取り可能記憶媒体。
【請求項２０】
前記ユーザの又はそのユーザのソーシャルコンタクトのチェックインアクティビティは、場所へのチェックインに関して他のユーザをタギングするステップを含む、
請求項１９に記載の非一時的、コンピュータ読み取り可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概してロケーションベースのネットワークサービスに関し、より具体的には、地理情報とソーシャルグラフ情報を用いてユーザのロケーションに近い関連した場所のリストを提供するロケーションベースのネットワークサービスに関する。
【背景技術】
【０００２】
ソーシャルネットワーキングウェブサイトなどのソーシャルネットワーキングシステムにより、そのユーザは、そのシステムとインターラクトでき、そのシステムを通じて互いにインターラクトできる。ソーシャルネットワーキングシステムは、ユーザプロファイルと呼ばれることが多い、ユーザに関するレコードを生成して記憶する。ユーザプロファイルは、ユーザのデモグラフィック情報、通信チャンネル情報、及び個人的興味を含み得る。ソーシャルネットワーキングシステムは、ユーザのそのソーシャルネットワーキングシステム中の他のユーザとの関係のレコード（例えば、ソーシャルグラフ）も生成し記憶し、そのソーシャルネットワーキングシステム中のユーザ間のソーシャルインターラクションを促進するサービス（例えば、ウォールポスト、写真共有、又はインスタントメッセージング）を提供する。ジオソーシャルネットワーキングシステムは、ソーシャルネットワーキングシステムであってジオグラフィックサービス及び機能が用いられて追加的なソーシャルインターラクションを可能とするものである。ユーザが送信するロケーションデータやジオロケーション技術（例えば、モバイルフォン位置追跡）により、ジオソーシャルネットワークは、ユーザをその興味にマッチしたローカルの人々やイベントと結びつけることができる。
【発明の概要】
【課題を解決するための手段】
【０００３】
ある実施形態は、ランク付けされた場所のリストをユーザに提供して、ある場所へのチェックインに関する場所の選択やユーザの現在の地理的ロケーションに最も近いロケーションの発見など、様々な行動（operation）を容易にするジオソーシャルネットワーキングシステムに関する。一実施形態では、ジオソーシャルネットワーキングシステムは、ジオグラフィック情報とソーシャルネットワーク情報を用いて、ユーザのロケーションに近い関連する場所のリストを生成する。場所のリストは、ユーザに近い一又は複数の場所のリストを書く場所とユーザの間の距離により、及びユーザのチェックイン活動と各場所のユーザのソーシャルコンタクトにより、ランク付けすることにより生成できる。本開示の上記の特徴、その他の特徴、態様、及び効果を、詳細な説明において、以下の図面を参照して、詳細に説明する。
【図面の簡単な説明】
【０００４】
【図１】ジオグラフィックサービスと機能を有するジオソーシャルネットワーキングシステムの一例を示す図である。
【図２】ランク付けされた場所のリストを生成する方法例を示す図である。
【図２Ａ】ある場所でのユーザチェックイン活動テーブルの一例を示す図である。
【図３】モバイルデバイス上の、ある場所にチェックインするグラフィカルユーザインタフェース例を示す図である。
【図４】モバイルデバイス上の、ある場所にチェックインした後のグラフィカルユーザインタフェース例を示す図である。
【図５】ネットワーク環境の一例を示す図である。
【図６】コンピュータシステムの一例を示す図である。
【発明を実施するための形態】
【０００５】
ここで、添付した図面に示した実施形態を参照して、本発明を詳細に説明する。以下の詳細な説明では、本開示をよく理解してもらうために、詳細を具体的に説明する。しかし、当業者には言うまでもなく、これらの詳細がなくても本開示を実施することができる。他の場合には、本開示を不必要に分かりにくくしないように、周知のプロセスステップ及び／又は構造は詳細には説明しない。また、具体的な実施形態に関して本開示を説明したが、言うまでもなく、この説明は本開示を実施形態に限定することを意図したものではない。むしろ、この説明は、添付した特許請求の範囲で画定される本開示の精神と範囲に入る代替物、修正、及び等価物を含むものである。
【０００６】
ソーシャルネットワーキングウェブサイトなどのソーシャルネットワーキングシステムにより、そのユーザは、そのシステムとインターラクトでき、そのシステムを通じて互いにインターラクトできる。一般的に、ソーシャルネットワーキングシステムの登録ユーザになるには、エンティティ（entity）は人間であろうとなかろうと、そのソーシャルネットワーキングシステムでアカウントを登録する。その後、登録ユーザは、例えば、正しいログインＩＤ又はユーザネームとパスワードとを入力（provide）することにより、アカウントを介してそのソーシャルネットワーキングシステムにログインできる。ここで、「ユーザ」とは、このようなソーシャルネットワーク環境とインターラクト又は通信する、又はこのようなソーシャルネットワーク環境を通じてインターラクト又は通信する、個人（人間のユーザ）、（例えば、企業、事業、サードパーティアプリケーションといった）エンティティ、又は（例えば、個人やエンティティの）グループである。
【０００７】
ソーシャルネットワーキングシステムは、最初にユーザがアカウントを登録すると、「ユーザプロファイル」と呼ばれることが多い、そのユーザに関するレコードを生成して格納する。ユーザプロファイルは、ユーザにより提供された情報と、そのユーザの活動や動作に関する、そのソーシャルネットワーキングシステムを含む様々なシステムにより収集された情報とを含む。例えば、ユーザは、自分の氏名、連絡先情報、誕生日、性別、既婚・未婚の別、家族の状況、職業、教育歴、嗜好、興味、及びユーザプロファイルに含めるべきその他のデモグラフィック情報を提供する。ユーザは、友達とみなす、ソーシャルネットワーキングシステムの他のユーザを特定できる。ユーザプロファイルには、ユーザの友達又は第１級連絡先（first  degree  contacts）のリストが含まれる。ソーシャルネットワーキングシステムにおけるコネクションは双方向でも一方向だけでもよい。例えば、ボブとジョーが二人ともユーザであり、互いにコネクト（connect）している場合、ボブとジョーはそれぞれが互いのコネクションである。他方、ボブがサムにコネクトしてサムのポストしたコンテンツアイテムを見たいが、サムはボブにコネクトしない場合、サムはボブのコネクションであるが、ボブはサムのコネクションではない片道コネクションが形成される。ソーシャルネットワーキングシステムの実施形態により、コネクションは、一又は複数のコネクションレベル（例えば、友達の友達）を介して間接的になる。コネクションは、例えば、ユーザが具体的に他のユーザを選択して友達とすることにより、ユーザにより明示的に追加でき、又はソーシャルネットワーキングシステムにより、ユーザの共通の特徴（例えば、同じ教育機関の卒業生であるユーザ）に基づき自動的に生成される。ユーザは、頻繁に訪れるウェブサイトやウェブページを特定又はブックマークでき、これらのウェブサイトやウェブページはユーザのプロファイルに含まれる。
【０００８】
ユーザは、アカウントを登録する時に、又はその後に、自分の様々な側面に関する情報（連絡先情報や興味など）を提供できる。ユーザはいつでも自分のプロファイル情報を更新できる。例えば、ユーザは、引っ越しした時、又は電話番号を変えた時に、自分の連絡先情報を更新できる。また、時間の経過とともにユーザの興味は変化するかも知れず、ユーザは時々自分のプロファイル中の興味を更新できる。システム上の特定の情報にアクセスする頻度など、ソーシャルネットワーキングシステムにおけるユーザの活動も、ユーザのプロファイルに含まれる情報を提供することがある。また、かかる情報はユーザの最近の活動を反映するように時々更新されてもよい。さらにまた、他のユーザ又はユーザのいわゆる友達又はコンタクトも、ユーザのプロファイルに影響する又はユーザのプロファイルを更新させる活動を行える。例えば、コンタクトにより、ユーザが友達として追加されても（又はユーザを友達から削除しても）よい。コンタクトもユーザのプロファイルページにメッセージを書き込める。これは一般的にウォールポストとして知られている。
【０００９】
ソーシャルネットワークシステムは、ソーシャルグラフ情報を保持できる。ソーシャルグラフは、一般的に個人又はエンティティのグループ間の関係により画定でき、気軽な知り合い関係から密接な家族的絆までの関係を含み得る。ソーシャルネットワークはグラフ構造を用いて表される。グラフの各ノードは、ソーシャルネットワークのユーザ又はエンティティに対応する。２つのノードを繋ぐエッジは、二人のユーザ間の関係を表す。また、２つのノード間の隔たり度合（degree  of  separation）は、あるノードから他のノードに行くのに必要なホップの最小数として定義される。二人のユーザ間の隔たり度合は、そのグラフのノードにより表される二人のユーザ間の関係の尺度と考えられる。２０１０年４月１９日に出願された米国特許出願第１３／７６３，１７１号は、ここに参照援用するが、本開示の様々な実施形態で用いることができるソーシャルグラフ構造の例を説明している。
【００１０】
ソーシャルネットワーキングシステムは、場所に関する情報のデータベースを保持していてもよい。場所は、レストラン、バー、鉄道駅、空港などの様々な物理的ロケーションに対応する。ある場所は、空港内のレストランやゲートなど、それ自体が場所を含むより大きな領域に対応する。一実施形態では、米国特許出願第１２／７６３，１７１号明細書に記載されているように、各場所は、ソーシャルネットワーキングシステムにより保持されたソーシャルグラフ又はその他のデータ構造におけるハブノードとして保持できる。ユーザは、ソーシャルネットワーキングシステムにより、ラップトップ、デスクトップ、又はモバイルデバイスなどの有線局又は無線局によりホストされた（ブラウザなどの）クライアントアプリケーションを用いて、各場所に関する情報にアクセスできる。例えば、ソーシャルネットワーキングシステムは、場所に関する情報を要求するユーザに、ウェブページ（又はその他の構造化文書）を提供できる。ソーシャルネットワーキングシステムは、ユーザプロファイルと場所情報に加え、ユーザに関するその他の情報をトラック又は維持してもよい。例えば、ソーシャルネットワーキングシステムは、ユーザのロケーションを記録する一又は複数のロケーションベースサービスを含むジオソーシャルネットワーキングシステム機能をサポートしてもよい。例えば、ユーザは、そのモバイルデバイスによりホストされている特殊用途クライアントアプリケーション（又は、ブラウザクライアントを用いてウェブベース又はネットワークベースのアプリケーション）を用いて、ジオソーシャルネットワーキングシステムにアクセスできる。クライアントアプリケーションは、モバイルデバイスによりサポートされているグローバルポジショニングシステム（ＧＰＳ）又はその他のジオロケーション機能に自動的にアクセスして、ユーザの現在のロケーションをジオソーシャルネットワーキングシステムにレポートする。また、クライアントアプリケーションは、ユーザが様々なロケーションにチェックインして、他のユーザにこのロケーションを連絡できるジオソーシャルネットワーキングシステムをサポートできる。以下により詳しく説明するように、ある場所へのチェックインは、ユーザが物理的にある場所にいて、モバイルデバイスを用いて、ジオソーシャルネットワーキングシステムにアクセスして、ユーザがその場所にいることを登録した時に起きる。以下に説明するように、ユーザは、現在の自分のロケーションに近い既存の場所のリストから場所を選択してもよいし、新しい場所を生成してもよい。ユーザは、ある場所にチェックインする時に、テキストストリングのコメントを提供することもできる。また、ユーザは、チェックインに関して一又は複数の他のユーザ（ユーザの友達など）を特定し、その人たちをそのチェックインと関連付けることもできる。米国特許出願第１２／５７４，６１４号は、ここであらゆる目的のために参照援用するが、第１のユーザに、ある場所の他のユーザにチェックインできるシステムを説明している。コメントと、ユーザがチェックインした時間に対応するタイムスタンプとを含む入力が、他のユーザに表示される。例えば、ユーザのチェックインアクティビティの記録がデータベースに格納される。ソーシャルネットワーキングシステムは、ある場所におけるユーザのチェックインアクティビティに関連する一又は複数の記録を選択して、かかるチェックインアクティビティを、ある場所に対応するウェブページ（又はその他の構造化文書）に含めることができる。例えば、ソーシャルネットワーキングシステムは、ある場所に対応するページを要求したユーザの友達又はその他のソーシャルコンタクトに関連するチェックインアクティビティを選択できる。ユーザは、自分が関連しているイベントを追加、削除、又は更新できる。例えば、ユーザは、自分が出席する予定をしている日時に関連したソーシャルイベントを更新し、自分のウォールポストに自分が出席した過去のイベントに関するコメントをできる。
【００１１】
ユーザは、自分の情報を他のユーザやサードパーティアプリケーションと共有したいかも知れないししたくないかもしれない。また、ユーザは、自分の情報を特定のユーザやサードパーティアプリケーションとだけ共有したいかも知れない。ユーザは、場所にチェックインする時、自分のユーザプロファイルに関連するプライバシー設定により、自分の情報を他のユーザやサードパーティアプリケーションと共有するかコントロールできる。例えば、ユーザは、自分に関連する各ユーザデータのプライバシー設定を選択できる。プライバシー設定は、ユーザデータにアクセスできるエンティティ（例えば、他のユーザ、ユーザのコネクション、友達の友達、又はサードパーティアプリケーション）のセットを画定又は特定する。プライバシー設定は様々な粒度レベルで指定できる。例えば、ソーシャルネットワーク中の具体的なエンティティ（例えば、他のユーザ）、ユーザがコネクションを有する所定グループ、特定のコネクションのタイプ、ユーザの全コネクション、ユーザのコネクション中のすべての第１級コネクション、ソーシャルネットワーク全体、又はインターネット全体を指定できる。ユーザは、ポストされるすべてのユーザデータに対して、デフォルトのプライバシー設定を選択できる。また、ユーザは、具体的にあるエンティティを排除して、ユーザデータや特定タイプのユーザデータをみられないようにできる。
【００１２】
図１は、ロケーションベースのサービスと機能を有するソーシャルネットワーキングシステムの一例を示す図である。ある実施形態では、ソーシャルネットワーキングシステムは、ユーザプロファイルデータベース１０１にユーザプロファイルデータを格納できる。ある実施形態では、このソーシャルネットワーキングシステムは、イベントデータベース１０２にイベントデータを格納できる。ある実施形態では、ソーシャルネットワーキングシステムは、プライバシーポリシーデータベース１０３にユーザプライバシーポリシーデータを格納できる。ある実施形態では、ソーシャルネットワーキングシステムは、ロケーションデータベース１０４にジオグラフィック＆ロケーションデータを格納できる。ある実施形態では、データベース１０１、１０２，１０３及び１０４は、ソーシャルネットワーキングシステムのフロントエンド１２０に動作可能に接続されている。ある実施形態では、フロントエンド１２０は、ネットワーククラウド１２１を通じてクライアントデバイス１２２とインターラクトできる。クライアントデバイス１２２は、一般的には、コンピュータネットワークを通じて（例えば、遠隔地と）通信する機能を有するコンピュータやコンピューティングデバイスである。クライアントデバイス１２２は、デスクトップコンピュータ、ラップトップコンピュータ、パーソナルデジタルアシスタント（ＰＤＡ）、車内用又は車外用ナビゲーションシステム、スマートフォンその他のセルラー電話や移動電話、携帯ゲームデバイス、その他の好適なコンピューティングデバイスである。クライアントデバイス１２２は、（例えば、Microsoft  Windows  Internet  Explorer、Mozilla  Firefox、Apple  Safari、Google  Chrome、及びOperaなどの）ウェブブラウザなどの一又は複数のクライアントアプリケーションを実行して、コンピュータネットワーク上のコンテンツにアクセスして見ることができる。フロントエンド１２０は、ウェブ又はＨＴＴＰサーバ機能その他の機能を有し、ユーザはフロントエンド１２０により、ソーシャルネットワーキングシステムにアクセスできる。ネットワーククラウド１２１は、概して、クライアントデバイス１２２がソーシャルネットワークシステムにアクセスできるネットワーク又は複数のネットワークの集まり（例えば、インターネット、企業イントラネット、又は両者の組合せ）を表す。
【００１３】
ある実施形態では、ロケーションデータベース１０４は、モバイルデバイスなどのオブジェクトのリアルワールドでのジオグラフィックロケーションを特定するジオロケーションデータを格納している。例えば、インターネットに接続されたコンピュータのジオグラフィックロケーションを、そのコンピュータのＩＰアドレスで特定できる。例えば、ＷｉＦｉとＧＰＳの機能を備えたセルラー電話のジオグラフィックロケーションは、セルタワー三角法、ＷｉＦｉポジショニング、及び／又はＧＰＳポジショニングにより特定できる。ある実施形態では、ロケーションデータベース１０４は、複数の場所のジオグラフィックロケーションと付加的情報を格納している。例えば、ある場所は、地元企業、関心地点（例えば、カリフォルニア州サンフランシスコのユニオンスクエア）、大学、都市、自然公園などである。あるユーザやユーザグループについては、ある場所はより具体的なものでもよく、例えば、オフィスビル内のある人のデスク、ある家のベッドルーム、街角における渋滞などであってもよい。場所（例えば、ローカルのコーヒーショップ）のジオグラフィックロケーションは、住所、一組の地理的座標（緯度と経度）、他の場所への参照（例えば、「駅の隣のコーヒーショップ」や他の場所からある半径又は相対距離内）であってもよい。例えば、面積が広い場所（例えば、ヨセミテ自然公園）のジオグラフィックロケーションは、その場所の輪郭を近似した形状（例えば、円や多角形）であってもよいし、その形状の重心であってもよい。他の実施形態では、場所は他の場所の内側にあり、階層関係を形成していてもよい。例えば、空港は複数のターミナルを有する場所である。これらのターミナルは、より大きく包含される場所、すなわち空港に関連する、又は関連しない場所であってもよい。ロケーションデータベース１０４も、説明、サムネールマップパラメータ、営業時間、連絡先情報、ウェブアドレス、ウェブリンク、写真、アイコン、バッジ、ポイント、又はその場所のユーザレビューやレーティングなど、その場所の付加的情報を保持できる。ロケーションデータベース１０４により保持された場所オブジェクトも、その場所に関連する一又は複数のタグ（例えば、コーヒーショップ、クロスストリートなど）と、場所探しを容易にする一又は複数のカテゴリー識別子とを含み得る。ある実施形態では、ロケーションデータベース１０４はユーザのロケーションデータを格納できる。
【００１４】
ロケーションデータベース１０４中の場所は、システムにより生成又は画定され、及び／又はユーザにより生成されたものでもよい。例えば、ロケーションデータベース１０４は、例えば、ユーザのチェックインアクティビティに関する、ユーザにより生成された場所に関する情報を格納できる。例えば、ユーザは、場所（例えば、新しいレストランやコーヒーショップ）を生成でき、場所サービス１１０は、ユーザが生成した場所をロケーションデータベース１０４に格納する。上記の通り、ソーシャルネットワーキングシステムは、場所に関する一又は複数のデータ構造を、例えばその場所に対応するデータオブジェクトとユーザのチェックインに対応するデータオブジェクトを、生成できる。ある実施形態では、ソーシャルネットワーキングシステムは、米国特許出願第１２／７６３，１７１号で開示されたハイブリッドソーシャルグラフ構造を保持している場合、ソーシャルグラフ中のユーザに関連するノードと、その場所に関連するハブノードとの間に、「チェックイン」エッジ関係を生成できる。チェックインデータオブジェクトは、ユーザに関連したユーザ識別子、場所識別子（又は場所オブジェクトやハブノードへのポインタ）、タイムスタンプ、その他のメタデータ（ユーザのモバイルデバイスのジオグラフィックロケーションの座標やユーザのコメントなど）を含み得る。
【００１５】
ある実施形態では、場所サービス１１０は、データベース１０１，１０２，１０３及び１０４に動作可能に接続されている。チェックインや近い場所の一般的な検索に関して、ユーザは、（その場所の名称、又は場所に関連するカテゴリーやコンセプトなど）場所及び／又はジオグラフィックロケーションを記述するテキスト（例えば、名称の一部又は全部を含むテキストストリング）を、場所サービス１１０に提供することにより、自分の現在のロケーションに近い場所を検索できる。場所サービス１１０は、ロケーションデータベース１０４を検索して、ユーザに、（テキストストリングが提供されていれば）それにマッチするジオグラフィックロケーションに近い場所のリストを提供する。しかし、ユーザの現在のロケーションからの距離に基づく近い場所の場所検索により、そのユーザに関係する、又は関係しない結果が得られる。例えば、ユーザがサンフランシスコの金融街（例えば、カリフォルニア州サンフランシスコ市モンゴメリー通り１００）の近くにいて、近くのコーヒーショップを検索したいとき、場所サーチの結果には、徒歩圏内のコーヒーショップ１０店舗のランダムなリストが含まれる。しかし、場所検索が、ユーザプロファイル、ソーシャルネットワーク及び／又はソーシャルグラフ情報、及びソーシャルネットワークの他のユーザのチェックインアクティビティを考慮したものであれば、場所検索の結果はもっとユーザに関連性のあるものとなるだろう。前述の例では、１０店舗のコーヒーショップは、ユーザの又はユーザの友達のアクティビティに応じてランキングできる。例えば、その１０店舗のコーヒーショップのうち一にユーザがチェックインした回数、その１０店舗のコーヒーショップのうち一にユーザの友達がどのくらいの頻度でチェックインしたか、その場所にチェックインしたことがあるユーザの友達の数（及び／又はユーザ一般の数）、その１０店舗のコーヒーショップのどれがユーザの友達により「私のお気に入りのコーヒーショップ」としてマークされているか、ユーザの友達（又はユーザ一般）が「いいね（liked）」としたか、又は場所に対して親しみを示したか（例えば、その場所に対応するページにコメントをポストしたか）に応じて、ランキングできる。他の実施形態では、場所はユーザの友達のレーティング及び／又はレビューによりランクできる。
【００１６】
図２は、ランク付けされた場所のリストを生成する方法例を示す図である。ある実施形態では、場所サービス１１０は、ユーザから検索要求を受信する。この検索要求は、チェックインワークフローの一部として送信されてもよい。ある実施形態では、検索要求は、ユーザのユーザＩＤと、そのユーザのジオグラフィックロケーションとを含む（ステップ２０１）。ある実施形態では、ユーザの検索要求のジオグラフィックロケーションは、又はユーザの現在のロケーションは、ジオグラフィック座標系パラメータにより特定できる。例えば、ユーザは、ソーシャルネットワーキングシステムのウェブページにユーザＩＤとアドレスとを提供することにより、チェックインできる。例えば、ユーザは、ＧＰＳを備えてモバイルデバイス上にホストされたクライアントアプリケーションにチェックインでき、クライアントアプリケーションはそのモバイルデバイスのＧＰＳ機能にアクセスして、緯度と経度の数字のペアでジオグラフィックロケーションとユーザＩＤを、場所サービス１１０に提供できる。ある実施形態では、場所サーバ１１０は、ロケーションデータベース１０４にアクセスして、ユーザの現在のロケーションに近い一又は複数の場所のセットを特定できる。ある実施形態では、そのユーザの現在のロケーションに近い一又は複数の場所のセット中の各場所は、ユーザの現在の場所からある閾値距離内にある（ステップ２０２）。例えば、場所サービス１１０は、ロケーションデータベース１０４にアクセスして、ユーザの現在のロケーションからある閾値距離内にある場所のリストを作る（compile）。一実施形態では、返される場所のリスト中の場所の数はある最大数に限定してもよい。
【００１７】
ある実施形態では、検索要求には文字ストリングが含まれる。ある実施形態では、場所サービス１１０は、ロケーションデータベース１０４にアクセスして、各場所の場所識別子（例えば、名称やメタデータ値）が部分的に又は完全にその文字ストリングとマッチし、ユーザの現在のロケーションからある閾値距離内にある一又は複数の場所のセットを特定できる。例えば、ユーザは、近くのコーヒーショップにチェックインしたい場合、ウェブページ又はクライアントアプリケーションに「コーヒー」とタイプして、検索要求できる。場所サービス１１０は、Starbucks  Coffee、Peet's  Coffee  and  Tea、Dunkin'  Donutsなどの近くのコーヒーショップのリストを返す。図３は、ユーザインタフェースであり、ユーザが「カフェ」の語を入力したところを示す。ユーザインタフェースを提供するクライアントアプリケーションは、ユーザが追加テキストを入力し、テキスト入力フィールド中の既存テキストを変更するにつれ、検索要求中のテキストストリングを定期的に送信し、場合によっては、場所サービス１１０に更新された場所のリストをクライアントアプリケーションに送信させる。他の実施形態では、クライアントアプリケーションは、ユーザの現在のロケーションがあす閾値距離より大きく変化した場合、検索要求を再送もできる。検索要求は、結果をフィルタ及び／又はランキングするのに使えるタグやカテゴリーなどの他のパラメータも含み得る。
【００１８】
ある実施形態では、ユーザの現在のロケーションに近い一又は複数の場所のセット中の各場所について、場所サービス１１０は、ロケーションデータベース１０４とユーザプロファイルデータベース１０１にアクセスして、ユーザアクティビティデータのセットを発生（又は前に発生されたユーザアクティビティデータのキャッシュ又はデータ記憶にアクセス）できる。ある実施形態では、各場所のユーザアクティビティデータのセットは、ユーザのチェックインアクティビティに対応する一又は複数の値（ＣＳ１，ＣＳ２）と、そのユーザの一又は複数の友達のチェックインアクティビティに対応する一又は複数の値（ＣＳ３，ＣＳ４）を含む。ある実施形態では、ユーザアクティビティデータのセットは、ソーシャルネットワーキングシステム中のグローバルなユーザセットのチェックインアクティビティに対応する一又は複数の値を含む。ある実施形態では、ユーザアクティビティデータのセットは、各場所のユーザチェックインアクティビティテーブルに整理（arrange）される（ステップ２０３）。図２Ａは、ある場所でのユーザチェックイン活動テーブルの一例を示す図である。一実施形態では、場所サービス１１０は、チェックイン要求中のユーザ識別子を用いてユーザプロファイルデータベース１０１にアクセスし、一又は複数の友達を特定し、各場所について、その場所におけるその一又は複数の友達のチェックインアクティビティを決定する。一実施形態では、ロケーションデータベース１０４は、チェックインについて、場所の名称、チェックインに対応するタイムスタンプ、チェックインに関連するユーザ識別子、チェックイン要求で与えられたユーザのジオグラフィックロケーション、及び適用あればそのチェックインイベントに関してタグ付けしたそのユーザの友達のリストを含むチェックインデータを保持する。場所サービス１１０は、タイムスタンプを用いて、ある場所におけるチェックインの総数と、その場所における最近のチェックインをカウントしてもよい。ここで、最近とは、閾値期間により画定され、例えば先週やその他の期間である。チェックインアクティビティテーブル中の値は、図２Ａに示した左端列の各エントリーに対応するユーザによるチェックインの数に基づいてもよい。ある実施形態では、チェックインに関してタグ付けされたユーザの数も、別のチェックイン又は重み付け値としてカウントされる。ある実施形態では、「タグ付けされたユーザ」のチェックインは、そのタグ付けされたユーザがそのチェックインを認めるか了承した場合にのみ、カウントされる。他の実施形態では、現在の検索により近いチェックイン（総数の列又は最近の数の列）には、古いチェックインより大きな重みが付けられる。例えば、昨日記録されたチェックインは、新近性重み（recency  weight）が１であり、７日前に記録されたチェックインは、新近性重みが０．５である。また、友達のチェックインフィールドは、第１級の友達（first  degree  friends）に限定されても、より大きな分離度（additional  degrees  of  separation）に広げてもよい。分離度を用いて各チェックインを重み付けすることもできる。したがって、テーブルの各フィールドの値は、チェックインの時間と、そのユーザあらの各関連��ーザの分離度とに基づく、チェックインの重み付け合計を表す。例えば、ある場所は一時的なものであり、あるイベントと関連付けられていてもよい。チェックインに付与される重みは、時間に基づき減衰し、反復されないイベントに対応する場所は、場所のリストにおいてランクが下げられてもよい。また、信頼がより大きいユーザからのチェックインは、ユーザの友達であろうとなかろうと、その他のチェックインより大きい重み付けがされる。ユーザアクションに基づくユーザの信頼性レベルを決定するプロセスの例は、２００７年２月２日出願の米国特許出願第１１／７０１，７４４号に、より一般的に説明されている。この出願は、すべての目的において、その全体をここに参照援用する。
【００１９】
ある実施形態では、場所サービス１１０は、イベントと他のユーザデータとを、各場所のチェックインアクティビティのセットに、追加的に含める。言い換えると、ある場所を特定するユーザにより生成されたイベントは、チェックインと同様にカウントされ得る。例えば、ユーザはイベントを構成し、ロケーション又は場所はカリフォルニア州サンマテオ市のダウンタウン周辺の「カフェＸ」であり、図２Ａが場所「カフェＸ」のチェックインアクティビティテーブルであると仮定する。ユーザがあるイベントに関してロケーションデータベース１０４中のこの場所を生成した場合、場所サービス１１０は、そのイベントに対応するその場所のユーザチェックインの回数をインクリメントできる。ユーザの友達が、先月、この場所を、イベントの一部として「私のお気に入りのコーヒーショップ」としてマークした場合、場所サービス１１０は、友達による最近のチェックインの回数をインクリメントできる。
【００２０】
ある実施形態では、場所サービス１１０は、各場所のランキングスコアを計算することにより、ユーザの現在のロケーションに近い一又は複数の場所のセット中の場所をランク付けできる。ランキングスコアは、ユーザの現在のロケーションと各場所のジオグラフィックロケーションとの間の距離と、各場所のユーザの一又は複数のソーシャルコンタクトのチェックインアクティビティに対応する一又は複数の値とに基づく（ステップ２０４）。一実施形態では、ランキングスコアは７つのコンポーネントスコアの合計である。第１のコンポーネントスコアは距離に基づき、残りの６つのコンポーネントスコア（ＣＳ１乃至ＣＳ６）はソーシャルアクティビティテーブルの値に、部分的に、基づく。一実施形態では、ランキングスコアは次の式により計算できる：ランキングスコア＝距離−コンポーネントスコア（ＣＳ１乃至ＣＳ６）の合計。
【００２１】
また、６つのコンポーネントスコアは個別に重み付けできる。一実施形態では、コンポーネントスコアは、距離コンポーネントスコアに関連して重み付けされ、（コンポーネントスコアに反映された）ソーシャルコンテキストが、距離に関連して、どのくらいの価値があるかを反映する。ある実施形態では、（アクティビティテーブルのソーシャルコンテキストコンポーネントスコアに反映される）ソーシャルコンテキストは、閾値距離より小さく制限される。これは、グローバルな制限でもよいし、各コンポーネントスコアに対する制限であってもよい。例えば、ユーザが近くのコーヒーショップへのチェックインを要求すると、場所サービス１１０は、ユーザの現在のロケーションから６０ｍ離れたコーヒーショップ「Ｘ」を、そのユーザの現在のロケーションから３０ｍ離れた他のコーヒーショップ「Ｙ」より高くランク付けできる。ユーザ、そのユーザの友達、グローバルなユーザセットのどれも、コーヒーショップＹより多くの回数コーヒーショップＸにチェックインしているからである。例えば、場所サービス１１０は、そのユーザの友達が１０分前にチェックインしたばかりのコーヒーショップを、過去３時間にわたりそのユーザの友達がチェックインしていない他のコーヒーショップより高くランク付けできる。
【００２２】
一実施形態では、ランキング機能は、チェックインレートにより定義される一定の人気度を有する場所については、時間的に一定になるよう設計される。具体的に、場所のセットの人気度が変化しない、すなわち各場所があるチェックインレートを有する教育的例（didactic  example）を考える。一実施形態では、ランキング機能は、チェックイン数が時間的に増えても、ランキングは変更しない。これは、各コンポーネントカテゴリーにおける最大数の割合としてチェックインを表し、それをランキングの基礎として用いることにより、実現できる。例えば、ある場所におけるユーザのチェックインの総数に適用される重み付けは、そのユーザによるすべての場所にわたるチェックインの総数に基づく。例えば、システムは、あるコンポーネントカテゴリーにおける最大カウントと実際カウント（ＣＳ１、ＣＳ２など）を入力として受け取り、０と１の間の値を返す重み付け関数を用いることができる。一実施形態では、重みは、カウントがゼロである時、ゼロに設定され、カウントが最大カウントに等しい時、１に設定される。この値の範囲において、最大カウント（$max）に対する現カウント（$count）の比が減少するにつれ、重み値は対数的に減少する。一パラメータ（$small_count_tolerance）が減少率を制御する。比が１/$small_count_toleranceより下がると、重みはゼロになる。次の表は、ある実施形態において減少がどう変化するかを示す。各行は$small_count_toleranceの仮設値である。各列は$maxの割合として表した$countに対応する。報告されている数字は、返される重みである。
【００２３】
【表１】
2013543157.tif 000003
重みが対数的に減少する理由は、$maxより小さいチェックインカウントの範囲の重みを意味のあるものに支持するためである。例えば、ある場所のチェックインが他の場所のチェックインより多い場合、チェックインが最大の場所が、ユーザが探している場所ではない場合、他の場所との間の人気度の違いを解消することが望ましい。以下は、上記の入力に基づき重みを返す擬似関数（genWeight）である。
【００２４】
【数１】
2013543157.tif 000004
一実施形態では、重み付けは、上記の関数を用いて各コンポーネントカテゴリー（CS１、CS２など）について計算される。この重みを用いて、他の関数により返される値にかけると、コンポーネント（例えば、CS１）のカウントを距離値と同一視できる。すべての重み付けしたコンポーネントの距離値は、決定された距離に加算されて、場所のスコアが計算できる。
【００２５】
一実施形態では、上に示したソーシャルファクタに基づく各コンポーネントスコアは、独立に評価される。しかし、他の実施形態では、ファクタは全体的に考えてもよい。例えば、ユーザが、ある回数（例えば１０回）自宅にチェックインすると、これは近くの場所のそのユーザに関連するチェックインの最大数である。これは、ソーシャルネットワークのすべてのユーザによるチェックインが比較して非常に多い近くの場所と関連づけて考えるべきである。
【００２６】
ある実施形態では、場所サービス１１０は、ユーザに、ランキングされた順序でユーザの現在のロケーションに近い一又は複数の場所のセットを提供し、ユーザにそれを選択させてチェックインさせる（ステップ２０５）。
【００２７】
図３は、モバイルデバイス上の、ある場所にチェックインするグラフィカルユーザインタフェース例を示す図である。ユーザは、そのＧＰＳ装備セルラー電話において、クライアントアプリケーション中に「カフェ」をタイプインしてチェックインする。ソーシャルネットワーキングシステムは、ユーザ、ＧＰＳ座標のペア、及び文字ストリング（例えば「カフェ」）を受信し、ロケーション、ユーザ、及びイベントのデータ記憶にアクセスし、そのユーザがチェックインする近くの場所のランク付けされたリストを返す。図４は、モバイルデバイス上の、ある場所にチェックインした後のグラフィカルユーザインタフェース例を示す図である。ユーザが図３で（ランク付けされたリストで示唆されたように）「カフェＸ」にチェックインした後、クライアントアプリケーションは、カフェＸに関するユーザのソーシャルコンタクトの最近のアクティビティを表示する。ロケーションサービス１１０は、ユーザチェックインを記録し、後で利用することは上記の通りである。
【００２８】
上記の実施形態は、様々なネットワーク構成で実施できるが、以下は、教育的目的であって限定的目的ではないネットワーク環境例を示す。図５は、ネットワーク環境の一例５００を示す図である。ネットワーク環境５００は、一又は複数のサーバ５２０と一又は複数のクライアント５３０とを互いに結合しているネットワーク５１０を含む。ネットワーク環境５００は、また、一又は複数のサーバ５２０にリンクされた一又は複数のデータ記憶５４０を含む。ある実施形態はネットワーク環境５００で実施できる。例えば、場所サービス１１０とソーシャルネットワーキングシステム１２０とは、一又は複数のサーバ５２０によりホストされたソフトウェアプログラムで記述され得る。例えば、イベントデータベース１０２は、一又は複数の記憶５４０に格納される。一部の実施形態では、ネットワーク５１０は、イントラネット、エクストラネット、仮想プライベートネットワーク（ＶＰＮ）、ローカルエリアネットワーク（ＬＡＮ）、ワイヤレスＬＡＮ（ＷＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、インターネットの一部、その他のネットワーク５１０、またはこれらの２つ以上の組合せである。本発明では、ネットワーク５１０は任意の適切なものでよい。
【００２９】
一又は複数のリンク５５０は、サーバ５２０やクライアント５３０をネットワーク５１０に結合する。ある実施形態では、一又は複数のリンク５５０はそれぞれ一又は複数の有線リンク、無線リンクまたは光リンク５５０を含む。ある実施形態では、一又は複数のリンク５５０は、それぞれ、イントラネット、エクストラネット、ＶＰＮ、ＬＡＮ、ＷＬＡＮ、ＷＡＮ、ＭＡＮ、インターネットの一部、その他のリンク５５０、またはこれらの２つ又はそれ以上のリンク５５０の組合せである。本開示は、サーバ５２０とクライアント５３０をネットワーク５１０に結合する任意の好適なリンク５５０を想定している。
【００３０】
ある実施形態では、各サーバ５２０は、中央集中サーバでもよいし、複数のコンピュータや複数のデータセンターに分散した分散サーバであってもよい。サーバ５２０は、例えば、ウェブサーバ、ニュースサーバ、メールサーバ、メッセージサーバ、広告サーバ、ファイルサーバ、アプリケーションサーバ、エクスチェンジサーバ、データベースサーバ、又はプロキシサーバなど、様々なタイプのものであるが、これらに限定されない。ある実施形態では、各サーバ５２０は、サーバ５２０により実施又はサポートされる適切な機能を実現する、ハードウェア、ソフトウェア、組み込み論理コンポーネント、又はかかる２又はそれ以上のコンポーネントの組合せを含む。例えば、ウェブサーバは、一般的に、ウェブページ又はその要素を含むウェブサイトをホストできる。より具体的には、ウェブサーバは、ＨＴＭＬファイルやその他のファイルタイプをホストでき、又は要求に応じてファイルを動的に生成又は構成でき、それをクライアント５３０からのＨＴＴＰその他の要求に応じてクライアント５３０に送信できる。メールサーバは、一般的に、様々なクライアント５３０に電子メールサービスを提供できる。データベースサーバは、一般的に、一又は複数のデータ記憶装置に格納されたデータを管理するインタフェースを提供できる。
【００３１】
ある実施形態では、一又は複数のデータ記憶装置５４０は、一又は複数のリンク５５０を介して一又は複数のサーバ５２０に通賃可能にリンクされている。ある実施形態では、データ記憶５４０を用いて様々なタイプの情報を格納できる。ある実施形態では、データ記憶５４０に格納された情報は、あるデータ構造により組織化されていてもよい。ある実施形態では、各データ記憶５４０はリレーショナルデータベースである。ある実施形態では、サーバ５２０又はクライアント５３０が、データ記憶５４０に格納された情報を管理、例えば読み出し、修正、追加、削除できるようにするインタフェースが提供される。
【００３２】
ある実施形態では、各クライアント５３０は、クライアント５３０により実施又はサポートされる適切な機能を実現できる、ハードウェア、ソフトウェア、組み込み論理コンポーネント、又はかかる２又はそれ以上のコンポーネントの組合せを含む。例えば、クライアント５３０は、デスクトップコンピュータシステム、ノートブックコンピュータシステム、ネットブックコンピュータシステム、ハンドヘルド電子装置、又は携帯電話であるが、これらに限定されない。本発明では、クライアント５３０は任意の適切なものでよい。クライアント５３０により、クライアント５３０のネットワークユーザは、ネットワーク５１０にアクセス可能である。クライアント５３０により、そのユーザは、他のクライアント５３０の他のユーザと通信可能である。
【００３３】
クライアント５３０は、MICROSOFT  INTERNET  EXPLORER、GOOGLE  CHROME又はMOZILLA  FIREFOXなどのウェブブラウザ５３２を有し、TOOLBAR又はYAHOO  TOOLBARなどの一又は複数のアドオン、プラグイン、又はその他のエクステンションを有する。クライアント５３０のユーザは、ウェブブラウザ５３２をサーバ５２０に向かわせるＵＲＬ（Uniform  Resource  Locator）その他のアドレスを入力し、ウェブブラウザ５３２は、ＨＴＴＰ（Hyper  Text  Transfer  Protocol）リクエストを発生し、そのＨＴＴＰリクエストをサーバ５２０に送信する。サーバ５２０は、そのＨＴＴＰリクエストを受信し、そのＨＴＴＰリクエストに応じた一又は複数のＨＴＭＬ（Hyper  Text  Markup  Language）ファイルをクライアント５３０に送信する。クライアント５３０は、サーバ５２０からのＨＴＭＬファイルに基づきウェブページをレンダリングして、ユーザに提示する。本開示では、ウェブページファイルは適切なものであればいかなるものでもよい。限定ではなく一例として、ウェブページは、必要に応じて、ＨＴＭＬファイル、ＸＨＴＭＬ（Extensible  Hyper  Text  Markup  Language）ファイル、又はＸＭＬ（Extensible  Markup  Language）からレンダリングできる。かかるページは、例えば、JAVASCRIPT、JAVA、MICROSOFT  SILVERLIGHT、マークアップ言語の組合せ、及びAJAX（Asynchronous  JAVASCRIPT  and  XML）などで記述されたスクリプトも実行できる。ここで、ウェブページへの参照は、（ブラウザがそのウェブページをレンダリングするのに用いる）一又は複数の対応するウェブページファイルを含み、必要に応じてその逆も含む。
【００３４】
図６は、本発明の実施形態で用いることができるコンピューティングシステムの一例６００を示す。この開示は、適切な数のコンピュータシステム６００を想定している。この開示が想定するコンピュータシステム６００の物理的形式は好適なものであればどんなものでもよい。限定ではなく一例として、コンピュータシステム６００は、組み込みコンピュータシステム、システムオンチップ（ＳＯＣ）、シングルボードコンピュータシステム（ＳＢＣ）（例えば、コンピュータオンモジュール（ＣＯＭ）やシステムオンモジュール（ＳＯＭ）など）、デスクトップコンピュータシステム、ラップトップ又はノートブックコンピュータシステム、インターラクティブキオスク、メインフレーム、コンピュータシステムのメッシュ、携帯電話、パーソナルデジタルアシスタント（ＰＤＡ）、サーバ、又はこれらの２つ又はそれ以上の組合せである。適切であれば、コンピュータシステム６００は、一又は複数のコンピュータシステム６００を含んでも良く；中央集中型でも分散型でもよく；複数のロケーションに広がっていてもよく；複数のマシンにわたっていてもよく；一又は複数のネットワークに一又は複数のクラウドコンポーネントを含むクラウド中にあってもよい。適切であれば、一又は複数のコンピュータシステム６００は、ここに説明又は例示した一又は複数の方法の一又は複数のステップを、空間的又は時間的に大きな制約無く、実行できる。限定ではなく一例として、一又は複数のコンピュータシステム６００は、リアルタイム又はバッチモードで、ここに説明又は例示した一又は複数の方法の一又は複数のステップを実行できる。適切であれば、一又は複数のコンピュータシステム６００は、ここに説明又は例示した一又は複数の方法の一又は複数のステップを、異なる時間に又は異なるロケーションで実行できる。
【００３５】
ある実施形態では、コンピュータシステム６００は、プロセッサ６０２、メモリ６０４、記憶装置６０６、入出力（Ｉ／Ｏ）インタフェース６０８、通信インタフェース６１０、及びバス６１２を含む。本開示では、具体的な構成で具体的な数の具体的なコンポーネントを有する具体的なコンピュータシステムを説明及び例示したが、好適な任意の構成で好適な任意の数の好適な任意のコンポーネントを有する好適な任意のコンピュータシステムを想定している。
【００３６】
ある実施形態では、プロセッサ６０２は、コンピュータプログラムを構成しているような命令を実行するハードウェアを含む。限定ではなく一例として、命令を実行するため、プロセッサ６０２は、内部レジスタ、内部キャッシュ、メモリ６０２、又は記憶装置６０６から命令を読み出し（又はフェッチし）；それをデコードして実行し；内部レジスタ、内部キャッシュ、メモリ６０２、又は記憶装置６０６に一又は複数の結果を書き込む。ある実施形態では、プロセッサ６０２は、データ、命令、又はアドレスのために一又は複数の内部キャッシュを含む。本開示では、適切であれば、プロセッサ６０２は好適な任意の数の好適な任意のキャッシュを含むことを想定している。限定ではなく一例として、プロセッサ６０２は、一又は複数の命令キャッシュ、一又は複数のデータキャッシュ、及び一又は複数の変換ルックアサイドバッファ（ＴＬＢ）を含む。命令キャッシュ中の命令は、メモリ６０２又は記憶装置６０６中の命令のコピーであり、命令キャッシュはプロセッサ６０２によるこれらの命令の読み出しを高速化できる。データキャッシュ中のデータは、プロセッサ６０２において実行されるメモリ６０２又は記憶装置６０６中のデータのコピー；プロセッサ６０２において実行される後の命令によりアクセスされ、又はメモリ６０２又は記憶装置６０６に書き込まれる、プロセッサ６０２において実行された前の命令の結果；又はその他の好適なデータである。データキャッシュによりプロセッサ６０２による読み書き動作が高速化できる。ＴＬＢにより、プロセッサ６０２の仮想アドレス変換が高速化できる。ある実施形態では、プロセッサ６０２は、データ、命令、又はアドレスのために一又は複数の内部レジスタを含む。本開示では、適切であれば、プロセッサ６０２は好適な任意の数の好適な任意のレジスタを含むことを想定している。適切であれば、プロセッサ６０２は、一又は複数の算術演算論理ユニットを含んでも良く；マルチコアプロセッサでもよく；一又は複数のプロセッサ６０２を含んでもよい。本開示では、具体的なプロセッサを説明及び例示したが、任意の好適なプロセッサでもよい。
【００３７】
ある実施形態では、メモリ６０２は、プロセッサ６０２が実行する命令、又はプロセッサ６０２が処理するデータを格納するメインメモリを含む。限定ではなく一例として、コンピュータシステム６００は、記憶装置６０６又はその他のソース（例えば、他のコンピュータシステム６００）からメモリ６０２に命令をロードできる。プロセッサ６０２は、メモリ６０２から内部レジスタ又は内部キャッシュに命令をロードできる。プロセッサ６０２は、命令を実行するため、内部レジスタ又は内部キャッシュから命令を読み出し、それをデコードする。命令の実行中又はその後、プロセッサ６０２は、内部レジスタ又は内部キャッシュに、一又は複数の結果（これは中間結果でも最終結果でもよい）を書き込む。プロセッサ６０２は、一又は複数の結果をメモリ６０２に書き込む。ある実施形態では、プロセッサ６０２は、一又は複数の内部レジスタ又は内部キャッシュ中の又はメモリ６０２（この点、記憶装置６０６等とは異なる）中の命令のみを実行し、一又は複数の内部レジスタ又は内部キャッシュ中の、又はメモリ６０２（この点、記憶装置６０６等とは異なる）中のデータのみを処理する。一又は複数のメモリバス（各々がアドレスバスとデータバスを含んでいてもよい）は、プロセッサ６０２をメモリ６０４に結合する。バス６１２は、以下に説明するように、一又は複数のバスを含む。ある実施形態では、一又は複数のメモリ管理ユニット（ＭＭＵ）がプロセッサ６０２とメモリ６０４との間にあり、プロセッサ６０２により要求されたメモリ６０４へのアクセスを容易にする。ある実施形態では、メモリ６０２は、ランダムアクセスメモリ（ＲＡＭ）を含む。このＲＡＭは、揮発性メモリであってもよく、適切であれば、このＲＡＭはダイナミックＲＡＭ（ＤＲＡＭ）又はスタティックＲＡＭ（ＳＲＡＭ）である。さらに、適切であれば、このＲＡＭはシングルポートＲＡＭ又はマルチポートＲＡＭである。本開示では、ＲＡＭは任意の適切なものでよい。メモリ６０２は、適切であれば、一又は複数のメモリ６０２を含む。本開示では、具体的なメモリを説明及び例示したが、任意の好適なメモリでもよい。
【００３８】
ある実施形態では、記憶装置６０６はデータ又は命令用の大規模記憶装置を含む。限定ではなく一例として、記憶装置６０６は、ＨＤＤ、フロッピー（登録商標）ディスクドライブ、フラッシュメモリ、光ディスク、光磁気ディスク、磁気テープ、ＵＳＢ（Universal  Serial  Bus）ドライブ、又はこれらの２つ又はそれ以上の組合せである。記憶装置６０６は、適切であれば、リムーバブルメディア又は非リムーバブル（すなわち固定）メディアを含む。記憶装置６０６は、適切であれば、コンピュータシステム６００の内部にあっても外部にあってもよい。ある実施形態では、記憶装置６０６は、不揮発性の固体メモリである。ある実施形態では、メモリ６０６は、リードオンリーメモリ（ＲＯＭ）を含む。適切であれば、このＲＯＭは、マスクプログラムＲＯＭ、プログラマブルＲＯＭ（ＰＲＯＭ）、イレーザブルＰＲＯＭ（ＥＰＲＯＭ）、電気的イレーザブルＰＲＯＭ（ＥＥＰＲＯＭ）、電気的オルタラブルＲＯＭ（ＥＡＲＯＭ）、フラッシュメモリ、又はこれらの２つ又はそれ以上の組合せである。この開示が想定する大規模記憶装置６０６の物理的形式は好適なものであればどんなものでもよい。記憶装置６０６は、適切であれば、プロセッサ６０２と記憶装置６０６との間の通信を促進する一又は複数の記憶制御ユニットを含んでも良い。適切であれば、記憶装置６０６は、一又は複数の記憶装置６０６を含む。本開示では、具体的な記憶装置を説明及び例示したが、任意の好適な記憶装置でもよい。
【００３９】
ある実施形態では、Ｉ／Ｏインタフェース６０８は、コンピュータシステム６００と一又は複数のＩ／Ｏデバイスとの間の通信用の一又は複数のインタフェースを提供する、ハードウェア、ソフトウェア、又は両者を含む。コンピュータシステム６００は、適切であれば、これらの一又は複数のＩ／Ｏデバイスを含んでも良い。これらの一又は複数のＩ／Ｏデバイスにより、人とコンピュータシステム６００との間の通信が可能となる。限定ではなく一例として、Ｉ／Ｏデバイスは、キーボード、キーパッド、マイクロホン、モニタ、マウス、プリンタ、スキャナ、スピーカ、スチルカメラ、スタイラス、タブレット、タッチスクリーン、トラックボール、ビデオカメラ、その他の好適なＩ／Ｏデバイス、又はこれらの２つ又はそれ以上の組合せを含む。Ｉ／Ｏデバイスは、一又は複数のセンサを含み得る。本開示は、任意の好適なＩ／Ｏデバイスと、その任意の好適なＩ／Ｏインタフェース６０８とを想定している。適切であれば、Ｉ／Ｏインタフェース６０８は、一又は複数のデバイス、又はプロセッサ６０２にこれらの一又は複数のＩ／Ｏデバイスをドライブ可能とするソフトウェアドライバを含み得る。Ｉ／Ｏインタフェース６０８は、適切であれば、一又は複数のＩ／Ｏインタフェース６０８を含んでも良い。本開示では、具体的なＩ／Ｏインタフェースを説明及び例示したが、任意の好適なＩ／Ｏインタフェースでもよい。
【００４０】
ある実施形態では、通信インタフェース６１０は、コンピュータシステム６００と、一又は複数のその他のコンピュータシステム６００又は一又は複数のネットワークとの間の通信（例えば、パケットベース通信）の一又は複数のインタフェースを提供するハードウェア、ソフトウェア、又は両者を含む。限定でなく一例として、通信インタフェース６１０は、イーサネット（登録商標）その他の有線ネットワークで通信するためのネットワークインタフェースコントローラ（ＮＩＣ）又はネットワークアダプタ、又はＷｉＦｉネットワークなどの無線ネットワークで通信するための無線ＮＩＣ（ＷＮＩＣ）又は無線アダプタを含む。本開示は、任意の好適なネットワークと任意の好適な通信インタフェース６１０を想定している。限定ではなく一例として、コンピュータシステム６００は、アドホックネットワーク、パーソナルエリアネットワーク（ＰＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、又はインターネットの一又は複数の部分、又はこれらの２つ以上の組合せで通信できる。一又は複数のネットワークの一又は複数の部分は有線でも無線でもよい。一例として、コンピュータシステム６００は、無線ＰＡＮ（ＷＰＡＮ）（例えば、BLUETOOTH  WPAN）、ＷｉＦｉネットワーク、ＷｉＭＡＸネットワーク、セルラー電話ネットワーク（例えば、ＧＳＭ（Global  System  for  Mobile  Communications）ネットワーク）、その他の好適な無線ネットワーク、又はこれらの２つ以上の組合せで通信できる。コンピュータシステム６００は、適切であれば、これらのネットワークのいずれかのための任意の好適な通信インタフェース６１０を含む。通信インタフェース６１０は、適切であれば、一又は複数の通信インタフェース６１０を含む。本開示では、具体的な通信インタフェースを説明及び例示したが、任意の好適な通信インタフェースでもよい。
【００４１】
ある実施形態では、バス６１２は、コンピュータシステム６００のコンポーネントを相互に結合するハードウェア、ソフトウェア、又は両者を含む。限定ではなく一例として、バス６１２は、Accelerated  Graphics  Port  (AGP)その他のグラフィックスバス、Enhanced  Industry  Standard  Architecture  (EISA)バス、front-side  bus  (FSB)、HYPERTRANSPORT  (HT)インターコネクト、Industry  Standard  Architecture  (ISA)バス、INFINIBANDインターコネクト、low-pin-count  (LPC)バス、メモリバス、Micro  Channel  Architecture  (MCA)バス、Peripheral  Component  Interconnect  (PCI)バス、PCI-Express  (PCI-X)バス、serial  advanced  technology  attachment  (SATA)バス、Video  Electronics  Standards  Association  local  (VLB)バス、その他の好適なバス、又はこれらの２つ以上の組合せを含む。バス６１２は、適切であれば、一又は複数のバス６１２を含む。本開示では、具体的なバスを説明及び例示したが、任意の好適なバス又はインターコネクトでもよい。
【００４２】
ここで、コンピュータ読み取り可能記憶媒体とは、一又は複数の非一時的、有体コンピュータ読み取り可能記憶媒体処理構成を含む。限定でなく一例として、適切であれば、コンピュータ読み取り可能媒体は、半導体ベースその他の集積回路（ＩＣ）（例えば、field-programmable  gate  array  (FPGA)又はapplication-specific  IC  (ASIC)）、ハードディスク（ＨＤＤ）、ハイブリッドハードディスク（ＨＨＤ）、光ディスク（ＯＤＤ）、光磁気ディスク、光磁気ドライブ、フロッピー（登録商標）ディスク、フロッピーディスクドライブ（ＦＤＤ）、磁気テープ、ホログラフィック記憶媒体、固体ドライブ（ＳＳＤ）、ＲＡＭドライブ、SECURE  DIGITALカード、SECURE  DIGITALドライブ、その他の好適なコンピュータ読み取り可能記憶媒体、又はこれらの２つ以上の組合せを含む。ここで、コンピュータ読み取り可能記憶媒体とは、米国特許法１０１条での保護を受けられない媒体は排除している。ここで、コンピュータ読み取り可能記憶媒体とは、米国特許法第１０１条での保護を受けられない一時的な信号送信の形式（電気的又は電磁気的信号自体の伝搬など）は排除している。
【００４３】
本開示では、任意の好適な記憶媒体を実施する一又は複数のコンピュータ読み取り可能記憶媒体を想定している。ある実施形態では、適切であれば、コンピュータ読み取り可能記憶媒体は、プロセッサ６０２の一又は複数の部分（例えば、一又は複数の内部レジスタ又はキャッシュ）、メモリ６０２の一又は複数の部分、記憶装置６０６の一又は複数の部分、又はこれらの組合せを実施するものであってもよい。ある実施形態では、コンピュータ読み取り可能記憶媒体はＲＡＭ又はＲＯＭであってもよい。ある実施形態では、コンピュータ読み取り可能記憶媒体は揮発性又は永続的メモリであってもよい。ある実施形態では、一又は複数のコンピュータ読み取り可能記憶媒体はソフトウェアを化体したものである。ここで、ソフトウェアとは、適切であれば、一又は複数のアプリケーション、バイトコード、一又は複数のコンピュータプログラム、一又は複数の実行可能ファイル（executables）、一又は複数の命令、ロジック、マシンコード、一又は複数のスクリプト、又はソースコードなどである。ある実施形態では、ソフトウェアは一又は複数のアプリケーションプログラミングインタフェース（ＡＰＩ）を含む。本開示では、任意の好適なプログラミング言語又はプログラミング言語の組合せで記載又は表現された任意の好適なソフトウェアを想定している。ある実施形態では、ソフトウェアはソースコード又はオブジェクトコードとして表現される。ある実施形態では、ソフトウェアは、例えば、Ｃ、Ｐｅｒｌ、又はこれらの好適な拡張版などの高級プログラミング言語で表現される。ある実施形態では、ソフトウェアは、アセンブラ言語（又は機械語）などの低レベルプログラミング言語で表現される。ある実施形態では、ソフトウェアはＪＡＶＡで表現される。ある実施形態では、ソフトウェアは、ＨＴＭＬ（Hyper  Text  Markup  Language）、ＸＭＬ（Extensible  Markup  Language）、その他の好適なマークアップ言語で表現される。
【００４４】
本発明は、ここに説明した実施形態に対する、当業者が想到するだろうすべての変更、置換、変形、代替、修正を含むものである。同様に、適切な場合には、特許請求の範囲は、ここに説明した実施形態に対する、当業者が想到するだろうすべての変更、置換、変形、代替、修正を含むものである。
【図１】
2013543157.tif 000005
【図２】
2013543157.tif 000006
【図２Ａ】
2013543157.tif 000007
【図３】
2013543157.tif 000008
【図４】
2013543157.tif 000009
【図５】
2013543157.tif 000010
【図６】
2013543157.tif 000011
【国際調査報告】
2013543157.tif 000012
2013543157.tif 000013