Stability of valid IDN labels

Mark Davis mark.davis at
Fri Apr 18 21:55:45 CEST 2008

One thing that I think has people a bit tied up in knots is the way that
stability is being handled in the current drafts. In the drafts, labels with
assigned characters will be either valid forever, invalid forever, or in
limbo (eg valid now but could change to invalid later). The limbo situation
arises when there is a CONTEXT character, because the rules could be
tightened in the future. Labels with UNASSIGNED characters can move into one
of these three classes.

For the vast bulk of characters, there is no problem; the property-based
allocation works fine. But for the very small set of exceptional characters,
there is an issue. Because the "invalid forever" rule is in the drafts, we
get tied up in  figuring out whether this or that very exceptional character
should be moved to CONTEXT or PVALID, because it is set in stone once
IDNA200x comes out. However, I think with a small change to the mechanisms
in the drafts, we can improve the overall stability and avoid having to make
some rash decisions; and this change will improve the stability situation in
the ways that matter.

For us, and many other organizations, the key requirement is the stability
of *valid* labels: once a label is valid, it is valid forever. Stability of
invalid labels is actually not in play anyway; as new characters get
assigned, once-invalid labels become valid, and on a regular basis as ever
more characters are added to Unicode. If, exceptionally, a character
migrates from DISALLOWED to CONTEXT, that really doesn't cause a problem for
software since we *must* be able to handle invalid labels becoming valid,
anyway (because of new assigned characters).

Note: the migration from CONTEXT to PVALID is effectively already allowed in
the drafts; it just means loosening the context rules until they have no

The flip side is that we *really* don't want valid labels to become invalid.
That *does* cause a problem for software, and is worth major efforts to
avoid. Look at all the work we had to do in BCP 47, for example. To fix that
problem, what we would have to do is have stability for context rules, so
that once a character gets a context rule, no future version of the rule can
further restrict the labels that it can appear in.

So, my proposal is to:

1) allow characters to migrate from DISALLOWED to CONTEXT.
2) disallow CONTEXT rules from becoming more restrictive.

We already need to have a mechanism (though not fully fleshed out yet) for
handling the CONTEXT rules; procedurally the step of doing #1 can be added
to that mechanism. In both of these cases, we want the mechanism to be very
conservative in making changes.

-------------- next part --------------
An HTML attachment was scrubbed...

More information about the Idna-update mailing list