Firen Word Generator
Words | gloss |
---|---|
plus one, four three two, seven four seven, five one eight one | |
plus one, five seven four, two three three, six zero two two | |
plus one, four zero three, six zero two, nine eight zero nine | |
plus one, eight zero five, four zero three, one three three one | |
plus one, one zero one, five two four, four seven five seven | |
plus one, three nine four, six four eight, zero eight nine zero | |
plus one, nine four seven, five eight six, one seven eight one | |
plus one, five two seven, eight zero zero, seven four three one | |
plus one, six five five, three eight two, three four two eight | |
plus one, two zero five, two two five, four zero zero eight | |
plus one, three eight two, five one one, nine eight zero two | |
plus one, three nine eight, seven eight one, four two eight seven | |
plus one, eight one eight, five seven seven, nine one three six | |
plus one, eight three five, seven six eight, two eight four four | |
plus one, five seven two, six one zero, eight six five seven | |
plus one, nine eight six, four three four, seven six eight six | |
plus one, seven three nine, five two six, two seven nine four | |
plus one, four three one, one two eight, three one zero zero | |
plus one, three six eight, five seven two, zero five two three | |
plus one, nine five eight, one three three, eight eight six seven | |
plus one, one two six, five two nine, seven five two nine | |
plus one, three five eight, one six zero, four five five two | |
plus one, five seven five, four one three, eight six four three | |
plus one, three six two, nine four five, two seven three five | |
plus one, two zero six, four zero eight, six nine four zero | |
plus one, four zero three, zero two eight, four six two four | |
plus one, one seven three, six seven zero, nine four three four | |
plus one, three two four, six zero three, zero seven four two | |
plus one, nine three zero, six one three, three four two five | |
plus one, zero nine nine, three nine five, nine one one three | |
plus one, four nine four, four two one, four six six four | |
plus one, two six six, three one five, zero three zero seven | |
plus one, seven four zero, four eight eight, five seven six five | |
plus one, six one three, one seven six, zero seven zero six | |
plus one, three two four, six three one, three four seven zero | |
plus one, eight two five, nine six two, one two five two | |
plus one, three seven six, six two five, six zero four nine | |
plus one, seven five eight, one two seven, seven two zero three | |
plus one, three three three, four seven one, one nine three one | |
plus one, zero two three, three three zero, two four zero zero | |
plus one, eight six eight, seven two seven, zero two two seven | |
plus one, two six two, nine four three, one seven eight seven | |
plus one, zero two seven, seven two four, zero two five zero | |
plus one, two six seven, one two five, one zero one five | |
plus one, one one one, six six nine, six six eight eight | |
plus one, five nine five, one six eight, three one five three | |
plus one, one six eight, seven five three, four seven nine eight | |
plus one, two seven two, two eight six, zero nine one eight | |
plus one, seven nine five, one nine five, one three nine six | |
plus one, eight nine five, four one six, seven nine five four | |
plus one, three four five, six five six, four one eight three | |
plus one, six three eight, five zero four, eight seven four zero | |
plus one, zero nine five, zero seven zero, seven eight zero zero | |
plus one, two four eight, six six four, seven six zero four | |
plus one, one nine four, nine two nine, nine two one four | |
plus one, three two five, four three five, nine seven four seven | |
plus one, seven one nine, six eight two, nine seven eight three | |
plus one, one one nine, five eight three, zero four nine four | |
plus one, five four seven, two seven zero, seven seven one nine | |
plus one, six nine seven, nine two one, eight zero nine nine | |
plus one, two eight six, zero five one, zero three two eight | |
plus one, nine five nine, five three two, eight five three nine | |
plus one, nine six four, seven one zero, nine eight three six | |
plus one, nine eight six, nine eight nine, four six four five | |
plus one, three nine six, one six one, five one two zero | |
plus one, nine two two, two four one, zero six six three | |
plus one, zero two zero, eight nine five, six seven three two | |
plus one, six three two, nine five seven, four nine six two | |
plus one, two seven four, nine five six, one zero six nine | |
plus one, four one three, four zero six, four six five four | |
plus one, seven one six, four two nine, one six two two | |
plus one, two two zero, four five seven, eight five three eight | |
plus one, zero one seven, three seven four, seven four five four | |
plus one, one zero eight, three one one, eight two two two | |
plus one, five three nine, seven six nine, three nine nine five | |
plus one, three eight five, four eight one, nine six eight one | |
plus one, nine three zero, two five six, three nine six eight | |
plus one, eight zero one, nine one three, three nine two nine | |
plus one, nine zero four, two two one, two four nine two | |
plus one, two nine four, six one eight, four zero six eight | |
plus one, four five four, seven four one, seven eight seven six | |
plus one, six one four, nine seven six, six seven three two | |
plus one, eight four five, three zero four, two one three six | |
plus one, three four two, six one three, three two two nine | |
plus one, seven six six, eight four two, zero three one seven | |
plus one, nine two five, nine six eight, three zero three one | |
plus one, nine nine six, four two nine, zero seven six four | |
plus one, seven three eight, three nine eight, nine one five seven | |
plus one, nine zero four, five eight three, seven two nine two | |
plus one, two three four, six two nine, four two two three | |
plus one, eight six four, three four zero, two seven eight three | |
plus one, four four nine, four one seven, five four seven eight | |
plus one, two two one, three eight seven, seven one six one | |
plus one, three zero nine, eight five eight, four two six nine | |
plus one, nine four four, six two nine, three seven nine eight | |
plus one, four nine five, three zero eight, four three six seven | |
plus one, four seven seven, five eight nine, one seven seven two | |
plus one, nine five three, nine zero four, eight zero nine five | |
plus one, seven nine two, five three seven, eight seven four eight | |
plus one, two eight one, three three nine, one five six six |
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