專利名稱:數(shù)據(jù)壓縮器、數(shù)據(jù)解壓縮器以及數(shù)據(jù)管理系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于電子數(shù)據(jù)的壓縮器、解壓縮器以及數(shù)據(jù)管理系統(tǒng)。
背景技術(shù):
近年來,WWW(萬維網(wǎng))的普及導(dǎo)致使用結(jié)構(gòu)化文檔比如HTML(超文本標(biāo)記語言)和XML(可擴(kuò)展標(biāo)記語言)的數(shù)據(jù)交換增加。尤其是,XML作為補(bǔ)充HTML的下一代語言正在引起注意,預(yù)期在將來在因特網(wǎng)信息交換領(lǐng)域?qū)⒆顬槠毡椤?br>
XML是一種使用數(shù)據(jù)表達(dá)來表示元素的等級(jí)結(jié)構(gòu)的語言,用XML寫的文檔(XML文檔)的描述例如如圖18所示。圖18是一個(gè)示意圖,圖示了XML文檔10。如圖18所示,XML通常被分類為標(biāo)記和文本信息。在示于圖18的XML文檔中,標(biāo)記包括元素開始標(biāo)記(開始標(biāo)記,start tag)Ma,元素結(jié)束標(biāo)記(結(jié)束標(biāo)記,end tag)Mb,以及空元素標(biāo)記(empty element tag,empty element mark)Mc。在圖18中,<book>,<title>,<authors>,<author>,<contents>以及<chapter>表示元素開始標(biāo)記Ma。另外,</book>,</title>,</authors>,</author>,</contents>和</chapter>表示元素結(jié)束標(biāo)記Mb。<misc/>表示空元素標(biāo)記Mc。從這些元素開始標(biāo)記Ma到相應(yīng)的元素結(jié)束標(biāo)記Mb的每一個(gè)區(qū)域,或者空元素標(biāo)記Mc表示一個(gè)元素(作為XML基礎(chǔ)的一個(gè)信息單元)。
在元素開始標(biāo)記Ma和元素結(jié)束標(biāo)記Mb之間,可以描述另一個(gè)元素標(biāo)記和/或文本信息。在示于圖18的XML文檔10中,例如,被定義為文本信息的信息包括字符串元素<title>中的″Fundamentals ofXML″,以及出現(xiàn)在元素<authors>中的第一個(gè)元素<author>中的字符串″YAMADA TARO″。
在元素和文本信息之間定義父子關(guān)系和同胞關(guān)系。在示于圖18的XML文檔10的情況下,以元素開始標(biāo)記Ma<book>開始并以元素結(jié)束標(biāo)記Mb</book>結(jié)束的元素(也就是元素<book>)包含以元素開始標(biāo)記Ma<title>開始并以元素結(jié)束標(biāo)記Mb</title>結(jié)束的元素(也就是元素<title>)。在這種情況下,元素<book>被稱為元素<title>的父元素,元素<title>是元素<book>的子元素。這就是元素之間的父子關(guān)系。
元素<title>和元素<authors>有同一個(gè)父元素<book>,并且是相鄰的。在這種情況下,元素<title>和元素<authors>被稱為同胞。元素<title>被稱為元素<authors>的前同胞(previous sibling),元素<authors>是元素<title>的后同胞(next sibling)。這就是元素之間的同胞關(guān)系。
一般,XML被表示為文本格式,就如圖18所示的XML文檔10,在計(jì)算機(jī)之間通信或者在硬盤設(shè)備或者山村中存儲(chǔ)。另一方面,在用于計(jì)算機(jī)內(nèi)部的搜索和校正時(shí),將其解析、轉(zhuǎn)換為適合計(jì)算機(jī)內(nèi)部的數(shù)據(jù)結(jié)構(gòu)。
圖19的示意示了解析圖18所示的XML文檔而將其轉(zhuǎn)換為一種適合計(jì)算機(jī)內(nèi)部使用的格式二獲得的數(shù)據(jù)結(jié)構(gòu)11。在圖19中,元素和文本信息被描述為具有各自的類型和值的頂點(diǎn)(vertices)301到317。在每一個(gè)頂點(diǎn)301-317的左側(cè)描述類型“E”表示元素,“T”表示文本信息。例如,頂點(diǎn)301的類型301a為“E”。在每一個(gè)頂點(diǎn)右側(cè)描述值例如,頂點(diǎn)301的值301b為″book″。在頂點(diǎn)表示元素的情況下,在其值中描述元素的名稱(元素名)。在頂點(diǎn)表示文本信息項(xiàng)目的情況下,在其值中描述字符串。例如,頂點(diǎn)302表示元素名<title>,頂點(diǎn)306表示文本信息″Fundamentals of XML″。
每一個(gè)頂點(diǎn)301-317具有從四種引用信息中選擇的引用信息父引用信息,子引用信息,后同胞引用信息以及前同胞引用信息,以便表達(dá)原始(未轉(zhuǎn)換的)XML文檔10的父子關(guān)系和同胞關(guān)系。在前述XML文檔10的情況下,其中元素<title>是元素<book>的子元素,元素<book>是元素<title>的父元素,示于圖19的數(shù)據(jù)結(jié)構(gòu)11如下構(gòu)建例如,對(duì)于頂點(diǎn)301、302,它們具有從<book>到<title>的子引用P1,以及從<title>到<book>的父引用P2,它們用箭頭表示。元素<book>還有元素<authors>作為<title>的下一個(gè)子元素。在這種情況下,頂點(diǎn)302、303有從元素<title>到元素<authors>的后同胞引用P3,以及從元素<authors>到元素<title>的前同胞引用P4。除了首個(gè)子元素(例如元素<title>)之外,同胞關(guān)系中的元素被定義為沒有直接的父引用。
在數(shù)據(jù)結(jié)構(gòu)中,頂點(diǎn)之間的引用信息的管理可以獨(dú)立于元素名和文本信息。例如,它們可以分別表示為圖20(a)所示和圖20(b)所示。圖20(a)的示意示了具有頂點(diǎn)之間的引用信息的交叉引用數(shù)據(jù)400,圖20(b)的示意示了一個(gè)表格450,其中示出了類型和值分別被設(shè)置為元素和文本信息的頂點(diǎn)的集合(也稱為頂點(diǎn)群)。
但是,由于存儲(chǔ)設(shè)備比如內(nèi)存的容量有限,在數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)中要求有效地壓縮數(shù)據(jù)結(jié)構(gòu)而存儲(chǔ)壓縮數(shù)據(jù)。對(duì)此,文獻(xiàn)″MathiasNeumuller and John N.Wilson″Compact In Memory Representationof XML″Internal Report of University of Strathclyde″(下稱文獻(xiàn)1)公開了一種壓縮如圖20(b)所示的元素名和文本信息的方法。文獻(xiàn)1公開的壓縮方法以詞典的形式單獨(dú)地存儲(chǔ)各頂點(diǎn)的元素名和文本信息,為每一個(gè)頂點(diǎn)提供一個(gè)詞典索引,避免相同字符串的冗余存儲(chǔ)。
另一方面,文獻(xiàn)″Hartmut Liefke and Dan Suciu.″XMillAnEfficient Compressor for XML Data″,In proceedings of ACMSIGMOD International Conference on Management of Data,2000″(下稱文獻(xiàn)2)公開了一種通過重復(fù)使用XML文檔中的部分結(jié)構(gòu)來壓縮XML文檔的方法。該方法將原始XML文檔分為三部分結(jié)構(gòu),元素名信息和文本信息,用普通壓縮算法比如LZ77(LZ77的細(xì)節(jié)可以參考″Jacob Ziv,Abraham LempelA Universal Algorithm forSequential Data Compression.IEEE Transactions on Information 25
Theory 23(3)337-343(1977)″)壓縮所述每一部分。下面描述在文獻(xiàn)2中公開的該壓縮方法。在該壓縮方法中,首先,用短元素名比如″#1″,″#2″等替換每一個(gè)元素開始標(biāo)記和空元素標(biāo)記,并用″/″替換每一個(gè)元素結(jié)束標(biāo)記。用″C″替換文本信息。當(dāng)將上述壓縮方法應(yīng)用于單獨(dú)的XML文檔10時(shí),分離后的數(shù)據(jù)結(jié)構(gòu)12、元素名信息13和文本信息14分別被表達(dá)為如圖21、圖22以及圖23所示。
在文獻(xiàn)2描述的壓縮方法中,使用以LZ77等為代表的壓縮算法,相互獨(dú)立地壓縮所述信息。下面間接該壓縮算法。LZ77或者類似壓縮算法是要法線包括在原始輸入信息中的部分模式(partial pattern),并將它們反復(fù)用作模板,從而實(shí)施壓縮。作為例子,下面解釋圖21所示的數(shù)據(jù)結(jié)構(gòu)12的壓縮。模板X,Y,Z,W和V被用作模板,并且模板被分配如下X=″#1#2C/#3″;Y=″#4C/”;Z=″/#5″;W=″#6C/″;V=″/#7∥″。示于圖21的數(shù)據(jù)結(jié)構(gòu)12可以被表示為″XYYYZWWV″。它多次使用了Y和W作為表示部分文檔結(jié)構(gòu)的模板。如果可以反復(fù)使用模板,以少量的模塊以這種方式來表達(dá)原始文檔,則可以減少表示原始XML文檔的信息量,從而實(shí)現(xiàn)壓縮。
發(fā)明內(nèi)容
但是,在上述傳統(tǒng)技術(shù)中,在使用模板壓縮XML文檔的數(shù)據(jù)結(jié)構(gòu)時(shí),個(gè)模板的信息項(xiàng)是相互獨(dú)立的,這導(dǎo)致的問題是,模板數(shù)的增加導(dǎo)致了所需存儲(chǔ)量的相應(yīng)增加,從而對(duì)存儲(chǔ)設(shè)備比如內(nèi)存造成了很重的負(fù)擔(dān)。
本發(fā)明的提出就是為了解決上述問題。因此,本發(fā)明的一個(gè)目的是提供一種數(shù)據(jù)壓縮器、數(shù)據(jù)解壓縮器和數(shù)據(jù)管理系統(tǒng),它們的配置使得,即使模板數(shù)增加,也不會(huì)對(duì)模板的存儲(chǔ)所需的存儲(chǔ)設(shè)備比如內(nèi)存產(chǎn)生很重的負(fù)擔(dān)。
為了解決上述問題,本發(fā)明提供了一種數(shù)據(jù)壓縮器,包括分離裝置,用于將具有多個(gè)各有自己的類型和值的頂點(diǎn),并具有頂點(diǎn)之間的引用信息的輸入數(shù)據(jù)分離為具有頂點(diǎn)之間的引用信息的交叉引用數(shù)據(jù)以及由多個(gè)具有類型和值的頂點(diǎn)構(gòu)成的頂點(diǎn)群,并用于輸出這樣分離出來的頂點(diǎn)群的數(shù)據(jù);模板存儲(chǔ)裝置,用于存儲(chǔ)頂點(diǎn)之間的具有特定模式的引用信息作為模板,其中,所述模板可以與其它存儲(chǔ)的模板共享頂點(diǎn)之間的引用信息;模板匹配檢測(cè)裝置,用于從所述分離裝置分離出來的交叉引用數(shù)據(jù)中檢測(cè)與在所述模板存儲(chǔ)裝置中存儲(chǔ)的模板匹配的部分;以及模板替換裝置,用于在能夠引用頂點(diǎn)之間的引用信息的狀態(tài)下,用模板替換由模板匹配檢測(cè)裝置在由分離裝置分離出來的交叉引用數(shù)據(jù)中檢測(cè)到的匹配部分,并輸出所替換的交叉引用數(shù)據(jù)。由于在該數(shù)據(jù)壓縮器中,存儲(chǔ)在模板存儲(chǔ)裝置中的模板的配置使得模板能夠與存儲(chǔ)的其它模板共享頂點(diǎn)之間的引用信息,可以減少用于存儲(chǔ)模板的存儲(chǔ)空間。
本發(fā)明還提供了一種數(shù)據(jù)壓縮器,包括分離裝置,用于將具有多個(gè)各有自己的值(每一個(gè)值能夠具有作為屬性信息的類型)的頂點(diǎn),并具有頂點(diǎn)之間的引用信息的輸入數(shù)據(jù)分離為具有頂點(diǎn)之間的引用信息的交叉引用數(shù)據(jù)以及由多個(gè)具有值的頂點(diǎn)構(gòu)成的頂點(diǎn)群,并用于輸出這樣分離出來的頂點(diǎn)群的數(shù)據(jù);模板存儲(chǔ)裝置,用于存儲(chǔ)頂點(diǎn)之間的具有特定模式的引用信息作為模板,其中,所述模板可以與其它存儲(chǔ)的模板共享頂點(diǎn)之間的引用信息;模板匹配檢測(cè)裝置,用于從所述分離裝置分離出來的交叉引用數(shù)據(jù)中檢測(cè)與在所述模板存儲(chǔ)裝置中存儲(chǔ)的模板匹配的部分;以及模板替換裝置,用于在能夠引用頂點(diǎn)之間的引用信息的狀態(tài)下,用模板替換由模板匹配檢測(cè)裝置在由分離裝置分離出來的交叉引用數(shù)據(jù)中檢測(cè)到的匹配部分,并輸出所替換的交叉引用數(shù)據(jù)。由于該數(shù)據(jù)壓縮器也被配置為使得在存儲(chǔ)在模板存儲(chǔ)裝置中的模板的配置中,模板能夠與存儲(chǔ)的其它模板共享頂點(diǎn)之間的引用信息,可以減少用于存儲(chǔ)模板的存儲(chǔ)空間。
上述每一個(gè)數(shù)據(jù)壓縮器最好被配置為所述模板是這樣的模板其中,在頂點(diǎn)之間的部分或者全部引用信息中,引用方向是可以反轉(zhuǎn)的。使用這樣的模板,一個(gè)模板可以反過來應(yīng)用,從而可以減少模板數(shù)量。
所述數(shù)據(jù)壓縮器還可以被配置為所述模板存儲(chǔ)裝置存儲(chǔ)用于相鄰?fù)玫哪0?,該模板具有用于?yīng)用到具有相鄰?fù)貌糠值慕徊嬉脭?shù)據(jù)的連接信息,所述相鄰?fù)貌糠志哂械?到第N共N個(gè)頂點(diǎn),其中,具有序號(hào)的頂點(diǎn)除了第一個(gè)頂點(diǎn)和第二個(gè)頂點(diǎn)之外相互引用,其中第一個(gè)頂點(diǎn)引用第二個(gè)頂點(diǎn)并保持一個(gè)對(duì)外部的引用,其中第N個(gè)頂點(diǎn)引用第(N-1)個(gè)頂點(diǎn),其中,從第二到第N的每一個(gè)頂點(diǎn)沒有對(duì)外部的引用或者均具有相同的引用數(shù)量。該模板不是必須包含頂點(diǎn)之間的引用信息,因此有助于降低存儲(chǔ)量。
上述每一個(gè)數(shù)據(jù)壓縮器可以配置為所述模板存儲(chǔ)裝置存儲(chǔ)一個(gè)父模板,其中,前述模板可以應(yīng)用于頂點(diǎn)之間的引用信息。使用該模板,另一個(gè)模板的定義可以用來定義該模板,這可以減少模板的表達(dá)所需的存儲(chǔ)量。
另外,最好,所述模板存儲(chǔ)裝置存儲(chǔ)一個(gè)能夠公共地用于多個(gè)輸入數(shù)據(jù)的公共模板。由于公共模板被公共地用于多個(gè)輸入數(shù)據(jù),可以減少模板數(shù)量。
本發(fā)明還提供了一種數(shù)據(jù)解壓縮器,包括模板存儲(chǔ)裝置,用于存儲(chǔ)多頂點(diǎn)之間的具有特定模式的引用信息作為模板,其中,所述模板可以與存儲(chǔ)的其它模板共享頂點(diǎn)之間的引用信息;提取裝置,用于導(dǎo)入作為第一輸入數(shù)據(jù)的,用模板替換和被壓縮的交叉引用數(shù)據(jù),并用于使用所述模板從交叉引用數(shù)據(jù)恢復(fù)原始的未壓縮的交叉引用數(shù)據(jù);以及組合裝置,用于導(dǎo)入由多個(gè)各具有自己的類型和值的頂點(diǎn)構(gòu)成的頂點(diǎn)群的數(shù)據(jù)作為第二輸入數(shù)據(jù),并輸出用所述提取裝置恢復(fù)的交叉引用數(shù)據(jù)組合所述頂點(diǎn)群的數(shù)據(jù)而獲得的數(shù)據(jù)。該數(shù)據(jù)解壓縮器能夠使用存儲(chǔ)在模板存儲(chǔ)裝置中的模板,從壓縮的交叉引用數(shù)據(jù)恢復(fù)原始的未壓縮的交叉引用數(shù)據(jù)。
本發(fā)明還提供了一種數(shù)據(jù)管理系統(tǒng),包括第一數(shù)據(jù)存儲(chǔ)裝置,用于存儲(chǔ)可壓縮數(shù)據(jù);第二數(shù)據(jù)存儲(chǔ)裝置,用于存儲(chǔ)由數(shù)據(jù)壓縮器壓縮的數(shù)據(jù);使用頻率監(jiān)測(cè)裝置,用于監(jiān)測(cè)存儲(chǔ)在第一數(shù)據(jù)存儲(chǔ)裝置和第二數(shù)據(jù)存儲(chǔ)裝置中的每一個(gè)數(shù)據(jù)的使用頻率,并根據(jù)監(jiān)測(cè)到的使用頻率輸出移動(dòng)請(qǐng)求;控制裝置,用于根據(jù)來自使用頻率監(jiān)測(cè)裝置的移動(dòng)請(qǐng)求,對(duì)數(shù)據(jù)的移動(dòng)進(jìn)行控制,使得使用頻率高的高頻數(shù)據(jù)由所述數(shù)據(jù)解壓縮器解壓縮以被存儲(chǔ)到所述第一數(shù)據(jù)存儲(chǔ)裝置中,并使使用頻率低于所述高頻數(shù)據(jù)的數(shù)據(jù)由所述數(shù)據(jù)壓縮器壓縮以被存儲(chǔ)到所述第二數(shù)據(jù)存儲(chǔ)裝置中;以及選擇裝置,用于根據(jù)來自所述控制裝置的指令,從第一數(shù)據(jù)存儲(chǔ)裝置或者第二數(shù)據(jù)存儲(chǔ)裝置獲取數(shù)據(jù),并輸出所獲取的數(shù)據(jù)。該數(shù)據(jù)管理系統(tǒng)能夠在第一數(shù)據(jù)存儲(chǔ)裝置和第二數(shù)據(jù)存儲(chǔ)裝置之間根據(jù)數(shù)據(jù)的使用頻率來移動(dòng)數(shù)據(jù),從而通過適當(dāng)?shù)厍袚Q到壓縮狀態(tài)或者不壓縮狀態(tài)來存儲(chǔ)數(shù)據(jù)。因此,頻繁使用的數(shù)據(jù)不被壓縮,其訪問速度保持原樣,從而平均來說能夠提高數(shù)據(jù)訪問速度。
根據(jù)本發(fā)明,即使用于數(shù)據(jù)結(jié)構(gòu)壓縮的模板數(shù)量增加,也可以避免對(duì)存儲(chǔ)模板所需的存儲(chǔ)設(shè)備比如內(nèi)存產(chǎn)生太重的負(fù)擔(dān)。
圖1的框示了本發(fā)明一個(gè)實(shí)施例的數(shù)據(jù)壓縮器的配置;圖2的示意示了XML文檔的一個(gè)例子以及XML文檔的數(shù)據(jù)結(jié)構(gòu);圖3的示意示了交叉引用數(shù)據(jù)以及從圖2的XML文檔分離出來的一組頂點(diǎn)的列表。
圖4的示意示了模板的結(jié)構(gòu)、模板實(shí)體的結(jié)構(gòu)以及第一模板的結(jié)構(gòu);圖5的示意示了壓縮的交叉引用數(shù)據(jù);圖6的框示了另一種交叉引用數(shù)據(jù)和第二模板的配置;圖7的示意示了壓縮后的圖6中的交叉引用數(shù)據(jù);圖8的圖示了匹配監(jiān)測(cè)過程的一個(gè)例子;圖9的示意示了模板匹配信息1501和1505;圖10圖示了替換過程的一個(gè)例子;圖11圖示了另一個(gè)XML文檔和XML文檔的數(shù)據(jù)結(jié)構(gòu);
圖12的框示了根據(jù)本發(fā)明的一個(gè)實(shí)施例的數(shù)據(jù)解壓縮器的配置;圖13圖示了用于從模板恢復(fù)頂點(diǎn)之間的原始引用信息的一個(gè)例子;圖14的框示了一個(gè)數(shù)據(jù)管理系統(tǒng)的配置;圖15的框示了第三模板的結(jié)構(gòu);圖16的框示了內(nèi)部具有模板的父模板的結(jié)構(gòu);圖17圖示了一個(gè)父模板和一個(gè)父模板實(shí)體;圖18圖示了XML文檔的另一個(gè)例子;圖19圖示了圖18的XML文檔的數(shù)據(jù)結(jié)構(gòu);圖20圖示了從圖19的XML文檔分離出來的交叉引用數(shù)據(jù)和頂點(diǎn)集合的表格;圖21圖示了從圖18的XML文檔分離出來的數(shù)據(jù)結(jié)構(gòu);圖22圖示了從圖18的XML文檔分離出來的元素名信息;圖23圖示了從圖18的XML文檔分離出來的文本信息。
具體實(shí)施例方式
下面接合附圖描述本發(fā)明的數(shù)據(jù)壓縮器、數(shù)據(jù)解壓縮器以及數(shù)據(jù)管理系統(tǒng)的實(shí)施例。
〔數(shù)據(jù)壓縮器的實(shí)施例〕(第一實(shí)施例)圖1的框示了本實(shí)施例的數(shù)據(jù)壓縮器101的結(jié)構(gòu)。如圖1所示,該數(shù)據(jù)壓縮器101具有模板存儲(chǔ)器102、分離器103、模板匹配檢測(cè)器104以及模板替換器105。該數(shù)據(jù)壓縮器101被配置為從輸入數(shù)據(jù)106輸出第一輸出數(shù)據(jù)107和第二輸出數(shù)據(jù)108。
圖1中的數(shù)據(jù)壓縮器被構(gòu)建為單個(gè)設(shè)備,其中集成有所述模板存儲(chǔ)器102、分離器103、模板匹配檢測(cè)器104和模板替換器105,但是它并不總是需要實(shí)現(xiàn)為單一的設(shè)備,而可以通過將這些裝置通過未圖示的通信手段連接起來。例如,也可以采用這樣的結(jié)構(gòu)其中,模板存儲(chǔ)器102被從數(shù)據(jù)壓縮器101中取消了,而是實(shí)現(xiàn)為一個(gè)單獨(dú)的設(shè)備,該數(shù)據(jù)壓縮器101通過通信手段連接到該模板存儲(chǔ)器102。這樣的配置使得能夠提供多個(gè)沒有模板存儲(chǔ)器102的數(shù)據(jù)壓縮器,由它們共享一個(gè)模板存儲(chǔ)器102。
在本實(shí)施例中,將結(jié)合對(duì)圖2所示的XML文檔20進(jìn)行壓縮的過程來描述本發(fā)明。但是,在本實(shí)施例中由數(shù)據(jù)壓縮器101進(jìn)行壓縮的對(duì)象不限于XML文檔比如XML文檔20。本發(fā)明可以應(yīng)用于由通用圖結(jié)構(gòu)(general graph structure)表達(dá)的數(shù)據(jù),所述通用圖結(jié)構(gòu)比如具有有類型和值的頂點(diǎn),或者有值的頂點(diǎn)(每一個(gè)值具有作為屬性信息的類型),以及頂點(diǎn)之間的引用信息。所述有值的頂點(diǎn)(每一個(gè)值具有作為屬性信息的類型)例如是這樣一個(gè)頂點(diǎn),其有值“1”,并具有信息“integer”(整數(shù))作為屬性信息,因此可以根據(jù)所述屬性信息確定該值的類型。因此,有值的頂點(diǎn)(每一個(gè)值具有作為屬性信息的類型)也可以用本實(shí)施例中的數(shù)據(jù)壓縮器壓縮,壓縮方式與有各自的類型和值的頂點(diǎn)相同。用通用圖結(jié)構(gòu)表達(dá)的數(shù)據(jù)不限于有根的、有序的(分層的)樹比如XML文檔,也指,例如,更普通的具有閉合路徑的無向或者有向圖。
圖2(a)的示意示了XML文檔20的文本表達(dá)的一個(gè)例子。該XML文檔可以用公知的技術(shù)(例如在http∥xml-apache.org/xerces2-i/上發(fā)表的Xerces)被轉(zhuǎn)換為適合計(jì)算機(jī)內(nèi)部的數(shù)據(jù)結(jié)構(gòu),如圖2(b)所示。下面描述在將XML文檔20轉(zhuǎn)換為圖2(b)所示的數(shù)據(jù)結(jié)構(gòu)21之后進(jìn)行的壓縮步驟。該數(shù)據(jù)結(jié)構(gòu)21具有多個(gè)各由自己的類型和值的頂點(diǎn),以及頂點(diǎn)之間的引用信息。
另一方面,圖1所示的分離器103導(dǎo)入圖2(b)所示的數(shù)據(jù)結(jié)構(gòu)21,作為輸入數(shù)據(jù)106,并將輸入數(shù)據(jù)106分離為具有頂點(diǎn)之間的引用信息的交叉引用數(shù)據(jù),以及由具有各自的類型和值的多個(gè)頂點(diǎn)構(gòu)成的頂點(diǎn)群。也就是,分離器103通過對(duì)頂點(diǎn)901到923順序分配能夠唯一地標(biāo)識(shí)各頂點(diǎn)的相應(yīng)ID(頂點(diǎn)ID)來產(chǎn)生交叉引用數(shù)據(jù)900,并通過對(duì)這樣分配的頂點(diǎn)ID和原來由相應(yīng)頂點(diǎn)901-923擁有的類型和值的組進(jìn)行列表而產(chǎn)生表格950(該表格950由具有類型和值的頂點(diǎn)901-923的集合(頂點(diǎn)群)構(gòu)成),從而實(shí)現(xiàn)對(duì)數(shù)據(jù)結(jié)構(gòu)21的分離??梢酝ㄟ^廣度優(yōu)先搜索、深度優(yōu)先搜索等來為各頂點(diǎn)901到923分配頂點(diǎn)ID。在這里,采用廣度優(yōu)先搜索。所述分離器將通過分離獲得的頂點(diǎn)群的數(shù)據(jù)作為第二輸出數(shù)據(jù)108輸出。
從XML文檔20分離出來的交叉引用數(shù)據(jù)900和表格950分別被圖示于圖3(a)和圖3(b)中。這里,圖3(b)所表達(dá)的格式這樣dingdID950a、類型950b和值950c構(gòu)成一行。在壓縮之前,所述模板存儲(chǔ)器102預(yù)先存儲(chǔ)一個(gè)模板和一個(gè)模板實(shí)體。模板存儲(chǔ)器102存儲(chǔ)預(yù)先知道使用頻率高的高頻模板實(shí)體和模板,例如。這樣的模板和模板實(shí)體的例子是分別示于圖4(a)和圖4(b)的模板1003和模板實(shí)體1020。
模板1003具有模板ID 1001、連接信息1002和模式信息1004。在模板存儲(chǔ)器102存儲(chǔ)了多個(gè)模板的情況下,模板ID 1001用于唯一地標(biāo)識(shí)每一個(gè)模板。模式信息1004表示所述模板所表達(dá)的頂點(diǎn)之間的引用信息的模式,具有多個(gè)頂點(diǎn)和頂尖之間的交叉引用信息。模式信息1004中的引用信息涉及四種引用信息父引用、子引用、后同胞引用和前同胞引用。在沒有連接目標(biāo)頂點(diǎn)的引用中,向在如后所述應(yīng)用所述模板壓縮交叉引用數(shù)據(jù)900時(shí)不使用的引用提供對(duì)模式信息1004中的事實(shí)的描述。這可以通過,例如,定義一個(gè)無效的頂點(diǎn)并引用該頂點(diǎn)來實(shí)現(xiàn)。所述連接信息1002包括表示在應(yīng)用所述模板1003壓縮交叉引用數(shù)據(jù)900時(shí)與另一個(gè)模板或者頂點(diǎn)的連接的連接引用的列表。
由于模板1003的配置在具有連接引用的連接信息1002和具有引用信息的模式信息1004之間有區(qū)別,可以在不同的模板1003之間共享模式信息。也就是,使得所述連接信息1002不同于另一個(gè)連接信息,以在頂點(diǎn)和能夠被連接的其它模板中產(chǎn)生差異,從而可以將具有相同模式信息1004的模板用作不同的模板。這樣就可以忽略模板中頂點(diǎn)之間的引用信息,從而有效地利用模極存儲(chǔ)器102的內(nèi)存使用量(存儲(chǔ)區(qū))。
圖4(c)圖示了作為模板1003的一個(gè)具體例子的第一模板1011。在示于圖4(c)的第一模板1011中的模板ID 1012中設(shè)置了“1”。第一模板1011中的模式信息1019包括五個(gè)頂點(diǎn)1014到1018以及它們之間的引用,引用關(guān)系用箭頭表示。引用的種類通過在箭頭處描述p(表示父引用)、c(表示子引用)、ns(表示后同胞引用)和ps(表示前同胞引用)來表示。例如,頂點(diǎn)1014的子引用c指定頂點(diǎn)1016,頂點(diǎn)1016的后同胞引用指定頂點(diǎn)1017。
另外,“x”用于描述引用的結(jié)束點(diǎn),表示在應(yīng)用模板壓縮交叉引用數(shù)據(jù)900時(shí)不使用它,“0”用于描述引用的結(jié)束點(diǎn),表示在應(yīng)用模板壓縮交叉引用數(shù)據(jù)900時(shí)它被連接到另一個(gè)模板或者頂點(diǎn)。對(duì)于與后者相應(yīng)的四種引用,也就是對(duì)于頂點(diǎn)1014的父引用以及頂點(diǎn)1016、頂點(diǎn)1017和頂點(diǎn)1018的子引用,它們的頂點(diǎn)ID和引用類型被列于連接信息1013中。
模板實(shí)體1020用來表示在壓縮交叉引用數(shù)據(jù)900時(shí)模板在輸入數(shù)據(jù)106上的應(yīng)用(或者表示模板已經(jīng)應(yīng)用于所述輸入數(shù)據(jù))。該模板實(shí)體1020具有模板實(shí)體ID 1005、反轉(zhuǎn)標(biāo)記(inverse flag)1006和模板專有信息1007。模板專有信息1007具有表示被應(yīng)用的模板的使用模板ID1008、實(shí)體連接信息1009和實(shí)體信息1010。通過訪問壓縮后的交叉引用數(shù)據(jù)中的模板實(shí)體1020,可以抓取模板的應(yīng)用內(nèi)容。
模板實(shí)體ID1005用來在用模板壓縮交叉引用數(shù)據(jù)900時(shí)唯一地區(qū)分模板的應(yīng)用部分。反轉(zhuǎn)標(biāo)記1006表示在用模板壓縮交叉引用數(shù)據(jù)900時(shí)同胞關(guān)系的方向是否是在反轉(zhuǎn)狀態(tài)被使用。在本實(shí)施例中,當(dāng)反轉(zhuǎn)標(biāo)記1006為假時(shí),后同胞引用和前同胞引用就是其字面意義;如果反轉(zhuǎn)標(biāo)記1006為真,則“后同胞引用”表示“前同胞引用”,“前同胞引用”表示“后同胞引用”。
模板專有信息1007中的實(shí)體信息1010的提供是為了列出在應(yīng)用模板壓縮交叉引用數(shù)據(jù)900時(shí)要被連接的頂點(diǎn)。該實(shí)體信息1010存儲(chǔ)在應(yīng)用模板壓縮交叉引用數(shù)據(jù)900時(shí)被包括在模板中的頂點(diǎn)的ID。在后面將要描述實(shí)體連接信息1009。在利用同一模板的反轉(zhuǎn)時(shí),所述反轉(zhuǎn)標(biāo)記1006是需要的,但是在不這樣應(yīng)用模板時(shí),它是不需要的。
接下來,模板匹配檢測(cè)器104從所述分離器103從輸入數(shù)據(jù)106分離出來的交叉引用數(shù)據(jù)900中檢測(cè)與存儲(chǔ)在模板存儲(chǔ)器102中存儲(chǔ)的模板匹配的部分。由于可以預(yù)期模板存儲(chǔ)器102存儲(chǔ)了多個(gè)模板,可以想見,模板匹配檢測(cè)器104會(huì)獲得多個(gè)檢測(cè)結(jié)果。但是,如后所述,檢測(cè)結(jié)果例如是由示于圖8的匹配檢測(cè)過程唯一地定義的。
本實(shí)施例圖示了在模板存儲(chǔ)器102只存儲(chǔ)有第一模板1011的情況下,由示于圖8的過程從交叉引用數(shù)據(jù)900獲得的匹配部分。與該模板的匹配部分1501例如可以用使用模板ID1502、反轉(zhuǎn)標(biāo)記1503以及頂點(diǎn)對(duì)應(yīng)信息1504表示為圖9(a)所示的形式,所述頂點(diǎn)對(duì)應(yīng)信息1504表示模板的頂點(diǎn)和原始交叉引用數(shù)據(jù)900的頂點(diǎn)之間的對(duì)應(yīng)關(guān)系。
模板匹配信息1505表示由模板匹配檢測(cè)器104從交叉引用數(shù)據(jù)900獲得的與存儲(chǔ)在模板存儲(chǔ)器102中的模板的匹配的檢測(cè)結(jié)果,如圖9(b)所示。在模板存儲(chǔ)器102只存儲(chǔ)了第一模板1011的情況下,該模板匹配信息1505是圖8所示過程的檢測(cè)結(jié)果。這里,該模板匹配信息1505具有表示三個(gè)匹配部分的第一、第二和第三匹配部分1506、1507和1508。
第一匹配部分1506和第二匹配部分1507表示該匹配是這樣完成的使用沒有反轉(zhuǎn)的第一模板1011,在模板的頂點(diǎn)和頂點(diǎn)對(duì)應(yīng)信息1509以及頂點(diǎn)對(duì)應(yīng)信息1510分別所示的原始交叉引用數(shù)據(jù)900的頂點(diǎn)之間建立對(duì)應(yīng)關(guān)系。第三匹配部分表示該匹配是這樣完成的反轉(zhuǎn)第一模板1011,在模板的頂點(diǎn)和頂點(diǎn)對(duì)應(yīng)信息1511所指示的原始交叉引用數(shù)據(jù)900的頂點(diǎn)之間建立對(duì)應(yīng)關(guān)系。然后,模板匹配檢測(cè)器104將這種結(jié)構(gòu)的模板匹配信息傳送(或者饋送)到模板替換器105。
模板替換器105從模板匹配檢測(cè)器104導(dǎo)入模板匹配信息1505,利用所述模板匹配信息1505將該模板應(yīng)用于原始交叉引用數(shù)據(jù)900,以使用模板實(shí)體1020在頂點(diǎn)之間的引用信息能夠被訪問的狀態(tài)下實(shí)施替換,并將替換結(jié)果作為第一輸出數(shù)據(jù)107輸出。使用模板替換原始交叉引用數(shù)據(jù)900的替換過程如圖10所示,替換的結(jié)果是示于圖5的交叉引用數(shù)據(jù)。該交叉引用數(shù)據(jù)1100是壓縮后的交叉引用數(shù)據(jù)(以下稱為“被壓縮的引用數(shù)據(jù)”)。
圖10圖示了所述替換過程。該替換過程是如下執(zhí)行的在開始處理后,流程前進(jìn)到步驟S1,將i設(shè)為0。然后流程前進(jìn)到步驟S2,對(duì)于匹配模板匹配信息(模板匹配信息1505)中所包括的所有匹配部分(在前述情況下,是第一、第二和第三匹配部分1506、1507和1508)的每一個(gè),重復(fù)步驟S3及其以后的處理。用Mi表示所選擇的匹配部分。在步驟S3,建立一個(gè)模板實(shí)體,其實(shí)體ID被設(shè)置為實(shí)體ID=i。該模板實(shí)體被表示為Oi,并執(zhí)行后續(xù)處理。分別從MI的使用模板ID和反轉(zhuǎn)標(biāo)記拷貝用于該模板實(shí)體的使用模板ID和反轉(zhuǎn)標(biāo)記。從Mi的頂點(diǎn)對(duì)應(yīng)信息拷貝實(shí)體信息。從在實(shí)體信息中描述的對(duì)應(yīng)關(guān)系,通過代入原樣的原始引用來產(chǎn)生實(shí)體連接信息。然后流程前進(jìn)到步驟S4,計(jì)算i=i+1。在隨后的步驟S5,一個(gè)一個(gè)地選中這樣建立的模板實(shí)體,對(duì)于每一個(gè)模板實(shí)體重復(fù)下述處理。選中的模板實(shí)體被表示為Oi。接下來,流程前進(jìn)到步驟S6,在實(shí)體連接信息所描述的引用的連接目標(biāo)頂點(diǎn)被包括在另一個(gè)模板實(shí)體中的情況下,用一個(gè)模板實(shí)體ID和該模板的一個(gè)頂點(diǎn)的組合替換之。
在圖5中,有三個(gè)模板實(shí)體模板實(shí)體1124、模板實(shí)體1133和模板實(shí)體1140。模板實(shí)體1124、模板實(shí)體1133和模板實(shí)體1140各有自己的實(shí)體ID 1125、實(shí)體ID 1131和實(shí)體ID 1138,它們分別被賦予值“1 ”、“2”和“3”,以能被識(shí)別。所述模板實(shí)體在它們的使用模板ID1128、1135和1142中都設(shè)置了“1”,并具有反轉(zhuǎn)標(biāo)記1126、1132和1139,前兩個(gè)的值為假,后一個(gè)的值為真。這表明,圖示于圖4(c)的第一模板1011無反轉(zhuǎn)地被應(yīng)用于模板實(shí)體1124和1133,第一模板1011在反轉(zhuǎn)的情況下被應(yīng)用于模板實(shí)體1140。
圖5中每一個(gè)模板實(shí)體1124、1133和1140的實(shí)體信息包含指示包含在模板中的頂點(diǎn)和應(yīng)用模板之前交叉引用數(shù)據(jù)的頂點(diǎn)之間的對(duì)應(yīng)關(guān)系的信息。為此,頂點(diǎn)之間的引用信息保留在替換后的交叉引用數(shù)據(jù)1100中,并可以被訪問。例如,在模板實(shí)體1124的情況下,實(shí)體信息1130包含這樣的信息表示第一模板1011的頂點(diǎn)1014、1015、1016、1017和1018分別對(duì)應(yīng)于壓縮前的交叉引用數(shù)據(jù)900的頂點(diǎn)902、903、904、905和906,如圖3(a)所示。每一個(gè)模板實(shí)體的實(shí)體連接信息包含表示與另一個(gè)模板實(shí)體或者頂點(diǎn)的連接關(guān)系的信息。應(yīng)用于每一個(gè)模板實(shí)體的模板是第一模板1011,其連接信息1013描述了第一模板1011保持有可以連接到外部的四個(gè)引用。
這樣,每一個(gè)模板實(shí)體的實(shí)體連接信息描述了哪些頂點(diǎn)對(duì)應(yīng)于這些引用目標(biāo)。例如,在模板實(shí)體1124的情況下,實(shí)體連接信息1129包含這樣的信息表明頂點(diǎn)1014的父引用被連接到頂點(diǎn)907,頂點(diǎn)1016和頂點(diǎn)1017的子引用分別被連接到模板實(shí)體ID為“2”的另一個(gè)實(shí)體的頂點(diǎn)1014,以及模板實(shí)體ID為“3”的另一個(gè)實(shí)體的頂點(diǎn)1014,頂點(diǎn)1018的子引用不連接到任何頂點(diǎn)。
在應(yīng)用模板自謙的交叉引用數(shù)據(jù)900中,如圖3所示,頂點(diǎn)902到917中的每一個(gè)具有四個(gè)引用,而在應(yīng)用模板之后的交叉引用數(shù)據(jù)1100中,如圖5所示,它們被沒有頂點(diǎn)之間的引用信息的模板實(shí)體取代。這種取代使得能夠用模板進(jìn)行壓縮。所應(yīng)用的模板如下所述也與傳統(tǒng)技術(shù)不同。也就是,模板匹配部分1508不與第一模板1011匹配,從而傳統(tǒng)技術(shù)對(duì)于模板匹配部分1508來說需要另一個(gè)模板,而在本實(shí)施例中,如上所述,模板匹配部分1508能夠匹配第一模板1011的反轉(zhuǎn),從而對(duì)于模板匹配部分1508不需要另外的模板。因此,能夠有效地利用模板存儲(chǔ)器102的存儲(chǔ)區(qū)。
關(guān)于第二輸出數(shù)據(jù)108(它是從如圖3(b)所示的輸入數(shù)據(jù)分離出來的帶類型和值的頂點(diǎn)的集合)的壓縮,除了在由分離器103分離出來之后輸出這一點(diǎn)之外,本實(shí)施例沒有引用任何東西。例如可以用與文獻(xiàn)1中描述的前述方法或者類似方法的組合來壓縮第二輸出數(shù)據(jù)108。在本實(shí)施例中,對(duì)于每一個(gè)模板實(shí)體尊卑一個(gè)反轉(zhuǎn)標(biāo)記,但是可以對(duì)整個(gè)交叉引用數(shù)據(jù)準(zhǔn)備一個(gè)反轉(zhuǎn)標(biāo)記,或者二者都設(shè)置。
另一方面,在如前所述的本實(shí)施例中的數(shù)據(jù)壓縮器101被應(yīng)用于多種類型的輸入數(shù)據(jù)的情況下,模板可以被用作在多種類型的輸入數(shù)據(jù)之間共享的公共模板。由于公共模板可以應(yīng)用于多種類型的輸入數(shù)據(jù),沒有必要提供對(duì)應(yīng)于各輸入數(shù)據(jù)的模板。因此,可以有效地利用模板存儲(chǔ)器102的內(nèi)存。
例如,在圖示于圖11(a)的XML文檔30的情況下,示于圖4(c)的第一模板1011也可以以與示于圖2的XML文檔相同的方式由示于圖8的匹配檢測(cè)過程加以應(yīng)用。然后,模板存儲(chǔ)器102存儲(chǔ)應(yīng)用于XML文檔20、30而無區(qū)別地作為公共模板的模板,從而能夠有效地利用模板存儲(chǔ)器102中的存儲(chǔ)空間(或者提高內(nèi)存的利用效率)。
下面說明示于圖8的匹配檢測(cè)過程。在開始處理之后的步驟S11,按照從具有最大的頂點(diǎn)數(shù)的模式開始,從存儲(chǔ)在模式存儲(chǔ)器中的模式中選擇一個(gè)模式,對(duì)每一個(gè)模式重復(fù)以下的處理。被選擇的模式用Pj表示。然后過程前進(jìn)到步驟S12對(duì)反轉(zhuǎn)標(biāo)記的每一個(gè)假和真的值重復(fù)下述處理。在隨后的步驟S13,從被包括在交叉引用數(shù)據(jù)中的頂點(diǎn)選擇數(shù)量與被選擇的模式Pj中的頂點(diǎn)數(shù)量匹配的頂點(diǎn)的組合被定義為X1,X2,...,Xm,并從中一個(gè)一個(gè)地進(jìn)行選擇而重復(fù)下述處理。被選中的組合被表示為Xk。然后流程前進(jìn)到步驟S14,判斷是否被包括在Xk中的頂點(diǎn)都沒有帶替換完成標(biāo)記。如果沒有標(biāo)記,則流程前進(jìn)到步驟S15;否則結(jié)束處理。當(dāng)流程前進(jìn)到步驟S15時(shí),判斷Xk與Pj是否同類型。如果類型相同,則流程前進(jìn)到步驟S16,否則結(jié)束處理。當(dāng)流程前進(jìn)到步驟S16時(shí),Xk被登記為一個(gè)匹配部分,向被包括在Xk中的頂點(diǎn)提供一個(gè)標(biāo)記,表示完成了替換。
(第二實(shí)施例)下面描述壓縮如圖6(a)所述的具有多個(gè)相鄰?fù)玫慕徊嬉脭?shù)據(jù)的情況。數(shù)據(jù)壓縮器101被配置為通過用一個(gè)示于圖6(b)的第二模板1201來替換示于圖6(a)的相鄰?fù)貌糠?200來壓縮該交叉引用數(shù)據(jù)1204。示于圖6(b)的第二模板1201具有一個(gè)模板ID 1202和連接信息1203,但是沒有模式信息,這與第一模板1101不同。該第二模板1201是用于相鄰?fù)玫哪0?,其用來壓縮具有象交叉引用數(shù)據(jù)1204那樣的相鄰?fù)貌糠值慕徊嬉脭?shù)據(jù)。
這里,在交叉引用數(shù)據(jù)1204中,如圖6(a)所示,相鄰?fù)貌糠?200為如下配置它具有從第一、第二、第三到第N的N個(gè)頂點(diǎn)2a、2b、2c...2n,除了第一頂點(diǎn)2a和第二頂點(diǎn)2b的具有序號(hào)的頂點(diǎn)必定相互引用,第一頂點(diǎn)2a引用第二頂點(diǎn)2b,并有一個(gè)對(duì)相鄰?fù)貌糠?200外部的頂點(diǎn)2p的引用。另外,第N個(gè)頂點(diǎn)2n引用未圖示的第(N-1)個(gè)頂點(diǎn),從第二到第N的每一個(gè)頂點(diǎn)沒有到相鄰?fù)貌糠?200外部的引用(或者它們可以有相同數(shù)量的引用,例如象圖3中的頂點(diǎn)912、913那樣)。為了壓縮這樣的交叉引用數(shù)據(jù)1204,至少應(yīng)當(dāng)知道構(gòu)成相鄰?fù)貌糠?200的頂點(diǎn)的數(shù)量和第一頂點(diǎn)對(duì)外部的引用。因此,第二模板1201中的連接信息1203被配置為包含構(gòu)成相鄰?fù)貌糠值捻旤c(diǎn)的數(shù)量N,以及模板的父引用p。模板ID 1202是“2”。
圖7的示意示了用示于圖6(b)的第二模板1201壓縮交叉引用數(shù)據(jù)1204之后的交叉引用數(shù)據(jù)1300。在這種情況的壓縮中,與模板的匹配部分的探測(cè)和模板的應(yīng)用可以以與第一實(shí)施例相同的方式進(jìn)行。在圖7中,交叉引用數(shù)據(jù)1300包含三個(gè)模板實(shí)體模板實(shí)體1318、1323和1329,它們的實(shí)體ID 1317、實(shí)體ID1322和實(shí)體ID1328分別具有值“1”、“2”和“3”。這些模板實(shí)體都具有自己的使用模板ID1326、1334和1333,它們都被設(shè)置為“2”(意思是在壓縮中使用了第二模板1201)。由于本實(shí)施例沒有使用反轉(zhuǎn)標(biāo)記,每一個(gè)模板實(shí)體1318、1323和1329都沒有反轉(zhuǎn)標(biāo)記。
每一個(gè)模板實(shí)體1318,1323,1329的實(shí)體連接信息1320,1325,1331都包含一個(gè)構(gòu)成相鄰?fù)貌糠值捻旤c(diǎn)數(shù)量N(分別地,N=4,3或者2)的記錄以及每一個(gè)模板實(shí)體的父引用p。例如,在模板實(shí)體1318的情況下,N=4,p為401。每一個(gè)模板實(shí)體的實(shí)體信息1321,1327,1332包含表示模板所包括的頂點(diǎn)的信息。例如,在模板實(shí)體1318的情況下,實(shí)體信息表示實(shí)體連接信息1320所指示的四個(gè)頂點(diǎn),也就是頂點(diǎn)402,403,404和405。如上所述,可以用第二模板1201壓縮交叉引用數(shù)據(jù)1204。由于用在壓縮中的第二模板1201沒有模式信息,存儲(chǔ)第二模板1201所需的存儲(chǔ)量可以很小。因此,可以減少模板存儲(chǔ)器102的存儲(chǔ)區(qū)使用量。
(數(shù)據(jù)解壓縮器的實(shí)施例)下面結(jié)合圖12描述數(shù)據(jù)解壓縮器1801。圖12是一個(gè)框圖,圖示了本實(shí)施例的數(shù)據(jù)解壓縮器1901的結(jié)構(gòu)。該數(shù)據(jù)解壓縮器1801從示于圖5的被壓縮的交叉引用數(shù)據(jù)(壓縮引用數(shù)據(jù))1100以及由示于圖3(b)的具有各自的類型和值的多個(gè)頂點(diǎn)構(gòu)成的頂點(diǎn)組的數(shù)據(jù),恢復(fù)具有各有自己的類型和值的多個(gè)頂點(diǎn),以及頂點(diǎn)之間的引用信息的原始數(shù)據(jù)。該數(shù)據(jù)解壓縮器1801具有模板存儲(chǔ)器1802、組合器1803和模板提取器1804。
圖12圖示的數(shù)據(jù)解壓縮被構(gòu)建為包括前述各部件的單個(gè)設(shè)備,但是該數(shù)據(jù)解壓縮器180并不是必須被實(shí)現(xiàn)為單個(gè)設(shè)備,而可以用未圖示的通信手段連接多個(gè)設(shè)備來實(shí)現(xiàn)。例如,可以采用這樣的配置模板存儲(chǔ)器1802與數(shù)據(jù)解壓縮器1801分開,被實(shí)現(xiàn)為單個(gè)單獨(dú)的設(shè)備,其中,所述兩個(gè)設(shè)備通過未圖示的通信手段連接起來。這樣的配置允許多個(gè)沒有模板存儲(chǔ)器1802的數(shù)據(jù)解壓縮器共享所述模板存儲(chǔ)器1802。所述模板提取器1804使用存儲(chǔ)在模板存儲(chǔ)器1802中的模板提取作為第一輸入數(shù)據(jù)1806的壓縮交叉引用數(shù)據(jù)。可以通過,例如示于圖13的解壓縮過程來實(shí)現(xiàn)所述提取過程。由模板提取器1804解壓縮的交叉引用數(shù)據(jù)類似于圖3所示的交叉引用數(shù)據(jù)900。
所述組合器1803將提取出來的交叉引用數(shù)據(jù)與作為如圖3(b)所示的第二輸入數(shù)據(jù)給出的具有類型和值的頂點(diǎn)群的數(shù)據(jù)組合起來,并將組合數(shù)據(jù)作為輸出數(shù)據(jù)1805輸出。組合過程如下。由于在示于圖3(b)的表950中具有類型和值的頂點(diǎn)群中為頂點(diǎn)分配了各自的頂點(diǎn)ID,類型和值被置入具有相應(yīng)的頂點(diǎn)ID的交叉引用數(shù)據(jù)的頂點(diǎn)中。上述過程使得能夠恢復(fù)具有各有自己的類型和值的多個(gè)原始頂點(diǎn)以及頂點(diǎn)之間的引用信息的輸入數(shù)據(jù)。
解壓縮過程如下。在圖13中,在開始之后的步驟S21將被包括在壓縮交叉引用數(shù)據(jù)中的所有模板實(shí)體定義為X1,X2,...,Xn,對(duì)于所有模板實(shí)體中的每一個(gè)執(zhí)行以下過程。選中的模板實(shí)體被表示為Xi。然后流程前進(jìn)到步驟S22,從模板實(shí)體Xi使用的模板拷貝頂點(diǎn)之間的引用信息,并分配在模板實(shí)體Xi的實(shí)體信息中描述的頂點(diǎn)的ID。然后流程前進(jìn)到步驟S23,在這里,在模板實(shí)體Xi的實(shí)體連接信息中所描述的頂點(diǎn)是被包括在另一個(gè)模板實(shí)體Xm中的項(xiàng)點(diǎn)時(shí),用模板實(shí)體Xm中所描述的頂點(diǎn)ID替換之。
〔數(shù)據(jù)管理系統(tǒng)的實(shí)施例〕用本發(fā)明的數(shù)據(jù)壓縮器壓縮交叉引用數(shù)據(jù)可能導(dǎo)致對(duì)壓縮后的數(shù)據(jù)的訪問速度降低。為此,最好用下述犯法進(jìn)行數(shù)據(jù)管理觀測(cè)數(shù)據(jù)的使用頻率,將在任何給定時(shí)刻具有高使用頻率的數(shù)據(jù)保持在不壓縮狀態(tài),隨著使用頻率的增加,將即使壓縮過一次的交叉引用數(shù)據(jù)返回不壓縮狀態(tài),并隨著使用頻率的下降相反地壓縮數(shù)據(jù)。通過提供進(jìn)行這樣的數(shù)據(jù)管理的數(shù)據(jù)管理系統(tǒng),能夠?qū)崿F(xiàn)整個(gè)系統(tǒng)速度的增加和存儲(chǔ)空間的節(jié)省。
圖14的框示了能夠進(jìn)行這種數(shù)據(jù)管理的數(shù)據(jù)管理系統(tǒng)的配置。該數(shù)據(jù)管理系統(tǒng)2000具有第一數(shù)據(jù)存儲(chǔ)器2001、第二數(shù)據(jù)存儲(chǔ)器2004、數(shù)據(jù)壓縮器2002和數(shù)據(jù)解壓縮器2003。該數(shù)據(jù)管理系統(tǒng)2000還具有一個(gè)使用頻率檢測(cè)裝置2006、一個(gè)控制器2005和一個(gè)選擇器2008。
本實(shí)施例中的數(shù)據(jù)管理系統(tǒng)2000被構(gòu)建為包括前述各部件的單個(gè)設(shè)備,但是本發(fā)明的數(shù)據(jù)管理系統(tǒng)并不是必須被實(shí)現(xiàn)為單個(gè)設(shè)備,而可以用未圖示的通信手段連接多個(gè)設(shè)備來實(shí)現(xiàn)。例如,也可以采用這樣的配置第一數(shù)據(jù)存儲(chǔ)器2001與數(shù)據(jù)管理系統(tǒng)2000分開,后面要描述的模板存儲(chǔ)器102被從數(shù)據(jù)壓縮器2002中取消,將所述第一數(shù)據(jù)存儲(chǔ)器2001實(shí)現(xiàn)為單個(gè)單獨(dú)的設(shè)備,所述兩個(gè)設(shè)備通過未圖示的通信手段連接起來。這樣的配置允許多個(gè)沒有第一數(shù)據(jù)存儲(chǔ)器2001的數(shù)據(jù)管理系統(tǒng)共享所述第一數(shù)據(jù)存儲(chǔ)器2001。其它部件同樣如此。
所述第一數(shù)據(jù)存儲(chǔ)器2001以未壓縮狀態(tài)存儲(chǔ)作為可壓縮數(shù)據(jù)的適合計(jì)算機(jī)的格式的數(shù)據(jù)(例如,示于圖20的交叉引用數(shù)據(jù)400或者類似數(shù)據(jù))。第二數(shù)據(jù)存儲(chǔ)器2004存儲(chǔ)壓縮數(shù)據(jù)(例如示于圖5的交叉引用數(shù)據(jù)1100,或者類似數(shù)據(jù))。這里,數(shù)據(jù)壓縮器2002具有與本發(fā)明的前述數(shù)據(jù)壓縮器101相同的配置,數(shù)據(jù)解壓縮器2003具有與前述數(shù)據(jù)解壓縮器1801相同的配置。
所述控制器2005根據(jù)從系統(tǒng)外部提供的數(shù)據(jù)規(guī)范2009控制第一數(shù)據(jù)存儲(chǔ)器2001、第二數(shù)據(jù)存儲(chǔ)器2004、數(shù)據(jù)壓縮器2002、數(shù)據(jù)解壓縮器2003以及選擇器2008。該控制器2005根據(jù)來自使用頻率檢測(cè)裝置2006的移動(dòng)請(qǐng)求,進(jìn)行對(duì)應(yīng)于數(shù)據(jù)規(guī)范2009的規(guī)范的數(shù)據(jù)的移動(dòng)的控制。根據(jù)來自控制器2005的指令,選擇器2008從第一數(shù)據(jù)存儲(chǔ)器2001或者第二數(shù)據(jù)存儲(chǔ)器2004獲取存儲(chǔ)的數(shù)據(jù),并輸出所獲取的數(shù)據(jù)。
使用頻率監(jiān)測(cè)裝置2006觀測(cè)存儲(chǔ)在第一數(shù)據(jù)存儲(chǔ)器2001或者第二數(shù)據(jù)存儲(chǔ)器2004中的數(shù)據(jù)(交叉引用數(shù)據(jù))的使用頻率,并根據(jù)觀測(cè)到的使用頻率輸出后面所述的移動(dòng)請(qǐng)求。該使用頻率監(jiān)測(cè)裝置2006在內(nèi)部保持一個(gè)示于歷史列表2007。該使用歷史列表2007保留有被請(qǐng)求使用的數(shù)據(jù)的多個(gè)(N個(gè))區(qū)別ID,例如按照使用請(qǐng)求的順序,以線性列表的形式(未圖示)。本實(shí)施例中的數(shù)據(jù)管理系統(tǒng)2000為每一個(gè)數(shù)據(jù)項(xiàng)分配一個(gè)區(qū)別ID,用于唯一地區(qū)分存儲(chǔ)在內(nèi)部的數(shù)據(jù)項(xiàng)。數(shù)據(jù)規(guī)范2009是用于為來自外部的特定數(shù)據(jù)提供區(qū)分ID的手段。
下面描述實(shí)際操作的細(xì)節(jié)。在數(shù)據(jù)管理系統(tǒng)2000的情況下數(shù)據(jù)被存儲(chǔ)在第一數(shù)據(jù)存儲(chǔ)器2001或者第二數(shù)據(jù)存儲(chǔ)器2004中,在初始狀態(tài)數(shù)據(jù)可以被存儲(chǔ)在第一數(shù)據(jù)存儲(chǔ)器2001和第二數(shù)據(jù)存儲(chǔ)器2004中的任何一個(gè)中。在下面的說明中假設(shè)所有的數(shù)據(jù)都被存儲(chǔ)在第二數(shù)據(jù)存儲(chǔ)器2004中。
由數(shù)據(jù)規(guī)范2009從外部輸入?yún)^(qū)分ID時(shí),控制器2005接收之并向使用頻率監(jiān)測(cè)裝置2006饋送一個(gè)指令。從控制器2005接收到該指令時(shí),使用頻率監(jiān)測(cè)裝置2006向控制器2005饋送信息,告知相關(guān)數(shù)據(jù)被存儲(chǔ)在第一數(shù)據(jù)存儲(chǔ)器2001和第二數(shù)據(jù)存儲(chǔ)器2004中的哪一個(gè)中,以及是否在所述兩個(gè)存儲(chǔ)設(shè)備之間移動(dòng)數(shù)據(jù)。
這里,使用頻率監(jiān)測(cè)裝置2006訪問使用歷史列表2007,以指定第一數(shù)據(jù)存儲(chǔ)器2001和第二數(shù)據(jù)存儲(chǔ)器2004,判斷在數(shù)據(jù)規(guī)范2009中指定的數(shù)據(jù)是否存在于使用歷史列表2007中。然后,使用頻率監(jiān)測(cè)裝置2006例如給出應(yīng)答,例如指出數(shù)據(jù)被存儲(chǔ)在第一數(shù)據(jù)存儲(chǔ)器2001中,數(shù)據(jù)在所述列表中,或者例如指出數(shù)據(jù)存儲(chǔ)在第二數(shù)據(jù)存儲(chǔ)器2004中,數(shù)據(jù)沒有在所述列表中。
另外,對(duì)于第一數(shù)據(jù)存儲(chǔ)器2001和第二數(shù)據(jù)存儲(chǔ)器2004之間的數(shù)據(jù)移動(dòng)的存在與否,使用頻率監(jiān)測(cè)裝置如下所述給控制器2005一個(gè)答復(fù)。例如,它基于下述假設(shè)做出回答更新使用歷史列表2007時(shí)在使用歷史列表2007中新描述(或者記錄)的數(shù)據(jù)已經(jīng)從第二數(shù)據(jù)存儲(chǔ)器2004移動(dòng)到第一數(shù)據(jù)存儲(chǔ)器2001;更新歷史列表時(shí)從使用歷史列表2007中取消的數(shù)據(jù)已經(jīng)從第一數(shù)據(jù)存儲(chǔ)器2001移動(dòng)到第二數(shù)據(jù)存儲(chǔ)器2004。
然后,控制器2005基于來自使用頻率監(jiān)測(cè)裝置2006的上述應(yīng)答控制第一數(shù)據(jù)存儲(chǔ)器2001或者第二數(shù)據(jù)存儲(chǔ)器2004,使其輸出所存儲(chǔ)的數(shù)據(jù),并使得選擇器2008將從它們中的任何一個(gè)獲得的數(shù)據(jù)輸出到數(shù)據(jù)管理系統(tǒng)2000的外部。
當(dāng)控制器2005從使用頻率監(jiān)測(cè)裝置2006接收到移動(dòng)數(shù)據(jù)的請(qǐng)求時(shí),它執(zhí)行在數(shù)據(jù)存儲(chǔ)器2001、2004之間移動(dòng)數(shù)據(jù)的控制。例如,在控制器2005接收到將數(shù)據(jù)從第一數(shù)據(jù)存儲(chǔ)器2001移動(dòng)到第二數(shù)據(jù)存儲(chǔ)器2004的移動(dòng)請(qǐng)求的情況下,由于使用頻率低,它執(zhí)行這樣的控制移動(dòng)所述數(shù)據(jù),以從第一數(shù)據(jù)存儲(chǔ)器2001提取所述數(shù)據(jù),用所述數(shù)據(jù)壓縮器2002壓縮所述數(shù)據(jù),然后將壓縮數(shù)據(jù)存儲(chǔ)到第二數(shù)據(jù)存儲(chǔ)器2004中。然后,所述控制器2005進(jìn)行控制,從第一數(shù)據(jù)存儲(chǔ)器2001中刪除所述提取的數(shù)據(jù)。
反過來,當(dāng)控制器接收到從第二數(shù)據(jù)存儲(chǔ)器2004向第一數(shù)據(jù)存儲(chǔ)器2001移動(dòng)數(shù)據(jù)的移動(dòng)請(qǐng)求時(shí),由于使用頻率高,它執(zhí)行控制,從第二數(shù)據(jù)存儲(chǔ)器2004中提取數(shù)據(jù),用數(shù)據(jù)解壓縮器2003對(duì)壓縮數(shù)據(jù)解壓縮,并將解壓縮后的數(shù)據(jù)存儲(chǔ)到第一數(shù)據(jù)存儲(chǔ)器2001中。該控制器2005還執(zhí)行控制,從第二數(shù)據(jù)存儲(chǔ)器2004刪除所提取的數(shù)據(jù)。
在數(shù)據(jù)管理系統(tǒng)2000中,如上所述,控制器2005根據(jù)來自使用頻率監(jiān)測(cè)裝置2006的移動(dòng)請(qǐng)求來控制數(shù)據(jù)的移動(dòng),從而,數(shù)據(jù)可以在第一數(shù)據(jù)存儲(chǔ)器2001和第二數(shù)據(jù)存儲(chǔ)器2004之間移動(dòng)。因此,交叉引用數(shù)據(jù)的存儲(chǔ)可以根據(jù)其使用頻率適當(dāng)?shù)卦趬嚎s狀態(tài)和未壓縮狀態(tài)之間切換。這樣,使用頻率高的數(shù)據(jù)以未壓縮狀態(tài)存儲(chǔ),以維持其高使用頻率,從而可以在保持高工作速度的同時(shí)降低整個(gè)系統(tǒng)的存儲(chǔ)區(qū)使用量。
(其它實(shí)施例)根據(jù)本發(fā)明,模板存儲(chǔ)器也能夠存儲(chǔ)如圖15所示的模板。圖15的示意示了第三模板2100??梢钥吹剑居趫D15的第三模板2100的模式信息2103中的區(qū)2104和2105中的頂點(diǎn)之間的引用信息與示于圖4(c)的第一模板1011的模式信息匹配。因此,此前描述的模板也能通過以下方式應(yīng)用于該模板內(nèi)的模式信息擴(kuò)展模板和模板實(shí)體,添加描述應(yīng)用于內(nèi)部的模板數(shù)量的信息、能夠唯一地區(qū)分模板內(nèi)部的每一個(gè)模板的ID,等等。
為了這里描述的方便,在將前述模板應(yīng)用于模板內(nèi)部的模式信息時(shí),原始模板被稱為父模板,應(yīng)用于模板內(nèi)部的模式信息的模板則稱為子模板。圖17(a)和(b)分別圖示了父模板2300和父模板實(shí)體2320的配置舉例,用于使模板也能應(yīng)用于模板內(nèi)部的模式信息。父模板2300和父模板實(shí)體2320與圖4所示第一實(shí)施例中使用的模板1003和模板實(shí)體1020的不同在于父模板2300包含另外的內(nèi)部模板信息2301,父模板實(shí)體2320包含另外的內(nèi)部模板實(shí)體連接信息2302和內(nèi)部模板實(shí)體信息2303。
所述內(nèi)部模板信息2301例如包含子模板數(shù)量和子模板的ID。內(nèi)部模板實(shí)體信息2303包含每一個(gè)頂點(diǎn)的對(duì)應(yīng)關(guān)系的描述,以描述在實(shí)際應(yīng)用父模板時(shí),被包括在子模板中的頂點(diǎn)和應(yīng)用父模板之前的頂點(diǎn)之間的對(duì)應(yīng)關(guān)系。所述內(nèi)部模板實(shí)體連接信息2302包含在實(shí)際應(yīng)用父模板時(shí),子模板連接到外部父模板的連接信息的描述。
圖16圖示了示于圖17(a)的模板的一個(gè)特定父模板。在此父模板2200中,內(nèi)部模板信息2522包含ID=1和ID=2,因?yàn)閮煞N類型的子模板被應(yīng)用于兩個(gè)部分。所述模式信息2203根據(jù)與第一實(shí)施例一樣的交叉引用數(shù)據(jù)壓縮過程被壓縮,對(duì)其應(yīng)用第一模板1011。
當(dāng)將該配置的父模板2200應(yīng)用于交叉引用數(shù)據(jù)時(shí),可以用另一個(gè)模板的定義來定義模板,這樣,與圖15所示的第三模板2100相比,就可以減少模板的信息量。
權(quán)利要求
1.一種數(shù)據(jù)壓縮器,包括分離裝置,用于將具有多個(gè)各有自己的類型和值的頂點(diǎn)、并具有頂點(diǎn)之間的引用信息的輸入數(shù)據(jù),分離為具有頂點(diǎn)之間的引用信息的交叉引用數(shù)據(jù)以及由多個(gè)具有類型和值的頂點(diǎn)構(gòu)成的頂點(diǎn)群,并用于輸出這樣分離出來的頂點(diǎn)群的數(shù)據(jù);模板存儲(chǔ)裝置,用于存儲(chǔ)頂點(diǎn)之間的具有特定模式的引用信息作為模板,其中,所述模板可以與存儲(chǔ)的其它模板共享頂點(diǎn)之間的引用信息;模板匹配檢測(cè)裝置,用于從所述分離裝置分離出來的交叉引用數(shù)據(jù)中檢測(cè)與在所述模板存儲(chǔ)裝置中存儲(chǔ)的模板匹配的部分;以及模板替換裝置,用于在能夠引用頂點(diǎn)之間的引用信息的狀態(tài)下,用模板替換由模板匹配檢測(cè)裝置在由分離裝置分離出來的交叉引用數(shù)據(jù)中檢測(cè)到的匹配部分,并輸出所替換的交叉引用數(shù)據(jù)。
2.一種數(shù)據(jù)壓縮器,包括分離裝置,用于將具有多個(gè)各有自己的值且每一個(gè)值能夠具有作為屬性信息的類型的頂點(diǎn)、并具有頂點(diǎn)之間的引用信息的輸入數(shù)據(jù),分離為具有頂點(diǎn)之間的引用信息的交叉引用數(shù)據(jù)以及由多個(gè)具有值的頂點(diǎn)構(gòu)成的頂點(diǎn)群,并用于輸出這樣分離出來的頂點(diǎn)群的數(shù)據(jù);模板存儲(chǔ)裝置,用于存儲(chǔ)頂點(diǎn)之間的具有特定模式的引用信息作為模板,其中,所述模板可以與存儲(chǔ)的其它模板共享頂點(diǎn)之間的引用信息;模板匹配檢測(cè)裝置,用于從所述分離裝置分離出來的交叉引用數(shù)據(jù)中檢測(cè)與在所述模板存儲(chǔ)裝置中存儲(chǔ)的模板匹配的部分;以及模板替換裝置,用于在能夠引用頂點(diǎn)之間的引用信息的狀態(tài)下,用模板替換由模板匹配檢測(cè)裝置在由分離裝置分離出來的交叉引用數(shù)據(jù)中檢測(cè)到的匹配部分,并輸出所替換的交叉引用數(shù)據(jù)。
3.如權(quán)利要求1或2所述的數(shù)據(jù)壓縮器,其中,所述模板是這樣的模板其中,在頂點(diǎn)之間的部分或者全部引用信息中,引用方向能夠反轉(zhuǎn)。
4.如權(quán)利要求1或2所述的數(shù)據(jù)壓縮器,其中,所述模板存儲(chǔ)裝置存儲(chǔ)用于相鄰?fù)玫哪0?,該模板具有用于?yīng)用到具有相鄰?fù)貌糠值慕徊嬉脭?shù)據(jù)的連接信息,所述相鄰?fù)貌糠志哂械?到第N共N個(gè)頂點(diǎn),其中N為大于2的整數(shù),其中,具有序號(hào)的頂點(diǎn)除了第一個(gè)頂點(diǎn)和第二個(gè)頂點(diǎn)之外相互引用,其中第一個(gè)頂點(diǎn)引用第二個(gè)頂點(diǎn)并保持一個(gè)對(duì)外部的引用,其中第N個(gè)頂點(diǎn)引用第(N-1)個(gè)頂點(diǎn),其中,從第二到第N的每一個(gè)頂點(diǎn)沒有對(duì)外部的引用或者均具有相同的引用數(shù)量。
5.如權(quán)利要求1或2所述的數(shù)據(jù)壓縮器,其中,所述模板存儲(chǔ)裝置存儲(chǔ)一個(gè)父模板,在該父模板中,前述模板可以應(yīng)用于頂點(diǎn)之間的引用信息。
6.如權(quán)利要求1或2所述的數(shù)據(jù)壓縮器,其中,所述模板存儲(chǔ)裝置存儲(chǔ)一個(gè)能夠公共地用于多個(gè)所述輸入數(shù)據(jù)的公共模板。
7.一種數(shù)據(jù)解壓縮器,包括模板存儲(chǔ)裝置,用于存儲(chǔ)多個(gè)頂點(diǎn)之間的具有特定模式的引用信息作為模板,其中,所述模板可以與存儲(chǔ)的其它模板共享頂點(diǎn)之間的引用信息;提取裝置,用于導(dǎo)入作為第一輸入數(shù)據(jù)的,用模板替換和被壓縮的交叉引用數(shù)據(jù),并用于使用所述模板從交叉引用數(shù)據(jù)恢復(fù)原始的未壓縮的交叉引用數(shù)據(jù);以及組合裝置,用于導(dǎo)入由多個(gè)各具有自己的類型和值的頂點(diǎn)構(gòu)成的頂點(diǎn)群的數(shù)據(jù)作為第二輸入數(shù)據(jù),并輸出用所述提取裝置恢復(fù)的交叉引用數(shù)據(jù)組合所述頂點(diǎn)群的數(shù)據(jù)而獲得的數(shù)據(jù)。
8.一種數(shù)據(jù)管理系統(tǒng),包括第一數(shù)據(jù)存儲(chǔ)裝置,用于存儲(chǔ)可壓縮數(shù)據(jù);第二數(shù)據(jù)存儲(chǔ)裝置,用于存儲(chǔ)由數(shù)據(jù)壓縮器壓縮的數(shù)據(jù);使用頻率監(jiān)測(cè)裝置,用于監(jiān)測(cè)存儲(chǔ)在第一數(shù)據(jù)存儲(chǔ)裝置和第二數(shù)據(jù)存儲(chǔ)裝置中的每一個(gè)數(shù)據(jù)的使用頻率,并根據(jù)監(jiān)測(cè)到的使用頻率輸出移動(dòng)請(qǐng)求;控制裝置,用于根據(jù)來自使用頻率監(jiān)測(cè)裝置的移動(dòng)請(qǐng)求,對(duì)數(shù)據(jù)的移動(dòng)進(jìn)行控制,使得使用頻率高的高頻數(shù)據(jù)由所述數(shù)據(jù)解壓縮器解壓縮以被存儲(chǔ)到所述第一數(shù)據(jù)存儲(chǔ)裝置中,并使使用頻率低于所述高頻數(shù)據(jù)的數(shù)據(jù)由所述數(shù)據(jù)壓縮器壓縮以被存儲(chǔ)到所述第二數(shù)據(jù)存儲(chǔ)裝置中;以及選擇裝置,用于根據(jù)來自所述控制裝置的指令,從第一數(shù)據(jù)存儲(chǔ)裝置或者第二數(shù)據(jù)存儲(chǔ)裝置獲取數(shù)據(jù),并輸出所獲取的數(shù)據(jù)。
全文摘要
本申請(qǐng)涉及數(shù)據(jù)壓縮器、數(shù)據(jù)解壓縮器以及數(shù)據(jù)管理系統(tǒng)。具體來說,一種數(shù)據(jù)壓縮器101的結(jié)構(gòu)如下一個(gè)分離器103將具有多個(gè)各有自己的類型和值的頂點(diǎn)、并具有頂點(diǎn)之間的引用信息的輸入數(shù)據(jù)106,分離為具有頂點(diǎn)之間的引用信息的交叉引用數(shù)據(jù)以及頂點(diǎn)群;這樣分離得到的頂點(diǎn)群的數(shù)據(jù)被輸出,作為第二輸出數(shù)據(jù);一個(gè)模板存儲(chǔ)器102存儲(chǔ)具有特定模式的交叉引用信息作為模板,在模板中,可以共享頂點(diǎn)之間的引用信息;一個(gè)模板匹配檢測(cè)器104從分離的交叉引用數(shù)據(jù)中檢測(cè)與存儲(chǔ)的模板匹配的部分;一個(gè)模板替換器105用所述模板替換交叉引用數(shù)據(jù)中被檢測(cè)到的匹配部分,并輸出所替換的交叉引用數(shù)據(jù)作為第一輸出數(shù)據(jù)107。
文檔編號(hào)G06F17/21GK1598811SQ200410078788
公開日2005年3月23日 申請(qǐng)日期2004年9月17日 優(yōu)先權(quán)日2003年9月19日
發(fā)明者行友英記, 中山雄大, 金野晃, 竹下敦 申請(qǐng)人:株式會(huì)社Ntt都科摩