KOS: NSU Classification (Table 7.3 + Table 7.4) #
@cite{ginzburg-2012} Ch. 7 §7.2 (pp. 219–222) @cite{fernandez-2006}
The empirical taxonomy of non-sentential utterances from @cite{ginzburg-2012} Tables 7.3 and 7.4, derived from the BNC subcorpus study by @cite{fernandez-2006} (200 speaker-turns from 54 BNC files; 14,315 sentences; 1,299 NSUs found, of which 1,283 = 98.9% classified).
Class enumeration (Table 7.3, p. 221) #
Sixteen classes — the original Table 7.3 lists 15 because Sluice (24) is undivided there, but Table 7.4 (p. 222) splits Sluice into Reprise Sluice (13, a metacommunicative query) and Direct Sluice (11, an extension move). To match Table 7.4 functional grouping arithmetic, we adopt the split here.
Functional grouping (Table 7.4, p. 222) #
Four functional categories with cell-summed totals:
| Group | Cell sum | Members |
|---|---|---|
| Positive Feedback | 685 | plainAck (599), repeatedAck (86) |
| Answers | 403 | shortAnswer (188), affirmAnswer (105), rejection (49), repeatedAffirm (26), |
| helpfulRejection (24), propositionalModifier (11) | ||
| Metacommunicative Q's | 132 | clarificationEllipsis (79), repriseSluice (13), checkQuestion (22), filler (18) |
| Extension Moves | 63 | factiveModifier (27), bareModifier (15), conjFrag (10), directSluice (11) |
Cell-sum total: 685 + 403 + 132 + 63 = 1283 ✓ (matches Table 7.3 total).
(Ginzburg's Table 7.4 header totals show 685/413/132/63 = 1293, off by 10 from the cell sums — the 10-utterance discrepancy is internal to the book.)
Anti-pattern avoided: aggregate count theorems #
Earlier formaliser versions had theorem nsu_total_1283 : ... = 1283 and
theorem functional_groups_sum_to_total : pf + ans + mcq + ext = 1283.
Per MEMORY.md feedback_no_aggregate_count_theorems, these go stale on
any data revision and prove nothing about Ginzburg's framework — only
that the formaliser's transcription is internally consistent.
The pattern this file uses instead: a single freqTable source of truth
with a structural coherence theorem (frequency_coherent) that enforces
both NSUClass.frequency and NSUClass.toFunction to agree with the
table per class. If any cell changes, the coherence theorem fails until
both functions are updated — automatic drift detection without numeric
assertions.
The 16 NSU classes from @cite{ginzburg-2012} Table 7.3 + Table 7.4.
Sluice is split into Reprise Sluice (metacommunicative) and Direct Sluice (extension move) per Table 7.4 — the original Table 7.3 had a single Sluice (24) entry but Table 7.4 partitions it 13 + 11.
- plainAcknowledgement : NSUClass
"mmh", "uh-huh" — acknowledges preceding utterance (599).
- shortAnswer : NSUClass
"Bo" — fills argument slot in MaxQUD (188).
- affirmativeAnswer : NSUClass
"Yes" — positive answer to polar query (105).
- repeatedAcknowledgement : NSUClass
"Bo, hmm" — acknowledgement with repetition (86).
- clarificationEllipsis : NSUClass
"Bo?" — clarification ellipsis (79).
- rejection : NSUClass
"No" — negative answer to polar query / assertion (49).
- factiveModifier : NSUClass
"Great!" — factive modifier (27).
- repeatedAffirmativeAnswer : NSUClass
"Bo, yes" — affirmative with repetition (26).
- helpfulRejection : NSUClass
"No, Max" — rejection with helpful alternative (24).
- repriseSluice : NSUClass
"Who?" — bare wh-phrase reprising the antecedent (13).
- directSluice : NSUClass
"Who?" — bare wh-phrase requesting new information (11).
- checkQuestion : NSUClass
"Okay?" — rising-intonation check (22).
- filler : NSUClass
"uh", "well" — hesitation / floor-holding (18).
- bareModifierPhrase : NSUClass
"Yesterday" — bare modifier phrase (15).
- propositionalModifier : NSUClass
"Maybe" — propositional modifier (11).
- conjunctionFragment : NSUClass
"And Max" — conjunction + fragment (10).
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Dialogue.KOS.instReprNSUClass = { reprPrec := Dialogue.KOS.instReprNSUClass.repr }
Equations
- Dialogue.KOS.instDecidableEqNSUClass x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Functional grouping from @cite{ginzburg-2012} Table 7.4 (p. 222).
- positiveFeedback : NSUFunction
Positive feedback (685): plain + repeated acknowledgement.
- answer : NSUFunction
Answers (403): short, affirmative, rejection, repeated affirmative, helpful rejection, propositional modifier.
- metacommunicativeQuery : NSUFunction
Metacommunicative queries (132): CE + reprise sluice + check + filler.
- extensionMove : NSUFunction
Extension moves (63): factive modifier + bare modifier + conj+frag
- direct sluice.
Instances For
Equations
- Dialogue.KOS.instReprNSUFunction = { reprPrec := Dialogue.KOS.instReprNSUFunction.repr }
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Dialogue.KOS.instDecidableEqNSUFunction x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Single source of truth for Tables 7.3 + 7.4: each row pairs an NSU class with its functional group and BNC frequency. Every entry below is verifiable against the published tables.
Updating Table 7.3 or Table 7.4 means editing exactly one row here; the
coherence theorem frequency_coherent ensures NSUClass.frequency and
NSUClass.toFunction stay in sync.
Equations
- One or more equations did not get rendered due to their size.
Instances For
All 16 NSU classes, ordered to match freqTable.
Equations
- Dialogue.KOS.allNSUClasses = List.map (fun (x : Dialogue.KOS.NSUClass × Dialogue.KOS.NSUFunction × Nat) => x.fst) Dialogue.KOS.freqTable
Instances For
BNC frequency for each NSU class (Table 7.3 cell + Table 7.4 sluice split).
Equations
- Dialogue.KOS.NSUClass.plainAcknowledgement.frequency = 599
- Dialogue.KOS.NSUClass.shortAnswer.frequency = 188
- Dialogue.KOS.NSUClass.affirmativeAnswer.frequency = 105
- Dialogue.KOS.NSUClass.repeatedAcknowledgement.frequency = 86
- Dialogue.KOS.NSUClass.clarificationEllipsis.frequency = 79
- Dialogue.KOS.NSUClass.rejection.frequency = 49
- Dialogue.KOS.NSUClass.factiveModifier.frequency = 27
- Dialogue.KOS.NSUClass.repeatedAffirmativeAnswer.frequency = 26
- Dialogue.KOS.NSUClass.helpfulRejection.frequency = 24
- Dialogue.KOS.NSUClass.repriseSluice.frequency = 13
- Dialogue.KOS.NSUClass.directSluice.frequency = 11
- Dialogue.KOS.NSUClass.checkQuestion.frequency = 22
- Dialogue.KOS.NSUClass.filler.frequency = 18
- Dialogue.KOS.NSUClass.bareModifierPhrase.frequency = 15
- Dialogue.KOS.NSUClass.propositionalModifier.frequency = 11
- Dialogue.KOS.NSUClass.conjunctionFragment.frequency = 10
Instances For
Functional group for each NSU class (Table 7.4 partitioning).
Equations
- Dialogue.KOS.NSUClass.plainAcknowledgement.toFunction = Dialogue.KOS.NSUFunction.positiveFeedback
- Dialogue.KOS.NSUClass.repeatedAcknowledgement.toFunction = Dialogue.KOS.NSUFunction.positiveFeedback
- Dialogue.KOS.NSUClass.shortAnswer.toFunction = Dialogue.KOS.NSUFunction.answer
- Dialogue.KOS.NSUClass.affirmativeAnswer.toFunction = Dialogue.KOS.NSUFunction.answer
- Dialogue.KOS.NSUClass.rejection.toFunction = Dialogue.KOS.NSUFunction.answer
- Dialogue.KOS.NSUClass.repeatedAffirmativeAnswer.toFunction = Dialogue.KOS.NSUFunction.answer
- Dialogue.KOS.NSUClass.helpfulRejection.toFunction = Dialogue.KOS.NSUFunction.answer
- Dialogue.KOS.NSUClass.propositionalModifier.toFunction = Dialogue.KOS.NSUFunction.answer
- Dialogue.KOS.NSUClass.clarificationEllipsis.toFunction = Dialogue.KOS.NSUFunction.metacommunicativeQuery
- Dialogue.KOS.NSUClass.repriseSluice.toFunction = Dialogue.KOS.NSUFunction.metacommunicativeQuery
- Dialogue.KOS.NSUClass.checkQuestion.toFunction = Dialogue.KOS.NSUFunction.metacommunicativeQuery
- Dialogue.KOS.NSUClass.filler.toFunction = Dialogue.KOS.NSUFunction.metacommunicativeQuery
- Dialogue.KOS.NSUClass.factiveModifier.toFunction = Dialogue.KOS.NSUFunction.extensionMove
- Dialogue.KOS.NSUClass.bareModifierPhrase.toFunction = Dialogue.KOS.NSUFunction.extensionMove
- Dialogue.KOS.NSUClass.conjunctionFragment.toFunction = Dialogue.KOS.NSUFunction.extensionMove
- Dialogue.KOS.NSUClass.directSluice.toFunction = Dialogue.KOS.NSUFunction.extensionMove
Instances For
Coherence: every class has a row in freqTable whose function-tag
and frequency match the per-class projections. Updating the table without
updating the projections (or vice versa) breaks this theorem.
This is the structural drift sentry that replaces the previous aggregate
nsu_total_1283 and functional_groups_sum_to_total count theorems.
All 16 classes are present in the freqTable (in order).