Research

January 2026 — May 2026 · Houston, TX

JSON Schema Processing & Validation Infrastructure

Research Engineer · Advised by Prof. Konstantinos Mamouras

How can a schema-processing system safely combine and rewrite JSON Schema definitions without silently changing what downstream references mean?

JSON Schema · compilers · testing · streaming

The core problem

When schemas are composed from multiple sources, definitions can be duplicated, renamed, or collide with other definitions that happen to use the same identifier.

Some duplicates should collapse into one definition. Others may share a name while representing different structures and need to stay separate. The dangerous case is when the system chooses incorrectly but still produces syntactically valid JSON: references resolve, downstream validation continues, and the system is operating on the wrong schema.

Approach

I worked on a schema-resolution pipeline that detects duplicate and conflicting definitions before they propagate downstream.

The transformation ran in stages: identify collisions, decide whether definitions are equivalent or distinct, rewrite conflicting definitions where necessary, and update internal references so the original relationships stay intact.

Because schemas can reference one another recursively, I treated the problem as a graph rather than as isolated JSON objects. That meant testing both individual transformations and the dependency structure those transformations created.

Testing

I built regression tests around known failure cases and graph-based tests around reference resolution. The important property was stronger than “the output is valid JSON.” The transformed schema had to preserve the meaning of every reference after rewriting.

Syntactic validity can succeed while semantic correctness fails. Once schemas define symbols, reference other definitions, and get composed and rewritten across scopes, the work looks a lot like names, binding, identity, dependency graphs, and compiler passes.