Sets of resources, was: Re: ContentType negotiation

Pierre-Antoine CHAMPIN wrote:
"
I think once again it is necessary to keep in mind the
distinction between what is accessed through the URL, in
other words what the URL *locates*, and what the URL does
*identify*.
Though URLs allow to access a *representation* of the
identified resource, the nature of this resource can
usually not be determined from one such representation.
...
After all, this example is not that different from the W3C
logo [1] : one could argue that each version of the logo
(PNG or GIF) is a resource by itself and deserves its own
URL (it has, actually). Yet, URL [1] allows to access both,
depening only on the content negociation.
"

Right. Another way of saying this is that there are 3 resources:

"The W3C logo"
"The W3C logo in PNG form"
"The W3C logo in GIF form"

Though there are relationships between these resources, such relationships
are not defined by RFC 2396 which defines the terms "URI" and "Resource".

RDDL, the Resource Directory Description Language, solves the "problem" of
how to create such hierarchies or directories of resources. Consider "The
W3C logo" as a namespace in the formal sense of a namespace as a set of
names. The set contains the (shortened) names { PNG, GIF } , where the full
names are the URIs representing the media types (see http://www.rddl.org/
for usage of the canonical media type <=> URI mapping).

The SGML/XML ID facility is a great way to model a document as a set (the ID
value required to be unique defines). XML Namespaces are not themselves
defined as sets (to the chagrin of comp sci types who expect a namespace to
be defined as a set of names). RDDL extends the XML Namespace concept of a
namespace as a formal set.

Pat Hayes recently wrote a terrific short explanation of the relationship
between class hierarchies and sets:
http://lists.w3.org/Archives/Public/www-rdf-logic/2001Apr/0273.html

How does this related to content negotiation? When we talk about this we
mean the type of content negotiation (in HTTP) which switches on the
"Accept:" header and media type patterns.

A better approach (IMHO) would be to switch on a URI provided in an HTTP
extension header. This is integrated with RDDL via RDDL HTTP extension
headers:

(in this example a DAML schema is requested)

RDDL-Nature: http://www.daml.org/2001/03/daml+oil#
RDDL-Purpose: http://www.rddl.org/purposes#schema-validation

A server module can select and return the correct document/eneity by looking
in a RDDL document at the request URI.

Jonathan Borden
The Open Healthcare Group
http://www.openhealth.org

Received on Tuesday, 24 April 2001 10:17:49 UTC