Voice System Interface #
@cite{erlewine-2018} @cite{foley-2008}
Theory-neutral interface for cross-linguistic voice system typology — how languages map argument roles to a privileged syntactic position (the "pivot") via voice alternation.
Languages vary in:
- How many voices they have (2 in Toba Batak, 4+ in Tagalog)
- Which roles can be promoted to pivot (agent/patient only, or also locative, instrumental, benefactive, circumstantial)
- Whether the system is symmetrical — in symmetrical systems (Toba Batak, Tagalog), no voice is morphologically or syntactically basic; in asymmetrical systems (English active/passive), one voice is marked
This interface captures the alignment dimension of voice systems:
which argument roles can be promoted, and is the system symmetrical?
It complements ExtractionMorphology (which captures how extraction
is marked) and Minimalism.VoiceFlavor (which captures the semantic
contribution of the voice head).
Which argument role can be promoted to pivot in a given voice.
Finer-grained than ArgumentRole: Philippine-type systems
distinguish locative, instrumental, benefactive, and circumstantial
pivots, all of which collapse to ArgumentRole.oblique.
- agent : PivotTarget
- patient : PivotTarget
- locative : PivotTarget
- instrumental : PivotTarget
- benefactive : PivotTarget
- circumstantial : PivotTarget
Instances For
Equations
Equations
- Interfaces.instBEqPivotTarget.beq x✝ y✝ = (x✝.ctorIdx == y✝.ctorIdx)
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Coercion from PivotTarget to ArgumentRole.
Locative, instrumental, benefactive, and circumstantial all
collapse to oblique — the distinction among obliques is a
voice-system concern, not an extraction-morphology concern.
Equations
- Interfaces.PivotTarget.agent.toArgumentRole = Interfaces.ArgumentRole.agent
- Interfaces.PivotTarget.patient.toArgumentRole = Interfaces.ArgumentRole.patient
- Interfaces.PivotTarget.locative.toArgumentRole = Interfaces.ArgumentRole.oblique
- Interfaces.PivotTarget.instrumental.toArgumentRole = Interfaces.ArgumentRole.oblique
- Interfaces.PivotTarget.benefactive.toArgumentRole = Interfaces.ArgumentRole.oblique
- Interfaces.PivotTarget.circumstantial.toArgumentRole = Interfaces.ArgumentRole.oblique
Instances For
A single voice in a voice system: a name and the role it promotes.
- name : String
Name of the voice (e.g., "Actor Voice", "Patient Voice")
- promotes : PivotTarget
Which argument role this voice promotes to pivot
Instances For
Equations
Instances For
Equations
Equations
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Whether a voice system is symmetrical or asymmetrical.
- Symmetrical: no voice is morphologically or syntactically basic; all voices have equal status (e.g., Tagalog, Toba Batak)
- Asymmetrical: one voice (typically active) is basic/unmarked and the other(s) are derived (e.g., English active/passive)
- symmetrical : VoiceSystemSymmetry
- asymmetrical : VoiceSystemSymmetry
Instances For
Equations
- Interfaces.instBEqVoiceSystemSymmetry.beq x✝ y✝ = (x✝.ctorIdx == y✝.ctorIdx)
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
A language's voice system profile: its inventory of voices, symmetry type, and descriptive notes.
- language : String
Language name
- voices : List VoiceEntry
The voices in the system
- symmetry : VoiceSystemSymmetry
Symmetrical or asymmetrical
- notes : String
Notes
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Does any voice in this system promote a given role?
Equations
- p.promotesRole r = p.voices.any fun (x : Interfaces.VoiceEntry) => x.promotes == r
Instances For
Does this system distinguish among oblique pivots (locative, instrumental, benefactive, circumstantial)?
Equations
- One or more equations did not get rendered due to their size.
Instances For
Is this a simple active/passive system (exactly agent + patient)?
Equations
Instances For
The set of roles promotable to pivot in this system.
Equations
- p.promotableRoles = (List.map (fun (x : Interfaces.VoiceEntry) => x.promotes) p.voices).eraseDups