Print

Print


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    <[log in to unmask]>    http://www.miketaylor.org.uk
)_v__/\  "There are three rules for writing a novel.  Unfortunately,
	 no one knows what they are" -- W. Somerset Maugham.