What's Scheduled for COGENT Version 2.3?
- Animations! Box and arrow diagrams will show messages passing between
boxes when a model is running (provided the appropriate option is set). This
feature will only be available in the registered version, and it will be
possible to switch it on/off via the OOS Preferences panel. (The feature was
first suggested by JF way back in November 1996.)
- Axis autoscaling for all graph types will be supported.
Graphical buffers and data sinks will have two additional Boolean properties:
"Autoscale X" and "Autoscale Y". When "Autoscale X" is set, the values of
"X Min"/"X Max" properties will be ignored and the graph;s
Max and Min will be calculated from the data on the graph. Similar comments
apply for "Autoscale Y".
- An "Events" view for the research programme manager. The "Model List"
view will be replaced by a graphical view that shows, for each model in a
research programme, significant events in its history (at least creation, last
edit, and last run).
- Some "meta-project" management features. The current research programme
manager is inadequate when dealing with proejcts/research programmes
containing lots and lots of models, or projects/research programmes which have
many sub-projects (e.g., the book). The revised research programme will allow
grouping of projects into meta-projects.
What's Missing from COGENT Version 2.2 #3?
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
- 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 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.
- 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).
- Improve syntax checking/correcting. One possibility is that when
a syntax error is detected, the user could be given the chance to approve any
suggested correction. (First suggested by RC during 11/96.)
- 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 keyboard accelerators wherever possible.
- 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.
- 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).
- Provide multi-lingual support.