Module:gender and number/data

local data = {}

-- A list of all possible "parts" that a specification can be made out of. For each part, we list -- the class it's in (gender, animacy, etc.), the associated category (if any) and the display form. -- In a given gender/number spec, only one part of each class is allowed. data.codes = { ["?"] = {type = "other", display = '? '},	-- FIXME: The following should be either eliminated in favor of g! or converted to a general "gender/number unattested". ["?!"] = {type = "other", display = 'gender unattested '},

-- Genders ["m"] = {type = "gender", cat = "masculine POS", display = 'm '}, ["f"] = {type = "gender", cat = "feminine POS", display = 'f '}, ["n"] = {type = "gender", cat = "neuter POS", display = 'n '}, ["c"] = {type = "gender", cat = "common-gender POS", display = 'c '}, ["gneut"] = {type = "gender", cat = "gender-neutral POS", display = 'gender-neutral '}, ["g!"] = {type = "gender", display = 'gender unattested '},

-- Animacy -- Animate = either animal or personal (for Russian, etc.) ["an"] = {type = "animacy", cat = "animate POS", display = ' anim '}, ["in"] = {type = "animacy", cat = "inanimate POS", display = ' inan '}, -- Animal (for Ukrainian, Belarusian, Polish, etc.) ["anml"] = {type = "animacy", cat = "animal POS", display = ' animal '}, -- Personal (for Ukrainian, Belarusian, Polish, etc.) ["pr"] = {type = "animacy", cat = "personal POS", display = ' pers '}, ["np"] = {type = "animacy", cat = "nonpersonal POS", display = ' npers '}, ["an!"] = {type = "animacy", display = 'animacy unattested '},

-- Virility (for Polish) ["vr"] = {type = "virility", cat = "virile POS", display = 'vir '}, ["nv"] = {type = "virility", cat = "nonvirile POS", display = 'nvir '},

-- Numbers ["s"] = {type = "number", display = 'sg '}, ["d"] = {type = "number", cat = "dualia tantum", display = ' du '}, ["p"] = {type = "number", cat = "pluralia tantum", display = 'pl '}, ["num!"] = {type = "number", display = 'number unattested '},

-- Verb qualifiers ["impf"] = {type = "aspect", cat = "imperfective POS", display = 'impf '}, ["pf"] = {type = "aspect", cat = "perfective POS", display = 'pf '}, ["asp!"] = {type = "aspect", display = '<abbr title="aspect unattested">aspect unattested '}, }

-- Combined codes that are equivalent to giving multiple specs. `mf` is the same as specifying two separate specs, -- one with `m` in it and the other with `f`. `mfbysense` is similar but is used for nouns that can be either masculine -- or feminine according as to whether they refer to masculine or feminine beings. data.combinations = { ["mf"] = {codes = {"m", "f"}}, ["mfequiv"] = {codes = {"m", "f"}, display = '<abbr title="different genders do not affect the meaning">same meaning '}, ["mfbysense"] = {codes = {"m", "f"}, cat = "masculine and feminine POS by sense", display = '<abbr title="according to the gender of the referent">by sense '}, ["biasp"] = {codes = {"impf", "pf"}}, }

-- Categories when multiple gender/number codes of a given type occur in different specs (two or more of the same type -- cannot occur in a single spec). data.multicode_cats = { ["gender"] = "POS with multiple genders", ["animacy"] = "POS with multiple animacies", ["aspect"] = "biaspectual POS", }

return data