<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="nb">
	<id>https://www.wikisida.no/index.php?action=history&amp;feed=atom&amp;title=Modul%3AWikidata2</id>
	<title>Modul:Wikidata2 - Sideversjonshistorikk</title>
	<link rel="self" type="application/atom+xml" href="https://www.wikisida.no/index.php?action=history&amp;feed=atom&amp;title=Modul%3AWikidata2"/>
	<link rel="alternate" type="text/html" href="https://www.wikisida.no/index.php?title=Modul:Wikidata2&amp;action=history"/>
	<updated>2026-04-15T20:00:44Z</updated>
	<subtitle>Versjonshistorikk for denne siden på wikien</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://www.wikisida.no/index.php?title=Modul:Wikidata2&amp;diff=146011&amp;oldid=prev</id>
		<title>Wikisida: Én sideversjon ble importert</title>
		<link rel="alternate" type="text/html" href="https://www.wikisida.no/index.php?title=Modul:Wikidata2&amp;diff=146011&amp;oldid=prev"/>
		<updated>2026-04-14T08:16:14Z</updated>

		<summary type="html">&lt;p&gt;Én sideversjon ble importert&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;nb&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Eldre sideversjon&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Sideversjonen fra 14. apr. 2026 kl. 08:16&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-notice&quot; lang=&quot;nb&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(Ingen forskjell)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key c1wiki:diff:1.41:old-146010:rev-146011 --&gt;
&lt;/table&gt;</summary>
		<author><name>Wikisida</name></author>
	</entry>
	<entry>
		<id>https://www.wikisida.no/index.php?title=Modul:Wikidata2&amp;diff=146010&amp;oldid=prev</id>
		<title>nb&gt;1000mm: 4 sideversjoner ble importert fra :nn:Modul:Wikidata2</title>
		<link rel="alternate" type="text/html" href="https://www.wikisida.no/index.php?title=Modul:Wikidata2&amp;diff=146010&amp;oldid=prev"/>
		<updated>2025-02-26T12:20:33Z</updated>

		<summary type="html">&lt;p&gt;4 sideversjoner ble importert fra &lt;a href=&quot;https://nn.wikipedia.org/wiki/Modul:Wikidata2&quot; class=&quot;extiw&quot; title=&quot;nn:Modul:Wikidata2&quot;&gt;nn:Modul:Wikidata2&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Ny side&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
