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:

WordsGloss
gugkg_g_k/u_y
kyjajk_j_j/y_a
poxdp_x_d/o_o
fak'f_k_'/a_o
wy'asw_'_s/y_a
faggf_g_g/a_e
jaltj_l_t/a_y
'ejj'_j_j/e_e
jyxizj_x_z/y_i
xethisx_th_s/e_i
wedupw_d_p/e_u
we'abw_'_b/e_a
'yxg'_x_g/y_y
zegilz_g_l/e_i
kypidk_p_d/y_i
wotadw_t_d/o_a
fagsf_g_s/a_y
zubtz_b_t/u_o
wetuxw_t_x/e_u
papibp_p_b/a_i
wysaxw_s_x/y_a
gytisg_t_s/y_i
subass_b_s/u_a
bup'b_p_'/u_e
gaspg_s_p/a_e
gekuwg_k_w/e_u
tuzalt_z_l/u_a
lizfl_z_f/i_y
tusutt_s_t/u_u
judlj_d_l/u_e
wyzuww_z_w/y_u
jidugj_d_g/i_u
za''z_'_'/a_y
pekafp_k_f/e_a
dothkd_th_k/o_e
bowdb_w_d/o_e
jejkj_j_k/e_e
thyskth_s_k/y_y
zutkz_t_k/u_y
sys's_s_'/y_y
zez'z_z_'/e_y
fejwf_j_w/e_y
bekthb_k_th/e_o
xystx_s_t/y_e
bilthb_l_th/i_e
giku'g_k_'/i_u
wadtw_d_t/a_e
jytsj_t_s/y_e
sazxs_z_x/a_o
biji'b_j_'/i_i
lidufl_d_f/i_u
zetujz_t_j/e_u
wexuthw_x_th/e_u
jytutj_t_t/y_u
gigugg_g_g/i_u
xalapx_l_p/a_a
'ozaz'_z_z/o_a
fidutf_d_t/i_u
byzalb_z_l/y_a
je'wj_'_w/e_e
kosjk_s_j/o_e
toztt_z_t/o_o
dytbd_t_b/y_e
jepsj_p_s/e_o
xywjx_w_j/y_e
'ojw'_j_w/o_y
tojibt_j_b/o_i
wyzxw_z_x/y_o
lakdl_k_d/a_e
gesukg_s_k/e_u
biwkb_w_k/i_o
petgp_t_g/e_e
kubisk_b_s/u_i
kosijk_s_j/o_i
xabzx_b_z/a_o
pikuxp_k_x/i_u
zypfz_p_f/y_o
zefilz_f_l/e_i
'ets'_t_s/e_o
bowubb_w_b/o_u
jelalj_l_l/e_a
wodipw_d_p/o_i
dexfd_x_f/e_o
dugbd_g_b/u_o
thazxth_z_x/a_o
taxuxt_x_x/a_u
jezugj_z_g/e_u
lepxl_p_x/e_o
tegult_g_l/e_u
xip'x_p_'/i_e
dekakd_k_k/e_a
lyzujl_z_j/y_u
fowatf_w_t/o_a
supfs_p_f/u_o
dytikd_t_k/y_i
jus'j_s_'/u_e
tolagt_l_g/o_a
sazids_z_d/a_i
faku'f_k_'/a_u
wujifw_j_f/u_i

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