AML & Semantic Layer
The semantic layer is the layer between your warehouse and everything that consumes data (dashboards, AI, embedded analytics, self-service). It's where models, dimensions, measures, datasets, and relationships are defined as composable code objects, and it's the substrate the rest of Holistics reasons from.
Holistics's semantic layer is written in AML, a typed language purpose-built for analytics modeling: first-class language constructs for models, datasets, and relationships, not YAML key-value structures. The companion query language AQL queries the semantic layer; it gets its own section.

What's in this section
The flow runs setup → language → building blocks → patterns → operations:
- Connect Database: plumb your warehouse so models have something to read from.
- AML Overview, Why AML vs YAML, Design Principles: the language itself.
- Build Data Models and Relationships: the atoms. Tables become models; foreign keys become declarative relationships.
- Build Datasets: the unit of self-service. A dataset curates models into something business users can explore.
- Modeling Patterns and Aggregate Awareness: higher-level structures.
- AML Reusability: constants, functions, modules, extends, partials. The language features that keep large models DRY.
- Date & Time, Joins, Best Practices: operational knowledge for production semantic layers.
Where to start
- New to Holistics? Start with Connect Database, then Build Data Models.
- Coming from YAML-based tools? Read Why AML vs YAML first.
- Migrating from Looker? See the Looker migration guide.