Re: Status of the CALSCH working group (fwd)

A long message (from ietf-calendar@imc.org), but an interesting one I
think. There has been a lot of discussion recently on this IETF calsch
working group list about future directions for iCalendar, CAP
and related docuements. I've edited out the emails in the subject for
spam reducing purposes, but the list is online (though not easily
searchable):

http://www.ietf.org/html.charters/calsch-charter.html
http://www.imc.org/ietf-calendar/mail-archive/

cheers

Libby


---------- Forwarded message ----------
Date: Fri, 7 Nov 2003 11:48:18 -0500
From: Nathaniel Borenstein
Subject: Re: Status of the CALSCH working group

On Tuesday, November 4, 2003, at 07:06  PM, Satya Vempati wrote:

> Would it be possible to get someone like Nathaniel Borenstein to take
> the role of a co-editor (if he is interested)? It would help to have a
> seasoned veteran of the IETF process to help move things forward.

Well, I guess this is my clue to stop lurking....  so I'll apologize in
advance for the length of this message.

As many of you know, I have been coming up to speed on the CALSCH
working group for several months now, and have expressed a willingness
to try to help.  However, in the spirit of the Hippocratic oath --
"First, do no harm" -- I have been slow to volunteer for a particular
role, but I am definitely ready to do so now.  However, I'd like to
take a step back and point out where we are in the larger picture and
where we need to go.

The current debates all center around one particular document, the CAP
document, which Doug is struggling manfully to complete.  Completing
the CAP draft would be a great thing, but let's not kid ourselves about
where it leaves us:  the absolute best thing that can result from the
current efforts is the publication of an RFC that *might* be approved
as a Proposed Standard, thereby catching up to most of the rest of the
calendaring-related documents, none of which, I believe, have gotten
past that "first step" in the standardizations process.

There's still a long, long way to go, and I know that many of you are
rather discouraged, given how long this project has been under way.
Standards take a long time, and progress in calendaring and scheduling
at the IETF has been particularly tortuous.  I know that some good
people have simply burnt out along the way, and I'm not (deliberately)
volunteering to be the next one.  I don't want to jump in without a
path and plan to success, so I'm going to be a tad brutal in the next
paragraph, though I intend no offense or disrespect to anyone who has
been working on this challenging process.

It is my opinion that ALL of the CALSCH documents -- not just CAP --
need a lot of work.  A successful standard needs to be completely free
of ambiguity.  You don't get there simply by tending to the most
urgently yelled-about issues, you get there by comprehensively looking
for ambiguities and using extremely clear, consistent, and conscious
language for all of the specifications, especially with regard to the
MUST/SHOULD/MAY kinds of language and the existence of a complete
authoritative ABNF grammar of which the text is really only an
elucidation.

If I'm right, getting CAP out the door could be a pyrrhic victory.  If
it were up to me -- and I've been nominated to join the IAB, for
whatever that's worth -- I don't think I could support advancing CAP to
proposed standard as it stands, but I'm notoriously picky and wouldn't
have supported moving several of the other documents to that stage,
either, had I been involved at the time.  I want a lot more clarity and
a lot less ambiguity, or we're going to start having proposed standards
with incompatible implementations.  In any event, even if my
requirements are too demanding for "Proposed" status, I predict that my
concerns will be major problems later in moving the documents to Draft
and Full standard status.  (For reference, it took us a long time to
get MIME to Proposed status, but the process was *relatively* painless
and mechanical from then on because there really weren't that many
ambiguities left.)

Given this perspective, there's an argument to be made that the logical
thing to do is to "finish" the CAP document (for some careful
definition of "finish") and then open a whole new round of revisions to
the CALSCH documents, including CAP.  I would be willing to serve as a
document editor for such a round of revisions.  But in the meantime, we
have to either put CAP to bed or put it on hold for a whole new round.
One of the reasons I've been lurking quietly is that I had hoped to
postpone my more active involvement until CAP was finished, but I now
think that putting our recent discussion in the context of the larger
needs of CALSCH might actually help us figure out how to finish CAP.

