PC Press
O nama
O nama
Pretplata
O nama
Postanite saradnik PC-ja
Kontakt sa redakcijom
PC Press
Novi broj
Novi broj   
Pretrazivanje
Arhiva
Arhiva   
PC Online
PC Plus   
Specijalna izdanja
Softver Softver
PC #88 : April 2003

 Naslovna  Sadržaj 
Dragan Grbić  

Knjige sa sto lica

Saradnici pripreme sadržinu publikacije, a vi u jednom koraku odlučite da li će to biti štampana knjiga, HTML, PDF, CHM ili nešto drugo. Pri tom unapred znate kako će izgledati rezultat. DocBook koncept čini sve to mogućim...

(kliknite za veću sliku)

U ne ta­ko dav­nim da­ni­ma pre elek­tron­skih pro­ce­so­ra tek­sta, bi­lo je uobi­ča­je­no da pi­sac svo­je de­lo pro­sle­di izda­va­ču u obli­ku pa­pir­nog ta­ba­ka. U sa­drža­ju bi sva­ko mo­gao in­tu­itiv­no da odre­di lo­gi­ku struk­tu­re (po­glav­lja, odelj­ci, fu­sno­te, itd.), ali ­tekst sam po se­bi ne bi ni­šta go­vo­rio o po­jav­nom obli­ku tih ele­me­na­ta. Ra­de­ći ne­za­vi­sno od pis­ca, di­zaj­ner bi ra­zvio spe­ci­fi­ka­ci­ju izgle­da knji­ge, a „pre­la­mač“ slo­žio knji­gu po do­go­vo­re­nim odre­dni­ca­ma i u du­hu za­nat­skih pra­vi­la. Si­tu­aci­ja ni­je bi­tno ra­zlič­i­ta ni da­nas, ka­da do­mi­ni­ra elek­tron­ski for­mat: pi­sac mo­že da obli­ku­je šti­vo dok pi­še na ra­u­na­ru, ali kre­ativ­ni pro­ces ne upuć­u­je auto­ra da se ba­vi kraj­njim po­jav­nim obli­kom knji­ge, ni­ti je to nje­gov po­sao. I da­lje sle­di pre­lom, ovaj pu­t u pri­me­re­noj te­hno­lo­gi­ji elek­tron­ske pri­pre­me.

­Stvar se mo­že ubla­ži­ti do­go­vo­re­nim stan­dar­di­ma i pret­pro­ce­si­ra­njem autor­skog ma­te­ri­ja­la. Me­đu­tim, šta se do­ga­đa ako is­ti sa­držaj tre­ba da bu­de objav­ljen kao pa­pir­na knji­ga i kao hi­per­tekst na In­ter­ne­tu? Ili da po­mi­sli­mo na dru­gi kraj pro­ce­sa: šta ako izda­vač odluč­i da pro­me­ni di­zajn ne­ke edi­ci­je?

Mo­guć­i od­go­vor le­ži u pri­pre­mi sa­drži­ne ko­ja sa­drži je­dno­zna­ne odre­dni­ce i za struk­tu­ru i za ­oblik. Pros­ti pri­mer je hi­je­rar­hi­ja na­slo­va u ­tekst-pro­ce­so­ri­ma: ni­voi na­slo­va od­re­đu­ju lo­gi­ku sa­drža­ja i po­jav­ni ob­­lik, a izme­na obli­ka na­slo­va je je­dnos­tav­na. Ali, struk­tu­ru knji­ge ne či­ni sa­mo li­ne­ar­ni sa­držaj: mno­gi ele­men­ti su izmen­lji­vi po po­lo­ža­ju, op­ci­oni po pri­sus­tvu, mo­žda su po­ve­za­ni sa osnov­nim šti­vom (sa­drža­ji, in­dek­si) i njih je po­tre­bno usa­gla­si­ti. Za ta­kve po­tre­be, još osam­de­se­tih go­di­na je ra­zvi­jen kon­cept SGML (Stan­dard Ge­ne­ra­li­zed Mar­kup Lan­gu­age), što je međ­u­na­ro­dni stan­dard ISO 8879 ko­ji de­fi­ni­še pra­vi­la za kre­ira­nje je­zi­ka obe­le­ža­va­nja (mar­kup lan­gu­age) elek­tron­skih tek­sto­va, ne­za­vi­sno od plat­for­me.

