[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