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
g_s_fg_s_f
z_w_dz_w_d
g_s_thg_s_th
x_th_sx_th_s
z_k_zz_k_z
s_b_xs_b_x
w_f_kw_f_k
d_d_dd_d_d
f_s_tf_s_t
'_th_s'_th_s
x_th_wx_th_w
b_s_thb_s_th
g_l_tg_l_t
'_d_s'_d_s
l_x_pl_x_p
t_w_ft_w_f
f_d_'f_d_'
d_j_ld_j_l
k_'_dk_'_d
k_th_'k_th_'
k_th_wk_th_w
g_t_bg_t_b
l_b_zl_b_z
x_th_thx_th_th
b_t_kb_t_k
'_t_g'_t_g
g_w_xg_w_x
g_l_wg_l_w
g_t_gg_t_g
g_f_tg_f_t
s_f_gs_f_g
p_s_jp_s_j
z_d_kz_d_k
th_d_dth_d_d
z_d_pz_d_p
b_z_fb_z_f
t_p_kt_p_k
x_z_bx_z_b
w_f_zw_f_z
p_s_thp_s_th
l_d_'l_d_'
f_z_thf_z_th
s_b_ss_b_s
j_k_lj_k_l
t_p_kt_p_k
b_s_jb_s_j
f_d_kf_d_k
w_x_bw_x_b
d_'_kd_'_k
'_t_t'_t_t
p_w_'p_w_'
p_z_sp_z_s
l_z_pl_z_p
p_th_wp_th_w
b_x_'b_x_'
p_x_bp_x_b
d_k_ld_k_l
th_th_thth_th_th
g_k_wg_k_w
t_f_tt_f_t
w_f_fw_f_f
d_d_dd_d_d
x_g_xx_g_x
b_x_bb_x_b
g_x_kg_x_k
th_d_lth_d_l
x_g_wx_g_w
'_x_b'_x_b
w_j_kw_j_k
g_k_pg_k_p
g_l_xg_l_x
w_'_pw_'_p
'_x_g'_x_g
d_t_gd_t_g
d_l_ld_l_l
j_d_dj_d_d
s_'_ths_'_th
j_'_gj_'_g
s_d_ls_d_l
l_w_thl_w_th
d_t_bd_t_b
j_w_gj_w_g
t_g_xt_g_x
x_d_lx_d_l
'_g_w'_g_w
w_j_thw_j_th
th_th_gth_th_g
x_j_kx_j_k
w_l_gw_l_g
j_p_kj_p_k
b_f_lb_f_l
f_'_kf_'_k
s_w_ts_w_t
th_p_tth_p_t
k_s_tk_s_t
g_w_gg_w_g
'_x_p'_x_p
z_k_lz_k_l
k_g_fk_g_f
z_l_fz_l_f

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