24. märts

Lõpetame eelmisel korral tehtud grammatika, mis analüüsib lauseid the dog barks. the dog chased the cat.
Saadke oma my_language.tdl ja lexicon.tdl kaili.muurisep ät ut.ee

Lingo Grammar Matrix


Tehniline sissejuhatus

  1. Laadige alla uus grammatika versioon (autor Emily Bender Washingtoni ülikoolist) ja pakkige lahti.
  2. Muudke ära my_language.tdl failinimi ja muudke scriptfaili.
  3. Pange LKB käima ja laadige grammatika (script). Eelmise korra juhend.

Testandmed


Kirjutage laused, mida teie grammatika peaks tundma, ja laused, mida mitte. Salvestage need faili test1.items.
scriptfaili lõpus on laused, mis on süsteemi vaikimisi analüüsitavad laused (the dog barks), muudke need ära.
Soovitavalt üks sihiline, üks sihitu verbiga ja kattuva sõnavaraga.

Esialgne grammatika


Tehke eelmises praktikumis loodud inglise keele grammatikale analoogne eesti keele jaoks.
Hiljem lisame ühildumise ja sõnajärje.

Leksikaalsed tüübid

1. nimisõna
; nimisõna
noun-lex := basic-noun-lex & basic-one-arg &
 [SYNSEM.LOCAL [ CAT [ VAL [ SPR <#spr&[LOCAl.CAT.HEAD det] >,
                             COMPS < >,
                             SUBJ < >,
                             SPEC < >]]],
                 ARG-ST <#spr> ]. 
(nimisõnal on siiski subkategorisatsioon determinatiivile, et saaks hiljem edasi tegutseda, ilma determinatiivita nimisõna jaoks kirjutame reegli).

2. intransitiivne verb
intr-verb-lex := basic-verb-lex & intransitive-lex-item & ...
3. transitiivne verb
tr-verb-lex := basic-verb-lex & transitive-lex-item &


Leksikoni täiendamine


Lisage leksikoni vähemalt 2 testlause jagu sõnu: nimisõnad, sihiline ja sihitu verb.
poiss := noun-lex & [STEM <"poiss">].

Fraasistruktuurireeglite lisamine

det-lex := basic-determiner-lex &
  [ SYNSEM.LOCAL [CAT [HEAD det,
                       VAL [ SPR < >,
                             COMPS < >,
                             SUBJ < >]]]].

Morfoloogia

Originaaljuhend
Täiendame grammatikat nii, et me ei peaks kõiki verbivorme leksikoni kirjutama.
Kuna verbi pööramine ei muuda kuidagi SYNSEMi infot, siis kirjutage, reegel, mis pärib omadused infl-ltol-rule reeglist.
3sg_verb-lex-rule := infl-ltow-rule &
[ DTR.SYNSEM.LOCAL.CAT.HEAD verb ].
Tulevikus lisame sellele reeglile ühildumisinfo (subj peab olema 3sg)

Nüüd lisame irules.tdl-i morfoloogilise töötluse reeglid.
%(letter-set (!v aeiouõäöü))
defineerb vokaalid

reegel
ind_impf_3sg_verb :=
%suffix (!v !vs)
3sg_verb-lex-rule.

ütleb, et kui tüvi lõpeb vokaaliga, lisa lihtsalt s lõppu.

Muudame leksikoni, lisades sinna verbidele tunnuse [INFLECTED -].

Testimise hetk!

Tehke reeglid ka oleviku 3sg, ning lihtmineviku ja oleviku 3pl jaoks.


Ühildumine

Arvu ja isiku ühildumiseks lisame uue tunnuse, mis paikneb SYNSEM.LOCAL.CONT.HOOK.INDEXis:

png :+ [PER person,
        NUM number ].

person := *top*.
first := person.
second := person.
third := person.

number := *top*.
sg := number.
non-sg := number.
pl := non-sg.
Ja defineerime uue leksikoninimisõnatüübi :
common-noun-lex := noun-lex &
      [ SYNSEM.LOCAL.CONT.HOOK.INDEX.PNG [ PER third ] ].
pronoun-lex := noun-lex.
(tegelikult on neil tüüpidel erinev semantika, aga kuna meie sest ei hooli, siis jäägu nii)

Lisame leksikoni asesõnu:
näiteks
meie := pronoun-lex &
   [ STEM <"meie">,
    SYNSEM.LOCAL.CONT.HOOK.INDEX.PNG [ PER first,
                                                                                      NUM pl ] ].
Muudke ka nimisõnade tüübid leksikonis ära.

Muudke verbireegleid (3sg_verb_lex_rule jt), et nad ühilduks õiges arvus alusega.

Testigem!

Kääne

Lisame käändeinformatsiooni.
noun :+ [CASE case ].

Defineerige käändeinformatioon analoogiliselt arvu ja isikuga (piisab kolmsest käändest).

Lisage trans ja intrans-verb-lex tüüpidele nõue, et alus peab olema nimetavas

Lisage ase- ja nimisõnadele leksikonis käändeinformatsioon:
meie := pronoun-lex &
   [ STEM <"meie">,
    SYNSEM.LOCAL[ CAT.HEAD.CASE nom,
    CONT.HOOK.INDEX.PNG [ PER first,
NUM pl ] ] ] .

Testigem!

Adjektiivide lisamine

Lisame uued reeglid, mis  head-adj-int-phrase ja adj-head-int-phrase.
See põhjustab uusi mitmeseid analüüse. Nende vältimiseks lisame reeglitele kitsenduse, et HEAD.MOD < >)
Lisame tüübi adjective-lex.