- From: Dan Connolly <connolly@w3.org>
- Date: 20 Dec 2002 01:18:33 -0600
- To: www-rdf-calendar@w3.org
Following from our discussion today about the new workspace http://www.w3.org/2002/12/cal/ I took the test/mtg.ics file that timbl checked in, then I took ical2rdf.pl from 2000/10/swap, enhanced it to convert dates to YYYY-MM-DDTHH:MM:SS form, and produced test/mtg.rdf Then I put together a makefile that builds ical.rdf by running sniffSchema.n3 over the input data file. The result looks like this: <rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns='http://www.w3.org/2002/12/cal/ical#' xmlns:i='http://www.w3.org/2002/12/cal/ical#' xmlns:x='http://www.w3.org/2002/12/cal/prod_apple#' ><Vcalendar rdf:about=''> <calscale>GREGORIAN</calscale> <prodid>-//Apple Computer\, Inc//iCal 1.0//EN</prodid> <x:wrTimezone>US/Eastern</x:wrTimezone> <version>2.0</version> </Vcalendar> <Vevent> <sequence>3</sequence> <dtstamp>2002-12-19T20:53:57Z</dtstamp> <summary>icalendaring #rdfig meeting</summary> <dtend rdf:parseType='Resource'> <dateTime>2003-01-08T14:00:00</dateTime> <tzid>US/Eastern</tzid> </dtend> <dtstart rdf:parseType='Resource'> <dateTime>2003-01-08T13:00:00</dateTime> <tzid>US/Eastern</tzid> </dtstart> <uid>CDC474D4-1393-11D7-9A2C-000393914268</uid> </Vevent> </rdf:RDF> [you may get the occasional 403 error when surfing around 2002/12/cal/* ; the auto-public-chacl request was queued, but it hasn't been serviced yet.] Some design choices I'd like confirmation on... maybe these belong in the schema or in some other documentation... capitalization: RFC2445 specifies case insensitivity for the .ics equivalent of these class and property names, so it seems best to normalize. TimBL and I agreed that camelCase, the RDF convention, is the way to go. Hyphens in the .ics syntax are treated as word boundaries. Class names get initial caps. prodid: I really wanted to turn this into a URI to use as the namespace name for x- names, but due to look-ahead issues, I use a command-line arg for the x: namespace name. apple's extensions: I chose the name http://www.w3.org/2002/12/cal/prod_apple for a namespace for apple's extensions. I haven't fixed the 404 there yet. calscale: previously, I treated GREGORIAN as a symbol (i.e. a URI) rather than a string. I backed that out because I don't think calscale is worth bothering with. I've never seen anything other than GREGORIAN, and the semantics of anything else isn't even specified by RFC 2445. datatypes: I'm mostly using lexical forms... the value type for sequence is integer, but I didn't put rdf:datatype="...integer" there; I just treated it as a numeral. I'm turning ical value types in to interpretation properties (http://www.w3.org/DesignIssues/InterpretationProperties) in the case of dtstart and dtend, since the timezone stuff prevents those from being plain strings. ical2rdf.pl knows explicitly about ical value types; it converts dates from YYYYMMDD to YYYY-MM-DD. Stuff still todo: * more data: my evolution calendar * more data: timezone files In the process of doing the YYYY-MM-DD conversion, I'm sure the code regressed w.r.t. the swap/pim version of ical2rdf. So I more testing is needed to rcover the lost ground. * converting back from .rdf to .ics, checking the round-trip * export the information in the %ValueType array in the code into the ical.rdf schema Not to mention how-to style write up and such, which I count on other folks to do. -- Dan Connolly, W3C http://www.w3.org/People/Connolly/
Received on Friday, 20 December 2002 02:18:32 UTC