SWAD-Europe Deliverable 3.7: Developer Workshop Report 2 - Semantic Web calendaring

Project name:
Semantic Web Advanced Development for Europe (SWAD-Europe)
Project Number:
IST-2001-34732
Workpackage name:
3 Dissemination and Implementation
Workpackage description:
http://www.w3.org/2001/sw/Europe/plan/workpackages/live/esw-wp-3
Deliverable title:
3.7 Developer Workshop Report 2
URI:
http://www.w3.org/2001/sw/Europe/reports/dev_workshop_report_2/
Author:
Libby Miller
Abstract:
This report summarises the second SWAD-Europe developer workshop, held in Bristol on 9 October 2002 (webpage, announcement).
STATUS:
First version published 2002-10-24. This version 2002-12-12: report complete.

Contents


  1. Summary
  2. Outcomes
  3. Usecases
  4. FAQs and answers
  5. Attendees

Appendix A. Projects and Tools


Summary

The recent work going on in the Mozilla calendar project and the iCal Apple application has stimulated interest in the subject of creating, displaying and exchanging calendars. These products make it simple for users to create and make available calendars represented in the iCalendar standard (RFC 2445), and to subscribe to the calendars they are interested in which have been created by other people.

Since early 2001, the RDF interest group has had an informal taskforce examining calendaring and scheduling issues and RDF. This arose out of an initial exercise by Tim Berners-Lee which described how one might approach the problem of converting iCalendar to RDF, and later, from discussions at the W3C Technical plenary 2001.

Calendaring is an interesting application of RDF because it is such an important part of people's day-to-day lives, and because it also encompasses difficult philosophical and modeling problems, and social, trust and privacy questions. It straddles all levels of the Semantic Web from simple queries to find out who is at a conference, to complex scheduling problems involving logic.

There have been several attempts to model calendaring formats in RDF, including the 'hybrid' model (Michael Arick and Libby Miller) another iCalendar model (Dan Connolly), and a Palm model (Dan Connolly). ICalendar is the standard format used by most devices and software for calendaring and scheduling, but is also highly complex and difficult to implement in its entirety.

Workshop aims

Additionally, there were two background presentations, on iCalendar and the Calsch working group (Greg FitzPatrick) and a survey of Knowledge Representation formalizations of time (Pat Hayes).

Notes made at the time of the workshop are available from the RDF Interest group chat channel logs; annotations of demonstrations and usecases are available from the RDF Interest group blog.

There were twenty-one participants of the workshop, from the industrial, Open Source and research communities, and including representatives from the RSS community, the XML/Topic Maps community, iCalendar IETF working group, W3C, Universities of Southampton, West Florida, Madrid and Bristol; also companies: Mediatrans, HP Labs, Techquila, BBN Technologies / Verizon, SkiCal consortium; and from various countries: Italy, Spain, US, Belgium, Sweden, and UK.

Outcomes

RDF calendar workspace

As a result of the workshop an RDF calendar workspace has been created, containing a testcase-driven schema, testcases, details of meetings held, and notes on applications. 13 virtual meetings have been held: These meetings have been attended by open source developers; industry, academic/research and content and tool producers: Mozilla calendar and Apple developers; members of the RSS community; Chandler developer; members of the W3C team; iCalendar (RFC 2445) specification contributors; and SWAD-Europe project members.

Ideas for the future of iCalendar in RDF

See also posts to www-rdf-calendar@w3.org for recent discussions on email and irc.

NB References are mostly to logs written by scribes who were at the meeting. There were no formal procedures for actions from the meeting.

Usecases - see Chump and logs for additional detail

Jérôme Euzenat's usecase: Personal information management and the semantic web

Jérôme could not attend the workshop, but sent a usecase. Here's an excerpt:

Personal information (i.e., Agendas, Address books, Bibliographies, etc.) has several advantages with regards to the semantic web:

So, if the semantic web could provide some help in dealing with personal information (or PIM data here), it could prove to be really useful right away. It could also produce high quality data that could be used for other applications.

Mike Dean's International Meeting usecase

When attending an event, be able to download into a Palm or similar all the information needed about the event, for example, maps, travel itinerary, information about the participants, agenda.

[This is, I suppose, an example of what could be done with data made available in RDF form, possibly with DAML+oil or similar annotations. One important requirement here is that the event be clearly identifiable, so that it can be associated with information such as geographical location. Similarly, the other components would also be identifiable, e.g. locations, people.]

Dan Brickley asked what was preventing the implementation of the usecase now; Mike's answer was that not all the information is available on the web, for example opening hours of hotel restaurant, or which hotels have a high speed or wireless internet access. This is why he has created the DAML data page - looking for sources of useful information on the web that are both authoritative and complete, for example, countries, airports, companies, geographical locations.

