Sunday, January 14, 2007

Visualizing People and Relationships

While I'm thinking about digraphs and visualization, I want to describe another idea for a website I have been mulling over. It would offer a way to see the relationships between people using a digraph rendering engine.

There would be a central organizing theme for a given rendering. It might be the current political scandal, an emergency response plan, a corporate organizational chart, or any other theme by which people are related to each other. Each theme would have a rendering of the current members and their relationships, as a digraph. Users could add people (nodes) and relationships (edges). Relationships could have supporting documentation in the form of URLs (useful for scandal tracking).

The UI would not need to be very complicated. To add information, you just need a simple form with 2 fields for node names, a description of the relationship, and optional URLs to supporting documentation. You could get fancy with auto-completion of the node names, but that's just a detail. Editing a node/edge uses a similarly simple form. Each theme page would also have an RSS feed, of course, of changes.

It would also be useful to be able to see the themes a node was involved in, as an alternate view. So an individual lawmaker might show up in a theme for a campaign and a general legislative topic.

As with any social site, suppressing malicious input might be tricky. Using the wikipedia model of allowing anyone to edit anything, flag content as suspicious, and block edits to prevent flame-type wars might be enough.

All of the graphs should be available as image files. The question is, are they rendered on the fly or on some regular basis? That would depend on how expensive the rendering is. Obviously they only need to be re-rendered after a change, so we want to cache the output files.

2 comments:

patrick said...

The UI sounds easy enough, and I think I can picture the graphs. What I'm curious about is how someone would interact with the visualizations. It seems to me that that's where the power really comes from -- the ability to turn a set of relationships around in space and contemplate its structure, and zoom in on unexpected relationships, maybe even add a new connection among nodes or add new detail, etc.

Doug said...

Perhaps the graph could be an image map, or rendered in one of the vector languages for the web, so the nodes could be clickable. Then clicking on a node could "re-center" the graph around that node, or highlight the edges for that node.

I would have to experiment with Graphviz to see what sort of output it can produce.