I am looking for a generic graph database solution that has existing .NET-compatible infrastructure and a proven track record.
I’ve found links to several options on Google and SO, but not a lot of information on existing implementations and usages in real-world applications.
I’ve also considered using a hybrid between a document DB (like RavenDB or MongoDB) and a dedicated Triple Store or RDBMS (like SQL), and augmenting the data store in order to support the functionality I want. However, this is probably quite a bit of work, and my hope is that someone else has done it already.
What I’ve looked at:
-
Trinity – This one is made by Microsoft and the literature makes it sound great, but I couldn’t find a download link, and the Release page says “The Trinity package is currently for intranet access only.”.
-
db4o – This one is an Object-Oriented DB with native support for both .NET and Java. It seems to be marketed as a graph DB but I’m not sure if the ‘graph’ structure/operations are implicit or explicit (or if it offers more than any other document db).
-
TinkerPop – This project looks like exactly what I’m looking for, but the github sources seem to be only in Java. This slideshare from graph-database.org discusses .NET versions, but I haven’t been able to find them.
-
CloudGraph – This sounds great, but appears to not exist.
-
GiraffeDB – “GiraffeDB is a powerful graph database system for the .NET framework 4.0, capable of representing complex semantics in an efficient and accessible way” is “currently undergoing planning”.
-
AllegroGraph 4.7 – This appears to be pretty mature (supporting SPARQL and Prolog with a number of Client Interfaces), but is closed source. I’m obviously going to be skeptical of a closed-source project that I haven’t heard anything about.
There are also a few Java projects that look pretty promising (HyperGraphDB and Neo4j, but I haven’t seen any existing .NET integration of either. I’m not completely opposed to using a Java solution and doing that legwork myself, but once again, I’d prefer a proven solution that saves me the most time.
there are several capable .NET client libs for http://www.neo4j.org, see http://docs.neo4j.org/chunked/snapshot/tutorials-rest.html that let you access it from inside .NET. You might want to ask more questions on groups.google.com/group/neo4j/
/peter