Module:Category tree/poscatboiler/data/non-lemma forms: Difference between revisions

From The Languages of David J. Peterson
Jump to navigation Jump to search
(Undo revision 22847 by Juelos (talk))
Tag: Undo
No edit summary
Line 1: Line 1:
local labels = {}
local labels = {}
local raw_categories = {}
-----------------------------------------------------------------------------
--                                                                        --
--                                  LABELS                                --
--                                                                        --
-----------------------------------------------------------------------------


labels["non-lemma forms"] = {
labels["non-lemma forms"] = {
description = "{{{langname}}} inflected forms of other [[Wiktionary:Lemmas|lemmas]], categorized by their part of speech.",
description = "{{{langname}}} inflected forms of other [[Wiktionary:Lemmas|lemmas]], categorized by their part of speech.",
fundamental = "Fundamental",
umbrella_parents = "Fundamental",
parents = {{template = "langcatboiler"}},
parents = {{name = "{{{langcat}}}", raw = true}},
}
 
labels["active participle forms"] = {
description = "{{{langname}}} active participles that are inflected to display grammatical relations other than the main form.",
parents = {"participle forms", {name = "active participles", sort = "**"}},
}
}


Line 20: Line 35:
description = "{{{langname}}} participles that function as adjectives.",
description = "{{{langname}}} participles that function as adjectives.",
parents = {"participles", "adjectives"},
parents = {"participles", "adjectives"},
}
labels["augmentative adjectives"] = {
description = "{{{langname}}} adjective that are derived from a base adjective to convey greatness.",
parents = {"adjectives"},
}
labels["adjective comparative forms"] = {
description = "{{{langname}}} adjectives that are inflected to display relative degrees of given qualities between nouns.",
parents = {{name = "adjective forms", sort = "comparative forms"}},
}
}


Line 45: Line 50:
description = "{{{langname}}} adjectives that are inflected to be quantified as two.",
description = "{{{langname}}} adjectives that are inflected to be quantified as two.",
parents = {{name = "adjective forms", sort = "dual forms"}},
parents = {{name = "adjective forms", sort = "dual forms"}},
}
labels["adjective equative forms"] = {
description = "{{{langname}}} adjectives that are inflected to display similar degrees of given qualities between nouns, i.e. '''A''' is as ''(insert adjective)'' as '''B'''.",
parents = {{name = "adjective forms", sort = "equative forms"}},
}
}


Line 65: Line 65:
description = "{{{langname}}} adjectives that are inflected to give attributes to unspecified nouns.",
description = "{{{langname}}} adjectives that are inflected to give attributes to unspecified nouns.",
parents = {{name = "adjective forms", sort = "indefinite forms"}},
parents = {{name = "adjective forms", sort = "indefinite forms"}},
}
labels["adjective masculine forms"] = {
description = "{{{langname}}} adjectives that are inflected to give attributes to nouns associated to male beings.",
parents = {{name = "adjective forms", sort = "masculine forms"}},
}
labels["adjective neuter forms"] = {
description = "{{{langname}}} adjectives that are inflected to give attributes to nouns associated neither to male nor to female beings.",
parents = {{name = "adjective forms", sort = "neuter forms"}},
}
}


Line 82: Line 72:
}
}


labels["adjective superlative forms"] = {
labels["broken noun plural forms"] = {
description = "{{{langname}}} adjectives that are inflected to give attributes to nouns in their highest possible degrees.",
description = "{{{langname}}} nouns that are inflected for plural as in Arabic",
parents = {{name = "adjective forms", sort = "superlative forms"}},
parents = {{name = "noun plural forms", sort = "plural forms"}},
}
 
labels["adjective vocative forms"] = {
description = "{{{langname}}} adjectives that are inflected to give attributes to nouns in vocative case, that identify them as being addressed by the speakers.",
parents = {{name = "adjective forms", sort = "vocative forms"}},
}
 
labels["adverb comparative forms"] = {
description = "{{{langname}}} adverbs that are inflected to display relative degrees between affected clauses, sentences or phrases.",
parents = {{name = "adverb forms", sort = "comparative forms"}},
}
}


Line 100: Line 80:
description = "{{{langname}}} adverbs that are inflected to display grammatical relations other than the main form.",
description = "{{{langname}}} adverbs that are inflected to display grammatical relations other than the main form.",
parents = {"non-lemma forms", {name = "adverbs", sort = "**"}},
parents = {"non-lemma forms", {name = "adverbs", sort = "**"}},
}
labels["adverb superlative forms"] = {
description = "{{{langname}}} adverbs that are inflected to modify clauses, sentences and phrases in their highest possible degrees.",
parents = {{name = "adverb forms", sort = "superlative forms"}},
}
}


Line 140: Line 115:
description = "{{{langname}}} classifiers that are inflected for singular number.",
description = "{{{langname}}} classifiers that are inflected for singular number.",
parents = {"classifier forms"},
parents = {"classifier forms"},
}
labels["collective plurals"] = {
description = "{{{langname}}} nominal plural forms with specifically collective semantics.",
parents = {"noun forms"},
}
}


Line 162: Line 142:
}
}


labels["comparative-adjective forms"] = {
labels["conjunction forms"] = {
description = "{{{langname}}} comparative adjectives that are inflected to display grammatical relations other than the main form.",
description = "{{{langname}}} conjunctions that are inflected to display grammatical relations other than the main form.",
parents = {"adjective forms", {name = "comparative adjectives", sort = "**"}},
parents = {"non-lemma forms", {name = "conjunctions", sort = "**"}},
}
}


Line 190: Line 170:
description = "{{{langname}}} diminutives of gerunds.",
description = "{{{langname}}} diminutives of gerunds.",
parents = {"verb forms"},
parents = {"verb forms"},
}
labels["equative adjective forms"] = {
description = "{{{langname}}} equative adjectives that are inflected to display grammatical relations other than the main form.",
parents = {"equative adjectives"},
}
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 adverb forms"] = {
description = "{{{langname}}} equative adverbs that are inflected to display grammatical relations other than the main form.",
parents = {"equative adverbs"},
}
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"},
}
}


Line 200: Line 200:
description = "{{{langname}}} adjectives that express attributes in an even more magnified degree than the superlative forms.",
description = "{{{langname}}} adjectives that express attributes in an even more magnified degree than the superlative forms.",
parents = {"adjective forms"},
parents = {"adjective forms"},
}
labels["excessive adjective forms"] = {
description = "{{{langname}}} exaggerated adjectives that are inflected to display grammatical relations other than the main form.",
parents = {"excessive adjectives"},
}
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"},
}
}


Line 221: Line 236:
}
}


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"] = {
labels["gerunds"] = {
description = "{{{langname}}} verbs that are conjugated to indicate ongoing events at unspecified moments.",
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"},
parents = {"verb forms"},
}
labels["imperfect participles"] = {
description = "{{{langname}}} participles that express an ongoing or continuous action.",
parents = {"participles"},
}
}


Line 244: Line 282:
description = "{{{langname}}} interjections that are inflected to display grammatical relations other than the main form.",
description = "{{{langname}}} interjections that are inflected to display grammatical relations other than the main form.",
parents = {"non-lemma forms", {name = "interjections", sort = "**"}},
parents = {"non-lemma forms", {name = "interjections", sort = "**"}},
}
labels["manuscript forms"] = {
description = "{{{langname}}} words as they appear in original manuscripts.",
parents = {"non-lemma forms"},
}
}


Line 252: Line 295:


labels["mutated forms"] = {
labels["mutated forms"] = {
description = "{{{langname}}} mutated forms.",
description = "{{{langname}}} terms whose initial consonant is mutated due to the effect of the preceding word.",
parents = {"non-lemma forms"},
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"] = {
labels["negative participles"] = {
Line 304: Line 391:
description = "{{{langname}}} nouns that are inflected to be quantified as more than one (more than two in some languages with dual number).",
description = "{{{langname}}} nouns that are inflected to be quantified as more than one (more than two in some languages with dual number).",
parents = {{name = "noun forms", sort = "plural"}},
parents = {{name = "noun forms", sort = "plural"}},
}
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"}},
}
}


Line 309: Line 401:
description = "{{{langname}}} nouns that are inflected to indicate possession.",
description = "{{{langname}}} nouns that are inflected to indicate possession.",
parents = {{name = "noun forms", sort = "possessive"}},
parents = {{name = "noun forms", sort = "possessive"}},
}
labels["noun vocative forms"] = {
description = "{{{langname}}} nouns that are inflected to identify them as being addressed by the speakers.",
parents = {{name = "noun forms", sort = "vocative"}},
}
}


Line 393: Line 480:
labels["prepositional pronouns"] = {
labels["prepositional pronouns"] = {
description = "{{{langname}}} pronouns that are combined with a preposition.",
description = "{{{langname}}} pronouns that are combined with a preposition.",
fundamental = "Lemmas subcategories by language",
umbrella_parents = "Lemmas subcategories by language",
parents = {"pronoun forms", {name = "prepositions", sort = "pronouns"}},
parents = {"pronoun forms", {name = "prepositions", sort = "pronouns"}},
}
}
Line 454: Line 541:
labels["pronunciation variants"] = {
labels["pronunciation variants"] = {
description = "{{{langname}}} words that have alternative pronunciation-based spellings.",
description = "{{{langname}}} words that have alternative pronunciation-based spellings.",
parents = {"non-lemma forms", {name = "pronunciation variants", sort = "**"}},
parents = {"non-lemma forms"},
}
}


Line 472: Line 559:
}
}


labels["superlative adjective forms"] = {
for _, pos in ipairs { "adjective", "adverb", "determiner" } do
description = "{{{langname}}} superlative adjectives that are inflected to display grammatical relations other than the main form.",
local plpos = pos .. "s"
parents = {"superlative adjectives"},
labels["superlative " .. pos .. " forms"] = {
}
description = "{{{langname}}} superlative " .. plpos .. " that are inflected to display grammatical relations other than the main form.",
 
parents = {"superlative " .. plpos},
labels["superlative adjectives"] = {
}
description = "{{{langname}}} adjectives that express attributes in their highest possible degrees.",
parents = {"adjective forms"},
labels["superlative " .. plpos] = {
}
description = "{{{langname}}} " .. plpos .. " that express attributes in their highest possible degrees.",
 
parents = {pos .. " forms"},
labels["superlative adverb forms"] = {
}
description = "{{{langname}}} superlative adverbs that are inflected to display grammatical relations other than the main form.",
end
parents = {"superlative adverbs"},
}
 
labels["superlative adverbs"] = {
description = "{{{langname}}} adverbs that express attributes in their highest possible degrees.",
parents = {"adverb forms"},
}


labels["verb causative forms"] = {
labels["verb causative forms"] = {
Line 524: Line 604:
local labels2 = {}
local labels2 = {}


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


return labels2
 
 
-----------------------------------------------------------------------------
--                                                                        --
--                              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}

Revision as of 13:42, 19 September 2023

Documentation for this module may be created at Module:Category tree/poscatboiler/data/non-lemma forms/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}},
}

labels["active participle forms"] = {
	description = "{{{langname}}} active participles that are inflected to display grammatical relations other than the main form.",
	parents = {"participle forms", {name = "active participles", sort = "**"}},
}

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["adjective forms"] = {
	description = "{{{langname}}} adjectives that are inflected to display grammatical relations other than the main form.",
	parents = {"non-lemma forms", {name = "adjectives", sort = "**"}},
}

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

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

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

labels["adverb forms"] = {
	description = "{{{langname}}} adverbs that are inflected to display grammatical relations other than the main form.",
	parents = {"non-lemma forms", {name = "adverbs", sort = "**"}},
}

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["article forms"] = {
	description = "{{{langname}}} articles that are inflected to display grammatical relations other than the main form.",
	parents = {"determiner forms", {name = "articles", sort = "**"}},
}

labels["circumfix forms"] = {
	description = "{{{langname}}} circumfixes that are inflected to express grammatical relations other than the main form.",
	parents = {"morpheme forms", {name = "circumfixes", sort = "**"}},
}

labels["classifier forms"] = {
	description = "{{{langname}}} classifiers that are inflected to express grammatical relations other than the main form.",
	parents = {"classifiers"},
}

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 adjective forms"] = {
	description = "{{{langname}}} comparative adjectives that are inflected to display grammatical relations other than the main form.",
	parents = {"comparative adjectives"},
}

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["comparative adverb forms"] = {
	description = "{{{langname}}} comparative adverbs that are inflected to display grammatical relations other than the main form.",
	parents = {"comparative adverbs"},
}

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["conjunction forms"] = {
	description = "{{{langname}}} conjunctions that are inflected to display grammatical relations other than the main form.",
	parents = {"non-lemma forms", {name = "conjunctions", sort = "**"}},
}

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["determiner forms"] = {
	description = "{{{langname}}} determiners that are inflected to display grammatical relations other than the main form.",
	parents = {"non-lemma forms", {name = "determiners", sort = "**"}},
}

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

labels["equative adjective forms"] = {
	description = "{{{langname}}} equative adjectives that are inflected to display grammatical relations other than the main form.",
	parents = {"equative adjectives"},
}

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 adverb forms"] = {
	description = "{{{langname}}} equative adverbs that are inflected to display grammatical relations other than the main form.",
	parents = {"equative adverbs"},
}

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 adjective forms"] = {
	description = "{{{langname}}} exaggerated adjectives that are inflected to display grammatical relations other than the main form.",
	parents = {"exaggerated adjectives"},
}

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

