Re: [ACTION-18] use case on !ASK in FILTERS to emulate negation

Am Dienstag, den 26.05.2009, 11:29 +0100 schrieb Steve Harris:
> On 26 May 2009, at 11:10, Simon Schenk wrote:
> 
> > Am Montag, den 25.05.2009, 17:48 +0000 schrieb Seaborne, Andy:
> >
> >> Simon/Eric - you gave do you have examples where either MINUS or  
> >> EXISTS can not easily be used where EXISTS or MINUS can?
> >>
> >> The distinguishing example is helpful - seem to me that MINUS needs  
> >> a slightly artificial form to introduce ?name to be set-compatible  
> >> with the preceding pattern.  But is this an artefact of the example  
> >> and is there a counter example of EXISTs having to be slightly  
> >> artificial?
> >>
> >> http://www.w3.org/2009/sparql/wiki/index.php?title=Design:Negation#Distinguish_MINUS_from_UNSAID
> >
> > I don't think there are cases, which can not be expressed using one of
> > the forms: EXISTS can be translated into MINUS by extending the  
> > pattern,
> > if necessary. However, MINUS really is a bit ugly in many cases.
> >
> >>> In addition, I still think that EXISTS without FILTER around are a  
> >>> bit
> >>> confusing, esp. if the next clause is OPTIONAL {...}.
> >>
> >> I'm tending to both forms although underneath raw EXISTs because I  
> >> thing using iut on its own is going to be common.  Internally, it  
> >> behaves just like a FILTER which is not moved to the end of a BGP.
> >
> > I think FILTER better captures the intended semantics. I am not sure,
> > whether an order dependent inline form is intuitive. On the other  
> > hand,
> > aesthetically I like it better. :) Why not completely translate it  
> > into
> > a FILTER, including a reordering?
> 
> Well, that means that you have to chuck in extra {}s to say what you  
> mean, but I'm somewhat sympathetic to the viewpoint. Having two  
> syntaxes that do the same thing is a bit odd. I prefer it outside  
> FILTER() myself, but not that strongly.

Moreover, we still have !BOUND...

> Won't having it inside FILTER weird the syntax a fair bit? EXISTS(...)  
> will have to include the whole BGP enchilada... hopefully except  
> FILTER and EXISTS :)

You will need a nesting of FILTER / EXISTS to express double negation.
Yes, there are real world use cases. ;-)

Cheers,
Simon

-- 
Simon Schenk | ISWeb | Uni Koblenz
http://isweb.uni-koblenz.de
http://www.uni-koblenz.de/~sschenk

Received on Tuesday, 26 May 2009 11:36:22 UTC