require(&amp;#039;strict&amp;#039;)&lt;br /&gt;
--local WikidataDato = require( &amp;#039;Module:WikidataDato&amp;#039; )&lt;br /&gt;
&lt;br /&gt;
-- Wrapper for pcall which returns nil on failure.&lt;br /&gt;
local function quickPcall(func)&lt;br /&gt;
	local success, result = pcall(func)&lt;br /&gt;
	if success then&lt;br /&gt;
		return result&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Count words by &amp;#039;,&amp;#039;&lt;br /&gt;
local function countpattern(x) &lt;br /&gt;
	local _, count = x:gsub(&amp;quot;, &amp;quot;,&amp;quot;&amp;quot;) &lt;br /&gt;
	return count &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function parseInput(frame)&lt;br /&gt;
	local qid = frame.args.qid&lt;br /&gt;
	if qid and (#qid == 0) then qid = nil end&lt;br /&gt;
	local propertyID = mw.text.trim(frame.args[1] or &amp;quot;&amp;quot;)&lt;br /&gt;
	local input_parm = mw.text.trim(frame.args[2] or &amp;quot;&amp;quot;)&lt;br /&gt;
	if input_parm ~= &amp;quot;hent_wikidata&amp;quot; then&lt;br /&gt;
		return false, input_parm, nil, nil&lt;br /&gt;
	end&lt;br /&gt;
	local entity = mw.wikibase.getEntityObject(qid)&lt;br /&gt;
	local claims&lt;br /&gt;
	if entity and entity.claims then&lt;br /&gt;
		claims = entity.claims[propertyID]&lt;br /&gt;
		if not claims then&lt;br /&gt;
			return false, &amp;quot;&amp;quot;, nil, nil&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		return false, &amp;quot;&amp;quot;, nil, nil&lt;br /&gt;
	end&lt;br /&gt;
	return true, entity, claims, propertyID&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function isType(claims, type)&lt;br /&gt;
		return claims[1] and claims[1].mainsnak.snaktype == &amp;quot;value&amp;quot; and claims[1].mainsnak.datavalue.type == type&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getValue(entity, claims, propertyID, delim, labelHook) &lt;br /&gt;
	if labelHook == nil then&lt;br /&gt;
		labelHook = function (qnumber)&lt;br /&gt;
			return nil;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if isType(claims, &amp;quot;wikibase-entityid&amp;quot;) then&lt;br /&gt;
		local out = {}&lt;br /&gt;
		for k, v in pairs(claims) do&lt;br /&gt;
			local qnumber = &amp;quot;Q&amp;quot; .. v.mainsnak.datavalue.value[&amp;quot;numeric-id&amp;quot;]&lt;br /&gt;
			local sitelink = mw.wikibase.sitelink(qnumber)&lt;br /&gt;
			local label = labelHook(qnumber) or mw.wikibase.label(qnumber) or qnumber&lt;br /&gt;
			if sitelink then&lt;br /&gt;
				out[#out + 1] = &amp;quot;[[&amp;quot; .. sitelink .. &amp;quot;|&amp;quot; .. label .. &amp;quot;]]&amp;quot;&lt;br /&gt;
			else&lt;br /&gt;
				out[#out + 1] = label&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		return table.concat(out, delim)&lt;br /&gt;
	else&lt;br /&gt;
		-- just return best values&lt;br /&gt;
		return entity:formatPropertyValues(propertyID).value&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- This is used to get a normal wiki-linked value, or a comma separated list of them if multiple values exist&lt;br /&gt;
p.getValue = function(frame)&lt;br /&gt;
	if not mw.wikibase then&lt;br /&gt;
        return &amp;quot;&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
    local propertyID = mw.text.trim(frame.args[1] or &amp;quot;&amp;quot;)&lt;br /&gt;
    local input_parm = mw.text.trim(frame.args[2] or &amp;quot;&amp;quot;)&lt;br /&gt;
    local table_separator = mw.text.trim(frame.args[3] or &amp;quot;,&amp;quot;)&lt;br /&gt;
    if input_parm == &amp;quot;hent_wikidata&amp;quot; then&lt;br /&gt;
        local entity = mw.wikibase.getEntityObject()&lt;br /&gt;
        if not entity then&lt;br /&gt;
        	return &amp;quot;&amp;quot;&lt;br /&gt;
    	end&lt;br /&gt;
        if entity.claims and entity.claims[propertyID] ~= nil then&lt;br /&gt;
            local out = {}&lt;br /&gt;
            for k, v in pairs(entity.claims[propertyID]) do&lt;br /&gt;
            	if v.mainsnak.datavalue then&lt;br /&gt;
            		local numericId = v.mainsnak.datavalue.value[&amp;quot;numeric-id&amp;quot;]&lt;br /&gt;
            		if numericId then&lt;br /&gt;
                    	if (mw.wikibase.sitelink(&amp;quot;Q&amp;quot; .. numericId)) and mw.wikibase.label(&amp;quot;Q&amp;quot; .. numericId) then&lt;br /&gt;
                        	out[#out + 1] = &amp;quot;[[&amp;quot; .. mw.wikibase.sitelink(&amp;quot;Q&amp;quot; .. numericId) .. &amp;quot;|&amp;quot; .. mw.wikibase.label(&amp;quot;Q&amp;quot; .. numericId) .. &amp;quot;]]&amp;quot;&lt;br /&gt;
                    	elseif (mw.wikibase.sitelink(&amp;quot;Q&amp;quot; .. numericId)) then&lt;br /&gt;
                            out[#out + 1] = &amp;quot;[[&amp;quot; .. mw.wikibase.sitelink(&amp;quot;Q&amp;quot; .. numericId) .. &amp;quot;]]&amp;quot;&lt;br /&gt;
                        else&lt;br /&gt;
                            out[#out + 1] = mw.wikibase.label(&amp;quot;Q&amp;quot; .. numericId)&lt;br /&gt;
                        end&lt;br /&gt;
                    end&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
            return table.concat(out, table_separator .. &amp;#039; &amp;#039;)&lt;br /&gt;
        else&lt;br /&gt;
            return &amp;quot;&amp;quot;&lt;br /&gt;
        end&lt;br /&gt;
    else&lt;br /&gt;
        return input_parm&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- This is used to get a value like &amp;#039;male&amp;#039; (for property p21) which won&amp;#039;t be linked&lt;br /&gt;
p.getRawValue = function(frame)&lt;br /&gt;
	if not mw.wikibase then&lt;br /&gt;
        return &amp;quot;&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
    local propertyID = mw.text.trim(frame.args[1] or &amp;quot;&amp;quot;)&lt;br /&gt;
    local input_parm = mw.text.trim(frame.args[2] or &amp;quot;&amp;quot;)&lt;br /&gt;
    local table_separator = mw.text.trim(frame.args[3] or &amp;quot;,&amp;quot;)&lt;br /&gt;
    if input_parm == &amp;quot;hent_wikidata&amp;quot; then&lt;br /&gt;
        local entity = mw.wikibase.getEntityObject()&lt;br /&gt;
                if not entity then&lt;br /&gt;
        	return &amp;quot;&amp;quot;&lt;br /&gt;
    	end&lt;br /&gt;
        if entity.claims[propertyID] ~= nil then&lt;br /&gt;
            local out = {}&lt;br /&gt;
            for k, v in pairs(entity.claims[propertyID]) do&lt;br /&gt;
                out[#out + 1] = mw.wikibase.label(&amp;quot;Q&amp;quot; .. v.mainsnak.datavalue.value[&amp;quot;numeric-id&amp;quot;])&lt;br /&gt;
            end&lt;br /&gt;
            return table.concat(out, table_separator .. &amp;#039; &amp;#039;)&lt;br /&gt;
        else&lt;br /&gt;
            return &amp;quot;&amp;quot;&lt;br /&gt;
        end&lt;br /&gt;
    else&lt;br /&gt;
        return input_parm&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.getValueShortName = function(frame)&lt;br /&gt;
	local go, errorOrentity, claims, propertyID = parseInput(frame)&lt;br /&gt;
	if not go then&lt;br /&gt;
		return errorOrentity&lt;br /&gt;
	end&lt;br /&gt;
	local entity = errorOrentity&lt;br /&gt;
	-- if wiki-linked value output as link if possible&lt;br /&gt;
	local function labelHook (qnumber)&lt;br /&gt;
		local label&lt;br /&gt;
		local claimEntity = mw.wikibase.getEntity(qnumber)&lt;br /&gt;
		if claimEntity ~= nil then&lt;br /&gt;
			if claimEntity.claims.P1813 then&lt;br /&gt;
				for k2, v2 in pairs(claimEntity.claims.P1813) do&lt;br /&gt;
					if v2.mainsnak.datavalue.value.language == &amp;quot;nb&amp;quot; then&lt;br /&gt;
						label = v2.mainsnak.datavalue.value.text&lt;br /&gt;
					end&lt;br /&gt;
					if v2.mainsnak.datavalue.value.language == &amp;quot;en&amp;quot; then&lt;br /&gt;
						label = v2.mainsnak.datavalue.value.text&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if label == nil or label == &amp;quot;&amp;quot; then return nil end&lt;br /&gt;
		return label&lt;br /&gt;
	end&lt;br /&gt;
	return getValue(errorOrentity, claims, propertyID, &amp;quot;, &amp;quot;, labelHook);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- This is used to get a date value for date_of_birth (p569), etc. which won&amp;#039;t be linked -- consolidate by testing if entity.claims[propertyID].mainsnak.datavalue.type is &amp;quot;time&amp;quot;&lt;br /&gt;
p.getDateValue = function(frame)&lt;br /&gt;
	if not mw.wikibase then&lt;br /&gt;
        return &amp;quot;&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
    local propertyID = mw.text.trim(frame.args[1] or &amp;quot;&amp;quot;)&lt;br /&gt;
    local input_parm = mw.text.trim(frame.args[2] or &amp;quot;&amp;quot;)&lt;br /&gt;
    local table_separator = mw.text.trim(frame.args[3] or &amp;quot;&amp;quot;)&lt;br /&gt;
    if input_parm == &amp;quot;hent_wikidata&amp;quot; then&lt;br /&gt;
        local entity = mw.wikibase.getEntityObject()&lt;br /&gt;
                if not entity then&lt;br /&gt;
        	return &amp;quot;&amp;quot;&lt;br /&gt;
    	end&lt;br /&gt;
        if entity.claims[propertyID] ~= nil then&lt;br /&gt;
        	local date_temp = &amp;#039;ISOtilNorskdato&amp;#039;&lt;br /&gt;
            local out = {}&lt;br /&gt;
            local dt = {}&lt;br /&gt;
            for k, v in pairs(entity.claims[propertyID]) do&lt;br /&gt;
                local d = v.mainsnak.datavalue.value.time&lt;br /&gt;
                lyear = string.sub(d, 9, 12)&lt;br /&gt;
                lmonth = string.sub(d, 14, 15)&lt;br /&gt;
                lday = string.sub(d, 17, 18)&lt;br /&gt;
                out[#out + 1] = mw.getCurrentFrame():expandTemplate{ title = date_temp, args = { lyear .. &amp;quot;-&amp;quot; .. lmonth ..  &amp;quot;-&amp;quot; .. lday, &amp;#039;n&amp;#039; } }&lt;br /&gt;
            end&lt;br /&gt;
            return table.concat(out, table_separator .. &amp;#039; &amp;#039;)&lt;br /&gt;
        else&lt;br /&gt;
            return &amp;quot;&amp;quot;&lt;br /&gt;
        end&lt;br /&gt;
    else&lt;br /&gt;
        return input_parm&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Get the rank of statement&lt;br /&gt;
local function getRank(prop)&lt;br /&gt;
	local rank = prop.rank&lt;br /&gt;
	if rank == &amp;#039;preferred&amp;#039; then&lt;br /&gt;
		return 1&lt;br /&gt;
	elseif rank == &amp;#039;normal&amp;#039; then&lt;br /&gt;
		return 0&lt;br /&gt;
	elseif rank == &amp;#039;deprecated&amp;#039; then&lt;br /&gt;
		return -1&lt;br /&gt;
	else&lt;br /&gt;
		return 0 -- No rank or undefined rank is treated as &amp;quot;normal&amp;quot;.&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Get the Q-id from the site or arg.&lt;br /&gt;
local function getId(id)&lt;br /&gt;
    local artikkel&lt;br /&gt;
    if not mw.wikibase then&lt;br /&gt;
        return &amp;#039;&amp;#039;&lt;br /&gt;
    end&lt;br /&gt;
    if id then&lt;br /&gt;
    	artikkel = mw.wikibase.getEntity(id)&lt;br /&gt;
    else&lt;br /&gt;
    	artikkel = mw.wikibase.getEntity()&lt;br /&gt;
    end&lt;br /&gt;
    if not artikkel then&lt;br /&gt;
    	return &amp;#039;&amp;#039;&lt;br /&gt;
    end&lt;br /&gt;
    return artikkel&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Gets all values and add a dot (&amp;quot;.&amp;quot;) to it.&lt;br /&gt;
p.getFile_extension = function(frame)&lt;br /&gt;
 	local exts = {}&lt;br /&gt;
	&lt;br /&gt;
    local artikkel = getId(frame.args[1])&lt;br /&gt;
	local fileExten = artikkel:getBestStatements(&amp;#039;P1195&amp;#039;)&lt;br /&gt;
	&lt;br /&gt;
	for i, ext in ipairs(fileExten) do&lt;br /&gt;
	    exts[#exts+1] = (&amp;quot;.&amp;quot; .. ext.mainsnak.datavalue.value)&lt;br /&gt;
	end&lt;br /&gt;
	return mw.text.nowiki(table.concat(exts, &amp;#039;, &amp;#039;))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function formatEntityId(entityId,i)&lt;br /&gt;
    local label&lt;br /&gt;
    local link = mw.wikibase.sitelink( entityId )&lt;br /&gt;
	if i == 1 then&lt;br /&gt;
    	label = mw.wikibase.label( entityId )&lt;br /&gt;
    	label = label:gsub(&amp;quot;^%l&amp;quot;, string.upper)&lt;br /&gt;
    else&lt;br /&gt;
    	label = mw.wikibase.label( entityId )&lt;br /&gt;
    end&lt;br /&gt;
    if link then&lt;br /&gt;
        if label then&lt;br /&gt;
            return &amp;#039;[[&amp;#039; .. link .. &amp;#039;|&amp;#039; .. label .. &amp;#039;]]&amp;#039;&lt;br /&gt;
        else&lt;br /&gt;
            return &amp;#039;[[&amp;#039; .. link .. &amp;#039;]]&amp;#039;&lt;br /&gt;
        end&lt;br /&gt;
    elseif label then&lt;br /&gt;
        return label --TODO what if no links and label + fallback language?&lt;br /&gt;
    else&lt;br /&gt;
        return &amp;#039;&amp;#039;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Gets all values and if multip. add [[Multi paradigm]]: if more then two q-values...&lt;br /&gt;
p.paradigme = function(frame)&lt;br /&gt;
 	local paradigms = {}&lt;br /&gt;
	&lt;br /&gt;
    local artikkel = getId(frame.args[1])&lt;br /&gt;
    if artikkel == &amp;quot;&amp;quot; then&lt;br /&gt;
    	return &amp;quot;&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
	local paradigm = artikkel:getBestStatements(&amp;#039;P3966&amp;#039;)&lt;br /&gt;
	local count = 0&lt;br /&gt;
	for i, paradig in ipairs(paradigm) do&lt;br /&gt;
		if paradig.mainsnak.datavalue.value.id ~= &amp;#039;Q4306983&amp;#039; then --multi-paradigm programming&lt;br /&gt;
			count = count + 1&lt;br /&gt;
	    	paradigms[#paradigms+1] = formatEntityId(paradig.mainsnak.datavalue.value.id,count)&lt;br /&gt;
	    end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if paradigms[2] then&lt;br /&gt;
		local values = table.concat(paradigms, &amp;#039;, &amp;#039;)&lt;br /&gt;
		local multi = &amp;#039;[[&amp;#039; .. mw.wikibase.sitelink(&amp;#039;Q188267&amp;#039;) .. &amp;#039;|&amp;#039; .. &amp;#039;Multi-paradigme&amp;#039; .. &amp;#039;]]&amp;#039; .. &amp;#039;: &amp;#039;&lt;br /&gt;
		if count &amp;gt;= 5 then&lt;br /&gt;
			return string.format([[&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;sentrert&amp;quot;&amp;gt;%s paradigmer&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;%s&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;]], &lt;br /&gt;
			count, multi .. values)&lt;br /&gt;
    	else&lt;br /&gt;
    		return multi .. values&lt;br /&gt;
    	end&lt;br /&gt;
	elseif paradigms[1] then&lt;br /&gt;
    	return paradigms[1]&lt;br /&gt;
    elseif paradigm[1] then&lt;br /&gt;
    	return &amp;#039;[[&amp;#039; .. mw.wikibase.sitelink(&amp;#039;Q188267&amp;#039;) .. &amp;#039;|&amp;#039; .. &amp;#039;Multi-paradigme&amp;#039; .. &amp;#039;]]&amp;#039;&lt;br /&gt;
    else&lt;br /&gt;
    	return &amp;quot;&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Filter on rank and qqid. Then return with &amp;quot;,&amp;quot; between statements.&lt;br /&gt;
local function findBestProperty(entity, pid, qqid, ppid)&lt;br /&gt;
    local props = {}&lt;br /&gt;
    local propsAlt = {}&lt;br /&gt;
&lt;br /&gt;
    local prop = quickPcall(function ()&lt;br /&gt;
	return entity[&amp;#039;claims&amp;#039;][pid]&lt;br /&gt;
    end)&lt;br /&gt;
&lt;br /&gt;
    if not prop then&lt;br /&gt;
        return &amp;#039;&amp;#039;&lt;br /&gt;
    end&lt;br /&gt;
	&lt;br /&gt;
    for i, pro in ipairs(prop) do&lt;br /&gt;
        local rank = getRank(pro)&lt;br /&gt;
        if rank == 1 and pro.qualifiers and pro.qualifiers[ppid] and pro.qualifiers[ppid][1].datavalue.value.id == qqid  then&lt;br /&gt;
            	if pro.qualifiers.P577[1].datatype == &amp;#039;time&amp;#039; then&lt;br /&gt;
            		props[#props+1] = pro.mainsnak.datavalue.value .. &amp;#039; / &amp;#039; .. mw.wikibase.renderSnak(pro.qualifiers.P577[1])&lt;br /&gt;
            	else&lt;br /&gt;
            		props[#props+1] = pro.mainsnak.datavalue.value&lt;br /&gt;
            	end&lt;br /&gt;
        elseif rank == 0 and pro.qualifiers and pro.qualifiers[ppid] and pro.qualifiers[ppid][1].datavalue.value.id == qqid then&lt;br /&gt;
        		propsAlt[#propsAlt+1] = pro.mainsnak.datavalue.value&lt;br /&gt;
        			&lt;br /&gt;
    	end&lt;br /&gt;
    end&lt;br /&gt;
	if props[1] then &lt;br /&gt;
		return quickPcall(function () &lt;br /&gt;
			return table.concat(props, &amp;#039;, &amp;#039;) &lt;br /&gt;
			end) &lt;br /&gt;
	elseif propsAlt[1] then &lt;br /&gt;
		return quickPcall(function () &lt;br /&gt;
			return table.concat(propsAlt, &amp;#039;, &amp;#039;) &lt;br /&gt;
			end)&lt;br /&gt;
	else&lt;br /&gt;
		return &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Find the version that you are looking for. Adds it to a collapsed class if over 5.&lt;br /&gt;
p.getVersion = function(frame)&lt;br /&gt;
    local artikkel = getId(frame.args[1]) -- Args[1] is the Q-id (alt)&lt;br /&gt;
    local pid = frame.args.pid -- Property (Pxx) under Q-value (Qxxxx)&lt;br /&gt;
    local qQid = frame.args.qqid -- Secound Q-id&lt;br /&gt;
    local pPid = frame.args.ppid -- Secound P-id (Property)&lt;br /&gt;
    local alle = frame.args.alle -- if &amp;#039;ja&amp;#039; and if findBestProperty() return nil, get all statements&lt;br /&gt;
	&lt;br /&gt;
    local priVersions = quickPcall(function () &lt;br /&gt;
			return findBestProperty(artikkel,pid,qQid,pPid)&lt;br /&gt;
			end)&lt;br /&gt;
    if priVersions == &amp;#039;&amp;#039; and alle == &amp;#039;ja&amp;#039; and artikkel ~= &amp;quot;&amp;quot; then&lt;br /&gt;
		local temp = artikkel:formatPropertyValues( pid, mw.wikibase.entity.claimRanks )&lt;br /&gt;
		priVersions = temp[&amp;#039;value&amp;#039;]&lt;br /&gt;
	elseif priVersions == &amp;#039;&amp;#039; or priVersions == nil then&lt;br /&gt;
		return &amp;#039;&amp;#039;&lt;br /&gt;
    end&lt;br /&gt;
    if countpattern(priVersions) &amp;gt; 5 then&lt;br /&gt;
		return string.format([[&amp;lt;div class=&amp;quot;mw-collapsible mw-collapsed&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;sentrert&amp;quot;&amp;gt;%s versjoner&amp;lt;/div&amp;gt; &amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;%s&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;]], &lt;br /&gt;
		countpattern(priVersions), priVersions)&lt;br /&gt;
    else&lt;br /&gt;
		return mw.text.nowiki(priVersions)&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>nb&gt;1000mm</name></author>
	</entry>
</feed>