production planning ontology
Arkopaul Sarkar, National Institute of Standards and Technology
Boonserm Kulvatonyu, National Institute of Standards and Technology
Dusan Sormaz, Ohio University
Evan Wallace, National Institute of Standards and Technology
Gabriela Henning, CONICET
Mandvi Malik Fuloria, Ohio University
Milos Drobnjakovic, National Institute of Standards and Technology
Saruda Seeharit, Ohio University
Production Planning ontology is a domain reference ontology for process and production planning activities within various industries. It includes general terms common for different types of manufacturing industries, such as discrete manufacturing, process manufacturing, batch manufacturing, biomanufacturing, and others. Being reference ontology, it is expacted that users of the production planning ontology will extend its classes in ways compatible with common vocabulary in manufacturing domains, such as aerospace, automotive, food industries, and others.
IOF Production Planning and Scheduling Working Group
Industrial Ontology Foundry
IOF Production Planning Reference Ontology
This is initial version of Production planning ontology version 202502
initial version
Copyright (c) 2022, 2023, 2024, 2025 Open Applications Group
agential capability
making nice slides, cooking indian food, changing tools on CNC machine, NC programmer
∀x ( (Capability(x) ∧ ∃y (capabilityOf(x, y) ∧ Agent(y))) → AgentialCapability(x) )
capability that is borne by an Agent
x is a capability and there exists some y such that y is an agent and x is a capability of y
inspection plan
∀x ( (PlanSpecification(x) ∧ ∃y (prescribes(x, y) ∧ ProductInspectionProcess(y))) → InspectionPlan(x) )
Set of instructions specifying the process of verification including appropriate resources and sequence of inspections to be referenced by the manufacturing plan.
See the rationale provided under information content entity for informational entity types.
every instance of ‘inspection plan’ is defined as exactly an instance of ‘plan specification’ that ‘prescribes’ some ‘product inspection process’
machine
There is a strong argument to move this class to IOF Core.
- ISO 12100 defines “machine” as an “assembly, fitted with or intended to be fitted with a drive system other than directly applied human or animal effort, consisting of linked parts or components, at least one of which moves” NIST. - IEC 60050‑151 defines “machine” as “a system or device that uses energy to perform a specific task, often automatically” (Electropedia). - NIST (Smart Manufacturing Ontology) treats a machine as an “equipment unit that executes physical transformations autonomously or semi‑autonomously using power and control systems.” (see https://oagi.atlassian.net/wiki/spaces/IOF/pages/5952208897/Characterization+of+machines+and+tools#Trait-analysis)
physical artefact or system that transforms energy or material through guided mechanical, electrical or fluid power for performing one or more processes.
Many of the core characterizations of machine captured in the trait analysis (see https://oagi.atlassian.net/wiki/spaces/IOF/pages/5952208897/Characterization+of+machines+and+tools#Trait-analysis) cannot be formally expressed, especially energy transformation, power, control, motion and mechanical structures.
if x is a machine then x is a physical artefact and x transforms energy or material through guided mechanical, electrical or fluid power in order to perform one or more processes
- “physical artefact” emphasises that the entity is a concrete built thing. - “transforms energy or material” captures the notion of machines doing work (e.g., moving parts, powering machining, mixing, conveying). - “guided mechanical, electrical or fluid power” property points at machine having power, motion, and control (mechanical structure + power source + actuation). - “performing one or more processes” allows for generality (manufacturing, handling, processing, etc).
machine transfer process
MachineTransferProcess(x) ↔ PlannedProcess(x) ∧ ∃y ∃t ∃t1 ∃t2 ∃s ∃s1 ∃z ∃z1 (MaterialEntity(y) ∧ TemporalInstant(t) ∧ TemporalInstant(t1) ∧ TemporalRegion(t2) ∧ ProductionMachine(s) ∧ ProductionMachine(s1) ∧ Site(z) ∧ Site(z1) ∧ hasParticipantAtSomeTime(x, y) ∧ firstInstantOf(t, t2) ∧ lastInstantOf(t1, t2) ∧ occupiesTemporalRegion(x, t2) ∧ existsAt(s, t) ∧ existsAt(s1, t1) ∧ locatedInAtAllTimes(s, z) ∧ locatedInAtAllTimes(s1, z1) ∧ locationOfAtAllTimes(s, y) ∧ locationOfAtAllTimes(s1, y))
A material location change process that involves moving work-in-progress parts between different machines.
every instance of 'machine transfer process' is defined as exactly an instance of 'planned process' that 'has participant at some time' some 'material entity' and 'occupies temporal region' some 'temporal region' whose 'first instant' is some 'temporal instant' t and 'last instant' is some 'temporal instant' t1, and there exist two distinct 'production machines' s and s1 such that s 'exists at' t and s1 'exists at' t1, and s is 'located in at all times' some 'site' z, s1 is 'located in at all times' some 'site' z1, and both s and s1 are 'location of at all times' the same 'material entity'.
manufacturing enterprise process
process of completing a truck assembly, process for refining the crude oil into petrol, process for production of frozen food items
business process that contains at least one manufacturing process
This term is included as an umbrella term for every kind processes which are not typically 'business process' but also cannot be classified as types of 'manufacturing processes' either. Although they contain manufacturing process as parts, and most of the time, the primary sub-process, the sub-types of this class groups or identity manufactruing processes and other anciliary processes for better organization, planning resources and raw materials, and sometimes scheduling and logistical management. Still, the question remains on the need of this class if the above criteria is hard to express formally.
manufacturing operation
An operation may consist of a single step and in such cases may include the same information as that in the process specification. However, in many situations, multiple steps are required to be performed on a machine to produce a single feature or to achieve a specific quality, geometric shape, or dimension of the designated product or component. In such multi-step operations, the primary equipment may require reconfiguration, including the attachment or detachment of tools or accessories. Additionally, the material may need to be repositioned or handled between steps, all of which are considered integral parts of the operation.
∀o, x1, x2 ( ProcessStep(x1) ∧ ProcessStep(x2) ∧ ManufacturingOperation(o) ∧ occurrentPartOfAtSomeTime(x1, o) ∧ occurrentPartOfAtSomeTime(x2, o) ∧ (x1 ≠ x2) → ∃e, p1, p2, r1, r2 (ManufacturingProcess(p1) ∧ ManufacturingProcess(p2) ∧ occurrentPartOfAtSomeTime(p1, x1) ∧ occurrentPartOfAtSomeTime(p2, x2) ∧ hasParticipantAtSomeTimes(p1, e) ∧ hasParticipantAtSomeTimes(p2, e) ∧ hasRole(e, r1) ∧ hasRole(e, r2) ∧ EquipmentRole(r1) ∧ EquipmentRole(r2)))
Manufacturing enterprise process that aggregates only those process steps which are part of the same product production process and there exists at least one common manufacturing resource, used in the manufacturing process for each step.
The common grouping criteria cannot be formalized for this class and therefore only a necessary condition could be derived which does not check the "common resource for all step" condition. Furthermore, the use of operation in batch and continuous manufacturing many provide some more refinement on the role of the common participant.
if ‘x1’ and ‘x2’ are distinct ‘process steps’ that are ‘occurrent part of at some time’ the same ‘manufacturing operation’, then there exists some ‘equipment’ that ‘has role’ some ‘equipment role’ and that ‘has participant at some times’ both a ‘manufacturing process’ that is ‘occurrent part of at some time’ x1 and a ‘manufacturing process’ that is ‘occurrent part of at some time’ x2
material handling plan
The class is open to be further constrained by different kinds of material handling types. At this point only machine transfer process is included. The term can be overloaded by users with other general class axioms, e.g., some part of it describing the raw material sourcing process. As the natural language suggests, planning in warehouse will require a more detailed characterization, this term needs to be shared between two modules by some upper level mapping, however such proposal are yet to be made.
∀x (PlanSpecification(x) ∧ ∃y,z (prescribes(y, z) ∧ MachineTransferProcess(z)) ∧ hasContinuantPartAtAllTimes(x, y) → MaterialHandlingPlan(x))
A specification (PlanSpecification) that prescribes one or more material handling operations—sequences of actions, resource allocations, and constraints—designed to govern the efficient, safe, and controlled movement of materials or entities within production, storage, or distribution contexts.
if x is a 'plan specification' that 'has continuant part at all times' some 'action specification' that 'prescribes' some 'machine transfer process', then x is a 'material handling plan'
material product specification
This class will be harmonized with ProductDesignSpecification in ProductServiceSystem ontology
specification of a product may contain a simple description of a product to a detailed CAD design, including geometry, structure, dimension, and tolerances. It may also contain reference to PLM system entity.
MaterialProductSpecification(x) ↔ DesignSpecification(x) ∧ ∃y (prescribes(x, y) ∧ MaterialProduct(y))
A design specification containing the structure, dimension, and other characteristics of a product that satisfies the requirement of a purchase order from a customer.
If x is an 'design specification' and there exists a 'material product' which x prescribes then x is a 'material product specification'.
operation specification
This part of the plan specifies one or many steps, each of which are to be performed using one or more specific manufacturing resource or parallely or consecutively.
ActionSpecification(x) ∧ ∃y (ManufacturingOperation(y) ∧ prescribes(x,y)) → OperationSpecification(x)
An action specification that prescribes some manufacturing operation.
If x is an 'action specification' and there exists a 'manufacturing operation' y that is 'prescribed by' x then x is an 'operation specification'.
operator
Agent(x) ∧ ∃y (OperatorRole(y) ∧ hasRole(x, y))
person or organization which has an operator role
x is an 'agent' that 'has role' some 'operator role'
operator role
person as a CNC operator has an operator role of operating, mantaining, and utilizing the assigned CNC machine before, during, and after a manufacturing process
AgentRole(x) ∧ ∃a (Agent(a) ∧ roleOf(x, a) ∧ participatesIn(a, p) ∧ ManufacturingProcess(p)) → OperatorRole(x)
AgentRole(x) → Role(x) ∧ ∃a ∃s ∃c ∃e ( Agent(a) ∧ roleOf(x,a) ∧ skill(s) ∧ hasCapability(a,s) ∧ Capability(c) ∧ PieceOfEquipment(e) ∧ capabilityOf(c,e) ∧ enables(s,c))
role held by an agent when it possesses a skill that enables a capability of a piece of equipment.
The ontology does not yet include a construct for 'skill'. The current definition refers to 'capability', which is intended to serve as a supertype of 'skill', but this class is still under development. The definition employs the primitive relation enables, which has recently been introduced. Its adoption is pending discussion and approval by the IOF community. It is expected that this relation may be relocated to the IOF Core ontology upon acceptance.
if x is an 'agent role' that is the 'role of' some 'agent' who 'participates in' a 'manufacturing process', then x is an 'operator role'
if x is an 'agent role', then x is a 'role' that is the 'role of' some 'agent' who 'has capability' some 'skill' s, and s 'enables' some 'capability' c that is the 'capability of' some 'piece of equipment' e.
process plan
IKEA instructions to assemble furniture such as tables and chairs, and a step-by-step recipe for preparing a cake.
PlanSpecification(x) ∧ ∃y(prescribes(x,y) ∧ ProductProductionProcess(y)) → ProcessPlan(x)
ProcessPlan(x) ↔ PlanSpecification(x) ∧ ∀y ((continuantPartAtAllTimes(y, x) ∧ ObjectiveSpecification(y)) → ProductionOrder(y)) ∧ ∀z ((continuantPartAtAllTimes(z, x) ∧ ActionSpecification(z)) → (OperationSpecification(z) ∨ ProcessSpecification(z)))
Plan which include steps and sequence required to produce a product at the required quality level and cost.
x is a 'plan specification' if and only if x prescribes a 'product production process' then x is a 'process plan'.
If x is 'process plan' then x is a 'plan specification' and every 'objective specification' which is a continuant part of x is a 'production order', and every 'action specification', which is a continuant part of x is either a 'operation specification' or 'process specification'.
process step
drill hole, steps- centering, twist drilling, enlarging the hole, and finish the holes- these four steps each of them are process step
processStep(x) ↔ ManufacturingEnterpriseProcess(x) ∧ ∃p (ManufacturingProcess(p) ∧ occurrentPartOfAtSomeTime(p,x)) ∧ ∀s ((processStep(s) ∧ occurrentPartOfAtSomeTime(s,x)) → (s = x))
A unit subprocess of an operation which does not contain any other process step and exactly one manufacturing process as a subprocess.
The class may contain many other varieties of processes along with a manufacturing process. The clause of "no further decomposition of step using step" is avoided to keep OWL axioms negation-free. Also, we do not use cardinality in axioms.
every instance of 'process step' is defined as exactly an instance of 'manufacturing enterprise process' that has at least one 'manufacturing process' as an 'occurrent part at some time' and does not have any other 'process step' as an 'occurrent part at some time'.
Along with the instance of manufacturing process, process step may also include instances of setup process and inspection process as subprocesses.
process step specification
A process-step specification is the atomic instruction within a process plan—the most specific, detailed, and direct component. It defines required input materials, recipes, dimensions, tolerances, attributes, and any necessary in-process handling or machine configurations. In some cases, it may be as simple as a label or brief instruction, such as “drill ten 0.45-inch holes in a 3' × 5' sheet.”
ActionSpecification(x) ∧ ∃y (ProcessStep(y)∧prescribes(x,y)) → ProcessSpecification(x)
An action specification that prescribes some process steps.
If x is an 'action specifciation' and there exists a 'process step' y that is 'prescribed by' x then x is an 'process specification'.
product inspection process
inspection of a bore of the engine block, final inspection of the truck at the end of assembly line, inspection of the PCB at the end of the fab line, inspection of the quality of glass bottle, visual inspection of defects on car body paint
LA1: ∀x (PlanSpecification(x) ∧ ∃y (ProductInspectionProcess(y) ∧ prescribes(x, y)) → InspectionPlan(x))
Product inspection is a systematic process of evaluating goods during and after production to ensure they meet specified quality standards.
So far the only way to define inspection process is assuming the presence of a corresponding plan, which will be too demanding. That's why the condition of anything prescribed by an inspection plan is a product inspection process is sufficient. In future inspection process needs to be defined based on its exact characteristics but for the vastness of example of inspection process the task of generalization is challenging.
if x is an instance of ‘plan specification’ that ‘prescribes’ some ‘product inspection process’, then x is an instance of ‘inspection plan’
production machine
CNC (Computer Numerical Control) milling machines are widely used in manufacturing to precisely cut and shape various materials, including metal, plastic, and wood.
∀x (Machine(x) ∧ ∃r (hasRole(x, r) ∧ EquipmentRole(r) ∧ ∀p (realizes(p, r) → ManufacturingProcess(p))) → EquipmentMachine(x))
machine that are used in manufacturing process as equipments.
if x is a ‘machine’ that ‘has role’ some ‘equipment role’ and for all y, if y ‘realizes’ that role then y is a ‘manufacturing process’, then x is an ‘equipment machine’
production order
order to produce 100 brackets
ObjectiveSpecification(x) ∧ ∃y (isAchievedByAtSomeTime(x, y) ∧ ProductProductionProcess(y)) → ProductionOrder(x)
ProductionOrder(x) ↔ ObjectiveSpecification(x) ∧ ∃y (MaterialProductSpecification(y) ∧ hasContinuantPartAtAllTimes(x, y))
A production order is a document that states the number of units to be manufactured, the date when the order is released for production, and where the units should be delivered once they have been completed. A production order may be triggered by a long-term plan to maintain certain inventory levels, or by the receipt of an order from a customer.
If x is an 'objective specification' and there exists a 'product production process' y that x is achieved by at some time, then x is a 'production order'.
x is a 'production order' if and only if x 'has continuant part at all times' some y which is a 'material product specification'.
production plan
Production of a batch of 1,000 plastic containers and 100 lids in one week, production of 200 wooden chairs at the wood workshop to be completed by August 9. In the first quarter of 2025, the sewing department will produce 500 shirts.
PlanSpecification(x) ∧ ∃y(prescribes(x,y) ∧ ProductProductionProcess(y)) → ProductionPlan(x)
ProductionPlan(x) ↔ PlanSpecification(x) ∧ ∀y (continuantPartAtAllTimes(y,x) ∧ ObjectiveSpecification(y)) → ProductionOrder(y)) ∧ ∀z (continuantPartAtAllTimes(z,x) ∧ PlanSpecification(z) → (ProcessPlan(z) V InspectionPlan(z) V MaterialHandlingPlan(z)))
Plan that aims at producing one or multiple products as specified or fulfills some production order.
x is a 'plan specifcation' if and only if x prescribes a 'product production process' then x is a 'production plan'.
A production plan is a type of plan specification that has as continuant parts, at all times, at least one objective specification that is a production order, and any continuant part that is a plan specification must be either a process plan, an inspection plan, or a material handling plan
production tool
- ISO 15531‑1 (resource definitions) refers to tools as devices used in manufacturing (implicit) NIST+11Iteh Standards+11ISO+11. - IEC 60050‑851 (Electropedia) defines “tool” as “an implement, usually manually controlled, used to perform work” machinerysafety101.com. - NIST Dictionary of Metrology describes a tool as “a hand‑held or mechanically actuated item used to apply force or precision to a workpiece” (NIST work) — general metrological usage. - Other references (Shumaker et al. 2011; Jones & Kamil 1973; Hauser 2000; Britannica; Merriam‑Webster; Oxford; Dictionary.com | Meanings & Definitions of English Words ) define a tool as a physical instrument (often hand‑held), used to extend an agent’s ability to modify environment or material. (see https://oagi.atlassian.net/wiki/spaces/IOF/pages/5952208897/Characterization+of+machines+and+tools#Trait-analysis)
physical artefact designed to be held, guided or affixed to facilitate execution of a task by a human, machine or mechanism.
Many of the core characterizations of production tool (more broadly tool) captured in the trait analysis (see https://oagi.atlassian.net/wiki/spaces/IOF/pages/5952208897/Characterization+of+machines+and+tools#Trait-analysis) cannot be formally expressed, especially energy transformation, power, control, motion and mechanical structures.
if x is a tool then x is a physical artefact and x is designed to be held, guided or affixed by a human, machine or mechanism to facilitate execution of a task
- “designed to be held, guided or affixed” distinguishes tools from machines: often simpler, may require manual or machine guidance. - “facilitate execution of a task” covers uses ranging from hand‑tools (hammer, wrench) to machine‑tools (cutting insert, fixture) in the broader sense. - By stating “by a human, machine or mechanism,” the definition remains flexible to tools used both manually and in automated contexts.
setup process
replacing the die for toyota camry engine hood by the die for camry trunk hood, replacing the fixture for the new part being machined, cleaning the vessel of the mixer in food production when changing the product to be mixed.
The work required to change a specific machine, resource, work center, or line from making the last good piece of item A to making the first good piece of item B
Setup process is a planned process where tools are attached between two manufactruing operations on the same resource (for example machine) such that the output of the first is different from the output of the second
not all conditions can be specified at this point for a wide range of industrial examples
enabled by
capability enabled by another capability implies the second capability enables the first capability.
if x is 'enabled by' y then y 'enables' x
enables
enables(c1, c2) → ∃p1 ∃p2 ((realizes(p1, c1) → realizes(p2, c2)) ∨ (realizes(p2, c2) → realizes(p1, c1)))
capability enables another capability implies that either the realization of the first capability implies the realization of the second capability or the realization of the second capability implies the realization of the first capability.
This property is included to define 'operator role' but it is part of the set of construct for modeling the combined or emergent capability of systems stemming from capabilities of its sub-systems (components). THe other constructs are not completely developed yet and it is not decided which IOF module they will be part of.
if c1 'enables' c2, then there exist processes p1 and p2 such that p1 'realizes' c1 implies p2 'realizes' c2, or p2 'realizes' c2 implies p1 'realizes' c1