Introduction

Many of the narrative forms that feature highly for their entertainment value in Western culture (Shakespearean comedies, Hollywood movies, TV series, and nineteenth century novels) share the characteristic of involving a number of plot lines that combine to give them interest. Many of these established forms rely on mechanisms for artfully combining several narrative threads into a single linear sequence, so that audiences can easily follow the overall story.

Given the relative importance of this mechanism for so much of our ability to communicate, it is surprising to find how little research has focused on understanding the computational principles that govern it.

The present paper sets out to solve the problem of how several different plot lines, each one of them completes in its own sense, can be combined into a single linear sequence that works reasonably well as a plot. An example of the type of combination desired is the popular solution for a Hollywood plot that combines an impending catastrophe that threatens to destroy the world, the attempts of several characters to survive the coming cataclysm, insights into the personal love interests of some of these characters, and often the recovery of damaged family relations between them.Footnote 1

The paper relies on an existing storytelling system capable of generating single plots [8] to construct stories by combining more than one plot line. For the purpose of exploring the possible ways of creating stories in such way, an analysis on several plot combination strategies has been performed, considering four techniques that support the weaving of previously generated plots to create a single story line.

The paper begins with a revision of the literary historical background and some previous works on this subject in automatic story generation. Section 2 describes how existing storytelling systems address the issue under consideration. Section 3 provides a brief explanation of the story representation aspects relevant to understand the proposed solution. Section 4 describes the operation of the story generation system and the algorithmic aspects of the techniques applied to weave subplots together, and presents some examples of stories generated by means of these algorithms. Section  5 outlines a qualitative evaluation of a small set of generated stories. Section 6 discusses insights from the formative evaluation, open issues, outlines some promising avenues of future work, and analyzes the relation to previous work. Section 7 draws conclusions from the material presented and highlights the most relevant findings.

Related Work

This section focuses on reviewing related work that is relevant to the purpose of this research. It starts by presenting some relevant antecedents in automatic storytelling and then proceeds to review research efforts that have focused specifically on multiple-plot generation.

The relation of these antecedents to the work presented in the paper is discussed in Sect. 6.3, to allow reference to the material presented in the paper.

Relevant Antecedents in Automatic Storytelling

The similarities between a story and a plan (both have an initial and a final state, and a set of causally linked steps that drive from one to the other) have led to the appearance of many efforts to address automatic storytelling by means of AI planning solutions [4]. Such solutions are based on the concept of a planning operator, a unit of representation that represents an action, which states explicitly a set of preconditions of the action to happen and a set of postconditions that hold when it has happened. Planners rely on these units to build chains of causally related action from an initial state to a goal. A pioneer in this line was TALE-SPIN [22], one of the first story generators, that wrote short stories about the inhabitants of a forest. Although the concept of plot was not explicitly mentioned in the reports on TALE-SPIN, the nature of its underlying representation of stories as plans results in an implicit structure to the stories, all generally based on the pursuit of a single specific goal by the protagonist character. They, therefore, were restricted to single-plot stories. An important improvement in automatic storytelling came about with Author [11], a storytelling system also based on planning but which considered not only character goals but also an additional level of authorial goals. Whereas the goals of characters tend to draw a straight line through a story, from initial situation to successful outcome, the goals of authors tend to focus on inserting obstacles in the path of the protagonist—to make the story interesting to the reader. Sometimes, these obstacles take the form of rival characters with conflicting goals, which sometimes may lead to the insertion of additional plot lines. These initial systems attempted to generate closed stories, with a clear beginning and a clear end. A different development was introduced in Universe [20], a system that generated scripts for a TV soap opera by focusing on the interactions between characters. By construction, Universe operated on an open-ended story, adding episodes on each run but always leaving the story open to be continued in subsequent episodes. This required an approach to generation based on a large cast of characters and the systematic introduction of complications affecting some of these characters to trigger the events of the new episode. As a result, the outputs of Universe over a sequence of runs—a set of episodes—may convey the impression of a multi-plot story. However, the generation processes employed at each point did not explicitly address the management of multiple plots, and it had no specific mechanisms for handling the interleaving of multiple-plot lines. The explicit consideration of the intentions of characters, to ensure that the actions of the characters in the resulting stories be believable, was the goal of the Fabulist [28] system, which presented a whole architecture for automatic story generation and presentation. This system combines both the author interests and the intentionality of the characters. The fact that different characters have different intentions, and that the system manages all of them successfully implies that many of the ingredients for the handling of multi-plot stories may already have been in place in this system, but the specific aspects of plot interweaving were not addressed in the published reports of it.

The advent of grammars as representational tools to capture the structure of complex symbolic sequences triggered interest in the concept of story grammars [29, 33]. A number of automatic storytellers attempted to exploit this concept. GESTER, GEnerating STories from Epic Rules, [24] was a rule-based story generation system that managed information about story structure in the form of a simplified version of a narrative grammar that captured the possible events and actors of the epic subgenre. A more elaborate example was Brutus [2], a system that generated short stories about betrayal. It used a very thorough knowledge model for representing the concept and implications of betrayal. It also provided a grammar-based generation model and a literary beautifier, which allowed it to generate high-quality stories, providing texts that could have been written by humans. In both of these systems, the story grammars involved constitute the formal representation of the structure of stories that such systems rely on. In that sense, these grammars inherently capture the structural complexity of the subset of the genre they represent. Where this subset contains examples of multi-plot stories, the grammar will capture the essence of this feature, and it will allow the generation of stories of this type. However, such representations of multi-plot occurrences in a grammar are likely to be instances of one possible interleaving of plots rather than procedures applicable in general to interweaving problems.

A third possible approach to automatic storytelling is to follow theoretical models of how humans address the task. This approach was followed by MEXICA [25], a storytelling system that generated mythological stories about the Mexicas, the early inhabitants of Mexico. MEXICA was based on the engagement and reflection model of the writing task [30]. It included a reading module capable of processing a corpus of previous stories from which it obtained the knowledge structures it relied upon to generate new stories. The operation of the system is complex, but essentially relied on building for each prior story an interpretation in terms of the evolution of emotions of and tensions between characters, and abstracting from these representations a set of units of plot-building blocks that encoded the likelihood of two events occurring one in the context of the other in a story. MEXICA did not have an explicit concept of plot or plot line. The nature of its operation allowed for chains of events involving different characters to be combined into a story, which resulted in the possibility of multiple-plot line stories of a simple type to appear among its outputs. However, the system as such did not address any of the challenges of explicitly handling and interweaving multiple plots.

Multiple-Plot Generation in Automatic Story Generation

There is not a long record of multiple-plot generation and combination in automatic story generation.

