Module:category tree/poscatboiler/data/non-lemma forms

local labels = {} local raw_categories = {}

- --                                                                        -- --                                  LABELS                                 -- --                                                                        -- -

labels["non-lemma forms"] = { description = " inflected forms of other lemmas, categorized by their part of speech.", umbrella_parents = "Fundamental", parents = , }

-- Handle specific types of non-lemma forms. Each spec is of the form {POS, PARENT_POS} where POS is the singular form -- of a part of speech for which non-lemma forms exist (e.g. 'determiner' is listed because 'determiner forms' exist), -- and PARENT_POS is the singular form of the parent category to add the category to. For example, the spec -- {"circumfix", "morpheme"} means that 'circumfix forms' categories have the corresponding 'morpheme forms' categories -- as their first parent. The second parent is the POS itself; e.g. 'morpheme forms' has 'morphemes' as its second -- parent, with a sort key that places 'morpheme forms' at the beginning of the child categories. If PARENT_POS is -- 'false', only the second parent appears as the parent. If a spec is a single string POS, the PARENT_POS defaults to -- "non-lemma"; e.g. if the spec is "adjective", then 'adjective forms' categories have the corresponding -- 'non-lemma forms' category as their first parent. for _, spec in ipairs { "adjective", "adverb", {"article", "determiner"}, {"circumfix", "morpheme"}, {"classifier", false}, {"comparative adjective", false}, {"comparative adverb", false}, "conjunction", "determiner", {"equative adjective", false}, {"equative adverb", false}, {"exaggerated adjective", false}, {"excessive adjective", false}, {"infinitive", false}, "interjection", "morpheme", "noun", "numeral", "participle", "particle", {"past participle", "participle"}, {"prefix", "morpheme"}, "proper noun", "postposition", "preposition", "pronoun", {"suffix", "morpheme"}, "verb", {"superlative adjective", false}, {"superlative adverb", false}, } do	local pos, parent_pos if type(spec) == "table" then pos, parent_pos = unpack(spec) else pos = spec parent_pos = "non-lemma" end local plpos = require("Module:string utilities").pluralize(pos) local parents = {} if parent_pos ~= false then table.insert(parents, parent_pos .. " forms") end table.insert(parents, {name = plpos, sort = "**"}) labels[pos .. " forms"] = { description = (" %s that are inflected to display grammatical relations other than the main form."):format(plpos), parents = parents, } end

labels["active participles"] = { description = " participles that express an agent actively performing an action.", parents = {"participles"}, }

labels["active adjectival participles"] = { description = " participles that function as adjectives and express an agent actively performing an action.", parents = {"participles", "adjectives"}, }

labels["adjectival participles"] = { description = " participles that function as adjectives.", parents = {"participles", "adjectives"}, }

labels["adjective construct forms"] = { description = " adjectives that are inflected to modify a noun in a genitive construction.", parents = , }

labels["adjective definite forms"] = { description = " adjectives that are inflected to give attributes to specific and identifiable nouns.", parents = , }

labels["adjective dual forms"] = { description = " adjectives that are inflected to be quantified as two.", parents = , }

labels["adjective feminine forms"] = { description = " adjectives that are inflected to give attributes to nouns associated to female beings.", parents = , }

labels["adjective indefinite forms"] = { description = " adjectives that are inflected to give attributes to unspecified nouns.", parents = , }

labels["adjective plural forms"] = { description = " adjectives that are inflected to give attributes to nouns quantified as more than one (more than two in some languages with dual number).", parents = , }

labels["broken noun plural forms"] = { description = " nouns that are inflected for plural as in Arabic", parents = , }

labels["adverbial participles"] = { description = " participles that function as adverbs.", parents = {"participles", "adverbs"}, }

labels["agent participles"] = { description = " participles that express an agent by who something is done.", parents = {"participles"}, }

labels["anterior adverbial participles"] = { description = " participles that function as adverbs and express an action completed before the one expressed by the primary verb.", parents = {"participles", "adverbs"}, }

labels["classifier singular forms"] = { description = " classifiers that are inflected for singular number.", parents = {"classifier forms"}, }

labels["collective plurals"] = { description = " nominal plural forms with specifically collective semantics.", parents = {"noun forms"}, }

labels["comparative adjectives"] = { description = " adjectives that express attributes in a relatively higher degree, or serve to set apart one thing from another.", parents = {"adjective forms"}, }

labels["elative adjectives"] = { description = " adjectives that express attributes in a relatively higher degree, or in the highest possible degree.", parents = {"adjective forms"}, }

labels["comparative adverbs"] = { description = " adverbs that express attributes in a relatively higher degree, or serve to set apart one thing from another.", parents = {"adverb forms"}, }

labels["contemporary adverbial participles"] = { description = " participles that function as adverbs and express an action occuring simultaneously with the one expressed by the primary verb.", parents = {"participles", "adverbs"}, }

