Re: Resources and Identifiers

Dan Connolly (connolly@w3.org)
Fri, 21 Feb 1997 10:27:47 -0600


Message-Id: <330DCD03.3B936492@w3.org>
Date: Fri, 21 Feb 1997 10:27:47 -0600
From: Dan Connolly <connolly@w3.org>
To: Daniel LaLiberte <liberte@ncsa.uiuc.edu>
Cc: uri@bunyip.com
Subject: Re: Resources and Identifiers

[I started by saying that I find it useful to regard
each resource as the referent of exactly one URL,
by definition. It's not really possible to make
and refute arguments when we don't agree on the definition of
terms. So this is a goofy dialog. But I don't mind...]

Daniel LaLiberte wrote:
>  > > ... 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?
> 
> It is the conclusion of a fairly short argument.  Consider that a
> document may have an http URL and an ftp URL for the very same
> document.

Whoa... you just assumed the conclusion!

By the definition I find useful, the resource (object, document,
whatever) at ftp:... is distinct from the resource at
http:...

They're observably different: for example, the http:...
resource can be queried for its internet media type,
whereas that information about the ftp:... resource can
only be inferred heuristically.

>  The question is how do you, the client, *know* that it is
> the same document?  You could do an md5 hash of what you get back if
> it is static.  Some explicit metadata could specify that they are the
> same.  Otherwise, you don't know.

Depends on how you define things. According to the
definition I find useful, the explicit metadata are
useful for application-defined equivalence relations (ala
equal in lisp) but not for identity (ala eq in lisp).

>  When is an object really a replica
> of an object? In fact, each time you get bits in the result of a
> request, you are getting a replica of some object (in my world view).

In the general case, objects have state. I would expect
replicas to share state (mostly -- they might be only weakly
consistent). When you get a result, you get a snapshot
of the state, not a replica.

When are two resources replicas of each other? When you
get metadata (that you trust) that asserts "resource X
is a replica of resource Y." ala:

	<about href="X">
		<link rel=replica href="Y">
	</about>

>  > But I don't think there's any universal concept of 'same
>  > objects' other than 'objects referred to in exactly the
>  > same way'.
> 
> Same bits means same object,

Nope. For it to be the 'same object', everything has to be
the same: access control lists and policies, availability,
intellectual property rights,

> but for a complex object, determining
> that it has the same bits as another can be expensive (e.g. compare
> two collections).  An explicitly declared equality relationship is
> another way.  An operation for determining equality is another way.
> Same identifier is yet another way.  But I think that we will have to
> learn to live with multiple identifiers for the same object.

Er... we're writing the specs, no? We don't _have_ to live
with anything except what we agree to live with.

I suggest that eq-ness of resources is a
useful primitive, and I would like to see it in the specs.

Dan