Thursday, May 26, 2011

Sprinting with Connexions

First progress implementing a bit of a publishing API for OER, based on SWORD and AtomPub.
 
Last week at the Plone East Symposium in State College PA, plone developers across the US gathered together to learn and share about using Plone in educational settings. At the end of the week, Friday and Saturday, about half the attendees stayed to “sprint” (original plan, full report).  At sprints, people develop working code together on various projects in order to share expertise, learn from each other, and expand networks of technical mentors. Knowing that Connexions already had a partial implementation of SWORD for creating modules from Word documents, and that SWORD is likely to be the backbone for the OER Publishing API (your comments, approval, concerns welcome), I brought a sprint topic to the symposium -- “OER Publishing API: Extend Connexions SWORD implementation”. Connexions provided an expert, Phil Schatz, to lead the sprint and we created a milestone to track the work. Carl Scheffler joined Phil and me working on SWORD and we got advice and help from Michael Mulich (Penn State), Ross Reedstrom and Ed Woodward at Connexions.

What the Connexions/Rhaptos SWORD service does now:

The current Connexions SWORD service is tailored to a very specific client, the Open Journal System (OJS). It takes a zip of a Word file and a METS file with some metadata and a bibliographic entry that is used to insert a reference to the the original publication of the article in a journal. The service then creates a new, unpublished module with the content of the Word file, and puts it in a work area chosen by the client.

What we got done at the sprint:
  1. Reorganized the existing SWORD code to make the coding cleaner.
  2. Extended the service so that it would take a Word file, or the Connexions native format.
  3. Changed the service to get the title and abstract from standard locations.
  4. Got the SWORD client toolkit, EasyDeposit, to work with the new code (and partially work with the existing code.)