Islandora Camp CA, 2014-01-16 Mark Jordan BagIt - iCampCA.pdf · Payload-Oxum: 645390.6. Use cases...

21
Islandora BagIt Mark Jordan Islandora Camp CA, 2014-01-16

Transcript of Islandora Camp CA, 2014-01-16 Mark Jordan BagIt - iCampCA.pdf · Payload-Oxum: 645390.6. Use cases...

Islandora BagItMark Jordan

Islandora Camp CA, 2014-01-16

Outline

● Background on BagIt● Use cases for Islandora BagIt● Overview / demo● Roadmap

BagIt

● A “hierarchical file packaging format for storage and transfer of arbitrary digital content.”

● Provides basic metadata about content○ checksums○ key-value pairs

● Internet Draft at http://tools.ietf.org/html/draft-kunze-bagit-09

Inside a Bag

Inside the ‘data’ directory

manifest-sha1.txt497b0bb8348d832e410a8856b1ee88de6e2b250f data/DC.xmlb4ea8dd5158a007bf24aedccb0a7cdf101ffb379 data/MEDIUM_SIZE.jpg28fe35e1ff37c01bea8b1052ca147457e79203ab data/MODS.xml2384d444ba9dcb5ce4d6cd30154728d6c34ff5bc data/OBJ.jpgb97d15f250f819eb99ec95fb3921ce6db3233a8a data/RELS-EXT.rdf7e24035aa3ca2dca22faed9061e5b56c76140321 data/TN.jpg3967d5f23f06537031a56f6563bd7c4c1413368e data/foxml.xml

bag-info.txt

Source-Organization: Simon Fraser University LibraryOrganization-Address: 8888 University Drive, Burnaby, BC, V5A 1S6, CanadaContact-Name: Mark JordanContact-Phone: 1-778-782-5753Contact-Email: [email protected]: http://edocs.lib.sfu.ca/bagitprofiles/general.jsonBagging-Date: 2013-12-27Payload-Oxum: 645390.6

Use cases - general

● Bags are simple packages that include minimal metadata

● Agnostic to structure of content in the Bag’s /data directory

● Serialized (zipped) Bags are convenient● Libraries for scripting languages can be used

to validate the Bags on consumption● Combined with profiles, Bags offer

interoperability with external applications

Use case 1:Export objects for storage

Local / cloud

storage

Cron job to get new / updated objects since last run, and create a Bag for each

scp, rsync, API, “FreezeIt”, etc

Use case 2: Export objects in preservation workflow

On object creation, create an Archivematica transfer Bag

Archivematica SWORD or approval API

Use case 3:Export collection for migration

Export entire collection as Bags

Create import packages for target system and import

Create import packages for target system

Islandora BagIt overview

● Uses the Scholars Lab BagItPHP library● “Create Bag(s)” tab for objects and

collections● Lots of options via admin settings form● Drush integration● Highly extensible and customizable● https://github.com/mjordan/islandora_bagit

Islandora BagIt plugins

● Object plugins handle datastreams and other files○ Copy all datastreams○ Create additional file (foo.xml)○ Create Archivematica transfer Bag○ Export FOXML

● Collection plugins arrange multiple objects in one Bag○ Create subdirectory of ‘/data’ for each object○ Create ‘odd’ and ‘even’ subdirectories in ‘/data’

Plugin details

● Must be named plugins/plugin_object_XXX.inc or plugins/plugin_collection_XXX.inc

● One required function: islandora_bagit_XXX_init()

● Must complete all file and directory naming and creation functions

● Must return an array containing ‘source’ and ‘dest’ paths for each file, or FALSE

Islandora BagIt hooks

● hook_drupal_alter○ Alter the Bag by adding custom bag-info.txt

metadata, adding additional files, etc.

● hook_islandora_bagit_filter_batch○ Control which objects are included in batch Bag

creation

● hook_islandora_bagit_post_create○ Notify other modules that a bag has been created

Demo: Single object Bag

Demo: One Bag for entire collection

Roadmap

● Import Bags○ As a submodule of Islandora Importer

● Select specific objects to export○ Probably either under a collection’s ‘Manage >

Collection’ tabs or via the Bookmark module

Questions?