What did you accomplish today?

A forum for all topics related to constructed languages
lurker
greek
greek
Posts: 477
Joined: 28 Jul 2023 14:08

Re: What did you accomplish today?

Post by lurker »

Commonthroat now has grammaticalized sarcasm.
⠎⠀⠜⠎⠾⠌⠺⠀⠍⠭⠌⠉⠀⠬⠽⠬⠽⠌⠚
User avatar
Arayaz
roman
roman
Posts: 1387
Joined: 07 Sep 2022 00:24
Location: Just south of the pin-pen merger
Contact:

Re: What did you accomplish today?

Post by Arayaz »

lurker wrote: 15 Apr 2024 13:59 Commonthroat now has grammaticalized sarcasm.
I think you are the funny little guy in the computer at this point [:D]. (I love that whole post, especially the amusing sample dialogue)
Proud member of the myopic-trans-southerner-Viossa-girl-with-two-cats-who-joined-on-September-6th-2022 gang

:con: 2c2ef0 Ruykkarraber family Areyaxi family Arskiilz Makihip-ŋAħual family Kahóra Abisj
my garbage Ɛĭ3

she/her
User avatar
Nel Fie
cuneiform
cuneiform
Posts: 156
Joined: 23 May 2022 15:18

Re: What did you accomplish today?

Post by Nel Fie »

It took a whole lot longer than intended, but I think I finally assembled a particular function for my sound changer / conlanging app, although further debugging and testing will be required, as well as perhaps implementing some additional mechanisms.

It's a tool that collects all segments that conform to any combination of:
  1. a list of required features (e.g. 'Velar','High Tone'...)
  2. a list of excluded features
  3. a list of required feature sets (e.g. 'manner', 'height', 'tone'...)
  4. a list of excluded feature sets
For clarity, A and B essentially mean "the segment needs all of these features", whereas C and D mean "needs at least one feature in the set".

It sounds like a rather easy task, and most of us could probably just type them out without too much thinking, but figuring out a way to make the program do it was surprisingly complicated, and I had to rewrite the whole thing from scratch several times.

As it currently is, the broad-strokes list of steps is:
  1. Get all the features of the sets in D and merge them with B unless both are empty, and set a boolean check accordingly (which is used throughout to exclude segments on the basis of B).
  2. Get all segments without any diacritics
  3. If A is not empty:
    1. Map out the features therein based on whether they are exclusive to diacritics, to segments, or shared between both.
    2. Remove any segment that does not contain all the features in the 'segment' list.
    3. Get diacritics describing features in the 'shared' list and apply to segments as needed.
    4. Get diacritics describing features in the 'diacritic' list and apply to all segments.
    5. Perform an exclusion by B if applicable.
  4. Start a loop over every feature set listed in C.
    1. Get the features of that set.
    2. Map them out as in 3.a.
    3. Get diacritics describing features in the 'diacritic' list and apply each to every segment in a copy of the original array.
    4. Get diacritics describing features in the 'shared' list and apply each to every segment in a copy of the original array while skipping those segments which already possess all features provided by the diacritic.
    5. Merge the segment copies with the original array.
    6. Remove all segments that do not contain at least one feature of the feature set in its entirety.
    7. Set the new concatenated array of segments to be used for the next loop.
  5. Do a final safety exclusion based on B, if applicable.
  6. Provide the array of segments as result.
I'm still not sure whether I've caught every possible flaw, but I hope I did. This working as intended is crucial to the proper function of a lot of other parts of the project, and an undetected bug would spell serious trouble.
:deu: Native (Swabian) | :fra: Native (Belgian) | :eng: Fluent | :rus: Beginner
DeviantArt | YouTube | Tumblr
User avatar
Arayaz
roman
roman
Posts: 1387
Joined: 07 Sep 2022 00:24
Location: Just south of the pin-pen merger
Contact:

Re: What did you accomplish today?

Post by Arayaz »

Hit 20 pages on my grammatical sketch of the Násuunát Areyaxi languages c. 2500. It's painful, grueling work, but I need it all to be presentable, and this will make things easier going forward, I think.
Proud member of the myopic-trans-southerner-Viossa-girl-with-two-cats-who-joined-on-September-6th-2022 gang

