Centering Theory — Transitions #
The three transition types (continuation / retaining / shifting), their
classification, the discourse-level scan (transitions, cbs,
coherenceScore), and their preference structure: the LinearOrder and
pairRank ("Rule 2" of [GJW95], stated over
sequences) and [Str98]'s cheap/expensive distinction (isCheap).
classifyTransitionStrict is faithful to GJW Def 4;
classifyTransitionExtended applies the worked-example convention for
the segment-initial case. The [BFP87] 4-way
variant lives in Studies/PoesioEtAl2004.lean.
Transition Type #
Three transition types between consecutive utterances ([GJW95] Def 4).
- continuation : Transition
- retaining : Transition
- shifting : Transition
Instances For
Equations
- Discourse.Centering.instDecidableEqTransition x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Rule 2 preference order: continuation > retaining > shifting.
Equations
Instances For
LinearOrder via rank, exposing <, ≤, max for Rule 2 statements.
Strict and Extended Classification #
Strict classification (faithful to GJW Def 4): returns none in
the segment-initial case where the prior Cb is undefined.
Equations
- Discourse.Centering.classifyTransitionStrict prev cur prevCb✝ = some Discourse.Centering.Transition.shifting
- Discourse.Centering.classifyTransitionStrict prev cur none = none
- Discourse.Centering.classifyTransitionStrict prev cur (some pcb) = some (Discourse.Centering.classifyTransitionInternal✝ curCb cur.cp pcb)
Instances For
Extended classification: applies the worked-example convention for the segment-initial case (treats missing prior Cb as if equal to current Cb).
Equations
- One or more equations did not get rendered due to their size.
Instances For
The two classifications agree whenever the strict variant is defined.
Discourse-level scan #
The backward-looking center of each adjacent pair along a discourse.
Equations
- Discourse.Centering.cbs (u₁ :: u₂ :: rest) = Discourse.Centering.cb u₁ u₂ :: Discourse.Centering.cbs (u₂ :: rest)
- Discourse.Centering.cbs x✝ = []
Instances For
Transition sequence along a discourse from a given prior Cb, threading each pair's Cb as the next pair's prior Cb.
Equations
- One or more equations did not get rendered due to their size.
- Discourse.Centering.transitionsFrom prevCb x✝ = []
Instances For
Transition sequence of a discourse segment (segment-initial prior Cb undefined).
Equations
Instances For
Sum-of-ranks coherence measure over a discourse's transition sequence — the sequence form of "Rule 2" ([GJW95]).
Equations
- Discourse.Centering.coherenceScore d = (List.map Discourse.Centering.Transition.rank (Discourse.Centering.transitions d)).sum
Instances For
Transition preference #
Sequence preference ("Rule 2" of [GJW95]) compares pairs of transitions by sum-of-ranks.
Equations
- Discourse.Centering.pairRank t₁ t₂ = t₁.rank + t₂.rank
Instances For
A transition is cheap ([Str98]) if CB(U_n) = CP(U_{n-1}):
the previous utterance's preferred center predicts the current CB.
Equations
- Discourse.Centering.isCheap prev cur prevCp = (Discourse.Centering.cb prev cur = prevCp ∧ (Discourse.Centering.cb prev cur).isSome = true)
Instances For
Equations
- Discourse.Centering.isCheap.decidable prev cur prevCp = Discourse.Centering.isCheap.decidable._aux_1 prev cur prevCp