Isi
History
For the development since Summer 2003 see Malete

0.9.0 June 2003

The simple standalone server ois is provided, currently single-threaded and non-windows only. Run in the database directory, naming the databases to serve like
cd /my/db/dir
/opt/openisis/sto/ois cds unesb anotherdb
For a demo of query and read access, see php/query. Other calls are now added to the Isis/Db.php and a like plain perl module will follow soon.
Note, that the communications protocol probably is to undergo some changes on the way to version 1.0, however, the only interesting features still missing in this version are
  • unicode collation support (which you might not need)
  • views based indexing (but application based indexing is supported)
  • new-style metadata (typically ignored in applications anyway)
so you may get by with this version for a fairly long time ...

0.8.9 May 2003

New plaintext database passes all test. It's typically more than 10% smaller than the traditional, has the same format on all platforms and no limits on field or record size. It can be fixed with a text editor; the pointer file is rebuild automatically. By default, it uses 4/3/1 pointers (4GB DB size, 16MB records). See DbFiles for how and when it's used. Create a text db using
sto/openisis -db db/cds/cds >db/cds/cds.txt

New plain PHP package features flexible "v" operator, direct access to the plaintext database (using 4/4/0 pointers) and isis database server access. The OpenIsis Tcl server oits can be used like
bin/oits -db 1234 test/testsrv.tcl
a plain server is to follow soon ...

0.8.8 April 2003

