Capability Interaction Graph (CIG) Ontology
language en

Capability Interaction Graph (CIG) Ontology

Release: 2026-07-03

This version:
http://purl.org/capability-interaction-graph#/1.0.0
Latest version:
http://purl.org/capability-interaction-graph#
Revision:
1.0.0
Authors:
Ntagengerwa, Manzi Aimé, University of Twente
Caltais, Georgiana
Stoelinga, Mariëlle
Imported Ontologies:
gufo#
See also:
http://purl.org/nemo/gufo
Download serialization:
JSON-LD RDF/XML N-Triples TTL
Visualization:
Visualize with WebVowl Visualize with CIG Studio
Evaluation:
Evaluate with OOPS!
Validation:
Validate with SHACL Try in SHACL Playground
Cite as:
M. A. Ntagengerwa, G. Caltais, M. Stoelinga, "Ontology-Grounded Capability Interaction Graphs: From Knowledge Graphs to Fault Trees", University of Twente, The Netherlands.
License:
Capability Interaction Graph © 2026 by Manzi Aimé Ntagengerwa is licensed under CC BY-NC 4.0
Provenance of this page
Ontology Specification Draft

Abstract

The Capability Interaction Graph (CIG) Ontology is an ontology-driven vocabulary for describing the architecture of Cyber-Physical Systems (CPSs) in terms of components, capabilities, channels, interfaces, faults, and errors, together with the functional dependencies that govern how failures propagate between them. It is a lightweight extension of the Unified Foundational Ontology (UFO), implemented via gUFO, and is intended to be populated from system-architecture knowledge graphs and queried using SPARQL. The ontology forms the static architectural layer of a broader framework — described in the paper this ontology accompanies — for automatically synthesising Fault Trees from Capability Interaction Graphs, reducing the manual effort typically required to build reliability models for CPSs.

Introduction back to ToC

Reliability modelling for Cyber-Physical Systems (CPSs) is a multidisciplinary and largely manual activity. Fault Tree Analysis (FTA) is one of the most established techniques for reasoning about system failures, but constructing a fault tree by hand requires extensive coordination between domain experts and depends heavily on tacit engineering knowledge that is rarely documented in a machine-readable form. As a result, fault trees are expensive to maintain and are often unavailable during the early stages of system design, when architectural changes are still cheap to make.

The Capability Interaction Graph (CIG) addresses this by providing an intermediate semantic layer between architectural knowledge and reliability analysis. Rather than requiring an analyst to encode failure behaviour by hand, a CIG captures a system's functional dependency structure — which capabilities depend on which others, and through which components, channels, and interfaces — from which failure semantics can be derived automatically. The model is grounded in the Unified Foundational Ontology (UFO), via its lightweight OWL implementation gUFO, which provides the ontology with precise semantics for notions such as dispositions, events, participation, and relators. This grounding is what allows the ontology to explicitly separate distinctions that conventional fault tree formalisms usually conflate, such as faults versus errors, and the creation of a fault versus its activation.

This document describes the static architectural vocabulary of the CIG model: Component, Channel, Capability, Fault, Interface (and its InputInterface/OutputInterface specialisations), ResourceType, and the events (Function, FaultCreation, Error) associated with them. It corresponds to the ontology conforming to which a system-architecture knowledge graph is expected to be structured. The ontology deliberately does not attempt to axiomatise the dynamic, situation-based semantics of the underlying framework — fault activation, error propagation, and the synthesis of a fault tree from a CIG — since these describe how a system evolves across situations over time rather than constraints on a single knowledge graph; that part of the framework is instead given a formal treatment directly in the source paper.

As a running example, consider a subsystem of a production printer consisting of a power-supply unit, an ink reservoir, and a print head. The power-supply unit has the capability to provide electricity, the ink reservoir the capability to provide ink, and the print head the capabilities to deposit ink and to self-clean; electricity and ink reach the print head through a wire and a tube respectively, each modelled as a Channel. This example is used throughout the accompanying documentation, and a companion SHACL shapes file is available (see the Description section) for validating that a knowledge graph built along these lines respects the ontology's structural constraints.

Namespace declarations

Table 1: Namespaces used in the document
cig<http://purl.org/capability-interaction-graph#>
dc<http://purl.org/dc/elements/1.1/>
dct<http://purl.org/dc/terms/>
gufo<http://purl.org/nemo/gufo#>
owl<http://www.w3.org/2002/07/owl#>
rdf<http://www.w3.org/1999/02/22-rdf-syntax-ns#>
rdfs<http://www.w3.org/2000/01/rdf-schema#>
vann<http://purl.org/vocab/vann/>
xml<http://www.w3.org/XML/1998/namespace>
xsd<http://www.w3.org/2001/XMLSchema#>