Dan Connolly's Semantic Web travel tools page - usecase - visualizing travel information

Dan Connolly is interested in travel tools: itenary visualization, and also loading data into evolution or palm pilot import and getting it back again. Also scraping information from travel agent supplied text formats and emails and from html pages. For example, take iCalendar formatted information from Evolution; then convert the iCalendar to RDF; and then compare information scraped from team webpages about events and see if it's missing off the personal calendar.

See also rules to plot W3C team members on a globe.

See also Charles McCathieNevile's travel plot in SVG.

Libby Miller's photos of people at this meeting demo

This is a specific extension to Mike Dean's usecase, as suggested by Dan Brickley, namely - I haven't most of the people coming to this meeting - what do they look like? Also, what papers have they written?

Retsina calendar agent and restaurant location usecase

The Retsina calendar agent has RDF processing capabilities. It can be used to read in RDF from the 'hybrid' RDF calendar schema and add the data to Outlook. It can be used to do things like find restaurants local to a meeting (via an agent) if it knows the latitude and longitude. It can also find contacts from the data (defined using foaf schema).

Pär Lannerö's SkiCal examples

Skical is a set of additions to iCalendar for describing public events such as concerts, sports events. 4 years' of experience with Skical have led to various conclusions (from Pär's presentation):

Pär has also created an RSS+events+skical channel with information provided by the Stockholm tourist office, about events in Stockholm.

Dan Brickley's dentist's opening hours usecase

Dan's dentist found this image the simplest way of making public the opening hours on the web:

Zetland Denist's opening hours ('open 9-5.30 Monday to Friday, late evening and Saturday appointments by arrangement')

Dan would like to be able to give them good advice: on making the page look good, on accessibility, and on the Semantic Web.

Joaquin Salvachua's usecase - organising a conference

Organising and coordinating a conference is extremely complicated involving the phone, WWW, with many dependencies. It's extremely expensive. Usually consists of static web pages produced by hand. Joaquin has written a poster (PDF) about the application of ISABEL, a Semantic Web application to help organise conferences (PDF) shown at ISCW 2002.

Another usecase and software is the result of an EC research project, 'Universal Brokerage Package for Learning', a broker for the interchange of learning materials, for dynamic delivery of new content. You need to give the students the schedule information about courses, but you also need to combine that information with additional information about how to connect to the class. For this reason iCalendar isn't enough because you need to include other information.

Martin Poulter's usecase - distributing data for LTSNs

The LTSN is a central clearing house for subject-specific teaching and learning information. There are about 30 different projects cataloging conferences and other events, all using different underlying technologies to create, store and display the information. A really big event could be catalogued 30 times. A step towards interoperability is using the RSS+events module for describing conferences and other events. It's a very simple specification and very clearly presented, so it's simple to implement, and the five fields cover LTSN needs very well. It has to be simple because of the wide variety of technical help available over the centres.

The aim is to merge and display events from different centres. The disadvantage is that the events module is rather vague. In addition it's not clear how to identify events from multiple sources (this is a difficult philosophical problem - events can be described in different ways - a discussion can also be an argument. Dan Brickley suggested a possible way around: the event whose homepage is http://foo). Dan Brickley has written Ruby code allowing LTSN event data to be cross-queried against Google backlinks. Martin would like to be able to do things like 'notify me of economics events associated with Bloomfield House'. Standards are very important because of the diversity of platforms used.

Kal Ahmed's usecase - making it easy for the little guy to publish

Kal's usecase was to make it as simple as possible for people to write structured data to the web, at least a bare minimum, so that for example you could find out where and when small touring theatre companies are playing locally. A possible solution might be to create forms of html which could be translated to RDF (an example of this is immediately below).

Building on the world's investment in HTML (Dan Brickley's use case)

Dan Connolly enhanced and wrote up something Dan Brickley and Eric van der Vlist worked on: the W3C main page is marked up with a profile of xhtml. You can use an xslt stylesheet to scrape out an RSS channel.

Libby Miller added to this basic model to create an RSS+events module profile, for example SWAD-Europe events page. There's also a writeup of this version.

In both cases this technique has the advantage of storing all information in one place rather than having separate machine and person-readable versions which can become mismatched. in addition, anyone who can hand code html can write web pages like this - it does not require knowledge of RDF.

Jan Grant's usecase - trust and security of information

Jan made a point about security and trust, by suggesting a query: ' find two people in a house worth 200,000 pounds where they're both away for a week'. Even knowing where you are might be valuable information, for example for a CEO. Dan Connolly commented that security is the main focus of a research project at W3C - policies about who gets to see the phone numbers of people going to a meeting and so on.

Graham Klyne's access control usecase

