Re: [URN] Re: Relative URLs and URNs

"Martin J. Duerst" <[email protected]>
Newsgroups gmane.ietf.url
Message-ID <Pine.SUN.3.95q.970131181815.246R-100000@enoshima>
On Fri, 31 Jan 1997, Daniel LaLiberte wrote:

>  > Thus spoke Omar Syed:
>  > > 2. clients must treat <NSS> as an opaque string (i.e. do not interperet)
>  > 
> Ron Daniel, Jr. writes:
>  > I think assumption 2 is in error. Clients that know the structure of
>  > a name in a particular namespace are likely to manipulate it.
> 
> I agree.  Clients, of course, can do whatever they want (whatever they
> can get away with) anyway, but they have to be able to interpret the
> structure of an identifier in order to do as much processing of it on
> their own as they can.  Forcing clients (if that were possible) to
> always consult a remote server to process the whole identifier is a
> sure way to make the system unscalable.

Forcing to consult a *remote* server is a bad thing. On the other
hand, if we would require that a client *has to* understand anything
about the structure of certain URNs, that might also be too much
of a limitation.


> Ron Daniel, Jr. writes:
>  > This is the sort of problem I am running into now in our tests, where
>  > we have a bunch of HTML pages we are retroactively assigning URNs to.
>  > Since those pages have lots of relative links in them, we can either:
>  >   1) Make sure our new URNs reflect the same filesystem arrangement
>  >      as the pages do.
>  >   2) Modify the pages to make all the references absolute.
>  > Alternative 1 certainly is unattractive, since a major point of URNs is
>  > to provide independence from the filesystem organization du jour.
> 
> First, identifiers (relative or not) may *reflect* a filesystem
> structure, but it is up to the server whether to look up an identifier
> in a filesystem, database, or pass it to a CGI program, for
> example.  So it is incorrect to assume filesystems specifically.

For what Ron is saying, the fact that it is the *filesystem* structure
is irrelevant. It could be any hierarchy. The main point is that
if you want to keep relative addressing and change the base, then
you have to keep the structure. This is a good thing with relative
URLs, because currently they mainly point to filesystems and
coordinated relocation of directory subtrees is an operation well
supported for filesystems. It's an operation that is much less
supported/common, and much less important, for other kinds of
things, for example for rote numberings and for conceptual hierarchies
(two of the things various people think URNs might be used for).


> But going beyond that, the identier may reflect a hierarchical
> structure (filesystem or not) and if you want that structure to be
> persistent, you have to arrange that old identifiers are redirected
> to the new identifiers, and the old identifiers are not reused for
> other purposes.

As far as I know, we mainly want the identifiers to be persistent.
Then if a bunch of identifiers stay persistent, their structure
will stay persistent (with the same sense of persistency as the
identifiers themselves).
For URNs (in contrast to URLs), keeping the structure when
moving from one namespace to another (or one part of a
hierarchy to another if there is a hierarchy) seems not to
be that important. In particular, for namespaces, the reason
to make a new namespace might very clearly be that you want
to have another structure. If you need the same structure,
you can always use the old names. For example, if you
take ISBN. It has structure: country/publisher/book/error code.
Now take Library of Congress numbers. If they had been happy
with the structure of ISBNs, they would have used ISBNs
(well, maybe historically, they were first).



Some more general thoughts:

One important question is whether one sees the world as primarily
hierarchical or not. File systems and the military are primarily
hierarchical, other systems are less so. Tim said in an earlier
message that throwing away the special meaning of "/" would mean
loosing generality. But this is only so if one sees the hierarchy
as the general case, and the non-hierarchical case as a one-level
hierarchy. From another viewpoint, everything is opaque, and the
hierarchical structure is just an internal affair.

Daniel, in other mails you have made references to efficiency
problems that can be alleviated by hierarchy. However, even
if an URN is completely opaque, there is no reason to have
efficiency problems. For example, the client could ask a
resolver close to it to help out, and this could go ask
another resolver if it can't deal with it. If you have
to split the load for a huge namespace, you can as well
split it on semantically meaningful boundaries as you
can split it on arbitrary boundaries (e.g. take the
two first letters of the string to decide which next
resolver to contact. For an example, in DNS currently
zones are related to ".". This creates big problems
because the .com-domain is too big. If we had a mechanism
to split such domains (I guess work is going on on such
things), then one of the obvious things would be to
split them on the last or the last two letters of the
label before .com.

Another idea is that something such as Java Applets are
part of a resolution scheme. For example, on a request for
an URN resolution, a browser recieves a (reference to) a
piece of code that it uses according to certain conventions.
Such an applet could for example do such things as say
"Hey, I know this namespace, and I know it has certain
conventions for hierarchies, and these hierarchies in
that case actually are connected to the way these things
are resolved, and I just helped resolve an URN
	aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa^xyz
which is very similar to what I have to help resolve now, namely
	aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa^pqr
so let's use (most of) the result of what I got for the
previous resolution.

Just some ideas.


Regards,	Martin.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.