Module:Lexeme-ms

From Wikidata
Jump to navigation Jump to search
Lua
CodeDiscussionLinksLink count SubpagesDocumentationTestsResultsSandboxLive code All modules

Documentation for this module may be created at Module:Lexeme-ms/doc

Code

local lb = require('Module:LexemeBuilder2')
local p = {}
local text = lb.MultilingualText

-- nomina bentuk kata dasar. Jangan gunakan untuk nomina bentuk turunan
function p.noun(word,sense,claim)
	word,sense,claim=word.args[1],word.args[2],word.args[3]
	local entity=lb.newLexeme("Q9240", "Q1084", text({ms=word}))
	entity=lb.addForm(entity,lb.newForm(text({ms=word}),{"Q210523","Q106644026"}))
	entity=lb.addForm(entity,lb.newForm(text({ms=word}),"Q110786"))
	entity=lb.addForm(entity,lb.newForm(text({ms=word.."-"..word}),"Q146786"))
	entity=lb.addForm(entity,lb.newForm(text({ms=word.."kah"}),"Q12021746"))
	entity=lb.addForm(entity,lb.newForm(text({ms=word.."lah"}),"Q109267112"))
	entity=lb.addForm(entity,lb.newForm(text({ms=word.."ku"}),"Q71470598"))
	entity=lb.addForm(entity,lb.newForm(text({ms=word.."mu"}),"Q71470837"))
	entity=lb.addForm(entity,lb.newForm(text({ms=word.."nya"}),"Q71470909"))
	entity=lb.addForm(entity,lb.newForm(text({ms=word.."kukah"}),{"Q71470598","Q12021746"}))
	entity=lb.addForm(entity,lb.newForm(text({ms=word.."mukah"}),{"Q71470837","Q12021746"}))
	entity=lb.addForm(entity,lb.newForm(text({ms=word.."nyakah"}),{"Q71470909","Q12021746"}))
	entity=lb.addForm(entity,lb.newForm(text({ms=word.."kulah"}),{"Q71470598","Q109267112"}))
	entity=lb.addForm(entity,lb.newForm(text({ms=word.."mulah"}),{"Q71470837","Q109267112"}))
	entity=lb.addForm(entity,lb.newForm(text({ms=word.."nyalah"}),{"Q71470909","Q109267112"}))
	entity=lb.addSense(entity,lb.newSense(text({ms=sense})))
	return lb.Export(entity)
end

-- verba bentuk kata dasar. Jangan gunakan untuk verba bentuk turunan
function p.verb(word,sense,claim)
	word,sense,claim=word.args[1],word.args[2],word.args[3]
	local entity=lb.newLexeme("Q9240", "Q24905", text({ms=word}))
	entity=lb.addForm(entity,lb.newForm(text({ms=word}),"Q210523"))
	entity=lb.addForm(entity,lb.newForm(text({ms=word.."nya"}),"Q71470909"))
	entity=lb.addForm(entity,lb.newForm(text({ms=word.."kah"}),"Q12021746"))
	entity=lb.addForm(entity,lb.newForm(text({ms=word.."lah"}),"Q109267112"))
	entity=lb.addForm(entity,lb.newForm(text({ms=word.."nyakah"}),{"Q71470909","Q12021746"}))
	entity=lb.addForm(entity,lb.newForm(text({ms=word.."nyalah"}),{"Q71470909","Q109267112"}))
	entity=lb.addSense(entity,lb.newSense(text({ms=sense})))
	return lb.Export(entity)
end

-- adjektiva bentuk kata dasar. Jangan gunakan untuk adjektiva bentuk turunan
function p.adj(word,sense,claim)
	word,sense,claim=word.args[1],word.args[2],word.args[3]
	local entity=lb.newLexeme("Q9240", "Q34698", text({ms=word}))
	entity=lb.addForm(entity,lb.newForm(text({ms=word}),"Q210523"))
	entity=lb.addForm(entity,lb.newForm(text({id="ter"..word}),"Q210523")) --teramai, terendah, 'r' luluh (ter- -> te-)
	entity=lb.addSense(entity,lb.newSense(text({ms=sense})))
	return lb.Export(entity)
end

-- adverbia bentuk kata dasar. Jangan gunakan untuk adverbia bentuk turunan
function p.adv(word,sense,claim)
	word,sense,claim=word.args[1],word.args[2],word.args[3]
	local entity=lb.newLexeme("Q9240", "Q380057", text({ms=word}))
	entity=lb.addForm(entity,lb.newForm(text({ms=word}),"Q210523"))
	entity=lb.addSense(entity,lb.newSense(text({ms=sense})))
	return lb.Export(entity)
end

-- partikula
function p.part(word,sense,claim)
	word,sense,claim=word.args[1],word.args[2],word.args[3]
	local entity=lb.newLexeme("Q9240", "Q184943", text({ms=word}))
	entity=lb.addForm(entity,lb.newForm(text({ms=word}),"Q210523"))
	entity=lb.addSense(entity,lb.newSense(text({ms=sense})))
	return lb.Export(entity)
