Guidelines
Guidelines for the Arrowhead fPVN Handbook on industrial semantics – Using IDO as upper ontology¶
This document is an entry-level guide to the Arrowhead fPVN Handbook on Industrial Semantics. It explains why semantic technology is needed in industrial data management, how IDO (ISO 23726-3) organizes industrial knowledge, and how the pattern library and use cases connect the framework to real data model standards (Figure 1). Readers who want full depth should proceed to the Handbook; this document helps orient them and provides a quick-start reference.

Document suite¶
This framework is delivered as four companion artifacts, as shown in Table 1:
| Document | Purpose | Audience |
|---|---|---|
Guidelines |
Entry-level navigation and overview of the framework. The recommended starting point. |
New readers; management; project evaluators |
Handbook |
Full rationale, methodology, ontology architecture, and pattern library overview. |
Ontology engineers; standards contributors |
Pattern Library |
Normative, per-pattern specifications with reusable OWL and SHACL structures. |
Implementers; tool developers |
Use Cases |
Worked examples: DEXPI pump lifecycle, power transformer, CFIHOS Semantics. |
All; especially first-time adopters |

The three top-level classes in Figure 2 (lis:Object, lis:Dependent, lis:Temporal) partition the industrial world into independent physical and functional entities, the properties and qualities that inhere in them, and the activities and events that occur over time. Every class in every domain ontology aligned to IDO is placed under one of these three top-level classes.
Reasons for a W3C Ontology¶
The Arrowhead fPVN initiative proposes a fundamentally different approach based on World Wide Web Consortium (W3C) standards and semantic technologies. Despite the availability of information model standards in industry since the mid-1990s and the strong promises from standardization organizations, seamless interoperability has not been achieved. This gap is mainly due to several structural challenges:
-
Different vocabularies are used across standards, even within the same standard family;
-
Diverging model architectures and different modeling languages have been applied;
-
Standardization groups have often prioritized the success of their own standards over broader business needs;
-
Newly developed standards often duplicate existing concepts, but in different ways.
The choice between a standard database and semantic technology is not just about storage; it is about how quickly a structure can adapt to change. While Relational Database Management Systems (RDBMS) are ideal for fixed schemas, they often create bottlenecks. In engineering projects, a user-requested schema extension can take a year. With an RDF triple store and an ontology, that same extension takes a fraction of that time. It turns data management into something as fluid as editing a spreadsheet.
Here is how this approach solves the complexity we face:
-
For EPC contractors: Data Integration at Scale: In an engineering project, we often manage 40 or more databases and hundreds of spreadsheets. EPC contractors can have hundreds of very different projects. Merging the data of one project into a single store is only feasible via RDF because the data is so versatile. The ontology carries the meaning, relationship definitions and source mappings, that only an engineer understands, allowing them to perform their own mappings instantly.
-
For Owner/Operators: Harvesting Unstructured Data: Most owner/operator data reside in PDFs, drawings, and 3D models. We can use Large Language Models (LLMs) to harvest this data into an RDF ontology. Software for that has been developed in the past year. Because the owner/operator builds the ontology and provides meaning, the AI can infer the meaning of the data, rather than just performing keyword searches.
-
For Suppliers: Futureproofing: We are moving toward Digital Product Passports and Asset Administration Shells with over 100,000 distinct properties and thousands of product models. A traditional relational schema cannot scale to those relationships. RDF is the natural receiver for these massive key-value pairs, using AI to map data based on the ontology’s definitions.

Choice for W3C¶
RDF represents data as subject–predicate–object triples identified by URIs, giving every resource a globally unique, dereferenceable identity. Formal semantics — expressed through OWL ontologies — enable inference and reasoning over the data. Standards bodies such as ISO/IEC and industrial consortia such as CFIHOS and DEXPI publish domain ontologies in RDF/OWL precisely to achieve shared, machine-interpretable vocabularies across systems.
Property graphs such as Neo4j model data as nodes, relationships, and properties. Traversal queries are fast and the schema is flexible, which suits use cases such as supply chain analysis or asset hierarchy navigation. However, property graphs have no built-in semantics and no pathway to ontology alignment.
For projects requiring inferential reasoning and standards-based interoperability, RDF/OWL is the appropriate choice. For high-performance traversal over locally scoped, well-understood data, property graphs may be preferable.
For a list of RDF triple stores, see https://www.w3.org/wiki/SparqlImplementations
Combining domain Ontologies¶
Instead of forcing everything into one giant model, this approach uses multiple knowledge graphs, each representing a different standard or domain. By linking these graphs through IDO, it delivers value faster and avoids the complexity and cost of large-scale mapping projects (Figure 3). The more connections are added, the more intelligent the system becomes. The setup handles three types of data:
-
Fixed, such as standards and reference models
-
Changing, such as design data
-
Real-time, such as live operational data
These types of data coexist in a flexible and scalable system, making it easy to share and evolve information across different stages (Table 2).
| Standard | Coverage in this framework | Status |
|---|---|---|
| DEXPI | P\&ID functional objects, tag properties, pump lifecycle | Covered |
| CFIHOS v2.0 | Plant object hierarchy, property list, data handover | Covered |
| ISO 10303 (STEP) | Product data exchange, AP 242 / AP 239, property structures | Covered |
| IMF (ISO/IEC 81346) | Aspect classification, functional/physical/locational breakdown | Covered |
| ISO 15926-4 | Reference data library vocabulary, PCA RDL | Partial |
| AFO (Arrowhead Framework Ontology) | Microservice-layer runtime bridge | In progress |
For the full treatment of each alignment, see Handbook > Standards alignment.
Downloading IDO and domain ontologies¶
The way to use multiple domain ontologies together is to let all of them align to IDO as the upper ontology. The resources listed below are the starting points for implementation:
-
IDO (ISO 23726-3)
-
current pre-publication OWL file: https://rds.posccaesar.org/services/downloads/
-
Ontology browser: https://rds.posccaesar.org/ontology/lis14/
-
ISO 23726-3 is expected to be published in 2026 (see Figure 1), at which point the normative reference will move to the ISO publication.
-
ISO 15926-4 reference data library (PCA RDL): https://data.posccaesar.org/rdl/
-
CFIHOS RDL and Semantics: https://www.jip36-cfihos.org/cfihos-standards/
-
CFIHOS deliverables are freely downloadable by the public; CFIHOS is a membership association (IOGP JIP-36).
-
QUDT (units and quantity kinds): https://qudt.org/
The Handbook also documents the alignment approach for each of these standards.
Property modeling workflow¶
The IDO property description pattern applies across all domain ontologies. The workflow for modeling a new property for a plant object is:
-
Identify the bearer — the plant object that carries the property (e.g.,
cfihos:CentrifugalPumpT,dexpipla:Pump). -
Choose the property type — a
lis:Quality(measurable quantity), alis:Designation(identifier/label), or an object property (relationship to another resource). -
Attach the datum — a
lis:QualityDatumcarrying the numeric or string value, the unit of measure (QUDT), and optionally a lifecycle stage qualifier. -
Apply the relevant IDO pattern — choose from the Pattern Library (e.g., Quantity Kind and Measurement, Descriptive and Annotation, Classification and Controlled Sets).
-
Validate with SHACL — use the pattern’s accompanying SHACL shape to check that the instance graph is structurally correct before loading into the knowledge graph.
For the full pattern specifications, see Pattern Library. For the full methodology rationale, see Handbook > Property aspects and Unified property reification model.
Worked example: CFIHOS Semantics¶
This section gives a compact introduction to the IDO implementation method through the CFIHOS domain. A full worked example — including five detailed modeling scenarios (quantifiable property, property aspect, material, tag name, manufacturer), OWL restrictions, and lifecycle-tagged values — is documented in Use Cases > CFIHOS Semantics.
The solution of implementing IDO will be explained in incremental steps, starting with the CFIHOS RDL spreadsheets, then the diagramming method, then moving to RDF.
Diagramming method¶
Take the Centrifugal Pump class (Figure 4), on an RDL spreadsheet. The centrifugal pump has CFIHOS ID CFIHOS-30000521 and is subclass of pump. This RDL class can be TAG lifecycle or EQUIPMENT lifecycle both.

