我在Google和SO上找到了几个选项的链接,但没有关于现实应用程序中现有实现和用法的大量信息。
我还考虑过使用文档数据库(如RavenDB或MongoDB)和专用的三重存储或RDBMS(如SQL)之间的混合,并扩充数据存储以支持我想要的功能。然而,这可能是相当多的工作,我的希望是其他人已经完成了它。
Trinity - 这是由微软制作的,文献听起来很棒,但我找不到下载链接,而发布页面上写着“Trinity包目前用于内部网访问只有“。
db4o - 这是一个面向对象的数据库,本机支持.NET和Java。它似乎作为图形数据库销售,但我不确定“图形”结构/操作是隐式还是显式(或者它是否提供比任何其他文档数据库更多)。
TinkerPop - 这个项目看起来正是我正在寻找的,但github源似乎只是在Java中。这个slideshare from graph-database.org讨论了.NET版本,但我找不到它们。
CloudGraph - 听起来不错,但似乎不存在。
GiraffeDB - “GiraffeDB是一个功能强大的.NET框架4.0图形数据库系统,能够以高效且易于访问的方式表示复杂的语义”目前正在进行规划“。
AllegroGraph 4.7 - 这似乎相当成熟(支持SPARQL和Prolog以及许多客户端接口),但它是封闭源代码。我显然对一个我没有听说过的闭源项目持怀疑态度。
还有一些看起来很有前途的Java项目(HyperGraphDB和Neo4j,但我还没有看到任何现有的.NET集成。我并不完全反对使用Java解决方案,并自己做了这项工作,但我再次,我更喜欢一个经过验证的解决方案,可以节省我最多的时间。
答案 0 :(得分:14)
尝试在Mongo中实现图形数据库是一个以前尝试过的兔子洞。
请参阅TinkerPop用户组的此消息:
Microsoft的Trinity图是一个无法下载的内部项目:
Neo4j服务器(http://neo4j.org)与Romiko和Tatham的.NET客户端(http://hg.readify.net/neo4jclient/wiki/Home)配对是一种流行的组合。
Neo4j扩展到超过320亿个节点(http://blog.neo4j.org/2011/03/neo4j-13-abisko-lampa-m04-size-really.html),并且它有一个活动用户组(https://groups.google.com/forum/?fromgroups#!forum/neo4j)。
Neo4j Server与TinkerPop的Rexster非常相似。
事实上,Peter Neubauer是Neo4j和TinkerPop的联合创始人之一,两个项目都有非常相似的API。因此,如果TinkerPop正是你想要的,除了Java,那么请使用Neo4j Server和它的一个.NET客户端:
你甚至可以通过内置的Gremlin插件在Neo4j服务器上运行TinkerPop的Gremlin:
更新:还有Blueprints.NET - https://github.com/Vanaheimr/Blueprints.NET
答案 1 :(得分:3)
新/最近/未提及的发现:VelocityDB这是一个原生的.net实现!
答案 2 :(得分:2)
www.neo4j.org有几个功能强大的.NET客户端库,请参阅http://docs.neo4j.org/chunked/snapshot/tutorials-rest.html,允许您从.NET内部访问它。您可能想在groups.google.com/group/neo4j /
上提出更多问题/彼得
答案 3 :(得分:2)
三位一体现在可供公众使用 - http://www.graphengine.io/
答案 4 :(得分:1)
2017更新:Cosmos DB现在在Azure中提供了一个很好的混合图形数据库解决方案。 Cosmos DB曾被称为Document DB,直到2017年4月的Build会议,当时微软公布了图形和其他功能。因此,您可以将其用作经典文档数据库,现在可以将数据存储为图形并使用TinkerPop / Gremlin进行查询。从.NET,您可以使用Microsoft.Azure.Graphs API查询它。
如果您需要在Azure之外运行,那么您需要查看其他选项,例如Neo4j。
答案 5 :(得分:0)
另一个选择是来自Sparsity Technologies的DEX,它提供了一个原生的.NET API:
http://www.sparsity-technologies.com/dex
您可以从以下网址下载: