欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

數(shù)據(jù)壓縮、傳輸、存儲(chǔ)及程序傳輸?shù)闹谱鞣椒?

文檔序號(hào):7538375閱讀:379來源:國(guó)知局
專利名稱:數(shù)據(jù)壓縮、傳輸、存儲(chǔ)及程序傳輸?shù)闹谱鞣椒?br> 技術(shù)領(lǐng)域
本發(fā)明涉及一種用于壓縮以諸如XML或ASN.1的樹本機(jī)語言(treelocal language)編寫的文件數(shù)據(jù)的數(shù)據(jù)壓縮方法。
XML(eXtensible Markup Language-可擴(kuò)充標(biāo)記語言)是用簡(jiǎn)單標(biāo)簽(tags)描述(標(biāo)記)文件的邏輯結(jié)構(gòu)的標(biāo)記語言之一。在XML中,為文件的成分規(guī)定語法規(guī)則,提供邏輯定義,使得用戶能唯一地?cái)U(kuò)充文件數(shù)據(jù)。所以,預(yù)計(jì)將來XML將作為一種數(shù)據(jù)格式,用于因特網(wǎng)上的數(shù)據(jù)交換。
XML有一個(gè)概念稱為DTD(文件類型定義),可以確定某文件對(duì)特定DTD是否有效。舉例來說,規(guī)定一條語法規(guī)則,使得節(jié)點(diǎn)<題目>、<作者>和<出版者>,按照標(biāo)著名稱的順序,一次一個(gè)地出現(xiàn)在節(jié)點(diǎn)<書>的下面。可以確定預(yù)定的文件是否有效,即預(yù)定的文件是否符合該語法規(guī)則。
至于語言風(fēng)格,XML文件的結(jié)構(gòu)屬于一個(gè)稱為樹本機(jī)語言的類。按照樹本機(jī)語言的定義,數(shù)據(jù)是由標(biāo)號(hào)(labeled)樹結(jié)構(gòu)表示的,各個(gè)節(jié)點(diǎn)標(biāo)號(hào)(labels)的正確數(shù)據(jù)是由子節(jié)點(diǎn)的標(biāo)號(hào)的標(biāo)準(zhǔn)語言規(guī)定的。就是說,在樹本機(jī)語言中,一個(gè)屬于(由XML中的DTD規(guī)定的)某預(yù)定語法的樹的集合,是由指定各個(gè)節(jié)點(diǎn)的子節(jié)點(diǎn)的列表的標(biāo)準(zhǔn)語言確定的。這個(gè)類型的另一個(gè)樹本機(jī)語言是ASN.1(Abstract SyntaxNotation 1-抽象語義表示法1)。
采用XML為商業(yè)應(yīng)用和其它目的編寫以前用HTML或網(wǎng)絡(luò)上可用的其它資源不能編寫的復(fù)雜數(shù)據(jù)結(jié)構(gòu),有上升的趨勢(shì)。預(yù)計(jì),有了這個(gè)系統(tǒng),大型XML文件將有可能被應(yīng)用程序交換。
一般來說,為了交換數(shù)據(jù)或在數(shù)據(jù)庫(kù)中存儲(chǔ)的數(shù)據(jù),要對(duì)數(shù)據(jù)文件進(jìn)行壓縮,以降低文件的大小,提高傳輸效率。因此,許多可用于各種數(shù)據(jù)格式類型的通用數(shù)據(jù)壓縮技術(shù)和許多只適合特定數(shù)據(jù)格式類型的專用數(shù)據(jù)壓縮技術(shù),已經(jīng)被開發(fā)出來,可用于XML文件的交換。就壓縮而言,應(yīng)當(dāng)注意到,盡管考慮了XML文件的數(shù)據(jù)結(jié)構(gòu),也有對(duì)標(biāo)簽的明顯多余的使用,以便能指望有高的壓縮比例。
如上所述,為方便數(shù)據(jù)的交換和在數(shù)據(jù)庫(kù)中存儲(chǔ)數(shù)據(jù),一般要進(jìn)行對(duì)數(shù)據(jù)文件的壓縮。用樹本機(jī)語言,如XML,可以期望對(duì)數(shù)據(jù)部分-如代表文件結(jié)構(gòu)的標(biāo)簽-有高的壓縮比例。
假設(shè)對(duì)于數(shù)據(jù)通訊來說,雙方采用共同的語法G并保證它們只交換對(duì)該語法有效的XML文件。還假設(shè)對(duì)語法規(guī)則的規(guī)定,使得在節(jié)點(diǎn)<題目>、<作者>和<出版者>,按照標(biāo)著名稱的順序,一次一個(gè)地出現(xiàn)在節(jié)點(diǎn)<書>的下面。在這種情況下,當(dāng)XML文件的接收者例如在XML文件中發(fā)現(xiàn)標(biāo)簽<書>時(shí),該接收者就能預(yù)測(cè)到第一個(gè)子節(jié)點(diǎn)將是<題目>。因此,根據(jù)這個(gè)假設(shè),標(biāo)簽<題目>變得多余,于是可以設(shè)計(jì)一種對(duì)XML文件編碼的方法用以優(yōu)化消息長(zhǎng)度。這不僅適用于XML,也適用于任意樹本機(jī)語言(例如ASN.1)。
然而按照慣例,用壓縮來對(duì)樹本機(jī)語言的文件的結(jié)構(gòu)部分進(jìn)行編碼的壓縮方法尚未提出。
所以,本發(fā)明的一個(gè)目的是采用數(shù)據(jù)壓縮來對(duì)諸如XML或ASN.1的樹本機(jī)語言編寫的文件的結(jié)構(gòu)部分進(jìn)行編碼。
本發(fā)明的另一個(gè)目的是為樹本機(jī)語言提供一種與另一個(gè)通用數(shù)據(jù)壓縮技術(shù)一起采用的專用數(shù)據(jù)壓縮方法,以便能實(shí)現(xiàn)高的壓縮比例。
為了實(shí)現(xiàn)以上目的,按照本發(fā)明,一種用于對(duì)數(shù)據(jù)編碼和用于壓縮該編碼數(shù)據(jù)的數(shù)據(jù)壓縮設(shè)備包含一個(gè)為其中的數(shù)據(jù)是由標(biāo)號(hào)樹結(jié)構(gòu)表示的樹本機(jī)語言存儲(chǔ)語法規(guī)則的語法存儲(chǔ)單元;一個(gè)用于讀取以該樹本機(jī)語言編寫的文件,把該文件劃分成結(jié)構(gòu)部分和內(nèi)容,并用語法存儲(chǔ)單元中存儲(chǔ)的語法規(guī)則對(duì)該結(jié)構(gòu)部分進(jìn)行編碼的編碼器;和一個(gè)用于壓縮由編碼器提取的文件的內(nèi)容并用于對(duì)該壓縮內(nèi)容編碼的壓縮器。樹本機(jī)語言是一種樹語言,其中的數(shù)據(jù)是由標(biāo)號(hào)樹結(jié)構(gòu)表示的,并且其中,對(duì)于各個(gè)節(jié)點(diǎn)標(biāo)號(hào),采用用于子節(jié)點(diǎn)標(biāo)號(hào)的標(biāo)準(zhǔn)語言來規(guī)定正確的數(shù)據(jù)。
該編碼器包括一個(gè)用于將目標(biāo)文件劃分成結(jié)構(gòu)部分和內(nèi)容的劃分器;一個(gè)自動(dòng)機(jī)構(gòu)造器,用于構(gòu)造對(duì)應(yīng)于該語法規(guī)則的下推自動(dòng)機(jī);一個(gè)編碼數(shù)據(jù)生成器,采用由自動(dòng)機(jī)構(gòu)造器所構(gòu)造的下推自動(dòng)機(jī)來對(duì)由劃分器獲得的文件的結(jié)構(gòu)部分進(jìn)行語義分析,并用于為該結(jié)構(gòu)部分生成編碼數(shù)據(jù)串。
該編碼器的編碼數(shù)據(jù)生成器向在由自動(dòng)機(jī)構(gòu)造器所構(gòu)造的下推自動(dòng)機(jī)中駐留的選擇分配符號(hào)。該編碼數(shù)據(jù)生成器采用下推自動(dòng)機(jī)來分析以樹本機(jī)語言編寫的該文件的結(jié)構(gòu)部分,并在選定的各選擇的位置,輸出為這些選擇分配的符號(hào),以便為該結(jié)構(gòu)部分生成編碼數(shù)據(jù)串。用這個(gè)方案,就能將用諸如標(biāo)簽的標(biāo)號(hào)編寫的文件的結(jié)構(gòu)部分改變(編碼)成一個(gè)簡(jiǎn)單的編碼序列。為了用下推自動(dòng)機(jī)分析文件結(jié)構(gòu)部分,按深度優(yōu)先檢索策略跟蹤文件的樹結(jié)構(gòu)。就是說,不是用與父節(jié)點(diǎn)等距離的次序,而是采用沿深度方向的節(jié)點(diǎn)之間的關(guān)系(父子關(guān)系)作為優(yōu)先次序跟蹤樹,進(jìn)行分析。
此外,壓縮器不僅為以樹本機(jī)語言編寫的文件的內(nèi)容,也為由編碼器獲得的文件的結(jié)構(gòu)部分,進(jìn)行壓縮和編碼。盡管由壓縮器使用的壓縮方法沒有特別的限制,可以采用的普通的通用方法。如果編碼器通過對(duì)文件的結(jié)構(gòu)部分的編碼獲得標(biāo)準(zhǔn)數(shù)據(jù)串,該編碼器可采用諸如PKZIP的通用方法,為編碼數(shù)據(jù)串執(zhí)行壓縮和編碼,預(yù)期能有高的壓縮比例。因此,在文件的內(nèi)容被壓縮時(shí),最好也壓縮該編碼數(shù)據(jù)串。
還有,如果將結(jié)構(gòu)部分的編碼數(shù)據(jù)串與文件的內(nèi)容結(jié)合起來,然后將產(chǎn)生的數(shù)據(jù)壓縮,該結(jié)構(gòu)部分和該內(nèi)容就構(gòu)成一個(gè)單一的文件。這對(duì)文件管理來說更可取。
按照本發(fā)明,一種數(shù)據(jù)通訊系統(tǒng)包含一個(gè)用于在網(wǎng)絡(luò)上發(fā)送數(shù)據(jù)的傳輸源數(shù)據(jù)處理設(shè)備;一個(gè)用于接收由傳輸源數(shù)據(jù)處理設(shè)備在網(wǎng)絡(luò)上發(fā)送的數(shù)據(jù)的傳輸目的地?cái)?shù)據(jù)處理設(shè)備。該傳輸源數(shù)據(jù)處理設(shè)備包含一個(gè)用于為其中的數(shù)據(jù)是由標(biāo)號(hào)樹結(jié)構(gòu)表示的樹本機(jī)語言存儲(chǔ)語法規(guī)則的第一語法存儲(chǔ)單元,一個(gè)用于讀取以該樹本機(jī)語言編寫的文件、用于把文件劃分成結(jié)構(gòu)部分和內(nèi)容和用于采用該第一語法存儲(chǔ)單元中存儲(chǔ)的語法規(guī)則對(duì)該結(jié)構(gòu)部分進(jìn)行編碼的編碼器,一個(gè)用于壓縮由編碼器提取的文件的內(nèi)容并用于對(duì)該壓縮內(nèi)容編碼的壓縮器,以及一個(gè)用于發(fā)送由編碼器編碼的結(jié)構(gòu)部分以及由壓縮器壓縮和編碼的內(nèi)容的發(fā)送器。該傳輸目的地?cái)?shù)據(jù)處理設(shè)備包含一個(gè)用于從數(shù)據(jù)源數(shù)據(jù)處理設(shè)備接收數(shù)據(jù)的接收器,一個(gè)用于存儲(chǔ)與數(shù)據(jù)源數(shù)據(jù)處理設(shè)備的第一語法存儲(chǔ)單元存儲(chǔ)的語法規(guī)則相同的語法規(guī)則的第二語法存儲(chǔ)單元,一個(gè)采用與由數(shù)據(jù)源數(shù)據(jù)處理設(shè)備使用的壓縮和編碼方法對(duì)應(yīng)的解壓方法來解壓由接收器接收的對(duì)應(yīng)于文件的內(nèi)容的數(shù)據(jù)的解壓器,以及一個(gè)用于采用第二語法存儲(chǔ)單元中存儲(chǔ)的語法規(guī)則來解譯由接收器接收的對(duì)應(yīng)于文件的結(jié)構(gòu)部分的數(shù)據(jù)的譯碼器。實(shí)現(xiàn)該過程的一個(gè)高級(jí)方法,是讓所準(zhǔn)備的語法規(guī)則由數(shù)據(jù)傳輸源和目的地共同使用,因?yàn)閷?duì)于數(shù)據(jù)通訊來說,可以為以樹本機(jī)語言編寫的文件獲得高的壓縮比例,并且能提高通訊效率。因?yàn)閷?duì)于商業(yè)通訊來說,一般法則是把樹本機(jī)語言的語法規(guī)則共同使用,所以能容易引用本發(fā)明。
此外,按照本發(fā)明,一種用于存儲(chǔ)和管理存儲(chǔ)單元中的數(shù)據(jù)的數(shù)據(jù)庫(kù)系統(tǒng)包含一個(gè)為其中的數(shù)據(jù)是由標(biāo)號(hào)樹結(jié)構(gòu)表示的樹本機(jī)語言存儲(chǔ)語法規(guī)則的語法存儲(chǔ)單元;一個(gè)用于讀取以該樹本機(jī)語言編寫的文件,把文件劃分成結(jié)構(gòu)部分和內(nèi)容,并用語法存儲(chǔ)單元中存儲(chǔ)的語法規(guī)則對(duì)結(jié)構(gòu)部分編碼的編碼器;一個(gè)用于壓縮由編碼器提取的文件的內(nèi)容并用于對(duì)該壓縮內(nèi)容編碼的壓縮器;一個(gè)用于存儲(chǔ)由編碼器編碼的文件的結(jié)構(gòu)部分和存儲(chǔ)由壓縮器壓縮和編碼的文件的內(nèi)容的存儲(chǔ)單元。
該壓縮器不僅為以樹本機(jī)語言編寫的文件的內(nèi)容,也為由編碼器獲得的文件的結(jié)構(gòu)部分,進(jìn)行壓縮和編碼.如果將結(jié)構(gòu)部分的編碼數(shù)據(jù)串與文件的內(nèi)容結(jié)合起來,然后將產(chǎn)生的數(shù)據(jù)壓縮,結(jié)構(gòu)部分和內(nèi)容就構(gòu)成一個(gè)單一的文件;對(duì)文件管理來說,這更可取。
按照本發(fā)明,一種用于對(duì)數(shù)據(jù)編碼和用于壓縮編碼數(shù)據(jù)的數(shù)據(jù)壓縮方法包含以下步驟讀取以其中的數(shù)據(jù)是由標(biāo)號(hào)樹結(jié)構(gòu)表示的樹本機(jī)語言編寫的文件,并把該文件劃分成結(jié)構(gòu)部分和內(nèi)容;用該樹本機(jī)語言的語法規(guī)則對(duì)結(jié)構(gòu)部分進(jìn)行編碼;壓縮由編碼器提取的文件的內(nèi)容并用于對(duì)該壓縮內(nèi)容進(jìn)行編碼。
對(duì)文件的結(jié)構(gòu)部分編碼的步驟包括步驟構(gòu)造對(duì)應(yīng)于該語法規(guī)則的下推自動(dòng)機(jī);向在下推自動(dòng)機(jī)中駐留的選擇分配符號(hào);按照深度優(yōu)先檢索策略用下推自動(dòng)機(jī)分析該文件的結(jié)構(gòu)部分,并在各選擇的位置,輸出向這些選擇分配的符號(hào);輸出通過采用下推自動(dòng)機(jī)而獲得的符號(hào)串,作為以樹本機(jī)語言編寫的文件的結(jié)構(gòu)部分的編碼數(shù)據(jù)串。用這個(gè)方案,就能將用諸如標(biāo)簽的標(biāo)號(hào)編寫的文件的結(jié)構(gòu)部分改變(編碼),獲得一個(gè)簡(jiǎn)單的編碼序列。
該數(shù)據(jù)壓縮方法進(jìn)一步包括一個(gè)當(dāng)某屬性屬于樹本機(jī)語言中某個(gè)目標(biāo)文件的節(jié)點(diǎn)時(shí)要在對(duì)以樹本機(jī)語言編寫的文件的結(jié)構(gòu)部分編碼的步驟之前執(zhí)行的步驟,即將該屬性改變?yōu)閾碛性搶傩缘脑氐淖庸?jié)點(diǎn),以便將樹本機(jī)語言的語法規(guī)則和文件轉(zhuǎn)換成一個(gè)要由下推自動(dòng)機(jī)處理的樹結(jié)構(gòu)。這個(gè)方案之所以更可取,是因?yàn)榧词乖搶傩园谌鏧ML文件的目標(biāo)文件中,也能用下推自動(dòng)機(jī)對(duì)該結(jié)構(gòu)部分進(jìn)行編碼。
該數(shù)據(jù)壓縮方法還包含一個(gè)要在對(duì)文件的結(jié)構(gòu)部分編碼的步驟之后執(zhí)行的步驟,即采用另一個(gè)通用壓縮和編碼方法進(jìn)一步對(duì)編碼的文件結(jié)構(gòu)部分進(jìn)行壓縮和編碼。這個(gè)方案之所以更可取,是因?yàn)轭A(yù)期能有更高的壓縮比例。
按照本發(fā)明,提供一種存儲(chǔ)介質(zhì),其上面的計(jì)算機(jī)輸入裝置存儲(chǔ)一個(gè)計(jì)算機(jī)可讀程序,該程序允許計(jì)算機(jī)執(zhí)行一個(gè)用于讀取以其中的數(shù)據(jù)是由標(biāo)號(hào)樹結(jié)構(gòu)表示的樹本機(jī)語言編寫的文件并且用于把該文件劃分成結(jié)構(gòu)部分和內(nèi)容的過程;一個(gè)采用該樹本機(jī)語言的語法規(guī)則對(duì)結(jié)構(gòu)部分編碼的過程;一個(gè)用于壓縮由編碼器提取的文件的內(nèi)容并且用于對(duì)該壓縮內(nèi)容編碼的過程。用這個(gè)方案,所有其中安裝這個(gè)程序的信息處理設(shè)備都能在壓縮以該樹本機(jī)語言編寫的文件時(shí)實(shí)現(xiàn)高的壓縮比例,并且能獲得較高的通訊和存儲(chǔ)效率。
此外,按照本發(fā)明,一種程序傳輸設(shè)備包含用于存儲(chǔ)程序的存儲(chǔ)裝置,該程序允許計(jì)算機(jī)執(zhí)行一個(gè)用于讀取以其中的數(shù)據(jù)是由標(biāo)號(hào)樹結(jié)構(gòu)表示的樹本機(jī)語言編寫的文件并用于把該文件劃分成結(jié)構(gòu)部分和內(nèi)容的過程,一個(gè)采用該樹本機(jī)語言的語法規(guī)則對(duì)該結(jié)構(gòu)部分編碼的過程,一個(gè)用于壓縮由編碼器提取的文件的內(nèi)容并且用于對(duì)該壓縮內(nèi)容編碼的過程;用于從該存儲(chǔ)裝置讀取該程序并用于發(fā)送該程序的傳輸裝置。用這個(gè)方案,所有已經(jīng)從該程序傳輸設(shè)備下載這個(gè)程序并安裝該程序的信息處理設(shè)備,都能在壓縮以該樹本機(jī)語言編寫的文件時(shí)實(shí)現(xiàn)高的壓縮比例,并且能獲得較高的通訊和存儲(chǔ)效率。


