annoChump Overview

Overview

Annotea is a Semantic Web project focusing on enhancing the W3C collaboration environment with shared annotations. Annotea is cool; if you're not using Annotea, you should be. Don't be shy, feel free to run your own annotation server or try out W3C's test server. Use Annotea, you'll be glad you did :)

Chump is an IRC bot which allows you to create a collaborative weblog from IRC chat. Take a look at the Semantic Web/RDF Interest Group's collaborative weblog. This pages changes every day as people working on the Semantic Web IRC channel collectively "chump" (describe) resources that relate to Semantic Web technologies. "Chump" is also collaborative annotation tool; it too is very cool :)

annoChump is a simple script that takes the result of a Chump weblog and stores it in an Annotea annotation server. It's coolness lies not in the fact that it offers any new extra functionality to either of these collaborative tools, but rather as a simple demonstration of the effectiveness of sharing and reusing data across code bases that are built on top of open, generic metadata standards (specifically XML and RDF).

Here's how it's done

annoChump is a simple perl script that takes a "Chumped" weblog entry and converts this to a annotation that Annotea understands.

Here is an excerpt of a sample Semantic Web IRC log of a "Chumping" of a resource

16:10:24 <em_nice> http://www.cetis.ac.uk/content/20010927172953/viewArticle
16:10:25 <dc_rdfig> A: http://www.cetis.ac.uk/content/20010927172953/viewArticle from em_nice
16:10:53 <em_nice> A:|to The semantic web: How RDF will change
learning technology standards
16:10:53 <dc_rdfig> titled item A
16:11:09 <em_nice> A:This is a very, very good article This
article places RDF, RDF schema and the new Web Ontology work in a very
clear context and provides a clear explanation of how RDF provides the
basis for the Semantic Web.
16:11:09 <dc_rdfig> commented item A
16:11:47 <em_nice> A:Kudos to the author - Mikael Nilsson
16:11:47 <dc_rdfig> commented item A
16:12:47 <em_nice> A: And an interested bit on lessons learned
using RDF in the IMS specifications
16:12:48 <dc_rdfig> commented item A

The specific commands of Chump bot are availiable in the manual and out of scope of this overview. The point of interest for annoChump is the XML file that is generated by the Chump Bot for the resource being annotated. Here is the above example extracted from the coresponding XML file produced by Chump:

<link>
  <time value="1005063024.911654">2001-11-06 16:10</time> 
  <url>http://www.cetis.ac.uk/content/20010927172953/viewArticle</url> 
  <nick>em_nice</nick> 
  <title>to The semantic web: How RDF will change learning
  technology standards</title>
  <comment nick="em_nice">This is a very, very good article This
  article places RDF, RDF schema and the new Web Ontology work in a
  very clear context and provides a clear explanation of how RDF
  provides the basis for the Semantic Web.</comment>
  <comment nick="em_nice">Kudos to the author - Mikael
  Nilsson</comment>
  <comment nick="em_nice">And an interested bit on lessons
  learned using RDF in the IMS specifications</comment>
</link>

The corresponding RDF Interest Group weblog is built from the XML file and above example looks like this:

to The semantic web: How RDF will change learning technology standards

em_nice: This is a very, very good article This article places RDF, RDF schema and the new Web Ontology work in a very clear context and provides a clear explanation of how RDF provides the basis for the Semantic Web.
em_nice: Kudos to the author - Mikael Nilsson
em_nice: And an interested bit on lessons learned using RDF in the IMS specifications

The XML produced by the Chump bot is what is being translated into annotations that Annotea understands. Annotea uses an RDF based annotation schema for describing annotations as metadata and XPointer for locating the annotations in the annotated document. Here is the example translated to an annotation Annotea understands:

<an:Annotation>
  <an:annotates rdf:resource="http://www.cetis.ac.uk/content/20010927172953/viewArticle" /> 
  <an:context>http://www.cetis.ac.uk/content/20010927172953/viewArticle#xpointer(/html[1])</an:context> 
  <rdf:type rdf:resource="http://www.w3.org/2000/10/annotationType#Comment" /> 
  <dc:creator>Semantic Web / RDF Interest Group</dc:creator> 
  <dc:title>to The semantic web: How RDF will change learning technology standards</dc:title> 
  <dc:date>2001-11-06 16:10</dc:date> 
  <an:body>
    <rdf:Description>
      <h:ContentType>text/html</h:ContentType> 
      <h:ContentLength>793</h:ContentLength> 
      <h:Body rdf:parseType="Literal">
        <html xmlns="http://www.w3.org/1999/xhtml">
         <head>
           <title>to The semantic web: How RDF will change learning
           technology standards</title>
         </head>
         <body>
           <p>
             <b>em_nice:</b> 
             <comment nick="em_nice">This is a very, very good article
             This article places RDF, RDF schema and the new Web
             Ontology work in a very clear context and provides a
             clear explanation of how RDF provides the basis for the
             Semantic Web.</comment> <br />
             <b>em_nice:</b> 
             <comment nick="em_nice">Kudos to the author - Mikael
             Nilsson</comment> <br />
             <b>em_nice:</b> 
             <comment nick="em_nice">And an interested bit on lessons
             learned using RDF in the IMS specifications</comment> <br /> 
           </p>
         </body>
        </html>
      </h:Body>
    </rdf:Description>
 </an:body>
</an:Annotation>

Subscribing any one of several Annotea clients to W3C's test server http://annotest.w3.org/annotations and viewing the page being described in the above example, you will see what the Semantic Web/RDF Interest Group has said about this resource.

annoChump uses various perl libraries (LWP::UserAgent, XML::DOM and XML::XSLT) to periodically download "Chumped" annotations, manage the XML and translate this into XML/RDF. The supporting code and XSLT translations are provided to manage this work. It's really that simple. Feedback, optimization (and corrections! :) are welcome.

For managing the configuration of the script a Makefile is used to define the appropriate variables (username, password, annotation server, etc.) necessary for storing annotations.

USER=foo
PASSWD=bar
SERVER=http://annotest.w3.org/annotations
CHUMPFILE=http://rdfig.xmlhack.com/index.xml
XMLFILE=,chump.xml
XSLFILE=chump2annotea.xsl
WGET=wget
PERL=perl

annotations.rdf: $(XMLFILE) $(XSLFILE) annopost.pl
    $(WGET) -O $(XMLFILE) $(CHUMPFILE)
    $(PERL) annopost.pl --xml $(XMLFILE) --xsl $(XSLFILE) --user $(USER) --passwd $(PASSWD) --server $(SERVER)

annoChump in Action

A cron job has been set up to download the "Chumped" annotations for the RDF Interest Group's collaborative weblog every night at 11:55 pm EST. Subscribe any one of several Annotea clients to http://annotest.w3.org/annotations will provide alternative access to the Semantic Web's RDF Interest Group's collaborative work.

For the more adventurous individuals, an XML/RDF export of these annotations are provided. A more interactive version of this information is also availiable.

Open Issues

Open issues include:


Eric Miller <em@w3.org>, (W3C) Semantic Web Activity Lead,

$Id: Overview.html,v 1.7 2001/12/05 01:56:55 em Exp $