What's Missing from COGENT Version 2.3 #0?
The following lists describe features that COGENT developers and users have
identified as potentially useful enhancements. Within the lists, items are
presented in approximate order of priority or likely completion. Initials
refer to people mentioned in the acknowledgements. Additional suggestions for
possible enhancements are welcome and should be emailed to firstname.lastname@example.org.
The Research Programme Manager
- Elsewhere in this documentation it is stated that authorised users may
upload a research programme to the online COGENT model archive. In truth, as
of version 2.3 #0 this facility has not been implemented and there are no
authorised users. The facility is planned for a later release of version
2.3, but security issues must be resolved first.
- Generalise the research programme manager functions to allow heterogeneous
research programmes, i.e., research programmes contain models written in
native COGENT as well as those written in other languages or systems, such as
C, Lisp, Prolog, ACT-R, Soar, SNNS, PDP++, T-Learn, etc. The basic idea is to
stress (and extend) COGENT's research programme management functionality.
The Model Editing Interface
- Provide a way of editing large buffer elements, such as a specialised
compound term editor. (Requested on 27/11/02 by Liz Black.)
- Provide further box classes, such as tree structured buffers, multi-layer
networks, and recurrent networks.
- Provide an equation edit facility to allow specification of user-defined
buffer decay functions. (Suggested by Kevin Gluck 02/04.)
- Some kind of data dictionary/library would be very useful. This should
allow terms to be declared and then perform some simple type checking on all
- Allow selection of multiple elements within a box, so that functions such
as ignore, reinstate or delete can be applied to several elements at once.
This will require rethinking the interface for selecting and acting upon box
elements. (First suggested by GM during 09/96.) In a similar vein, allow
"rubber-banding" of boxes on compound canvases so that a group may be selected
and, for example, coerced into a compound.
- Allow the declaration and subsequent use of additional operators within
the term language. (First suggested by Peter Weimer-Hastings during
- Implement "smart" find/replace such that the functions can use term
unification rather than exact lexical matching to find targets.
- Allow positioning of external boxes on compound canvases. (First suggested
by ME on 30/09/96, but always possible in WinCOGENT.)
- Allow auto-page of the message log and output trace during model execution
(only if they are showing the last page of output).
- It should be possible to declare new classes (as subclasses of existing
classes, e.g., to specify a standard subject-experimenter compound) and use
instances of those classes in the usual way. (First suggested by JF
- Allow save/restore of buffer and network contents, so that training
sessions can be separated from testing sessions. (First suggested by GM
- Integrate appropriate window management functionality into the basic
system (e.g., provide a small model structure-tree so that the user can
automatically expand all/some of the model and jump around the modules without
getting lost). (First suggested by JF during 11/96.)
- Allow export and import of box contents to and from a specified text
editor. (First suggested by JF during 11/96.)
- Install additional keyboard accelerators wherever sensible.
- Allow naming of boxes directly on the canvas (i.e., without first opening
- Reduce the palette by showing only major box classes, and making
subclasses appear only when a major class is selected. (Suggested by JF.)
- Allow summarising of selected rules. (Suggested by JF.)
The Model Testing Environment
- Revise the interface between a COGENT model and the scripting language.
Variable handling, in particular, is clumsy. Perhaps we need to explicitly
declare variables and their bindings within a COGENT model (in a way analogous
- Add support mechanisms for data files (e.g., sharing data sources across
models within a project, and saving different runs in different files). This
may just be a matter of 1) allowing files to be attached to data sources and
data sinks (very easy) and 2) providing appropriate browsing tools for those
- Automate the exploration of property spaces (i.e., automate
- Sort out OOS optimisation when running under Windows. This is just a
matter of creating the appropriate DLLs, which should be simple ...
- Remove the current dependency on Prolog by re-implementing OOS in C.
- Allow isolated running of compound boxes.
General GTK+ Issues
- Generate appropriate images for HTML output. Currently graphical displays
of the contents of analogue buffers and graph objects are omitted from HTML
output. Additionally, the "webify" command (available only in the registered
version) fails to build the necessary bitmaps. (GTK+ 2.0 appears to provide
the functionality necessary for this, so it will probably wait until we
upgrade to the latest version of GTK+.)
- Improve cut and paste and drag and drop between text fields within the
element editors. The only thing that seems to work reliably at present is
copy/paste (using ctrl-c to copy and ctrl-v to paste) between panel entries
that are both visible.
- Provide multi-lingual support.