<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://skandinavien-wiki.net/w/index.php?action=history&amp;feed=atom&amp;title=Modul%3AWikidata2</id>
	<title>Modul:Wikidata2 - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://skandinavien-wiki.net/w/index.php?action=history&amp;feed=atom&amp;title=Modul%3AWikidata2"/>
	<link rel="alternate" type="text/html" href="https://skandinavien-wiki.net/w/index.php?title=Modul:Wikidata2&amp;action=history"/>
	<updated>2026-05-15T04:43:01Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in skandinavien-wiki.net</subtitle>
	<generator>MediaWiki 1.39.10</generator>
	<entry>
		<id>https://skandinavien-wiki.net/w/index.php?title=Modul:Wikidata2&amp;diff=10073&amp;oldid=prev</id>
		<title>Xineohp1506: 1 Version von :wikivoyage:Modul:Wikidata2 importiert</title>
		<link rel="alternate" type="text/html" href="https://skandinavien-wiki.net/w/index.php?title=Modul:Wikidata2&amp;diff=10073&amp;oldid=prev"/>
		<updated>2023-01-23T10:43:20Z</updated>

		<summary type="html">&lt;p&gt;1 Version von &lt;a href=&quot;https://de.wikivoyage.org/wiki/Modul:Wikidata2&quot; class=&quot;extiw&quot; title=&quot;wikivoyage:Modul:Wikidata2&quot;&gt;wikivoyage:Modul:Wikidata2&lt;/a&gt; importiert&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;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 23. Januar 2023, 12:43 Uhr&lt;/td&gt;
				&lt;/tr&gt;
