説明

個人情報のジオコーディング

ジオコーディングされたユーザ情報を生成するためのコンピュータで実施される方法が開示される。この方法は、位置関係情報を有する入力項目について複数の異なるデータコーパスにまたがってユーザデータを探索するステップと、その位置関係情報に関する位置を決定するステップとを含む。この方法は、複数の異なるデータコーパスからの入力項目に関する、その決定された位置における、位置関係情報を有する入力項目の表現とともにモバイルデバイスの現在位置を示す地図を生成するステップをさらに含む。

【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、参照により本明細書に組み込まれている、2008年10月22日に出願した米国出願第12/256,078号、名称「GEOCODING PERSONAL INFORMATION」の優先権を主張するものである。
【0002】
本明細書は、電子ディスプレイ内への個人データの組込みに関する。
【背景技術】
【0003】
カレンダー、アドレス帳、およびタスクリストなどのウェブベースの個人情報管理(PIM)プログラムの出現により、大半の時間を自宅またはオフィスから離れて過ごす人々は、日常の事柄を管理するためにこれらのウェブアプリケーションに依存するようになってしまった。実際、オンラインまたはモバイルPIMアプリケーションは、多くの場合、一部のユーザが重要な個人情報を記録する唯一の場所である。ユーザは、ときにはパーソナルデジタルアシスタント(PDA)およびスマートフォンなどの現代的なポータブルコンピューティングデバイスを利用することで特定の位置に束縛されることなくインターネット上に格納されている情報にアクセスすることができるけれども、PDAの場合、ユーザは、一般的に、情報を孤立した状態で、つまり、他のデバイス上に格納されているか、または他のインターネットアプリケーションに格納されている情報がもたらすコンテキスト情報のないまま閲覧せざるを得ない。
【0004】
コンテキスト情報は、ユーザが、ポータブルコンピューティングデバイスだけに注意を集中することができないとき、例えば、ユーザが自動車を運転しているときに、特に重要になる場合がある。例えば、ユーザが運転中であれば、ユーザは、ナビゲーションシステムから出される運転指令を必要とし、それと同時に、PDAによってアクセス可能なウェブアプリケーションに格納されている連絡先情報が欲しい場合がある。道路、ナビゲーションシステム、そしてPDAと注意集中先を切り替える動作は、運転者だけでなく、道路上にいる他の人々にとっても危険な場合がある。
【発明の概要】
【課題を解決するための手段】
【0005】
一般に、本明細書では、個人データを含む画像表示または他の出力(例えば、聴覚または触覚によるもの)の機能強化について説明する。特に、ユーザの多くの個人アプリケーションにおける入力項目に関連する位置関係データを、これらのアプリケーションからスクレーピングし、それらの入力項目に関するアイコンをユーザのポータブルコンピューティングデバイス上の地図上に重ね合わせて表示することができる。このような個人アプリケーションは、タスク、アポイントメントまたはカレンダー、および連絡先アプリケーションを含むものとしてよく、位置関係情報は、連絡先のアドレスなどの情報、または次回会合の説明に一覧として表示されるアドレス情報を含むことが可能である。位置関係情報をジオコーディングし、次いで、それぞれのそのような入力項目に関するアイコンを、個人用ナビゲーションデバイス(地図表示アプリケーション(mapping application)を実行するモバイルスマートフォンであってもよい)上の地図などの、ユーザの現在位置を示す地図上に表示することができる。
【0006】
例えば、ユーザは、1つまたは複数のアプリケーションに個人データを格納し、個人データに対応する物理的な位置を決定することができる。ユーザが、個人データに対応する物理的な位置のうちの1つまたは複数に近づいたときに、そのユーザに属しているモバイルコンピューティングデバイスの表示を、その物理的な位置に関係する個人データの指示を含むように更新することができる。必要ならば、ユーザは、適切なアイコンを選択することによってデバイス上に表示される個人データに関する追加情報を取得することができる。
【0007】
一実施形態において、ジオコーディングされたユーザ情報を生成するためのコンピュータで実施される方法が開示される。この方法は、位置関係情報を有する入力項目について複数の異なるデータコーパスにまたがってユーザデータを探索するステップと、その位置関係情報に関する位置を決定するステップとを含む。この方法は、複数の異なるデータコーパスからの入力項目に関する、その決定された位置における、位置関係情報を有する入力項目の表現とともにモバイルデバイスの現在位置を示す地図を生成するステップをさらに含む。
【0008】
いくつかの態様では、地図を表示するためのデータは、リモートサーバから受信され、入力項目に関するデータが、ローカルデバイスから受信され、地図上に重ねて表示される。また、この方法は、地図上に、その地図に表示される地形の外縁からの決定された距離である、イベントに関する入力項目を表すアイコンを表示するステップをさらに含む。それに加えて、位置関係情報に関する位置を決定するステップは、記述的な位置ベースのデータをリモートサーバに伝送するステップと、それに応答してジオコーディングされた情報を受信するステップとを含む。いくつかの態様では、この方法は、ユーザデータに関連するクエリをリモートローカル検索エンジンにサブミットするステップと、入力項目の表現に従ってクエリに応答して受信されたデータを表すアイコンを表示するステップとをさらに含む。
【0009】
他の実施形態では、実行された場合にアクションを行う命令が記録されかつ格納される有形な媒体が開示される。このアクションは、位置関係情報を有する入力項目について複数の異なるデータコーパスにまたがってユーザデータを探索するステップとその位置関係情報に関する位置を決定するステップとを含む。これらのアクションは、複数の異なるデータコーパスからの入力項目に関する、その決定された位置における、位置関係情報を有する入力項目の記述とともにモバイルデバイスの現在位置を示す地図を生成するステップをさらに含む。
【0010】
いくつかの態様では、地図を生成するための命令は、地図上に、その地図に表示される地形の外縁からの決定された距離である入力項目を表すアイコンを表示するための命令をさらに含むことができる。これらの命令は、地図上のパニングアクションを受信するための命令、および地図上の新しい位置に一致するように地図および入力項目の表示を更新するための命令も含む。それに加えて、これらの命令は、地図上のパニングアクションを受信するための命令、および地図上の新しい位置に一致するように地図および入力項目の表示を更新するための命令も含む。
【0011】
本明細書で説明されているシステムおよび技術は、以下の利点のうちの1つまたは複数を備えることができる。第1に、システムは、さまざまなアプリケーションからの個人情報をジオコーディングし、その情報を、さまざまな種類の情報を共通表示に組み込む形でユーザに対して表示することができる。第2に、システムは、画像表示の現在の範囲を外れる入力項目を示すことなどによって、近くにある連絡先およびイベントとともに電子ディスプレイを拡張することができる。
【0012】
個人情報をジオコーディングする1つまたは複数の実施形態の詳細は、付属の図面および以下の説明で述べられる。個人情報をジオコーディングすることの他の特徴および利点は、説明および図面、さらに請求項から明白になるであろう。
【図面の簡単な説明】
【0013】
【図1】ジオコーディングされたユーザ情報を表示することができる例示的な地図表示システム(mapping system)の概念図である。
【図2A】ジオコーディングされたユーザ情報を表示する能力を有する例示的な地図表示システムのブロック図である。
【図2B】ジオコーディングされたユーザ情報を表示する能力を有する例示的な地図表示システムの代替的実施形態を示す図である。
【図3A】ジオコーディングされたユーザ情報を含む地図を作成するための例示的なプロセスを示す流れ図である。
【図3B】ジオコーディングされたユーザ情報を含む地図を作成するための例示的な代替的方法を示す流れ図である。
【図4A】クライアント/サーバ環境においてジオコーディングされたユーザ情報を含む地図を作成するための例示的な方法を示す図である。
【図4B】クライアント/サーバ環境においてジオコーディングされたユーザ情報を含む地図を作成するための例示的な代替的方法を示す図である。
【図5】例示的な地図表示システムのさまざまな態様を実装する例示的なデバイスの外観を示す図である。
【図6】図5のデバイスの内部アーキテクチャを例示するブロック図である。
【図7】オペレーティングシステムがGOOGLEモバイルデバイスプラットフォームである場合のデバイスによって使用されるオペレーティングシステムの例示的なコンポーネントを例示するブロック図である。
【図8】オペレーティングシステムカーネル上でユーザ空間内において実行される例示的なプロセスを示すブロック図である。
【図9】本明細書で説明されている技術とともに使用されうる、一般的なコンピュータデバイスおよび一般的なモバイルコンピュータデバイスの一例を示す図である。 さまざまな図面内の類似の参照記号は、類似の要素を示す。
【発明を実施するための形態】
【0014】
本明細書では、ジオコーディングされたユーザ情報を含む地図を生成するためのシステムおよび技術を説明する。ユーザデータは、1つまたは複数のデータベースから選択され、選択されたデータの「現実世界」の位置が決定される。その後、選択されたデータの位置が、ポータブルコンピューティングデバイス上に表示されている地図上に配置されたマーカーによって指示されうる。例えば、女性社員が、1つまたは複数のウェブアプリケーションに連絡先、アポイントメント、およびタスクに関係するデータを保存することができる。この女性社員が、自分のオフィスからクライアントのところへ自動車でゆくときに、自分のすぐ近くにある保存データを表すアイコンを自分のPDAの画面上に表示することができる。この女性社員が、例えば、マーカーが置かれている画面の領域にタッチすることによって連絡先またはイベントを選択した場合、アポイントメントの説明または連絡先もしくはアポイントメントに関連付けられている電話番号などの、その連絡先またはイベントに関する詳細情報が表示されうる。そこで、ユーザは、例えば、クリックして電話番号を呼び出すことができるが、そのために、それを押すか、または音声コマンドを使用して選択する。
【0015】
図1は、ジオコーディングされたユーザ情報を表示することができる例示的な地図表示システムの概念図100である。一般に、システムは、多数のデータコーパスを含むデータベースからユーザデータを抽出し、抽出されたその情報をジオコーディングし、そのジオコーディングされた情報をシステムによって生成された地図上に表示することができる。図解例において、例示的な地図表示システムは、ウェブアプリケーションから情報を抽出し、抽出された情報の物理的な位置を決定する、つまり、その情報のジオコーディングまたはジオロケーティングを行うことができる。ユーザが移動すると、地図表示システムは、抽出された情報の個別の物理的な位置に対応する地図上の位置に配置されているマーカーを含む地図を生成することができる。
【0016】
例えば、ユーザは、コンピューティングデバイスを使用して、個人情報を、オンラインカレンダーもしくはアポイントメントブック、「to-do」もしくはタスクリスト、アドレスもしくは連絡先帳などのウェブアプリケーションに入力することができる。個人情報は、ほかにもデータがあるがとりわけ、家族および友人のアドレス、履行する必要のある用事、または次回の仕事および社会的行事を含みうる。ユーザが一方の場所から他の場所へ移動するときに、オンラインアプリケーションに収められている情報を使用して、PDA、ラップトップ、車載ナビゲーションシステム、または他の適切なコンピューティングデバイスなどの、ユーザとともに移動するコンピューティングデバイス上の地図表示に書き込むことができる。いくつかの場合において、個人情報は、他の種類の出力を強化するために使用することができる。例えば、オンラインアプリケーション内に収められている個人情報を使用して、音声通知アラームをトリガーしたり、またはユーザが個人情報に対応する位置に接近したときにコンピューティングデバイスを振動させたりすることができる。
【0017】
図1をさらに詳しく見てみると、画像102は、ジオコーディングされたユーザ情報を表示することができる例示的な地図表示システムによって生成される表示のスクリーンショットである。図解例において、ジオコーディングされた情報は、イベント122および連絡先118のマーカーまたはアイコンによって表すことができる。いくつかの実施形態において、マーカー118、122は、ウェブアプリケーションおよびオンラインデータリポジトリに収められているユーザデータに関連付けることができる。例えば、ユーザデータは、GOOGLE CALENDAR、GOOGLE MAPS、GOOGLE DOCS、または他の適切なウェブベースのプログラムなどの1つまたは複数のウェブアプリケーションに格納することができる。他の実施形態では、それぞれのマーカー118、122は、PDA、パーソナルコンピュータ、ラップトップコンピュータ、携帯電話、もしくは同様のものなどのコンピューティングデバイスに収められている情報、またはモバイルデバイスに格納され、中央サーバシステムに置かれているデータベースと同期する情報に対応するものとすることができる。
【0018】
図解例において、ユーザの情報は、さまざまな適切なデータ管理アプリケーションがあるうち、カレンダー108、アドレス帳104、およびタスクリスト106などの1つまたは複数のアプリケーションに格納することができる。イベントマーカー122は、例えば、カレンダー108でスケジュールされている次回通院日を表すことができ、連絡先マーカー118は、アドレス帳104内にリストアップされている同僚を記号化したものとしてよい。イベント122と連絡先118の両方のマーカーの地図上の位置は、マーカー118、122によって表されるイベントをもしくは連絡先の地理空間位置によって決定されうる。上述の例では、イベント122および連絡先118のマーカーの配置は、それぞれ、医院と連絡先の自宅の実際の位置に対応するものとすることができる。
【0019】
イベントまたは連絡先に関する位置は、アプリケーションからのテキスト情報をジオコーディングすることによって決定されうる。例えば、連絡先入力項目では、アドレスフィールド内に「ミネソタ州セントルイスパーク、ブロードウェイ01番地」などのアドレスを入れることができ、アプリケーションは、そのアドレスフィールドをチェックして、緯度/経度の対または他の適切にフォーマットされジオコーディングされた情報などのジオコーディングされた情報と対応するようにプログラムされているサーバにテキスト情報をサブミットすることなどによって、そのような情報をジオコーディングすることができる。同様の方法により、フィルターを使用してアポイントメントの記述を調べ、通りの名称などの明示的なアドレス情報またはレストランの名称などの暗示的なアドレス情報(例えば、「Spagoにて昼食」)を探すことができる。
【0020】
テキストアドレス情報のこのような変換は、例えば、そのような情報をユーザのデータベースからスクレーピングする第1のサービスとそのテキスト情報をジオコーディングされた情報に変換する第2のサービスによって実行されうる。この変換では、さまざまなコンテキスト要因を考慮することもできる。例えば、アポイントメントが昼食または夕食時間の頃である場合、「レストラン」という語を検索語に追加するとよい。同様の方法により、検索は、最初に、企業のリスティングを含むデータベースに対して実行され、現在ユーザのモバイルデバイスを中心とするエリア内でローカル検索として実行されうる。
【0021】
他の実施形態では、イベントマーカー122は、ユーザデータベース内の特定のリストアップされた位置以外の場所に対応していてもよい。例えば、イベントマーカー122は、タスクリスト106内の未完了タスクに関係するものとすることができる。例示的な実施形態において、システムは、タスクリスト106内の保留タスクを解析し、「食料品店」、「手紙」、および「ドライクリーニング」などの1つまたは複数のキーワードまたはフレーズを選択することができる。その後、システムは、キーワードに関する同義語を生成(現在の例では、地図システムは、選択されたキーワードに対して「スーパーマーケット」、「郵便局」、および「クリーニング屋」をそれぞれ生成することが可能である)し、選択されたキーワードまたはキーワードの同義語と一致し、ユーザの現在位置の定義済み半径内にあるエンティティに関する参照地図データを探索することができる。次いで、システムは、このデータを取り出すことができる。一致するエンティティに関係する住所または他の情報を使用することで、地図システムは、一致するエンティティの実際の位置に対応するイベントマーカー122を地図上に書き込むことができる。現在の例では、ユーザが都市の街路にそって移動しているときに、地図システムは、イベントマーカー122を多数の現地食料雑貨店、米国郵便局、およびユーザから特定の距離の範囲内にあるドライクリーニング店に対応する地図上に配置することができる。
【0022】
システムは、特定の位置関係情報を欠いているスケジュールされたカレンダーイベントに対し類似のプロセスを実行することができる。いくつかの場合において、ユーザは、ジオコーディングするにはあまりにも一般的すぎる位置とともに、または位置をまったく含めずにカレンダーイベントを入力することができる。例えば、「2007年11月1日木曜日、8:00 pm映画鑑賞」。上述の手順に従うことによって(入力項目を解析し、同義語を生成し、探索する)、システムは、ユーザの近辺にある映画館を特定し、地図上に対応するイベントマーカー122を含めることができる。
【0023】
ユーザの位置と地図マーカー118、122によって表される位置との間の空間関係をユーザが理解しやすいように、システムでは、いくつかのマーカーに対してカラースキームまたは透明スキームを使用することができる。状況によっては、ユーザがユーザと地図マーカー118、122によって表されるイベントもしくは連絡先との間の相対距離を判定することが困難な場合がある。例えば、ユーザは、ユーザがさらに自動車を運転しているときに地図システムによって表示される地図の尺度を認識するのに苦労する場合がある。言い換えると、ユーザは、表示されるマーカー118、122がユーザから2マイル離れているのか、それとも20マイル離れているのかを判定することができない場合がある。いくつかの実施形態では、ユーザのプリセットされた距離の範囲内のマーカー118、122は、他のマーカーと異なる色で表示することができる。例えば、プリセットされた距離内にあるマーカーの色を赤とし、他のすべてのマーカーを青色とすることができるが、他のカラースキームも使用可能である。類似の方法により、ユーザのモバイルデバイスの現在位置に近づくにつれマーカーのサイズが変化するものとしてもよい。
【0024】
他の実施形態では、マーカー118、122は、ユーザがマーカー118、122の方へ移動するとき、またはマーカー118、122から離れてゆくときにフェードインまたはフェードアウトすることができる。例えば、ユーザが職場から自宅へ移動するときに、オフィスを表すマーカー118は、ユーザが所定のエリアの外に出るにつれフェードしてゆく(つまり、だんだん透明になってゆく)ものとすることができる。同様に、ユーザの自宅を表すマーカー118は、ユーザが自宅に近づくとともに不透明になってゆくものとすることができる。いくつかの実施形態において、カラースキームと透明スキームとを組み合わせることができる。例えば、ユーザの周囲エリアの外にある地図マーカー118、122は、青色になり、ユーザが自分の物理的位置から離れてゆくにつれフェードしてゆき、近くにあるマーカー118、122は、赤色に変わり、ユーザがマーカーの実際の位置に接近するにつれ透明を失ってゆくものとすることができる。
【0025】
いくつかの実施形態では、マーカー118、122は、連絡先もしくはイベントに関連付けられている画像であってもよい。例えば、連絡先は、連絡先情報がウェブアプリケーションのうちの1つに収められている人の画像で表すことができ、イベントは、そのイベントが保持されている位置の写真によって表すことができる。他の実施形態では、連絡先およびイベントは、同僚、家族、友人、職場、自宅、ジムなどのいくつかの広義のカテゴリに分割することができる。それぞれのカテゴリには、異なる画像を関連付けることができ、与えられたカテゴリに入る連絡先およびイベントは、地図表示上の関連付けられている画像によって表すことができる。また、マーカーは、図示されているように、関連情報が取り出されたコーパス、例えば、連絡先、アポイントメント、またはタスクリストに基づいてわずかに異なっていてもよい。
【0026】
画面外マーカー112、114は、現在表示されている地図セクションに隣接する地図のエリア内に示されることになる連絡先118およびイベント122のマーカーを表すことができる。いくつかの実施形態では、地図表示システムによって表示される地図のセクションは、ユーザのジオコーディングされた情報のすべてを含まない場合もある。例えば、システムは、ユーザを中心とする半径5マイルの範囲内のエリアの地図を生成することができ、そのエリアを外れているイベント122または連絡先118のマーカーは、画面に表示されなくてもよい。いくつかの実施形態では、画面外マーカー118、122は、画面外連絡先またはイベントの方向を表す方向矢印110の下、または横の地図表示の縁に配置することができる。それぞれの画面外マーカー112、114は、その後の地図セクション内に表示されうる、非表示イベントもしくは連絡先の数をそれぞれ示す数値を含むことができる。画面外マーカーが表示されない場合、方向矢印110は、ユーザが現在移動している方向を表すことができる。
【0027】
連絡先もしくはイベントに関連付けられている詳細は、連絡先118もしくはイベント122のマーカーにリンクする情報ウィンドウ116内に表示されうる。情報ウィンドウ116は、マーカー120に隣接しているか、またはいくつかの実施形態では、連続しない形で、関連付けられているマーカーの近くに配置することができる。詳細は、1つまたは複数のウェブアプリケーションまたは他の適切なソース内に格納されている情報から抽出することができる。例えば、マーカー118、122が、連絡先を表す場合、情報ウィンドウ116内に表示される詳細は、連絡先の名称、アドレス、電話番号などを含むことができる。
【0028】
ディスプレイ102に示されているマーカーは、おなじみの仕方でフィルター処理することもできる。特に、ボタンは、ディスプレイ102に示すことができ、このボタンを選択することで、いくつかのクラスのマーカー(例えば、タスクリスト、連絡先、またはアポイントメント)の表示または非表示を行わせることができる。このようなインタラクティブな操作は、ユーザがレイヤ(例えば、通りの名称、ジオコーディングされた写真、および同様のもの)をGOOGLE MAPSなどのアプリケーションに現在追加することができる方法に近いものと言える。このような方法を用いることで、ユーザは、自分のディスプレイを個人化し、自分にとって今のところ無関係の情報でディスプレイが乱雑にならないようにすることができる。
【0029】
また、特定のユーザ情報を自動的にフィルター処理することもできる。例えば、近い将来(つまり、当日)発生するアポイントメントに関係するアポイントメントデータについてのみマーカーを表示するようにできる。同様の方法により、連絡先に関するマーカーを親友または家族にのみ限定することができる。連絡先情報は、ソーシャルネットワーキングアプリケーションから抽出することもでき、マーカーは、一次の社会的接触にのみ限定されうるか、または類似の制限因子によって制限されうる。
【0030】
いくつかの場合において、デバイスは、その位置を監視し、注目する場所が近くであるときにユーザに警告することができる。例えば、ユーザが関連する位置(例えば、自宅または会社)に接近したときに、デバイスは、聴覚(例えば、音声通知アラーム)または触覚(例えば、振動)によるインジケータを起動して、その注目する場所が近いことをユーザに通知することができる。いくつかの場合において、これらの警告は、所望の位置またはイベントへの物理的な近さ、時間的な近さ、またはナビゲーション上の近さによってトリガーされうる。例えば、指定された会社から5マイル以内にユーザが来たときに警告をトリガーすることができる。いくつかの実施形態において、警告は、イベントが始まろうとするときにトリガーされうる。例えば、デバイスは、映画ショータイムの15分前に振動するようにできる。他の場合には、所望の位置(例えば、食料雑貨品店)への出口に近づいたときにトリガーされうる。いくつかの実施形態では、これらの聴覚または触覚通知アラームは、警告、通知アラーム、地図表示上に表示するアイコンに加えた(それらの代わりとなる)ものとしてよい。
【0031】
いくつかの実施形態において、トリガーイベントは、ユーザ側で指定することができる。例えば、ユーザは、気象予報または現在の気象状態、価格比較結果、誕生日、サーフレポートなどに基づいて警告を設定することができる。いくつかの場合において、ユーザは、1つまたは複数のトリガーイベントまたは警告インジケータを組み合わせて警告を形成することができる。例えば、ユーザは、選択された映画がショータイムから15分後に始まり、この映画を上映する映画館が10マイル以内にある場合に、デバイスが音声通知アラームを発し、適切な地図アイコンを表示するように指定することができる。
【0032】
代替的実施形態において、トリガーイベントは、ユーザ用に自動的に生成されうる。例えば、ユーザは、オンライン小売店によって一般的に採用されているような推奨システムからの提案を受け取ることを選択することができる。これらの推奨システムは、注目するアイテムを、いろいろな方法があるが、例えば、類似の消費者が興味を持ったアイテムを識別することによって、またはユーザの購入履歴を調べることによって、ユーザに提案することができる。推奨システムは、識別された提案を地図表示システムに提供し、次いで、地図表示システムは、適切な通知アラーム(例えば、地図アイコン、音声通知アラーム、または触覚通知アラーム)を発生させることができる。図解例において、ユーザは、映画推奨を加入者に提示することができる映画レンタルサービスに加入することができる。このサービスは、ユーザが見たことのある映画に似ている、または他の何らかの基準を満たす映画に関する推奨を生成することができる。ユーザがこのサービスから提案を受け取ることを選択した場合、このサービスは、これらの推奨をユーザの地図表示システムに供給することができる。次いで、システムは、それらの推奨をジオコーディングすることができる。例えば、システムは、推奨された映画を扱っていると思われる映画レンタル店の位置を表す地図アイコンを生成することができる。または、推奨された映画が、現在劇場で上映中である場合、システムは、その映画を上映している劇場の位置を表す地図アイコンを作成することができる。いくつかの実施形態において、推奨サービスは通知アラームを作成し、それらの通知アラームを地図表示システムに伝送することができる。図解例の推奨システムは、映画レンタルを伴っていたけれども、他の推奨システムも使用することができる。例えば、ユーザにとって興味があると思われる製品もしくはサービスを提案する推奨システムを使用することができる。
【0033】
図2Aは、ジオコーディングされたユーザ情報を表示する能力を有する例示的な地図表示システムのブロック図200である。システムは、インターネットなどのネットワーク208上で地図製作アプリケーション202と通信することができる車両206に付随するリモートコンピューティングデバイス204(例えば、ラップトップコンピュータ、PDA、スマートフォン、ポータブルナビゲーションデバイスなど)を備えることができる。地図製作アプリケーション202は、ユーザデータ220、1つまたは複数のアプリケーション218、位置解決モジュール216、位置スクレーパ214(location scraper)、ユーザデータ地図表示モジュール212(user data mapping module)、およびインターフェイス210を含むものとしてよい。
【0034】
例示的な一実施形態において、地図製作アプリケーション202は、ウェブベースのモジュール、アプリケーション、およびオンラインデータウェアハウスの集合体として実装することができる。図1を参照しつつ説明されているように、ユーザデータ220は、ほかにもデータがあるがとりわけ、ユーザのカレンダー108、タスクリスト106、およびアドレス帳104にある情報を含むものとすることができる。位置スクレーパ214は、位置情報についてユーザデータ220を検索することができる。例えば、位置スクレーパ214は、場所の名称(例えば、ホワイトハウス)、アドレス、座標データ、または他の種類の位置情報について所定のユーザファイル内を検索することができる。
【0035】
いくつかの実施形態では、位置スクレーパ214は、位置を示すテキストについていくつかのウェブサイトを検索する「ウェブクローラー」として実装されうる。例えば、位置スクレーパ214は、商号、エリア名、アドレスなどについて選択されたウェブサイトを検索することができる。いくつかの実施形態では、位置スクレーパは、指定された形式、例えば、連続する5桁の数字(郵便番号であってもよい)、「アパート」または「Apt」という単語、それに続けて1つまたは複数の数、市の名称、そして州の名称などからなる形式のデータを検索することができる。他の実施形態では、位置スクレーパは、位置を示す「ウォーカー博物館(Walker Museum)」、「ディンキータウン」、または「ミネソタ州立大学」などの定義済みのテキストを検索することができる。いくつかの状況において、位置スクレーパ214は、所定のウェブアプリケーションに位置ベースの情報を要求することができるか、または上述の方法で位置ベースの情報についてアプリケーションに関連付けられているデータを検索することができる。
【0036】
あるいは、位置ベースのデータについてユーザデータ220を検索する代わりに、またはユーザデータ220を検索することに加えて、ユーザもしくは他のエンティティが地図製作アプリケーション202に位置情報を供給することができる。いくつかの実施形態では、ユーザは、リモートコンピューティングデバイス204を使用して位置情報を地図製作アプリケーション202に直接入力することができる。他の実施形態では、連絡先またはイベントも、位置情報をアプリケーション202に伝送することができる。例示的な一実施形態において、ユーザがいくつかの連絡先またはイベントに近づいたときに、その連絡先またイベントは、その位置に関する情報を地図製作アプリケーション202に送信することができる。例えば、ユーザが店の指定された距離の範囲内に入ったときに、ユーザの存在を知らせるアラートが店のコンピュータシステムに送られ(例えば、デバイスが信号をその店に伝送し)、応答として、店のアドレスおよび他の情報(例えば、店の現在のセールスプロモーションに関する情報)をシステム202に伝送することができる。類似の方法で、連絡先は、ユーザがその連絡先の付近にいるときにユーザに自分自身の位置情報を送信することができる。
【0037】
ユーザ側では、そもそもシステムと、または他のユーザと共有される位置に関する情報の量を制御することができる。特に、情報の共有は、ユーザがそのような共有に同意する肯定的ステップを実行する場合のみ許され、したがって、システムの既定では、ユーザデータに関するプライバシーを守る。
【0038】
位置解決モジュール216は、位置の記述を、緯度/経度の対などのジオデータに変換することができる。位置解決モジュール216は、各種のおなじみの形態をとり、位置ベースの記述的情報を解析し、それをその情報と一致する1つまたは複数の一意的な位置を識別する解決エンジンに供給することができる。次いで、モジュール216は、複数の結果がある場合に1つまたは複数の発見的規則をそれらの結果に適用することができる。例えば、最高の類似度を有する結果を使用することができるか、またはユーザの現在位置に最も近い結果を使用することができる。例えば、記述テキストが「スミス123番地」であり、スミスストリートとスミスアベニューが1つの町にある場合、関連する位置を、123番地の家のリスティング、その時点においてユーザのモバイルデバイスに最も近い通り、位置に一致する他のコンテキスト情報を含むリスティング(例えば、スミスアベニューにDitalio's Pizzeriaがあり、アポイントメントがDitalio'sまたはpizzaという語も含む場合)、または他の何らかのパラメータと一致する通りを含む通りとして選択することができる。
【0039】
デバイスの現在位置を識別する必要がある場合、コンピューティングデバイス204は、その位置をネットワーク208を使って地図製作アプリケーション202に伝送することができる。このような状況において、デバイス204上のGPSまたは他の技術は、よく知られている方法で位置識別子を生成することができる。タワー三角測量法を使用する場合、地図製作アプリケーション202は、自動的に、デバイス204の位置を決定することができる。
【0040】
地図製作アプリケーション202がユーザデータに関する情報を地図に埋める作業を行う場合、地図製作アプリケーション202は、参照地図データがデバイス204の位置に対応するかどうかを判定することができる。例えば、デバイス204は、その現在位置の緯度および経度を好適な通信手段を通じて地図製作アプリケーション202に伝送することができる。地図製作アプリケーション202がデータを受信した後、地図製作アプリケーション202は、提供されるデータに対応する参照地図データ内における位置を検索することができる。
【0041】
ユーザデータ地図表示モジュール212は、ジオコーディングされたユーザ情報を含むユーザの現在位置の地図を生成することができる。地図は、GOOGLE MAPSによって提供される方法などのさまざまな方法で生成されうる。例えば、地図の拡大縮小レベルを決定することができ、ユーザの位置の周りの、その拡大縮小レベルにおける、複数の地図タイルをフェッチし、デバイス204に伝送してユーザに対し表示することができる。
【0042】
いくつかの実施形態では、その後、ユーザデータ地図表示モジュール212は、位置スクレーパ214によって収集されたデータの物理的位置を決定する。例えば、位置スクレーパ214は、ユーザデータ地図表示モジュール212に対し、スクレーピングされた関連のイベント毎に住所または緯度/経度情報(例えば、位置解決モジュール216によって生成されるような)を供給することができる。その後、ユーザデータ地図表示モジュール212は、参照地図データ内のアドレスを特定し、特定された地図データに関連付ける適切なマーカーを選択することができる。最後に、地図表示モジュール212は、地図表示を作成し、ユーザの位置を表すマーカーをその地図表示に埋め込むことができる。
【0043】
インターフェイス210は、受信データを解釈し、送信データをパッケージングしてデバイス204によって受信されるようにできる。いくつかの実施形態において、位置ベースのデータをコンピューティングデバイス204から受信した後、インターフェイス210は、データをユーザデータ地図表示モジュール212に供給する。ユーザデータ地図表示モジュール212は、必要ならば、位置解決モジュール216を使用して、データを地図製作アプリケーション202による使用に適した形式、例えば、座標データに変換することができる。上述のように、その後、ユーザデータ地図表示モジュール212は、現在表示されるべき地図上の位置に一致する位置を有する入力項目についてデータを検索することによってその参照地図データ内でデバイス204の位置を決定することができる。
【0044】
地図表示モジュール212が関連する参照地図データを取り出した後、位置スクレーパ214によって取得された情報は、取り出された地図データ内のジオコーディングされたマーカーの配置を決定するために地図表示モジュール212によって使用される。いくつかの実施形態では、ユーザデータ地図表示モジュール212が、位置スクレーパ214によって収集されたデータの物理的位置を決定する。例えば、位置スクレーパ214は、住所をユーザデータ地図表示モジュール212に供給することができる。その後、ユーザデータ地図表示モジュール212は、データを位置解決モジュール216に受け渡すことなどによってアドレスのマーカーを生成することができる。他のデータ型では、異なる処理技術を必要とする場合がある。いくつかの実施形態では、位置スクレーパ214によって特定されたキーワードまたはフレーズを共通の位置の名称およびその関連付けられている座標のリストと比較して、参照地図データ内の対応する位置を決定することができる。例えば、「メトロドーム」という単語を参照地図データ内の人気スポットの位置のリストと比較することができる。一致する位置の名称が見つかった(この例では、一致する名称が「ヒューパート・H・ハンフリー・メトロドーム」としてよい)場合、その一致する名称に関連付けられている座標データにフラグを立てて、後から、その位置を表すマーカーを、地図上の、メトロドームの物理的位置に対応する位置に表示することができる。代替的一実施形態において、位置スクレーパ214は、同様にして、ユーザデータ220から抽出された情報に対応する参照地図データ内の位置を決定することができる。
【0045】
図2Bは、ジオコーディングされた情報を表示する能力を有する地図表示システム240の代替的実施形態を示す図である。この例では、機能の大半が中央サーバ上で実行されていた図2Aとは反対に、モバイルデバイス上で実行される地図表示機能が多くなっている。これら2つのシステムは、例としてのみ構成されており、他の配置構成も使用することができる。
【0046】
図2Bを参照すると、地図表示システム240は、コンピューティングデバイス242、リモートコンピューティングデバイス248、ネットワーク246、および基地局244を備えることができる。コンピューティングデバイス242は、アプリケーションストレージ262、ユーザデータ260、位置スクレーパ256、位置ベースのデータストレージ258、ユーザデータ地図表示モジュール252、位置特定エンジン254、およびインターフェイス250を備えることができる。アプリケーションストレージ262は、アプリケーションおよびその関連付けられているデータを収容することができる。上述のように、このようなアプリケーションとして、カレンダー、タスクリスト、アドレス帳、および同様のものを挙げることができる。ユーザデータ260は、連絡先、タスク、イベント情報などのユーザ情報を含むことができる。
【0047】
図2Aを参照しつつ上で説明されているように、位置スクレーパ256は、位置情報についてユーザデータ260を(および、実施形態によっては、アプリケーションストレージ262も)検索することができ、次いで、位置スクレーパ256は、その位置情報を位置ベースのデータストレージ258に格納することができる。この例では、位置スクレーパ256は、スマートフォンなどのモバイルデバイスである、コンピューティングデバイス242上に格納されているファイルを分析する。
【0048】
位置特定エンジン254は、コンピューティングデバイス242の現在位置を決定し、位置記述(例えば、アドレス)を位置識別子(例えば、緯度/経度座標)に変換することもできる。位置特定エンジン254は、このような変換それ自体を実行することができるか、または位置記述子をサーバ248などのリモートサーバに受け渡し、それに対する応答として位置識別子を受信することができる。いくつかの実施形態では、位置特定エンジン254は、コンピューティングデバイス242の位置を、デバイス242内のGPS受信機にアクセスすることによって計算することができる。他の実施形態では、位置特定エンジン254は、デバイス242の位置を、基地局244の位置を使用するか、または適切な他の技術を使用することによって推定することができる。位置特定エンジン254は、位置情報を後述のユーザデータ地図表示モジュール252に供給するか、またはデバイスの位置を位置ベースのデータストレージ258に格納することができる。
【0049】
いくつかの実施形態において、位置特定エンジン254は、位置ベースのデータストレージ258内に格納されている位置ベースのデータを処理することもできる。いくつかの実施形態において、位置特定エンジン254は、位置ベースのデータストレージ258内に格納されている位置ベースのデータに対応する地図エンティティについて参照地図データを検索することができる。例えば、位置特定エンジン254は、キーワード(例えば、「ラシュモア山」)に関係するエンティティ、座標データ、住所、位置の名称、または位置ベースのデータストレージ252に見つかるそのような他の情報について地図データを検索することができる。位置特定エンジン254は、対応するエンティティを見つけた後、エンティティの座標をユーザデータ地図表示モジュール252に送信することができる。
【0050】
いくつかの実施形態において、ユーザデータ地図表示モジュール252は、ジオコーディングされたユーザ情報(例えば、ユーザの現在位置およびユーザに関連付けられているイベントに関する)を含むユーザの現在位置の地図を作成することができる。地図表示モジュール252は、ユーザがデバイス242上のナビゲーションアプリケーションを起動するためにデバイス242のディスプレイ上のアイコンを選択したときに呼び出されうる。位置ベースのデータは、施設もしくはトピック(例えば、「Tony's Pizza」もしくは「牛乳」)またはアドレス(例えば、「カリフォルニア州○○、メインストリート123番地」)のテキスト表現から緯度/経度座標の対などの位置識別子への変換のために位置特定エンジン254にもすでに供給されている。このような状況において、この座標の対は、位置ベースのデータ258内に格納されている可能性があり、地図表示モジュール252は、そのようなデータに直接アクセスすることができる。
【0051】
地図表示モジュール252は、デバイスの現在位置、および位置特定エンジン254について位置スクレーパ256によって収集された位置ベースのデータを要求することができる。地図表示モジュール252は、位置ベースのデータを受信すると、図1に示されているのと同様にして、情報をデバイス242上のグラフィカルユーザインターフェイスに送り、デバイス上に表示することができる。例えば、地図表示モジュール252がデバイス242の現在位置を受信した後、これは、その位置をサーバ248に伝送して、適切なエリアに関する地図タイルをそれに返させるようにすることができ、また、位置スクレーパ256によって抽出されたどのような位置ベースのデータがデバイス242の付近にあるかを判定し、その位置ベースのデータをメモリから(例えば、ユーザストレージ260から)ロードすることができる。
【0052】
いくつかの場合において、図2Aおよび2Bに関して上で説明されている機能は、コンピューティングデバイス間に分割することができる。例えば、PDA、ラップトップコンピュータ、またはポータブルナビゲーションデバイスなどのリモートコンピューティングデバイスは、とりわけ、アプリケーションおよびユーザデータを含みうる。例えばリモートサーバ上に格納されている、地図製作アプリケーションは、とりわけ、位置スクレーパ、位置解決モジュール、およびユーザデータ地図表示モジュールを備えていてもよい。この実施形態では、リモートコンピューティングデバイスは、ユーザデータおよびアプリケーションデータを地図製作アプリケーションに伝送することができ、次いで、このアプリケーションが、ジオコーディングされたユーザ情報を含みうる地図を生成することができる。他の実施形態では、リモートコンピューティングデバイスは、例えば、位置スクレーパ、位置解決モジュール、およびユーザデータ地図表示モジュールを備えることができる地図製作アプリケーションを収容することができるが、リモートサーバは、とりわけ、アプリケーションデータおよびユーザデータを格納することができる。この実施形態では、リモートコンピューティングデバイスは、リモートサーバによって供給されるアプリケーションデータおよびユーザデータを使用してジオコーディングされた地図を生成することができる。
【0053】
図3Aおよび3Bは、ジオコーディングされたユーザ情報を含む地図を生成するための例示的なプロセス300、320の流れ図である。プロセス300は、例えば、システム200および240などのシステムによって実行することができるが、わかりやすくするため、この後の説明では、システム200および240ならびに概念図100をプロセスを説明するための例の基礎として使用する。しかし、他のシステム、またはシステムを組み合わせて使用して、プロセス300、320を実行することもできる。一般に、図3Aのプロセス300は、ユーザに関する位置ベースのデータを識別するステップと、そのときにユーザの位置を中心として地図上にデータを表示するアプリケーションによりユーザの位置を追跡するステップとを伴う。図3Bは、類似のプロセス320を伴うが、ユーザの位置の追跡は、そのときにアプリケーションがユーザへの表示を更新できるようにアプリケーションに関連すると思われるイベントをアプリケーションに報告して戻す専用位置追跡モジュールによって実行される。
【0054】
図3Aを参照すると、流れ図は、ジオコーディングされたユーザ情報を含む地図を作成するための例示的なプロセス300を示している。ステップ302で、ユーザデータファイルを識別する。いくつかの実施形態では、位置スクレーパ214は、位置ベースのデータを含む可能性があるユーザファイルについてユーザデータ220を検索することができる。いくつかの実施形態では、位置スクレーパ214は、指定されたファイル拡張子を持つファイル、指定された位置(例えば、特定のウェブアドレス)に配置されているファイルを検索することができるか、またはユーザが検索するターゲットファイルを位置スクレーパ214に対して指定することができる。いくつかの実施形態では、ウェブアプリケーションは、例えば、アプリケーションのウェブアドレスによって指定することができる。
【0055】
データがサーバ上に格納されている場合、位置スクレーパ214は、ウェブアプリケーションがユーザ情報を格納していると思われるデータファイルを送信するよう要求することができる。いくつかの状況の下で、位置スクレーパ214は、所定のデータファイルを要求することができ、とりわけ、データファイルは、ウェブアプリケーションによって動的に生成されうる。他の状況において、位置スクレーパ214は、アプリケーションのウェブサイトおよび関連付けられているデータストレージおよび正確な位置ベースのデータを「クローリング」することができる。例えば、すでに説明されているように、位置スクレーパ214は、座標データ、アドレスなどの位置情報を含むテキストまたは他のデータを求めてアプリケーションウェブサイトおよび関連付けられているデータストレージにアクセスすることができる。
【0056】
この方法は、ステップ304に進み、そこで、位置関係データをファイルからスクレーピングする。いくつかの実施形態において、位置スクレーパ214は、位置ベースのデータについてユーザデータファイルを検索することができる。例えば、位置スクレーパ214は、住所、道路および交差点の名称、座標データ(例えば、緯度および経度)、ならびに位置の名称(例えば、会社、市、町、州など)についてユーザデータファイルを検索し、解析することができる。それに加えて、位置スクレーパ214は、キーワード(例えば、ホテル、モール、靴の修理など)、キーフレーズ(例えば、ラ・ガーディア空港近くのホテル)、地理的特徴(例えば、低層建築物)、および運転方向(例えば、シカゴからミネアポリスへ)についてデータを検索することができる。このような抽出は、さまざまなよく知られているメカニズムのいずれかに従って実行されうる。この例における抽出は、連絡先、タスクリスト、およびアポイントメントなどのデータの複数のコーパスにまたがって実行される。
【0057】
位置関係データが、1つまたは複数のファイルからスクレーピングされた後、スクレーピングされたデータは、ステップ306において複数のグループに分類される。いくつかの状況において、位置スクレーパ214は、位置関係データをデータ型に基づいて異なるカテゴリにソートすることができる。例えば、データは、住所、道路および交差点の名称、座標データ、位置の名称、キーワード、キーフレーズ、地理的特徴、ならびに運転方向のカテゴリにソートされうる。代替的一実施形態において、データは、データの地図化を実行する前に必要と思われる処理の量で分類することができる。ユーザデータ地図表示モジュール212によって使用される前に操作を必要としないデータ(例えば、座標データ)は、地図表示モジュール212による処理を必要とする可能性のあるデータ、例えば、キーワードおよびキーフレーズから分離することができる。
【0058】
次いで、データのジオコーディングされたバージョンに変換するためにデータをサブミットすることができる。例えば、モバイルデバイスは、スクレーピングされた位置関係情報をジオコーディングサーバにサブミットすることができ、これは、位置関係情報に対応する1つまたは複数の位置に関する座標データを返すことができる。情報が、データを地図化するために必要な処理の量に応じてすでに分類されている場合、データの一部を局所的にジオコーディングすることができ、このようなジオコーディングは、比較的単純であり、他の情報をジオコーディングのためにリモートサーバにサブミットすることができる。
【0059】
プロセス300は、データの取得元であるコーパスに基づくなど、データによって表されるイベントのタイプに基づいて、データをいくつかのグループにさらに分類することもできる。一例として、すべてのアポイントメントを1つのグループに入れるか、またはこれに特定の方法でフラグを立てることができ、すべての連絡先は別のグループに入れられる。このようなグループ化は、イベントの異なる形態を表示する際に異なるアイコンを使用する場合など、イベントのその後の表示の補助ともなりうる。
【0060】
ステップ306で、データをいくつかのグループに分類した後、ステップ308で、コンピューティングデバイス204の位置を監視する。例えば、地図表示アプリケーションは、デバイス204上のGPSモジュールから情報を実質的に受信し続けるか、またはデバイスが地理的位置の周りを移動しているときに他の何らかの方法でデバイス204に関する更新された位置情報を受信することができる。
【0061】
その後、現在位置におけるデータが、ステップ310で、識別され、表示される。例えば、プロセス300は、デバイス204に関する位置を識別し、そのデバイス204の周りの地図の拡大縮小レベルを識別することができる。このような情報は、表示する地図と同じサイズであるか、またはその地図よりも大きい境界ボックスを識別するために使用されうる(例えば、地図の縁から外れるイベントが指示される場合)。プロセス300は、テーブルの1つの列がイベントのジオコーディングされた位置であるテーブル内に格納することができるすべての識別されたイベント(例えば、連絡先、アポイントメントなど)について検索し、計算された境界ボックスの内側にあるすべてのイベントを識別することができる。それに加えて、ユーザのイベントのうちの1つが牛乳とパンを買って帰るというタスクである場合にデバイス204の近くの食料雑貨品店などの適切なエリア内にある追加アイテムを見つけるためのクエリをリモートサーバにサブミットすることができる。このようなクエリに関する検索結果を、識別され地図上にオーバーレイとして表示されるデータに追加することができる。
【0062】
いくつかの実施形態において、コンピューティングデバイス204の位置をユーザデータ地図表示モジュール212に伝送し、適切な地図表示データを生成させることができる。ユーザデータ地図表示モジュール212は、位置関係データを使用して、ユーザの現在位置の地図を作成することができる。例えば、デバイス204の現在位置の経度および緯度は、ユーザデータ地図表示モジュール212に伝送することができる。位置ベースのデータを受信した後、地図表示モジュール212は、解決モジュール216によって提供される座標に対応するその参照地図データ内の位置を見つけるか、またはその位置をリモートサーバにサブミットして、その位置をその位置に関する地図表示データに解決することができる。参照地図データ内のデバイスの位置が見つかったら、地図表示モジュール212はすべての地図データ点(例えば、適切な拡大縮小レベルの地図タイル)をメモリからの指定された半径(例えば、5マイル)または境界ボックス内にロードすることができるか、または後で処理するためにそのデータにマークを付けることができる。
【0063】
次に、地図表示モジュール212は、位置スクレーパ214によって供給される位置ベースのデータを使用して、ユーザ情報がもしあれば、どのようなユーザ情報が地図表示モジュール212によって作成されるユーザの現在位置の地図上に表示されるべきかを決定することができる。いくつかの実施形態において、位置スクレーパ214は、ユーザデータ220から抽出された位置関係データを、その位置関係データに関するジオコーディングされたデータとともに地図表示モジュール212に送信することができる。
【0064】
位置関係データが受信された後、地図表示モジュール212は、位置スクレーパ214によって供給された位置ベースのデータに対応する参照地図データ内の1つまたは複数の位置を見つけることができる。例えば、地図表示モジュール212は、最初に、それが作成する地図の境界を定義するものとしてよく、例えば、地図表示モジュール212は、ユーザの現在位置から半径5マイルの範囲内にある地図データ、または特定の境界ボックスの内側にあるデータのみを表示することができる。次に、地図表示モジュール212は、位置スクレーパ214によって供給される特定の位置ベースのデータが地図境界の中にあるか確認することができる。いくつかの実施形態では、地図表示モジュール212は、最初に、さらに処理を必要としないと思われる位置スクレーパ214からの位置ベースのデータ(例えば、座標データ)が、地図境界の外側にあるかどうかを判定することができ、もし外側にあれば、その位置ベースのデータは、地図から除外される。次いで、地図表示モジュール212は、追加の操作を必要とすると思われる位置ベースのデータ(例えば、キーワードまたはフレーズ)を地図境界と比較することができ、上記のように、地図境界の外側にある位置ベースのデータは、地図に含まれない。例えば、位置スクレーパ214は、「ホテル」というキーワードを地図表示モジュール212に供給することができる。地図モジュール212は、「ホテル」の同義語(例えば、「宿」または「ロッジ」)を生成し、これらの単語のうちの1つまたは複数を含む位置に関する参照地図データを検索することができる。キーワード、またはその同義語のうちの1つのいずれかを含む地図データ(もしあれば)の座標をすでに生成されている地図境界と比較し、その境界の外側にある座標データを地図から除外することができる。しかし、一般に、このような曖昧な位置関係データは、ユーザが移動するときに地図を示す現在アクティブ状態にあるウィンドウの内側に入っているかどうかについて追跡できるようにジオコーディングされるか、または他の何らかの方法で最初に処理される。
【0065】
ユーザのデバイスおよび関連するユーザデータの両方の参照地図データ内の位置が決定されたときに、地図表示モジュール212は、デバイス204などのモバイルコンピューティングデバイス上に地図を生成するためのデータを供給することができる。このような供給は、データがデバイス204それ自体の上で構成される場合に局所的に実行されうるか、または地図表示サービスを提供するサーバからコンピューティングデバイス204のユーザに、インターネットなどのネットワーク上でのデータの伝送として行われうる。
【0066】
現在位置におけるデータが、識別され、表示された後、この方法はステップ312に進む。ステップ312において、ユーザからアイテム(例えば、イベント122または連絡先118のマーカー)の選択結果が届き、アイテム詳細が表示される。いくつかの実施形態において、ユーザがマーカー118、122に関する情報を望んでいる場合、ユーザはマーカーを選択し、それに対する応答として、地図表示モジュール212が情報ウィンドウ116内に所望の情報を表示することができる。例えば、ユーザは、ユーザの友人のうちの1人の友人の写真を示すアイコン(このアイコンが友人の連絡先ファイル内のアドレス上に表示される場合)を選択することができ、その友人に関する詳細連絡先情報が、ポップアップボックス内に表示されうる。
【0067】
いくつかの実施形態において、情報ウィンドウ116は、ユーザがイベントもしくは連絡先の所定の距離の範囲内に入ったときに自動的に表示されうる。例えば、ユーザがそのような情報に直ちに関心を持つとの仮定の下で、非常に近い将来のアポイントメントが、情報ウィンドウ116全体に表示されるほど十分に希であり、かつ十分に重要であることがある。あるいは、情報ウィンドウ116は、地図表示システムに関するユーザによるインタラクティブな操作、例えば、キーボード打鍵、スタイラスもしくはフィンガータップ、または他の適切な入力(例えば、音声)に応答して表示されうる。表示されると、情報ウィンドウ116は、下にある地図が見えなくならないように部分的に透明にもなりうる。
【0068】
いくつかの実施形態において、情報ウィンドウ116は、連絡先または他のイベントにリンクされうるユーザデータ220に含まれる情報を表示することができる。例えば、連絡先に関する情報ウィンドウ116は、ユーザデータ220から選ばれたいくつかのデータのうち特に、連絡先の名称、アドレス、ならびに自宅および職場の電話番号を収容することができる。いくつかの実施形態において、地図システムによって収集された情報は、ユーザデータ220に含まれる情報に加えて、またはその代わりに使用することができる。例えば、地図システムは、連絡先またはイベントの名称を検索エンジンに入力し、検索結果、つまり、結果のサマリーを情報ウィンドウ116内に表示することができる。同様に、イベントが、「牛乳」または類似のキーワードである場合、位置関係情報を、デバイス204を中心とするエリア内での「牛乳」または「食料品店」の局所検索クエリに応答して取得することができ、検索結果からの特定の詳細情報(例えば、会社のアドレスおよび電話番号の情報)を情報ウィンドウ116に表示することができる。
【0069】
代替的一実施形態において、情報ウィンドウ116は、連絡先またはイベントとユーザとの関係に関係するデータも表示することができる。例えば、システム200は、デバイスの現在位置および速度(デバイスに内蔵されているGPS受信機および加速度計などの装置によってもたらされうる)を使用して、選択されたマーカー118、122に関連付けられている位置におけるユーザの推定到着時刻を計算することができる。計算が済むと、地図システムは、情報ウィンドウ116内に推定到着時刻を表示することができる。
【0070】
地図表示モジュール212(または他の実施形態では、コンピューティングデバイス204)は、情報ウィンドウ116を、地図上に見えるマーカー118、122の数を増やすような仕方で地図上に配置することができる。いくつかの実施形態において、情報ウィンドウ116は、連絡先マーカー120の情報ウィンドウ116によって示されているようなウィンドウ116の関連するイベント122または連絡先118のマーカーに隣接するものとすることができるが、状況によっては、ウィンドウ116が関連付けられているマーカー118、120に隣接する場合には、ウィンドウ116は、多数の他のマーカー118、122を隠す。画面上に見えるマーカー118、122の数を最大化するために、地図表示システムは、情報ウィンドウ116をマーカー118、122を含まない、または最小数のマーカー118、122を含む表示のエリア内に配置することができる。あるいは、システム200は、ウィンドウ116のサイズを所定の最小ウィンドウサイズまで縮小して、ウィンドウ116が重なるマーカー118、122の数を減らすことができる。システム200は、ユーザの前のエリアが地図上に遮られないようにウィンドウ116をデバイスの移動方向から遠ざかるエリア上に配置することもできる。
【0071】
いくつかの場合において、情報ウィンドウ116は、イベントまたは連絡先に関係するリアルタイム情報を表示することができる。例えば、イベントマーカー122は、飛行機または列車の出発など、遅延もしくはキャンセルが日常的に生じうるイベントを表すことができる。システム200は、いくつかの実施形態において、イベントに関係するデータリポジトリにクエリを実行し、イベントのステータスを情報ウィンドウ116内に表示することができる。図解例において、ユーザが自動車で空港へゆくときに、地図表示システムは、ステータス情報が更新されていないか航空会社のウェブサイトを定期的にチェックし、情報ウィンドウ116にその情報(例えば、現在予定されている搭乗または出発時刻)を入れることができる。
【0072】
図3Bを参照すると、流れ図は、ジオコーディングされたユーザ情報を含む地図を作成するための代替的な例示的プロセス320を示している。一般に、この方法は、図3Aの方法300に類似しているが、デバイスの位置情報を監視するために専用位置追跡モジュールを使用する。このようなモジュールは、デバイス上のオペレーティングシステムによって提供されるサービスの形態をとりうる、地図表示アプリケーションから独立している1つのモジュールとすることができる。さまざまなアプリケーションが、アプリケーションが追跡することを望むオブジェクトの位置または境界ボックスなどの、位置ベースのデータをモジュールに登録することができる。追跡モジュールは、そのようなオブジェクトおよびその位置のリストを、オブジェクトを登録したアプリケーションのインジケータとともに格納することができる。次いで、モジュールは、GPSモジュールなどから、位置情報を常時受信し、その情報を格納されているオブジェクトに関する位置情報と比較することができる。位置の重なりがある場合、モジュールは、該当するアプリケーションに警告を発し、そのアプリケーションに、デバイスに関する現在位置を受け渡すことができる。
【0073】
この方法で、単一のモジュールが複数のアプリケーションに関する位置の追跡を管理することができる。複数のアプリケーションがそれぞれGPSモジュールに情報を要求する必要はなく、したがって、システム上の処理オーバーヘッドを低減し、位置を追跡するために必要な電力を減らすことができる。それと同時に、それぞれのアプリケーションは、そのニーズを登録し、これにより、通知を受け、必要な場合にいつでも、ただし必要な場合に限り、それに対し反応することができる。この方法で、位置関係の警告およびタスクの効率的管理を実行できる。
【0074】
次に、方法320を参照すると、ステップ322および324(それぞれ、ユーザデータファイルを識別し、ファイルから位置ベースのデータをスクレーピングする)は、図3Aのステップ302および304と同じであり、したがって、ステップ302および304の上記の説明は、ステップ322および324にも等しく当てはまるので、ここでは繰り返さない。ステップ326で、位置ベースのデータを位置追跡モジュールに登録する。例えば、参照地図データ内のいくつかのデータにマークを付ける、つまり、登録して、位置関係データの位置を示すことができる。いくつかの実施形態では、位置追跡モジュールは位置解決モジュール216の一部であってもよく、他の実施形態では、位置追跡モジュールは、位置特定エンジン254または他の適切なハードウェアデバイスもしくはソフトウェアアプリケーションの一部とすることができる。それに加えて、登録された位置ベースのデータは、「ホットスポット」、つまり、ユーザが対応する物理的位置を入力したことに応答して、ジオコーディングされたユーザ情報の表示を促す地図セグメントを含むことができる。例えば、ユーザの位置が地図モジュール212の参照地図データ内の「ホットスポット」の内側のエリアに対応する場合、地図表示モジュール212は、ユーザの現在位置の地図にジオコーディングされたユーザ情報を埋め込むことができる。
【0075】
位置ベースのデータが位置追跡モジュールに登録された後、デバイスの位置がステップ328で監視される。いくつかの実施形態において、位置追跡モジュールは、コンピューティングデバイス204に位置情報を定期的に要求することができる。代替的一実施形態において、位置追跡モジュールは、GPS技術を使用して、または基地局タワー244の位置を使用する三辺測量を通じて、デバイスの位置を計算することができる。
【0076】
ステップ330で、ユーザデータ位置をトリガーする。例えば、ユーザが、「ホットスポット」に入ると、それに応答して、地図表示システムは、フラグを立てるか、または他のインジケータを設定して、生成される次の地図表示がジオコーディングされたユーザ情報を含みうることを通知することができる。このようなトリガーは、デバイスの位置の周りで新規情報を受信するたび毎に登録情報のリストをチェックする位置追跡モジュールによって引き起こされうる。登録された位置のリストは、デバイスの現在位置に現在最も近い位置がリストの最上位に置かれるように位置追跡モジュールによってソートされうる。このようにして、関連性の最も高い位置は、モジュールから利用しやすくされうる。
【0077】
ユーザデータ位置をトリガーすることに応答して、システム200は、ステップ332でユーザデータアプリケーションを起動するか、または他の何らかの方法でアプリケーションをアクティブにすることができる。いくつかの実施形態において、ユーザデータアプリケーションは、ユーザの現在位置を含む参照地図データを収集することができる。例えば、地図表示システムは、いくつかの実施形態において適切なエンティティにデバイス204の現在位置を要求することができるユーザデータ地図表示モジュール212を起動することができ、位置が受信された後、現在位置のプリセットされた半径の範囲内の参照データをメモリからロードすることができる。したがって、例えば、地図表示アプリケーションは、ユーザが地図表示アプリケーションに関連する何かの近くに来ていない限り休眠状態に置かれている可能性があるが、このアプリケーションは、関連するイベントがエリア内に入ったときに自動的にトリガーされ、ユーザに対して自動的に表示されうる。
【0078】
最後に、ステップ334および336において、現在位置におけるデータが識別されて表示され、アイテム選択に応答して、そのアイテムに関する詳細が表示される。ステップ334および336を実行する例示的な方法については、読者は、図3Aのステップ310および312の説明を参照されたい。
【0079】
さらに、地図に関する位置が、ここでは、デバイスの現在位置に関するデータに依存しているように示されているけれども、他の位置ベースのデータも使用することができる。例えば、ユーザは、位置をクエリとして入力することができ、表示される地図は、そのエリア周辺の地図であるものとしてよい。したがって、例えば、ユーザは、あるエリアへの出張旅行を予定している場合があり、そのエリアの郵便番号を自分のコンピューティングデバイスに入力することができる。次いで、ユーザは、そのエリアの地図を、その地図上に自動的に重ねて表示されるエリア内のユーザのさまざまな連絡先に関するアイコンとともに示されうる。ユーザは、ユーザの現在位置と無関係に、さまざまなおなじみの方法でも、地図上で拡大縮小およびパンニングを行うことができる。
【0080】
図4Aは、クライアント/サーバ環境においてジオコーディングされたユーザ情報を含む地図を作成するための例示的な方法を示す図である。クライアント/サーバ環境は、複数のサーバとクライアントからなるものとしてよい。いくつかの実施形態において、1つのクライアントをパーソナルコンピュータ、ラップトップコンピュータ、またはユーザがサーバ上に後から格納されるユーザ情報を入力することができる類似のコンピューティングデバイスとすることができる。サーバは、1つまたは複数のウェブプログラムとユーザ情報を処理し、格納することができるオンラインデータストアハウスとを備えることができる。第2のクライアントは、追加の処理を実行し、ジオコーディングされたユーザ情報を含む地図を表示することができる。例えば、第2のクライアントは、PDA、ナビゲーションシステム、または位置追跡ハードウェアおよび/またはソフトウェアを収容し、他のクライアントおよびサーバと通信する能力を有する他のポータブルコンピューティングデバイスとすることができる。
【0081】
この方法は、ステップ402から始まり、そこで、ユーザ情報が受信される。いくつかの実施形態において、ユーザは、連絡先、アポイントメント、およびタスクをウェブアプリケーションに入力することができる。例えば、ユーザは、アポイントメントをGOOGLE CALENDARなどのオンラインカレンダープログラムまたは他の適切なプログラムに入力することができる。代替的一実施形態において、ユーザ情報を、PDA、ラップトップコンピュータ、ナビゲーションシステム、または同様のものなどのコンピューティングデバイスに入力することができる。
【0082】
ステップ402においてユーザ情報を受信した後、ステップ404においてユーザ情報を登録する。ステップ404において、情報を特定のユーザアカウントに関連付ける(つまり、登録する)ことができる。例えば、ステップ404においてユーザ情報を入力した後、識別情報(例えば、ユーザアカウントの名称)をユーザ情報にリンクすることができる。その後、ステップ406においてユーザ情報をサーバ上に格納することができる。
【0083】
ユーザ情報を受信し、サーバ上に格納した後、この方法はステップ408に進み、そこで、位置関係情報についてユーザ情報をスクレーピングする。位置スクレーパ214は、いくつかに実施形態において、保存されているユーザ情報内に位置関係データがないか徹底的に調べる。位置スクレーパ214は、位置を示す単語、フレーズ、または数値データについてユーザ情報内に見つかったテキストを解析することができる。例えば、位置スクレーパ214は、商号、移動方向、座標データなどについて検索することができる。
【0084】
ステップ410において、ユーザは、第2のクライアントデバイスでユーザアカウントに登録することができる。いくつかの場合において、ユーザアカウントは、1つまたは複数のウェブアプリケーションに関係付けられうる。ユーザは、例えば、例示的な実施形態においてはポータブルコンピューティングデバイスからユーザ名とパスワードなどの必要なログイン情報でユーザアカウントにログインすることによってユーザアカウントに登録することができる。ユーザがログインした後、ステップ412で、サーバはユーザのデバイスを認証することができる。認証は、例えば、ユーザが与えるユーザ名およびパスワードが正しいことを検証することによって実行されうる。
【0085】
デバイスの認証が済んだ後、ステップ414で、位置情報を伝送する。ステップ408でユーザ情報からスクレーピングされた位置情報は、サーバからクライアント(ここでは、ポータブルコンピューティングデバイス)に伝送することができ、クライアントは、ステップ416で、位置情報を保存する。このような伝送された情報は、イベントに関する記述的情報とともに、ユーザに関連付けられているさまざまなイベントに関する座標を含むことができ、そこで、イベントを地図上に表示してユーザに見せることができる。
【0086】
次に、ステップ418で、デバイスの移動を監視する。例えば、デバイスは、GPS受信機など位置追跡ツールを使用して、その位置を連続的に測定することができる。デバイスは、その位置を監視するとともに、ステップ420で、エリア内の位置ベースのデータを検出することができる。いくつかの実施形態において、デバイスは、ステップ418でその現在位置を決定するときに、その現在位置から定義済みの距離の範囲内にあるか、または例えば、現在の地図ビューのサイズのボックスまたは地図ビューより大きい(例えば、現在表示されている地図のそれぞれの辺における地図サイズの数倍)ボックスであるものとしてよい、定義済みの境界ボックスの範囲内にある位置情報についてステップ414でサーバによって供給される位置情報を検索することができる。例えば、サーバによって供給される位置情報は、座標データ(例えば、緯度および経度)を含んでいてもよい。クライアントは、例えば、緯度および経度のどの組がデバイスの現在位置から半径5マイルの範囲内にあるかを判定する。
【0087】
エリア内の位置ベースのデータが識別されている場合、この方法は、オプションのステップ422に進み、そこで、位置ベースのデータに関係するユーザデータを取得する。いくつかの実施形態において、クライアントは、識別された位置ベースのデータに関係するユーザデータをサーバに要求することができる。それに応答して、サーバは、ステップ424で、識別された位置ベースのデータに相関するユーザデータを伝送することができる。例えば、いくつかの実施形態において、サーバによって供給される位置ベースのデータは、1つまたは複数のオンラインアプリケーションにおける連絡先、イベント、またはタスクに関連付けられうる。サーバは、クライアントによって識別された位置ベースのデータに対応する連絡先、イベント、またはタスク情報を伝送することができる。代替的一実施形態において、識別された位置ベースのデータに関連付けられているユーザデータは、クライアント上に常駐させることができる。
【0088】
また、デバイスが移動するときに、局所検索サーバなどの他のサーバに対して定期的なクエリを実行することができる。特に、クエリは、ユーザの個人データ内に見つかるキーワードに関係するものとしてよい。また、キーワードは、ユーザのエリア内の広告もしくは販促資料を探すなどのために、他の形態をとることもできる。一例として、ユーザが「フライト」を予約した場合、システムは、ユーザが機上で食事を取っておらず、食品の広告を受け付けるとの想定の下で、到着空港のエリア内のレストランの広告を表示することができる。
【0089】
ステップ426で、アイテム詳細が表示される。アイテム詳細は、地図上のマーカー118、122に隣接する情報ウィンドウ116内に表示されうる。例えば、イベントの位置、持続時間、および開始時刻を、イベントマーカー122にアタッチされている情報ウィンドウ116内に表示することができる。
【0090】
図4Bは、クライアント/サーバ環境においてジオコーディングされたユーザ情報を含む地図を作成するための例示的な代替的方法を示す図である。図3Bの方法320のように、この方法は、モバイルデバイスの位置の監視および位置関係データに依存しうるアプリケーションの警告の管理を補助するために位置追跡モジュールに依存する。
【0091】
この方法は、ステップ432から始まり、ユーザデータがユーザデータモジュールによってアクセスされる。例えば、ユーザデータモジュールは、ユーザデータ(例えば、連絡先、イベント、およびタスク)をサーバに要求することができ、サーバは、ステップ434で、要求されたデータをユーザデータモジュールに提供する。ユーザは、そのような情報をすでに入力しているか、または(電子名刺を使用するか、またはミーティング要求を介するといった方法で)他のユーザから情報を受け取っている可能性がある。その後、ユーザデータは、位置ベースのデータに関してフィルター処理される。例えば、ユーザデータモジュールが、位置に関係する可能性のあるユーザデータ内の情報を特定し、抽出することができる。例えば、ユーザデータモジュールは、モニュメントの名称、交差点、アドレスなどを抽出することができる。
【0092】
ステップ436で、位置ベースのデータがスクレーピングされたか、または他の何らかの方法で抽出された後、ステップ438で、位置インジケータを登録することができる。いくつかの実施形態において、ユーザデータモジュールは、特定の位置ベースのデータ(例えば、場所の名称およびキーワード)を座標データに変換することができる。例えば、ユーザデータモジュールは、場所の名称およびキーワードを参照地図データと比較して、それらの名称およびキーワードのどれかが知られている位置に対応しているかどうか判定することができ、もし対応していれば、一致する場所の名称またはキーワードを対応する知られている位置に関連付ける、つまり、登録することができる。ステップ440で、位置インジケータが累積されうる。例えば、位置インジケータをグループ化して、格納することができる。
【0093】
ステップ442において、デバイスの移動は位置追跡モジュールによって監視される。いくつかの実施形態において、位置追跡モジュールがデバイスから定期的位置更新を受信することができるか、またはモジュールからの要求に応答して、デバイスがその位置を位置追跡モジュールに供給することができる。他の実施形態では、追跡モジュールは、三辺測量の計算を実行するなどの位置追跡技術を使用してデバイスの位置を決定することができる。
【0094】
ステップ444に進み、デバイスの現在位置と一致する関連する位置インジケータを識別し、それに対する応答として、ユーザデータモジュールをアクティブ化する。いくつかの実施形態において、デバイスが移動するにつれ、位置追跡モジュールは、位置インジケータがデバイスから所定の距離の範囲内にあるかどうかを判定することができる。例えば、デバイスは、PDAであってもよく、ユーザが移動するにつれ、PDAはその位置を位置追跡モジュールに定期的に通知することができる。PDAは、この場合には喫茶店を表す位置インジケータからプリセットされた距離の範囲内、例えば、10マイル(または地図上に現在示されている距離のx倍)の範囲内に入る可能性がある。PDAが喫茶店から10マイルの範囲内にあることを位置追跡モジュールが検出した場合(例えば、喫茶店とPDAを表す参照地図データの間の距離を計算することによって)、位置追跡モジュールは、信号の伝送または他の適切な通知手段によってユーザデータモジュールに通知することができる。
【0095】
関連する位置インジケータを識別し、ユーザデータモジュールをアクティブ化することに加えて、位置追跡モジュールは、位置情報をユーザデータモジュールに伝送することができ、この位置情報は、ステップ446で、データモジュールによって受信される。位置情報を受信したことに応答して、ユーザデータモジュールが、ステップ448で、関連する位置ベースの情報を表示することができる。例えば、ユーザデータモジュールは、表示されている地図に、位置ベースのユーザデータを表すマーカーを埋め込むことができる。図解例において、ユーザが人通りの多い都市の街路を移動しているときに、オンラインアプリケーションに収容されているデータを表す連絡先およびイベントマーカー(例えば、近隣の友人、同僚、およびイベント)をユーザのPDAに表示することができる。
【0096】
最後に、ステップ450において、ユーザデータモジュールは、選択されたアイテム詳細を表示することができる。いくつかの実施形態では、ユーザ入力に応答して、デバイスは、マーカーに近い情報ウィンドウ内にオンラインアプリケーションに収容されている情報を表示することができる。例えば、ユーザは、マーカーが表示されている画面にタッチするか、またはキーパッド、マウス、もしくは他の周辺デバイスを使用してマーカーを選択することができる。システムは、マーカーにアタッチされている情報ウィンドウにマーカーに関連付けられている連絡先またはイベント情報を表示することによって応答することができる。例えば、ユーザが、タスクに対応するマーカーを選択したときに、タスクのステータス(例えば、完了または保留)、タスクの期限、および他の任意の適用可能な情報を表示することができる。
【0097】
次に図5を参照すると、個人情報をジオコーディングすることができる地図表示システムのさまざまな態様を実装する例示的なデバイス500の外観が示されている。簡単に言うと、とりわけ、デバイス500は、モバイルデバイスのユーザから要求があったときに、個人情報をジオコーディングすることができる地図表示システムに接続し、さまざまな機能を実行するように構成されたプロセッサを備えるが、これらの機能のうちの一部は、デバイス500上で実行される地図表示システムに関して上で説明されている。
【0098】
さらに詳しく述べると、デバイス500のハードウェア環境は、テキスト、画像、およびビデオをユーザに対し表示するためのディスプレイ501、テキストデータおよびユーザコマンドをデバイス500に入力するためのキーボード502、ディスプレイ501上に表示されているオブジェクトをポイントし、選択し、調節するためのポインティングデバイス504、アンテナ505、ネットワーク接続506、カメラ507、マイクロホン509、およびスピーカー510を備える。デバイス500では、外部アンテナ505が示されているけれども、デバイス500は、ユーザからは見えない、内部アンテナを備えることができる。
【0099】
ディスプレイ501は、デバイス500により使用されるソフトウェアアプリケーション、およびデバイス500を操作するために使用されるオペレーティングシステムプログラムのためのユーザインターフェイスを構成するビデオ、グラフィックス、画像、およびテキストを表示することができる。ディスプレイ501上に表示することができる可能な要素として、新着メッセージが存在することをユーザに通報する新着メールインジケータ511、電話呼び出し中であること、電話をかけていること、または通話中であることを示すアクティブ呼インジケータ512、データを送受信するためにデバイス500によって現在使用されているデータ規格を示すデータ規格インジケータ514、信号強度バーなどを使用してアンテナ505を介して受信された信号の強度の測定結果を示す信号強度インジケータ515、電池残量の測定結果を示す電池残量インジケータ516、または現在時刻を出力するクロック517がある。
【0100】
ディスプレイ501は、ウェブブラウザアプリケーションアイコン519、電話アプリケーションアイコン520、検索アプリケーションアイコン521、連絡先アプリケーションアイコン522、地図表示アプリケーションアイコン524、電子メールアプリケーションアイコン525、または他のアプリケーションアイコンなどの、ユーザから利用可能なさまざまなアプリケーションを表すアプリケーションアイコンを表示することもできる。例示的な一実施形態では、ディスプレイ501は、16ビット以上のカラー表示をすることができるクォータービデオグラフィックスアレイ(QVGA)薄膜トランジスタ(TFT)液晶ディスプレイ(LCD)である。
【0101】
ユーザは、キーボード(または「キーパッド」)502を使用して、さまざまなアプリケーションの表示、構成、および閲覧機能を提供するオペレーティングシステムおよびアプリケーションを操作し、制御するためのコマンドおよびデータを入力する。キーボード502は、単独で選択されたときには英数字「Q」および「W」に関連付けられるか、またはキー529と組み合わせて押されたときには文字「*」および「1」に関連付けられるキー525および527などの英数字に関連付けられている標準のキーボードボタンまたはキーを備える。単一のキーを、オペレーティングシステムの状態に基づいて、またはオペレーティングシステムによって呼び出されるアプリケーションに基づいて、ラベルなし機能を含む、特殊文字または機能に関連付けることもできる。例えば、アプリケーションが数字の入力を必要とする場合、キー527だけを選択すると、「1」が入力されうる。
【0102】
英数字キーパッドに従来関連付けられていたキーに加えて、キーボード502は、受け取った呼に応答するか、または新しく発呼する呼確立キー530、アクティブ呼を終了させる呼終了キー531、ディスプレイ501内にメニューを表示させるドロップダウンメニューキー532、すでにアクセスされているネットワークアドレスへの再アクセスを行わせるバックワードナビゲーションキー534、アクティブウェブページをお気に入りサイトのブックマークフォルダに入れさせるか、またはブックマークフォルダを表示させるお気に入りキー535、デバイス500上で呼び出されたアプリケーションを所定のネットワークアドレスへナビゲートするホームページキー536、または多方向ナビゲーション、アプリケーション選択、ならびに電力および音量調節を行う他のキーなどの、他の特殊機能キーも備える。
【0103】
ユーザは、デバイス500およびデバイス500上で呼び出されるアプリケーションとのインタラクションおよび制御の一部として、ポインティングデバイス504を使用して、ディスプレイ501上に表示されるグラフィックスおよびテキストオブジェクトを選択し、調節する。ポインティングデバイス504は、任意の適切なタイプのポインティングデバイスであり、ジョイスティック、トラックボール、タッチパッド、カメラ、音声入力デバイス、ディスプレイ501と組み合わせて実装されるタッチスクリーンデバイス、または任意の他の入力デバイスとすることができる。
【0104】
外部アンテナもしくは内部アンテナとすることができるアンテナ505は、2地点間無線通信、無線ローカルエリアネットワーク(LAN)通信、または測位を実施する高周波(RF)信号の送受信に使用される指向性または無指向性アンテナである。アンテナ505を使用すると、特殊化移動体無線(SMR)、セルラー、またはパーソナル通信サービス(PCS)周波数帯を使用する2地点間無線通信が利用しやすくなり、またいくつものデータ標準を使用してデータの送信を実施することができる。例えば、アンテナ505を使用することで、Wireless Broadband(WiBro)、Worldwide Interoperability for Microwave ACCess(WiMAX)、6GPP Long Term Evolution (LTE)、Ultra Mobile Broadband (UMB)、High Performance Radio Metropolitan Network (HIPERMAN)、iBurst or High Capacity Spatial Division Multiple Access (HC-SDMA)、High Speed OFDM Packet Access (HSOPA)、High-Speed Packet Access (HSPA)、HSPA Evolution、HSPA+、High Speed Upload Packet Access (HSUPA)、High Speed Downlink Packet Access (HSDPA)、Generic Access Network (GAN)、時分割同期符号分割多元接続(TD-SCDMA)、Evolution-Data Optimized (またはEvolution-Data Only)(EVDO)、時分割符号分割多元接続(TD-CDMA)、Freedom Of Mobile Multimedia Access (FOMA)、ユニバーサルモバイルテレコミュニケーションシステム(UMTS)、広帯域符号分割多元接続(W-CDMA)、Enhanced Data rates for GSM Evolution (EDGE)、Enhanced GPRS (EGPRS)、符号分割多元接続2000 (CDMA2000)、Wideband Integrated Dispatch Enhanced Network (WiDEN)、高速回線交換データシステム(HSCSD)、ジェネラルパケットラジオサービス(GPRS)、簡易型携帯電話(PHS)、回線交換データ(CSD)、パーソナルデジタルセルラー(PDC)、CDMAone、Digital Advanced Mobile Phone System (D-AMPS)、Integrated Digital Enhanced Network (IDEN)、モバイル通信用グローバルシステム(GSM)、DataTAC、Mobitex、Cellular Digital Packet Data (CDPD)、Hicap、高度携帯電話システム(AMPS)、Nordic Mobile Phone (NMP)、Autoradiopuhelin (ARP)、AutotelもしくはPublic Automated Land Mobile (PALM)、Mobiltelefonisystem D (MTD)、Offentlig Landmobil Telefoni (OLT)、Advanced Mobile Telephone System (AMTS)、Improved Mobile Telephone Service (IMTS)、移動体電話システム(MTS)、プッシュトゥトーク(PTT)、または他の技術などの技術を使用してデバイス500と基地局との間でデータを送信することができる。WCDMA、HSUPA、GSM、GPRS、およびEDGEネットワークを介した通信は、例えば、QUALCOMM(登録商標) MSM7200AチップセットをQUALCOMM(登録商標) RTR6285(商標)トランシーバおよびPM7540(商標)パワーマネージメント回路と一緒に使用することで行うことができる。
【0105】
無線または有線コンピュータネットワーク接続506は、モデム接続、Ethernet(登録商標)を含むローカルエリアネットワーク(LAN)接続、またはデジタル加入者回線(DSL)、ケーブル高速インターネット接続、ダイヤルアップ接続、T-1回線、T-3回線、光ファイバ接続、または衛星接続などのブロードバンドワイドエリアネットワーク(WAN)接続であってよい。ネットワーク接続506は、LANネットワーク、企業または政府WANネットワーク、インターネット、電話網、または他のネットワークに接続することができる。ネットワーク接続506は、有線または無線コネクタを使用する。例示的な無線接続としては、例えば、IrDA(登録商標)(赤外線通信協会(登録商標))無線コネクタ、Wi-Fi無線コネクタ、光無線コネクタ、IEEE(登録商標)(電気電子技術者協会(登録商標))標準802.11無線コネクタ、BLUETOOTH(登録商標)無線コネクタ(BLUETOOTH(登録商標)バージョン1.2または3.0コネクタなど)、近接場通信(NFC)コネクタ、直交周波数分割多重(OFDM)超広帯域(UWB)無線コネクタ、時間変調超広帯域(TM-UWB)無線コネクタ、または他の無線コネクタが挙げられる。例示的な有線コネクタとしては、例えば、IEEE(登録商標)-1394 FIREWIRE(登録商標)コネクタ、USB(ユニバーサルシリアルバス)コネクタ(mini-B USBインターフェイスコネクタを含む)、シリアルポートコネクタ、パラレルポートコネクタ、または他の有線コネクタが挙げられる。他の実施形態では、ネットワーク接続506およびアンテナ505の機能は、単一コンポーネントに集積化される。
【0106】
カメラ507は、デバイス500がデジタル画像を取り込むことを可能にするが、これは、スキャナ、デジタルスチルカメラ、デジタルビデオカメラ、他のデジタル入力デバイスとすることもできる。例示的な一実施形態において、カメラ507は、相補型金属酸化膜半導体(CMOS)を利用する6メガピクセル(MP)カメラである。
【0107】
マイクロホン509は、デバイス500が音声を取り込むことを可能にし、これは、無指向性マイクロホン、単一指向性マイクロホン、両指向性マイクロホン、ショットガンタイプのマイクロホン、または音声を電気信号に変換する他のタイプの装置とすることができる。マイクロホン509は、例えば、ユーザがデバイス500で通話中に別のユーザと話しているときに、ユーザが発する音声を取り込むために使用することができる。逆に、スピーカー510は、デバイスが、電気信号を電話アプリケーションプログラムによって生成される他のユーザからの音声、または着信音アプリケーションプログラムから発せられる着信音などの音に変換することを可能にする。さらに、デバイス500は、図5にハンドヘルドデバイスとして例示されているけれども、他の実施形態では、デバイス500は、ラップトップコンピュータ、ワークステーション、ミッドレンジコンピュータ、メインフレーム、埋め込み型システム、電話機、デスクトップPC、タブレット型コンピュータ、PDA、または他のタイプのコンピューティングデバイスであってもよい。
【0108】
図6は、デバイス500の内部アーキテクチャ600を例示するブロック図である。このアーキテクチャは、オペレーティングシステムまたはアプリケーションを含むコンピュータ命令が処理される中央演算処理装置(CPU)601と、ディスプレイ501上にビデオ、グラフィックス、画像、およびテキストをレンダリングするための通信インターフェイスおよび処理機能を備え、一組のビルトインコントロール(ボタン、テキスト、およびリストなど)を備え、多様な画面サイズをサポートする、ディスプレイインターフェイス602と、キーボード502との通信インターフェイスを備えるキーボードインターフェイス604と、ポインティングデバイス504との通信インターフェイスを備えるポインティングデバイスインターフェイス605と、アンテナ505との通信インターフェイスを備えるアンテナインターフェイス606と、コンピュータネットワーク接続506上でネットワークとの通信インターフェイスを備えるネットワーク接続インターフェイス607と、カメラ507からデジタル画像を取り込むための通信インターフェイスおよび処理機能を備えるカメラインターフェイス608と、マイクロホン509を使用して音声を電気信号に変換し、スピーカー510を使用して電気信号を音声に変換するための通信インターフェイスを備えるサウンドインターフェイス609と、CPU 601による処理のためコンピュータ命令およびデータが揮発性メモリデバイスに格納される、ランダムアクセスメモリ(RAM)610と、基本入出力(I/O)、起動、またはキーボード502からのキーストロークを受け取ることなどの基本システム機能の不変な低レベルシステムコードまたはデータが不揮発性メモリデバイス内に格納される、読み取り専用メモリ(ROM)611と、オペレーティングシステム614、アプリケーションプログラム615(必要に応じて、例えば、ウェブブラウザアプリケーション、ウィジェットまたはガジェットエンジンアプリケーション、および/または他のアプリケーションを含む)、およびデータファイル616を含むファイルが格納される、記憶媒体612または他の好適なタイプのメモリ(例えば、RAM、ROM、プログラム可能読み取り専用メモリ(PROM)、消去可能プログラム可能読み取り専用メモリ(EPROM)、電気的消去可能プログラム可能読み取り専用メモリ(EEPROM)、磁気ディスク、光ディスク、フロッピー(登録商標)ディスク、ハードディスク、取り外し可能カートリッジ、フラッシュドライブなど)と、デバイス500の現実世界もしくは相対的な位置または地理的な位置を供給するナビゲーションモジュール617と、パワーコンポーネントに適切な交流(AC)または直流(DC)を供給する電源619と、デバイス500が電話網を介して音声を送受信することを可能にする電話サブシステム620とを備える。構成要素であるデバイスとCPU 601は、バス621上で互いに通信する。
【0109】
CPU 601は、多数のコンピュータプロセッサのうちの1つとすることができる。一配置構成において、コンピュータCPU 601は、複数の処理演算装置である。RAM 610は、オペレーティングシステムのアプリケーションプログラムおよびデバイスドライバなどのソフトウェアプログラムの実行時にCPU 601によるRAMへの格納を高速化するようにコンピュータバス621とインターフェイスする。より具体的には、CPU 601は、ソフトウェアプログラムを実行するために、コンピュータ実行可能プロセスステップを記憶媒体612または他の媒体からRAM 610のフィールド内にロードする。データは、RAM 610に格納され、そこで、実行時にコンピュータCPU 601によってデータがアクセスされる。例示的な一構成では、デバイス500は、少なくとも128MBのRAMおよび256MBのフラッシュメモリを備える。
【0110】
記憶媒体612それ自体は、RAID(Redundant Array of Independent Disks)、フロッピー(登録商標)ディスクドライブ、フラッシュメモリ、USBフラッシュドライブ、外付けハードディスクドライブ、サムドライブ、ペンドライブ、キードライブ、高密度デジタル多用途ディスク(HD-DVD)光ディスクドライブ、内蔵ハードディスクドライブ、Blu-Ray光ディスクドライブ、またはホログラフィックデジタルデータストレージ(HDDS)光ディスクドライブ、外付けミニデュアルインラインメモリモジュール(DIMM)同期型ダイナミックランダムアクセスメモリ(SDRAM)、または外付けマイクロDIMM SDRAMなどの多数の物理的ドライブユニットを含みうる。このようなコンピュータ可読記憶媒体を使用することで、デバイス500は、取り外し可能および取り外し不可能な記憶媒体に格納されているコンピュータ実行可能プロセスステップ、アプリケーションプログラムなどにアクセスしたり、デバイス500のデータ負荷を軽減したり、またはデバイス500上にデータをアップロードしたりすることができる。
【0111】
コンピュータプログラム製品は、記憶媒体612、つまり機械可読記憶媒体で明確に具現化される。コンピュータプログラム製品は、機械によって読み込まれたときに、データ処理装置にモバイルデバイスへの画像データの格納を行わせるように動作する命令を含む。いくつかの実施形態において、コンピュータプログラム製品は、さまざまなアプリケーションをユーザが同時に完全に実行し使用することを可能にする命令を備える。いくつかの実施形態では、コンピュータプログラム製品は、ソフトウェアへの修正を受け付ける、例えば、ソフトウェアもしくはハードウェアのオペレーションの「バグ」または不備を是正するためにコンピュータプログラム製品を更新するための機能を備える。いくつかの実施形態では、この更新は、コンピュータプログラム製品に実用性を改善する付加的な要素および特徴を追加することを含みうる。
【0112】
オペレーティングシステム614は、GOOGLE(登録商標)モバイルデバイスプラットフォームなどのLINUX(登録商標)ベースのオペレーティングシステム、APPLE(登録商標) MAC OS X(登録商標)、MICROSOFT(登録商標) WINDOWS(登録商標) NT/WINDOWS(登録商標) 2000/WINDOWS(登録商標) XP/WINDOWS(登録商標) MOBILE、さまざまなUNIX(登録商標)系オペレーティングシステム、またはコンピュータもしくは組込みシステム向けの専用オペレーティングシステムとすることができる。オペレーティングシステム614用のアプリケーション開発プラットフォームまたはフレームワークは、BINARY RUNTIME ENVIRONMENT FOR WIRELESS(登録商標)(BREW(登録商標))、SUN MICROSYSTEMS(登録商標) JAVA(登録商標)プログラミング言語を使用するJAVA(登録商標) Platform、Micro Edition (JAVA(登録商標) ME)またはJAVA(登録商標) 2 Platform、Micro Edition (J2ME(登録商標))、PYTHON(商標)、FLASH LITE(登録商標)、またはMICROSOFT(登録商標) .NET Compact、または他の適切な環境とすることができる。アプリケーション開発プラットフォームでは、SUN MICROSYSTEMS(登録商標) JAVA(登録商標)プログラミング言語およびDalvik仮想マシンも使用することができる。
【0113】
デバイスは、オペレーティングシステム614用のコンピュータ実行可能コード、および電子メール、インスタントメッセージング、ビデオサービスアプリケーション、地図表示アプリケーション文書処理、表計算、プレゼンテーション、ゲーム、地図表示、ウェブ閲覧、JAVA(登録商標)SCRIPTエンジン、または他のアプリケーションなどのアプリケーションプログラム615を格納する。例えば、一実施形態は、ユーザがGOOGLE(登録商標) GMAIL(登録商標)電子メールアプリケーション、GOOGLE(登録商標) TALK(登録商標)インスタントメッセージングアプリケーション、YOUTUBE(登録商標)動画サービスアプリケーション、GOOGLE(登録商標) MAPS(登録商標)またはGOOGLE(登録商標) EARTH(登録商標)地図表示アプリケーション、またはGOOGLE(登録商標) PICASA(登録商標)画像編集およびプレゼンテーションアプリケーションにアクセスすることを可能にする。アプリケーションプログラム615は、TAFRI(商標)ウィジェットエンジンなどのウィジェットまたはガジェットエンジン、WINDOWS(登録商標) SIDEBAR(登録商標)ガジェットエンジンまたはKAPSULES(商標)ガジェットエンジンなどのMICROSOFT(商標)ガジェットエンジン、KONFABULTOR(商標)ウィジェットエンジンなどのYAHOO!(商標)ウィジェットエンジン、APPLE(登録商標) DASHBOARD(登録商標)ウィジェットエンジン、GOOGLE(登録商標)ガジェットエンジン、KLIPFOLIO(登録商標)ウィジェットエンジン、OPERA(商標)ウィジェットエンジン、WIDGETS(商標)ウィジェットエンジン、専用ウィジェットまたはガジェットエンジン、またはデスクトップ上に物理的にインスパイアされたアプレットに関するホストシステムソフトウェアを提供する他のウィジェットまたはガジェットエンジンも含む。
【0114】
上述の実施形態を使用してアプリケーションマネージャを実施することも可能であるけれども、本開示による機能をダイナミックリンクライブラリ(DLL)として、またはFOXFIREウェブブラウザ、APPLE(登録商標) SAFARI(登録商標)ウェブブラウザ、またはMICROSOFT(登録商標) INTERNET EXPLORER(登録商標)ウェブブラウザといったインターネットウェブブラウザなどの他のアプリケーションプログラムのプラグインとして実施することも可能である。
【0115】
ナビゲーションモジュール617は、全地球測位システム(GPS)信号、セルタワー三角測量、Wifiアクセスポイント識別、GLObal NAvigation Satellite System(GLONASS)、ガリレオ測位システム、Beidou Satellite Navigation and Positioning System、慣性航法システム、自立航法システムを使用して、またはアドレス、インターネットプロトコル(IP)アドレス、またはデータベース内の位置情報にアクセスするなどして、デバイスの絶対位置または相対位置を判定することができる。ナビゲーションモジュール617は、1つまたは複数の加速度計を使用することなどによって、デバイス500の角度変位、配向、または速度を測定するために使用することもできる。
【0116】
図7は、オペレーティングシステム614がGOOGLE(登録商標)モバイルデバイスプラットフォームである場合のデバイス500によって使用されるオペレーティングシステム614の例示的なコンポーネントを例示するブロック図である。オペレーティングシステム614は、関連する電話アプリケーションが応答すること、および気まぐれなアプリケーションがオペレーティングシステムのフォルト(または「クラッシュ」)を引き起こさないことを確実にしつつ、複数のプロセスを呼び出す。オペレーティングシステム614では、タスク切り替えを使用することで、それぞれの関連するアプリケーションの状態を失うことなく、電話中にアプリケーションを切り替えることができる。オペレーティングシステム614は、アプリケーションフレームワークを使用してコンポーネントの再利用を推進し、ポインティングデバイス入力とキーボード入力とを組み合わせ、旋回動作を行えるようにすることによって、スケーラブルなユーザエクスペリエンスを実現する。そのため、オペレーティングシステムは、高度な標準ベースのウェブブラウザを使用しつつ、高機能なグラフィックスシステムおよびメディアエクスペリエンスをもたらすことができる。
【0117】
オペレーティングシステム614は、一般に、カーネル700、ライブラリ701、オペレーティングシステムランタイム702、アプリケーションライブラリ704、システムサービス705、およびアプリケーション706の6つのコンポーネントにまとめることができる。カーネル700は、オペレーティングシステム614およびアプリケーションプログラム615などのソフトウェアとディスプレイインターフェイス602を介したディスプレイ501とのインタラクションを可能にするディスプレイドライバ707と、ソフトウェアとカメラ507とのインタラクションを可能にするカメラドライバ709と、BLUETOOTH(登録商標)ドライバ710と、M-Systemsドライバ711と、バインダ(IPC)ドライバ712と、USBドライバ714と、キーボードインターフェイス604を介したソフトウェアとキーボード502とのインタラクションを可能にするキーパッドドライバ715と、WiFiドライバ716と、サウンドインターフェイス609を介したソフトウェアとマイクロホン509およびスピーカー510とのインタラクションを可能にするオーディオドライバ717と、ソフトウェアと電源619とのインタラクションおよび電源619の管理を可能にするパワーマネージメントコンポーネント719とを備える。
【0118】
一実施形態において、LINUX系オペレーティングシステム用のBlueZ BLUETOOTH(登録商標)スタックに基づく、BLUETOOTH(登録商標)ドライバは、ヘッドセットおよびハンズフリーデバイス、ダイヤルアップネットワーキング、パーソナルエリアネットワーキング(PAN)、またはオーディオストリーミング(A2DP(Advance Audio Distribution Profile)またはAVRCP(Audio/Video Remote Control Profile)など)に関するプロファイルをサポートする。BLUETOOTH(登録商標)ドライバは、スキャニング、ペアリング、およびペアリング解除のためのJAVA(登録商標)バインディング、ならびにサービスクエリを提供する。
【0119】
ライブラリ701は、効率的なJAVA(登録商標)アプリケーションプログラミングインターフェイス(API)レイヤ、サーフェイスマネージャ721、二次元アプリケーションドローイング用のSGL(Simple Graphics Library)722、ゲームおよび三次元レンダリング用のOpenGL ES(Open Graphics Library for Embedded Systems)724、C標準ライブラリ(LIBC)725、LIBWEBCOREライブラリ726、FreeTypeライブラリ727、SSL 729、SQLiteライブラリ730を使用する、標準のビデオ、オーディオ、および静止フレームフォーマット(MPEG(Moving Picture Experts Group)-4、H.264、MP3(MPEG-1 Audio Layer-3)、AAC(Advanced Audio Coding)、AMR(Adaptive Multi-Rate)、JPEG(Joint Photographic Experts Group)、および他のフォーマットなど)をサポートするメディアフレームワーク720を含む。
【0120】
一般に、モバイル情報デバイスプロファイル(MIDP)ランタイムを構成する、オペレーティングシステムランタイム702は、コアJAVA(登録商標)ライブラリ731およびDalvik仮想マシン732を含む。Dalvik仮想マシン732は、カスタマイズされたファイルフォーマット(.DEX)さらには未修正のJAVA(登録商標)ファイル(.CLASS/.JAR)が実行されるJava(登録商標)互換カスタム仮想マシンである。グラフィックスレンダリングに関しては、システム規模のコンポーザが、サーフェイスおよびフレームバッファを管理し、作成にOpenGL ES 724および二次元ハードウェアアクセラレータを使用して、ウィンドウ遷移を取り扱う。
【0121】
Dalvik仮想マシン732は、ランタイムメモリを非常に効率よく使用し、CPU最適化されたバイトコードインタプリタを実装し、デバイス1つにつき複数の仮想マシンプロセスをサポートするので、埋め込み型環境とともに使用することができる。カスタムファイルフォーマット(.DEX)は、ランタイム効率を念頭において設計されたもので、共有定数プールを使用してメモリを削減し、読み取り専用構造を使用してクロスプロセス共有を改善し、簡明かつ固定幅の命令を使用して構文解析時間を短縮しており、それにより、インストールアプリケーションをビルド時にカスタムファイルフォーマットに変換することができる。関連付けられているバイトコードは、スタックベースの命令ではなくレジスタベースの命令を使用してメモリおよびディスパッチオーバーヘッドを低減し、固定幅命令を使用して構文解析を簡素化し、16ビットコードユニットを使用して読み込みを最小限に抑えることで、直ちに解釈できるように設計されている。
【0122】
一般に、MIDP JAVA(登録商標) Specification Requests(JSR)を構成する、アプリケーションライブラリ704は、ビューシステム734、リソースマネージャ735、およびコンテンツプロバイダ737を含む。システムサービス705は、ステータスバー739、アプリケーションランチャー740、すべてのインストール済みアプリケーションに関する情報を保持するパッケージマネージャ741、アプリケーションレベルのJAVA(登録商標)インターフェイスを電話サブシステム620に提供する電話マネージャ742、すべてのアプリケーションによるステータスバーおよび画面上通知へのアクセスを可能にする通知マネージャ744、複数のウィンドウを備える複数のアプリケーションがディスプレイ501を共有することを可能にするウィンドウマネージャ745、別のプロセスでそれぞれのアプリケーションを実行し、アプリケーションライフサイクルを管理し、クロスアプリケーション履歴を維持する活動マネージャ746、アプリケーションにおける状態変化を監視するためのアプリケーションモニタ747、および1つまたは複数のアプリケーションを終了するためのアプリケーションターミネータ749を含む。
【0123】
一般にMIDPアプリケーションを構成する、アプリケーション706は、ホームアプリケーション753、ダイアラーアプリケーション754、連絡先アプリケーション750、ブラウザアプリケーション751、および辞書アプリケーション752を含む。
【0124】
電話マネージャ742は、イベント通知(電話状態、ネットワーク状態、加入者識別モジュール(SIM)ステータス、または音声メールステータス)を発し、状態情報(ネットワーク情報、SIM情報、または音声メールの有無)へのアクセスを許可し、呼を開始し、クエリを実行し、呼状態を制御する。ブラウザアプリケーション751は、ウェブページを、ナビゲーション機能を含む、完全なデスクトップに似たマネージャにする。さらに、ブラウザアプリケーション751では、単一カラムの小さな画面をレンダリングすることができ、他のアプリケーションにHTMLビューを埋め込むことができる。
【0125】
図8は、オペレーティングシステムカーネル800によって実施される例示的なプロセスを示すブロック図である。一般に、アプリケーションおよびシステムサービスは、別々のプロセスで実行され、活動マネージャ746はそれぞれのアプリケーションを別のプロセスで実行し、アプリケーションライフサイクルを管理する。アプリケーションはそれ専用のプロセスで実行されるが、多くの活動またはサービスも同じプロセスで実行されうる。プロセスは、アプリケーションのコンポーネントを実行するために必要に応じて、起動と停止を行い、またプロセスは、リソースを回収するために終了させることができる。それぞれのアプリケーションは、それ専用のプロセスを割り当てられ、その名前はアプリケーションのパッケージ名であり、アプリケーションの個別の部分には、別のプロセス名を割り当てることができる。
【0126】
サーフェイスマネージャ816、ウィンドウマネージャ814、または活動マネージャ810などの永続的なコアシステムサービスは、システムプロセスによってホスティングされるが、ダイアラーアプリケーション821に関連付けられているプロセスなどのアプリケーションプロセスも永続的であってよい。オペレーティングシステムカーネル800によって実施されるプロセスは、一般に、システムサービスプロセス801、ダイアラープロセス802、ブラウザプロセス804、および地図プロセス805として分類されうる。システムサービスプロセス801は、ステータスバー739に関連付けられているステータスバープロセス806、アプリケーションランチャー740に関連付けられているアプリケーションランチャープロセス807、パッケージマネージャ741に関連付けられているパッケージマネージャプロセス808、活動マネージャ746に関連付けられている活動マネージャプロセス810、グラフィックス、ローカライズされた文字列、およびXMLレイアウト記述にアクセスできるようにするリソースマネージャ(図示せず)に関連付けられているリソースマネージャプロセス811、通知マネージャ744に関連付けられている通知マネージャプロセス812、ウィンドウマネージャ745に関連付けられているウィンドウマネージャプロセス814、コアJAVA(登録商標)ライブラリ731に関連付けられているコアJAVA(登録商標)ライブラリプロセス815、サーフェイスマネージャ721に関連付けられているサーフェイスマネージャプロセス816、Dalvik仮想マシン732に関連付けられているDalvik JAVA(登録商標)仮想マシンプロセス817、LIBCライブラリ725に関連付けられているLIBCプロセス818、アプリケーションターミネータ749に関連付けられているアプリケーションターミネータプロセス838、アプリケーションモニタ747に関連付けられているアプリケーションモニタプロセス839を含む。
【0127】
ダイアラープロセス802は、ダイアラーアプリケーション754に関連付けられているダイアラーアプリケーションプロセス821、電話マネージャ742に関連付けられている電話マネージャプロセス822、コアJAVA(登録商標)ライブラリ731に関連付けられているコアJAVA(登録商標)ライブラリプロセス824、Dalvik仮想マシン732に関連付けられているDalvik JAVA(登録商標)仮想マシンプロセス825、およびLIBCライブラリ725に関連付けられているLIBCプロセス826を含む。ブラウザプロセス804は、ブラウザアプリケーション751に関連付けられているブラウザアプリケーションプロセス827、コアJAVA(登録商標)ライブラリ731に関連付けられているコアJAVA(登録商標)ライブラリプロセス828、Dalvik仮想マシン732に関連付けられているDalvik JAVA(登録商標)仮想マシンプロセス830、LIBWEBCOREライブラリ726に関連付けられているLIBWEBCOREプロセス831、およびLIBCライブラリ725に関連付けられているLIBCプロセス832を含む。
【0128】
地図プロセス805は、地図アプリケーションプロセス834、コアJAVA(登録商標)ライブラリプロセス835、Dalvik JAVA(登録商標)仮想マシンプロセス836、およびLIBCプロセス837を含む。明らかに、Dalvik JAVA(登録商標)仮想マシンプロセスなどのいくつかのプロセスは、システムサービスプロセス801、ダイアラープロセス802、ブラウザプロセス804、および地図プロセス805のうちの1つまたは複数の中に存在しうる。
【0129】
図9は、本明細書で説明されている技術とともに使用されうる一般的なコンピュータデバイス900および一般的なモバイルコンピュータデバイス950の一例を示している。コンピューティングデバイス900は、ラップトップ、デスクトップ、ワークステーション、パーソナルデジタルアシスタント、サーバ、ブレードサーバ、メインフレーム、および他の適切なコンピュータなどのさまざまな形態のデジタルコンピュータを表すことが意図されている。コンピューティングデバイス950は、パーソナルデジタルアシスタント、携帯電話、スマートフォン、および他の類似のコンピューティングデバイスなどのさまざまな形態のモバイルデバイスを表すことが意図されている。ここに示されているコンポーネント、それらの接続および関係、ならびにそれらの機能は、例示することのみを意図されており、本明細書において説明され、および/または請求されている発明の実施形態を制限することを意図されていない。
【0130】
コンピューティングデバイス900は、プロセッサ902、メモリ904、ストレージデバイス906、メモリ904および高速拡張ポート910に接続する高速インターフェイス908、ならびに低速バス914およびストレージデバイス906に接続する低速インターフェイス912を備える。コンポーネント902、904、906、908、910、および912のそれぞれは、さまざまなバスを使用して相互接続され、共通マザーボード上に取り付けられるか、または適宜他の仕方で取り付けられうる。プロセッサ902は、高速インターフェイス908に結合されているディスプレイ916などの、外部入力/出力デバイス上にGUIのグラフィック情報を表示するためメモリ904内に、またはストレージデバイス906上に、格納されている命令を含む、コンピューティングデバイス900内で実行する命令を処理することができる。他の実施形態では、複数のプロセッサおよび/または複数のバスを、適宜、複数のメモリおよび複数のタイプのメモリとともに使用することができる。また、複数のコンピューティングデバイス900を、必要なオペレーションの一部を行うそれぞれのデバイスと接続することができる(例えば、サーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして)。
【0131】
メモリ904は、コンピューティングデバイス900内の情報を格納する。一実施形態では、メモリ904は、1つまたは複数の揮発性メモリユニットである。他の実施形態では、メモリ904は、1つまたは複数の不揮発性メモリユニットである。メモリ904は、磁気ディスクまたは光ディスクなどのコンピュータ可読媒体の他の形態のものとすることもできる。
【0132】
ストレージデバイス906は、コンピューティングデバイス900用のマスストレージを構成することもできる。一実施形態では、ストレージデバイス906は、ストレージエリアネットワークまたは他の構成のデバイスを含む、フロッピー(登録商標)ディスクデバイス、ハードディスクデバイス、光ディスクデバイス、またはテープデバイス、フラッシュメモリもしくは他の類似のソリッドステートメモリデバイス、またはデバイスアレイなどのコンピュータ可読媒体であるか、またはコンピュータ可読媒体を含むことができる。コンピュータプログラム製品は、情報担体において明確に具現化されうる。コンピュータプログラム製品は、実行されると上述のような1つまたは複数の方法を実行する命令も格納することができる。情報担体は、メモリ904、ストレージデバイス906、プロセッサ902上のメモリ、または伝搬信号などのコンピュータもしくは機械可読媒体である。
【0133】
高速コントローラ908は、コンピューティングデバイス900に対する帯域幅を集中的に使用するオペレーションを管理するが、低速コントローラ912は、帯域幅を集中的に使用する程度の低いオペレーションを管理する。機能のこのような割り振りは例示的なものにすぎない。一実施形態では、高速コントローラ908は、メモリ904、ディスプレイ916(例えば、グラフィックスプロセッサまたはアクセラレータを通じて)、およびさまざまな拡張カード(図示せず)を受け入れることができる高速拡張ポート910に結合される。この実施形態では、低速コントローラ912は、ストレージデバイス906および低速拡張ポート914に結合される。さまざまな通信ポート(例えば、USB、Bluetooth(登録商標)、Ethernet(登録商標)、無線Ethernet(登録商標))を含みうる、低速拡張ポートは、キーボード、ポインティングデバイス、スキャナ、または例えば、ネットワークアダプタを通じて、スイッチまたはルーターなどネットワーキングデバイスなどの1つまたは複数の入力/出力デバイスに結合することができる。
【0134】
コンピューティングデバイス900は、図に示されているように、数多くの異なる形態で実装されうる。例えば、標準サーバ920として、またはそのようなサーバのグループで何倍もの数で実装されうる。これは、ラックサーバシステム924の一部としても実装することができる。それに加えて、ラップトップコンピュータ922などのパーソナルコンピュータで実装することもできる。あるいは、コンピューティングデバイス900からのコンポーネントをデバイス950などのモバイルデバイス(図示せず)内の他のコンポーネントと組み合わせることができる。このようなデバイスのそれぞれは、コンピューティングデバイス900、950のうちの1つまたは複数を含むことができ、システム全体が、互いに通信する複数のコンピューティングデバイス900、950で構成されうる。
【0135】
コンピューティングデバイス950は、数ある中でもとりわけ、プロセッサ952、メモリ964、ディスプレイ954などの入力/出力デバイス、通信インターフェイス966、およびトランシーバ968を備える。デバイス950は、追加のストレージを構成するためにマイクロドライブまたは他のデバイスなどのストレージデバイスを備えることもできる。コンポーネント950、952、964、954、966、および968のそれぞれは、さまざまなバスを使用して相互接続され、これらのコンポーネントのうちのいくつかは、共通マザーボード上に取り付けられるか、または適宜他の仕方で取り付けられうる。
【0136】
プロセッサ952は、メモリ964内に格納されている命令を含む、コンピューティングデバイス950内の命令を実行することができる。プロセッサは、個別の、および複数の、アナログおよびデジタルプロセッサを備えるチップのチップセットとして実装することができる。プロセッサは、例えば、ユーザインターフェイスの制御、デバイス950によるアプリケーション実行、デバイス950による無線通信などの、デバイス950の他のコンポーネントの調整を行うことができる。
【0137】
プロセッサ952は、制御インターフェイス958およびディスプレイ954に結合されているディスプレイインターフェイス956を通じてユーザと通信することができる。ディスプレイ954は、例えば、TFT LCD(薄膜トランジスタ液晶ディスプレイ)またはOLED(有機発光ダイオード)ディスプレイまたは他の適切なディスプレイ技術とすることができる。ディスプレイインターフェイス956は、グラフィックおよび他の情報をユーザに提示するようにディスプレイ954を駆動するための適切な回路を備えることができる。制御インターフェイス958は、ユーザからコマンドを受け取り、それらをプロセッサ952に送るために変換することができる。それに加えて、外部インターフェイス962は、プロセッサ952と通信するように構成され、デバイス950と他のデバイスとの近距離通信を行うことを可能にする。外部インターフェイス962は、例えば、いくつかの実施形態における有線通信、または他の実施形態における無線通信を行うことができ、複数のインターフェイスも使用できる。
【0138】
メモリ964は、コンピューティングデバイス950内の情報を格納する。メモリ964は、1つまたは複数のコンピュータ可読媒体、1つまたは複数の揮発性メモリユニット、または1つまたは複数の不揮発性メモリユニットのうちの1つまたは複数として実装することができる。拡張メモリ974も、例えば、SIMM(シングルインラインメモリモジュール)カードインターフェイスを含むものとしてよい、拡張インターフェイス972を通じて構成され、デバイス950に接続されうる。このような拡張メモリ974は、デバイス1050に対する付加的な記憶領域を設けることができるか、またはデバイス950用のアプリケーションまたは他の情報を格納することもできる。特に、拡張メモリ974は、上述のプロセスを実行するか、または補助する命令を格納することができ、またセキュア情報も格納することができる。したがって、例えば、拡張メモリ974は、デバイス950に対するセキュリティモジュールとして構成することができ、デバイス950の安全な使用を可能にする命令でプログラムすることができる。それに加えて、安全なアプリケーションは、SIMMカードを介して、ハッキングできない形でSIMMカード上に識別情報を配置するなど、付加情報とともに提供することもできる。
【0139】
メモリとしては、例えば、後述のように、フラッシュメモリおよび/またはNVRAMメモリが挙げられる。一実施形態では、コンピュータプログラム製品は、情報担体で明確に具現化される。コンピュータプログラム製品は、実行されると上述のような1つまたは複数の方法を実行する命令を格納する。情報担体は、メモリ964、拡張メモリ974、プロセッサ952上のメモリ、または例えば、トランシーバ968もしくは外部インターフェイス962上で受信されうる伝搬信号などのコンピュータもしくは機械可読媒体である。
【0140】
デバイス950は、必要ならば、デジタル信号処理回路を備えることができる、通信インターフェイス966を通じて無線で通信することができる。通信インターフェイス966は、とりわけ、GSM音声電話、SMS、EMS、またはMMSメッセージング、CDMA、TDMA、PDC、WCDMA、CDMA2000、またはGPRSなどの、さまざまなモードもしくはプロトコルの下で通信を行うことができる。このような通信は、例えば、無線周波トランシーバ968を通じて行うことができる。それに加えて、Bluetooth(登録商標)、WiFi、または他のそのようなトランシーバ(図示せず)などを使用して、短距離通信を実行することができる。それに加えて、GPS(全地球測位システム)受信機モジュール970は、追加のナビゲーションおよび位置関係無線データをデバイス950に送ることができ、これはデバイス950上で実行するアプリケーションによって適宜使用されうる。
【0141】
デバイス950は、オーディオコーデック960を使用して音声で通信することもでき、ユーザから発話情報を受け取り、それを使用可能なデジタル情報に変換することができる。オーディオコーデック960は、例えば、デバイス950のハンドセットのスピーカーなどを通じて、ユーザ向けに可聴音を発生することができる。このような音声は、音声電話からの音声を含み、記録された音声を含み(例えば、音声メッセージ、音楽ファイルなど)、またデバイス950上で動作するアプリケーションによって生成される音声を含むこともできる。
【0142】
コンピューティングデバイス950は、図に示されているように、数多くの異なる形態で実装されうる。例えば、携帯電話980として実装することができる。また、スマートフォン982、パーソナルデジタルアシスタント、または他の類似のモバイルデバイスの一部として実装することもできる。
【0143】
本明細書で説明されているシステムおよび技術のさまざまな実施形態は、デジタル電子回路、集積回路、専用設計ASIC(特定用途向け集積回路)、コンピュータのハードウェア、ファームウェア、ソフトウェア、および/またはこれらの組合せで実現することが可能である。さまざまな実施形態は、ストレージシステム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスからデータおよび命令を受け取り、ストレージシステム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスにデータおよび命令を送るように結合された、専用または汎用のものとしてよい、少なくとも1つのプログラム可能なプロセッサを備えるプログラム可能なシステム上で実行可能であり、および/または解釈可能である1つまたは複数のコンピュータプログラムによる実施を含むことができる。
【0144】
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとも呼ばれる)は、プログラム可能なプロセッサ用の機械語命令を含み、高水準手続き型および/またはオブジェクト指向プログラミング言語で、および/またはアセンブリ/機械語で実装されうる。本明細書で使用されているように、「機械可読媒体」、「コンピュータ可読媒体」という用語は、機械可読信号として機械語命令を受け取る機械可読媒体を含む、機械語命令および/またはデータをプログラム可能なプロセッサに供給するために使用されるコンピュータプログラム製品、装置、および/またはデバイス(例えば、磁気ディスク、光ディスク、メモリ、プログラム可能論理デバイス(PLD))を指す。「機械可読信号」という用語は、機械語命令および/またはデータをプログラム可能なプロセッサに供給するために使用される信号を指す。
【0145】
ユーザと情報のやり取りを行うために、本明細書で説明されているシステムおよび技術は、ユーザに情報を表示するための表示デバイス(例えば、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタ)およびキーボードおよびユーザがコンピュータに入力を送るために使用できるポインティングデバイス(例えば、マウスもしくはトラックボール)を有するコンピュータ上で実施することができる。他の種類のデバイスも、ユーザと情報をやり取りするために使用することができ、例えば、ユーザに返されるフィードバックは、任意の形態の感覚フィードバック(例えば、視覚フィードバック、聴覚フィードバック、または触覚フィードバック)とすることができ、ユーザからの入力は、音響、話し声、または触覚入力を含む、任意の形態で受け取ることができる。
【0146】
本明細書で説明されているシステムおよび技術は、バックエンドコンポーネントを含む(例えば、データサーバとして)、またはミドルウェアコンポーネントを含む(例えば、アプリケーションサーバとして)、またはフロントエンドコンポーネントを含む(例えば、ユーザと本明細書で説明されているシステムおよび技術の実施形態との情報のやり取りに使用されるグラフィカルユーザインターフェイスまたはウェブブラウザを有するクライアントコンピュータ)コンピューティングシステム、またはそのようなバックエンド、ミドルウェア、もしくはフロントエンドコンポーネントの任意の組合せで実装することができる。システムのコンポーネントは、デジタルデータ通信の任意の形態または媒体(例えば、通信ネットワーク)によって相互接続することができる。通信ネットワークの例としては、ローカルエリアネットワーク(「LAN」)、ワイドエリアネットワーク(「WAN」)、およびインターネットが挙げられる。
【0147】
コンピューティングシステムは、クライアントおよびサーバを備えることができる。クライアントおよびサーバは、一般に、互いに隔てられており、典型的には、通信ネットワークを通じて情報のやり取りを行う。クライアントとサーバとの関係は、コンピュータプログラムが各コンピュータ上で実行され、互いとの間にクライアント-サーバ関係を有することによって発生する。
【0148】
これで多数の実施形態が説明された。しかしながら、本開示の精神および範囲から逸脱することなくさまざまな修正を加えることができることは理解されるであろう。例えば、上記の開示では、「電話」という用語を使用しているが、ボイスオーバーアイピーシステムなどの、必ずしも電話機を使用しない他の通信形態も、伝送路を介して、または無線で人と人との通信接続が可能であることに関して同等であると考えられることが暗示されている。したがって、他の実施形態は、請求項の範囲内に収まる。
【0149】
それに加えて、図に示されている論理の流れは、所望の結果を得るために、図示されている特定の順序、またはシーケンシャルな順序を必要としない。それに加えて、他のステップを与えるか、または説明されている流れからステップを取り除くこともでき、また他のコンポーネントを説明されているシステムに追加するか、または説明されているシステムから取り除くことができる。したがって、他の実施形態は、請求項の範囲内に収まる。
【符号の説明】
【0150】
202 地図製作アプリケーション
204 リモートコンピューティングデバイス
206 車両
208 ネットワーク
210 インターフェイス
212 ユーザデータ地図表示モジュール
214 位置スクレーパ
216 位置解決モジュール
218 アプリケーション
220 ユーザデータ
240 地図表示システム
242 コンピューティングデバイス
244 基地局
246 ネットワーク
248 リモートコンピューティングデバイス
250 インターフェイス
252 ユーザデータ地図表示モジュール
254 位置特定エンジン
256 位置スクレーパ
258 位置ベースのデータストレージ
260 ユーザデータ
262 アプリケーションストレージ

