Reading List Web Services

MMU’s learning technologies review (2010) selected the Talis Aspire hosted reading list system to play a key role in delivering its vision of an integrated and extensible VLE.

Following the review, policy statements were drafted and approved that set out threshold standards for VLE content at Unit (Module) and Programme level. A policy was also developed to govern the structure and normal length of reading lists. Together these policies set out a requirement that each instance of a Unit of study should provide links to reading materials organised in terms of three categories: recommendations for purchase; essential reading available through the library; and further reading.

Colleagues at Talis have already described some integration scenarios between VLEs and Aspire (using JSON and RDF APIs), and have developed some sample code for Moodle that demonstrates the potential of Aspire APIs for blurring the boundaries between systems to create a more seamless user experience.

In order to meet our policy requirements we realised that we would need something more than the functionality provided by the sample code. Our requirement is to present all the Aspire reading list items within Moodle as clickable links organised in terms of the three categories from our reading list policy. It might not be a scenario that Talis originally anticipated, but our consistent tagging policy based on curriculum codes and their commitment to semantic web principles and open architectures offered a way to achieve this.

Each area created in Moodle to support an offering of a particular Unit of study is created with a course id formed from concatenating the Unit Code, with an underscore, the academic year of delivery, a second underscore, and the occurrence code within the year. For instance 2CP3D011_1011_3 refers to the March-starting instance of the Unit 2CP3D011 within the 2010/11 academic year.

In Aspire we have chosen to create Reading Lists for Units per academic year (rather than Unit instances per academic year), as reading list items are consistent for all offerings of a Unit within a given academic year. The Aspire Reading List for the Unit mentioned is thus created with the tag 2CP3D011_1011, which can be derived easily from the Moodle course id. The consistency of our coding convention gives us the basis for a standard block within Moodle for bringing in content from Aspire.

Aspire supports URLs that reference its tag hierarchy. For instance, http://lists.lib.mmu.ac.uk/units/2cp3d011_1011.html displays lists attached to the (lower case) 2CP3D011_1011 unit tag. The XHTML returned could be scraped to get the URL for the list, however it is easier to use the RDF version:
http://lists.lib.mmu.ac.uk/units/2cp3d011_1011.rdf

The RDF representation provides a detailed data set including a reference to the list being described:
<rdf:Description rdf:about=”http://lists.lib.mmu.ac.uk/lists/4CC5DCEC-B912-F9F9-163F-ED69F4F2B70A”>

The contents of the HTML representation of this list provide all the items to display in Moodle (including any category information indicating whether it is an item recommended for purchase etc):
http://lists.lib.mmu.ac.uk/lists/4CC5DCEC-B912-F9F9-163F-ED69F4F2B70A.html

To meet our policy requirements we prototyped a .NET web-service that used the RDF to identify the XHTML representation of a list for a given Unit tag and transformed the response to produce a RSS feed that can be called for a given Unit:
http://testapis.ad.mmu.ac.uk/collections/Service1.svc/lists/2CP3D011_1011
We are developing a Moodle block that picks up the course id and appends the appropriate parts to create the URL to feed a modified RSS reader that distinguishes our 3 categories of list item.

We are interested to know whether this light-weight RSS integration approach would be of interest to others as a VLE-Reading List integration scenario?