Brassica SCA [v1.0.0]

Conworlds and conlangs
bradrn
Posts: 7503
Joined: Fri Oct 19, 2018 1:25 am

Re: Brassica SCA [v1.0.0]

Post by bradrn »

Raholeun wrote: Thu Jul 24, 2025 5:20 am I was wondering if it is possible to easily see which rules have NOT been applied for any given word list. Sure, you could peace it together from the "Report rules applied" view, but that quickly becomes very laborious. Is there an alternative?
Interesting feature request! I’ll add it to the list.
Darren wrote: Thu Jul 24, 2025 7:13 am It would also be a nice feature to have a way of highlighting which words a specific rule applies to. You can do it by deleting and reinserting the rule and highlighting changes from last run though so it's no biggie.
Yep — I tend to do this similarly, by simply commenting and uncommenting the rule to see what gets highlighted. It might be nice to have a more formalised way of doing this but it’s not a priority.
Conlangs: Scratchpad | Texts | antilanguage
Software: See http://bradrn.com/projects.html
Other: Ergativity for Novices

(Why does phpBB not let me add >5 links here?)
DorotheaBrooke
Posts: 16
Joined: Thu May 15, 2025 10:06 pm

Re: Brassica SCA [v1.0.0]

Post by DorotheaBrooke »

Quick question - I don't have any real programming experience and had a little trouble figuring out how to do this from the documentation (partly because I have a cold.) I'm working on a series on sound changes for one of the Kuzitic branches which sees a two tone system develop into a pitch accent system, so I need changes that can do things like "turn all but the rightmost high tones in the word into low tones" or "turn the rightmost syllable in a word with only low toned syllables into a high tone." Where would I get started doing something like that?
Lērisama
Posts: 745
Joined: Fri Oct 18, 2024 9:51 am
Location: Kernow Voy

Re: Brassica SCA [v1.0.0]

Post by Lērisama »

DorotheaBrooke wrote: Tue Sep 16, 2025 12:21 pm Quick question - I don't have any real programming experience and had a little trouble figuring out how to do this from the documentation (partly because I have a cold.) I'm working on a series on sound changes for one of the Kuzitic branches which sees a two tone system develop into a pitch accent system, so I need changes that can do things like "turn all but the rightmost high tones in the word into low tones" or "turn the rightmost syllable in a word with only low toned syllables into a high tone." Where would I get started doing something like that?
For this, I'm assuming your high tone vowels are in a category called +high and low tone in one called -high, and a syllable structure of (C)V. It obviously doesn't matter but it allows me to test and give valid rules to you in the simplist formst possible¹.

The first rule is what wildcard matching is for. When a character in the environment is preceded by a the wildcard ^, brassica moves rightwards across the word from the target to the end until it finds something matching the wildcarded character. It can therefore be written as +high / -high / _ ^+high, i.e. a high tone vowel will be changed to a low tone vowel if it is followed by a high tone vowel anywhere in the word.

The second one is more complicated, but can be solved using the same principle. The differences from the previous is that you want the sound change to happen only if the wildcard doesn't match, and that you need the matching to occur leftwards from the target. The first can be solved by putting the wildcard in an exception instead ofnthe environment, and the second can be faked by adding the -rtl flag, which makes brassica perform the soundchange in reverse. Putting this together, the rule is -rtl -high / +high / _ # // ^+high _, i.e. working backwards, brassica will change a low toned vowel to a high toned one if it occurs word finally and isn't followed (or preceded, since this change is working backwards) by a high tone vowel anywhere in the word.

I hope this helps and is the right level of explanation for you.

¹ I tested this with the below

Code: Select all

extra k
categories
-high = a
+high = á
V = &&high
auto -high
end

+high / -high / _ ^+high
-rtl -high / +high / _ # // ^+high _
Output:
ákákáká → akakaká [rule 1 test]
akakaka → akakaká [rule 2 test]
akákaka [none applied test]
LZ – Lēri Ziwi
PS – Proto Sāzlakuic (ancestor of LZ)
PRk – Proto Rākēwuic
XI – Xú Iạlan
VN – verbal noun
SUP – supine
DIRECT – verbal directional
My language stuff
bradrn
Posts: 7503
Joined: Fri Oct 19, 2018 1:25 am

