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:

WordGloss
kůpiskasai sůṙgai[C]HAB-swim[IND]-A3pA 3pA-PCL[ABS]
ailki badi sas tozzadonu3pD-ERG father-A;person[ABS] RCP [C][PFV]love[IND]-A3pD-P3pA
zegůslannalusučoPP-CONT-sing[IND]-INC-A1pI-P2p
daomat fola sůpittadibe1pX-COLL 3pI-PL[ABS] DP-[PFV]feel_pain[IND]-A1pX-P3pI
ikaseki alatif sas gůpoṙddazabocouple-A-ERG peace-D[ABS] RCP [C]CONT-grasp[IND]-A3pI-P3pI
ail kůfuskbaṙlisidi3pD[ABS] [C]HAB-write:SPEC-INC-A1pI-P3pD
folku folsko toṙsarezabe3pI-ERG 3pI-PL[ABS] [C][PFV]shout[IND]-TERM-A3pI-P3pI
ailistifki fol saigadebeessense-spirit-D-ERG 3pI[ABS] [C][PFV]wrap[IND]-A3pD-P3pI
lattadodu fokoṙvilezjittitifki[C][PFV]cut[IND]-A3pD-P3pD noun-noun-noun-noun-D-ERG
ailistif kůtoṙsfusunuessense-spirit-D[ABS] [C]HAB-shout:COND-A1pI-P3pA
vossaṙku ailgai kůlattazadinoun[I]-ERG 3pD-PCL[ABS] [C]HAB-cut[IND]-A3pI-P3pD
alatifki sas sikůtillaidečepeace-D-ERG RCP DP-HAB-speak:SBJ-A3pD-P2p
basketif sikůstemůṙrosaoword-D[ABS] DP-HAB-work:SPEC-TERM-A3pA
tilladeskgabe ikase[C][PFV]speak:DISS-A2p-P3pI couple-A[ABS]
holluzůugaistovku rospi vollamzadunoun-noun-noun-noun[I]-ERG friend-A;person[ABS] [C][PFV]change:DEO-A3pI-P3pD
sigůhanarozabo badiki folDP-CONT-speak[IND]-TERM-A3pI-P3pI father-A;person-ERG 3pI[ABS]
nům sas bikůgůlačobo folAPV RCP F-HAB-mark[IND]-MOMT-P3pI 3pI[ABS]
nům sas gůpittafurečeAPV RCP [C]CONT-feel_pain:COND-TERM-P2p
gůroskududu[C]CONT-verb:SBJ-A1pX-P3pD
nad sůsunesksai sůṙgaiPSV DP-[PFV]have:DISS-A3pA 3pA-PCL[ABS]
zůhanadidi ailmatPP-[PFV]speak[IND]-A1pX-P3pD 3pD-COLL[ABS]
nům sas zůsůggafutuAPV RCP PP-[PFV]be_sick:COND-P1pX
folgao bikůslannagabe3pI-PCL[ABS] F-HAB-sing[IND]-A2p-P3pI
sůṙ nům sas rustaṙnu3pA[ABS] APV RCP [C][PFV]verb:SPEC-P3pA
samaga[C][PFV]look[IND]-A2p
nad bůkettade ikasePSV F-[PFV]harm[IND]-A3pD couple-A[ABS]
bigůsůggamludodu edkiF-CONT-be_sick:DEO-INC-A3pD-P3pD black[I]-ERG
sas kůvůmmalugaduRCP [C]HAB-create[IND]-INC-A2p-P3pD
sas bůnakadodu basketifkiRCP F-[PFV]intersect[IND]-A3pD-P3pD word-D-ERG
go saṙl gůtozzadeskrogabo2pT snow[I][ABS] [C]CONT-love:DISS-TERM-A2p-P3pI
sůṙ sas sigůtoṙsaganu3pA[ABS] RCP DP-CONT-shout[IND]-A2p-P3pA
piskačodu[C][PFV]swim[IND]-MOMT-A1pX
sůpittafusaonu sůṙki ruttaṙtufDP-[PFV]feel_pain:COND-A3pA-P3pA 3pA-ERG number-D[ABS]
sas zekůčessaṙdedi hikretifaki ailgaiRCP PP-HAB-shout:SPEC-A3pD-P3pD noun-noun-D-PL-ERG 3pD-PCL[ABS]
paṙvseki sas sůpetladečetree-A-ERG RCP DP-[PFV]grasp[IND]-A3pD-P2p
fuskbamlidedi ailki ruttaṙtuf[C][PFV]write:DEO-INC-A3pD-P3pD 3pD-ERG number-D[ABS]
fola zegůhisppaṙlugabo3pI-PL[ABS] PP-CONT-find:SPEC-INC-A2p-P3pI
sůṙki rospi zůtůtalusaobo3pA-ERG friend-A;person[ABS] PP-[PFV]touch[IND]-INC-A3pA-P3pI
ailaki ail bikůčadadedi3pD-PL-ERG 3pD[ABS] F-HAB-verb[IND]-A3pD-P3pD
gůčunnasaodu sůṙgaiki[C]CONT-birth[IND]-A3pA-P3pD 3pA-PCL-ERG
pit skommafusaoshadow[I][ABS] [C][PFV]think:COND-A3pA
ruttaṙtuf bikůčessaisininumber-D[ABS] F-HAB-shout:SBJ-A1pI-P3pA
nad zegůnommarediPSV PP-CONT-want[IND]-TERM-A1pX
sas kůtůtagačeRCP [C]HAB-touch[IND]-A2p-P2p
zůhisppafudodu ailakiPP-[PFV]find:COND-A3pD-P3pD 3pD-PL-ERG
nům sas sůvollaolidi ailAPV RCP DP-[PFV]change:SBJ-INC-P3pD 3pD[ABS]
koṙarededi ailki[C][PFV]govern[IND]-TERM-A3pD-P3pD 3pD-ERG
vollaligadi[C][PFV]change[IND]-INC-A2p-P3pD
ail nům bůlůttaṙludo3pD[ABS] APV F-[PFV]remove:SPEC-INC-A3pD
zegůkaoharezabe alatifki niPP-CONT-verb[IND]-TERM-A3pI-P3pI peace-D-ERG noun[I][ABS]
pava gůsaigarogačo2pV-PL [C]CONT-wrap[IND]-TERM-A2p-P2p
nad luskesksai sůṙskePSV [C][PFV]blow:DISS-A3pA 3pA-PL[ABS]
badi nům sas bůvostaočedifather-A;person[ABS] APV RCP F-[PFV]lose:SBJ-MOMT-P3pD
kůtoṙsoṙzačo badiki[C]HAB-shout:SPEC-A3pI-P2p father-A;person-ERG
sůnassadeskrozačo folku faiDP-[PFV]play:DISS-TERM-A3pI-P2p 3pI-ERG 1pI
sas sůsaosamredini edRCP DP-[PFV]count:DEO-TERM-A1pX-P3pA black[I][ABS]
zegůtoṙsačezani folmataku ikasePP-CONT-shout[IND]-MOMT-A3pI-P3pA 3pI-COLL-PL-ERG couple-A[ABS]
sas sůvůṙlačoganu sůṙRCP DP-[PFV]impact[IND]-MOMT-A2p-P3pA 3pA[ABS]
ůṙfseki kůpittadefiadolescent-A-ERG [C]HAB-feel_pain[IND]-A3pD-P1pI
nommazanu edki sůṙmata[C][PFV]want[IND]-A3pI-P3pA black[I]-ERG 3pA-COLL-PL[ABS]
nům sas saigačeAPV RCP [C][PFV]wrap[IND]-P2p
sas bigůkettafuresidi ailRCP F-CONT-harm:COND-TERM-A1pI-P3pD 3pD[ABS]
zůnassamgačePP-[PFV]play:DEO-A2p-P2p
kůslannamlugatu[C]HAB-sing:DEO-INC-A2p-P1pX
sůṙgaiki sůsolamčesaiti3pA-PCL-ERG DP-[PFV]verb:DEO-MOMT-A3pA-P1pX
bůluskasaodu sůṙkiF-[PFV]blow[IND]-A3pA-P3pD 3pA-ERG
ailistifki isse fosaresaidiessense-spirit-D-ERG spirit-A[ABS] [C][PFV]help[IND]-TERM-A3pA-P3pD
sůṙ nům sas sůpittačonu3pA[ABS] APV RCP DP-[PFV]feel_pain[IND]-MOMT-P3pA
bůzaimazani alatifki aonF-[PFV]turn[IND]-A3pI-P3pA peace-D-ERG hand[I][ABS]
saigadeskluzabo badiki fol[C][PFV]wrap:DISS-INC-A3pI-P3pI father-A;person-ERG 3pI[ABS]
zegůskommaṙresai vaisePP-CONT-think:SPEC-TERM-A3pA noun-A[ABS]
nad nům PSV APV
bikůtůtalugatuF-HAB-touch[IND]-INC-A2p-P1pX
ail sas půt kůkusppagadu3pD[ABS] RCP DPV [C]HAB-verb[IND]-A2p-P3pD
isseki daogao fosadotuspirit-A-ERG 1pX-PCL [C][PFV]help[IND]-A3pD-P1pX
nům sas vostamčebe folAPV RCP [C][PFV]lose:DEO-MOMT-P3pI 3pI[ABS]
saigaṙčosubo nedellejůbbe[C][PFV]wrap:SPEC-MOMT-A1pI-P3pI noun-noun-noun[I][ABS]
bůsaigazadi spetainki ailF-[PFV]wrap[IND]-A3pI-P3pD noun-noun[I]-ERG 3pD[ABS]
sůṙki foffo sigůlonesksaibe3pA-ERG noun[I][ABS] DP-CONT-verb:DISS-A3pA-P3pI
badiki ailistif zekůvostafuresainifather-A;person-ERG essense-spirit-D[ABS] PP-HAB-lose:COND-TERM-A3pA-P3pA
sůtoṙsamčezati ruttaṙtufkuDP-[PFV]shout:DEO-MOMT-A3pI-P1pX number-D-ERG
ailnůṙki poṙddaṙlideče3pD-FML.COLL-ERG [C][PFV]grasp:SPEC-INC-A3pD-P2p
pav ruttaṙtuf zůnepamlugabo2pV number-D[ABS] PP-[PFV]lend:DEO-INC-A2p-P3pI
nům sas gůvollačeni pilAPV RCP [C]CONT-change[IND]-MOMT-P3pA grey[I][ABS]
bigůpoṙddasunu edF-CONT-grasp[IND]-A1pI-P3pA black[I][ABS]
nům zůgůlaludo ailaAPV PP-[PFV]mark[IND]-INC-A3pD 3pD-PL[ABS]
alatifki badi sikůkettasainipeace-D-ERG father-A;person[ABS] DP-HAB-harm[IND]-A3pA-P3pA
slůdaogabo folmat[C][PFV]verb:SBJ-A2p-P3pI 3pI-COLL[ABS]
čessadeskrogafu[C][PFV]shout:DISS-TERM-A2p-P1pI
slannačogabo badape[C][PFV]sing[IND]-MOMT-A2p-P3pI dad-def;person[ABS]
nad paonarePSV [C][PFV]verb[IND]-TERM
koṙamsaodu sůṙnůṙki[C][PFV]govern:DEO-A3pA-P3pD 3pA-FML.COLL-ERG
luskoṙsaodu pitki[C][PFV]blow:SPEC-A3pA-P3pD shadow[I]-ERG
sikůsaigarogadu ailskeDP-HAB-wrap[IND]-TERM-A2p-P3pD 3pD-PL[ABS]
nad zůkoṙasuPSV PP-[PFV]govern[IND]-A1pI
alatif sas bůčessadeskčodunupeace-D[ABS] RCP F-[PFV]shout:DISS-MOMT-A1pX-P3pA
půt sindaisidi fai faiDPV [C][PFV]verb:SBJ-A1pI-P3pD 1pI 1pI
sas zegůvostaduduRCP PP-CONT-lose[IND]-A1pX-P3pD
badiki sůṙ bůčessarozanufather-A;person-ERG 3pA[ABS] F-[PFV]shout[IND]-TERM-A3pI-P3pA
sas bůhisppadedi ailgaikiRCP F-[PFV]find[IND]-A3pD-P3pD 3pD-PCL-ERG

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