Skip to main content

Statements

Structure and purpose

Statements model the syntactic structure and semantics of clauses. They have a quadruple structure with action slot and three actant slotssubjectactant1, and actant2. The semantic core is the action slot, which holds the predicate of the clause, and is linked to actants as defined by the syntactic valency of the Action type used, up to trivalent verbs (for instance, ‘Peter received a gift from Elisabeth’). Any Action Type can define through its syntactic valency that an actant is required, optional, or forbidden (required empty).

While InkVisitor can be used for classical entity–relationship modelling done in any database, the CASTEMO data collection workflow is specific in its focus on modelling textual clauses through statements. In this sense, it is a statement-based data collection workflow. This allows texts to be comprehensively modelled, either selectively (based on what is relevant for specific research) or in entirety. CASTEMO is intended to keep the order of appearance and contextual embeddedness of information in the text.

Action attributes

Actant attributes


Pseudo-actant

 

Bundling actants and actions

Multiple actants in the same position (s / a1 / a2 / pa), or multiple actions, can be logically connected using bundleOperator. The operator on each element describes its relationship to the next element in the list (ordered by statement order). The last element in a group carries the default And value as a chain terminator — it does not express a conjunction with a following element.

Operators

Operator Latin equivalent Meaning
And et Conjunction; also the default terminator on the last element in a group
Or vel Non-exclusive alternative
Xor vel...vel Exclusive alternative
Greater quam Comparative: the following element exceeds the current one

Examples

"fratrem, vel unum filium, vel unam filiam" — Or

Three a1 actants (brother / son / daughter) connected by Or. The operator on each element connects it to the next; the last element carries And as a terminator:

frater [Or] → unus filius [Or] → una filia [And/end]

"vel ipsa testis vel dictus Andreas vel sorores" — Xor

Three s actants connected by Xor (exclusive alternatives):

Mayfreda [Xor] → Andreas [Xor] → sorores [Xor/end]

"nullus... fortius adhaesit... quam ipse" — Greater

Two s actants in a comparative construction. The Greater operator on the first element (the baseline) points to the second (the one who exceeds it):

nullus [Greater] → Bernardus Otho [And/end]

"sciret, crederet vel audivisset" — Or on actions

Three actions connected by Or:

scivit [Or] → credidit [Or] → audivit [And/end]

bundleStart / bundleEnd

The bundleStart and bundleEnd flags mark the explicit first and last member of a group and can be used to distinguish members acting as a collective unit from members acting individually. When both flags are absent (the common case), the logical grouping is fully expressed by the bundleOperator chain alone.

JSON Structure

The general entity attributes are inherited from the base entity object, which is defined by the IEntity class (see entity.ts file).

Definition of Statement data object can be found in statement.ts file.

export interface IStatement extends IEntity {
  class: EntityEnums.Class.Statement;
  data: IStatementData;
}

export interface IStatementData {
  text: string;
  territory?: IStatementDataTerritory;
  actions: IStatementAction[];
  actants: IStatementActant[];
  tags: string[]; // ids of IEntity;
}

export interface IStatementDataTerritory {
  territoryId: string;
  order: number;
}

export type StatementObject =
  | IStatementClassification
  | IStatementIdentification
  | IProp
  | IStatementActant
  | IStatementAction;

export interface IStatementAction {
  id: string;
  actionId: string;
  elvl: EntityEnums.Elvl;
  certainty: EntityEnums.Certainty;
  logic: EntityEnums.Logic;
  mood: EntityEnums.Mood[];
  moodvariant: EntityEnums.MoodVariant;
  bundleOperator: EntityEnums.Operator;
  bundleStart: boolean;
  bundleEnd: boolean;
  props: IProp[];
}

export interface IStatementActant {
  id: string;
  entityId: string;
  position: EntityEnums.Position;
  elvl: EntityEnums.Elvl;
  logic: EntityEnums.Logic;
  virtuality: EntityEnums.Virtuality;
  partitivity: EntityEnums.Partitivity;
  bundleOperator: EntityEnums.Operator;
  bundleStart: boolean;
  bundleEnd: boolean;
  props: IProp[];
  classifications: IStatementClassification[];
  identifications: IStatementIdentification[];
}

export interface IStatementClassification {
  id: string;
  entityId: string;
  elvl: EntityEnums.Elvl;
  logic: EntityEnums.Logic;
  certainty: EntityEnums.Certainty;
  mood: EntityEnums.Mood[];
  moodvariant: EntityEnums.MoodVariant;
}

export interface IStatementIdentification {
  id: string;
  entityId: string;
  elvl: EntityEnums.Elvl;
  logic: EntityEnums.Logic;
  certainty: EntityEnums.Certainty;
  mood: EntityEnums.Mood[];
  moodvariant: EntityEnums.MoodVariant;
}