Docs / Morphology / Morph

Morphs

import Linglib.Morphology.Morph · namespace Morphology

A morph is a minimal segmental form together with its attachment kind: root, prefix, suffix, infix, proclitic, enclitic, or free form. It is the form side of Haspelmath's form–content pairing, never zero and never discontinuous.

Main declarations

Main results

Implementation notes

Morph.Side is the two-sided part of Morph.Position that attachment to a sequence or a word tree uses. ToString writes Leipzig boundary notation (un-, -able, <um>, l=, =s), which brackets infixes and has no separate mark for endoclitics. An affix attaches more tightly than a clitic: the words at .affix keep a clitic apart, as Haspelmath's definition of the word does, and the words at .clitic are the units separated by spaces. In a sequence an infix follows its host, as in Word.Tree.toList, and two adjacent roots are two words, a compound being a Word.Tree.compound. A discontinuous exponent, such as a circumfix, is a list of such sequences, which its owner joins with …. Morph.surface folds with ++ rather than calling String.join and String.intercalate, whose bodies a module cannot unfold, so that decide evaluates a surface form.

References

Declarations

L75–81

Where a bound morph sits relative to its host.

inductive Morph.PositionL83–91
  • before : Position

    Prefixes and proclitics sit before the host.

  • inside : Position

    Infixes and endoclitics sit inside the host.

  • after : Position

    Suffixes and enclitics sit after the host.

Derives DecidableEq, Repr, Fintype.

Used by Morph.Kind, Morph.Side.toPosition, Morph.Position.side?, Morph.Position.side?_eq_some_iff, Morph.Position.side?_eq_none_iff, Morph.Kind.position?, Morph.Kind.position?_bound, Morph.Kind.attachment?_bound, Morph.Kind.side?_bound, Morph.Kind.position?_eq_some_iff, Morph.Kind.attachment?_eq_some_iff, Morph.Kind.isSome_position?_iff, Morph.Kind.isSome_attachment?_iff, Morph.bound, Morph.bound_kind, Morph.bound_form, Morph.wordsAt_append_cons, Morph.wordsAt_append_of_eq_singleton

A bound morph attaches as an affix or as a clitic, by its descriptive label.

inductive Morph.AttachmentL93–99

Derives DecidableEq, Repr, Fintype.

Used by Morph.Kind, Morph.Kind.attachment?, Morph.Kind.position?_bound, Morph.Kind.attachment?_bound, Morph.Kind.side?_bound, Morph.Kind.position?_eq_some_iff, Morph.Kind.attachment?_eq_some_iff, Morph.Kind.side?_eq_some_iff, Morph.Kind.isSome_position?_iff, Morph.Kind.isSome_attachment?_iff, Morph.bound, Morph.bound_kind, Morph.bound_form, Morph.Attachment.instLinearOrder, Morph.Attachment.affix_le, Morph.Attachment.le_clitic, Morph.Kind.JoinsAt, Morph.instDecidableRelKindJoinsAt, Morph.Kind.JoinsAt.mono, Morph.JoinsAt, Morph.instDecidableRelJoinsAt, Morph.JoinsAt.mono, Morph.wordsAt, Morph.flatten_wordsAt, Morph.wordsAt_nil, Morph.wordsAt_singleton, Morph.flatMap_wordsAt, Morph.wordsAt_append_cons, Morph.wordsAt_append_of_eq_singleton, Morph.wordsAt_append, Morph.countP_le_one_of_isChain_joinsAt, Morph.countP_le_one_of_mem_wordsAt

The kind of a morph says how it attaches.

inductive Morph.KindL101–109
  • bound (position : Position) (attachment : Attachment) : Kind

    A bound morph sits at a position relative to its host, as an affix or a clitic.

  • root : Kind

    The morph is a root.

  • free : Kind

    The morph is free and not a root, as a particle or an auxiliary is.

Derives DecidableEq, Repr, Fintype.

Built from ,

