As explained in section 3.2 this can easily be implemented in a unification-based grammar, using a simple threading technique and an empty verb. Rule 5 consists of a verb and a verb phrase that misses this verb. There is some freedom in choosing the head of this rule. If it is the case that the verb always is the semantic head of rule 5 then BUG can be made to work properly if the prediction step includes information about the verb second position that is percolated via the other rules (the v2 attribute). In general however, the verb will not be the semantic head of the sentence, as is the case in this grammar. Because of rule 11, the verb can have a different logical form compared to the logical form of the mother of rule 5. This leads to a problem for BUG. The problem comes about because BUG can (and must) at some point predict the empty verb as the lexical head of the construction. However in the definition of this empty verb no information (such as the list of complements) will get instantiated (unlike in the usual case of lexical entries). Therefore rule 1 can be applied an unbounded number of times. The length of the lists of complements now is not known in advance, and BUG will not terminate.
In [97] an ad-hoc solution is proposed. This solution assumes that the empty verb is an inflectional variant of a verb. Moreover inflection rules are applied when the generation process proper, is finished (and has yielded a list of lexical entries), as described in the previous section. During the generation process the generator acts as if the empty verb is an ordinary verb, thereby circumventing the problem. However this solution only works if the head that is displaced is always a lexical entry. This is not true in general. In Dutch the verb second position can not only be filled by (lexical) verbs but also by a conjunction of verbs (cf. 26c). Moreover it seems to be the case that Spanish is best analyzed by assuming the `movement' of complex verbal constructions to the second position (verb phrase second).
A more general solution is proposed in [98,87]. In this solution it is assumed that there is a relation between the empty head of a construction, and some other construction (in the case of verb second, the verb in second position). However the relation is usually implicit in a grammar; it comes about by percolating the information through different rules from the verb second position to the verb final position. In the proposal under discussion this relation is made explicit by defining an empty head as a clause with two arguments as in 27.
This definition can intuitively be understood as follows: once you
have found some node
Ant (the first argument of
), then there could have been just as well the (gap-) node
Gap (the second argument of
). Note that a lot
of information is shared between the two nodes, thereby making the
relation between the antecedent and the empty verb explicit. The use
of such rules can be incorporated in BUG by adding the following
clause for
:
Note that the problem is now solved because the rule for the gap will
only be selected, after its antecedent has been built. Some parts of
this antecedent are then unified with some parts of the gap. The
subcat list, for example, will thus be instantiated in time. The
sentence
is generated using this technique as in figure 3.13.
In step number 4, the ordinary finite
verb is predicted as the head of the verb phrase.
In step number 5, the generator uses the definition of
`head_gap' to `replace' this verb with an empty element, in
which the information of the verb is instantiated. Finally, in step
number 15, the verb `vertelt' is generated as a non-head daughter.
On the other hand, this solution can be criticised because it requires some information to be stated redundantly. Furthermore, if several different head_gaps are defined then the generator may yield spurious ambiguities. In the next chapter a completely different analysis of verb second is proposed that is not problematic for a head-driven generator of the type discussed here. In this analysis grammar rules may combine their daughters by more complex string operations than those usually allowed in unification grammars. In the current grammar, strings are combined by (a difference-list implementation of) concatenation. In the next chapter more powerful string combination operations are investigated.