specification icon indicating copy to clipboard operation
specification copied to clipboard

Add URI Normalization

Open kjetilk opened this issue 4 years ago • 4 comments

URI Normalization is needed for consistency when comparing URIs.

RFC3986 gives some guidelines, but it is hardly enough, as we already noticed with the http vs https debate that we had because of breakage with vocabs that were being loaded. It is also extremely important for components that do any kind of query that they agree on how to tell if to URIs refer to the same resource. Another field where it is important is with HTTP proxies, if one proxy has a different idea of a resource than the server behind it, it could lead to very strange bugs, even security failures if the proxy and the server doesn't agree on what ACL applies to which resource.

We cannot eliminate false negatives but we should minimize their impact by being strict when we can.

kjetilk avatar Jul 31 '19 00:07 kjetilk

Agreed; we should be careful though given that RDF considers equivalent but syntactically different IRIs as entirely different IRIs.

RubenVerborgh avatar Aug 02 '19 10:08 RubenVerborgh

Case: https://github.com/solid/web-access-control-spec/issues/93

csarven avatar Jul 05 '21 09:07 csarven

Agreed; we should be careful though given that RDF considers equivalent but syntactically different IRIs as entirely different IRIs.

Indeed, RDF is very strict on this point, perhaps overly so (link for easy reference).

This makes it a somewhat difficult problem to address on the spec side, as we need to ensure that implementations do normalization before it enters an RDF representation.

kjetilk avatar Jul 26 '21 11:07 kjetilk

https://github.com/solid/vocab/issues/20#issuecomment-1111993208

csarven avatar Apr 28 '22 09:04 csarven

@csarven, I propose to take this issue (and the related https://github.com/solid/specification/issues/347) up in the milestone for v0.11. As long as we specify Solid's handling of identifiers, there should be no problem, so it is important to do so.

I will do a proposal based on the relevant specs and the conversation table sketch of #347, to get the conversation going again.

woutermont avatar Sep 14 '23 10:09 woutermont