-
-
Notifications
You must be signed in to change notification settings - Fork 214
Include mission statement on the home page #423
Conversation
✅ Deploy Preview for condescending-hopper-c3ed30 ready!
To edit notification comments on pull requests, go to your Netlify site settings. |
Include both previous and new immediate intro. Co-authored-by: Julian Berman <[email protected]>
index.md
Outdated
@@ -5,8 +5,11 @@ permalink: / | |||
--- | |||
|
|||
|
|||
**JSON Schema** is a vocabulary that allows you to **annotate** and **validate** JSON documents. | |||
**JSON Schema** is a vocabulary that allows you to **annotate** and **validate** JSON documents. It enables the confident and reliable use of the JSON data format. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think "vocabulary" is the right word here. Maybe something more like this?
**JSON Schema** is a vocabulary that allows you to **annotate** and **validate** JSON documents. It enables the confident and reliable use of the JSON data format. | |
**JSON Schema** is a JSON document that allows you to define rules to **annotate** and **validate** JSON documents. It enables the confident and reliable use of the JSON data format. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would argue that "A JSON Schema" is a "JSON document", while "JSON Schema" the specification defines a vocabulary for use within "a JSON Schema JSON document"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also, this is not something that has changed in this PR.
This PR adds to that line, but mainly it's about the additional "mission" section.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm fine if you don't want to change this now. It's just something that bothers me every time I see it and this seemed like a good opportunity to fix it. What does "vocabulary" even mean in this context? I'm pretty sure it has nothing to do with JSON Schema Vocabularies, but I can't be sure. It's just way too generic a word to be meaningful.
As I seem to be saying a lot lately, I like to describe JSON Schema as a declarative ___domain specific language for validating and annotating JSON-compatible data. I suggest we used those words, but whatever you choose is fine even if you choose to do nothing for now and come back to it later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's being used in a non technical sense I suspect. And very likely predates any technical thing called vocabularies in JSON Schema. It doesn't bother me a ton but I agree it doesn't seem like the best way to describe us either so I'm definitely not opposed to changing it either.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Indeed. I intended it in the generic term.
Maybe "lexicon" might be more accurate? Feels a little garish though. It's less commonly used.
"JSON Schema (the specifications) is a vocabulary (set of keywords with specific semantics) that allows you to..." is how I see it.
While WE here know of a JSON Schema Vocabulary, most people will not. This headline / tagline section is very much aimed at those stumbling onto the site for the first time.
This strikes me as a bit wordy. It doesn't help me understand if I'm the target audience or not.
This is too many adjectives for me. Describing the technical basis of JSON Schema is a good idea, but they can be split out into a separate sentence that defines the lingo. For example
"___domain specific" is redundant (we say it's only for JSON, that's it's "___domain"). And "grammar and syntax" I don't think is accurate (the grammar is JSON, we don't define our own grammar, we define an existing grammar's semantics).
This doesn't help me understand if I'm the target audience or not. If we absolutely have to, describe the impact on actual developers, like "Developers use JSON Schema as a reliable alternative to hard-coding validation rules in code." |
The ___domain is JSON validation and annotation, but I agree that "___domain specific" is not useful for anyone who isn't familiar with the concept of a ___domain specific language (DSL). Would this be better?
|
💯 |
The only reason I would prefer "vocabulary" or some similar term over "language" is because "language" to me includes both the grammar/syntax and the vocabulary. JSON Schema does not define any syntax, only the vocabulary. But it also seems to me "language" is a more accessible term than "vocabulary", here. |
|
||
## Mission | ||
|
||
Our mission is to enable the definition of interoperable contracts for JSON data in the form of schemas, using constraints based validation rules, while enabling and supporting use cases beyond validation. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would like to add something to this that mentions annotation by name, because the spec should ensure interoperability around producing and consuming annotations. The phrase "supporting use cases beyond validation" is vague and completely open-ended. Annotations are how additional use cases are supported, and that's what the JSON Schema project is concerned with.
Perhaps just this would do:
Our mission is to enable the definition of interoperable contracts for JSON data in the form of schemas, using constraints-based validation rules, while enabling and supporting further use cases through annotation.
I think that makes it clear that both validation and annotation are part of the interoperable contracts.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good point. Thinking on this though, I consider the use case where a schema is taken "as is" without an instance, and something is created, like a class or a database table (or 2). Are they still annotations?
I wonder if there's a new class of keywords for new vocabularies which are intended to be used without an instance in mind... maybe "declaration". I guess that could be seen as we're saying it's a "declarative" language. We have the duality being used both with and without an instance. Without an instance, it sort of becomes declarative, but still constraints based.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thinking on this though, I consider the use case where a schema is taken "as is" without an instance, and something is created, like a class or a database table (or 2). Are they still annotations?
Ooooh... excellent question! Yeah, I've tended to think of that as a different way of making use of the existing keyword classes (not just annotations - assertions like type
and applicators like properties
are part of such cases as well). But that way of declaring things with a schema is worth calling out explicitly. I think of these as "generative" use cases (generating an instance from a schema- not necessarily generating a JSON instance but usually a code generator or whatever is still working with the JSON data model which is translated further into Java, SQL, etc.
Definitely worth further thought and clear language.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm marking this "request changes" because the discussions seem to have stalled with several open questions despite the approval from earlier.
While the first part of the change makes senes, I'm not sure the "mission" part does right now. I'll move the first part of this PR to a new PR, and close this PR, in favour of further investigation on vision and planning with a deliverable being a charter and mission statement. |
Closed in favour of #487 |
Resolves json-schema-org/community#97