Anderson's Case Features #
@cite{anderson-jm-2006}
Three first-order case features [abs, src, loc], the 8 case relations
that arise as their feature bundles, the subject-selection hierarchy over
those bundles, predicate scenarios (argument-structure tuples of
relations), and the morphological-case → relation map.
A CaseRelation is just a Finset CaseFeature — containment, the empty
bundle, the full bundle, and meet/join all come from Finset's
BooleanAlgebra instance.
Anderson's three first-order case features (@cite{anderson-jm-2006}, Ch. 6).
- abs : CaseFeature
- src : CaseFeature
- loc : CaseFeature
Instances For
Equations
- Core.instDecidableEqCaseFeature x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
Equations
- Core.instReprCaseFeature.repr Core.CaseFeature.abs prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Core.CaseFeature.abs")).group prec✝
- Core.instReprCaseFeature.repr Core.CaseFeature.src prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Core.CaseFeature.src")).group prec✝
- Core.instReprCaseFeature.repr Core.CaseFeature.loc prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Core.CaseFeature.loc")).group prec✝
Instances For
Equations
- Core.instReprCaseFeature = { reprPrec := Core.instReprCaseFeature.repr }
Equations
- Core.instFintypeCaseFeature = { elems := { val := ↑Core.CaseFeature.enumList, nodup := Core.CaseFeature.enumList_nodup }, complete := Core.instFintypeCaseFeature._proof_1 }
An argument's case specification: a bundle of first-order features (@cite{anderson-jm-2006}, Ch. 6).
A CaseRelation is a Finset CaseFeature — the powerset of the three
primitive features. The 8 possible bundles are exactly Finset.powerset
of Finset.univ. Containment (⊆), the empty bundle (∅), the full
bundle (Finset.univ), and meet/join are inherited from Finset's
BooleanAlgebra instance.
Equations
- Core.CaseRelation = Finset Core.CaseFeature
Instances For
Equations
Instances For
Equations
Instances For
Equations
Instances For
Equations
Instances For
Equations
Instances For
Equations
Instances For
Equations
Instances For
Equations
Instances For
The full feature set is Finset.univ and equals the 3-feature top.
Convenience accessors for the three features.
Equations
- cr.abs = (Core.CaseFeature.abs ∈ cr)
Instances For
The subject selection rank (@cite{anderson-jm-2006}, eq. 38'). src (agent) outranks abs (patient) outranks loc (spatial).
Codomain Fin 3 — three tiers, type-level boundedness.
Equations
- cr.subjectRank = if Core.CaseFeature.src ∈ cr then 2 else if Core.CaseFeature.abs ∈ cr then 1 else 0
Instances For
The src feature alone determines subject rank 2 — regardless of other
features. This is why ergative, experiencer (srcLoc), and self-mover
(srcAbs) all tie for highest subject rank.
Without src, the abs feature determines rank 1. This is why
absolutive and contactive (absLoc) tie at the second tier.
Anderson's absSrcLoc is the top of the feature lattice.
Anderson's neutral (the empty bundle) is the bottom of the feature
lattice.
The 8 possible case relations are exactly
(Finset.univ : Finset CaseFeature).powerset.
Cardinality follows from Finset.card_powerset.
A predicate's scenario (@cite{anderson-jm-2006}, Ch. 6): the case relations assigned to its arguments.
- relations : List CaseRelation
Instances For
Equations
- s.subjectRelation = s.relations.head?
Instances For
Equations
- s.objectRelation = match s.relations with | head :: cr :: tail => some cr | x => none
Instances For
Equations
- Core.Scenario.transitive = { relations := [Core.CaseRelation.ergative, Core.CaseRelation.absolutive] }
Instances For
Equations
- Core.Scenario.unergative = { relations := [Core.CaseRelation.ergative] }
Instances For
Equations
- Core.Scenario.unaccusative = { relations := [Core.CaseRelation.absolutive, Core.CaseRelation.locative] }
Instances For
Equations
- Core.Scenario.selfMoving = { relations := [Core.CaseRelation.srcAbs, Core.CaseRelation.locative] }
Instances For
Equations
- Core.Scenario.experiencer = { relations := [Core.CaseRelation.srcLoc, Core.CaseRelation.absolutive] }
Instances For
Canonical mapping from Blake's morphological cases to Anderson's case-feature bundles (@cite{anderson-jm-2006}, Ch. 6).
Equations
- Core.Case.toCaseRelation UD.Case.Nom = some Core.CaseRelation.srcAbs
- Core.Case.toCaseRelation UD.Case.Acc = some Core.CaseRelation.absolutive
- Core.Case.toCaseRelation UD.Case.Erg = some Core.CaseRelation.srcAbs
- Core.Case.toCaseRelation UD.Case.Abs = some Core.CaseRelation.absolutive
- Core.Case.toCaseRelation UD.Case.Abl = some Core.CaseRelation.locative
- Core.Case.toCaseRelation UD.Case.Loc = some Core.CaseRelation.locative
- Core.Case.toCaseRelation UD.Case.Ins = some Core.CaseRelation.ergative
- x✝.toCaseRelation = none