National Novel Generation Month -- Day 3

Once upon a time…

November 3, 2017
nlg narrative nanogenmo

Now that I have a basic (abstract) plot outline and some idea about the characters’ emotions, I need to think about what drives them. Yesterday I listed some aims that the system would understand. So, each character gets a set of initial aims that they are trying to achieve. Ideally there would be some conflict built in, for example a love interest: two separate characters want to fall in love with the same person. As they attempt to win that person’s heart, they might clash. Or, decide to live in an open relationship together as a triple, who knows!

That would also make it easy to implement some of Propp’s functions: the interdiction would mean that the hero is told one of his aims is not allowed. And the interdiction-violation would mean that the hero ignores that, and keep it as an aim. Alternatively, a friend’s aim could be disallowed, and the hero would try to achieve the aim for the friend, such as acquire an object and give it to the friend.

The next step then is to annotate the narrative functions with actions and aims; for example, absentation could be an atrans of a friend to a location as an action, and the same for the hero as an aim, as the hero wants to be with their friend. There might be some conflicting aim (such as staying at home, protecting the family), but the resolution might be that the friend starts feeling sad when away from their home environment, leading to the aim of coming back home, which then achieves the hero’s aim as well.

I also need to start thinking about the World Simulator, the engine that does all the heavy lifting of producing the story content. The original idea is to take TaleSpin, but that might be a bit too simplistic. After all, it’s only really been used for short stories about Joe Bear and Irving Bird. In addition I need timestamping to keep track of where the various characters are and what they are doing, and a more sophisticated logging facility, as the simulator log will be fed into the story renderer at the end. I also need to work with multiple characters at once, so the whole setup needs to be a bit more capable than the original.