labels["converbs"] = { description = " verb forms that build clauses which function as adverbials.", parents = {"verb forms"}, }

labels["determiner comparative forms"] = { description = " determiners that are inflected to display relative degrees of given qualities between nouns.", parents = , }

labels["diminutive gerunds"] = { description = " diminutives of gerunds.", parents = {"verb forms"}, }

labels["equative adjectives"] = { description = " adjectives that express similar degrees of given qualities between nouns, i.e. A is as (insert adjective) as B.", parents = {"adjective forms"}, }

labels["equative adverbs"] = { description = " adverbs that express similar degrees of given qualities between verbs, i.e. A as (insert adverb) as B.", parents = {"adverb forms"}, }

labels["exaggerated adjectives"] = { description = " adjectives that express attributes in an even more magnified degree than the superlative forms.", parents = {"adjective forms"}, }

labels["excessive adjectives"] = { description = " adjectives that express attributes in an excessive degree.", parents = {"adjective forms"}, }

labels["excessive adverbs"] = { description = " adverbs that express attributes in an excessive degree.", parents = {"adverb forms"}, }

labels["extended adjective forms"] = { parents = {"adjective forms"}, }

labels["future active participles"] = { description = " participles that express an agent actively performing an action in future time.", parents = {"participles"}, }

labels["future participles"] = { description = " participles that indicate future events.", parents = {"participles"}, }

labels["future passive participles"] = { description = " participles that express a patient having an action performed on it in future time.", parents = {"participles"}, }

local function gerund_description(data) local default_text = " verbs that are conjugated to indicate ongoing events at unspecified moments." if not data.lang then -- This happens e.g. in Category:Gerunds by language. return default_text else local langcode = data.lang:getCode if langcode == "sq" or langcode == "kmr" or langcode == "liv" or data.lang:inFamily("gem", "itc") then return " forms that generally act as an action noun for the verb that they are formed from." elseif langcode == "sa" or langcode == "pi" then return " verb forms used in a clause to indicate a prior action by the subject of the sentence." else return default_text end end end labels["gerunds"] = { description = gerund_description, additional = "[Edit function gerund_description in Module:category tree/poscatboiler/data/non-lemma forms to change this description.]", parents = {"verb forms"}, }

labels["imperfect participles"] = { description = " participles that express an ongoing or continuous action.", parents = {"participles"}, }

labels["infinitives"] = { description = " non-finite verb forms of various kinds.", parents = {"verb forms"}, }

labels["intensive adjectives"] = { description = " adjectives that are derived from a base word to express a stronger concept than the base word.", parents = {"adjective forms"}, }

labels["manuscript forms"] = { description = " words as they appear in original manuscripts.", parents = {"non-lemma forms"}, }

labels["mutated forms"] = { description = " terms whose initial consonant is mutated due to the effect of the preceding word.", parents = {"non-lemma forms"}, }

local inflected_pos_for_mutation = { "adjective", "adverb", "determiner", "interjection", "noun", "numeral", "participle", "particle", "prefix", "preposition", "pronoun", "proper noun", "verb", }

for _, pos in ipairs(inflected_pos_for_mutation) do	local plpos = require("Module:string utilities").pluralize(pos) labels["mutated " .. plpos] = { description = " " .. plpos .. " whose initial consonant is mutated due to the effect of the preceding word.", parents = {pos .. " forms", {name = "mutated forms", sort = pos}}, } end

local mutation_types = { -- FIXME, we should add these terms to Appendix:Glossary and link to them. ["eclipsed"] = "eclipsis", ["lenited"] = "lenition", ["h-prothesized"] = "h-prothesis", ["t-prothesized"] = "t-prothesis", ["aspirate-mutation"] = "aspirate mutation", ["hard-mutation"] = "hard mutation", ["mixed-mutation"] = "mixed mutation", ["nasal-mutation"] = "nasal mutation", ["soft-mutation"] = "soft mutation", }

for muttype, desc in pairs(mutation_types) do labels[muttype .. " forms"] = { description = " terms whose initial consonant is mutated through " .. desc .. ", due to the effect of the preceding word.", parents = {"mutated forms"}, } end

labels["negative participles"] = { description = " participles that express lack of an action being performed.", parents = {"participles"}, }

labels["nominal participles"] = { description = " participles that function as nouns.", parents = {"participles", "nouns"}, }

labels["noun construct forms"] = { description = " nouns that are inflected to modify a noun in a genitive construction.", parents = , }

labels["noun definite forms"] = { description = " nouns that are inflected to designate an identified object.", parents = , }

labels["noun dual forms"] = { description = " nouns that are inflected to be quantified as two.", parents = , }

labels["noun feminine forms"] = { description = " nouns that are inflected to be associated to female beings.", parents = , }

