json-schema-org / json-schema-spec

The JSON Schema specification
http://json-schema.org/
Other
3.68k stars 258 forks source link

Audit normative vs informative references #471

Closed dlax closed 6 years ago

dlax commented 6 years ago

Currently, RFC8288 on "Web Linking" appears in "Informative References". Is this intended? At a first glance, I would have expected it to be normative.

handrews commented 6 years ago

You don't need to implement RFC8288 for hyperschema. We're referencing its philosophical model and terminology. A lot of the "normative" references should be "informative", actually.

handrews commented 6 years ago

@dlax I hope you don't mind but I've generalized this to track an overall audit of the references. As I noted above, I'm pretty sure it's a jumbled mess. I'll update this issue with a better explanation before going into a PR.

handrews commented 6 years ago

@awwright I notice that all of the standards that are referenced as providing the syntax for values for format and content* are listed as informative. Is that correct? The IESG statement on normative vs informative says:

Normative references specify documents that must be read to understand or implement the technology in the new RFC, or whose technology must be present for the technology in the new RFC to work.

In some sense, to implement format validation, one would need at least a partial implementation of such standards.

Compare this with listing the Linked Data Platform as a normative reference just because it defines "describedby" as a link relation. Given that JSON Schema Core defines its own refinement of "describedby", which is itself documented in the IANA registry, is LDP really a normative reference here?

@dlax depending on the answers to these, RFC 8288 may indeed be normative for hyper-schema. You definitely need to understand its concepts in section 2 (even though you would not re-implement the HTTP Link header from section 3).

awwright commented 6 years ago

@handrews I'd think they should be normative references.

My understanding is things like examples ("compare this to how XXX specification works") are informative, references to behavior defined elsewhere need to be normative.

Mere references to values defined elsewhere I suspect would be normative too. It might depend on how it's worded. For example, you don't need to import every single possible value for a link relation, importing Web Linking is sufficient.

Since we're not creating a registry for values of "format", we probably would need to normatively reference all the different behaviors for each value.

handrews commented 6 years ago

@awwright sounds good. So giving CBOR as an example of another media type that could fit the data model is informative, but the essential syntax for a value, or a closed enumerated set, would probably be normative. An open enumerated set (such as link relations) would only need to reference where the concept and/or registry is defined normatively.

handrews commented 6 years ago

Merged #496