Your browser does not fully support modern features. Please upgrade for a smoother experience.
Modelling and implementation of catalogue cards using FreeMarker: History
Please note this is an old version of this entry, which may differ significantly from the current revision.
Contributor: Jelena B Radjenovic

The purpose of this paper is to report on a study involving the specification (using Unified Modelling Language (UML) 2.0) of information requirements and implementation of the software components for generating catalogue cards. The implementation in a Java environment is developed using the FreeMarker software. Design/methodology/approach Object‐oriented methodology as well as CASE tools are used to design the software components. The system architecture makes the catalogue cards available from every segment of the library management system, and enables catalogue card updates without recompilation of the source code. Findings The outcome of the work is a software package, implemented in a Java environment, that generates and displays catalogue cards based on bibliographic records in the UNIMARC format, but it can be easily adapted for the other MARC formats. Research limitations/implications The package is limited to generating only catalogue cards based on MARC formats. 

  • Library management,
  • Java
  • Cataloguing
  • Computer software

1. Introduction

Catalogue cards are considered to be a basic type of bibliographic material. Theycontain the main elements of bibliographic description: call number, one or severalheadings, bibliographic description and accession number. Depending on thepublication described, the catalogue cards may be created for monographs andserial publications, non-book materials, etc. ISBD (International StandardBibliographic Description) is used for providing bibliographic descriptions ofdifferent types of publications in a machine-readable catalogue (IFLA, 2008). TheMARC (Machine-Readable Cataloguing) format was developed on the basis of the ISBD for computer processing of bibliographic data (Library of Congress, 2008). TheUNIMARC (UNIversal MARC) format is an international standard for bibliographicdescriptions in a machine-readable form (IFLA, 2000). The description consists of arecord identifier (record label), directory and a series of fields. A field consists of aseries of subfields and each field is assigned two indicators. The subfields contain dataabout the publication being described.The relevance of catalogue cards in today’s computer-equipped or completelydigital libraries may be questioned. However, our experience, in Serbia, with users oflibrary management systems (LMS) shows that catalogue cards, although not used fortheir original purpose – searching library catalogues – still represent a compact andefficient representation of data contained in bibliographic records. Catalogue cards areboth simple and informative enough for the libraries’ end users while maintaining aformal structure required by the librarians that enables them to use catalogue cards asa compact preview of the full contents of a bibliographic record.The results presented in this paper arose from the development of the BISIS LMS(www.bisis.ns.ac.yu/), which is based on the UNIMARC format. System developmentbegan in 1992 (Surla and Konjovic, 2004) at the University of Novi Sad, Serbia.Currently (2008) BISIS version 3 is used, implemented in a Java environment. TheBISIS LMS is based on open source components and fully supports the Unicodestandard. It is further adopted for the specifics of the Serbian language – including theuse of both Latin and Cyrillic scripts. BISIS is used in public libraries, university andfaculty libraries, and some specific-purpose libraries (archives, galleries, SerbianMinistry of Foreign Affairs, regional government of the province of Vojvodina) and itsuse in school libraries is being planned. The BISIS LMS was used in TEMPUS JEP16114 project “Web-based Inter-University Library Network”; internationalisation andlocalisation of the BISIS LMS was carried out during the TEMPUS project for English,Greek, German and Macedonian and, during the adoption in the local government ofthe northern Serbian province of Vojvodina, in Hungarian, Slovak, Romanian andRusyn. The main modules of the BISIS LMS comprise cataloguing, bibliographyreports, circulation, public web access (OPAC), bibliographic data interchange, andadministration.The development of BISIS version 4 is under way and focuses on full adoption ofXML technology, support for both UNIMARC and MARC21, Z39.50 protocol client andserver, and multimedia extensions for storing and retrieving digital content.Multimedia retrieval models used for BISIS are presented in Milosavljevic (2004).The cataloguing format used in BISIS version 3 is modified UNIMARC.Modifications are introduced in the ninth block, which is reserved for national use.Some of the subfields in the ninth block are comprised of sub-subfields. A sub-subfieldis a new concept that has the same properties as the subfield (Pupovac, 2004) andprovides a greater flexibility in representing the local library data within abibliographic record.Previous research and development of BISIS has related to the subject of libraryreporting and catalogue card creation. Savic (1998) described the architecture forgenerating catalogue cards that was designed as a data dictionary-guided system. Areporting subsystem developed by Vulic (1997) includes both report structure andreport creation based on a defined structure and specific bibliographic record from thedatabase, while the rules for creating reports are extracted from the algorithm structure for applying rules to special classes. Vidakovic and Rackovic (2006)described bibliographic records, concept descriptions of different types of cataloguecards, as well as descriptions of specific catalogue cards all in the XML document form.In the previous papers any extension (i.e. addition of a new type of catalogue card,addition of a new concept) required changes in the programming code itself and the listof accessible catalogue cards was put in the database. In addition, catalogue cardimplementation was integrated with the subsystem for processing bibliographicmaterials.Previous shortcomings have been removed by making templates for catalogue cardgeneration in the FreeMarker software package (Radjenovic, 2006). New cards andconcepts input are achieved by adding new templates, i.e. by changing the existingones without changing the Java application code. Also, a dynamic loading of cataloguecard names is made possible and is now reduced to loading template names, whichenables catalogue cards to be generated in all BISIS modules (Radjenovic et al., 2006).Both electronic (HTML-based) and printed versions of catalogue cards are availablein BISIS via different modules including cataloguing, bibliographic reports, circulation,and OPAC.FreeMarker is an open-source software package designed for generating text basedon templates (FreeMarker Manual, 2005). It enables data from a database or some otherdata source to be inserted in a textual document, usually an HTML page. FreeMarkeroperates on a specific data model based on lists and maps. Transformation of thebibliographic record data in the format recognised by FreeMarker is performed by aJava program. Merging the data with the textual templates is performed by theFreeMarker templating engine that produces an HTML representation of the data.Hence, FreeMarker may be viewed as a flexible, text-based reporting tool. It is not anapplication package as such, but provides the facility for programmers to embed thesource code into their product.The main advantage of using FreeMarker in an LMS such as BISIS is the fulldecoupling of bibliographic data, program code, and reporting templates. It facilitatesthe customisation of templates to support various types of reports (i.e. catalogue cards),and to support specific needs of particular libraries. Since BISIS is used in differenttypes of libraries, this feature has greatly improved the customisability of thecatalogue card format while preserving the same program code. Being a generictemplating engine, FreeMarker is not tied to a particular presentation technology andmay be used in different types of user interfaces, as well as different modules of acomprehensive LMS system such as BISIS.The bibliographic record data structure used by FreeMarker is presented in the nextsection and the modelling and programming of catalogue cards are described later. Themodelling is done in Unified Modelling Language (UML) 2.0 notation (Superstructurespecification, v. 2.0., 2005) and programming in FreeMarker software. Theimplementation of FreeMarker templates in a Java environment is described inSection 5.

