hexagram30 / language

A syntagmata and Markov chain language, word, and name generator for use in hexagram30 narratives
3 stars 1 forks source link

Re-work the plumbing around generator implementations #28

Open oubiwann opened 6 years ago

oubiwann commented 6 years ago

Syntagmata* and Markov* (and common-impl) require access to the running system state right now; unfortunately, when they are created, only a partial system state is known. A new abstraction is needed such that with every function call, the latest running system is passed.

This may mean reverting the current API to its pre-component form, and then creating a component-aware, wrapper API for it.

oubiwann commented 5 years ago

Perhaps more to the point, in order to do interesting things with the code (creative, unexpected things that weren't part of the original design ... such as combining real words in fractions to generate synthetic words), you'd have to have a full running system, for that matter, a corpus file for just the words you wanted to synthesize.

To work around that, half-assed support for generating new words from known words was done with commit b856e31. This pulls on lower-level functions, but doesn't have good logic for proper initial and terminal syllables.

In order to really fix this, we need to dive into the system-based implementation, extract the logic, put those functions in a new namespace, and then recreate the system-based functionality using this new work.