Published on , 2000 words, 8 minutes to read

I've been working on a project in the Conlang Critic Discord with some friends for a while now, and I'd like to summarize what we've been doing and why here. We've been working on creating a constructed language (conlang) with the end goal of each of us going off and evolving it in our own separate ways. Our goal in this project is really to create a microcosm of the natural process of language development.


One of the questions you, as the reader, might be asking is "why?" To which I say "why not?" This is a tool I use to define, explore and challenge my fundamental understanding of reality. I don't expect anything I do with this tool to be useful to anyone other than myself. I just want to create something by throwing things at the wall and seeing what makes sense for me. If other people like it or end up benefitting from it I consider that icing on the cake.

A language is a surprisingly complicated thing. There's lots of nuance and culture encoded into it, not even counting things like metaphors and double-meanings. Creating my own languages lets me break that complicated thing into its component parts, then use that understanding to help increase my knowledge of natural languages.

So, like I mentioned earlier, I've been working on a conlang with some friends, and here's what we've been creating.

mapatei grammar

mapatei is the language spoken by a primitive culture of people we call maparaja (people of the language). It is designed to be very simple to understand, speak and learn.


The phonology of mapltapei is simple. It has 5 vowels and 17 consonants. The sounds are written mainly in International Phonetic Alphabet.


The vowels are:

International Phonetic Alphabet Written as Description / Bad Transcription for English speakers
a a unstressed "ah"
ā stressed "AH"
e e unstressed "ayy"
ē stressed "AYY"
i i unstressed "ee"
ī stressed "EE"
o o unstressed "oh"
ō stressed "OH"
u u unstressed "ooh"
ū stressed "OOH"

The long vowels (anything with the funny looking bar/macron on top of them) also mark for stress, or how "intensely" they are spoken.


The consonants are:

International Phonetic Alphabet Written as Description / Bad Transcription for English speakers
m m the m in mother
n n the n in money
ᵐb mb a combination of the m in mother and the b in baker
ⁿd nd as in handle
ᵑg ng as in finger
p p the p in spool
t t the t in stool
k k the k in school
ph the ph in pool
th the th in tool
kh the kh in cool
ɸ~f f the f in father
s s the s in sock
w w the w in water
l l the l in lie
j j or y the y in young
r~ɾ r the r in rhombus

Word Structure

The structure of words is based on syllables. Syllables are formed of a pair of maybe a consonant and always a vowel. There can be up to two consecutive vowels in a word, but each vowel gets its own syllable. If a word is stressed, it can only ever be stressed on the first syllable.

Here are some examples of words and their meanings (the periods in the words mark the barriers between syllables):

mapatei word Intentional Phonetic Alphabet Meaning
ondoko o.ⁿdo.ko pig
māo maː.o cat
ameme to kill/murder
ero can, to be able to
ngōe ᵑgoː.e I/me
ke ke cold
ku ku fast

There are only a few parts of speech: nouns, pronouns, verbs, determiners, numerals, prepositions and interjections.


Nouns describe things, people, animals, animate objects (such as plants or body parts) and abstract concepts (such as days). Nouns in mapatei are divided into four classes (this is similar to how languages like French handle the concept of grammatical gender): human, animal, animate and inanimate.

Here are some examples of a few nouns, their meaning and their noun class:

mapatei word International Phonetic Alphabet Class Meaning
okha o.kʰa human female human, woman
awu a.wu animal dog
fōmbu (ɸ~f)oː.ᵐbu animate name
ipai inanimate salt

Nouns can also be singular or plural. Plural nouns are marked with the -ja suffix. See some examples:

singular mapatei word plural mapatei word International Phonetic Alphabet Meaning
ra raja ra.ja person / people
meko mekoja me.ko.ja ant / ants
kindu kinduja kiː.ⁿdu.ja liver / livers
fīfo fīfoja (ɸ~f)iː.(ɸ~f)o.ja moon / moons


Pronouns are nouns that replaces a noun or noun phrase with a special meaning. Examples of pronouns in English are words like I, me, or you. This is to avoid duplication of people's names or the identity of the speaker vs the listener.

Pronouns singular plural Rough English equivalent
1st person ngōe tha I/me, we
2nd person sīto khē you, y'all
3rd person human foli he/she, they
3rd person animal mi wāto they
3rd person animate sa wāto they
3rd person inanimate li wāto they


Verbs describe actions, existence or occurrence. Verbs in mapatei are conjugated in terms of tense (or when the thing being described has/will happen/ed in relation to saying the sentence) and the number of the subject of the sentence.

Verb endings:

Verbs singular plural
past -fu -phi
present -ja
future māu $verb māu $verb-ja

For example, consider the verb ōwo (oː.wo) for to love:

ōwo - to love singular plural
past ōwofu ōwophi
present ōwo ōwoja
future māu ōwo māu ōwoja


Determiners are words that can function both as adjectives and adverbs in English do. A determiner gives more detail or context about a noun/verb. Determiners follow the things they describe, like French or Toki Pona. Determiners must agree with the noun they are describing in class and number.

Determiners singular plural
human -ra -fo
animal -mi -wa
animate -sa -to
inanimate -li -wato

See these examples:

a big human: ra sura

moving cats: māoja wuwa

a short name: fōmbu uwiisa

long days: lundoseja khāngandiwato

Also consider the declensions for uri (u.ri), or dull

uri singular plural
human urira urifo
animal urimi uriwa
animate urisa urito
inanimate urili uriwato


There are two kinds of numerals in mapltatei, cardinal (counting) and ordinal (ordering) numbers. Numerals are always in seximal.

