Re: DISTINCT()

On 2012-03-14, at 13:44, Olivier Corby wrote:

> I fear that the design is becoming over complex.
> 
> We used to have two kinds of repetitions:
> 
> + *   without loop in the path (except first step of + ...)
> {n,m} with loop in the path
> 
> Now we would have three kinds of repetitions:
> 
> + *     without loop, without duplicate
> {+} {*} without loop, with duplicate 
> {n,m}   with loop with duplicate 
> 
> In addition, {} notation is (in general) used for set but {+} enables duplicates so it is misleading
> In addition {n,m} and {+} do not behave the same with loops, so it is not uniform
> 
> 
> (By the way, our experience in my team is that loops in {n,m} are not welcome because very often {1,n} is used to limit the length of paths wrt +, but unfortunately paths are then trapped into loops (use case with symmetric relation, e.g.  foaf:knows{1,5}))
> 
> 
> Concerning distinct, I am able to prototype distinct as a global operator on path expression:
> ?x distinct(path) ?y
> 
> I would support this design.

Based on absolutely no implementation experience, just gut reaction, I would prefer just the DISTINCT(path) syntax too. It's a little less like mysterious perl-style line noise.

- Steve

-- 
Steve Harris, CTO
Garlik, a part of Experian
1-3 Halford Road, Richmond, TW10 6AW, UK
+44 20 8439 8203  http://www.garlik.com/
Registered in England and Wales 0535 7233 VAT # 849 0517 11
Registered office: Landmark House, Experian Way, Nottingham, Notts, NG80 1ZZ

Received on Wednesday, 14 March 2012 14:25:02 UTC