Re: What a URI means, was Re: erratum Re: resources and URIs

>pat hayes wrote:
>>
>>  >pat hayes wrote:
>>  >>
>>  >>  >... I'd assume that it would return
>>  >>  >a 404 ... BUT ... by creating the URI you actually do 'create' a
>>  >resource.
>>  >>
>>  >>  Really? You do? Well, OK, if you say so.  But if it is that easy to
>>  >>  create a resource then what do we need the Web for? I can write a
>>  >>  simple piece of code which will generate syntactically legal URIs at
>>  >>  an astonishing rate: am I creating resources?
>>  >
>>  >yep. what sort of resource do you suppose the URI urn:uuid:1233445523434
>>  >identifies? (who knows)
>>
>>  You seem to be making my point rather than yours. I must not be following
>you.
>
>Perhaps I am being too obtuse in my arguments, and perhaps I am assuming
>more "shared state" between us than may exist, let me try again...
>
>>  >
>>  >>What theory -
>>  >>  and what *kind* of theory - requires us to hypothesise this virtual
>>  >>  URI space of virtual resources? We don't need it for semantics - in
>>  >>  fact, its does more harm than good - and I can't see why we need it
>>  >>  for an architectural theory, since it plays no role in the
>>  >>  architecture. In fact, it strikes me as just a piece of nonsense made
>>  >>  up to seem like a theory, which has become a kind of doctrine that
>>  >>  must be defended at all costs and is beyond the reach of reason.
>>  >
>>  >Ok, so evidently you don't find this a useful analogy, but I've never
>called
>>  >this a theory, just a way of explaining the terminology 'exists on the
>Web'.
>>  >We aren't talking metaphysics here, just local lexicon.
>>
>>  How very like the people I argue with to use 'metaphysics' as a term
>>  of dismissal. As you know, my job is to try to help get semantics
>>  straight. This does involve something awfully like metaphysics, in
>>  fact. If y'all don't give a damn about metaphysics, fine: but please
>>  keep out of the kitchen, because I AM talking metaphysics, and sloppy
>>  analogies aren't any more help here than they would be in network
>>  engineering or, say, neuroanatomy.  "Exist" is a technical term with
>>  a remarkable sharp meaning. If you don't mean it, don't use it.
>
>First:
>
>1) I am using the term "metaphysics" properly as a theory about physics, as
>a type of "universal theory" in opposition to "local lexicon". All I am
>saying is that "URI space" might *only* be a piece of jargon that *doesn't*
>involve metaphysics, i.e. I am simply saying that it need not be a
>scientific theory in order for us to use casually in discourse.

OK, sorry I got a little snappy back there. But OK, if "URI space" is 
only jargon, surely we can have can architectural description without 
it. My problem is that we have to take things like the architecture 
document seriously and try to work within them, so pieces of jargon 
can become like a brick on a sofa, very hard to live with.

>2) You of all people ought not insist that a word has a single meaning.
>"Exist on the Web" might be used in a casual sense. I do agree that we ought
>sharpen the language -- I've said this at the outset -- but first, let's try
>to understand what is being said, even if said in the lexicon of "Web
>Hackers".

Yeh, OK, I didnt mean to sound snobbish, sorry.

>
>>
>>  To go back to your analogy: every URI has a corresponding thing in
>>  'resource space'. The mapping is 1:1 and onto (no resources without a
>>  URI; every URI has a resource). The *nature* of resources is not
>>  discussed and plays no role in the theory. OK, so why not make this
>>  be the identity map, and say that the URIs *are* the resources? That
>>  simplifies the theory, apparently causes no problems and saves a lot
>>  of interminable discussion about the nature of nonexistent entities.
>
>Exactly. Exactly. Exactly. Doesn't the RDF MT essentially, or actually, do
>this? (I know that at least one version had made that explicit).

That was probably the Herbrand stuff in the proof appendix. That uses 
this trick because it is OK to do so because the model theory doesn't 
specify what 'resources' are, it just says that every URI has to 
denote one.

>
>Ok, let's try to run with this... If URI<-> resource is 1:1 isn't that what
>TimBL is saying when he states that each URI identifies one and only one
>resource?

Yes, though I think he wants to say more than this. For example, he 
would like people to have URIs which really do denote them, ie the 
person is the resource; and that this is fixed and unambiguous, 
locked down tight in all interpretations.

>Now the _meaning_ of the resource i.e. the URI, might change. A
>URI might mean different things.
>
>When I read "A resource might be anything that has identity" I think: a
>resource might be _anything_ and hence I know nothing specific, or perhaps
>very little, about what a resource actually is.
>
>This entire discussion could be crisped, by changing the topic to: "What a
>URI denotes", or "What a URI means" and avoid all this confusion about what
>"resources" are.

I tend to agree.

>"What a resource is" is a discussion that we could have in
>answering the above questions, but it doesn't seem to be the best _primary_
>discussion (a resource might be anything.)
>
>[much discussion snipped in light of above ...]
>
>>
>>  >
>>  >>  >
>>  >>  >In the Web Architecture, you never can actually get your hands on the
>>  >>  >resource, rather the representation.
>>  >>
>>  >>  Is that really correct? Seems to me that you - or maybe the Web
>>  >>  itself - does 'get its hands on' an actual information resource
>>  >  > indicated by the URI, and that very thing then emits the
>>  >>  representation. Isnt that (a sketch of) the Web architecture for all
>>  >>  the ...TP protocols?
>>  >
>>  >If you consider:  HTML representation -isRepresentationOf -> document
>>  >resource
>>  >then yes. But if we consider, alternatively,
>>  >
>>  >document -isRepresentationOf-> weather in Oaxala
>>  >
>>  >then no.
>>
>>  Yes, Sigh. But which is it? That is exactly what I am trying to find out.
>
>I am not sure the current architecture can make that distinction. Is it
>important to make -- this is a question we need to answer.

Yes, because a lot of the stuff in these documents make sense with 
one reading but not with the other. Unfortunately some of is similar 
but the other way round.

>
>(from another email)
>
>>  >You are caught in the resource/representation bug.
>>
>>  Actually Im dancing between the alternatives trying to make sense of
>>  the TAG document.  (You know, Jonathan, the use/mention distinction
>>  is one that I am reasonably well acquainted with:-)
>
>(hey I know what metaphysics is also, so there! :-)
>
>>
>>  >What you get when
>>  >resolving a HTTP URI with a fragid _might be_ an HTML document. It is the
>>  >responsability of the client to use the fragid to look inside the HTML
>>  >_representation_
>>
>>  that is, the document, which itself is a representation, right?
>>
>>  >  to find an anchored piece of the HTML document. This is all
>>  >the _representation_ not the resource.
>>
>>  OK, Im fine with that so far.
>>
>>  >ndeed the same HTTP URI with fragid,
>>  >might be resolved with Accept: appliction/rdf+xml in which case your same
>>  >fragid identifies an RDF description (i.e. rdf:ID="frag"), now what? You
>>  >still don't have the actual resource, rather an RDF/XML representation.
>>
>>  If the resource is what is denoted, you almost never actually get the
>>  resource.  On the other hand, if the resource is what you get the
>>  thing that you get from, then its almost never what is denoted. Which
>>  is it??
>
>A principle of Roy Fielding's REST architecture is that you never directly
>operate on the resource.
>http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm .
>see: 5.2.
>
>"resource: the intended conceptual target of a hypertext reference"
>
>Now I realize that discussing whether a remote galaxy might be part of an
>information network gets pretty quickly obtuse, by the REST definition of
>resource, a resource might indeed be a remote galaxy _identified_ by a URI.

Well, that document also says (5.2.1.2):
"REST components perform actions on a resource .."
so if the remote galaxy is a resource then Web components can preform 
actions on it.

It also says (5.2.1.1): "...a resource R is a temporally varying 
membership function MR(t) , which for time t maps to a set of 
entities, or values, which are equivalent. The values in the set may 
be resource representations and/or resource identifiers .":
so if a galaxy is a resource then the galaxy is a time-varying 
function whose range is a set of representations and identifiers.

It also says (5.2.1.1): "Any information that can be named can be a resource "
Not any *thing*, but any *information*. So if a galaxy is a resource, 
then the galaxy must be information (?)

It also says that a resource is "involved in an interaction between components"
I really do hope for all our sakes that interactions between Web 
components do not involve high-energy galaxies.

It also uses says: "Since centralized link servers are an anathema to 
the immense scale and multi-organizational domain requirements of the 
Web, REST relies instead on the author choosing a resource identifier 
that best fits the nature of the concept being identified. Naturally, 
the quality of an identifier is often proportional to the amount of 
money spent to retain its validity, which leads to broken links as 
ephemeral (or poorly supported) information moves or disappears over 
time. "
which reads to me like it is talking about links as some suitable 
network generalization of a pointer - something that a server might 
be asked to maintain, something that can get broken if left without 
maintenance - rather than a semantic notion of denotation or 
reference.

Again, in 5.2.2: "REST uses various connector types, summarized in 
Table 5-2 , to encapsulate the activities of accessing resources and 
transferring resource representations.  "
So resources, it seems, are entities that are *accessed*. (How do you 
access a galaxy?)

Again, in 5.2.1.1: "This abstract definition of a resource enables 
key features of the Web architecture. First, it provides generality 
by encompassing many sources of information without artificially 
distinguishing them ..."
suggests that 'resource' is an abstraction of a source of information 
(which makes perfect sense in a network context.) In what sense is a 
galaxy a source of information?

>You may have issues with the wording, but the intention IS NOT to use a URI
>like a memory address i.e. to enable direct manipulation of a resource,
>rather it is a core principle of the current Web, at least as it is
>articulated by REST, that resources are not manipulated directly, nor are
>they transmitted over a computer network.

I understand that they are not transmitted: only representations are 
transmitted. They apparently are accessed, however.   Almost 
everything that is said about resources in this document makes sense 
if 'resource' means what Tim called an 'information resource': an 
abstraction of an information source, a kind of virtual entity whose 
role is to be identified (uniquely) by a URI and to emit a 
representation when prodded at a time: a conceptual mapping from 
times to sets of representations. All of that makes perfect sense.

