RE: Summary: Section 2: What does a URI identify?

Hi Brian,

> -----Original Message-----
> From: Brian McBride [mailto:bwm@hplb.hpl.hp.com]
> Sent: 16 March 2002 13:24
> To: Norman Walsh; www-tag@w3.org; skw@hplb.hpl.hp.com
> Subject: Re: Summary: Section 2: What does a URI identify?
> 
> 
> At 12:57 15/03/2002 -0500, Norman Walsh wrote:
> >At a recent telcon, Stuart Williams and I agreed to publish our one
> >page summary of section 2 of the architecture document this week. We
> >are aware of a few comments that have not been addressed yet, and I
> >expect this publication will generate a whole lot more, so please
> >remember that this is a work in progress. (In fact, discussion of this
> >document is on the agenda for the *next* TAG meeting, so 
> this document
> >cannot even purport to represent the consensus of the TAG :-).
> >
> >   http://www.w3.org/2001/tag/doc/identify.html
> >
> >                                         Be seeing you,
> >                                           norm
> 
> I'm really glad to see the tag taking a look at this issue.  RDFCore has 
> some dependencies on the outcome, so I hope to follow this discussion with

> interest.
> 
> 
> Some comments:
> 
> [[
> 2 What Does a URI Identify?
> 
> On the web URIs identify resources."Any information that can 
> be named can 
> be a resource." [RFC2396]. In fact, this relationship can be taken as 
> axiomatic: if a resource has a URI, it is identifiable on the 
> web. If it 
> does not, it is not.
> ]]
> 
> I cannot find the quoted text ("Any information ...") in RFC 2396.

Mia culpa... the quote in 2396 is "A resource can be anything that has
identity." Will substitute. The other quote was from a paper by Roy
Fielding.
 
> [[
> 
> 2.2 Resources
> ...
> The set of values mapped by a resource are equivalent resource 
> representations and/or resource identifiers (giving further 
> indirection or redirection). Dereferencing a resource identifier yields a 
> representation of the current value of the referenced resource. At some 
> time, t, the set of values that a resource maps to may be empty, which
allows 
> a concept to be identified before a realisation of the concept exists (or 
> indeed after it has been retired).
> ]]
> 
> What notion of equivalence is meant here.  How can I determine whether two

> values are equivalent?  This  para talks about "the current value".  Is 
> this the same sense of the term 'value' used in "At some time, t, the set 
> of values that ..." or is there some notion that a resource has state, and

> it is the value of that state that is referred to?

Roy may care to comment. We were trying to draw on some of the things he has
written (the referenced paper).

I think the idea here is that with something like content-negotiation
deferencing a URI yields one of number of possible representations. However,
the multiplicity of representations are regarded as equivalent because in
some sense they are representations of the same resource. 

Regarding your last question above. It seems to be a question about the
relationship between the state of a resource and a representation of that
state. I think of representations as being derived from the state of the
resource, however, its not clear to me whether these representations
actually encapsulate the full state of the resource - so we probably have
more work to do here :-)

As regards how can you determine whether two values are equivalent? I don't
think you can... I think you are being told that they are (at least within
Web Architecture) - how can I tell that a png representation and an svg
representation are equivalent of a resource are equivalent?

Another thought that occurs here is with repect to the notion of state
shared between a user-agent such as a browser and a resource, in that
resource (perhaps) makes some assumptions about what the UA is presenting to
its user. If these two get out of sync (back-button problems) unexpected
things can happen. 

> [[
> RDF provides the ability to described resources by their relationship to 
> one another which leads to the notion of existentally qualified resources.

> For example, there exists a person whose internet mailbox is identified by

> the URI mailto:timbl@w3.org. This identifies the person of Tim Berners-Lee

> by reference to the URI of his internet mailbox without it being necessary

> to assign a URI to identify the concept of the person Tim Berners-Lee.
> ]]
> 
> It is not the resource that is existentially qualified.  RDF has the
notion 
> of a b-node which performs a role similar to that of existentially 
> qualified variables in first order logic.  Just as in:
> 
>    x + 3 = 4
> 
> x is not the number 1, x is a variable, so b-nodes in RDF are not 
> resources, they are variables.  Any of the values a b-node 
> can take can be assigned a URI.

I understand your point... how would like it expressed that RDF enables you
to identify things by description rather than directly by URI?
 
> [[
> 2.3 Properties of Resources
> ...
> 
> Two different URI's may identify the same resource, but it is only the 
> authorities that asssign those URIs that can make the commitment to them 
> identifying the same resource.
> ]]
> 
> Can they?  Is that  a proposal?

It's certainly up for discussion - this is a first-cut after all.

> The alternative notion, is that each different URI denotes a different 
> resource, and to define a notion of equivalence between 
> resources.  Different notions of equivalence are possible;  
> resources A and B denote the same set of values at time t, for a set of
time 
> intervals  {[t1,t2]} or over all time.

Ok... but given that this is over future time... any commitment to
equivalence seems to me to remain in the pervue of the authorities that
assign URI's to resources.

> Consider for example, http://www.w3.org/.  This web page is mirrored; I 
> don't know what the url's of the mirrors are; lets say
http://www.w3.inria.fr/ 
> is one for the purpose of discussion.  There is presumably a propagation 
> delay between updating the master version and that 
> change propagating, so there is a period when an HTTP GET on the two 
> different URL's will return different values.  Does this mean 
> that these two URI's denote different resources, or is it that the 
> implementation is an imperfect realization of the ideal.

