Module:Lexeme-pl

From Wikidata
Jump to navigation Jump to search

Nouns[edit]

There is general p.noun function to build lexeme with declension:

p.noun(nominative,genitive,dative,accusative,instrumental,locative,vocative,
       nominative_plural,genitive_plural,dative_plural,accusative_plural,instrumental_plural,locative_plural,vocative_plural)

On top of it there are specialized functions for regular declensions:

  • p.noun_citizen_man(man) and p.noun_citizen_woman(woman) for nouns about citizens of villages in no label (Q55798440) (443 pages of such nouns)

Adjectives[edit]

There is general p.adjective(word,comparative,equivalent,participle). Its parameters are compatible with template on Polish Wiktionary so it should be easy to import from pl.wiktionary. Parameters are:

  • word - adjective
  • comparative - optional,
    • for empty or "brak" then there are no "comparative" and "superlative" forms
    • for "bardziej" then there are regular "comparative" and "superlative" forms
    • for other value then it is basic form of "comparative" form
  • equivalent - optional,
  • participle - optional, "tak" or "nie" ("yes/no")

local lb = require('Module:LexemeBuilder')
local p = {}
local text = lb.MultilingualText
local Qs = {
	["M"] ="Q131105", -- mianownik, nominative
	["D"] ="Q146233", -- dopełniacz, genitive
	["C"] ="Q145599", -- celownik, dative
	["B"] ="Q146078", -- biernik, accusative
	["N"] ="Q192997", -- narzędnik, instrumental
	["Ms"]="Q202142", -- miejscownik, locative
	["W"] ="Q185077", -- wołacz, vocative
	
	["lp"]="Q110786", -- liczba pojedyncza, singular
	["lm"]="Q146786", -- liczba mnoga, plural
	
	["równy"]="Q3482678",     -- stopień równy, positive
	["wyższy"]="Q14169499",   -- stopień wyższy, comparative
	["najwyższy"]="Q1817208", -- stopień najwyższy, superlative
	
	["m"]="Q499327",      -- rodzaj męski, masculine
    ["f"]="Q1775415",     -- rodzaj żeński, feminine
    ["n"]="Q1775461",     -- rodzaj nijaki, neuter
    ["mos"]="Q27918551",  -- rodzaj męskoosobowy, masculine personal
    ["mzw"]="Q52943193",  -- rodzaj męskozwierzęcy, masculine animate non-personal
    ["mrz"]="Q52943434",  -- rodzaj męskorzeczowy, masculine inanimate
    ["nmos"]="Q54857182", -- rodzaj niemęskoosobowy
}

function p.noun(nominative,
				genitive,
				dative,
				accusative,
				instrumental,
				locative,
				vocative,
				nominative_plural,
				genitive_plural,
				dative_plural,
				accusative_plural,
				instrumental_plural,
				locative_plural,
				vocative_plural)
	if type(nominative)=='table' then
		word=nominative
		if word.parent and word.parent.args and word.parent.args[1] then
			word=word.parent
		end
		nominative,genitive,dative,accusative,instrumental,locative,vocative,
		nominative_plural,genitive_plural,dative_plural,accusative_plural,instrumental_plural,locative_plural,vocative_plural=
			word.args[1],word.args[2],word.args[3],word.args[4],word.args[5],word.args[6],word.args[7],
			word.args[8],word.args[9],word.args[10],word.args[11],word.args[12],word.args[13],word.args[14]
	end
	
	local entity=lb.newLexeme("Q809", "Q1084", text({pl=nominative}))

	entity=lb.addForm(entity,lb.newForm(text({pl=nominative}),  {Qs["lp"],Qs["M"]}))
	entity=lb.addForm(entity,lb.newForm(text({pl=genitive}),    {Qs["lp"],Qs["D"]}))
	entity=lb.addForm(entity,lb.newForm(text({pl=dative}),      {Qs["lp"],Qs["C"]}))
	entity=lb.addForm(entity,lb.newForm(text({pl=accusative}),  {Qs["lp"],Qs["B"]}))
	entity=lb.addForm(entity,lb.newForm(text({pl=instrumental}),{Qs["lp"],Qs["N"]}))
	entity=lb.addForm(entity,lb.newForm(text({pl=locative}),    {Qs["lp"],Qs["Ms"]}))
	entity=lb.addForm(entity,lb.newForm(text({pl=vocative}),    {Qs["lp"],Qs["W"]}))
		
	entity=lb.addForm(entity,lb.newForm(text({pl=nominative_plural}),  {Qs["lm"],Qs["M"]}))
	entity=lb.addForm(entity,lb.newForm(text({pl=genitive_plural}),    {Qs["lm"],Qs["D"]}))
	entity=lb.addForm(entity,lb.newForm(text({pl=dative_plural}),      {Qs["lm"],Qs["C"]}))
	entity=lb.addForm(entity,lb.newForm(text({pl=accusative_plural}),  {Qs["lm"],Qs["B"]}))
	entity=lb.addForm(entity,lb.newForm(text({pl=instrumental_plural}),{Qs["lm"],Qs["N"]}))
	entity=lb.addForm(entity,lb.newForm(text({pl=locative_plural}),    {Qs["lm"],Qs["Ms"]}))
	entity=lb.addForm(entity,lb.newForm(text({pl=vocative_plural}),    {Qs["lm"],Qs["W"]}))
	
	return lb.Export(entity)
end

function p.noun_citizen_man(man)
	-- for endings with "anin"
	if type(man)=='table' then
		if man.parent and man.parent.args and man.parent.args[1] then
			man=man.parent
		end
		man = man.args[1]
	end
	stem = man:sub(1,man:len()-2)
	return p.noun(stem.."in",stem.."ina",stem.."inowi",stem.."ina",stem.."inem",stem.."inie",stem.."inie",
				stem.."ie",stem,stem.."om",stem,stem.."ami",stem.."ach",stem.."ie")
end	
	
function p.noun_citizen_woman(woman)
	-- for endings with "anka"
	if type(woman)=='table' then
		if woman.parent and woman.parent.args and woman.parent.args[1] then
			woman=woman.parent
		end
		woman = woman.args[1]
	end
	stem = woman:sub(1,woman:len()-2)
	return p.noun(stem.."ka",stem.."ki",stem.."ce",stem.."kę",stem.."ką",stem.."ce",stem.."ko",
				stem.."ki",stem.."ek",stem.."kom",stem.."ki",stem.."kami",stem.."kach",stem.."ki")
end	

function core_of_higher_degree(comparative)
	-- functional copy of https://pl.wiktionary.org/wiki/Szablon:rdze%C5%84_stopnia_wy%C5%BCszego
	local core = ""
	if comparative:sub(1,5) == "bardz" then
		core = "bardziej"
	elseif comparative ~= "" then
		core = comparative:sub(1,comparative:len()-1)
	end
	return core
end

function core_of_higher_degree2(comparative)
	-- functional copy of https://pl.wiktionary.org/wiki/Szablon:rdze%C5%84_stopnia_wy%C5%BCszego2
	local core = ""
	if comparative:sub(1,5) == "bardz" then
		core = comparative:sub(1,comparative:len()-1) .. "i"
	elseif comparative ~= "" then
		core = comparative:sub(1,comparative:len()-2) .. "i"
	end
	return core
end

function core_of_higher_degree3(comparative,base)
	-- functional copy of https://pl.wiktionary.org/wiki/Szablon:rdze%C5%84_stopnia_wy%C5%BCszego3
	local core = ""
	if comparative:sub(1,5) == "bardz" then
		core = "bardziej " .. base
	elseif comparative ~= "" then
		core = comparative:sub(1,comparative:len()-2) .. "i"
	end
	return core
end

function core_of_higher_degree4(comparative,base)
	-- functional copy of https://pl.wiktionary.org/wiki/Szablon:rdze%C5%84_stopnia_wy%C5%BCszego4
	local core = ""
	if comparative:sub(1,5) == "bardz" then
		core = "bardziej " .. base
	else
		core = comparative
	end
	core = core:sub(1,core:len()-1)
	return core
end

function addAdjectiveForm(entity,form,gfs)
    local gfsQs = {}
    for gf in (gfs..","):gmatch("(.-)"..",") do
        table.insert(gfsQs, Qs[gf]);
    end
    return lb.addForm(entity,lb.newForm(text({pl=form}),gfsQs))
end