Re: Brassica SCA [v1.0.0]

Post by bradrn »

Lērisama is hereby promoted to the position of Official Frontline User Support for Brassica.

(No, it’s no use arguing; you brought it upon yourself…)
Conlangs: Scratchpad | Texts | antilanguage
Software: See http://bradrn.com/projects.html
Other: Ergativity for Novices

(Why does phpBB not let me add >5 links here?)
Lērisama
Posts: 745
Joined: Fri Oct 18, 2024 9:51 am
Location: Kernow Voy

Re: Brassica SCA [v1.0.0]

Post by Lērisama »

Just you wait until I get the time to finally get my head around Haskell¹… I have plans². (mwa ha ha!)

¹ That's a bit unfair to Haskell; it's more that it takes quite a bit of time to work out what X line of Haskell does, and I don't have enough experience to be able to reliably guess if function X is a prelude function, from one of the modules imported, or something defined in Brassica, which makes understanding the program a bit difficult
² You permitting, of course. If I ever get to that stage, the occasionally mentioned “list of things to implement” will probably be the source of those plans, if it is made public
LZ – Lēri Ziwi
PS – Proto Sāzlakuic (ancestor of LZ)
PRk – Proto Rākēwuic
XI – Xú Iạlan
VN – verbal noun
SUP – supine
DIRECT – verbal directional
My language stuff
bradrn
Posts: 7503
Joined: Fri Oct 19, 2018 1:25 am

Re: Brassica SCA [v1.0.0]

Post by bradrn »

Lērisama wrote: Wed Sep 17, 2025 2:00 am I don't have enough experience to be able to reliably guess if function X is a prelude function, from one of the modules imported, or something defined in Brassica, which makes understanding the program a bit difficult
Use Hoogle to search for functions in Haskell libraries, and any code search tool (I like ripgrep) to find functions within Brassica. Or you could set up HLS and use its ‘jump to definition’ functionality. (You should really set up HLS anyway, if you want to do Haskell development.)
Conlangs: Scratchpad | Texts | antilanguage
Software: See http://bradrn.com/projects.html
Other: Ergativity for Novices

(Why does phpBB not let me add >5 links here?)
DorotheaBrooke
Posts: 16
Joined: Thu May 15, 2025 10:06 pm

Re: Brassica SCA [v1.0.0]

Post by DorotheaBrooke »

Thank you much!!
bradrn
Posts: 7503
Joined: Fri Oct 19, 2018 1:25 am

Re: Brassica SCA [v1.0.0]

Post by bradrn »

Darren wrote: Thu Jul 24, 2025 7:13 am It would also be a nice feature to have a way of highlighting which words a specific rule applies to. You can do it by deleting and reinserting the rule and highlighting changes from last run though so it's no biggie.
I got some spare time and felt like programming today, so I had a go at implementing this. It was actually pretty easy!
Conlangs: Scratchpad | Texts | antilanguage
Software: See http://bradrn.com/projects.html
Other: Ergativity for Novices

(Why does phpBB not let me add >5 links here?)
Darren
Posts: 1031
Joined: Mon Nov 18, 2019 2:38 pm

Re: Brassica SCA [v1.0.0]

Post by Darren »

bradrn wrote: Sat Oct 04, 2025 3:07 pm
Darren wrote: Thu Jul 24, 2025 7:13 am It would also be a nice feature to have a way of highlighting which words a specific rule applies to. You can do it by deleting and reinserting the rule and highlighting changes from last run though so it's no biggie.
I got some spare time and felt like programming today, so I had a go at implementing this. It was actually pretty easy!
Hell yeah! Thanks brad. Is this released or gonna be in a future version?
bradrn
Posts: 7503
Joined: Fri Oct 19, 2018 1:25 am

Re: Brassica SCA [v1.0.0]

Post by bradrn »

