Re: [VCARDDAV] KIND in draft 15

Tantek Çelik <tantek@cs.stanford.edu> Mon, 20 December 2010 22:09 UTC

Return-Path: <tantek@gmail.com>
X-Original-To: vcarddav@core3.amsl.com
Delivered-To: vcarddav@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 561BF3A68FB for <vcarddav@core3.amsl.com>; Mon, 20 Dec 2010 14:09:06 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.002
X-Spam-Level:
X-Spam-Status: No, score=-2.002 tagged_above=-999 required=5 tests=[AWL=-0.525, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, J_CHICKENPOX_44=0.6, J_CHICKENPOX_45=0.6, MIME_8BIT_HEADER=0.3, RCVD_IN_DNSWL_LOW=-1]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id wmmayRRGm29y for <vcarddav@core3.amsl.com>; Mon, 20 Dec 2010 14:09:05 -0800 (PST)
Received: from mail-gy0-f172.google.com (mail-gy0-f172.google.com [209.85.160.172]) by core3.amsl.com (Postfix) with ESMTP id E1A9A3A68EC for <vcarddav@ietf.org>; Mon, 20 Dec 2010 14:09:04 -0800 (PST)
Received: by gyd12 with SMTP id 12so1513339gyd.31 for <vcarddav@ietf.org>; Mon, 20 Dec 2010 14:10:59 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:mime-version:sender:received :in-reply-to:references:from:date:x-google-sender-auth:message-id :subject:to:cc:content-type:content-transfer-encoding; bh=Uq/hzsiDbMZfrb/PE7JPNsoQH0B9FWZ/3pn+5SgrmpU=; b=tR2oSsjbPaefH1dAULI3jLqnDbNGpeynrevbHgPd/hSz7mHjNtdCq55qucfbOp76q0 8brH53LaxDzfgQ0Qqp5OixKNV+O2hEKiXevp0Oprlj1RKgadH5oSpaUgVBR/QCrn/VOV IBH0PY5owPmi11NlQodIfIr/8YeM41hYo6TPo=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:from:date :x-google-sender-auth:message-id:subject:to:cc:content-type :content-transfer-encoding; b=r9ph44YSjQXotKAMyG2z+T1S88HDRn1emF7K8jqdgq2YMf34ZEYYjFovNOwKdSPVQj hUwSQOnkUTAKCfPz4cdkUvrA6iVKjtKIwLOzAfc8ICwE9cSDdl1f/hMNoOV95fuiRcpM L1kfHOjvrRT5leeBqfjVAIraHrGc0RJlKxECE=
Received: by 10.90.50.4 with SMTP id x4mr6218598agx.90.1292883058752; Mon, 20 Dec 2010 14:10:58 -0800 (PST)
MIME-Version: 1.0
Sender: tantek@gmail.com
Received: by 10.90.220.16 with HTTP; Mon, 20 Dec 2010 14:10:18 -0800 (PST)
In-Reply-To: <4D0FB317.1050004@viagenie.ca>
References: <AANLkTikckYf5A0rUZ6k=JN2UZwp+__bBFHndxbfLcEHK@mail.gmail.com> <4D0B6AC9.1080607@viagenie.ca> <4D0B83AE.4060601@stpeter.im> <AANLkTimA-AuKRoOm6ZRmqSTmOBzHkWCah52ezCJCmvVp@mail.gmail.com> <4D0FA8C9.7080201@viagenie.ca> <AANLkTimM2sAX3_4+Y2sBXuUxbWdRxpJ2bLq5Pq12pGOr@mail.gmail.com> <4D0FB317.1050004@viagenie.ca>
From: Tantek Çelik <tantek@cs.stanford.edu>
Date: Mon, 20 Dec 2010 14:10:18 -0800
X-Google-Sender-Auth: p8elzehYWUUcrHlhvMMmL8KQAp0
Message-ID: <AANLkTim-026NEKwmEwHi6hY2BfTunny11q191+9Wdw+g@mail.gmail.com>
To: Simon Perreault <simon.perreault@viagenie.ca>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Cc: vcarddav@ietf.org
Subject: Re: [VCARDDAV] KIND in draft 15
X-BeenThere: vcarddav@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: IETF vcarddav wg mailing list <vcarddav.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/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: Mon, 20 Dec 2010 22:09:06 -0000

On Mon, Dec 20, 2010 at 11:48, Simon Perreault
<simon.perreault@viagenie.ca> wrote:
> On 2010-12-20 14:16, Tantek Çelik wrote:
>> In my experience those "groups" in such user interfaces, e.g. Apple
>> Address Book, are typically *not* represented as vCard objects
>> themselves, but rather as CATEGORIES on the contacts that are in the
>> groups.
>
> Yes, this is one way that they can be implemented.

