Closed
Description
There's a little confusion and ambiguity on this topic.
- Absolute URIs (with no fragment, not even an empty one) are definitely canonical, and identify the complete schema resource.
- This implies that the same URI with an empty JSON Pointer fragment is non-canonical, but it should work, and it would be bad if an implementation did not support it.
- URIs with non-empty JSON Pointer fragment URIs, relative to the nearest base URI, are considered canonical.
- URIs with non-empty JSON Pointer fragment URIs, relative to a more distant base URI, are considered non-canonical and are not guaranteed to work.
- This was the main point of the canonical URI stuff in 2019-09.
- URIs with plain name fragments aren't discussed as canonical or non-canonical
- However, they only work with the nearest base URI so there's never any ambiguity
- Therefore, plain name fragment URIs should always work.
Things to figure out:
- Is "canonical" the right term here? IIRC @awwright thought it was not, but I had a vaguely coherent reason as to why it was (which I should look up) and I was burnt out and needed to publish it so we did that. Probably not the best process.
- Should we be framing the requirement around what URIs MUST be supported and what MAY be supported differently, in order to capture the possibilities better?
- Are there other use cases I'm missing here?