The JMdictDB Project


Project Description
Try It!
Code and Documentation


New 2018-09-15: The JMdictDB source code is now using Git for version management instead of Mercurial and the primary repository is now at GitLab: The former JMdictDB Issue tracker based on Roundup has also been discontinued and replaced by the Issues feature of GitLab: Only issues tagged as "Bug" were migrated to GitLab; a decision on where and how to provide access to the old development issues is still pending.
New 2018-06-10 (revised 2018-09-15): is a standalone Python program that uses the conjugation tables developed for the JMdictDB project to demonstrate how simple a table-based Japanese word conjugator can be when using this approach. It has been moved out of JMdictDB to a separate, independent (git) project: (Revised to remove GitHub URL; GitLab is currently the only supported location.)
New 2018-04-26: The JMdictDB web interface now provides a page that lets users change their saved settings (userid, name, email address, password). It is accessed by clicking one's user name after logging in. An "administrator" user privilege level has been added from which any user's settings can be changed.
New 2018-04-01: The templating system user by JMdictDB web interface was changed from SimpleTAL, an implementation of the TAL/TALES attribute language used in Zope, to Jinja2, a somewhat more readable and easier to use template language.
New 2015-08-19: The "Submissions" link at the top of each JMdictDB page now shows an index page with links to updates made "Today", "Yesterday", each day of this year grouped by month, and previous years. The apperance is very close to the databaseupdates.html that Jim Breen was maintaining. Formerly, the Submissions link showed a page of the entries that were updated "today" only.
New 2015-05-05: The contact email of the principle developer of JMdictDB has changed; the various JMdictDB web pages and forms have been updated with the new address in the footer.

Project Description

JMdictDB is an open source project that provides a Postgresql database, Python API and web CGI front-end for storing and maintaining Japanese / multilingual dictionary data, primarily in support of Jim Breen's Japanese-English dictionary projects including: JMdict, JMnedict, Kanjidic2 WWWJDIC and others. Jim runs these projects under the auspices of the Electronic Dictionary Research and Development Group EDRDG).

The goals of this project (in priority order) are:

  1. To create a database to serve as a master repository for the information in the JMdict, EDICT, JMnedict, Examples, Kanjidic and other related files distributed by Jim Breen and the EDRDG.
  2. To provide a web-based system for the submission, review, and approval of corrections and new entries to these data.
  3. To provide freely available software to others who want to use or build upon, "JMdict in a database".
  4. To provide an open-source replacement for the principal author's Microsoft Access based JMdict database. :-)

Discussion of this project takes place on the mailing list (  Jim Breen maintains a web page describing the JMdict project's use of JMdictDB at

The project code is still undergoing active development and no promises are made regarding stability or backward compatibility. However, it is currently in use as the primary repository for the JMdict project dictionary data and the web interface is in use for submitting new entries and corrections to existing entries in WWWJDIC.

All the code developed for this project is GPL'd and maintained in a publicly accessible Git repository (links below). Additional help is welcome; please post to the edict-jmdict mailing list, or email the current principal developer at the address at the bottom of this page.

The code currently consists of scripts to create and load JMdict (and related data such as the JMnedict "Japanese names" file, or the Tatoeba "examples" file) into a Postgresql database, some maintenance and other command line tools, and a set of CGI scripts to allow access and updating of the database using a web browser. The code is written in Python-3 (Python-2 is no longer supported) and is tested under Ubuntu Linux. Earlier versions also ran under Windows-XP with IIS but current viability under Windows is unknown. More information on prerequisites is in the README.txt file.

Try it !

Access to the online test version of JMdictDB. These links access a test database, not the real JMdict database (look for the "DB=jmtest" in the lower right corner of the pages). Please feel free to try these out, including adding any real or junk entries you want. This database is periodically deleted and reloaded with fresh copy of the actual JMdict database. It is also used for testing new versions of the JMdictDB software so it may occasionally be broken or produce anomalous results.

Code and Documentation

jmdictdb -- JMdictDB project hosted at GitLab.
Issue tracker -- Issue tracker (at GitLab) for the JMdictDB project.
jmdictdb.tar.gz -- Download source code, latest development version (gzipped tar file).
README.txt -- The README file, includes prerequisites and install instructions.
schema.pdf -- Comprehensive description of the database schema (2008-11-12).
schema.png -- Diagram of the database schema (200KB, 2008-11-12).

JMdictDB at

The following links provide details about the implementation and use of JMdictDB at Jim Breen's EDRDG (Electronic Dictionary Research and Development Group) website (, for receiving new entry and correction suggestions for wwwjdict: