[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