Subject: [drinks] Internationalization - proposed text

From: Alexander Mayrhofer <[email-masked]>
Date: Wed, 18 Jan 2012 15:58:19 +0100

We had a thread on internationalization issues a few weeks ago, and i've
finally found time to draft some text. The basic assumptions are in this
message:

http://www.ietf.org/mail-archive/web/drinks/current/msg01070.html

Regarding case sensitivity, we later agreed that we wanted identifiers
to be case insensitive. We also talked about two different "classes" of
elements, and agreed that "non-identifiers" would simply be considered
"blobs" in eg. comparison operations.

The more important class of elements would of course be "identifiers"
(elements used to address objects, or to establish links between
objects). Looking at our data model and identifier definitions, those
would be: 

rant
rar
dgName
rrName
rgName
egrRteName

Which, in turn, are based on either the "OrgIdType" or "ObjNameType".
Therefore, in order to get proper normalization/comparison/i18n rules
into our definitions, i would propose the following text (draft!):

----- snip ----

Internationalization
------------------------

The protocol contains two types of elements. The first type, called
"blobs" for the purpose of this document, contains data that is moved by
means of that protocol, but is neither used to identifier objects, or to
refer between objects. The other type is called "identifier", and is
either used to address an object, or to refer between objects.

The following elements are "Identifiers":

  * rant
  * rar
  * dgName
  * rrName
  * rgName
  * egrRteName

All other elements contained in the protocol fall under the "blobs"
category. For "identifiers", the following rules apply:

  * Identifiers are case insensitive, and MUST use Unicode Normalization
Form C (NFC) in comparison and mapping operations
..* Characters allowed in Identifierst MUST consist of Characters
exclusively from those character classes: TODO
  * The Registry MUST store such identifiers in their lower case
mapping, and MUST correctly map upper case representations of that
identifier to their lower case equivalent in comparison operations.
..* Clients SHOULD lowercase such identifiers before sending them to the
Registry

If "blob" type elements are ever to be compared, byte-wise comparison
MUST be used.

----- end of proposed text ----

Is this a basis to work from? I haven't yet identified the right
"position" for this text to be added - any suggestions?

Alex