There are so many venues for artificial creativity, in fact, as many as we can imagine using our own creativity. Generating stories is one of them and a popular one at that, as many open-source lexical databases have become available in the past few years.
MakeBelieve is one of these creative system. In short, MakeBelieve uses ConceptNet, an open-source common sense database to generate short stories of various sorts. Created in 2002 by Hugo Liu of the MIT Media Lab, the system works interactively: The user initially writes a short sentence and MakeBelieve attempts to write a following story.
Using a common sense knowledgebase the agent (MakeBelieve) makes assumptions about the real world, keeping him from venturing outside a logical framework of a story’s structure. Liu’s site provides some great examples, here’s one from the example file:
Generated Story Example
John became very lazy at work. John lost his job
John decided to get drunk. He started to commit crimes.
John went to prison. He experienced bruises.
He looked at himself differently.
John went to prison. He experienced bruises — that line cracks me up. Unfortunately the system is not available for public downloading, so I can’t have it create a story about myself for this post as I had hoped. But how does it work? Basically, the common-sense database contains a series of cause-and-effect sentences like publishing a blog entry means other people can read it, or a consequence of flying is jet-lag. These causes and effects are extracted from the base and used in a kind of if-then manner to link together a story, using synonyms and analogous elements to make the sentence structure look less if-then’ny (and to add a bit of creative spice). Of course, this is an overt oversimplification, making it sound a lot less “magical” — and by magical I mean, of course, intelligent. Check out the links at the bottom of this post for details.
It’s hard to tell from selected examples how well the system generally does, it depends a lot on the size of the knowledge base — which in this case is about 9.000 causality-sentences. We can safely venture that it’s limited at best, as it has no means to construct levels, or phases in the story, nor can it handle more than one character it seems. Nonetheless, it’s interestingly good at short stories.
If you’re interested in trying your hand on artificial creativity in linguistics and story generation, ConceptNet is a fine foundation for building projects on. The latest version is written in Python, but if that’s not your cup of coffee — there’s also an older version written in Java available. In addition to all of that you can interface the Python version with any language through an XML-RPC server.