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
sas sigůtoṙsaregadi ailRCP DP-CONT-shout[IND]-TERM-A2p-P3pD 3pD[ABS]
zůnassaoredidi ikasePP-[PFV]play:SBJ-TERM-A1pX-P3pD couple-A[ABS]
nům sas bůvollamčoAPV RCP F-[PFV]change:DEO-P2p
badiki sůtillamzafifather-A;person-ERG DP-[PFV]speak:DEO-A3pI-P1pI
ail gůlůttamgadi3pD[ABS] [C]CONT-remove:DEO-A2p-P3pD
fosamzadu alatifki ailnůṙ[C][PFV]help:DEO-A3pI-P3pD peace-D-ERG 3pD-FML.COLL[ABS]
sas zegůgagarododu issekiRCP PP-CONT-verb[IND]-TERM-A3pD-P3pD spirit-A-ERG
ruttaṙtufku sůṙ sas sigůsaosamsaonunumber-D-ERG 3pA[ABS] RCP DP-CONT-count:DEO-A3pA-P3pA
nům sas kůsůggadeskčeAPV RCP [C]HAB-be_sick:DISS-P2p
nům pittaludo badiAPV [C][PFV]feel_pain[IND]-INC-A3pD father-A;person[ABS]
nad sas hisppadeskroPSV RCP [C][PFV]find:DISS-TERM
ailki alatif sas nassadeskdedi3pD-ERG peace-D[ABS] RCP [C][PFV]play:DISS-A3pD-P3pD
kůsamamdo saṙl[C]HAB-look:DEO-A3pD snow[I][ABS]
vůmmaṙgabe alatif[C][PFV]create:SPEC-A2p-P3pI peace-D[ABS]
folku paṙvse zůsaosafuzabo3pI-ERG tree-A[ABS] PP-[PFV]count:COND-A3pI-P3pI
sigůnakamrododu ailki aonDP-CONT-intersect:DEO-TERM-A3pD-P3pD 3pD-ERG hand[I][ABS]
ailistifki folgao zegůfuskbafulisaibeessense-spirit-D-ERG 3pI-PCL[ABS] PP-CONT-write:COND-INC-A3pA-P3pI
sůgůlačogabo riaṙlesivaofaomatgaoDP-[PFV]mark[IND]-MOMT-A2p-P3pI noun-noun-noun[I]-COLL-PCL[ABS]
alatifki sůzaimadečepeace-D-ERG DP-[PFV]turn[IND]-A3pD-P2p
nům kůgůlamdiAPV [C]HAB-mark:DEO-A1pX
fol nům sas sigůpittabe3pI[ABS] APV RCP DP-CONT-feel_pain[IND]-P3pI
rospiki basketif kůfosadobofriend-A;person-ERG word-D[ABS] [C]HAB-help[IND]-A3pD-P3pI
edki aon luskfusaodublack[I]-ERG hand[I][ABS] [C][PFV]blow:COND-A3pA-P3pD
ikase sas zekůsůggadeskganicouple-A[ABS] RCP PP-HAB-be_sick:DISS-A2p-P3pA
nům sas čunnafubo folaAPV RCP [C][PFV]birth:COND-P3pI 3pI-PL[ABS]
bůtonnaṙdodu saṙlkiF-[PFV]verb:SPEC-A3pD-P3pD snow[I]-ERG
zůvůmmačododu ailkiPP-[PFV]create[IND]-MOMT-A3pD-P3pD 3pD-ERG
nad nům PSV APV
dao famaṙdi1pX [C][PFV]sleep:SPEC-A1pX
folku tozzalizače3pI-ERG [C][PFV]love[IND]-INC-A3pI-P2p
kůsunfudodu ailskeki[C]HAB-have:COND-A3pD-P3pD 3pD-PL-ERG
nům sas kůlůttatiAPV RCP [C]HAB-remove[IND]-P1pX
nům sas pittambe edAPV RCP [C][PFV]feel_pain:DEO-P3pI black[I][ABS]
badiki goa koṙačezačefather-A;person-ERG 2pT-PL [C][PFV]govern[IND]-MOMT-A3pI-P2p
sas kůtitaludodu pitki haonuspaṙtufRCP [C]HAB-verb[IND]-INC-A3pD-P3pD shadow[I]-ERG noun-noun-D[ABS]
ailki spippafulidefi3pD-ERG [C][PFV]verb:COND-INC-A3pD-P1pI
badi kůgeddafuligadifather-A;person[ABS] [C]HAB-hit:COND-INC-A2p-P3pD
folku sůṙ sas bigůhanamrozanu3pI-ERG 3pA[ABS] RCP F-CONT-speak:DEO-TERM-A3pI-P3pA
gůnakeskgabe aon[C]CONT-intersect:DISS-A2p-P3pI hand[I][ABS]
alatifki sůṙ sas geddarodonupeace-D-ERG 3pA[ABS] RCP [C][PFV]hit[IND]-TERM-A3pD-P3pA
daogao gimmelilůṙhussaoraṙ kogamredibe1pX-PCL noun-noun-noun-noun[I][ABS] [C][PFV]push:DEO-TERM-A1pX-P3pI
kůkoṙazanu basketifki ruttaṙtuf[C]HAB-govern[IND]-A3pI-P3pA word-D-ERG number-D[ABS]
bůvůmmaṙsaodu sůṙkiF-[PFV]create:SPEC-A3pA-P3pD 3pA-ERG
sůṙgai sas gůkoṙfuganu3pA-PCL[ABS] RCP [C]CONT-govern:COND-A2p-P3pA
nad zůtillade ailmatPSV PP-[PFV]speak[IND]-A3pD 3pD-COLL[ABS]
nům sas sůlůttalutu daomatskoAPV RCP DP-[PFV]remove[IND]-INC-P1pX 1pX-COLL-PL
tilladeskgafi[C][PFV]speak:DISS-A2p-P1pI
sas gůgeddadeskdidi daoaRCP [C]CONT-hit:DISS-A1pX-P3pD 1pX-PL
skůstfusufu[C][PFV]verb:COND-A1pI-P1pI
sas čunnalideni ailhaotnůṙki sůṙRCP [C][PFV]birth[IND]-INC-A3pD-P3pA essense-world-family[I]-ERG 3pA[ABS]
sikůnassarodobo alatifki folgaoDP-HAB-play[IND]-TERM-A3pD-P3pI peace-D-ERG 3pI-PCL[ABS]
sůṙki fol fosamsaobo3pA-ERG 3pI[ABS] [C][PFV]help:DEO-A3pA-P3pI
sůggadeskrogafu[C][PFV]be_sick:DISS-TERM-A2p-P1pI
sas půt zůnepeskčozačo folakuRCP DPV PP-[PFV]lend:DISS-MOMT-A3pI-P2p 3pI-PL-ERG
saṙl sas gůnassafureganisnow[I][ABS] RCP [C]CONT-play:COND-TERM-A2p-P3pA
půt sůnepamrogafuDPV DP-[PFV]lend:DEO-TERM-A2p-P1pI
sigůsaigadeskčodufuDP-CONT-wrap:DISS-MOMT-A1pX-P1pI
nepůṙgani pav můttaohustso[C][PFV]lend:SPEC-A2p-P3pA 2pV noun-noun-A[ABS]
ed nům sas čunnamnublack[I][ABS] APV RCP [C][PFV]birth:DEO-P3pA
sas bůnassadidi ailmatRCP F-[PFV]play[IND]-A1pX-P3pD 3pD-COLL[ABS]
nům sas sůgůlamčeAPV RCP DP-[PFV]mark:DEO-P2p
nům sas gůvostafuličeAPV RCP [C]CONT-lose:COND-INC-P2p
bigůlůttalusuduF-CONT-remove[IND]-INC-A1pI-P3pD
alatif zůvůmmasibepeace-D[ABS] PP-[PFV]create[IND]-A1pI-P3pI
bůskoṙffamza čonnutaṙppunůṙF-[PFV]overdo_farewell:DEO-A3pI noun-noun[I]-FML.COLL[ABS]
geddairodobo ailki fol[C][PFV]hit:SBJ-TERM-A3pD-P3pI 3pD-ERG 3pI[ABS]
ůṙfseki kůpetladečeadolescent-A-ERG [C]HAB-grasp[IND]-A3pD-P2p
sůṙki pav kůpittafusaočo3pA-ERG 2pV [C]HAB-feel_pain:COND-A3pA-P2p
ailmataki delse kůtůtadeskdeni3pD-COLL-PL-ERG noun-A[ABS] [C]HAB-touch:DISS-A3pD-P3pA
sůsaigasaidi sůṙki pilDP-[PFV]wrap[IND]-A3pA-P3pD 3pA-ERG grey[I][ABS]
kůslannačogadu pavmat ail[C]HAB-sing[IND]-MOMT-A2p-P3pD 2pV-COLL 3pD[ABS]
půt keparozatu guspsaṙtataokuDPV [C][PFV]verb[IND]-TERM-A3pI-P1pX noun-noun-noun[I]-ERG
nům sas sůvolladeskfiAPV RCP DP-[PFV]change:DISS-P1pI
sůzaimůṙrozačo folkuDP-[PFV]turn:SPEC-TERM-A3pI-P2p 3pI-ERG
půt bigůgůtasidiDPV F-CONT-give[IND]-A1pI-P3pD
ikaseki ruttaṙtuf koṙfuredebecouple-A-ERG number-D[ABS] [C][PFV]govern:COND-TERM-A3pD-P3pI
sas kůlattamdonu isseki pilRCP [C]HAB-cut:DEO-A3pD-P3pA spirit-A-ERG grey[I][ABS]
ail sas kůlůllalugadu3pD[ABS] RCP [C]HAB-verb[IND]-INC-A2p-P3pD
sas kůgeddasifiRCP [C]HAB-hit[IND]-A1pI-P1pI
zůzaimazadi folku aonPP-[PFV]turn[IND]-A3pI-P3pD 3pI-ERG hand[I][ABS]
sůṙaki ed sas gůloṙsaobo3pA-PL-ERG black[I][ABS] RCP [C][PFV]mark:SPEC-A3pA-P3pI
sůnakagadiDP-[PFV]intersect[IND]-A2p-P3pD
sas nassalugaduRCP [C][PFV]play[IND]-INC-A2p-P3pD
fol gůlamgabe3pI[ABS] [C][PFV]mark:DEO-A2p-P3pI
zůtoṙsaganu puočulsoPP-[PFV]shout[IND]-A2p-P3pA noun-noun-A[ABS]
sůslannaṙrogaduDP-[PFV]sing:SPEC-TERM-A2p-P3pD
gůpittaṙzadi pilki ailistif[C]CONT-feel_pain:SPEC-A3pI-P3pD grey[I]-ERG essense-spirit-D[ABS]
saigamdifi[C][PFV]wrap:DEO-A1pX-P1pI
nům bůčunnafureAPV F-[PFV]birth:COND-TERM
saosarezani folku ailhaotnůṙ[C][PFV]count[IND]-TERM-A3pI-P3pA 3pI-ERG essense-world-family[I][ABS]
fai sas kogadučo1pI RCP [C][PFV]push[IND]-A1pX-P2p
paṙvseki sůṙnůṙ stulasaonutree-A-ERG 3pA-FML.COLL[ABS] [C][PFV]verb[IND]-A3pA-P3pA
sas pittafusaonu sůṙki sůṙRCP [C][PFV]feel_pain:COND-A3pA-P3pA 3pA-ERG 3pA[ABS]
aonku ailistif fosamzaduhand[I]-ERG essense-spirit-D[ABS] [C][PFV]help:DEO-A3pI-P3pD
ailgai zůzaimesklusudu3pD-PCL[ABS] PP-[PFV]turn:DISS-INC-A1pI-P3pD
gůpoṙddamsunu badi[C]CONT-grasp:DEO-A1pI-P3pA father-A;person[ABS]
basketifki fol sas gůvůṙlasaibeword-D-ERG 3pI[ABS] RCP [C]CONT-impact[IND]-A3pA-P3pI
folku sas půt kůkasaluzatu3pI-ERG RCP DPV [C]HAB-verb[IND]-INC-A3pI-P1pX
luskamzadu folku ailistif[C][PFV]blow:DEO-A3pI-P3pD 3pI-ERG essense-spirit-D[ABS]
sas sigůvůṙlaisaidi sůṙmatkiRCP DP-CONT-impact:SBJ-A3pA-P3pD 3pA-COLL-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