<?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%2Fconfdoc</id>
	<title>Module:Taxonbalk/confdoc - 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%2Fconfdoc"/>
	<link rel="alternate" type="text/html" href="https://wiki-raamsdonk.nl/index.php?title=Module:Taxonbalk/confdoc&amp;action=history"/>
	<updated>2026-04-09T10:19:21Z</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/confdoc&amp;diff=76304&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/confdoc&amp;diff=76304&amp;oldid=prev"/>
		<updated>2024-03-23T16:39:46Z</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;quot;Module:Taxonbalk/conf&amp;quot; ) -- configuration module&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
	&lt;br /&gt;
function p.confdoc( frame )&lt;br /&gt;
	local wikitable = mw.html.create(&amp;#039;table&amp;#039;)&lt;br /&gt;
	wikitable:addClass(&amp;#039;wikitable sortable&amp;#039;)&lt;br /&gt;
		:tag(&amp;#039;caption&amp;#039;)&lt;br /&gt;
			:wikitext(&amp;#039;Taxon identifiers by parameter name&amp;#039;)&lt;br /&gt;
			:done()&lt;br /&gt;
		:tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
			:tag(&amp;#039;th&amp;#039;)&lt;br /&gt;
				:wikitext(&amp;#039;Parameter&amp;#039;)&lt;br /&gt;
			:tag(&amp;#039;th&amp;#039;)&lt;br /&gt;
				:attr(&amp;#039;data-sort-type&amp;#039;, &amp;#039;number&amp;#039;)&lt;br /&gt;
				:css(&amp;#039;white-space&amp;#039;, &amp;#039;nowrap&amp;#039;)&lt;br /&gt;
				:wikitext(&amp;#039;Wikidata ID&amp;#039;)&lt;br /&gt;
			:tag(&amp;#039;th&amp;#039;)&lt;br /&gt;
				:wikitext(&amp;#039;Authority&amp;#039;)&lt;br /&gt;
			:tag(&amp;#039;th&amp;#039;)&lt;br /&gt;
				:wikitext(&amp;#039;Description&amp;#039;)&lt;br /&gt;
				&lt;br /&gt;
				&lt;br /&gt;
				&lt;br /&gt;
				&lt;br /&gt;
	local format = string.format&lt;br /&gt;
	&lt;br /&gt;
	for _, db in pairs( conf.databases ) do&lt;br /&gt;
		local prop = db[3]&lt;br /&gt;
		if type(prop) == &amp;#039;number&amp;#039; and prop &amp;gt; 0 then&lt;br /&gt;
			local param = mw.ustring.lower(db[1])&lt;br /&gt;
			local row = mw.html.create(&amp;#039;tr&amp;#039;)&lt;br /&gt;
			row&lt;br /&gt;
				:tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
					:wikitext(param)&lt;br /&gt;
				:tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
					:attr(&amp;#039;data-sort-value&amp;#039;, prop)&lt;br /&gt;
					:wikitext(format(&amp;#039;[[d:Property:P%d|P%d]]&amp;#039;, prop, prop))&lt;br /&gt;
				-- {{#statements:P1629|from=P{{{1|}}}}}&lt;br /&gt;
				:tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
					:wikitext(frame:callParserFunction{&lt;br /&gt;
						name = &amp;#039;#statements:P1629&amp;#039;,&lt;br /&gt;
						args = { from = &amp;#039;P&amp;#039; .. prop }&lt;br /&gt;
					})&lt;br /&gt;
				:tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
					:wikitext(mw.wikibase.getDescription(&amp;#039;P&amp;#039; .. prop))&lt;br /&gt;
			wikitable:node(row)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return wikitable&lt;br /&gt;
end&lt;br /&gt;
--[[ p.wikidataInfo( frame )&lt;br /&gt;
    -function to show formatURL and id for taxonomic databases&lt;br /&gt;
]]&lt;br /&gt;
local COUNTER_MAX = 390&lt;br /&gt;
local counter = 0    --expensive parser function counter&lt;br /&gt;
&lt;br /&gt;
function p.wikidataInfo( frame )&lt;br /&gt;
	counter = frame.args[&amp;#039;counter&amp;#039;]  or COUNTER_MAX  -- prevent too many expensive calls&lt;br /&gt;
	local start = frame.args[&amp;#039;start&amp;#039;] or &amp;quot;a&amp;quot;&lt;br /&gt;
	local finish = frame.args[&amp;#039;finish&amp;#039;] or &amp;quot;zzz&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	local wikitable = &amp;#039;{| class=&amp;quot;wikitable sortable&amp;quot;\n&amp;#039; .. &lt;br /&gt;
					  &amp;#039;|-\n&amp;#039; .. &lt;br /&gt;
					  &amp;#039;! Parameter !! Wikidata ID !! Database !! Examples !! datatype !! formatterURL (or alternative) and examples&amp;#039;&lt;br /&gt;
	&lt;br /&gt;
	for _, db in pairs( conf.databases ) do&lt;br /&gt;
		local param = mw.ustring.lower(db[1])&lt;br /&gt;
		local link = db[2]&lt;br /&gt;
		local prop = db[3]&lt;br /&gt;
		local id = &amp;#039;id&amp;#039;&lt;br /&gt;
		local url = &amp;#039;url&amp;#039;&lt;br /&gt;
		local datatype = &amp;quot;&amp;quot;&lt;br /&gt;
		local examples = &amp;quot;&amp;quot;&lt;br /&gt;
		local links = &amp;quot;&amp;quot;&lt;br /&gt;
		local formatterURL = &amp;quot;&amp;quot;&lt;br /&gt;
		&lt;br /&gt;
		if type(prop) == &amp;#039;number&amp;#039; and prop &amp;gt; 0 and param &amp;gt; start and param &amp;lt; finish then&lt;br /&gt;
			local item = mw.wikibase.getEntity(&amp;#039;P&amp;#039;..prop)  --(&amp;#039;P5354&amp;#039;)&lt;br /&gt;
			counter = counter - 1&lt;br /&gt;
			&lt;br /&gt;
			if item and item ~= &amp;quot;&amp;quot; then&lt;br /&gt;
				datatype = item.datatype&lt;br /&gt;
				local statements = item:getBestStatements(&amp;#039;P1630&amp;#039;)[1] &lt;br /&gt;
				if statements and statements.mainsnak and statements.mainsnak.datavalue and statements.mainsnak.datavalue.value then&lt;br /&gt;
					formatterURL = statements.mainsnak.datavalue.value&lt;br /&gt;
					url = formatterURL&lt;br /&gt;
				else&lt;br /&gt;
					url = &amp;quot;No formatter URL (P1630).&amp;quot;&lt;br /&gt;
					if datatype == &amp;quot;url&amp;quot; then url = url .. &amp;quot; The id of the external database is the url.&amp;quot; end&lt;br /&gt;
					local subjectItem = item: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;
						counter = counter - 1&lt;br /&gt;
						if officialWebsite then	&lt;br /&gt;
							url = url .. &amp;#039;&amp;lt;br/&amp;gt;website: &amp;#039; ..  officialWebsite.mainsnak.datavalue.value&lt;br /&gt;
						end&lt;br /&gt;
					else&lt;br /&gt;
						url = url .. &amp;#039; or official website (P856) of wikidata item of this property (P1629)&amp;#039;&lt;br /&gt;
						-- use third-party formatter URL. e.g for  Euring number (P3459) &lt;br /&gt;
						local statements = item:getBestStatements(&amp;#039;P3459&amp;#039;)[1] &lt;br /&gt;
						if statements and statements.mainsnak and statements.mainsnak.datavalue and statements.mainsnak.datavalue.value then&lt;br /&gt;
				   			local thirdPartyURL = statements.mainsnak.datavalue.value&lt;br /&gt;
							url = url ..&amp;#039;&amp;lt;br/&amp;gt;use third party url: &amp;#039; .. thirdPartyURL&lt;br /&gt;
						else&lt;br /&gt;
							url = url .. &amp;#039; or third party formatter url (P3459) &amp;#039;&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
                examples, links =  p.getExamples( item, prop, formatterURL, datatype )&lt;br /&gt;
			end&lt;br /&gt;
&lt;br /&gt;
		&lt;br /&gt;
			wikitable = wikitable .. &amp;#039;\n&amp;#039; .. &amp;#039;|-&amp;#039; &lt;br /&gt;
					    .. &amp;#039;\n|&amp;#039; .. param &lt;br /&gt;
					    .. &amp;#039;\n|&amp;#039; .. &amp;#039;[[:d:Property:P&amp;#039; .. prop .. &amp;#039;|P&amp;#039; .. prop .. &amp;#039;]]&amp;#039; &lt;br /&gt;
					    .. &amp;#039;\n|&amp;#039; .. link&lt;br /&gt;
					    .. &amp;#039;\n|&amp;#039; .. examples&lt;br /&gt;
					    .. &amp;#039;\n|&amp;#039; .. datatype&lt;br /&gt;
					    .. &amp;#039;\n|&amp;#039; .. url  .. &amp;#039;\n{{smalldiv|1=&amp;#039; .. links  .. &amp;#039;}}&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return wikitable .. &amp;#039;\n|}&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.getExamples( propItem , prop, formatterURL, datatype)&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	if counter &amp;lt; 0 then return &amp;quot;count exceeded&amp;quot; end&lt;br /&gt;
	&lt;br /&gt;
	local examples	= &amp;quot;&amp;quot;	&lt;br /&gt;
	local links	= &amp;quot;&amp;quot;	&lt;br /&gt;
	local exampleStatements = propItem:getBestStatements(&amp;#039;P1855&amp;#039;)&lt;br /&gt;
	local nExamples = 0&lt;br /&gt;
	&lt;br /&gt;
	--local statement = statements[1]&lt;br /&gt;
	for _, statement in pairs( exampleStatements ) do&lt;br /&gt;
		&lt;br /&gt;
		if nExamples == 3 then break end -- don&amp;#039;t show more than 3 examples&lt;br /&gt;
			&lt;br /&gt;
		if statement.mainsnak and statement.mainsnak.datavalue and statement.mainsnak.datavalue.value then&lt;br /&gt;
			local examplesValue = statement.mainsnak.datavalue.value&lt;br /&gt;
			if examplesValue and examplesValue.id then&lt;br /&gt;
				local exampleID = examplesValue.id&lt;br /&gt;
				--examples = examples .. &amp;#039;\n*[[:d:&amp;#039; .. exampleID  .. &amp;#039;|&amp;#039; .. exampleID ..&amp;#039;]] &amp;#039;&lt;br /&gt;
				local label = mw.wikibase.getLabel( exampleID )&lt;br /&gt;
				examples = examples .. &amp;#039;\n*[[&amp;#039; .. label .. &amp;#039;]] ([[:d:&amp;#039; .. exampleID  .. &amp;#039;|&amp;#039; .. exampleID ..&amp;#039;]])&amp;#039;&lt;br /&gt;
&lt;br /&gt;
                -- get information form qualifiers&lt;br /&gt;
                if statement.qualifiers then&lt;br /&gt;
                   local qualifiers = statement[&amp;#039;qualifiers&amp;#039;]  &lt;br /&gt;
                   local value = qualifiers[&amp;#039;P&amp;#039;..prop][1] --[&amp;#039;datavalue&amp;#039;][&amp;#039;value&amp;#039;]&lt;br /&gt;
                   --mw.addWarning (mw.wikibase.formatValues( qualifiers ))&lt;br /&gt;
                   --mw.addWarning (mw.wikibase.renderSnaks( qualifiers ))&lt;br /&gt;
                   -- mw.addWarning (mw.wikibase.formatValue( value ))&lt;br /&gt;
                   --mw.addWarning ( mw.wikibase.renderSnak( value ))&lt;br /&gt;
                   local id = mw.wikibase.renderSnak( value )&lt;br /&gt;
                   examples = examples .. &amp;#039;&amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;id=&amp;lt;code&amp;gt;&amp;#039; .. id .. &amp;#039;&amp;lt;/code&amp;gt;&amp;lt;/small&amp;gt;&amp;#039;&lt;br /&gt;
                   local link = formatterURL:gsub(&amp;#039;$1&amp;#039;, id)&lt;br /&gt;
                   if (datatype == &amp;quot;url&amp;quot;) then link = id end&lt;br /&gt;
                   links = links .. &amp;#039;\n*&amp;#039; .. link .. &amp;#039;&amp;#039;&lt;br /&gt;
                end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[==[		    -- this method is expensive as it calls getEntity&lt;br /&gt;
&lt;br /&gt;
		        local item = mw.wikibase.getEntity(exampleID)&lt;br /&gt;
		        counter = counter - 1&lt;br /&gt;
		        nExamples = nExamples + 1&lt;br /&gt;
		        &lt;br /&gt;
		        &lt;br /&gt;
		        if item and item ~= &amp;quot;&amp;quot; then&lt;br /&gt;
					--datatype = item.datatype&lt;br /&gt;
					local statements = item:getBestStatements(&amp;#039;P225&amp;#039;)[1] -- taxon name&lt;br /&gt;
					if statements and statements.mainsnak and statements.mainsnak.datavalue and statements.mainsnak.datavalue.value then&lt;br /&gt;
						local taxon = statements.mainsnak.datavalue.value&lt;br /&gt;
						examples = examples .. &amp;#039; [[&amp;#039; .. taxon .. &amp;#039;]]&amp;#039;&lt;br /&gt;
					end&lt;br /&gt;
					local statements = item:getBestStatements(&amp;#039;P&amp;#039;..prop)[1] -- the databas property&lt;br /&gt;
					if statements and statements.mainsnak and statements.mainsnak.datavalue and statements.mainsnak.datavalue.value then&lt;br /&gt;
						local id = statements.mainsnak.datavalue.value&lt;br /&gt;
						local link = formatterURL:gsub(&amp;#039;$1&amp;#039;, id)&lt;br /&gt;
						if (datatype == &amp;quot;url&amp;quot;) then link = id end&lt;br /&gt;
						examples = examples .. &amp;#039; (&amp;#039; .. id .. &amp;#039;)&amp;#039;  &lt;br /&gt;
						links = links .. &amp;#039;\n*&amp;#039; .. link .. &amp;#039;&amp;#039;&lt;br /&gt;
					end&lt;br /&gt;
		end&lt;br /&gt;
]==]&lt;br /&gt;
		    else&lt;br /&gt;
		    	examples = examples .. &amp;quot;No example&amp;quot;&lt;br /&gt;
		    end&lt;br /&gt;
		else&lt;br /&gt;
			examples = examples .. &amp;quot;No examples statements&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
    return examples, links&lt;br /&gt;
end&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Colani</name></author>
	</entry>
</feed>