<!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 />
    <article-meta>
      <article-id pub-id-type="doi">10.3233/AO-2010-0079</article-id>
      <title-group>
        <article-title>An Executable Ontology for Social Simulation</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Samuel Hill</string-name>
          <email>samuelhill2022@u.northwestern.edu</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ian Horswill</string-name>
          <email>ian@northwestern.edu</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>AIIDE Workshop on Experimental Artificial Intelligence in Games</institution>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Northwestern University</institution>
          ,
          <addr-line>2233 Tech Drive, Evanston, IL, 60208</addr-line>
          ,
          <country country="US">USA</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2010</year>
      </pub-date>
      <abstract>
        <p>Social simulations often need many of the same things - characters, locations, interactions, and relationships to name a few. These regular components of simulators are present in games ranging from major titles like The Sims [1]-[3], indie classics like Dwarf Fortress [4], and experimental interactive experiences such as Bad News (or at least in the simulator Bad News is build off - Talk of the Town) [5], [6]. Not only do these components need reimplementation in each sim, but they are also often difficult for anyone but original developers to modify [7]. In this paper we discuss how social simulators can be declaratively authored from an ontologybased representation while still maintaining playable framerates. We argue that an ontology for these entities allows for the expressive and flexible creation of social simulations. We present a language and ontology, Socialog, which enables one to declaratively author a simulation with these ontological statements while maintaining very good performance.</p>
      </abstract>
      <kwd-group>
        <kwd>Social simulation</kwd>
        <kwd>declarative programming</kwd>
        <kwd>ontology1</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        The use of declarative programming in game