Capability Interaction Graph (CIG) Ontology: Overview back to ToC

This ontology has the following classes and properties.

Classes

Object Properties

Annotation Properties

Named Individuals

Example

Try a SPARQL query against an example CIG instance graph (the print-head running example):

Capability Interaction Graph (CIG) Ontology: Description back to ToC

An ontology-driven representation of Cyber-Physical System (CPS) architectures, capturing components, capabilities, channels, interfaces, faults, errors and the functional dependencies that govern fault propagation between them. This ontology implements the Capability Interaction Graph (CIG) conceptual model of Fig. 5 in the source paper. It is a lightweight extension of gUFO (the Unified Foundational Ontology's OWL 2 DL implementation): components and channels specialize gufo:Object, capabilities and faults specialize gufo:IntrinsicMode (dispositions), functions/errors/fault-creation events specialize gufo:Event, and interfaces specialize gufo:Relator. CIGs are intended to be queried from system-architecture knowledge graphs via SPARQL and transformed into Fault Trees for Fault Tree Analysis (FTA). This file captures only the static ontological vocabulary (the classes and relations of Fig. 5); the paper's dynamic/temporal semantics (situations, events, error propagation, the CIG-to-Fault-Tree transformation) are given a formal, non-OWL treatment in the paper itself and are not encoded here. Turtle is used as the exchange syntax, matching gUFO's own primary distribution format and the SPARQL/GraphDB tooling described in the source paper.

A companion SHACL shapes file is available for validating instance data against this ontology's structural constraints, including cross-referential constraints (e.g. that a Fault and the Capability it prevents share a bearer) that go beyond what OWL 2 DL can express.

Cross-reference for Capability Interaction Graph (CIG) Ontology classes, object properties and data properties back to ToC

This section provides details for each class and property defined by Capability Interaction Graph (CIG) Ontology.

Classes

Capabilityc back to ToC or Class ToC

IRI: http://purl.org/capability-interaction-graph#Capability

has super-classes
IntrinsicMode c
has sub-classes
Erroneous Capability c, Functional Capability c
is in domain of
consumes op, produces op
is in range of
channel capabilities op, component capabilities op, has op, prevents op
is disjoint with
Fault c
is also defined as
named individual

Channelc back to ToC or Class ToC

IRI: http://purl.org/capability-interaction-graph#Channel

has super-classes
Object c
is in domain of
accommodates op, has op
is in range of
channel op, providedBy op, provides op
is also defined as
named individual

Componentc back to ToC or Class ToC

IRI: http://purl.org/capability-interaction-graph#Component

has super-classes
Object c
has sub-classes
Consumer c, Producer c
is in domain of
has op
is in range of
component op
is also defined as
named individual

Consumerc back to ToC or Class ToC

IRI: http://purl.org/capability-interaction-graph#Consumer

has super-classes
Component c
is in domain of
providedBy op
is also defined as
named individual

Erroneous Capabilityc back to ToC or Class ToC

IRI: http://purl.org/capability-interaction-graph#ErroneousCapability

has super-classes
Capability c
is also defined as
named individual

Errorc back to ToC or Class ToC

IRI: http://purl.org/capability-interaction-graph#Error

The event spanning the period during which a Capability is in its erroneous phase, triggered when an expectation on that capability's manifestation is unmet. Ends once the expectation no longer holds or the capability manifests again. Corresponds to the <<event>> Error class of Fig. 5 (Section VI, Definition 18).
has super-classes
Event c

Faultc back to ToC or Class ToC

IRI: http://purl.org/capability-interaction-graph#Fault

has super-classes
IntrinsicMode c
is in domain of
prevents op
is in range of
has op
is disjoint with
Capability c
is also defined as
named individual

Fault Creationc back to ToC or Class ToC

IRI: http://purl.org/capability-interaction-graph#FaultCreation

The spontaneous event in which one or more Faults come to inhere in a Component or Channel, e.g. a power-supply unit's internal winding burning out. Related to the created Fault via gufo:wasCreatedIn. Corresponds to the <<event>> FaultCreation class of Fig. 5 (Section VI, Definition 17).
has super-classes
Event c

Functionc back to ToC or Class ToC

IRI: http://purl.org/capability-interaction-graph#Function

The manifestation of a Capability as an event, e.g. the ongoing provision of electricity by a power-supply unit. Related to the manifested Capability via gufo:manifestedIn, and to the participating Component or Channel via gufo:participatedIn. Corresponds to the <<event>> Function class of Fig. 5 (Section III.B, Definition 3).
has super-classes
Event c

Functional Capabilityc back to ToC or Class ToC

IRI: http://purl.org/capability-interaction-graph#FunctionalCapability

has super-classes
Capability c
is also defined as
named individual

Input Interfacec back to ToC or Class ToC

IRI: http://purl.org/capability-interaction-graph#InputInterface

has super-classes
Interface c
is also defined as
named individual

Interfacec back to ToC or Class ToC

IRI: http://purl.org/capability-interaction-graph#Interface

has super-classes
Relator c
has sub-classes
Input Interface c, Output Interface c
is in domain of
channel op, channel capabilities op, component op, component capabilities op
is also defined as
named individual

Output Interfacec back to ToC or Class ToC

IRI: http://purl.org/capability-interaction-graph#OutputInterface

has super-classes
Interface c
is also defined as
named individual

Producerc back to ToC or Class ToC

IRI: http://purl.org/capability-interaction-graph#Producer

has super-classes
Component c
is in domain of
provides op
is also defined as
named individual

Resource Typec back to ToC or Class ToC

IRI: http://purl.org/capability-interaction-graph#ResourceType

A higher-order type generalising a form of energy, material, fluid, or signal exchanged between capabilities, e.g. Ink or Electricity. Following Definition 1 of the source paper, instances of cig:ResourceType are themselves types rather than individuals, so it is modelled here as a subclass of gufo:Type: e.g. an application ontology would declare :Ink rdf:type owl:Class, cig:ResourceType, using OWL 2 punning to also give :Ink an appropriate endurant superclass such as gufo:Quantity. Depicted as a <<mixin>> in Fig. 5; a plain gufo:Mixin meta-type was deliberately not asserted here, since gufo:Mixin's instances are endurants, not types.
has super-classes
Type c
is in range of
accommodates op, consumes op, produces op

Object Properties

accommodatesop back to ToC or Object Property ToC

IRI: http://purl.org/capability-interaction-graph#accommodates

Identifies a resource type that a Channel is able to transport. A channel can only produce/consume resource types it accommodates (Section III.B, Definition 6).
has domain
Channel c
has range
Resource Type c

channelop back to ToC or Object Property ToC

IRI: http://purl.org/capability-interaction-graph#channel

Identifies the Channel aggregated by an Interface (Section III.B, Definitions 7-8; Table VI of the source paper).
has domain
Interface c
has range
Channel c

channel capabilitiesop back to ToC or Object Property ToC

IRI: http://purl.org/capability-interaction-graph#channel_capabilities

Identifies the unique channel-side (transport) capability aggregated by an Interface: the channel's consumption capability for an InputInterface, or its production capability for an OutputInterface (Section III.B, Definitions 7-8).
has domain
Interface c
has range
Capability c

componentop back to ToC or Object Property ToC

IRI: http://purl.org/capability-interaction-graph#component

Identifies the Component aggregated by an Interface (Section III.B, Definitions 7-8; Table VI of the source paper).
has domain
Interface c
has range
Component c

component capabilitiesop back to ToC or Object Property ToC

IRI: http://purl.org/capability-interaction-graph#component_capabilities

Identifies the component-side capabilities aggregated by an Interface, i.e. the capabilities of the producing/consuming Component that the interface mediates (Section III.B, Definitions 7-8).
has domain
Interface c
has range
Capability c

consumesop back to ToC or Object Property ToC

IRI: http://purl.org/capability-interaction-graph#consumes

Identifies a resource type required as a prerequisite for the manifestation of a Capability as a Function (Section III.B, Definition 2, Equation 8).
has domain
Capability c
has range
Resource Type c

hasop back to ToC or Object Property ToC

IRI: http://purl.org/capability-interaction-graph#has

Identifies a Capability or Fault borne by a Component or Channel. Declared as the inverse of gufo:inheresIn, mirroring the inference rule of Eq. (1) in the source paper: has(alpha, f) iff inheresIn(f, alpha).
has domain
Channel c or Component c
has range
Capability c or Fault c
is inverse of
inheresIn op

preventsop back to ToC or Object Property ToC

IRI: http://purl.org/capability-interaction-graph#prevents

Identifies a Capability whose manifestation is prevented when the Fault is active. A Fault may only prevent capabilities inhering in the same bearer (Section III.B, Definition 4).
has domain
Fault c
has range
Capability c

producesop back to ToC or Object Property ToC

IRI: http://purl.org/capability-interaction-graph#produces

Identifies a resource type that is output when a Capability is manifested as a Function (Section III.B, Definition 2, Equation 8).
has domain
Capability c
has range
Resource Type c

providedByop back to ToC or Object Property ToC

IRI: http://purl.org/capability-interaction-graph#providedBy

has domain
Consumer c
has range
Channel c
is also defined as
named individual

providesop back to ToC or Object Property ToC

IRI: http://purl.org/capability-interaction-graph#provides

has domain
Producer c
has range
Channel c
is also defined as
named individual

Annotation Properties

bibliographic Citationap back to ToC or Annotation Property ToC

IRI: http://purl.org/dc/terms/bibliographicCitation

createdap back to ToC or Annotation Property ToC

IRI: http://purl.org/dc/terms/created

creatorap back to ToC or Annotation Property ToC

IRI: http://purl.org/dc/elements/1.1/creator

preferred Namespace Prefixap back to ToC or Annotation Property ToC

IRI: http://purl.org/vocab/vann/preferredNamespacePrefix

preferred Namespace Uriap back to ToC or Annotation Property ToC

IRI: http://purl.org/vocab/vann/preferredNamespaceUri

titleap back to ToC or Annotation Property ToC

IRI: http://purl.org/dc/elements/1.1/title

Named Individuals

Capabilityni back to ToC or Named Individual ToC

IRI: http://purl.org/capability-interaction-graph#Capability

belongs to
Category c
is disjoint with
Fault ni
is also defined as
class

Channelni back to ToC or Named Individual ToC

IRI: http://purl.org/capability-interaction-graph#Channel

belongs to
RoleMixin c
is also defined as
class

Componentni back to ToC or Named Individual ToC

IRI: http://purl.org/capability-interaction-graph#Component

belongs to
Mixin c
is also defined as
class

Consumerni back to ToC or Named Individual ToC

IRI: http://purl.org/capability-interaction-graph#Consumer

belongs to
Role c
is also defined as
class

Erroneous Capabilityni back to ToC or Named Individual ToC

IRI: http://purl.org/capability-interaction-graph#ErroneousCapability

belongs to
PhaseMixin c
is also defined as
class

Faultni back to ToC or Named Individual ToC

IRI: http://purl.org/capability-interaction-graph#Fault

belongs to
Category c
is disjoint with
Capability ni
is also defined as
class

Functional Capabilityni back to ToC or Named Individual ToC

IRI: http://purl.org/capability-interaction-graph#FunctionalCapability

belongs to
PhaseMixin c
is also defined as
class

Input Interfaceni back to ToC or Named Individual ToC

IRI: http://purl.org/capability-interaction-graph#InputInterface

belongs to
SubKind c
is also defined as
class

Interfaceni back to ToC or Named Individual ToC

IRI: http://purl.org/capability-interaction-graph#Interface

belongs to
Kind c
is also defined as
class

Output Interfaceni back to ToC or Named Individual ToC

IRI: http://purl.org/capability-interaction-graph#OutputInterface

belongs to
SubKind c
is also defined as
class

Producerni back to ToC or Named Individual ToC

IRI: http://purl.org/capability-interaction-graph#Producer

belongs to
Role c
is also defined as
class

providedByni back to ToC or Named Individual ToC

IRI: http://purl.org/capability-interaction-graph#providedBy

belongs to
MaterialRelationshipType c
has facts
isDerivedFrom op Input Interface ni
is also defined as
object property

providesni back to ToC or Named Individual ToC

IRI: http://purl.org/capability-interaction-graph#provides

belongs to
MaterialRelationshipType c
has facts
isDerivedFrom op Output Interface ni
is also defined as
object property

Legend back to ToC

c: Classes
op: Object Properties
ni: Named Individuals

References back to ToC

Add your references here. It is recommended to have them as a list.

Acknowledgments back to ToC

The authors would like to thank Silvio Peroni for developing LODE, a Live OWL Documentation Environment, which is used for representing the Cross Referencing Section of this document and Daniel Garijo for developing Widoco, the program used to create the template used in this documentation.