Firen Word Generator
Word | Gloss |
---|---|
kůpiskasai sůṙgai | [C]HAB-swim[IND]-A3pA 3pA-PCL[ABS] |
ailki badi sas tozzadonu | 3pD-ERG father-A;person[ABS] RCP [C][PFV]love[IND]-A3pD-P3pA |
zegůslannalusučo | PP-CONT-sing[IND]-INC-A1pI-P2p |
daomat fola sůpittadibe | 1pX-COLL 3pI-PL[ABS] DP-[PFV]feel_pain[IND]-A1pX-P3pI |
ikaseki alatif sas gůpoṙddazabo | couple-A-ERG peace-D[ABS] RCP [C]CONT-grasp[IND]-A3pI-P3pI |
ail kůfuskbaṙlisidi | 3pD[ABS] [C]HAB-write:SPEC-INC-A1pI-P3pD |
folku folsko toṙsarezabe | 3pI-ERG 3pI-PL[ABS] [C][PFV]shout[IND]-TERM-A3pI-P3pI |
ailistifki fol saigadebe | essense-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ṙsfusunu | essense-spirit-D[ABS] [C]HAB-shout:COND-A1pI-P3pA |
vossaṙku ailgai kůlattazadi | noun[I]-ERG 3pD-PCL[ABS] [C]HAB-cut[IND]-A3pI-P3pD |
alatifki sas sikůtillaideče | peace-D-ERG RCP DP-HAB-speak:SBJ-A3pD-P2p |
basketif sikůstemůṙrosao | word-D[ABS] DP-HAB-work:SPEC-TERM-A3pA |
tilladeskgabe ikase | [C][PFV]speak:DISS-A2p-P3pI couple-A[ABS] |
holluzůugaistovku rospi vollamzadu | noun-noun-noun-noun[I]-ERG friend-A;person[ABS] [C][PFV]change:DEO-A3pI-P3pD |
sigůhanarozabo badiki fol | DP-CONT-speak[IND]-TERM-A3pI-P3pI father-A;person-ERG 3pI[ABS] |
nům sas bikůgůlačobo fol | APV RCP F-HAB-mark[IND]-MOMT-P3pI 3pI[ABS] |
nům sas gůpittafureče | APV RCP [C]CONT-feel_pain:COND-TERM-P2p |
gůroskududu | [C]CONT-verb:SBJ-A1pX-P3pD |
nad sůsunesksai sůṙgai | PSV DP-[PFV]have:DISS-A3pA 3pA-PCL[ABS] |
zůhanadidi ailmat | PP-[PFV]speak[IND]-A1pX-P3pD 3pD-COLL[ABS] |
nům sas zůsůggafutu | APV RCP PP-[PFV]be_sick:COND-P1pX |
folgao bikůslannagabe | 3pI-PCL[ABS] F-HAB-sing[IND]-A2p-P3pI |
sůṙ nům sas rustaṙnu | 3pA[ABS] APV RCP [C][PFV]verb:SPEC-P3pA |
samaga | [C][PFV]look[IND]-A2p |
nad bůkettade ikase | PSV F-[PFV]harm[IND]-A3pD couple-A[ABS] |
bigůsůggamludodu edki | F-CONT-be_sick:DEO-INC-A3pD-P3pD black[I]-ERG |
sas kůvůmmalugadu | RCP [C]HAB-create[IND]-INC-A2p-P3pD |
sas bůnakadodu basketifki | RCP F-[PFV]intersect[IND]-A3pD-P3pD word-D-ERG |
go saṙl gůtozzadeskrogabo | 2pT snow[I][ABS] [C]CONT-love:DISS-TERM-A2p-P3pI |
sůṙ sas sigůtoṙsaganu | 3pA[ABS] RCP DP-CONT-shout[IND]-A2p-P3pA |
piskačodu | [C][PFV]swim[IND]-MOMT-A1pX |
sůpittafusaonu sůṙki ruttaṙtuf | DP-[PFV]feel_pain:COND-A3pA-P3pA 3pA-ERG number-D[ABS] |
sas zekůčessaṙdedi hikretifaki ailgai | RCP PP-HAB-shout:SPEC-A3pD-P3pD noun-noun-D-PL-ERG 3pD-PCL[ABS] |
paṙvseki sas sůpetladeče | tree-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ṙlugabo | 3pI-PL[ABS] PP-CONT-find:SPEC-INC-A2p-P3pI |
sůṙki rospi zůtůtalusaobo | 3pA-ERG friend-A;person[ABS] PP-[PFV]touch[IND]-INC-A3pA-P3pI |
ailaki ail bikůčadadedi | 3pD-PL-ERG 3pD[ABS] F-HAB-verb[IND]-A3pD-P3pD |
gůčunnasaodu sůṙgaiki | [C]CONT-birth[IND]-A3pA-P3pD 3pA-PCL-ERG |
pit skommafusao | shadow[I][ABS] [C][PFV]think:COND-A3pA |
ruttaṙtuf bikůčessaisini | number-D[ABS] F-HAB-shout:SBJ-A1pI-P3pA |
nad zegůnommaredi | PSV PP-CONT-want[IND]-TERM-A1pX |
sas kůtůtagače | RCP [C]HAB-touch[IND]-A2p-P2p |
zůhisppafudodu ailaki | PP-[PFV]find:COND-A3pD-P3pD 3pD-PL-ERG |
nům sas sůvollaolidi ail | APV 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ṙludo | 3pD[ABS] APV F-[PFV]remove:SPEC-INC-A3pD |
zegůkaoharezabe alatifki ni | PP-CONT-verb[IND]-TERM-A3pI-P3pI peace-D-ERG noun[I][ABS] |
pava gůsaigarogačo | 2pV-PL [C]CONT-wrap[IND]-TERM-A2p-P2p |
nad luskesksai sůṙske | PSV [C][PFV]blow:DISS-A3pA 3pA-PL[ABS] |
badi nům sas bůvostaočedi | father-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 fai | DP-[PFV]play:DISS-TERM-A3pI-P2p 3pI-ERG 1pI |
sas sůsaosamredini ed | RCP DP-[PFV]count:DEO-TERM-A1pX-P3pA black[I][ABS] |
zegůtoṙsačezani folmataku ikase | PP-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ůpittadefi | adolescent-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če | APV RCP [C][PFV]wrap[IND]-P2p |
sas bigůkettafuresidi ail | RCP F-CONT-harm:COND-TERM-A1pI-P3pD 3pD[ABS] |
zůnassamgače | PP-[PFV]play:DEO-A2p-P2p |
kůslannamlugatu | [C]HAB-sing:DEO-INC-A2p-P1pX |
sůṙgaiki sůsolamčesaiti | 3pA-PCL-ERG DP-[PFV]verb:DEO-MOMT-A3pA-P1pX |
bůluskasaodu sůṙki | F-[PFV]blow[IND]-A3pA-P3pD 3pA-ERG |
ailistifki isse fosaresaidi | essense-spirit-D-ERG spirit-A[ABS] [C][PFV]help[IND]-TERM-A3pA-P3pD |
sůṙ nům sas sůpittačonu | 3pA[ABS] APV RCP DP-[PFV]feel_pain[IND]-MOMT-P3pA |
bůzaimazani alatifki aon | F-[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 vaise | PP-CONT-think:SPEC-TERM-A3pA noun-A[ABS] |
nad nům | PSV APV |
bikůtůtalugatu | F-HAB-touch[IND]-INC-A2p-P1pX |
ail sas půt kůkusppagadu | 3pD[ABS] RCP DPV [C]HAB-verb[IND]-A2p-P3pD |
isseki daogao fosadotu | spirit-A-ERG 1pX-PCL [C][PFV]help[IND]-A3pD-P1pX |
nům sas vostamčebe fol | APV 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 ail | F-[PFV]wrap[IND]-A3pI-P3pD noun-noun[I]-ERG 3pD[ABS] |
sůṙki foffo sigůlonesksaibe | 3pA-ERG noun[I][ABS] DP-CONT-verb:DISS-A3pA-P3pI |
badiki ailistif zekůvostafuresaini | father-A;person-ERG essense-spirit-D[ABS] PP-HAB-lose:COND-TERM-A3pA-P3pA |
sůtoṙsamčezati ruttaṙtufku | DP-[PFV]shout:DEO-MOMT-A3pI-P1pX number-D-ERG |
ailnůṙki poṙddaṙlideče | 3pD-FML.COLL-ERG [C][PFV]grasp:SPEC-INC-A3pD-P2p |
pav ruttaṙtuf zůnepamlugabo | 2pV number-D[ABS] PP-[PFV]lend:DEO-INC-A2p-P3pI |
nům sas gůvollačeni pil | APV RCP [C]CONT-change[IND]-MOMT-P3pA grey[I][ABS] |
bigůpoṙddasunu ed | F-CONT-grasp[IND]-A1pI-P3pA black[I][ABS] |
nům zůgůlaludo aila | APV PP-[PFV]mark[IND]-INC-A3pD 3pD-PL[ABS] |
alatifki badi sikůkettasaini | peace-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 paonare | PSV [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 ailske | DP-HAB-wrap[IND]-TERM-A2p-P3pD 3pD-PL[ABS] |
nad zůkoṙasu | PSV PP-[PFV]govern[IND]-A1pI |
alatif sas bůčessadeskčodunu | peace-D[ABS] RCP F-[PFV]shout:DISS-MOMT-A1pX-P3pA |
půt sindaisidi fai fai | DPV [C][PFV]verb:SBJ-A1pI-P3pD 1pI 1pI |
sas zegůvostadudu | RCP PP-CONT-lose[IND]-A1pX-P3pD |
badiki sůṙ bůčessarozanu | father-A;person-ERG 3pA[ABS] F-[PFV]shout[IND]-TERM-A3pI-P3pA |
sas bůhisppadedi ailgaiki | RCP F-[PFV]find[IND]-A3pD-P3pD 3pD-PCL-ERG |
Process returned 0
Utility Functions: Clear, Permalink
Noteworthy nodes in each datafile include:
Language | Datafile name | Root nodes (Click a root to generate from it) | Remarks |
---|---|---|---|
Firen | syllables.yml | Sentence , Noun , Verb , NominalRoot , VerbalRoot , | More information about Firen can be found on the Wiki. |
Sajem Tan | sajemtan.yml | Word , Root , Suffix , UnlikelyWord , UnlikelyRoot , UnlikelySuffix , | Sajem Tan is a collaborative conlang. It has a website here. |
English | english.yml | Sentence , | 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 Kidap | ffb.yml | Sentence , 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. |
Xanz | xanz.yml | word , tricons , root , word1 , | Another collaborative language in the Sajem Tan universe. It is the source of triconsonantal roots in Sajem Tan. |
Jafren | jafren.yml | Sentence , 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. |
Jokes | jokes.yml | Gender , | Someone on Mastodon posted a silly CFG for making gender jokes, so I encoded it as a WordGen datafile. Nothing more to it. |
Numbers | numbers.yml | number , 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. |
Tests | CFGs.yml | Dyck , 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