W3C home > Mailing lists > Public > public-awwsw@w3.org > May 2010

Re: [pedantic-web] Re: The OWL Ontology URI

From: David Booth <david@dbooth.org>
Date: Mon, 17 May 2010 16:37:06 -0400
To: Pat Hayes <phayes@ihmc.us>
Cc: Jonathan Rees <jar@creativecommons.org>, Dan Brickley <danbri@danbri.org>, AWWSW TF <public-awwsw@w3.org>
Message-ID: <1274128626.2498.3354.camel@dbooth-laptop>
On Fri, 2010-05-14 at 16:17 -0500, Pat Hayes wrote:
[ . . . ]
> Now, I guess that one could have the very same 'thing' be both a  
> resource in its own right and also be part of a content-negotiated  
> bundle, with a different URI which accesses the content negotiation  
> process. 

Yes, and that is the recommended practice: one URI for the generic thing
and one for each specific version / language / media type / whatever.

> I have a worry with this, however, as it seems to drive a  
> truck through the purpose of httpRange14, since it means there is then  
> no way, given a URI which yields a 200 level response, to figure out  
> what it denotes. 

It denotes the particular w:InformationResource that the URI denotes and
whose representation you just obtained in the 200 response.  If you want
to know more about it you might look at the content of the response for
clues or ask the owner or someone else you trust.  

This is no different than with use of the conventional web.  For
example, if you dereference http://www.nytimes.com/ you might notice
that the content returned looks an awful lot like today's front page
(web version) of the New York Times.  But unless you had some additional
information, such as looking up the domain registration to discover that
the URI is owned by the New York Times, or believing me when I say "the
URI for the New York Times online is http://www.nytimes.com/ ", you may
not know for certain.  Furthermore, if you only use it once you may not
know that it is the URI for the *current* front page, which changes
daily -- not merely the URI for the 17-May-2010 front page.  But you
soon figure that out by noticing that it changes each day or having
somebody tell you.  

> Which I thought was the whole point.  (Maybe my  
> interpretation of that ruling is too narrow. Though if so, I really  
> cannot see what the point of the ruling is.) So if someone urges this  
> idea, let me ask them: what specifies that one URI A denotes the  
> concrete resource (eg the RDF/XML document) and that the other URI B  
> denotes a more abstract entity which can provide different  
> representations based on content negotiation, when both of these URIs  
> send back identical 200-coded responses to a GET? How is the 'naming'  
> done?

Without other information you may not know.  This is not much different
from other situations in which you cannot determine the relationship
between URIs unless someone tells you, such as whether X and Y denote
the same resource.

As a similar example, the HTTP response itself does not tell you that
http://www.w3.org/TR/rdf-mt/
is the URI for the generic "current" RDF Semantics document, while
http://www.w3.org/TR/2004/REC-rdf-mt-20040210/ 
is the URI for a specific version, even though they both return a 200
response with identical content.  But the beginning of the document
tells you:
[[
This Version:
        http://www.w3.org/TR/2004/REC-rdf-mt-20040210/
Latest Version:
        http://www.w3.org/TR/rdf-mt/
]]

Actually, in the case of content negotiation the HTTP response *should*
give you some help, because the "Content-Location:" header can be used
to indicate the URI of the specific variant that was returned, as
RFC2616 explains:
[[
14.14 Content-Location

   The Content-Location entity-header field MAY be used to supply the
   resource location for the entity enclosed in the message when that
   entity is accessible from a location separate from the requested
   resource's URI. A server SHOULD provide a Content-Location for the
   variant corresponding to the response entity; especially in the case
   where a resource has multiple entities associated with it, and those
   entities actually have separate locations by which they might be
   individually accessed, the server SHOULD provide a Content-Location
   for the particular variant which is returned.

       Content-Location = "Content-Location" ":"
                         ( absoluteURI | relativeURI )

   The value of Content-Location also defines the base URI for the
   entity.

   The Content-Location value is not a replacement for the original
   requested URI; it is only a statement of the location of the resource
   corresponding to this particular entity at the time of the request.
   Future requests MAY specify the Content-Location URI as the request-
   URI if the desire is to identify the source of that particular
   entity.
]]




-- 
David Booth, Ph.D.
Cleveland Clinic (contractor)

Opinions expressed herein are those of the author and do not necessarily
reflect those of Cleveland Clinic.
Received on Monday, 17 May 2010 20:37:37 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 20:21:08 UTC