SPARQL Query 1.1 review comments

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 
        • [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 "? 
        • [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. 
    • 
[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 
  } 
} 




        • [more details needed] May need more details about the scope of variables mentioned in the subquery. 
    • 
[Section 8.1: Negation Syntax] 

        • [typo] We need to put a blank space between 'EXISTS' (or 'NOT EXISTS') and GroupGraphPattern. 

Received on Tuesday, 5 January 2010 05:20:27 UTC