Skip to content

Example Grammars from Lecture 18

Table of Contents

Open Table of Contents

Grammar 1

bot sub [cat, agr, num, pers].
    num sub [s, p].
    pers sub [first, second, third].
    agr intro [num:num, pers:pers].
    cat sub [n, v].
        n intro [agr:agr].
            

dog ---> (n, agr:(num:s, pers:third)).
dogs ---> (n, agr:(num:p, pers:third)).

Grammar 2

bot sub [cat, agr, num].
    num sub [s, p].
    agr intro [num:num].
    cat sub [n, det, np] intro [agr:agr].
  
the ---> (det).
this ---> (det, agr:num:s).
these ---> (det, agr:num:p).
dog ---> (n, agr:num:s).
dogs ---> (n, agr:num:p).

np rule
(np, agr:Agr) ===>
cat> (det, agr:Agr),
cat> (n, agr:Agr).

Grammar 3

bot sub [cat, agr, num].
    number sub [s, p].
    person sub [first, second, third].
    agr intro [num:number, pers:person].
    cat sub [s, agreeable].
        agreeable sub [np, vp, det, n, v] intro [agr:agr].

a ---> (det, agr:(num:s, pers:third)).
all ---> (det, agr:(num:p, pers:third)).
the ---> (det, agr:(pers:third)).

dog ---> (n, agr:(num:s, pers:third)).
dogs ---> (n, agr:(num:p, pers:third)).

sleeps ---> (v, agr:(num:s, pers:third)).
sleep ---> (v, agr:(num:p)).

s__np_vp rule
s ===>
cat> (np, agr:Agr),
cat> (vp, agr:Agr).

np__det_n rule
(np, agr:Agr) ===>
cat> (det, agr:Agr),
cat> (n, agr:Agr).

vp__v rule
(vp, agr:Agr) ===>
cat> (v, agr:Agr).

Gaps

bot sub [cat, sem, list, vform, roles, gap_struc].
    roles intro [agent:np, patient:np].
    cat sub [aux, has_sem].
        has_sem sub [np, verbal] intro [sem:sem, gap:gap_struc].
            verbal sub [s, v, vp] intro [roles:roles, subcat:list, vform:vform].

    gap_struc sub [np, none].

    list sub [e_list, ne_list].
            ne_list intro [hd:cat, tl:list].

    vform sub [active, passive].

    sem sub [cat, can, kick].

empty (np, sem:Sem,
    gap:(np, sem:Sem)).

cats ---> (np, sem:cat, gap:none).
cans ---> (np, sem:can, gap:none).
kicked ---> (v, vform:active, sem:kick,
    roles:(agent:Agent, patient:Patient),
    subcat:[(np, Patient), (np, Agent)]).

were ---> aux.

aux rule
    (vp, vform:passive, roles:Roles, sem:VSem, subcat:SubCat, gap:Gap) ===>
    cat> aux,
    cat> (vp, vform:active, roles:Roles, sem:VSem, subcat:SubCat, gap:Gap).

vp rule
    (vp, vform:VForm, roles:Roles, sem:VSem, subcat:Rest, gap:Gap) ===>
    cat> (v, vform:VForm, roles:Roles, sem:VSem, subcat:[NP|Rest]),
    cat> (np, NP, gap:Gap).

s_active rule
    (s, sem:Sem, roles:Roles, vform:VF, subcat:(Rest, []), gap:Gap) ===>
    cat> (np, NP),
    cat> (vp, sem:Sem, roles:Roles, vform:(active, VF), subcat:[NP|Rest], gap:(none, Gap)).

s_passive rule
    (s, sem:Sem, roles:Roles, vform:VF, gap:none, subcat:(Rest, [])) ===>
    cat> (np, NP),
    cat> (vp, sem:Sem, roles:Roles, vform:(passive, VF), subcat:[_|Rest], gap:NP).