圖1是解釋按照本發(fā)明一個(gè)實(shí)施例的文件壓縮系統(tǒng)的總體方案的示意圖;圖2是解釋按照實(shí)施例的數(shù)據(jù)壓縮處理的示意圖;圖3是解釋按照實(shí)施例的編碼器的示意圖;圖4是表示按照實(shí)施例的一例目標(biāo)XML文件的示意圖;圖5是表示圖4中的XML文件結(jié)構(gòu)部分的示意圖;圖6是表示用于實(shí)施例的一例語法規(guī)則的示意圖;圖7是表示按照?qǐng)D6中的語法規(guī)則構(gòu)造的下推自動(dòng)機(jī)的示意圖8是表示用于解釋使用下推自動(dòng)機(jī)的語法檢查方法的一例語義樹的示意圖;圖9是通過使用圖7中下推自動(dòng)機(jī)而生成的編碼轉(zhuǎn)換器(transducer)的示意圖;圖10是表示通過為圖8中的語義樹進(jìn)行有效性檢查而獲得的結(jié)果例子的示意圖;圖11是通過使用圖7中下推自動(dòng)機(jī)而生成的解碼轉(zhuǎn)換器的示意圖;圖12是解釋其中將有屬性的DTD轉(zhuǎn)換成無屬性的DTD的狀態(tài)的示意圖;圖13是解釋其中將有屬性的XML文件轉(zhuǎn)換成無屬性的XML文件的狀態(tài)的示意圖;圖14是解釋對(duì)數(shù)據(jù)通訊系統(tǒng)應(yīng)用實(shí)施例時(shí)的結(jié)構(gòu)的示意圖;圖15是解釋對(duì)數(shù)據(jù)庫(kù)系統(tǒng)應(yīng)用實(shí)施例時(shí)的結(jié)構(gòu)的示意圖;現(xiàn)在將參考附圖,詳細(xì)地說明本發(fā)明的最佳實(shí)施例。
圖1是解釋按照本發(fā)明的一個(gè)文件壓縮系統(tǒng)的總體方案的示意圖。圖1中,編碼器11將目標(biāo)文件劃分成結(jié)構(gòu)部分和內(nèi)容,并用在預(yù)定存儲(chǔ)器中存儲(chǔ)的語法規(guī)則12對(duì)結(jié)構(gòu)部分編碼。壓縮器13包含由編碼器11編碼的結(jié)構(gòu)部分和文件的內(nèi)容。解壓器21解壓由壓縮器13壓縮的文件。在文件被解壓器21解壓的時(shí)候,文件被分離成內(nèi)容和由編碼器11編碼的結(jié)構(gòu)部分。解碼器23通過使用在預(yù)定存儲(chǔ)器中存儲(chǔ)的語法規(guī)則22,重新構(gòu)造編碼的結(jié)構(gòu)部分,將結(jié)構(gòu)部分與內(nèi)容結(jié)合起來,重新產(chǎn)生文件。
當(dāng)將實(shí)施例的方法用于數(shù)據(jù)通訊的數(shù)據(jù)壓縮時(shí),將編碼器11和壓縮器13配置在發(fā)送端,將解壓器21和解碼器23配置在接收端。當(dāng)將實(shí)施例的方法用于壓縮要在數(shù)據(jù)庫(kù)系統(tǒng)中存儲(chǔ)的數(shù)據(jù)文件時(shí),按照數(shù)據(jù)發(fā)送,編碼器11起譯碼器23的作用,壓縮器13起解壓器21的作用。
現(xiàn)在將就用XML作為目標(biāo)樹本機(jī)語言的例子給出解釋。
圖2是解釋按照實(shí)施例的數(shù)據(jù)壓縮處理的示意圖。在圖2中的數(shù)據(jù)壓縮處理中,首先,目標(biāo)XML文件201被從編碼器11讀出,劃分成結(jié)構(gòu)部分202和內(nèi)容204。結(jié)構(gòu)部分202包括XML文件的樹結(jié)構(gòu)、標(biāo)簽名和屬性名;內(nèi)容204包含#PCDATA和XML文件的屬性值。之所以將XML文件劃分成結(jié)構(gòu)部分202和內(nèi)容204,是因?yàn)橐话銇碚f結(jié)構(gòu)部分202和內(nèi)容204有相當(dāng)不同的統(tǒng)計(jì)偏差,獨(dú)立地壓縮這二者是效率高的。
將通過劃分XML文件201所獲得的結(jié)構(gòu)部分202用編碼器11進(jìn)行編碼,并且將語法規(guī)則12用于這個(gè)編碼.由于在本實(shí)施例中XML文件是目標(biāo),語法規(guī)則12由DTD規(guī)定。這個(gè)編碼處理將在后文作詳細(xì)說明。所獲得的編碼數(shù)據(jù)串203和內(nèi)容204被傳送到壓縮器13。
最后,壓縮器13對(duì)編碼數(shù)據(jù)串203和內(nèi)容204進(jìn)行壓縮和編碼,將獲得的數(shù)據(jù)組合起來,生成壓縮XML文件205。為了進(jìn)行該編碼過程,壓縮器13采用常規(guī)的有名方法,諸如LZ77。此時(shí),壓縮器13主要被用來對(duì)內(nèi)容204進(jìn)行壓縮和編碼。然而,對(duì)編碼數(shù)據(jù)串203可以有效地使用通用壓縮與編碼方法,諸如PKZIP。正如后文中將要說明的那樣,在本實(shí)施例中,編碼數(shù)據(jù)串203是作為數(shù)字序列被輸出的。因此,如果數(shù)據(jù)是一序列的比較規(guī)則的數(shù)字,就可以期望有高的壓縮比例。所以,壓縮器13可以將編碼數(shù)據(jù)串203與內(nèi)容204一起進(jìn)行壓縮和編碼。不過應(yīng)當(dāng)注意,壓縮器13對(duì)編碼數(shù)據(jù)串203的壓縮是個(gè)任意過程。編碼數(shù)據(jù)串203和內(nèi)容204可以不由壓縮器13壓縮,而可以只是被彼此關(guān)聯(lián)或結(jié)合起來,可以交換或存儲(chǔ)在存儲(chǔ)器中。
如上所述,在本實(shí)施例中,XML文件的結(jié)構(gòu)部分202是用本發(fā)明方法壓縮的,此外,編碼結(jié)構(gòu)部分202和內(nèi)容204是用常規(guī)方法壓縮的。所以,本發(fā)明方法是與各種常規(guī)壓縮方法結(jié)合起來使用的。
為了將這樣壓縮的XML文件解壓,要反過來進(jìn)行以上的壓縮處理。具體來說,解壓器21用與壓縮器13所使用的壓縮和編碼方法相對(duì)應(yīng)的方法對(duì)編碼數(shù)據(jù)串203解壓。然后,如下文將要詳細(xì)說明的那樣,解碼器23用語法規(guī)則22重新構(gòu)造被解壓的編碼數(shù)據(jù)串203。語法規(guī)則22與語法規(guī)則12相同,是由DTD規(guī)定的。然后,用在解碼過程中獲得的結(jié)構(gòu)部分202和由解壓器21解壓的內(nèi)容204重新生成XML文件201。
現(xiàn)在將詳細(xì)解釋按照本實(shí)施例進(jìn)行的用于對(duì)XML文件的結(jié)構(gòu)部分編碼的處理。
為簡(jiǎn)化解釋,對(duì)于這個(gè)過程來說,目標(biāo)XML文件不含任何屬性,XML文件的實(shí)際總體是設(shè)計(jì)好的。如何處理屬性將在以后作討論。
圖3是解釋對(duì)XML文件的結(jié)構(gòu)部分編碼的編碼器11的方案的功能框圖。在圖3中,編碼器11包含劃分器111,用于將目標(biāo)XML文件201劃分成結(jié)構(gòu)部分202和內(nèi)容204;自動(dòng)機(jī)構(gòu)造器112,用于用語法規(guī)則12構(gòu)造將在以后作說明的下推自動(dòng)機(jī);編碼數(shù)據(jù)串生成器113,用于通過用由自動(dòng)機(jī)構(gòu)造器112構(gòu)造的下推自動(dòng)機(jī)作為編碼轉(zhuǎn)換器,為結(jié)構(gòu)部分202生成編碼數(shù)據(jù)串203。
圖4是表示一例目標(biāo)XML文件的示意圖。XML文件的內(nèi)容由字符串的列表組成,字符串位于對(duì)應(yīng)于#PCDATA的內(nèi)容模型(contentsmodel)的部分.就是說,圖4中的XML文件的內(nèi)容,是一個(gè)由4個(gè)字符串“String1”、“String2”、“String3”、和“String4”組成的列表。該列表例如可以用下列字節(jié)串來緊湊地表示,該字節(jié)串中,將各字符串以空字符作為結(jié)束(“¥0”代表空字符)。
“String1¥0String2¥0String3¥0String4¥0”如上所述地將這個(gè)字符串獨(dú)立于結(jié)構(gòu)部分進(jìn)行壓縮和編碼。
圖4中的XML文件結(jié)構(gòu)部分在圖5中表示。這個(gè)結(jié)構(gòu)部分是通過將對(duì)應(yīng)于圖4中XML文件的內(nèi)容的字符串替換為占位符(□)而獲得的。
本實(shí)施例中,譯碼器11的劃分器111從圖4中的XML文件提取圖5中的結(jié)構(gòu)部分,自動(dòng)機(jī)構(gòu)造器112用語法規(guī)則12構(gòu)造下推自動(dòng)機(jī),編碼數(shù)據(jù)串生成器113用下推自動(dòng)機(jī)對(duì)結(jié)構(gòu)部分編碼。圖6是表示用于規(guī)定語法規(guī)則12一例DTD的示意圖。
在劃分器111執(zhí)行了劃分過程之后,為了用語法規(guī)則12進(jìn)行編碼,自動(dòng)機(jī)構(gòu)造器112構(gòu)造對(duì)應(yīng)于DTD的下推自動(dòng)機(jī)。按照?qǐng)D6中的DTD,當(dāng)元素A出現(xiàn)時(shí),意味著元素B和元素C將按照標(biāo)著名稱的順序逐一地出現(xiàn),該狀態(tài)轉(zhuǎn)換(state shifting)然后結(jié)束。類似地,當(dāng)元素B出現(xiàn)時(shí),意味著元素D將出現(xiàn),該狀態(tài)轉(zhuǎn)換然后結(jié)束。當(dāng)元素C出現(xiàn)時(shí),意味著0個(gè)元素或元素E或元素F將出現(xiàn),該狀態(tài)轉(zhuǎn)換然后結(jié)束。當(dāng)元素E出現(xiàn)時(shí),意味著一個(gè)元素G或一個(gè)元素H將出現(xiàn),該狀態(tài)轉(zhuǎn)換然后結(jié)束。
圖7是表示對(duì)應(yīng)于圖6中的DTD的自然下推自動(dòng)機(jī)的示意圖。由于非結(jié)束符(non-terminal symbol)D和G是明顯的只有結(jié)束符#PCDATA的規(guī)則,它們沒有在圖中顯示。
可以為語法的各個(gè)非結(jié)束符構(gòu)造沒有二義的自動(dòng)機(jī)。因此,如果將本實(shí)施例應(yīng)用于數(shù)據(jù)通訊,可以通過利用發(fā)送端和接收端公用的DTD來構(gòu)造同樣的下推自動(dòng)機(jī)。
一般來說,下推自動(dòng)機(jī)被用來分析輸入串的語義。在這個(gè)意義上,下推自動(dòng)機(jī)接收表面層上的所有符號(hào)串,即所用通過設(shè)置一個(gè)或多個(gè)#PCDATA(或者占位符“□”)而獲得的串。然而例如,作為獲得的語義分析數(shù),節(jié)點(diǎn)B和節(jié)點(diǎn)C必須作為節(jié)點(diǎn)A的子節(jié)點(diǎn)按照標(biāo)著名稱的順序出現(xiàn)。此外,緊接元素C之后,空狀態(tài)被轉(zhuǎn)換到最后狀態(tài)。如上所述,下推自動(dòng)機(jī)可以被用來確定被分析的XML文件的語義分析樹是否滿足語法。
現(xiàn)在將采用圖8中的語義樹作為例子,解釋用下推自動(dòng)機(jī)檢查語法所進(jìn)行的處理。在圖8中,沒有顯示每個(gè)樹葉上的#PCDATA。為了確定這個(gè)語義樹是否能由圖6中的DTD規(guī)定的語法生成,只需要語義樹的每個(gè)節(jié)點(diǎn)能確定由其子節(jié)點(diǎn)組成的串是否能被對(duì)應(yīng)于該節(jié)點(diǎn)的非結(jié)束符接收。例如,元素A的子節(jié)點(diǎn)是串BC。這些子節(jié)點(diǎn)被對(duì)應(yīng)于非結(jié)束符A的自動(dòng)機(jī)(見圖7中的A)接收.因此,發(fā)現(xiàn)這個(gè)部分滿足語法。如果通過使用對(duì)應(yīng)自動(dòng)機(jī)按預(yù)排序以同樣的方式(按深度優(yōu)先檢索策略跟蹤)遍歷所有的節(jié)點(diǎn),語法檢查就結(jié)束。
下推自動(dòng)機(jī)對(duì)語義分析樹的這個(gè)用法,在以下的解釋中被稱為有效性檢查。應(yīng)當(dāng)注意,除了ε到最終狀態(tài)的轉(zhuǎn)換之外,對(duì)應(yīng)于以上過程中使用的每個(gè)非結(jié)束符的自動(dòng)機(jī)都是最小決策自動(dòng)機(jī)(minimumdecisive automata)。
自動(dòng)機(jī)構(gòu)造器112將圖7中的下推自動(dòng)機(jī)轉(zhuǎn)換成一個(gè)對(duì)XML文件的結(jié)構(gòu)部分(見圖5)編碼的轉(zhuǎn)換器,即用于分析字符串的語義的自動(dòng)機(jī)。
在圖7中的下推自動(dòng)機(jī)中,假設(shè)某項(xiàng)是一個(gè)由4個(gè)#PCDATA(或占位符“□”),并且分析過程是在用A作為開始符時(shí)啟動(dòng)的。然后,順序地生成節(jié)點(diǎn)A、節(jié)點(diǎn)B、節(jié)點(diǎn)C和節(jié)點(diǎn)D,識(shí)別第一個(gè)#PCDATA。節(jié)點(diǎn)C被生成時(shí),有三個(gè)選擇可以生成節(jié)點(diǎn)E,可以生成節(jié)點(diǎn)F,或者狀態(tài)轉(zhuǎn)換可以在節(jié)點(diǎn)C被結(jié)束并返回到上層節(jié)點(diǎn)。將數(shù)字1、2和3按標(biāo)簽的字母順序分配給這三個(gè)選擇(標(biāo)簽ε總是被確定是最后的)。類似地,因?yàn)楣?jié)點(diǎn)E的第一個(gè)狀態(tài)提供兩種選擇,或者可以生成節(jié)點(diǎn)G,或者可以生成節(jié)點(diǎn)H,所以將數(shù)字1和2分配給這些選擇。在本實(shí)施例中,分配給選擇的是數(shù)字,但是可用來標(biāo)識(shí)選擇的符號(hào)并不限于數(shù)字。任意符號(hào),如字母字符或符號(hào),都可以用來表明選擇。
圖9是通過轉(zhuǎn)換圖7中的下推自動(dòng)機(jī)而生成的編碼轉(zhuǎn)換器的示意圖。
編碼器11的編碼數(shù)據(jù)串生成器113運(yùn)行由自動(dòng)機(jī)構(gòu)造器112構(gòu)造的編碼轉(zhuǎn)換器。
進(jìn)行有效性檢查(按先根次序應(yīng)用規(guī)則)時(shí),圖9中的編碼轉(zhuǎn)換器輸出對(duì)應(yīng)的選擇號(hào)。具體來說,在圖9中,沒有對(duì)應(yīng)規(guī)則A、B、F和H的選擇,編碼轉(zhuǎn)換器沒有輸出。然而,當(dāng)規(guī)則C和規(guī)則E被使用時(shí),編碼轉(zhuǎn)換器輸出適當(dāng)?shù)奶?hào)碼。例如,當(dāng)對(duì)圖8中的語義樹進(jìn)行有效性檢查時(shí),編碼轉(zhuǎn)換器在跟蹤該樹時(shí),輸出圖10中所示的號(hào)碼。
通過以上處理,獲得號(hào)碼串“112123”,它嚴(yán)格地規(guī)定下推自動(dòng)機(jī)的運(yùn)動(dòng)。因此,該號(hào)碼串可以被用作圖4中的XML文件的結(jié)構(gòu)部分(圖5)的編碼數(shù)據(jù)串。
現(xiàn)在將說明按照本實(shí)施例解譯XML文件的結(jié)構(gòu)部分的處理。
要解譯通過以上處理編碼的XML文件,只需要將編碼轉(zhuǎn)換器的輸入/輸出反過來。因此,譯碼器23用與圖7中的同樣的下推自動(dòng)機(jī)來生成解碼轉(zhuǎn)換器,開始解碼過程。如上所述,因?yàn)榭梢詾檎Z法的各個(gè)非結(jié)束符構(gòu)造沒有二義的自動(dòng)機(jī),如果由DTD規(guī)定的語法規(guī)則12與語法規(guī)則22相同,譯碼器23就能構(gòu)造出與圖7中的完全相同的下推自動(dòng)機(jī)。
圖11是通過轉(zhuǎn)換與圖7中的相同的下推自動(dòng)機(jī)而生成的解碼轉(zhuǎn)換器的示意圖。在圖11中的解碼轉(zhuǎn)換器中,“i/B”代表“當(dāng)輸入字符串“I”出現(xiàn)時(shí),調(diào)用規(guī)則B,然后將狀態(tài)轉(zhuǎn)換到下一個(gè)”的轉(zhuǎn)換。這樣,從譯碼器11輸入一個(gè)號(hào)碼串,生成一個(gè)對(duì)應(yīng)的語義分析樹。
如果根據(jù)原始號(hào)碼的分配,輸入上述號(hào)碼串“112123”,下推自動(dòng)機(jī)(譯碼轉(zhuǎn)換器)就能沒有二義地接受XML文件的編碼號(hào)碼串。因此,所生成的語義分析樹與圖8中的原始語義分析樹相同。結(jié)果,就能重新生成XML文件的結(jié)構(gòu)部分。
現(xiàn)在將說明對(duì)屬性的處理。
在本實(shí)施例中,將屬性轉(zhuǎn)換成樹結(jié)構(gòu),以便能由下推自動(dòng)機(jī)作處理。具體來說,改變所有有屬性的元素(ELEMENT)改變,使得將屬性看作子節(jié)點(diǎn)。此時(shí),屬性以它們名稱的字母順序出現(xiàn)。讓屬性#REQUIRED(#必需的)不變,并讓屬性#IMPLIED(#隱含的)帶有選項(xiàng)“?”。因?yàn)槠鸪鯖]有為屬性#FIXED(#固定的)提供信息,所以它不包含在通過轉(zhuǎn)換而獲得的DTD中。
圖12是表示預(yù)定的DTD在換成前與轉(zhuǎn)換后的狀態(tài)的比較的示意圖。圖12中,左邊的DTD被轉(zhuǎn)換成右邊所示的形式。圖13是表示預(yù)定的XML文件在換成前與轉(zhuǎn)換后的狀態(tài)的比較的示意圖。
按以上方式將DTD和XML文件改變到?jīng)]有提供屬性的狀態(tài),就執(zhí)行了上述的編碼和譯碼處理。應(yīng)當(dāng)注意的是,DTD的轉(zhuǎn)換可以在下推自動(dòng)機(jī)的構(gòu)造之前提前進(jìn)行,或者可以在下推自動(dòng)機(jī)已經(jīng)被構(gòu)造之后按需進(jìn)行。在第一種情況下,由轉(zhuǎn)換所得的新DTD被用來構(gòu)造下推自動(dòng)機(jī)。在第二種情況下,原始DTD(有屬性的)被用來構(gòu)造下推自動(dòng)機(jī)。
如上所述,按照本實(shí)施例,XML文件壓縮端和解壓端不可避免地要使用共同的相同DTD。因此,如果將本實(shí)施例的數(shù)據(jù)壓縮方法用于數(shù)據(jù)通訊,就必須為發(fā)送端數(shù)據(jù)處理設(shè)備和接收端數(shù)據(jù)處理設(shè)備準(zhǔn)備相同的DTD。
圖14是解釋采用本實(shí)施例的數(shù)據(jù)通訊系統(tǒng)的配置的示意圖。在發(fā)送端的數(shù)據(jù)處理設(shè)備1410中,譯碼器11接收來自數(shù)據(jù)處理器的XML文件,并用(對(duì)應(yīng)于圖1中的語法規(guī)則12的)DTD 1411來對(duì)結(jié)構(gòu)部分編碼。壓縮器13壓縮編碼結(jié)構(gòu)部分和內(nèi)容,發(fā)送器1412通過通訊網(wǎng)絡(luò)向接收端發(fā)送數(shù)據(jù)處理設(shè)備1410中的由編碼器11進(jìn)行的編碼和壓縮器13進(jìn)行的壓縮而生成的結(jié)果XML文件。在接收端的數(shù)據(jù)處理設(shè)備1420中,接收器1422通過通訊網(wǎng)絡(luò)接收數(shù)據(jù),并將它們發(fā)送到解壓器21。此時(shí),解壓器21解壓所接收的數(shù)據(jù),將XML文件的內(nèi)容恢復(fù)。譯碼器23然后用(對(duì)應(yīng)于圖1中的語法規(guī)則12的)DTD 1421來解譯已經(jīng)被解壓的數(shù)據(jù)的結(jié)構(gòu)部分的編碼數(shù)據(jù)串。譯碼器23然后重新裝配所獲得的結(jié)構(gòu)部分和內(nèi)容,以重新生成XML文件,并將該XML文件發(fā)送給數(shù)據(jù)處理器。在這個(gè)處理期間,發(fā)送端的數(shù)據(jù)處理設(shè)備1410中的DTD1411與接收端的數(shù)據(jù)處理設(shè)備1420中的DTD1421有相同的內(nèi)容。
如果XML文件是由用于商業(yè)通訊的應(yīng)用交換的,例如是在電子商務(wù)事務(wù)處理期間交換的,在大多數(shù)情況下,要經(jīng)互相同意而預(yù)先建立一個(gè)DTD。因此,假設(shè)DTD將被共同使用,則本實(shí)施例可以應(yīng)用于商業(yè)通訊。
當(dāng)用本實(shí)施例的方法來壓縮要由數(shù)據(jù)庫(kù)系統(tǒng)存儲(chǔ)的數(shù)據(jù)文件時(shí),要解譯XML文件的結(jié)構(gòu)部分,可以原封不動(dòng)地用對(duì)結(jié)構(gòu)部分編碼所使用的DTD來解譯該結(jié)構(gòu)部分,這樣就不必考慮是否要共同使用一個(gè)DTD。
圖15是解釋采用本實(shí)施例的數(shù)據(jù)庫(kù)系統(tǒng)的配置的示意圖。在數(shù)據(jù)庫(kù)系統(tǒng)1500中,譯碼器11接收來自數(shù)據(jù)處理器的XML文件,并用(對(duì)應(yīng)于圖1中的語法規(guī)則12的)DTD1501來對(duì)結(jié)構(gòu)部分編碼。壓縮器13然后壓縮編碼結(jié)構(gòu)部分和內(nèi)容。XML文件被譯碼器11編碼并被壓縮器13壓縮后,被存儲(chǔ)在存儲(chǔ)器1502中。要從存儲(chǔ)器1502讀取XML文件,壓縮器13起著解壓器21的作用,編碼器11起著譯碼器23的作用,用于對(duì)XML文件的結(jié)構(gòu)部分編碼的DTD1501被用于解譯該結(jié)構(gòu)部分。
在上述解釋中,用XML語言作為樹本機(jī)語言.然而,本實(shí)施例可用于另一個(gè)樹本機(jī)語言,如ASN.1。不過在這種情況下,語法規(guī)則如XML的DTD,也必須由數(shù)據(jù)文件壓縮端和解壓端共同使用。
如上所述,按照本發(fā)明,可以通過進(jìn)行數(shù)據(jù)壓縮來對(duì)樹本機(jī)語言的文件的結(jié)構(gòu)部分編碼。
此外,因?yàn)閿?shù)據(jù)壓縮方法特別適合于樹本機(jī)語言并且是與另一個(gè)通用數(shù)據(jù)壓縮技術(shù)一起使用的,所以可以采用一個(gè)提供高壓縮比例的數(shù)據(jù)壓縮方法。
權(quán)利要求
1.一種用于對(duì)數(shù)據(jù)編碼和用于壓縮該編碼數(shù)據(jù)的壓縮設(shè)備,包含一個(gè)為其中的數(shù)據(jù)是由標(biāo)號(hào)樹結(jié)構(gòu)表示的樹本機(jī)語言存儲(chǔ)語法規(guī)則的語法存儲(chǔ)單元;一個(gè)用于讀取以該樹本機(jī)語言編寫的文件,把文件劃分成結(jié)構(gòu)部分和內(nèi)容,并用語法存儲(chǔ)單元中存儲(chǔ)的語法規(guī)則對(duì)結(jié)構(gòu)部分編碼的編碼器;和一個(gè)用于壓縮由所述編碼器抽出的所述文件的所述內(nèi)容并對(duì)該壓縮的內(nèi)容進(jìn)行編碼的壓縮器。
2.按照權(quán)利要求1的數(shù)據(jù)壓縮設(shè)備,其中,所述編碼器包括一個(gè)用于將目標(biāo)文件劃分成結(jié)構(gòu)部分和內(nèi)容的劃分器;一個(gè)自動(dòng)機(jī)構(gòu)造器,用于構(gòu)造對(duì)應(yīng)于所述語法規(guī)則的下推自動(dòng)機(jī);一個(gè)編碼數(shù)據(jù)生成器,用于用由所述自動(dòng)機(jī)構(gòu)造器所構(gòu)造的下推自動(dòng)機(jī)來對(duì)由所述劃分器獲得的所述文件的所述結(jié)構(gòu)部分進(jìn)行語義分析,并用于為該結(jié)構(gòu)部分生成編碼數(shù)據(jù)串。
3.按照權(quán)利要求2的數(shù)據(jù)壓縮設(shè)備,其中,所述編碼器的所述編碼數(shù)據(jù)生成器向在由所述自動(dòng)機(jī)構(gòu)造器所構(gòu)造的所述下推自動(dòng)機(jī)中駐留的選擇分配符號(hào),并且,所述編碼數(shù)據(jù)生成器用所述下推自動(dòng)機(jī)來分析以所述樹本機(jī)語言編寫的所述文件的所述結(jié)構(gòu)部分,并在選定的各選擇的位置,輸出為所述選擇分配的符號(hào),以便為所述結(jié)構(gòu)部分生成編碼數(shù)據(jù)串。
4.按照權(quán)利要求1的數(shù)據(jù)壓縮設(shè)備,其中,所述壓縮器不僅為以所述樹本機(jī)語言編寫的所述文件的所述內(nèi)容,也為由所述編碼器獲得的所述文件的所述結(jié)構(gòu)部分,進(jìn)行壓縮和編碼。
5.一種數(shù)據(jù)通訊系統(tǒng),包括一個(gè)用于在網(wǎng)絡(luò)上發(fā)送數(shù)據(jù)的傳輸源數(shù)據(jù)處理設(shè)備;和一個(gè)用于接收由所述傳輸源數(shù)據(jù)處理設(shè)備在所述網(wǎng)絡(luò)上發(fā)送的所述數(shù)據(jù)的傳輸目的地?cái)?shù)據(jù)處理設(shè)備,所述傳輸源數(shù)據(jù)處理設(shè)備包括一個(gè)用于為其中的數(shù)據(jù)是由標(biāo)號(hào)樹結(jié)構(gòu)表示的樹本機(jī)語言存儲(chǔ)語法規(guī)則的第一語法存儲(chǔ)單元,一個(gè)用于讀取以所述樹本機(jī)語言編寫的文件、用于把所述文件劃分成結(jié)構(gòu)部分和內(nèi)容和用于用所述第一語法存儲(chǔ)單元中存儲(chǔ)的所述語法規(guī)則對(duì)所述結(jié)構(gòu)部分編碼的編碼器,一個(gè)用于壓縮由所述編碼器提取的所述文件的所述內(nèi)容并用于對(duì)該壓縮內(nèi)容編碼的壓縮器,和一個(gè)用于發(fā)送由所述編碼器編碼的所述結(jié)構(gòu)部分以及由所述壓縮器壓縮和編碼的所述內(nèi)容的發(fā)送器,并且所述傳輸目的地?cái)?shù)據(jù)處理設(shè)備包括一個(gè)用于從所述數(shù)據(jù)源數(shù)據(jù)處理設(shè)備接收數(shù)據(jù)的接收器,一個(gè)用于存儲(chǔ)與所述數(shù)據(jù)源數(shù)據(jù)處理設(shè)備的所述第一語法存儲(chǔ)單元存儲(chǔ)的所述語法規(guī)則相同的語法規(guī)則的第二語法存儲(chǔ)單元,一個(gè)用于采用與由所述數(shù)據(jù)源數(shù)據(jù)處理設(shè)備使用的壓縮和編碼方法對(duì)應(yīng)的解壓方法來解壓由所述接收器接收的對(duì)應(yīng)于所述文件的所述內(nèi)容的數(shù)據(jù)的解壓器,和一個(gè)用于采用所述第二語法存儲(chǔ)單元中存儲(chǔ)的所述語法規(guī)則來解譯由所述接收器接收的對(duì)應(yīng)于所述文件的結(jié)構(gòu)部分的數(shù)據(jù)的解碼器。
6.一種用于存儲(chǔ)和管理存儲(chǔ)單元中數(shù)據(jù)的數(shù)據(jù)庫(kù)系統(tǒng),包括一個(gè)為其中的數(shù)據(jù)是由標(biāo)號(hào)樹結(jié)構(gòu)表示的樹本機(jī)語言存儲(chǔ)語法規(guī)則的語法存儲(chǔ)單元;一個(gè)用于讀取以所述樹本機(jī)語言編寫的文件,把所述文件劃分成結(jié)構(gòu)部分和內(nèi)容,并用所述語法存儲(chǔ)單元中存儲(chǔ)的所述語法規(guī)則對(duì)所述結(jié)構(gòu)部分編碼的編碼器;一個(gè)用于壓縮由所述編碼器提取的所述文件的所述內(nèi)容并用于對(duì)該壓縮內(nèi)容編碼的壓縮器;一個(gè)用于存儲(chǔ)由所述編碼器編碼的所述文件的所述結(jié)構(gòu)部分和存儲(chǔ)由所述壓縮器壓縮和編碼的所述文件的所述內(nèi)容的存儲(chǔ)單元。
7.按照權(quán)利要求6的數(shù)據(jù)庫(kù)系統(tǒng),其中,所述壓縮器不僅為以所述樹本機(jī)語言編寫的所述文件的所述內(nèi)容,也為由所述編碼器獲得的所述文件的所述結(jié)構(gòu)部分,進(jìn)行壓縮和編碼。
8.一種用于對(duì)數(shù)據(jù)編碼和用于壓縮編碼數(shù)據(jù)的數(shù)據(jù)壓縮方法,包括以下步驟讀取以其中的數(shù)據(jù)是由標(biāo)號(hào)樹結(jié)構(gòu)表示的樹本機(jī)語言編寫的文件,把所述文件劃分成結(jié)構(gòu)部分和內(nèi)容;用所述樹本機(jī)語言的語法規(guī)則對(duì)所述結(jié)構(gòu)部分編碼;壓縮由所述編碼器提取的所述文件的所述內(nèi)容并用于對(duì)該壓縮內(nèi)容編碼。
9.按照權(quán)利要求8的數(shù)據(jù)壓縮方法,其中,所述對(duì)所述文件的所述結(jié)構(gòu)部分編碼的步驟包括以下步驟構(gòu)造對(duì)應(yīng)于所述語法規(guī)則的下推自動(dòng)機(jī);向在所述下推自動(dòng)機(jī)中駐留的選擇分配符號(hào);按照深度優(yōu)先檢索策略用所述下推自動(dòng)機(jī)分析所述文件的所述結(jié)構(gòu)部分,并在所述選擇的位置,輸出向所述選擇分配的所述符號(hào);輸出通過采用所述下推自動(dòng)機(jī)而獲得的符號(hào)串,作為以所述樹本機(jī)語言編寫的所述文件的所述結(jié)構(gòu)部分的編碼數(shù)據(jù)串。
10.按照權(quán)利要求9的數(shù)據(jù)壓縮方法,還包括一個(gè)在某屬性屬于所述樹本機(jī)語言的某個(gè)目標(biāo)文件時(shí)要在所述對(duì)以所述樹本機(jī)語言編寫的所述文件的所述結(jié)構(gòu)部分編碼的步驟之前執(zhí)行的步驟,即將所述屬性改變?yōu)閾碛兴鰧傩缘脑氐淖庸?jié)點(diǎn),目的是將所述樹本機(jī)語言的所述語法規(guī)則和所述文件轉(zhuǎn)換成一個(gè)要由所述下推自動(dòng)機(jī)處理的樹結(jié)構(gòu)。
11.按照權(quán)利要求8的數(shù)據(jù)壓縮方法,還包括一個(gè)要在所述對(duì)所述文件的所述結(jié)構(gòu)部分編碼的步驟之后執(zhí)行的步驟,即采用另一個(gè)通用壓縮和編碼方法進(jìn)一步對(duì)所述文件的所述編碼結(jié)構(gòu)部分進(jìn)行壓縮和編碼。
12.一種存儲(chǔ)介質(zhì),其上面的計(jì)算機(jī)輸入裝置存儲(chǔ)一個(gè)計(jì)算機(jī)可讀程序,該程序允許計(jì)算機(jī)執(zhí)行一個(gè)用于讀取以其中的數(shù)據(jù)是由標(biāo)號(hào)樹結(jié)構(gòu)表示的樹本機(jī)語言編寫的文件并且用于把所述文件劃分成結(jié)構(gòu)部分和內(nèi)容的過程;一個(gè)用于用所述樹本機(jī)語言的所述語法規(guī)則對(duì)所述結(jié)構(gòu)部分編碼的過程;和一個(gè)用于壓縮由所述編碼器提取的所述文件的所述內(nèi)容并且用于對(duì)該壓縮內(nèi)容編碼的過程。
13.一種程序傳輸設(shè)備,包括用于存儲(chǔ)程序的存儲(chǔ)裝置,該程序允許計(jì)算機(jī)執(zhí)行一個(gè)用于讀取以其中的數(shù)據(jù)是由標(biāo)號(hào)樹結(jié)構(gòu)表示的樹本機(jī)語言編寫的文件并用于把所述文件劃分成結(jié)構(gòu)部分和內(nèi)容的過程;一個(gè)用于用所述樹本機(jī)語言的語法規(guī)則對(duì)所述結(jié)構(gòu)部分編碼的過程;一個(gè)用于壓縮由所述編碼器提取的所述文件的所述內(nèi)容并且用于對(duì)該壓縮內(nèi)容編碼的過程;和用于從所述存儲(chǔ)裝置讀取所述程序并用于發(fā)送所述程序的傳輸裝置。
全文摘要
一種用于對(duì)數(shù)據(jù)編碼和用于壓縮編碼數(shù)據(jù)的壓縮設(shè)備包含一個(gè)其中的數(shù)據(jù)是由標(biāo)號(hào)樹結(jié)構(gòu)表示的樹本機(jī)語言的語法規(guī)則12;一個(gè)用于讀取以該樹本機(jī)語言編寫的文件,把文件劃分成結(jié)構(gòu)部分和內(nèi)容,和用語法規(guī)則12對(duì)該結(jié)構(gòu)部分編碼的編碼器11;一個(gè)用于壓縮由編碼器11提取的文件的內(nèi)容,和對(duì)該壓縮內(nèi)容編碼的壓縮器13。
文檔編號(hào)H03M7/30GK1316828SQ0110324
公開日2001年10月10日 申請(qǐng)日期2001年2月2日 優(yōu)先權(quán)日2000年2月4日
發(fā)明者丸山宏, 田村健人, 浦本直彥 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
盐城市| 子洲县| 广平县| 峨眉山市| 游戏| 巴里| 黄龙县| 巴中市| 滨海县| 清苑县| 锡林郭勒盟| 剑阁县| 汉中市| 宁波市| 武冈市| 工布江达县| 内丘县| 富宁县| 安岳县| 家居| 综艺| 龙岩市| 富蕴县| 册亨县| 深州市| 太湖县| 商南县| 喀什市| 青田县| 昌乐县| 宁都县| 静乐县| 涟水县| 枞阳县| 余庆县| 东辽县| 阜康市| 那坡县| 甘泉县| 湖北省| 凌云县|