All Classes and Interfaces

Class
Description
An abstract adapter is used to configure a GsonBuilder to read and write objects that share a common parent class, including abstract types like interfaces and abstract classes.
An action is a signed asset that causes a change in a story world's state.
An agent represents an individual connection to a server that can server as one of the roles in a session.
A list of command line arguments and various utility methods to parse keys and values.
An asset is any named object or concept in a story world.
A tool for defining the assets used in a story world.
An assignment is a logical formula that assets that some variable in a story world has a value.
The choice message is sent from an agent to the {edu.uky.cs.nil.tt.Server server} to signal what turn the agent wants to take.
A client connects to a server to find a partner and play a role in a storytelling session.
A client factory creates continuously creates clients to connect to a server and is useful for deploying automated agents.
The clock thread regularly calls the server's tick method.
A command parser listens (on standard input) for and executes simple text commands, like modifying the server's database and shutting the server down.
A command is a type of operation that can be parsed by a command parser and executed on a server.
An operation represents a single command that can be executed on a server based on a series of arguments that define how it behaves.
The connect message is sent from the {edu.uky.cs.nil.tt.Server server} to an agent as soon as the agent connects to give details about which story worlds and agents are available for play.
Advertises that a specific story world and agent pair is waiting for a match.
A constant is a logical value that always exists in all story worlds, such a the Boolean concepts of True and False, numbers, and so on.
A database is a server's persistent store of information about the story worlds and agents available for sessions.
A database entry represents an individual elements in the database, including its meta-data, such as its title and description.
A listable entry is one that can either be set as clearly publicly available (listed) or not clearly available (unlisted).
A described object is associated with a human-readable natural language description.
A tool for generating English descriptions of certain objects based on natural language templates.
The names of elements which can be replaced in description templates
A describer rule has two parts: a context that defines when to apply it and a natural language template to use when this rule is applied.
A verb is an object used in the templates of a describer.
An effect is a logical formula that describes one way that an action modifies one state variable.
An encoded object has a unique string of 1's and 0's that uniquely distinguishes it object from others of the same type in the same story world.
An encoding is a method for translating data types to and from Java Strings so they can serialized, saved to file, and transmitted between the server and its agents.
The end message is sent from the {edu.uky.cs.nil.tt.Server server} to an agent to indicate that the session had ended and that they should now disconnect.
An ending is a signed asset that represents one of several possible ways a story can end.
An entity is an asset that represents a character, object, place, or idea in a story world.
The error message is sent from the {edu.uky.cs.nil.tt.Server server} to an agent if one of the agent's messages causes a problem or is incorrectly formatted.
A logical expression is a logical formula that can be evaluated to return a value in a state.
A generic adapter is used to configure a GsonBuilder to write all subclasses of a given superclass as that superclass.
The join message is the first message sent from an agent to the {edu.uky.cs.nil.tt.Server server} to provide the agent's credentials and its preferences for what story world, role, and partner they want for their session.
A log is used to record system messages and session data.
A logical object is anything that is itself a predicate logic formula or contains a predicate logic formula.
A logical world model implements the internal logic of a story world using logical propositions and describes its elements using a rule-based describer.
A message is information sent to or from a server in JSON format.
A named object has a unique name that specifically distinguishes it from other objects of the same type in the same context.
A proposition is a logical expression that can be either true or false.
An operator defines the behavior of a proposition.
The report message is sent from an agent to the {edu.uky.cs.nil.tt.Server server} to indicate the value of a question on a survey about the session they are playing.
Represents the two roles in a collaborative storytelling session: the Player, who typically controls a single character, and the Game Master, who controls all other characters and the environment.
The server listens for new connections from the network, reports which story worlds and agent types it supports, and makes matches between agents so they can collaborate in storytelling sessions.
The main entry point for the Tandem Tales server.
A session records the events of a story, any reports of the story's quality, and the final result at the end of a storytelling exercise between a player and game master.
An event represents a single turn during a storytelling session as well as the actual state of the story world after the turn and the state of the world as perceived by the player.
A report occurs when one participant in a session sends their response to a question about the narrative.
A result explains how the session ended.
A timestamped object records the moment at which it was created.
Constants and other project-wide settings.
A signature is a logical object that identifies a parameterized asset in a story world.
A signed asset is an asset which has a unique signature among all other assets of that type in a story world.
The start message is sent from the {edu.uky.cs.nil.tt.Server server} to an agent when a partner has been found and their session begins.
A state is an assignment of values to each variable in a story world.
A status contains the full history of a session in a story world, a description of its current state, and a list of turns that can be taken next (if any).
The stop message can be sent from either the {edu.uky.cs.nil.tt.Server server} or the agent to indicate that no more turns will happen in the session (though reports may still happen) and that the session should end soon.
 
 
A turn is one participant in a session communicating their intentions for an action to the other participant.
The kind of turn being taken
A example of how to create a logical story world model.
A unique object has a sequential integer ID that specifically distinguishes it from other objects of the same type in the same story world.
The updates message is sent from the {edu.uky.cs.nil.tt.Server server} to an agent each time a turn is taken and the state of the story world changes.
A collection of utility methods used throughout this project.
A value is a logical expression which evaluates to itself.
A variable is a signed asset that represents a feature of the story world state that can change.
A story world is a collection of assets needed for two partners in a session to tell a collaborative story.
A world model is an implementation of a story world that contains the necessary logic to simulate how turns change the story state.