Sort of a preview to stable version 0.9.
The C-API seems to be mostly stable now (but don't use the RecStream), and there are not much known bugs (deleting index entries is broken; fixed in current CVS version). Yet, of course, features are going to be added ...
The Tcl-API now gives a good idea of what it's going to be, but still will undergo some changes during the following month. After that has settled down, Java, Perl and PHP will receive their upgrades.
Although there may be some changes until version 0.9, it's recommended to start playing around with the Tk demo GUI, tisis, and it's formatting TSPs (Tcl Server Pages), that also can be used as CGIs (see demo.cgi). Use this little test database (a copy of CDS recoded to Latin-1, with OpenIsis index and a procedure to select index entries).
Also try dexml, which uses the TclXML package to convert *ANY* valid XML input to ISIS records w/o loosing information!

0.8.7.5 April 2003

Last version of the 0.8.7.x developer series. It contains all the developments of winter 03.
Version 0.8.7.5 is the last to contain all that devel stuff. Version 0.8.8 will have explicit passing of Session removed, i.e. change the 0.8.7.x API, but still be compatible for the 0.8.6 calls.

Perl improvements February 2003

Try 'make pdemo' to see encoding support (Cp850 to Latin1, for other see perl/encoding.pl), a sample standalone perl install tree, support for 'indicators' (initial unnamed subfields) and a non-nonsense way of spitting out XML.

0.8.7.4 January 2003

Experimental FDT support and preliminary (old-style), but pretty usable Tcl bindung by Matthias included (see tcl/test for how it works, please contact us before using it for serious work). Of course several fixes...
0.8.7.2/3 December 2002

No longer uses stdio but direct threadsafe buffered io (*snprintf still used). Every session has their own buffered in, out and err streams, which may be accessed w/o interlocking.
0.8.7.1 November 2002
The IO module is rewritten to use native windows calls for WIN32. This also fixes some problems with read-only databases. Error checking needs to be added; however, under wine, it passes the standard test. adjust make.mingw to fit your MINGW installation, then use
make WIN32=sigh test
October 19th 2002
The OpenIsis society ("Verein") has been founded with 15 members. Chairman is Erik Grziwotz, other board members are Gabi Rohmann, Ingo Struck and Thomas Sonnemann.
0.8.7 October 2002
Version 0.8.7 supports writing of DOS/WinIsis masterfiles and xrf. This currently works fine for a single process on Linux. See [17]writing.txt for details. Current TODOs: interlock multiprocess writing (PHP, Perl CGI) and fix the windows and solaris versions. Besides writing support, there is a new streaming record reader, which groks various formats like the SYSPAR.PAR, email headers and property files, so you can fill your db from such textfiles. Next step: new indexing engine.
August 2002
No new software yet. Still very busy doing metawork. We are preparing to set up an organisation to support OpenIsis development with much more momentum and a company for professional services like help on large scale ISIS installations. paperwork on [18]the universal ISIS record
July 2002
some paperwork on [19]What is it about ISIS that makes it ISIS?
0.8.6 June 2002
This version supports basic formatting. While most, especially graphical, features of WinISIS or CISIS formatting are not yet supported (which are typically not used in a web environment anyway), there is support for repeated subfields as declared by MARC for many fields. See [20]formatting notes for details. The perl binding supports formatting (see the test.pl), enhanced versions for all those languages are to follow soon.
PHP June 2002
[21]Braulio Josť Solano Rojas from Costa Rica created a PHP binding, which can be seen in action at [22]galileo. Available as [23]download or from sourceforge module php-openisis. Also, the [24]Institut Teknologi Bandung of Indonesia switched it's web index to a PHP/OpenIsis based version.
0.8.5.2 March 2002
Much enhanced PERL binding. See the OpenIsis.pm included in the sources.
0.8.5.1 March 2002
Java now has support for basic formatting modes like MHL, various HTML-safety modes (like escaping all non-ASCIIs), a [25]Vn-field-selector-style method and several nice utils. Indentation is not properly handled, since there is no easy common solution in HTML. Will build tools for a choice of standard strategies later ...
0.8.5 March 2002
Finally some implementation of the query language ([26]demo). All the operators are there (including /(tag), but not /(t1,t2...)). Every attempt is made to limit the potential costs of even extremely stupid queries like "$"^"$", so no historical (#n) or intermediate results (for precedence) are stored. Queries are processed strictly left to right on a buffer of 1000 hits.
0.8.4 January 2002
Nearly complete rewrite of search code with support for NEAR conditions. Fixed alignment problems in IFP, now works with the unesb db (-format aligned) and the cds db as distributed with winisis. The cds db we had with previous versions (from an old CDS distribution) has a mixed format: aligned leaf files, others unaligned. Although support for a mixed format is easily achieved with openisis, it will not be included unless somebody has a need for it (send us mail). The JSP demo now supports [27]searching the unesb db with over 58.000 rows (note the hosting server is a 500MHz Celeron). Searching is limited to 1000 postings, usually resulting in a somewhat lower number of rows (where rows have multiple matching postings). The lowest row number (MFN) that was cut off is recorded, and it is possible (not yet in the JSP) to repeat the search starting from that rowid.
0.8.3 October 2001
First truly usable release, since we have true search by index now (as prefix or complete word). Search gives a list (array) of sorted MFNs; arithmetic on those lists (and, or, not) is straightforward. The JSP [28]demo shows how a query is refined (narrowed) iteratively by ANDing it with a second query. And thanks to Veronica Lencinas and colleagues, we have a version of this document [29]en espanol.
September 2001
Not a new release yet, but maintenance and testing. New structure logging mechanism. Sources are available via CVS at [30]sourceforge. Windows version openisis.exe running.
0.8.2 August 2001
openisis now under [31]LGPL, no legacy code. Conversion from file structures governed by abstract dynamic description rather than C-structs, so we can support different file layouts, much larger databases, big endian processors and more. Simple full-scan search available in C-Lib and Java. Given a random read throughput of about 30.000 Records/sec on a lame 300 MHz Notebook this seems to be of practic use. jsp demo under [32]development ;).
0.8.1 June 2001
Java native interface version available. Java package org.openisis has Db, Rec, Field, Test. NativeDb implemented in libopenjsis.so. Subfield splitting and htmlifying in pure java.
0.8.0 May 2001
Subfield splitting and htmlifying. Everything also available from perl as an xsub. Record shows up as hash, handy but no repeated fields. Makefile.PL, test.pl etc.
0.7.9 May 2001
First version: static C-Library libopenisis.a for reading records by rowid(Mfn). Executable "openisis" does test. Logging, argumentparsing, Makefile, demo etc.
ToDo
For the current status please refer to Malete

underway ...
  • finish Tcl binding
  • create Tk-based GUI
  • utilities for
    nested records
  • XML I/O-conversion utilities

next steps
(not necessarily in that order)
  • update language bindings Perl, Java ...
  • rework formatting based on structured representation of format as a record
  • rework query processing based on structured representation of query
  • implement new metadata
  • implement views
  • implement unicode collation