# JMdict (English): source and changes

Generated by `npm run lexicon -- build`. Do not edit by hand: the unit
tests check every file here against `index.json` and against the address
the folder is served at (see below).

## Source

- Dataset: JMdict (English), https://www.edrdg.org/wiki/index.php/JMdict-EDICT_Dictionary_Project
- Copyright: James William Breen and the Electronic Dictionary Research and Development Group
- License: Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0), https://creativecommons.org/licenses/by-sa/4.0/ (terms: https://www.edrdg.org/edrdg/licence.html)
- File: https://www.edrdg.org/pub/Nihongo/JMdict_e.gz
- Release: 2026-10-08
- SHA-256 of the file as downloaded: `3d5fc0a0f768df4d044744732348f09a47db97a6286c2de1d565e5766212a1ea` (10582530 bytes)
- Adopted into Kiku: 2026-10-08

## What Kiku changed

- Kept per entry: the entry number, kanji forms and readings (with their common-word flags, newspaper frequency bands and information codes), and senses (part of speech, misc, field and dialect codes, English glosses, restrictions and sense notes).
- Dropped: cross-references, antonyms, loanword sources, example sentences, and each gloss's type (`g_type`: literal, figurative, explanatory or trademark); the gloss text itself is kept.
- Part of speech is written on every sense: JMdict leaves it off a sense that shares the previous sense's.
- Priority codes became a common-word flag (news1, ichi1, spec1, spec2 or gai1) and a frequency band (nf01 to nf48).
- English strings that would fail Kiku's served-bytes language check are withheld and counted on their sense: glosses in `w`, sense notes in `wn`. `withheld` below is the total of both.
- Split into `words/` (by a hash of the entry number) and `forms/` (each form and reading to its entry numbers, by a hash of the form); `tags.json` lists the tag codes and their meanings from the JMdict DTD.

## What is here

| | |
|---|---|
| entries | 218875 |
| common | 22645 |
| forms | 465796 |
| withheld | 441 |

The record format is documented in `docs/LEXICON.md` and typed in
`src/lexicon/types.ts` in the Kiku repository.

## Where it is served

Kiku serves this folder at `/data/jmdict/<version>/`, where `<version>` is a
hash of every file in it, this one included, so a changed file always has a
new address. `data/lexicon.json` in the Kiku repository records the version.

## Rebuilding

    npm run lexicon -- fetch    # download, or reuse the cached copy, and check its SHA-256
    npm run lexicon -- build    # rewrite data/derived/ from it

A rebuild from the same file is byte-identical. To move to a newer release:

    npm run lexicon -- update jmdict
