Firen Word Generator

Words: (Limit 250)
Show IPA:
Show glosses:
Show old orthography: (Sajem Tan only)
Show original IPA: (Sajem Tan only)
Show Ðab Tan: (Sajem Tan only)
Show Ðab Tan IPA: (Sajem Tan only)
Show ABC notation: (Jafren only)
Show alphabetical notation: (Jafren only)
Datafile:
Root Node:
Show All Options:

Wordsgloss
:seven four seven, one eight one, six five seven four
forty-two
:four zero three, zero two seven, zero nine eight four
three hundred ninety-three thousand, thirty-one
nine hundred and twenty-four million, two hundred and sixty-four thousand, seven hundred fifteen
five hundred and seventy-nine million, eight hundred five thousand, nine hundred seventy-seven
one hundred seventy-one million, two hundred thirty-six thousand, seven hundred and nine
one hundred and thirty-six
two thousand, seven hundred and sixty-three
ninety
one
twenty-three
:eight two eight, one seven nine, two six one five
twenty million, seven hundred and twenty-three thousand, seven hundred and seventy-four
eight hundred forty-five thousand, eighty-three
sixty-seven
four twenty-three
thirty-five ninety-six
two hundred eight thousand, five hundred fifty-three
eight hundred forty-four thousand, six hundred eighty-five
sixty-one
eight hundred thirteen million, four hundred and twenty-seven thousand, three hundred ninety-nine
three thousand and seventy-five
nine hundred and thirty-two thousand, six hundred eighty-four
thirty-five million, five hundred twenty-one thousand, one hundred and sixty-three
thirteen
eight thousand, one hundred forty
nine hundred forty-five thousand, two hundred forty-four
three hundred thirty-seven thousand, six hundred forty-one
:four five five, three five one, two zero six zero
:nine four zero, four four zero three
:two four seven, one seven three, seven zero nine nine
two hundred forty-three
five twelve
:four nine three, six one three, four two five four
:nine five six, one three seven, four nine four four
ninety-three
two hundred twenty-six thousand, three hundred twenty-four
:plus one, one six seven, zero five four, eight three five seven
seven thousand, six hundred and forty-two
nine hundred ninety-six thousand, forty-two
one hundred and thirty-four million, fifteen thousand, one hundred eighty-eight
twenty-one
thirty-eight
five hundred and fifty-one thousand, nine hundred eighty-eight
seventy-four twenty-six
six thousand, three hundred and thirty-eight
one hundred twelve thousand, eight hundred and seventy
three ninety-three
nine ninety
sixty-two seventy-nine
ninety-four
thirty-six
eight hundred and seventy-seven
nine hundred and sixty-two million, three hundred and ninety-two thousand, nine hundred and seventy-three
one hundred and fifty-one thousand, nine hundred and fifty-six
one hundred and sixty-five thousand, four hundred sixty-seven
:nine nine two six three one three seven one
five hundred seventy-four thousand, eight hundred fifty
thirty-three
nine hundred and ten million, six hundred and sixty-eight thousand, six hundred eighty-five
eighty-six
seven hundred and fourteen
six hundred and sixty-eight
six forty-four
four thousand and twenty-four
four hundred and sixty-three million, five hundred three thousand, six hundred ninety-one
thirty-nine
:zero two three, eight five six, three seven six zero
one hundred and thirteen thousand, eight hundred eighty-six
forty-eight
five hundred and forty-two thousand, two hundred and sixteen
nine hundred twenty-nine thousand, five hundred and thirty
four hundred and twenty-one thousand, eight hundred and fifty
eight hundred and seventy-one million, four hundred eighty-two thousand, nine hundred seventy-seven
two hundred and eighty-six million, ninety-seven thousand, sixteen
eighty-five
:two eight seven, nine five nine, three two seven eight
nine sixty-eight
seven hundred ninety-four
three hundred twelve million, five hundred eighty-seven thousand, four hundred sixty-four
three hundred fifteen million, six hundred and seventy-four thousand, one hundred and seven
eight hundred and forty-one million, forty-four thousand, two
fourteen sixty-six
fifty-two
eight hundred and fourteen
eighty-five
twenty-two
eight sixty-one
:plus one, three four one, nine four zero, zero four six five
sixty-five thousand, one hundred and twelve
one hundred and ninety-two thousand, nine hundred and forty-four
thirty-eight sixty-six
forty-three
six hundred fifty-three
nine hundred and eighty thousand, one hundred and seventeen
three hundred and thirty
six hundred sixteen million, seventy-five thousand, three hundred fifty
eight hundred eighty-one thousand, six hundred and eighty-three
:nine six eight, three eight zero, nine one three nine

