Working with morphological forms

Published

June 6, 2024

Tip

See the reference section for a list of analytical types in Tabulae.

The immutable collection

Incomplete

This page is highly incomplete

  • there is a citable collection of forms
  • each form is identified by URN

Constructing objects for morphological forms

  • you can construct a form object directly from a URN
  • you can construct a form object from a string code which is the object component of the URN

Values for morphological form are expressed with types that have names beginning with LMF (for “Latin Morphological Form”). Each type has a corresponding function beginning with lowercase lmf that can construct an instance of the type from either a numeric code or a type-specific list of string values.

Working with morphological form objects

  • get its urn
  • get a label for it
  • retrieve its properties

Morphological forms and their properties

LatinMorphologicalForms

Implementations of the abstract LatinMorphologicalForm model the properties identifying a particular type of token. For example, a LMFNoun has properties for gender, case and number. Each of these properties in turn are subtypes of the LatinMorphologicalProperty. We can construct a form directly from these properties. For example, a LMFNoun can be constructed like this:

using Tabulae
g = lmpGender("masculine")
c = lmpCase("accusative")
n = lmpNumber("singular")
noun = LMFNoun(g,c,n)
LMFNoun(LMPGender(1), LMPCase(4), LMPNumber(1))

Tabulae’s collection of form values

Forms are identified by a Cite2Urn belonging to the collection urn:cite2:tabulae:forms.v1.

As citable objects, they include the label function.

label(noun)
"masculine accusative singular"

Object identifiers in this collection are ten-character strings with each character representing an integer code for the following morphological properties:

  1. “part of speech” (more precisely, the analytical type)
  2. person
  3. number
  4. tense
  5. mood
  6. voice
  7. gender
  8. case
  9. degree
  10. uninflected category

In the following line, the initial digit 2 means “noun form”; the number value 1 means singular; the gender value 3 means “neuter” and the case value 1 means “nominative”.

urn(noun)
urn:cite2:tabulae:forms.v1:2010001400

Convenience methods let you work with these identifiers directly, or as a FormUrn (from the CitableParserBuilder package).

Tabulae.formurn(noun)
forms.2010001400
code(noun)
"urn:cite2:tabulae:forms.v1:2010001400"

More constructors

For each subtype of LatinMorphologicalForm, a corresponding constructor function (with a name beginning in lowercase) accepts a variety of kinds of sources for a form, such as a Cite2Urn:

u = urn(noun)
lmfNoun(u) == noun
true

Other sources you can use to create a LatinMorphologicalForm include strings, abbreviated URNs, Analysis objects and TabulaeRule objects. See the API documentation for details.

Properties

Each implementation of the LatinMorphologicalProperty has a corresponding lower-case function you can use to extract that property from a form.

gender = lmpGender(noun)
LMPGender(1)

You can use the code and label functions to find an integer code and readable string for any morphological property.

code(gender)
1
label(gender)
"masculine"