localp={}functionp.wikidatacheck(frame)localpframe=frame:getParent()localconfig=frame.args-- the arguments passed BY the template, in the wikitext of the template itselflocalargs=pframe.args-- the arguments passed TO the template, in the wikitext that transcludes the templatelocalproperty=config.propertylocalvalue=config.valueor""localcatbase=config.categorylocalnamespaces=config.namespaceslocalnocatsame=config.nocatsameor""localqid=config.qidor""localok=false-- one-way flag to check if we're in a good namespacelocalns=mw.title.getCurrentTitle().namespaceforvinmw.text.gsplit(namespaces,",",true)doiftonumber(v)==nsthenok=trueendendifnotokthen-- not in one of the approved namespacesreturn""endlocalentityifqid==""thenentity=mw.wikibase.getEntityObject()elseentity=mw.wikibase.getEntityObject(qid)endifnotentitythen-- no Wikidata itemreturn"[[Category:"..catbase.." not in Wikidata]]"endifvalue==""thenreturnnil-- Using Wikidataendlocalclaims=entity.claimsor{}localhasProp=claims[property]ifnothasPropthen-- no claim of that propertyreturn"[[Category:"..catbase.." not in Wikidata]]"-- bad. Bot needs to add the propertyendfori,vinipairs(hasProp)do-- Now we try to iterate over all possible values?propValue=(v.mainsnak.datavalueor{}).valueifpropValue==valuethenifnocatsame==""thenreturn"[[Category:"..catbase.." same as Wikidata]]"-- yay!elsereturnnil-- if nocatsame, the "same as" category is not addedendendendreturn"[[Category:"..catbase.." different from Wikidata]]"-- needs human review :(endreturnp