How to design a new language that can be spoken, written, and read.
Abstract: Some others did it — they designed a completely new language. I did as well. Here's how.
© Copyright Daniel Krajzewicz, 24.04.2020 21:11, cc by-nc-nd
I say, be welcome, visitor.
I once admitted to the bet to be capable of designing a new language in 30 minutes. I almost did — yet, it is not pretty and has some flaws. I suppose I'll work on that once again, but for now, you'll find the results of the first 30 minutes…
Half an Hour Design of a New Language
What it's about?
Language is spoken, read, and written. When designing a new one, one should address these aspects. When I showed off to be capable to design a new language in half an hour, I kept this in mind and tried about the fastest way to achieve it.
So the following aspects are needed:
- Words: A language needs words that can written, read, and spoken.
- Grammar: You should be capable to build sentences out of the words.
- Alphabet: For writing the words, you need an alphabet.
Actually, this is not completely true, as seen later. One may design more unusual languages. But for now, let's review the first design of the named three aspects in the following.
I thought that there are two things of importance: a) make the language unique, b) make it understandable. I asked whether this should be an indo-germanic(-european) language, so that, e.g., “Vater” (German) or “father” (English) have the same root. This was neglected. Actually, this is not really reducing the complexity, as seen later, but yes, it makes a very first shot less complicated.
Finally, I decided to put most of the time into the sound of the language, not on typography or grammar. For a better understanding, I decided to keep common mid-european vocals, not to introduce new or uncommon pronunciations or sounds, like Click_consonants or Overtone singing, neither in the spoken nor in the written word.
I knew I had a dictionary of German words. Actually, it's a pseudo-dictionary, as it contains a lot of “words”, which in fact have no meaning in German. Here are the first 12 lines:
aal aalen aas aasgeier ab abakus abänderlich abändern abänderung abänderungsantrag abänderungsanträge
But given that, I should be capable to translate almost everything that is a German word into the new language. So what I did is to write a script which builds a new word for each of the words in the dictionary.
I knew that I would not be capable to split the words by syllable in time. So what I did instead is to guess the number of syllables my new word in Foolang1 should have by using the length of the original German word.
numSylbe = int(len(orig) / 3)
Now, German has a very specific characteristic, users of other languages laugh about: the fact that it concatenates words to obtain new one. “Kindergarten” is made of “Kind” (child) and “Garten” (garden). And there are some more complicated concatenation which involve several words. In fact, this is one reason why Foolang1 does not work well at all.
To make the new language sound different from known ones — as said, it does not have to be indo-germanic — I designed new syllables. I decided to do this by concatenating an alphabetic character and a vowel. In fact, I made a programming mistake here when implementing Foolang1 — there are only as many syllables as vocals — five. This is not much and yields in a large variety of bad characteristics of Foolang1.
Anyhow. For making the language more interesting, I added rules which append or prepend an alphabetic character with a probability of 0.1. Eventually, this made the language not prettier. Rather the opposite. Please note that the following examples use a random number seed of 345.
A further flaw of the generated language is that some of the generated words correspond to different German words — “ro” in Foolang1 names different things: “Kind” (child), “Wrack” (wreck) as well as “Wolf” (wolf) and “Ziege” (goat)… Well, at least the last both ones should be different… And overall, there are like 674 German words that were mapped to “ro”. Of course, the reason for this is the limited number of syllables due to the made mistake.
Half an hour is of course not enough to generate a new, complex grammar. So I designed a very basic one.
Well, the language is flexing the verbs as divided usually — I, you, he/she/it, we, you, they. The verbs are conjugated as following:
- I: <STEM>a
- You: <STEM>e
- He/She/it: <STEM>es
- We: <STEM>an
- You: <STEM>es
- Them: <STEM>ess
Yes, it's indo-germanic… A further idea was to additionally prepend a “na” if the subject is female, or a “ne” if it's male. Yep, forgot about other alternatives.
Regarding nouns, the plural is built by appending a “ae” if the word ends with a consonant, otherwise by appending a “nae”.
All sentences begin with “I say” — “je iu”.
Finally, I tried to design an ancient, mystical way of writing things down. Albeit I thought about different alphabets before, I made a mistake again by thinking of one which in fact has just 19 letters — it should be 26, of course. Actually, because of the mistake to choose only five syllables, it does not matter.
So, instead of letters, let's map the icons to syllables.
The words shown above look like this when written using our Latin alphabet:
aal;hi aalen;iu aas;ro aasgeier;rohi ab; abakus;rohi abänderlich;zuaroiu abändern;iuro abänderung;jeroro abänderungsantrag;hihiiuiuzua abänderungsanträge;rorohirojero
You may note that the application I wrote is not yet capable to build plurals as initially defined — abänderungsantrag is singular in German and abänderungsanträge is its plural. In Foolang1 the plural of “hihiiuiuzua” should but be “hihiiuiuzuanae”, not “rorohirojero”.
Flaws and Issues
As said Foolang1 has some issues. In fact, I only looked at the issues at word level so far, as the script did not generate sentences or so. But let's discuss the issues at word in the following.
- As said, using German with its concatenated words as base language was not a good idea. Coming back to example of “Kindergarten”, in would make sense to have it be a concatenation of the translations of “Kind” and “Garten” in Foolang1. But it's not — because the script simply translates every word into the new language, it makes it without any context and for each word individually. So instead, “Kind” is “ro” in Foolang1 and “Garten” is “zuahi” but “Kindergarten” is “rororozua” and not “rozuahi”. I suppose they sound similar due to the limited number of syllables — by accident the same first one was chosen. I'd have two possibilities to solve it in mind: a) use a language that has not concatenated words as base — your new language could concatenate them using own rules or keep them separated, or b) for each concatenated word, try to find the words it consists of and use their respective Foolang1 equivalent.
- The limited number of syllables.
- The fact that words can be ambiguous, see the “spa” example above, due to this limited number of syllables.
Flaws and Issues
Well, yep, a completely new language in half an hour, albeit with some flaws. By the way, designing it may have taken half an hour. Writing the things down about ten. If you are interested in that, please contact me.
Supporting an e-mail address allows us to answer.
Your message has been sent. Thank you.