SGML je slo­že­na te­hno­lo­gi­ja iz ko­je su izni­kli po­se­bni je­zi­ci uprav­lja­na kon­tek­stom, međ­u ko­ji­ma je naj­po­pu­lar­ni­ji XML (exten­ded mar­kup lan­gu­age). Ko­rak da­lje od pros­te in­ter­pre­ta­ci­je na­la­zi se po­druč­je na­kna­dne obra­de, gde „ma­ši­na za obra­du“ ra­zu­me struk­tu­ru i kon­tekst ma­te­ri­ja­la i po od­go­va­ra­juć­im pra­vi­li­ma pro­i­zvo­di re­zul­tat u ko­me lo­gi­ka sa­drža­ja ni­je na­rušena.

Is­to­ri­ja: otvo­reni kod

Nad ovom osno­vom ra­zvi­jen je pro­je­kat Do­cBo­ok, či­ji za­da­tak je bio da us­ta­no­vi plat­for­mu za je­dno­zna­nu pri­pre­mu, kon­tro­lu i pro­ce­si­ra­nje tek­stu­al­nih sa­drža­ja ko­ji tre­ba da re­zul­tu­ju do­ku­men­ti­ma u ra­znim obli­ci­ma. Po toj ide­ji, cilj­ni do­ku­ment bi mo­rao da oču­va sa­držaj, struk­tu­ru i lo­gi­ku u kon­tek­stu pri­me­ne u bi­lo kom po­jav­nom obli­ku, i to bez po­tre­be da se po­la­zni sa­držaj po­se­bno pri­pre­ma za sva­ki cilj. To znač­i da iz je­dnog is­tog izvo­ra tre­ba do­bi­ti pre­lom­lje­nu knji­gu na pa­pi­ru, HTML, CHM ili PDF sa hi­per­lin­ko­vi­ma, slog ba­ze bi­bli­ote­ke knji­ga itd.

Pro­je­kat je osmi­šljen 1991. go­di­ne kao za­je­dnič­ki na­por la­bo­ra­to­ri­je HaL Com­pu­ter ­Systems i ugle­dne izda­vač­ke kuć­e O’Re­illy & As­so­ci­ates. Prvi re­zul­tat ra­da za­sno­van je na pos­to­jeć­im is­kus­tvi­ma ra­zme­ne UNIX do­ku­men­ta­ci­je u skla­du sa SGML spe­ci­fi­ka­ci­jom. Kon­cept priv­lači ve­ću pa­žnju, a na ­izgled sle­de­će re­vi­zi­je uti­ču i dru­ge za­in­te­re­so­va­ne ­firme.

