- From: Jeremy J Carroll <jjc@syapse.com>
- Date: Thu, 17 Oct 2013 10:07:30 -0700
- To: Andy Seaborne <andy@apache.org>
- Cc: public-sparql-dev@w3.org
Ah - I just sent a comment …. SAMPLE is amusing … (SAMPLE(?x+0) AS ?y) could be required to verify that ?x cannot be a nonnumeric or may be not …. I don't think the specification is clear. Jeremy J Carroll Principal Architect Syapse, Inc. On Oct 17, 2013, at 4:06 AM, Andy Seaborne <andy@apache.org> wrote: > Recorded as > > http://www.w3.org/2013/sparql-errata#errata-query-6 > > so it does not get lost. > > (but this is does not stop discussion here). > > Andy > > > On 15/10/13 19:00, Andy Seaborne wrote: >> Hi Jeremy, >> >> I was hoping someone would have replied to make their case because when >> I looked at the details, I see different readings, including >> counter-intuitive behaviour. >> >> Intuitively, for a mix of numbers and errors, one might expect: >> >> -(MIN(-?x)) == MAX(?x) >> -(MAX(-?x)) == MIN(?x) >> >>> I am not at all the sure that the spec is clear about these cases >> >> Which sections of the spec in particular are unclear? >> >> There's a not-endorsed-by-any-WG errata page at: >> >> http://www.w3.org/2013/sparql-errata >> >> as input to any future WG and corrections/improvements >> >> - - - - - - - - - - - >> >> Any errors in the BIND lead to the variable assigned to unbound, and in >> particular, not an error value. 'error' as a new kind of value only >> exists in aggregation. >> >> >> MAX is more interesting that MIN here because MIN comes up with the same >> answer for different readings; MAX does not. >> >> Looking back over WG discussions, there was a lot of consideration of >> what happens about mixed types, e.g. numbers and strings, leading to the >> choice of the ordering relation for ORDER BY being used. There is less >> discussion about the impact of errors coming from group evaluation. >> >> There are two problems I can see, both related to the introduction of >> 'error' as an extension to the set of values (RDF terms) in aggregation. >> >> 1/ ToList() is simply not defined for the case where there is an error. >> >> You could argue that by SPARQL eval rules, the case of "not covered" >> means it itself is an error so Min(ToList(Flatten(M))) >> >> Or you could argument ToList is supposed to just create a list and pass >> the error token through. Then we have (2) below, with extended Ψ and >> then MIN(Error, 1) is 1. >> >> 2/ Similarly but less significantly because to matter it is a particular >> reading of (1), the ordering relation for ORDER BY does not deal with >> errors as input; it takes expressions and a solutions, evaluates the >> expressions and that may be an error. OrderBy(Ψ, condition) and Ψ can't >> contain error. (sec 18.5). >> Only the case of "condition(μ)" being an error is covered. >> >> --------------------------- >> >> COUNT specifically calls errors out >> >> N = Flatten(M) >> remove error elements from N >> >> SUM, AVG -- these end up with error either way round if we assume >> op:numeric-add(error, ...) is defined analogously to ToList(error) >> needed for that reading. >> >> GroupConcat calls CONCAT so same here even though it does not use ToList. >> >> SAMPLE does not use ToList; it contains the line: >> >> """ >> the only restriction is that the output value must be present in the >> input multiset. >> """ >> >> Can SAMPLE({"a", "b", "c", error}) validly return error? >> >> --------------------------- >> >> This is worth an entry in the errata collection. >> >> Andy >> >> On 10/10/13 18:21, Jeremy J Carroll wrote: >>> >>> >>> I am wondering what is the right answer to the following query >>> >>> SELECT >>> (MIN(?x) as ?a) >>> (MAX(?x) as ?b) >>> (MIN(?x+0) ?c) >>> (MAX(?x+0) AS ?d) >>> { >>> { BIND(1 as ?x)} >>> UNION >>> { BIND(1 +"x" as ?x)} >>> UNION >>> { BIND("y" as ?x)} >>> } >>> >>> Note that the middle BIND creates an unbound ?x, (which is lower >>> than1 or "y"), whereas the last BIND creates an error inside the 2nd MIN >>> and MAXes … (when ?x="y") >>> >>> I am not at all the sure that the spec is clear about these cases >>> >>> Jeremy >>> >>> >>> Principal Architect >>> Syapse, Inc. >> > >
Received on Thursday, 17 October 2013 17:07:59 UTC