One of the remarkable works in this respect is the plot weaving algorithm proposed by Fay [12]. Fay’s system relies on a corpus of stories written in simple English that it can read and parse into a set of character models and a set of narrative threads for the various characters. Based on this material, the system can be asked to generate stories combining characters of a given type. It operates by finding the character models best matching the given types, retrieving narrative threads associated with the corpus with those models, and finding the best combination of those narrative threads into a single story. Fay’s system reads stories using the Genesis story understanding system [36]. The narrative threads for the chosen characters are woven together using an algorithm that makes sure that characters’ plots are compatible and takes care of building a consistent timeline for all of the plot elements of the story. The actual procedure is computationally difficult, because it entails selecting the best set of bindings for the main characters in the story request to generic entities appearing as secondary characters in threads for other characters. These bindings are then used to determine the order in which the elements from each thread are combined into a single linear story.

Porteous et al. [26] set out to address the challenge of constructing stories with multiple interleaved subplots—as featured regularly in serial dramas and soaps—in the context of an interactive storytelling system. Their system relies on a plan-based approach to multi-plot narrative generation which successfully generates narratives conforming to different input parameters that specify aspects such as the number of subplots to be interleaved and the relative time spent on presentation of each subplot. In contrast with Fay’s solution, which operated over a set of already determined plots obtained from prior stories, this solution constructs the various subplots it considers incrementally at the time of interweaving them. In this approach, a subplot is considered to be a sequence of segments of various types centred around particular character: usually, an introduction followed by a variable number of pairs of obstruction and resolution, with instances of exposition—used to provide additional information to the audience at need—optionally interspersed between them. A multi-plot story is a sequence of such segments in which adjacent segments are from different subplots. This shows some affinity with Fay’s definition of plot, in as much as it is also focalised on a particular character, but it includes a significantly higher number of structural restrictions at the narrative level. The system operates by starting from a set of goals for each subplot to consider, and then incrementally building and presenting segments for the subplots, switching from one to another under the guidance of the input parameters.

The Raconteur system [15] focuses on the slightly different problem of generating a story to match a given set of observed facts. The facts to consider come as a set of time-stamped predicates describing the movements of pieces in a chess game. The system builds a set of narrative threads, each grouping the predicates affecting a given piece (either because it is involved in the action or the action takes place within its range of perception—within squares of the board sufficiently close to it). Stories are then built by: (1) selecting a set of pieces, (2) selecting particular spans of their narrative threads, and (3) weaving these spans together into a single linear sequence. The weaving is done by taking into consideration relative chronological order, physical proximity, co-occurrence of pieces across threads, and the nature of the actions captured in the predicates.

The StoryFire system [17] introduces a refinement into the process of thread weaving by considering explicitly the concept of plot. A plot in this context is a sequence of plot elements, each describing an event relevant to the structure of the story, and a set of roles that characters play in the event. Over a setup similar to that of the Raconteur system, spans of narrative threads for particular pieces are selected by finding optimised alignments of parts of the thread with plots from a database. Then, the interweaving of threads is informed by considerations taken from the plots aligned with them at potential points for switching threads.

The PlotAssembler system [18] addresses the exploration of a large search space of acceptable plots by combining small spans of narrative discourse that do not necessarily appear contiguously in the sequence of a story. An example of this would be the kidnapping of a character at the start of a story that is related to the release of that character achieved towards the end of the story. Using a small set of such units, the process allows the construction of many different stories of arbitrary complexity, always satisfying constraints of coherence and providing a sense of resolution. By the nature of these segments—as bridges that span from an element at one point of the story to others not close to them—the construction procedure required for this process involves decisions on how to weave these segments together. The PlotAssembler system addresses this problem via a corpus-based solution, whereby probabilities of elements of different segments occurring together in a story linked by the presence of particular characters are mined from a corpus of prior stories.

Story Representation Aspects Relevant to the Plot Weaving Procedure

The purpose of this section is to establish the necessary context about those aspects used in the proposed solution, to enable a better understanding of the way the different plot combination strategies have been implemented.

The present paper focuses on the construction of plot, and does not address the details concerning the development of scenes nor the description of scenes as text. With respect to the traditional pipeline architecture for natural language generation systems [27], the present paper addresses issues of content planning, and it does not address aspects of sentence planning or surface realization.

This implies that the representations and the outputs discussed here should not be appraised in terms of the linguistic quality of the textual descriptions. Such descriptions are only provided to give an idea of the type of concepts that are being considered. In considering the quality of any given story in terms of the efforts reported in this paper, one should focus on their structural features from a narrative point of view, which are the only aspects that are being taken into account by the decision processes proposed. For details on how the specific procedures for the remaining stages of the pipeline operate for the underlying storytelling system, interested readers are referred to [7,8,9].

Key Definitions

This section provides a set of definitions of the key common concepts that will be referenced throughout the paper.

A story is the content of a narration. This statement surely entails a number of progressively more detailed stages ending up in a text that tells the story, but for the purposes of this paper, the relevant information about a story is represented by means of a structure which includes two key elements: what happens—the plot and the setting in which the narrated action occurs—the story space [5]. The representation of a story is a hierarchical structure containing different levels of detail such as the plot as a sequence of scenes and the scene as a sequence of actions, as shown in Fig. 1. In addition to this visual summary, a complete example of a story is presented in Table 1.

Fig. 1
figure 1

The conceptual representation of a story

Although the underlying storytelling system includes details on all of the concepts shown in Fig. 1, only the subset of those concepts that is relevant to the material in the present paper is described here. Additionally, for those concepts considered, only the details relevant to the combination of plots are described.

The characters represent the human persons, or other beings in certain cases, that interact in the story. The representation of a character in a complete storytelling system must consider physical, psychological, social, and cognitive-related characteristics, but the only feature that is relevant to plot combination at the level carried out in the paper is the role that each character plays in the story, expressed in terms of specific roles it plays in the subplots under consideration.

The plot is the basic structure of any story. For the purposes of the present paper, a plot is considered to be a collection of scenes arranged according to a structure which represents both the temporal ordering, and the causal relations between the actions performed and the things that happen in these scenes [5]. Once multi-plot stories are considered, the plot of a story will be a combination of subplots, interweaving the scenes from these subplots into a single linear sequence of scenes.

Table 1 A sample single-plot story showing its main elements

A scene is a unit of action that takes place in a particular location during a period of time. For the purposes of the present paper, a scene is composed by a sequence of actions performed by the characters in a specific location [5].

Every scene is accompanied by a combination of pre- and postconditions, which represent, respectively, changes in the global state of the story space before and after the scene happens. These conditions are expressed as a set of assertions related to the diverse characters and objects in the space.

Table 2 Example of a scene with preconditions and postconditions indicated

To illustrate how these pre- and postconditions have been considered for the purpose of this research, a sample scene is shown in Table  2 (corresponding to scene 3 from the story presented in Table 1). In this scene, the character Anne steals a jewel and blames Samuel. The preconditions of the scene allow for such events to happen and the postconditions reflect their results.