Process returned 0

Utility Functions: Clear, Permalink

Noteworthy nodes in each datafile include:

LanguageDatafile nameRoot nodes (Click a root to generate from it)Remarks
Firensyllables.ymlSentence, Noun, Verb, NominalRoot, VerbalRoot, More information about Firen can be found on the Wiki.
Sajem Tansajemtan.ymlWord, Root, Suffix, UnlikelyWord, UnlikelyRoot, UnlikelySuffix, Sajem Tan is a collaborative conlang. It has a website here.
Englishenglish.ymlSentence, My (possibly poorly-considered) attempt to encode basic English grammar in WordGen. I apologise in advance to anyone who tries to make sense out of it.
Dab vi Suxi Kidapffb.ymlSentence, Word, Compound, Syllable, DVSK is a very simple isolating language that was created as a collaboration between me and 4 other people from the Sajem Tan tribe, however it was abandoned after working out the foundations.
Xanzxanz.ymlword, tricons, root, word1, Another collaborative language in the Sajem Tan universe. It is the source of triconsonantal roots in Sajem Tan.
Jafrenjafren.ymlSentence, Word, ChordL, Chord, Chord1, Chord2, Chord3, Chord4, Chord5, A musical language used in the same setting as Firen. It is currently much less well-developed.
Jokesjokes.ymlGender, Someone on Mastodon posted a silly CFG for making gender jokes, so I encoded it as a WordGen datafile. Nothing more to it.
Numbersnumbers.ymlnumber, phoneNumber, internationalPhoneNumber, This is one of the first files I ever wrote, and it shows. It makes use of outdated and deprecated features of WordGen and made the very questionable choice of using 'val' for a phonetic English reading of the number and 'ipa' for the digits.
TestsCFGs.ymlDyck, binPalindrome, Node, This file exists as a testing ground for things that are too simple to need their own files, and for new or experimental features. You will need to uncrease the recursion depth to use some of these roots, particularly Node or else get a million errors.

Note that CFGs.yml is not allowed on this web interface due to higher resource use than the other files and its reliance on WordGen/Cpp features.

Feel free to look at the sources for WordGen/Py and WordGen/Cpp. wordgen.py is the current version of the script, and syllables.yml is the current version of the Firen data file.

This is the web frontend for a Python program that will produce random words using a (rather nifty) weighted-randomized macro expansion approach. IPA transcriptions are generated from the same file, and are not directly attached to the orthography. This means that "digraph recognition" is not even a concept to worry about.

In a second phase, regular expressions and Mealy-type finite state machines are applied to transform the output.

The Firen datafile is generally quite well-developed, and produces generally good results. The IPA transcriptions are sometimes non-obvious because they include synchronic sound changes, and sometimes unnatural but generally still correct, such as with the overzealous syllabification.

The other datafiles are in various stages of development.

Not that it matters or anything, but unless you provide your own seeds, this web frontend has worse randomness because it is simply using Unix time as the seed. (It's required that the server generates the seed for the permalink to work, and time is the standard easy choice for these things.) When run from the command line without an explicit seed parameter, the randomness is much better (Python seeds its random generator from the system's main entropy source). Maybe I could make this Base64-encode some bytes from /dev/urandom or something for the seed instead, it wouldn't change too much.

Working-1.py is a less flexible earlier (Python 2 only) draft, which technically knows nothing about words, and only generates syllables. You may find it interesting or even useful. syllables1.yml is the data file for that version. The two versions are not compatible, but are mostly similar and a single file could in theory be agnostic between them.

Once this is "done", my next plan is to implement something with Markov chains, the more classical way to generate natural language.

Top