Re: URI Comparisons: RFC 2616 vs. RDF

On 1/17/11 11:37 AM, Dave Reynolds wrote:
> On Mon, 2011-01-17 at 16:51 +0100, Martin Hepp wrote:
>> Dear all:
>>
>> RFC 2616 [1, section 3.2.3] says that
>>
>> "When comparing two URIs to decide if they match or not, a client
>> SHOULD use a case-sensitive octet-by-octet comparison of the entire
>>      URIs, with these exceptions:
>>
>>         - A port that is empty or not given is equivalent to the default
>>           port for that URI-reference;
>>         - Comparisons of host names MUST be case-insensitive;
>>         - Comparisons of scheme names MUST be case-insensitive;
>>         - An empty abs_path is equivalent to an abs_path of "/".
>>
>>      Characters other than those in the "reserved" and "unsafe" sets (see
>>      RFC 2396 [42]) are equivalent to their ""%" HEX HEX" encoding.
>>
>>      For example, the following three URIs are equivalent:
>>
>>         http://abc.com:80/~smith/home.html
>>         http://ABC.com/%7Esmith/home.html
>>         http://ABC.com:/%7esmith/home.html
>> "
>>
>> Does this also hold for identifying RDF resources
>>
>> a) in theory and
> No. RDF Concepts defines equality of RDF URI References [1] as simply
> character-by-character equality of the %-encoded UTF-8 Unicode strings.
>
> Note the final Note in that section:
>
> """
> Note: Because of the risk of confusion between RDF URI references that
> would be equivalent if derefenced, the use of %-escaped characters in
> RDF URI references is strongly discouraged.
> """
>
> which explicitly calls out the difference between URI equivalence
> (dereference to the same resource) and RDF URI Reference equality.
>
> BTW the more up to date RFC for looking at equivalence (as opposed to
> equality) issues is probably the IRI spec [2] which defines a comparison
> ladder for testing equivalence.
>
> Dave
>
> [1]
> http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#section-Graph-URIref
>
> [2] http://www.ietf.org/rfc/rfc3987.txt
>
>
>
Dave,

Important RFC excerpt:

"A mapping from IRIs to URIs is defined, which means that IRIs can be 
used instead of URIs, where appropriate, to identify resources." .

The context for "resources" is not equivalent or identical to the notion 
of an Identifier used as a Data Object (Item or Entity) Name. This 
context is all about good old machine addressable resources.

In Linked Data context (aka. Distributed Data Object context) an 
Identifier usex as a Name Reference can de-reference to a resource that 
bears (or carries) a Representation of its Description ( a graph 
pictorial where Attribute=Value pairs coalesce around a Name Reference).

Names are Names, if they are Unique, they should be Unique. Of course, 
not so when dealing with Addresses of data, which is what the RFC 
context applies to as I understand it.

Until we clarify "Resource" confusion will reign.


-- 

Regards,

Kingsley Idehen 
President&  CEO
OpenLink Software
Web: http://www.openlinksw.com
Weblog: http://www.openlinksw.com/blog/~kidehen
Twitter/Identi.ca: kidehen

Received on Monday, 17 January 2011 16:56:55 UTC