Crosswalking MODS to DC

Showing 1-9 of 9 messages
Crosswalking MODS to DC Peter MacDonald 5/5/12 5:41 AM
Each of our Fedora records were ingested by a python script and have a MODS datastream, but on ingest the MODS field values did not get copied over into the DC datastream. The DC just has dc:title and dc:identifier.

Is there a way (command-line perhaps) to force populating the DC from the MODS datastream after the records have already been ingested?

Hamilton College Library
Re: Crosswalking MODS to DC Don 5/5/12 4:08 PM
Peter do you have a MODS to DC xslt that works for you? Something you've tested in Oxygen or something else?

Sounds like you might be missing a xsl processor on your box? Or there might be something misconfigured?

You could curl that MODS records out of your the objects in your Fedora and do something like this to convert them to DC using your transform ... then you could curl them back in. To use the script below you would need to have xalan or some other xslt processor installed on your machine.

### script to get transform MODS to DC
###  Transforming TEI to Plaintext  ###############
# pids.txt is a list of your PIDS less the namespace
for PID in `cat pids.txt`
###  tranform MODS to DC ###############
      echo $PID
      java org
.apache.xalan.xslt.Process -IN $PID.xml -XSL mods2dc.xsl -OUT $PID-dc.xml


Give that a try. 
Re: Crosswalking MODS to DC Don 5/5/12 4:14 PM
Just reviewing my response ... boy ... a bit of a mess. This part "You could curl that MODS records out of your the objects in your Fedora" should read
"You could curl the MODS datastreams out of the objects in your Fedora Repository" ...
Re: Crosswalking MODS to DC Peter MacDonald 5/5/12 8:01 PM
Thanks, Don.

I will try to figure out how to do all that. It sounds like a useful thing to know how to do.

Re: [islandora] Re: Crosswalking MODS to DC Peter MacDonald 5/5/12 8:10 PM

I only have a working DC 2 MODS xslt that I wrote that works for us, I do NOT have one that goes from MODS to DC. If you know where I can get one, I'll be happy to get it and to customize it to meet our local needs. Then I'll try the curl thing.


You received this message because you are subscribed to the Google Groups "islandora" group.
To view this discussion on the web visit
To post to this group, send email to
To unsubscribe from this group, send email to
For more options, visit this group at

Re: [islandora] Re: Crosswalking MODS to DC Richard Wincewicz 5/6/12 4:32 AM
Hi Peter

There's a MODS to DC XSLT that comes with the islandora module and can be found in the xsl directory. That should be a good start for what you need.

Re: [islandora] Re: Crosswalking MODS to DC Peter MacDonald 5/6/12 8:36 AM
Thanks, Richard. I'll start with the transform supplied with Islandora.

Re: [islandora] Re: Crosswalking MODS to DC Kirsta Stapelfeldt 9/11/12 10:17 AM
We have a repository too at - would be great to start getting community contributions!

On Tue, Sep 11, 2012 at 12:38 AM, Liang <> wrote:
Hi Peter,

We do need to transform DC 2 MODS and I wonder if you can share your working DC2MODS xslt?

Thank you,



Kirsta Stapelfeldt, MA, MLIS
Islandora Project/Repository Manager
Robertson Library
University of Prince Edward Island

Subject Matter Expert
Discovery Garden Inc.
Skype Name: Kirsta.Stapelfeldt
Re: [islandora] Re: Crosswalking MODS to DC Peter MacDonald 9/11/12 10:42 AM

The Library of Congress offers a simple DC to MODS XSLT at
This LC code might be all you need. That is, you might find customizing that code easier than customizing ours, because ours is so highly customized to meet our local needs. However, you are welcome to look at our version on our git repo.

We customized the LC version mentioned above so it could detect a wide variety of conditions it might encounter in the DC files as generated by our internal metadata workflow process, which has to accommodate DC files generated by a variety of collections across our campus, but even our XSLT should work fairly well on just plain DC files so long as you understand the following points...

Our transform needed to handle the OAI-DC records that CONTENTdm can generate, so our XSLT requires that the DC to be wrapped in an OAI-PMH wrapper. See the example file: oai-dc-sample.xml in our GIT repo.

There are some instructions at the beginning of our XSLT file itself that may or may not help you. They were written mostly for local purposes or were included in the original LC code, but never deleted.

The code also requires some external XML files that contain some controlled vocabularies, and you will receive parsing errors when you execute the XSLT when it looks for variables that set in those files.

Please note that some MODS elements are hardcoded into the XSLT, such as our rights statement, so you will want to change them manually for your own institution.

You will find the sample OAI_DC source file (oai-dc-sample.xml) and the actual XSLT (oai-dc2mods.xsl) in our git repo. Our controlled vocabulary files are also there.

Feel free to use, modify, or share as you see fit. There are no guarantees that it will work for you, but I'll try to answer any easy questions you may have about it.

The code can be downloaded in either of these ways: