Curveship

Terms specific to Curveship and how it functions as a computational system are indicated with tech. — meaning they are technical terms. Terms that have a meaning in narratology are indicated with narr. There are many terms with both designations. This is a very partial and rather casual introduction to narratology via specific terms; to learn more about terminology in the field, see Gerald Prince’s A Dictionary of Narratology. In addition to the glossary that follows, contextualizing all of these concepts, some documentation (essential for authoring in Curveship) appears at the bottom of this page:

Terms & Concepts

Actor. tech. An Existent capable of taking action and of being the agent of an Event. An Actor as defined in Curveship corresponds most directly to what is typically thought of as a character in narratology, although there are some differences. An Actor can serve as a narrator (the “I” of the narrative discourse), as a narratee (the “you”), and/or as a focalizer. Unless an Actor is offstage the Actor will be in some Place that the Curveship author has defined. Actors are defined in the story.js after Places and before Things.

agent. tech. The Actor who is actually undertaking or causing a particular Event. If Events are considered to be the “simple sentences” or “independent clauses” of narrative, agents are their subjects.

character. narr. An anthropomorphic Existent who participates in the diegesis by being part of Events. In narratology there are various theories about how characters can be round or flat (roughly, described in more or less detail, with more or less personality) and dynamic or static (developing through the narrative or staying the same). The concept of a character closely corresponds to an Actor in Curveship, but there is no notion that Actors have to be anthropomorphic, and Curveship does not provide any special facilities for modeling, for instance, dynamic vs. static characters.

cosmos. tech. This special Thing can be thought of as “nature,” responsible for earthquakes, power outages, and any occurrence where a Curveship author doesn't want to declare some other specific Actor as being responsible. Technically, cosmos is a Thing. While it is not typical for Things to be agents in Events, cosmos can serve in this way. It is defined by default in every World.

discourse. See narrative discourse.

diegesis. narr. To a first approximation, the “reality” of the narrative, inasmuch as characters who exist in narrative inhabit this diegesis. There are many more complexities in narratology, because there may be different disconnected diegeses, narrative levels, and the transgression of these (metalepsis). While Curveship allows for narrating the same underlying Events in different ways, it is not equipped to deal with these intricacies. A closely related concept in narratology is that of the story World, and indeed, the World is the model of the diegesis in Curveship.

ellipsis. narr. The omission of Events from the narrative discourse. In Curveship, because there is an explicit model of what happens in the story World, ellipsis can be accomplished with the spin.main parameter — although there are other ways as well.

expression. narr. See narrative discourse.

expression files. tech. The one or more files (each one ending in .js) that specify everything about the narrative discourse when Curveship generates a text. A set of these connect to a specific story.js file.

Event. tech., narr. Something which transpires in the World. Curveship is unusual, as a narrative generation system, in having first-order representations for Events, which are like active sentences (with verbs); they have the same status as Existents, the nouns. A Curveship author defines an Event to indicate that it does actually take place in the “reality” of the diegesis. Listing Events one after another at the end of the the story.js file arranges them in chronological order at the at the story or content level. There are one to three Existents that participate in Events and are included in their definition. The first one (always included) is the agent. If the Curveship author defines it, an Event may alter one or more property of an Existent — a typical case would be some action such as walking moving an Actor from one Place to another.

Existent. tech., narr. Something which exists, and has a representation, in the World. In a very general sense, they are “objects” — but that term means something different in object-oriented programming, so we use this other term. “Existent,” although it sounds unusual, is a bona fide term in narratology. There are three categories of Existents: Any particular one is either a Place, an Actor, or a Thing.

focalizer. tech., narr. The entity through which information about the diegesis flows to the narrative discourse. Curveship allows authors to set particular Actors as focalizers using the parameter spin.focalizer.

Names. Curveship needs to name each Existent as it generates a text, and needs to do so using a particular narrative voice. For each Existent, Names can be specified by providing what string is used on first reference and, optionally, what is used on subsequent references. If an Existent does not have corresponding Names provided in a particular narrator file, Curveship will use generic terms. For an Actor who is female and a child, for instance, this will be “a girl” on first reference and “the girl” thereafter. Names are defined in expression files and can, of course, be defined differently in each one. Curveship also offers ProperNames to provide more elaborate ways of naming. Full documentation for Names and ProperNames is in a section below.

narrative. narr. Formally (which is the way Curveship approaches narrative), a representation of one or more Events in sequence. Curveship generates narratives (narrative texts) based on abstract representations of Events in a story.js file and one or more expression files, which define the way the narrative is to be told via spin.

narrative discourse. narr.

narrator. narr. One who tells a narrative and who may be more or less overt; the “I” of the narrative discourse. Curveship allows authors to specify different narrators using the parameter spin.i. Particular texts generated by Curveship will have either “third-person” narration or explicit diegetic narrators who are Actors.

