Development and support of Willow is now discontinued. Willow was removed from production at UW on June 30, 1999.

Willow Technical Report: User Interface

Using Willow

The Willow interface is an X Window application, built with the Motif toolkit (see Related Software for information on Willow for non-X platforms). The paradigm used for Willow's architecture is that of "database-drivers", modeled after the concept of Unix device drivers. With this model, Willow itself does not need to be changed at all for it to speak to a new database, no matter how unique the database is. Instead, a database-driver is written to act as an intermediary between Willow and the host database. One important database driver allows Willow to speak the standardized database access protocol known as Z39.50. See Architecture for more detailed information.

The Willow interface is designed to simplify the process of connecting to and searching a heterogenous collection of databases. Willow also adds new functionality by performing result-retrieval in the background while you examine the initial matches. Willow makes it easy to develop your search strategy incrementally. Successful strategies can easily be saved for future re-execution. Capturing results to local or remote systems is also greatly simplified by the Willow interface. Willow fully supports standard X copy and paste, so text can be easily interchanged with other standard X application.

If you are on an X Windows display right now, a remote Willow demo is available.

Connecting to a Database

Selecting a Database

Once Willow is started, to connect to a particular database you simply select its name from the database-picker window. This is an outline-based hierarchy browser which allows you to read brief descriptions of the available databases. As far as you are concerned, that is all there is to it. No messing around with telnet, typing in account/password information, setting terminal types, and remembering obscure operating system commands and/or database system commands to get the appropriate data-set loaded and ready. Willow handles all of that transparently.

At any point, you can select a different database from the Database menu and connect to that one instead. For example, you could do a search on Books in Print, then select your local library catalog, and in short order, run the same query again.

Willow can also be configured to be launched by any standard Web browser. Thus you could browse a hypertext document that included embedded Willow links, and start a Willow database session simply by clicking on the database name as it appears on the Web page. See Willow and the World Wide Web.

Composing a Search

Willow Search Window

