[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