Re: Attributes should only be there if part of the name/address space

Dan Connolly (connolly@w3.org)
Thu, 20 Feb 1997 18:09:24 -0600


Message-Id: <330CE7B4.18C21C9E@w3.org>
Date: Thu, 20 Feb 1997 18:09:24 -0600
From: Dan Connolly <connolly@w3.org>
To: Daniel LaLiberte <liberte@ncsa.uiuc.edu>
Cc: uri@bunyip.com
Subject: Re: Attributes should only be there if part of the name/address space

Daniel LaLiberte wrote:
> 
>  > Dan Connolly wrote:
>  > > It seems very useful to me to say that "objects" (i.e. resources)
>  > > are, by definition, identified by their URL.
> 
> I don't really like that definition,

Does it help if I quit using the term 'object' and say 'resource'
exclusively?

> Seems to me that the result of a resolution is an
> object too

In the case where the result is, for example, a mail
message, then that result is a resource, i.e. it
has a URL: mid:234234@abc.com.

And you might consider that all byte sequences that
md5 hash to XXX have the address md5:XXX. In that sense,
the result is also a resource.

But I find it useful to say that
without an associated URL, nothing is a resource.

>  Calling the result by some other
> name such as "entity" just adds confusion, in my opinion.

I find it useful to have a term that refers to the digital
artifact contained in an HTTP message.

> Saying that an object must be identified is like saying that a value
> in a program can not be an object unless the value is referred to by a
> symbolic variable.  This is obviously not the case if the value is the
> result of an expression and is not yet stored in any variable.

Er... to use that analogy, I'm saying that only lvalues are
resources, i.e. things that have an address.

> One might counter that a URL is an address, and objects in programs
> have addresses too, though they might not have symbolic names.  But
> that is not necessarily even true.  Consider Smalltalk where almost
> everything is an object (there are a few odd things they left out),
> and some objects don't have addresses.

Yes, all objects _do_ have addresses in smalltalk/lisp systems!
The world-view there is exactly the notion I'm trying to get
across.

>  > > i.e. different URL means, by definition, different object.
> 
> That's going too far.  A single object could have multiple URLs, so
> different URLs do not necessarily mean different objects.

That's an interesting assertion. Is it the conclusion of some
argument, or just an assertion?

I prefer to use the terms in such a way that resources
and URLs are one to one.

The way I look at things, comparison of resources is like eq.
eq is easy to define: string compare the URLs. It's a useful
notion.

Applications can define other equivalence relations, like
'alias of' or "behaves the same way w.r.t http" on top.

But I don't think there's any universal concept of 'same
objects' other than 'objects referred to in exactly the
same way'.

> Another claim (sort of an opposite) can be made: if URL-of-A ==
> URL-of-B, then A is the same object as B.

Yes, URLs and resources are exactly 1-1, in both directions.

>  > > In this case, an object isn't directly observable: the only
>  > > way to observe it is to send it messages and see what comes
>  > > back.
> 
> This indirect observation is true even if you have a bunch of bits you
> received as the result of a resolution.  How do you know what to do
> with the bits?

What I mean by directly observe is: know everything there is to
know about it. If I receive the sequence of bytes "abcde" then I
know everything there is to know about it.
It doesn't have any unobservable
state, or have any associated state that may change with time.

On the other hand, I, as the information provider, know a whole
lot more about the resource named
http://www.w3.org/pub/WWW/People/Connolly/
than you can from sending HTTP messages to it: I know it's inode
number, whether it shares state with other resources
(like http://www.w3.org/pub/WWW/People/Connolly/index.html)
and so on.

Dan