Page 5 of 7

Re: Brassica SCA [v0.0.3]

Posted: Sat Sep 17, 2022 12:55 pm
by Ares Land
Excellent news. I'll try this on a new language family soon :)

Re: Brassica SCA [v0.0.3]

Posted: Sat Sep 17, 2022 8:17 pm
by bradrn
Ares Land wrote: Sat Sep 17, 2022 12:55 pm Excellent news. I'll try this on a new language family soon :)
Please do let me know how well it works!

Re: Brassica SCA [v0.0.3]

Posted: Wed Sep 21, 2022 10:43 am
by Ares Land
It works very well! It's really nice to use the featural notation when changes involve both stress and length.

Two features I'd like to see is some way of saving sound changes / paradigms from the web version. (Not that copy/paste is a big hassle, but it'd be nice); and some way to mark specific stages in the language. (So I could for instance get the proto-whatever > old whatever > modern whatever on the same line.) Neither request is particularly urgent!

Re: Brassica SCA [v0.0.3]

Posted: Wed Sep 21, 2022 11:16 pm
by bradrn
bradrn wrote: Fri Sep 16, 2022 10:49 am Note there is one minor detail left to resolve: the Brassica API has also been wholly revamped, and is now actually usable for the first time ever, but alas, I do not have the permissions to upload the library to Hackage yet. I will let you know when it is available there.
Update: the Brassica library is now available at https://hackage.haskell.org/package/brassica.
Ares Land wrote: Wed Sep 21, 2022 10:43 am It works very well! It's really nice to use the featural notation when changes involve both stress and length.
I’m interested to know you had a good experience with that — I always felt that particular corner of the program was somewhat confusing in design, especially when more than one feature is involved.
Two features I'd like to see is some way of saving sound changes / paradigms from the web version. (Not that copy/paste is a big hassle, but it'd be nice);
Agreed; it’s already on my to-do list.
and some way to mark specific stages in the language. (So I could for instance get the proto-whatever > old whatever > modern whatever on the same line.) Neither request is particularly urgent!
dhok already requested something similar, but this seems a little more limited and hence easier to implement. When I get some time, I’ll see what I can do.

Re: Brassica SCA [v0.0.3]

Posted: Thu Sep 22, 2022 5:45 am
by Ares Land
bradrn wrote: Wed Sep 21, 2022 11:16 pm I’m interested to know you had a good experience with that — I always felt that particular corner of the program was somewhat confusing in design, especially when more than one feature is involved.
I think I went through a few attempts to really figure it out, but no big deal.

If you're still looking for features to implement :) Here's one way it could be made easier:

We add a special handling for suprasegmental (For instance stress could be handled by a special character ˈ that would be ignored unless specified otherwise; other thing such as tone or secondary stress could be handled that way).

So you'd have something this:

Code: Select all

feature short = a e i o u / long aa ee ii oo uu
V = short long
supra stress = ˈ
voiced = b d g
unvoiced = p t k 

V / V +stress / _ C (C) V C (C) #
unvoiced / voiced / V_V
short -stress / _
With the following outcome:

Code: Select all

aataa > ˈaadaa
ataa > ˈadaa
atataa > ˈdadaa
aata > aad
Oh, while I'm at it, again adding to the wish list -- but that's probably a lot harder! I'd love to have a way to define syllable structure and syllable types (so we could use the definition to stress the penultimate, or apply special changes to heavy syllables...)

Re: Brassica SCA [v0.0.3]

