This file describes some steps that should be sufficient in order to have a quick, very quick look at TREEBAG. For more detailed information see the manual, please. To have a look at TREEBAG, proceed as follows: 1. Make sure that Java (JDK 1.1) is installed and works fine. 2. Install TREEBAG. For this, you should fetch `treebag-classes.zip', the Java class library. It should *not* be necessary to unzip the file. (On UNIX systems you can just download the whole tar'ed and gzip'ed directory `treebag' and unpack it. Then step 3 and 4 can be skipped.) 3. Download the directory of examples and unpack it. 4. Make sure that the class library `treebag-classes.zip' is in your Java library path (which is usually stored in an environment variable called CLASSPATH). 5. Run Java, taking `gui.worksheet' as its argument (the graphical user interface of TREEBAG). On UNIX systems you can just change into the downloaded directory `treebag' and then use the shell script `treebag', which starts gui.worksheet with a maximum heap size of 100 megabytes. For the latter you do not need to care about adding the library to your CLASSPATH variable, but unless you change the script it will only work in the directory `treebag'. 6. Click the `Load' button. Use the file selector in order to select in one of the subdirectories of the examples directory one of the configuration files named `worksheet...'. As a result, the corresponding configuration should be loaded and you can play around with the example (see below how how this can be done). I hope that loading works also on non-UNIX systems but I have not yet had the opportunity to test this. Problems may occur because many file names in the examples directory consist of more than 8 characters. If these are truncated for some reason then you will probably get `file not found' errors. In this case just have a look at the corresponding configuration file (the one named `worksheet...', which is an easily understandable ASCII file) in order to fix the problem. A simple example to start with (in order to see how tree transducers and grammars work) may be the one in the directory `boolean', which deals with boolean terms. Examples which have to do with picture generation can be found in the subdirectories of `chain-code', `collage', and `turtle'. Here is a very quick introduction on how to use the system. There are four types of components (shown as nodes of a graph): tree grammars, tree transducers, displays, and algebras. The first two generate and transform trees (i.e., terms). Algebras associate with every tree a value by inter- preting its symbols as operations on some domain. Displays are able to display the values of trees. For this, a display gets associated with a suitable algebra which it will then use in order to determine the value of an input term it receives. Thus, the output of tree grammars and tree transducers can be fed into tree transducers and displays (which is done by establishing edges between them). Further edges may be established which point from algebras to displays. To create an edge just click once on the source and once on the target node. One may also insert a new node. For this, perform a double click somewhere on the worksheet (but not on a node). This opens a file selector which lets you choose a file describing the component to be loaded as a new node. (The syntax of these files depends on the type of component it describes. It is usually a very simple syntax, oriented at the usual mathematical notation, which is not described in this file, however.) To "open" a node click on it twice. This opens a display in case of display nodes and a small panel to control the behaviour of the node in all other cases (and in case of a display node whose display has already been opened). You can also get an equivalent popup menu by pressing the right mouse button on the respective node. Regular tree grammars, for example, yield an enumeration of the generated regular tree language. Click `advance' in order to turn to the next tree in the enumeration. Since this is sometimes quite annoying there is another mode called `random generation' which provides a `refine' command that enables you to build a derivation at random. Every invokation of "refine" will apply productions to all the nonterminal symbols in parallel. In order to terminate the derivation just switch back to the enumeration mode (using the command `enumeration'). There is also a mode in which the derivation of the current output term is performed stepwise. You can invoke this mode by selecting the command `stepwise derivation'. Other types of components accept other commands, but these are not descibed here. Most of them have an obvious meaning - just try it out or have a look at the manual.