Page 1 of 1

Sound change applier troubleshooting thread

Posted: Fri Jul 02, 2021 4:56 pm
by dɮ the phoneme
Ok, I was originally having some issues getting a set of sound changes to work in SCA2 (under read more, if you're interested), but I've found a work around so it should be OK for now. On the other hand, I'm new to using sound change appliers in general (I usually do all my sound changes by hand), so I immediately ran into even more issues! I thought it might be good to have a general thread for troubleshooting sound applier syntax etc., so that's what I'm turning this thread into. If you're having trouble getting a certain batch of changes to behave as intended, post them here and maybe someone can help you out.
More: show
I've been trying to write a set of sound changes in SCA2 to handle left-to-right iambic footing, and after many many tweaks it doesn't seem to be working. I've tried to isolate the problem as precisely as I can, and when I run through the changes manually it seems they should work. However, when I put them through SCA2, they give an unexpected result. I'm not sure if this is just me being incredibly dense and missing something, or if it's actually a bug in SCA2. Anyway I was hoping somebody might be able to help me out. Here are the sound changes, stripped down to just the part that doesn't seem to be behaving as expected:

Code: Select all

C=c
V=v
E=.+-,ˈ

-- V is any vowel
-- C is any consonant
-- E is any syllable boundary (written on the right)

-- place syllable boundaries
/./_CV
.//#_
/./_#

-- the minus sign is a light syllable
./-/[E#]CV_

-- the plus sign is a heavy syllable
./+/[E#]CVC_
Since I'm doing iambic footing, I find it more natural to mark syllable/foot boundaries on the right. Anyway, testing this with the strings

cv
cvc
cvcv
cvccv
cvcvc
cvccvc


yields

cv-
cvc+
cv-cv.
cvc+cv-
cv-cvc+
cvc+cvc.


when I believe it should yield

cv-
cvc+
cv-cv-
cvc+cv-
cv-cvc+
cvc+cvc+
.

What am I missing here?

Re: Sound change applier troubleshooting thread

Posted: Sat Jul 03, 2021 1:58 am
by Qwynegold
I can't see where the problem is, but I have a couple of suggestions you could test and see if anything different happens.

1) Try replacing [E#] with [.-+#]
2) Instead of having both E and # inside [], try making it two rules instead, with the environments ECV_ and #CV_
3) Try doubling the last two rules, like:
./-/[E#]CV_
./-/[E#]CV_

Re: Sound change applier troubleshooting thread

Posted: Sat Jul 03, 2021 2:27 am
by Darren
I think what's happening is that sca2 doesn't like applying the same rule to a word a second time when, the first time it applied it, some of the elements that make up the conditions of the second instance are changed. For example, if you put in the rule a/e/VC_ for the word akaka, it spits out *akeka instead of akeke. Even though both at the akaka and akeka stages the final a is in the right conditions, it still doesn't change it. As for fixing this, writing both rules twice should do the job.

Re: Sound change applier troubleshooting thread

Posted: Sat Jul 03, 2021 4:57 am
by alice
Darren wrote: Sat Jul 03, 2021 2:27 am I think what's happening is that sca2 doesn't like applying the same rule to a word a second time when, the first time it applied it, some of the elements that make up the conditions of the second instance are changed. For example, if you put in the rule a/e/VC_ for the word akaka, it spits out *akeka instead of akeke. Even though both at the akaka and akeka stages the final a is in the right conditions, it still doesn't change it. As for fixing this, writing both rules twice should do the job.
In short: el problemo de las bananas.

Re: Sound change applier troubleshooting thread

Posted: Sat Jul 03, 2021 6:18 am
by bradrn
Ooh, thank you for this excellent test case for my new SCA! (It’ll be released soon… any year now…) It looks like it succumbs to the same problem, but changing the rules to apply right-to-left fixes it. (Also, for some reason it doesn’t let me use + and - as letters, so I have to use superscript letters instead.) Thus, the following works:

Code: Select all

categories
V = a e i o u
C = p t k
E = . ʰ ˡ , ˈ
end


/ . / _ C V
. / / # _
/ . / _ #

-rtl . / ˡ / [E #] C V _
-rtl . / ʰ / [E #] C V C _
Though in practise I’d write it more idiomatically with features:

Code: Select all

categories
V = a e i o u
C = p t k

feature V / Vlight = a- e- i- o- u- / Vheavy = a+ e+ i+ o+ u+
end

; heavy vowels are followed by two consonants,
; or a consonant and a boundary
V / Vheavy / C _ C [C #]

; other vowels are light
V / Vlight
(Yes, this post is blatant advertising. I’m not sorry.)