narratee. narr. One to whom a narrative is told or addressed, and who may be more or less overt; the “you” of the narrative discourse. Curveship allows authors to specify different narratees using the parameter spin.you. Particular texts generated by Curveship will have either no explicit naratee or explicit diegetic narratees who are Actors.

offstage. tech. “Where” Existents can be moved, instead of having them in an author-defined Place. Things that are offstage will be inaccessible, for instance. Actors will be as well, and will perceive nothing. This means that if one is acting as a focalizer, no narration will be generated until the focalizer is changed or that Actor is moved.

Place. tech., narr. A discrete location; the Existent corresponding most directly to what is typically thought of as setting. Everything in one Place can be seen by all Actors in that Place. (In advanced usage of the system, it’s possible to specify that other Places are visible, or partly visible, from a particular Place.) Places are defined in the story.js file right at the beginning, after the title is provided.

Spin. tech. The spin is a set of parameters indicating how the underlying story will be told. Just as a journalist or a vernacular storytellery might put a certain “spin” on a story, this describes how the “telling” will be done in Curveship. For instance, will all the underlying Events be narrated, and for those that are, in what order will they be told? What will be the time of telling relative to the Events themselves? Who, if anyone, will be designated as the “I” and “you” of the story? Although this is a technical detail that Curveship authors do not have to know about, spin is an associative array. It is defined in expression files that has assignments such as spin.timeWords = true;Full documentation for spin is in a section below.

story.js. tech. The “story file” which defines the World. The definition requires simply (1) providing a title; (2) listing all the Existents: first Places, then Actors, then Things; and finally (3) listing all the Events in sequence in which they occur. When a Curveship author defines these in a story.js file, the system automatically processes them and creates the World.

story. narr. 1. In the most vernacular meaning, a narrative that has some point to it, some meaning within a culture. When a child requests “tell me a story,” they wish to hear something that (although it may not have a moral) has some point to it. 2. A genre of narrative distinguished from other types of writing, speech, performance, or media production. A news story is understood as distinct from an op ed, just as a short story is seen as distinct from visual poetry. The child’s request in the previous definition is also a request for an utterance of a particular genre; singing “Row, Row, Row, Your Boat” might be enjoyable but would not satisfy the request. 3. One of two levels in Curveship’s narratology, the content level where there are Existents and Events. This is distinct from the level of narrative discourse, also conceptualized as the level of expression.

time of telling. To a first approximation, Curveship determines the grammatical tense a particular sentence (representation of an Events) based on two points in time that the system models: One is the time when the event occurs; the other is the point of the narrative voice’s utterance, which can be before, during, or after that event. This latter time is set with spin.speaking.

Thing. tech., narr. An Existent that is neither a location nor some sort of active entity — in theater terms, it’s more of a prop. A Thing will be in a Place unless it is offstage. It’s not typical for Things to be the agents of Events, but a Curveship author can choose to define an Event of this sort. A blender could pulverize an apple, for instance. Things are the last Existents that defined in the story.js file; they are listed just before the sequence of Events.

VerbPh. Curveship, assuming a particular narrative voice, has to represent Events. For each particular one a VerbPh (verb phrase) can be specified by providing a string that will be processed when output text is realized. These are not really what are linguistically considered verb phrases; they don't include direct and indirect objects, for instance, just verbs and prepositions. A Curveship author needs to provide a VerbPh for each Events that will end up represented in the output text; otherwise, a very generic fall-back VerbPh (“acts on”) will be used. VerbPhs are defined in expression files and can, of course, be defined differently in each one. Full documentation for VerbPh is in a section below.

World. tech., narr. The simulated world serves as a sort of diegesis at the story or content level. It defines the “reality” of all of the Actors. It is the basis of a narrative discourse (or more than one) at the expression level. When a Curveship author defines Existents and Events in a story.js file, the system can automatically use these to create the world.

Setting the Spin

Valid keys and the type of data that can be assigned as values are:

