/tenacious-g

Graph persistence using GRATR

Primary LanguageRubyMIT LicenseMIT

tenacious_g
===========

This is a persistent graph library, extending Gratr.  It is meant to be a simple thing: 

  [davidrichards]$: tg
  Loading Tenacious G (Persistent Graphs Database)
  >> @g = Digraph.new
  => GRATR::Digraph[].
  >> @g.add_edge!(2,3)
  => GRATR::Digraph[GRATR::Arc[2,3,nil]].
  >> @g.save('some_name')
  => nil
  >> @g = Digraph.new
  => GRATR::Digraph[].
  >> @g.add_edge!(2,3)
  => GRATR::Digraph[GRATR::Arc[2,3,nil]].
  >> @g.save('some_name')
  => nil
  >> @g1 = TenaciousG.load('some_name')
  => GRATR::Digraph[GRATR::Arc[2,3,nil]].
  >> @g1 == @g
  => true
  >> @g.add_edge!(1,2)
  => GRATR::Digraph[GRATR::Arc[2,3,nil], GRATR::Arc[1,2,nil]].
  >> @g.name
  => "some_name"
  >> @g.location
  => "/Users/davidrichards/.tenacious_g/some_name.graph"
  >> @g.save
  
I include GRATR and TenaciousG, so that it's a little more convenient to work with these things.  I wrote this to make using graphs with machine learning a simpler decision.  As long as a graph can fit in memory, this is probably a good choice.  When things are too big for that, or slowing down from all the computation you need to run, check back in to see if I have my distributed graph database finished yet.  

There is a console, shown above (tg), but this was mostly intended to be included in other libraries or applications.  

COPYRIGHT
=========

Copyright (c) 2009 David Richards. See LICENSE for details.