Komprese a dotazování nad XML dokumenty Prezentace diplomové práce Lukáš Skřivánek České vysoké učení technické v Praze Fakulta elektrotechnická Katedra počítačů květen 2007 Vedoucí práce: Ing. Miroslav Balík, Ph.D. Lukáš Skřivánek (ČVUT FEL) Komprese a dotazování nad XML dokumenty květen 2007 1 / 18
Osnova 1 Výhody a nevýhody XML 2 Postup komprese a dotazování 3 Existující implementace komprese XML souborů 4 Návrh XML komprese 5 Popis implementace 6 Testování 7 Závěr 8 Demonstrační aplikace Lukáš Skřivánek (ČVUT FEL) Komprese a dotazování nad XML dokumenty květen 2007 2 / 18
Výhody a nevýhody XML Výhody obecný formát pro libovolná data, jednoduchost, rozšiřitelnost, veřejná specifikace, mezinárodní podpora, snadná čitelnost pro člověka, jednoduchá editace v libovolném textovém editoru, podpora v dalších technologiích a programovacích jazycích, podpora od řady světových producentů software i v aplikacích, řeší problém univerzální výměny dat mezi různými systémy. Nevýhody pamět ové nároky (redundantní formát), efektivnost načítání a práce s daty. Lukáš Skřivánek (ČVUT FEL) Komprese a dotazování nad XML dokumenty květen 2007 3 / 18
Postup komprese a dotazování Lukáš Skřivánek (ČVUT FEL) Komprese a dotazování nad XML dokumenty květen 2007 4 / 18
Existující implementace komprese XML souborů Kompresní programy nepodporující dotazování XMill XMLPPM Kompresní programy podporující dotazování XMLZip XGrind XPress XQueC (XQuery processor and Compressor) Lukáš Skřivánek (ČVUT FEL) Komprese a dotazování nad XML dokumenty květen 2007 5 / 18
XML Compression (XCo) algoritmus komprese XML dokumentu: oddělení struktury od dat, komprese elementů a atributů slovníkovou metodou, komprese hodnot semi-adaptivním Huffmanovým kódováním, zvlášt kompresní model Huffmanova kódování pro každý název elementu nebo atributu, kódování ukazatelů do slovníku Fibonacciho kódováním. přípona souboru (*.xco). Lukáš Skřivánek (ČVUT FEL) Komprese a dotazování nad XML dokumenty květen 2007 6 / 18
XML Compression DOM (XCoDOM) implementace standardního rozhraní DOM, načítán přímo z XCo souboru (komprimovaného XML souboru), dekomprimuje všechny Fibonacciho kódy (ukazatele do slovníku), nedekomprimuje Huffmanovy kódy. Lukáš Skřivánek (ČVUT FEL) Komprese a dotazování nad XML dokumenty květen 2007 7 / 18
Popis implementace název XML Compression (XCo), implementováno jako knihovna funkcí (API), implementace rozdělena do balíků: compression poskytuje metody pro kompresi XML, decompression poskytuje metody pro dekompresi XCo souboru zpět do XML dokumentu, xcodom implementace standardní sady rozhraní org.w3c.dom. Lukáš Skřivánek (ČVUT FEL) Komprese a dotazování nad XML dokumenty květen 2007 8 / 18
XML soubory použité při testování Název souboru Velikost Počet elementů Počet atributů Výška stromu autobazar.xml 380 B 11 2 3 student.xml 32,7 kb 831 332 3 shakespeare.xml 245 kb 6347 0 6 wsu.xml 1,57 MB 74557 0 4 docbook.xml 2,90 MB 66757 41456 16 nasa.xml 23,8 MB 476646 53882 8 Název souboru Unikátních elementů Unikátních atributů autobazar.xml 6 1 student.xml 6 2 shakespeare.xml 17 0 wsu.xml 20 0 docbook.xml 236 50 nasa.xml 61 8 Lukáš Skřivánek (ČVUT FEL) Komprese a dotazování nad XML dokumenty květen 2007 9 / 18
Kompresní poměr Lukáš Skřivánek (ČVUT FEL) Komprese a dotazování nad XML dokumenty květen 2007 10 / 18
Porovnání kompresních poměrů XQueC a XCo Lukáš Skřivánek (ČVUT FEL) Komprese a dotazování nad XML dokumenty květen 2007 11 / 18
Velikost DOMu Lukáš Skřivánek (ČVUT FEL) Komprese a dotazování nad XML dokumenty květen 2007 12 / 18
Časová náročnost vykonání XPath dotazu Soubor XPath dotaz Java DOM XCo DOM wsu //course/days/text() 1238 ms 960 ms docbook //LINK/text() 1347 ms 1292 ms docbook //ENTRY/text() 1331 ms 1290 ms nasa /datasets/dataset/title/text() 4024 ms 7716 ms nasa //attribute::footnoteid 5055 ms 8672 ms Lukáš Skřivánek (ČVUT FEL) Komprese a dotazování nad XML dokumenty květen 2007 13 / 18
Porovnání vlastností kompresních programů podporujících dotazování Program Kompresní algoritmus Podporovaný jazyk Směr pohybu XMLZip LZSS DOM XPath všemi směry XGrind Huffmanovo kódování, podmnožina XPath od kořene k listům slovníková metoda XPress Huffmanovo kódování, podmnožina XPath od kořene k listům slovníková metoda, reverzní aritmetické kódování XQueC Huffmanovo kódování, ALM, podmnožina XQuery všemi směry slovníková metoda XCo Huffmanovo kódování, DOM XPath všemi směry slovníková metoda, Fibonacciho kódování Lukáš Skřivánek (ČVUT FEL) Komprese a dotazování nad XML dokumenty květen 2007 14 / 18
Závěr Výsledky: v průměru o 9 % lepší výsledky než XQueC, v průměru o 60 % méně místa než zdrojové XML soubory, rozhraní DOM v průměru o 30 % méně paměti. Doporučení: pro obyčejnou kompresi XML dokumentů použít zip, pro vysoký kompresní poměr použít XMill, pro kompresi s dotazováním použít XML Compression (XCo). Budoucnost: implementovat sémantickou kompresi, implementovat dotazovací jazyk XPath využívající urychlovacích algoritmů, vytvoření pomocných struktur a cache pamět. Lukáš Skřivánek (ČVUT FEL) Komprese a dotazování nad XML dokumenty květen 2007 15 / 18
Demonstrační aplikace XCo Aplikace určená ke kompresi a dekompresi XML souboru. Lukáš Skřivánek (ČVUT FEL) Komprese a dotazování nad XML dokumenty květen 2007 16 / 18
Demonstrační aplikace XCoViewer Aplikace určená pro přímé prohlížení souboru typu XCo jako původního XML souboru. Lukáš Skřivánek (ČVUT FEL) Komprese a dotazování nad XML dokumenty květen 2007 17 / 18
Demonstrační aplikace XCoXPath Aplikace určená pro dotazování jazykem XPath nad rozhraním DOM načteným přímo ze souboru typu XCo. Lukáš Skřivánek (ČVUT FEL) Komprese a dotazování nad XML dokumenty květen 2007 18 / 18