[Fwd: : http://www.w3.org/2001/sw/DataAcce​ss/issues#useMentionOp]

typo in the To line...

-- 
Dan Connolly, W3C http://www.w3.org/People/Connolly/
D3C2 887B 0F92 6005 C541  0875 0F91 96DE 6E52 C29E

Forwarded message 1

  • From: Tim Berners-Lee <timbl@w3.org>
  • Date: Thu, 14 Apr 2005 15:34:16 -0400
  • Subject: : http://www.w3.org/2001/sw/DataAcce​ss/issues#useMentionOp
  • To: public-dawg-comments@w3.org
  • Cc: Dan Connolly <connolly@w3.org>
  • Message-Id: <1b5c03e91170d10c41922e4da9bd0da4@w3.org>
In my opinion, it is a serious breach of sanity to coerce the
URI for something to its value using str().
All kinds of things can get URIs, and the actual URIs they
get is in general irrelevant.
Here is an example case.

# Data
@prefix  : <#>.
:ellen foaf:name  :n.
:n  =    "Ellen".

We are working with a processor which knows that  :n and "Ellen"
are the same, and so concludes

:ellen foaf:name "Ellen".

so that is part of the data too.

#  Query:
#  Find people whose names begin with "h"

SELECT ?x WHERE    ?x  :name  ?n  FILTER  FILTER  regex(str(?n), "^h"}

This works fine and as intended, except in the case when the base URI
of the document starts with "h", in which case suddenly it will
produce all the URIs used for names as well as the names themselves.
Yuk.  Bzzzt.  Not as intended.

Really, the relation between something and the string used as a
symbol for it is  a special and weird relationship.
It is rarely used, as it is a level-breaker, because the URI stringss 
are
generally irrelevant to the semantics. When used,
it is really important that the programmer and the machine
are both aware that it is happening. So it must be explicit.

Please use uri(?n)  to give a symbol by which ?n is known.

And be aware that using this is hairy  (as something may of course
by known by many URIs, some of which you find out later).

Tim

Received on Thursday, 21 April 2005 21:03:30 UTC