local p = {}

---Cho ra danh sách các con chữ Nôm ứng với định danh từ vị được cho vào.
-- =p.demoticCharacters(mw.getCurrentFrame():newChild{args={"L1867"}})
function p.demoticCharacters(frame)
	local template = frame:getParent()
	local lexemeID = frame.args[1] or (template and template.args[1])
	local lexeme = mw.wikibase.getEntity(lexemeID)
	
	local translationLexemeIDs = {}
	for i, sense in ipairs(lexeme:getSenses()) do
		for j, claim in ipairs(sense.claims.P5972) do
			local translationSenseID = claim.mainsnak.datavalue.value.id
			local translationLexemeID = (mw.wikibase.lexeme.splitLexemeId(translationSenseID))
			translationLexemeIDs[translationLexemeID] = true
		end
	end
	
	local demoticCharacters = {}
	for lexemeID, _ in pairs(translationLexemeIDs) do
		local lexeme = mw.wikibase.getEntity(lexemeID)
		if lexeme:getLanguage() == "Q875344" then
			local lemma = lexeme:getLemma("vi-x-Q875344")
			demoticCharacters[lemma] = true
		end
	end
	
	local flattenedDemoticCharacters = {}
	for character, _ in pairs(demoticCharacters) do
		table.insert(flattenedDemoticCharacters, character)
	end
	return mw.text.listToText(flattenedDemoticCharacters)
end

return p