Bibliography Extension for MediaWiki

MediaWiki > Skins > Extension … a use case story

In mid 2009 we were asked to redesign our homepage to fit the corporate design of the LMU. During this time, I introduced and established MediaWiki as content management system for our website as it provided the needed flexibility, freedom and usability for our group.

One major issue was the list of publications which is very important for every researcher. In the old system, everyone maintained his own publication list manually. In parallel, all the publications were maintained in a central BibTex-file stored in CVS. Nice example for ‘Redundancy‘ – hey we’re a data base group – there shouldn’t be redundancies. So I wrote an extension in my spare time which parses a bibliography-file into a more convenient format. The result of such an automatically generated list can be seen for example on my publications list. – Well, finally I just put it online. Maybe you are a researcher or just maintinaing the website of some researcher(s) who already have a bib-File of their own publications and want to put your publications list online.

What this Extension can do / Features

The extension in action
The extension in action

This extension allows processing a central bibliography file in BibTeX format in order to create personalized publication pages for authors, projects or keywords. The BibTeX data can be stored in a file in the filesystem or in a special wiki article.

Implemented Features

  • The bibliography can be stored in a filesystem file or in a separate article of the wiki.
  • Multiple authors can share a single BibTeX source and have individual publication lists on their personal pages (=articles)
  • Filtering can be done on all attributes of the bibtex file/article.
  • Filters can be combined: for example, all papers of year=2010 AND author=xy AND keyword=xyz
  • Supports optional bibtex entries (“pages =100–110” may be entered in one bibtex entry but not in another – but if the entry is present, it should be formated as “p. 100-110”. If the attribute is not there, “p. ” should also not appear)
  • Different bibliography-types (article, book, inproceeding, …) use different styles according to the mandatory and optional fields.
  • @unpublished entries will be ignored
  • Supports @String-replacement as it is can be done by BibTeX
  • Automatically adds a separator between entries of different years
  • Provide additional links for each BibTeX entry (like PDFs or links to articles with further informations)
  • Author names can be linked automatically to pre defined wiki articles

Download

Just visit my How-To page, to see what the extension can do.
You can download the extension by using the link in the download section.

Maybe you can just drop me a line if you find the extension useful.

