Dictionary files

The default dictionary XML is:
resources/dictionary_configs/KidneyStone_SDOH_offline.xml
That XML points to the HSQL dictionary DB inside the cTAKES resources tree:
resources/org/apache/ctakes/dictionary/lookup/fast/KidneyStone_SDOH/KidneyStone_SDOH
The XML uses:
XML partMeaning
JdbcRareWordDictionaryReads term rows from cui_terms.
JdbcConceptFactoryReads concept details from tui, prefTerm, and TEXT.
rxnormTable = TEXTLets RxNorm text/code data come through the concept factory.
codingScheme = KidneyStone_SDOHLabels concepts from this dictionary.
The wrapper does not run that XML raw. It rewrites the JDBC path so resources/... points at the bundled cTAKES home on the current machine, then writes the exact XML used by the run here:
outputs/<batch>/run_dictionary.effective.xml
If the dictionary DB is shared, locked, on a filesystem that needs isolation, or multiple runners are active, the wrapper can clone the HSQL dictionary DB into a private work folder for the process. That avoids multiple Java processes fighting over the same HSQL lock files.

Dictionary metadata

dictionaries/ is not where raw UMLS files go. Commit small release metadata there:
dictionaries/<dictionary-id>/manifest.json
dictionaries/<dictionary-id>/inventory.json
dictionaries/<dictionary-id>/review.md
Do not commit:
UMLS RRF files
patient notes
generated HSQLDB folders
large terms.bsv files
The current repo keeps the runnable dictionary in the curated cTAKES bundle and the dictionary XML recipes in resources/dictionary_configs/.