- From: Pierre-Antoine Champin <pierre-antoine.champin@liris.cnrs.fr>
- Date: Fri, 30 Sep 2011 15:25:43 +0200
- To: Andy Seaborne <andy.seaborne@epimorphics.com>
- CC: "public-rdf-wg@w3.org" <public-rdf-wg@w3.org>
On 09/30/2011 12:31 PM, Andy Seaborne wrote: > > > On 29/09/11 15:42, Pierre-Antoine Champin wrote: >> Hi all, >> >> as Richard asked me during the telecon of 09-29, I'll try to pinpoint >> what bothers me in the SPARQL DATASET proposal. >> >> One such point is the notion of *default graph*, which works well >> with SPARQL but, IMHO, is not relevant in RDF Concepts. > > DAWG tried to use a different word for "default" recognizing it brought > various intuitions. It was "background" at one time, to suggest the > unnamed graph was the stuff the app believed, and the named graph were > named so you could choose to accept the assertion or not. > > But the word "default" crept back in, and was the most used community > word, so it returned to the spec. Yes, I noticed that the URL of section 8.2.1 Specifying the default Graph is http://www.w3.org/TR/rdf-sparql-query/#unnamedGraph :) >> In general, a *default value* is the value to use for a parameter when >> no value is explicitly specified. >> >> In the case of SPARQL, this is the value corresponding to the GRAPH >> keyword when this keyword is not used. E.g. >> >> SELECT * WHERE { >> :pa foaf:knows ?s . // a triple from the default graph >> GRAPH ?s { ?s foaf:name ?n } // a triple from a named graph >> } >> >> But an equivalent query could be written >> >> SELECT * WHERE { >> GRAPH :pa { :pa foaf:knows ?s } >> GRAPH ?s { ?s foaf:name ?n } >> } > > Not quite equivalent : GRAPH ?var ranges over all the URIs of the (uri, > graph) pairs, but not the default graph. Noted... >> provided that I knew that the default graph of my SPARQL engine is :pa . >> >> A such, I consider the default graph to be a *property of the SPARQL >> engine* used to query the data, rather than a property of the data itself. > > I could accept saying it is a property of the SPARQL service. From the > client POV, engine vs data is not very relevant. It can only use a > service and a service offers the combination of the two. That is if you limit the notion of SPARQL service to an online SPARQL endpoint. As a programmer, I use a SPARQL library ("service"), but I have access to the data otherwise... >> The fact that the SPARQL rec had to define all together the data >> structure and the querying process can explain that they ended up with >> the dataset proposal as it is. > > >> I agree with Richard that we should integrate a proposal that has >> already been widely implemented and tested, rather than reinventing the >> wheel. However, keeping default graphs looks like keeping the bath water >> with the baby... >> >> I would prefer, in a nutshell, if the proposal was to : >> >> * define an RDF DATASET as a set of named graphs (uri, graph) -- i.e. >> remove the default graph; >> * explain that a SPARQL DATASET, used by a particular SPARQL engine, is >> an RDF DATASET where one of the named graphs is also considered the >> default graph in order to allow for shorter queries. > > A potentially useful distinction (not the specific words). But I would > want the multi-graph syntax to include the default graph. I could probably live with that. Anyway, if I want to load a (plain) turtle file in my datastore, I have to figure out under which name I will store it... >> I know that SPARQL does not require that the default graph is *also* >> present as a named graph (though it does not forbid it), so the >> statement above is slightly more constraining than what SPARQL specifies. >> >> So here are a few questions to SPARQL implementers: is it more frequent >> that the default graph also has a URI, or that it doesn't? Would it be >> hard to ensure that it has one? Would that break something in existing >> applications? > > Most frequent : it has no name. The most frequent case is querying one > graph, nothing else in the dataset. I you loaded that graph from a URL, it kind of has a name after all, no? I you created it from scratch, it may be a little more tedious... pa > Andy > >> >> pa >> >> >> PS: if I didn't make myself clear about the default graph being a >> property of the engine rather than the data, please consider the >> following thought experiment: >> >> Imagine a world where SPARQL would have defined, as part of a dataset, >> the notion of *default resource*, so that I could write >> >> SELECT ?friend WHERE { >> foaf:knows ?friend >> } >> >> Would we feel compelled to include the default resource in RDF Concepts? >> >
Received on Friday, 30 September 2011 13:26:18 UTC