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.
|