Adding words to Faleni: the coinage protocol

This is the "system to keep adding words." Follow it and the language grows without ever becoming irregular, ambiguous, or self‑contradictory.

The golden rule: try to build the word before you invent one. A language that composes stays small and learnable; a language that hoards roots becomes another English. Walk the layers in order and stop at the first that works.


The decision ladder

Need a word for X?
│
├─ 1. Can I COMPOUND it from existing roots?      → do that.  (preferred)
│        "phone" = teku (tool) + fa (speak) = "teku fa"
│
├─ 2. Is it a regular DERIVATION (er/place/ness/opposite/tool)?
│        → use a semantic head.   "teacher" = pa (person) + fapi (teach)
│
├─ 3. Is it a basic, frequent, truly ATOMIC idea with no good build?
│        → coin a NEW ROOT in the right onset-family (rules below). Rare.
│
└─ 4. Is it a proper name or arbitrary technical term?
         → BORROW it: transliterate + mark with "ji".  "ji kolote" = Claude

Compound and derivation cover ~95% of real needs. New roots are for genuine primitives only.


1. Compounds

Want Build Faleni
pet animal + house samu tu
river water + road sa tewi
student person + learn pa famu
kitchen place + (make + food) ti ke kema
airplane tool + fly teku kuwi

2. Derivation with semantic heads

These roots already exist; using them in head position is "derivation":

Head Pattern Example → meaning
pa person one who ___ pa komi → buyer
ti place place of ___ ti famu → school
teku tool device for ___ teku fano → pen
te thing thing that/for ___ te kopi → toy
niso ‑ness quality of ___ niso lefu → strength
noli opposite reverse of ___ noli kipa → to end

3. Coining a NEW ROOT (use sparingly)

Only for frequent, primitive ideas you genuinely can't build. Requirements:

  1. Right onset‑family. Start the word with the consonant for its domain (see the table below): this keeps the vocabulary navigable and is the whole point of the system.
  2. Legal shape: (C)V(CV)… using only a e i o u p t k f s h m n l w j. In practice a new root is 2 syllables (CVCV). Reserve 1‑syllable forms for the top‑50 ideas; they are nearly all used already.
  3. Not taken, not too close: must not collide; avoid one‑sound‑apart pairs inside the same family.
  4. Mnemonic if possible, never at the cost of rules 1–3.
Onset Domain Onset Domain
p people & body l qualities & color
m mind & feeling f speech & info
s nature n number, time, relation
t things & places vowel logic & connectives
k actions

(h/j = grammar, w = pronouns, and the numerals are closed sets, don't coin into them.)

Validate before you commit:

python3 tools/faleni.py check masu    # legal? taken? which family? too close?
python3 tools/faleni.py family        # the onset->domain legend + counts
python3 tools/faleni.py free          # which 1-syllable slots remain
python3 tools/faleni.py capacity      # how much room each family has left
python3 tools/faleni.py suggest m 20  # fresh forms, in three tiers

If the family is full, suggest will say so. k-, l- and n- already are: every two-syllable shape left in them is one sound from an existing word in the same family. That is not a bug to route around, it is the system working. Build the word (layer 1) instead, or, if the idea is genuinely atomic and frequent, take a three-syllable root. Do not squeeze in a near-homophone; the whole point of the spacing rule is that Faleni stays legible over a bad line.

4. Borrowing (proper names & arbitrary terms)

  1. Transliterate to Faleni sounds: map each source sound to the nearest Faleni letter (rl, vf/w, gk, bp, dt, tht/s); break clusters and final consonants with a vowel (default o, or i after front sounds); drop anything Faleni can't represent.
  2. Mark it with the name particle ji so it's never parsed as a compound: ji kolote (Claude), ji amelika (America).
  3. Register it (next section).

Registering a word (so it's permanent and collision‑free)

Every accepted word goes into the dictionary, one row:

word,type,gloss,decomp,domain,notes

Then re‑run the validator:

python3 tools/faleni.py        # should report 0 errors, 0 collisions

That loop, build → check → register → validate, is the whole system. Run it a thousand times and Faleni stays exactly as regular as it is today.


A worked example

I want to say "library."

  1. Compound? A library is a house of books: tu (house) + fila (book) → tu fila.
  2. The parts exist and it reads cleanly, done. A transparent compound needs no registry row, but if it's common in your texts, record it: tu fila,compound,library,tu+fila,thing,house of books
  3. python3 tools/faleni.py → 0 errors. No new root needed.

I want a new root for "snow".

  1. Check first: python3 tools/faleni.py check sepo. It comes back taken: snow is already sepo. Half of "coining" is discovering you didn't need to.

All right, a new root for "moss", then.

  1. Nature ⇒ onset s. Ask what is free: python3 tools/faleni.py suggest s 20.
  2. The answer is thin. s- holds 57 roots, and no fully clean two-syllable form is left: seven shapes are clear inside the nature family (sihi, siji, sutu, susu, suho, suhu, sujo) and every one of them is a sound away from a word in another family. python3 tools/faleni.py capacity says the same thing in one line, for every family at once.
  3. Those seven are usable, the rule that matters is about confusion inside a family. But before spending one, walk back up the ladder. Moss is a small plant that grows on stone: suni li (plant + small), or suni saka (plant + stone) when you need to be specific. No new root, no collision, and a learner who knows suni decodes it cold.
  4. Nothing to register. python3 tools/faleni.py still reports 0 errors, because nothing changed. Spend a scarce form on something a compound cannot carry.

That is the system working, not failing. A full family is the signal to build rather than invent, which is what layer 1 told you to do first anyway. If the idea really is atomic and frequent and no compound will carry it, take a three-syllable root in the right family: still legal, still navigable, and the extra syllable is the honest price of a crowded space.

The same three checks run in the browser on the Add a word page, so you can try a form before you clone anything.