Consider the following contrasts:
The verb like requires an NP complement, while put requires both a following NP and PP. (45) and (46) show that these complements are obligatory: omitting them leads to ungrammaticality. Yet there are contexts in which obligatory complements can be omitted, as (47) and (48) illustrate.
(47) a. Kim knows who you like. b. This music, you really like.
(48) a. Which card do you put into the slot? b. Which slot do you put the card into?
That is, an obligatory complement can be omitted if there is an appropriate filler in the sentence, such as the question word who in (47a), the preposed topic this music in (47b), or the wh phrases which card/slot in (48). It is common to say that sentences like those in (47) and (48) contain gaps where the obligatory complements have been omitted, and these gaps are sometimes made explicit using an underscore:
(49) a. Which card do you put_into the slot?
b. Which slot do you put the card into_?
So, a gap can occur if it is licensed by a filler. Conversely, fillers can occur only if there is an appropriate gap elsewhere in the sentence, as shown by the following examples:
b. *This music, you really like hip-hop.
(51) a. *Which card do you put this into the slot?
b. *Which slot do you put the card into this one?
The mutual co-occurrence between filler and gap is sometimes termed a "dependency." One issue of considerable importance in theoretical linguistics has been the nature of the material that can intervene between a filler and the gap that it licenses; in particular, can we simply list a finite set of sequences that separate the two? The answer is no: there is no upper bound on the distance between filler and gap. This fact can be easily illustrated with constructions involving sentential complements, as shown in (52).
b. Who do you claim that you like_?
c. Who do you claim that Jody says that you like_?
Since we can have indefinitely deep recursion of sentential complements, the gap can be embedded indefinitely far inside the whole sentence. This constellation of properties leads to the notion of an unbounded dependency construction, that is, a filler-gap dependency where there is no upper bound on the distance between filler and gap.
A variety of mechanisms have been suggested for handling unbounded dependencies in formal grammars; here we illustrate the approach due to Generalized Phrase Structure Grammar that involves slash categories. A slash category has the form Y/XP; we interpret this as a phrase of category Y that is missing a subconstituent of category XP. For example, S/NP is an S that is missing an NP. The use of slash categories is illustrated in (53).
The top part of the tree introduces the filler who (treated as an expression of category NP[+wh] ) together with a corresponding gap-containing constituent S/NP. The gap information is then "percolated" down the tree via the VP/NP category, until it reaches the category NP/NP. At this point, the dependency is discharged by realizing the gap information as the empty string, immediately dominated by NP/NP.
Do we need to think of slash categories as a completely new kind of object? Fortunately, we can accommodate them within our existing feature-based framework, by treating slash as a feature and the category to its right as a value; that is, S/NP is reducible to S[SLASH=NP]. In practice, this is also how the parser interprets slash categories.
The grammar shown in Example 9-3 illustrates the main principles of slash categories, and also includes productions for inverted clauses. To simplify presentation, we have omitted any specification of tense on the verbs.
Example 9-3. Grammar with productions for inverted clauses and long-distance dependencies, making use of slash categories.
# Grammar Productions
# Lexical Productions
The grammar in Example 9-3 contains one "gap-introduction" production, namely S[-INV] -> NP S/NP. In order to percolate the slash feature correctly, we need to add slashes with variable values to both sides of the arrow in productions that expand S, VP, and NP. For example, VP/?x -> V SBar/?x is the slashed version of VP -> V SBar and says that a slash value can be specified on the VP parent of a constituent if the same value is also specified on the SBar child. Finally, NP/NP -> allows the slash information on NP to be discharged as the empty string. Using the grammar in Example 9-3, we can parse the sequence who do you claim that you like:
>>> tokens = 'who do you claim that you like'.split() >>> from nltk import load_parser
>>> cp = load_parser('grammars/book_grammars/feat1.fcfg') >>> for tree in cp.nbest_parse(tokens): ... print tree (S[-INV] (NP[+WH] who)
(s[+inv]/np (V[+AUX] do) (NP[-WH] you) (VP/NP (V[-AUX, SUBCAT='clause'] claim) (SBar/NP (Comp that)
(vp/NP (V[-AUX, SUBCAT='trans'] like) (NP/NP ))))))) A more readable version of this tree is shown in (54).
The grammar in Example 9-3 will also allow us to parse sentences without gaps:
>>> tokens = 'you claim that you like cats'.split() >>> for tree in cp.nbest_parse(tokens): ... print tree (S[-INV] (NP[-WH] you) (VP
(V[-AUX, SUBCAT='clause'] claim) (SBar (Comp that)
(VP (V[-AUX, SUBCAT='trans'] like) (NP[-WH] cats))))))
In addition, it admits inverted sentences that do not involve wh constructions:
>>> tokens = 'rarely do you sing'.split() >>> for tree in cp.nbest_parse(tokens): ... print tree (S[-INV] (Adv[+NEG] rarely) (s[+inv]
Was this article helpful?