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:

SentencesGlosses
Ixu savus vifax xix ipi divux-bifuxixi.IMP move P[thing] R[clever indigo_bunting-unfeathered_tail]
Savus suxi kapat sud ipi pagaxi-ibu sit ipi divux.move A[OBJOF:go] P[big root-honey] R[small indigo_bunting]
Bu savus xix ipi gabifupas sukax xix ipi sapab.PAST-INC move A[clever fur] P[person] R[clever tree]
Gi.yes
Iu gabafig uxu ipi xigapab.PRES-PFV die A[many wood]
Biu savus kuf-ibu-sapaxip puxib vi sapab.PAST-PFV move A[bee-honey-leaf] R[DAT tree]
Xapa gakif xigapab.do A[oil] P[wood]
Xiub sipu xux suxi savus.FUT_PAST-PFV think A[water] P[OBJOF:move]
U kapat sukaxip sud ipi gabifuxu fapapas.PRES-INC go A[hand] P[big bull] R[down]
Xix gabafig sapapas.FUT_FUT-TERM die A[bark]
Ixu gabafig.IMP die
Gi.yes
Savus ibu-kuf xix ipi sapabis xuxap.move A[honeybee] P[clever seed] R[fish]
U iaiag uxu ipi fap.PRES-INC laugh A[many air]
A kapat kagaxi puxib vi sapab.PRES-CONT go A[leg] R[DAT tree]
Biu savus kuf suxi savus kuf-kapi.PAST-PFV move A[bee] P[OBJOF:move] R[bee-book]
A iaiag sukaxip-gabifuxip.PRES-CONT laugh A[hand-horn]
A xapkat sukax-bat gabafig.PRES-CONT obtain A[bone] P[SUBOF:die]
A fabi-gau xis-fabi xikuk.PRES-CONT defenestrate A[friend-window] P[SUBOF:write]
Ixu savus viv ipi xuxap xis.IMP move P[long fish] R[friend]
A fabi-gau bat sukax.PRES-CONT defenestrate A[core] P[person]
Xab kapat dipik fap-fapapas fabi.FUT_PAST-CONT go A[cuttlefish] P[air-down] R[window]
I gabid sapaxip-sapab sit ipi fapapis.PRES-TERM eat A[leaf-tree] P[small egg]
Savus kapat divux sit ipi sapab-gabifuxu.move A[SUBOF:go] P[indigo_bunting] R[small tree-bull]
Iu iaiag divux.PRES-PFV laugh A[indigo_bunting]
Dupiduxi.goodnight
U iaiag sukax-xigapab-fapaxip-kapi.PRES-INC laugh A[person-wood-wing-book]
Gabafig xix ipi ibu.die A[clever honey]
Iu gabafig aksup ipi sukaxis.PRES-PFV die A[wrong fetus]
Xi kapat savus bifuxixi fapagixi.FUT-TERM go A[SUBOF:move] P[unfeathered_tail] R[feathered_tail]
Savus sud ipi kagaxi puxib vi sukax.move A[big leg] R[DAT person]
Bi dixav suxi kapat sukax.PAST-TERM annhilate A[OBJOF:go] P[person]
Iu iaiag xix ipi bifuxixi.PRES-PFV laugh A[clever unfeathered_tail]
A savus sapabis-sapabis iaiag fapap-xigapab.PRES-CONT move A[seed-seed] P[SUBOF:laugh] R[bird-wood]
Iaiag suxi xikuk.laugh A[OBJOF:write]
I savus sukaxip puxib vi suxi kapat.PRES-TERM move A[hand] R[DAT OBJOF:go]
Ixu savus xix ipi kupib.IMP move R[clever mind]
Kapat sukax-bat puxib vi sukax-bat.go A[bone] R[DAT bone]
Kapat fapap fapagixi fapapis-sukaxis.go A[bird] P[feathered_tail] R[egg-fetus]
U gabafig buki vi vagaf.PRES-INC die A[SUB louse]
Kapat suxi savus kupib-kapi sud ipi kapi.go A[OBJOF:move] P[sentient-book] R[big book]
Bub gabafig suxi xapa.PAST_PAST-INC die A[OBJOF:do]
I savus gakif puxib vi gakif-xux.PRES-TERM move A[oil] R[DAT fat]
Kapat ibu-sapabis puxib vi vifax.go A[honey-seed] R[DAT thing]
Xab kapat sit ipi xuxap gakif-xux sit ipi fabi.FUT_PAST-CONT go A[small fish] P[fat] R[small window]
Dab vi xix ipi kagaxi.DIRECT clever leg
A bifig sud ipi sukax fapaxip.PRES-CONT poke A[big person] P[wing]
Iu kapat sud ipi sukaxip xix ipi gabifuxu puxib vi sud ipi xisap.PRES-PFV go A[big hand] P[clever bull] R[DAT big dog]
Xub iaiag xisap.FUT_PAST-INC laugh A[dog]
Dab vi xix ipi fabi.DIRECT clever window
Bax kapat xux aksup ipi sapaxip xigapab.PAST_FUT-CONT go A[water] P[wrong leaf] R[wood]
Bub kapat ibu-gakif puxib vi xux.PAST_PAST-INC go A[honey-oil] R[DAT water]
Fabi-gau viv ipi kagaxi fapapas.defenestrate A[long leg] P[down]
Iu savus xigapab puxib vi aksup ipi dipik.PRES-PFV move A[wood] R[DAT wrong cuttlefish]
A tisup sud ipi fap ibu-fap.PRES-CONT have A[big air] P[honey-air]
Ixu gabafig.IMP die
I xapa gakif sukax.PRES-TERM do A[oil] P[person]
Savus aksup ipi gabifuxu sit ipi xis suxi taki.move A[wrong bull] P[small friend] R[OBJOF:make]
I gabafig fap.PRES-TERM die A[air]
Bab xakugi kidap bifuxixi.PAST_PAST-CONT take A[SUBOF:speak] P[unfeathered_tail]
Xix gabafig uxu ipi gabifuxip-fapapis.FUT_FUT-TERM die A[many horn-egg]
A savus uxu ipi xisap gabifuxu suxi gabid.PRES-CONT move A[many dog] P[bull] R[OBJOF:eat]
I xakugi sukaxis aksup ipi gabifupas.PRES-TERM take A[fetus] P[wrong fur]
Xapa.SUBOF:do
Dupiduxi.goodnight
Xab xikuk gakif viv ipi xux.FUT_PAST-CONT write A[oil] P[long water]
Biu kapat sapaxip sit ipi gakif guti kapat.PAST-PFV go A[leaf] P[small oil] R[DATOF:go]
Xax gabafig sit ipi xuxap.FUT_FUT-CONT die A[small fish]
Ixu savus viv ipi fapapas.IMP move R[long down]
Xi savus kapat puxib vi xix ipi sukaxis.FUT-TERM move A[SUBOF:go] R[DAT clever fetus]
U iaiag iaiag.PRES-INC laugh A[SUBOF:laugh]
Dab vi suxi savus.DIRECT OBJOF:move
Savus fapaxip puxib vi xuxap.move A[wing] R[DAT fish]
Dab vi kapat.DIRECT SUBOF:go
Savus gabifuxu-gakif uxu ipi gabifuxu guti kapat.move A[bull-oil] P[many bull] R[DATOF:go]
U kapat aksup ipi gabifuxu puxib vi divux.PRES-INC go A[wrong bull] R[DAT indigo_bunting]
I kapat aksup ipi gabifupas puxib vi gabifuxip-ibu.PRES-TERM go A[wrong fur] R[DAT horn-honey]
I savus ibu-sukaxip puxib vi sit ipi sapab.PRES-TERM move A[honey-hand] R[DAT small tree]
Iu xaku xis gabifuxip.PRES-PFV want A[friend] P[horn]
Savus sud ipi bifuxixi xisap suxi kapat.move A[big unfeathered_tail] P[dog] R[OBJOF:go]
Gi.yes
I dixav aksup ipi ibu sapabis-fapapis.PRES-TERM annhilate A[wrong honey] P[seed-egg]
Ixu dixav fapaxip.IMP annhilate P[wing]
Ixu dixav aksup ipi xisap.IMP annhilate P[wrong dog]
Fa.no
Xiub bifig guti kapat guti savus.FUT_PAST-PFV poke A[DATOF:go] P[DATOF:move]
A kapat vagaf-xux xuxap vifax.PRES-CONT go A[louse-water] P[fish] R[thing]
I savus kupib-kapi gabifuxip iaiag.PRES-TERM move A[sentient-book] P[horn] R[SUBOF:laugh]
U iaiag fapaxip.PRES-INC laugh A[wing]
I kapat kapat puxib vi savus.PRES-TERM go A[SUBOF:go] R[DAT SUBOF:move]
Kupid.hello
Kapat kupib-kapi ibu-kuf xix ipi xisap.go A[sentient-book] P[honeybee] R[clever dog]
Sapaxip.leaf
Iu iaiag sukax-fapaxip.PRES-PFV laugh A[person-wing]
Kapat viv ipi kupib fapagixi suxi xakugi.go A[long mind] P[feathered_tail] R[OBJOF:take]
Iu kapat aksup ipi fapagixi puxib vi sapab-bat.PRES-PFV go A[wrong feathered_tail] R[DAT wood]
I kapat sit ipi sapabis puxib vi sud ipi kuf.PRES-TERM go A[small seed] R[DAT big bee]
Ixu xapak aksup ipi sukapas.IMP repeat P[wrong skin]
Ixu savus iaiag.IMP move R[SUBOF:laugh]
Savus buki vi iaiag puxib vi ibu-kuf.move A[SUB SUBOF:laugh] R[DAT honeybee]

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