SGML - avain informaation hallintaan?

20.4.1999

Tuomas Maisala

Sähkö- ja tietoliikennetekniikan osasto

Teknillinen Korkeakoulu

Tuomas.Maisala@iki.fi

Tiivistelmä

Monimuotoinen laitekanta ja eri järjestelmäversiot vaikeuttavat yhä lisääntyvän informaation hallitsemista. Avuksi on kehitetty yleisiä esitystapakieliä. Näistä tunnetuin on Standard Generalized Markup Language. SGML on standardi laite- ja järjestelmäriippumattomien menetelmien määrittelemiseksi tekstin esittämiseen sähköisessä muodossa. Huolimatta hyvistä ominaisuuksista SGML:n käyttö ei ole kovin yleistä.


Johdanto

Tiedon määrä maailmassa lisääntyy huimaa vauhtia. Tietotekniikka ja elektroniset dokumentit ovat tuoneet selviä etuja tiedon tallentamiseen. Yritykset, organisaatiot ja tutkimuslaitokset käyttävät erilaisia sovelluksia dokumenttien tuottamiseen ja käsittelemiseen, ja niitä kertyy suuria määriä eri tallennusmuodoissa. Eri järjestelmien yhteensopimattomuus, tietyn tallennusmuodon laitesidonnaisuus ja dokumenttien sisältöön kohdistuvien hakutekniikoiden moninaisuus tekevät informaation hallitsemisen vaikeaksi ja monimutkaiseksi. Kuitenkin elektronisten dokumenttien sisällön, informaation, arvo on yleensä suurempi kuin järjestelmien, joilla dokumentteja tuotetaan ja käsitellään. Tämän hallintaympäristön kehittämiseen ja selkiyttämiseen on selkeä tarve.

Nykyisillä tekstinkäsittelyjärjestelmillä informaation hallinnassa ilmenee muun muassa seuraavia ongelmia:

Monimuotoisen laitekannan ja eri järjestelmäversioiden mahdollistamiseksi on kehitetty yleisiä esitystapakieliä, Generalized Markup Languages. Näistä tunnetuin on Standard Generalized Markup Language. SGML on standardi laite- ja järjestelmäriippumattomien menetelmien määrittelemiseksi tekstin esittämiseen sähköisessä muodossa [2]. Vaikka ISO:n standardi on jo vuodelta 1986, SGML ei ole levinnyt laajamittaiseen käyttöön lukuunottamatta www:ssä käytettyä HTML:ää, HyperText Markup Languagea, joka on määritelty SGML:llä. Tähän on vaikuttanut sekä sopivien työkalujen puute että standardin laajuus. SGML ja rakenteisten dokumenttien käsite on säilynyt monelle vieraana, vaikka HTML-kieli olisikin tuttu.

Rakenteiset dokumentit

Elektroninen teksti voidaan määritellä tietokoneeseen tallennetuksi tekstiksi. Elektroninen dokumentti on kokonaisuus, joka muodostuu elektronisesta tekstistä ja jota voidaan käsitellä kokonaisuutena. Rakenteinen dokumetti on dokumentti, johon liittyy tietokoneen tulkittavissa oleva rakennemäärittely. [3]

Dokumenttien rakennetta on kuvattu jo ennen tietokoneita. Esimerkiksi toimittajat ovat merkinneet latojille käsikirjoitukseen ohjeita, miten otsikot ja kappeleet pitäisi esittää. Tekstiä on merkattu erilaisilla symboleilla. Alleviivaus on voinut takoittaa lihavointia, aaltoviiva kursivointia ja ympyröity numero kirjaisimen pistekokoa. Merkintätapa on siis ollut dokumentin ulkoasua kuvaava ja sille on ollut vallitsevia käytäntöjä, mutta usein tarkka muoto on ollut vain käyttäjien yhteisesti sopima.

Tietokoneiden yleistyttyä käyttöön on tullut erilaisia tekstinkäsittelyohjelmia. Ne tallentavat dokumentin tiedon lisäksi elektroniseen dokumenttiin teksti- tai binäärimuotoisena koodauksen dokumentin muodosta ja ulkoasusta. Koodaus ei yleensä ole helposti ihmisen tulkittavissa. Tällainen merkintätapa on sidoksissa käytettyyn ohjelmaan ja on sille spesifistinen [1].

