IDS_BinaryOperator

IDC (Unicode)

[19] Unicode表意文字的記述 (Ideographic Description) ブロック12符号位置表意文字的記述文字 (Ideographic Description Character) (IDC) は、漢字などの構造を記述するためのものです。

仕様書

意味

[15] IDS は、 Unicodeにない漢字を記述するものです。 >>4

[16] 結合文字と構図は似ていますが、 文字として扱われるべきものそのものではなく、 漢字の構造を記述したものに過ぎない >>4 とされています。

[17] Unicode に含まれる漢字の分析のための記述に使うこともできます。 >>4

[13] Unicode に含まれる漢字の代替図形表現を交換する手段として使うべきではありません。 >>4

[40] そのような手段には、例えば IVS があります。

[39] IDS は通常の漢字の列に溶け込んで 「漢⿱宀子列」 のようにして外字の記述に使われます。 厳密な意味の解釈においては、 これは漢字3文字の列を表しているのか、 漢字1文字、IDSによる漢字の構造1組、漢字1文字の3組の列を表しているのか明らかではありません。 そのような厳密さが必要な場合には、 マーク付け言語の機能で 「漢<gaiji>宀子</gaiji>列」 のように記述するなど、 アプリケーション依存の方法でもう1工夫必要となります。

構文

[20] IDC を使って表意文字的なものを記述する文字列表意文字的記述列 (Ideographic Description Sequence) (IDS) といいます。

[21] IDS は、 Ideographic, Radical, CJK_Stroke, 私用, U+FF1F か、 IDS_BinaryOperatorIDS が2つ続くものか、 IDS_TrinaryOperatorIDS が3つ続くものです。 >>4

[26] IDS
  1. |
    1. Ideographic
    2. Radical
    3. CJK_Stroke
    4. 私用
    5. U+FF1F
    6. =
      1. IDS_BinaryOperator
      2. IDS
      3. IDS
    7. =
      1. IDS_TrinaryOperator
      2. IDS
      3. IDS
      4. IDS
[38] Unicode Standard の定義上は、 IDC を使わないただの単独の漢字部首も 「IDS」 となっています。 普通に 「IDS」 と言ったときにそれがただの漢字だったというケースはあまりない気がします。 入れ子の定義を簡潔にするためにこうしているのでしょうか。

[22] IDS_BinaryOperator は、 U+2FF0, U+2FF1, U+2FF4 - U+2FFB の10文字です。 >>4

p
符号位置
c
文字
n
文字名称
1
次の文字
2
次の次の文字
p
U+2FF0
c
n
IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT
1
2
p
U+2FF1
c
n
IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO BELOW
1
2
p
U+2FF4
c
n
IDEOGRAPHIC DESCRIPTION CHARACTER FULL SURROUND
1
外側
2
内側
p
U+2FF5
c
n
IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM ABOVE
1
外側
2
内側・下
p
U+2FF6
c
n
IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM BELOW
1
外側
2
内側・上
p
U+2FF7
c
n
IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LEFT
1
外側
2
内側・右
p
U+2FF8
c
n
IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER LEFT
1
左・上
2
内側
p
U+2FF9
c
n
IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER RIGHT
1
右・上
2
内側
p
U+2FFA
c
n
IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LOWER LEFT
1
左・下
2
内側
p
U+2FFB
c
n
IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID

[27] U+2FFB は重ね合わせを表します。例えば 「⿻工从」は「」を表します >>4

[35] これだけ機械的に処理できるか怪しい...

[23] IDS_TrinaryOperator は、 U+2FF2U+2FF3 です。 >>4

p
符号位置
c
文字
n
文字名称
1
次の文字
2
次の次の文字
3
次の次の次の文字
p
U+2FF2
c
n
IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO MIDDLE AND RIGHT
1
2
3
p
U+2FF3
c
n
IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO MIDDLE AND BELOW
1
2
3

