
From alexanderm@sbg.nic.at  Tue Dec 11 14:31:09 2012
Return-Path: <alexanderm@sbg.nic.at>
X-Original-To: drinks@ietfa.amsl.com
Delivered-To: drinks@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9BC2F1F0CB1 for <drinks@ietfa.amsl.com>; Tue, 11 Dec 2012 14:31:09 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -9.429
X-Spam-Level: 
X-Spam-Status: No, score=-9.429 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HELO_EQ_AT=0.424, HOST_EQ_AT=0.745, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-8]
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 RvUJsTjG1RA4 for <drinks@ietfa.amsl.com>; Tue, 11 Dec 2012 14:31:07 -0800 (PST)
Received: from mail.sbg.nic.at (mail.sbg.nic.at [83.136.33.227]) by ietfa.amsl.com (Postfix) with ESMTP id CDFE01F0CAF for <drinks@ietf.org>; Tue, 11 Dec 2012 14:31:06 -0800 (PST)
Received: from nics-exch.sbg.nic.at ([10.17.175.3]) by mail.sbg.nic.at over TLS secured channel (TLSv1:AES128-SHA:128) with XWall v3.48 ; Tue, 11 Dec 2012 23:31:04 +0100
Received: from NICS-EXCH.sbg.nic.at ([fe80::486:1ecc:eabc:531e]) by NICS-EXCH.sbg.nic.at ([fe80::486:1ecc:eabc:531e%12]) with mapi id 14.02.0247.003; Tue, 11 Dec 2012 23:30:51 +0100
From: Alexander Mayrhofer <alexanderm@sbg.nic.at>
To: "drinks@ietf.org" <drinks@ietf.org>
Thread-Topic: Finishing the documents... (ad "case insensitivity")
Thread-Index: Ac3X7FWHF3jg3apnRpm7fJEo1Uvoxw==
Date: Tue, 11 Dec 2012 22:30:51 +0000
Message-ID: <19F54F2956911544A32543B8A9BDE07509737039@NICS-EXCH.sbg.nic.at>
Accept-Language: de-DE, en-US
Content-Language: de-DE
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [192.168.3.91]
Content-Type: multipart/alternative; boundary="_000_19F54F2956911544A32543B8A9BDE07509737039NICSEXCHsbgnica_"
MIME-Version: 1.0
X-XWALL-BCKS: auto
X-Mailman-Approved-At: Tue, 11 Dec 2012 14:47:03 -0800
Subject: [drinks] Finishing the documents... (ad "case insensitivity")
X-BeenThere: drinks@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: IETF DRINKS WG <drinks.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/drinks>, <mailto:drinks-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/drinks>
List-Post: <mailto:drinks@ietf.org>
List-Help: <mailto:drinks-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/drinks>, <mailto:drinks-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 11 Dec 2012 22:32:21 -0000

--_000_19F54F2956911544A32543B8A9BDE07509737039NICSEXCHsbgnica_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

All,

both our two remaining documents have completed WGLC since quite some time,=
 and the design team has addressed comments that came in during WGLC in the=
 last revisions of the document.

The only open issue as far as i'm aware is around the case-sensitivity of O=
bject Key Types (Section 5.2). The original text in -02 of the framework dr=
aft was:

   "Name" attributes that are used as components of object key types
   MUST be treated case insensitive.

One of the comments received during WGLC (by Andrew Sullivan) was that this=
 would need lots more detail in order to specify what "case insensitive" ac=
tually means. I took the ticket to come up with more precise text in order =
to address this comment, and researched the Unicode standard. My proposal t=
hat went into -03 of the document looked like this:


   "Name" attributes that are used as components of object key types

   MUST be treated case insensitive, more specifically, comparison

   operations MUST use the toNFKC_Casefold() function, as specified in

   Section 3.13<http://tools.ietf.org/html/draft-ietf-drinks-spp-framework-=
03#section-3.13> of [reference to Unicode 6.1]

There were concerns within the design team that particularly the introducti=
on of NFKC operations into the framework could have implications on impleme=
ntations, and it was agreed that this issue would be rehashed after -03 has=
 been posted. Again, my ticket, i've continued to research Unicode document=
s, as well as tried to find out what "case insensitive" actually means in t=
ypical database systems and programming languages. I don't think that rever=
ting to the original "short" text solves the underlying problem. Therefore,=
 my proposal is to drop the NFKC operations part of the requirement above, =
but still stick with a well defined Unicode Operation, namely the Default C=
ase Folding "toCaseFold()". Proposed text is as follows:


   "Name" attributes that are used as components of object key types

   MUST be treated case insensitive, more specifically, comparison

   operations MUST use the Unicode Default Case Folding toCasefold()

   operation, as specified in Section 3.13<http://tools.ietf.org/html/draft=
-ietf-drinks-spp-framework-03#section-3.13> of [reference to Unicode 6.1]

I think that this fulfills the requirement of having a well-defined meaning=
 of "case insensitive", avoids normalization logic which could lead to unex=
pected matching of identifiers. I understand that the  toCaseFold() operati=
on is a very basic Unicode operation, and hence  should be available in alm=
ost any implementation of Unicode. I would appreciate if someone has detail=
ed insight into the implementation details in various languages, and specif=
ically whether/which database systems support such operations (Because of l=
ack of publicly accessible documents about the SQL Standard, i couldn't ver=
ify whether or not SQL LOWER() etc. functions use Unicode operations, or so=
mething different).

