- From: Paul Prescod <paul@prescod.net>
- Date: Fri, 11 Oct 2002 16:51:14 -0700
- To: David Orchard <dorchard@bea.com>
- CC: "'Roy T. Fielding'" <fielding@apache.org>, www-tag@w3.org
You do not need to feel like you need to respond to this as the topic
has been overcooked. But I thought I had the answers to your questions
so I gave it one more shot.
David Orchard wrote:
>
>...
>
> But it's truly time to stick a fork into this debate. I just don't get it.
> I do think we are awfully close in position, believe it or not. However, to
> finish and simply for the record, my central misunderstanding is why an
> author shouldn't use a non-deferenceable scheme for URIs when their intent
> is the URI is non-dereferencable, and use dereferenceable schemes when the
> intent is dereferencing, particularly if the author may change the intent of
> the URI. Because it seems to me the author wants the client/client software
> to now do something (like deref) different when they now provide
> representations, and changing the identifier is a great way to indicate that
> intention.
You know how a big part of the XML philosophy is that the receiver of
the information decides what to do with it, not the producer? The same
goes for URIs.
The person working WITH the URI decides whether to use it as a locator
or an identifier, not the person creating the URI. The same bit of
software may use it as one thing in one case, and another in another
case. If it sees it as an XML namespace and it is trying to build unique
names, it uses it as an identifier. If it sees it as an XML namespace
and it is trying to figure out content models then it *has no choice*
but to try to use it as a locator, because the information it needs is
not otherwise available. So it hands it to a dereferencing function.
That function looks in its cache. If the information is there, then it
has successfully used the URI as an identifier. If it doesn't, it makes
an HTTP connection and uses the URI as a locator.
When I create the identifier I *do not know nor care* who will use it as
an identifier and who will use it as a locator. And furthermore, any URI
that can be only one or the other is simply disabled. Half-useful.
Once there is a REC-RDDL, thousands of EXISTING identifiers will have a
standardized way to have the other half of their nature "turned on".
Thank goodness they were designed to make this easy ("http://...") and
not hard ("urn:...").
Given that the person creating the URI doesn't know what problem you are
trying to solve in using the URI, it simply doesn't make sense for them
to tell you whether you should dereference it or not. Really, the answer
is very simple and costant across *all URIs*: "If you lack information
about the resource that you think you might get by dereferencing it,
then dereference it. If you have the information you need about the
resource, then don't dereference it." Web browsers usually fall into the
former category (caching being the exception). XML parsers usually fall
into the latter category (RDDL-lookup being the exception).
> ... I don't think that the cost of deploying a non-dereferencable
> scheme would be high - there's no methods of deref to define or have
> software understand. And I do believe that http: URIs can and should be
> used for identifiers.
There is no such thing as a completely non-dereferencable scheme. No
matter what the scheme, you can hand the URI to an HTTP proxy and it
will try to give you a representation. But as we have discussed before,
it is very difficult for it to give you a representation if there is no
location information in the identifier.
Paul Prescod
Received on Friday, 11 October 2002 19:52:04 UTC