To­kom 1994. go­di­ne, aso­ci­ja­ci­ja Da­ven­port Gro­up, ko­ja je pre­uze­la ra­zvoj i održa­va­nje pro­jek­ta, pos­ta­je ofi­ci­jel­no te­lo za ko­or­di­na­ci­ju Do­cBo­ok-a. Spe­ci­fi­ka­ci­ja Do­cBo­ok DTD (do­cu­ment type de­cla­ra­ti­on) V3.0 objav­lje­na je u ja­nu­aru 1997, na­kon če­ga je do­šlo do za­sto­ja zbog ras­pra­ve o mo­gu­ćnos­ti­ma uklju­če­nja XML-a u ce­lu prič­u, bu­du­ći da je slo­že­nost kla­sič­nog SGML-a bi­la pri­li­an te­ret u ši­roj pri­me­ni. Sve se zav­rši­lo po­ku­ša­jem spon­zo­ra pro­jek­ta da za­klju­če spe­ci­fi­ka­ci­ju u ne­ka­kvom sta­nju go­to­vos­ti. Re­še­nje je nađ­e­no u pre­se­lje­nju pro­jek­ta pod okri­lje te­hnič­kog ko­mi­te­ta ­OASIS (Or­ga­ni­za­ti­on for the Advan­ce­ment of Stru­ctu­red In­for­ma­ti­on Stan­dards), ko­ji je for­mi­ran u ju­lu 1998. Prvo izda­nje no­ve spe­ci­fi­ka­ci­je Do­cBo­ok V3.1 objav­lje­no je poč­et­kom sle­deć­e go­di­ne. U nas­tav­ku, ču­va­na je kom­pa­ti­bil­nost sa zas­ta­re­lim DTD stan­dar­di­ma, ali se ušlo i u im­ple­men­ta­ci­ju po XML-u. Ak­tu­el­no sta­nje pro­jek­ta je is­ka­za­no u slu­žbe­nim ­OASIS spe­ci­fi­ka­ci­ja­ma Do­cBo­ok SGML V4.1 i Do­cBo­ok XML V4.1.2.

Ka­ko fun­kcioniše

(kliknite za veću sliku)

U prak­tič­nom smi­slu reč­i, Do­cBo­ok je skup spe­ci­fi­ka­ci­ja i ala­ta ko­ji vam omo­gu­ću­ju da kre­ira­te i ču­va­te sa­držinu do­ku­men­ta u obli­ku ne­za­vi­snom od pre­zen­ta­ci­je i ko­ji sa­drži pre­po­zna­tlji­vu lo­gi­ku struk­tu­ru sa­držine. Ko­ri­šće­njem ala­ta i po­se­bnih pra­vi­la de­fi­ni­sa­nih u Do­cBo­ok XSL (XML ­Style Lan­gu­age) ili ­DSSSL (Do­cu­ment ­Style Se­man­tics and Spe­ci­fi­ca­ti­on Lan­gu­age) stra­ni­ca­ma za opis sti­lo­va, mo­že­te tran­sfor­mi­sa­ti, for­ma­ti­ra­ti i pu­bli­ko­va­ti sa­drži­nu u ne­kom od mno­gih po­jav­nih ­oblika.

Ma­te­ri­jal ko­ji se pri­pre­ma kao Do­cBo­ok ima tri klju­čne oso­bi­ne. Ja­sno­ća se odno­si na je­dno­znač­nost ele­men­ta – jes­te li zna­li da pos­to­ji pre­ko 300 mo­gu­ćih ti­po­va odre­dni­ca? Do­cBo­ok opi­su­je sve njih u stro­goj spe­ci­fi­ka­ci­ji re­zer­vi­sa­nih pa­ro­va ozna­ka ko­ji lič­e na pros­ti HTML (na sli­ci 2 pri­ka­zan je upro­šće­ni pri­mer). Dru­ga oso­bi­na je hi­je­rar­hi­ja: ugne­žda­va­njem struk­tu­ra, sva­kom ele­men­tu se mo­že tač­no zna­ti mes­to; par ozna­ka <ti­tle>... </ti­tle> mo­že da se nađ­e kao na­slov knji­ge, po­glav­lja, do­dat­ka, in­dek­sa itd. Sva­ki od tih na­slo­va mo­že ka­sni­je da po­dle­gne dru­gač­i­jem pro­ce­si­ra­nju u za­vi­snos­ti od po­lo­ža­ja u hi­je­rar­hi­ji. Naj­zad, ne­za­vi­snost po­la­znog obli­ka od cilj­nog zna­či da po­la­zno šti­vo pred­stav­lja pros­tu tek­stu­al­nu da­to­te­ku; SGML ­oblik Do­cBo­ok-a mo­že bi­ti u ra­zlič­i­tim ko­dnim ras­po­re­di­ma, dok XML do­ku­men­ti ko­ris­te skup zna­ko­va u pu­nom Uni­co­de ­skupu.

