I was wondering if anyone had any advice on this. This is not to study graph theory; I'm using the graph to represent a problem domain. The graphs could be arbitrarily large, and could easily have millions of nodes, and most nodes have a substantial amount of data associated with them. Obviously I don't want a whole such graph in memory at once, so libraries the just deal with in- memory graphs are out.
I know I could implement this with a relational DB, and I'd be fine with a library that was built on top of one. But I'm hoping for specialzed behavior useful for graphs. For example, suppose I have a set of nodes called A. It would be useful to know if any of these nodes are connected by paths that include no nodes in A. I could, of course, do that by reading from the database and following the paths, but I clearly don't want to do that. I would want instead to somehow cache the outside connectedness relationship between different nodes of A. But then what happens if something changes elsewhere. How is the cache for A notified, and can it be updated efficiently using graph theorems, rather than regenerated? It's very tricky; that's why I hope someone else has done it. I'm guessing no. Carl Banks -- http://mail.python.org/mailman/listinfo/python-list