GradientTop
PC
Vodeći IT časopis u Srbiji
PC #88 > Softver
ARHIVA BROJEVA | O ČASOPISU | POSTANI SARADNIK | PRETRAGA
preview
Knjige sa sto lica
Dragan Grbić
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...
- PC #88 u prodaji po ceni od 110 din
broj

Knjige sa sto lica

(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.

SLEDEĆI TEKST U PC #88
preview
Stanje i Strategija
Zoran Budimlić


.

PC
Twitter Facebook Feed Newsletter