Hello,
I am Dan Chiba at Oracle. We are interested in PRECIS as a key
technology for i18n and we have one question that we would like to address.
The question is regarding the way the applications identify a profile
that has variants in character mappings. In particular,
UsernameIdentifierClass can be case insensitive or sensitive, or there
could be various ways to perform character mapping during the
preparation process. Right now, the drafts (links at the bottom of this
message) do not seem to define how to specify particular mappings
applied to the profile. This means that practically the framework
implementations would have to define the identification scheme on their
own, and then applications can suffer from inconsistent results for the
same profile, unless they somehow ensure they get the same expected
behavior consistently from all profile implementations they are
depending on.
In other words, the profile name "UsernameIdentifierClass" alone does
not identify the preparation or comparison rules precisely enough. For
example, let's consider an identity management service specified the
value space for the username to conform to "UsernameIdentifierClass" and
an application that consumes the service and performs preparation using
the "UsernameIdentifierClass" profile against the username requested by
the user when creating a new user account and checks whether the
requested name is available or taken. If the profile implementations
behaved inconsistently, the application would not be able to produce the
desired behavior. Say, one of them is case insensitive and the other is
case sensitive, then the application behavior would be unpredictable
unless the framework provides a mechanism to make the processing result
predictable.
A simple way to address this point may be to allow applications to
identify the complete set of rules with an identifier. If the identifier
is the same, the output string for a given string should be predictable
and consistent, no matter what implementation is used to process the
string. For example, the Unicode default case folding may be commonly
used and a suffix "uf" may be added to indicate it. Then the complete
name may look like "UsernameIdentifierClass;uf". Or let
"UsernameIdentifierClass" imply Unicode default case folding by default.
Collations registered at the IANA Collation Registry use a similar
scheme to identify the rules. They use their names to fully specify the
collation rules. All implementations for any of the registered
collations produce exactly the same results.
May I ask if you folks at the WG considered extending the profile
identification scheme to describe the rules for case mappings? I
understand it is quite late to make any change at this point, but the
users would have to address this question anyway one way or the other,
so I wanted to hear your thoughts on it.
Best regards,
Dan Chiba
Globalization Engineering
Oracle
[framework draft]
http://tools.ietf.org/html/draft-ietf-precis-framework-17
[saslprepbis draft]
http://tools.ietf.org/html/draft-ietf-precis-saslprepbis-07
[mappings draft]
http://tools.ietf.org/html/draft-ietf-precis-mappings-0
[IANA Collation Registry]
http://www.iana.org/assignments/collation/collation.xhtml
_______________________________________________
precis mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/precis