[Mediawiki-l] Citation Citation Citation?

Dan Bolser dan.bolser at gmail.com
Tue Aug 21 09:44:04 UTC 2007


I would like to build an extension for MediaWiki (MW) to make citing
scientific publications easier / more 'natural'. This extension will
be used for my private 'literature wiki', and so requires features
that are not strictly generally useful for MW. However, I think that a
lot of general principles should apply to this project that could
carry over to MW in general.

Below I will outline my thinking. I would like to get feedback on
these ideas, because basically I am very new at MW. Additionally, I
want to organize a list of resources related to this project, and
hopefully this will help me do that.

== First, why not just use an existing extension? ==

* http://en.wikipedia.org/wiki/WP:Citing_Sources#How_to_cite_sources
* http://en.wikipedia.org/wiki/Wikipedia:Citation_templates
* http://en.wikipedia.org/wiki/Wikipedia:Footnotes

In short, I find these methods clunky. Although these tools go a long
way towards providing proper citation support to MW, I think they fall
short in several respects;

* They are somewhat tricky to learn and implement.
* The specific citation data for a given source cannot be
automatically generated (AFAIK).
* Sources are not reusable across pages (sources are not independent 'objects').
* The format of the citation is not user configurable (there no scope
for setting format preferences).

The above list of missing features comes from my perspective as a
scientific student. I write papers citing articles that are mostly
from PubMed using tools like BibTeX, TexMed and Endnote. Typically the
'citation process' has a simple 'pipeline'.

1. Click 'insert citation' or type a citation keyword.
2. A) Select an existing citation from a personal collection or B)
perform a database search to download the citation data into a
3. Later - configure the citation style and print.

Of course things can differ from the above pattern, such as
occasionally having to manually type the citation details, however, in
general this is the pattern used by most scientists (I think).

I would like to build a system to allow this kind of pattern to be
implemented in MediaWiki.

Some of these issues are addressed by the following extensions;

* http://www.mediawiki.org/wiki/Extension:PagesOnDemand (and PMID_OnDemand)
* http://www.mediawiki.org/wiki/Extension:ProcessCite
* http://www.mediawiki.org/wiki/Extension:Biblio

== Second, describing the system I have in mind. ==

Right! I am getting quite bogged down with the following description,
so lets keep it simple to begin with.

Lets assume that you want to insert a citation from an article listed
in PubMed. This 'source' is found by searching PubMed and has PMID =
1234567. Associated with this PMID is the citation data; title, year,
journal and abstract.

Every cited source will have its own page in the Wiki, called a
'source page'. Each source page will be an instance of a standard
'source template'. Particular source pages can then be dropped into a
regular page as needed.

Making a separate page for each source already provides advantages.
However, two 'magic' steps are still missing and need to be described;

1. Automatically 'instantiating' the source template in the source
page with data from PubMed.
2. Formatting the references in pages using citations.

These steps are described (in outline) in more detail below.

== Third, detailed use case. ==

While writing a scientific article the user types "bla bla
bla{{cite:myKey}}", where myKey is a personal citation keyword that
can be anything at all but will probably be a mnemonic for the desired
source. Lets assume that 'myKey' refers to a new 'source' that has not
been cited before. After saving the page {{cite:myKey}} shows up in
the text as a red link ("Template:Cite:myKey").

Clicking the red link will trigger some 'magic' (using the
PagesOnDemand extension). The 'magic' presents a user with the
"Template:Cite:myKey" page preloaded with a special 'PubMed search'

The PubMed search template allows the user to (surprisingly) search
PubMed. For example of the PHP code required see 'Librarian';

More information about the MediaWiki-l mailing list