[voikko-devel] Suomi-malagan dokumentointi

Harri Pitkänen hatapitk at cc.jyu.fi
Mon Aug 28 12:48:04 EEST 2006


On Monday 28 August 2006 09:05, Hannu Väisänen wrote:
> Sana ui+nti+ko jäsennetään kolmessa vaiheessa näin:
>
>    syöte       sääntö, jolla jäsentämistä jatketaan
> 1. ui          JOHDIN_NIMISANA_TEONSANASTA
> 2. nti         LIITESANA
> 3. ko          LOPPU
>
> Olisiko parempi kirjoittaa toinen sääntö näin:
>
> NIMISANA := nimisanan_vartalo  LOPPU        talo, uinti
>                                LIITESANA    talo+kin, uinti+ko
>
> Tällöin taivutettaessa sanassa uintiko on vain kaksi osaa, vartalo
> "uinti" ja liite "ko". Jos ko-liite ei tunnu taivuttamiselta,
> ajatellaan sanaa uinni+ssa.
>
>
> Siis SANA = KANTA   + JOHDIN/JOHTIMET + TAIVUTUSPÄÄTTEET
>             näytteli+ jä+ttär+          ien+kö

Näyttää jo ymmärrettävämmältä.

> > Joka tapauksessa on pidettävä mielessä, että LAGilla voi kuvata paljon
> > muitakin kieliä, koska se sallii melko vapaan lisämuistin käytön
> > (muuttuja $vasen Suomi-malagan säännöissä).
>
> Aivan, kaikki aiemmin jäsennettyjen sanan osien tiedot ovat
> käytettävissä muuttujassa $vasen, ja niitä tarvitaan esim. silloin,
> kun sana muutetaan perusmuotoon.
>
> > Tämän tuomiin mahdollisuuksiin ei
> > kummankaan meidän ehdotuksissa ole otettu kantaa, tosin kontekstivapaiden
> > kielten kohdalla tuota lisämuistia on pakko hyödyntää jos aiotaan edes
> > saada aikaiseksi toimiva jäsennin.
>
> Ongelma on sopivan esitysmuodon löytäminen niitä varten, jotka eivät
> osaa lukea Malaga-koodia.

Sinänsä sitä, miten tavallinen kontekstivapaa kielioppi toteutetaan Malagassa 
ei tarvitse dokumentoida itse kieliopissa, joka on yksikäsitteinen muutenkin. 
Kyseessä on vain tekninen yksityiskohta. Teoria kertoo, että kontekstivapaat 
kieliopit ovat ekvivalentteja pinoautomaattien kanssa, joten muuttujan $vasen 
olisi varmaan luontevinta tällöin sisältää jonkinlainen pino (muiden tietojen 
lisäksi). Yritän saada aikaiseksi esimerkkitoteutuksen tästä jossain 
vaiheessa.

Suomi-malagassa on kuitenkin käytetty paljon lisäehtoja, jotka on 
sisällytettävä myös kieliopin kuvaukseen. Yleinen tapaus on vaikkapa

? $oikea.luokka in $vasen.$i.jatko;
? ääntiösointu_oikein ($vasen, $oikea, $sana);

Näitä kuvaamaan voitaisiin asettaa "jatko-operaattori" (J) joka rajoittaisi 
säännön vain niihin tapauksiin, joissa liitettävät allomorfit ovat 
yhteensopivia vokaalisoinnun ja muiden vastaavien "paikallisten 
ominaisuuksien" kannalta. Tämä tarvittaisiin ainakin aina sanan vartalon ja 
taivutuspäätteen sekä vartalon ja johtimen väliin. Yhdyssanoja varten 
voitaisiin tehdä "yhdyssanaoperaattori" (Y), joka sisältäisi yhdysmerkin 
tavanomaiseen käsittelyyn liittyvät säännöt (yhdysviiva jos ja vain jos vasen 
allomorfi päättyy samaan vokaaliin jolla oikea alkaa, vaaditaan että oikean 
puolen tiedoissa ei ole kielletty käyttöä yhdyssanan jälkiosana jne.). Siispä 
aikaisemmin esimerkissäni käyttämiäni yhdyssanasääntöjä voisi hiukan 
eksaktimmin kirjoittaa muotoon

# "kuusi+puu" ja "kuorma-auto", mutta ei "kuormaauto"
yleisnimi_vartalo -> yleisnimi_vartalo(J)nimentö_yks_pääte(Y)yleisnimi_vartalo
# "talo+n+poika"
yleisnimi_vartalo -> yleisnimi_vartalo(J)omanto_yks_pääte(Y)yleisnimi_vartalo

Mikään ei oletettavasti estä samantapaisten operaattoreiden käyttämistä tuossa 
Malaga-tyylisessä kuvauksessa samoihin tarkoituksiin.

Harri



More information about the devel mailing list