Re: [calsify] I-D Action: draft-ietf-calext-jscalendar-26.txt

Michael Douglass <mikeadouglass@gmail.com> Sun, 05 April 2020 04:31 UTC

Return-Path: <mikeadouglass@gmail.com>
X-Original-To: calsify@ietfa.amsl.com
Delivered-To: calsify@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 877DA3A1392 for <calsify@ietfa.amsl.com>; Sat, 4 Apr 2020 21:31:52 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.087
X-Spam-Level:
X-Spam-Status: No, score=-2.087 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_FILL_THIS_FORM_SHORT=0.01, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id v2S8n8KjKG6D for <calsify@ietfa.amsl.com>; Sat, 4 Apr 2020 21:31:50 -0700 (PDT)
Received: from mail-qv1-xf35.google.com (mail-qv1-xf35.google.com [IPv6:2607:f8b0:4864:20::f35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D05233A1391 for <calsify@ietf.org>; Sat, 4 Apr 2020 21:31:49 -0700 (PDT)
Received: by mail-qv1-xf35.google.com with SMTP id t4so5805802qvz.8 for <calsify@ietf.org>; Sat, 04 Apr 2020 21:31:49 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:from:to:references:message-id:date:user-agent:mime-version :in-reply-to:content-language; bh=gP8bFzG7dvc4WihoNb58QThWIMALPiOEv9jtBt+U4OE=; b=DC/1wt8oJTNcHK5JuNirWafbfXuX9SGPbd90gWBmLGCb+Yc6GG81kWo3a6WzYpw/fG TTREaSurfEZlbIfdr45tKbgwiYsqf3e3rlD+8afJCT2VjGHySBOOeTB+oErpNWaI9Vxm GXyEYmbM2XnOB7GEAxKTAcmj5UJWcebg2oDCD54CBEYDaLOeCm042NXd3qNcaYq08Rdt PWfP8Aa02UB8OH4pMXmS6CLjlbfJ1CZQ5FlcqScGgoKQFWvih5rqjmSsOONPDj7uFnMB 1zXBrIeUi8q0alv27YUN+B/f6F/PnsdaxY5tswBKyeM9HTt8Ml4iqB8sWy46wQ0Xs5m4 7eSQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:from:to:references:message-id:date :user-agent:mime-version:in-reply-to:content-language; bh=gP8bFzG7dvc4WihoNb58QThWIMALPiOEv9jtBt+U4OE=; b=ZqcwZmyS1mANHp6kJGJBxrJKh7eJetnB5pG7g4qwsOLCuWagqNjIumz6EMITCfr4CG sYd6bASxyJh+KI/O3OzVv5hnw0VR4QtjHpdthmbhvpm+0n9GnEFq2THBjVyGQb7zYREq MKQt21xYMYm+jmLG8ulTe/RWeFfPntAxHDEyKWWFdSxrSV+QZObFDydW3QZQfoRzUeaO OkPlqKPB2lU97LKzZZqPukutayHGRd6qW6TWZNq7yKN9esUXy6FUaSQp/1hvyK3okyqE OfFenwLAZTUMEWjg5D5K/cQFqbQSUhfqVQq7YzNidr4uCYhIFGY4Zq8qih1ACJa71B5t s1Uw==
X-Gm-Message-State: AGi0PuavorIOdGeOBn0UyOvwQfNrN/WzvfryNQ8iNqJdhBINCWesH0qa F3SU/J11Y0eLcXcEurXAuaZPaLZ+T8g=
X-Google-Smtp-Source: APiQypJ9UBTJLGwsDRMxGaINpquXLskpT3UqUFpBv73xUhd4WsdDNCnMMeV22bzMx354B4CA7yU/Bg==
X-Received: by 2002:a0c:9162:: with SMTP id q89mr14873849qvq.225.1586061108512; Sat, 04 Apr 2020 21:31:48 -0700 (PDT)
Received: from MBP-2019.nycap.rr.com (cpe-74-70-80-66.nycap.res.rr.com. [74.70.80.66]) by smtp.googlemail.com with ESMTPSA id l7sm10856019qkb.47.2020.04.04.21.31.47 for <calsify@ietf.org> (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 04 Apr 2020 21:31:47 -0700 (PDT)
From: Michael Douglass <mikeadouglass@gmail.com>
To: calsify@ietf.org
References: <158363619759.25642.15164071767646081255@ietfa.amsl.com> <ac23c153-f999-4743-b1c8-954c51bdbf9d@gmail.com> <89e9d6f2-9632-6c17-adfc-0a1977f15fcc@gmail.com> <5db6d2e1-8512-5f32-94d0-6f7057481a3d@gmail.com>
Message-ID: <a1a0c0be-3ab4-c32b-342f-7f56d02e6e35@gmail.com>
Date: Sun, 05 Apr 2020 00:31:47 -0400
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:68.0) Gecko/20100101 Thunderbird/68.6.0
MIME-Version: 1.0
In-Reply-To: <5db6d2e1-8512-5f32-94d0-6f7057481a3d@gmail.com>
Content-Type: multipart/alternative; boundary="------------1ED123738E348E259C620186"
Content-Language: en-US
Archived-At: <https://mailarchive.ietf.org/arch/msg/calsify/8_drsr7BoXWti5U05vwJOy_CjCo>
Subject: Re: [calsify] I-D Action: draft-ietf-calext-jscalendar-26.txt
X-BeenThere: calsify@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: <calsify.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/calsify>, <mailto:calsify-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/calsify/>
List-Post: <mailto:calsify@ietf.org>
List-Help: <mailto:calsify-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/calsify>, <mailto:calsify-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 05 Apr 2020 04:31:53 -0000

Date time issues.

The definition of the SUBSECOND parameter needs to be in the jscalendar 
spec. I'm not sure about the statement:

  SUBSECOND MUST NOT be used in date-
       time calculations or comparisons in  iCalendar.

The smart grid people were asking about having subseconds some time ago 
so the use of this parameter goes beyond just mapping. Also what about 
fractional values > 0.5? Really we should round to nearest? Would it be 
better to have e.g. a FRACTIONAL parameter with the whole date-time and 
allow the value to be the rounded value.?

On 4/3/20 18:55, Michael Douglass wrote:
>
>
> On 4/3/20 17:29, Michael Douglass wrote:
>>
>> Further comments below
>>
>> On 4/2/20 19:06, Michael Douglass wrote:
>>>
>>> I have to apologize for the lateness of these issues I want to raise 
>>> but I've started implementing the mapping of icalendar to JSCalendar 
>>> and I'm already running into some problems.
>>>
>>> I've only looked at a few properties so far.
>>>
>>> In general - while I initially thought an informational spec would 
>>> be fine for describing the mappings - I'm now of the opinion it has 
>>> to be mandated where possible. Otherwise we're going to have a whole 
>>> mess of incompatible implementations.
>>>
>>> Privacy <-> CLASS
>>>
>>> The first was the use of "secret" instead of "confidential" for the 
>>> privacy property. The result is that a simple conversion to 
>>> lowercase for jscalendar isn't sufficient. I know neither authors 
>>> want to change at this late stage but I mention it (again) because 
>>> this will be a perpetual annoyance.
>>>
>>> link <->ATTACH, IMAGE, URL
>>>
>>> ATTACH and IMAGE seem fine (reltype of enclosure and icon resp.) but 
>>> URL doesn't.
>>>
>>> The description of rel has this:
>>>
>>>    Links with a rel of "describedby" SHOULD be considered by the
>>>        client to be an alternative representation of the description.
>>>
>>> Is that supposed to be the same as URL - it doesn't match the 
>>> description for URL in 5545?
>>>
>>> I think the spec needs to explicitly state that URL MUST be 
>>> represented by a link with a given rel - I'd suggest "alternate" 
>>> because that seems closer to what is intended in 5545.
>>>
>>>
>>> comments <-> COMMENT
>>>
>>> comments is only specified for timezone rules. It needs to be valid 
>>> for all or some indication of how to handle them needs to be provided.
>>>
>>> There is an issue in 5545 with COMMENT in scheduling e.g. is a 
>>> comment meant only for the organizer? That could be tightened up.
>>>
>> CONTACT
>>
>> There's no mapping suggested. CONTACT is vital for event publication. 
>> I'd suggest following the approach in eventpub - add a 
>> participantType property to participant
>>
> Having looked again I thought this could probably be handled just by 
> changing the wording for participant as I suggested and extending the 
> roles values. However I think that's conceptually more complicated,
>
> "participantTypes": {"attendee": true}
>
> "roles": {"optional": true}
>
> is easier to understand than
>
> "participantTypes": {"optional": true}
>
> implying this is an optional attendee.
>
> Changing role "attendee" to "required" or "expected" might make sense
>
>> participantTypes: "String[Boolean]" (mandatory)
>>
>> Defines the type of participation in
>> events or tasks.  Participants can be individuals or
>> organizations, for example attendees, a soccer team, the spectators, or the
>> musicians.
>>        At least one type MUST be specified for the participant.  The keys
>>        in the set MUST be one of the following values, a value registered
>>        in the IANA JSCalendar Enum Registry, or a vendor-specific value:
>>
>>        *  "attendee": A participant attending a meeting.
>>
>>        *  "active": A participant taking an active role - for example a team
>>           member.
>>
>>        * "inactive":  A participant taking an inactive part - for example an
>>        audience member.
>>
>>        * "sponsor":  A sponsor of the event.  The order property may be used
>>          with this participant type to define the relative order of
>>          multiple sponsors.
>>
>>        * "contact":  Contact information for the event.  The order property may
>>          be used with this participant type to define the relative order of
>>          multiple contacts.
>>
>>
>>        * "booking-contact":  Contact information for reservations or payment
>>
>>        * "emergency-contact":  Contact in case of emergency
>>
>>        * "publicity-contact":  Contact for publicity
>>
>>        * "planner-contact:  Contact for the event planner or organizer
>>
>>        * "performer":  A performer - for example the soloist or the accompanist.
>>        The order property may be used with this participant type to
>>        define the relative order of multiple performers.  For example,
>>        "order": 1 could define the principal performer or soloist.
>>
>>        * "speaker":  Speaker at an event
>>
>> Change the participant description:
>> ...
>>     If this property is set with a participant type of "attendee", then the "replyTo" property of this calendar
>>     object MUST define at least one reply method.
>> ...
>>     o  roles: "String[Boolean]" (mandatory for participantType = "attendee")
>
>
> I've got another question on mapping:
>
> In your mapping draft you say:
>
> An iCalendar ORGANIZER maps to both the replyTo property and a
>     participant with role "owner".  If an ATTENDEE with the same CAL-
>     ADDRESS value exists, then it maps to the same participant as the
>     ORGANIZER participant.
>
> What if the attendee and organizer have different SENT-BY parameters? 
> And what is SENT-BY mapped to?
>
> I think the 2 ought to be kept separate.
>
>>   
>>>
>>> GEO, PERCENT-COMPLETE
>>>
>>> What are we supposed to do with these?
>>>
>>> updated <-> DTSTAMP, LAST-MODIFIED
>>>
>>> I don't understand why 5545 has 2 values - however I think we need a 
>>> better statement of how to map 2 values on to 1 - something about 
>>> the later of the 2?
>>>
>>> More to follow...
>>>
>>>
>>> On 3/7/20 21:56, internet-drafts@ietf.org wrote:
>>>> A New Internet-Draft is available from the on-line Internet-Drafts directories.
>>>> This draft is a work item of the Calendaring Extensions WG of the IETF.
>>>>
>>>>          Title           : JSCalendar: A JSON representation of calendar data
>>>>          Authors         : Neil Jenkins
>>>>                            Robert Stepanek
>>>> 	Filename        : draft-ietf-calext-jscalendar-26.txt
>>>> 	Pages           : 77
>>>> 	Date            : 2020-03-07
>>>>
>>>> Abstract:
>>>>     This specification defines a data model and JSON representation of
>>>>     calendar data that can be used for storage and data exchange in a
>>>>     calendaring and scheduling environment.  It aims to be an alternative
>>>>     and, over time, successor to the widely deployed iCalendar data
>>>>     format, and to be unambiguous, extendable, and simple to process.  In
>>>>     contrast to the jCal format, which is also JSON-based, JSCalendar is
>>>>     not a direct mapping from iCalendar, but defines the data model
>>>>     independently and expands semantics where appropriate.
>>>>
>>>>
>>>> The IETF datatracker status page for this draft is:
>>>> https://datatracker.ietf.org/doc/draft-ietf-calext-jscalendar/
>>>>
>>>> There are also htmlized versions available at:
>>>> https://tools.ietf.org/html/draft-ietf-calext-jscalendar-26
>>>> https://datatracker.ietf.org/doc/html/draft-ietf-calext-jscalendar-26
>>>>
>>>> A diff from the previous version is available at:
>>>> https://www.ietf.org/rfcdiff?url2=draft-ietf-calext-jscalendar-26
>>>>
>>>>
>>>> Please note that it may take a couple of minutes from the time of submission
>>>> until the htmlized version and diff are available at tools.ietf.org.
>>>>
>>>> Internet-Drafts are also available by anonymous FTP at:
>>>> ftp://ftp.ietf.org/internet-drafts/
>>>>
>>>>
>>>> _______________________________________________
>>>> calsify mailing list
>>>> calsify@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/calsify