Extension:ProcessCite

From Linux Web Expert

MediaWiki extensions manual
ProcessCite
Release status: unmaintained
Implementation Tag
Description Add additional processing capabilities to Cite.
Author(s) JimHu
Latest version 0.2 (2013-11-02)
MediaWiki 1.31.1
License MIT License
Download
(also requires patching Cite and the PMID extension)
Example GONUTS
Quarterly downloads Lua error in Module:Extension at line 172: bad argument #1 to 'inNamespace' (unrecognized namespace name 'skin').
Public wikis using Lua error in Module:Extension at line 172: bad argument #1 to 'inNamespace' (unrecognized namespace name 'skin').

Rationale and Features

Wiki pages on scientific topics benefit from citations to the scientific literature. Managing these by placing full citations inside <ref></ref> tags using Cite can be cumbersome, and generates wikitext that suffers from the insertion of long blocks of ref text that degrades readability. It is also hard to maintain consistency of reference styles among different users.

ProcessCite extends the capabilities of Cite by adding the following:

  1. fetches, caches, and formats reference info for citations to papers in the NLM PubMed database, using PubMed's E-Utilities web service.
  2. fetches reference information from a list of commonly used shortcuts stored in a specific wiki page
  3. allows more concise markup of these kinds of citations
  4. disambiguates several ways in which citations might be entered into Cite.
  5. generates links in the reference text to a variety of external sources defined as dbxrefs by the Gene Ontology Consortium.

Many of these functionalities are inspired by the features in Biblio, an extension written by Martin Jambon.

Usage

In the wiki page, create references using the syntax <ref name=DB:reference />. Add an empty <references /> tag where you would like the full references to appear (usually at the bottom of the page). ProcessCite parses the name attributes of the <ref> tags and generates a citation list from them.

ProcessCite works with a number of different databases; see the full list in GO.xrf_abbs.php from the source code.

Example

You type

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua<ref name=PMID:12368253 />. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

<references/>


You get

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua[1]. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

1. Stein LD et al. (2002) The generic genome browser: a building block for a model organism system database. Genome Res 12: 1599-610 PubMed

Status

ProcessCite.php has only been tested with MediaWiki 1.31.1. Help testing this extension on other versions will be appreciated!

ProcessCite and other Hu Lab extensions are maintained mostly on a publicly inaccessible enterprise GitHub repository at Texas A&M. This is synchronized irregularly and infrequently with this repository. To check whether we are using a more recent version than the one in the public GitHub, check Special:Version at https://gowiki.tamu.edu


Installation

ProcessCite.php installation requires addition of a hook to Cite.php and other configuration.

  • Download ProcessCite.tgz and uncompress it.
  • Place the files from the ProcessCite directory in $IP/extensions/Cite directory. Files included:
    • ProcessCite.php - the main extension
    • GO.xrf_abbs.php - a supporting file with dbxrefs for various genomics resources
  • Patch Cite/includes/Cite.php (if necessary): at the beginning of Cite::stack, add
    Hooks::run( 'CiteBeforeStackEntry', array( &$key, &$str ) );
    
  • Install the PMID extension, which queries Pubmed E-Utilities
    • set a tmp directory for caching returns from web services. This must be readable and writeable by the webserver, or ProcessCite will throw permissions errors (but it will still work). A tmp directory should be used to reduce bandwidth use for the web service providers, such as PubMed.
    • (optional) set a wiki page in the main namespace to hold a list of reference shortcut|reference text pairs, one per line. Use <noinclude> to add comments to this page. The default is "$wgSitename Reference Library"
  • add
    wfLoadExtension("ProcessCite");
    
    to LocalSettings.php.

Alternatives

See also this version of ProcessCite, which adds support for DOI lookups.