- From: Seaborne, Andy <andy.seaborne@hp.com>
- Date: Thu, 2 Jun 2005 13:30:14 +0100
- To: "Giovanni Tummarello" <giovanni@wup.it>, <semantic-web@w3.org>
-------- Original Message -------- > From: Giovanni Tummarello <> > Date: 2 June 2005 12:34 > > Considerations about named graphs aside (which i cant help but see as a > potentially dangerous corner cutting to a general statement context > handling issue that's being prematurely pushed into the first version > of a language that should probably better serve the RDF standard and > the consensus reached so far but whatever its just me ;-) ) to your > knowledge would the current protocol allow asking something like a > remote CBD as in uriqa ? DESCRIBE, with a system that gives a CBD as the description, will do what you want. Theer are many choices for a "description" and they depend on the nature of the data (don't do a blank node closure on a large collection of FOAF - it might not be that helpful). So SPARQL does not prescribe what constitutes a "description". Andy > > We know that Sparql cannot directly evaluate that (having no recursion) > nor the Minimum Selfcontained Graph (i asked for it but was ignored). > But it says here in the specs that not only sparql can be veicled on > this protocol. I have quickly given a look but it wasnt clear to me > right away if and how i could perform a CBD request. We're very fans of > the "uri centric" remote request (our main project dbin.org is > fundmentally relying on something similar to cbd) and we'd be delighted > to be protocol compatible with somebody else at some point :-) that's > why i am wondering about this. Giovanni > > Patrick Stickler wrote: > > > > > > > On Jun 1, 2005, at 22:18, ext Kendall Clark wrote: > > > > > > > > Working Draft: SPARQL Protocol for RDF > > > > > > The RDF Data Access Working Group has released a second Working > > > Draft of the SPARQL Protocol for RDF. The draft describes a > > > protocol for conveying RDF queries from clients to query services. > > > The protocol is compatible with the SPARQL query language > > > (pronounced "sparkle") and may be used to to convey queries from > > > other RDF query languages as well. > > > > > > http://www.w3.org/TR/2005/WD-rdf-sparql-protocol-20050527/ > > > > > > The RDF Data Access Working Group is seeking feedback and comments > > > on the SPARQL Protocol for RDF from stakeholders, interested > > > parties, and potential implementors. > > > > > > Please direct all feedback to the DAWG comments mailing list: > > > > > > public-rdf-dawg-comments@w3.org > > > > > > Thanks, > > > Kendall Clark > > > > > > > > > > > > Great work! > > > > A few questions/comments: > > > > 1. All examples explicitly specify the background graph, and while > > that's of course not incorrect, it would perhaps be good if the first > > few basic examples would omit specification of a background graph to > > reflect what will most likely be the most common use case, that of a > > given SPARQL portal recieving queries without any specification of a > > the background graph, and defaulting to the default background graph > > of the portal itself. > > > > 2. The parameter for specifying the background graph should follow the > > terminology used in the SPARQL spec and thus should be named > > 'background-graph-uri' and not 'default-graph-uri' as the term > > "default graph" has no definition in SPARQL. > > > > (The above comments of course presume that the parameter for > > specifying a background graph will remain, which, per my next comment, > > may not be the case) > > > > 3. Since the SPARQL language itself provides facilities for explicitly > > specifying which graph a given query, or components of a query, should > > be evaluated against, and the query itself can (and if needed, must) > > include FROM/FROM NAMED qualifications naming the relevant graphs, why > > is it necessary to redundantly specify any graph URIs in the > > parameters? > > > > If a specific graph needs to be specified, then it seems to me that it > > would be better, as in more economical and elegant, to use the > > existing machinery in the SPARQL query language itself to identify > > those graphs rather than introducing alternative, and potentially > > redundant parameters for doing so. This also alleviates any chance of > > conflicts between the query and the parameters, such as if they > > disagree about which graph is the background graph. > > > > It seems to me that the only parameter needed is 'query', and > > everything else can then be specified as required in the actual SPARQL > > query provided to the SPARQL service. > > > > If there is sufficient justification for adding these potentially > > redundant parameters, then that should be discussed in sufficient > > detail in the specification (otherwise, they should be removed). > > > > 4. Related to the above, but actually a comment regarding the SPARQL > > spec itself, it seems there is a conflict between the FROM construct > > and the definition of a dataset, since, if the background graph is > > "unnamed", then how could one refer to it with a FROM construct? I > > think the problem here is simply with language, not an inherent flaw > > in SPARQL. > > > > It is my understanding that, while not manditory, the URIs specified > > using the FROM and FROM NAMED constructs are often expected/hoped to > > be resolvable at run time to a graph, by dereferencing such URIs, and > > that many SPARQL processors when encountering unknown graph names will > > attempt to retrieve those graphs via their URIs. That's fine, and > > demonstrates how well the OFWeb and SemWeb can be integrated on the > > basis of a shared set of URIs (let's just hope that everyone agrees > > that graphs are information resources ;-) but the bottom line is that > > a named graph is a named graph is a named graph, so if one can use > > FROM to specify the background graph of a dataset, then the background > > graph of a dataset can be a named graph (even if it need not be named > > for all queries/applications). > > > > I think that the definition of a dataset should not state that the > > background graph is necessarily unnamed, but rather than it is simply > > the background graph, such that any queries evaluated against that > > dataset, which do not specify any graph, are evaluated against that > > background graph. Now, how a given SPARQL processor knows which graph > > is the background graph for a given query is of course relevant, and I > > don't see that any major changes are needed to SPARQL to identify the > > background graph. > > > > Namely, if no FROM clause is provided, then it is left up to the > > SPARQL processor to decide which is the background graph for a given > > query. If there is a FROM clause provided, then the graph thus > > specified is the background graph for the query. Thus, it is not > > essential to stipulate whether the background graph be either unnamed > > or named insofar as the definition of a dataset is concerned, only > > that it is clear to the processor which graph is the background graph > > of a dataset when evaluating a given query. > > > > This can be fixed easily enough, I think, by changing the single word > > 'does' to 'need' in section 7 of the SPARQL spec. > > > > I.e. change > > > > [ > > There is one graph, the background graph, which does not > > have a name, and zero or more named graphs, identified by URI > > reference. ] > > > > to > > > > [ > > There is one graph, the background graph, which need not > > have a name, and zero or more named graphs, identified by URI > > reference. ] > > > > and then later, add some statement such as > > > > [ > > If a given query does not specify the background graph by > > name, using the FROM operator, then the SPARQL processor > > must decide which background graph is most appropriate > > for evaluating the query. The SPARQL processor should > > be consistent in the default background graph > > used for all queries not specifying a background graph > > explicitly. ] > > > > Of course, serialization of a dataset introduces some additional > > issues, as to how to identify the background graph. My recommendation > > would be to use any generic RDF serialization which supports named > > graphs, and define a vocabulary to describe a dataset, which specifies > > the background and/or named graphs belonging to that particular > > dataset. > > > > E.g. using TriG, the dataset from Example 1 in section 7.1 of the > > SPARQL spec could be unambiguously serialized as: > > > > @prefix sparql: <http://www.w3.org/TR/rdf-sparql-query/> . > > @prefix dc: <http://purl.org/dc/elements/1.1/> . > > @prefix foaf: <http://xmlns.com/foaf/0.1/> . > > @prefix : <http://example.com/myDatasetSerialization/> . > > > > > ds a sparql:Dataset ; > > sparql:BackgroundGraph :bg ; > > sparql:NamedGraph <http://example.org/bob> ; > > sparql:NamedGraph <http://example.org/alice>. > > > > > bg > > { > > <http://example.org/bob> dc:publisher "Bob" . > > <http://example.org/alice> dc:publisher "Alice" . } > > > > <http://example.org/bob> > > { > > _:a foaf:name "Bob" . > > _:a foaf:mbox <mailto:bob@oldcorp.example.org> . } > > > > <http://example.org/alice> > > { > > _:a foaf:name "Alice" . > > _:a foaf:mbox <mailto:alice@work.example.org> . > > } > > > > It's important to note that, in the case of serializing datasets with > > unnamed background graphs, it is necessary to give the background > > graph a name, but in doing so, it also means that by using this > > approach, serialization formats such as TriG and TriX can be used to > > serialize multiple datasets in a single TriG or TriX instance (if ever > > useful or necessary to do so) in addition to unambiguously serializing > > a single dataset. > > > > (I've been generally uncomfortable with processors naming unnamed > > graphs, for the sake of round trip integrity and consistency, but I've > > come to see this approach as the least expensive and disruptive to > > existing tools and processes, and one which maximally exploits the > > RDF machinery. Earlier comments regarding serialization were also > > based in the > > understanding that background graphs must be unnamed, hence > > introducing a problem when directly parsing/syndicating a > > serialization where the background graph has been named -- but as this > > is actually not the case, and such a conflict would not arise, I feel > > much more comfortable with this approach) > > > > Regards, > > > > Patrick > > > > -- > > > > Patrick Stickler > > Senior Architect > > Forum Nokia > > Hatanpäänkatu 1 A > > 33900 Tampere Finland > > > > phone: +358 40 801 9690 > > fax: +358 7180 75700 > > email: patrick.stickler@nokia.com > > > > Forum Nokia provides a wealth of resources to mobile developers. For > > the latest on mobile tools, devices and technologies, go to > > http://www.forum.nokia.com
Received on Thursday, 2 June 2005 12:30:25 UTC