Module:category tree/poscatboiler/data/non-lemma forms
Jump to navigation
Jump to search
- The following documentation is generated by Template:poscatboiler data submodule documentation. [edit]
- Useful links: root page • root page’s subpages • links • transclusions • testcases • sandbox
This data submodule defines part of Wiktionary's category structure.
For an introduction to the poscatboiler
system and a description of how to add or modify categories, see Module:category tree/poscatboiler/data/documentation.
local labels = {}
local raw_categories = {}
-----------------------------------------------------------------------------
-- --
-- LABELS --
-- --
-----------------------------------------------------------------------------
labels["non-lemma forms"] = {
description = "{{{langname}}} inflected forms of other [[Wiktionary:Lemmas|lemmas]], categorized by their part of speech.",
umbrella_parents = "Fundamental",
parents = {{name = "{{{langcat}}}", raw = true}},
}
-- 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 = ("{{{langname}}} %s that are inflected to display grammatical relations other than the main form."):format(plpos),
parents = parents,
}
end
labels["active participles"] = {
description = "{{{langname}}} participles that express an agent actively performing an action.",
parents = {"participles"},
}
labels["active adjectival participles"] = {
description = "{{{langname}}} participles that function as adjectives and express an agent actively performing an action.",
parents = {"participles", "adjectives"},
}
labels["adjectival participles"] = {
description = "{{{langname}}} participles that function as adjectives.",
parents = {"participles", "adjectives"},
}
labels["adjective construct forms"] = {
description = "{{{langname}}} adjectives that are inflected to modify a noun in a genitive construction.",
parents = {{name = "adjective forms", sort = "construct"}},
}
labels["adjective definite forms"] = {
description = "{{{langname}}} adjectives that are inflected to give attributes to specific and identifiable nouns.",
parents = {{name = "adjective forms", sort = "definite forms"}},
}
labels["adjective dual forms"] = {
description = "{{{langname}}} adjectives that are inflected to be quantified as two.",
parents = {{name = "adjective forms", sort = "dual forms"}},
}
labels["adjective feminine forms"] = {
description = "{{{langname}}} adjectives that are inflected to give attributes to nouns associated to female beings.",
parents = {{name = "adjective forms", sort = "feminine forms"}},
}
labels["adverbial participles"] = {
description = "{{{langname}}} participles that function as adverbs.",
parents = {"participles", "adverbs"},
}
labels["agent participles"] = {
description = "{{{langname}}} participles that express an agent by who something is done.",
parents = {"participles"},
}
labels["anterior adverbial participles"] = {
description = "{{{langname}}} 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 = "{{{langname}}} classifiers that are inflected for singular number.",
parents = {"classifier forms"},
}
labels["collective plurals"] = {
description = "{{{langname}}} nominal plural forms with specifically collective semantics.",
parents = {"noun forms"},
}
labels["comparative adjectives"] = {
description = "{{{langname}}} 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 = "{{{langname}}} adjectives that express attributes in a relatively higher degree, or in the highest possible degree.",
parents = {"adjective forms"},
}
labels["comparative adverbs"] = {
description = "{{{langname}}} 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 = "{{{langname}}} 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 = "{{{langname}}} verb forms that build clauses which function as adverbials.",
parents = {"verb forms"},
}
labels["determiner comparative forms"] = {
description = "{{{langname}}} determiners that are inflected to display relative degrees of given qualities between nouns.",
parents = {{name = "determiner forms", sort = "comparative forms"}},
}
labels["diminutive gerunds"] = {
description = "{{{langname}}} diminutives of gerunds.",
parents = {"verb forms"},
}
labels["equative adjectives"] = {
description = "{{{langname}}} 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 = "{{{langname}}} 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 = "{{{langname}}} adjectives that express attributes in an even more magnified degree than the superlative forms.",
parents = {"adjective forms"},
}
labels["excessive adjectives"] = {
description = "{{{langname}}} adjectives that express attributes in an excessive degree.",
parents = {"adjective forms"},
}
labels["excessive adverbs"] = {
description = "{{{langname}}} adverbs that express attributes in an excessive degree.",
parents = {"adverb forms"},
}
labels["extended adjective forms"] = {
parents = {"adjective forms"},
}
labels["future active participles"] = {
description = "{{{langname}}} participles that express an agent actively performing an action in future time.",
parents = {"participles"},
}
labels["future participles"] = {
description = "{{{langname}}} participles that indicate future events.",
parents = {"participles"},
}
labels["future passive participles"] = {
description = "{{{langname}}} participles that express a patient having an action performed on it in future time.",
parents = {"participles"},
}
local function gerund_description(data)
local default_text = "{{{langname}}} 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 "{{{langname}}} forms that generally act as an action noun for the verb that they are formed from."
elseif langcode == "sa" or langcode == "pi" then
return "{{{langname}}} 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 = "{{small|[Edit function gerund_description() in [[Module:category tree/poscatboiler/data/non-lemma forms]] to change this description.]}}",
parents = {"verb forms"},
}
labels["imperfect participles"] = {
description = "{{{langname}}} participles that express an ongoing or continuous action.",
parents = {"participles"},
}
labels["infinitives"] = {
description = "{{{langname}}} non-finite verb forms of various kinds.",
parents = {"verb forms"},
}
labels["intensive adjectives"] = {
description = "{{{langname}}} adjectives that are derived from a base word to express a stronger concept than the base word.",
parents = {"adjective forms"},
}
labels["manuscript forms"] = {
description = "{{{langname}}} words as they appear in original manuscripts.",
parents = {"non-lemma forms"},
}
labels["mutated forms"] = {
description = "{{{langname}}} 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 = "{{{langname}}} " .. 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"] = "[[Appendix:Irish mutations#Eclipsis|eclipsis]]",
["lenited"] = "[[Appendix:Irish mutations#Lenition|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 = "{{{langname}}} terms whose initial consonant is mutated through " .. desc .. ", due to the effect of the preceding word.",
parents = {"mutated forms"},
}
end
labels["negative participles"] = {
description = "{{{langname}}} participles that express lack of an action being performed.",
parents = {"participles"},
}
labels["nominal participles"] = {
description = "{{{langname}}} participles that function as nouns.",
parents = {"participles", "nouns"},
}
labels["noun construct forms"] = {
description = "{{{langname}}} nouns that are inflected to modify a noun in a genitive construction.",
parents = {{name = "noun forms", sort = "construct"}},
}
labels["noun definite forms"] = {
description = "{{{langname}}} nouns that are inflected to designate an identified object.",
parents = {{name = "noun forms", sort = "definite"}},
}
labels["noun feminine forms"] = {
description = "{{{langname}}} nouns that are inflected to be associated to female beings.",
parents = {{name = "noun forms", sort = "feminine"}},
}
labels["noun indefinite forms"] = {
description = "{{{langname}}} nouns that are inflected to designate an unidentified object.",
parents = {{name = "noun forms", sort = "indefinite"}},
}
labels["noun masculine forms"] = {
description = "{{{langname}}} nouns that are inflected to be associated to male beings.",
parents = {{name = "noun forms", sort = "masculine"}},
}
labels["noun paucal forms"] = {
description = "{{{langname}}} nouns that are inflected to be quantified as between two (or three in some languages with dual number) and ten.",
parents = {{name = "noun forms", sort = "paucal"}},
}
labels["noun possessive forms"] = {
description = "{{{langname}}} nouns that are inflected to indicate possession.",
parents = {{name = "noun forms", sort = "possessive"}},
}
labels["participles"] = {
description = "{{{langname}}} 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 = "{{{langname}}} participles that express a patient having an action performed on it.",
parents = {"participles"},
}
labels["passive adjectival participles"] = {
description = "{{{langname}}} participles that function as adjectives and express a patient having an action performed on it.",
parents = {"participles", "adjectives"},
}
labels["past active aorist participles"] = {
description = "{{{langname}}} participles that express completed events in past time.",
parents = {"participles"},
}
labels["past active imperfect participles"] = {
description = "{{{langname}}} participles that express ongoing events in past time.",
parents = {"participles"},
}
labels["past active participles"] = {
description = "{{{langname}}} participles that express an agent actively performing an action in past time.",
parents = {"participles"},
}
labels["past adverbial participles"] = {
description = "{{{langname}}} participles that function as adverbs and express actions in past time.",
parents = {"adverbial participles", "adverbs"},
}
labels["past participles"] = {
description = "{{{langname}}} participles that express actions in past time.",
parents = {"participles"},
}
labels["past passive participles"] = {
description = "{{{langname}}} participles that express a patient having an action performed on it in past time.",
parents = {"participles"},
}
labels["perfect participles"] = {
description = "{{{langname}}} participles that express having completed or undergone an action.",
parents = {"participles"},
}
labels["prepositional pronouns"] = {
description = "{{{langname}}} 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 = "{{{langname}}} participles that express an agent actively performing an action in present time.",
parents = {"participles"},
}
labels["present adverbial participles"] = {
description = "{{{langname}}} participles that function as adverbs and express actions in present time.",
parents = {"adverbial participles", "adverbs"},
}
labels["present middle participles"] = {
description = "{{{langname}}} participles that express an agent performing an action in present time in middle voice.",
parents = {"participles"},
}
labels["present participles"] = {
description = "{{{langname}}} participles that express actions occurring in the present time.",
parents = {"participles"},
}
labels["present passive participles"] = {
description = "{{{langname}}} participles that express a patient having an action performed on it in present time.",
parents = {"participles"},
}
labels["pronoun possessive forms"] = {
description = "{{{langname}}} pronouns that are inflected to indicate possession.",
parents = {{name = "pronoun forms", sort = "possessive"}},
}
labels["pronunciation variants"] = {
description = "{{{langname}}} words that have alternative pronunciation-based spellings.",
parents = {"non-lemma forms"},
}
labels["singulatives"] = {
description = "{{{langname}}} 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 = "{{{langname}}} " .. plpos .. " that express attributes in their highest possible degrees.",
parents = {pos .. " forms"},
}
end
labels["verb causative forms"] = {
description = "{{{langname}}} verbs that are conjugated to express actions caused by external conditions.",
parents = {{name = "verb forms", sort = "causative"}},
}
labels["verb irregular forms"] = {
description = "{{{langname}}} verb forms that don't follow standard patterns of conjugation.",
parents = {{name = "verb forms", sort = "irregular"}},
}
labels["verb negative forms"] = {
description = "{{{langname}}} verbs that are conjugated to express negation.",
parents = {{name = "verb forms", sort = "negative"}},
}
labels["verb passive forms"] = {
description = "{{{langname}}} verbs that are conjugated to direct the action to the grammatical subject, by means of passive voice.",
parents = {{name = "verb forms", sort = "passive"}},
}
labels["verb simple past forms"] = {
description = "{{{langname}}} verbs that are conjugated to indicate events before the current moment.",
parents = {{name = "verb forms", sort = "simple past"}},
}
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 = "{{{langname}}} " .. key .. " that have been linguistically [[Wiktionary:Reconstructed terms|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 = "{{{umbrella_meta_msg}}}",
parents = {
"Umbrella metacategories",
{name = "non-lemma forms", is_label = true, sort = " "},
},
}
return {LABELS = labels2, RAW_CATEGORIES = raw_categories}