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:

English Text
She isn't whiter, I was browner, I was purpler, for that wasn't pinker than these.
You poke those.
They aren't oranger, for I wasn't tanner?
If these were, so these didn't do, then I wasn't one of a fish's own purple cups' reddest.
If I was pinker than xyrs, so they're greyer, then you weren't browner.
Do the sneezing goose.
She wasn't oranger than this but I didn't do brownest fish.
Poke her.
Do none of some books.
Be mine.
If you're this greyest, then I'm the blackest.
I'm yellower than yours.
Xe's redder.
Xe's blacker than being things!
The deer of geese of only of only cups wasn't bluer than them and we are purple.
Bees weren't this chicken of yellow cups' yellowest geese's greyest, but those were.
If I'm none of boxes of some pink cup's brownest, then I don't do this?
Oxen buy them.
Do those.
We weren't green for that was the yellowest.
I'm not greyer, and I was yellower than things?
That does you!
Sneezing chickens weren't that greenest, I'm redder, for I was whiter.
If I was then deer aren't purple?
Some bees of these oranger boxes aren't the tannest, and one of a thing's bees was black books' pinkest.
You do it.
One was yellower, I'm seeing books' bluest, a few of two fish are them, orangest boxes weren't yellow, so she's blacker than only of things' bees.
You poke her.
I am, so one is your own pinkest.
You poke one of the fish of all pink bees.
The ox didn't do them.
I was oranger than two of the doing boxes, for bees are blacker?
I'm those tannest so a few geese of three oxen are tanner than xyrs.
Two books weren't tan?
I wasn't yellower than that, being geese weren't browner than her, but one of boxes didn't poke one!
You be those.
If you were bluer, we were blacker than them, so it's browner, then three grey cups poke a doing ox?
A red box does, I wasn't black, for they weren't tanner.
I was green for this cup isn't black.
I did?
Poke them.
I was oranger, the blackest goose isn't tanner than us, so we sneeze.
You didn't do yours, but all fish aren't his brownest.
You be a grey fish of tanner cups.
I'm purple boxes but this's tanner.
I'm not tanner, but only of cups isn't.
Buy me.
This isn't browner.
I'm not that, but some box of its reddest box of some sneezing not deer is grey?
If the goose isn't greener then I'm bluer than those.
I was red.
You aren't orange, but I'm not those.
I'm not pink.
One of the boxes isn't two of three things of the yellower deer's yellowest so I sneeze?
It's tan.
I wasn't, so my oxen were this blackest.
Do two of those doing cups.
I sneeze for one's yellow bees of three of fish of two geese of some green fish bought this.
You be those.
If we aren't tan, then bees aren't whiter.
Do theirs.
This wasn't oranger, but you weren't.
You be its.
You do three of two chickens.
Be those.
Poke her?
These sneeze, but one isn't.
I'm not yellower.
I didn't do this, some bought fish of a done chicken of some done fish is tanner, she isn't, orange cups' black chicken is blacker, one of some of their things' greyest books isn't tanner, so I bought me.
Buy that.
If a few of cups is pinker than me, I'm greyer than none of all seen fish, one of boxes of three of all doing deer of your fish's fish's white bees does, these poked them, for fish of the thing aren't greyer, then these aren't purpler.
If they weren't the greenest, some bee doesn't do us, you didn't do those, an ox isn't whiter than some book, I'm not pinker, for I wasn't red, then she isn't red?
I'm yellower than me, but only of three doing not poke bees were purpler than this being cup of none of three geese.
I was pinker than me.
I poked those?
If he did that then that does?
You buy xem?
If four of geese of red fish of some deer of sneezing things was tanner than that, but two of books are our purplest, then xe was pink?
I wasn't his own yellowest, the cups' deer sneeze not, I was pinker, but I'm black.
You aren't those orangest.
I sneezed not, for I'm not pinker than a deer of yellowest chickens.
I did, for some greener deer aren't three oxen's own reddest.
This isn't pinker than his.
One wasn't oranger than that, but doing not do things weren't purpler than him.
If these weren't blacker, those weren't her brownest, bees of only done oxen don't do, so I sneeze not, then one of books' own whitest deer was whiter?
These sneeze, I was greyer than you, for I poked us!
If I'm purpler then I was purpler than this.
I wasn't my pinkest so your own fish wasn't browner.
If I was redder, then she was blue?
Boxes did yours, so I was two books' own greenest.
I'm orange.
If it's tanner then a few of things of grey things sneezed not.
You're pink, for I wasn't greyer.
If I bought that, then this's orange?
Four of chickens were tanner, and three of three oxen of some white fish were one?
None of four black oxen's done geese were greyer.
If it doesn't see those, then three yellower boxes weren't whiter?
If I wasn't yellower than you, then a few of those browner boxes wasn't purpler than these?
Be his.
I don't buy some oranger chicken, and fish are tanner than this.

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