| (kliknite za veću sliku) |
U ne tako davnim danima pre elektronskih procesora teksta, bilo je uobičajeno da pisac svoje delo prosledi izdavaču u obliku papirnog tabaka. U sadržaju bi svako mogao intuitivno da odredi logiku strukture (poglavlja, odeljci, fusnote, itd.), ali tekst sam po sebi ne bi ništa govorio o pojavnom obliku tih elemenata. Radeći nezavisno od pisca, dizajner bi razvio specifikaciju izgleda knjige, a „prelamač“ složio knjigu po dogovorenim odrednicama i u duhu zanatskih pravila. Situacija nije bitno različita ni danas, kada dominira elektronski format: pisac može da oblikuje štivo dok piše na raunaru, ali kreativni proces ne upućuje autora da se bavi krajnjim pojavnim oblikom knjige, niti je to njegov posao. I dalje sledi prelom, ovaj put u primerenoj tehnologiji elektronske pripreme.
Stvar se može ublažiti dogovorenim standardima i pretprocesiranjem autorskog materijala. Međutim, šta se događa ako isti sadržaj treba da bude objavljen kao papirna knjiga i kao hipertekst na Internetu? Ili da pomislimo na drugi kraj procesa: šta ako izdavač odluči da promeni dizajn neke edicije?
Mogući odgovor leži u pripremi sadržine koja sadrži jednoznane odrednice i za strukturu i za oblik. Prosti primer je hijerarhija naslova u tekst-procesorima: nivoi naslova određuju logiku sadržaja i pojavni oblik, a izmena oblika naslova je jednostavna. Ali, strukturu knjige ne čini samo linearni sadržaj: mnogi elementi su izmenljivi po položaju, opcioni po prisustvu, možda su povezani sa osnovnim štivom (sadržaji, indeksi) i njih je potrebno usaglasiti. Za takve potrebe, još osamdesetih godina je razvijen koncept SGML (Standard Generalized Markup Language), što je međunarodni standard ISO 8879 koji definiše pravila za kreiranje jezika obeležavanja (markup language) elektronskih tekstova, nezavisno od platforme.
SGML je složena tehnologija iz koje su iznikli posebni jezici upravljana kontekstom, među kojima je najpopularniji XML (extended markup language). Korak dalje od proste interpretacije nalazi se područje naknadne obrade, gde „mašina za obradu“ razume strukturu i kontekst materijala i po odgovarajućim pravilima proizvodi rezultat u kome logika sadržaja nije narušena.
Istorija: otvoreni kod
Nad ovom osnovom razvijen je projekat DocBook, čiji zadatak je bio da ustanovi platformu za jednoznanu pripremu, kontrolu i procesiranje tekstualnih sadržaja koji treba da rezultuju dokumentima u raznim oblicima. Po toj ideji, ciljni dokument bi morao da očuva sadržaj, strukturu i logiku u kontekstu primene u bilo kom pojavnom obliku, i to bez potrebe da se polazni sadržaj posebno priprema za svaki cilj. To znači da iz jednog istog izvora treba dobiti prelomljenu knjigu na papiru, HTML, CHM ili PDF sa hiperlinkovima, slog baze biblioteke knjiga itd.
Projekat je osmišljen 1991. godine kao zajednički napor laboratorije HaL Computer Systems i ugledne izdavačke kuće O’Reilly & Associates. Prvi rezultat rada zasnovan je na postojećim iskustvima razmene UNIX dokumentacije u skladu sa SGML specifikacijom. Koncept privlači veću pažnju, a na izgled sledeće revizije utiču i druge zainteresovane firme.
Tokom 1994. godine, asocijacija Davenport Group, koja je preuzela razvoj i održavanje projekta, postaje oficijelno telo za koordinaciju DocBook-a. Specifikacija DocBook DTD (document type declaration) V3.0 objavljena je u januaru 1997, nakon čega je došlo do zastoja zbog rasprave o mogućnostima uključenja XML-a u celu priču, budući da je složenost klasičnog SGML-a bila prilian teret u široj primeni. Sve se završilo pokušajem sponzora projekta da zaključe specifikaciju u nekakvom stanju gotovosti. Rešenje je nađeno u preseljenju projekta pod okrilje tehničkog komiteta OASIS (Organization for the Advancement of Structured Information Standards), koji je formiran u julu 1998. Prvo izdanje nove specifikacije DocBook V3.1 objavljeno je početkom sledeće godine. U nastavku, čuvana je kompatibilnost sa zastarelim DTD standardima, ali se ušlo i u implementaciju po XML-u. Aktuelno stanje projekta je iskazano u službenim OASIS specifikacijama DocBook SGML V4.1 i DocBook XML V4.1.2.
Kako funkcioniše
| (kliknite za veću sliku) |
U praktičnom smislu reči, DocBook je skup specifikacija i alata koji vam omogućuju da kreirate i čuvate sadržinu dokumenta u obliku nezavisnom od prezentacije i koji sadrži prepoznatljivu logiku strukturu sadržine. Korišćenjem alata i posebnih pravila definisanih u DocBook XSL (XML Style Language) ili DSSSL (Document Style Semantics and Specification Language) stranicama za opis stilova, možete transformisati, formatirati i publikovati sadržinu u nekom od mnogih pojavnih oblika.
Materijal koji se priprema kao DocBook ima tri ključne osobine. Jasnoća se odnosi na jednoznačnost elementa – jeste li znali da postoji preko 300 mogućih tipova odrednica? DocBook opisuje sve njih u strogoj specifikaciji rezervisanih parova oznaka koji liče na prosti HTML (na slici 2 prikazan je uprošćeni primer). Druga osobina je hijerarhija: ugneždavanjem struktura, svakom elementu se može tačno znati mesto; par oznaka <title>... </title> može da se nađe kao naslov knjige, poglavlja, dodatka, indeksa itd. Svaki od tih naslova može kasnije da podlegne drugačijem procesiranju u zavisnosti od položaja u hijerarhiji. Najzad, nezavisnost polaznog oblika od ciljnog znači da polazno štivo predstavlja prostu tekstualnu datoteku; SGML oblik DocBook-a može biti u različitim kodnim rasporedima, dok XML dokumenti koriste skup znakova u punom Unicode skupu.
Suština DocBook standarda je semantičko obeležavanje (semantic markup) koje možemo uporediti sa HTML oznakama za podebljanje i kurziv. Razlika je u tome što semantičko obeležavanje rezerviše mogunost da se neki sadržaj kasnije vizuelno formatira različito: strana reč može biti ispisana kurzivom ili drugim fontom u tekstu, ali ne i u naslovu ili u zaglavlju tabele. Dokument tako postaje prava baza informacija; programi mogu da kompiluju, interpretiraju i manipulišu dokumentima na razne načine.
Knjiga ne mora biti jedna polazna datoteka, nego to može biti skup datoteka-elemenata nižeg nivoa. Elementi se opisuju u spoljnim tabelama opisa – katalozima, na osnovu posebnih identifikatora, povezujući interne ili eksterne entitete koji čine knjigu. Najopštiji entitet je skup koji čini više knjiga (npr. edicija ili komplet); knjiga je prvi niži nivo, a ona može biti podeljena na volumene (tomove); niži nivoi su poglavlja i sekcije. Unutrašnji elementi su meta-informacije (opisi), blok-informacije (pasusi, slike, fusnote, zaglavlja...) i elementi u liniji, što su najmanje „čestice“ DocBook-a. Katalog može biti promenljiv, pa se iz jednog polaznog sadržaja mogu izvesti razni rezultati.
Ključna mogunost SGML/XML obeležavanja je validacija sadržaja. Struktura pripremljene knjige najpre mora da zadovolji semantiku definisanu u DTD rečnicima. Drugi sloj provere odnosi se na zadovoljenje formata na osnovu stranica za opis stilova. U svakom DocBook sistemu koji ne podrazumeva WYSIWYG pisanje, alatka za parsiranje čini ključno oruđe; s obzirom na složenost SGML-a, parsiranje sa validacijom je nužno. Postoje XML parseri koji samo proveravaju strukturu, a ne i validaciju; sadržaj koji ne zadovoljava DTD u potpunosti ne može da nosi epitet DocBook.
Sledi kritični korak pretvaranja polaznog materijala u papirni ili elektronski oblik. Operativno, ovaj proces znači procesiranje i/ili kompilaciju SGML/XML sadržaja nekim alatom, uz filtriranje i promenu izgleda na osnovu definicija stila. Postoji nekoliko standarda za pripremu definicija stila, različitih po implementaciji. Pored pomenutih metodologija XSL i DSSSL, šire su rasprostranjena još dva „jezika stilova“. FOSI (Formatting Output Specification Instances) je stariji standard američkog Ministarstva odbrane, koji je zbog svoje jasnoće postao i šire prihvaćen u praksi. CSS (Class StyleSheets) je W3C standard prvobitno razvijen kao jezik opisa HTML stranice, a prihvaćen je i kao prirodno proširenje za opštu primenu u XML-u.
Praksa i iskustva
Strogost strukturnog pisanja, kako je popularno nazvan proces pisanja po DocBook specifikaciji, krije i neke probleme. Najvažniji je potreba za promenom u kreativnom procesu: pisanje struktuiranih dokumenata je bitno drugačije od primene tekst-procesora, a prelazak sa jednog na drugi vid pisanja nije jednostavan. Autori ne vole da menjaju navike, pa zahtev izdavača za predajom sirovog materijala u struktuiranom obliku doživljavaju kao ograničavanje u kreativnom procesu. Ali, posle firme O’Reilly, i drugi izdavači su krenuli ovim putem u težnji da smanje troškove izdavaštva.
Drugi mogući problem predstavlja loša fleksibilnost pri promeni izgleda: pošto je semantika razdvojena od prezentacije sadržaja, treba razviti stranice za opis stilova i strukture za sklapanje sadržaja. Kreiranje tih stranica je posebna veština i mnogi autori ne nalaze za shodno da je savladaju. Najzad, ako se radi po klasičnoj SGML specifikaciji, alati za struktuiranje su često prilično skupi; takvo štivo se može pisati i u prostom ASCII editoru, ali SGML je veoma složen i malo je onih kojima uopšte pada na pamet da ga uče. Sve šira popularnost XML-a već rezultuje pojavom jeftinijih alata za pripremu DocBook sadržaja, pa se stvari tu popravljaju.
Vremenom se pojavila i uprošćena specifikacija (Simplified DocBook) sa suženim skupom elemenata i oznaka. Specifikacija je pogodna za kraće publikacije, ali ne i za opsežnije knjige. Uprošćavanje je mač sa dve oštrice, jer i dalje ostaje potreba za očuvanjem ukupne strukture pri procesiranju. Uostalom, i preostale oznake su prilino složene u sintaksi, pa potreba za konsultovanjem dokumentacije praktično nije manja.
Učinjeni su znatni napori u unapređenju ergonomije korišćenja DocBook specifikacije. Pojavili su se alati za rad u grafikom WYSIWYG okruženju koji olakšavaju pisanje, parsiranje i izradu izvedenih oblika dokumenata i knjiga. Neki od njih su komercijalni, a neki besplatni, što zavisi od ciljne platforme i kvaliteta alata. Najpopularniji komercijalni program je DocPro, skup alata za Linux platformu koji omogućava pisanje i procesiranje DocBook sadržaja u SGML i XML formatu. Pojavilo se već nekoliko šablona za pripremu DocBook sadržaja u paketu OpenOffice.Org, a YAWC je VBA add-in koji ugrađuje te mogućnosti u Microsoft Word. Ne zaboravite ni to da će skorim izlaskom „prvog pravog“ XML Microsoft WYSIWYG alata za manipulaciju XML-om InfoPath (radni naziv programa je bio XDocs, o kome smo pisali u „PC #85“), doći do novog proboja primene XML-a u praksi; koncept DocBook će naći svoje mesto i na ovom polju. U međuvremenu, postoje i pretprocesori koji će dokument u formatu Word-a i u skladu sa tipskim šablonima pretvoriti u DocBook sadržaj.
DocBook je primer koji pokazuje kako izgleda savremeni proces prerastanja ideje u rezultat: reč je o zbilja zanimljivom pravcu razvoja elektronskog izdavaštva čija popularnost opet raste, posle nekoliko godina stagnacije. Tek dolazi doba kada e DocBook postati opšteprihvaćen, pa makar i kao implicitni standard, čemu će doprineti sve jeftiniji vizuelni alati. Priprema dokumenata u nekoliko pojavnih oblika istovremeno više neće biti nemoguća misija. Došla su vremena da izdavaštvo više ne bude „sveta krava“ primenjenog računarstva.
|