Movatterモバイル変換


[0]ホーム

URL:


W3C

RDF Calendar - an application of the Resource Description Framework toiCalendar Data

W3C Interest Group Note 29 September 2005

This version
http://www.w3.org/TR/2005/NOTE-rdfcal-20050929/
Latest version
http://www.w3.org/TR/rdfcal/
Authors
Dan Connolly, W3C
Libby Miller, ASemantics

Copyright ©2005W3C®(MIT,ERCIM,Keio), All Rights Reserved. W3Cliability,trademarkanddocumentuse rules apply.


Abstract

This report discusses an effort to apply the Resource DescriptionFramework (RDF) to iCalendar data in order to integrate calendar datawith other Semantic Web data such as social networking data,syndicated content, and multimedia meta-data. We demonstrate theeffectiveness of a test-driven approach to vocabulary development andwe discuss a number of social as well as technical issues.

Status of this document

This section describes the status of this document at the timeof its publication. Other documents may supersede this document. Alist of current W3C publications and the latest revision of thistechnical report can be found in theW3C technical reports index athttp://www.w3.org/TR/.

This draft discusses the state of the art in the RDF calendar taskforce of theSemanticWeb Interest Group in theSemantic Web Activity. Thiswork began at theSemanticWeb calendaring workshop in October 2002. While a number of issuesremain open, the design is backed by a few dozen test cases and it isincreasingly useful and stable. Please send comments towww-rdf-calendar@w3.org, amailing list withpublicarchive.

Publication as an Interest Group Note does not implyendorsement by the W3C Membership. This is a draft document and may beupdated, replaced or obsoleted by other documents at any time. It isinappropriate to cite this document as other than work inprogress.

Contents

1. Introduction

The Web did two things for sharing information with documents: first, HTMLand TCP/IP provided a neutral answer to the questions about which wordprocessor's format to use, which operating system, and which networkingtechnology; second, the Web integrated individual documents into a wholeinformation system so that if the information was already in the Websomewhere, you could just link to it. HTML is feature-poor when compared toother document formats, but the integration benefits of linking outweigh thecosts.

Fifteen years later, this works pretty well for documents. If you have adocument and someone asks you to provide it to each of a dozen differentpeople that each use different kinds of computers, you can just put it on theWeb in HTML and be reasonably sure they can all read it. But the integrationproblem is still there for data. When a soccer coach distributes a schedulefor the season, each of the players has to re-key the information for theircalendar system if they want their computer to help them manage conflicts.When an airline sends itineraries, each passenger manually processes them.

The problem is addressed at least in part by an Internet standardst for calendar data, iCalendar[RFC2554]. But it's not clear that iCalendar providessufficient integration benefits to outweigh the cost of migrating to opensystems from more mature closed calendaring systems. At aSemantic Webcalendaring workshop in October 2002, we explored the additional benefitsof applying the Resource Description Framework (RDF) to iCalendar data, allowing us tolinked it with social networking data (FOAF), syndicated content (RSS), multimedia metadata (dublin core,musicbrainz) etc.

The iCalendar specification is fairly large, with 142 sections and anumber of complex interactions. The widely available software seems to covermuch of the useful functionality, but not every aspect of the specification;for example, we have not seen tool support forexception rules. Meanwhile, at the workshop, wedid have a number of actual iCalendar data files, representing real-worldevents, that had been converted to RDF either manually or with scripts. Theresulting RDF/XML analogs served useful purposes to at least some of theparticipants and seemed to be correct, by inspection, to all present. Thisprovided critical mass to begin maintaining a test suite

st
anIETF Proposed Standard, to be exact. The IETF Calendaring and Scheduling Standards Simplification (calsify) working group is chartered to "Advance the Calendaring and Scheduling standards to Draft Standard," among other things.

2. Collaboration challenges and rewards

