Template:Cite Q
This template is used on approximately 42,000 pages and changes may be widely noticed. Test changes in the template's /sandbox or /testcases subpages, or in your own user subpage. Consider discussing changes on the talk page before implementing them. |
From the TfD closure: "Until the matter of transcluding Wikidata on Wikipedia is resolved (most likely with a huge and contentious RFC) usage of this template should be extremely vetted to ensure that all of the transcluded information is accurate." |
This template uses Lua: |
Purpose
This template returns a formatted citation from statements stored on a Wikidata item (referred to by its Q identifier or QID) describing a citable source such as a scholarly article.
For example, Wikidata item Script error: The module returned a nil value. It is supposed to return an export table. (Q15625490) is a scholarly item. To cite this as a source:
You can read about the template in:
- No label or title -- debug: Q104831003, Wikidata Q104831003
Note: While Wikipedia does not regard Wikidata as a reliable source, citations using Cite Q are not citing Wikidata; they cite the individual work stated, using metadata about that work, which is held on Wikidata for convenience.
Usage
A wrapper for {{Citation}}, which calls available values from Wikidata.
An example of an article using this template for all of its references is South Pole Telescope; an example using Harvard style citations is Suffix automaton.
By default, if there are more than eight author names, the template displays three, followed by "et al". This can be changed using |display-authors=
; setting that parameter to all
displays them all. The same applies to multiple editors – see the test-case pages.
Citations of papers which have been retracted (Script error: The module returned a nil value. It is supposed to return an export table. (P5824)) will appear in Category:Cite Q - cites a retracted work.
Citations of papers which have been replaced (Script error: The module returned a nil value. It is supposed to return an export table. (P1366)) will appear in Category:Cite Q - cites a replaced work.
You can also use {{Cite Q bulleted}} if you want to have a bullet returned before the citation (useful for automatic lists)
Parameters
|1=
= Wikidata QID for the article
Additionally, any named parameter used in {{citation}} may be entered and will overwrite the value in Wikidata. Using such parameters, with a value of unset
, will suppress display of data from Wikidata.
Blank
<ref name="">{{Cite Q| XXQIDXX }}</ref>
Reference naming
For ease of use, you may wish to name your references to reflect the cited work, for example:
<ref name="Williams-2010">{{Cite Q|Q15625490}}</ref>
Parameter / entity map
This section lists where each of the template's supported parameters gets its data.
Bibliographic parameters
|at=
= Script error: The module returned a nil value. It is supposed to return an export table. (P958)|authorn=
= Script error: The module returned a nil value. It is supposed to return an export table. (P50); Script error: The module returned a nil value. It is supposed to return an export table. (P2093)|chapter=
= Script error: The module returned a nil value. It is supposed to return an export table. (P792)|edition=
= Script error: The module returned a nil value. It is supposed to return an export table. (P393)|editorn=
= Script error: The module returned a nil value. It is supposed to return an export table. (P98); Script error: The module returned a nil value. It is supposed to return an export table. (P5769)|issue=
= Script error: The module returned a nil value. It is supposed to return an export table. (P433)|journal=
= Script error: The module returned a nil value. It is supposed to return an export table. (P1433)|language=
= Script error: The module returned a nil value. It is supposed to return an export table. (P407)|pages=
= Script error: The module returned a nil value. It is supposed to return an export table. (P304)|place=
= Script error: The module returned a nil value. It is supposed to return an export table. (P1071) (for written-at place)|publication-date=
= Script error: The module returned a nil value. It is supposed to return an export table. (P577) (treated like|date=
unless both are given)|publication-place=
= Script error: The module returned a nil value. It is supposed to return an export table. (P291) (for publication place, treated like|place=
unless both are given)|publisher=
= Script error: The module returned a nil value. It is supposed to return an export table. (P123)|series=
= Script error: The module returned a nil value. It is supposed to return an export table. (P179)|title=
= Script error: The module returned a nil value. It is supposed to return an export table. (P1476) (Wikidata label)|translatorn=
= Script error: The module returned a nil value. It is supposed to return an export table. (P655)|url=
= Script error: The module returned a nil value. It is supposed to return an export table. (P953), Script error: The module returned a nil value. It is supposed to return an export table. (P856), Script error: The module returned a nil value. It is supposed to return an export table. (P2699)|version=
= Script error: The module returned a nil value. It is supposed to return an export table. (P348)|volume=
= Script error: The module returned a nil value. It is supposed to return an export table. (P478)|others=
= Script error: The module returned a nil value. It is supposed to return an export table. (P86), Script error: The module returned a nil value. It is supposed to return an export table. (P110), Script error: The module returned a nil value. It is supposed to return an export table. (P2679), Script error: The module returned a nil value. It is supposed to return an export table. (P371), Script error: The module returned a nil value. It is supposed to return an export table. (P175)
Identifier parameters
|asin=
= Script error: The module returned a nil value. It is supposed to return an export table. (P5749) (add|asin-tld=
for some locales)|arxiv=
= Script error: The module returned a nil value. It is supposed to return an export table. (P818)|bibcode=
= Script error: The module returned a nil value. It is supposed to return an export table. (P819) (add|bibcode-access=
to indicate free)|biorxiv=
= Script error: The module returned a nil value. It is supposed to return an export table. (P3951)|citeseerx=
= Script error: The module returned a nil value. It is supposed to return an export table. (P3784)|doi=
= Script error: The module returned a nil value. It is supposed to return an export table. (P356) (add|doi-access=
to indicate free; add|doi-broken-date=
if deprecated)|hdl=
= Script error: The module returned a nil value. It is supposed to return an export table. (P1184) (add|hdl-access=
to indicate free)|isbn=
= Script error: The module returned a nil value. It is supposed to return an export table. (P212) (falls back to Script error: The module returned a nil value. It is supposed to return an export table. (P957))|ismn=
= Script error: The module returned a nil value. It is supposed to return an export table. (P1208)|issn=
= Script error: The module returned a nil value. It is supposed to return an export table. (P236)|jstor=
= Script error: The module returned a nil value. It is supposed to return an export table. (P888) (add|jstor-access=
to indicate free)|lccn=
= Script error: The module returned a nil value. It is supposed to return an export table. (P1144)|mr=
= Script error: The module returned a nil value. It is supposed to return an export table. (P889)|oclc=
= Script error: The module returned a nil value. It is supposed to return an export table. (P243)|ol=
= Script error: The module returned a nil value. It is supposed to return an export table. (P648) (add|ol-access=
to indicate free)|osti=
= Script error: The module returned a nil value. It is supposed to return an export table. (P3894) (add|osti-access=
to indicate free)|pmc=
= Script error: The module returned a nil value. It is supposed to return an export table. (P932) (add|pmc-embargo-date=
if embargoed)|pmid=
= Script error: The module returned a nil value. It is supposed to return an export table. (P698)|rfc=
= Script error: The module returned a nil value. It is supposed to return an export table. (P892)|ssrn=
= Script error: The module returned a nil value. It is supposed to return an export table. (P893)|s2cid=
= Script error: The module returned a nil value. It is supposed to return an export table. (P8299) (add|s2cid-access=
to indicate free)|zbl=
= Script error: The module returned a nil value. It is supposed to return an export table. (P894)
Examples
{{Cite Q|Q15625490}}
- No label or title -- debug: Q15625490, Wikidata Q15625490
{{Cite Q|Q15625490|page=42}}
- No label or title -- debug: Q15625490, p. 42, Wikidata Q15625490
{{Cite Q|Q15625490|access-date=18 May 2017}}
- No label or title -- debug: Q15625490, Wikidata Q15625490
{{citation}}
:|access-date=
requires|url=
(help) {{Cite Q|Q15625490|quote=lorem ipsum}}
- No label or title -- debug: Q15625490, Wikidata Q15625490,
lorem ipsum
{{Cite Q|Q25766745}}
- No label or title -- debug: Q25766745, Wikidata Q25766745
{{Cite Q|Q25766745 |chapter=The Final Cut}}
(with chapter specified)- Lua error in Module:Cite_Q at line 435: attempt to index field '?' (a nil value).
{{Cite Q|Q25766745 |pages=48-52}}
(with pages)- Lua error in Module:Cite_Q at line 435: attempt to index field '?' (a nil value).
{{Cite Q|Q15625490|access-date=18 May 2017}}
- No label or title -- debug: Q15625490, Wikidata Q15625490
{{citation}}
:|access-date=
requires|url=
(help) {{Cite Q|Q25766745|mode=cs1}}
- No label or title -- debug: Q25766745. Wikidata Q25766745.
{{Cite Q|Q25766745|mode=cs2}}
- No label or title -- debug: Q25766745, Wikidata Q25766745
{{Cite Q|Q25766745|author-mask=1}}
- No label or title -- debug: Q25766745, Wikidata Q25766745
{{Cite Q|Q25766745|editor=unset}}
- No label or title -- debug: Q25766745, Wikidata Q25766745
For an example of a bibliography, updated periodically by Listeriabot, see User:Mike Peel/publications.
For additional examples, see testcases and testcases/many names.
Workflow
The template used with a single parameter, the Q-number of the article on Wikidata, will produce a citation using the default display parameters from Template:Citation and the styling of the author and editor names as they are stored on Wikidata. This is rarely the same as required by the citation formatting in any given article. The guidance at WP:CITEVAR requires that editors match the formatting of citations that they add to that of the article where it is added. At present, {{Cite Q}} does not know what style the formatting in an article requires (although it is possible that common styles could be marked or recognised automatically as is done for date formatting).
The result is that editors using {{Cite Q}} must take care to preview their edits and ensure that the formatting rendered matches that of the rest of the article. The commonest formatting issues are:
- Order of editor names:
- A typical output might be:
- If that were used in an article that used "Last, First" format for author names, then the editor would have to supply those author names manually in the desired format. It's often worth previewing the citation in expanded form to show what is being passed to the actual citation template:
{{Cite Q |Q15625490 |expand=yes}}
→{{Citation |id=Wikidata Q15625490 |title=No label or title -- debug: Q15625490}}
- That would make the author names (and author-links) easily available for copy and paste, followed by tweaking into the desired format:
{{Cite Q |Q15625490 |author6=Etnoyer, Peter |author4=Hoetjes, Paul |author7=Smith, Michael |author5=Toller, Wes |author3=van Tassell, James L |author-link2=Kent E. Carpenter |author1=Williams, Jeffrey T |author2=Carpenter, Kent E}}
→- Williams, Jeffrey T; Carpenter, Kent E; van Tassell, James L; Hoetjes, Paul; Toller, Wes; Etnoyer, Peter; Smith, Michael, No label or title -- debug: Q15625490, Wikidata Q15625490
- Punctuation:
- The separators between elements in the above citation is a comma, which is the default for a CS2-style format produced by {{Citation}}. Careful examination in a particular article will often show the separator punctuation to be a full stop (period). That may be selected by setting
|mode=cs1
:
{{Cite Q |Q15625490 |author6=Etnoyer, Peter |author4=Hoetjes, Paul |author7=Smith, Michael |author5=Toller, Wes |author3=van Tassell, James L |author-link2=Kent E. Carpenter |author1=Williams, Jeffrey T |author2=Carpenter, Kent E |mode=cs1}}
→- Williams, Jeffrey T; Carpenter, Kent E; van Tassell, James L; Hoetjes, Paul; Toller, Wes; Etnoyer, Peter; Smith, Michael. No label or title -- debug: Q15625490. Wikidata Q15625490.
- Sometimes, the article will have author names with initials, and those initials are terminated with a full stop (period). It may be necessary to manually add or remove the punctuation in the author names to match the style of the target article (note: this does not apply to author-links, which match the title of the author's article):
{{Cite Q |Q15625490 |author6=Etnoyer, Peter |author4=Hoetjes, Paul |author7=Smith, Michael |author5=Toller, Wes |author3=van Tassell, James L. |author-link2=Kent E. Carpenter |author1=Williams, Jeffrey T. |author2=Carpenter, Kent E. |mode=cs1}}
→- Williams, Jeffrey T.; Carpenter, Kent E.; van Tassell, James L.; Hoetjes, Paul; Toller, Wes; Etnoyer, Peter; Smith, Michael. No label or title -- debug: Q15625490. Wikidata Q15625490.
- The separators between elements in the above citation is a comma, which is the default for a CS2-style format produced by {{Citation}}. Careful examination in a particular article will often show the separator punctuation to be a full stop (period). That may be selected by setting
- Italicisation in titles:
- Titles drawn from Wikidata cannot contain formatting, so editors using {{Cite Q}} may have to add appropriate formatting.
- {{Citation}} will automatically apply italicisation to titles of books, etc. so that does not need to be added:
- However, some titles require partial italicisation, and that has to be done manually when the whole title is not italicised, although that is rare. Titles of chapters may also need to be checked:
- For example (from ISBN 978-0-521-32115-0):
|chapter= ''Porphyra'' as food: cultivation and economic
Module:Wd
Module:Wd can automatically cause this template to be invoked, e.g.,
{{Wikidata|references|raw|Q2978|P2046}}
- Script error: The module returned a nil value. It is supposed to return an export table.
currently causes the following to be invoked:
{{Cite Q|Q15707237|pages=242}}
- Lua error in Module:Cite_Q at line 435: attempt to index field '?' (a nil value).
because an Script error: The module returned a nil value. It is supposed to return an export table. (P2046) statement on Script error: The module returned a nil value. It is supposed to return an export table. (Q2978) is referenced to be Script error: The module returned a nil value. It is supposed to return an export table. (P248) Script error: The module returned a nil value. It is supposed to return an export table. (Q15707237) with Script error: The module returned a nil value. It is supposed to return an export table. (P304) = 242.
Issues
Future developments
- Once robust the functionality should be merged into {{Citation}}
- Eventually, each signed-in reader should be able to set, under their "Preferences", the style in which they wish to see citations rendered. No more CiteVar wars!
- We should have a global template repository, so the code can be used by multiple wikis, without having to manually copy it after every update.
To do list
- Properties
- More properties/ parameters to add
- Parameters with no equivalent property?
- Internationalisation
- Check/resolve handling of redirected QID
- Order of precedence for rendering author names:
Script error: The module returned a nil value. It is supposed to return an export table. (P1932) qualifier on Script error: The module returned a nil value. It is supposed to return an export table. (P50)Script error: The module returned a nil value. It is supposed to return an export table. (P1810) qualifier on Script error: The module returned a nil value. It is supposed to return an export table. (P50)Script error: The module returned a nil value. It is supposed to return an export table. (P2093)Script error: The module returned a nil value. It is supposed to return an export table. (P50) label in English- Script error: The module returned a nil value. It is supposed to return an export table. (P50) label in any other language
Regardless of which of the above is used, link to the author biography article if available, via Script error: The module returned a nil value. It is supposed to return an export table. (P50) (matched via Script error: The module returned a nil value. It is supposed to return an export table. (P1545) if applicable)
- Add tracking categories for each parameter where the local value differs from the corresponding WD value so that either the WD entry can be updated/corrected or the local override can be corrected/removed
- Other tracking categories?
- Links to sister projects: Wikisource, if a transcription project exists; Wikibooks; Wikiversity (esp. the Wikijournals there); perhaps more
- Avoid
<ref name="dicc">{{Cite Q|Q100160262}} {{cite wikisource|wslanguage=pt|wslink=Diccionario Bibliographico Brazileiro/Francisco Antonio de Almeida|title=Transcription}}</ref>
! - Also add links to authors who have pages on Wikisource but not on Wikipedia. Related query: Authors on Wikisource but not other projects, who are linked to by an item which is a subclass of Q47461344 (written work)
- Avoid
- Consider case where author is given as Script error: The module returned a nil value. It is supposed to return an export table. (Q311624)
- If last author/editor is named "et al." (and variants), mute this entry and set display-authors/editors=etal instead before passing down to {citation}
- Disputed; see Template talk:Citation#Et al
- If last author/editor is named "et al." (and variants), mute this entry and set display-authors/editors=etal instead before passing down to {citation}
- Link to Wikisource should take priority over all URL properties, but only if accompanied by Script error: The module returned a nil value. It is supposed to return an export table. (P996). If not, Script error: The module returned a nil value. It is supposed to return an export table. (P996) should take precedence over URLs.
Where there is a Wikipedia article about the work cited, link the title to that, overriding the URL if necessary (example: d:Q25766745)- Ditto for editions of works
- At present a WD pages entry of "1" will result in |pages=1–1 (and metadata &rft.pages=1-1) rather than |page=1 (and metadata &rft.pages=1).
- Implement evaluation of generic keyword for all parameters to denote that a WD value should be accepted by framing its value in accept-this-as-written markup ((..)). See talk thread for possible keyword names.
- Check all parameter aliases when scanning for override parameters (at present some alias parameter names are ignored, possibly leading to inconsistent behaviour if they are set as well).
- Consider including a link to Special:EntityUsage, in the form, say, Other cites or with a small icon.
- Take possible template parameter usage as hint which parameter to use in the generated output. F.e. if the journal/magazine/newspaper parameter is used, the template should use the same in the output. The underlying template {citation} will switch the output format accordingly.
- Try to utilize given parameter values as filter for retrieved WD data. If an editor specifies |edition=2 or |volume=3, cite Q should select correlating data (f.e. page ranges, identifiers etc.) while retrieving data from WD (in cases where more than one entry is available for a particular parameter)
- When the author is cited as Script error: The module returned a nil value. It is supposed to return an export table. (Q2818964), the label should start with an upper case letter
- Quick and dirty workaround:
{{ucfirst:{{Cite Q|xxxx}}
- Quick and dirty workaround:
- Convert WikiData's edition number (e.g., 1) into the ordinal (1st) expected by {{citation}}.
- Make this fix unnecessary.
- Add indication alongside citations of retracted/ replaced works
- Consider cases where citing a retracted/ replaced work is deliberate
- Make use of
|archive-url=
,|archive-date=
, and consider how to use|url-status=
- Use Script error: The module returned a nil value. It is supposed to return an export table. (P6833), where present.
- Improve rendering when both Script error: The module returned a nil value. It is supposed to return an export table. (P50) and Script error: The module returned a nil value. It is supposed to return an export table. (P2093) are present.
- Example: {{Cite Q|Q108740476}} → No label or title -- debug: Q108740476, Wikidata Q108740476
- Current rendering of author name uses semicolon: “Camelia-Manuela Lățăianu; Manuela Lataianu”
- Suggested improved rendering of author name: “Manuela Lataianu [= Camelia-Manuela Lățăianu]”
- Such instances should be fixed on Wikidata, as done here
Deferred
Feel free to tackle these; the core team working on Cite Q sees them as low priority, or too complex.
- Resolve special case of newspaper articles
- Is the following topic of "hint parameters" related to this?
- Author names (Western-style, at least) should display as "Last, First Middle" to match Wikipedia house style
- How to deal with Tussenvoegsels etc.
- In Romance languages, it should be, e.g., "Quental, Antero de" instead of "de Quental, Antero"
- How to deal with Tussenvoegsels etc.
- Handle volume in a serial
- Clarification needed: What is meant by this? |part=, or output format differences journal vs. magazine?
- Is there a Pxxxx code for book series editors to add them to the list of "normal" editors?
- resolve at Wikidata first
Done
Multiple author names treated as one blobLinking author name(s)Title for a book uses{{ #invoke:WikidataIB |getLink |{{{1}}} }}
and may be expensiveFix|ol=
valuesNeed to add manual date for newspaper articles/ website articles.Make publisher a link, where appropriateImprove handing of unexpected multiple valuese.g. Handle multiple DOIs
Author name string (Script error: The module returned a nil value. It is supposed to return an export table. (P2093)) values (e.g. on Q38000000)Pseudonymous author personas such as P. D. Q. Bach or Mark TwainTitle not in EnglishHandle volume, issue and page(s) as qualifiers of Script error: The module returned a nil value. It is supposed to return an export table. (P1433)Wider variety of examples/ test casesIf language of work or name is set (and not the local language); pass that; if not but language of title is set (and not the local language), use thatTheurl
parameter should also pick up data from the properties Script error: The module returned a nil value. It is supposed to return an export table. (P953) and Script error: The module returned a nil value. It is supposed to return an export table. (P2699)Linking title to Wikipedia article, if anyFetch ISSN etc. from item about journalMove Wikidata link before|quote=
(and after other IDs like|pmid=
)Also fixes postscript character issues in conjunction with|mode=cs1
and with|quote=
Fix page evaluation code to accept comma- and semicolon-separated listsUse canonical parameter names when calling down to {citation} (f.e. |page= rather than |p=)Is there a Pxxxx code for SBNs (Standard Book Number to support |sbn= parameter?Is there a Pxxxx code for JFM (Jahrbuch über die Fortschritte der Mathematik) to support |jfm= parameter?Script error: The module returned a nil value. It is supposed to return an export table. (P894)? No, Zbl uses the same resolving link, but it is a different ID.
- Are there values of
|others
which are not illustrators? Possibly:Script error: The module returned a nil value. It is supposed to return an export table. (P2679)Script error: The module returned a nil value. It is supposed to return an export table. (P1891)Fails for very high numbers
Script error: The module returned a nil value. It is supposed to return an export table. (P371)Script error: The module returned a nil value. It is supposed to return an export table. (P175)
Add a tracking category for references with a Script error: The module returned a nil value. It is supposed to return an export table. (P1366) statementAdd a tracking category for references with a Script error: The module returned a nil value. It is supposed to return an export table. (P5824) statementRender Script error: The module returned a nil value. It is supposed to return an export table. (P1680), following the title with a:
Won't fix
- Improve date formatting options
- This is done in {{Citation}}
- Fix unnecessary piping of author/editor and journal links if link and label are the same, f.e. [[Author|Author]] -> [[Author]], [[Journal|Journal]] -> [[Journal]] for improved reusability, cleaniness of output, reduced size of resulting page code, and to avoid potential future extra text errors thrown by the underlying {citation} template
- See talk
- Fix invocation with
|qid=
instead of unnamed parameter. At present {{cite Q|qid=Q12345}} instead of {{cite Q|Q12345}} gives an error.- This is intended; please discuss on talk
- Fix ready for test in template sandbox: {{cite Q/sandbox|qid=Q15625490}} gives Lua error in Module:Cite_Q/sandbox at line 13: attempt to index a nil value.
- Replace the QID with a pen icon
- The QID is valid metadata about the cited work.
See also
meta:WikiCite and d:Wikidata:WikiProject Source Metadata - goals of those projects include the management of citations across Wikimedia projects and better insight into research resources through Wikimedia projects.
Template data
Generate citations from Wikidata by passing the QID to this template
Parameter | Description | Type | Status | |
---|---|---|---|---|
QID | 1 | The Wikidata QID of the cited source | String | required |