View Full Version : WordBuilder 0.9: Release often, release early

09-02-2009, 07:27 AM
Ouch... I'm pretty scared right now. On the other hand, I will be scared about doing this forever, and it won't really change much.

I'm hereby announcing the first release of WordBuilder, an application WIP.

WordBuilder is a pretty simple application for generating words (And a few other things, I've found.)

It uses a set of rules that you define to generate words. Rules may call other rules, pretty much like what Context Free does for graphics. Yes, I took some inspiration from that.

Why am I telling you this? Because one of its uses would be to generate place names according to your specific needs.

Another would be to generate people to inhabit your cities. With names, occupations, such things.

Of course, you could also go all out and create languages for your countries, with inflections and conjugations and all that jazz.

Anyhow. It's here, and it's full of bugs (I've found some, and will fix them soonish). Download it from http://whee.dk/wordbuilder/WordBuilder.msi and please, if you find a bug, report it at http://whee.dk/thebuggenie/ ?

I have some sample projects in the http://whee.dk/wordbuilder/ folder, and there's some help on the commands to be found here: http://whee.dk/thebuggenie/modules/publish/articles.php?article_id=2

Any questions are welcome - fire away at arne [at] whee.dk or PM me.

Thank you for your time.

09-02-2009, 07:32 AM
Downloaded, installed, will test it after my doc appointment :)

One note about the installation - it would be nice to choose which drive to install to, I for one tend to install programs on my secondary drive letter (much larger partition).

Anyhow, I'll certainly test it out today!

09-02-2009, 07:36 AM
Ah, yes... I'll have to dig deeper into the options in WiX (the installation definition stuff) and figure out how to add that. Thank you!

Steel General
09-02-2009, 10:44 AM
I'll give it a whirl as soon as I get a chance to.

09-02-2009, 02:16 PM
Interesting stuff. Post some pics, lists or whatever and talk about it more. I havent looked into it yet but your description so far could mean its one of many things. Could do with seeing some annotated samples posted up.

Will look later tho if time permits.

Will Phillips
09-02-2009, 06:44 PM
This sounds really freaking awesome - I'm gonna check it out tonight after work!

09-02-2009, 08:46 PM
This program looks very interesting, but I can't figure out how to use it. No matter what I type in, I get hit with an error message that says "The starting rule 'root' does not exist."

How would I get around this?

09-02-2009, 10:09 PM
ou need to load a file in for it to reference. If you go to the link provided, you'll find some files, download them, then use the Open menu. Once you do that, it's pretty easy to generate. :)

09-03-2009, 04:07 AM
Ok, a bit more information:

A WordBuilder project basically consists of token sets and rules.

Token sets are lists of characters or character combinations that can go in the same place. Each token has the same probability of occurring.

Token sets are defined by the following syntax:

Tokens <token set name> <token list>


Tokens Vowel a e i o u
Tokens "Consonant pair" bj kh sh pr tr dr st sp

Rules are lists of commands that are executed in sequence. Rules are defined by the following syntax:

