Author: jp-rad
Established: 2026‑10‑02 (つるっつる豆腐の日)
本仕様書は、文字図形識別名(glyph-name)を基軸として字形情報を抽象化・表現するための共通タグ形式「GlyphTag」の構文および処理モデルを規定します。
デジタル環境における未定義グリフの代替表示(いわゆる「豆腐文字」)の発生、および既存システム等に閉じた特定の字形構造は、文字情報の厳密性と相互運用性を著しく損なう長年の構造的課題です。 また、異体字を含む人名等の検索においては、実装文字コード(IVS等)を正確に入力して検索することが困難であり、検索性の低下を招く要因となっています。
本仕様書は、制定日(2026-10-02)を象徴的な基点とし、文字図形識別名(glyph-name)を軸とする抽象化層を確立することを目指します。
これにより、表示基盤に依存する豆腐文字の発生を根絶するとともに、標準・非標準を問わず多様な字形体系を包摂・保全し、いかなる環境においても意図された字形の正確かつ堅牢な描画を実現します。 さらに、基本文字コードを用いた共通展開モデルを提供することで、一般的な日本語入力環境からでも人名等の高度な検索・照合を容易にします。
GlyphTag は、「処理系(プログラム・表示システム)も人間系(開発者・運用者)も直感的に理解できる」 構造を目指して設計されています。
本仕様書において使用する主要な用語の定義は次の通りです。
b 属性)v 属性)set 属性) GlyphTag の基本構文を次に示します。
{<glyph-name> [b=<UCSSeq>] [v=<UCSSeq>] [set=<Identifier>]}
<glyph-name>(必須): 体系固有の文字図形識別名b=<UCSSeq>(任意): 基本文字コードv=<UCSSeq>(任意): 実装文字コードset=<Identifier>(任意): 字形体系識別子GlyphTag には、属性記述の有無に応じて次の2つの表現形態が存在します。
b, v, set)を持たず、<glyph-name> のみで構成される {<glyph-name>} 形式の表現 データの直接入力、手動記述、および環境に依存しない抽象的な字形指定に用います<glyph-name> に加え、1つ以上の属性記述を包含する {<glyph-name> b=... v=... set=...} 形式の表現b, v, set)の記述順序は任意ですUCSSeq は、1 つ以上の Unicode コードポイントを半角スペース区切りで並べた系列です。
U+XXXX
U+XXXX U+YYYY
U+XXXX U+YYYY U+ZZZZ
GlyphTag の開始記号 { を地の文として記述したい場合は、{{ とエスケープ表現にします。
{{ はタグ構文の解析対象から除外され、そのまま保護されます(閉じ記号 } のエスケープ規則は定義しません){{ の形態を維持して出力します{ に変換されます例 1: 現在の表記は {{MJ022335} です。
現在の表記は {{MJ022335} です。現在の表記は {MJ022335} です。例 2(後続に } が連続する場合): タグ: {MJ022335}}}
タグ: {MJ022335 b=U+845B v=U+845B U+E0102 set=mj}}}タグ: 葛}}GlyphTag の処理は、目的の異なる3つの独立したフェーズ(正規化・描画・簡略化)から構成されます。
適用環境の字形体系に従い、タグの属性値を決定・上書きしてデータを確定する処理です。基本タグが入力された場合は属性値が付与され、属性付きタグへと変化します。
<glyph-name> を適用環境の文字図形表と照合し、既存の属性値の有無にかかわらず b, v, set の各属性値を適用環境の定義値で更新します基本タグからの正規化:
奈良県葛城市の{MJ022335}です奈良県葛城市の{MJ022335 b=U+845B v=U+845B U+E0102 set=mj}です既存属性の上書き(再正規化):
{MJ022335 b=U+845B}{MJ022335 b=U+845B v=U+845B U+E0102 set=mj}正規化済みの GlyphTag を、表示対象の Unicode 文字列へ展開する処理です。
コードポイント選択:
v) ➔ 基本文字コード(b) ➔ 豆腐文字b) ➔ 豆腐文字文字展開とエスケープ解除:
選択されたコードポイントを出力し、保護されていた {{ を { に復元します
なお、適用可能なコードポイントが存在しない場合は表示システムが規定する豆腐文字(例: U+25A1「□」)を出力します
実装優先モード:
奈良県葛城市の{MJ022335 b=U+845B v=U+845B U+E0102 set=mj}です奈良県葛城市の葛󠄂です(※U+845B + U+E0102 の IVS 文字へ展開)基本優先モード:
奈良県葛城市の{MJ022335 b=U+845B v=U+845B U+E0102 set=mj}です奈良県葛城市の葛です(※基本文字 U+845B のみへ展開)付加された属性を取り除き、基本表現である基本タグ({<glyph-name>} 形式)へ復元・還元する処理です。
b, v, set の属性記述を除去し、<glyph-name> のみを残します属性除去:
タグ: {MJ022335 b=U+845B v=U+845B U+E0102 set=mj}タグ: {MJ022335}エスケープ保持:
{{MJ022335}={MJ022335 b=U+845B v=U+845B U+E0102 set=mj}{{MJ022335}={MJ022335}b/v 二層モデルは、IVD の基本文字+異体字選択符号モデルと完全に整合しますMJ文字は Unicode に符号化済みであり、必要に応じて IVS を保持します。
MJ022335: { b: "U+845B", v: "U+845B U+E0102" } // 奈良県葛城市の「葛」
MJ022336: { b: "U+845B", v: "U+845B U+E0103" } // 東京都葛飾区の「葛」
行政事務標準文字は次の要素で構成されます。
Unicode 未符号化である GJ文字は、GlyphTag において次の属性構造で表現します。
b(GJ代替文字 / fallback glyph): 意味的・字形的に近い既存の UCS 文字または縮退代替文字を設定v(GJ暫定私用コード / PUP): 実装基盤における私用面コードポイント(例: U+100ABC)を設定MJ文字およびGJ文字を実装した代表的なフォント環境と参照URLは次の通りです。
MJ文字やGJ文字を含む公的・民間の文字規格では、運用の過程で実施される「再同定作業」や「規格改訂」に伴い、文字(文字図形識別名)の統合、廃止、符号の割り当て変更、または別の文字識別名への付け替えが発生することがあります。
<glyph-name> として保持しますv)が変更または無効化された場合であっても、保持されている基本文字コード(b)を参照することで豆腐文字の発生を防ぎ、最低限の文字情報(縮退表示)を維持しますGlyphTag は既存システム等の固有文字体系との親和性を確保します。
b(標準文字コード/縮退代替コード)および v(実装コード/私用面コード等)にマッピング