Module:Sandbox/Nathan fraignt/Wikidata explained

local p = p.getPersonDataTable = function(frame) local getName = function (entityId) local givenNameId = mw.wikibase.getBestStatements(entityId, "P735")[1].mainsnak.datavalue.value.id or "" local givenName = mw.wikibase.getLabel(givenNameId) or "" local lastNameId = mw.wikibase.getBestStatements(entityId, "P734")[1].mainsnak.datavalue.value.id or "" local lastName = mw.wikibase.getLabel(lastNameId) or "" return givenName .. " " .. lastName end local getData = function (entityId, propId) local dataTable = mw.wikibase.getBestStatements(entityId, propId) local dataString = "" for k,v in pairs(dataTable) do local dataId = mw.wikibase.getSitelink(v.mainsnak.datavalue.value.id) or mw.wikibase.getLabel(v.mainsnak.datavalue.value.id) or "" dataString = dataString .. "" .. dataId .. "" .. "
" end return dataString end local createTable = function(entityId) local tableString = '

" local tableLinePrefix = "\n |- \n" tableString = tableString .. tableLinePrefix .. "| Name || " .. getName(entityId) tableString = tableString .. tableLinePrefix .. "| Place of Birth || " .. getData(entityId, "P19") tableString = tableString .. tableLinePrefix .. "| Occupation || " .. getData(entityId, "P106") tableString = tableString .. tableLinePrefix .. "| Spouse || " .. getData(entityId, "P26") return tableString .. tableStringEnd end entityId = frame.args[1] return createTable(entityId) endreturn p