PDA

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



Alfar
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.

Coyotemax
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!

Alfar
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.

Redrobes
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.

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

Quillz
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?

Coyotemax
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. :)

Alfar
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>

E.g.



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>] {
<commands>
}

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.

E.g.



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>]

E.g.



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.

Alfar
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.

--------------


indno
WordClass: verb
Irregular: yes
Present: indnor
Past: erv
hje
WordClass: verb
Irregular: yes
Present: hjer
Past: ve
inded
WordClass: verb
Irregular: yes
Present: indedr
Past: dtur
bleulv
WordClass: verb
Irregular: yes
Present: bleulvr
Past: sah
fraojse
WordClass: verb
Present: fraojser
Past: fraojsede
trae
WordClass: verb
Present: traer
Past: traede
sustapsote
WordClass: verb
Present: sustapsoter
Past: sustapsotede
unorkjom
WordClass: verb
Irregular: yes
Present: unorkjomr
Past: unorkmsos
overe
WordClass: verb
Irregular: yes
Present: overer
Past: pøns
alfelp
WordClass: verb
Irregular: yes
Present: alfelpr
Past: allpdurk
alpenehdedse
WordClass: verb
Present: alpenehdedser
Past: alpenehdedsede
åjeste
WordClass: verb
Present: åjester
Past: åjestede
overyd
WordClass: verb
Irregular: yes
Present: overydr
Past: ræ
fraalppie
WordClass: verb
Present: fraalppier
Past: fraalppete
fornøndsonse
WordClass: verb
Present: fornøndsonser
Past: fornøndsonsede
overfense
WordClass: verb
Present: overfenser
Past: overfensede
forollise
WordClass: verb
Present: forolliser
Past: forollisede
undse
WordClass: verb
Present: undser
Past: undete
afoe
WordClass: verb
Present: afoer
Past: afoede
indnapse
WordClass: verb
Present: indnapser
Past: indnapsede
uin
WordClass: noun
Determinate: uinen
Plural: uine
Determinate: uinene
forel
WordClass: noun
Determinate: forelen
Plural: forele
Determinate: forelene
undud
WordClass: noun
Determinate: unduden
Plural: unduder
Determinate: unduderne
franedadvisp
WordClass: noun
Determinate: franedadvispet
Plural: franedadvispe
Determinate: franedadvispene
imbæ
WordClass: noun
Determinate: imbæen
Plural: imbæer
Determinate: imbæerne
ganbalsens
WordClass: noun
Determinate: ganbalsenset
Plural: ganbalsenser
Determinate: ganbalsenserne
fraka
WordClass: noun
Determinate: frakaen
Plural: frakae
Determinate: frakaene
fnielv
WordClass: noun
Determinate: fnielven
Plural: fnielver
Determinate: fnielverne
fortyt
WordClass: noun
Determinate: fortyten
Plural: fortyter
Determinate: fortyterne
uen
WordClass: noun
Determinate: uenet
Plural: uene
Determinate: uenene
udsesk
WordClass: noun
Determinate: udsesken
Plural: udseske
Determinate: udseskene
overmensøj
WordClass: noun
Determinate: overmensøjen
Plural: overmensøje
Determinate: overmensøjene
alvepsud
WordClass: noun
Determinate: alvepsudet
Plural: alvepsuder
Determinate: alvepsuderne
undulf
WordClass: noun
Determinate: undulfet
Plural: undulfer
Determinate: undulferne
frajarauk
WordClass: noun
Determinate: frajarauket
Plural: frajarauke
Determinate: frajaraukene
urab
WordClass: noun
Determinate: uraben
Plural: urabe
Determinate: urabene
opbalsmar
WordClass: noun
Determinate: opbalsmaren
Plural: opbalsmare
Determinate: opbalsmarene
re
WordClass: noun
Determinate: reen
Plural: reer
Determinate: reerne
afkepsta
WordClass: noun
Determinate: afkepstaet
Plural: afkepstae
Determinate: afkepstaene
frahios
WordClass: noun
Determinate: frahioset
Plural: frahioser
Determinate: frahioserne

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



pisoshi
Occupation: shochu-dealer
FirstName: kijiteho
kito
Occupation: rice-farmer
FirstName: zowosu
zachihawe
Occupation: sake-dealer
FirstName: ohi
hihi
Occupation: sake-dealer
FirstName: hehechihi
mofuji
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.

Alfar
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.