:con: 2c2ef0 Ruykkarraber family Areyaxi family Arskiilz Makihip-ŋAħual family Kahóra Abisj
my garbage Ɛĭ3

she/her
User avatar
Arayaz
roman
roman
Posts: 1387
Joined: 07 Sep 2022 00:24
Location: Just south of the pin-pen merger
Contact:

Re: What did you accomplish today?

Post by Arayaz »

I finally updated my language list (and my signature).
Proud member of the myopic-trans-southerner-Viossa-girl-with-two-cats-who-joined-on-September-6th-2022 gang

:con: 2c2ef0 Ruykkarraber family Areyaxi family Arskiilz Makihip-ŋAħual family Kahóra Abisj
my garbage Ɛĭ3

she/her
User avatar
Arayaz
roman
roman
Posts: 1387
Joined: 07 Sep 2022 00:24
Location: Just south of the pin-pen merger
Contact:

Re: What did you accomplish today?

Post by Arayaz »

My integrated grammar of the Násuunát Areyaxi languages c. 2500 now runs 32 pages! This includes six pages of syntax, which won me the syntax prompt. Covered syntax topics included word order, prepositions, focus pronouns, that weird converb-adjective thing, sentential modifiers (the other weird adverb thing), negation, and relativization.

The downside of how long it took me to finish that grammatical sketch is that it's now actually the year 2650 and it's out of date [:|] Can't believe it took three weeks just to write a 32-page document about something that I already had all the information for on another document.
Proud member of the myopic-trans-southerner-Viossa-girl-with-two-cats-who-joined-on-September-6th-2022 gang

:con: 2c2ef0 Ruykkarraber family Areyaxi family Arskiilz Makihip-ŋAħual family Kahóra Abisj
my garbage Ɛĭ3

she/her
Khemehekis
mongolian
mongolian
Posts: 3936
Joined: 14 Aug 2010 09:36
Location: California über alles

Re: What did you accomplish today?

Post by Khemehekis »

Check out https://cbbforum.com/viewtopic.php?p=328837#p328837 -- I've updated it to include words #87,000, 88,000, and 89,000.
Last edited by Khemehekis on 23 Apr 2024 01:58, edited 1 time in total.
♂♥♂♀

Squirrels chase koi . . . chase squirrels

My Kankonian-English dictionary: 90,000 words and counting

31,416: The number of the conlanging beast!
User avatar
Arayaz
roman
roman
Posts: 1387
Joined: 07 Sep 2022 00:24
Location: Just south of the pin-pen merger
Contact:

Re: What did you accomplish today?

Post by Arayaz »

I solidified stuff for ŋAħual, such as the name. The full ŋAħual series is currently as follows:
Proud member of the myopic-trans-southerner-Viossa-girl-with-two-cats-who-joined-on-September-6th-2022 gang

:con: 2c2ef0 Ruykkarraber family Areyaxi family Arskiilz Makihip-ŋAħual family Kahóra Abisj
my garbage Ɛĭ3

she/her
User avatar
Flavia
sinic
sinic
Posts: 375
Joined: 13 Apr 2021 14:53
Location: Sol III

Re: What did you accomplish today?

Post by Flavia »

Arayaz wrote: 23 Apr 2024 01:46 I solidified stuff for ŋAħual, such as the name. The full ŋAħual series is currently as follows:
Cool stuff! Though the new name looks a little similar to Nahuatl...
XIPA
:pol: > :eng: > :esp: > :lat: > :fra: > :por: > :deu:
Abaniscen cancasirnemor
Khemehekis
mongolian
mongolian
Posts: 3936
Joined: 14 Aug 2010 09:36
Location: California über alles

Re: What did you accomplish today?

Post by Khemehekis »

Flavia wrote: 23 Apr 2024 01:53 Cool stuff! Though the new name looks a little similar to Nahuatl...
Wow. I didn't even realize this.
♂♥♂♀

Squirrels chase koi . . . chase squirrels

My Kankonian-English dictionary: 90,000 words and counting

