Capability Open Knowledge Format

Semantic Layer

Your marketing data model documented as machine-readable concept files — a marketing semantic layer for teams pointing an LLM or agent at BigQuery.

We author the metadata; you bring the model. Every metric, dimension and mart gets a curated, AI-ready definition your tools read before they write SQL.

What you get — and what we don't sell

This deserves to be said before anything else, 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.

Your LLM guesses at your schema

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. The definitions that would fix it exist — in dashboards, in people's heads — just not anywhere a model can read.

How it works: marts in, concept files out

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

Authoring pipeline Illustration
  1. 01

    Inventory

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

  2. 02

    Author

    Each metric, dimension and mart 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 mart is at, or how “sessions” 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.

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/sessions_by_channel.md Example
---
type: metric
title: Sessions by channel
description: Daily sessions split by default channel grouping.
resource: bq://your-project.marts.mart_sessions_daily
tags: [ga4, acquisition]
---

Sessions are counted from GA4 session_start events and
aggregated daily per channel. Paid and organic follow the
default channel grouping — the exact rules live in
[channel_grouping](./channel_grouping.md).

Illustration. 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 Example

Which channel drove the most sessions last week?

SELECT
  channel_grouping,
  SUM(sessions) AS sessions
FROM `your-project.marts.mart_sessions_daily`
WHERE session_date >=
  DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY)
GROUP BY channel_grouping
ORDER BY sessions DESC;

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

Every mart the layer documents is a mart your team — and your AI — can query with confidence. These are typical starting points.

Marts

  • mart_sessions_daily sessions by channel and market
  • mart_gsc_queries Search Console clicks and impressions
  • mart_ads_spend_daily spend and clicks by campaign
  • mart_revenue_by_channel revenue and orders by channel

Sources

Representative selection — the final list depends on your stack. Source pages are linked above; detailed model pages are on the way.

Give your AI the context it's been missing.

Book an architecture review

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