National Novel Generation Month -- Day 2

Once upon a time…

November 2, 2017
nlg narrative nanogenmo

Today was more of a research day, apart from some refactoring of yesterday’s work. Spent ages trying to track down an error, which turned out to be one missing level of brackets in a data file. Oh well, at least I’m getting used to debugging Scheme code now (I’m using guile to develop this system).

To turn the basic plot into a story, I need to turn the Proppian functions into actions. So I’m thinking of a way of annotating them with what essentially happens in each function. This can be a conceptual dependency-style structure, but possibly also using some higher level commands than just the basic primitives that Schank et al used in their work. These would later be expanded into such primitives to be fed into the language generator at the end.

I’ve also compiled an initial list of aims, which will drive what the characters will be doing. These are for example

  • go to location
  • go to person
  • acquire object
  • deliver object
  • acquire information
  • defeat person
  • destroy object

So the Propp function departure maps onto giving the hero the aim go to location. What that location is, remains to be seen. It could be the location where a person or object can be found. Whereas reconnaissance gives the villain the aim acquire information. There will be different ways to achieve these aims, which will involve sub-aims, and hopefully enough variation to generate plenty of different stories.

Thinking about characters, I’ve been looking at emotions. Emotions will determine how characters react, though I have as yet no clue how that would work. I’ve come across a scheme by Robert Plutchik, which uses eight basic emotions, where two are paired as counterparts:

  • Trust - Disgust
  • Fear - Anger
  • Sadness - Joy
  • Surprise - Anticipation

There would be a scale (-10 to +10 or so), so an emotion item would be a list of four numbers. A character will have a basic emotional state, but would also have emotion items describing the relationship with other characters. The states are variable, so if character A is angry, and meets character B, towards whome they feel joy, then they might become less angry. Obviously a very simplistic way to model something as complicated as human emotions, but the perfect is the enemy of the good. Especially if you only have one month!