Today we actually used this thing briefly during an Ovid/Medline training class, and although many drawbacks were quite apparent, it seems to show real promise in fulfilling its main objective. The main drawback during the course was that it was only used for the MeSH part of the training session, after which the actual Ovid interface was used (with its own MeSH mapper and browser), so that might have confused folks. Hard to know, but it seemed jarring to go from one modality to the other.
In any case, here's a simple summary: we load up a copy of MeSH into memory (titles and tree structures) and store a little more in a database (scope notes etc.). A java servlet presents a user interface where you can enter terms from MeSH, and then behind the scenes use the graphviz toolkit to render a readable graph layout into an SVG source file based on the user's terms, tree structures roles for those terms, and user preferences. The SVG source file is rendered (via xslt) into a birdseye view with a little you-are-here box, and a separate fullsize view, and between the two you can navigate around the full graph display. javascript handles user events, such as scrolling, and clicks on MeSH terms call for relevant scope notes, etc., from the server which is passed back as simple xml and parsed in javascript into a little popup with more detail and more clickable links.
There are _many_ things it does not yet do, foremost among them any type of proper term mapping for synonyms, obsolete terms, stemming, etc. We'll probably add those things in soon because they're not too hard, and it's not too useful without it (you have to type in terms exactly right now). There are some yawning UI gaps (like a proper scroll-and-zoom arrowset like on map sites) to address. There are also many features we'd like to add, but we're going to focus on improving it according to the teaching objective, and when we've gotten far enough along maybe we'll look for some dedicated development funds to take on some bigger objectives.
In the meantime, though, it's already pretty fun to play with (remember when "stickiness" was important on a web site? this is way sticky, especially if you care about MeSH or Medline at all...). It's on a development machine for which I can't guarantee uptime, but so far it's pretty reliably available, so if a few of you hit it concurrently it shouldn't explode. Some of the relevant code is linked from the technical discussion page, but it's nowhere near any sort of release quality, so feel free to borrow ideas, but not the code (yet!).
Sigh... this is the hard part. If you want to play with it, you'll have to (gulp!) install Adobe's SVG Viewer and run it from IE on a modern win* machine. I know, I know, it's just that there are _no_ reliably useable alternative SVG viewer implementations available yet, so this is the only option. Trust me, I'm watching the alternatives (moz, batik, kde, corel, etc.), and not a single non-proprietary version is useful enough to see this app yet, so we're developing to the adobe+ie "standard", even though that's already 18 months old.
Anyway, have a look, and tell me what you think, it's here.
url, server, etc., all subject to change, and keep in mind, it's alpha quality! :)
For me, the exciting thing about this project (other than hopefully helping folks understand MeSH), is how powerful SVG is, even with immature implementations and, face it, an immature spec (the first two items on the SVG 1.2 working draft are definitely pre-reqs before considering SVG 'mature' imho). I'm no graphics programmer... with only basic understanding of the data structures, a rough awareness for the user's knowledge gap, some i-school training in info visualization techniques, dot, and some basic xslt+javascript, this was remarkably easy to put together. Maybe that sounds weird... lemme put it this way, I tried to do something like this inside a java applet back in 1995 and was overwhelmed by lower-level issues like buffering and painting primitives, etc., but compared to that this was _simple_. You think up a new function/event/decoration, you draw it out, you add the javascript handler, that's it. Pretty darned cool, and liberating to boot.
-dchud