Medlane project logo

Welcome to the Medlane software page

Though there is no current development activity related to the Medlane project, there have been three main previous projects: XMLMARC, MARC.OM, and MARCUTL. This page contains a brief description of each. For more information about each of these projects, consult the publications section of the sidebar. If you are interested in hearing when work on the Medlane project resumes, sign up for the XMLMARC mailing list.

XMLMARC

XMLMARC is a Java program that converts MARC records into XML. It was first developed in 1998 by Prisdha Dharma, a student worker at Lane Medical Library. Since that time, the program has changed dramatically. Perhaps the most important change is that it can now update MARC records (in addition to converting them into XML). Both the conversion and update processes of the XMLMARC program are controlled by an XML file that "describes" the types of actions the program should take.

Originally, the program's descriptive XML file contained logic statements embedded in XML elements; the current version of the mapping language, now called MARCUTL, expresses the conversion or update logic in the XML elements and attributes themselves. This allows update and conversion maps to be edited using generic XML editors and even stored in an XML-aware database. In addition, generating documentation for a particular map is as easy as processing it with an XSLT stylesheet.

There have been several versions of the XMLMARC program, but only one official release... the original one. Throughout its lifetime, the program has evolved rapidly (on several occasions it was rewritten from scratch). An older version of the program, the first to include the ability to update MARC records (but prior to the development of MARCUTL), is currently used to process MARC records at Lane. Updates are run every fifteen minutes for new records and once daily for modified records. Unfortunately, changes to the underlying MARC API make this program incompatible with newer, yet to be released, versions. We plan to rewrite our update map once the newest version is finished.

MARCUTL

MARCUTL is the MARC Update and Transformation Language that was developed to work in conjunction with the XMLMARC program. The original mapping languages developed at Lane worked well for most of the common update cases but, once we were able to process files automatically, our desire for more complex updates grew quickly. MARCUTL was developed in response to this desire.

The creation of MARCUTL involved a systematic discovery of all possible types of transformations that one might want to make to a MARC record. These transformations were then generalized into specific actions (delete, add, replace, burst, et al.) and applied across the different components of a MARC record (field, field tag, field indicators, subfield, subfield name, etc). In addition, the ability to use common (asterisks or question marks) or regular expression patterns was added. Once a pattern has been associated with a particular part of the MARC record, it can then be combined with others using a boolean syntax.

While the newest version of the MARCUTL language is not currently being used by Lane, we believe its powerful ability to express changes to the MARC record will further reduce the workload of our catalogers. The more work that can be done automagically by a machine, the more time catalogers have to spend on problems that only a human can resolve. When the new MARCUTL mapping language is ready for public consumption, we will announce its release on the XMLMARC mailing list.

MARC.OM

MARC.OM, or the MARC Object Model, started out as a component of the XMLMARC program. Over the years, we have needed a MARC processing library that could be used without an XML mapping file. As a result, the core MARC processing facilities were stripped out of XMLMARC and made into a separate software library.

Currently, the MARC.OM library supports the reading and writing of MARC records. In addition, it has a simple to use object model through which records can be manipulated. There is also support for outputting MARC records in the MARCXML format, as defined by the Library of Congress.

Over the years, we have experimented with several caching and storage mechanisms. After much investigation, we have decided to use the Perst object oriented database as a way to store and query records on disk. With the Perst libraries, MARC.OM records may be stored on disk and searched without concern for mapping the complex MARC structure into a relational database.

MARC.OM development is the first that will resume once time allows. We expect to release it as an alpha library and then bring the MARCUTL library is synch with it. After this, work will once again resume on XMLMARC.