Islandora Camp CA, 2014-01-16 Mark Jordan BagIt - iCampCA.pdf · Payload-Oxum: 645390.6. Use cases...
Transcript of Islandora Camp CA, 2014-01-16 Mark Jordan BagIt - iCampCA.pdf · Payload-Oxum: 645390.6. Use cases...
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
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
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