- 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