17 thoughts on “Bibliography Extension for MediaWiki”

  1. I installed the Preloader and Bibliography extensions from a zip file that I downloaded from the link mentioned above. The Preloader seems to be fine, but after I install the Bibliography extension and go to “Special pages”, I get a warning and a fatal error that includes/AutoLoader.php (line 591) can’t open a required file ‘/extensions/Bibliography/bibtexParse/PARSEENTRIES.php’ The site path is correct, but indeed there are no subdirectories in the Bibliography extension directory, and there is no PARSEENTRIES.php file anywhere.

    I am using MediaWiki 1.15.1 and php 5.2.16 on a Solaris 5.10 VM/zone.

    Any suggestions?

    Thanks,

    – Jon

    1. Hi,

      uhm well I don’t even have a suggestion, I also have a solution 😉
      I forgot to include the bibtex parsing files into the ZIP. Sorry.
      I just added the files and made a new package which is now available for download at http://www.dbs.ifi.lmu.de/cms/Franz_Graf/MediaWiki

      Please drop me a line if there are still problems.
      Regards
      Franz

  2. Hi,

    I will be greatly thankful if you could provide me with some help. I want to use the extension in our wiki and I am trying to link authors names in the publication page to their personal pages. I created an article named authorMapping and in that article I put “the personal pages address | name of the author in the bibtex file”. However, I didn’t get the desirable result. Is there something that I am missing. Sorry if my question is too basic, it is my first time that I am editing a page.

    Thanks a lot

    1. You’re totally welcome.
      If I see this correct, the name of the according article is “AuthorsMapping”, right?
      Have you added $wgBibliographyAuthorMap = “AuthorsMapping”; to your LocalSettings.php?
      Too bad that I’m not attending the SSTD Conference at the Univ of Minnesota, I could have given you a visit 😉

      1. Hi,
        Yes I did forget about that. Thanks a lot. I also had another question. I want to link the pdf files of the papers so I used this: DBSLINKS = {[http://www.cs.umn.edu/~isler/pub/jfr11mules.pdf|pdf]} in my bibtex entry. However, I got no outcome. Is there anything that I should set in the LocalSetting.php file?

        1. Hi,
          hm dou you have a sample BibtexEntry that does not work as expected? I guess it might be a typo or s.th.
          Regards
          Franz

  3. Hallo,
    können Sie mir erklären, wie ich die Parser-Funktion in meinem semantischen Wiki (SMW+) verwenden kann?
    In meinen Wiki-Artikeln zu den verschiedenen Objekten in der Datenbank sollen die Publications statt wie bisher im BibTex-Format eben durch Ihren Parser anständig dargestellt werden. Hierzu findet im Wikicode eine Query statt, welche die entsprechende Property “hasReference” abfragt und als Ergebnis eben die jeweilige(n) Publikation(en) im BibTex-Format ausgibt – wie bringe ich hier den Parser ins Spiel? Als Template für die Darstellung?

    Vielen Dank im Voraus und
    mit freundlichen Grüßen,

    M.B.

    1. Hi,

      puh gute Frage. So tief bin ich in der MediaWiki-Programmierung nicht drinnen.
      Evtl kannst du den XML Key dynamisch generieren, so dass soetwas rauskommt:
      <bibliography src="BibTexSource" key="[hier der key, falls hasReference = true]" />
      ?

      Grüße
      Franz

      1. Danke für die schnelle Antwort, ich habe im Moment absolut keine Idee, wie ich allgemein Ihren Parser in einem Wiki zu benutzen ist. Wie ist der Aufruf, also die Verwendung ihrer Funktionen vorgesehen? Die Installation in das Zielverzeichnis etc. habe ich nach Ihren Anweisungen bereits durchgeführt.

        Viele Grüße,
        Marcel

        1. Naja, dann ist ja die Hälfte schon geschafft. Die genaue Syntax steht ja unter http://www.dbs.ifi.lmu.de/cms/Franz_Graf/MediaWiki_HowTo#Usage beschrieben.
          Im Prinzip kannst du ja eigentlich bei jeder Publikation so einen Eintrag einfügen, wenn du den Bibtex-Key weißt – wenn keine Veröffentlichung gefunden wird, wird ja auch nichts ausgegegeben.
          Das geht aber dann schon in die MediaWIki Programmierung. Am Lehrstuhl haben wir uns glaube ich das Buch “MediaWiki (Wikipedia and Beyond)” angeschafft, da steht viel hilfreiches zur Programmierung drin. Dasselbe erreichst du vermutlich auch durch viel googlen oder auf der MediaWIki Mailinglist — die würde ich definitiv zu MediaWiki-Programmierung empfehlen, da ich da nicht der absolute Crack bin.

          Grüße
          fg

          1. Wenn ich also in einem Wiki-Artikel meine Publikationen stehen habe im BibTex-Format und diese dann bspw. in einem anderen Artikel durch Ihre Extension aufbereitet ausgeben möchte, wo und wie muss ich den unter #Usage angegebenen Code ” ” einfügen?

            Grüße, Marcel

          2. Ahhh okay. Die Extension ist derzeit nur dazu gemacht die BibTex-Einträge aus einer Datei zu lesen. Wenn die BibTex Einträge in einem anderen Artikel stehen, musst du den Einlesecode entsprechend umschreiben.
            Franz

  4. Und wie ist die Extension dann aufzurufen? Muss ich in einem beliebigen Wiki-Artikel dann einfach ” ” hinterlegen, um die Datei einzulesen – also funktioniert der Aufruf einfach per Tag?
    Bisher habe ich leider noch keine Ausgabe erzeugen können.

    1. Jep, einfach per Tag. Wenn das nicht geht – evtl etwas reindebuggen. Ich schätzem dass entweder die Datei nicht gelesen werden kann (Rechte und Pfad prüfen) oder das Format der Datei passt nicht.

  5. war leider hier nicht darstellbar, daher der dreifach-post, sorry!

    code –> bibliography src=”file:/C:/bibtex.txt”

    1. SOLLTE gehen. Da musst du wohl selbst debuggen.
      – Extension wird geladen? (in den special pages unter version)
      – src wird gefunden und kann gelesen werden
      – …
      entweder per PHP Debugger oder einfach per echo dann siehst du ja, was abgearbeitet wird.
      Aber da kann ich leider keinen tiefgehenden Support geben.

Comments are closed.