←Vissza

Tapolczai Ágnes

Hogyan tároljuk digitális
dokumentumainkat?

Az XML formátum története
és szerepe
a dokumentumok kezelésében

A könyvtárak számára az utóbbi évek legnagyobb változása a digitális dokumentumok felbukkanása volt. Először csak a katalógusokat érte el a "villamosítás". A katalóguscédula adatait átnevezték bibliográfiai rekordnak, majd metaadatnak. A számítógépek növekvő kapacitásával a teljes dokumentum is sokszor gépre került, tovább növelve a nyilvántartás gondjait. Eddig ismeretlen adatelemek leírására került sor (fájltípus, formátum, karakterkódolás, hordozó), és a hálózati publikációknak néha nem is látszik a vége a kapcsolódó oldalak sokasága miatt. Az eleje még úgy-ahogy megtalálható, csak időnként arrébb költözik a hálózaton.

Nemcsak a leíró adatok okoznak nehézséget. Az is kérdéses, hogyan tegyük a polcra, illetve a szerverre magát a dokumentumot. Tegyük mellé a megjelenítő szoftvert, pl. DOS alatt működő Wordöt? Vagy QuarkXpress-t, esetleg Corel Venturát? Vagy bízzunk benne, hogy az elkövetkezendő évtizedek szövegszerkesztői helyesen fogják megjeleníteni a művet? Az eddigi tapasztalat nem ad erre biztosítékot, főleg ha táblázat vagy lábjegyzet is található benne. Amennyiben az eredeti szerkesztőt eltesszük, az operációs rendszert is mellé kell tennünk, sőt ad abszurdum a számítógépet magát is.

A Gutenberg-projekt az első internetes "könyvtár", vagyis hálózati szöveg-gyűjtemény, amely irodalmi műveket szolgáltat az interneten. A fenti meggondolások folytán eleinte a szövegekben kizárólag ASCII text formátumot használt, ami azt jelenti, hogy nem volt formázó utasítás a szövegben, csupán a betűk és a központozás kódjai, a szóköz és a soremelés. Az ily módon egyszerűsített eszközkészlet ugyan program- és gépfüggetlen, de kevés feladatot tud ellátni. Már az is hiányosság, hogy csak az angol nyelvben használt betűket ismeri, de a formázás teljes hiánya végképp nem elégíti ki a mai igényeket. A Gutenberg-projekt ma már feladta ezt a politikát, többféle formátumban szolgáltatnak, köztük az először használt egyszerű textben is.

Tudományos körökben már a '60-as évektől kezdve felmerültek a hosszabb távú szövegmegőrzés kérdései, el is készítették az első, ún. jelölőnyelveket. A gondolat lényege, hogy a kódolás (jelölés) teljes egészében átlátható legyen magából a szövegfájlból, ne igényeljen külön programot az értelmezés, vagyis függetlenné váljon a géptől és a programtól.

Az SGML

Az SGML a jelölőnyelvek ősanyja, teljes neve: Structured Generalized Markup Language. A HTML és az XML is ebből származik. Szabványként 1986-ban fogadták el.

Nyílt szabvány, mindenki hozzáférhet, beépítheti alkalmazásaiba, közzétették az interneten is. Így tehát nem lehet monopolizálni magát a megoldást. Az SGML meghatározza a jelölés szintaxisát, de a jelölni kívánt elemeket szabadon határozhatjuk meg. Hasonló szerkezetű dokumentumok esetén azonos elemkészletet célszerű alkalmazni. Egy bizonyos dokumentumtípus leírására használt elemkészletet alkalmazásnak nevezzük. Például könyv esetében valószínűleg lesznek címek, fejezetek, míg életrajzi lexikonnál inkább személyek, születési, halálozási dátumok. A teljes alkalmazás voltaképpen több ennél, nemcsak az elemeket, hanem egymáshoz viszonyított helyzetüket is megadja (sorrend, egymásba ágyazás), valamint a választható értékeket, a megjelenítés mikéntjét.

Az SGML-t számítógépes nyelvészettel foglalkozó intézmények kezdeményezték. Igen alapos munkát végeztek. Fő szempontjuk az volt, hogy ne legyen információvesztés. A célt nagyon jól elérték, de olyan bonyolulttá vált a nyelv, hogy a programfejlesztés kicsit elakadt vagy legalábbis nagyon lelassult.

Három fő részből áll egy SGML dokumentum:

•  DTD (Data Type Definition): az elemkészlet és az elemek struktúrája található benne leírva,

•  maga az elemkészlettel jelölt szöveg,

