وحدة:Wikibase

---------- Module:Wikibase ----------------local p = {}function p.getEntityObject(id)if not mw.wikibase then return nil endentity = mw.wikibase.getEntityObject(id)return entityend-- Return the item ID of the item linked to the current page.function p.id(frame)if not mw.wikibase then return nil endentity = mw.wikibase.getEntityObject()if entity == nil thenreturn "no entity"endreturn entity.idend-- Return the label of a given data item, or of connected page-- if no argument is provided to this method.function p.label(frame)if not mw.wikibase then return nil endif frame.args[1] == nil thenentity =  mw.wikibase.getEntityObject()if not entity then return nil endid = entity.idelseid = mw.text.trim(frame.args[1])endreturn mw.wikibase.label( id )end-- Return the description of a given data item, or of connected page-- if no argument is provided to this method.function p.description(frame)if not mw.wikibase then return nil endif frame.args[1] == nil thenentity = mw.wikibase.getEntityObject()if not entity then return nil endid = entity.idelseid = mw.text.trim(frame.args[1])endreturn mw.wikibase.description( id )end-- Return the local page about a given data item, or of connected page-- if id is not specified.function p.page(frame)if not mw.wikibase then return nil endif frame.args[1] == nil thenentity = mw.wikibase.getEntityObject()if not entity then return nil endid = entity.idelseid = mw.text.trim(frame.args[1])endreturn mw.wikibase.sitelink( id )end-- Return the data type of a propertyfunction p.datatype(frame)if not mw.wikibase then return nil endif frame.args[1] and string.find(frame.args[1], "Property:P") thenif mw.wikibase.getEntityObject(string.gsub(frame.args[1], "Property:P", "P"))  thenreturn mw.wikibase.getEntityObject(string.gsub(frame.args[1], "Property:P", "P") ).datatypeendelseif frame.args[1] and string.find(frame.args[1], "P") thenif mw.wikibase.getEntityObject(frame.args[1])  thenreturn mw.wikibase.getEntityObject(frame.args[1]).datatypeendendendreturn p