Morphological Word Structure #
@cite{hayes-2009}
Hierarchical representation of word-internal structure via the MorphWord
inductive type: a tree of morphemes where affixation, compounding,
reduplication, and conversion are structural operations.
Design #
MorphWord and MorphRule are complementary:
MorphRulerepresents inflectional processes (String → String)MorphWordrepresents derivational/compositional structure (tree of morphemes)
Morpheme boundaries fall out naturally from linearization — the boundary positions are implicit between adjacent morphemes in the flattened list.
Constructors #
| Constructor | Operation | Example |
|---|---|---|
root | leaf morpheme | walk |
prefixed | prefix attachment | un- + happy |
suffixed | suffix attachment | walk + -ed |
infixed | infix insertion | Tagalog -um- in sulat |
circumfixed | circumfix wrapping | German ge-mach-t |
compound | compounding | desk + lamp |
reduplicated | total or partial reduplication | Warlpiri kijikiji |
converted | zero affixation / conversion | noun telephone → verb |
A morpheme: the minimal meaningful unit (Hayes §5.1).
Carries a surface form, an optional gloss, and its morphological status (free word, clitic, or affix).
- form : String
- gloss : String
- status : Core.Morphology.MorphStatus
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Type of reduplication (Hayes §5.2).
total: copies the entire base (Warlpiri kijikiji from kiji)partialCopy copied: copies a prosodic template; the copied material is stored explicitly since it depends on prosodic shape (determined at construction time, not derivable from strings alone). Example: Ilokano ag-tráb-trabáho (partial copy trab).
Instances For
Equations
- One or more equations did not get rendered due to their size.
- Theories.Morphology.WordStructure.instDecidableEqRedupType.decEq Theories.Morphology.WordStructure.RedupType.total Theories.Morphology.WordStructure.RedupType.total = isTrue ⋯
- Theories.Morphology.WordStructure.instDecidableEqRedupType.decEq Theories.Morphology.WordStructure.RedupType.total (Theories.Morphology.WordStructure.RedupType.partialCopy copied) = isFalse ⋯
- Theories.Morphology.WordStructure.instDecidableEqRedupType.decEq (Theories.Morphology.WordStructure.RedupType.partialCopy copied) Theories.Morphology.WordStructure.RedupType.total = isFalse ⋯
Instances For
Equations
- Theories.Morphology.WordStructure.instBEqRedupType.beq Theories.Morphology.WordStructure.RedupType.total Theories.Morphology.WordStructure.RedupType.total = true
- Theories.Morphology.WordStructure.instBEqRedupType.beq (Theories.Morphology.WordStructure.RedupType.partialCopy a) (Theories.Morphology.WordStructure.RedupType.partialCopy b) = (a == b)
- Theories.Morphology.WordStructure.instBEqRedupType.beq x✝¹ x✝ = false
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Hierarchical word structure as a tree of morphemes.
Each constructor corresponds to a morphological operation from Hayes §5.2–5.5. The tree structure captures the derivational history and word-internal constituency.
- root : Morpheme → MorphWord
Leaf node: a single morpheme (free or bound).
- prefixed : Morpheme → MorphWord → MorphWord
Hayes §5.2: attach morpheme before base.
- suffixed : MorphWord → Morpheme → MorphWord
Hayes §5.2: attach morpheme after base.
- infixed : MorphWord → Morpheme → Nat → MorphWord
Hayes §5.2: insert morpheme at position
poswithin base's surface form. Example: Tagalog -um- in s⟨um⟩ulat. - circumfixed : Morpheme → MorphWord → Morpheme → MorphWord
Hayes §5.2: wrap base with a prefix and suffix. Example: German ge-mach-t.
- compound : MorphWord → MorphWord → MorphWord
Hayes §5.4: two stems joined. Example: desk + lamp.
- reduplicated : RedupType → MorphWord → MorphWord
Hayes §5.2: total or partial reduplication.
- converted : MorphWord → MorphWord
Hayes §5.2: zero affixation / conversion. Example: noun telephone → verb to telephone.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Extract the flat surface string from the morphological tree.
Equations
- (Theories.Morphology.WordStructure.MorphWord.root a).surface = a.form
- (Theories.Morphology.WordStructure.MorphWord.prefixed a a_1).surface = a.form ++ a_1.surface
- (a.suffixed a_1).surface = a.surface ++ a_1.form
- (a.infixed a_1 a_2).surface = String.ofList (List.take a_2 a.surface.toList) ++ a_1.form ++ String.ofList (List.drop a_2 a.surface.toList)
- (Theories.Morphology.WordStructure.MorphWord.circumfixed a a_1 a_2).surface = a.form ++ a_1.surface ++ a_2.form
- (a.compound a_1).surface = a.surface ++ a_1.surface
- (Theories.Morphology.WordStructure.MorphWord.reduplicated Theories.Morphology.WordStructure.RedupType.total a_1).surface = a_1.surface ++ a_1.surface
- (Theories.Morphology.WordStructure.MorphWord.reduplicated (Theories.Morphology.WordStructure.RedupType.partialCopy a_2) a_1).surface = a_2 ++ a_1.surface
- a.converted.surface = a.surface
Instances For
Flatten the morphological tree into a list of morphemes in linear (left-to-right surface) order. Morpheme boundaries are implicit: they fall between adjacent elements.
Equations
- One or more equations did not get rendered due to their size.
- (Theories.Morphology.WordStructure.MorphWord.root a).morphemes = [a]
- (Theories.Morphology.WordStructure.MorphWord.prefixed a a_1).morphemes = a :: a_1.morphemes
- (a.suffixed a_1).morphemes = a.morphemes ++ [a_1]
- (a.infixed a_1 a_2).morphemes = a.morphemes ++ [a_1]
- (a.compound a_1).morphemes = a.morphemes ++ a_1.morphemes
- (Theories.Morphology.WordStructure.MorphWord.reduplicated a a_1).morphemes = a_1.morphemes
- a.converted.morphemes = a.morphemes
Instances For
Number of morphemes in the word.
Equations
Instances For
Positions of morpheme boundaries in the surface string.
Each Nat is a character offset where one morpheme ends and
the next begins. Phonological rules can reference these
positions (Hayes Chs 6–8).
Equations
- One or more equations did not get rendered due to their size.
- (Theories.Morphology.WordStructure.MorphWord.root a).boundaryPositions = []
- (Theories.Morphology.WordStructure.MorphWord.prefixed a a_1).boundaryPositions = a.form.length :: List.map (fun (x : Nat) => x + a.form.length) a_1.boundaryPositions
- (a.suffixed a_1).boundaryPositions = a.boundaryPositions ++ [a.surface.length, a.surface.length + a_1.form.length]
- (a.compound a_1).boundaryPositions = a.boundaryPositions ++ [a.surface.length] ++ List.map (fun (x : Nat) => x + a.surface.length) a_1.boundaryPositions
- a.converted.boundaryPositions = a.boundaryPositions
Instances For
Is this word a compound?
Equations
- (a.compound a_1).isCompound = true
- x✝.isCompound = false
Instances For
Does this word involve reduplication?
Equations
Instances For
Is this word derived by conversion (zero affixation)?
Equations
Instances For
Morphological depth: number of derivational steps from the root(s).
Equations
- (Theories.Morphology.WordStructure.MorphWord.root a).depth = 0
- (Theories.Morphology.WordStructure.MorphWord.prefixed a a_1).depth = 1 + a_1.depth
- (a.suffixed a_1).depth = 1 + a.depth
- (a.infixed a_1 a_2).depth = 1 + a.depth
- (Theories.Morphology.WordStructure.MorphWord.circumfixed a a_1 a_2).depth = 1 + a_1.depth
- (a.compound a_1).depth = 1 + max a.depth a_1.depth
- (Theories.Morphology.WordStructure.MorphWord.reduplicated a a_1).depth = 1 + a_1.depth
- a.converted.depth = 1 + a.depth
Instances For
Convert a circumfixed MorphWord to a CircumfixExponence.
Returns none for non-circumfixed words.
Equations
- (Theories.Morphology.WordStructure.MorphWord.circumfixed pre base suf).toCircumfixExponence = some { prefix_ := pre.form, suffix_ := suf.form, stem := base.surface }
- x✝.toCircumfixExponence = none
Instances For
Total reduplication doubles the surface form.
A bare root has depth zero.
A bare root contains exactly one morpheme.
The circumfix bridge extracts the correct prefix, suffix, and stem.