The assorted finds of Artefact Publishing


I have rewritten Mark Rosenfelder’s Sound Change Applier C program in Python. I’m not linking to it yet because there are only two areas in which it is an improvement on the original (it can easily be used by other scripts, and its output of applied rules is more helpful), and there’s also a Perl version already out there.

As noted in the documentation for the original, the program is powerful because it’s simple — it doesn’t do any interpretation of the input it is given. You could represent changes on the phonemic or phonetic levels, or mix the two, or whatever. This is both good and bad, and since the other versions exist, I thought I’d try to change mine so that the bad becomes good (at the expense of the reverse). I want to add an interpretive layer to the basic engine, to model a particular level of change (say, phonetic). This would involve defining sets of variables and mapping the symbols used by the sound change engine to symbols more recognisable to linguists, and allowing for easy rule-building.

Of course, having very little knowledge of linguistics, I may well be reinventing the wheel (though a quick search reveals only the Reconstruction Engine (program not released) and Phono (no source code)) and certainly I’ll be requiring the assistance of a friendly linguist (who has already told me I shouldn’t use the word “level” above). Of course, I wrote my version as a chance to play around with Python’s unit testing facilities, and my main hope for the add on is the chance to play around with whizzy fonts, so that doesn’t bother me in the slightest.

Oh, and the title of this post? I couldn’t think of a more fitting name for a version of a sound change program whose executable is called “sounds”. I am unrepentant.

Posted by jamie on May 20, 2003 20:24+12:00