2. Data Model

The data model is a set of Java lists and hash tables ordered in a tree structure. Theroot of the tree is always a hash table and the elements of the hash table may be newhash tables, lists or scalars. The following text describes a data model, which is adapted to accept all data from a publication record. A sketch of the tree representingthe data model is given in Figure 1.Since it is necessary to write a certain text that precedes the contents of some fieldson a card, and BISIS being designed so that the messages can be displayed to a user indifferent languages, this system functionality should also be maintained whilegenerating catalogue cards. This text, in a language appropriate for the user, is put intoauxiliary scalars that are inserted into the root of the data model.A directory list is made for directory data and put into the root of the data model.Each element of the list is a hash table in which scalars containing tag, field length andthe character position where the observed field begins are stored.A record label consists of 24 characters containing different data about the record.In order that access to record label elements should be simpler, record label data aredivided into data and each of them is put into the root as a scalar. For each data in therecord label the position of the character where this data begins, as well as the positionwhere the data must be ended, are indicated. Because of this, a decision is made thatthe key of each scalar containing any of the record label data begins with the letter “L”(label) followed by the position where the data stored in the scalar begins. For example,the key of the scalar containing a record type would be “L6”.For each record field in a data model a list is made with the name of each listbeginning with the letter “f“ and followed by the field name (for example, f500 is thename of the list containing all repeatable 500 fields). The elements of a list areoccurrences of the observed field (data about a publication can contain several fieldswith the same name, i.e. the fields are repeatable). The element of a list can be a hashtable that contains only one element – content scalar, where the content of the field isstored or a hash table that contains the values of the first and the second indicators asscalars and a sf (subField) list.The elements of the sf list are hash tables made of the subfields of the observed field.Each hash table of the sf list contains scalars – name and content – in whichrespectively the name and content of the observed subfield are to be found. The ssf listappears if a subfield contains sub-subfields. Each element of the ssf list is a hash tablethat contains name and content scalars in which respectively the name and content ofthe observed sub-subfield are to be found. Within a subfield, secondary fields canappear too. The scalar name for all fields that contain secondary fields contains value1. The name of a secondary field is put in its content and a secondary field itself is to befound in the secField hash table. The record fields, the contents of which are empty, arenot put into the record structure and the same applies to subfields.Diagrams used to model the creation of some of the elements that make cataloguecards, as well as the creation of the card itself, are shown in the following section. Onthe basis of each diagram an implementation of macros, i.e. templates of theFreeMarker software package is done. The templates and macros consist of HTMLtags, FreeMarker Template Language (FTL) commands (assign, if and loop) and FTLbuilt-in functions (i.e. exists)

This entry is offline, you can click here to edit this entry!
Academic Video Service