The data dictionary (Table 3) shows that the generic permissible properties for TAG entity is tag name. EQUIPMENT has the tag name too, but its unique key is equipment code (Table 4). Tag name in EQUIPMENT is a reference to TAG, which we will solve by using the isImplementedBy relationship. Which is the example we will use, since the name of a plant item (tag name) is the most used property in process plant data.
| TAG | An object designed for performing functional requirements and serving as a specification for equipment | |
|---|---|---|
| Plant code | The plant where the tag is or will be located | Identifier |
| Tag name | The full name of a tag | Identifier |
| Tag description | A functional description of the tag | Mandatory |
| Parent tag name | An identification of the parentage of the tag | Optional |
| Process unit code | The process unit within the plant to which the tag provides part of the functionality | Mandatory |
| Area code | The geographical area within the plant where the tag is located | Optional |
TAG Entity Example
-
Class: centrifugal pump -
Tag Name: 11P-101 -
Lifecycle Stage:TAG
| EQUIPMENT | A physical device designed to perform a function | |
|---|---|---|
| Equipment code | A code used to identify uniquely the equipment. | Identifier |
| Plant code | The plant where the equipment is or will be installed | Optional |
| Tag name | The full name of a tag | Optional |
| Equipment class name | The full name of the tag or equipment class | Mandatory |
| Manufacturer company name | A name used to uniquely identify the company. who manufactures the equipment | Optional |
| Model part name | A unique name to identify the model part of the manufacturer, and that the equipment is associated with | Optional |
| Equipment manufacturer serial number | A unique identification number for the equipment as prescribed by the manufacturer | Optional |
EQUIPMENT Entity Example
-
Class: centrifugal pump -
Equipment no: 7345393 -
isFulFilledBy: object for 11P-101 → object for 7345393 -
Lifecycle Stage: EQUIPMENT
The tag name 11P-101 and the isImplementedBy are the key identifiers used across disciplines and systems to refer to the same functional item, even though the context and permissible properties differ.

The diagramming method is explained in Figure 5. Consider this diagram block. The C means it is a class. There are 2 triples shown.
-
cfihos:CFIHOS-3000521Tis the URI for the class. -
It is declared (
ameans the predicaterdf:type) as anowl:Class. -
It has a human-readable label
centrifugal pumpusing predicaterdfs:label.
In RDF (shown as Turtle) these 2 triples are: (explain RDF? link)
@prefix cfihos: <https://data.cfihos.org/rdl> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
cfihos:CFIHOS-3000521T a owl:Class ;
rdfs:label "centrifugal pump" .
Next example:

