Extension:ProcessCite

Rationale and Features
Wiki pages on scientific topics benefit from citations to the scientific literature. Managing these by placing full citations inside 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: Many of these functionalities are inspired by the features in Biblio, an extension written by Martin Jambon.
 * 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.

Status
So far, ProcessCite.php has only been tested with MediaWiki 1.8.3. Help testing this extension on other versions will be appreciated! It works with MediaWiki 1.13.1 but after adding one line in ProcessCite.php. Add line after line

Installation
ProcessCite.php installation requires addition of a hook to Cite.php and other configuration.
 * Download ProcessCite.tgz
 * Place the files from the ProcessCite director in your 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.php (if necessary) add:
 * wfRunHooks( 'CiteBeforeStackEntry', array( &$key, &$str ) );
 * at the beginning of function stack in Cite.php
 * Edit ProcessCite.php to
 * 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 to add comments to this page.  The default is "$wgSitename Reference Library"
 * add
 * require_once("extensions/Cite/ProcessCite.php");
 * to LocalSettings.php.

Alternatives
Biblio. Biblio also automates fetching references based on ISBN numbers. ProcessCite/Cite has the advantage of not requiring user maintenance of the reference section itself.