This is is how they *are* *interoperably* implemented today.

If you know of any other examples that implement groups differently,
please provide them.

All examples / evidence provided to date shows *one* type of
implementation - group = category on the vcards in the group. Nothing
more.


> But it only allows
> for a group name, nothing more.

Correct.

I just checked Apple Address Book (v5.0.2 on OSX10.6.4) and Gmail
Contacts and both UIs allow for a group name, nothing more.


> Any UA that allows the user to input
> meta-data about a group cannot be implemented with CATEGORIES. And there
> are plenty of such UAs out there.

I claim theoretical.

If there are "plenty of such UAs", please name specific names,
versions, (and preferably URLs). None have been provided so far.



>> No GUI elements - the data point here is the existence of real world
>> *content* (the contacts themselves) that are examples of the data
>> model addition represented by KIND:LIST and KIND:ROBOT.
>
> This highlights some confusion about the "already widely implemented"
> criteria for getting into vCard 4 base.
>
> I originally stated the criteria as "it is needed by a majority of vCard
> implementations". See here:
> http://www.ietf.org/mail-archive/web/vcarddav/current/msg00958.html
> It seemed to make consensus at the time.

I agree with that general principle - thank you for pointing it out -
it will help weed out and simplify the current draft even further.

Bigger question: is there any public documentation by anyone in this
group of existing vCard implementations' features that we can use to
reason about for consideration of new features (or dropping unused
features) ?

If not, I will volunteer to start a wiki page - all this gets lost in email.


> Obviously, current vCard implementations cannot have already implemented
> something that we're planning for vCard 4. But if current
> implementations try to provide a similar feature, either through
> standard or non-standard means, that's enough justification for
> introducing such a feature in base vCard 4.

Agreed. This is reasonable analysis as well.


> The fact that groups are implemented through file-system directories
> with meta-data, or using DAV meta-data, or through CATEGORIES, or even
> in ways that do not involve vCard at all, is enough justification in my
> mind for us to say "this feature is needed by a majority of vCard
> implementations needs to be in the vCard 4 core spec".

Possibly. In this case it may have just been that developers decided
that "groups" merely provide an easier to understand user interface
model on top of the data model of "categories".

I think we can use a bit of Occam's razor here - the simplest
explanation is one that doesn't require any additional features, and
thus that's what we should take.


> However, I don't know of any UA that implements a feature similar to
> KIND:LIST or KIND:ROBOT.

Agreed.

> That's not to say that current UAs cannot
> *store* such addresses, but I don't know of any that lets me flag them
> as such (e.g. by toggling a checkbox).

Agreed. On the contrary, Apple Address Book does have a [ ] Company checkbox.
Per the same reasoning, note that it DOES NOT have a [ ] Group checkbox.


> Obviously that currently wouldn't
> be implemented with the KIND property since it doesn't exist yet, but I
> would be looking for an implementation using non-standard properties or
> whatever else. I don't know of any such implementation.

Neither do I. Hence I agree that these belong in a possible
*extension*, not in the core.



On Mon, Dec 20, 2010 at 12:47, Helge Hess <helge.hess@opengroupware.org> wrote:
> On Dec 20, 2010, at 11:16 AM, Tantek Çelik wrote:
>> In my experience those "groups" in such user interfaces, e.g. Apple
>> Address Book, are typically *not* represented as vCard objects
>> themselves, but rather as CATEGORIES on the contacts that are in the
>> groups.
>
> In the case of Apple AB the groups ARE represented as vCard objects. (and also added to CATEGORIES as a secondary).

This is false (as far as can be proven/demonstrated from the user
interface, which is all that we can reasonably argue about).

I just used Apple Address Book (v5.0.2 on OSX10.6.4) to create a new
group, two new contacts, add the contacts to the group, and then
export the group as VCF.

The result was a VCF with the two contacts, with category of the group name.

Nothing more.

No vCard objects representing the groups.


In short:

Both the concrete implementations discussed in this thread so far:
* Apple Address Book
* Google Contacts

agree 100% on how Groups work, and that they only:
* specify group name
* affect the contacts in the group by adding to the CATEGORIES
property of each of the included contacts the name of the group.

And that's it.

None of them have:
* an X-KIND property
* vCard objects in VCF export that represent the groups themselves.


If anything, this evidence points to a suggestion to add informative
language to the draft stating if your vCard application has a notion
of groups, that it should use CATEGORIES on individual vCard objects
to indicate which groups they are in, since that is established
current *interoperable* practice.

Let's document what is already interoperably implemented, instead of
creating a new duplicate mechanism.

Tantek

-- 
http://tantek.com/ - I made an HTML5 tutorial! http://tantek.com/html5