Skip to content

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

Basic Formal Ontology (ISO/IEC 21838-2) is the upper ontology — the root of the stack. It provides exactly two top-level categories:

CategoryBFO ClassDefinitionBluntDashboard examples
ContinuantBFO:0000002Entity that persists through time while maintaining identityProducts, assets, templates, classification settings
OccurrentBFO:0000003Entity that unfolds in time — has temporal partsOrders, ingest runs, sync processes, mart refresh jobs

Key BFO classes used in this spec:

ClassParentWhat we use it for
Independent ContinuantContinuantProducts (material things with causal unity)
Generically Dependent ContinuantContinuantInformation content (can be copied between bearers)
Specifically Dependent ContinuantContinuantQualities (classification status, confidence score)
QualitySpec. Dep. ContinuantMeasurable properties of entities
RoleSpec. Dep. ContinuantDesigner role, fulfillment role — context-dependent
FunctionSpec. Dep. ContinuantCron trigger function, queue dispatch function
DispositionSpec. Dep. ContinuantTendency to behave a certain way (sync disposition)
ProcessOccurrentThings that happen — orders, ingest runs, sync jobs
Temporal RegionOccurrentTime intervals — sale dates, reporting windows
SiteContinuantWhere processes occur — API endpoints, queue bindings, R2 buckets

Key BFO relations:

RelationDomain → RangeBluntDashboard use
participates_inContinuant → OccurrentStaff participates in order lookup
realizesProcess → Function/RoleIngest run realizes cron function
precedesOccurrent → OccurrentRaw ingest precedes core transform precedes mart refresh
has_qualityInd. Continuant → QualityProduct has classification quality
inheres_inDep. Continuant → Ind. ContinuantRole inheres in person

Information Artifact Ontology provides classes for information content — the backbone of a data-heavy platform like BluntDashboard.

ClassDefinitionBluntDashboard mapping
Information Content Entity (ICE)Generically dependent continuant that is about somethingDesign assets, tag classifications, combo suggestions
Data ItemICE intended as a truthful representationIndividual data records
Measurement DatumData Item representing a measurementDaily sales figures, confidence scores
IdentifierICE that denotes an individualcombo_id, product_id, run_id
DocumentICE that is a standalone artifactCSV exports
ReportDocument recording outcomes of a processCombo logs (record of creative testing)
DatasetCollection of data itemsperformance_measurement_dataset
Objective SpecificationICE prescribing a desired outcomeClassification settings (thresholds)
Plan SpecificationICE prescribing a set of actionsCombo templates
Action SpecificationPart of a Plan SpecificationIndividual template actions
Information Bearing Entity (IBE)Material entity carrying an ICER2 objects, database rows

Key IAO relations:

RelationUse
is_aboutTag classification is_about a product collection
denotesProduct-asset mapping: asset denotes product
concretized_byDesign asset ICE concretized_by R2 object IBE

Common Core Ontologies extend BFO with mid-level concepts for agents, acts, and measurements.

ClassDefinitionBluntDashboard mapping
AgentBFO entity capable of actingStaff members, Workers (as EngineeredSystems), Shopify API
PersonAgent that is a human beingStaff with roles (Ops, Creative, Design, Fulfillment)
OrganizationAgent that is a groupBlunt Cases (the company)
ActProcess performed intentionally by an agentTag classification act, designer assignment act
DesignatorICE that designates an entityCombo ID string, product identifier
Nominal MeasurementClassification into named categorieswinner, top_riser, banana, archive_candidate, none
Ratio MeasurementMeasurement on a ratio scaleTotal sales count, units sold
Interval MeasurementMeasurement on an interval scaleDate-bounded sales windows (7-day, 14-day, 30-day)
ArtifactMaterial entity made by agentsPhysical phone cases (products)
CurrencyUnit of monetary measurementOrder currency (USD, etc.)

Industrial Ontologies Foundry provides industrial vocabulary built on CCO.

ClassDefinitionBluntDashboard mapping
MaterialArtifactPhysical artifact with causal unityProducts (phone cases) — the core entity
EngineeredSystemSystem designed to perform functionsCloudflare Workers, Shopify API, PlanetScale
CapabilityAbility of a system to perform a functionWorker’s ability to process queue messages
AssemblyComposite artifactCombo (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).

PatternFIBO conceptBluntDashboard use
Commercial transactionAgreement / ContractOrder as exchange event
Product lifecycleProduct / ServiceProduct launch → classification → archive
Structured identifierIdentifier schemeCombo ID convention TYPE-PRODUCT-COUNT-AUDIENCE-SEQ

Procedural Knowledge Ontology provides vocabulary for describing processes with steps, executions, and verification.

ClassDefinitionBluntDashboard mapping
ProcedureSpecification of steps to followShopify bulk sync procedure, asset ingest procedure
StepIndividual action within a procedureInitiate bulk query, poll for completion, download JSONL, parse, upsert
ProcedureExecutionInstance of carrying out a procedureA specific ingest run (procedure_execution_record row)
VerificationStep that checks an outcomeChecksum comparison, watermark validation
IssueOccurrenceProblem encountered during executionAPI rate limit hit, download failure, parse error
FallbackStepAlternative path when a step failsRetry with backoff, skip and log, DLQ routing
ExecutionStatusState of an executioninitiated, 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.

ConceptDefinitionBluntDashboard mapping
Economic ResourceThing of economic valueProducts (inventory), design assets, analytics data
Economic EventActivity affecting resourcesSale (order), ingest (data acquisition), fulfillment
Economic AgentWho participates in eventsStaff, customers (via Shopify), system (Workers)
DualityEvery outflow pairs with inflowProduct shipped ↔ revenue received
Stock-FlowEvents cause resource increment/decrementSale decrements inventory, ingest increments data
CommitmentPromise for a future eventCombo template = commitment to test
TypificationPolicy layer governs instance layerClassification 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)
We useWe don’t use
BFO’s Continuant/Occurrent split for schema organizationBFO’s spatial region classes (irrelevant to a web app)
IAO’s full information artifact hierarchyIAO’s journal article / publication classes
CCO’s Agent, Act, Measurement typesCCO’s military/intel domain extensions
IOF’s MaterialArtifact for productsIOF’s supply chain / manufacturing process classes
FIBO’s transaction patterns (conceptual)FIBO’s full financial instrument hierarchy
PKO’s Procedure/Step/Execution modelPKO’s knowledge representation formalism
REA’s Resource/Event/Agent triadREA’s full double-entry accounting model

For the complete mapping of BluntDashboard entities to ontological categories, see the Domain Ontology Mapping.