The search composition area of the Search window consists of six text fields, and up to four limit fields. A text field consists of a name of a particular field that is found in the target database, and a blank area for you to type in words that you are interested in finding in that field. For example, if the current database is MEDLINE (The National Library of Medicine's collection of medical journal citations), the default set-up might be two fields labeled "Keywords" (meaning ignore field boundaries in the database entirely), two labeled "Subject Heading", one labeled "Title Words", and one labeled "Author." You can instantly re-configure the layout of the text fields if you do not like the defaults (the field labels are actually pop-up menus, with the less frequently used fields initially hidden. The field labels automatically configure themselves appropriately when you switch databases.

Changing a field label

When the search is performed, the individual lines are joined with an "AND" operator. For example, if you type "smoking" in one of the Keywords fields, "emphysema" in a Subject line, and "Smith" in the Author line, Willow retrieves all citations that have the word "smoking" anywhere, and "Emphysema" in the Subject field, and "Smith" in the author field. Whatever other search operators the host database supports can be manually entered if needed (e.g. OR, NOT, ADJ, WITH, etc.) Note that Willow does not currently support operators other than AND between different fields. You can search for smoke OR smoking in the Subject field, but you can not search smoke in the Subject field OR Smith in the Author field.

Limit fields are simple labeled check boxes. For example, one might be "English Only" to limit retrievals to citations of English language articles. There is also a graphical interface for limiting search results to a range of publication dates.

Once the search is ready, you press the Search button to send it off to the host database. A typical pattern for using Willow is to put one or two very broad terms into the Search window and launch the search. You then get many more hits than you want, but you can quickly scan through the list of results using the Summary List window (as discussed below). When you see something that you are interested in, you can simply use X paste to copy the relevant terms from the Summary List back to the Search window, and then start a new, more specific search, which should retrieve only relevant citations.

Saving a Search Strategy

Any search strategy can be named, and added to the Queries menu. Selecting a query name from that list causes the search composition area to return to the exact state it was in when the strategy was saved. Additionally, all the strategies saved in the menu at any given time can be written to a file. And of course, an old file of search strategies can be opened at any time. Thus for a constantly updated database such as MEDLINE, it is simple for you to keep up to date on newly added citations which match your favorite search criteria.

Willow Queries menu.

Browsing Lists of Search Terms

Willow provides an ability to browse lists of possible values for the various search fields. For example, many bibliographic databases use only terms from an official list in the Subjects fields of their records. MEDLINE uses the MeSH list (Medical Subject Headings). If they did not use this controlled list of subject terms, and instead, individual authors just picked their own, half the articles about heart attacks might have "Heart Attack" in the Subject field, and the other half might have "Myocardial-Infarction." With the controlled list of subjects, if you search "Myocardial-Infarction" in the Subjects field, you should retrieve all the records about heart attacks.

In addition to subject terms, you may also want to browse alphabetical lists of the authors, titles, or other fields that comprise a given database. Picking search terms from a list instead of typing them yourself also protects you from your own typographical errors (On the other hand, displaying lists of all the existing values of a given field in your database will expose the embarrassing typos in your data!). Willow has a List Browser window that allows you to quickly find the items you are interested in. If a particular field has a corresponding browse-list available, you can use the Browse button on the lower left-hand corner of the Search window to view it. The label on the Browse button corresponds to the field you most recently clicked the mouse in.

Once you have popped-up the List Browser, you just type the first few letters of the word you want. The list automatically scrolls to match what you have typed. For example, in the MEDLINE Subject Headings list, just typing `orot' will get you to `Orotate-Phosphoribosyltransferase'. You can also use the scrollbar to move around in the list. Once you have selected the item(s) you are interested in, you click "OK", and the chosen entries are automatically transferred back to the Search window. Though this all appears quite simple to the user, there is alot going on behind the scenes. See List Browser Implementation for details.

Willow List Browser.

One browse list of particular interest is the UW Libraries Catalog titles list, sorted by Call Number. Unlike most lists which are sorted and searched in alphabetical order, this list is in true call number order. A typical use is to do a normal Willow search of the Catalog, find an item of interest in the Summaries window, then use X to select and paste the call number from the displayed result into the call number browser. The list will then jump to display the title you already found, and surrounding it in the list will be other items with closely related call numbers. In effect, it is like going to the stacks and finding your book, then looking around to see what is shelved near it. But unlike the real shelf, even books that are currently checked out will be there, and you will see the items available in more than 20 branches of the UW Libraries.

Browsing the UW Catalog by Call Number.

Basic Searching Mode

Willow has a Basic Searching mode, which is designed especially for use with library catalogs. With these databases, many users want to look up a known book or author. In this case the Willow Search screen can be confusing, and it provides more power than necessary. All you really want to do is pick an already-known item out of a list, and see where to find it in the library, and whether it is checked out. In Basic Searching, you first see a screen with a few of the most commonly used fields listed. You click the button corresponding to the kind of search you want to perform.

Willow Basic Searching, initial view.

After you click a button, the window grows downwards, and a type-in area appears. As you type the first few letters of the item you want to look up, the window grows again, and a browse list (as discussed above) appears. When you press the Search button any items you have selected are looked up (with an OR between them, if more than one).

Willow Basic Searching, view after typing the first part of an Author name

Viewing Summaries

While the search is executing, you are treated to the endlessly amusing spectacle of a spinning globe. Once the search has finished, the Summaries List window is brought to the top. Willow starts the process of retrieving a summary of each matching database entry. As each summary is retrieved, a title line is added to a scrollable list. This line is configurable, and can contain several fields -- at UW we use 20 characters of the Author or Journal Title field (depending on the database), 60 characters of the Title field, and four characters for the Year of Publication. You can scroll through this list as it grows, scanning for interesting titles. When you see one, and click on it, the summary information for that citation appears below the title list. The summary is also configurable, but typically consists of Author, Title, Source and Subject fields. To alleviate pressure on the underlying database system, no more than 30 summaries are retrieved at a time. You can press a button labeled 30 More to view more titles.

Willow Summary List

As you find summaries you are interested in, you can print them or save them, individually or in groups. Saving can be done to a local file, as an electronic mail message, or over the network using ftp (internet File Transfer Protocol). You can also press the Retrieve Full button to retrieve the full-records of all the selected titles. The records are displayed in the Record Retrieval window.

Viewing a Full Record

Willow Record Retrieval Window

The contents of the full record vary greatly depending on the database. For a library catalog, it might just add a few additional esoteric fields that were not included in the summary display, but for MEDLINE and other databases of bibliographic citations, the full record usually includes the abstract of the cited article, and for some databases it could have the full text (in ASCII form) of the article. With some databases, Willow allows you to choose which fields will appear in your full record. Below is Willow's Record Format Options dialog box. This dialog box also lets you choose whether you prefer to view fully-expanded field names or two letter abbreviations (convenient for loading retrieved records into your own reference manager database), and whether you would like to include the search strategy that generated your results with your saved and printed records.

Willow Record Format Options dialog box.

The Record Retrieval window consists of a large scrolling text area, where the citation appears just as the host database sends it out. Words that match the query are highlighted (highlighting of the matched words is not implemented in the Z39.50 driver, because indication of matched search terms is not part of the Z39.50 standard). In full-text databases such as Grolier's Encyclopedia, the Prev and Next Match-Words buttons scroll the display to the next or previous occurrence of a highlighted match word. As with the summaries, the full-records can be printed, as well as saved via email, ftp, or to a local file.

Getting Help

Willow has on-line help available from each window. Pressing the button labeled Help will pop up a hierarchical help browser. The help system can display either plain text or bitmaps. It can also be configured so that you get different help-screens depending on what database you are connected to. This is very useful for explaining searching techniques that only apply to a specific database. The actual help files can be installed on the same machine Willow is running on, or they can be retrieved from a central depository via http (see Configuring Willow for more information about Willow and http).

Willow Help System

Configuring Willow

Willow is an extremely customizable program, both at the level of the individual user, and for an entire site. This section contains an overview of the available customizations, but for full documentation, refer to Administering Willow (see Getting Willow for information on getting the distribution).

Willow is able to use http (the same protocol the World Wide Web is based on) to retrieve its database configuration and help files from a Web server. This enables a large organization to have copies of Willow distributed over many machines, but easily update the list of available databases, and the database-specific help at a central point, without users having to install any new files. Willow's http retrieval is based on the World Wide Web Consortium's Library of Common Code.

User-level Customization

When you select Save from the Options menu, Willow writes a file called .willowrc in your home directory. In it, Willow records any customizations you have made, i.e. changes to the Record Format Options, your preferred printer, your preferred method of saving results (i.e. direct to file, email, or ftp) along with any necessary information for doing the saves (except for passwords for ftp, which must be re-entered each session), etc. When Willow starts up, it reads the .willowrc file, and configures itself accordingly.

In addition to the .willowrc file, Willow makes extensive use of X resources. All the options described above can be set via your .Xdefaults file as well. Plus, there are a number of customizations which are available only through X resources. You can set the Willow*size resource to small, medium, large, or extra-large. Willow then sets its geometry and fonts accordingly. At small, all of Willow's windows fit fine in a screen as tiny as 640x480 pixels, and at extra-large Willow will take full advantage of the extra real estate of a 1280x1024 display. A value of custom is also available if you are not satisfied with the standard choices. Willow's color scheme and fonts are fully customizable as well, giving you free reign to make the display as nauseating as possible. Also available for customization are the various key-bindings and keyboard shortcuts used by Willow.

Site-level Customization

Database Configuration File

There are several other ways that Willow may be customized, but these will generally only apply if you are a system administrator, setting up Willow for an entire site. At start-up, Willow reads another text file, by default called db.conf, which contains the configuration information needed for each available database. Normally this is a global system file, read remotely via http from a Web server, though it can also be installed locally, and it is even possible for you to have a personal one. The information in this file allows Willow to construct the Database menu. When you select a database, Willow knows which database driver to launch, and how to configure the field-labels and browse-lists, based on what it found in the db.conf file.

As a system administrator you will probably want to add new databases to Willow's repertoire, either your local data collections, or remote Internet-accessible ones. To do so, a new entry is made in db.conf for each database. See Administering Willow for complete documentation on the format of a db.conf file.

Interface Modes

Willow's interface can be run in three different modes, controlled by an X resource called Willow*interfaceMode. The mode described so far is desktop or full-featured mode. It is well-suited for use in individual departments, where the department is running Willow on their own Unix workstations, and individual users have personal accounts on these machines, and access to X-Windows displays.

However, as a huge institution with a very heterogenous collection of X-capable terminals and workstations, we have found that it makes the most sense to run Willow on a centrally maintained cluster of machines, which display the Willow session remotely on the user's terminal. Thus when you execute willow you are really just running a small script that uses rsh to automatically start up Willow on one of the cluster machines, using the power of X to display remotely on your screen. There are several advantages to this approach. New releases need only be compiled on a single architecture, and they do not have to be distributed to a large number of sites, more CPUs can be added to the cluster as load increases, or machines can be removed from the cluster if they develop hardware problems.

This approach only works well when the application can effectively be run anonymously, i.e. if the user does not have to have a personal account on the server machine. When interfaceMode is anonymous, Willow will assume you do not have an account on the machine it is running on. Save no longer appears on the Options menu, so you can not create a .willowrc file in the home directory of the anonymous account shared by many people. Naturally you can still set all the possible Willow options in your .Xdefaults file on the machine you really do have an account on. Also, in anonymous mode, retrieved records can only be saved via ftp or email -- not directly into a local file, and similarly, saved collections of search strategies can only be saved/loaded via ftp.

The third access method is walk-up use in the UW Libraries. In this case the system is controlled by a session manager that acts as "Big Brother". It gives the naive walk-up user lots and lots of help and encouragement, but at the same time severely limits what the user can actually do with the X environment. In session manager mode, Willow no longer has a Quit item on the File menu, and it accepts commands from the session manager telling it to connect, reset, quit, take itself off the screen, etc.

Questions and comments about Willow to: