Re: Last Call: <draft-daboo-et-al-icalendar-in-xml-08.txt> (xCal: The XML format for iCalendar) to Proposed Standard

Cyrus Daboo <cyrus@daboo.name> Thu, 14 April 2011 16:57 UTC

Return-Path: <cyrus@daboo.name>
X-Original-To: ietf@ietfc.amsl.com
Delivered-To: ietf@ietfc.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfc.amsl.com (Postfix) with ESMTP id 7A9FEE08D6 for <ietf@ietfc.amsl.com>; Thu, 14 Apr 2011 09:57:43 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.562
X-Spam-Level:
X-Spam-Status: No, score=-102.562 tagged_above=-999 required=5 tests=[AWL=0.038, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([208.66.40.236]) by localhost (ietfc.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id lctiwH8Xvve0 for <ietf@ietfc.amsl.com>; Thu, 14 Apr 2011 09:57:42 -0700 (PDT)
Received: from daboo.name (daboo.name [151.201.22.177]) by ietfc.amsl.com (Postfix) with ESMTP id 46351E08CA for <ietf@ietf.org>; Thu, 14 Apr 2011 09:57:42 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by daboo.name (Postfix) with ESMTP id BA38C1C73E4EA; Thu, 14 Apr 2011 12:57:41 -0400 (EDT)
X-Virus-Scanned: amavisd-new at daboo.name
Received: from daboo.name ([127.0.0.1]) by localhost (chewy.mulberrymail.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id MMFZ5N43wnPx; Thu, 14 Apr 2011 12:57:41 -0400 (EDT)
Received: from caldav.corp.apple.com (unknown [17.101.32.44]) by daboo.name (Postfix) with ESMTPSA id 6476D1C73E4D3; Thu, 14 Apr 2011 12:57:40 -0400 (EDT)
Date: Thu, 14 Apr 2011 12:57:37 -0400
From: Cyrus Daboo <cyrus@daboo.name>
To: Keith Moore <moore@network-heretics.com>, ietf@ietf.org
Subject: Re: Last Call: <draft-daboo-et-al-icalendar-in-xml-08.txt> (xCal: The XML format for iCalendar) to Proposed Standard
Message-ID: <B692904DADBDAB05491FCF13@caldav.corp.apple.com>
In-Reply-To: <19543_1302796363_p3EFqgUp023831_9514532F-8A12-4A16-BF42-974A048BEB05@network-heretics.com>
References: <20110414152020.12635.714.idtracker@ietfc.amsl.com> <19543_1302796363_p3EFqgUp023831_9514532F-8A12-4A16-BF42-974A048BEB05@network-heretics.com>
X-Mailer: Mulberry/4.1.0a1 (Mac OS X)
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"; format="flowed"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline; size="5485"
X-BeenThere: ietf@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: IETF-Discussion <ietf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ietf>, <mailto:ietf-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ietf>
List-Post: <mailto:ietf@ietf.org>
List-Help: <mailto:ietf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ietf>, <mailto:ietf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 14 Apr 2011 16:57:43 -0000

Hi Keith,

--On April 14, 2011 11:52:37 AM -0400 Keith Moore 
<moore@network-heretics.com> wrote:

> I appreciate that great pains have been taken to ensure that this format
> is a dual of the standard iCalendar format, that translation can be
> performed in both directions without loss, and that at least some attempt
> has been made to specify the conversion algorithms in such a way that (if
> carefully implemented) they should continue to work with extensions to
> iCalendar.

Yes, that has always been a requirement for this mapping.

> I think it's confusing that many elements are referred to using an ICAL:
> prefix, when (a) the xml examples don't actually associate that prefix
> with a namespace, and (b) when iCal is probably a trademark of Apple.

Section 2 explains that the ICAL: prefix is used when elements are referred 
to outside the context of an XML fragment - i.e. in the actual text. As 
regards the possible trademark issue, to remove any possibility of that I 
will change to using IC: instead (hopefully there are not "legal" 
objections to that).

> However (and I think it's been at least 10 years since this was first
> proposed) I still find myself wondering, why is this format needed or
> even useful?    Practically speaking, I think the adoption of this format
> will only increase the burden on implementations and decrease the
> likelihood of interoperability between implementations.  It will increase
> the burden on implementations because now implementations will need to be
> able to accept, and possibly generate, two different calendar data
> formats instead of one.

First of all the real burden in handling iCalendar is not the syntax, it is 
the semantics (dealing with recurrences, timezones etc). In most cases, 
apps that use iCalendar parse the data into their own internal object model 
and deal with it there. Those implementers that have already developed 
iCalendar-in-XML parsers/generators have found it trivial to do and map to 
their internal object models (I have done that, and I am sure others can 
chime in and confirm this too).

Secondly, there is a great push on now to include iCalendar data in various 
web tools and automated systems, where XML is the primary format that is 
used. In particular, OASIS is planning on adopting this specification as a 
key component of smart grid work they are undertaking. The Calendaring and 
Scheduling Consortium has been advising them and helping develop APIs 
(REST, SOAP) etc to enable the kinds of calendar data access and 
manipulation that they need.

> I think that adoption of this format will in practice require that (a)
> any extensions to iCalendar to also explicitly specify how they are
> mapped into xCalendar, and (b) every, or nearly every,
> iCalendar<>xCalendar conversion product to be updated every time there is
> an extension to the iCalendar format.

I disagree that extensions will need to describe anything related to 
iCalendar-in-XML. We have tried very hard to have an automatic mapping. In 
fact I have several iCalendar extension drafts in the works and none of 
them will make reference to iCalendar-in-XML.

> I also suspect that converting the format to XML will encourage ad hoc
> extensions to xCalendar which might not map well to iCalendar - since the
> constraints and extension model of iCalendar will not be obvious to the
> typical XML code developer.

That is a concern. But any changes to the semantics of iCalendar that go on 
the standards track are covered by the IANA registration procedures 
outlined in 5545. As such designated experts get to review those and those 
experts can keep this problem in check (yes I happen to be one of those 
designated experts).

> Use of the "XML" property in iCalendar implies that the conversion
> routine needs to know which properties are "already" defined in
> iCalendar, which either implies that iCalendar cannot be extended, or
> that different converters (knowledgable about different versions of
> iCalendar) will produce different results (some mapping unknown
> properties to the iCalendar XML property, and some mapping them to native
> iCalendar properties).

One of the primary uses for iCalendar-in-XML is to allow it to be easily 
embedded in other XML documents (e.g. business-to-business automated 
transactions that require detailed specification of timing), and to also 
allow "annotation" of the iCalendar data with other XML elements (in a 
different namespace) that may provide references back to the enclosing 
data. The "XML" property is designed to allow round-tripping of XML data in 
other namespaces embedded in the iCalendar-in-XML data.

> Correct conversion from iCalendar to XML appears to require the converter
> to know about the types of each of the properties even though these are
> not explicitly specified in the source iCalendar document.   This is
> problematic if new properties are defined for iCalendar, as old
> converters won't know about the types of those properties.

Hrmm, good point. I will need to think about how the default value type can 
be handled in that case.

> So, in summary, I still don't think this is worth the trouble.
> Regardless of the application, providing multiple ways to represent the
> same information generally seems to degrade interoperability.

I take it that you would consider offering similar comments on the 
vCard-in-XML draft (draft-ietf-vcarddav-vcardxml) which is also in IETF 
last call?

-- 
Cyrus Daboo