W3C home > Mailing lists > Public > xml-uri@w3.org > May 2000

Re: Injective Quality (Was: Re: URIs quack like a duck)

From: Michael Mealling <michael@bailey.dscga.com>
Date: Mon, 29 May 2000 19:16:52 -0400
To: "Clark C. Evans" <cce@clarkevans.com>
Cc: michaelm@netsol.com, abrahams@acm.org, xml-uri@w3.org
Message-ID: <20000529191652.F13862@bailey.dscga.com>
On Mon, May 29, 2000 at 07:15:09PM -0400, Clark C. Evans wrote:
> On Mon, 29 May 2000, Michael Mealling wrote:
> > Does urn:isbn:1-56592-487-9 name or locate?
> > 
> > Before you answer that be aware that there is a standardized process for
> > taking that URN, looking it up in an authoritative database and getting
> > the exact location of an electronic copy of the resource it names.
> > Now, does it name or does it locate?
> Our problem isn't this exactly.  I believe the fundamental
> question becomes:
>   "Is there an injective function from the 
>    identifier space onto the resource space?"
> Why do we need this injective quality?  Beacuse in our
> domain (namespaces), we wish the following conditional 
> to be a tautology:
>   "If the name X and the name Y are different,
>    then we know the resource identified by X is
>    different from the resource identified by Y"

URIs have this quality by definition..... It just isn't
character for character. I.e. your equality function is defined
by the URI standard and not simply a simply ASCII string comparision.
But there is still an equality function that satisfies your conditional.
You just can't get at it using strncasecmp() alone...

> The problem with URLs is that, in general, they
> lack this injective quality.  In other words, 
> I can find N distinct URLs that identify
> (resolve to) the same resource.

Just because two identifiers identify the same sequence of bits
doesn't mean they're equal. One may give different levels of 
service, policy, legal resource, jurisdiction, etc than the other.

I.e. its a statement about uniform equality:

If uri-canonicalization-function(uri1) = uri-canonicalization-function(uri2)
then in ALL cases you can assume that, at that  time, the resource identified 
by iri2 and uri2 are equal

If uri-canonicalization-function(uri1) != uri-canonicalization-function(uri2)
then, <strong>based on that information alone</strong>, there is NO case in 
which you can assume the two resource are equal.

> I am reading into your example above this
> injective quality.  Am I correct? 

Yes. As far as what you are allowed to assume based on what the
URI specification says once you've done the canonicalization step.

> P.S.
> Just for reference, the "functional" quality gives our
> domain this tautology:
>   "If the name X and the name Y are the same,
>    then we know the resource identified by X and
>    the resource identified by Y are the same."

Yes. URIs have this same tautology....

But note: same does not mean bit equal....

> And, for reference, the "surjective" quality of
> the mapping described gives our domain this property:
>   "For any resource X, there is at least one
>    name X' such that X' identifies X."

Correct. Now, this function does not say that X is a network accessible
resource. If so, then it follow that any X' can exist such that it identifies
any logical, physical, or electronic resource. Even itself or nothing...


Michael Mealling	|      Vote Libertarian!       | www.rwhois.net/michael
Sr. Research Engineer   |   www.ga.lp.org/gwinnett     | ICQ#:         14198821
Network Solutions	|          www.lp.org          |  michaelm@netsol.com
Received on Monday, 29 May 2000 19:28:46 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 23:13:59 UTC