What is COGENT?

COGENT is a graphical modelling environment that aims to simplify the process of developing and evaluating symbolic models of cognitive processes. It consists of two applications, one for editing and executing models and one for maintaining sets of related models within a research programme. We begin this tutorial by providing a brief overview of these two applications.

The Project Manager

COGENT's project manager is designed to maintain complete research projects consisting of multiple models developed over an extended period of time. The figure below shows the project manager displaying a research programme that we have been working on over the last few years. Each icon on the canvas corresponds to a distinct COGENT model. Arrows between the models show the historical relationships between them.

The JDM project

The project manager currently provides a number of relatively straightforward functions for manipulating models and maintaining relations between them.

The Model Editor

The model editor is the heart of COGENT. It is a graphical tool for creating and running cognitive models. The figure below shows the model editor being used to display a COGENT model of goal-based problem solving.

A COGENT model of problem solving

As can be seen from the figure, COGENT models take the form of box/arrow diagrams. COGENT formalises the familiar box/arrow notation commonly employed by psychologists. Each box in the diagram represents a specific functional component of the model, and arrows between the boxes represent information-flow relations. Different types of component are represented by different shaped boxes (e.g., storage components are represented by rectangles with rounded corners), and different types of information transfer are represented by different styles of arrow. Boxes may be "opened" (by double-clicking on them), either to further specify their functioning (prior to model execution), or to examine their functioning (during model execution).

COGENT supports a range of box classes, including compound boxes that contain further box/arrow diagrams. Development of a model in COGENT is a matter of arranging and connecting boxes of appropriate classes and specifying their properties. Certain boxes may also contain rules and/or data elements. Structured editors exist to simplify the specification of such items.

Each box may be displayed in any one of a number of different views. The tabs beneath the main toolbars on the figure above allow switching between views:

The Structure of this Tutorial

Although we consider the functionality of the project manager to be an integral part of COGENT, it is possible to bypass this application and work directly with the model editor. Due to time limitations, this is the approach adopted in this tutorial, in which we develop an implementation of a well-known model of short-term memory.

The box/arrow language of COGENT is very powerful, and it is possible to use the language to specify both cognitive models and computational environments in which those models may be evaluated. That is, COGENT can be used to simulate stimulus presentation and data collection. This tutorial adopts this approach. However, because such aspects may obscure the presentation of the model, we encapsulate them in functionally distinct, pre-specified, compound boxes.