- From: Steve Harris <S.W.Harris@ecs.soton.ac.uk>
- Date: Wed, 22 Dec 2004 14:49:36 +0000
- To: RDF Data Access Working Group <public-rdf-dawg@w3.org>
On Wed, Dec 22, 2004 at 08:43:48AM -0600, Dan Connolly wrote: > > PREFIX : <http://example.org/ns#> > > > > SELECT ?person > > WHERE (?person :email ?e1) > > OPTIONAL { (?person :email ?e2) AND ?e2 NE ?e1 } > > AND ! &dawg:bound(?e2) > > > > using the same method Steve had of using optional, then inverting the sense > > of the match with dawg:bound. > > I thought dawg:bound was sort of wishful thinking in an earlier > message... I had trouble finding it in the editor's draft... > do you mean isBound in 11.2.2? > http://www.w3.org/2001/sw/DataAccess/rq23/#sparqlTests It was wishful thinking when I was using it. I should have checked the draft though. > "Return true if its argument, which may be an expression, is defined. > NaNs and INFs count as defined." > > Surely the arguments to operators are the *values* of expressions, > right? > > for example > > "fn:compare Compare two strings.. Returns -1, 0, or 1, according to the > rules of the collation used." > > If I write > fn:compare(?x, "abc") > > it's not comparing the 3-character string "?x" with the > 5-character string '"abc"'; rather, it's comparing whatever > ?x is bound to with the 3-character string "abc", right? > > So the specification of isBound has use/mention bugs... operators > can't see variable names. isBound would have to be a language > keyword, like UNSAID or SOURCE. Yes, but SQL for eg. has tri-value logic (true, false and NULL), so you can meaningfully apply operators and functions to unbound values (NULL). I have said a few times that DAWG I think should come down off the fence about tri-value logic. - Steve
Received on Wednesday, 22 December 2004 14:49:48 UTC