[developers] Trigger rules with specialization

Woodley Packard sweaglesw at sweaglesw.org
Sat Dec 10 19:04:31 CET 2011


Dear developers,

I am trying to formulate an extension to the generation trigger rule  
system that will allow grammarians to add additional constraints to  
triggered vacuous (semantically empty) lexemes, based on the context  
where the trigger rule matched.  The motivation for this is to allow  
finer grained control over both the inflected forms of these vacuous  
lexemes that have to be considered, and the locations where they can  
appear.

Here are some examples of the pain point: in English, the auxiliary  
verb forms "did" and "does" are vacuous, but their inflection depends  
on the agreement properties of their subject.  The ERG avoids allowing  
both forms into the generation chart by having two separate lexemes  
and two separate trigger rules -- one for "did" and one for "does".  I  
imagine this is a slight maintenance headache, but it works fine.  In  
Wambaya, Emily is dealing with auxiliaries that inflect for both  
subject and object agreement, yielding (if I understand correctly)  
many, many forms.  In her case, maintaining a full-form auxiliary  
lexicon is impractical.  In German, Berthold is dealing with vacuous  
prepositions that need a way of specifying what their complement is,  
and also particle verbs which can combine in the wrong place.  Emily  
and Berthold both report that this is a very significant strain on  
generation efficiency, especially as sentences get more complex.

An unimplemented proposal was floated some time ago to allow trigger  
rules to write to their OUTPUT.HOOK, essentially serving to skolemize  
the LTOP, INDEX and XARG variables in the vacuous element's HOOK.   
This proposal is nice because it sticks to the semantic spirit of the  
formalism in which the trigger rules are encoded. It would solve some  
problems of this type, but from what I hear from both Emily and  
Berthold, it unfortunately would not solve the bulk of the problem at  
least in their cases.

The current proposal under consideration, which covers all the cases I  
am aware of, is to allow trigger rules to add arbitrary constraints to  
the vacuous lexeme's AVM, e.g.:

my_exuberant_auxiliary_trigger_rule := trigger_rule &
         [ CONTEXT [ RELS <! [ PRED "~_v_",
                                       ARG0 [ whatever ],
                                       ARG1 [ PNG #subj_png ],
                                       ARG2 [ PNG #obj_png ] ] !> ],
           FLAGS.TRIGGER "my-exuberant-auxiliary",
            FLAGS.TRIGGER-CONSTRAINT [ SYNSEM.LOCAL.CAT.VAL
                              [ SPR < CAT.HEAD.AGR #subj_png >,
                                COMPS < CAT.VAL.COMPS < CAT.HEAD.AGR  
#obj_png > > ] ] > ].

I believe I could implement such functionality in the ACE generator  
pretty easily.   I realize that implementation of this system in the  
LKB is unlikely in the foreseeable future (unless I do it myself,  
which is unlikely given my knowledge of LKB internals).  For this  
reason, I think interested grammarians would be encouraged to use the  
facility solely for efficiency purposes, and still rely on the post- 
generation compatibility test to filter out unwanted combinations  
whenever possible.

Does any of you developers have suggestions or criticisms?  If I am  
going to tempt some grammarians to start writing rules of this form, I  
want to make sure that it is thought through well enough that it (a)  
is sufficiently general and (b) doesn't interact terribly with someone  
else's code or strongly-held views :-)

Thanks for your input,
Woodley Packard



More information about the developers mailing list