我正在开发一个使用三元存储(Jena TDB)的应用程序。提到了TDB Supports SPARQL更新和查询。另外,我知道Fuseki是SPARQL服务器,它也支持Update和Query。我找不到答案,请执行以下问题:


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


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

最佳答案

扩展您已经收到的评论

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

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

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

总结一下:


如果您只需要一个应用程序访问TDB数据库,则可以直接使用TDB
如果您需要多个应用程序(或非JVM)应用程序访问TDB数据库,请在TDB上使用Fuseki

10-06 06:39