首页 文章

应用程序可以直接针对 GraphDB 的底层 RDF4J 数据库进行编程吗?

提问于
浏览
1

根据GraphDB 文档,可以直接针对其底层 RDF4J 数据库进行编程。我的直觉违背了两个独立的应用程序可以同时访问相同的数据库文件。这是否正确处理,包括并发写入?

我相信 GraphDB 使用较旧的 Sesame 2.9 版本。使用最新的 RDF4J 2.1 版本更改了文件格式吗?或者我需要使用这个较旧的芝麻版本吗?

我假设,如果以上所有都是正确的,那么与 HTTP 连接相比,有一个很大的性能加值。有没有可用的测试结果?

2 回答

  • 2

    我觉得这里有点混乱。 GraphDB 没有“底层的 RDF4J/Sesame 数据库”。它实际上是另一种方式:RDF4J/Sesame 为 RDF 数据库提供标准化的 Java 访问 API,GraphDB 是此 API 的实现。

    您可以使用 Sesame API 以编程方式访问 GraphDB 存储,如 GraphDB 文档中所述。 Sesame 提供了访问本地数据库(嵌入在您自己的应用程序中)或远程数据库(可通过 HTTP 访问)的方法。正如您所推测的那样,您无法使用多个应用程序在本地访问数据库 - 如果多个应用程序需要访问,您应该让两个应用程序通过 HTTP 访问数据库(或者让一个应用程序直接与另一个应用程序通信,但这需要一个很多自定义编码)。

    至于 Sesame 2.9 vs RDF4J,as @ChristophE correctly 指出,有一些差异(详见移民指南),因此你的 GraphDB 版本可能还不适用于 RDF4J。然而,下一个即将发布的 GraphDB 将支持 RDF4J。

    至于性能:当然,与直接访问相比,HTTP 上的通信会导致性能损失。我害怕,我没有确切的数据。然而,Sesame/RDF4J 本身以及 GraphdB 都被设计为尽可能地减少这种惩罚,所以它并不像你想象的那么糟糕。

  • 1

    我相信 GraphDB 使用较旧的 Sesame 2.9 版本。使用最新的 RDF4J 2.1 版本更改了文件格式吗?或者我需要使用这个较旧的芝麻版本吗?

    Sesame 2.9 仍然使用 Java 7,Sesame 4 和 RDF4J 使用 Java 8

    文件格式没有改变,但是编程 API 在 Sesame2 和 4 之间发生了很大的变化,所以如果 GraphDB 真的使用 sesame 2.9 而不是你需要使用相同的版本。

    了解更多信息,请参阅http://docs.rdf4j.org/migration/

相关问题