C# gremlin 服务器实现

C# gremlin server implementation

我们有一个用 C# 编写的现有图形数据库,我们正试图在其之上添加对 gremlin 查询的支持。我正在寻找成为 gremlin 图形系统提供者的文档 here,但它似乎只提到要实现的高级 类,没有文档示例。是否有任何开源项目或文档用于设置 c# gremlin 服务器来解析对图形数据库的基本请求?我在网上找到的所有示例都只与 Gremlin.NET 有关,这似乎只是为了向 gremlin 服务器发出请求,而不是为了它的实际实现。

我不太清楚你的目标是什么,所以我会尝试提供一些背景信息,希望能澄清你的情况。我注意到的第一件事是您的图形数据库是用 C# 编写的,您希望为其添加 Gremlin 支持。您对 Gremlin Server 的兴趣告诉我,您希望利用 TinkerPop 对其他查询语言的所有支持,以便您的图表可用于 .NET 域之外的其他编程语言生态系统(例如,Python、Go、 Clojure 等)。

如果所有这些都是正确的,那么您有一个重要的问题需要回答 - Gremlin traversal machine for your implementation? In other words, how will your graph written in C# process Gremlin queries? The issue of course is that the only publicly available Gremlin traversal machine that I'm aware of is the one written for TinkerPop for the JVM (which is probably one of the reasons that so many graphs are written with Java). You would need something similar to C#. Ultimately, you would need to develop some component in C# to natively process all of the Gremlin steps 在哪里并且没有文档解释如何做到这一点(主要是因为这样的项目很少见并且与其他出色的用户文档任务相比,这项工作本身将非常耗时 - 尽管我认为我承认 "all the steps" 的更好设计规范可能比 "how to process them" 更值得努力。)

我认为,从您编写问题的方式来看,您基本上已经了解了很多,并且您希望在 C# 中为您的图形实施 Gremlin 步骤。在那种情况下,这个问题更多地是关于如何通过实施 Gremlin 服务器协议来查询您的图形来利用各种编程语言驱动程序。如果是这种情况,那么 Provider Documentation 中描述了我们所能做到的最好的。如果您在您的服务器上实现该 websocket 协议,您将能够允许所有不同的 Gremlin 语言变体实现连接到您的图形。我想您在阅读该部分时需要稍微扭转一下您的想法,因为它主要是从驱动程序开发人员的角度编写的,但它确实解释了驱动程序在与服务器通信的方式中应该期望什么。

我建议您订阅 TinkerPop 开发者列表,或许可以宣布您在此项目上的工作(我认为订阅者会有兴趣知道),并根据需要在该论坛中提出后续问题。