A knowledge base is very much like a buffer, except that it doesn't have the decay properties associated with buffers, and it may (if its properties are appropriately set) be accessed from any box within the scope defined by the compound containing the knowledge base, even if the box attempting to access it does not have appropriate arrows. It is anticipated that future versions of COGENT may include knowledge engineering tools for maintaining knowledge bases.
The precise behaviour of a knowledge base is determined by the values of a number of properties. All knolwedge bases have the following properties:
Initialise (possible values: Each Trial/Each Block/Each Subject/Each Session;
default: Each Trial)
The timing of buffer initialisation is determined by this property. When the value is Each Trial, the buffer will automatically initialise itself at the beginning of each trial. When the value is Each Block, the buffer will initialise itself at the beginning of each block of trials (i.e., contents will be preserved across trials within a block). Similarly, when the value is Each Subject, contents will be preserved across simulated blocks and when the value is Each Session, the contents will be preserved across subjects.
Access (possible values: Random/FIFO/LIFO; default: Random)
This property dictates the order of access to a buffer's elements when the buffer is ``matched''. If access is Random, then match will instantiate its argument to an element from the buffer selected at random (provided that element unifies with the argument of match). If access is FIFO (First In, First Out), then match will return the oldest element which unifies with its argument. If access is LIFO (Last In, First Out), then match will return the youngest element which unifies with its argument.
Globally Readable (possible values: True/False; default: False)
This property determines whether the knowledge base can be read by any box (or subbox) of its parent compound (if set to True), or if an explicit read arrow is needed between the box doing the reading and the knowledge base.
Globally Writeable (possible values: True/False; default: False)
This property determines whether the knowledge base can be modified by any box (or subbox) of its parent compound (if set to True), or if an explicit write arrow is needed between the box doing the modifying and the knowledge base.
Knowledge base elements are currently identical to buffer elements. They are edited with the standard buffer element editor.