To put it in perspective:  The CAP document describes an early stage
protocol with no functionally interoperating implementations (that I
know of).  This means that it WILL have mistakes in it -- there's no
substitute for building interoperable code for fleshing out those
mistakes.  So we don't have to believe that CAP is perfect for us to
sign off on it, because we know that it will simply provide a basis for
further experiments toward the goal of a fully interoperable protocol.
Remembering that perfection is not a requirement should be helpful.
Instead of perfection, I think we should be pursuing a somewhat more
modest goal, which is to identify and correct any deficiencies in the
current CAP spec that can be reasonably anticipated to cause major
headaches for that next round of standardization efforts.  It is my
preference to confine my own comments on CAP to that category of
problems that could significantly complicate the efforts that I am
volunteering to help lead  for the next round of CALSCH document
revisions.

Thus, with that ridiculous amount of prologue -- and with gratitude to
anyone who has read this far -- I now offer my own opinions about what
we need to fix to put this version of CAP to bed.  There are three
things that I regard as *potential* showstoppers, though not difficult
ones to fix:

Versioning:  The CAP-VERSION property as currently defined is simply
not adequate to allow us the possibility of gracefully introducing
incompatible changes in future versions.  As I contemplate an
involvement in such future refinements, I can't imagine a more
"showstopping" problem than this one.  FWIW, I speak from bitter
experience:  for those of you who don't realize it, "MIME-Version" has
an inadequate definition that almost certainly precludes *any* future
values other than 1.0.  I would like to see CAP avoid the same mistake,
as I think the cost would be much greater for CAP than it was for MIME.

CALSCALE -- I would like to either see us add a capability
specification for calendar scales and a special error code for
unsupported calendar scales, or I would like someone to convince me
that the absence of such scales isn't really a problem for future
extensions.  What we have right now tells us that there might be other
calendar scales, but doesn't really tell an implementation how to
behave if it encounters one.

ABNF -- There simply must be a complete ABNF for a standards-track
protocol, in my opinion.  However, I'm also not convinced that
releasing CAP as an Experimental RFC without such an ABNF would in any
way impede CAP's progress in the market.  In fact, publication as an
Experimental RFC might well be the smartest, fastest track for closure
on the current document.  I could support publication as an
experimental RFC if only my first two issues (CAP-VERSION and handling
of unrecognized CALSCALE values) are resolved.

There are a couple of more things I would really like to see cleaned
up, though I can imagine publication (especially as Experimental)
without fixing them:

"SCOPING" -- The issue discussed as "SCOPING" on the list concerns me,
but only as an easily-clarified ambiguity.  It seems that sometimes
when you say "SELECT VALARM"  (or SELECT whatever), you want only the
VALARM (or whatever), and sometimes you want the whole enclosing ical
body, including the time zone, product-id, method, cal-scale, the whole
kit and kaboodle.  I can understand -- barely -- why you might
sometimes NOT want the enclosing stuff, but surely you often do want
it, so either we need to be crystal clear that "everything" (properly
defined) is to be returned, or we need to provide two forms of the
request to get the two kinds of return.

VFREEBUSY -- I'm not sure that I'm up on all the details, but it seems
to me that there are several ambiguities here.  I think that we must be
clear about a requirement that servers MUST provide "currently
accurate" freebusy information in response to an appropriate request.
And I'm definitely confused about why one would want to permit the use
of CREATE to create a VFREEBUSY entry, or why CAP doesn't just use the
ITIP syntax for requesting this information.

Finally, there are a couple of things that I am still confused about
after months on the list.  This doesn't necessarily mean there's a
problem, but it certainly makes me nervous -- at the risk of sounding
arrogant, if I haven't figured it out yet, I'm not optimistic that all
implementors will "figure it out" in a compatible way:

EXPAND and QUERYID -- I am having a hard time understanding how stored
queries can be useful without search wildcards.  Can anyone explain
this to me?

Alarms/SEQUENCE -- I remain confused: Can there be two identical
objects in the same calendar?  If not, we should clearly say so.

Anyway, I apologize for the length of this message and for its
appearance at such a late pre-Minneapolis moment, but since Satya has
honored me with the suggestion that I might be of help, I thought I
should try to lay out my current thinking as clearly as possible.  I
look forward to seeing as many as possible of you in Minneapolis!  --
Nathaniel

Received on Friday, 7 November 2003 13:02:02 UTC