Rule types

Published

July 5, 2024

Reading and writing rule records

Tabulae defines a concrete subtype of the TabulaeRule abstraction for each kind of rule record that can be included in a Tabulae dataset.

Each type implements the fromcex and cex functions from the CitableBase package.

using CitableBase
infinitiveruletext = "latcommon.are_inf1|conj1|are|present|active"
infinrule = fromcex(infinitiveruletext, TabulaeInfinitiveRule)
Infinitive inflection rule: ending -are in class conj1 can be  label(rule.vtense) active.

Common functions

All rule types identify a morphological form, an inflectional type, and a string value for the stem, that you can retrieve with the following functions:

lmForm(infinrule)
present active infinitive
inflectionclass(infinrule)
"conj1"
ending(infinrule)
"are"

Examples of each rule type

Finite verb form rules

The TabulaeFiniteVerbRule type:

finiteverbtext = "latcommon.are_conj1fut7|conj1dep|abor|first|singular|future|indicative|passive"
finiteverbrule = fromcex(finiteverbtext, TabulaeFiniteVerbRule)
Verb inflection rule: ending -abor in class conj1dep can be first singular future indicative passive.
  1. c1pres
  2. c1presdep
  3. c2pres
  4. c2presdep
  5. c3iopres
  6. c3iopresdep
  7. c3pres
  8. c3presdep
  9. c4pres
  10. c4presdep
  11. conj1
  12. conj1dep
  13. conj2
  14. conj2dep
  15. conj3
  16. conj3dep
  17. conj3io
  18. conj3iodep
  19. conj4
  20. conj4dep
  21. pftact
  22. pftactelided

Infinitive rules

The TabulaeInfinitiveRule type:

infinitiveruletext = "latcommon.are_inf1|conj1|are|present|active"
infinrule = fromcex(infinitiveruletext, TabulaeInfinitiveRule)
Infinitive inflection rule: ending -are in class conj1 can be  label(rule.vtense) active.
  1. c1pres
  2. c2pres
  3. c3iopres
  4. c3iopresdep
  5. c3pres
  6. c3presdep
  7. c4pres
  8. conj1
  9. conj2
  10. conj3
  11. conj3io
  12. conj3iodep
  13. conj4
  14. pftact

Participle rules

The TabulaeParticipleRule type:

ptcplruletext = "latcommoninfl.are_conj1presapl2|conj1|antis|masculine|genitive|singular|present|active"
ptcplrule = fromcex(ptcplruletext, TabulaeParticipleRule)
Participle inflection rule: ending -antis in class conj1 can be present activeparticiple, masculine genitive singular.
  1. c1pres
  2. c1presdep
  3. c2pres
  4. c2presdep
  5. c3iopres
  6. c3iopresdep
  7. c3pres
  8. c3presdep
  9. c4pres
  10. c4presdep
  11. coconj3io
  12. conj1
  13. conj1dep
  14. conj2
  15. conj2dep
  16. conj3
  17. conj3dep
  18. conj3io
  19. conj3iodep
  20. conj4
  21. conj4dep
  22. pftpass

Noun rules

TabulaeNounRule.

nounruletext = "latcommoninfl.0_is2|0_is|is|masculine|genitive|singular"
nounrule = fromcex(nounruletext, TabulaeNounRule)
Noun inflection rule: ending -is in class 0_is can be masculine genitive singular.
  1. 0_dis
  2. 0_is
  3. a_ae
  4. as_ae
  5. e_ae
  6. e_es
  7. en_inis
  8. eps_ipis
  9. er_ri
  10. er_ris
  11. es_ae
  12. es_ei
  13. es_is
  14. esisgk
  15. es_itis
  16. ex_icis
  17. iesis
  18. iisis
  19. istis
  20. is_is
  21. n0_dis
  22. n0_is
  23. o_inis
  24. o_onis
  25. s_dis
  26. s_is
  27. s_nis
  28. s_ntis
  29. s_ris
  30. s_tis
  31. us_eris
  32. us_i
  33. us_oris
  34. us_us
  35. ut_itis
  36. x_cis
  37. x_ctis
  38. x_gis