Thursday, January 1, 2009

Using Dynamic Page Listing (DPL) with MediaWiki to help with research goals and tasks

For about a year now, I have been using Dynamic Page Listing (DPL) for a variety of purposes on our private lab wiki (hosted by OpenWetWare). I find it very useful for keeping track of ideas, grant writing, and assigning goals and tasks, among other things. In this post, I want to talk about using DPL for goals and tasks, which I think is a system that could help out other people who want to carry out open science using MediaWiki with the DPL extension installed.

I met with an ECE undergraduate student today, Caleb Morse, and we decided to try out a small "open research" project on OpenWetWare. We are following advice in responses to my earlier blog (see the friendfeed discussion), and are going to try to do a small project completely openly. Thus, for this project we're starting from scratch and going to try to record everything on the wiki and other various public resources (to be determined: blogs, etc.). Our hub for this project will be this page on our lab wiki, and as we get it going, I'll describe it in a future post. We're going to use DPL Goals to help us in this project, and so today I set them up for Caleb on OWW and I also wrote an OWW help page and an example user to help others who may want to try it out.

What are DPL Goals?

What this system amounts to is really just a method for tagging and displaying tags with simple "AND / OR" logic. The only reason I have to write this article is because there isn't yet (as far as I know) a good way for tagging and good, simple tag filtering in MediaWiki. DPL is really good at doing this, but it's a powerful and complicated extension, so it's a little confusing to set up the system I'm describing here. The system basically works like this:
  • Pages are created to describe goals or tasks. Categories are added to these pages to (a) mark them as a goal, (b) assign them to a specific person, and (c) optionally categorize them further, such as "high priority."
  • Task List or Goal List pages are created to display any pages across the entire wiki database which have been marked as goals or tasks for a specific user. This listing page updates dynamically whenever another page on the wiki is added.

The following figure shows a screen shot of an example page for listing goals and task pages. Each of the links is to a separate page somewhere on the wiki (it doesn't matter where) that can have a lot of detail about a research goal, or could have no text at all, with the title simple being a task reminder.

There are four lists presented in the previous figure. The wiki code for this page has four blocks of DPL code to generate the lists automatically and tags (categories) are added or removed from pages around the wiki, the list will be updated (when the page is refreshed). Two of these blocks of DPL code are shown in the next figure.

You can see that the code isn't too complicated, but it's not completely straightforward either. I should note that this is just one particular way of displaying pages. DPL is quite powerful, both in it's extraction of pages (and bits of pages) and in the ability to format the results. What I am showing is a very simple usage with just page titles that tends to work well for me.

The DPL code necessary for generating the display page is a little bit complicated, but only needs to be generated once (and you can tweak the display later if you like). In contrast, the wiki code needed to make new pages show up in the list is very simple--This is why I think the method can be helpful to me and potentially others. I show in the next picture the basic use of MediaWiki categories, which is not too complicated.

The use of templates, which I won't show here, can make it even easier. The template method is actually what I use, and it's exceedingly easy to remember and quick to use. Furthermore, if OWW or your site decides to make tagging easier (check boxes, or tagging like on other sites), the method should get even easier. Along those same lines, what I'm describing is still a kludge and a much better method may already exist or may be introduced soon. I think it's easy enough to do and has been so helpful to me that I think it's worth implementing if you don't have a better option.

What next?

As I mentioned above DPL is very versatile, and what I'm describing is a very limited application that has been very helpful to me. I use the same basic paradigm for many purposes on our private and public wiki. Many of the pages on OpenWetWare tend to be long articles, in the style of wikipedia. On the other hand, scientific research tends to generate bits of information here and there--this makes it much more convenient for me to make small entries that have some tags (aka labels, categories) so I can aggregate them on some other page. I'd say I spend 80% of my private wiki time with this method. For example, when grant writing, I'll take notes without worrying where I list the page, and then I'll just add an "NIH R01" tag to the page so I can find it later. If you use MediaWiki and especialy OWW, I think you'll like this method. Here are two more links to DPL uses I have on OWW public wiki:
  • An aggregation of ideas I have for possibly improving our Junior Lab course next year.
  • Various pages with ideas for improvements to the wiki (I don't really use this very often, but it's a good example of what can be done easily).

1 comment:

  1. Can we use DPL lists with version mediawiki 1.4.6?


Creative Commons License
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License.