Any comments about the proposal above?

Alex


--_000_19F54F2956911544A32543B8A9BDE07509737039NICSEXCHsbgnica_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0cm;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";
	mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
pre
	{mso-style-priority:99;
	mso-style-link:"HTML Vorformatiert Zchn";
	margin:0cm;
	margin-bottom:.0001pt;
	font-size:10.0pt;
	font-family:"Courier New";}
span.E-MailFormatvorlage17
	{mso-style-type:personal-compose;
	font-family:"Calibri","sans-serif";
	color:windowtext;}
span.HTMLVorformatiertZchn
	{mso-style-name:"HTML Vorformatiert Zchn";
	mso-style-priority:99;
	mso-style-link:"HTML Vorformatiert";
	font-family:"Courier New";
	mso-fareast-language:DE-AT;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-family:"Calibri","sans-serif";
	mso-fareast-language:EN-US;}
@page WordSection1
	{size:612.0pt 792.0pt;
	margin:70.85pt 70.85pt 2.0cm 70.85pt;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"DE-AT" link=3D"blue" vlink=3D"purple">
<div class=3D"WordSection1">
<p class=3D"MsoNormal">All,<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">both our two remaining documents have completed WGLC=
 since quite some time, and the design team has addressed comments that cam=
e in during WGLC in the last revisions of the document.<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">The only open issue as far as i&#8217;m aware is aro=
und the case-sensitivity of Object Key Types (Section 5.2). The original te=
xt in -02 of the framework draft was:<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Co=
urier New&quot;;mso-fareast-language:DE-AT">&nbsp;&nbsp; &quot;Name&quot; a=
ttributes that are used as components of object key types<o:p></o:p></span>=
</p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:&quot;Co=
urier New&quot;;mso-fareast-language:DE-AT">&nbsp;&nbsp; MUST be treated ca=
se insensitive.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">One of the comments received during WGLC (by Andrew =
Sullivan) was that this would need lots more detail in order to specify wha=
t &#8222;case insensitive&#8220; actually means. I took the ticket to come =
up with more precise text in order to address
 this comment, and researched the Unicode standard. My proposal that went i=
nto -03 of the document looked like this:<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<pre>&nbsp;&nbsp; &quot;Name&quot; attributes that are used as components o=
f object key types<o:p></o:p></pre>
<pre>&nbsp;&nbsp; MUST be treated case insensitive, more specifically, comp=
arison<o:p></o:p></pre>
<pre>&nbsp;&nbsp; operations MUST use the toNFKC_Casefold() function, as sp=
ecified in<o:p></o:p></pre>
<pre>&nbsp;&nbsp; <a href=3D"http://tools.ietf.org/html/draft-ietf-drinks-s=
pp-framework-03#section-3.13">Section 3.13</a> of [reference to Unicode 6.1=
]<o:p></o:p></pre>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">There were concerns within the design team that part=
icularly the introduction of NFKC operations into the framework could have =
implications on implementations, and it was agreed that this issue would be=
 rehashed after -03 has been posted.
 Again, my ticket, i&#8217;ve continued to research Unicode documents, as w=
ell as tried to find out what &#8222;case insensitive&#8220; actually means=
 in typical database systems and programming languages. I don&#8217;t think=
 that reverting to the original &#8222;short&#8220; text solves the
 underlying problem. Therefore, my proposal is to drop the NFKC operations =
part of the requirement above, but still stick with a well defined Unicode =
Operation, namely the Default Case Folding &#8222;toCaseFold()&#8220;. Prop=
osed text is as follows:<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<pre>&nbsp;&nbsp; &quot;Name&quot; attributes that are used as components o=
f object key types<o:p></o:p></pre>
<pre>&nbsp;&nbsp; MUST be treated case insensitive, more specifically, comp=
arison<o:p></o:p></pre>
<pre>&nbsp;&nbsp; operations MUST use the Unicode Default Case Folding toCa=
sefold() <o:p></o:p></pre>
<pre>&nbsp;&nbsp;&nbsp;operation, as specified in <a href=3D"http://tools.i=
etf.org/html/draft-ietf-drinks-spp-framework-03#section-3.13">Section 3.13<=
/a> of [reference to Unicode 6.1]<o:p></o:p></pre>
<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>
<p class=3D"MsoNormal">I think that this fulfills the requirement of having=
 a well-defined meaning of &#8222;case insensitive&#8220;, avoids normaliza=
tion logic which could lead to unexpected matching of identifiers. I unders=
tand that the &nbsp;toCaseFold() operation is a very
 basic Unicode operation, and hence &nbsp;should be available in almost any=
 implementation of Unicode. I would appreciate if someone has detailed insi=
ght into the implementation details in various languages, and specifically =
whether/which database systems support
 such operations (Because of lack of publicly accessible documents about th=
e SQL Standard, i couldn&#8217;t verify whether or not SQL LOWER() etc. fun=
ctions use Unicode operations, or something different).<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Any comments about the proposal above?<o:p></o:p></p=
>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal">Alex<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
</body>
</html>

--_000_19F54F2956911544A32543B8A9BDE07509737039NICSEXCHsbgnica_--
