[developers] morphology check in

Ann Copestake Ann.Copestake at cl.cam.ac.uk
Mon Aug 22 05:33:53 CEST 2005

notes on changes just checked in - these could have significant effects,
so I'd be obliged if people tested asap and let me know of problems.

see new test grammar data/polymorphan/ - esp testing.lisp etc in the absence of
further documentation for now

*known-cyclic-rules* - list of rule ids may be set by the
grammar writer to block unwanted error messages

*most-specific-only-p* - see below.  

- rewrote input - cleaned up error messages and sorted out escape characters
(see polymorphan examples).  Only !?* and ) need to be escaped in rules
now, using \.
functions for printing rules etc added

parse.lsp - rewrote code handling interface with morphophonology so
that hypotheses being tried working inwards (i.e., before the stem is
known) now go on an agenda rather than on the tchart.  This removes
all tchart edges which were partial-p - partial-p slot removed.
partial-trees are packed in the agenda - though unpacked when the edge
is added to the chart - this remains todo.  Bug fixed which would have
blocked valid analyses in some obscure case.  Rules which do not
affect spelling in some cases and stems which are longer than
inflected form now properly supported (see polymorphan examples - not
tested on a real grammar yet).  Added count of morphology agenda items to 
be returned by parse.

Finer-grained test for rule feeding, so that we only look at lexical
rules connecting rules with morphological effect.

irregulars treated as special case of morphology subrule

*most-specific-only-p* introduced to specify that if there are no
irregulars only the rightmost pattern of a subrule is valid (blocking
e.g., `manageed' - see polymorphan examples).  With irregulars it
behaves like *irregular-forms-only-p*. Grammar developers using the
LKB morphology might like to use *most-specific-only-p* instead of
*irregular-forms-only-p* - which should work much as before (possibly
some difference in corner cases though)

rules.lsp - changes to rule filter as above.  check added for rules
with %prefix/%suffix specified but ORTH coindexed (this causes active
parser to generate errors).  Bug fix for rule filter in previous
version which wasn't dealing correctly with all cases of cyclic rules.

user-fns.lsp - default value of spelling-change-rule-p now tests for
the %suffix/%prefix - this won't work with grammars that use external
morphology - warning msg will be generated in this case.  This means
NEEDS-AFFIX and similar can be removed.

Testing: extensively tested on test grammar in polymorphan.  Briefly
tested on ERG (first 600+ on CSLI test suite) `the women evaluated
their own staffs' now gives 3 parses rather than 2 - small difference
in edge numbers due to change in approach.  Very brief check of
Berthold's grammar to verify bug is fixed and to check loading.

See polymorphan for new wild card - introduced previously but not
documented.  Really only introduced for grammars which were using
letter set on one side of a rule only - not a particularly good thing to use
because of efficiency and funny interaction with *most-specific-only-p*

Todo: packing (as above).  messages about missing words with active parser
(done for passive parser)

More information about the developers mailing list