Re: Reversible sound change applier
From: | Alex Fink <a4pq1injbok_0@...> |
Date: | Friday, May 12, 2006, 1:58 |
On Thu, 11 May 2006 23:12:36 +1200, Jamie Norrish <jamie@...> wrote:
>Alex Fink writes:
>
>[IPA Zounds]
> > I wonder exactly how it reverses, though? Having a strong
> > theoretical bent (could you tell, the way I rave about
> > transducers?), one of the things I like about rsca's approach is
> > that the forward and reverse applications of any transformation are
> > (with a few exceptions) precisely inverse relations on strings. A
> > cursory glance at the source suggests that IPAZounds takes a
> > regular expression approach, and it seems to me much harder to
> > guarantee this property with regexps when the environments of
> > changes can overlap their domains of application.
>
>The reverse applier is not elegant in its internals, but I believe it
>copes fairly well in such cases. I would certainly welcome test cases
>where it fails, so that I can try to fix them.
Since asserting that I've realized that all my difficult examples rely on
the non-directional application that rsca does. I assume you apply the
transformations left-to-right or right-to-left to any given word? In this
case there's probably no problem, since you can unapply in the opposite
direction.
>It's an inherently complicated business, of course, as you've noted. I
>added in some constraints so that the resuts returned are not
>overwhelming. There is a length constraint (not more than some
>multiplier of the original word long, with a minimum), and the user
>can supply syllable definitions which the antecedents must match in
>order to be displayed. I've gone round and round on whether to allow
>the user to specify a phoneme inventory in order to cut down
>possibilities that way - the problem is that in order to be really
>useful, it should be an inventory of all the possible intermediate
>sounds, so that words can be excluded at each point (thus greatly
>reducing the amount of words that need to be computed in the
>subsequent steps). Again, I'd welcome people's thoughts on this.
My philosophy is that the phonology (and more generally the phonotactics)
can't be expected to change wildly with any one transformation; generally
only a single class of sounds will join the phonology at any given point.
So, with rsca, if the language gains [1] (say) at some point in the
derivation, just before the relevant rule you'd insert a constraint
* 1
so that in reverse operation, any words with a [1] which hadn't gotten
rid of it by then would be discarded. This way complete phonologies don't
need to be specified, only the differences induced by that transformation.
This approach needs a bit of elaboration to do the right thing with
persistent processes, though; perhaps it's too patchworkish for your liking
anyway.
Alex