Prefuse, Python and Sqlite

|

Prefuse Logo.gif In a previous life, I was early on the bandwagon of prefuse, an innovative information visualization toolkit implemented in Java. A key element was the programming model that systematically organized the transformation of data into graphical elements. Subsequent work identified and extracted information visualization design patterns, including the usage of structured tables and SQL-like query facilities.

SQLite Logo.gif While it would be hard to top the quality of prefuse as a Java toolkit, I've always wondered what a Python adaptation would look like. The graphic primitives aren't that big a deal, and Python is rich enough to easily emulate any of prefuse's control flow mechanisms. The structured tables and SQL facilities always bugged me though, because it seemed to me that you could easily use an embedded relational engine, like SQLite, to support those capabilities. The embedded DB could provide a richer query language than prefuse's, higher performance querying, and persistent storage allowing you to work with bigger datasets.

I've been mentally kicking this issue around and digging into the prefuse source code to see what exactly was implemented. I think I've got a relatively straightforward way to emulate prefuse's table facilities in a stock Python install. This is starting to feel like a worthy side project.

python-logo.gif The result wouldn't be completely superfluous as I think there are some unexplored issues in terms of the prefuse model and interaction. Also, the combo with Python might lead to some increased flexibility due to the language change, and a higher level of accessibility due to an interactive command loop and Python's batteries included. Of course you'd lose the ability to generate applets, but frankly that's probably a small loss.

About this Entry

This page contains a single entry by C. Ross Jam published on June 23, 2010 11:01 PM.

Ars Technica on iOS 4 was the previous entry in this blog.

The Choice Is Yours is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.