To as great an extent as possible Babase utilizes a controlled vocabulary within the system's data store. Again, as far as is possible, this vocabulary may be tailored by adding or deleting codes to tables that define the vocabulary used elsewhere.[23]
At times, the Babase system recognizes that particular
codes have special meanings, for example, the BIOGRAPH table's
F
(female) Sex code or the
0
(alive) Status code. The meaning of these codes is
fixed into the logic of the system. As examples, an individual
must be female to be allowed to have a menstruation, or, the
individual must be alive if a sexual cycle event is to post-date
the individual's Statdate. Some of
these codes, like sex, are not defined in tables, they are
hardcoded into the system. Others are defined in support or
other tables. Because these codes have intrinsic meaning, they
cannot be removed from the Babase system nor should their
presence in the data be used to code a different meaning from
that which the code presently has. For example, the meaning of
STATUSES code value
0
should not be changed to mean
“death due to meteorite impact” because the
system's programs would then allow dead individuals to have
sexual cycles. Each of the “special” values that
the system requires retain particular meaning is listed in the
Special Values section of the table's documentation. For further
information on the meaning of the “special” values,
see the description of the data table(s) that contain the code
values. Should the meaning of one of these
“special” values need to be changed, the logic in
the Babase programs should be adjusted to reflect the
change.
Babase prevents ordinary users from altering rows that
contain special values in an attempt to prevent
mis-configuration of the system. Only users with permissions to
modify a table's triggers may alter the table's special values.
This is not a panacea. To return to the example above, not only
does the system expect a STATUSES code of
0
to mean alive, it also expects
0
to be the
only code on STATUSES
that means alive. If another STATUSES code is
created to indicate a more specific sort of
“alive-ness”, unless re-programmed the system will
consider all individuals given that code to be dead, not alive.
A careful review of the documentation should be undertaken
before modifying the content of tables that instantiate special
values.