function adjective2(entity,cases)
	-- functional copy of https://pl.wiktionary.org/wiki/Szablon:odmiana-przymiotnik-polski2

    entity=addAdjectiveForm(entity,cases["mianownik lp m"],"równy,M,lp,m")
    entity=addAdjectiveForm(entity,cases["mianownik lp n"],"równy,M,lp,n")
    entity=addAdjectiveForm(entity,cases["mianownik lp f"],"równy,M,lp,f")
    entity=addAdjectiveForm(entity,cases["mianownik mos"],"równy,M,lm,mos")
    entity=addAdjectiveForm(entity,cases["mianownik nmos"],"równy,M,lm,nmos")
    entity=addAdjectiveForm(entity,cases["dopełniacz lp mn"],"równy,D,lp,m,n")
    entity=addAdjectiveForm(entity,cases["dopełniacz lp f"],"równy,D,lp,f")
    entity=addAdjectiveForm(entity,cases["dopełniacz lm"],"równy,D,lm,mos,nmos")
    entity=addAdjectiveForm(entity,cases["celownik lp mn"],"równy,C,lp,m,n")
    entity=addAdjectiveForm(entity,cases["celownik lp f"],"równy,C,lp,f")
    entity=addAdjectiveForm(entity,cases["celownik lm"],"równy,C,lm,mos,nmos")
    entity=addAdjectiveForm(entity,cases["biernik lp mos"],"równy,B,lp,mos,mzw")
    entity=addAdjectiveForm(entity,cases["biernik lp mrz"],"równy,B,lp,mrz")
    entity=addAdjectiveForm(entity,cases["biernik lp n"],"równy,B,lp,n")
    entity=addAdjectiveForm(entity,cases["biernik lp f"],"równy,B,lp,f")
    entity=addAdjectiveForm(entity,cases["biernik mos"],"równy,B,lm,mos")
    entity=addAdjectiveForm(entity,cases["biernik nmos"],"równy,B,lm,nmos")
    entity=addAdjectiveForm(entity,cases["narzędnik lp mn"],"równy,N,lp,m,n")
    entity=addAdjectiveForm(entity,cases["narzędnik lp f"],"równy,N,lp,f")
    entity=addAdjectiveForm(entity,cases["narzędnik lm"],"równy,N,lm,mos,nmos")
    entity=addAdjectiveForm(entity,cases["miejscownik lp mn"],"równy,Ms,lp,m,n")
    entity=addAdjectiveForm(entity,cases["miejscownik lp f"],"równy,Ms,lp,f")
    entity=addAdjectiveForm(entity,cases["miejscownik lm"],"równy,Ms,lm,mos,nmos")
    entity=addAdjectiveForm(entity,cases["wołacz lp m"],"równy,W,lp,m")
    entity=addAdjectiveForm(entity,cases["wołacz lp n"],"równy,W,lp,n")
    entity=addAdjectiveForm(entity,cases["wołacz lp f"],"równy,W,lp,f")
    entity=addAdjectiveForm(entity,cases["wołacz mos"],"równy,W,lm,mos")
    entity=addAdjectiveForm(entity,cases["wołacz nmos"],"równy,W,lm,nmos")
    
    if ( cases["niestopniowalny"] ~= "tak" ) and ( cases["wyższy"] ~= "" ) then

        entity=addAdjectiveForm(entity,cases["wyższy mianownik lp m"],"wyższy,M,lp,m")
        entity=addAdjectiveForm(entity,cases["wyższy mianownik lp n"],"wyższy,M,lp,n")
        entity=addAdjectiveForm(entity,cases["wyższy mianownik lp f"],"wyższy,M,lp,f")
        entity=addAdjectiveForm(entity,cases["wyższy mianownik mos"],"wyższy,M,lm,mos")
        entity=addAdjectiveForm(entity,cases["wyższy mianownik nmos"],"wyższy,M,lm,nmos")
        entity=addAdjectiveForm(entity,cases["wyższy dopełniacz lp mn"],"wyższy,D,lp,m,n")
        entity=addAdjectiveForm(entity,cases["wyższy dopełniacz lp f"],"wyższy,D,lp,f")
        entity=addAdjectiveForm(entity,cases["wyższy dopełniacz lm"],"wyższy,D,lm,mos,nmos")
        entity=addAdjectiveForm(entity,cases["wyższy celownik lp mn"],"wyższy,C,lp,m,n")
        entity=addAdjectiveForm(entity,cases["wyższy celownik lp f"],"wyższy,C,lp,f")
        entity=addAdjectiveForm(entity,cases["wyższy celownik lm"],"wyższy,C,lm,mos,nmos")
        entity=addAdjectiveForm(entity,cases["wyższy biernik lp mos"],"wyższy,B,lp,mos,mzw")
        entity=addAdjectiveForm(entity,cases["wyższy biernik lp mrz"],"wyższy,B,lp,mrz")
        entity=addAdjectiveForm(entity,cases["wyższy biernik lp n"],"wyższy,B,lp,n")
        entity=addAdjectiveForm(entity,cases["wyższy biernik lp f"],"wyższy,B,lp,f")
        entity=addAdjectiveForm(entity,cases["wyższy biernik mos"],"wyższy,B,lm,mos")
        entity=addAdjectiveForm(entity,cases["wyższy biernik nmos"],"wyższy,B,lm,nmos")
        entity=addAdjectiveForm(entity,cases["wyższy narzędnik lp mn"],"wyższy,N,lp,m,n")
        entity=addAdjectiveForm(entity,cases["wyższy narzędnik lp f"],"wyższy,N,lp,f")
        entity=addAdjectiveForm(entity,cases["wyższy narzędnik lm"],"wyższy,N,lm,mos,nmos")
        entity=addAdjectiveForm(entity,cases["wyższy miejscownik lp mn"],"wyższy,Ms,lp,m,n")
        entity=addAdjectiveForm(entity,cases["wyższy miejscownik lp f"],"wyższy,Ms,lp,f")
        entity=addAdjectiveForm(entity,cases["wyższy miejscownik lm"],"wyższy,Ms,lm,mos,nmos")
        entity=addAdjectiveForm(entity,cases["wyższy wołacz lp m"],"wyższy,W,lp,m")
        entity=addAdjectiveForm(entity,cases["wyższy wołacz lp n"],"wyższy,W,lp,n")
        entity=addAdjectiveForm(entity,cases["wyższy wołacz lp f"],"wyższy,W,lp,f")
        entity=addAdjectiveForm(entity,cases["wyższy wołacz mos"],"wyższy,W,lm,mos")
        entity=addAdjectiveForm(entity,cases["wyższy wołacz nmos"],"wyższy,W,lm,nmos")
    
        entity=addAdjectiveForm(entity,cases["najwyższy mianownik lp m"],"najwyższy,M,lp,m")
        entity=addAdjectiveForm(entity,cases["najwyższy mianownik lp n"],"najwyższy,M,lp,n")
        entity=addAdjectiveForm(entity,cases["najwyższy mianownik lp f"],"najwyższy,M,lp,f")
        entity=addAdjectiveForm(entity,cases["najwyższy mianownik mos"],"najwyższy,M,lm,mos")
        entity=addAdjectiveForm(entity,cases["najwyższy mianownik nmos"],"najwyższy,M,lm,nmos")
        entity=addAdjectiveForm(entity,cases["najwyższy dopełniacz lp mn"],"najwyższy,D,lp,m,n")
        entity=addAdjectiveForm(entity,cases["najwyższy dopełniacz lp f"],"najwyższy,D,lp,f")
        entity=addAdjectiveForm(entity,cases["najwyższy dopełniacz lm"],"najwyższy,D,lm,mos,nmos")
        entity=addAdjectiveForm(entity,cases["najwyższy celownik lp mn"],"najwyższy,C,lp,m,n")
        entity=addAdjectiveForm(entity,cases["najwyższy celownik lp f"],"najwyższy,C,lp,f")
        entity=addAdjectiveForm(entity,cases["najwyższy celownik lm"],"najwyższy,C,lm,mos,nmos")
        entity=addAdjectiveForm(entity,cases["najwyższy biernik lp mos"],"najwyższy,B,lp,mos,mzw")
        entity=addAdjectiveForm(entity,cases["najwyższy biernik lp mrz"],"najwyższy,B,lp,mrz")
        entity=addAdjectiveForm(entity,cases["najwyższy biernik lp n"],"najwyższy,B,lp,n")
        entity=addAdjectiveForm(entity,cases["najwyższy biernik lp f"],"najwyższy,B,lp,f")
        entity=addAdjectiveForm(entity,cases["najwyższy biernik mos"],"najwyższy,B,lm,mos")
        entity=addAdjectiveForm(entity,cases["najwyższy biernik nmos"],"najwyższy,B,lm,nmos")
        entity=addAdjectiveForm(entity,cases["najwyższy narzędnik lp mn"],"najwyższy,N,lp,m,n")
        entity=addAdjectiveForm(entity,cases["najwyższy narzędnik lp f"],"najwyższy,N,lp,f")
        entity=addAdjectiveForm(entity,cases["najwyższy narzędnik lm"],"najwyższy,N,lm,mos,nmos")
        entity=addAdjectiveForm(entity,cases["najwyższy miejscownik lp mn"],"najwyższy,Ms,lp,m,n")
        entity=addAdjectiveForm(entity,cases["najwyższy miejscownik lp f"],"najwyższy,Ms,lp,f")
        entity=addAdjectiveForm(entity,cases["najwyższy miejscownik lm"],"najwyższy,Ms,lm,mos,nmos")
        entity=addAdjectiveForm(entity,cases["najwyższy wołacz lp m"],"najwyższy,W,lp,m")
        entity=addAdjectiveForm(entity,cases["najwyższy wołacz lp n"],"najwyższy,W,lp,n")
        entity=addAdjectiveForm(entity,cases["najwyższy wołacz lp f"],"najwyższy,W,lp,f")
        entity=addAdjectiveForm(entity,cases["najwyższy wołacz mos"],"najwyższy,W,lm,mos")
        entity=addAdjectiveForm(entity,cases["najwyższy wołacz nmos"],"najwyższy,W,lm,nmos")
    
	end
	
	return entity
end