Su­šti­na Do­cBo­ok stan­dar­da je se­man­tič­ko obe­le­ža­va­nje (se­man­tic mar­kup) koj­e mo­že­mo upo­re­di­ti sa HTML ozna­ka­ma za po­de­blja­nje i kur­ziv. Ra­zli­ka je u to­me što se­man­ti­čko obe­le­ža­va­nje re­­­zer­vi­še mo­gu­nost da se ne­ki sa­držaj ka­sni­je vi­zu­el­no for­ma­ti­ra ra­zli­či­to: stra­na reč mo­že bi­ti is­pi­sa­na kur­zi­vom ili dru­gim fon­tom u tek­stu, ali ne i u na­slo­vu ili u za­glav­lju ta­be­le. Do­ku­ment ta­ko pos­ta­je prava ba­za in­for­ma­ci­ja; pro­gra­mi mo­gu da kom­pi­lu­ju, in­ter­pre­ti­ra­ju i ma­ni­pu­li­šu do­ku­men­ti­ma na ra­zne ­načine.

Knji­ga ne mo­ra bi­ti je­dna po­la­zna da­to­te­ka, ne­go to mo­že bi­ti skup da­to­te­ka-ele­me­na­ta ni­žeg ni­voa. Ele­men­ti se opi­su­ju u spolj­nim ta­be­la­ma opi­sa – ka­ta­lo­zi­ma, na osno­vu po­se­bnih iden­ti­fi­ka­to­ra, po­ve­zu­ju­ći in­ter­ne ili ek­ster­ne en­ti­te­te ko­ji či­ne knji­gu. Na­jop­šti­ji en­ti­tet je skup ko­ji či­ni vi­še knji­ga (npr. edi­ci­ja ili kom­plet); knji­ga je prvi ni­ži ni­vo, a ona mo­že bi­ti po­de­lje­na na vo­lu­me­ne (to­mo­ve); ni­ži ni­voi su po­glav­lja i sek­ci­je. Unu­tra­šnji ele­men­ti su me­ta-in­for­ma­ci­je (opi­si), blok-in­for­ma­ci­je (pa­su­si, sli­ke, fu­sno­te, za­glav­lja...) i ele­men­ti u li­ni­ji, što su naj­ma­nje „čes­ti­ce“ Do­cBo­ok-a. Ka­ta­log mo­že bi­ti pro­men­ljiv, pa se iz je­dnog po­la­znog sa­drža­ja mo­gu izves­ti ra­zni re­zul­ta­ti.

Klju­čna mo­gu­nost SGML/XML obe­le­ža­va­nja je va­li­da­ci­ja sa­drža­ja. Struk­tu­ra pri­prem­lje­ne knji­ge naj­pre mo­ra da za­do­vo­lji se­man­ti­ku de­fi­ni­sa­nu u DTD re­čni­ci­ma. Dru­gi sloj pro­ve­re odno­si se na za­do­vo­lje­nje for­ma­ta na osno­vu stra­ni­ca za opis sti­lo­va. U sva­kom Do­cBo­ok sis­te­mu ko­ji ne po­dra­zu­me­va ­WYSIWYG pi­sa­nje, alat­ka za par­si­ra­nje či­ni klju­čno oruđ­e; s ob­zi­rom na slo­že­nost SGML-a, par­si­ra­nje sa va­li­da­ci­jom je nu­žno. Pos­to­je XML par­se­ri ko­ji sa­mo pro­ve­ra­va­ju struk­tu­ru, a ne i va­li­da­ci­ju; sa­držaj ko­ji ne za­do­vo­lja­va DTD u pot­pu­nos­ti ne mo­že da no­si epi­tet ­DocBook.

