Erik Hetzner writes: > > Not quite. Embedding a DOI in an info URI (or a URN) means that > > the identifier describes its own type. If you just get the naked > > string > > 10.1111/j.1475-4983.2007.00728.x > > passed to you, say as an rft_id in an OpenURL, then you can't > > tell (except by guessing) whether it's a DOI, a SICI, and ISBN or > > a biological species identifier. But if you get > > info:doi/10.1111/j.1475-4983.2007.00728.x > > then you know what you've got, and can act on it accordingly. > > It seems to me that you are just pushing out by one more level the > mechanism to be able to tell what something is. > > That is - before you needed to know that 10.1111/xxx was a DOI. Now > you need to know that info:doi/10.1111/xxx is a URI. > > Without external knowledge that info:doi/10.1111/xxx is a URI, I can > only guess.
Yes, that is true. The point is that by specifying that the rft_id has to be a URI, you can then use other kinds of URI without needing to broaden the specification. So: info:doi/10.1111/j.1475-4983.2007.00728.x urn:isbn:1234567890 ftp://ftp.indexdata.com/pub/yaz [Yes, I am throwing in an ftp: URL as an identifier just because I can -- please let's not get sidetracked by this very bad idea :-) ] This is not just hypothetical: the flexibility is useful and the ecapsulation of the choice within a URI is helpful. I maintain an OpenURL resolver that handles rft_id's by invoking a plugin depending on what the URI scheme is; for some URI schemes, such as info:, that then invokes another, lower-level plugin based on the type (e.g. "doi" in the example above). Such code is straightforward to write, simple to understand, easy to maintain, and nice to extend since all you have to do is provide one more encapsulated plugin. > (Caveat: I have no idea what rft_id, etc, means, so maybe that > changes the meaning of what you are saying from how I read it.) No, it's doesn't :-) rft_id is the name of the parameter used in OpenURL 1.0 to denote a referent ID, which is the same thing I've been calling a Thing Identifier elsewhere in this thread. The point with this part of OpenURL is precisely that you can just shove any identifier at the resolver and leave it to do the best job it can. Your only responsibility is to ensure that the identifier you give it is in the form of a URI, so the resolver can use simple rules to pick it apart and decide what to do. _/|_ ___________________________________________________________________ /o ) \/ Mike Taylor <m...@indexdata.com> http://www.miketaylor.org.uk )_v__/\ "There are three rules for writing a novel. Unfortunately, no one knows what they are" -- W. Somerset Maugham.