April 05, 2007

Openlearn XML Processor

Okay folks, I'm gonna have to trust you to be nice with this one, because every time you play with, it hits someone else's server...

What is it? My first attempt at an OpenLearn XML Processor "solution", that's what...

Now before Stephen Downes hollers about the server hits (;-) this is a proof of concept thing, okay? A demo. To act as something I can pick apart in front of people to try and show them how it's put together...

So what's it do?

Well - put in the URL to an OpenLearn XML file (you can host them on your own server after downloading them from LabSpace, which requires you to register for the course and blah de blah de blah...) - or just stick in the unit code to one of the files I've alredy liberated - and the processor will (if it's working ;-):

  • generate a link to a URL that uses a script to generate an OPML file that lists the media assets contained in the unit (L120_1 is a good demo of this (as reported previously in this post on OpenLearn Asset Stripping); a link to a Grazr view of the file is also generated;

  • generate a link to an RSS version of the course unit (as well as a link to a Grazr previewer); the stylesheet is still a bit ropey, but it's good enough for (some) demos; I'm having all sorts of problems with the character set, so if someone can tell me what I'm doing wrong, that'd be much appreciated (it's something I've never really looked at). The translation works by passing the XML file URL to a Yahoo pipe that runs the XML through the W3C XML processor using the previously mentioned style sheet to generate the RSS output;

  • generate a link to a PDF version of the unit. This is achieved by plugging the URL for the OUXML2RSS Yahoo pipe (which has the course XML URL as an argument, of course) into the RSS2PDF.org web service. The steps to generate the PDF, then, are: provide the URL of the XML, use a Yahoo pipe to send this to the W3C XSL processor with an appropriate style file, take the resulting RSS output from the Yahoo pipe and shove it into rss2pdf; (it should then be possible to pass this to a pdf2audio service, etc;-);

  • wire the live created RSS file into my serialised feeds service. This service takes the serialised feed delivery configuration information provided via a web form, and uses that information - along with the current time stamp - to work out how many items to deliver to the user. The service passes this required item count, along with a URL to the unit XML file to the Yahoo OUXML2RSS pipe that runs the XML through the W3C XSL processor along with a supplied XSL file), and then passes this generated feed to a feed serialiser pipe (which is nothing of the sort really - all it does it count out a required nubner of feed items). Simple. :-) and stupid - because the W3C processor has to run every time the feed is polled.

Okay - so maybe I need to work on the delivery of that explanation a little... and draw some pictures;-)

Or maybe write it up using the new draft proposal for XProc: An XML Pipeline Language. Because as I'm sure you all know, "[a]n XML Pipeline specifies a sequence of operations to be performed on one or more XML documents, producing one or more XML documents as output."

Also when I get a chance, I'll write an OpenLearn RSS Exploiter that uses a pre-generated/saved version of the RSS files to play around with the RSS (converting it to PDFs, audio, etc., as well as providing badges to one-click it into Netvibes, Google Personal, etc.).

But not today - I need to pack - going away for a week (so there'll be no posts for a bit...)...

Posted by ajh59 at April 5, 2007 10:26 PM
Comments

> Now before Stephen Downes hollers about the server hits...

LOL

Tested with A103 and got errors in both the OPML links.

Other people would be critical - but I spent all day fighting with Google's dysfunctional API. I am more than sympathetic.

Neat idea - I wish you coded in perl so we could share.


Posted by: Stephen Downes at April 6, 2007 09:21 PM

OK, a few pieces of feedback from the OpenLearn technical team...

Our export in Moodle format is the complete course, but when you import into your own Moodle install you can pick and choose which bits you want to take.

There is great concern in the openlearn programme team about how to encourage remixing. Usecases and examples are one way forward that is being actively considered. Unfortunately its not in my remit to write them, so we'll wait and see.

We’re also working to offer RSS feeds in various shapes and sizes.

With the funding application for year 2 there is a little less emphasis on target hours, although targets still exist. There are wider ranging debates about the future of the labspace – should it be a wiki, or just a file sharing system, or something else entirely? God only knows where all that will end up! Stephen Bradley is organising a workshop to kickstart things.

Also, BTW Labspace tools such as compendium, MSG and Flashmeeting will be introduced to learningspace over the summer.

Posted by: Jenny Gray at April 16, 2007 12:15 PM

"Tested with A103 and got errors in both the OPML links."

That's because the code is A103_1, maybe?

Or because there are vey few media assets in that unit, and I don't yet trap out for no assets in a particular media type, lack of caption info etc.

*If* the units were correctly marked up, and *if* there were assets of each media type in the unit, it'd be ok... I think ;-)

L120_1 is a better one to try out.

"I wish you coded in perl so we could share."

I barely code at all, hence PHP and javascript ;-)

Posted by: Tony at April 19, 2007 10:05 AM