Lúnalai

Lúnalai is an artistic attempt at making a loglang. It aims to feel natural to use, avoiding making you keep track of things as you say them so that you can construct sentences on the fly without much forethought or intensely keeping track of things such as nesting or determiner scope.

I haven’t worked on the semantics, and I feel like reading up on syntax a little bit more before posting any of the syntax trees from it. Not that I’ve done that much on that front, it’s not quite a forest!

Brief Overview

The word order is SOV, with a very simple CV(V) phonemic unit called the lúna. It has suffixes, which are denoted by repeating the last vowel of a root after a glottal stop. So that in kato’oni /katoʕoni/, the root is kato and the suffix is ni. Only the first suffix of a word needs this glottalization. It is possible for suffixes to be polysyllabic, but the first consonant of every non-first lúna in a suffix has to be a glottal stop, which is optionally pronounced as [h].

The language has three pitches (not contour tones!), and every syllable is assigned one. The first syllable of every word is always pronounced as a contour that lands in its specific pitch.

The morphology is self segmenting thanks to these last two rules, meaning that you can always tell word-boundaries and the word’s derivational morphology.

Clauses are started with a complementizer, but the verb ends in a suffix. This is my preferred way to do clause boundaries, as it disguises the fact that it actually uses parenthetical clause openers and closers in a way that feels very automatic. You barely need to think about it.

Example Sentences

bashàlà’amí kùó’oky nio’oda wò!
/mbaʃàlàʕamí kùʔóʔokɨ ni.oʕonda wò/
poison-OBJ cup-SUBJ is_at-PERF ADM
“There’s poison in that cup!”

wa’abo kiti’iky kari rà
/waʔambo kitiʔikɨ kari rà/
you-OF kitty-SUBJ cute ASSERT
“Your cat is cute”

It has a mechanism to make clauses become names, not only words.

nhé’eky, la níko’o hai’idami rà
3-SUBJ TO the_moon-OBJ look-PERF-NAME ASSERT
her name is “to look to the moon”

The word la, here glossed as TO, is a property clause complementizer. It can be thought of as a slightly more complex verb in infinitive.

Plans

I want the language to support what in Toaq (and possibly Lojban) is called “underfilling,” but I don’t want it to be a naive mechanism that simply sets some defaults for every verb. I want it to be sentence-aware, capable of utilizing things like tense, aspect and even the speech act in order to determine how things are underfilled. I also don’t think I want every verb to support it.

Thinking about underfilling in Lúnalai ended up making me think about things like a Result monad to specify that a parse is perfectly grammatical, but has the potential to be nonsensical (as opposed to just false).

Overall, I don’t think this will have very minimalist semantics, which is probably a problem since I haven’t exactly studied semantics formally! But we’ll have to see how it turns out.

5 Likes

Here’s a brief explanation of the Lúnalai writing system:

The consonant is the innermost symbol. The first vowel of the lúna wraps the consonant, and the last vowel wraps the first. There is null vowel symbol for when a lúna has no second vowel.

The tone is tacked onto the second vowel’s tail.

All second vowel symbols are connected on the top line, creating a line that is similar to that of Devanagari. When handwriting, the null vowel is only written in titles and names, meaning that there are lúna that are entirely disconnected from the top line.

This version of the script is hard to write with a pen or pencil, but I’m working on a version of it that is easier. I’ve found that it’s easier to write it if you impose a stroke order and enhance some details.

Here’s a small example, though it is slightly outdated.

And here is a preview of the handwritten script.

3 Likes

The script has interesting aesthetics! The top-right part of each syllable looks pretty redundant however. :thinking:
It has some similarities with Devanagari and the Ithkuil script too.

Yeah, I’ve noticed that. I kinda think I like it? But I’ve always kind of been a fan of very blocky aesthetics. I’ll experiment a bit with using other corners of the block for the vowels and see what comes out of it!

The ithkuil comparison is interesting, how is it similar? (I may be thinking of an outdated ithkuil script)

Presumably due to the angular straight lines with some diagonal strokes.

1 Like

Funny you should mention Ithkuil script, because Lúnalai’s script looks very similar to one of its tentative drafts:

Huh! They do look very similar. I wonder if the generation of syllables in ithkuil’s script is similar as well

