Accent Assignment and Tone Derivation #
@cite{hayes-1995} @cite{kawahara-2015}
Language-general accent assignment rules and the accent-to-tone derivation for pitch accent systems.
Accent Assignment Rules #
Two rules that derive default accent position from syllable weight:
Antepenultimate Accent Rule (AAR): accent falls on the syllable containing the antepenultimate (3rd-from-last) mora. This is the traditional characterization of the default accent pattern in Japanese (@cite{mccawley-1968}).
Latin Stress Rule (LSR): accent falls on the penultimate syllable if heavy, otherwise on the antepenultimate. @cite{kubozono-2008} argues the LSR better characterizes Japanese loanword accentuation, capitalizing on the cross-linguistic parallel with Latin stress (@cite{hayes-1995}).
Accent-to-Tone Derivation #
For pitch-accent languages like Japanese, surface tonal patterns are fully determined by accent location. The derivation follows @cite{kawahara-2015} §1.4:
- Accentual HL: H on the accented mora, L on the following mora.
- Initial rise: L on the first mora, H on the second (blocked when the first mora is accented).
- Spreading: unspecified moras copy the rightmost specified tone.
NonFinality #
Two NonFinality constraints from @cite{prince-smolensky-1993}:
- NonFinality(σ): penalizes accent on the word-final syllable.
- NonFinality(Ft): penalizes the head foot in word-final position.
Find the 0-indexed syllable containing the k-th mora (0-indexed).
Returns none if the target mora exceeds the total mora count.
Equations
- Phonology.Accent.findSyllable weights targetMora = Phonology.Accent.findSyllable.go weights targetMora 0
Instances For
Equations
- Phonology.Accent.findSyllable.go [] a✝¹ a✝ = none
- Phonology.Accent.findSyllable.go (w :: ws) a✝¹ a✝ = if a✝¹ < w.morae then some a✝ else Phonology.Accent.findSyllable.go ws (a✝¹ - w.morae) (a✝ + 1)
Instances For
Antepenultimate Accent Rule (@cite{mccawley-1968}): accent falls on the syllable containing the antepenultimate (3rd-from-last) mora.
For words with fewer than 3 morae, accent falls on the initial syllable (the only possibility for bimoraic minimal words).
Returns the 0-indexed syllable position.
Equations
- One or more equations did not get rendered due to their size.
- Phonology.Accent.defaultAccentAAR [] = none
Instances For
Latin Stress Rule (@cite{hayes-1995}): accent the penultimate syllable if it is heavy (≥ 2μ), otherwise accent the antepenultimate.
For monosyllables, accent the only syllable. For disyllables, always accent the penultimate (= initial) syllable.
@cite{kubozono-2008} argues this rule better characterizes Japanese default accentuation than the AAR.
Equations
- Phonology.Accent.latinStressRule [] = none
- Phonology.Accent.latinStressRule [head] = some 0
- Phonology.Accent.latinStressRule [head, head_1] = some 0
- Phonology.Accent.latinStressRule [head, { morae := 0 }, head_1] = some 0
- Phonology.Accent.latinStressRule [head, { morae := 1 }, head_1] = some 0
- Phonology.Accent.latinStressRule [head, head_1, head_2] = some 1
- Phonology.Accent.latinStressRule (head :: head_1 :: head_2 :: tail) = Option.map (fun (x : ℕ) => x + 1) (Phonology.Accent.latinStressRule (head_1 :: head_2 :: tail))
Instances For
Level tone for pitch accent systems. Japanese uses only H and L at the lexical level (@cite{kawahara-2015} §1.3).
Instances For
Equations
- Phonology.Accent.instDecidableEqLevelTone x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- Phonology.Accent.instReprLevelTone = { reprPrec := Phonology.Accent.instReprLevelTone.repr }
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
- Phonology.Accent.instBEqLevelTone.beq x✝ y✝ = (x✝.ctorIdx == y✝.ctorIdx)
Instances For
Derive surface tones from accent position and mora count.
Implements the 4-step derivation of @cite{kawahara-2015} §1.4:
- Accentual HL assignment (H on accented mora, L on next)
- Initial rise (L on mora 0, H on mora 1 — blocked by initial accent)
- Spreading (unspecified moras copy rightmost specified tone)
Returns a list of LevelTone with one entry per mora.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Phonology.Accent.accentToTones.spread [] a✝ = []
- Phonology.Accent.accentToTones.spread (some t :: rest) a✝ = t :: Phonology.Accent.accentToTones.spread rest t
- Phonology.Accent.accentToTones.spread (none :: rest) a✝ = a✝ :: Phonology.Accent.accentToTones.spread rest a✝
Instances For
NonFinality(σ) (@cite{prince-smolensky-1993}): penalizes accent on the word-final syllable. Returns 1 if accent is final, 0 otherwise.
Drives the avoidance of final accent observed in Japanese compound formation and loanword adaptation (@cite{kawahara-2015} §4).
Equations
- Phonology.Accent.nonFinalitySigma (some pos) nSyll = if (pos + 1 == nSyll) = true then 1 else 0
- Phonology.Accent.nonFinalitySigma none nSyll = 0
Instances For
NonFinality(Ft) (@cite{prince-smolensky-1993}): penalizes the head foot in word-final position. Returns 1 if the rightmost foot in the parse is the head foot (contains the accent), 0 otherwise.
Distinct from NonFinality(σ): accent on the final syllable may be tolerated if the final foot is not the head foot.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Short N2 compound accent: when the second member of a compound (N2) is short (≤ 2 morae), accent may fall on the last syllable of N1 (pre-accenting pattern) or N2 may retain its own accent.
@cite{kawahara-2015} §4.1: pre-accenting N2s are those that lose their accent to NonFinality(Ft) and receive new accent via a compound accent rule analogous to dominant pre-accenting suffixes.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Long N2 compound accent: when N2 is long (≥ 3 morae), if N2 is unaccented or has final accent, accent falls on N2-initial syllable. Otherwise, N2 accent is retained.
@cite{kawahara-2015} §4.2.
Equations
- Phonology.Accent.longN2CompoundAccent n1Morae none n2Morae = some n1Morae
- Phonology.Accent.longN2CompoundAccent n1Morae (some pos) n2Morae = if (pos + 1 == n2Morae) = true then some n1Morae else some (pos + n1Morae)
Instances For
Unaccented trisyllable → LHH (initial rise, H spreads).
Initial accent trisyllable → HLL (accent HL, L spreads).
Medial accent trisyllable → LHL (initial rise L, accent H, post-accent L).
Unaccented 4-mora → LHHH. Kawahara (7).
Initial accent 4-mora → HLLL. Kawahara (8).
Antepenultimate accent 4-mora → LHLL.
Antepenultimate accent 5-mora → LHHLL. Kawahara (9).