The Leipzig Glossing Rules

pyigt supports the notation for morpheme/gloss structure proposed by the Leipzig Glossing Rules.

According to LGR Rule 1, object language and gloss lines have to be word-aligned. Such aligned pairs of a word and a corresponding gloss are modeled via the GlossedWord class.

If an IGT conforms to Rule 2, glossed words are lists of aligned GlossedMorpheme pairs.

The provisions of Rule 4 (and following), i.e. the structure of morpheme glosses, is implemented as subclasses of GlossElement.

class pyigt.lgrmorphemes.GlossElement(s)[source]

Rule 4. Gloss elements are separated by “.”.

Variables:

start – Specifies the separator to use when combining a GlossElement with another.

class pyigt.lgrmorphemes.Infix(s)[source]

Rule 9. Infixes are enclosed in angle brackets.

class pyigt.lgrmorphemes.GlossElementAfterSemicolon(s)[source]

Rule 4B. Distinct gloss elements can be separated by “;”.

class pyigt.lgrmorphemes.GlossElementAfterColon(s)[source]

Rule 4C. Gloss element corresponding to “hidden” object language elements are separated by “:”.

class pyigt.lgrmorphemes.GlossElementAfterBackslash(s)[source]

Rule 4D. Morphophonological change is marked with a leading “".

class pyigt.lgrmorphemes.PatientlikeArgument(s)[source]

Rule 4E. Patient-like arguments are marked with a leading “>”.

Note: Infer the agent-like argument by looking up the prev property.

class pyigt.lgrmorphemes.NonovertElement(s)[source]

Rule 6. Non-overt elements can be enclosed in square brackets.

class pyigt.lgrmorphemes.InherentCategory(s)[source]

Rule 7. Inherent categories can be enclosed in round brackets.

class pyigt.lgrmorphemes.Morpheme(s)[source]

Rule 2. Morphemes are separated by “-“.

class pyigt.lgrmorphemes.GlossedWord(word, gloss, glossed_morphemes=_Nothing.NOTHING, strict=False)[source]

A (word, gloss) pair, corresponding to two aligned items from IGT according to LGR.

Provides list-like access to its GlossedMorpheme s.

property form: str

Removes sentence-level markup and morpheme separators from .word.

>>> from pyigt.lgrmorphemes import GlossedWord
>>> gw = GlossedWord(word='"An-fangs', gloss="a-b")
>>> gw.form
'Anfangs'
class pyigt.lgrmorphemes.GlossedMorpheme(morpheme, gloss, sep, prev=None, next=None)[source]

A (morpheme, gloss) pair.

Variables:
  • morpheme – The morpheme form.

  • gloss – The literal gloss.

  • sep – The morpheme separator preceding this morpheme.

  • prev – Points to the previous GlossedMorpheme in a word, or None.

  • next – Points to the next GlossedMorpheme in a word, or None.

property form: str

Removes sentence-level markup (i.e. punctuation etc.) from .morpheme.

>>> from pyigt.lgrmorphemes import GlossedMorpheme
>>> gm = GlossedMorpheme(morpheme='"[ab.c', gloss="abc", sep='-')
>>> gm.form
'abc'
property grammatical_concepts: List[str]

Grammatical concepts, referenced with category labels according to Rule 3, used in morpheme gloss.

Note

Gloss element separators according to Rule 4B and 4C are interpreted as signaling a separate concept.

>>> from pyigt.lgrmorphemes import GlossedMorpheme
>>> gm = GlossedMorpheme(morpheme='abc', gloss='ABC.DEF:GHI;JKL', sep='.')
>>> gm.grammatical_concepts
['ABC.DEF', 'GHI', 'JKL']
property lexical_concepts: List[str]

Gloss elements not recognized as category labels are interpreted as lexical concepts.

>>> from pyigt.lgrmorphemes import GlossedMorpheme
>>> gm = GlossedMorpheme(morpheme='çık', gloss='come_out', sep='.')
>>> gm.lexical_concepts
['come out']