Sanastojen tallennus SGML-standardin avulla

Jari Perkiömäki, Vaasan yliopisto, jpe@uwasa.fi
Ari Hovila, Vaasan yliopisto, ajh@uwasa.fi

Sanastontallennus on terminologianhallinnassa yksi käytännön tärkeitä kysymyksiä. Termipankin looginen rakenne ja tapa, jolla termipankin tietueet tallennetaan digitaaliseen muotoon määrittävät pitkälti, kuinka monipuolisesti termipankkia voidaan hyödyntää erilaisissa sovelluksissa ja käyttöympäristöissä.

Tässä artikkelissa esitetään sanastomalli, jossa termistö on tallennettu SGML-standardin mukaisesti. Tällainen menettely mahdollistaa sen, että tällaisesta termistöstä voidaan tehdä hakuja esim. World-Wide Webin kautta. Lisäksi termistö saadaan melko vähällä työllä monipuolisesti julkaistua paperi- ja CD-ROM-muotoihin.

1. SGML - termintallennuksen pullataikina

SGML (Standard Generalized Markup Language, ISO 8879:1986) on kansainvälinen standardi, jolla määritellään merkkauskieliä, kuten esim. HTML (HyperText Markup Language). SGML:ään liittyviä käsitteitä voi hyvin kuvata seuraavan leivonta-analogian avulla.

SGML-standardin käytännön sovelluksissa painottuu kaksi asiaa: resepti ja sen mukaan leivottu taikina. Resepti, jota standardin kielellä voidaan kutsua dokumentin tyyppimäärittelyksi, Document Type Definition (DTD), kertoo kirjoittajalle, mitä ainesosia (standardissa näitä kutsutaan elementeiksi) tulee käyttää, jotta taikina saa oikean muodon. Taikina tässä tarkoittaa ASCII-tekstiä, johon asiasisällön sekaan on ympätty koodimerkkejä eli reseptissä kerrottuja ainesosia. Tällaista tekstiä standardi kutsuu dokumentti-instanssiksi. Koodimerkit erottuvat muusta leipätekstistä erotinmerkkien avulla. Esimerkiksi HTML:ssä erotinmerkkeinä käytetään merkkejä < ja >.

Taikinassa on kuvattuna asiasisältö, mutta siltä puuttuu käytännön lukemista helpottava ulkoasu. Niin kuin oikeasti keittiössä taikinasta leivotaan erilaisia leivonnaisia, esim. pullapitkoja, rusinapullia ja korvapuusteja, voidaan yhdestä ja samasta dokumenttitaikinasta myös työstää erilaisia ulkoasuja paperijulkaisua, World-Wide Web -julkaisua tai CD-ROM-julkaisua varten. Tästä yhteisestä taikinasta tehtävien julkaisujen tekeminen pyritään saamaan mahdollisimman automaattiseksi niin, että lopulta voidaan puhua rinnakkaisjulkaisemisesta. Kaikki päivitykset ja muutokset tehdään vain taikinaan, ei valmiisiin tuotteisiin.

Taikinaan liittyy koko ajan suuria vaatimuksia, siksi sen laatua pitää koko ajan tarkkailla. Tällaisena tarkkailijana, koemaistajana, toimii SGML-parseri, jäsenninohjelma, joka vertaa taikinaa ja sen reseptiä toisiinsa. Mikäli taikina ei ole muodollisesti kunnossa, siitä tulee huomautuksia. Laatu on tärkeää, jotta dokumenttitaikinasta tehtävien julkaisutuotteiden valmistus voidaan hoitaa ohjelmallisesti automaattisesti. Lisäksi valmiin taikinan tulee olla moitteeton ennen kuin se jäädytetään tietokantaan arkistointia varten. Tässä korostuu yksi SGML:n tärkeimmistä periaatteista: sisältö ja sisällön esitysmuoto on erotettu toisistaan.

Reseptin merkitystä ei voi painottaa liiaksi. Reseptistä on vastuussa leipurimestari, henkilö joka on analysoinut kohteena olevan dokumenttityypin ja sen perusteella rakentaa siitä muodollisen kuvauksen SGML-standardin osoittamalla tavalla. Reseptistä yleensä muodostuu hierarkkinen järjestelmä, jonka mukaan elementit ilmenevät taikinassa. Reseptissä täytyy käytännössä ottaa huomioon muitakin asioita kuin pelkkä dokumenttityyppi, jolle resepti kirjoitetaan, esim. leivontaan käytettävät ohjelmat saattavat osaltaan vaikuttaa reseptin muotoon.

Kuva 1. SGML-tekniikan osa-alueet kotoisella kielellä kuvattuna

2. NTRF SGML-reseptin lähtökohtana

NTRF (Nordic Terminological Record Format) on vuonna 1995 Norjan tekniikan sanastokeskuksessa RTT:ssä (Rådet for teknisk terminologi) kehitetty pohjoismainen termitietuemalli pohjoismaisten terminologisten instituutioiden käyttöön. NTRF-spesifikaatiossa määritellään termitietueen rakenne eli se, mitä kustakin termistä voidaan kertoa. Kukin termiin liittyvä informaatio on sidottu omaan kenttäänsä joko itsenäisesti tai upotettuna muihin kenttiin. Pyrkimyksenä on ollut kirjoittaa määrittely, joka soveltuu terminologisen datan vaihtoon ja sovelluskehityksen avuksi, esim. SGML-sovelluksia varten.

Varsinaisessa NTRF-määrittelyssä termitietueeseen liittyvät tiedot jaetaan kuuteen luokkaan:

  1. Termisidonnainen tieto
  2. Käsitesidonnainen tieto
  3. Käsitesuhdesidonnainen tieto
  4. Luokittelusidonnainen tieto
  5. Esitystapasidonnainen tieto
  6. Hallinnollinen tieto

Tämän luokittelun perusteella olemme rakentaneet alustavan version NTRF:ään perustuvasta SGML-reseptistä. Periaatteessa NTRF-määrittely ei aseta vaatimuksia siinä määritettyjen kenttien tai luokkien käyttämiselle. NTRF-määrittelystä voitaisiin näin käytännössä tehdä useita "NTRF-yhteensopivia" SGML-sovelluksia.

Elementtien nimiksi valitsimme NTRF:stä tutut nimet. NTRF:ssä käytetään 7-bittistä ASCII-merkistöä ja "erikoismerkeille", kuten esim. skandinaavisille merkeille, on luotu oma koodauskäytäntönsä. Tästä käytännöstä olemme kuitenkin luopuneet, sillä SGML-toteutukseen soveltuvat luontevimmin ISO:n merkkientiteettimääritykset. Lisäksi NTRF:n oman taulukkomäärittelyn asemesta sujuvinta on käyttää yleisesti hyväksyttyjä SGML-taulukkomäärittelyjä.

fiTE   generaattorinsuojaus
fiDEF  relesuojaus, jonka kohteena on voimalaitosgeneraattori
fiBCON relesuojaus
fiNCON generaattorin sisäisen vian suojaus,
       generaattorin käyttöä valvova suojaus
CLAS   1.1
TIT    relesuojaus
INST   ABB Transmit Oy Releet ja Kaukokäytöt
CREA   24.10.1996 J.K.

Esimerkki 1: NTRF:n mukaisesti koodattu termitietue

<term lang="fi">
<te>generaattorinsuojaus</te>
<def>relesuojaus, jonka kohteena on voimalaitosgeneraattori</def>
<bcon>relesuojaus</bcon>
<ncon>generaattorin sisäisen vian suojaus, generaattorin käyttöä valvova suojaus</ncon>
<clas>1.1</clas>
<tit>relesuojaus</tit>
<inst>ABB Transmit Oy Releet ja Kaukokäytöt</inst>
<crea>24.10.1996 J.K.</crea>
</term>

Esimerkki 2: NTRF DTD:n mukaisesti koodattu termitietue

