1つ前の投稿に対して、id:naoyaさんのブックマークコメントに「可逆じゃなきゃいけない理由は何かなあ。」と。で、補足と補正をします:
先のエントリーでも触れたようにXMLのID属性は文書スコープで一意であればいいものですが、CSS signature(これについて僕は無知だが)の目的からはユニバーサルに一意、そうでないにしろできるだけ広い範囲で一意であることが望ましいでしょう(と、これは前提にしていいのかな?)
では、名前/IDの「一意性」とは何でしょう。なんらかのエンティティ(この世の存在物、人間、組織、作品、椅子、ミミズなど)の集合Eと文字列の集合Sがあって、写像 idof : E → S が、
x≠y ならば idof(x) ≠ idof(y)
であるとき、idofが定義するネーミングは一意性を持つことになります。
要するに、「違ったモノは違った名前を持つべき」ってことね。(対偶は「名前が同じなら同じモノ」。)例えば、「はてな」のなかで僕(檜山正幸なる人間)は"m-hiyama"で一意識別されています。
さて、名前/IDの変換とは、文字列の集合Sから文字列の集合S'への写像です。例えば、英数字以外は削除する変換をalnumonlyとすると、alnumonly("m-hiyama") = "mhiyama" は変換例です。もし、mhiyamaというはてなIDの人がいたならば、この変換でその人と僕は、同じ文字列"mhiyama"にマップされてしまいます。つまり、alnumonly変換後は「違ったモノは違った名前を持つべき」が破れています。
alnumonly変換後の名前を使って <body id="mhiyama">
とすると、僕と別なmhiyamaさんが区別できず、僕の自分用プライベートスタイルシートが別人mhiyamaさんのエントリーにも適用されます。これは、滅多に起こりそうにないことだけど、少し困ったことです。
つまり、正確には可逆性が本質ではありません。可逆性からinduceされる一意性の保存(変換の単射性)のほうが欲しかったことです。URI体系がユニバーサルな一意識別子を与えていると信用するなら、この一意性に依拠して単射変換を定義しておけば、URIと同程度の一意性は確保できるだろう、という目論みです。(さらに次に関連エントリー。より正確な話はこのエントリーに。)