Layers

The different levels of abstraction in this model can be thought of as layers. Each layer adds (or removes) something to the layer below it. Services typically exist in a single layer, as they are not typically aware of the concept of layers. The layers above the underlay should be transparent, which allows for arbitrary combinations to be adapted to different use cases.

../../../_images/424249e385245e7a8282a2eb7cb99f188494e330757e141dd841d319e7912bee.svg
Presenter

The Presenter is responsible for presenting the data to the user in a meaningful way. It uses the Interpretation and uses it to create Views which it display to the user. This may involve adding additional context or information, or interacting with the user in some way.

Interpretation

The Interpretation represents the data in a form that is easier for the Presenter to understand. It is created by the Interpretation Service, which processes the data and returns matching Types

Overlay

The Overlay is the processed Underlay. It is responsible for resolving references within the data, which allows the data to be connected and linked together in a meaningful way. This may involve resolving references to external sources, or linking related pieces of data together.

Underlay

The Underlay is the deserialized Source Layer in the form of a structure. It represents the raw data in a more organized form, which makes it easier for the Overlay to process and resolve references. The Underlay is the starting point for the data processing pipeline, and all subsequent layers build on top of it.

Source Layer

The Source Layer is the source of the data. It can be thought of as the raw, unprocessed data that is fed into the data processing pipeline. Currently, only JSON is officially supported as a source, but it is possible to extend the system to support other mime types such as XML or YAML.

These layers provide a high-level overview of the data processing pipeline, but there are many other layers at play as well. For more information on all layers see the table of contents below.