JPH10253367A - ナビゲーションシステム用のインタフェースレイヤ - Google Patents

ナビゲーションシステム用のインタフェースレイヤ

Info

Publication number
JPH10253367A
JPH10253367A JP9332263A JP33226397A JPH10253367A JP H10253367 A JPH10253367 A JP H10253367A JP 9332263 A JP9332263 A JP 9332263A JP 33226397 A JP33226397 A JP 33226397A JP H10253367 A JPH10253367 A JP H10253367A
Authority
JP
Japan
Prior art keywords
data
navigation application
parcel
format
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP9332263A
Other languages
English (en)
Inventor
Richard A Ashby
エイ アッシュビー リチャード
Paul M Bouzide
エム ブージード ポール
Vijay S Israni
エス イスラニ ヴィジャヤ
David S Lampert
エス ラムパート ディヴィッド
Senthil K Natesan
ケイ ナテサン センティル
Grant S Killey
エス キーリー グラント
John C Jasper
シー ジャスパー ジョン
P Farnekess Robert
ピー ファーネケス ロバート
Jerry S Feigen
エス フェイゲン ジェリー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Navteq Corp
Original Assignee
Navigation Technologies Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Navigation Technologies Corp filed Critical Navigation Technologies Corp
Publication of JPH10253367A publication Critical patent/JPH10253367A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B29/00Maps; Plans; Charts; Diagrams, e.g. route diagram
    • G09B29/10Map spot or coordinate position indicators; Map reading aids
    • G09B29/106Map spot or coordinate position indicators; Map reading aids using electronic means
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3863Structures of map data
    • G01C21/387Organisation of map data, e.g. version management or database structures
    • G01C21/3878Hierarchical structures, e.g. layering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/09Arrangements for giving variable traffic instructions
    • G08G1/0962Arrangements for giving variable traffic instructions having an indicator mounted inside the vehicle, e.g. giving voice messages
    • G08G1/0968Systems involving transmission of navigation instructions to the vehicle
    • G08G1/0969Systems involving transmission of navigation instructions to the vehicle having a display in the form of a map
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99932Access augmentation or optimizing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface

