============================================================================ 汎用辞書フォーマット規格仕様書 (通信用語の基礎知識V6フォーマット) 平成27年1月1日 リリース16 ============================================================================ 本書は、作成中の仕様を記述した仕様書である。 ここに記された仕様案は、将来的に変更が加えられる可能性がある。 ============================================================================ 概要 本書は、通信辞書の流通促進とその情報の共用、アプリケーションの共用の ための土台を築くプロジェクトの一環として、作成された。 本仕様の正式名称は「通信用語の基礎知識V6フォーマット」であるが、これは 汎用を目指した辞書フォーマットであり、「通信用語の基礎知識」に限定して 使用されるために作られた仕様ではないことを、まずここに記す。 ============================================================================ 目次 1. 基本事項 2. 単語構造 3. 基本構文 4. 文字 5. 構造 6. 実例 7. 仕様と、現在使っている実装の差 8. 変更点 ============================================================================ 1. 基本事項 1.1 想定 このフォーマットは、あらゆる言語を一つのファイル中に混在して利用すること を想定している。 これを実現するため、文字エンコードについては、UTF-8を利用することを推奨 する。(UTF-16やUTF-32でも構わないが) 文字コードは、日本語においてはJIS X0201およびJIS X0208、JIS X0213などに 準じたものを主として使用する。 1.2 コンセプト ・文書ファイルの可読性は、編集の段階における作業性以上には考慮しない。 ・つまり、文書ファイルをそのまま読んで理解できる、従来の書式(V5まで)とは違う。 ・HTMLであるとか、PDFであるとか、EPWINGであるとか、可読性の高い形式に変換 したものを読むことを前提に、それらに変換しやすいものを目指す。 ============================================================================ 2. 単語構造 [単語] ├[単語ヘッダ部] │ ├[ディレクトリ情報] │ │ │ ├[単語基本情報] │ │ ├── 見出し語 │ │ ├── 読み │ │ ├── 外語 │ │ ├── 発音 │ │ └── 品詞 │ │ │ ├[執筆者情報・ソース情報] │ │ ├── 執筆日 更新日 著者 │ │ └── その原稿の情報源となったソース源 │ │ (本やwebサイトの識別子) │ │ │ └[有効期限] │ └[単語本文部] ├[子ヘッダ部] │ ├[執筆者情報・ソース情報] │ │ ├── 執筆日 更新日 著者 │ │ └── その原稿の情報源となったソース源 │ │ (本やwebサイトの識別子) │ │ │ └[有効期限] │ └[本文] ============================================================================ 3. 基本構文 3.1 マルチブロック構造 一つの単語は、複数のブロックを持つ。 単語は、次のブロックを持つことができる。 ・見出し語 ・単語ヘッダ部 ・本文部 ・リンク部(任意) 3.1.1 見出し語 # から始まる行は、見出し語情報である 一つの単語に一つだけ許される 主名称と副名称が許される。副名称は空白をあけ、括弧内に記述される。 以降は、次の見出し語情報まで、1タブでインデントし、見出し語の有効範囲内で あることを示す。 3.1.2 単語ヘッダ部 その単語全体に関わる、単語に関する諸情報を記述する。 具体的には、次のような情報を記録できる。また任意に拡張可能。 ・読み ・外語 ・著者と日付情報 ・有効期限 ・品詞 著者と日付情報に関しては、この単語に関わった情報を記すもので、全体に関す る責任を示すものではない。 後述する子ヘッダ内にも同等の情報を記述することができるが、単語ヘッダに書 かれた日時よりも子ヘッダに書かれた日時が新しいような状況は、エラーとすべ きである。 各項目の責任範囲や執筆者に関する明確な情報を記したい場合は、段落を作り、 その配下に子ヘッダを用意して、そこに記すべきである。 3.1.3 本文部 その単語の説明文はここに記述することになる。 インデントすることにより、子構造を作ることができる。 子構造を作った時は、本文を始める前に子ヘッダを記述できる。 3.1.3.1 子ヘッダ 子構造内のみに有効な、単語ヘッダ情報である。 基本的には3.1.3の単語ヘッダと同等で、書式も同一であるが、記述できる情報 は限られる。「読み」や「品詞」など全体に関わるものは記述できない。 基本的には、次のような情報を記載することを想定する。 ・著者と日付情報 ・有効期限 子ヘッダが無い場合、各事項(著者や更新日時、有効期限)は、未定義として扱う。 3.1.4 リンク部 辞書内の他の単語へのリンクを纏めたブロックである。 V6フォーマットでは、これは拡張ブロック部の一つとして実現される。 V6フォーマットでは、本文内に他の単語へのリンクを記述するため、特別に必 要とはならない機能であるが、V5フォーマットにおける、語末の★や◆の羅列 との互換性のために存在する。 記述するかどうかは任意であるが、カテゴライズして他の単語へのリンクを付 けることで、他の単語の参照を容易とできる。 実装は、これを処理してもしなくてもよい。 ============================================================================ 4. 文字 4.1 機能文字 次の文字は、機能文字として予約され、原則として文書中に記述できない。表現 したい場合は代用表現を用いる。但し、状況によっては利用可能なことがある。 " $ ' [ ] \ | < > { } ~ 次の文字は、原則としてそのまま使用できる(項目内で機能予約されている場合 を除く) ! # % * + , ^ . ( ) / @ _ & - : ; = ? ` 4.2 文字の使用基準 基本的に、使用する文字の制限はない。U+10000以降の、いわゆるサロゲート文 字でも、理論上は自由に使用できる。但し処理できるかどうかは実装依存である。 次の点については、漠然とした範囲内で、大まかな方針として検討されている。 (1) 但しU+FFxxの互換領域にある文字だけは、できるだけ使わない (全角英数記号文字はできるだけ使わず、いわゆる半角でやる) (2) Unicodeの言語タグ(U+E0000~E007F)は、使用しない RFCでも既に廃止されたため。 (3) 異体字セレクター(IVS) は、使用可能 (渡辺さんの辺の異体字に連番を振って、『渡辺<異体=13 />』のようなこと を可能にする機能) セレクターは後置。検索の際には、まずセレクターを削除して正規化してか ら行なうことで、全ての渡辺さんを簡単に検索できる。 文字をそのまま書くとエディターを選んでしまう可能性があるため、 \x{e0100};のようなエスケープ表記が望ましい。 (4) 連結可能文字の使用も、一応検討(ガをカと連結可能゛で表現するなど)。 (OS XやiOSでは、ファイルシステムレベルで、ガなども分割して格納して いるが、Windowsでは分割はしていない)。 (5) JIS X0213にあって、Unicodeには直接対応する符号位置がない文字があるこ とを念頭に入れておく。 例えば、アイヌ語用文字(カ゜など)は、(4)の連結可能文字との併用となる。 小書きのラリルレロ(ㇻㇼㇽㇾㇿ)は、Unicodeに存在する。 (6) ○数字やローマ数字は、JIS X 0208環境では嫌われていたが、これら文字は 制限されない。 本フォーマットはUnicode環境であり、JIS X 0208と違って仕様として符号位 置が決められている。従って文字化けが起こる可能性はないため、「機種 依存文字」として扱われていたJIS X 0208環境とは、異なるものである。 (6-a) 更に進んで、記号類の使用についても、利用者の判断において自由である。 ============================================================================ 5. 構造 とりあえず、RDとYAMLとWikiの仕様がちゃんぽんになっているとして 提案されたものを改良し、更にTeXの仕様を導入した。 (様々な機能を利用してみた例) #まりも (植物) yomi:まりも yomi:ぼるぼっくす spell:ja:marimo spell:en:green alga author:A,2005/01/30,marimo author:R,2005/08/10 12:34,marimo-no-hisyo-1gou author:R,2005/10/01,marimo author:R,2005/10/30 11:22:33,marimo-no-hisyo-5gou author:R,2005/10/30,marimo valid:2005/12/31 pos:名詞,@植物etc dir:/NAT/BIO/BIO/N/PR * [[藻]]の一つ。\uline{コロコロしている}。 * とっても可愛いような[[/WDIC/希ガス]]。 = マリモの愛らしさについて = 丸い形状 author:A,2005/08/10,marimo-no-hisyo-1gou * マリモの愛らしさは、その丸い形状にあるのではないか? * △だったり□だったりしたら、果たして愛らしいだろうか? = 緑色 author:A,2005/10/01,marimo * 加えて緑色というのも、ポイントが高いのではないか? * 赤かったりしたら、なんだか毒っぽいではないか。 = 愛らしさエネルギー author:A,2005/10/01,marimo * まりもの'''愛らしさ'''エネルギーは、$E=mc^2$の式\ によって表現されるかもしれない。つまり、デカいほど愛\ らしい。たぶん。 = 大きすぎるマリモの問題点 author:A,2005/10/30,marimo-no-hisyo-5gou * しかし、あまりにも大きすぎる物は、ハッキリ\ いってグロいんじゃないか? = 秘書5号クビの件 author:A,2005/10/30,marimo * グロいとは何事だ! = 結論 * やっぱり本物は\sout{グロい}。 = マリモの種類 :: マリモ|一般的なマリモ :: [[トロマリモ]]|シラルトロ湖などに生息 :: [[フジマリモ]]|富士五湖などに生息 :: [[カラフトマリモ]]|南樺太などに生息 = 生物分類 || [[生物]] || [[原生生物界]] || [[原生生物]] //LINK = 関連するサイト - [[<通信用語の基礎知識>http://www.wdic.org/]] = 該当する品種 - [[トロマリモ]] - [[フジマリモ]] = 関連する地理 - [[/GEO/阿寒湖]] = 関連する用語 - [[まりも (小惑星)]] - [[<まりも (夜行列車)>/RAIL/まりも]] ・各行は、機能を表わす文字または記号と、実際の文章からなる。 5.1 単語ヘッダ部 ・単語ヘッダ部は、必ず英字から始まり、英数字によって機能名を表現する。 ・コロンによって機能名を終端する。 ・次いで引き数を与え、改行によって終端する。 ・実装は、対応するヘッダ項目は適切に読み取り処理する。 ・実装は、未対応のヘッダ項目は、行まるごと無視して読み飛ばす。 5.2 本文部 ・本文部は、必ず記号から始まり、記号または英数字で機能を表現する。 ・空白によって機能名を終端する。 ・次いで引き数を与え、改行によって終端する。 ・原則として、一文は一行で何とかする。 ・でも見やすさを鑑み、文書ファイル内で改行するときは \\ を文末におく。 ・本文中に、子ヘッダを持つことも許される。但し、使用できるものは、 著者および日付に関する情報 author: と、有効期限 valid: や expire: など のみ。 現時点では、= の次にのみ、書くことを想定しておく。 5.3 拡張ブロック部 ・本文部の「後」に、拡張ブロック部を任意の数、連ねることができる。 ・ブロックは //blockname の行によって表示する。 ・blocknameは、大文字と小文字を区別する。 ・ブロック内は一つ以上インデントされ、ブロックの範囲を明示する。 ・現在は、V5との互換性維持を目的とした //LINK のみが定義される(→5.3.1) ・実装は、未対応の拡張ブロック部は読み飛ばさなければならない。 5.3.1 リンク部 ・他のサイト、他の単語へのリンクを連ねた専用のブロックを作ることができる。 ・//LINK の行より始まる。 ・ブロック内は一つ以上インデントされる。 ・外部リンク(URL)と、別の語へのリンクは混在して記述できるが、必ず = によっ てグループ化し、両者は区別してその中に書かなければならない。 ・リンク部においては、一部機能が本文とは違う意味で用いられる - 関連語・外部リンク -! 反義語 //LINK = 外部リンク - [[<通信用語の基礎知識>http://www.wdic.org/]] = 関連語 - [[通信用語の基礎知識]] 次のような記述は、エラーである。URLと単語は混在できない。 //LINK = リンク - [[<通信用語の基礎知識>http://www.wdic.org/]] - [[通信用語の基礎知識]] ============================================================================ 6. 実例 6.1 想定する機能実装 [ヘッダ部] 機能名:情報 を行指向で連ねる。【機能名は必ず英字から始める】 ソフトウェアは、機能名をまず認識し、未対応のものは無視してよい。 ※はWDICとして必須であり、少なくとも一つ必要。 yomi: ※単語の読み。一つ以上、qyomiを含めて三つ以下。読みは一つで1行とする。 qyomi: 単語の読み(歴史的仮名遣ひ)。任意。yomiを含めて三つ以下。 spell: 英字等による表記 「spell:言語名:内容」とする。一つで1行とする。 pron: 発音「pron:言語名:内容」とする。一つで1行とする。 pos: 品詞。半角カンマ区切りで複数個指定可能 dir: ディレクトリ (1行1ディレクトリ、最大16個(16行)まで) flag: フラグ。実装依存。 半角カンマ区切りで複数個指定可能 flag:SPL,JOKE SPL 口語(SPoken Language)体であることを示す(注意喚起文表示用)。 JOKE 冗談であることを示す(注意喚起文表示用)。 MEDICAL 医療関係の語であることを示す(注意喚起文表示用)。 PHARM 医薬品関係の語であることを示す(注意喚起文表示用)。 MISS 間違い用語の解説であることを示す DQN DQN語、厨房語の解説であることを示す その他は予約 将来的にオプションが必要な機能を追加する場合は、() ないし {} で 囲む ※検討課題 実装は、フラグを認識するに際し、未対応のフラグを検出したらその部 分だけを無視して読み飛ばすこと。他に対応可能な機能があれば、それ は処理せねばならない。 author: 著者、更新者、承認者、追加者等の情報 author:処理内容,日付時刻,名前,ソース 処理内容は次のとおり A (Add) 新規に書いた人 R (Renew) 更新した人 I (Insert) 貰った内容を無編集で辞書に登録した人 日付時刻は次のとおり 2005/01/23 月・日はゼロパディングする 時刻を付与することも可能で、その時はこうする。 2005/01/23 11:22 2005/01/23 11:22:33 1つスペースを開け、hh:mmまたはhh:mm:ssとする。 ソースは次のとおり 本の場合はISBN、雑誌の場合はISSN、双方無い場合は別途検討。 Webサイトの場合は、URLを書くか、またはURLごとに振られた 専用のIDを記述する。 これらは別途、データベースによって管理され、Webサイトにて 公開される。 例えば、 urn:isbn:4-12-345678-9 urn:issn:1234-5678 http://www.wdic.org/ x-web:0001-0001-01 使用例(日付・名前・ソースはセミコロン区切りで複数可能、また省略も可能) ソースを書かない場合 author:A,2005/01/01,marimo ソースを書く場合 author:A,2005/01/01,marimo,urn:isbn:4-12-345678-9 author:A,2005/01/01,marimo,urn:isbn:4-12-345678-9 author:A,2005/01/01,marimo,urn:isbn:4-12-345678-9;urn:isbn:4-98765-432-1 valid: 原稿内容の有効期限 valid:有効となる最終日付 または valid:有効期限 一つのヘッダ内に、どちらか一方のみを記述することができる。 (複数記述した場合はエラーとする) 原稿内容が、ある一定の期日までしか有効でないことが自明である場合、 あらかじめこの項目を定義しておくことで、利用者はそれを容易に判断 することができる。 (意図するところ) 「この記事は既に古くなっているがまだある程度の事実を含んでおり、 参考になる」 などのメッセージとともに、既存の内容は原則として表示するために 使用する。もし、内容すべてが役に立たないときには後述のexpireを 使用する。 使用例 valid:9999/12/31 valid:2 week ・有効期限にはday, week, month, year があり、数値に続いて何日 (週間あるいは何ヶ月や何年)を指定する。 ・数値は必ず正の整数である。 ・authorで最後に記述された更新日から指定した日付けまでを有効と する。 valid:は、必ずauthor:の後に書かなければならない(有効期限の算出 を簡単にするため)。 author:が無い時に valid:2 week などに出逢った場合、その行は無 視して構わない。 expire: 有効となる最終日付 (原稿内容の破棄機能) expire:有効となる最終日付 (意図するところ) 「この記事はexpireの期日以前は事実だったが、現在は正しくない可 能性が高い」 などのメッセージとともに、既存の内容は原則として表示しないか、 または同意した人にのみ参考として表示するために使用する。 条件 validと併用可能だが、validよりもexpireの方が先に到達した場合、 expireが優先される。 同じ日付の場合も expireが優先される。 6.2 想定する機能実装 [本文部] 本文部に本文を記述する。行頭にその行を表わす記号を置き、空白を一つあけて 文章を書く。【機能名は必ず記号から始める】 英字から始まるか、記号から始まるか、で、ヘッダ部と本文部の区切りを判断 するため、本文部で用いる行頭の合図は全て記号から始まる。 6.2.1 <章> ・章は = から始める。 ・単に = とすれば、Web検索ではおそらく、

に変換して表示されるだろう ・=の中では一つタブでインデントする。 ・その中で更に = を使えば、一つインデントなら

に、 その中でさらにインデントしていたら

に、 その中でさらにインデントしていたら

に、 その中でさらにインデントしていたら
となるだろう。 ・=を置くインデントは5回目までゆるされる。 ・それぞれ、大見出し、中見出し、小見出し、小小見出し、小小小見出しと 呼ぶことにする。 ・章立てされた項目は、表示の際に先頭に目次化することも可能(実装依存) ※なお、h1 は単語名やヘッダ表示部を想定している。 ※HTMLではh6まで存在するので、この仕様においても、それに準拠する。 6.2.2 <文章> ・文は * から始める。この時、ソフトウェア的には、単にそのまま処理さ れる(表示される)ことを想定する。但し行頭は一文字程度、自動でインデント されるかもしれない(実装依存) * ほげほげ → |ほげほげ 6.2.3 <箇条書き> ・箇条書きは、二種類ある。・で表示される箇条書きと、数字で表示される箇 条書きである。HTML的にいえば、