function adjective_li(entity,word_minus,core1,core2)
	-- functional copy of https://pl.wiktionary.org/wiki/Szablon:odmiana-przymiotnik-polski-li
	local bardziej_word_minus = "bardziej " .. word_minus
	local najbardziej_word_minus = "najbardziej " .. word_minus
	return adjective2(entity,{
        ["mianownik lp m"] = word_minus .. "li",
        ["mianownik lp n"] = word_minus .. "le",
        ["mianownik lp f"] = word_minus .. "la",
        ["mianownik mos"] = word_minus .. "li",
        ["mianownik nmos"] = word_minus .. "le",
        ["dopełniacz lp mn"] = word_minus .. "lego",
        ["dopełniacz lp f"] = word_minus .. "lej",
        ["dopełniacz lm"] = word_minus .. "lich",
        ["celownik lp mn"] = word_minus .. "lemu",
        ["celownik lp f"] = word_minus .. "lej",
        ["celownik lm"] = word_minus .. "lim",
        ["biernik lp mos"] = word_minus .. "lego",
        ["biernik lp mrz"] = word_minus .. "li",
        ["biernik lp n"] = word_minus .. "le",
        ["biernik lp f"] = word_minus .. "lą",
        ["biernik mos"] = word_minus .. "lich",
        ["biernik nmos"] = word_minus .. "le",
        ["narzędnik lp mn"] = word_minus .. "lim",
        ["narzędnik lp f"] = word_minus .. "lą",
        ["narzędnik lm"] = word_minus .. "limi",
        ["miejscownik lp mn"] = word_minus .. "lim",
        ["miejscownik lp f"] = word_minus .. "lej",
        ["miejscownik lm"] = word_minus .. "lich",
        ["wołacz lp m"] = word_minus .. "li",
        ["wołacz lp n"] = word_minus .. "le",
        ["wołacz lp f"] = word_minus .. "la",
        ["wołacz mos"] = word_minus .. "li",
        ["wołacz nmos"] = word_minus .. "le",
        ["wyższy"] = ( core1 ~= "" ) and ( bardziej_word_minus .. "li" ) or "",
        ["wyższy mianownik lp m"] = bardziej_word_minus .. "li",
        ["wyższy mianownik lp n"] = bardziej_word_minus .. "le",
        ["wyższy mianownik lp f"] = bardziej_word_minus .. "la",
        ["wyższy mianownik mos"] = bardziej_word_minus .. "li",
        ["wyższy mianownik nmos"] = bardziej_word_minus .. "le",
        ["wyższy dopełniacz lp mn"] = bardziej_word_minus .. "lego",
        ["wyższy dopełniacz lp f"] = bardziej_word_minus .. "lej",
        ["wyższy dopełniacz lm"] = bardziej_word_minus .. "lich",
        ["wyższy celownik lp mn"] = bardziej_word_minus .. "lemu",
        ["wyższy celownik lp f"] = bardziej_word_minus .. "lej",
        ["wyższy celownik lm"] = bardziej_word_minus .. "lim",
        ["wyższy biernik lp mos"] = bardziej_word_minus .. "lego",
        ["wyższy biernik lp mrz"] = bardziej_word_minus .. "li",
        ["wyższy biernik lp n"] = bardziej_word_minus .. "le",
        ["wyższy biernik lp f"] = bardziej_word_minus .. "lą",
        ["wyższy biernik mos"] = bardziej_word_minus .. "lich",
        ["wyższy biernik nmos"] = bardziej_word_minus .. "le",
        ["wyższy narzędnik lp mn"] = bardziej_word_minus .. "lim",
        ["wyższy narzędnik lp f"] = bardziej_word_minus .. "lą",
        ["wyższy narzędnik lm"] = bardziej_word_minus .. "limi",
        ["wyższy miejscownik lp mn"] = bardziej_word_minus .. "lim",
        ["wyższy miejscownik lp f"] = bardziej_word_minus .. "lej",
        ["wyższy miejscownik lm"] = bardziej_word_minus .. "lich",
        ["wyższy wołacz lp m"] = bardziej_word_minus .. "li",
        ["wyższy wołacz lp n"] = bardziej_word_minus .. "le",
        ["wyższy wołacz lp f"] = bardziej_word_minus .. "la",
        ["wyższy wołacz mos"] = bardziej_word_minus .. "li",
        ["wyższy wołacz nmos"] = bardziej_word_minus .. "le",
        ["najwyższy"] = ( core1 ~= "" ) and ( najbardziej_word_minus .. "li" ) or "",
        ["najwyższy mianownik lp m"] = najbardziej_word_minus .. "li",
        ["najwyższy mianownik lp n"] = najbardziej_word_minus .. "le",
        ["najwyższy mianownik lp f"] = najbardziej_word_minus .. "la",
        ["najwyższy mianownik mos"] = najbardziej_word_minus .. "li",
        ["najwyższy mianownik nmos"] = najbardziej_word_minus .. "le",
        ["najwyższy dopełniacz lp mn"] = najbardziej_word_minus .. "lego",
        ["najwyższy dopełniacz lp f"] = najbardziej_word_minus .. "lej",
        ["najwyższy dopełniacz lm"] = najbardziej_word_minus .. "lich",
        ["najwyższy celownik lp mn"] = najbardziej_word_minus .. "lemu",
        ["najwyższy celownik lp f"] = najbardziej_word_minus .. "lej",
        ["najwyższy celownik lm"] = najbardziej_word_minus .. "lim",
        ["najwyższy biernik lp mos"] = najbardziej_word_minus .. "lego",
        ["najwyższy biernik lp mrz"] = najbardziej_word_minus .. "li",
        ["najwyższy biernik lp n"] = najbardziej_word_minus .. "le",
        ["najwyższy biernik lp f"] = najbardziej_word_minus .. "lą",
        ["najwyższy biernik mos"] = najbardziej_word_minus .. "lich",
        ["najwyższy biernik nmos"] = najbardziej_word_minus .. "le",
        ["najwyższy narzędnik lp mn"] = najbardziej_word_minus .. "lim",
        ["najwyższy narzędnik lp f"] = najbardziej_word_minus .. "lą",
        ["najwyższy narzędnik lm"] = najbardziej_word_minus .. "limi",
        ["najwyższy miejscownik lp mn"] = najbardziej_word_minus .. "lim",
        ["najwyższy miejscownik lp f"] = najbardziej_word_minus .. "lej",
        ["najwyższy miejscownik lm"] = najbardziej_word_minus .. "lich",
        ["najwyższy wołacz lp m"] = najbardziej_word_minus .. "li",
        ["najwyższy wołacz lp n"] = najbardziej_word_minus .. "le",
        ["najwyższy wołacz lp f"] = najbardziej_word_minus .. "la",
        ["najwyższy wołacz mos"] = najbardziej_word_minus .. "li",
        ["najwyższy wołacz nmos"] = najbardziej_word_minus .. "le",
        ["niestopniowalny"] = (core1 == "bra") and "tak" or "nie",
	})
end

