next up previous contents
Next: The sem_goal> Operator Up: Generation Previous: The Algorithm   Contents

Pivot Checking

ALE's generator uses a simple depth-first search strategy, displaying solutions as it finds them. As a result, it is not complete. Following the suggestion made in Shieber et al. (1990), ALE also checks whether there are semantic head $\rightarrow$ mother sequences that could possibly link a potential pivot to the current root before recursively generating its non-head daughters. If not, then the pivot is discarded. Semantic-head-driven generators that do not prune away such bad pivots from the search tree run a greater risk of missing solutions because top-down generation of the bad pivot's non-head daughters may not terminate, even though it can never yield solutions. This check is valuable because it incorporates syntactic information from the mother and semantic head into the otherwise semantic prediction step.

It also creates another termination problem, however, namely the potential for infinitely long semantic head $\rightarrow$ mother sequences in some grammars. To avoid this, ALE requires the user to specify a bound on the length of chain rule sequences at compile-time. This can be specified with the declaration:


  :- chain_length(4).
Other values than 4 can be used, including 0. The default value is 4. ALE compiles chains of semantic head and mother descriptions of this length to perform the pivot check more efficiently at run-time.


next up previous contents
Next: The sem_goal> Operator Up: Generation Previous: The Algorithm   Contents
Detmar Meurers
2001-03-03