[developers] nested chains of orthographemic rules

Stephan Oepen oe at csli.Stanford.EDU
Wed Feb 1 00:44:58 CET 2006

hi ann,

in debugging with the korean grammar, i noticed that an orthographemic
chain with three elements failed to be added to the token chart:

         (#[rule V-PST_IRULE o] #[rule V-DECL-INFM_IRULE o]
          #[rule V-COMP-KO4_IRULE o]))
  0[2]: returned NIL

i verified using interactive unification that i can build a tree from
those three rules (with V-COMP-KO4_IRULE at the top).

looking at the code

  (defun check-rule-filter-morph-aux (rule-list)
    (if (cdr rule-list)
        (let ((first-rule (car rule-list)))
          (dolist (other (cdr rule-list))
            (unless (check-nosp-feeding other first-rule)
              (return-from check-rule-filter-morph-aux nil)))

you seem to be expecting to feed the bottom of the chain into each of
the subsequent orthographemic rules, which in this case fails for the
pair V-COMP-KO4_IRULE dominating V-PST_IRULE.  i have yet to work out
how exactly the new morphology code operates, but i suspect the test
for the above should be pair-wise connectivity in the chain.  thus, i
tested a variant definition:

  (defun check-rule-filter-morph-aux (rules)
        for (first . rest) on rules
        while rest
        always (check-nosp-feeding (first rest) first)))

this seems to fix my problem.  can you confirm this is a good bug fix?
our korean colleagues are eager to demonstrate at a workshop.  i would
like to generate a new build incorporating this fix tomorrow.

                                                  many thanks  -  oe

+++ Universitetet i Oslo (IFI); Boks 1080 Blindern; 0316 Oslo; (+47) 2285 7989
+++     CSLI Stanford; Ventura Hall; Stanford, CA 94305; (+1 650) 723 0515
+++       --- oe at csli.stanford.edu; oe at hf.uio.no; stephan at oepen.net ---

More information about the developers mailing list