Switchboard DAMSL Dialogue Act Corpus (SwDA)
The Switchboard Dialog Act Corpus tags telephone conversations with the SWBD-DAMSL tagset (Jurafsky, Shriberg, Biasca, 1997). This Potato config reproduces the 42-tag dialogue act labeling task on conversational turns.
About this dataset
The Switchboard Dialog Act Corpus (SwDA) extends the Switchboard-1 Telephone Speech Corpus by adding dialogue act tags to each conversational turn. The annotation project was carried out at the University of Colorado, Boulder, with the SWBD-DAMSL coding manual released by Daniel Jurafsky, Elizabeth Shriberg, and Debra Biasca in 1997.
The corpus covers 1,155 five-minute telephone conversations from 441 speakers of American English. Annotators labeled roughly 221,000 utterance segments, drawing on the SWBD-DAMSL tagset adapted from the Dialog Act Markup in Several Layers (DAMSL) scheme.
The full SWBD-DAMSL inventory holds about 220 tag combinations, which most later work collapses into 42 dialogue act labels to raise per-class frequency and inter-annotator agreement. The 42 labels include statement-non-opinion (sd), acknowledge or backchannel (b), statement-opinion (sv), agree or accept (aa), and yes-no questions (qy). Researchers use the data to train and evaluate dialogue act classifiers for conversational speech.
The Potato config below reproduces the dialogue act labeling task: each turn is shown in conversational context and an annotator assigns one tag from a representative 27-tag subset of the 42-label SWBD-DAMSL set.
- Conversations
- 1,155
- Speakers
- 441 (American English)
- Tagged utterances
- ~221,000
- Dialogue act tags
- 42 (collapsed set)
- Tagset
- SWBD-DAMSL
- Released
- 1997, UC Boulder
Configuration Fileconfig.yaml
This Potato config reproduces the annotation task. Save it as config.yaml and run potato start config.yaml to try it.
# SWBD-DAMSL Dialogue Act Annotation
# Based on Jurafsky et al., 1997
# Manual: https://web.stanford.edu/~jurafsky/ws97/manual.august1.html
# Dataset: https://github.com/CornellNLP/ConvoKit
#
# Key principles:
# - Label based on pragmatic function, not grammatical form
# - Utterances can have both forward and backward functions
# - Context matters for interpretation
# - Default to sd (statement-non-opinion) when uncertain
#
# Forward functions: What the speaker is trying to accomplish
# Backward functions: How the utterance relates to previous turns
annotation_task_name: "SWBD-DAMSL Dialogue Act Annotation"
task_dir: "."
data_files:
- sample-data.json
item_properties:
id_key: "id"
text_key: "utterance"
context_key: context
output_annotation_dir: "annotation_output/"
output_annotation_format: "json"
annotation_schemes:
# Primary dialogue act
- annotation_type: radio
name: primary_act
description: "Select the PRIMARY dialogue act for this utterance"
labels:
# Statements
- "sd: Statement-non-opinion"
- "sv: Statement-opinion"
# Questions
- "qy: Yes-No-Question"
- "qw: Wh-Question"
- "qo: Open-Question"
- "qr: Or-Question"
- "^d: Declarative-Question"
- "^g: Tag-Question"
- "qh: Rhetorical-Question"
# Directives
- "ad: Action-directive"
- "co: Commit"
# Conventional
- "fp: Conventional-opening"
- "fc: Conventional-closing"
- "ft: Thanking"
- "fa: Apology"
# Backchannels & Acknowledgments
- "b: Backchannel"
- "bk: Acknowledge-answer"
- "ba: Appreciation"
# Answers
- "ny: Yes-answer"
- "nn: No-answer"
- "no: Other-answer"
# Agreement/Disagreement
- "aa: Accept/Agree"
- "ar: Reject/Disagree"
- "am: Maybe"
# Special
- "%: Uninterpretable"
- "x: Non-verbal"
- "+: Continuation"
keyboard_shortcuts:
"sd: Statement-non-opinion": "s"
"sv: Statement-opinion": "v"
"qy: Yes-No-Question": "y"
"qw: Wh-Question": "w"
"b: Backchannel": "b"
"aa: Accept/Agree": "a"
"ny: Yes-answer": "1"
"nn: No-answer": "2"
tooltips:
"sd: Statement-non-opinion": "Descriptive/narrative statements the listener cannot dispute"
"sv: Statement-opinion": "Opinions or viewpoints the listener could disagree with"
"qy: Yes-No-Question": "Questions expecting yes/no responses"
"qw: Wh-Question": "Questions with who, what, where, when, why, how"
"qo: Open-Question": "Open-ended questions like 'How about you?'"
"qr: Or-Question": "Questions offering alternative choices"
"^d: Declarative-Question": "Statement syntax with question intonation/pragmatics"
"^g: Tag-Question": "Statements with confirmation-seeking tags"
"qh: Rhetorical-Question": "Questions not seeking literal answers"
"ad: Action-directive": "Commands, requests, or proposals for action"
"co: Commit": "Speaker commits to future action"
"fp: Conventional-opening": "Greetings and opening sequences"
"fc: Conventional-closing": "Farewells and closing sequences"
"ft: Thanking": "Expressions of gratitude"
"fa: Apology": "Apologies for interruptions or errors"
"b: Backchannel": "Continuers: uh-huh, yeah, right, mm-hmm"
"bk: Acknowledge-answer": "Acknowledging received answer: 'Oh, okay'"
"ba: Appreciation": "Emotional support or positive assessment"
"ny: Yes-answer": "Affirmative responses to questions"
"nn: No-answer": "Negative responses to questions"
"no: Other-answer": "Other answers: 'I don't know', 'Maybe'"
"aa: Accept/Agree": "Agreement with previous statement or proposal"
"ar: Reject/Disagree": "Disagreement or rejection"
"am: Maybe": "Tentative or partial agreement"
"%: Uninterpretable": "Unclear or abandoned utterances"
"x: Non-verbal": "Laughter, coughs, non-speech sounds"
"+: Continuation": "Continues from speaker's own previous turn"
# Backward functions (optional, for utterances responding to previous turns)
- annotation_type: multiselect
name: backward_functions
description: "Select any BACKWARD functions (how this responds to previous utterance)"
labels:
- "None"
- "aa: Accept/Agree"
- "ar: Reject/Disagree"
- "am: Maybe"
- "b: Backchannel"
- "bk: Acknowledge-answer"
- "ba: Appreciation"
- "ny: Yes-answer"
- "nn: No-answer"
tooltips:
"None": "No backward-looking function"
"aa: Accept/Agree": "Agreement with previous statement"
"ar: Reject/Disagree": "Disagreement or rejection"
"am: Maybe": "Tentative or partial agreement"
"b: Backchannel": "Continuer signal"
"bk: Acknowledge-answer": "Acknowledging received answer"
"ba: Appreciation": "Emotional support or assessment"
"ny: Yes-answer": "Answering yes to a question"
"nn: No-answer": "Answering no to a question"
allow_all_users: true
instances_per_annotator: 300
annotation_per_instance: 2
allow_skip: true
skip_reason_required: false
Sample Datasample-data.json
[
{
"id": "swbd_001",
"context": "[Start of conversation]",
"utterance": "Hello, how are you doing today?",
"speaker": "A"
},
{
"id": "swbd_002",
"context": "A: Hello, how are you doing today?",
"utterance": "Oh, I'm doing pretty well, thanks for asking.",
"speaker": "B"
}
]
// ... and 13 more itemsTry it live — no install
Boot the real Potato server in your browser (WebAssembly) and annotate with this exact config. Nothing leaves your machine.
▶ Run live in your browserGet This Design
Clone or download from the repository
Quick start:
git clone https://github.com/davidjurgens/potato-showcase.git cd potato-showcase/text/dialogue/swbd-damsl-dialogue-acts potato start config.yaml
Dataset & paper
Jurafsky et al., 1997
Citation (BibTeX)
@techreport{jurafsky1997switchboard,
title = "Switchboard {SWBD-DAMSL} Shallow-Discourse-Function Annotation Coders Manual, Draft 13",
author = "Jurafsky, Daniel and Shriberg, Elizabeth and Biasca, Debra",
institution = "University of Colorado, Boulder",
year = "1997",
url = "https://web.stanford.edu/~jurafsky/ws97/manual.august1.html"
}Details
Annotation Types
Domain
Use Cases
Tags
Found an issue or want to improve this design?
Open an IssueRelated Designs
MediTOD Medical Dialogue Annotation
Medical history-taking dialogue annotation based on the MediTOD dataset. Annotators label dialogue acts, identify medical entities (symptoms, conditions, medications, tests), and assess doctor-patient communication quality across multi-turn clinical conversations.
DiaSafety Dialogue Safety Annotation
Safety taxonomy annotation for dialogue systems based on the DiaSafety framework. Annotators classify dialogue responses for context-sensitive unsafety across 6 categories: offending user, risk ignorance, unauthorized expertise, toxicity agreement, biased opinion, and sensitive topic continuation (plus safe).
AfriHate - Hate and Abusive Language for African Languages
Multilingual content-moderation annotation following the AfriHate scheme (Muhammad et al., NAACL 2025), a collection of hate speech and abusive language datasets for 15 African languages including Amharic, Hausa, Igbo, Yoruba, Swahili, Somali and isiZulu. Native speakers familiar with the regional culture assign each tweet a three-way label - hate, abusive, or neutral - and, when the tweet is hateful, mark the targeted attribute (e.g. ethnicity, religion, politics, gender). Sample items are mild, constructed illustrations that avoid real slurs or targeting of real groups; an English gloss is provided for reference only.