Extension:PubmedParser
|
PubmedParser Release status: stable |
|||
|---|---|---|---|
| Implementation | Parser function | ||
| Description | Adds a parser function #PMID to look up articles in pubmed.gov by ID. | ||
| Author(s) | Daniel Kraus (BovenderTalk) | ||
| Last version | 0.2.8 | ||
| MediaWiki | Tested with 1.17, 1.18 | ||
| License | GPL | ||
| Download | http://sf.net/projects/pubmedparser/files | ||
| Example | {{#pmid:19782018}} {{#pmid:19782018|Alon2009}} |
||
|
|||
|
Check usage (experimental) |
|||
Contents |
[edit] What can this extension do?
This extension provides a parser keyword (#PMID) to fetch article information by unique ID from the Pubmed database. It outputs the article information formatted as Wiki markup for a template. The template can be defined inside the Wiki and adjusted as needed.
Compared with the other, very useful extension Pubmed, this extension can be fully configured using Wiki messages (see the special page "Sytem Messages" in your wiki). It does not require editing configuration files on the server.
PubmedParser fetches information on a single article at a time only. If you would like to generate lists of article, please have a look at the Pubmed extension.
If the Cite extension is installed, you can add an additional parameter to the #PMID keyword, and PubmedParser will generate a <ref name="additional parameter">...</ref> structure for you. This makes it extremely easy to insert reusably references into your Wiki page.
[edit] Usage
To retrieve the article with PMID 19782018, insert the following into your page:
{{#pmid:19782018}}
This will produce the following output:
{{pubmed|pmid=19782018|authors=Alon|allauthors=Alon
|title=How to choose a good scientific problem
|journal=Molecular cell|journala=Mol. Cell.
|year=2009|volume=35|pages=726-8|doi=10.1016/j.molcel.2009.09.013}}
However, you will never get to see this output, since {{pubmed|...}} represents a template, which is immediately processed by the MediaWiki software.
Notes:
- The template "pubmed" must exist in your wiki; otherwise, "Template:pubmed" will be inserted in red into your displayed page (click on the red link to create the template).
- You can fully customize the names of the template itself as well as the names of the parameters of the template (see below)).
- Your template does not need to use all parameters; unused parameters will be discarded.
- authors is an abbreviated list of the author names; use allauthors if you need all of the names.
- journal is the full journal name as stored in Pubmed; use journala to get the ISO abbreviation.
Thus, if your template looks like this:
{{{authors}}}: {{{title}}}. {{{journala}}} {{{year}}};{{{volume}}}:{{{pages}}}.
You will get this:
| Alon: How to choose a good scientific problem. Mol. Cell. 2009;35:726-8. |
[edit] Template parameters
You can use the following parameters in your "pubmed" template. Note that you can edit all parameter names (as well as the name of the template itself) according to your needs (see Customization below).
| Parameter | Description |
|---|---|
| {{{authors}}} | Abbreviated list of author names. If there are only two authors, they will be concatenated by "&"; with three or more authors, an "et al." will be appended after the first author. Note: You can edit the "&" and "et al." at Special:AllMessages (see below). |
| {{{authorsi}}} | Abbreviated list of author names, just like above, but with initials appended. Note: You can edit the separator between last name and first name as well as what to put after the initials (e.g., a period) at Special:AllMessages (see below). |
| {{{allauthors}}} | List of all author names. The last author's name is appended with "&". Note: You can edit the "&" and "et al." at Special:AllMessages (see below). |
| {{{allauthorsi}}} | List of all author names, just like above, but with initials appended. Note: You can edit the separator between last name and first name as well as what to put after the initials (e.g., a period) at Special:AllMessages (see below). |
| {{{title}}} | The title of the article. A trailing period will be stripped. |
| {{{journal}}} | The full name of the journal as stored in Pubmed. Capitalization is the same as in Pubmed. |
| {{{journalcaps}}} | The full name of the journal as stored in Pubmed with all words capitalized. |
| {{{journala}}} | The abbreviated name of the journal (ISO specification), e.g.: N. Engl. J. Med. |
| {{{journalanop}}} | The abbreviated name of the journal (ISO specification) without periods, e.g.: N Engl J Med |
| {{{year}}} | The year the article was published. |
| {{{volume}}} | The volume of the journal. |
| {{{pages}}} | The pagination as stored in Pubmed. Leading digits may be omitted in the last page number; for example, "1324 through 1336" is given as "1324-36". |
| {{{pmid}}} | The PMID number (i.e., the same ID that was used to call #pmid). |
| {{{doi}}} | The DOI (Digital Object Identifer) of the article that points to the full text. Not all Pubmed entries provide this information. |
| {{{abstract}}} | The article's abstract. If you want to have a collapsible abstract in your template, consider using this code: {{#if:{{{abstract}}}|<span class="mw-collapsible mw-collapsed" data-expandtext="Abstract" data-collapsetext="Abstract">{{{abstract}}}</span>}} (NB: This only works in MediaWiki 1.18+). |
[edit] Example template "pubmed"
{{{authors}}}: {{{title}}}. ''{{{journala}}}'' {{{year}}};{{#if:{{{volume|}}}|{{{volume|}}}:}}{{{pages|)}}}.
PMID: [http://pubmed.gov/{{{pmid|}}} {{{pmid|}}}]. {{#if:{{{doi|}}}|[http://dx.doi.org/{{{doi|}}} DOI].}}
Formatted example:
| Cumming et al.: Error bars in experimental biology. J. Cell Biol. 2007;177:7-11. PMID: 17420288. DOI. |
Note: This template requires the [Help:Extension:ParserFunctions ParserFunctions] extension (which provides {{#if:test|then|else}}) to link the DOI only if it is contained in the Pubmed data.
[edit] Adding <ref></ref> tags automatically
You may add an additional parameter to the #PMID call to make the PubmedParser automatically insert <ref></ref> tags. The Cite extension will use these tags to build your bibliography. To reuse the reference, simply insert <ref name="yourparameter" />.
Example:
{{#pmid:19782018|Alon2009}}
This will produce the following output:
| <ref name="Alon2009">{{pubmed|pmid=19782018|authors=Alon|allauthors=Alon|title=How to choose a good scientific problem|journal=Molecular cell|journala=Mol. Cell.|year=2009|volume=35|pages=726-8|doi=10.1016/j.molcel.2009.09.013}}</ref> |
Since this output is immediately parsed again by MediaWiki, you will never get to see it this way; instead, you will see the footnote generated by the Cite extension, which contains whatever output your template "pubmed" produces from this.
To cite this same paper again, simply type <ref name="Alon2009" />
[edit] Customization
You can customize the name of the template as well as the names of the parameters by editing the system messages of your wiki: Go to Special:AllMessages and filter for "pubmedparser".
| Name | Description | Default value |
|---|---|---|
| pubmedparser-templatename | Name of the MediaWiki template | pubmed |
| pubmedparser-abstract | Template parameter for the abstract | abstract |
| pubmedparser-authors | Template parameter for the abbreviated list of authors | authors |
| pubmedparser-authorsi | Template parameter for abbreviated list of authors with initials | authorsi |
| pubmedparser-allauthors | Template parameter for the complete list of authors | allauthors |
| pubmedparser-allauthorsi | Template parameter for the complete list of authors with initials | allauthorsi |
| pubmedparser-journal | Template parameter for the journal name (Pubmed style) | journal |
| pubmedparser-journalcaps | Template parameter for the journal name (capitalized) | journalcaps |
| pubmedparser-journala | Template parameter for the abbreviated journal name | journala |
| pubmedparser-journalanop | Template parameter for the complete list of authors without periods | journalanop |
| pubmedparser-volume | Template parameter for the volume | volume |
| pubmedparser-pages | Template parameter for the pagination | pages |
| pubmedparser-firstpage | Template parameter for the first page number | firstpage |
| pubmedparser-year | Template parameter for the year of publication | year |
| pubmedparser-doi | Template parameter for the digital object identifier (DOI) | doi |
| pubmedparser-title | Template parameter for the article title | title |
| pubmedparser-and | Concatenation symbol for the last author name (e.g., "and") | & |
| pubmedparser-etal | Abbreviation of the author list | ''et al.'' |
| pubmedparser-initialseparator | Separator between last name and initials (e.g., ",") | [empty] |
| pubmedparser-initialperiod | Abbreviation symbol for the initials (e.g., "." or ". "). | [empty] |
[edit] Download instructions
Download the archive (zip file or tar ball) and extract it in $IP/extensions.
Note: $IP stands for the root directory of your MediaWiki installation, the same directory that holds LocalSettings.php.
[edit] Installation
To install this extension, add the following to LocalSettings.php:
require_once( "$IP/extensions/PubmedParser/PubmedParser.php" );
[edit] Configuration parameters
There is one configuration variable that you may want to adjust to your needs:
$wgPubmedParserCache = "$IP/cache/PubmedParser";
If this path exists and is writable for the web server, PubmedParser will locally store the XML data of the articles in this path. This accelerates retrieval of article information when a page is edited. Note that viewing of a page (rather than editing it) does not trigger information retrieval from Pubmed, as the information for unchanged Wiki pages is cached by the MediaWiki software regardless of this setting.
[edit] Forcing reload from Pubmed
Occasionally, Pubmed article information is updated, e.g. when an article that was initially published online-only appears in print. When using the cache feature, you can force retrieval of information from Pubmed by adding a 'reload' parameter to your #PMID call:
{{#PMID:123456|reload}}
or
{{#PMID:123456|Miller2011|reload}}
It goes without saying that the updated information is stored in the cache folder.
Note that reloading only occurs when a page is edited but not when it is viewed. Therefore, you can leave the 'reload' parameter in your #PMID call without causing superfluous download requests from Pubmed. The next time you edit a page, you can remove the 'reload' option, and the article information will be retrieved from cache again.
[edit] Changelog
| 0.2.8 | 01-Feb-12 | Fixed 'server configuration' error. |
| 0.2.7 | 30-Jan-12 | Improved extraction of the year of publication. |
| 0.2.6 | No longer show warnings when there are no authors listed. | |
| 0.2.5 | 22-Dec-11 | No longer show warnings when abstracts are included. |
| 0.2.4 | 22-Dec-11 | Fixed 'reload' option. |
| 0.2.3 | 19-Sep-11 | Added 'abstract' template parameter. |
| 0.2.2 | 'journalanop' template parameter: returns the journal name abbreviation without periods (abbreviation, no periods). | |
| 0.2.1 | 12-Aug-11 | 'reload' option and improved error messages |
| 0.2.0 | 08-Aug-11 | Code clean-up. New features: Author initials; capitalized journal names. |
| 0.1.3 | 07-Aug-11 | Detect empty parameter (= invalid PMID). |
| 0.1.2 | 07-Aug-11 | Improved error handling (invalid PMIDs, no data from Pubmed). |
| 0.1.1 | 05-Aug-11 | Initial (beta) release. |
[edit] Code
Source code is available as a Git repository and can be browsed at sf.net/p/pubmedparser/code.
[edit] See also
| Language: | English • Deutsch |
|---|
