- From: Polleres, Axel <axel.polleres@siemens.com>
- Date: Tue, 27 Mar 2012 15:56:50 +0200
- To: "public-rdf-dawg@w3.org" <public-rdf-dawg@w3.org>
- CC: Andy Seaborne <andy.seaborne@epimorphics.com>
Dear all, We have had several strawpolls on the issue, but AFAIR we have only one binding resolution, the onw from last time [1]. My understanding is that the agreement last time came from the understanding that we do not want to mix counting and non-counting semantics within a path at this point, that is - with Option 3 - we have voted for an operator on the level of the whole path, rather than fine-grained choice. If I understand Grag correctly, the alternative he proposes, let's call it Option 7 (a variation of Option 3, which we actually voted on) is also on path level: Option 7: add ALLPATHS(full-path) only (and make DISTINCT(full-path) the default) This is in fact the option that comment JP-4 suggested originally. Andy's proposed Option 6 is IMO orthogonal to both Option 3 and Option 7, in that it mixes non-counting and counting semantics on the path level. E.g. in (:p/:q)* or alike, and that our commenters have already indicated that they would find a mixed semantics confusing. As it stands, we still hold with the resolution [1] with the caveat that Greg is worried that it's a lock-in preventing a later "syntactic" fix. Best, Axel 1. http://www.w3.org/2009/sparql/meeting/2012-03-20#resolution_1 -- Dr. Axel Polleres Siemens AG Österreich Corporate Technology Central Eastern Europe Research & Technologies CT T CEE Tel.: +43 (0) 51707-36983 Mobile: +43 (0) 664 88550859 Fax: +43 (0) 51707-56682 mailto:axel.polleres@siemens.com > -----Original Message----- > From: Andy Seaborne [mailto:andy.seaborne@epimorphics.com] > Sent: Dienstag, 27. März 2012 14:24 > To: public-rdf-dawg@w3.org > Subject: Re: property paths > > > > > On Mar 26, 2012, at 7:11 PM, Polleres, Axel wrote: > >> Gregory Williams wrote: > >>> If it turns out that basically everybody wants the DISTINCT > >>> semantics by default, and the counting semantics are rarely used, > >>> based on our current decision we *can't* come back later > in another > >>> WG and decide to change the default semantics to align with what > >>> people want. > >> > >> Whereas Jeen's comment, as well as JP-4 prefer non-counting as > >> Default, we had a strawpoll on this earlier where the vote > was in the > >> direction of sticking with the counting semantics as default: > >> > >> http://www.w3.org/2009/sparql/meeting/2012-02-07#line0111 > > and also: > http://www.w3.org/2009/sparql/meeting/2012-02-28 > > [[ > Axel Polleres: Strawpoll, would anyone object to {*} and {+} > counting operators and * and + default to non-counting? > ]] > where we had 8 x +1, and 1 x 0 > > Greg wrote: > > I know there was concern from some that DISTINCT() is a > rather wordy > > way of asking for the distinct semantics. I'm concerned that we may > > end up in a situation where it turns out that most people do end up > > wanting the distinct semantics, and with our current > design, we will > > have done the Huffman coding all wrong -- distinct semantics will > > require a long keyword, while the counting semantics won't. > > And on Jeen's comment, JB-10, I don't think we have done > anything significant to reflect his feedback. > > Looking at F&R the examples are: > > + Retrieving all the elements of an RDF collection > > + Retrieve all of the names of people linked to me > transitively via the > ex:mother and ex:father relationships (i.e. all my known ancestors) > > + What are all of the direct and indirect superclasses of a > given owl:Class? > > which amount to: > > rdf:rest* (counting or non-counting) > (ex:mother|ex:father)* (non-counting *) > rdfs:subClassOf* (non-counting *) > > and also: > foaf:knows* (non-counting *) > > None of these require counting; rdf:rest* because in a > well-formed list, > counting and non-counting are the same. > > The natural interpretation of "/" and "|" is as rewrites to > graph patterns. > > In the resolution [R], we said we'd add to the future work > list; we have > always noted this for path lengths and this seems prudent. > But we need > to make sure we have not obviously stamped on syntax. > > I think making * and + normally counting is a mistake. > > There 2 major concerns around implementation: > > 1/ Burden of too many things to implement and optimize > > 2/ The computation cost of an operation (hence need to invest in > optimization) > > I would observe that there is a 3rd cost of implementation > which is the > consequent support; if the natural interpretation of syntax > is not what > semantics says, there is a recurring cost to implementers. > > So ... option 6: > > 6.A: /, |, ! as there are in 2LC. > 6.B: *, +, ? are non-counting > 6.C: No DISTINCT > 6.D: No {} forms: {n}, {n,m}, {n,}, {,m} > > Notes: > N1: No DISTINCT: with sub-queries and named variables, this > can be done > other ways. It's less important if * and + are non-counting. > > N2: It leaves all {} syntax free for more modifiers. (Note that {n,} > and * interact currently.) {n,m} has also been noted as difficult. > > N3: This proposal is the least-cost in implementation terms and, I > believe, in support costs. > > N4: It covers many (not all) use cases and does cover the F&R > examples. > The rest is left to future work. > > I feel quite safe defining * and + as non-counting and don't think it > will block future work. > > Andy > > [R] http://www.w3.org/2009/sparql/meeting/2012-03-20#resolution_1 > >
Received on Tuesday, 27 March 2012 13:57:23 UTC