General
Material
Lecture 1
Lecture 2
Lecture 3
Lecture 4
Lecture 5

Solution

You have to add an extra argument to the following predicates: np, vp, det, n, pn, pro, vi, vt, and any other verb types that you might have.

Subject NPs should agree in their number with the verb phrase.

s --> np(subj,NUM), vp(NUM).
    
Determiner should agree in their number with the noun. The number of the noun determines the number of the NP.
np(_,NUM) --> det(NUM), n(NUM).
    
The number of the proper name or pronoun determines the number of the NP.
np(_,NUM) --> pn(NUM).
np(CASE,NUM) --> pro(CASE,NUM).
    
This is a new rule. Plural nouns can occur without determiner.
np(_,pl) --> n(pl).
    
The number of the VP is determined by the number of the verb. The number of object NPs is independent of the number of the verb.
vp(NUM) --> vi(NUM).
vp(NUM) --> vt(NUM), np(obj,_).
    
The determiner a can only be used for singular noun phrases, the determiner the can be used for singular as well as for plural noun phrases.
det(sing) --> [a].
det(_) --> [the].
    
The lexicon specifies whether a noun, proper name or pronoun is singular, plural, or both (as, for example, yakuza).
n(sing) --> [bride].
n(pl) --> [brides].
n(sing) --> [nurse].
n(pl) --> [nurses].
n(_) --> [yakuza].
n(sing) --> [whiskey].

pn(sing) --> [bill].
pn(sing) --> [gogo].

pro(subj,sing) --> [he].
pro(subj,sing) --> [she].
pro(obj,sing) --> [him].
pro(obj,sing) --> [her].
pro(subj,pl) --> [they].
pro(obj,pl) --> [them].
    
The lexicon also specifies whether a verb form is singular or plural.
vi(sing) --> [whistles].
vi(pl) --> [whistle].
vi(sing) --> [fights].
vi(pl) --> [fight].

vt(sing) --> [drinks].
vt(pl) --> [drink].
vt(sing) --> [kills].
vt(pl) --> [kill].
    

Download this knowledge base here.

Back to the exercise.