Figure 6 illustrates an individual (denoted by I for individual). It is a plant item, such as a pump symbol on a Piping and Instrumentation Diagram (P&ID) or a real cooling water pump operating in a facility. The ex: prefix is used to indicate a placeholder namespace (short for "example.com"). In practice, this could be replaced with the actual namespace used in a project database containing millions of plant items. The four-digit number (e.g., 2384) symbolizes part of a UUID. (explain UUID: link). For example, if the project code is L9GC and the company domain name is example.com, then ex:2384 could correspond to a full identifier like this: https://data.example.com/l9gc/2384a1b2-3c4d-5e6f-8a9b-c0d1e2f3a4b5
The arrow with the open triangle means rdfs:subClassOf. RDF of this diagram is:
@prefix cfihos: <http://data.cfihos.org/rdl/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix ex: <https://data.example.com/l9gc/> .
cfihos:CFIHOS-3000550T a owl:Class ;
rdfs:label "pump" .
cfihos:CFIHOS-3000521T a owl:Class ;
rdfs:label "centrifugal pump" ;
rdfs:subClassOf cfihos:CFIHOS-3000550T .
ex:2384 a owl:NamedIndividual ;
a cfihos:CFIHOS-3000521T .
Intrinsic and assigned properties¶
The IDO class lis:Dependent is defined as: "An entity that is an inherent quality or realizable potential of an object." The key word is inherent: a material of construction is an inherent quality of a plant object, but a "required at site date" is not — it is an assigned property, attached by a project context rather than inherent to the object.
In the current Handbook framework, both intrinsic qualities (lis:Quality) and assigned designations (lis:Designation) are modeled as subclasses of lis:Dependent, with the distinction captured through class choice and pattern selection rather than a formal property hierarchy. The Pattern Library provides separate patterns for each case. For the full rationale, see Handbook > Intrinsic and assigned properties.
The IDO hierarchy¶
The properties with namespace lis: are IDO, with cfihos: is CFIHOS Semantics. For IDO refer to the Turtle file downloadable from https://rds.posccaesar.org/services/downloads/, or specifically https://rds.posccaesar.org/ontology/lis14/ont/core/1.0/. To see the definitions refer to the online upper ontology https://rds.posccaesar.org/ontology/lis14/ont/core/
-
lis:Object
-
lis:FunctionalObject
- lis:System
-
lis:InformationObject
-
lis:UnitOfMeasure
- lis:Scale
-
lis:Location
-
lis:Site
-
lis:SpatialLocation
-
lis:LineInSpace
-
lis:PlaneInSpace
-
lis:PointInSpace
-
lis:VolumeInSpace
-
-
lis:Organization
-
lis:PhysicalObject
-
lis:PhysicalArtefact
-
cfihos:TagClass
-
cfihos:CFIHOS-30000097T infrastructure
-
cfihos:CFIHOS-30000098T instrument equipment
-
cfihos:CFIHOS-30000101T IT and telecom equipment
-
etc.
-
-
cfihos:EquipmentClass
-
cfihos:CFIHOS-30000097E infrastructure
-
cfihos:CFIHOS-30000098E instrument equipment
-
cfihos:CFIHOS-30000101E IT and telecom equipment
-
etc.
-
-
lis:MateriallyClassifiedObject
-
lis:Feature
-
lis:InanimatePhysicalObject
-
lis:Stream
-
lis:Organism
-
lis:Person
-
-
lis:Phase
-
lis:Dependent
-
cfihos:Property
-
cfihos:CFIHOS-10000166 tag name
-
cfihos:CFIHOS-40000001 actual length
-
cfihos:CFIHOS-40000002 actuator motion
-
cfihos:CFIHOS-40000003 actuator seal material
-
cfihos:CFIHOS-40000004 adjustment ring material specification
-
cfihos:CFIHOS-40000005 air cooler type
-
cfihos:CFIHOS-40000006 air preheater type
-
-
lis:Potential
-
lis:Disposition
-
lis:Capability
-
lis:Function
-
-
lis:Interest
-
lis:Role
-
lis:Quality
-
lis:MaterialCompositionQuality
-
lis:PhaseQuality
-
lis:PhysicalQuantity
-
lis:ShapeQuality
-
-
lis:Temporal
-
lis:Activity
- lis:ActivityProfile
-
lis:Event
-
lis:SpatiotemporalRegion
-
lis:TemporalRegion
-
lis:InstantRegion
-
lis:Instant
-
lis:IntervalRegion
-
lis:Interval
-
-
lis:Actual
-
lis:Specified
Top Class to Ontology¶
The top classes are cfihos:TagClass and cfihos:EquipmentClass. Transformation to triples:
@prefix cfihos: <https://data.cfihos.org/rdl> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix lis: <http://rds.posccaesar.org/ontology/lis14/rdl/> .
cfihos:TagClass a owl:Class ;
rdfs:label "Tag Class" ;
rdfs:subClassOf lis:PhysicalArtefact .
cfihos:EquipmentClass a owl:Class ;
rdfs:label "Equipment Class" ;
rdfs:subClassOf lis:PhysicalArtefact .
RDL Class to Ontology Class¶
The RDL classes are in the CFIHOS RDL under tabs Tag Class and Equipment Class. To show the transformation, take 1 example:


Transformation to triples:
@prefix cfihos: <https://data.cfihos.org/rdl> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
cfihos:CFIHOS-3000521T a owl:Class ;
rdfs:label "centrifugal pump" ;
rdfs:subClassOf cfihos:CFIHOS-30000550T .
RDL Tag Class Property to Ontology OWL restriction¶
The RDL relationships of classes to properties are for Tag Class: Tag Class Property tab. The example is a power cable having a length.

@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix lis: <http://rds.posccaesar.org/ontology/lis14/rdl/> .
@prefix unit: <http://qudt.org/vocab/unit/> .
@prefix cfihos: <http://data.cfihos.org/rdl/> .
@prefix ex: <http://example.com/> .
cfihos:CFIHOS-30000360T a owl:Class ;
rdfs:label "power cable" .
cfihos:CFIHOS-40000201 a owl:Class ;
rdfs:label "length" .
cfihos:RealMeasureTypeDatum a owl:Class ;
rdfs:label "RealMeasureTypeDatum" .
unit:Meter a owl:Class ;
rdfs:label "Meter" .
lis:hasQuality a owl:ObjectProperty .
lis:QualityQuantifiedAs a owl:ObjectProperty .
ex:6343 a owl:NamedIndividual ;
a cfihos:CFIHOS-30000360T ;
lis:hasQuality ex:7345.
ex:7345 a owl:NamedIndividual ;
a cfihos:CFIHOS-40000201 ;
lis:QualityQuantifiedAs ex:6343 .
ex:5566 a owl:NamedIndividual ;
lis:datumValue "1000"^^xsd:string ;
lis:datumUOM unit:Meter .

