Skip to content

Remove language about applicators aggregating annotation results #1313

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

Closed
handrews opened this issue Sep 22, 2022 · 0 comments · Fixed by #1318
Closed

Remove language about applicators aggregating annotation results #1313

handrews opened this issue Sep 22, 2022 · 0 comments · Fixed by #1318
Assignees
Labels
clarification Items that need to be clarified in the specification core
Milestone

Comments

@handrews
Copy link
Contributor

This section:

7.7.1.3. Annotations and Applicators
In addition to possibly defining annotation results of their own, applicator keywords aggregate the annotations collected in their subschema(s) or referenced schema(s).

should be removed or reworked. The "aggregation" language came from earlier ideas where annotations would define semantics for combining multiple values attached to the same instance location. For example, readOnly and writeOnly would be ORed. A few draft-07 implementations actually did support this to some degree.

We later decided that JSON Schema should not attempt to do this sort of thing, and would just defer all annotation usage logic to applications.

But because of that history, I had a mindset of applicators actively propagating annotations. This contributed to the confusion around the properties->additionalProperties and similar annotation communication paths, as it made it more ambiguous as to where the decision to produce or remove annotations occurred.

Ultimately, the consensus settled on keywords being able to produce annotations for use within schema objects, and only being dropped in response to failed validation at the schema object level.

This means that applicators do not play a role in managing annotations other than their own, and therefore §7.7.1.3 can be dropped entirely. There are no special interactions between annotations and applicators as classes of keywords.

@handrews handrews added this to the draft-next milestone Sep 22, 2022
@handrews handrews self-assigned this Sep 22, 2022
@gregsdennis gregsdennis added clarification Items that need to be clarified in the specification and removed Type: Maintenance labels Jul 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
clarification Items that need to be clarified in the specification core
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants