Parallel Conditional Replacement
Q: I am trying to use parallel conditional
replacement explained on pp. 71-72 in the Beesley & Karttunen book
but I succeed only with a small number of parallel rules. If I try to
do a dozen rules in parallel, xfst
just freezes and the machine runs out of memory. How can I get around this?
A: Avoid parallel conditional replacement where
it is not necessary. Compiling big conditional parallel replace
expressions is a heavy operation because of the large number of
auxiliary symbols needed in the process. Use parallel replacements only
if composition is inappropriate. For example, a parallel conditional
rule such as
a -> b || .#. _
,,
x -> y || _
.#. ;
can just as well be expressed with composition as
a -> b || .#. _
.o.
x -> y || _
.#. ;
The two rules are equivalent but the latter compiles faster.