From: "Karen Coyle" <[log in to unmask]>

> I'm very uncomfortable with using URL's as identifiers, in general,
> although I know that the practice is wide-spread. But I don't think you
> should put "http://" in front of anything that isn't supposed to go out as
> a URL across the network.

You and me both. But that's not a argument we're going to win, not anytime
The fact that so many identifiers begin with "http" is a big part of the
reason for my proposal.

A URL is a special-case URI. You can, by inspection,  determine if a string
is a URI (it either conforms to the URI syntax or it doesn't) but you can't,
by inspection, determine if a given URI is a URL. So if you put it in the
<identifer> element that should be an assertion that it is an identifier,
and the consumer of the record upon finding a URI in the <identifier>
element should not infer that it is or is not a URL.  If he wants to know
how to "locate" the resource, he should look in <location> (where he might
find the identical string, and then can infer that that string is also a
URL; or might find that the URL is different).

Look at In the SRW
protocol we indicate what schema we want for requested records (much like
the Z39.50  preferred-record-syntax). If we want MODS records we identify
the MODS schema. We have assigned the identifier
and that string is passed in a protocol request to identify the MODS schema.
It's just a string. It does you no good to go to that location  -- well,
maybe some good, but that's coincidental, in any case it doesn't take you
directly to the schema (it "identifies" but doesn't "locate" the MODS
schema). We could have just as well called it   and
as an identifer  it would have been fine. The reason it's a good identifier
is that nobody else (besides LC) can assign a uri beginning with and that's the reason people like identifiers that begin
with http, they enable unambiguous identification.

Note also in that table besides the "identifier" column there is a "schema
location" column. These all differ from thier respective identifier. They
don't need to. For example, we could have assigned the identifier for the MODS schema, but we chose
not to (for a number of reasons -- the schema could be in many different
places, etc.)  You can think of this as analogous to a namespace identifier
(and in fact it is the same string we use for the MODS namespace identifier)
which isn't necessarily the same as the schema location.