Used by Morph, Morph.Kind.position?, Morph.Kind.attachment?, Morph.Kind.side?, Morph.Kind.position?_eq_some_iff, Morph.Kind.attachment?_eq_some_iff, Morph.Kind.side?_eq_some_iff, Morph.Kind.isSome_position?_iff, Morph.Kind.isSome_attachment?_iff, Morph.Kind.JoinsAt, Morph.Kind.JoinsAt.mono

Used in Phonology/Hiatus/Elision, Syntax/Category/Classifier/Basic, Casali1997, Pater2001, Vago2017

A morph is a minimal segmental form with its attachment kind.

structure MorphL111–117
  • kind : Kind

    The kind says how the morph attaches.

  • form : String

    The form is the bare segmental material, with no boundary notation.

Derives DecidableEq, Repr.

Built from

Used by Morph.bound, Morph.pref, Morph.suff, Morph.infixed, Morph.procl, Morph.encl, Morph.root, Morph.free, Morph.JoinsAt, Morph.JoinsAt.mono, Morph.wordsAt, Morph.flatten_wordsAt, Morph.wordsAt_singleton, Morph.flatMap_wordsAt, Morph.wordsAt_append_cons, Morph.wordsAt_append_of_eq_singleton, Morph.wordsAt_append, Morph.countP_le_one_of_isChain_joinsAt, Morph.countP_le_one_of_mem_wordsAt, Morph.instToString, Morph.surface, Morph.surface_singleton

Used in Fragments/Adyghe/Case, Fragments/Adyghe/Clause, Fragments/Arabic/ModernStandard/Negation, Fragments/Arabic/ModernStandard/Verbs, Fragments/Basque/Agreement and 113 more

Sides and positions

L141
L143
L149–153
L157
L161
L165–166
L168

Kinds

k.position? is the position of a bound kind, and none for roots and free forms.

def Morph.Kind.position?L176–179
:
Kind → Option Position

Built from ,

Used by Morph.Kind.side?, Morph.Kind.position?_bound, Morph.Kind.position?_root, Morph.Kind.position?_free, Morph.Kind.position?_eq_some_iff, Morph.Kind.isSome_position?_iff, Morph.countP_le_one_of_isChain_joinsAt, Morph.countP_le_one_of_mem_wordsAt

L193
L195
L200
L202
L204
L206
L208

Morphs of each kind

L233
L233
L237
L240
L243
L246
L249
L252
L255

Words

L261–264
L266
L268
L282–284

The words of a sequence of morphs at the attachment l are its maximal runs of morphs joined at l.

def Morph.wordsAtL295–298
(l : Attachment) (ms : List Morph) :
List (List Morph)

Built from , ,

Used by Morph.flatten_wordsAt, Morph.wordsAt_nil, Morph.wordsAt_singleton, Morph.flatMap_wordsAt, Morph.wordsAt_append_cons, Morph.wordsAt_append_of_eq_singleton, Morph.wordsAt_append, Morph.countP_le_one_of_mem_wordsAt

Used in Fragments/Korean/Verbs, Bobaljik2012, Haspelmath2023

L300–302
L304
L306

A host with morphs bound before it on one side and after or inside it on the other, none more loosely than l, is one word at l.

theorem Morph.wordsAt_append_consL313–329
{l : Attachment} {P S : List Morph} (h : Morph) (hP : ∀ p ∈ P, ∃ a ≤ l, p.kind = Kind.bound Position.before a) (hS : ∀ s ∈ S, ∃ (q : Position), q ≠ Position.before ∧ ∃ a ≤ l, s.kind = Kind.bound q a) :
wordsAt l (P ++ h :: S) = [P ++ h :: S]

Built from , , ,

L369–380

Boundary notation

L406

The words of a text in the notation surface writes, each as the characters of its morph forms: words are separated by spaces, and the morphs of a word by boundaries.

def Morph.wordsOfL418–428
(s : String) :
List (List (List Char))

The definition is too large to print here; read it in the source.

Used in Miestamo2005

L426–428