- From: Markus Lanthaler <markus.lanthaler@gmx.net>
- Date: Fri, 28 Nov 2014 21:16:01 +0100
- To: "'Hydra'" <public-hydra@w3.org>
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