Islandora Sync Bringing Drupal and Fedora closer

2014 - Islandora Camp : Berkeley, California

Kristian Allen Programmer - UCLA Digital Library Discussion Outline

● UCLA Digital Library transition to Islandora Overview of shift to Islandora within UCLA DL

● Digital Library community development options

● Islandora Sync details Why the need? What does it do? Live Demo : Create slideshow with stock Drupal modules

● Questions Follow along at home

● Instructions to enable on your Camp VirtualBox

Terminal commands to install: https://gist.github.com/kjallen/8451109

● After executing above, NEW content added to Basic Image Collection will be syncable UCLA Digital Library Snapshot

● 250 Digital Collections

● 1.8MM+ Digital Asset Files

● 20MM+ Metadata database records

● 35TB+ Disk storage Growing Pains

● Current system Locally Developed: Java EE / Struts 1.02 Oracle Database, Search and Persistence frameworks JBoss on Windows

● Challenges Domain specific knowledge needed for development Proprietary software limits ability to leverage the community Bolting on partial solutions can become problematic The Community to the Rescue

● Blacklight / Hydra Ruby / Rails

● Islandora PHP / Drupal

● Common Platforms Apache Solr for search and discovery Fedora Commons for repository and storage The Appeal of Drupal and Islandora

● Instant access to “lego block” code Thousands of modules help reduce development time Lower barrier to entry to encourage participation

● UCLA Library move to Drupal CMS shift to Drupal within UCLA Library increases local expertise

● Trend towards Drupal on campus Shift from Plone to Drupal in other departments Islandora Development

● The Islandora Way != The Drupal Way Assets and metadata stored only in Fedora repository Limits which Drupal modules can be used out of the box

● Leveraging the Drupal community Harnessing the collective power of Drupal ecosystem is limited

● Option: Make Islandora more Drupal-ish? Yep, we sure can! Islandora Sync

● Joint project with Discovery Garden Mitch Mackenzie lead DGI developer

● Goal to mask Fedora data as Drupal data

● Available for community use on GitHub Core Features

● Ability to map Drupal Content Types to Fedora Content Models

● Map Drupal Fields to Fedora Datastreams or metadata elements

● Replicate Fedora RELS-EXT references with Drupal Relation entities Islandora Sync Workflow Islandora Modules

Basic Image Islandora Data Large Image Entry Forms Book 1) User updates an PDF Islandora object, saves Audio data to Fedora Video

2) With Islandora Sync enabled, hooks are Fedora Repo Drupal fired to populate native Modules Drupal entities with Fedora data Views Services Native Drupal Gallery Entities Gmap First iteration, be aware...

● Works for UCLA DL workflow The UCLA Digital Library is the gatekeeper for our Fedora instance Changes via processes outside of Islandora might not be sync’d

● One way sync Initial use cases placed most weight on Fedora to Drupal direction Hooks in place for Drupal push to Fedora

● Scalability Still need to tweak Drupal for performance for large imports Islandora Data Access Options

● Access via Solr index Example: http://cla.library.ucla.edu

● Access via Fedora REST API Example: http://digital.library.ucla.edu/aqueduct (and now Islandora REST API too! Thanks Nigel)

● Access via Islandora Sync

Yep, we sure can! Demo - Slideshow

● Walk through sync setup and basics

● Demonstrate syncing process

● Using Views slideshow and bxslider module Where we hope to go

● Foster increased community development By lowering barrier, we hope to encourage increased development

● Continued improvement of core code Goal to contribute regular development to support roll into Islandora core

● Increased Drupal Features packages MODS image mapping example is available now

Yep, we sure can! References

UCLA Digital Library Islandora http://digital2.library.ucla.edu http://www.islandora.ca

UCLA Library GitHub Islandora VM (7x.1-2 Ubuntu 32 bit) https://github.com/UCLALibrary http://islandora.ca/downloads

Islandora Sync GitHub repo Discovery Garden https://github.com/UCLALibrary/islandora_sync http://www.discoverygarden.ca

Kristian Allen Gist install document: [email protected] https://gist.github.com/kjallen/8451109