Security Data Works

Standards watch

Security has an ontology. It doesn't have a semantic layer.

The claim in this essay's title failed review the first time I made it, and the objection was a good one: MITRE D3FEND is machine-readable domain semantics with real governance behind it, published as OWL, queryable with a reasoner, so in what sense does security lack a semantic layer? The objection is right in one sense of the phrase and wrong in the other, and the fact that both readings are natural is most of what this essay is about. The phrase means one thing to the ontology community and a different thing to the data-platform community, the two artifacts do different jobs, and security has built exactly one of them. So before arguing anything I owe you definitions, and then I'll walk through what security actually has, why the gap is the binding from knowledge to tables and metrics, and why a quiet Apache incubator project is the first credible candidate to close it.

Reading time: about 15 minutes. Evidence tier: A where I cite standards bodies, project repositories, and specs I fetched directly (D3FEND 1.4.0, the Apache Ossie spec and incubation record, MITRE's published tooling); B where I lean on my own lab measurements; C where I repeat coalition membership counts, since those trace to the convening vendor's blog, and where I characterize community positions. I'll flag each as it comes.

Definitions first

One phrase, two artifacts.

An ontology, in the sense I'll use throughout, is a formal model of a domain: classes of things, typed relationships between them, and logic a reasoner can run, so the model can tell you that a defensive technique counters an offensive one because both touch the same digital artifact. D3FEND is a genuine ontology in that sense, and I mean that as a strong compliment, because most of what gets called an ontology in security marketing is a taxonomy wearing the word. A semantic layer, in the data-platform sense, is a different artifact: the declared binding between business meaning and your actual tables, where "false-positive rate" is defined once, in governed SQL over named datasets, so every dashboard, query engine, and AI agent that asks computes the same number. LookML, Cube, and dbt's MetricFlow are the category examples, and none of them contains a reasoner, because the job doesn't need one. The two senses answer different questions: the ontology answers "what kind of thing is this and how does it relate," and the semantic layer answers "how is this number computed, consistently, over these tables."

Grounding method · a term used two ways

Two different things both called a semantic layerThe phrase semantic layer gets used in two conflated senses. Sense A is the business-intelligence metrics layer: consistent metric definitions and lineage over a warehouse, with category examples such as dbt, Cube, and AtScale. Sense B is formal entity grounding, or ontology: asserting what a thing is and how it relates at the level of identity, using D3FEND artifacts, OWL classes, and disjointness assertions. The two are genuinely different. Machine grounding for security data needs Sense B; a metrics layer in Sense A does not give you entity grounding.Sense A — the metrics semantic layerConsistent metric definitions and lineage over a warehouse.category examples: dbt · Cube · AtScaledefines: revenue = sum(net_amount)tracks: which tables a metric is built fromguarantees: one definition across dashboardsAnswers: how is this number computed,and consistently across reports?Sense B — formal entity groundingAsserting what a thing IS and how it relates, at identity.D3FEND artifacts · OWL classes · disjointnessasserts: a UserAccount is an actor, not a Filerelates: Process executed-from File (not = File)enables: a reasoner can find a contradictionAnswers: what kind of thing is this,and can the field hold it at all?Machine grounding for security data needs Sense B.A metrics layer keeps your numbers consistent; it does not tell you what kind of thing a field holds, so it gives you no entity grounding.
"Semantic layer" gets used for two genuinely different things. Sense A is the business-intelligence metrics layer — consistent metric definitions and lineage over a warehouse, the category dbt, Cube, and AtScale sit in — and it answers how a number is computed and keeps that computation consistent across reports. Sense B is formal entity grounding, the ontology sense: asserting what a thing is and how it relates at the level of identity, through D3FEND artifacts, OWL classes, and disjointness. Machine grounding for security data needs Sense B, because a metrics layer keeps your aggregates consistent without telling you what kind of thing a field holds, which is the question entity grounding answers and the one the reasoner checks.

I've argued elsewhere on this site, in the agentic-Kimball essay, that machine grounding for security data needs the entity-grounding sense, because a metrics layer can't tell you what kind of thing a field holds. That argument stands. This essay is its complement, because the reverse is also true: an ontology can't tell you how a metric is computed, and security's operational questions, coverage rates, false-positive rates, time to detect, are metric questions. You need both artifacts, they aren't interchangeable, and the two communities that own the phrase have each built their half without noticing the other half is missing in this domain.

The precise form of the title, then: security's semantic knowledge layer exists, and it's D3FEND. Security's semantic data layer, the binding from that knowledge to tables and governed metrics, doesn't exist in any open, machine-readable form I can find, and I went looking hard.

The inventory

What security actually has: four quadrants, no intersection.

When I swept the prior art, everything adjacent to a security semantic layer sorted into four classes, and the sorting is clean enough that I'll state it as the essay's core structural claim: each class has exactly what the others lack, and nothing sits at the intersection.

Schemas without metrics.

OCSF, Splunk's CIM, Elastic's ECS, and Microsoft's ASIM all define what security events look like, machine-readably and in detail, and none of them defines a single metric. That's not a criticism, since normalization is what they're for, but it bounds what they give you: a shared event shape with no shared account of what to compute over it. The closest historical attempt to go further was OSSEM, Roberto Rodriguez's community data model, whose relationship graph was real enough to feed the ATT&CK data-sources revamp; its repositories have been idle since late 2022 (last substantive push September 2022, not formally archived), and even at its peak it was a schema-and-relationships model, not a metrics layer. Tier A for the repo states, which anyone can check.

Metric catalogs without machine-readability.

The definitions exist, and they're good. SOC-CMM's metrics suite carries 101 named metrics aligned to its maturity model, in an unlocked spreadsheet under CC BY-SA. The SANS SOC survey and its metrics cheat sheet name the canon everyone recites: MTTD, MTTR, false-positive rate, ingest coverage. FIRST's Metrics SIG publishes incident-timing definitions, and NIST SP 800-55 is the standards-body treatment of security measurement. Every one of these is prose, PDF, or spreadsheet, which means every SOC that adopts them hand-translates each definition into its own SPL, KQL, or SQL, and two teams implementing "false-positive rate" from the same page will produce different queries. That translation loss is the exact failure OCSF exists to end at the schema layer and Sigma at the detection layer, still fully present at the metrics layer.

Coverage scores without semantics.

The one place security already exchanges machine-readable measurement is ATT&CK Navigator layers, the versioned JSON format (v5.3.2 as I write, actively maintained) that annotates a score onto each technique. Navigator layers prove the demand: teams genuinely want to hand each other "our coverage" as a file. But a layer's score is a number with no defined derivation, hand-assigned or emitted by a tool whose formula you can't see, so the format standardizes the exchange while leaving the semantics of the number private. And the organization best placed to fix that stopped: MITRE CTID's M3TID measurement model, the most explicit attempt to define threat-informed-defense measurement, was archived in June 2025. Tier A on both repo states.

Proprietary computation without a standard.

Meanwhile a commercial category computes security metrics all day: detection-posture products score rule inventories against ATT&CK, and Splunk's ITSI runs KPIs over CIM data models, which is the closest working precedent for metrics-over-a-security-schema anywhere in the industry. Every one of them is closed, and none publishes its metric definitions in a portable form, which is rational vendor behavior and also the strongest evidence that the demand is real and monetizable. The boundary on my claim: a web sweep can't see unpublished internal models, and ITSI is a working proprietary instance of the pattern, so the defensible statement is that no open, vendor-neutral, machine-readable security semantic layer exists, and that's the statement that matters if you want one you can adopt without buying it.

I also checked whether anyone had simply built a security model in the general-purpose tooling, a SOC-metrics package for dbt's semantic layer, a published Cube or LookML security model, and found nothing, which surprised me more than the standards gap did, because the tooling has been mature for years and the definitions have been sitting in SOC-CMM's spreadsheet the whole time.

Why the ontology can't fill it

D3FEND is the knowledge layer, and the knowledge can't reach the tables.

So why can't D3FEND, which really is governed machine-readable semantics, just be the semantic layer? Three measured reasons, and I want to be careful here because I admire the artifact and use it heavily.

First, the binding to actual telemetry barely exists. D3FEND 1.4.0 carries 47,228 triples and a digital-artifact taxonomy whose leaf classes are the natural join points to event data, and when I measured the crosswalk, only 14 of 607 artifact leaves carry a seeAlso link to an OCSF class, which is a 97.7 percent orphan rate on the one bridge the ontology has to the schema world (Tier B, my own count over the published ontology; the gap is the subject of an open upstream contribution, so I expect this number to improve). An ontology whose reach into the tables is 2.3 percent populated is semantic context, and context that can't name a column can't govern a query.

Second, an ontology has no quantitative semantics, and that's half the gap by construction. Description logic models class membership and relations; it doesn't do arithmetic over rows. D3FEND can say that process-spawn analysis observes process-creation events, and it cannot define mean time to detect, because there is no grain, no time window, and no aggregation anywhere in OWL's vocabulary, nor should there be. Ask two AI agents for your false-positive rate with the entire ontology in context and you'll get two plausible, different SQL formulas, which is a failure mode distinct from hallucinating a technique name: the agent isn't inventing entities, it's inventing a derivation, and only a governed metric definition stops that.

Third, and this one cost me some pride to measure, the formal layer's marginal value for machine consumption is smaller than the ontology community's framing suggests. In my own grounding benchmark (Tier B, single machine, local and frontier models), putting the schema in context collapsed silent field-mapping errors to under five percent for every model tested, and a flat 272-name vocabulary list took the frontier model's invented D3FEND technique names from 6.1 percent to zero, while adding the formal ontology layer on top of schema grounding measured at roughly zero additional lift for the frontier model on schema-expressible tasks. The grounding value is real, cheap, and mostly structural: the schema and the vocabulary do the work, and the reasoner earns its keep on a different class of question. Which means the ontology's defenders and I agree more than the title suggests, because the thing an agent needs for metric questions was never the reasoner. It's the definitions, bound to tables, and those live in the artifact security hasn't built.

The candidate

Apache Ossie, and what I found when I tried it on security.

There is now a serious attempt at an open interchange format for exactly this artifact. The Open Semantic Interchange launched in September 2025 as a Snowflake-convened coalition with Salesforce and dbt Labs as co-founders, published a v0.1.1 spec that December, and entered the Apache Incubator in June 2026 under the name Ossie, since the obvious acronym already belonged to the Open Source Initiative. The spec is a vendor-neutral YAML format for semantic models: logical datasets bound to physical tables, foreign-key relationships, model-level metrics as SQL expressions in named dialects, and an ai_context field at nearly every level for exactly the agent-grounding synonyms and instructions you'd expect in 2026. A draft ontology layer landed in May 2026, conceptual modeling with dataset mappings rather than OWL, which keeps the two-senses distinction intact rather than collapsing it. All of that is Tier A, read from the spec and the incubation record directly. The coalition's size, seventeen launch partners grown past fifty organizations, traces to the convening vendor's own blog, so treat the count as Tier C even though the direction is plainly real.

Here is the finding that made this essay worth writing: security is entirely absent. I enumerated the project's issues, discussions, and dev-list archives and found zero security, SIEM, SOC, or OCSF presence; the member roster contains no security vendor at all, no Splunk, no CrowdStrike, no Elastic, no Palo Alto; and the project's own roadmap names industry-specific semantic models as a goal with SaaS, finance, and retail as its examples. The first vertical working group, financial services aligned to FIBO, held its first formal meeting in July 2026. So the domain-model pattern is forming right now, finance went first, and nobody from our industry is in the room, which reads less like a snub and more like the two communities not sharing a vocabulary, the same collision this essay opened with.

To test whether the fit is real rather than rhetorical, I drafted a security-operations semantic model in the format: OCSF 1.8.0 event classes as fact datasets, ATT&CK techniques, ATLAS techniques, D3FEND defenses, and a Sigma rule inventory as dimension and bridge datasets, and eleven SOC metrics in governed ANSI SQL, detection coverage among them, defined once over the joins instead of re-derived per dashboard. The draft validates against the project's own tooling, and the exercise taught me three things worth passing on. The format handles the security shapes today, at definition level, without contortion; the standards themselves supply the dimension tables, which is a quiet advantage security has over most domains walking into this; and the coverage metrics come out honest only if you write the discipline into the definitions themselves, because a coverage number describes design-time structure, what content and defenses exist, and never operational efficacy, and a governed definition is exactly the place to make that caveat travel with the number.

The caveats are real and I'll state them plainly rather than let the greenfield excitement carry the paragraph. Ossie has zero ASF-blessed releases; the 0.2.0 schema on main carries an explicit warning that it may change; the reference converters are proof-of-concept CLI tools, not product features; the dialect enum today covers the BI world (ANSI SQL, Snowflake, Databricks, BigQuery, Tableau, MDX, MAQL) and not the engines a composed security stack actually runs, so ANSI SQL is your carrier; and the sharpest critiques deserve their names: Matthew Mullins has argued the MetricFlow reference implementation makes this standardization around one vendor's toolchain, David Jayatillake points out that Microsoft, holding the largest semantic-layer footprint through MDX and DAX, has little reason ever to join, and Coginiti's governance read is that a vendor-convened neutral standard carries a structural asymmetry the Apache move mitigates but doesn't erase. All Tier C as positions, all worth weighing. My read lands where the practitioner math lands: converging your metric definitions on the format is cheap and useful even if Ossie stalls, because a clean governed-metrics file is worth having regardless, while building a runtime dependency on a draft spec in 2026 would be premature.

What to do with this

The stack, stated once, and the move it implies.

The layers, so the whole argument sits in one place: the schema says what the bytes are shaped like, and that's OCSF. The ontology says what the domain means and lets a reasoner traverse it, and that's D3FEND. The detection format makes analytic logic portable, and that's Sigma. The semantic data layer would bind meanings and metric definitions to the actual tables so every tool and agent computes the same answer, and that's the layer with no standard, with Ossie as the first credible candidate. Each layer's community solved its own translation loss; the metrics layer is simply the last one still paying it.

If you run a security data platform, the practical version costs you an afternoon: pick your five most-recited metrics, write each one's definition once in governed SQL over named tables, whatever format you keep it in, and diff that against what your dashboards actually compute. In the environments I've seen, the diff is not empty, and every mismatch is a number two people are currently reporting differently to the same leadership. Whether you ever adopt an interchange format, owning your definitions is the part that pays.

For the community, the window has a clock on it. Verticals are organizing inside Ossie now, the project's roadmap explicitly invites domain models, and security would arrive with an advantage no other vertical has: our dimension tables are already open standards with governance attached, because ATT&CK, ATLAS, D3FEND, and the Sigma ruleset are exactly the reference data a domain semantic model needs, maintained by institutions rather than by whoever shows up. I think the right posture is the one that's worked for this practice elsewhere: contribute to the commons rather than own a fork of it, show up with a working model rather than a position paper, and let the definitions argue for themselves. I'm not sure the window stays open long, because first-in-domain in a standards community tends to set the vocabulary everyone after inherits, though I may be wrong about how fast anyone else moves; nothing in the sweep suggests a security team is close.

Bottom line: D3FEND settled the knowledge half of security's semantics, the data half is unbuilt, the definitions have been sitting in prose catalogs for a decade while every SOC re-derives them in vendor query languages, and for the first time there's an open, Apache-governed format shaped right for the job with nobody from security at the table. That's not a product opportunity, it's a standards gap, and those get closed by whoever shows up early with working artifacts.