Re: URI ref comparison - clarification requested

On Thu, 26 Aug 2004 13:56:07 -0700, Roy T. Fielding <fielding@gbiv.com> wrote:
> On Thursday, August 26, 2004, at 12:56  PM, Danny Ayers wrote:
> >
> > There appears (to me at least) to be some conflict between the
> > definition of URI references in RFC 2396bis (sec 4.1) and that in RDF
> > Concepts [1]. The latter says:
> >
> > "Two RDF URI references are equal if and only if they compare as
> > equal, character by character, as Unicode strings.".
> >
> > I assume the 'ladder' of comparisons in 2396 applies to the URI
> > references defined there.
> >
> > Is this a simple naming clash (URIrefs != RDFURIrefs) and/or is this
> > an issue that should be raised on the RDF lists, or am I missing
> > something obvious?
> 
> It is just poorly phrased in the RDF specification.  RDF can define
> how RDF does comparisons of URI references in the processing of
> assertions.  However, that definition does not change the fact that
> two URI that are equivalent (by their very nature) may be falsely
> determined to be different by the RDF algorithm -- that is the nature
> of lossy optimizations.  This is not a problem when the URI references
> are provided in a reasonably canonical form.

Thanks, that clears up the part I was unsure of.

There is still an aspect of this that makes me a little uneasy, though
I doubt that it's significant even if my reasoning makes sense. If a
spec like RDF says it's using URIs but provides its own comparison
mechanism (such as the first approximation of string equiv), then
applications built to that spec may systematically, as a group, behave
differently than apps built directly to the URI spec (possibly
including support for better approximations). That systematic aspect
seems a step beyond different apps implementing different variations
of the original options.

Where the primary practical use of the URI is in the process of
obtaining a representation of the resource identified,  the
comparisons only (potentially) producing false negatives seem to
preclude problems. I suspect it might not be such a failsafe in the
general case when is used in constructing logical statements (though I
might well be mistaken, IANAL).

Cheers,
Danny. 


-- 

http://dannyayers.com

Received on Friday, 27 August 2004 15:40:23 UTC