Page 1 of 1

Help designing an SCA, some edge cases

Posted: Fri Jul 15, 2022 4:23 pm
by zyxw59
I'm currently working on (re-)writing an SCA https://github.com/zyxw59/rssc and I came across some edge cases while thinking about how to implement replacements. I'm curious what other people would expect in the given scenarios:
  1. a > e / n_n ("replace 'a' with 'e' when preceded and followed by 'n'") applied to "nanana"
  2. a > e / a_ applied to "aaa"
  3. a > ea / a_ applied to "aaa"
  4. a > e ! e_ (! indicates "except in this environment") applied to "aaa"
  5. a > e ! e.*_ (.* indicates "zero or more letters") applied to "aaa"
  6. a > e ! a_ applied to "aaa"
My thoughts on these cases:
More: show
  1. "nenena": the 'n' can be used in the environment of multiple matches
  2. "aea": the 'a' in the environment can't overlap with the 'a' that gets replaced
  3. "aeaa": same reasoning as above, but a bit less compelling since there is still an 'a' before the final 'a'
  4. "eee": since the environment is negative, there's nothing to "overlap" with the 'a's that get replaced. I'm not super convinced this is reasonable, though.
  5. "eee": same as above
  6. "eaa": same as above

Re: Help designing an SCA, some edge cases

Posted: Fri Jul 15, 2022 8:29 pm
by bradrn
I tried these in my SCA, and I got:
  1. nenena
  2. aea, though if you apply it RTL you get aee
  3. aeaa, with the same proviso
  4. eae, with the same proviso (RTL gives eee)
  5. eee
  6. eee, though RTL gives eaa

Re: Help designing an SCA, some edge cases

Posted: Sat Jul 16, 2022 1:13 pm
by Emily
what i would want (thought not necessarily expect out of any given SCA) is for it to apply one rule to the entire word at once, rather than going left to right or vice versa. for the second example, there are two instances of /aa/, so both should trigger the rule. if i'm getting the result "aea", that means it's not applying the rule to the whole word at once, it's just applying it to the first valid instance of /aa/ that it finds, then looking for another instance *after* applying the rule once, not finding one, and moving on. what i would want is for it to apply it to every applicable instance in the word at once. so what i would want from the input in the OP is:
  1. nenena
  2. aee
  3. aeaea
  4. eee
  5. eee
  6. eaa
again, i'm not going to necessarily assume any given SCA implementation will actually produce these results, but this is generally how i'm thinking about the rules i'm making. (bradrn's LTR/RTL proviso solves for the given rules, but not if the environments happen to be _a and _e instead of a_ and e_)

Re: Help designing an SCA, some edge cases

Posted: Sun Jul 17, 2022 3:01 pm
by Vilike
By default, a group of rules in Lexurgy is applied on all segments of the word at once, giving as results exactly what Emily wants:
  1. nenena
  2. aee
  3. aeaea
  4. eee
  5. eee
  6. eaa

Re: Help designing an SCA, some edge cases

Posted: Sun Jul 17, 2022 3:49 pm
by Travis B.
To me that seems right too.

Re: Help designing an SCA, some edge cases

Posted: Sun Jul 17, 2022 8:03 pm
by bradrn
Not sure I entirely agree with this. My understanding is that, in phonology, sound laws do in fact occur in a particular direction, rather than simultaneously. (For details refer to e.g. Howard 1972, though alas I can’t seem to find the original paper which introduced this idea.)