{ * 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 { -/- }