Module:moh-noun

Hello, you have come here looking for the meaning of the word Module:moh-noun. In DICTIOUS you will not only get to know all the dictionary meanings for the word Module:moh-noun, but we will also tell you about its etymology, its characteristics and you will know how to say Module:moh-noun in singular and plural. Everything you need to know about the word Module:moh-noun you have here. The definition of the word Module:moh-noun will help you to be more precise and correct when speaking or writing your texts. Knowing the definition ofModule:moh-noun, as well as those of other words, enriches your vocabulary and provides you with more and better linguistic resources.

Module to create Mohawk conjugation tables. Right now it's rudimentary, and needs to be passed the stem with the accent already there (so it can't deal with short nouns) It also currently only makes the Kahnawake forms

References

  • Akwiratékha’ Martin (2018) Tekawennahsonterónnion - Kanien’kéha Morphology, Kahnawà:ke: Kanien’kehá:ka Onkwawén:na Raotitióhkwa Language and Cultural Center

local export = {}

local div_top = [=[
<div class="NavFrame" style="width: 30em;">
<div class="NavHead" style="background: #CCCCFF; text-align: left;">Possessive forms of <i lang="moh">PAGENAME</i></div>
<div class="NavContent">
]=]

local div_bottom = [=[</div>
</div>]=]

local poss_table = [=[
{| class="wikitable" style="width:30em"
|+ {TYPE}
|-
! Person !! Sing. !! Dual !! Plur.
|-
| 1st || {1|s} || {1|d} || {1|p}
|-
| 2nd || {2|s} || {2|d} || {2|p}
|-
| 3rd 
|| {3|m|s}  <br> {3|f//impers|s} <br> {3|f//n|s}
|colspan=2 style="text-align: center;"|  {3|m|d//p} <br> {3|f|d//p}
|}]=]

local lang = require("Module:languages").getByCode("moh")
local m_string_utilities = require("Module:string utilities")
local m_links = require("Module:links")


local rfind = mw.ustring.find
local rsubn = mw.ustring.gsub
local ulower = mw.ustring.lower
local usub = mw.ustring.sub


local function rsub(term, foo, bar)
	local retval = rsubn(term, foo, bar)
	return retval
end

local function penultimate(form)
	return form
end

local form_names = {"1|s", "2|s", "3|m|s", "3|f//impers|s", "3|f//n|s", "1|d", "2|d", "1|p", "2|p", "3|m|d//p", "3|f|d//p"}
local poss = {
	 = {"ak", "sa", "rao", "ako", "ao", "onkeni",  "seni", "onkwa", "sewa", "raoti", "aoti"},
	 = {"ake", "sa", "rao", "ako", "ao", "onkeni",  "seni", "onkwa", "sewa", "raoti", "aoti"},
	 = {"akwa", "sa", "rao", "ako", "ao", "ontia", "tsa", "onkwa", "sewa", "raona", "aona"},
	 = {"akw", "s", "raw", "akaw", "aw", "onken", "sen", "onkw", "sew", "raon", "aon"},
	 = {"ak", "s", "ra", "aka", "a", "onken", "sen", "onti", "ts", "raon", "aon"},
	 = {"aki", "sen", "rao", "ako", "ao", "onkeni", "seni", "onkwen", "sewen", "raoti", "aoti"},
	 = {"at", "sen", "rao", "ako", "ao", "onkeni", "seni", "onkwen", "sewen", "raoti", "aoti"},
}

local neg_poss = {
	 = {"tewak", "tesa", "teho", "teio", "teiako", "teionkeni",  "teseni", "teionkwa", "tesewa", "tehoti", "teioti"},
	 = {"tewake", "tesa", "teho", "teio", "teiako", "teionkeni",  "teseni", "teionkwa", "tesewa", "tehoti", "teioti"},
	 = {"tewaka", "tesa", "teho", "teio", "teiako", "teiontia",  "tetsa", "teionkwa", "tesewa", "tehona", "teiona"},
	 = {"tewak", "tes", "tehaw", "teiaw", "teiakaw", "teionken",  "tesen", "teionkw", "tesew", "tehon", "teion"},
	 = {"tewak", "tes", "teha", "teia", "teiaka", "teionken",  "tesen", "teionti", "tets", "tehon", "teion"},
	 = {"tewat", "tesa", "teho", "teio", "teiako", "teionkeni",  "teseni", "teionkwa", "tesewa", "tehoti", "teioti"}
}

local function build_table(PAGENAME, forms, neg_forms)
	full_table = rsub(div_top, "PAGENAME", PAGENAME) .. "\n" .. m_string_utilities.format(poss_table, forms) .. "\n" .. m_string_utilities.format(poss_table, neg_forms) .. div_bottom
	return full_table
end

function export.show(frame)
	PAGENAME = mw.title.getCurrentTitle().text
	text = frame.args 
	ending = frame.args
	-- control whether links get generated
	links = frame.args
	if links ~= nil and links == "true" then
		links = true
	else
		links = false
	end
	-- figure out the stem, and cut off initial vowel
	stem = ulower(text)
	init = usub(stem,1,1)
	second = usub(stem,2,2)
	class = nil
	if init == "a" then
		class = "A"
		stem = usub(stem,2,-1)
	elseif init == "e" then class = "E"
	elseif init == "o" then	class = "O"
	elseif init == "i" then
		if second == "a" or second == "e" or second == "o" then class = "Y"
		else 
			class = "I"
			stem = ulower(usub(stem,2,-1))
		end
	elseif init == "n" or init == "r" or init == "w" or init == "’" then class = "R"
	else class = "C"
	end
	prefixes = poss
	neg_prefixes = neg_poss
	local forms = {}
	local neg_forms = {}
	forms = "Possessive"
	forms = PAGENAME
	neg_forms = "Negative possessive"
	neg_forms = PAGENAME
	for i = 1,11 do
		form =  prefixes .. stem .. ending
		neg_form = neg_prefixes .. stem .. ending
		if links then
			link = m_links.full_link({term = form, lang = lang, accel = {form = form_names .. "|poss"}}, "term", false)
			forms] = link
			neg_link = m_links.full_link({term = form, lang = lang, accel = {form = form_names .. "|neg|poss"}}, "term", false)
			neg_forms] = neg_link
		else
			forms] = form
			neg_forms] = neg_form
		end
	end
	return build_table(PAGENAME ,forms, neg_forms)
end

return export