spin.i = STRING;
The “I” of the story. STRING is an Existent, e.g., actor.john or actor.cinderella.
spin.eventNumbers = BOOLEAN;
Should the Events that are represented be numbered according to their position in the underlying sequence? Setting this to true can be useful during the authoring/development of a variable narrative.
spin.expressionNumbers = BOOLEAN;
Should the expressions (the representations of Events as they end up in the final narrative) be numbered? Setting this to true can be useful during the authoring/development of a variable narrative.
spin.focalizer = STRING;
The focalizer of the story. Only those Events the focalizer can see will be included in narration. STRING is an Existent, e.g., actor.john or actor.cinderella.
spin.groupings = STRING;
How should Existents be grouped when several of them are represented at once? The string consists of zero or more of “categories” “properties” and “parts” with a space between words if there are two or three. Note that this is an advanced feature that has been tested even less than the rest of Curveship. It was added for research, rather than teaching / creative, purposes.
spin.main = STRING;
What Events will be included in the main narrative sequence? This key/value pair allows ellipsis. Values can be lists of numbers or number ranges placed in a string and with each element separated by semicolons, e.g., "0,5,7-12" or "3-8". Note that the first Event in the sequence is numbered 0.
spin.order = STRING;
What is the order in which those underlying Events that are included in the main narrative sequence will be narrated? Values can be "chronological" "random" or "retrograde" (meaning to tell the last event first and proceed backwards through them).
spin.timeWords = BOOLEAN;
Should phrases like “Previously, ” be prepended when an Event is narrated that happens earlier than the last narrated Event?
spin.referring = STRING;
This key/value pair is used internally and should not be set. It indicates (in Hans Reichenbach’s theory of tense and aspect) the time of reference.
spin.speaking = STRING || NUMBER;
What is the time of speaking or time of narrating? Values can be "before" "during" or "after" for the narrator to speak from a point in time before the Events, to follow along through each of the events (in “vivid narrative”), or to speak from a point in time after the Events. A number can be specified if the narrator should be speaking from some point in the middle of the underlying action. This number can be an integer or can end in “.5” if the narrator is speaking at a time after one event and before another. For instance, if 6.5 is given the narrator will speak from a point in time between events 6 and 7.
spin.you = STRING;
The “you” of the story. STRING is an Existent, e.g., actor.john or actor.cinderella.

Defining Names and ProperNames for Existents

Names(initial, subsequent, pronouns)

initial is required and specifies the name used for a particular Existent on first reference.

subsequent is optional. If included, this name will be used on second reference and all other references. If omitted or if null is given as the value, Curveship will determine what noun phrase to use based on the initial name. If the initial name is “a chicken,” for instance, subsequent references will be to “the chicken.” The initial/subsequent distinction allows authors to include a longer, descriptive name on first reference and an abbreviated name thereafter — for instance, “a big bad wolf” and “the wolf.”

pronouns is an optional argument. A pronoun set such as pronouns.masculine or pronouns.nonBinary can be used here. If omitted or set to null, Curveship will use information from the underlying story (in the story file) to determine what pronouns should be used by the particular narrator.

ProperNames(given, family, pronouns, common, title, possessive)

given is required and specifies the first name used for a particular Existent. This is an Actor’s first name or, if the actor has a mononym such as Sting, Logic, or Grimes, the Actor’s only name: ProperNames("Grimes"). A value must be provided, but an Actor who does not have a first name, or whose first name is unknown to a particular narrator, can have null set for this argument. Note, however, that it wouldn’t be sensible to use ProperNames without specifying any of the arguments. You would only set given to null if you were going to set family to a string value.

family is optional and specifies the family name used for a particular Existent.

pronouns is an optional argument. A pronoun set such as pronouns.masculine or pronouns.nonBinary can be used here. If omitted or set to null, Curveship will use information from the underlying story (in the story file) to determine what pronouns should be used by the particular narrator.

common is an optional argument. Specifying the common name for an Actor who also has a proper name, e.g. “a butler” for an Actor whose given name is “Jeeves.” In the current version of Curveship, this is not used, but it is provided for future versions of the system in which a narrator may switch between using proper and common names.

title is a courtesy title such as Ms. or Dr., which can be abbreviated or spelled out. The title can be used even if the Actor does not have a given name, as with Mr. Watt from Samuel Beckett’s second novel or Lady Gaga: ProperNames(null, "Watt", null, null, "Mr.") and ProperNames(null, "Gaga", null, null, "Lady").

possessive will only be used in very rare cases. It is for a custom possessive adjective, which in English only applies to certain Biblical and classical figures whose names end in ‘s’ (according to certain dictionaries and style guides). To produce the traditional possessive of Moses, for instance, this needs to be set as “Moses’” — note, however, that most names ending in ‘s’, such as that of Jorge Luis Borges and Harry Mathews, do not follow this rule, and Curveship will correctly generate their possessive adjectives, “Borges’s” and “Mathews’s.”

Defining VerbPh Representations for Events

VerbPh(base)

In the simplest case the base argument is simply the uninflected base form of a verb, such as “sing” or “jump.”

The uninflected, base form of a verb should always be the first word in base. If you use “looked,” “saw,” or some other form of the verb, Curveship won’t be able to conjugate it properly.

The value base can also be set to be a longer phrase, such as a verb + preposition (“wake up,” “get down,” “talk to”) or a verb + infinitive (“decide to tell,” “fail to lift”). However, the VerbPh should never include anything, other than the first word, that needs to be conjugated or otherwise inflected under any circumstances.

It also should not include a direct or indirect object. If you use “notice the rabbit” as a VerbPh for one Event and “wave to the rabbit” as a VerbPh for the next one, Curveship won’t be able to do its natural language generation work. The rabbit should be introduced as “a rabbit” and might be pronominalized when the second event is represented. Curveship has mechanisms to accomplish this. To allow Curveship to do its work, direct or indirect objects should be defined as Existents and the corresponding Events should be set up with the right number of arguments.

Curveship