Update dialect and meta-schema IRI semantics for v1#1712
Conversation
|
We really are breaking My primary concern now is the word itself: "schema". It's not related to what the keyword is actually doing anymore. I wonder if we keep |
These changes appear to have gotten lost, so here's trying again.
Hmm, that's a good point. The naming would be a confusing historical artifact. But, changing it could be confusing as well. People are already familiar with the concept that
From an implementation perspective, I think it would be best to stick with |
I'd say that people are familiar with the idea that But this usage doesn't mean that. I understand that the spec clearly defines what it means, but we should also align with expectations (like making I think a new keyword is warranted. |
|
You have a good point. I still think renaming is a bad idea, but you've convinced me that not renaming is also a bad idea. I'll put some more thought into it and hope others will too and share what they think. |
Would there be any realistic case of |
|
@jviotti Consider the compatibility story. One of the goals is that an implementation should be able to process a schema written for a release that it doesn't support yet if the schema doesn't include features the implementation doesn't support. I realize that's a confusing sentence, so here's an example. Let's say 2027 added So, we don't want schemas coupled to meta-schemas anymore because specifying a meta-schema hinders compatibility. What really matters isn't what meta-schema the schema author had in mind when writing the schema. What matters is what the implementation evaluating the schema supports. Meta-schemas can be used internally by implementations to validate that a schema they receive is compatible with what they support. Or, the can be used by developer tooling to limit the schema in a project to a specific release's feature set. But, schemas should be able to run on any implementation that supports the keywords used in the schema regardless of what meta-schema the schema author may have used when they wrote the schema. In the new paradigm, I would write my schema with
If your implementation uses meta-schema to validate the schema (not all do), I wouldn't exactly say that Hopefully all that makes sense. I'm still learning how best to express these concepts. Schemas self-identifying their meta-schema is at best an anti-pattern because it reduces it's compatibility capabilities. So, removing the ability to self identify a meta-schema makes sense except that it leaves |
This PR brings the semantics for dialect and meta-schema IRIs inline with what we've discussed for v1.