- From: Kevin Wilkinson <wilkinson@hpl.hp.com>
- Date: Mon, 11 Oct 2004 17:10:11 -0700
- To: RDF Data Access Working Group <public-rdf-dawg@w3.org>
- Message-ID: <416B20E3.A04A2D7D@hpl.hp.com>
here are my comments on draft 1.112 of the SPARQL Query Lang. document. these comments are for sections 6-$. i used the following notation in my comments. '-' delimits things to remove. '+' delimits things to add. *NOTE: blah, blah, blah * delimits my comments. undelimited text is used to provide context. kevin
---------------------------------------------------------------- 8 Choosing What to Query -The RDF graph can be given implicitly ... or it can be specified in the query itself. The FROM clause gives URIs that the query processor can use to supply RDF graphs for the query execution.- +The RDF graph to be queried is identified by one or more URIs in the FROM clause. The URIs are interpreted by the query processor and may refer to graphs created by the local API or graphs accessible from the SPARQL protocol.+ *NOTE: what I objected to in the original phrasing was the clause "can be specified in the query itself" which makes it sound like the FROM clause may possibly include a list of triples (a graph). Or more generally, it makes it sound like the FROM clause could be a CONSTRUCT operation. Looking at the BNF it's clear this is not possible.* -Any variable that is bound to NULL must not match another variable that is bound to NULL.- +Any variable that is unbound will not match another unbound variable.+ *NOTE: I suppose I missed the discussion of NULL but wouldn't it be nice if SPARQL did not require NULL? Why do we use unbound for OPTIONAL ivariable matching but NULL for unbound SOURCE matching? Do we need two tests, IsBound(?x) AND IsNULL(?x)? Can we drop NULL?* 11 Query Forms These result forms use the bindings in the query results to form result sets or RDF graphs. *NOTE: strictly speaking, the ASK form does NOT return a result set, it returns a singleton (Boolean) result.* 11.1 Choosing -which- +Which+ Variables to Return -The SELECT form of results returns the variables directly.- +The SELECT query form returns the bindings of the listed variables.+ The syntax SELECT * is shorthand for select+ing+ all the variables+ in the query+. -Results can be thought of as a table, with one row per query solution. Some cells may be empty because a variable is not bound in that particular solution.- +Results can be represented as a table consisting of one column for each result variable and one row per query solution. Unbound variables are indicated by empty table cells.+ SELECT DISTINCT -The result set can be modified by adding the DISTINCT keyword which ensures that every combination of variable bindings (i.e. each result) in a result set is unique.- +The result set can be modified by adding the DISTINCT keyword which ensures that every solution in a result set is unique.+ SELECT LIMIT The LIMIT -form- +clause+ puts an upper bound ... +The LIMIT clause may also be applied to the CONSTRUCT and DESCRIBE query forms.+ *NOTE: is the above true or is LIMIT only for SELECT/CONSTRUCT?* -A query may return a number of results up to and including the limit.- +If specified, a query processor returns either the complete number of solutions to the query or the LIMIT, whichever is lower.+ *NOTE: is this the intent or is the intent to allow a query processor to return an arbitrary number of solutions (up to the limit) when LIMIT is specified?* 11.3 Descriptions of Resources *NOTE: the DESCRIBE query form is one case where the query processor treats an RDF graph as more than just data. It may choose to understand some semantics of the data (specifically, the properties). This conflicts with the assertion in Section 8 ("Choosing What to Query") that a "SPARQL query treats an RDF graph purely as data".* which includes the bNode closure for the vcard vocabulary vcard:N -and vcard:ORG- triples. ... foaf:mbox_sha1sum as well information which as name and other details ... *NOTE: the above sentence doesn't make sense to me.* -If the application already has the URI for the resource. This- +If the application already has URI references for resources, they+ *NOTE: the BNF allows "DESCRIBE *" but it is not mentioned in the text.* *NOTE: the document uses the term "URI reference" early on but switches to "URI". Is it important to be consistent or not worth worrying about?* 12 Testing Values Need "isBound(?x)" *NOTE: do you also need "isNull(?x)"?* 12.2 Extending Value Testing *NOTE: We should state whether or not the test function may have side-effects. Presumably, it should not although we can't enforce this.* ----------------------------------------------------------------
Received on Tuesday, 12 October 2004 00:07:06 UTC