Skip to main content

Database-native infrastructure for reproducible discourse analysis workflows

Project description

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. A fresh virtual environment is recommended.

python -m venv .venv
.venv\Scripts\activate
pip install diaad

On macOS or Linux, activate the environment with:

source .venv/bin/activate

Optional dependency groups:

pip install "diaad[web]"      # local Streamlit web app
pip install "diaad[nlp]"      # spaCy support for NLP-backed workflows
pip install "diaad[web,nlp]"  # both

If you install the nlp extra and use the default POWERS automation model, also install the spaCy model:

python -m spacy download en_core_web_sm

For development from a local checkout:

git clone https://github.com/nmccloskey/DIAAD.git
cd DIAAD
pip install -e ".[dev,web,nlp]"

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.

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

diaad-0.3.0.tar.gz (211.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

diaad-0.3.0-py3-none-any.whl (272.8 kB view details)

Uploaded Python 3

File details

Details for the file diaad-0.3.0.tar.gz.

File metadata

  • Download URL: diaad-0.3.0.tar.gz
  • Upload date:
  • Size: 211.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for diaad-0.3.0.tar.gz
Algorithm Hash digest
SHA256 c72b30d4ff50a05be3aff31858341e0bf7b86143bf8272d2b33437fe1ca254bd
MD5 e0d2d2cc063c87c04c915b785b34bc5a
BLAKE2b-256 7978f270bf85b4f1cd4d120769f746382bbaec9c0c5c3859fd685913bdc806ed

See more details on using hashes here.

File details

Details for the file diaad-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: diaad-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 272.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for diaad-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b98e15f5ddedf09b37a1f70b3e0ab63908af694a7aa42849f323811129d779a6
MD5 6f078dfe0632e4ebce6214b32d26d53e
BLAKE2b-256 ae5f1a04900d239a27f789c1069c380797184e7b0313de644ae480dec8cff099

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page