A particularly rewarding aspect of this collaboration is exploringlanguage and culture boundaries. Even though there is a six hour time gapbetween Chicago and London, office hours overlap regularly, and while thedifference in dialect and etiquette is often entertaining, it is rarely anobstacle to understanding. Our colleagues from Japan are much more able toconverse in English than we are in Japanese. Even so, without the benefit ofnon-verbal clues, remote conversations are particularly challenging. Emailoffers the chance to read and compse at your own pace, but the the timezonegaps between America, Europe, and Asia effective impose a 24 hour round-triptime that is a real barrier to conversation. Internet Relay Chat (IRC) allowsnear-real-time feedback and clarification as well as the clarity of writtentext and a chance to reflect at least a few minutes to digest one message andcompose another, but only if all parties can devote their attention at thesame time.

We use an archived mailing list,www-rdf-calendar@w3.org, astheforum of record, with any significant work that happens by chancein IRC reported there after the fact. We also conduct a form of meeting overIRC, called with advanced notice of a week or so, where some conscious effortis given to agenda management, due process for decision making, follow-up onactions, and the like. We have given the nameScheduledTopicChat tothis collaboration pattern.RdfCalendarMeetingsserves as an index of meeting records.

3. A simple example

At a glance, converting iCalendar data to RDF is quite straightforward; iniCalendar terms, an event is acomponent withvariousproperties:

BEGIN:VEVENTUID:20020630T230445Z-3895-69-1-7@jammerDTSTART;VALUE=DATE:20020703DTEND;VALUE=DATE:20020706SUMMARY:Scooby ConferenceLOCATION:San FranciscoEND:VEVENT

and RDF/XML has analagous class and property constructs:

      <Vevent>        <uid>20020630T230445Z-3895-69-1-7@jammer</uid>        <dtstart>2002-07-03</dtstart>        <dtend>2002-07-06</date>        <summary>Scooby Conference</summary>        <location>San Francisco</location>      </Vevent>

4. Namespaces: grounding terms in URI space

The termsVevent,uid, etc. in the RDF/XMLexample above are actually abbreviations. TheVevent element isdominated by an element with namespace declarations:

<rdf:RDF  xmlns="http://www.w3.org/2002/12/cal#">...      <Vevent>        <uid>20020630T230445Z-3895-69-1-7@jammer</uid>        <dtstart>2002-07-03</dtstart>        <dtend>2002-07-06</date>        <summary>Scooby Conference</summary>        <location>San Francisco</location>      </Vevent>

The result is that the element nameVevent is short for afull URIhttp://www.w3.org/2002/12/cal#Vevent.

5. Calendar objects, components and files

iCalendar data typically consists of aCALENDARcomponent withVEVENTcomponents and such inside it. An initial design identified the calendarobject with the RDF/XML document ala

  <Vcalendar rdf:about="">   ...  </Vcalendar>

i.e. "this document is a Vcalendar with ... ." But we ran intoacase of iCalendar data with more than one calendar in a file. There wassome discrepancy among implementations as to whether this was good data;mozilla did not seem to accept it, but this was reported as a bug#179985and indeed, section4.4 iCalendar Objectsays

The Calendaring and Scheduling Core Object is a collection of calendaring and scheduling information. Typically, this information will consist of a single iCalendar object. However, multiple iCalendar objects can be sequentially grouped together.

So we decided2003-02-12to droprdf:about="" from our icalendar<->RDF mapping.

iCalendar syntax has no name for the relationship between an outercomponent and an inner component; it just uses the position in the syntax toexpress the relationship. Syntactic position in RDF only tells the "part ofspeech," i.e. subject, predicate, or object of a relationship, so we needed aname for this relationship. We decided2003-02-12to use ical:component to relate calendars to events.

We have explored using the iCalendar uid property to make URIs for eventcomponents2003-08-19.It's not clear whether events in separate files bearing the same uid shouldbe considered identical or merely different views of the same event. Forexample, if they are identical, they have the same alarms. One approach thatseems to work well is to use the uid as a fragment identifier rather than asa full URI.

6. Capitalization and naming conventions