31,416: The number of the conlanging beast!
User avatar
Arayaz
roman
roman
Posts: 1387
Joined: 07 Sep 2022 00:24
Location: Just south of the pin-pen merger
Contact:

Re: What did you accomplish today?

Post by Arayaz »

Flavia wrote: 23 Apr 2024 01:53
Arayaz wrote: 23 Apr 2024 01:46 I solidified stuff for ŋAħual, such as the name. The full ŋAħual series is currently as follows:
Cool stuff! Though the new name looks a little similar to Nahuatl...
Ugh, you preempted me (/nm). I was about to make a joke post about that!

Wait, I posted the joke post before this one. Let it be known I thought of it on my own
Proud member of the myopic-trans-southerner-Viossa-girl-with-two-cats-who-joined-on-September-6th-2022 gang

:con: 2c2ef0 Ruykkarraber family Areyaxi family Arskiilz Makihip-ŋAħual family Kahóra Abisj
my garbage Ɛĭ3

she/her
User avatar
Arayaz
roman
roman
Posts: 1387
Joined: 07 Sep 2022 00:24
Location: Just south of the pin-pen merger
Contact:

Re: What did you accomplish today?

Post by Arayaz »

Removed the background from my profile picture file! It'll display as intended now, as a circle instead of a square.
Proud member of the myopic-trans-southerner-Viossa-girl-with-two-cats-who-joined-on-September-6th-2022 gang

:con: 2c2ef0 Ruykkarraber family Areyaxi family Arskiilz Makihip-ŋAħual family Kahóra Abisj
my garbage Ɛĭ3

she/her
Khemehekis
mongolian
mongolian
Posts: 3936
Joined: 14 Aug 2010 09:36
Location: California über alles

Re: What did you accomplish today?

Post by Khemehekis »

Just finished my long haul through the A-words in my friend's corpus. I ended up adding 1,582 new Kankonian words, as I went from having 87,780 to having 89,362. Definitely worth it.

Doing B-words should get me past the 90,000 mark!
♂♥♂♀

Squirrels chase koi . . . chase squirrels

My Kankonian-English dictionary: 90,000 words and counting

31,416: The number of the conlanging beast!
User avatar
Kesshin
rupestrian
rupestrian
Posts: 23
Joined: 23 Apr 2024 18:26
Location: Around

Re: What did you accomplish today?

Post by Kesshin »

I actually haven't worked on this much, but I've decided that Daas' number system will be base 6.

Hya: 1 /hjɑ/
Hye: 2 /hjɛ/
Hyi: 3 /hji/
Hyo: 4 /hjo/
Hyu: 5 /hju:/
Hyf: 6 /hjx'/

Hya tu Hyf: 7 (lit. one past six) /hjɑ tu: hjx'/
Hye tu Hyf: 8
Hyi tu Hyf: 9
Hyo tu Hyf: 10
Hyu tu Hyf: 11
Hye'Hyf: 12 /hjɛ hjx'/
might end up being
Hyef: 12 /hjɛx'/
he/him, they/them
Forgive me if I seem uneducated or disorganized, I am new to the community and vocab.

currently hyperfocused on: Daas
User avatar
Nel Fie
cuneiform
cuneiform
Posts: 156
Joined: 23 May 2022 15:18

Re: What did you accomplish today?

Post by Nel Fie »

After a whole lot more work and headaches, I think I've finally implemented a mechanism in my sound changer to basically ask it "are these segments or segment patterns found in this part of the word, regardless of order or if anything else is in between".
It's best understood by illustration. This kind of search is notated by surrounding a pattern to search for with the '|' symbol, e.g. :

|i|

Given the above, my sound changer will turn up "valid" to basically any instance of /i/. But the actual use case is more likely to be paired with a regular search before and/or after it, e.g. :

|i|a

With this, the sound changer would turn up "valid" for any instance of /a/ that has an /i/ in the preceding part of the word, such as any of the following words:

ia
sina
sinulta
feivima
tsikato
etc...

But would not turn up "valid" for any of :

ai
sena
senalti
fevema
tsakiti
etc...

