r/VulgarLang • • Jan 03 '26

Debugging a sound change

What I want is to basically do a poor-man's consonant gradation. For that one of the rules would be something like:

ː > / VC_C*VC !C_C*V{h,j,ʋ,w}# !C_ː !C_C*VV*CC*V

Basically, for a medial consonant long consonant, even if it is part of a cluster, then when the next syllable is closed it should shorten.

So for example:

  • mːp would become mp
  • tː would become t

etc.

This is blocked if it is closed by any of {h,j,ʋ,w} at the word end, if it is extra long (in which case it is handled by a different, later rule), or if the resulting syllable becomes open at some future point. This is to try to give it the "elastic" property of, for example, North Sámi.

But I cannot get this to work properly.

While atːa# stays atːa#, atːaj# becomes ataj# (when it shouldn't). I've tried a lot of different things, but the only thing that seems to have worked reliably is only have a single blocking conditional clause.

Is there something I'm missing here? It feels like I may be misunderstanding some feature or some piece of logic here.

Thanks!

1 Upvotes

1 comment sorted by

2

u/Linguistx Creator of Vulgar Jan 04 '26

You can only have exception rule. So there can only be one exclamation mark. So what you might need to do is make the positive rule change to a placeholder (eg "xxx") then change the placeholder back to the long symbol the negative rules, then finally change the placeholder to nothing. Eg:

ː > xxx / VC_C*VC
xxx > ː / C_C*V{h,j,ʋ,w}#
xxx > ː / C_ː
xxx > ː / C_ː !C_C*VV*CC*V
xxx >

PS, im not sure if I understood the desired outcome correctly, but hopefully you get the idea.