<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="sv">
	<id>https://xn--jrnvgshistoria-5hbd.se/index.php?action=history&amp;feed=atom&amp;title=Modul%3AWikidata</id>
	<title>Modul:Wikidata - Versionshistorik</title>
	<link rel="self" type="application/atom+xml" href="https://xn--jrnvgshistoria-5hbd.se/index.php?action=history&amp;feed=atom&amp;title=Modul%3AWikidata"/>
	<link rel="alternate" type="text/html" href="https://xn--jrnvgshistoria-5hbd.se/index.php?title=Modul:Wikidata&amp;action=history"/>
	<updated>2026-06-30T04:06:19Z</updated>
	<subtitle>Versionshistorik för denna sida på wikin</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>https://xn--jrnvgshistoria-5hbd.se/index.php?title=Modul:Wikidata&amp;diff=62320&amp;oldid=prev</id>
		<title>Jan Karlsson: 1 version importerades</title>
		<link rel="alternate" type="text/html" href="https://xn--jrnvgshistoria-5hbd.se/index.php?title=Modul:Wikidata&amp;diff=62320&amp;oldid=prev"/>
		<updated>2021-01-06T14:16:42Z</updated>

		<summary type="html">&lt;p&gt;1 version importerades&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;sv&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Äldre version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Versionen från 6 januari 2021 kl. 14.16&lt;/td&gt;
				&lt;/tr&gt;
&lt;!-- diff cache key hviqzheq_jarnvagshistoria22:diff::1.12:old-59670:rev-62320 --&gt;
&lt;/table&gt;</summary>
		<author><name>Jan Karlsson</name></author>
	</entry>
	<entry>
		<id>https://xn--jrnvgshistoria-5hbd.se/index.php?title=Modul:Wikidata&amp;diff=59670&amp;oldid=prev</id>
		<title>Jan Karlsson: 1 version importerades</title>
		<link rel="alternate" type="text/html" href="https://xn--jrnvgshistoria-5hbd.se/index.php?title=Modul:Wikidata&amp;diff=59670&amp;oldid=prev"/>
		<updated>2021-01-05T08:10:23Z</updated>

		<summary type="html">&lt;p&gt;1 version importerades&lt;/p&gt;
&lt;a href=&quot;https://xn--jrnvgshistoria-5hbd.se/index.php?title=Modul:Wikidata&amp;amp;diff=59670&amp;amp;oldid=62319&quot;&gt;Visa ändringar&lt;/a&gt;</summary>
		<author><name>Jan Karlsson</name></author>
	</entry>
	<entry>
		<id>https://xn--jrnvgshistoria-5hbd.se/index.php?title=Modul:Wikidata&amp;diff=62319&amp;oldid=prev</id>
		<title>jarnvagsdata&gt;Nirmos: Skyddade &quot;Modul:Wikidata&quot;: används på 136 993 sidor ([Redigera=Enbart registrerade användare] (på obestämd tid) [Flytta=Enbart registrerade användare] (på obestämd tid))</title>
		<link rel="alternate" type="text/html" href="https://xn--jrnvgshistoria-5hbd.se/index.php?title=Modul:Wikidata&amp;diff=62319&amp;oldid=prev"/>
		<updated>2020-05-09T05:09:05Z</updated>

		<summary type="html">&lt;p&gt;Skyddade &amp;quot;&lt;a href=&quot;/index.php/Modul:Wikidata&quot; title=&quot;Modul:Wikidata&quot;&gt;Modul:Wikidata&lt;/a&gt;&amp;quot;: används på 136 993 sidor ([Redigera=Enbart registrerade användare] (på obestämd tid) [Flytta=Enbart registrerade användare] (på obestämd tid))&lt;/p&gt;
&lt;a href=&quot;https://xn--jrnvgshistoria-5hbd.se/index.php?title=Modul:Wikidata&amp;amp;diff=62319&amp;amp;oldid=59669&quot;&gt;Visa ändringar&lt;/a&gt;</summary>
		<author><name>jarnvagsdata&gt;Nirmos</name></author>
	</entry>
	<entry>
		<id>https://xn--jrnvgshistoria-5hbd.se/index.php?title=Modul:Wikidata&amp;diff=59669&amp;oldid=prev</id>
		<title>jarnvagsdata&gt;Uzume: missed one</title>
		<link rel="alternate" type="text/html" href="https://xn--jrnvgshistoria-5hbd.se/index.php?title=Modul:Wikidata&amp;diff=59669&amp;oldid=prev"/>
		<updated>2020-05-05T12:46:52Z</updated>

		<summary type="html">&lt;p&gt;missed one&lt;/p&gt;
