Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refer to collections of vocabularies as described by meta-schemas as dialects #902

Closed
handrews opened this issue Apr 30, 2020 · 6 comments · Fixed by #985
Closed

Refer to collections of vocabularies as described by meta-schemas as dialects #902

handrews opened this issue Apr 30, 2020 · 6 comments · Fixed by #985

Comments

@handrews
Copy link
Contributor

A dialect is a collection of vocabularies plus a set of validation rules for that collection.

A meta-schema that uses $vocabulary describes a dialect, and is considered a "dialect meta-schema." https://json-schema.org/draft/2019-09/schema and https://json-schema.org/draft/2019-09/meta-schema` are dialect meta-schemas.

A meta-schema describing a dialect consisting of a single vocabulary and its standard syntax is considered to be a "vocabulary meta-schema" as well as being a "dialect meta-schema." https://json-schema.org/draft/2019-09/meta/validation and https://json-schema.org/draft/2019-09/meta/hyper-schema are vocabulary meta-schemas.

We should make this clear in the spec as the "dialect" terminology has proven helpful in discussions elsewhere.

@handrews handrews added the core label Apr 30, 2020
@handrews handrews added this to the draft-08-patch1 milestone Apr 30, 2020
@Relequestual Relequestual self-assigned this Jul 4, 2020
@Relequestual
Copy link
Member

Relequestual commented Jul 4, 2020

Relevant:

I note that while we talk about how $schema represents an identifier for a "feature set", we don't define what that phrase actually means.

The "$schema" keyword is both used as a JSON Schema feature set identifier and
as the identifier of a resource which is itself a JSON Schema, which describes the
set of valid schemas written for this particular feature set.

@Relequestual
Copy link
Member

Also relevant

Meta-schemas that do not use "$vocabulary" SHOULD be considered to
require this vocabulary as if its URI were present with a value of true.

@handrews
Copy link
Contributor Author

handrews commented Jul 4, 2020

@Relequestual

I note that while we talk about how $schema represents an identifier for a "feature set", we don't define what that phrase actually means.

Yup, that's exactly what this is about! We should say "dialect" rather than "feature set", although the phrase "feature set" may be useful in explaining what a dialect is. But obviously it is not sufficient on its own to explain it.

I have a spreadsheet of dialect vs vocabulary and I have no idea why I didn't link it when I filed this.

https://docs.google.com/spreadsheets/d/18SIXnzyjXTJZgqeo5W-qIEwq-bNKXb5M76Pq_47r2Is/edit?usp=sharing

@Relequestual
Copy link
Member

I expect this will be one of the later issues to get closed out when most others for the milestone are done.
Part of a final pass, if you like.

@Relequestual
Copy link
Member

I can't quite decide if the PR was enough.
I guess all we can ask is we try to confirm this with a final pass.

@handrews
Copy link
Contributor Author

@Relequestual the important thing was to get the term in there at all, so it's "official". We should definitely look for it in the final pass, but it doesn't have much practical effect if it's missing in a few places. "dialect" is defined because in my experience it's a good word for a concept that didn't have a word, not because it changes any implementations.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants