- From: Seaborne, Andy <andy.seaborne@hp.com>
- Date: Sun, 06 Mar 2005 09:57:28 +0000
- To: 'RDF Data Access Working Group' <public-rdf-dawg@w3.org>
CONSTRUCT * is currently defined as returning the RDF graph that matches the query pattern. This does not extend to the case of GRAPH because the query pattern isn't matching a single graph any more. It is in danger of making it seem like there are assertions in the background graph that actually are in some named graph. To start with, here are some examples: 1/ Get the background graph CONSTRUCT * WHERE { ?s ?p ?o } CONSTRUCT { ?s ?p ?o } WHERE { ?s ?p ?o } """ ACTION: AndyS to explain how to get a whole graph with CONSTRUCT * and GRAPH. [11] recorded in http://www.w3.org/2005/03/01-dawg-irc#T16-16-04 """ 2/ getGraph(<uri>) can be imitated, if <uri> is in the dataset CONSTRUCT { ?s ?p ?o } WHERE GRAPH <uri> { ?s ?p ?o } But the form: CONSTRUCT * WHERE GRAPH <uri> { ?s ?p ?o } does not make sense as the query pattern is not re-executable over the result of CONSTRUCT * if that were to return the named graph. 3/ More problematic: CONSTRUCT * WHERE GRAPH <g> { ... } GRAPH <h> { ... } I don't know of a sensible meaning - merging <g> and <h> (and loosing the labels) is not good. 4/ Mixing named graphs and the background graph: CONSTRUCT { ?s ?p ?o } WHERE GRAPH ?g { ?s ?p ?o } { ?g dc:publisher <http://www.w3.org/> } { ?g dc:date ?date } FILTER app:myDate(?date) > "2005-02-28T00:00:00Z"^^xsd:dateTime I don't know of a sensible meaning if it had said "CONSTRUCT *" unless the return is a dataset, not a single graph. The problem is because the output of CONSTRUCT is a graph, not a dataset (the query system is not closed). Approach 1: "CONSTRUCT *" is illegal if the query uses GRAPH. The application writer has to be a bit more explicit and provide a template that more accurately describes what they want. Approach 2: "CONSTRUCT" returns a dataset. Need to extend CONSTRUCT templates to include GRAPH. Approach 3: Drop "CONSTRUCT *" all together. My preference is 3 > 1 > 2. Andy
Received on Sunday, 6 March 2005 09:58:03 UTC