Loading
  • 21 Aug, 2019

  • By, Wikipedia

Module:Wd

This module is intended to fetch data from Wikidata with or without a link to the connected Wikipedia article and with many other features.

Usage

The general structure of a call to this module is as follows. Note that the basic structure consists of positional commands, flags and arguments, which all have a fixed position.

{{#invoke:wd|command1|flag1a|flag1b|flag1c|command2|flag2a|flag2b|flag2c|flag0a|flag0b|flag0c|arg1|arg2|arg3}}

Use different commands to get different kinds of values from Wikidata. At least one command must be given and multiple commands can be combined into one call as shown above (in any order, more than two is also possible), but this only applies to commands from the claim class; calls containing a command from the general class cannot contain any other command. Each command can be followed by any number of command flags, which are optional and can be used to tweak the output generated by that command.

The commands and their flags may be followed by any number of configuration flags, which are also optional and affect the selection of data and the module's behaviour in general. The call is closed with the positional arguments, which may be required depending on the given command(s). Some named arguments (i.e. name-value pairs) also exist, as well as a set of named flags for advanced usage that can be used to change the way the fetched values are merged together into the output.

This module was designed to provide the basic needs for fetching data from Wikidata, but a lot can be achieved through different combinations of calls. For convenience, such combinations could be wrapped into new templates that serve a specific need. See also the section on common use cases below for some examples of useful "building blocks". Likewise, the functionality of this module can be extended by creating wrapper templates that use the main command provided by this module (just like {{WikidataOI}} does).

Common use cases

Below follows a list of common use cases. In the future, shortcut commands may be implemented that are equivalent to these calls for convenience.

Call Use case
{{#invoke:wd|label|raw}} Returns the Q-identifier of the Wikidata item connected to the current page (e.g. "Q55").
{{#if:{{#invoke:wd|label|raw}}|...}} Performs a check to determine if the current page has a Wikidata item.

Note that this statement relies on a returned value that is either empty or non-empty and that the raw flag is important to include. Without this flag, an existing item's regular label would be returned which could be empty, giving an undesired result. If the flag is given on the other hand, then a non-empty Q-identifier is always returned if an item exists and an empty value if an item does not exist.

Commands

The commands (command1, command2, ...) determine what kind of values are returned. One call can only contain commands from a single class.

Claim class

The claim class commands can be combined, meaning that multiple commands of different types from this class can be given at one time (see above for usage).

Combine multiple commands into one call to this module, instead of making multiple calls to this module with one command each, to be sure that all the returned pieces of information belong to each other (see also the examples below).

Type Command Returns Basic usage Description
I property first match {{#invoke:wd|property|P1}} Returns the requested property – or list of properties – from the current item-entity or from a given entity.

This command can be given only once in one call.

properties all matches {{#invoke:wd|properties|P1}}
II qualifier first match {{#invoke:wd|qualifier|P1|P2}} Returns the requested qualifier – or list of qualifiers – from the given property of the current item-entity or of a given entity.

Unlike the other claim class commands, this command can be given multiple times to retrieve different qualifiers in one call.

qualifiers all matches {{#invoke:wd|qualifiers|P1|P2}}
III reference first match {{#invoke:wd|reference|P1}} Returns a reference – or list of references – from the given property of the current item-entity or of a given entity.

This command can be given only once in one call.

references all matches {{#invoke:wd|references|P1}}
  1. ^ Returns only a single value instead of multiple (if multiple claims or statements match). The returned value is the first match found from the best-ranked claims.
  2. ^ Returns only a single value instead of multiple for each matching claim. To get at most one value in total in case the property command is not also used, additionally use the single configuration flag.
  3. ^ See the section on references for details.

General class

The general class commands cannot be combined.

Type Command Returns Basic usage Description
I label {{#invoke:wd|label}} Returns the label of the current item-entity or of a given entity if present.
II title {{#invoke:wd|title}} Returns the title of the page connected to the current item-entity or to a given item-entity if such page exists.
III description {{#invoke:wd|description}} Returns the description of the current item-entity or of a given entity if present.
IV alias first match {{#invoke:wd|alias}} Returns an alias – or list of aliases – of the current item-entity or of a given entity if present.
aliases all matches {{#invoke:wd|aliases}}
V badge first match {{#invoke:wd|badge}} Returns a badge – or list of badges – for the page connected to the current item-entity or to a given item-entity if such page exists.
badges all matches {{#invoke:wd|badges}}
  1. ^ Returns only a single value instead of multiple (if multiple values are present).

Flags

The following (optional) flags are available which can be used to alter this module's behaviour. They must be given after the (first) command and before the positional arguments. For convenience, empty flags (i.e. ||) are allowed and will simply be ignored.

Command flags

These flags (flag1*, flag2*, ...) apply to the command that precedes them directly.

Flag Description
raw Returns the raw value if applicable.

If this flag is used with item or property datatypes, then this will return the Q-identifier or P-identifier instead of the regular label.

For quantity datatypes, this flag will strip off any units of measurement, unless the unit flag is also given in which case the raw unit of measurement (its Q-identifier) will be returned.

If this flag is used with time datatypes, then the returned date will be in the format of yyyy-mm-dd (e.g. 1731-02-11), or yyyy-mm, or yyyy depending on the date's precision. Dates in the Julian calendar stored with a precision of days through millenniums will have /Julian attached to the output (e.g. 1731-02-11/Julian, which may be split off using the {{#titleparts}} parser function).

If it is used with globe coordinate datatypes, then it replaces the various symbols with forward slashes in the returned value (e.g. 52/5/3/N/4/19/3/E, which may be split into parts using the {{#titleparts}} parser function).

linked Creates a link to the Wikipedia article that is connected to the property or qualifier if it exists. Also links units of measurement that may be appended to values.

If this parameter is omitted, then the plain property or qualifier value will be returned.

short [EXPENSIVE] Returns the short name (P1813) of any entity returned if they have one attached. If that is not the case, then the default behaviour of returning the entity's label will occur.
multilanguage Returns monolingual text values in any available language, not just the current wiki's language.
unit Returns only the unit of measurement for quantity datatypes.

Configuration flags

These flags (flag0*) are general configuration flags and can be given anywhere after the first command (but before the positional arguments).

Flag Description Command class
Combination of: preferred Sets a rank constraint for the selected claim(s).

The first three set the ranks for which claim(s) will be selected. They can optionally be followed by a + or a -, e.g. normal+ or preferred-, where the first selects claims with a 'normal' rank or higher and the second selects claims with a 'preferred' rank or lower. To get claims of all ranks, use preferred- or deprecated+.

If the best flag is given additionally, then only the claims that have the highest rank amongst the selected claims will be returned.

The default is normal+|best (so by default claims with a 'deprecated' rank are never returned).

Output is always sorted from highest rank to lowest (regardless of any of these flags being set).

claim
normal
deprecated
best
Combination of: future Sets a time constraint for the selected claim(s). Uses the claims' qualifiers of start time (P580) and end time (P582) to determine if the claim is valid for the selected time period(s).

The default is future|current|former (so by default claims that are valid for any time period are returned), except when date= is given (see below) in which case the default is current.

claim
current
former
mdy Returns date values in month-day-year order instead of day-month-year order. claim
single Returns only a single claim instead of multiple (if multiple claims match). Has no effect if the property/properties command is given, in which case this flag would be redundant. claim
sourced Only returns claims that have at least one non-empty reference. (References having only ignored parameters are considered empty.) claim
One of: edit Adds a clickable icon after the output that may be used by readers to edit the returned claim on Wikidata.

If edit@end is used, then the icon will be placed at the end of the line for neat alignment in infoboxes.

claim, general
edit@end

Arguments

The arguments determine the sources from which all the returned values are fetched.

Positional arguments

The following table shows the available positional arguments (arg*) in their fixed order. For each command, the applicable set of arguments is marked. If multiple commands are given, then the applicable set is the union of the individual sets. For instance, if the commands properties and qualifiers have been given, then at least both the arguments property_id and qualifier_id should be given as well.

More than one qualifier/qualifiers command can be given. The order in which these commands with their flags are given matches the order in which the respective qualifier_id arguments are given.

(required) (optional) (optional) (required) (optional) (required) (required)
{{#invoke:wd commands flags entity_id property_id raw_value qualifier_id qualifier_id }}
label, title,
description,
alias/aliases,
badge/badges
property/properties
reference/references
qualifier/qualifiers
qualifier/qualifiers (optional 2, 3, etc.)

Below follows a description of all positional arguments.

Argument Description
entity_id

(optional)

[EXPENSIVE] Q-identifier of the item-entity to be accessed (e.g. Q55), P-identifier (or an available alias) of the property-entity to be accessed preceded by the Property: prefix (e.g. Property:P38), or page title of the Wikipedia article whose connected item-entity is to be accessed preceded by :, a prefixed colon (e.g. :Netherlands).

In case of the general class commands, the Property: prefix may be omitted for P-identifiers (e.g. P38).

If this parameter is omitted, then the item-entity connected to the current page will be used (except when eid= or page= is given, see below). If this parameter is given, but empty (i.e. ||), then due to its position it will be interpreted as an empty flag and thus be ignored, giving the same result as if it were omitted. See also the named arguments eid= and page= below that can be used to give an entity-ID or page title too, but without the item-entity connected to the current page being used as a default.

property_id P-identifier (or an available alias) of the property within the entity to be accessed, without the Property: prefix (e.g. P35).
raw_value

(optional)

Either the Q-identifier equal to the property value (e.g. Q29574) or a literal value (i.e. string or quantity etc., no entity label) equal to the raw property value of the particular claim to be accessed.

Dates as literal values must be formatted yyyy-mm-dd (e.g. 1731-02-11) for dates with a precision of days, yyyy-mm (e.g. 1731-02) for dates with a precision of months, and yyyy (e.g. 1731) for dates of lesser precision. Dates BCE require a minus sign in front of the year (e.g. -2950-01-31). Dates stored in the Julian calendar must have /Julian attached to the end (e.g. 1731-02-11/Julian). Decades like the 2010s must be given as 2010 (but the 2010s BCE as -2019), centuries like the 20th century as 1901 (but the 20th century BCE as -2000), and millenniums like the 3rd millennium as 2001 (but the 3rd millennium BCE as -3000).

Globe coordinates as literal values must be formatted with forward slashes (i.e. /) between the parts and no symbols (e.g. 52/5/3/N/4/19/3/E) without any spaces or leading zeros.

The special type 'no value' can be given by entering the empty string (i.e. ||) and the special type 'unknown value' can be given by entering a single underscore (i.e. |_|). To get a literal underscore, escape it by placing a backslash \ directly in front of it (i.e. \_); the same holds for a literal backslash (i.e. \\).

To get a literal vertical bar |, use {{!}} or |.

If this parameter is omitted, then all claims (matching any other constraints) within the property will be accessed.

qualifier_id P-identifier (or an available alias) of the qualifier within the entity to be accessed, without the Property: prefix (e.g. P580).


Named arguments

Below follows a description of all named arguments, which are name-value pairs (i.e. |name=value). These are all optional and can be given anywhere after the first command.

Argument Description Command class
eid= [EXPENSIVE] This argument can be used to give the Q-identifier (e.g. |eid=Q55) or P-identifier (or an available alias) of the entity to be accessed. It offers the same functionality as the positional argument entity_id, with one difference: if the argument is given but its value is left empty (i.e. |eid=), then no entity is accessed at all instead of the item-entity connected to the current page. This is useful in some cases where a variable entity-ID is expected, but where the item-entity connected to the current page should not be accessed as the default.

Also, the Property: prefix may be omitted for P-identifiers (e.g. |eid=P38) for all commands.

This argument only has effect if the positional argument entity_id is omitted.

claim, general
page= [EXPENSIVE] This argument can be used to give the page title (e.g. |page=Netherlands) of the Wikipedia article whose connected item-entity is to be accessed. It behaves similar to the named argument eid= and can be used instead of the positional argument entity_id (note that no prefixed colon, :, is required). If the argument is given but its value is left empty (i.e. |page=), then no entity is accessed at all instead of the item-entity connected to the current page.

This argument only has effect if the positional argument entity_id and the named argument eid= are omitted.

claim, general
date= This argument can be used to set a particular date (e.g. |date=1731-02-11) relative to which claim matching using the future, current and former flags is done, instead of relative to today. It overrides the default of these flags to current so that by default only claims that were valid at the given date are returned (based on the claims' qualifiers of start time (P580) and end time (P582)).

The date value must be formatted yyyy-mm-dd (e.g. 1731-02-11), yyyy-mm (e.g. 1731-02) or yyyy (e.g. 1731).

claim
<qualifier>= The <qualifier> is a placeholder for a set of arguments that determine which claims should be accessed based on qualifier value, analogous to the pair of positional arguments property_id and raw_value (that determine access based on property value).

As such, <qualifier> is any qualifier's P-identifier (or an available alias) without the Property: prefix (e.g. P518). Its value is either the Q-identifier equal to one of the qualifier values (e.g. Q27561) or a literal value (i.e. string or quantity etc., no entity label) equal to one of the raw qualifier values of the particular claim to be accessed. The value format is the same as for the positional argument raw_value. The special type 'no value' given by the empty string also matches the total absence within the claim of the particular qualifier.

Example: |P518=Q27561

Multiple arguments of this type can be given to match multiple qualifier values simultaneously for each claim.

claim

Property aliases

Property aliases are other names for P-identifiers that can be used instead. The following property aliases (which are case-sensitive) are currently available:

Alias translates
P-identifier
coord P625
image P18
author P50
authorNameString P2093
publisher P123
importedFrom P143
wikimediaImportURL P4656
statedIn P248
pages P304
language P407
hasPart P527
publicationDate P577
startTime P580
endTime P582
chapter P792
retrieved P813
referenceURL P854
sectionVerseOrParagraph P958
archiveURL P1065
title P1476
formatterURL P1630
quote P1683
shortName P1813
definingFormula P2534
archiveDate P2960
inferredFrom P3452
typeOfReference P3865
column P3903
subjectNamedAs P1810
wikidataProperty P1687