Skip to content

Clarify whether plain name fragment URIs are canonical, and what it means if they are (or aren't) #937

Closed
@handrews

Description

@handrews

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?

Metadata

Metadata

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions