Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Jede Silbe #125

Open
eseyffarth opened this issue Nov 3, 2015 · 1 comment
Open

Jede Silbe #125

eseyffarth opened this issue Nov 3, 2015 · 1 comment

Comments

@eseyffarth
Copy link

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

pim! pin! piN! pil! pij! pir! pip! pit! pik! pif! pis! piS! piC! pix! pimp! pimt! pimf! pims! pimS! pint! pinf! pins! pinS! pinC! pilp! pilt! pilk! pilf! pils! pilS! pilC! pirp! pirt! pirk! pirf! pirs! pirS! pirC! pilm! piln! pirm! pirn! pirl! pipS! pikt! piks! pift! pifs! pist! pisk! piSt! piSs! piCt! piCs! pixt! pym! pyn! pyN! pyl! pyj! pyr! pyp! pyt! pyk! pyf! pys! pyS! pyC! pyx! pymp! pymt! pymf! pyms! pymS! pynt! pynf! pyns! pynS! pynC! pylp! pylt! pylk! pylf! pyls! pylS! pylC! pyrp! pyrt! pyrk! pyrf! pyrs! pyrS! pyrC! pylm! pyln! pyrm! pyrn! pyrl! pypS! pykt! pyks! pyft! pyfs! pyst! pysk! pySt! pySs! pyCt! pyCs! pyxt! pem! pen! peN! pel! pej! per! pep! pet! pek! pef! pes! peS! peC! pex! pemp! pemt! pemf! pems! pemS! pent! penf! pens! penS! penC! pelp! pelt! pelk! pelf! pels! pelS! pelC! perp! pert! perk! perf! pers! perS! perC! pelm! peln! perm! pern! perl! pepS! pekt! peks! peft! pefs! pest! pesk! peSt! peSs! peCt! peCs! pext! p2m! p2n! p2N! p2l! p2j! p2r! p2p! p2t! p2k! p2f! p2s! p2S! p2C! p2x! p2mp! p2mt! p2mf! p2ms! p2mS! p2nt! p2nf! p2ns! p2nS! p2nC! p2lp! p2lt! p2lk! p2lf! p2ls! p2lS! p2lC! p2rp! p2rt! p2rk! p2rf! p2rs! p2rS! p2rC! p2lm! p2ln! p2rm! p2rn! p2rl! p2pS! p2kt! p2ks! p2ft! p2fs! p2st! p2sk! p2St! p2Ss! p2Ct! p2Cs! p2xt! pE:m! pE:n! pE:N! pE:l! pE:j! pE:r! pE:p! pE:t! pE:k! pE:f! pE:s! pE:S! pE:C! pE:x! pE:mp! pE:mt! pE:mf! pE:ms! pE:mS! pE:nt! pE:nf! pE:ns! pE:nS! pE:nC! pE:lp! pE:lt! pE:lk! pE:lf! pE:ls! pE:lS! pE:lC! pE:rp! pE:rt! pE:rk! pE:rf! pE:rs! pE:rS! pE:rC! pE:lm! pE:ln! pE:rm! pE:rn! pE:rl! pE:pS! pE:kt! pE:ks! pE:ft! pE:fs! pE:st! pE:sk! pE:St! pE:Ss! pE:Ct! pE:Cs! pE:xt!

Some things I have learned doing this:

  • 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.
@hugovk hugovk added the preview label Nov 3, 2015
@eseyffarth
Copy link
Author

Here's my repo.

Here's the complete output (60610 words).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants