Chris Crawford on Interactive Storytelling (48 page)

 

The trick is to use an all-purpose character I call “Fate” to handle these events. Thus, the sentence becomes “Fate ripened the fruit.” Actually, I go even further in my engine: I require that every Event take an Actor for Subject and an Actor for DirObject. This forces the peculiar sentence: “Fate ripened Fate the fruit.” In other words, Fate does this verb to itself, and the fruit is an indirect object. The principle is simple: Subjects and DirObjects must be Actors. It’s occasionally clumsy, as in this example, but then again, how much drama is there in ripening fruit?

 

I have more to say about Fate in
Chapter 18
, “The Erasmatron.”

 

Getting back to the sentence structure, expand it one step:

 

Subject Verb DirObject

 

This looks more like a regular sentence. It enables you to handle a broad range of events, such as:

 

Joe greeted Tom.

 

Tammy missed Jeanette.

 

Mordred laughed at Lancelot.

 

Just a minute, here! In the third sentence, Lancelot is not the direct object; he’s the object of the preposition “at.”

 

Grammatically, you’re correct. But is there any functional difference between “Mordred laughed at Lancelot” and “Mordred derided Lancelot”? Aside from some slight differences in nuance between the two verbs, the two sentences say the same thing. Mordred did something to Lancelot. For storyworld purposes, the Verb of the sentence is “laughed at.”

 

But that’s not the way English grammar works!

 

True, and if you hew to the hard lines set down by the grammarians, you’ll never get anywhere. The fact is, language is immensely complex, and you can’t model all that complexity. What’s needed is a gross but functional simplification of the structure of a sentence. You can’t afford to compute with real sentences, so you need Neanderthal sentences that primitive algorithms can handle. As part of this, you’ll be simplifying away much of the richness of language. However, reducing “laughed at” to a single verb is fairly straightforward; it doesn’t wreak havoc with language. Besides, how do you know that a hundred years from now, people won’t have contracted it down to “laftat”?

 

But what about “John gave Mary the book”?

 

You could use an indirect object to handle this problem, but lots of other bits and pieces can get tacked onto the basic Subject-Verb-DirObject sentence structure. Here are some examples:

 

Fred met Jane in the parking lot.

 

Veronica kissed Toby in front of Anthony.

 

George traded his decoder ring to Meredith for her marble.

 

Or how about this monster:

 

Jeanette warned Mika not to be around when Paul arrived.

 

And there are tons of other even messier sentences you can imagine. You can dismiss many of the complex constructions on the grounds that you couldn’t compute with them anyway. At the same time, however, you have to admit that the simple Subject-Verb-DirectObject structure is inadequate. So how do you expand it neatly?

 
Chomskian, or Recursive, Data Structures
 

The common solution to the problem of not having the complex constructions you need is to structure sentences in the manner always used in computational linguistics. Each sentence consists of a
noun phrase
and a
verb phrase
. A phrase is a compound structure containing a main word and any modifying phrases. A noun phrase is composed of a noun plus phrases that modify it; a verb phrase is composed of a verb plus phrases that modify it. In many cases, there are no additional modifying phrases, but each modifying phrase can contain its own phrases. Thus, the Chomskian sentence is a
recursive data structure
, containing phrases nested inside phrases.

 

This data structure makes any programmer’s mouth water. Recursive data structures are elegant, powerful, and frigorific. All computational linguistics use such data structures, but are they useful for interactive storytelling? I think not. They’re too messy. Every one of those nested phrases has to be interpreted within the context of the sentence. Now, programmers in computational linguistics have succeeded in building programs that accomplish this task, so it isn’t technically impossible; indeed, it really isn’t that difficult. The problem lies in applying all those nested meanings in a dramatically significant fashion. Sure, you can write a program that can figure out something like “The man with the broken arm gave the dog from around the corner a bone that he had purchased from the Armenian butcher that morning.” But figuring out the semantic relationships between all those words is considerably less difficult than figuring out the impact each word has on the event’s dramatic significance. Someday, storybuilders will be able to handle this kind of sentence. For now, you have to crawl before you can walk, and I advise you to stick with simpler sentence data structures.

Other books

Girl Three by Tracy March
Deadside in Bug City by Randy Chandler
La agonía y el éxtasis by Irving Stone
Aunt Dimity's Good Deed by Nancy Atherton
Super Sad True Love Story by Gary Shteyngart
Hello, Hollywood! by Janice Thompson
Little Black Girl Lost by Keith Lee Johnson
Tainted Blood by Martin Sharlow


readsbookonline.com Copyright 2016 - 2024