A Multi-Model Abstract Data Type

An abstract data type (ADT) is a mathematical model for data types, where a data type is defined by its behavior (semantics) from the point of view of a user of the data, specifically in terms of possible values, possible operations on data of this type, and the behavior of these operations. This contrasts with data structures, which are concrete representations of data, and are the point of view of an implementer, not a user.

— Wikipedia Article on Abstract Data Type
This specification defines a multi-model abstract data type (mm-ADT) capable of representing the logical structure and idiomatic processes of common database data types (model-ADT) such as relational tables, n-ary property graphs, RDF statements, document trees, wide-column tuples, key/value pairs, and any hybrid or novel ADT to come.

mm-ADT’s data model and operations encapsulate the many structural and procedural patterns common to all databases. Auxiliary structures such as indices, denormalized data locations, sort orders, and schemas are implicitly exposed to the optimizer (at compile-time) and the processor (at runtime) via data access paths that exist outside the model-ADT’s primary, logical structure. By abstracting away the physical encoding and supporting optimizations, query language compilers and processing engines are able to benefit from the custom features of the underlying stor