Firen Word Generator
Words | gloss |
---|---|
four three two, four seven three five | |
six five seven, two three three, zero two two two | |
six six zero, nine eight zero, four six eight zero | |
zero one three, one nine three, one one five two | |
seven seven nine, nine four one, eight zero zero eight | |
six seven nine, eight five eight six | |
five eight two, seven one eight, zero seven four three | |
five five two, two six three, eight nine nine three | |
one two two, four zero zero eight | |
three eight two, one one seven nine | |
plus one, one five three, eight zero seven, one seven four two | |
eight one eight, seven seven seven, three six zero six | |
seven six eight, eight four four, nine five seven two | |
eight six five, zero five nine, five four three four | |
three four six, nine six five, seven two seven nine | |
three one four, eight seven three, zero nine five six | |
seven two four, two three six, nine five eight eight | |
eight six seven, one one two, five two nine four | |
one eight three, seven one six, four five five two | |
five seven four, eight eight six, one two zero three | |
five five two, five one four, zero six zero four | |
four zero six, four zero three, two eight seven four | |
seven one seven, six seven zero, four three four two | |
eight six zero, zero seven four, one four nine three | |
two three four, four six zero, nine seven three nine | |
three seven five, nine four four, one zero four six | |
two six six, one five zero, zero seven zero one | |
four eight eight, seven six five, two six one three | |
zero seven zero, seven two three, eight six three one | |
six nine six, five nine nine, six one two five | |
seven six two, five one six, nine nine zero six | |
two seven zero, zero three three, three three three nine | |
nine three one, seven zero two, three three zero three | |
zero one eight, seven seven two, zero two two seven | |
two seven nine, nine one seven, nine six three zero | |
four one zero, zero seven eight, six seven one one | |
one five six, one one one, six nine four six | |
nine five nine, one six eight, one five three six | |
six eight zero, three seven four seven | |
two seven two, eight six three, one eight four seven | |
one nine five, three nine six, three eight nine five | |
seven nine five, seven three three, five six five six | |
four five three, eight six five, four eight seven four | |
nine five three, zero two seven, zero zero two three | |
six four three, zero four seven, one nine four seven | |
two one four, seven three two, four three five two | |
seven zero seven, five six eight, nine seven eight three | |
nine eight five, eight zero four, seven one four five | |
zero four seven, nine two five, nine seven six nine | |
nine nine seven, two eight six, five one two zero | |
four nine five, five three two, five three nine zero | |
five seven one, nine eight three, nine three nine eight | |
four four six, nine two eight, six six one six | |
zero eight eight, two two nine, one five zero six | |
zero two zero, nine five seven, three two four five | |
nine five seven, nine six two, two two seven four | |
one zero six, nine three four, nine four zero six | |
six zero zero, six six four, three one six two | |
two zero three, seven five eight, eight two six six | |
seven four four, five four eight, one zero eight eight | |
two two two, two five three, seven six nine seven | |
plus one, eight five six, eight five three, eight one seven nine | |
five nine three, two five six, nine six eight six | |
zero nine one, three nine two, zero seven nine zero | |
seven two four, one four six, four two six one | |
eight five six, five four three, one nine seven eight | |
six one four, seven six seven, three two six one | |
three zero four, one three six, eight three four two | |
three two two, five four seven, two eight four two | |
plus one, seven eight nine, nine two five, nine six eight zero | |
plus one, two two six, nine six four, two nine seven zero | |
nine seven three, three nine eight, one five seven one | |
eight five eight, seven two nine, one three two three | |
six four two, eight four nine, four seven three four | |
three four one, four nine four, seven zero five four | |
two two one, eight seven zero, six one six six | |
eight five eight, two six nine, eight nine four four | |
three seven nine, two four four, zero three zero eight | |
seven six three, seven three five, eight one seven seven | |
plus one, nine five three, nine zero four, eight zero nine five | |
two six five, four eight seven, one eight five two | |
nine six one, six eight three, five zero zero six | |
eight two four, six four nine, two nine four two | |
three nine nine, nine one five, two nine two three | |
two two five, two one seven, one eight five zero | |
nine seven one, seven eight five, six two nine one | |
five seven nine, six nine four, seven nine nine nine | |
six eight nine, one six nine, one seven nine seven | |
four one zero, six nine nine, seven zero six two | |
zero three three, three one five, six six one zero | |
six five four, three six nine, three five zero one | |
five five seven, four one eight, six six four one | |
two five three, eight eight five nine | |
three six seven, seven nine eight, nine four two four | |
seven seven three, three five three, three five five zero | |
two one three, five nine three, three two seven one | |
seven zero nine, three eight zero, zero zero five one | |
six eight eight, zero seven two, nine four four seven | |
seven eight three, three eight nine, two two four one | |
three four six, five zero two, eight four two eight |
Process returned 0
Utility Functions: Clear, Permalink
Noteworthy nodes in each datafile include:
Language | Datafile name | Root nodes (Click a root to generate from it) | Remarks |
---|---|---|---|
Firen | syllables.yml | Sentence , Noun , Verb , NominalRoot , VerbalRoot , | More information about Firen can be found on the Wiki. |
Sajem Tan | sajemtan.yml | Word , Root , Suffix , UnlikelyWord , UnlikelyRoot , UnlikelySuffix , | Sajem Tan is a collaborative conlang. It has a website here. |
English | english.yml | Sentence , | 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 Kidap | ffb.yml | Sentence , 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. |
Xanz | xanz.yml | word , tricons , root , word1 , | Another collaborative language in the Sajem Tan universe. It is the source of triconsonantal roots in Sajem Tan. |
Jafren | jafren.yml | Sentence , 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. |
Jokes | jokes.yml | Gender , | Someone on Mastodon posted a silly CFG for making gender jokes, so I encoded it as a WordGen datafile. Nothing more to it. |
Numbers | numbers.yml | number , 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. |
Tests | CFGs.yml | Dyck , 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