Skip to main content

DIAAD - Database-oriented, Integrative Architecture for Analyzing Discourse

PyPI version Python License Streamlit App

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 .cha files 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:

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)

Source distribution for diaad 0.3.1
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)

Table of built distributions (wheels) for diaad 0.3.1
File Interpreter ABI Platform Actions
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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page