function adjective_ki(entity,word_minus,core1,core2,nv)
	-- functional copy of https://pl.wiktionary.org/wiki/Szablon:odmiana-przymiotnik-polski-ki
	local core1bardziej = ( core1 == "bardziej" )
	local bardziej_word_minus = "bardziej " .. word_minus
	return adjective2(entity,{
        ["mianownik lp m"] = ( nv["mianownik wołacz lp m"] ~= nil ) and nv["mianownik wołacz lp m"] or ( word_minus .. "ki" ),
        ["mianownik lp n"] = ( nv["mianownik wołacz lp n"] ~= nil ) and nv["mianownik wołacz lp n"] or ( word_minus .. "kie" ),
        ["mianownik lp f"] = word_minus .. "ka",
        ["mianownik mos"] = ( nv["mianownik wołacz mos"] ~= nil ) and nv["mianownik wołacz mos"] or ( word_minus .. "cy" ),
        ["mianownik nmos"] = word_minus .. "kie",
        ["dopełniacz lp mn"] = word_minus .. "kiego",
        ["dopełniacz lp f"] = word_minus .. "kiej",
        ["dopełniacz lm"] = word_minus .. "kich",
        ["celownik lp mn"] = word_minus .. "kiemu",
        ["celownik lp f"] = word_minus .. "kiej",
        ["celownik lm"] = word_minus .. "kim",
        ["biernik lp mos"] = word_minus .. "kiego",
        ["biernik lp mrz"] = ( nv["mianownik wołacz lp m"] ~= nil ) and nv["mianownik wołacz lp m"] or ( word_minus .. "ki" ),
        ["biernik lp n"] = ( nv["mianownik wołacz lp n"] ~= nil ) and nv["mianownik wołacz lp n"] or ( word_minus .. "kie" ),
        ["biernik lp f"] = word_minus .. "ką",
        ["biernik mos"] = word_minus .. "kich",
        ["biernik nmos"] = word_minus .. "kie",
        ["narzędnik lp mn"] = word_minus .. "kim",
        ["narzędnik lp f"] = word_minus .. "ką",
        ["narzędnik lm"] = word_minus .. "kimi",
        ["miejscownik lp mn"] = word_minus .. "kim",
        ["miejscownik lp f"] = word_minus .. "kiej",
        ["miejscownik lm"] = word_minus .. "kich",
        ["wołacz lp m"] = ( nv["mianownik wołacz lp m"] ~= nil ) and nv["mianownik wołacz lp m"] or ( word_minus .. "ki" ),
        ["wołacz lp n"] = ( nv["mianownik wołacz lp n"] ~= nil ) and nv["mianownik wołacz lp n"] or ( word_minus .. "kie" ),
        ["wołacz lp f"] = word_minus .. "ka",
        ["wołacz mos"] = ( nv["mianownik wołacz mos"] ~= nil ) and nv["mianownik wołacz mos"] or ( word_minus .. "cy" ),
        ["wołacz nmos"] = word_minus .. "kie",
        ["wyższy"] = ( ( core1 ~= "" ) and ( core1bardziej and ( bardziej_word_minus .. "ki" ) or ( core1 .. "y" ) ) or "" ),
        ["wyższy mianownik lp m"] = ( core1bardziej and ( bardziej_word_minus .. "ki" ) or ( core1 .. "y" ) ),
        ["wyższy mianownik lp n"] = ( core1bardziej and ( bardziej_word_minus .. "kie" ) or ( core1 .. "e" ) ),
        ["wyższy mianownik lp f"] = ( core1bardziej and ( bardziej_word_minus .. "ka" ) or ( core1 .. "a" ) ),
        ["wyższy mianownik mos"] = ( core1bardziej and ( bardziej_word_minus .. "cy" ) or core2 ),
        ["wyższy mianownik nmos"] = ( core1bardziej and ( bardziej_word_minus .. "kie" ) or ( core1 .. "e" ) ),
        ["wyższy dopełniacz lp mn"] = ( core1bardziej and ( bardziej_word_minus .. "kiego" ) or ( core1 .. "ego" ) ),
        ["wyższy dopełniacz lp f"] = ( core1bardziej and ( bardziej_word_minus .. "kiej" ) or ( core1 .. "ej" ) ),
        ["wyższy dopełniacz lm"] = ( core1bardziej and ( bardziej_word_minus .. "kich" ) or ( core1 .. "ych" ) ),
        ["wyższy celownik lp mn"] = ( core1bardziej and ( bardziej_word_minus .. "kiemu" ) or ( core1 .. "emu" ) ),
        ["wyższy celownik lp f"] = ( core1bardziej and ( bardziej_word_minus .. "kiej" ) or ( core1 .. "ej" ) ),
        ["wyższy celownik lm"] = ( core1bardziej and ( bardziej_word_minus .. "kim" ) or ( core1 .. "ym" ) ),
        ["wyższy biernik lp mos"] = ( core1bardziej and ( bardziej_word_minus .. "kiego" ) or ( core1 .. "ego" ) ),
        ["wyższy biernik lp mrz"] = ( core1bardziej and ( bardziej_word_minus .. "ki" ) or ( core1 .. "y" ) ),
        ["wyższy biernik lp n"] = ( core1bardziej and ( bardziej_word_minus .. "kie" ) or ( core1 .. "e" ) ),
        ["wyższy biernik lp f"] = ( core1bardziej and ( bardziej_word_minus .. "ką" ) or ( core1 .. "ą" ) ),
        ["wyższy biernik mos"] = ( core1bardziej and ( bardziej_word_minus .. "kich" ) or ( core1 .. "ych" ) ),
        ["wyższy biernik nmos"] = ( core1bardziej and ( bardziej_word_minus .. "kie" ) or ( core1 .. "e" ) ),
        ["wyższy narzędnik lp mn"] = ( core1bardziej and ( bardziej_word_minus .. "kim" ) or ( core1 .. "ym" ) ),
        ["wyższy narzędnik lp f"] = ( core1bardziej and ( bardziej_word_minus .. "ką" ) or ( core1 .. "ą" ) ),
        ["wyższy narzędnik lm"] = ( core1bardziej and ( bardziej_word_minus .. "kimi" ) or ( core1 .. "ymi" ) ),
        ["wyższy miejscownik lp mn"] = ( core1bardziej and ( bardziej_word_minus .. "kim" ) or ( core1 .. "ym" ) ),
        ["wyższy miejscownik lp f"] = ( core1bardziej and ( bardziej_word_minus .. "kiej" ) or ( core1 .. "ej" ) ),
        ["wyższy miejscownik lm"] = ( core1bardziej and ( bardziej_word_minus .. "kich" ) or ( core1 .. "ych" ) ),
        ["wyższy wołacz lp m"] = ( core1bardziej and ( bardziej_word_minus .. "ki" ) or ( core1 .. "y" ) ),
        ["wyższy wołacz lp n"] = ( core1bardziej and ( bardziej_word_minus .. "kie" ) or ( core1 .. "e" ) ),
        ["wyższy wołacz lp f"] = ( core1bardziej and ( bardziej_word_minus .. "ka" ) or ( core1 .. "a" ) ),
        ["wyższy wołacz mos"] = ( core1bardziej and ( bardziej_word_minus .. "cy" ) or core2 ),
        ["wyższy wołacz nmos"] = ( core1bardziej and ( bardziej_word_minus .. "kie" ) or ( core1 .. "e" ) ),
        ["najwyższy"] = ( ( core1 ~= "" ) and ( core1bardziej and ( "najbardziej " .. word_minus .. "ki" ) or ( "naj" .. core1 .. "y" ) ) or "" ),
        ["najwyższy mianownik lp m"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "ki" ) or ( core1 .. "y" ) ),
        ["najwyższy mianownik lp n"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "kie" ) or ( core1 .. "e" ) ),
        ["najwyższy mianownik lp f"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "ka" ) or ( core1 .. "a" ) ),
        ["najwyższy mianownik mos"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "cy" ) or core2 ),
        ["najwyższy mianownik nmos"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "kie" ) or ( core1 .. "e" ) ),
        ["najwyższy dopełniacz lp mn"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "kiego" ) or ( core1 .. "ego" ) ),
        ["najwyższy dopełniacz lp f"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "kiej" ) or ( core1 .. "ej" ) ),
        ["najwyższy dopełniacz lm"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "kich" ) or ( core1 .. "ych" ) ),
        ["najwyższy celownik lp mn"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "kiemu" ) or ( core1 .. "emu" ) ),
        ["najwyższy celownik lp f"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "kiej" ) or ( core1 .. "ej" ) ),
        ["najwyższy celownik lm"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "kim" ) or ( core1 .. "ym" ) ),
        ["najwyższy biernik lp mos"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "kiego" ) or ( core1 .. "ego" ) ),
        ["najwyższy biernik lp mrz"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "ki" ) or ( core1 .. "y" ) ),
        ["najwyższy biernik lp n"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "kie" ) or ( core1 .. "e" ) ),
        ["najwyższy biernik lp f"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "ką" ) or ( core1 .. "ą" ) ),
        ["najwyższy biernik mos"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "kich" ) or ( core1 .. "ych" ) ),
        ["najwyższy biernik nmos"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "kie" ) or ( core1 .. "e" ) ),
        ["najwyższy narzędnik lp mn"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "kim" ) or ( core1 .. "ym" ) ),
        ["najwyższy narzędnik lp f"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "ką" ) or ( core1 .. "ą" ) ),
        ["najwyższy narzędnik lm"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "kimi" ) or ( core1 .. "ymi" ) ),
        ["najwyższy miejscownik lp mn"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "kim" ) or ( core1 .. "ym" ) ),
        ["najwyższy miejscownik lp f"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "kiej" ) or ( core1 .. "ej" ) ),
        ["najwyższy miejscownik lm"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "kich" ) or ( core1 .. "ych" ) ),
        ["najwyższy wołacz lp m"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "ki" ) or ( core1 .. "y" ) ),
        ["najwyższy wołacz lp n"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "kie" ) or ( core1 .. "e" ) ),
        ["najwyższy wołacz lp f"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "ka" ) or ( core1 .. "a" ) ),
        ["najwyższy wołacz mos"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "cy" ) or core2 ),
        ["najwyższy wołacz nmos"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "kie" ) or ( core1 .. "e" ) ),
        ["niestopniowalny"] = (core1 == "bra") and "tak" or "nie",
	})
end