Rakenteista terminologianhallintaa varten on Brigham Young Universityssä kehitelty myös ISO:n standardi ISO/DIS 12200:1995, joka tunnetaan nimellä MARTIF (Machine-readable Terminology Interchange Format). Nimensä mukaisesti se on tarkoitettu yleiseksi terminologisen datan välitysrakenteeksi esimerkiksi erilaisten termipankkiohjelmien välillä.

MARTIFin selkeänä tavoitteena on ollut käytön joustavuus yhdenmukaisuuden kustannuksella. Tämä voi käytännössä tarkoittaa sitä, että eri järjestelmien välillä tarvitaan räätälöityjä muunnosohjelmia rakenteen avoimuuden takia. NTRF DTD:n päämäärä on juuri toisenlainen: yhdenmukaisempi rakenne on tärkeämpi. Tiukempi rakennemäärittely antaa enemmän mahdollisuuksia monimuotoisemmalle käytölle organisaation sisällä ja niiden välillä ilman ylimääräisiä muunnoksia.

3. Termipankin käyttö WWW:n kautta

Rakentamamme SGML-pohjaisen termipankin käytännön testausta varten koottiin NTRF-muotoista materiaalia, joka ensin muunnettiin määritellyn rakenteen mukaiseksi. Termipankkia haluttiin testata alustavasti WWW-selaimella, sillä sen avulla voidaan tarvittaessa rakentaa ajantasainen palvelu laajalle käyttäjäkunnalle. Termipankkia voi koekäyttää osoitteessa http://terminology.uwasa.fi/ntrf/index.html, ja sen kehitystyö on osa TEKES:n ja ESR:n rahoittamaa Vaasan yliopiston ja Wärtsilä NSD Finland Oy:n yhteisprojektia, missä SGML-teknologiaa siirretään Vaasan rannikkoseudun (5b) pk-yrityksiin.

Järjestelmän käyttö aloitetaan webbilomakkeelta, jossa määritellään hakuteksti sekä kentät joihin haku kohdistetaan. Toinen vaihtoehto on siirtyä hakemistolomakkeelle, jossa tiettyä termistöä voidaan katsella aakkosjärjestyksessä tai systemaattisessa järjestyksessä. Terminhaku tapahtuu kahdessa vaiheessa. Ensimmäiseksi kootaan hakukriteerit täyttävistä tietueista pelkät päätermit, jotka esitetään valintataulun muodossa. Päätermin valinta käynnistää toisen vaiheen, jonka tuloksena käyttäjä saa eteensä kyseisen termin koko tietosisällön.

Molempien käsittelyvaiheiden runko on toteutettu Perl-ohjelmointikielellä ja itse hakutoiminnoista vastaa Helsingin yliopistossa kehitetty sgrep-ohjelma. Mitään varsinaista tietokantaohjelmaa ei ole olemassa, vaan SGML-muodossa oleva teksti sinällään eli termitietueet muodostavat yhden "virtuaalisen tietokannan", tiedoston, johon hakukyselyt sgrep-ohjelman avulla kohdistetaan. Yksi termistö on koodattu aina omaan tiedostoonsa, joten käytännössä terminhaku saattaa kohdistua useampaan fyysiseen tiedostoon samanaikaisesti. Tulokseksi saadaan aina yksi NTRF-SGML-dokumentti, joka muunnetaan WWW-ohjelman ymmärtämään muotoon ohjelmallisesti.

Lopulta esille tuleva termitietue ulkoasultaan pitkälti noudattelee TSK:n sanastoista tuttua muotoa. Uutta on sen sijaan se, että yläkäsite- ja alakäsiteviittaukset on toteutettu automaattisesti muodostettuina hypertekstilinkkeinä. Lisäksi jatkossa tullaan lisäämään vieruskäsitelinkit, jolloin käyttäjälle toivottavasti muodostuu parempi näkemys käsitteen suhteista ympäristöönsä. WWW-selain mahdollistaa myös erilaisten multimediaalisten esitysmuotojen käytön, joten on luultavaa, että WWW-pohjaiset termipankit luovat yhden uuden, dynaamisesti päivitettävän hypermediaympäristön, jota on halpa käyttää ja levittää.