Saturday, July 9, 2011

Have SWORD will travel (Sprinting at the Open Innovation Studio in Cape Town)

Wednesday before last, June 29th, the Cape Town Plone users' group and several other developers met at the Open Innovation Studios to sprint on creating a SWORD service for Plone and a couple of SWORD clients to talk to the SWORD service. Siyavula co-hosted the event with me, Roché Compaan of Upfront Systems led the technical Plone development, and all the results are hosted on github and documented on the project wiki here and here.

The goal of the sprint was to learn about SWORD, start a generic implementation of a SWORD service for Plone, and get a couple of clients off the ground.  

We started with this list of tasks and we made progress on 4 of the 5 tasks. Not bad for a one day sprint. A lovely catered lunch, pizza dinner, beer, and red wine (sorry no pictures) were the rewards, in addition to good company and knowledge transfer.

One team began creating an AtomPub service with a SWORD profile for Plone.  Publishing modules and collections to Connexions, which is built on Plone, makes a lot of sense with SWORD. And building SWORD into Plone, rather than at the Connexions layer, gives the potential for using this code in other projects. Because SWORD is really all about depositing packages of content, however, we wrestled a bit with the exact use cases that would make sense for generic Plone. We settled on developing a service to deposit a folder of content into a Plone site. Perhaps that folder represents a single web page and all its associated resources. Or perhaps it represents some other composite type. Time will tell if others reuse the service in novel ways that we didn't anticipate. You can read more about the results and code locations here.

The other tasks involved building clients. One was a simple command line client written in python to test the service. The client was based on the python client that the SWORD community produced for V2.  The second client was based on a more interesting idea. One of the easier ways to publish online lessons enriched with interactive media is through a personal blog. But reusing material from someone's personal blog isn't easy, especially if you want to adapt it in in some way: include it with another set of lessons, package it up for using offline or mobile, translating it, adapting the reading level, etc. So the second client is a webservice for packaging and republishing (or copublishing) your blog entries in a repository like Connexions. The sprint team started with the Pyramid Web Dev Framework and seemed quite pleased with how easy it was to get started. Find out more about both clients here.