function adjective_gi(entity,word_minus,core1,core2)
	-- functional copy of https://pl.wiktionary.org/wiki/Szablon:odmiana-przymiotnik-polski-gi
	local core1bardziej = ( core1 == "bardziej" )
	local bardziej_word_minus = "bardziej " .. word_minus
	return adjective2(entity,{
        ["mianownik lp m"] = word_minus .. "gi",
        ["mianownik lp n"] = word_minus .. "gie",
        ["mianownik lp f"] = word_minus .. "ga",
        ["mianownik mos"] = word_minus .. "dzy",
        ["mianownik nmos"] = word_minus .. "gie",
        ["dopełniacz lp mn"] = word_minus .. "giego",
        ["dopełniacz lp f"] = word_minus .. "giej",
        ["dopełniacz lm"] = word_minus .. "gich",
        ["celownik lp mn"] = word_minus .. "giemu",
        ["celownik lp f"] = word_minus .. "giej",
        ["celownik lm"] = word_minus .. "gim",
        ["biernik lp mos"] = word_minus .. "giego",
        ["biernik lp mrz"] = word_minus .. "gi",
        ["biernik lp n"] = word_minus .. "gie",
        ["biernik lp f"] = word_minus .. "gą",
        ["biernik mos"] = word_minus .. "gich",
        ["biernik nmos"] = word_minus .. "gie",
        ["narzędnik lp mn"] = word_minus .. "gim",
        ["narzędnik lp f"] = word_minus .. "gą",
        ["narzędnik lm"] = word_minus .. "gimi",
        ["miejscownik lp mn"] = word_minus .. "gim",
        ["miejscownik lp f"] = word_minus .. "giej",
        ["miejscownik lm"] = word_minus .. "gich",
        ["wołacz lp m"] = word_minus .. "gi",
        ["wołacz lp n"] = word_minus .. "gie",
        ["wołacz lp f"] = word_minus .. "ga",
        ["wołacz mos"] = word_minus .. "dzy",
        ["wołacz nmos"] = word_minus .. "gie",
        ["wyższy"] = ( core1 ~= "" ) and ( core1bardziej and ( bardziej_word_minus .. "gi" ) or ( core1 .. "y" ) ) or "",
        ["wyższy mianownik lp m"] = core1bardziej and ( bardziej_word_minus .. "gi" ) or ( core1 .. "y" ),
        ["wyższy mianownik lp n"] = core1bardziej and ( bardziej_word_minus .. "gie" ) or ( core1 .. "e" ),
        ["wyższy mianownik lp f"] = core1bardziej and ( bardziej_word_minus .. "ga" ) or ( core1 .. "a" ),
        ["wyższy mianownik mos"] = core1bardziej and ( bardziej_word_minus .. "dzy" ) or core2,
        ["wyższy mianownik nmos"] = core1bardziej and ( bardziej_word_minus .. "gie" ) or ( core1 .. "e" ),
        ["wyższy dopełniacz lp mn"] = core1bardziej and ( bardziej_word_minus .. "giego" ) or ( core1 .. "ego" ),
        ["wyższy dopełniacz lp f"] = core1bardziej and ( bardziej_word_minus .. "giej" ) or ( core1 .. "ej" ),
        ["wyższy dopełniacz lm"] = core1bardziej and ( bardziej_word_minus .. "gich" ) or ( core1 .. "ych" ),
        ["wyższy celownik lp mn"] = core1bardziej and ( bardziej_word_minus .. "giemu" ) or ( core1 .. "emu" ),
        ["wyższy celownik lp f"] = core1bardziej and ( bardziej_word_minus .. "giej" ) or ( core1 .. "ej" ),
        ["wyższy celownik lm"] = core1bardziej and ( bardziej_word_minus .. "gim" ) or ( core1 .. "ym" ),
        ["wyższy biernik lp mos"] = core1bardziej and ( bardziej_word_minus .. "giego" ) or ( core1 .. "ego" ),
        ["wyższy biernik lp mrz"] = core1bardziej and ( bardziej_word_minus .. "gi" ) or ( core1 .. "y" ),
        ["wyższy biernik lp n"] = core1bardziej and ( bardziej_word_minus .. "gie" ) or ( core1 .. "e" ),
        ["wyższy biernik lp f"] = core1bardziej and ( bardziej_word_minus .. "gą" ) or ( core1 .. "ą" ),
        ["wyższy biernik mos"] = core1bardziej and ( bardziej_word_minus .. "gich" ) or ( core1 .. "ych" ),
        ["wyższy biernik nmos"] = core1bardziej and ( bardziej_word_minus .. "gie" ) or ( core1 .. "e" ),
        ["wyższy narzędnik lp mn"] = core1bardziej and ( bardziej_word_minus .. "gim" ) or ( core1 .. "ym" ),
        ["wyższy narzędnik lp f"] = core1bardziej and ( bardziej_word_minus .. "gą" ) or ( core1 .. "ą" ),
        ["wyższy narzędnik lm"] = core1bardziej and ( bardziej_word_minus .. "gimi" ) or ( core1 .. "ymi" ),
        ["wyższy miejscownik lp mn"] = core1bardziej and ( bardziej_word_minus .. "gim" ) or ( core1 .. "ym" ),
        ["wyższy miejscownik lp f"] = core1bardziej and ( bardziej_word_minus .. "giej" ) or ( core1 .. "ej" ),
        ["wyższy miejscownik lm"] = core1bardziej and ( bardziej_word_minus .. "gich" ) or ( core1 .. "ych" ),
        ["wyższy wołacz lp m"] = core1bardziej and ( bardziej_word_minus .. "gi" ) or ( core1 .. "y" ),
        ["wyższy wołacz lp n"] = core1bardziej and ( bardziej_word_minus .. "gie" ) or ( core1 .. "e" ),
        ["wyższy wołacz lp f"] = core1bardziej and ( bardziej_word_minus .. "ga" ) or ( core1 .. "a" ),
        ["wyższy wołacz mos"] = core1bardziej and ( bardziej_word_minus .. "dzy" ) or core2,
        ["wyższy wołacz nmos"] = core1bardziej and ( bardziej_word_minus .. "gie" ) or ( core1 .. "e" ),
        ["najwyższy"] = ( core1 ~= "" ) and ( "naj" .. ( core1bardziej and ( bardziej_word_minus .. "gi" ) or ( core1 .. "y" ) ) ) or "",
        ["najwyższy mianownik lp m"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "gi" ) or ( core1 .. "y" ) ),
        ["najwyższy mianownik lp n"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "gie" ) or ( core1 .. "e" ) ),
        ["najwyższy mianownik lp f"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "ga" ) or ( core1 .. "a" ) ),
        ["najwyższy mianownik mos"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "dzy" ) or core2 ),
        ["najwyższy mianownik nmos"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "gie" ) or ( core1 .. "e" ) ),
        ["najwyższy dopełniacz lp mn"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "giego" ) or ( core1 .. "ego" ) ),
        ["najwyższy dopełniacz lp f"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "giej" ) or ( core1 .. "ej" ) ),
        ["najwyższy dopełniacz lm"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "gich" ) or ( core1 .. "ych" ) ),
        ["najwyższy celownik lp mn"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "giemu" ) or ( core1 .. "emu" ) ),
        ["najwyższy celownik lp f"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "giej" ) or ( core1 .. "ej" ) ),
        ["najwyższy celownik lm"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "gim" ) or ( core1 .. "ym" ) ),
        ["najwyższy biernik lp mos"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "giego" ) or ( core1 .. "ego" ) ),
        ["najwyższy biernik lp mrz"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "gi" ) or ( core1 .. "y" ) ),
        ["najwyższy biernik lp n"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "gie" ) or ( core1 .. "e" ) ),
        ["najwyższy biernik lp f"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "gą" ) or ( core1 .. "ą" ) ),
        ["najwyższy biernik mos"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "gich" ) or ( core1 .. "ych" ) ),
        ["najwyższy biernik nmos"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "gie" ) or ( core1 .. "e" ) ),
        ["najwyższy narzędnik lp mn"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "gim" ) or ( core1 .. "ym" ) ),
        ["najwyższy narzędnik lp f"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "gą" ) or ( core1 .. "ą" ) ),
        ["najwyższy narzędnik lm"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "gimi" ) or ( core1 .. "ymi" ) ),
        ["najwyższy miejscownik lp mn"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "gim" ) or ( core1 .. "ym" ) ),
        ["najwyższy miejscownik lp f"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "giej" ) or ( core1 .. "ej" ) ),
        ["najwyższy miejscownik lm"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "gich" ) or ( core1 .. "ych" ) ),
        ["najwyższy wołacz lp m"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "gi" ) or ( core1 .. "y" ) ),
        ["najwyższy wołacz lp n"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "gie" ) or ( core1 .. "e" ) ),
        ["najwyższy wołacz lp f"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "ga" ) or ( core1 .. "a" ) ),
        ["najwyższy wołacz mos"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "dzy" ) or core2 ),
        ["najwyższy wołacz nmos"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "gie" ) or ( core1 .. "e" ) ),
        ["niestopniowalny"] = (core1 == "bra") and "tak" or "nie",
	})
end

