including openisis 0.9.0 into webpac tree
[webpac] / openisis / doc / IsisIntro.txt
diff --git a/openisis/doc/IsisIntro.txt b/openisis/doc/IsisIntro.txt
new file mode 100644 (file)
index 0000000..e08e5bc
--- /dev/null
@@ -0,0 +1,62 @@
+*      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.
+