Re: TPF and DBMSes (was Re: Hydra and Shapes)

Dear all,

For the sake of technological clarity, I will explain the definitions and give relevant pointers.
This mail should clear up all the LDF / TPF / SPARQL confusion.

- A SPARQL endpoint is an HTTP server that conforms to the SPARQL Protocol.
HTTP clients can ask SPARQL queries, the server answers with matching data.
Reference: http://www.w3.org/TR/sparql11-protocol/

- A Linked Data documents server is a server that serves documents with Linked Data.
HTTP clients can ask for the URL of a resource, and get back a representation ("dereferencing").
Reference: http://www.w3.org/DesignIssues/LinkedData.html

- A data dump server is an HTTP server that offers entire datasets as one or more larger files.
HTTP clients can ask for a dataset, and retrieve all of its contents.
Reference (examples): http://www.w3.org/wiki/DataSetRDFDumps

- A Triple Pattern Fragments server is a server that offers the Triple Pattern Fragments API.
HTTP clients can ask triple patterns, the server answers with matching data, metadata, and controls.
Reference: http://www.hydra-cg.com/spec/latest/triple-pattern-fragments/

- Linked Data Fragments are a uniform way of characterizing all interfaces to Linked Data.
As such, all of the above servers are Linked Data Fragments servers.
For instance, a SPARQL endpoint offers Linked Data Fragments
that contain matching data to specific SPARQL queries.
Not all Linked Data Fragments are Triple Pattern Fragments;
but all Triple Pattern Fragments are Linked Data Fragments.
Reference: http://www.hydra-cg.com/spec/latest/linked-data-fragments/

Given the above, it is not meaningful to talk about whether “LDF is SPARQL-compliant”.
The answer is simply: no; only SPARQL endpoints comply to the SPARQL Protocol.
Rather, we should ask the question: what interfaces allow clients to solve SPARQL queries?

- A simple HTTP client can solve a SPARQL query against a SPARQL server
  by simply asking that SPARQL query.

- A more complex client can solve a subset of all SPARQL queries against a Linked Data document server;
  for instance, through linked-traversal-based query execution.
  Some queries cannot always be answered. (Example: SELECT WHERE { ?p a foaf:Person }.)

- A more complex client can solve all SPARQL queries against a data dump server.
  Procedure: download the dump, load it into a triple store, execute the SPARQL query locally.

- A more complex client can solve all SPARQL queries against a Triple Pattern Fragments server.
  Naive procedure: download the ?s ?p ?o fragment, load it into a triple store, execute the query locally.
  Better procedure: execute the algorithms described in http://linkeddatafragments.org/publications/.

So, can all all LDF servers answer all SPARQL queries? No.
Can a simple client of a SPARQL endpoint answer all SPARQL queries? Yes.
Can a complex client of a Linked Data documents server answer all SPARQL queries? No.
Can a complex client of a data dumps server answer all SPARQL queries? Yes.
Can a complex client of a Triple Pattern Fragments server answer all SPARQL queries? Yes.

Is a SPARQL endpoint compliant with the SPARQL Protocol? Yes, by definition.
Is a Linked Data documents server compliant with the SPARQL Protocol? No, by definition.
Is a data dumps server compliant with the SPARQL Protocol? No, by definition.
Is a triple pattern fragments server compliant with the SPARQL Protocol? No, by definition.

The important difference here is that only SPARQL endpoints execute SPARQL queries themselves;
in all other cases discussed above, if SPARQL needs to be executed, the client has to do it.
The non-functional aspects of this querying process vary greatly between the server types;
some will be fast for some queries, others will be slow, others will be incomplete.
Note additionally that Triple Pattern Fragments (and other) servers are orthogonal to SPARQL.
We could equally write a client that solves a query over TPFs in query language X.

I've tried to be very explicit and (overly) exhaustive. I hope this clears up all confusion.
Should any confusion arise on this or any other mailing list, it could be a good idea to point people to this post.

Best,

Ruben

Received on Friday, 28 November 2014 16:47:49 UTC