&lt;a href=&quot;https://xn--jrnvgshistoria-5hbd.se/index.php?title=Modul:Wikidata&amp;amp;diff=59669&amp;amp;oldid=6638&quot;&gt;Visa ändringar&lt;/a&gt;</summary>
		<author><name>jarnvagsdata&gt;Uzume</name></author>
	</entry>
	<entry>
		<id>https://xn--jrnvgshistoria-5hbd.se/index.php?title=Modul:Wikidata&amp;diff=6638&amp;oldid=prev</id>
		<title>Jan Karlsson: 1 version importerades</title>
		<link rel="alternate" type="text/html" href="https://xn--jrnvgshistoria-5hbd.se/index.php?title=Modul:Wikidata&amp;diff=6638&amp;oldid=prev"/>
		<updated>2018-03-14T21:51:40Z</updated>

		<summary type="html">&lt;p&gt;1 version importerades&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Ny sida&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- Den ordning fallback language hämtas, om svensk label saknas. Engelska först, därefter bokmål, danska, etc...&lt;br /&gt;
local fallback = {'en', 'nb', 'da', 'nn', 'de', 'fr', 'es', 'it', 'pt'}&lt;br /&gt;
local i18n = {&lt;br /&gt;
    [&amp;quot;errors&amp;quot;] = {&lt;br /&gt;
        [&amp;quot;property-param-not-provided&amp;quot;] = &amp;quot;Property parameter not provided.&amp;quot;,&lt;br /&gt;
        [&amp;quot;entity-not-found&amp;quot;] = &amp;quot;Entity not found.&amp;quot;,&lt;br /&gt;
        [&amp;quot;unknown-claim-type&amp;quot;] = &amp;quot;Unknown claim type.&amp;quot;,&lt;br /&gt;
        [&amp;quot;unknown-snak-type&amp;quot;] = &amp;quot;Unknown snak type.&amp;quot;,&lt;br /&gt;
        [&amp;quot;unknown-datatype&amp;quot;] = &amp;quot;Unknown datatype.&amp;quot;,&lt;br /&gt;
        [&amp;quot;unknown-entity-type&amp;quot;] = &amp;quot;Unknown entity type.&amp;quot;,&lt;br /&gt;
        [&amp;quot;unknown-value-module&amp;quot;] = &amp;quot;You must set both value-module and value-function parameters.&amp;quot;,&lt;br /&gt;
        [&amp;quot;value-module-not-found&amp;quot;] = &amp;quot;The module pointed by value-module not found.&amp;quot;,&lt;br /&gt;
        [&amp;quot;value-function-not-found&amp;quot;] = &amp;quot;The function pointed by value-function not found.&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    [&amp;quot;somevalue&amp;quot;] = &amp;quot;''unknown value''&amp;quot;,&lt;br /&gt;
    [&amp;quot;novalue&amp;quot;] = &amp;quot;''no value''&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
local sortingproperties = {'P585','P571','P580','P569','P582','P570'}&lt;br /&gt;
&lt;br /&gt;
function getqualifierbysortingproperty(claim, sortingproperty)&lt;br /&gt;
	for k, v in pairs(sortingproperty) do&lt;br /&gt;
		if claim.qualifiers and claim.qualifiers[v] and claim.qualifiers[v][1].snaktype == 'value' then&lt;br /&gt;
			return claim.qualifiers[v][1].datavalue.value.time &lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function getDate(claim, options)&lt;br /&gt;
	local sortingproperty = sortingproperties&lt;br /&gt;
	if type(options.sortingproperty) == 'table' then&lt;br /&gt;
		sortingproperty = options.sortingproperty&lt;br /&gt;
	elseif type(options.sortingproperty) == 'string' then&lt;br /&gt;
		sortingproperty = {options.sortingproperty}&lt;br /&gt;
	end&lt;br /&gt;
	return getqualifierbysortingproperty(claim, sortingproperty) &lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function comparedates(a, b) &lt;br /&gt;
	if a and b then&lt;br /&gt;
		return a &amp;gt; b&lt;br /&gt;
	elseif a then&lt;br /&gt;
		return true&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function sortbyqualifier(claims, options)&lt;br /&gt;
	&lt;br /&gt;
	table.sort(claims, function(a,b)&lt;br /&gt;
		local timeA = getDate(a, options)&lt;br /&gt;
		local timeB = getDate(b, options)&lt;br /&gt;
		if options.sortbytime == 'inverted' then&lt;br /&gt;
			return comparedates(timeB, timeA)&lt;br /&gt;
		else&lt;br /&gt;
			return comparedates(timeA, timeB)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	)&lt;br /&gt;
	return claims&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function getLabelFromFallBack( id ) &lt;br /&gt;
	local entity = getEntityFromId( id )&lt;br /&gt;
 	for k, v in pairs(fallback) do&lt;br /&gt;
		if entity.labels[v] then&lt;br /&gt;
			return {value = entity.labels[v].value, language = entity.labels[v].language}&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	-- Om inget fallback-språk finns av de i variabeln ovan, så används det först definierade i objektet&lt;br /&gt;
	if entity.labels then &lt;br /&gt;
		for v, k in pairs(entity.labels) do&lt;br /&gt;
			return {value = k.value, language = k.language}&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return {value = '-', language = ''}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function getEntityFromId( id )&lt;br /&gt;
	if id then &lt;br /&gt;
		return mw.wikibase.getEntityObject( id )&lt;br /&gt;
	else&lt;br /&gt;
		return mw.wikibase.getEntityObject() &lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
function getEntityIdFromValue( value )&lt;br /&gt;
    if value['entity-type'] == 'item' then&lt;br /&gt;
        return 'Q' .. value['numeric-id']&lt;br /&gt;
    elseif value['entity-type'] == 'property' then&lt;br /&gt;
        return 'P' .. value['numeric-id']&lt;br /&gt;
    else&lt;br /&gt;
        return formatError( 'unknown-entity-type' )&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
function formatError( key )&lt;br /&gt;
    return '&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;' .. i18n.errors[key] .. '&amp;lt;/span&amp;gt;'&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
function formatStatements( options, ref )&lt;br /&gt;
   	local formattedStatements = {}&lt;br /&gt;
   	local claims = {}&lt;br /&gt;
   	if not options.property then&lt;br /&gt;
       	return formatError( 'property-param-not-provided' )&lt;br /&gt;
   	end&lt;br /&gt;
&lt;br /&gt;
    if type(ref) == 'table' then -- för de fall där funktionen anropas och alla claims redan finns i en tabell&lt;br /&gt;
		claims = ref[options.property]&lt;br /&gt;
	else&lt;br /&gt;
 &lt;br /&gt;
    	--Get entity&lt;br /&gt;
    	local entity = nil&lt;br /&gt;
    	if options.entity and type( options.entity ) == &amp;quot;table&amp;quot; then&lt;br /&gt;
        	entity = options.entity&lt;br /&gt;
    	else&lt;br /&gt;
        	entity = getEntityFromId( options.entityId )&lt;br /&gt;
    	end&lt;br /&gt;
 &lt;br /&gt;
    	if not entity then&lt;br /&gt;
        	return '' --TODO error?&lt;br /&gt;
    	end&lt;br /&gt;
 &lt;br /&gt;
    	if not entity.claims or not entity.claims[options.property:upper()] then&lt;br /&gt;
        	return '' --TODO error?&lt;br /&gt;
    	end&lt;br /&gt;
 &lt;br /&gt;
    	--Format statement and concat them cleanly&lt;br /&gt;
		if options.rank == 'best' or not options.rank then &lt;br /&gt;
			claims = entity:getBestStatements( options.property:upper() )&lt;br /&gt;
		elseif options.rank == 'valid' then&lt;br /&gt;
			for i, statement in pairs( entity.claims[options.property:upper()] ) do&lt;br /&gt;
	    		if statement.rank == 'preferred' or statement.rank == 'normal' then&lt;br /&gt;
    				table.insert( claims, statement )&lt;br /&gt;
    			end&lt;br /&gt;
			end&lt;br /&gt;
		elseif options.rank == 'all' then&lt;br /&gt;
			for i, statement in pairs( entity.claims[options.property:upper()] ) do&lt;br /&gt;
				table.insert( claims, statement )&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			for i, statement in pairs( entity.claims[options.property:upper()] ) do&lt;br /&gt;
				if statement.rank == options.rank then&lt;br /&gt;
					table.insert( claims, statement )&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if options.avoidqualifier then&lt;br /&gt;
			local claims2 = {}&lt;br /&gt;
			for i, statement in pairs( claims ) do	&lt;br /&gt;
				if not statement.qualifiers or not statement.qualifiers[options.avoidqualifier:upper()] then&lt;br /&gt;
					table.insert( claims2, statement)&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			claims = claims2&lt;br /&gt;
		end&lt;br /&gt;
		--om det finns vissa statements som har en qualifier som säger &amp;quot;språk = svenska&amp;quot;, ta bara med dessa&lt;br /&gt;
		if not options.langpref or options.langpref == '' then&lt;br /&gt;
			local claims2 = {}&lt;br /&gt;
			for i, statement in pairs( claims ) do&lt;br /&gt;
				if statement.qualifiers and statement.qualifiers.P407 then&lt;br /&gt;
					for k, v in pairs( statement.qualifiers.P407 ) do&lt;br /&gt;
						if v.snaktype == 'value' and v.datavalue.value['numeric-id'] == 9027 then -- Q9027 = 'svenska'&lt;br /&gt;
							table.insert( claims2, statement )&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			if #claims2 &amp;gt; 0 then&lt;br /&gt;
				claims = claims2&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if options.sortbytime == 'chronological' or options.sortbytime == 'inverted' then&lt;br /&gt;
			claims = sortbyqualifier(claims, options)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if options.enbarten and options.enbarten ~= '' and #claims &amp;gt; 1 then&lt;br /&gt;
		claims = {claims[1]}&lt;br /&gt;
	end&lt;br /&gt;
	if claims then&lt;br /&gt;
		for i, statement in pairs( claims ) do	&lt;br /&gt;
			local s = formatStatement( statement, options ) &lt;br /&gt;
			if s == '' then s = nil end&lt;br /&gt;
			if type(ref) == 'table' or (options.noref and options.noref ~='') then --Inte leta efter referenser om själva anropet görs från en referens&lt;br /&gt;
				table.insert( formattedStatements, s )&lt;br /&gt;
			else&lt;br /&gt;
				local t = ''--formatReferences( statement, options )&lt;br /&gt;
				table.insert( formattedStatements, s .. t )	&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return mw.text.listToText( formattedStatements, options.separator, options.conjunction )&lt;br /&gt;
end&lt;br /&gt;
function formatReferences( statement, options )&lt;br /&gt;
	local reference = {}&lt;br /&gt;
	if statement.references then&lt;br /&gt;
		local cite = require('Modul:Cite')&lt;br /&gt;
		for i, ref in pairs(statement.references) do&lt;br /&gt;
			local items, s = {}, nil&lt;br /&gt;
			if ref.snaks then&lt;br /&gt;
				if ref.snaks.P248 then&lt;br /&gt;
					for j, prop in pairs(ref.snaks.P248) do&lt;br /&gt;
						table.insert(items, 'Q' .. prop.datavalue.value['numeric-id'])&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
				s = cite.citeitem( items, ref.snaks, options ) &lt;br /&gt;
				if s == '' or not s then&lt;br /&gt;
					s = 'Källangivelsen på Wikidata använder propertys som inte känns igen av Modul:Cite'&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			table.insert(reference, mw.getCurrentFrame():extensionTag( 'ref', s, {name = ref.hash} ) )&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return table.concat(reference)&lt;br /&gt;
end&lt;br /&gt;
function formatStatement( statement, options )&lt;br /&gt;
    if statement.type == 'statement' then&lt;br /&gt;
		return formatSnak( statement.mainsnak, options ).value &lt;br /&gt;
	elseif not statement.type then&lt;br /&gt;
		return formatSnak( statement, options ).value --reference and qualifier&lt;br /&gt;
    end&lt;br /&gt;
	return formatError( 'unknown-claim-type' )&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
function formatSnak( snak, options )&lt;br /&gt;
    if snak.snaktype == 'somevalue' then&lt;br /&gt;
        return {value =  i18n['somevalue']}&lt;br /&gt;
    elseif snak.snaktype == 'novalue' then&lt;br /&gt;
        return {value = i18n['novalue']}&lt;br /&gt;
    elseif snak.snaktype == 'value' then&lt;br /&gt;
        return {value = formatDatavalue( snak.datavalue, options, snak.datatype ).value}&lt;br /&gt;
    else&lt;br /&gt;
        return {value = formatError( 'unknown-snak-type' )}&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
function formatDatavalue( datavalue, options, datatype )&lt;br /&gt;
    --Use the customize handler if provided&lt;br /&gt;
    if options['value-module'] or options['value-function'] then&lt;br /&gt;
        if not options['value-module'] or not options['value-function'] then&lt;br /&gt;
            return {value = formatError( 'unknown-value-module' )}&lt;br /&gt;
        end&lt;br /&gt;
        local formatter = require ('Module:' .. options['value-module'])&lt;br /&gt;
        if not formatter then&lt;br /&gt;
            return {value = formatError( 'value-module-not-found' )}&lt;br /&gt;
        end&lt;br /&gt;
        local fun = formatter[options['value-function']]&lt;br /&gt;
        if not fun then&lt;br /&gt;
            return {value = formatError( 'value-function-not-found' )}&lt;br /&gt;
        end&lt;br /&gt;
        return {value = fun( datavalue.value, options )}&lt;br /&gt;
    end&lt;br /&gt;
 &lt;br /&gt;
    --Default formatters&lt;br /&gt;
    if datatype == 'wikibase-item' then&lt;br /&gt;
        return {value = formatEntityId( getEntityIdFromValue( datavalue.value ), options ).value}&lt;br /&gt;
        &lt;br /&gt;
    elseif datatype == 'string' or datatype == 'commonsMedia' then&lt;br /&gt;
        if options.pattern and options.pattern ~= '' then&lt;br /&gt;
        	if options.pattern == &amp;quot;auktoritetsdata&amp;quot; then&lt;br /&gt;
        		local patter = formatStatements( {property = &amp;quot;P1630&amp;quot;, entityId = options.property, enbarten = 'true', noref = 'true' })&lt;br /&gt;
        		return {value = formatFromPattern( datavalue.value, {pattern = patter} )}&lt;br /&gt;
        	elseif options.pattern == &amp;quot;auktoritetsdata2&amp;quot; or options.pattern == 'auktoritetsdata3' then&lt;br /&gt;
        		local patter = formatStatements( {property = &amp;quot;P1630&amp;quot;, entityId = options.property, enbarten = 'true', noref = 'true' })&lt;br /&gt;
        		return {value = '[' .. formatFromPattern( datavalue.value, {pattern = patter} ) .. ' ' .. datavalue.value .. ']' } &lt;br /&gt;
        	else&lt;br /&gt;
            	return {value = formatFromPattern( datavalue.value, options )}&lt;br /&gt;
            end&lt;br /&gt;
        else&lt;br /&gt;
            return {value = datavalue.value}&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
    elseif datatype == 'time' then&lt;br /&gt;
        local Time = require 'Module:Time'&lt;br /&gt;
        return {value = Time.newFromWikidataValue( datavalue.value ):toHtml()}&lt;br /&gt;
        &lt;br /&gt;
    elseif datatype == 'globe-coordinate' then&lt;br /&gt;
        local GlobeCoordinate = require 'Module:GlobeCoordinate'&lt;br /&gt;
        return {value = GlobeCoordinate.newFromWikidataValue( datavalue.value ):toHtml()}&lt;br /&gt;
    &lt;br /&gt;
	elseif datatype == 'quantity' then &lt;br /&gt;
		local amount, unit, cat = datavalue.value.amount, datavalue.value.unit, nil&lt;br /&gt;
		if unit then&lt;br /&gt;
			unit = unit:match('Q%d+')&lt;br /&gt;
		end&lt;br /&gt;
		local formatera = require('Modul:Math')&lt;br /&gt;
		local number = formatera.newFromWikidataValue(datavalue.value)&lt;br /&gt;
&lt;br /&gt;
		local unitraw = unit&lt;br /&gt;
		if unit then&lt;br /&gt;
			-- Kontrollerar om det finns någon förkortning för denna 'unit'&lt;br /&gt;
			local lab = options.label or formatStatements({property = 'P558', entityId = unit, enbarten = 'true', langpref = options.langpref, noref = 'true'})&lt;br /&gt;
			if lab and ( not options.nounitshort or options.nounitshort == '' )  then&lt;br /&gt;
				local s = formatEntityId( unit, {label = lab, nolink = (options.nounitlink or options.nolink) })&lt;br /&gt;
				unit = s.value&lt;br /&gt;
				cat = s.cat&lt;br /&gt;
			else -- om det inte finns en förkortning&lt;br /&gt;
				local s = formatEntityId( unit, {nolink = options.nounitlink})&lt;br /&gt;
				unit = s.value&lt;br /&gt;
				cat = s.cat&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		return {value = number .. ' ' .. (unit or ''), amount = amount, unit = unit, unitraw = unitraw, cat = cat}&lt;br /&gt;
		&lt;br /&gt;
	elseif datatype == 'url' then&lt;br /&gt;
		if options.label and options.label ~= '' then&lt;br /&gt;
			return {value = '[' .. datavalue.value .. ' ' .. options.label .. ']'}&lt;br /&gt;
		else&lt;br /&gt;
			return {value = datavalue.value}&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
	elseif datavalue.type == 'monolingualtext' then&lt;br /&gt;
		return {value = mw.text.tag('span', {title = mw.language.fetchLanguageName(datavalue.value.language, 'sv')}, datavalue.value.text)}&lt;br /&gt;
		&lt;br /&gt;
    else&lt;br /&gt;
        return {value = formatError( 'unknown-datatype' )}&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
function formatEntityId( entityId, options )&lt;br /&gt;
	local label = options.label or mw.wikibase.label( entityId )&lt;br /&gt;
	if label == '' then&lt;br /&gt;
		label = mw.wikibase.label( entityId ) or nil&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
    local link = mw.wikibase.sitelink( entityId )&lt;br /&gt;
    if link and (not options.nolink or options.nolink == '') then&lt;br /&gt;
        if label and label ~= '' then&lt;br /&gt;
            return {value = '[[:' .. link .. '|' .. label .. ']]' }&lt;br /&gt;
        else&lt;br /&gt;
            return {value = '[[:' .. link .. ']]' }&lt;br /&gt;
        end&lt;br /&gt;
    else&lt;br /&gt;
    	if label then&lt;br /&gt;
    		return {value = label}&lt;br /&gt;
    	else&lt;br /&gt;
    		local s = getLabelFromFallBack( entityId )&lt;br /&gt;
    		local l = mw.language.fetchLanguageName(s.language, 'sv')&lt;br /&gt;
    		if not l or l == '' then&lt;br /&gt;
    			l = 'okänt språk'&lt;br /&gt;
    		end&lt;br /&gt;
    		if s then&lt;br /&gt;
    			return {value = mw.text.tag('span', {title = l}, s.value), cat = 'med labels på ' .. l }&lt;br /&gt;
    		end&lt;br /&gt;
    	end&lt;br /&gt;
    	return {value = entityId, cat = 'som har labels med Qid'}&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
function formatFromPattern( str, options )&lt;br /&gt;
    return mw.ustring.gsub( options.pattern, '$1', str ) .. '' --Hack to get only the first result of the function&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
local p = {}&lt;br /&gt;
 &lt;br /&gt;
function p.formatStatements( frame, key )&lt;br /&gt;
    local args = frame.args&lt;br /&gt;
 &lt;br /&gt;
    --If a value if already set, use it&lt;br /&gt;
    if args.value and args.value ~= '' then&lt;br /&gt;
        return args.value&lt;br /&gt;
    end&lt;br /&gt;
    return formatStatements( frame.args, key )&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
function p.formatStatementsFromLua( options, key )&lt;br /&gt;
    --If a value if already set, use it&lt;br /&gt;
    if options.value and options.value ~= '' then&lt;br /&gt;
        return options.value&lt;br /&gt;
    end&lt;br /&gt;
    local s = formatStatements( options, key )&lt;br /&gt;
    if s == '' then&lt;br /&gt;
    	s = nil&lt;br /&gt;
    end&lt;br /&gt;
    return s&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
-- Return the site link (for the current site) for a given data item.&lt;br /&gt;
function p.getSiteLink( frame )&lt;br /&gt;
    if frame.args[1] == nil then&lt;br /&gt;
        entity = mw.wikibase.getEntityObject()&lt;br /&gt;
        if not entity then&lt;br /&gt;
        	entity = mw.wikibase.getEntityObject(frame.args[1])&lt;br /&gt;
        end&lt;br /&gt;
        id = entity.id&lt;br /&gt;
    else&lt;br /&gt;
        id = frame.args[1]&lt;br /&gt;
    end&lt;br /&gt;
 &lt;br /&gt;
    return mw.wikibase.sitelink( id )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- look into entity object&lt;br /&gt;
function p.ViewSomething(frame)&lt;br /&gt;
	local f = (frame.args[1] or frame.args.id) and frame or frame:getParent()&lt;br /&gt;
	local id = f.args.id&lt;br /&gt;
	if id and (#id == 0) then&lt;br /&gt;
		id = nil&lt;br /&gt;
	end&lt;br /&gt;
	local data = mw.wikibase.getEntityObject(id)&lt;br /&gt;
	if not data then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local i = 1&lt;br /&gt;
	while true do&lt;br /&gt;
		local index = f.args[i]&lt;br /&gt;
		if not index then&lt;br /&gt;
			if type(data) == &amp;quot;table&amp;quot; then&lt;br /&gt;
				return mw.text.jsonEncode(data, mw.text.JSON_PRESERVE_KEYS + mw.text.JSON_PRETTY)&lt;br /&gt;
			else&lt;br /&gt;
				return tostring(data)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		data = data[index] or data[tonumber(index)]&lt;br /&gt;
		if not data then&lt;br /&gt;
			return&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		i = i + 1&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- This is used to get the TA98 (Terminologia Anatomica first edition 1998) values like 'A01.1.00.005' (property P1323)&lt;br /&gt;
-- which are then linked to http://www.unifr.ch/ifaa/Public/EntryPage/TA98%20Tree/Entity%20TA98%20EN/01.1.00.005%20Entity%20TA98%20EN.htm&lt;br /&gt;
-- uses the newer mw.wikibase calls instead of directly using the snaks&lt;br /&gt;
-- formatPropertyValues returns a table with the P1323 values concatenated with &amp;quot;, &amp;quot; so we have to split them out into a table in order to construct the return string&lt;br /&gt;
p.getTAValue = function(frame)&lt;br /&gt;
	local ent = mw.wikibase.getEntityObject()&lt;br /&gt;
	local props = ent:formatPropertyValues('P1323')&lt;br /&gt;
	local out = {}&lt;br /&gt;
	local t = {}&lt;br /&gt;
	for k, v in pairs(props) do&lt;br /&gt;
		if k == 'value' then&lt;br /&gt;
			t = mw.text.split( v, &amp;quot;, &amp;quot;)&lt;br /&gt;
			for k2, v2 in pairs(t) do&lt;br /&gt;
				out[#out + 1] = &amp;quot;[http://www.unifr.ch/ifaa/Public/EntryPage/TA98%20Tree/Entity%20TA98%20EN/&amp;quot; .. string.sub(v2, 2) .. &amp;quot;%20Entity%20TA98%20EN.htm &amp;quot; .. v2 .. &amp;quot;]&amp;quot;&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	ret = table.concat(out, &amp;quot;&amp;lt;br&amp;gt; &amp;quot;)&lt;br /&gt;
	if #ret == 0 then&lt;br /&gt;
		ret = &amp;quot;Invalid TA&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	return ret&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Jan Karlsson</name></author>
	</entry>
</feed>