【文献】
上甲貴広、外3名,屋内環境向けナビゲーションシステムにおける個人の嗜好に応じた目的地の推論手法,情報処理学会研究報告,社団法人情報処理学会,2002年 3月 8日,Vol.2002, No.24,pp.189-196
(58)【調査した分野】(Int.Cl.,DB名)
前記1つまたは複数の時間関連属性が、前記現在位置が受け取られた時に前記関心点が営業のために開いているか閉まっているかを示す属性を含み、前記関心点が開いている場合は前記関心点の前記ランク付けが上がる、ことを特徴とする請求項1又は2に記載の方法。
各関心点がカテゴリに関連し、前記1つまたは複数の時間関連属性が、前記現在位置が受け取られた時に前記関心点に関連する前記カテゴリが前記ユーザに関連性がある確率を示す属性を含む、ことを特徴とする請求項1又は2に記載の方法。
前記1つまたは複数の時間関連属性が、前記現在位置が受け取られた時に前記関心点が営業のために開いているか閉まっているかを示す属性を含み、前記関心点が開いている場合は前記関心点の前記ランク付けが上がる、ことを特徴とする請求項7又は8に記載のコンピュータ可読記憶デバイス。
各関心点がカテゴリに関連し、前記1つまたは複数の時間関連属性が、前記現在位置が受け取られた時に前記関心点に関連する前記カテゴリが前記ユーザに関連性がある確率を示す属性を含む、ことを特徴とする請求項7又は8に記載のコンピュータ可読記憶デバイス。
前記1つまたは複数の時間関連属性が、前記現在位置が受け取られた時に前記関心点が営業のために開いているか閉まっているかを示す属性を含み、前記関心点が開いている場合は前記関心点の前記ランク付けが上がる、ことを特徴とする請求項13又は14に記載のシステム。
各関心点がカテゴリに関連し、前記1つまたは複数の時間関連属性が、前記現在位置が受け取られた時に前記関心点に関連する前記カテゴリが前記ユーザに関連性がある確率を示す属性を含む、ことを特徴とする請求項13又は14に記載のシステム。
【発明を実施するための形態】
【0011】
様々な図面中の同じ参照番号および指示は、同じ要素を示す。
【0012】
図1は、電子デバイスのユーザの現在位置に関連性のある関心点情報をユーザに提供することのできる例示的なシステム100の概略的表現である。関心点は、ビジネス(例えばレストランや劇場)、ランドマーク(例えばラシュモア山)、建物(例えばエンパイアステートビルディング)、地理的特徴(例えばハドソン川)、または、特徴の物理的位置の近くにいる人物にとって関心があるあろう他のタイプの特徴とすることができる。システム100はサーバシステム102を含み、サーバシステム102は、簡単にするために単一のデータ処理装置として示されているが、1つまたは複数の物理的位置にある複数のデータ処理装置にわたって実現されてもよい。サーバシステム102は、ネットワーク104を介して複数のユーザと通信する。ネットワーク104は、1つもしくは複数のローカルエリアネットワーク(LAN)、インターネットなどのワイドエリアネットワーク(WAN)、セルラー電話網などのワイヤレスネットワーク、または以上の全ての組合せを含んでよい。
【0013】
関心点情報は、モバイル電子デバイスのユーザ、例えばデバイス111のユーザ112に提供することができ、または、家庭のコンピュータなど非モバイルデバイスのユーザ、例えばコンピュータ113のユーザ114に提供することができる。関心点情報は、1つまたは複数の提案クエリとして提供することができ、ユーザは、提案クエリを選択して、検索エンジン106にクエリをサブミットすることができる。これに応答して、検索エンジン106は、1つまたは複数の情報集合体を検索し、結果をユーザの電子デバイスに提供することができる。別の例では、関心点情報は、ユーザの現在位置を示す地図上に表示された1つまたは複数のグラフィカル要素として提供することができ、各グラフィカル要素は関心点を表す。別の例では、関心点情報は、ユーザが関心点に電話をかける(例えばレストランに予約の電話を入れる)ために選択することのできる電話番号、関心点のウェブサイトへのリンク、または、関心点に関する他の情報(例えばレビュー)を含むウェブサイトへのリンクなどの、メタデータと共にユーザに提示することができる。関心点情報は、他のフォーマットでユーザに提示することもでき、以上は少数の例に過ぎない。
【0014】
サーバシステム102は関心点システム110を備え、関心点システム110は、ユーザの現在位置に関連性のある、ユーザの電子デバイスに提示する1つまたは複数の関心点を決定するように構成される。ユーザの現在位置は、多くの関心点の比較的近くである場合があり、これらの関心点の全てをユーザに提示するのは、圧倒的なほどであり全く役立たない可能性がある。ここでは、選択される関心点がこの現在位置で、かつ場合によっては特定の現在時間で、ユーザにとって関心があるであろうという徴候に基づいて、関心点の総数のサブセットを選択してユーザに提示することができるように、ユーザの近くの関心点をフィルタにかけるための技法およびシステムについて述べる。
【0015】
サーバシステム102はまた、ネットワークユーザ116、118によって提供されるモバイル更新を受け取ることができる。モバイル更新は、ユーザがオンラインソーシャルネットワークに入力する、関心点に関する可能性のあるデータである。説明のための例として、Google Buzz for mobileでは、ユーザが出先で更新の投稿および位置へのタグ付けを行うこと、ならびに他の人々によって作成された口コミ更新を読むことができる。モバイル更新は、特に更新の主題が位置に関係する場合には、作成者によってその位置に「スナップする」ことができる。位置は、関心点、例えばレストランとすることができる。作成者は、レストランに更新をスナップして、レストランに関する自分のコメントを提供したり、自分がレストランにいるかまたは向かっていることをソーシャルネットワークの他のユーザに知らせたりすることができる。ユーザによって投稿された更新を受け取るために、モバイル更新インタフェース108がサーバシステム102に備わってよい。
【0016】
図2に、ネットワーク201を介してユーザの電子デバイス205と通信することのできる例示的な関心点システム200を示す。関心点システム200は、
図1のサーバシステム102に備わる関心点システム110とすることができる。関心点システム200は、簡単にするために単一のデータ処理装置として示されているが、1つまたは複数の物理的位置にある複数のコンピュータにわたって実現されてもよい。ネットワーク201は、1つもしくは複数のローカルエリアネットワーク(LAN)、インターネットなどのワイドエリアネットワーク(WAN)、セルラーネットワークなどのワイヤレスネットワーク、または以上の全ての組合せを含んでよい。電子デバイス205は、モバイル電子デバイス、例えば、パーソナルディジタルアシスタント、セルラー電話機、スマートフォン、ラップトップ、ノートブック、もしくは他の類似のコンピューティングデバイスとすることができ、または、通常はモバイルでないコンピューティングデバイス、例えば、デスクトップコンピュータやワークステーションなどのディジタルコンピュータとすることができる。以下、ユーザの電子デバイスに提供する関心点のサブセットを選択する様々な実装形態に関して、関心点システム200に備わる様々なコンポーネントについて述べる。
【0017】
図3は、ユーザの電子デバイスに提供する関心点のサブセットを決定するための例示的なプロセス300を示すフローチャートである。説明の目的で、
図1および2に示すシステム100および200に関してプロセス300を述べるが、異なるように構成されたシステムを使用してプロセス300を実施してもよいことを理解されたい。ユーザの電子デバイスの現在位置が受け取られる(ステップ302)。現在位置は、位置決定モジュール221から受け取ることができ、位置決定モジュール221は、いくつかの実装形態では関心点システム200の一部として含まれるが、別個であってもよい。ユーザがモバイル電子デバイスを使用している場合は、モバイル電子デバイスの地理的位置は様々な技法を使用して決定することができ、これらの技法のいくつかとしては、モバイルデバイスからの全地球測位システム(GPS)情報の使用、セルラー電話機セルタワー三角測量技法、位置を求める要求を位置サービス(例えばマサチューセッツ州ボストンのSkyhook Wireless)に送ること、モバイル電子デバイスのネットワークから情報を取り出すこと(retrieving)、またはユーザからマニュアル入力を受け取ることが挙げられる。別の例として、ユーザがWiFi対応デバイスを使用している場合、デバイスの位置は、既知のWiFiアクセスポイントおよびそれらの既知の地理的位置を使用して決定することができる。ユーザがコンピュータを使用している場合、ユーザの地理的位置は、ユーザのネットワークプロバイダからの情報を使用して、例えば、ユーザのIPアドレスを使用して(例えばマレーシア、ペナンのIP2Location.comによって提供されるサービスを使用して)決定することができる。
【0018】
現在位置に対して所定距離内にある複数の関心点が取り出される(ステップ304)。いくつかの実装形態では、所定距離は、固定距離であり、例えば現在位置の周りの半径1キロメートルである。他の実装形態では、所定距離の値は、現在位置の近くの関心点の密度に基づいて変動してよい。
【0019】
一例では、半径(R)の値は、式R=M/Dを使用して計算することができる。この例では、Mは、経験的に決定することのできる定数であり、特定の一例では30,000である。変数Dは、現在位置を含む領域中の関心点の密度を表す。密度Dは、様々な技法を使用して決定することができる。いくつかの実装形態では、地球の表面(またはその一部)が、グリッドを形成する正方形のセルに分割される。位置によって索引付けされた関心点のデータベースを参照することにより、各セル中の関心点の密度を計算することができる。
【0020】
関心点データベース204は、位置、例えば地理的座標に関連付けられた、関心点のリストを含んでよい。関心点データベース204を使用して、1セル当たりの関心点の密度Dを計算することができ、計算した密度は、密度データベース206に記憶することができる。所与の現在位置について、現在位置を含むセル中の関心点の密度Dを、密度データベース206から取り出すことができる。関心点データベース204は、関心点を追加または除去するように定期的に更新することができる。密度データベース206もまた、関心点データベース204に対する除去および追加を反映するように、同じ頻度でまたはより低い頻度で定期的に更新することができる。
【0021】
別の例では、半径Rは、以下の式に従って計算することができる。
【0023】
上式で、nは、計算された半径(R)内で見つかることが望まれる関心点の数を表す整数である。Dは、現在位置を含むセル中の、面積当たり、例えば1平方キロメートル当たりの関心点の密度である。
【0024】
関心点データベース204から取り出された複数の関心点は、現在位置からの固定距離と、現在位置の近くの関心点の密度に基づいて計算された半径とのいずれかを使用して、ランク付けされる(ステップ306)。各関心点につき、ランク付けは、現在位置に対する関心点の近さと、1つまたは複数の時間関連属性とに(少なくとも部分的に)基づく。ランク付けに基づいて、関心点の1つまたは複数が、ユーザの電子デバイスに提供される(ステップ308)。
【0025】
近さに基づいて関心点をランク付けすることに関して、関心点データベース204は、対応する地理的座標、例えばGPS座標にマッピングされた関心点を含んでよい。次いで、2つの位置、すなわち関心点位置と現在位置との間の距離を、既知の方法で計算することができる。一般に、関心点が現在位置に近いほど、ランキングは高い。
【0026】
1つまたは複数の時間関連属性に基づいて関心点をランク付けすることに関して、時間関連属性は、時間に依存するかまたは時間に影響される関心点の特性を記述する。関心点の時間関連属性の例は、関心点が開いているか否か、すなわち関心点の営業時間か否かである。例えば、関心点に営業時間があり(例えばレストラン、ミュージアム、ガソリンスタンド)、かつ営業時間がわかっている場合は、現在時間(すなわち現在位置が受け取られた時間)を営業時間と比較して、関心点が現在開いているかどうか判定することができる。関心点が現在開いている場合は、ランキングはより高い。関心点についての時間関連属性すなわち営業時間を含むメタデータを、関心点データベース204中で関心点に関連付けることができ、または別個のデータベースに記憶することができる。メタデータは、様々なソースから得ることができる。例えば、関心点に関係するウェブページをクロールして、ウェブページに含まれる情報から営業時間を抽出することができる。他の例では、関心点の運営者、または、第三者のビジネスリストデータ集約者が、この情報を提供することができる。
【0027】
時間関連属性の別の例では、時間に応じて関連性を決定することができる。例えば、関心点の特定のタイプまたはカテゴリに、「関連性のある時間ウィンドウ」を関連付けることができる。例えば、関心点がレストランである場合は、典型的な食事時間を囲む時間ブロック内に現在時間が含まれるならば、ランキングを上げることができる。別の例では、関心点がコーヒーショップである場合は、現在時間が早朝時間帯に含まれるならば、ランキングを上げることができる。というのは、コーヒーショップは一日のうちでこの時間中に最も繁盛していることが多いからである。別の例として、関心点がナイトクラブである場合は、現在時間が深夜時間帯に含まれるならば、ランキングを上げることができる。というのは、この時間帯はナイトクラブが通常最も繁盛している時だからである。他の実装形態では、関連性は、時間ウィンドウ全体にわたって変動してよく、ランキングは、実際の時間におけるカテゴリ(または特定のビジネス)の関連性と比較して、実際の時間に依存して動的に上げることができる。これらは時間関連ビジネス属性の少数の例だが、異なるまたは追加の属性を使用することもできる。
【0028】
以上を実施するために、各関心点を1つまたは複数のカテゴリに関連付けることができる。カテゴリは、主題によって区別することができる。例えば、関心点は、レストラン、娯楽、ミュージアム、地理的特徴などの主題カテゴリにカテゴリ化することができる。種々の粒度レベルのカテゴリが存在してよく、例えば、広いレストランカテゴリに加えて、メキシコ料理レストラン、フランス料理レストラン、ファミリレストラン、ファストフードレストランなどのサブカテゴリがあってもよい。カテゴリの少なくともいくつかは、例えば前述のような時間関連属性に関連付けることができる。関心点が、時間関連属性に関連するカテゴリに関連する場合は、ランク付けは、時間関連属性に(少なくとも部分的に)基づくことができる。
【0029】
関心点データベース204は、関連する1つまたは複数のカテゴリを関心点とリンクするデータを含んでよい。関心点カテゴリによって編成された時間関連属性情報を含む、時間関連属性データベース208が備わってよい。すなわち、時間関連属性データベース208には、カテゴリのうちの選択されたものを含めることができ、各カテゴリにつき、時間関連属性情報を提供することができる。例えば、時間関連属性データベース208は、カテゴリ「レストラン」を含んでよく、レストランカテゴリに含まれる関心点のランキングを上げることのできる時刻である時間関連属性情報、例えば午前6:00〜9:00、11:30〜午後1:30、および午後5:00〜8:00を含んでよい。したがって、レストランカテゴリに関連する関心点が関心点データベース204から取り出された時、時間関連属性データベース208をチェックして、レストランカテゴリが時間関連ビジネス属性に関連するかどうか確認することができる。レストランカテゴリが時間関連属性データベース208中で見つかる時は、時間関連ビジネス属性が関心点のランキングを上げることのできる時間を、現在時間(すなわち現在位置が受け取られた時間)と比較することができ、一致した場合は、相応にランキングを上げることができる。いくつかの実装形態では、実際の時間を特定時間における関連性と比較することができ、この関連性は、関連性のある時間ウィンドウを通して変動してよい。すなわち、一例では、ランキング上昇は、午前6:00、それと比較して午前7:15、それと比較して午前8:30で異なってよい。
【0030】
図4は、サブセット中の関心点の少なくともいくつかが更新に関連するシナリオにおける、ユーザの電子デバイスに提供する関心点のサブセットを決定するための例示的なプロセス400を示すフローチャートである。説明の目的で、
図1および2に示すシステム100および200に関してプロセス400を述べるが、異なるように構成されたシステムを使用してプロセス400を実施してもよいことを理解されたい。ユーザの電子デバイスの現在位置が受け取られる(ステップ402)。現在位置は、位置決定モジュール221から受け取ることができ、前述のように決定することができる。
【0031】
現在位置に対して所定距離内にある複数の関心点が取り出される(ステップ404)。前述のように、いくつかの実装形態では、所定距離は固定距離であり、他の実装形態では、所定距離の値は、現在位置の近くの関心点の密度に基づいて変動してよい。いくつかの実装形態では、距離は直線距離である。他の実装形態では、距離は時間ベースの距離である。すなわち、ユーザが自分の現在位置から移動できる時間量と、推定される移動レートとを使用して、距離が決定される。移動レートは、徒歩移動、自動車移動、または他の方法に基づくことができる。他の実装形態では、距離は、直線距離とは対照的に、ルート距離である。関心点は、関心点データベース204から取り出すことができる。
【0032】
複数の関心点はそれぞれ、現在位置に対する関心点の近さに(少なくとも部分的に)基づいてランク付けされる。加えて、関心点は、さらに後述するように、関心点に関連する1つまたは複数の「更新」に基づいてランク付けされる(更新が存在するならば)(ステップ406)。前述のように、更新は、ユーザ以外の作成者によって、ユーザを含むことが好ましいオンラインソーシャルネットワークに入力された、関心点に関するデータである。ランク付けに基づいて、1つまたは複数の関心点がユーザの電子デバイスに提供される(ステップ408)。
【0033】
上に論じたように、関心点は、様々なフォーマットでユーザに提供することができ、例えば、提案検索クエリとして、またはユーザの現在位置をも含む地図上に表示されるアイテムとして提供することができる。関心点に更新が関連する場合は、更新もまたユーザに提供することができる。例えば、更新の1つもしくは複数の内容をユーザに対して表示することができ、または、アイコンもしくは他のインジケータを関心点と共に表示して、関心点に関係する1つまたは複数の更新の存在を示すことができる。ユーザは、更新の内容を例えばポップアップボックス中で見るために、アイコンまたは他のインジケータを選択することができる。
【0034】
図2に示すモバイル更新データベース210は、関心点に関連するモバイル更新の記憶域である。
図1に、モバイル更新の例示的な作成者116および118を示す。作成者116および118は、自分のモバイル電子デバイスを使用して、例えばモバイル更新インタフェース108を通して、ネットワーク104を介してサーバシステム102に自分の更新を通信する。更新は、蓄積してモバイル更新データベース210中に記憶し、位置によって索引付けすることができる。モバイル更新が、関心点の位置に対応する位置にスナップされた場合、このモバイル更新を、モバイル更新データベース210中でこの関心点に関連付けることができる。
【0035】
更新の作成者は、インターネットを介してアクセス可能なオンラインソーシャルネットワークに属することが好ましい。例えば、ユーザは、更新を入力することが許可される前に、少なくともいくらかの個人情報を提供してソーシャルネットワークに登録することが必要とされてよい。登録されると、次いでユーザは、更新を作成し、関心点に対応する位置を含めた位置に更新をスナップすることができる。ユーザはまた、他のユーザによって作成された更新の内容を見ることもできる。ソーシャルネットワークのユーザは、自分が作成した更新の内容を誰が見ることができるかに関するプライバシー制御を含めることが許可されてよい。例えば、ユーザの更新を見ることが許されるソーシャルネットワーク中の1人または複数の「友達」を指定することがユーザに許可されてよく、ユーザの更新は、友達として指定されないどんな人にも内密にしておくことができる。別法として、1人または複数の友達を指定することがユーザに許可されているかもしれないが、ユーザは、友達として識別されない人を含めたソーシャルネットワーク上のあらゆる人にユーザの更新を利用可能にすることを選択することができる。
【0036】
上に言及したように、関心点のランク付けは、関心点に関連する更新に基づくことができる(ステップ406)。一例では、1つまたは複数の更新に関連する関心点のランク付けは、ソーシャルネットワーク中での、ユーザに対する更新作成者の近さに基づく。例えば、ユーザの指定の友達が、関心点に関連する更新の作成者である場合は、作成者がソーシャルネットワーク中でユーザと何の関係もなかった場合と比較して、関心点のランキングを上げることができる。作成者が、ユーザの指定の友達の指定の友達(すなわち「友達の友達」)である場合は、作成者がユーザの指定の友達である場合ほどではおそらくないものの、関心点のランキングを上げることができる。他の例では、ランク付けは、更新の鮮度(すなわち更新が作成されてからの時間量)、関心点に関連する更新のボリューム、作成者の識別、または更新の他の属性に基づくことができる。
【0037】
図5は、ユーザの電子デバイスに提供する関心点のサブセットを決定するための例示的なプロセス500を示すフローチャートである。説明の目的で、
図1および2に示すシステム100および200に関してプロセス500を述べるが、異なるように構成されたシステムを使用してプロセス500を実施してもよいことを理解されたい。現在時間におけるユーザの電子デバイスの現在位置が受け取られる(ステップ502)。現在位置は、いくつかの実装形態では関心点システム200の一部として含まれてよい位置決定モジュール221から受け取ることができ、前述のように決定することができる。
【0038】
複数の関心点に関連する複数の更新が取り出される(ステップ504)。更新は、電子デバイスのユーザを含むソーシャルネットワークのユーザによって作成され、モバイル更新データベース210から取り出すことができる。取り出される更新は、現在位置に対して所定距離内にある関心点に関連する。所定距離は、前述のように、現在位置からの固定距離と、現在位置の近くの関心点の密度に基づいて計算された半径とのいずれかとすることができる。加えて、更新は、それらの作成時間に基づいて取り出すことができる。すなわち、取り出される更新は、それらの作成時間を現在時間と比較することによって決定できる、あるレベルの「鮮度」を有することが好ましい。取り出される更新を鮮度でフィルタにかけることにより、取り出される更新の数を制限することができ、現在時間における高い関連度を保証することができる。鮮度ウィンドウは、数時間、数日、または他の形とすることができる。例えば、特定の関心点に関して更新が受け取られている頻度が高い場合は、過去24時間以内に作成された更新を取り出すことができ、対照的に、たまにしか更新に関連しない関心点の場合は、鮮度ウィンドウを1か月またはより長い期間とすることができる。
【0039】
ソーシャルネットワーク中での、ユーザに対する更新作成者の近さに基づいて、取り出された更新に関連する関心点がランク付けされる(ステップ506)。例えば、上に論じたように、更新の作成者がソーシャルネットワーク中でユーザの「友達」である場合は、関連する関心点のランキングを上げることができる。
【0040】
ランク付けに基づいて、1つまたは複数の関心点がユーザの電子デバイスに提供される(ステップ508)。更新自体を関心点と共にユーザに提示することもでき、別法として、更新の内容を見るためにユーザが選択できるリンクまたは他のインジケータを提供することもできる。プロセス500では、ユーザに提供される関心点は、鮮度基準を満たす少なくとも1つの更新に関連する。
【0041】
いくつかの実装形態では、更新に基づいて関心点をランク付けすることは、頻繁に訪れる現在位置にいるユーザに選択的に適用することができる。ユーザが馴染みのない位置にいる場合、例えばユーザが旅行者である場合は、異なるランク付け基準を適用することにより、この特定ユーザに対してより関連性のある結果を生むことができる。
図6は、関心点をランク付けする際にユーザが現在位置に馴染みがあることを考慮に入れる例示的なプロセス600のフローチャートである。説明の目的で、
図1および2に示すシステム100および200に関してプロセス600を述べるが、異なるように構成されたシステムを使用してプロセス600を実施してもよいことを理解されたい。
【0042】
ユーザの電子デバイスの現在位置が受け取られる(ステップ602)。現在位置は、位置決定モジュール221から受け取ることができ、前述のように決定することができる。現在位置に対して所定距離内にある複数の関心点が取り出される(ステップ604)。前述のように、いくつかの実装形態では、所定距離は固定距離であり、他の実装形態では、所定距離の値は、現在位置の近くの関心点の密度に基づいて変動してよい。
【0043】
ユーザがどれくらい頻繁に現在位置を訪れるかに基づいて、「熟知度スコア」が計算される(ステップ606)。いくつかの実装形態では、熟知度スコアは、以下の式を使用して計算される。
熟知度=カウント(現在位置からX以内の位置)/カウント(全ての位置)
【0044】
上式で、カウント(現在位置からX以内の位置)は、ユーザの現在位置に対して事前定義済み距離(すなわちX)内にある、ユーザについての位置履歴中で識別される異なる現在位置の数を指す。カウント(全ての位置)は、位置履歴中の、ユーザについて報告された現在位置の総数を指し、これは任意選択で、ある期間に限定することができる。例えば、ユーザについての報告された現在位置の履歴セットを、ユーザによって索引付けされた位置履歴の記憶域に記憶する(任意選択でタイムスタンプ付きで)ことができる。位置履歴の記憶域から、カウント(全ての位置)の値を得ることができる。いくつかの実装形態では、熟知度スコアは、関心点システム200に備わる熟知度スコアリングモジュール220(
図2)によって計算することができる。ユーザの位置履歴は、位置履歴データベース214に記憶してそこから取り出すことができる。
【0045】
以下の説明的な例を考えてみる。ユーザの現在位置は、ユーザの職場から1ブロック離れたコーヒーショップであり、事前定義済み距離Xは1キロメートルである。ユーザについての、カウント(全ての位置)の値は、100個の位置である。カウント(現在位置から1km以内の位置)は、55個の位置である。すなわち、この特定ユーザの最後に報告された100個の現在位置のうち、ユーザが自分の現在位置から1キロメートル以内にいたのは55回である。ユーザの現在位置は、多くの時間を過ごす可能性の高い自分の職場から1ブロック(すなわち1キロメートル未満)であり、したがってこの場合、ユーザは、比較的馴染みのある位置にいる。よって、熟知度スコアは、最大スコア1.0(すなわち履歴記憶域中のあらゆる位置がユーザの現在位置から1km以内であった場合)のうち、55/100、つまり0.55である。その後、ユーザは、自分の職場から5キロメートル離れ、カウント(現在位置から1km以内の位置)は10個の位置しかない。よって、熟知度スコアは10/100、つまり0.1であり、すなわちかなり低い。したがって、この式を使用して、ユーザがどれくらい頻繁に自分の現在位置の付近にいるかを決定することができ、頻繁に付近にいるほどユーザは現在位置に馴染みがあると仮定される。対照的に、旅行者は、現在位置を初めて訪れたかもしれないので、非常に低い熟知度スコアを有する可能性が高い。
【0046】
熟知度スコアに対するしきい値を決定することができ、しきい値よりも高いスコアは、ユーザが現在位置に馴染みがあることを示すと見なされ、しきい値よりも低いスコアは、ユーザが現在位置にいくぶん馴染みがないことを示すと見なされる。しきい値は、0と1.0の間の任意の値として選択することができる。距離Xに選択される値もまた、熟知度スコアに影響を与える。というのは、Xの値が小さいほど、上式のカウント分子に含まれることになるユーザの位置履歴内の位置の数が少なくなるからである。一例では、しきい値は、Xの値が1キロメートルの場合に、0.5として選択される。すなわち、ユーザの位置履歴中の、ユーザについての報告された位置の少なくとも50%が現在位置まで1キロメートル以内である場合、ユーザは現在位置に馴染みがあると見なされる。他の値を使用することもでき、これらは説明のための一例に過ぎない。
【0047】
熟知度スコアがしきい値を超える(すなわちユーザが現在位置に馴染みがある)と決定するのに応答して、現在位置に対する関心点の近さと、関心点に関連する1つまたは複数の更新とに基づいて、関心点がランク付けされる(ステップ610)。ランク付けに基づいて、関心点の1つまたは複数がユーザに提供される(ステップ612)。更新の内容、またはユーザが更新を選択して見るための機構を、関心点と共に提供することができる。
【0048】
いくつかの実装形態では、1つまたは複数の関連する更新に基づいて関心点をランク付けすることは、どれくらい最近に更新が入力されたかを決定し(すなわち鮮度を決定し)、最近に入力された更新のランキングを上げることを含む。いくつかの実装形態では、関心点をランク付けすることは、関連する各更新につき、ソーシャルネットワーク中での、ユーザに対する更新作成者の近さを決定することを含む。例えば、上に論じたように、更新の作成者がソーシャルネットワーク中でユーザの「友達」である場合は、関連する関心点のランキングを上げることができる。
【0049】
熟知度スコアがしきい値を超えない場合、すなわちユーザが現在位置にいくぶん馴染みがないと見なされる場合は、取り出された関心点をランク付けするための異なる技法を適用することができる。例えば、現在位置に対する対応位置の近さのみに基づいて関心点をランク付けすることができる。他の実装形態では、2006年10月11日に出願され、Google Inc.に譲渡された、Jones他に対する「Entity Display Priority in a Distributed Geographic Information System」という名称の米国特許公報第2007/0143345号に記載の「プレイスランク(place rank)」手法に従って、関心点をランク付けすることができ、この米国特許公報の全内容は参照により本明細書に組み込まれる。すなわち、関心点に関する地図的でない様々なメタ属性の重み付き貢献度に基づいて、関心点をランク付けすることができる。物理的位置の特性(その人口など)を直接に測定するのではなく、これらの属性は、関心点に関連する抽象概念または表現の特色を反映する。このような属性の例としては、関心点の記述(例えば、関心点がオンラインフォーラム中で記述されている場合に、記述における詳細の量、または記述が閲覧された回数)、関心点の人気のインジケータ(例えば、関心点に関連するプレイスマーク(placemark)の閲覧数またはクリック数(例えば地図アプリケーション中での))、および、関心点のコンテキストに対する関心点の関係(関心点が属するカテゴリなど)が挙げられる。これらは全て、上に参照した特許公報にさらに記載されている。
【0050】
いくつかの実装形態では、以下に述べるスコアリング関数を使用して、取り出された各関心点にスコアを割り当てることができる。割り当てられたスコアは、関心点をランク付けするための基礎として使用することができる。
スコア=A×合計(f(更新);各更新につき)+B×距離(現在位置,関心点位置)+C×(距離独立スコア)
【0051】
上の関数で、A、B、およびCは、経験的に値を決定することのできる乗数であり、重み付き関数を提供する。この場合、異なる因数に、異なるように重み付けすることができる。乗数Aには、更新の鮮度(すなわちどれくらい最近に入力されたか)に基づいて、かつ/または、ソーシャルネットワーク中での、ユーザに対する更新作成者の近さに基づいて各更新に割り当てられる値の合計が掛けられる。乗数Bには、ユーザの現在位置と関心点の位置との間の距離が掛けられる。乗数Cには、距離独立基準に基づいて関心点に割り当てることのできるスコアが掛けられる。例えば、前述のプレイスランク手法を使用して関心点に割り当てられたものとすることのできるスコアを、Cの値で重み付けして、このスコアリング関数で使用することができる。
【0052】
いくつかの実装形態では、関心点のカテゴリのサブセットをユーザに提供することが望ましい場合がある。次いでユーザはカテゴリの1つを選択することができ、これに応答して、カテゴリ内の関心点のサブセットをユーザに提供することができる。例えば、通常のモバイル電子デバイス(例えば携帯電話機)は、画面空間が限られている。このようなデバイスの場合、限られた情報しか表示できないので、ユーザに提供されるように選択される情報は、慎重に選択されるべきである。いくつかの実装形態では、関心点のうちの選択されたもの(例えば提案検索クエリのセットとしての)または地図上のいくつかの関心点の表示がユーザに提供されるのではなく、ユーザがその中から選択できるカテゴリのセット、例えばレストラン、娯楽、ショッピングが、ユーザに提供される。
【0053】
どのカテゴリをユーザに提供するかの決定は、現在時間に基づくことができる。現在時間は、時刻または曜日、さらには季節とすることもできる。すなわち、いくつかの関心点カテゴリは、ある時間には他の時間よりもユーザに関連性があることがあり、これについては上に論じた。例えば、「コーヒーショップ」のカテゴリは、晩よりも朝の方がより関連性があることがある。どのカテゴリを選択するかの決定はさらに、現在位置によって決定することもできる。すなわち、都市の特定の地区が、昼間はショッピングに非常に人気があり、次いで晩および夜は、娯楽、例えばナイトクラブやラウンジに非常に人気があることがある。ユーザの電子デバイスの現在位置が昼間にこの領域内にある場合、ショッピングカテゴリを提示することは、現在時間が午後10:00であった場合よりも有用であろう。午後10:00には、全てのショップは閉まっており、ユーザは娯楽目的でこの位置にいる可能性がより高い。
【0054】
カテゴリのセットは、各カテゴリにつき所与の時間に所与の位置でその関心点カテゴリがユーザに関連性があることになる確率を示す情報に関連させて、記憶することができる。カテゴリのセットおよび情報は、時間関連属性データベース208(
図2)に記憶することができる。時間関連属性データベース208は、上に論じたものであり、カテゴリ中の関心点が最も関連性を有する時間に関連付けられたカテゴリを含んでよい。カテゴリはさらに、位置にマッピングされてもよい。すなわち、特定の位置および時間が与えられた場合に、ユーザに関連性がある可能性が最も高い1つまたは複数のカテゴリを時間関連属性データベースからフェッチすることができる。
【0055】
いくつかの実装形態では、関連性のあるカテゴリ中でユーザが関心点を見つけることになるかどうかのインジケータが、検索アクティビティに基づいて決定される。すなわち、所与の位置におけるカテゴリの主題に関係する検索クエリがユーザによって検索エンジンにサブミットされる頻度を使用して、ユーザに対するカテゴリの関連性が推定される。いくつかの実装形態では、クリックデータもまた、関連性のあるカテゴリ中でユーザが関心点を見つけることになるかどうかのインジケータとして使用することができる。クリックデータは、検索クエリに応答して検索結果が提示された時にユーザがクリックした検索結果に関するデータを指す。例えば、特定のクエリが「レストラン」カテゴリに関係することがわかり、この検索クエリに応答してユーザが2つの異なるレストランに関係する2つの異なる結果をクリックした場合、クリックされた結果は、クリックデータによって、この特定のクエリに関係するとして示される。
【0056】
図7は、カテゴリに関係するクエリを複数の異なる時間に受け取る確率を決定するための例示的なプロセス700を示すフローチャートである。1つまたは複数の検索エンジンにサブミットするために様々なユーザによって入力された、複数のクエリが受け取られる(ステップ702)。例えば、ユーザ120および122(
図1)が、サーバシステム102に備わる検索エンジン106に、ネットワーク104を介して検索クエリをサブミットする。検索エンジンは、例えばクエリデータベース202(
図2)中でログされてよい。各検索クエリは、クエリ位置に関連しうる。クエリ位置は、クエリの主題に関係する位置であることが好ましい。
【0057】
例えば、クエリが「エンパイアステートビルディング」に対するものである場合は、クエリ位置は、例えば建物自体の地理的座標として表された、ニューヨーク市のエンパイアステートビルディングの位置とすることができる。クエリ位置に望まれる粒度レベルに応じて、位置は、建物が位置する市、例えばニューヨーク市とすることができる。いくつかの実装形態では、複数の粒度レベルに関係する複数のクエリ位置を決定して、クエリに関連付けることができる。例えば、第1のクエリ位置は、建物自体の地理的座標とすることができ、このクエリに関連する第2のクエリ位置は、ニューヨーク市の地理的座標(市のほぼ中心の座標、または市の境界であってよい)とすることができる。
【0058】
クエリの主題に関係するクエリ位置の決定には、様々な技法を使用することができる。いくつかの実装形態では、クエリに含まれる各用語を、位置識別のために事前決定された用語の集まりに対してチェックすることができ、一致が見つかった場合はその用語をクエリ位置として識別することができる。例えば、「レストラン サンフランシスコ」に対するクエリから、サンフランシスコの位置を抽出することができる。いくつかの実装形態では、用語の集まりは、位置用語のデータベースとすることができ、このデータベースは、行政エリア(例えば、通り、市、地区、州、省、国)、ならびに、関心点、例えば地理的特徴(例えば山、川、湖)、ランドマーク(例えば重要な建物、記念建造物)、および会場(例えば公園、競技場、店)を含んでよい。各位置は、対応する緯度および経度を有してよく、形状または範囲を含んでもよい。クエリに関係する位置を決定するための他の技法を使用することもできる。例えば、クエリが地図アプリケーション中の検索フィールドに入力される場合、地図アプリケーションによって表示される地図とのユーザ対話を使用して、クエリに関係する位置を決定することができる。例示として、英国の地図がユーザに対して表示されており、ユーザが地図上でロンドンにズームインしてから検索クエリ「コーヒーショップ」を入力した場合は、ロンドンがクエリ中の用語でなかったにもかかわらず、クエリ位置をロンドンとして決定することができる。いくつかの実装形態では、例えば、クエリから位置を抽出できないようなクエリ、またはさもなければクエリの主題に関係する位置がクエリから決定できないようなクエリの場合は、ユーザがクエリをサブミットした時のユーザの位置がわかればその位置をデフォルトとして使用することができる。
【0059】
上に言及したように、クエリ位置に関連しタイムスタンプが付された複数のクエリが、様々なユーザから受け取られる(ステップ702)。クエリは、クエリの主題に基づいて複数のカテゴリに分類される(ステップ704)。いくつかの実装形態では、1つのクエリを複数のカテゴリに分類することができる。種々のカテゴリが種々の粒度レベルを有することができ、または、カテゴリはサブカテゴリに分割することができる。例えば、「ティムホートンズ」に対するクエリが、レストランカテゴリ、コーヒーショップカテゴリ、およびファストフードカテゴリに分類される場合がある。どのカテゴリにクエリを配置するかの決定は、様々な方法で達成することができる。一例では、クエリを形成する用語を、カテゴリに関連する用語の集まりと比較することができ、一致が見つかった場合は、対応するカテゴリにクエリを関連付けることができる。例えば、クエリが用語「カフェ」を含み、用語の集まりが、レストランカテゴリに関連する用語カフェを含む場合は、このクエリはレストランカテゴリに分類される。別の例では、クエリが用語「シネプレックス」を含み、用語の集まりが、映画館カテゴリおよび娯楽カテゴリに関連する用語シネプレックスを含む場合は、このクエリは映画館カテゴリおよび娯楽カテゴリに分類することができる。
【0060】
クエリがカテゴリに分類されると、クエリがこれらのカテゴリ中で受け取られる頻度を種々の時間に相関させることができる。例えば、夕方には、人々が夕食に向かう準備をしているので、レストランカテゴリ中で、比較的高頻度でクエリが受け取られる可能性がある。娯楽カテゴリ中では、晩および夜に、朝と比較して高頻度でクエリが受け取られる可能性がある。クエリは、クエリ位置に関連し、したがって位置によってさらに相関させることができる。複数の位置のそれぞれについて、各カテゴリ中のクエリを複数の異なる時間に受け取る確率を決定することができる(ステップ708)。すなわち、相関させたクエリデータの統計分析を、特定のカテゴリ中で特定の時間にクエリを受け取る確率を決定するための基礎として使用することができる。この確率は、カテゴリ内の関心点が所与の時間に所与の位置でユーザにとって関心のあるものである確率の推定値として使用することができる。上に言及したように、いくつかの実装形態では、クリックデータもまた、カテゴリ化して確率の推定に使用することができる。いくつかの実装形態では、モバイル電子デバイスから発生したクエリを非モバイルデバイスから発生したクエリと区別することができる場合は、これらのクエリを、確率の推定に使用する時に、異なるように重み付けすることができる。例えば、モバイル電子デバイスから発生したクエリは、非モバイルデバイスから発生したクエリよりも重く重み付けすることができる。他の実装形態では、モバイル電子デバイスから発生したクエリのみが、確率推定を行うための基礎として使用される。
【0061】
複数の位置は、高いまたは低い粒度を有することができる。例えば、確率は、国ごとに決定することができる。すなわち、複数の位置はそれぞれ国である。別の例では、確率は、都市ごとに決定することができる。さらに別の例では、確率は、複数の多様である可能性のある地区を有する大きな都市の場合には少なくとも、地区ごとに決定することができる。さらに別の例では、確率は、地球表面の自由裁量の区分、例えば所与の面積のセルに分けた区分について決定することができる。説明的な一例では、クエリの集まりが国ごとに分析され、種々のカテゴリ中でクエリを受け取るピーク時間が識別された。例えば、「タクシー」カテゴリ中では、およそ午後7:00が、タクシー関係のクエリの、最も高い頻度に関連する時間であった。北アメリカの国々では、およそ午後5:00が、レストラン関係のクエリの、最も高い頻度に関連する時間であったが、いくつかのヨーロッパの国では、およそ午後7:00がその時間であった。すなわち、位置に応じて、レストランカテゴリ中でクエリを受け取るピーク時間は異なった。
【0062】
増大し続けるクエリデータベース202を有するシステム中では、分析を定期的にまたは継続的に実行して、さらに結果を精緻化することができる。時間は、時刻とすることができるが、特定の日の時刻によってさらに精緻化することができる。例えば、ユーザ検索アクティビティは、土曜日と比較して金曜日には異なる可能性がある。時季を考慮に入れることもできる。というのは、より寒い季節と比較して、より暖かい季節には、人々はより多くの野外アクティビティに参加する傾向があるからである。
【0063】
図8は、ユーザの電子デバイスに提供する関心点のサブセットを決定するための例示的なプロセス800を示すフローチャートである。説明の目的で、
図1および2に示すシステム100および200に関してプロセス800を述べるが、異なるように構成されたシステムを使用してプロセス800を実施してもよいことを理解されたい。ユーザの電子デバイスの現在位置が受け取られる(ステップ802)。現在位置は、位置決定モジュール221から受け取ることができ、前述のように決定することができる。
【0064】
現在位置に対して所定距離内にある複数のカテゴリ化された関心点が取り出される(ステップ804)。前述のように、いくつかの実装形態では、所定距離は固定距離であり、他の実装形態では、所定距離の値は、現在位置の近くの関心点の密度に基づいて変動してよい。このプロセスで使用される場合、関心点データベース204は、データベースに含まれる各関心点に、1つまたは複数のカテゴリを関連付けることができる。
【0065】
取り出された各関心点のスコアが決定される。スコアは、現在位置に対する関心点の近さに(少なくとも部分的に)基づく(ステップ806)。すなわち、関心点の地理的位置と、現在位置との間の距離が計算され、関心点が現在位置に近いほど、スコアは高くなる。関心点ランク付けモジュール216(
図2)を使用して、関心点データベース204から取り出された各関心点のスコアを決定することができる。
【0066】
取り出されてスコアリングされた関心点に関連するカテゴリが、ランク付けされる。カテゴリのランク付けは、カテゴリに含まれる関心点のスコアに基づき、また、現在時間に現在位置でカテゴリの主題に関係するクエリをユーザから受け取る確率に基づく(ステップ808)。すなわち、高くスコアリングされた関心点を含む(すなわち現在位置に近い)カテゴリは、ランキングが上がる。加えて、特定の現在時間および位置でユーザにおそらく関連性があるカテゴリもまた、ランキングが上がる。特定の現在時間および位置でカテゴリに関係するクエリを受け取る確率は、カテゴリがどれくらいユーザにおそらく関連性があるかのインジケータとして使用される。
【0067】
カテゴリランク付けモジュール218(
図2)を使用して、取り出された関心点に関連するカテゴリをランク付けすることができる。カテゴリランク付けモジュール218は、カテゴリについての確率情報を時間関連属性データベース208から取り出すことができる。
【0068】
いくつかの実装形態では、関心点のスコアはさらに、現在位置に対する、関心点のタイプの「固有性」に基づくことができる。すなわち、現在位置のすぐ近くに2つのミュージアムおよび20軒のレストランがある場合は、ミュージアムカテゴリに含まれる関心点は、レストランである関心点よりも、この特定の現在位置に対して固有(すなわちより例外的)である。この現在位置に対するミュージアム関心点の固有性は、この関心点のスコアを上げることができる。
【0069】
いくつかの実装形態では、関心点のタイプの固有性は、以下のように推定することができる。特定エリア内の関心点の密度を決定することについては上述しており、
図2の例示的なシステム中では、密度情報は密度データベース206に記憶される。関心点の密度は、カテゴリごとに決定することができる。すなわち、所与の面積、例えば1平方キロメートルについて、エリア内のレストランの総数を面積で割って、1平方キロメートル当たりのレストランの密度を得ることができる。地理的エリアをセルのグリッドに分割することができ、これらのセルについてカテゴリごとの関心点の密度を決定することができる。カテゴリの主題によっては、いくつかのセルのみについていくつかのカテゴリのみのカテゴリ密度を計算することが望ましい場合がある。すなわち、あらゆるセルについてあらゆるカテゴリのカテゴリ密度を決定することは必ずしもしなくてよい。同様に、カテゴリ密度は、高レベルのカテゴリのみについて決定してもよい。例えば、レストランカテゴリは、様々な子カテゴリ、例えばイタリア料理レストランカテゴリ、メキシコ料理レストランカテゴリ、中華料理レストランカテゴリ、ファミリレストランカテゴリなどに対する、親カテゴリとすることができる。カテゴリ密度は、固有性データベース212(
図2)に記憶することができる。
【0070】
図9は、ユーザの電子デバイスに提供する関心点のサブセットを決定するための例示的なプロセス900を示すフローチャートである。説明の目的で、
図1および2に示すシステム100および200に関してプロセス900を述べるが、異なるように構成されたシステムを使用してプロセス900を実施してもよいことを理解されたい。ユーザの電子デバイスの現在位置が受け取られる(ステップ902)。現在位置は、位置決定モジュール221から受け取ることができ、前述のように決定することができる。
【0071】
現在位置に対して所定距離内にあるカテゴリ化された複数の関心点が取り出される(ステップ904)。前述のように、いくつかの実装形態では、所定距離は固定距離であり、他の実装形態では、所定距離の値は、現在位置の近くの関心点の密度に基づいて変動してよい。各関心点は1つまたは複数のカテゴリに関連し、これらのカテゴリは、主題によって相互と区別される。関心点は、現在位置に対するその近さと、現在位置に対するその固有性とに(少なくとも部分的に)基づいてスコアリングされる(ステップ906)。前述のように、現在位置に対する関心点の固有性は、関心点に対応するカテゴリのカテゴリ密度に基づいて推定することができる。関心点が複数のカテゴリに含まれ、複数のカテゴリ密度が利用可能である場合は、カテゴリ密度の値を平均すること、中間値を選択すること、最高値と最低値のいずれかを選択すること、またはこれらの値に関する何らかの他の関数を使用することができる。スコアリングに基づいて、1つまたは複数の関心点がユーザの電子デバイスに提供される(ステップ908)。
【0072】
要約として、サーバシステム102(
図1)は、様々なユーザ116、118からモバイル更新を受け取ることができる。サーバシステム102はまた、様々なユーザ120、122から検索クエリを受け取ることができる。検索クエリはタイムスタンプ付きであってよく、したがって、特定の検索クエリが受け取られる時間帯を決定することができる。例えば、いくつかのクエリが昼間にデスクトップコンピュータから受け取られるが、これらのクエリの主題は、晩に携帯電話機から受け取られるクエリとはかなり異なる可能性がある。電子デバイスの位置に関する(または位置を決定できる元になる)情報を、電子デバイスから受け取ることができる。位置と、場合によっては上に論じたような1つまたは複数の他の要因とに基づいて、1つまたは複数の関心点を識別するデータをサーバシステム102から電子デバイスに提供することができる。
図3〜5、8、および9に関して上述したように、関心点システム110は、どの1つまたは複数の関心点を電子デバイスに提供するかを決定することができる。いくつかの実装形態では、1つまたは複数のカテゴリが電子デバイスに提供され、電子デバイスのユーザはカテゴリを選択することができ、これに応答して、カテゴリに関係する1つまたは複数の関心点をユーザに提供することができる。カテゴリ選択および関心点選択は、情報が要求または提供される時間に依存してよい。例えば、同じ位置であっても、昼間にその位置にいるユーザは、夜間にその位置にいるユーザとは異なる関心点情報をサーバシステム102から受け取ることができる。
【0073】
図3〜6、8、および9は、ランキングまたはスコアリングに基づいて1つまたは複数の関心点をユーザに提供するためのプロセスを記述する。これらの様々なプロセスを組み合わせて、1つまたは複数の関心点をユーザに提供するのに使用できる1つまたは複数の異なる組合せにすることができることを理解されたい。例えば、プロセス300は、近さおよび1つまたは複数の時間関連属性に基づいて関心点をランク付けすることを記述する。プロセス400は、近さおよび1つまたは複数の更新に基づいて関心点をランク付けすることを記述する。いくつかの実装形態では、これらのプロセスを組み合わせることができ、ランキングは、近さ、時間関連属性、および更新に基づくことができる。
図5に示すプロセス500は、しきい値鮮度を有する更新を取り出し、ソーシャルネットワーク中での、ユーザに対する更新作成者の近さに基づいて、関心点をランク付けすることを記述する。いくつかの実装形態では、プロセス500を、プロセス300と400のいずれかまたは両方と組み合わせることができる。すなわち、ランク付けは、近さ、時間関連属性、および、更新の鮮度と更新の作成者とを含めた更新に基づくことができる。
【0074】
図6に示すプロセス600は、熟知度スコアを計算し、熟知度スコアがしきい値を超える時に、近さおよび更新に基づいて関心点がランク付けされることを記述する。いくつかの実装形態では、プロセス600を、本明細書に述べる他のプロセスと組み合わせることができる。例えば、熟知度スコアを計算することができ、熟知度スコアがしきい値を超える時は、近さ、時間関連属性、更新、固有性(例えばプロセス900参照)、および/または、関心点を含むカテゴリのランキング(例えばプロセス800参照)に基づいて、各関心点をランク付けすることができる。
図8に示すプロセス800は、カテゴリ化された関心点をスコアリングし、カテゴリをランク付けすることを記述する。関心点のスコアリングおよびカテゴリのランキングに基づいて、1つまたは複数の関心点がユーザに提供される。プロセス800を、本明細書に述べる他のプロセスと組み合わせることができる。例えば、関心点をスコアリングすることは、近さ、時間関連属性、更新、および/または固有性に基づくことができる。
図9に示すプロセス900は、近さおよび固有性に基づいて関心点をスコアリングすることを記述する。同様に、プロセス900を、本明細書に述べる他のプロセスと組み合わせることができる。例えば、関心点をスコアリングすることはさらに、時間関連属性および/または更新に基づくことができる。他の組合せおよびサブコンビネーションも可能であり、本記述によって企図される。
【0075】
図10に、ここで述べた技法と共に使用することのできる一般的なコンピュータデバイス1000および一般的なモバイルコンピュータデバイス1050の例を示す。コンピューティングデバイス1000は、ラップトップ、デスクトップ、ワークステーション、パーソナルディジタルアシスタント、サーバ、ブレードサーバ、メインフレーム、および他の適切なコンピュータなど、様々な形のディジタルコンピュータを表すものとする。コンピューティングデバイス1050は、パーソナルディジタルアシスタント、セルラー電話機、スマートフォン、および他の類似のコンピューティングデバイスなど、様々な形のモバイルデバイスを表すものとする。ここに示すコンポーネント、それらの接続および関係、ならびにそれらの機能は、例示に過ぎないものであり、本文書に記載および/または特許請求される本発明の実装形態を限定するものではない。
【0076】
コンピューティングデバイス1000は、プロセッサ1002と、メモリ1004と、記憶デバイス1006と、メモリ1004および高速拡張ポート1010に接続する高速インタフェース1008と、低速バス1014および記憶デバイス1006に接続する低速インタフェース1012とを備える。各コンポーネント1002、1004、1006、1008、1010、および1012は、様々なバスを使用して相互接続され、共通のマザーボード上に搭載されるかまたは適宜他の手法で搭載されてよい。プロセッサ1002は、メモリ1004または記憶デバイス1006に記憶された命令を含めた、コンピューティングデバイス1000内で実行するための命令を処理して、高速インタフェース1008に結合された表示装置1016などの外部入出力デバイス上のGUIに対してグラフィカル情報を表示することができる。他の実装形態では、複数のメモリおよびメモリタイプと共に、複数のプロセッサおよび/または複数のバスを適宜使用することができる。また、複数のコンピューティングデバイス1000が接続されてよく、各デバイスは、必要な動作の一部を提供する(例えば、サーババンク、一群のブレードサーバ、またはマルチプロセッサシステムとして)。
【0077】
メモリ1004は、コンピューティングデバイス1000内の情報を記憶する。一実装形態では、メモリ1004は、揮発性メモリユニットである。別の実装形態では、メモリ1004は、不揮発性メモリユニットである。メモリ1004はまた、磁気または光学ディスクなど、別の形のコンピュータ可読媒体であってもよい。
【0078】
記憶デバイス1006は、コンピューティングデバイス1000のための大容量記憶装置を提供することができる。一実装形態では、記憶デバイス1006は、フロッピー(登録商標)ディスクデバイス、ハードディスクデバイス、光学ディスクデバイス、もしくはテープデバイスなどのコンピュータ可読媒体、フラッシュメモリもしくは他の類似の固体メモリデバイス、または、ストレージエリアネットワーク中もしくは他の構成中のデバイスを含めたデバイスアレイであるか、またはそれを含んでよい。コンピュータプログラム製品が、情報キャリア中に有形に組み入れられてよい。コンピュータプログラム製品はまた、実行された時に前述の方法など1つまたは複数の方法を実施する命令を含むことができる。情報キャリアは、メモリ1004、記憶デバイス1006、プロセッサ1002上のメモリ、または伝搬信号など、コンピュータ可読または機械可読媒体である。
【0079】
高速コントローラ1008は、コンピューティングデバイス1000に関する帯域幅集約型動作を管理し、低速コントローラ1012は、より低帯域幅集約型動作を管理する。このような機能割振りは例示に過ぎない。一実装形態では、高速コントローラ1008は、メモリ1004、表示装置1016(例えばグラフィックスプロセッサまたはアクセラレータを介して)、および高速拡張ポート1010に結合され、高速拡張ポート1010は、様々な拡張カード(図示せず)を受容することができる。この実装形態では、低速コントローラ1012は、記憶デバイス1006および低速拡張ポート1014に結合される。低速拡張ポートは、様々な通信ポート(例えばUSB、ブルートゥース、イーサネット(登録商標)、ワイヤレスイーサネット(登録商標))を含んでよく、キーボード、ポインティングデバイス、スキャナなど、1つまたは複数の入出力デバイスに、またはスイッチやルータなどのネットワーキングデバイスに(例えばネットワークアダプタを介して)結合されてよい。
【0080】
コンピューティングデバイス1000は、図示のように、いくつかの異なる形で実現することができる。例えば、標準的なサーバ1020として、またはそのようなサーバのグループ中で複数回、実現することができる。また、ラックサーバシステム1024の一部として実現することもできる。加えて、ラップトップコンピュータ1022などのパーソナルコンピュータ中で実現することもできる。別法として、コンピューティングデバイス1000からのコンポーネントを、デバイス1050などのモバイルデバイス(図示せず)中の他のコンポーネントと組み合わせることができる。このようなデバイスはそれぞれ、1つまたは複数のコンピューティングデバイス1000、1050を含んでよく、システム全体が、相互に通信する複数のコンピューティングデバイス1000、1050で構成されてよい。
【0081】
コンピューティングデバイス1050は、コンポーネントの中でもとりわけ、プロセッサ1052と、メモリ1064と、表示装置1054などの入出力デバイスと、通信インタフェース1066と、送受信機1068とを備える。デバイス1050にはまた、マイクロドライブまたは他のデバイスなど、追加の記憶域を提供するための記憶デバイスが備わってもよい。各コンポーネント1050、1052、1064、1054、1066、および1068は、様々なバスを使用して相互接続され、コンポーネントのいくつかは、共通のマザーボード上に搭載されるかまたは適宜他の方式で搭載されてよい。
【0082】
プロセッサ1052は、メモリ1064に記憶された命令を含めた、コンピューティングデバイス1050内の命令を実行することができる。プロセッサは、別々かつ複数のアナログおよびディジタルプロセッサを備えるチップセットまたはチップとして実現することができる。プロセッサは、例えば、ユーザインタフェースと、デバイス1050によって実行されるアプリケーションと、デバイス1050によるワイヤレス通信とを制御することなど、デバイス1050の他のコンポーネントの調整を可能にすることができる。
【0083】
プロセッサ1052は、制御インタフェース1058と、表示装置1054に結合された表示インタフェース1056とを介して、ユーザと通信することができる。表示装置1054は、例えば、TFT LCD(薄膜トランジスタ液晶ディスプレイ)もしくはOLED(有機発光ダイオード)表示装置、または他の適切な表示技術とすることができる。表示インタフェース1056は、表示装置1054を駆動してグラフィカルまたは他の情報をユーザに提示するための適切な回路を備えてよい。制御インタフェース1058は、ユーザからコマンドを受け取り、これらのコマンドをプロセッサ1052へのサブミットに向けて変換することができる。加えて、プロセッサ1052と通信する外部インタフェース1062が備わってよく、それにより、デバイス1050の、他のデバイスとの近接エリア通信が可能になる。外部インタフェース1062は、例えば、いくつかの実装形態では有線通信、または他の実装形態ではワイヤレス通信を可能にすることができ、複数のインタフェースが使用されてもよい。
【0084】
メモリ1064は、コンピューティングデバイス1050内の情報を記憶する。メモリ1064は、コンピュータ可読媒体、揮発性メモリユニット、または不揮発性メモリユニットの、1つまたは複数として実現することができる。拡張メモリ1074もまた備わってよく、拡張インタフェース1072を介してデバイス1050に接続されてよい。拡張インタフェース1072は、例えば、SIMM(シングルインラインメモリモジュール)カードインタフェースを含んでよい。このような拡張メモリ1074は、デバイス1050のための追加の記憶空間を提供することができ、または、デバイス1050のためのアプリケーションもしくは他の情報を記憶することもできる。具体的には、拡張メモリ1074は、前述のプロセスを実行または補足するための命令を含んでよく、セキュアな情報を含んでもよい。したがって、例えば、拡張メモリ1074は、デバイス1050のためのセキュリティモジュールとして提供することができ、デバイス1050のセキュアな使用を許可する命令でプログラムすることができる。加えて、ハッキング不可能な方式で識別情報をSIMMカード上に配置するなど、追加の情報と共に、SIMMカードを介してセキュアなアプリケーションを提供することもできる。
【0085】
メモリは、以下に論じるように、例えばフラッシュメモリおよび/またはNVRAMメモリを含んでよい。一実装形態では、コンピュータプログラム製品が、情報キャリア中に有形に組み入れられる。コンピュータプログラム製品は、実行された時に前述の方法など1つまたは複数の方法を実施する命令を含む。情報キャリアは、メモリ1064、拡張メモリ1074、プロセッサ1052上のメモリ、または、送受信機1068もしくは外部インタフェース1062を例えば介して受信されうる伝搬信号など、コンピュータ可読または機械可読媒体である。
【0086】
デバイス1050は、通信インタフェース1066を介してワイヤレス通信することができ、通信インタフェース1066は、必要な場合にはディジタル信号処理回路を含んでよい。通信インタフェース1066は、とりわけGSM(登録商標)ボイスコール、SMS、EMS、もしくはMMSメッセージング、CDMA、TDMA、PDC、WCDMA、CDMA2000、またはGPRSなど、様々なモードまたはプロトコルの下で通信を提供することができる。このような通信は、例えば無線周波数送受信機1068を介して行うことができる。加えて、ブルートゥース、WiFi、または他のそのような送受信機(図示せず)などを使用して、短距離通信を行うこともできる。加えて、GPS(全地球測位システム)受信機モジュール1070が、追加のナビゲーション関連および位置関連ワイヤレスデータをデバイス1050に提供することができ、これらのデータは、デバイス1050上で実行されるアプリケーションによって適宜使用することができる。
【0087】
デバイス1050はまた、オーディオコーデック1060を使用して可聴通信することもでき、オーディオコーデック1060は、話された情報をユーザから受け取り、この情報を、使用可能なディジタル情報に変換することができる。オーディオコーデック1060は、同様に、スピーカ(例えばデバイス1050のハンドセット中の)などを介して、ユーザのための可聴音声を生成することができる。このような音声は、ボイス電話通話からの音声を含んでよく、録音された音声(例えばボイスメッセージ、音楽ファイルなど)を含んでよく、また、デバイス1050上で動作するアプリケーションによって生成された音声を含んでもよい。
【0088】
コンピューティングデバイス1050は、図示のように、いくつかの異なる形で実現することができる。例えば、セルラー電話機1080として実現することができる。また、スマートフォン1082、パーソナルディジタルアシスタント、または他の類似のモバイルデバイスの一部として実現することもできる。
【0089】
デバイス1050はまた、動きを送ることのできる1つまたは複数の異なるデバイスを備えてもよい。例としては加速度計およびコンパスが挙げられるが、これらに限定されない。
加速度計およびコンパス、または動きもしくは位置を検出できる他のデバイスは、任意の数のベンダから入手可能であり、様々な方法で動きを感知することができる。例えば、加速度計は、加速度の変化を検出することができ、コンパスは、磁北極または磁南極に対する配向の変化を検出することができる。これらの動きの変化をデバイス1050によって検出して、本明細書に述べるプロセスおよび技法に従ってそれぞれのデバイス1050の表示を更新するのに使用することができる。
【0090】
ここに述べるシステムおよび技法の様々な実装形態は、ディジタル電子回路、集積回路、特別設計ASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはこれらの組合せにおいて実現することができる。これらの様々な実装形態は、少なくとも1つのプログラム可能プロセッサを備えるプログラム可能システム上で実行可能かつ/または解釈可能な1つまたは複数のコンピュータプログラムにおける実装を含んでよく、このプログラム可能プロセッサは、専用または汎用であってよく、記憶システム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスとの間でデータおよび命令を送受信するように結合されてよい。
【0091】
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとも呼ばれる)は、プログラム可能プロセッサのための機械命令を含み、高水準手続き言語および/もしくはオブジェクト指向プログラミング言語、ならびに/またはアセンブリ言語/機械言語で実装することができる。本明細書において、用語「機械可読媒体」「コンピュータ可読媒体」は、機械命令を機械可読信号として受け取る機械可読媒体を含めて、機械命令および/またはデータをプログラム可能プロセッサに提供するのに使用される任意のコンピュータプログラム製品、装置、および/またはデバイス(例えば磁気ディスク、光学ディスク、メモリ、プログラマブルロジックデバイス(PLD))を指す。用語「機械可読信号」は、機械命令および/またはデータをプログラム可能プロセッサに提供するのに使用される任意の信号を指す。
【0092】
命令をユーザに提供するために、ここで述べるシステムおよび技法は、情報をユーザに対して表示するための表示デバイス(例えばCRT(陰極線管)またはLCD(液晶ディスプレイ)モニタ)と、ユーザが入力をコンピュータに提供できるためのキーボードおよびポインティングデバイス(例えばマウスまたはトラックボール)とを有するコンピュータ上で実現することができる。他の種類のデバイスを使用してユーザとの対話を可能にすることもできる。例えば、ユーザに提供されるフィードバックは、任意の形の感覚フィードバック(例えば視覚フィードバック、聴覚フィードバック、または触覚フィードバック)とすることができ、ユーザからの入力は、音響、発話、または触覚入力を含めて、任意の形で受け取ることができる。
【0093】
ここに述べるシステムおよび技法は、バックエンドコンポーネント(例えばデータサーバとして)、またはミドルウェアコンポーネント(例えばアプリケーションサーバ)、またはフロントエンドコンポーネント(例えば、ユーザがここに述べるシステムおよび技法の一実装形態と対話するのに用いることのできるグラフィカルユーザインタフェースもしくはウェブブラウザを有する、クライアントコンピュータ)、あるいはこのようなバックエンド、ミドルウェア、またはフロントエンドコンポーネントの任意の組合せを備えた、コンピューティングシステム中で実現することができる。システムのコンポーネントは、ディジタルデータ通信の任意の形または媒体(例えば通信ネットワーク)によって相互接続されてよい。通信ネットワークの例としては、ローカルエリアネットワーク(「LAN」)、ワイドエリアネットワーク(「WAN」)、およびインターネットが挙げられる。
【0094】
コンピューティングシステムは、クライアントおよびサーバを含みうる。クライアントおよびサーバは、一般に相互からリモートにあり、通常は通信ネットワークを介して対話する。クライアントとサーバの関係は、それぞれのコンポーネント上で実行される、相互とクライアントサーバ関係を有するコンピュータプログラムによって生じる。
【0095】
本明細書は多くの特定の実装詳細を含むが、これらの詳細は、いずれかの発明の範囲、または特許請求されうるものの範囲に対する限定と解釈すべきではなく、むしろ、特定の発明の特定の実施形態に特有である可能性のある特徴についての記述として解釈すべきである。別々の実施形態のコンテキストで本明細書に述べるいくつかの特徴を、単一の実施形態で組み合わせて実現することもできる。反対に、単一の実施形態のコンテキストで述べる様々な特徴を、複数の実施形態で別々にまたは任意の適切なサブコンビネーションで実現することもできる。さらに、上記では、特定の組合せで作用するものとして特徴について述べている場合もあり、最初はそのように特許請求される場合すらあるが、特許請求されるサブコンビネーションからの1つまたは複数の特徴は、場合によっては組合せから削除することができ、特許請求される組合せは、サブコンビネーション、またはサブコンビネーションの変形を対象とすることがある。
【0096】
同様に、図面では動作が特定の順序で描かれているが、これは、所望の結果を達成するのに、このような動作が図示の特定の順序でもしくは逐次的な順序で実施されること、または全ての図示の動作を実施すべきであることを必要とするものと理解すべきではない。状況によっては、マルチタスキングおよび並列処理が有利な場合もある。さらに、前述の実施形態における様々なシステムコンポーネントの分離は、そのような分離を全ての実施形態で必要とするものと理解すべきではなく、述べたプログラムコンポーネントおよびシステムは一般に、単一のソフトウェア製品に統合できること、または複数のソフトウェア製品にパッケージできることを理解されたい。
【0097】
いくつかの実施形態について述べた。しかし、本発明の趣旨および範囲を逸脱することなく様々な修正を加えることができることは理解されるであろう。
【0098】
加えて、図に描かれた論理フローは、所望の結果を達成するのに、図示の特定の順序または逐次的な順序を必要としない。加えて、述べたフローに対して他のステップを提供することまたはステップを除去することもでき、述べたシステムに対して他のコンポーネントを追加または除去することもできる。したがって、他の実施形態も、後続の特許請求の範囲内である。