Likeable Literature, Part 2

Continuing my series started earlier, this time consider the two sometimes opposing forces of realism and fantasy.

I concede that much of this battle is personal taste; there is a class of people who prefer realistic stories and a class of people who prefer fantastical ones. I think, however, that a balance should be struck in either case. A story that is too realistic runs the risk of becoming uninteresting, and a story too fantastical runs the risk of losing suspension of disbelief.

Where this balance lies depends on the genre of the story. A fable leans towards the fantastical side, because it aims to teach. Hence we have fables like Aesop’s The Tortoise and the Hare, which I dare contend is not a very realistic story. However, the story is an allegory, as fables are apt to be. Allegories, by design, need not be entirely realistic.

Historical fiction is perhaps the other extreme; to the point that some popular novels are even true stories adapted to book form. The entire point of this genre is to reënact history, and thus it should be as realistic as possible within reasonable bounds.

As a reader, I enjoy a mix of genres including fables and historical fiction. Which one I pick is very dependent on my mood and current state of mind. I believe that many readers are similar; they should enjoy both realistic and fantastical stories provided it is suitable for the genre.

By and large, it seems to me that the “right” amount of realism for a particular story depends on the effect and goal one strives to achieve for that story, which in turn heavily depends on its genre. Hence it is counterproductive to look for a simple formula balancing realism and fantasy, but instead one should let the correct degree of realism fall into place from other considerations of the story.

A Procedural Novel Generator, Part 2

Some small amount of progress has been made on the procedural novel generator I started recently.

Firstly, I’ve improved how text is written. Instead of requiring each word be hard-coded, new backend functionality exists to make writing easier.

def describe(self, perspective=None):
    """Return a list of words describing the meeting."""
    if perspective in self.characters:
        others = [char for char in self.characters if char is not perspective]
        return writer.pack(
            syntax.Word('I'),
            writer.Verb.MEET.conjugate(1),
            writer.make_list(others),
            syntax.PERIOD
        )
    else:
        return writer.pack(
            writer.make_list(self.characters),
            writer.Verb.MEET.conjugate(2),
            syntax.PERIOD
        )

The above code shows using the new functionality to conjugate verbs and to make lists, two annoying things in English that are good to have finished.

The very basics of character generation have been dealt with. Now each character has a name, age, and sex. There are still no character traits and the descriptions of characters are extremely plain.

A new time and event system is now in place in the world. Currently the time system is very linear; events can only follow other events. The events are also hard-coded at present and not generated on the fly. Finally, there are only two types of events at present, and neither is fleshed out. The events system is mostly there as a skeleton for future refinements. Consequently, the system is not yet very flexible.

Here’s a sample of what is generated at present:

Here is a tale from the world of Manontome.

I, Rosentina Rombante, am a forty-one-year-old woman. Giovigicelchiosa Savettino is a twenty-eight-year-old man.

Fifteen seconds ago, I met Giovigicelchiosa Savettino. Five seconds ago, Giovigicelchiosa Savettino punched me.

I hope to get some more variation in the stories in the near future—right now the only change from one story to the next is the names of the characters.

Read the next part on character traits.

Likeable Literature, Part 1

The major criticism about computerizing creativity is that it doesn’t make sense: creativity is a topic for which strict and hard rules about good and bad will never be achieved. I disagree with this sentiment. There is certainly an easy way to define a goal for computerized creativity: to make the product “likeable”. In the coming weeks I will attempt to explore certain pieces of literature that are “likeable” and try to identify what makes them so. Firstly, however, I need to overcome my own preconceptions about what makes literature likeable. What better way to do this than to analyze the 21st century’s greatest literary surprise: Fifty Shades of Grey.

From what I’ve heard, the Fifty Shades of Grey movie (although I haven’t watched it myself) is pretty bad. Not only that, but it supposedly removed a lot of the book’s more extreme content to be more palatable to the masses. The film directors took a “taboo” book, and removed the “taboo” parts to make a movie.

It seems that most people who read the book are doing it as rebellion against societal norms. Removing those parts from the movie is simply discarding the allure of the book. Now it becomes a low-quality movie based off a low-quality plot.

Fifty Shades is not really well-written, but it has been a pretty successful book. The movie cannot share equal claim to that success. That means that people simply don’t like its plot. So, logically, people could not have liked the plot of Fifty Shades either.

