Morphological Operators and Root Classification #
A morphological operator is a language-specific process (derivational or diagnostic-inflectional) that applies to a root subject to a structural condition on the root's entailments. The collection of operators that successfully apply to a root is the root's applicability profile under the inventory.
Partitioning roots by applicability profile recovers language-specific verb-stem classifications ([Boh04]'s 5-way Yukatek cut; [Luc94]'s 3-way salience cut) as derived equivalence classes rather than stipulated enums. Typological classes thereby become predictions of (root features × operator inventory), not architectural primitives.
Operators and inventories #
A morphological operator: a name and a structural condition on roots specifying when the operator can apply.
The condition is a propositional predicate over Root, typically
phrased in terms of B&K-G feature signatures, with a bundled
DecidablePred instance so the predicate can drive List.filter
and other computational uses. Whether such conditions are
descriptively adequate is itself an empirical question — encoding
them this way exposes the choice.
- name : String
- decApplies : DecidablePred self.applies
Instances For
An inventory: a finite list of morphological operators.
Equations
Instances For
The names of the operators in the inventory that apply to a root — the root's applicability profile.
Equations
- inv.applicableNames r = List.map (fun (x : Morphology.Derivation.DerivOp) => x.name) (List.filter (fun (op : Morphology.Derivation.DerivOp) => decide (op.applies r)) inv)
Instances For
Two roots are inventory-equivalent iff every operator in the inventory either applies to both or neither.
Equations
- inv.Equivalent r₁ r₂ = ∀ op ∈ inv, op.applies r₁ ↔ op.applies r₂
Instances For
Equations
- inv.instDecidableEquivalent r₁ r₂ = id inferInstance