- From: Graham Klyne <GK@ninebynine.org>
- Date: Mon, 09 Dec 2002 17:03:53 +0000
- To: Rahul Singh <kingtiny@cs.cmu.edu>
- Cc: "'www-rdf-calendar'" <www-rdf-calendar@w3.org>
At 02:03 PM 12/5/02 -0500, Rahul Singh wrote: >Hi, > >Here is another example of a recurring schedule that may help you. It's >a class schedule for a graduate course in Robotics held every spring >which I marked up looking at the iCal ontology. > >http://www.daml.ri.cmu.edu/Schedules/test/ai.rdf > >Let me know if there are any errors. Thanks for this. Here are some differences of approach that I observe -- I won't claim they are errors. 1. Use of ical:DATE as a property (on VCALENDAR object); I believe it's declared as a class. 2. Use of ical:REC-VEVENT rather than just ical:VEVENT; I think that's correct. Looking again at the schema, what I do, viz applying ical:RRULE to an ical:VEVENT, isn't sanctioned. [Libby: I think REC-CAL-COMPONENT should be declared as sublcass of CAL-COMPONENT, so that properties like DTSTART, etc., are expected.] 3. DTSTART has an explicit date. Again, I think yours is correct -- I seem to remember thinking that I needed a date for the first occurrence when I read the iCalendar spec. (But, for my application, I'd rather not bother; small matter.) 4. Use of ical:DURATION rather that ical:DTEND -- I think either is OK. Except that I think it should be ical:DURATION-PROP referencing an ical:DURATION object (as your own comment says), itself with some properties that I can't see mentioned in the schema. [Libby: is something missing here?] 5. Within ical:RECUR, you give explicit interval of 1. I understand that's the default value in iCalendar. But I think you're right that the value must be explicitly specified, or RDF semantics are broken. [Libby: I suggest a comment to this effect for any property with a default value in iCalendar. [Explanation. If an RDF graph has: : <ical:FREQ>WEEKLY</ical:FREQ> <ical:INTERVAL>2</ical:INTERVAL> : then by the Interpolation lemma [1] this entails: : <ical:FREQ>WEEKLY</ical:FREQ> : i.e. the same graph without the <ical:INTERVAL> property. If this is understood to mean the same as : <ical:FREQ>WEEKLY</ical:FREQ> <ical:INTERVAL>1</ical:INTERVAL> : then we have an unintended consequence.] 6. You have the object of ical:BYDAY as a bag of literals; I have it as a single literal. Looking at the schema, I think we may both be wrong. The schema says the range of ical:BYDAY is is an ical:TEXT, which is in turn an object with an rdf:value of human-readable text. [Libby: I think this definition of ical:TEXT is problematic. The RDFcore working group are wrestling with the formal semantics of rdf:value, and the best we've come up with so far is that it has none. I really think we need to find another way to code the list of values. An answer might be to declare ical:TEXT as subclass of xsd:string (or rdfs:Literal?), so that properties with that as range take simple literals. This needs checking in light of the final RDFcore decisions, concerning which I may be confused. Another approach would be Rahul's bag-of-literals approach, though I think there's a possible problem there. A bag isn't closed, so: <ical:BYDAY> <rdf:Bag> <rdf:li>TU</rdf:li> <rdf:li>TH</rdf:li> </rdf:Bag> </ical:BYDAY> could formally entail: <ical:BYDAY> <rdf:Bag> <rdf:li>TH</rdf:li> </rdf:Bag> </ical:BYDAY> Which I think is at best confusing, and at worst could be wrong (I'm not sure exactly which). Another approach would be to use a linked-list style of construction (originally introduced as parseType="daml:Collection", but which has now been sanctioned as rdf:parseType="Collection" [2]. Ummm... I don't see how to use that to create a list containing literals. ... to be continued. For now, I'll stick with my textual list of names -- it's arguably not ideal, but I'm not sure where to go.] Apart from these details, I think we're reading it in much the same way as far as the bigger picture goes. #g -- [1] http://www.w3.org/TR/rdf-mt/#entail [2] http://www.w3.org/TR/rdf-syntax-grammar/#section-Syntax-parsetype-Collection > > -----Original Message----- > > From: www-rdf-calendar-request@w3.org > > [mailto:www-rdf-calendar-request@w3.org] On Behalf Of Graham Klyne > > Sent: Thursday, December 05, 2002 1:10 PM > > To: www-rdf-calendar > > Subject: iCalendar recurring schedules > > > > > > > > The story continues... > > > > With some help from Jim Ley [1] I found some samples of RDF > > using this > > schema. As far as I can tell, nobody else has done anything > > with recurring > > events, so here's my attempt for comment. > > > > >I'm also struggling to understand how iCalendar does > > repeated intervals > > >as > > >opposed to repeated instants: all the recurrence examples > > in RFC 2445 [6] > > >seem to deal with repeated instances rather than intervals. > > To capture > > >the example schedule above (7:00-9:00PM every Monday to Friday, and > > >4:00-10:00PM every Saturday and Sunday), does something like > > this work?: > > > > > >BEGIN:VCALENDAR > > >VERSION:2.0 > > >PRODID:http://id.ninebynine.org/wip/2002/timetable > > >BEGIN:VEVENT > > >DTSTART:20021201T190000 > > >DTEND:20021201T210000 > > >RRULE:FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR > > >END:VEVENT > > >BEGIN:VEVENT > > >DTSTART:20021201T160000 > > >DTEND:20021201T220000 > > >RRULE:FREQ=WEEKLY;BYDAY=SA,SU > > >END:VEVENT > > >END:VCALENDAR > > > > Using RDF/N3 to represent the corresponding RDF, I have: > > > > [[ > > @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . > > @prefix > > ical: > > <http://www.ilrt.bris.ac.uk/discovery/2001/06/schemas/ical-ful> > l/hybrid.rdf#> . @prefix icalutil: > > <http://ilrt.org/discovery/2001/06/schemas/ical-util#> . > > #prefix icalutil: > > <http://ilrt.org/discovery/2001/06/schemas/swws/index.rdf#> . > > ###this one?### @prefix homenet: ><http://id.ninebynine.org/wip/2002/homenet/> . > >homenet:AccessTimes a ical:VCALENDAR ; > ical:VEVENT-PROP > [ a ical:VEVENT ; > ical:DTSTART > [ a ical:TIME ; > rdf:value "T190000" ; > icalutil:hour "19" ; > icalutil:minute "00" ] ; > ical:DTEND > [ a ical:TIME ; > rdf:value "T210000" ; > icalutil:hour "21" ; > icalutil:minute "00" ] ; > ical:RRULE > [ a ical:RECUR ; > ical:FREQ "WEEKLY" ; > ical:BYDAY "MO,TU,WE,TH,FR" ] > ] ; > ical:VEVENT-PROP > [ a ical:VEVENT ; > ical:DTSTART > [ a ical:TIME ; > rdf:value "T160000" ; > icalutil:hour "16" ; > icalutil:minute "00" ] ; > ical:DTEND > [ a ical:TIME ; > rdf:value "T220000" ; > icalutil:hour "22" ; > icalutil:minute "00" ] ; > ical:RRULE > [ a ical:RECUR ; > ical:FREQ "WEEKLY" ; > ical:BYDAY "SA,SU" ] > ] ; > rdfs:comment > """ > Designated access times: > weekdays: 19:00-21:00 > weekends: 16:00-22:00 > """ . >]] > >Does this make sense? > >#g >-- > >[1] Foafnaut Predicate search: http://jibbering.com/2002/12/pred.html > > > >------------------- >Graham Klyne ><GK@NineByNine.org> ------------------- Graham Klyne <GK@NineByNine.org>
Received on Monday, 9 December 2002 12:06:04 UTC