COGENT provides a range of standard configurable cognitive modules. These are the basic "building blocks" from which models are constructed. The precise behaviour of each instance of a module is determined by a set of parameters.
Current modules include:
Buffers are general storage devices. They may be used for both long and short term storage, and for information in a variety of formats. The detailed behaviour of each buffer is determined by its properties. Among other things, properties specify: initialisation (on each trial, block, subject, or experiment), capacity limitations (unlimited capacity, or fixed finite capacity), access properties (access by recency, primacy, or randomly), decay properties (no decay, random decay, or fixed decay). The use of properties to specify buffer behaviour (and in fact, the behaviour of all COGENT objects) leads to objects which are both flexible (i.e., can perform a variety of functions) and well-specified (the various property values are computational well-defined).
Knowledge bases are storage devices that provide special functionality for accessing and/or structuring knowledge. Their access features allow then to be used to provide a global "blackboard", while their structuring features allow them to be used to store "knowledge" in the form of an inheritance hierarchy.
Rule-based processes manipulate information according to symbolically specified rules. A powerful rule language and rule interpreter allows rule-based processes to perform complex manipulations and transformations of information, in a way that may be contingent upon the contents of other COGENT objects.
COGENT is intended primarily for high-level symbolic modelling. Nevertheless, the execution model is cyclic, and this is consistent with a number of connectionist modules. Several connectionist object types are provided within COGENT (including two-layer feed-forward networks, competitive networks, and associative networks), making it suitable for a variety of hybrid modelling applications. As in the case of buffers, precise network behaviour is determined by a number of parameters (governing, for example, learning rate, initialisation, etc.).
Inter-module communication is achieved within COGENT by drawing arrows of various types between the appropriate modules or objects within a COGENT box/arrow model. Two basic arrow types exist: read arrows and write arrows. The presence of such arrows from one module to another enables the relevant communication function between those modules.
Special "socket" objects are provided to allow COGENT models to interact with other processes by standard TCP/IP. A COGENT model may act as either a client or a server.
Specialised data source objects allow data to be feed into other object types in a controlled manner. Data sinks similar allow the collection of data from other objects during model execution. Two types of data sink are provided: text-based sinks and tabular sinks. Text-based sinks store their output in a standard file for later analysis. Tabular sinks record their output in tabular form.