What's Missing from COGENT Version 1.10.02?
As COGENT has developed we have come to realise that we could go on forever
adding features. Version 1.0 was supposed to be an attempt to draw a line
under the list of possible enhancements and produce something stable.
Development has, however, continued (as evidenced by this manual, which
describes version 1.10.02). This appendix briefly describes a number of
features which have been suggested by users and developers, and which we are
considering including in later versions of the system. These ``wishes'' are
broadly divided into three categories: difficult, straightforward, and
unknown. The difficult ones will require a substantial amount of thought, and
are unlikely in the short term. The straightforward ones are generally simple
and will probably get done at some stage --- it's really just a matter of
someone getting round to them. The remainder are hard to categorise because
though we know what we want to do, we don't at present have the knowledge (of
C, Unix, or XView) to do it. Hopefully this category will disappear with
Within the lists, items are, where possible, presented in order of priority
or likely completion. Initials refer to people mentioned in the acknowledgements. We would be most grateful
for any further (constructive and realistic) suggestions.
Features to be Implemented Shortly
- Document user defined properties.
- The property view of compounds (first introduced in version 1.09.00)
should be extended to allow setting of properties (rather than just viewing of
- In the compound properties view, it should be possible to selective
show/hide properties of specified boxes.
- Fully implement and document the replace function (first introduced in
- Allow copying of a complete model between projects (or cut and paste of
models between projects).
- The numbers on ignored rules are currently automatically set to zero when
a rule is ignored, and reset when the rule is reinstated. It would probably be
better to let ignored rules keep their "natural" numbers.
- When a syntax error is detected, the user should be given the chance to
approve any suggested correction. (First suggested by RC during 11/96.)
Potential Features Presenting no Substantive Difficulties
- Make object names on the message matrix sensitive to mouse clicks.
- Make external boxes on compound canvases sensitive to mouse clicks (in the
way that they are in WinCOGENT).
- Allow positioning of external boxes on compound canvases. (First suggested
by ME on 30/09/96, but already possible in WinCOGENT.)
- Allow repositioning of objects in the project window. (First suggested by
JF on 03/04/96.)
- Allow rubber-banding of boxes on compound canvases so that they may be
coerced into a compound, or to promoted out of a compound.
- Install keyboard accelerators for most (all?) functions.
- Allow cut and paste and drag and drop between text fields within the
- Reduced the palette by showing only major box classes, and making
subclasses appear only when a major class is selected.
- Allow summarising of selected rules.
- Allow global buffers within a compound. All boxes in the compound should
be able to read/write to a global buffer.
- Allow broadcasting to all boxes (of the appropriate type) within a
compound, so that processes can send/write to all boxes within a compound with
a single message.
- Provide special display facilities for vectors.
- 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.
(First suggested by GM during 09/96.)
- Allow auto-page of the message log and output trace during execution
(only if they are showing the last page of output).
- Provide further box classes, such as graphs, tree structured buffers,
interactive activation networks, multi-layer networks, and recurrent
- Provide generalised undo/redo functions.
- Read class information from a configuration file. [It should be possible
for that file to be configured by the user to yield appropriate behaviour in
non-psychological domains. Thus, one configuration should yield PsyCOGENT.
Another should yield BioCOGENT.]
- Remove the current dependency on Prolog by re-implementing OOS in C.
Potential Features Requiring Additional XView Knowledge
- Cut down on the screen redrawing when ignoring/reinstating rules.
- When editing box elements (rules, conditions, buffer elements, etc), it
should be possible to tab to the next field (rather than having to use the
mouse to position the cursor). (First suggested by JF on 03/04/96.)
- Ensure that the background colour is used to repaint behind boxes when
they are moved. (First suggested by DG on 18/05/98.)
- Postscript and HTML output of analogue buffers should be in colour (and
HTML output should not use the XBM image format).
Potential Features Requiring Additional Unix Knowledge
- Allow export and import to and from a specified text editor. (First
suggested by JF during 11/96.)
Potential Features Requiring Additional Thinking
- 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
- It should be possible to declare new classes (as subclasses of existing
classes) and use instances of those classes in the usual way.
- Let the user view an animated version of a compound, so that updates and
messages show as some sort of flash on the diagram. (First suggested by JF
- Rethink the scripting language (which allows the user to automate lengthy
sequences of trials and blocks) so that it uses language and principles more
properly anchored in experimental psychology.
- Automate the exploration of a property spaces (i.e., automate
- 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.)
- 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
- Allow the user to specialise modules (e.g., to specify a standard
subject-experimenter compound). (First suggested by JF 11/96.)
- Allow isolated running of compound boxes.
- Allow save/restore of buffer and network contents, so that training
sessions can be separated from testing sessions. (First suggested by GM
- Introduce a "Unix process" box type, whose content is an arbitrary Unix
process (e.g. a C program).