<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Automated Playing of Survival Video Games with Commonsense Reasoning</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Bryant</forename><surname>Hargreaves</surname></persName>
							<email>bryant.hargreaves@utdallas.edu</email>
							<affiliation key="aff0">
								<orgName type="institution">The University of Texas at Dallas</orgName>
								<address>
									<settlement>Richardson</settlement>
									<country key="US">USA</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Dan</forename><forename type="middle">N</forename><surname>Nguyen</surname></persName>
							<email>dan.nguyen@utdallas.edu</email>
							<affiliation key="aff0">
								<orgName type="institution">The University of Texas at Dallas</orgName>
								<address>
									<settlement>Richardson</settlement>
									<country key="US">USA</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Keegan</forename><surname>Kimbrell</surname></persName>
							<email>keegan.kimbrell@utdallas.edu</email>
							<affiliation key="aff0">
								<orgName type="institution">The University of Texas at Dallas</orgName>
								<address>
									<settlement>Richardson</settlement>
									<country key="US">USA</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Gopal</forename><surname>Gupta</surname></persName>
							<email>gupta@utdallas.edu</email>
							<affiliation key="aff0">
								<orgName type="institution">The University of Texas at Dallas</orgName>
								<address>
									<settlement>Richardson</settlement>
									<country key="US">USA</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Automated Playing of Survival Video Games with Commonsense Reasoning</title>
					</analytic>
					<monogr>
						<idno type="ISSN">1613-0073</idno>
					</monogr>
					<idno type="MD5">11357D40B0F02578E39B950DCBBC083C</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2025-04-23T19:51+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>Video Games</term>
					<term>Answer Set Programming</term>
					<term>Commonsense Reasoning</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Don't Starve is a survival video game where the objective is for the player to survive as long as possible without dying. The game is challenging to play due to new situations being randomly generated making survival quite hard. However, the game follows certain rules, that can be employed to automate its playing. Our preliminary effort reported in this paper uses the answer set programming framework to model the logic employed by the game-playing agent to survive in the game for as long as possible. The agent learns the environment around it and translates the knowledge as facts represented as predicates. A set of commonsense reasoning rules represented in ASP capture the logic that must be used to survive. The facts and rules together are used to compute the best next action that the agent must take. We use the s(CASP) goal-directed predicate ASP engine to compute the game-playing actions. The game engine has been customized to interface with the s(CASP) system. Our results indicate that our preliminary automated game playing system is able to outperform novice players. Further refinement should allow our system to play at expert level.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1.">Introduction</head><p>Video games are popular for children, teenagers, college students, and adults worldwide; however, playing them can require complex thought and reasoning, especially in randomly generated open-world survival games, where the player is presented with countless choices and unique situations. Historically, this complex thinking has been difficult to mimic with software as too many unique scenarios have to be accounted for <ref type="bibr" target="#b0">[1]</ref>. Attempts at solving this issue have been made through heuristic algorithms such as the Monte Carlo algorithm or with reinforcement machine learning models, which have achieved limited success in this field. One increasingly popular technique is using pre-trained large language models to simulate human reasoning given facts about the environment, however, its responses can be limited by hallucinations, and its large memory requirements to infer these models make it unfeasible for use in the game industry.</p><p>Our motivation for this paper is to develop an autonomous agent that can play a game in which events are randomly generated. The agent will use commonsense reasoning to compute the response. Commonsense reasoning is performed using answer set programming, in particular, the s(CASP) predicate answer set programming engine <ref type="bibr" target="#b1">[2]</ref>. Our goal is to show that automated commonsense reasoning realized through ASP and s(CASP) is an excellent tool for automated survival video game playing.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.">Background</head></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.1.">Don't Starve</head><p>strange and deadly world by a demon gentleman. After a quick greeting, the adversaries vanish, and the player has to figure out how to survive <ref type="bibr" target="#b2">[3]</ref>.</p><p>The player's objective is to survive as long as possible. To survive, a player must carry out operations such as scavenging for food, building a campfire to stay warm, etc. If not fed, for example, the player will eventually die. After playing and dying a few times with no help at all from the games, the player will figure out some important mechanics. The core game mechanics that are important when creating Agent Wilson <ref type="bibr" target="#b3">[4]</ref> are discussed next. Hunger: Hunger is represented as a yellow icon, and when it reaches 0, the player's health will drop drastically until the player dies. There are many actions that players perform, e.g., running and chopping trees, that deplete a player's energy. Just staying alive also slowly depletes it. The player's energy is displayed in a hunger bar. Players can always eat food to replenish energy and slow down starvation.</p><p>Health: Health is represented as a red icon, and when it reaches 0, the player dies. Usually, that means the game is over, except for some scenarios. Health is drained due to hostile mobs, natural disasters like lightning and fire, or hunger. Eating foods might improve the player's health, as shown in the health icon.</p><p>Sanity: Sanity is represented as an orange icon, and when it gets near 0, players will be in a hallucinated state, and hostile mobs will keep spawning to attack the player. They can increase/decrease passively due to the Day/Night Cycle, but the most common causes that drain sanity are Evil Flowers, eating raw meat, fighting hostile mobs, and killing animals. The best way to replenish it is to pick up flowers and/or make a garland from these flowers and wear them <ref type="bibr" target="#b4">[5]</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Day/Night Cycle:</head><p>The Day/Night Cycle of Don't Starve is a constant factor. It acts as a sort of clock, and each day will have three cycles: Day (yellow section), Dusk (red section), and Night (blue section). It is generally pretty safe during the day, but when Dusk comes, it will get darker, and the player's Sanity will start to drain slowly. When night arrives, it will become completely pitch dark unless the player has a light source like a torch or campfire. The player's sanity will also start draining during the night, but it will passively recoup some small amounts back when the day comes. Players should have a light source when the Night arrives because an invisible mob will attack and kill the players in two hits.</p><p>Inventory: The player's inventory keeps a present record of items gathered, used, and crafted. The inventory also shows if perishable foods (carrots, berries, ...) will go bad soon in 3 colors (green, yellow, and red, with red usually means the food is spoiled and should not be eaten). The player's inventory is limited to 15 items unless the player is equipped with a backpack.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Equipment:</head><p>The player has 3 slots for equipped items: tool, torso, and hat. The player can use equipped tools like an axe to chop trees for wood, a spear to hunt animals, or a torch to light up the pitch-dark night. The player can wear a torso piece like armour to reduce the damage they take from hostile mobs or keep warm during the winter season, or backpack to expand their inventory slots. Lastly, the player can wear a hat to increase/keep their sanity, stay warm during winter, etc.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Interaction and Crafting:</head><p>Interacting with the world is one of the most important elements of Don't Starve. Interacting can mean a variety of different actions, including collecting items, picking berries, gathering flowers, and chopping wood. These actions generally allow the player to obtain items in exchange for the time and stamina used to perform the action. Furthermore, players can use these items in crafting. Crafting is another core mechanism in Don't Starve that enables players to obtain tools and structures for survival. This allows players to dynamically strategize the allocation of randomly generated entities to better prepare for any scenario. The usual action to start is to gather flint and twigs, then craft an axe to chop trees and collect logs, which can be used for making a campfire to survive the night.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.2.">ASP and s(CASP)</head><p>Answer Set Programming (ASP) <ref type="bibr" target="#b5">[6,</ref><ref type="bibr" target="#b6">7]</ref> is a logic programming paradigm suited for knowledge representation and reasoning that facilitates commonsense reasoning. The s(CASP) system <ref type="bibr" target="#b1">[2]</ref> is an answer set programming system that supports predicates, constraints over non-ground variables, uninterpreted functions, and, most importantly, a top-down, query-driven execution strategy. These features make it possible to return answers with non-ground variables (possibly including constraints among them) and compute partial models by returning only the fragment of a stable model that is necessary to support the answer.</p><p>Complex commonsense knowledge can be represented in ASP and the s(CASP) query-driven predicate ASP system can be used for querying it <ref type="bibr" target="#b7">[8,</ref><ref type="bibr" target="#b8">9]</ref>. Commonsense knowledge can be emulated using (i) default rules, (ii) integrity constraints, and (iii) multiple possible worlds, according to <ref type="bibr" target="#b6">[7]</ref> and <ref type="bibr" target="#b9">[10]</ref>. Default rules are used for jumping to a conclusion in the absence of exceptions, e.g., a bird normally flies, unless it's a penguin.</p><p>1 flies(X) :-bird(X), not abnormal_bird(X). 2 abnormal_bird(X) :-penguin(X).</p><p>Integrity constraints allow us to express impossible situations and invariants. For example, a person cannot be dead and alive at the same time.</p><p>1 false :-person(X), dead(X), alive(X).</p><p>Finally, multiple possible worlds allow us to construct alternative universes that may have some parts common but other parts inconsistent. For example, the cartoon world of children's books has a lot in common with the real world (e.g., birds can fly in both worlds), yet in the former birds can talk like humans but in the latter they cannot.</p><p>A large number of commonsense reasoning applications have already been developed using ASP and the s(CASP) system: <ref type="bibr" target="#b10">[11,</ref><ref type="bibr" target="#b7">8,</ref><ref type="bibr" target="#b8">9]</ref>. Justification for each response can also be given as the s(CASP) system can generate justifications for successful queries as proof trees as shown by <ref type="bibr" target="#b11">[12]</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.">Designing Agent Wilson</head><p>Our goal in this paper is to automate the playing of the Don't Starve game. For this purpose, we created an autonomous agent that uses automated commonsense reasoning to compute what actions it must take, given the surrounding environment, in order to survive.</p><p>The main parts of creating the autonomous agents are (i) understanding the current environment and the agents' characteristics, (ii) converting the environment and characteristics into predicates, (iii) combining the predicates, rules, and constraints to compute the action(s) that the agents should take, and (iv) applying actions, or one of the best actions in order to continue surviving.</p><p>The agent will keep a feedback loop going as the game is played. Metrics are always updated after the agent applies an action or the game-state changes on its own. Therefore, these dynamic changes lead to a cycle in which the player understands the world, and uses the knowledge gained to execute an action. The agent repeats the cycle until the agent dies. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1.">Understanding the World</head><p>The base version of Don't Starve relies on a day/night system. During the day, the player can safely explore the world and gather materials <ref type="bibr" target="#b12">[13]</ref>. For the agent to explore the world, it needs to understand the world around it. Our custom game modification lets the agent know what entities are on the screen and their characteristics. For example, these factors can include whether or not a campfire is still burning, if a berry bush has berries left to pick, or even the size of an oak tree.</p><p>Following the safety of daytime is the complete darkness of the night, the player should settle down by creating a fire source and cooking food items <ref type="bibr" target="#b12">[13]</ref>. Our custom game modification relays the necessary ingredients needed to craft items such as campfires. This allows the agent to know what is possible to be created. As for understanding food, some materials might be consumable-and to combat food waste, the agent should only consume foods if it is low on points in health, hunger, and sanity. Eating extra food won't help if the agent is at the maximum level for these three measures.</p><p>Our custom game modification will send these facts and statistics so the agent can understand them. Don't Starve was created with modifications in mind, allowing developers to create Lua scripts that can influence the game <ref type="bibr" target="#b13">[14]</ref>. In our Lua script, we create a repeating event that reads the environment's data, cleans it, and sends it as JSON-formatted text to a Python server that handles the logic coded in s(CASP).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2.">Converting to Knowledge</head><p>To communicate both the game data and the agent's decision-making between each other, we need to transform the information collected from the game world into a logical form that s(CASP) can process. s(CASP) (Constraint Answer Set Programming) is well-suited for reasoning about incomplete information and constraints, making it ideal for complex decision-making scenarios like those in Don't Starve.</p><p>The JSON data obtained from the game world is converted into a set of s(CASP) predicates. These predicates represent the state of the world, the agent's current status, and the entities representing its characteristics. The facts below show that there is an evergreen (a type of tree) that has a GUID(Global Unique Identifier) of 108017. It is workable(can be interacted with via a mouse click), and choppable with an axe since it is a tree, and there is only 1 tree for that entity.</p><p>Once the environment has been converted into these logical forms, the s(CASP) engine can reason to take actions given the current game state. This allows the agent to query possible actions and outcomes based on the current world configuration. The engine evaluates all possible actions, returning a set of feasible solutions sorted by priority that satisfy the agent's survival requirements, such as staying alive, finding food, or avoiding hostile entities.</p><p>This conversion process is key to allowing the agent to understand its world in a structured, logical way. By using s(CASP), the agent can not only react to immediate needs but also reason about future states, crafting an intelligent survival strategy in a dynamic, unpredictable environment.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.3.">Computing the Possible Actions</head><p>Selecting the possible actions for the agent to perform comes after the world state has been transformed into s(CASP) predicates. Using the current environment, player statistics, and resource availability as inputs, the s(CASP) engine is queried to start the decision-making process. In assessing potential courses of action, the engine considers the agent's objectives: survival through self-management of hunger, health, and sanity and ensuring necessary resources to survive through the future (nights, seasons, and hostile monsters).</p><p>The results of each query are a list of potential actions the agent could take, including "pick_entity, " "build, " or "run_away. " There should always be one or more possible action to take at any time (we will just letting the agent wander around the world if there are no actions to complete). For example, one of the possible actions that can help survive the nights is gathering logs to make a campfire, and to get logs, trees must be chopped. Therefore, one of the rules is: action(chop_tree , chop_tree , GUID) :-choppable(GUID), equipment(axe), good_amount(log, 10), not time(night)</p><p>Note that this action is taken if there is no better action that is possible. Using the sample from when world data is converted to knowledge:</p><p>1 item_on_screen(evergreen , 108017). 2 ... 4 choppable(108017). 5 ... 11 equipment(axe). 12 ... 13 time(day) 14 ... This action will hold true, with the model output as: action(chop_tree ,chop_tree ,108017)</p><p>Chopping a tree requires the agents to do at least more than 1 chop (or more than one feedback loop). If there is more than one tree that the agents can see, the agent might do 1 chop on this tree and 1 chop on the other tree, and it has to walk in between, or the agent might not notice that tree anymore, and the axe will lose durability with no logs in return. Therefore, we implement a history system that saves the last action the agent took in order to prevent these needless action modifications. The final course of action is re-selected if it is still feasible given the current condition of the world. However, the agent should also stop chopping the tree and run away if they encounter hostile mobs. Here, the agent will ignore the history and discard the previous action so it can "run away" from these hostile mobs.</p><p>Sometimes, there might be 2 actions that are the same, but just on different entities-like either foraging a berry bush on the left or foraging a berry bush on the right. In this case, Python will be used to determine which action was pushed first in the queue, and that action will be executed by the agent. Furthermore, the "sufficient_amount" predicate uses s(CASP)'s powerful negation abilities to accurately model whether or not the agent has enough of a given resource. This predicate holds if the agent has less than the maximum amount of desired items and false otherwise. This way, the agent will stop gathering the same resource it has enough of and instead go for other resources.</p><p>1 sufficient_amount(X, MAX) :-not item_present(X). 2 sufficient_amount(X, MAX) :-item_in_inventory(X, N), N .&gt;. 0, N .&lt;. MAX.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.4.">Executing the Chosen Action</head><p>The final step in creating the agent is taking the output from the s(CASP) predicates and acting on the environment. For this, we use a script written in Lua that sends the data to the server to listen for responses. Our system relies on using a set number of predefined actions as stated previously, however, they can be customized by passing arguments specifying entities in the world. These actions include wandering around the world, walking towards entities, picking up items, foraging entities for items, cooking food, equipping and unequipping items, chopping down trees, running away from hostile entities, eating food, adding fuel to campfires, staying close to entities, and crafting items. These actions were chosen to obtain food and shelter while following basic human survival logic.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.">Evaluation</head><p>First, our goal is that Agent Wilson must be able to survive for at least 7 days. This is because we utilized the guide from Don't Starve wiki <ref type="bibr" target="#b3">[4]</ref>. In creating the agent we discovered that while the guide was useful in general, it didn't include some of the details necessary to catch all cases. For example, the guide instructs readers to avoid spiders and other hostile entities, however, it does not specify the distance a player should keep or how to properly disengage from them. Additionally, the guide instructs the player to collect everything in sight, however, it does not suggest what amounts of resources are necessary or if there should be a balance or limit to the items collected. These small details which are intuitively understood by human reasoning must be represented in s(CASP) logically and consistently. Our ultimate interpretations of these instructions can be found in the final action script run by the server.</p><p>Below is a table of Agent Wilson's unassisted attempts at surviving in randomly generated worlds. In testing, we made some minor interventions to the logic of the s(CASP) code when we found a flaw in prioritizing actions, but there were no interventions through the following attempts. With respect to related work, efforts have been made to automate the playing of the Don't Starve game. Techniques such as machine learning and reinforcement learning have been applied in the past. However, machine learning or reinforcement learning doesn't allow for the understanding of the reasoning behind their actions. For example, deep neural networks create their weights, manage their hidden layers, and only work with numerical values. With reasoning, the logic can be easily understood semantically which can be useful to the majority of video game players with little to no programming experience. Additionally, to make decisions given a vast and complicated world, they must have a large number of internal nodes to understand and output an action to each input scenario whereas with reasoning the rules can be general. This means that it can quickly output actions without fear of undesired results from under-fitting or over-fitting. Finally, with both reinforcement and machine learning, the large requirements for training and storage can deter both developers and players of video games from using reasoning and artificial agents in games altogether. While machine learning may be more scalable in this sense, reasoning is significantly more cost-effective.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Test</head></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Causes of Death</head></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.">Conclusion</head><p>In this paper we reported on our experience designing an autonomous agent that can play the survival game "Don't Starve" automatically. The agent simulates the commonsense knowledge that a human would use to play the game. It uses answer set programming and the s(CASP) goal-directed predicate ASP system to perform commonsense reasoning. Our evaluation shows that our preliminary implementation can play slightly better than the novice level-surviving for 7 days. Future work includes making our agent's reasoning stronger so that it can survive indefinitely.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Figure 1 :</head><label>1</label><figDesc>Figure 1: Player's normal game screen</figDesc><graphic coords="2,127.56,172.39,340.17,189.46" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Figure 2 :</head><label>2</label><figDesc>Figure 2: Diagram of Agent Wilson</figDesc><graphic coords="4,184.25,131.74,226.77,209.46" type="bitmap" /></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="1" xml:id="foot_0">item_on_screen(evergreen , 108017).</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="20" xml:id="foot_1">time(day, early).</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="21" xml:id="foot_2">season(summer).</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="22" xml:id="foot_3">biome(forest).</note>
		</body>
		<back>
			<div type="annex">
