Template:Show data

This template contains various independently retrievable data items about  in the form of parameter values of a variable template of choice, in a standardized fashion. It is a member of a family of templates, those with names starting with "Data" in Category:Data templates. The system used is similar to that of WikiProject Flag Template.

Parameters
Throughout the family of templates, fixed names are used for the parameters. (The parameter names are kept short to reduce counts for the post expand include size and the template argument size in cases where these are applicable.) However, not necessarily all parameters have been given a value: some parameters may not be applicable, while for some other parameters the value may just have not been specified yet. The table shows all parameters, and for each the value, if specified.

{{#if: {{{related1|}}} |

Related templates
Please see the following related  templates:
 * Template:Data  undefined }}

Derived data
{{if||{{{popbase|}}}|The population is {{ppm|{{sigdig|({{{popbase}}}{{#if:{{{popinc|}}}|+{{{popinc}}}*{{age in days|{{{popbaseyear}}}|{{{popbasemonth}}}|{{{popbaseday}}}}}}})/{{worldpop}}|3}}}} of that of the world.{{if|eq|{{{type}}}|country| It is {{#expr:({{{popbase}}}{{#if:{{{popinc|}}}|+{{{popinc}}}*{{age in days|{{{popbaseyear}}}|{{{popbasemonth}}}|{{{popbaseday}}}}}}})/{{data {{{continent}}}|{{#if:{{data {{{continent}}}|pst2|popinc}}|{{#ifeq:{{padleft:|1|{{data {{{continent}}}|pst2|popinc}}}}|{|pst2|poptoday}}|pst2}}|popbase}}*100round1}}% of that of {{{continent}}}.}}{{if|eq|{{{type}}}|province| It is {{#expr:({{{popbase}}}{{#if:{{{popinc|}}}|+{{{popinc}}}*{{age in days|{{{popbaseyear}}}|{{{popbasemonth}}}|{{{popbaseday}}}}}}})/{{#iferror:{{data {{{country}}}|poptoday}}|{{data {{{country}}}|pst2|popbase}}}}*100round1}}% of that of {{{country}}}.}}{{if|eq|{{{type}}}|municipality| It is {{#expr:{{{popbase}}}/{{data {{{province}}}|pst2|popbase}}*100round1}}% of that of {{{province}}}.}}

}}{{if||{{{total area|}}}|The total area is {{convert|{{{total area}}}|km2}}. It is {{ppm|{{sigdig|({{{total area}}}/{{data world|pst2|land area}})|3}}}} of the land area of the world.{{if|eq|{{{type}}}|country| It is {{#expr:({{{total area}}})/{{data {{{continent}}}|pst2|total area}}*100round1}}% of that of {{{continent}}}.}}{{if|eq|{{{type}}}|province| It is {{#expr:({{{total area}}})/{{data {{{country}}}|pst2|total area}}*100round1}}% of that of {{{country}}}.}}{{if|eq|{{{type}}}|municipality| It is {{#expr:{{{total area}}}/{{data {{{province}}}|pst2|total area}}*100round1}}% of that of {{{province}}}.}}

}}{{if||{{{land area|}}}|The water area is {{#expr:(1-{{{land area}}}/{{{total area}}})*100round1}}% of the total area.

}}{{if||{{{popbase|}}}|{{if||{{{land area|}}}|The population density is {{convert|{{#expr:({{{popbase}}}{{#if:{{{popinc|}}}|+{{{popinc}}}*{{age in days|{{{popbaseyear}}}|{{{popbasemonth}}}|{{{popbaseday}}}}}}})/{{{land area}}}round1}}|/km2|1}} land area.


 * {{if||{{{total area|}}}|The population density is {{convert|{{#expr:({{{popbase}}}{{#if:{{{popinc|}}}|+{{{popinc}}}*{{age in days|{{{popbaseyear}}}|{{{popbasemonth}}}|{{{popbaseday}}}}}}})/{{{total area}}}round1}}|/km2|1}} total area.

}}}}}}

Retrieval of data items
, using parameter selection template Template:Pst2, gives the parameter land area, etc.

For retrieval of more data items it is more efficient to prepare a template for that, to be used as follows:

template name

so that this data template needs to be called only once. The default template is Template:Show data, producing this page.

The four parameters are optional, they are passed on to the prepared template as parameters 2-5.

Special templates:
 * Template:Linkd - link to article
 * Template:Poptoday - used above
 * Template:Popdens - for use on the page List of sovereign states and dependent territories by population density
 * Template:Poptoday 1 - for use on the page List of countries by population
 * Template:Popareadens - for use on the page List of countries by population

A parameter being undefined or empty typically means the same, see below. gives the empty string and the text " ", respectively. Therefore an application checking the parameter has to check both. Checking whether a result is equal to e.g. the text " " cannot be done directly with #ifeq in a template which itself has also a parameter with that name, because if that is defined, there would be a comparison with the value instead of the text itself. Instead, it can be checked whether the first character of the result is " ", e.g.:.

Creating new data templates
Template:Data/preload can be used to create new data templates. On the page of the data template of a province, if there is no data template yet for the country, a link appears to create that, preloading this template. Otherwise the wikitext can be copied to the new data template. For parameters which are not applicable, such as country for a country, the parameter definition "country=" can be deleted. For parameters to be filled in later the parameter definition like "popinc=" (specifying the empty string as value) can be left in the wikitext to be filled in later. Do not forget parameter 1.

Efficiency
In this template system each template contains various properties of a single entity, as opposed to the other common system, where a template contains one property (e.g. population or area) of many entities. Although that other system can be convenient if updates of a property for all these entities become available together, in the case of large-scale use of data on one page that other system can be problematic due to its inefficiency. This is because of the following:
 * There are often more entities than properties, and page counts (or in the case of, average page counts) are proportional to the number of data items in the data template (if they are stored in a linear way, not in a tree, and not stored as unnamed parameters).
 * In the case of large-scale use of data on one page there are usually one or more tables, where an entity forms a row and a property a column, because there are often more entities than properties, and because this way the sorting feature allows sorting entities based on a property. In this template system this allows producing a row with only one call of the data template, making the count not grow faster than proportional to the average number of data items stored per data template, times the number of entities in the table.

The include part of the data template of an entity does not contain a long list of its sub-entities or their properties, because that would make this method inefficient too.

Until here the documentation is automatically generated by Template:Show data.