Leviathan Project: A GNU Library System

Create a complete system for libraries to use for book check in/out, renewals, holds, and Patron Mai

I am proposing creating a complete library system for all library transactions. It will be created with three tiers.

The base tier will be a SQL RDMS system. The SQL code will be GPL and follow the SQL '92 Standard. This allows the Library implementation to use "free", Postgresql or GNU SQL, or commercial, Oracle or DB2 or etc., for the database backend. This gives the library or company implementing the solution to choose a "best" setup for the specific library system. The database will be based upon the current MARC Standard. It will include all currently recognized item types and be expandable, as new item types become available.

The middle tier will consist of an interface to the RDBMS. It will be written in C for speed and portability. This tier will provide the configurable options for the structure of how the library wants their library system to functions. This tier provides the business logic and all configurable options. A problem with this is that if the library does not want a certain option, i.e. they don"t charge fines, space will be lost since that capability has been programmed into the SQL, however with a structured design that loss is minimized. A well defined API will be developed for communication with this tier. This will make client design and development simpler.

The final tier is the user interface. There will be two interfaces to the system.

The Leviathan system will allow multiple logins with a set structure functions that can be permitted or denied to a client based on their login. All administrative facilities should be handled either through direct modification of the configuration files or via an admin login on the staff client. 

An advantage of using a three tiered system with a RDBMS back-end is the reporting functionality. Many library systems have massive reporting requirements for budgeting, staffing and library building placement. These requirements can be met with an extensive and well thought out reporting and history logging functions. 

Statistical comparative reports must be included in the final package. These would include:

  1.  circulation for a location compared to a previous date (last year, six months ago, etc.), 
  2. patron transactions (renewals via the patron interface, etc), 
  3. types of items of interest to patrons (should we buy more travel books?). 

A disadvantage of this system is that most libraries do not have technically staffed computer departments except in the larger systems. This means that the primary users of this system will be library implementers and well staffed library systems. For smaller systems they may not have the technical knowledge to implement this kind of system unless they contract someone to do it for them. 

Also, integration tools will need to be developed so that library systems moving to the Leviathan System. The project will proceed in three steps, following the footprint already laid out. Development will begin with the SQL backend. It will be developed using Postgresql and DB2 and Oracle for compatibility. MySQL is not a choice since it does not support transactions or foreign key referential integrity. Once the SQL tables are in place work will begin on the second tier. At this point all configuration points must be deciphered. 

A problem is that almost every library system is completely different at several levels. The configuration options must be able to allow each library system to have complete control over how they want their library system to work. The API interface will also be designed at this point. Care must be taken to separate out the RDBMS API to each RDBMS specified in the C code. 

A possible future development is to allow connections to multiple Leviathan RDBMS for migration capabilities, i.e. moving from Postgresql to DB2. Finally the patron and staff interfaces will be developed. Once these two final interfaces are complete a v1.0 release date can be finalized. 

I am interested in this project because of my involvement in a Request For Proposal (RFP) for the Alachua County Library District's new library system last year. I was surprised and appalled by the cost and features of the Integrated Online Library Systems (IOLS, those are the words that libraries use to specify a system, I would never call them that) being sold to libraries. We spent more than a million dollars on ours, plus $50K a year for 9-5 support central time. I want to provide a cost effective alternative since I know that most libraries can not afford these systems. 

This will still provide a way for library companies to make a profit by supporting a GNU Library System, but they should not be able to gouge libraries as much as before. Also, by using a GNU/Linux system most the initial cost will be in hardware and not in the software. Since the Leviathan system will be RDBMS independent and the middle tier written in C, it can be ported to other platforms such as AIX or Solaris or (God forbid) Windows Servers.