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

On 28 Nov 2014 at 17:47, Ruben Verborgh wrote:
> 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.

Great post. Thanks a lot for this this Ruben. This will be a very useful
reference.


Have a nice weekend,
Markus



> - 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 20:16:28 UTC