While these examples suggest that the mapping is straightforward, theyalso demonstrate one of the early issues: capitalization. In iCalendar,component and property names are case insensitive and conventionally writtenin all caps. But due to internationalization and simplicity considerations,XML names and URIs are case sensitive, and RDF class and property namesinherit constraints from XML and URIs. In addition, the establishedconvention is that RDF class names are capitalized and RDF property namesbegin with a lower case letter, and both use camelCase to join words.

The first attempts to convert iCalendar data to RDF were perl scripts of ahundred lines or so that just manipulated the punctuation. But this approachbreaks down when the punctuation of a property depends on the name of thepropertyp. Soon it became clear thatthere were details beyond capitalization that varied from property type toproperty type; the conversion process needed information from a schema.

p
or more precisely: on the value type of the property. Each property type has a default value type; for example,DTSTART defaults toDATE-TIME. But a property parameter can be used to set the value type of an individual property; for example:DTSTART;VALUE=DATE:19960401 .

7. Choosing a namespace policy

Capitalization is one of many issues that had a number of efforts torelate iCalendar and RDF (A quick look atiCalendar by Tim Berners-Lee in 2001,hybrid.rdfby Miller and Arick in 2001,ical2rdf.pl by Connolly in 2002) hadexplored independently. At theworkshop 2002, we agreed towork together on a shared RDF Schema, that is: a shared document in the Webthat provides definitions, of a sort, for a number of related terms. Afterconsideration of preserving the investment in each of the existing iCalendarschemas, it seemed the data that referenced them might have been composedwith an expectation that those schemas would not change. We chose a newnamespace name,http://www.w3.org/2002/12/cal#.

The issues around managing changes to an RDF schema are similar tomanaging changes in other documents: should you update the content in place,or should you keep the old version there and put the new version at adifferent place in the Web? We chose a process that is reasonably simple andhas proven to be quite robust and scalable:the schema is subject tochange, with notice and appeal; that is: all changes to the schemaare announced to thewww-rdf-calendar mailing list; if anyoneobjects within a week, the change is rolled back for further discussion.

8. Generating a schemafrom examples

The regular structure of the iCalendar specification, with components andproperties, suggests declaring corresponding RDF classes and properties in anRDF schema should be straightforward. But an attempt to do it manually (hybrid.rdfby Miller and Arick in 2001) proved unwieldy.

We explored using rules to generate a schema from our example data. Rulessuch as "if something is related to semething else by ?P, then ?P is aProperty" and "if something is a ?C, then ?C is a Class" can be expressed inNotation3 rulesyntax:

{ [] ?P []. } => { ?P a r:Property }.{ [] a ?C } => { ?C a s:Class }.

This approach worked to enumerate the classes and properties we were usingin our test data, but it did not provide important schema information such asvalue types.

9. Gleaning a schema from the specification text

The iCalendar specification has a very regular structure for value typesand such:

4.8.2.4 Date/Time Start   Property Name: DTSTART   Purpose: This property specifies when the calendar component begins.   Value Type: The default value type is DATE-TIME. The time value MUST   be one of the forms defined for the DATE-TIME value type. The value   type can be set to a DATE value type.

We converted this structured plain text to XHTML with semantic markup fortwo reasons:

  1. to make it easier for people to navigate the structure of the document
  2. to facilitate generation of an RDF schema using XSLT

A python program,slurpIcalSpec.py,produces XHTML including typed links from properties to value types:

Property Name
    DTSTART
Purpose
    This property specifies when the calendar component begins.
Value Type

The default value type isDATE-TIME

   . The time value MUST   be one of the forms defined for theDATE-TIME value type. The value   type can be set to aDATE value type.

The markup uses semantic class names and link relationships:

<h2>4.8.2.4 Date/Time Start</h2><dl><dt>Property Name</dt><dd><pre>    DTSTART</pre></dd><dt>Purpose</dt><dd><pre>    This property specifies when the calendar component begins.</pre></dd><dt>Value Type</dt><dd>The default value type is <a rel="default-value-type" href="#Value_DATE-TIME">DATE-TIME</a> <pre>   . The time value MUST   be one of the forms defined for the <a rel="allowed-type" href="#Value_DATE">DATE</a>-TIME value type. The value   type can be set to a <a rel="allowed-type" href="#Value_DATE">DATE</a> value type.</pre></dd>

An XSLT transformation,webize2445.xsl, turnsthis into RDF/OWL:

  <rdf:Description rdf:ID="dtstart">    <rdfs:label>DTSTART</rdfs:label>    <rdfs:comment>This property specifies when the calendar component begins.</rdfs:comment>    <rdfs:comment>    default value type: DATE-TIME</rdfs:comment>    <spec:valueType>DATE-TIME</spec:valueType>    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#ObjectProperty"/>    <rdfs:range>      <owl:Class>        <owl:unionOf rdf:parseType="Collection">          <owl:Class rdf:about="#Value_DATE-TIME"/>          <owl:Class rdf:about="#Value_DATE"/>          <owl:Class rdf:about="#Value_DATE"/>        </owl:unionOf>      </owl:Class>    </rdfs:range>

This approach does not produce schema information for thecomponent property discussedabove, nor forproperties such asinterval andbyday used inrecurrence rules. Those should be added in due course.

The schema also currently lacks information about which properties arefunctional or inverse-functional, which are needed for certain diff/synctechniques2004-03-23.Unfortunately, adding that information conflicts with certain OWL DLrestrictions, and makes it harder to use OWL DL checking tools with thisschema. This remains an open issue.