cardinal (base 6) mapatei
0 fangu
1 āre
2 mawo
3 piru
4 kīfe
5 tamu
10 rupe
11 rupe jo āre
12 rupe jo mawo
13 rupe jo piru
14 rupe jo kīfe
15 rupe jo tamu
20 mawo rupe
30 piru rupe
40 kīfe rupe
50 tamu rupe
100 theli

Ordinal numbers are formed by reduplicating (or copying) the first syllable of cardinal numbers and decline similarly for case. Remember that only the first syllable can be stressed, so any reduplicated syllable must become unstressed.

ordinal (base 6) mapatei
0th fangufa
1st ārea
2nd mawoma
3rd pirupi
4th kīfeki
5th tamuta
10th ruperu
11th ruperu jo ārea
12th ruperu jo mawoma
13th ruperu jo pirupi
14th ruperu jo kīfeki
15th ruperu jo tamuki
20th mawoma ruperu
30th pirupi ruperu
40th kīfeki ruperu
50th tamuta ruperu
100th thelithe

Cardinal numbers are optionally declined for case when used as determiners with the following rules:

Numeral Class suffix
human -ra
animal -mi
animate -sa
inanimate -li

Numeral declension always happens last, so the inanimate nifth (seximal 100 or decimal 36) is thelitheli.

Here's a few examples:

three pigs: ondoko pirumi

the second person: ra mawomara

one tree: kho āremi

the nifth day: lundose thelitheli


Prepositions mark any other details about a sentence. In essence, they add information to verbs that would otherwise lack that information.

fa: with, adds an auxiliary possession to a sentence

ri: possession, sometimes indicates ownership

I eat with my wife: wā ngōe fa epi ri ngōe

ngi: the following phrase is on top of the thing being described

ka: then (effect)

ēsa: if/whether

If I set this dog on the rock, then the house is good: ēsa adunga ngōe pā āwu ngi, ka iri sare eserili


Interjections have the following meanings:

Usually they act like vocatives and have free word order. As a determiner they change meta-properties about the noun/verb like negation.

wo: no, not

English mapatei
No! Don't eat that! wo! wā wo ūto
I don't eat ants wā wo ngōe mekoja

Word Order

mapltapei has a VSO word order for sentences. This means that the verb comes first, followed by the subject, and then the object.

English mapatei gloss
the/a child runs kepheku rako kepheku.VERB rako.NOUN.human
The child gave the fish a flower indofu rako ora āsu indo.VERB.past rako.NOUN.human ora.NOUN.animal āsu.NOUN.animate
I love you ōwo ngōe sīto ōwo.VERB ngōe.PRN sīto.PRN
I do not want to eat right now wā wo ngōe oko mbeli wā.VERB wo.INTERJ ngōe.PRN oko.PREP mbeli.DET.singular.inanimate
I have a lot of love, and I'm happy about it urii ngōe erua fomboewato, jo iri ngōe phajera lo li urii.VERB ngōe.PRN eruaja.NOUN.plural.inanimate fomboewato.DET.plural.inanimate, jo.CONJ iri.VERB ngōe.PRN phajera.DET.singular.human lo.PREP li.PRN
The tree I saw yesterday is gone now pōkhufu kho ngōe, oko iri māndosa mbe pōkhu.VERB.past kho.NOUN.animate ngōe.PRM, oko.PREP iri.VERB māndo.DET.animate mbe.PRN


As I mentioned earlier, I've been working on some code here to handle things like making sure words are valid. This includes a word validator which I am very happy with.

Words are made up of syllables, which are made up of letters. In code:

  Letter* = object of RootObj
    case isVowel*: bool
    of true:
      stressed*: bool
    of false: discard
    value*: string

  Syllable* = object of RootObj
    consonant*: Option[Letter]
    vowel*: Letter
    stressed*: bool

  Word* = ref object
    syllables*: seq[Syllable]

Letters are parsed out of strings using this code. It's an interator, so users have to manually loop over it:

import unittest
import mapatei/letters

let words = ["pirumi", "kho", "lundose", "thelitheli", "fōmbu"]

suite "Letter":
  for word in words:
    test word:
      for l in word.letters:
       discard l

This test loops over the given words (taken from the dictionary and enlightening test cases) and makes sure that letters can be parsed out of them.

Next, syllables are made out of letters, so syllables are parsed using a finite state machine with the following transition rules:

Present state Next state for vowel Next state for consonant Next state for end of input
Init Vowel/stressed Consonant Illegal
Consonant Vowel/stressed End Illegal
Vowel End End End

Some other hacking was done in the code, but otherwise it is a fairly literal translation of that truth table.

And finally we can check to make sure that each word only has a head-initial stressed syllable:

type InvalidWord* = object of Exception

proc parse*(word: string): Word =
  var first = true
  result = Word()

  for syll in word.syllables:
    if not first and syll.stressed:
      raise newException(InvalidWord, "cannot have a stressed syllable here")
    if first:
      first = false
    result.syllables.add syll

And that's enough to validate every word in the dictionary. Future extensions will include automatic conjugation/declension as well as going from a stream of words to an understanding of sentences.

Useful Resources Used During This

Creating a language from scratch is surprisingly hard work. These resources helped me a lot though.

Thanks for reading this! I hope this blogpost helps to kick off mapatei development into unique and more fleshed out derivative conlangs. Have fun!

Special thanks to jan Misali for encouraging this to happen.

Facts and circumstances may have changed since publication. Please contact me before jumping to conclusions if something seems wrong or unclear.

Tags: mapatei, protolang