Instead of focusing on my interesting idea (Issue #10), I've spent the first couple of days of NaNoGenMo working on something that seemed like a fun warmup project. But I'm doing it in Prolog and it's taking me a while to get it right.
My program will generate all the syllables that are possible in German. I have a knowledge base that contains everything I know about German phonotactics (in case anyone's interested, I use the information provided by T. Alan Hall in Phonologie: Eine Einführung [2000]). The syllables are represented in SAMPA, a machine-readable phonetic alphabet.
I really like the output so far, I'll create a repo and link it as soon as I have a complete version. Here's a preview:
The German language is a lot more complex than T. Alan Hall pretends it is. I had to add a lot of constraints to prevent unarticulable syllables from being created, and I still haven't found all the errors.
Turns out German has around 60 000 possible syllables! It's actually a little less because my program makes some mistakes with assimilation in consonant clusters. For example, "penk" will be evaluated as a valid syllable even though the n would become a "N" (velar nasal) when articulated directly before the k. So "peNk" should be valid while "penk" should not.
Anyway, it's a little under 60 000 words so I think this will be a fine NaGenMo No.
Prolog is teaching me much more about algorithm complexity than any lecture about sorting algorithms ever could. Accidentally calculating the power set of a set with 60 000 members is very expensive.
German is a weird language and allows a huge number of syllables, most of which I don't recall ever having read, heard or said before.
Instead of focusing on my interesting idea (Issue #10), I've spent the first couple of days of NaNoGenMo working on something that seemed like a fun warmup project. But I'm doing it in Prolog and it's taking me a while to get it right.
My program will generate all the syllables that are possible in German. I have a knowledge base that contains everything I know about German phonotactics (in case anyone's interested, I use the information provided by T. Alan Hall in Phonologie: Eine Einführung [2000]). The syllables are represented in SAMPA, a machine-readable phonetic alphabet.
I really like the output so far, I'll create a repo and link it as soon as I have a complete version. Here's a preview:
Jede Silbe
Some things I have learned doing this: