Re: SPARQL Query 1.1 review comments

Thanks for your comments.

I've replied inline to the ones that's I've addressed now.

On 5 Jan 2010, at 05:19, Souripriya Das wrote:

> Here are my (slightly rushed :-)) review comments:
> [Section 2.5: Creating Values with Expressions]
> [semantics unclear] If a solution for a query with "SELECT ?x ? 
> y ..." would include bindings ?x="10"^^xsd:integer and ?y="Hello",  
> then what would happen to that solution for "SELECT ?x+?y ..."?
> Would that solution be skipped (i.e., Is there an implicit directive  
> that a solution is returned only if all the SELECT-list expressions  
> can be evaluated without error?)?
> The solution would be returned, but the value of the expression will  
> show up as error.
> [would like to know] Are we allowing expressions for CONSTRUCT as  
> well?
> [Section 3: RDF Term Constraints (Informative)]
> [typo] Subsections for Section 3 show only "3.1 Other Term  
> Constraints" in the content, but there are two other subsections:  
> "3.1 Restricting the Value of Strings" and "3.2 Restricting Numeric  
> Values".
> [Section 13.1.2: "SELECT expressions"]
> [typo] change: SELCT => SELECT
Fixed.
> [semantics unclear] What is the value of an expression if any of the  
> operands of an operator does not have the proper data type? Do we  
> ignore (i.e., not return) the corresponding solution? Or, do we  
> return a pre-designated RDF error term in place of the value of that  
> expression?
> For example, if the RDF data shown is altered to replace: the  
> triple, :book1  ns:price  42, with  :book1  ns:price  "priceless",  
> then what will be the results for the two queries?
> [Section 9: Aggregate Functions]
> [semantics unclear] Somewhat similar question as in the case of  
> SELECT expressions: How to evaluate an expression, in this case  
> aggregate functions, in presence of values of different types? For  
> example, what would be ?totalPrice if instead of :book3 :price 7, we  
> had :book3 :price "priceless"?
That's an open question, "@@ note: it is yet to be decided how to  
handle unbound values and errors are handled in the evaluation of the  
Aggregation function, see ISSUE-53."
> [enhance the query] In the query example, could we extend the SELECT  
> list from SELECT (SUM(?lprice) AS ?totalPrice) to, say, SELECT ?org  
> (SUM(?lprice) AS ?totalPrice), or further extend to SELECT ?org  
> COUNT(DISTINCT ?author) (SUM(?lprice) AS ?totalPrice)? Just  
> selecting SUM(?lprice) is not very interesting.
I think queries like that are better left to the testcases myself.
> [Section 10: Subqueries]
> [fix the query] The query does not seem right. Specifically, the  
> outer SELECT list cannot include ?name which is not exposed by (that  
> is, not in the SELECT list of) the subquery. [Also, a minor typo:  
> has an extra '}'.] One possible way to fix it would be:
> PREFIX : <http://people.example/>
> PREFIX : <http://people.example/>
> SELECT ?y ?minName
> WHERE {
>   :alice :knows ?y .
>   {
>     SELECT ?y (MIN(?name) AS ?minName)
>     WHERE {
>       ?y :name ?name .
>     } GROUP BY ?y
>   }
> }
Thanks, fixed.
> [more details needed] May need more details about the scope of  
> variables mentioned in the subquery.
I added some text to the end of §10 to explain this, but it still  
needs more text at some point.

- Steve
> [Section 8.1: Negation Syntax]
> [typo] We need to put a blank space between 'EXISTS' (or 'NOT  
> EXISTS') and GroupGraphPattern.

-- 
Steve Harris, CTO, Garlik Limited
2 Sheen Road, Richmond, TW9 1AE, UK
+44(0)20 8973 2465  http://www.garlik.com/
Registered in England and Wales 535 7233 VAT # 849 0517 11
Registered office: Thames House, Portsmouth Road, Esher, Surrey, KT10  
9AD

Received on Tuesday, 5 January 2010 11:03:14 UTC