(57)【特許請求の範囲】
【請求項１】
コンピュータにより実行される方法であって、
タイルの地図データを求める要求であって、タイル識別子及び単一の単調に増加する地図バージョン番号であるバージョン識別子を含む要求を受け取るステップと、
タイル識別子の各々について、バージョン識別子によるインデックスを付けられた、該タイル識別子のタイルの複数のタイルバージョン識別子と、該複数のタイルバージョン識別子の各々のタイルと互換性のある地図データのバージョン識別子の範囲を示す互換地図バージョンとが対応づけられて記憶されているタイル互換性テーブルに、前記タイル識別子及び前記バージョン識別子によって、アクセスするステップと、
前記タイル互換性テーブルから、前記要求に含まれる前記バージョン識別子の地図データと互換性がある前記タイル識別子のタイルのタイルバージョン識別子である互換タイル識別子を受け取るステップと、
前記タイル互換性テーブルから、前記要求に含まれる前記バージョン識別子の地図データと互換性がある、前記タイル識別子に対応づけられた地図データのバージョン識別子の範囲を示す互換地図バージョンを示すデータを受け取るステップと、
タイル識別子とタイルの地図データが対応づけられて記憶されているデータベースに、前記互換タイル識別子によって、アクセスするステップと、
前記データベースから、前記互換タイル識別子のタイルである互換タイルの地図データを受け取るステップと、
前記地図データを求める要求に応答して、前記互換タイルの地図データ及び前記互換地図バージョンを提供するステップと、
を含むことを特徴とする方法。
【請求項２】
前記単一の単調に増加する地図バージョン番号である前記バージョン識別子を初期値から開始して地図に割り当てるステップと、
前記地図のいずれかのタイル又はタイルセットの更新に応答して、前記バージョン識別子を増分するステップと、
地図タイルが更新又は作成された時の前記地図の前記単一の単調に増加するバージョン識別子に対応するタイルバージョン識別子を前記地図タイルに割り当てるステップと、
をさらに含む請求項１に記載の方法。
【請求項３】
前記互換地図バージョンを示すデータは、時間順で最小のバージョン識別子及び時間順で最大のバージョン識別子からの互換地図バージョン識別子の範囲を含む、
請求項１に記載の方法。
【請求項４】
前記地図データを求める要求は、垂直レイヤコードを含む、
請求項１に記載の方法。
【請求項５】
前記地図データを求める要求は、地理的領域の地理的座標を含み、前記方法は、前記地理的領域に基づいて前記タイルバージョン識別子を選択するステップをさらに含む、
請求項１に記載の方法。
【請求項６】
前記複数のタイルバージョン識別子は、前記地理的領域に基づいて選択される、
請求項５に記載の方法。
【請求項７】
前記互換タイル識別子及び前記互換地図バージョンに基づいてルートが選択される、
請求項１に記載の方法。
【請求項８】
前記互換地図バージョンに基づいて地図更新を拒否するコマンドを受け取るステップをさらに含む、
請求項１に記載の方法。
【請求項９】
少なくとも１つのプロセッサと、
１又は２以上のプログラムのためのコンピュータプログラムコードを含む少なくとも１つのメモリと、
を備えた装置であって、前記少なくとも１つのメモリ及び前記コンピュータプログラムコードは、前記少なくとも１つのプロセッサと共に、前記装置に、
タイルバージョン識別子によるインデックスを付けられたタイルの地図データを求める要求であって、タイル識別子及びグローバル地図バージョン識別子を含む要求を受け取ることと、
タイル識別子の各々について、グローバル地図バージョン識別子によるインデックスを付けられたタイルの複数のタイルバージョン識別子と、該複数のタイルバージョン識別子の各々のタイルと互換性のある地図データのグローバル地図バージョン識別子の範囲を示す互換地図バージョンとが対応づけられて記憶されているタイル互換性テーブルに、前記タイル識別子及び前記グローバル地図バージョン識別子によって、アクセスすることと、
前記タイル互換性テーブルから、前記要求に含まれる前記グローバル地図バージョン識別子の地図データと互換性がある前記タイル識別子のタイルのタイルバージョン識別子である互換タイル識別子を受け取ることと、
前記タイル互換性テーブルから、前記要求に含まれる前記グローバル地図バージョン識別子の地図データと互換性がある、前記タイル識別子に対応づけられた地図データのグローバル地図バージョン識別子の範囲を示す互換地図バージョンを示すデータを受け取ることと、
タイル識別子とタイルの地図データが対応づけられて記憶されているデータベースに、前記互換タイル識別子によって、アクセスするステップと、
前記データベースから、前記互換タイル識別子のタイルである互換タイルの地図データを受け取るステップと、
前記地図データを求める要求に応答して、前記互換タイルの地図データ及び互換地図バージョンを送ることと、
を少なくとも実行させる、
ことを特徴とする装置。
【請求項１０】
コンピュータにより実行される方法であって、
タイル識別子によるインデックスを付けられたタイルの地図データを求める要求であって、タイル識別子及びグローバル地図バージョン識別子を含む要求を受け取るステップと、
タイル識別子の各々について、グローバル地図バージョン識別子によるインデックスを付けられた前記タイルの複数のタイルバージョン識別子と、該複数のタイルバージョン識別子の各々のタイルと互換性のある地図データのグローバル地図バージョン識別子の範囲とが対応づけられて記憶されているタイル互換性テーブルに、前記タイル識別子及び前記グローバル地図バージョン識別子によって、アクセスするステップと、
前記タイル互換性テーブルから、前記要求に含まれる前記グローバル地図バージョン識別子の地図データと互換性のある、前記タイル識別子に対応づけられた地図データのグローバル地図バージョン識別子の範囲を受け取るステップと、
タイル識別子とローカルバージョンが対応づけて記憶されているメモリに、前記要求に含まれるタイル識別子によって、アクセスするステップと、
前記メモリから、前記要求に含まれるタイル識別子のローカルバージョンを受け取るステップと、
前記互換性のあるグローバル地図バージョン識別子の範囲を前記ローカルバージョンと比較するステップと、
前記比較に基づいて、要求された前記地図データを提供するステップと、
を含むことを特徴とする方法。
【請求項１１】
前記比較に基づいて、要求された前記地図データを提供するステップは、前記比較によって前記タイルの前記ローカルバージョンが前記互換性のあるグローバル地図バージョン識別子の範囲内にあることが示された時に、出発地から目的地までのルートを生成するステップを含む、
請求項１０に記載の方法。
【請求項１２】
前記比較によって前記タイルの前記ローカルバージョンが前記互換性のあるグローバル地図バージョン識別子の範囲外にあることが示された時に、地図更新要求を生成するステップをさらに含む、
請求項１１に記載の方法。
【請求項１３】
前記比較に基づいて、前記要求された前記地図データを提供するステップは、前記比較によって前記タイルの前記ローカルバージョンが前記互換性のあるグローバル地図バージョン識別子の範囲内にあることが示された時に、地図更新オプションを拒否するステップを含む、請求項１０に記載の方法。
【請求項１４】
前記互換性のあるグローバル地図バージョン識別子の範囲は、時間順で最小のグローバル地図バージョン識別子及び時間順で最大のグローバル地図バージョン識別子を含む、
請求項１０に記載の方法。
【請求項１５】
少なくとも１つのプロセッサと、
１又は２以上のプログラムのためのコンピュータプログラムコードを含む少なくとも１つのメモリと、
を備えた装置であって、前記少なくとも１つのメモリ及び前記コンピュータプログラムコードは、前記少なくとも１つのプロセッサと共に、前記装置に、
タイル識別子によるインデックスを付けられたタイルの地図データを求める要求であって、タイル識別子及びグローバル地図バージョン識別子を含む要求を受け取ることと、
単一の付番スキームによってラベル付けされたタイルの複数のタイルバージョン識別子と、該複数のタイルバージョン識別子の各々のタイルと互換性のある地図データのグローバル地図バージョン識別子の範囲とが対応づけられて記憶されているタイル互換性テーブルに、前記タイル識別子及び前記グローバル地図バージョン識別子によって、アクセスすることと、
前記タイル互換性テーブルから、前記要求に含まれる前記グローバル地図バージョン識別子の地図データと互換性のある、前記タイル識別子に対応づけられたグローバル地図バージョン識別子の範囲を受け取ることと、
タイル識別子とローカルバージョンが対応づけて記憶されているメモリに、前記要求に含まれるタイル識別子によって、アクセスすることと、
前記メモリから、前記要求に含まれるタイル識別子のローカルバージョンを受け取ることと、
前記互換性のあるグローバル地図バージョン識別子の範囲を前記ローカルバージョンと比較することと、
を少なくとも実行させる、
ことを特徴とする装置。
【請求項１６】
前記少なくとも１つのメモリ及びコンピュータプログラムコードは、前記少なくとも１つのプロセッサと共に、前記装置に、前記比較に基づいてルートを計算することを少なくとも実行させる、
請求項１５に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
以下の開示は、バージョン管理に関し、具体的には、増分的に編集された地図データ又は地理データベースの増分更新のためのバージョン管理に関する。
【背景技術】
【０００２】
例えば、目的地又は関心地点までのルート識別などの有用な機能をユーザに提供するコンピュータベースのシステムでは、地図データ又は地理データが使用される。ナビゲーションシステムは、エンドユーザが出発地から目的地に移動するために取るべき最適ルートを、地図データベースに記憶された地図データから決定する。同様に、ナビゲーションシステムは、近くの関心地点について地図データに問い合わせることもできる。
【０００３】
地図データは、最初に編集された後に、通常は個々の顧客が実際に必要なデータにアクセスできるようにデータを分割したデータサービスの形で顧客に配布される。
【０００４】
新たな道路が建設されたり、他の道路が閉鎖されたり、又は企業の場所が変更されたりすると、地理データは変化する。このデータの編集に関しては、少なくとも２つの方法が考えられる。１つの方法は、全ての地図データを再編集し、既存の地図全体を新しい更新された地図データを含む新たなバージョンに置き換えることである。別の方法は、地図データのいくつかの部分のみを増分的に更新する増分編集を行うことである。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
両方法が可能ではあるが、編集について考慮すべき重要な点は、異なるクライアントにおいて、自分が使用している地図データのバージョンを更新できないことがあり、既に使用している地図バージョンに対応する追加タイルを正確にアップロードする必要があるので、通常、地図データサービスは複数バージョンのデータを公開する必要があるという点である。実際には、全てのタイルが変化を含むとは限らないので、増分編集では、タイルを記憶する空間が相当量節約される。しかしながら、この方法では、異なるバージョンのタイル間で整合性を維持するという課題が生じる。
【課題を解決するための手段】
【０００６】
１つの実施形態では、タイル識別子に関連するタイルの地図データを求める要求が受け取られ、これに応答して、プロセッサが、このタイル識別子を用いてタイル互換性テーブルにアクセスする。タイル互換性テーブルは、単一の単調に増加する地図バージョン番号によるインデックスを付けられたタイルの複数のタイルバージョン識別子を含む。タイル互換性テーブルからは、互換タイル識別子、及び互換地図バージョンを示すデータが受け取られる。地図データを求める要求に応答して、互換タイル及び互換地図バージョンが提供される。
【０００７】
１つの実施形態では、単一の単調に増加する地図バージョン番号が、初期値から開始して地図に割り当てられる。単一の単調に増加する地図バージョン番号は、地図のいずれかのタイル又はタイルセットの更新に応答して増分される。地図タイルには、この地図タイルが更新又は生成された時の地図の単一の単調に増加する地図バージョン番号に対応するバージョンが割り当てられる。タイル識別子に関連するタイルの地図データを求める要求が受け取られると、このタイル識別子を用いてタイル互換性テーブルにアクセスする。タイル互換性テーブルは、単一の単調に増加する地図バージョン識別子によるインデックスを付けられたタイルの複数のタイルバージョン識別子を含む。
【０００８】
本明細書では、以下の図面を参照しながら本発明の例示的な実施形態について説明する。
【図面の簡単な説明】
【０００９】
【図１】バージョン管理システムの例を示す図である。
【図２】バージョン化地図データ記憶装置を実装して使用する例を示す図である。
【図３】複数のレイヤを有する地図の例を示す図である。
【図４】複数のレイヤを有する地図の別の例を示す図である。
【図５Ａ】地図バージョンのシーケンス図の例を示す図である。
【図５Ｂ】図５Ａのシーケンス図からのバージョン互換性チャートの例を示す図である。
【図６Ａ】地図バージョンの一連の重なったシーケンス図を示す図である。
【図６Ｂ】図６Ａの重なったシーケンス図のチャートを示す図である。
【図７】地図バージョン管理システムのサーバ例を示す図である。
【図８】図７のサーバのフローチャート例を示す図である。
【図９】地図バージョン管理システム内のモバイル装置例を示す図である。
【図１０】図９のモバイル装置のフローチャート例を示す図である。
【発明を実施するための形態】
【００１０】
地理データベース又は一連の地図データは、データ又はデータの一部を大規模に置き換えることによって更新することができる。地図データは、要求に応じて増分的に更新することができる。地図ユーザ及びアプリケーション開発者は、特定の更新要求を行うことができる。或いは、地図の更新が定期的スケジュールで配信される。地図ユーザ及びアプリケーション開発者は、異なる更新シーケンスを選択することがあるので、地図開発者は別個のバージョンの地図データを維持する。
【００１１】
地図開発者によって地理データベースのバージョンが四半期毎にリリースされるシナリオについて検討する。エンティティによっては、できるだけ頻繁に地理データベースを更新し、地図開発者に四半期毎の更新を四半期毎に要求することがある。エンティティによっては、半年毎又は１年毎に更新を要求することもある。
【００１２】
また、地図ユーザ又はアプリケーション開発者は、地図の一部を更新して地図の他の部分を以前のバージョンのまま残すことを選択することもある。地図の一部が、使用に基づいて必要時に更新されることもある。地図の一部が、ネットワークの利用可能性によって可能な時に更新されることもある。
【００１３】
地図データは、タイルの形で編成することができる。空間地図データの増分編集では、異なるバージョンのタイルが互換性を有することも、又は有していないこともある。地図ユーザ及びアプリケーション開発者は、互いに互換性があってクライアント又はアプリケーションが既に有しているタイルとも互換性のあるいくつかの領域をカバーするタイルセットにアクセスできる必要がある。
【００１４】
以下の実施形態では、クライアントに配布する地図データタイルのバージョンを管理して、バージョン番号が異なるタイルの互換性を判断できるようにする技術を提供する。バージョン互換性テーブルが、地図内の個々のタイルの更新を追跡し、これらのタイルには、地図のグローバルインデックス（例えば、単一の単調に増加する地図バージョン番号）に関連して番号を付すことができる。グローバルインデックスは、１から現在の地図バージョンまで及び、上限がなく、無限とすることができる。１又は２以上のタイルが更新（トランザクション）されると、グローバル地図のバージョンが増分され、このバージョンがトランザクションに参加している全てのタイルに割り当てられる。バージョン互換性テーブルは、タイルに適用された更新を追跡する。地図ユーザ及びアプリケーション開発者は、このグローバル地図バージョンを用いて、地図の１つのタイルが地図の別のタイルとの互換性を有するかどうかを判定することができる。
【００１５】
また、このようなバージョニングスキーマは、地図ユーザ及びアプリケーション開発者が、どのタイル（地図領域）がバージョン間で変更されたかを判定できるようにもする。このバージョニングスキーマは、地図タイルをグローバルインデックス値に関連付けるデータ構造又はデータベース構造である。バージョニングスキーマは、各地図タイルに付属することができる。アプリケーションプログラミングインターフェイス（ＡＰＩ）又はその他のプログラムが地図タイルを要求すると、バージョニングスキーマを用いて地図タイルの互換性がチェックされる。
【００１６】
図１に、ナビゲーションデータベースを更新する地図開発者システム１２０の例を示す。システム１２０は、開発者システム１２１と、１又は２以上のモバイル装置１２２（ナビゲーション装置）と、ワークステーション１２８と、ネットワーク１２７とを含む。追加の、異なる、又はこれより少ないコンポーネントを提供することもできる。例えば、多くのモバイル装置１２２及び／又はワークステーション１２８は、ネットワーク１２７に接続する。開発者システム１２１は、サーバ１２５、及び１又は２以上のデータベースを含む。サーバ１２５は、複数の地図データベース１２３ａ、１２３ｂ、．．．、１２３ｎを維持することができる。データベース及び地図データベースという用語は、記憶媒体に記憶された一連のデータ又は地図データを意味し、データ又は地図データの関係編成に関する特定の要件を必ずしも反映しなくてもよい。本明細書で使用するサーバという用語は、複数のデータベース１２３ａ〜ｎの作成、維持及び更新を行うための、地図開発者におけるコンピュータ装置を含む。モバイル装置１２２の代わりにいずれかのコンピュータ装置を使用することもできる。これらのコンピュータ装置は、地図サービス又はナビゲーションサービスなどのウェブサイト又はウェブサービスのホストとすることができる。地図サービスは、データベース１２３ａ〜ｎの地理データから作成された地図を提供することができ、ナビゲーションサービスは、データベース１２３ａ〜ｎの地理データからルート又はその他の方向を計算することができる。
【００１７】
データベース１２３ａ〜ｎは、道路区分を含む地理データベースとすることができる。図１に示すように、開発者システム１２１では、データベース１２３ａのマスターコピーを記憶することができ、データベース１２３ｂ〜ｎは、別バージョン又は過去バージョンのデータベースを含むことができる。データベース１２３ａのマスターコピーは、データベースの最近又は最新のコピーとすることができる。また、モバイル装置１２２は、データベース１２４のローカルコピーを記憶することができる。１つの例では、データベース１２３ｂのローカルコピーが地理データベースの完全コピーであり、別の例では、データベース１２４のローカルコピーを地理データベースのキャッシュ部分又は一部とすることができる。
【００１８】
データベース１２４のローカルは、様々なバージョンのデータベース１２３ａ〜ｎからのデータを含むことができる。キャッシュ部分は、モバイル装置１２２の地理的位置、又はモバイル装置１２２において行われたユーザ選択に基づいて定めることができる。サーバ１２５は、モバイル装置１２２に地図の更新を送ることができる。
【００１９】
図２に、バージョン化地図データ記憶装置を実装して使用する例を示す。ここでは、地図編集器８１が、地図データベース１２３から定期的にデータを読み取って編集する。編集の結果、バージョン化地図記憶装置８３に記憶されている地図データが更新される。これにより、装置１２２ａ及び１２２ｂは、バージョンＶ１からＶ２に変更されていなければ実際に同じ物理タイルであったかもしれない、地図タイルの異なるバージョンに対して同じタイルを受け取ることができる。
【００２０】
図３に、地理データベース又はデータセットのための水平に間隔を空けたタイル又は水平レイヤ及び垂直レイヤを示す。図４には、水平レイヤ及び垂直レイヤを示す３次元チャート９０を示す。水平レイヤは、地図タイル１３１ａ〜ｄのための水平レイヤによって示すように異なる地理的領域に対応し、地図データの空間分割を表すことができる。垂直レイヤは、様々なタイプのデータに対応することができる。１又は２以上の水平レイヤ及び１又は２以上の垂直レイヤを組み合わせて地図を形成することができる。１つのレイヤ例は、道路区分に対応する。別のレイヤ例は、建物に対応する。別のレイヤ例は、丘、山、川又は湖などの地形的特徴に対応する。別のレイヤ例は、関心地点に対応する。別のレイヤ例は、交通又は天候などのライブデータに対応する。図３には、道路区分のための垂直レイヤを有する地図タイル１３１ａ〜ｃと、道路区分及び建物１３２のための垂直レイヤを有する地図タイル１３１ｄとを示している。
【００２１】
別のシナリオでは、ナビゲート可能な特徴、地図的特徴、視覚的特徴及び関心地点に従って水平レイヤを分割することができる。関心地点は、データベース内のテーブルに記憶された企業名を含むことができる。同様に、関心地点データは、データベース内のテーブルに記憶された企業名に関連する住所を含むこともできる。住所に関連する企業名は、企業名に関連する関心地点を地図内のどこで特定すべきかを示す地理的座標を含むこともできる。関心地点データは、ホテル、レストラン、ガソリンスタンド、店舗、ショッピングセンター、ランドマーク、地勢（例えば、峡谷又は山）、又はこれらの他の組み合わせなどの、ユーザにとって特に関心のあるランドマーク名を含むこともできる。また、関心地点データは、企業名ではなくカテゴリ毎に記憶することもできる。視覚特徴は、地図の他の要素を描画するために使用されるグラフィックス及びインジケータを含む。
【００２２】
視覚特徴は、要素、領域、レイヤ、特徴、テキスト及び／又は記号を含む。これらの特徴は、幾何学的特徴及び非幾何学的特徴として編成することができる。幾何学的特徴は、１又は２以上の座標（例えば、経度及び緯度）に従って地図上に表示される。非幾何学的特徴は、特色（例えば、制限速度、色、営業時間、進路変更規制など）を示す。
【００２３】
ナビゲート可能な特徴は、データベース内の道路区分又は他の物体の位置を含むことができる。ナビゲート可能な特徴は、位置選択、ルート計算又はルート案内に寄与する。各道路区分は、２つのノードに関連付けられる（例えば、一方のノードは、道路区分の一端における点を表し、他方のノードは、道路区分の他端における点を表す）。道路区分のいずれかの端部におけるノードは、道路が別の道路と交わる位置、すなわち交差点、或いは道路が行き止まりになる位置に対応することができる。
【００２４】
地図的特徴は、土地利用、地勢、鉄道、行政／政治機関、又は他の境界に関連するデータ構造である。地図的特徴又は特性は、川、山脈、湖、都市の境界、州の境界、又は地図上に示される道路網及び関心地点以外の他のいずれかのデータを含むことができる。
【００２５】
地図ユーザ又は開発者は、１又は２以上の垂直レイヤにわたる水平レイヤによって定められる地図タイル又は地図タイルセットを要求することができる。水平レイヤは、地理的境界を用いて、或いは地理的境界又は地理的領域に対応する地図タイル識別子を用いて要求することができる。垂直レイヤは、垂直レイヤコード又は対応するデータタイプに基づいて要求することができる。全ての地図タイルは、複数バージョンの状態で存在することができる。
【００２６】
地理データベース１２３ａ〜ｎ又はデータセットには、バージョン識別子によるインデックスを付けることができる。バージョン識別子は、地図の状態を反映する。バージョン識別子は、グローバルインデックスとすることができる。すなわち、地理データベース、及びこの地理データベースを構成する地図タイルは、同じバージョン識別子を用いて記述される。グローバルインデックスは、水平レイヤ及び垂直レイヤ全体を通じて一致することができる。
【００２７】
図５Ａに、地理データベースのためのグローバルインデックスを示す。この例では、グローバルインデックスが、バージョン１（Ｖ１）からバージョン５６（Ｖ５６）にまで及ぶ。グローバルインデックスは、更新トランザクションが成功する度に増分される。例えば、サーバ１２５は、単一の単調に増加する地図バージョン番号を初期値（例えば、Ｖ０又はＶ１）から開始して地図に割り当てる。サーバ１２５は、地図のいずれかのタイル又はタイルセットの更新に応答して地図バージョン番号を増分し、その地図タイルが更新又は作成された時の地図の単一の単調に増加する地図バージョン番号に対応するバージョンを地図タイルに割り当てる。
【００２８】
また、グローバルインデックスと共に、特定の地図タイルのバージョン履歴１３５も示している。この特定の地図タイルは、地理データベースのバージョン１２、２４、２７、３５、４２、４８及び５６において更新されたものである。換言すれば、地図タイルの最初のバージョンはＶ１であり、２番目のバージョンはＶ１２であり、３番目のバージョンはＶ２４であり、以下同様である。従って、この地図タイルのＶ１は、バージョン識別子がＶ１〜Ｖ１１の地図データと互換性がある。同様に、この地図タイルのＶ２７は、バージョン識別子がＶ２７〜Ｖ３４の地図データと互換性がある。
【００２９】
図５Ａには、地図データを求める要求も示している。グローバルインデックスのバージョン５と互換性のある地図タイルを求める要求はＲ５として示される。バージョン１５、３２及び５０における地図タイルを求める同様の要求は、それぞれＲ１５、Ｒ３２及びＲ５０として示される。Ｖ１は、Ｖ１〜Ｖ１１で有効であるため、要求Ｒ５に対しては地図タイルのＶ１が戻される。Ｖ１２は、Ｖ１２〜Ｖ２３で有効であるため、要求Ｒ１５に対しては地図タイルのＶ１２が戻される。Ｖ２７は、Ｖ２７〜Ｖ３４で有効であるため、要求Ｒ３２に対しては地図タイルのＶ２７が戻される。Ｖ４８は、Ｖ４８〜Ｖ５５で有効であるため、要求Ｒ５０に対しては地図タイルのＶ４８が戻される。
【００３０】
図５Ｂには、図５Ａのシーケンス図からのバージョン互換性テーブル１３９の例を示す。上記の例を続けると、バージョン互換性テーブル１３９は、上記の地図タイルについてグローバルインデックスＶ５の地図タイルデータが要求された場合、地図タイルレイヤバージョンは、地図タイルの最新の旧バージョンを示すＶ１であることを示している。バージョン互換性テーブル１３９は、この地図タイルについてグローバルインデックスＶ５の地図タイルデータが要求された場合、互換性のあるタイルレイヤバージョンは、同じバージョンの地図タイルがＶ１１までのバージョンに対応できることを示すＶ１１であることを示している。バージョン互換性テーブル１３９は、要求内にリストされているバージョンよりも前の時間順で最小のバージョン識別子から、要求内にリストされているバージョンよりも後の時間順で最大のバージョン識別子までの範囲も示す。サーバ１２５は、バージョン互換性テーブル１３９を構築し、地図関連要求に基づいてバージョン互換性テーブル１３９にアクセスするように構成される。
【００３１】
１つの実施形態では、サーバ１２５が、特定のグローバル地図バージョンの１又は２以上のレイヤからのタイルセットについてバージョン互換性テーブル１３９に問い合わせを行う。サーバ１２５は、モバイル装置１２２又はワークステーション１２８のユーザから地図データを求める要求を受け取ることができる。この要求には、地理的領域に基づいて選択された１又は２以上のタイル識別子をリストすることができる。タイル識別子は、英数字コードとすることができる。タイル識別子は、地理的座標を含むことができる。
【００３２】
要求は、地図作製アプリケーションの一部として生成することができる。例えば、ワークステーション１２８又はモバイル装置１２２は、ユーザに地図を提示するウェブサイト又は別のタイプのアプリケーションを提示することができる。ユーザが、地図を異なる地理的位置にスクロールすると、その地理的位置に関連する地図タイルを求める要求が生成される。この要求は、ナビゲーションアプリケーションの一部として生成することもできる。モバイル装置１２２がある地理的領域内を移動すると、その地理的位置に関連する地図タイルを求める要求が生成される。
【００３３】
要求は、バージョン番号を含むことができる。このバージョン番号は、地図作製アプリケーション又はナビゲーションアプリケーション内の他の地図タイルに基づくことができる。例えば、ワークステーション１２８又はモバイル装置１２２は、地理データベース１２４のローカルな地図バージョンを識別することができる。別の例では、要求のタイルに隣接するタイルのバージョン番号が調べられる。隣接するタイルは、全て同じバージョン番号の場合もある。他の例では、隣接するタイルが異なるバージョン番号を有することもある。モード又は最も一般的なバージョン番号を要求のために選択することができる。別の例では、最新の地図バージョンを使用することができる。
【００３４】
地図データを求める要求は、垂直レイヤコードを含むことができる。垂直レイヤコードは、様々な技術を用いて定めることができる。１つの技術例では、道路及び他の通路にコードＡを割り当て、建物及び他の構造面積にコードＢを割り当て、関心地点及び他の企業名にコードＣを割り当てることができる。垂直レイヤコードは、複数の垂直レイヤを参照することができる。
【００３５】
サーバ１２５は、要求を受け取ったことに応答して、タイル識別子を用いてタイル互換性テーブル１３９にアクセスすることができる。タイル互換性テーブル１３９は、グローバル地図バージョン識別子によるインデックスを付けられた地図タイルのタイルバージョン識別子を含む。タイル互換性テーブル１３９は、サーバ１２５に互換タイル識別子を戻すことができる。互換タイル識別子は、要求されたバージョン番号と互換性がある現在のタイルのバージョンとすることができる。
【００３６】
タイル互換性テーブル１３９は、地図データを求める要求内のバージョンと互換性がある地図バージョンの範囲を示すデータを戻すことができる。この互換地図バージョンの範囲は、時間順で最小のバージョン識別子及び時間順で最大のバージョン識別子を含むことができる。
【００３７】
サーバ１２５は、地図データを求める要求に応答して、互換タイル及び互換地図バージョンをモバイル装置１２２又はワークステーション１２８に送ることができる。互換タイル及び互換地図バージョンは、応答パッケージに含めることができる。
【００３８】
モバイル装置１２２又はワークステーション１２８は、応答パッケージを受け取った後に、地図作製アプリケーション又はナビゲーションアプリケーションを通じてデータを提供することができる。モバイル装置１２２又はワークステーション１２８は、地理データベース１２４内の地図タイルのローカルバージョン（キャッシュバージョン）を、要求内の互換地図バージョンの範囲と比較することができる。ローカルバージョンが、互換地図バージョンの範囲内にある場合、モバイル装置１２２又はワークステーション１２８は、地図作製アプリケーション又はナビゲーションアプリケーションにおいてデータを提供し続けることができる。
【００３９】
ローカルバージョンが、互換地図バージョンの範囲外にある場合、モバイル装置１２２又はワークステーション１２８は、地図作製アプリケーション又はナビゲーションアプリケーションにおいてデータ提供しなくてもよい。ネットワーク１２７が利用可能であれば、最新の地図タイルをダウンロードすることができる。しかしながら、モバイル装置１２２が範囲外であったり、又はその他の理由によってネットワーク１２７が利用できない場合には、最新の地図タイルをダウンロードすることができない。１つの例では、データの欠落によってアプリケーションを利用できない旨を示すメッセージがユーザに表示される。１つの例では、ネットワーク１２７が利用可能になるまでアプリケーションが一時停止することができる。１つの例では、非互換データを用いて続行するが、エラーが生じる可能性があることを警告する選択肢を提供するメッセージが表示される。
【００４０】
別の実施形態では、エンドポイント（例えば、モバイル装置１２２又はワークステーション１２８）が、タイル互換性テーブル１３９に直接アクセスする。エンドポイントは、タイル互換性テーブル１３９を記憶することができる。タイル互換性テーブル１３９は、事前にダウンロードしておくことができる。従って、エンドポイントは、地図作製アプリケーション又はナビゲーションアプリケーションから地図データを求める要求を受け取ると、この要求からのタイル識別子を用いてタイル互換性テーブル１３９にアクセスする。エンドポイントは、タイル互換性テーブル１３９に基づいて、タイルの現在のローカルバージョンが、要求されたバージョンとの互換性を有する（例えば、互換地図バージョンの範囲内に含まれている）と判断する。エンドポイントは、地図データを求める要求に応答して、互換タイル及び互換地図バージョンを地図作製アプリケーション又はナビゲーションアプリケーションに提供する。
【００４１】
モバイル装置１２２は、パーソナルナビゲーション装置（「ＰＮＤ」）、ポータブルナビゲーション装置スマートフォン、携帯電話機、携帯情報端末（「ＰＤＡ」）、自動車、タブレットコンピュータ、ノートブックコンピュータ、及び／又は他いずれかの既知の又は将来開発される接続装置又はパーソナルコンピュータとすることができる。ナビゲーション装置の非限定的な実施形態としては、リレーショナルデータベースサービス装置、携帯電話装置、又はカーナビゲーション装置を挙げることもできる。
【００４２】
開発者システム１２１、ワークステーション１２８及びモバイル装置１２２は、ネットワーク１２７に結合される。「〜に結合される」という表現は、直接接続されること、又は１又は２以上の介在コンポーネントを通じて間接的に接続されることを意味するように定められる。このような介在コンポーネントは、ハードウェア及び／又はソフトウェアベースのコンポーネントを含むことができる。
【００４３】
図６Ａに、地図バージョンの一連の重なったシーケンス図を示す。図のうちの１つは、第１の地図タイル１３５Ａに関連し、図のうちの１つは、第２の地図タイル１３５Ｂに関連する。セグメント１３ａ〜ｋは、地図タイル１３５Ａ、１３５Ｂ間の重なり部分を示す。例えば、セグメント１３ａは、Ｖ１〜Ｖ７では両タイルがＶ１を使用していることを示す。地図タイル１３５Ｂの地図タイルは、Ｖ８においてＶ８に更新されている。従って、セグメント１３ｂは、Ｖ８〜Ｖ１１では地図タイル１３５ＢのＶ８が地図タイル１３５ＡのＶ１と互換性があることを示す。同様に、セグメント１３ｃは、Ｖ１２〜Ｖ１４では地図タイル１３５ＢのＶ８が地図タイル１３５ＡのＶ１２と互換性があることを示す。同様に、セグメント１３ｄは、Ｖ１５〜Ｖ２３では地図タイル１３５ＢのＶ１５が地図タイル１３５ＡのＶ１２と互換性があることを示し、セグメント１３ｅは、Ｖ２４〜Ｖ２６では地図タイル１３５ＢのＶ１５が地図タイル１３５ＡのＶ２４と互換性があることを示し、セグメント１３ｆは、Ｖ２７〜Ｖ３４では地図タイル１３５ＢのＶ１５が地図タイル１３５ＡのＶ３８と互換性があることを示し、セグメント１３ｇは、Ｖ３５〜Ｖ３７では地図タイル１３５ＢのＶ１５が地図タイル１３５ＡのＶ３５と互換性があることを示し、セグメント１３ｈは、Ｖ３８〜Ｖ４１では地図タイル１３５ＢのＶ３８が地図タイル１３５ＡのＶ３５と互換性があることを示し、セグメント１３ｉは、Ｖ２７〜Ｖ３４では地図タイル１３５ＢのＶ３８が地図タイル１３５ＡのＶ４２と互換性があることを示し、図６Ａには他の関係も示している。
【００４４】
図６Ｂには、図６Ａの重なったシーケンス図のチャート１４０を示す。チャート１４０には、わずかな例が含まれている。チャート１４０は、第１のタイル１３５ＡのＶ１が第２のタイル１３５ＢのＶ８と互換性がある状況を表す重なり範囲Ｖ８〜Ｖ１１、第１のタイル１３５ＡのＶ１２が第２のタイル１３５ＢのＶ８と互換性がある状況を表す重なり範囲Ｖ１２〜Ｖ１４、第１のタイル１３５ＡのＶ１２が第２のタイル１３５ＢのＶ１５と互換性がある状況を表す重なり範囲Ｖ１５〜Ｖ２３、及び第１のタイル１３５ＡのＶ２４が第２のタイル１３５ＢのＶ１５と互換性がある状況を表す重なり範囲Ｖ２４〜Ｖ２６をリストする。
【００４５】
図７に、サーバ１２５の例を示す。サーバ１２５は、プロセッサ３００、通信インターフェイス３０５、及びメモリ３０１を含む。サーバ１２５は、データベース１２３及びワークステーション３１０に結合することができる。ワークステーション３１０を用いて、地図タイルの互換性、地図タイルの互換範囲、及び地図タイルに割り当てられるレイヤに関するデータを入力することができる。データベース１２３は、上述したようなレイヤ及びタイルによって分割されたバージョン化地図データを含むことができる。サーバ１２５には、追加の、異なる、又はこれより少ないコンポーネントを設けることもできる。図８に、サーバ１２５の動作フローチャート例を示す。追加の、異なる、又はこれより少ない動作を提供することもできる。
【００４６】
動作Ｓ１０１において、プロセッサ３００又は通信インターフェイス３０５が地図タイルを求める要求を受け取る。要求は、ＡＰＩから受け取ることができる。要求は、ウェブサイト上のユーザ入力から受け取ることもできる。例えば、ユーザは、ウェブサイト上で地図又はルーティングを要求することができる。要求は、モバイル装置から受け取ることもでき、モバイル装置の現在の地理的位置に基づくこともできる。要求は、タイル識別コード又は番号（ＩＤ）、レイヤ及びバージョン番号を含む。これらのデータの１つ又は２つ以上は、バージョニングスキーマの対応するフィールドに含めることができる。タイルＩＤは、地図タイルの地理的領域を定める。地図タイルは、地図表示をスクロールすることに基づいて選択することができる。地図タイルは、出発地から目的地までのルートに基づいて選択することもできる。要求は、ルートからの複数の地図タイル、又はルートの地図タイル全てをリストすることができる。地図タイルを求める要求は、地図タイルのタイル識別子と、１又は２以上の隣接するタイルの追加タイル識別子とを含むことができる。レイヤは、例えば道路トポロジー、道路形状及び道路沿いの関心地点リストなどの、要求者が関心を持っている種類の情報を定める。最期に、バージョンは、クライアントが作業時に使用している地図のバージョンを定める。
【００４７】
動作Ｓ１０３において、プロセッサ３００は、メモリ３０１又は別のメタデータ記憶媒体から提供される地図タイルの互換性ルックアップテーブルにアクセスする。互換性ルックアップテーブルは、複数の地図タイルのバージョン履歴を定める。複数のタイルは、バージョン番号の単一のインデックスに基づいて定めることができる。
【００４８】
動作１０５において、プロセッサ３００又は通信インターフェイス３０５は、タイル互換性テーブルから互換地図バージョンの範囲を受け取る。従って、プロセッサ３００は、受け取ったタイル識別子又はバージョン番号に基づいて、要求内に記載されている地図タイルと互換性のあるバージョン番号の範囲を識別する。通信インターフェイス３０５は、このバージョン番号の範囲を要求者に送ることができる。
【００４９】
動作１０７において、プロセッサ３００は、互換性のあるバージョン番号の範囲に基づいて、地図タイルを含む地理データを提供する。別の例では、キャッシュされているタイルが互換地図バージョン番号の範囲外にある場合、プロセッサ３００が置換用地図タイルを提供することができる。プロセッサ３００は、キャッシュされているタイルが互換地図バージョン番号の範囲外にある場合、地図の更新が必要である旨の通知を要求者に送ることができる。
【００５０】
地理データベース１２３ａ〜ｎは、１又は２以上の地図開発者（例えば、第１の会社及び／又は第２の会社）が維持できる編集された地図データを含む。地図開発者は、地理データを収集してデータベースの生成及び強化を行う。地図開発者は、データを収集するために異なる方法を使用する。これらの方法は、自治体又はそれぞれの地理的機関などの他の情報源からデータを取得することを含む。また、地図開発者は、現地職員（例えば、第１の会社及び／又は第２の会社における従業員）を雇用し、地理的領域全体を通じて道路沿いを車両で移動して地物の観察及び／又は地物に関する情報の記録を行うこともできる。また、例えば、空中写真又は人工衛星写真などのリモートセンシングを用いることもできる。
【００５１】
データストアは、ナビゲーション装置がルート計算、ルート案内、地図表示、速度計算、距離及び移動時間機能、並びにその他の機能などのナビゲーション関連機能及び／又はサービスを実行するためのデータを編成又は構成するように編集された地理データを含む。ナビゲーション関連機能は、車両ナビゲーション、歩行者ナビゲーション、又はその他のタイプのナビゲーションに対応することができる。
【００５２】
図９に、図１のシステムの例示的なモバイル装置１２２を示す。モバイル装置１２２は、プロセッサ２００、メモリ２０４、入力装置２０３、通信インターフェイス２０５、位置回路２０７、及びディスプレイ２１１を含む。モバイル装置１２２には、追加の、異なる、又はこれより少ないコンポーネントも考えられる。図１０には、モバイル装置１２２の動作フローチャート例を示す。追加の、異なる、又はこれより少ない動作を使用することもできる。
【００５３】
モバイル装置１２２（又はナビゲーション装置１２２）は、地理的領域内の出発地点から目的地点まで道路ネットワークに沿って移動する最適ルートを決定するためのルーティングアルゴリズムを実行するように構成される。ナビゲーション装置１２２は、エンドユーザからの入力を用いて出発地点と目的地点との間の潜在的ルートを調べて最適ルートを決定する。次に、ナビゲーション装置１２２は、エンドユーザが出発地点から目的地点まで移動するために行う必要がある操作を特定する助言の形で、最適ルートに関する情報をエンドユーザに提供することができる。ナビゲーション装置１２２によっては、ルート、ルート沿いの様々な場所で行うべき操作の種類、特定のタイプの特徴の位置などを概略的に示す詳細地図をディスプレイに提示するものもある。
【００５４】
動作Ｓ２０１において、プロセッサ２００が地図タイルを識別する。地図タイルは、位置回路２０７から受け取った位置データに基づいて識別することができる。地図タイルは、入力装置１２３からのユーザ入力に基づいて識別することもできる。例えば、ユーザ入力によって特定の地理的領域の地図又は地図の１つの領域から地図の別の領域へのスクロールを要求することができる。ユーザ入力によって１つの位置から別の位置までのルーティングを要求することができ、プロセッサ２００は、ルートを構成する地図タイルを選択する。
【００５５】
動作Ｓ２０３において、プロセッサ２００は、動作Ｓ２０１において受け取った地図タイルのローカルバージョニング情報を含む互換性テーブルにアクセスする。ローカルタイルバージョニング情報は、サーバ１２５からダウンロードすることができ、現在キャッシュ内で利用できる地図タイル、及びバージョン互換性の範囲を含むことができる。すなわち、地図タイルは、マスタバージョン履歴付番スキーマ上のインデックスとすることができ、互換性テーブルは、この付番スキーマ上の複数の地図タイルの互換バージョン番号をリストする。
【００５６】
動作Ｓ２０５において、プロセッサ２００は、互換性テーブルからの互換地図バージョンの範囲を、キャッシュされているバージョンと比較する。例えば、プロセッサ２００は、メモリ２０４から提供される地図タイルのキャッシュコピーにアクセスし、マスタバージョン履歴付番スキーマ上のキャッシュコピーのバージョン番号を読み出すことができる。プロセッサは、キャッシュコピーのバージョン番号が、互換性テーブルから受け取った互換地図バージョンの範囲内にあるかどうかを判定する。
【００５７】
プロセッサ２００は、必要なタイルがキャッシュ内に存在し、周囲のタイルと互換性があるかどうかをチェックする。動作Ｓ２０７において、プロセッサ２００は、互換地図バージョンの範囲に基づいて、地図タイルを含む地理データを提供する。例えば、キャッシュされている地図タイルのバージョンが範囲内にある場合、プロセッサ２００は、キャッシュされている地図タイルを用いて地理データを提供する。地理データは、ディスプレイ２１１上に提示される地図又はルートとすることができる。キャッシュされている地図タイルのバージョンが範囲外にある場合、プロセッサ２００は、サーバ１２５に更新を要求することができる。
【００５８】
サーバ１２５がネットワーク接続を利用できる場合、最新の地図タイルを直ちにダウンロードして、ディスプレイ２１１上に提示される地図又はルートに組み込むことができる。一方、ネットワーク接続が利用不能又は制限されている場合、プロセッサ２００は、ディスプレイ２１１上にエラーメッセージを提供することができる。このエラーメッセージは、非互換地図データが存在して地理データを提示できない旨を示すことができる。或いは、このエラーメッセージは、地理データを提供する前にネットワーク接続を取得するようにユーザに通知することもできる。別の例では、エラーメッセージが、非互換地図タイルを使用する選択肢を提供して、そのリスクを説明することができる。
【００５９】
１つの例では、ネットワーク接続を利用できない場合、プロセッサ２００は、キャッシュされているタイルと隣接するタイルとの間の互換性に基づいてルートを選択することができる。互換性テーブルが、キャッシュされている地図タイルを利用できない旨を示す場合、プロセッサ２００は、目的地までの別ルートを選択する。プロセッサ２００は、別ルートからの１又は２以上の地図タイルを識別し、これに応じて互換性テーブルに問い合わせることができる。プロセッサ２００は、キャッシュ内に互換地図タイルを有する目的地への別ルートが識別されるまでこの処理を繰り返すことができる。
【００６０】
ナビゲーション装置１２２は、ローカルな地図データに対して更新スクリプト又は他のタイプのナビゲーションパッチを実行するようにも構成される。ナビゲーション装置１２２は、ネットワーク１２７を介してサーバ１２５から更新スクリプトを受け取る。プロセッサ２００は、入力装置２０３において入力されたユーザコマンドに応答して更新を要求し、又は定期的な更新を受け取ることができる。１つの例では、プロセッサ２００が、地図更新をいつ要求すべきかを地図互換性テーブルに基づいて決定することができる。例えば、プロセッサ２００は、地図更新が利用可能になった時又はスケジュールに基づいて地図更新を受け取るのではなく、他の地図タイルがキャッシュ内に存在する時に、モバイル装置１２２上で実行中の地図アプリケーション又はナビゲーションアプリケーションが互換性のない地図タイルを識別したことが地図互換性テーブルによって明らかになるまで地図更新の提案を拒否することができる。従って、モバイル装置１２２は、必要になるまで地図更新を避けることができる。更新スクリプトは、サーバ１２５又はナビゲーション装置１２２に結合されたコンピュータ可読媒体に記憶することができる。
【００６１】
測位回路２０７は、全地球測位システム（ＧＰＳ）、全地球航法衛星システム（ＧＬＯＮＡＳＳ）、或いは位置データを提供するセルラ又は同様の位置センサを含むことができる。測位システムは、ＧＰＳ型技術、推測航法型システム、セルラ位置、或いはこれらの又はその他のシステムの組み合わせを利用することができる。測位回路２０７は、モバイル装置１２２の移動距離、速度、方向などを測定する好適な検知装置を含むことができる。測位システムは、ＧＰＳ信号を取得するための受信機及び相関チップを含むこともできる。これとは別に、又はこれに加えて、１又は２以上の検出器又はセンサは、モバイル装置１２２又はその内部に内蔵又は組み込まれた加速度計を含むこともできる。加速度計は、モバイル装置１２２の並進及び／又は回転運動の変化率を検出、認識又は測定することができる。モバイル装置１２２は、測位システムから位置データを受け取る。位置データは、モバイル装置１２２の位置を示す。
【００６２】
入力装置２０３は、１又は２以上のボタン、キーパッド、キーボード、マウス、スタイラスペン、トラックボール、ロッカースイッチ、タッチパッド、音声認識回路、或いはモバイル装置１００にデータを入力するための他の装置又はコンポーネントとすることができる。入力装置２０３とディスプレイ２１１は、静電容量式又は抵抗式とすることができるタッチ画面として組み合わせることができる。ディスプレイ２１１は、液晶ディスプレイ（ＬＣＤ）パネル、発行ダイオード（ＬＥＤ）画面、薄膜トランジスタ画面、又は別のタイプのディスプレイとすることができる。
【００６３】
コントローラ２００及び／又はプロセッサ３００は、汎用プロセッサ、デジタルシグナルプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、アナログ回路、デジタル回路、これらの組み合わせ、或いは現在知られている又は将来開発される他のプロセッサを含むことができる。コントローラ２００及び／又はプロセッサ３００は、単一の装置とすることも、或いはネットワーク、分散処理又はクラウドコンピューティングなどに関連する装置の組み合わせとすることもできる。
【００６４】
メモリ２０４及び／又はメモリ３０１は、揮発性メモリ又は不揮発性メモリとすることができる。メモリ２０４及び／又はメモリ３０１は、リードオンリメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、フラッシュメモリ、電気的消去可能なプログラムリードオンリメモリ（ＥＥＰＲＯＭ）、又は他のタイプのメモリのうちの１つ又は２つ以上を含むことができる。メモリ２０４及び／又はメモリ３０１は、セキュアデジタル（ＳＤ）メモリカードなどの、モバイル装置１２２から取り外せるものとすることもできる。
【００６５】
通信インターフェイス２０５及び／又は通信インターフェイス３０５は、いずれかの動作可能な接続を含むことができる。動作可能な接続は、信号、物理的通信及び／又は論理的通信の送信及び／又は受信を行えるものとすることができる。動作可能な接続は、物理インターフェイス、電気インターフェイス、及び／又はデータインターフェイスを含むことができる。通信インターフェイス２０５及び／又は通信インターフェイス３０５は、いずれかの現在知られている又は将来開発されるフォーマットでの無線及び／又は有線通信を提供する。
【００６６】
ネットワーク１２７は、有線ネットワーク、無線ネットワーク、又はこれらの組み合わせを含むことができる。無線ネットワークは、セルラ電話ネットワーク、８０２．１１、８０２．１６、８０２．２０、又はＷｉＭａｘネットワークとすることができる。さらに、ネットワーク１２７は、インターネットなどの公衆ネットワーク、イントラネットなどのプライベートネットワーク、又はこれらの組み合わせとすることができ、限定するわけではないがＴＣＰ／ＩＰベースのネットワーキングプロトコルを含む、現在利用可能な又は将来開発される様々なネットワーキングプロトコルを利用することができる。
【００６７】
「コンピュータ可読媒体」という用語は、集中データベース又は分散データベースなどの単一の媒体又は複数の媒体、及び／又は１又は２以上の命令セットを記憶する関連キャッシュ及びサーバを含む。「コンピュータ可読媒体」という用語は、プロセッサによって実行される命令セットを記憶し、符号化し、又は搬送することができる、或いは本明細書で開示した方法又は動作のうちのいずれか１つ又は２つ以上をコンピュータシステムに実行させるいずれかの媒体も含むものとする。
【００６８】
特定の非限定的な例示的実施形態では、コンピュータ可読媒体が、メモリカードなどの固体メモリ、或いは１又は２以上の不揮発性リードオンリメモリを収容する他のパッケージを含むことができる。さらに、コンピュータ可読媒体は、ランダムアクセスメモリ又はその他の揮発性書き換え可能メモリとすることもできる。また、コンピュータ可読媒体は、ディスク又はテープなどの磁気光媒体又は光媒体、或いは伝送媒体を介して通信される信号などの搬送波信号を取り込む他の記憶装置を含むこともできる。電子メールへのデジタルファイルの添付、或いは他の自己完結型情報アーカイブ又はアーカイブセットは、有形記憶媒体である配布媒体と見なすことができる。従って、本開示は、コンピュータ可読媒体又は配布媒体、並びにデータ又は命令を記憶できる他の同等物及び後継媒体のうちのいずれか１つ又は２つ以上を含むと見なされる。これらの例は、まとめて非一時的コンピュータ可読媒体と呼ぶことができる。
【００６９】
別の実施形態では、特定用途向け集積回路、プログラマブルロジックアレイ及びその他のハードウェア装置などの専用ハードウェア実装を、本明細書で説明した方法のうちの１つ又は２つ以上を実装するように構成することができる。様々な実施形態の装置及びシステムを含むことができる応用例は、様々な電子及びコンピュータシステムを広く含むことができる。本明細書で説明した１又は２以上の実施形態は、モジュール間で、及びモジュールを通じて関連制御及びデータ信号を通信できる２又は３以上の相互接続された特定のハードウェアモジュール又は装置を用いて、或いは特定用途向け集積回路の一部として機能を実装することができる。従って、本システムは、ソフトウェアの実装、ファームウェアの実装、及びハードウェアの実装を含む。
【００７０】
本開示の様々な実施形態によれば、本明細書で説明した方法は、コンピュータシステムによって実行可能なソフトウェアプログラムによって実装することができる。さらに、例示的な非限定的実施形態では、実装が、分散処理、コンポーネント／オブジェクト分散処理及び並列処理を含むことができる。或いは、仮想コンピュータシステム処理を、本明細書で説明した方法又は機能のうちの１つ又は２つ以上を実装するように構成することもできる。
【００７１】
本明細書では、特定の実施形態において実装できるコンポーネント及び機能について特定の規格及びプロトコルを参照して説明したが、本発明は、このような規格及びプロトコルに限定されるものではない。例えば、インターネット及びその他のパケット交換ネットワーク伝送（例えば、ＴＣＰ／ＩＰ、ＵＤＰ／ＩＰ、ＨＴＭＬ、ＨＴＴＰ、ＨＴＴＰＳ）のための規格は、最先端技術の例を表す。このような規格は、基本的に同じ機能を有するさらに高速又は効率的な同等物に定期的に取って代わられる。従って、本明細書で開示したものと同一又は同様の機能を有する代替規格及びプロトコルは、その同等物と見なされる。
【００７２】
（プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト又はコードとしても知られている）コンピュータプログラムは、編集型言語又はインタープリタ型言語を含むいずれかの形態のプログラミング言語で書くことができ、スタンドアロンプログラム、又はモジュール、コンポーネント、サブルーチン、或いはコンピュータ環境での使用に適した他のユニットとしての形態を含むいずれかの形態で展開することができる。コンピュータプログラムは、必ずしもファイルシステム内のファイルに対応する必要はない。プログラムは、他のプログラム又はデータ（例えば、マークアップ言語文書の形で記憶された１又は２以上のスクリプト）を保持するファイルの一部に記憶することも、対象とするプログラム専用の単一ファイルに記憶することも、又は複数の協調ファイル（例えば、１又は２以上のモジュール、サブプログラム又はコードの一部を記憶するファイル）に記憶することもできる。コンピュータプログラムは、１つのコンピュータ上で実行されるように展開することも、或いは１つの場所に位置する、又は複数のサイトにわたって分散され通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように展開することもできる。
【００７３】
本明細書で説明した処理及び論理フローは、入力データに作用して出力を生成することによって機能を実行する１又は２以上のコンピュータプログラムを実行する１又はそれ以上のプログラマブルプロセッサによって実行することができる。これらの処理及び論理フローは、ＦＰＧＡ（フィールドプログラマブルゲートアレイ）又はＡＳＩＣ（特定用途向け集積回路）などの専用論理回路によって実行することもでき、装置をこれらの専用論理回路として実装することもできる。
【００７４】
本出願で使用する「回路（ｃｉｒｃｕｉｔｒｙ又はｃｉｒｃｕｉｔ）」という用語は、（ａ）（アナログ及び／又はデジタル回路のみでの実装などの）ハードウェアのみによる回路実装、（ｂ）（適用可能な場合には）（ｉ）（単複の）プロセッサの組み合わせ、又は（ｉｉ）携帯電話機又はサーバなどの装置に様々な機能を実行させるように協働するデジタルシグナルプロセッサ、ソフトウェア及び（単複の）メモリを含む（単複の）プロセッサ／ソフトウェアの一部などの、回路とソフトウェア（及び／又はファームウェア）の組み合わせ、及び（ｃ）ソフトウェア又はファームウェアが物理的に存在していない場合でも動作にソフトウェア又はファームウェアを必要とする、（単複の）マイクロプロセッサ又は（単複の）マイクロプロセッサの一部などの回路、の全てを意味する。
【００７５】
この「回路」の定義は、あらゆる請求項を含め、本出願におけるこの用語の全ての使用に当てはまる。さらなる例として、本出願で使用する「回路」という用語は、（１又は複数の）プロセッサ又はプロセッサの一部のみと、その（又はそれらの）付属ソフトウェア及び／又はファームウェアとの実装も対象とする。「回路」という用語には、例えば特定のクレーム要素に適用可能な場合、携帯電話機のベースバンド集積回路又はアプリケーションプロセッサ集積回路、或いはサーバ、セルラーネットワーク装置又は別のネットワーク装置内の同様の集積回路も含まれる。
【００７６】
コンピュータプログラムの実行に適したプロセッサとしては、一例として、汎用及び専用の両方のマイクロプロセッサ、及びあらゆる種類のデジタルコンピュータのいずれか１つ又は２つ以上のプロセッサが挙げられる。一般に、プロセッサは、リードオンリメモリ又はランダムアクセスメモリ、或いはこれらの両方から命令及びデータを受け取る。コンピュータの必須要素は、命令を実行するプロセッサ、並びに命令及びデータを記憶する１又は２以上の記憶装置である。一般に、コンピュータは、磁気ディスク、光磁気ディスク又は光ディスクなどの、データを記憶するための１又は２以上の大容量記憶装置も含み、或いはこれらの大容量記憶装置からのデータの受け取り、これらの大容量記憶装置へのデータの転送、又はこれらの両方を行うように動作可能に結合される。しかしながら、コンピュータは、このような装置を有していなくてもよい。さらに、コンピュータは、ほんのわずかな例を挙げると、携帯電話機、携帯情報端末（ＰＤＡ）、モバイルオーディオプレーヤ、全地球測位システム（ＧＰＳ）受信機などの別の装置に組み込むこともできる。コンピュータプログラム命令及びデータを記憶するのに適したコンピュータ可読媒体としては、一例としてＥＰＲＯＭ、ＥＥＰＲＯＭ及びフラッシュメモリデバイスなどの半導体メモリデバイス、内蔵ハードディスク又は取り外し可能ディスクなどの磁気ディスク、磁気光学ディスク、並びにＣＤ  ＲＯＭ及びＤＶＤ−ＲＯＭディスクを含む、全ての形態の不揮発性メモリ、媒体及び記憶装置が挙げられる。プロセッサ及びメモリは、専用論理回路によって補完することも、或いは専用論理回路に組み込むこともできる。
【００７７】
本明細書で説明した主題の実施形態は、ユーザとのやりとりを可能にするために、ＣＲＴ（ブラウン管）、ＬＣＤ（液晶ディスプレイ）モニタなどの、ユーザに情報を表示するためのディスプレイと、ユーザがコンピュータに入力を提供できるようにするキーボード、及びマウス又はトラックボールなどのポインティングデバイスとを有する装置に実装することができる。他の種類の装置を用いてユーザとのやりとりを可能にすることもでき、例えば、ユーザに提供されるフィードバックは、視覚フィードバック、聴覚フィードバック又は触覚フィードバックなどのあらゆる形の感覚フィードバックとすることができ、ユーザからの入力は、音響入力、発話入力又は触覚入力を含むあらゆる形で受け取ることができる。
【００７８】
本明細書で説明した主題の実施形態は、例えばデータサーバとしてのバックエンドコンポーネントを含む、又はアプリケーションサーバなどのミドルウェアコンポーネントを含む、又はユーザが本明細書で説明した主題の実装とやりとりできるようにするグラフィカルユーザインターフェイス又はウェブブラウザを有するクライアントコンピュータなどのフロントエンドコンポーネントを含む、或いは１又は２以上のこのようなバックエンドコンポーネント、ミドルウェアコンポーネント又はフロントエンドコンポーネントのいずれかの組み合わせを含むコンピュータシステムに実装することができる。システムのコンポーネントは、通信ネットワークなどのいずれかの形又は媒体のデジタルデータ通信によって相互接続することができる。通信ネットワークの例としては、ローカルエリアネットワーク（「ＬＡＮ」）及びインターネットなどのワイドエリアネットワーク（「ＷＡＮ」）が挙げられる。
【００７９】
コンピュータシステムは、クライアント及びサーバを含むことができる。一般に、クライアントとサーバは互いに離れており、通常は通信ネットワークを介してやりとりする。このクライアントとサーバの関係は、それぞれのコンピュータ上で実行される、互いにクライアント−サーバの関係を有するコンピュータプログラムによって生じる。
【００８０】
本明細書で説明した実施形態の例示は、様々な実施形態の構造の一般的理解をもたらすことを意図したものである。この例示は、本明細書で説明した構造又は方法を利用する装置及びシステムの要素及び特徴を全て完全に表す役割を果たすことを意図したものではない。当業者には、本開示を見直した時に他の多くの実施形態が明らかになるであろう。本開示の範囲から逸脱することなく構造的かつ論理的な置換及び変更を行えるように、他の実施形態を利用することも、本開示からこれらの他の実施形態を導出することもできる。また、これらの例示は具象的なものにすぎず、縮尺通りでないこともある。例示内の比率は、誇張されているものもあれば、最小化されているものもある。従って、本開示及び図は、限定的なものではなく例示的なものと見なすべきである。
【００８１】
本明細書は多くの詳細を含むが、これらの詳細は、本発明又は特許請求できるものの範囲を限定するものとして解釈すべきではなく、むしろ本発明の特定の実施形態に固有の特徴の説明として解釈すべきである。本明細書において別個の実施形態の文脈で説明したいくつかの特徴は、単一の実施形態に組み合わせて実装することもできる。逆に、単一の実施形態の文脈で説明した様々な特徴を、複数の実施形態において別個に又はいずれかの好適な下位の組み合わせで実装することもできる。さらに、上記では特定の組み合わせで機能するように特徴を説明し、最初はこのように特許請求していることもあるが、場合によっては、特許請求する組み合わせから生じる１又は２以上の特徴をこれらの組み合わせから削除することもでき、特許請求する組み合わせが下位の組み合わせ又は下位の組み合わせの変形例を対象とすることもできる。
【００８２】
同様に、図面及び本明細書には動作を特定の順序で示し説明しているが、望ましい結果を達成するためにこのような動作を図示の特定の順序又は順番で実行し、又は図示の動作を全て実行する必要があると理解すべきではない。状況によっては、マルチタスク及び並行処理が有利な場合もある。さらに、上述した実施形態において様々なシステムコンポーネントを分離していても、このような分離が全ての実施形態において必要であると理解すべきではなく、説明したプログラムコンポーネント及びシステムを単一のソフトウェア製品に一般的に統合し、又は複数のソフトウェア製品にパッケージ化することもできると理解されたい。
【００８３】
本明細書では、本開示の１又は２以上の実施形態を「発明」という用語によって個別に及び／又は集合的に参照していることがあるが、これは便宜的なものにすぎず、本出願の範囲をいずれかの特定の発明又は発明概念に自主的に限定する意図はない。さらに、本明細書では特定の実施形態を図示し説明したが、図示の特定の実施形態の代わりに、同一又は同様の目的を達成するように設計されたあらゆるその後の構成を使用することもできると理解されたい。本開示は、様々な実施形態のありとあらゆるその後の適応又は変更も対象とするように意図されている。当業者には、本開示を見直した時に、上記の実施形態と、本明細書では具体的に説明していないその他の実施形態との組み合わせが明らかになるであろう。
【００８４】
本開示の要約書は、米国特許法施行規則第１．７２条（ｂ）に準拠するように提供し、特許請求の範囲又はその意味を解釈又は限定するために使用されるものではないという了解の下で提出するものである。また、上述の詳細な説明では、本開示を簡素化するために、様々な特徴を単一の実施形態にまとめ、又は単一の実施形態において説明していることがある。本開示は、請求項に記載する実施形態が、各請求項に明示的に記載する特徴よりも多くの特徴を必要とするという意図を反映したものであると解釈すべきではない。むしろ、以下の特許請求の範囲に反映されるように、発明主題は、開示した実施形態のいずれかの全ての特徴よりも少ないものを対象にすることができる。従って、以下の特許請求の範囲は、各請求項が単独で特許請求する主題を定めるものとして自立した状態で詳細な説明に組み込まれる。
【００８５】
上述の詳細な説明は、限定的なものではなく例示的なものと見すべきであり、全ての同等物を含む以下の特許請求の範囲が本発明の範囲を定義するものであると理解されたい。特許請求の範囲は、その効果を記載していない限り、説明した順序又は要素に限定されるものとして読み取るべきではない。従って、以下の特許請求の範囲及び思想に含まれる全ての実施形態及びその同等物を発明として特許請求する。
【図１】
0006749113.tif 000002
【図２】
0006749113.tif 000003
【図３】
0006749113.tif 000004
【図４】
0006749113.tif 000005
【図５Ａ】
0006749113.tif 000006
【図５Ｂ】
0006749113.tif 000007
【図６Ａ】
0006749113.tif 000008
【図６Ｂ】
0006749113.tif 000009
【図７】
0006749113.tif 000010
【図８】
0006749113.tif 000011
【図９】
0006749113.tif 000012
【図１０】
0006749113.tif 000013