【特許請求の範囲】
【請求項1】
ジオコーディングされたユーザ情報を生成するためのコンピュータで実施される方法であって、
位置関係情報を有する入力項目について複数の異なるデータコーパスにまたがってユーザデータを検索するステップと、
前記位置関係情報に関する位置を決定するステップと、
前記複数の異なるデータコーパスからの入力項目に関する、前記決定された位置における、位置関係情報を有する前記入力項目の表現とともにモバイルデバイスの現在位置を示す地図を生成するステップとを含む方法。
【請求項2】
前記地図を表示するためのデータは、リモートサーバから受信され、前記入力項目に関するデータが、ローカルデバイスから受信され、前記地図上に重ねて表示される請求項1に記載の方法。
【請求項3】
前記地図上に、前記地図によって表示される地形の外縁からの決定された距離である、イベントに関する入力項目を表すアイコンを表示するステップをさらに含む請求項1に記載の方法。
【請求項4】
前記地図上のパニングアクションを受信するステップと、前記地図上の新しい位置に一致するように前記地図および前記入力項目の表示を更新するステップとをさらに含む請求項1に記載の方法。
【請求項5】
前記パニングアクションは、前記ローカルデバイス内の位置センサを使用して自動的に起動される請求項4に記載の方法。
【請求項6】
前記デバイスに最も近い入力項目に関する詳細情報を自動的に表示するステップをさらに含む請求項1に記載の方法。
【請求項7】
前記決定された位置にアイコンを表示するステップをさらに含み、それぞれのアイコンは、入力が生じるコーパスに対応する請求項1に記載の方法。
【請求項8】
前記位置関係情報に関する位置を決定するステップは、記述的な位置ベースのデータをリモートサーバに伝送するステップと、それに応答してジオコーディングされた情報を受信するステップとを含む請求項1に記載の方法。
【請求項9】
前記ユーザデータに関連するクエリをリモートローカル検索エンジンにサブミットするステップと、前記入力項目の表現に従って前記クエリに応答して受信されたデータを表すアイコンを表示するステップとをさらに含む請求項1に記載の方法。
【請求項10】
前記地図を生成するためにアプリケーションから独立しているモジュールを使用して前記デバイスの位置を追跡するステップと、位置情報を前記モジュールに登録するステップと、前記登録された位置情報が前記デバイスの位置に近いときに前記地図を生成することについて前記アプリケーションに警告するステップとをさらに含む請求項1に記載の方法。
【請求項11】
実行された場合にアクションを行う命令が記録されかつ格納される有形な媒体であって、前記アクションは、
位置関係情報を有する入力項目について複数の異なるデータコーパスにまたがってユーザデータを検索するステップと、
前記位置関係情報に関する位置を決定するステップと、
前記複数の異なるデータコーパスからの入力項目に関する、前記決定された位置における、位置関係情報を有する前記入力項目の記述とともにモバイルデバイスの現在位置を示す地図を生成するステップとを含む媒体。
【請求項12】
地図を生成するための前記命令は、前記地図上に、前記地図によって表示される地形の外縁からの決定された距離である入力項目を表すアイコンを表示するための命令をさらに含む請求項11に記載の媒体。
【請求項13】
地図を生成するための前記命令は、前記地図上のパニングアクションを受信するための命令、および前記地図上の新しい位置に一致するように前記地図および前記入力項目の表示を更新するための命令をさらに含む請求項11に記載の媒体。
【請求項14】
地図を生成するための前記命令は、前記決定された位置にアイコンを表示するための命令をさらに含み、それぞれのアイコンは、入力が生じるコーパスに対応する請求項11に記載の媒体。
【請求項15】
前記位置関係情報に関する位置を決定するステップは、記述的な位置ベースのデータをリモートサーバに伝送するステップと、それに応答してジオコーディングされた情報を受信するステップとを含む請求項11に記載の媒体。
【請求項16】
コンピュータで実装されるナビゲーションシステムであって、
複数のアプリケーションに関連付けられているユーザデータ内に位置関係情報を有する入力項目について検索する位置スクレーパと、
前記位置関係情報に関する位置を決定する位置解決モジュールと、
複数のアプリケーションからの入力項目に関するインジケータを有する地図を含む地図表示情報を生成するユーザデータ地図表示モジュールとを備えるシステム。
【請求項17】
前記位置解決モジュールは、テキストアドレス情報をリモートサーバにサブミットし、それに対する応答としてジオコーディングされた情報を受信するようにプログラムされる請求項16に記載のシステム。
【請求項18】
前記位置スクレーパは、カレンダーアプリケーション、連絡先アプリケーション、およびタスクアプリケーションからのデータを分析するようにプログラムされる請求項16に記載のシステム。
【請求項19】
前記地図表示モジュールは、リモートサーバから取得された情報を使用して生成された地図上で、前記位置関係情報に関する位置において、前記アプリケーションのそれぞれを表すアイコンを重ねて表示する請求項16に記載のシステム。
【請求項20】
コンピュータナビゲーションシステムであって、
位置関係情報について複数のアプリケーションに関連付けられているユーザデータを検索する位置スクレーパと、
前記位置関係情報に関連付けられているジオコーディングされた情報を供給する位置解決モジュールと、
コンピューティングデバイスの現在位置を決定する位置決定モジュールと、
前記コンピューティングデバイスの前記現在位置の指示情報および前記位置関係情報を含む地図データを生成する手段とを備えるコンピュータナビゲーションシステム。

【図1】
image rotate

【図2A】
image rotate

【図2B】
image rotate

【図3A】
image rotate

【図3B】
image rotate

【図4A】
image rotate

【図4B】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公表番号】特表2012−506559(P2012−506559A)
【公表日】平成24年3月15日(2012.3.15)
【国際特許分類】
【出願番号】特願2011−533286(P2011−533286)
【出願日】平成21年10月21日(2009.10.21)
【国際出願番号】PCT/US2009/061418
【国際公開番号】WO2010/048249
【国際公開日】平成22年4月29日(2010.4.29)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.GSM
【出願人】(507103802)グーグル・インコーポレーテッド (191)
【Fターム(参考)】