Scenejo Architecture Spierling November 2009

The goal of the ‘Scenejo’ project is to provide an experimental platform for ‘Interactive Digital Storytelling’, which can be used to experience emerging dialogues or conversations between a number of virtual and human actors. Scenejo connects several A.L.I.C.E. chatbots in a conversational loop of turn taking, which is controlled by a software component called ‘Dramatic Advisor’.

Each virtual actor is modelled as a chatbot, which connects to a meeting point. From the perspective of the meeting point, a human actor (user input) is treated the same way as input from chatbots. For each turn, the meeting point receives ‘acts’ by every actor (bot or user). In the current version, these acts are verbal utterances generated by the chatbots or the user. The dramatic advisor selects one of these acts to be played and sent back to all actors, who then can react and step into the next turn.

By text-chat via a standard keyboard, users can join in the conversation at any time. The system has been tested with a prototype learning game finished in 2007, called the "Killer Phrase Game". The human actor (user/player) has the role of the moderator in a debate between two virtual actors, in which the main challenge is to react upon so-called ‘killer phrases’ uttered by the bots.

Currently the system is not directly downloadable, but the developers are working on a downloadable version. The tool in the recent finished version (of 2007, running the ‘KillerPhraseGame’) is available on request by first contacting the developers. . The architecture and the authoring process have been described in some papers: Here, and here.


Telling stories in Scenejo is constrained to acting out verbal conversations between virtual and human actors. Its paradigm of interaction suggests to work on an adaptation that gives players the opportunity to join in a conversation between virtual actors, or to interrupt their conversation. Therefore, ‘Little Red Riding Hood’ was adapted to be a conversation on a secluded path in the forest.

Mission for Interaction:

‘TheLoneWolf’ flatters ‘LittleRedRidingHood’. You (the user) encounter them while you come by, jogging through the woods. Since TheLoneWolf doesn‘t seem to be a trustworthy guy, you might want to rescue LittleRedRidingHood and start to meddle in their conversation.

  • Goal for interactor: Do the best for LittleRedRidingHood‘s happiness
  • Moral: It‘s not easy to decide if and when to invade someone‘s private sphere

Interface and interaction:
The two figures are 3D/TTS-talking heads on the screen, interaction is accomplished by the keyboard and AIML-based natural language. At any point, the user can meddle in the conversation by typing text. The intervention possibly influences story states and scene changes.

The „plot“ and scenes:
The first scene is a training mode to involve the user. Then, the conversation gets more and more odd so that the user has to decide to intervene or not, and if so, decide on the right words. Other scenes follow with different dialogues. There are 4 possible endings, 2 of which occur after extensive user meddling (one positive, one negative): Devour or romance (diffident user), embarrass or rescue (meddling user).



How to Create Content in Scenejo Spierling November 2009

Creating content in Scenejo mainly consists of creating the ‘knowledge base’ for each virtual actor, in other words, a database of word patterns (utterances that the bot can ‘understand’ as a stimulus),  and corresponding verbal templates to be uttered as a response. All content is mapped to an XML structure, which is an extension of AIML (Artificial Intelligence Markup Language, see Therefore, it is an advantage if authors are knowledgeable in writing AIML. The XML structure can either be written in a text editor, or a graphical interface can be used.

In general, plain AIML can also be run with Scenejo, which means that it is possible to ignore the Scenejo authoring concepts and just feed a chatbot’s word pattern base (such as, an AIML file) into one or more ‘actors’. Using only one actor, this can result in a conventional chatbot interaction between a user and a bot, whereas using 2 or more actors leads to a conversation between the bots. Per se, this can entice one to experiment with emerging funny conversations that have not been foreseen by the authors of the individual pattern bases. However, in many cases it can also lead to rather meaningless chat, especially when non-sequitur answers occur. At the same time, building in some commonplace answers into your bots always helps to overcome the biggest challenge in this kind of interaction: having to react to some unforeseeable user input in a meaningful way.

The Scenejo authoring tools allow to model some structures based on this question/answer principle:

  • Abstraction of ‘direct discourse’-utterances into so-called dialogue acts: For example, the utterance “Hello” can be abstracted to the dialogue act “greeting”. On the other hand, the abstract act of greeting can be expressed in many ways of direct discourse, such as “Hi”, “Howdy”, “Good morning”, etc.
  • Connection of several single acts to dialogic pairs or sequences: For example, the act of greeting demands an answer from the conversational partners, for example a greeting in return, or in general, questions demand answers. Therefore, Scenejo allows the definition of short dialogue sequences, narrowing down the context for the pattern recognition of possible following acts.
  • Pre-conditions and effects: For example, giving the answer of a greeting in return can be conditioned by a predicate value that is checked before, such as “mood > 0”, and refusing a greeting in return can lead to the effect of increasing a resentment value. These changing states can be freely defined, and authors need to think of meaningful parameters for their stories.


We suggest the following steps of creation:

STEP 1: Think about three characters (one of which is human) and their potential dialogues or debates, and think about a main structure with possible outcomes of a discussion. Find a reason for the user/player actor to interact – either a reason to interrupt an ongoing conversation, or to contribute certain details! In the case of LRRH, we had the idea to let the user decide how to behave in an encounter with two foreign persons in an obscure setting: TheLoneWolf and LittleRedRidingHood.

STEP 2: It is then necessary to analyse the intended conversation in order to find typical interesting situations, which depend on certain states of affairs. Meaningful parameter states have to be identified early in the process – as well as critical incidents or events, which turn the ‘story’ into a different direction. In the small LRRH scene, we decided to work with the values of a so-called ‘chat-up’-level and a ‘danger’-level. If the user does not intervene with the flattery of TheLoneWolf, the chat-up-level increases and LittleRedRidingHood is more likely to follow the wolf to his cavern. This means, later dialogue acts have to be constrained to depend on the values of these levels.

STEP 3: A crucial part, of course, is to begin writing the dialogues for the bot actors. As a start, a linear dialogue script can be written. However, this soon has to be analysed and annotated, in order to be structured for interactivity. It is helpful if single utterances are then abstracted (generalised) into dialogue acts, and to think about what these acts can ‘do’ to the states of affairs. The more utterances really do affect some states, the more entertaining is the result of the interactive conversation.

STEP 4: A real challenge is then to think about possible utterances of user actors, as these can hardly be influenced, but only motivated with a strong mission for their interaction. Ideally, at each turn of the dialogue, some potential user utterance can have an effect – but that is lots of work. In our small example, we only provided for a few meaningful user interaction points (for example, intervening with the flattery of the wolf). It is recommended that many different potential user utterances (patterns containing wild cards) get generalised to some few dialogue acts.

STEP 5: Finally, the structured dialogue (from step 3, plus step 4) has to be implemented with the tools. The Scenejo graph structure helps visualising dialogue acts that are connected to sequences.
The Scenejo architecture, which is strictly ‘character-based’, requires that the word bases for each bot are entered and stored separately. According to the chatbot principle, as a first precondition for the successful utterance of a dialogue act, a word pattern has to be matched as an input. A linear and completely intertwined dialogue between two bots can be realised by exactly aligning these input patterns with the utterances of the partner bot.