[14] 同じ漢字を複数の異なる IDS で表現できるかもしれませんが、 等価性は規定されていません。 自然な分割で最短の表現とすることが好ましいですが、 要件とはなっていません。 ただ可能な限り最短の表現を使うのが好ましいとは注文されています。 >>4 分析目的の場合のように、逆に出来得る限り細かく分解する場合もあるようです。

[29] IDS の前に U+303E IDEOGRAPHIC VARIATION INDICATOR () を置くことで、 IDS が近似であることを示せます。 >>4

  1. IDS

被演算子

[30] IDSIDC 以外の文字 (operand) の一覧は次の通りです。

[18] IDS漢字だけでなく、同様の構造を持つ周辺の文字にも適用できます。 >>4

[25] 異なる用字系の混在は正式な構文上禁止されていませんが、 好ましくありません。 >>4

[28] U+FF1F FULLWIDTH QUESTION MARK もなぜか認められています。不明を表すのでしょうか。説明はありません。 なぜ敢えて全角形のみ認めているのか不明です。

[32] 漢字でありながら CJK統合漢字外のものとして、例えば「〇」 は認められていますが、「々」はなぜか認められていません。

[33] IVS を使う需要はありそうですが、なぜか認められていません。

[34] 仮名ハングルラテン文字を部品とする漢字の例が知られますが、 認められていないため IDS で表現できません。

[48] なぜか私用文字が認められています。 相互運用性に貢献しなそうで謎です。

長さ制限

[24] 以前の版では IDS の部分の長さに制限がありましたが、 撤廃されました。 >>4

処理

[41] IDC は、 IDS として以外の用法は定められていません。 しかし任意の入力を受信する実装 (文字列を処理するほとんどの実装) は、 IDS の構文に合致しない IDC を与えられた時にも適切に処理できる必要があります。

[42] 例えば、 IDC が単独で出現したときにクラッシュするような実装は、 不適切です。

[46] 実際、 IDS を意識しないで IDC を使う場合 (例えば Unicode文字の一覧表や、 「⿱の構造」 のような書き方をする場合) や、 厳密に IDS の構文では記述できないものを敢えて記述する場合 (>>30) のような事例が見られます。

レンダリング

[7] IDC制御文字でも結合文字でもありません。 >>4

[12] IDC制御文字ではないので、 IDC の有無でレンダリングは違わなければなりません。 >>4

[8] 文字境界語境界に影響しなければならないという要件はありません >>4 (が影響させることは禁止もされていません)。

[9] 個別の文字の並びとしてレンダリングしても構いませんし、 IDS を解釈した結果をレンダリングしても構いません。 >>4

[10] 後者の場合、 hit testカーソル移動その他利用者インターフェイス関係では合字として扱うべきです。 >>4

[43] IDC のうち 「」 だけは、 機械的に合成してレンダリングすることが困難です。

[45] 同じ木偏でも「林」と「機」では幅がかなり違います。

[44] それ以外は機械的に合成可能ですが、 構成要素の幅を適切に決めて美しくレンダリングするのは中々に難しそうです。

[11] 不適切な IDS の扱いは明記されていませんが、後者の実装方法の場合でも前者の方法とするべきでしょう。

相互作用

[36] 漢字基底文字になり得るので、次に結合文字が来ることが認められています。 では IDS の後に結合文字が来たときどうなるのでしょうか。 IDS を1つにまとめてレンダリングするなら、 それ全体が基底扱いになるのでしょうか。 IDS の一部分ではないので、IDS を構成する最後の漢字に結合するのはおかしい気がします。

[47] IDS 内部に ZWJ, ZWNJ を挿入することは構文的にできません。 前後に挿入することはできますが、 効果の程は不透明です。 続け字

歴史

[5] GBK で規定されました。 >>4

[6] GBK を出典に Unicode に追加されました。 >>4

メモ

[3] CHaracter Information Service Environment () http://www.chise.org/ids/

[37] IDS + OpenType: Pseudo-encoding Unencoded Glyphs () https://blogs.adobe.com/CCJKType/2014/03/ids-opentype.html