文脈的規則

CONTEXT、文脈的規則

[1] CONTEXT (CONTEXTUAL RULE REQUIRED文脈的規則必須) は、 その符号位置ラベルでは特定の文字特性が満たされない限り利用できないことを表す導出特性値です >>2

仕様書

分類

[37] CONTEXT は、更に次の2つに分類されます。

[4] CONTEXTJ (CONTEXT-JOINER)
CONTEXT のうち、 Join_controls に属するもの >>2
[5] CONTEXTO (CONTEXT-OTHER)
CONTEXT のうち、その他のもの >>2

文脈的規則

[6] CONTEXT符号位置が利用できるかどうかは、そのラベルの他の符号位置に依存します。 この利用できるかどうかを決定する規則を文脈的規則 (contextual rule) と呼び、 IANA登録簿 (>>10) が用意されています。

[9] IANA登録簿への追加や変更には IETF評価が必要です >>8

[21] IDNA2008 では、 文脈的規則登録の際に適用されます。lookup の際にも適用されるか否かは各規則によって異なります。

[38] PRECIS では、 CONTEXT文字は、 適切な規則が確立されており、その規則と整合する場合を除き、 使ってはなりません >>36

[44] ラベル妥当性基準では、 ContextJ rules のみ使われる場合があります。


[22] 文脈的規則は、仕様上は擬似コードによって記述されており、 その符号位置が含まれるラベルについて評価した結果未定義のいずれかが得られます。

文脈的規則の定義

[28] 文脈的規則は定義されていることもあります (DEFINED) し、 存在しないこと (NULLnull規則 (rule) ) もあります。 >>24 3.1.2.2.

[29] ある文字IDN に必要かどうか、ラベルのどこで認めるべきかは簡単には決められないので、 ある特定の版においては null としても構いません。もちろん、改訂版において null でない文脈的規則を定めても構いません。 >>24 3.1.2.2.

文脈的規則の値

[27] 文脈的規則がある場合には、その値が

... のいずれかとなります。 >>24 3.1.2.2.

文脈的規則の一覧

[11] 現在、次の符号位置に対して文脈的規則が定義されています >>10

[23] Unicode 5.2 における CONTEXT符号位置のすべてに対して文脈的規則が定義されています。 null規則となっている符号位置はありません。

CONTEXTJ の文脈的規則

CONTEXTO の文脈的規則

安定性

[30] PVALIDUNASSIGNED は、それに分類された文字が違う導出特性値に変更されることはないとされていますが、 CONTEXT ではそのような説明がされていません。

[31] また、文脈的規則の定義の変更による互換性についても特に説明されていません。

CheckJoiners フラグ

[43] ToASCIIToUnicode入力 CheckJoiners >>42 は、 CONTEXTO 規則の適用の可否を指定する boolean です。

歴史

[34] 元々の RFC 5892 の定義は Unicode 5.2.0 に拠っています。

[35] 2011年8月に IANA 登録簿 (>>10) が更新されて Unicode 6.0.0 に対応していますが、 文脈的規則は変更されていません。

メモ

[3] CONTEXT に分類されている符号位置は、特定の文脈で不可視であるなどの性質から無条件に利用を認めることができないものとなっています >>2

[25] CONTEXT の制約は、混乱を引き起こすおそれがある文字の用法を完全に制限することを目的としたものではなく、 ゾーン管理者が十分知識を持たない用字系でのみ有用な、それ以外では有害な文字の使用を限定することを目指したもののようです。 >>24

[26] 例えば ZERO WIDTH JOINERインド系諸文字と共に使われますが、 ラテン文字と一緒には使いません。主にラテン文字を扱うゾーンの管理者はこの文字の取り扱いについて十分な知識を持っていないでしょう。 主にインド系諸文字を扱うゾーンの管理者なら、どこでは使っても良くどこでは使う必要がない、使ってはいけないかを判断できる可能性が高いです。したがってラテン文字ゾーンの管理者が気にしなくても良い程度に利用を制限するのが CONTEXT の制約の趣旨のようです。

[39] IDNA: use proposed UTS46 flags to avoid breaking YouTube (annevk著, ) <https://github.com/whatwg/url/commit/dc9d83106cada9af507bf37dee3973de97b020fd>

[40] IDNA / UTS #46 "should" requirements (Bidi and Joiners) · Issue #110 · whatwg/url () <https://github.com/whatwg/url/issues/110>

[41] Address several IDNA issues by annevk · Pull Request #309 · whatwg/url () <https://github.com/whatwg/url/pull/309>