<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta>
      <journal-title-group>
        <journal-title>Xiv preprint arXiv:</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Kismet: A Small Social Simulation Language</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Adam Summerville</string-name>
          <email>asummerville@cpp.edu</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ben Samuel</string-name>
          <email>bsamuel@cs.uno.edu</email>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>California State Polytechnic University</institution>
          ,
          <country country="US">USA</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>1405</year>
      </pub-date>
      <volume>3694</volume>
      <abstract>
        <p>Social simulation has been a popular domain in computational creativity for decades. However, while it has been used in applications that are easily digestible by end users (e.g., stories, games, theatrical performances, audio plays), it has typically not been modifiable or authorable for people who are not the original developers. Towards addressing this, we present Kismet, a small social simulation language. While Kismet is not as powerful as other social simulation approaches, it leverages computational machinery (such as an inheritance system) and is authored using natural language inspired syntax that is designed to be end user facing. The ultimate goal of Kismet is to facilitate the authoring of scenario content modules, such as those used in table-top role-playing games.</p>
      </abstract>
      <kwd-group>
        <kwd>artificial intelligence</kwd>
        <kwd>social simulation</kwd>
        <kwd>domain specific language</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        Since Meehan [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] developed TALE-SPIN, social simulation has seen a number of diferent
applications for creative ends. These creative applications have ranged from games [
        <xref ref-type="bibr" rid="ref2 ref3 ref4">2, 3, 4</xref>
        ], to