Yleiset dokumenttien esitystapakielet, Generalized Markup Languages, ovat järjestelmäriippumattomia ja vahvoja työkaluja dokumenttien määrittämiseen ja esittämiseen. Niiden perusominaisuus on, että dokumentin rakenteen ja ulkoasun kuvaus on erotettu toisistaan. Kuvaus on yleensä melko helposti ihmisen tulkittavissa ilman erityistä ohjelmistoa, kuten esimerkiksi HTML-muotoinen tekstidokumentti.

SGML esitystapakielenä

SGML sisältää välineet dokumenttityyppien kuvaamiseen. Kutakin dokumenttityyppiä vastaa kieli, jolla dokumentti kirjoitetaan. SGML on siten metakieli, jonka avulla määritetään dokumentin looginen rakenne. SGML ei siis määrittele minkään dokumentin rakennetta, vaan käyttäjien päätettävänä on, millaista rakennetta he pitävät loogisena, hierarkkisena rakenteena.

SGML perustuu tekstin loogiseen merkkaamiseen. Dokumentin sisältämät rakenteet, elementit, osoitetaan tunnisteilla eli tageilla. Alku- ja lopputunnisteiden merkintätapaa ei ole määrätty standardissa. Tyypillisin tapa on HTML:ssäkin käytetty merkintä: <a>...</a> [3]. Elementin sisältö koostuu muista elementeistä tai tekstistä. Elementin sisältö voi olla myös tyhjä, esimerkiksi HTML:n viivaelementti (<hr>) ei sisällä tekstiä eikä lopputagia. Dokumentin rakenne (syntaksi) kuvataan dokumenttityyppimäärittelyssä, Document Type Defitionissa eli DTD:ssä. Esimerkiksi HTML 3.2 DTD on eräs hypertekstidokumenttien tuottamiseen tarkoitettu tyyppimäärittely. Rakenteiden sisällöllinen merkitys kuvataan erikseen kommentteina DTD:ssä tai erillisenä tekstidokumenttina. Rakenteen lisäksi dokumenttityyppimäärittelyssä kuvataan merkkivalikoima (charset), joka on yleensä ISO Latin 1 [4], elementtejä kuvaavat attribuutit ja entiteetit. Elementin attribuutti voi olla esimerkiksi leveyttä kuvaava, kuten <hr width="50%">. Kielessä olevat entiteetit ovat yksinkertaisia makrojen tapaisia rakenteita. Tyypillisesti makron kutsu alkaa '&'-merkillä ja päättyy ';'-merkkiin. HTML:ssä entiteettejä käytetään erikoismerkkien esittämiseen ja tulkittaessa entiteetti korvataan kyseisen merkin koodiarvolla. Entiteettejä voidaan käyttää muihinkin määrittelyihin, esimerkiksi jonkin yrityksen omissa dokumenteissa voitaisiin yrityksen keskuksen puhelinnumero esittää entiteettinä &puhnro;. Tällöin numeron muuttuessa riittäisi, että numero korjataan DTD:hen.

Dokumentointiprosessi

Uuteen ympäristöön SGML:ää sovellettaessa prosessi alkaa dokumenttityyppimäärittelyn laatimisella [3]. Perusteellisella analysoinnilla määritetään dokumenttien rakenne. Tässä vaiheessa on esimerkiksi päätettävä, onko jokin elementti pakollinen vai onko se vaihtoehtoinen jonkin toisen elementin kanssa. Mitä tarkemmin rakenne määrittää erilaisten elementtien esiintyminen, sitä paremmin voidaan kontrolloida dokumenttien muotoa. Esimerkkinä löysästä määrittelystä toimii HTML, jossa eri elementtejä voi olla hyvin vapaasti ja hyväksyttävien dokumenttien kirjo on todella laaja. Tiukka määrittely voisi olla esimerkiksi lakitekstin rakenten kuvaus: lain numeroa seuraa nimi ja antopäivämäärä, johdantolauseet, joiden jälkeen osia, lukuja ja pykäliä momentteineen, allekirjottajat sekä mahdolliset liitteet.

Prosessin toinen vaihe on rakenteisen sisällön tuottaminen. Tämä voi tapahtua kirjoittamalla dokumentti

