iCalendar to RDFical: a Semantic Web vocabulary created with
community process-lite
Libby Miller, ILRT, University of Bristol
Presentation to Intelligence,
Agents, Multimedia Group, University of Southampton, 2003-11-03
Semantic Web calendaring
I will be talking about a Semantic Web vocabulary for describing
events, and in particular
-
what it's for, and
-
how we went about creating one
and hopefully ...
-
a bit about why the Semantic Web is potentially both interesting and useful
History
- W3C RDF Interest Group calendaring taskforce created March 2001,
following previous work by Tim Berners-Lee
- initial RDF iCalendar vocabulary created June 2001 by Michael Arick and
Libby Miller
- Other schemas based on Palm tools by Dan Connolly and others
- A SWAD-Europe workshop, October 2002 in Bristol, UK on the Semantic Web
and calendaring, producing usecases and a plan of action
Why create a Semantic Web vocabulary for events?
1. To try to solve the personal
information disaster
-
scattered schedules in HTML, XML, iCalendar, proprietory (and binary)
formats in public and private places, none easily searchable or combinable
-
copying and pasting from webpages to PDAs, and between formats and devices
-
errors in schedules leading to missed meetings, missed opportunities
-
a general inertia about scheduling since finding out if you are busy
is such an effort
- people getting irritated by this, and saying:
Wouldn't it be great if it was easy to find out what's happening (and
in particular, what I'm supposed to be doing)? Why
do I have to do this stuff that my computer could do for me?
Why create a Semantic Web vocabulary for events?
To describe and use the connections between events and other things
- events link people with other people, documents, pictures, places,
restaurants...
It would be good to be able to find useful and interesting links
between events and other things automatically. Why can't my
computer do this for me?
Usecase: events and people
who is coming to this meeting? in what way are they 'expert'? what else
have they written or spoken about? what do they look like?
Usecase: events and geographical information
where am I going? how do I get there? where's the nearest
{ restaurant | hotel | station | ...}?
What do we need to do...
-
to find the things that are events?
-
to find the things that are events that are in a certain location?
-
to find the things that are events that my friends are attending?
-
to find the things that are events that interest me/are about a certain
topic/that my boss says I should attend?
We would like a way of describing, publishing and searching with
precision events with these sorts of characteristics, where:
-
the events can be created by many different individuals and tools
Vocabularies for events, people, places....
- a single vocabulary for events cannot convey all the information we
would like to have about events, people, places, documents
-
...and shouldn't try to
-
experts in any particular field are probably the best people to write
vocabularies for that field
-
agreement on vocabularies takes lots of time
-
agreement with experts from different fields takes even more time
Much better is to be able to combine vocabularies easily and
devolve the creation of vocabularies where possible.
Why RDF?
RDF (Resource Description Framework) has a model for combining many
different vocabularies created independently
-
RDF has objects (people, documents, events, locations) and their
properties (name, identifier) and relationships (attendee, knows,
created)
-
RDF Schema and OWL can be used to document how these objects and
properties relate to each other in a 'schema' or 'ontology' (a
reuseable, machine-readable vocabulary)
-
RDFS and OWL can also be used to make connections between different
vocabularies (subclass, domain, range)
-
RDF (sometimes enhanced with OWL) can be used to merge information about
things from different sources: different descriptions of the same object
can be combined together
RDF is designed for combining vocabularies describing
overlapping domains of interest, and for merging, storing and searching data
defined in this way.
Event data and the Semantic Web
The Semantic Web will be useful when there's a network effect, so
people can build applications using the data available
- It will require a great deal of free, open, networked,
machine-processible data using common vocabularies
- Creating event data can help bootstrap the Semantic Web
Creating an RDF vocabulary for events
There is already a standard! - RFC 2445 -
iCalendar...but
-
it doesn't do what we want in terms of mixing people, places etc with events
-
it is difficult to extend
-
it is long and difficult to understand (events, especially repeating events
are complex to model)
-
it is difficult to discern the authors' intentions in some cases
- there's a divergence between specification and reality: overlapping,
partial implementations
'Translating' a schema is difficult and slow:
especially when you are trying to work out what a group meant when
they were writing in their own special language, and translate it to
your own special language.
iCalendar in RDF: the wrong way
Reusing existing expert work, and taking into account that
many implementations use iCalendar, but:
- using the pondering approach: sitting and thinking == translating from
one format to another with incomplete information
-
why was this modelling decision made rather than another?
what did the authors mean by X?
- first
pass - the 'hybrid' RDF calendar schema: many uncertainties and possible
contradictions
Decisions made in this translation were often arbitrary and themselves
ill-documented
RDFCal: the right way 'community process lite'
A different approach: a
syntactic conversion of iCalendar to RDF
- implementation and testcase driven
- testcases from iCalendar generated by existing tools (Mozilla
calendar, Apple iCal, Evolution) and usecases (restaurant opening hours,
bus timetables, conferences)
- vocabulary (schema) generated automatically
from accepted testcases
- vocabulary consistent with established usage
- virtual meetings and email discussion about modelling problems
- implementations
- paper trail: announcing changes to a public, archived, list
- roundtripping to iCalendar
- discussion with developers: Chandler, Apple iCal, RDF calendar
developers
Result: testable, automated schema, with
community input and
documented reasons for decisions
Returning to the usecases
Our initial usecases were:
- finding out what's happening (to me)
- finding interesting links between events and other things
We are doing this using off-the-shelf RDF tools (e.g.
using Jena, RDFLib, Brownsauce, Joseki; also other experimental ones) for
- harvesting: event aggregation, search and publish
-
making this data accessible to other tools (e.g. via http) - RESTful query
interfaces returning RDF/XML: cataloguing, IRC bots
-
displaying events and the things they link to
- RSS 1.0 and RDFiCal? blogging and RDFiCal?
We are just starting to experiment with RDFiCal applications,
using RDF tools
We don't have all the answers...
Issues:
- privacy: many events are private and must stay that way
- trust: who says I'm going to this meeting? who said I was there?
A major problem is identifying events: events don't have URIs:
How can I say: I'm going to the same conference as you are?
-
by homepage/url?
-
by a query matching on time and place?
-
using some sort of fuzzy matching?
Future work
- Documentation
- outreach
- more applications
baby steps: data will drive the applications
More information
RDF calendar workshop, including usecases:
http://www.w3.org/2001/sw/Europe/reports/dev_workshop_report_2/
RDF calendar wiki:
http://esw.w3.org/topic/RdfCalendar,
http://esw.w3.org/topic/RdfCalendarDocumentation
RDF Calendar workspace:
http://www.w3.org/2002/12/cal/
RDF Calendar mailing list:
http://lists.w3.org/Archives/Public/www-rdf-calendar/
This presentation:
http://sw1.ilrt.org/discovery/2003/11/rdfical/all.html
Thanks for listening!
RDFiCal: libby.miller@bristol.ac.uk, 2003-11-03