4

我正在开发一个使用三重存储(耶拿TDB)的应用程序。明确提到 TDB支持SPARQL 更新和查询。另外,我知道Fuseki是 SPARQL 服务器,它也支持更新和查询。我没有找到答案做以下问题:

  1. 如果 TDB 支持 SPARQL 查询和更新,那我们为什么需要 Fuseki?
  2. 我可以将我的数据存储在 TDB 中,然后在不使用 Fuseki 的情况下在我的应用程序中访问它吗?

您身边的任何回应都将是有价值的。

4

1 回答 1

7

扩展您已经收到的评论

TDB 是由持久磁盘存储支持的内存数据库,它在 JVM 中运行并且只能在该 JVM 中访问。TDB 存储一次只能由单个 JVM 访问(并且 TDB 将强制执行此限制),因此如果您需要在多个 JVM 之间共享数据,则不能单独使用 TDB

Fuseki 是一个实现SPARQL 协议的 Web 服务器,该协议是公开 RDF 数据库以通过 HTTP 查询/更新的标准方式。TDB 是 Fuseki 下默认使用的数据库,但如果需要,可以在其他 RDF 数据库之上配置 Fuseki。

由于 Fuseki 在单个 JVM 中运行,因此它可用于与多个应用程序共享对 TDB 数据库的访问,因为这些应用程序通过 HTTP 访问 Fuseki,而 Fuseki 在其 JVM 中处理对 TDB 数据库的所有访问。此外,由于 SPARQL 协议是一个标准,因此您可以使用 Fuseki 来允许非 JVM 应用程序访问您的 TDB 数据库,因为它们只需通过该协议与 Fuseki 交互,而无需知道如何直接与 TDB 交互。

总结一下:

  • 如果您只需要让一个应用程序访问 TDB 数据库,那么您可以直接使用 TDB
  • 如果您需要让多个应用程序(或非 JVM)应用程序访问 TDB 数据库,请使用 Fuseki over TDB
于 2015-05-26T08:31:23.023 回答