labels["excessive adjective forms"] = {
	description = "{{{langname}}} exaggerated adjectives that are inflected to display grammatical relations other than the main form.",
	parents = {"excessive adjectives"},
}

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["infinitive forms"] = {
	description = "{{{langname}}} infinitives that are conjugated to express grammatical relations other than the main form.",
	parents = {"infinitives"},
}

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["interjection forms"] = {
	description = "{{{langname}}} interjections that are inflected to display grammatical relations other than the main form.",
	parents = {"non-lemma forms", {name = "interjections", sort = "**"}},
}

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

labels["morpheme forms"] = {
	description = "{{{langname}}} morphemes that are inflected to express grammatical relations other than the main form.",
	parents = {"non-lemma forms", {name = "morphemes", sort = "**"}},
}

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 dual forms"] = {
	description = "{{{langname}}} nouns that are inflected to be quantified as two.",
	parents = {{name = "noun forms", sort = "dual"}},
}

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

labels["noun forms"] = {
	description = "{{{langname}}} nouns that are inflected to display grammatical relations other than the main form.",
	parents = {"non-lemma forms", {name = "nouns", sort = "**"}},
}

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 plural forms"] = {
	description = "{{{langname}}} nouns that are inflected to be quantified as more than one (more than two in some languages with dual number).",
	parents = {{name = "noun forms", sort = "plural"}},
}

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["numeral forms"] = {
	description = "{{{langname}}} numerals that are inflected to display grammatical relations other than the main form.",
	parents = {"non-lemma forms", {name = "numerals", sort = "**"}},
}

labels["participle forms"] = {
	description = "{{{langname}}} participles that are inflected to display grammatical relations other than the main form.",
	parents = {"non-lemma forms", {name = "participles", sort = "**"}},
}

labels["participles"] = {
	description = "{{{langname}}} verbs not fully conjugated, usually to be used in compound conjugations.",
	parents = {"verb forms"},
}

labels["particle forms"] = {
	description = "{{{langname}}} particles that are inflected to display grammatical relations other than the main form.",
	parents = {"non-lemma forms", {name = "particles", sort = "**"}},
}

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 participle forms"] = {
	description = "{{{langname}}} past participles that are inflected to display grammatical relations other than the main form.",
	parents = {"participle forms", {name = "past participles", sort = "**"}},
}

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["prefix forms"] = {
	description = "{{{langname}}} prefixes that are inflected to express grammatical relations other than the main form.",
	parents = {"morpheme forms", {name = "prefixes", sort = "**"}},
}

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["proper noun forms"] = {
	description = "{{{langname}}} proper nouns that are inflected to display grammatical relations other than the main form.",
	parents = {"non-lemma forms", {name = "proper nouns", sort = "**"}},
}

labels["postposition forms"] = {
	description = "{{{langname}}} postpositions that are inflected to display grammatical relations other than the main form.",
	parents = {"non-lemma forms", {name = "postpositions", sort = "**"}},
}

labels["preposition forms"] = {
	description = "{{{langname}}} prepositions that are inflected to display grammatical relations other than the main form.",
	parents = {"non-lemma forms", {name = "prepositions", sort = "**"}},
}

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 participle forms"] = {
	description = "{{{langname}}} present participles that are inflected to display grammatical relations other than the main form.",
	parents = {"participle forms", {name = "present participles", sort = "**"}},
}

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 forms"] = {
	description = "{{{langname}}} pronouns that are inflected to display grammatical relations other than the main form.",
	parents = {"non-lemma forms", {name = "pronouns", sort = "**"}},
}

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["proper noun plural forms"] = {
	description = "{{{langname}}} proper nouns that are inflected to be quantified as more than one (more than two in some languages with dual number).",
	parents = {{name = "proper noun forms", sort = "plural"}},
}

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

labels["suffix forms"] = {
	description = "{{{langname}}} suffixes that are inflected to express grammatical relations other than the main form.",
	parents = {"morpheme forms", {name = "suffixes", sort = "**"}},
}

for _, pos in ipairs { "adjective", "adverb", "determiner" } do
	local plpos = pos .. "s"
	labels["superlative " .. pos .. " forms"] = {
		description = "{{{langname}}} superlative " .. plpos .. " that are inflected to display grammatical relations other than the main form.",
		parents = {"superlative " .. plpos},
	}
	
	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 forms"] = {
	description = "{{{langname}}} verbs that are conjugated to display grammatical relations other than the main form.",
	parents = {"non-lemma forms", {name = "verbs", sort = "**"}},
}

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}