[voikko-devel] Suomi-malagoiden yhdistäminen

Harri Pitkänen hatapitk at cc.jyu.fi
Thu Dec 28 13:24:17 EET 2006


Hyvää joulun jälkeistä aikaa kaikille!

SMV sisältää nyt Suomi-malagan versiosta 0.9.7 otetut taivutuskaavat, mutta 
niitä ei vielä ole otettu käyttöön. Olen kyllä siirtänyt monia muitakin 
muutoksia Hannun versiosta omaamme, mutta erot näiden versioiden välillä ovat 
kasvaneet niin suuriksi että en voi tehdä koko siirtoa kerralla. Näyttäisi 
siis olevan Hannun vuoro tehdä muutamia korjauksia, jotta pääsen taas 
etenemään.

Ensimmäinen toive olisi se, että muutokset versiosta 0.9.7 eteen päin 
tehtäisiin julkisessa versionhallintajärjestelmässä. Viimeisimpien 0.9-sarjan 
versioiden välillä on nimittäin tapahtunut sellaisia muutoksia, joiden 
jäljittäminen on osoittautunut kovin työlääksi. Lähinnä tarkoitan tiedostoa 
suomi.lex, jossa samassa versiossa on sekä muutettu rivejä että siirretty 
niitä paikasta toiseen, jolloin diffeistä ei enää ole paljonkaan iloa. 
Muutokset ja uudelleenjärjestelyt olisi parempi tehdä erikseen, ja tässä 
versionhallinnasta on paljon apua.

Taivutuskaavojen generointiin haluaisin sellaisen muutoksen, että tiedostoa 
suomi.all muodostettaessa ei tarpeettomasti yhdisteltäisi shell-skriptejä ja 
malagan include-mekanismia. Nythän generoi.sh muodostaa tiedoston 
suomi-all.gen, joka sitten includella lisätään tiedostoon suomi.all. 
Kuitenkin myös generoi.sh yhdistelee useampia tiedostoja toisiinsa. Eikö 
olisi siis suoraviivaisempaa kirjoittaa generoi.sh muotoon

cat taivutuskaavat/ALKU.TXT > suomi.all
taivutuskaavat/ast.pl ... >> suomi.all
cat taivutuskaavat/KESKIOSA.TXT >> suomi.all
taivutuskaavat/txt.pl ... >> suomi.all
cat taivutuskaavat/LOPPU.TXT >> suomi.all

Tästä olisi se käytännön etu, että voisin toistaiseksi jättää SMV:n tiedoston 
suomi.all sellaisenaan paikalleen, ja generoi.sh ylikirjoittaisi sen vain jos 
sitä kutsutaan erikseen. Menee kuitenkin vielä varmasti jonkun aikaa ennen 
kuin SMV:ssä voidaan oikeasti alkaa tuota skriptiä käyttämään.

Tiedosto subrule.inc on SMV:ssä korvattu hakemistolla inc, jossa on kolme 
tiedostoa. all.inc sisältää vain tiedostossa suomi.all tarvittavia 
apufunktioita, mor.inc vastaavia apufunktioita tiedostolle voikko-fi_FI.mor 
ja subrule.inc sisältää apufunktioita joita tarvitaan molemmissa. Näin 
varsinaiset .all- ja .mor-tiedostot pysyvät hiukan luettavampina, mutta 
vältymme myös malagan käyttämättä jääviä sääntöjä koskevilta varoituksilta. 
Mielestäni tämän järjestelyn voisi kopioida jotakuinkin sellaisenaan Hannun 
versioon.

Tiedoston suomi.all subrule lajittele ei toimi kommenteissa sanotulla tavalla, 
koska sen lopussa on koodinpätkä

  define $t := <>;

  foreach $i in $r:
    if (nimentö in $i.2) then
      $i.2 :=+ <liitesana, loppu>;
    end;
    $t :=+ <<$i.1, $i.2>>;
  end;
  return $t;

Tämä pitäisi varmaankin siirtää jonnekin muualle, jonka jälkeen subrule 
lajittele voitaisiin kokonaisuudessaan siirtää tiedostoon inc/all.inc, koska 
se on yleiskäyttöinen apufunktio.

Harri



More information about the devel mailing list