Sle­di kri­tič­ni ko­rak pre­tva­ra­nja po­la­znog ma­te­ri­ja­la u pa­pir­ni ili elek­tron­ski ­oblik. Ope­ra­tiv­no, ovaj pro­ces zna­či pro­ce­si­ra­nje i/ili kom­pi­la­ci­ju SGML/XML sa­drža­ja ne­kim ala­tom, uz fil­tri­ra­nje i pro­me­nu izgle­da na osno­vu de­fi­ni­ci­ja sti­la. Pos­to­ji ne­ko­li­ko stan­dar­da za pri­pre­mu de­fi­ni­ci­ja sti­la, ra­zlič­i­tih po im­ple­men­ta­ci­ji. Po­red po­me­nu­tih me­to­do­lo­gi­ja XSL i ­DSSSL, ši­re su ras­pros­tra­nje­na još dva „je­zi­ka sti­lo­va“. FO­SI (For­mat­ting Out­put Spe­ci­fi­ca­ti­on In­stan­ces) je sta­ri­ji stan­dard ame­rič­kog Mi­nis­tar­stva od­bra­ne, ko­ji je zbog svo­je ja­sno­će pos­tao i ši­re pri­hva­ćen u prak­si. CSS (­Class StyleS­he­ets) je W3C stan­dard prvo­bi­tno ra­zvi­jen kao je­zik opi­sa HTML stra­ni­ce, a pri­hvać­en je i kao pri­ro­dno pro­ši­re­nje za op­štu pri­me­nu u XML-u.

Prak­sa i ­iskustva

Stro­gost struk­tur­nog pi­sa­nja, ka­ko je po­pu­lar­no na­zvan pro­ces pi­sa­nja po Do­cBo­ok spe­ci­fi­ka­ci­ji, kri­je i ne­ke pro­ble­me. Naj­va­žni­ji je po­tre­ba za pro­me­nom u kre­ativ­nom pro­ce­su: pi­sa­nje struk­tu­ira­nih do­ku­me­na­ta je bi­tno dru­ga­či­je od pri­me­ne ­tekst-pro­ce­so­ra, a pre­la­zak sa je­dnog na dru­gi vid pi­sa­nja ni­je je­dnos­ta­van. Auto­ri ne vo­le da me­nja­ju na­vi­ke, pa za­htev izda­vač­a za pre­da­jom si­ro­vog ma­te­ri­ja­la u struk­tu­ira­nom obli­ku do­živ­lja­va­ju kao ogra­nič­a­va­nje u kre­ativ­nom pro­ce­su. Ali, po­sle fir­me O’Re­illy, i dru­gi izda­va­či su kre­nu­li ovim pu­tem u te­žnji da sma­nje tro­ško­ve izda­va­štva.

Dru­gi mo­guć­i pr­obl­em pred­stav­lja lo­ša flek­si­bil­nost pri pro­me­ni izgle­da: po­što je se­man­ti­ka ra­zdvo­je­na od pre­zen­ta­ci­je sa­­drža­ja, tre­ba ra­zvi­ti stra­ni­ce za opis sti­lo­va i struk­tu­re za skla­pa­nje sa­drža­ja. Kre­ira­nje tih stra­ni­ca je po­se­bna ve­šti­na i mno­gi auto­ri ne na­la­ze za sho­dno da je sav­la­da­ju. Naj­zad, ako se ra­di po kla­sič­noj SGML spe­ci­fi­ka­ci­ji, ala­ti za struk­tu­ira­nje su čes­to prili­čno sku­pi; ta­kvo šti­vo se mo­že pi­sa­ti i u pros­tom AS­CII edi­to­ru, ali SGML je ve­oma slo­žen i ma­lo je onih ko­ji­ma uop­šte pa­da na pa­met da ga uče. Sve ši­ra po­pu­lar­nost XML-a već re­zul­tu­je po­ja­vom je­fti­ni­jih ala­ta za pri­pre­mu Do­cBo­ok sa­drža­ja, pa se stva­ri tu po­pravljaju.

