DIAAD - Database-oriented, Integrative Architecture for Analyzing Discourse
DIAAD is open-source Python infrastructure for reproducible discourse analysis workflows. It helps organize CHAT transcripts, transcript-derived tables, metadata, manual coding files, reliability checks, blinding, rate calculations, target vocabulary analysis, generated examples, and run artifacts across repeated analyses.
DIAAD is under active development. Output formats, command behavior, and documentation may continue to change before a stable 1.0 release.
Core Capabilities
- Convert CHAT
.chafiles into sample- and utterance-level transcript tables. - Generate coding and reliability workbooks for Complete Utterances, word counts, POWERS, Digital Conversation Turns, and custom templates.
- Select, evaluate, and reselect reliability samples.
- Analyze completed coding files and calculate per-minute rates from speaking-time tables.
- Analyze target vocabulary coverage using built-in or custom resources.
- Encode and decode configured identifier columns for blinding workflows.
- Generate runnable synthetic example projects and generated Example I/O documentation.
- Record resolved configuration, logs, manifests, and other run artifacts for reproducibility.
Installation
DIAAD requires Python >=3.12,<3.13.
Recommended: conda
conda create -n diaad python=3.12
conda activate diaad
python -m pip install diaad
Alternative: venv
Create and activate a virtual environment:
python -m venv .venv
Windows:
.venv\Scripts\activate
macOS/Linux:
source .venv/bin/activate
Install DIAAD:
python -m pip install diaad
Optional dependency groups
python -m pip install "diaad[web]" # local Streamlit web app
python -m pip install "diaad[nlp]" # NLP-backed workflows (spaCy)
python -m pip install "diaad[web,nlp]" # both
If you install the nlp extra and plan to use the default POWERS automation model, also install the required spaCy language model:
python -m spacy download en_core_web_sm
Development installation
git clone https://github.com/nmccloskey/DIAAD.git
cd DIAAD
python -m pip
Quick Start
Check the command-line interface:
diaad --help
Generate a full synthetic example dataset:
diaad examples
Generate examples for one command:
diaad examples --for-command "transcripts tabularize"
Run a basic transcript tabularization command:
diaad transcripts tabularize
Run multiple commands in sequence:
diaad "transcripts tabularize, cus files, words files"
Launch the local web app after installing diaad[web]:
diaad streamlit
The legacy streamlit_diaad launcher is also available.
Project Configuration
For real projects, use a project folder with split configuration files:
your_project/
config/
project.yaml
advanced.yaml
diaad_data/
input/
output/
When run from your_project/, the CLI uses ./config automatically. You can also pass a config source explicitly:
diaad transcripts tabularize --config config
Use a dry run to inspect the resolved configuration before processing data:
diaad transcripts tabularize --dry-run-config --dry-run-config-format yaml
See the manual for the current configuration model and settings.
Documentation
The authored manual is in docs/manual.
Useful entry points:
- Installation
- Command-line operation
- Web app operation
- Configuration
- Functional overview
- Generated Example I/O view
Generated Example I/O pages are built from packaged example specs and should be regenerated rather than edited by hand.
Development and Tests
Install development dependencies:
pip install -e ".[dev,web,nlp]"
Run the test suite:
pytest
Run a specific test file:
pytest tests/test_examples/test_examples.py
Data Privacy
DIAAD can support blinding and organized handling of discourse data, but it is not a de-identification guarantee. For identifiable, sensitive, or difficult-to-deidentify data, prefer local CLI processing and follow the privacy requirements of the project, institution, and data source.
Acknowledgments
DIAAD builds on the broader open-source language-analysis ecosystem and is designed to work downstream of CHAT/TalkBank-oriented workflows. Fuller methodological context and acknowledgments are maintained in the manual.
License
DIAAD is distributed under the MIT License. License metadata is declared in pyproject.toml.
Contact
Please use GitHub Issues for bug reports, feature requests, and documentation problems.
Metadata
Release files for diaad 0.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| diaad-0.3.1.tar.gz | 211.7 kB | Without provenance | Details for diaad-0.3.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| diaad-0.3.1-py3-none-any.whl | Python 3 | none | any | Details for diaad-0.3.1-py3-none-any.whl |
Total release size: 484.8 kB
Release files / diaad-0.3.1.tar.gz
| Download URL | diaad-0.3.1.tar.gz |
|---|---|
| Size | 211.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
dec0b37e6d1b4f9a38c913e3a627b89ac7baf773a19fc2264c9bf22a1f420408
|
|
BLAKE2b-256 checksum How to use checksums |
81d6c75c97dfd1efd49a42d085a7fb66f6491b656e49f21abaac1addec9f4a2b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.12
|
Release files / diaad-0.3.1-py3-none-any.whl
| Download URL | diaad-0.3.1-py3-none-any.whl |
|---|---|
| Size | 273.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c12492cd4781d32404324288e97ac280cb41da086912a2e33200a020352d2067
|
|
BLAKE2b-256 checksum How to use checksums |
0b3b2000b2d901da7bd9fcb8d24162e8e85fd2c1c8f494005154e48e21d6157e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.12
|
Security for diaad 0.3.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.