The Basic Process and Asset Ontology
type: Ontology
version IRI: https://ontology.flandersmake.be/bpa/1.0.0
abstract: The Basic Process and Asset (BPA) Ontology provides a foundational description of process structure and the involvement of assets in the process. It is designed for manufacturing environments where processes are composed of ordered steps that consume, produce, transform, or involve various assets. The core concepts include Process, ProcessStep, Asset, and ControlFlow. The ontology is intentionally kept simple and extensible, serving as a base for more specialised domain ontologies.
description: ## Concepts ![BPA Ontology Diagram](./resources/diagram-class-bpa.png) The BPA ontology provides a foundational model for describing manufacturing processes and the assets involved in them. It focuses on process structure and asset involvement while intentionally remaining simple and extensible. **This is a base ontology** - you are expected to create domain-specific extensions by: - Defining custom asset types as subclasses of `bpa:Asset` (e.g., `Gripper`, `Cobot`, `PCB`) - Defining custom process step types as subclasses of `bpa:ProcessStep` (e.g., `Pick`, `Place`, `Push`) - Optionally defining custom process-asset relationships as subproperties of the 4 base PSAssetRelationTypes such as `bpa:consumedAsset`. See the [examples](#examples) section for a concrete demonstration of domain-specific extension for a flashlight assembly process. ### Manufacturing Elements **`bpa:ManufacturingElement`** - The base class for all manufacturing elements, including both assets and process steps. All manufacturing elements must have a unique identifier (`bpa:id`). The scope of their uniqueness is to be defined by the domain. Assets of different types could have the same `bpa:id` if the types are clearly distinguishable within that domain. For example, a robot could have the same serial number (assigned as `bpa:id`) as a flashlight housing. Note that the IRIs of these individuals *do* determine their global uniqueness. ### Assets **`bpa:Asset`** - Represents any resource involved in a manufacturing process. Assets are disjoint from ProcessSteps and can be classified into the following subtypes: - **`bpa:Human`** - Human operators or workers - **`bpa:Machine`** - Manufacturing equipment, robots, or machinery - **`bpa:Material`** - Raw materials or consumables - **`bpa:Product`** - Finished or intermediate products **`bpa:AssetType`** - A metaclass containing all subclasses of `bpa:Asset` as its instances. This enables referencing asset types (classes) as individuals in RDF stateme…
created: 2026-01-30
issued: 2026-01-30
modified: 2026-01-30
preferred namespace prefix: bpa
preferred namespace uri: https://ontology.flandersmake.be/bpa#
comment: An ontology defining basic process and asset concepts for manufacturing, including process steps, assets, and their relationships
version info: 1.0.0
introduction: The BPA Ontology supports the following aspects: - **Process structure**: Defines process steps, their sequencing via control flow, and the concept of a process head as entry point. - **Asset involvement**: Models the relationship between process steps and the assets they consume, produce, transform, or otherwise involve. - **Type vs. instance separation**: Distinguishes between process step type definitions (the plan) and process step execution instances (what actually happened). The ontology is intentionally kept simple: - It only reflects the (to be) executed steps and their potential sequences and their actual sequence during execution. Processes can fork (e.g. controlFlow from one node to multiple nodes), but the ontology does not describe the decision logic for that. Such decision logic can be applied independently (e.g. variability ontology). - It does not reflect process planning, scheduling, etc. - It does not yet support hierarchical processes (nesting). If required, a ProcessStep could point to a subProcess to allow for this. The relationship between ProcessNodes and ProcessSteps is modelled through the `processStepType` property, while the `executedProcessNode` property links actual execution instances back to the planned node in the process definition. ## Relationship to SOSA BPA is designed to complement the W3C **SOSA/SSN 2023** standard (https://www.w3.org/TR/vocab-ssn-2023/). While BPA captures process structure and asset involvement, SOSA provides the formal model for observations — measured values captured by sensors or monitoring systems during process execution. Together they enable: - Linking observations to the process steps during which they were made. - Explicit sensor and measurement provenance. - Temporal alignment between process execution and measurement data. Domain ontologies that extend BPA are encouraged to use SOSA 2023 concepts for measured data and to avoid deprecated features from earlier SOSA versions.

consumed asset
type: ObjectProperty
sub property of: ps asset relation
range: Asset
comment: Asset that is consumed during a process step

control flow
type: ObjectProperty
range: ControlFlow
comment: Links a Process to its ControlFlow definitions

control flow from
type: ObjectProperty
inverse of: from process node
comment: Inverse of fromProcessNode: links a ProcessNode to the ControlFlows departing from it.

