A generator is also known as a compiler. The main difference is that in a generator, sometimes the rules are hardcoded.<p>In fact, almost all of books pertaining to design of compilers will help you in designing good generators.<p>Additionally, not mentioned in an otherwise great article directly, only implicitly in those &quot;frameworks&quot; part, is an expert system. An expert system is more general logic framework than grammar-based system, that uses first and higher order logic (backward, forward propagation, &quot;blast&quot; methods, simplifications etc.) to derive solutions given some starting &quot;nouns&quot;, the set of which can be generated using any other method. The main pro of an expert system is that if the rules are properly encoded, it will not generate anything outside the constraints (except maybe bottom which means invalid input). This makes expert system reliably easy to control, and a large enough expert system can actually encode a grammar <i>and</i> a good story structure.<p>The main drawback of those is that until recently, they had trouble dealing with existential statements (e.g. for every monster in a set, the monsters XP must be within a delta and increasing by at least delta2) but that has been mostly fixed in advanced languages such as Isabelle&#x2F;HOL - things have come a long way since Prolog.<p>As for &quot;perceptual differentiation&quot;, tere have been attempts to construct difference-tracking neural networks, mostly successful, and use a certain way to generate novelty and detect such input, in addition to being self-training.<p>Sadly, nobody yet succesfully combined both of the above to create a machine to generate novel logic. That would be sort of a true AI - maybe a worthy extension of OpenCog.