W3C home > Mailing lists > Public > www-rdf-calendar@w3.org > January 2003

SWAD-Europe calendar experiments

From: Libby Miller <Libby.Miller@bristol.ac.uk>
Date: Tue, 7 Jan 2003 17:59:57 +0000 (GMT)
To: www-rdf-calendar@w3.org
Message-ID: <Pine.GSO.4.44.0301071602230.29201-100000@mail.ilrt.bris.ac.uk>


Dan Connolly suggested I sent some information to the list about the
calendar stuff I've been doing. Basically, my aim was to try and get
something up and running which showed that it would be useful to make
semantic content about conferences available - dates especially. This
was triggered by my colleague Martin Poulter's attempts to persuade
LTSN centres [1] of the benefits of using the RSS 1.0 syndication
format and its event modules.

I think we sort of showed that semantic information can be useful. Sort
of, because in fact the merging of data that I did could have been done
with iCalendar files, for example. Anyway, below is some info about the
experiments we did. A slightly more technical writeup is available here
[2].

SWAD-Europe [3] is an EC funded project to support W3C's SWAD [4] work
in Europe. One of our aims is to use the technology we are promoting, and
for this reason we have been trying to keep our information in RDF
where possible.

For maintainability, we have been storing our meetings information [5] as
a profile of XHTML which can then be transformed to RSS 1.0's
proposed events module [6] using XSLT. This makes the same information
processible by both humans and RDF parsers. This is based on work by
many people.[7]

RSS's events module bears some relationship to iCalendar, but is
modelled very simply as a set of 5 properties. The key reason for using
the XHTML profile is that interesting parts of the text about the
conference can be easily got at. It would be possible to alter the XSLT
stylesheet and get RDF iCalendar out for example.

A sample XHTML fragment looks like this:

<div class="item">
<h2><a id="f2f3" name="f2f3">SWAD-Europe project-only
management meeting</a></h2>

<p>
<a rel="details" href="#f2f3">A third management meeting</a>
will be held on <span class="startdate">21 January 2003</span> at
<span class="location">ILRT</span>.
(Added <span class="date">24 September 2002</span>)
</p>

</div>

and the resultant RSS+events fragment looks like this:

<item rdf:about="http://www.w3.org/2001/sw/Europe/events/#f2f3">
<title>SWAD-Europe project-only management meeting</title>
<description>A third management meeting will be held on 21 January 2003
at ILRT. (Added 24 September 2002)</description>
<link>http://www.w3.org/2001/sw/Europe/events/#f2f3</link>
<dc:date>2002-09-24</dc:date>
<ev:startdate>2003-01-21</ev:startdate>
<ev:enddate>2003-01-21</ev:enddate>
<ev:location>ILRT</ev:location>
</item>

That nice bit of transformation of dates is stolen from Dan Connolly.

Because we can parse out date information, we can merge files from
different sources and generate a project calendar from it [8].
This is a very simple merge - it won't find duplicate events - it simply
does a query of an RDF database, looking for items with a certain month
or date or time, e.g.

SELECT ?event, ?desc, ?datee, ?dates
WHERE
(rss:title ?event ?desc)
(cal:startdate ?event ?dates)
(cal:enddate ?event ?datee)
and ?dates ~ "2003-01"
USING
cal FOR http://purl.org/rss/1.0/modules/event/
rss FOR http://purl.org/rss/1.0/

Because other project information is also held in a format that can be
converted to RDF (e.g. conferences, deliverables), we can look at many
of our project planning materials all in one place, without duplication
or using proprietory technologies.

A major issue with using RSS+events module is that several of the fields
need only contain unconstrained strings. So an organiser is just a name
and a type is any string. Without stronger constraints on these values
their value for data merging is small. So for example if the value of an
organiser property was constrained to be a personal email address
then we could discover other things about that person by merging the
RSS+events data with other information about their papers,
coleagues, workplace and so on. As it is, we can only do imprecise
string-based matching. It doesn't matter how carefully we model the
information we get from the XHTML using the XSLT - the information
inputted isn't precise enough.

The string-based match for the dates is also less than ideal - it allows
only very simple queries about dates - not useful things like 'before'
and 'after'; but without datatyping being built in to the RDF
parsers and databases this is the best than we can do at the moment.

The RSS-based format is a big win however. The minimal RSS feed (title,
link, description) is preserved as a syndication format, even if an RSS
processor cannot deal with the events module information. This means
that using this format allows RSS aggregators as well as humans and
(rarer) RDF aggregators to use the information.

cheers

Libby

[1] http://www.ltsn.ac.uk/
http://www.economics.ltsn.ac.uk/events/events.xml
[2] http://www.w3.org/2001/sw/Europe/200207/rsscal/xslt-rss-events.html
[3] http://www.w3.org/2001/sw/Europe/
[4] http://www.w3.org/2000/01/sw/
[5] http://www.w3.org/2001/sw/Europe/events/
[6] http://purl.org/rss/1.0/modules/event/
[7] http://www.w3.org/2000/08/w3c-synd/
http://www.w3.org/2001/10/glance/doc/howto
[8] http://www.w3.org/2001/sw/Europe/events/view/
Received on Tuesday, 7 January 2003 13:01:15 GMT

This archive was generated by hypermail 2.2.0 + w3c-0.30 : Friday, 25 March 2005 11:20:43 GMT