專利名稱:用于導航數據庫的格式描述的制作方法
技術領域:
本發(fā)明涉及數據庫,特別地,涉及導航系統(tǒng)中的數據庫。本發(fā)明 特別涉及一種使用適當的物理存儲格式在數據庫中組織數據的方法。
背景技術:
在現在的車輛上,導航系統(tǒng)變得越來越普遍,尤其是在中、高檔 汽車上。導航系統(tǒng)執(zhí)行通往用戶預先或在駕駛過程中輸入的預定目的 地的視覺上和/或聽覺上的路線引導。導航系統(tǒng)包括比較巨大的數據庫,用于存儲表示諸如城市、街道、 感興趣點等條目的列表。考慮到導航系統(tǒng)中有限的可用計算機資源, 該列表很容易變得很長而難以管理。根據用于管理導航數據庫所提供的大量數據的普通方法,用戶定 制的專用二進制(或文本)數據格式被定義成,使存儲需求最小化, 并使針對特定應用的數據存取最優(yōu)化。這種方法遇到的問題是這種 數據格式難以適應將來的未預見到的需求和格式擴展,例如,由于導 航軟件的新近版本的標準的修改而引起的情況。盡管軟件的更新版本 通常被設計為可以應付比較舊的數據庫,但是要用已修改的比較新的 格式來更改數據庫,使得該數據庫仍然可以被比較舊的軟件版本讀取 是有挑戰(zhàn)的。因而,通常情況下會設法盡可能避免不兼容的格式更改,尤其是 通過在原始數據格式中提供一些額外開銷以備在將來的格式說明中可 能會有用。額外開銷的缺點在于,二進制數據需要包括未使用或僅部 分使用的數據部分,因而要大于軟件開發(fā)的給定階段所必需的數據。 另外,不能創(chuàng)建可適應所有未預見到的但是將來仍然需要的格式和功 能上的更改和升級的專用數據格式。另一種方法是實施原始數據庫格式中的數據范圍,其在開始時被 軟件忽略,并且在這些范圍已經被使用(例如,由于原來數據庫的信
息不可用)之后僅在被應用的軟件的將來版本中被解釋。同樣,由于 關于跳過比較舊的數據的這種數據范圍或關于解釋用于擴展的數據條 目的這些數據范圍的信息必須以數據庫格式被存儲,這導致大量的額 外開銷。此外,對數據庫的擴展僅可在事先被預測的位置執(zhí)行,從而 格式更改的靈活性是有限的。使用通用的數據格式(例如,在關系數據庫中)在嵌入式系統(tǒng)(例 如,車輛上的導航系統(tǒng)的導航數據庫)中通常并不是優(yōu)選的,因為通 用格式沒有針對實際應用進行優(yōu)化,導致與專用數據格式相比,數據 量更大,并且數據訪問速度更慢,這些在計算機和存儲資源有限的系 統(tǒng)中是不能接受的缺點。出于同樣的原因,使用自描述格式,例如,可擴展標記語言(XML)作為文本格式是不可取的,可擴展標記語言允許存儲分配有識別標簽 的任意數據實體,應用軟件使用這些識別標簽來過濾各自必需的信息。 標簽急劇增加了存儲需求。鑒于以上所述,本發(fā)明的一個目標是提供一種用于以高效可靠的 方式管理導航數據庫的方法,該方法允許進一步擴展且不損失兼容性。發(fā)明內容依據權利要求1,通過一種對于包括一個或多個數據文件(這些數 據被應用軟件使用)的導航數據庫中的數據的組織和管理方法,解決了上述問題,該方法包括將數據存儲在至少一個數據文件中;對于導航數據庫的至少一個數據文件,實施至少一個格式描述; 實施一個抽象機,作為例如分析器,用于解釋存儲在至少一個數據文件中的數據,并用于向應用軟件分析數據,以便應用軟件能過濾出該應用軟件可識別的并且可使用的信息;并且 其中,抽象機被至少一個格式描述控制。數據庫文件(或巻)可以包括,例如, 一個國家或一個聯邦國家 的導航數據(街道、道路、交通信號、交叉口視圖、建筑、地形數據 等)。物理文件可以由存儲介質提供,例如,硬盤或CD或DVD。應用 軟件是,例如,安裝在包括導航數據庫的導航系統(tǒng)中的導航軟件。
根據本發(fā)明,為數據文件實施格式描述,優(yōu)選的是,為導航數據 庫中包含的所有數據文件實施格式描述。如果為多于一個數據文件實 施格式描述,可以對這些數據文件實施相同的格式描述。通過該格式 描述,表明記錄的類型是由不同數據類型(例如,整型、字符串型、 指針型)的元素組成的。此外,該格式描述表明記錄中各元素的順序。 該格式描述表示將由抽象機解釋的字節(jié)代碼。格式描述的實施可以通過在至少一個數據文件的文件頭中生成格 式描述表來有利地執(zhí)行,格式描述表定義了在至少一個數據文件中使 用的記錄類型并表明組成該記錄的各元素的順序。格式描述表可以被視為將由虛擬分析機解釋的字節(jié)代碼。格式描 述表可以包括行列表,其中每一行有預定數目的數據條目(例如,8位或16位的多整數),每一行包括用于抽象機的至少一條命令。格式描述由抽象機讀出,抽象機使用該格式描述來解釋存儲在至 少一個數據文件中的數據。抽象機可以是由表格控制的分析器,其被 配置成從讀取的數據中生成例如分析樹,該分析樹隨后可被用于某個 應用軟件做進一步處理,尤其是用于由編譯器生成代碼或由解釋器執(zhí) 行代碼。從而,存儲在導航數據庫中的數據內容到二進制或文本格式的實 際映射不是軟件的一部分,而是在數據文件的格式描述(表)中被定 義的。因此,在不需要對應用軟件做出任何更改的情況下,就可以修 改導航數據庫的存儲大小。此外,控制抽象機的格式描述并不受限于 特定的硬件結構。數據庫的修改和增強可以通過修改數據格式,或者特別地,通過 使用多于一個格式描述來容易地實施。在后者的情況下, 一個描述格 式可以利用數據庫中所采用的第一標準版本的一種語法元素(如讀取、 跳過對寄存器指令的存取等),并可以僅啟動與該第一標準兼容的軟 件。另外,通過使用由第一標準的比較新的版本定義的另外的語法元 素,可以提供一個或多個更多的格式描述。需要聲明的是,上述方法以及如下所述的其實施例通??梢詰?于二進制編碼的只讀數據庫,特別地,可應用于嵌入式系統(tǒng)中的二進 制編碼的只讀數據庫。該方法在車輛導航系統(tǒng)中所包括的導航數據庫
的環(huán)境中尤其有用,因為車輛導航系統(tǒng)代表著具有比較有限的計算機/ 存儲器資源的嵌入式系統(tǒng)的重要實例。本發(fā)明還提供用于提供帶有數據的導航軟件產品的方法,依據權 利要求2,該方法包括提供包括至少一個數據文件的導航數據庫,其中,實施導航數據 庫的至少一個數據文件的至少一個格式描述,還實施抽象機,該抽象 機被配置成通過至少一個格式描述來解釋存儲在至少一個數據文件中的數據;將數據存儲在至少一個數據文件中;讀取并處理存儲在至少一個數據文件中的至少部分數據; 向導航軟件產品分析所讀取并處理的存儲在至少一個數據文件中 的部分數據。實施格式描述,例如,使得導航軟件為駕駛員提供路線引導時能 夠實現高度靈活性,能夠對存儲在車輛導航系統(tǒng)的導航數據庫中的數 據進行快速并可靠的分析。根據一個實施例,抽象機包括至少一個寄存器和格式描述表,格 式描述表包括關于待讀取的數據格式和/或關于將已讀取數據傳送到至 少一個寄存器和/或關于與應用軟件相關的已讀取數據的語義的信息, 以便于對數據進行解釋。通過這些類型的信息,可以對導航數據庫中 存儲的數據進行有效的管理。特別地,為了抽象機的有效控制,格式描述表的每行中可以包括 分析器指令、語法ID和語義ID。分析器指令控制抽象機將會讀取的數 據的類型。分析器指令可以包括固定長度或可變長度的整數或字符串 或用于引用例如記錄的指針。例如,用于分支(branching)數據,g卩,從一個記錄跳到另一個 記錄,或用于分析嵌套記錄的更復雜的指令,也可以被用作分析器指 令。這些指令也可有條件地執(zhí)行。在這種情況下,抽象機被啟動以對 條件表達式求值,并根據該求值結果決定將執(zhí)行指令還是將跳過該指 令。抽象機也可以執(zhí)行用于讀取與導航數據庫的至少一個數據文件中 所存儲的數據有關的數據條目的數組或列表的循環(huán)命令。在數組中, 數據元素的順序被重復。
語法ID可以是簡單的整數,并表示定義抽象機將如何處理所存儲的數據的方式。例如,語法ID使抽象機讀取特定類型的數據,和/或對 所讀數據執(zhí)行預定的算術運算。對此,根據一個實施例的抽象機包括 至少一個寄存器,并執(zhí)行算術運算。如果抽象機設置有至少一個寄存 器,寄存器訪問和寄存器寫入指令是上述的分析器指令的另外的實例。語義ID表示可以為組成記錄的每個元素設置的標簽。抽象機向應 用軟件分析ID號以及已經由于分析器指令而被讀取出的相應的數據元 素。通過使用語義ID,應用軟件可以理解元素的含義。未知的語義ID被忽略,從而在不損失應用軟件的當前版本的兼容 性的情況下,可以容易地添加格式擴展。實際上,由于使用語義ID, 數據庫格式與自描述格式一樣靈活和可擴展,例如,可擴展標記語言 (XML)。然而,根據本發(fā)明,沒有因將單個標簽分配給數據元素帶來 的額外開銷,由于添加標簽(tagging)是在格式描述中專門被執(zhí)行的, 它對導航數據庫的整個數據文件都是有效的。至于語義結構,優(yōu)選的,抽象機可以忽略預定數目的數據條目后 面的行中的數據實體。在這種情況下,在比較新的版本中的附加的(例 如,專用的)數據可以被添加到第一標準版本的數據庫的記錄的數據 元素中,該附加數據可以在設計用于第一標準版本的應用軟件中被忽 略,但可以被比較新的軟件版本解釋。同樣,由比較新的版本引入的 未知的語義ID被不是最新的抽象機和/或應用軟件所忽略。格式描述可以被直接安裝在導航數據庫的至少一個數據文件中, 或者設置在與導航數據庫的每個數據巻不同的數據巻或與導航數據庫 的每個數據文件不同的數據集上。例如,新的擴展格式描述可以通過 從因特網下載來實施于現有的導航數據庫中,或可以被設置在單獨的 DVD上。換句話說,格式描述可以設置在與導航數據庫相同的物理巻 (介質)上(但是作為單獨的數據集),或者設置在不同的物理巻上。如果抽象機能適于解釋壓縮數據,則存儲在至少一個數據文件中 的數據可以被至少部分地壓縮。特別地,在車輛導航系統(tǒng)的導航數據 庫的環(huán)境中,希望數據能夠以某種壓縮的方式被存儲,以便減小必需 的存儲容量。本發(fā)明還提供一種導航數據庫,其包括至少一個數據文件和至少
一個數據文件的格式描述,該格式描述被配置成控制抽象機,該抽象 機被配置成解釋存儲在至少一個數據文件中的數據并向導航軟件分析 該數據。導航數據庫可以具有如上所述的實施。此外,提供一種車輛導航系統(tǒng),其包括導航軟件和包括至少一個 數據文件的導航數據庫,并且其中,實施導航數據庫的至少一個數據 文件的至少一個格式描述,并實施抽象機,該抽象機被配置成通過至 少一個格式描述來解釋存儲在至少一個數據文件中的數據,并向導航 軟件分析數據,并且其中,通過格式描述來控制抽象機。附圖簡要說明現將參考繪圖描述本發(fā)明的其它特征和優(yōu)點。在描述中,對附圖 進行了參考,以說明本發(fā)明的優(yōu)選實施例。應該理解,這些實施例并 不代表下面給出的權利要求所定義的本發(fā)明的完整保護范圍。
圖1示出了本發(fā)明在導航數據庫中組織和管理數據的方法的元素, 包括格式描述和抽象機。圖2示出了根據本文公開的方法的一個實例的抽象機的操作。抽 象機的操作是通過格式描述表來控制的。
具體實施方式
如圖1所示,導航數據庫1包括數據文件2,數據文件2包括格式 描述表以及數據塊3,數據塊3由數據元素所組合成的記錄構成。抽象 機4被實施用于讀取和解釋數據(元素)。抽象機是通過數據文件2的 格式描述表來控制的。根據包含在格式描述表中的指令,抽象機讀取 數據。數據包括字符串,其中一些字符串是使用基于令牌的壓縮方法被 壓縮的。在任何被壓縮的字符串中都沒有出現的字節(jié)值可以被用作令 牌,并且可將任意長度的字節(jié)序列分配給每個令牌。通過將每個代表 令牌的字符串字節(jié)替換為其分配到的替換序列,抽象機能對壓縮的字 符串進行解壓。令牌可以通過為每個塊計算出的記號表來管理。格式描述表由二進制行序列組成,每行由字組成,例如,16位數 字。所有行的長度相同,并且該長度在格式描述表的頭部(例如,表
的第一行)中被定義。根據該實例,抽象機4僅考慮前十個字。第一 個字被用于抽象機的分析器指令。格式描述表包括語法ID和語義ID。例如,語法ID可以被用作格 式描述表的各行的第二個字,并且語義ID可以被用作第三個字。向導 航軟件5分析語義ID以及由于分析器指令而被抽象機4讀取的數據元 素。通過使用語義ID,導航軟件可以解釋數據元素的含義;未知的語 義ID將被忽略。因此,可以通過使用新的語義ID來實施格式擴展, 而不損失導航軟件和/或導航數據庫的不同版本之間的兼容性。圖2示出了根據本發(fā)明的抽象機與格式描述的交互的實例。抽象 機被實施為語法分析器。格式描述被實施為格式描述表,格式描述表 包含在數據文件頭中并且被語法分析器解釋為字節(jié)代碼。格式描述表 包括具有相同長度的行,其中每行由一組字組成。特別地,格式描述 表包括分析器指令,分析器指令控制語法分析器應讀取何種二進制數 據元素。根據該實例,分析器使用寄存器。為了處理嵌套記錄聲明,例如, 某個記錄類型包含另一記錄類型的數據元素,對于多個寄存器實施堆 棧式的結構。如圖2所示,在寄存器堆棧中布置9個寄存器。描述位置寄存器 指向格式描述表的當前指令。頭部寄存器是工作寄存器,語法分析器 在該寄存器中加載一個數值(例如,該數值可被用來控制表的各行的 條件性執(zhí)行)。參數寄存器被用于嵌套記錄的管理。對于最高等級的記 錄,該寄存器可包含零,并且對于內部記錄,該寄存器包含32位的參 數值。列表大小寄存器、數組大小寄存器(數據元素的序列以數組的方 式被重復)和二進制大小寄存器被用于數據列表和數組的管理,例如, 重復讀取或讀到某一特定列表條目,和具體二進制數據塊的控制,例 如,表示位像或加密二進制編碼的二進制數據塊。列表和數組索 引寄存器分別被用于管理語法分析器對列表和數組元素的迭代。根據該實例,還使用了另外三個寄存器。塊全局數據寄存器實際 上表示存儲當前被分析的塊的全局信息(例如,唯一標識數據塊的塊 索引)和該塊中包含的記錄數目的一組寄存器。二進制數據位置寄存
器涉及塊的二進制數據中的字節(jié)位置。根據分析器指令,待讀取的數 據將從二進制數據位置寄存器所指示的字節(jié)位置被讀出。當前記錄索 引包含指向當前被分析的記錄或列表元素的指針的記錄索引。特別地,寄存器的使用通常使得抽象機能夠執(zhí)行算術運算和指令 的條件性執(zhí)行,以及用于讀取數據元素的數組和列表的循環(huán)指令的執(zhí) 行。
權利要求
1.用于組織和管理包括至少一個數據文件的導航數據庫中的數據的方法,包括將數據存儲在所述至少一個數據文件中;對于所述導航數據庫的所述至少一個數據文件,實施至少一個格式描述;實施抽象機,用于解釋存儲在所述至少一個數據文件中的數據,和向應用軟件分析所述數據;并且其中,通過所述至少一個格式描述來控制所述抽象機。
5. 如權利要求3或4所述的方法,其中,所述抽象機包括至少一 個寄存器,并且所述格式描述表包括關于待讀取的數據的格式和/或關 于將所讀取的數據傳送到所述至少一個寄存器和/或關于所讀取的數據 的語義的信息。
6. 如權利要求5所述的方法,其中,所述格式描述表的每行中包 括分析器指令、語法ID和語義ID。
7. 如權利要求4-6中的任一項所述的方法,其中,所述抽象機包 括至少一個寄存器,并執(zhí)行算術運算和/或所述格式描述表的行中所包 括的指令的條件性執(zhí)行和/或執(zhí)行讀取由數據實體組成的數組或列表的 循環(huán)命令,其中所述數據實體是關于存儲在所述導航數據庫的所述至 少一個數據文件中的數據。
8. 如權利要求4-7中的任一項所述的方法,其中,所述抽象機忽 略預定數目的數據條目后面的行中的數據實體。
9. 如前面的權利要求中的任一項所述的方法,其中,所述格式描 述被安裝在所述導航數據庫的所述至少一個數據文件中,或者設置在 與所述導航數據庫的每個數據巻不同的數據巻上或與所述導航數據庫 的每個數據文件不同的數據集上。
10. 如前面的權利要求中的任一項所述的方法,其中,所述數據被 至少部分地壓縮,并且其中,使所述抽象機能夠解釋被壓縮的數據。
11. 導航數據庫,其包括至少一個數據文件和所述至少一個數據文 件的格式描述,所述格式描述被配置成控制抽象機,所述抽象機被配 置成解釋存儲在所述至少一個數據文件中的數據并向導航軟件分析所 述數據。
12. 車輛導航系統(tǒng),其包括導航軟件和包括至少一個數據文件的導 航數據庫,并且其中,實施所述導航數據庫的所述至少一個數據文件 的至少一個格式描述,并實施抽象機,所述抽象機被配置成通過所述 至少一個格式描述來解釋存儲在所述至少一個數據文件中的數據,并 向導航軟件分析所述數據,并且其中,通過所述格式描述來控制所述 抽象機。
全文摘要
本發(fā)明涉及一種用于組織和管理導航數據庫中的數據的方法,該導航數據庫包括至少一個被應用軟件使用的數據文件,該方法包括,將數據存儲在至少一個數據文件中,為導航數據庫的至少一個數據文件實施至少一個格式描述,實施一個抽象機,該抽象機用于解釋存儲在至少一個數據文件中的數據并用于向應用軟件分析數據,其中,抽象機是通過至少一個格式描述來控制的。
文檔編號G06F17/30GK101105807SQ20071013620
公開日2008年1月16日 申請日期2007年7月10日 優(yōu)先權日2006年7月10日
發(fā)明者J·蓋爾哈 申請人:哈曼貝克自動系統(tǒng)股份有限公司