Pride and Prejudice 5: Mahler
All right. If you haven’t downloaded the Library of Congress’s FRBR Display Tool, my shell scripts, and the big MARC file, go back to the last post, Pride and Prejudice 4: FRBR Display Tool and get yourself set.
Here are the files in the LC zip file:
-rw-r--r-- 1 wtd wtd 1076 Mar 30 2004 MARC2FRBR.BAT -rw-rw-rw- 1 wtd wtd 1270415 May 7 2003 MARC4J-B.ZIP -rw-rw-rw- 1 wtd wtd 261744 Jun 3 2003 MARC4J.JAR -rw-r--r-- 1 wtd wtd 940 Feb 4 2003 MARCXML.BAT -rw-rw-rw- 1 wtd wtd 7009 Mar 24 2004 README.TXT -rw-r--r-- 1 wtd wtd 941 Mar 30 2004 SLIM2FRBR.BAT -rw-rw-rw- 1 wtd wtd 25166 Jan 28 2004 mahler.html -rw-rw-rw- 1 wtd wtd 52148 Dec 19 2003 mahler.mrc -rw-rw-rw- 1 wtd wtd 47895 Aug 16 2005 mahler.mrk -rw-rw-rw- 1 wtd wtd 34495 Jan 28 2004 mahler.xml -rw-rw-rw- 1 wtd wtd 13563 Jul 28 2006 marcxml.jar -rw-rw-rw- 1 wtd wtd 966191 Nov 11 2003 saxon7.jar
README.TXT says at the bottom:
3. Example using the MARC file "mahler.mrc"
C:\MARCXML>marc2frbr mahler.mrc mahler
will produce two files
mahler.xml: The FRBR xml file
mahler.html: The FRBR HTML display file which you can view using any
web browser.
As I said last time, I use Unix so I need a shell script, and I wrote marc2frbr.sh. Let’s run it on the sample MARC file that LC provided, and make sure everything is tickety-boo:
$ ./marc2frbr.sh mahler.mrc mahler Transforming mahler.mrc to MARCXML ... Transforming the MARCXML into FRBR XML and saving to mahler.xml ... Transforming the FRBR XML into HTML and saving to mahler.html ... Complete
Worked perfectly! The HTML generated is mahler.html. Have a look and see what it looks like. If you have any MARC editors or analysis tools, use them to have a look at mahler.mrc and compare the two.
Also of interest is mahler.xml, from which the HTML is generated. It uses the Metadata Object Description Schema (MODS) to help define metadata elements in a FRBR hierarchy with works, expressions, and manifestations. Here’s a section of the file, representing one particular work (which you can look for in the HTML):
<work>
<mods:name type="personal">
<mods:namePart>Mahler, Gustav, 1860</mods:namePart>
<mods:role>
<mods:text>creator</mods:text>
</mods:role>
</mods:name>
<mods:titleInfo>
<mods:title>Symphonies, no. 3, D minor. O Mensch. Vocal scores</mods:title>
</mods:titleInfo>
<expression>
<mods:typeOfResource>text</mods:typeOfResource>
<mods:language authority="iso639-2b">ger</mods:language>
<manifestation>
<imprint>
<mods:titleInfo>
<mods:title>Sehr Langsam, misterioso</mods:title>
</mods:titleInfo>
<mods:note type="statement of responsiblity">Gustav Mahler.</mods:note>
<mods:originInfo>
<mods:dateIssued>1896</mods:dateIssued>
</mods:originInfo>
<mods:physicalDescription>
<mods:extent>1 ms. vocal score ([4] p.) ; 35 cm.</mods:extent>
</mods:physicalDescription>
<mods:identifier type="lccn">82770782</mods:identifier>
</imprint>
</manifestation>
</expression>
</work>
(mods:something means that the something element comes from MODS and is being kept in the mods namespace. This is useful when mixing metadata elements from two different schemas.)
Even if you’re new to metadata in XML you can probably get the gist of what’s going on up there. There’s a work, with a creator and a title, and it has an expression and a manifestation. The MODS elements define attributes of the FRBR entities. All of this is transformed into HTML, as linked above.
That’s enough of LC’s example. Now we’re sure everything works with the test data. How well it work with the MARC records I downloaded? Not very well, but we’ll deal with that.
If you have any questions about any step of this worked example, or if you’re doing it at home and run into some trouble, feel free to leave a comment. Comments are always welcome!