COGENT Version 2.3 Help

Basic Concepts

COGENT is designed around the following fundamental concepts:

Research programmes

A research programme is basically just a collection of related models. COGENT treats research programmes as a basic unit of the modelling enterprise, so models within a research programme are stored together and the first thing one does when using COGENT is normally to open or create a research programme.

COGENT's Research Programme Manager provides a set of tools for working with research programmes (creating, editing, deleting, documenting, printing, archiving, etc.), as well as a viewer which allows historical relations between models to be displayed graphically via a tree structure.

Box and arrow diagrams

Within COGENT all models are specified in terms of box and arrow diagrams. Box and arrow diagrams have long been used in psychology as an informal tool for theorising. They allow information processing accounts of cognitive functioning to be specified in terms of boxes (which correspond to information processing elements) and arrows (pathways between information processing elements). A simple example is shown in Figure 1.

Figure 1: A COGENT Box and Arrow Diagram

At one level, box and arrow diagrams have simple and intuitive interpretations. However from a computational perspective these interpretations are at best abstract and at worst vague and ambiguous. Nevertheless the box and arrow notation has proven to be a highly useful tool. COGENT provides a computational system that addresses the fundamental problems of interpreting box and arrow diagrams. Basically it provides a number of different types of configurable box, a tool for building box and arrow diagrams from those types of box, and tools for configuring the different types of box. The result is a box and arrow diagram with an unambiguous, computationally precise, interpretation. The diagram may then be "executed" to determine properties and predictions of the model.

Box classes and instances

COGENT provides a range of different types of box, each with different information processing characteristics. For example there are several types of buffer, each of which allows information to be stored or buffered. There are also process boxes which allow information to be manipulated and representations transformed or merged. The types of box are arranged in a hierarchy with, for example, propositional buffers being a subtype of buffers, and buffers being a subtype of box. The box types are referred to as classes (as in the computer science literature), and the class hierarchy, shown in Figure 2, shows the basic hierarchical relations between classes.

Figure 2: COGENT's Class Hierarchy

Each particular COGENT box is an instance of a class from the class hierarchy. A box's class determines broad aspects of its appearance and behaviour. It also determines a set of properties which control more detailed aspects of the box's behaviour. For example, all buffers have a Decay property which specifies if the buffer's contents may decay, and if so how that decay operates (see below).


Most boxes have properties associated with them. These properties determine how boxes behave or appear. Properties are related to the type or class of box, so, for example, all propositional buffers have a "Decay" property which may be set to "None", "Half-Life", "Linear" or "Fixed". The value of this property for a particular propositional buffer determine if decay operates on the contents of that buffer, and if so, what type of decay function is used (a probabilistic decay function, in which buffer elements have a fixed half life, a probabilistic decay function in which the probability of an element decaying is linearly related to the time spent in the buffer, or a deterministic decay function in which elements decay after a fixed number of cycles.

Properties may also affect the appearance of boxes. Analogue buffers, for example, have properties that determine if they are displayed in colour or in black and white, and graph buffers have properties that determine the domain and range of the graph.

OOS: An Object-Oriented execution language

COGENT automatically translates box and arrow style models into a computer language which we refer to as OOS (Object-Oriented Sceptic). The OOS interpreter (supplied with COGENT) may then be used to execute or "animate" a model. OOS is based on Sceptic which in turn is based on Prolog.

Experiment scripts

With psychological experimentation there is a sharp division between the subjects who participate in an experiment and the procedure of the experiment. Computational modelling allows this distinction to be blurred, because both are typically specified within the same programming language. COGENT tries to avoid this blurring by providing different facilities for specifying cognitive models and experiment procedures. Cognitive models are specified in box and arrow diagrams as described above. Experiment procedures are specified as experiment scripts within a separate scripting language. COGENT's scripting language is based on psychological concepts such as independent and dependent variables, trials, blocks, and subjects. In addition it provides control structures to specify looping or conditional execution. For further details, see the documentation.

COGENT provides a couple of default scripts: Trial and Default. The former runs a single OOS trial (which may involve trial initialising, running the model until quiescence, and end of trial operations). The latter embeds Trial in a simple "repeat" loop, allowing the user to perform multiple trials by simply adjusting the number of repetitions.

COGENT Version 2.3 Help