Another python program,compDecls.py, reads theschema and prints it as a python data structure for use in our iCalendar toRDF conversion utilitytd,fromIcal.py:

                   ('Vevent',                    {"ATTACH": ('attach', 'URI', 0, None),                     "CATEGORIES": ('categories', "TEXT", 0, None),                     "SUMMARY": ('summary', "TEXT", 0, None),                     "DTEND": ('dtend', 'DATE-TIME', 0, None),                     "DTSTART": ('dtstart', 'DATE-TIME', 0, None),
td
Actually, we don't trust this conversion completely quite yet. The schema is actually integrated into fromIcal.py in a test-driven manner: not until a property is found in an actual test case is the relevant declaration copied from the output of compDecls.py into the source code of fromIcal.py, after careful inspection.

10.Extension Tokens andProduct Identifiers

The iCalendar syntax allows extension tokens in a number of places.Ideally, we would like to ground these extension tokens in URI space as well,but none of the approaches we have tried is completely satisfactory.

One approach was to specify a namespace for x- tokens on the command line,at conversion time. The drawbacks of this approach are

  1. It is limited to one extension namespace. We have not explored in detail any iCalendar data with extension tokens from more than one source, but it is possible, at least in theory.
  2. The user must somehow know the URI for the extensions in the file. RDF schemas for these extensions are not widely deployed, so users would be left with the problem of publishing them in many cases.

iCalendar data is labelled with a product ID that serves a similar role toan XML namespace name, though it is not expressed as a URI. We decided2003-02-26to institute an ical product registry. When we found some extensions used bysome product, we would publish a schema for those extensions using a URIstarting with 'http://www.w3.org/2002/12/cal/prod/'followed by a function of the product id.

The drawback of this approach is that it does not seem to be worth thetrouble. In practice, we seem to be more content to just disregard theextended properties. Handling extensions remains an outstanding issue in ourtest suite2003-08-20.

Now that we have explored the schema and extension tokens, let's look atthe calendar data itself.

11. Shop hours, recurring events and timezones

Consider the case of a shop with regular hours. Contemporary directoryservices provide telephone numbers and street addresses, complete withautomated driving directions. But you still have to pick up the phone andcall them to find out when they're open. Typical shop hours can be expressedusing recurring events in iCalendar. Thebus-hrs.rdf testexpresses "Open 11:30a-11:30p Wed-Sun; Open Tue 4-11p" in RDFttl:

@prefix : <http://www.w3.org/2002/12/cal/icaltzd#> .@prefix NY: <http://www.w3.org/2002/12/cal/tzd/America/New_York#> .   <#20030314T052745Z-25601-69-1-8@dirk> a :Vevent;         :class "PUBLIC";         :dtend "2003-03-12T23:00:00"^^NY:tz;         :dtstart "2003-03-12T11:30:00"^^NY:tz;         :rrule  [             :byday "SU,WE,TH,FR,SA";             :freq "WEEKLY";             :interval "1" ];          :summary "Open 11:30a-11:30p Wed-Sun".    <#20030314T052656Z-25601-69-1-0@dirk> a :Vevent;         :class "PUBLIC";         :dtend "2003-03-11T23:00:00"^^NY:tz;         :dtstart "2003-03-11T16:00:00"^^NY:tz;         :rrule  [             :byday "TU";             :freq "WEEKLY";             :interval "1" ];         :summary "Open Tue 4-11p".

There is a question of whether timezone rules should be given by referenceor by copy. Some data from early releases of Apple's iCal application lackedexplicit VTIMEZONE components, but the specification is clear that they arerequired and this was acknowledged as a bug in Apple's iCal2003-03-12and has since been fixed. So the bus-hrs.rdf file includes timezone rules:

    NY:tz     a :Vtimezone;         :daylight  [             :dtstart "1970-04-05T02:00:00"^^:dateTime;             :rrule  [                 :byday "1SU";                 :bymonth "4";                 :freq "YEARLY";                 :interval "1" ];             :tzname "EDT";             :tzoffsetfrom "-0500";             :tzoffsetto "-0400" ];         :standard  [             :dtstart "1970-10-25T02:00:00"^^:dateTime;             :rrule  [                 :byday "-1SU";                 :bymonth "10";                 :freq "YEARLY";                 :interval "1" ];             :tzname "EST";             :tzoffsetfrom "-0400";             :tzoffsetto "-0500" ];         :tzid "/softwarestudio.org/Olson_20011030_5/America/New_York";         x-lic:location "America/New_York" .

While those rules are an accurate model of the timezone in New York atleast as far back as 1970, the Energy Policy Act of 2005 is intended tochange them in 2006. While the Olson database is likely to reflect thesechanges in due course, the copies in all the iCalendar data out there willfail to accurately represent the timezone rules for New York.

One approach, exemplified by thedatetimedesign pattern in the microformats community, is to not use iCalendartimezones, but only UTC datesdelt.

Another approach is to put the timezone rules in the Web, establish changecontrol policies with some minimum notice, and pass timezones around byreference. As a step in this direction, we have published each entry in aversion of the Olsen database in our RDF Calendar workspace. For example,NY:tz, i.e.http://www.w3.org/2002/12/cal/tzd/America/New_York#tz. We areconsidering some way to connect this data to the relevant politicaldecision-making processes. Ultimately, it would be best if the respectivepolicitcal organizations published the data by themselves.

There are a few other issues to note from the example above, some of whichare resolved:

and some of which are not:

We hope to find a consensus with a number of parties on issues aroundtimezones and recurring events:

ttl
here we display the data using theturtle syntax for RDF. TheN3 primer is a gentle introduction to the turtle subset of N3.
delt
with some syntactic support for offsets like -0400

12. Events, places, names, and coordinates

The iCalendar specification includes two features related to places. Thelocationproperty "... defines the intended venue for the activity defined by acalendar component." That is, it gives a name of the place where the eventoccurs. For example:

    <#20020630T230445Z-3895-69-1-7@jammer>     a :Vevent;         :summary "X3 Conference";         :location "San Francisco";         :description "can't wait!\n";         :dtstart "2002-07-03"^^XML:date;         :dtend "2002-07-06"^^XML:date;         :uid "20020630T230445Z-3895-69-1-7@jammer" .

Thegeo propertytakes a list of 2 floats: latitude and longitude. For example:

    geo:CDC474D4-1393-11D7-9A2C-000393914268     a :Vevent;         :summary "meeting 23";         :geo  (        40.442673        -79.945815  );         :dtstart "2003-01-08T13:00:00"^^New:tz;         :dtend "2003-01-08T14:00:00"^^New:tz .

The relationship of these properties to theBasic Geo (WGS84 lat/long)Vocabulary also in development in the Semantic Web Interest Group hasbeen discussed, but not conclusively. Note thatlocation relatesan event to thename of a place, not the place itself; likewise,geo relates an event to a pair of coordinates, not a place. Ifwe take:place to be a property that relates an event to a placewhere it occurscyc, It seems reasonable torelate them using rules such as:

{ ?E cal:geo (?LAT ?LONG) }  <=> { ?E :place [ geo:lat ?LAT; geo:long ?LONG ] }.{ ?E cal:location ?TXT }  <=> { ?E :place [ rdfs:label ?TXT ] }.
cyc
compare#$eventOccursAt in thecyc vocabulary

13. Using RDF graph comparison for round-trip testing

The vehicle for our exploration of schema and data issues is a test suite.At this point, we have a schema supported by a useful, if not complete,collection oftests andconversion tools:

The following table shows, for each component and property, the test casefiles that use that property on that type of component:

Index: Test Coverage
ComponentPropertyValue Type$testcase.rdf
VALARMACTIONTEXT20030115mtg.rdf,20030122mtg.rdf,TestTermin.rdf,cal01.rdf,cal02.rdf,
VALARMDESCRIPTIONTEXTTestTermin.rdf,cal01.rdf,cal02.rdf,
VALARMTRIGGERDURATION20030115mtg.rdf,20030122mtg.rdf,TestTermin.rdf,cal01.rdf,cal02.rdf,
VEVENTATTENDEECAL-ADDRESS20030115mtg.rdf,20030122mtg.rdf,cal01.rdf,cal02.rdf,
VEVENTCATEGORIESTEXTcal01.rdf,cal02.rdf,tag-bug.rdf,
VEVENTCLASSTEXTMozexportAsCalendar.rdf,TestTermin.rdf,bus-hrs.rdf,cal01.rdf,cal02.rdf,
VEVENTCOMMENTTEXTgkexample.rdf,
VEVENTDESCRIPTIONTEXT20030205mtg.rdf,TestTermin.rdf,cal01.rdf,cal02.rdf,tag-bug.rdf,
VEVENTDTENDDATE-TIME20030122mtg.rdf,20030205mtg.rdf,20030212mtg.rdf,20030226mtg.rdf,20030312mtg.rdf,20030326mtg.rdf,20030409mtg.rdf,20030410querymtg.rdf,20030416geomtg.rdf,20030423mtg.rdf,Chiefs.rdf,MozexportAsCalendar.rdf,TestTermin.rdf,bus-hrs.rdf,cal01.rdf,cal02.rdf,gkexample.rdf,mtg.rdf,openingHours.rdf,querymeetings.rdf,tag-bug.rdf,
VEVENTDTSTAMPDATE-TIME20030115mtg.rdf,20030122mtg.rdf,20030205mtg.rdf,20030212mtg.rdf,20030226mtg.rdf,20030312mtg.rdf,20030326mtg.rdf,20030409mtg.rdf,20030410querymtg.rdf,20030416geomtg.rdf,20030423mtg.rdf,Chiefs.rdf,MozexportAsCalendar.rdf,TestTermin.rdf,bus-hrs.rdf,cal01.rdf,cal02.rdf,mtg.rdf,querymeetings.rdf,
VEVENTDTSTARTDATE-TIME20030115mtg.rdf,20030122mtg.rdf,20030205mtg.rdf,20030212mtg.rdf,20030226mtg.rdf,20030312mtg.rdf,20030326mtg.rdf,20030409mtg.rdf,20030410querymtg.rdf,20030416geomtg.rdf,20030423mtg.rdf,Chiefs.rdf,MozexportAsCalendar.rdf,TestTermin.rdf,bus-hrs.rdf,cal01.rdf,cal02.rdf,gkexample.rdf,mtg.rdf,openingHours.rdf,querymeetings.rdf,tag-bug.rdf,
VEVENTDURATIONDURATION20030115mtg.rdf,
VEVENTEXDATEDATE-TIMEtag-bug.rdf,
VEVENTLAST-MODIFIEDDATE-TIMEbus-hrs.rdf,
VEVENTLOCATIONTEXTTestTermin.rdf,cal01.rdf,cal02.rdf,
VEVENTORGANIZERCAL-ADDRESS20030115mtg.rdf,20030122mtg.rdf,TestTermin.rdf,cal01.rdf,cal02.rdf,
VEVENTPRIORITYINTEGERTestTermin.rdf,
VEVENTRRULERECURbus-hrs.rdf,cal01.rdf,cal02.rdf,gkexample.rdf,openingHours.rdf,tag-bug.rdf,
VEVENTSEQUENCEinteger20030115mtg.rdf,20030122mtg.rdf,20030205mtg.rdf,20030212mtg.rdf,20030226mtg.rdf,20030312mtg.rdf,20030326mtg.rdf,20030409mtg.rdf,20030410querymtg.rdf,20030416geomtg.rdf,20030423mtg.rdf,TestTermin.rdf,bus-hrs.rdf,cal01.rdf,cal02.rdf,mtg.rdf,querymeetings.rdf,
VEVENTSUMMARYTEXT20030115mtg.rdf,20030122mtg.rdf,20030205mtg.rdf,20030212mtg.rdf,20030226mtg.rdf,20030312mtg.rdf,20030326mtg.rdf,20030409mtg.rdf,20030410querymtg.rdf,20030416geomtg.rdf,20030423mtg.rdf,Chiefs.rdf,MozexportAsCalendar.rdf,TestTermin.rdf,bus-hrs.rdf,cal01.rdf,cal02.rdf,mtg.rdf,querymeetings.rdf,tag-bug.rdf,
VEVENTTRANSPTEXTTestTermin.rdf,bus-hrs.rdf,cal01.rdf,cal02.rdf,
VEVENTUIDTEXT20030115mtg.rdf,20030122mtg.rdf,20030205mtg.rdf,20030212mtg.rdf,20030226mtg.rdf,20030312mtg.rdf,20030326mtg.rdf,20030409mtg.rdf,20030410querymtg.rdf,20030416geomtg.rdf,20030423mtg.rdf,Chiefs.rdf,MozexportAsCalendar.rdf,TestTermin.rdf,bus-hrs.rdf,cal01.rdf,cal02.rdf,mtg.rdf,querymeetings.rdf,tag-bug.rdf,
VTIMEZONELAST-MODIFIEDDATE-TIMETodos1.rdf,
VTIMEZONETZIDTEXT20030115mtg.rdf,20030122mtg.rdf,20030205mtg.rdf,20030212mtg.rdf,20030226mtg.rdf,20030312mtg.rdf,20030326mtg.rdf,20030409mtg.rdf,20030410querymtg.rdf,20030416geomtg.rdf,20030423mtg.rdf,Chiefs.rdf,Todos1.rdf,bus-hrs.rdf,cal01.rdf,cal02.rdf,mtg.rdf,querymeetings.rdf,
VTODOCOMPLETEDDATE-TIMETodos1.rdf,
VTODODTSTAMPDATE-TIMETodos1.rdf,
VTODODTSTARTDATE-TIMETodos1.rdf,
VTODODUEDATE-TIMETodos1.rdf,
VTODOPRIORITYINTEGERTodos1.rdf,
VTODOSEQUENCEintegerTodos1.rdf,
VTODOSTATUSTEXTTodos1.rdf,
VTODOSUMMARYTEXTTodos1.rdf,
VTODOUIDTEXTTodos1.rdf,

14. Related Work

There are a number of related calendar data format projects.

14.1. xCalendar

XCalendaris a simple syntactic conversion of iCalendar to XML. For events with simpleattribute-value properties it produces results very similar to RDF case; thedifferences are syntactic (capitalization) or have to do with the model RDFimposes.

An XSLT transformation from xCalendar to iCalendar is provided.

We have considered a syntactic profile of RDF calendar that would meet thesame requirements, but we have not managed to develop a tool to produce thisprofile given an arbitrary RDF calendar graph as input.

14.2. RSS event module

RSS Events isa proposed module for RSS 1.0. It uses a simple vocabulary inspired byiCalendar:

  <item rdf:about="http://conferences.oreilly.com/p2p/">    <title>The O'Reilly Peer-to-Peer and Web Services Conference</title>    <link>http://conferences.oreilly.com/p2p/</link>    <ev:type>conference</ev:type>    <ev:organizer>O'Reilly</ev:organizer>    <ev:location>Washington, DC</ev:location>    <ev:startdate>2001-09-18</ev:startdate>    <ev:enddate>2001-09-21</ev:enddate>  </item>

It uses the homepage of an event as the url for the description of theevent.

15. Conclusions and future work

While the RDF Calendar vocabulary is still a work-in-progress, it providesanyone with RDF or XML tools a useful alternative to dealing with thecharacter-level syntax of iCalendar. Our test-driven approach to Semantic Webvocabulary development has allowed us to manage changes as we explored andresolved a variety of issues. The "subject to change with notice and appeal"change policy for our schema seems to work well.

We have exploited the graph model of RDF in our round-trip testing work,but explorations into comparisons, especially for the purpose ofsynchronizing changes, are at an early stage. SeeDelta: an ontology forthe distribution of differences between RDF graphs for oneapproach.

We are still in relatively early stages of mixing calendar data with otherSemantic Web data. As an illustrative example, consider using theFOAF vocabulary to describe an attendeeof an event:

[]    a       :Vevent ;      :attendee              [ a       foaf:Person ;                :calAddress <mailto:me@example.com> ;                foaf:mbox <mailto:me@example.com> ;                foaf:name "My name"              ] ;      :dtend  "2002-06-30T10:30:00"^^NY:tz ;      :dtstart "2002-06-30T09:00:00"^^NY:tz ;      :summary "Tree Conference" .

The iCalendar specification has some prohibitions against publishing emailaddresses. This is one of many privacy considerations with calendar data.

Queries and rules to relate photos to events via metadata such asdate-taken is another promising area of work.

15.1. hCalendar and microformats

hCalendar is anemerging microformat, i.e. a set of semantic XHTML markup conventions. It isbased on iCalendar. The approach to human-readability is interesting; forexample:

<abbr title="2005-10-05">October 5</abbr>

We are working on aglean-hcal.xsl, atransformation from hCalendar to RDF Calendar. Using hCalendar withGRDDL is particularlypromising, though it goes beyond the scope of this report.

Note that open source implementaitons of the following transformations areavailable, either from the RDF Calendar workspace or projects nearby:

Conversions
from iCalendarhCalendarRDF Calendar
to iCalendarX2VtoIcal.py
hCalendar
RDF CalendarfromIcal.pyglean-hcal.xsl

16. Acknowledgements

We are greatful to Masahide Kanzaki for hisRDF calendarservice, to Olivier Gutknecht and Paul Cowles for their commercialproduct development perspective, and the collaborators inwww-rdf-calendar, including Julian Reschke, Doug Royer, TimBerners-Lee, Dave Thewlis, Karl Dubost, Charles McCathieNevile,Michael Arick, Norman Walsh, Tim Hare, and Dan Brickley.

17. References


[8]ページ先頭

©2009-2025 Movatter.jp