Somewhat! All iterations of Içtail (Ithkuil’s script) express only minimal phonological information, namely the consonants of the roots and affixes, but this particular draft is unique in that it doesn’t have a dedicated character type for root and affix consonant clusters. Instead, the root consonant cluster is placed inside a Γ-shaped frame which itself carries some declension information (realized as vowels and an additional consonant cluster). I can talk more about it in another thread; I don’t want to derail this one.

I’ve been experimenting with effects and underfilling, trying to make a thingy that is capable of figuring out how to underfill verbs using the speech act "to account for hıo ka being different from hıo ba (using toaq for these examples because i don’t know how i want greetings to even work in lúnalai)

the problem of course is that you’d need to either

  • define underfilling defaults for all (all!) predicates in all speech acts (and lúnalai has SO MANY speech acts)
  • define that some parses, although perfectly syntactically correct, are still ungrammatical

ideally this is a failure that would happen at the type level (underfilling the wrong verbs would be a type error) but i don’t think i know how to… do that?

in the particular case of lúnalai, underfilling isn’t allowed in some subclauses, because clause holes are meaningful (for example in properties, or in relative clauses) so those subclauses end up being entirely different from the rest. i don’t think i know how to do that either. all subclause verbs would have to be completely different from main clause verbs, because main clause verbs arguments need a speech act

this all makes me think that this might not be the way to go. but naively assigning defaults is unsatisfying for me

What if the default underfilling is independent of the predicate and only depends on the speech act? And you could have subclauses apply some speech-act-analogue maybe?

Concerning types, maybe underfillings get their own type? Not sure how your type system currently works, but that way you could use type errors to forbid underfilling…

What if the default underfilling is independent of the predicate and only depends on the speech act?

Well, then some words would have nonsense defaults. For example, rai would have to share a default with hio, and I think these should be different. It would also be incapable of defaulting different things for different slots in the same verb.

And you could have subclauses apply some speech-act-analogue maybe?

I think this would work. I don’t remember why last night I thought it wouldn’t. Maybe the only reason is that it was 2AM

I will write something specifying my thoughts yesterday, once I actually write down an example of this working.

Get ready for insanely scribbles

some words would have nonsense defaults.

I think I might need examples here. Because to me something like an existential instantiation makes sense.

Raı da. ~ Exists X: X is a thing.
Hıo da. ~ Exists X, Y: X greets Y.

Get ready for insanely scribbles

:eyes:

Hio da would end up being be Exists X. X greets X if the underfilling functor doesn’t know about slot position

How about rai ka vs hio ka?

Hio da would end up being be Exists X. X greets X if the underfilling functor doesn’t know about slot position

actutally this might be hella wrong

rai takes a Maybe e as its input, then an Act to figure out a good default in case the input was None. (actually it’s the other way around, first the Act then the Maybe)

However, the w lambda is turned into a Int and the Act lambda is turned into a Default. You can then fmap Functional Application to all of these things as if these were normal types all the way to the SAP. The tree would look remarkably similar to what kuna would output. At this point you end up with a Default (s -> t)

The SAP does three things, first it applies the Default x deconstructor, returning you the Act -> v -> t

The SAP then feeds it the desired Act, giving you a v -> t.

Then it does regular SAP stuff, (v -> t) -> a

3 Likes

Yea I think the more reasonable approach would be to instantiate a new existential for each slot.

Another thought I’m having is that, maybe, all underfilled clauses are lambdas, and there’s some part of the syntax tree that applies them to generate defaults. The problem with this approach is, how do I make it so that the main clause complementizer is capable of taking these lambdas as well as fully formed propositions. Unless, of course, maybe it doesn’t have to. Maybe I can just slap an FP there to do that

UPDATE

I’ve decided that suffixes are the ones that get the glottalization, not the last syllable of the root (what was I thinking?)

The previous examples become:

bashàlàmí’i kùóky’y nioda’a wò!
/mbaʃàlàmíʕi kùókɨʔɨ ni.o.nda’ʕa wò/
“There’s poison in that cup!”

wabo’o kitiky’y kari rà
/wamboʔo kitikɨʔɨ kari rà/
“Your cat is cute”

nhéky’y, la níkoho’o haida’ami rà

Note how the consonant ’ is romanized as h to prevent ambiguity. This, of course, isn’t a problem in the Lúna script, because it uses a separate mark for suffixes

1 Like

Are the ⟪ʕ⟫ typoes for ⟪ʔ⟫? The spelling represents them the same.