&lt;!-- diff cache key d03bbfb2:diff::1.12:old-10072:rev-10073 --&gt;
&lt;/table&gt;</summary>
		<author><name>Xineohp1506</name></author>
	</entry>
	<entry>
		<id>https://skandinavien-wiki.net/w/index.php?title=Modul:Wikidata2&amp;diff=10072&amp;oldid=prev</id>
		<title>wikivoyage&gt;RolandUnger: Umrechnung in SI-Einheiten</title>
		<link rel="alternate" type="text/html" href="https://skandinavien-wiki.net/w/index.php?title=Modul:Wikidata2&amp;diff=10072&amp;oldid=prev"/>
		<updated>2021-08-07T07:53:03Z</updated>

		<summary type="html">&lt;p&gt;Umrechnung in SI-Einheiten&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local check		= require(&amp;#039;Modul:Check2&amp;#039;)&lt;br /&gt;
local yesno		= require(&amp;#039;Modul:Yesno&amp;#039;)&lt;br /&gt;
local languages	= require(&amp;#039;Modul:Languages&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
local cfgI18		= mw.loadData(&amp;#039;Modul:Wikidata2/i18n&amp;#039;)&lt;br /&gt;
local cfgParams		= mw.loadData(&amp;#039;Modul:Wikidata2/Params&amp;#039;)&lt;br /&gt;
local cfgDelimiters	= mw.loadData(&amp;#039;Modul:Wikidata2/Delimiters&amp;#039;)&lt;br /&gt;
local cfgFormats	= mw.loadData(&amp;#039;Modul:Wikidata2/Formats&amp;#039;)&lt;br /&gt;
local cfgPOITypes	= mw.loadData(&amp;#039;Modul:Wikidata2/POITypes&amp;#039;)&lt;br /&gt;
local cfgGeography	= mw.loadData(&amp;#039;Modul:Wikidata2/Geography&amp;#039;)&lt;br /&gt;
local cfgUnits		= mw.loadData(&amp;#039;Modul:Wikidata2/Units&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
local lang = mw.language.getContentLanguage()&lt;br /&gt;
&lt;br /&gt;
-- Auswertung und Prüfung von übergebenen Parametern&lt;br /&gt;
local function wdGetParameter ( Frame, Params, Parameter )&lt;br /&gt;
	local argsParent = Frame:getParent().args&lt;br /&gt;
	local argsFrame = Frame.args&lt;br /&gt;
	for key,value in pairs ( argsParent ) do&lt;br /&gt;
		argsParent[string.lower(key)] = value&lt;br /&gt;
	end&lt;br /&gt;
	for key,value in pairs ( argsFrame ) do&lt;br /&gt;
		argsParent[string.lower(key)] = value&lt;br /&gt;
	end&lt;br /&gt;
	return argsParent[Parameter] or argsFrame[Parameter] or Params[Parameter]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getEntityId ()&lt;br /&gt;
	local pageID = mw.wikibase.getEntityIdForCurrentPage()&lt;br /&gt;
	local result = {}&lt;br /&gt;
	if ( pageID ~= nil ) then&lt;br /&gt;
		result = { &lt;br /&gt;
			[&amp;quot;id&amp;quot;]		= pageID, &lt;br /&gt;
			[&amp;quot;hasID&amp;quot;]	= true, &lt;br /&gt;
			[&amp;quot;errCode&amp;quot;] = 1, &lt;br /&gt;
			[&amp;quot;errMsg&amp;quot;]  = cfgI18[&amp;quot;getEntityId&amp;quot;][&amp;quot;1&amp;quot;]&lt;br /&gt;
			}&lt;br /&gt;
	else&lt;br /&gt;
		result = { &lt;br /&gt;
			[&amp;quot;id&amp;quot;]		= &amp;quot;&amp;quot;, &lt;br /&gt;
			[&amp;quot;hasID&amp;quot;]	= false, &lt;br /&gt;
			[&amp;quot;errCode&amp;quot;] = 0, &lt;br /&gt;
			[&amp;quot;errMsg&amp;quot;]  = cfgI18[&amp;quot;getEntityId&amp;quot;][&amp;quot;0&amp;quot;]&lt;br /&gt;
			}&lt;br /&gt;
	end&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local wdEntityId = getEntityId()&lt;br /&gt;
local wdErrCategory = &amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
local wd = {}&lt;br /&gt;
&lt;br /&gt;
function wd.formatNumberT ( number )&lt;br /&gt;
	local decimalPosition = mw.ustring.find( number, &amp;quot;.&amp;quot;, 1, true)&lt;br /&gt;
	local minus = mw.ustring.find( number, &amp;quot;-&amp;quot;, 1, true)&lt;br /&gt;
&lt;br /&gt;
	number = mw.ustring.gsub ( number, &amp;#039;%.&amp;#039;, &amp;#039;,&amp;#039; )&lt;br /&gt;
	if ( minus ) then number = mw.ustring.sub( number, 2) end &lt;br /&gt;
	if (not decimalPosition) then&lt;br /&gt;
		decimalPosition = mw.ustring.len ( number ) + 1;&lt;br /&gt;
	end&lt;br /&gt;
	if (decimalPosition &amp;gt; 4 ) then&lt;br /&gt;
		local i = decimalPosition - 3;&lt;br /&gt;
		while (i &amp;gt; 1) do&lt;br /&gt;
			number = mw.ustring.sub(number, 1, i - 1) .. &amp;#039;.&amp;#039; .. mw.ustring.sub( number, i );&lt;br /&gt;
			decimalPosition = decimalPosition + 1;&lt;br /&gt;
			i = i - 3;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if ( minus ) then number = &amp;#039;−&amp;#039; .. number end&lt;br /&gt;
	return number;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wd.getLabel ( id )&lt;br /&gt;
	if ( id == nil or id == &amp;quot;&amp;quot; or id == &amp;quot;self&amp;quot; ) then &lt;br /&gt;
		if ( wdEntityId.hasID ) then &lt;br /&gt;
			id = wdEntityId.id&lt;br /&gt;
		else &lt;br /&gt;
			return { &lt;br /&gt;
				[&amp;quot;label&amp;quot;]	= &amp;#039;&amp;#039;, &lt;br /&gt;
				[&amp;quot;errCode&amp;quot;]		= 2, &lt;br /&gt;
				[&amp;quot;errMsg&amp;quot;]		= cfgI18[&amp;quot;getLabel&amp;quot;][&amp;quot;2&amp;quot;]&lt;br /&gt;
				}&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local result	= {}&lt;br /&gt;
	local label = mw.wikibase.label ( id )&lt;br /&gt;
	if ( label ~= nil  ) then &lt;br /&gt;
		result = { &lt;br /&gt;
			[&amp;quot;label&amp;quot;]	= label, &lt;br /&gt;
			[&amp;quot;errCode&amp;quot;] = 1, &lt;br /&gt;
			[&amp;quot;errMsg&amp;quot;]  = cfgI18[&amp;quot;getLabel&amp;quot;][&amp;quot;1&amp;quot;]&lt;br /&gt;
			}&lt;br /&gt;
	else &lt;br /&gt;
		result = { &lt;br /&gt;
			[&amp;quot;label&amp;quot;]	= &amp;quot;&amp;quot;, &lt;br /&gt;
			[&amp;quot;errCode&amp;quot;] = 2, &lt;br /&gt;
			[&amp;quot;errMsg&amp;quot;]  = cfgI18[&amp;quot;getLabel&amp;quot;][&amp;quot;2&amp;quot;]&lt;br /&gt;
			}&lt;br /&gt;
	end&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wd.getLabelLang ( id, lang )&lt;br /&gt;
	if ( id == nil or id == &amp;quot;&amp;quot; or id == &amp;quot;self&amp;quot; ) then&lt;br /&gt;
		if ( wdEntityId.hasID ) then &lt;br /&gt;
				id = wdEntityId.id&lt;br /&gt;
		else &lt;br /&gt;
			return { &lt;br /&gt;
				[&amp;quot;label&amp;quot;]	= &amp;quot;&amp;quot;, &lt;br /&gt;
				[&amp;quot;errCode&amp;quot;] = 2, &lt;br /&gt;
				[&amp;quot;errMsg&amp;quot;]  = cfgI18[&amp;quot;getLabelLang&amp;quot;][&amp;quot;2&amp;quot;]&lt;br /&gt;
				}&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local result	= {}&lt;br /&gt;
	local entityLabel = mw.wikibase.getLabelByLang( id, lang )&lt;br /&gt;
	if ( entityLabel ~= nil  ) then&lt;br /&gt;
		result = { &lt;br /&gt;
			[&amp;quot;label&amp;quot;]	= entityLabel, &lt;br /&gt;
			[&amp;quot;errCode&amp;quot;] = 1, &lt;br /&gt;
			[&amp;quot;errMsg&amp;quot;]  = cfgI18[&amp;quot;getLabelLang&amp;quot;][&amp;quot;1&amp;quot;]&lt;br /&gt;
		}&lt;br /&gt;
	else&lt;br /&gt;
		result = { &lt;br /&gt;
			[&amp;quot;label&amp;quot;]	= &amp;quot;&amp;quot;, &lt;br /&gt;
			[&amp;quot;errCode&amp;quot;] = 0, &lt;br /&gt;
			[&amp;quot;errMsg&amp;quot;]  = cfgI18[&amp;quot;getLabelLang&amp;quot;][&amp;quot;0&amp;quot;]&lt;br /&gt;
			}&lt;br /&gt;
	end&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wd.getSiteLink ( id, wiki )&lt;br /&gt;
	if ( wiki == nil ) then wiki = &amp;#039;dewikivoyage&amp;#039; end&lt;br /&gt;
	if ( id == nil or id == &amp;quot;&amp;quot; or id == &amp;quot;self&amp;quot; ) then &lt;br /&gt;
		if ( wdEntityId.hasID ) then &lt;br /&gt;
				id = wdEntityId.id&lt;br /&gt;
		else &lt;br /&gt;
			return { &lt;br /&gt;
				[&amp;quot;sitelink&amp;quot;]	= &amp;#039;&amp;#039;, &lt;br /&gt;
				[&amp;quot;errCode&amp;quot;]		= 2, &lt;br /&gt;
				[&amp;quot;errMsg&amp;quot;]		= cfgI18[&amp;quot;getSiteLink&amp;quot;][&amp;quot;2&amp;quot;]&lt;br /&gt;
				}&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local result	= {}&lt;br /&gt;
	local sitelink = mw.wikibase.getSitelink ( id, wiki )&lt;br /&gt;
	if ( sitelink == nil ) then&lt;br /&gt;
		result = { &lt;br /&gt;
			[&amp;quot;sitelink&amp;quot;]	= &amp;#039;&amp;#039;, &lt;br /&gt;
			[&amp;quot;errCode&amp;quot;]		= 0, &lt;br /&gt;
			[&amp;quot;errMsg&amp;quot;]		= cfgI18[&amp;quot;getSiteLink&amp;quot;][&amp;quot;0&amp;quot;]&lt;br /&gt;
		}&lt;br /&gt;
	else&lt;br /&gt;
		result = { &lt;br /&gt;
			[&amp;quot;sitelink&amp;quot;]	= sitelink, &lt;br /&gt;
			[&amp;quot;errCode&amp;quot;]		= 1, &lt;br /&gt;
			[&amp;quot;errMsg&amp;quot;]		= cfgI18[&amp;quot;getSiteLink&amp;quot;][&amp;quot;1&amp;quot;]&lt;br /&gt;
			}&lt;br /&gt;
	end&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- zählt die Einträge einer Eigenschaft&lt;br /&gt;
function wd.getPropertyCount ( claim )&lt;br /&gt;
	return #claim&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wd.getBestStatement ( id, property )&lt;br /&gt;
	if ( id == nil or id == &amp;quot;&amp;quot; or id == &amp;quot;self&amp;quot; ) then&lt;br /&gt;
		if ( wdEntityId.hasID ) then&lt;br /&gt;
			id = wdEntityId.id&lt;br /&gt;
		else &lt;br /&gt;
			return { &lt;br /&gt;
				[&amp;quot;statement&amp;quot;]	= {}, &lt;br /&gt;
				[&amp;quot;errCode&amp;quot;]		= 2, &lt;br /&gt;
				[&amp;quot;errMsg&amp;quot;]		= cfgI18[&amp;quot;getStatement&amp;quot;][&amp;quot;2&amp;quot;],&lt;br /&gt;
				[&amp;quot;count&amp;quot;]		= 0&lt;br /&gt;
				}&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local result	= {}&lt;br /&gt;
	local statement = mw.wikibase.getBestStatements( id, property )&lt;br /&gt;
	if ( next(statement) == nil ) then&lt;br /&gt;
		result = { &lt;br /&gt;
			[&amp;quot;statement&amp;quot;]	= {}, &lt;br /&gt;
			[&amp;quot;errCode&amp;quot;]		= 0, &lt;br /&gt;
			[&amp;quot;errMsg&amp;quot;]		= cfgI18[&amp;quot;getStatement&amp;quot;][&amp;quot;0&amp;quot;],&lt;br /&gt;
			[&amp;quot;count&amp;quot;]		= 0&lt;br /&gt;
		}&lt;br /&gt;
	else&lt;br /&gt;
		result = { &lt;br /&gt;
			[&amp;quot;statement&amp;quot;]	= statement, &lt;br /&gt;
			[&amp;quot;errCode&amp;quot;]		= 1, &lt;br /&gt;
			[&amp;quot;errMsg&amp;quot;]		= cfgI18[&amp;quot;getStatement&amp;quot;][&amp;quot;1&amp;quot;],&lt;br /&gt;
			[&amp;quot;count&amp;quot;]		= wd.getPropertyCount ( statement )&lt;br /&gt;
			}&lt;br /&gt;
	end&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wd.getStatementAll ( id, property )&lt;br /&gt;
	if ( id == nil or id == &amp;quot;&amp;quot; or id == &amp;quot;self&amp;quot; ) then&lt;br /&gt;
		if ( wdEntityId.hasID ) then&lt;br /&gt;
			id = wdEntityId.id&lt;br /&gt;
		else &lt;br /&gt;
			return { &lt;br /&gt;
				[&amp;quot;statement&amp;quot;]	= {}, &lt;br /&gt;
				[&amp;quot;errCode&amp;quot;]		= 2, &lt;br /&gt;
				[&amp;quot;errMsg&amp;quot;]		= cfgI18[&amp;quot;getStatement&amp;quot;][&amp;quot;2&amp;quot;],&lt;br /&gt;
				[&amp;quot;count&amp;quot;]		= 0&lt;br /&gt;
				}&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local result	= {}&lt;br /&gt;
	local statement = mw.wikibase.getAllStatements( id, property )&lt;br /&gt;
	if ( next(statement) == nil ) then&lt;br /&gt;
		result = { &lt;br /&gt;
			[&amp;quot;statement&amp;quot;]	= {}, &lt;br /&gt;
			[&amp;quot;errCode&amp;quot;]		= 0, &lt;br /&gt;
			[&amp;quot;errMsg&amp;quot;]		= cfgI18[&amp;quot;getStatement&amp;quot;][&amp;quot;0&amp;quot;],&lt;br /&gt;
			[&amp;quot;count&amp;quot;]		= 0&lt;br /&gt;
		}&lt;br /&gt;
	else&lt;br /&gt;
		result = { &lt;br /&gt;
			[&amp;quot;statement&amp;quot;]	= statement, &lt;br /&gt;
			[&amp;quot;errCode&amp;quot;]		= 1, &lt;br /&gt;
			[&amp;quot;errMsg&amp;quot;]		= cfgI18[&amp;quot;getStatement&amp;quot;][&amp;quot;1&amp;quot;],&lt;br /&gt;
			[&amp;quot;count&amp;quot;]		= wd.getPropertyCount ( statement )&lt;br /&gt;
			}&lt;br /&gt;
	end&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function wd.getPlainWikidataId (id)&lt;br /&gt;
    if (( id == nil or id == &amp;quot;&amp;quot; or id == &amp;quot;self&amp;quot; ) and wdEntityId.hasID) then&lt;br /&gt;
        return wdEntityId.id&lt;br /&gt;
    else&lt;br /&gt;
        return id&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wd.getWikidataLink (id, property)&lt;br /&gt;
    local uri = &amp;#039;wikidata:&amp;#039; .. wd.getPlainWikidataId(id)&lt;br /&gt;
    if (property ~= nil) then&lt;br /&gt;
        uri = uri .. &amp;#039;#&amp;#039; .. property&lt;br /&gt;
    end&lt;br /&gt;
    return uri&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wd.Entity ()&lt;br /&gt;
	return wdEntityId&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wd.EntityId ()&lt;br /&gt;
	return wdEntityId.id&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wd.hasEntity ()&lt;br /&gt;
	return wdEntityId.hasID&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wd.EntityIdErrCode ()&lt;br /&gt;
	return wdEntityId.errCode&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wd.EntityIdErrText ()&lt;br /&gt;
	return wdEntityId.errMsg&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wd.Label ()&lt;br /&gt;
	return wd.getLabel().label&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wd.getQualifier ( property, qualifier, formatting, delimiter )&lt;br /&gt;
	local formatString = formatting or &amp;#039;&amp;#039;&lt;br /&gt;
	local delimiterString = delimiter or &amp;#039;,&amp;#039;&lt;br /&gt;
	local result = {&lt;br /&gt;
		[&amp;quot;errCode&amp;quot;]	 = 0,&lt;br /&gt;
		[&amp;quot;errText&amp;quot;]	 = &amp;#039;&amp;#039;,&lt;br /&gt;
		[&amp;quot;qualifier&amp;quot;]  = &amp;#039;&amp;#039;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	local wdValue&lt;br /&gt;
	if property.qualifiers ~=  nil then&lt;br /&gt;
		if property.qualifiers[qualifier] ~= nil then&lt;br /&gt;
			local out = {}&lt;br /&gt;
			for k,v in pairs(property.qualifiers[qualifier]) do&lt;br /&gt;
				if ( v.datavalue.type == &amp;#039;time&amp;#039; ) then &lt;br /&gt;
					wdValue = v.datavalue.value.time&lt;br /&gt;
					-- Workaround für Timestamps, die nur ein Jahr repräsentieren&lt;br /&gt;
					wdValue = mw.ustring.gsub ( wdValue, &amp;#039;%-00%-00T00:00:00Z&amp;#039;, &amp;#039;-01-01T00:00:00Z&amp;#039; )&lt;br /&gt;
					if ( formatString ~= &amp;#039;&amp;#039; ) then&lt;br /&gt;
						wdValue = lang:formatDate ( formatString, wdValue )&lt;br /&gt;
					end&lt;br /&gt;
					out[#out + 1] = wdValue&lt;br /&gt;
				end&lt;br /&gt;
				if ( v.datavalue.type == &amp;#039;wikibase-entityid&amp;#039; ) then &lt;br /&gt;
					wdValue = v.datavalue.value.id&lt;br /&gt;
					out[#out + 1] = wdValue&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			result.errCode = 1&lt;br /&gt;
			result.errText = cfgI18[&amp;quot;getQualifier&amp;quot;][&amp;quot;1&amp;quot;]&lt;br /&gt;
			result.qualifier = table.concat(out, delimiterString)&lt;br /&gt;
		else&lt;br /&gt;
			result.errText = cfgI18[&amp;quot;getQualifier&amp;quot;][&amp;quot;0&amp;quot;]&lt;br /&gt;
		end  &lt;br /&gt;
	else&lt;br /&gt;
		result.errText = cfgI18[&amp;quot;getQualifier&amp;quot;][&amp;quot;0&amp;quot;]&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wd.getLangQualifier ( property )&lt;br /&gt;
	&lt;br /&gt;
	local result = &amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	if property.qualifiers ~=  nil then&lt;br /&gt;
		if property.qualifiers.P407 ~= nil then&lt;br /&gt;
			if property.qualifiers.P407[1] ~= nil then&lt;br /&gt;
				if property.qualifiers.P407[1].datavalue ~= nil then&lt;br /&gt;
					if property.qualifiers.P407[1].datavalue.value ~= nil then&lt;br /&gt;
						if property.qualifiers.P407[1].datavalue.value.id ~= nil then&lt;br /&gt;
							local langID = property.qualifiers.P407[1].datavalue.value.id&lt;br /&gt;
							result = languages.id2code[langID] or &amp;#039;no_lang&amp;#039;&lt;br /&gt;
							if languages.id2code[langID] == nil then &lt;br /&gt;
								wdErrCategory = wdErrCategory .. &amp;#039;[[Kategorie:Wikidata:Unbekannter Sprachcode]]&amp;#039; &lt;br /&gt;
							end&lt;br /&gt;
						else&lt;br /&gt;
							result = &amp;#039;no_lang&amp;#039;&lt;br /&gt;
						end&lt;br /&gt;
					else&lt;br /&gt;
						result = &amp;#039;no_lang&amp;#039;&lt;br /&gt;
					end&lt;br /&gt;
				else&lt;br /&gt;
					result = &amp;#039;no_lang&amp;#039;&lt;br /&gt;
				end&lt;br /&gt;
			else&lt;br /&gt;
				result = &amp;#039;no_lang&amp;#039;&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			result = &amp;#039;no_lang&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		result = &amp;#039;no_lang&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- helper function round&lt;br /&gt;
-- n: value to round&lt;br /&gt;
-- idp: number of digits after the decimal point&lt;br /&gt;
local function round( n, idp )&lt;br /&gt;
	local m = 10^( idp or 0 )&lt;br /&gt;
	if n &amp;gt;= 0 then&lt;br /&gt;
		return math.floor( n * m + 0.5 ) / m&lt;br /&gt;
	else&lt;br /&gt;
		return math.ceil( n * m - 0.5 ) / m&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wd.getProperty ( claim, formatting, showRanking, label, parameters )&lt;br /&gt;
	&lt;br /&gt;
	if ( claim[1] ~= nil ) then	&lt;br /&gt;
		&lt;br /&gt;
		if ( claim[1].mainsnak.snaktype == &amp;#039;novalue&amp;#039; ) then return &amp;#039;&amp;#039; end&lt;br /&gt;
			&lt;br /&gt;
		local wdValue  = &amp;#039;&amp;#039;&lt;br /&gt;
		local unit&lt;br /&gt;
&lt;br /&gt;
		local delimiter = cfgDelimiters[claim[1].mainsnak.property]&lt;br /&gt;
		if ( delimiter == nil ) then delimiter = cfgDelimiters[&amp;quot;default&amp;quot;] end&lt;br /&gt;
&lt;br /&gt;
		if ( formatting == nil ) then formatting = &amp;#039;default&amp;#039; end&lt;br /&gt;
		local formatString = cfgFormats[formatting] or cfgFormats[&amp;quot;default&amp;quot;]&lt;br /&gt;
		local formatStringParameters = mw.ustring.match ( formatString, &amp;#039;//.-#&amp;#039; )&lt;br /&gt;
		if ( formatStringParameters ~= nil ) then&lt;br /&gt;
			formatString = string.sub ( formatString, 1 , string.find ( formatString, formatStringParameters ) - 1 ) .. &amp;#039;#&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		local qualifierParameters = mw.ustring.match ( formatString, &amp;#039;#QUALIFIER:.-#&amp;#039; ) or &amp;#039;&amp;#039;&lt;br /&gt;
		local qualifierParameter = mw.ustring.gsub( qualifierParameters, &amp;#039;#QUALIFIER:(.-):(.-)#&amp;#039;, &amp;#039;%1&amp;#039; ) or &amp;#039;&amp;#039;&lt;br /&gt;
		local qualifierFormat = mw.ustring.gsub( qualifierParameters, &amp;#039;#QUALIFIER:(.-):(.-)#&amp;#039;, &amp;#039;%2&amp;#039; ) or &amp;#039;&amp;#039;&lt;br /&gt;
		local qualifierResult = {}&lt;br /&gt;
&lt;br /&gt;
		if ( showRanking == nil ) then showRanking = false end&lt;br /&gt;
&lt;br /&gt;
		if ( label == nil ) then label = wd.getLabel().label end&lt;br /&gt;
&lt;br /&gt;
		local out = {}&lt;br /&gt;
&lt;br /&gt;
		if ( claim[1].mainsnak.datatype == &amp;#039;wikibase-item&amp;#039; ) then &lt;br /&gt;
			for k,v in pairs ( claim ) do&lt;br /&gt;
				wdValue = wd.getLabel( v.mainsnak.datavalue.value.id ).label&lt;br /&gt;
			if ( wdValue == &amp;#039;&amp;#039; ) then&lt;br /&gt;
				wdValue = wd.getLabelLang( v.mainsnak.datavalue.value.id, &amp;#039;en&amp;#039; ).label&lt;br /&gt;
			end&lt;br /&gt;
			if ( formatStringParameters ~= nil ) then&lt;br /&gt;
				local tmpFormatStringParameters = string.sub ( formatStringParameters, 3 )&lt;br /&gt;
				if ( string.sub ( tmpFormatStringParameters, 1, 9 ) == &amp;#039;sitelink:&amp;#039; ) then&lt;br /&gt;
					local interwiki = string.sub ( tmpFormatStringParameters, 10 )&lt;br /&gt;
					interwiki = mw.ustring.gsub( interwiki, &amp;#039;#&amp;#039;, &amp;#039;&amp;#039; )&lt;br /&gt;
						if ( interwiki ~= &amp;#039;no&amp;#039; ) then&lt;br /&gt;
							local Link = wd.getSiteLink (v.mainsnak.datavalue.value.id, interwiki )&lt;br /&gt;
							if ( Link.errCode == 1 ) then &lt;br /&gt;
								if ( interwiki == &amp;#039;dewiki&amp;#039; ) then&lt;br /&gt;
									wdValue = &amp;#039;[[w:&amp;#039; .. Link.sitelink .. &amp;#039;|&amp;#039; .. wdValue .. &amp;#039;]]&amp;#039; &lt;br /&gt;
								elseif ( interwiki == &amp;#039;dewikivoyage&amp;#039; ) then&lt;br /&gt;
									wdValue = &amp;#039;[[&amp;#039; .. Link.sitelink .. &amp;#039;|&amp;#039; .. Link.sitelink:gsub ( &amp;#039;%(.*%)&amp;#039;, &amp;#039;&amp;#039; ) .. &amp;#039;]]&amp;#039;&lt;br /&gt;
								end&lt;br /&gt;
							end&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
				else&lt;br /&gt;
					local deLink = wd.getSiteLink ( v.mainsnak.datavalue.value.id )&lt;br /&gt;
					if ( deLink.errCode == 1 ) then wdValue = &amp;#039;[[&amp;#039; .. deLink.sitelink .. &amp;#039;|&amp;#039; .. wdValue .. &amp;#039;]]&amp;#039; end&lt;br /&gt;
				end&lt;br /&gt;
				wdValue = mw.ustring.gsub ( mw.ustring.gsub ( mw.ustring.gsub ( formatString, &amp;#039;#ID#&amp;#039;, v.mainsnak.datavalue.value.id ), &amp;#039;#LABEL#&amp;#039;, label ), &amp;#039;#PROPERTY#&amp;#039;, wdValue )&lt;br /&gt;
				if showRanking then&lt;br /&gt;
					out[#out + 1] = &amp;#039;&amp;lt;span class=&amp;quot;wd-rank-&amp;#039; .. v.rank .. &amp;#039;&amp;quot;&amp;gt;&amp;#039; .. wdValue .. &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
				else&lt;br /&gt;
					out[#out + 1] = wdValue&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		elseif ( claim[1].mainsnak.datatype == &amp;#039;commonsMedia&amp;#039; ) then&lt;br /&gt;
			for k,v in pairs ( claim ) do&lt;br /&gt;
				wdValue = v.mainsnak.datavalue.value&lt;br /&gt;
				wdValue = mw.ustring.gsub ( formatString, &amp;#039;#PROPERTY#&amp;#039;, wdValue )&lt;br /&gt;
				out[#out + 1] = wdValue&lt;br /&gt;
			end&lt;br /&gt;
		elseif ( claim[1].mainsnak.datatype == &amp;#039;quantity&amp;#039; ) then&lt;br /&gt;
			for k,v in pairs ( claim ) do&lt;br /&gt;
				if v.mainsnak.datavalue then&lt;br /&gt;
					unit = cfgUnits[ v.mainsnak.datavalue.value.unit:gsub( &amp;#039;https?://www.wikidata.org/entity/&amp;#039;, &amp;#039;&amp;#039; ) ] or &amp;#039;&amp;#039;&lt;br /&gt;
					wdValue = tonumber( v.mainsnak.datavalue.value.amount )&lt;br /&gt;
					if unit ~= &amp;#039;&amp;#039; then&lt;br /&gt;
						if unit.factor ~= 1 then&lt;br /&gt;
							wdValue = round( wdValue * unit.factor, 1 )&lt;br /&gt;
						end&lt;br /&gt;
						unit = unit.si&lt;br /&gt;
					end&lt;br /&gt;
					&lt;br /&gt;
					wdValue = tostring ( wdValue )&lt;br /&gt;
					wdValue = mw.ustring.gsub ( mw.ustring.gsub ( formatString, &amp;#039;#FORMAT:T#&amp;#039;, wd.formatNumberT ( wdValue ) ), &amp;#039;#PROPERTY#&amp;#039;, wdValue )&lt;br /&gt;
					if ( qualifierParameters ~= &amp;#039;&amp;#039; ) then&lt;br /&gt;
						qualifierResult = wd.getQualifier ( v, qualifierParameter, qualifierFormat )&lt;br /&gt;
						wdValue = mw.ustring.gsub ( wdValue, qualifierParameters, qualifierResult.qualifier )&lt;br /&gt;
					end&lt;br /&gt;
					wdValue = mw.ustring.gsub ( wdValue, &amp;#039;#UNIT#&amp;#039;, unit )&lt;br /&gt;
					if showRanking then&lt;br /&gt;
						out[#out + 1] = &amp;#039;&amp;lt;span class=&amp;quot;wd-rank-&amp;#039; .. v.rank .. &amp;#039;&amp;quot;&amp;gt;&amp;#039; .. wdValue .. &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
					else&lt;br /&gt;
						out[#out + 1] = wdValue&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		elseif ( claim[1].mainsnak.datatype == &amp;#039;globe-coordinate&amp;#039; ) then&lt;br /&gt;
			local lat		= &amp;#039;&amp;#039;&lt;br /&gt;
			local long	  = &amp;#039;&amp;#039;&lt;br /&gt;
			local precision	= &amp;#039;&amp;#039;&lt;br /&gt;
			for k,v in pairs ( claim ) do&lt;br /&gt;
				lat		= tonumber ( v.mainsnak.datavalue.value.latitude )&lt;br /&gt;
				long	  = tonumber ( v.mainsnak.datavalue.value.longitude )&lt;br /&gt;
				precision	= tonumber ( v.mainsnak.datavalue.value.precision )&lt;br /&gt;
				wdValue = mw.ustring.gsub ( mw.ustring.gsub ( mw.ustring.gsub ( formatString, &amp;#039;#LAT#&amp;#039;, lat ), &amp;#039;#LONG#&amp;#039;, long ), &amp;#039;#PRECISION#&amp;#039;, precision )&lt;br /&gt;
				if showRanking then&lt;br /&gt;
					out[#out + 1] = &amp;#039;&amp;lt;span class=&amp;quot;wd-rank-&amp;#039; .. v.rank .. &amp;#039;&amp;quot;&amp;gt;&amp;#039; .. wdValue .. &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
				else&lt;br /&gt;
					out[#out + 1] = wdValue&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		elseif ( claim[1].mainsnak.datatype == &amp;#039;url&amp;#039; ) then&lt;br /&gt;
			if ( claim[1].mainsnak.datavalue ~= nil ) then&lt;br /&gt;
				local qualifierLang = mw.ustring.match ( formatString, &amp;#039;#PROPERTY:LANG:.-#&amp;#039; ) or &amp;#039;&amp;#039;&lt;br /&gt;
				local qualifierLangPlus = mw.ustring.match ( formatString, &amp;#039;#PROPERTY:LANG%+:.-#&amp;#039; ) or &amp;#039;&amp;#039;&lt;br /&gt;
				if ( qualifierLang ~= &amp;#039;&amp;#039; ) then&lt;br /&gt;
					local qLang = string.lower ( mw.ustring.gsub( qualifierLang, &amp;#039;#PROPERTY:LANG:(.-)#&amp;#039;, &amp;#039;%1&amp;#039; ) ) or &amp;#039;&amp;#039;&lt;br /&gt;
					local urlList = {}&lt;br /&gt;
					local langCode = &amp;#039;&amp;#039;&lt;br /&gt;
					for k,v in pairs ( claim ) do&lt;br /&gt;
						langCode = wd.getLangQualifier(v)&lt;br /&gt;
						urlList[langCode] = mw.ustring.gsub ( formatString, &amp;#039;#PROPERTY:LANG:(.-)#&amp;#039;, v.mainsnak.datavalue.value )&lt;br /&gt;
						if ( ( langCode ~= qLang ) and ( langCode ~= &amp;#039;en&amp;#039; ) and ( langCode ~= &amp;#039;no_lang&amp;#039; ) ) then&lt;br /&gt;
							urlList[&amp;#039;xxx&amp;#039;] = mw.ustring.gsub ( formatString, &amp;#039;#PROPERTY:LANG:(.-)#&amp;#039;, v.mainsnak.datavalue.value )&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
					out[#out + 1] = urlList[qLang] or urlList[&amp;#039;en&amp;#039;] or urlList[&amp;#039;xxx&amp;#039;] or urlList[&amp;#039;no_lang&amp;#039;]&lt;br /&gt;
				elseif ( qualifierLangPlus ~= &amp;#039;&amp;#039; ) then&lt;br /&gt;
					local qLang = string.lower ( mw.ustring.gsub( qualifierLangPlus, &amp;#039;#PROPERTY:LANG%+:(.-)#&amp;#039;, &amp;#039;%1&amp;#039; ) ) or &amp;#039;&amp;#039;&lt;br /&gt;
					local urlList = {}&lt;br /&gt;
					local langCode = &amp;#039;&amp;#039;&lt;br /&gt;
					for k,v in pairs ( claim ) do&lt;br /&gt;
						langCode = wd.getLangQualifier(v)&lt;br /&gt;
						if ( ( langCode == &amp;#039;no_lang&amp;#039; ) or ( langCode == qLang ) ) then&lt;br /&gt;
							urlList[langCode] = mw.ustring.gsub ( formatString, &amp;#039;#PROPERTY:LANG%+:(.-)#&amp;#039;, v.mainsnak.datavalue.value )&lt;br /&gt;
						else&lt;br /&gt;
							urlList[langCode] = mw.ustring.gsub ( formatString, &amp;#039;#PROPERTY:LANG%+:(.-)#&amp;#039;, v.mainsnak.datavalue.value ) .. &amp;#039; (&amp;#039; .. langCode .. &amp;#039;)&amp;#039;&lt;br /&gt;
							if ( ( langCode ~= qLang ) and ( langCode ~= &amp;#039;en&amp;#039; ) ) then&lt;br /&gt;
								urlList[&amp;#039;xxx&amp;#039;] = mw.ustring.gsub ( formatString, &amp;#039;#PROPERTY:LANG%+:(.-)#&amp;#039;, v.mainsnak.datavalue.value ) .. &amp;#039; (&amp;#039; .. langCode .. &amp;#039;)&amp;#039;&lt;br /&gt;
							end&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
					out[#out + 1] = urlList[qLang] or urlList[&amp;#039;en&amp;#039;] or urlList[&amp;#039;xxx&amp;#039;] or urlList[&amp;#039;no_lang&amp;#039;]&lt;br /&gt;
				else&lt;br /&gt;
					for k,v in pairs ( claim ) do&lt;br /&gt;
						out[#out + 1] = mw.ustring.gsub ( mw.ustring.gsub ( mw.ustring.gsub ( formatString, &amp;#039;#PROPERTY#&amp;#039;, v.mainsnak.datavalue.value ), &amp;#039;#PROPERTY_NO_HTTP#&amp;#039;, v.mainsnak.datavalue.value:gsub ( &amp;#039;https?://&amp;#039;, &amp;#039;&amp;#039; ) ), &amp;#039;#LABEL#&amp;#039;, label )&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			else&lt;br /&gt;
				out[#out + 1] = &amp;#039;&amp;lt;em&amp;gt;Wert auf Wikidata fehlt.&amp;lt;/em&amp;gt;&amp;#039;&lt;br /&gt;
			end&lt;br /&gt;
		elseif ( claim[1].mainsnak.datatype == &amp;#039;string&amp;#039; or claim[1].mainsnak.datatype == &amp;#039;external-id&amp;#039; ) then&lt;br /&gt;
			for k,v in pairs ( claim ) do&lt;br /&gt;
				out[#out + 1] = mw.ustring.gsub ( formatString, &amp;#039;#PROPERTY#&amp;#039;, v.mainsnak.datavalue.value )&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		local propertyValue	 = table.concat(out, delimiter)&lt;br /&gt;
		if ( parameters ~= nil ) then&lt;br /&gt;
			for k,v in pairs ( parameters ) do&lt;br /&gt;
				propertyValue	 = mw.ustring.gsub ( propertyValue	, &amp;#039;#PARAMETER&amp;#039; .. k .. &amp;#039;#&amp;#039;, v )&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		return propertyValue&lt;br /&gt;
	else&lt;br /&gt;
		return &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Funktionen für spezielle Properties zur Verwendung in anderen Modulen&lt;br /&gt;
function wd.getDomain ( id )&lt;br /&gt;
	local result = wd.getBestStatement ( id, &amp;#039;P17&amp;#039; )&lt;br /&gt;
	if ( result.errCode == 1 ) then&lt;br /&gt;
		if ( result.statement[1].mainsnak.datavalue ~= nil ) then&lt;br /&gt;
			local country = result.statement[1].mainsnak.datavalue.value[&amp;quot;id&amp;quot;]&lt;br /&gt;
			result = wd.getBestStatement ( country, &amp;#039;P78&amp;#039; )&lt;br /&gt;
			if ( result.errCode == 1 ) then&lt;br /&gt;
				if ( result.statement[1].mainsnak.datavalue ~= nil ) then&lt;br /&gt;
					return mw.wikibase.label ( result.statement[1].mainsnak.datavalue.value[&amp;quot;id&amp;quot;] ) or &amp;#039;&amp;#039;&lt;br /&gt;
				else &lt;br /&gt;
					return &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;
		else&lt;br /&gt;
			return &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;
function wd.getCoordinates ( id )&lt;br /&gt;
	local item = wd.getBestStatement ( id, &amp;#039;P625&amp;#039; )&lt;br /&gt;
	local result = {&lt;br /&gt;
		[&amp;quot;errCode&amp;quot;]	 = 0,&lt;br /&gt;
		[&amp;quot;lat&amp;quot;]		  = 0,&lt;br /&gt;
		[&amp;quot;long&amp;quot;]	 = 0,&lt;br /&gt;
		[&amp;quot;precision&amp;quot;]  = 0&lt;br /&gt;
		}&lt;br /&gt;
	result.errCode = item.errCode&lt;br /&gt;
	if ( item.errCode == 1 ) then&lt;br /&gt;
		result.lat = tonumber ( item.statement[1].mainsnak.datavalue.value.latitude )&lt;br /&gt;
		result.long = tonumber ( item.statement[1].mainsnak.datavalue.value.longitude )&lt;br /&gt;
		result.precision = tonumber ( item.statement[1].mainsnak.datavalue.value.precision )&lt;br /&gt;
	end&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wd.getProvince ( id )&lt;br /&gt;
	local newSearch				= true&lt;br /&gt;
	local provinceID				= id&lt;br /&gt;
	local provinceLabelID		= &amp;#039;&amp;#039;&lt;br /&gt;
	local labelProvince			= wd.getLabel().label&lt;br /&gt;
	local labelProvinceLink		= &amp;#039;&amp;#039;&lt;br /&gt;
	local labelProvinceLabel	= &amp;#039;&amp;#039;&lt;br /&gt;
	&lt;br /&gt;
	local isAn	  = {}&lt;br /&gt;
	&lt;br /&gt;
	local result = {&lt;br /&gt;
		[&amp;quot;errCode&amp;quot;]			= 0,&lt;br /&gt;
		[&amp;quot;errTxt&amp;quot;]			= &amp;#039;&amp;#039;,&lt;br /&gt;
		[&amp;quot;errTxtShort&amp;quot;]	= &amp;#039;&amp;#039;,&lt;br /&gt;
		[&amp;quot;provinceID&amp;quot;]		= &amp;#039;&amp;#039;,&lt;br /&gt;
		[&amp;quot;provinceCode&amp;quot;]	= &amp;#039;&amp;#039;,&lt;br /&gt;
		[&amp;quot;province&amp;quot;]		= &amp;#039;&amp;#039;,&lt;br /&gt;
		[&amp;quot;provinceLink&amp;quot;]	= &amp;#039;&amp;#039;,&lt;br /&gt;
		[&amp;quot;provinceLabel&amp;quot;] = &amp;#039;Provinz&amp;#039;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	local item = wd.getBestStatement ( id, &amp;#039;P131&amp;#039; )&lt;br /&gt;
	result.errCode = item.errCode&lt;br /&gt;
	while newSearch do&lt;br /&gt;
		if ( item.errCode == 1 and item.statement[1].mainsnak.datavalue ~= nil ) then&lt;br /&gt;
			provinceID = &amp;#039;Q&amp;#039; .. item.statement[1].mainsnak.datavalue.value[&amp;quot;numeric-id&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
			-- Prüfung ob das or irgendwann mal wieder auf das originale Objekt verwiesen wird (Schleife)&lt;br /&gt;
			if ( provinceID == id ) then&lt;br /&gt;
				result.errCode = 4&lt;br /&gt;
				result.errTxt = cfgI18[&amp;quot;getProvince&amp;quot;][&amp;quot;4&amp;quot;]&lt;br /&gt;
				result.errTxtShort = &amp;#039;[[:wikidata:&amp;#039; .. id .. &amp;#039;|&amp;#039; .. labelProvince .. &amp;#039;]] bildet eine Schleife (Selbstreferenz). [[Kategorie:Artikel mit selbstreferenzierenden Verwaltungseinheiten]]&amp;#039;&lt;br /&gt;
				newSearch = false&lt;br /&gt;
			else&lt;br /&gt;
				isAn = wd.getBestStatement ( provinceID, &amp;#039;P31&amp;#039; )&lt;br /&gt;
				if ( isAn.errCode == 1 ) then&lt;br /&gt;
					provinceLabelID = &amp;#039;Q&amp;#039; .. isAn.statement[1].mainsnak.datavalue.value[&amp;quot;numeric-id&amp;quot;]&lt;br /&gt;
					labelProvince = wd.getLabel ( provinceID ).label&lt;br /&gt;
					labelProvinceLabel = wd.getLabel ( provinceLabelID ).label&lt;br /&gt;
					if ( cfgGeography[&amp;quot;provinces&amp;quot;][provinceLabelID] ) then&lt;br /&gt;
						result.errCode			= 1&lt;br /&gt;
						result.errTxt			= cfgI18[&amp;quot;getProvince&amp;quot;][&amp;quot;1&amp;quot;]&lt;br /&gt;
						result.provinceID		= provinceID&lt;br /&gt;
						result.province		= labelProvince&lt;br /&gt;
						local itemCode = wd.getBestStatement ( provinceID, &amp;#039;P300&amp;#039; )&lt;br /&gt;
						if ( itemCode.errCode == 1 and itemCode.statement[1].mainsnak.datavalue ~= nil ) then&lt;br /&gt;
							result.provinceCode = wd.getProperty ( itemCode.statement )&lt;br /&gt;
						end&lt;br /&gt;
						labelProvinceLink		= wd.getSiteLink ( provinceID ).sitelink&lt;br /&gt;
						if ( labelProvinceLink == &amp;#039;&amp;#039; ) then&lt;br /&gt;
							result.provinceLink	  = labelProvince&lt;br /&gt;
						else&lt;br /&gt;
							result.provinceLink	  = &amp;#039;[[&amp;#039; .. labelProvinceLink .. &amp;#039;|&amp;#039; .. mw.ustring.gsub( labelProvinceLink, &amp;#039;%s%(.*%)&amp;#039;, &amp;#039;&amp;#039; ) .. &amp;#039;]]&amp;#039;&lt;br /&gt;
						end&lt;br /&gt;
						-- derzeit eigenes Label. Wenn Wikidata gewünscht: labelProvinceLabel benutzen&lt;br /&gt;
						result.provinceLabel = cfgGeography[&amp;quot;provinces&amp;quot;][provinceLabelID]&lt;br /&gt;
						newSearch = false&lt;br /&gt;
						if ( cfgGeography[&amp;quot;countries&amp;quot;][provinceLabelID] ) then&lt;br /&gt;
							result.errTxtShort = result.errTxtShort .. &amp;#039;Provinzsuche endet beim Staat[[Kategorie:Artikel mit unbekannter Verwaltungseinheit auf Wikidata]]&amp;#039;&lt;br /&gt;
						end&lt;br /&gt;
					else&lt;br /&gt;
						item = wd.getBestStatement ( provinceID, &amp;#039;P131&amp;#039; )&lt;br /&gt;
					end&lt;br /&gt;
				else&lt;br /&gt;
					result.errCode = 2&lt;br /&gt;
					result.errTxt = cfgI18[&amp;quot;getProvince&amp;quot;][&amp;quot;2&amp;quot;] .. wd.getLabel ( provinceID ).label&lt;br /&gt;
					result.errTxtShort = &amp;#039;Verwaltungseinheit [[:wikidata:&amp;#039; .. provinceID .. &amp;#039;|&amp;#039; .. provinceID .. &amp;#039;]] hat kein &amp;lt;em&amp;gt;ist ein(e)&amp;lt;/em&amp;gt;[[Kategorie:Artikel mit unbekannter Verwaltungseinheit auf Wikidata]]&amp;#039;&lt;br /&gt;
					newSearch = false&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			if ( provinceID == &amp;#039;self&amp;#039; ) then provinceID = wd.EntityId() end&lt;br /&gt;
			result.errCode = 0&lt;br /&gt;
			result.errTxt = cfgI18[&amp;quot;getProvince&amp;quot;][&amp;quot;0&amp;quot;]&lt;br /&gt;
			result.errTxtShort = &amp;#039;[[:wikidata:&amp;#039; .. provinceID .. &amp;#039;|&amp;#039; .. labelProvince .. &amp;#039;]] hat keine übergeordnete Region.[[Kategorie:Artikel ohne übergeordnete Verwaltungseinheit auf Wikidata]]&amp;#039;&lt;br /&gt;
			newSearch = false&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Funktionen zur Verwendung in Vorlagen&lt;br /&gt;
function wd.LabelByID ( frame )&lt;br /&gt;
	local display  = &amp;#039;&amp;#039;&lt;br /&gt;
	local errorStr = &amp;#039;&amp;#039;&lt;br /&gt;
	local id = wdGetParameter ( frame, cfgParams[&amp;quot;LabelByID&amp;quot;], &amp;quot;id&amp;quot; )&lt;br /&gt;
	local result = wd.getLabel(id)&lt;br /&gt;
	display = result.label&lt;br /&gt;
	if ( result.errCode ~= 1 ) then&lt;br /&gt;
		errorStr = errorStr .. check._error ( &amp;#039;Funktion &amp;lt;span style=&amp;quot;font-weight: bold; font-style:italic&amp;quot;&amp;gt;LabelByID&amp;lt;/span&amp;gt;: &amp;#039; .. result.errMsg .. &amp;quot;ID: &amp;quot; .. id, &amp;#039;Wikidata2&amp;#039; )&lt;br /&gt;
	end&lt;br /&gt;
	return errorStr .. check._testParams ( frame:getParent().args, cfgParams[&amp;quot;LabelByID&amp;quot;], &amp;#039;Wikidata2&amp;#039;, &amp;#039;lower&amp;#039; ) .. display&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wd.LabelLang ( frame )&lt;br /&gt;
	local display  = &amp;#039;&amp;#039;&lt;br /&gt;
	local lang= wdGetParameter ( frame, cfgParams[&amp;quot;LabelLang&amp;quot;], &amp;quot;lang&amp;quot; )&lt;br /&gt;
	local result = wd.getLabelLang ( &amp;#039;self&amp;#039;, lang )&lt;br /&gt;
	if ( result.label ~= nil ) then &lt;br /&gt;
		display = result.label&lt;br /&gt;
	end&lt;br /&gt;
	return check._testParams ( frame:getParent().args, cfgParams[&amp;quot;LabelLang&amp;quot;], &amp;quot;Wikidata2&amp;quot;, &amp;#039;lower&amp;#039; ) .. display&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wd.LabelLangByID ( frame )&lt;br /&gt;
	local display  = &amp;#039;&amp;#039;&lt;br /&gt;
	local id= wdGetParameter ( frame, cfgParams[&amp;quot;LabelLang&amp;quot;], &amp;quot;id&amp;quot; )&lt;br /&gt;
	local lang= wdGetParameter ( frame, cfgParams[&amp;quot;LabelLang&amp;quot;], &amp;quot;lang&amp;quot; )&lt;br /&gt;
	local result = wd.getLabelLang ( id, lang )&lt;br /&gt;
	if ( result.label ~= nil ) then &lt;br /&gt;
		display = result.label&lt;br /&gt;
	end&lt;br /&gt;
	return check._testParams ( frame:getParent().args, cfgParams[&amp;quot;LabelLangByID&amp;quot;], &amp;#039;Wikidata2&amp;#039;, &amp;#039;lower&amp;#039; ) .. display&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wd.LabelLangByIDRaw ( id, lang )&lt;br /&gt;
	return wd.getLabelLang ( id, lang )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wd.siteLink ( frame )&lt;br /&gt;
	local display  = &amp;#039;&amp;#039;&lt;br /&gt;
	local id = wdGetParameter ( frame, cfgParams[&amp;quot;siteLink&amp;quot;], &amp;quot;id&amp;quot; )&lt;br /&gt;
	local wiki= wdGetParameter ( frame, cfgParams[&amp;quot;siteLink&amp;quot;], &amp;quot;wiki&amp;quot; )&lt;br /&gt;
	local result = wd.getSiteLink ( id, wiki )&lt;br /&gt;
	if ( result.sitelink ~= nil ) then &lt;br /&gt;
		display = result.sitelink&lt;br /&gt;
	end&lt;br /&gt;
	return check._testParams ( frame:getParent().args, cfgParams[&amp;quot;siteLink&amp;quot;], &amp;quot;Wikidata2&amp;quot;, &amp;#039;lower&amp;#039; ) .. display&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wd.dumpEntity ( frame )&lt;br /&gt;
	local vd = require(&amp;#039;Modul:VarDump&amp;#039;)&lt;br /&gt;
	local display  = &amp;#039;&amp;#039;&lt;br /&gt;
	local id = wdGetParameter ( frame, cfgParams[&amp;quot;dumpEntity&amp;quot;], &amp;quot;id&amp;quot; )&lt;br /&gt;
	local property = mw.ustring.gsub ( wdGetParameter ( frame, cfgParams[&amp;quot;dumpEntity&amp;quot;], &amp;quot;p&amp;quot; ), &amp;#039;p&amp;#039;, &amp;#039;P&amp;#039; )&lt;br /&gt;
	if ( property == &amp;#039;&amp;#039; ) then&lt;br /&gt;
		display  = display .. vd.dump ( mw.wikibase.getEntityObject(id) )&lt;br /&gt;
	else&lt;br /&gt;
		display  = display .. vd.dump ( wd.getStatementAll ( id, property ).statement )&lt;br /&gt;
	end&lt;br /&gt;
	return check._testParams ( frame:getParent().args, cfgParams[&amp;quot;dumpEntity&amp;quot;], &amp;quot;Wikidata2&amp;quot;, &amp;#039;lower&amp;#039; ) .. display&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wd.getValue ( frame )&lt;br /&gt;
	local errorStr = &amp;#039;&amp;#039;&lt;br /&gt;
	local display  = &amp;#039;&amp;#039;&lt;br /&gt;
	local category  = &amp;#039;&amp;#039;&lt;br /&gt;
	local result	= {}&lt;br /&gt;
	local id = wdGetParameter ( frame, cfgParams[&amp;quot;getValue&amp;quot;], &amp;quot;id&amp;quot; )&lt;br /&gt;
	if ( id == &amp;#039;self&amp;#039; ) then id = wdEntityId.id end&lt;br /&gt;
	local property = mw.ustring.gsub ( wdGetParameter ( frame, cfgParams[&amp;quot;getValue&amp;quot;], &amp;quot;p&amp;quot; ), &amp;#039;p&amp;#039;, &amp;#039;P&amp;#039; )&lt;br /&gt;
	local category  = &amp;#039;[[Kategorie:Seiten, die die Wikidata-Eigenschaft &amp;#039;.. property .. &amp;#039; benutzen]]&amp;#039;&lt;br /&gt;
	local ranking = wdGetParameter ( frame, cfgParams[&amp;quot;getValue&amp;quot;], &amp;quot;ranking&amp;quot; )&lt;br /&gt;
	local formatting = wdGetParameter ( frame, cfgParams[&amp;quot;getValue&amp;quot;], &amp;quot;format&amp;quot; )&lt;br /&gt;
	if (formatting == &amp;#039;&amp;#039; ) then formatting = property end&lt;br /&gt;
	local showRanking = wdGetParameter ( frame, cfgParams[&amp;quot;getValue&amp;quot;], &amp;quot;showRanking&amp;quot; )&lt;br /&gt;
	&lt;br /&gt;
	if ( ranking == &amp;#039;all&amp;#039; ) then&lt;br /&gt;
		result = wd.getStatementAll ( id, property )&lt;br /&gt;
	else&lt;br /&gt;
		result = wd.getBestStatement ( id, property )&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if ( result.errCode == 1 ) then&lt;br /&gt;
		display = display .. wd.getProperty ( result.statement, formatting, yesno ( showRanking ), wd.getLabel(id).label )&lt;br /&gt;
	else&lt;br /&gt;
		errorStr = errorStr .. check._error ( &amp;#039;FEHLER (Code: &amp;#039; .. result.errCode .. &amp;#039;): &amp;#039; .. result.errMsg .. &amp;#039;(ID= &amp;#039; .. id .. &amp;#039;, Property= &amp;#039; .. property .. &amp;#039;)&amp;#039;, &amp;#039;Wikidata2&amp;#039; )&lt;br /&gt;
		if ( result.errCode == 2 ) then display = display .. &amp;#039;[[Kategorie:Artikel ohne Objekt auf Wikidata]]&amp;#039; end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return category .. errorStr .. check._testParams ( frame:getParent().args, cfgParams[&amp;quot;getValue&amp;quot;], &amp;#039;Wikidata2&amp;#039;, &amp;#039;lower&amp;#039; ) .. display&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wd.getPOIType ( frame )&lt;br /&gt;
	local errorStr	= &amp;#039;&amp;#039;&lt;br /&gt;
	local display	= &amp;#039;&amp;#039;&lt;br /&gt;
	local poiType	= &amp;#039;&amp;#039;&lt;br /&gt;
	local result	= {}&lt;br /&gt;
	local id = wdGetParameter ( frame, cfgParams[&amp;quot;getValue&amp;quot;], &amp;quot;id&amp;quot; )&lt;br /&gt;
	result = wd.getBestStatement ( id, &amp;#039;P31&amp;#039; )&lt;br /&gt;
	&lt;br /&gt;
	if ( result.errCode == 0 ) then&lt;br /&gt;
		-- Property nicht befüllt &amp;gt; Standard&lt;br /&gt;
		display = display .. cfgPOITypes[&amp;quot;default&amp;quot;]&lt;br /&gt;
	elseif ( result.errCode == 1 ) then&lt;br /&gt;
		-- was gefunden, ersten Eintrag holen, wenn nichts brauchbares da, dann Standard&lt;br /&gt;
		poiType = cfgPOITypes[&amp;quot;Q&amp;quot; .. result.statement[1].mainsnak.datavalue.value[&amp;quot;numeric-id&amp;quot;]]&lt;br /&gt;
		if ( poiType == nil ) then poiType = cfgPOITypes[&amp;quot;default&amp;quot;] end&lt;br /&gt;
		display = display .. poiType&lt;br /&gt;
	else&lt;br /&gt;
		-- kein Objekt mit der ID vorhanden: Fehlermeldung und Standardtyp&lt;br /&gt;
		display = display .. cfgPOITypes[&amp;quot;default&amp;quot;]&lt;br /&gt;
		errorStr = errorStr .. check._error ( &amp;#039;FEHLER (Code: &amp;#039; .. result.errCode .. &amp;#039;): &amp;#039; .. result.errMsg .. &amp;#039;(ID= &amp;#039; .. id .. &amp;#039;)&amp;#039;, &amp;#039;Wikidata2&amp;#039; ) .. &amp;#039;[[Kategorie:Artikel ohne Objekt auf Wikidata]]&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return errorStr .. check._testParams ( frame:getParent().args, cfgParams[&amp;quot;getPOIType&amp;quot;], &amp;#039;Wikidata2&amp;#039;, &amp;#039;lower&amp;#039; ) .. display&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wd.getPOITypeDefault ()&lt;br /&gt;
	return cfgPOITypes[&amp;quot;default&amp;quot;]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function wd.getOfficialWebsite ( frame )&lt;br /&gt;
	local display	= &amp;#039;&amp;#039;&lt;br /&gt;
	local category	= &amp;#039;&amp;#039;&lt;br /&gt;
	local result	= {}&lt;br /&gt;
	local text		= wdGetParameter ( frame, cfgParams[&amp;quot;getValue&amp;quot;], &amp;quot;text&amp;quot; ) or &amp;#039;&amp;#039;&lt;br /&gt;
	local id		= wdGetParameter ( frame, cfgParams[&amp;quot;getValue&amp;quot;], &amp;quot;id&amp;quot; ) or wdEntityId&lt;br /&gt;
	local vd = require(&amp;#039;Modul:VarDump&amp;#039;)&lt;br /&gt;
	&lt;br /&gt;
	result = wd.getBestStatement ( id, &amp;#039;P856&amp;#039; )&lt;br /&gt;
	local i&lt;br /&gt;
	local url&lt;br /&gt;
	local statements&lt;br /&gt;
	&lt;br /&gt;
	if ( result.errCode == 0 ) then&lt;br /&gt;
		-- Property nicht befüllt &amp;gt; Standard&lt;br /&gt;
		display = &amp;#039;Eine offizielle Webseite ist nicht bekannt.&amp;lt;span class=&amp;quot;wd-tools-message-inline&amp;quot;&amp;gt; Bitte auf [[:wikidata:&amp;#039; .. wdEntityId.id .. &amp;#039;|Wikidata]] nachtragen.&amp;lt;/span&amp;gt;[[Kategorie:Artikel ohne offizielle Webseite auf Wikidata]]&amp;#039;&lt;br /&gt;
	elseif ( result.errCode == 1 ) then&lt;br /&gt;
		-- was gefunden, ersten Eintrag holen, wenn nichts brauchbares da, dann Standard&lt;br /&gt;
		-- display = display .. wd.getProperty ( result.statement, &amp;#039;P856-link+site&amp;#039; )&lt;br /&gt;
		-- urls can contain percent signs&lt;br /&gt;
		category = category .. &amp;#039;[[Kategorie:Seiten, die die Wikidata-Eigenschaft P856 benutzen]]&amp;#039;&lt;br /&gt;
		display = wd.getProperty ( result.statement, &amp;#039;P856-lang+:de&amp;#039; )&lt;br /&gt;
		if ( text ~= &amp;#039;&amp;#039; ) then &lt;br /&gt;
			display = &amp;#039;&amp;lt;span class=&amp;quot;wikidata-content&amp;quot;&amp;gt;&amp;#039; .. display .. &amp;#039;&amp;lt;/span&amp;gt;&amp;#039; .. &amp;#039; – &amp;#039; .. text&lt;br /&gt;
		else&lt;br /&gt;
			display = &amp;#039;&amp;lt;span class=&amp;quot;wikidata-content&amp;quot;&amp;gt;&amp;#039; .. display .. &amp;#039;&amp;lt;/span&amp;gt;&amp;#039; .. &amp;#039; – Offizielle Webseite von &amp;#039; .. wd.getLabel(id).label&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		-- kein Objekt mit der ID vorhanden: Fehlermeldung und Standardtyp&lt;br /&gt;
		display = &amp;#039;Eine offizielle Webseite ist nicht bekannt.&amp;lt;span class=&amp;quot;wd-tools-message-inline&amp;quot;&amp;gt; Objekt bitte auf [[:wikidata:Wikidata:Main Page|Wikidata]] nachtragen.&amp;lt;/span&amp;gt;[[Kategorie:Artikel ohne Objekt auf Wikidata]]&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return category .. wdErrCategory .. check._testParams ( frame:getParent().args, cfgParams[&amp;quot;getOfficialWebsite&amp;quot;], &amp;#039;Wikidata2&amp;#039;, &amp;#039;lower&amp;#039; ) .. display&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return wd&lt;/div&gt;</summary>
		<author><name>wikivoyage&gt;RolandUnger</name></author>
	</entry>
</feed>