Re: [VCARDDAV] a possible customer for the JSON encoding

Cyrus Daboo <cyrus@daboo.name> Tue, 04 September 2012 18:27 UTC

Return-Path: <cyrus@daboo.name>
X-Original-To: vcarddav@ietfa.amsl.com
Delivered-To: vcarddav@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B619121F844F for <vcarddav@ietfa.amsl.com>; Tue, 4 Sep 2012 11:27:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -101.399
X-Spam-Level:
X-Spam-Status: No, score=-101.399 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, J_CHICKENPOX_45=0.6, J_CHICKENPOX_54=0.6, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id W1LjlQAJElfV for <vcarddav@ietfa.amsl.com>; Tue, 4 Sep 2012 11:27:35 -0700 (PDT)
Received: from daboo.name (daboo.name [173.13.55.49]) by ietfa.amsl.com (Postfix) with ESMTP id CAC7721F843E for <vcarddav@ietf.org>; Tue, 4 Sep 2012 11:27:35 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by daboo.name (Postfix) with ESMTP id 4ACF92F3F528; Tue, 4 Sep 2012 14:27:35 -0400 (EDT)
X-Virus-Scanned: amavisd-new at example.com
Received: from daboo.name ([127.0.0.1]) by localhost (daboo.name [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id lIE1joGma1HU; Tue, 4 Sep 2012 14:27:33 -0400 (EDT)
Received: from caldav.corp.apple.com (unknown [17.45.162.46]) by daboo.name (Postfix) with ESMTPSA id CCB422F3F51C; Tue, 4 Sep 2012 14:27:32 -0400 (EDT)
Date: Tue, 04 Sep 2012 14:27:29 -0400
From: Cyrus Daboo <cyrus@daboo.name>
To: Peter Saint-Andre <stpeter@stpeter.im>, vcarddav@ietf.org
Message-ID: <BCA7E2CC87451AC08FEB8D70@caldav.corp.apple.com>
In-Reply-To: <503E4090.5090007@stpeter.im>
References: <503E4090.5090007@stpeter.im>
X-Mailer: Mulberry/4.1.0a3 (Mac OS X)
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"; format="flowed"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline; size="1943"
Subject: Re: [VCARDDAV] a possible customer for the JSON encoding
X-BeenThere: vcarddav@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: IETF vcarddav wg mailing list <vcarddav.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/vcarddav>, <mailto:vcarddav-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/vcarddav>
List-Post: <mailto:vcarddav@ietf.org>
List-Help: <mailto:vcarddav-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/vcarddav>, <mailto:vcarddav-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 04 Sep 2012 18:27:37 -0000

Hi Peter,

--On August 29, 2012 10:17:20 AM -0600 Peter Saint-Andre 
<stpeter@stpeter.im> wrote:

> Folks, there's been some discussion in the SCIM WG recently about data
> models and representation formats for information about users (SCIM is
> a technology for exchanging such information for provisioning purposes
> and the like). It seems possible that the SCIM WG might seriously
> consider vCard4, but they appear to have a strong preference for a
> JSON representation. If they do, the work on draft-bhat-vcarddav-json
> might gain new urgency. In any case, this is just a heads-up for
> people here in case you'd like to engage in the discussion in the SCIM WG:
>
> http://tools.ietf.org/wg/scim/
>
> I'll report further on this list if additional developments of
> interest emerge. :-)

The CalConnect folks have been continuing to discuss iCalendar in JSON. We 
have modified our original approach to end up with a more compact 
representation, that meets our needs for streaming etc. It uses arrays 
rather than objects for the various Component/Property/Value "objects" from 
the underlying iCalendar syntax - i.e., positional parsing of items. Here 
is as example:

["vcalendar",
    [
      ["version", {}, ["text", "2.0"]],
      ["calscale", {}, ["text", "gregorian"]],
      ["prodid", {}, ["text", "-//Example Inc.//Example Calendar//EN"]],
    ],
    [
        ["vevent", [
            ["uid", {}, ["text", "4088E990AD89CB3DBB484909"]],
            ["dtstart", {"tzid":"America/New_York"}, ["date", 
"2008-10-06"]],
            ["dtstamp", {}, ["date-time", "2008-02-05T19:12:24Z"]],
            ["summary", {}, ["text", "Planning meeting"]]
          ],
          [],
       ]
    ]
]

The "object" model is:

Component = array(name, array(Property), array(Component))
Property  = array(name, Parameter, Value)
Parameter = object(name:value, name:value, ...)
Value     = array(type, value1, value2, ....)


-- 
Cyrus Daboo