development can provide several benefits such as
least-commitment design (leaving decisions about
implementation as open as possible), abstraction, and
modularity (by way of abstraction).
Leastcommitment design is a principle that is helpful when
handling major design changes that inevitably occur
during development. Abstraction and modularity are
commonly lauded principles in software development
and academia and industry more generally [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
And rightfully so: it allows flexible and varied usage of
the underlying components.
      </p>
      <p>
        Unfortunately, the major hurdle for declarative
programming is often performance - an extra sticky
point in game development where milliseconds
matter. We believe there is a "sweet spot" when
developing social simulations where declarative
programming can still be performant. Using a
bottomup logic programming language [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] we can build
social simulators almost entirely declaratively.
However, while this is a high-level abstraction over the
normal implementation of social sims, this bottom-up
evaluation language only operates at the level of
predicates.
      </p>
      <p>
        While predicates allow for the description of
logical relations and properties, ideally one would be
able to make ontological statements about the social
simulation where the descriptions are of what stuff
exists, how things relate, and when events can happen.
Socialog is a language that allows one to build a
Many AI-based games have used symbolic rules for
character control. MKULTRA [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] was written
primarily in Prolog, save for the graphics and UI code.
City of Gangsters [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] used another top-down logic
programming language, albeit with an exotic
implementation. Many other games have used some
kind of rule engine. The Sims 3 [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] used a rule-based
system to script the interactions between situations,
personality traits, and actions available to a given
character [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. Façade [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] was implemented
primarily in a reactive planning language, ABL [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ],
however its internal working memory included a
forward-chaining production system. Several other
systems have used forward-chaining rule-based
systems such as Comme Il Faut [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ], [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ], the social
simulation engine (implemented in JavaScript) upon
which Prom Week [19] was built, and the Ensemble
Engine [20], CiF’s successor.
      </p>
      <p>Several game development frameworks and social
simulation middleware have used symbolic rules,
particular for interactive narrative. One of the earliest
and most influential such systems is Nelson’s Inform 7
language [21], [22], which allows designers to build
interact narrative systems, particularly simulationist
systems, using declarative statements. The Versu
simulationist narrative system [23] used a custom
logic programming language, Praxis, which was based
on an exotic modal logic called eremic logic (aka
exclusion logic) [24]. More recently, the Lume system
[25] made extensive use of Prolog’s definite clause
grammars [26], [27] for text generation. Lapeyrade
has also used Prolog for better character decision
making [28].</p>
      <p>To our knowledge, bottom-up logic programming
has not previously been used to implement social
simulations. However, Datalog has been used for
storysifting [29], the process of searching the output of a
social simulator for interesting narrative content.
Bottom-up logic programming, and Datalog in
particular, has received the most attention in the
database community [30]–[33] where its appeal came
partly from the ability to compile it into relational
algebra operators for efficient execution on classical
database architectures, and because it can be extended
to recursive rules using a fixed-point evaluation
algorithm. This allows it to compute transitive closure
(e.g., reachability in a graph), which standard
relational algebra cannot. This is where most of the
original research on the language and its
implementation was done. More recently, it has seen
extensive use for the semantic web [34].</p>
      <p>
        Games involving large-scale social simulation are
relatively rare. The best known is Dwarf Fortress [35],
which supports real-time simulator of small hundreds
of characters. Achieving this level of performance
requires implementation in C++ and significant
programmer effort to optimize cache locality and
minimize the number of pointer indirections.
RimWorld is a very similar game that also involves
social simulation for the purpose of storytelling [36].
In the research literature, the best-known system is
Ryan’s Talk of the Town [37], which was used in the
award-winning game Bad News [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. TotT was a batch
simulation of the growth of a small American town
over the course of 140 years, ending with population
around 400 people using a time-varying level of detail.
It was implemented in Python and required many
minutes to simulate a city. More recently, Johnson-Bey
has developed Neighborly [38], a more modular and
modifiable implementation based on an
entitycomponent-system architecture [39]. With the
possible exception of RimWorld, these systems run the
simulation in a single thread.
      </p>
      <p>
        Kismet [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] is a rapid-prototyping system for social
simulations intended for casual users. It used
answerset programming (a type of logic programming)
internally. However, its focus was on allowing casual
users to build social simulations, rather than on trying
to maximize performance.
      </p>
      <p>In the process of deciding on an ontological
hierarchy we followed the guidelines of the Common
Core Ontology (CCO) for creating ontologies [40], [41].
We also used the popular ontologies DOLCE [42], the
Basic Formal Ontology (BFO) [43], and Cyc [44], [45] as
comparison points for the creation of our ontology. For
certain concepts like events and time there were
additional ontological considerations.</p>
      <p>
        Time is an inherent component of any simulation,
governing the level of detail (LOD) for events and
actions [46]. Kismet allows for the temporal “cycle” to
be authored [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], while the Web Ontology Language
(OWL) from the W3C has a time ontology [47] that has
been extended for non-Gregorian calendar
applications [48] which helped to address the
possibility for alteration of temporal granularity.
Events are another important consideration as there
ontological categorization is a hotly debated subject
matter in philosophy, linguistics, and cognitive science
[49]. Inspiration for the event structure was largely
taken from Davidson’s logical formalism for actions
and causal relation [50], [51].
      </p>
    </sec>
    <sec id="sec-2">
      <title>3. The Ontology</title>
      <p>There are a number of best practices in the
construction of ontologies, such as adopting a
“realism-based” approach or having at a multi-tiered
architecture, that helped to guide our construction of
this executable ontology [40], [41]. A realism-based
approach means we are modeling the entities in the
world that our data refers to rather than directly
modeling the data elements and their respective
relationships like in traditional database design [52],
[53]. This technique helps to shift concerns away from
implementation and toward declarability. A tiered
architecture supports modularity with a common
breakdown of levels including an upper ontology that
defines generic types of entities, a mid-level that uses
the upper ontology concepts to define structures that
are common to many domains, and lastly a
domainlevel that defines domain specific concepts [40], [41].
We have defined a simple upper ontology to guide our
designs, built a mid-level ontology as a declarative
programming language, and we have an example
domain-level system in the research game Voix de la
Ville.</p>
      <sec id="sec-2-1">
        <title>3.1. High-level ontology</title>
        <p>General AI ontologies include very abstract high-level
concepts, including some kind of top-level concept of
which all other concepts are instances, For example, in
DOLCE everything maps to a Particular [42], in Cyc
everything maps to a Thing [44], [45], and in BFO
everything maps to a continuant [43]. The ontology in
Figure 2 is still far more detailed than is needed for the
creation of a simulation but reflects the type of
taxonomy one would find in a high-level ontology as it
pertains to the concept of existence (here called
existent, also known as a continuant or endurant).</p>
        <p>Since most of the distinctions in Figure 2 are
irrelevant to our needs, we do not have an explicit
ontology at this level. Socialog is a mid-level ontology.
However, it does assume a top-level ontology
something like Figure 3.</p>
      </sec>
      <sec id="sec-2-2">
        <title>3.2. Mid-level ontology</title>
        <p>The mid-level ontology for our system represents a
majority of Socialog’s capabilities, though some
functionality in Socialog isn’t included in this ontology
section (such as table operators). Additionally, Effects
– used in Events – are used to describe state evolution
in the system and are not directly related to the
highlevel ontology.
3.2.1. Event
Events occur and can cause Effects. Events are
parameterized by participants, the Things involved in
the event. Events are represented by an occurrence
predicate, parameterized by the participants, which is
true when that event with those participants is
occurring in the current simulation step. A chronicle
also stores a record of the occurrence of every event.</p>
      </sec>
      <sec id="sec-2-3">
        <title>3.2.3. Relationship</title>
        <p>Relationships are pairings that have a value (e.g.,
strength) attributed to them. The flavor of
relationships that uses a numeric strength value we
call Affinities and the flavor using a Boolean state value
are called Relationships. Not included in Figure 6 is the
ability of Relationships (the bool variety) to be
chronicled much like an Existent. Relationships,
naturally, have a start and an end but unlike regular
existents these relationship states can come into and
out of being repeatedly, meaning (potentially) multiple
start and end times for a single relationship.</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>4. Voix de la Ville</title>
      <p>
        We are using this ontology to build a simulator called
Voix de la Ville (shown in Figure 7). The simulation is
a proof-of-concept partial reimplementation of Talk of
the Town [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] that also takes inspiration from Dwarf
Fortress’ depth of interactions and relationships [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
      </p>
      <p>
        Simulation proceeds, as all simulations do, by ticks.
Following TotT we have two ticks per day, but like
Kismet [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] or the OWL-Time ontology [47], [48] the
relationship between ticks and clock time can be
changed by the designer by editing the definition of
Time. Each tick of the clock everyone in town goes to
work or school if scheduled or obligated. Everyone else
chooses an activity to partake in and subsequently
selects a location nearest to their house that can
accommodate the chosen activity.
      </p>
      <p>Occasionally, individuals who are romantically
interested in each other will go out on a date. While at
a location, everyone can choose someone else at the
same location to interact with – preferring individuals
most similar to themselves in addition to friends and
romantic partners. These interactions can range from
neutral chatting to positive empathizing to negative
dueling, and each of the interactions affects the
relationship between its participants.</p>
      <p>An individual can have both a platonic and a
romantic affinity to another individual, with various
associated relationships like friendship, enemy, or
romantic partners. Additionally, romantic partners
that are also good friends can get married which is an
exclusive relationship (although there is still a chance
for cheating). The cycle of moving about the town and
interacting is how socialization happens and drives the
formation of our social networks.</p>
      <p>There are 44 location types across 10 categories,
each with a schedule of days and times of day they are
open. There are 62 vocations that apply to the business
locations and each business has an ideal number of
positions for each vocation. Every person has an
aptitude score for each vocation that is used to assign
the best person for an open shift of some job. Some
locations are not businesses like houses and as such do
not employ anyone. Houses are an extra special case as
they also are a type of accommodation – people live in
houses (in addition to apartments and inns). Each
house has an occupancy and as they fill up members of
the household can leave – prioritizing keeping nuclear
family units intact – for newly constructed homes.
Also, when people die, they are buried in the town
cemetery.</p>
      <p>New people can be created when a couple goes on
a very successful date. After conception approximately
nine months pass and the mother gives birth to the
baby. This is the major way in which a town
progresses. However, drifters can also come settle in
town (more come to town when there are ample jobs
to fill with a new business). This cycle of birth and
death is also applicable to location; new locations are
created as the population grows due to population
thresholds, density, or various specific cases (Doctors
office only opens when you have a really good Doctor
in town). Locations can also go out of business, and this
forces people to either move to a new home or to find
a new job.</p>
      <p>The core simulation code – written in Socialog – is
under 500 lines with comments. This does not include
the Unity/GUI specific code, the TED and Simulog
libraries, and ignores some custom value types and
utils (mainly declaring enumeration types with some
time structs/classes).</p>
    </sec>
    <sec id="sec-4">
      <title>5. Socialog</title>
      <p>
        Simulog is implemented as a layer on top of TED [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ],
a high-performance, bottom-up logic programming
language embedded in C#. Like Datalog, TED stores
the extensions of predicates in tables that can be
queried like databases; in what follows we will use the
terms table and predicate largely interchangeably.
Socialog internally maintains tables of events,
existents, and relationships that are akin to a relational
database. As such, the diagrams of Socialog’s
implementation will include a sort of table notation to
imply this underlying structure.
      </p>
      <p>Much of the ontology surrounds the concepts of
events and existents. An event is a kind of thing that
can happen at a point in time, such as birth or death.
An existent is a kind of thing that exists during some
interval of time, such as a person. The start and end of
an existent are events. For example, the start of a
person is their birth.
5.1. Event
Events are both a standalone predicate that allows one
to say what should be occurring on a given tick as well
as the underlying mechanism that all other Socialog
predicates use to express when something should
happen. Events can declare Effects, which are
additions or modifications to other predicates.</p>
      <p>Figure 8 shows foreclosure and can be translated
to say “There is an event called foreclosed upon that an
occupant (person) participates in when the home they
live at is ending (will no longer exist). When foreclosed
upon, move the occupant of that place to another home
that isn’t currently overcrowded.” “Place.End” inside
Figure 8 is referring to the End event for the Place
Existent, while “Home” is a standard Predicate that
simply tracks who lives where.</p>
      <p>Figure 9 outlines the Event architecture in
Socialog, where each event that is defined has an
internally maintained table with columns for each
participant. A Chronicled Event is derived from its
respective event, storing every occurrence of the event
ever instead of just the occurrences in the current tick.
The chronicle is created automatically when the
simulation includes rules that refer to the history of
the event (by saying, e.g.,
“ForeclosedUpon(who).At(time)”).
Existents are things that exist with some temporal
extent, not instantaneous events but also not
universals with no durative quality. Characters and
Places are good examples of existents (Figure 1 shows
the Place existent), things with a clear start and end.</p>
      <p>Existents are made up of several tables with three
different events, the table of existents (with a Boolean
exists column for quick access of those that do exist as
well as those that did), and an optional table of
attributes for the existent. Figure 10 outlines this
architecture – the ellipses under the attributes table
indicate that there can be a variable number of
features and, like the limitation described in Figure 9,
there can be up to 7 features in the attributes table.</p>
      <p>Figure 11 shows the event for procreation, the
embryo existent, and the connection between the
embryo and character existents. This can be translated
to say “Embryos are a thing that exist (with some
temporal extent), and they have the features of a
mother, father, sex, and date of conception. Embryos
start when Procreation happens – Procreation
happens when a woman and man successfully
procreate, and this assigns a sex and name to the child.</p>
      <p>An embryo ends after 9 months have passed with an
80% probability per tick to simulate labor. When an
embryo ends, the child is added to the Parent table as
a child of each parent and the embryo becomes a
person in the Character existent.”</p>
      <p>Of note here is the ability to rewrite the
“Character.StartWhen(Embryo.End[person]);” line as
“Embryo.EndCauses(Character.Start[person]);”.
Separating out these effects into relevant groupings is
yet another example of the modularity found in
making these sorts of ontological statements. Effects
are critical to Socialog’s expressive ability, allowing
predicates to be modified by code omnidirectionally –
instead of setting a column or adding a row in the code
for a given predicate, we can do the same thing from
any of the predicates that are referencing it.</p>
      <sec id="sec-4-1">
        <title>5.3. Affinity</title>
        <p>Affinity is a type of relation between two things where
the relationship has an associated score, or affinity.
The Affinity architecture is rather simple, as shown in
Figure 12, with a base table storing all affinities and a
change event that indicates when an affinity needs to
be updated and by what amount.</p>
        <p>Figure 13 shows the Spark and Charge affinities
which translate to platonic and romantic affinity and
are lifted from TotT. While this code could be made
even shorter by storing the interaction types and
associated deltas in a dictionary or table, the
readability of the update when functions would be
compromised.</p>
        <p>Although this example implies a use case of
person-to-person affinity, this architecture is flexible
enough to let one establish an affinity between any two
classes of things. For example, spiritual or institutional
affinity as is found in Dwarf Fortresses Deity, Object of
Worship, or Force relationships. Another example
would be the needs system found in The Sims where
each need could be an affinity that scores action
urgency.</p>
      </sec>
      <sec id="sec-4-2">
        <title>5.4. Relationships</title>
        <p>Relationships come in several varieties, but the most
basic is depicted in Figure 15. A relationship can come
into and out of being, and the way in which a
relationship starts or ends is decided by a start and end
event. While this information is not stored in the
Relationship table, a Relationship Chronicle can be
made in much the same way as an Event Chronicle and
this Chronicle tracks relationship starts and ends
(even if they start and end multiple times).</p>
        <p>In addition to this basic relationship type, there is
a symmetric variant – e.g., where A relating to B is the
same relationship as B relating to A – that uses the
same structure as a relationship but internally
maintains pair symmetry. One variant on the
symmetric relationship is the exclusive relationship
that, in addition to using the same basic structure and
maintaining symmetry, also maintains exclusivity (a
given individual can maintain the relationship with at
most one other individual). By using the same
structure for all relationship types, switching the logic
of a relationship from the normal asymmetric type to a
symmetric type is as easy as changing the constructor
function name and/or pairing variable.</p>
      </sec>
      <sec id="sec-4-3">
        <title>5.4.1. Affinity Relationship</title>
        <p>Another special case relationship is the affinity
relationship. Affinity is already tracking some value for
a pairing and a common way that we would create
relationships was by using thresholds for the start and
end values in some affinity table. To both simplify this
process and ensure a performant implementation we
added affinity relationships. While structured much
the same as other relationship variants, there is no
start/end when function as this is handled by the
affinity start and end.</p>
        <p>Figure 14 shows three affinity relationships and an
exclusive relationship that is derived from the other
relations. The affinity relationship lines translate to
“there is a relationship named Name that starts at the
affinity score value 1 and ends at the affinity score
value 2.” In other words, this relationship starts when
you cross one threshold and ends when you cross
another. The lines for the Lover relation say, “there is
an exclusive relationship called lover that starts when
two people consider each other to be both friends and
romantic partners and ends when one of the two dies.”
It would be easy enough to make Lover non-exclusive
(use Relationship not ExclusiveRelationship), but
Lover acts as our analog for marriage currently.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>6. Visualization</title>
      <p>While there is not any user intervention in the
simulation yet, the visualization tools we have built are
not only helpful in debugging but also entertaining to
watch. There are currently two major visualizers in
Voix de la Ville – Table viewers and Graph viewers.
Predicates’ underlying implementation is as tabular
data so a basic table viewer running during the
simulation allows for inspection of the contents of the
entire sim in neat tabular forms. While table viewers
are a critical component of our debug/visualization
capabilities, the point of Socialog is to build social sims
and thus we naturally form social networks. A graph
visualizer can be used for anything from family trees
and friend networks to the dataflow diagram of how
predicates connect to one another. Both display
techniques are shown in Figure 7.</p>
      <p>Tilemaps from Unity are also used to display
locations. Although this isn’t as useful for debugging –
only really showing how the town is physically laid out
– you can hover over each tile and see some basic
information including who is currently at the location.</p>
    </sec>
    <sec id="sec-6">
      <title>7. Performance</title>
      <p>In addition to the expressivity and modularity
demonstrated by Socialog, the performance is
acceptable, if not competitive with hand crafted code.
The data shown in figures 16 through 18 were
collected in one 15-minute run of the simulation. The
simulation was running on a desktop PC with an
i77700k CPU clocked at 4.6GHz (4.8 boost) and 32GB of
1,500 MHz RAM. While running inside of Unity, the
data collected only measured the execution time of the
Socialog code not any graphical computations (this is
why the GPU information is not relevant).</p>
      <p>Figure 16 shows the overall performance of
Socialog in Voix de la Ville as a function of population.
On the low end of the population spectrum – 50
characters – we have 15-25ms execution times per tick
while the high end – 450 characters – takes roughly
600ms per tick. This reflects a sum of the per-entity
updates, which grows linearly with the population, and
the per-character-pair updates, such as affinities,
which necessarily grow quadratically with the
population. The per capita performance data is shown
in Figure 17. On the low end of the population
spectrum, we have 0.4ms execution per character and
by the time we are at the high end that has only
increased to 1.4ms.</p>
      <p>Figure 18 shows the total run that collected this
data. Over a period of 37 in-simulation years the
population grew (shown by the green points) and with
it the execution time (shown by the purple points).
Clearly visible are some plateaus in population
followed by sharp growth (this is caused by new
locations attracting “drifters” to fill the jobs).
Regardless of this inconsistent growth, the
performance data heavily correlates with population.
Additionally of note, the population can be capped to
help maintain a higher performance – a technique
present in Dwarf Fortress with a common high end of
roughly 200 dwarves [54].</p>
      <p>While the performance of Socialog is already
acceptable for numerous use cases, there are two
major bits of apologia that can address potential
improvements. One is that the technique that drives
Socialog, bottom-up logic programming, is amenable
to parallelization and that is not something we have
implemented yet. Second is that we have not done an
optimization pass over TED, Socialog, and Voix de la
Ville to ensure that we are eking as much performance
out of these systems as possible.</p>
    </sec>
    <sec id="sec-7">
      <title>8. Future Work</title>
      <p>Although we handle the quadratic nature of
interaction reasonably well in terms of performance,
there are doubtless better abstractions for addressing
this problem. Similarly, there are modules that have
yet to be built out for concepts such as ownership and
part/whole relations. More patterns are likely to
emerge in the development of Voix de la Ville, and
these will inform future ontological categories and
components.</p>
      <p>While a full-fledged STRIPs planner is likely out of
the picture for character control (for performance
reasons), some form of action planning that goes
beyond single-tick action section is also worth
investigating. Level of Detail (LOD) support, such as in
Talk of the Town, would also be useful. This would
allow the system to simulate some parts or eras of the
world more coarsely than others.</p>
    </sec>
    <sec id="sec-8">
      <title>9. Conclusion</title>
      <p>Social simulation is an important emerging area of
gameplay, but building these simulators is difficult.
Socialog shows that it is possible to author these sims
at a remarkably high level while still maintaining
acceptable performance.
[20]
[21]
[22]
[23]
[24]</p>
      <p>Jun. 2010, pp. 1–8. doi:
10.1145/1822309.1822319.</p>
      <p>J. McCoy, M. Treanor, B. Samuel,
A. A. Reed, N. Wardrip-Fruin, and M.
Mateas, “Prom week,” in Proceedings
of the International Conference on the
Foundations of Digital Games, in FDG
’12. New York, NY, USA: Association
for Computing Machinery, May 2012,
pp. 235–237. doi:
10.1145/2282338.2282384.</p>
      <p>B. Samuel, A. A. Reed, P.
Maddaloni, M. Mateas, and N.
Wardrip-Fruin, “The Ensemble Engine:
Next-Generation Social Physics”.</p>
      <p>G. Nelson, “Inform 7.” 2006.</p>
      <p>G. Nelson, “NATURAL
LANGUAGE, SEMANTIC
ANALYSIS AND INTERACTIVE
FICTION.”</p>
      <p>R. Evans and E. Short, “Versu—A
Simulationist Storytelling System,”
IEEE Trans. Comput. Intell. AI Games,
vol. 6, no. 2, pp. 113–130, Jun. 2014,
doi: 10.1109/TCIAIG.2013.2287297.</p>
      <p>R. Evans, “Introducing Exclusion
Logic as a Deontic Logic,” in Deontic
Logic in Computer Science, G.
Governatori and G. Sartor, Eds., in
Lecture Notes in Computer Science,
vol. 6181. Berlin, Heidelberg: Springer
Berlin Heidelberg, 2010, pp. 179–195.
doi: 10.1007/978-3-642-14183-6_14.</p>
      <p>S. Mason, C. Stagg, and N.
Wardrip-Fruin, “Lume: a system for
procedural story generation,” in
Proceedings of the 14th International
Conference on the Foundations of
Digital Games, San Luis Obispo
California USA: ACM, Aug. 2019, pp.
1–9. doi: 10.1145/3337722.3337759.</p>
      <p>F. C. N. Pereira and D. H. D.
Warren, “Definite clause grammars for
language analysis—A survey of the
formalism and a comparison with
augmented transition networks,” Artif.
Intell., vol. 13, no. 3, pp. 231–278, May
1980, doi:
10.1016/00043702(80)90003-X.
[42]
[36]
[37]
[40]
[41]</p>
      <p>J. N. Otte, J. Beverley, and A.
Ruttenberg, “Basic Formal Ontology:
Case Studies”.</p>
      <p>D. Lenat, M. Prakash, and M.
Shepherd, “CYC: Using Common
Sense Knowledge to Overcome
Brittleness and Knowledge Acquisition
Bottlenecks”.</p>
      <p>D. Ramachandran, P. Reagan, and
K. Goolsbey, “First-orderized
ResearchCyc: Expressivity and
efficiency in a common-sense
ontology,” Jan. 2005.</p>
      <p>J. F. Allen, “Towards a general
theory of action and time,” Artif. Intell.,
vol. 23, no. 2, pp. 123–154, Jul. 1984,
doi: 10.1016/0004-3702(84)90008-0.</p>
      <p>“Time Ontology in OWL.” Nov. 15,
2022. [Online]. Available:
https://www.w3.org/TR/owl-time/</p>
      <p>S. J. D. Cox, “Time ontology
extended for non-Gregorian calendar
applications,” Semantic Web, vol. 7, no.
2, pp. 201–209, Feb. 2016, doi:
10.3233/SW-150187.</p>
      <p>R. Casati and A. Varzi, “Events,”
The Stanford Encyclopedia of
Philosophy. Metaphysics Research
Lab, Stanford University, 2023.
Accessed: Jul. 15, 2023. [Online].
Available:
https://plato.stanford.edu/archives/fall
2023/entries/events/</p>
      <p>D. Davidson, “The Logical Form of
Action Sentences,” in Essays on
Actions and Events, 1st ed.Oxford
University PressOxford, 2001, pp.
105–148. doi:
10.1093/0199246270.003.0006.</p>
      <p>D. Davidson, “Causal Relations,” J.
Philos., vol. 64, no. 21, pp. 691–703,
1967, doi: 10.2307/2023853.</p>
      <p>B. Smith, “New Desiderata for
Biomedical Terminologies,” J. Biomed.
Inform. - JBI, Jan. 2008.</p>
      <p>B. Smith and W. Ceusters,
“Ontological realism: A methodology
for coordinated evolution of scientific
ontologies,” Appl. Ontol., vol. 5, no. 3–</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <article-title>[1] “The Sims 3</article-title>
          .” Maxis,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>D.</given-names>
            <surname>Nutt</surname>
          </string-name>
          and
          <string-name>
            <given-names>D.</given-names>
            <surname>Railton</surname>
          </string-name>
          , “
          <article-title>The Sims: Real Life as Genre,”</article-title>
          <source>Inf. Commun. Soc.</source>
          , vol.
          <volume>6</volume>
          , no.
          <issue>4</issue>
          , pp.
          <fpage>577</fpage>
          -
          <lpage>592</lpage>
          , Dec.
          <year>2003</year>
          , doi: 10.1080/1369118032000163268.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>S.</given-names>
            <surname>Johnson-Bey</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. J.</given-names>
            <surname>Nelson</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Mateas</surname>
          </string-name>
          , “Exploring the Design Space of Social Physics Engines in Games,” in Interactive Storytelling,
          <string-name>
            <given-names>M.</given-names>
            <surname>Vosmeer</surname>
          </string-name>
          and
          <string-name>
            <given-names>L.</given-names>
            <surname>Holloway-Attaway</surname>
          </string-name>
          , Eds.,
          <source>in Lecture Notes in Computer Science</source>
          , vol.
          <volume>13762</volume>
          . Cham: Springer International Publishing,
          <year>2022</year>
          , pp.
          <fpage>559</fpage>
          -
          <lpage>576</lpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>031</fpage>
          - 22298-6_
          <fpage>36</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>“DF2014:Relationship - Dwarf Fortress</surname>
          </string-name>
          Wiki.” https://www.dwarffortresswiki.org/ind ex.
          <source>php/DF2014:Relationship (accessed Jul</source>
          .
          <volume>17</volume>
          ,
          <year>2023</year>
          ).
        </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.</given-names>
            <surname>Summerville</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mateas</surname>
          </string-name>
          , and
          <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>
          ,” Nov.
          <year>2016</year>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>319</fpage>
          -48279-8_
          <fpage>10</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>B.</given-names>
            <surname>Samuel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Summerville</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Ryan</surname>
          </string-name>
          , and L. England, “
          <article-title>A Quantified Analysis of Bad News for Story Sifting Interfaces</article-title>
          ,” in Interactive Storytelling,
          <string-name>
            <given-names>A.</given-names>
            <surname>Mitchell</surname>
          </string-name>
          and M. Vosmeer, Eds., in Lecture Notes in Computer Science. Cham: Springer International Publishing,
          <year>2021</year>
          , pp.
          <fpage>142</fpage>
          -
          <lpage>156</lpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>030</fpage>
          -92300-6_
          <fpage>13</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>A.</given-names>
            <surname>Summerville</surname>
          </string-name>
          and
          <string-name>
            <given-names>B.</given-names>
            <surname>Samuel</surname>
          </string-name>
          , “Kismet:
          <string-name>
            <given-names>A Small</given-names>
            <surname>Social Simulation Language”.</surname>
          </string-name>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>S.</given-names>
            <surname>Brusoni</surname>
          </string-name>
          et al., “
          <article-title>The power of modularity today: 20 years of 'Design Rules</article-title>
          ,'” Ind. Corp. Change, vol.
          <volume>32</volume>
          , no.
          <issue>1</issue>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>10</lpage>
          , Feb.
          <year>2023</year>
          , doi: 10.1093/icc/dtac054.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>M.</given-names>
            <surname>Sonego</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. E. S.</given-names>
            <surname>Echeveste</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H.</given-names>
            <surname>Galvan Debarba</surname>
          </string-name>
          , “
          <article-title>The role of modularity in sustainable design: A systematic review,”</article-title>
          <string-name>
            <given-names>J.</given-names>
            <surname>Clean</surname>
          </string-name>
          . Prod., vol.
          <volume>176</volume>
          , pp.
          <fpage>196</fpage>
          -
          <lpage>209</lpage>
          , Mar.
          <year>2018</year>
          , doi: 10.1016/j.jclepro.
          <year>2017</year>
          .
          <volume>12</volume>
          .106.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>I.</given-names>
            <surname>Horswill</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Hill</surname>
          </string-name>
          , “Fast, Declarative,
          <source>Character Simulation Using Bottom-Up Logic Programming,” presented at the AIIDE Workshop on Experimental Artificial Intelligence in Games</source>
          , University of Utah, Utah, USA, Oct.
          <year>2023</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>I. Horswill</surname>
          </string-name>
          , “
          <article-title>Postmortem: MKULTRA, An Experimental AIBased Game,”</article-title>
          <source>Proc. AAAI Conf. Artif. Intell. Interact. Digit. Entertain.</source>
          , vol.
          <volume>14</volume>
          , no.
          <issue>1</issue>
          ,
          <string-name>
            <surname>Art</surname>
          </string-name>
          . no.
          <issue>1</issue>
          ,
          <string-name>
            <surname>Sep</surname>
          </string-name>
          .
          <year>2018</year>
          , doi: 10.1609/aiide.v14i1.
          <fpage>13027</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12] “City of Gangsters.” SomaSim, Chicago,
          <year>2021</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>R.</given-names>
            <surname>Evans</surname>
          </string-name>
          , “
          <article-title>AI challenges in Sims 3,”</article-title>
          <string-name>
            <surname>Artif. Intell. Interact. Digit. Entertain.</surname>
          </string-name>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>M.</given-names>
            <surname>Mateas</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Stern</surname>
          </string-name>
          , “Façade.”
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>M.</given-names>
            <surname>Mateas</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Stern</surname>
          </string-name>
          , “
          <article-title>Façade: An Experiment in Building a FullyRealized Interactive Drama”</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>M.</given-names>
            <surname>Mateas</surname>
          </string-name>
          and
          <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 Intell. Syst.</source>
          , vol.
          <volume>17</volume>
          , no.
          <issue>4</issue>
          , pp.
          <fpage>39</fpage>
          -
          <lpage>47</lpage>
          , Jul.
          <year>2002</year>
          , doi: 10.1109/MIS.
          <year>2002</year>
          .
          <volume>1024751</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <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>N.</given-names>
          </string-name>
          <string-name>
            <surname>Wardrip-Fruin</surname>
            , and
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Mateas</surname>
          </string-name>
          , “
          <article-title>Comme il Faut: A System for Authoring Playable Social Models,”</article-title>
          <source>Proc. AAAI Conf. Artif. Intell. Interact. Digit. Entertain.</source>
          , vol.
          <volume>7</volume>
          , no.
          <issue>1</issue>
          , pp.
          <fpage>158</fpage>
          -
          <lpage>163</lpage>
          , Oct.
          <year>2011</year>
          , doi: 10.1609/aiide.v7i1.
          <fpage>12454</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <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>B.</given-names>
          </string-name>
          <string-name>
            <surname>Tearse</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Mateas</surname>
          </string-name>
          , and N. WardripFruin, “
          <article-title>Comme il Faut 2: a fully realized model for socially-oriented gameplay</article-title>
          ,”
          <source>in Proceedings of the Intelligent Narrative Technologies III Workshop</source>
          , Monterey California: ACM,
          <string-name>
            <given-names>S. P.</given-names>
            <surname>Harrison</surname>
          </string-name>
          , “
          <article-title>Review of Prolog and Natural Language Analysis</article-title>
          ,
          <source>” Language</source>
          , vol.
          <volume>64</volume>
          , no.
          <issue>3</issue>
          , pp.
          <fpage>627</fpage>
          -
          <lpage>631</lpage>
          ,
          <year>1988</year>
          , doi: 10.2307/414538. S. Lapeyrade, “
          <article-title>Reasoning with Ontologies for Non-player Character's Decision-Making in Games,”</article-title>
          <source>Proc. AAAI Conf. Artif. Intell. Interact. Digit. Entertain.</source>
          , vol.
          <volume>18</volume>
          , no.
          <issue>1</issue>
          ,
          <string-name>
            <surname>Art</surname>
          </string-name>
          . no.
          <issue>1</issue>
          ,
          <string-name>
            <surname>Oct</surname>
          </string-name>
          .
          <year>2022</year>
          , doi: 10.1609/aiide.v18i1.21980.
          <string-name>
            <surname>M. Kreminski</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Dickinson</surname>
            , and
            <given-names>N.</given-names>
          </string-name>
          <string-name>
            <surname>Wardrip-Fruin</surname>
            , “Felt:
            <given-names>A Simple</given-names>
          </string-name>
          <string-name>
            <surname>Story</surname>
            <given-names>Sifter</given-names>
          </string-name>
          ,” in Interactive Storytelling,
          <string-name>
            <given-names>R. E.</given-names>
            <surname>Cardona-Rivera</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Sullivan</surname>
          </string-name>
          , and
          <string-name>
            <given-names>R. M.</given-names>
            <surname>Young</surname>
          </string-name>
          , Eds.,
          <source>in Lecture Notes in Computer Science</source>
          , vol.
          <volume>11869</volume>
          . Cham: Springer International Publishing,
          <year>2019</year>
          , pp.
          <fpage>267</fpage>
          -
          <lpage>281</lpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>030</fpage>
          - 33894-7_
          <fpage>27</fpage>
          . S. Ceri, G. Gottlob, and L. Tanca, “
          <article-title>What you always wanted to know about Datalog (and never dared to ask</article-title>
          ),
          <source>” IEEE Trans. Knowl. Data Eng.</source>
          , vol.
          <volume>1</volume>
          , no.
          <issue>1</issue>
          , pp.
          <fpage>146</fpage>
          -
          <lpage>166</lpage>
          , Mar.
          <year>1989</year>
          , doi: 10.1109/69.43410. S. Abiteboul,
          <string-name>
            <given-names>R.</given-names>
            <surname>Hull</surname>
          </string-name>
          , and
          <string-name>
            <given-names>V.</given-names>
            <surname>Vianu</surname>
          </string-name>
          , Foundations of databases, 1st ed.
          <source>in Addison Wesley. Pearson</source>
          ,
          <year>1994</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          <source>Accessed: Jul. 16</source>
          ,
          <year>2023</year>
          . [Online]. Available: http://webdam.inria.fr/Alice/pdfs/all.p df S. Ceri, G. Gottlob, and
          <string-name>
            <given-names>L.</given-names>
            <surname>Tanca</surname>
          </string-name>
          ,
          <article-title>Logic Programming and Databases</article-title>
          . in Surveys in Computer Science. Berlin, Heidelberg: Springer Berlin Heidelberg,
          <year>1990</year>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>642</fpage>
          -83952-8.
          <string-name>
            <given-names>J. D.</given-names>
            <surname>Ullman</surname>
          </string-name>
          ,
          <article-title>Principles of database and knowledge-base systems</article-title>
          . in Principles of computer science series. Rockville, Md: Computer Science Press,
          <year>1988</year>
          . G. Gottlob,
          <string-name>
            <given-names>G.</given-names>
            <surname>Orsi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Pieris</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Šimkus</surname>
          </string-name>
          , “
          <article-title>Datalog and Its Extensions for Semantic Web Databases,” in Reasoning Web</article-title>
          .
          <source>Semantic Technologies for Advanced Query Answering: 8th International Summer School</source>
          <year>2012</year>
          , Vienna, Austria, September 3-
          <issue>8</issue>
          ,
          <year>2012</year>
          . Proceedings, T. Eiter and T. Krennwallner, Eds.,
          <source>in Lecture Notes in Computer Science</source>
          . Berlin, Heidelberg: Springer,
          <year>2012</year>
          , pp.
          <fpage>54</fpage>
          -
          <lpage>77</lpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>642</fpage>
          -33158-
          <issue>9</issue>
          _2.
          <string-name>
            <given-names>T.</given-names>
            <surname>Adams</surname>
          </string-name>
          and
          <string-name>
            <given-names>Z.</given-names>
            <surname>Adams</surname>
          </string-name>
          , “
          <article-title>Slaves to Armok: God of Blood Chapter II: Dwarf Fortress</article-title>
          .
          <source>” Bay 12 Games</source>
          ,
          <year>2006</year>
          . T. Sylvester, “RimWorld.” Ludeon Studios, Oct.
          <year>2018</year>
          . J. Ryan, “Curating Simulated Storyworlds,” Univercity of California Santa Cruz,
          <year>2018</year>
          . S. Johnson-Bey,
          <string-name>
            <given-names>M. J.</given-names>
            <surname>Nelson</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Mateas</surname>
          </string-name>
          , “
          <article-title>Neighborly: A Sandbox for Simulation-based Emergent Narrative</article-title>
          ,” in
          <source>2022 IEEE Conference on Games (CoG)</source>
          ,
          <source>Aug</source>
          .
          <year>2022</year>
          , pp.
          <fpage>425</fpage>
          -
          <lpage>432</lpage>
          . doi:
          <volume>10</volume>
          .1109/CoG51982.
          <year>2022</year>
          .
          <volume>9893631</volume>
          . “
          <article-title>Entity Systems are the future of MMOG development - Part 1 - Tmachine</article-title>
          .org,” Jul.
          <volume>31</volume>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          https://new.tmachine.org/index.php/
          <year>2007</year>
          /09/03/
          <article-title>ent ity-systems-are-the-future-of-mmogdevelopment-part-1/ (accessed Jul</article-title>
          .
          <volume>21</volume>
          ,
          <year>2023</year>
          ). R. Rudnicki, “
          <article-title>An Overview of the Common Core Ontologies</article-title>
          ,” White Paper, Feb.
          <year>2019</year>
          . [Online]. Available: https://www.nist.gov/system/files/docu ments/
          <year>2021</year>
          /10/14/nist-ai-rficubrc_inc_004.
          <string-name>
            <surname>pdf</surname>
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Rudnicki</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Smith</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          <string-name>
            <surname>Malyuta</surname>
          </string-name>
          , and W. Mandrick, “Best Practices of Ontology Development,” White Paper, Oct.
          <year>2016</year>
          . [Online]. Available: https://www.nist.gov/system/files/docu ments/
          <year>2021</year>
          /10/14/nist-ai-rficubrc_inc_002.pdf
          <string-name>
            <given-names>S.</given-names>
            <surname>Borgo</surname>
          </string-name>
          et al.,
          <string-name>
            <surname>“</surname>
            <given-names>DOLCE</given-names>
          </string-name>
          :
          <article-title>A descriptive ontology for linguistic and cognitive engineering</article-title>
          ,” Appl. Ontol., vol.
          <volume>17</volume>
          , no.
          <issue>1</issue>
          , pp.
          <fpage>45</fpage>
          -
          <lpage>69</lpage>
          , Jan.
          <year>2022</year>
          , doi: 10.3233/AO-210259.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>