Darren wrote: Sat Oct 04, 2025 4:52 pm
bradrn wrote: Sat Oct 04, 2025 3:07 pm
Darren wrote: Thu Jul 24, 2025 7:13 am It would also be a nice feature to have a way of highlighting which words a specific rule applies to. You can do it by deleting and reinserting the rule and highlighting changes from last run though so it's no biggie.
I got some spare time and felt like programming today, so I had a go at implementing this. It was actually pretty easy!
Hell yeah! Thanks brad. Is this released or gonna be in a future version?
No, I only committed the code, sorry. No idea when the next release will be.
Conlangs: Scratchpad | Texts | antilanguage
Software: See http://bradrn.com/projects.html
Other: Ergativity for Novices

(Why does phpBB not let me add >5 links here?)
bradrn
Posts: 7503
Joined: Fri Oct 19, 2018 1:25 am

Re: Brassica SCA [v1.0.0]

Post by bradrn »

Raholeun wrote: Thu Jul 24, 2025 5:20 am I was wondering if it is possible to easily see which rules have NOT been applied for any given word list. Sure, you could peace it together from the "Report rules applied" view, but that quickly becomes very laborious. Is there an alternative?
And now this is implemented!
Conlangs: Scratchpad | Texts | antilanguage
Software: See http://bradrn.com/projects.html
Other: Ergativity for Novices

(Why does phpBB not let me add >5 links here?)
bradrn
Posts: 7503
Joined: Fri Oct 19, 2018 1:25 am

Re: Brassica SCA [v1.0.0]

Post by bradrn »

A request for help… I’ve made some changes to the online version which should hopefully make it feel snappier, but it comes at the cost of the output pane sometimes getting briefly out of sync in live mode. I don‘t use the web version regularly, so it’s hard for me to judge whether it’s worth it or not. I know other people here do use it, though, so could you test it and let me know what you think? I’ve uploaded the prerelease at https://bradrn.com/brassica-1.1.0alpha/.
Conlangs: Scratchpad | Texts | antilanguage
Software: See http://bradrn.com/projects.html
Other: Ergativity for Novices

(Why does phpBB not let me add >5 links here?)
Lērisama
Posts: 745
Joined: Fri Oct 18, 2024 9:51 am
Location: Kernow Voy

Re: Brassica SCA [v1.0.0]

Post by Lērisama »

bradrn wrote: Wed Oct 29, 2025 8:39 am A request for help… I’ve made some changes to the online version which should hopefully make it feel snappier, but it comes at the cost of the output pane sometimes getting briefly out of sync in live mode. I don‘t use the web version regularly, so it’s hard for me to judge whether it’s worth it or not. I know other people here do use it, though, so could you test it and let me know what you think? I’ve uploaded the prerelease at https://bradrn.com/brassica-1.1.0alpha/.
I haven't tried it yet¹, but I find live mode on the web is unusable, because it takes too long to work, so it's highly likely to be an improvement to live mode overall, even if the window does get out of sync sometimes.

¹ I will, when I get some time
LZ – Lēri Ziwi
PS – Proto Sāzlakuic (ancestor of LZ)
PRk – Proto Rākēwuic
XI – Xú Iạlan
VN – verbal noun
SUP – supine
DIRECT – verbal directional
My language stuff
Darren
Posts: 1031
Joined: Mon Nov 18, 2019 2:38 pm

Re: Brassica SCA [v1.0.0]

Post by Darren »

I only use the web mode as I'm mentally incapable of running it anywhere else (due to my brain). I will give the pre release a go today. I've never had major problems with the web version although it is slow if you're running like a thousand words through at a time.
Darren
Posts: 1031
Joined: Mon Nov 18, 2019 2:38 pm

Re: Brassica SCA [v1.0.0]

Post by Darren »

I've been using the 1.1.0 web alpha for a few days. It works well, probably faster than 1.0.0. I don't use live mode though.
bradrn
Posts: 7503
Joined: Fri Oct 19, 2018 1:25 am

Re: Brassica SCA [v1.0.0]

Post by bradrn »