end

-- numeralia
function p.num(word,sense,claim)
	word,sense,claim=word.args[1],word.args[2],word.args[3]
	local entity=lb.newLexeme("Q9240", "Q63116", text({ms=word}))
	entity=lb.addForm(entity,lb.newForm(text({ms=word}),"Q210523"))
	entity=lb.addSense(entity,lb.newSense(text({ms=sense})))
	return lb.Export(entity)
end

-- pronomina
function p.pron(word,sense,claim)
	word,sense,claim=word.args[1],word.args[2],word.args[3]
	local entity=lb.newLexeme("Q9240", "Q36224", text({ms=word}))
	entity=lb.addForm(entity,lb.newForm(text({ms=word}),"Q210523"))
	entity=lb.addSense(entity,lb.newSense(text({ms=sense})))
	return lb.Export(entity)
end

-- preposisi
function p.prep(word,sense,claim)
	word,sense,claim=word.args[1],word.args[2],word.args[3]
	local entity=lb.newLexeme("Q9240", "Q4833830", text({ms=word}))
	entity=lb.addForm(entity,lb.newForm(text({ms=word}),"Q210523"))
	entity=lb.addSense(entity,lb.newSense(text({ms=sense})))
	return lb.Export(entity)
end

-- konjungsi
function p.konj(word,sense,claim)
	word,sense,claim=word.args[1],word.args[2],word.args[3]
	local entity=lb.newLexeme("Q9240", "Q36484", text({ms=word}))
	entity=lb.addForm(entity,lb.newForm(text({ms=word}),"Q210523"))
	entity=lb.addSense(entity,lb.newSense(text({ms=sense})))
	return lb.Export(entity)
end

-- interjeksi
function p.int(word,sense,claim)
	word,sense,claim=word.args[1],word.args[2],word.args[3]
	local entity=lb.newLexeme("Q9240", "Q83034", text({ms=word}))
	entity=lb.addForm(entity,lb.newForm(text({ms=word}),"Q210523"))
	entity=lb.addSense(entity,lb.newSense(text({ms=sense})))
	return lb.Export(entity)
end

-- artikula
function p.art(word,sense,claim)
	word,sense,claim=word.args[1],word.args[2],word.args[3]
	local entity=lb.newLexeme("Q9240", "Q103184", text({ms=word}))
	entity=lb.addForm(entity,lb.newForm(text({ms=word}),"Q210523"))
	entity=lb.addSense(entity,lb.newSense(text({ms=sense})))
	return lb.Export(entity)
end

-- interogativa
function p.intero(word,sense,claim)
	word,sense,claim=word.args[1],word.args[2],word.args[3]
	local entity=lb.newLexeme("Q9240", "Q2304610", text({ms=word}))
	entity=lb.addForm(entity,lb.newForm(text({ms=word}),"Q210523"))
	entity=lb.addSense(entity,lb.newSense(text({ms=sense})))
	return lb.Export(entity)
end


-- tambah makna baru
function p.sense(word,lc,sense)
	word,lc,sense=word.args[1],word.args[2],word.args[3]
	--switch lexical category
	if lc=='noun' then lc="Q1084"
    elseif lc=='verb' then lc="Q24905"
    elseif lc=='adj' then lc="Q34698"
    elseif lc=='adv' then lc="Q380057"
    elseif lc=='part' then lc="Q184943"
    elseif lc=='num' then lc="Q63116"
    elseif lc=='pron' then lc="Q36224"
    elseif lc=='prep' then lc="Q4833830"
    elseif lc=='konj' then lc="Q36484"
    elseif lc=='int' then lc="Q83034"
    elseif lc=='art' then lc="Q103184"
    elseif lc=='intero' then lc="Q2304610"
    end

	local entity=lb.newLexeme("Q9240", lc, text({ms=word}))
	entity=lb.addSense(entity,lb.newSense(text({ms=sense})))
	return lb.Export(entity)
end

-- tambah bentukan baru
function p.form(word,lc,form)
	word,lc,form=word.args[1],word.args[2],word.args[3]
	--switch lexical category
	if lc=='noun' then lc="Q1084"
    elseif lc=='verb' then lc="Q24905"
    elseif lc=='adj' then lc="Q34698"
    elseif lc=='adv' then lc="Q380057"
    elseif lc=='part' then lc="Q184943"
    elseif lc=='num' then lc="Q63116"
    elseif lc=='pron' then lc="Q36224"
    elseif lc=='prep' then lc="Q4833830"
    elseif lc=='konj' then lc="Q36484"
    elseif lc=='int' then lc="Q83034"
    elseif lc=='art' then lc="Q103184"
    elseif lc=='intero' then lc="Q2304610"
    end
    
	local entity=lb.newLexeme("Q9240", lc, text({ms=word}))
	entity=lb.addForm(entity,lb.newForm(text({id=form}),"Q210523"))
	return lb.Export(entity)
end

return p