Landscapes

  • Engineering & Computer Science (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Automation & Control Theory (AREA)
  • Business, Economics & Management (AREA)
  • Educational Administration (AREA)
  • Educational Technology (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Navigation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Traffic Control Systems (AREA)
  • Instructional Devices (AREA)

Abstract

(57)【要約】 (修正有) 【課題】ナビゲーションシステムにおいて、データアク
セスインタフェースレイヤを改良した方法及びシステム
提供することである。 【解決手段】データアクセスインタフェースレイヤ41
は、ナビゲーションアプリケーションソフトウェアを、
記憶媒体上に格納されている地理的データ40から分離
する。データアプリケーションインタフェースレイヤ4
1は、ナビゲーションアプリケーションソフトウェアに
よる地理的データ40についての要求を横取りする。デ
ータアクセスインタフェースレイヤは、地理的データを
記憶媒体から検索し、データをナビゲーションアプリケ
ーションソフトウェアが使用できるフォーマットに変換
する。またデータアクセスインタフェースレイヤは、特
定の媒体からの地理的データへのアクセス及び使用を容
易にするメモリ管理を迅速且つ効率的に提供する。

Description

【発明の詳細な説明】
【0001】
【関連出願との参照】本願は、 1996 年10月25日提出の
係属米国出願第 08,740,295 号 "IMPROVED SYSTEM AND
METHOD FOR USE AND STORAGE OF GEOGRAPHIC DATA ON P
HYSICAL MEDIA"に関連する。
【0002】
【発明の属する技術分野】本発明はナビゲーションシス
テムに関し、より詳しく述べれば、物理的記憶媒体上に
格納された地理的データベースの使用及びアクセスを容
易にするナビゲーションシステムインタフェースレイヤ
( layer ) に関する。
【0003】
【従来の技術】陸上で使用するコンピュータをベースと
するナビゲーションシステムは種々の形状で使用できる
ようになってきており、種々の有用な特色を提供してい
る。ナビゲーションシステムの1つの型の例は、(1)
1つまたはそれ以上の地理的エリアまたは領域の詳細な
データセット、(2)ナビゲーション応用プログラム、
(3)マイクロプロセッサ、メモリ、及び記憶装置のよ
うな適切なコンピュータハードウェア、及びオプション
として(4)測位(ポジションニング)システムを使用
している。ナビゲーションシステムの詳細な地理的デー
タセット部分は、1つまたはそれ以上の詳細な、編成さ
れたデータファイルまたはデータベースの形状である。
詳細な地理的データセットは、道路の位置、1つまたは
それ以上の特定の地理的領域内の、または該領域に関連
する交差点に関する情報を含むことができ、また一方通
行道路、回転禁止、街路番地、代替ルート、ホテル、レ
ストラン、博物(美術)館、スタジアム、オフィス、自
動車ディーラー、自動車修理業等に関する情報も含むこ
とができる。
【0004】測位システムは、ある地理的領域内の物理
的位置を決定する、または近似する幾つかの公知の技術
の何れかを使用することができる。例えば、測位システ
ムは、当分野において公知のGPS型システム(グロー
バルポジションニングシステム)、「推測(デッドリコ
ンニング)」型システム、またはこれらの、または他の
システムの組合せを使用することができる。ナビゲーシ
ョンシステムのナビゲーション応用プログラム部分は詳
細な地理的データセット、及び(使用されている場合に
は)測位システムを使用するソフトウェアプログラムで
ある。ナビゲーション応用プログラムは、ユーザに、そ
の地域内のユーザの特定位置の図形表示(例えば、「地
図」)を提供することができる。更に、ナビゲーション
応用プログラムは、ユーザが何処にいようとも、ユーザ
に、そこから地域内の複数の位置まで特定の指図を与え
ることもできる。
【0005】若干のナビゲーションシステムは、ナビゲ
ーション応用プログラム、地理的データセット、及びオ
プションとして測位システムを単一のユニットに組合わ
せている。この単一のユニットシステムは、車両(もし
くはビークル)内に設置するか、または個人が携帯する
ことができる。代替としてナビゲーション応用プログラ
ム及び地理的データセットは、市販の、またはユーザが
彼等のパーソナルコンピュータ内にロードすることを許
可されたソフトウェア製品として準備することができ
る。さらなる代替として、ナビゲーションシステムを中
央に、または地域的に配置し、多数のユーザが「必要に
応じて」、または代替として、ネットワークまたは通信
リンクを通してオンラインでアクセスできるようにする
ことができる。パーソナルコンピュータをベースとする
システムはスタンドアロンシステムであることも、また
は中央、または地域的、または分散システムへの通信リ
ンクを使用することもできる。またユーザはインターネ
ットのようなオンラインサービス、またはコンピュサー
ブ、Prodigy 、及びアメリカ・オンラインのようなプラ
イベートダイアルアップサービスを通してナビゲーショ
ンシステムにアクセスすることができる。車載ナビゲー
ションシステムは、トラック会社、パッケージ配送サー
ビス等のような車両輸送フリートのオペレータによって
使用することもできる。ナビゲーションシステムは、交
通制御または交通監視に係わるエンティティが使用する
こともできる。
【0006】コンピュータをベースとするナビゲーショ
ンシステムは、ユーザに高レベルのナビゲーション支援
を提供することを保証している。ナビゲーションシステ
ムは所望の目的地まで走行するための詳細な指令を与
え、それによって走行時間及び費用を低減させることが
できる。ナビゲーションシステムは通勤者及び旅行者が
工事による遅れを回避することを援助し、所望の目的地
まで最も早いルートを見出すような強化されたナビゲー
ション特色をも提供することができる。ナビゲーション
システムは、実時間交通情報を採り入れるのにも使用で
きる。ナビゲーションシステムにこれらの有用で強化さ
れた特色を与えるためには、地域及びエリアに関する包
括的な、詳細な、信頼できる、そして最新のデータを収
集し、編成する必要がある。また、多くのデータは直ぐ
に古くなってしまうので、地理的データを絶えず更新す
る必要もある。現在では、カリフォルニア州サニービル
の Navigation Technologiesがこのような地理的データ
を収集し、このようなデータをコンピュータが使用でき
るフォーマットで供給している。
【0007】強化された特色と、更新された地理的デー
タベースとをナビゲーションシステムに供給するのに伴
う1つの潜在的な問題は、多くの異なるナビゲーション
システムプラットフォームが存在することである。これ
らのプラットフォームは、異なるハードウェア、ナビゲ
ーションソフトウェア、オペレーティングシステム、等
々を有している。これらの異なるプラットフォームの多
くは独立的に開発されてきており、互換はきかない。従
って、たとえ更新された地理的データベースを収集し、
更新されたコンピュータ可読地理的データベースを製造
できたとしても、多くの異なるプラットフォームが存在
しているために、種々の異なる型のナビゲーションシス
テムに使用することができる地理的データベースを作っ
て分配することは困難になる。この問題は、ナビゲーシ
ョンシステム製造者がより多くの、そして強化された特
色を有する新世代のナビゲーションシステムを開発して
行くにつれて悪化する恐れがある。
【0008】既存ナビゲーションシステムに更新された
地理的データベースを供給することに関連して別の問題
が存在する。普通の印刷された地図と全く同じように、
コンピュータをベースとするナビゲーションシステムは
古くなって行く。例えば、新しい道路が作られ、ビジネ
スは位置を変え、道路工事によって道路が閉鎖され、ロ
ータリーが作られ、博物館やレストランの営業時間が変
化したりする。ナビゲーションシステムを有する車両の
所有者のようなエンドユーザは、時々刻々更新される地
理的データを彼等のナビゲーションシステム内に有して
いたいのは当然である。上述した多くの異なる、互換性
のないナビゲーションシステムプラットフォームの急増
も、エンドユーザ(即ち、ナビゲーションシステムを所
有し、使用している人及びビジネス)に更新された地理
的データを提供する上での障害になる。ナビゲーション
システムの寿命の間、エンドユーザのナビゲーションシ
ステムに更新された地理的データを供給するためには、
地理的データのプロバイダは更新された地理的データを
有しているだけではなく、ユーザの特定ナビゲーション
システムと互換性のある製品を提供する必要がある。ナ
ビゲーションシステムの寿命が 10 年またはそれ以上で
あり得ることが予測されるので、これは、数が増え続け
る古い、互換性のないナビゲーションシステム及びプラ
ットフォームを支援することを必要とする。もし更新さ
れた地理的データ製品の特殊化されたバージョンをナビ
ゲーションプラットフォームの別々の異なる型毎に製造
しなければならないのであれば、異なる製品の数が時間
と共に増え続けると、更新された地理的データ製品をエ
ンドユーザに提供することは困難になり、高価になる。
【0009】従って、本発明の目的は、いろいろなハー
ドウェアプラットフォームに地理的データを供給する上
での問題の解決策を提供することである。更に本発明の
目的は、さまざまなナビゲーションシステムプラットフ
ォーム、オペレーティングシステム、及びリリースに対
して効率的に開発し、製造し、カストマイズし、分配
し、及び/または更新することができる改良されたナビ
ゲーションシステム、及びその中に使用する地理ナビゲ
ーションデータベースを提供することである。
【0010】
【発明の概要】以上の、及び他の目的を達成するため
に、そして本発明の目的によれば、ナビゲーションシス
テム内のデータアクセスインタフェースレイヤのための
改良された方法及びシステムが提供される。このナビゲ
ーションシステムは、システムのユーザにナビゲーティ
ング特色を提供するナビゲーション応用プログラムと、
コンピュータ可読記憶媒体上に格納されている地理的デ
ータベースとを含む型であり、この地理的データベース
は、ナビゲーションシステムがユーザにナビゲーティン
グ特色を提供する地理領域に関連する情報を含んでい
る。データアクセスインタフェースレイヤは、ソフトウ
ェア機能のライブラリとしてナビゲーションシステム内
に格納されていることが好ましい。データアクセスイン
タフェースレイヤは、ナビゲーションシステム応用ソフ
トウェアと共に動作する。データアクセスインタフェー
スレイヤは、ナビゲーション応用ソフトウェアを、記憶
媒体上に格納されている地理的データから分離する。デ
ータアクセスインタフェースレイヤは、ナビゲーション
応用ソフトウェアによる地理的データに関する要求を横
取りする。データアクセスインタフェースレイヤは、地
理的データを記憶媒体から検索し、そのデータをナビゲ
ーション応用ソフトウェアが使用できるフォーマットに
変換( convert ) する。データアクセスインタフェース
レイヤは、特定の記憶媒体からの地理的データへのにア
クセス、及び使用を容易にするメモリ管理をも迅速且つ
効率的に提供する。媒体の型が異なれば、物理的フォー
マットも相違することを認識し、データアクセスインタ
フェースレイヤはそれらの相違を受け入れて分離するこ
とによって、データアクセスインタフェースレイヤの、
ナビゲーション応用ソフトウェアと会話する部分を汎用
にすることができる。
【0011】
【実施例】
I.ナビゲーションシステムの概要 図1を参照する。図1は、ナビゲーションシステム10
の構成例を示す図である。ナビゲーションシステム10
は、ハードウェアとソフトウェアとの組合せである。一
実施例では、ナビゲーションシステム10は、プロセッ
サ12、プロセッサ12に接続されているドライブ1
4、及びナビゲーション応用ソフトウェアプログラム1
8を記憶するためのROMのようなメモリ記憶デバイス
16を含んでいる。ナビゲーションシステムを動作させ
るために、ナビゲーション応用ソフトウェアプログラム
18は、ROM 16からプロセッサ12に関連するメ
モリ20内にロードされる。プロセッサ12は、日立S
H1、インテル80386、インテル960、モトロー
ラ68020(または同じような、またはそれ以上のア
ドレス指定空間を有するプロセッサ)のような、フラッ
トアドレス空間を使用する 32 ビットプロセッサのよう
なナビゲーションシステム内に使用されるどのような型
であることもできる。これら以外の型のプロセッサ、並
びに近い将来開発されるかも知れないプロセッサも適し
ている。記憶媒体22は、ドライブ14内に挿入され
る。現在の一実施例では、記憶媒体22はCD−ROM
である。別の代替実施例では、記憶媒体22はPCカー
ド(PCMCIAカード)であることができ、その場
合、ドライブ14はPCMCIAスロットに置換される
ことになろう。固定またはハードディスク、DVD(デ
ィジタルビデオディスク)、または他の現在使用可能な
記憶媒体、並びに近い将来開発されるかも知れない記憶
媒体を含む他のいろいろな記憶媒体を使用することがで
きる。記憶媒体22は、冒頭に参照した係属出願 "IMPR
OVED SYSTEM AND METHOD FOR USE AND STORAGE OF GEOG
RAPHIC DATA ON PHYSICAL MEDIA"に詳細に開示されてい
るような地理的データを含んでいる。
【0012】ナビゲーションシステム10は、測位シス
テム24も含むことができる。測位システム24は、当
分野においては公知のGPS型技術、推測型システム、
またはこれらのシステムの、または他のシステムの組合
せを利用することができる。測位システム24は、信号
26をプロセッサ12へ出力する。信号26は、プロセ
ッサ12上で走るナビゲーション応用ソフトウェア18
によって使用され、ナビゲーションシステム10の位
置、方向、速度等を決定することができる。ナビゲーシ
ョンシステム10は、記憶媒体22上に格納されている
地理的データを多分測位システム24からの出力26と
共に使用して、種々のナビゲーション応用機能を提供す
る。これらのナビゲーション応用機能は、ルート計算、
地図表示、車両測位(例えば、マップマッチング)、運
転生成(詳細な指令が、所望の目的地に到達するために
供給される)、及び他の特色を含むことができる。これ
らのナビゲーション応用特色は、ナビゲーション応用ソ
フトウェア18の一部であるナビゲーション応用プログ
ラム(即ち、サブプログラム、または機能)によって遂
行される。ナビゲーション特色は、ディスプレイ27、
スピーカ29、または他の手段によってユーザ(例え
ば、車両運転手)に提供される。
【0013】図2を参照する。ナビゲーション応用ソフ
トウェアプログラム18は、分離した応用(または、サ
ブプログラム)200を含んでいる。ナビゲーションシ
ステム10のナビゲーション応用プログラム200は、
ルート計算機能、運転生成機能、地図表示機能、車両測
位機能、目的地解明能力等々を含むものと考えることが
できる。図2は、ルート計算機能28、地図表示機能3
0、運転生成機能32、及び他の機能またはサブプログ
ラム34を含むこれらの分離したナビゲーション応用2
00を示す。これらのナビゲーション応用サブプログラ
ムは、ナビゲーション応用ソフトウェアプログラム18
内の別々の機能、または応用として表されているが、こ
れらの機能は単一のプログラムとして組合せ、供給する
ことができる。
【0014】図2では記憶媒体22は、地理的データ4
0を格納しているように示されている。地理的データ4
0は、1つまたはそれ以上のコンピュータ可読データフ
ァイル、またはデータベースの形状である。地理的デー
タ40は、特定の地域内の、またはその地域に関連する
道路及び交差点の位置に関する情報を含むことができ、
また一方通行、回転禁止、街路番地、代替ルート、ホテ
ル、レストラン、博物(美術)館、スタジアム、オフィ
ス、自動車ディーラー、自動車修理業等に関する情報も
含むことができる。地理的データ40は、ナビゲーショ
ン応用プログラム18のナビゲーション応用機能200
による使用及びアクセスを容易にするようなフォーマッ
トに編成され、記憶媒体22上に格納されている。地理
的データ40の編成及び格納に関しては、前記参照係属
出願 "IMPROVED SYSTEM AND METHOD FOR USE AND STORA
GE OF GEOGRAPHIC DATA ON PHYSICAL MEDIA"に詳細に記
述されている。
【0015】ナビゲーション応用ソフトウェア18の種
々の別々のナビゲーション応用200は、ナビゲーショ
ンシステム10のユーザに有用なナビゲーション特色を
提供するために、記憶媒体22からの地理的データ40
の部分にアクセスし、読み取る。一実施例では、データ
アクセスインタフェースレイヤ41が、種々のナビゲー
ション応用200(機能28、30、32、及び34の
ような)と、地理的データセット40との間に配置され
ている。データアクセスインタフェースレイヤ41は、
ナビゲーション応用機能200を、地図データベース4
0のフォーマッティング、格納、及び他のディテールか
ら分離する。種々の異なるナビゲーションシステムプラ
ットフォームが、共通の地理的データベース製品、即ち
記憶媒体22上に格納されている地理的データセット4
0を使用するために、データアクセスインタフェースレ
イヤ41が設けられている。更に、データアクセスイン
タフェースレイヤ41は、エンドユーザが彼等のナビゲ
ーションシステム内の地理的データを更新するのを容易
にする。
【0016】II.データアクセスインタフェースレイヤ
−概要 データアクセスインタフェースレイヤ41は、ナビゲー
ションシステム10内に存在できるソフトウェア成分で
ある。好ましい実施例では、データアクセスインタフェ
ースレイヤ41の少なくとも一部分が、ナビゲーション
システム10内のナビゲーション応用ソフトウェア18
を形成している実行可能なモジュール内にリンクまたは
コンパイルされている。ナビゲーション応用ソフトウェ
ア18は、ナビゲーションシステム10が動作する時に
ROM 16からメモリ20(図1)内へロードされ
る。データアクセスインタフェースレイヤ41内には、
幾つかのサブシステム成分が存在している。これらのサ
ブシステム成分と、ナビゲーション応用ソフトウェア成
分200への外部インタフェース及びナビゲーションシ
ステム10のオペレーティングシステム202との間に
は、内部インタフェースが存在している。データは、論
理データエンティティとしてナビゲーション応用に提示
される。論理データモデルエンティティレコードは固定
長であり、どのような相互参照情報も伴わない圧縮解除
されたデータを含んでいる。
【0017】好ましい実施例では、データアクセスイン
タフェースレイヤ41は、ソフトウェア機能のライブラ
リの形状で設けられている。機能のこのライブラリは、
ナビゲーション応用ソフトウェアプログラム18の種々
の成分、即ちサブプログラム200によって使用される
ようにデータアクセスを与える。一つの好ましい実施例
では、これらのライブラリ機能の若干、または全ては、
種々のナビゲーション応用200に直接リンクされてい
てナビゲーションソフトウェア製品18を形成してい
る。従って、データアクセスインタフェースレイヤ41
は、別々に供給される地理的データベースを使用するO
EM(相手先商標製造会社)のナビゲーションシステ
ム、またはアフターマーケット自動車用ナビゲーション
システムのナビゲーション応用ソフトウェア内に組み込
まれる。後述するように、代替実施例では、データアク
セスインタフェースレイヤ41は車両内以外のナビゲー
ションシステム内に組み込まれる。
【0018】好ましい実施例のソースコードはCプログ
ラミング言語で書かれているが、代替実施例では他の言
語を使用することができる。データアクセスインタフェ
ースレイヤ41は種々の異なるナビゲーションシステム
と共に使用されるので、インタフェースレイヤ41はこ
れらのシステムの間の差を考慮に入れる。若干の車載ナ
ビゲーションシステムは、比較的小容量のRAM、遅い
I/Oデバイス、及び所有権を主張できる(プロプラエ
タリ)及び/または実時間向きオペレーティングシステ
ム核(カーネル)を有している。これらのナビゲーショ
ンシステムの若干は最適ルートを計算し、エンドユーザ
を実時間で順番に案内する。従って、種々の位置及びヘ
ッディングセンサ情報を実時間で、またバックグラウン
ドに統合すると有利である。これらのナビゲーションシ
ステムの若干は、地図作成表示、ルート目的点への柔軟
な能力、及び車両内の人間工学向けのインタフェースを
も提供する。
【0019】前述したように、データアクセスインタフ
ェースレイヤ41は、ナビゲーション応用ソフトウェア
18を、物理的媒体22上の地理的地図データベース4
0のサイズ、複雑さ、及び開発には無関係にする。好ま
しい実施例では同じような、または同一データアクセス
インタフェースレイヤを、異なるナビゲーションシステ
ムによって使用することができる。データアクセスイン
タフェースレイヤ41は、異なるハードウェアプラット
フォーム間で移植することができる。データアクセスイ
ンタフェースレイヤ41は、広範な製品の能力及びハー
ドウェアプラットフォームに対して、殆どの、または全
ての想定されるナビゲーション応用機能を支援する汎用
性を提供する。好ましい実施例においては、データアク
セスインタフェースレイヤを構成しているソフトウェア
ライブラリは、256 Kバイトより少ないメモリと、16バ
イトのスタックメモリと、少なくとも 256Kバイトのヒ
ープメモリとを使用する。
【0020】前述したように、地理的データ40はCD
−ROMのような記憶デバイス22上に格納されてい
る。好ましい実施例においては、地理的データは前記参
照係属出願 "IMPROVED SYSTEM AND METHOD FOR USE AND
STORAGE OF GEOGRAPHIC DATAON PHYSICAL MEDIA"に記
述されている物理的記憶フォーマット特色の若干、また
は全てを使用して格納されている。物理的記憶フォーマ
ットに使用される特色は、地理的データ及び関連サード
・パーティデータ(“TPD”)への効率的なアクセス
を与える。記憶媒体の型が異なれば、それぞれのデータ
容量及びアクセス特性も異なる。従って、上記係属出願
に開示されている物理的記憶フォーマットは、ナビゲー
ションシステムへの使用を意図しているいろいろな媒体
を考えている。データアクセスインタフェースレイヤ4
1のこの実施例は、上記係属出願に開示されている物理
的記憶フォーマットを使用しているが、本明細書に開示
するデータアクセスインタフェースレイヤの若干の、ま
たは全ての特色は、他のフォーマットと共に使用するこ
とができる。
【0021】上記係属出願に開示されているように、地
理的データは、地理的データセットコンパイラによって
媒体上に格納される。コンパイラは、交換フォーマット
で地理的データ及び関連サード・パーティデータを受け
入れる。地理的データ及びサード・パーティデータはコ
ンパイラへ入力され、コンパイラは適切な物理的記憶フ
ォーマットの形状の出力を生成する。地理的データは、
カリフォルニア州サニービルの Navigation Technologi
esによって出版されたものであってよい。図3は、ナビ
ゲーションシステム10のブロック線図であって、デー
タアクセスインタフェースレイヤ41の成分を示してい
る。図3では、データアクセスインタフェースレイヤ4
1は、論理的に、ナビゲーション応用プログラミング2
00の下、オペレーティングシステム202の上に示さ
れている。これにより、データアクセスインタフェース
レイヤ41は、種々のナビゲーション応用ソフトウェア
プログラム200からのデータアクセス要求に応答する
ことができる。
【0022】データアクセスインタフェースレイヤ41
を形成しているソフトウェアライブラリは、3つの主要
サブシステムからなると見做すことができる。一番上の
サブシステムは、データアクセスプログラミングインタ
フェース質問( query ) 論理(“DQL”または「質問
論理」)サブシステム210である。質問論理サブシス
テム210は、ナビゲーション応用ソフトウェアプログ
ラム200に機能呼出しインタフェース212を提供す
る。データ応用インタフェースレイヤ41は、ナビゲー
ション応用プログラム200に、記憶媒体22上の地理
的データ40のデータ構造ビュー(「論理データモデ
ル」、または“LDM”と呼ぶ)を限定する。現在では
好ましい実施例においては、レイヤ41によって限定さ
れるデータ構造ビューはC言語においてである。前述し
たように、論理データモデルは完全に圧縮解除された形
状のエンティティを表している。論理データモデル形状
のこれらのエンティティは圧縮されていない。これはデ
ータエンティティ内の空間を浪費するが、ナビゲーショ
ン応用がデータエンティティを即時に使用することを容
易にする。任意の型の各データエンティティは、固定さ
れた既知の所定サイズを有することができる。また、好
ましい実施例では、論理データフォーマットのエンティ
ティは、データがナビゲーション応用によって使用でき
るようになる前に、処理を必要とする相互参照情報また
は他の型の情報を含んでいない。
【0023】質問論理サブシステム210は、ナビゲー
ション応用プログラム200が論理データモデルフォー
マット内の特定のセットのエンティティを要求できるよ
うにする1組の機能呼出しを含んでいる。質問論理サブ
システム210は、要求されたエンティティを探知し、
結果的に得られたデータセット(これが、ナビゲーショ
ン応用プログラム200の要求した成分へ戻される)を
管理する。質問論理サブシステム210は、データアク
セス質問を「パーセル」と呼ぶ物理的媒体の小分け(サ
ブディビジョン)に分解する。パーセルは、要求された
データを、媒体22上の地理的データ40の物理的記憶
フォーマットで含む。質問論理サブシステム210は、
質問結果のセット(1つより多いレコードを戻すことが
できる質問については「カーソル」と呼ぶことができ
る)の管理をも行う。カーソルは、ナビゲーション応用
プログラムが、翻訳された( translated )論理データモ
デル形状の各レコードのメモリ内コピーを必要とせず
に、大きい質問結果のセットにアクセスできるようにす
る構成体である。
【0024】質問論理サブシステム210の下は、イン
デックス管理及びデータ翻訳(IMN)サブシステム2
16である。インデックス管理及びデータ翻訳サブシス
テム216は、幾つかの別々の機能を遂行する。第1の
機能は、質問論理サブシステム210によって指図され
た、媒体上に記憶されている物理的エンティティに関す
るデータを、インデックス情報を使用して探知すること
である。インデックス管理及びデータ翻訳サブシステム
216が遂行する第2の機能は、最適化されたエンティ
ティをアンパックその他で圧縮解除し、エンティティを
論理データモデルデータエンティティに変形( transfor
m ) してそれらを要求したナビゲーション応用プログラ
ム200に戻すことである。媒体上に格納されている地
理的データ40がパック、または圧縮されている場合に
は、サブシステム216によって遂行される第2の機能
が最適化されたエンティティをアンパック、その他で圧
縮解除するのに役立つので、それらを論理データモデル
フォーマットに変形することができる。インデックス管
理及びデータ翻訳サブシステムが遂行する別の機能は、
後述するように、異なるバージョン間で順方向/逆方向
互換性を提供することである。
【0025】インデックス管理及びデータ翻訳サブシス
テム216の下は、資源管理サブシステム220であ
る。前述したように、若干のナビゲーションシステムに
おいては、メモリの量は比較的小さく、I/O帯域幅は
比較的狭い。これらの資源の管理のための普通の技術は
制限され得る。例えば、遅いI/Oに起因する性能問題
を解決するために若干のナビゲーションシステムに使用
される一つの方法は、データをキャッシュするメモリを
使用し、それによって物理的I/Oを最小にすることで
ある。しかしながら、特にナビゲーション応用200の
複数機能を同時に動作させる必要があり得る場合には、
これらの型のナビゲーションシステム内のメモリも同じ
ように制限され得る。資源管理についての改善された方
法が本実施例によって提供される。本実施例では、デー
タアクセスインタフェースレイヤ41にはそれ自体の資
源管理サブシステム220が設けられており、これはナ
ビゲーション応用プログラム200によって遂行される
どのような資源管理機能からも分離されている。インタ
フェースレイヤ41には、それが独占的に使用するため
の、そして資源管理サブシステム220によって管理さ
れる、ナビゲーションシステムメモリの一部分が設けら
れている。更に、資源管理サブシステム220は、ナビ
ゲーションシステムメモリの付加的な部分を、ナビゲー
ション応用プログラムがそれらを必要としない時に使用
する能力も有している。資源管理サブシステム220
は、物理的記憶フォーマットの特定データ編成を考慮に
入れ、質問論理サブシステムのデータアクセス要求に焦
点を当てることによって、メモリ及びI/Oの改善され
た管理をも行う。資源管理サブシステム220は、デー
タアクセスタスクに関して、キャッシュメモリバッファ
及び物理的I/Oへのアクセスを調停する。これらの資
源の管理は、データアクセスインタフェースレイヤ41
のレベルより上の、即ちナビゲーション応用プログラム
200のソフトウェアにおける動作とデータニーズとを
調和させても利益が得られる。ナビゲーション応用プロ
グラム200のデータアクセスニーズは、どのデータを
キャッシュメモリ内に保持するのかを決定するのを援助
するために使用される。この情報を資源管理サブシステ
ム220へ供給する一つの有利な方法は、(データアク
セスインタフェースレイヤ41が、予測される将来使用
のためにデータをバックグラウンド内に準備可能にす
る)付加的なアクセスプログラムパラメータを通すこと
である。これは、ナビゲーション応用プログラムが即時
に要求されたデータを待機する場合には、データアクセ
ス呼出しに追加される。更に、資源管理サブシステム2
20は、物理的媒体からのデータアクセスの順番を制御
することを可能にするパラメータを受け入れることがで
きる。
【0026】これらの各インタフェースレイヤサブシス
テムに関して、以下に更に詳しく説明する。 III .質問論理(DQL)サブシステム210 質問論理サブシステム210は、データアクセスインタ
フェースレイヤ41を形成しているソフトウェアライブ
ラリの1つのレベルを表している。質問論理サブシステ
ム210は、ナビゲーション応用200に地理的データ
ベースのビューを供給することによってナビゲーション
応用プログラム200へのインタフェース212を実現
する。本実施例では、データアクセスインタフェース4
1が、データアクセスのために設けられている。データ
アクセスインタフェース41は、1組のC言語データ構
造(論理データモデル)と、これらの論理データモデル
エンティティを、地理的データにアクセスするための機
能呼出しであるナビゲーション応用ソフトウェアプログ
ラム200へ送給する1組の機能呼出しとを限定してい
る。(データインタフェースレイヤ41の好ましい実施
例はC言語構造として限定されているが、インタフェー
スレイヤはどのような適当なプログラミング言語で限定
することもできる。)好ましい実施例においては、ナビ
ゲーション応用プログラムによってなされる各データア
クセスインタフェースレイヤ機能呼出しは、質問論理サ
ブシステム210内の対応する機能呼出しを取り囲むラ
ッパ(wrapper ) である。
【0027】要約すれば、質問論理サブシステム210
は、ナビゲーション応用プログラムに3種類のデータア
クセス能力を与える。質問論理サブシステムによって与
えられる1つの種類のデータアクセスによってナビゲー
ション応用プログラムは、そのデータベース識別子(D
BID)によって、特定のデータエンティティを要求す
ることができる。質問論理サブシステム210は要求さ
れたデータエンティティを、論理データモデルフォーマ
ットでナビゲーション応用へ供給する。質問論理サブシ
ステム210によって与えられる別のデータアクセスに
よって、ナビゲーション応用は、特定のデータエンティ
ティに関連する1組のデータエンティティを要求するこ
とができる。質問論理サブシステムは、ナビゲーション
応用をカーソル(詳細は後述する)と共に、結果として
生ずる1組のデータエンティティに供給する。結果とし
て生じたデータエンティティのセットの若干、または全
ては論理データフォーマットであることができる。質問
論理サブシステムによって与えられる第3の種類のデー
タアクセスによって、ナビゲーション応用は、探索要求
によってデータを入手することができる。質問論理サブ
システムは、探索基準に合致する得られた1組のデータ
エンティティにカーソルを戻す。
【0028】インタフェース212を形成している機能
によってナビゲーション応用プログラム200は、特定
のエンティティ、またはエンティティのグループ(例え
ば、「ノード」、「場所」、「セグメント」、「関心
点」、「郵便コード」等)を要求することができる。こ
れらは、直接的にそのエンティティの一部分であるか、
またはそれ以外にそのエンティティに密接的に関連する
属性の特定のサブセット(例えば、「ノードXに端点を
有する全てのセグメント」、または名前の中に「レーク
(湖)」を含む全ての自治体、等々)によって識別(ク
ォリファイ)することができる。代替として、これらの
要求は、指定された矩形領域内の全てのセグメント、ま
たは特定の名前が付けられた場所の内側のような地理的
パラメータ、または属性によっても識別することができ
る。地理的識別子は、主要地図データエンティティに適
用することができ、また所望データの探索範囲を狭める
のに有用であり得る。
【0029】質問論理サブシステム210内の機能は、
データへの全面的なアクセスを提供する。これは、何れ
かの、及び全ての論理データモデルエンティティへのア
クセスが、ナビゲーション応用の目的には無関係に、合
理的な性能レベルで支援されることを意味している。例
えば、ルート案内ソフトウェア28(図2)が、関心点
データへアクセスすることを要求するかも知れない。デ
ータへの全面的なアクセスのための支援は、エンティテ
ィの分類(ルート計算または地図表示のような重要機能
に要求されるエンティティのベースセットへのデータア
クセス性能を最適化するために、物理的記憶フォーマッ
トレベルで行われる)には無関係に行われる。データへ
の全面的なアクセスは、地理的質問修飾子と共に、ある
共同作用を遂行する。例えば、矩形質問は、セグメント
またはノードのような地理的データにとっては極く普通
であるが、街路名及び関心点にとっても有用である。
【0030】質問論理サブシステム210は、例えば、
データは即時に要求されてはいないが、直ぐに必要にな
ることが予測されるような、本質的に予測されるデータ
アクセストランザクションを開始させる能力も含んでい
る。ナビゲーション応用プログラムが作業を遂行し続け
ることを可能にするために、この型のデータアクセスト
ランザクションをバックグラウンドにおいて行うことが
好ましい。以上のように、データが即時に要求される場
合、質問論理サブシステム210は通常のアクセス呼出
しに加えて、これらの予測アクセス呼出しを行う能力を
与える。この機能は、ナビゲーション応用プログラム2
00と共に、どのデータが次に要求されるかを予測す
る。質問論理サブシステム機能の若干は、単一のエンテ
ィティ、または特定のエンティティに関する付加的なデ
ィテールを戻す。しかしながら、他の機能は、予測でき
ない数のエンティティを戻す。この数は、特定の質問、
及びそれが識別される程度に依存して、潜在的には極め
て大きくなり得る。この理由からこれらの質問論理サブ
システム機能は、カーソル管理サブシステム249を含
んでいる。カーソルは、質問時に限定される。カーソル
は、質問によって作成された任意に大きい結果のセット
の中にウィンドウ(後述)を形成する。カーソルによっ
てナビゲーション応用は、データがカーソルを通して取
り出される時に、どれ程多くのエンティティを戻すべき
かを指定することができる。データアクセスプログラミ
ングインタフェース212内の汎用カーソル管理機能
は、ナビゲーション応用ソフトウェアプログラム200
が、その後にこのウィンドウを柔軟且つ便宜な手法で移
動させることを可能にする。
【0031】A.質問分解 データ質問論理サブシステム210は、プログラムから
の質問を、媒体上に存在するパーセルと呼ぶ1組の物理
的データの小分けに分解することによって、ナビゲーシ
ョン応用プログラム200へのインタフェースを実現す
る。これらのパーセルは、空間的に編成されたデータ、
非空間的データ、インデックス情報、または他のデータ
を含むことができる。質問に応答してパーセルが識別さ
れると、それらはメモリ内に読み込まれる。あるパーセ
ル内のデータを更にサブセットに編成し、質問を分解す
るためにパーセル内の(調べる必要がある)データの量
を最小にすることができる。データ質問論理サブシステ
ム210が特定の要求に関するカーソル結果のセットを
作成するために、適切なパーセルまたはパーセルデータ
サブセットが識別され、エンティティがこれらのパーセ
ルまたはパーセルデータサブセット内に位置付けされ
る。代替として、常に単一のレコードを戻し、そしてカ
ーソルを構成することを要求しないような、より簡単な
質問に対しては、単一の論理データレコードを直接ナビ
ゲーション応用ソフトウェアプログラム200へ戻すこ
とができる。しかしながら、これらの両アプローチは共
に、1つまたはそれ以上の物理的パーセル(最終的には
記憶媒体22上に物理的記憶フォーマットで存在する)
を探知して入手し、またパーセルデータのあるサブセッ
トを物理的に調べて結果のセットを作り出すエンティテ
ィを探知する。結果のセットが識別されると、エンティ
ティは論理データモデルフォーマットに変形され、ナビ
ゲーション応用ソフトウェアプログラム200へ戻され
る。
【0032】質問を分解するには、記憶媒体22上で使
用されている特定の物理的記憶フォーマットに関する情
報を必要とする。データアクセスインタフェースレイヤ
41は、特定の物理的記憶フォーマットに従属するその
ソフトウェアライブラリの部分を分離し、そのライブラ
リの他の成分を特定の物理的フォーマットから独立させ
ることを可能にする。記憶フォーマットに従属する成分
は、インデックス管理及びデータ翻訳サブシステム21
6内に含まれる。このサブシステム216は更に2つの
サブシステム、即ち、インデックス管理及びナビゲーシ
ョンサブシステム242と、物理的から論理的への(以
下、物理・論理という)データ翻訳サブシステム244
とを含む。物理的媒体へのアクセスを最小にするため
に、少なくとも2つのアプローチが使用される。一つの
アプローチは、データをルックアップするためにパーセ
ル内のインデックス情報を使用することである。別のア
プローチは、データエンティティが位置しているパーセ
ルを明示的に識別するデータエンティティIDを使用す
ることである。(この後者のアプローチは、前記参照係
属出願に詳細に開示されている。)インデックス情報及
び明示データエンティティIDの両者は、質問を、パー
セル、パーセルの小分け、またはレコードレベルに分解
するために使用される。使用可能なインデックス情報の
位置及び型は、物理的記憶フォーマットに依存する。こ
れは、インデックスをナビゲートするアルゴリズムも物
理的記憶フォーマットに依存することを意味する。物理
的媒体上でインデックスをナビゲートする機能は、イン
デックス管理及びナビゲーションサブシステム242内
に含まれている。同様に、圧縮されたデータの、物理的
媒体上のフォーマットから質問分解に従順な形状への変
形、及びナビゲーション応用プログラムへ戻すための論
理データモデルフォーマットへの翻訳は、物理・論理デ
ータ変形サブシステム244内に含まれる。
【0033】質問論理サブシステム210によって遂行
される質問分解プロセスは、データアクセスに関して
は、インデックス管理及びナビゲーションサブシステム
242及び物理・論理サブシステム244によって遂行
されるフォーマット従属サービスに依存する。これによ
り、質問論理サブシステム210を一般化し、物理的記
憶フォーマットから独立させることができる。また質問
分解プロセスは、物理的媒体またはキャッシュメモリか
らパーセルを入手するために、及びプライベートダイナ
ミックメモリバッファを入手するために、より低いレベ
ルのサービスも使用する。これらのサービスは、資源管
理サブシステム(SRM)220によって提供されるも
のである。インデックス管理及びナビゲーションサブシ
ステム242、物理・論理サブシステム244、及び資
源管理サブシステム220は、質問分解プロセスのため
の基礎をなしており、図3のデータ質問論理サブシステ
ム210のレベルよりも論理的に下に示されている。こ
のレイヤ化されたアプローチは、データ質問論理サブシ
ステム210と、インデックス管理及びナビゲーション
サブシステム242及び物理・論理サブシステム244
の両方との間に付加的なインタフェースを限定してい
る。
【0034】インデックス管理及びナビゲーションサブ
システム242内の1つのインタフェース248は、デ
ータ質問論理サブシステム210からインデックス指定
子及び質問パラメータ情報を取り、パーセル識別子のセ
ットを戻す。パーセル識別子は、媒体上の物理的記憶フ
ォーマットでのデータの物理的編成に関連するパーセル
を識別するための、フォーマットに特定の構造体であ
る。パーセル識別子は、メモリ内の物理的パーセルを指
すポインタを入手するために、資源管理サブシステム2
20へ渡される。インデックス管理及びナビゲーション
サブシステム242内の別のインタフェース250は、
データ質問論理サブシステム210を介してナビゲーシ
ョン応用プログラム200によって渡された特定エンテ
ィティ識別子から、そのエンティティを含むパーセルの
ための識別子への翻訳を行う。質問を、特定のパーセル
データサブセットまたはレコードに更に分解するために
は、データ質問論理210と、インデックス管理及びナ
ビゲーションサブシステム242との間に付加的なイン
タフェース253が必要である。このインタフェース2
53を介して渡された質問パラメータは、パーセルの内
部インデックス(即ち、パーセルデータサブセットのた
めのインデックス)をナビゲートして対応するパーセル
データサブセットまたはレコードに位置付けするため
に、インデックス管理及びナビゲーションサブシステム
242によって使用される。
【0035】ある質問をパーセル内の特定のエンティテ
ィまたはエンティティセットに分解するために内部イン
デックス情報が存在しない場合は、データ質問論理サブ
システム210のレベルにおいて暴力( brute-force )
レコード検査またはバイナリ探索技術が与えられる。こ
れらのアプローチが使用される場合、エンティティは、
物理的記憶フォーマットには無関係な形状で属性値を調
べることを可能にする圧縮解除された中間フォーマット
(“DIF”)で表される。圧縮解除された中間フォー
マットは、物理的記憶フォーマット(媒体の型が異なれ
ば変化する可能性がある)には無関係である。好ましい
実施例では、中間フォーマットは物理的フォーマットの
バージョンレベルの如何なる変化にも無関係である。こ
の独立性によって、物理・論理サブシステム244の主
要クライアントである質問論理サブシステム210は、
質問を分解するために、この表現でデータを調べて理解
することができる。圧縮解除された中間フォーマット変
換インタフェースは主としてレコードをベースとしてお
り、もし必要ならば、パーセルの小分け内での変換のた
めの準備をする。より新しい物理的記憶フォーマットデ
ータ仕様レベルから圧縮解除された中間フォーマットへ
の翻訳を容易にするために、変換プロセスはメタデータ
テーブル(後述)も使用する。
【0036】完全論理データモデルフォーマットでレコ
ードを維持するのに必要な時間及び空間オーバヘッドを
防ぐために、圧縮解除された中間フォーマットが存在し
ている。論理データモデルフォーマット内のエンティテ
ィのサイズは、対応する圧縮解除された中間フォーマッ
トよりも遙かに大きい。論理データモデルエンティティ
はサイズが固定されたエンティティであり、これらは応
用ソフトウェアに知られており、また質問論理システム
210からインタフェース212を通して戻される。ナ
ビゲーション応用へ戻されるレコードだけを、中間フォ
ーマットから論理データモデルフォーマットに据え置き
変換することによって、特定の質問を満足させないエン
ティティに必要なメモリの量及び変換オーバヘッドが最
小になる。圧縮解除された中間フォーマットと、論理デ
ータモデルエンティティ型との間には1対1の関係が存
在する。
【0037】圧縮解除された中間フォーマットへの変形
は、物理・論理サブシステム244が提供するインタフ
ェース257に頼っている。これは、同一パーセル内の
エンティティに対応する全てのデータをローカライズす
る中間フォーマットを使用する。この中間フォーマット
でデータを保持するのに必要なメモリの量は、論理デー
タモデルフォーマットで同一データエンティティを保持
するのに必要なデータの量よりも小さいことが好まし
い。最後に、結果のセットを構成するエンティティが質
問分解論理によって識別された時、データをナビゲーシ
ョン応用プログラム200へ戻すために論理データモデ
ルフォーマットに翻訳する別の物理・論理インタフェー
ス255を使用することができる。 B. カーソル管理 データアクセスインタフェースレイヤ41からの質問結
果は、カーソルが含まれているか否かには拘わりなく、
ナビゲーション応用ソフトウェアプログラム200によ
って与えられるメモリバッファ内にコピーされる。これ
により、データアクセスインタフェースレイヤ41は、
ナビゲーション応用プログラム200に影響を与えるこ
となく、それに割当てられたメモリをそのメモリプール
に圧縮(即ち、コンパクトに)することができる。上述
したカーソル管理サブシステム249は、質問論理サブ
システム210の一部である。データアクセスインタフ
ェースレイヤ41内でカーソルをベースとする質問呼出
しが行われる場合、カーソル管理サブシステム249に
よって内部カーソルが作成され、データを要求したナビ
ゲーション応用プログラム200の1つにそのカーソル
の独特な参照が戻される。カーソル参照は、得られたデ
ータの全てを、またはある部分を入手するために使用さ
れる。カーソルを介してデータが入手されると、ナビゲ
ーション応用プログラム200はメモリバッファのサイ
ズを指定する。このサイズは、戻される論理データモデ
ルエンティティサイズの倍数であり、この倍数はその時
点にナビゲーション応用プログラムが一時に処理するた
めにどれ程多くのレコードを選択した(または、余裕が
ある)かに基づく。好ましい実施例では、論理データモ
デルエンティティが既知の固定サイズであるので、この
技術は容易にされる。
【0038】カーソル管理サブシステム249は、カー
ソル結果のセットを構成しているエンティティを2つの
異なる方法で格納している。図5Aを参照する。結果の
セット内の若干のエンティティは、完全に翻訳された論
理データモデル形状で保管される。セット内の全てのエ
ンティティが論理データモデル形状で維持されるか否か
は、質問結果のセットを形成しているエンティティの数
に依存する。結果のセットのサイズが第1のしきい値よ
り下である場合には、セット全体が圧縮解除された論理
データモデルエンティティのアレイ511として維持さ
れる。結果のセットがこの第1のしきい値を超えるカー
ソルの場合には、残された分はエンティティ識別子だけ
を含む第2のアレイ513内に維持される。エンティテ
ィ識別子(多くの場合、データベース識別子、即ち“D
BID”であることができる)によって、論理データモ
デルフォーマットへの変形のために、物理的パーセル内
のレコードに迅速にアクセスすることができる。
【0039】カーソル結果のセットを維持するために使
用されるメモリは、後述するように資源管理サブシステ
ム220によって提供される内部プライベートダイナミ
ックメモリ管理インタフェースを使用して動的に割当て
られる。極めて大きい結果のセットに遭遇した場合に
は、もしその質問を満足するエンティティの数が更に別
のしきい値を超えれていれば、結果のセットを部分的に
維持することができる。この第2のしきい値は、極めて
大きい結果のセットがメモリに、何等かの有害なインパ
クトを与えることを最小にするために設けられている。
これらの各しきい値は、ナビゲーション応用プログラム
200及びデータアクセスインタフェースレイヤ41を
含む実行可能なモジュール18がコンパイルされる時点
に構成することができる。特定の質問の完全な、または
部分的な実体( nature )が、呼出しを行ったナビゲーシ
ョン応用プログラム200に報告されるので、その質問
によって戻されるレコードの数を適切に解釈することが
できる。部分的結果のセットが参照カーソルについて維
持される場合、最大部分的質問限界に到達すると、質問
分解プロセスは一時的に停止する。後刻質問を続行する
ために、カーソルも、プロセスが停止した点において質
問分解プロセスを再開するのに充分な情報を維持する。
【0040】カーソル管理サブシステム249は、付加
的なカーソル機能性を提供する。特定の質問についてカ
ーソルが限定されると、そのカーソルは結果のセットの
始まりに位置決めされる。「次に取り出し」( fetch ne
xt )カーソル機能が、次のNレコード及び最後のレコー
ドが戻された後のカーソルの位置において、ナビゲーシ
ョン応用の結果バッファ(そのカーソルを確立した質問
呼出し内に指定されている)を充填する。カーソルは、
結果のセットを横切って移動する論理データモデルレコ
ードの「ウィンドウ」として維持されるので、カーソル
取り出しプロセスは、データアクセスインタフェースレ
イヤ41の内部のカーソルのアドレス空間から、ナビゲ
ーション応用プログラム200のアドレス空間へのメモ
リからメモリへの単なるコピーである。
【0041】カーソル位置を結果のセットの始まり、終
わり、または絶対位置にリセットする能力を含むカーソ
ル操作機能の種々の形状も、カーソル管理サブシステム
249によって与えられる。「次を入手」( get next )
を増補するために、「前を入手」( get previous )カー
ソル機能も与えられる。絶対位置決め機能は、カーソル
を確立する質問機能によって戻された結果のセットレコ
ードカウントにとって有用である。 IV. インデックス管理及びナビゲーション(IMN)サ
ブシステム242図3を参照する。インデックス管理及
びナビゲーションサブシステム242は、データアクセ
スインタフェースレイヤ41を形成しているソフトウェ
アライブラリ内の物理的フォーマット特定のインデック
ス管理及びナビゲーションソフトウェアの一部分を含ん
でいる。インデックス管理及びナビゲーションサブシス
テム242は、インデックス管理及びナビゲーションサ
ブシステム242の上の質問論理サブシステム210、
及び下の資源管理サブシステム220を、媒体上で使用
されている物理的記憶フォーマットから独立させること
ができる。
【0042】インデックス情報は、所望のエンティティ
または複数のエンティティを含むパーセルの位置を、種
々の探索基準に基づいて分解するために使用される。若
干の場合には、パーセル内の特定のデータサブセットを
探知するためにもインデックスが使用される。(特定の
パーセルに分解するために使用されるインデックスを
「外部インデックス」と称することができ、パーセル内
部小分けに分解するために使用されるインデックスを、
それがパーセル内に格納されることから「内部インデッ
クス」と称することができる。)外部インデックスは、
要求されたデータを含んでいないかも知れないパーセル
への物理的なアクセスを最小にする、または排除するた
めに使用される。外部及び内部の両インデックスは、候
補エンティティを検査するために行う必要がある圧縮解
除及び翻訳の量を最小にすることをも援助する。インデ
ックス情報を用いて、パーセル、パーセルデータサブセ
ット、またはレベルに分解する作業の種々の面が特定の
物理的記憶フォーマットに関係付けられているので、こ
の機能性は、フォーマットに特定のインデックス管理及
びナビゲーションサブシステム242において実現され
る。
【0043】特定の物理的記憶フォーマットに依存する
インデックス情報の特性の若干は、物理的媒体上のイン
デックスの根、どの型のインデックスが使用されている
か、及びインデックスをパーセル、データサブセットパ
ーセル、またはレコードレベルに分解するのか否かを含
むパーセルのための独特な識別子を含んでいる。更にイ
ンデックス情報の若干の型は、1つの型の記憶フォーマ
ット上に存在することはできるが、別の型の上には存在
することはできない。これらのインデックス特性に関す
る情報を維持するために、この情報をインデックス管理
及びナビゲーションサブシステム242内に維持するフ
レームワークが存在している。この情報は、物理的媒体
上に存在することができる。この情報は、インデックス
管理及びナビゲーションサブシステム242が使用する
ために、初期化時に読み出してメモリ内に維持すること
ができる。
【0044】物理的記憶フォーマット上に存在するイン
デックスのディテールを維持しているこのインデックス
情報フレームワークは、質問論理サブシステム210か
らの呼出しを介して受信した質問パラメータに基づい
て、データ質問論理サブシステム210が使用する最適
インデックスを決定するのに必要とする情報を入手する
ために使用できる1組のインタフェース245を含んで
いる。インデックスの最小サブセットを使用すると、イ
ンデックシング能力を完全にフレキシブルなセットにし
た場合にもたらされる質問論理サブシステム210にお
ける不要なオーバヘッドが最小になる。インデックシン
グ情報フレームワーク245は、質問パラメータセット
上に1つの構造をも供給し、これは特定のインックスを
使用して質問を分解するためにインデックス管理及びナ
ビゲーションサブシステム242に渡される。最後に、
インデックスを、現データベースバージョンまたは仕様
内には存在しないエンティティ及び/または属性の表現
で定義することを可能にするように、このフレームワー
クを拡張することができる。
【0045】媒体サイズ、媒体アクセス特性、エンティ
ティ型、及び特定の物理的記憶フォーマットの物理的編
成に依存して、幾つかの異なるインデックシング計画が
使用される。例えば、k−d木、またはその変形が空間
データの二次元分解に使用され、広くて浅い平衡多方向
探索樹(Bツリー)がCD−ROMに使用される物理的
記憶フォーマット内の若干の非空間データのために使用
される。インデックス管理及びナビゲーションサブシス
テム242は、これらの異なる型のインデックスの木の
中を探知し、ナビゲートするために使用される論理を実
現する。外部インデックス情報の場合、これらの木の葉
ノードは特定のパーセル識別子を指定する。パーセルの
内部のインデックス情報の場合、葉ノードは代わりに特
定のパーセルデータサブセットまたはレコードを指定す
る。データアクセスインタフェースレイヤ41内で使用
することを意図している独自の型の各インデックスは、
分離したモジュール内に、好ましくはCソースコードで
実現される。これは、特定のインデックシング計画が特
定の物理的記憶フォーマット内に使用されない場合に、
不要なコードが含まれることを減少させることによって
コードサイズを最小にする。
【0046】外部インデックシング情報が物理的媒体上
のパーセル内に格納されているので、インデックス管理
及びナビゲーションサブシステム242は、資源管理サ
ブシステム220を使用してインデックス情報を記憶媒
体からメモリバッファ内に物理的に読み込む。代替実施
例では、同一の機能呼出しの中で、またはそれを越えた
としても、これらのインデックスの若干は減少すること
が予測されるから、これらのインデックスパーセルをイ
ンデックスナビゲーションプロセスの進行と共にメモリ
内に保持しておくことができる。この理由から、インデ
ックスパーセルは、資源管理サブシステム220によっ
て実現されているキャッシング論理によって、メモリ内
に保持される。一実施例では、タスク(例えば、質問論
理システム210内のある機能)がインデックスを要求
した時に、インデックス管理サブシステム242は先ず
インデックスが使用可能か否かを調べる。もし所望イン
デックスが使用可能であれば、インデックス管理システ
ムは、メモリをタスクに戻してインデックスが使用可能
であることを指示し、またそのインデックスを使用して
探索するハンドルを含む。このハンドルは、そのインデ
ックスを使用して探索を遂行するために呼出されるポイ
ンタを含む。タスクはメモリストレージを入手し(後
述)、そのインデックスのキーのための情報を作成す
る。タスクは、インデックス探索の結果を保持するメモ
リをも入手する。
【0047】V.物理・論理データ翻訳(P2L)サブ
システム244 物理・論理データ翻訳(P2L)サブシステム244
は、データアクセスインデックスレイヤ41を形成して
いる記憶フォーマット特定のデータ翻訳ソフトウェア
を、ソフトウェアライブラリ内に含んでいる。これは、
データ質問論理サブシステム210及び資源管理サブシ
ステム220を、物理的記憶フォーマットから独立させ
ることを可能にする。物理的記憶フォーマット形状のエ
ンティティを、圧縮解除された中間形状に翻訳するため
のインタフェース260は、物理・論理サブシステム2
44によって提供される。このインタフェース260
は、先ずエンティティを圧縮解除する。もし必要なら
ば、メタ翻訳( metatranslation ) 段階261が後続す
る。結果を保持するために使用されるメモリバッファ
は、データ質問論理サブシステム210によって提供さ
れる。メタ翻訳段階261は、物理的記憶フォーマット
のバージョンレベルと中間圧縮解除フォーマットのバー
ジョンレベルとが等しい場合には、効率を高めるために
バイパスすることができる。
【0048】ナビゲーション応用プログラム200に戻
すべきエンティティを識別したデータ質問論理サブシス
テム210は、物理・論理サブシステム242内のイン
タフェース263を使用して、エンティティを圧縮解除
された中間形状から、最終的な論理データモデル形状に
翻訳する。非カーソル・単一エンティティ質問の場合に
は、呼出しを行ったナビゲーション応用プログラム20
0は、翻訳された論理データモデル出力を保持するメモ
リバッファを提供する。そうでない場合には、動的に割
当てられたプライベートカーソルメモリバッファが、デ
ータ質問論理サブシステム210によって提供される。
テーブルによって駆動されるメタ翻訳プロセスとは異な
り、論理データモデル翻訳は、物理・論理ソフトウェア
にコード化されている。
【0049】エンティティが、その後に繰り返されるア
クセスのためのデータアクセス呼出し中に、またはデー
タアクセス呼出しにまたがって、圧縮解除された中間形
状を持続していることが望ましいかも知れない。これ
は、同一データの圧縮解除及びメタ翻訳を繰り返して遂
行するために必要なCPUオーバヘッドを最小にするこ
とができる他に、出力バッファの割当てに含まれるメモ
リ管理オーバヘッドをも最小にすることができる。この
持続的な有効性( persistence ) の管理は、データ質問
論理サブシステム210によって提供される。このアプ
ローチは、同一の圧縮解除されたデータへの繰り返しア
クセスがどれ程屡々行われるかを決定するためのデータ
アクセスパターンの検査と共に、予測されるCPU及び
メモリ保管を考慮に入れる。メタ翻訳プロセスの総合的
な性能も、この解析の1つの要因である。
【0050】代替実施例においては、若干のデータエン
ティティは、圧縮解除された中間フォーマットへの中間
翻訳が行われることなく、物理的記憶フォーマットから
論理データモデルフォーマットへ直接変形される。メタ
翻訳とは、ある特定のデータバージョンレベル(「仕様
レベル」とも呼ばれる)における圧縮された物理的記憶
フォーマット表現から、データ質問論理サブシステム2
10に知られた他のデータバージョンレベルにおける中
間圧縮解除された表現へのデータの翻訳を意味してい
る。1つのバージョンレベルから別のバージョンレベル
への変形を容易にするために、メタデータテーブル25
9が使用される。物理的記憶フォーマットメタデータテ
ーブル259が媒体から、システム初期化時に半永久的
に割当てられたメモリ内へ読み取られる。メタデータプ
ロセスの詳細に関しては後述する。
【0051】VI. 資源管理(SRM)サブシステム22
0 資源管理サブシステム220は、データアクセスインタ
フェースレイヤ41を形成しているソフトウェアライブ
ラリのために、メモリ及びI/O資源へのアクセスを提
供する。資源管理サブシステム220は、ナビゲーショ
ン応用プログラム200もこれらの資源を争っているよ
うな多重タスキング環境において、データ応用インタフ
ェースレイヤ41による使用のためにナビゲーションシ
ステムメモリ及びI/O資源の可用性( availability )
を管理する。好ましい実施例においては、資源管理サブ
システム220は、インタフェースレイヤ41を介して
の地理的データベースへのアクセス以外のタスクに対し
ては、ナビゲーション応用ソフトウェアプログラム20
0のためにメモリ及びI/O資源を管理しない。
【0052】資源管理サブシステム220へは、2つの
主データアクセスインタフェースが存在している。第1
のインタフェースは、作業領域メモリを割当て、データ
アクセスインタフェースレイヤ41が使用するために独
占的に保留されているプールから作業領域メモリを自由
にする。第2のインタフェースは、パーセル識別子を指
定し、そのパーセルを含むキャッシュメモリバッファへ
ポインタを戻す。パーセルの優先順位、即ち、どれ程直
ちに(相対的に)パーセルを必要とするかの指示を指定
することができる。この特色によって、パーセルI/O
トランザクション及びキャッシュが争われた時のキャッ
シュ内のパーセルデータの持続的な有効性の優先順位付
けが可能になる。要求されたパーセルがキャッシュ内に
見出されない場合、物理的I/Oトランザクションが開
始されてパーセルを媒体から読み出す。資源管理サブシ
ステム220内には付加的なインタフェースが存在し、
実行時における資源管理戦略を調整できるように、ナビ
ゲーション応用ソフトウェア200が使用される。
【0053】性能を向上させるために、資源管理サブシ
ステム220が使用する少なくとも2つのアプローチが
存在する。第1は、データアクセスインタフェース41
を形成しているソフトウェアライブラリに専用のナビゲ
ーションシステムのヒープメモリの一部分からなる制約
されたメモリ環境でのI/Oトランザクションを最小に
し、最適化することである。第2は、メモリのこの比較
的小さい部分へのアクセスを管理することである。メモ
リ管理は、キャッシュバッファ内にデータを維持してI
/Oを最小にする方法、及び専用ヒープメモリをコンパ
クトにする方法を含む。これらのアプローチは、小さい
量のCPU及びメモリのオーバヘッドで達成される。こ
れらのアプローチを実現するために、記憶媒体上のデー
タの物理的編成、並びにデータ質問論理サブシステム2
10、及びインデックス管理及びナビゲーションサブシ
ステム242内に実現されている質問最適化技術を考慮
に入れている。
【0054】この資源管理サブシステム220は、種々
の媒体の型、物理的記憶フォーマット、オペレーティン
グシステム環境、及びデバイスドライバ能力にわたって
動作する。特定のナビゲーションシステムプラットフォ
ーム及びナビゲーションソフトウェア応用に関して、資
源管理サブシステム220を最適化する種々のメカニズ
ムが設けられている。これらのメカニズムは、コンパイ
ル時における構成パラメータのセッティングを含む。ま
た、実行時における資源管理挙動に影響するデータアク
セスインタフェースレイヤ41内の機能呼出しセットも
含む。更に、データアクセスのための呼出しは、バック
グラウンドデータアクセスのような組込み資源管理能力
を利用するように設計されている。また更に、資源管理
サブシステムは、ある機能によって1つより多くのパー
セルが要求された時に複数のパーセルに対する要求に優
先順位付けをすることもでき(即ち、機能レベル細分
性)、そして代替として、資源管理サブシステムは、1
つより多くの機能によって複数のパーセルが要求された
時でさえ、複数のパーセルに対する要求に優先順位付け
をすることさえできる。
【0055】図4は、ナビゲーションシステムにおいて
多重タスキング環境で使用されるインタフェースレイヤ
41の一実施例を示している。データ応用インタフェー
ス呼出しを作成する各ナビゲーション応用タスクAPP
1、APP2、・・・、APPnは、共用コード空間に
おいてインタフェースレイヤソフトウェアライブラリL
IB1、LIB2、・・・、LIBnとリンクされてい
る。各ライブラリは、データ質問論理サブシステム21
0、インデックス管理及びナビゲーションサブシステム
242、及び物理・論理サブシステム244、並びに殆
どの(または、全ての)資源管理サブシステム220を
実現している。図4の実施例に示すように、資源管理サ
ブシステム220のI/O管理者(IOM)部分270
は、データアクセスインデックスレイヤ41の残余のサ
ブシステム(即ち、データ質問論理サブシステム21
0、インデックス管理及びナビゲーションサブシステム
242、及び物理・論理サブシステム244、並びに殆
どの資源管理サブシステム220)とは別のプロセスと
して実現されている。これは、I/O管理者270は、
インタフェースレイヤ内の残余のサーバのように応用プ
ログラム200と静的にリンクすることはできないが、
その代わりに各プロセス内のインタフェースレイヤのリ
ンクされた部分を介して、別々の各ナビゲーションプロ
セス200A、200B、・・・、200nと共に動作
することを意味している。これにより、これらの他のタ
スクが走り続けていても、I/O管理者270はバック
グラウンドの物理的I/Oを処理し続けることができ
る。I/O管理者270のこの実施例は、非同期I/O
通知能力を支援するデバイスドライバを有していないナ
ビゲーションシステムに使用されよう。しかしながら、
もしナビゲーションシステムが非同期I/O通知能力を
支援するデバイスドライバを含む型であれば、I/O管
理者270の代替実施例を使用することができる。
【0056】A.メモリ管理 図4に示すように、システムヒープメモリ276の一部
分278は、データアクセスインタフェースレイヤ41
が独占的に使用するために割当てられている。このメモ
リプール278は、ナビゲーション応用200が使用す
るメモリの部分283からは分離されている。メモリプ
ール278のサイズは、データアクセスプログラミング
インタフェース212を通しての資源管理サブシステム
220への呼出しを介して、ナビゲーション応用プログ
ラム200によって決定される。資源管理サブシステム
220は、ナビゲーション応用プログラム200が、プ
ール278のサイズを実行時に動的に変化させることを
可能にする(両小分け間の矢印275で示す)。一実施
例では、メモリプール278の最小サイズは 256Kバイ
トであり、CD−ROM媒体に準備されている付加的メ
モリがキャッシュ内のデータの量を増加させる。
【0057】メモリプール278は、物理的媒体から読
み出された可変サイズのパーセルのためのキャッシュと
して、またデータアクセスインタフェースレイヤ41の
ソフトウェアライブラリ機能に対するプライベートの汎
用ヒープとして、データアクセスインタフェースレイヤ
41によって使用される。このヒープメモリから割当て
られたバッファは、圧縮解除されたデータレコードを保
持し、カーソル結果のセットのための一般的な作業空間
として使用される。キャッシュバッファとして使用され
るメモリは典型的にはより小さく、そしてサイズが変化
しがちな汎用プライベートヒープメモリから割当てられ
るメモリよりはサイズが大きく、より均一になる傾向が
ある。キャッシュバッファの管理も持続的な有効性のた
めの戦略が設けられていることを考慮に入れている。更
に、キャッシュ内の特定のパーセルの探索は、賦課され
るオーバヘッドをできる限り少なくするようにすべきで
ある。これらの異なってはいるが、重なり合っているメ
モリ管理目的は、2段( two-tiered )アプローチによっ
て支援される。第1段は、パーセルキャッシュ目的に適
するより均一な、且つより大きいバッファの管理の責を
負う。第2段は、これらのより大きいバッファによって
動作し、汎用ヒープメモリ割当てのためにそれらをより
小さい、そして均一性の少ない片に分割する。キャッシ
ュバッファの持続的な有効性戦略は、メモリバッファ管
理の第1段によって実現される。
【0058】メモリ管理の両段は、メモリ管理ライブラ
リ(“MML”または「メモリ管理者」)280によっ
て遂行される。メモリ管理ライブラリ280は、ナビゲ
ーション応用ソフトウェア200にリンクされている資
源管理サブシステム220の局部的に存在する部分であ
り、各ナビゲーション応用プロセスの一部として走る。
メモリ管理ライブラリ280は共用コードライブラリで
あり、相互排除技術(後述)を使用して複数の応用がメ
モリに同時にアクセスできるようにしている。例えば、
プロセス200A、200B、・・・、200nのよう
な複数の同時ナビゲーション応用プロセスが存在し得
る。メモリ管理ライブラリ280は、キャッシュ管理プ
ロセスも実現している。この2段メモリ管理アーキテク
チャは、内部メモリ割当てを追跡するために使用される
制御構造に要求されるメモリの量を最小にする。これら
の制御構造は、キャッシュ管理制御構造と共に、データ
アクセスインタフェースレイヤ41のメモリプール27
8内に存在している。多重タスキング環境において、こ
れらの制御構造へのアクセスを調停することによってメ
モリ要求を直列化するために、メモリ管理ライブラリは
セマフォ保護のようなプロセス間通信(IPC)技術を
使用する。これは、各ナビゲーション応用タスク200
A〜200nのメモリ管理ライブラリ280とメモリプ
ール278とを接続している破線277によって表され
ている。
【0059】最後に、メモリプール278から割当てら
れたメモリの一部分は、データアクセスインタフェース
レイヤ41のソフトウェアライブラリ成分によって使用
される。メモリプールのこの部分は、ナビゲーション応
用ソフトウェアプログラム200に共用される(また
は、それ以外に戻される)ことはない。これは、ナビゲ
ーション応用プログラム200がそれ自体のプライベー
トバッファを、戻された論理データモデルデータエンテ
ィティを保持するために割当てるようにすることによっ
て容易にされる。この分離によって、資源管理サブシス
テム220は圧縮戦略を追跡し、ナビゲーション応用プ
ログラム200がこのメモリ管理タスクを処理すること
を必要とせずに、メモリプール278の断片化(フラグ
メンテーション)を最小にすることができる。
【0060】B.キャッシュ管理 データ及びインデックスパーセルに関する要求は、パー
セル識別子によってメモリ管理ライブラリ280を通し
て経路指定される。キャッシュメモリ内のパーセルの探
索が遂行される。キャッシュ内にパーセルを見出せない
場合、I/O管理者270への物理的I/O要求が行わ
れる。パーセルがキャッシュメモリ内にあれば、資源管
理サブシステム220内のインタフェース285は、バ
ッファアドレスがデータ質問論理サブシステム210に
戻された時に、パーセルをバッファ内にロックする。こ
れは、データアクセスインタフェース呼出しが活動であ
る時に、バッファがスワップアウトされるのを防ぐ。資
源管理サブシステム220の付加的なインタフェース2
79はこのロックを解除し、データアクセスインタフェ
ース呼出しが制御をナビゲーション応用プログラムに戻
す前に呼出される。スワッピングは、多数の同時パーセ
ル要求がシステムをメモリオーバコミットメントにさせ
た時に発生し得る。
【0061】キャッシュされたパーセルのための持続的
な有効性戦略も、メモリ管理ライブラリ280内に実現
されている。この戦略は、どのバッファをスワップアウ
トすべきかを決定するために、バッファロック、優先順
位、使用履歴、及び使用カウントを考慮に入れる。ナビ
ゲーション応用ソフトウェアプログラム200は、最後
にはどのデータを必要とするか、対、今直ぐにどのデー
タが要求されているかを予測することができる。即時に
要求されたデータと、その後の応用に対して準備するデ
ータとの間のデータアクセスを区別するために、資源管
理サブシステム220は同期(即ち、フォアグラウンド
内の結果待ち)及び非同期(即ち、I/Oがバックグラ
ウンド内を進行している間に処理を続行)パーセル要求
を支援する。非同期呼出しは「キャッシュ準備」データ
アクセスインタフェース機能によって使用される。非同
期要求によって、ナビゲーション応用プログラム200
は、バックグラウンドにおけるI/Oトランザクション
を進めながら、有用な作業を続行することができる。ナ
ビゲーション応用プログラム200が非同期データ要求
をキャンセルできるように、資源管理サブシステム22
0内のインタフェース呼出しも設けられている。更に、
これらのフォラグラウンド及びバックグラウンド要求を
管理するために、ナビゲーション応用プログラム200
による精細な制御さえも与えるように、各データアクセ
スインタフェース呼出し内には資源優先値が設けられて
いる。
【0062】C.I/O管理者270 図4に示す実施例では、I/O管理者270は、物理的
I/Oに関する要求を受ける。これらのI/O要求は、
要求されたパーセルをキャッシュメモリ内に見出すこと
ができない場合に資源管理サブシステム220によって
供給される同期及び非同期「パーセル要求」によって発
生される。これが発生すると、メモリ管理ライブラリ2
80はI/O管理者インタフェース269を介してI/
O要求を開始し、I/Oトランザクション要求をI/O
管理者メッセージ待ち行列内に配置させる。図4には、
I/O管理者インタフェース269は資源管理サブシス
テム220の静的にリンクされた部分271として示さ
れいる。この場合、I/O待ち行列の争奪は、I/O管
理者インタフェース269を分離したI/O管理者プロ
セス270に接続するメッセージ待ち行列273のよう
なプロセス間通信技術を使用して管理される。メッセー
ジ待ち行列273は、各プロセス(即ち、クライアン
ト)毎にイベント通知の単一点を与える。メッセージ待
ち行列273はI/O完了、メッセージ割当て完了、ま
たは資源アクセス許容度を含むイベントの通知のために
使用することができる。他のイベントも支援することが
できる。各プロセス(即ち、クライアント)毎に1つの
クライアントメッセージ待ち行列が存在する。
【0063】好ましい実施例では、待ち行列273を介
して到着するI/Oトランザクションは、パーセル識別
子の表現で受信される。また、要求の優先順位の指示、
要求を行ったタスク(クライアント)の識別、要求の発
信者が使用するメッセージ待ち行列の指示を含むことも
できる。パーセル識別子を使用することによって、メッ
セージ管理ライブラリ280及びI/O管理者270
は、物理的記憶フォーマットに無関係であり続けること
ができる。資源管理サブシステム220内の物理的記憶
フォーマットへの従属性に関しては後述する。パーセル
識別子から物理的媒体アドレスへの翻訳が、これらのI
/O要求に対して遂行される。I/Oトランザクション
が媒体デバイスへディスパッチされると、I/O管理者
270は媒体から読み出されたデバイスを保持するため
にメモリ管理ライブラリ280からキャッシュバッファ
を要求する。これは、キャンセルされた要求がバッファ
を不要に要求し、解放することを防ぐことによってプロ
セス間通信オーバヘッドを減少させ、遅くとも考え得る
時点にバッファを割当てることによってキャッシュ争奪
を最小にする。
【0064】I/O管理者270がシステム性能を向上
させる2つの機能が存在している。既に説明した1つの
機能は、物理的I/Oが他の活動と並列に発生できるよ
うにしたことである。これにより、物理的I/Oトラン
ザクションが進行中であっても、他のナビゲーション応
用ソフトウェア機能200、またはデータアクセスイン
タフェースレイヤソフトウェア41は走り続けることが
できる。I/O管理者270によって提供される他の機
能は、到来するI/O要求を再順序付けすることを可能
にする直列化機能である。この再順序付けは、要求の優
先順位、媒体上のデータの物理的位置、現読み出しヘッ
ド位置を含む幾つかの要因に基づいている。他の要因も
含むこともできる。単一のナビゲーション応用プロセス
によって実行依頼された単一のトランザクション内にさ
え、複数のパーセルを指定することができる。これは、
単一のタスクだけがデータを要求している場合でさえ
も、I/O再順序付けが性能の向上をもたらし得ること
(即ち「機能レベル細分性」)を意味している。更に、
特にCD−ROMのような比較的遅いランダムアクセス
性能を有する媒体のための物理的記憶フォーマットの場
合には、インデックス及びデータ情報は冗長的に現れ得
るので、I/O管理者270は最も接近している冗長パ
ーセルを選択して読み出す。この特色は、部分的には、
I/O管理者270によって与えられる分散した読み出
しを支援することによって得られる。
【0065】上述した再順序付け能力の全ては、現物理
的読み出しヘッド位置を維持するI/O管理者270の
能力を使用する。これは、媒体デバイスドライバ290
(図3)から得られる。I/O管理者270は、「不透
明」パーセル識別子から1つの物理的媒体アドレス(ま
たは、冗長的に配置されているパーセルの場合には、複
数のアドレス)を入手する能力にも依存している。
(「不透明」とは、物理的記憶フォーマット媒体上でそ
れを特定的に何と呼ぶかを知らずに、I/O管理者27
0がパーセル識別子に沿って渡すことができることを意
味している。)物理的媒体アドレスは、物理的記憶フォ
ーマットに依存する。これらの従属性は、2つの付加的
な資源管理成分、即ち、物理的アドレスマッパ( mapper
)(PAM)296及びファイルデレクトリマッパ(F
DM)298によって、I/O管理者270の一般的な
部分から分離される。媒体デバイス分離は、媒体デバイ
ス分離レイヤ(MDIL)300によって与えられる。
【0066】(好ましい実施例においては、I/O管理
者270は媒体から読み出された全てのデータを処理す
る。若干の環境の下では、ナビゲーション応用が媒体上
のデータに直接アクセスすることができる。例えば、も
し媒体上に格納された特定の型のサード・パーティデー
タが存在すれば、ナビゲーション応用にとって、それに
直接アクセスすることが好ましいかもしれない。更に、
若干の他の型のデータは、媒体から直接読み出すか、ま
たはキャッシュへの格納をバイパスすることが有利かも
知れない。これらの型のデータは、音響またはビデオデ
ータを含む。これらの型のデータを使用する方法のため
に、音響またはビデオデータの場合には、キャッシュ格
納をバイパスし、ナビゲーション応用に直接流してエン
ドユーザに提示することが好ましいかも知れない。) D.ファイルディレクトリマッパ298 地理的データベース40は、記憶媒体22上の1つまた
はそれ以上の物理的バイナリファイル内に存在する。こ
れらのファイル内の全てのデータに関するパーセル識別
子、インデックス情報及びデータ情報は、これらのファ
イルの1つ内の物理的オフセットまたはアドレスに密接
に関係付けられている。I/O管理者270からの全て
のインタフェースレイヤI/Oは、物理的媒体のアドレ
ス及び広がり(サイズ)に関して遂行される。これらの
アドレス及び広がりは、媒体上の物理的な小分けの整数
として表される。CD−ROM媒体の場合、この物理的
な小分けは2Kバイトセクタである。I/O管理者27
0は、物理的記憶フォーマットアドレスマッパ296に
よって提供されるサービスを使用して、そのファイルの
始まりに対するパーセルの物理的媒体アドレスを入手す
る。I/O管理者270が絶対媒体アドレスを生成する
ために、ファイルの開始位置が決定される。この情報
は、ファイルディレクトリマッパ(FDM)298によ
って供給される。ファイルディレクトリは、媒体上の既
知の位置に存在している。このディレクトリは、それら
が地理的ファイルであろうと、なかろうと、媒体上の各
ファイル毎の物理的媒体アドレスを供給する。このファ
イルディレクトリは、特定の媒体について指定される。
好ましい実施例では、CD−ROM媒体に関するISO
−9660標準ファイルシステムが使用されるが、代替
ファイルシステムも使用できる。読み出し/書き込み媒
体の場合、DOS FATシステムが設けられ、地理的
ファイルは、FATインダイレクション( indirection
) をバイパスするために媒体上に連続的に編成されて
いる読み出し専用ファイルとして記憶されている。
【0067】ファイルディレクトリマッパ298は、媒
体に特定の(従って、物理的記憶フォーマットに特定
の)ファイルディレクトリ編成からI/O管理者270
を分離する。ファイルディレクトリマッパ298は、フ
ァイル名を、そのファイルの始まりの物理的媒体アドレ
スに翻訳するインタフェースを提供する。このインタフ
ェースは、ナビゲーション応用ソフトウェア200が使
用可能であるので、サード・パーティまたはナビゲーシ
ョン応用に特定のファイル(もしあれば)の位置を入手
することができる。このインタフェースによってナビゲ
ーション応用は、ファイル記述子及びバイトオフセット
に基づいてファイルI/Oフレームワークを実現するこ
とができるので、媒体デバイスドライバインタフェース
を介してサード・パーティまたはナビゲーション応用に
特定のファイルにアクセスすることができる。
【0068】ファイルディレクトリマッパ298は、そ
の構造の所定の情報に基づいて、媒体22上のファイル
ディレクトリの位置を確かめることもできる。呼出され
た時にファイルディレクトリマッパ298は、媒体上の
既知の位置からディレクトリを読み出す。これは、ファ
イルディレクトリマッパ298と媒体デバイス22との
間のインタフェース301によって図示されている。メ
モリ管理ライブラリ280から入手したプライベートバ
ッファは、オフセットが決定されるまでディレクトリの
一時的コピーを保持するために使用される。このアクテ
ィビティは、全ての地理的データファイルを初期化する
時に行われ、ディレクトリに対する繰り返しアクセスを
最小にする。各ファイル毎の開始位置は、動作セッショ
ン中ファイルディレクトリマッパ298内に保持され
る。
【0069】E.物理的記憶フォーマットアドレスマッ
パ296 前述したように、物理的記憶フォーマットアドレスマッ
パ296は、パーセル識別子(即ち、「パーセルI
D」)を、そのパーセルが位置しているファイルの始ま
りに対する物理的媒体アドレス(1つの、または複数の
アドレス)に翻訳する。より詳しく述べれば、物理的記
憶フォーマットアドレスマッパ296は、ファイルアド
レスマッパ298を使用して媒体上のファイルを探知
し、論理パーセルIDを開始物理的セクタ及びセクタカ
ウントに翻訳することによって、パーセルIDを媒体上
の物理的セクタアドレス及びセクタカウントに翻訳す
る。インデックス及びデータパーセルが冗長的に配置さ
れている場合には、複数のアドレスが戻される。アドレ
スマッパ296は、媒体22と物理的に会話しないI/
O管理者サブシステム270の成分である。
【0070】パーセル識別子は、媒体上のパーセルの物
理的アドレスに密接に関係付けられている。識別子は、
媒体上にパーセルの冗長コピーが存在していることを指
示するパーセルサイズ及びビットに関する情報(または
他の情報)を担持している。パーセルID 600の例
を図6に示す。パーセルID 600は、そのパーセル
を含むファイルの開始からのオフセットである1つの部
分601と、そのパーセルのサイズを指示する第2の部
分602と、媒体上にそのパーセルの冗長コピーが存在
するか否かを指示する第3の部分603とからなること
ができる。パーセルの冗長コピーの位置は、ナビゲーシ
ョンシステムの動作セッションの間グローバルメモリ内
に保持されるテーブルを使用して決定される。この情報
は、物理的記憶フォーマットアドレスマッパ296内に
おいて、物理的記憶フォーマットに特定の方法でアルゴ
リズミックに組合わされて物理的アルゴリズムが生成さ
れるが、この際のCPUまたはメモリテーブルオーバヘ
ッドは最小である。
【0071】物理的記憶フォーマットアドレスマッパ2
96から戻されたこの物理的媒体アドレス(または、冗
長的に記憶されているパーセルの場合には複数のアドレ
ス)はバイトアドレスではなく、その代わりとして、媒
体の物理的な小分けである。CD−ROM媒体の場合に
は、この小分けは2Kバイトセクタである。読み出し/
書き込み媒体の場合には、この小分けは 256のようなよ
り小さいサイズであることができる。同様に、パーセル
サイズもこれらの表現で表すことができる。物理的記憶
フォーマットアドレスマッパ296へのインタフェース
は、パーセル識別子(パーセルID)を取り、相対物理
的媒体アドレス(または、冗長的に記憶されているパー
セルの場合には、物理的媒体アドレスのセット)をパー
セルサイズと共に戻す。この情報は、パーセルIDの部
分601及び602にそれぞれ対応する。この、または
これらの相対物理的媒体アドレスは、初期化時にファイ
ルディレクトリマッパ298から入手された絶対ファイ
ル開始位置アドレスに追加され、そのパーセルに関する
1つまたは複数の絶対物理的アドレスが生成される。も
しパーセルの冗長コピーが設けられていれば、I/O管
理者270は、現読み出しヘッド位置に基づいて最も近
いアドレスを選択し、このアドレス、パーセルの広がり
(サイズ)、及びメモリ管理ライブラリ280から入手
したキャッシュバッファのアドレスを、媒体デバイス分
離レイヤ300に渡して物理的I/Oを開始させる。
【0072】F.オペレーティングシステム分離レイヤ
(OSIL)302 オペレーティングシステム分離レイヤ(OSIL)30
2は、データアクセスインタフェースレイヤ41が書き
込まれている一般的なオペレーティングシステムサービ
スと、ナビゲーションシステムプラットフォームのオペ
レーティングシステム202によって提供される特定の
サービスとの間のインタフェースを提供する。例えば、
オペレーティングシステム分離レイヤ302は、ITR
ON、OS9、pSOS、VRTX、VxWorks、
所有権を主張できるオペレーティングシステム、及び単
一タスクオペレーティングシステムを含む種々のオペレ
ーティングシステムを支援するために使用できる。オペ
レーティングシステム分離レイヤ302は、特定のプラ
ットフォーム(または、OS)に関係付けられたソフト
ウェアモジュールであり、データアクセスインタフェー
スレイヤ41を特定のプラットフォーム上で動作可能に
する。
【0073】幾つかの異なる型のオペレーティングシス
テムサービスが存在する。第1は、列機能(マルチバイ
トフォーマットと横拡大文字フォーマットとの間の変形
を含む)、数値計算機能、探索及び分類のような共通ユ
ーティリティ、等のような汎用サービスからなる。デー
タアクセスインタフェースレイヤ41を構成しているソ
フトウェアライブラリは、これらのオペレーティングシ
ステムサービスの若干を使用する。例えば、これらの機
能のためにANSI C標準ライブラリ( stdlib )イン
タフェースが使用される。メモリ管理機能“ malloc()
”及び“ free() ”も stdlib インタフェースに入
る。これらは、内部管理に関してメモリプールを割当
て、再寸法決めするために資源管理サブシステム220
によって使用される(前述)。
【0074】資源管理サブシステム220が使用するO
Sレベルの他のセットは、メモリ管理及びキャッシュ制
御構造のようなメモリ内の共用データ構造の保護、及び
I/O待ち行列を含む。データアクセスインタフェース
レイヤ41にリンクされている多重タスクによるこれら
の構造に対する争いは、セマフォ及びメッセージ待ち行
列のようなプロセス間通信メカニズムを使用して管理さ
れる。資源管理サブシステム220は、これらのメカニ
ズムとして標準POSIX.4を使用することが好まし
い。もし、ナビゲーションシステム10のオペレーティ
ングシステムによって別の型のインタフェースが提供さ
れていれば、オペレーティングシステム分離レイヤ30
2はナビゲーションシステムOSによって提供される本
来のサービスのためのインタフェースに対する翻訳レイ
ヤとしてANSI C stdlib 及びPOSIX.4イン
タフェースを実現する。もしそうでなければ、サービス
はオペレーティングシステム分離レイヤ302内で実現
される。
【0075】たとえ資源管理サブシステム220が論理
的POSIX.4セマフォ及びメッセージ待ち行列イン
タフェースを使用しているとしても、これは必ずしも物
理的セマフォ及びメッセージ待ち行列が隠れて使用され
ていることを意味しない。例えば、物理的セマフォの使
用に比較すれば、共用キャッシュ制御構造の読み出しま
たは更新のようなコードの臨界的区分においては単に割
り込みを不能化し、後に割り込みを再可能化すること
は、より高速及び/またはより容易であるかも知れな
い。好ましい実施例では、他のタスクに及ぼす何等かの
インパクトを制限するために、割り込みの使用は短いこ
とが予測できる動作に制限される。代替として、I/O
管理者270が完全にデータアクセスインタフェースレ
イヤ41の静的にリンクされたソフトウェアライブラリ
内に実現されている場合には、I/O待ち行列を、メッ
セージ待ち行列の代わりに「セマフォ保護された」共用
メッセージバッファとして実現することができる。この
代替実施例に関しては後述する。さらなる代替として
は、これらの内部資源管理構造に対する多重タスキング
争奪が少しもない単一インタフェースレイヤタスクを設
けることである。
【0076】オペレーティングシステム分離レイヤ30
2は、データアクセスインタフェースソフトウェアライ
ブラリ41が書き込むことができる標準インタフェース
を定義することを可能にする。データアクセスインタフ
ェースレイヤ41がポートできる若干のオペレーティン
グシステムは、これらのインタフェースの若干、または
全部を提供する。これらの場合、OSによって提供され
るインタフェースサービスを、オペレーティングシステ
ム分離レイヤ302によって提供される対応機能の代わ
りに使用することができる。若干のUNIX変形及び若
干の埋め込み型向きのオペレーティングシステムは、完
全なANSI C stdlib 及びPOSIX.4サービス
を提供する。 G.媒体デバイス分離レイヤ(MDIL)300 媒体デバイス分離レイヤ(MDIL)300は、媒体デ
バイスドライバインタフェースに関していることを除い
て、オペレーティングシステム分離レイヤ302と類似
の機能を果たす。要約すれば、特に遅いCD−ROM媒
体の場合、分散、またはスキップ読み出し支援がデバイ
スドライバによって提供される時には、性能が大きく改
善される。この機能は、ある数の、連続はしていないが
近くのセクタを、発信者応用によって供給される同数の
分離したメモリバッファ内へ読み込むために設けられて
いる。この機能は、ある付加的な回転待ち時間をもたら
し、CD−ROMのような媒体上に使用された場合、デ
ータがこれらの媒体上にらせん状に物理的に記憶される
ので、多分逆方向にシークする必要がある。更に、この
機能は、所望のセクタ並びに何等かの不要な間隙を保持
するために、より大きい連続メモリバッファを割当てな
ければならない。
【0077】媒体デバイス分離レイヤ300は、分散読
み出しを支援する実際のデバイスを必要とすることな
く、分散読み出しデバイス能力を支援する。資源管理2
20のI/O管理者成分270は、物理的媒体アドレ
ス、広がり、及びメモリバッファポインタのシーケンス
を表すアレイを取る単一のデバイスインタフェースに書
き込む。このシーケンスのサイズは構成可能である。も
しナビゲーションシステムによって提供される媒体デバ
イスがこの種の分散読み出しインタフェースを受け入れ
れば、媒体デバイス分離レイヤ300は必要ではない。
しかしながら、ナビゲーションシステム10によって提
供されるデバイスインタフェースは、たとえ分散読み出
し支援が提供されたとしても、この機能を提供すること
はないであろう。例えば、アレイ及びサイズではなく、
この情報を含むリンクされたリストが必要であろう。代
替として、データ構造は異なる順序付けをすることがで
きる。従って、本実施例では、この型の翻訳は媒体デバ
イス分離レイヤ300内で処理することができる。
【0078】分散読み出しを支援しない媒体デバイスド
ライバも存在する。これは、高速ドライブまたは読み出
し/書き込み媒体の場合である。代替として、比較的遅
いデバイス性能は、キャッシュに関してはより多くのメ
モリで平衡させることができる。これらの場合、媒体デ
バイス分離レイヤ300は各I/Oトランザクションを
1つずつ入力アレイ内へディスパッチする。従って、オ
ペレーティングシステム分離レイヤ302と同様に、媒
体デバイス分離レイヤ300は特定の型の媒体に合わせ
て調整し、特定のプラットフォームへデータアクセスイ
ンタフェースレイヤ41をポーティングするプロセスの
ために特別に準備することができる。好ましい実施例で
は、媒体デバイス分離レイヤ300及びオペレーティン
グシステム分離レイヤ302は、プラットフォームに依
存する2つの成分にしか過ぎない。更に、好ましい実施
例では、データアクセスインタフェース41を構成して
いる残余のライブラリ機能は、全てのプラットフォーム
に関して同一のソースコードを有している。
【0079】VII. 動作メモリプール初期化及び再割当て 好ましい実施例では、インタフェースレイヤに使用可能
なメモリの量は、部分的に、ナビゲーションシステムの
特定ハードウェアプラットフォームの関数である。更
に、好ましい実施例では、インタフェースレイヤのため
に使用可能にされるメモリの量は、ナビゲーション応用
によってある制限された広がりに制御することができ
る。図3及び5を参照する。一実施例では、ナビゲーシ
ョン応用200は、システム初期化時にメモリ管理者2
80に対するAPI(応用プログラミングインタフェー
ス)呼出しを使用することができる。これにより、メモ
リ管理者280は、インタフェースレイヤが使用するた
めにある量のメモリを割当てることができる。メモリ管
理者が、インタフェースレイヤに使用させるある量のメ
モリを割当てることができる1つの方法は、ナビゲーシ
ョン応用のオペレーティングシステムに対する mallo
c() のような機能呼出しを使用してメモリの割当てを得
ることである。
【0080】初期化時にメモリ管理者280によって割
当てられたメモリが、インタフェースレイヤメモリプー
ル278を形成する。メモリ管理者280は、このメモ
リプール278内のメモリを複数のメモリブロックに小
分けする。好ましい実施例では、各ブロックは所定の固
定サイズのメモリの連続領域である。所定のメモリブロ
ックサイズは、1Kバイトまたは2Kバイト、またはナ
ビゲーションシステムのハードウェア及びソフトウェア
と矛盾しない他のどのようなサイズであることもでき
る。一実施例では、メモリ管理者280は、インタフェ
ースレイヤのために必要な最小量のメモリを先ず入手し
て割当て、次いで再度オペレーティングシステムに対し
て機能呼出し(例えば、malloc())を行うことによって
付加的なメモリのブロックを入手する。ナビゲーション
応用がインタフェースレイヤを構成するために全てのメ
モリを割当ててしまうまで、この再呼出しを行って付加
的なメモリを入手する。初期化時に最小の使用のために
メモリの単一の領域を割当て、次いで付加的なメモリを
割当てることによって、以下に説明するように、後刻イ
ンタフェースレイヤのメモリ使用を再サイズ化する時の
割当て解除及び再割当てする際のメモリ断片化を減少さ
せることができる。
【0081】割当て解除及び再割当て ある実施例では、有利なことに、インタフェースレイヤ
は、インタフェースレイヤが使用するメモリの量を動的
に調整する。これによって、インタフェースレイヤまた
はナビゲーション応用プログラムのどちらがメモリをよ
り大きく必要としているかに依存して、これらの何れか
がナビゲーションシステム内のメモリの一部分を交互に
使用することを可能にする。好ましい実施例では、イン
タフェースレイヤによって割当てられた最小量を超える
1つまたはそれ以上の付加的なメモリのブロックは、そ
の後にナビゲーション応用が付加的なメモリを要求した
時にナビゲーション応用に戻すことができる。この実施
例によれば、動作中、ナビゲーション応用プログラム2
00は、ある量のメモリをインタフェースレイヤから戻
すことを要求することができる。ナビゲーション応用
は、多数のアイテムの表示のようなメモリを集中的に使
用するタスクのために、この付加的なメモリを要求する
ことができる。要求を受信するとメモリ管理者280
は、要求された最小量を超えるメモリプール278内
に、インタフェースレイヤに割当てられた付加的なメモ
リが存在するか否かを調べる。もし存在すればメモリ管
理者280は、ナビゲーションシステムによって要求さ
れた量を超える1つまたはそれ以上のブロック(次に高
い完全な、即ち1ブロックまで切上げられている)に等
しい量を識別する。(好ましい実施例においては、ナビ
ゲーションシステムにメモリを割当て、それから割当て
解除する時は、メモリ管理者280は1ブロックを処理
する。)ナビゲーション応用によって要求された量を超
える次に高い1ブロックまで切上げられた量を戻すこと
によって、インタフェースレイヤは、ナビゲーション応
用が少なくとも必要とする量のメモリを受けられるよう
にする。メモリ管理者は、free()のようなナビゲーショ
ンシステムオペレーティングシステムへの機能呼出しを
使用することによって、メモリをナビゲーション応用へ
戻す。
【0082】同様に、ナビゲーション応用プログラム
が、最早付加的なメモリを必要としなくなった場合に
は、そのメモリをインタフェースレイヤに戻すことがで
きる。ナビゲーション応用からインタフェースレイヤへ
のメモリの戻しは、上述した初期メモリ割当て手順に似
たプロセスを辿る。このようにして、インタフェースレ
イヤは、それ自体が使用するための最小量のメモリ、並
びにそれがルーチン的に使用できる付加的な量のメモリ
を確保することができ、それによって比較的高い総合性
能レベルを提供することができる。更に、ナビゲーショ
ン応用が集中的なタスクを有している場合、それは最小
量を超えるインタフェースレイヤのメモリ割当ての若干
または全てを一時的に使用することができる。インタフ
ェースレイヤのこの特色は、メモリの使用を動的に調整
できるようにして、ナビゲーションシステムの資源の有
利な使用を提供する。
【0083】メモリプールの使用 メモリ管理者280は、メモリプール278からのメモ
リを、2つの異なる種類のタスクのために提供する。第
1にプール内のメモリは、インタフェースレイヤサブシ
ステムが使用するプライベート作業領域のために使用さ
れる。第2にプール内のメモリは、キャッシュのため
に、即ち媒体から読み出されたデータを保持するために
使用される。データのパーセルが媒体から読み出される
と、それはキャッシュバッファ内に格納される。メモリ
管理者280は、メモリプール内の使用可能なメモリブ
ロックの数、及びプライベート作業領域のために割当て
ることができるブロックの数を追跡している。若干の実
施例では、割当てられた、または自由にされたブロック
は、プライベート作業領域のためにではなく、キャッシ
ュのために使用することが好ましい。
【0084】メモリ管理者280は、バッファ用のタス
クからの要求に応答してメモリプール278からのメモ
リを、キャッシュ及びプライベート作業領域のために割
当てる。要求されたバッファは、メモリプール内のメモ
リブロックの1つより小さいか、大きいか、または同一
サイズであることができる。固定されたメモリブロック
サイズよりも大きいサイズのメモリバッファに対する要
求を満足させようとする場合には、メモリ管理者は要求
されたバッファサイズを満足する連続メモリブロックの
セットを探知し、要求にサービスするためにこれらの複
数の連続ブロックを割当てることを試みる。メモリに対
する要求は、1ブロックのサイズよりも小さい量につい
てもなされることがあり得る。メモリ管理者は、より小
さい要求を満足させるためにメモリブロックを小分けす
る。より少量のメモリに対する要求は、キャッシュのた
めではなく、より典型的にはプライベート作業領域のた
めになされる。
【0085】割当てられた各バッファには、それがキャ
ッシュのためであろうと、またはプライベート作業領域
のためであろうと、バッファIDが割当てられる。この
バッファIDは、そのバッファの生存期間を越えるバッ
ファに関連する定数ハンドルである。そのバッファを指
すメモリポインタは、メモリ圧縮のために変化し得る。
好ましい実施例では、キャッシュのために使用されるバ
ッファの場合、バッファIDとしてパーセルIDが使用
される。内部作業領域のために使用されるバッファの場
合、独特なバッファ識別子が生成される。タスクバッファカウント及びタスクバッファ状態 資源管理システムは、各タスクのキャッシュバッファカ
ウントを追跡している。タスクのバッファカウントは、
あるタスクがどれ程多くのバッファを「所有」している
かに対応する。あるタスクがバッファ内のデータを要
求、または読み出した時に、または所有権を有していた
がその後にその所有権を放棄した別のタスクとバッファ
を共有している時に、バッファはそのタスクによって所
有される。もしバッファがキャッシュのために使用され
ていれば、そのバッファ内のデータは媒体から読み出さ
れたパーセルを含み、バッファの所有権はそのパーセル
を要求したタスクによって決定される。1つより多くの
タスクがあるバッファ内のデータを要求した場合には、
メモリ管理者は、そのバッファ内のデータを要求した最
後のタスク、またはそのバッファからデータを読み出し
た最後のタスクにそのバッファの所有権を割当てる。別
のタスクがそのバッファの所有権を獲得するか、または
タスクがそのバッファ内のデータ(即ち、パーセル)を
無視する場合には、そのタスクはそのバッファの所有権
を失う。また、バッファがスワップアウトされた時にも
タスクはバッファの所有権を失う。タスクのキャッシュ
バッファカウントは、タスクがバッファの制御を得る
か、または失う度に変化する。
【0086】タスクは、割当ての最小及び最大キャッシ
ュバッファ限界を有することができる。これらの限界
は、あるタスクがどれ程多くのバッファを「所有」でき
るかに関係付けられる。これらの限界は、使用可能なメ
モリ資源の争奪が存在している時に限って遵守させるこ
とができる。それ以外の場合には、各タスクは使用でき
る限りのメモリを使用することを許容される。メモリ資
源が争われている場合には、それらの最大バッファ限界
を超えたタスクはバッファを失う。もしタスクが使用し
ているバッファがそれらの最小バッファ限界にしかなけ
れば、それらのタスクはバッファを失うことはない。各
バッファは状態を有している。メモリ管理者280は、
各バッファの状態を追跡する。バッファの状態は、その
バッファを使用するタスクの状態から導出する。1つよ
り多くのタスクが、単一のバッファを使用することがで
きる。メモリ管理者280は、パーセルにアクセスする
各タスクの状態を維持している。
【0087】バッファの状態は、「ロック」、「活
動」、または「無視」であることができる。バッファの
内容が、現在あるタスクによって使用中である場合に
は、そのタスク状態及びバッファ状態は「ロック」にセ
ットされる。もしバッファ内のパーセルを使用する何れ
か1つのタスクがロックされていれば、そのバッファも
同様にロックされる。バッファがロックされている場合
には、それをキャッシュのスワップアウトのために使用
することはできない。また、好ましい実施例では、ロッ
クされたバッファは、メモリ圧縮中のように移動するこ
とはできない。あるバッファの「活動」状態は、1つま
たはそれ以上のタスクが未だにそのバッファの内容に関
心はあるかも知れないが、もしその中のメモリが必要で
あればそのバッファをスワップアウトできることを指示
している。タスク、その資源優先順位、等々に関する情
報はそのバッファに関連付けられたままであるので、メ
モリ管理者がスワップアウトするメモリをシークする場
合には、管理者はこれらの要因を評価することができ
る。他のタスクのためにそのバッファが必要でなけれ
ば、データはキャッシュバッファ内に留まり、もし必要
ならば、バッファはそのバッファ内のデータにアクセス
することを必要とするかも知れない他のタスクのために
使用可能である。
【0088】「無視」状態のバッファは、現在どのタス
クもそのバッファ内のメモリを使用していないことを指
示している。従って、このバッファは他のタスクのため
に使用することも、またはスワップアウトすることもで
きる。無視されたバッファは、移動及び/または圧縮す
ることもできる。圧縮 資源管理者は、インタフェースレイヤメモリプール27
8の圧縮、及びいわゆる「不要部分の整理」をも行う。
メモリブロックが割当てられ、割当て解除されると、メ
モリプール内に断片化が発生し得る。メモリ管理者28
0は、その後にキャッシュまたはプライベート作業領域
のために再使用するために、隣接する使用されていない
メモリブロック及び「無視」状態を有するメモリブロッ
クをまとめてグループ化する。更に、メモリ管理者は、
断片化を減少させるために、アンロックされたバッファ
を物理的に移動させることができる。
【0089】メモリをスワップアウトまたは圧縮する時
点を決定する際に、メモリ管理者は資源優先順位、タス
クバッファカウント、及びバッファ状態を考慮する。要
約すれば、高優先順位の応用またはそのキャッシュに屡
々アクセスする応用は、そのバッファスワップアウトを
有する見込みは少ない。メモリを割当て解除または圧縮
する場合、インタフェースレイヤの割当てられたメモリ
278と、応用の割当てられたメモリ283との間の元
の境界に最も近い領域内のメモリを選択することが好ま
しいかも知れない。質問タスクの処理 前述したように、インタフェースレイヤは、物理的記憶
媒体上の地理的データエンティティのセットにアクセス
するためにナビゲーション応用プログラムによって使用
されることができる呼出しのセットを定義する。インタ
フェースレイヤによって戻されるこのセットは、空にす
ることができるか、単一のエンティティを含むことがで
きるか、または複数エンティティのリストを戻すことが
できる。これらの戻されたエンティティは、上述した圧
縮解除されたフォーマットの論理データモデルに準拠し
ている。インタフェースレイヤは、ナビゲーション応用
がデータに関する質問を公式化できるようにする呼出し
を受け入れる。これらの呼出しは、所望のエンティティ
の空間的属性並びに非空間的属性によって分類(クォリ
ファイ)することができる。質問を分類するために使用
される属性は、単独でまたは組合わせて使用することが
でき、またある範囲のまたはある単一の値を指定するこ
とができる。
【0090】好ましい実施例では、媒体上の地理的デー
タは1つまたはそれ以上のファイルに編成されている。
データは、空間的に編成されたデータ、非空間的に編成
されたデータ、またはインデックスデータを含む。記憶
媒体は他の型のデータをも含むことができる。空間的に
編成されたデータは、道路及びノードのセグメントのよ
うなデータを含む。好ましい実施例では、これらのデー
タは、地域内の物理的な地理的局所参照内に含まれるデ
ータエンティティを含むパーセルに編成される。非空間
的に編成されたデータは、ナビゲート可能な特色の名前
のようなデータを含むことができる。これらのデータ
は、アルファベット順に、または自治体によってのよう
に、それらの使用を容易にする手法で編成することがで
きる。インデックシングデータは、種々の空間的及び非
空間的データを互いに関係付けるインデックスを含む。
これらのインデックスは、kd木、平衡多方向探索樹等
を含む。好ましい実施例では、これらの全ての型のデー
タは、各々が独自のパーセルIDによって識別されるパ
ーセル内に含まれる。好ましい実施例では、パーセルサ
イズは物理的媒体上の物理的セクタサイズに関係付けら
れている。例えばCD−ROM媒体の場合、セクタサイ
ズは2Kバイトであり、パーセルサイズはセクタサイズ
の倍数、例えば 16 Kバイトである。好ましい実施例で
は、インデックスレイヤは媒体からのデータの全パーセ
ルにアクセスし、質問を分解するために1回の物理的読
み出しで全パーセルをメモリ内にロードする。質問トラ
ンザクションを分解するために、複数パーセルをメモリ
内に読み込むことができる。
【0091】質問論理サブシステム210がナビゲーシ
ョン応用プログラム200から地理的データに関する呼
出しを受信する場合、要求は「ジオ・コーデッド」( ge
o-coded ) 要求の形状であることができる。これは、ナ
ビゲーション応用200が、若干の地理的条件または境
界に関するデータを欲していることを意味する。質問論
理サブシステム210は、要求を1組のパーセルにマッ
ピングすることによってその要求をパーセルIDに分解
するので、データを媒体から検索することができる。こ
れは、インデックス管理サブシステム242を使用して
行われる。従って、質問に応答するために必要な地理的
データのパーセルIDを識別するためには、先ずインデ
ックスデータにアクセスする必要がある。共通に使用さ
れるインデックスデータは、初期化時にメモリ内に読み
込まれる。もし所望のインデックスデータが未だメモリ
内に存在しなければ、それらは媒体から読み出される。
【0092】所望データのパーセルIDが識別される
と、そのパーセルに対する要求はメモリ管理者280へ
導かれる。メモリ管理者は、メモリプールのキャッシュ
部分を調べ、要求されたパーセルが先行タスクからの要
求に応答して既にキャッシュメモリ内に存在しているか
否かを決定する。もし要求されたパーセルが既にキャッ
シュ内に存在していれば、メモリ管理者280は、その
キャッシュバッファを指すポインタを要求したタスクへ
戻し、バッファをロックする(説明済み)。もし要求さ
れたパーセルが未だキャッシュ内に存在していなけれ
ば、メモリ管理者280は、その要求をI/O管理者2
70へ送る。I/O管理者は、要求されたパーセルと、
既に要求されてはいるが、未だに媒体ドライバには送ら
れていないパーセルのリストとを比較する。もしそのパ
ーセルが、要求されたパーセルのリスト上にあれば、タ
スクの(クライアントの)識別が、そのパーセルに関連
する情報に追加される。もしそのパーセルが要求された
パーセルのリスト上になければ、そのパーセルはそのパ
ーセルを要求したタスク(クライアント)の識別と、そ
のパーセルのセクタ位置及び長さを指示する情報と共に
リストに追加される。あるタスクが複数のパーセルを要
求した場合、要求を同時に満足させるために、パーセル
のリスティングがグループとしてI/O管理者へ送られ
て検索される。
【0093】要求された各パーセル毎に、I/O管理者
270は物理的アドレスマッパ296を呼出す。物理的
アドレスマッパ296はパーセルIDを翻訳し、パーセ
ルサイズ及び物理的開始セクタ(または、もしそのパー
セルが冗長的に格納されていれば、複数のセクタ)を戻
す。この情報を使用してI/O管理者270は、現読み
出しヘッド位置を考慮に入れてI/O要求を優先順位
で、及びセクタ近接順に分類する。冗長的に格納されて
いるパーセルの場合、I/O管理者270は探索時間が
最短であるセクタを選択する。I/O管理者270はメ
モリ管理者280を呼出してキャッシュを割当てる。メ
モリ管理者280は、メモリプール278内の自由メモ
リのリストを走査して使用可能なメモリを見出し、その
使用可能なメモリをキャッシュに追加する。前述したよ
うにメモリ管理者280はバッファをロックし、そのバ
ッファに関連するメモリがI/Oのために保留されたこ
とを指示する。I/Oを要求したクライアントタスクを
識別するデータも格納される。
【0094】メモリ管理者280は、もし使用可能なメ
モリを見出せなければ、メモリをスワップアウトするこ
とを試みる。前述したように、ロックされたバッファは
スワップアウトされない。もし状態が「無視」であるバ
ッファが存在すれば、これらが先ずスワップアウトされ
る。もし新しいI/Oにキャッシュを割当てるために未
だメモリを必要とすれば、何れかのタスクがそれらの最
大バッファ限界を超えていないかを見出すために、タス
クのリストが調べられる。もし超えていれば、メモリ管
理者280はそのタスクによって使用されているアンロ
ックされたバッファを探索し、これらがスワップアウト
のために選択される。もし新しいデータにキャッシュを
割当てるために未だメモリを必要とすれば、状態が「活
動」であるバッファが調べられ、これらが新しいデータ
に使用するためにスワップアウトされる。
【0095】もし新しいI/Oのためのメモリバッファ
に対する要求を、メモリプール278内の使用可能なメ
モリで満足させることができなければ、メモリ管理者2
80はメモリプールの圧縮を遂行することができる。前
述したように、アンロックされたバッファだけが圧縮の
ために使用できる。圧縮の後であっても、新しいI/O
のためにI/O管理者から要求されたサイズのメモリが
使用できない場合があり得る。もしこのようなことが発
生すれば、メモリ管理者280は、使用可能な最大キャ
ッシュ空間を指示する情報をI/O管理者270へ戻
す。そこでI/O管理者270はI/O要求リストを走
査し、サービスされるのを待っている何れかのI/O要
求を、使用可能なキャッシュによって満足させることが
できるのか否かを決定する。もしメモリ内の使用可能な
キャッシュサイズで満足させ得るサービス待ちのI/O
が存在すれば、このI/O要求がサービスされる。I/
O管理者270はメモリ管理者280にメッセージを送
って、要求されたサイズで使用可能なキャッシュメモリ
をロックさせる。次いでI/O管理者270は、そのI
/O要求を媒体ドライブに送って検索させる。
【0096】もしI/O要求リスト内のI/O要求が使
用可能なメモリと合致しなければ、I/O管理者270
は、メモリ管理者280へのキャッシュに関する新しい
要求の生成を一時的に停止する。最終的に、タスクが完
了するとメモリ管理者280はメモリをアンロックまた
は自由にし、メモリが使用可能になるとペンディングの
I/O要求がサービスされる。I/O要求にサービスす
るためにキャッシュが使用可能になったことをメモリ管
理者280がI/O管理者270に指示すると、バッフ
ァが保留される。I/O管理者は、分散読み出し要求を
作成することによってI/O要求リストにサービスす
る。複数の読み出しを一緒に連鎖することができる。こ
の情報が媒体ドライバに送られると、I/O要求はI/
O要求リストから移動される。
【0097】メモリ管理者280は、キャッシュバッフ
ァの状態を「活動」にセットする。メモリ管理者は、バ
ッファを指すポインタを、例えば質問論理サブシステム
からの呼出しのようなデータを要求したタスクへ戻す。
バッファを指すポインタがそれを要求したタスクへ戻さ
れると、バッファの状態は「ロック」にセットされる。
キャッシュバッファ内のデータは適切に使用される。バ
ッファを指すポインタは、タスクが(例えば、バッファ
内のデータを使用して終了したことを指示することによ
って)バッファをアンロックするまで変化しない。デー
タ(論理データモデルフォーマットの)がナビゲーショ
ン応用へ戻され、従ってタスクが最早キャッシュバッフ
ァ内のデータを必要としなくなると、質問論理サブシス
テム210内のタスクもメッセージをメモリ管理者へ送
ってキャッシュバッファを「ロック」から「活動」また
は「無視」にリセットさせ、データは現在必要ないこと
を指示させる。キャッシュバッファが最早「ロック」で
はなくなると、バッファは圧縮されるか、移動される
か、または解放される。
【0098】要約すれば、データは他の要求と矛盾な
く、できる限り長くキャッシュ内に維持される。これ
は、一旦データがメモリ内に入れられると、そのデータ
がその後のタスクのために必要となるかも知れない可能
性があるために、それらはキャッシュ内に格納されると
いう長所を提供する。従って、データはナビゲーション
応用からの幾つかの呼出しを含む時間の間キャッシュ内
に持続することができる。メモリ圧縮及び脱断片化に備
えるために、ロックされているデータをメモリ管理者2
80によって1つのメモリ位置から別のメモリ位置へ移
動させることができる。キャッシュ内にあるかも知れな
いデータを見出すために、タスクはバッファID(好ま
しい実施例ではキャッシュデータのためのパーセルID
と同一である)によってデータを要求する。従って、あ
るタスクがパーセルを要求すると、それはバッファのア
ドレスを指すポインタを入手することになる。「指し示
された」バッファは、要求されたパーセルIDと同一の
バッファIDを有している。このようにして、メモリ管
理者280は、バッファID及びそれらのアドレスを追
跡することによって、どこにバッファが位置しているの
かを指示するタスクを指すポインタを戻す。もしメモリ
管理者280が圧縮中にバッファを移動させれば、メモ
リ管理者280は新しいバッファの位置を追跡するの
で、特定のバッファを要求しているタスクに適切なポイ
ンタを戻すことができる。ベースブロックアドレスが移
動可能であるので、メモリバッファ自体内に維持される
ポインタはオフセットによっており、絶対アドレスでは
ない。
【0099】プライベート作業領域タスクに対する要求
の処理 前述したようにメモリ管理者280は、インタフェース
レイヤ機能用のプライベート作業領域のためにもバッフ
ァを割当てる。前述したように、もしインタフェースレ
イヤ機能によって要求されたメモリがメモリプール27
8内の固定サイズの1つのブロックよりも小さければ、
メモリ管理者280はブロックをより小さいサイズの部
分に小分けする。プライベート作業領域に関して要求が
なされると、メモリ管理者280は先ず、既に使用中の
メモリブロックをプライベートメモリ機能によって探索
し、新しい要求のメモリニーズに合致する充分な使用可
能な空間がブロック内に存在するか否かを決定する。も
し必要ならば、付加的なブロックをプライベート作業領
域のために割当てることができる。
【0100】メモリ管理者280は、プライベート作業
領域のために使用される各ブロックに対して独特なバッ
ファIDを割当てる。これらのバッファは、インタフェ
ースレイヤ機能によって使用中にロックされる。物理・論理データ翻訳サブシステムの動作 物理・論理サブシステム244は、資源管理サブシステ
ム220によって媒体からメモリ内へ読み込まれるパー
セル内に見出される最適化された物理的記憶フォーマッ
トから、情報を翻訳する責を負う。この翻訳は2つの段
階で行われる。第1の段階は、圧縮された物理的記憶フ
ォーマットから、質問を分解するために検査可能な圧縮
解除された中間フォーマット(DIF)へである。第2
の段階は、圧縮解除された中間フォーマットから、質問
論理システム210を介して応用へ戻される最終的な論
理データモデルフォーマットへである。
【0101】カーソル管理システムの動作 前述したように、データを要求したタスクによって少量
の、または大量のデータがもたらされ得る。質問論理サ
ブシステム210の一部であるカーソル管理サブシステ
ム249は、要求によってもたらされたデータの量には
関係なく、これらの結果を処理する。カーソルサブシス
テムの動作は、データに関する要求に関連してカーソル
サブシステムの使用を要求することが予測される質問論
理サブシステム210内のある機能から開始される。質
問論理サブシステム210内の幾つかの異なる機能は、
カーソル管理サブシステムの使用を要求するデータを検
索することを予測することができる。第1に、質問論理
サブシステム内の機能は、カーソルのためにメモリ、即
ちバッファを初期化する。カーソルキャッシュは、デー
タ構造のアレイを保持するメモリの一部分である。これ
らの構造は、質問の型に基づいて質問機能によって決定
される。構造に関する情報は、カーソル管理サブシステ
ムに渡される。情報は、カーソルキャッシュ内で使用さ
れるレコードの数、レコードのサイズ、カーソルメモリ
内に格納することができるデータエンティティID(D
BID)の数、等々を含むことができる。この情報の若
干は、DBIDのようにサイズを固定することができ
る。図5Aを参照する。この情報は、圧縮解除されたデ
ータエンティティ及びデータエンティティIDをそれぞ
れ保持するアレイ511及び513をセットアップする
ために使用される。
【0102】カーソルのキャッシュが割当てられた後
に、前述したようにデータ結果を入手するために質問が
処理される。もしその要求を満足する複数のエンティテ
ィが探知されれば、検索された各データエンティティ
は、アレイ511が一杯になるまでアレイ内に完全に圧
縮解除された論理データフォーマットで格納される。ア
レイ511内に格納されたレコードのためのデータエン
ティティID(DBID、即ちデータベース識別子)
は、第2のアレイ513内に含まれる。更に、もし質問
と一致すると識別されたデータエンティティの数が、圧
縮解除されたフォーマットで第1のアレイ511内に格
納できるデータエンティティの数を超えれば、これらの
付加的なデータエンティティのためのデータエンティテ
ィIDは、第2のアレイ513内に(第1のアレイ内に
格納されているデータエンティティのIDの後に)格納
される。図5Aの例では、 20 データエンティティが完
全に圧縮解除された形状で第1のアレイ511内に格納
され、100 データエンティティのエンティティID(最
初の 20 を含む)が第2のアレイ513内に格納されて
いる。第1のアレイ511内のこれらのデータエンティ
ティの何れも、それらが完全に圧縮解除されているの
で、直ちにナビゲーション応用プログラムへ戻すことが
できる。圧縮解除されたアレイ511内に格納すること
ができるエンティティの数、及びアレイ513内に格納
することができるデータベースIDの数は共に、カーソ
ル管理システムを呼び出す質問機能によって決定され
る。
【0103】好ましい実施例では、第1のアレイ511
は、カーソルキャッシュの使用中にFIFO(先入れ先
出し)及びLIFO(後入れ先出し)の両方を支援す
る。もしアレイ内の最後のレコードを越えるレコード、
例えばレコード21が要求されれば、そのデータベース
エンティティが(第2のアレイ513内のそのエンティ
ティのDBIDを使用して)見出され、論理データフォ
ーマットに圧縮解除され、そして第1のアレイ511内
に圧縮解除された形状で格納されて、最も古いレコード
(例えば、レコード1)と置換される。同様に、もしレ
コード22が要求されれば、それは第2のアレイ513
からデータエンティティIDを使用して見出され、論理
データフォーマットに圧縮解除され、そして第1のアレ
イ511内にレコード2と置換されて格納される。この
型のアクセスは順方向であり、FIFOを使用すること
になる。一方、もし次にレコード1が要求されれば、レ
コード1が検索され、圧縮解除され、そしてレコード2
0の代わりに第1のアレイ511内に圧縮解除された形
状で格納される。レコード20は、第1のアレイ511
内で最も古いレコードであるので、置換されるのであ
る。この型のアクセスは逆方向であり、LIFOが使用
される。
【0104】別の例を図5Bに示す。図5Bは、第1の
アレイ511がレコード25乃至44によって占められ
ていることを示している。もしレコード24が要求され
たのであれば、それは圧縮解除され、レコード44の代
わりに第1のアレイ511内に記憶される。もしレコー
ド23が要求されれば、それは圧縮解除され、レコード
44の代わりに第1のアレイ511内に記憶される、等
々である。図5A及び5Bにおいて、第2のアレイ51
3(即ち、データエンティティだけを保持しているアレ
イ)は、100 データエンティティだけを収容するサイズ
を有しているように示されている。質問が 100エンティ
ティより多くをもたらす可能性がある。第2のアレイ5
13に適合するよりも多くのエンティティIDが存在す
る場合、カーソルサブシステムは、データエンティティ
IDの1つまたはそれ以上の付加的なページを提供する
情報を保持している。
【0105】以下の例は、カーソルシステムのページン
グ機能を示している。この例の目的から、第1のアレイ
511は 20 の圧縮解除されたデータエンティティを保
持することができ、第2のアレイ513は 100のデータ
エンティティIDを保持することができ、質問が 1000
のレコードをもたらすものとしている。 カーソル IDアレイ513 キャッシュアレイ511 ページヘッダ ページ 内のIDの範囲 内のIDの範囲 1 1− 100 1− 20 1 2 80− 180 100− 120 80 3 160− 260 180− 200 160 4 240− 340 260− 280 240 5 320− 420 340− 360 320 6 400− 500 420− 440 400 7 480− 580 500− 520 480 8 560− 660 580− 600 560 9 640− 740 660− 680 640 10 720− 820 740− 760 720 11 800− 900 820− 840 800 12 880− 980 900− 920 880 13 960−100 980−1000 960 この例では、始めに第1のアレイ511はレコード80
−100を圧縮解除された形状で含んでおり、第2のア
レイ513は最初の 100データエンティティIDを含ん
でいる。この点では、第1のアレイも第2のアレイも、
レコード100を越えるどのようなデータエンティティ
またはIDも含んではいない。もしアクセスが101番
目のレコードにアクセスすることを望めば、質問を再び
分解しなければならない。第2のアレイ513内の全て
のデータエンティティIDがクリヤされ、レコード80
−180のためのエンティティIDに置換される。レコ
ード101は圧縮解除され、レコード80の代わりに第
1のアレイ511内に格納される。上表は 1000 レコー
ドが存在し、アレイ511及び513がそれぞれ 20 レ
コード及び 100エンティティIDを保持している時の各
ページ毎の範囲を示している。
【0106】上述したアレイは、それら自体のエンティ
ティIDを有していない型のデータを含む種々の型のデ
ータと共に使用することができる。これらの型のデータ
は、データベース内のエンティティに関連する、または
エンティティを記述する属性であることができる。これ
らの型のデータの例は、ブロック、ランドマーク、及び
テキストを含む。これらの型のデータの場合、カーソル
管理システムによって仮想IDが割当てられる。仮想I
Dは、正規データエンティティIDに類似しているが、
エンティティの型を表す代わりに、オフセットまたは他
の型の情報を表すことが異なっている。若干の型のデー
タは、カーソル管理システムによって処理することはで
きないが、その代わりにカーソル管理システムをバイパ
スして直接ナビゲーション応用へ送られる。これらの型
のデータは、形状点を含むことができる。ナビゲーショ
ン応用は、形状点情報を受け入れるために適切なメモリ
バッファを提供する。
【0107】VIII. ポーティング及び構成 図7は、データアクセスインタフェースレイヤ及びナビ
ゲーション応用ソフトウェアプログラムのためのソース
コードをコンパイルして実行可能なモジュールを形成す
るプロセスを示す流れ図である。好ましい実施例では、
ナビゲーション応用のためのソースコードが書かれ、ソ
ースコード機能502のライブラリとして保管される。
これらのライブラリがコンパイルされてナビゲーション
応用機能のための目的コードモジュール504が形成さ
れる。この目的コードはインタフェースライブラリ機能
のためのソースコード506と静的にリンクされ、特定
のナビゲーションシステムプラットフォームに特定の実
行可能なモジュール510が形成される。実行可能なモ
ジュール510は、いろいろな方法でナビゲーションシ
ステムプラットフォーム上に組み込むことができる。例
えば、実行可能なモジュールを付加的なドライブスロッ
トからコピーすることも、またはナビゲーションシステ
ム内のある形状の不揮発性メモリ内に予め組み込んでお
くこともできる。
【0108】好ましい実施例では、データアクセスイン
タフェースレイヤソフトウェアは、特定のプラットフォ
ーム上の性能を最適化するために、値を調整できる複数
の調整可能なパラメータを含んでいる。これらのパラメ
ータは、ポーティングプロセスの一部として調整するこ
とができる。ポーティングプロセスは、ナビゲーション
応用ソフトウェア、OS、媒体デバイスドライバ、及び
ハードウェアの組合わせのためのこれらの調整可能なパ
ラメータを最適化することを含んでいる。データアクセ
スインタフェースソフトウェアライブラリサブシステム
は、コンパイル時、実行時の何れか、または両方におい
て構成される可能性を有している。ある構成情報は、分
離したソースコードモジュール内に存在することができ
る1組のCコード変数の形状を取っている。これらの変
数の値は、特定のサブシステムの実行時挙動に影響を与
え得る。これらの変数は、始めに省略時値にセットさ
れ、ソースコード形状で調整される。得られた最適化さ
れた構成情報は、特定のナビゲーションサブシステムの
インプリメンテーションとリンクされる。付加的な構成
情報は、コンパイル時におけるサブシステム挙動を最適
化するために使用される条件付きコンパイル命令文、及
びプリプロセッサにより定義された定数の形状を取る。
【0109】IX. 更新及びバージョン変化にまたがる互
換性 前述したように、データアクセスインタフェースレイヤ
によって提供される長所の1つは、それが地理的データ
ベースを更新できることである。更新は、幾つかの文脈
において行うことができる。例えば、新しいナビゲーシ
ョンシステムに関して言えば、特定のナビゲーションシ
ステムプラッフォームは複数年にわたって販売されるこ
とがあり得る。ナビゲーションシステムが販売される時
に、システムに設けられている地理的データベースが最
新のものであることが望ましい。この目的は、上述した
データアクセスインタフェースレイヤを使用し、エンド
ユーザカストマに引き渡される時点にナビゲーションシ
ステム内に最新の地理的データベースを格納する記憶媒
体を設けることによって達成することができる。更に、
エンドユーザの立場からは、ナビゲーションシステムを
その寿命を過ぎて設置した後でも、エンドユーザが更新
された地理的データベースを入手することができるよう
になっていることが望ましい。この後者の目的に合致さ
せるために、エンドユーザに規則的な基準で更新を提供
する定期講読( subscription )を提供することができ
る。データアクセスインタフェースレイヤは、エンドユ
ーザのシステムが更新された地理的データを使用するこ
とを可能にする。
【0110】更新トランザクションは、幾つかの代替の
何れかを使用して処理することができる。1つの代替
は、中央位置において地理的データを更新し、全面的に
新しくした地理的データベースをコンパイルし、そして
新しいデータベースで記憶媒体の新しいコピーを準備す
ることである。これらの新しい媒体をエンドユーザ加入
者に分配し、加入者は古い記憶媒体を新しい媒体に交換
する。この代替は、媒体がCD−ROMのような再書き
込みできない媒体である時に使用することができる。も
し媒体が、PCMCIAカードのように再書き込み可能
であれば、新しい地理的データベースを古い媒体に直接
印加することができる。別の代替は、エンドユーザのシ
ステム内の地理的データベースのバージョンに対する変
化のリスティングを含む別個のファイルまたはデータベ
ースの形状で、更新された地理的データを提供すること
である。この別個のファイルは元の地理的データベース
と同一の媒体上か(再書き込み可能な媒体の場合)、ま
たは別の媒体上に(元の媒体が読み出し専用の場合)配
置することができる。別個のファイルがナビゲーション
システムにアクセス可能になると、それは元の地理的デ
ータベースと共に使用される。別個のファイルからの更
新されたデータは、適切なデータエンティティがデータ
アクセスインタフェースレイヤを通してナビゲーション
応用によってアクセスされる際に(例えば、「ルック・
アサイド」)、これらのデータエンティティに透明的に
印加される。この機能811は、インタフェースレイヤ
の物理・論理サブシステム244内に実現することがで
きる。本願にその開示が参照として採り入れられている
1996 年1月26日提出の係属出願第 08/592,737 号 " S
YSTEM AND METHOD FOR DISTRIBUTING INFORMATION FOR
STORAGE MEDIA " に記載されているように、更新された
地理的データは、無線同報、または更新ステーションを
含む種々の異なる手段によって分配することができる。
【0111】データアクセスインタフェースレイヤは、
更新された地理的データをナビゲーションシステムが使
用できるようにするだけではなく、新しいフォーマット
で供給された地理的データをナビゲーションシステムが
使用できるようにもする。データアクセスインタフェー
スレイヤ41及び論理データモデルは、近い将来要求が
生じた時に、地理的データベースに追加される新しいデ
ータ属性または値を利用するように拡張することができ
る。新しい属性または値は、地図カバレッジデータ内
に、または物理的記憶フォーマットで現れることができ
る。新しい地図データ特色が現れた時、それらを地理的
な地図データ媒体上に含ませることができ、それらを支
援するどのナビゲーションシステムによっても使用する
ことができる。このように物理的記憶フォーマットは、
現在供給されているものを越える付加的な型の情報を含
むように発展させることができる。しかしながら、デー
タアクセスインタフェースレイヤがナビゲーション応用
を物理的地理的データベースから分離しているので、ナ
ビゲーション応用製造者は、地理的データベースが更新
される度にそのナビゲーション応用ソフトウェアをアッ
プグレードさせる必要はない。更に、設置されたナビゲ
ーションシステムを有するエンドユーザは、何年にもわ
たって更新された地理的データベースを入手することが
でき、たとえ更新された地理的データベースが新しい型
の情報を含んでいようとも、そのナビゲーションシステ
ムが動作し続けることを保証される。地理的データベー
ス発行者・流通業者が、種々に異なるハードウェアプラ
ットフォームのために複数の異なる地理的データベース
フォーマットを製造しないで済むので、流通の複雑さが
少なくなり、そして多分より屡々、並びに他の長所と共
に、潜在的に低価格の地理的データベースをエンドユー
ザに提供することができる。
【0112】もし新しい属性が物理的記憶フォーマット
に追加されるか、または物理的記憶フォーマットに対し
て他の変化が実施されれば、物理的記憶フォーマットの
バージョンレベルは、ナビゲーション応用プログラムの
バージョンレベルを越えて発展し得る。従って、更新さ
れた地理的データベースをナビゲーションシステム内に
組み込む時に、論理データベースモデルフォーマットバ
ージョンレベルと物理的記憶フォーマットバージョンレ
ベルとが異なることがあり得る。物理的記憶フォーマッ
トに反映されるデータベースバージョンレベルが増加し
ても、順方向互換性がデータアクセスインタフェースレ
イヤによって提供され、エンドユーザのシステムの存続
能力( viability ) を維持する。このようにして順方向
互換性を多分 10 年までの長期にわたって支援すること
ができる。若干のデータバージョン変化は、新しい属性
または値の追加からなるであろうから、データアクセス
インタフェースレイヤが新しい属性または値を受入れる
ことができる1つの方法は、古いテンプレートに適合す
るように新しいデータをフィルタアウトし、それらを再
順序付けし、そして変形することである。
【0113】異なるバージョンレベルにまたがる互換性
は、メタ翻訳によって提供される。メタ翻訳は、各バー
ジョンレベル毎に1組のテーブルを使用する。図3を参
照する。これらのメタデータテーブル259は、記憶媒
体22(例えば、CD−ROMまたはPCMCIAカー
ド)上に存在している。メタデータテーブルは、任意の
データベースエンティティ内に現れる種々のデータ属性
または値の位置、サイズ、型、及び内容を記述する情報
を含んでいる。物理・論理データ翻訳サブシステム24
4における、媒体上の圧縮された物理的記憶フォーマッ
トから、質問論理サブシステム210によって使用可能
な圧縮解除された中間フォーマットへの変換は、各物理
的記憶フォーマットデータ表現毎のメタデータテーブル
を使用する。物理的記憶フォーマットメタデータは、特
定の物理的記憶フォーマットエンティティの始まりに対
してデータ要素を抽出するために使用される。次いで、
データ要素は、メタデータテーブル内の情報によって制
御される翻訳または変換プロセスを受ける。
【0114】メタデータテーブルは、早期バージョンか
ら現バージョンまでの各データバージョン毎に記憶媒体
上に配置することができる。データアクセスインタフェ
ースレイヤ41を形成しているソフトウェアライブラリ
のバージョンレベルは、使用するのに適切なメタデータ
のセットを識別するために使用される。メタデータテー
ブルは、オペレーティングシステム核及び媒体デバイス
サブシステム(即ち、オペレーティングシステム分離レ
イヤ302及び媒体デバイス分離レイヤ300)を通し
て記憶媒体から読み出される。これらのサブシステムか
ら、資源管理サブシステム220は、物理・論理デバイ
ス翻訳サブシステム244にメタデータを供給し、該サ
ブシステム244はメタ翻訳を遂行する。好ましい実施
例では、メタデータは、初期化時にのみ媒体から物理的
に読み出される。メタデータテーブルは、半永久的な基
準でヒープから割当てられるメモリ内に読み込まれるの
で、メタ翻訳プロセスは各データアクセス毎に効率的に
テーブルにアクセスすることができる。
【0115】メタデータテーブルは、逆方向互換性が得
られるように使用することも可能である。若干のナビゲ
ーションシステム開発者は、ナビゲーションシステムが
販売された後に、時間が経過しても、ナビゲーション応
用ソフトウェアをアップグレードまたは更新できるよう
にシステムを設計することができる。このアップグレー
ド可能性は、地理的データベースに与えられる新しい特
色を利用することを意図することができる。より新しい
ナビゲーション応用ソフトウェアプログラムが古いバー
ジョンの地理的データベースを使用できるようにするた
めに、例えばテーブル813のようなメタデータテーブ
ルをナビゲーション応用ソフトウェアの新しいバージョ
ン内に設けることができる。記憶媒体上に設けられるメ
タデータテーブルと同様に、ナビゲーション応用ソフト
ウェアのより新しいバージョンが設けられているメタデ
ータテーブル内の情報を、ナビゲーションソフトウェア
及び物理的記憶フォーマットのバージョンレベルを比較
するために使用する。これらのメタデータテーブル内の
情報は、初期化時に物理・論理サブシステム244へ供
給され、何等かの必要属性変換を遂行する。前述したよ
うに、もしナビゲーション応用プログラム及び物理記憶
フォーマットのバージョンレベルが同一であれば、メタ
データ変換段階は不要であり、物理・論理サブシステム
はこの変換段階をスキップすることができる。
【0116】X.さらなる代替実施例 以上の実施例は、ナビゲーションシステムに使用できる
インタフェースレイヤシステムを開示している。一実施
例においては、ナビゲーションシステムは車載ナビゲー
ションシステムであって、エンドユーザの車両内に設置
され、位置している。車両の型は、乗用車、トラック、
バス等を含むことができる。このようなシステムのエン
ドユーザは、彼等自体の車両を所有するか、またはリー
スした個人、並びにフリートのオーナー、ビジネス、レ
ンタカー代理店、トラック輸送会社、運輸会社等を含む
ことができる。代替実施例では、ナビゲーションシステ
ムは車載以外であることができる。例えば、ナビゲーシ
ョンシステムは、ある人が携帯して担持することができ
る手持ちユニットであることができる。また、ナビゲー
ションシステムは、サービスステーション、レンタカー
代理店、パーソナルコンピュータ等々のような非自動車
位置に設置することができる。更に、ナビゲーションシ
ステムは、交通制御機関、警察、配送サービス等々に設
置し、使用することもできる。
【0117】好ましい実施例では、インタフェースレイ
ヤは、実行可能なモジュールを形成するために応用プロ
グラムがコンパイルされた後に、ナビゲーション応用プ
ログラムに静的にリンクされる。代替実施例では、イン
タフェースレイヤは、ナビゲーション応用に動的にリン
クされる。図8に代替実施例を示す。この代替実施例で
は、非同期I/Oはナビゲーションシステムの媒体デバ
イスドライバ609によって支援される。非同期I/O
を実現するには、ディスクI/Oが核に実行を依頼する
時に、その要求を呼出すプロセスが走り続けることが可
能で、且つI/O要求が完了した時に通知される必要が
ある。このような代替では、I/O管理者の共用コード
バージョンがI/O要求の実行を依頼し、制御をナビゲ
ーション応用へ戻す。I/Oが完了すると、サービスを
行うために非同期イベントがクライアントメッセージ待
ち行列へポストされる。
【0118】この代替では、I/O管理者270は、資
源管理サブシステム220の静的にリンクされた部分2
71内に完全に存在する。即ち、I/O管理者270は
各ナビゲーション応用プログラム200にリンクされて
いる。この代替では、I/O待ち行列は、メモリプール
内の制御構造611として実現されている。この場合、
セマフォ保護のようなプロセス間通信技術を使用して、
多重プロセスからのI/O待ち行列争奪を管理する。イ
ンタフェースレイヤシステムの特色の残余は、上述した
特色に類似している。 XI. 結論 上述したデータアクセスインタフェースレイヤは、ナビ
ゲーションシステム内に組み込まれた均質インタフェー
スを提供する。データアクセスインタフェースレイヤ
は、異なる製造者によって開発された異なるナビゲーシ
ョンシステムプラットフォーム上で使用することができ
る。データアクセスインタフェースレイヤは、ナビゲー
ションシステムのハードウェアプラットフォームまたは
エンドユーザ機能性には関係なく機能する。データアク
セスインタフェースレイヤは、物理的媒体上に格納され
た地理的データにアクセスするための共通透明メカニズ
ムを提供する。データアクセスインタフェースレイヤ
は、地理的データの編成及び特定の記憶媒体インプリメ
ンテーションの物理的要求のディテールからナビゲーシ
ョン応用プログラムを分離する。
【0119】データアクセスインタフェースレイヤは地
理的データベースの均一な、一貫したビューを呈するか
ら、ナビゲーションシステム開発者は、地理的データベ
ースの物理的媒体及び記憶フォーマットとのインタフェ
ーシングに係わりなく、新しい、且つより良き機能性が
得られるように彼等のナビゲーションシステムを開発
し、強化させ続けることができる。従って、ナビゲーシ
ョンシステム開発者は、新しい型のナビゲーション応用
プログラム、及び一貫した地理的データインタフェース
へのアクセスを有するハードウェアプラットフォーム及
びオペレーティングシステムを提供することに集中する
ことができる。エンドユーザの観点からすれば、データ
アクセスインタフェースレイヤは、更新された地理的デ
ータをエンドユーザのナビゲーションシステム内におい
て使用可能にし、それによって地理的データバージョン
が古くなってしまってナビゲーションシステムが時代遅
れになる危険性を減少させている。
【0120】以上の詳細な説明は本発明を限定すること
を意図したものではなく、単なる例示に過ぎず、特許請
求の範囲が本発明の範囲を限定するものであることを理
解されたい。
【図面の簡単な説明】
【図1】地理的データ、及びオプションとして他のデー
タを格納している記憶媒体を含むナビゲーションシステ
ムを示す図である。
【図2】図1のナビゲーションシステム内のソフトウェ
ア成分を示す図である。
【図3】図2のインタフェースレイヤの主要システムを
含む図1のナビゲーションシステムのソフトウェア成分
を示すブロック線図である。
【図4】図3の資源管理ソフトウェアアーキテクチャの
一実施例を示すブロック線図である。
【図5A】図3に示すカーソル管理システムの動作中の
メモリ記憶を表す図である。
【図5B】図3に示すカーソル管理システムの動作中の
メモリ記憶を表す図である。
【図6】図4の物理的アーキテクチャ記憶マッパ内で使
用されるパーセルIDを示す例である。
【図7】ナビゲーションアーキテクチャ成分をデータイ
ンタフェースレイヤにリンクするためのプログラムを示
す流れ図である。
【図8】図3の資源管理者ソフトウェアアーキテクチャ
の別の実施例を示すブロック線図である。
【符号の説明】
10 ナビゲーションシステム 12 プロセッサ 14 ドライブ 16 メモリ記憶デバイス 18 ナビゲーション応用ソフトウェアプログラム 20 メモリ 22 記憶媒体 24 測位システム 27 ディスプレイ 28 ルート計算機能 30 地図表示機能 32 運転生成機能 34 他の機能(サブプログラム) 40 地理的データ 41 データアクセスインタフェースレイヤ 200 ナビゲーション応用(サブプログラム) 202 オペレーティングシステム 210 質問論理サブシステム 212 機能呼出しインタフェース 216 インデックス管理及びデータ翻訳サブシステム 220 資源管理サブシステム 242 インデックス管理及びナビゲーションサブシス
テム 244 物理・論理データ翻訳サブシステム 249 カーソル管理サブシステム 270 I/O管理者 276 システムヒープメモリ 280 メモリ管理者 290 媒体デバイスドライバ 296 物理的フォーマットアドレスマッパ 298 ファイルディレクトリマッパ 300 媒体デバイス分離レイヤ 301 オペレーティングシステム核/媒体デバイスイ
ンタフェース 302 オペレーティングシステム分離レイヤ 609 媒体デバイスドライバ 611 制御構造
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ポール エム ブージード アメリカ合衆国 イリノイ州 60034 シ カゴウェスト ヘンダーソン ストリート 1747 (72)発明者 ヴィジャヤ エス イスラニ アメリカ合衆国 イリノイ州 60195 ホ ッフマアン エステータス ベイサイド サークル 4431 (72)発明者 ディヴィッド エス ラムパート アメリカ合衆国 イリノイ州 60035 ハ イランド パーク ベックストーン プレ イス 650 (72)発明者 センティル ケイ ナテサン アメリカ合衆国 イリノイ州 60188 キ ャロル ストリーム バーク ドライヴ 397 (72)発明者 グラント エス キーリー アメリカ合衆国 イリノイ州 60559 ウ ェストモント ウェスト トラウブ アベ ニュー 314 (72)発明者 ジョン シー ジャスパー アメリカ合衆国 イリノイ州 60004 ア ーリントン ハイツ ノース ドルーリー レーン 824 (72)発明者 ロバート ピー ファーネケス アメリカ合衆国 イリノイ州 60191 ウ ッドデール ウェスト クレア 482 (72)発明者 ジェリー エス フェイゲン アメリカ合衆国 イリノイ州 60657 シ カゴノース レイク ショア ドライヴ 2800

Claims (33)

    【特許請求の範囲】
  1. 【請求項1】 ナビゲーションシステムのユーザにナビ
    ゲーティング特色を提供するナビゲーション応用プログ
    ラムと、物理的記憶媒体上にコンピュータ可読物理的記
    憶フォーマットで格納されている地理データベースとを
    含むナビゲーションシステムにおいて使用するためのコ
    ンピュータプログラム製品において、上記コンピュータ
    プログラム製品はインタフェースレイヤを備え、上記イ
    ンタフェースレイヤは、 上記ナビゲーション応用プログラムから地理的データに
    関する要求を受入れて処理する手段と、 上記地理的データを上記物理的記憶フォーマットから翻
    訳し、論理的データモデルフォーマットで上記ナビゲー
    ション応用プログラムに供給する手段と、を備えている
    ことを特徴とするコンピュータプログラム製品。
  2. 【請求項2】 上記質問論理実行手段は、 上記ナビゲーション応用プログラムからの上記地理的デ
    ータに関する要求に応答して、上記ナビゲーション応用
    プログラムにカーソルを供給する手段を更に備え、 上記カーソル結果は複数のレコードを含み、上記カーソ
    ルは上記翻訳手段に応答し上記地理的データを該手段か
    ら受信する手段を形成している請求項1に記載の発明。
  3. 【請求項3】 上記カーソル供給手段は、 上記カーソルの第1の部分を上記論理データモデルフォ
    ーマットで供給する手段と、 上記カーソルの第1の残りの部分にエンティティ識別子
    を供給する手段と、を更に含み、 上記第1の残りの部分が圧縮されたフォーマットで維持
    される請求項2に記載の発明。
  4. 【請求項4】 上記カーソル供給手段は、 上記カーソルの第2の部分を上記論理データモデルフォ
    ーマットで供給するようになっている次に取り出し機能
    手段を更に備え、 上記第2の部分は上記第1の残りの部分からなる請求項
    3に記載の発明。
  5. 【請求項5】 上記プログラムコードは、 上記要求を受入れて処理する手段及びインデックス情報
    に応答するインデックス管理手段を更に備え、 上記インデックス管理手段は、上記ナビゲーション応用
    プログラムによる上記要求に応答するために、上記物理
    的記憶媒体上の地理的データを入手するための識別子を
    供給するようになっている請求項1に記載の発明。
  6. 【請求項6】 上記インデックス情報の少なくとも一部
    分は、上記記憶媒体上に配置されており、 上記インデックス管理手段は、上記ナビゲーション応用
    プログラムによる上記要求に応答するために、上記物理
    的記憶媒体上の上記地理的データを含むパーセルを指す
    ポインタを入手するためのパーセル識別子を供給するよ
    うになっている請求項5に記載の発明。
  7. 【請求項7】 上記インデックス管理手段は、 上記ナビゲーション応用プログラムから渡された特定エ
    ンティティ識別子を、上記物理的記憶媒体上のあるパー
    セルのためのパーセル識別子に翻訳するインタフェース
    を更に備えている請求項5に記載の発明。
  8. 【請求項8】 上記インデックス管理プログラムコード
    は、 あるインデックス識別子及び上記要求を受入れて処理す
    る手段からの質問パラメータを得て、1組のパーセル識
    別子を戻すインタフェースを更に備えている請求項5に
    記載の発明。
  9. 【請求項9】 インデックス情報を上記物理的記憶媒体
    からバッファ内へ読み込む手段を更に備え、 上記インデックス管理手段は、上記バッファに結合され
    ていて上記インデックス情報を該バッファから入手する
    ようになっている請求項5に記載の発明。
  10. 【請求項10】 上記翻訳手段は、 パーセル化された地理的データを上記物理的記憶フォー
    マットから圧縮解除された中間フォーマットにアンパッ
    クする手段と、 上記地理的データを、上記圧縮解除された中間フォーマ
    ットから上記論理データフォーマットのデータエンティ
    ティに変形して上記ナビゲーション応用プログラムへ戻
    す手段と、を更に備えている請求項1に記載の発明。
  11. 【請求項11】 上記変形手段は、 上記地理的データベースエンティティを、上記物理的記
    憶フォーマットから圧縮解除された中間フォーマットに
    翻訳する第1のインタフェースと、 上記地理的データベースエンティティを、上記圧縮解除
    された中間フォーマットから、上記地理的データを上記
    要求を受入れて実行する手段に供給する時の上記論理デ
    ータモデルフォーマットに翻訳する第2のインタフェー
    スと、を更に備えている請求項1に記載の発明。
  12. 【請求項12】 上記変形手段は、 上記物理的記憶媒体上のメタデータテーブルと上記第1
    のインタフェースとに応答し、第1のバージョンレベル
    における上記圧縮解除された中間フォーマットの上記地
    理的データを、第2のバージョンレベルにおける圧縮解
    除された中間フォーマットに翻訳し、上記地理的データ
    を上記第2のバージョンレベルにおける上記圧縮解除さ
    れた中間フォーマットで上記第2のインタフェースに供
    給するようになっているメタ翻訳手段を更に備えている
    請求項11に記載の発明。
  13. 【請求項13】 上記コンピュータプログラム製品は、 資源を管理する手段と、 上記コンピュータプログラム製品によってメモリプール
    として使用するために、上記ナビゲーションシステムの
    メモリを割当て、自由にする手段と、 上記物理的記憶媒体から読み出された、そしてあるイン
    デックス管理手段によって供給されたパーセル識別子に
    よって識別されているパーセルを格納している上記メモ
    リプール内のキャッシュメモリバッファにアクセスする
    手段と、 を更に備えている請求項1に記載の発明。
  14. 【請求項14】 上記資源管理手段は、 もし上記パーセルが上記キャッシュメモリバッファ内に
    格納されていないことを上記キャッシュメモリバッファ
    アクセス手段が見出せば、上記物理的記憶媒体からI/
    Oトランザクションを開始して該記憶媒体から上記パー
    セルを読み出す手段を更に備えている請求項13に記載
    の発明。
  15. 【請求項15】 上記I/O開始手段は、 パーセル識別子を待ち行列内に格納する手段と、 上記待ち行列にある間に上記パーセル識別子に再順序付
    けする手段と、を更に備えている請求項14に記載の発
    明。
  16. 【請求項16】 上記I/O開始手段は、 上記パーセル識別子が上記待ち行列にある間にそれらを
    物理的媒体アドレスに翻訳する手段を更に備えている請
    求項15に記載の発明。
  17. 【請求項17】 上記ナビゲーションシステムは媒体デ
    バイスドライバを更に備え、 上記パーセル識別子を再順序付けする手段は、 媒体デバイスドライバに応答して物理的読み出しヘッド
    位置を入手し、上記読み出しヘッド位置を上記再順序付
    けする手段に出力するようになっている手段を更に備え
    ている請求項15に記載の発明。
  18. 【請求項18】 上記資源管理手段は、 パーセルがキャッシュメモリ内に格納され、且つバッフ
    ァアドレスが上記質問論理を実行する手段に戻されてい
    る時に、上記キャッシュメモリをロックする手段を更に
    備えている請求項13に記載の発明。
  19. 【請求項19】 上記資源管理手段は更に、 上記ナビゲーション応用プログラムからの呼出しに応答
    して上記メモリプールの大きさを再び決める手段を備え
    ている請求項13に記載の発明。
  20. 【請求項20】 物理的記憶媒体上に物理的記憶フォー
    マットで格納されているコンピュータ可読地理的データ
    ベースを、ナビゲーション応用プログラムに使用させる
    ために上記データベース内に物理的に実現されているコ
    ンピュータ可読プログラムコードを有している、コンピ
    ュータが使用可能な媒体であって、上記製造の物品内の
    上記コンピュータ可読プログラムコードは、 上記ナビゲーション応用プログラムからの地理的データ
    に関する要求を受け入れるために、質問論理をコンピュ
    ータに実行させるコンピュータ可読プログラムコード
    と、 上記コンピュータに、上記地理的データを上記物理的記
    憶フォーマットから翻訳させるコンピュータ可読手段
    と、 上記コンピュータに、上記地理的データを汎用ASCI
    Iフォーマットで上記ナビゲーション応用プログラムに
    供給させるコンピュータ可読手段手段と、を備えている
    ことを特徴とするコンピュータが使用可能な媒体。
  21. 【請求項21】 使用すべき上記地理的データベースの
    上記物理的記憶フォーマットは上記地理的データを複数
    のパーセルに編成し、上記発明は、 上記コンピュータに、上記要求を上記物理的記憶フォー
    マットの上記パーセルに関連付けさせるコンピュータ可
    読プログラムコード手段と、 上記コンピュータに、上記物理的記憶媒体から上記パー
    セルを読み出させるコンピュータ可読プログラムコード
    と、を更に備えている請求項20に記載の発明。
  22. 【請求項22】 上記物理的記憶媒体はCD−ROMか
    らなる請求項20に記載の発明。
  23. 【請求項23】 ナビゲーションシステムに使用するた
    めのインタフェースレイヤであって、上記ナビゲーショ
    ンシステムはナビゲーション応用プログラム部分を含
    み、上記ナビゲーションシステムは物理的記憶媒体上に
    物理的記憶フォーマットで格納されている地理的データ
    ベース内に設けられている地理的データを操作するよう
    になっており、コンピュータ可読媒体上に格納されてい
    る上記インタフェースレイヤは、 上記ナビゲーション応用プログラム部分から上記地理的
    データに関する要求を受信する質問論理プログラム手段
    と、 上記地理的データを上記物理的記憶フォーマットに変形
    するデータ変形プログラム手段と、 上記要求に応答して、上記変形された地理的データを上
    記ナビゲーション応用プログラム部分に供給するデータ
    戻しプログラム手段と、を備えていることを特徴とする
    インタフェースレイヤ。
  24. 【請求項24】 上記インタフェースレイヤは、 上記質問論理プログラム手段に応答して、上記ナビゲー
    ション応用プログラム部分からの要求を、上記地理的デ
    ータを含んでいる上記物理的記憶フォーマットのパーセ
    ルに関連付けられたパーセル識別子に関連付け、上記パ
    ーセル識別子をメモリ管理ライブラリプログラム手段に
    供給して上記パーセルを入手し、上記データ変形プログ
    ラム手段に供給して該手段内で変形させるようになって
    いるインデックス管理プログラム手段を更に備えている
    請求項23に記載の発明。
  25. 【請求項25】 上記インデックス管理プログラム手段
    は上記記憶媒体から上記パーセル識別子を入手する手段
    を更に備え、上記インデックス管理プログラム手段は上
    記ナビゲーション応用プログラム部分による上記要求に
    応答するために上記地理的データを含む上記物理的記憶
    媒体上のパーセルを指すポインタを入手する手段を更に
    備えている請求項24に記載の発明。
  26. 【請求項26】 上記インデックス管理プログラム手段
    は、 上記ナビゲーション応用プログラム部分から渡された特
    定エンティティ識別子を、上記物理的記憶媒体上のパー
    セルのためのパーセル識別子に翻訳するプログラム手段
    を更に備えている請求項24に記載の発明。
  27. 【請求項27】 上記インデックス管理プログラム手段
    は、 上記質問論理プログラム手段からインデックス指定子及
    び質問パラメータを取り、1組のパーセル識別子を戻す
    プログラム手段を更に備えている請求項24に記載の発
    明。
  28. 【請求項28】 コンピュータをベースとするナビゲー
    ションシステムを使用する方法であって、上記ナビゲー
    ションシステムはナビゲーション応用プログラム機能を
    含み、上記ナビゲーション応用プログラム機能は、コン
    ピュータ可読媒体上に物理的記憶フォーマットで格納さ
    れている地理的データベースを使用するようになってお
    り、上記方法は、 上記ナビゲーション応用プログラム機能の1つから地理
    的データに関する要求を受け入れるステップと、 上記要求に応答するためにインデックスを使用して、上
    記地理的データを含む上記物理的記憶フォーマットのパ
    ーセルを識別するステップと、 上記パーセル内に上記物理的記憶フォーマットで格納さ
    れている上記地理的データを、上記ナビゲーション応用
    によって使用可能なフォーマットに変形するステップ
    と、 上記変形された地理的データを上記ナビゲーション応用
    プログラム機能の上記1つに供給するステップと、を備
    えていることを特徴とする方法。
  29. 【請求項29】 上記供給ステップは、 上記地理的データを、上記物理的記憶フォーマットから
    中間の圧縮解除されたフォーマットに変形するステップ
    と、 上記地理的データを、上記中間の圧縮解除されたフォー
    マットから上記ナビゲーション応用プログラム機能が使
    用可能な上記フォーマットに変形するステップと、を更
    に備えている請求項28に記載の方法。
  30. 【請求項30】 上記ナビゲーション応用からの要求を
    受け入れる前に、上記記憶媒体からメタデータファイル
    を読み出すステップと、 上記メタデータファイルの一部分をメモリ内に格納する
    ステップと、 上記メタデータファイルを使用して、上記物理的記憶フ
    ォーマットのあるバージョンレベルから上記ナビゲーシ
    ョン応用プログラム機能のあるバージョンレベルに翻訳
    するステップと、を更に備えている請求項28に記載の
    方法。
  31. 【請求項31】 上記ナビゲーション応用プログラム機
    能の上記1つからの上記要求に応答して複数のデータエ
    ンティティを識別した後に、上記ナビゲーション応用プ
    ログラム機能が使用可能な上記フォーマットの上記複数
    のデータエンティティの第1の部分的結果のセットを、
    上記ナビゲーション応用プログラム機能の上記1つに供
    給するステップを更に備えている請求項28に記載の方
    法。
  32. 【請求項32】 もし上記複数のデータエンティティが
    第1のしきい値を超えれば、上記第1のしきい値までの
    上記複数のデータエンティティの第1の部分的結果のセ
    ットを、上記ナビゲーション応用プログラム機能によっ
    て使用可能な上記フォーマットで上記ナビゲーション応
    用プログラム機能の上記1つに供給し、上記第1のしき
    い値を超える上記複数のデータエンティティの一部分の
    ためのエンティティ識別子を維持するステップを更に備
    えている請求項31に記載の方法。
  33. 【請求項33】 もし上記複数のデータエンティティが
    第1のしきい値及び上記第1のしきい値より大きい第2
    のしきい値を超えれば、上記第1のしきい値までの上記
    複数のデータエンティティの第1の部分的結果のセット
    を上記ナビゲーション応用プログラム機能によって使用
    可能な上記フォーマットで上記ナビゲーション応用プロ
    グラム機能の上記1つに供給し、上記第1のしきい値を
    超える上記複数のデータエンティティの一部分のための
    エンティティ識別子を維持し、そして上記第2のしきい
    値を超えるデータエンティティに関して地理的データに
    関する上記要求を再実行させる参照カーソルを維持する
    ステップを更に備えている請求項31に記載の方法。
JP9332263A 1996-10-25 1997-10-27 ナビゲーションシステム用のインタフェースレイヤ Pending JPH10253367A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/740,298 US6047280A (en) 1996-10-25 1996-10-25 Interface layer for navigation system
US08/740298 1996-10-25

Publications (1)

Publication Number Publication Date
JPH10253367A true JPH10253367A (ja) 1998-09-25

Family

ID=24975909

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9332263A Pending JPH10253367A (ja) 1996-10-25 1997-10-27 ナビゲーションシステム用のインタフェースレイヤ

Country Status (5)

Country Link
US (3) US6047280A (ja)
EP (1) EP0838771B1 (ja)
JP (1) JPH10253367A (ja)
CA (1) CA2219037C (ja)
DE (1) DE69732755T2 (ja)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11230767A (ja) * 1998-02-13 1999-08-27 Toyota Motor Corp ナビゲーション用地図データアクセス方法
JP2000028375A (ja) * 1998-07-08 2000-01-28 Nec Corp データベースの制御方法および装置
JP2000221046A (ja) * 1998-11-19 2000-08-11 Navigation Technol Corp ナビゲーションシステムと共に実時間交通情報放送を使用する方法及びシステム
JP2001159531A (ja) * 1999-11-30 2001-06-12 Mitsubishi Electric Corp 車載情報処理装置
JP2001159525A (ja) * 1999-11-30 2001-06-12 Mitsubishi Electric Corp ナビゲーション装置および記録媒体
JP2001159524A (ja) * 1999-11-30 2001-06-12 Mitsubishi Electric Corp 車載用情報処理装置および記録媒体
JP2001331493A (ja) * 2000-03-22 2001-11-30 Navigation Technol Corp 地図データ用演繹データベース・アーキテクチャ
US6397144B2 (en) 1999-11-30 2002-05-28 Mitsubishi Denki Kabushiki Kaisha On-vehicle information processor with map data and map data management
JP2003525498A (ja) * 2000-03-03 2003-08-26 スーパー インターネット サイト システム プロプライエタリー リミテッド オンライン地理ディレクトリー
JP2006275857A (ja) * 2005-03-30 2006-10-12 Xanavi Informatics Corp ナビゲーション装置
JP2013019902A (ja) * 2011-07-12 2013-01-31 Harman Internatl Industries Inc ナビゲーション・アプリケーション・インターフェース
JP2016154879A (ja) * 2004-03-11 2016-09-01 ヘレ グローバル ベスローテン フェンノートシャップHERE Global B.V. コンピュータゲームにおける地理的データのためのアプリケーションプログラミングインターフェイス

Families Citing this family (180)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040139049A1 (en) * 1996-08-22 2004-07-15 Wgrs Licensing Company, Llc Unified geographic database and method of creating, maintaining and using the same
US6178377B1 (en) * 1996-09-20 2001-01-23 Toyota Jidosha Kabushiki Kaisha Positional information providing system and apparatus
US6047280A (en) * 1996-10-25 2000-04-04 Navigation Technologies Corporation Interface layer for navigation system
US10839321B2 (en) 1997-01-06 2020-11-17 Jeffrey Eder Automated data storage system
US6272429B1 (en) * 1997-12-15 2001-08-07 Ronnie Dansby Detailed information database management system
US6519686B2 (en) * 1998-01-05 2003-02-11 Intel Corporation Information streaming in a multi-process system using shared memory
JP3546680B2 (ja) * 1998-01-26 2004-07-28 トヨタ自動車株式会社 ナビゲーション装置
WO1999049394A1 (en) * 1998-03-23 1999-09-30 Microsoft Corporation Application program interfaces in an operating system
US6792432B1 (en) * 1998-03-31 2004-09-14 Sybase, Inc. Database system with methods providing high-concurrency access in B-Tree structures
US6327606B1 (en) * 1998-06-24 2001-12-04 Oracle Corp. Memory management of complex objects returned from procedure calls
US6253226B1 (en) * 1998-06-24 2001-06-26 Oracle Corporation Duration-based memory management of complex objects
US6263332B1 (en) 1998-08-14 2001-07-17 Vignette Corporation System and method for query processing of structured documents
US6412053B2 (en) 1998-08-26 2002-06-25 Compaq Computer Corporation System method and apparatus for providing linearly scalable dynamic memory management in a multiprocessing system
US6732120B1 (en) * 1998-09-03 2004-05-04 Geojet Information Solutions Inc. System and method for processing and display of geographical data
US6393149B2 (en) 1998-09-17 2002-05-21 Navigation Technologies Corp. Method and system for compressing data and a geographic database formed therewith and methods for use thereof in a navigation application program
US6519594B1 (en) * 1998-11-14 2003-02-11 Sony Electronics, Inc. Computer-implemented sharing of java classes for increased memory efficiency and communication method
US6718332B1 (en) * 1999-01-04 2004-04-06 Cisco Technology, Inc. Seamless importation of data
US6292743B1 (en) 1999-01-06 2001-09-18 Infogation Corporation Mobile navigation system
JP2000222214A (ja) * 1999-02-01 2000-08-11 Hitachi Ltd 地理情報表示制御装置
US6343301B1 (en) * 1999-02-24 2002-01-29 Navigation Technologies Corp. Method and system for collecting data for updating a geographic database
US6282540B1 (en) * 1999-02-26 2001-08-28 Vicinity Corporation Method and apparatus for efficient proximity searching
US6694320B1 (en) * 1999-03-01 2004-02-17 Mitel, Inc. Branding dynamic link libraries
US6516320B1 (en) * 1999-03-08 2003-02-04 Pliant Technologies, Inc. Tiered hashing for data access
AU3181900A (en) * 1999-03-26 2000-10-16 British Telecommunications Public Limited Company Computer system
JP3659062B2 (ja) * 1999-05-21 2005-06-15 株式会社日立製作所 計算機システム
US6418454B1 (en) 1999-05-28 2002-07-09 Oracle Corporation Method and mechanism for duration-based management of temporary LOBs
US7100000B1 (en) * 1999-05-28 2006-08-29 International Business Machines Corporation System and methods for processing audio using multiple speech technologies
US6460046B1 (en) * 1999-06-01 2002-10-01 Navigation Technologies Corp. Method and system for forming, storing and using sets of data values
DE69938801D1 (de) * 1999-06-22 2008-07-03 Mitsubishi Electric Corp Server in einem Navigationssystem
US7356559B1 (en) * 1999-07-01 2008-04-08 Affinity Internet, Inc. Integrated platform for developing and maintaining a distributed multiapplication online presence
US7219327B1 (en) * 1999-07-01 2007-05-15 Affinity Internet, Inc. Extensible data model for use in an integrated platform for creating a distribution multiapplication online presence
US7107286B2 (en) 1999-07-26 2006-09-12 Geoqwest International Inc. Integrated information processing system for geospatial media
US6681231B1 (en) 1999-07-26 2004-01-20 The Real Estate Cable Network, Inc. Integrated information processing system for geospatial media
US6842758B1 (en) * 1999-07-30 2005-01-11 Computer Associates Think, Inc. Modular method and system for performing database queries
US6581054B1 (en) 1999-07-30 2003-06-17 Computer Associates Think, Inc. Dynamic query model and method
US7644366B1 (en) * 1999-07-30 2010-01-05 Computer Associates Think, Inc. Method and system for displaying a plurality of discrete files in a compound file
CA2281331A1 (en) * 1999-09-03 2001-03-03 Cognos Incorporated Database management system
JP4080649B2 (ja) * 1999-09-20 2008-04-23 パイオニア株式会社 人ナビゲーションシステム
US6370541B1 (en) 1999-09-21 2002-04-09 International Business Machines Corporation Design and implementation of a client/server framework for federated multi-search and update across heterogeneous datastores
US6466933B1 (en) 1999-09-21 2002-10-15 International Business Machines Corporation Delayed delivery of query results or other data from a federated server to a federated client until such information is needed
US7197491B1 (en) 1999-09-21 2007-03-27 International Business Machines Corporation Architecture and implementation of a dynamic RMI server configuration hierarchy to support federated search and update across heterogeneous datastores
US7113939B2 (en) 1999-09-21 2006-09-26 International Business Machines Corporation Architecture to enable search gateways as part of federated search
US6792416B2 (en) 1999-09-21 2004-09-14 International Business Machines Corporation Managing results of federated searches across heterogeneous datastores with a federated result set cursor object
US6674434B1 (en) * 1999-10-25 2004-01-06 Navigation Technologies Corp. Method and system for automatic generation of shape and curvature data for a geographic database
US6711562B1 (en) 1999-12-01 2004-03-23 The Trustees Of Columbia University In The City Of New York Cache sensitive search (CSS) tree indexing system and method
WO2001040996A1 (en) * 1999-12-01 2001-06-07 The Trustees Of Columbia University In The City Of New York Cache sensitive search (css) tree indexing system and method
US6415226B1 (en) * 1999-12-20 2002-07-02 Navigation Technologies Corp. Method and system for providing safe routes using a navigation system
US6405128B1 (en) * 1999-12-20 2002-06-11 Navigation Technologies Corp. Method and system for providing an electronic horizon in an advanced driver assistance system architecture
JP3900778B2 (ja) * 2000-02-22 2007-04-04 アイシン・エィ・ダブリュ株式会社 ナビゲーション装置
US6424976B1 (en) * 2000-03-23 2002-07-23 Novell, Inc. Method of implementing a forward compatibility network directory syntax
WO2001075679A1 (en) * 2000-04-04 2001-10-11 Metamatrix, Inc. A system and method for accessing data in disparate information sources
KR20000053846A (ko) * 2000-04-26 2000-09-05 류재익 토지정보 시스템 지원을 위한 시공간 객체지향 모델링방법
AU2001274826B2 (en) * 2000-05-12 2006-03-16 Starr Braun-Huon Interactive system for processing and retrieving data relating to a particular destination via a communication device
US6829690B1 (en) * 2000-05-23 2004-12-07 Navteq North America, Llc Method and system for accessing spatially organized geographic data in blocks
JP2002055995A (ja) * 2000-05-31 2002-02-20 Canon Inc 情報処理方法及び装置
US6665863B1 (en) * 2000-05-31 2003-12-16 Microsoft Corporation Data referencing within a database graph
US7894986B2 (en) * 2000-06-02 2011-02-22 Navteq North America, Llc Method and system for forming a keyword database for referencing physical locations
WO2001095331A2 (en) * 2000-06-09 2001-12-13 Koninklijke Philips Electronics N.V. Method of implicit partitioning the storage space available on a storage medium
WO2001099081A1 (fr) * 2000-06-20 2001-12-27 Hitachi, Ltd. Dispositif de commande de vehicule
US6681382B1 (en) * 2000-09-18 2004-01-20 Cisco Technology, Inc. Method and system for using virtual labels in a software configuration management system
EP1202030B1 (en) 2000-10-31 2006-04-26 Matsushita Electric Industrial Co., Ltd. Navigation apparatus
AU2002228720A1 (en) * 2000-11-03 2002-05-15 Motorola, Inc. Data encoding method and system
US20020103974A1 (en) * 2000-11-29 2002-08-01 Giacomini Peter Joseph Method and apparatus for economical cache population
US7010308B2 (en) * 2000-12-13 2006-03-07 Telcontar Managing and querying moving point data
FR2818767B1 (fr) * 2000-12-22 2005-03-04 Frederic Cabaud Logiciel de gestion d'objets logiciels pouvant etre utilise, notamment, comme explorateur de cartes a puce
US7530076B2 (en) * 2001-03-23 2009-05-05 S2 Technologies, Inc. Dynamic interception of calls by a target device
US7359911B2 (en) * 2001-03-23 2008-04-15 S2 Technologies, Inc. System and method for building a database defining a plurality of communication interfaces
WO2002081252A1 (de) * 2001-04-09 2002-10-17 Siemens Aktiengesellschaft Datenspeichersystem für ein kraftfahrzeug und verfahren zum speichern von daten in einem kraftfahrzeug
US20030028503A1 (en) * 2001-04-13 2003-02-06 Giovanni Giuffrida Method and apparatus for automatically extracting metadata from electronic documents using spatial rules
US6427119B1 (en) * 2001-04-16 2002-07-30 General Motors Corporation Method and system for providing multiple entry points to a vehicle navigation route
US6691128B2 (en) * 2001-04-19 2004-02-10 Navigation Technologies Corp. Navigation system with distributed computing architecture
US7031955B1 (en) * 2001-04-27 2006-04-18 I2 Technologies Us, Inc. Optimization using a multi-dimensional data model
US7002579B2 (en) * 2001-05-09 2006-02-21 Cadec Corporation Split screen GPS and electronic tachograph
US7149625B2 (en) 2001-05-31 2006-12-12 Mathews Michael B Method and system for distributed navigation and automated guidance
US7676224B1 (en) 2001-07-06 2010-03-09 At&T Mobility Ii Llc Enhanced communication service for predicting and handling communication interruption
WO2003009610A1 (en) * 2001-07-18 2003-01-30 Telcontar System and method for initiating responses to location-based events
US7028024B1 (en) * 2001-07-20 2006-04-11 Vignette Corporation Information retrieval from a collection of information objects tagged with hierarchical keywords
US7441007B1 (en) 2001-07-30 2008-10-21 At&T Intellectual Property I, L.P. System and method for allowing applications to retrieve properties and configuration information from a persistent store
US7353248B1 (en) * 2001-07-30 2008-04-01 At&T Delaware Intellectual Property, Inc. Application server and method to perform hierarchical configurable data validation
US7191209B1 (en) * 2001-07-30 2007-03-13 Bellsouth Intellectual Property Corp. Application server and method to perform hierarchical configurable data manipulation
US7493210B2 (en) * 2001-08-09 2009-02-17 International Business Machines Corporation Vehicle navigation method
US6583716B2 (en) * 2001-08-15 2003-06-24 Motorola, Inc. System and method for providing location-relevant services using stored location information
US20030059743A1 (en) * 2001-08-29 2003-03-27 The Boeing Company Method and apparatus for automatically generating a terrain model for display during flight simulation
US20030061062A1 (en) * 2001-09-26 2003-03-27 Tucker Timothy J. XML data switch
US6424912B1 (en) * 2001-11-09 2002-07-23 General Motors Corporation Method for providing vehicle navigation instructions
US7283905B1 (en) 2001-12-11 2007-10-16 Garmin Ltd. System and method for estimating impedance time through a road network
US6704645B1 (en) * 2001-12-11 2004-03-09 Garmin Ltd. System and method for estimating impedance time through a road network
US6574554B1 (en) * 2001-12-11 2003-06-03 Garmin Ltd. System and method for calculating a navigation route based on non-contiguous cartographic map databases
US6581003B1 (en) * 2001-12-20 2003-06-17 Garmin Ltd. Systems and methods for a navigational device with forced layer switching based on memory constraints
US6545637B1 (en) 2001-12-20 2003-04-08 Garmin, Ltd. Systems and methods for a navigational device with improved route calculation capabilities
US6650996B1 (en) * 2001-12-20 2003-11-18 Garmin Ltd. System and method for compressing data
US6847890B1 (en) 2001-12-21 2005-01-25 Garmin Ltd. Guidance with feature accounting for insignificant roads
US7184886B1 (en) 2001-12-21 2007-02-27 Garmin Ltd. Navigation system, method and device with detour algorithm
US6892135B1 (en) 2001-12-21 2005-05-10 Garmin Ltd. Navigation system, method and device with automatic next turn page
US6975940B1 (en) 2001-12-21 2005-12-13 Garmin Ltd. Systems, functional data, and methods for generating a route
US7277794B1 (en) 2001-12-21 2007-10-02 Garmin Ltd. Guidance with feature accounting for insignificant roads
US6999873B1 (en) 2001-12-21 2006-02-14 Garmin Ltd. Navigation system, method and device with detour algorithm
US7533214B2 (en) * 2002-02-27 2009-05-12 Microsoft Corporation Open architecture flash driver
US6901499B2 (en) * 2002-02-27 2005-05-31 Microsoft Corp. System and method for tracking data stored in a flash memory device
US6978206B1 (en) * 2002-06-21 2005-12-20 Infogation Corporation Distributed navigation system
US7082443B1 (en) 2002-07-23 2006-07-25 Navteq North America, Llc Method and system for updating geographic databases
US20040083465A1 (en) * 2002-10-28 2004-04-29 Weijia Zhang Method and system for connecting to an application programming interface
US7069279B1 (en) * 2002-11-04 2006-06-27 Savaje Technologies, Inc. Timely finalization of system resources
US7430747B2 (en) 2002-12-04 2008-09-30 Microsoft Corporation Peer-to peer graphing interfaces and methods
US7603371B1 (en) * 2002-12-17 2009-10-13 Vignette Corporation Object based system and method for managing information
US7305396B2 (en) * 2002-12-31 2007-12-04 Robert Bosch Gmbh Hierarchical system and method for on-demand loading of data in a navigation system
US7080060B2 (en) * 2003-01-08 2006-07-18 Sbc Properties, L.P. System and method for intelligent data caching
US7239962B2 (en) * 2003-02-21 2007-07-03 Sony Corporation Method and apparatus for a routing agent
US7895065B2 (en) * 2003-02-26 2011-02-22 Sony Corporation Method and apparatus for an itinerary planner
US20060212185A1 (en) * 2003-02-27 2006-09-21 Philp Joseph W Method and apparatus for automatic selection of train activity locations
US20040205394A1 (en) * 2003-03-17 2004-10-14 Plutowski Mark Earl Method and apparatus to implement an errands engine
US7099882B2 (en) 2003-04-29 2006-08-29 Navteq North America, Llc Method and system for forming, updating, and using a geographic database
DE10335602A1 (de) * 2003-08-04 2005-03-03 Robert Bosch Gmbh Verfahren zur Aktualisierung von in einem navigablen Datenformat vorliegenden Kartendaten
US7293253B1 (en) * 2003-09-12 2007-11-06 Nortel Networks Limited Transparent interface migration using a computer-readable mapping between a first interface and a second interface to auto-generate an interface wrapper
JP2005140676A (ja) * 2003-11-07 2005-06-02 Mitsubishi Electric Corp ナビゲーションシステム
US7251659B1 (en) * 2003-12-04 2007-07-31 Sprint Communications Company L.P. Method and system for managing resource indexes in a networking environment
US20050171685A1 (en) * 2004-02-02 2005-08-04 Terry Leung Navigation apparatus, navigation system, and navigation method
US7984089B2 (en) * 2004-02-13 2011-07-19 Microsoft Corporation User-defined indexing of multimedia content
US7668845B1 (en) * 2004-02-18 2010-02-23 Microsoft Corporation C-tree for multi-attribute indexing
US8562439B2 (en) * 2004-03-11 2013-10-22 Navteq B.V. Geographic area templates for computer games
US7970749B2 (en) * 2004-03-11 2011-06-28 Navteq North America, Llc Method and system for using geographic data in computer game development
US7967678B2 (en) * 2004-03-11 2011-06-28 Navteq North America, Llc Computer game development factory system and method
US8688803B2 (en) * 2004-03-26 2014-04-01 Microsoft Corporation Method for efficient content distribution using a peer-to-peer networking infrastructure
WO2006020229A1 (en) * 2004-07-17 2006-02-23 Shahriar Sarkeshik Navigation interface system
US20060058953A1 (en) 2004-09-07 2006-03-16 Cooper Clive W System and method of wireless downloads of map and geographic based data to portable computing devices
EP1647960A1 (en) * 2004-10-15 2006-04-19 Leadtek Research Europe B. V. Integrated traffic and position data receiver
US7890492B2 (en) * 2004-11-15 2011-02-15 Zi Corporation Of Canada, Inc. Organizing pointers to objects in an array to improve the speed of object retrieval
JP4334464B2 (ja) * 2004-12-02 2009-09-30 パイオニア株式会社 情報更新装置、情報配信装置、情報処理システム、それらの方法、それらのプログラム、および、それらのプログラムを記録した記録媒体
US8205058B2 (en) 2004-12-10 2012-06-19 International Business Machines Corporation Resource management for data storage services
DE102005014273B4 (de) * 2005-03-24 2012-04-05 Dspace Digital Signal Processing And Control Engineering Gmbh Vergleich von Schnittstellen zwischen Softwarekomponenten
JP4581896B2 (ja) * 2005-08-02 2010-11-17 株式会社デンソー ナビゲーション装置およびプログラム
US8255640B2 (en) * 2006-01-03 2012-08-28 Apple Inc. Media device with intelligent cache utilization
US7925320B2 (en) 2006-03-06 2011-04-12 Garmin Switzerland Gmbh Electronic device mount
US8376857B1 (en) 2006-04-28 2013-02-19 Navteq B.V. Multi-player online game player proximity feature
US7792864B1 (en) * 2006-06-14 2010-09-07 TransUnion Teledata, L.L.C. Entity identification and/or association using multiple data elements
US7628704B1 (en) * 2006-06-15 2009-12-08 Navteq North America, Llc Geographic data collection using game play
US7693068B2 (en) * 2006-11-07 2010-04-06 Tekelec Systems, methods, and computer program products for providing a distributed hardware platform interface (HPI) architecture
JP4900725B2 (ja) * 2008-03-31 2012-03-21 アイシン・エィ・ダブリュ株式会社 地図更新システム及び地図更新プログラム
KR100898263B1 (ko) * 2008-04-24 2009-05-18 팅크웨어(주) 경로 표시 단말기의 퀵서치 방법 및 장치
US8719812B1 (en) * 2008-06-30 2014-05-06 Emc Corporation Methods, systems, and computer readable media for dynamically modifying and utilizing a software package description for software installation
US20100082564A1 (en) * 2008-10-01 2010-04-01 Navteq North America, Llc Spatial Index for Locating Geographic Data Parcels Stored on Physical Storage Media
US8725474B2 (en) 2008-10-01 2014-05-13 Navteq B.V. Bezier curves for advanced driver assistance system applications
US8762046B2 (en) * 2008-10-01 2014-06-24 Navteq B.V. Creating geometry for advanced driver assistance systems
US8990004B2 (en) * 2008-12-17 2015-03-24 Telenav, Inc. Navigation system with query mechanism and method of operation thereof
KR20100085564A (ko) * 2009-01-21 2010-07-29 삼성전자주식회사 데이터 처리 시스템과 데이터 처리 방법
US8812475B2 (en) * 2009-04-20 2014-08-19 International Business Machines Corporation Facilitating object searches in virtual worlds
US9304005B2 (en) 2009-12-04 2016-04-05 GM Global Technology Operations LLC Application programming interface (API) for navigation applications that merges incremental updates with existing map database
US8301364B2 (en) * 2010-01-27 2012-10-30 Navteq B.V. Method of operating a navigation system to provide geographic location information
CN102859497B (zh) * 2010-04-16 2015-05-06 三菱电机株式会社 数据访问方法及数据访问装置
DE102010017478A1 (de) * 2010-06-21 2011-12-22 Krauss-Maffei Wegmann Gmbh & Co. Kg Verfahren zur Extraktion von Daten aus einer Sichtdatenbank zum Aufbau einer Simulationsdatenbank
US8990181B2 (en) * 2010-09-16 2015-03-24 Standard Microsystems Corporation Method and system for transferring data between a host device and an external device
JP5353926B2 (ja) * 2011-03-09 2013-11-27 株式会社デンソー ナビゲーション装置
US8364725B2 (en) 2011-03-24 2013-01-29 International Business Machines Corporation Bidirectional navigation between mapped model objects
US8832077B1 (en) 2011-05-04 2014-09-09 Google Inc. Selectively retrieving search results in accordance with different logical relationships
US8812644B2 (en) 2011-05-26 2014-08-19 Candi Controls, Inc. Enabling customized functions to be implemented at a domain
US20120303750A1 (en) * 2011-05-26 2012-11-29 Mike Anderson Cloud-assisted network device integration
CN102279808A (zh) * 2011-09-06 2011-12-14 晨星软件研发(深圳)有限公司 一种嵌入式设备图像内存管理方法及装置
US8280414B1 (en) 2011-09-26 2012-10-02 Google Inc. Map tile data pre-fetching based on mobile device generated event analysis
US9043371B1 (en) 2011-11-04 2015-05-26 Google Inc. Storing information in a trusted environment for use in processing data triggers in an untrusted environment
US8886715B1 (en) * 2011-11-16 2014-11-11 Google Inc. Dynamically determining a tile budget when pre-fetching data in a client device
US9064013B1 (en) 2011-11-30 2015-06-23 Google Inc. Application of resource limits to request processing
US9305107B2 (en) 2011-12-08 2016-04-05 Google Inc. Method and apparatus for pre-fetching place page data for subsequent display on a mobile computing device
US9197713B2 (en) 2011-12-09 2015-11-24 Google Inc. Method and apparatus for pre-fetching remote resources for subsequent display on a mobile computing device
US9235607B1 (en) 2012-03-29 2016-01-12 Google Inc. Specifying a predetermined degree of inconsistency for test data
US10037623B2 (en) * 2013-03-15 2018-07-31 Bwise B.V. Dynamic risk structure creation systems and/or methods of making the same
US10169370B2 (en) * 2013-06-14 2019-01-01 Here Global B.V. Navigation database customization
KR102117511B1 (ko) * 2013-07-30 2020-06-02 삼성전자주식회사 프로세서 및 메모리 제어 방법
DE102013225497A1 (de) * 2013-12-10 2015-06-11 Bayerische Motoren Werke Aktiengesellschaft Datenkommunikation zwischen einer Recheneinrichtung eines Fahrzeugs und einem Dienstserver
WO2016008087A1 (en) 2014-07-15 2016-01-21 Microsoft Technology Licensing, Llc Managing multiple data models over data storage system
WO2016008088A1 (en) 2014-07-15 2016-01-21 Microsoft Technology Licensing, Llc Data retrieval across multiple models
EP3170100A4 (en) 2014-07-15 2017-12-06 Microsoft Technology Licensing, LLC Data model change management
EP3170101B1 (en) 2014-07-15 2020-10-07 Microsoft Technology Licensing, LLC Data model indexing for model queries
US9811559B2 (en) * 2014-09-01 2017-11-07 Mapquest, Inc. Computerized systems and methods for identifying points-of-interest using customized query prediction
US9686357B1 (en) 2016-08-02 2017-06-20 Palantir Technologies Inc. Mapping content delivery
US9674278B1 (en) * 2016-08-03 2017-06-06 Palantir Technologies Inc. Geographic data management server
US11054971B2 (en) * 2017-05-23 2021-07-06 Salesforce.Com., Inc. Modular runtime environment
WO2020177074A1 (zh) * 2019-03-05 2020-09-10 深圳市天软科技开发有限公司 一种数据提取方法、终端设备及计算机可读存储介质
CN112414409B (zh) * 2020-11-16 2022-08-02 天津航天中为数据系统科技有限公司 一种基于串结构的自主巡检路径规划方法及飞行器
USD959552S1 (en) 2021-07-21 2022-08-02 Speedfind, Inc Display sign
DE102022208227A1 (de) 2022-08-08 2024-02-08 Volkswagen Aktiengesellschaft Verfahren zur komprimierten Speicherung von Bewegungsdaten eines Fahrzeuges, Verfahren zur Erfassung von komprimierten Bewegungsdaten für eine Karte von zumindest einem Fahrzeug und entsprechende Vorrichtungen

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4086632A (en) * 1976-09-27 1978-04-25 The Boeing Company Area navigation system including a map display unit for establishing and modifying navigation routes
JPS585611A (ja) * 1981-07-01 1983-01-13 Toyota Motor Corp 走行案内装置
JPS61250671A (ja) * 1985-04-27 1986-11-07 株式会社デンソー 地図表示装置
CA1277043C (en) * 1985-07-25 1990-11-27 Marvin S. White, Jr. Apparatus storing a representation of topological structures and methods of building and searching the representation
NL8602654A (nl) * 1986-10-23 1988-05-16 Philips Nv Werkwijze voor het in kavels verdelen en in een massageheugen bitsgewijs opslaan van een gegevensbestand, alsook voor het adresseren van een kavel, en inrichting voor het uitvoeren van de werkwijze.
US4972319A (en) * 1987-09-25 1990-11-20 Delorme David M Electronic global map generating system
US5191532A (en) * 1987-12-05 1993-03-02 Aisin Aw Co., Ltd. Navigation apparatus
DE3853719T2 (de) * 1987-12-28 1995-10-05 Aisin Aw Co Wegsuchverfahren für navigationssystem.
JPH023900A (ja) * 1988-06-16 1990-01-09 Nissan Motor Co Ltd 移動体用現在地表示装置
US5170353A (en) * 1988-11-17 1992-12-08 U.S. Philips Corporation Bucket-oriented route planning method, and navigation system comprising a route planner for carrying out such a method
US5036471A (en) * 1989-04-18 1991-07-30 Sanyo Electric Co., Ltd. Apparatus for road path searching applicable to car navigation system and operation method thereof
US5150295A (en) * 1990-05-22 1992-09-22 Teledyne Industries, Inc. Computerized system for joining individual maps into a single map product
US5295261A (en) * 1990-07-27 1994-03-15 Pacific Bell Corporation Hybrid database structure linking navigational fields having a hierarchial database structure to informational fields having a relational database structure
US5235701A (en) * 1990-08-28 1993-08-10 Teknekron Communications Systems, Inc. Method of generating and accessing a database independent of its structure and syntax
US5327529A (en) 1990-09-24 1994-07-05 Geoworks Process of designing user's interfaces for application programs
DE69131270T2 (de) * 1990-10-01 1999-12-02 Mannesmann Vdo Ag Verfahren zur Speicherung eines topologischen Netzwerkes und Verfahren und Geräte, um eine Reihe von 1-Zellen zu identifizieren
JP2570500B2 (ja) * 1990-12-19 1997-01-08 三菱電機株式会社 車載用ナビゲーション装置
EP0514972B1 (en) * 1991-05-22 1996-03-27 Koninklijke Philips Electronics N.V. Multinode distributed data processing system for use in a surface vehicle
US5285391A (en) * 1991-08-05 1994-02-08 Motorola, Inc. Multiple layer road memory storage device and route planning system
JP2848061B2 (ja) * 1991-11-06 1999-01-20 三菱電機株式会社 ナビゲーション装置
EP0775891B1 (en) * 1992-02-18 1999-05-12 Pioneer Electronic Corporation Navigation apparatus with enhanced positional display function
US5412573A (en) * 1993-05-20 1995-05-02 Motorola Inc. Multi-mode route guidance system and method therefor
US5544087A (en) 1993-06-04 1996-08-06 Sumitomo Electric Industries, Ltd. Navigation system
US5517419A (en) * 1993-07-22 1996-05-14 Synectics Corporation Advanced terrain mapping system
DE69331741T2 (de) * 1993-10-04 2002-10-02 Siemens Ag Verfahren und Vorrichtung zum schnellen Zugriff auf Dateneinheiten einer sortierten Liste und Datenbankträger für dieses Verfahren und/oder diese Vorrichtung
EP0722559B1 (en) 1994-08-08 2001-07-18 Mannesmann VDO Aktiengesellschaft A navigation device for a land vehicle with means for generating a multi-element anticipatory speech message, and a vehicle comprising such device
JPH0886660A (ja) * 1994-09-16 1996-04-02 Alpine Electron Inc 車載用ナビゲーション装置
US5528518A (en) 1994-10-25 1996-06-18 Laser Technology, Inc. System and method for collecting data used to form a geographic information system database
JP3042341B2 (ja) * 1994-11-30 2000-05-15 日本電気株式会社 クラスタ結合型マルチプロセッサシステムにおけるローカル入出力制御方法
US5590331A (en) 1994-12-23 1996-12-31 Sun Microsystems, Inc. Method and apparatus for generating platform-standard object files containing machine-independent code
US5731978A (en) 1995-06-07 1998-03-24 Zexel Corporation Method and apparatus for enhancing vehicle navigation through recognition of geographical region types
JP3386816B2 (ja) * 1995-06-16 2003-03-17 マネスマン ファウデーオー アクチェンゲゼルシャフト 車両用の道路ネットワーク表示の複合ジャンクション及びリンクに要素を結合するシステム。
US5953722A (en) * 1996-10-25 1999-09-14 Navigation Technologies Corporation Method and system for forming and using geographic data
US5968109A (en) * 1996-10-25 1999-10-19 Navigation Technologies Corporation System and method for use and storage of geographic data on physical media
US6047280A (en) * 1996-10-25 2000-04-04 Navigation Technologies Corporation Interface layer for navigation system

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11230767A (ja) * 1998-02-13 1999-08-27 Toyota Motor Corp ナビゲーション用地図データアクセス方法
JP2000028375A (ja) * 1998-07-08 2000-01-28 Nec Corp データベースの制御方法および装置
JP2000221046A (ja) * 1998-11-19 2000-08-11 Navigation Technol Corp ナビゲーションシステムと共に実時間交通情報放送を使用する方法及びシステム
JP2001159531A (ja) * 1999-11-30 2001-06-12 Mitsubishi Electric Corp 車載情報処理装置
JP2001159525A (ja) * 1999-11-30 2001-06-12 Mitsubishi Electric Corp ナビゲーション装置および記録媒体
JP2001159524A (ja) * 1999-11-30 2001-06-12 Mitsubishi Electric Corp 車載用情報処理装置および記録媒体
US6397144B2 (en) 1999-11-30 2002-05-28 Mitsubishi Denki Kabushiki Kaisha On-vehicle information processor with map data and map data management
JP2003525498A (ja) * 2000-03-03 2003-08-26 スーパー インターネット サイト システム プロプライエタリー リミテッド オンライン地理ディレクトリー
JP2001331493A (ja) * 2000-03-22 2001-11-30 Navigation Technol Corp 地図データ用演繹データベース・アーキテクチャ
JP2016154879A (ja) * 2004-03-11 2016-09-01 ヘレ グローバル ベスローテン フェンノートシャップHERE Global B.V. コンピュータゲームにおける地理的データのためのアプリケーションプログラミングインターフェイス
JP2006275857A (ja) * 2005-03-30 2006-10-12 Xanavi Informatics Corp ナビゲーション装置
JP2013019902A (ja) * 2011-07-12 2013-01-31 Harman Internatl Industries Inc ナビゲーション・アプリケーション・インターフェース
US9542241B2 (en) 2011-07-12 2017-01-10 Harman International Industries, Incorporated Navigation application interface

Also Published As

Publication number Publication date
CA2219037A1 (en) 1998-04-25
DE69732755T2 (de) 2006-04-06
US6047280A (en) 2000-04-04
EP0838771A3 (en) 1999-12-01
EP0838771B1 (en) 2005-03-16
DE69732755D1 (de) 2005-04-21
US6370539B1 (en) 2002-04-09
EP0838771A2 (en) 1998-04-29
CA2219037C (en) 2004-10-12
US6173277B1 (en) 2001-01-09

Similar Documents

Publication Publication Date Title
CA2219037C (en) Interface layer for navigation system
US6073076A (en) Memory management for navigation system
EP1139066B1 (en) Deductive database architecture for geographic data
US6362779B1 (en) Method and system for providing navigation systems with updated geographic data
JP3041528B2 (ja) フアイル・システム・モジュール
US5829053A (en) Block storage memory management system and method utilizing independent partition managers and device drivers
US6961828B2 (en) Cluster system, memory access control method, and recording medium
US5159678A (en) Method for efficient non-virtual main memory management
EP0578209B1 (en) Method and system for organizing internal structure of a file
US5907703A (en) Device driver for accessing computer files
US5953522A (en) Temporary computer file system implementing using anonymous storage allocated for virtual memory
JP2001508212A (ja) インスタンス化を用いた共有オペレーティングシステムカーネルコードに対する効率的なマルチユーザアクセスを提供するためのオブジェクトおよび方法
US5860079A (en) Arrangement and method for efficient calculation of memory addresses in a block storage memory system
JP3118348B2 (ja) プログラムキャッシュ方法
JPWO2004057457A1 (ja) 印刷制御装置及び印刷制御方法
KR100404907B1 (ko) 개방형 지리정보시스템을 위한 메모리 관리 방법 및 장치
JP2830905B2 (ja) システムリリースデータ共有方式
CN118276768A (zh) 一种存储系统、数据处理方法及相关装置
JPH0793192A (ja) ファイル管理方法
JPH0298752A (ja) 二進木による二次記憶領域管理方法
JPS62107364A (ja) コンピュータシステムにおけるノード間のアクセス方法
JPH0474232A (ja) タスク実行方法及びキャッシュ装置の割り当て方法
IES70671B2 (en) Data processing system
JPH04215167A (ja) データディクショナリ管理システム
JPH07200179A (ja) ボリュームの分割管理方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040512

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060904

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20061204

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20061207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070305

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070514

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070814

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070817

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071031

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20071203

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080616