For example, to plot all of the data in the video file called BUGS.VI, the 
command would appear as “*PLOT BUGS.VI”. To plot only the fust twenty 
frames of this file, one would enter “*PLOT BUGS,VI 1,20”. To calculate the 
linear velocities for the paths in the Fde BUGS.PA, the command line is 
“*LVEL BUGS.PA BUGS.LV”. Note that in this language the loops required 
to access all data elements within a data set are not explicitly stated. The 
operator automatically processes all of the elements of the operand data file 
unless directed to a particular subset (e.g., “*PLOT 1, 20”, as illustrated 
above). 
Three other aspects of BRL are worth including here. The first of these 
concerns the way in which data are represented within the Bugsystem: a data 
set consists of one or more vectors of variable length. While performing image 
processing operations, each vector represents one video frame; one element of 
such a vector represents a single point in two dimensional space. As the analysis 
of the data proceeds through successive application of operators to operand 
data sets, a single vector may represent an organism’s path (i.e., a time series of 
cartesian coordinates in two space as in the tile “BUGS.PA” illustrated above) 
or a real function defined over the length of such a path (e.g., the estimate of 
instantaneous linear velocity as previously illustrated by the file “BUGS.LV”). 
Finally, in the statistical analysis of such data a vector may correspond to a set 
of statistical parameters, a collection of “bins” or categories established for 
histograming, an estimate of an autocorrelation function, etc. 
The second aspect of the language to be considered here are the 
self-documenting aspects of BRL. No one can be expected to memorize all of 
the 88+ operator names, what they do in detail and the various switches and 
numeric constants which they expect. To help in this regard, the NAMES 
operator lists on the terminal the names of all the keyboard operators. 
Moreover, entering “*Operator/HELP” for any of the available operators will 
cause the system to print a full page of information describing what the 
operator does, the types of operands for which the operation is defined, what 
constants and switches are expected and an example of the operator’s use. 
The third aspect of BRL to be considered involves the construction of user 
programs. BRL was designed primarily to be an interactive language: the user 
normally enters commands at the terminal one at a time and thereby directs 
the analysis to its desired end. It is also possible to create a disk file of 
commands consisting of operators and operand specifications and to direct the 
system to execute this stored sequence of operations (a computer program 
written in BRL) via the USER operator. 
254 
