Capability Interaction Graph (CIG) Ontology
type: Ontology
version IRI: http://purl.org/capability-interaction-graph#/1.0.0
imports: gufo#
creator: Caltais, Georgiana
creator: Ntagengerwa, Manzi Aimé
creator: Stoelinga, Mariëlle
bibliographic citation: M. A. Ntagengerwa, G. Caltais, M. Stoelinga, "Ontology-Grounded Capability Interaction Graphs: From Knowledge Graphs to Fault Trees", University of Twente, The Netherlands.
created: 2026-07-03
preferred namespace prefix: cig
comment: 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.
version info: 1.0.0

accommodates
type: ObjectProperty
domain: Channel
range: Resource Type
comment: 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).

channel
type: ObjectProperty
domain: Interface
range: Channel
comment: Identifies the Channel aggregated by an Interface (Section III.B, Definitions 7-8; Table VI of the source paper).

channel capabilities
type: ObjectProperty
domain: Interface
range: Capability
comment: 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).

component
type: ObjectProperty
domain: Interface
range: Component
comment: Identifies the Component aggregated by an Interface (Section III.B, Definitions 7-8; Table VI of the source paper).

component capabilities
type: ObjectProperty
domain: Interface
range: Capability
comment: 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).

consumes
type: ObjectProperty
domain: Capability
range: Resource Type
comment: 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
type: ObjectProperty
inverse of: inheresIn
domain: Class
  union of: Channel
  union of: Component
range: Class
  union of: Capability
  union of: Fault
comment: 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).

prevents
type: ObjectProperty
domain: Fault
range: Capability
comment: 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).

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

providedBy
type: ObjectProperty
domain: Consumer
range: Channel
type: NamedIndividual
type: MaterialRelationshipType
is derived from: Input Interface
comment: The material relation borne by a Component playing the Consumer role towards the Channel that provides it with a resource, derived from the underlying InputInterface relator (Section III.B, 'Interfaces').

provides
type: ObjectProperty
domain: Producer
range: Channel
type: NamedIndividual
type: MaterialRelationshipType
is derived from: Output Interface
comment: The material relation borne by a Component playing the Producer role towards the Channel it supplies with a resource, derived from the underlying OutputInterface relator (Section III.B, 'Interfaces').

Capability
type: Class
subclass of: IntrinsicMode
disjoint with: Fault
disjoint union of: Erroneous Capability
disjoint union of: Functional Capability
type: NamedIndividual
type: Category
comment: A disposition (gufo:IntrinsicMode) inhering in exactly one Component or Channel, describing a possible behaviour of its bearer, e.g. 'provide electricity' or 'deposit ink'. A capability may be manifested as a Function via gufo:manifestedIn, and is, at any time, in exactly one of its FunctionalCapability or ErroneousCapability phases. Corresponds to the <<category>><<mode>> Capability class of Fig. 5 (Section III.B, Definition 2).

Channel
type: Class
subclass of: Object
type: NamedIndividual
type: RoleMixin
comment: The role played by an object that transports a resource type between a Producer and a Consumer, e.g. a wire or a tube. A Channel bears its own pair of transport capabilities (consumption and production) for each resource type it accommodates. An object playing the Component role may simultaneously play the Channel role. Corresponds to the <<roleMixin>> Channel class of Fig. 5 (Section III.B, Definition 6).

Component
type: Class
subclass of: Object
type: NamedIndividual
type: Mixin
comment: A physical entity bearing one or more capabilities, e.g. a power-supply unit, an ink reservoir, or a print head. Components are treated as mereologically atomic: this ontology makes no commitment to their internal parthood structure. Corresponds to the <<mixin>> Component class of Fig. 5 (Section III.B, Definition 5).

Consumer
type: Class
subclass of: Component
type: NamedIndividual
type: Role
comment: The role played by a Component when one of its capabilities is provided a resource type by a Channel, giving rise to the cig:providedBy material relation. Corresponds to the <<role>> Consumer class of Fig. 5 (Section III.B, 'The Component type').

Erroneous Capability
type: Class
subclass of: Capability
type: NamedIndividual
type: PhaseMixin
comment: The phase of a Capability during the existence of an Error over it. Covering and disjoint with FunctionalCapability. Corresponds to the <<phaseMixin>> Erroneous Capability class of Fig. 5 (Section III.B).

Error
type: Class
subclass of: Event
comment: 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).

Fault
type: Class
subclass of: IntrinsicMode
type: NamedIndividual
type: Category
comment: A disposition (gufo:IntrinsicMode) inhering in exactly one Component or Channel that, once activated, prevents the manifestation of one or more of that object's capabilities via cig:prevents. Corresponds to the <<category>><<mode>> Fault class of Fig. 5 (Section III.B, Definition 4).

Fault Creation
type: Class
subclass of: Event
comment: 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).

Function
type: Class
subclass of: Event
comment: 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).

Functional Capability
type: Class
subclass of: Capability
type: NamedIndividual
type: PhaseMixin
comment: The phase of a Capability outside the existence of an Error over it. Covering and disjoint with ErroneousCapability. Corresponds to the <<phaseMixin>> Functional Capability class of Fig. 5 (Section III.B).

Input Interface
type: Class
subclass of: Interface
type: NamedIndividual
type: SubKind
comment: An Interface relating a Channel, the Component consuming from it, and the resource type exchanged, giving rise to the cig:providedBy material relation between the consuming Component and the Channel. Corresponds to the <<subkind>> InputInterface class of Fig. 5 (Section III.B, Definition 8).

Interface
type: Class
subclass of: Relator
disjoint union of: Input Interface
disjoint union of: Output Interface
type: NamedIndividual
type: Kind
comment: A relator (gufo:Relator) mediating a resource exchange between a Component and a Channel through a particular resource type. Every Interface is either an InputInterface or an OutputInterface. Corresponds to the <<relator>> Interface class of Fig. 5 (Section III.B).

Output Interface
type: Class
subclass of: Interface
type: NamedIndividual
type: SubKind
comment: An Interface relating a Channel, the Component producing for it, and the resource type exchanged, giving rise to the cig:provides material relation between the producing Component and the Channel. Corresponds to the <<subkind>> OutputInterface class of Fig. 5 (Section III.B, Definition 7).

Producer
type: Class
subclass of: Component
type: NamedIndividual
type: Role
comment: The role played by a Component when one of its capabilities provides a resource type to a Channel, giving rise to the cig:provides material relation. Corresponds to the <<role>> Producer class of Fig. 5 (Section III.B, 'The Component type').

Resource Type
type: Class
subclass of: Type
comment: 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.