> 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 soon.
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 http://lcweb.loc.gov/z3950/agency/zing/srw/records.html. 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
http://www.loc.gov/mods/ 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 http://www.loc.gov/muds/
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
http://www.loc.gov and that's the
reason people like identifiers that begin with http, they enable unambiguous
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 http://www.loc.gov/standards/mods/mods.xsd 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.