Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Symbols

Status: Reference — partially inaccurate, see warning on the CA section Last updated: 2026-05-11 23:19 EDT

WARNING: The “CA (Conversation Analysis) Delimiters” section below erases a parser-level distinction. The symbol registry (resources/spec/symbols/symbol_registry.json) splits these characters into three grammatical categories with different parser treatment: ca_delimiter_symbols, ca_element_symbols, and word_segment_forbidden_*. ↑ and ↓ attach to a word (book↑ is one token); →, ↗, ↘ are separators that the parser splits as their own nodes. Lumping them together as “CA delimiters” with one semantic is misleading. Until this page is rewritten to mirror the registry, trust the registry. See <workspace>/docs/architecture-review-2026-05-01.md §6 stale-doc entry for this page.

CHAT uses a rich set of symbols for transcription conventions. This page documents the symbol categories and the symbol registry that drives both the grammar and the Rust crates.

Symbol Registry

The authoritative symbol definitions live in resources/spec/symbols/symbol_registry.json. This JSON file is the single source of truth — it generates:

  • Character sets for the tree-sitter grammar (grammar.js)
  • Rust constants for the model and validation crates
  • Validation rules for the spec tool

After any change to the symbol registry, run:

node resources/spec/symbols/validate_symbol_registry.js && node scripts/generate-symbol-sets.js && node resources/spec/symbols/generate_rust_symbol_sets.js

Symbol Categories

Terminators

Punctuation that ends an utterance:

SymbolNameUsage
.PeriodDeclarative
?QuestionInterrogative
!ExclamationExclamatory
+...Trailing offIncomplete utterance
+..?Trailing-off questionQuestion trails off
+/.InterruptionSpeaker interrupted by another
+//.Self-interruptionSpeaker interrupts self
+/?Interrupted questionQuestion interrupted
+!?Broken questionExclamation-question
+"/.Quoted new lineQuotation continues on next line

CA (Conversation Analysis) Delimiters

Symbols used in conversation analysis notation:

SymbolMeaning
↑Rising pitch
↓Falling pitch
→Level pitch
↗Rise-fall
↘Fall-rise
≋Creaky voice
∙Micropause

CA Elements

Symbols that appear within conversation analysis annotations (prosodic marking, stress, etc.).

Word Segment Characters

Characters that are forbidden at the start of words, forbidden in the rest of words, or forbidden throughout. These define the lexical boundaries of what constitutes a “word” in CHAT.

The grammar uses these sets to construct the word-matching regex patterns. Characters like [, ], <, >, (, ) are structural delimiters and cannot appear inside words.

Event Segment Characters

Characters forbidden in event descriptions (&=event content). Events have slightly different lexical rules than words.

Language Codes

CHAT uses ISO 639-3 three-letter language codes in @Languages headers and @s: word markers:

@Languages:	eng, fra
*CHI:	I want a croissant@s:fra .

Common codes: eng (English), fra (French), deu (German), spa (Spanish), zho (Mandarin), jpn (Japanese).

Special Markers

@ Markers (Word-Level)

MarkerMeaning
@s:LANGSecond language word
@lLetter
@cChild-invented form
@fFamily-specific word
@nNeologism
@oOnomatopoeia
@bBabbling
@wpWord play
@siSigned word

& Markers (Events and Fillers)

PrefixMeaning
&=Paralinguistic event (e.g., &=laughs)
&-Filler (e.g., &-um)
&+Phonological fragment (e.g., &+sh)
&~Nonword (e.g., &~mama)
&*Other speaker’s speech event (e.g., &*MOT:word — speech attributed to another speaker)

Scope Markers

MarkerMeaning
[/]Partial retrace — speaker repeats the same words
[//]Full retrace — speaker restarts with different words
[///]Multiple retracing — multiple false starts
[/-]Reformulation — speaker rephrases with different structure
[*]Error
[?]Best guess
[>]Overlap follows
[<]Overlap precedes
[= text]Explanation
[: text]Replacement