OWL restrictions for properties: allowable properties for tag and equipment classes.¶
@prefix : <http://example.org/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix lis: <http://rds.posccaesar.org/ontology/lis14/rdl/> .
@prefix unit: <http://qudt.org/vocab/unit/> .
@prefix cfihos: <http://data.cfihos.org/rdl/> .
@prefix ex: <http://example.com/> .
cfihos:CFIHOS-30000360T a owl:Class ;
rdfs:label "power cable" .
cfihos:CFIHOS-40000201 a owl:Class ;
rdfs:label "length" .
cfihos:RealMeasureTypeDatum a owl:Class ;
rdfs:label "RealMeasureTypeDatum" ;
rdfs:subClassOf lis:QualityDatum .
lis:QualityDatum a owl:Class ;
rdfs:label "QualityDatum" .
lis:hasQuality a owl:ObjectProperty .
lis:QualityQuantifiedAs a owl:ObjectProperty .
cfihos:CFIHOS-30000360T rdfs:subClassOf cfihos:CFIHOS-xxxx1 .
cfihos:CFIHOS-xxxx1 a owl:Restriction ;
owl:onProperty lis:hasQuality ;
owl:allValuesFrom cfihos:CFIHOS-40000201 .
cfihos:CFIHOS-40000201 rdfs:subClassOf cfihos:CFIHOS-xxxx2 .
cfihos:CFIHOS-xxxx2 a owl:Restriction ;
owl:onProperty lis:QualityQuantifiedAs ;
owl:allValuesFrom cfihos:RealMeasureTypeDatum .

QualityDatum taxonomy¶
The QualityDatum taxonomy is used for all the data types which can be applied. For example, in the previous chapter, the property length was an allowable property for power cable, and its QualityDatum was RealMeasureTypeDatum. This QualityDatum type defines the data type for length as having a value (a Real) and a unit of measure (a QUDT unit ID). The term Measure indicates value + unit of measure.
The complete list of QualityDatum is:
BinaryTypeDatum
BooleanTypeDatum
ClassReferenceTypeDatum
DateTimeTypeDatum
DateTypeDatum
IntMeasureTypeDatum
IntTypeDatum
NonTranslatableStringTypeDatum
NumberTypeDatum
RationalMeasureTypeDatum
RationalTypeDatum
RealMeasureTypeDatum
RealTypeDatum
StringTypeDatum
TimeTypeDatum
TranslatableStringTypeDatum
Lookup lists¶
Lookup lists are a special part in the Ontology that has classes (the names of the lists) and each class has an enumerated list of items
Example: Lookup list name: API pump type
| API Type | Family | Mounting / Orientation | Key Design Feature |
|---|---|---|---|
| OH1 | Overhung | Horizontal foot-mounted | End-suction flexible coupling |
| OH2 | Overhung | Horizontal centerline-mounted | Better alignment high tempera-ture |
| OH5 | Overhung | Close-coupled | Motor directly attached |
| OH5 BS 4082-1 | Overhung | Close-coupled | British standard variant |
| OH6 | Overhung | Vertical inline | Compact inline piping |
| BB1 | Between Bearings | Horizontal | Axially split casing |
| BB2 | Between Bearings | Horizontal | Radially split casing |
| BB3 | Between Bearings | Horizontal multi-stage | Radially split multi-stage |
| VS1 | Vertical Suspended | Vertical | Diffuser casing |
| VS2 | Vertical Suspended | Vertical | Volute casing |
| VS3 | Vertical Suspended | Vertical | Inline design |
| VS4 | Vertical Suspended | Vertical | Line shaft sump pump |
| VS5 | Vertical Suspended | Vertical | Cantilever no submerged bear-ings |
| VS6 | Vertical Suspended | Vertical | Double casing inline |
| VS7 | Vertical Suspended | Vertical | Vertical turbine |
This is one of the most elaborate examples. In many domain ontologies (e.g. ISO 15926-4) these are just specialized classes from Centrifugal Pump. However, it is like this in CFIHOS. So, provision must be made to be able to use these kinds of lookups.
Contributing and reviewing partners¶
| Representing partner | Contributor | Contents | Review |
|---|---|---|---|
| AITIA | Péter Olaszi | X | X |
| Fluor/CFIHOS | Onno Paap | X | |
| TBHK | Torbjörn Holm | X |