The other day I discussed TMCH and IDN’s with a few people from ICANN Staff. They where very very patient and that gave me the ability to think really hard trying to understand what the issues I feel really are. At the end I think we have the embryo of a problem statement. A statement that you can see illustrated on this picture:

Maybe this is a bit tricky to understand, so let me explain in a different way.

When dealing with variants, there exists a mapping function that maps any potential variant to a base string. Lets call this function *f(x)*. The definition is such that if the function *f(x)* is applied to any of the strings *s _{x}* in the set

*the result will be the base string*

**S**={s_{0}, s_{1}, …, s_{n}}*s*. I.e.

_{b}*f(s*for every

_{x}) = s_{b}*x*such that

*0≤x≤n*.

This implies that if one tries to for example register any of the strings in the set * S*, the other strings can be blocked, allocatable etc.

So far so good. Now lets have a look at TMCH. They also have a registry where strings are to be registered. They do have mapping functions, but not for calculations of variants. Instead it is whoever interacts with the TMCH that is to register every string they want to register, which in the case of variants can be many.

Let’s say a trademark holder registers *café* in the TMCH. This imply that it would be impossible for someone to later try to register *cafe* without triggering some TMCH event, because *cafe* (which happens to be the base string for both *cafe* and *café*) is viewed as a variant of *café*. We have * S={cafe, café}* and both

*f(cafe)=cafe*and

*f(café)=cafe*.

The problem arises if the original registry does not send both *cafe* and *café* to the TMCH at the time of registration *café*. When a registry later tries to register *cafe*, no event will be triggered because *cafe* was never put into the TMCH.

What SSAC talked about in SAC-060^{1} was the fact such calculations by the registry might be extremely difficult to do, and that it would be better if also the TMCH calculated *f(t)* for every string *t* that is sent to it. That way, if one sent *café* to the TMCH, both *café* and *cafe* would be registered.

Or to put it differently, today the registry must have an inverse function *f´(s _{b})=*

**S**so that for any domain

*s*that someone want to register, the registry must first calculate

_{x}*s*(where

_{b}*f(s*;

_{x})=s_{b}*0≤x≤n*), then must calculate

*using the inverse function, and then for every*

**S***s*in

_{x}*register it in the TMCH.*

**S**This hopefully explains what SSAC is concerned about, that for some *f(x)* there is no *f'(x)* such that the following is true:

**S**= {*s*,_{0}*s*, …,_{1}*s*}, the variant set_{n}*s*is the base character in_{b}**S***f(s*for any_{x}) = s_{b}*0≤x≤n**f'(s*_{b}) =**S**

- SAC-060: SSAC Comment on Examining the User Experience Implications of Active Variant TLDs Report (23 July 2013)