PhotoCat: Implementing a Cataloging Tool for a Live Fedora Repository
MetadataShow full item record
In this presentation, we will discuss the development process of a metadata cataloging application called PhotoCat (short for Photo Cataloging Application) created by the Indiana University Digital Library Program to allow catalogers and archivists to easily enter and manage item-level MODS descriptive metadata for image collections in IU's Fedora repository. Although admittedly this is not a unique use of Fedora, we faced a few interesting challenges along the way in using Fedora as a storage backend for such a tool. PhotoCat provides access to metadata records for multiple collections in a flexible way. Even though they may all use the same metadata standard (e.g. MODS), each collection may use different subsets of the available elements or use elements in slightly different ways. PhotoCat, in addition to search, browse and user management capabilities, provides a customizable interface and metadata model that define a) the Web form that accepts user input and b) instructions for populating a metadata record from that form. Functionality similar to this is found both in Fez and Muradora, two popular Fedora front-ends. In this presentation, we will talk about how our implementation is different from these systems and the unique requirements that led to our current implementation. One of the challenges we ran into was related to batch updates. Users familiar with traditional online database applications expect updates to multiple records to be reflected nearly instantaneously. Updating a single element in a batch of XML metadata datastreams in Fedora, on the other hand, requires that each object's datastream be retrieved, updated, and stored back in the repository. One of the options for achieving a perceived real time operation was limiting updates to a small fixed number of records, but this wasn't acceptable for large collections with thousands of records that needed to be updated at the same time. We also considered placing a faster middleware layer between the application and Fedora, but ended up opting for an asynchronous, behind the scenes approach for this issue. Another big challenge was generating metadata records that are syntactically and semantically correct. One of the aims of the project was that the metadata generated by the application would obey established guidelines and best practices for a given metadata standard. We considered XForms for this purpose but ended up implementing our own display/model web component, and in this presentation, we will discuss the reasons for that choice.