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

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