Extension:External Data/Web pages/examples
Appearance
The following are example uses of the #get_web_data parser function (along with calls to #external_value and #for_external_table to display the information).
You can see these calls in action, with actual results, here.
NCBI taxonomy
[edit]Retrieve data from the National Center for Biotechnology Information.
{{#for_external_table:* Scientific name: {{{ScientificName}}}
* Common name: {{{CommonName}}}
* Division: {{{Division}}}
|url=https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=taxonomy&rettype=fasta&retmode=xml&id=8371
|format=xml
|use xpath
|data=ScientificName=/TaxaSet/Taxon/ScientificName,CommonName=/TaxaSet/Taxon/OtherNames/CommonName,Division=/TaxaSet/Taxon/Division}}
PubMed
[edit]Retrieve data from PubMed, run by the National Center for Biotechnology Information.
{{#for_external_table:* Title: {{{ArticleTitle}}}
* Name: {{{LastName}}}, {{{ForeName}}}
* Journal: {{{JournalTitle}}}
* Year: {{{Year}}}
* Volume: {{{Volume}}}
|url=https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=pubmed&id=19782018&retmode=xml
|format=xml
|use xpath
|data=ArticleTitle=/PubmedArticleSet/PubmedArticle/MedlineCitation/Article/ArticleTitle,LastName=/PubmedArticleSet/PubmedArticle/MedlineCitation/Article/AuthorList/Author/LastName,ForeName=/PubmedArticleSet/PubmedArticle/MedlineCitation/Article/AuthorList/Author/ForeName,JournalTitle=/PubmedArticleSet/PubmedArticle/MedlineCitation/Article/Journal/Title,Year=/PubmedArticleSet/PubmedArticle/PubmedData/History/PubMedPubDate[1]/Year,Volume=/PubmedArticleSet/PubmedArticle/MedlineCitation/Article/Journal/JournalIssue/Volume}}
Scopus
[edit]Retrieve data from Elsevier's Scopus database.
{{#for_external_table:* Title: {{{dc_title}}}
* Author: {{{dc_creator}}}
* "Cited by" count: {{{citedby-count}}}
|url=https://api.elsevier.com/content/search/scopus?query=DOI(10.1103/PhysRevA.20.1521)&apiKey=ELSEVIER_KEY
|format=json
|data=dc_title=dc:title,dc_creator=dc:creator,citedby-count=citedby-count}}
You must also obtain an Elsevier API key, and add the following to LocalSettings.php:
$wgExternalDataSources['api.elsevier.com']['replacements'] = [
'ELSEVIER_KEY'=> '...your key here...'
];
Wikidata - individual entry
[edit]SPARQL query:
SELECT ?item ?itemLabel ?symbol ?atomicNumber ( YEAR( ?discoveryDate ) AS ?discoveryYear ) ?discoverer ?discovererLabel
WHERE {
VALUES ?item { wd:Q654 } .
?item wdt:P246 ?symbol .
?item wdt:P1086 ?atomicNumber .
?item wdt:P575 ?discoveryDate .
?item wdt:P61 ?discoverer
SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
Actual wikitext (which includes this query):
{{#for_external_table:* Name: {{{itemLabel}}}
* Symbol: {{{symbol}}}
* Atomic number: {{{atomicNumber}}}
* Year discovered: {{{discoveryYear}}}
|url=https://query.wikidata.org/sparql?query=SELECT%20%3Fitem%20%3FitemLabel%20%3Fsymbol%20%3FatomicNumber%20%28%20YEAR%28%20%3FdiscoveryDate%20%29%20AS%20%3FdiscoveryYear%20%29%20%3Fdiscoverer%20%3FdiscovererLabel%0AWHERE%20%7B%0A%20%20VALUES%20%3Fitem%20%7B%20wd%3AQ654%20%7D%20.%0A%20%20%3Fitem%20wdt%3AP246%20%3Fsymbol%20.%0A%20%20%3Fitem%20wdt%3AP1086%20%3FatomicNumber%20.%0A%20%20%3Fitem%20wdt%3AP575%20%3FdiscoveryDate%20.%0A%20%20%3Fitem%20wdt%3AP61%20%3Fdiscoverer%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20"en".%20%7D%0A%7D&format=json
|format=json
|use jsonpath
|data=itemLabel=$.results.bindings[0].itemLabel.value,
symbol=$.results.bindings[0].symbol.value,
atomicNumber=$.results.bindings[0].atomicNumber.value,
discoveryYear=$.results.bindings[0].discoveryYear.value,
discovererURL=$.results.bindings[*].discoverer.value,
discovererLabel=$.results.bindings[*].discovererLabel.value
}}
* Discoverers: {{#for_external_table:[{{{discovererURL}}} {{{discovererLabel}}}], <nowiki />
|url=https://query.wikidata.org/sparql?query=SELECT%20%3Fitem%20%3FitemLabel%20%3Fsymbol%20%3FatomicNumber%20%28%20YEAR%28%20%3FdiscoveryDate%20%29%20AS%20%3FdiscoveryYear%20%29%20%3Fdiscoverer%20%3FdiscovererLabel%0AWHERE%20%7B%0A%20%20VALUES%20%3Fitem%20%7B%20wd%3AQ654%20%7D%20.%0A%20%20%3Fitem%20wdt%3AP246%20%3Fsymbol%20.%0A%20%20%3Fitem%20wdt%3AP1086%20%3FatomicNumber%20.%0A%20%20%3Fitem%20wdt%3AP575%20%3FdiscoveryDate%20.%0A%20%20%3Fitem%20wdt%3AP61%20%3Fdiscoverer%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20"en".%20%7D%0A%7D&format=json
|format=json
|use jsonpath
|data=itemLabel=$.results.bindings[0].itemLabel.value,
symbol=$.results.bindings[0].symbol.value,
atomicNumber=$.results.bindings[0].atomicNumber.value,
discoveryYear=$.results.bindings[0].discoveryYear.value,
discovererURL=$.results.bindings[*].discoverer.value,
discovererLabel=$.results.bindings[*].discovererLabel.value
}}
Wikidata - full query
[edit]All paintings that depict a squirrel.
SPARQL query:
SELECT DISTINCT ?painting ?paintingLabel ?creator ?creatorLabel ( YEAR( ?inception ) as ?year ) ?genre ?genreLabel ( SUBSTR( ?str_image, 52 ) AS ?fileName )
WHERE
{
?painting wdt:P180 wd:Q9482 .
?painting wdt:P170 ?creator .
?painting wdt:P571 ?inception .
?painting wdt:P136 ?genre .
?painting wdt:P18 ?image .
BIND (STR(?image) AS ?str_image)
SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
ORDER BY ?paintingLabel
Actual wikitext (which includes this query):
{| class="wikitable"
! Name
! Artist
! Year
! Genre
! Image {{#for_external_table:<nowiki/>
{{!}}-
{{!}} [{{{paintingURL}}} {{{paintingLabel}}}]
{{!}} [{{{creatorURL}}} {{{creatorLabel}}}]
{{!}} {{{year}}}
{{!}} {{{genre}}}
{{!}} [[File:{{{fileName}}}|80px]]
|url=https://query.wikidata.org/sparql?query=SELECT%20DISTINCT%20%3Fpainting%20%3FpaintingLabel%20%3Fcreator%20%3FcreatorLabel%20%28%20YEAR%28%20%3Finception%20%29%20as%20%3Fyear%20%29%20%3Fgenre%20%3FgenreLabel%20%28%20SUBSTR%28%20%3Fstr_image%2C%2052%20%29%20AS%20%3FfileName%20%29%0AWHERE%0A%7B%0A%20%20%3Fpainting%20wdt%3AP180%20wd%3AQ9482%20.%0A%20%20%3Fpainting%20wdt%3AP170%20%3Fcreator%20.%0A%20%20%3Fpainting%20wdt%3AP571%20%3Finception%20.%0A%20%20%3Fpainting%20wdt%3AP136%20%3Fgenre%20.%0A%20%20%3Fpainting%20wdt%3AP18%20%3Fimage%20.%0A%20%20BIND%20%28STR%28%3Fimage%29%20AS%20%3Fstr_image%29%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22en%22.%20%7D%0A%7D%0AORDER%20BY%20%3FpaintingLabel&format=json
|format=json
|use jsonpath
|data=paintingURL=$.results.bindings[*].painting.value,
paintingLabel=$.results.bindings[*].paintingLabel.value,
creatorURL=$.results.bindings[*].creator.value,
creatorLabel=$.results.bindings[*].creatorLabel.value,
year=$.results.bindings[*].year.value,
genre=$.results.bindings[*].genreLabel.value,
fileName=$.results.bindings[*].fileName.value
}}
|}