The following is a description of WIRES - Western Information Retrieval System. Wires is a retrieval engine for sophisticated users. In its current form it is most suited for use in special libraries. At present we are using it as our OPAC at the School of Library and Information Science at the University of Western Ontario. Capabilities: Wires is still under active development and will undergo some major enhancements over the next few years. At the moment WIRES allows boolean and weighted searching by keyword. Weighted searching is the default. The weighting algorithm was adapted from G. Salton's book Introduction to Modern Information Retrieval. The updating mechanism in wires keeps a log of all updates to the database. This enables us to do a number of things. We can easily restore the database if the indexes become damaged. The update log also allows us to track the history of each record and thus of our whole database. Any number of people can select records for update at any time. Once a record has been selected for update it is locked so that no other user can update it. Selected records are extracted to an ASCII file when can be edited with any text editor. The edited records are then applied to the database. On a multiuser system this can be done in the background. Any number of update jobs can be submitted at one time, wires takes care of serializing them. Wires can handle multiple databases. You can easily switch from one database to another. You can also view more than one database at a time. Wires uses variable length records with variable length fields. A field can occur any number of times within a record. The only limit on field length is that a field must fit into available memory. Every database has a field definition file which defines the fields that can occur in records in the database. A record can have any combination of fields. The field definition file also determines which fields are indexed and the names that are applied to a field. The field definition file is also used in defining default record formats. A record format just consists of a list of fields. When a format is uded in displaying a record only those fields will be visible. The user can dynamically define new formats at runtime. The primary rationale for wires was: - to develop a system that could be adapted for research projects - to develop a portable system Wires is designed in two parts: a kernel layer and a user interface layer. The kernel layer is very portable. The user interface is not very portable. The kernel contains the bulk of the code. Thus to port wires to a new environment, we just have to write a new user interface layer. It is possible to write a user interface layer that is portable but we decided this approach made too many comprimises. By writing a separate user interface for each new operating system or computer we will be able to take advantage of the target's capabilities. It is also possible to do different interfaces to the same database, making wires a vehicle for research on user interfaces. The source code for Wires is available on request. The only restriction is that it cannot be sold or distributed with the consent of the School of Library and Information Sciences. For more information contact: C.McClellan: 35004_240@uwovax.uwo.ca