A plot template is an abstract description of an internally coherent unit of plot material that represents a potential subplot and which can be used as a building block for more elaborate plots. It basically consists of an arrangement of generic scenes in which a list of characters participate in certain roles—relevant to that particular subplot—by performing certain types of actions. The roles and the types of actions they must perform constitute a set of constraints that the generated plot must meet. Table  3 shows an example of plot template that has led to generate a story such as the one summarised in Table  1.

Table 3 “The Destructive Outsider” story plot template

Although it has obvious similarities to a plot, a plot template is conceptually different from a plot. A plot template specifies information that needs to hold at different points in a story for the plot template to be identified as being relevant to the structure of the story. The information in a plot template establishes a set of generic scenes that need to be present, and a relative order between them, but it is generally agnostic as to what else may happen in the story in between the scenes captured in the plot template. This is what allows different plot templates to be woven together into stories. Once the structure of the plot for the story is fixed in terms of which plot templates take part in it and how they are woven together, the scenes provided by these plot templates for a given story—which correspond to subplots for the story—may also need to be “fleshed” out with details designed to give cohesion to the story as a whole. This process is important to the quality of the final story, but it is not addressed in the present paper due to constraints on space. However, once the structure of the story has been established by a finished plot, the process of fleshing out these scenes for a multi-plot story is no different from that for a single plot. Interested readers can find more details on this process in [8].

The concept of role is strongly linked to the characters and the plot generation process. For the purposes of the present paper, a role is defined as the function played by one or more characters in a particular subplot of a story. This function is necessary to determine the type of actions that this character should or can perform throughout the story.

The importance of the role is essential during the Plot Generation stage, because the fleshing out of a template takes as input a list of roles and information about the type of actions that the characters must perform at each scene. The roles condition the behaviour of the characters. There are roles that are optional. This means that it is possible that no character plays it in the generated plot. Typically, an optional role will relate to a secondary character in the story. Table 1 shows an example of a story characters and their corresponding roles. A detailed description of the roles participating in this story can be found in Table 3.

Constructing Stories by Combining Plots

The process of story generation considered in this paper involves the tasks of plot generation and plot weaving. These two tasks together constitute the content planning stage of the story construction process. To achieve a full story as a text in natural language, additional stages would be required that are not relevant for the goals of the present paper (Scene Generation, which corresponds to low-level detailed determination of scene content and detailed action planning, and NLG, which corresponds to Natural Language Generation). Readers interested in these additional stages of the finer details of knowledge representation as featured in the underlying storytelling system are referred to our prior work on the subject [5, 10].

Plot Generation Process

For the purposes of the present paper, plots are considered as inputs to be combined into multi-plot stories. Such inputs are constructed by a Plot Generator. The Plot Generator is a template-based engine which produces the plots from a subset of the cinematographic basic plots compiled by Balló [1], represented as plot templates. It uses a inner template repository for managing the plot template catalogue. The examples presented in the paper have been built with a restricted set of plots that are shown in Appendix  9. The full system operates with a larger set of templates.

Once a specific template has been chosen, the Plot Generator generates a basic draft of a plot by instantiating the roles in the templates with characters. This instantiates the characters in the scenes in the plot, which is now ready to be used as a potential subplot in a further weaving stage. This process of character instantiation relies on knowledge about the context in which the story will be set. The detail of every scene will be completed later by the Scene Generator component. These additional processes are beyond the scope of the paper. For the purposes of the present paper, each such draft for a subplot can be considered to contain a list of the characters mapped with the roles required by the template and the sequence of scenes involved.

Plot Weaving

The construction of more complex stories can be achieved by combining two or more simple plots as subplots for a larger story. For simplicity, the examples in this paper consider only combinations of simple plots consisting of instantiations of a single-plot template, but in general terms, the plots to be combined can themselves be complex.

A Plot Weaver module receives as inputs a set of plots to be combined and the strategy to apply for combining them. The strategies available to the system in its present state are four (Random, Alternating Juxtaposition, Communicating Vessels, and Chinese Boxes) and they are described in detail in Sect.  4.

Two concepts need to be explained to understand the basics of plot weaving: the difference between weaving and merging scenes, and the mechanism for precondition checking.

Scene Weaving vs. Scene Merging

There are two possible ways of combining scenes from different plots.

One is to create a sequence of scenes where each scene of the sequence originally appeared as a scene in one of the constituent plots. Scenes from the different plots are related in the combined plot by reason of either their relative order in the sequence or any bindings established between the characters that appear in them that occur during the integration. This is what we call scene weaving, and it is the procedure followed in the present paper.

The other possible way of combining scenes is to consider the possibility of merging particular scenes from one plot with scenes from the other plot. This creates new scenes that were not in either of the original plots, but which share characteristics of scenes from both. This is what we call scene merging, and it is not addressed in the version discussed in the present paper.

Precondition Satisfaction

Combining two plots involves deciding when a scene S1 from plot A can be placed in the discourse of a story directly after a scene S2 from plot B. The important criterion here is whether the appearance of the scenes in that order within a story is likely to give rise to inconsistencies. This is achieved by a checking of preconditions across scenes that are likely to end as neighbours in a story after a combination. This check of preconditions is ultimately based on a level of representation that is not covered by the material included in the paper, as it pertains to the tasks of enrichment of the details of the story that are associated with levels beyond content planning. For completeness, a brief description of the mechanics involved is given in this section.

Table 4 Potential match between scene S from plot A and scene B from plot B (pre- and postconditions shown in box in each case)
Table 5 Potential match between scenes S and \(\hbox {S}^{*}\) from plot A (pre- and postconditions shown in box in each case)

The examples given in Tables 4 and  5 show the case where an inconsistency arises between the preconditions of scene T from plot B and scene S from plot A (Table 4) and the trivial case where there are no inconsistencies between the preconditions of scene S\(^{*}\) from plot A and preceding scene S from plot A. The inconsistencies detected in the first case are:

  • Mary is in the garden vs. Mary is in the house.

  • Mary is dead vs. Mary loves Benson.

An Exploration of Strategies for Weaving Plot Lines

This section presents a catalogue of strategies for plot interweaving that were analyzed for this research. This is not supposed to be an exhaustive list of all possible approaches, but rather a concise analysis of those algorithms that could easily be adapted to a computational context and applied for the purpose of this research. The strategies proposed for weaving plots are applicable to sets of plots of any cardinality, starting from a minimum of two plots.

Weaving Strategies

Four strategies for weaving subplots have been considered in this paper and brief descriptions of each one of them are provided below (interested readers can find the pseudocode for each of the algorithms in Appendix  10):

  • Random Weaving: The next plot from which to take the next scene is selected at random and the next scene available in it is added to the draft, with no checking of pre-/postconditions for consistency.

  • Alternating Juxtaposed Weaving: The plots to combine are processed sequentially in a cycle. At each iteration, a scene is taken from each one of them and inserted into the draft with no checking of pre-/postconditions for consistency. Results in systematic ordered alternation between the scenes from different plots.

  • Communicating Vessel Weaving: The plots to combine are processed sequentially in a cycle, at each point adding to the draft a scene from the next plot if it is compatible with the draft so far in terms of precondition satisfaction. Priority is given to inserting scenes from a different plot, but if no consistent option is found, the next scene from the same plot is added. Results in a weaving of consistent fragments of different sizes of the plots to be combined.

  • Chinese Boxes Weaving: One plot is selected initially as main plot and added to the ongoing draft. The remaining plots to combine are processed sequentially. For each additional plot, the algorithm attempts to fit it between two scenes of the draft, based on whether the preconditions of the first scene and the postconditions of the last scene of the plot to be inserted are compatible with the postconditions of the previous scene and the preconditions of the next scene of the draft, respectively. Essentially, it checks if the gap between two scenes in the draft is suitable for inserting a whole secondary plot. This technique may lead to any number of levels of nesting of the subplots of a story, restricted only by the number of available subplots (and precondition satisfaction constraints).

The strategies for plot weaving are graphically summarised graphically in Fig. 2.

Fig. 2
figure 2

Graphical summary of the operation of the different plot weaving strategies

The first two strategies are introduced as baselines for measuring the effectiveness of the other plot weaving strategies. The last two strategies are documented literary techniques which have been applied for centuries in the literature [23].

The technique of the Communicating Vessels [23] is based on constructing a story by alternating at least two differentiated parallel plot lines. An example of this technique can be seen in Madame Bovary [13], which contains a chapter that alternates two apparently disconnected plot lines. The only commonality between them is the temporal context in which the actions and happenings they contain are occurring. The resulting effect is a contamination between the two plot lines that, taken in isolation, would produce a different understanding in the reader. In other words, when two alternating story passages are interwoven together, proximity and alternation generate mutual influence. This influence can be applied to the tone, the tension, or the atmosphere that every story transmits to the other.

The Frame Story technique—or the Chinese Boxes technique as Menéndez names it [23]—relies on the inclusion of nested stories inside a larger one. Every nested story can be related to one or several characters of the main plot line, or even consist of a separate one with the purpose of explaining some happenings of the main story. This is a quite common literary technique that has been applied in great works of literature such as The Arabian Nights [34] and Don Quixote [3]. The point of the secondary story is to serve as a companion piece to another story, within this one, where an introductory or main narrative sets the stage for a more emphasized second narrative or for a set of shorter stories. This arrangement leads the reading from a first story to one or more stories within it. It can also serve to inform the readers about key aspects of the narrative that would otherwise be difficult to understand.

Examples of Interwoven Plot Stories

This section presents several examples of story generation by plot interweaving according to the discussed strategies.

Example with Two Plot Lines

Table 6 A sample story generated by combining two plots based on “The Destructive Outsider” and “Faust” by applying the “Communicating Vessels” strategy

Table 6 shows a sample story which combines two plots—one based on the “Destructive Outsider” template and one based on the “Faust” template—using the Communicating Vessels approach with shared characters. Details of the plot templates involved are given in Table 13 in appendix  9. The roles played by the characters in the various plots are shown in Table  7.

Table 7 Roles played by the character in the story in each of its subplots

This example shows the most complete form of combination that the current design can support. The two plot lines involved in the generation of the story contained a good number of shared compatible roles, so the outcome looks quite united. Scenes from the first plot perfectly alternate with the scenes from the second one. This is not necessarily the norm, as consideration of constraints on precondition satisfaction applied by this technique may result in longer spans of each plot being inserted into the draft as continuous subsequences (see, for instance, the discussion of Story 2 in Sect.  5.4).

Example with Three Plot Lines

Table 8 A sample story generated by combining three plots based on “Descent into the Underworld”, “Creation of artificial life”, and “Faust” by applying the “Chinese Boxes” strategy

Table 8 shows a sample story which combines three plots based on three different templates. Details of the plot templates employed can be found in Table 13 in Appendix 9. There is only one shared character, Hawa. The roles played by the characters in the various plots are shown in Table 9.

Table 9 Roles played by the character in the story in each of its subplots

Evaluation of Plot Weaving Strategies

The evaluation of story generators focused on content planning rather on generation of full-textual versions of the stories they construct presents well-known problems [14] due to a combination of features of these systems:

  • they focus on generating an abstract representation of the structure of the story, in which it is often the relations between the elements rather than the actual elements being presented that is the goal

  • the abstract representations are either difficult to read (if they focus on capturing the structure) or considerably removed from the information on which the system is focusing (if they are transcribed as readable text by ancillary processes distinct from the modules of the system performing the content planning)

  • the outputs of these processes, by virtue of having focused on particular aspects to the detriment of others, tend to appear inordinately clumsy to the untrained reader, who by default compares with his own experience of short stories or plot summaries

To complicate matters, the present paper addresses the construction of multi-plot stories, which by their nature tend to be longer than single-plot stories generated by other automated storytellers. Prior attempts to address this problem have resorted to the development of quality metrics on the structural features of the output [16]. However, there is a shortage of meaningful metrics for plot, associated with the current lack of consensus on the definition of the term (as explained in Sect. 2.1). Under the circumstances, a qualitative rather than quantitative pilot evaluation has been carried out for the outputs of the solution proposed in this paper.

A set of 10 stories has been produced with a combination of the described weaving strategies. The distribution of weaving strategies and plot combinations for these stories are described in Tables  10 and 11. The actual stories discussed are presented in Appendix  8.

Table 10 Distribution of the sample of stories for evaluation over the input parameters
Table 11 Reliance on specific plot templates for the stories evaluated

The analysis of system output presented in the remains of this section is intended as a formative rather than summative evaluation.

Juxtaposition Strategy

The plot for Story 1 (see Appendix 8) is generated by applying the juxtaposition strategy. This involves basically switching between plots at every scene, so that the sequence of scenes for the final story involves a continuous alternation between a scene from one subplot and a scene from the other. In this particular example, the approach works well, because both of the plot templates used (“Destructive Outsider” and “Faust”) involve a character that misbehaves but whose evil actions are resolved towards the end of the story. The combination works fine, because the same character (Walter) has been chosen as protagonist for both subplots, and their nature aligns reasonable well as the story progresses. If a different character had been chosen to hold the central role in one of the subplots combined in this fashion, the result may have been less successful. On the other hand, given the choice of having the same character as central to both subplots, a different weaving strategy might have run the risk of breaking the alignment between the two processes of progressive downfall, thereby leading to less successful combinations.

