{
* Module: System-oHome-ElviraTaxonomy
* ---------------------------------------------------------
* This file has been extracted from a ConceptBase database.
* Copyright is with the respective authors!
* Time extracted: 2026-08-21T08:03:02,223Z (UTC)
* Active user: jeusfeld@gluon_amd64_Linux
* CBserver version: 8.5.16 (2026-07-20)
*
* -authors: Manfred Jeusfeld, Yacine Atif, Jianguo Ding, Yuning Jiang, Christoffer Brax, Sten Andler, Birgitta Lindstrom, Thomas Svensson, Eva Nero
* -license:
---------------------------------------------------------------------------------------------------------------------------------------
Copyright 2020 Manfred Jeusfeld, Yacine Atif, Jianguo Ding, Yuning Jiang, Christoffer Brax, Sten Andler,
Birgitta Lindstrom, Thomas Svensson, Eva Nero
Redistribution and use in source and binary forms, with or without modification, are permitted provided
that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the
following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
the following disclaimer in the documentation and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or
promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS' AND ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
---------------------------------------------------------------------------------------------------------------------------------------
* -purpose: Component and event ontology for the ELVIRA project
* -sponsor: The development of this ontology has been supported in part by EU ISF Project A431.678/2016 ELVIRA (Threat modeling and resilience of critical infrastructures), coordinated by Polismyndigheten/Sweden
* -uses: ConceptBase documentation; Wikipedia; SecuriCad documentation from foreseeti (Sweden); see also references at term definitions
}
{$set module=System-oHome-ElviraTaxonomy}
{ 2026-08-21,08:02:42.833 }
ElviraTaxonomy in Module,AutoHomeModule with
comment
purpose : "Component and event ontology for the ELVIRA project";
sponsor : "The development of this ontology has been supported in part by EU ISF Project A431.678/2016 ELVIRA (Threat modeling and resilience of critical infrastructures), coordinated by Polismyndigheten/Sweden"
end
Value end
String in BuiltinClass,Class isA Value end
Real in BuiltinClass,Class isA Value end
Integer in BuiltinClass,Class isA Value end
Thing with
attribute
aproperty : Proposition
end
TemporalEntity end
TimePoint isA TemporalEntity end
TimeInterval isA TemporalEntity end
SpatialThing end
Agent end
Event with
comment
ref : "http://motools.sourceforge.net/event/event.html"
attribute
subevent : Event;
time : TemporalEntity;
agent : Agent;
product : Thing;
factor : Thing;
place : SpatialThing
end
EventType in Class with
comment
ref : "Roxane Segers, Tommaso Caselli, Piek Vossen: The Circumstantial Event Ontology (CEO). Proceedings of the Events and Stories in the News Workshop, pages 37-41, Vancouver, Canada, August 4, 2017."
attribute
relation : EventType;
causes : EventType;
before : EventType;
entails : EventType;
prevents : EventType;
contingentEffect : EventType
end
EventType!relation with
attribute
probability : Real
end
Event with
IN
c : EventType
end
Person isA Agent end
Organization end
CyberPhysicalObject with
comment
definition : "A cyber-physical object is always the virtual representation of the combination of a physical component and some cyber component.It has a physical part plus some software (mostly embedded software or firmware"
end
{---} { 2026-08-21,08:02:42.933 }
Component in ComponentType,Class with
attribute
dataflow : Component;
TTR : Real
deltaTTR
deltaTTR1 : 0.0
rule
onDefault : $ forall c/Component T/ComponentType v/Real (c in T) and (T deltaTTR v) ==> (c TTR v) $
end
allTTR in GenericQueryClass isA Real with
parameter
comp : Component
constraint
cc : $ (~comp TTR this) $
end
getTTR in Function isA Real with
parameter
component : Component
constraint
cttr : $ (this = SUM(allTTR[~component/comp])) $
end
{---} { 2026-08-21,08:02:43.053 }
CyberComponent in ComponentType with
comment
definition : "A cyber-component is a component that is a data source or a data sink, e.g. sending and receiving data from a SCADA-like system"
end
CyberPhysicalObject with
attribute
virtualizes : Component
end
Component in Class,ComponentType isA Thing with
attribute
subcomponent : Component
end
PhysicalComponent in ComponentType isA Component end
{---} { 2026-08-21,08:02:43.188 }
CyberComponent in ComponentType isA Component end
PhysicalComponent in ComponentType with
attribute
location : SpatialThing;
physicalconnection : PhysicalComponent
deltaTTR
deltaTTR2 : 0.5
end
ITComponent in ComponentType isA PhysicalComponent end
Component in Class,ComponentType with
attribute
input : Thing;
output : Thing;
cascade : Component;
subcomponent_trans : Component;
cascade_trans : Component;
influence : Component;
influence_trans : Component
end
ManagedPhysicalComponent in ComponentType isA PhysicalComponent with
comment
definitionMPS : "Any physical component that is controlled and/or monitored by IT components"
end
PowergridComponent in ComponentType isA ManagedPhysicalComponent with
deltaTTR
deltaTTR3 : 1.5
end
CircuitBreaker in ComponentType isA PowergridComponent end
PowerLine in ComponentType isA PowergridComponent with
deltaTTR
deltaTTR4 : 1.0
end
DistributionLine in ComponentType isA PowerLine with
deltaTTR
deltaTTR : 10.0
end
TransmissionLine in ComponentType isA PowerLine with
deltaTTR
deltaTTR5 : 20.0
end
PowerGenerator in ComponentType isA PowergridComponent with
deltaTTR
deltaTTR6 : 70.0
end
SubStation in ComponentType end
CollectorSubStation in ComponentType isA SubStation with
comment
c1 : "A collector substation can contain either a step-up or step-down transformers"
end
DistributionSubStation in ComponentType isA SubStation with
comment
c1 : "contains step-down transformers"
end
SwitchingStation in ComponentType isA SubStation end
TransmissionSubStation in ComponentType isA SubStation end
Transformer in ComponentType isA PowergridComponent end
StepUpTransformer in ComponentType isA Transformer end
StepDownTransformer in ComponentType isA Transformer end
PowerNetwork in ComponentType isA PowergridComponent end
TransmissionNetwork in ComponentType isA PowerNetwork end
DistributionNetwork in ComponentType isA PowerNetwork end
Component in Class,ComponentType with
attribute
owner : Organization
end
AnyFunction isA Thing end
PhysicalFunction isA AnyFunction end
CyberFunction isA AnyFunction end
DataTransmission isA CyberFunction end
PowerSupply isA PhysicalFunction end
PowerTransmission isA PhysicalFunction end
PowerDistribution isA PhysicalFunction end
PowerMonitoring isA AnyFunction end
CyberPhysicalObject isA Thing end
CyberComponent in ComponentType with
attribute
embeddedIn : PhysicalComponent
deltaTTR
deltaTTR7 : 0.7
end
Event isA Thing end
EventType!contingentEffect isA EventType!relation end
EventType!before isA EventType!relation end
EventType!prevents isA EventType!relation end
EventType!entails isA EventType!relation end
EventType!causes isA EventType!relation end
PowergridComponent in Class with
attribute
powerconnection : PowergridComponent
end
PowergridComponent!powerconnection isA PhysicalComponent!physicalconnection end
PhysicalIntegrityEvent isA Event end
Fire isA PhysicalIntegrityEvent end
DataIntegrityEvent isA Event end
DataLoss isA DataIntegrityEvent end
NoResponse isA DataIntegrityEvent end
Intervention isA Event end
PowergridIntervention isA Intervention end
Tripping isA PowergridIntervention with
comment
definition : "Tripping in a power plant/station occurs whenever fault happens. it's a protective measure which essentially isolates the important devices from the faulty section and thus saving it from getting destroyed (due to excessive current or voltage across it)";
ref1 : "https://www.quora.com/What-does-tripping-of-power-plant-electrical-line-generator-power-grid-mean?no_redirect=1#!n=12"
end
Terminal in ComponentType isA PowergridComponent with
comment
definition : "A point at which a conductor from a power line comes to an end and provides a point of connection to an external network, e.g. a customer"
end
BusBar in ComponentType isA PowergridComponent with
comment
definition : "A busbar is a metallic components connecting several electrical components like power lines"
deltaTTR
deltaTTR8 : 5.0
end
ShuntCapacitor in ComponentType isA PowergridComponent end
ShuntReactor in ComponentType isA PowergridComponent end
ShuntCapacitor in ComponentType with
comment
purpose : "Used to correct power factors"
end
Component in Class,ComponentType with
attribute
controlflow : Component
end
Isolator in ComponentType isA PowergridComponent end
EventType in Class isA Thing end
Feeder in ComponentType isA PowergridComponent end
Load in ComponentType isA PowergridComponent end
EarthGround in ComponentType isA PowergridComponent end
Region isA SpatialThing end
PowerGridPalette in Class,JavaGraphicalPalette isA XPalette with
contains
sp1 : INDIVIDUAL_GT;
sp2 : INSTOF_GT;
sp3 : ATTR_GT;
dt15 : IN_Link_GT;
dt16 : SPEC_Link_GT;
pc1 : POWERCONN_GT
end
POWERCONN_GT in Class,JavaGraphicalType end
BUSBAR_GT in Class,JavaGraphicalType end
PowerGridPalette in Class,JavaGraphicalPalette with
contains
bb1 : BUSBAR_GT;
pg1 : PGCOMP_GT
end
PGCOMP_GT in Class,JavaGraphicalType end
POWERCONN_GT in Class,JavaGraphicalType with
property
textcolor : "0,0,0";
edgecolor : "10,10,250";
edgewidth : "2";
fontsize : "10";
label : "";
bgcolor : "255,255,255,100"
implementedBy
implBy : "i5.cb.graph.cbeditor.CBLink"
priority
p : 20
rule
gtrule : $ forall x/PowergridComponent!powerconnection (x graphtype POWERCONN_GT) $
end
PGCOMP_GT in Class,JavaGraphicalType with
property
bgcolor : "250,250,250";
textcolor : "10,10,10";
linecolor : "0,0,0";
fontsize : "10";
shape : "i5.cb.graph.shapes.Rect";
size : "resizable";
linewidth : "1"
implementedBy
implBy : "i5.cb.graph.cbeditor.CBIndividual"
priority
pr : 20
rule
gtrule : $ forall x/PowergridComponent (x graphtype PGCOMP_GT) $
forIncoming
in1 : PowergridComponent!powerconnection
forOutgoing
out1 : PowergridComponent!powerconnection
end
BUSBAR_GT in Class,JavaGraphicalType with
property
bgcolor : "10,10,10";
textcolor : "250,250,250";
linecolor : "0,0,0";
fontsize : "10";
shape : "i5.cb.graph.shapes.Rect";
size : "resizable";
linewidth : "1"
implementedBy
implBy : "i5.cb.graph.cbeditor.CBIndividual"
priority
pr : 22
rule
gtrule : $ forall x/BusBar (x graphtype BUSBAR_GT) $
end
POWERCONN_GT in Class,JavaGraphicalType with
property
edgeheadshape : "none"
end
LocalLine in ComponentType isA PowerLine end
DataType in ComponentType isA CyberComponent end
DataStream in ComponentType isA CyberComponent with
attribute
elementType : DataType
end
POWERLINE_GT in Class,JavaGraphicalType with
property
linecolor : "0,0,0";
fontsize : "8";
image : "powergrid/powerline.png";
linewidth : "1"
implementedBy
implBy : "i5.cb.graph.cbeditor.CBIndividual"
priority
pr : 30
rule
gtrule : $ forall x/PowerLine (x graphtype POWERLINE_GT) $
end
PowerGridPalette in Class,JavaGraphicalPalette with
contains
pg2 : POWERLINE_GT
end
POWERLINE_GT in Class,JavaGraphicalType with
property
textcolor : "10,10,10";
size : "resizable"
end
PowergridComponent in Class,ComponentType with
attribute
nominalvoltage : String;
nominalfrequency : String
end
Transformer in Class with
attribute
lowervoltage : String;
uppervoltage : String
rule
ttr1 : $ forall p/Transformer v/String (p lowervoltage v) ==> (p aproperty/lowervoltage v) $;
ttr2 : $ forall p/Transformer v/String (p uppervoltage v) ==> (p aproperty/uppervoltage v) $
end
PowergridComponent in Class,ComponentType with
rule
tr1 : $ forall p/PowergridComponent v/String (p nominalvoltage v) ==> (p aproperty/nominalvoltage v) $
end
GENERATOR_GT in Class,JavaGraphicalType with
property
linecolor : "0,0,0";
fontsize : "8";
image : "powergrid/generator.png";
linewidth : "1";
textcolor : "10,10,10";
size : "resizable"
implementedBy
implBy : "i5.cb.graph.cbeditor.CBIndividual"
priority
pr : 30
rule
gtrule : $ forall x/PowerGenerator (x graphtype GENERATOR_GT) $
end
GROUND_GT in Class,JavaGraphicalType with
property
linecolor : "0,0,0";
fontsize : "8";
image : "powergrid/ground.png";
linewidth : "1";
textcolor : "10,10,10";
size : "resizable"
implementedBy
implBy : "i5.cb.graph.cbeditor.CBIndividual"
priority
pr : 30
rule
gtrule : $ forall x/EarthGround (x graphtype GROUND_GT) $
end
TRANSFORMER_GT in Class,JavaGraphicalType with
property
linecolor : "0,0,0";
fontsize : "8";
image : "powergrid/transformer.png";
linewidth : "1";
textcolor : "10,10,10";
size : "resizable"
implementedBy
implBy : "i5.cb.graph.cbeditor.CBIndividual"
priority
pr : 30
rule
gtrule : $ forall x/Transformer (x graphtype TRANSFORMER_GT) $
end
Transformer in Class,ComponentType with
rule
voltrule1 : $ forall t/Transformer pc1,pc2/PowergridComponent v1,v2/String
(pc1 powerconnection t) and (pc2 powerconnection t) and
(pc1 nominalvoltage v1) and (pc2 nominalvoltage v2) and (v1 < v2)
==> (t lowervoltage v1) $;
voltrule2 : $ forall t/Transformer pc1,pc2/PowergridComponent v1,v2/String
(pc1 powerconnection t) and (pc2 powerconnection t) and
(pc1 nominalvoltage v1) and (pc2 nominalvoltage v2) and (v1 < v2)
==> (t uppervoltage v2) $
end
ComputerCode in ComponentType isA CyberComponent with
comment
definition1 : "Any computer-executable code"
end
OperatingSystemCode in ComponentType isA ComputerCode with
deltaTTR
deltaTTR9 : 2.5
end
FirmwareCode in ComponentType isA ComputerCode end
ApplicationSoftware in ComponentType isA ComputerCode with
deltaTTR
deltaTTR10 : 1.5
end
DataSet in ComponentType isA CyberComponent with
deltaTTR
deltaTTR11 : 0.4
attribute
reader : Component;
writer : Component
end
DataStore in ComponentType isA DataSet end
CommunicationMessage in ComponentType isA CyberComponent end
Computer in ComponentType isA ITComponent with
deltaTTR
deltaTTR12 : 2.0
end
Modem in ComponentType isA ITComponent with
deltaTTR
deltaTTR13 : 0.2
end
Router in ComponentType isA ITComponent with
attribute
deltaTTR : 0.2
end
ServerComputer in ComponentType isA Computer with
deltaTTR
deltaTTR14 : 1.5
end
WorkStation in ComponentType isA Computer end
PersonalComputer in ComponentType isA Computer with
deltaTTR
deltaTTR15 : 0.5
end
MobileDevice in ComponentType isA ITComponent end
PowerGridPalette in Class,JavaGraphicalPalette with
contains
pg3 : GENERATOR_GT;
pg4 : TRANSFORMER_GT;
pg5 : GROUND_GT
end
ShortBusBar in ComponentType isA BusBar end
LongBusBar in ComponentType isA BusBar end
ShuntReactor in ComponentType with
comment
definition1 : "stores energy in the magnetic field"
end
ShuntCapacitor in ComponentType with
comment
definition1 : "A shunt capacitor bank stores energy in the electric field due to polarization of the dielectric material"
end
SynchronousPowerGenerator in ComponentType isA PowerGenerator end
AsynchronousPowerGenerator in ComponentType isA PowerGenerator end
Component in Class,ComponentType with
attribute
dataconnection : Component
rule
symrule_dc : $ forall c1,c2/Component :(c1 dataconnection c2): ==> (c2 dataconnection c1) $
end
Load in ComponentType with
comment
comment1 : "The Load attached is typically attachefd to a BusBar and is more a parameter for powerflow simulation rather than a physical component"
end
Switch in ComponentType isA ITComponent with
deltaTTR
deltaTTR16 : 0.5
end
ProgrammableLogicController in ComponentType isA ITComponent with
comment
description1 : "Computerized rugged component to control physical component; similar to IED but simpler"
end
ScadaServer in ComponentType isA ServerComputer with
deltaTTR
deltaTTR17 : 3.0
end
Network in ComponentType isA Component with
comment
descr : "The organization for certain IT components to belong to a set with common rules for access and management"
end
CommunicationNetwork in ComponentType isA Network end
OpticalFibreNetwork in ComponentType end
Sensor in ComponentType isA ITComponent end
Actuator in ComponentType isA ITComponent end
MaintenanceServer in ComponentType isA ServerComputer end
MaintenanceWorkstation in ComponentType isA Computer end
LocalAreaNetwork in ComponentType isA CommunicationNetwork end
MaintenanceLAN in ComponentType isA LocalAreaNetwork end
OfficeLAN in ComponentType isA LocalAreaNetwork end
DemilitarizedZone in ComponentType with
comment
description1 : "A partly secured section of the communication network; can be part of SCADA network but not directly to the highly secured SCADA LAN"
end
Firewall in ComponentType isA ITComponent with
deltaTTR
deltaTTR18 : 0.4
end
DemilitarizedZone in ComponentType isA CommunicationNetwork end
SCADA_DMZ in ComponentType isA DemilitarizedZone end
SCADA_LAN in ComponentType isA CommunicationNetwork end
Process_LAN in ComponentType isA CommunicationNetwork end
Substation_LAN in ComponentType isA CommunicationNetwork end
Office_LAN in ComponentType isA CommunicationNetwork end
PowerGridPalette2 in Class,JavaGraphicalPalette isA XPalette with
contains
sp1 : INDIVIDUAL_GT;
sp2 : INSTOF_GT;
sp3 : ATTR_GT;
dt15 : IN_Link_GT;
dt16 : SPEC_Link_GT;
pc1 : POWERCONN_GT;
bb1 : BUSBAR_GT;
pg1 : PGCOMP_GT;
pg2 : POWERLINE_GT;
pg3 : GENERATOR_GT;
pg4 : TRANSFORMER_GT;
pg5 : GROUND_GT;
pg6 : CONTROLCENTER_GT
end
CONTROLCENTER_GT in Class,JavaGraphicalType end
SUBSTATION_GT in Class,JavaGraphicalType end
PowerGridPalette2 in Class,JavaGraphicalPalette with
contains
pg7 : SUBSTATION_GT
end
CONTROLCENTER_GT in Class,JavaGraphicalType with
property
shape : "Rect";
bgcolor : "255,255,204";
textcolor : "80,80,80";
linecolor : "80,80,80";
linewidth : "3";
size : "resizable";
fontstyle : "italic";
nodelevel : "-103";
align : "top"
implementedBy
implBy : "i5.cb.graph.cbeditor.CBIndividual"
priority
pr : 22
end
SUBSTATION_GT in Class,JavaGraphicalType with
property
shape : "Rect";
bgcolor : "230,230,255";
textcolor : "80,80,80";
linecolor : "80,80,80";
linewidth : "3";
size : "resizable";
fontstyle : "italic";
align : "top"
implementedBy
implBy : "i5.cb.graph.cbeditor.CBIndividual"
priority
pr : 22
rule
gtrule : $ forall x/SubStation (x graphtype SUBSTATION_GT) $
end
CONTROLCENTER_GT in Class,JavaGraphicalType with
rule
gtrule : $ forall x/ControlCenter (x graphtype CONTROLCENTER_GT) $
end
NineBus in Module end
PowergridComponent in Class,ComponentType with
attribute
nominalpower : String
end
OTServer isA ServerComputer end
RTU in ComponentType isA OTServer with
comment
description1 : "Interface between physical components and control systems like SCADA; low level acccess component as part of an embedded system, in particular in substations";
url : "https://en.wikipedia.org/wiki/Remote_terminal_unit"
end
IED in ComponentType isA OTServer with
comment
definition1 : "Intelligent Electronic Device; A microprocessor-controller-based controller for power grid component; can be directly connected to SCADA system";
url : "https://en.wikipedia.org/wiki/Intelligent_electronic_device";
definition2 : "Can control several aspects of a physical components; more intelligent than a PLC"
end
PMU in ComponentType isA OTServer end
DataLine in ComponentType isA ITComponent with
deltaTTR
deltaTTR19 : 1.5
end
WLAN in ComponentType isA DataLine end
LAN in ComponentType isA DataLine end
AnyStation in ComponentType isA PowergridComponent end
SubStation in ComponentType isA AnyStation with
deltaTTR
deltaTTR20 : 300.0
end
PowerStation in ComponentType isA AnyStation with
deltaTTR
deltaTTR21 : 1000.0
end
OpticalFibreNetwork in ComponentType isA DataLine end
ANYSTATION_GT in Class,JavaGraphicalType with
property
shape : "Rect";
bgcolor : "230,230,255";
textcolor : "80,80,80";
linecolor : "80,80,80";
linewidth : "3";
size : "resizable";
fontstyle : "italic";
nodelevel : "-103";
align : "top"
implementedBy
implBy : "i5.cb.graph.cbeditor.CBIndividual"
priority
pr : 21
end
PowerGridPalette2 in Class,JavaGraphicalPalette with
contains
pg8 : ANYSTATION_GT
end
POWERSTATION_GT in Class,JavaGraphicalType with
property
shape : "Rect";
textcolor : "80,80,80";
linecolor : "80,80,80";
linewidth : "3";
size : "resizable";
fontstyle : "italic";
nodelevel : "-103";
align : "top"
implementedBy
implBy : "i5.cb.graph.cbeditor.CBIndividual"
rule
gtrule : $ forall x/PowerStation (x graphtype POWERSTATION_GT) $
end
ANYSTATION_GT in Class,JavaGraphicalType with
rule
gtrule : $ forall x/AnyStation (x graphtype ANYSTATION_GT) $
end
SUBSTATION_GT in Class,JavaGraphicalType with
property
nodelevel : "-102"
end
POWERSTATION_GT in Class,JavaGraphicalType with
priority
pr : 25
end
PowerGridPalette2 in Class,JavaGraphicalPalette with
contains
pg9 : POWERSTATION_GT
end
DATACONN_GT in Class,JavaGraphicalType with
property
textcolor : "0,0,0";
edgecolor : "120,120,120";
edgewidth : "2";
fontsize : "10";
label : "";
bgcolor : "255,255,255,100";
edgeheadshape : "none"
implementedBy
implBy : "i5.cb.graph.cbeditor.CBLink"
priority
p : 21
rule
gtrule : $ forall x/Component!dataconnection (x graphtype DATACONN_GT) $
end
PowerGridPalette2 in Class,JavaGraphicalPalette with
contains
dc1 : DATACONN_GT
end
PHYSCOMP_GT in Class,JavaGraphicalType with
property
bgcolor : "200,200,200";
textcolor : "10,10,10";
linecolor : "0,0,0";
fontsize : "10";
shape : "i5.cb.graph.shapes.Rect";
size : "resizable";
linewidth : "1"
implementedBy
implBy : "i5.cb.graph.cbeditor.CBIndividual"
priority
pr : 15
rule
gtrule : $ forall x/PhysicalComponent (x graphtype PHYSCOMP_GT) $
end
PowerGridPalette2 in Class,JavaGraphicalPalette with
contains
pg10 : PHYSCOMP_GT
end
PowergridComponent in Class,ComponentType with
attribute
nominalreactivepower : String
end
NominalVoltage in QueryClass isA PowergridComponent with
computed_attribute
nomvoltage : String
constraint
nomvc : $ (this nominalvoltage ~nomvoltage) $
end
TransformerVoltage in QueryClass isA Transformer with
computed_attribute
low : String;
high : String
constraint
nomvc : $ (this lowervoltage ~low) and (this uppervoltage ~high) $
end
POWERSTATION_GT in Class,JavaGraphicalType with
property
bgcolor : "255,230,230"
end
FIREWALL_GT in Class,JavaGraphicalType with
property
linecolor : "0,0,0";
fontsize : "8";
image : "powergrid/firewall.png";
linewidth : "1";
textcolor : "10,10,10";
size : "resizable"
implementedBy
implBy : "i5.cb.graph.cbeditor.CBIndividual"
priority
pr : 40
rule
gtrule : $ forall x/Firewall (x graphtype FIREWALL_GT) $
end
COMPUTER_GT in Class,JavaGraphicalType with
property
linecolor : "0,0,0";
fontsize : "8";
image : "powergrid/computer.png";
linewidth : "1";
textcolor : "10,10,10";
size : "resizable"
implementedBy
implBy : "i5.cb.graph.cbeditor.CBIndividual"
priority
pr : 40
rule
gtrule : $ forall x/Computer (x graphtype COMPUTER_GT) $
end
PowerGridPalette2 in Class,JavaGraphicalPalette with
contains
cy1 : FIREWALL_GT;
cy2 : COMPUTER_GT
end
ControlCenter in ComponentType isA AnyStation end
WAN in ComponentType isA DataLine end
HMI in ComponentType isA Computer end
SWITCH_GT in Class,JavaGraphicalType with
property
linecolor : "0,0,0";
fontsize : "8";
image : "powergrid/switch.png";
linewidth : "1";
textcolor : "10,10,10";
size : "resizable"
implementedBy
implBy : "i5.cb.graph.cbeditor.CBIndividual"
priority
pr : 40
rule
gtrule : $ forall x/Switch (x graphtype SWITCH_GT) $
end
ROUTER_GT in Class,JavaGraphicalType with
property
linecolor : "0,0,0";
fontsize : "8";
image : "powergrid/router.png";
linewidth : "1";
textcolor : "10,10,10";
size : "resizable"
implementedBy
implBy : "i5.cb.graph.cbeditor.CBIndividual"
priority
pr : 40
rule
gtrule : $ forall x/Router (x graphtype ROUTER_GT) $
end
PowerGridPalette2 in Class,JavaGraphicalPalette with
contains
cy3 : ROUTER_GT;
cy4 : SWITCH_GT
end
MTU in ComponentType isA OTServer end
PDC in ComponentType isA OTServer with
comment
definition1 : "A Phasor-Data Concentrator collected PMU data from several PMUs and then sends it to a computer or device, e.g. a SCADA server"
end
PMU in ComponentType with
comment
definition1 : "A Phasor Measurement Unit is an advanced metering device measuring electrical waves in a powergrid. Several PMUs use the same synchronized time, e.g. via a GPS antenna. It can measure frequencies, voltage and currents in an accurately time-stamped way. "
end
PowergridComponent in Class,ComponentType with
rule
symrule_pc : $ forall c1,c2/PowergridComponent :(c1 powerconnection c2): ==> (c2 powerconnection c1) $
end
ScadaProgram in ComponentType isA ComputerCode with
deltaTTR
deltaTTR22 : 1.7
end
LogFile in ComponentType isA DataSet with
deltaTTR
deltaTTR23 : 0.1
end
Database in ComponentType isA DataStore with
deltaTTR
deltaTTR24 : 0.6
end
ConfigurationFile in ComponentType isA DataSet with
deltaTTR
deltaTTR25 : 0.1
end
Component in Class,ComponentType with
attribute
dataconntrans : Component
rule
trans1 : $ forall c1,c2/Component (c1 dataconnection c2) ==> (c1 dataconntrans c2) $;
trans2 : $ forall c1,c2,c3/Component (c1 dataconnection c2) and (c2 dataconntrans c3) ==> (c1 dataconntrans c3) $
end
Unmonitored in QueryClass isA PowergridComponent with
constraint
notmon : $ not exists sp/ApplicationSoftware sc/ScadaServer rt/RTU
m/MTU stat/AnyStation
(sc subcomponent sp) and
(rt dataflow sp) and (m dataflow sp) and
(m dataconnection rt) and
(rt dataconnection this) and
(stat subcomponent this) and
(stat subcomponent rt) and
(stat subcomponent m) $
end
SiemProgram in ComponentType isA ComputerCode end
CIRCUITBREAKER_GT in Class,JavaGraphicalType with
property
linecolor : "0,0,0";
fontsize : "8";
image : "powergrid/circuitbreaker.png";
linewidth : "1";
textcolor : "10,10,10";
size : "resizable"
implementedBy
implBy : "i5.cb.graph.cbeditor.CBIndividual"
priority
pr : 40
rule
gtrule : $ forall x/CircuitBreaker (x graphtype CIRCUITBREAKER_GT) $
end
PowerGridPalette2 in Class,JavaGraphicalPalette with
contains
pg11 : CIRCUITBREAKER_GT
end
DATAFLOW_GT in Class,JavaGraphicalType with
property
textcolor : "0,0,0";
edgecolor : "60,60,200";
edgewidth : "2";
fontsize : "10";
edgeheadshape : "SmallArrow";
label : "data";
bgcolor : "255,255,255,100"
implementedBy
implBy : "i5.cb.graph.cbeditor.CBLink"
priority
p : 21
rule
gtrule : $ forall x/Component!dataflow (x graphtype DATAFLOW_GT) $
end
ImplicitGT_dataflow in Class,JavaGraphicalType with
property
textcolor : "0,0,0";
edgecolor : "60,60,200";
edgewidth : "2";
edgestyle : "dashdotted";
fontsize : "10";
edgeheadshape : "SmallArrow";
label : "data";
bgcolor : "255,255,255,100"
implementedBy
implBy : "i5.cb.graph.cbeditor.CBLink"
priority
p : 21
end
CONTROLFLOW_GT in Class,JavaGraphicalType with
property
textcolor : "0,0,0";
edgecolor : "200,60,60";
edgewidth : "2";
fontsize : "10";
edgeheadshape : "SmallArrow";
label : "control";
bgcolor : "255,255,255,100"
implementedBy
implBy : "i5.cb.graph.cbeditor.CBLink"
priority
p : 21
rule
gtrule : $ forall x/Component!controlflow (x graphtype CONTROLFLOW_GT) $
end
PowerGridPalette2 in Class,JavaGraphicalPalette with
contains
df1 : DATAFLOW_GT;
cf1 : CONTROLFLOW_GT
end
PowergridComponent in Class,ComponentType with
rule
voltrule : $ forall p1,p2/PowergridComponent v/String
((p1 powerconnection p2) or (p2 powerconnection p1)) and (p1 nominalvoltage v) and
not (p1 in Transformer) and not (p2 in Transformer) ==> (p2 nominalvoltage v) $
end
ComponentWithSuper in QueryClass isA Individual with
computed_attribute
super : Individual
constraint
csuper : $ (this isA Component) and (super isA Component) and :(this isA super): and not (this in QueryClass) $
end
PhysicalComponentWithSuper in QueryClass isA ComponentType with
computed_attribute
super : Individual
constraint
csuper : $ (this isA PhysicalComponent) and (super isA Component) and :(this isA super): and not (this in QueryClass) $
end
Comp2PythonFormat in AnswerFormat with
forQuery
q : ComponentWithSuper
orderBy
ob : "none"
head
h : "# Static Component hierarchy for smart grids for the ELVIRA SIMULATOR
# Extracted from ConceptBase {cb_version} by Comp2PythonFormat
# DataBase: {database} at {transactiontime} (UTC)
# Module: {currentpath}
# Author: Elvira Team at COMBITECH.SE and HIS.SE
import elvira.common.support.log_handler as LOG
from elvira.common.support.node_graph import Node
##################################
# Component (abstract)
##################################
@LOG.addlogger
class Component(Node):
def __init__(self, name):
super().__init__(name)
"
pattern
p : "@LOG.addlogger
class {this}({this.super}):
def __init__(self, name):
super().__init__(name)
"
tail
t : "\\n# end of file"
end
PowerPlant in ComponentType isA PowerStation end
ExternalGrid in ComponentType isA PowergridComponent end
MappingSecuriCadRules in Class with
rule
sec1 : $ forall c/Computer (c aproperty/securiCadType "host") $;
sec3 : $ forall c/MTU (c aproperty/securiCadType "host") $;
sec4 : $ forall c/PMU (c aproperty/securiCadType "host") $;
sec5 : $ forall c/ProgrammableLogicController (c aproperty/securiCadType "host") $
end
ComputerService in ComponentType isA CyberComponent with
comment
definition1 : "to be mapped to SecuriCAD service"
end
MappingSecuriCadRules in Class with
rule
sec6 : $ forall c/ComputerService (c aproperty/securiCadType "service") $
end
AccessControl in ComponentType isA CyberComponent end
UserAccount in ComponentType isA CyberComponent end
User in ComponentType isA PhysicalComponent end
Attacker in ComponentType isA PhysicalComponent end
ClientSoftware in ComponentType isA ComputerCode end
ServerSoftware in ComponentType isA ComputerCode end
HistorianClient in ComponentType isA ClientSoftware end
HistorianServer in ComponentType isA ServerSoftware end
MappingSecuriCadRules in Class with
rule
sec7 : $ forall c/ServerSoftware (c aproperty/securiCadType "service") $;
sec8 : $ forall c/ClientSoftware (c aproperty/securiCadType "client") $
end
WebApplication in ComponentType isA ComputerCode end
MappingSecuriCadRules in Class with
rule
sec9 : $ forall c/UserAccount (c aproperty/securiCadType "useraccount") $;
sec10 : $ forall c/WebApplication (c aproperty/securiCadType "webapplication") $;
sec11 : $ forall c/User (c aproperty/securiCadType "user") $;
sec12 : $ forall c/ApplicationSoftware (c aproperty/securiCadType "softwareproduct") $;
sec13 : $ forall c/Switch (c aproperty/securiCadType "router") $;
sec14 : $ forall c/Router (c aproperty/securiCadType "router") $;
sec15 : $ forall c/DataStream (c aproperty/securiCadType "dataflow") $;
sec16 : $ forall c/CommunicationProtocol (c aproperty/securiCadType "protocol") $
end
CommunicationProtocol in ComponentType isA CyberComponent with
comment
descr1 : "Usually associated to DataStreams"
end
MappingSecuriCadRules in Class with
rule
sec17 : $ forall c/DataLine (c aproperty/securiCadType "network") $
end
KeyStore in ComponentType isA DataStore end
MappingSecuriCadRules in Class with
rule
sec18 : $ forall c/DataStore (c aproperty/securiCadType "datastore") $;
sec19 : $ forall c/KeyStore (c aproperty/securiCadType "keystore") $
end
SpatialThing isA Thing end
MappingSecuriCadRules in Class with
rule
sec20 : $ forall c/Region (c aproperty/securiCadType "physicalzone") $;
sec21 : $ forall c/ZoneManagement (c aproperty/securiCadType "zonemanagement") $
end
ZoneManagement in ComponentType isA Component with
comment
descr1 : "Could manage several networks, e.g. Scada frontend and Scada"
end
WebApplicationFirewall in ComponentType isA CyberComponent end
MappingSecuriCadRules in Class with
rule
sec22 : $ forall c/Firewall (c aproperty/securiCadType "firewall") $;
sec23 : $ forall c/WebApplicationFirewall (c aproperty/securiCadType "webapplicationfirewall") $;
sec24 : $ forall c/IntrusionDetectionSystem (c aproperty/securiCadType "ids") $;
sec25 : $ forall c/IntrusionPreventionSystem (c aproperty/securiCadType "ips") $;
sec26 : $ forall c/VulnerabilityScanner (c aproperty/securiCadType "vulnerabilityscanner") $;
sec27 : $ forall c/AccessControl (c aproperty/securiCadType "accesscontrol") $
end
IntrusionDetectionSystem in ComponentType isA CyberComponent end
IntrusionPreventionSystem in ComponentType isA CyberComponent end
VulnerabilityScanner in ComponentType isA CyberComponent end
MappingSecuriCadRules in Class with
rule
sec28 : $ forall c/Attacker (c aproperty/securiCadType "attacker") $
end
NineBusSC in Module end
ScadaFrontEnd in ComponentType isA ScadaServer end
ScadaBackEnd in ComponentType isA ScadaServer end
MappingSecuriCadRules in Class with
rule
sec29 : $ forall c/Network (c aproperty/securiCadType "network") $
end
DomainController in ComponentType isA Computer end
DataEngineerComputer in ComponentType isA Computer end
FTPHost in ComponentType isA Computer end
TimeServerHost in ComponentType isA Computer end
HistorianHost in ComponentType isA Computer end
DataStream in ComponentType with
attribute
participant : Component;
accesses : DataStore;
initiator : Component
end
UnidirectionalDataStream in ComponentType isA DataStream with
attribute
sender : Component;
receiver : Component
end
UnidirectionalDataStream!sender isA DataStream!participant end
UnidirectionalDataStream!receiver isA DataStream!participant end
BidirectionalDataStream in ComponentType isA DataStream end
DataStream in ComponentType with
attribute
protocol : CommunicationProtocol
end
MappingSecuriCadRules in Class with
rule
sec30 : $ forall s/UnidirectionalDataStream c/Component (s sender c) ==> (s aproperty/from c) $;
sec31 : $ forall s/UnidirectionalDataStream c/Component (s receiver c) ==> (s aproperty/to c) $
end
APPLICATION_GT in Class,JavaGraphicalType with
property
linecolor : "204,120,120";
fontsize : "8";
image : "powergrid/appprogram.png";
linewidth : "1";
textcolor : "10,10,10";
labellength : "120";
size : "wrap_";
shape : "Rect";
bgcolor : "240,240,240"
implementedBy
implBy : "i5.cb.graph.cbeditor.CBIndividual"
priority
pr : 38
rule
gtrule : $ forall x/ComputerCode (x graphtype APPLICATION_GT) $
end
OS_GT in Class,JavaGraphicalType with
property
linecolor : "204,120,120";
fontsize : "8";
image : "powergrid/os.png";
linewidth : "1";
textcolor : "10,10,10";
size : "wrap_";
shape : "Rect";
bgcolor : "240,240,240"
implementedBy
implBy : "i5.cb.graph.cbeditor.CBIndividual"
priority
pr : 40
rule
gtrule : $ forall x/OperatingSystemCode (x graphtype OS_GT) $
end
DATASTORE_GT in Class,JavaGraphicalType with
property
shape : "Rect";
linecolor : "204,120,120";
fontsize : "8";
linewidth : "1";
textcolor : "10,10,10";
size : "wrap_";
image : "powergrid/datastore.png"
implementedBy
implBy : "i5.cb.graph.cbeditor.CBIndividual"
priority
pr : 40
rule
gtrule : $ forall x/DataStore (x graphtype DATASTORE_GT) $
end
DataflowStart in QueryClass isA Component with
computed_attribute
dataflowTo : Component
constraint
dfc1 : $ (this dataflow ~dataflowTo) $
end
ShowComponent in View isA Component with
inherited_attribute
aproperty : Proposition
computed_attribute
type : Proposition;
ttr : Real
constraint
c11 : $ (~type isA Thing) and In_s(this,~type) and (~ttr = getTTR(this)) $
end
COMPONENT_FORMAT in AnswerFormat with
forQuery
q : ShowComponent
orderBy
ob : "none"
pattern
p : "
{UQ({this.type})}
{this.ttr}
{Foreach( ({this.aproperty},{this|aproperty}),(val,lab), {UQ({val})}\\n)}
"
end
CriticalComponent in QueryClass isA Component with
computed_attribute
affects : ManagedPhysicalComponent
constraint
doesaffect : $ (this cascade_trans ~affects) $
end
CriticalSoftwareComponent in QueryClass isA ComputerCode with
computed_attribute
affects : ManagedPhysicalComponent
constraint
doesaffect : $ (this cascade_trans ~affects) $
end
CRITCOMP_FORMAT in AnswerFormat with
forQuery
q : CriticalComponent
orderBy
ob : "none"
pattern
p : "
{UQ({this.affects})}
"
end
InfluencerComponent in GenericQueryClass isA Component with
computed_attribute,parameter
influences : CyberComponent
constraint
doesaffect : $ (this influence_trans ~influences) $
end
InfluencerSoftwareComponent in GenericQueryClass isA ComputerCode with
computed_attribute,parameter
influences : CyberComponent
constraint
doesaffect : $ (this influence_trans ~influences) $
end
ShowPowerConnection in QueryClass isA PowergridComponent!powerconnection end
ShowDataConnection in QueryClass isA Component!dataconnection end
POWERCONN_FORMAT in AnswerFormat with
forQuery
q : ShowPowerConnection
orderBy
ob : "none"
pattern
p : "
"
end
DATACONN_FORMAT in AnswerFormat with
forQuery
q : ShowDataConnection
orderBy
ob : "none"
pattern
p : "
"
end
ExportRules in Class with
rule
gris2xml : $ forall m/Module (m saveView Grid2XML) $
end
Grid2XML in QueryClass isA YesClass with
comment
purpose : "Use the query to generate the XML view of the smart grid"
end
ShowSubcomponents in QueryClass isA Component!subcomponent end
SUBCOMP_FORMAT in AnswerFormat with
forQuery
q : ShowSubcomponents
pattern
p : "
"
end
GridXmlFormat in AnswerFormat with
forQuery
q : Grid2XML
orderBy
ob : "none"
fileType
ft : "xml"
head
h : "
"
tail
t : "
"
pattern
p : "
{ASKquery(ShowComponent,COMPONENT_FORMAT)}
{ASKquery(ShowPowerConnection,POWERCONN_FORMAT)}
{ASKquery(ShowDataConnection,DATACONN_FORMAT)}
{ASKquery(ShowSubcomponents,SUBCOMP_FORMAT)}
{ASKquery(CriticalComponent,CRITCOMP_FORMAT)}
"
end
DatastreamToComponent in GenericQueryClass isA UnidirectionalDataStream with
parameter
comp : Component
constraint
cs1 : $ (this receiver comp) $
end
DatastreamToRTU in GenericQueryClass isA UnidirectionalDataStream with
parameter
rtu : RTU
constraint
cs1 : $ exists comp/Component (~rtu subcomponent comp) and (this receiver comp) $
end
DatastreamFromServerToRTU in GenericQueryClass isA UnidirectionalDataStream with
parameter
rtu : RTU;
server : ServerComputer
constraint
cs1 : $ exists comp1,comp2/Component (~rtu subcomponent comp1) and
(~server subcomponent comp2) and (this receiver comp1) and (this sender comp2) $
end
DatastreamFromServer in GenericQueryClass isA UnidirectionalDataStream with
parameter
server : ServerComputer
constraint
cs1 : $ exists comp/Component
(~server subcomponent comp) and (this sender comp) $
end
{---} { 2026-08-21,08:02:46.616 }
CommandStream in Class with
comment
comment1 : "2019-10-28/Manfred: This is an auxiliary (and not generally applicable) definition for command streams. SecuriCAD only has dataflows but we need to distinguish commandflows (targeting actuators) from dataflows (from sensors and others)"
rule
isCommand1 : $ forall ds/UnidirectionalDataStream otcomp/OTServer comp/Component
(otcomp subcomponent comp) and (ds receiver comp) ==> (ds in CommandStream) $;
isCommand2 : $ forall ds/BidirectionalDataStream otcomp/OTServer comp/Component
(otcomp subcomponent comp) and (ds participant comp) ==> (ds in CommandStream) $
end
{---} { 2026-08-21,08:02:46.722 }
DataflowRules in Class with
rule
rule1 : $ forall u/UnidirectionalDataStream c1,c2/Component
(u sender c1) and (u receiver c2) and not (u in CommandStream) ==> (c1 dataflow c2) $;
rule2 : $ forall u/BidirectionalDataStream c1,c2/Component
(u participant c1) and (u participant c2) and (c1 <> c2) and not (u in CommandStream) ==> (c1 dataflow c2) $;
rule3 : $ forall ds/DataSet r,w/Component (ds reader r) and (ds writer w) ==> (w dataflow r) $
end
CommandflowRules in Class with
rule
rule1 : $ forall u/UnidirectionalDataStream c1,c2/Component
(u in CommandStream) and (u sender c1) and (u receiver c2) ==> (c1 controlflow c2) $;
rule2 : $ forall u/BidirectionalDataStream c1,c2/Component ot/OTServer
(u in CommandStream) and (ot subcomponent c2) and (u participant c1) and (u participant c2) ==> (c1 controlflow c2) $
end
{---} { 2026-08-21,08:02:46.829 }
Component!subcomponent_trans with
isTransitiveClosureOf
base : Component!subcomponent
end
Component!cascade_trans with
isTransitiveClosureOf
base : Component!cascade
end
Component!influence_trans with
isTransitiveClosureOf
base : Component!influence
end
{---} { 2026-08-21,08:02:46.957 }
DATASTREAM_GT in Class,JavaGraphicalType with
property
shape : "Hexagon";
bgcolor : "240,240,255";
textcolor : "80,80,80";
linecolor : "80,80,80";
linewidth : "1";
labellength : "500";
size : "wrap_";
fontstyle : "italic";
fontsize : "9"
implementedBy
implBy : "i5.cb.graph.cbeditor.CBIndividual"
priority
pr : 22
rule
gtrule : $ forall x/DataStream (x graphtype DATASTREAM_GT) $
forOutgoing
out1 : DataStream!participant
end
DIRECTEDDATASTREAM_GT in Class,JavaGraphicalType with
property
shape : "DiRectR";
bgcolor : "240,240,255";
textcolor : "80,80,80";
linecolor : "80,80,80";
linewidth : "1";
labellength : "500";
size : "wrap_";
fontstyle : "italic";
fontsize : "9"
implementedBy
implBy : "i5.cb.graph.cbeditor.CBIndividual"
priority
pr : 24
rule
gtrule : $ forall x/UnidirectionalDataStream (x graphtype DIRECTEDDATASTREAM_GT) $
forOutgoing
out1 : UnidirectionalDataStream!sender;
out2 : UnidirectionalDataStream!receiver
end
COMMANDSTREAM_GT in Class,JavaGraphicalType with
property
shape : "DiRectR";
bgcolor : "250,250,235";
textcolor : "80,80,80";
linecolor : "80,80,80";
linewidth : "1";
labellength : "500";
size : "wrap_";
fontstyle : "italic";
fontsize : "9"
implementedBy
implBy : "i5.cb.graph.cbeditor.CBIndividual"
priority
pr : 26
rule
gtrule : $ forall x/CommandStream (x graphtype COMMANDSTREAM_GT) $
end
NETWORK_GT in Class,JavaGraphicalType with
property
shape : "Rect";
textcolor : "80,80,80";
linecolor : "80,80,80";
linewidth : "3";
size : "resizable";
fontstyle : "italic";
nodelevel : "-101";
align : "top";
bgcolor : "255,255,230"
implementedBy
implBy : "i5.cb.graph.cbeditor.CBIndividual"
rule
gtrule : $ forall x/Network (x graphtype NETWORK_GT) $
priority
pr : 22
end
PARTICIPANT_GT in Class,JavaGraphicalType with
property
textcolor : "0,0,0";
edgecolor : "120,120,120";
edgewidth : "2";
label : " ";
edgeheadshape : "Circular";
edgeheadcolor : "255,255,204"
implementedBy
implBy : "i5.cb.graph.cbeditor.CBLink"
priority
p : 30
rule
gtrule : $ forall x/DataStream!participant (x graphtype PARTICIPANT_GT) $
end
RECEIVER_GT in Class,JavaGraphicalType with
property
textcolor : "0,0,0";
edgecolor : "120,120,120";
edgewidth : "2";
fontsize : "10";
label : " ";
edgeheadshape : "Arrow";
edgeheadcolor : "255,255,204"
implementedBy
implBy : "i5.cb.graph.cbeditor.CBLink"
priority
p : 32
rule
gtrule : $ forall x/UnidirectionalDataStream!receiver (x graphtype RECEIVER_GT) $
end
SUBCOMP_GT in Class,JavaGraphicalType with
property
textcolor : "130,130,130";
edgecolor : "160,160,160";
edgewidth : "1";
fontsize : "9";
label : "part";
edgeheadshape : "Dot"
implementedBy
implBy : "i5.cb.graph.cbeditor.CBLink"
priority
p : 28
rule
gtrule : $ forall x/Component!subcomponent (x graphtype SUBCOMP_GT) $
end
ImplicitGT_cascade_trans in Class,JavaGraphicalType with
property
textcolor : "0,0,0";
edgecolor : "240,60,660";
edgeheadcolor : "255,200,120";
edgewidth : "2";
fontsize : "9";
label : "cascade";
edgeheadshape : "SmallArrow"
implementedBy
implBy : "i5.cb.graph.cbeditor.CBLink"
priority
p : 36
rule
gtrule : $ forall x/Component!cascade_trans (x graphtype ImplicitGT_cascade_trans) $
end
COMPONENT_GT in Class,JavaGraphicalType with
property
shape : "Rect";
linecolor : "204,120,120";
bgcolor : "250,250,250";
textcolor : "0,0,0";
fontsize : "14";
font : "SansSerif";
size : "resizable";
linewidth : "1"
implementedBy
implBy : "i5.cb.graph.cbeditor.CBIndividual"
priority
pr : 20
rule
gtrule : $ forall x/Component (x graphtype COMPONENT_GT) $
forIncoming,forOutgoing
in1 : Component!subcomponent;
in2 : Component!cascade_trans;
in3 : Component!dataconnection;
in4 : Component!controlflow;
in5 : Component!dataflow;
in7 : Component!influence_trans
forIncoming
in6 : DataStream!participant
end
THING_GT in Class,JavaGraphicalType with
property
bgcolor : "250,255,255";
textcolor : "0,0,0";
linecolor : "0,0,0";
shape : "i5.cb.graph.shapes.Rect";
fontsize : "14";
font : "SansSerif";
size : "resizable";
linewidth : "1"
implementedBy
implBy : "i5.cb.graph.cbeditor.CBIndividual"
priority
pr : 19
rule
gtrule : $ forall x/Thing (x graphtype THING_GT) $
forOutgoing
out1 : Thing!aproperty
end
PowerGridPalette3 in Class,JavaGraphicalPalette isA XPalette with
contains
sp1 : INDIVIDUAL_GT;
sp2 : INSTOF_GT;
sp3 : ATTR_GT;
dt15 : IN_Link_GT;
dt16 : SPEC_Link_GT;
co1 : SUBCOMP_GT;
co2 : COMPONENT_GT;
co3 : THING_GT;
pc1 : POWERCONN_GT;
bb1 : BUSBAR_GT;
pg1 : PGCOMP_GT;
pg2 : POWERLINE_GT;
pg3 : GENERATOR_GT;
pg4 : TRANSFORMER_GT;
pg5 : GROUND_GT;
pg6 : CONTROLCENTER_GT;
pg7 : SUBSTATION_GT;
pg8 : ANYSTATION_GT;
pg9 : POWERSTATION_GT;
dc1 : DATACONN_GT;
pg10 : PHYSCOMP_GT;
cy1 : FIREWALL_GT;
cy2 : COMPUTER_GT;
cy3 : ROUTER_GT;
cy4 : SWITCH_GT;
pg11 : CIRCUITBREAKER_GT;
df1 : DATAFLOW_GT;
cf1 : CONTROLFLOW_GT;
sw1 : APPLICATION_GT;
sw2 : OS_GT;
sw3 : DATASTORE_GT;
sw4 : DATASTREAM_GT;
sw5 : DIRECTEDDATASTREAM_GT;
sw6 : COMMANDSTREAM_GT;
sw7 : PARTICIPANT_GT;
sw8 : RECEIVER_GT;
nw1 : NETWORK_GT;
im1 : ImplicitGT_dataflow;
im2 : ImplicitGT_cascade_trans
palproperty
outcatquery : "cps_used_attribute_categories";
incatquery : "cps_used_incoming_attribute_categories"
end
CRITICALAPPLICATION_GT in Class,JavaGraphicalType with
property
linecolor : "204,120,120";
fontsize : "8";
image : "powergrid/appprogram.png";
linewidth : "1";
textcolor : "10,10,10";
labellength : "80";
size : "wrap_";
shape : "Rect";
bgcolor : "255,180,180"
implementedBy
implBy : "i5.cb.graph.cbeditor.CBIndividual"
priority
pr : 38
rule
gtrule : $ forall x/CriticalSoftwareComponent (x graphtype CRITICALAPPLICATION_GT) $
end
HighlightCritical in Class,JavaGraphicalPalette isA XPalette with
contains
sp1 : INDIVIDUAL_GT;
sp2 : INSTOF_GT;
sp3 : ATTR_GT;
dt15 : IN_Link_GT;
dt16 : SPEC_Link_GT;
co1 : SUBCOMP_GT;
pc1 : POWERCONN_GT;
bb1 : BUSBAR_GT;
pg1 : PGCOMP_GT;
pg2 : POWERLINE_GT;
pg3 : GENERATOR_GT;
pg4 : TRANSFORMER_GT;
pg5 : GROUND_GT;
pg6 : CONTROLCENTER_GT;
pg7 : SUBSTATION_GT;
pg8 : ANYSTATION_GT;
dc1 : DATACONN_GT;
pg10 : PHYSCOMP_GT;
cy1 : FIREWALL_GT;
cy2 : COMPUTER_GT;
cy3 : ROUTER_GT;
cy4 : SWITCH_GT;
pg11 : CIRCUITBREAKER_GT;
df1 : DATAFLOW_GT;
cf1 : CONTROLFLOW_GT;
sw1 : APPLICATION_GT;
sw2 : OS_GT;
sw3 : DATASTORE_GT;
sw4 : DATASTREAM_GT;
sw5 : DIRECTEDDATASTREAM_GT;
sw6 : COMMANDSTREAM_GT;
sw7 : PARTICIPANT_GT;
sw8 : RECEIVER_GT;
sw9 : CRITICALAPPLICATION_GT;
nw1 : NETWORK_GT;
im1 : ImplicitGT_dataflow;
im2 : ImplicitGT_cascade_trans
end
cps_used_attribute_categories in GenericQueryClass isA Proposition!attribute with
comment
purpose : "replacement for find_used_attribute_categories"
parameter,required
objname : Proposition
constraint
r : $ exists gt/JavaGraphicalType (~objname graphtype gt) and (gt forOutgoing ~this) $
end
cps_used_incoming_attribute_categories in GenericQueryClass isA Proposition!attribute with
comment
purpose : "replacement for find_used_incoming_attribute_categories"
parameter,required
objname : Proposition
constraint
r : $ exists gt/JavaGraphicalType (~objname graphtype gt) and (gt forIncoming ~this) $
end
{---} { 2026-08-21,08:02:47.238 }
M_cb in Module end
{---} { 2026-08-21,08:02:47.453 }
CPSRules in Class with
comment
purpose : "The Cyber-To-Physical rules compute facts (c1 cascade c2), i.e. a failure/compromise of component c1 propagates to component c2.
The facts are extended to the transitive closure (c1 cascade_trans c2) and then used in the central query CriticalComponent";
author : "Manfred Jeusfeld, Yuning Jiang"
rule
cpsrule1 : $ forall ot1,ot2/OTServer pc/ManagedPhysicalComponent
(ot1 dataconnection ot2) and (ot2 dataconnection pc) ==> (ot1 cascade ot2) $;
cpsrule2 : $ forall ot/OTServer pc/ManagedPhysicalComponent (ot dataconnection pc) ==> (ot cascade pc) $;
cpsrule3 : $ forall c1/ITComponent c2/CyberComponent (c1 subcomponent c2) ==> (c1 cascade c2) $;
cpsrule4 : $ forall c1,c2/Component (c1 controlflow c2) ==> (c1 cascade c2) $;
cpsrule5 : $ forall c1,c2/Component ot/OTServer pc/ManagedPhysicalComponent
(c1 cascade_trans c2) and (ot subcomponent_trans c2) and (ot dataconnection pc) ==> (c1 cascade pc) $;
cpsrule6 : $ forall c/Component ot/OTServer pc/ManagedPhysicalComponent
(ot subcomponent_trans c) and (ot dataconnection pc) ==> (c cascade pc) $;
cpsrule7 : $ forall cf/DataStream ot/OTServer c/CyberComponent
(ot subcomponent c) and (cf in CommandStream) and (cf participant c) ==> (cf cascade c) $;
cpsrule8 : $ forall host/ServerComputer server/ServerSoftware client/ClientSoftware
(host subcomponent client) and (host subcomponent server) ==> (server cascade client) $;
cpsrule9 : $ forall c1,c2/Component (c1 dataflow c2) ==> (c1 influence c2) $
end
{---} { 2026-08-21,08:02:59.664 }
M_jeusfeld in Module end
{---} { 2026-08-21,08:03:01.766 }
CaseStudy2 in Module end
{---} { 2026-08-21,08:03:02.028 }
ElviraTaxonomy in Module,AutoHomeModule with
comment
authors : "Manfred Jeusfeld, Yacine Atif, Jianguo Ding, Yuning Jiang, Christoffer Brax, Sten Andler, Birgitta Lindstrom, Thomas Svensson, Eva Nero";
uses : "ConceptBase documentation; Wikipedia; SecuriCad documentation from foreseeti (Sweden); see also references at term definitions";
license : "
---------------------------------------------------------------------------------------------------------------------------------------
Copyright 2020 Manfred Jeusfeld, Yacine Atif, Jianguo Ding, Yuning Jiang, Christoffer Brax, Sten Andler,
Birgitta Lindstrom, Thomas Svensson, Eva Nero
Redistribution and use in source and binary forms, with or without modification, are permitted provided
that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the
following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
the following disclaimer in the documentation and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or
promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS' AND ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
---------------------------------------------------------------------------------------------------------------------------------------
"
end
{ -/- }