Read Chris Crawford on Interactive Storytelling Online
Authors: Chris Crawford
Here is an expansion of one of the categories:
Because so many folktales contain common motifs, this taxonomy doesn’t have a satisfying cleanness of separation. Thompson therefore augmented the index of folktale types with the much larger
The Aarne-Thompson Index of Folktale Motifs
. Here’s the highest level of the index:
A. Mythological Motifs
B. Animals
C. Tabu
D. Magic
E. The Dead
F. Marvels
G. Ogres
H. Tests
I. Unused
J. The Wise and the Foolish
K. Deceptions
L. Reversal of Fortune
M. Ordaining the Future
N. Chance and Fate
O. Unused
P. Society
Q. Rewards and Punishments
R. Captives and Fugitives
S. Unnatural Cruelty
T. Sex
U. Unused
V. Religion
W. Traits of Character
X. Humor
Y. Unused
Z. Miscellaneous Groups of Motifs
Here is an expansion of one of the categories:
These extracts represent a tiny fraction of the Aarne-Thompson material. The entire dataset is available from the University of Indiana on CD-ROM
1
.
This huge dataset could conceivably be put to use for interactive storytelling. The basic approach would be to stitch together the various motifs in response to player input, assembling a folktale in tinkertoy-like fashion. The algorithms to accomplish this task would rely on some sort of connectivity data associated with each motif.
There are two ways to provide basic connectivity information. The simplest and most direct would be a matrix of boolean values, one column and row for each motif in the catalogue, as shown in
Figure 9.1
.
FIGURE 9.1:
A matrix of boolean connection values.
Because there are thousands of motifs, this matrix would contain millions of cells. Each cell would be initialized to “False,” meaning that the motif in Column X can’t be followed by the motif in Row Y. The storybuilder would then set to “True” those cells that constitute reasonable sequences of motifs. This job would be huge, however, and leave many questions unanswered. For example, a boolean value couldn’t address the many contextual circumstances that might be required to make a sequence reasonable. For example, “break down door and enter castle”
could reasonably be followed by “free the princess” only if some preceding motif had made the princess a captive. This method creates so many complexities that the underlying system of using a matrix of boolean values is called into question.
A second way to provide connectivity data is with a large set of boolean flags associated with each motif. Each flag specifies a particular condition that must be met for the motif to be applied. As the story develops, it builds a kind of “lock” consisting of the pattern of flags that represent the story so far. It then searches for a motif possessing a “key” that fits the lock. Both locks and keys would actually have three states: True, False, and Don’t Care. This third state would match either of the first two.
Although this method is clever, implementing it would require a great deal of labor. The storybuilder would need to create hundreds of flags representing a wide range of situations, and each time a new flag was created, every single motif would have to have that flag appended to its existing key. Moreover, the calculation of some keys might be a complex procedure. For example, suppose that one of the motifs is “pursuit by rolling head”. To link this motif with, say, “the clever horse” motif, the storybuilder must establish that “pursuit by rolling head” creates a threatening situation requiring escape and that “the clever horse” can provide the means of escape. This linking is possible, but the details of implementing complex situational analysis will be time-consuming.
Despite these problems, the Aarne-Thompson catalogues represent huge sources of information about the most fundamental of all types of stories, the folktale. They provide the raw material for a data-driven storytelling engine—if only a clever designer can figure out how to organize that data into computable form.
In the early twentieth century, a Russian scholar named Vladimir Propp analyzed 100 Russian folktales and figured out that these folktales contained many common elements, which he called
universal functions
. He designed a notation for representing these universal functions and published his work as
The Morphology of the Folktale
2
. His list of universal functions runs as follows:
This notation can then be used to present almost any of the 100 Russian fairy tales in the sample (and a great many more) in codified form. For example, one of the simpler tales presented in the book is, in shorthand form:
131. A tsar, three daughters. The daughters go walking, overstay in the garden. A dragon kidnaps them. A call for aid. Quest of three heroes. Three battles with the dragon, rescue of the maidens. Return, reward
.
And in codified form:
βδABC HIK W
Propp’s system is considerably more complex than this; there are numbered variations on many of these functions, and some tales require double-threaded codings.
I suspect a useful system could be built based on Propp’s work, but considerable modification would be required. The crucial issue concerns the grammar that connects his functions in sequence. Although he does discuss a number of rules
for connecting functions into a sequence, Propp doesn’t provide a full grammar. As you dig deeper into the details of his system, you find more complications requiring special treatment. Propp achieves generality only at the higher levels of abstraction in the storytelling process; manifesting those abstractions into specific story components lies out of reach of his system. Nevertheless, like the Aarne-Thompson catalogue, Propp’s system could form the basis for a storytelling engine. It’s not as large as the Aarne-Thompson catalogue, but this factor should reduce the size of the problem. Perhaps a “Russian folktale storytelling engine” would be the ideal precursor to a full-blown Aarne-Thompson storytelling engine.