function adjective_yi(entity,word_minus,core1,core2)
	-- functional copy of https://pl.wiktionary.org/wiki/Szablon:odmiana-przymiotnik-polski-yi
	local bardziej_word_minus = "bardziej " .. word_minus
	local najbardziej_word_minus = "najbardziej " .. word_minus
	return adjective2(entity,{
        ["mianownik lp m"] = word_minus .. "i",
        ["mianownik lp n"] = word_minus .. "je",
        ["mianownik lp f"] = word_minus .. "ja",
        ["mianownik mos"] = word_minus .. "i",
        ["mianownik nmos"] = word_minus .. "je",
        ["dopełniacz lp mn"] = word_minus .. "jego",
        ["dopełniacz lp f"] = word_minus .. "jej",
        ["dopełniacz lm"] = word_minus .. "ich",
        ["celownik lp mn"] = word_minus .. "jemu",
        ["celownik lp f"] = word_minus .. "jej",
        ["celownik lm"] = word_minus .. "im",
        ["biernik lp mos"] = word_minus .. "jego",
        ["biernik lp mrz"] = word_minus .. "i",
        ["biernik lp n"] = word_minus .. "je",
        ["biernik lp f"] = word_minus .. "ją",
        ["biernik mos"] = word_minus .. "ich",
        ["biernik nmos"] = word_minus .. "je",
        ["narzędnik lp mn"] = word_minus .. "im",
        ["narzędnik lp f"] = word_minus .. "ją",
        ["narzędnik lm"] = word_minus .. "imi",
        ["miejscownik lp mn"] = word_minus .. "im",
        ["miejscownik lp f"] = word_minus .. "jej",
        ["miejscownik lm"] = word_minus .. "ich",
        ["wołacz lp m"] = word_minus .. "i",
        ["wołacz lp n"] = word_minus .. "je",
        ["wołacz lp f"] = word_minus .. "ja",
        ["wołacz mos"] = word_minus .. "i",
        ["wołacz nmos"] = word_minus .. "je",
        ["wyższy"] = ( core1 ~= "" ) and ( bardziej_word_minus .. "i" ) or "",
        ["wyższy mianownik lp m"] = bardziej_word_minus .. "i",
        ["wyższy mianownik lp n"] = bardziej_word_minus .. "je",
        ["wyższy mianownik lp f"] = bardziej_word_minus .. "ja",
        ["wyższy mianownik mos"] = bardziej_word_minus .. "i",
        ["wyższy mianownik nmos"] = bardziej_word_minus .. "je",
        ["wyższy dopełniacz lp mn"] = bardziej_word_minus .. "jego",
        ["wyższy dopełniacz lp f"] = bardziej_word_minus .. "jej",
        ["wyższy dopełniacz lm"] = bardziej_word_minus .. "ich",
        ["wyższy celownik lp mn"] = bardziej_word_minus .. "jemu",
        ["wyższy celownik lp f"] = bardziej_word_minus .. "jej",
        ["wyższy celownik lm"] = bardziej_word_minus .. "im",
        ["wyższy biernik lp mos"] = bardziej_word_minus .. "jego",
        ["wyższy biernik lp mrz"] = bardziej_word_minus .. "i",
        ["wyższy biernik lp n"] = bardziej_word_minus .. "je",
        ["wyższy biernik lp f"] = bardziej_word_minus .. "ją",
        ["wyższy biernik mos"] = bardziej_word_minus .. "ich",
        ["wyższy biernik nmos"] = bardziej_word_minus .. "je",
        ["wyższy narzędnik lp mn"] = bardziej_word_minus .. "im",
        ["wyższy narzędnik lp f"] = bardziej_word_minus .. "ją",
        ["wyższy narzędnik lm"] = bardziej_word_minus .. "imi",
        ["wyższy miejscownik lp mn"] = bardziej_word_minus .. "im",
        ["wyższy miejscownik lp f"] = bardziej_word_minus .. "jej",
        ["wyższy miejscownik lm"] = bardziej_word_minus .. "ich",
        ["wyższy wołacz lp m"] = bardziej_word_minus .. "i",
        ["wyższy wołacz lp n"] = bardziej_word_minus .. "je",
        ["wyższy wołacz lp f"] = bardziej_word_minus .. "ja",
        ["wyższy wołacz mos"] = bardziej_word_minus .. "i",
        ["wyższy wołacz nmos"] = bardziej_word_minus .. "je",
        ["najwyższy"] = ( core1 ~= "" ) and ( najbardziej_word_minus .. "i" ) or "",
        ["najwyższy mianownik lp m"] = najbardziej_word_minus .. "i",
        ["najwyższy mianownik lp n"] = najbardziej_word_minus .. "je",
        ["najwyższy mianownik lp f"] = najbardziej_word_minus .. "ja",
        ["najwyższy mianownik mos"] = najbardziej_word_minus .. "i",
        ["najwyższy mianownik nmos"] = najbardziej_word_minus .. "je",
        ["najwyższy dopełniacz lp mn"] = najbardziej_word_minus .. "jego",
        ["najwyższy dopełniacz lp f"] = najbardziej_word_minus .. "jej",
        ["najwyższy dopełniacz lm"] = najbardziej_word_minus .. "ich",
        ["najwyższy celownik lp mn"] = najbardziej_word_minus .. "jemu",
        ["najwyższy celownik lp f"] = najbardziej_word_minus .. "jej",
        ["najwyższy celownik lm"] = najbardziej_word_minus .. "im",
        ["najwyższy biernik lp mos"] = najbardziej_word_minus .. "jego",
        ["najwyższy biernik lp mrz"] = najbardziej_word_minus .. "i",
        ["najwyższy biernik lp n"] = najbardziej_word_minus .. "je",
        ["najwyższy biernik lp f"] = najbardziej_word_minus .. "ją",
        ["najwyższy biernik mos"] = najbardziej_word_minus .. "ich",
        ["najwyższy biernik nmos"] = najbardziej_word_minus .. "je",
        ["najwyższy narzędnik lp mn"] = najbardziej_word_minus .. "im",
        ["najwyższy narzędnik lp f"] = najbardziej_word_minus .. "ją",
        ["najwyższy narzędnik lm"] = najbardziej_word_minus .. "imi",
        ["najwyższy miejscownik lp mn"] = najbardziej_word_minus .. "im",
        ["najwyższy miejscownik lp f"] = najbardziej_word_minus .. "jej",
        ["najwyższy miejscownik lm"] = najbardziej_word_minus .. "ich",
        ["najwyższy wołacz lp m"] = najbardziej_word_minus .. "i",
        ["najwyższy wołacz lp n"] = najbardziej_word_minus .. "je",
        ["najwyższy wołacz lp f"] = najbardziej_word_minus .. "ja",
        ["najwyższy wołacz mos"] = najbardziej_word_minus .. "i",
        ["najwyższy wołacz nmos"] = najbardziej_word_minus .. "je",
        ["niestopniowalny"] = (core1 == "bra") and "tak" or "nie",
	})
end

function adjective_i(entity,word_minus,core1,core2,nv)
	-- functional copy of https://pl.wiktionary.org/wiki/Szablon:odmiana-przymiotnik-polski-i
	local core1bardziej = ( core1 == "bardziej" )
	local bardziej_word_minus = "bardziej " .. word_minus
	local MBW_lp_n = ( nv["mianownik wołacz lp n"]~=nil ) and nv["mianownik wołacz lp n"] or ( word_minus .. "ie" )
	return adjective2(entity,{
        ["mianownik lp m"] = word_minus .. "i",
        ["mianownik lp n"] = MBW_lp_n,
        ["mianownik lp f"] = word_minus .. "ia",
        ["mianownik mos"] = word_minus .. "i",
        ["mianownik nmos"] = word_minus .. "ie",
        ["dopełniacz lp mn"] = word_minus .. "iego",
        ["dopełniacz lp f"] = word_minus .. "iej",
        ["dopełniacz lm"] = word_minus .. "ich",
        ["celownik lp mn"] = word_minus .. "iemu",
        ["celownik lp f"] = word_minus .. "iej",
        ["celownik lm"] = word_minus .. "im",
        ["biernik lp mos"] = word_minus .. "iego",
        ["biernik lp mrz"] = word_minus .. "i",
        ["biernik lp n"] = MBW_lp_n,
        ["biernik lp f"] = word_minus .. "ią",
        ["biernik mos"] = word_minus .. "ich",
        ["biernik nmos"] = word_minus .. "ie",
        ["narzędnik lp mn"] = word_minus .. "im",
        ["narzędnik lp f"] = word_minus .. "ią",
        ["narzędnik lm"] = word_minus .. "imi",
        ["miejscownik lp mn"] = word_minus .. "im",
        ["miejscownik lp f"] = word_minus .. "iej",
        ["miejscownik lm"] = word_minus .. "ich",
        ["wołacz lp m"] = word_minus .. "i",
        ["wołacz lp n"] = MBW_lp_n,
        ["wołacz lp f"] = word_minus .. "ia",
        ["wołacz mos"] = word_minus .. "i",
        ["wołacz nmos"] = word_minus .. "ie",
        ["wyższy"] = ( core1 ~= "" ) and ( core1bardziej and ( bardziej_word_minus .. "i" ) or ( core1 .. "y" ) ) or "",
        ["wyższy mianownik lp m"] = ( core1bardziej and ( bardziej_word_minus .. "i" ) or ( core1 .. "y" ) ),
        ["wyższy mianownik lp n"] = ( core1bardziej and ( "bardziej " .. MBW_lp_n ) or ( core1 .. "e" ) ),
        ["wyższy mianownik lp f"] = ( core1bardziej and ( bardziej_word_minus .. "ia" ) or ( core1 .. "a" ) ),
        ["wyższy mianownik mos"] = ( core1bardziej and ( bardziej_word_minus .. "i" ) or core2 ),
        ["wyższy mianownik nmos"] = ( core1bardziej and ( bardziej_word_minus .. "ie" ) or ( core1 .. "e" ) ),
        ["wyższy dopełniacz lp mn"] = ( core1bardziej and ( bardziej_word_minus .. "iego" ) or ( core1 .. "ego" ) ),
        ["wyższy dopełniacz lp f"] = ( core1bardziej and ( bardziej_word_minus .. "iej" ) or ( core1 .. "ej" ) ),
        ["wyższy dopełniacz lm"] = ( core1bardziej and ( bardziej_word_minus .. "ich" ) or ( core1 .. "ych" ) ),
        ["wyższy celownik lp mn"] = ( core1bardziej and ( bardziej_word_minus .. "iemu" ) or ( core1 .. "emu" ) ),
        ["wyższy celownik lp f"] = ( core1bardziej and ( bardziej_word_minus .. "iej" ) or ( core1 .. "ej" ) ),
        ["wyższy celownik lm"] = ( core1bardziej and ( bardziej_word_minus .. "im" ) or ( core1 .. "ym" ) ),
        ["wyższy biernik lp mos"] = ( core1bardziej and ( bardziej_word_minus .. "iego" ) or ( core1 .. "ego" ) ),
        ["wyższy biernik lp mrz"] = ( core1bardziej and ( bardziej_word_minus .. "i" ) or ( core1 .. "y" ) ),
        ["wyższy biernik lp n"] = ( core1bardziej and ( "bardziej " .. MBW_lp_n ) or ( core1 .. "e" ) ),
        ["wyższy biernik lp f"] = ( core1bardziej and ( bardziej_word_minus .. "ią" ) or ( core1 .. "ą" ) ),
        ["wyższy biernik mos"] = ( core1bardziej and ( bardziej_word_minus .. "ich" ) or ( core1 .. "ych" ) ),
        ["wyższy biernik nmos"] = ( core1bardziej and ( bardziej_word_minus .. "ie" ) or ( core1 .. "e" ) ),
        ["wyższy narzędnik lp mn"] = ( core1bardziej and ( bardziej_word_minus .. "im" ) or ( core1 .. "ym" ) ),
        ["wyższy narzędnik lp f"] = ( core1bardziej and ( bardziej_word_minus .. "ią" ) or ( core1 .. "ą" ) ),
        ["wyższy narzędnik lm"] = ( core1bardziej and ( bardziej_word_minus .. "imi" ) or ( core1 .. "ymi" ) ),
        ["wyższy miejscownik lp mn"] = ( core1bardziej and ( bardziej_word_minus .. "im" ) or ( core1 .. "ym" ) ),
        ["wyższy miejscownik lp f"] = ( core1bardziej and ( bardziej_word_minus .. "iej" ) or ( core1 .. "ej" ) ),
        ["wyższy miejscownik lm"] = ( core1bardziej and ( bardziej_word_minus .. "ich" ) or ( core1 .. "ych" ) ),
        ["wyższy wołacz lp m"] = ( core1bardziej and ( bardziej_word_minus .. "i" ) or ( core1 .. "y" ) ),
        ["wyższy wołacz lp n"] = ( core1bardziej and ( "bardziej " .. MBW_lp_n ) or ( core1 .. "e" ) ),
        ["wyższy wołacz lp f"] = ( core1bardziej and ( bardziej_word_minus .. "ia" ) or ( core1 .. "a" ) ),
        ["wyższy wołacz mos"] = ( core1bardziej and ( bardziej_word_minus .. "i" ) or core2 ),
        ["wyższy wołacz nmos"] = ( core1bardziej and ( bardziej_word_minus .. "ie" ) or ( core1 .. "e" ) ),
        ["najwyższy"] = ( core1 ~= "" ) and ( "naj" .. ( core1bardziej and ( bardziej_word_minus .. "i" ) or ( core1 .. "y" ) ) ) or "",
        ["najwyższy mianownik lp m"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "i" ) or ( core1 .. "y" ) ),
        ["najwyższy mianownik lp n"] = "naj" .. ( core1bardziej and ( "bardziej " .. MBW_lp_n ) or ( core1 .. "e" ) ),
        ["najwyższy mianownik lp f"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "ia" ) or ( core1 .. "a" ) ),
        ["najwyższy mianownik mos"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "i" ) or core2 ),
        ["najwyższy mianownik nmos"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "ie" ) or ( core1 .. "e" ) ),
        ["najwyższy dopełniacz lp mn"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "iego" ) or ( core1 .. "ego" ) ),
        ["najwyższy dopełniacz lp f"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "iej" ) or ( core1 .. "ej" ) ),
        ["najwyższy dopełniacz lm"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "ich" ) or ( core1 .. "ych" ) ),
        ["najwyższy celownik lp mn"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "iemu" ) or ( core1 .. "emu" ) ),
        ["najwyższy celownik lp f"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "iej" ) or ( core1 .. "ej" ) ),
        ["najwyższy celownik lm"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "im" ) or ( core1 .. "ym" ) ),
        ["najwyższy biernik lp mos"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "iego" ) or ( core1 .. "ego" ) ),
        ["najwyższy biernik lp mrz"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "i" ) or ( core1 .. "y" ) ),
        ["najwyższy biernik lp n"] = "naj" .. ( core1bardziej and ( "bardziej " .. MBW_lp_n ) or ( core1 .. "e" ) ),
        ["najwyższy biernik lp f"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "ią" ) or ( core1 .. "ą" ) ),
        ["najwyższy biernik mos"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "ich" ) or ( core1 .. "ych" ) ),
        ["najwyższy biernik nmos"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "ie" ) or ( core1 .. "e" ) ),
        ["najwyższy narzędnik lp mn"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "im" ) or ( core1 .. "ym" ) ),
        ["najwyższy narzędnik lp f"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "ią" ) or ( core1 .. "ą" ) ),
        ["najwyższy narzędnik lm"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "imi" ) or ( core1 .. "ymi" ) ),
        ["najwyższy miejscownik lp mn"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "im" ) or ( core1 .. "ym" ) ),
        ["najwyższy miejscownik lp f"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "iej" ) or ( core1 .. "ej" ) ),
        ["najwyższy miejscownik lm"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "ich" ) or ( core1 .. "ych" ) ),
        ["najwyższy wołacz lp m"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "i" ) or ( core1 .. "y" ) ),
        ["najwyższy wołacz lp n"] = "naj" .. ( core1bardziej and ( "bardziej " .. MBW_lp_n ) or ( core1 .. "e" ) ),
        ["najwyższy wołacz lp f"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "ia" ) or ( core1 .. "a" ) ),
        ["najwyższy wołacz mos"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "i" ) or core2 ),
        ["najwyższy wołacz nmos"] = "naj" .. ( core1bardziej and ( bardziej_word_minus .. "ie" ) or ( core1 .. "e" ) ),
        ["niestopniowalny"] = (core1 == "bra") and "tak" or "nie",
	})
