Previously we were talking about control verbs, e.g. ‘promise’ and ‘persuade’. These have different ‘controllers’. E.g.
- Sandy persuaded Kim to come home early. The VP ‘to come home early’ is related to Kim, but.
- Sandy promised Kim to come home early. The VP ‘to come home early’ is related to Sandy.
- John likes Mary. Mary is a complement/argument of ‘likes’.
- The book on the table. ‘On the table’ is a modifier/adjunct of book.
The distinction between argument and adjunct is a pillar of modern syntactic theory.
Usually modifiers do not modify the head, they only specialise the meaning. You can add as many modifiers as you like, and they predictably map the mening of the head to another meaning.
The interpretation of complements are totally determined by the head, e.g. argument [with John] [about the booking]. Complements cannot be repeated, you can’t have ‘the sister of Leslie of Gerry’.
PP attachment ambiguity
PP modifiers are really ambiguous, e.g. I painted the frame in the shop. Most tools can only get less than 80% accuracy.
Using lists in Prolog
Prolog terms have fixed arity, which makes it difficult to extend the grammar. So use lists instead;
s(VForm) --> np(Per, Num), vp(VForm, Per, Num). vtrans(fin, 1 sg) --> [write]. becomes: s([vform:VForm|_]) --> np([per:Per,num:Num|_]), vp([vform:VForm,per:Per,num:Num|_]). vtrans([vform:fin,per:1,num:sg|_]) --> [write].
Now we can add what we like without changing the rules. Basically you’re using a list for the arguments with an uninstantiated tail so that other things can be added. Maintains backwards compatibility.