Rule <rule name> [<probability>] {

Multiple rules with the same name may exist. In that case, any reference to that rule name will incur one of the rules at random, using the probabilites assigned to each rule. The default probability of a rule is 1.


Rule syllable 2 {
Token Vowel

Rule syllable 3 {
Token Consonant
Token Vowel

Rule syllable {
Token Consonant
Token Vowel
Token "Consonant pair"

Rule root {
Rule syllable

The default starting rule is "root" - make a rule called root, and you're good to generate.
You can set up your own starting rules, any number of them (though more than two and the current version fails if you use the generate dialog. Ctrl+shift+g works with any number, though):

StartingRule <rule name> [<amount>]


StartingRule verb 10
StartingRule noun 10

Would generate 10 verbs and 10 nouns each time you generate.

Attached is the main app window and the generate dialog.

09-03-2009, 04:11 AM
Here's the output of the words I generated in the screenshot.

The WordClass and Irregular lines you see are marks - basically just a means to tag extra information onto a word.

The Past, Present, Plural and Determinate lines that are indented mark branches, where the word has taken two paths - the main word can carry on being modified, and the branch can follow its own rules.


WordClass: verb
Irregular: yes
Present: indnor
Past: erv
WordClass: verb
Irregular: yes
Present: hjer
Past: ve
WordClass: verb
Irregular: yes
Present: indedr
Past: dtur
WordClass: verb
Irregular: yes
Present: bleulvr
Past: sah
WordClass: verb
Present: fraojser
Past: fraojsede
WordClass: verb
Present: traer
Past: traede
WordClass: verb
Present: sustapsoter
Past: sustapsotede
WordClass: verb
Irregular: yes
Present: unorkjomr
Past: unorkmsos
WordClass: verb
Irregular: yes
Present: overer
Past: pøns
WordClass: verb
Irregular: yes
Present: alfelpr
Past: allpdurk
WordClass: verb
Present: alpenehdedser
Past: alpenehdedsede
WordClass: verb
Present: åjester
Past: åjestede
WordClass: verb
Irregular: yes
Present: overydr
Past: ræ
WordClass: verb
Present: fraalppier
Past: fraalppete
WordClass: verb
Present: fornøndsonser
Past: fornøndsonsede
WordClass: verb
Present: overfenser
Past: overfensede
WordClass: verb
Present: forolliser
Past: forollisede
WordClass: verb
Present: undser
Past: undete
WordClass: verb
Present: afoer
Past: afoede
WordClass: verb
Present: indnapser
Past: indnapsede
WordClass: noun
Determinate: uinen
Plural: uine
Determinate: uinene
WordClass: noun
Determinate: forelen
Plural: forele
Determinate: forelene
WordClass: noun
Determinate: unduden
Plural: unduder
Determinate: unduderne
WordClass: noun
Determinate: franedadvispet
Plural: franedadvispe
Determinate: franedadvispene
WordClass: noun
Determinate: imbæen
Plural: imbæer
Determinate: imbæerne
WordClass: noun
Determinate: ganbalsenset
Plural: ganbalsenser
Determinate: ganbalsenserne
WordClass: noun
Determinate: frakaen
Plural: frakae
Determinate: frakaene
WordClass: noun
Determinate: fnielven
Plural: fnielver
Determinate: fnielverne
WordClass: noun
Determinate: fortyten
Plural: fortyter
Determinate: fortyterne
WordClass: noun
Determinate: uenet
Plural: uene
Determinate: uenene
WordClass: noun
Determinate: udsesken
Plural: udseske
Determinate: udseskene
WordClass: noun
Determinate: overmensøjen
Plural: overmensøje
Determinate: overmensøjene
WordClass: noun
Determinate: alvepsudet
Plural: alvepsuder
Determinate: alvepsuderne
WordClass: noun
Determinate: undulfet
Plural: undulfer
Determinate: undulferne
WordClass: noun
Determinate: frajarauket
Plural: frajarauke
Determinate: frajaraukene
WordClass: noun
Determinate: uraben
Plural: urabe
Determinate: urabene
WordClass: noun
Determinate: opbalsmaren
Plural: opbalsmare
Determinate: opbalsmarene
WordClass: noun
Determinate: reen
Plural: reer
Determinate: reerne
WordClass: noun
Determinate: afkepstaet
Plural: afkepstae
Determinate: afkepstaene
WordClass: noun
Determinate: frahioset
Plural: frahioser
Determinate: frahioserne

09-03-2009, 04:24 AM
And here's an example of what towngen.wordo generates:

Occupation: shochu-dealer
FirstName: kijiteho
Occupation: rice-farmer
FirstName: zowosu
Occupation: sake-dealer
FirstName: ohi
Occupation: sake-dealer
FirstName: hehechihi
Occupation: furrier
FirstName: awatsu

The file was inspired by this discussion: http://www.cartographersguild.com/showthread.php?t=6872

I set up rules to make occupations from sets of tokens (occupations and occupations-rare) and weighted it to make rare occupations, well, rarer. The names I made Japanese-ish by setting up token sets to build something that resembles the hiragana set of sounds. I'm pretty sure I'm not hitting all of it, especially the ya/yo/yu combinations and ji u -> ju rules.

I'm thinking I can add (some of) those using the translate command.

Edit: Bummer, I didn't think about paging, so most people are probably going to miss the previous two posts. Yes, serves me right for triple-posting, I guess. Please, take a look at previous page.

09-04-2009, 02:12 AM
Continuing my monologue, here's a quick example of something that, when the token lists are expanded, could be useful. Also, I just had an idea to allow us to use external files for token lists.

tokens prefixes Alecs Berts Detchers
tokens mountains peak heights fell
tokens rivers stream flow rapids

startingrule mountains 100
startingrule rivers 100

rule mountains {
token prefixes
token mountains

rule rivers {
token prefixes
token rivers

With this, youget 100 mountain names followed by 100 river names.

I'll have some time on my hands tonight to fix things. I hope to get something new out tonight, with bug fixes and a couple of features.