end

function adjective_y(entity,nv,base_minus,base,core1,core2)
	-- functional copy of https://pl.wiktionary.org/wiki/Szablon:odmiana-przymiotnik-polski-y
	local my = ( nv["mianownik wołacz lp m"] ~= nil ) and nv["mianownik wołacz lp m"] or ( base_minus .. "y" )
	local pbmy = ( core1:sub(1,5) == "bardz" ) and ( "bardzo " .. my ) or ( core1 .. "y" )
	local ne = ( ( nv["mianownik wołacz lp n"] ~= nil ) and ( nv["mianownik wołacz lp n"] ~= "" ) )
	           and nv["mianownik wołacz lp n"] or ( base_minus .. "e" )
	local bf = ( nv["biernik lp f"] ~= nil ) and nv["biernik lp f"] or ( base_minus .. "ą" )
	return adjective2(entity,{
        ["mianownik lp m"] = my,
        ["mianownik lp n"] = ne,
        ["mianownik lp f"] = base_minus .. "a",
        ["mianownik mos"] = base,
        ["mianownik nmos"] = base_minus .. "e",
        ["dopełniacz lp mn"] = base_minus .. "ego",
        ["dopełniacz lp f"] = base_minus .. "ej",
        ["dopełniacz lm"] = base_minus .. "ych",
        ["celownik lp mn"] = base_minus .. "emu",
        ["celownik lp f"] = base_minus .. "ej",
        ["celownik lm"] = base_minus .. "ym",
        ["biernik lp mos"] = base_minus .. "ego",
        ["biernik lp mrz"] = my,
        ["biernik lp n"] = ne,
        ["biernik lp f"] = bf,
        ["biernik mos"] = base_minus .. "ych",
        ["biernik nmos"] = base_minus .. "e",
        ["narzędnik lp mn"] = base_minus .. "ym",
        ["narzędnik lp f"] = base_minus .. "ą",
        ["narzędnik lm"] = base_minus .. "ymi",
        ["miejscownik lp mn"] = base_minus .. "ym",
        ["miejscownik lp f"] = base_minus .. "ej",
        ["miejscownik lm"] = base_minus .. "ych",
        ["wołacz lp m"] = my,
        ["wołacz lp n"] = ne,
        ["wołacz lp f"] = base_minus .. "a",
        ["wołacz mos"] = base,
        ["wołacz nmos"] = base_minus .. "e",
        ["wyższy"] = ( core1 ~= "" ) and pbmy or "",
        ["wyższy mianownik lp m"] = pbmy,
        ["wyższy mianownik lp n"] = core1 .. "e",
        ["wyższy mianownik lp f"] = core1 .. "a",
        ["wyższy mianownik mos"] = core2,
        ["wyższy mianownik nmos"] = core1 .. "e",
        ["wyższy dopełniacz lp mn"] = core1 .. "ego",
        ["wyższy dopełniacz lp f"] = core1 .. "ej",
        ["wyższy dopełniacz lm"] = core1 .. "ych",
        ["wyższy celownik lp mn"] = core1 .. "emu",
        ["wyższy celownik lp f"] = core1 .. "ej",
        ["wyższy celownik lm"] = core1 .. "ym",
        ["wyższy biernik lp mos"] = core1 .. "ego",
        ["wyższy biernik lp mrz"] = pbmy,
        ["wyższy biernik lp n"] = core1 .. "e",
        ["wyższy biernik lp f"] = core1 .. "ą",
        ["wyższy biernik mos"] = core1 .. "ych",
        ["wyższy biernik nmos"] = core1 .. "e",
        ["wyższy narzędnik lp mn"] = core1 .. "ym",
        ["wyższy narzędnik lp f"] = core1 .. "ą",
        ["wyższy narzędnik lm"] = core1 .. "ymi",
        ["wyższy miejscownik lp mn"] = core1 .. "ym",
        ["wyższy miejscownik lp f"] = core1 .. "ej",
        ["wyższy miejscownik lm"] = core1 .. "ych",
        ["wyższy wołacz lp m"] = pbmy,
        ["wyższy wołacz lp n"] = core1 .. "e",
        ["wyższy wołacz lp f"] = core1 .. "a",
        ["wyższy wołacz mos"] = core2,
        ["wyższy wołacz nmos"] = core1 .. "e",
        ["najwyższy"] = ( core1 ~= "" ) and ( "naj" .. pbmy ) or "",
        ["najwyższy mianownik lp m"] = "naj" .. pbmy,
        ["najwyższy mianownik lp n"] = "naj" .. core1 .. "e",
        ["najwyższy mianownik lp f"] = "naj" .. core1 .. "a",
        ["najwyższy mianownik mos"] = "naj" .. core2,
        ["najwyższy mianownik nmos"] = "naj" .. core1 .. "e",
        ["najwyższy dopełniacz lp mn"] = "naj" .. core1 .. "ego",
        ["najwyższy dopełniacz lp f"] = "naj" .. core1 .. "ej",
        ["najwyższy dopełniacz lm"] = "naj" .. core1 .. "ych",
        ["najwyższy celownik lp mn"] = "naj" .. core1 .. "emu",
        ["najwyższy celownik lp f"] = "naj" .. core1 .. "ej",
        ["najwyższy celownik lm"] = "naj" .. core1 .. "ym",
        ["najwyższy biernik lp mos"] = "naj" .. core1 .. "ego",
        ["najwyższy biernik lp mrz"] = "naj" .. pbmy,
        ["najwyższy biernik lp n"] = "naj" .. core1 .. "e",
        ["najwyższy biernik lp f"] = "naj" .. core1 .. "ą",
        ["najwyższy biernik mos"] = "naj" .. core1 .. "ych",
        ["najwyższy biernik nmos"] = "naj" .. core1 .. "e",
        ["najwyższy narzędnik lp mn"] = "naj" .. core1 .. "ym",
        ["najwyższy narzędnik lp f"] = "naj" .. core1 .. "ą",
        ["najwyższy narzędnik lm"] = "naj" .. core1 .. "ymi",
        ["najwyższy miejscownik lp mn"] = "naj" .. core1 .. "ym",
        ["najwyższy miejscownik lp f"] = "naj" .. core1 .. "ej",
        ["najwyższy miejscownik lm"] = "naj" .. core1 .. "ych",
        ["najwyższy wołacz lp m"] = "naj" .. pbmy,
        ["najwyższy wołacz lp n"] = "naj" .. core1 .. "e",
        ["najwyższy wołacz lp f"] = "naj" .. core1 .. "a",
        ["najwyższy wołacz mos"] = "naj" .. core2,
        ["najwyższy wołacz nmos"] = "naj" .. core1 .. "e",
        ["niestopniowalny"] = (core1 == "bra") and "tak" or "nie",
	})
