Sõnavormid

Eesti keeles kirjeldatakse lauses esinevate objektide vahelised suhted (kes on tegija, millal tegevus toimus, mis on tegevuse objekt jne) sõnade morfoloogiliste vormidega, näiteks käändsõnadel on viisteist käänet, verbidel - kolm pööret, ainsus, mitmus ja paljud ajavormid; muutevormide kasutamise tõttu on eesti keeles sõnade järjekord lauses peaaegu vaba, kuid näiteks inglise keeles (kus muutevorme peaaegu pole) on sõnade järjekord lauses väga rangelt määratud.

Järgnevas on kirjeldatud, kuidas Prologi võib õpetada analüüsima verbide kindla kõneviisi oleviku ja lihtmineviku vorme.
Verbi vorm kirjeldab toimingu sooritajat (sooritaja on teada - isikuline; ei ole teada - umbisikuline), sooritamise aega (olevik-minevik-tulevik), rääkija suhet sooritajaga (rääkija ise - esimene pööre, lähedalolev isik - teine, kaugem isik - kolmas) jne. Tavaliselt määrab verbi vormi lõputunnus, näiteks (kindla kõneviisi) oleviku lõputunnused võib kirjeldada predikaadiga tunnus.
Minevikus ainsuse kolmandal pöördel sageli ei ole tunnust (liikus - sõna lõpeb mineviku tunnusega -s) ja mitmuse kolmanda pöörde tunnuseks võib olla -vad asemel -d.

tunnus(me,mitmus,1).
tunnus(te,mitmus,2).
tunnus(vad,mitmus,3).
tunnus(n,ainsus,1).
tunnus(d,ainsus,2).
tunnus(b,ainsus,3).

Verbi analüüsides otsib Prolog sõna lõpust moodi (ainsus, mitmus) ja pööret tunnuse määrava tunnuse ja kontrollib primitiivi atom_concat abil, kas see esineb analüüsitava sõna lõpus; sellega ühtlasi leitakse sõna tüvi (see on sõna ülejäänud osa); seejärel kontrollitakse kas tüve lõpus esineb mineviku tunnus -si või -s. Primitiiv atom_concat ühendab esimese ja teise sõna (aatomi)

kolmandaks: atom_concat(loe, me, loeme) või vastupidi, leiab teise (tunnus) ja kolmanda (kogu verb) põhjal esimese (tüvi):
?- atom_concat(Tyvi,me,laulame)
Tyvi = laula
Minevikus ainsuse kolmandal pöördel sageli ei ole tunnust, s.t. sõna lõpeb mineviku tunnusega -s(liikus) ja minevikus võib mitmuse kolmanda pöörde tunnuseks olla -vad asemel -d (laulsid), millel sel juhul eelneb mineviku tunnus -si. Kui siinkirjeldatud morfoloogiareegleeglite abil analüüs ei õnnestu, vabandab Prolog oma mitteoskamist.
analyysi(Verb,Aeg,Mood,Isik) :-
tunnus(Tunnus,Mood,Isik),
atom_concat(Tyvi,T,Verb),
T=Tunnus,
aeg(Tyvi,Aeg), !.
analyysi(Verb,minevik,ainsus,3) :-
atom_concat(_,T,Verb),
T=s, !.
analyysi(Verb,_,_,_) :-
write('Seda ma veel ei oska'),
nl.
Kui verbi tüve lõpp on -sivõi (kolmandas pöördes) -s, on verb minevikus, muudel juhtudel olevikus.
aeg(Tyvi, minevik) :-
atom_concat(_,T,Tyvi),
T = si,!.
aeg(Tyvi, minevik) :-
atom_concat(_,T,Tyvi),
T = s,!.
aeg(Tyvi, olevik).
Morfoloogilise analüüsi käivitab ja esitab selle tulemused predikaat analyysi.
analyysi(Verb) :-
analyysi(Verb,Aeg,Arv,Isik),
write('Aeg='),
write(Aeg),
nl,
write('Mood='),
write(Arv),
nl,
write('Isik='),
write(Isik),
nl.

Ülesandeid:
1. Koosta predikaat, mis analüüsib teatud tüüpi (näiteks jalg, rattas) nimisõnade muutevorme, st. leiab ainsuse/mitmuse ja käände.


Küsimused, probleemid: ©2004 Jaak Henno