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:

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" there are no "comparative" and "superlative" forms
    • for "bardziej" there are regular "comparative" and "superlative" forms
    • for other value it is basic form of "comparative" form
  • equivalent - optional,
  • participle - optional, "tak" or "nie" ("yes/no")

Example usage:

{{#invoke:Lexeme-pl|adjective|ciasny|ciaśniejszy}}

local p = {}

-- *************************
-- ** Imports and helpers **
-- *************************

local lb = require('Module:LexemeBuilder')
local text = lb.MultilingualText

function trim(s)
    return s:gsub("^%s*(.-)%s*$", "%1")
end

-- ************************************
-- ** Items for Grammatical features **
-- ************************************

-- mapping of Polish grammatical symbols onto Q-items
local Qs = {
	["forma potencjalna"] ="Q54944750", -- potential form due to phab T194732
	
	["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
    ["ż"]="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"]="Q54152717", -- rodzaj niemęskoosobowy
    
    ["1oslp"]="Q51929218",   -- pierwsza osoba liczby pojedynczej, first-person singular
    ["2oslp"]="Q51929369",   -- druga osoba liczby pojedynczej, second-person singular
    ["3oslp"]="Q51929447",   -- trzecia osoba liczby pojedynczej, third-person singular
    ["1oslm"]="Q51929290",   -- pierwsza osoba liczby mnogiej, first-person plural
    ["1oslm"]="Q51929403",   -- druga osoba liczby mnogiej, second-person plural
    ["1oslm"]="Q51929517",   -- trzecia osoba liczby mnogiej, third-person plural
    
    ["bezokolicznik"]="Q179230",  -- infinitive
    
    ["czas teraźniejszy"]="Q192613",       -- present tense
    ["czas przyszły prosty"]="Q16527322",  -- simple future
    ["czas przeszły"]="Q1994301",          -- past tense
    
    ["tryb rozkazujący"]="Q22716",   -- imperative mood
}

function add_form_with_gfs(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

-- ***********
-- ** Nouns **
-- ***********

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=add_form_with_gfs(entity,nominative,  "lp,M")
	entity=add_form_with_gfs(entity,genitive,    "lp,D")
	entity=add_form_with_gfs(entity,dative,      "lp,C")
	entity=add_form_with_gfs(entity,accusative,  "lp,B")
	entity=add_form_with_gfs(entity,instrumental,"lp,N")
	entity=add_form_with_gfs(entity,locative,    "lp,Ms")
	entity=add_form_with_gfs(entity,vocative,    "lp,W")
		
	entity=add_form_with_gfs(entity,nominative_plural,  "lm,M")
	entity=add_form_with_gfs(entity,genitive_plural,    "lm,D")
	entity=add_form_with_gfs(entity,dative_plural,      "lm,C")
	entity=add_form_with_gfs(entity,accusative_plural,  "lm,B")
	entity=add_form_with_gfs(entity,instrumental_plural,"lm,N")
	entity=add_form_with_gfs(entity,locative_plural,    "lm,Ms")
	entity=add_form_with_gfs(entity,vocative_plural,    "lm,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	

-- ****************
-- ** Adjectives **
-- ****************

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 adjective2(entity,cases)
	-- functional copy of https://pl.wiktionary.org/wiki/Szablon:odmiana-przymiotnik-polski2

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

        entity=add_form_with_gfs(entity,cases["wyższy mianownik lp m"],"wyższy,M,lp,m")
        entity=add_form_with_gfs(entity,cases["wyższy mianownik lp n"],"wyższy,M,lp,n")
        entity=add_form_with_gfs(entity,cases["wyższy mianownik lp f"],"wyższy,M,lp,f")
        entity=add_form_with_gfs(entity,cases["wyższy mianownik mos"],"wyższy,M,lm,mos")
        entity=add_form_with_gfs(entity,cases["wyższy mianownik nmos"],"wyższy,M,lm,nmos")
        entity=add_form_with_gfs(entity,cases["wyższy dopełniacz lp mn"],"wyższy,D,lp,m,n")
        entity=add_form_with_gfs(entity,cases["wyższy dopełniacz lp f"],"wyższy,D,lp,f")
        entity=add_form_with_gfs(entity,cases["wyższy dopełniacz lm"],"wyższy,D,lm,mos,nmos")
        entity=add_form_with_gfs(entity,cases["wyższy celownik lp mn"],"wyższy,C,lp,m,n")
        entity=add_form_with_gfs(entity,cases["wyższy celownik lp f"],"wyższy,C,lp,f")
        entity=add_form_with_gfs(entity,cases["wyższy celownik lm"],"wyższy,C,lm,mos,nmos")
        entity=add_form_with_gfs(entity,cases["wyższy biernik lp mos"],"wyższy,B,lp,mos,mzw")
        entity=add_form_with_gfs(entity,cases["wyższy biernik lp mrz"],"wyższy,B,lp,mrz")
        entity=add_form_with_gfs(entity,cases["wyższy biernik lp n"],"wyższy,B,lp,n")
        entity=add_form_with_gfs(entity,cases["wyższy biernik lp f"],"wyższy,B,lp,f")
        entity=add_form_with_gfs(entity,cases["wyższy biernik mos"],"wyższy,B,lm,mos")
        entity=add_form_with_gfs(entity,cases["wyższy biernik nmos"],"wyższy,B,lm,nmos")
        entity=add_form_with_gfs(entity,cases["wyższy narzędnik lp mn"],"wyższy,N,lp,m,n")
        entity=add_form_with_gfs(entity,cases["wyższy narzędnik lp f"],"wyższy,N,lp,f")
        entity=add_form_with_gfs(entity,cases["wyższy narzędnik lm"],"wyższy,N,lm,mos,nmos")
        entity=add_form_with_gfs(entity,cases["wyższy miejscownik lp mn"],"wyższy,Ms,lp,m,n")
        entity=add_form_with_gfs(entity,cases["wyższy miejscownik lp f"],"wyższy,Ms,lp,f")
        entity=add_form_with_gfs(entity,cases["wyższy miejscownik lm"],"wyższy,Ms,lm,mos,nmos")
        entity=add_form_with_gfs(entity,cases["wyższy wołacz lp m"],"wyższy,W,lp,m")
        entity=add_form_with_gfs(entity,cases["wyższy wołacz lp n"],"wyższy,W,lp,n")
        entity=add_form_with_gfs(entity,cases["wyższy wołacz lp f"],"wyższy,W,lp,f")
        entity=add_form_with_gfs(entity,cases["wyższy wołacz mos"],"wyższy,W,lm,mos")
        entity=add_form_with_gfs(entity,cases["wyższy wołacz nmos"],"wyższy,W,lm,nmos")
    
        entity=add_form_with_gfs(entity,cases["najwyższy mianownik lp m"],"najwyższy,M,lp,m")
        entity=add_form_with_gfs(entity,cases["najwyższy mianownik lp n"],"najwyższy,M,lp,n")
        entity=add_form_with_gfs(entity,cases["najwyższy mianownik lp f"],"najwyższy,M,lp,f")
        entity=add_form_with_gfs(entity,cases["najwyższy mianownik mos"],"najwyższy,M,lm,mos")
        entity=add_form_with_gfs(entity,cases["najwyższy mianownik nmos"],"najwyższy,M,lm,nmos")
        entity=add_form_with_gfs(entity,cases["najwyższy dopełniacz lp mn"],"najwyższy,D,lp,m,n")
        entity=add_form_with_gfs(entity,cases["najwyższy dopełniacz lp f"],"najwyższy,D,lp,f")
        entity=add_form_with_gfs(entity,cases["najwyższy dopełniacz lm"],"najwyższy,D,lm,mos,nmos")
        entity=add_form_with_gfs(entity,cases["najwyższy celownik lp mn"],"najwyższy,C,lp,m,n")
        entity=add_form_with_gfs(entity,cases["najwyższy celownik lp f"],"najwyższy,C,lp,f")
        entity=add_form_with_gfs(entity,cases["najwyższy celownik lm"],"najwyższy,C,lm,mos,nmos")
        entity=add_form_with_gfs(entity,cases["najwyższy biernik lp mos"],"najwyższy,B,lp,mos,mzw")
        entity=add_form_with_gfs(entity,cases["najwyższy biernik lp mrz"],"najwyższy,B,lp,mrz")
        entity=add_form_with_gfs(entity,cases["najwyższy biernik lp n"],"najwyższy,B,lp,n")
        entity=add_form_with_gfs(entity,cases["najwyższy biernik lp f"],"najwyższy,B,lp,f")
        entity=add_form_with_gfs(entity,cases["najwyższy biernik mos"],"najwyższy,B,lm,mos")
        entity=add_form_with_gfs(entity,cases["najwyższy biernik nmos"],"najwyższy,B,lm,nmos")
        entity=add_form_with_gfs(entity,cases["najwyższy narzędnik lp mn"],"najwyższy,N,lp,m,n")
        entity=add_form_with_gfs(entity,cases["najwyższy narzędnik lp f"],"najwyższy,N,lp,f")
        entity=add_form_with_gfs(entity,cases["najwyższy narzędnik lm"],"najwyższy,N,lm,mos,nmos")
        entity=add_form_with_gfs(entity,cases["najwyższy miejscownik lp mn"],"najwyższy,Ms,lp,m,n")
        entity=add_form_with_gfs(entity,cases["najwyższy miejscownik lp f"],"najwyższy,Ms,lp,f")
        entity=add_form_with_gfs(entity,cases["najwyższy miejscownik lm"],"najwyższy,Ms,lm,mos,nmos")
        entity=add_form_with_gfs(entity,cases["najwyższy wołacz lp m"],"najwyższy,W,lp,m")
        entity=add_form_with_gfs(entity,cases["najwyższy wołacz lp n"],"najwyższy,W,lp,n")
        entity=add_form_with_gfs(entity,cases["najwyższy wołacz lp f"],"najwyższy,W,lp,f")
        entity=add_form_with_gfs(entity,cases["najwyższy wołacz mos"],"najwyższy,W,lm,mos")
        entity=add_form_with_gfs(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 ( "bardziej " .. 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,nv)
	-- 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
	elseif ( base .. "*" .. ( ( participle ~= "" ) and participle or "tak" ) ) == ( base_minus_3 .. "ony*nie" ) then
		entity = adjective_y(entity,
					{["mianownik wołacz lp m"]=word,},
					base_minus_1,
					base_minus_1 .. "i",
					cohd4,
					core_of_higher_degree3(comparative,base_minus_1 .. "i")
				)
	elseif base == ( base_minus_3 .. "sny" ) then
		entity = adjective_y(entity,
					{["mianownik wołacz lp m"]=word,},
					base_minus_1,
					base_minus_3 .. "śni",
					cohd4,
					core_of_higher_degree3(comparative,base_minus_3 .. "śni")
				)
	elseif base == ( base_minus_3 .. "ony" ) then
		entity = adjective_y(entity,
					{["mianownik wołacz lp m"]=word,},
					base_minus_1,
					base_minus_3 .. "eni",
					cohd4,
					core_of_higher_degree3(comparative,base_minus_3 .. "eni")
				)
	elseif base == ( base_minus_3 .. "chy" ) then
		entity = adjective_y(entity,
					{["mianownik wołacz lp m"]=word,},
					base_minus_1,
					base_minus_3 .. "si",
					cohd4,
					core_of_higher_degree3(comparative,base_minus_3 .. "si")
	            )
	elseif base == ( base_minus_2 .. "hy" ) then
		entity = adjective_y(entity,
					{["mianownik wołacz lp m"]=word,},
					base_minus_1,
					base_minus_2 .. "zi",
					cohd4,
					core_of_higher_degree3(comparative,base_minus_2 .. "zi")
				)
    elseif base == ( base_minus_3 .. "czy" ) then
		entity = adjective_y(entity,
					{["mianownik wołacz lp m"]=word,},
					base_minus_1,
					base_minus_3 .. "czy",
					cohd4,
					core_of_higher_degree3(comparative,base_minus_3 .. "czy")
				)
	elseif base == ( base_minus_2 .. "cy" ) then
		entity = adjective_y(entity,
					{["mianownik wołacz lp m"]=word,},
					base_minus_1,
					base_minus_2 .. "cy",
					cohd4,
					core_of_higher_degree3(comparative,base_minus_2 .. "cy")
				)
	elseif base == ( base_minus_2 .. "dy" ) then
		entity = adjective_y(entity,
					{["mianownik wołacz lp m"]=word,},
					base_minus_1,
					base_minus_2 .. "dzi",
					cohd4,
					core_of_higher_degree3(comparative,base_minus_2 .. "dzi")
				)
	elseif base == ( base_minus_4 .. "szły" ) then
		entity = adjective_y(entity,
					{["mianownik wołacz lp m"]=word,},
					base_minus_1,
					base_minus_4 .. "szli",
					cohd4,
					core_of_higher_degree3(comparative,base_minus_4 .. "szli")
				)
	elseif base == ( base_minus_3 .. "sły" ) then
		entity = adjective_y(entity,
					{["mianownik wołacz lp m"]=word,},
					base_minus_1,
					base_minus_3 .. "śli",
					cohd4,
					core_of_higher_degree3(comparative,base_minus_3 .. "śli")
				)
	elseif base == ( base_minus_3 .. "zły" ) then
		entity = adjective_y(entity,
					{["mianownik wołacz lp m"]=word,},
					base_minus_1,
					base_minus_3 .. "źli",
					cohd4,
					core_of_higher_degree3(comparative,base_minus_3 .. "źli")
				)
	elseif base == ( base_minus_2 .. "ły" ) then
		entity = adjective_y(entity,
					{["mianownik wołacz lp m"]=word,},
					base_minus_1,
					base_minus_2 .. "li",
					cohd4,
					core_of_higher_degree3(comparative,base_minus_2 .. "li")
				)
	elseif base == ( base_minus_3 .. "uży" ) then
		entity = adjective_y(entity,
					{["mianownik wołacz lp m"]=word,},
					base_minus_1,
					base_minus_3 .. "uzi",
					cohd4,
					core_of_higher_degree3(comparative,base_minus_3 .. "uzi")
				)
	elseif base == ( base_minus_2 .. "ży" ) then
		entity = adjective_y(entity,
					{["mianownik wołacz lp m"]=word,},
					base_minus_1,
					base_minus_2 .. "ży",
					cohd4,
					core_of_higher_degree3(comparative,base_minus_2 .. "ży")
				)
	elseif base == ( base_minus_2 .. "ry" ) then
		entity = adjective_y(entity,
					{["mianownik wołacz lp m"]=word,},
					base_minus_1,
					base_minus_2 .. "rzy",
					cohd4,
					core_of_higher_degree3(comparative,base_minus_2 .. "rzy")
				)
	elseif base == ( base_minus_2 .. "sy" ) then
		entity = adjective_y(entity,
					{["mianownik wołacz lp m"]=word,},
					base_minus_1,
					base_minus_2 .. "si",
					cohd4,
					core_of_higher_degree3(comparative,base_minus_2 .. "si")
				)
	elseif base == ( base_minus_3 .. "sty" ) then
		entity = adjective_y(entity,
					{["mianownik wołacz lp m"]=word,},
					base_minus_1,
					base_minus_3 .. "ści",
					cohd4,
					core_of_higher_degree3(comparative,base_minus_3 .. "ści")
				)
	elseif base == ( base_minus_3 .. "szy" ) then
		entity = adjective_y(entity,
					{["mianownik wołacz lp m"]=word,},
					base_minus_1,
					base_minus_3 .. "si",
					cohd4,
					core_of_higher_degree3(comparative,base_minus_3 .. "si")
				)
	elseif base == ( base_minus_2 .. "ty" ) then
		entity = adjective_y(entity,
					{["mianownik wołacz lp m"]=word,},
					base_minus_1,
					base_minus_2 .. "ci",
					cohd4,
					core_of_higher_degree3(comparative,base_minus_2 .. "ci")
				)
	elseif base == ( base_minus_3 .. "smy" ) then
		entity = adjective_y(entity,
					{["mianownik wołacz lp m"]=word,["mianownik wołacz lp n"]=nv["mianownik wołacz lp n"],},
					base_minus_1,
					base_minus_3 .. "śmi",
					cohd4,
					core_of_higher_degree3(comparative,base_minus_3 .. "śmi")
				)
	else
		entity = adjective_y(entity,
					{["mianownik wołacz lp m"]=word,["mianownik wołacz lp n"]=nv["mianownik wołacz lp n"],},
					base_minus_1,
					base_minus_1 .. "i",
					cohd4,
					core_of_higher_degree3(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

-- ***********
-- ** Verbs **
-- ***********

function param(p)
	return ( ( p == nil ) or ( p == "" ) ) and "" or trim(p) 
end

function choose(p,elseval)
	p=param(p)
	return ( p == "" ) and elseval or p
end

function choose(args,p1,p2)
	p1=param(args[p1])
	p2=param(args[p2])
	return ( p1 == "" ) and p2 or p1
end

function choose_else(args,p1,p2,elseval)
	p1=param(args[p1])
	p2=param(args[p2])
	return ( p1 == "" ) and ( ( p2 == "" ) and elseval or p2 ) or p1
end

function verb1(entity,word,args)
	
	-- functional copy of https://pl.wiktionary.org/wiki/Szablon:odmiana-czasownik-polski
	
	local ssie = param(args["się"])
	ssie = (ssie == "" ) and "" or ( " " .. ssie )

    local robiczrobic = choose_else(args,"robić","zrobić",word)
    local ssie_robiczrobic = ssie .. " " .. robiczrobic
	local robiezrobie = choose(args,"robię","zrobię")
	local robizrobi = choose(args,"robi","zrobi")
	local robiazrobia = choose(args,"robią","zrobią")
	local robilemzrobilem = choose(args,"robiłem","zrobiłem")
	local robileszrobiles_ssie = robilemzrobilem:sub(1,robilemzrobilem:len()-1)
	      robileszrobiles_ssie = choose_else(args,"robiłeś","zrobiłeś",robileszrobiles_ssie .. "ś") .. ssie
	local robilzrobil = choose(args,"robił","zrobił")
	local ssie_robilzrobil = ssie .. " " .. robilzrobil
	local robilizrobili = choose(args,"robili","zrobili")
	local robilismyzrobilismy_ssie = choose_else(args,"robiliśmy","zrobiliśmy",robilizrobili .. "śmy") .. ssie
	local robilisciezrobiliscie_ssie = choose_else(args,"robiliście","zrobiliście",robilizrobili .. "ście") .. ssie
	local ssie_robilizrobili = ssie .. " " .. robilizrobili
	local robilazrobila = choose(args,"robiła","zrobiła")
	local ssie_robilazrobila = ssie .. " " .. robilazrobila
	local robilazrobila_1 = robilazrobila:sub(1,robilazrobila:len()-1)
	local robilamzrobilam_ssie = choose_else(args,"robiłam","zrobiłam",robilazrobila .. "m") .. ssie
	local robilaszrobilas_ssie = choose_else(args,"robiłaś","zrobiłaś",robilazrobila .. "ś") .. ssie
	local robilysmyzrobilysmy_ssie = choose_else(args,"robiłyśmy","zrobiłyśmy",robilazrobila_1 .. "yśmy") .. ssie
	local robilysciezrobilyscie_ssie = choose_else(args,"robiłyście","zrobiłyście",robilazrobila_1 .. "yście") .. ssie
	local robilyzrobily = choose_else(args,"robiły","zrobiły",robilazrobila_1 .. "y")
	local ssie_robilyzrobily = ssie .. " " .. robilyzrobily
	local robilomzrobilom = choose_else(args,"robiłom","zrobiłom",robilazrobila_1 .. "om")
	local robiloszrobilos = choose_else(args,"robiłoś","zrobiłoś",robilazrobila_1 .. "oś")
	local robilozrobilo = choose_else(args,"robiło","zrobiło",robilazrobila_1 .. "o")
	local ssie_robilozrobilo = ssie .. " " .. robilozrobilo
	local robzrob = choose(args,"rób","zrób")
	
	local dokonany = ( param(args["dokonany"]) == "tak" )

    -- koniugacja	
	-- {{#ifeq:*{{{koniugacja|}}}|*||[[Aneks:Język polski - koniugacja {{{koniugacja}}}|koniugacja {{{koniugacja}}}]] }}
	
	--[[
	-- bezokolicznik
	entity=add_form_with_gfs(entity, robiczrobic .. ssie, "bezokolicznik")
	
	-- czas przyszły prosty lub teraźniejszy
	if (robiezrobie .. choose(args,"robisz","zrobisz") .. robizrobi) ~= "" then
		local czas = ( dokonany and "czas przyszły prosty" or "czas teraźniejszy" ) .. ","
		entity=add_form_with_gfs(entity,robiezrobie .. ssie , czas .. "1oslp")
		entity=add_form_with_gfs(entity,choose_else(args,"robisz","zrobisz",robizrobi .. "sz") .. ssie , czas .. "2oslp")
		entity=add_form_with_gfs(entity,robizrobi .. ssie , czas .. "3oslp")
		entity=add_form_with_gfs(entity,choose_else(args,"robimy","zrobimy",robizrobi .. "my") .. ssie , czas .. "1oslm")
		entity=add_form_with_gfs(entity,choose_else(args,"robicie","zrobicie",robizrobi .. "cie") .. ssie , czas .. "2oslm")
		entity=add_form_with_gfs(entity,choose(args,"robią","zrobią") .. ssie , czas .. "3oslm")
	end

	-- czas przeszły
	-- męski
		entity=add_form_with_gfs(entity,robilemzrobilem .. ssie,    "czas przeszły,m,1oslp")
		entity=add_form_with_gfs(entity,robileszrobiles_ssie,       "czas przeszły,m,2oslp")
		entity=add_form_with_gfs(entity,robilzrobil .. ssie,        "czas przeszły,m,3oslp")
	-- męskoosobowy
		entity=add_form_with_gfs(entity,robilismyzrobilismy_ssie,   "czas przeszły,mos,1oslm")
		entity=add_form_with_gfs(entity,robilisciezrobiliscie_ssie, "czas przeszły,mos,2oslm")
		entity=add_form_with_gfs(entity,robilizrobili .. ssie,      "czas przeszły,mos,3oslm")
	-- żeński
		entity=add_form_with_gfs(entity,robilamzrobilam_ssie,       "czas przeszły,f,1oslp")
		entity=add_form_with_gfs(entity,robilaszrobilas_ssie,       "czas przeszły,f,2oslp")
		entity=add_form_with_gfs(entity,robilazrobila .. ssie,      "czas przeszły,f,3oslp")
	-- niemęskoosobowy
		entity=add_form_with_gfs(entity,robilysmyzrobilysmy_ssie,   "czas przeszły,nmos,1oslm")
		entity=add_form_with_gfs(entity,robilysciezrobilyscie_ssie, "czas przeszły,nmos,2oslm")
		entity=add_form_with_gfs(entity,robilyzrobily .. ssie,      "czas przeszły,nmos,3oslm")
	-- nijaki
		if robilomzrobilom ~= "" then
			entity=add_form_with_gfs(entity,robilomzrobilom .. ssie,"czas przeszły,n,1oslp,forma potencjalna")
		end
		if robiloszrobilos ~= "" then
			entity=add_form_with_gfs(entity,robiloszrobilos .. ssie,"czas przeszły,n,2oslp,forma potencjalna")
		end
		entity=add_form_with_gfs(entity,robilozrobilo .. ssie,      "czas przeszły,n,3oslp")

	-- tryb rozkazujący
	if (robzrob .. choose(args,"róbcie","zróbcie")) ~= "" then
		entity=add_form_with_gfs(entity,choose_else(args,"niech robię","niech zrobię","niech" .. ssie .. " " .. robiezrobie),"tryb rozkazujący,1oslp")
		entity=add_form_with_gfs(entity,robzrob .. ssie,"tryb rozkazujący,2oslp")
		entity=add_form_with_gfs(entity,choose_else(args,"niech robi","niech zrobi","niech" .. ssie .. " " .. robizrobi),"tryb rozkazujący,3oslp")
		entity=add_form_with_gfs(entity,choose_else(args,"róbmy","zróbmy",robzrob .. "my") .. ssie,"tryb rozkazujący,1oslm")
		entity=add_form_with_gfs(entity,choose_else(args,"róbcie","zróbcie",robzrob .. "cie") .. ssie,"tryb rozkazujący,2oslm")
		entity=add_form_with_gfs(entity,choose_else(args,"niech robią","niech zrobią","niech" .. ssie .. " " .. robiazrobia),"tryb rozkazujący,3oslm")
	end
	]]
	
	-- local temp = choose_else(args,"będę robił","będą robili","*") and "" or ""
	-- temp = dokonany and "" else temp
	-- {{#ifeq:
	--         *{{{robienie|{{{zrobienie|}}}}}}{{{zrobiwszy|}}}{{{robiąc|}}}{{{robiony|{{{zrobiony|}}}}}}
	--          {{{robiłbym|{{{zrobiłbym|robilzrobil}}}}}}{{{robiliby|{{{zrobiliby}}}}}}robzrob{{{robiono|{{{zrobiono|}}}}}}
	--          temp|*||
	-- <tr><td colspan="8" style="padding:0;border:none;">
	-- <table class="wikitable odmiana collapsible collapsed" style="width:100%; margin:5px 0 0 0;">
	-- <tr><th colspan="8" style="font-weight:normal;">&nbsp;pozostałe formy</th></tr>
	-- {{#ifeq:{{{dokonany}}}|tak||{{#ifeq:*{{{będę robił|{{{będą robili|*}}}}}}|*||
	--   <tr><th rowspan="3">{{{czas przyszły|[[czas przyszły]]}}}</th><th>''m''</th><td>{{{będę robił|[[być|będę]] .. ssie_robilzrobil,<br/>[[być|będę]] .. ssie_robiczrobic}}}</td><td>{{{będziesz robił|[[być|będziesz]] .. ssie_robilzrobil,<br/>[[być|będziesz]] .. ssie_robiczrobic}}}</td><td>{{{będzie robił|[[być|będzie]] .. ssie_robilzrobil,<br/>[[być|będzie]] .. ssie_robiczrobic}}}</td><td>{{{będziemy robili|[[być|będziemy]] .. ssie_robilizrobili,<br/>[[być|będziemy]] .. ssie_robiczrobic}}}</td><td>{{{będziecie robili|[[być|będziecie]] .. ssie_robilizrobili,<br/>[[być|będziecie]] .. ssie_robiczrobic}}}</td><td>{{{będą robili|[[być|będą]] .. ssie_robilizrobili,<br/>[[być|będą]] .. ssie_robiczrobic}}}</td></tr>
	--   <tr><th>''ż''</th><td>{{{będę robiła|[[być|będę]] .. ssie_robilazrobila,<br/>[[być|będę]] .. ssie_robiczrobic}}}</td><td>{{{będziesz robiła|[[być|będziesz]] .. ssie_robilazrobila,<br/>[[być|będziesz]] .. ssie_robiczrobic}}}</td><td>{{{będzie robiła|[[być|będzie]] .. ssie_robilazrobila,<br/>[[być|będzie]] .. ssie_robiczrobic}}}</td><td rowspan="2">{{{będziemy robiły|[[być|będziemy]] .. ssie_robilyzrobily,<br/>[[być|będziemy]] .. ssie_robiczrobic}}}</td><td rowspan="2">{{{będziecie robiły|[[być|będziecie]] .. ssie_robilyzrobily,<br/>[[być|będziecie]] .. ssie_robiczrobic}}}</td><td rowspan="2">{{{będą robiły|[[być|będą]] .. ssie_robilyzrobily,<br/>[[być|będą]] .. ssie_robiczrobic}}}</td></tr>
	--   <tr><th>''n''</th><td>{{potencjalnie|{{{będę robiło|[[być|będę]] .. ssie_robilozrobilo,<br/>[[być|będę]] .. ssie_robiczrobic}}}}}</td><td>{{potencjalnie|{{{będziesz robiło|[[być|będziesz]] .. ssie_robilozrobilo,<br/>[[być|będziesz]] .. ssie_robiczrobic}}}}}</td><td>{{{będzie robiło|[[być|będzie]] .. ssie_robilozrobilo,<br/>[[być|będzie]] .. ssie_robiczrobic}}}</td></tr>
	-- }}}}
	-- {{#ifeq:{{{brak zaprzeszłego|nie}}}|nie|
	--   <tr><th rowspan="3">{{{czas zaprzeszły|[[czas zaprzeszły]]}}}</th><th>''m''</th><td>{{{robiłem był|{{{zrobiłem był|robilemzrobilem .. ssie [[być|był]]}}}}}}</td><td>{{{robiłeś był|{{{zrobiłeś był|robileszrobiles_ssie .. [[być|był]]}}}}}}</td><td>{{{robił był|{{{zrobił był|robilzrobil .. ssie [[być|był]]}}}}}}</td><td>{{{robiliśmy byli|{{{zrobiliśmy byli|robilismyzrobilismy_ssie .. [[być|byli]]}}}}}}</td><td>{{{robiliście byli|{{{zrobiliście byli|robilisciezrobiliscie_ssie .. [[być|byli]]}}}}}}</td><td>{{{robili byli|{{{zrobili byli|robilizrobili .. ssie [[być|byli]]}}}}}}</td></tr>
	--   <tr><th>''ż''</th><td>{{{robiłam była|{{{zrobiłam była|robilamzrobilam_ssie .. " " .. [[być|była]]}}}}}}</td><td>{{{robiłaś była|{{{zrobiłaś była|robilaszrobilas_ssie .. " " .. [[być|była]]}}}}}}</td><td>{{{robiła była|{{{zrobiła była|{{{robiła|{{{zrobiła|{{{zrobiła}}}}}}}}} .. ssie [[być|była]]}}}}}}</td><td rowspan="2">{{{robiłyśmy były|{{{zrobiłyśmy były|robilysmyzrobilysmy_ssie .. " " .. [[być|były]]}}}}}}</td><td rowspan="2">{{{robiłyście były|{{{zrobiłyście były|robilysciezrobilyscie_ssie .. " " .. [[być|były]]}}}}}}</td><td rowspan="2">{{{robiły były|{{{zrobiły były|robilyzrobily .. ssie [[być|były]]}}}}}}</td></tr>
	--   <tr><th>''n''</th><td>{{potencjalnie|{{{robiłom było|{{{zrobiłom było|robilomzrobilom .. ssie [[być|było]]}}}}}}}}</td><td>{{potencjalnie|{{{robiłoś było|{{{zrobiłoś było|robiloszrobilos .. ssie .. " " .. [[być|było]]}}}}}}}}</td><td>{{{robiło było|{{{zrobiło było|robilozrobilo .. ssie [[być|było]]}}}}}}</td></tr>
	-- |}}
	-- {{#ifeq:*{{{robiono|{{{zrobiono|}}}}}}|*||
	--   <tr><th colspan="2">{{{forma bezosobowa czasu przeszłego|[[forma bezosobowa]] [[czas przeszły|czasu przeszłego]]}}}</th><td colspan="6">{{{robiono|{{{zrobiono}}}}}} .. ssie</td></tr>
	-- }}
	-- {{#ifeq:*{{{robiłbym|{{{zrobiłbym|robilzrobil}}}}}} .. robilizrobili|*||
	--   <tr><th rowspan="3">{{{tryb przypuszczający|[[tryb przypuszczający]]}}}</th><th>''m''</th><td width="14%">{{{robiłbym|{{{zrobiłbym|robilzrobil .. "bym"{{#ifeq:*{{{się|}}}|*||&nbsp;{{{się}}}}},<br/>[[być|byłbym]] .. ssie_robilzrobil}}}}}}</td><td width="14%">{{{robiłbyś|{{{zrobiłbyś|robilzrobil .. "byś"{{#ifeq:*{{{się|}}}|*||&nbsp;{{{się}}}}},<br/>[[być|byłbyś]] .. ssie_robilzrobil}}}}}}</td><td width="14%">{{{robiłby|{{{zrobiłby|robilzrobil .. "by"{{#ifeq:*{{{się|}}}|*||&nbsp;{{{się}}}}},<br/>[[być|byłby]] .. ssie_robilzrobil}}}}}}</td><td width="14%">{{{robilibyśmy|{{{zrobilibyśmy|robilizrobili .. "byśmy"{{#ifeq:*{{{się|}}}|*||&nbsp;{{{się}}}}},<br/>[[być|bylibyśmy]] .. ssie_robilizrobili}}}}}}</td><td width="14%">{{{robilibyście|{{{zrobilibyście|robilizrobili .. "byście"{{#ifeq:*{{{się|}}}|*||&nbsp;{{{się}}}}},<br/>[[być|bylibyście]] .. ssie_robilizrobili}}}}}}</td><td width="14%">{{{robiliby|{{{zrobiliby|robilizrobili .. "by"{{#ifeq:*{{{się|}}}|*||&nbsp;{{{się}}}}},<br/>[[być|byliby]] .. ssie_robilizrobili}}}}}}</td></tr>
	--   <tr><th>''ż''</th><td>{{{robiłabym|{{{zrobiłabym|robilazrobila .. "bym"{{#ifeq:*{{{się|}}}|*||&nbsp;{{{się}}}}},<br/>[[być|byłabym]] .. ssie_robilazrobila}}}}}}</td><td>{{{robiłabyś|{{{zrobiłabyś|robilazrobila .. "byś"{{#ifeq:*{{{się|}}}|*||&nbsp;{{{się}}}}},<br/>[[być|byłabyś]] .. ssie_robilazrobila}}}}}}</td><td>{{{robiłaby|{{{zrobiłaby|robilazrobila .. "by"{{#ifeq:*{{{się|}}}|*||&nbsp;{{{się}}}}},<br/>[[być|byłaby]] .. ssie_robilazrobila}}}}}}</td><td rowspan="2">{{{robiłybyśmy|{{{zrobiłybyśmy|robilyzrobily .. "byśmy"{{#ifeq:*{{{się|}}}|*||&nbsp;{{{się}}}}},<br/>[[być|byłybyśmy]] .. ssie_robilyzrobily}}}}}}</td><td rowspan="2">{{{robiłybyście|{{{zrobiłybyście|robilyzrobily .. "byście"{{#ifeq:*{{{się|}}}|*||&nbsp;{{{się}}}}},<br/>[[być|byłybyście]] .. ssie_robilyzrobily}}}}}}</td><td rowspan="2">{{{robiłyby|{{{zrobiłyby|robilyzrobily .. "by"{{#ifeq:*{{{się|}}}|*||&nbsp;{{{się}}}}},<br/>[[być|byłyby]] .. ssie_robilyzrobily}}}}}}</td></tr>
	--   <tr><th>''n''</th><td>{{potencjalnie|{{{robiłobym|{{{zrobiłobym|robilozrobilo .. "bym"{{#ifeq:*{{{się|}}}|*||&nbsp;{{{się}}}}},<br/>[[być|byłobym]] .. ssie_robilozrobilo}}}}}}}}</td><td>{{potencjalnie|{{{robiłobyś|{{{zrobiłobyś|robilozrobilo .. "byś"{{#ifeq:*{{{się|}}}|*||&nbsp;{{{się}}}}},<br/>[[być|byłobyś]] .. ssie_robilozrobilo}}}}}}}}</td><td>{{{robiłoby|{{{zrobiłoby|robilozrobilo .. "by"{{#ifeq:*{{{się|}}}|*||&nbsp;{{{się}}}}},<br/>[[być|byłoby]] .. ssie_robilozrobilo}}}}}}</td></tr>
	-- }}
	-- {{#ifeq:*{{{robiąc|}}}|*||
	--   <tr><th rowspan="3">{{{imiesłów przymiotnikowy czynny|[[imiesłów przymiotnikowy czynny]]}}}</th><th>''m''</th><td colspan="6">{{{robiący|{{{robiąc}}}y{{#ifeq:*{{{się|}}}|*||&nbsp;{{{się}}}}}, nie{{{robiąc}}}y .. ssie}}}</td></tr>
	--   <tr><th>''ż''</th><td colspan="3">{{{robiąca|{{{robiąc}}}a{{#ifeq:*{{{się|}}}|*||&nbsp;{{{się}}}}}, nie{{{robiąc}}}a .. ssie}}}</td><td rowspan="2" colspan="3">{{{robiące|{{{robiąc}}}e{{#ifeq:*{{{się|}}}|*||&nbsp;{{{się}}}}}, nie{{{robiąc}}}e .. ssie}}}</td></tr>
	--   <tr><th>''n''</th><td colspan="3">{{{robiące|{{{robiąc}}}e{{#ifeq:*{{{się|}}}|*||&nbsp;{{{się}}}}}, nie{{{robiąc}}}e .. ssie}}}</td></tr>
	-- }}
	-- {{#ifeq:*{{{robiony|{{{zrobiony|}}}}}}{{{robieni|{{{zrobieni|}}}}}}|*||
	--   <tr><th rowspan="3">{{#ifeq:{{{dokonany}}}|tak|{{{imiesłów przymiotnikowy przeszły|[[imiesłów przymiotnikowy przeszły]]}}}|{{{imiesłów przymiotnikowy bierny|[[imiesłów przymiotnikowy bierny]]}}}}}</th><th>''m''</th><td colspan="3">{{{robiony|{{{zrobiony}}}}}}</td><td colspan="3">{{{robieni|{{{zrobieni}}}}}}</td></tr>
	--   <tr><th>''ż''</th><td colspan="3">{{{robiona|{{{zrobiona|{{utnij końcówkę|{{{robiony|{{{zrobiony}}}}}}|1}}a}}}}}}</td><td rowspan="2" colspan="3">{{{robione lm|{{{zrobione lm|{{{robione|{{{zrobione|{{utnij końcówkę|{{{robiony|{{{zrobiony}}}}}}|1}}e}}}}}}}}}}}}</td></tr>
	--   <tr><th>''n''</th><td colspan="3">{{{robione|{{{zrobione|{{utnij końcówkę|{{{robiony|{{{zrobiony}}}}}}|1}}e}}}}}}</td></tr>
	-- }}
	-- {{#ifeq:*{{{robiąc|}}}|*||
	--   <tr><th colspan="2">{{{imiesłów przysłówkowy współczesny|[[imiesłów przysłówkowy współczesny]]}}}</th><td colspan="6">{{{robiąc}}}{{#ifeq:*{{{się|}}}|*||&nbsp;{{{się}}}}}, [[nie]] {{{robiąc}}} .. ssie</td></tr>
	-- }}
	-- {{#ifeq:*{{{zrobiwszy|}}}|*||
	--   <tr><th colspan="2">{{{imiesłów przysłówkowy uprzedni|[[imiesłów przysłówkowy uprzedni]]}}}</th><td colspan="6">{{{zrobiwszy}}} .. ssie</td></tr>
	-- }}
	-- {{#ifeq:*{{{robienie|{{{zrobienie|}}}}}}{{{robienie2|{{{zrobienie2|}}}}}}|*||
	--   <tr><th colspan="2">{{{rzeczownik odczasownikowy|[[rzeczownik odczasownikowy]]}}}</th><td colspan="6">{{{robienie2|{{{zrobienie2|[[{{{robienie|{{{zrobienie}}}}}}]]{{#ifeq:*{{{się|}}}|*||&nbsp;{{{się}}}}}, [[nie{{{robienie|{{{zrobienie}}}}}}]] .. ssie}}}}}}</td></tr>
	-- }}
	-- </table></tr></td>}}

	return entity
	
end

function p.verb(word,args)
	
	if type(word)=='table' then
		if word.parent and word.parent.args and word.parent.args[1] then
			word=word.parent
		end
		word,args = word.args[1],word.args
	end

    word=word:gsub("[\r\n]+","")
    word=trim(word)
    
	local entity=lb.newLexeme("Q809", "Q24905", text({pl=trim(word .. " " .. param(args["się"]))}))

	entity = verb1(entity,word,args)
	
	return lb.Export(entity)
	
end

return p