Computational Linguistics 6, Exercise 1: testing the grammar Code (run with py -X utf8, using the chapter's parse): for sent in ["the man saw i", "i saw", "the telescope saw the man", "the man saw the telescope"]: print(sent, len(parse(sent.split()))) Output from the run: the man saw i 1 i saw 0 the telescope saw the man 1 the man saw the telescope 1 Does it match English? - "the man saw i": accepted (1 parse), but ungrammatical in standard English ("me" is needed). The grammar has no case; "i" is just a pronoun NP. - "i saw": rejected (0 parses), but it is a fine English sentence. Every VP rule needs an object, so intransitive uses are impossible. - "the telescope saw the man": accepted, although odd; the grammar has no notion of what can see. This is a meaning limit, not a syntax limit. - "the man saw the telescope": accepted, correctly. Limits: the first is a missing-agreement/case limit (the article says context-free rules do not capture agreement and reference); the second is undergeneration by my own incomplete rules; the third is that the grammar knows nothing about meaning. All three are properties of the grammar I wrote.