Isi
IsisIntro
what is isis

Isis is a simple, yet powerful database system with a large installed base since the 80s. Since it's well suited for bibliographic data, it's commonly used in libraries, and since it's very low cost, especially in those running on a low budget.
The acronym CDS/ISIS is spelled out as Computerized Documentation System / Integrated Set of Information Systems.

introduction to the isis db

An isis DB is a list of rows of unspecified structure, each identified by a unique number, the rowid (a.k.a. mfn). Each row is a list of fields, and each field has number (tag) and a string value. Within a row there may be zero, one or more fields with a given tag. While the field's value usually is a textual representation of data in one or the other character encoding (commonly one of the IBM/DOS code pages), it may actually contain arbitrary bytes. This is closely modelled after ISO2709 "Information Interchange Format" (IIF, a.k.a. ANSI/NISO Z39.2 )
subfields

There is a convention to encode multiple fields in one by separating them with a '^' followed by one character tagging the subfield. So the field value '^afoo^bbar^bbaz' represents a field having one 'a' subfield with value 'foo' and two 'b' subfields 'bar' and 'baz'. An other separator char may be used, e.g. ASCII character 31 ("Unit Separator") is used in the MARC standard.
formatting

There is a formatting language, with literal text, field and subfield variables, if-else branches (on field existance) and for loops (over field repetitions) (roughly speaking).
indexing

An index is build by converting a row into a list of words (optionally applying formats) and stuffing every word, qualified by the position of it's occurence in the row, into a B+-Tree (which is actually spread to six files). Searching for a word or word prefix is possible with or without qualifying the position (field). Since all fields can be combined into one index, it is usually not necessary (but possible) to set up multiple indexes.
queries

A query language allows for combination of word lookups using and, or and not(without) operators. This is very similar to the "Type-1" query of Z39.50.
usage

While isis lacks most features of RDBMS like complex relations between different entities, it's flexibility comes in handy for many catalogues and directories with highly varying records and one single level of substructure, which today are usually modelled in XML documents rather than table rows. In other words, isis is an ideal storage for many XML applications. The flexible indexing mechanism combines the best of full text searching and structured retrieval.