본문으로 이동

모듈:category tree/non-lemma forms

위키낱말사전, 말과 글의 누리

이 모듈에 대한 설명문서는 모듈:category tree/non-lemma forms/설명문서에서 만들 수 있습니다

local labels = {}
local raw_categories = {}

local unpack = unpack or table.unpack -- Lua 5.2 호환성


-----------------------------------------------------------------------------
--                                                                         --
--                                  레이블                                 --
--                                                                         --
-----------------------------------------------------------------------------


labels["non-lemma forms"] = {
	description = "품사별로 분류된, 다른 [[위키낱말사전:표제어|표제어]]의 굴절형인 {{{langname}}} 낱말.",
	umbrella_parents = "기본",
	parents = {{name = "{{{langcat}}}", raw = true}},
}

-- 비표제어형의 특정 유형을 처리합니다.
-- 각 명세는 {품사, 상위품사} 형식입니다. 예를 들어, {"양접사", "형태소"}는 '양접사형' 분류가 '형태소형' 분류를 첫 번째 부모로 가짐을 의미합니다.
-- 두 번째 부모는 품사 자체입니다. PARENT_POS가 'false'이면 두 번째 부모만 나타납니다.
-- 명세가 단일 문자열이면, PARENT_POS는 "non-lemma"가 기본값입니다.
for _, spec in ipairs {
	{"형용사", "non-lemma"},
	{"부사", "non-lemma"},
	{"관사", "한정사"},
	{"접환사", "형태소"},
	{"분류사", false},
	{"비교급 형용사", false},
	{"비교급 부사", false},
	{"접속사", "non-lemma"},
	{"한정사", "non-lemma"},
	{"동등비교급 형용사", false},
	{"동등비교급 부사", false},
	{"과장 형용사", false},
	{"초과 형용사", false},
	{"부정사", false},
	{"감탄사", "non-lemma"},
	{"형태소", "non-lemma"},
	{"명사", "non-lemma"},
	{"수사", "non-lemma"},
	{"분사", "non-lemma"},
	{"불변화사", "non-lemma"},
	{"과거 분사", "분사"},
	{"접두사", "형태소"},
	{"고유 명사", "non-lemma"},
	{"후치사", "non-lemma"},
	{"전치사", "non-lemma"},
	{"대명사", "non-lemma"},
	{"접미사", "형태소"},
	{"동사", "non-lemma"},
	{"최상급 형용사", false},
	{"최상급 부사", false},
} do
	local pos_ko, parent_pos_en
	if type(spec) == "table" then
		pos_ko, parent_pos_en = unpack(spec)
	else
		pos_ko = spec
		parent_pos_en = "non-lemma"
	end
	
	-- 한국어 품사명에 맞는 영어 키를 찾기 위한 간단한 매핑
	local pos_ko_to_en = {
		["형용사"] = "adjective",
		["부사"] = "adverb",
		["관사"] = "article",
		["접환사"] = "circumfix",
		["분류사"] = "classifier",
		["비교급 형용사"] = "comparative adjective",
		["비교급 부사"] = "comparative adverb",
		["접속사"] = "conjunction",
		["한정사"] = "determiner",
		["동등비교급 형용사"] = "equative adjective",
		["동등비교급 부사"] = "equative adverb",
		["과장 형용사"] = "exaggerated adjective",
		["초과 형용사"] = "excessive adjective",
		["부정사"] = "infinitive",
		["감탄사"] = "interjection",
		["형태소"] = "morpheme",
		["명사"] = "noun",
		["수사"] = "numeral",
		["분사"] = "participle",
		["불변화사"] = "particle",
		["과거 분사"] = "past participle",
		["접두사"] = "prefix",
		["고유 명사"] = "proper noun",
		["후치사"] = "postposition",
		["전치사"] = "preposition",
		["대명사"] = "pronoun",
		["접미사"] = "suffix",
		["동사"] = "verb",
		["최상급 형용사"] = "superlative adjective",
		["최상급 부사"] = "superlative adverb"
	}
	local pos_en = pos_ko_to_en[pos_ko]
	
	local parents = {}
	if parent_pos_en ~= false then
		table.insert(parents, parent_pos_en .. " forms")
	end
	table.insert(parents, {name = pos_en .. "s", sort = "**"}) -- `lemmas` 모듈에 정의된 부모를 참조
	
	labels[pos_en .. " forms"] = {
		description = ("주요 형태 이외의 문법적 관계를 표시하기 위해 굴절된 {{{langname}}} %s."):format(pos_ko),
		parents = parents,
	}
end

