The Tabular JSON project can perhaps be succinctly summed up as “the protocol that is also a serialization”. The idea was to make it possible to have programs that can be developed independently or written in different languages be able to nevertheless work on the same data structures. In some ways, this is similar to Protobuf or Msgpack.
At the same time, the system should incur minimal additional dependencies. So,
whereas with something like Protobuf or Msgpack, you’d need some package to
work with those formats, JSON is handled by a plethora of various tools. Most
importantly, there’s a module in Python’s standard library, which makes parsing
any serialized data as easy as json.load().
This is easier even than that other ubiquitous data format, CSV/TSV, which is non-standardized and generally requires additional special parsing and various hacks to store complex linguistic data.
By contrast, the data one gets from json.load() is intended to be usable
as-is, already completely parsed.
I talk about the project in more detail in Roussel (2024).
There is a JSON schema for validating documents that use this format, available here:
There is also a specification document for Tabular JSON.
rem_convert: https://git.noc.ruhr-uni-bochum.de/comphist/rem_convert