Re: [VCARDDAV] LANGUAGE parameter vs. cardinality and PIDs

Cyrus Daboo <cyrus@daboo.name> Wed, 07 April 2010 12:41 UTC

Return-Path: <cyrus@daboo.name>
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 5C7633A6900 for <vcarddav@core3.amsl.com>; Wed, 7 Apr 2010 05:41:15 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.001
X-Spam-Level:
X-Spam-Status: No, score=0.001 tagged_above=-999 required=5 tests=[BAYES_50=0.001]
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 YppT4GDyWEBA for <vcarddav@core3.amsl.com>; Wed, 7 Apr 2010 05:41:14 -0700 (PDT)
Received: from daboo.name (daboo.name [151.201.22.177]) by core3.amsl.com (Postfix) with ESMTP id AB6093A6892 for <vcarddav@ietf.org>; Wed, 7 Apr 2010 05:41:12 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by daboo.name (Postfix) with ESMTP id EA42814197830; Wed, 7 Apr 2010 08:41:09 -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 vmyP8MGtFYDx; Wed, 7 Apr 2010 08:41:09 -0400 (EDT)
Received: from [10.0.1.6] (unknown [10.0.1.1]) by daboo.name (Postfix) with ESMTPSA id ECEED14197825; Wed, 7 Apr 2010 08:41:08 -0400 (EDT)
Date: Wed, 07 Apr 2010 08:41:07 -0400
From: Cyrus Daboo <cyrus@daboo.name>
To: Simon Perreault <simon.perreault@viagenie.ca>, Javier Godoy <rjgodoy@fich.unl.edu.ar>
Message-ID: <8989BD112D9135A1A1C1658C@socrates.local>
In-Reply-To: <4BBC7383.3030404@viagenie.ca>
References: <4BBB2EE0.6040202@viagenie.ca> <2DDEFC9394064E53BD759285A555AE71@Javier2> <4BBC7383.3030404@viagenie.ca>
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="3009"
Cc: vcarddav@ietf.org
Subject: Re: [VCARDDAV] LANGUAGE parameter vs. cardinality and PIDs
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: Wed, 07 Apr 2010 12:41:15 -0000

Hi Simon,

--On April 7, 2010 7:58:59 AM -0400 Simon Perreault 
<simon.perreault@viagenie.ca> wrote:

>> If #1 is applied, we also need a new value for the RELATED type, such as
>> "translation" or "self", for linking vCards instances describing the
>> same individual in diferent languages.
>>
>> RELATED;TYPE=self:http://example.com/directory/en/jdoe.vcf
>> RELATED;TYPE=self:http://example.com/directory/fr/jdoe.vcf
>> RELATED;TYPE=self:http://example.com/directory/en/jdoe.vcf
>
> I think that's a good idea.
>
>> Note that clients won't know which vCard is in which language, before
>> retrieving the instance (we might add a language-param for this case)
>
> With CardDAV we can retrieve only the LANGUAGE property for all the
> related vCards in a single REPORT query with addressbook-multiget. So I
> don't see this as a problem. (And not repeating data could be considered
> desirable.)

One big question is what would the UID values be for all the "alternative" 
cards? Are they all the same or different. If they are the same that would 
pose a big problem for CardDAV as that requires the UID values to be unique 
within an address book collection. But the definition of UID in the draft 
implies that it is unique to "the individual or resource associated with 
the vCard" - which would suggest that the alternatives all have the same 
UID.

So the idea of "alternative" vCards for language is problematic.

In iCalendar we have been thinking about how to handle multiple languages 
(the event publishing folks are very keen to present multi-lingual event 
information). One option we have in iCalendar is to create new 
"sub-components" for the language variants, e.g.:

BEGIN:VEVENT
...
SUMMARY:English
...
BEGIN:LOCALE
LANGUAGE:fr_FR
SUMMARY: Francais
...
END:LOCALE
BEGIN:LOCALE
LANGUAGE:de_DE
SUMMARY:Deutsch
...
END:LOCALE
END:VEVENT

Clients that were aware of the new components could use the properties in 
their locale-specific one to "override" the values in the "base" component. 
Clients unaware would just fall back to using the "base" values. There are 
lots of issues that would have to be worked out with this approach, but it 
is convenient in that the entire event and all localizations are contained 
in one component.

Unfortunately, in vCard we don't (currently) have the concept of a 
sub-component that would allow us to easily do something like this.

At the end of the day I think we need to find a way to make the current 
LANGUAGE parameter work. If that means stating up front that the 
"cardinality" of properties can be "overridden" by LANGUAGE alternatives, I 
think that is fine.

However, one issue with the current scheme is dealing with items with 
cardinality > 1. For example I could today have multiple ORG properties 
with different LANGUAGE parameters. Does that mean they are alternatives, 
or separate? To resolve that ambiguity there would need to be a unique 
identifier on properties that would be the same on LANGUAGE alternatives.

-- 
Cyrus Daboo