1. ArborText Inc., SGML: Getting Started - A Guide to SGML (Standard Generalized Markup Language) and Its Role in Information Management, 3.7.1998 [viitattu 20.11.1998] <http://www.arbortext.com/wp.html>
2. ArborText Inc., XML for managers - Evaluating SGML vs. XML from a Manager's Perspective, 3.7.1998 [viitattu 20.11.1998] <http://www.arbortext.com/xmlwp.html>
3. Hänninen, Heimo, Dokumentointikonsultti, Software Engineering Group SEC Oy. Haastattelu, Heinäkuu 1997
4. Swedish Defense Materiel Administration, Försvarets Materielverk Grund-DTD 2.0 Introduction, 8.12.1997 [viitattu 20.11.1998] <http://info.admin.kth.se/SGML/Bibliotek/DTDer/FMVGrund-DTD/introduction20.html>
5. US Lynx, SGML 101, 11.7.1996 [viitattu 20.11.1998] <http://www.uslynx.com/sgml101.htm>
Lisätietoja
6. ArborText Inc.: Native vs. Filtered SGML - An ArborText White Paper, 3.7.1998
<http://www.arbortext.com/natifilt.html>
7. Baker, Mark, Omnimark Magazine: The role of OmniMark in content management 14.10.1997 http://www.konstructor.com/magazine/feature/content-mgt.html
8. Forrester, Philippa: SGML/HTML Resource Centre 18.9.1998
<http://www.geocities.com/Athens/2694/sgml.html>
9. Garshol, Lars M: An SGML Glossary, 31.3.1998
<http://www.stud.ifi.uio.no/~larsga/download/diverse/sgmlglos.html>
10. Kunnari, Riitta, Virpi Lyytikäinen, Tiina Pietinen, Digitaalinen jukaiseminen - Sovellusalueena yliopiston julkaisutuotanto, Pro-Gradu tutkielma, Jyväskylän yliopisto, Tietojenkäsittelytieteiden laitos, Jyväskylä 1995, 209 s. <http://www.cs.jyu.fi/~gelpo/sgmlspl/node1.html>
11. Marchal, Benoit: An Introduction To SGML / Executive Summary 8.7.1996
<http://www.pineapplesoft.com/reports/sgml/index.html>
12. Microsoft Corporation, XML: Enabling Next-Generation Web Applications, 3.5.1998 <http://www.microsoft.com/xml/articles/xmlwp2.asp>
13. Naggum, Erik: SGML: A brief description, 7.2.1995
<http://www.oasis-open.org/cover/naggumWhat.html>
14. Prescod, Paul, Introduction to DSSSL, 25.7.1997 <http://itrc.uwaterloo.ca:80/~papresco/dsssl/tutorial.html>
15. Raggett, Dave, Arnaud Le Hors, Ian Jacobs / W3C, HTML 4.0 Specification (recommendation), 24.5.1998 <http://www.w3.org/TR/REC-html40/intro/sgmltut.html>
16. SoftQuad, The SGML Primer 25.8.1997 <http://www.softquad.com/sgmlinfo/primbody.html>
17. SoftQuad: SGML Introduction: SGML--Your Multi-Platform Publishing and Information Management Solution 7.5.1998 <http://www.softquad.com/resources/sgml/s-intro.htm>
18. OASIS (Organization for the Advancement of Sturctured Information Standards): SGML at work in education, 26.7.1998
<http://www.sgmlopen.org/html/sgml-at-work-education.html>
19. OASIS: Success in Selling SGML Internally, 26.9.1998
<http://www.sgmlopen.org/html/sellsgml.htm>
20. <TAG> Newsletter: HTML, SGML, PDF, XML: What is the difference?, 1997, Nro 5. <http://tag.cc/newsletter/Article.asp?v=11&i=5&p=1&s=2>
21. <TAG> Newsletter: Industrial-strength SGML on the Web, 1997, Nro 3.
<http://tag.cc/newsletter/Article.asp?v=11&i=3&p=4&s=3>
SGML, dokumentoinnin uusi standardi
22.11.1998
Markus Ahonen
Tuotantotalouden osasto
Teknillinen Korkeakoulu
markus.ahonen@hut.fi
Tiivistelmä
Maailman tietomäärä kasvaa kiihtyvällä vauhdilla. Se asettaa vaatimuksia tiedon kirjaamiselle, joihin nykyiset dokumentointimenetelmät eivät vastaa. Vastauksena on kehitetty Standard Generalized Markup Language (SGML), joka on HTML:n kaltainen metakieli. Ulkoasun sijasta SGML kuvaa dokumenttien tietosisältöä, ja on rakennettu niin, että dokumentti on universaalisti käytettävissä: Sama dokumentti voidaan tulostaa paperille, verkkoon, taittaa käyttöohjevihkoseksi tai koota esityskalvoiksi. Tieto säilyy samana, esitysmuoto muuttuu.
1. Johdanto
Tietokoneella kirjoitettu dokumentti on kuin muovikassillinen ruokatarvikkeita, joista pitäisi valmistaa silakkalaatikkoa ja suklaavanukasta. Ruokatarvikkeita voi pilkkoa, pätkiä, yhdistellä, sekoittaa, kuumentaa tai maustaa, ja ne voi pakastaa myöhempää käyttöä varten. Ongelmana kuitenkin on, että silakkalaatikon ja suklaavanukkaan valmistamiseen tarvitaan myös ohjeet; muuten tuloksena voi olla suklaavanukassilliä.
2. Tietointensiivinen yhteiskunta
Tietokoneiden ja tietoliikenteen avulla maailma kommunikoi yhä kiivaammin. Faksit, sähköpostit ja puhelut lähtevät ajasta ja paikasta riippumatta. Samaan aikaan kommunikointivälineiden välityksellä liikkuva tieto itsessään on kauppatavaraa: korkealaatuinen ja käyttökelpoinen tieto on rahanarvoista tavaraa.
Tiedon määrä lisääntyy kiihtyvällä tahdilla. Kysymys on yksinkertaisesta ongelmasta: Asiat tulevat monimutkaisemmiksi, ja siksi niiden kuvaamiseen tarvitaan pidempiä dokumentteja. Tämän voi todeta esim. erilaisten standardimäärittelydokumenttien ja käyttöohjeiden pituudesta: Digitaalisia puhelinvaihteita koskevat standardia koskevat dokumentit ovat yhteensä yli tuhat sivua, ja samaisen puhelinvaihteen rakenne-, käyttö- ja asennusohjeet ovat yli 2000 sivua pitkiä dokumentteja.
Yksinään amerikassa tuotetaan 92 miljardia business-dokumenttia, joista suuri osa tuotetaan kerran. Näistä dokumenteista vain 10% ovat tietokannoissa, joten voidaan päätellä, että loput 90% dokumenteista ovat vain muutaman ihmisen käytössä, vain suhteellisen lyhyen ajan.[2] Organisaatioiden myös tärkeätä "muistaa" aiemmin omaksuttu tieto. Tämä pätee esim. suuriin yrityksiin, joilla on samanlaiset toimintaperiaatteet esim. laatustandardien ylläpitoa varten. Tällaisella yrityksellä pitää olla selkeät ja seikkaperäiset dokumentit kaikista laatuprosesseista, ja kaikkien pitää toimia näiden ohjeiden mukaisesti; puhutaan oppivista organisaatioista.
3. Sähköisen dokumentoinnin sudenkuopat ja uudet mahdollisuudet
Tietokone on helpottanut tavallista dokumentaatiota mittaamattomasti; kuten alun esimerkissä, tekstinkäsittelyohjelmalla kirjoitettua dokumenttia voi paloitella, yhdistellä ja muokata mielin määrin. Tallennettavuus ja pieni kokotarve on mahdollistanut suurien tietomäärien saatavuuden kohtalaisissa aikarajoissa.
Tiedon määrän yhä lisääntyessä saatavuus kuitenkin kärsii, sillä jokainen dokumentti on kirjoitettu omalla tavallaan. Ainoa tapa ymmärtää dokumentin sisältö on lukea se, sillä dokumentin eri elementteihin ei sisälly tietoa niiden sisällöstä. Automaattiset hakuohjelmat ovat tässä hakutyössä vain osittain hyödyllisiä, sillä ne eivät esimerkiksi kykene ymmärtämään dokumentissa olevan valokuvan merkitystä, eivätkä erottele erisisältöisiä dokumentteja toisistaan. Lopputuloksena internetin tekstihauissa yleensä onkin 300 asiaankuulumatonta linkkiä sekä viisi asiallista linkkiä, jotka häviävät väärien linkkien sekaan.
Dokumenttien parempaa rakenteellisuutta ja käytettävyyttä varten on kehitetty standardi, joka mahdollistaa dokumenteille tyypillisen muokkaamisen vapauden, mutta sisältää tarkan tiedon dokumentin sisällöstä. Standardin nimi on Standard Generalized Markup Language, SGML.
4. Standard Generalized Markup Language
Standard Generalized Markup Language eli SGML on sarja laite- ja käyttöympäristöstä riippumattomia metodeja elektronisten dokumenttien kuvaamiseksi. Se on metakieli, joka kuvaa toisen kielen (tässä kirjoitettu dokumentti) rakenteen käyttäen hyväksi markup-koodeja eli tageja.[5] Nykyisistä metakielistä poiketen SGML ei kuvaa dokumentin ulkonäköä, vaan sen sisältöä. Näkyvin ero on metakielessä olevien tagien kuvailevuus. Dokumentit on jaettu loogisesti erillisiin osiin, jolla varmistetaan dokumentissa olevan tiedon riippumattomuus laitteista ja lukuohjelmista sekä lopulta myös ajan hampaalta.[5]
4.1 Kuvailevat tagit
Tällä hetkellä dokumenttienkuvausvälineet kuvailevat varsin heikosti dokumenttien tietosisältöä, ja keskittyvät lähinnä ulkoasun kuvaamiseen. Esimerkiksi HTML:ssä <numbered list>-tagi kertoo, että sen perässä oleva elementti on numeroitu lista. Sen sijaan SGML voisi kertoa, että listassa esim.satunnaislukuja: <random number list>. SGML sisältää siis tageissaan tietoa siitä, minkälaista tieto tagien välissä on. [1]SGML:n tagit ovat vapaasti valittavissa. Dokumentin tyyppiä (esim. tilauslomake, hakukaavake, lehtiartikkeli) suunniteltaessa suunnittelija voi itse vapaasti valita käytetyt tagit sekä niiden merkityksen. Mitään tietosisältöön liittyviä standarditageja ei ole.
4.2 DTD SGML-dokumentti on kuin hyvän kokin valmistama ateria: dokumentin sisältämä data on raaka-aine, josta erillisiä ohjeita noudattamalla luodaan maittava annos. Ohjeena toimii Document Type Definition, DTD. DTD määrittelee tavat, joilla dokumentti luetaan, kirjoitetaan ja esitetään.[1]
Kuten edellä mainittiin, dokumentin kirjoittamisen joustavuusperiaatteen mukaisesti jokaisen dokumenttityypin luoja pystyy määrittelemään omiin tarpeisiinsa soveltuvat tagit. Tarve perustuu tagien tietosisältöä kuvaavaan luonteeseen – ohjelmistotuottajan on mahdotonta arvella, minkälaista tietoa asiakas aikoo SGML-formaatissa tallentaa. Siksi standardoituja tageja ei juurikaan ole.
Tämä aiheuttaa kuitenkin ongelman: koska tagit eivät ole standardimuotoisia, tietokone ei pysty ymmärtämään eri tagien merkitystä.
Jotta dataa voidaan käsitellä, DTD sisältää seikkaperäiset ohjeet dokumentin eri tagien luonteesta ja hierarkiasta. Se toimii siis eräänlaisena tulkkina, jonka perusteella tietokone voi lukea ja käsitellä dokumentin tietoa.
SGML-dokumentin tieto, kuten mikä tahansa tieto, saatetaan esittää erilaisien medioiden kautta, esimerkiksi paperilla, tekstinkäsittelyohjelmassa tai internetissä selaimen välityksellä. Tätä varten DTD kertoo, miten tieto eri tapauksissa esitetään: esim. nettisivuilla oleva linkki artikkelin
kirjoittajan kotisivuille olisi tekstin seassa, kun taas paperilla saatettaisiin antaa kirjoittajan postiosoite (Topeliuksenkatu 15 A 14).DTD:n sisältämää esitystä koskevaa tietoa käytetään myös toiseen suuntaan työskenneltäessä: Dokumentin lukija voi itse määritellä, minkälaista tietoa hän haluaa lukea. Asian merkitys aukeaa käytännön esimerkillä:
Nokia Telecommunicationsin GSM-verkon vaihde on monimutkainen laite, jonka ohjeistus standardimäärittelyineen on tuhansia sivuja pitkä dokumentti. Laitteen asennusvaiheessa tästä raportista tarvitaan kuitenkin vain asennusohjeet, jotka ovat vain murto-osa koko dokumentista. Tätä varten dokumentista haetaan vain asennukseen liittyvä tieto, ja saadaan esim. 12 sivua pitkä asennusvaiheet kuvaava dokumentti.[
3]4.3 Tiedon riippumattomuus SGML:n dokumentin osat, data ja DTD, ovat selkeästi erilliset osat. Tämä aiheuttaa sen, että eri ohjelmat voivat käyttää SGML-dokumentin osia oman halunsa mukaan: Esimerkiksi asiakasrekisteriohjelma voisi koota yhteystietosivulla olevien ihmisten nimet tietokannaksi, kun taas sivuntaitto-ohjelma saattaisi käyttää ihmisten nimissä lihavointia. SGML-dokumentin sisältämä data on siis täysin riippumatonta lukevasta järjestelmästä, ja niin päästään eroon tekstinkäsittelyohjelmien ongelmasta tulkita toisen tekstinkäsittelyohjelman käyttämää merkintää tai merkkijärjestelmää; joku tekstinkäsittelyohjelma saattaa käyttää ASCII-merkkejä, kun taas toinen saattaa käyttää
4.4 Esimerkki koodista SGML:n kantava idea rakenteellisena tekstinä näkyy sen tageissa; ne pyrkivät aina kuvaamaan sitä tekstiä, jonka edessä ne ovat. Niinpä esimerkiksi em.puhelinvaihteen asennusohjeet voisivat näyttää seuraavalta:
<vaihteen asennusohje> GSM-vaihteen asentaminen
<yleiskuvaus>Asennus tapahtuu yksinkertaisesti ohjeita noudattaen. Apuvälineiksi tarvitaan kädet.
<asennusvaihe>Käyttökuntoon asettaminen
<työohje>Ota laite laatikosta. Aseta laite omalle telineelleen ja kytke virta.
<asennusvaihe>Testaus
<työohje>Paina kaikkia nappeja yhtä aikaa. Odota 5 sekuntia. Jos punainen valo syttyy, laite on käyttövalmis.
</vaihteen asennusohje>
Esimerkissä näkyvät SGML:n ominaispiirteet:
4.4.1 Tiedon kuvaus
Tagien välissä oleva tieto on kuvattu tietoa ympäröivässä tagissa (esim. asennusvaiheen työohje sisältää aina työohjeen, se ei voi sisältää esim. asennustyökaluluetteloa). Kuvaus pätee myös korkeammalla tasolla: asennusohje koostuu asennusvaiheista, jotka taas koostuvat työohjeista.
4.4.2 Hierarkia
SGML:n hierarkiaan kuuluu, että jokaiselle tietotyypille on oma paikkansa. Tämä tarkoittaa käytännössä sitä, että esim. asennusohjetta ei voi kirjoittaa ilman asennusvaiheita, eikä esim. asennusvaihetta voi kirjoittaa ennen kuin yleiskuvaus on tehty.
4.4.3 Joustavuus
Tekstin seassa ei ole ulko-asuun liittyvää kuvausta, joten dokumentin tieto ei muutu vaikka esitystapa saattaakin muuttua.
5. SGML:n lukemista ja kirjoittamista varten tarvittavat ohjelmat
SGML-dokumentin laatimiseen, kirjoittamiseen ja lukemiseen tarvitaan kolme erilaista ohjelmaa: Dokumenttien yhdenmukaisuuden DTD:hen tarkistava parseri, rakenteellinen editori tekstin kirjoittamista varten, sekä formatoijan, joka muokkaa dokumentista erinäköisiä dokumentteja erilaisiin dokumentteihin.
5.1 Parseri
Parseri on käytännössä ohjelma, joka tarkistaa, että kirjoitettu dokumentti on yhdenmukainen DTD:n kanssa, jota dokumentin pitäisi noudattaa. Yksinkertaisimmillaan parseri antaa vain vastauksen "kyllä" tai "ei": Dokumentti joko on tai ei ole DTD:n mukainen.[1]5.2 Rakenteellinen editori Rakenteellinen editori on eräänlainen älykäs tekstinkäsittelyohjelma, joka lukee DTD:n määrittelemät säännöt dokumentin kirjoittamiseen ja antaa kirjoittajan kirjoittaa vain DTD:n määrittelemällä tavalla. Tämä estää sen, että dokumentti ei noudata DTD:tä. Käytännössä kirjoittaminen toimisi ylläolevan esimerkin tapauksessa niin, että kun tietotyyppi <asennusohje> on valittu, tulee seuraavana tagina automaattisesti <yleiskuvaus>.
5.3 Formatoija Formatoija muokkaa SGML-dokumentista esitysmuotoisen dokumentin. Se ottaa huomioon niin DTD:n määrittelemät eri esitysmuotoihin liittyvät määrittelyt kuin eri merkkijärjestelmät, joita dokumenttia käyttävä laite käyttää.
6. SGML:lle soveltuvat työt
SGML soveltuu hyvin pitkiin ja / tai usein toistettaviin dokumentteihin kuten esim. tuotekuvaukset tai matka-raportit. SGML soveltuu myös formaalia rakennetta vaativiin dokumentteihin sekä kaikkeen materiaaliin, jota tullaan välittämään monelle erilaiselle käyttäjälle, ja jota katsellaan erilaisilla apuvälineillä: Tekstieditorilla, selaimella tai paperilla.[5] Tämän hetken sovellukset ovat tyypillisesti valtavan tietomäärän käsittelyä: Lentokonetehdas Boeing käyttää SGML:ää kaiken tuotetietonsa tallentamiseen, ja Ruotsin ja USA:n puolustuslaitokset[4] käyttävät teknisessä dokumentoinnissaan SGML-pohjaista ratkaisua. Samoin teknologiayritykset Vaisala ja Nokia hyödyntävät SGML:ää tuotetietonsa hallinnassa.
Extensible Markup Language (XML) on SGML:ään perustuva samankaltainen kuvauskieli, joka on tarkoitettu tulevaisuuden www-sivujen kieleksi, aivan kuten HTML on nyt. Näin SGML tulee välillisesti helpottamaan myös www-sivujen tekemistä ja parempaa tiedon löydettävyyttä internetissä.[2]
7. Yhteenveto
SGML tarjoaa täysin uuden tason dokumentointimahdollisuudet kaikkialle, missä tiedon käyttäminen ja uudelleenkäyttäminen on välttämätöntä. Se poistaa monia perinteisen dokumentoinnin esteitä, ja rakenteellisesta luonteestaan johtuen se soveltuu lähes kaikkeen tekstiin.
SGML:n paras ominaisuus on sen lupaus pitkästä jatkuvuudesta; SGML:n perusformaatti on sellainen, että dokumentin sisältö säilyy ja tulee säilymään aina luettavana – jopa niin, että tulevaisuudessa vanhemmat ohjelmat voivat lukea uudempia ohjelmia (pienin puuttein, mutta silti). Parhaimmillaan SGML on väline, jolla poistetaan suurin osa dokumentoinnin ongelmista, ja voidaan keskittyä tärkeämpiin asioihin – kuten esimerkiksi tiedon tuottamiseen.