Moving from MODS to usable RDF

[UPDATE: This meeting IS happening and is now scheduled for Tuesday, April 5 from 9-10am in Wells Library 043. Apologies for missing the meeting where this was originally scheduled but this thing is BACK ON! And don’t forget to check out Jennifer’s post discussing More about MODS (and XML) to learn more about MODS and its uses before we meet.]

It’s been a while since the Metadata Discussion Group last met but Jennifer and I think we have something that could benefit from a few more metadata-aware eyes at IU. If that’s you, or if you’re interested in topics like transforming metadata or linked library data, read on!

There is an ongoing effort in the Hydra community to figure out strategies to deal with descriptive metadata in RDF for use in Fedora 4 (the digital object repository that we hope to upgrade to here at IUB Libraries). The MODS and RDF Descriptive Metadata Subgroup, lead by Steven Anderson from the Boston Public Library, is working on how to handle MODS XML as RDF that will create a usable, if unofficial, metadata application profile to bring MODS into Fedora 4 as RDF properties.

So far this work has involved going through MODS element by element using examples from various institutions and asking the question “If [you] had to move that [MODS element] to RDF in Fedora 4 today, what would [you] chose to do with it?” (see the work for Abstract as an example). The MODS elements examined so far include name, title, typeOfResource, genre, originInfo, physicalDescription, abstract, language, and current work is happening on tableOfContents.

Join us on Tuesday, April 5 from 9-10am in Wells Library 043 to learn about this effort and Indiana University Libraries’ participation. We’ll share contributed examples and discuss how the MDG might help this effort along for IU and the Hydra community.

More about MODS (and XML)

At the Metadata Discussion Group meeting on March 8 April 5, 2016, we will talk about some of the challenges of mapping a descriptive metadata structure standard (in this case, MODS) from a XML-based expression to one that is RDF-based. This post will explain what MODS is and what it’s used for.

MODS: the ‘Who, What, and When’

The Metadata Object Description Schema (MODS) was published in 2002 by the Library of Congress’ Network Development and MARC Standards Office. The standard is maintained by an editorial committee comprised of library metadata practitioners from North America and Europe.

MODS is a “bibliographic element set” that may be used to describe information resources. MODS consists of 108 elements and subelements (there are 20 top-level or “parent” elements). At this point, I’ll urge you to go read the brief overview of MODS on the Library of Congress’ Standards website.

Go ahead. I’ll wait.

You read that bit about MODS being more or less based on MARC21, right? In the example below, I’ve described a sheet map using MODS elements and MARC tags.

DATA (formulated according to AACR2, if that sort of thing matters to you) MODS ELEMENT MARC TAG (and mapped MARC data value, when applicable)
Campbell County, Wyoming title 245 $a
Campbell County Chamber of Commerce (Wyo.) namePart 110 $a
cartographic typeOfResource Leader/06 “e”
Gillette, Wyo. place 260/264 $a
Campbell County Chamber of Commerce publisher 260/264 $b
[1982?] dateIssued 260/264 $c
1 map ; 33 x 15 cm extent 300

Table 1. Data expressed in MODS elements and MARC tags.

There’s a full mapping of MARC21 tags to MODS elements available, if you’re really curious. This example demonstrates that, although there are a few divergences, MARC21 was built to map almost directly into a MODS element.

MODS encodes descriptive metadata, or information about resources (title, creator, etc.). MODS and MARC21 are examples of data structure standards. Elements or tags are meant to serve as containers for data. Structure standards do not give any directions about how to formulate data—those directions come from data content standards (AACR2, RDA, DACS, etc.). The main purpose for structure standards (Dublin Core, EAD, and TEI are other examples of metadata structure standards) is to encode data so that it can be manipulated by machines. Elements separate discreet information for use in search and browse indices. Data structure standard elements often convey the meaning of the data. The MODS:title element only contains the word or words that are used to refer to a resource. MODS:title will never serve as a container for the resource’s size.

MODS: the ‘Where, Why, and How’

MODS was built “for library applications.” MODS has been chiefly implemented to support discovery of digital library collections. At IUB Libraries, MODS is the metadata standard of choice for the digital objects that are ingested into our digital collections repository, Fedora.

MODS elements are expressed in XML. XML is a metalanguage, which means that XML is an alphabet, of sorts, for expressing other languages. The figure below illustrates the XML syntax (the “alphabet”) by which XML expresses another language. A fake language with a bogus element named “greeting” is encoded in Figure 1.

An XML statement is shown. The syntax components--start and end tags, element name, attribute name, attribute value, and content value--are highlighted.
Figure 1. Anatomy of an XML statement. [click image to enlarge]
HTML (the language responsible for displaying this webpage to you right now), EAD, and TEI are also expressed using XML.

