- From: Marcelo Arenas <marcelo.arenas1@gmail.com>
- Date: Wed, 4 Apr 2012 20:57:26 -0400
- To: Lee Feigenbaum <lee@thefigtrees.net>
- Cc: W Martens <martens.wim@gmail.com>, jorge.perez.rojas@gmail.com, jeen.broekstra@gmail.com, Sebastián Conca <sconca87@gmail.com>, www-archive@w3.org, Axel Polleres <axel@polleres.net>
Dear Lee, Thank you very much for letting us know about this proposal. Below please find my personal opinion about it. I read the proposal carefully, and I don't think this is a good way to define the semantics of property paths. It is said in the proposal that there is a need to count when using the operator / and not to count when using the operator * to be able to deal with use cases such as the one mentioned in the following text (which is taken from http://lists.w3.org/Archives/Public/public-rdf-dawg/2012JanMar/0285.html): "This takes the F&R uses cases as natural user expectations and so to suggest the path operators needed and their semantics. { ?list rdf:rest*/rdf:first ?member } is a good illustration. If the list is (1 2 1), we want the results to be (?member=1, ?member=2, ?member=1) i.e. 1 twice. So "/" is not distinct. rdf:rest* is the same for either distinct or counting * on a well-formed list. It's a chain, you get the same results either way." However, the semantics in the proposal is not strictly needed to handle use cases like the previous one. In fact, this type of use cases can be easily handled by using a pure existential semantics for property paths (all the operators in property paths are evaluated by using an existential semantics, so no form of counting is considered when evaluating property paths): SELECT ?list ?member WHERE { ?list rdf:rest* ?x . ?x rdf:first ?member . } In fact, given the way the semantics of property paths is defined in the proposal, it will always be possible to rewrite a SPARQL query under this semantics as an equivalent SPARQL query with a pure existential semantics for property paths, so I don't see a reason to keep a limited form of counting for property paths (for the operators /, | and !). Besides, I find difficult to justify why counting is used in some operators (/, |, !) and not in others (*, +, ?). Cheers, Marcelo On Tue, Apr 3, 2012 at 11:19 AM, Lee Feigenbaum <lee@thefigtrees.net> wrote: > Hi Wim, Jorge, Jeen, Marcelo, and Sebastian, > > (Please note that this is not an official working group response to your > respective comments on property paths in the current SPARQL 1.1 Query last > call working draft.) > > I want to thank you all again for your research, experiences, suggestions, > and comments on SPARQL 1.1 property paths. They've been very valuable to the > working group. > > The group has spent some time in the past few weeks considering various > options in an attempt to address the implementation and evaluation > challenges that you have all raised while still respecting our group's > schedule, implementers' burdens, and the use cases we've identified for > property paths. > > Today, we reached consensus within the group on an approach that we feel > addresses your concerns while still leaving room for implementation > experience going forward to inform additional design decisions in the > future. > > We haven't yet worked this design into the query document, which is why this > isn't an official WG response to your comments. Yet before we go ahead and > publish a new Last call, we'd like to know if you support this new design > and if you believe that it does indeed address your comments. > > The design is summarized in these two emails by Andy Seaborne: > > http://lists.w3.org/Archives/Public/public-rdf-dawg/2012JanMar/0285.html > http://lists.w3.org/Archives/Public/public-rdf-dawg/2012JanMar/0286.html > > I'd very much appreciate it if you can take a look at this and let me know > what you think. > > thanks, > Lee
Received on Thursday, 5 April 2012 00:57:55 UTC