(57)【特許請求の範囲】
【請求項１】
少なくとも一つのデータファイルを含むナビゲーションデータベースにおいてデータを編成し、アプリケーションソフトウェアに対して該データを構文解析する方法であって、該方法は、プロセッサによって実行され、
該方法は、
該プロセッサが、該少なくとも一つのデータファイルにデータを格納するステップと、
該プロセッサが、該ナビゲーションデータベースの該少なくとも一つのデータファイルのヘッダ内にフォーマット記述テーブルを生成することによって、該ナビゲーションデータベースの該少なくとも一つのデータファイルについて少なくとも一つのフォーマット記述をインプリメントするステップであって、該フォーマット記述テーブルは、バイトコードであり、該フォーマット記述は、該ナビゲーションデータベースの該少なくとも一つのデータファイルのフォーマットに関する情報を表し、該フォーマット記述は、該ナビゲーションデータベースに格納される該少なくとも一つのデータファイルのフォーマットのデータコンテンツをバイナリフォーマットまたはテキストフォーマットのデータコンテンツに変換することに関する情報を表し、該少なくとも一つのデータファイルの該フォーマットに関する該情報は、該少なくとも一つのデータファイルにおいて用いられる複数の異なるデータタイプの要素からなるレコードのタイプとして、該フォーマット記述テーブルにおいて表される、ステップと、
該プロセッサが、該フォーマット記述における該情報に従って該少なくとも一つのデータファイルに格納されたデータを解釈し、アプリケーションソフトウェアに対して該データを構文解析する構文解析系を該ナビゲーションデータベースにおいてインプリメントするステップと
を包含する、方法。
【請求項２】
前記フォーマット記述テーブルは、複数の行を含み、該複数の行の各々は、同じ数のデータ要素と、前記構文解析系のための少なくとも一つの命令とを含み、該構文解析系は、前記少なくとも一つのデータファイルに格納されたデータを該少なくとも一つの命令に基づいて解釈する、請求項１に記載の方法。
【請求項３】
前記構文解析系は、前記フォーマット記述テーブルにおける現在の命令を指し示す少なくとも一つの記述位置レジスタを含み、該フォーマット記述テーブルは、読み出されるべきデータのフォーマット、および／または、読み出されたデータの該少なくとも一つの記述位置レジスタへの転送、および／または、該読み出されたデータの意味に関する情報を含む、請求項１または２に記載の方法。
【請求項４】
前記フォーマット記述テーブルは、前記構文解析系のための命令と、構文ＩＤと、意味ＩＤとを各行に含む、請求項３に記載の方法。
【請求項５】
前記構文解析系は、前記フォーマット記述テーブルにおける現在の命令を指し示す少なくとも一つの記述位置レジスタを含み、該構文解析系は、算術演算および／または該フォーマット記述テーブルの行に含まれる命令の条件付き実行を実行し、および／または、前記ナビゲーションデータベースの前記少なくとも一つのデータファイルに格納されたデータに関する、繰り返されるデータ要素のアレイまたはデータ要素のリストを読み出すためのループコマンドを実行する、請求項２〜４のいずれか一項に記載の方法。
【請求項６】
前記構文解析系は、所定の数のデータエントリに続く前記行におけるデータ要素を無視する、請求項２〜５のいずれか一項に記載の方法。
【請求項７】
少なくとも一つのデータファイルと、該少なくとも一つのデータファイルのためのフォーマット記述とを備えたナビゲーションデータベースであって、
該フォーマット記述は、該ナビゲーションデータベースの該少なくとも一つのデータファイルのフォーマットに関する情報を表し、該フォーマット記述は、該ナビゲーションデータベースに格納される該少なくとも一つのデータファイルのフォーマットのデータコンテンツをバイナリフォーマットまたはテキストフォーマットのデータコンテンツに変換することに関する情報を表し、該フォーマット記述は、構文解析系を制御するように構成されており、該構文解析系は、該フォーマット記述における情報に従って該少なくとも一つのデータファイルに格納されたデータを解釈し、ナビゲーションソフトウェアに対する該データを構文解析するように構成されており、
該フォーマット記述は、該少なくとも一つのデータファイルのヘッダ内のフォーマット記述テーブルとしてインプリメントされ、該フォーマット記述テーブルは、バイトコードであり、
該少なくとも一つのデータファイルの該フォーマットに関する該情報は、該少なくとも一つのデータファイルにおいて用いられる複数の異なるデータタイプの要素からなるレコードのタイプとして、該フォーマット記述テーブルにおいて表される、ナビゲーションデータベース。
【請求項８】
ナビゲーションソフトウェアと、少なくとも一つのデータファイルを備えたナビゲーションデータベースとを備えた車両ナビゲーションシステムであって、
該ナビゲーションデータベースの該少なくとも一つのデータファイルのための少なくとも一つのフォーマット記述がインプリメントされ、
該フォーマット記述は、該少なくとも一つのデータファイルのフォーマットに関する情報を表し、該フォーマット記述は、該ナビゲーションデータベースに格納される該少なくとも一つのデータファイルのフォーマットのデータコンテンツをバイナリフォーマットまたはテキストフォーマットのデータコンテンツに変換することに関する情報を表し、該フォーマット記述は、少なくとも一つのデータファイルのヘッダ内のフォーマット記述テーブルとしてインプリメントされ、前記フォーマット記述テーブルは、バイトコードであり、
該少なくとも一つのデータファイルの該フォーマットに関する該情報は、該少なくとも一つのデータファイルにおいて用いられる複数の異なるデータタイプの要素からなるレコードのタイプとして、該フォーマット記述テーブルにおいて表され、
該フォーマット記述における該情報に従って該少なくとも一つのデータファイルに格納されたデータを解釈するように構文解析系が構成されている、ナビゲーションシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースに関し、具体的には、ナビゲーションシステムのためのデータベースに関する。本発明は、特に、適切な物理的格納フォーマットによるデータベースにおけるデータの編成の方法に関する。
【背景技術】
【０００２】
ナビゲーションシステムは、現代の車両、特に中級および高級自動車においてますます普及している。ナビゲーションシステムは、移動の前または最中にユーザによって入力される所定の目的地に対して、視覚的および／または聴覚的なルート案内を実行する。
【０００３】
ナビゲーションシステムは、たとえば都市、街道、名所などを表すエントリのリストを格納する比較的膨大なデータベースを備える。そのようなリストは、すぐに非常に長くなり、ナビゲーションシステムにおいて利用可能な限定されたコンピュータリソースを考慮に入れると、管理が困難である。
【０００４】
ナビゲーションデータベースによって提供される膨大なデータを管理するための一般的なアプローチによると、カスタマイズされた所有のバイナリー（またはテキスト）データフォーマットは、格納要件を最小限にして、特定のアプリケーションを考慮してデータアクセスを最適化するように規定される。このアプローチは、たとえばナビゲーションソフトウェアの最近のバージョンの変更された標準のために、そのようなデータフォーマットが、将来の予見されない要件およびフォーマット拡張に適合することが困難であるという問題を欠点として持つ。ソフトウェアのアップデートされたバージョンは、より古いデータベースにうまく対処するように通常は設計され得るが、なおもより古いソフトウェアリリースによって読み出され得るように、変更されたより最近のフォーマットによってデータベースを修正することは、たいへんである。
【０００５】
したがって、通常人は、特に、将来のフォーマット仕様にとって有用であり得るもともとのデータフォーマットに何らかのオーバヘッドを提供することによって、互換性のないフォーマット修正を可能な限り回避することを試みる。オーバヘッドは、バイナリーデータが、使用されないかまたは部分的に使用されるデータ部分を必ず含み、その結果としてソフトウェア開発の所与の段階において必要以上に大きい、という不都合を有する。すべての予見されないにもかかわらず望ましい将来のフォーマットおよび機能修正およびアップデーティングに適合する、所有のデータフォーマットを作成することは、不可能である。
【０００６】
別のアプローチは、もともとのデータベースフォーマットのデータ範囲を、該範囲が、最初はソフトウェアによって無視され、たとえばもともとのデータベースにおいて利用可能ではない情報についてこれらの範囲が使用された後で、適用されるソフトウェアの将来のリリースにおいてのみ解釈されるように、インプリメントすることである。やはり、著しいオーバヘッドが結果として生ずる。なぜなら、より古いデータのそのようなデータ範囲を飛ばすことについての、または拡張されたデータエントリに対してこれらのデータ範囲を解釈することについての情報が、データベースフォーマット内に格納されなければならないからである。さらに、データベースの拡張は、あらかじめ予見される位置においてのみ実行され得、したがってフォーマット修正の柔軟性が限定される。
【０００７】
たとえばリレーショナルデータベースにおける、一般的なデータフォーマットの使用は、たとえば車両におけるナビゲーションシステムのためのナビゲーションデータベースのような組込みシステムからのデータベースにおいて通常は好ましくない。なぜなら、一般的なフォーマットは、実際のアプリケーションのために最適化されず、所有のデータフォーマットと比較して、より大きなデータ量およびより遅いデータアクセスに帰結するからであり、このことは、限定されたコンピュータおよび格納リソースを有するシステムにおいて容認できない不都合である。
【０００８】
同じ理由から、たとえばテキストフォーマットとしての拡張可能なマーク付け言語（Ｅｘｔｅｎｄａｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）（ＸＭＬ）などの自己記述フォーマットの使用は、それぞれの必要な情報をフィルタリングするためのアプリケーションソフトウェアによって使用される識別タグを割当てられる任意のデータエンティティの格納を可能にするものであり、好ましくない。タグは、格納要件を劇的に増加させる。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上述に鑑みて、本発明の目的は、互換性をまったく損なうことなしにさらなる拡張を可能にする効率的かつ信頼できる態様でナビゲーションデータベースを管理する方法を提供することである。
【課題を解決するための手段】
【００１０】
（本発明の詳細）
上述の問題は、項目１による、一つ以上のデータファイルを含むナビゲーションデータベースにおいてデータを編成および管理する方法によって解決され、該データはアプリケーションソフトウェアによって使用され、該方法は、該少なくとも一つのデータファイルにデータを格納することと；該ナビゲーションデータベースの少なくとも一つのデータファイルのために少なくとも一つのフォーマット記述をインプリメントすることと；該アプリケーションソフトウェアが、該アプリケーションソフトウェアによって認識されかつ使用可能な情報をフィルタリングすることが可能にされるように、たとえば構文解析系として、該少なくとも一つのデータファイルに格納されたデータを解釈し、該アプリケーションソフトウェアへのデータを解析する、抽象機械をインプリメントすることとを包含し；該抽象機械は該少なくとも一つのフォーマット記述によって制御される。
【００１１】
データベースファイル（またはボリューム）は、たとえば、一つの国について、または一つの連邦州についての、ナビゲーションデータ（街道、路地、交通標識、交差点図、建造物、地形データなど）を含み得る。物理的ファイルは、格納媒体、たとえばハードディスクまたはＣＤまたはＤＶＤによって提供され得る。アプリケーションソフトウェアは、たとえば、ナビゲーションデータベースを含むナビゲーションシステムにインストールされたナビゲーションソフトウェアである。
【００１２】
本発明によると、データファイルについて、好ましくはナビゲーションデータベースに含まれるすべてのデータファイルについて、フォーマット記述がインプリメントされる。フォーマット記述が２つ以上のデータファイルについてインプリメントされる場合には、これらのデータファイルについて同一のフォーマット記述がインプリメントされ得る。フォーマット記述によって、たとえば整数、文字ストリング、およびポインタのような、異なるデータタイプの要素からなるレコードのタイプが宣言される。さらに、フォーマット記述は、レコードの要素のシーケンスを宣言する。フォーマット記述は、抽象機械によって解釈されるべきバイトコードを表す。
【００１３】
フォーマット記述のインプリメンテーションは、少なくとも一つのデータファイルにおいて使用されるレコードタイプを規定し、かつレコードを構成する要素のシーケンスを宣言する、少なくとも一つのデータファイルのヘッダにおいてフォーマット記述テーブルを生成することによって、有利に実行され得る。
【００１４】
フォーマット記述テーブルは、仮想解析機械によって解釈されるべきバイトコードとして見なされ得る。フォーマット記述テーブルは、行のリストと、たとえば８または１６ビットの複数の整数のたとえばワードのようなデータエントリの所定の数の各々と、抽象機械についての少なくとも一つのコマンドを含む各々とを含み得る。
【００１５】
フォーマット記述は、フォーマット記述によって少なくとも一つのデータファイルに格納されたデータを解釈する抽象機械によって読み出される。抽象機械は、たとえば、一部のアプリケーションソフトウェアによるさらなる処理のため、特に、コンパイラによるコード生成またはインタプリタによる実行のために次に使用され得る、読み出されたデータからの解析木を生成するように構成された、テーブル制御された構文解析系であり得る。
【００１６】
その結果として、ナビゲーションデータベースに格納されたデータコンテンツの、バイナリーまたはテキストフォーマットへの実際のマッピングは、ソフトウェアの一部ではなく、データファイルのフォーマット記述（テーブル）においてのみ規定される。したがって、ナビゲーションデータベースの格納サイズは、アプリケーションソフトウェアをまったく修正する必要なしに変更され得る。さらに、抽象機械を制御するフォーマット記述は、特定のハードウェア構造に縛られない。
【００１７】
データベースの変更および拡張は、フォーマット記述の変更によって、特に２つ以上のフォーマット記述の使用によって、容易にインプリメントされ得る。後者の場合には、一つの記述フォーマットは、データベースにおいて使用された最初の標準バージョンの一種の構文要素（読み出し、レジスタ命令へのスキップアクセス、などのような）を利用し得、最初の標準と互換性のあるソフトウェアのみを使用可能にし得る。さらに、最初の標準のより最近のバージョンによって規定される追加の構文要素を使用して、一つ以上のさらなるフォーマット記述が提供され得る。
【００１８】
上述の方法ならびに以下に説明されるその実施形態は、一般的にバイナリーエンコードされた読み出し専用データベースに、特に組み込みシステムにおけるバイナリーエンコードされた読み出し専用データベースに適用され得ることが明言される。方法は、車両ナビゲーションシステムに含まれたナビゲーションデータベースに関連して特に有用である。なぜなら、車両ナビゲーションシステムは、比較的限定されたコンピュータ／メモリリソースを示す組み込みシステムの重要な例を代表するからである。
【００１９】
本発明はまた、項目２による、ナビゲーションソフトウェア製品にデータを提供する方法を提供し、該方法は、少なくとも一つのデータファイルを含むナビゲーションデータベースを提供することであって、該ナビゲーションデータベースの該少なくとも一つのデータファイルのための少なくとも一つのフォーマット記述と、該少なくとも一つのフォーマット記述によって該少なくとも一つのデータファイルに格納されたデータを解釈するように構成された抽象機械とが、インプリメントされることと；該少なくとも一つのデータファイルにデータを格納することと；該少なくとも一つのデータファイルに格納されたデータの少なくとも部分を読み出して処理することと；該ナビゲーションソフトウェア製品に対する、該少なくとも一つのデータファイルに格納された該データの該読み出されて処理された部分を解析することとを包含する。
【００２０】
フォーマット記述のインプリメンテーションは、たとえば、運転者にルート案内を提供するナビゲーションソフトウェアに対して、車両のナビゲーションシステムのナビゲーションデータベースに格納されたデータの非常に柔軟で速く信頼性のある解析を可能にする。
【００２１】
一実施形態によると、抽象機械は、少なくとも一つのレジスタを含み、フォーマット記述テーブルは、読み出されるべきデータのフォーマットに関する、および／または読み出されたデータの少なくとも一つのレジスタへの転送に関する、および／またはデータを解釈するためにアプリケーションソフトウェアに関連する読み出されたデータの意味に関する、情報を含む。これらの種類の情報によって、ナビゲーションデータベースに格納されたデータの効率的な管理が可能である。
【００２２】
特に、フォーマット記述テーブルは、抽象機械の効率的な制御のために、各行に、構文解析系命令と、構文ＩＤと、意味ＩＤとを含み得る。構文解析系命令は、どのような種類のデータが抽象機械によって読み出されるべきかを制御する。構文解析系命令は、固定長または可変長の整数、または文字ストリング、またはたとえばレコードを参照するポインタからなり得る。
【００２３】
たとえば、データを分岐させるための、すなわち一つのレコードから別のレコードにジャンプするための、またはネストされたレコードを解析するための、より複雑な命令も、構文解析系命令として使用され得る。命令はまた、条件的に実行され得る。この場合には、抽象機械は、条件式を評価し、その評価結果に依存して、命令を実行するかまたは飛ばすことが可能にされる。抽象機械はまた、ナビゲーションデータベースの少なくとも一つのデータファイルに格納されたデータに関して、データエンティティのアレイまたはリストを読み出すループコマンドを実行し得る。アレイにおいて、データ要素のシーケンスが繰り返される。
【００２４】
構文ＩＤは、単純な整数であり得、抽象機械が格納されたデータについて何をすべきかを規定する方法を表す。構文ＩＤは、抽象機械に、たとえば特定の種類のデータを読み出させ、および／または読み出されたデータに関する所定の算術演算を実行させる。このために、一実施形態による抽象機械は、少なくとも一つのレジスタを含み、算術演算を実行する。抽象機械に少なくとも一つのレジスタが提供される場合には、レジスタアクセスおよびレジスタ読み出し命令は、上述の構文解析系命令のさらなる例である。
【００２５】
意味ＩＤは、レコードが構成される各要素に提供され得るタグを表す。抽象機械は、構文解析系命令のために読み出されたＩＤ番号を、対応するデータ要素とともに、アプリケーションソフトウェアに渡す。意味ＩＤ手段によって、要素の意味はアプリケーションソフトウェアによって理解され得る。
【００２６】
未知の意味ＩＤは無視され、したがって、フォーマット拡張は、アプリケーションソフトウェアの現在のバージョンの互換性を失わずに、容易に追加され得る。事実、意味ＩＤの使用のために、データベースフォーマットは、たとえば拡張可能なマーク付け言語（ＸＭＬ）のような自己記述フォーマットと同じくらい柔軟かつ拡張可能である。しかし、本発明によると、データ要素に割当てられる個々のタグに対するオーバヘッドはない。なぜなら、タグ付けは、ナビゲーションデータベースのデータファイル全体について有効なフォーマット記述においてのみ実行されるからである。
【００２７】
意味構造に関して、抽象機械が、所定の数のデータエントリに続く行におけるデータエンティティを無視することが、好ましいということがあり得る。この場合には、より最近のリリースにおいて、追加の（たとえば所有の）データが、最初の標準バージョンのために設計されたアプリケーションソフトウェアによって無視されるが、より最近のソフトウェアバージョンによって解釈され得る、データベースの最初の標準バージョンのレコードのデータ要素に追加され得る。同じ意味において、より最近のバージョンによって導入された未知の意味ＩＤは、最新ではない抽象機械および／またはアプリケーションソフトウェアによって無視される。
【００２８】
フォーマット記述は、ナビゲーションデータベースの少なくとも一つのデータファイルに直接的にインストールされ得るか、またはナビゲーションデータベースのデータボリュームの各々とは異なるデータボリュームに、またはナビゲーションデータベースのデータファイルの各々とは異なるデータセットに提供され得る。たとえば、新しい拡張されたフォーマット記述は、インターネットを介してダウンロードすることによって既存のナビゲーションデータベースにインプリメントされ得るか、または別個のＤＶＤ上に提供され得る。言い換えると、フォーマット記述は、ナビゲーションデータベースと同じ物理ボリューム（媒体）上に（しかし別個のデータセットとして）、または異なるボリューム上に、提供され得る。
【００２９】
パックされたデータを抽象機械が適切に解釈することを可能にされる場合には、少なくとも一つのデータファイルに格納されたデータは、少なくとも部分的にパックされ得る。特に、車両におけるナビゲーションシステムのナビゲーションデータベースに関して、必要な格納容量を低減するために、データが何らかのパックされた態様で格納され得ることが望ましい。
【００３０】
本発明はまた、少なくとも一つのデータファイルと、少なくとも一つのデータファイルに格納されたデータを解釈しかつナビゲーションソフトウェアへのデータを解析するように構成された抽象機械を制御するように構成された、少なくとも一つのデータファイルについてのフォーマット記述とを含むナビゲーションデータベースを提供する。ナビゲーションデータベースは、上述のようなインプリメンテーションを示し得る。
【００３１】
さらに、ナビゲーションソフトウェアと、少なくとも一つのデータファイルを含むナビゲーションデータベースとを含む、車両ナビゲーションシステムが提供される。そこで、ナビゲーションデータベースの少なくとも一つのデータファイルのための少なくとも一つのフォーマット記述と、少なくとも一つのフォーマット記述によって少なくとも一つのデータファイルに格納されたデータを解釈し、かつナビゲーションソフトウェアに対してデータを解析するように構成された抽象機械とが、インプリメントされ、抽象機械はフォーマット記述によって制御される。
【００３２】
本発明は、さらに、以下の手段を提供する。
【００３３】
（項目１）
少なくとも一つのデータファイルを含むナビゲーションデータベースにおいてデータを編成して管理する方法であって、該方法は、
該少なくとも一つのデータファイルにデータを格納することと、
該ナビゲーションデータベースの少なくとも一つのデータファイルについて少なくとも一つのフォーマット記述をインプリメントすることと、
該少なくとも一つのデータファイルに格納されたデータを解釈し、アプリケーションソフトウェアに対する該データを解析する、抽象機械をインプリメントすることと
を包含し、該抽象機械は該少なくとも一つのフォーマット記述によって制御される、方法。
【００３４】
（項目２）
ナビゲーションソフトウェア製品にデータを提供する方法であって、該方法は、
少なくとも一つのデータファイルを含むナビゲーションデータベースを提供することであって、該ナビゲーションデータベースの該少なくとも一つのデータファイルのための少なくとも一つのフォーマット記述と、該少なくとも一つのフォーマット記述によって該少なくとも一つのデータファイルに格納されたデータを解釈するように構成された抽象機械とが、インプリメントされている、ことと、
該少なくとも一つのデータファイルにデータを格納することと、
該少なくとも一つのデータファイルに格納されたデータの少なくとも部分を読み出して処理することと、
該ナビゲーションソフトウェア製品に対する、該少なくとも一つのデータファイルに格納されたデータのうちの読み出されて処理された部分を解析することと
を包含する、方法。
【００３５】
（項目３）
上記フォーマット記述のインプリメンテーションは、少なくとも一つのデータファイルのヘッダにおいてフォーマット記述テーブルを生成することによって実行され、該フォーマット記述テーブルは、該少なくとも一つのデータファイルにおいて使用されるレコードタイプを規定し、該レコードを構成する要素のシーケンスを宣言する、項目１または２に記載の方法。
【００３６】
（項目４）
上記フォーマット記述テーブルは、各々が同じ数のデータエンティティと、上記抽象機械のための少なくとも一つの命令とを含む行を含み、該抽象機械は、上記少なくとも一つのデータファイルに格納されたデータを該少なくとも一つの命令に基づいて解釈する、項目３に記載の方法。
【００３７】
（項目５）
上記抽象機械は、少なくとも一つのレジスタを含み、上記フォーマット記述テーブルは、読み出されるべきデータのフォーマット、および／または読み出されたデータの該少なくとも一つのレジスタへの転送、および／または該読み出されたデータの意味に関する情報を含む、項目３または４に記載の方法。
【００３８】
（項目６）
上記フォーマット記述テーブルは、構文解析系命令と、構文ＩＤと、意味ＩＤとを各行に含む、項目５に記載の方法。
【００３９】
（項目７）
上記抽象機械は、少なくとも一つのレジスタを含み、算術演算および／または上記フォーマット記述テーブルの行に含まれる命令の条件付き実行を実行し、および／または上記ナビゲーションデータベースの上記少なくとも一つのデータファイルに格納されたデータに関する、データエンティティのアレイまたはリストを読み出すためのループコマンドを実行する、項目４〜６のいずれか一項に記載の方法。
【００４０】
（項目８）
上記抽象機械は、所定の数のデータエントリに続く上記行におけるデータエンティティを無視する、項目４〜７のいずれか一項に記載の方法。
【００４１】
（項目９）
上記フォーマット記述は、上記ナビゲーションデータベースの上記少なくとも一つのデータファイルにインストールされるか、または該ナビゲーションデータベースのデータボリュームの各々とは異なるデータボリュームに、もしくは該ナビゲーションデータベースの該データファイルの各々とは異なるデータセットに提供される、項目１〜８のいずれか一項に記載の方法。
【００４２】
（項目１０）
上記データは少なくとも部分的にパックされ、上記抽象機械はパックされたデータを解釈するように可能化される、項目１〜９のいずれか一項に記載の方法。
【００４３】
（項目１１）
ナビゲーションデータベースであって、
少なくとも一つのデータファイルと
該少なくとも一つのデータファイルに格納されたデータを解釈し、ナビゲーションソフトウェアに対する該データを解析するように構成された抽象機械を制御するように構成された、該少なくとも一つのデータファイルのためのフォーマット記述と
を備える、ナビゲーションデータベース。
【００４４】
（項目１２）
車両ナビゲーションシステムであって、
ナビゲーションソフトウェアと
ナビゲーションデータベースとを備え、
該ナビゲーションデータベースの少なくとも一つのデータファイルのための少なくとも一つのフォーマット記述と、該少なくとも一つのフォーマット記述によって該少なくとも一つのデータファイルに格納されたデータを解釈し、該ナビゲーションソフトウェアに対する該データを解析するように構成された、抽象機械とが、インプリメントされ、該抽象機械は該フォーマット記述によって制御される、ナビゲーションシステム。
【００４５】
（摘要）
本発明は、アプリケーションソフトウェアによって使用される少なくとも一つのデータファイルを含むナビゲーションデータベースにおいてデータを編成して管理する方法に関し、該方法は、該少なくとも一つのデータファイルにデータを格納することと、該ナビゲーションデータベースの少なくとも一つのデータファイルのために少なくとも一つのフォーマット記述をインプリメントすることと、該少なくとも一つのデータファイルに格納されたデータを解釈し、該アプリケーションソフトウェアに対する該データを解析するように、抽象機械をインプリメントすることとを包含し、該抽象機械は該少なくとも一つのフォーマット記述によって制御される。
【発明を実施するための最良の形態】
【００４６】
本発明の追加の特徴および利点は、図面を参照して説明される。説明において、本発明の好ましい実施形態を説明することを意図された添付の図面に参照がなされる。そのような実施形態は、添付の特許請求の範囲によって規定される本発明の完全な範囲を表すものではないことが理解される。
【００４７】
図１に図示されるように、ナビゲーションデータベース１は、フォーマット記述テーブルならびにデータ要素によって構築されるレコードからなるデータブロック３を含む、データファイル２を含む。抽象機械４は、データ（要素）を読み出して解釈するためにインプリメントされる。抽象機械は、データファイル２のフォーマット記述テーブルによって制御される。フォーマット記述テーブルに含まれる命令に依存して、データは抽象機械によって読み出される。
【００４８】
データは、文字ストリングを含み、その一部はトークンベースの圧縮によって圧縮される。圧縮されたどのストリング中にも存在しないバイト値は、トークンとして使用され得、任意の長さのバイトシーケンスが、各トークンに割当てられる。抽象機械は、トークンを表すすべてのストリングバイトを、その割当てられた置換シーケンスによって置換することによって、圧縮されたストリングを解凍し得る。トークンは、各ブロックについて計算されるトークンテーブルによって管理される。
【００４９】
フォーマット記述テーブルは、一連のバイナリー行からなり、各行は、ワード、たとえば１６ビット数からなる。すべての行は、フォーマット記述テーブルのヘッダ（たとえばテーブルの第１行）において規定される同一の長さを有する。本実施例によると、最初の１０ワードのみが抽象機械４によって考慮される。１番目のワードは、抽象機械のための構文解析系命令のために使用される。
【００５０】
フォーマット記述テーブルは、構文ＩＤと意味ＩＤとを含む。構文ＩＤはたとえばフォーマット記述テーブルの行の２番目のワードとして、意味ＩＤは３番目のワードとして、使用され得る。意味ＩＤは、抽象機械４によって構文解析系命令のために読み出されたデータ要素とともに、ナビゲーションソフトウェア５に渡される。意味ＩＤは、ナビゲーションソフトウェア５によって解釈され得るデータタグを表す。意味ＩＤによって、ナビゲーションソフトウェアはデータ要素の意味を解釈し得；未知の意味ＩＤは無視される。したがって、ナビゲーションソフトウェアおよび／またはナビゲーションデータベースの異なるバージョンの間の互換性を失わずに、フォーマット拡張が新しい意味ＩＤによってインプリメントされ得る。
【００５１】
図２は、本発明による、抽象機械とフォーマット記述との間の相互作用の実施例を示す。抽象機械は、構文解析系としてインプリメントされる。フォーマット記述は、データファイルヘッダに含まれ、かつ構文解析系によってバイトコードとして解釈される、フォーマット記述テーブルとしてインプリメントされる。フォーマット記述テーブルは、同じ長さの行を含み、各行はワードの集合からなる。特に、フォーマット記述テーブルは、どのような種類のバイナリーデータが構文解析系によって読み出されるべきかを制御する構文解析系命令を含む。
【００５２】
本実施例によると、構文解析系は、レジスタを利用する。たとえば、一部のレコードタイプが別のレコードタイプのデータ要素を含む場合には、ネストされたレコード宣言に対処するために、多数のレジスタに対してスタック状の構造がインプリメントされる。
【００５３】
図２に示されるように、９個のレジスタがレジスタスタック内に編成される。記述位置レジスタは、フォーマット記述テーブル内の現在の命令を指し示す。ヘッダレジスタは作業用レジスタであり、そこで構文解析系はたとえばテーブル行の条件付き実行を制御するために使用され得る数値をロードする。パラメータレジスタは、ネストされたレコードの管理のために使用される。最高レベルのレコードについて、このレジスタはゼロを含み得、内部のレコードについて、このレジスタはある３２ビットパラメータ値を含む。
【００５４】
リストサイズレジスタ、アレイサイズレジスタ（データ要素のシーケンスはアレイ内で繰り返される）、およびバイナリーサイズレジスタは、たとえば繰り返される読み出しまたは特定のリストエントリまでの読み出しのようなデータのリストおよびアレイの管理のためと、たとえばビットマップイメージまたは暗号バイナリーエンコーディングを表す特別のバイナリーデータブロックの制御のために使用される。リストインデックスレジスタおよびアレイインデックスレジスタは、それぞれリスト要素およびアレイ要素にわたる構文解析系の繰り返しを管理するために使用される。
【００５５】
本実施例によると、さらに３つのレジスタが使用される。ブロックグローバルデータレジスタは、たとえばデータブロックを一意に特定するブロックインデックス、およびブロックに含まれるレコードの数のような、現在解析されるブロックのグローバル情報を格納するレジスタの集合を実際に表す。バイナリーデータ位置レジスタは、ブロックのバイナリーデータにおけるバイト位置を指す。構文解析系命令にしたがって読み出されるべきデータは、バイナリーデータ位置レジスタが指すバイト位置から読み出される。現在のレコードインデックスは、現在解析されるレコードまたはリスト要素に対するポインタのレコードインデックスを含む。
【００５６】
レジスタの使用は、特に、抽象機械が、算術演算、および命令一般の条件付き実行、およびデータ要素のアレイおよびリストを読み出すループ命令の実行を実行することを可能にする。
【図面の簡単な説明】
【００５７】
【図１】図１は、フォーマット記述を含むナビゲーションデータベースにおけるデータと抽象機械とを編成し管理する発明的な方法の要素を図示する。
【図２】図２は、本明細書中に開示される方法の実施例に従った抽象機械の動作を図示する。抽象機械の動作は、フォーマット記述テーブルによって制御される。
【符号の説明】
【００５８】
１  ナビゲーションデータベース
２  データファイル
３  データブロック
４  抽象機械
５  ナビゲーションソフトウェア
【図１】
0005548331.tif 000002
【図２】
0005548331.tif 000003