- Clone this repo
- Download dpd.db.tar.bz2 from this page,
- Unzip and place it in the root of the project folder
- Install poetry
- In the terminal, run
poetry install
- See
scripts/db_search_example.py
for a quick tutorial on how to use the database with SQLAlchemy
There are four main parts to the code:
- Create the database and build up the tables of derived data.
- Add new words, edit and update the db with a GUI.
- Run data integrity tests on the db.
- Compile all the parts and export into various dictionary formats.
DpdHeadwords
andDpdRoots
tables are the heart of the db, everything else gets derived from those.- They have a relationship
DpdHeadwords.rt.
to access any root information. For example,DpdHeadwords.rt.root_meaning
- There are also lots of
@properties
indb/models.py
to access useful derived information. DpdHeadwords
table also contains lists of inflections of every word in multiple scripts, as well as html inflection tables.FamilyCompound
table is html of all the compound words which contain a specific word.FamilyRoot
table is html of all the words with the same prefix and root.FamilySet
table is html of all the words which belong to the same set, e.g. names of monks.FamilyWord
table is html of all the words which are derived from a common word without a root.InflectionTemplates
table are the templates from which all the inflection tables are derived.
- Download this repo
- Get tipitaka-xml with
git submodule init && git submodule update
commands - Install nodejs
- Install poetry
poetry install
poetry run bash scripts/bash/initial_setup_run_once.sh
poetry run bash scripts/bash/build_db.sh
- To be able to run database tests you may need to install some of these packages.
That should create an SQLite database ./dpd.db
which can be accessed by DB Browser, DBeaver, through SQLAlechmy or your preferred method.
For a quick tutorial on how to access any information in the db with SQLAlchemy, see scripts/db_search_example.py
.
db/deconstructor/sandhi_splitter.py
runs with the config option deconstructor.all_texts = yes
, it will take several hours to complete.
Starting with a fresh clone of the tip:
git clone --depth=1 https://github.com/digitalpalidictionary/dpd-db.git
cd dpd-db
git submodule init && git submodule update
poetry install
poetry run bash scripts/bash/build_and_make_all.sh
This creates the dpd.db
SQLite database. Also it extract all dictionaries see folder exporter/share