Re: Relative URLs and URNs
Keith Moore <[email protected]>
| Newsgroups | gmane.ietf.url |
|---|---|
| Message-ID | <[email protected]> |
> >> If all URNs are syntactically opaque URLs, are we not imposing a > >> restriction on all URNs that they cannot use the relative URL mechanism? > > > >Yes, but this is a feature. Relative URLs wire relationships between > >resources into the resource name itself, which hurts long-term persistence. > > Keith, you make a good point that relative URIs are limited in persistence to > the persistence of the two URIs. I don't know which two URIs you're talking about. The persistence problem, as I see it, comes from wiring non-persistent information into the URI -- in this case, the grouping of subsets of URI space -- and depending on that information to be persistent. > But Dan La L was right too in pointing out that > the relative URI may in fact be longer lived than the absolute. So it is > not a clear case. Unless I misunderstood his argument, it seemed to be predicated on the idea that old name spaces will go away and need to be changed. But since the URN framework is specifically designed so that old name spaces do not need to be changed, I don't accept the premise. As far as I can tell, if we're going to have persistent relative URNs (or equivalently, URNs that reference portions of a single resource) we're going to need a level of indirection for relative URNs just like we have for normal URNs. That is, given a resource a1 with URN "A1" and a similar resource a2 with URN "A2", (for some meaning of "similar"), it's not reasonable to assume that the portion of a1 named by "A1/foo" is similar to the portion of a2 named by "A2/foo". What we would need is some mapping layer which we could ask "what portion of a2 is equivalent to the portion of a1 named by "A1/foo"?". (and just because "A1/foo" maps to "A2/bar" doesn't mean that A2/bar maps to A1/foo) > So one should not forbid them. Disabling a consistent function in a special > case is normally a kludge, not a feature. In general, specs which tell > people what to do against their better judgement are typically suspect too. > This would be something to put in a usage document: "When relative > URIs are considered harmful and when not" My view is that since persistence is an important property of URNs, we should not define relative URNs (or URNs that specify portions of documents) until we understand how to define them without diluting the persistence of URNs. If we disallow unencoded '/' within URNs for now, we can always add relative URNs later when we understand them better. Keith