Lists Home |
Date Index |
Maybe the problem with URIs is the idea of the "scheme" . Take the
following URI below:
This is a URI that conforms to the "http" scheme. At the same time, this is
a URI that identifies a specific resource. Unfortunately, all I want to do
is identify the resource with the URI. I do not want it to be dereferenced
via http. So, the obvious thing to do is use a different scheme:
However, this has changed my URI. Also, the new URI must (should?) now
conform to whatever the "idea" scheme defines for that URI namespace subset.
Of course, you could have a scheme who's definition was "this does not
dereference. it is just a unique URI string." But then you have the
problem that Tim Bray mentioned:
> How about for things that you don't have any representations for right
> now but plan to in the near future? How about things that you don't
> have any way of representing right now, but you might someday?
Later, I may want to change my URI back to the first one above. Of course,
I would really have two URIs at that point (the "http" and the "idea" one).
I could depricate the "newscheme" URI, but we all know how easily that
In the end, what I really want is something like this:
This becomes my Scheme-Independent Universal Resource Identifier (SI-URI),
totally independent of the scheme. Now, if I should choose to give
"http://seairth.com/AbstractResource", one would know to apply the http
scheme to it (and presumably dereference it via http). Or, if I gave
"ftp://seairth.com/AbstractResource", one would know to apply the ftp scheme
instead. I could even give "idea://seairth.com/AbstractResource", in which
case one would apply whatever semantics go with the "idea" scheme. But,
when I give "//seairth.com/AbstractResource", one would be able to say "this
is a SI-URI. I can reference this resource globally without applying the
semantics of a given scheme to it." In all cases, the SI-URI does not
change. It always identifies the same resource. I can provide access to
the resource by as many or as few schemes as I want without ever changing
the global identifier.