31

我正在寻找一个通用的图形数据库解决方案,它具有现有的 .NET 兼容基础架构和经过验证的跟踪记录。

我在 Google 和 SO 上找到了几个选项的链接,但没有很多关于现实世界应用程序中现有实现和使用的信息。

我还考虑过在文档数据库(如RavenDBMongoDB)和专用三重存储或 RDBMS(如 SQL)之间使用混合,并扩充数据存储以支持我想要的功能。然而,这可能是相当多的工作,我希望其他人已经完成了。

我看过的:

  • Trinity - 这是由 Microsoft 制作的,文献表明它听起来很棒,但我找不到下载链接,并且发布页面显示“Trinity 软件包目前仅用于 Intranet 访问。”。

  • db4o - 这是一个面向对象的数据库,原生支持 .NET 和 Java。它似乎作为图形数据库销售,但我不确定“图形”结构/操作是隐式还是显式(或者它是否提供比任何其他文档数据库更多的功能)。

  • TinkerPop - 这个项目看起来正是我正在寻找的,但 github 源代码似乎只在 Java 中。这张来自 graph-database.org 的幻灯片讨论了 .NET 版本,但我找不到它们。

  • CloudGraph - 这听起来不错,但似乎不存在。

  • GiraffeDB - “GiraffeDB 是 .NET 框架 4.0 的强大图形数据库系统,能够以高效且可访问的方式表示复杂的语义”正在“正在规划中”。

  • AllegroGraph 4.7 - 这似乎相当成熟(支持 SPARQL 和 Prolog 以及许多客户端接口),但是是封闭源代码。我显然会对一个我没有听说过的闭源项目持怀疑态度。

还有一些看起来很有前途的 Java 项目(HyperGraphDBNeo4j,但我还没有看到任何现有的 .NET 集成。我并不完全反对使用 Java 解决方案并自己做那些跑腿的工作,但又一次,我更喜欢一个经过验证的解决方案,它可以为我节省最多的时间。

4

6 回答 6

14

尝试在 Mongo 中实现图形数据库是一个之前尝试过的兔子洞。

请参阅来自 TinkerPop 用户组的此消息:

Microsoft 的 Trinity graph 是一个内部项目,无法下载:

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

于 2012-07-07T00:09:33.680 回答
3

新的/最近的/未提及的发现: VelocityDB ,它是一个原生的 .net 实现!

于 2014-08-20T17:36:31.890 回答
2

www.neo4j.org 有几个功能强大的 .NET 客户端库,请参阅http://docs.neo4j.org/chunked/snapshot/tutorials-rest.html,让您可以从 .NET 内部访问它。您可能想在 groups.google.com/group/neo4j/ 上提出更多问题

/彼得

于 2012-07-03T16:42:51.590 回答
2

Trinity 现已向公众开放 - http://www.graphengine.io/

于 2015-05-18T19:30:20.157 回答
2

2017 年更新:Cosmos DB现在在 Azure 中提供了一个很好的混合图形数据库解决方案。Cosmos DB 在 2017 年 4 月的 Build 大会之前被称为 Document DB,当时微软宣布了图形和其他功能。因此,您可以将其用作经典文档数据库,您现在可以将数据存储为图形并使用 TinkerPop/Gremlin 进行查询。在 .NET 中,您可以使用Microsoft.Azure.Graphs API 对其进行查询。

如果您需要在 Azure 之外运行,则需要查看其他选项,例如 Neo4j。

于 2017-06-15T15:25:18.217 回答
0

另一种选择是 Sparsity Technologies 的 DEX,它提供了原生 .NET API:

http://www.sparsity-technologies.com/dex

您可以从以下位置下载:

http://www.sparsity-technologies.com/dex_downloads

于 2013-02-07T08:39:13.353 回答