BEEST
The BEEST (animal) program was intended to demonstrate the possibilities
of a multi-user system. It was written jointly by Luc and Jelte
for the DJOE "open house" day of 1985 and was really the only
multi-user CP/M program we ever wrote for the ORDINATOR.
The BEEST program was basically a multi-user binary decision tree builder.
Each internal node of the tree contained a yes/no question; each
leaf node contained an answer. The idea was to have all users simultaneously
walk the decision tree, as determined by the answers to each yes/no question,
until they arrived at a leaf node. If the leaf node's answer wasn't correct,
the user was asked to enter the correct answer and a new question to
differentiate the existing answer from the correct one, thus extending
the tree with one question and one answer.
The name of the program derived from the initial contents of the tree,
which had a root node containing the question
IS HET EEN BEEST? (is it an animal?). If memory serves correctly,
the initial answers where MENS (human) and OLIFANT (elephant).
When we went to Oslo in 1986, we translated the BEEST program into English,
thus producing ANIMAL, which always started by asking
IS IT AN ANIMAL?
Although the program worked beautifully when used correctly,
in practice visitors often entered garbage questions or answers
or changed their mind halfway, thus messing up the decision tree.
At first we had no other recourse than to restart the program,
resetting the tree, but later a load/save function was implemented
that allowed us to reverse to a "known good" tree when it had gone bad.
The correct fix for the problem would have been an on-line tree
editing facility, which we talked about but never implemented.
In order to make the program visually appealing to a visitor,
we added a nice "logo" screen containing blown-up title
and ASCII art. We later extended this idea to an advertising
display on the console terminal; henceforth much time was
spent each "open house" day to write advertisements,
jokes, etc for the display.
The BEEST program ran in one of two modes: mother (server) or child (client).
The first instance to be started would automatically become the mother;
subsequent instances would become child programs relying on the mother
program to keep the decision tree. The communication between mother
and child programs was carried out over the three PIPEn devices
of TS, which were implemented especially for this program.
BEEST was really the only program that ever used the PIPEn
devices and it depended intimately on the scheduling details of the
implementation.
When these details changed in later years, BEEST stopped working and we
never took the time to fix it.
The BEEST program is briefly mentioned on page 52 of the book "THE ORDINATOR PROJECT".