Capability Open Knowledge Format

Semantic Layer

Your team and your AI tools read the same definitions.

Point a model at an undocumented warehouse and it does what it always does with missing context: it fills the gap. Invented joins, half-right column names, a metric defined three different ways in three answers. So every metric, dimension and data model gets a curated, machine-readable definition your tools read before they write SQL. We author the metadata; you bring the model.

How it works: data models in, concept files out

The layer is built once, versioned like code and updated as your data model evolves.

Authoring pipeline
  1. 01

    Inventory

    Data models, columns, grain and definitions are collected from your warehouse — and from the people who own them.

  2. 02

    Author

    Each metric, dimension and data model becomes one markdown concept file. Written by humans, never inferred.

  3. 03

    Cross-link

    Concepts reference each other explicitly: sessions link to channel grouping, channel grouping to its source table.

  4. 04

    Publish

    The result is a plain directory of OKF files in your repo or bucket — no registry, no runtime.

  5. 05

    Load

    Your LLM or agent reads the files as context before writing a line of BigQuery SQL.

The format: Google’s Open Knowledge Format (OKF)

OKF is an open specification Google published in June 2026. A knowledge base is a directory of markdown files — one concept per file — with YAML frontmatter on top. The format is deliberately minimal: one required field (type), a handful of optional ones (title, description, resource, tags, timestamp), and relationships expressed as explicit markdown links, not embeddings. If you can read a file, you can read your semantic layer; if you can clone a repo, you can ship it.

Why this beats a schema dump

INFORMATION_SCHEMA tells a model which columns exist; it says nothing about which table is the source of truth, what grain a data model is at, or how “non-brand” is actually defined. A curated concept file carries the definition, the caveats and the explicit links between ideas — the context a model cannot infer, because it was never written down anywhere.

What you control

A semantic layer is only useful if it says what your business means, not what a vendor assumed. Three things are yours to decide — and some things we deliberately don’t sell.

Which concepts get defined

The metric and dimension list is agreed with you, starting from the questions your team asks most often. Nothing is documented for the sake of coverage.

How a metric is defined

When two teams count a conversion differently, the definition that wins is the one you pick. We write it down and keep it consistent everywhere it is used.

Which tools read it

The files live in your own repository and warehouse, in an open format. Whichever assistant or agent your team uses can read them, and switching tools does not mean re-authoring anything.

What we don’t sell

This deserves saying plainly, because “AI-ready” usually hides a platform pitch. Here it doesn’t.

You get files.

A directory of markdown concept files with YAML frontmatter — plain text, versioned wherever you keep code, portable to any tool that reads text.

We don’t sell an LLM.

No model, no tokens, no chat UI. Bring the model your stack already runs — Gemini, Claude, GPT or anything else.

It’s metadata, not a query engine.

Nothing here executes SQL. Your agent writes the query; your warehouse runs it.

Nothing is auto-generated.

Concepts are authored and reviewed by people who know your data. The curation is the product.

Nothing leaves your project.

The layer is authored with read-only access to your warehouse, and the finished files live in your repo or bucket — under your accounts, not ours. Walk away with the directory any time.

What it changes in practice

Definitions only pay off where a question is ambiguous — and marketing questions almost always are. Each of these leans on a data model or a source you can read about.

  • “Non-brand clicks by content group” means one thing

    Two phrases in there are business definitions, not columns. Written down once, an assistant resolves them the same way every time instead of guessing per question.

    Content Groups
  • Branded is whatever you say it is

    Brand rules differ by company, market and misspelling. The definition stays yours, documented and applied identically by every tool that reads it.

    Brand vs Non-brand Queries
  • Intent labels stop being opinions

    When a query is classified as commercial, the criteria behind that label are written down — so the classification survives the person who created it.

    Query Intent
  • The source behind the number

    Every concept records which source and data model it derives from, so an answer can be traced back rather than simply trusted.

    Google Search Console

A concept file, a question and the SQL it produced

The output is text you can read. On the left, one concept file from the layer. On the right, what happens when an LLM that has read it answers a question.

concepts/non_brand_clicks_by_content_group.md Sample data
---
type: metric
title: Non-brand clicks by content group
description: Search Console clicks from non-branded queries,
  read by the content group of the landing page.
resource: bq://your-project.models.content_groups
tags: [seo, search-console]
---

Clicks come from Search Console query rows where the branded
flag is false, grouped by the content group assigned to the
landing page. Which pages count as Commercial is your rule —
it lives in [content_groups](./content_groups.md).

One concept per file: the YAML tells an agent what this is and where it lives; the body carries the human definition and its explicit links.

Your LLM + BigQuery Sample data

Which content group drove the most non-brand clicks last week?

SELECT
  content_group,
  SUM(clicks) AS non_brand_clicks
FROM `your-project.models.content_groups`
WHERE is_branded = FALSE
  AND data_date >=
  DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY)
GROUP BY content_group
ORDER BY non_brand_clicks DESC;

The SQL is representative — the point is where its table and column names came from: the concept file, not a guess.

Give your AI the context it’s been missing.

Talk to us

Free discovery call · Leave with a concept inventory to start from