Giter VIP home page Giter VIP logo

hslc-islandora-metadata's Introduction

HSLC ContentDM-to-MODS Mappings and Intermediate Processes

This repository contains:

  • /mods-mappings: MODS maps used to process ContentDM XML exports using the Islandora XML Based ContentDM Migration modules
  • /mods-processes: XSL transformations used to perform intermediate processes to affect interventions on the MODS XML produced by the module, prior to batch ingest.
  • crosswalks: XSL transformations providing crosswalks from MODS to other target formats such as Qualified Dublin Core

MODS Processes

xsl / perl Functions
cdm-mods-final-level-to-compounds.xsl Alters standard crosswalk handling of hierarchical compounds (into a hierarchy of collections and children) by changing any (sub)collection containing only image objects (no subcollections) into a compound object. This can be modified to be less selective, i.e. create compounds with arbitrary non-collection cModel types. This should usually be use with cdm-mods-updates-single-children.xsl following. Requires passing in $islandora-namespace parameter.
cdm-mods-updates-single-children.xsl When a compound object has only one child, this removes the parent object, moves the parent metadata to the child, and assigns the child to the collection the parent was a member of.
cdm-mods-final-level-to-books.xsl Alters standard crosswalk handling of hierarchical compounds by changing any (sub)collection containing only large image objects (no subcollections) into a book, and its children into pages. Requires passing in $islandora-namespace parameter.
cdm-mods-final-level-to-newspapers.xsl Alters standard crosswalk handling of hierarchical compounds by changing any (sub)collection containing only large image objects (no subcollections) into a newspaper issue, and its children into newspaper pages. Requires passing in $islandora-namespace parameter.
split-mods-files.xsl For handling very large files it is sometimes required to split output files into smaller batches. Set the $object-per-file param to the number of objects per file. Note this stylesheet does use a saxon extension functions, and therefore has a dependency on it.

Sequencing of Processes

Transformations that don't alter content model choice can generally be run at any point in a processing chain unless the content model is being used as a condition. Transformations that do alter content model must be run in a specific sequence or results will not be as desired. Guidance on the order of these transforms is as follows:

  • cdm-mods-final-level-to-books.xsl, or any transformation changing the content model of the final level in a hierarchical structure into books - as might be done selectively - should always be run first.
  • If books are being created selectively, and all other final levels of the collections/object hierarchy into compounds using cdm-mods-final-level-to-compounds.xsl, that is run following the transform to create books.
  • The update to remove parent objects from single children compounds, cdm-mods-updates-single-children.xsl is run last.

Various sample Perl scripts may also be present showing the chaining of transformations to produce desired results. These are set up to use Saxonica. You may sub in an alternative xsl processor, or create scripts in the language of your choice. These can be employed as is, adapted, or referenced to author your own.

No warranty is implied. Users are solely responsible for testing and verify all results.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.