*mumble* *grumble* sound changes *mutter* (longish)
|From:||Benct Philip Jonsson <bpj@...>|
|Date:||Friday, April 28, 2006, 13:39|
Henrik Theiling skrev:
> In a (remote) future version of the script, stress will probably be
> directly supported. Benct had to do some complicated stuff, too, to
> handle stress, I think. I did not need it, since stress is always on
> the first syllable in my file, but I did put it onto my TODO list.
(A bit longish)
I think one useful thing to do, and hopefully easy to
program(?), would be to make it possible to define a macro
group the members of which will be ignored unless explicitly
invoked in the match or context, and into which one could
throw stressmarks, lengthmarks, aspiration marks and other
character/character sequences that have a
"diacritic"/modifier function. That way one can write a
g > j / _ '? (i,e)
without the '?, and g becoming j before unstressed
unstressed front vowels alike, since one normally wants such
changes to apply regardless of whether the vowel is stressed
or not. If one for some strange reason would want to
formulate the odd rule that g becomes j before an unstressed
but not before a stressed front vowel you could write a
catching rule first:
g' > _
g > j / _ (i,e)
What actually happened in Swedish and Norwegian was that
velars became palatal fricatives only before stressed front
vowels, and I think that the most natural thing for
languages would be that a context-sensitive (usually
assimilatory) change happens either regardless of stress or
only under stress, while such a change happening only in
unstressed context is extremely unlikely.
(Writing the stress mark after the vowel would simplify
a case like the one above, but you do have cases like
G > j / (i,e):? _ -- in Old English
x > ç / (i,e,ä,ö) :? _ -- in German
where you have to use that pesky and easily forgotten
? quantifier again. Thus the best thing would be if
one could omit "diacritics" where they don't matter.
I thought that it would be a good idea to somehow
programmatically flag a syllable for stress, like a
condition, but how would the program know that the
stress applies to a certain syllable (unless you keep
the word in an array ("con" => "secondary stress",
"vo" => "unstressed", "lu" => "primary stress",
"tion" => "unstressed") -- maybe that *is* the way
you handle conditions? In the end (and beginning)
you will anyway need to put the stress (and possible
un-stress) marks as characters into the string, in order
to in/output them in a human-readable manner.
(I'm not a programmer, this is not programming advice.
It is linguistic advice, though...)
BTW your subrule precedence principle is great!
I could write the Swedish vowel shift in the order
things actually happened:
a: > o: -- a: isrounded and raised
o (C,V) > _ -- short o is not affected
o: > u: -- long o: is raised
u > ü -- old u, long or short, is fronted.
Without subrule 1 feeding subrule 3, which in turn
does not feed subrule 4! Yeah!
Benct Philip Jonsson -- melroch at melroch dot se
"Maybe" is a strange word. When mum or dad says it
it means "yes", but when my big brothers say it it
(Philip Jonsson jr, age 7)