Policy
Who may call an action, expressed against the roles you already have. Denied calls never reach the warehouse.
Define an object once. Ontologiq compiles it into SQL views, governed tools for AI agents, and an explorable graph. Actions carry policy, approval and audit — declared in YAML, versioned in Git.
object: customer identity: [customer_id] state: active: status == "active" churned: last_seen < now() - 90d relations: orders: has_many(order, on: customer_id) contract: has_one(contract) actions: - issue_refund policy: role in [support, finance] approval: required above 500 audit: true
Semantic layers tell you how much. Ontologiq knows who, in what state, and what may be done.
object: order identity: [order_id] state: open: fulfilled_at is null disputed: dispute_id is not null actions: - cancel policy: role in [support] requires: state == open audit: true
Who may call an action, expressed against the roles you already have. Denied calls never reach the warehouse.
Thresholds that put a human in the loop. The agent proposes, a reviewer signs, the state changes.
Every call is a row: actor, object, arguments, outcome. Queryable with the same SQL as the rest.
Every action compiles into an MCP tool with a typed signature, its
policy attached and its audit row written. The model never sees a
connection string — it sees order.cancel and the objects it
is allowed to act on.
One package, no service to run.
Identity, state, relations, actions.
SQL to your warehouse, tools to your agents.
Runs on the warehouse you already have. Nothing leaves your Git repo.