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 first twenty 

 fiames of this file, one would enter "*PLOT BUGS,VI 1 , 20". To calculate the 

 linear velocities for the paths in the file 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 file "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 



