Research Programmes Overview Putting Flesh on the Bones

The Graphical Interface

In order to learn the basics of COGENT we are going to develop a series of simple models of categorisation. These are not intended to be cognitively plausible models, rather they should demonstrate the basic concepts from which cognitively plausible models may be built.

The categorisation models will form a research programme, so we start by creating a new research programme. Find the Research Programme Manager window and click on Create.... A window will appear prompting you for the name of the research programme. Enter a name for the research programme (such as Categorisation) and click on the Create button (or press enter/return). A window like the one below should appear.

In an active research programme, this window shows the programme's history in terms of a tree, with each model in the programme being shown as a node on the tree. In an empty research programme there are of course no models, so the history diagram is blank. Note that there is space for a brief text-based description of the research programme, indicated by the Comment field. A longer description of the research programme can be entered by selecting Programme Description from the Mode menu. Doing so will change the main pane of the window into a text editor, into which a lengthy description of the research programme can be typed.

Ensure the mode of the window is set to Programme History. We create the first model in a research programme with the New Root button. Clicking on this will cause a blob to appear in the history window, with the current date/time below that blob:

To open the new (empty) model, double click on its blob. A window similar to the following should open.

This is the window in which the model's box/arrow diagram may be drawn. The window consists of three parts: a grey panel at the top with a series of buttons and text fields; a large central canvas; and a palette of object types at the bottom.

The first thing to do is to name the new model. We are going to develop a categorisation model that works by looking up exemplars in long term memory, so a suitable name might be "Classification from LTM Knowledge". Enter this in the Name field. You might also like to enter a comment in the Comment field. Like the history window, a longer description of the model can be typed in by changing the mode of the window. To do this, select Description from the Mode menu. Return to Diagram mode when you are finished.

The first model we are going to build does a very simple categorisation task. Given a series of animals, the model is going classify them as vertebrates or invertebrates, by looking up tables of vertebrates and invertebrates that the model knows about. The model consists of five boxes: one box to generate the input sequence; one box to store the table of vertebrates; one box to store the table of invertebrates; one box to perform the classification process; and one box to collect the output.

COGENT comes with a number of different types of boxes (indicated on the palette at the bottom of the model window by different icons), and different types of boxes are appropriate for the different components of our model. We are going to use the following box types:

Data sources
These boxes generate a sequence of input messages, which can be sent to any box to which the data source writes.
Text data sinks
These boxes collect messages that they receive and place them in a file.
Propositional buffers
These boxes store propositional data. Data in a buffer may be modified (by sending appropriate messages to the buffer) or queried by processes.
Rule-based processes
These boxes process messages by applying a set of symbolic rules. They may generate output and direct it to any box connected by a write arrow. They may also query buffers if they are connected by appropriate read arrows.

We'll use a data source to generate a series of test animals for the model to classify. We'll use a text data sink to collect the model's responses. The actual classification will be performed by a rule-based process, and two propositional buffers will be used to store the lists of vertebrates and invertebrates.

We are now ready to sketch our first box/arrow diagram. Click on the data source icon on the palette. The colour of the icon will be inverted, indicating that the next drawing action will draw a data source. Position the mouse near the top middle of the central canvas and click again. The icon will revert to its former colour and a data source box will appear on the canvas. The position of the data source can be changed by clicking on it and dragging it. Position the other necessary boxes on the canvas to produce the arrangement of boxes shown below.

The arrows between the boxes are drawn by using the middle mouse button. Click on the source of the arrow and drag the mouse to the target box, then release. Arrow drawing normally draws arrows with standard pointed arrow heads. These are "write" arrows, which are appropriate for communication between boxes involving the sending of information, as in the communication from our data source to the process, or from the process to the results of classification. The process should also read information from the two buffers. "Read" arrows are indicated by inverted triangular arrow heads. To create a read arrow, draw a standard write arrow and change it to a read arrow by right-clicking on the arrow and selecting Toggle Type from the menu that appears.

If you make a mistake, you can erase a box or arrow by right-clicking over the problematic object and selecting Delete from the menu that appears.

The next step is to label our boxes. Double-click on the data source. A further window will appear. This window shows the inner-details of the data source. Enter a name in the top text-field (and a brief description). Close the window (via the Done button). Note how the name now appears on the main canvas. Repeat this procedure for each box. This should yield the completed box/arrow diagram for the classification model as shown below:

Research Programmes Overview Putting Flesh on the Bones