Posted: Thu Sep 22, 2022 8:27 am
by bradrn
Ares Land wrote: Thu Sep 22, 2022 5:45 am We add a special handling for suprasegmental (For instance stress could be handled by a special character ˈ that would be ignored unless specified otherwise; other thing such as tone or secondary stress could be handled that way).
Interesting idea… this is sort of what I was trying to do with ‘features’ (in that it lets you ignore a diacritic or suchlike), but this is much simpler. The downside of this, of course, is that it’s fairly limited: if I want to express stress via a diacritic, for instance, I would be out of luck with this.
Oh, while I'm at it, again adding to the wish list -- but that's probably a lot harder! I'd love to have a way to define syllable structure and syllable types (so we could use the definition to stress the penultimate, or apply special changes to heavy syllables...)
I actually tried this, very early in development; it was even going to be one of Brassica’s main features. Alas, the combination of syllable structures and sound changes is really difficult to get right — for instance, what happens to the syllable boundary in a change like V₁V₂→V₁ʔV₂? And furthermore, it turns out that most sound changes don’t actually require keeping track of syllable boundaries themselves: counting consonants and vowels suffices in every case I’ve encountered. (And Brassica has wildcards specifically to help with this: e.g. stressing the antepenult is as simple as V / Vstressed / _ ^V ^V C* #.)

Re: Brassica SCA [v0.0.3]

Posted: Fri Sep 23, 2022 2:30 am
by Ares Land
Ohh I didn't think of using wildcards! Thanks.

Re: Brassica SCA [v0.0.3]

Posted: Fri Sep 23, 2022 3:24 am
by bradrn
Ares Land wrote: Fri Sep 23, 2022 2:30 am Ohh I didn't think of using wildcards! Thanks.
Yeah, I should probably mention that in the documentation somewhere…

Re: Brassica SCA [Linux]

Posted: Fri Nov 25, 2022 5:32 am
by bradrn
Presenting: Brassica on Linux!

Image

I’m going to hold off on a release until I make the build files more reliable (by not hardcoding paths and such), but if all goes well this should be available for download sometime in the next few days! Special thanks to Hallow XIII, who by his advice:
Hallow XIII wrote: Thu Oct 21, 2021 9:18 am The easiest way for me to get it running was to compile everything with -fPIC -fPIE and then dynamically link all the Haskell dependencies, which is also the preferred distribution format for my distribution's package management system
Helped me avoid all the trouble which would surely have arisen had I not been doing this right from the beginning.

Re: Brassica SCA [Linux]

Posted: Fri Nov 25, 2022 12:06 pm
by Travis B.
Cool!

Re: Brassica SCA [Linux]

Posted: Mon Nov 28, 2022 7:23 am
by bradrn
Prebuilt Linux binaries are now available! Get them as always from the latest release. (Same release as last time, actually; the only difference is that the Linux tarball now includes the GUI binary.)

Disclaimer: so far I’ve only tested this on my own machine. Please tell me if it works or not! Warning: you’ll probably need to install Qt from your package manager, in the event that you don’t have it already. Probably I should just make this a proper package and submit it to the AUR or similar, but I’m too lazy…

Re: Brassica SCA [Linux]

Posted: Fri Dec 16, 2022 12:06 pm
by chris_notts
I'm very late to the party, but another Haskell-based SCA is cool. I wrote a featural one some time ago, and I hosted it for a while with a web UI, but no one seemed to be using it so I let it bit-rot a bit. I'm considering recoding it into Rust as a way to learn it.

(The reason I just built a JS frontend for it, combined with a Yesod backend IIRC, was to avoid the entire issue around distribution)

Re: Brassica SCA [Linux]

Posted: Fri Dec 16, 2022 5:55 pm
by bradrn
chris_notts wrote: Fri Dec 16, 2022 12:06 pm I'm very late to the party, but another Haskell-based SCA is cool. I wrote a featural one some time ago, and I hosted it for a while with a web UI, but no one seemed to be using it so I let it bit-rot a bit. I'm considering recoding it into Rust as a way to learn it.
Yes, I do recall HaSC! I even wanted to try it out a while ago, but couldn't find a working version online.

Re: Brassica SCA [Linux]

Posted: Fri Dec 16, 2022 6:01 pm
by chris_notts
bradrn wrote: Fri Dec 16, 2022 5:55 pm
chris_notts wrote: Fri Dec 16, 2022 12:06 pm I'm very late to the party, but another Haskell-based SCA is cool. I wrote a featural one some time ago, and I hosted it for a while with a web UI, but no one seemed to be using it so I let it bit-rot a bit. I'm considering recoding it into Rust as a way to learn it.
Yes, I do recall HaSC! I even wanted to try it out a while ago, but couldn't find a working version online.
I think it works somewhat differently to yours, because I effectively ended up building a featural regex engine using the List monad to lazily search for matches and backtrack as necessary. You could express sound changes using a decent subset of regex functionality, capture strings of phonemes or individual feature values etc. But I think maybe it was hard for non-programmers to understand how to use it.

Re: Brassica SCA [Linux]

Posted: Fri Dec 16, 2022 6:26 pm
by bradrn
chris_notts wrote: Fri Dec 16, 2022 6:01 pm
bradrn wrote: Fri Dec 16, 2022 5:55 pm
chris_notts wrote: Fri Dec 16, 2022 12:06 pm I'm very late to the party, but another Haskell-based SCA is cool. I wrote a featural one some time ago, and I hosted it for a while with a web UI, but no one seemed to be using it so I let it bit-rot a bit. I'm considering recoding it into Rust as a way to learn it.
Yes, I do recall HaSC! I even wanted to try it out a while ago, but couldn't find a working version online.
I think it works somewhat differently to yours, because I effectively ended up building a featural regex engine using the List monad to lazily search for matches and backtrack as necessary. You could express sound changes using a decent subset of regex functionality, capture strings of phonemes or individual feature values etc.
I’m not doing backtracking, but I do think quite a few SCAs end up with this kind of design. (Though I think that if you want regexes, just use PCRE!)
But I think maybe it was hard for non-programmers to understand how to use it.
This seems to be a common problem with quite a few SCAs. I tried to avoid it, but don’t think I succeeded.

Re: Brassica SCA [v0.1.0]

Posted: Sun Jul 09, 2023 1:49 am
by bradrn
Brassica v0.1.0 is now available! Unfortunately, I’ve been having trouble deploying desktop versions for both Windows and Linux… but the web version has been very significantly improved, and is now nearly at feature parity with the desktop version, so it should be even easier to try out now!

Aside from the improvements to the website, release highlights are:
  • Breaking change: can now apply a sound change in any one of a set of given environments with the syntax ‘target / replacement / env1 / env2 / …’. Exceptions to rules now have the syntax ‘target / replacement / env // exception’.
  • Added syntax for category backreferences in target and replacement.
  • Brassica can now apply sound changes across words to simulate processes such as sandhi and affixation.

Re: Brassica SCA [v0.1.0]

Posted: Sun Jul 09, 2023 11:00 pm
by bradrn
I’ve uploaded an AppImage for Linux to the GitHub release… alas, a half-broken one, since it doesn’t seem to work across all systems, but I suppose something is better than nothing. I’ll upload a more robust version if I can make one.

Re: Brassica SCA [v0.1.0]

Posted: Sun Jul 16, 2023 2:30 am
by bradrn
I finally seem to have made a working AppImage binary for Linux! The releases page has been updated. Please try it out and let me know if it works for you!

(Unfortunately, Windows support seems more difficult… I’m still actively working on it. But the new web version is really rather good, if I do say so myself — so it should be just as easy to use even without a desktop version!)

Re: Brassica SCA [v0.1.0]

Posted: Sun Jul 16, 2023 3:44 am
by Raphael
bradrn wrote: Sun Jul 16, 2023 2:30 am I finally seem to have made a working AppImage binary for Linux! The releases page has been updated. Please try it out and let me know if it works for you!
I can run it just fine, but at the moment, I don't have any lexicon to try out if it works.

Re: Brassica SCA [v0.1.0]

Posted: Sun Jul 16, 2023 3:53 am
by bradrn
Raphael wrote: Sun Jul 16, 2023 3:44 am
bradrn wrote: Sun Jul 16, 2023 2:30 am I finally seem to have made a working AppImage binary for Linux! The releases page has been updated. Please try it out and let me know if it works for you!
I can run it just fine, but at the moment, I don't have any lexicon to try out if it works.
There’s some examples here: https://github.com/bradrn/brassica/tree/master/examples. (Also included in the web version, and in the installer for the last Windows version. I suppose I could distribute an archive with the AppImage + examples, but it seems so pointless when they’re this easy to download separately.)