Hm.. I had some fun with InkScape, generating names with the extension, but I’ve found that it’s a bit of a bother to have to make text-on-path objects for it to generate into. So for the next version, I’ve added functionality to put text on selected paths that have no text attached, so if there’s text on a path, that text will be filled, if there’s no text on it, a new text-on-path will be created.

Also, I’m working on a word-editor for the dictionary, where you can manually add tokens, apply rules, branches and marks.


WordBuilder 1.3 released

Download here: http://whee.dk/wordbuilder/WordBuilder.msi

New features:

  • Substring command: substring <start> <end>

Where start is the first letter you want to keep, and end is the last letter you want to keep. Negative numbers count from the end of the token.

So, with the token ‘abcdefg’:

substring 2 -1 // bcdefg
substring 1 2 // ab
substring 1 -2 // abcdef
substring -3 -1 // efg
  • About box
  • Inkscape extension to populate selected text objects with generated words – in the install dir, there’s a folder called InkScapeExtension. Copy the content of that folder to your InkScape/share/extensions, and look under Effects/Text.
Programming WordBuilder

InkScape fun

Well, I’ve been working on making an InkScape effect extension to allow me to generate place names directly into the map using WordBuilder rules.

I can report some success, but also some woes. As of yesternight, I can select a textbox and run the effect, and a name appears, albeit not quite in the right place. I think I’m just putting the text in the wrong tag, so that should be easily fixable.

The interesting thing is that I can’t get InkScape to accept the output from my .net console application. I’m writing to stdout, and running it from the command prompt allows me to stream the output to a file, so I’m pretty sure it’s going the right way. I ended up using a python script that executes the .net application, reads the output (from what it considers stdout), and then outputs that on its own stdout. Why that works better, I’ve no idea.

Other than that, I’ve implemented the loop command:

loop <list of numeric tokens> {

Which will pick a number from the list and repeat the commands that number of times. Since it takes a token list, 4[5] 6 will make 5 loops four times as likely as 6.


WordBuilder 1.2 released

Download at the usual spot.

New features:

  • Export to DPP DrawPlus file
  • Translator – uses your dictionary to translate marked up sentences into your language
  • Token frequencies: 4[i] in a token list replaces i i i i.
  • Translate command supports token set matching using $token_set_name as well as in-place token sets using [token token token]. Also supports [tokenA 5[tokenB] tokenC] in the replacement part of a translation rule.
  • Add words to dictionary directly from the generated word list.

DrawPlus support is there

In between training and digging out the back entrance to my house (we’re renewing to celebrate the baby carriage leaving the building), I’ve managed to finish the export to DrawPlus native format.

As it turned out, a DrawPlus file is a zipped bunch of xml files, so most of it was pretty easy – the difficult part was that some nodes in the xml had to have unique ids across all files, as they can refer to each other across files. Yay!

I have no clue as to how big the user base is for DrawPlus, but they do have a free version, and the priced version is at £10, so not too bad. The free version seems quite impaired, but it is pretty easy to figure out, so I guess it may be an ok buy. Download and try it out at FreeSerifSoftware.

I’ll note that I am not affiliated with Serif or anyone else related to the software, and I make no money off of mentioning them here. I figured with my software having only two known users, I might as well write code that’d help them.

Now, it’s on to clean up the token frequency code I promised su_liam, and WordBuilder 1.2 will be out the door, I guess.


DrawPlus support

It’s not exactly done yet – I’m having some problems with matching the format, but I think I’m close enough to announce that WordBuilder 1.2 will support export to DrawPlus native image format.

As with svg export, the image will contain the selected words, each on a seperate curve for easy placement and curving on maps.



I made some progress on WordBuilder last night.

As I discussed with su_liam on the forum, the rules for the translate command could be made tighter and easily readable by supporting sets on the matching side:

translate {
  [b v d g] o ch => r a ch

and allow for randomization by supporting sets on the replacement side:

  b o ch => [r m l] a ch

He also suggested that matching token sets would be nice:

  b o $unvoicedAffricates => r a $voicedAffricates

So I added that. And a way to mix them:

tokens labials b p m

 [$labials f] o $unvoicedAffricates => r a [s $voicedAffricates]

which would match b, p, m and f for the first token, and replace unvoiced affricates with voiced ones or the token ‘s’

After that, I added a way to add words to a dictionary directly from the main window, so when you have one or more words selected, you can add them to the active dictionary, and if there is no active dictionary, you can choose one.

Finally, I started working on the translator function, the slightly ambitious tool for translating a text using the dictionary you’ve built. For now, it supports translating texts with inflections based on branches (and marks), and marks words that don’t exist in the dictionary with curly brackets.

Next, I want to add a way to add a word to the dictionary by, say, right clicking words in {} 😉

I’ll note right here and now that I don’t intend for the dictionary to be able to translate plain English text. You will need to mark up your text with inflections, and move words around to match the correct word order of your target language.

The things described above are planned for release 1.2 – suggestions for more features are welcome, over at the forums.

Oh, and I’ve added a new forum, the Script workshop, where I’ll try to help you get WordBuilder to do what you want it to.


WordBuilder 1.1 released

New features:

  • Comments, // for single line comments, /* */ for block comments. Thank su_liam for that.
  • Capitalize command turns the first letter of the latest token to upper case.
  • Dictionary – find words by meaning or find the meaning of a word. Generate function to create new words based on your WordBuilder rule sets.
  • Export to svg file – create an svg file with a text-on-path object for each selected word (or all words if none are selected) – useful for placing labels on a map, perhaps. Uses new Export framework that will make it easier to make additional exports.
  • New example scripts: http://whee.dk/wordbuilder/DunderhillPlaces.wordo and http://whee.dk/wordbuilder/Esolanean.wordo
  • Example dictionary: http://whee.dk/wordbuilder/Esolanean.wdic – try searching for mountain, river (and also river.Determinate for ‘the river’ – this uses branches), and paejir.

The dictionary tool has lots of room for improvement, but I figured the sooner I got it out there, the better. I’ve attached some screenshots showing the new features.


Forums added

I’ve decided to add forums to the site. For now, there are a couple of support forums for my WordBuilder application.

You have to register to use the forums, but please do. I won’t be sending you spam. Ever.

Now, go to the forums!

Programming Role playing

WordBuilder 1.0 released

WordBuilder is the latest thing to make me go Whee! – It’s an application for building vocabularies, word lists, and other small tricks (I made a list of a town’s inhabitants with occupations and first and last names, for example)

The WordBuilder main screen
The WordBuilder main screen

Fixes since 0.9:

  • Drop command now works, dropping from the end of the word.
  • Translate command now supports begin and end markers:
    Translate {
      # a a => a
      a a # => a

    Only removes double a’s at the beginning and end of the word.

  • The generate dialog now supports any number of starting rules.
  • The new Column directive allows you to show marks and branches as columns in the list view.
    Column Title1 Branch1
    Column Title2 !Mark1
    Column Title3 Branch1.!Mark2
  • The new Leave command takes tokens off the word until the requested number of tokens are left.
    Leave 2
  • WordBuilder now has an icon. Anyone want to make a better one?
  • The installer now asks where to install. Uninstall 0.9 before installing the new one.
  • New example project at http://whee.dk/wordbuilder/prach_eboch.wordo
  • Detail view now shows details for all selected words as preview of what you’ll copy with Copy details to clipboard.

Download at http://whee.dk/wordbuilder/WordBuilder.msi – and please, please give me some feedback?