🤖 AI Summary
Modern JSON Schema (starting from the 2019-09 draft) introduces annotation dependencies and dynamic references, leading to semantic collapse, undecidability of satisfiability checking, and exponential schema bloat.
Method: We propose the first formally verified method for eliminating annotation dependencies via semantic restructuring, static keyword analysis, and equivalence-preserving transformations—rewriting modern schemas into semantically equivalent classical schemas.
Contribution/Results: We rigorously prove that exponential blowup in the worst case is unavoidable during dependency elimination, and we design a practically efficient algorithm achieving sub-exponential runtime in practice. Experimental evaluation demonstrates that our algorithm significantly outperforms the theoretical lower bound, enabling reliable schema validation and seamless integration with existing toolchains. This overcomes a critical barrier hindering the migration of classical satisfiability-checking techniques to modern JSON Schema.
📝 Abstract
JSON Schema is a logical language used to define the structure of JSON values. JSON Schema syntax is based on nested schema objects. In all versions of JSON Schema until Draft-07, collectively known as Classical JSON Schema, the semantics of a schema was entirely described by the set of JSON values that it validates. This semantics was the basis for a thorough theoretical study and for the development of tools to decide satisfiability and equivalence of schemas. Unfortunately, Classical JSON Schema suffered a severe limitation in its ability to express extensions of object schemas, which caused the introduction, with Draft 2019-09, of two disruptive features: annotation dependency and dynamic references. These new features undermine the previously developed semantic theory, and the algorithms used to decide satisfiability for Classical JSON Schema are not easy to extend. One possible solution is rewriting a schema written in Modern JSON Schema into an equivalent schema in Classical JSON Schema. In this paper we prove that the elimination of annotation dependent keywords cannot, in general, avoid an exponential increase of the schema dimension. We provide an algorithm to eliminate these keywords that, despite the theoretical lower bound, behaves quite well in practice, as we verify with an extensive set of experiments.