Appendix A. Projects and Tools
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.
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.
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.
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.
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.
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 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.
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?
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).
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's dentist found this image the simplest way of making public the opening hours on the web:
Dan would like to be able to give them good advice: on making the page look good, on accessibility, and on the Semantic Web.
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.
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'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).
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 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.
(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.
Try the RDF interest group's calendaring taskforce email list. We're happy to hear about projects and answer questions.
The standard is the IETF's iCalendar and its sister RFCs. There is a summary of the relevant standards and documents and some issues.
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.
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.
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.
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.
Retsina and various tools described above. You can also convert certain RDF calendar vocabularies to iCalendar and there are many consumers of iCalendar data.
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.
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.
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.
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.
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ö).
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.
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.
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 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).
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.
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.
These experiments and demonstrators illustrate the use of a simple SQL-like RDF query language to query and display calendar information.
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.
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
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