Tag Archives: wiki

Wikification: thinking in public

Over the last 3 years, I’ve stored many small snippets of information in a set of Google Notebooks. Sample topics: notes for blog posts, programming skills that I’d like to learn and preliminary (or half-baked) ideas for research or software projects. I’ve learned that:

  • Whilst Google Notebook is great for scraping information from web pages, it leaves a lot to be desired in terms of editing and presentation
  • Ideas left in private notebooks quickly become dead ideas

Yes you can publicise, tag and collaborate at a Google Notebook, but this doesn’t fit with my workflow – or that of many others, I suspect. So, I’ve taken as much of the material as I want to make public and dumped it on a wiki at Wikidot.com. By the way, if you’re looking for a free hosted wiki with plenty of features, you could do a lot worse.

If anything there interests you enough to add material, let me know and I’ll invite you as an editor (you’ll need to create a wikidot account if you don’t have one).

DokuWiki, PubMed and Ruby

I recently built a wiki for a research group using DokuWiki, one of my favourite wiki packages. As with many other wikis, developers have extended its functionality by writing plugins. Some of these are excellent, allowing users to generate lots of content with a minimum of syntax. For example, using the PubMed plugin, you type this:

{{pubmed>long:15595725}}

and the result is this:
pubmed

Which got me thinking. Assuming that you’ve searched PubMed and retrieved a bunch of references in XML format, how might you generate text in DokuWiki syntax, to paste into your wiki? Here’s the small parser that I wrote in ruby:

#!/usr/bin/ruby
require 'rubygems'
require 'hpricot'

h = {}
d = Hpricot.XML(open('pubmed_result.xml'))

(d/:PubmedArticle).each do |a|
  (h["=== #{a.at('DateCreated/Year').inner_html} ==="] ||= []) << "{{pubmed>long:#{a.at('PMID').inner_html}}}"
end

puts h.sort {|a,b| b<=>a}

Nine lines – how cool is that? It uses Hpricot to parse the XML and creates a hash of arrays. Hash key is the year, formatted to show a level 4 headline in DokuWiki; hash value is an array of PMIDs, formatted with PubMed plugin syntax. At the end we just print it all out, sorting by year from newest – oldest.

As Pierre would say – that’s it.

WikiProteins

It’s not every day that a publication in an academic journal devoted to genomics receives wide attention all over the Web. I’m referring of course to:

Mons, B. et al. 2008
Calling on a million minds for community annotation in WikiProteins
Genome Biology 9:R89.

Nor is it every day that one of the “et al.” is a WWW pioneer; in this case a certain J. Wales. I’m looking forward to seeing S. Brin and L. Page in PubMed any day now.

This is important. The early adopters and web technology enthusiasts can evangelise for years about concepts such as community annotation of scientific data using wikis. However, the sad fact is that the majority of researchers in academia will pay no attention whatsoever until the work appears in what they consider a reputable source: i.e. an academic journal. This despite the fact that the readership of most such journals is miniscule compared to the web audience. Go figure.

Wiki Professional is here and of course, Deepak is all over it already.

Update: Euan takes a look at the implementation and is less than impressed.

An R Wiki

It’s been ages since I visited the R website, so I don’t know how long they’ve had a wiki. It’s built using DokuWiki, one of my personal favourites.

This is a great leap forward for R documentation, which is somewhat notorious for being (a) difficult to find and (b) difficult to understand when you find it. If you’re a power R user and have a spare moment, please contribute.