Darren wrote: Thu Nov 06, 2025 2:01 pm I've been using the 1.1.0 web alpha for a few days. It works well, probably faster than 1.0.0. I don't use live mode though.
Good to know, thanks! It’s not actually faster, it just feels faster since it avoids freezing up the entire UI on every application.
Conlangs: Scratchpad | Texts | antilanguage
Software: See http://bradrn.com/projects.html
Other: Ergativity for Novices

(Why does phpBB not let me add >5 links here?)
Darren
Posts: 1031
Joined: Mon Nov 18, 2019 2:38 pm

Re: Brassica SCA [v1.0.0]

Post by Darren »

Is there a way of making rules recursive (can take output as another input)? I've got the rule C r → \ which turns e.g. apriku → arpiku, but I'd like it to do fasmra → farsma as well, not *fasrma. I can just double the rule but feels like there might be a more efficient way of doing it.

Inversely, I've got a stress shift rule which moves stress one syllable to the right, but that won't stop moving it all the way to the final syllable unless I use -no as a tag. Which is fine, only (this really is a minor point) -no doesn't go green like the other tags.
bradrn
Posts: 7503
Joined: Fri Oct 19, 2018 1:25 am

Re: Brassica SCA [v1.0.0]

Post by bradrn »

Darren wrote: Sat Nov 08, 2025 2:10 pm Is there a way of making rules recursive (can take output as another input)? I've got the rule C r → \ which turns e.g. apriku → arpiku, but I'd like it to do fasmra → farsma as well, not *fasrma. I can just double the rule but feels like there might be a more efficient way of doing it.
Running it right-to-left should do it: try -rtl C r → \.
Inversely, I've got a stress shift rule which moves stress one syllable to the right, but that won't stop moving it all the way to the final syllable unless I use -no as a tag. Which is fine, only (this really is a minor point) -no doesn't go green like the other tags.
Whoops, I’d better fix that syntax highlighting — thanks!
Conlangs: Scratchpad | Texts | antilanguage
Software: See http://bradrn.com/projects.html
Other: Ergativity for Novices

(Why does phpBB not let me add >5 links here?)
Lērisama
Posts: 745
Joined: Fri Oct 18, 2024 9:51 am
Location: Kernow Voy

Re: Brassica SCA [v1.0.0]

Post by Lērisama »

bradrn wrote: Sat Nov 08, 2025 2:36 pm
Darren wrote: Sat Nov 08, 2025 2:10 pm Is there a way of making rules recursive (can take output as another input)? I've got the rule C r → \ which turns e.g. apriku → arpiku, but I'd like it to do fasmra → farsma as well, not *fasrma. I can just double the rule but feels like there might be a more efficient way of doing it.
Running it right-to-left should do it: try -rtl C r → \.
No! You beat me¹! I've lost my position². :P
Darren wrote: Inversely, I've got a stress shift rule which moves stress one syllable to the right, but that won't stop moving it all the way to the final syllable unless I use -no as a tag.
If the lack of highlighting annoys you, I think -1 and -rtl would do until it's fixed, although I'm away from my computer and the website wasn't working for me just now, so I haven't tested it.

Relatedly, I'd like to report that online brassica is giving me ERR_ADDRESS_UNREACHABLE. Do you happen to know why?

¹ I was about to post the same thing
² Although I think being in the same timezone makes it less likely
LZ – Lēri Ziwi
PS – Proto Sāzlakuic (ancestor of LZ)
PRk – Proto Rākēwuic
XI – Xú Iạlan
VN – verbal noun
SUP – supine
DIRECT – verbal directional
My language stuff
bradrn
Posts: 7503
Joined: Fri Oct 19, 2018 1:25 am

Re: Brassica SCA [v1.0.0]

Post by bradrn »

Lērisama wrote: Sat Nov 08, 2025 2:43 pm Relatedly, I'd like to report that online brassica is giving me ERR_ADDRESS_UNREACHABLE. Do you happen to know why?
Er, not a clue… I’ll look into it when I get time.
Conlangs: Scratchpad | Texts | antilanguage
Software: See http://bradrn.com/projects.html
Other: Ergativity for Novices

(Why does phpBB not let me add >5 links here?)
Post Reply