end

function adjective1(entity,word,comparative,equivalent,participle)
	-- functional copy of https://pl.wiktionary.org/wiki/Szablon:odmiana-przymiotnik-polski1

	local base = equivalent
	if base == "" then
		base = word
	end
	
	local word_minus_1 = word:sub(1,word:len()-1)
	local word_minus_2 = word:sub(1,word:len()-2)
	
	local base_minus_1 = base:sub(1,base:len()-1)
	local base_minus_2 = base:sub(1,base:len()-2)
	local base_minus_3 = base:sub(1,base:len()-3)
	local base_minus_4 = base:sub(1,base:len()-4)

	local cohd = core_of_higher_degree(comparative)
	local cohd2 = core_of_higher_degree2(comparative)
	local cohd4 = core_of_higher_degree4(comparative,base)
	
	if word == (word_minus_1 .. "i") then
		if word == (word_minus_2 .. "li") then
			entity = adjective_li(entity,word_minus_2,cohd,cohd2)
		elseif word == (word_minus_2 .. "ki") then
			entity = adjective_ki(entity,word_minus_2,cohd,cohd2,{})
		elseif word == (word_minus_2 .. "gi") then
			entity = adjective_gi(entity,word_minus_2,cohd,cohd2)
		elseif word == (word_minus_2 .. "yi") then
			entity = adjective_yi(entity,word_minus_1,cohd,cohd)
		else
			entity = adjective_i(entity,word_minus_1,cohd,cohd2,{})
		end

	-- to be done
	else -- {{#ifeq:base*{{{participle|tak}}}|base_minus_3 .. "ony*nie"|
	--				then {{adjective_y|
	--						mianownik wołacz lp m=word|
	--						base_minus_1|
	--						base_minus_1 .. "i"|
	--						cohd4|
	--						{{rdzeń stopnia wyższego3|comparative|base_minus_1 .. "i"}}
	--					 }}|
	--				else {{#ifeq:base|base_minus_3 .. "sny"|
	--						then {{adjective_y|
	--								mianownik wołacz lp m=word|
	--								base_minus_1|
	--								base_minus_3 .. "śni"|
	--								cohd4|
	--								{{rdzeń stopnia wyższego3|comparative|base_minus_3 .. "śni"}}
	--							 }}|
	--						else {{#ifeq:base|base_minus_3 .. "ony"|
	--								then {{adjective_y|
	--										mianownik wołacz lp m=word|
	--										base_minus_1|
	--										base_minus_3 .. "eni"|
	--										cohd4|
	--										{{rdzeń stopnia wyższego3|comparative|base_minus_3 .. "eni"}}
	--									 }}|
	--								else {{#ifeq:base|base_minus_3 .. "chy"|{{adjective_y|mianownik wołacz lp m=word|base_minus_1|base_minus_3 .. "si"|cohd4|{{rdzeń stopnia wyższego3|comparative|base_minus_3 .. "si"}}}}|
	--		{{#ifeq:base|base_minus_2 .. "hy"|{{adjective_y|mianownik wołacz lp m=word|base_minus_1|base_minus_2 .. "zi"|cohd4|{{rdzeń stopnia wyższego3|comparative|base_minus_2 .. "zi"}}}}|
	--		{{#ifeq:base|base_minus_3 .. "czy"|{{adjective_y|mianownik wołacz lp m=word|base_minus_1|base_minus_3 .. "czy"|cohd4|{{rdzeń stopnia wyższego3|comparative|base_minus_3 .. "czy"}}}}|
	--		{{#ifeq:base|base_minus_2 .. "cy"|{{adjective_y|mianownik wołacz lp m=word|base_minus_1|base_minus_2 .. "cy"|cohd4|{{rdzeń stopnia wyższego3|comparative|base_minus_2 .. "cy"}}}}|
	--		{{#ifeq:base|base_minus_2 .. "dy"|{{adjective_y|mianownik wołacz lp m=word|base_minus_1|base_minus_2 .. "dzi"|cohd4|{{rdzeń stopnia wyższego3|comparative|base_minus_2 .. "dzi"}}}}|
	--		{{#ifeq:base|base_minus_4 .. "szły"|{{adjective_y|mianownik wołacz lp m=word|base_minus_1|base_minus_4 .. "szli"|cohd4|{{rdzeń stopnia wyższego3|comparative|base_minus_4 .. "szli"}}}}|
	--		{{#ifeq:base|base_minus_3 .. "sły"|{{adjective_y|mianownik wołacz lp m=word|base_minus_1|base_minus_3 .. "śli"|cohd4|{{rdzeń stopnia wyższego3|comparative|base_minus_3 .. "śli"}}}}|
	--		{{#ifeq:base|base_minus_3 .. "zły"|{{adjective_y|mianownik wołacz lp m=word|base_minus_1|base_minus_3 .. "źli"|cohd4|{{rdzeń stopnia wyższego3|comparative|base_minus_3 .. "źli"}}}}|
	--		{{#ifeq:base|base_minus_2 .. "ły"|{{adjective_y|mianownik wołacz lp m=word|base_minus_1|base_minus_2 .. "li"|cohd4|{{rdzeń stopnia wyższego3|comparative|base_minus_2 .. "li"}}}}|
	--		{{#ifeq:base|base_minus_3 .. "uży"|{{adjective_y|mianownik wołacz lp m=word|base_minus_1|base_minus_3 .. "uzi"|cohd4|{{rdzeń stopnia wyższego3|comparative|base_minus_3 .. "uzi"}}}}|
	--		{{#ifeq:base|base_minus_2 .. "ży"|{{adjective_y|mianownik wołacz lp m=word|base_minus_1|base_minus_2 .. "ży"|cohd4|{{rdzeń stopnia wyższego3|comparative|base_minus_2 .. "ży"}}}}|
	--		{{#ifeq:base|base_minus_2 .. "ry"|{{adjective_y|mianownik wołacz lp m=word|base_minus_1|base_minus_2 .. "rzy"|cohd4|{{rdzeń stopnia wyższego3|comparative|base_minus_2 .. "rzy"}}}}|
	--		{{#ifeq:base|base_minus_2 .. "sy"|{{adjective_y|mianownik wołacz lp m=word|base_minus_1|base_minus_2 .. "si"|cohd4|{{rdzeń stopnia wyższego3|comparative|base_minus_2 .. "si"}}}}|
	--		{{#ifeq:base|base_minus_3 .. "sty"|{{adjective_y|mianownik wołacz lp m=word|base_minus_1|base_minus_3 .. "ści"|cohd4|{{rdzeń stopnia wyższego3|comparative|base_minus_3 .. "ści"}}}}|
	--		{{#ifeq:base|base_minus_3 .. "szy"|{{adjective_y|mianownik wołacz lp m=word|base_minus_1|base_minus_3 .. "si"|cohd4|{{rdzeń stopnia wyższego3|comparative|base_minus_3 .. "si"}}}}|
	--		{{#ifeq:base|base_minus_2 .. "ty"|{{adjective_y|mianownik wołacz lp m=word|base_minus_1|base_minus_2 .. "ci"|cohd4|{{rdzeń stopnia wyższego3|comparative|base_minus_2 .. "ci"}}}}|{{#ifeq:base|base_minus_3 .. "smy"|{{adjective_y|mianownik wołacz lp m=word|mianownik wołacz lp n={{{mianownik wołacz lp n|}}}|base_minus_1|base_minus_3 .. "śmi"|cohd4|{{rdzeń stopnia wyższego3|comparative|base_minus_3 .. "śmi"}}}}|{{adjective_y|mianownik wołacz lp m=word|mianownik wołacz lp n={{{mianownik wołacz lp n|}}}|base_minus_1|base_minus_1 .. "i"|cohd4|{{rdzeń stopnia wyższego3|comparative|base_minus_1 .. "i"}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
		
	end

	return entity
end

function p.adjective(word,comparative,equivalent,participle)
	
	-- functional copy of https://pl.wiktionary.org/wiki/Szablon:odmiana-przymiotnik-polski

	if type(word)=='table' then
		if word.parent and word.parent.args and word.parent.args[1] then
			word=word.parent
		end
		word,comparative,equivalent,participle = word.args[1],word.args[2],word.args[3],word.args[4]
	end

	local entity=lb.newLexeme("Q809", "Q34698", text({pl=word}))

	if comparative == nil then
		comparative = ""
	end
	
	if equivalent == nil then
		equivalent = ""
	end
	
	if participle == nil then
		participle = ""
	end
	
	entity = adjective1(entity,word,comparative,equivalent,participle)
	
	return lb.Export(entity)
	
end

return p