* 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. * 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 > http://www.niso.org/standards/resources/Z39-2.pdf 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 > http://www.loc.gov/marc/specifications/specrecstruc.html 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 > ftp://ftp.loc.gov/pub/z3950/official/part1.txt 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.