I think of those as two different resources... one is a mirror, one is
primary... 

> More importantly, how can we know that these two URL's will always denote 
> the same set of values.  We cannot predict the future.  The French 
> government could choose next month, to require that all web pages served 
> from French web servers contain some metadata which depends on the origin 
> of the page.  How can we say today, that two URL's will, for all time, 
> denote the same mapping to values.

I think that the important point that your making is that infact not even
the authorities that assign URI's to resources can make a commitment that
dereferencing two different URIs will yield equivalent results over all
time. Which I thhink takes us to the point that given two URI's in general:

	- you cannot tell that whether the identify the same (single)
resource.
	- you cannot tell whether they reference equivalent resources.

> [[
> We are dealing here with two time dependent mappings. Firstly a time 
> dependent mapping between and identifier and a resource ...
> ]]]
> 
> Oh that's horrible!  Later in the document it states:

The document is not finished and has been composed from different bits of
writing. It's an artifact of the TAG working in public.

> [[
> An absolute URI always means the same thing, regardless of 
> the context in which it occurs.
> ]]
> 
> and
> 
> [[
> The resource identified by a particular URI should always be "the same", 
> when it is identified by that URI.
> ]]
> 
> That seems a little contradictory.

Agreed... but there is the reality of things like the dot-com collapse, the
re-allocation of DNS names and the emergence of new web-sites and the
reassignment (by new authorities) of identifiers to new resources - which is
in part back to your comment that you cannot predict the future - and it
also in part reinforces as separation between identifiers and the resources
they identify.

> [[3.1 What about Fragment Identifiers?
> 
> If a URI contains an sharp character (a " # "), the string that follows
the 
> " # " is a fragment identifier. Fragment identifiers are a mechanism for 
> identifying part of a resource.
> ]]
> 
> Are resources atomic, or can the parts of a resource also be resources?

I think we will find opinion divided on this. We'll have to see where the
discussion get us.

My own view is not to regard URI references with fragment identifiers as
identifying resources. I'm not inflexible about that, I just haven't found a
way to go round the circle and make it join up at the end.

> [[
> This means that in general, it's not possible to determine what a fragment

> identifier means without retreiving the resource into which it points.
> ]]
> 
> This sentence uses the term 'means' which is rather ill defined here.
> 
> If this sentence is trying to say that it is not possible to determine the

> bytes which represent the fragment without retrieving a representation of 
> the whole resource, then that is true given current web practise.  But if 
> that is the sense in which the word 'means' is used here, then it is also 
> not possible to determine what http://www.w3.org/  *means* without 
> retrieving it.

I think we will have to work on what we're trying to express here. This is
also bound up with "what does a document mean".

Loosely... what this is trying to get at is that the interpretation (and
no-doubt you'll pick on the word interpretation as ill-defined) of a
fragment id is scoped by the MIME type of a representation.

> [[
> The fragment identifier identifies some sub-part of a resource
representation.
> ]]
> 
> I don't follow this.  Consider the resource identified by 
> http://example.org/doc/.  Consider that there are two representations of 
> this resource, one in say xhtml and the other in svg, and that each 
> contains a fragment '#chapter1'.  Can we not say that 
> http://example.org/doc/#chapter1 names chapter one of the 
> document?  Can we not say that http://example.org/doc/#chapter1 names a 
> resource, and that to display that resource a browser has to retrieve the
resource 
> http://example.org/doc/ and then interpret the value returned in a way
that 
> is dependent on the mimetype to compute the representation of 
> chapter 1.

I think that's something that can be organised with care... but I don't
think that its generally true. What if the representation is "text/plain"?

> The fact that computing the representation of a fragment is mimetype 
> dependent, does not mean that a URI with a fragment identifier cannot name

> an abstraction which has multiple representations with different
mime-types.

Not sure what you mean by "...computing the representation of a
fragment...".

If I understand what you are suggesting, then I think that there are case
where what are suggesting can be accomplished. But that is different from it
being the case in general.

> [[
> A URI that consists of only a fragment identifier (i.e, one 
> that begins with a " # ") always points into the document that contains
the URI, 
> irrespective of the effective base URI.
> ]]
> 
> This statement is presumably based on RFC 2396:

Yes...

> 
> [[
> 4.2. Same-document References
> 
>     A URI reference that does not contain a URI is a reference to the
>     current document.  In other words, an empty URI reference within a
>     document is interpreted as a reference to the start of that document,
>     and a reference containing only a fragment identifier is a reference
>     to the identified fragment of that document.
> ]]
> 
> However, there is an escape clause.  The same paragraph goes 
> on to say:
> 
> [[
> 4.2. Same-document References
> [...]
>     However, if the URI reference occurs in a context that is always
>     intended to result in a new request, as in the case of HTML's FORM
>     element, then an empty URI reference represents the base URI of the
>     current document and should be replaced by that URI when transformed
>     into a request.
> ]]

I think a narrow read of this only covers the case where the URI reference
is empty (no '#'). 

Do you know what this "escape clause" is intended to mean and how it is
intended to be applied?

> 
> Brian
> 

Thanks for your interest.

Best regards

Stuart

Received on Saturday, 16 March 2002 10:35:07 UTC