Oh my blog! Whee!

Wrong by design

  • feb 7

    I’ve decided to base WordBuilder 2.0 dictionaries on Microsoft Sql Server Compact Edition – a file based tiny version of Sql Server.

    Update: I’ve found a way to avoid the extra download and install, so I’m now bundling the necessary files with WordBuilder. Yay.

  • jan 28

    I had hoped to go directly to 2.0 from 1.5, but I’d hate for a language app to not support unicode chars – I accidentally broke support with my syntax highlighting.

    I also found a bug in the translate command, so a multi-character token might be partially hit with a single character match ( r => x changed my /rt/ tokens to /x t/)

    That’s pretty much it, as my focus is mostly on Esolanean and v2.0, where I hope to offer a pretty decent dictionary tool in stead of the current crappy one. Suggestions are most welcome.

    Download WordBuilder v1.6 here

  • jan 28

    Ok, I got to thinking about how to pronounce Esolanean words.

    Two things go into this (at least): how each letter is pronounced, and which syllables to stress.

    I already have some indications as to both, since I’ve been using the few words I have in my mind for several years.

    /SINT/ is stressed.

    In /SINTor/, the first syllable is still stressed, but in /toMAL/ the second syllable is. Hm. /KATor/ stresses the first syllable as well, so it looks like the /-or/ suffix doesn’t move the stress.

    /sintAro/originally stressed the second syllable, but I rather like /SINTaro/ as well, which would work with a general rule that suffixes do not move the stress. /BENapak/ stresses the first syllable, so that’d work if /-apak/ is one or more suffixes. /Ben/ meaning <wander> is pretty cool too, since /ben/ mean leg (or legs) in Danish. I’m not aiming for a language like Danish, but I like cross-language puns.

    So it looks like stress is on the last syllable of the stem word for one- and two-syllable stems. Looking over the longer words I’m generating, I have a feeling that the rule might be to stress the second syllable for any stem longer than one syllable.

    For the other part, pronounciation, I’ve been trying to figure out at least some of that whole IPA thing.

    Looks like most of the letters I’m using represent sounds that have the same characters in IPA, so that makes it quite a bit easier, but one thing popped up, at least: /r/ is pronounced [ɹ].

    WordBuilder naturally supports unicode characters, so that shouldn’t be a problem… erm. Oops. Unicode support is broken in v1.5 because of the syntax coloring. New version with support for IPA characters is coming in a moment, as I have the fix implemented.

    After that, I added a new rule to my script – I figured some extra rules, such as /ar/ is pronounced like a long [a], and /r/ is trilled after /p/ and /o/, unless at the end of the word, where /or/ is just a long [ɐ]:

    rule pronounciation {
     translate {
      a r # => a ː
      o r # => ɐ ː
      o r => o !r // escape some r's
      p r => p !r
      r => ɹ
      !r => r // unescape after most r's are fixed.
      t => t̪ // t is dental.
     }
    }
    

    And added a branch at the end of my noun rule:

    rule noun {
     rule base
     rule noun-ending
     rule cleaning
     branch Pronounciation pronounciation
    }
    

    And finally added a column to my presentation:

    column Pron. Pronounciation

    Now, I get IPA pronounciation next to my words when I generate, albeit incomplete, because I haven’t worked all the way through the alphabet. More mappings in the translate command, and I’ll be done.

    Oh, and I realized a mistake I’d made earlier, when introducing the double consonant syllable rule – since it had the same weight as the other syllable rule, it got hit a lot of the time also for the first syllable, meaning that an overweight of the words started with a vowel. I’ve adjusted the weight so that it now generates a more tolerable amount of vowel-starting words, as well as fewer double consonants.

    Words now look like this:

    • merkamror [meɹkamɹɐː]
    • roben [ɹoben]
    • tepar [t̪epaː]
    • kamottepmor [kamot̪tepmɐː]
    • pisosbikar [pisosbikaː]
    • selnersin [selneɹsin]
    • ser [seɹ]
    • eran [eɹan]
    • lipikoen [lipikoen]
    • kaknotser [kaknot̪seɹ]
  • jan 24

    I ended up last night with a script that generated some decent syllables. Alas, when combined, they didn’t always work very well.

    So I changed my script a bit:

    tokens vowel a e i o
    tokens consonant b k l m n p r s t
    tokens noun-ender r n
    
    rule base {
     loop 0 1 1 5[2] 2[3] {
     rule syllable
     }
    }
    
    rule noun {
     rule base
     rule noun-ending
    }
    
    rule noun-ending {
     loop 0 0 1 1 1 {
     token consonant
     }
     token vowel
     token noun-ender
    }
    
    rule syllable {
     loop 0 0 1 1 1 {
     token consonant
     }
     token vowel
     loop 0 0 6[1] {
     token consonant
     }
    }
    
    rule syllable {
     translate {
     a # => a $consonant
     e # => e $consonant
     i # => i $consonant
     o # => o $consonant
     }
     loop 0 0 1 {
     repeat
     }
     token vowel
     loop 0 0 6[1] {
     token consonant
     }
    }
    
    startingrule noun 50
    
    

    Now, I’ve added a new variation of the syllable rule so as to make double consonants more likely. I found that ever so often, the rule would be applied to a syllable ending with a vowel, so I added the translate command to make sure there was a consonant at the end before repeating.

    That’s a lot better, but there are still some consonant pairs that I dislike. So I added this rule to the script:

    rule cleaning {
     translate {
     [b p] k => m k
     t k => s k
     [b p] n => n n
     b p => p p
     p b => b b
     l r => l l
     }
    }
    

    Which solves at least most of my problems. Words now look like this:

    • arpakpir
    • elobrar
    • akinan
    • oppin
    • abor
    • itokimkon
    • kanikbamen
    • oksan
    • ikabmemir
    • eppobin
    • an
    • etetelen
    • inter
    • orser
    • itannesmar
    • nabsipporon
    • imsinror
    • ekeon
    • obbason
    • mibosepir
    • ibasbir

    Not bad – and with a pretty uniform feeling, I think.

  • First scripts

    Filed under Esolanean
    jan 23

    Ok, so far I’ve been picking out consonants and vowels. I’m pretty sure I’ll need a few more, but I figure I might as well try and generate a few words.

    Here’s a first very simple script:

    tokens vowel a e i o
    tokens consonant b k l m n p r s t
    tokens noun-end r n
    
    rule noun {
     token consonant
     token vowel
     token noun-end
    }
    
    startingrule noun 50
    
    

    Which sadly generates very simple, one-syllable words. One moment!

    tokens vowel a e i o
    tokens consonant b k l m n p r s t
    tokens noun-end r n
    
    rule noun {
     loop 1 5[2] 4[3] 2[4] {
     rule syllable
     }
     token noun-end
    }
    
    rule syllable {
     token consonant
     token vowel
    }
    
    startingrule noun 50
    
    

    There, that’s better – although the syllable structure is a bit simple – CV isn’t much for variation. Here’s a new syllable rule for (C)V(C)

    rule syllable {
     loop 0 0 3[1] {
      token consonant
     }
     token vowel
     loop 0 0 6[1] {
      token consonant
     }
    }
    
    
    

    That gives me words like

    • poenin
    • repokor
    • loriten
    • lobkosrokor
    • lopkoer
    • botipkiir
    • obpaen
    • opotan
    • resereor
    • ikolkoen
    • ilsian
    • osin
    • bitor
    • setepar

    Some of them aren’t exactly great, (ikolkoen? and botipkiir??) but it’s a start. Maybe I can clean up some of it with further processing.

  • Esolanean

    Filed under WordBuilder
    jan 16

    I just remembered a few more words that I’ve used.

    The benapak order is a nation-wide organisation of warriors and adventurers, training with a wide range of traditional weapons. I guess you could think of them as shaolin monks mixed with an adventurers’ guild.

    The tomal order is a group of healers, doctors and wise-folk, offering health services to those in need.

    I’ve yet to come up with a good explanation of the words, but the way I see it, they could be either irregular nouns (ending on anything but -n and -r), adjectives, or verbs in a continuing mode.

    Actually, ‘benapak’ could be ‘wandering’, so a continuing verb it is. Suffix could be -ak or just -k, not determined yet.

    ‘tomal’ could be ‘kind’, so an adjective.

    New letters are [b], [k], [m], [p].

    Here’s a table of the consonants and their placements:

    labial alveolar velar
    stop p, b t k
    frictative s
    approximant l, r
    nasal m n

    I had actually thought of making Esolanean a language without any frictatives, making it more of an either-or language; as in, either your mouth is open, or it’s closed. None of that in-between stuff. I do need [s], though. Hm.

  • jan 13

    Here you go – Syntax Highlighting!

    Download here

  • jan 4

    Spurred on by the few friendly folks who know about its existence, here’s WordBuilder v1.4.

    Features:

    • Export to CSV file
    • Edit word
    • Translator (a rather fault-prone beta)
    • Updated Text on path addin for InkScape
    • Added menu item for selecting all words – shortcut shift+ctrl+a no matter where you have focus.
  • Esolanean

    Filed under WordBuilder
    okt 22

    Esolan is a large country, or empire, rather, covering most of the continent east of Dunderhill. Esolanean is the Dunderer name for the language spoken there. I know very few words of Esolanean, but I thought it could make an interesting test language for WordBuilder.

    I’m no expert conlanger, so I’m probably going about this all backwards, but here goes.

    One word that I know is the word for magic: /sint/. From that word come words for magic-user, /sintor/, and for a master of magic, /sintaro/. I made those up back in the day without giving much thought to why they’d be named so, but I’ve made up an explanation:

    The stem of the word is /sin/, actually meaning “river”. Magic in the world of Dunderhill and Esolan is of the channeling kind, so it would make sense for magic users to describe it as a river. The /-t/ suffix works to mark the determinant form, so /sint/ means “the river”.

    The /-or/ suffix changes a noun into “a slave of <noun>” – so a magic user to the Esolaneans is basically “a slave of the river”.

    The /-aro/ suffix works like /-or/, but turns the noun into “a master of <noun>” – that is to say, “the owner of a <noun> slave.”

    Let’s say Esolaneans are pretty keen on this slave/master relationship. I’m thinking I can use the slave suffix for genitive forms in general, but also to indicate reliance on, or addiction to, something, and the master suffix could be used for people who master a trade or skill. A regular mercenary could be a slave of the sword, while a highly regarded warrior hero might be a master of swords.

    As for WordBuilder, this already gives me a bunch of tokens (phonemes, I think they’re called) that Esolanean must allow: the vowels [a] [e] [i] [o] and the consonants [l] [n] [r] [s] and [t].

  • okt 19

    Bleh. I’m tired, and I want to go to bed. It’s only barely 8 pm, though.

    I’ve been planning to start a conlang and try to fill it in using WordBuilder, and then blog about my progress here. Not entirely sure where that’ll take me.