Database-native infrastructure for reproducible discourse analysis workflows
Project description
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.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file diaad-0.3.1.tar.gz.
File metadata
- Download URL: diaad-0.3.1.tar.gz
- Upload date:
- Size: 211.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dec0b37e6d1b4f9a38c913e3a627b89ac7baf773a19fc2264c9bf22a1f420408
|
|
| MD5 |
97156ffcd817b34b0a440d2a90800ebc
|
|
| BLAKE2b-256 |
81d6c75c97dfd1efd49a42d085a7fb66f6491b656e49f21abaac1addec9f4a2b
|
File details
Details for the file diaad-0.3.1-py3-none-any.whl.
File metadata
- Download URL: diaad-0.3.1-py3-none-any.whl
- Upload date:
- Size: 273.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c12492cd4781d32404324288e97ac280cb41da086912a2e33200a020352d2067
|
|
| MD5 |
6dcaa0aa3f2841abb35842deb171dd9f
|
|
| BLAKE2b-256 |
0b3b2000b2d901da7bd9fcb8d24162e8e85fd2c1c8f494005154e48e21d6157e
|