•  megjelenítő vagy stíluslap, amely a logikai elemekhez megjelenítést rendel. A stíluslap voltaképpen az átjáró a különböző programok felé. Ezért természetesen annyi kell belőle, ahány programon keresztül szeretnénk szemlélni művünket. A HTML és a PDF formátumok felé biztosítandó átjáróhoz szintén nyílt szabvány biztosít egységes szintaxist.

 

Az elemek, amelyeket címkékkel látnak el, logikai részek. A megjelenítés kérdése szinte teljesen elválik ettől, azt a stíluslapon kell definiálni. Természetesen ez azt is jelenti, hogy több stíluslapot is lehet készíteni egy dokumentumhoz. Mindazonáltal nem lehetetlen, hogy jelölve legyen a tipográfia is, ha a felhasználó úgy dönt, hogy az fontos, például ha teljesen hűen szeretne tükrözni egy bizonyos kiadást.

Az SGML még nem a hálózat "gyermeke". Értékes szövegek tudományos igényű feldolgozására tervezték, a hely- és időtakarékosság nem volt szempont. A '80-as évek végén az internet elindult világhódító útjára, és mint annyi más, a jelölőnyelv is megváltozott.

A HTML

1991-ben az SGML nyelv alapján készült egy DTD, egy alkalmazás, kifejezetten weblapok megjelenítésére. Kis részét használja csak az SGML lehetőségeinek, épp ezért könnyű rá programokat írni, ahogy ezt meg is tették: ezek a böngészők. A HTML tehát már nem teszi lehetővé a dokumentumok írói számára a jelölések kiegészítését, ezt a lehetőséget a W3C szervezete vállalta magára. (A W3C a Word Wide Web Consortium, központi helye az internetes szabványoknak.) Így válik lehetővé, hogy a HTML lapok és más internetes megoldások a világ különböző helyein elvileg azonosan működjenek (néha ugyan kisebb zökkenőkkel).

Az XML

1996-ban kezdték tervezni, voltaképpen az SGML-t alakították át kifejezetten internetes célokra. Az XML kevesebb lehetőséget nyújt, mint az SGML, cserében viszont könnyebben kezelhető, programok írhatók hozzá, és nyers formában is olvasható.

Az XML mottója: egyszer felvisszük, sokféleképp felhasználjuk. Új perspektívákat nyit a dokumentumok tárolásában, megjelenítésében és az adatok cseréjében.

Az XML a HTML-hez hasonló elveken nyugvó jelölőnyelv, elsősorban a világhálón való információszállításra tervezték. Az információ minél akadálytalanabb cseréjét célozza. Az eltérés a HTML-től abban áll, hogy nem előre megadott elemekből válogatunk, hanem mi magunk találhatjuk ki az elemek neveit és egymáshoz viszonyított hierarchiáját, ennyiben azonos az SGML-lel. Bármilyen típusú dokumentum leírására alkalmas. A fent említett információcseréhez persze hozzátartozik a szerkezet és elemnevek közlése is (ami nem más, mint a DTD). Ami egységes és szabványban meghatározott, az a szintaxis.

A szabvány célkitűzései között szerepel, hogy világos és szemmel olvasható legyen a forrás, és hogy a dokumentumok könnyen elkészíthetőek legyenek speciális szoftver eszközök nélkül is. Ennélfogva tulajdonképpen egy szövegszerkesztő is elég XML dokumentumok írásához, a különböző szerkesztő eszközök csak a munka megkönnyítését szolgálják. Az igazsághoz hozzátartozik, hogy nagyobb tömegű XML dokumentum szerkesztése nagyon nehézkes a formátumot támogató szerkesztő nélkül.

A fenti technológiák adják az alapját a különböző szakmákon belüli nemzetközi szabványoknak. Ezen szabványok tulajdonképpen alkalmazások, a szakmák megállapodnak közös elemkészlet használatában. Értelmüket az azonosság adja, még akkor is, ha esetleg nem tökéletesek. Az XML nyelv lett a nemzetközi szabványok legelterjedtebb nyelve az interneten. Mivel a felhasználó által bővíthető, a helyi specialitások is beleférnek, fő hogy legyen egy közös magja.

A felhasználás területeinek két fő iránya van: strukturált dokumentumok szerkesztése, beleértve képleteket, logikai ábrákat és azok platformfüggetlen tárolása, valamint információcsere az interneten, amikor a távoli együttműködő szoftverek közös munkáját teszi lehetővé az azonos szerkezet.

Néhány példa a felhasználásra:

Összefoglalva: az XML szabvány célja egy közös nyelv létrehozása és elfogadtatása, amelyet azután minden program érthet, sőt emberi szemmel olvasva is kibogozható belőle a lényeg. A címkékkel megjelölik általában:

A megjelenítés esetében maga az XML nem a konkrét formát közli (pl. dőlt betű, középre, 11 pontos Times Roman), hanem csak azt, hogy valamilyen szempontból meg kell különböztetni a szövegrészt a környezetétől, és inkább ezt a szempontot tartalmazza a címke. Ha azt közli: ez egy cím, a címke neve olyasmi lesz, hogy title vagy head. A pontos megjelenítést a stíluslap adja, amiből viszont több is lehet a felhasználástól függően. És itt kiderül egy újabb lehetőség: az egyszer bekódolt szöveget sok más módon fel lehet használni, akár nyomtatásra is. Valójában olyan módokon is, amelyeket a készítés pillanatában még nem láttunk. Az igazán gond nélküli felhasználás mégis akkor jön létre, ha előre látjuk legalább azt, milyen részeket kell majd megkülönböztetni.

Például a Magyar Elektronikus Könyvtár (http://mek.oszk.hu) XML szövegei tartalmazzák a címek, fejezetek, beékelt versek, jegyzetek címkéit, vagyis ezek a részek meg vannak jelölve a nyers szövegekben. Ezáltal alkalmassá válnak HTML, PDF, e-book kimenet gépi generálására, sőt a felolvasó programnak is megfelelnek, "aki" eszerint tud hangsúlyozni. De nem tartalmazzák azt az információt, hogy férfi vagy női hang mondja a közvetlen beszédben leírt részeket. Pedig a felolvasó programok tudnának váltani eszerint, ha nem is most, de a közeli jövőben.

Az SGML-hez hasonlóan összesen három részből áll egy dokumentum: az elemkészletet és azok egymáshoz való viszonyát meghatározó DTD, maga az XML fájl, amely a szöveget és jelöléseket egyben tartalmazza, és a megjelenítést előíró stíluslap. Nézzük sorban:

1. A DTD

A rövidítés feloldása: Data Type Definition. Felsorolja az elemeket, amelyeket majd használhatunk a jelölés során, megadja a nevüket, azon elemek neveit, amelyek beágyazhatóak a nyitó- és zárórész közé, hogy lehet-e benne közvetlenül szöveg, az előfordulást (egyszer és csak egyszer, többször, kötött vagy kötetlen sorrend).

Szerepelhetnek még az egyes elemekhez rendelt attribútumok is. Hogy egy tipikus példát említsünk, a type, (típus) a MEK-ben használt DTD-ben a "rész" (div) elemhez kapcsolódik, és így a rész hordozhat egy type="chapter" kiegészítést. Tehát a fejezet kezdetét így jelöljük: div type="chapter". Természetesen más típus is lehetséges, a teljes lista a Függelékben látható.

A DTD lehet külön fájlban elhelyezve (külső DTD) vagy, ha rövidebb, szerepelhet az XML fájl elején (belső DTD), továbbá hiányozhat is, ami főleg egyszerűbb szerkezetek esetén szokásos, amikor ránézésre látszik, milyen elemek fordulnak elő.

2. Az XML fájl

Az XML fájl első része a fejléc, ebben alapinformációk vannak. Az előbb említett DTD létezése és helye (ha van) vagy maga a belső DTD, a karakterkód rendszer és az esetleges stíluslap helye itt van megadva. Itt találhatjuk az ún. ENTITY-ket, amely beilleszthető, helyettesíthető részeket jelent. Külső DTD létezése mellett is lehetséges néhány elemre belső utasítás. Ekkor ezek felülírják a külső DTD utasításait. A szabály értelme az, hogy lehetséges egy konkrét dokumentum esetében, hogy néhány különleges, csak arra a dokumentumra jellemző helyzet áll elő.

A fejléc után jön maga a szöveg. Fontos szabály, hogy mindig kell lennie egy elemnek, amely az egészet körbefogja, ezt root elemnek is nevezhetjük. Az összes többi ebbe van beágyazva.

Láthatjuk, hogy az XML fájlban található a hivatkozás a DTD-re és a stíluslapra is, tehát elég egy-egy ezekből, ha hasonló szövegek gyűjteményéről van szó.

A jól formázott (well-formed) XML dokumentum szintaktikai hibáktól mentes, például minden nyitóelemhez tartozik zárórész, és nem kezdődik új elem, mielőtt a megnyitott le lenne zárva. Az érvényes (valid) XML dokumentum szerkezete megfelel a fejlécben megjelölt DTD-nek. Ha nincs DTD, természetesen nem lehet érvényességről beszélni.

3. A stíluslap

Az XML fájlokat az Internet Explorer 6.0-tól kezdve közvetlenül is megjeleníthetjük a böngészőben. Különbözni fog a kiíratás formája aszerint, hogy van-e elérhető helyen stíluslap, ami kétféle lehet: CSS vagy XSL. Ha van stíluslap, és a fejlécben szerepel, akkor eszerint íródik ki a szöveg a képernyőre. Ezzel szemben ha ilyen nem érhető el, a böngésző a nyers XML fájlt írja ki, színezéssel segítve a címkék és a voltaképpeni szöveg elkülönítését, valamint "+" és "-" jelekkel összecsukható és kinyitható részekként ábrázolja az egymásba ágyazott logikai egységeket. A CSS a HTML lapok megjelenítésére már régóta használatos egyszerű megoldás, de korlátozottak a lehetőségei. Az XSL az XML szabványhoz tartozik, jóval több formázó utasítások soránál: megmondhatjuk, mely elemeket kívánunk kiírni és milyen sorrendben, közbeékelhetünk szöveget, feltételekhez köthetjük a megjelenítést, vagyis kereső funkciót is beépíthetünk.

Az XML távlati jelentősége

A digitális dokumentum elkészítése nem egyszerű folyamat, a főbb lépései ezek lehetnek:

1. Szkennelés, begépelés vagy fájlból beolvasás.

2. Mentés a munkaformátumba.

3. Karakter felismertetés (OCR).

4. Korrektúra.

5. Archív fájl és könyvtárszerkezet kialakítása.

6. Szolgáltatott formátumok kialakítása.

7. Metaadatok hozzáfűzése.

8. Elhelyezés a szolgáltató rendszerben.

Az XML vagy SGML dokumentumok elkészítése a teljes munkafolyamatnak csak egy része, az archíválásra szánt fájlt készíthetjük el így. A stíluslap már módot ad a szolgáltatott formátum generálására is. Ha HTML oldalakat szeretnénk szolgáltatni, két lehetőségünk van: elhelyezzük a dokumentum mellé a stíluslapot, és rábízzuk a böngészőre, hogy összehozza őket. A kockázat az, hogy régebbi böngészők ezt nem teszik meg, valamint, hogy letöltésnél lemaradhat a stíluslap. Másik lehetőségként állandó HTML lapként ténylegesen generáltatunk belőle HTML oldalt vagy oldalakat, ezt az XML szerkesztőkkel lehet megtenni. Amennyiben más formátumokra van igény, pl. pdf vagy lit az e-book olvasók számára, azokhoz másféle stíluslap kell, és egyértelműen a fájl generálására van szükség. Minden megjelenítő szoftverhez külön stíluslap kell. Ha a jövőben újak jelennek meg, azokhoz ismét át kell írni a stíluslapot, de a szöveghez nem kell nyúlni.

A metaadatok és a szöveg maga egyaránt lehet XML-ben, illetve készülhet XML kimenet adatcsere céljára. Egymáshoz való viszonyuk szerint tartalmazhatja a szöveg a metaadatokat is, vagy lehetnek külön fájlban valamely azonosítóval összefűzve a hozzájuk tartozó szöveggel.

A gépelés vagy szkennelés és a korrektúra igen idő- és munkaigényes feladat, ezért indokolt az így feldolgozott szöveg programfüggetlen megőrzéséről gondoskodni. A gépi karakterfelismerés (OCR) soha nem tökéletes, és különösen nem az a régebbi szövegek esetében. Nagy tömegű digitalizálásnál, vagy ha az eredeti oldalkép is érdeklődésre tart számot, vegyes megoldást alkalmaznak: bevonják a szolgáltatásba a szkennelt képet és a felismertetett szöveget egyaránt; ez utóbbi a szavakra keresést és a tartalomjegyzés generálását teszi lehetővé. Ekkor kevésbé zavaró néhány betűhiba, mert a képre ránézve az emberi szem helyesen olvassa el az elmosódott szavakat.

Nemzetközi szabványok

Az XML formátum alkalmazása egy lépés az ún. "szemantikus web" felé. A fogalmon azt értik, hogy az internet kezelhetetlen adathalmazából a gépek által is értelmezhető szerkezet emelkedjen ki. Az XML-t a számítógépek tudják értelmezni, és az ilyen dokumentumok magukba foglalják saját leíró (meta-) adataikat is. Egy lépéssel továbbmenve ugyanezt a célt szolgálják a nemzetközi szabványok. Az XML szintaxisán kívül itt már az elemkészlet és a szerkezet is összehangolt. Az internetes források egységes jelölése (URI, URN, PURL) és a forrásleíró keretrendszer (RDF) szintén ebbe a vonulatba tartoznak. Elkezdődött a Webontológia nyelv (OWL) kidolgozása, amely további gépi analízist tesz lehetővé a források tartalma alapján. Nemcsak formátumkérdéseket tartalmaz, hanem közös szótárak kialakítását is jelenti egy-egy tudományterületen belül. Az OWL a számítógépek között még nagyobb együttműködést tesz lehetővé, mint az XML és az RDF. Az összetettebb rendszerek alapformátuma legtöbbször az XML.

A néhány leginkább elterjedt SGML/XML alapú nemzetközi szabvány szövegek kódolására:

Dublin Core (DC)

A leíró (meta-) adat szinten leginkább a Dublin Core szabványt alkalmazzák, az egyes rendszerekben esetenként kisebb kiegészítésekkel.

Text Encoding Initiative (TEI)

Szépirodalmi szövegek minél teljesebb tükrözésére készült az SGML felhasználásával. Igen szerteágazó, legtöbbször a TEI-Lite nevű alkészletét használják, amely jóval egyszerűbb, és a legtöbb célra megfelel.

Docbook

Erősen strukturált, tudományos, technikai munkák céljára fejlesztették ki. Itt nem annyira az utólagos feldolgozásról van szó, inkább az a cél, hogy azonos szerkezetben készüljenek összetartozó dokumentumok (pl. egy cég műszaki leírásai).

Open Ebook

Az e-book olvasók (pl. a Microsoft Reader) számára bemeneti formátumként szolgál. Elsősorban a modern szövegek feldolgozását és képernyőn való megjelenítését célozza. Amennyire csak lehet HTML kompatibilis, mert kidolgozásakor már nagy mennyiségű szöveg volt a hálózaton HTML-ben.

Eprints.org

Tudományos cikkek, publikációk archívumainak szabványa. Ingyenes szoftvert fejlesztettek ki, amellyel elosztott rendszerű archívumokat kezelhetnek. Az Open Archive Initiative protokollját használja, és DC alapú a metaadatkezelése.

És végül egy magyar alkalmazás a TEI-Lite alapján

A Magyar Elektronikus Könyvtár (MEK) részére készült, magyar nyelvű dokumentációval, a TEI-Lite elemkészletéből kiválogatva a MEK számára relevánsokat. A próza, vers, dráma és cikk DTD-jének elkülönítése nem technikai szükségszerűség, a feldolgozást végző emberek számára így áttekinthetőbb az elemek rendszere.

FORRÁSOK

A HTML leírása a Word Wide Web Consortium webhelyén belül: http://www.w3.org/TR/html401/

Az XML leírása a Word Wide Web Consortium webhelyén belül: http://www.w3.org/xml

OWL: Web Ontology Language Overview http://www.w3.org/TR/2004/REC-owl-features-20040210/

DocBook.org: http://www.docbook.org

Text Encoding Initiative TEI Lite: http://www.tei-c.org/Lite

Open eBook Forum: http://www.openebook.org

EPrints.org - Self-Archiving and Open Access (OA) Eprint Archives http://www.eprints.org/

Az Open Archive Initiative : http://www.openarchives.org

DTD-k és metaadatkezelés a Magyar Elektronikus Könyvtárban: http://mek.oszk.hu/html/irattar/dtd.htm, http://www.dublincore.org

Függelék

A szövegrészek típusainak listája a Magyar Elektronikus Könyvtár által használt DTD-ben.

Próza esetén:

Rész PART

Fejezet CHAPTER

Dráma esetén:

Felvonás ACT

Szín SCENE

Színpadkép SETTING

Cikk esetén:

Ajánlás RECOMMENDATION

Összefoglaló ABSTRACT

Szakasz PASSAGE

Irodalomjegyzék BIBLIOGRAPHY

Minden dokumentumtípusnál:

Előszó FOREWORD

Köszönetnyilvánítás ACKNOWLEDGEMENTS

Tartalomjegyzék CONTENTS

Lábjegyzet FOOTNOTE

Széljegyzet MARGINALIA

Függelék APPENDIX

Glosszárium GLOSSARY

Végjegyzet ENDNOTE

Életrajz BIOGRAPHY

Utószó AFTERWORD

Kolofon COLOPHON

Névmutató NAMEINDEX

Tárgymutató SUBJECTINDEX

Index INDEX