[Playlist] Question on identifier content, URI and URN
Lucas Gonze
lgonze at panix.com
Mon Aug 28 03:42:35 UTC 2006
I can see that such a basic problem seems amazing, so let me explain the
application-level benefit we were trying to achieve. Hopefully this
will make the mess more justified, if not actually excused.
We were concerned with enabling the http scheme to be used purely for
identifiers. Let's say, for example, that there could be an identifier
"http://example.com/acdc/girlsgotrhythm" which was used to signify a
specific song, regardless of the address of any particular instance of
the song. This identifier would be a mapping to the song at a semantic
level only, so that a different rip with different settings would still
match the same underlying composition and sound recording. It might
still return something when dereferenced, like a set of metadata about
the song or an explanation of how it might be used, it just wouldn't be
dereferenceable to obtain a representation of the song.
For an example of such a URL in the real world, see
http://musicbrainz.org/track/7e1d6f5f-0ac3-4889-8b57-506a67b459fc.html .
In the olden days there were specific schemes designed for use this way.
The urn scheme, for one. :) That has changed. In recent times many
people have stopped thinking of the http scheme as being restricted to
locators; hence our need to distinguish at the XSPF level between an
http URI used as an identifier and an http URI used as a locator.
You can think of the whole mess this way: the identifier element is a
hook for metadata curators like Musicbrainz and Gracenote.
Ok, on to details.
Sebastian Pipping wrote:
> ----------------------------------------------------------------
> So in XSPF a URN is everything starting with "<scheme>:"?
> All URLs are URNs? All URIs are URNs?
All URNs are URIs but all URIs are not URNs. A URN is a URI which is
not necessarily resolvable.
> Please point me to the right grammars so I can be sure to
> implement the right thing for isURN() and isURL().
Do isURI() rather than either of those. The distinction between a name
and a locator doesn't have any meaning at the parser level.
Lucas said:
>>I don't believe that I could do this
>> many edits without creating what is essentially a new version, and there
>> aren't resources for doing a new version.
Sebastien replied:
> Which edits do you mean exactly? I don't understand.
I mean the edits it would take to put things right.
Sebastien said:
> There are several places where the URL/URN migration of
> XSPF-1 was not finished (where it still reads "URI").
> Here is my summary:
>
> * URN - 4.1.1.2.11.1.1 - playlist.link[@rel]
> * URN - 4.1.1.2.12.1.1 - playlist.meta[@rel]
> * URL - 4.1.1.2.13.1.1 - playlist.extension[@application]
> * URL - 4.1.1.2.14.1.1.1.13.1.1 - track.playlist.extension[@application]
> * URL - 6.3 Extension URIs
> * URL/URN - All testcases that match *-noturi-*.xspf
Thank you! I am very grateful that you have given the spec such a
careful proofreading. This is not a specious comment, it is great to
get such detailed comments on the spec language, which has many drafting
problems that nobody has taken the trouble to list.
I went through each of the items you have identified and found that the
reasoning which I will articulate below applied to all of them. In
every case the item was defined in one location as a URN and in another
as a URI.
It is never inaccurate to call a URN a URI. Quoting Wikipedia[1], "the
terms URL and URN are context-dependent aspects of URIs, and rarely need
to be distinguished."
I'm not arguing that the situation is good, by the way. I think that
the problem is not inconsistent use of URI vs URN so much as the use of
the terms URN and URL at all. This is confusing, but I don't believe
that the problem by itself rises to the level of something which would
justify either modifying the ratified spec in-place or chartering a new
group to write a new spec.
thanks.
-Lucas
[1] http://en.wikipedia.org/wiki/Uniform_Resource_Identifier
More information about the Playlist
mailing list