(Not presented at the workshop)
Graham has been using iCalendar/RDF data to generate Cisco IOS configuration commands for home networking. This involves combining information about people, network users, internet access schedules and network device characteristics. More information is available in the documentation.

FAQs

Where can I ask questions/find out about RDF and calendaring?

Try the RDF interest group's calendaring taskforce email list. We're happy to hear about projects and answer questions.

What is the most widely used standard for writing up calendar information in machine-processible format?

The standard is the IETF's iCalendar and its sister RFCs. There is a summary of the relevant standards and documents and some issues.

Why should I use RDF for my calendar data? (especially when there is already an established standard?)

The main argument is that it is often useful to combine calendaring information - information about the times and dates of events - with other information such as location, people attending, related documents. iCalendar is not designed to be extensible in this way, although it does include some information about location. RDF makes merging information from different sources easier.

Please see the usecases below for examples of when it might be useful to use RDF calendar data.

What RDF schema/vocabulary should I use?

At the moment there are at least two schemas available, both based on iCalendar. One has been termed the 'hybrid' RDF calendar schema for obscure reasons. It was written by Michael Arick and Libby Miller and is used in a few demos and in the Retsina calendar agent.

Dan Connolly has a number of different schemas - for iCalendar, and also for the Palm to work with his Palmagent software which allows you to sync RDF formats with the Palm.

There is also the very simple RSS+events module, which many people find useful but which is very underspecified. Dan Connolly has a converter for RSS events to Palm.

We are in the process of working out a good process to come up with a single vocabulary - see the notes above.

Some more information about the various vocabularies is also available.

What conversion tools are available from iCalendar to RDF? from RDF to iCalendar? RDF to HTML?

Dan Connolly has Perl code to convert iCalendar to RDF and also a python tool that converts from RDF to iCalendar ('hybrid' schema). In addition his Palmagent page contains XSLT for RDF version of Palm Datebook as HTML.