Of course, far more complex patterns are possible since that is what is what makes it the most useful. For example, you could define:

s|in,{f,v},V[+tone]|a

And it would only turn up "valid" for anything like:

sináfa
séminvelta
sofúminara
etc...

While turning up "invalid" on any like:

sinafa (no /V[+tone]/)
sémivelta (no /in/)
soxúminara (no /{f,v}/)
etc...

And if you're wondering "but what if I want the segments to be found in a particular order?". Good question, and the answer is pretty simple - you use several blocks, e.g.:

s|in||{f,v}|a

... will only turn up "valid" if /in/ is found before /{f,v}/.


This is a pretty big step forward, especially in so far that this was one of the last "big" and complicated features to implement, and while I still have plenty to do until the sound changer is in a usable state, the path forward is much clearer. The only thing I dread are unexpected behaviours and bugs turning up along the way, which can always happen is will likely be a pain to fix when dealing with such an extremely complicated system.
:deu: Native (Swabian) | :fra: Native (Belgian) | :eng: Fluent | :rus: Beginner
DeviantArt | YouTube | Tumblr
lurker
greek
greek
Posts: 477
Joined: 28 Jul 2023 14:08

Re: What did you accomplish today?

Post by lurker »

Arayaz wrote: 15 Apr 2024 15:09
lurker wrote: 15 Apr 2024 13:59 Commonthroat now has grammaticalized sarcasm.
I think you are the funny little guy in the computer at this point [:D]. (I love that whole post, especially the amusing sample dialogue)
Thanks.

To be fair, it's lifted from this meme, and the Mechanists as a whole are a copy-paste of the AdMech without the cybernetics.
⠎⠀⠜⠎⠾⠌⠺⠀⠍⠭⠌⠉⠀⠬⠽⠬⠽⠌⠚
TBPO
rupestrian
rupestrian
Posts: 23
Joined: 25 Apr 2024 18:19

Re: What did you accomplish today?

Post by TBPO »

I created Hi'im.
User avatar
Nel Fie
cuneiform
cuneiform
Posts: 156
Joined: 23 May 2022 15:18

Re: What did you accomplish today?

Post by Nel Fie »

It took more work than expected, but I programmed a mechanism for my sound changer to compare two "unnordered search blocks" (see my previous post for an explanation of what those are and how they work) to each-other. Which is to say, my app can now correctly compare a block such as:

|s,v|

To any of the following:

|s,v|
|v,s|
|C,v|
|s,C|
|C,C|
|{z,s},v|
|{z,s},{f,v}|
|{s,v}|
etc...

In the process of developing this, I had to also write a mechanism to test if a token is in the same "scope" as another token, in order to prevent the comparison mechanism to jump to the next case with the block (i.e. in "|s,v|", while operating on /s/, the comparison would jump to /v/ even though it shouldn't). What I mean by scope is a bit complicated, but essentially, if a token is in the same scope as another, it is part of the latter's extended hierarchy, either on the same level or below, but not above it or in a separate case.
Here's an illustration with the symbol C, where it is part of the main scope as V.

CV
{a,C}V
V{a,i}C
a{CV,s}i
Vasi{C,a}

However, C is not in the scope of V in the following (explanation in parentheses):

C,V
(separated into two different cases)
{a,V}C
(C is in a level above V)
V{a,i}
(C is not part of the pattern, or does not exist)
a{C,Vs}i
(C and V are in two separate cases within the block)
Vasi,C
(again, C is in a separate case)

It might seem rather basic and dumb, but I haven't had the need to write something like this yet. But it'll probably see use going forward.

That said, I'm happy that I'm slowly reaching the end of all the features to implement, because my code is starting to become so complicated that working on it feels like slowly pulling out slats in a jenga tower. More specifically, I'm afraid of unknowingly trying to implement two mutually exclusive scenarios, where adding one would invalidate the other. Not sure if that can happen, but it's plausible when there are so many options.
:deu: Native (Swabian) | :fra: Native (Belgian) | :eng: Fluent | :rus: Beginner
DeviantArt | YouTube | Tumblr
Post Reply