Module:uz-inflection/data/uz-noun

Navigation edit

Active version Development version
  M:uz-inflection     {{uz-inflection}}     M:*/inflection     {{*/inflection}}  

Active version:

unit testcases main template table template
  M:uz-inflection/units/ru-noun     M:/.../testcases     {{ru-decl-noun-z}}     {{ru-decl-noun-table-z}}  
  M:uz-inflection/units/uz-noun     M:/.../testcases     {{uz-decl-noun}}     {{uz-decl-noun-table}}  

return {
	template = 'uz-decl-noun-table',

	affixes = {
		gen = 'ning',
		acc = 'ni',
		loc = 'da',
		abl = 'dan',
		dat = 'ga',
		dat_k = 'ka',
		dat_q = 'qa',
		pl = 'lar',
		possessive_first_sg = 'm',
		possessive_second_sg = 'ng',
		possessive_first_pl = 'miz',
		possessive_second_pl = 'ngiz',
		possessive_third = 'i',
		interfix = 'i',
	},

	conditions = {
		{
			class = 'common',
		},
		{
			_if = {base__endswith = 'k'},
			class = 'dat_k',
		},
		{
			_if = {base__endswith = 'q'},
			class = 'dat_q',
		},
		{
			long_comment = 'If two last letters are identical to first letter of declension ending — then we need to leave only two letters from three.<br/> For example, metall + lar = metallar',

			_if = {base__endswith = 'll'},
			pl = 'ar',
		},	

		{SECTION = 'Possessive forms'},
		{
			base_possessive = '<base>',
			possessive_type = '<type>',
			class = {'possessive_nom', 'possessive_other'},
		},

		{SUBSECTION = 'When last letter is vowel'},
		{
			_if = {base__endswith = 'a'},
			interfix = '',
			possessive_third = 'si',
		},
		{
			_if = {base__endswith = {'[eiuo]', "o[ʻ`']"}},
			_then = {
				{
					_if = {possessive_type = 'std'},
					interfix = '',
					possessive_third = 'si',
				},
				{
					_if = {possessive_type = 'yisi'},
					interfix = 'yi',
					possessive_third = 'si',
				},
				{
					_if = {possessive_type = 'yiyi'},
					interfix = 'yi',
					possessive_third = 'yi',
				},
				{
					_if = {possessive_type__not = {'std', 'yisi', 'yiyi'}},
					possessive_type_expected = '1',
				},
			},
		},

		{SUBSECTION = 'When last letters are "iy"'},
		{
			_if = {base__endswith = 'iy'},
			possessive_third = 'si',
		},

		{SUBSECTION = 'When last letter is "k" or "q"'},
		{
			_if = {possessive_type = 'std'},
			_then = {
				{
					_if = {base__endswith = 'k'},
					base_possessive = {'var_replace', 'base', 'k$', 'g'},
				},
				{
					_if = {base__endswith = 'q'},
					base_possessive = {'var_replace', 'base', 'q$', 'gʻ'},
				},
			},
		},
		{
			_if = {
				base__endswith = {'k', 'q'},
				possessive_type = 'kq',
			},
			base_possessive = '<base>',
		},
		{
			_if = {
				base__endswith = {'k', 'q'},
				possessive_type__not = {'std', 'kq'},
			},
			possessive_type_expected = '1',
		},

		{SUBSECTION = 'When penultimate letter is vowel and last letter is consonant (except "y")'},
		{
			_if = {
				base__not_endswith = {'[aeiuo]', "o[ʻ`']", 'y', 'k', 'q'},
				base__penultimate = {'[aeiuo]', "o[ʻ`']"},
			},
			_then = {
				{
					_if = {possessive_type = 'reduced'},
					base_possessive = {'var_replace', 'base', '.(.)$', '%1'},  -- but we don't process case with apostrophe at the end..
				},
				{ -- TODO: add "_else" feature here
					_if = {possessive_type__not = 'reduced'},
					base_possessive = '<base>'
				},
			},
		},

		{SUBSECTION = 'Make decision to show/hide block "Possesive"'},
		{
			_if = {possessive_type_expected = '1'},
			show_possessive = '',
		},
		{ -- TODO: add "_else" feature here
			_if = {possessive_type_expected__not = '1'},
			show_possessive = '1',
			possessive_type_expected = '',  -- just to create empty variable to send to template
		},

		{SECTION = 'If there are no plural forms'},
		{
			long_comment = 'This rule should be the last one. Otherwise — removing of plural form can be overriden by other classes',

			_if = {st = '1'},  -- if we've received argument "st" equals to "1"
			class = 'singularia_tantum',
		},
	},

	classes = {
		common = {
			nom_sg = '<base>',
			gen_sg = '<base><gen>',
			acc_sg = '<base><acc>',
			loc_sg = '<base><loc>',
			abl_sg = '<base><abl>',
			dat_sg = '<base><dat>',
			nom_pl = '<base><pl>',
			gen_pl = '<base><pl><gen>',
			acc_pl = '<base><pl><acc>',
			loc_pl = '<base><pl><loc>',
			abl_pl = '<base><pl><abl>',
			dat_pl = '<base><pl><dat>',
			show_possessive = '<show_possessive>',
			possessive_type_expected = '<possessive_type_expected>',
		},
		dat_k = {
			dat_sg = '<base><dat_k>'  -- if -k then -kka
		},
		dat_q = {
			dat_sg = '<base><dat_q>'  -- if -q then -qqa
		},
		possessive_nom = {
			nom_sg_possessive_1sg = '<base_possessive><interfix><possessive_first_sg>',
			nom_sg_possessive_2sg = '<base_possessive><interfix><possessive_second_sg>',
			nom_sg_possessive_3sg = '<base_possessive><possessive_third>',
			nom_sg_possessive_1pl = '<base_possessive><interfix><possessive_first_pl>',
			nom_sg_possessive_2pl = '<base_possessive><interfix><possessive_second_pl>',
			nom_sg_possessive_3pl = '<base_possessive><possessive_third>',
			nom_pl_possessive_1sg = '<base><pl>i<possessive_first_sg>',
			nom_pl_possessive_2sg = '<base><pl>i<possessive_second_sg>',
			nom_pl_possessive_3sg = '<base><pl>i',
			nom_pl_possessive_1pl = '<base><pl>i<possessive_first_pl>',
			nom_pl_possessive_2pl = '<base><pl>i<possessive_second_pl>',
			nom_pl_possessive_3pl = '<base><pl>i',
		},
		possessive_other = {
			gen_sg_possessive_1sg = '<nom_sg_possessive_1sg><gen>',
			gen_sg_possessive_2sg = '<nom_sg_possessive_2sg><gen>',
			gen_sg_possessive_3sg = '<nom_sg_possessive_3sg><gen>',
			gen_sg_possessive_1pl = '<nom_sg_possessive_1pl><gen>',
			gen_sg_possessive_2pl = '<nom_sg_possessive_2pl><gen>',
			gen_sg_possessive_3pl = '<nom_sg_possessive_3pl><gen>',
			acc_sg_possessive_1sg = '<nom_sg_possessive_1sg><acc>',
			acc_sg_possessive_2sg = '<nom_sg_possessive_2sg><acc>',
			acc_sg_possessive_3sg = '<nom_sg_possessive_3sg><acc>',
			acc_sg_possessive_1pl = '<nom_sg_possessive_1pl><acc>',
			acc_sg_possessive_2pl = '<nom_sg_possessive_2pl><acc>',
			acc_sg_possessive_3pl = '<nom_sg_possessive_3pl><acc>',
			loc_sg_possessive_1sg = '<nom_sg_possessive_1sg><loc>',
			loc_sg_possessive_2sg = '<nom_sg_possessive_2sg><loc>',
			loc_sg_possessive_3sg = '<nom_sg_possessive_3sg><loc>',
			loc_sg_possessive_1pl = '<nom_sg_possessive_1pl><loc>',
			loc_sg_possessive_2pl = '<nom_sg_possessive_2pl><loc>',
			loc_sg_possessive_3pl = '<nom_sg_possessive_3pl><loc>',
			abl_sg_possessive_1sg = '<nom_sg_possessive_1sg><abl>',
			abl_sg_possessive_2sg = '<nom_sg_possessive_2sg><abl>',
			abl_sg_possessive_3sg = '<nom_sg_possessive_3sg><abl>',
			abl_sg_possessive_1pl = '<nom_sg_possessive_1pl><abl>',
			abl_sg_possessive_2pl = '<nom_sg_possessive_2pl><abl>',
			abl_sg_possessive_3pl = '<nom_sg_possessive_3pl><abl>',
			dat_sg_possessive_1sg = '<nom_sg_possessive_1sg><dat>',
			dat_sg_possessive_2sg = '<nom_sg_possessive_2sg><dat>',
			dat_sg_possessive_3sg = '<nom_sg_possessive_3sg><dat>',
			dat_sg_possessive_1pl = '<nom_sg_possessive_1pl><dat>',
			dat_sg_possessive_2pl = '<nom_sg_possessive_2pl><dat>',
			dat_sg_possessive_3pl = '<nom_sg_possessive_3pl><dat>',
			gen_pl_possessive_1sg = '<nom_pl_possessive_1sg><gen>',
			gen_pl_possessive_2sg = '<nom_pl_possessive_2sg><gen>',
			gen_pl_possessive_3sg = '<nom_pl_possessive_3sg><gen>',
			gen_pl_possessive_1pl = '<nom_pl_possessive_1pl><gen>',
			gen_pl_possessive_2pl = '<nom_pl_possessive_2pl><gen>',
			gen_pl_possessive_3pl = '<nom_pl_possessive_3pl><gen>',
			acc_pl_possessive_1sg = '<nom_pl_possessive_1sg><acc>',
			acc_pl_possessive_2sg = '<nom_pl_possessive_2sg><acc>',
			acc_pl_possessive_3sg = '<nom_pl_possessive_3sg><acc>',
			acc_pl_possessive_1pl = '<nom_pl_possessive_1pl><acc>',
			acc_pl_possessive_2pl = '<nom_pl_possessive_2pl><acc>',
			acc_pl_possessive_3pl = '<nom_pl_possessive_3pl><acc>',
			loc_pl_possessive_1sg = '<nom_pl_possessive_1sg><loc>',
			loc_pl_possessive_2sg = '<nom_pl_possessive_2sg><loc>',
			loc_pl_possessive_3sg = '<nom_pl_possessive_3sg><loc>',
			loc_pl_possessive_1pl = '<nom_pl_possessive_1pl><loc>',
			loc_pl_possessive_2pl = '<nom_pl_possessive_2pl><loc>',
			loc_pl_possessive_3pl = '<nom_pl_possessive_3pl><loc>',
			abl_pl_possessive_1sg = '<nom_pl_possessive_1sg><abl>',
			abl_pl_possessive_2sg = '<nom_pl_possessive_2sg><abl>',
			abl_pl_possessive_3sg = '<nom_pl_possessive_3sg><abl>',
			abl_pl_possessive_1pl = '<nom_pl_possessive_1pl><abl>',
			abl_pl_possessive_2pl = '<nom_pl_possessive_2pl><abl>',
			abl_pl_possessive_3pl = '<nom_pl_possessive_3pl><abl>',
			dat_pl_possessive_1sg = '<nom_pl_possessive_1sg><dat>',
			dat_pl_possessive_2sg = '<nom_pl_possessive_2sg><dat>',
			dat_pl_possessive_3sg = '<nom_pl_possessive_3sg><dat>',
			dat_pl_possessive_1pl = '<nom_pl_possessive_1pl><dat>',
			dat_pl_possessive_2pl = '<nom_pl_possessive_2pl><dat>',
			dat_pl_possessive_3pl = '<nom_pl_possessive_3pl><dat>',
		},
		singularia_tantum = {
			nom_pl = '—',
			gen_pl = '—',
			acc_pl = '—',
			loc_pl = '—',
			abl_pl = '—',
			dat_pl = '—',
			nom_pl_possessive_1sg = '—',
			nom_pl_possessive_2sg = '—',
			nom_pl_possessive_3sg = '—',
			nom_pl_possessive_1pl = '—',
			nom_pl_possessive_2pl = '—',
			nom_pl_possessive_3pl = '—',
			gen_pl_possessive_1sg = '—',
			gen_pl_possessive_2sg = '—',
			gen_pl_possessive_3sg = '—',
			gen_pl_possessive_1pl = '—',
			gen_pl_possessive_2pl = '—',
			gen_pl_possessive_3pl = '—',
			acc_pl_possessive_1sg = '—',
			acc_pl_possessive_2sg = '—',
			acc_pl_possessive_3sg = '—',
			acc_pl_possessive_1pl = '—',
			acc_pl_possessive_2pl = '—',
			acc_pl_possessive_3pl = '—',
			loc_pl_possessive_1sg = '—',
			loc_pl_possessive_2sg = '—',
			loc_pl_possessive_3sg = '—',
			loc_pl_possessive_1pl = '—',
			loc_pl_possessive_2pl = '—',
			loc_pl_possessive_3pl = '—',
			abl_pl_possessive_1sg = '—',
			abl_pl_possessive_2sg = '—',
			abl_pl_possessive_3sg = '—',
			abl_pl_possessive_1pl = '—',
			abl_pl_possessive_2pl = '—',
			abl_pl_possessive_3pl = '—',
			dat_pl_possessive_1sg = '—',
			dat_pl_possessive_2sg = '—',
			dat_pl_possessive_3sg = '—',
			dat_pl_possessive_1pl = '—',
			dat_pl_possessive_2pl = '—',
			dat_pl_possessive_3pl = '—',
		},
	},
}