Vre­me­nom se po­ja­vi­la i upro­šće­na spe­ci­fi­ka­ci­ja (Sim­pli­fi­ed Do­c­Bo­ok) sa su­že­nim sku­pom ele­me­na­ta i ozna­ka. Spe­ci­fi­ka­ci­ja je po­go­dna za krać­e pu­bli­ka­ci­je, ali ne i za opsežnije knji­ge. Upro­šća­va­nje je mač sa dve oštri­ce, jer i da­lje os­ta­je po­tre­ba za oču­va­njem uku­pne struk­tu­re pri pro­ce­si­ra­nju. Uos­ta­lom, i pre­os­ta­le ozna­ke su pri­li­no slo­že­ne u sin­tak­si, pa po­tre­ba za kon­sul­to­va­njem do­ku­men­ta­ci­je prak­tič­no ni­je ­manja.

Uči­nje­ni su zna­tni na­po­ri u una­pređ­e­nju er­go­no­mi­je ko­ri­šće­nja Do­cBo­ok spe­ci­fi­ka­ci­je. Po­ja­vi­li su se ala­ti za rad u gra­fi­kom ­WYSIWYG okru­že­nju ko­ji olak­ša­va­ju pi­sa­nje, par­si­ra­nje i izra­du izve­de­nih obli­ka do­ku­me­na­ta i knji­ga. Ne­ki od njih su ko­mer­ci­jal­ni, a ne­ki bes­pla­tni, što za­vi­si od cilj­ne plat­for­me i kva­li­te­ta ala­ta. Naj­po­pu­lar­ni­ji ko­mer­ci­jal­ni pro­gram je Do­cPro, skup ala­ta za Li­nux plat­for­mu ko­ji omo­gu­ća­va pi­sa­nje i pro­ce­si­ra­nje Do­cBo­ok sa­drža­ja u SGML i XML for­ma­tu. Po­ja­vi­lo se već ne­ko­li­ko ša­blo­na za pri­pre­mu Do­cBo­ok sa­drža­ja u pa­ke­tu Ope­nO­ffi­ce.Org, a YAWC je VBA add-in ko­ji ugra­đu­je te mo­guć­nos­ti u Mi­cro­soft Word. Ne za­bo­ra­vi­te ni to da će sko­rim izlas­kom „­prvog pra­vog“ XML Mi­cro­soft ­WYSIWYG ala­ta za ma­ni­pu­la­ci­ju XML-om In­fo­Path (ra­dni na­ziv pro­gra­ma je bio ­XDocs, o ko­me smo pi­sa­li u „PC #85“), do­ći do no­vog pro­bo­ja pri­me­ne XML-a u prak­si; kon­cept Do­cBo­ok će na­ći svo­je mes­to i na ovom po­lju. U međ­uv­re­me­nu, pos­to­je i pret­pro­ce­so­ri ko­ji će do­ku­ment u for­ma­tu Word-a i u skla­du sa tip­skim ša­blo­ni­ma pre­tvo­ri­ti u Do­cBo­ok ­sadržaj.

Do­cBo­ok je pri­mer ko­ji po­ka­zu­je ka­ko izgle­da sav­re­me­ni pro­ces pre­ras­ta­nja ide­je u re­zul­tat: reč je o zbi­lja za­nim­lji­vom prav­cu ra­zvo­ja elek­tron­skog izda­va­štva či­ja po­pu­lar­nost opet ras­te, po­sle ne­ko­li­ko go­di­na sta­gna­ci­je. Tek do­la­zi do­ba ka­da e Do­cBo­ok pos­ta­ti op­šte­pri­hvać­en, pa ma­kar i kao im­pli­ci­tni stan­dard, če­mu će do­pri­ne­ti sve je­fti­ni­ji vi­zu­el­ni ala­ti. Pri­pre­ma do­ku­me­na­ta u ne­ko­li­ko po­jav­nih obli­ka is­tov­re­me­no vi­še neć­e bi­ti ne­mo­guć­a mi­si­ja. Do­šla su vre­me­na da izda­va­štvo vi­še ne bu­de „sve­ta kra­va“ pri­me­nje­nog rač­u­narstva.