An important observation arising from this story is that, in some cases, two subplots that are similar in nature may align so well that the differences between them get blurred, especially if the same character is chosen as protagonist of each of them.

Random Strategy

The plots generated by means of random weaving (Stories 3 and 4 from Appendix 8) provide interesting examples of the different ways in which a random choice may impact the combination of two plots.

In story 3, Benson is the central character of a “Destructive Outsider” subplot and West is the central character in a “Creation of Artificial Life” subplot. The two subplots are combined at random, leading to an interesting distribution of the subplots over the whole of the story. The scenes of the “Destructive Outsider” subplot occupy the 1–2, 6–8, 10–11, and 13 spans of the story, and the scenes of the “Creation of Artificial Life” subplot occupy the 3–5, 9, and 12 spans of the story. This distribution is particularly successful, because it involves a leisured rhythm at the start of the story, where two or three scenes are devoted to introduce each subplot before moving onto the next. Subsequently, the rhythm of switching between subplots rises towards the end of the story. This happens to match well the nature of the subplots, which involve introductory descriptive scenes towards the beginning and more exciting events towards the end (revelation of the evil nature of Benson at 9, Benson being fired at 12, and Nemo’s death at 13). Although this is a serendipitous achievement, it points to interesting heuristics that might be derived from such observations.

In story 4, Lupin is the central character of a “Destructive Outsider” subplot and Job is the central character in a “Creation of Artificial Life” subplot. Lupin acts as connecting character by also being the creature that Job creates. This leads to another interesting alignment, because the Lupin character shares in both subplots an evil tendency that becomes resolved (in different ways) towards the end. This actually makes it very tricky to identify which scene corresponds to which plot without checking the underlying system representation. Scenes 10–12 all involve Lupin misbehaving in various ways, and 10 is from the first plot and 11 and 12 from the second. There is another revealing feature that arises from the random combination strategy: Lupin is shot by Alain and dies in scene 14, and then discovered elsewhere by Job and also shot in scene 15. This is a result of weaving scenes from two different plots without checking consistency issues between them.

Introducing Precondition Satisfaction: Chinese Boxes

The stories generated with the Chinese Boxes strategy are stories S6, S7, S9, and S10.

Story 6 has a significant parallelism with story 4 described above, in as much as it also Lupin as the central character of a “Destructive Outsider” subplot and as the creature that Hubert creates in a “Creation of Artificial Life” subplot. This similarity has been engineered to allow for discussion of the differences arising from the different weaving strategies employed. The Chinese Boxes strategy inserts one subplot as a continuous sequence embedded in the other. In this particular case, the “Creation of Artificial Life” subplot occupies the 3–9 subspan of the full story, with the “Destructive Outsider” subplot covering the 1–2 and 10–16 spans. This might have lead to another inconsistency (if Lupin had been killed at the end of the “Creation of Artificial Life” subplot in scene 9), but the consistency checking procedure forces a different solution to the duel between the creature and its maker, resulting in the death of Hubert.

Story 7 constitutes an example of the combination of three subplots, also using the Chinese Boxes strategy. This leads to a story in which May as protagonist of a “Faust” subplot (span 2–7), Peggy as protagonist of a “Benevolent Outsider” subplot (span 8–11), and Helen as protagonist of a “Destructive Outsider” subplot that acts as overarching setting for the other two. In this case, Helen acts as a connecting character, being helped by Peggy (the “Benevolent Outsider”) to overcome her monetary difficulties and by May to face her “Destructive Outsider” Adam. The resulting story can be read as a tale of the misadventures of Helen, who is helped on her way by Peggy and May who have their own interesting background stories. This example helps to show the potential advantages of the use of combinations of subplots to construct interesting stories. It is very probable that the use of the Chinese Boxes strategy is instrumental to convey the impression that two of the plots are secondary to the other.

Story 9 constitutes an example of the combination of three subplots using the Chinese Boxes strategy, but with poor results. It is based on the by now well-known story of Hubert as protagonist of a “Creation of Artificial Life” subplot (spanning 3–9) with Lupin, the creature created by Hubert in the first subplot doubling up as protagonist of a “Destructive Outsider” subplot that acts as overarching setting. The story is now extended with an additional “Benevolent Outsider” subplot featuring Jack. The insertion is not very felicitous, with the subplot for Jack appearing as span 10–17 of the complete story, with little or no connection to the rest of the subplots other than taking place in the same town and sharing some secondary characters with them. This is an example of how addition of extra subplots with no connection to the rest of the story may decrease the quality of the story.

Story 10 constitutes an example of the combination of three subplots, also using the Chinese Boxes strategy. This leads to a story in which Hubert is the protagonist of a “Creation of Artificial Life” subplot (spanning scenes 3–6 and 13–14) and also the protagonist of a “Faust” subplot that is embedded within it (span 7–12). Lupin, the creature created by Hubert in the first subplot, doubles up as protagonist of a “Destructive Outsider” subplot that acts as overarching setting for the other two. This example shows the result of nesting down to two levels. In this particular case, as already mentioned for some of the earlier examples, the alignment between subplots leads to a successful combination, with the character of Hubert combining the role of creator of unnatural creatures (in the “Creation of Artificial Life” subplot and of making pact with evil in the “Faust” subplot), meeting his deserved end at the end of the “Creation of Artificial Life” subplot (at the hands of the creature he created). There is a slightly less successful combination in the character of Lupin, which plays the role of evil character both in the “Creation of Artificial Life” subplot and the “Destructive Outsider” subplot. The alignment here is less felicitous, because it involves a mismatch: Lupin is introduced as a stranger arriving to town in scene 2 (behaving much like any human would), but then created from a wolf using magic by Hubert in scene 4 (and then taught to behave like a human in scene 5). This type of inconsistency arises in the current version of the system due to the fact that precondition satisfaction is only checked against the immediately neighbouring scene in each case, and, at the connection point, scene 3 (from the “Creation of Artificial Life” subplot) does not mention Lupin, and the inconsistency arises between scenes 2 and 4, which are separated by scene 3. This problem will be addressed in further work.

Using Precondition Satisfaction to Drive the Weaving: Communicating Vessels

The stories generated with the Communicating Vessels strategy are stories are S2, S5, and S8.

Story 2 uses the Communicating Vessels strategy to combine an instance of the “Benevolent Outsider” subplot with Ernest as the central character with an instance of the “Creation of Artificial Life” subplot that has Alexander as main character. As the Communicating Vessels strategy combines elements from the two plots at different rhythms, the spans covered by each subplot are variable in their distribution: spans 1–5, 7–8, and 12 for the “Creation of Artificial Life” subplot and spans 6 and 9–11 for the “Benevolent Outsider” subplot. In this case, the “Benevolent Outsider” subplot acts as a secondary plot, with Ernest helping Alexander solve the problem presented by the creature he has created. The scenes for the subplot are inserted reasonably among those for the main plot, and there appear to be no obvious inconsistencies.

