「Super日本語大辞典」解析補遺 (by hishida) ・この資料は、nomad氏の「Super日本語大辞典 全JIS漢字版 (学研) 辞書ファイルの構造」 ( http://www.vector.co.jp/authors/VA005784/superj.zip )  への補遺です。 ・次の追加情報を含みます。  - 無印・NEW PC Success版と全JIS漢字版の差異  -「漢和大字典」「メニュー」「スタートアップ故事成語」「状況別故事成語」の解析情報・「漢字字書」「固有名詞データ」は解析を行っていません。 ●製品のバージョンの違いについて ・「Super日本語大辞典」には、初版(無印)、NEW PC Success版、全JIS漢字版がある。 ・無印とNEW PC Success版は補助漢字(JIS X0212-1990)に対応した製品。  全JIS漢字版は、JIS X0213(JIS第3・第4水準)で追加された文字を漢和大字典の親字に  追加したもので、現在発売されている製品(2004/1現在)。 ・NEW PC Success版は、無印のビューアに比較して次の制限がかけてある。 「学研漢和大字典」の辞書ウィンドウで、以下のウィンドウを表示できない ・楷書・行書イラスト ・筆順ムービー ・解字説明 ・単語家族 ・熟語一覧 ・詩語一覧 ・漢詩  ただしCD-ROM辞書からはこれらのデータは削除されていない。 ●辞書ファイル 全JIS漢字版の辞書ファイル名 DIC/SKPJSPK2.DIC 故事ことわざ辞典(状況別故事成語) DIC/SKPKNJ2.DIC 漢字字書 DIC/SKPKNW2.DIC 学研漢和大字典 DIC/SKPKOGO2.DIC 古語辞典 DIC/SKPKOJI2.DIC 故事ことわざ辞典 DIC/SKPKOKU2.DIC 学研国語大辞典 DIC/SKPKYID2.DIC 固有名詞データ DIC/SKPMDA2.DIC マルチメディアデータ DIC/SKPMENU2.DIC メニューデータ DIC/SKPSTUP2.DIC スタートアップ故事成語データ マルチメディアデータ data/Jpg/ZA/ZA000001.JPG data/Mov/MA/MA010000.MPG data/Snd/SA/SA000001.WAV 無印・NEW PC Success 版の辞書ファイル名 DIC/SKPJSPKJ.DIC 故事ことわざ辞典(状況別故事成語) DIC/SKPKANJI.DIC 漢字字書 DIC/SKPKANWA.DIC 学研漢和大字典 DIC/SKPKOGO.DIC 古語辞典 DIC/SKPKOJI.DIC 故事ことわざ辞典 DIC/SKPKOKU.DIC 学研国語大辞典 DIC/SKPKYIDX.DIC 固有名詞データ DIC/SKPMEDIA.DIC マルチメディアデータ DIC/SKPMENU.DIC メニューデータ DIC/SKPSTUP.DIC スタートアップ故事成語データ マルチメディアデータ(ハードディスクインストール不可) :\SKP\DATA\ZA\ZA000001.JPG [故事ことわざ辞典] block# ID 形式 内容 ------------------------------------------- 15 0x41 本文ブロック 故事ことわざ辞典 [漢和大字典] block# ID 形式 内容 ------------------------------------------- 18(21) 0x31 本文ブロック 漢和大字典 (ID=0x38は同じブロックを指す) 19(22) 0x32 本文ブロック 漢詩百選 20(23) 0x33 詩語ブロック 詩語一覧 21(24) 0x34 同韻字ブロック 同韻字一覧 22(25) 0x35 熟語ブロック 熟語一覧 23(26) 0x36 本文2ブロック 難読語 24(27) 0x37 本文2ブロック 解字 *()内は全JIS漢字版のブロック番号。無印に対して3ずれている [メニュー] block# ID 形式 内容 ------------------------------------------------------ 0 − メニューブロック 古典文学事項編 1 0xC1 メニューINDEXブロック 古典文学事項編 2 − 本文2ブロック 古典文学事項編 3 − メニューブロック 古典文学書名編 4 0xC2 メニューINDEXブロック 古典文学書名編 5 − 本文2ブロック 古典文学書名編 6 − メニューブロック 古典文学人名編 7 0xC3 メニューINDEXブロック 古典文学人名編 8 − 本文2ブロック 古典文学人名編 9 − メニューブロック 日本の名歌 10 0xC4 メニューINDEXブロック 日本の名歌 11 − 本文2ブロック 日本の名歌 12 0xC5 メニューINDEXブロック 日本の名歌 13 − 本文2ブロック 日本の名歌 14 − メニューブロック 日本の名句 15 0xC6 メニューINDEXブロック 日本の名句 16 − 本文2ブロック 日本の名句 17 0xC7 メニューINDEXブロック 日本の名句 18 − 本文2ブロック 日本の名句 19 − メニューブロック 中国の漢詩 20 0xC8 メニューINDEXブロック 中国の漢詩 21 − 本文2ブロック 中国の漢詩 22 − メニューブロック 色一覧 23 0xC9 メニューINDEXブロック 色一覧(50音順)→0x62色見本を参照 24 0xCA 色INDEXブロック 色一覧(色系統順)→0x62色見本を参照 25 − メニューブロック 古典読解地図 26 0xCB 色INDEXブロック 古典読解地図→0x6B地図を参照 27 − メニューINDEXブロック 年表ブロックインデックス 28 − 年表INDEXブロック 年表インデックス 29 − 本文2ブロック 年表(日本)日本 30 − 本文2ブロック 年表(中国)中国 31 − メニューブロック 枕詞・歌枕 32 0xCD メニューINDEXブロック 枕詞・歌枕 33 − 枕詞ブロック 枕詞・歌枕 34 0xCE メニューINDEXブロック 枕詞・歌枕 35 − 枕詞ブロック 枕詞・歌枕 36 0xCF メニューINDEXブロック 枕詞・歌枕 37 − 枕詞ブロック 枕詞・歌枕 38 − メニューブロック 季語一覧 39 0xD0 メニューINDEXブロック 季語一覧 40 − 枕詞ブロック 季語一覧 41 0xD1 メニューINDEXブロック 季語一覧 42 − 枕詞ブロック 季語一覧 43 − メニューブロック 日本の家紋 44 0xD2 メニューINDEXブロック 日本の家紋→0x63家紋を参照 45 − メニューブロック 古典の動植物 46 0xD3 メニューINDEXブロック 古典の動植物(50音順)→0x65動植物を参照 47 0xD4 メニューINDEXブロック 古典の動植物(自然分類) 48 − 枕詞ブロック 古典の動植物 49 − メニューブロック 古典読解図録 50 0xD5 色INDEXブロック 古典読解図録→0x6A図録を参照 51 − メニューブロック 国字一覧 52 0xD6 本文2ブロック 国字一覧(画数) 53 0xD7 本文2ブロック 国字一覧(部首) 54 − メニューブロック 名数一覧 55 0xD8 メニューINDEXブロック 名数一覧 56 − 本文2ブロック 名数一覧 57 − メニューブロック 難読地名一覧 58 0xD9 メニューINDEXブロック 難読地名一覧 59 − 本文2ブロック 難読地名一覧 60 − メニューブロック 難読姓 61 0xDA メニューINDEXブロック 難読姓 62 − 本文2ブロック 難読姓 63 − 本文2ブロック 難読姓ウインドー 64 − メニューブロック 学習漢字一覧 65 0xDB メニューINDEXブロック 学習漢字一覧 66 − 漢字一覧2ブロック 学習漢字一覧 67 − メニューブロック 人名・常用漢字 68 0xDC メニューINDEXブロック 人名・常用漢字 69 − 漢字一覧ブロック 人名・常用漢字 70 − メニューブロック 読みから引く名前一覧 71 0xDD 本文2ブロック 読みから引く名前一覧(ベスト100) 72 0xDE メニューINDEXブロック 読みから引く名前一覧(50音順) 73 − 頻度付ブロック 読みから引く名前一覧(50音順) 74 − メニューブロック 単語家族 75 0xDF メニューINDEX2ブロック 単語家族 76 0xE0 本文2ブロック 単語家族 77 − メニューブロック 筆順の決まり 78 0xE1 メニューINDEX2ブロック 筆順の決まり 79 − 本文2ブロック 筆順の決まり ※「日本語百科」のうち、「状況別故事成語」のみはメニューデータに収録されていない。  状況別故事成語はSKPJSPKJ.DIC(全JIS漢字版はSKPJSPK2.DIC)に格納されている。 [スタートアップ故事成語] block# ID 形式 内容 ------------------------------------------------------ 0 − ?? 1 − 本文ブロック 故事成語・新春 2 − ?? 3 − 本文ブロック 故事成語・春 4 − ?? 5 − 本文ブロック 故事成語・夏 6 − ?? 7 − 本文ブロック 故事成語・秋 8 − ?? 9 − 本文ブロック 故事成語・冬 ※スタートアップ故事成語は、故事ことわざ辞典、漢和大字典から故事成語を抜き出した  もので、辞書本体と内容は重複する。 ●外字フォント MM漢辞源1は、無印・PC Success版・全JIS漢字版に共通(GDBASEとも共通) MM漢辞源5は、全JIS漢字版のみ存在する(JIS第3・4水準に対応) MM漢辞源1 (Mmkjg1.TTF)  JIS X0212-1990(補助漢字)+学研のユーザ外字を格納。  基本的にJIS X0212-1990の漢字部分をシフトJIS化してそのまま格納している。 ただしシフトJISの未使用領域にぶつかるコードについては、第2水準の後方の位置に ずらしてある:  4F54h〜4F7Eh(ShiftJISで9873h〜989Eh)を6E54h〜6E7Eh(ShiftJISでE7D2h〜E7FCh)の  エリアに収録 MM漢辞源5 (Mmkjg5.TTF)  JIS X0213(JIS第3・4水準)のうち、補助漢字と重複しない約800字を格納している。 (従ってJISコードから演算によってコードポイントを求めることは出来ない) (空き) 889F - 88FC 94 8940 - 89FC (897F) 188 8A40 - 8AFC (8A7F) 188 8B40 - 8BFC (8B7F) 188 8C40 - 8CFA (8C7F) 186 合計 844 文字 ■データ用各種ブロック(補遺) ※以下は「漢和大字典」のみで使用されているブロック形式です。 ●詩語ブロック(漢和) 次の形式のレコードが連続して格納されている。 長さ 内容 1 タイトル長 n タイトル文字列 1 項目数 - 項目1 ... - 項目m 各項目の形式は 長さ 内容 1 項目長 (このバイトも含む) 1 4* 本文参照アドレス - 見出し文字列 1 項目長 (先頭の項目長と同じ値) ●同韻字ブロック(漢和) 次の形式のレコードが連続して格納されている。 長さ 内容 1 タイトル長 n タイトル文字列 1 例詩個数 m*4 例詩アドレス 2 同韻字個数 - 項目1 ... - 項目m 各項目の形式は 長さ 内容 4 詩語一覧アドレス(ない項目は0) 2 漢字コード(JISエンコーディングであり、ShiftJISではない) ※MSBが1なら、JIS-X0212(補助漢字) ※MSBが0なら、JIS-X0208(JIS第1・2水準)  全JIS漢字版のJIS-X0213はMSB0か? ●熟語ブロック(漢和) 次の形式のレコードが連続して格納されている。 長さ 内容 1 タイトル長 n タイトル文字列 2 作品項目数 - 項目1 ... - 項目m 各項目の形式は 長さ 内容 1 項目長 (このバイトも含む) 4 本文参照アドレス - 見出し文字列 1 項目長 (先頭の項目長と同じ値) ※以下はメニューでのみ使用されているデータ形式です。 ●メニューブロック 長さ 内容 2 テキストブロック長 (ビッグエンディアン) 2 行数(ビッグエンディアン) n メニューテキスト   1行に1メニューエントリ、行末は 例)メニューテキストの例 "→50音順" "あ行 193 1" "←" "←"  ・→,←は階層メニューのレベルを示す  ・→,←が付かない文字列は、次の意味 "タイトル"データID(10進)項番号(1オリジン)※0のことがある  ・この例では、「あ行」はデータID=193=0xC1のメニューINDEXブロックの1番目 ●メニューINDEXブロック 長さ 内容 3 開始アドレス (ビッグエンディアン) 2 項目個数(ビッグエンディアン) 2 ブロック長 ※通常、直後のブロックのアドレスを参照する ●メニューINDEX2ブロック 長さ 内容 3 開始アドレス (ビッグエンディアン) 2 ブロック長 ※メニューINDEXブロックと似ているが、個数がない ●色INDEXブロック 長さ 内容 3*n 開始アドレス (ビッグエンディアン) 色見本ブロックの項目の開始アドレスに相当 ●年表INDEXブロック 長さ 内容 1 タイトル長 n タイトル文字列 4 年表開始アドレス(日本史)(ビッグエンディアン) 2 年表項目長(日本史)(ビッグエンディアン) 4 年表開始アドレス(中国史)(ビッグエンディアン) 2 年表項目長(中国史)(ビッグエンディアン) ※日本史・中国史の年表自体は、普通の本文ブロック ●枕詞ブロック(枕詞、季語一覧等に使用) 長さ 内容 1 テキスト長 1 参照数 4*m 参照アドレス(本文中での使用箇所) n テキスト この繰り返し ●漢字一覧ブロック(人名・常用漢字に使用) 長さ 内容 1 種別 (1:常用 2:人名 3:旧字) 2 漢字コード この繰り返し ※製品版の「常用漢字一覧」「人名に使える漢字一覧」は同じデータを共用。  人名・旧字は色を変えて表示される。 ●漢字一覧2ブロック(学習漢字一覧に使用) 長さ 内容 1 動画個数 2 漢字コード 12 楷書画像名(ZF000010.JPG) 12*n 筆順動画名(MA010000.MOV) この繰り返し ●頻度付ブロック(読みから引く名前一覧に使用) 長さ 内容 1 項目長 1 頻度(*を印刷する個数) n テキスト(0x2Fは読みと表記の分離記号) この繰り返し ■データ形式(補遺) ●本文 ・漢和大字典のみ使用されているコード FD11h 画像開始(続く12バイトが画像ファイル名) FD12h 画像終了 FD21h 動画開始(続く12バイトが動画ファイル名)※本文ではなくメニューで使用箇所有 FD22h 動画終了 FD31h 拡大図開始 FD32h 拡大図終了 FDA1h 音声開始(続く12バイトが音声ファイル名、その後FDA2hが現れるまで、 可変長の発音文字列が続く) FDA2h 音声終了 外字は次の2種類の形式がある (1)漢和大字典(全JIS漢字版のみ) 7Fh + フォントコード(1バイト) + 外字コード(2バイト) 最初の 1 バイトがフォントコード: 01h: MM漢辞源1 (Mmkjg1.TTF) 05h: MM漢辞源5 (Mmkjg5.TTF) 残り 2 バイトが各フォントファイルの文字コード (8140h..) (2)漢和大字典(無印・PC Success版)、およびその他の辞書(国語大辞典、古語辞典) 7Fh + 外字コード(2バイト) なお、半角外字と全角外字の形式上の違いはない。半角はプロポーショナルフォントで実現されている。 ■参照アドレスの形式(補遺) 長さ 内容 1 データID 3 オフセット (ビッグエンディアン) 漢和大字典で使用されているデータIDは次のとおり。 参照 21h 古語辞典 古語辞典のブロック28 31h 漢和大字典 漢和大字典のブロック18(21) 38h 漢和大字典 漢和大字典のブロック18(21) 32h 漢詩百選 漢和大字典のブロック19(22) 33h 詩語一覧 漢和大字典のブロック20(23) 34h 同韻字一覧 漢和大字典のブロック21(24) 35h 熟語一覧 漢和大字典のブロック22(25) 36h 難読語 漢和大字典のブロック23(26) 37h 解字 漢和大字典のブロック24(27) 63h 家紋 マルチメディアデータのブロック 2 64h 文学 マルチメディアデータのブロック 3 66h 楷書 マルチメディアデータのブロック 5 67h 行書 マルチメディアデータのブロック 6 68h 図版 マルチメディアデータのブロック 7 6Ah 図版 マルチメディアデータのブロック 8 6Bh 地図 マルチメディアデータのブロック 9 6Dh 漢詩 マルチメディアデータのブロック 11 81h 筆順 マルチメディアデータのブロック 12 E0h 単語家族 メニューデータのブロック 76 ※()内は全JIS漢字版のブロック番号  ※熟語一覧・メニューから、国語大辞典、古語辞典、故事ことわざ辞典等への縦横なジャンプ有り! ●マルチメディアデータについて ・筆順に動画が使用されている。無印・PC Success版はQuickTime(.MOV)、全JIS漢字版はMPEG。 ・無印とPC Success版の音声はどちらもモノラルのMicrosoft ADPCM形式だが、  サンプリング周波数が無印は22,050Hz、New PC Success版は44,100Hzらしい。  (情報提供 太田純氏) ■状況別故事成語データ(2004/01/23) ・SKPJSPKJ.DIC(SKPJSPK2.DIC)は「日本語百科」の「状況別故事成語」に相当する。 ・この辞書のみ、他の*.DICと構造が異なり、暗号化キーも違う。この辞書には前方一致・  後方一致インデックスも格納されているが、製品ではメニュー検索しか使用されていない。  ※何かの製品の一部か? ・状況別故事成語の語釈は国語大辞典・故事ことわざ辞典・漢和大字典のどれとも異なる。 ●辞書ファイルの構造 ヘッダ部(136byte) ブロックテーブル部(64byte) ブロック部 ブロック0 ブロック1 ... ブロックx ヘッダ部以外は暗号化されている。 文字コードはシフトJIS。 ●ヘッダ部 位置 長さ 内容 00h 30 著作権表示 (あまりは空白(20h)で埋める) 1Eh 10 バージョン文字列(あまりは空白(20h)で埋める) 28h 38 辞書タイトル (あまりは空白(20h)で埋める) 4Eh 1 =0x4B (暗号化キー) 50h 1 =0x40 (ブロックテーブル部の長さ?) 51h 1 =1(不明) 52h 1 =1(不明) ヘッダ部以外のデータは暗号化キーの値と1バイトずつXORをとって復号する。 ●ブロックテーブル部 4byte*16個のint配列でリトルエンディアン。 各エントリは直後のブロック部の各ブロック長。 ブロックテーブル部の配列のブロック長合計+ヘッダ部長(136byte)+ブロックテーブル部長(64byte)は、ファイルサイズに一致する。 ただし、他の*.DICと違い、配列添字=ブロック番号ではない。対応は以下の通り: 添字 block# blk長 開始アドレス 内容 -------------------------------------------------------------------------- 0 14 00138 10B000 50音メニューブロック 1 15 04B8B 10B138 故事成語メニューブロック 2 12 07EAE 0F73D1 {offset(3)+length(2)}の配列 3 13 0BD81 0FF27F {offset(3)+length(2)}の配列 4 8 054D2 0D4A13 ?? 5 9 14DC5 0D9EE5 見出し語表記 6 10 054D2 0EECAA ?? 7 11 03255 0F417C {offset(3)}の配列 8 0 00940 0000C8 ダミーデータ( 0x00 ) 9 1 008D0 000A08 ?? 10 2 00E67 0012D8 見出し語かな(前方一致・上位インデックス) 11 7 21042 0B39D1 見出し語かな(後方一致) 12 4 8F199 023181 故事成語本文ブロック 13 5 008D0 0B231A ?? 14 6 00DE7 0B2BEA 見出し語かな(後方一致・上位インデックス) 15 3 21042 00213F 見出し語かな(前方一致) -------------------------------------------------------------------------- ※ファイルサイズ = 10FCC3h ・メニューから読む場合は、50音メニューブロック→故事成語メニューブロック→  かな見出し→故事成語本文ブロックの順にアクセスする。 ●50音メニューブロック[ブロック番号14] 4byte*78の配列。 配列[0]はダミー。 配列[1]〜配列[50]が、あいうえお…の50音に対応している。 配列の各要素は、 長さ 内容 3 メニュー項目(ブロック番号=15)の開始アドレス(ビッグエンディアン) 0xFFFFFFのときは項目なし 1 項目個数 00 00 00 00 dummy 00 00 00 20 「あ」 00 02 F6 1C 「い」 00 06 04 16 「う」 00 08 4D 04 「え」 00 08 CF 24 「お」 ... 00 43 E7 10 「や」 FF FF FF 00 00 45 D6 08 「ゆ」 FF FF FF 00 00 46 CF 18 「よ」 ●故事成語メニューブロック[ブロック番号15] 長さ 内容 1 タイトル長 n タイトル文字列 1 項目数 3*m 開始アドレス(ブロック番号=3「かな見出し」のオフセット) 1 この項目のバイト数(このバイトも含む) この繰り返し ●かな見出し上位インデックス[ブロック番号2] 長さ 内容 1 項目長 3 開始アドレス(ブロック番号=3「かな見出し」のオフセット) n-4 かな見出し文字列 ●かな見出し[ブロック番号3] 長さ 内容 1 文字列長 3 本文開始アドレス(ブロック番号=4「故事成語本文ブロック」のオフセット) 3 前項目のアドレス(このブロック中のアドレス) 3 次項目のアドレス(このブロック中のアドレス) n かな見出し文字列 ※双方向リンクになっており、リストの先頭と最後のアドレスは0xFFFFFFが格納される。 ●故事成語本文ブロック[ブロック番号4] 長さ 内容 2 文字列長 n 本文文字列 ・ひらがなが半角仮名で表現されているのは、他の学研辞書と同じ。 ・改行は '|' (0x7C)で表現されている ・かな読みは本文には格納されないので、ブロック番号3「かな見出し」から得る。 -------------------------- 改訂履歴 2004/01/11 初版 2004/01/19 メニュー・スタートアップ故事成語を追加 2004/01/23 状況別故事成語を追加