executed process node
type: ObjectProperty
range: ProcessNode
comment: Links a ProcessStep instance to the ProcessNode it executes

from process node
type: ObjectProperty
range: ProcessNode
comment: Source ProcessNode in a ControlFlow

involved asset
type: ObjectProperty
sub property of: ps asset relation
range: Asset
comment: Asset that is involved in a process step without being consumed, produced, or transformed

next
type: ObjectProperty
property chain axiom: control flow from
property chain axiom: to process node
comment: Inferred successor ProcessNode, derived via property chain from ControlFlow.

process head
type: ObjectProperty
range: ProcessNode
comment: Points to the starting ProcessNode of a Process

process node
type: ObjectProperty
range: ProcessNode
comment: Links a Process to its constituent ProcessNodes

process step type
type: ObjectProperty
range: ProcessStepType
comment: Links a ProcessNode to its ProcessStep type definition

produced asset
type: ObjectProperty
sub property of: ps asset relation
range: Asset
comment: Asset that is produced during a process step

ps asset relation
type: ObjectProperty
sub property of: topObjectProperty
range: Asset
type: NamedIndividual
comment: A grouping of all kinds of relationships between a ProcessStep and Asset. These relationships need to be on type level, so they will be specialised for each subject/object type. There will be individuals for these properties, representing the actual flow or involvement in the process.

to process node
type: ObjectProperty
range: ProcessNode
comment: Target ProcessNode in a ControlFlow

transformed asset
type: ObjectProperty
sub property of: ps asset relation
range: Asset
comment: Asset that is transformed during a process step

end time
type: DatatypeProperty
range: dateTime
comment: End time of a process step

identifier
type: DatatypeProperty
range: string
comment: Unique identifier for a manufacturing element

start time
type: DatatypeProperty
range: dateTime
comment: Start time of a process step

timestamp
type: DatatypeProperty
range: dateTime
comment: Timestamp for a time point

value
type: DatatypeProperty
comment: Generic value property

AssetType
type: Class
equivalent class: Restriction
  has value: Asset
  on property: subClassOf
comment: Class that contains all Asset descendants as its instances.

ControlFlow
type: Class
comment: Defines the control flow between ProcessNodes in a Process, specifying the sequence and transitions between process steps.

Equipment
type: Class
subclass of: Asset
comment: Equipment used in the manufacturing process, such as machines, tools, or fixtures

Human
type: Class
subclass of: Asset
comment: A human involved in the manufacturing process, either as an operator, supervisor, or other role

ManufacturingElement
type: Class
comment: Base class for all manufacturing elements including assets and process steps

Material
type: Class
subclass of: Asset
comment: Materials used in the manufacturing process, such as raw materials or components

PSAssetRelationType
type: Class
equivalent class: Restriction
  has value: ps asset relation
  on property: subPropertyOf
comment: Class that contains all ps_asset_relation descendants as its instances.

Process
type: Class
subclass of: process step
comment: A Process, describing the control flow between its nodes.

ProcessNode
type: Class
comment: A node in a process definition representing a step in the process workflow. ProcessNodes define the structure of a Process and link to ProcessStep types.

process step
type: Class
subclass of: ManufacturingElement
type: NamedIndividual
comment: A step in a manufacturing process, either a type-level definition or an execution instance

ProcessStepType
type: Class
equivalent class: Restriction
  has value: process step
  on property: subClassOf
comment: Class that contains all ProcessStep descendants as its instances.

Product
type: Class
subclass of: Asset
comment: A product being manufactured, which can be a raw material, intermediate product, or final product

ControlFlowShape
type: NamedIndividual
type: NodeShape
property:
  path: from process node
  min count: 0
  max count: 1
property:
  path: to process node
  min count: 0
  max count: 1
target class: ControlFlow

ManufacturingElementShape
type: NamedIndividual
type: NodeShape
property:
  path: identifier
  min count: 1
  max count: 1
target class: ManufacturingElement

ProcessNodeShape
type: NamedIndividual
type: NodeShape
property:
  path: process step type
  min count: 0
  max count: 1
target class: ProcessNode

ProcessShape
type: NamedIndividual
type: NodeShape
property:
  path: process head
  min count: 0
  max count: 1
property:
  path: control flow
  min count: 0
property:
  path: process node
  min count: 0
target class: Process

ProcessStepShape
type: NamedIndividual
type: NodeShape
property:
  path: start time
  min count: 1
  max count: 1
property:
  path: end time
  min count: 0
  max count: 1
property:
  path: executed process node
  min count: 0
  max count: 1
  description: The absence of this property indicates that the step was not foreseen originally, but has been executed anyway. This can happen e.g. for additional transportation steps.
target class: process step