Story 5 combines Benson as the “Destructive Outsider” with West’s effort at “Creation of Artificial Life”. In this case, Mary acts as the connecting character, featuring as victim of the villains in both subplots, Benson as the “Destructive Outsider” and Nemo as the creature created by West. The distribution of spans is 2, 4–5, and 7–8 for the “Destructive Outsider” and 1, 3, 6, and 9–12 for the “Creation of Artificial Life” subplot. The subplots are combined with more presence of the “Destructive Outsider” at the start of the story, with elements from “Creation of Artificial Life” inserted sparsely, and a final stretch of the story that focuses entirely on the “Creation of Artificial Life” subplot. There is an effect of this initial “Destructive Outsider” subplot building the reader’s sympathy for Mary (as survivor of the depredations of Benson) only to heighten the impact of her death at the hands of Nemo. Consideration of such effects may be a valuable heuristic in future versions of the system.

Story 8 constitutes an example of the combination of three subplots, but it uses the Communicating Vessels strategy instead of the Chinese Boxes strategy. It involves a story in which Benson features again as the “Destructive Outsider” and West as the creator in an ‘Creation of Artificial Life” subplot, but with the addition of a “Benevolent Outsider”, Hugo, who arrives at the point in the story where Mary has died and sacrifices himself to save her by magically resuscitating her. The distribution of spans in this case is 2, 4–5, 7–8 for the “Destructive Outsider”, 1, 3, 6, and 9–11 for the “Creation of Artificial Life” subplot, and 12–17 for the “Benevolent Outsider” subplot. In this particular case, the weaving of the additional plot into the story has not led to any considerable improvement to the quality of the story. This can stand as a good example of how an increase in the number of subplots in a story needs to be justified by some valuable synergy between the new subplot and the rest of the story. Future work will consider the identification of heuristics to inform such processes.

Summary of Evaluation Results

Table 12 Summary of weaving strategies and plot templates used in the evaluation, the geometries of resulting combinations for the different strategies over test outputs, and overall appraisal of the resulting stories. Every asterisk marks from which story template has been taken the scene

The results of the formative evaluation are summarised in Table  12, which lists the plot templates combined for each strategy, the weaving geometries that resulted, and a summary of whether the resulting story produced a positive impression or a negative impression according to the analysis presented above.

The negative impressions and the features in the story that lead to them are summarised here:

  • Stories 4 and 10 involve characters appearing in the story either before being born or after having been killed. This is a result of not checking preconditions in the Random strategy used for Story 4, but derives from restricting the checks to boundary scenes between subplots in the Communicating Vessels strategy used in Story 10.

  • Stories 8 and 9 involve subplots added to the story that do not improve the story, because they are not well related to the rest of the material. This is a problem for both the Chinese Boxes (used for story 9) and Communicating Vessels (Story 8) strategies.

The features that have lead to positive impressions during the formative evaluation are summarised in the Sect.  6.1.

Discussion

This section discusses insights arising from the formative evaluation, issues of the developed system, both in terms of features that require attention in their current form and in terms of comparison with previous work.

Insights Arising from the Formative Evaluation

Each of the stories considered has been analyzed to identify relevant characteristics that might have impact on the perception of its relative quality by potential readers. Although it is clear that most of the positive characteristics appear as the result of serendipity, they can be considered as potentially useful features to address in future versions of the system. Negative characteristics observed in the stories arise from problems in the current operation of the system that may be refined for later versions.

The following insights have been considered relevant:

  1. 1.

    When preconditions are not considered in the weaving procedure, inconsistencies arise (Story 4).

  2. 2.

    Even when preconditions are considered, the current solution sometimes results in inconsistencies that span beyond the two scenes at a contact point between two plots (Story 10).

  3. 3.

    Alignment of protagonists for different subplots works well when there is a certain conceptual alignment between the plots and the plots are interwoven tightly (see Stories 1, 4, and 10).

  4. 4.

    Frequency of transition between plots conveys an impression of rhythm to the story, with frequent changes resulting in stories with faster rhythm and less frequent changes in stories with slower rhythm (as in Story 3).

  5. 5.

    The adequacy of this “rhythm” of a story at a particular point may be related to the descriptive vs. narrative nature of the scenes at that point (Story 3)

  6. 6.

    Imbalance between subplots—for instance by centering one more towards the beginning and one more towards the end of the story—can be used to induce particular effects, such as using one plot to set up a situation that heightens the effect of the second plot (see Stories 3 and 5).

  7. 7.

    The emotional impact of each subplot on the reader may be a valuable consideration to decide on its relative placing with respect to other subplots (Story 5)

  8. 8.

    Subordination between plots may be used to advantage (as in Story 7).

  9. 9.

    Some plots fit in well as ancillary contributions to a larger story (Stories 2 and 7).

  10. 10.

    Such ancillary subplots work well both when using the Chinese Boxes strategy (Story 7) and the Communicating Vessels strategy (Story 7)—provided that they are inserted at the right point of the story. For this purpose, it is important to consider what the interaction between the actions in the two subplots are.

  11. 11.

    Some subplots may act as stitching for a set of subplots, with their main characters appearing as secondary characters in the other subplots (Story 5).

  12. 12.

    Subplots inserted in a story may not be a valuable contribution unless they share some relevant characters—as established by the roles of the corresponding plot templates—with the subplots already in the story (Story 9).

  13. 13.

    Even when it involves the same characters of a story, an additional subplot may not be a valuable addition if it links up with the story at a point where the other subplots have been resolved already (Story 8).

Issues Requiring Attention

An important limitation of the proposed solution arises from the abstract nature of the representation of plot that is being considered. Although the Plot Weaver checks for consistency of preconditions and postconditions of contiguous scenes, inconsistencies can arise at a global level. As discussed in the definitions of plot template and precondition satisfaction, a plot template outlines necessary conditions for a story to be considered to feature that plot template. However, the only limits it establishes on what else the story might contain are those arising from the preconditions of the scenes in it. This allows for different plot templates to be woven together. It also requires that once the plot structure for a story is fixed, a process of detailed enrichment be applied to fill in any gap in consistency remaining in the story. This is a process already operating in the construction procedure for single-plot stories, and described in [8]. However, the solution adopted in the present version of the system to make this freedom possible (restricting the checking of preconditions for scenes to the point of contact between two plot templates in a story) has some unwelcome consequences. A significant case that can easily occur in the current model is the reappearance of a character killed in a scene of one plot in later scenes of the other plot, creating a blocking inconsistency. Example of this type of situation was discussed for Story 4 as analyzed above (featuring the repeated death of a character) and Story 10 (featuring the birth of character that had already been active in the story at an earlier point). This situation can be amended by extending the consideration of precondition satisfaction to fuller contexts including the whole span of preceding plot lines. To implement such an approach without compromising the freedom of combination of plot templates is under consideration for future work.

