Data-Driven, Recursive Interfaces for Graph Data
datasyndrome.com
datasyndrome.com
I've developed a similar fascination with graph data over the past couple of years. My particular affliction has focused on treating program code as data (nodes) and stitched together with edges.
For visualization I was considering generating partial 3D models using something like StructureSynth and putting them in a 3D world like opencobalt. Also stumbled across Orange (http://www.ailab.si/orange/) which looks useful too.
I used it here to make a web version of PigPen: http://github.com/rjurney/Cloud-Stenography http://vimeo.com/6032078 http://wiki.apache.org/pig/PigPen http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.134...
But the problem that you will find eventually, and you should always be mindful of, is that nobody has solved the problem of representing arbitrary graphs and getting the sort of good performance you expect from a web service. This has been one of the big stoppers for "RDF", for instance, which by the way is still something you should check out even so if you don't immediately know what RDF is.
Intuitively, while I will admit I'm not an expert on the topic (just a dilettante that has gone down some similar thought paths), the problem is that a full graph has no structure to get a hold of and take advantage of in your query. A traditional SQL table has a regular, recurring structure and obvious indexes to use to optimize the performance (and in fact this is the source of most if not all of the deviations from relational theory, IMHO). A NoSQL database strictly limits itself to what is usually the equivalent of an SQL record with one key (more or less) and a blob in it. (And some of them do various moderately fancy things with that blob, but even so, a blob.) A graph can just do anything it damn well pleases, and they do not only in theory but in practice, and that becomes difficult to deal with in practice even when the theory is beautiful.
Getting to that point through batch processing can be hard, but the infrastructure is ideally suited to it. NoSQL doesn't impede you whatsoever. It enables you to think correctly about packaging your data for recursive consumption in trivial interfaces.
Real-time large scale graph processing isn't possible, or is very hard but... its not really needed to do amazing things.
I was trying to explain the human interaction consequences of batch processing and NoSQL in presenting mined data in web applications.
If you're not into any of those things, I could explain but... its a niche. There's probably not too much point.