Module:WikidataIdentifiers explained

-- Functions for use in retrieving Wikidata for use in templates that deal with identifiers-- getIdentifierQualifier returns the value of a qualifier for an Identifier

p =

-- getIdentifierQualifier returns the value of a qualifier for an Identifier-- such as 'Art UK artist ID', P1367-- the assumption is that one value exists for the property-- and only one qualifier exists for that value-- Constraint violations for P1367 are at:-- https://www.wikidata.org/wiki/Wikidata:Database_reports/Constraint_violations/P1367#Single_valuep.getIdentifierQualifier = function(frame) local propertyID = mw.text.trim(frame.args[1] or "")

-- The PropertyID of the qualifier -- whose value is to be returned is passed in named parameter |qual= local qualifierID = frame.args.qual -- Can take a named parameter |qid which is the Wikidata ID for the article. -- This will not normally be used because it's an expensive call. local qid = frame.args.qid if qid and (#qid

0) then qid = nil end

local entity = mw.wikibase.getEntityObject(qid) local props if entity and entity.claims then props = entity.claims[propertyID] end if props then -- Check that the first value of the property is an external id if props[1].mainsnak.datatype

"external-id" then -- get any qualifiers of the first value of the property local quals = props[1].qualifiers if quals and quals[qualifierID] then -- check what the dataype of the first qualifier value is -- if it's quantity return the amount if quals[qualifierID][1].datatype

"quantity" then return tonumber(quals[qualifierID][1].datavalue.value.amount) end -- checks for other datatypes go here: end end endend

return p