From the beginning, MODS was designed to be expressed as an XML schema. Schemata are the sets of rules for how languages work: which elements are valid and what their semantic meanings are, which elements nest within others, whether or not an element can be modified by attributes (e.g., the MODS:titleInfo might have an attribute called “type”), and whether there is a controlled list of values for a given attribute (e.g., the MODS:titleInfo “type” attribute is limited to the values “abbreviated, “translated,” “alternative,” “uniform”).

MODS records are created in a number of ways. You could open up an XML editor and start creating a MODS/XML record. If you want to really get to the know the MODS standard, that wouldn’t be a bad idea. However, if you wish to create metadata for a half a million photographs, editing raw XML won’t be terribly efficient. At IU, we have a few different methods for creating MODS records for digital objects. My favorite is the Image Collections Online cataloging tool. Use of the tool is restricted but I’ve included a screenshot below.

Screenshot of the Image Collection Online cataloging tool. The web form include fields for title, subjects, etc. A thumbnail of the digital object (an image) and an option for transforming the metadata to MODS are included.
Figure 2. Screenshot of the metadata interface for the Image Collection Online cataloging tool. [click image to enlarge]
Once a collection manager decides which metadata elements are desired and has consulted with the metadata specialist for digital collections (our own Julie Hardesty), those elements will display in a web form. Data may then be entered without needing to know XML or MODS. In Figure 1, you’ll see a box in the lower right-hand corner “Transform metadata to…” Clicking on that link that says “mods” allows me to download the data that I input into the web form as MOD/XML. You may view the full record for this photograph below.

That’s the 5 cent tour of MODS, as it’s expressed in XML. Questions? Leave a comment below!


Sample MODS Record

<?xml version="1.0" encoding="UTF-8"?>
<mods:mods xmlns:xsi=""
 <mods:title>James Whitcomb Riley and Lew Wallace</mods:title>
 <mods:name type="personal">
 <mods:namePart>Hohenberger, Frank M.</mods:namePart>
 <mods:roleTerm authority="marcrelator" type="text">Photographer</mods:roleTerm>
 <mods:roleTerm authority="marcrelator" type="code">pht</mods:roleTerm>
 <mods:typeOfResource>still image</mods:typeOfResource>
 <mods:genre authority="bgtchm">Photographs</mods:genre>
 <mods:genre authority="">Group portraits</mods:genre>
 <mods:digitalOrigin>reformatted digital</mods:digitalOrigin>
 <mods:note type="citation">Hohenberger mss., Lilly Library, Indiana University, Bloomington, Indiana.</mods:note>
 <mods:subject authority="local-hohenberger">
 <mods:subject authority="lctgm">
 <mods:subject authority="lctgm">
 <mods:subject authority="local-geo">
 <mods:geographic>Crawfordsville (Ind.)</mods:geographic>
 <mods:subject authority="">
 <mods:name type="personal">
 <mods:namePart>Riley, James Whitcomb, 1849-1916</mods:namePart>
 <mods:roleTerm type="code" authority="marcrelator">dpc</mods:roleTerm>
 <mods:roleTerm type="text" authority="marcrelator">Depicted</mods:roleTerm>
 <mods:subject authority="">
 <mods:name type="personal">
 <mods:namePart>Wallace, Lew, 1827-1905</mods:namePart>
 <mods:roleTerm type="code" authority="marcrelator">dpc</mods:roleTerm>
 <mods:roleTerm type="text" authority="marcrelator">Depicted</mods:roleTerm>
 <mods:relatedItem type="host">
 <mods:title>Frank M. Hohenberger Photograph Collection</mods:title>
 <mods:relatedItem type="series">
 <mods:identifier type="local">Hoh051.000.0001</mods:identifier>
 <mods:identifier type="local-callnumber">Wallace/Riley, Item 1</mods:identifier>
 <mods:physicalLocation>Lilly Library (Indiana University, Bloomington)</mods:physicalLocation>
 <mods:url access="preview"></mods:url>
 <mods:url access="raw object"></mods:url>
 <mods:url access="object in context" usage="primary display"></mods:url>
 <mods:accessCondition type="restriction on access">There are no restrictions on access.</mods:accessCondition>
 <mods:accessCondition type="use and reproduction">Copyright and reproduction rights for all Frank Hohenberger photographs are held and administered by the Lilly Library, Indiana University, Bloomington, In 47405. Additional permissions may be required prior to any reproduction of images of works by artists and photographers other than Frank M. Hohenberger that are retained in the Hohenberger Collection.</mods:accessCondition>
 <mods:recordOrigin>MODS record generated by transforming the photo cataloging metadata</mods:recordOrigin>
 <mods:languageTerm type="text">English</mods:languageTerm>
 <mods:languageTerm type="code" authority="iso639-2b">eng</mods:languageTerm>