Gary Frederick sent a message about converting iCalendar to an xml format (including Dan Connolly's version of iCalendar in RDF). XSLT to convert to Dan Connolly's iCalendar vocabulary is now included in the Mozilla calendar standard distribution.

What tools are available that consume iCalendar data?

Mozilla's calendar and Apple's iCal both consume iCalendar data (the iPod also understands iCalendar .ics files, and you can upload several calendars onto an iPod which will then also merge them together for you). There's a page detailing other implementations of iCalendar - note that many are partial implementations. The Calsch working group (which developed iCalendar) holds interoperability testing sessions, but does not appear to publish the performance of named products.

What tools are available that consume RDF calendar data?

Retsina and various tools described above. You can also convert certain RDF calendar vocabularies to iCalendar and there are many consumers of iCalendar data.

Does anyone have code that runs on Windows to dump Palm desktop software calendar as RDF? (webcal?)

Not to my knowledge, unfortunately, although there is a perl module that can be used to parse Palm .pdb files to create RDF (Libby Miller and Dan Connolly both have examples of this). Palm on windows uses a different file format (.dba) to the internal file format and the format used on linux (.pdb). You might be able to get around this by using a tool like Sync buddy to grab all the palm databases in their raw form off the Palm and then use Perl; or you could use something like this - a parser for the dba files. But - I don't know if this works, and the dba files are subject to arbitrary change by Palm.

What's a good way of describing people, locations, events, documents in RDF in an interoperable way?

This is a tough question, because it's really about being good at modeling information, which itself is pretty difficult. An interesting xml.com article by Bob DuCharme and John Cowan illustrates a series of approaches you might find useful, especially if you are used to writing XML documents. I wrote a short piece on three practical principles for creating interoperable data with RDF [but I should stress that that is just my personal opinion].

The other thing you can do is reuse RDF vocabularies (schemas) where they are available. So for example you could use Dublin Core to represent information about webpages and other documents; the experimental foaf vocabulary or vCard in RDF for people, addresses, relationships. Reusing vocabularies can be difficult if parts of a schema are similar to what you want, but do not quite represent it exactly. RDF has subClassOf and subPropertyOf relationships to accommodate these similarities interoperably. These are not currently processed in very many tools but are useful for fixing the meaning of classes and properties precisely, and will likely be used in the future.

Where can I get sample data?

At the moment, there's 'hybrid' data at the ILRT site. You could also try searching for iCalendar predicates at Jim Ley's RDF database ( example search). Probably the best way of getting data is to take some of the iCalendar data that's available and use the tools available to convert it.

What is the best way of representing repeating events in RDF? [ reference]

Recurrence is difficult to model, and there are some problems with the iCalendar notion of recurrence. The hybrid iCalendar RDF model repeats the iCalendar model (and probably its errors). Greg Fitzpatrick has proposed a more elegant model for recurrence.

Attendees

  1. Andy Seaborne mailto:andy.seaborne@hp.com
  2. Antonio Cavedoni mailto:antonio@cavedoni.org
  3. Chris Croome mailto:chris@webarchitects.co.uk
  4. Dan Connolly mailto:connolly@w3.org
  5. Dan Brickley mailto:danbri@w3.org
  6. Damian Steer mailto:dsteer@hp.com
  7. Graham Klyne mailto:gk-esw-cal@ninebynine.org
  8. Greg Fitzpatrick mailto:greg@skical.org
  9. Jan Grant mailto:jan.grant@bristol.ac.uk
  10. Jos de Roo mailto:jos.deroo.jd@belgium.agfa.com
  11. Kal Ahmed mailto:kal@techquila.com
  12. Emmanuel Korie mailto:koriee@hotmail.com
  13. Libby Miller mailto:libby.miller@bristol.ac.uk
  14. Martin L Poulter mailto:m.l.poulter@bristol.ac.uk
  15. Mike Dean mailto:mdean@bbn.com
  16. Max Froumentin mailto:mf@w3.org
  17. Pär Lannerö mailto:par.lannero@metamatrix.se
  18. Pat Hayes mailto:phayes@ai.uwf.edu
  19. Trevor Martin mailto:trevor.martin@bristol.ac.uk
  20. Terry Payne mailto:trp@ecs.soton.ac.uk
  21. Joaquin Salvachua mailto:jsr@dit.upm.es

Unfortunately,
David Colombi mailto:d.colombi@swap.ac.uk
Edd Dumbill mailto:edd@usefulinc.com
Monika Solanki mailto:monika@dmu.ac.uk
were unable to attend.

A list of participants and their photos is available here. Photos from the day are available here (by Libby Miller) and here (by Pär Lannerö).

Appendix A: Projects and Tools

Apple iCal, iCalshare

Damian Steer demoed the Mac OS X calendar tools. You can create a calendar entry and publish it to the web via WebDav to mac.com is iCalendar. to the Web via WebDAV to mac.com. Dan Connolly noted that he had heard that that the protocol doesn't require anything outside HTTP 1.1 PUT.

Mozilla calendar project

The Mozilla calendar project also uses iCalendar. We had some success with interoperability - creating a calendar entry in Apple iCal and reading it into Mozilla. There's active and interesting work going on here - see the news group, mailing list and irc channel.

PIM tools

Dan Connolly has made some interesting personal information management tools. Palmagent is perl code which can export the Palm Datebook as RDF using Palm::Datebook.pm; format the RDF datebook as HTML; serve DatebookDB.pdb as RDF via HTTP.

He has also written a Semantic Web travel tools page - uses CWM, XSLT to parse legacy data, display it as SVG and as xearth, and convert to the palm pilot datebook format.

Gary Frederick's XSLT

Gary Frederick who works on the Mozilla Calendar project sent a message about converting iCalendar to an xml format (including Dan Connolly's version of iCalendar in RDF).

Retsina calendar agent

Rahul Singh and Terry Payne developed the Retsina calendar agent to allow you to import RDF calendar data into Microsoft Outlook. It can also find related information for you - such as local restaurants, where location information is available. More information is available.

RSS+events module XSLT tools

This uses an XSLT file to parse a profile of XHTML to produce an RSS 1.0+events file which can be displayed. Charles McCathieNevile has also done some early work in this area.

SquishQL/InklingRDF query calendar experiments

These experiments and demonstrators illustrate the use of a simple SQL-like RDF query language to query and display calendar information.

Calendar demo using Javascript prolog

Jan Grant wrote an implementation of prolog in Javascript. This demonstrator by Dan Brickley shows how you can find out things like who is busy at certain times using information scraped from html.


Resources

ICalendar and related

iCalendar RFC 2445

CalSch working group

A List of iCalendar services and applications and another list.

iTip (RFC 2446)

iMip (RFC 2447)

Calendar attributes for vCard and LDAP RFC 2739

Guide to internet calendaring RFC 3283

CAP

iCalendar DTD (xCalendar)

ABNF notation (RFC 2234)

Mime Directory format

Recurrence issues continued and more.

Greg Fitzpatrick's 'Orlando' recurrence model

Michael Arick's iCalendar in UML

iCalendar Use more iCalendar use, more.

SkiCal internet draft and SkiCal homepage

W3C Date and Time formats

RDF and calendaring

A quick look at iCalendar, Tim Berners-Lee

Skical in RDF

'hybrid' RDF calendar model old versions

problems with the hybrid model, more problems

DAML+oil

Palmagent, Palmagent icalendar vocabulary Palm RDF voabulary

RSS 1.0, and RSS events module

Ximian Evolution Calendaring Framework