How do you teach a computer to write a story? At first, the task seems impossible – to understand everything about the world that could be represented in a story, the computer would have to know as much as you or me. However, several research groups are up to the challenge.
Early groups worked by creating story templates that could be selected between, modified slightly, or filled in with words or concepts from a list. (You or I can also do this sort of thing, if we have a free afternoon, with some simple string manipulation functions. It’s not hard, and is a lot like a very carefully crafted Mad Lib.) However, the more interesting task in computational creativity is to make a system that can understand the characters involved in a story, figure out what they would do, and fit that into a storylike structure without a predefined instruction about how the story should go.
Systems that write stories – TALESPIN, MINSTREL, and MEXICA among them – typically take a single topic, like talking animals or Aztec warriors, and are programmed with a large knowledge base about objects, social reasoning, the actions that can be taken by an agent in this setting, etc.
Unfortunately (based on my not very thorough current searching) it’s much easier to find computer scientists talking about the details of these systems and exactly what knowledge they encode (details which are probably beyond the scope of these posts) than to find examples of the stories they make. The programs that exist today are quite interesting, able to calculate relatively advanced concepts like why people take specific actions, what basic actions are available or unavailable to a specific person, and what might be the consequence of that action. But the examples I can find are all a bit disappointing in a specific way:
The jaguar knight went hunting with the tlatoani. The fisherman hated the tlatoani. The fisherman attacked the tlatoani. The tlatoani attacked the fisherman. The jaguar knight made prisoner the fisherman. (from MEXICA by Iván Román and Rafael Pérez y Pérez)
It seems that, while current computers can represent a logical sequence of events for a story, describing the story in evocative, interesting, emotionally deep, or immersive ways is still a long way off.
This is no problem for certain applications, though. The storytelling advances made by these programs are useful for certain commercial applications in sports, finance, or elsewhere. Programs analyzing data in these fields can automatically generate stories based on their data, which make the most pertinent points easily comprehensible to humans:
Store 9, your sales of Item 6 are far below the other stores in your region. If you are able to up your sales of this product by only 5 units a day, you will be able to increase your profits next month by $1,123. The sales of this product for other stores in your region seem to indicate that this is completely achievable. (example from Narrative Science‘s website)
Computer programs can also automatically generate usable news stories about sports, finance, and other formulaic topics. Not exciting, perhaps; but also not terrible for a practice that grew out of Mad Libs.