<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://www.wikiwaldhof.org/index.php?action=history&amp;feed=atom&amp;title=Modul%3AWikidata</id>
	<title>Modul:Wikidata - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://www.wikiwaldhof.org/index.php?action=history&amp;feed=atom&amp;title=Modul%3AWikidata"/>
	<link rel="alternate" type="text/html" href="https://www.wikiwaldhof.org/index.php?title=Modul:Wikidata&amp;action=history"/>
	<updated>2026-07-07T20:21:43Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in WikiWaldhof</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>https://www.wikiwaldhof.org/index.php?title=Modul:Wikidata&amp;diff=253405&amp;oldid=prev</id>
		<title>Stefansvw am 5. Juni 2026 um 06:43 Uhr</title>
		<link rel="alternate" type="text/html" href="https://www.wikiwaldhof.org/index.php?title=Modul:Wikidata&amp;diff=253405&amp;oldid=prev"/>
		<updated>2026-06-05T06:43:31Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&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: #222; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Version vom 5. Juni 2026, 06:43 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l271&quot; &gt;Zeile 271:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 271:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;]=]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;]=]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Wd.isValidEntityIdTypesafe = function( id )&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;	return ( type( id ) == &amp;quot;string&amp;quot; and mw.wikibase.isValidEntityId( id ) )&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;end&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;--[=[&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;--[=[&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; check wheter the entity with the given id exists, typesafe&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; check wheter the entity with the given id exists, typesafe&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Stefansvw</name></author>
		
	</entry>
	<entry>
		<id>https://www.wikiwaldhof.org/index.php?title=Modul:Wikidata&amp;diff=253404&amp;oldid=prev</id>
		<title>Stefansvw am 5. Juni 2026 um 06:42 Uhr</title>
		<link rel="alternate" type="text/html" href="https://www.wikiwaldhof.org/index.php?title=Modul:Wikidata&amp;diff=253404&amp;oldid=prev"/>
		<updated>2026-06-05T06:42:59Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&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: #222; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Version vom 5. Juni 2026, 06:42 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l270&quot; &gt;Zeile 270:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 270:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; returns: (bool) entity id valid or invalid&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; returns: (bool) entity id valid or invalid&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;]=]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;]=]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Wd.isValidEntityIdTypesafe = function( id )&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;	return ( type( id ) == &amp;quot;string&amp;quot; and mw.wikibase.isValidEntityId( id ) )&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;end&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;--[=[&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;--[=[&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Stefansvw</name></author>
		
	</entry>
	<entry>
		<id>https://www.wikiwaldhof.org/index.php?title=Modul:Wikidata&amp;diff=253403&amp;oldid=prev</id>
		<title>Stefansvw am 5. Juni 2026 um 06:42 Uhr</title>
		<link rel="alternate" type="text/html" href="https://www.wikiwaldhof.org/index.php?title=Modul:Wikidata&amp;diff=253403&amp;oldid=prev"/>
		<updated>2026-06-05T06:42:04Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://www.wikiwaldhof.org/index.php?title=Modul:Wikidata&amp;amp;diff=253403&amp;amp;oldid=173436&quot;&gt;Änderungen zeigen&lt;/a&gt;</summary>
		<author><name>Stefansvw</name></author>
		
	</entry>
	<entry>
		<id>https://www.wikiwaldhof.org/index.php?title=Modul:Wikidata&amp;diff=173436&amp;oldid=prev</id>
		<title>Stefansvw am 19. Dezember 2018 um 06:20 Uhr</title>
		<link rel="alternate" type="text/html" href="https://www.wikiwaldhof.org/index.php?title=Modul:Wikidata&amp;diff=173436&amp;oldid=prev"/>
		<updated>2018-12-19T06:20:18Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&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: #222; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Version vom 19. Dezember 2018, 06:20 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l267&quot; &gt;Zeile 267:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 267:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			if linkTarget then&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			if linkTarget then&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				local link = linkTarget&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				local link = linkTarget&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				-- if there is a local &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Wikipedia &lt;/del&gt;article linking to it, use the label or the article title&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				-- if there is a local &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Wikiwaldhof &lt;/ins&gt;article linking to it, use the label or the article title&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				if linkName and (linkName ~= linkTarget) then link = link .. &amp;quot;|&amp;quot; .. linkName end&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				if linkName and (linkName ~= linkTarget) then link = link .. &amp;quot;|&amp;quot; .. linkName end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				return &amp;quot;[[&amp;quot; .. link .. &amp;quot;]]&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				return &amp;quot;[[&amp;quot; .. link .. &amp;quot;]]&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			else&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			else&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				-- if there is no local &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Wikipedia &lt;/del&gt;article output the label or link to the Wikidata object to input a proper label&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				-- if there is no local &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Wikiwaldhof &lt;/ins&gt;article output the label or link to the Wikidata object to input a proper label&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				if linkName then return linkName else return &amp;quot;[[:d:&amp;quot; .. id .. &amp;quot;|&amp;quot; .. id .. &amp;quot;]]&amp;quot; end&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;				if linkName then return linkName else return &amp;quot;[[:d:&amp;quot; .. id .. &amp;quot;|&amp;quot; .. id .. &amp;quot;]]&amp;quot; end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			end&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;			end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l596&quot; &gt;Zeile 596:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 596:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local langcode = frame.args[1]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local langcode = frame.args[1]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local id = frame.args[2]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local id = frame.args[2]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	-- return description of a Wikidata entity in the given language or the default language of this &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Wikipedia &lt;/del&gt;site&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	-- return description of a Wikidata entity in the given language or the default language of this &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Wikiwaldhof &lt;/ins&gt;site&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local entity = mw.wikibase.getEntity(id)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local entity = mw.wikibase.getEntity(id)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	if entity and entity.descriptions then&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	if entity and entity.descriptions then&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l609&quot; &gt;Zeile 609:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 609:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local langcode = frame.args[1]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local langcode = frame.args[1]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local id = frame.args[2]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local id = frame.args[2]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	-- return label of a Wikidata entity in the given language or the default language of this &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Wikipedia &lt;/del&gt;site&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	-- return label of a Wikidata entity in the given language or the default language of this &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Wikiwaldhof &lt;/ins&gt;site&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local entity = mw.wikibase.getEntity(id)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local entity = mw.wikibase.getEntity(id)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	if entity and entity.labels then&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	if entity and entity.labels then&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l775&quot; &gt;Zeile 775:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 775:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local id = frame.args[1]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local id = frame.args[1]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	-- returns the label of the given entity/property id&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	-- returns the label of the given entity/property id&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	-- if no id is given, the one from the entity associated with the calling &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Wikipedia &lt;/del&gt;article is used&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	-- if no id is given, the one from the entity associated with the calling &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Wikiwaldhof &lt;/ins&gt;article is used&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	if not id then&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	if not id then&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		local entity = mw.wikibase.getEntity()&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		local entity = mw.wikibase.getEntity()&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l786&quot; &gt;Zeile 786:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 786:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;function p.sitelinkOf(frame)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;function p.sitelinkOf(frame)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local id = frame.args[1]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local id = frame.args[1]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	-- returns the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Wikipedia &lt;/del&gt;article name of the given entity&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	-- returns the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Wikiwaldhof &lt;/ins&gt;article name of the given entity&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	-- if no id is given, the one from the entity associated with the calling &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Wikipedia &lt;/del&gt;article is used&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	-- if no id is given, the one from the entity associated with the calling &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Wikiwaldhof &lt;/ins&gt;article is used&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	if not id then&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	if not id then&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		local entity = mw.wikibase.getEntity()&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		local entity = mw.wikibase.getEntity()&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Stefansvw</name></author>
		
	</entry>
	<entry>
		<id>https://www.wikiwaldhof.org/index.php?title=Modul:Wikidata&amp;diff=173429&amp;oldid=prev</id>
		<title>Stefansvw: Die Seite wurde neu angelegt: „-- module local variables local wiki = { 	langcode = mw.language.getContentLanguage().code }  -- internationalisation local i18n = { 	[&quot;errors&quot;] = 	{ 		[&quot;prope…“</title>
		<link rel="alternate" type="text/html" href="https://www.wikiwaldhof.org/index.php?title=Modul:Wikidata&amp;diff=173429&amp;oldid=prev"/>
		<updated>2018-12-19T05:54:46Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „-- module local variables local wiki = { 	langcode = mw.language.getContentLanguage().code }  -- internationalisation local i18n = { 	[&amp;quot;errors&amp;quot;] = 	{ 		[&amp;quot;prope…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- module local variables&lt;br /&gt;
local wiki =&lt;br /&gt;
{&lt;br /&gt;
	langcode = mw.language.getContentLanguage().code&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- internationalisation&lt;br /&gt;
local i18n =&lt;br /&gt;
{&lt;br /&gt;
	[&amp;quot;errors&amp;quot;] =&lt;br /&gt;
	{&lt;br /&gt;
		[&amp;quot;property-not-found&amp;quot;] = &amp;quot;Eigenschaft nicht gefunden.&amp;quot;,&lt;br /&gt;
		[&amp;quot;entity-not-found&amp;quot;] = &amp;quot;Wikidata-Eintrag nicht gefunden.&amp;quot;,&lt;br /&gt;
		[&amp;quot;unknown-claim-type&amp;quot;] = &amp;quot;Unbekannter Aussagentyp.&amp;quot;,&lt;br /&gt;
		[&amp;quot;unknown-entity-type&amp;quot;] = &amp;quot;Unbekannter Entity-Typ.&amp;quot;,&lt;br /&gt;
		[&amp;quot;qualifier-not-found&amp;quot;] = &amp;quot;Qualifikator nicht gefunden.&amp;quot;,&lt;br /&gt;
		[&amp;quot;site-not-found&amp;quot;] = &amp;quot;Wikimedia-Projekt nicht gefunden.&amp;quot;,&lt;br /&gt;
		[&amp;quot;invalid-parameters&amp;quot;] = &amp;quot;Ungültige Parameter.&amp;quot;,&lt;br /&gt;
		[&amp;quot;module-not-loaded&amp;quot;] = &amp;quot;Loading of additional module failed.&amp;quot;&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;datetime&amp;quot;] =&lt;br /&gt;
	{&lt;br /&gt;
		-- $1 is a placeholder for the actual number&lt;br /&gt;
		[0] = &amp;quot;$1 Mrd. Jahren&amp;quot;,		-- precision: billion years&lt;br /&gt;
		[1] = &amp;quot;$100 Mio. Jahren&amp;quot;,	-- precision: hundred million years&lt;br /&gt;
		[2] = &amp;quot;$10 Mio. Jahren&amp;quot;,	-- precision: ten million years&lt;br /&gt;
		[3] = &amp;quot;$1 Mio. Jahren&amp;quot;,		-- precision: million years&lt;br /&gt;
		[4] = &amp;quot;$100.000 Jahren&amp;quot;,	-- precision: hundred thousand years&lt;br /&gt;
		[5] = &amp;quot;$10.000 Jahren&amp;quot;,		-- precision: ten thousand years&lt;br /&gt;
		[6] = &amp;quot;$1. Jahrtausend&amp;quot;, 	-- precision: millenium&lt;br /&gt;
		[7] = &amp;quot;$1. Jahrhundert&amp;quot;,	-- precision: century&lt;br /&gt;
		[8] = &amp;quot;$1er&amp;quot;,				-- precision: decade&lt;br /&gt;
		-- the following use the format of #time parser function&lt;br /&gt;
		[9]  = &amp;quot;Y&amp;quot;,					-- precision: year,&lt;br /&gt;
		[10] = &amp;quot;F Y&amp;quot;,				-- precision: month&lt;br /&gt;
		[11] = &amp;quot;j. F Y&amp;quot;,			-- precision: day&lt;br /&gt;
		[12] = 'j. F Y, G &amp;quot;Uhr&amp;quot;',	-- precision: hour&lt;br /&gt;
		[13] = &amp;quot;j. F Y G:i&amp;quot;,		-- precision: minute&lt;br /&gt;
		[14] = &amp;quot;j. F Y G:i:s&amp;quot;,		-- precision: second&lt;br /&gt;
		[&amp;quot;beforenow&amp;quot;] = &amp;quot;vor $1&amp;quot;,	-- how to format negative numbers for precisions 0 to 5&lt;br /&gt;
		[&amp;quot;afternow&amp;quot;] = &amp;quot;in $1&amp;quot;,		-- how to format positive numbers for precisions 0 to 5&lt;br /&gt;
		[&amp;quot;bc&amp;quot;] = '$1 &amp;quot;v.Chr.&amp;quot;',		-- how print negative years&lt;br /&gt;
		[&amp;quot;ad&amp;quot;] = &amp;quot;$1&amp;quot;				-- how print positive years&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;monolingualtext&amp;quot;] = '&amp;lt;span lang=&amp;quot;%language&amp;quot;&amp;gt;%text&amp;lt;/span&amp;gt;',&lt;br /&gt;
	[&amp;quot;FETCH_WIKIDATA&amp;quot;] = &amp;quot;ABFRAGE_WIKIDATA&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
--important properties&lt;br /&gt;
local propertyId =&lt;br /&gt;
{&lt;br /&gt;
	[&amp;quot;starttime&amp;quot;] = &amp;quot;P580&amp;quot;,&lt;br /&gt;
	[&amp;quot;endtime&amp;quot;] = &amp;quot;P582&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local formatchar =&lt;br /&gt;
{&lt;br /&gt;
	[10] = {&amp;quot;n&amp;quot;,&amp;quot;m&amp;quot;,&amp;quot;M&amp;quot;,&amp;quot;F&amp;quot;,&amp;quot;xg&amp;quot;},				--precision: month&lt;br /&gt;
	[11] = {&amp;quot;W&amp;quot;,&amp;quot;j&amp;quot;,&amp;quot;d&amp;quot;,&amp;quot;z&amp;quot;,&amp;quot;D&amp;quot;,&amp;quot;l&amp;quot;,&amp;quot;N&amp;quot;,&amp;quot;w&amp;quot;},	--precision: day&lt;br /&gt;
	[12] = {&amp;quot;a&amp;quot;,&amp;quot;A&amp;quot;,&amp;quot;g&amp;quot;,&amp;quot;h&amp;quot;,&amp;quot;G&amp;quot;,&amp;quot;H&amp;quot;},			--precision: hour&lt;br /&gt;
	[13] = {&amp;quot;i&amp;quot;},								--precision: minute&lt;br /&gt;
	[14] = {&amp;quot;s&amp;quot;,&amp;quot;U&amp;quot;}							--precision: second&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local function printError(code)&lt;br /&gt;
	return '&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;' .. (i18n.errors[code] or code) .. '&amp;lt;/span&amp;gt;'&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- the &amp;quot;qualifiers&amp;quot; and &amp;quot;snaks&amp;quot; field have a respective &amp;quot;qualifiers-order&amp;quot; and &amp;quot;snaks-order&amp;quot; field&lt;br /&gt;
-- use these as the second parameter and this function instead of the built-in &amp;quot;pairs&amp;quot; function&lt;br /&gt;
-- to iterate over all qualifiers and snaks in the intended order.&lt;br /&gt;
local function orderedpairs(array, order)&lt;br /&gt;
	if not order then return pairs(array) end&lt;br /&gt;
&lt;br /&gt;
	-- return iterator function&lt;br /&gt;
	local i = 0&lt;br /&gt;
	return function()&lt;br /&gt;
		i = i + 1&lt;br /&gt;
		if order[i] then&lt;br /&gt;
			return order[i], array[order[i]]&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Function to check whether a certain item is a parent of a given item.&lt;br /&gt;
-- If pExitItem is reached without finding the searched parent item, the search stops.&lt;br /&gt;
-- A parent is connected via P31 or P279.&lt;br /&gt;
-- Attention: very intensive function, use carefully!&lt;br /&gt;
local function isParent(pItem, pParent, pExitItem, pMaxDepth, pDepth)&lt;br /&gt;
	if not pDepth then pDepth = 0 end&lt;br /&gt;
&lt;br /&gt;
	if type(pItem) == &amp;quot;number&amp;quot; then pItem = &amp;quot;Q&amp;quot; .. pItem end&lt;br /&gt;
&lt;br /&gt;
	local entity = mw.wikibase.getEntity(pItem)&lt;br /&gt;
	if not entity then return false end&lt;br /&gt;
&lt;br /&gt;
	local claims31&lt;br /&gt;
	local claims279&lt;br /&gt;
	if entity.claims then&lt;br /&gt;
		claims31 = entity.claims[mw.wikibase.resolvePropertyId('P31')]&lt;br /&gt;
		claims279 = entity.claims[mw.wikibase.resolvePropertyId('P279')]&lt;br /&gt;
	else&lt;br /&gt;
		return false&lt;br /&gt;
	end&lt;br /&gt;
	if not claims31 and not claims279 then return false end&lt;br /&gt;
&lt;br /&gt;
	local parentIds = {}&lt;br /&gt;
	if claims31 and #claims31 &amp;gt; 0 then&lt;br /&gt;
		for i, v in ipairs(claims31) do parentIds[#parentIds+1] = getSnakValue(v.mainsnak, &amp;quot;numeric-id&amp;quot;) end&lt;br /&gt;
	end&lt;br /&gt;
	if claims279 and #claims279 &amp;gt; 0 then&lt;br /&gt;
		for i, v in ipairs(claims279) do parentIds[#parentIds+1] = getSnakValue(v.mainsnak, &amp;quot;numeric-id&amp;quot;) end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- check if searched parent or exit item is reached or do recursive call&lt;br /&gt;
	if not parentIds[1] or #parentIds == 0 then return false end&lt;br /&gt;
	local itemString = &amp;quot;&amp;quot;&lt;br /&gt;
	local result = nil&lt;br /&gt;
	for i, v in ipairs(parentIds) do&lt;br /&gt;
		if not v then return false end&lt;br /&gt;
		itemString = &amp;quot;Q&amp;quot; .. v&lt;br /&gt;
&lt;br /&gt;
		if itemString == pParent then&lt;br /&gt;
			-- successful!&lt;br /&gt;
			return true&lt;br /&gt;
		elseif itemString == pExitItem or itemString == &amp;quot;Q35120&amp;quot; then&lt;br /&gt;
			-- exit if either &amp;quot;exit item&amp;quot; or node item (Q35120) is reached&lt;br /&gt;
			return false&lt;br /&gt;
		else&lt;br /&gt;
			if pDepth+1 &amp;lt; pMaxDepth then&lt;br /&gt;
				result = isParent(itemString, pParent, pExitItem, pMaxDepth, pDepth+1)&lt;br /&gt;
			else return false end&lt;br /&gt;
&lt;br /&gt;
			if result == true then return result end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	do return false end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function printDatavalueCoordinate(data, parameter)&lt;br /&gt;
	-- data fields: latitude [double], longitude [double], altitude [double], precision [double], globe [wikidata URI, usually http://www.wikidata.org/entity/Q2 [earth]]&lt;br /&gt;
	if parameter then&lt;br /&gt;
		if parameter == &amp;quot;globe&amp;quot; then data.globe = mw.ustring.match(data.globe, &amp;quot;Q%d+&amp;quot;) end -- extract entity id from the globe URI&lt;br /&gt;
		return data[parameter]&lt;br /&gt;
	else&lt;br /&gt;
		return data.latitude .. &amp;quot;/&amp;quot; .. data.longitude -- combine latitude and longitude, which can be decomposed using the #titleparts wiki function&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function printDatavalueQuantity(data, parameter)&lt;br /&gt;
	-- data fields: amount [number], unit [string], upperBound [number], lowerBound [number]&lt;br /&gt;
	if not parameter or parameter == &amp;quot;amount&amp;quot; then&lt;br /&gt;
		return tonumber(data.amount)&lt;br /&gt;
	elseif parameter == &amp;quot;unit&amp;quot; then&lt;br /&gt;
		return mw.ustring.match(data.unit, &amp;quot;Q%d+&amp;quot;)&lt;br /&gt;
	else&lt;br /&gt;
		return data[parameter]&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function normalizeDate(date)&lt;br /&gt;
	date = mw.text.trim(date, &amp;quot;+&amp;quot;)&lt;br /&gt;
	-- extract year&lt;br /&gt;
	local yearstr = mw.ustring.match(date, &amp;quot;^\-?%d+&amp;quot;)&lt;br /&gt;
	local year = tonumber(yearstr)&lt;br /&gt;
	-- remove leading zeros of year&lt;br /&gt;
	return year .. mw.ustring.sub(date, #yearstr + 1), year&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- precision: 0 - billion years, 1 - hundred million years, ..., 6 - millenia, 7 - century, 8 - decade, 9 - year, 10 - month, 11 - day, 12 - hour, 13 - minute, 14 - second&lt;br /&gt;
function formatDate(date, precision, timezone, formatstr)&lt;br /&gt;
	precision = precision or 11&lt;br /&gt;
	date, year = normalizeDate(date)&lt;br /&gt;
	date = string.gsub(date, &amp;quot;-00%f[%D]&amp;quot;, &amp;quot;-01&amp;quot;)&lt;br /&gt;
	if year == 0 and precision &amp;lt;= 9 then return &amp;quot;&amp;quot; end&lt;br /&gt;
&lt;br /&gt;
	-- precision is 10000 years or more&lt;br /&gt;
	if precision &amp;lt;= 5 then&lt;br /&gt;
		local factor = 10 ^ ((5 - precision) + 4)&lt;br /&gt;
		local y2 = math.ceil(math.abs(year) / factor)&lt;br /&gt;
		local relative = mw.ustring.gsub(i18n.datetime[precision], &amp;quot;$1&amp;quot;, tostring(y2))&lt;br /&gt;
		if year &amp;lt; 0 then&lt;br /&gt;
			relative = mw.ustring.gsub(i18n.datetime.beforenow, &amp;quot;$1&amp;quot;, relative)&lt;br /&gt;
		else&lt;br /&gt;
			relative = mw.ustring.gsub(i18n.datetime.afternow, &amp;quot;$1&amp;quot;, relative)&lt;br /&gt;
		end&lt;br /&gt;
		return relative&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- precision is decades, centuries and millenia&lt;br /&gt;
	local era&lt;br /&gt;
	if precision == 6 then era = mw.ustring.gsub(i18n.datetime[6], &amp;quot;$1&amp;quot;, tostring(math.floor((math.abs(year) - 1) / 1000) + 1)) end&lt;br /&gt;
	if precision == 7 then era = mw.ustring.gsub(i18n.datetime[7], &amp;quot;$1&amp;quot;, tostring(math.floor((math.abs(year) - 1) / 100) + 1)) end&lt;br /&gt;
	if precision == 8 then era = mw.ustring.gsub(i18n.datetime[8], &amp;quot;$1&amp;quot;, tostring(math.floor(math.abs(year) / 10) * 10)) end&lt;br /&gt;
	if era then&lt;br /&gt;
		if year &amp;lt; 0 then era = mw.ustring.gsub(mw.ustring.gsub(i18n.datetime.bc, '&amp;quot;', &amp;quot;&amp;quot;), &amp;quot;$1&amp;quot;, era)&lt;br /&gt;
		elseif year &amp;gt; 0 then era = mw.ustring.gsub(mw.ustring.gsub(i18n.datetime.ad, '&amp;quot;', &amp;quot;&amp;quot;), &amp;quot;$1&amp;quot;, era) end&lt;br /&gt;
		return era&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- precision is years or less&lt;br /&gt;
	if precision &amp;gt;= 9 then&lt;br /&gt;
		--[[ the following code replaces the UTC suffix with the given negated timezone to convert the global time to the given local time&lt;br /&gt;
		timezone = tonumber(timezone)&lt;br /&gt;
		if timezone and timezone ~= 0 then&lt;br /&gt;
			timezone = -timezone&lt;br /&gt;
			timezone = string.format(&amp;quot;%.2d%.2d&amp;quot;, timezone / 60, timezone % 60)&lt;br /&gt;
			if timezone[1] ~= '-' then timezone = &amp;quot;+&amp;quot; .. timezone end&lt;br /&gt;
			date = mw.text.trim(date, &amp;quot;Z&amp;quot;) .. &amp;quot; &amp;quot; .. timezone&lt;br /&gt;
		end&lt;br /&gt;
		]]--&lt;br /&gt;
		if formatstr then&lt;br /&gt;
			for i=(precision+1), 14 do&lt;br /&gt;
				for _, ch in pairs(formatchar[i]) do&lt;br /&gt;
					if formatstr:find(ch) then&lt;br /&gt;
						formatstr = i18n.datetime[precision]&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			formatstr = i18n.datetime[precision]&lt;br /&gt;
		end&lt;br /&gt;
		if year == 0 then formatstr = mw.ustring.gsub(formatstr, i18n.datetime[9], &amp;quot;&amp;quot;)&lt;br /&gt;
		elseif year &amp;lt; 0 then&lt;br /&gt;
			-- Mediawiki formatDate doesn't support negative years&lt;br /&gt;
			date = mw.ustring.sub(date, 2)&lt;br /&gt;
			formatstr = mw.ustring.gsub(formatstr, i18n.datetime[9], mw.ustring.gsub(i18n.datetime.bc, &amp;quot;$1&amp;quot;, i18n.datetime[9]))&lt;br /&gt;
		elseif year &amp;gt; 0 and i18n.datetime.ad ~= &amp;quot;$1&amp;quot; then&lt;br /&gt;
			formatstr = mw.ustring.gsub(formatstr, i18n.datetime[9], mw.ustring.gsub(i18n.datetime.ad, &amp;quot;$1&amp;quot;, i18n.datetime[9]))&lt;br /&gt;
		end&lt;br /&gt;
		return mw.language.new(wiki.langcode):formatDate(formatstr, date)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function printDatavalueTime(data, parameter)&lt;br /&gt;
	-- data fields: time [ISO 8601 time], timezone [int in minutes], before [int], after [int], precision [int], calendarmodel [wikidata URI]&lt;br /&gt;
	--   precision: 0 - billion years, 1 - hundred million years, ..., 6 - millenia, 7 - century, 8 - decade, 9 - year, 10 - month, 11 - day, 12 - hour, 13 - minute, 14 - second&lt;br /&gt;
	--   calendarmodel: e.g. http://www.wikidata.org/entity/Q1985727 for the proleptic Gregorian calendar or http://www.wikidata.org/wiki/Q11184 for the Julian calendar]&lt;br /&gt;
	if parameter then&lt;br /&gt;
		para, formatstr = parameter:match(&amp;quot;([^:]+):([^:]+)&amp;quot;)&lt;br /&gt;
		if parameter == &amp;quot;calendarmodel&amp;quot; then&lt;br /&gt;
			data.calendarmodel = string.match(data.calendarmodel, &amp;quot;Q%d+&amp;quot;) -- extract entity id from the calendar model URI&lt;br /&gt;
		elseif para and para == &amp;quot;time&amp;quot; then&lt;br /&gt;
			return formatDate(data.time, data.precision, data.timezone,formatstr)&lt;br /&gt;
		elseif parameter == &amp;quot;time&amp;quot; then&lt;br /&gt;
			data.time = normalizeDate(data.time)&lt;br /&gt;
		end&lt;br /&gt;
		return data[parameter]&lt;br /&gt;
	else&lt;br /&gt;
		return formatDate(data.time, data.precision, data.timezone)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function printDatavalueEntity(data, parameter)&lt;br /&gt;
	-- data fields: entity-type [string], numeric-id [int, Wikidata id]&lt;br /&gt;
	local id&lt;br /&gt;
&lt;br /&gt;
	if data[&amp;quot;entity-type&amp;quot;] == &amp;quot;item&amp;quot; then id = &amp;quot;Q&amp;quot; .. data[&amp;quot;numeric-id&amp;quot;]&lt;br /&gt;
	elseif data[&amp;quot;entity-type&amp;quot;] == &amp;quot;property&amp;quot; then id = &amp;quot;P&amp;quot; .. data[&amp;quot;numeric-id&amp;quot;]&lt;br /&gt;
	else return printError(&amp;quot;unknown-entity-type&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if parameter then&lt;br /&gt;
		if parameter == &amp;quot;link&amp;quot; then&lt;br /&gt;
			local linkTarget = mw.wikibase.sitelink(id)&lt;br /&gt;
			local linkName = mw.wikibase.label(id)&lt;br /&gt;
			if linkTarget then&lt;br /&gt;
				local link = linkTarget&lt;br /&gt;
				-- if there is a local Wikipedia article linking to it, use the label or the article title&lt;br /&gt;
				if linkName and (linkName ~= linkTarget) then link = link .. &amp;quot;|&amp;quot; .. linkName end&lt;br /&gt;
				return &amp;quot;[[&amp;quot; .. link .. &amp;quot;]]&amp;quot;&lt;br /&gt;
			else&lt;br /&gt;
				-- if there is no local Wikipedia article output the label or link to the Wikidata object to input a proper label&lt;br /&gt;
				if linkName then return linkName else return &amp;quot;[[:d:&amp;quot; .. id .. &amp;quot;|&amp;quot; .. id .. &amp;quot;]]&amp;quot; end&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			return data[parameter]&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		return mw.wikibase.label(id) or id&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function printDatavalueMonolingualText(data, parameter)&lt;br /&gt;
	-- data fields: language [string], text [string]&lt;br /&gt;
	if parameter then&lt;br /&gt;
		return data[parameter]&lt;br /&gt;
	else&lt;br /&gt;
		local result = mw.ustring.gsub(mw.ustring.gsub(i18n.monolingualtext, &amp;quot;%%language&amp;quot;, data[&amp;quot;language&amp;quot;]), &amp;quot;%%text&amp;quot;, data[&amp;quot;text&amp;quot;])&lt;br /&gt;
		return result&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function getSnakValue(snak, parameter)&lt;br /&gt;
	-- snaks have three types: &amp;quot;novalue&amp;quot; for null/nil, &amp;quot;somevalue&amp;quot; for not null/not nil, or &amp;quot;value&amp;quot; for actual data&lt;br /&gt;
	if snak.snaktype == &amp;quot;value&amp;quot; then&lt;br /&gt;
		-- call the respective snak parser&lt;br /&gt;
		if snak.datavalue.type == &amp;quot;string&amp;quot; then return snak.datavalue.value&lt;br /&gt;
		elseif snak.datavalue.type == &amp;quot;globecoordinate&amp;quot; then return printDatavalueCoordinate(snak.datavalue.value, parameter)&lt;br /&gt;
		elseif snak.datavalue.type == &amp;quot;quantity&amp;quot; then return printDatavalueQuantity(snak.datavalue.value, parameter)&lt;br /&gt;
		elseif snak.datavalue.type == &amp;quot;time&amp;quot; then return printDatavalueTime(snak.datavalue.value, parameter)&lt;br /&gt;
		elseif snak.datavalue.type == &amp;quot;wikibase-entityid&amp;quot; then return printDatavalueEntity(snak.datavalue.value, parameter)&lt;br /&gt;
		elseif snak.datavalue.type == &amp;quot;monolingualtext&amp;quot; then return printDatavalueMonolingualText(snak.datavalue.value, parameter)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return mw.wikibase.renderSnak(snak)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function getQualifierSnak(claim, qualifierId)&lt;br /&gt;
	-- a &amp;quot;snak&amp;quot; is Wikidata terminology for a typed key/value pair&lt;br /&gt;
	-- a claim consists of a main snak holding the main information of this claim,&lt;br /&gt;
	-- as well as a list of attribute snaks and a list of references snaks&lt;br /&gt;
	if qualifierId then&lt;br /&gt;
		-- search the attribute snak with the given qualifier as key&lt;br /&gt;
		if claim and claim.qualifiers then&lt;br /&gt;
			local qualifier = claim.qualifiers[qualifierId]&lt;br /&gt;
			if qualifier then return qualifier[1] end&lt;br /&gt;
		end&lt;br /&gt;
		return nil, printError(&amp;quot;qualifier-not-found&amp;quot;)&lt;br /&gt;
	else&lt;br /&gt;
		-- otherwise return the main snak&lt;br /&gt;
		return claim.mainsnak&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function datavalueTimeToDateObject(data)&lt;br /&gt;
	local sign, year, month, day, hour, minute, second = string.match(data.time, &amp;quot;(.)(%d+)%-(%d+)%-(%d+)T(%d+):(%d+):(%d+)Z&amp;quot;)&lt;br /&gt;
	local result =&lt;br /&gt;
	{&lt;br /&gt;
		year = tonumber(year),&lt;br /&gt;
		month = tonumber(month),&lt;br /&gt;
		day = tonumber(day),&lt;br /&gt;
		hour = tonumber(hour),&lt;br /&gt;
		min = tonumber(minute),&lt;br /&gt;
		sec = tonumber(second),&lt;br /&gt;
		timezone = data.timezone,&lt;br /&gt;
		julian = data.calendarmodel and string.match(data.calendarmodel, &amp;quot;Q11184$&amp;quot;)&lt;br /&gt;
	}&lt;br /&gt;
	if sign == &amp;quot;-&amp;quot; then result.year = -result.year end&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function julianDay(dateObject)&lt;br /&gt;
	local year = dateObject.year&lt;br /&gt;
	local month = dateObject.month or 0&lt;br /&gt;
	local day = dateObject.day or 0&lt;br /&gt;
&lt;br /&gt;
	if month == 0 then month = 1 end&lt;br /&gt;
	if day == 0 then day = 1 end&lt;br /&gt;
	if month &amp;lt;= 2 then&lt;br /&gt;
		year = year - 1&lt;br /&gt;
		month = month + 12&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local time = ((((dateObject.sec or 0) / 60 + (dateObject.min or 0) + (dateObject.timezone or 0)) / 60) + (dateObject.hour or 0)) / 24&lt;br /&gt;
&lt;br /&gt;
	local b&lt;br /&gt;
	if dateObject.julian then b = 0 else&lt;br /&gt;
		local century = math.floor(year / 100)&lt;br /&gt;
		b = 2 - century + math.floor(century / 4)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return math.floor(365.25 * (year + 4716)) + math.floor(30.6001 * (month + 1)) + day + time + b - 1524.5&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function getQualifierSortValue(claim, qualifierId)&lt;br /&gt;
	local snak = getQualifierSnak(claim, qualifierId)&lt;br /&gt;
	if snak and snak.snaktype == &amp;quot;value&amp;quot; then&lt;br /&gt;
		if snak.datavalue.type == &amp;quot;time&amp;quot; then&lt;br /&gt;
			return julianDay(datavalueTimeToDateObject(snak.datavalue.value))&lt;br /&gt;
		else&lt;br /&gt;
			return getSnakValue(snak)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function getValueOfClaim(claim, qualifierId, parameter)&lt;br /&gt;
	local error&lt;br /&gt;
	local snak&lt;br /&gt;
	snak, error = getQualifierSnak(claim, qualifierId)&lt;br /&gt;
	if snak then&lt;br /&gt;
		return getSnakValue(snak, parameter)&lt;br /&gt;
	else&lt;br /&gt;
		return nil, error&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function formatReference(ref)&lt;br /&gt;
	-- &amp;quot;imported from&amp;quot;-references are useless, skip them:&lt;br /&gt;
	if ref[&amp;quot;P143&amp;quot;] then return nil end&lt;br /&gt;
	&lt;br /&gt;
	-- load [[Modul:Zitation]]&lt;br /&gt;
	local ZitationSuccess, r = pcall(require, &amp;quot;Modul:Zitation&amp;quot;)&lt;br /&gt;
	if type(r) == &amp;quot;table&amp;quot; then&lt;br /&gt;
		Zitation = r.Zitation()&lt;br /&gt;
	end&lt;br /&gt;
	-- assert (ZitationSuccess, i18n[&amp;quot;errors&amp;quot;][&amp;quot;module-not-loaded&amp;quot;])&lt;br /&gt;
	&lt;br /&gt;
	-- assignments of Wikidata properties to Zitation parameters&lt;br /&gt;
	local wdZmap = {&lt;br /&gt;
		P1433 = {&amp;quot;bas&amp;quot;, &amp;quot;Werk&amp;quot;},&lt;br /&gt;
		P248  = {&amp;quot;bas&amp;quot;, &amp;quot;Werk&amp;quot;},&lt;br /&gt;
		P1476 = {&amp;quot;bas&amp;quot;, &amp;quot;Titel&amp;quot;},&lt;br /&gt;
		P1680 = {&amp;quot;bas&amp;quot;, &amp;quot;TitelErg&amp;quot;},&lt;br /&gt;
		P407  = {&amp;quot;bas&amp;quot;, &amp;quot;Sprache&amp;quot;},&lt;br /&gt;
		P364  = {&amp;quot;bas&amp;quot;, &amp;quot;Sprache&amp;quot;},&lt;br /&gt;
		P2439 = {&amp;quot;bas&amp;quot;, &amp;quot;Sprache&amp;quot;},&lt;br /&gt;
		P123  = {&amp;quot;bas&amp;quot;, &amp;quot;Verlag&amp;quot;},&lt;br /&gt;
		P577  = {&amp;quot;bas&amp;quot;, &amp;quot;Datum&amp;quot;},&lt;br /&gt;
		P98   = {&amp;quot;bas&amp;quot;, &amp;quot;Hrsg&amp;quot;},&lt;br /&gt;
		P2093 = {&amp;quot;bas&amp;quot;, &amp;quot;Autor&amp;quot;},&lt;br /&gt;
		P50   = {&amp;quot;bas&amp;quot;, &amp;quot;Autor&amp;quot;},&lt;br /&gt;
		P1683 = {&amp;quot;bas&amp;quot;, &amp;quot;Zitat&amp;quot;},&lt;br /&gt;
		P854  = {&amp;quot;www&amp;quot;, &amp;quot;URL&amp;quot;},&lt;br /&gt;
		P813  = {&amp;quot;www&amp;quot;, &amp;quot;Abruf&amp;quot;},&lt;br /&gt;
		P1065 = {&amp;quot;www&amp;quot;, &amp;quot;ArchivURL&amp;quot;},&lt;br /&gt;
		P2960 = {&amp;quot;www&amp;quot;, &amp;quot;ArchivDatum&amp;quot;},&lt;br /&gt;
		P2701 = {&amp;quot;www&amp;quot;, &amp;quot;Format&amp;quot;},&lt;br /&gt;
		P393  = {&amp;quot;print&amp;quot;, &amp;quot;Auflage&amp;quot;},&lt;br /&gt;
		P291  = {&amp;quot;print&amp;quot;, &amp;quot;Ort&amp;quot;},&lt;br /&gt;
		P304  = {&amp;quot;fragment&amp;quot;, &amp;quot;Seiten&amp;quot;},&lt;br /&gt;
		P792  = {&amp;quot;fragment&amp;quot;, &amp;quot;Kapitel&amp;quot;},&lt;br /&gt;
		P629  = {&amp;quot;orig&amp;quot;, &amp;quot;Titel&amp;quot;}&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	for prop, value in pairs(ref) do&lt;br /&gt;
		if wdZmap[prop] then&lt;br /&gt;
			if type(value) == &amp;quot;table&amp;quot; then&lt;br /&gt;
				-- More snaks with same property, we concatenate using a comma&lt;br /&gt;
				value = table.concat(value, &amp;quot;, &amp;quot;)&lt;br /&gt;
			end&lt;br /&gt;
			-- value should be string now, so we can call Zitation&lt;br /&gt;
			if type(value) == &amp;quot;string&amp;quot; and string.len(value) &amp;gt; 0 then&lt;br /&gt;
				Zitation.fill(wdZmap[prop][1], wdZmap[prop][2], value, prop)	&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	-- if no title on Wikidata, try to use the URL as title&lt;br /&gt;
	if (not ref[&amp;quot;P1476&amp;quot;]) and ref[&amp;quot;P854&amp;quot;] then&lt;br /&gt;
		local URLutil = Zitation.fetch(&amp;quot;URLutil&amp;quot;)&lt;br /&gt;
		Zitation.fill(&amp;quot;bas&amp;quot;, &amp;quot;Titel&amp;quot;, URLutil.getHost(ref[&amp;quot;P854&amp;quot;]))&lt;br /&gt;
	elseif not (ref[&amp;quot;P1476&amp;quot;]) then&lt;br /&gt;
		Zitation.fill(&amp;quot;bas&amp;quot;, &amp;quot;Titel&amp;quot;, ref[&amp;quot;P854&amp;quot;])&lt;br /&gt;
	end&lt;br /&gt;
	refFormatted, f = Zitation.format()&lt;br /&gt;
	return refFormatted&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function getReferences(frame, claim)&lt;br /&gt;
	local result = &amp;quot;&amp;quot;&lt;br /&gt;
	-- traverse through all references&lt;br /&gt;
	for ref in pairs(claim.references or {}) do&lt;br /&gt;
		local refTable = {}&lt;br /&gt;
		for snakkey, snakval in orderedpairs(claim.references[ref].snaks or {}, claim.references[ref][&amp;quot;snaks-order&amp;quot;]) do&lt;br /&gt;
			if #snakval == 1 then&lt;br /&gt;
				refTable[snakkey] = getSnakValue(snakval[1])&lt;br /&gt;
			else&lt;br /&gt;
				--&lt;br /&gt;
				multival = {}&lt;br /&gt;
				for snakidx = 1, #snakval do&lt;br /&gt;
						table.insert(multival, getSnakValue(snakval[snakidx]))&lt;br /&gt;
				end&lt;br /&gt;
				refTable[snakkey] = multival&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		local formattedRef = formatReference(refTable)&lt;br /&gt;
		if formattedRef then result = result .. frame:extensionTag(&amp;quot;ref&amp;quot;, formattedRef) end&lt;br /&gt;
	end&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function hasqualifier(claim, qualifierproperty)&lt;br /&gt;
	local invert&lt;br /&gt;
	if string.sub(qualifierproperty, 1, 1) == &amp;quot;!&amp;quot; then invert = true else invert = false end&lt;br /&gt;
	if not claim.qualifiers and not invert then return false end&lt;br /&gt;
	if not claim.qualifiers and invert then return true end&lt;br /&gt;
	if qualifierproperty == '' then return true end&lt;br /&gt;
	if not invert and not claim.qualifiers[qualifierproperty] then return false end&lt;br /&gt;
	if invert and claim.qualifiers[string.sub(qualifierproperty, 2)] then return false end&lt;br /&gt;
	return true&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function qualifierhasvalue(claim, property, value)&lt;br /&gt;
	if not claim.qualifiers then return false end&lt;br /&gt;
	if not claim.qualifiers[property] then return false end&lt;br /&gt;
	for key, snak in pairs(claim.qualifiers[property]) do&lt;br /&gt;
		if snak.snaktype == &amp;quot;value&amp;quot; then&lt;br /&gt;
			if snak.datavalue.type == &amp;quot;wikibase-entityid&amp;quot; then&lt;br /&gt;
				if snak.datavalue.value.id == value then&lt;br /&gt;
					return true&lt;br /&gt;
				end&lt;br /&gt;
			--TODO: elseif other types&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function hassource(claim, sourceproperty)&lt;br /&gt;
	if not claim.references then return false end&lt;br /&gt;
	if sourceproperty == '' then return true end&lt;br /&gt;
	if string.sub(sourceproperty,1,1) ~= &amp;quot;!&amp;quot; then&lt;br /&gt;
		for _, source in pairs(claim.references) do&lt;br /&gt;
			if source.snaks[sourceproperty] then return true end&lt;br /&gt;
		end&lt;br /&gt;
		return false&lt;br /&gt;
	else&lt;br /&gt;
		for _, source in pairs(claim.references) do&lt;br /&gt;
			for key in pairs(source.snaks) do&lt;br /&gt;
				if key ~= string.sub(sourceproperty,2) then return true end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		return false&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function atdate(claim, mydate)&lt;br /&gt;
	local refdate&lt;br /&gt;
	if not mydate or mydate == &amp;quot;&amp;quot; then&lt;br /&gt;
		refdate = os.date(&amp;quot;!*t&amp;quot;)&lt;br /&gt;
	else&lt;br /&gt;
		if string.match(mydate, &amp;quot;^%d+$&amp;quot;) then&lt;br /&gt;
			refdate = { year = tonumber(mydate) }&lt;br /&gt;
		else&lt;br /&gt;
			refdate = datavalueTimeToDateObject({ time = mw.language.getContentLanguage():formatDate(&amp;quot;+Y-m-d\\TH:i:s\\Z&amp;quot;, mydate) })&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local refjd = julianDay(refdate)&lt;br /&gt;
&lt;br /&gt;
	local mindate = getQualifierSortValue(claim, propertyId[&amp;quot;starttime&amp;quot;])&lt;br /&gt;
	local maxdate = getQualifierSortValue(claim, propertyId[&amp;quot;endtime&amp;quot;])&lt;br /&gt;
&lt;br /&gt;
	if mindate and mindate &amp;gt; refjd then return false end&lt;br /&gt;
	if maxdate and maxdate &amp;lt; refjd then return false end&lt;br /&gt;
&lt;br /&gt;
	return true&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--returns a table of claims excluding claims not passed the filters&lt;br /&gt;
function filterClaims(frame, claims)&lt;br /&gt;
	local function filter(condition, filterfunction)&lt;br /&gt;
		if not frame.args[condition] then&lt;br /&gt;
			return&lt;br /&gt;
		end&lt;br /&gt;
		local newclaims = {}&lt;br /&gt;
		for i, claim in pairs(claims) do&lt;br /&gt;
			if filterfunction(claim, frame.args[condition]) then&lt;br /&gt;
				table.insert(newclaims, claim)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		claims = newclaims&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	filter('hasqualifier', hasqualifier)&lt;br /&gt;
	filter('hassource', hassource)&lt;br /&gt;
	filter('atdate', atdate)&lt;br /&gt;
	&lt;br /&gt;
	for key, val in pairs(frame.args) do&lt;br /&gt;
		if type(key) == &amp;quot;number&amp;quot; and key &amp;gt; 2 and key % 2 == 1 then&lt;br /&gt;
			-- key = 3, 5, 7 and so on&lt;br /&gt;
			local newclaims = {}&lt;br /&gt;
			for i, claim in pairs(claims) do&lt;br /&gt;
				if qualifierhasvalue(claim, frame.args[key - 1], frame.args[key]) then&lt;br /&gt;
					table.insert(newclaims, claim)&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			claims = newclaims&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;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.isSubclass(frame)&lt;br /&gt;
	if not frame.args[&amp;quot;parent&amp;quot;] then return &amp;quot;&amp;quot; end&lt;br /&gt;
&lt;br /&gt;
	local maxDepth&lt;br /&gt;
	maxDepth = frame.args[&amp;quot;maxDepth&amp;quot;] or 5&lt;br /&gt;
	if not type(maxDepth) == &amp;quot;number&amp;quot; then maxDepth = 5 end&lt;br /&gt;
&lt;br /&gt;
	local result&lt;br /&gt;
	result = isParent(frame.args[&amp;quot;id&amp;quot;], frame.args[&amp;quot;parent&amp;quot;], frame.args[&amp;quot;exitItem&amp;quot;], maxDepth)&lt;br /&gt;
	&lt;br /&gt;
	if frame.args[&amp;quot;returnInt&amp;quot;] then&lt;br /&gt;
		if result == true then return 1 else return &amp;quot;&amp;quot; end&lt;br /&gt;
	else&lt;br /&gt;
		if result then return result else return false end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.descriptionIn(frame)&lt;br /&gt;
	local langcode = frame.args[1]&lt;br /&gt;
	local id = frame.args[2]&lt;br /&gt;
	-- return description of a Wikidata entity in the given language or the default language of this Wikipedia site&lt;br /&gt;
	local entity = mw.wikibase.getEntity(id)&lt;br /&gt;
	if entity and entity.descriptions then&lt;br /&gt;
		local desc = entity.descriptions[langcode or wiki.langcode]&lt;br /&gt;
		if desc then return desc.value end&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;
function p.labelIn(frame)&lt;br /&gt;
	local langcode = frame.args[1]&lt;br /&gt;
	local id = frame.args[2]&lt;br /&gt;
	-- return label of a Wikidata entity in the given language or the default language of this Wikipedia site&lt;br /&gt;
	local entity = mw.wikibase.getEntity(id)&lt;br /&gt;
	if entity and entity.labels then&lt;br /&gt;
		local label = entity.labels[langcode or wiki.langcode]&lt;br /&gt;
		if label then return label.value end&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;
function p.claim(frame)&lt;br /&gt;
	local property = frame.args[1] or &amp;quot;&amp;quot;&lt;br /&gt;
	local id = frame.args[&amp;quot;id&amp;quot;]&lt;br /&gt;
	local qualifierId = frame.args[&amp;quot;qualifier&amp;quot;]&lt;br /&gt;
	local parameter = frame.args[&amp;quot;parameter&amp;quot;]&lt;br /&gt;
	local language = frame.args[&amp;quot;language&amp;quot;]&lt;br /&gt;
	local list = frame.args[&amp;quot;list&amp;quot;]&lt;br /&gt;
	local includeempty = frame.args[&amp;quot;includeempty&amp;quot;]&lt;br /&gt;
	local listMaxItems = tonumber(frame.args[&amp;quot;listMaxItems&amp;quot;]) or 0&lt;br /&gt;
	local references = frame.args[&amp;quot;references&amp;quot;]&lt;br /&gt;
	local sort = frame.args[&amp;quot;sort&amp;quot;]&lt;br /&gt;
	local sortInItem = frame.args[&amp;quot;sortInItem&amp;quot;]&lt;br /&gt;
	local inverse = frame.args[&amp;quot;inverse&amp;quot;]&lt;br /&gt;
	local showerrors = frame.args[&amp;quot;showerrors&amp;quot;]&lt;br /&gt;
	local default = frame.args[&amp;quot;default&amp;quot;]&lt;br /&gt;
	if default then showerrors = nil end&lt;br /&gt;
&lt;br /&gt;
	-- get wikidata entity&lt;br /&gt;
	local entity = mw.wikibase.getEntity(id)&lt;br /&gt;
	if not entity then&lt;br /&gt;
		if showerrors then return printError(&amp;quot;entity-not-found&amp;quot;) else return default end&lt;br /&gt;
	end&lt;br /&gt;
	-- fetch the first claim of satisfying the given property&lt;br /&gt;
	local claims&lt;br /&gt;
	if entity.claims then claims = entity.claims[mw.wikibase.resolvePropertyId(property)] end&lt;br /&gt;
	if not claims or not claims[1] then&lt;br /&gt;
		if showerrors then return printError(&amp;quot;property-not-found&amp;quot;) else return default end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	--filter claims&lt;br /&gt;
	claims = filterClaims(frame, claims)&lt;br /&gt;
	if not claims[1] then return default end&lt;br /&gt;
&lt;br /&gt;
	-- get initial sort indices&lt;br /&gt;
	local sortindices = {}&lt;br /&gt;
	for idx in pairs(claims) do&lt;br /&gt;
		sortindices[#sortindices + 1] = idx&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local comparator&lt;br /&gt;
	if sort then&lt;br /&gt;
		-- sort by time qualifier&lt;br /&gt;
		comparator = function(a, b)&lt;br /&gt;
			local timea = getQualifierSortValue(claims[a], sort)&lt;br /&gt;
			local timeb = getQualifierSortValue(claims[b], sort)&lt;br /&gt;
			if type(timea) ~= type(timeb) and not (tonumber(timea) and tonumber(timeb)) then&lt;br /&gt;
				if tonumber(timea) then return true&lt;br /&gt;
				elseif tonumber(timeb) then return false&lt;br /&gt;
				elseif tostring(timea) and tostring(timeb) then&lt;br /&gt;
					if inverse then return tostring(timea) &amp;gt; tostring(timeb) else return tostring(timea) &amp;lt; tostring(timeb) end&lt;br /&gt;
				else return false end -- different types, neither numbers nor strings, no chance to compare =&amp;gt; random result to avoid script error&lt;br /&gt;
			elseif tonumber(timea) and tonumber(timeb) then&lt;br /&gt;
				timea = tonumber(timea)&lt;br /&gt;
				timeb = tonumber(timeb)&lt;br /&gt;
			end&lt;br /&gt;
			if inverse then&lt;br /&gt;
				return timea &amp;gt; timeb&lt;br /&gt;
			else&lt;br /&gt;
				return timea &amp;lt; timeb&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	elseif sortInItem then&lt;br /&gt;
		-- fill table sortkeys&lt;br /&gt;
		local sortkeys = {}&lt;br /&gt;
		local snakSingle&lt;br /&gt;
		local sortkeyValueId&lt;br /&gt;
		local claimContainingValue&lt;br /&gt;
		for idx, claim in pairs(claims) do&lt;br /&gt;
			snakSingle = getQualifierSnak(claim)&lt;br /&gt;
			sortkeyValueId = &amp;quot;Q&amp;quot; .. getSnakValue(snakSingle, &amp;quot;numeric-id&amp;quot;)&lt;br /&gt;
			claimContainingValue = mw.wikibase.getEntity(sortkeyValueId).claims[mw.wikibase.resolvePropertyId(sortInItem)]&lt;br /&gt;
			if claimContainingValue then&lt;br /&gt;
				sortkeys[#sortkeys + 1] = getValueOfClaim(claimContainingValue[1])&lt;br /&gt;
			else&lt;br /&gt;
				sortkeys[#sortkeys + 1] = &amp;quot;&amp;quot;&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		comparator = function(a, b)&lt;br /&gt;
			if inverse then&lt;br /&gt;
				return sortkeys[a] &amp;gt; sortkeys [b]&lt;br /&gt;
			else&lt;br /&gt;
				return sortkeys[a] &amp;lt; sortkeys [b]&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		-- sort by claim rank&lt;br /&gt;
		comparator = function(a, b)&lt;br /&gt;
			local rankmap = { deprecated = 2, normal = 1, preferred = 0 }&lt;br /&gt;
			local ranka = rankmap[claims[a].rank or &amp;quot;normal&amp;quot;] ..  string.format(&amp;quot;%08d&amp;quot;, a)&lt;br /&gt;
			local rankb = rankmap[claims[b].rank or &amp;quot;normal&amp;quot;] ..  string.format(&amp;quot;%08d&amp;quot;, b)&lt;br /&gt;
			return ranka &amp;lt; rankb&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	table.sort(sortindices, comparator)&lt;br /&gt;
&lt;br /&gt;
	local result&lt;br /&gt;
	local error&lt;br /&gt;
	if list then&lt;br /&gt;
		list = string.gsub(list, &amp;quot;\\n&amp;quot;, &amp;quot;\n&amp;quot;) -- if a newline is provided (whose backslash will be escaped) unescape it&lt;br /&gt;
		local value&lt;br /&gt;
		-- iterate over all elements and return their value (if existing)&lt;br /&gt;
		result = {}&lt;br /&gt;
		for idx in pairs(claims) do&lt;br /&gt;
			local claim = claims[sortindices[idx]]&lt;br /&gt;
			value, error =  getValueOfClaim(claim, qualifierId, parameter)&lt;br /&gt;
			if not value and value ~= 0 and showerrors then value = error end&lt;br /&gt;
			if not value and value ~= 0 and includeempty then value = &amp;quot;&amp;quot; end&lt;br /&gt;
			if value and references then value = value .. getReferences(frame, claim) end&lt;br /&gt;
			result[#result + 1] = value&lt;br /&gt;
		end&lt;br /&gt;
		if listMaxItems and listMaxItems &amp;gt; 0 then&lt;br /&gt;
			result = table.concat(result, list, 1, math.min(table.getn(result), listMaxItems))&lt;br /&gt;
		else&lt;br /&gt;
			result = table.concat(result, list)&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		-- return first element&lt;br /&gt;
&lt;br /&gt;
		local claim = claims[sortindices[1]]&lt;br /&gt;
		if language and claim.mainsnak.datatype == &amp;quot;monolingualtext&amp;quot; then&lt;br /&gt;
			-- iterate over claims to find adequate language&lt;br /&gt;
			for idx, claim in pairs(claims) do&lt;br /&gt;
				if claim.mainsnak.datavalue.value.language == language then&lt;br /&gt;
					result, error = getValueOfClaim(claim, qualifierId, parameter)&lt;br /&gt;
					break&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			result, error = getValueOfClaim(claim, qualifierId, parameter)&lt;br /&gt;
		end&lt;br /&gt;
		if references == &amp;quot;only&amp;quot; then &lt;br /&gt;
			result = getReferences(frame, claim)&lt;br /&gt;
		elseif result and references then &lt;br /&gt;
			result = result .. getReferences(frame, claim) &lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if result then return result else&lt;br /&gt;
		if showerrors then return error else return default end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.getValue(frame)&lt;br /&gt;
	local param = frame.args[2]&lt;br /&gt;
	if param == &amp;quot;FETCH_WIKIDATA&amp;quot; or param == i18n[&amp;quot;FETCH_WIKIDATA&amp;quot;] then return p.claim(frame) else return param end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.pageId(frame)&lt;br /&gt;
	local id = frame.args[1]&lt;br /&gt;
	local entity = mw.wikibase.getEntity(id)&lt;br /&gt;
	if not entity then return &amp;quot;&amp;quot; else return entity.id end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.labelOf(frame)&lt;br /&gt;
	local id = frame.args[1]&lt;br /&gt;
	-- returns the label of the given entity/property id&lt;br /&gt;
	-- if no id is given, the one from the entity associated with the calling Wikipedia article is used&lt;br /&gt;
	if not id then&lt;br /&gt;
		local entity = mw.wikibase.getEntity()&lt;br /&gt;
		if not entity then return printError(&amp;quot;entity-not-found&amp;quot;) end&lt;br /&gt;
		id = entity.id&lt;br /&gt;
	end&lt;br /&gt;
	return mw.wikibase.label(id)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.sitelinkOf(frame)&lt;br /&gt;
	local id = frame.args[1]&lt;br /&gt;
	-- returns the Wikipedia article name of the given entity&lt;br /&gt;
	-- if no id is given, the one from the entity associated with the calling Wikipedia article is used&lt;br /&gt;
	if not id then&lt;br /&gt;
		local entity = mw.wikibase.getEntity()&lt;br /&gt;
		if not entity then return printError(&amp;quot;entity-not-found&amp;quot;) end&lt;br /&gt;
		id = entity.id&lt;br /&gt;
	end&lt;br /&gt;
	return mw.wikibase.sitelink(id)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.badges(frame)&lt;br /&gt;
	local site = frame.args[1]&lt;br /&gt;
	local id = frame.args[2]&lt;br /&gt;
	if not site then return printError(&amp;quot;site-not-found&amp;quot;) end&lt;br /&gt;
	local entity = mw.wikibase.getEntity(id)&lt;br /&gt;
	if not entity then return printError(&amp;quot;entity-not-found&amp;quot;) end&lt;br /&gt;
	local badges = entity.sitelinks[site].badges&lt;br /&gt;
	if badges then&lt;br /&gt;
		local result&lt;br /&gt;
		for idx = 1, #badges do&lt;br /&gt;
			if result then result = result .. &amp;quot;/&amp;quot; .. badges[idx] else result = badges[idx] end&lt;br /&gt;
		end&lt;br /&gt;
		return result&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.sitelinkCount(frame)&lt;br /&gt;
	local filter = &amp;quot;^.*&amp;quot; .. (frame.args[1] or &amp;quot;&amp;quot;) .. &amp;quot;$&amp;quot;&lt;br /&gt;
	local id = frame.args[2]&lt;br /&gt;
&lt;br /&gt;
	local entity = mw.wikibase.getEntity(id)&lt;br /&gt;
	local count = 0&lt;br /&gt;
	if entity and entity.sitelinks then&lt;br /&gt;
		for project, _ in pairs(entity.sitelinks) do&lt;br /&gt;
			if string.find(project, filter) then count = count + 1 end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return count&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- call this in cases of script errors within a function instead of {{#invoke:Wikidata|&amp;lt;method&amp;gt;|...}} call {{#invoke:Wikidata|debug|&amp;lt;method&amp;gt;|...}}&lt;br /&gt;
function p.debug(frame)&lt;br /&gt;
	local func = frame.args[1]&lt;br /&gt;
	if func then&lt;br /&gt;
		-- create new parameter set, where the first parameter with the function name is removed&lt;br /&gt;
		local newargs = {}&lt;br /&gt;
		for key, val in pairs(frame.args) do&lt;br /&gt;
			if type(key) == &amp;quot;number&amp;quot; then&lt;br /&gt;
				if key &amp;gt; 1 then newargs[key - 1] = val end&lt;br /&gt;
			else&lt;br /&gt;
				newargs[key] = val&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		frame.args = newargs&lt;br /&gt;
		local status, result = pcall(p[func], frame)&lt;br /&gt;
		-- if status then return tostring(result) or &amp;quot;&amp;quot; else return '&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;' .. result .. '&amp;lt;/span&amp;gt;' end -- revert&lt;br /&gt;
		if status then return result else return '&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;' .. result .. '&amp;lt;/span&amp;gt;' end&lt;br /&gt;
	else&lt;br /&gt;
		return printError(&amp;quot;invalid-parameters&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.printEntity(frame)&lt;br /&gt;
	local id = frame.args[1]&lt;br /&gt;
	local entity = mw.wikibase.getEntity(id)&lt;br /&gt;
	if entity then return &amp;quot;&amp;lt;pre&amp;gt;&amp;quot; .. mw.text.jsonEncode(entity, mw.text.JSON_PRETTY) .. &amp;quot;&amp;lt;/pre&amp;gt;&amp;quot; end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Stefansvw</name></author>
		
	</entry>
</feed>