labels["active participles"] = {
	description = "행위자가 능동적으로 행동을 수행함을 표현하는 {{{langname}}} 분사.",
	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["active adjectival participles"] = {
	description = "형용사로 기능하며 행위자가 능동적으로 행동을 수행함을 표현하는 {{{langname}}} 분사.",
	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}}} 동사."
	if not data.lang then
		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}}} 형태."
		elseif langcode == "sa" or langcode == "pi" then
			return "문장의 주어에 의한 이전 행동을 나타내기 위해 절에서 사용되는 {{{langname}}} 동사 형태."
		else
			return default_text
		end
	end
end
	
labels["gerunds"] = {
	description = gerund_description,
	additional = "{{small|[Edit function gerund_description() in [[Module:category tree/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_en = {
	"adjective",
	"adverb",
	"determiner",
	"interjection",
	"noun",
	"numeral",
	"participle",
	"particle",
	"prefix",
	"preposition",
	"pronoun",
	"proper noun",
	"verb",
}

local inflected_pos_for_mutation_ko = {
	"형용사",
	"부사",
	"한정사",
	"감탄사",
	"명사",
	"수사",
	"분사",
	"불변화사",
	"접두사",
	"전치사",
	"대명사",
	"고유 명사",
	"명사",
}

for i, pos_en in ipairs(inflected_pos_for_mutation_en) do
	local pos_ko = inflected_pos_for_mutation_ko[i]
	labels["mutated " .. pos_en .. "s"] = {
		description = "앞 단어의 영향으로 첫 자음이 변이된 {{{langname}}} " .. pos_ko .. ".",
		parents = {pos_en .. " forms", {name = "mutated forms", sort = pos_en}},
	}
end

local mutation_types = {
	["eclipsed"] = "[[부록:아일랜드어의 두음 변이#비음화|비음화]]",
	["lenited"] = "[[부록:아일랜드어의 두음 변이#약음화|약음화]]",
	["h-prothesized"] = "[[h-첨가]]",
	["t-prothesized"] = "[[t-첨가]]",
	["aspirate-mutation"] = "[[기식 변이]]",
	["hard-mutation"] = "[[경음 변이]]",
	["mixed-mutation"] = "[[혼합 변이]]",
	["nasal-mutation"] = "[[비음 변이]]",
	["soft-mutation"] = "[[연음 변이]]",
}

for muttype, desc in pairs(mutation_types) do
	labels[muttype .. " forms"] = {
		description = "앞 단어의 영향으로 " .. desc .. "를 통해 첫 자음이 변이된 {{{langname}}} 낱말.",
		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["perfect active participles"] = {
	description = "{{{langname}}} participles that express an agent having completed 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 = {}

-- "재구된" 하위 분류를 추가하고, 'umbrella_parents' 키가 없는 경우 추가.
for key, data in pairs(labels) do
	labels2[key] = data
	if not data.umbrella_parents then
		data.umbrella_parents = "언어별 비표제어형 하위 분류"
	end
	labels2["reconstructed " .. key] = {
		description = "언어학적으로 [[위키낱말사전:재구된 낱말|재구된]] {{{langname}}} " .. key .. ".",
		umbrella_parents = "언어별 비표제어형 하위 분류",
		parents = {key, {name = "reconstructed terms", sort = key}}
	}
end


-- 이들은 최상위 분류임; (적어도 당분간은) '재구된 대체형'을 추가하지 않음.
labels2["alternative forms"] = {
	description = "[[위키낱말사전:표제어|표제어]]의 {{{langname}}} 대체형. 즉, 문증되지만 부차적이고 일반적으로 흔히 사용되지 않는 변이형 또는 철자.",
	additional = "그러한 낱말은 드문 철자 변이형, 방언형, 역사적, 고어 또는 폐어 철자, 덜 사용되는 문자로 된 철자 등이 될 수 있습니다. " ..
		"표제어 분류가 복잡해지는 것을 피하기 위해 이 분류에 보관됩니다. 일반적으로 사용되는 변이형은 이 분류에 넣지 말고 표제어로 처리해야 합니다.",
	umbrella_parents = "기본",
	parents = {{name = "{{{langcat}}}", raw = true}},
}

-----------------------------------------------------------------------------
--                                                                         --
--                              원시(RAW) 분류                             --
--                                                                         --
-----------------------------------------------------------------------------


raw_categories["언어별 비표제어형 하위 분류"] = {
	description = "비표제어형과 관련된 주제를 다루는 포괄 분류.",
	additional = "{{{umbrella_meta_msg}}}",
	parents = {
		"포괄 메타분류",
		{name = "non-lemma forms", is_label = true, sort = " "},
	},
}


return {LABELS = labels2, RAW_CATEGORIES = raw_categories}