辞書の書き方
用語集・名言集・年表などを、私典の辞書 XML で書く方法です。
全体の形
辞書 XML は、単語の辞書に限らない「見出しの集まり」を書く形式です。どう並べるか、何でまとめるか、どんな項目を持つかを、辞書の中で宣言します。
<?xml version="1.0" encoding="UTF-8"?>
<Dictionary version="1" id="lawterms" title="マイ法律用語辞典" lang="ja">
<Kinds>
<Kind id="term">法令用語</Kind>
</Kinds>
<Collections>
<Collection id="minpo">民法</Collection>
</Collections>
<Fields>
<Field id="importance" label="重要度" type="number" sortable="true" listVisible="true"/>
</Fields>
<Sorts>
<Sort id="reading" label="読み順" key="reading"/>
<Sort id="importance" label="重要度が高い順" key="field:importance" asc="false"/>
</Sorts>
<Browse group="kanaRow"/>
<Layout kind="headwordPrimary"/>
<Entry> … </Entry>
<Entry> … </Entry>
</Dictionary>
見出しの <Entry> が 1 件以上あれば、ほかはすべて省略できます。いちばん小さい辞書は、<Dictionary> の中に <Entry> を並べただけのものです。
<Kinds>・<Collections>・<Fields>・<Sorts> は、外側の要素も必ず書きます。<Dictionary> のすぐ下に <Kind> を書いても読まれません。
辞書の情報
<Dictionary> の属性です。
| 属性 | 内容 |
|---|---|
version | 形式の版。今は 1。省略すると 1 として読みます |
id | 辞書の ID。ほかの辞書からリンクするときの宛先になります |
title | 辞書の名前。省略すると「辞書」になります |
lang | 言語。ja か en。用例のかぎ括弧など、本文に添える記号がこの言語に合わせて変わります |
種類とタグ
種類は品詞のような分類で、1 つの見出しに 1 つ付けます。タグ(コレクション)は、1 つの見出しにいくつでも付けられます。
<Kinds>
<Kind id="term">法令用語</Kind>
</Kinds>
<Collections>
<Collection id="minpo">民法</Collection>
<Collection id="frequent">頻出</Collection>
</Collections>
id を省くと、表示名がそのまま ID になります。
次の品詞は、宣言しなくても ID だけで使えます。同じ ID を宣言すると、表示名を変えられます。
noun 名詞 / properNoun 固有名詞 / pronoun 代名詞 / verb 動詞 / adjective 形容詞 / adjectivalNoun 形容動詞 / adverb 副詞 / adnominal 連体詞 / conjunction 接続詞 / interjection 感動詞 / particle 助詞 / auxiliary 助動詞 / prefix 接頭語 / suffix 接尾語 / counter 助数詞 / phrase 連語
独自の項目
重要度・年・話者など、辞書ごとに独自の項目を <Field> で足せます。
| 属性 | 内容 |
|---|---|
id | 項目の ID |
label | 表示名 |
type | 値の種類。text(既定)か number。数で並べる項目は number にします |
sortable | 並べ替えに使う項目の印。並べ方の選択肢そのものは <Sort> で作ります |
groupable | true なら、この項目でまとめられます |
searchable | true なら、検索の対象になります |
listVisible | true なら、見出しの一覧に値を出します |
true / false の代わりに 1 / 0 とも書けます。値は見出しの中で <Field id="importance">5</Field> のように書きます。
並べ方とまとめ方
並べ方は <Sorts> に <Sort> を並べて書きます。最初の <Sort> が、開いたときの並びになります。何も書かなければ読み順です。
key の値 | 並べ方 |
|---|---|
reading | 読み(<Reading>)の順。読みの無い見出しは見出し語で並べます |
headword | 見出し語の順 |
field:項目の ID | 独自の項目の値の順。数で並べるなら、項目の type を number にします |
asc="false" を付けると逆順(大きい順・新しい順)になります。
まとめ方は <Browse group="…"/> で 1 つ選びます。
group の値 | まとめ方 |
|---|---|
none | まとめない(既定) |
kanaRow | 五十音の行(あ行・か行…) |
kind | 種類ごと |
collection | タグごと |
field:項目の ID | 独自の項目の値ごと |
見せ方
<Layout kind="…"/> で、見出しを開いたときの見せ方を選びます。
headwordPrimary(既定):見出し語を大きく出す、単語の辞書の見せ方です。contentPrimary:本文を大きく出す見せ方です。名言集のように、本文が主役の辞書に向きます。
見出し
<Entry id="zeni" kind="noun" collections="minpo frequent">
<Headword>善意</Headword>
<Reading>ぜんい</Reading>
<Variant>善意者</Variant>
<Field id="importance">5</Field>
<Sense>
<Definition>ある事実を<Em>知らない</Em>こと。⇔<Ref entry="akui">悪意</Ref></Definition>
<Example>善意の第三者は保護される。<Source law="129AC0000000089" anchor="art_94_p2">民法94条2項</Source></Example>
<Note label="注">道徳的な善悪の意味は含まない。</Note>
</Sense>
<Sense>
<Definition>他人のためを思う気持ち。</Definition>
</Sense>
<Etymology>ラテン語 bona fides の訳語。</Etymology>
</Entry>
| 要素・属性 | 内容 |
|---|---|
id | 見出しの ID。ほかの見出しからリンクするときの宛先になります |
kind | 種類。1 つだけ |
collections | タグ。空白かカンマで区切って複数 |
<Headword> | 見出し語 |
<Reading> | 読み。読み順の並びと五十音のまとめに使います |
<Variant> | 別の書き方。いくつでも書け、検索の対象になります |
<Sense> | 語義。いくつでも書けます。2 つ以上あると①②…と番号が付きます |
<Definition> | 語義の説明 |
<Example> | 用例。かぎ括弧で囲んで表示します |
<Note> | 注記。label に見出し(「注」など)を書きます |
<Etymology> | 語源 |
<Source> | 出典。語義の中にも、見出しの直下にも書けます |
本文は、語義、語源、見出しの出典の順に表示します。XML に書いた順ではありません。
本文の飾り
本文の中では、次の飾りを使えます。
| 書き方 | 表示 |
|---|---|
<Em>強調</Em> | 太字 |
<Em style="dots">傍点</Em> | 文字の上に点 |
<Foreign>culpa</Foreign> | 原語(斜体) |
<Ruby>漢字<Rt>かんじ</Rt></Ruby> | ルビ |
<Sup>上</Sup> / <Sub>下</Sub> | 上付き / 下付き |
<Line style="dotted">傍線</Line> | 傍線。style に solid(既定)・dotted・double・none |
ここに無い要素は、タグだけを無視して中の文字を表示します。
リンク
<Ref> と <Source> で、ほかの見出し・辞書・法令・Web ページへリンクできます。属性の書き方はどちらも同じです。
| 宛先 | 書き方 |
|---|---|
| 同じ辞書の見出し | <Ref entry="見出しの ID">…</Ref> |
| ほかの辞書 | <Ref dict="辞書の ID">…</Ref> |
| ほかの辞書の見出し | <Ref dict="辞書の ID" entry="見出しの ID">…</Ref> |
| e-Gov の法令 | <Source law="法令 ID">…</Source> |
| 法令の条・項・号 | <Source law="法令 ID" anchor="art_94_p2">…</Source> |
| Web ページ | <Ref url="https://…">…</Ref> |
法令 ID は e-Gov 法令検索で使われている ID です(民法なら 129AC0000000089)。
anchor は条・項・号を指します。第九十四条は art_94、第三十八条の三は art_38_3、第九十四条第二項は art_94_p2、第九十四条第二項第一号は art_94_p2_i1 と書きます。e-Gov 法令検索の URL の末尾にある Mp-At_94-Pr_2 のような書き方も、そのまま使えます。附則や章は指せず、法令の先頭が開きます。
宛先を 2 つ以上書いたときは、url、law、dict、entry の順に先にあるものを使います。
書くときの注意
- 本文は 1 行に書きます。
<Definition>などの中で改行や字下げをすると、その分が空白として表示されます。<Example>だけは前後の空白を取り除きます。 - 見出しの
idは辞書の中で重ねません。 重なっていると取り込めません。 - 同じ見出し語・同じ読みの見出しが複数あるときは、
idを付けます。 付けないと、並べ替えたときに見出しの見分けがずれることがあります。 - 属性の名前は小文字で始めます(
title、listVisible)。大文字・小文字を間違えても読めますが、要素の名前は正確に書かないと読まれません。 - 属性の値を間違えたとき(
group="kanarow"など)は、取り込みは止まらず、既定の値で読みます。並びやまとめ方が思ったとおりにならないときは、値を見直してください。