<div xmlns="http://www.tei-c.org/ns/1.0"><p>2 guid(108017). 3 workable(108017). 4 choppable(108017). 5 quantity(108017, 1).</p><p>Second, the agent's inventory data will be converted to predicate. For this example, the agents currently have 2 twigs in one of their inventory slots. Twigs are a fuel source that can keep a campfire burning. If twig(s) are on the ground, they can be collected.</p><p>6 slot_in_inventory(twigs , 111163). 7 guid(111163). 8 fuel(twigs). 9 collectable(twigs). 10 item_in_inventory(twigs , 2).</p><p>Third, the agent's equipment data will also be converted to predicate. This told us that the agent is equipping an axe.</p><p>11 equipment(axe). 12 equipment_guid(axe, 111191). 13 guid(111191). 14 quantity(111191, 1). 15 equippable(axe). 16 collectable(axe).</p><p>Then, the agent's statistics are mapped to predicates, so if the agent is low on health, it can eat some food in order to regain it. Currently, the agent has a high amount of health, sanity, and hunger points (a low hunger bar point means the agent is hungry). 17 sanity(high). 18 hunger(high). 19 health(high).</p><p>Finally, the world characteristics will also be mapped to predicates. These characteristics are time of day, season, and current biome that the player is standing on.</p></div>			</div>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Deep learning for video game playing</title>
		<author>
			<persName><forename type="first">N</forename><surname>Justesen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Bontrager</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Togelius</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Risi</surname></persName>
		</author>
		<ptr target="https://api.semanticscholar.org/CorpusID:37941741" />
	</analytic>
	<monogr>
		<title level="j">IEEE Transactions on Games</title>
		<imprint>
			<biblScope unit="volume">12</biblScope>
			<biblScope unit="page" from="1" to="20" />
			<date type="published" when="2017">2017</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<monogr>
		<title level="m" type="main">Constraint answer set programming without grounding</title>
		<author>
			<persName><forename type="first">J</forename><surname>Arias</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Carro</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Salazar</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Marple</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Gupta</surname></persName>
		</author>
		<idno type="DOI">10.48550/ARXIV.1804.11162</idno>
		<ptr target="https://arxiv.org/abs/1804.11162.doi:10.48550/ARXIV.1804.11162" />
		<imprint>
			<date type="published" when="2018">2018</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<monogr>
		<title level="m" type="main">Don&apos;t starve review</title>
		<author>
			<persName><forename type="first">N</forename><surname>Meunier</surname></persName>
		</author>
		<ptr target="https://www.gamespot.com/reviews/dont-starve-review/1900-6407882/" />
		<imprint>
			<date type="published" when="2014">2014</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<monogr>
		<title level="m" type="main">Guides/getting started guide</title>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">S</forename><surname>Wiki</surname></persName>
		</author>
		<ptr target="https://dontstarve.fandom.com/wiki/Guides/Getting_Started_Guide" />
		<imprint>
			<date type="published" when="2024">2024</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<monogr>
		<author>
			<persName><forename type="first">D</forename><forename type="middle">S</forename><surname>Wiki</surname></persName>
		</author>
		<ptr target="https://dontstarve.wiki.gg/wiki/Guides/Starting_Out:_A_Guide_For_Newbies" />
		<title level="m">Guides/starting out: A guide for newbies</title>
				<imprint>
			<date type="published" when="2024">2024</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Answer set programming at a glance</title>
		<author>
			<persName><forename type="first">G</forename><surname>Brewka</surname></persName>
		</author>
		<author>
			<persName><forename type="first">T</forename><surname>Eiter</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Truszczynski</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Commun. ACM</title>
		<imprint>
			<biblScope unit="volume">54</biblScope>
			<biblScope unit="page" from="92" to="103" />
			<date type="published" when="2011">2011</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<monogr>
		<author>
			<persName><forename type="first">M</forename><surname>Gelfond</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Y</forename><surname>Kahl</surname></persName>
		</author>
		<idno type="DOI">10.1017/CBO9781139342124</idno>
		<title level="m">Knowledge representation, reasoning, and the design of intelligent agents: The answer-set programming approach</title>
				<imprint>
			<publisher>Cambridge University Press</publisher>
			<date type="published" when="2014">2014</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">A physician advisory system for chronic heart failure management based on knowledge patterns</title>
		<author>
			<persName><forename type="first">Z</forename><surname>Chen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">K</forename><surname>Marple</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Salazar</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Gupta</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><surname>Tamil</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Theory Pract. Log. Program</title>
		<imprint>
			<biblScope unit="volume">16</biblScope>
			<biblScope unit="page" from="604" to="618" />
			<date type="published" when="2016">2016</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<analytic>
		<title level="a" type="main">Jury-trial story construction and analysis using goal-directed answer set programming</title>
		<author>
			<persName><forename type="first">Z</forename><surname>Xu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Arias</surname></persName>
		</author>
		<author>
			<persName><surname>Others</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. PADL</title>
				<meeting>PADL</meeting>
		<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2023">2023</date>
			<biblScope unit="volume">13880</biblScope>
			<biblScope unit="page" from="261" to="278" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<monogr>
		<title level="m" type="main">Automating common sense reasoning with ASP and s(CASP)</title>
		<author>
			<persName><forename type="first">G</forename><surname>Gupta</surname></persName>
		</author>
		<ptr target="https://utdallas.edu/~gupta/csr-scasp.pdf" />
		<imprint>
			<date type="published" when="2022">2022</date>
		</imprint>
	</monogr>
	<note type="report_type">Technical Report</note>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">Integration of logical english and s(casp)</title>
		<author>
			<persName><forename type="first">G</forename><surname>Sartor</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Davila</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Billi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Pisano</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Contissa</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Kowalski</surname></persName>
		</author>
		<ptr target=".org" />
	</analytic>
	<monogr>
		<title level="m">Proc. ICLP Workshops: GDE&apos;22</title>
		<title level="s">CEUR Workshop Proceedings</title>
		<meeting>ICLP Workshops: GDE&apos;22</meeting>
		<imprint>
			<publisher>CEUR-WS</publisher>
			<date type="published" when="2022">2970. 2022</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">Justifications for Goal-Directed Constraint Answer Set Programming</title>
		<author>
			<persName><forename type="first">J</forename><surname>Arias</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Carro</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Z</forename><surname>Chen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Gupta</surname></persName>
		</author>
		<idno type="DOI">10.4204/EPTCS.325.12</idno>
	</analytic>
	<monogr>
		<title level="m">Proceedings 36th ICLP (Tech. Comm.)</title>
				<meeting>36th ICLP (Tech. Comm.)</meeting>
		<imprint>
			<publisher>EPTCS</publisher>
			<date type="published" when="2020">2020</date>
			<biblScope unit="volume">325</biblScope>
			<biblScope unit="page" from="59" to="72" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<monogr>
		<title level="m" type="main">Don&apos;t starve review</title>
		<author>
			<persName><forename type="first">M</forename><surname>Sliva</surname></persName>
		</author>
		<ptr target="https://www.ign.com/articles/2013/05/02/dont-starve-review" />
		<imprint>
			<date type="published" when="2013">2013</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b13">
	<analytic>
		<title level="a" type="main">Lua-an extensible extension language</title>
		<author>
			<persName><forename type="first">R</forename><surname>Ierusalimschy</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><forename type="middle">H</forename><surname>De Figueiredo</surname></persName>
		</author>
		<author>
			<persName><forename type="first">W</forename><forename type="middle">C</forename><surname>Filho</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Software: Practice and Experience</title>
		<imprint>
			<biblScope unit="volume">26</biblScope>
			<biblScope unit="page" from="635" to="652" />
			<date type="published" when="1996">1996</date>
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
