CREW, Caboto and RDF-Based Annotations
I’ve been busy for the last few weeks preparing the CREW web application for the project’s support of 3rd ESRC Research Methods Festival in Oxford. A version of the CREW application is available to view that includes some data for the Oxford event.
A lot of the work involved preparing the 0.1 release of the annotations engine, Caboto. Why call it Caboto? In the Web Futures office at ILRT we can see Cabot’s Tower which is situated at the top of Brandon Hill, Bristol. John Cabot’s Italian name is Giovanni Caboto. Simple, eh?
Caboto is basically an RDF-based web annotations system designed to meet the uses cases of a number of project that members of the Web Futures team are working on. It will allow users of systems to annotate things such as events, papers, photos, people etc. The annotations might be comments and criticisms about a presentation, linking to a relevant paper or resource such as a photo or ranking an event out of 10 (or some other arbitrary number). The 0.1 release just supports simple comments but this will be extended in the next release.
Caboto has the concept of public and private annotations - a public annotation is available for all to see while private annotations are restricted to the author. The 0.1 release only supports public annotations. The annotations themselves are stored as RDF in a relational database.
Caboto uses a number of technologies:-
- The Jena Semantic Web Framework is used to handle the RDF querying and storage.
- Jersey, the JSR 311 reference implementation, is used to provide a RESTful interface for the annotations so they can be added, retrieved and deleted with POST, GET and DELETE HTTP methods.
- The Spring Application Framework is used to glue things together.
By using Jersey it is easy to make the URI of an annotaion a URL to access the RDF. For example, we could access the same data as RDF/XML, RDF/N3 or JSON:
curl -i -X GET -H accept:application/rdf+xml http://localhost:9090/caboto-web/person/user1/public/bcd6dbe7-fbd4-44a9-816e-57697720f2b9
curl -i -X GET -H accept:text/rdf+n3 http://localhost:9090/caboto-web/person/user1/public/bcd6dbe7-fbd4-44a9-816e-57697720f2b9
curl -i -X GET -H accept:application/json http://localhost:9090/caboto-web/person/user1/public/bcd6dbe7-fbd4-44a9-816e-57697720f2b9
The Caboto site has instructions on downloading and running a sample version of Caboto, with examples on adding, querying and deleting annotations via the REST interface. Its still in the early stages so is a bit limited and subject to change in further releases.
Within CREW we have used it to allow people to make simple comments about the event.

The functionality in CREW will expand with developments in Caboto. ![]()