Working with action items and todo lists in RDF and iCalendar

Status of this document

This is currently a very rough draft for implementing some ideas. It is intended to show how Semantic Web technology applied to the W3C site actually makes our life easier. In particular it is meant to highlight that some really neat things were very easy, by building on other Semantic Web stuff that has been done.

This is version $Id: README.html,v 1.14 2004/03/01 01:51:07 charles Exp $ and the code it describes is still very scrappy (missing basic things like version identifiers comments, ...)

Please do not rely on this code being stable, as almost everything in it is changing. This is made available to allow others to comment, or to see what is being done.

Please send comments to the RDF Calendar task force. Note that they will be publicly archived.

the Idea

RRSAgent is an irc bot that follows meetings in IRC, and among other things can record action items. It produces a log of the discussion, and an RDF version of the action items.

The original idea was to collect action items from a number of discussions in the same group, mark some as done, and be able to generate a list of the ones that are still current.

It is useful to put those into icalendar format, as "to do" items - this would allow people to track them in their favourite calendar systems.

Current status:

To run this stuff, you need cwm (or a similar n3 rules capable RDF parser), and a Unix shell. To do the conversion to icalendar you will also need and whatever it requires.

You can take any number of RRSAgent action item lists, and generate a combined list (assuming you have the command cwm aliased somehow to run

cwm --rdf

(actually this mixes items from 2 groups, and isn't very interesting really).

You can also mark an action item as having been done.


or as being cancelled:


At the moment this approach is pretty ugly - it just drops a line of code at the end of a magic file, finished.n3.

Using the magic file finished.n3, you can collect a set of action items and list those that are current:


( now uses the unix commands which and locate to find python and

This dumps a lot of stuff onto stdout, which is an rdf list of action items, with the completed ones filtered out, in a format that can convert into .ics files that @@almost work in Apple's ical.

With a bit of manipulation you can get the items in Apple's iCal. If you add

<>  :dtstart  [ :dateTime "2004-01-29T14:31:21Z" ] .

(changing the URI for each item in the output, and the actual date as you like) and run over the results, it will produce things that iCal accepts as valid "to do" items. @@Are these dtstart or dtstamp? Anyway, can do, just need to test which one makes the software happy. (They are both optional according to the spec).

To do

quite a lot :(

Datestamps - Done! (but not tested)
This is my big (but annoying) problem. iCal won't accept the todo items unless they have datestamps, but I don't yet have a way of adding them. They could be extracted from information RRSAgent already produces, but it's kind of messy. If RRSAgent datestamped Action items seperately it would be easy. But I don't think there are any complex barriers here.
According to the Spec, these are actually optional. So implementing them to get around a bug in software is annoying, but not a bad idea all the same.
Make the items belong to a real calendar
at the moment they just belong to an apple calendar called "test". I think this involves the next item (collecting todo lists) as well.
Collecting todo lists
It should be possible to have a place where a set of action lists is collected, so you can add the information to it, and friendlier ways of doing that (instead of just talking to a magic well-known location, which is a nasty hack)
STATUS - this happens using the scheme now (at least for completed/cancelled using the shell scripts)
this can be
RRSAgent doesn't generate this. I might as well set these up as values in the schema and use the iCal scheme directly.
An owner for action items
These are things that can/must be in icalendar todo items, but don't yet get figured out.
Clean the code
Comments, id, etc - happening bit by bit.
Clean up this page...
probably doesn't need to be said really...
Relationship to RRSAgent
Some of these things might be best incorporated into RRSAgent.
Namespaces and schemas
Some of the RDF terms this work uses are currently undefined, which is really nasty.
Conversion from iCal
I think this relies on figuring out the namespaces better, and having a clearer idea of how to keep information about a collection of action item lists and information about things that are done.


This work is sponsored by the SWAD-Europe project. EU IST logo

This work would not have been possible without invaluable help and suggestions from Dan Connolly in particular, and from many others including

It builds on many pieces of work - most directly on the work of the RDF Calendar task force, travel information management work done by Dan Connolly and Jim Ley, IRC bots built by Ralph Swick, Dave Beckett and others, ...