The Ontology Stack
BluntDashboard’s domain model is grounded in a six-layer ontology stack, plus the REA accounting pattern. Each layer extends the one below it, and each provides specific vocabulary used in this specification.
graph BT
BFO["<b>BFO 2020</b><br/>Basic Formal Ontology<br/><i>ISO/IEC 21838-2</i>"]
IAO["<b>IAO</b><br/>Information Artifact Ontology"]
CCO["<b>CCO</b><br/>Common Core Ontologies"]
IOF["<b>IOF</b><br/>Industrial Ontologies Foundry"]
FIBO["<b>FIBO</b><br/>Financial Industry Business Ontology"]
PKO["<b>PKO</b><br/>Procedural Knowledge Ontology"]
REA["<b>REA</b><br/>Resources, Events, Agents<br/><i>ISO 15944-4</i>"]
IAO -->|extends| BFO
CCO -->|extends| BFO
CCO -->|imports| IAO
IOF -->|extends| CCO
IOF -->|imports| IAO
FIBO -.->|pragmatic use| BFO
PKO -->|extends| BFO
PKO -->|imports| IAO
REA -.->|complements| BFO
BFO 2020
Section titled “BFO 2020”Basic Formal Ontology (ISO/IEC 21838-2) is the upper ontology — the root of the stack. It provides exactly two top-level categories:
| Category | BFO Class | Definition | BluntDashboard examples |
|---|---|---|---|
| Continuant | BFO:0000002 | Entity that persists through time while maintaining identity | Products, assets, templates, classification settings |
| Occurrent | BFO:0000003 | Entity that unfolds in time — has temporal parts | Orders, ingest runs, sync processes, mart refresh jobs |
Key BFO classes used in this spec:
| Class | Parent | What we use it for |
|---|---|---|
| Independent Continuant | Continuant | Products (material things with causal unity) |
| Generically Dependent Continuant | Continuant | Information content (can be copied between bearers) |
| Specifically Dependent Continuant | Continuant | Qualities (classification status, confidence score) |
| Quality | Spec. Dep. Continuant | Measurable properties of entities |
| Role | Spec. Dep. Continuant | Designer role, fulfillment role — context-dependent |
| Function | Spec. Dep. Continuant | Cron trigger function, queue dispatch function |
| Disposition | Spec. Dep. Continuant | Tendency to behave a certain way (sync disposition) |
| Process | Occurrent | Things that happen — orders, ingest runs, sync jobs |
| Temporal Region | Occurrent | Time intervals — sale dates, reporting windows |
| Site | Continuant | Where processes occur — API endpoints, queue bindings, R2 buckets |
Key BFO relations:
| Relation | Domain → Range | BluntDashboard use |
|---|---|---|
participates_in | Continuant → Occurrent | Staff participates in order lookup |
realizes | Process → Function/Role | Ingest run realizes cron function |
precedes | Occurrent → Occurrent | Raw ingest precedes core transform precedes mart refresh |
has_quality | Ind. Continuant → Quality | Product has classification quality |
inheres_in | Dep. Continuant → Ind. Continuant | Role inheres in person |
Information Artifact Ontology provides classes for information content — the backbone of a data-heavy platform like BluntDashboard.
| Class | Definition | BluntDashboard mapping |
|---|---|---|
| Information Content Entity (ICE) | Generically dependent continuant that is about something | Design assets, tag classifications, combo suggestions |
| Data Item | ICE intended as a truthful representation | Individual data records |
| Measurement Datum | Data Item representing a measurement | Daily sales figures, confidence scores |
| Identifier | ICE that denotes an individual | combo_id, product_id, run_id |
| Document | ICE that is a standalone artifact | CSV exports |
| Report | Document recording outcomes of a process | Combo logs (record of creative testing) |
| Dataset | Collection of data items | performance_measurement_dataset |
| Objective Specification | ICE prescribing a desired outcome | Classification settings (thresholds) |
| Plan Specification | ICE prescribing a set of actions | Combo templates |
| Action Specification | Part of a Plan Specification | Individual template actions |
| Information Bearing Entity (IBE) | Material entity carrying an ICE | R2 objects, database rows |
Key IAO relations:
| Relation | Use |
|---|---|
is_about | Tag classification is_about a product collection |
denotes | Product-asset mapping: asset denotes product |
concretized_by | Design asset ICE concretized_by R2 object IBE |
Common Core Ontologies extend BFO with mid-level concepts for agents, acts, and measurements.
| Class | Definition | BluntDashboard mapping |
|---|---|---|
| Agent | BFO entity capable of acting | Staff members, Workers (as EngineeredSystems), Shopify API |
| Person | Agent that is a human being | Staff with roles (Ops, Creative, Design, Fulfillment) |
| Organization | Agent that is a group | Blunt Cases (the company) |
| Act | Process performed intentionally by an agent | Tag classification act, designer assignment act |
| Designator | ICE that designates an entity | Combo ID string, product identifier |
| Nominal Measurement | Classification into named categories | winner, top_riser, banana, archive_candidate, none |
| Ratio Measurement | Measurement on a ratio scale | Total sales count, units sold |
| Interval Measurement | Measurement on an interval scale | Date-bounded sales windows (7-day, 14-day, 30-day) |
| Artifact | Material entity made by agents | Physical phone cases (products) |
| Currency | Unit of monetary measurement | Order currency (USD, etc.) |
Industrial Ontologies Foundry provides industrial vocabulary built on CCO.
| Class | Definition | BluntDashboard mapping |
|---|---|---|
| MaterialArtifact | Physical artifact with causal unity | Products (phone cases) — the core entity |
| EngineeredSystem | System designed to perform functions | Cloudflare Workers, Shopify API, PlanetScale |
| Capability | Ability of a system to perform a function | Worker’s ability to process queue messages |
| Assembly | Composite artifact | Combo (assembly of products for testing) |
We use IOF’s MaterialArtifact as the primary type for products because phone cases are physical artifacts manufactured through industrial processes — not just abstract catalog entries.
Financial Industry Business Ontology provides commercial transaction patterns. We use FIBO pragmatically — adopting its conceptual patterns without importing its full (non-BFO-aligned) class hierarchy (ODR-003).
| Pattern | FIBO concept | BluntDashboard use |
|---|---|---|
| Commercial transaction | Agreement / Contract | Order as exchange event |
| Product lifecycle | Product / Service | Product launch → classification → archive |
| Structured identifier | Identifier scheme | Combo ID convention TYPE-PRODUCT-COUNT-AUDIENCE-SEQ |
Procedural Knowledge Ontology provides vocabulary for describing processes with steps, executions, and verification.
| Class | Definition | BluntDashboard mapping |
|---|---|---|
| Procedure | Specification of steps to follow | Shopify bulk sync procedure, asset ingest procedure |
| Step | Individual action within a procedure | Initiate bulk query, poll for completion, download JSONL, parse, upsert |
| ProcedureExecution | Instance of carrying out a procedure | A specific ingest run (procedure_execution_record row) |
| Verification | Step that checks an outcome | Checksum comparison, watermark validation |
| IssueOccurrence | Problem encountered during execution | API rate limit hit, download failure, parse error |
| FallbackStep | Alternative path when a step fails | Retry with backoff, skip and log, DLQ routing |
| ExecutionStatus | State of an execution | initiated, polling, downloading, parsing, upserting, completed, failed |
PKO is central to how we describe every background job in the scenarios.
Resources, Events, Agents (ISO 15944-4) provides the economic/accounting lens that complements the BFO stack.
| Concept | Definition | BluntDashboard mapping |
|---|---|---|
| Economic Resource | Thing of economic value | Products (inventory), design assets, analytics data |
| Economic Event | Activity affecting resources | Sale (order), ingest (data acquisition), fulfillment |
| Economic Agent | Who participates in events | Staff, customers (via Shopify), system (Workers) |
| Duality | Every outflow pairs with inflow | Product shipped ↔ revenue received |
| Stock-Flow | Events cause resource increment/decrement | Sale decrements inventory, ingest increments data |
| Commitment | Promise for a future event | Combo template = commitment to test |
| Typification | Policy layer governs instance layer | Classification settings (type) govern individual classifications (instance) |
REA maps naturally to BluntDashboard’s commerce domain:
- Products are Economic Resources
- Orders are Exchange Events (duality: product outflow ↔ revenue inflow)
- Combo templates are Commitments (promise to execute creative testing)
- Combo logs are fulfilled Events (testing actually happened)
- Classification settings are Policies (type-level rules governing instance-level classification)
- The data pipeline is a Conversion Process (transforms raw data resource into analytics resource)
What we use, what we don’t
Section titled “What we use, what we don’t”| We use | We don’t use |
|---|---|
| BFO’s Continuant/Occurrent split for schema organization | BFO’s spatial region classes (irrelevant to a web app) |
| IAO’s full information artifact hierarchy | IAO’s journal article / publication classes |
| CCO’s Agent, Act, Measurement types | CCO’s military/intel domain extensions |
| IOF’s MaterialArtifact for products | IOF’s supply chain / manufacturing process classes |
| FIBO’s transaction patterns (conceptual) | FIBO’s full financial instrument hierarchy |
| PKO’s Procedure/Step/Execution model | PKO’s knowledge representation formalism |
| REA’s Resource/Event/Agent triad | REA’s full double-entry accounting model |
For the complete mapping of BluntDashboard entities to ontological categories, see the Domain Ontology Mapping.