Toisen vaihen tuloksena syntyy DTD:n mukaisia SGML-dokumentteja. [3]

Prosessin viimeinen vaihe on erilaisten ulkoasumääritysten liittäminen dokumentteihin. SGML-standardin mukaisessa dokumentissa ei ole ulkoasua ja dokumentin sisältöä ole sidottu toisiinsa. Ulkoasumuunnoksilla voidaan samasta SGML-dokumentista tuottaa esimerkiksi paperituloste, verkkojulkaisu tai CD-ROM [3]. Ulkoasun määrittelemiseen on omia standardeja, kuten HTML:n yhteydessä käytettävät CSS ja DSSSL. Kaikissa HTML:n määrittelyissä ei ole pidetty kiinni ulkoasun ja sisällön erottamisesta, vaan nykyisin HTML:stä löytyy muun muassa tunniste fontin tyypin ja värin määrittämiseen [5].

SGML:n hyötyjä

Rakennemäärittelyn käyttäminen lisää tekstin monikäyttöisyyttä. Yhdestä asiakirjasta voidaan tuottaa erilaisia versioita. Esimerkiksi paperiversiosta voidaan jättää animaatioelementit pois tai verkkoversioon koostaa sisällysluettelo esittämällä pelkät otsikkotasot linkkeinä vastaaviin kohtiin kokonaista dokumenttia. Ulkoasu voidaan sovittaa erikseen, jolloin sisällön tuottajan ei tarvitse keskittyä siihen.

Laite- ja sovellusriippumattomuus tukee tiedon pitkäaikaista säilytystä, mitä tarvitaan erityisesti julkishallinnon puolella. Uusien word-dokumenttien avaaminen ei välttämättä onnistu muutaman vuoden vanhalla Wordin versiolla. Kuitenkin esimreksiksi nykyisessä Suomen laissa vanhimmat lainkohdat ovat viime vuosisadalta. SGML-muotoiset dokumentit ovat helposti siirrettävissä eri laitteistoille, sillä esimerkiksi tekstin merkkaukseen voidaan käyttää muitakin kuin <- ja >-merkkejä.

Tiedon hallitsemiseen SGML tuo useita etuja. Esimerkiksi erilaisten tuotespesifikaatioiden tallentamisella SGML-muotoon saavutetaan selviä etuja tiedon hallitsemisessa. Kunnollisen analysoinnin pohjalta syntyneen DTD:n mukaisissa dokumenteissa on sovitun rakenteen mukainen sisältö. Kun rakenteen vastaisten dokumentien tallentaminen ja käsitteleminen on estetty, voidaan varmistua, että tarpeellinen tieto on mukana dokumenteissa. Tiedon etsiminen voidaan tehdä tehokkaammin, kun voidaan kohdistaa haku haluttuihin rakenneosiin. Lisäksi elementtien attribuutteihin voidaan tallentaa esimerkiksi päivämäärä muodossa "19990414", vaikka elementin sisällä se esitettäisiinkin merkkijonona "14. huhtikuuta 1999" tai "14.4.1999". Tällöin haku voidaan kohdistaa tietylle aikavälille.

Elektronisen tekstin tekijänoikeuskysymykset ovat usein epäselviä. SGML:ssä sisältö ja ulkoasu on erotettu toisistaan, jolloin esimerkiksi typografiatietojen tekijänoikeus voi olla eri osapuolella kuin asiatietojen tekijänoikeus [3].

Tulevaisuus

Ennen tuhotakseen tietoa piti polttaa kirjasto maan tasalle. Nyt riittää, että päivittää tekstinkäsittelyohjelman uudempaan versioon. Tosiasia on, että julkaisukäytön lisäksi SGML:stä löytyisi potentiaalia laajemmin tiedon hallintaan ja vaihtamiseen. Tämä on tiedostettu, mutta silti SGML:ää on vaivannut "Sounds Great, Maybe Later" -ajattelu. [6]

