Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why do we need Fuseki Server?

I am developing an application, which is using triple store (Jena TDB). It is clealy mentioned that TDB Supports SPARQL update and Query. Also, I understood that Fuseki is SPARQL server, that supports Update and Query as well. I do not find answer do the following questions:

  1. If TDB supports SPARQL query and update, then why we need Fuseki?
  2. Can I store my data in TDB and then access it in my application without using Fuseki?

Any response from your side will be valuable.

like image 954
Haroon Rashid Avatar asked Mar 16 '23 23:03

Haroon Rashid


1 Answers

To expand on the comments you already received

TDB is an in-memory database backed by persistent disk storage which runs within a JVM and is accessible only within that JVM. TDB stores can only be accessed by a single JVM at a time (and TDB will enforce this restriction) so you cannot use TDB on its own if you need to share data between multiple JVMs

Fuseki is a web server that implements the SPARQL Protocol which is a standard way to expose a RDF database for querying/updating via HTTP. TDB is the database used by default underneath Fuseki though Fuseki can be configured on top of other RDF databases if desired.

Since Fuseki runs in a single JVM it can be used to share access to a TDB database with multiple applications because those applications access Fuseki via HTTP and Fuseki handles all access to the TDB database within its JVM. Additionally since the SPARQL Protocol is a standard you can use Fuseki to allow non-JVM applications to access your TDB database since they simply interact with Fuseki via the protocol and don't need to know how to interact with TDB directly.

To summarise:

  • If you only ever need to have one application access a TDB database then you can use TDB directly
  • If you need to have multiple applications (or non-JVM) applications access a TDB database then use Fuseki over TDB
like image 117
RobV Avatar answered Mar 21 '23 11:03

RobV