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
s_s_'s_s_'
d_z_jd_z_j
x_s_px_s_p
p_k_sp_k_s
x_z_px_z_p
k_l_fk_l_f
b_w_tb_w_t
z_k_tz_k_t
j_x_xj_x_x
p_d_tp_d_t
g_f_kg_f_k
s_z_bs_z_b
x_p_jx_p_j
g_t_thg_t_th
th_t_fth_t_f
d_p_zd_p_z
d_t_zd_t_z
b_s_jb_s_j
p_t_dp_t_d
z_t_jz_t_j
l_b_jl_b_j
g_g_tg_g_t
z_d_thz_d_th
g_'_sg_'_s
f_b_df_b_d
x_'_wx_'_w
g_l_bg_l_b
d_s_bd_s_b
w_l_xw_l_x
t_g_pt_g_p
l_b_dl_b_d
k_w_'k_w_'
l_p_sl_p_s
l_w_tl_w_t
w_w_pw_w_p
x_d_dx_d_d
'_k_j'_k_j
p_l_jp_l_j
g_l_sg_l_s
t_t_wt_t_w
th_k_pth_k_p
s_b_ths_b_th
b_w_wb_w_w
th_t_wth_t_w
k_'_wk_'_w
l_z_thl_z_th
p_th_zp_th_z
z_x_bz_x_b
x_g_zx_g_z
j_p_zj_p_z
th_s_jth_s_j
th_'_fth_'_f
th_d_bth_d_b
z_w_kz_w_k
g_s_sg_s_s
th_w_fth_w_f
b_s_pb_s_p
g_th_'g_th_'
x_d_gx_d_g
b_s_db_s_d
f_g_pf_g_p
x_t_tx_t_t
j_d_thj_d_th
th_w_zth_w_z
b_'_bb_'_b
z_l_fz_l_f
f_'_kf_'_k
x_g_xx_g_x
j_'_fj_'_f
f_k_xf_k_x
f_z_gf_z_g
l_d_bl_d_b
z_x_pz_x_p
t_l_pt_l_p
p_j_thp_j_th
b_f_bb_f_b
f_l_pf_l_p
w_z_ww_z_w
x_d_zx_d_z
d_f_gd_f_g
x_p_bx_p_b
b_th_kb_th_k
w_g_dw_g_d
k_t_dk_t_d
k_l_pk_l_p
k_l_zk_l_z
w_x_pw_x_p
z_g_lz_g_l
p_b_'p_b_'
g_k_xg_k_x
l_d_'l_d_'
z_d_gz_d_g
t_b_gt_b_g
b_w_db_w_d
'_b_''_b_'
f_l_'f_l_'
d_t_gd_t_g
x_th_jx_th_j
l_w_bl_w_b
z_th_bz_th_b

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