theatrical performance [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], to podcast audio plays [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
      </p>
      <p>
        The use of artificial techniques to enhance and improve table-top role playing games (TTRPGs)
is a recent development, with approaches ranging from using constraint satisfaction to perform
character and relationship construction [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] to the recommendation of music dynamically during
a session [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. However, to the authors’ knowledge, Bad News [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] represents the only TTRPG
(if it can be considered that) that uses social simulation. While Bad News is an interesting
experience and experiment, it is not approachable to lay players in the way that something like
Dungeons &amp; Dragons [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] is. The game requires a dedicated actor and “wizard” to run, and there
is no way for a player to make their own scenarios / modify the simulation in any way.
      </p>
      <p>
        Toward the goal of making an approachable social simulation system to support other creative
endeavors (TTRPGs, videogames, etc.) that are authorable and modifiable by people who do
not have (or are in the process of acquiring) Computer Science Ph.D.’s focused on artificial
intelligence we present Kismet – a small social simulation language. Kismet is developed with
an eye towards languages like Tracery [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] and Inform 7 [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], as well as the casual creator
framework [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. We note that Kismet is not as complex and deep as previous social simulations,
but this is a feature, not a detraction. Kismet is designed for small social simulations, at a
relatively low level of fidelity, and it is designed in a way such that authoring new rules for
Joint Proceedings of the ICCC 2020 Workshops (ICCC-WS 2020), September 7-11 2020, Coimbra (PT) / Online
nEvelop-O
      </p>
      <p>
        © 2020 Copyright for this paper by its authors. Use permitted under Creative Commons License Attribution 4.0 International (CC BY 4.0).
it is relatively simple. It does not require a specialized tool to author for [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], nor does it
require writing in a full-fledged programming language [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] – instead the language has simple,
expressive syntax that can be written in any text editor – which is later compiled before
simulation occurs. Though authoring syntax via text-editors might give the impression that
Kismet is designed for power users, the authors believe that its syntax is far less intimidating
than the typical high-level computer programming language.
      </p>
      <p>In this way, Kismet serves as a step towards accessible—yet expressive—social simulation. Its
natural language inspired syntax excels at allowing authors to define the types of actions that
simulated characters can engage in, and the social, cultural, and personal influences (referred to
in the system as proclivities) that might sway a character to select any given action over another.
Running the simulation yields sequences of character actions that are locally believable (i.e.,
any given action makes sense), though might lack global coherence (i.e., the system has little
machinery for maintaining direct cause-and-efect relations between actions). However, when
used in conjunction with an automated story-sifter or a human storyteller as typically found
in table-top role-playing games, Kismet’s action sequences become the atomic raw material
that other systems—human or otherwise—can embellish upon. Though not discussed in this
paper, exciting future work remains to explore Kismet’s afordances as a tool for co-creation
and shared authorship.</p>
      <p>In the rest of the paper, we first discuss Kismet in context with existing social simulation
approaches. We next describe its approach to simulation at a high level. Finally we delve into
the syntax and semantics of the language with some worked examples.</p>
    </sec>
    <sec id="sec-2">
      <title>2. Related Work</title>
      <p>We motivate this work by providing an overview of inspirational previous work, and discuss
how it helped inform the development of Kismet.</p>
      <sec id="sec-2-1">
        <title>2.1. Social Simulations</title>
        <p>Kismet is meant to be a simple way to author and represent social simulations. By social
simulations, we refer to representing agents (typically afectionately known as Non-Player
Characters or NPCs) whose behavior is at least in part modeled by social considerations. There
have been many previous explorations of social simulation research with a diverse range of
application areas.</p>
        <p>
          Social simulation techniques have been applied in many serious games projects, or other
applications with pedagogic or training goals. Stacey Marsela’s PsychSim [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ] was an early
example of providing authors with an interface to be able to cast NPCs in particular social roles
with sets of behaviors associated with each.
        </p>
        <p>
          Social relationships are at the heart of many narratives, and as such social simulation is
frequently a technique used to create or foster dynamic and compelling interactive emergent
narrative experiences [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ]. Because emergent narrative is, by definition, not explicitly embedded
into the experience itself, a new technique known as story sifting [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ] is actively being explored
to discover latent narratives in generated content, such as the Felt system [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ], or through
a process of evaluating dynamic games based on a player’s anecdotal retelling of gameplay
experiences [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ].
        </p>
        <p>
          These too have frequently been made with pedagogic aims; FearNot! [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ] and the SIREN
project [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ] both were developed with the goal of promoting conflict resolution (i.e., peaceful
resolutions to bullying) for elementary school aged children. Social simulation systems also drive
story experiences designed for entertainment. Emily Short and Richard Evans’ Versu System
[
          <xref ref-type="bibr" rid="ref21">21</xref>
          ] was used to create the ambitious Blood and Laurels. Though not designed specifically
for social simulation, Mateas and Stern’s A Behaviorial Language (ABL) [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ] was used, in
conjunction with drama management techniques [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ], to guide the behavior of the characters
of the interactive drama Façade [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ].
        </p>
        <p>
          Indeed, some interactive experiences revolve entirely around playable social interactions.
Some games, such as the wildly popular Sims [
          <xref ref-type="bibr" rid="ref24">24</xref>
          ] series and the research game Prom Week
[
          <xref ref-type="bibr" rid="ref3">3</xref>
          ], are entirely about managing aspirations and social relationships of virtual characters. In
particular, Prom Week’s “social physics” engine, Comme il Faut [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ] its successor, Ensemble
[
          <xref ref-type="bibr" rid="ref25">25</xref>
          ], and their metaphors have been employed towards a variety of ends, including as a “good
stranger” training tool for soldiers deployed overseas [
          <xref ref-type="bibr" rid="ref26">26</xref>
          ], for cross-cultural competency [
          <xref ref-type="bibr" rid="ref27">27</xref>
          ],
and has been integrated into popular games like Skyrim through modding [
          <xref ref-type="bibr" rid="ref28 ref4">4, 28</xref>
          ].
        </p>
        <p>In comparison to the information-dense simulation system of Prom Week, which made use of
thousands of “social influence rules” to power its characters, or the powerful afordances of ABL
to simultaneously enforce Façade’s strong narrative while adapting to player input, Kismet is
very simplistic. However, we claim that this simplicity is one of Kismet’s greatest strengths, and
certainly what makes it well suited for use in casual creator systems more so than
powerful-butweighty systems as CiF and ABL. Although Kismet has no mechanisms for ensuring satisfying
dramatic arcs, it allows for users to quickly and easily spin up and simulate virtual characters
governed by simple social laws. “Good” story content can be divined either through the use of
story sifters, or by embedding Kismet into a larger playable experience. And though tools like
Ensemble permit a rich interplay of individual social forces, it typically demands a significant
authoring efort before character’s dynamic behaviors begin taking shape. Though driven by
less sophisticated motivations, characters in Kismet can begin acting believably with a fraction
of the initial authoring efort, resulting in a much less daunting barrier to entry for the end user.</p>
        <p>Though Kismet does not seek to aim to emulate the fine degree of expressivity of these
other systems, other inspirations from these systems remains as future work. Namely, many of
these existing systems have companion authoring tools that enable non-programmers to create
content for them. Kismet has no such authoring tool, but developing one would eliminate the
need to author syntax by hand, and would no doubt be a boon to its use as a casual creator for
non-technical users.</p>
      </sec>
      <sec id="sec-2-2">
        <title>2.2. Small Casual Creator Languages</title>
        <p>
          Despite the popularity of the casual creator framework, there has been a relative dearth of
languages devoted to use by casual creators. Tracery [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] is a prime example as a language
designed for casual creators and has seen wide spread use via Cheap Bots, Done Quick! [
          <xref ref-type="bibr" rid="ref29">29</xref>
          ].
Tracery is a context free grammar writing language that allows for creators to quickly generate
procedural text. Similar to Tracery is Expressionist [
          <xref ref-type="bibr" rid="ref30">30</xref>
          ] – another context free grammar writing
language, however a key diference between Expressionist and Tracery is that Expressionist is
designed to be used with an associated authoring tool, while Tracery has no such barrier to
entry and is designed for any text editor. Though Kismet’s current output is purely textual,
grammar-based casual creator languages such as Context Free Art [
          <xref ref-type="bibr" rid="ref31">31</xref>
          ] have successfully been
developed in the service of facilitating procedurally generated graphical art.
        </p>
        <p>
          Given the lack of casual creator languages, it is hard to draw many conclusions, but a common
thread is the use of natural language syntax – used in both Inform 7 [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ] and Imaginarium [
          <xref ref-type="bibr" rid="ref32">32</xref>
          ].
Inform 7 is a language/tool for authoring of parser based interactive fiction that uses a very
naturalistic approach. E.g., “A cheerio is a kind of thing. There are 20 cheerios in the couch.” is
valid Inform 7 syntax. Imaginarium is a language/tool for constraint based random generation
that uses natural language syntax. E.g., “Persian, tabby, and Siamese are kinds of cat. A cat can
be large or small. Imagine a cat.” is valid syntax that will procedurally generate a cat. While
Kismet does not fully use natural language, there are aspects that do utilize it, with the hope
being that it leads to more readable/authorable/moddable code.
        </p>
      </sec>
      <sec id="sec-2-3">
        <title>2.3. AI For Table-Top Experiences</title>
        <p>
          Table-Top Role Playing Games (TTRPGs) have recently become a focus for artificial intelligence
techniques. Bardo [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] is a system that listens to TTRPG sessions and attempts to play fitting
music based on the emotional context of the current scene. E.g., if the players are in battle with
a dragon, it would try to play something fittingly action packed and epic, whereas if the players
are strolling through a forest, it might try to play something soothing and calm. Fiascomatic [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ]
uses constraint satisfaction to generate characters and relationships for games such as Fiasco –
one shot TTRPGs that rely heavily on the construction of characters and their interpersonal
relationships. Dear Leader’s Happy Story Time [
          <xref ref-type="bibr" rid="ref33">33</xref>
          ] is a completely artificial intelligence driven
role playing experience that generates characters, settings, and story beats that players then act
out using a constraint satisfaction system. Dear Leader’s is a definite inspiration for Kismet and
the kind of experience it could enable; However, Dear Leader’s content is written in ProLog, not
making it suitable for most end users to write/mod content.
        </p>
        <p>We imagine one way that Kismet will be a valuable contribution to AI for TTRPGs is in its
capacity to facilitate co-creation. TTRPG game masters can author Kismet content scenarios to
generate small worlds with social dynamics, suitable for quickly creating environments replete
with characters, relationships, and backstories that players can explore. Though not a traditional
TTRPG, mediated exploration of generated worlds such as this is akin to the experience Bad
News, which we describe below.</p>
      </sec>
      <sec id="sec-2-4">
        <title>2.4. Bad News</title>
        <p>
          Perhaps Kismet’s greatest influence is Bad News [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ], which leverages the Talk of the Town
simulation engine [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ]. Bad News is a computationally assisted performance [
          <xref ref-type="bibr" rid="ref34">34</xref>
          ]; an installation
piece which combines procedural generation, social simulation, and live performance. In Bad
News, Talk of the Town simulates nearly a century and a half of quotidian life in a generated,
small American town. A performance of Bad News primarily revolves around a player engaging
with a human actor, who throughout the performance may potentially portray dozens of the
hundreds of virtual denizens of the town. All the while, another human performs the role
of Wizard (so named after the Wizard-of-Oz experiments of the projects’ origin [
          <xref ref-type="bibr" rid="ref35">35</xref>
          ]), who
performs manual story sifting to discover interesting latent generated narrative and suggests
possible moves the actor might make to facilitate the player discovering them. In addition, a
third member of the performance serves as the Guide, to help acclimate the player into the
world of the game, as well as explain the underlying performance and simulation to audience
members while the actor and Wizard are occupied with the player.
        </p>
        <p>This piece has been performed internationally, at game festivals, film festivals, computer
science conferences, universities, and the San Francisco Museum of Modern Art. It has won
awards at both the ACM SIGCHI conference and the IndieCade festival of independent games.
It appears to be an experience that captures the imagination on both a technical and emotional
level. However, one of it’s greatest strengths—the spectacle of a computer simulation and three
humans in the roles of Actor, Wizard, and Guide creating and portraying a unique, ephemeral
world for each player—is also one of its greatest limitations. The game is an installation piece,
and as such requires a hefty amount of logistics to be performed, severely limiting the number
of people who could ever experience it.</p>
        <p>We hope that Kismet’s potential as a co-creative partner can serve as a first step towards a
“Bad News: The Home Game.” There are many challenges to creating such a system. However,
giving players the ability to quickly and easily develop their own social simulation modules is
an important first step to achieving it. To do so will allow players to personalize their simulated
worlds with virtual denizens that think about, care about, and behave in accordance to values
aligned with the types of story-worlds any given end user hopes to capture.</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>3. Kismet</title>
      <p>The goal of Kismet is to be a small language that supports small social simulations. The core
entities of the Kismet social simulation are Characters and Locations.</p>
      <p>Unsurprisingly, characters are the most important entity found in Kismet. A Kismet character
is a set of traits and statuses that influence their actions and the actions that others take towards
them. Traits and statuses are efectively the same thing – a single predicate that is attached to a
character that influences how likely they are to take certain actions – with the key diference
being that traits are inherent to a character (i.e., they are attached to the character when the
character is instantiated) while statuses are (and must) be applied to a character during the
simulation.</p>
      <p>Traits come in two varieties – default and random. Default traits are traits that are inherent to
all characters in a simulation. These can be thought of as encoding societal norms – e.g., people
are generally not rude to each other, or people avoid incestuous relationships. Random traits
are the spice of the simulation – they provide diferent behavioral patterns that let characters
have personality and diferentiation – and each character is assigned a random number of them.
This random number is configurable by an end user / module author, but in practice we have
found three to five to be an efective number that allows for enough personality, while still
being understandable by an end user.</p>
      <p>Some traits do not make sense in conjunction with each other – e.g., a character can not
be both a drunkard and a teetotaler or a character can not be both serene and rage-filled
simultaneously. To account for this, traits can be stated to be in opposition to each other, so
that a character can have only one of those traits.</p>
      <p>The other major class of entity are locations. Locations are where the simulation takes place.
Each location has a number of roles that the location supports, each of which can support a
diferent number of characters. E.g, a grocery store might have one manager, between three
and five grocers, and up to 30 patrons. Some roles are cast upon instantiation of the location
(which is the instantiation of the simulation) while others are cast and recast every tick of
the simulation. Some actions are only available to certain roles, and only when the character
enacting that role is at the location where they enact that role – e.g., a character might perform
the action “tend bar” if they are enacting the role of bartender at the bar where they work.</p>
      <p>To save on duplication of efort, roles have a form of inheritance. Roles can inherit all of the
preconditions and tags of their ancestors, minimizing the burden of authoring many diferent
roles. E.g., the role of b a r t e n d e r might inherit from s t a n d a r d - l a b o r which inherits from l a b o r .
l a b o r might have the tag w o r k which s t a n d a r d - l a b o r and b a r t e n d e r both inherit. Consequently,
perhaps s t a n d a r d - l a b o r might have the precondition that the character enacting the role must
be older than 18 years old. This allows for a split in the inheritance of l a b o r where c h i l d - l a b o r
inherits from l a b o r but requires the character be less than 18 years old.</p>
      <p>These pieces come together in the simulation. At initialization, a number of characters are
instantiated – and their personality traits are chosen. Then the locations are spawned – each of
which cast their initial roles. During each tick of the simulation, the characters choose which
location they should go to. Once there, they choose which action to take based on their traits,
statuses, and the other characters (who may be colocated, located elsewhere, or unspecified).</p>
      <p>The actions are the most important aspect of the simulation. They are how the characters and
their relationships evolve during the course of the simulation. It is the history of these actions
and the resultant relationships that form the material that end users mine from. Each action has
a number of tags that describe how the action should be interpreted by the characters. E.g., the
action g o s s i p might have the tags t a l k and r u d e . A character with the trait i n t r o v e r t might be
less likely to take t a l k actions, so they would be less likely to take the g o s s i p action. Similarly, a
p o l i t e person may be less likely to take r u d e actions. Thus, a p o l i t e i n t r o v e r t would be highly
unlikely to g o s s i p , while an i m p o l i t e e x t r o v e r t would be more likely to take the action.</p>
      <p>While the tags – in concert with the character traits – afect how likely a character will be to
take a certain action, there are also binary conditions that afect whether a given action can
even be attempted. Actions all have an enactor that needs to be cast, but they can have any
number of targets – those who the actions are performed upon – and subjects – those who the
actions are about. E.g., the g o s s i p action would have the enactor g o s s i p e r , target g o s s i p e e , and
subject g o s s i p e d - a b o u t .</p>
      <p>The action also has a set of preconditions that must be met for the action to be possible.
These conditions can be of:
• Unary Arity – is a fact true about a single character – e.g., A is d r u n k
• Binary Arity – i.e., is there a relation between two characters – e.g., A l i k e s B
• Arbitrary Arity – is there a relation that holds over multiple characters – e.g., l o v e
t r i a n g l e (A,B,C)
All of the preconditions must be true, i.e. they are all connected via logical and. To author an
or, one would need to create two nearly identical actions that difer only in those preconditions.
The results of the action are two-fold. First, the action occurs and is recorded in the history of
the simulation – which can be used by end users as well as the simulation to check for certain
relationships. The actions are also observed by bystanders, based on how noticeable they were.
Two characters chit-chatting is not particularly engaging, so it might not be observed, while
two characters getting in a fistfight is going to be observed by everyone at the same location.
Second, the actions can add or delete statuses and relations. E.g., the action d r i n k might apply
the status d r u n k which can have downstream impacts, while the action s o b e r - u p might remove
the d r u n k status. Similarly, the action of A f l i r t ing with B might add the relation B l i k e s A,
while the action b r e a k - u p might remove the relation d a t i n g .</p>
      <p>The aim of these small simulations is to provide a scafolding for further downstream processes
(e.g., Table-Top Role Players) to embellish upon. This leads to a design decision where the
characters have somewhat caricaturish personality traits – e.g., a drunk is much more likely
to go and drink at a bar – and the actions that the characters take are to be seen as simplified
stand-ins – e.g., “drink at bar” should not be interpreted as a person getting a single drink, but
rather could be interpreted as “wasted the afternoon getting drunk at the bar.” Furthermore,
the goal is that the language allows for end users to modify scenario modules, and possibly
create their own. To this end, the language has been designed to be approachable, using some
standard programming syntax, but more heavily inspired by natural language approaches like
Imaginarium and Inform 7.</p>
      <sec id="sec-3-1">
        <title>3.1. Language Description</title>
        <p>In this section we will describe the language – first starting with some syntax. Some notes
about Kismet syntax: (1) variables are upper cased, (2) definition names are lower cased, (3) lists
are separated with commas (4) the components of a definition are separated with semi-colons ,
and (5) definitions are ended with periods. Argument lists of characters use special syntax to
define who is the enactor ( &gt; ), the target (&lt; ), the subject (̂ ), or an action (* ). Also, anything in
bold below is a keyword in Kismet.</p>
        <p>Random selections are contained in square brackets:</p>
        <sec id="sec-3-1-1">
          <title>These can be ranges of natural numbers:</title>
          <p>or text strings separated by | ’s
[ h e a d s | t a i l s ]</p>
          <p>Text strings can reference Tracery grammars (in separate files) using the standard hashtag
syntax:
[ # c o i n t o s s # | # d i c e r o l l # ]</p>
          <p>
            For ranges of numbers users can specify the shape of the probability distribution using
the symbols _ - ̂ . [
            <xref ref-type="bibr" rid="ref1 ref10 ref11 ref12 ref13 ref14 ref15 ref16 ref17 ref18 ref19 ref2 ref20 ref21 ref22 ref23 ref24 ref25 ref26 ref27 ref28 ref29 ref3 ref30 ref31 ref32 ref33 ref34 ref35 ref36 ref37 ref4 ref5 ref6 ref7 ref8 ref9">0 - 1 0 0</xref>
            ] _ - ^ - _ is approximately a normal distribution while [
            <xref ref-type="bibr" rid="ref1 ref10 ref11 ref12 ref13 ref14 ref15 ref16 ref17 ref18 ref19 ref2 ref20 ref21 ref22 ref23 ref24 ref25 ref26 ref27 ref28 ref29 ref3 ref30 ref31 ref32 ref33 ref34 ref35 ref36 ref37 ref4 ref5 ref6 ref7 ref8 ref9">0 - 1 0 0</xref>
            ] _ - ^ has
increasing probability for selecting larger numbers.
          </p>
          <p>A location is specified with the l o c a t i o n keyword:
l o c a t i o n LOCATION-TYPE:
s u p p o r t s : LIST OF ROLES;
n a m e : TEXT;
i n i t i a l i z a t i o n : LIST OF CAST;
e a c h _ t u r n : LIST OF CAST.
[ N U M B E R ] N A M E</p>
          <p>A role is defined as the number of that kind of role that the location supports as well as the
name of the role:</p>
          <p>
            The cast commands are the c a s t keyword, the role to cast, and the number of characters to
cast in that role. i n i t i a l i z a t i o n is for the roles that are cast when the location is created, and
e a c h _ t u r n is for the roles that are cast on each turn of the simulation. Putting this all together a
description of a bar that has an owner, a few bartenders, and a number of patrons might look
like:
l o c a t i o n bar:
s u p p o r t s : [
            <xref ref-type="bibr" rid="ref1">1</xref>
            ] o w n e r , [
            <xref ref-type="bibr" rid="ref2 ref3">2 - 3</xref>
            ] b a r t e n d e r , [
            <xref ref-type="bibr" rid="ref1 ref10 ref2 ref3 ref4 ref5 ref6 ref7 ref8 ref9">1 - 1 0</xref>
            ] p a t r o n ;
n a m e : ” T h e # a d j e c t i v e # # a n i m a l # ” ;
i n i t i a l i z a t i o n :
c a s t [
            <xref ref-type="bibr" rid="ref1">1</xref>
            ] o w n e r ,
c a s t [
            <xref ref-type="bibr" rid="ref1 ref2">1 - 2</xref>
            ] b a r t e n d e r ;
e a c h _ t u r n :
          </p>
          <p>
            c a s t [
            <xref ref-type="bibr" rid="ref1 ref10 ref2 ref3 ref4 ref5 ref6 ref7 ref8 ref9">1 - 1 0</xref>
            ] p a t r o n .
          </p>
          <p>Roles are defined with an optional extension of another role, a set of tags that the role
embodies, and the preconditions required for a character to be capable of taking on that role.
r o l e ROLE-TYPE(CHARACTER)</p>
          <p>[e x t e n d s ROLE-TYPE]:
t a g s : LIST OF TAGS;
i f : LIST OF PRECONDITIONS.</p>
          <p>E.g., to represent the concept of having a job – and only being allowed to have a single job at
a time – and that bartending is a kind of job one might use the following roles:
r o l e j o b (&gt; W o r k e r ):
t a g s : l a b o r ;
i f : Worker i s m i s s i n g j o b .
r o l e b a r t e n d e r (&gt; W o r k e r )</p>
          <p>e x t e n d s j o b (&gt; W o r k e r ):
t a g s : d r i n k i n g ;
i f : W o r k e r . a g e &gt;= 18.</p>
          <p>Traits have the name (or names) of the trait and the proclivities that the trait entails.
Optionally, the trait can be flagged as being default and/or the trait that is opposition to the trait:
[d e f a u l t ] t r a i t NAMES [o p p o s e s NAMES]:</p>
          <p>LIST OF PROCLIVITIES.</p>
          <p>A proclivity is represented as the impact to how much more or less likely a character is
to take an action based on the tags associated with the action. These proclivities can also be
conditioned on traits, statuses, and relations between characters:</p>
          <p>VALENCE(LIST OF TAGS</p>
          <p>[i f LIST OF CONDITIONS])
t r a i t e x t r o v e r t / e x t r o v e r t e d</p>
          <p>o p p o s e s i n t r o v e r t / i n t r o v e r t e d :
+ + + ( t a l k ) .
t r a i t i n t r o v e r t / i n t r o v e r t e d</p>
          <p>o p p o s e s e x t r o v e r t / e x t r o v e r t e d :
— ( t a l k ) .</p>
          <p>E.g., to represent the fact that there are extroverts and introverts who are more or less likely
to talk than others, respectively, one might write:</p>
          <p>Opposition traits are defined as having the opposite valence, so an identical way to represent
this would be:</p>
          <p>The strength of the proclivity is represented by the number of pluses or minuses. All actions
are assumed to default to a score of 0, but for all engaged proclivities the score is modified.
Traits and statuses can work in concert, or – alternatively – can counteract each other. By
default, an action with two pluses is twice as likely to be selected as one with no pluses, but
the temperature of the selection (as in simulated annealing) can be set an end user or content
module author to make their characters more or less predictable (lower or higher temperature,
respectively). The multiple names delimited with slashes is a bit of syntactic sugar that allows
an author to use multiple names to represent the same concept.</p>
          <p>An example of a default trait that all characters would have might be that people are more
likely to do nice things (and less likely to do mean things) to people that they like:
d e f a u l t t r a i t k i n d - t o - p e o p l e - i - l i k e :</p>
          <p>+ + + ( n i c e i f &gt; S e l f l i k e s &lt; O t h e r ) .</p>
          <p>This uses a conditional proclivity, such that the odds of doing a nice action towards someone
only increase if the enactor likes the target. The greater than and lesser than symbols tell the
system how to bind to the characters in an action.</p>
          <p>Next, we come to actions. Actions have a name, an argument list of involved characters (and
possibly historical actions), text for how the action should be descibed, how (if at all) the action
extends another, a list of tags, constraints on the location(s) of the characters, the visibility of
the action, the preconditions for the action, and the results of the action.</p>
          <p>a c t i o n NAME(LIST OF CHARS)</p>
          <p>[e x t e n d s ACTION]:
“TEXT”
l o c a t i o n : LIST OF LOCATIONS;
t a g s : LIST OF TAGS;
i f : LIST OF PRECONDITIONS;
r e s u l t : LIST OF RESULTS;
VALENCEv i s i b i l i t y .</p>
        </sec>
        <sec id="sec-3-1-2">
          <title>E.g., a simple action like chit-chatting might look like:</title>
          <p>a c t i o n c h i t - c h a t ( &gt; C h a t t e r , &lt; L i s t e n e r ) :
“ C h a t t e r c h a t s w i t h L i s t e n e r ”
l o c a t i o n : ( C h a t t e r , L i s t e n e r ) ;
t a g s : t a l k .</p>
          <p>Which means that chit-chat is a t a l k action, and that the participants must be co-located (but
that otherwise there are no constraints on their location).</p>
          <p>An action can also be tied to specific roles, in which case the action must take place at the
location where those people enact those roles. E.g., a bartender might “pour the troubles away”
for a sad patron:
a c t i o n p o u r - t h e i r - t r o u b l e s - a w a y</p>
          <p>( &gt; T e n d e r : b a r t e n d e r , &lt; P a t r o n : p a t r o n ) :
“T e n d e r l i s t e n s t o t h e t r o u b l e s</p>
          <p>o f P a t r o n a n d p o u r s t h e m a d r i n k ”
l o c a t i o n : ( T e n d e r , P a t r o n ) ;
t a g s : w o r k , d r i n k i n g , t a l k , n i c e ;
i f : P a t r o n i s s a d ;
r e s u l t : P a t r o n l i k e s T e n d e r ,
a c t i o n f i g h t ( &gt; F i g h t e r , &lt; F i g h t e e ) :
“F i g h t e r a n d F i g h t e e c o m e t o b l o w s ”
l o c a t i o n : ( F i g h t e r , F i g h t e e ) ;
t a g s : s c a n d a l o u s , v i o l e n t , a n g r y ) ;
+ + + + v i s i b i l i t y ;
r e s u l t :</p>
          <p>F i g h t e r a n d F i g h t e e</p>
          <p>d i s l i k e e a c h o t h e r ,
F i g h t e r a n d F i g h t e e</p>
          <p>d o n o t l i k e e a c h o t h e r .</p>
          <p>Note, this action can only occur at a bar, since that is where the Tender is enacting the role of
bartender.</p>
          <p>Actions can also have diferent levels of visibility – e.g., everyone is aware that a fistfight
occurred in the same location.</p>
          <p>Two notes, (1) A and B C “each other” is syntactic sugar for A Cs B and B Cs A, (2) “do not”
removes the relationship (or fact) if it exists. We can create a more specific version of the action
if we want quite simply:
a c t i o n b a r - r o o m - b r a w l ( &gt; F i g h t e r , &lt; F i g h t e e )
e x t e n d s a c t i o n f i g h t ( &gt; F i g h t e r , &lt; F i g h t e e ) :
“A b a r r o o m b r a w l b r e a k s o u t</p>
          <p>b e t w e e n F i g h t e r a n d F i g h t e e ”
l o c a t i o n : b a r ( F i g h t e r , F i g h t e e ) ;</p>
          <p>The primary diference between bar-room-brawl and fight is that bar-room-brawl specifies
that the location that the fighters are in must be a bar. The two actions also have diferent
descriptions.</p>
          <p>Finally, since the fight is a very visible, scandalous action, it might be gossiped about by
people who observed it:</p>
          <p>Knowledge about actions can be seen (directly observed), heard (received second-hand), did
(the enactor of the action), received (the target of the action), known (any of seen, heard, did, or
received), and forgotten (the character no longer knows about the action). The gossiping makes
sure that people don’t gossip about their own or their target’s scandalous exploits. Further,
the tags of the action can be reasoned about as one would the status, traits, and relations of
characters.</p>
          <p>Finally, there are a syntactic sugaring shorthand patterns that can be used in actions, traits,
and other patterns – easing the authoring burden.</p>
          <p>For instance, a large portion of the above gossiping action’s preconditions could be
summarized as “A and B weren’t involved in a scandalous event”. One might find themselves using
that pattern in other actions, so they could specify:
p a t t e r n n o t - i n v o l v e d - i n - s c a n d a l ( &gt; A , &lt; B , * E ) :
i f :</p>
          <p>A d i d n o t d o E ,
B d i d n o t d o E ,
B d i d n o t r e c e i v e E ,</p>
          <p>E i s s c a n d a l o u s .
p a t t e r n l o v e - t r i a n g l e ( A , B , C ) :
i f :</p>
          <p>A l o v e s C ,</p>
          <p>B l o v e s C .
or
p a t t e r n u n r e q u i t e d - l o v e ( A , B ) :
i f :</p>
          <p>A l o v e s B ,</p>
          <p>B d o e s n o t l o v e A .</p>
          <p>Which could then be reference elsewhere. These can also be exposed to an end user, as a
way to highlight potentially juicy tidbits:</p>
        </sec>
      </sec>
      <sec id="sec-3-2">
        <title>3.2. Implementation</title>
        <p>
          Kismet is parsed using ANTLR4 [
          <xref ref-type="bibr" rid="ref36">36</xref>
          ]. The preconditions for the actions, patterns, traits, and
statuses are then compiled to AnsProlog. Once in AnsProlog, Clingo [
          <xref ref-type="bibr" rid="ref37">37</xref>
          ] is used to calculate
which actions are possible and how likely a character is to take the action. This is done by
combining the event history, the current social state (composed of the traits, statuses, and
relationships of the characters), as well as the authored rules and solving with Clingo. First, the
proclivities are calculated to determine how likely a character is to go to each location. These
are then sampled for each character after being transformed into a probability distribution via
the softmax function:
  (  ) =    /
        </p>
        <p>Σ   /</p>
        <p>Where   is the weight assigned to going to location   . Once characters are at a location,
Clingo is once again used to determine the proclivity weights, and an action is sampled for
each character as with the locations. Once the actions are selected, their results are applied and
the current social state is updated. This process proceeds until one of two things occurs – (1)
most simply until a certain number of steps has occurred or (2) until a set of conditions is met –
either of which can be set by a content module author or the end user.</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Limitations and Future Work</title>
      <p>Although a formal evaluation of Kismet has yet to take place, some preliminary testing has
transpired with an undergraduate research assistant who used Kismet to create a world of
responsible business employees and casino frequenting layabouts.</p>
      <p>The “experimental set-up” of this preliminary work is simple to explain: this student is
a sophomore in computer science, and had never been exposed to many of the underlying
principles of Kismet—such as Clingo, answer set programming, or the very notion of a domain
specific language—prior to working on this project. However, they did have a background
in the Java programming language, and general approaches to procedural thinking. Kismet’s
abstractions away from it’s underlying processes made it possible for the undergraduate to
design and create a social world, which is heartening. At the same time, their attempts to use
the system highlight some of its limitations, both in terms of expressively and accessibility.
Although perhaps having some programming experience is a requirement for the “target user,” a
mark of a successful casual creator is a tool which is easy to jump into. Thus, points of confusion
this undergrad experienced highlight potential problem areas that future users might encounter
as well, and warrant our attention moving forward.</p>
      <p>Some of the issues the undergraduate encountered pertained to simple syntax
misunderstandings, though some of these spoke to more fundamental conceptual issues. For example, the
ifrst set of actions written had no post-conditions specified, indicating a disconnect between
recognizing a character taking an action and the resulting underlying social state changes.</p>
      <p>Other questions frequently revolved around the notion of “roles” in the system. For example,
in example code included in the Kismet documentation, it introduces a location called a bar,
and says that it has one owner, two to three bartenders, and one to ten patrons. The roles of
“owner” and “bartender” speak to one’s profession, and have an air of permanence to them;
e.g., even as the person cast as the owner lives their life and visits other locations, say, goes
grocery shopping, they are still a bartender even as they are a patron of the market. However,
the role of patron speaks to something much more ephemeral; even though one might always
consider themselves a patron of a spot they frequent often, it is likely less a central part of one’s
identity than the occupational roles such as bartender or owner would be. This distinction
between roles referring to professions and roles referring to momentary qualifiers boils down to
diferences between the “initialization” specification of a location, and a location’s “each_turn”
specification, as described above, but this distinction was a challenge to understand.</p>
      <p>Other limitations centered around the notion of tags. One such limitation is that there is
currently no way to mark a duration of a tag. For example, the undergraduate wished to create
a tag to mark a character as being “recently promoted.” This should heavily influence behavior
in the short term (e.g., celebrating during the week of the promotion) but should not influence
behavior in the long term (e.g., influencing the character’s desire to celebrate years after the
promotion feels incorrect). At present, the way this is handled is to have certain actions remove
tags. As previously mentioned, the “sober_up” action could remove the “drunk” tag; the tag will
continue to influence the character’s behavior until they happen to take the aforementioned
action to remove it.</p>
      <p>Another limitation of tags is that they they help influence the behavior of those who wish to
take actions, but they do not influence the selection of other non-initiating characters in the
action. This can be circumvented, however, through clever use of traits. Though the “+” and “-”
syntax is still applying from the enactor’s perspective (i.e., making them more or less inclined
to take an action), it is possible to write traits such as:
d e f a u l t t r a i t p r o m o t e _ h a r d w o r k e r s :
+ + + ( p r o m o t i o n</p>
      <p>i f &lt; O t h e r i s h a r d w o r k i n g ) .
t i m e c y c l e [ a m , p m ]
i f t i m e i s p m . . .</p>
      <p>where hardworking is a tag here applying to a character. Still, the +++ is applying specifically
to the enactor; they are more likely to engage in promote actions if someone around them is
hardworking.</p>
      <p>Shifting away from tags, the undergraduate was curious about capturing a sense of operating
hours for certain locations. In Bad News, which ofered much inspiration for Kismet, each
simulated day was split into two time blocks: day and night. Any given business operated
either during the day, or the night, or both day and night. At present, the only sense of time in
Kismet is the granularity with which an author specifies actions. However, there are currently
plans to implement time cycles. A simple time cycle might look like:</p>
      <p>Which would cycle between morning and night, and then could become conditions for certain
behaviors, e.g.,</p>
      <sec id="sec-4-1">
        <title>This could then be extended to nested time cycles, e.g.,</title>
        <p>t i m e c y c l e [ m , t , w , t h , f , s a , s u ] [ a m , p m ]</p>
        <p>Which would cycle through monday am, monday pm, tuesday am, tuesday pm, wednesday
am, until eventually wrapping back around to monday am. These cycles could be extended
indefinitely (e.g., capturing four weeks in a month, twelve months in a year, etc.).</p>
        <p>Another desire the undergraduate had was to design situations in which characters could
either choose to go to work or play hooky. Although this could be achieved through traits
and actions (e.g., a trait “diligent” that increases the likelihood of taking “go_to_work” actions
and an equivalent “lollygagger” trait which reduces the likelihood), this still demands that any
given “work” action is then explicitly written and given the “go_to_work” tag. Another piece
of future work is to implement prototypical actions (such as a generic “work”). Connected to
the notion of inheritance described above, prototypical actions would not be directly selectable
by characters to perform but could be extended to subactions which themselves are selectable.
This ensures the tag only need to be specified once for ease of authoring and revising, such as:
p r o t o t y p e a c t i o n w o r k :</p>
        <p>t a g s : g o _ t o _ w o r k .</p>
        <p>ensuring that every action which inherits from work will have the g o _ t o _ w o r k tag, without it
needing to be specified for each individual action.</p>
        <p>An exciting next step is to begin making sample modules and playable experiences using
Kismet. This process will undoubtedly lead to accessibility improvements, which in turn will
further enable Kismet to be adopted as a casual creator tool.</p>
        <p>Additionally, formal user studies with additional participants with a variety of backgrounds
would further substantiate the preliminary heartening observations that Kismet’s abstractions
permit for non-technical authors to utilize Kismet to create meaningful or otherwise interesting
stories. To this end, additional authoring support such as an authoring tool would provide
valuable scafolding to introduce newcomers to the language. Lastly, a user study that compares
Kismet to other social simulation systems, such as Ensemble, could be extremely valuable, and
would validate (or invalidate) the author’s belief that Kismet permits users to generate small
but dynamic social worlds at far quicker rate than its contemporaries. Such a study could begin
to further explore the trade-ofs between accessibility and expressivity in social simulation
systems, and in so doing not only inspire future directions for Kismet, but help establish goals
and baselines for any future systems that may be developed.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>5. Conclusion</title>
      <p>Kismet is a small language for small social simulations, with an eye towards end user
authorability. It is not as powerful or as in-depth as other expressive social simulation, but it is the first
that has a focus on language design for novice use. It is still relatively early in development,
with additional language constructs planned. Furthermore, our belief that Kismet is easier to
use and author than other social simulations is mostly untested. In the future, we would like to
get Kismet into the hands of more novices to be able to test this, to examine the range of social
simulations they create.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>J. R.</given-names>
            <surname>Meehan</surname>
          </string-name>
          ,
          <article-title>Tale-spin, an interactive program that writes stories</article-title>
          ,
          <source>in: Proc. of the 5th International Joint Conference on Articial Intelligence, Aug</source>
          .
          <year>1977</year>
          , volume
          <volume>1</volume>
          ,
          <year>1977</year>
          , pp.
          <fpage>91</fpage>
          -
          <lpage>98</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>M.</given-names>
            <surname>Mateas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Stern</surname>
          </string-name>
          ,
          <string-name>
            <surname>Façade:</surname>
          </string-name>
          <article-title>An experiment in building a fully-realized interactive drama</article-title>
          , in: Game developers conference, volume
          <volume>2</volume>
          ,
          <year>2003</year>
          , pp.
          <fpage>4</fpage>
          -
          <lpage>8</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>J.</given-names>
            <surname>McCoy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Treanor</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Samuel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. A.</given-names>
            <surname>Reed</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Wardrip-Fruin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mateas</surname>
          </string-name>
          ,
          <article-title>Prom week</article-title>
          ,
          <source>in: Proceedings of the International Conference on the Foundations of Digital Games</source>
          ,
          <year>2012</year>
          , pp.
          <fpage>235</fpage>
          -
          <lpage>237</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>M.</given-names>
            <surname>Guimarães</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Santos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Jhala</surname>
          </string-name>
          ,
          <article-title>Prom week meets skyrim</article-title>
          .,
          <source>in: AAMAS</source>
          ,
          <year>2017</year>
          , pp.
          <fpage>1790</fpage>
          -
          <lpage>1792</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>B.</given-names>
            <surname>Samuel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Ryan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. J.</given-names>
            <surname>Summerville</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mateas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Wardrip-Fruin</surname>
          </string-name>
          ,
          <article-title>Bad news: An experiment in computationally assisted performance</article-title>
          ,
          <source>in: International Conference on Interactive Digital Storytelling</source>
          , Springer,
          <year>2016</year>
          , pp.
          <fpage>108</fpage>
          -
          <lpage>120</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>J.</given-names>
            <surname>Ryan</surname>
          </string-name>
          , Curating simulated storyworlds,
          <source>Ph.D. thesis, UC Santa Cruz</source>
          ,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>I. D.</given-names>
            <surname>Horswill</surname>
          </string-name>
          ,
          <article-title>Fiascomatic: A framework for automated fiasco playsets</article-title>
          ,
          <source>in: Eleventh Artificial Intelligence and Interactive Digital Entertainment Conference</source>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>R. R.</given-names>
            <surname>Padovani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L. N.</given-names>
            <surname>Ferreira</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L. H.</given-names>
            <surname>Lelis</surname>
          </string-name>
          , Bardo:
          <article-title>Emotion-based music recommendation for tabletop role-playing games</article-title>
          ,
          <source>in: Thirteenth Artificial Intelligence and Interactive Digital Entertainment Conference</source>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>G.</given-names>
            <surname>Gygax</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Cook</surname>
          </string-name>
          , The Dungeon Master Guide, No.
          <volume>2100</volume>
          ,
          <string-name>
            <surname>2nd</surname>
          </string-name>
          <article-title>Edition (Advanced Dungeons and Dragons)</article-title>
          , TSR, Inc,
          <year>1989</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>K.</given-names>
            <surname>Compton</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Kybartas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mateas</surname>
          </string-name>
          ,
          <article-title>Tracery: an author-focused generative text tool</article-title>
          , in: International Conference on Interactive Digital Storytelling, Springer,
          <year>2015</year>
          , pp.
          <fpage>154</fpage>
          -
          <lpage>161</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>G.</given-names>
            <surname>Nelson</surname>
          </string-name>
          ,
          <article-title>Natural language, semantic analysis, and interactive fiction</article-title>
          ,
          <source>IF Theory Reader</source>
          <volume>141</volume>
          (
          <year>2006</year>
          )
          <fpage>99</fpage>
          -
          <lpage>104</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>K.</given-names>
            <surname>Compton</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mateas</surname>
          </string-name>
          ,
          <article-title>Casual creators</article-title>
          ,
          <source>in: Proceedings of the Sixth International Conference on Computational Creativity</source>
          ,
          <year>2015</year>
          , p.
          <fpage>228</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>J. McCoy</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Treanor</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Samuel</surname>
            ,
            <given-names>A. A.</given-names>
          </string-name>
          <string-name>
            <surname>Reed</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Mateas</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          <string-name>
            <surname>Wardrip-Fruin</surname>
          </string-name>
          ,
          <article-title>Social story worlds with comme il faut</article-title>
          ,
          <source>IEEE Transactions on Computational intelligence and AI in Games</source>
          <volume>6</volume>
          (
          <year>2014</year>
          )
          <fpage>97</fpage>
          -
          <lpage>112</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>J. O.</given-names>
            <surname>Ryan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Summerville</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mateas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Wardrip-Fruin</surname>
          </string-name>
          ,
          <article-title>Toward characters who observe, tell, misremember, and lie</article-title>
          ,
          <source>in: Eleventh Artificial Intelligence and Interactive Digital Entertainment Conference</source>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>S. C.</given-names>
            <surname>Marsella</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. V.</given-names>
            <surname>Pynadath</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. J.</given-names>
            <surname>Read</surname>
          </string-name>
          , Psychsim:
          <article-title>Agent-based modeling of social interactions and influence</article-title>
          ,
          <source>in: Proceedings of the international conference on cognitive modeling</source>
          , volume
          <volume>36</volume>
          ,
          <year>2004</year>
          , pp.
          <fpage>243</fpage>
          -
          <lpage>248</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <surname>M.-L. Ryan</surname>
          </string-name>
          ,
          <article-title>From narrative games to playable stories: Toward a poetics of interactive narrative</article-title>
          ,
          <source>Storyworlds: A Journal of Narrative Studies</source>
          <volume>1</volume>
          (
          <year>2009</year>
          )
          <fpage>43</fpage>
          -
          <lpage>59</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>M.</given-names>
            <surname>Kreminski</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Dickinson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Wardrip-Fruin</surname>
          </string-name>
          ,
          <article-title>Felt: A simple story sifter</article-title>
          ,
          <source>in: International Conference on Interactive Digital Storytelling</source>
          , Springer,
          <year>2019</year>
          , pp.
          <fpage>267</fpage>
          -
          <lpage>281</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>M.</given-names>
            <surname>Kreminski</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Samuel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Melcer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Wardrip-Fruin</surname>
          </string-name>
          ,
          <article-title>Evaluating ai-based games through retellings</article-title>
          ,
          <source>in: Proceedings of the AAAI Conference on Artificial Intelligence and Interactive Digital Entertainment</source>
          , volume
          <volume>15</volume>
          ,
          <year>2019</year>
          , pp.
          <fpage>45</fpage>
          -
          <lpage>51</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>R. S.</given-names>
            <surname>Aylett</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Louchart</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Dias</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Paiva</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Vala</surname>
          </string-name>
          , Fearnot!
          <article-title>-an experiment in emergent narrative</article-title>
          , in: International Workshop on Intelligent Virtual Agents, Springer,
          <year>2005</year>
          , pp.
          <fpage>305</fpage>
          -
          <lpage>316</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>G. N.</given-names>
            <surname>Yannakakis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Togelius</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Khaled</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Jhala</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Karpouzis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Paiva</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Vasalou</surname>
          </string-name>
          , Siren:
          <article-title>Towards adaptive serious games for teaching conflict resolution</article-title>
          ,
          <source>Proceedings of ECGBL</source>
          (
          <year>2010</year>
          )
          <fpage>412</fpage>
          -
          <lpage>417</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>R.</given-names>
            <surname>Evans</surname>
          </string-name>
          , E. Short,
          <article-title>Versu-a simulationist storytelling system</article-title>
          ,
          <source>IEEE Transactions on Computational Intelligence and AI in Games</source>
          <volume>6</volume>
          (
          <year>2013</year>
          )
          <fpage>113</fpage>
          -
          <lpage>130</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>M.</given-names>
            <surname>Mateas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Stern</surname>
          </string-name>
          ,
          <article-title>A behavior language for story-based believable agents</article-title>
          ,
          <source>IEEE Intelligent Systems</source>
          <volume>17</volume>
          (
          <year>2002</year>
          )
          <fpage>39</fpage>
          -
          <lpage>47</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>D. L.</given-names>
            <surname>Roberts</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. L.</given-names>
            <surname>Isbell</surname>
          </string-name>
          ,
          <article-title>A survey and qualitative analysis of recent advances in drama management</article-title>
          ,
          <source>International Transactions on Systems Science and Applications</source>
          ,
          <source>Special Issue on Agent Based Systems for Human Learning</source>
          <volume>4</volume>
          (
          <year>2008</year>
          )
          <fpage>61</fpage>
          -
          <lpage>75</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>W.</given-names>
            <surname>Wright</surname>
          </string-name>
          ,
          <string-name>
            <surname>L. Humble,</surname>
          </string-name>
          <article-title>The sims</article-title>
          ,
          <source>EUA: Electronics Arts</source>
          (
          <year>2000</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>B.</given-names>
            <surname>Samuel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. A.</given-names>
            <surname>Reed</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Maddaloni</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mateas</surname>
          </string-name>
          ,
          <string-name>
            <surname>N.</surname>
          </string-name>
          <article-title>Wardrip-Fruin, The ensemble engine: Next-generation social physics</article-title>
          ,
          <source>in: Proceedings of the Tenth International Conference on the Foundations of Digital Games (FDG</source>
          <year>2015</year>
          ),
          <year>2015</year>
          , pp.
          <fpage>22</fpage>
          -
          <lpage>25</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>D. G.</given-names>
            <surname>Shapiro</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>McCoy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Grow</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Samuel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Stern</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Swanson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Treanor</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mateas</surname>
          </string-name>
          ,
          <article-title>Creating playable social experiences through whole-body interaction with virtual characters</article-title>
          ,
          <source>in: Ninth Artificial Intelligence and Interactive Digital Entertainment Conference</source>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <given-names>J.</given-names>
            <surname>Klafehn</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Inglese</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Treanor</surname>
          </string-name>
          ,
          <string-name>
            <surname>J. McCoy</surname>
          </string-name>
          ,
          <article-title>Walking a mile in simulated shoes: Development of an assessment of perspective taking</article-title>
          ,
          <source>in: Proceedings of the Eleventh annual MODSIM World Conference</source>
          ,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <given-names>B. G.</given-names>
            <surname>Studios</surname>
          </string-name>
          , The elder scrolls v: Skyrim, Bethesda Game Studios,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [29]
          <string-name>
            <given-names>G.</given-names>
            <surname>Buckenham</surname>
          </string-name>
          , Cheap Bots, Done Quick!, https://cheapbotsdonequick.com/,
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [30]
          <string-name>
            <given-names>J.</given-names>
            <surname>Ryan</surname>
          </string-name>
          , E. Seither,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mateas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Wardrip-Fruin</surname>
          </string-name>
          ,
          <article-title>Expressionist: An authoring tool for in-game text generation</article-title>
          ,
          <source>in: International Conference on Interactive Digital Storytelling</source>
          , Springer,
          <year>2016</year>
          , pp.
          <fpage>221</fpage>
          -
          <lpage>233</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          [31]
          <string-name>
            <given-names>C.</given-names>
            <surname>Coyne</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Lentczner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Horigan</surname>
          </string-name>
          ,
          <article-title>Context free art, URL: www</article-title>
          . contextfreeart. org (
          <year>2010</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          [32]
          <string-name>
            <surname>I. Horswill</surname>
          </string-name>
          ,
          <article-title>Imaginarium: A tool for casual constraint-based pcg</article-title>
          ,
          <source>in: Proceedings of the AIIDE Workshop on Experimental AI and Games (EXAG)</source>
          ,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          [33]
          <string-name>
            <given-names>I. D.</given-names>
            <surname>Horswill</surname>
          </string-name>
          ,
          <article-title>Dear leader's happy story time: A party game based on automated story generation</article-title>
          ,
          <source>in: Twelfth Artificial Intelligence and Interactive Digital Entertainment Conference</source>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          [34]
          <string-name>
            <given-names>B.</given-names>
            <surname>Samuel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Ryan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Summerville</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mateas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Wardrip-Fruin</surname>
          </string-name>
          ,
          <article-title>Computatrum personae: toward a role-based taxonomy of (computationally assisted) performance</article-title>
          ,
          <source>in: Twelfth Artificial Intelligence and Interactive Digital Entertainment Conference</source>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          [35]
          <string-name>
            <given-names>J. O.</given-names>
            <surname>Ryan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. J.</given-names>
            <surname>Summerville</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Samuel</surname>
          </string-name>
          ,
          <article-title>Bad news: A game of death and communication</article-title>
          ,
          <source>in: Proceedings of the 2016 CHI Conference Extended Abstracts on Human Factors in Computing Systems</source>
          ,
          <year>2016</year>
          , pp.
          <fpage>160</fpage>
          -
          <lpage>163</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          [36]
          <string-name>
            <given-names>T.</given-names>
            <surname>Parr</surname>
          </string-name>
          ,
          <article-title>The definitive ANTLR 4 reference</article-title>
          , Pragmatic Bookshelf,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref37">
        <mixed-citation>
          [37]
          <string-name>
            <given-names>M.</given-names>
            <surname>Gebser</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Kaminski</surname>
          </string-name>
          , B. Kaufmann, T. Schaub, Clingo= asp+ control:
          <source>Preliminary report,</source>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>