[voikko-devel] libvoikko ja Malagan projektitiedostot

Harri Pitkänen hatapitk at cc.jyu.fi
Tue Oct 17 12:20:43 EEST 2006


Yhtenä osana tällä hetkellä työn alla olevaa tietotekniikan harjoitustyötäni 
joudun määrittelemään libvoikon ja Malagan välisen rajapinnan (oleellisesti 
siis tiedoston voikko-fi_FI.pro) siten, että ulkopuoliset ohjelmat pystyvät 
muuttamaan sellaisiakin asetuksia, joiden muutokset edellyttävät 
allomorfileksikon uudelleengenerointia.

Alkuperäinen voikko-fi_FI.pro oli käsin kirjoitettu, eikä siinä ollut 
sellaista rakennetta että sitä olisi voinut kunnolla käsitellä 
automaattisilla työkaluilla. Olen käytännössä katsoen kirjoittanut tuon 
tiedoston uudelleen, nykyinen sisältö on seuraavan näköinen:


info: Voikko-Dictionary-Format: 1

## Begin-Malaga-Configuration
info: Language-Code: fi_FI
info: Language-Variant: standard
info: Description: Default morphology for Voikko
info: Copyright: 2006 Hannu Väisänen, Harri Pitkänen, Teemu Likonen
info: License: GPL version 2 or later
## End-Malaga-Configuration

## Begin-User-Configuration
lex: voikko-fi_FI.lex suomi.lex
lex: sanat/joukahainen.lex
lex: sanat/erikoisalat/atk.lex
mallex: set switch vanhahkot_muodot yes
## End-User-Configuration

## Begin-Internal-Configuration
sym: voikko-fi_FI.sym suomi.sym
all: voikko-fi_FI.all suomi.all suomi.inc subrule.inc voikko-fi_FI.pro
lex: suomi.inc subrule.inc voikko-fi_FI.pro
lex: sanat/erikoissanat.lex
lex: sanat/lukusanat.lex
lex: sanat/lyhenteet.lex
lex: sanat/olla-ei.lex
lex: sanat/11-19.lex
lex: sanat/omat.lex
lex: sanat/yhdyssanat.lex
lex: sanat/erikoiset.lex
lex: sanat/poikkeavat.lex
lex: sanat/lainen.lex
mor: voikko-fi_FI.mor suomi.mor suomi.inc
mallex: set transmit-line "./transmit"
malaga: set transmit-line "./transmit"
malaga: set display-line "malshow"
mallex: set display-line "malshow"
mallex: set use-display yes
malaga: set use-display yes
malaga: set mor-pruning 20
malaga: set switch tulostus merkitse_yhdyssanat
malaga: set switch malli voikko
mallex: set switch malli voikko
malaga: set switch taivutus uusi
mallex: set switch taivutus uusi
## End-Internal-Configuration


Selvennyksiä ja perusteluja:

Ensimmäisen rivin Voikko-Dictionary-Format määrittelee tiedostomuodon version. 
Tämä on hyödyllistä sitä varten, että jos käyttäjä päivittää libvoikon tai 
sanastojen käsittelyyn tarkoitetut apuohjelmat, mutta jättää vanhan version 
henkilökohtaisesta sanastosta jonnekin (vaikka hakemistoon $HOME/.voikko 
jonka sisältöön pakettienhallintatyökalut eivät voi vaikuttaa) niin nämä 
ohjelmat huomaavat olevansa tekemisissä epäyhteensopivat formaatin kanssa ja 
osaavat antaa ymmärrettävän virheilmoituksen sen sijaan että käyttäytyisivät 
jotenkin muuten virheellisesti. Tämä on hyödyllistä jo siirryttäessä Voikon 
versiosta 1.1 versioon 1.2, koska mor-pruning-option käyttöönotto tässä 
välillä oli epäyhteensopiva muutos.

Malaga-Configuration-kappaleessa ovat sellaiset asetukset, jotka ovat 
käyttäjän ja libvoikon kannalta informatiivisia, ts. ohjelmat voivat näyttää 
nuo tiedot käyttäjille ja libvoikkokin voi niitä hyödyntää, mutta niihin ei 
ole tarkoitus tehdä muutoksia. Rivien merkitys lienee selvä, Language-Variant 
kertoo onko kyse yleiskielen oikolukusanastosta vai jostain murteesta. 
Murresanastoja voi tosin lisätä yleissanaston päällekin seuraavassa 
asetusosiossa, joten voi olla ettei tuota asetusta tarvitse koskaan 
käyttääkään.

User-Configuration-kappaleessa ovat asetukset, joita käyttäjä voi muuttaa jos 
haluaa mukauttaa oikoluvun toimintaa.

Internal-Configuration-kappaleessa ovat asetukset, jotka eivät käyttäjää tai 
apuohjelmia kiinnosta. Niitä ei tarvitse yrittää tulkita tai muuttaa. 
Ainoastaan Suomi-malagan kehittäjät tarvitsevat noita.


Minulla on nyt jo valmiina ohjelma, joka osaa lukea ja kirjoittaa tuota 
tiedostomuotoa ja esittää käyttäjän mukautettavissa olevat asetukset 
graafisen käyttöliittymän kautta. Myös tiedosto voikko-fi_FI.lex on 
generoitava uudelleen automaattisesti jos User-Configuration-kappaleen 
lex-rivejä muutetaan. Tuohon tiedostoon tulee kuitenkin vain yksi 
include-rivi tiedostoja suomi.lex, sanat/joukahainen.lex ja 
sanat/erikoisalat/atk.lex varten, eli aika suoraviivainen juttu.

Kysyisinkin nyt että keksittekö vielä joitain asetuksia tai metatietokenttiä, 
joita tähän tiedostoon voisi lisätä? Jos otamme versioinnin käyttöön (kuten 
on käytännössä pakko tehdä yhteensopivuusongelmien välttämiseksi) niin olisi 
hyvä saada mahdolliset parannukset kasaan saman tien, koska asetusten 
lisääminen myöhemmin vaatii aina versionumeron kasvattamista ja siihen 
liittyvää ylimääräistä työtä. Muitakin kommentteja tiedostomuodosta otetaan 
mielihyvin vastaan. Tämä tiedosto on siis ainoastaan Voikkoa ja oikolukuun 
liittyviä sovelluksia varten. Sukijaa varten on joka tapauksessa oltava eri 
projektitiedosto, koska se toimii täysin eri asetuksilla.

Harri



More information about the devel mailing list