What makes people like literature? Fifty Shades demonstrates that it’s not necessarily the quality of the writing—E. L. James, though no doubt a clever and imaginative writer, is certainly no Shakespeare.

That is not to say, however, that Fifty Shades could have survived without decent writing. There are in fact many examples of good writing in the book:

Behind the solid sandstone desk, a very attractive, groomed, blonde young woman smiles pleasantly at me. She’s wearing the sharpest charcoal suit jacket and white shirt I have ever seen. She looks immaculate.

In merely three sentences James has described the essence of this setting. The words she chooses are precise and have exactly the right connotations. Throughout the novel, many such quality descriptions are present. Unfortunately, these descriptions are often intermixed with ad-hoc and seemingly awkward dialogue. (“Oh my…”)

I argue that it is indeed the combination of its taboo topic and the good parts of the writing that makes Fifty Shades so popular. This is contrary to what seems to be public opinion. Common sense dictates that a taboo book will be unpopular, and that even a bit of bad writing will cancel out the good, and of course that the plot is what matters most. Based on these heuristics there is not one iota of justification for Fifty Shades‘ success.

But there is no denying what is fact—that the book has been wildly successful. The only reasonable conclusion is that the common sense is in error. “Likeable” literature is not necessarily “good” literature. Fifty Shades will never, ever be a literary classic. English students will not in a million years look to Fifty Shades for inspiration. No aspiring author would even dare to crib from this book. But despite all this, we like it.

A Procedural Novel Generator

I have embarked on a weeks-long journey to demonstrate computational creativity. I will start with a procedural novel generator. The goal of this project is to generate a world, characters, and a plot, and then express that plot as a novel.

I anticipate that this will be a large project, so I’ve brought in machinery from LIJN (a past project of mine) to get it started. So far, piggybacking on LIJN’s sentence tokenizer, I’ve gotten done a rudimentary way for the computer to “write”:

story = [syntax.Word('this'),
         syntax.Word('is'),
         syntax.Word('a'),
         syntax.Word('test'),
         syntax.Word('story'),
         syntax.COMMA,
         syntax.Word('set'),
         syntax.Word('in'),
         syntax.Word('the'),
         syntax.Word('world'),
         syntax.Word('of'),
         syntax.ProperWord(self.setting.name),
         syntax.PERIOD,
         syntax.NEXT_PARAGRAPH,
         syntax.Word('it'),
         syntax.Word('is'),
         syntax.Word('a'),
         syntax.Word('demonstration'),
         syntax.Word('of'),
         syntax.Word('what'),
         syntax.Word('is'),
         syntax.Word('to'),
         syntax.Word('come'),
         syntax.PERIOD
         ]

…which when reassembled will produce this not-so-interesting output:

This is a test story, set in the world of Cinova.

It is a demonstration of what is to come.

The name of the world is generated with a Markov chain algorithm also conveniently already included in LIJN.

I hope to get some more done on this in the following weeks and post updates when there’s something interesting.

You can read Part 2 here.

Why is Valentine’s Day one day long?

Why is Valentine’s Day only one day long? Would that not imply that there is one day for Love? That Love is reserved for a special day, and so on other “unspecial” days, Love is out of season? Does its presence give authorization to withhold Love on other days?

Is overall affection enhanced or diminished by the presence of one Valentine’s Day and 354 days that are not Valentine’s Day? Is Valentine’s Day a prison for Love, confining it from the rest of the year? What has Love done to deserve such confinement? What crimes has affection committed to necessitate such isolation?

Is perhaps this contrary to the ideal of unconditional love, if love is conditional to the day of the year? Who really benefits from Valentine’s Day—the common man, or business owners?

Perhaps next year, consider to abolish celebration of the Feast of Saint Valentine. Consider whether it is really worth it. Consider critically its benefits and drawbacks.

Tradition is prone to error. It is our responsibility as humans to question tradition. Make an informed decision about which traditions are truly beneficial and which traditions are mistakes.

Do not fear to be alone—change needs a leader. Be one. Discuss the merits of Valentine’s Day with your other; keep a level head and avoid falling victim to the bias of tradition.

“It’s always been this way.” is not an argument for preservation. Who really benefits? What is harmed? Is increasing the wealth of the 1% really worth the imprisonment of Love, the confinement of affection?