Root families: category-changing morphology #
A root family records the word forms a single (sub-morphemic) root projects across lexical categories — the [Mar97] uncategorised-roots pattern: the category of the surface word is determined by the morphological environment, not by the root itself.
Main declarations #
Morphology.LexCat— theory-neutral lexical category of a word form.Morphology.RootFamily— a root label with its category-stamped forms.
Consumers: Studies/Panagiotidis2015.lean (categoriser theory + the
English root-family sample), Studies/McNallyDeSwart2011.lean
(AdjEntry.toRootFamily adapter for Dutch adjective entries).
@[implicit_reducible]
Equations
- Morphology.instReprLexCat = { reprPrec := Morphology.instReprLexCat.repr }
Equations
- Morphology.instReprLexCat.repr Morphology.LexCat.noun prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Morphology.LexCat.noun")).group prec✝
- Morphology.instReprLexCat.repr Morphology.LexCat.verb prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Morphology.LexCat.verb")).group prec✝
- Morphology.instReprLexCat.repr Morphology.LexCat.adjective prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "Morphology.LexCat.adjective")).group prec✝
Instances For
@[implicit_reducible]
Equations
- Morphology.instDecidableEqLexCat x✝ y✝ = if h : x✝.ctorIdx = y✝.ctorIdx then isTrue ⋯ else isFalse ⋯
A root family: a set of word forms derived from a common root, each appearing in a different lexical category.
- rootLabel : String
Label for the root (approximate; roots are sub-morphemic)
- forms : List (String × LexCat)
Word forms and their categories
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[implicit_reducible]
Equations
- Morphology.instReprRootFamily = { reprPrec := Morphology.instReprRootFamily.repr }
Does this root family have a form in the given category?
Equations
- rf.hasCategory c = rf.forms.any fun (x : String × Morphology.LexCat) => x.snd == c