[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:
0[2]: (CHECK-RULE-FILTER-MORPH-AUX
(#[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)))
t)
t))
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)
(loop
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