Re: Brassica SCA [v0.1.0]
Posted: Sun Jul 16, 2023 11:19 am
How is the version ID determined?
Since it’s written in Haskell, I try to follow https://pvp.haskell.org/.
Alas, no. It’s proven rather difficult to make one, and in the past week I haven’t had much free time. But I can assure you that the desktop version has very few features which have not yet been ported over to the web version. (The main ones are MDF support and a new ‘synchronise scroll positions’ option I added in this release. I also haven’t updated the paradigm builder to the new web interface, but I’ve kept the last version online at http://bradrn.com/brassica-0.3.0/builder/.)
I'm having trouble with this. I'm trying to get it to perform the change
Yeah, I should probably have clarified this point. Backreferences in the environment can only refer back to categories in the environment; similarly, backreferences in the target refer back to the target. The replacement is slightly different, since backreferences there refer to the target as well.Darren wrote: ↑Sat Jan 27, 2024 4:26 amI'm having trouble with this. I'm trying to get it to perform the change
C → / # _ ˈ V @1 C
but it doesn't like it; when the conditions are there it just plain doesn't do anything. The rule is otherwise fine since without the "@1" it works (obviously in the wrong way though). If I phrase it like
C ˈ V @1 C → ˈ @2 V @1 C / # _
then it works as intended.
Ah gotcha. It's not for the ID, I was just messing around to remind myself how Brassica works.bradrn wrote: ↑Sat Jan 27, 2024 4:44 am Yeah, I should probably have clarified this point. Backreferences in the environment can only refer back to categories in the environment; similarly, backreferences in the target refer back to the target. The replacement is slightly different, since backreferences there refer to the target as well.
(On the other hand, if this happens to be for the new Index Diachronica, don’t worry; your first rule will display just fine on the website even if it doesn’t work in Brassica proper. Actually, for that matter, the ID’s handling of backreferences is generally a little wonky — I should probably find a solution to that…)
Fair enough. I do hope it’s all reasonably intuitive… please tell me if anything isn’t!Darren wrote: ↑Sat Jan 27, 2024 5:04 amAh gotcha. It's not for the ID, I was just messing around to remind myself how Brassica works.bradrn wrote: ↑Sat Jan 27, 2024 4:44 am Yeah, I should probably have clarified this point. Backreferences in the environment can only refer back to categories in the environment; similarly, backreferences in the target refer back to the target. The replacement is slightly different, since backreferences there refer to the target as well.
(On the other hand, if this happens to be for the new Index Diachronica, don’t worry; your first rule will display just fine on the website even if it doesn’t work in Brassica proper. Actually, for that matter, the ID’s handling of backreferences is generally a little wonky — I should probably find a solution to that…)
It's intuitive enough; or at least, it's not counterintuitive – with the guide it's easily usable even for me. I have had trouble getting it to understand non-precomposed characters like <ɛ́ ɔ́ ɑ̃>; it keeps treating the accents separately for some reason.bradrn wrote: ↑Sat Jan 27, 2024 6:37 amFair enough. I do hope it’s all reasonably intuitive… please tell me if anything isn’t!Darren wrote: ↑Sat Jan 27, 2024 5:04 amAh gotcha. It's not for the ID, I was just messing around to remind myself how Brassica works.bradrn wrote: ↑Sat Jan 27, 2024 4:44 am Yeah, I should probably have clarified this point. Backreferences in the environment can only refer back to categories in the environment; similarly, backreferences in the target refer back to the target. The replacement is slightly different, since backreferences there refer to the target as well.
(On the other hand, if this happens to be for the new Index Diachronica, don’t worry; your first rule will display just fine on the website even if it doesn’t work in Brassica proper. Actually, for that matter, the ID’s handling of backreferences is generally a little wonky — I should probably find a solution to that…)
Yes, this is a known problem. (Well, known to me.) Essentially, ⟨ɛ́⟩ is stored as two characters, ⟨ɛ◌́⟩, and Brassica doesn’t yet know that it has to treat it as a single multigraph. To get that to work, you currently have to define it as a multigraph by listing it somewhere in the categories.
recognise combining (to recognise combining diacritics as multigraphs)
recognise sh ch ng (to recognise those sequences as single graphemes)
I always end up having to make a category "X" which is just all the left over shit like ŋ kʷ pʷ ɨ ˈ θ and never gets used for anything. Not that that's a great deal of trouble, but if I forget I sometimes get lots of question marks (although other times it doesn't seem to mind). Regardless the extra functionalities make it better than any other SCAs I've used so I'm happy to put up with some quirks.bradrn wrote: ↑Sat Jan 27, 2024 5:50 pmYes, this is a known problem. (Well, known to me.) Essentially, ⟨ɛ́⟩ is stored as two characters, ⟨ɛ◌́⟩, and Brassica doesn’t yet know that it has to treat it as a single multigraph. To get that to work, you currently have to define it as a multigraph by listing it somewhere in the categories.
Honestly, that whole ‘listing it somewhere in the categories’ idea has turned out less well than I thought… even ignoring this problem, I’ve found it makes quick experimentation a little difficult. I’ve been contemplating new syntax to improve this, probably something like:
recognise combining (to recognise combining diacritics as multigraphs)
recognise sh ch ng (to recognise those sequences as single graphemes)
Yes, that’s exactly what I do to. (I tend to call it Other, but X is probably a better choice.) It’s not great, which is why I’d like to improve the situation.Darren wrote: ↑Sat Jan 27, 2024 6:03 pmI always end up having to make a category "X" which is just all the left over shit like ŋ kʷ pʷ ɨ ˈ θ and never gets used for anything.bradrn wrote: ↑Sat Jan 27, 2024 5:50 pmYes, this is a known problem. (Well, known to me.) Essentially, ⟨ɛ́⟩ is stored as two characters, ⟨ɛ◌́⟩, and Brassica doesn’t yet know that it has to treat it as a single multigraph. To get that to work, you currently have to define it as a multigraph by listing it somewhere in the categories.
Honestly, that whole ‘listing it somewhere in the categories’ idea has turned out less well than I thought… even ignoring this problem, I’ve found it makes quick experimentation a little difficult. I’ve been contemplating new syntax to improve this, probably something like:
recognise combining (to recognise combining diacritics as multigraphs)
recognise sh ch ng (to recognise those sequences as single graphemes)
This makes me really happy to hear, thank you!Regardless the extra functionalities make it better than any other SCAs I've used so I'm happy to put up with some quirks.
If those graphemes never get used for anything, then why do you need to include them in a category in the first place? If you actually use these, it would make more sense to me to place them in (say) a C category for consonants, or something like that.
It's the category that never gets used. When rules produce new graphemes, sometimes it doesn't mind but other times it just gives a bunch of question marks. It's a minor inconvenience at worst.