labels["noun indefinite forms"] = { description = " nouns that are inflected to designate an unidentified object.", parents = , }

labels["noun masculine forms"] = { description = " nouns that are inflected to be associated to male beings.", parents = , }

labels["noun plural forms"] = { description = " nouns that are inflected to be quantified as more than one (more than two in some languages with dual number).", parents = , }

labels["noun paucal forms"] = { description = " nouns that are inflected to be quantified as between two (or three in some languages with dual number) and ten.", parents = , }

labels["noun possessive forms"] = { description = " nouns that are inflected to indicate possession.", parents = , }

labels["participles"] = { description = " verbal forms that behave syntactically like adjectives (or sometimes adverbs), and in some languages are often used in compound conjugations and/or reduced relative clauses.", parents = {"verb forms"}, }

labels["passive participles"] = { description = " participles that express a patient having an action performed on it.", parents = {"participles"}, }

labels["passive adjectival participles"] = { description = " participles that function as adjectives and express a patient having an action performed on it.", parents = {"participles", "adjectives"}, }

labels["past active aorist participles"] = { description = " participles that express completed events in past time.", parents = {"participles"}, }

labels["past active imperfect participles"] = { description = " participles that express ongoing events in past time.", parents = {"participles"}, }

labels["past active participles"] = { description = " participles that express an agent actively performing an action in past time.", parents = {"participles"}, }

labels["past adverbial participles"] = { description = " participles that function as adverbs and express actions in past time.", parents = {"adverbial participles", "adverbs"}, }

labels["past participles"] = { description = " participles that express actions in past time.", parents = {"participles"}, }

labels["past passive participles"] = { description = " participles that express a patient having an action performed on it in past time.", parents = {"participles"}, }

labels["perfect participles"] = { description = " participles that express having completed or undergone an action.", parents = {"participles"}, }

labels["prepositional pronouns"] = { description = " pronouns that are combined with a preposition.", umbrella_parents = "Lemmas subcategories by language", parents = {"pronoun forms", {name = "prepositions", sort = "pronouns"}}, }

labels["present active participles"] = { description = " participles that express an agent actively performing an action in present time.", parents = {"participles"}, }

labels["present adverbial participles"] = { description = " participles that function as adverbs and express actions in present time.", parents = {"adverbial participles", "adverbs"}, }

labels["present middle participles"] = { description = " participles that express an agent performing an action in present time in middle voice.", parents = {"participles"}, }

labels["present participles"] = { description = " participles that express actions occurring in the present time.", parents = {"participles"}, }

labels["present passive participles"] = { description = " participles that express a patient having an action performed on it in present time.", parents = {"participles"}, }

labels["pronoun possessive forms"] = { description = " pronouns that are inflected to indicate possession.", parents = , }

labels["pronunciation variants"] = { description = " words that have alternative pronunciation-based spellings.", parents = {"non-lemma forms"}, }

labels["proper noun plural forms"] = { description = " proper nouns that are inflected to be quantified as more than one (more than two in some languages with dual number).", parents = , }

labels["singulatives"] = { description = " plural nouns that are inflected for singular number.", parents = {"noun forms"}, }

for _, pos in ipairs { "adjective", "adverb", "determiner" } do local plpos = pos .. "s" labels["superlative " .. plpos] = { description = " " .. plpos .. " that express attributes in their highest possible degrees.", parents = {pos .. " forms"}, } end

labels["verb causative forms"] = { description = " verbs that are conjugated to express actions caused by external conditions.", parents = , }

labels["verb irregular forms"] = { description = " verb forms that don't follow standard patterns of conjugation.", parents = , }

labels["verb negative forms"] = { description = " verbs that are conjugated to express negation.", parents = , }

labels["verb passive forms"] = { description = " verbs that are conjugated to direct the action to the grammatical subject, by means of passive voice.", parents = , }

labels["verb simple past forms"] = { description = " verbs that are conjugated to indicate events before the current moment.", parents = , }

local labels2 = {}

-- Add "reconstructed" subcategories; add 'umbrella_parents' key if not -- already present. for key, data in pairs(labels) do	labels2[key] = data if not data.umbrella_parents then data.umbrella_parents = "Non-lemma forms subcategories by language" end labels2["reconstructed " .. key] = { description = " " .. key .. " that have been linguistically reconstructed.", umbrella_parents = "Non-lemma forms subcategories by language", parents = {key, {name = "reconstructed terms", sort = key}} } end

- --                                                                        -- --                              RAW CATEGORIES                             -- --                                                                        -- -

raw_categories["Non-lemma forms subcategories by language"] = { description = "Umbrella categories covering topics related to non-lemma forms.", additional = "", parents = { "Umbrella metacategories", {name = "non-lemma forms", is_label = true, sort = " "}, }, }

return {LABELS = labels2, RAW_CATEGORIES = raw_categories}