The Plot Weaver supports the application of different weaving strategies. In its current version, the choice of strategy is determined by an input parameter provided by the user. Later versions of the system may consider alternative approaches. The space of possible stories is extremely large if the full capabilities of the underlying storytelling system are put into play (detailed construction of scenes and natural language generation for construction of elaborate texts).

However, this would very likely cloud the issue of the relative merits of different weaving strategies. If procedures are added to render the stories in fluent text, this might make it difficult for a reader to work out whether particular merits in a given solution arise from a specially successful weaving strategy or from better than average construction of the individual scenes involved. To reduce this difficulty, we have focused the material in this paper on the aspects of plot line weaving. A small subset of similar scenes is used throughout so as to allow the reader easy comparison across stories to highlight the effect of different weaving strategies. The proposed solution as it stands does not currently consider metrics for quality [19, 32] of particular weavings, though such a feature should be given high priority in future work.

The plot weaving techniques presented so far have proven to be feasible from a computational point of view. The comparison with the baselines has proven inconclusive, with good and bad weavings resulting from both baselines and literary approaches. This suggests that additional criteria may be required. After all, writing good human-like stories entails a good number of validations in terms of knowledge representation and consistency.

The insights outlined in Sect.  6.1 constitute a useful starting point for the development of knowledge-based heuristics that may yield a substantial improvement in the perceived quality of system outputs.

The solution presented in our paper is not intended to be exhaustive with respect to the set of possible strategies for the combination of plot lines. The design of appropriate computational solutions must consider requirements from both human approaches and computational restrictions. In the present paper, a selection of strategies reported by researchers studying literary works [23] has been considered in terms of their computational feasibility and the perceived quality of the resulting combinations. A review of all possible strategies used by professional writers would require a specific survey paper just for that purpose, and is beyond the scope of the present paper. To illustrate the computational aspect, a number of baseline strategies—arising solely from computational principles—have been included for comparison with the chosen human-inspired solutions. There are surely additional possibilities that might be considered, which we hope to address in future work.

Comparison with Prior Work

The proposed solution includes two strategies (Communicating Vessels and Chines Boxes) that take into account precondition satisfaction for plot elements before they can be inserted into a story draft. This procedure resembles the chaining of planning operators based on precondition satisfaction as used by the planning-based approaches to narrative discussed in Sect.  2.1. However, there is a significant difference between the two approaches in as much as the planning approach relies mainly on the precondition satisfaction relation to structure a story. In contrast, the proposed solution relies mainly on the structure of the subplot lines arising from different templates, and only relies on the precondition satisfaction to validate shifts across different plot lines. Another significant difference is that the satisfaction of preconditions in planning systems requires that the precondition be explicitly present in the context to be satisfied, whereas the type of satisfaction considered in the proposed solution is focused more on consistency between preconditions and the conditions holding in the context. In terms of traditional precondition satisfaction, this corresponds to a situation that allows for preconditions that are simply missing from the context to be accommodated [21] if they do not conflict with prevailing conditions. This difference is fundamental to allow the freedom of combination of templates required by the proposed method.

A comparison with existing solutions for the combination of more than one subplot into multiple-plot stories faces an important obstacle in that different approaches are based on different understandings of what the instances of “plot” to consider are. A discussion of the main differences follows.

The solution for combining subplots into multiple-plot stories proposed in this paper has much in common with the solution presented by Fay in [12]. In both cases, there is an algorithm that considers a number of subplots, each one already built to a conclusion, and combines them into a story by interleaving them in some manner, allowing for the possibility of major characters in one subplot being bound to lesser characters in another. The solution advocated by Fay differs from the present one on a number of aspects. First in that, it operates over instances of “plot” that represent narrative threads focalised on a particular character, each of them allowing participation by other characters which are represented by “generic entities”. In this way, individual threads are not actually complete plots, but rather partial views of the contribution of a particular character to one of the full stories that constitute the reference corpus for the system.

Second, in that the algorithm proposed by Fay combines processes of interleaving plot elements from different threads with processes of fusing plot elements by binding the main character of one with some “generic entity” in the other. In the first case, elements from different threads are added as different elements for the final story. In the second case, two plot elements from different threads contribute a single-fused plot element to the final story.Footnote 2 Fay’s solution, therefore, operates at a lower level of granularity in terms of its conception of plot: the elements that it combines are units of abstraction arising not so much from their relevance to the development of the plot but rather from being restricted to the contribution of a particular character.Footnote 3 This allows for more emergent behaviour in the resulting stories (as discussed by Fay), but makes the solution less suitable for combining actual stories. The solution proposed in the paper addresses a slightly different problem which involves combining full-blown plots, each of them corresponding to a complete story in its own right.

Porteous et al. [26] describe a solution that relies on an understanding of plot closer to the one used in this paper, as it is designed to combine separate storylines in which a main character has a particular goal that it has to achieve to close the storyline successfully. It also includes the option of binding major characters in one subplot to lesser characters in another. It differs significantly from both Fay’s solution and the present proposal in that it does not consider a set of already specified plots to be combined, but rather relies on a planning-based approach that incrementally builds each of the plots from planning operators to match the requirements of the combined story at each point. This difference is important for the stated purpose of their solution, which is to drive an interactive narrative experience, and which requires that the story be at each point tailored to match (and react to) any contributions by the user participating in the experience. As was the case for Fay’s method, this makes this solution unsuitable for combining plots that are already fully structured.

The problem facing the Raconteur system [15] differs considerably from the one addressed in the present paper with respect to the constraints that the inputs under consideration impose on the process. The Raconteur system operates from a set of predicates describing the moves in a chess game. Each predicate describes a move taking place at a particular location within the chess board at a particular turn of the game. Choices of how to tell a story about the game are constrained by the relative chronological order between the moves selected for inclusion in the story, and by the need for pieces participating in a move as characters to be reasonably close to one another for an interaction between them to be believable. For these reasons, temporal and spatial constraints are paramount to the process, and they take priority when deciding how to weave the resulting narrative threads, making co-occurrence of suitable characters at particular location and temporal coherence over the scenes in a story fundamental to the decision process. In contrast, in the solution proposed here, there is no prior map that fixes the relative distance between locations mentioned in different plot templates, so the act of weaving two plots together in a particular way can actually determine that the locations mentioned in them become spatially close as required to make the implied story world coherent. In a similar fashion, because there are no absolute time stamps for the scenes in each plot template, particular weaving patterns will impose on the implied story world a partial chronological order between the corresponding scenes.

