The Botany of Desire

Finished off The Botany of Desire tonight. So far this blog has had alot to do with what I'm reading and have read, which got me thinking about the smartest way I could record what I read and what I learned from it, to aide my shoddy memory. Right now most of that documenting happens the old-fashioned way, with pen and paper in my sketchbooks. But when I was living in Miami I started on a project I called Brainiac, which would help me record and organize my thoughts about books and articles. Brainiac is built on MySQL and PHP and is functional now, but weakly so. Tonight I spent some time thinking about how to make it better. What might be neat is if the interface was built in Flash, and the database would output XML for the interface to parse. The interface would be graph-based, so that you could explore the various connections and relations between any two documents, or browse from a given document out to the rest of the collection. I did a bunch of research on the web to see what automated graph node positioning algorithms were, and it turns out that problem is far from trivial, although I could've figured that out if I had thought about it for a minute. There has been a large amount of work put into graph layout however, and some interesting algorithms have been devised. One of the coolest is called classes of algorithms is referred to as force-directed in the literature. Basically you assign a weight to each node, and strengths to each "spring" connecting any nodes, then you just place the nodes randomly and let them go. The physics of the system will naturally "pull" the graph to a low-energy state, which has the side effect of satisfying alot of common graph layout constraints at the same time. What I probably should do first is flesh out the current dataset residing in Brainiac a little further, since it's sparsely-connected in its current form. From there I'd have a good basis to experiment with different enhancements to the interface or system over all.