Standards - Decoupling Publishers and Consumers
These standards are ultra-lightweight, RFC-style specifications. They build heavily on prior work (e.g. JSON, DSPL, JSON-LD, CommonJS/Debian/PyPI packaging). Simplicity and practicality were guiding design criteria.
- Minimal wrapping around data
- Can 'package' any kind of data
- Designed for extension – you can add your own additional structure and metadata
Data Package's flexibility means it can be used as a "transport" for any kind of data. However, this also limits the possibilities for tool integration (e.g. loading a data package into a database automatically). This limitation is addressed by extending Data Package – for example, Simple Data Format does this for tabular data.
- Designed for tabular data
- Extends data package (data in simple data format is a data package)
- Requires data to be "good" CSVs
- Provides a simple JSON-based schema to describe them ("JSON Table Schema")
The idea behind Data Package and Simple Data Format is to decouple data publishers and consumers and make it easier to build standard tooling: publishers can publish their data as a data package from their favourite app or tool and a consumer can load that package into their (different) favourite tool.
Diagram to illustrate the key decoupling concept – you can read more in the original Frictionless Data post.