20

Verbide liigid

Eelmises loengus vaadeldud programm võtab vastu (genereerib) palju mõtetuid lauseid: auto naerab kiiresti (verb "naerab" nõuab aluseks inimest, mitte elutut olendit "auto" ja sellega koos ei või kasutada tempot iseloomustavat määrust). See näitab, et lauseliikmete kirjeldamine ainult sõnaliikidega (alus peab olema nimisõna, õeldis - verb) on liiga jäme klassifikatsioon. On tarvis täpsemat liigitust: millised nimisõnad (elusad, elutud, füusilised kehad, abstraktsed mõisted jne) vöivad esineda milliste tegevuste (verbide) objektide ja subjektidena.
Lause kirjeldab alati mingit tegevust, muutust või olekut, sellepärast on lause kõige tähtsam liige predikaat, verb.
Tegevusi ja neid kirjeldavaid verbe on mitmesuguseid. Transitiivsed verbid nõuavad tegevuse objekti: lööb (mida/keda?), juhib (mida/keda?), intransitiivsed verbid objekti ei nõua. (naerab, puruneb, keeb); mõned verbid eeldavat elusat subjekti (tegija, lau se alus): juhib, läheb (kes?), teised elutut.
Ka teised sõnaliigid võib jagada semantiliste omaduste alusel alaliikidesse, mis võivad lauses esineda ainult koos teatud tüüpi verbide ja muude lauseliikmetega. Inglise keele jaoks esitas R. Schank lause sügavstruktuuri (deep structure) kirjelduse, milles sõnad jagati kuude liiki (nähtavad esimed, tegavused ja olekud, esemete omadused, tegevuste omadus ed, ajad, kohad); tegevused - kahteteistkümnessse alamliiki (füüsilise eseme asukoha muutus, abstraktse suhte muutus, informatsiooni liikumine, füüsilise jõu rakendamine jne).
Järgnevas arvestatakse lause struktuuri analüüsides vaid seda, kas lauses esinev verb on transitiivne või intransitiivne (nõuab sihitist või ei), millises käändes peab olema alus ja sihitis ja et täiendi ja aluse, samuti määruse ja verbi arvud (ainsus või mitmus) oleksid samad.

analyysi(Lause) :-

subjekt(Subjekt,Arv,nimetav),
predikaat(Predikaat,Arv,transitiivne),
objekt(Sihitis,_,sihitav),
strcat(Predikaat,Sihitis,Predikaatryhm),
strcat(Subjekt,Predikaatryhm,Lause).

Intransitiivne verb nõuab ainult subjekti (alust):

analyysi(Lause) :-

subjekt(Subjekt,Arv,nimetav),
predikaat(Predikaat,Arv,intransitiivne),
strcat(Subjekt,Predikaat,Lause).

Subjekt e. aluserühm koosneb nimetavas käändes olevast nimisõnast või nimisõnast ja seda iseloomustavast omadussõnast (täiendist); viimasel juhul peavad nimisõna ja omadussõna arv (ainsus või mitmus) ja kääne olema samad :

subjekt(Sonad,Arv,Kaane) :-

aluseryhm(Sonad,Arv,Kaane).
aluseryhm(Sonad,Arv,Kaane) :-
nimisona(Sonad,Arv,Kaane).
aluseryhm(Sonad,Arv,Kaane) :-
omadussona(Omadussona,Arv,Kaane),
nimisona(Nimisona,Arv,Kaane),
strcat(Omadussona,Nimisona,Sonad).

Sihitis on oma süntaksilt (vormilt) samasugune kui aluserühm:

objekt(Sonad,Arv,Kaane) :-

aluseryhm(Sonad,Arv,Kaane).

Predikaat on kas verb (tegusõna) või verb ja tegevust iseloomustav määrus:

predikaat(Sona,Arv,Tyyppi) :-

verb(Sona,Arv,Tyyppi).
predikaat(Sonad,Arv,Tyyppi) :-
verb(Verb,Arv,Tyyppi),
maarus(Maarsona),
strcat(Verb,Maarsona,Sonad).

Jääb üle veel kirjeldada sõnastik:

omadussona([suur],ainsus,nimetav).
omadussona([suurt],ainsus,sihitav).
omadussona([röömus],ainsus,nimetav).
omadussona([rõõmsat],ainsus,sihitav).
omadussona([rõõmsaid],mitmus,sihitav).
nimisona([poiss],ainsus,nimetav).
nimisona([auto],ainsus,nimetav).
nimisona([palli],ainsus,sihitav).
nimisona([pojad],mitmus,nimetav).
nimisona([kastid],mitmus,nimetav).
maarus([kiiresti]).
maarus([kohe]).
verb([lööb],ainsus,transitiivne).
verb([roolib],ainsus,transitiivne).
verb([roolivad],mitmus,transitiivne).
verb([liigub],ainsus,intransitiivne).
verb([loeb],ainsus,transitiivne).
verb([loevad],mitmus,transitiivne).
verb([naerab],ainsus,intransitiivne).
verb([naeravad],mitmus,intransitiivne).

Et kontrollida, milliseid laused see programm suudab anal˙˙sida (genereerida), tuleb lauset moodustavate sõnade nimistu väljastada:

raagi(Lause) :-

analyysi(Lause),
spit_out(Lause).
spit_out([X|Y]) :-
write(X),
write(' '),
spit_out(Y).
spit_out([]) :-
nl.

Ülesanne
Täienda ülaltoodud programmi sõnade vormi määramisega lõputunnuste abil (vt. loeng 18), nii et sõnastikus võiks esitada ainult sõnade tüved, st. kahe fakti
nimisõna([auto],ainsus,nimetav).
nimisõna([autod],mitmus,nimetav).

asemel võiks esitada vaid fakti
nimisõna(auto).

ja programm moodustaks ise nii ainsuse kui ka mitmuse vormid ja oskaks neid analüüsis kasutada, s.t. töötaks samamoodi kui ülaltoodud programm.


Küsimused, probleemid:
jaak@cc.ttu.ee

Tagasi loengute sisukorra juurde