Unfortunately, this idea seems to have gotten mixed up with a 
different idea, which is  pernicious and harmful. This is the idea 
that what the representations in such a set have in common is that 
they are *about* a single thing, also called the resource.  This 
seems to use 'resource' as a rather simplistic theoretical stand-in 
for something like 'the stable content of a connected set of 
representations', where what connects a set of representations is 
that one gets them delivered over the course of time by using a given 
URI.  The trouble with this, however, is that it is a very poor piece 
of semantic analysis: it reduces a complex semantic issue - 
describing the content of a linked set of representations - to a 
simplistic notion - identifying a single 'resource' - which isn't 
able to bear the necessary theoretical weight. If we instead just 
said that the Web transmitted representations from place to place (as 
described by the REST architecture) which are presumed to have 
semantic relationships, and then tried to expand on what those 
relationships actually were, we might be able to get somewhere. That 
would still leave the idea of resource as something with a functional 
role in the in the architecture intact, let me emphasize; as far as I 
can see it would not materially alter the REST model as a 
paradigmatic network architecture description in any way.  Certainly 
for example nothing in chapter 6 of Roy's thesis would be changed by 
this. The only shift is to not requiring the identification of (1) 
the entity which is accessed with (2) the content of the transmitted 
representations. It is this unfortunate identification, and all the 
debate and confusion which it has since given rise to, which 
hamstrings any attempt to conduct a more general semantic analysis.

>
>>  I still havnt got a clear answer. The TAG architecture
>>  document, and RFC 2396, both read like they were written by
>>  committees half of which thought one way and half thought the other
>>  way.  Oddly enough.
>>
>
>I agree. When I read TimBL's writing, they seem to make sense, same for
>RoyF. It appears that the interface between the two could be more crisply
>described -- or perhaps this reflects a difference in viewpoint? Perhaps we
>can find a way to bring these two viewpoints together in a coherent fashion.
>(Note: I am, of course, not speaking for Roy or Tim, and have no idea what
>they say to eachother privately. I am saying this solely on the basis of
>reading email exchanges and documents published on the web.)
>
>>
>>  >
>>  >The 'resource' need not physically 'emit' the representation, an HTTP
>server
>>  >acts as a proxy for the resource. Is that way of describing things a
>  > >problem?
>>
>>  If 'proxy for' and 'denotes' are supposed to be synonymous, then yes,
>>  of course it is a problem.
>
>Why would "proxy for" and "denotes" be synonymous? I see an HTTP server as a
>piece of machinery that is used to publish bit stream representations of a
>resource.

By "of a resource" do you mean 'which denotes a resource' ? (In what 
sense do HTTP representations have any kind of semantic relationship 
to any kind of resource?)

>What word should we use for this?
>
>>
>>  >In this view the HTTP server is the RPC endpoint, or Sandro's
>>  >ResponsePoint for the representation. Analogous to RPCs, the proxy is for
>>  >the remote 'object' which would be the resource itself
>>
>>  OK, I agree the simple 'address' metaphor isnt able to handle the
>>  full network-engineering subtleties of proxies, endpoints and so on.
>>  Still, there is a basic distinction between the thingie, howsoever
>>  complicated and virtual, which in some sense emits the
>>  representations in response to a network request, and the subject or
>>  topic or referent of the representation itself. The TAG architecture
>>  document uses the phrase 'representation of' in senses that can be
>>  understood either way.  Which of these does it mean??
>
>The thingie need not itself emit representations (at least in this
>terminology). If I write a document _about_ a galaxy, it is not the galaxy
>which emits the representation, nor is it "my understanding of the galaxy"
>(a conceptual resource) which emits the representation, rather it is the
>HTTP server -- which I control.

OK, so in the REST architectural description, as I understand it, the 
'resource' here is the conceptual entity which responds to requests 
by emitting representations. It is "conceptual"  because it might be 
preserved through changes in your server hardware and software, 
protocol changes, etc., i.e. rather in the sense in which a virtual 
machine can be "conceptual"; but still, for all that, a thingie on a 
network. In fact it is the HTTP server, or perhaps it would be better 
to say that the HTTP server you currently maintain is the current 
concrete embodiment, or implementation, of the resource, which itself 
is abstracted into a kind of idealized information-source, a function 
from times to representation-sets (sets because the REST architecture 
allows the recipient some leeway in determining the exact 
representational form to be used, cf. 5.2.1 para 4).  But it is most 
definitely not a galaxy.  In fact, things like galaxies play no role 
whatsoever in the REST architectural description, which is exactly as 
it should be; it also does not mention denotation, reference (in the 
semantic sense) or interpretations anywhere; also quite correctly. 
(The document does speak of semantics in several places, but I 
believe the word is being used there is a somewhat different sense 
than I have been using it.)

>If we can come to agreement about the distinction between these two senses
>of "representation"

? What two senses?

Pat

>then perhaps we can agree to use different words to
>distinguish these senses (I care little which words are used). How would you
>prefer to describe each of these uses?
>
>Jonathan


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

Received on Wednesday, 23 July 2003 00:20:00 UTC