Nykyisen www:n ongelmat ilmenevät hyvin nopeasti, kun yrittää hakea esimerkiksi Altavistalla tai jollain muulla yleisellä hakukoneella tietoa vaikkapa Interrail-matkoista. Tuhansien osumien joukosta on toivottaman vaikeaa löytää kaipaamaansa tietoa. Vaikka onnistuisikin rajoittamaan osumia tarkennetuilla hakuehdoilla, voi tähän iteratiiviseen prosessiin kulua runsaasti aikaa. Yahoo eli eräs suosituimmista portaaleista sai alkunsa sivuista, joilla oli linkkejä luokiteltuna eri ryhmiin. Tämä on edelleen Yahoon pääpalvelu ja yritys on kasvanut huimaa vauhtia. Vieläkin huimempaa vauhtia on kasvanut yrityksen osakkeen arvo, joka on kymmenkertaistunut muutamassa vuodessa.

SGML:n yleistymistä on vaivannut standardin monipuolisuus. Raskas standardi ei ole saanut taakseen riittävästi erilaisia ohjelmistoja, eikä sen käyttöönotto tapahdu aivan vaivattomasti. Dokumentointiprosessi on työläs, eivätkä edut ole vielä painaneet tarpeeksi vaakakupissa. Myönteisten käyttökokemuksien levitessä SGML:n käyttö lisääntynee.

XML, joka on tunnetu myös nimellä SGML lite, on kevennetty version SGML:stä. Se ei ole yhtä monipuolinen ja joustava, mutta soveltuu hyvin verkkokäyttöön. XML ei ole vielä kaikilta osin standardoitu, mutta tarjonnee huomattavasti HTML:ää joustavamman tavan tuoda informaatiota tarjolle Internetiin [7]. XML:llä voidaan määrittää nykyinen HTML 4.0, siihen laajennuksia tai kokonaan uusia dokumenttityyppejä. Esimerkkejä uusista kielistä ovat muun muassa WML, Wireless Markup Language, kännyköiden HTML sekä SMIL, Synchronized Multimedia Integration Language, multimedian tuomiseksi verkkoon.

Lyhenteitä

DSSSL Document Style Semantics and Specification Language Standardi SGML-dokumenttien muunnoksille ja esitystyyleille.
DTD Document Type Definition Dokumenttityyppimäärittely. SGML:n mukaisten dokumenttien loogisen rakenteen määritys.
HTML HyperText Markup Language SGML:n sovellus, jota käytetään WWW-sivujen kuvaamiseen.
ISO International Organization for Standardization Kansainvälinen standardointiorganisaatio
RTF Rich Text Format Eräs tiedostomuoto tekstin ja kuvien tallentamiseen
SGML Standard Generalized Markup Language Kansainvälinen standardi ISO 8879 vuodelta 1986 dokumenttien rakenteen määrittelemiseen järjestelmä- ja laitteistoriippumattomasti.
XML eXtensible Markup Language SGML lite, SGML:n kevennetty versio erityisesti Internet-käyttöön
XSL eXtesible Style Language XML:n tyylikieli

Lähdeluettelo

[1] Dennis G. Watson, Brief History of Document Markup, marraskuu 1992, viitattu 20.11.1998
<http://hammock.ifas.ufl.edu/txt/fairs/ae/1824>
[2] C. M. Sperberg-McQueen and Lou Burnard, A Gentle Introduction to SGML, viitattu 20.11.1998
<http://www-tei.uic.edu/orgs/tei/sgml/teip3sg/index.html>
[3] Virpi Lyytikäinen, Tekes, Rakenteisuuden hyödyntäminen elektronisissa dokumenteissa, Teknologiakatsaus 57/98, 84 s., 1998
[4] Jukka Korpela, Hyvin lyhyt johdatus SGML:ään, viitattu 5.4.1999,
<http://www.hut.fi/u/jkorpela/sgml.html>
[5] Jukka Korpela, Lurching toward babel: HTML, CSS, and XML, Internet Watch, July 1998
[6] Erik Naggum, SGML: Erik Naggum's Brief Description, viitattu 20.11.1998,
<http://www.oasis-open.org/cover/naggumWhat.html>
[7] Neil Randall, XML: A Second Chance for Web Markup, viitattu 20.11.1998,
<http://www.zdnet.com/products/content/articles/199710/xml.chance>

Tik-109.300 Tietoliikennearkkitehtuurit, kotitehtävä 15
Tuomas Maisala, 20.4.1999