are URIs identifiers?
Joaquin Miller
joaquin at netmesh.us
Thu Sep 21 03:53:14 UTC 2006
Gabe wrote:
>
>This is good stuff, Joaquin, but it seems to be at odds with the use
>of term "identifier" in the URI/web context.
>
>Any string that conforms to the URI syntax (RFC 3986) is defined as
>a URI (a type of identifier). There's no need for that URI to refer
>to exactly one entity. The URI exists simply by minting it (writing
>it down). Thus, I don't see how that aligns with the statement
>(summarizing your summary) that an identifier is a name in a context
>that "refers" (what does *THAT* mean) to a single entity.
Thanks, Gabe. I don't deny that it seems to be at odds. If it i
s at odds, then i am wrong.
I won't rise to the refers bait (though it sure is well placed!), but
if we can take that as understood, here is how i see the situation:
The namespace of URIs is defined by the URI syntax. Any string that
fits the syntax is a name in the URI namespace. [RFC 3986 : 3]
"A Uniform Resource Identifier (URI) is a compact sequence of
characters that identifies an abstract or physical resource." [RFC
3986 : Abstract]
I feel that sentence says a sequence of characters is not an URI
unless it identifies a resource.
But let's read on, and give a sympathetic reading.
I feel that Clause 3, when it says things like "Each URI begins with
a scheme name that refers ... ," means exactly that: each URI
conforms to the syntax. It does not mean that each sequence of
characters that conforms to the syntax is a URI. When Clause 1.1
says "A URI is an identifier consisting of a sequence of characters
matching the syntax rule named <URI> in Section 3," it means just
that: every URI matches the rule, not every sequence of characters
matching the rule is a URI.
But I feel it is the intention of the RFC that that each sequence of
characters that conforms to the syntax is a name in the URI
namespace. It's simply that every name in that namespace is not
necessarily a URI. I feel that fits with the X.900 definition:
"2-12.3 Name space: A set of terms usable as names."
Back at Clause 1.1, we find: "An identifier embodies the information
required to distinguish what is being identified from all other
things within its scope of identification. Our use of the terms
'identify' and 'identifying' refer to this purpose of distinguishing
one resource from all other resources, regardless of how that purpose
is accomplished (e.g., by name, address, or context). ... Likewise,
the "one" resource identified might not be singular in nature (e.g.,
a resource might be a named set or a mapping that varies over time)."
I feel that the X.900 definition works with this. That a name refers
to one entity at a certain time and at another at a different time
works with "2-12.2 Identifier: An unambiguous name, in a given naming
context." Such a name is not necessarily ambiguous. Example:
'President of the United States'. Our system of laws, here in the
middle of North America, is based on that being an unambiguous name
in the context of our system of laws. We have a special ceremony to
ensure there is no ambiguity.
And certainly a collection of entities may be an entity. Thus
'Senate of the United States' is, in the context of our Constitution,
an unambiguous identifier for a collection of one hundred persons
(sometimes less, never more).
Obviously folks sometimes say 'URI' when they mean "sequence of
characters matching the syntax rule." And that's fine in a
conversation where precision of terminology is not required or even
useful. And it is fine in a conversation where it gives as much
precision as is needed. But it helps to have a well defined jargon,
and to stick to it when it is useful.
It's fine for me and you (no insult intended, if you are a sailor) to
refer to a line using 'rope', but if we are on deck in a storm, it is
not best for us to holler to the captain through the wind "A rope has
broken", when she needs to know immediately whether the line that has
parted is a sheet, a halyard, a shroud, something else essential, or
merely a ratline.
Cordially, Joaquin
The answer to the question in the Subject is: Yes.
>... there are no identifiers except in relation to a naming
>context. With respect to a given naming context, an identifier is a
>name for a single entity. If, in a given naming context [and at the
>same time], a name refers to two or more entities, that name is not
>an identifier.
>
>Cordially, Joaquin
>
>I feel it would be a waste of our time, but if challenged I can
>quickly demonstrate that there is no such thing as an identifier
>that is unique. My point about 'unique identifier' is that it
>muddles the conversation and sows confusion. But another point is
>this: It's not useful to call an identifier that is not unique a
>'unique identifier'.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openid.net/pipermail/openid-general/attachments/20060920/2c6accc7/attachment-0001.htm>
More information about the general
mailing list