(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5770851
(24)【登録日】2015年7月3日
(45)【発行日】2015年8月26日
(54)【発明の名称】ソーシャルグラフ情報を用いるロケーションランキング
(51)【国際特許分類】
G06F 13/00 20060101AFI20150806BHJP
H04M 11/08 20060101ALI20150806BHJP
H04W 4/02 20090101ALI20150806BHJP
H04M 1/00 20060101ALI20150806BHJP
G06Q 50/10 20120101ALI20150806BHJP
G06Q 30/02 20120101ALI20150806BHJP
【FI】
G06F13/00 510G
H04M11/08
H04W4/02
H04M1/00 R
G06Q50/10
G06Q30/02 150
【請求項の数】37
【全頁数】23
(21)【出願番号】特願2013-524879(P2013-524879)
(86)(22)【出願日】2011年8月11日
(65)【公表番号】特表2013-543157(P2013-543157A)
(43)【公表日】2013年11月28日
(86)【国際出願番号】US2011047383
(87)【国際公開番号】WO2012024157
(87)【国際公開日】20120223
【審査請求日】2014年8月11日
(31)【優先権主張番号】12/858,718
(32)【優先日】2010年8月18日
(33)【優先権主張国】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】508178054
【氏名又は名称】フェイスブック,インク.
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100091214
【弁理士】
【氏名又は名称】大貫 進介
(72)【発明者】
【氏名】レッドストーン,ジョシュア
(72)【発明者】
【氏名】シャロン,エイアル,エム
(72)【発明者】
【氏名】ナラヤナン,シュリニヴァーサ,ピー
【審査官】
田上 隆一
(56)【参考文献】
【文献】
特開2007−011933(JP,A)
【文献】
特表2008−517402(JP,A)
【文献】
国際公開第2009/108457(WO,A2)
【文献】
通山 和裕,実世界Folksonomyを醸成する情報交流システム,情報処理学会研究報告,日本,社団法人情報処理学会,2007年11月29日,Vol.2007 No.118,p.23〜30
(58)【調査した分野】(Int.Cl.,DB名)
G06F 13/00
(57)【特許請求の範囲】
【請求項1】
コンピューティングシステムにおいて、ユーザに関連するユーザ識別子とジオグラフィックロケーションとを含む要求を受信するステップと、
ロケーション情報のデータ記憶装置にアクセスして、前記ジオグラフィックロケーションの付近にある一又は複数の場所のセットを特定するステップと、
前記一又は複数の場所のセット中の各場所について、前記ユーザのチェックインアクティビティに対応する一又は複数の値と、前記ユーザの一又は複数のソーシャルコンタクトのチェックインアクティビティに対応する一又は複数の値とを含むユーザアクティビティデータのセットにアクセスするステップと、
前記ジオグラフィックロケーションと各場所に対応するジオグラフィックロケーションとの間の距離と、各場所の前記ユーザアクティビティデータのセット中の一又は複数の値とに基づいて、前記一又は複数の場所のセット中の場所をランク付けするステップと、
前記一又は複数の場所のセットからランク付けされた場所のセットを含む応答を送信するステップとを含む方法。
【請求項2】
前記一又は複数の場所のセット中の各場所は、前記ジオグラフィックロケーションから所定距離内にある、
請求項1に記載の方法。
【請求項3】
前記要求は、文字ストリングを含み、
前記データ記憶装置にアクセスするステップは、前記文字ストリングを前記データ記憶装置に記憶された場所に対応する場所識別子とマッチさせるステップを含む、
請求項1に記載の方法。
【請求項4】
前記文字ストリングを前記データ記憶装置に記憶された場所に対応する場所識別子とマッチさせるステップは、さらに、前記文字ストリングを各場所識別子と完全に又は部分的にマッチさせるステップを含む、
請求項3に記載の方法。
【請求項5】
前記ジオグラフィックロケーションは、地理的座標系パラメータにより特定される、
請求項1に記載の方法。
【請求項6】
前記ユーザアクティビティデータのセットは、ユーザチェックインアクティビティテーブルに配置される、
請求項1に記載の方法。
【請求項7】
前記ユーザアクティビティデータのセットは、さらに、ソーシャルネットワーキングシステム中のグローバルなユーザセットのチェックインアクティビティに対応する一又は複数の値を含む、
請求項1に記載の方法。
【請求項8】
前記ユーザアクティビティデータのセットは、ユーザチェックインアクティビティテーブルに配置される、
請求項7に記載の方法。
【請求項9】
前記ユーザの又はそのユーザのソーシャルコンタクトのチェックインアクティビティは、場所へのチェックインに関して他のユーザをタギングするステップを含む、
請求項1に記載の方法。
【請求項10】
装置であって、
メモリと、
一又は複数のプロセッサと、
コンピュータ読み取り可能命令を含むプログラムであって、実行された時、前記一又は複数のプロセッサに:
ユーザに関連するユーザ識別子とジオグラフィックロケーションとを含む要求を受信させ、
ロケーション情報のデータ記憶装置にアクセスして、前記ジオグラフィックロケーションの付近にある一又は複数の場所のセットを特定させ、
前記一又は複数の場所のセット中の各場所について、前記ユーザのチェックインアクティビティに対応する一又は複数の値と、前記ユーザの一又は複数のソーシャルコンタクトのチェックインアクティビティに対応する一又は複数の値とを含むユーザアクティビティデータのセットを発生させ、
前記ジオグラフィックロケーションと各場所に対応するジオグラフィックロケーションとの間の距離と、各場所の前記ユーザアクティビティデータのセット中の一又は複数の値とに基づいて、前記一又は複数の場所のセット中の場所をランク付けさせ、
前記一又は複数の場所のセットからランク付けされた場所のセットを含む応答を送信させる、
プログラムとを有する
装置。
【請求項11】
前記一又は複数の場所のセット中の各場所は、前記ジオグラフィックロケーションから所定距離内にある、
請求項10に記載の装置。
【請求項12】
前記要求は、文字ストリングを含み、データ記憶装置にアクセスするため、前記プログラムはさらに、前記一又は複数のプロセッサに、前記文字ストリングを前記データ記憶装置に記憶された場所に対応する場所識別子とマッチさせる命令を含む、
請求項10に記載の装置。
【請求項13】
前記文字ストリングを前記データ記憶装置に記憶された場所に対応する場所識別子とマッチするため、前記プログラムはさらに、前記一又は複数のプロセッサに、前記文字ストリングを各場所識別子と完全に又は部分的にマッチさせる命令を含む、
請求項12に記載の装置。
【請求項14】
前記ジオグラフィックロケーションは、地理的座標系パラメータにより特定される、
請求項10に記載の装置。
【請求項15】
前記ユーザアクティビティデータのセットは、ユーザチェックインアクティビティテーブルに配置される、
請求項10に記載の装置。
【請求項16】
前記ユーザアクティビティデータのセットは、さらに、ソーシャルネットワーキングシステム中のグローバルなユーザセットのチェックインアクティビティに対応する一又は複数の値を含む、
請求項10に記載の装置。
【請求項17】
前記ユーザアクティビティデータのセットは、ユーザチェックインアクティビティテーブルに配置される、
請求項16に記載の装置。
【請求項18】
前記ユーザの又はそのユーザのソーシャルコンタクトのチェックインアクティビティは、場所へのチェックインに関して他のユーザをタギングするステップを含む、
請求項10に記載の装置。
【請求項19】
命令を含む非一時的、コンピュータ読み取り可能媒体であって、前記命令は、実行された時、前記一又は複数のプロセッサに:
ユーザに関連するユーザ識別子とジオグラフィックロケーションとを含む要求にアクセスさせ、
ロケーション情報のデータ記憶装置にアクセスして、前記ジオグラフィックロケーションの付近にある一又は複数の場所のセットを特定させ、
前記一又は複数の場所のセット中の各場所について、前記ユーザのチェックインアクティビティに対応する一又は複数の値と、前記ユーザの一又は複数のソーシャルコンタクトのチェックインアクティビティに対応する一又は複数の値とを含むユーザアクティビティデータのセットにアクセスさせ、
前記ジオグラフィックロケーションと各場所に対応するジオグラフィックロケーションとの間の距離と、各場所の前記ユーザアクティビティデータのセット中の一又は複数の値とに基づいて、前記一又は複数の場所のセット中の場所をランク付けさせ、
前記一又は複数の場所のセットからランク付けされた場所のセットを含む応答を送信させる、非一時的、コンピュータ読み取り可能記憶媒体。
【請求項20】
前記ユーザの又はそのユーザのソーシャルコンタクトのチェックインアクティビティは、場所へのチェックインに関して他のユーザをタギングするステップを含む、
請求項19に記載の非一時的、コンピュータ読み取り可能媒体。
【請求項21】
一または複数のコンピューティングデバイスが、ソーシャルネットワーキングシステムの第1のユーザの識別子と、地理的ロケーションとを含む要求を受信するステップと、
前記一または複数のコンピューティングデバイスが、前記地理的ロケーションの近くにある一または複数の場所を識別するステップと、
前記一又は複数のコンピューティングデバイスが、各場所について、一又は複数のロケーションベースユーザアクティビティデータアイテムにアクセスするステップであって、ロケーションベースユーザアクティビティデータアイテムはユーザによるチェックイン、前記ソーシャルネットワーキングシステムにおいて前記ユーザにつながった他のユーザによるチェックイン、またはユーザのグローバルセットによるグローバルチェックインに基づき、少なくとも一ロケーションベースユーザアクティビティデータアイテムは、前記ソーシャルネットワーキングシステムにおいて前記第1のユーザにつながった一または複数の第2のユーザの一または複数のアクティビティに少なくとも部分的に基づき、
前記一または複数のコンピューティングデバイスが、各場所のランキングスコアを決定するステップであって、ある場所のランキングスコアは、前記地理的ロケーションからの距離と、前記ソーシャルネットワーキングシステムにおいて前記第1のユーザにつながった第2のユーザの前記アクセスされたロケーションベースユーザアクティビティデータアイテムとに部分的に基づくステップと、
前記一または複数のコンピューティングデバイスが、前記場所のランキングスコアに基づいて、前記場所の少なくとも1つに関連する情報を送信するステップと
を有する方法。
【請求項22】
ロケーションベースユーザアクティビティデータアイテムは、チェックインに関してタグ付けされたユーザのカウントに基づく、請求項21に記載の方法。
【請求項23】
チェックインに関してタグ付けされたユーザは、前記ユーザが前記チェックインを許可または了承した場合にのみ前記カウントに含められる、請求項22に記載の方法。
【請求項24】
ロケーションベースユーザアクティビティデータアイテムは、第2のユーザの前記地理的ロケーションとの示された親和性に基づく、請求項21に記載の方法。
【請求項25】
前記第2のユーザの前記地理的ロケーションとの示された親和性は、前記第2のユーザが前記地理的ロケーションを好きだという前記第2のユーザによる表示を含む、
請求項24に記載の方法。
【請求項26】
前記第2のユーザの前記地理的ロケーションとの示された親和性は、前記第2のユーザにより前記地理的ロケーションに関連するウェブページにポストされたコメントを含む、
請求項24に記載の方法。
【請求項27】
前記地理的ロケーションは、その名称、説明、カテゴリー、タグ、ロケーション情報、またはこれらの任意の組み合わせにより識別される、請求項21に記載の方法。
【請求項28】
ソフトウェアを化体した一または複数のコンピュータ読み取り可能な非一時的記憶媒体であって、前記ソフトウェアは、実行されると、
ソーシャルネットワーキングシステムの第1のユーザの識別子と、地理的ロケーションとを含む要求を受信し、
前記地理的ロケーションの近くにある一または複数の場所を識別し、
各場所について、一又は複数のロケーションベースユーザアクティビティデータアイテムにアクセスし、ロケーションベースユーザアクティビティデータアイテムはユーザによるチェックイン、前記ソーシャルネットワーキングシステムにおいて前記ユーザにつながった他のユーザによるチェックイン、またはユーザのグローバルセットによるグローバルチェックインに基づき、少なくとも一ロケーションベースユーザアクティビティデータアイテムは、前記ソーシャルネットワーキングシステムにおいて前記第1のユーザにつながった一または複数の第2のユーザの一または複数のアクティビティに少なくとも部分的に基づき、
各場所のランキングスコアを決定し、ある場所のランキングスコアは、前記地理的ロケーションからの距離と、前記ソーシャルネットワーキングシステムにおいて前記第1のユーザにつながった第2のユーザの前記アクセスされたロケーションベースユーザアクティビティデータアイテムとに部分的に基づき、
前記場所のランキングスコアに基づいて、前記場所の少なくとも1つに関連する情報を送信する
記憶媒体。
【請求項29】
ロケーションベースユーザアクティビティデータアイテムは、チェックインに関してタグ付けされたユーザのカウントに基づく、請求項28に記載の記憶媒体。
【請求項30】
チェックインに関してタグ付けされたユーザは、前記ユーザが前記チェックインを許可または了承した場合にのみ前記カウントに含められる、請求項29に記載の記憶媒体。
【請求項31】
ロケーションベースユーザアクティビティデータアイテムは、第2のユーザの前記地理的ロケーションとの示された親和性に基づく、請求項28に記載の記憶媒体。
【請求項32】
前記第2のユーザの前記地理的ロケーションとの示された親和性は、前記第2のユーザが前記地理的ロケーションを好きだという前記第2のユーザによる表示を含む、
請求項31に記載の記憶媒体。
【請求項33】
前記第2のユーザの前記地理的ロケーションとの示された親和性は、前記第2のユーザにより前記地理的ロケーションに関連するウェブページにポストされたコメントを含む、
請求項31に記載の記憶媒体。
【請求項34】
前記地理的ロケーションは、その名称、説明、カテゴリー、タグ、ロケーション情報、またはこれらの任意の組み合わせにより識別される、請求項28に記載の記憶媒体。
【請求項35】
システムであって、
一または複数のプロセッサと、
前記プロセッサに結合し、前記プロセッサにより実行可能な命令を含み、前記プロセッサは、前記命令を実行すると、
ソーシャルネットワーキングシステムの第1のユーザの識別子と、地理的ロケーションとを含む要求を受信し、
前記地理的ロケーションの近くにある一または複数の場所を識別し、
各場所について、一又は複数のロケーションベースユーザアクティビティデータアイテムにアクセスし、ロケーションベースユーザアクティビティデータアイテムはユーザによるチェックイン、前記ソーシャルネットワーキングシステムにおいて前記ユーザにつながった他のユーザによるチェックイン、またはユーザのグローバルセットによるグローバルチェックインに基づき、少なくとも一ロケーションベースユーザアクティビティデータアイテムは、前記ソーシャルネットワーキングシステムにおいて前記第1のユーザにつながった一または複数の第2のユーザの一または複数のアクティビティに少なくとも部分的に基づき、
各場所のランキングスコアを決定し、ある場所のランキングスコアは、前記地理的ロケーションからの距離と、前記ソーシャルネットワーキングシステムにおいて前記第1のユーザにつながった第2のユーザの前記アクセスされたロケーションベースユーザアクティビティデータアイテムとに部分的に基づき、
前記場所のランキングスコアに基づいて、前記場所の少なくとも1つに関連する情報を送信する
ように動作可能であるメモリとを有する
システム。
【請求項36】
ロケーションベースユーザアクティビティデータアイテムは、チェックインに関してタグ付けされたユーザのカウントに基づく、請求項35に記載のシステム。
【請求項37】
チェックインに関してタグ付けされたユーザは、前記ユーザが前記チェックインを許可または了承した場合にのみ前記カウントに含められる、請求項36に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、概してロケーションベースのネットワークサービスに関し、より具体的には、地理情報とソーシャルグラフ情報を用いてユーザのロケーションに近い関連した場所のリストを提供するロケーションベースのネットワークサービスに関する。
【背景技術】
【0002】
ソーシャルネットワーキングウェブサイトなどのソーシャルネットワーキングシステムにより、そのユーザは、そのシステムとインターラクトでき、そのシステムを通じて互いにインターラクトできる。ソーシャルネットワーキングシステムは、ユーザプロファイルと呼ばれることが多い、ユーザに関するレコードを生成して記憶する。ユーザプロファイルは、ユーザのデモグラフィック情報、通信チャンネル情報、及び個人的興味を含み得る。ソーシャルネットワーキングシステムは、ユーザのそのソーシャルネットワーキングシステム中の他のユーザとの関係のレコード(例えば、ソーシャルグラフ)も生成し記憶し、そのソーシャルネットワーキングシステム中のユーザ間のソーシャルインターラクションを促進するサービス(例えば、ウォールポスト、写真共有、又はインスタントメッセージング)を提供する。ジオソーシャルネットワーキングシステムは、ソーシャルネットワーキングシステムであってジオグラフィックサービス及び機能が用いられて追加的なソーシャルインターラクションを可能とするものである。ユーザが送信するロケーションデータやジオロケーション技術(例えば、モバイルフォン位置追跡)により、ジオソーシャルネットワークは、ユーザをその興味にマッチしたローカルの人々やイベントと結びつけることができる。
【発明の概要】
【課題を解決するための手段】
【0003】
ある実施形態は、ランク付けされた場所のリストをユーザに提供して、ある場所へのチェックインに関する場所の選択やユーザの現在の地理的ロケーションに最も近いロケーションの発見など、様々な行動(operation)を容易にするジオソーシャルネットワーキングシステムに関する。一実施形態では、ジオソーシャルネットワーキングシステムは、ジオグラフィック情報とソーシャルネットワーク情報を用いて、ユーザのロケーションに近い関連する場所のリストを生成する。場所のリストは、ユーザに近い一又は複数の場所のリストを書く場所とユーザの間の距離により、及びユーザのチェックイン活動と各場所のユーザのソーシャルコンタクトにより、ランク付けすることにより生成できる。本開示の上記の特徴、その他の特徴、態様、及び効果を、詳細な説明において、以下の図面を参照して、詳細に説明する。
【図面の簡単な説明】
【0004】
【
図1】ジオグラフィックサービスと機能を有するジオソーシャルネットワーキングシステムの一例を示す図である。
【
図2】ランク付けされた場所のリストを生成する方法例を示す図である。
【
図2A】ある場所でのユーザチェックイン活動テーブルの一例を示す図である。
【
図3】モバイルデバイス上の、ある場所にチェックインするグラフィカルユーザインタフェース例を示す図である。
【
図4】モバイルデバイス上の、ある場所にチェックインした後のグラフィカルユーザインタフェース例を示す図である。
【
図6】コンピュータシステムの一例を示す図である。
【発明を実施するための形態】
【0005】
ここで、添付した図面に示した実施形態を参照して、本発明を詳細に説明する。以下の詳細な説明では、本開示をよく理解してもらうために、詳細を具体的に説明する。しかし、当業者には言うまでもなく、これらの詳細がなくても本開示を実施することができる。他の場合には、本開示を不必要に分かりにくくしないように、周知のプロセスステップ及び/又は構造は詳細には説明しない。また、具体的な実施形態に関して本開示を説明したが、言うまでもなく、この説明は本開示を実施形態に限定することを意図したものではない。むしろ、この説明は、添付した特許請求の範囲で画定される本開示の精神と範囲に入る代替物、修正、及び等価物を含むものである。
【0006】
ソーシャルネットワーキングウェブサイトなどのソーシャルネットワーキングシステムにより、そのユーザは、そのシステムとインターラクトでき、そのシステムを通じて互いにインターラクトできる。一般的に、ソーシャルネットワーキングシステムの登録ユーザになるには、エンティティ(entity)は人間であろうとなかろうと、そのソーシャルネットワーキングシステムでアカウントを登録する。その後、登録ユーザは、例えば、正しいログインID又はユーザネームとパスワードとを入力(provide)することにより、アカウントを介してそのソーシャルネットワーキングシステムにログインできる。ここで、「ユーザ」とは、このようなソーシャルネットワーク環境とインターラクト又は通信する、又はこのようなソーシャルネットワーク環境を通じてインターラクト又は通信する、個人(人間のユーザ)、(例えば、企業、事業、サードパーティアプリケーションといった)エンティティ、又は(例えば、個人やエンティティの)グループである。
【0007】
ソーシャルネットワーキングシステムは、最初にユーザがアカウントを登録すると、「ユーザプロファイル」と呼ばれることが多い、そのユーザに関するレコードを生成して格納する。ユーザプロファイルは、ユーザにより提供された情報と、そのユーザの活動や動作に関する、そのソーシャルネットワーキングシステムを含む様々なシステムにより収集された情報とを含む。例えば、ユーザは、自分の氏名、連絡先情報、誕生日、性別、既婚・未婚の別、家族の状況、職業、教育歴、嗜好、興味、及びユーザプロファイルに含めるべきその他のデモグラフィック情報を提供する。ユーザは、友達とみなす、ソーシャルネットワーキングシステムの他のユーザを特定できる。ユーザプロファイルには、ユーザの友達又は第1級連絡先(first degree contacts)のリストが含まれる。ソーシャルネットワーキングシステムにおけるコネクションは双方向でも一方向だけでもよい。例えば、ボブとジョーが二人ともユーザであり、互いにコネクト(connect)している場合、ボブとジョーはそれぞれが互いのコネクションである。他方、ボブがサムにコネクトしてサムのポストしたコンテンツアイテムを見たいが、サムはボブにコネクトしない場合、サムはボブのコネクションであるが、ボブはサムのコネクションではない片道コネクションが形成される。ソーシャルネットワーキングシステムの実施形態により、コネクションは、一又は複数のコネクションレベル(例えば、友達の友達)を介して間接的になる。コネクションは、例えば、ユーザが具体的に他のユーザを選択して友達とすることにより、ユーザにより明示的に追加でき、又はソーシャルネットワーキングシステムにより、ユーザの共通の特徴(例えば、同じ教育機関の卒業生であるユーザ)に基づき自動的に生成される。ユーザは、頻繁に訪れるウェブサイトやウェブページを特定又はブックマークでき、これらのウェブサイトやウェブページはユーザのプロファイルに含まれる。
【0008】
ユーザは、アカウントを登録する時に、又はその後に、自分の様々な側面に関する情報(連絡先情報や興味など)を提供できる。ユーザはいつでも自分のプロファイル情報を更新できる。例えば、ユーザは、引っ越しした時、又は電話番号を変えた時に、自分の連絡先情報を更新できる。また、時間の経過とともにユーザの興味は変化するかも知れず、ユーザは時々自分のプロファイル中の興味を更新できる。システム上の特定の情報にアクセスする頻度など、ソーシャルネットワーキングシステムにおけるユーザの活動も、ユーザのプロファイルに含まれる情報を提供することがある。また、かかる情報はユーザの最近の活動を反映するように時々更新されてもよい。さらにまた、他のユーザ又はユーザのいわゆる友達又はコンタクトも、ユーザのプロファイルに影響する又はユーザのプロファイルを更新させる活動を行える。例えば、コンタクトにより、ユーザが友達として追加されても(又はユーザを友達から削除しても)よい。コンタクトもユーザのプロファイルページにメッセージを書き込める。これは一般的にウォールポストとして知られている。
【0009】
ソーシャルネットワークシステムは、ソーシャルグラフ情報を保持できる。ソーシャルグラフは、一般的に個人又はエンティティのグループ間の関係により画定でき、気軽な知り合い関係から密接な家族的絆までの関係を含み得る。ソーシャルネットワークはグラフ構造を用いて表される。グラフの各ノードは、ソーシャルネットワークのユーザ又はエンティティに対応する。2つのノードを繋ぐエッジは、二人のユーザ間の関係を表す。また、2つのノード間の隔たり度合(degree of separation)は、あるノードから他のノードに行くのに必要なホップの最小数として定義される。二人のユーザ間の隔たり度合は、そのグラフのノードにより表される二人のユーザ間の関係の尺度と考えられる。2010年4月19日に出願された米国特許出願第13/763,171号は、ここに参照援用するが、本開示の様々な実施形態で用いることができるソーシャルグラフ構造の例を説明している。
【0010】
ソーシャルネットワーキングシステムは、場所に関する情報のデータベースを保持していてもよい。場所は、レストラン、バー、鉄道駅、空港などの様々な物理的ロケーションに対応する。ある場所は、空港内のレストランやゲートなど、それ自体が場所を含むより大きな領域に対応する。一実施形態では、米国特許出願第12/763,171号明細書に記載されているように、各場所は、ソーシャルネットワーキングシステムにより保持されたソーシャルグラフ又はその他のデータ構造におけるハブノードとして保持できる。ユーザは、ソーシャルネットワーキングシステムにより、ラップトップ、デスクトップ、又はモバイルデバイスなどの有線局又は無線局によりホストされた(ブラウザなどの)クライアントアプリケーションを用いて、各場所に関する情報にアクセスできる。例えば、ソーシャルネットワーキングシステムは、場所に関する情報を要求するユーザに、ウェブページ(又はその他の構造化文書)を提供できる。ソーシャルネットワーキングシステムは、ユーザプロファイルと場所情報に加え、ユーザに関するその他の情報をトラック又は維持してもよい。例えば、ソーシャルネットワーキングシステムは、ユーザのロケーションを記録する一又は複数のロケーションベースサービスを含むジオソーシャルネットワーキングシステム機能をサポートしてもよい。例えば、ユーザは、そのモバイルデバイスによりホストされている特殊用途クライアントアプリケーション(又は、ブラウザクライアントを用いてウェブベース又はネットワークベースのアプリケーション)を用いて、ジオソーシャルネットワーキングシステムにアクセスできる。クライアントアプリケーションは、モバイルデバイスによりサポートされているグローバルポジショニングシステム(GPS)又はその他のジオロケーション機能に自動的にアクセスして、ユーザの現在のロケーションをジオソーシャルネットワーキングシステムにレポートする。また、クライアントアプリケーションは、ユーザが様々なロケーションにチェックインして、他のユーザにこのロケーションを連絡できるジオソーシャルネットワーキングシステムをサポートできる。以下により詳しく説明するように、ある場所へのチェックインは、ユーザが物理的にある場所にいて、モバイルデバイスを用いて、ジオソーシャルネットワーキングシステムにアクセスして、ユーザがその場所にいることを登録した時に起きる。以下に説明するように、ユーザは、現在の自分のロケーションに近い既存の場所のリストから場所を選択してもよいし、新しい場所を生成してもよい。ユーザは、ある場所にチェックインする時に、テキストストリングのコメントを提供することもできる。また、ユーザは、チェックインに関して一又は複数の他のユーザ(ユーザの友達など)を特定し、その人たちをそのチェックインと関連付けることもできる。米国特許出願第12/574,614号は、ここであらゆる目的のために参照援用するが、第1のユーザに、ある場所の他のユーザにチェックインできるシステムを説明している。コメントと、ユーザがチェックインした時間に対応するタイムスタンプとを含む入力が、他のユーザに表示される。例えば、ユーザのチェックインアクティビティの記録がデータベースに格納される。ソーシャルネットワーキングシステムは、ある場所におけるユーザのチェックインアクティビティに関連する一又は複数の記録を選択して、かかるチェックインアクティビティを、ある場所に対応するウェブページ(又はその他の構造化文書)に含めることができる。例えば、ソーシャルネットワーキングシステムは、ある場所に対応するページを要求したユーザの友達又はその他のソーシャルコンタクトに関連するチェックインアクティビティを選択できる。ユーザは、自分が関連しているイベントを追加、削除、又は更新できる。例えば、ユーザは、自分が出席する予定をしている日時に関連したソーシャルイベントを更新し、自分のウォールポストに自分が出席した過去のイベントに関するコメントをできる。
【0011】
ユーザは、自分の情報を他のユーザやサードパーティアプリケーションと共有したいかも知れないししたくないかもしれない。また、ユーザは、自分の情報を特定のユーザやサードパーティアプリケーションとだけ共有したいかも知れない。ユーザは、場所にチェックインする時、自分のユーザプロファイルに関連するプライバシー設定により、自分の情報を他のユーザやサードパーティアプリケーションと共有するかコントロールできる。例えば、ユーザは、自分に関連する各ユーザデータのプライバシー設定を選択できる。プライバシー設定は、ユーザデータにアクセスできるエンティティ(例えば、他のユーザ、ユーザのコネクション、友達の友達、又はサードパーティアプリケーション)のセットを画定又は特定する。プライバシー設定は様々な粒度レベルで指定できる。例えば、ソーシャルネットワーク中の具体的なエンティティ(例えば、他のユーザ)、ユーザがコネクションを有する所定グループ、特定のコネクションのタイプ、ユーザの全コネクション、ユーザのコネクション中のすべての第1級コネクション、ソーシャルネットワーク全体、又はインターネット全体を指定できる。ユーザは、ポストされるすべてのユーザデータに対して、デフォルトのプライバシー設定を選択できる。また、ユーザは、具体的にあるエンティティを排除して、ユーザデータや特定タイプのユーザデータをみられないようにできる。
【0012】
図1は、ロケーションベースのサービスと機能を有するソーシャルネットワーキングシステムの一例を示す図である。ある実施形態では、ソーシャルネットワーキングシステムは、ユーザプロファイルデータベース101にユーザプロファイルデータを格納できる。ある実施形態では、このソーシャルネットワーキングシステムは、イベントデータベース102にイベントデータを格納できる。ある実施形態では、ソーシャルネットワーキングシステムは、プライバシーポリシーデータベース103にユーザプライバシーポリシーデータを格納できる。ある実施形態では、ソーシャルネットワーキングシステムは、ロケーションデータベース104にジオグラフィック&ロケーションデータを格納できる。ある実施形態では、データベース101、102,103及び104は、ソーシャルネットワーキングシステムのフロントエンド120に動作可能に接続されている。ある実施形態では、フロントエンド120は、ネットワーククラウド121を通じてクライアントデバイス122とインターラクトできる。クライアントデバイス122は、一般的には、コンピュータネットワークを通じて(例えば、遠隔地と)通信する機能を有するコンピュータやコンピューティングデバイスである。クライアントデバイス122は、デスクトップコンピュータ、ラップトップコンピュータ、パーソナルデジタルアシスタント(PDA)、車内用又は車外用ナビゲーションシステム、スマートフォンその他のセルラー電話や移動電話、携帯ゲームデバイス、その他の好適なコンピューティングデバイスである。クライアントデバイス122は、(例えば、Microsoft Windows Internet Explorer、Mozilla Firefox、Apple Safari、Google Chrome、及びOperaなどの)ウェブブラウザなどの一又は複数のクライアントアプリケーションを実行して、コンピュータネットワーク上のコンテンツにアクセスして見ることができる。フロントエンド120は、ウェブ又はHTTPサーバ機能その他の機能を有し、ユーザはフロントエンド120により、ソーシャルネットワーキングシステムにアクセスできる。ネットワーククラウド121は、概して、クライアントデバイス122がソーシャルネットワークシステムにアクセスできるネットワーク又は複数のネットワークの集まり(例えば、インターネット、企業イントラネット、又は両者の組合せ)を表す。
【0013】
ある実施形態では、ロケーションデータベース104は、モバイルデバイスなどのオブジェクトのリアルワールドでのジオグラフィックロケーションを特定するジオロケーションデータを格納している。例えば、インターネットに接続されたコンピュータのジオグラフィックロケーションを、そのコンピュータのIPアドレスで特定できる。例えば、WiFiとGPSの機能を備えたセルラー電話のジオグラフィックロケーションは、セルタワー三角法、WiFiポジショニング、及び/又はGPSポジショニングにより特定できる。ある実施形態では、ロケーションデータベース104は、複数の場所のジオグラフィックロケーションと付加的情報を格納している。例えば、ある場所は、地元企業、関心地点(例えば、カリフォルニア州サンフランシスコのユニオンスクエア)、大学、都市、自然公園などである。あるユーザやユーザグループについては、ある場所はより具体的なものでもよく、例えば、オフィスビル内のある人のデスク、ある家のベッドルーム、街角における渋滞などであってもよい。場所(例えば、ローカルのコーヒーショップ)のジオグラフィックロケーションは、住所、一組の地理的座標(緯度と経度)、他の場所への参照(例えば、「駅の隣のコーヒーショップ」や他の場所からある半径又は相対距離内)であってもよい。例えば、面積が広い場所(例えば、ヨセミテ自然公園)のジオグラフィックロケーションは、その場所の輪郭を近似した形状(例えば、円や多角形)であってもよいし、その形状の重心であってもよい。他の実施形態では、場所は他の場所の内側にあり、階層関係を形成していてもよい。例えば、空港は複数のターミナルを有する場所である。これらのターミナルは、より大きく包含される場所、すなわち空港に関連する、又は関連しない場所であってもよい。ロケーションデータベース104も、説明、サムネールマップパラメータ、営業時間、連絡先情報、ウェブアドレス、ウェブリンク、写真、アイコン、バッジ、ポイント、又はその場所のユーザレビューやレーティングなど、その場所の付加的情報を保持できる。ロケーションデータベース104により保持された場所オブジェクトも、その場所に関連する一又は複数のタグ(例えば、コーヒーショップ、クロスストリートなど)と、場所探しを容易にする一又は複数のカテゴリー識別子とを含み得る。ある実施形態では、ロケーションデータベース104はユーザのロケーションデータを格納できる。
【0014】
ロケーションデータベース104中の場所は、システムにより生成又は画定され、及び/又はユーザにより生成されたものでもよい。例えば、ロケーションデータベース104は、例えば、ユーザのチェックインアクティビティに関する、ユーザにより生成された場所に関する情報を格納できる。例えば、ユーザは、場所(例えば、新しいレストランやコーヒーショップ)を生成でき、場所サービス110は、ユーザが生成した場所をロケーションデータベース104に格納する。上記の通り、ソーシャルネットワーキングシステムは、場所に関する一又は複数のデータ構造を、例えばその場所に対応するデータオブジェクトとユーザのチェックインに対応するデータオブジェクトを、生成できる。ある実施形態では、ソーシャルネットワーキングシステムは、米国特許出願第12/763,171号で開示されたハイブリッドソーシャルグラフ構造を保持している場合、ソーシャルグラフ中のユーザに関連するノードと、その場所に関連するハブノードとの間に、「チェックイン」エッジ関係を生成できる。チェックインデータオブジェクトは、ユーザに関連したユーザ識別子、場所識別子(又は場所オブジェクトやハブノードへのポインタ)、タイムスタンプ、その他のメタデータ(ユーザのモバイルデバイスのジオグラフィックロケーションの座標やユーザのコメントなど)を含み得る。
【0015】
ある実施形態では、場所サービス110は、データベース101,102,103及び104に動作可能に接続されている。チェックインや近い場所の一般的な検索に関して、ユーザは、(その場所の名称、又は場所に関連するカテゴリーやコンセプトなど)場所及び/又はジオグラフィックロケーションを記述するテキスト(例えば、名称の一部又は全部を含むテキストストリング)を、場所サービス110に提供することにより、自分の現在のロケーションに近い場所を検索できる。場所サービス110は、ロケーションデータベース104を検索して、ユーザに、(テキストストリングが提供されていれば)それにマッチするジオグラフィックロケーションに近い場所のリストを提供する。しかし、ユーザの現在のロケーションからの距離に基づく近い場所の場所検索により、そのユーザに関係する、又は関係しない結果が得られる。例えば、ユーザがサンフランシスコの金融街(例えば、カリフォルニア州サンフランシスコ市モンゴメリー通り100)の近くにいて、近くのコーヒーショップを検索したいとき、場所サーチの結果には、徒歩圏内のコーヒーショップ10店舗のランダムなリストが含まれる。しかし、場所検索が、ユーザプロファイル、ソーシャルネットワーク及び/又はソーシャルグラフ情報、及びソーシャルネットワークの他のユーザのチェックインアクティビティを考慮したものであれば、場所検索の結果はもっとユーザに関連性のあるものとなるだろう。前述の例では、10店舗のコーヒーショップは、ユーザの又はユーザの友達のアクティビティに応じてランキングできる。例えば、その10店舗のコーヒーショップのうち一にユーザがチェックインした回数、その10店舗のコーヒーショップのうち一にユーザの友達がどのくらいの頻度でチェックインしたか、その場所にチェックインしたことがあるユーザの友達の数(及び/又はユーザ一般の数)、その10店舗のコーヒーショップのどれがユーザの友達により「私のお気に入りのコーヒーショップ」としてマークされているか、ユーザの友達(又はユーザ一般)が「いいね(liked)」としたか、又は場所に対して親しみを示したか(例えば、その場所に対応するページにコメントをポストしたか)に応じて、ランキングできる。他の実施形態では、場所はユーザの友達のレーティング及び/又はレビューによりランクできる。
【0016】
図2は、ランク付けされた場所のリストを生成する方法例を示す図である。ある実施形態では、場所サービス110は、ユーザから検索要求を受信する。この検索要求は、チェックインワークフローの一部として送信されてもよい。ある実施形態では、検索要求は、ユーザのユーザIDと、そのユーザのジオグラフィックロケーションとを含む(ステップ201)。ある実施形態では、ユーザの検索要求のジオグラフィックロケーションは、又はユーザの現在のロケーションは、ジオグラフィック座標系パラメータにより特定できる。例えば、ユーザは、ソーシャルネットワーキングシステムのウェブページにユーザIDとアドレスとを提供することにより、チェックインできる。例えば、ユーザは、GPSを備えてモバイルデバイス上にホストされたクライアントアプリケーションにチェックインでき、クライアントアプリケーションはそのモバイルデバイスのGPS機能にアクセスして、緯度と経度の数字のペアでジオグラフィックロケーションとユーザIDを、場所サービス110に提供できる。ある実施形態では、場所サーバ110は、ロケーションデータベース104にアクセスして、ユーザの現在のロケーションに近い一又は複数の場所のセットを特定できる。ある実施形態では、そのユーザの現在のロケーションに近い一又は複数の場所のセット中の各場所は、ユーザの現在の場所からある閾値距離内にある(ステップ202)。例えば、場所サービス110は、ロケーションデータベース104にアクセスして、ユーザの現在のロケーションからある閾値距離内にある場所のリストを作る(compile)。一実施形態では、返される場所のリスト中の場所の数はある最大数に限定してもよい。
【0017】
ある実施形態では、検索要求には文字ストリングが含まれる。ある実施形態では、場所サービス110は、ロケーションデータベース104にアクセスして、各場所の場所識別子(例えば、名称やメタデータ値)が部分的に又は完全にその文字ストリングとマッチし、ユーザの現在のロケーションからある閾値距離内にある一又は複数の場所のセットを特定できる。例えば、ユーザは、近くのコーヒーショップにチェックインしたい場合、ウェブページ又はクライアントアプリケーションに「コーヒー」とタイプして、検索要求できる。場所サービス110は、Starbucks Coffee、Peet's Coffee and Tea、Dunkin' Donutsなどの近くのコーヒーショップのリストを返す。
図3は、ユーザインタフェースであり、ユーザが「カフェ」の語を入力したところを示す。ユーザインタフェースを提供するクライアントアプリケーションは、ユーザが追加テキストを入力し、テキスト入力フィールド中の既存テキストを変更するにつれ、検索要求中のテキストストリングを定期的に送信し、場合によっては、場所サービス110に更新された場所のリストをクライアントアプリケーションに送信させる。他の実施形態では、クライアントアプリケーションは、ユーザの現在のロケーションがあす閾値距離より大きく変化した場合、検索要求を再送もできる。検索要求は、結果をフィルタ及び/又はランキングするのに使えるタグやカテゴリーなどの他のパラメータも含み得る。
【0018】
ある実施形態では、ユーザの現在のロケーションに近い一又は複数の場所のセット中の各場所について、場所サービス110は、ロケーションデータベース104とユーザプロファイルデータベース101にアクセスして、ユーザアクティビティデータのセットを発生(又は前に発生されたユーザアクティビティデータのキャッシュ又はデータ記憶にアクセス)できる。ある実施形態では、各場所のユーザアクティビティデータのセットは、ユーザのチェックインアクティビティに対応する一又は複数の値(CS1,CS2)と、そのユーザの一又は複数の友達のチェックインアクティビティに対応する一又は複数の値(CS3,CS4)を含む。ある実施形態では、ユーザアクティビティデータのセットは、ソーシャルネットワーキングシステム中のグローバルなユーザセットのチェックインアクティビティに対応する一又は複数の値を含む。ある実施形態では、ユーザアクティビティデータのセットは、各場所のユーザチェックインアクティビティテーブルに整理(arrange)される(ステップ203)。
図2Aは、ある場所でのユーザチェックイン活動テーブルの一例を示す図である。一実施形態では、場所サービス110は、チェックイン要求中のユーザ識別子を用いてユーザプロファイルデータベース101にアクセスし、一又は複数の友達を特定し、各場所について、その場所におけるその一又は複数の友達のチェックインアクティビティを決定する。一実施形態では、ロケーションデータベース104は、チェックインについて、場所の名称、チェックインに対応するタイムスタンプ、チェックインに関連するユーザ識別子、チェックイン要求で与えられたユーザのジオグラフィックロケーション、及び適用あればそのチェックインイベントに関してタグ付けしたそのユーザの友達のリストを含むチェックインデータを保持する。場所サービス110は、タイムスタンプを用いて、ある場所におけるチェックインの総数と、その場所における最近のチェックインをカウントしてもよい。ここで、最近とは、閾値期間により画定され、例えば先週やその他の期間である。チェックインアクティビティテーブル中の値は、
図2Aに示した左端列の各エントリーに対応するユーザによるチェックインの数に基づいてもよい。ある実施形態では、チェックインに関してタグ付けされたユーザの数も、別のチェックイン又は重み付け値としてカウントされる。ある実施形態では、「タグ付けされたユーザ」のチェックインは、そのタグ付けされたユーザがそのチェックインを認めるか了承した場合にのみ、カウントされる。他の実施形態では、現在の検索により近いチェックイン(総数の列又は最近の数の列)には、古いチェックインより大きな重みが付けられる。例えば、昨日記録されたチェックインは、新近性重み(recency weight)が1であり、7日前に記録されたチェックインは、新近性重みが0.5である。また、友達のチェックインフィールドは、第1級の友達(first degree friends)に限定されても、より大きな分離度(additional degrees of separation)に広げてもよい。分離度を用いて各チェックインを重み付けすることもできる。したがって、テーブルの各フィールドの値は、チェックインの時間と、そのユーザあらの各関連ユーザの分離度とに基づく、チェックインの重み付け合計を表す。例えば、ある場所は一時的なものであり、あるイベントと関連付けられていてもよい。チェックインに付与される重みは、時間に基づき減衰し、反復されないイベントに対応する場所は、場所のリストにおいてランクが下げられてもよい。また、信頼がより大きいユーザからのチェックインは、ユーザの友達であろうとなかろうと、その他のチェックインより大きい重み付けがされる。ユーザアクションに基づくユーザの信頼性レベルを決定するプロセスの例は、2007年2月2日出願の米国特許出願第11/701,744号に、より一般的に説明されている。この出願は、すべての目的において、その全体をここに参照援用する。
【0019】
ある実施形態では、場所サービス110は、イベントと他のユーザデータとを、各場所のチェックインアクティビティのセットに、追加的に含める。言い換えると、ある場所を特定するユーザにより生成されたイベントは、チェックインと同様にカウントされ得る。例えば、ユーザはイベントを構成し、ロケーション又は場所はカリフォルニア州サンマテオ市のダウンタウン周辺の「カフェX」であり、
図2Aが場所「カフェX」のチェックインアクティビティテーブルであると仮定する。ユーザがあるイベントに関してロケーションデータベース104中のこの場所を生成した場合、場所サービス110は、そのイベントに対応するその場所のユーザチェックインの回数をインクリメントできる。ユーザの友達が、先月、この場所を、イベントの一部として「私のお気に入りのコーヒーショップ」としてマークした場合、場所サービス110は、友達による最近のチェックインの回数をインクリメントできる。
【0020】
ある実施形態では、場所サービス110は、各場所のランキングスコアを計算することにより、ユーザの現在のロケーションに近い一又は複数の場所のセット中の場所をランク付けできる。ランキングスコアは、ユーザの現在のロケーションと各場所のジオグラフィックロケーションとの間の距離と、各場所のユーザの一又は複数のソーシャルコンタクトのチェックインアクティビティに対応する一又は複数の値とに基づく(ステップ204)。一実施形態では、ランキングスコアは7つのコンポーネントスコアの合計である。第1のコンポーネントスコアは距離に基づき、残りの6つのコンポーネントスコア(CS1乃至CS6)はソーシャルアクティビティテーブルの値に、部分的に、基づく。一実施形態では、ランキングスコアは次の式により計算できる:ランキングスコア=距離−コンポーネントスコア(CS1乃至CS6)の合計。
【0021】
また、6つのコンポーネントスコアは個別に重み付けできる。一実施形態では、コンポーネントスコアは、距離コンポーネントスコアに関連して重み付けされ、(コンポーネントスコアに反映された)ソーシャルコンテキストが、距離に関連して、どのくらいの価値があるかを反映する。ある実施形態では、(アクティビティテーブルのソーシャルコンテキストコンポーネントスコアに反映される)ソーシャルコンテキストは、閾値距離より小さく制限される。これは、グローバルな制限でもよいし、各コンポーネントスコアに対する制限であってもよい。例えば、ユーザが近くのコーヒーショップへのチェックインを要求すると、場所サービス110は、ユーザの現在のロケーションから60m離れたコーヒーショップ「X」を、そのユーザの現在のロケーションから30m離れた他のコーヒーショップ「Y」より高くランク付けできる。ユーザ、そのユーザの友達、グローバルなユーザセットのどれも、コーヒーショップYより多くの回数コーヒーショップXにチェックインしているからである。例えば、場所サービス110は、そのユーザの友達が10分前にチェックインしたばかりのコーヒーショップを、過去3時間にわたりそのユーザの友達がチェックインしていない他のコーヒーショップより高くランク付けできる。
【0022】
一実施形態では、ランキング機能は、チェックインレートにより定義される一定の人気度を有する場所については、時間的に一定になるよう設計される。具体的に、場所のセットの人気度が変化しない、すなわち各場所があるチェックインレートを有する教育的例(didactic example)を考える。一実施形態では、ランキング機能は、チェックイン数が時間的に増えても、ランキングは変更しない。これは、各コンポーネントカテゴリーにおける最大数の割合としてチェックインを表し、それをランキングの基礎として用いることにより、実現できる。例えば、ある場所におけるユーザのチェックインの総数に適用される重み付けは、そのユーザによるすべての場所にわたるチェックインの総数に基づく。例えば、システムは、あるコンポーネントカテゴリーにおける最大カウントと実際カウント(CS1、CS2など)を入力として受け取り、0と1の間の値を返す重み付け関数を用いることができる。一実施形態では、重みは、カウントがゼロである時、ゼロに設定され、カウントが最大カウントに等しい時、1に設定される。この値の範囲において、最大カウント($max)に対する現カウント($count)の比が減少するにつれ、重み値は対数的に減少する。一パラメータ($small_count_tolerance)が減少率を制御する。比が1/$small_count_toleranceより下がると、重みはゼロになる。次の表は、ある実施形態において減少がどう変化するかを示す。各行は$small_count_toleranceの仮設値である。各列は$maxの割合として表した$countに対応する。報告されている数字は、返される重みである。
【0023】
【表1】
重みが対数的に減少する理由は、$maxより小さいチェックインカウントの範囲の重みを意味のあるものに支持するためである。例えば、ある場所のチェックインが他の場所のチェックインより多い場合、チェックインが最大の場所が、ユーザが探している場所ではない場合、他の場所との間の人気度の違いを解消することが望ましい。以下は、上記の入力に基づき重みを返す擬似関数(genWeight)である。
【0024】
【数1】
一実施形態では、重み付けは、上記の関数を用いて各コンポーネントカテゴリー(CS1、CS2など)について計算される。この重みを用いて、他の関数により返される値にかけると、コンポーネント(例えば、CS1)のカウントを距離値と同一視できる。すべての重み付けしたコンポーネントの距離値は、決定された距離に加算されて、場所のスコアが計算できる。
【0025】
一実施形態では、上に示したソーシャルファクタに基づく各コンポーネントスコアは、独立に評価される。しかし、他の実施形態では、ファクタは全体的に考えてもよい。例えば、ユーザが、ある回数(例えば10回)自宅にチェックインすると、これは近くの場所のそのユーザに関連するチェックインの最大数である。これは、ソーシャルネットワークのすべてのユーザによるチェックインが比較して非常に多い近くの場所と関連づけて考えるべきである。
【0026】
ある実施形態では、場所サービス110は、ユーザに、ランキングされた順序でユーザの現在のロケーションに近い一又は複数の場所のセットを提供し、ユーザにそれを選択させてチェックインさせる(ステップ205)。
【0027】
図3は、モバイルデバイス上の、ある場所にチェックインするグラフィカルユーザインタフェース例を示す図である。ユーザは、そのGPS装備セルラー電話において、クライアントアプリケーション中に「カフェ」をタイプインしてチェックインする。ソーシャルネットワーキングシステムは、ユーザ、GPS座標のペア、及び文字ストリング(例えば「カフェ」)を受信し、ロケーション、ユーザ、及びイベントのデータ記憶にアクセスし、そのユーザがチェックインする近くの場所のランク付けされたリストを返す。
図4は、モバイルデバイス上の、ある場所にチェックインした後のグラフィカルユーザインタフェース例を示す図である。ユーザが
図3で(ランク付けされたリストで示唆されたように)「カフェX」にチェックインした後、クライアントアプリケーションは、カフェXに関するユーザのソーシャルコンタクトの最近のアクティビティを表示する。ロケーションサービス110は、ユーザチェックインを記録し、後で利用することは上記の通りである。
【0028】
上記の実施形態は、様々なネットワーク構成で実施できるが、以下は、教育的目的であって限定的目的ではないネットワーク環境例を示す。
図5は、ネットワーク環境の一例500を示す図である。ネットワーク環境500は、一又は複数のサーバ520と一又は複数のクライアント530とを互いに結合しているネットワーク510を含む。ネットワーク環境500は、また、一又は複数のサーバ520にリンクされた一又は複数のデータ記憶540を含む。ある実施形態はネットワーク環境500で実施できる。例えば、場所サービス110とソーシャルネットワーキングシステム120とは、一又は複数のサーバ520によりホストされたソフトウェアプログラムで記述され得る。例えば、イベントデータベース102は、一又は複数の記憶540に格納される。一部の実施形態では、ネットワーク510は、イントラネット、エクストラネット、仮想プライベートネットワーク(VPN)、ローカルエリアネットワーク(LAN)、ワイヤレスLAN(WLAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、インターネットの一部、その他のネットワーク510、またはこれらの2つ以上の組合せである。本発明では、ネットワーク510は任意の適切なものでよい。
【0029】
一又は複数のリンク550は、サーバ520やクライアント530をネットワーク510に結合する。ある実施形態では、一又は複数のリンク550はそれぞれ一又は複数の有線リンク、無線リンクまたは光リンク550を含む。ある実施形態では、一又は複数のリンク550は、それぞれ、イントラネット、エクストラネット、VPN、LAN、WLAN、WAN、MAN、インターネットの一部、その他のリンク550、またはこれらの2つ又はそれ以上のリンク550の組合せである。本開示は、サーバ520とクライアント530をネットワーク510に結合する任意の好適なリンク550を想定している。
【0030】
ある実施形態では、各サーバ520は、中央集中サーバでもよいし、複数のコンピュータや複数のデータセンターに分散した分散サーバであってもよい。サーバ520は、例えば、ウェブサーバ、ニュースサーバ、メールサーバ、メッセージサーバ、広告サーバ、ファイルサーバ、アプリケーションサーバ、エクスチェンジサーバ、データベースサーバ、又はプロキシサーバなど、様々なタイプのものであるが、これらに限定されない。ある実施形態では、各サーバ520は、サーバ520により実施又はサポートされる適切な機能を実現する、ハードウェア、ソフトウェア、組み込み論理コンポーネント、又はかかる2又はそれ以上のコンポーネントの組合せを含む。例えば、ウェブサーバは、一般的に、ウェブページ又はその要素を含むウェブサイトをホストできる。より具体的には、ウェブサーバは、HTMLファイルやその他のファイルタイプをホストでき、又は要求に応じてファイルを動的に生成又は構成でき、それをクライアント530からのHTTPその他の要求に応じてクライアント530に送信できる。メールサーバは、一般的に、様々なクライアント530に電子メールサービスを提供できる。データベースサーバは、一般的に、一又は複数のデータ記憶装置に格納されたデータを管理するインタフェースを提供できる。
【0031】
ある実施形態では、一又は複数のデータ記憶装置540は、一又は複数のリンク550を介して一又は複数のサーバ520に通賃可能にリンクされている。ある実施形態では、データ記憶540を用いて様々なタイプの情報を格納できる。ある実施形態では、データ記憶540に格納された情報は、あるデータ構造により組織化されていてもよい。ある実施形態では、各データ記憶540はリレーショナルデータベースである。ある実施形態では、サーバ520又はクライアント530が、データ記憶540に格納された情報を管理、例えば読み出し、修正、追加、削除できるようにするインタフェースが提供される。
【0032】
ある実施形態では、各クライアント530は、クライアント530により実施又はサポートされる適切な機能を実現できる、ハードウェア、ソフトウェア、組み込み論理コンポーネント、又はかかる2又はそれ以上のコンポーネントの組合せを含む。例えば、クライアント530は、デスクトップコンピュータシステム、ノートブックコンピュータシステム、ネットブックコンピュータシステム、ハンドヘルド電子装置、又は携帯電話であるが、これらに限定されない。本発明では、クライアント530は任意の適切なものでよい。クライアント530により、クライアント530のネットワークユーザは、ネットワーク510にアクセス可能である。クライアント530により、そのユーザは、他のクライアント530の他のユーザと通信可能である。
【0033】
クライアント530は、MICROSOFT INTERNET EXPLORER、GOOGLE CHROME又はMOZILLA FIREFOXなどのウェブブラウザ532を有し、TOOLBAR又はYAHOO TOOLBARなどの一又は複数のアドオン、プラグイン、又はその他のエクステンションを有する。クライアント530のユーザは、ウェブブラウザ532をサーバ520に向かわせるURL(Uniform Resource Locator)その他のアドレスを入力し、ウェブブラウザ532は、HTTP(Hyper Text Transfer Protocol)リクエストを発生し、そのHTTPリクエストをサーバ520に送信する。サーバ520は、そのHTTPリクエストを受信し、そのHTTPリクエストに応じた一又は複数のHTML(Hyper Text Markup Language)ファイルをクライアント530に送信する。クライアント530は、サーバ520からのHTMLファイルに基づきウェブページをレンダリングして、ユーザに提示する。本開示では、ウェブページファイルは適切なものであればいかなるものでもよい。限定ではなく一例として、ウェブページは、必要に応じて、HTMLファイル、XHTML(Extensible Hyper Text Markup Language)ファイル、又はXML(Extensible Markup Language)からレンダリングできる。かかるページは、例えば、JAVASCRIPT、JAVA、MICROSOFT SILVERLIGHT、マークアップ言語の組合せ、及びAJAX(Asynchronous JAVASCRIPT and XML)などで記述されたスクリプトも実行できる。ここで、ウェブページへの参照は、(ブラウザがそのウェブページをレンダリングするのに用いる)一又は複数の対応するウェブページファイルを含み、必要に応じてその逆も含む。
【0034】
図6は、本発明の実施形態で用いることができるコンピューティングシステムの一例600を示す。この開示は、適切な数のコンピュータシステム600を想定している。この開示が想定するコンピュータシステム600の物理的形式は好適なものであればどんなものでもよい。限定ではなく一例として、コンピュータシステム600は、組み込みコンピュータシステム、システムオンチップ(SOC)、シングルボードコンピュータシステム(SBC)(例えば、コンピュータオンモジュール(COM)やシステムオンモジュール(SOM)など)、デスクトップコンピュータシステム、ラップトップ又はノートブックコンピュータシステム、インターラクティブキオスク、メインフレーム、コンピュータシステムのメッシュ、携帯電話、パーソナルデジタルアシスタント(PDA)、サーバ、又はこれらの2つ又はそれ以上の組合せである。適切であれば、コンピュータシステム600は、一又は複数のコンピュータシステム600を含んでも良く;中央集中型でも分散型でもよく;複数のロケーションに広がっていてもよく;複数のマシンにわたっていてもよく;一又は複数のネットワークに一又は複数のクラウドコンポーネントを含むクラウド中にあってもよい。適切であれば、一又は複数のコンピュータシステム600は、ここに説明又は例示した一又は複数の方法の一又は複数のステップを、空間的又は時間的に大きな制約無く、実行できる。限定ではなく一例として、一又は複数のコンピュータシステム600は、リアルタイム又はバッチモードで、ここに説明又は例示した一又は複数の方法の一又は複数のステップを実行できる。適切であれば、一又は複数のコンピュータシステム600は、ここに説明又は例示した一又は複数の方法の一又は複数のステップを、異なる時間に又は異なるロケーションで実行できる。
【0035】
ある実施形態では、コンピュータシステム600は、プロセッサ602、メモリ604、記憶装置606、入出力(I/O)インタフェース608、通信インタフェース610、及びバス612を含む。本開示では、具体的な構成で具体的な数の具体的なコンポーネントを有する具体的なコンピュータシステムを説明及び例示したが、好適な任意の構成で好適な任意の数の好適な任意のコンポーネントを有する好適な任意のコンピュータシステムを想定している。
【0036】
ある実施形態では、プロセッサ602は、コンピュータプログラムを構成しているような命令を実行するハードウェアを含む。限定ではなく一例として、命令を実行するため、プロセッサ602は、内部レジスタ、内部キャッシュ、メモリ602、又は記憶装置606から命令を読み出し(又はフェッチし);それをデコードして実行し;内部レジスタ、内部キャッシュ、メモリ602、又は記憶装置606に一又は複数の結果を書き込む。ある実施形態では、プロセッサ602は、データ、命令、又はアドレスのために一又は複数の内部キャッシュを含む。本開示では、適切であれば、プロセッサ602は好適な任意の数の好適な任意のキャッシュを含むことを想定している。限定ではなく一例として、プロセッサ602は、一又は複数の命令キャッシュ、一又は複数のデータキャッシュ、及び一又は複数の変換ルックアサイドバッファ(TLB)を含む。命令キャッシュ中の命令は、メモリ602又は記憶装置606中の命令のコピーであり、命令キャッシュはプロセッサ602によるこれらの命令の読み出しを高速化できる。データキャッシュ中のデータは、プロセッサ602において実行されるメモリ602又は記憶装置606中のデータのコピー;プロセッサ602において実行される後の命令によりアクセスされ、又はメモリ602又は記憶装置606に書き込まれる、プロセッサ602において実行された前の命令の結果;又はその他の好適なデータである。データキャッシュによりプロセッサ602による読み書き動作が高速化できる。TLBにより、プロセッサ602の仮想アドレス変換が高速化できる。ある実施形態では、プロセッサ602は、データ、命令、又はアドレスのために一又は複数の内部レジスタを含む。本開示では、適切であれば、プロセッサ602は好適な任意の数の好適な任意のレジスタを含むことを想定している。適切であれば、プロセッサ602は、一又は複数の算術演算論理ユニットを含んでも良く;マルチコアプロセッサでもよく;一又は複数のプロセッサ602を含んでもよい。本開示では、具体的なプロセッサを説明及び例示したが、任意の好適なプロセッサでもよい。
【0037】
ある実施形態では、メモリ602は、プロセッサ602が実行する命令、又はプロセッサ602が処理するデータを格納するメインメモリを含む。限定ではなく一例として、コンピュータシステム600は、記憶装置606又はその他のソース(例えば、他のコンピュータシステム600)からメモリ602に命令をロードできる。プロセッサ602は、メモリ602から内部レジスタ又は内部キャッシュに命令をロードできる。プロセッサ602は、命令を実行するため、内部レジスタ又は内部キャッシュから命令を読み出し、それをデコードする。命令の実行中又はその後、プロセッサ602は、内部レジスタ又は内部キャッシュに、一又は複数の結果(これは中間結果でも最終結果でもよい)を書き込む。プロセッサ602は、一又は複数の結果をメモリ602に書き込む。ある実施形態では、プロセッサ602は、一又は複数の内部レジスタ又は内部キャッシュ中の又はメモリ602(この点、記憶装置606等とは異なる)中の命令のみを実行し、一又は複数の内部レジスタ又は内部キャッシュ中の、又はメモリ602(この点、記憶装置606等とは異なる)中のデータのみを処理する。一又は複数のメモリバス(各々がアドレスバスとデータバスを含んでいてもよい)は、プロセッサ602をメモリ604に結合する。バス612は、以下に説明するように、一又は複数のバスを含む。ある実施形態では、一又は複数のメモリ管理ユニット(MMU)がプロセッサ602とメモリ604との間にあり、プロセッサ602により要求されたメモリ604へのアクセスを容易にする。ある実施形態では、メモリ602は、ランダムアクセスメモリ(RAM)を含む。このRAMは、揮発性メモリであってもよく、適切であれば、このRAMはダイナミックRAM(DRAM)又はスタティックRAM(SRAM)である。さらに、適切であれば、このRAMはシングルポートRAM又はマルチポートRAMである。本開示では、RAMは任意の適切なものでよい。メモリ602は、適切であれば、一又は複数のメモリ602を含む。本開示では、具体的なメモリを説明及び例示したが、任意の好適なメモリでもよい。
【0038】
ある実施形態では、記憶装置606はデータ又は命令用の大規模記憶装置を含む。限定ではなく一例として、記憶装置606は、HDD、フロッピー(登録商標)ディスクドライブ、フラッシュメモリ、光ディスク、光磁気ディスク、磁気テープ、USB(Universal Serial Bus)ドライブ、又はこれらの2つ又はそれ以上の組合せである。記憶装置606は、適切であれば、リムーバブルメディア又は非リムーバブル(すなわち固定)メディアを含む。記憶装置606は、適切であれば、コンピュータシステム600の内部にあっても外部にあってもよい。ある実施形態では、記憶装置606は、不揮発性の固体メモリである。ある実施形態では、メモリ606は、リードオンリーメモリ(ROM)を含む。適切であれば、このROMは、マスクプログラムROM、プログラマブルROM(PROM)、イレーザブルPROM(EPROM)、電気的イレーザブルPROM(EEPROM)、電気的オルタラブルROM(EAROM)、フラッシュメモリ、又はこれらの2つ又はそれ以上の組合せである。この開示が想定する大規模記憶装置606の物理的形式は好適なものであればどんなものでもよい。記憶装置606は、適切であれば、プロセッサ602と記憶装置606との間の通信を促進する一又は複数の記憶制御ユニットを含んでも良い。適切であれば、記憶装置606は、一又は複数の記憶装置606を含む。本開示では、具体的な記憶装置を説明及び例示したが、任意の好適な記憶装置でもよい。
【0039】
ある実施形態では、I/Oインタフェース608は、コンピュータシステム600と一又は複数のI/Oデバイスとの間の通信用の一又は複数のインタフェースを提供する、ハードウェア、ソフトウェア、又は両者を含む。コンピュータシステム600は、適切であれば、これらの一又は複数のI/Oデバイスを含んでも良い。これらの一又は複数のI/Oデバイスにより、人とコンピュータシステム600との間の通信が可能となる。限定ではなく一例として、I/Oデバイスは、キーボード、キーパッド、マイクロホン、モニタ、マウス、プリンタ、スキャナ、スピーカ、スチルカメラ、スタイラス、タブレット、タッチスクリーン、トラックボール、ビデオカメラ、その他の好適なI/Oデバイス、又はこれらの2つ又はそれ以上の組合せを含む。I/Oデバイスは、一又は複数のセンサを含み得る。本開示は、任意の好適なI/Oデバイスと、その任意の好適なI/Oインタフェース608とを想定している。適切であれば、I/Oインタフェース608は、一又は複数のデバイス、又はプロセッサ602にこれらの一又は複数のI/Oデバイスをドライブ可能とするソフトウェアドライバを含み得る。I/Oインタフェース608は、適切であれば、一又は複数のI/Oインタフェース608を含んでも良い。本開示では、具体的なI/Oインタフェースを説明及び例示したが、任意の好適なI/Oインタフェースでもよい。
【0040】
ある実施形態では、通信インタフェース610は、コンピュータシステム600と、一又は複数のその他のコンピュータシステム600又は一又は複数のネットワークとの間の通信(例えば、パケットベース通信)の一又は複数のインタフェースを提供するハードウェア、ソフトウェア、又は両者を含む。限定でなく一例として、通信インタフェース610は、イーサネット(登録商標)その他の有線ネットワークで通信するためのネットワークインタフェースコントローラ(NIC)又はネットワークアダプタ、又はWiFiネットワークなどの無線ネットワークで通信するための無線NIC(WNIC)又は無線アダプタを含む。本開示は、任意の好適なネットワークと任意の好適な通信インタフェース610を想定している。限定ではなく一例として、コンピュータシステム600は、アドホックネットワーク、パーソナルエリアネットワーク(PAN)、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、又はインターネットの一又は複数の部分、又はこれらの2つ以上の組合せで通信できる。一又は複数のネットワークの一又は複数の部分は有線でも無線でもよい。一例として、コンピュータシステム600は、無線PAN(WPAN)(例えば、BLUETOOTH WPAN)、WiFiネットワーク、WiMAXネットワーク、セルラー電話ネットワーク(例えば、GSM(Global System for Mobile Communications)ネットワーク)、その他の好適な無線ネットワーク、又はこれらの2つ以上の組合せで通信できる。コンピュータシステム600は、適切であれば、これらのネットワークのいずれかのための任意の好適な通信インタフェース610を含む。通信インタフェース610は、適切であれば、一又は複数の通信インタフェース610を含む。本開示では、具体的な通信インタフェースを説明及び例示したが、任意の好適な通信インタフェースでもよい。
【0041】
ある実施形態では、バス612は、コンピュータシステム600のコンポーネントを相互に結合するハードウェア、ソフトウェア、又は両者を含む。限定ではなく一例として、バス612は、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)バス、その他の好適なバス、又はこれらの2つ以上の組合せを含む。バス612は、適切であれば、一又は複数のバス612を含む。本開示では、具体的なバスを説明及び例示したが、任意の好適なバス又はインターコネクトでもよい。
【0042】
ここで、コンピュータ読み取り可能記憶媒体とは、一又は複数の非一時的、有体コンピュータ読み取り可能記憶媒体処理構成を含む。限定でなく一例として、適切であれば、コンピュータ読み取り可能媒体は、半導体ベースその他の集積回路(IC)(例えば、field-programmable gate array (FPGA)又はapplication-specific IC (ASIC))、ハードディスク(HDD)、ハイブリッドハードディスク(HHD)、光ディスク(ODD)、光磁気ディスク、光磁気ドライブ、フロッピー(登録商標)ディスク、フロッピーディスクドライブ(FDD)、磁気テープ、ホログラフィック記憶媒体、固体ドライブ(SSD)、RAMドライブ、SECURE DIGITALカード、SECURE DIGITALドライブ、その他の好適なコンピュータ読み取り可能記憶媒体、又はこれらの2つ以上の組合せを含む。ここで、コンピュータ読み取り可能記憶媒体とは、米国特許法101条での保護を受けられない媒体は排除している。ここで、コンピュータ読み取り可能記憶媒体とは、米国特許法第101条での保護を受けられない一時的な信号送信の形式(電気的又は電磁気的信号自体の伝搬など)は排除している。
【0043】
本開示では、任意の好適な記憶媒体を実施する一又は複数のコンピュータ読み取り可能記憶媒体を想定している。ある実施形態では、適切であれば、コンピュータ読み取り可能記憶媒体は、プロセッサ602の一又は複数の部分(例えば、一又は複数の内部レジスタ又はキャッシュ)、メモリ602の一又は複数の部分、記憶装置606の一又は複数の部分、又はこれらの組合せを実施するものであってもよい。ある実施形態では、コンピュータ読み取り可能記憶媒体はRAM又はROMであってもよい。ある実施形態では、コンピュータ読み取り可能記憶媒体は揮発性又は永続的メモリであってもよい。ある実施形態では、一又は複数のコンピュータ読み取り可能記憶媒体はソフトウェアを化体したものである。ここで、ソフトウェアとは、適切であれば、一又は複数のアプリケーション、バイトコード、一又は複数のコンピュータプログラム、一又は複数の実行可能ファイル(executables)、一又は複数の命令、ロジック、マシンコード、一又は複数のスクリプト、又はソースコードなどである。ある実施形態では、ソフトウェアは一又は複数のアプリケーションプログラミングインタフェース(API)を含む。本開示では、任意の好適なプログラミング言語又はプログラミング言語の組合せで記載又は表現された任意の好適なソフトウェアを想定している。ある実施形態では、ソフトウェアはソースコード又はオブジェクトコードとして表現される。ある実施形態では、ソフトウェアは、例えば、C、Perl、又はこれらの好適な拡張版などの高級プログラミング言語で表現される。ある実施形態では、ソフトウェアは、アセンブラ言語(又は機械語)などの低レベルプログラミング言語で表現される。ある実施形態では、ソフトウェアはJAVAで表現される。ある実施形態では、ソフトウェアは、HTML(Hyper Text Markup Language)、XML(Extensible Markup Language)、その他の好適なマークアップ言語で表現される。
【0044】
本発明は、ここに説明した実施形態に対する、当業者が想到するだろうすべての変更、置換、変形、代替、修正を含むものである。同様に、適切な場合には、特許請求の範囲は、ここに説明した実施形態に対する、当業者が想到するだろうすべての変更、置換、変形、代替、修正を含むものである。