<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="nl">
	<id>https://wiki-raamsdonk.nl/index.php?action=history&amp;feed=atom&amp;title=Module%3ATaxonbalk</id>
	<title>Module:Taxonbalk - Bewerkingsoverzicht</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-raamsdonk.nl/index.php?action=history&amp;feed=atom&amp;title=Module%3ATaxonbalk"/>
	<link rel="alternate" type="text/html" href="https://wiki-raamsdonk.nl/index.php?title=Module:Taxonbalk&amp;action=history"/>
	<updated>2026-04-04T13:11:07Z</updated>
	<subtitle>Bewerkingsoverzicht voor deze pagina op de wiki</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://wiki-raamsdonk.nl/index.php?title=Module:Taxonbalk&amp;diff=179822&amp;oldid=prev</id>
		<title>Colani: 1 versie geïmporteerd</title>
		<link rel="alternate" type="text/html" href="https://wiki-raamsdonk.nl/index.php?title=Module:Taxonbalk&amp;diff=179822&amp;oldid=prev"/>
		<updated>2025-12-08T09:41:36Z</updated>

		<summary type="html">&lt;p&gt;1 versie geïmporteerd&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nieuwe pagina&lt;/b&gt;&lt;/p&gt;&lt;div&gt;require(&amp;#039;strict&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
local conf = require( &amp;#039;Module:Taxonbalk/conf&amp;#039; ) --configuration module&lt;br /&gt;
local TaxonItalics = require( &amp;#039;Module:TaxonItalics&amp;#039; ) --use a function to conditionally italicize taxon names&lt;br /&gt;
&lt;br /&gt;
--[[==========================================================================]]&lt;br /&gt;
--[[                             Local functions                              ]]&lt;br /&gt;
--[[==========================================================================]]&lt;br /&gt;
&lt;br /&gt;
local function isNilOrEmpty( thing )&lt;br /&gt;
	if thing == nil or thing == &amp;#039;&amp;#039; then&lt;br /&gt;
		return true&lt;br /&gt;
	end&lt;br /&gt;
	return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getIdFromWikidata( item, property )&lt;br /&gt;
	local id = nil&lt;br /&gt;
	if property == &amp;#039;PWikispecies:$1&amp;#039; then&lt;br /&gt;
		local siteLinks = item.sitelinks&lt;br /&gt;
		if siteLinks then&lt;br /&gt;
			local speciesWiki = item.sitelinks.specieswiki&lt;br /&gt;
			if speciesWiki then&lt;br /&gt;
				id = speciesWiki.title&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		return id&lt;br /&gt;
	elseif item.claims[property] == nil then&lt;br /&gt;
		return id&lt;br /&gt;
	end&lt;br /&gt;
	--[[ this code picks up deprecated values on wikidata; better to use getBestStatements&lt;br /&gt;
	for _, statement in pairs( item.claims[property] ) do&lt;br /&gt;
		if statement.mainsnak.datavalue then&lt;br /&gt;
			id = statement.mainsnak.datavalue.value&lt;br /&gt;
			break&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	]]&lt;br /&gt;
	local statements = item:getBestStatements(property)[1] &lt;br /&gt;
	if statements and&lt;br /&gt;
	   statements.mainsnak and&lt;br /&gt;
	   statements.mainsnak.datavalue and&lt;br /&gt;
	   statements.mainsnak.datavalue.value&lt;br /&gt;
	then&lt;br /&gt;
		id = statements.mainsnak.datavalue.value&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return id&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getLink( property, db, val )&lt;br /&gt;
	local link, returnVal = &amp;#039;&amp;#039;, {}&lt;br /&gt;
	&lt;br /&gt;
	returnVal.isError = false&lt;br /&gt;
	&lt;br /&gt;
	if mw.ustring.find( val, &amp;#039;//&amp;#039; ) then&lt;br /&gt;
		link = val&lt;br /&gt;
	else&lt;br /&gt;
		if type(property) == &amp;#039;number&amp;#039; and property &amp;gt; 0 then&lt;br /&gt;
			local entityObject = mw.wikibase.getEntity(&amp;#039;P&amp;#039;..property)&lt;br /&gt;
			local dataType&lt;br /&gt;
			&lt;br /&gt;
			if entityObject then dataType = entityObject.datatype&lt;br /&gt;
			else returnVal.isError = true end&lt;br /&gt;
			&lt;br /&gt;
			if dataType == &amp;#039;external-id&amp;#039; then&lt;br /&gt;
				local formatterURL = nil&lt;br /&gt;
				if property == 3746 or --Wildflowers of Israel&lt;br /&gt;
				   property == 3795 or --Flora of Israel Online&lt;br /&gt;
				   property == 5397    --Tierstimmenarchiv&lt;br /&gt;
				then&lt;br /&gt;
					formatterURL = entityObject:getBestStatements(&amp;#039;P1630&amp;#039;)[2] --use 2nd formatterURL for English version&lt;br /&gt;
				end&lt;br /&gt;
				if formatterURL == nil then formatterURL = entityObject:getBestStatements(&amp;#039;P1630&amp;#039;)[1] end --default to [1]&lt;br /&gt;
				if formatterURL then&lt;br /&gt;
					if formatterURL.mainsnak.datavalue and formatterURL.mainsnak.datavalue.value then --nil check for ABA&lt;br /&gt;
						link = formatterURL.mainsnak.datavalue.value&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
				if db == &amp;#039;bow&amp;#039; then -- for birds of world which uses eBird identifier&lt;br /&gt;
					link = &amp;#039;https://birdsoftheworld.org/bow/species/$1&amp;#039;&lt;br /&gt;
				end&lt;br /&gt;
			elseif dataType == &amp;#039;url&amp;#039; then&lt;br /&gt;
				local subjectItem = entityObject:getBestStatements(&amp;#039;P1629&amp;#039;)[1]&lt;br /&gt;
				if subjectItem then&lt;br /&gt;
					local officialWebsite = mw.wikibase.getEntity(subjectItem.mainsnak.datavalue.value.id):getBestStatements(&amp;#039;P856&amp;#039;)[1]&lt;br /&gt;
					if officialWebsite then	link = officialWebsite.mainsnak.datavalue.value end&lt;br /&gt;
				end&lt;br /&gt;
			elseif dataType == &amp;#039;string&amp;#039; then&lt;br /&gt;
				local formatterURL = entityObject:getBestStatements(&amp;#039;P1630&amp;#039;)[1]&lt;br /&gt;
				if formatterURL then&lt;br /&gt;
					link = formatterURL.mainsnak.datavalue.value&lt;br /&gt;
				else&lt;br /&gt;
					local subjectItem = entityObject:getBestStatements(&amp;#039;P1629&amp;#039;)[1]&lt;br /&gt;
					if subjectItem then&lt;br /&gt;
						local officialWebsite = mw.wikibase.getEntity(subjectItem.mainsnak.datavalue.value.id):getBestStatements(&amp;#039;P856&amp;#039;)[1]&lt;br /&gt;
						if officialWebsite then	link = officialWebsite.mainsnak.datavalue.value end&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			else&lt;br /&gt;
				returnVal.isError = true&lt;br /&gt;
			end&lt;br /&gt;
		elseif type(property) == &amp;#039;string&amp;#039; then&lt;br /&gt;
			link = property&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		--local valurl = val&lt;br /&gt;
		local valurl = mw.uri.encode( val, &amp;#039;PATH&amp;#039; )&lt;br /&gt;
		valurl = string.gsub (valurl, &amp;#039;%%2F&amp;#039;, &amp;#039;/&amp;#039;) --escape &amp;#039;/&amp;#039; (e.g. issue with P5354); see wikidata T128078 and https://gerrit.wikimedia.org/r/c/mediawiki/extensions/Wikibase/+/664820/3/lib/includes/PropertyInfoSnakUrlExpander.php&lt;br /&gt;
		&lt;br /&gt;
		if type(property) == &amp;#039;number&amp;#039; then&lt;br /&gt;
			--doublecheck language for Wildflowers of Israel ID&lt;br /&gt;
			if property == 3746 then link = mw.ustring.gsub(link, &amp;#039;/hebrew/&amp;#039;, &amp;#039;/english/&amp;#039;) end&lt;br /&gt;
			--format spaces in PfaF binomials, e.g. &amp;quot;Elaeagnus x ebbingei&amp;quot;&lt;br /&gt;
			if property == 4301 then valurl = mw.ustring.gsub(valurl, &amp;#039;%%20&amp;#039;, &amp;#039;+&amp;#039;) end&lt;br /&gt;
		end&lt;br /&gt;
		valurl = mw.ustring.gsub(valurl,&amp;#039;%%&amp;#039;,&amp;#039;%%%%&amp;#039;)&lt;br /&gt;
		link = mw.ustring.gsub(link, &amp;#039;$1&amp;#039;, valurl)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	link = mw.ustring.gsub(link, &amp;#039;^[Hh][Tt][Tt][Pp]([Ss]?)&amp;amp;#58;//&amp;#039;, &amp;#039;http%1://&amp;#039;) --fix wikidata URL&lt;br /&gt;
	val = mw.ustring.match(val, &amp;#039;([^=/]*)/?$&amp;#039;) --get display name from end of URL&lt;br /&gt;
	if mw.ustring.find( link, &amp;#039;//&amp;#039; ) then&lt;br /&gt;
		returnVal.text = &amp;#039;[&amp;#039;..link..&amp;#039; &amp;#039;..mw.text.encode(mw.uri.decode(val, &amp;#039;PATH&amp;#039;),&amp;#039;%[%]&amp;#039;)..&amp;#039;]&amp;#039;&lt;br /&gt;
	elseif link == &amp;#039;&amp;#039; then&lt;br /&gt;
		returnVal.text = val&lt;br /&gt;
	else&lt;br /&gt;
		returnVal.text = &amp;#039;&amp;lt;span class=&amp;quot;external&amp;quot;&amp;gt;[[&amp;#039;..link..&amp;#039;|&amp;#039;..val..&amp;#039;]]&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	return returnVal&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function createRow( id, label, rawValue, link, withUid )&lt;br /&gt;
	if link then&lt;br /&gt;
		local outStr = &amp;#039;*&amp;lt;span style=&amp;quot;white-space:nowrap;&amp;quot;&amp;gt;&amp;#039;..label..&amp;#039; &amp;lt;span&amp;#039;&lt;br /&gt;
		if withUid then outStr = outStr..&amp;#039; class=&amp;quot;uid&amp;quot;&amp;#039; end&lt;br /&gt;
		return outStr..&amp;#039;&amp;gt;&amp;#039;..link..&amp;#039;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;\n&amp;#039;&lt;br /&gt;
	else&lt;br /&gt;
		return &amp;#039;* &amp;#039;..mw.text.tag(&amp;#039;span&amp;#039;, {class=&amp;#039;error&amp;#039;}, &amp;#039;The identifier &amp;#039;..id..&amp;#039; &amp;#039;..rawValue..&amp;#039; is not valid.&amp;#039;)..&amp;#039;\n&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function copyTable(inTable)&lt;br /&gt;
	if type(inTable) ~= &amp;#039;table&amp;#039; then return inTable end&lt;br /&gt;
	local outTable = setmetatable({}, getmetatable(inTable))&lt;br /&gt;
	for key, value in pairs (inTable) do outTable[copyTable(key)] = copyTable(value) end&lt;br /&gt;
	return outTable&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
--[[==========================================================================]]&lt;br /&gt;
--[[                                   Main                                   ]]&lt;br /&gt;
--[[==========================================================================]]&lt;br /&gt;
&lt;br /&gt;
function p.authorityControlTaxon( frame )&lt;br /&gt;
	local resolveEntity = require( &amp;#039;Module:ResolveEntityId&amp;#039; )&lt;br /&gt;
	local parentArgs = copyTable(frame:getParent().args)&lt;br /&gt;
&lt;br /&gt;
	local currentTitle = mw.title.getCurrentTitle()&lt;br /&gt;
	local currentEntityId = mw.wikibase.getEntityIdForCurrentPage()&lt;br /&gt;
	&lt;br /&gt;
	local stringArgs = false&lt;br /&gt;
	local fromTitleCount, firstRow, rowCount = 1, 0, 0&lt;br /&gt;
	local outString, errors = &amp;#039;&amp;#039;, &amp;#039;&amp;#039;&lt;br /&gt;
	local iFroms = 0 --integer size of tFroms, b/c Lua&lt;br /&gt;
	local tFroms = {} --non-sequential table of unique froms&lt;br /&gt;
	local tCats = {&lt;br /&gt;
		&amp;#039;&amp;#039;,--[[Categorie:Wikipedia:Taxonbalken without from parameter]]&lt;br /&gt;
		&amp;#039;&amp;#039;,--[[Categorie:Wikipedia:Taxonbalken niet in sync met Wikidata]]&lt;br /&gt;
		&amp;#039;&amp;#039;, -- [3] placeholder for [[Categorie:Wikipedia:Taxonbalk pages requiring a Wikidata item]]&lt;br /&gt;
		&amp;#039;&amp;#039;, -- [4] placeholder for [[Categorie:Wikipedia:Taxonbalken on possible non-taxon pages]]&lt;br /&gt;
		&amp;#039;&amp;#039;, -- [5] placeholder for [[Categorie:Wikipedia:Taxonbalken with invalid from parameters]]&lt;br /&gt;
		&amp;#039;&amp;#039;, -- [6] placeholder for [[Categorie:Wikipedia:Taxonbalken with duplicate from parameters]]&lt;br /&gt;
		&amp;#039;&amp;#039;, -- [7] placeholder for [[Categorie:Wikipedia:Taxonbalken with from2 matching article title]]&lt;br /&gt;
		&amp;#039;&amp;#039;, -- [8] placeholder for [[Categorie:Wikipedia:Taxonbalken with from2 matching article title &amp;amp; QID]]&lt;br /&gt;
		&amp;#039;&amp;#039;, -- [9] placeholder for [[Categorie:Wikipedia:Taxonbalken with manual taxon IDs]] --renamed &amp;#039;using&amp;#039; -&amp;gt; &amp;#039;with&amp;#039;&lt;br /&gt;
		&amp;#039;&amp;#039;, --[10] placeholder for [[Categorie:Wikipedia:Taxonbalken with manual taxon IDs identical to Wikidata]]&lt;br /&gt;
		&amp;#039;&amp;#039;, --[11] placeholder for [[Categorie:Wikipedia:Taxonbalken with manual taxon IDs differing from Wikidata]]&lt;br /&gt;
		&amp;#039;&amp;#039;, --[12] placeholder for [[Categorie:Wikipedia:Taxonbalken with unknown parameters]]&lt;br /&gt;
		&amp;#039;&amp;#039;, --[13] placeholder for [[Categorie:Wikipedia:Taxonbalken with unnamed parameters]]&lt;br /&gt;
		&amp;#039;&amp;#039;, --[14] placeholder for [[Categorie:Wikipedia:Taxonbalken with multiple manual Wikidata items]] --renamed &amp;#039;using&amp;#039; -&amp;gt; &amp;#039;with&amp;#039;&lt;br /&gt;
		&amp;#039;&amp;#039;, --[15] placeholder for [[Categorie:Wikipedia:Taxonbalken with automatically added basionyms]]&lt;br /&gt;
		&amp;#039;&amp;#039;, --[16] placeholder for [[Categorie:Wikipedia:Taxonbalken with automatically added original combinations]]&lt;br /&gt;
		&amp;#039;&amp;#039;, --[17] placeholder for [[Categorie:Wikipedia:Taxonbalken with automatically added monotypic genera]]&lt;br /&gt;
		&amp;#039;&amp;#039;, --[18] placeholder for [[Categorie:Wikipedia:Taxonbalken of monotypic species missing genera]]&lt;br /&gt;
		&amp;#039;&amp;#039;, --[19] placeholder for [[Categorie:Wikipedia:Taxonbalken without primary Wikidata taxon IDs]]&lt;br /&gt;
		&amp;#039;&amp;#039;, --[20] placeholder for [[Categorie:Wikipedia:Taxonbalken without secondary Wikidata taxon IDs]]&lt;br /&gt;
		&amp;#039;&amp;#039;, --[21] placeholder for [[Categorie:Wikipedia:Taxonbalken with 20–24 taxon IDs]]&lt;br /&gt;
		&amp;#039;&amp;#039;, --[22] placeholder for [[Categorie:Wikipedia:Taxonbalken with 25–29 taxon IDs]]&lt;br /&gt;
		&amp;#039;&amp;#039;, --[23] placeholder for [[Categorie:Wikipedia:Taxonbalken with 30–34 taxon IDs]]&lt;br /&gt;
		&amp;#039;&amp;#039;, --[24] placeholder for [[Categorie:Wikipedia:Taxonbalken with 35–39 taxon IDs]]&lt;br /&gt;
		&amp;#039;&amp;#039;, --[25] placeholder for [[Categorie:Wikipedia:Taxonbalken with 40–44 taxon IDs]] --renamed &amp;#039;40+&amp;#039; -&amp;gt; &amp;#039;40–44&amp;#039;&lt;br /&gt;
		&amp;#039;&amp;#039;, --[26] placeholder for [[Categorie:Wikipedia:Taxonbalken with 45+ taxon IDs]] --new&lt;br /&gt;
	}&lt;br /&gt;
	local acceptableInstanceOf_Strict = {&lt;br /&gt;
		[&amp;#039;Q16521&amp;#039;] = &amp;#039;taxon&amp;#039;,                      --strict&lt;br /&gt;
		[&amp;#039;Q310890&amp;#039;] = &amp;#039;monotypic taxon&amp;#039;,           --strict&lt;br /&gt;
		[&amp;#039;Q98961713&amp;#039;] = &amp;#039;extinct taxon&amp;#039;,           --strict&lt;br /&gt;
		[&amp;#039;Q2568288&amp;#039;] = &amp;#039;ichnotaxon&amp;#039;,               --strict&lt;br /&gt;
		[&amp;#039;Q23038290&amp;#039;] = &amp;#039;fossil taxon&amp;#039;,            --strict&lt;br /&gt;
		[&amp;#039;Q47487597&amp;#039;] = &amp;#039;monotypic fossil taxon&amp;#039;,  --strict&lt;br /&gt;
		[&amp;#039;Q58051350&amp;#039;] = &amp;#039;paraphyletic group&amp;#039;,      --strict (subclass of taxon)&lt;br /&gt;
		[&amp;#039;Q59278506&amp;#039;] = &amp;#039;ootaxon&amp;#039;,                 --strict&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
	local acceptableInstanceOf_All = {&lt;br /&gt;
		[&amp;#039;Q16521&amp;#039;] = &amp;#039;taxon&amp;#039;,                      --strict&lt;br /&gt;
		[&amp;#039;Q310890&amp;#039;] = &amp;#039;monotypic taxon&amp;#039;,           --strict&lt;br /&gt;
		[&amp;#039;Q98961713&amp;#039;] = &amp;#039;extinct taxon&amp;#039;,           --strict&lt;br /&gt;
		[&amp;#039;Q2568288&amp;#039;] = &amp;#039;ichnotaxon&amp;#039;,               --strict&lt;br /&gt;
		[&amp;#039;Q23038290&amp;#039;] = &amp;#039;fossil taxon&amp;#039;,            --strict&lt;br /&gt;
		[&amp;#039;Q47487597&amp;#039;] = &amp;#039;monotypic fossil taxon&amp;#039;,  --strict&lt;br /&gt;
		[&amp;#039;Q58051350&amp;#039;] = &amp;#039;paraphyletic group&amp;#039;,      --strict&lt;br /&gt;
		[&amp;#039;Q59278506&amp;#039;] = &amp;#039;ootaxon&amp;#039;,                 --strict&lt;br /&gt;
		[&amp;#039;Q42621&amp;#039;] = &amp;#039;hybrid&amp;#039;,                     --lax&lt;br /&gt;
		[&amp;#039;Q235536&amp;#039;] = &amp;#039;incertae sedis&amp;#039;,            --lax&lt;br /&gt;
		[&amp;#039;Q713623&amp;#039;] = &amp;#039;clade&amp;#039;,                     --lax&lt;br /&gt;
		[&amp;#039;Q848328&amp;#039;] = &amp;#039;serotype&amp;#039;,                  --lax&lt;br /&gt;
		[&amp;#039;Q857968&amp;#039;] = &amp;#039;candidatus&amp;#039;,                --lax&lt;br /&gt;
		[&amp;#039;Q17487588&amp;#039;] = &amp;#039;unavailable combination&amp;#039;, --lax&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	--Assess the page&amp;#039;s relationship with Wikidata&lt;br /&gt;
	local currentItem = nil&lt;br /&gt;
	if currentTitle.namespace == 10 then --i.e. Module:Taxonbalk/sandbox, Template:Taxonbalk/doc, etc.&lt;br /&gt;
		if resolveEntity._id(parentArgs[&amp;#039;van&amp;#039;]) then&lt;br /&gt;
			currentItem = mw.wikibase.getEntity(parentArgs[&amp;#039;van&amp;#039;])&lt;br /&gt;
		end&lt;br /&gt;
		if currentItem == nil then&lt;br /&gt;
			if resolveEntity._id(parentArgs[&amp;#039;van1&amp;#039;]) then&lt;br /&gt;
				currentItem = mw.wikibase.getEntity(parentArgs[&amp;#039;van1&amp;#039;])&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	elseif resolveEntity._id(currentEntityId) then&lt;br /&gt;
		currentItem = mw.wikibase.getEntity(currentEntityId)&lt;br /&gt;
&lt;br /&gt;
--	else --currentEntityId == nil/unresolvable&lt;br /&gt;
--		tCats[3] = &amp;#039;[[Categorie:Wikipedia:Pagina\&amp;#039;s met taxonbalken die niet gekoppeld zijn aan een Wikidata-item]]&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	if currentItem then&lt;br /&gt;
		tCats[4] = &amp;#039;[[Categorie:Wikipedia:Taxonbalken op niet-taxonpagina\&amp;#039;s]]&amp;#039; --unset if acceptable found&lt;br /&gt;
		for _, instanceOfState in pairs ( currentItem:getBestStatements(&amp;#039;P31&amp;#039;) ) do --instance of&lt;br /&gt;
			local instanceOf = instanceOfState.mainsnak.datavalue.value.id&lt;br /&gt;
			if acceptableInstanceOf_All[instanceOf] then&lt;br /&gt;
				tCats[4] = &amp;#039;&amp;#039;&lt;br /&gt;
				break&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	--Cleanup args&lt;br /&gt;
	for k, v in pairs( frame:getParent().args ) do&lt;br /&gt;
		if type(k) == &amp;#039;string&amp;#039; then&lt;br /&gt;
			--make args case insensitive&lt;br /&gt;
			local lowerk = mw.ustring.lower(k)&lt;br /&gt;
			if isNilOrEmpty( parentArgs[lowerk] ) then&lt;br /&gt;
				parentArgs[k] = nil&lt;br /&gt;
				parentArgs[lowerk] = v&lt;br /&gt;
			end&lt;br /&gt;
			--remap abc to abc1&lt;br /&gt;
			if mw.ustring.find(lowerk,&amp;#039;%d$&amp;#039;) == nil then --if no number at end of param&lt;br /&gt;
				if isNilOrEmpty( parentArgs[lowerk..&amp;#039;1&amp;#039;] ) then&lt;br /&gt;
					parentArgs[lowerk] = nil&lt;br /&gt;
					lowerk = lowerk..&amp;#039;1&amp;#039;&lt;br /&gt;
					parentArgs[lowerk] = v&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			if v and v ~= &amp;#039;&amp;#039; then&lt;br /&gt;
				--remap &amp;#039;for&amp;#039; to &amp;#039;titel&amp;#039;&lt;br /&gt;
				if mw.ustring.sub(lowerk,1,3) == &amp;#039;for&amp;#039; then&lt;br /&gt;
					local forTitle = mw.ustring.gsub(lowerk,&amp;#039;^for&amp;#039;,&amp;#039;titel&amp;#039;,1)&lt;br /&gt;
					if isNilOrEmpty( parentArgs[forTitle] ) then&lt;br /&gt;
						parentArgs[lowerk] = nil&lt;br /&gt;
						lowerk = forTitle&lt;br /&gt;
						parentArgs[lowerk] = v&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
				--find highest from or title param&lt;br /&gt;
				if mw.ustring.sub(lowerk,1,3) == &amp;#039;van&amp;#039; then&lt;br /&gt;
					local fromNumber = tonumber(mw.ustring.sub(lowerk,4,-1))&lt;br /&gt;
					if fromNumber and fromNumber &amp;gt;= fromTitleCount then fromTitleCount = fromNumber end&lt;br /&gt;
					--look for duplicate froms while we&amp;#039;re here&lt;br /&gt;
					if mw.ustring.find(v, &amp;#039;^Q%d&amp;#039;) then&lt;br /&gt;
						if tFroms[v] then&lt;br /&gt;
--							tCats[6] = &amp;#039;[[Categorie:Wikipedia:Taxonbalken met dubbele parameter van]]&amp;#039;&lt;br /&gt;
							tFroms[v] = tFroms[v] + 1&lt;br /&gt;
						else&lt;br /&gt;
							tFroms[v] = 1&lt;br /&gt;
							iFroms = iFroms + 1&lt;br /&gt;
						end&lt;br /&gt;
						if iFroms == 2 then&lt;br /&gt;
							tCats[14] = &amp;#039;[[Categorie:Wikipedia:Taxonbalken met meerdere handmatig ingevoerde Wikidata-items]]&amp;#039;&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
				elseif mw.ustring.sub(lowerk,1,5) == &amp;#039;titel&amp;#039; then&lt;br /&gt;
					local titleNumber = tonumber(mw.ustring.sub(lowerk,4,-1))&lt;br /&gt;
					if titleNumber and titleNumber &amp;gt;= fromTitleCount then fromTitleCount = titleNumber end&lt;br /&gt;
				elseif mw.ustring.lower(v) ~= &amp;#039;no&amp;#039; and  mw.ustring.lower(v) ~= &amp;#039;yes&amp;#039; then&lt;br /&gt;
					stringArgs = true&lt;br /&gt;
					tCats[9] = &amp;#039;[[Categorie:Wikipedia:Taxonbalken waarbij Wikidata-item-id van het taxon handmatig is ingevuld]]&amp;#039;&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end --if type(k) == &amp;#039;string&amp;#039;&lt;br /&gt;
	end --for&lt;br /&gt;
	&lt;br /&gt;
	--Check for unknown parameters&lt;br /&gt;
	--create knowns list&lt;br /&gt;
	local acceptableArgs = { van = true, titel = true } --master list of l/c acceptable args&lt;br /&gt;
	for _, d in pairs( conf.databases ) do&lt;br /&gt;
		if d[1] ~= &amp;#039;Wikidata&amp;#039; then --made obsolete by from&lt;br /&gt;
			acceptableArgs[mw.ustring.lower(d[1])] = true&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	for _, a in pairs( conf.aliases ) do&lt;br /&gt;
		acceptableArgs[mw.ustring.lower(a[1])] = true&lt;br /&gt;
	end&lt;br /&gt;
	--create trimmed parents list&lt;br /&gt;
	local baseParentArgs = {} --condensed list of l/c parent args w/o trailing #s&lt;br /&gt;
	for k, _ in pairs( parentArgs ) do&lt;br /&gt;
		if type(k) == &amp;#039;string&amp;#039; then&lt;br /&gt;
			local lowerk = mw.ustring.lower(k)&lt;br /&gt;
			local base = mw.ustring.gsub(lowerk, &amp;#039;[%d]*$&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
			baseParentArgs[base] = true&lt;br /&gt;
--		elseif type(k) == &amp;#039;number&amp;#039; then&lt;br /&gt;
--			tCats[13] = &amp;#039;[[Categorie:Wikipedia:Taxonbalken with unnamed parameters|&amp;#039;..k..&amp;#039;]]&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	--compare lists and spit out unknowns&lt;br /&gt;
	local unknownParams = {}&lt;br /&gt;
	for k, _ in pairs( baseParentArgs ) do&lt;br /&gt;
		if acceptableArgs[k] == nil then&lt;br /&gt;
--			tCats[12] = &amp;#039;[[Categorie:Wikipedia:Taxonbalken with onbekende parameters|&amp;#039;..k..&amp;#039;]]&amp;#039;&lt;br /&gt;
			unknownParams[#unknownParams + 1] = k&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	--warn if unknown(s) present&lt;br /&gt;
	if #unknownParams &amp;gt; 0 then&lt;br /&gt;
		local plural = &amp;#039;s&amp;#039;&lt;br /&gt;
		local itthem = &amp;#039;them&amp;#039;&lt;br /&gt;
		if #unknownParams == 1 then&lt;br /&gt;
			plural = &amp;#039;&amp;#039;&lt;br /&gt;
			itthem = &amp;#039;it&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
		errors = errors..require(&amp;#039;Module:If preview&amp;#039;)._warning({&lt;br /&gt;
			mw.ustring.format(&lt;br /&gt;
				&amp;#039;Unknown parameter%s &amp;lt;code&amp;gt;%s&amp;lt;/code&amp;gt;. Please correct %s or consider adding %s to Wikidata.&amp;#039;,&lt;br /&gt;
				plural,&lt;br /&gt;
				table.concat(unknownParams, &amp;#039;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;#039;),&lt;br /&gt;
				itthem,&lt;br /&gt;
				itthem&lt;br /&gt;
			)&lt;br /&gt;
		})&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	--Append basionym to arg list, if not already provided&lt;br /&gt;
	if currentItem then&lt;br /&gt;
		local currentBasState = currentItem:getBestStatements(&amp;#039;P566&amp;#039;)[1] --basionym&lt;br /&gt;
		if currentBasState then&lt;br /&gt;
			local basionymId = currentBasState.mainsnak.datavalue.value.id&lt;br /&gt;
			if basionymId and resolveEntity._id(basionymId) and tFroms[basionymId] == nil then&lt;br /&gt;
				--check that basionym is a strict instance of taxon&lt;br /&gt;
				local basionymItem = mw.wikibase.getEntity(basionymId)&lt;br /&gt;
				if basionymItem then&lt;br /&gt;
					for _, instanceOfState in pairs ( basionymItem:getBestStatements(&amp;#039;P31&amp;#039;) ) do --instance of&lt;br /&gt;
						local instanceOf = instanceOfState.mainsnak.datavalue.value.id&lt;br /&gt;
						if acceptableInstanceOf_Strict[instanceOf] then&lt;br /&gt;
							--housekeeping&lt;br /&gt;
							tFroms[basionymId] = 1&lt;br /&gt;
							iFroms = iFroms + 1&lt;br /&gt;
							fromTitleCount = fromTitleCount + 1&lt;br /&gt;
							--append basionym &amp;amp; track&lt;br /&gt;
							parentArgs[&amp;#039;van&amp;#039;..fromTitleCount] = basionymId&lt;br /&gt;
							--tCats[15] = &amp;#039;[[Categorie:Wikipedia:Taxonbalken with automatically added basionyms]]&amp;#039;&lt;br /&gt;
							break&lt;br /&gt;
	end	end	end	end	end	end&lt;br /&gt;
	&lt;br /&gt;
	--Append original combination to arg list, if not already provided&lt;br /&gt;
	if currentItem then&lt;br /&gt;
		local currentOCState = currentItem:getBestStatements(&amp;#039;P1403&amp;#039;)[1] --original combination&lt;br /&gt;
		if currentOCState then&lt;br /&gt;
			local orcoId = currentOCState.mainsnak.datavalue.value.id&lt;br /&gt;
			if orcoId and resolveEntity._id(orcoId) and tFroms[orcoId] == nil then&lt;br /&gt;
				--check that orco is a strict instance of taxon&lt;br /&gt;
				local orcoItem = mw.wikibase.getEntity(orcoId)&lt;br /&gt;
				if orcoItem then&lt;br /&gt;
					for _, instanceOfState in pairs ( orcoItem:getBestStatements(&amp;#039;P31&amp;#039;) ) do --instance of&lt;br /&gt;
						local instanceOf = instanceOfState.mainsnak.datavalue.value.id&lt;br /&gt;
						if acceptableInstanceOf_Strict[instanceOf] then&lt;br /&gt;
							--housekeeping&lt;br /&gt;
							tFroms[orcoId] = 1&lt;br /&gt;
							iFroms = iFroms + 1&lt;br /&gt;
							fromTitleCount = fromTitleCount + 1&lt;br /&gt;
							--append orco &amp;amp; track&lt;br /&gt;
							parentArgs[&amp;#039;van&amp;#039;..fromTitleCount] = orcoId&lt;br /&gt;
							--tCats[16] = &amp;#039;[[Categorie:Wikipedia:Taxonbalken with automatically added original combinations]]&amp;#039;&lt;br /&gt;
							break&lt;br /&gt;
	end	end	end	end	end	end&lt;br /&gt;
	&lt;br /&gt;
	--Append monotypic genus/species to arg list of monotypic species/genus, if not already provided&lt;br /&gt;
	if currentItem then&lt;br /&gt;
		for _, instanceOfState in pairs ( currentItem:getBestStatements(&amp;#039;P31&amp;#039;) ) do --instance of&lt;br /&gt;
			local taxonRank = nil&lt;br /&gt;
			local parentItem = nil&lt;br /&gt;
			local parentTaxon = nil&lt;br /&gt;
			local parentTaxonRank = nil&lt;br /&gt;
			local parentMonoGenus = nil --holy grail/tbd&lt;br /&gt;
			local instanceOf = instanceOfState.mainsnak.datavalue.value.id&lt;br /&gt;
			if instanceOf and (instanceOf == &amp;#039;Q310890&amp;#039; or instanceOf == &amp;#039;Q47487597&amp;#039;) then --monotypic/fossil taxon&lt;br /&gt;
				local taxonRankState = currentItem:getBestStatements(&amp;#039;P105&amp;#039;)[1] --taxon rank&lt;br /&gt;
				if taxonRankState then taxonRank = taxonRankState.mainsnak.datavalue.value.id end&lt;br /&gt;
				&lt;br /&gt;
				if taxonRank and taxonRank == &amp;#039;Q7432&amp;#039; then --species&lt;br /&gt;
					--is monotypic species; add genus&lt;br /&gt;
					local parentTaxonState = currentItem:getBestStatements(&amp;#039;P171&amp;#039;)[1] --parent taxon&lt;br /&gt;
					if parentTaxonState then parentTaxon = parentTaxonState.mainsnak.datavalue.value.id end&lt;br /&gt;
					--confirm parent taxon rank == genus &amp;amp; monotypic&lt;br /&gt;
					if parentTaxon and resolveEntity._id(parentTaxon) then&lt;br /&gt;
						parentItem = mw.wikibase.getEntity(parentTaxon)&lt;br /&gt;
						if parentItem then&lt;br /&gt;
							local parentTaxonRankState = parentItem:getBestStatements(&amp;#039;P105&amp;#039;)[1] --taxon rank&lt;br /&gt;
							if parentTaxonRankState then parentTaxonRank = parentTaxonRankState.mainsnak.datavalue.value.id end&lt;br /&gt;
							if parentTaxonRank and parentTaxonRank == &amp;#039;Q34740&amp;#039; then --parent == genus&lt;br /&gt;
								for _, parentInstanceOfState in pairs ( parentItem:getBestStatements(&amp;#039;P31&amp;#039;) ) do --instance of&lt;br /&gt;
									local parentInstanceOf = parentInstanceOfState.mainsnak.datavalue.value.id &lt;br /&gt;
									if parentInstanceOf and&lt;br /&gt;
									  (parentInstanceOf == &amp;#039;Q310890&amp;#039; or parentInstanceOf == &amp;#039;Q47487597&amp;#039;) then --monotypic/fossil taxon&lt;br /&gt;
										parentMonoGenus = parentTaxon --confirmed&lt;br /&gt;
										break&lt;br /&gt;
									end&lt;br /&gt;
								end&lt;br /&gt;
								if parentMonoGenus and tFroms[parentMonoGenus] == nil then&lt;br /&gt;
									--housekeeping&lt;br /&gt;
									tFroms[parentMonoGenus] = 1&lt;br /&gt;
									iFroms = iFroms + 1&lt;br /&gt;
									fromTitleCount = fromTitleCount + 1&lt;br /&gt;
									--append monotypic genus &amp;amp; track&lt;br /&gt;
									parentArgs[&amp;#039;van&amp;#039;..fromTitleCount] = parentMonoGenus&lt;br /&gt;
--									tCats[17] = &amp;#039;[[Categorie:Wikipedia:Taxonbalken with automatically added monotypic genera]]&amp;#039;&lt;br /&gt;
									break&lt;br /&gt;
								end&lt;br /&gt;
							end&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
					if parentMonoGenus == nil or tFroms[parentMonoGenus] == nil then&lt;br /&gt;
--						tCats[18] = &amp;#039;[[Categorie:Wikipedia:Taxonbalken of monotypic species missing genera]]&amp;#039;&lt;br /&gt;
						break&lt;br /&gt;
					end&lt;br /&gt;
				elseif taxonRank and taxonRank == &amp;#039;Q34740&amp;#039; then --genus&lt;br /&gt;
					--TODO:&lt;br /&gt;
					--is monotypic genus; add species (no way to easily find these (yet?))&lt;br /&gt;
					--...&lt;br /&gt;
				end&lt;br /&gt;
				&lt;br /&gt;
			end&lt;br /&gt;
		end --for&lt;br /&gt;
	end --if currentItem&lt;br /&gt;
	&lt;br /&gt;
	--Setup navbox&lt;br /&gt;
	local navboxParams = {&lt;br /&gt;
		name  = &amp;#039;Taxonbalk&amp;#039;,&lt;br /&gt;
		bodyclass = &amp;#039;hlist mw-collapsible mw-collapsed mw-made-collapsible&amp;#039;,&lt;br /&gt;
		listclass = &amp;#039;&amp;#039;,&lt;br /&gt;
		groupstyle = &amp;#039;text-align: left;&amp;#039;,&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	for f = 1, fromTitleCount, 1&lt;br /&gt;
	do&lt;br /&gt;
		local elements, title = {}, nil&lt;br /&gt;
		--cleanup parameters&lt;br /&gt;
		if parentArgs[&amp;#039;van&amp;#039;..f] == &amp;#039;&amp;#039; then parentArgs[&amp;#039;van&amp;#039;..f] = nil end&lt;br /&gt;
		if parentArgs[&amp;#039;titel&amp;#039;..f] == &amp;#039;&amp;#039; then parentArgs[&amp;#039;titel&amp;#039;..f] = nil end&lt;br /&gt;
		--remap aliases&lt;br /&gt;
		for _, a in pairs( conf.aliases ) do&lt;br /&gt;
			local alias, name = mw.ustring.lower(a[1]), mw.ustring.lower(a[2])&lt;br /&gt;
			if parentArgs[alias..f] and parentArgs[name..f] == nil then&lt;br /&gt;
				parentArgs[name..f] = parentArgs[alias..f]&lt;br /&gt;
				parentArgs[alias..f] = nil&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		--Fetch Wikidata item&lt;br /&gt;
		local from = resolveEntity._id(parentArgs[&amp;#039;van&amp;#039;..f])&lt;br /&gt;
		local item = mw.wikibase.getEntity(from)&lt;br /&gt;
		local label = nil&lt;br /&gt;
		if type(item) == &amp;#039;table&amp;#039; then&lt;br /&gt;
			local statements = item:getBestStatements(&amp;#039;P225&amp;#039;)[1] --taxon name&lt;br /&gt;
			if statements then&lt;br /&gt;
				local datavalue = statements.mainsnak.datavalue&lt;br /&gt;
				if datavalue then&lt;br /&gt;
					label = datavalue.value&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			label = label or item:getLabel()&lt;br /&gt;
		else&lt;br /&gt;
			if parentArgs[&amp;#039;van&amp;#039;..f] then&lt;br /&gt;
				tCats[1] = &amp;#039;&amp;#039;&lt;br /&gt;
--				tCats[5] = &amp;#039;[[Categorie:Wikipedia:Taxonbalken met ongeldige parameter van]]&amp;#039;&lt;br /&gt;
				errors = errors..mw.text.tag(&amp;#039;strong&amp;#039;, {class=&amp;#039;error&amp;#039;}, &amp;#039;Fout: &amp;quot;&amp;#039;..&lt;br /&gt;
				         parentArgs[&amp;#039;van&amp;#039;..f]..&amp;#039;&amp;quot; is geen geldige Wikidata-itemid.&amp;lt;br /&amp;gt;&amp;#039;)				&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if label and label ~= &amp;#039;&amp;#039; then&lt;br /&gt;
			title = mw.title.new(label)&lt;br /&gt;
		end&lt;br /&gt;
		if title == nil and parentArgs[&amp;#039;titel&amp;#039;..f] then&lt;br /&gt;
			title = mw.title.new(parentArgs[&amp;#039;titel&amp;#039;..f])&lt;br /&gt;
		end&lt;br /&gt;
		if title == nil and f == 1 then&lt;br /&gt;
			title = currentTitle&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		if title then&lt;br /&gt;
			if isNilOrEmpty( parentArgs[&amp;#039;wikidata&amp;#039;..f] ) and &lt;br /&gt;
			   (title.namespace == 0) then&lt;br /&gt;
				if parentArgs[&amp;#039;van&amp;#039;..f] then&lt;br /&gt;
					parentArgs[&amp;#039;wikidata&amp;#039;..f] = parentArgs[&amp;#039;van&amp;#039;..f]&lt;br /&gt;
				elseif item then&lt;br /&gt;
					parentArgs[&amp;#039;wikidata&amp;#039;..f] = item.id&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			if title.namespace == 0 or stringArgs then --only in mainspace or if manual overrides exist&lt;br /&gt;
				local sourceCount = 0&lt;br /&gt;
				for _, params in pairs( conf.databases ) do&lt;br /&gt;
					params[1] = mw.ustring.lower(params[1])&lt;br /&gt;
					local propId = params[3]&lt;br /&gt;
					--Wikidata fallback if requested&lt;br /&gt;
					if (item and item.claims) and&lt;br /&gt;
					   (type(propId) == &amp;#039;string&amp;#039; or (type(propId) == &amp;#039;number&amp;#039; and propId &amp;gt; 0)) then&lt;br /&gt;
						local wikidataId = getIdFromWikidata( item, &amp;#039;P&amp;#039;..propId )&lt;br /&gt;
						local v = parentArgs[params[1]..f]&lt;br /&gt;
						if wikidataId then&lt;br /&gt;
							if isNilOrEmpty(v) then&lt;br /&gt;
								parentArgs[params[1]..f] = wikidataId&lt;br /&gt;
--							else&lt;br /&gt;
--								if v and v ~= &amp;#039;no&amp;#039; and v ~= wikidataId then&lt;br /&gt;
--									tCats[11] = &amp;#039;[[Categorie:Wikipedia:Taxonbalken with manual taxon IDs differing from Wikidata]]&amp;#039;&lt;br /&gt;
--								elseif v and v == wikidataId then&lt;br /&gt;
--									tCats[10] = &amp;#039;[[Categorie:Wikipedia:Taxonbalken with manual taxon IDs identical to Wikidata]]&amp;#039;&lt;br /&gt;
--								end&lt;br /&gt;
							end&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
					if (item and item.claims) and&lt;br /&gt;
					   ( (type(propId) == &amp;#039;number&amp;#039; and propId &amp;lt; 0)) then&lt;br /&gt;
						local wikidataId = getIdFromWikidata( item, &amp;#039;P&amp;#039;..-propId )&lt;br /&gt;
						--mw.addWarning (&amp;quot;propId=&amp;quot; .. tostring(propId) .. &amp;quot;; wikidata=&amp;quot; .. tostring(wikidataId))&lt;br /&gt;
						local v = parentArgs[params[1]..f]&lt;br /&gt;
						if v == &amp;#039;yes&amp;#039; then&lt;br /&gt;
					    	if wikidataId then&lt;br /&gt;
								parentArgs[params[1]..f] = wikidataId&lt;br /&gt;
							else&lt;br /&gt;
								parentArgs[params[1]..f] = nil  -- don&amp;#039;t want to use &amp;#039;yes&amp;#039; as id&lt;br /&gt;
							end&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
					local val = parentArgs[params[1]..f]&lt;br /&gt;
					if val and val ~= &amp;#039;&amp;#039; and mw.ustring.lower(val) ~= &amp;#039;no&amp;#039; then&lt;br /&gt;
						if type(propId) == &amp;#039;number&amp;#039; then&lt;br /&gt;
							if propId &amp;lt; 0 then propId = -propId end --allow link&lt;br /&gt;
							if propId &amp;gt; 0 then --link&lt;br /&gt;
								table.insert( elements, createRow( params[1], params[2]..&amp;#039;:&amp;#039;, val, getLink( propId, params[1], val ).text, true ) )&lt;br /&gt;
							else --propId == 0; no link&lt;br /&gt;
								table.insert( elements, createRow( params[1], params[2]..&amp;#039;:&amp;#039;, val, val, true ) )&lt;br /&gt;
							end&lt;br /&gt;
						else&lt;br /&gt;
							table.insert( elements, createRow( params[1], params[2]..&amp;#039;:&amp;#039;, val, getLink( propId, params[1], val ).text, true ) )&lt;br /&gt;
						end&lt;br /&gt;
						if params[1] ~= &amp;#039;wikidata&amp;#039; and params[1] ~= &amp;#039;wikispecies&amp;#039; then&lt;br /&gt;
							sourceCount = sourceCount + 1&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
				end --for&lt;br /&gt;
				&lt;br /&gt;
				--if     sourceCount &amp;gt;= 45 then tCats[26] = &amp;#039;[[Categorie:Wikipedia:Taxonbalken with 45+ taxon IDs]]&amp;#039;&lt;br /&gt;
				--elseif sourceCount &amp;gt;= 40 then tCats[25] = &amp;#039;[[Categorie:Wikipedia:Taxonbalken with 40–44 taxon IDs]]&amp;#039; --endashes&lt;br /&gt;
				--elseif sourceCount &amp;gt;= 35 then tCats[24] = &amp;#039;[[Categorie:Wikipedia:Taxonbalken with 35–39 taxon IDs]]&amp;#039;&lt;br /&gt;
				--elseif sourceCount &amp;gt;= 30 then tCats[23] = &amp;#039;[[Categorie:Wikipedia:Taxonbalken with 30–34 taxon IDs]]&amp;#039;&lt;br /&gt;
				--elseif sourceCount &amp;gt;= 25 then tCats[22] = &amp;#039;[[Categorie:Wikipedia:Taxonbalken with 25–29 taxon IDs]]&amp;#039;&lt;br /&gt;
				--elseif sourceCount &amp;gt;= 20 then tCats[21] = &amp;#039;[[Categorie:Wikipedia:Taxonbalken with 20–24 taxon IDs]]&amp;#039;&lt;br /&gt;
				--end&lt;br /&gt;
				&lt;br /&gt;
				--Generate navbox title&lt;br /&gt;
				if sourceCount &amp;gt; 0 then&lt;br /&gt;
					rowCount = rowCount + 2&lt;br /&gt;
					if firstRow == 0 then firstRow = f end&lt;br /&gt;
					--set title from wikidata if it doesn&amp;#039;t exist&lt;br /&gt;
					if isNilOrEmpty( parentArgs[&amp;#039;titel&amp;#039;..f] ) then&lt;br /&gt;
						parentArgs[&amp;#039;geenTitel&amp;#039;..f] = true&lt;br /&gt;
						parentArgs[&amp;#039;titel&amp;#039;..f] = title.text&lt;br /&gt;
					end&lt;br /&gt;
					--if it exists now, set row heading to title&lt;br /&gt;
					if not isNilOrEmpty( parentArgs[&amp;#039;titel&amp;#039;..f] ) then&lt;br /&gt;
						navboxParams[&amp;#039;group&amp;#039;..f] = TaxonItalics.italicizeTaxonName(parentArgs[&amp;#039;titel&amp;#039;..f], false)&lt;br /&gt;
					else&lt;br /&gt;
						navboxParams[&amp;#039;group&amp;#039;..f] = &amp;#039;&amp;#039;&lt;br /&gt;
					end&lt;br /&gt;
					navboxParams[&amp;#039;list&amp;#039;..f] = table.concat( elements )&lt;br /&gt;
				elseif currentEntityId and (currentEntityId == parentArgs[&amp;#039;van&amp;#039;..f] or fromTitleCount == 1) then&lt;br /&gt;
					tCats[19] = &amp;#039;[[Categorie:Wikipedia:Taxonbalken zonder primaire Wikidata-taxonidentificatiecodes]]&amp;#039;&lt;br /&gt;
				--else&lt;br /&gt;
				--	tCats[20] = &amp;#039;[[Categorie:Wikipedia:Taxonbalken zonder secondaire Wikidata-taxonidentificatiecodes]]&amp;#039;&lt;br /&gt;
				end&lt;br /&gt;
				&lt;br /&gt;
				--Categorize&lt;br /&gt;
				if tCats[1] ~= &amp;#039;&amp;#039; then&lt;br /&gt;
					tCats[2] = &amp;#039;&amp;#039; --cannot be &amp;quot;desynced&amp;quot; if no &amp;#039;van&amp;#039; params&lt;br /&gt;
				end&lt;br /&gt;
			end --if title.namespace == 0 or stringArgs&lt;br /&gt;
		end --if title&lt;br /&gt;
	end --for f = 1, fromTitleCount, 1&lt;br /&gt;
	&lt;br /&gt;
	if rowCount &amp;gt; 0 then&lt;br /&gt;
		local Navbox = require(&amp;#039;Module:Navbox2&amp;#039;)&lt;br /&gt;
		if rowCount &amp;gt; 1 then&lt;br /&gt;
			--remove duplicates and don&amp;#039;t bother moving page title to top&lt;br /&gt;
			local rowIDs = {}&lt;br /&gt;
			for f = 1,fromTitleCount,1&lt;br /&gt;
			do&lt;br /&gt;
				if not isNilOrEmpty( parentArgs[&amp;#039;titel&amp;#039;..f] ) then&lt;br /&gt;
					if rowIDs[parentArgs[&amp;#039;wikidata&amp;#039;..f]] then --remove duplicate&lt;br /&gt;
						navboxParams[&amp;#039;group&amp;#039;..f] = nil&lt;br /&gt;
						navboxParams[&amp;#039;list&amp;#039;..f] = nil&lt;br /&gt;
					else&lt;br /&gt;
						rowIDs[parentArgs[&amp;#039;wikidata&amp;#039;..f]] = true&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
--			if parentArgs[&amp;#039;titel&amp;#039;..2] and parentArgs[&amp;#039;titel&amp;#039;..2] == currentTitle.text then&lt;br /&gt;
--				if currentItem and parentArgs[&amp;#039;van&amp;#039;..2] == currentItem[&amp;#039;id&amp;#039;] then&lt;br /&gt;
--					tCats[8] = &amp;#039;[[Categorie:Wikipedia:Taxonbalken with from2 matching article title &amp;amp; QID]]&amp;#039;&lt;br /&gt;
--				else&lt;br /&gt;
--					tCats[7] = &amp;#039;[[Categorie:Wikipedia:Taxonbalken with from2 matching article title]]&amp;#039;&lt;br /&gt;
--				end&lt;br /&gt;
--			end&lt;br /&gt;
			--adjust navbox for number of rows&lt;br /&gt;
			navboxParams[&amp;#039;title&amp;#039;] = &amp;#039;[[Help:Taxonidentificatiecodes|Taxonidentificatiecodes]]&amp;#039;&lt;br /&gt;
			if rowCount &amp;gt;= 4 then&lt;br /&gt;
				navboxParams[&amp;#039;navbar&amp;#039;] = &amp;#039;plain&amp;#039;&lt;br /&gt;
			else&lt;br /&gt;
				navboxParams[&amp;#039;state&amp;#039;] = &amp;#039;off&amp;#039;&lt;br /&gt;
				navboxParams[&amp;#039;navbar&amp;#039;] = &amp;#039;off&amp;#039;&lt;br /&gt;
			end&lt;br /&gt;
		elseif parentArgs[&amp;#039;noTitle&amp;#039;..firstRow] then&lt;br /&gt;
			navboxParams[&amp;#039;group&amp;#039;..firstRow] = &amp;#039;[[Help:Taxonidentificatiecodes|Taxonidentificatiecodes]]&amp;#039;&lt;br /&gt;
		else&lt;br /&gt;
			navboxParams[&amp;#039;group&amp;#039;..firstRow] = &amp;#039;[[Help:Taxonidentificatiecodes|Taxonidentificatiecodes]]&amp;lt;br /&amp;gt;&amp;#039;..navboxParams[&amp;#039;group&amp;#039;..firstRow]&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		--return navbox&lt;br /&gt;
		outString = Navbox._navbox(navboxParams)&lt;br /&gt;
	end --if rowCount &amp;gt; 0&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
	--Add categories&lt;br /&gt;
	if string.sub(currentTitle.subpageText,1,9) == &amp;#039;testcases&amp;#039; then parentArgs[&amp;#039;demo&amp;#039;] = true end&lt;br /&gt;
	if not isNilOrEmpty( parentArgs[&amp;#039;demo&amp;#039;] ) then&lt;br /&gt;
		outString = outString..mw.text.nowiki(table.concat(tCats))..&amp;#039;&amp;lt;br /&amp;gt;&amp;#039;&lt;br /&gt;
	elseif currentTitle.namespace == 0 then&lt;br /&gt;
		outString = outString..table.concat(tCats)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return outString..errors&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Colani</name></author>
	</entry>
</feed>