Re: UNSAID - two test cases (dawg:unbound, issues#useMentionOp)

>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.

I agree. We should totally reject it.

I once wrote a draft doctoral thesis on 3-valued logics. They are a 
total waste of time and a black hole. I can elaborate on why if 
anyone is interested, but please lets not even touch the idea of RDF 
being anything but 2-valued.

Now, the idea of allowing operators to apply to unbound values is 
another matter, and I think it can be done without messing with the 
actual logic. Not being bound to a value is not the same as being 
bound to a 'null' value.

Pat

-- 
---------------------------------------------------------------------
IHMC		(850)434 8903 or (650)494 3973   home
40 South Alcaniz St.	(850)202 4416   office
Pensacola			(850)202 4440   fax
FL 32502			(850)291 0667    cell
phayes@ihmc.us       http://www.ihmc.us/users/phayes

Received on Wednesday, 22 December 2004 22:34:59 UTC