acts_as_fedora – A Rails plugin for the Fedora content repository

Plugins, Ruby on Rails Add comments

The Background

At work I’ve been diving into the Fedora content repository system. Totally unrelated to the Linux distro of the same name, the Fedora repository is a really cool database on steroids for all sorts of heterogeneous content. Text, media, files, and metadata can all be easily associated with one another in a single package.

Unfortunately, getting the data in and out of a Fedora instance can be tricky. The interface is via SOAP calls, which while not incredibly hard, are not all that easy either. Further, the Fedora development team has a propensity for changing interfaces at an alarming rate. Being a sort of fast-and-loose developer myself, I can understand this, but it’s still a little frustrating.

When I first started playing around with Fedora, it took me about two days to finally get my Rails app to a point where I could ingest (add) and disseminate (retrieve) records from Fedora. Obviously, two days to get up and running is not something to be proud of in the Rails community. However, during the exercise, I started to get a feel for how the system worked, and the seed of a Rails plugin was planted.

Fast forward about a month, and things are looking a lot better. I have a good deal more experience as a plugin user, plus I understand the Fedora interfaces and have successfully used them quite a bit. In the spirit of giving back to all the plugin authors that have helped me immensely, I am announcing my intent to create a plugin for Fedora.

Goals

The goals for acts_as_fedora are fairly modest, at least at this stage. It might get more features in the future, but for now I’m following the KISS principle.

  1. Easy to define a Fedora digital object (ie. datastreams) in a model object.
  2. Create a new digital object by instantiating a model, filling in data values, and calling save.
  3. Retrieve a digital object from the repository by its PID.
  4. Read a datastream as an accessor on the model object (like foo.DC for dublin core).
  5. XML datastreams are preloaded into REXML::Document objects for easy processing.
  6. Update a datastream by changing its value (via an accessor) and calling save.
  7. Purge an object.

Astute observers can probably see that I’m trying to get basic CRUD functionality with respect to datastreams. We can deal with disseminators later ;)

Schedule

I have already started coding and testing for acts_as_fedora, and I hope to have a working alpha version that satisfies the stated goals by the end of June. This post is just a kick in the pants to myself in order to get moving. If you’re reading this after June 2007 and there is still nothing for acts_as_fedora, please send me a work email at mwedeme @at@ emory edu and tell me to get moving!

One Response to “acts_as_fedora – A Rails plugin for the Fedora content repository”

  1. Inroads to Application Development for Fedora Says:

    [...] acts_as_fedora is a Rails plugin that ties Fedora into an existing Rails application.  Rather than replacing the database connection completely, it adds hooks into Fedora within your database objects’ lifecycle.  I’m not sure of the status of this gem.  It may not be open source, and may not be actively supported.  If anyone has more information, let me know. [...]

Leave a Reply

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Log in