The StoryFire system [17] combines the task of telling a known set of events the way it happened with the goal of ensuring the tale follows an interesting plot line. This is achieved by sometimes omitting known events (if they are not relevant to the desired plot) and sometimes inserting fictional events (if they are needed for the plot to make sense). This approach that mixes reality and fiction in a flexible way is closer to the way humans construct stories than that of many other computational storytellers. The concept of plot in StoryFire is very similar to the concept of plot template proposed in the present paper, including both a sequence of scenes and a set of roles, yet the system handles the additional level of narrative threads, which represent the view of the story world that a particular character has. These are closer to the plot lines considered by Fay, as discussed above, and the narrative threads of the Raconteur system—on which they are based. The fact that different systems consider these two distinct concepts of a linear representation of the content of a story, each holding a partial view based on different criteria, suggests that a more elaborate representation of the nature of stories is required for a fruitful solution of storytelling that mixed reality and fiction. Under this view, stories would not be a simple woven fabric of threads of one or the other kind, but rather a complex fabric where threads of two different types (plot lines and focalised narrative threads) come together in a very complex weave. The interplay between these two different views of a story has already been discussed in the section  3.2 related to precondition satisfaction. Intuitively it may seem that, because different plot lines will tend to be focalised differently (following a different character), shifts between subplots will usually imply changes in focalisation, whereas simple shifts in focalisation occur more often within a single plot (for instance, as the story traces the activity of the Maker and the Creature as they move separately about the world in a “Creation of Artificial Life” plot). However, some of the examples of generated stories analyzed in Sect.  5 (see for instance, Story 4) suggest that the weaving of plot templates may result in the juxtaposition of scenes from different plot templates with no intervening change in focalisation, in particular when relevant roles of two different subplots have been bound to the same character. The solution presented in this paper focuses specifically on the combination of plot lines rather than combination of focalised narrative threads. Nevertheless, the interaction between these two different types of weaving needs to be explored in further work.

The corpus-based solution applied by the PlotAssembler system [18] for the construction of plots highlights the importance of character co-occurrence across these shifts in focalisation and/or plot lines. Almost all of the systems described above include a process either for validating bindings between characters from different plots (when characters in plots are described generically and therefore may be assigned to refer to entities appearing in different plots) or for identifying characters that co-occur across different threads (which suggests a potential value for using the character to lead from one to the other during a shift in focalisation). The small spans of plot used as units by PlotAssembler also include explicit representation of the roles played in them by characters. The use of probabilities of co-occurrence in a corpus is a potentially valuable source of additional information that may considered to enhance decision processes in further work.

The present paper focuses on the problem of how full plots may be used as subplots to be woven into larger stories. To address this issue experimentally, we relied on an existing storytelling system: INES [8, 9], which provides a broad number of functionalities such as elaborate knowledge representation for characters and actions, procedures for enriching abstract descriptions of scenes into more elaborate constructions, and methods for rendering the results as natural language text. It also relies on a software architecture based on micro-services that allows a number of modules addressing these various functionalities to collaborate in an orchestrated fashion. However, a detailed description of these features and the associated functionalities would be beyond the scope of the present paper and would be likely to cloud the issue of plot weaving. For this reason, the present paper focuses on a smaller set of simpler concepts that are relevant to the issue of multiple-plot integration, attempting to avoid terminological distinctions that are important for other functionalities of the underlying storytelling system but not necessary to understand the issues being described here. This is achieved by rephrasing some of the technical aspects in terms specifically relevant to the plot weaving issue, and avoiding issues arising from other functionalities of the underlying storytelling system. Readers interested in the details concerning other functionalities of the storytelling system are invited to consult prior publications on the INES system (on architecture [6, 7], on knowledge representation [5, 10], and on generation of simple plots [8]).

Conclusions and Future Work

The exploration undertaken in this paper has identified a set of concepts relevant to the task of plot weaving, established some computational baselines for strategies for weaving plots, and uncovered relevant intuitions as to the impact of particular types of weaving on the impression they produce on a reader. The baseline weaving techniques outlined in Sect. 4 have demonstrated their computational feasibility and relative merits as outlined in Sects. 5 and 6.

The two advanced plot weaving techniques proposed—Communicating Vessels and Chinese Boxes—come from the literary context, proving the feasibility of translating these creativity techniques from human-made literature to automatic storytelling. Although the algorithms have been developed for a particular target system, the conceptual model in which they are based is sufficiently generic to be exported to other storytelling systems.

The consistency checking mechanism presented, even though there is still room in it for improvements, helps to provide an reasonable continuation between scenes from different plot lines.

The use of a random weaving strategy as a baseline has also been revealed as a very interesting tool for comparing the quality of other weaving techniques. Contrary to expectations, there are no substantial differences in perceived quality of the resulting stories between the random strategy, the mechanical juxtaposition strategy, and the more elaborate techniques inspired in literary studies. In all cases, there were both positive and negative examples among the generated output. The random strategy is therefore a reasonable baseline that sets a threshold that other strategies will have to transcend. Future research efforts on performing a user-oriented survey for analyzing the quality of the stories will probably use this baseline.

The insights listed in Sect.  6.1 constitute a valuable starting point for the development of further heuristics to drive plot weaving procedures. An important conclusion from the present study is that such heuristics will need to have a substantial knowledge-based component to address the perceived importance of alignment between and interaction across different subplots within a story.

Main Contributions

The main contributions of the present paper to the research effort into the weaving of multiple-plot lines can be summarise as follows.

If stories are to be built in terms of plot-relevant elements, these need to be represented at a level of abstraction higher than the traditional story representation techniques. This implies that plot elements need to be slightly more generic than a full conceptual description of a scene, and that the details need to come from an additional process of instantiating a plot element into a detailed scene. The concept of plot template as presented in the paper—as an abstract unit of representation for elements of narrative structure that can be combined with others of the kind—is a valuable contribution to the literature.

The roles of characters relative to specific subplots play an important role in the decision processes for plot weaving.

The proposed procedure for checking consistency between subplots at points of transition between subplots in the discourse of the story constitutes a valid baseline that does not compromise the freedom of representation required for plot descriptions.

Future Work

Throughout the paper, a number of relevant tasks have been identified as potential future work.

The current solution based on scene weaving can be extended with functionality for scene merging (see Sect.  3.2).

Solutions need to be considered for the extension of preconditions satisfaction to the whole span of preceding plot lines without compromising the freedom of combination of plot templates (see Sect. 6.2).

Alternative solutions must be found for deciding which strategy to apply (see Sect. 6.2).

Knowledge-based heuristics or metrics of quality must be developed to decide when the addition of further plots is a positive contribution to a story or when one weaving is better than another (see Sects. 6.1 and 6.2).

Further alternatives for weaving strategies need to be designed, either based on those used by professional writers or on additional computational methods.