Making BUG complete and coherent



next up previous
Next: Semantic heads Up: BUG: a Directed Previous: The basic structure

Making BUG complete and coherent

The generator defined in <7> is not coherent and not complete (cf. <6>), because <7> derives feature structures whose semantics unifies with the semantics of the original feature structure. Note furthermore that generator <7> can easily fail to terminate because of this lack of coherency. An example of this is <9a>.

<9a> may be the semantics for the sentence 'john eats'. Generator <7> will also try to build all feature structures containing a second argument, e.g. <9b>. For a realistic grammar the number of ways to do this will be infinite (e.g. by adding modifiers, <9c>); therefore BUG will not terminate.

Coherency is achieved by 'freezing' all variables occuring in the semantics of the original feature structure (e.g. by the numbervars predicate built in in some implementations of Prolog). These 'atomic place holders' will not unify with any augmentations to the semantics. In order to do so BUG is redefined as in <10>.

This leaves us with the completeness problem. It is still possible that <10> derives strings like 'john eats' for semantics <9b>. The solution is to test at the end of the generator procedure whether the feature structure that is found is complete with respect to the original feature structure. However, because of the way in which top-down information is used, it is unclear what semantic information is derived by the rules themselves, and what semantic information is available because of unifications with the original semantics. For this reason so called 'shadow' variables are added in BUG that represent the feature structure derived by the grammar itself. Furthermore a copy of the semantics of the original feature structure is made at the start of the generation process. Completeness is achieved by testing whether the semantics of the shadow subsumes this copy. This technique is used in the final version of BUG (see the Appendix).


next up previous
Next: Semantic heads Up: BUG: a Directed Previous: The basic structure



Gertjan van Noord
Fri Nov 25 13:48:52 MET 1994