From 54304030b840fa811c2726b14478b7077aa7eb08 Mon Sep 17 00:00:00 2001 From: jipea Date: Fri, 2 Jun 2023 09:42:33 +0200 Subject: [PATCH 01/22] init csa profile contingencies import --- .../crac-creator-csa-profiles/pom.xml | 141 + .../creator/csa_profile/CsaProfileCrac.java | 20 + .../crac_creator/CsaProfileConstants.java | 16 + .../CsaProfileCracCreationContext.java | 43 + .../crac_creator/CsaProfileCracCreator.java | 31 + .../crac_creator/CsaProfileCracUtils.java | 14 + .../CsaProfileContingencyCreationContext.java | 61 + .../CsaProfileContingencyCreator.java | 14 + .../importer/CsaProfileCracImporter.java | 75 + .../CsaProfileCracCreationParameters.java | 16 + ...ileCracCreationParametersConfigLoader.java | 17 + ...lementProfile_v2_2_RDFSv2020_24Mar2023.rdf | 923 +++ ...heduleProfile_v2_2_RDFSv2020_24Mar2023.rdf | 981 +++ ...ngencyProfile_v2_2_RDFSv2020_24Mar2023.rdf | 491 ++ ...HeaderProfile_v2_2_RDFSv2020_24Mar2023.rdf | 700 ++ ...bilityProfile_v2_2_RDFSv2020_24Mar2023.rdf | 6773 +++++++++++++++++ ...rbanceProfile_v2_2_RDFSv2020_24Mar2023.rdf | 1590 ++++ ...MatrixProfile_v2_2_RDFSv2020_24Mar2023.rdf | 612 ++ ...ngAreaProfile_v2_2_RDFSv2020_24Mar2023.rdf | 442 ++ ...gistryProfile_v2_1_RDFSv2020_24Mar2023.rdf | 456 ++ ...heduleProfile_v2_2_RDFSv2020_24Mar2023.rdf | 932 +++ ...rojectProfile_v2_2_RDFSv2020_24Mar2023.rdf | 574 ++ ...ActionProfile_v2_2_RDFSv2020_24Mar2023.rdf | 4228 ++++++++++ ...heduleProfile_v2_2_RDFSv2020_24Mar2023.rdf | 2597 +++++++ ...ResultProfile_v2_2_RDFSv2020_24Mar2023.rdf | 695 ++ ...heduleProfile_v2_2_RDFSv2020_24Mar2023.rdf | 2825 +++++++ ...MatrixProfile_v2_2_RDFSv2020_24Mar2023.rdf | 485 ++ ...uctionProfile_v2_2_RDFSv2020_24Mar2023.rdf | 2224 ++++++ ...ssessedElementProfileCustomConstraints.ttl | 94 + .../ContingencyProfileCustomConstraints.ttl | 93 + ...entReliabilityProfileCustomConstraints.ttl | 127 + .../IdentifiedObjecStringLength.ttl | 110 + ...sessmentMatrixProfileCustomConstraints.ttl | 113 + ...ActionScheduleProfileCustomConstraints.ttl | 94 + ...AnalysisResultProfileCustomConstraints.ttl | 225 + .../AssessedElementProfile_v2_2_SHACL.ttl | 766 ++ ...AvailabilityScheduleProfile_v2_2_SHACL.ttl | 697 ++ .../RDFS/ContingencyProfile_v2_2_SHACL.ttl | 293 + .../RDFS/DocumentHeaderProfile_v2_2_SHACL.ttl | 980 +++ ...EquipmentReliabilityProfile_v2_2_SHACL.ttl | 5837 ++++++++++++++ .../GridDisturbanceProfile_v2_2_SHACL.ttl | 1201 +++ ...pactAssessmentMatrixProfile_v2_2_SHACL.ttl | 464 ++ .../RDFS/MonitoringAreaProfile_v2_2_SHACL.ttl | 293 + .../RDFS/ObjectRegistryProfile_v2_2_SHACL.ttl | 578 ++ .../RDFS/PowerScheduleProfile_v2_2_SHACL.ttl | 660 ++ .../PowerSystemProjectProfile_v2_2_SHACL.ttl | 800 ++ .../RDFS/RemedialActionProfile_v2_2_SHACL.ttl | 2320 ++++++ ...medialActionScheduleProfile_v2_2_SHACL.ttl | 1398 ++++ ...curityAnalysisResultProfile_v2_2_SHACL.ttl | 334 + .../SecurityScheduleProfile_v2_2_SHACL.ttl | 1565 ++++ .../SensitivityMatrixProfile_v2_2_SHACL.ttl | 345 + ...eadyStateInstructionProfile_v2_2_SHACL.ttl | 2427 ++++++ .../src/test/resources/logback-test.xml | 13 + 53 files changed, 49803 insertions(+) create mode 100644 data/crac-creation/crac-creator-csa-profiles/pom.xml create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/CsaProfileCrac.java create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileConstants.java create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracCreationContext.java create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracCreator.java create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracUtils.java create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/contingency/CsaProfileContingencyCreationContext.java create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/contingency/CsaProfileContingencyCreator.java create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/importer/CsaProfileCracImporter.java create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/parameters/CsaProfileCracCreationParameters.java create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/parameters/CsaProfileCracCreationParametersConfigLoader.java create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/AssessedElementProfile_v2_2_RDFSv2020_24Mar2023.rdf create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/AvailabilityScheduleProfile_v2_2_RDFSv2020_24Mar2023.rdf create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/ContingencyProfile_v2_2_RDFSv2020_24Mar2023.rdf create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/DocumentHeaderProfile_v2_2_RDFSv2020_24Mar2023.rdf create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/EquipmentReliabilityProfile_v2_2_RDFSv2020_24Mar2023.rdf create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/GridDisturbanceProfile_v2_2_RDFSv2020_24Mar2023.rdf create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/ImpactAssessmentMatrixProfile_v2_2_RDFSv2020_24Mar2023.rdf create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/MonitoringAreaProfile_v2_2_RDFSv2020_24Mar2023.rdf create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/ObjectRegistryProfile_v2_1_RDFSv2020_24Mar2023.rdf create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/PowerScheduleProfile_v2_2_RDFSv2020_24Mar2023.rdf create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/PowerSystemProjectProfile_v2_2_RDFSv2020_24Mar2023.rdf create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/RemedialActionProfile_v2_2_RDFSv2020_24Mar2023.rdf create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/RemedialActionScheduleProfile_v2_2_RDFSv2020_24Mar2023.rdf create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/SecurityAnalysisResultProfile_v2_2_RDFSv2020_24Mar2023.rdf create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/SecurityScheduleProfile_v2_2_RDFSv2020_24Mar2023.rdf create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/SensitivityMatrixProfile_v2_2_RDFSv2020_24Mar2023.rdf create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/SteadyStateInstructionProfile_v2_2_RDFSv2020_24Mar2023.rdf create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/CustomConstraints/AssessedElementProfileCustomConstraints.ttl create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/CustomConstraints/ContingencyProfileCustomConstraints.ttl create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/CustomConstraints/EquipmentReliabilityProfileCustomConstraints.ttl create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/CustomConstraints/IdentifiedObjecStringLength.ttl create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/CustomConstraints/ImpactAssessmentMatrixProfileCustomConstraints.ttl create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/CustomConstraints/RemedialActionScheduleProfileCustomConstraints.ttl create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/CustomConstraints/SecurityAnalysisResultProfileCustomConstraints.ttl create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/AssessedElementProfile_v2_2_SHACL.ttl create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/AvailabilityScheduleProfile_v2_2_SHACL.ttl create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/ContingencyProfile_v2_2_SHACL.ttl create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/DocumentHeaderProfile_v2_2_SHACL.ttl create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/EquipmentReliabilityProfile_v2_2_SHACL.ttl create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/GridDisturbanceProfile_v2_2_SHACL.ttl create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/ImpactAssessmentMatrixProfile_v2_2_SHACL.ttl create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/MonitoringAreaProfile_v2_2_SHACL.ttl create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/ObjectRegistryProfile_v2_2_SHACL.ttl create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/PowerScheduleProfile_v2_2_SHACL.ttl create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/PowerSystemProjectProfile_v2_2_SHACL.ttl create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/RemedialActionProfile_v2_2_SHACL.ttl create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/RemedialActionScheduleProfile_v2_2_SHACL.ttl create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/SecurityAnalysisResultProfile_v2_2_SHACL.ttl create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/SecurityScheduleProfile_v2_2_SHACL.ttl create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/SensitivityMatrixProfile_v2_2_SHACL.ttl create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/SteadyStateInstructionProfile_v2_2_SHACL.ttl create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/test/resources/logback-test.xml diff --git a/data/crac-creation/crac-creator-csa-profiles/pom.xml b/data/crac-creation/crac-creator-csa-profiles/pom.xml new file mode 100644 index 0000000000..ca9d073601 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/pom.xml @@ -0,0 +1,141 @@ + + + + + + farao-crac-creation + com.farao-community.farao + 4.2.7-SNAPSHOT + + 4.0.0 + + farao-crac-creator-csa-profiles + CRAC creator - CSA Profiles + CRAC creator implementation for CRAC specific to CSA profiles + jar + + + + + org.jvnet.jaxb2.maven2 + maven-jaxb2-plugin + + + -Xinheritance + + + + org.jvnet.jaxb2_commons + jaxb2-basics + ${maven.jvnet.jaxb2-basics.version} + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + + com.farao_community.farao.data.crac_creation.creator.cim.xsd.*:com.farao_community.farao.data.crac_creation.creator.cim.xsd:eu.entsoe.* + + + + + + + + ${project.groupId} + farao-crac-creator-api + ${project.version} + + + ${project.groupId} + farao-crac-creation-util + ${project.version} + + + ${project.groupId} + farao-crac-io-api + ${project.version} + + + ${project.groupId} + farao-crac-util + ${project.version} + + + javax.xml.bind + jaxb-api + + + org.apache.commons + commons-collections4 + 4.1 + compile + + + + + ${project.groupId} + farao-crac-impl + ${project.version} + runtime + + + org.glassfish.jaxb + jaxb-runtime + runtime + + + + + ch.qos.logback + logback-classic + test + + + com.powsybl + powsybl-config-test + test + + + com.powsybl + powsybl-cgmes-conversion + ${powsybl.core.version} + + + com.powsybl + powsybl-iidm-impl + runtime + + + com.powsybl + powsybl-triple-store-impl-rdf4j + ${powsybl.core.version} + runtime + + + com.powsybl + powsybl-ucte-converter + test + + + org.junit.jupiter + junit-jupiter + test + + + org.mockito + mockito-inline + test + + + + \ No newline at end of file diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/CsaProfileCrac.java b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/CsaProfileCrac.java new file mode 100644 index 0000000000..6d9e240a12 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/CsaProfileCrac.java @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2023, RTE (http://www.rte-france.com) + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +package main.java.com.farao_community.farao.data.crac_creation.creator.csa_profile; + +import com.farao_community.farao.data.native_crac_api.NativeCrac; + +/** + * @author Jean-Pierre Arnould {@literal } + */ +public class CsaProfileCrac implements NativeCrac { + @Override + public String getFormat() { + return null; + } +} diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileConstants.java b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileConstants.java new file mode 100644 index 0000000000..f46e83bc82 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileConstants.java @@ -0,0 +1,16 @@ +/* + * Copyright (c) 2023, RTE (http://www.rte-france.com) + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +package main.java.com.farao_community.farao.data.crac_creation.creator.csa_profile.crac_creator; + +/** + * @author Jean-Pierre Arnould {@literal } + */ +public class CsaProfileConstants { + + public static final String RDF_FORMAT_CONTINGENCY_PROFILE = "ContingencyProfile_v2_2_RDFSv2020_24Mar2023.rdf"; +} diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracCreationContext.java b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracCreationContext.java new file mode 100644 index 0000000000..24f21d365d --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracCreationContext.java @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2023, RTE (http://www.rte-france.com) + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +package main.java.com.farao_community.farao.data.crac_creation.creator.csa_profile.crac_creator; + +import com.farao_community.farao.data.crac_creation.creator.api.CracCreationContext; +import com.farao_community.farao.data.crac_creation.creator.api.CracCreationReport; + +import java.time.OffsetDateTime; + +/** + * @author Jean-Pierre Arnould {@literal } + */ +public class CsaProfileCracCreationContext implements CracCreationContext { + @Override + public boolean isCreationSuccessful() { + return false; + } + + @Override + public com.farao_community.farao.data.crac_api.Crac getCrac() { + return null; + } + + @Override + public OffsetDateTime getTimeStamp() { + return null; + } + + @Override + public String getNetworkName() { + return null; + } + + @Override + public CracCreationReport getCreationReport() { + return null; + } +} diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracCreator.java b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracCreator.java new file mode 100644 index 0000000000..c3c11e1ac5 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracCreator.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2023, RTE (http://www.rte-france.com) + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +package main.java.com.farao_community.farao.data.crac_creation.creator.csa_profile.crac_creator; + +import com.farao_community.farao.data.crac_creation.creator.api.CracCreator; +import com.farao_community.farao.data.crac_creation.creator.api.parameters.CracCreationParameters; +import com.farao_community.farao.data.crac_creation.creator.cim.CimCrac; +import com.farao_community.farao.data.crac_creation.creator.cim.crac_creator.CimCracCreationContext; +import main.java.com.farao_community.farao.data.crac_creation.creator.csa_profile.CsaProfileCrac; + +import java.time.OffsetDateTime; + +/** + * @author Jean-Pierre Arnould {@literal } + */ +public class CsaProfileCracCreator implements CracCreator { + @Override + public String getNativeCracFormat() { + return null; + } + + @Override + public CsaProfileCracCreationContext createCrac(CsaProfileCrac nativeCrac, com.powsybl.iidm.network.Network network, OffsetDateTime offsetDateTime, CracCreationParameters cracCreationParameters) { + return null; + } +} diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracUtils.java b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracUtils.java new file mode 100644 index 0000000000..6af6e369cb --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracUtils.java @@ -0,0 +1,14 @@ +/* + * Copyright (c) 2023, RTE (http://www.rte-france.com) + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +package main.java.com.farao_community.farao.data.crac_creation.creator.csa_profile.crac_creator; + +/** + * @author Jean-Pierre Arnould {@literal } + */ +public class CsaProfileCracUtils { +} diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/contingency/CsaProfileContingencyCreationContext.java b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/contingency/CsaProfileContingencyCreationContext.java new file mode 100644 index 0000000000..d88edd8baa --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/contingency/CsaProfileContingencyCreationContext.java @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2023, RTE (http://www.rte-france.com) + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +package main.java.com.farao_community.farao.data.crac_creation.creator.csa_profile.crac_creator.contingency; + +import com.farao_community.farao.data.crac_creation.creator.api.ElementaryCreationContext; +import com.farao_community.farao.data.crac_creation.creator.api.ImportStatus; + +/** + * @author Jean-Pierre Arnould {@literal } + */ +public class CsaProfileContingencyCreationContext implements ElementaryCreationContext { + private String contingencyID; + private String contingencyName; + private ImportStatus importStatus; + private String createdContingencyId; + private String importStatusDetail; + private boolean isAltered; + + private CsaProfileContingencyCreationContext(String contingencyID, String contingencyName, ImportStatus importStatus, String createdContingencyId, String importStatusDetail, boolean isAltered) { + this.contingencyID = contingencyID; + this.contingencyName = contingencyName; + this.importStatus = importStatus; + this.createdContingencyId = createdContingencyId; + this.importStatusDetail = importStatusDetail; + this.isAltered = isAltered; + } + + @Override + public String getNativeId() { + return this.contingencyID; + } + + public String getNativeName() { + return this.contingencyName; + } + + @Override + public boolean isImported() { + return ImportStatus.IMPORTED.equals(this.importStatus); + } + + @Override + public boolean isAltered() { + return this.isAltered; + } + + @Override + public ImportStatus getImportStatus() { + return this.importStatus; + } + + @Override + public String getImportStatusDetail() { + return this.importStatusDetail; + } +} diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/contingency/CsaProfileContingencyCreator.java b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/contingency/CsaProfileContingencyCreator.java new file mode 100644 index 0000000000..5fbf52efd9 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/contingency/CsaProfileContingencyCreator.java @@ -0,0 +1,14 @@ +/* + * Copyright (c) 2023, RTE (http://www.rte-france.com) + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +package main.java.com.farao_community.farao.data.crac_creation.creator.csa_profile.crac_creator.contingency; + +/** + * @author Jean-Pierre Arnould {@literal } + */ +public class CsaProfileContingencyCreator { +} diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/importer/CsaProfileCracImporter.java b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/importer/CsaProfileCracImporter.java new file mode 100644 index 0000000000..12b8f92e92 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/importer/CsaProfileCracImporter.java @@ -0,0 +1,75 @@ +/* + * Copyright (c) 2023, RTE (http://www.rte-france.com) + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +package main.java.com.farao_community.farao.data.crac_creation.creator.csa_profile.importer; + +import com.farao_community.farao.data.crac_creation.creator.cim.importer.CimCracImporter; +import com.farao_community.farao.data.native_crac_io_api.NativeCracImporter; +import com.google.auto.service.AutoService; +import main.java.com.farao_community.farao.data.crac_creation.creator.csa_profile.CsaProfileCrac; +import main.java.com.farao_community.farao.data.crac_creation.creator.csa_profile.crac_creator.CsaProfileConstants; +import org.eclipse.rdf4j.rio.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.IOException; +import java.io.InputStream; +import java.io.UncheckedIOException; + +/** + * @author Jean-Pierre Arnould {@literal } + */ +@AutoService(NativeCracImporter.class) +public class CsaProfileCracImporter implements NativeCracImporter { + + private static final Logger LOGGER = LoggerFactory.getLogger(CimCracImporter.class); + @Override + public String getFormat() { + return "csaProfileCrac"; + } + + @Override + public CsaProfileCrac importNativeCrac(InputStream inputStream){ + try { + RDFFormat rdfFormatContingencies = Rio.getParserFormatForFileName(String.valueOf(this.getClass().getResource(CsaProfileConstants.RDF_FORMAT_CONTINGENCY_PROFILE))).orElse(RDFFormat.RDFXML); + RDFParser rdfParser = Rio.createParser(rdfFormatContingencies); + rdfParser.parse(inputStream); + } + catch (IOException e) { + // handle IO problems (e.g. the file could not be read) + } + catch (RDFParseException e) { + // handle unrecoverable parse error + } + catch (RDFHandlerException e) { + // handle a problem encountered by the RDFHandler + } + return new CsaProfileCrac(); + } + + @Override + public boolean exists(String fileName, InputStream inputStream) { + try { + RDFFormat rdfFormatContingencies = Rio.getParserFormatForFileName(String.valueOf(this.getClass().getResource(CsaProfileConstants.RDF_FORMAT_CONTINGENCY_PROFILE))).orElse(RDFFormat.RDFXML); + RDFParser rdfParser = Rio.createParser(rdfFormatContingencies); + rdfParser.parse(inputStream); + LOGGER.info("CSA PROFILE CRAC document is valid"); + return true; + } + catch (IOException e) { + throw new UncheckedIOException(e); + } + catch (RDFParseException e) { + LOGGER.debug("CSA PROFILE CRAC document is NOT valid. Reason: RDF parsing problem : {}", e.getMessage()); + return false; + } + catch (RDFHandlerException e) { + LOGGER.debug("CSA PROFILE CRAC document is NOT valid. Reason: RDF handler problem : {}", e.getMessage()); + return false; + } + } +} diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/parameters/CsaProfileCracCreationParameters.java b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/parameters/CsaProfileCracCreationParameters.java new file mode 100644 index 0000000000..52204bbe11 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/parameters/CsaProfileCracCreationParameters.java @@ -0,0 +1,16 @@ +/* + * Copyright (c) 2023, RTE (http://www.rte-france.com) + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +package main.java.com.farao_community.farao.data.crac_creation.creator.csa_profile.parameters; + +import com.farao_community.farao.data.crac_creation.creator.api.parameters.AbstractAlignedRaCracCreationParameters; + +/** + * @author Jean-Pierre Arnould {@literal } + */ +public class CsaProfileCracCreationParameters extends AbstractAlignedRaCracCreationParameters { +} diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/parameters/CsaProfileCracCreationParametersConfigLoader.java b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/parameters/CsaProfileCracCreationParametersConfigLoader.java new file mode 100644 index 0000000000..a328def6b4 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/parameters/CsaProfileCracCreationParametersConfigLoader.java @@ -0,0 +1,17 @@ +/* + * Copyright (c) 2023, RTE (http://www.rte-france.com) + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +package main.java.com.farao_community.farao.data.crac_creation.creator.csa_profile.parameters; + +import com.farao_community.farao.data.crac_creation.creator.api.parameters.CracCreationParameters; +import com.farao_community.farao.data.crac_creation.creator.cim.parameters.CimCracCreationParameters; + +/** + * @author Jean-Pierre Arnould {@literal } + */ +public class CsaProfileCracCreationParametersConfigLoader implements CracCreationParameters.ConfigLoader { +} diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/AssessedElementProfile_v2_2_RDFSv2020_24Mar2023.rdf b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/AssessedElementProfile_v2_2_RDFSv2020_24Mar2023.rdf new file mode 100644 index 0000000000..0cd6217600 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/AssessedElementProfile_v2_2_RDFSv2020_24Mar2023.rdf @@ -0,0 +1,923 @@ + + + + + + AE + + vocabulary + + urn:iso:std:iec:61970-600-2:ed-1 + urn:iso:std:iec:61970-301:ed-7:amd1 + file://iec61970cim17v40_iec61968cim13v13a_iec62325cim03v17a.eap + urn:iso:std:iec:61970-401:draft:ed-1 + urn:iso:std:iec:61970-501:draft:ed-2 + file://CGMES-30v25_501-20v01.eap + 2.2.0 + ENTSO-E CIM EG CSA project + This vocabulary is describing the aseessed element profile. + urn:uuid:a2de1738-214d-4552-b894-5b33cbc34218 + en-GB + https://www.apache.org/licenses/LICENSE-2.0 + 2023-03-24 + ENTSO-E + ENTSO-E + Assessed Element Vocabulary + + + + + AssessedElementProfile + + This package contains assessed element profile. + + + ElementCombinationConstraintKind + Kind of constraint for an element combination. + + +NC + + + + included + Element combination is included. + enum + + + + excluded + Element combination is excluded. + enum + + + + considered + Element combination can be considered. + enum + + + + RemedialAction + Remedial action describes one or more actions that can be performed on a given power system model situation to eliminate one or more identified breaches of constraints. The remedial action can be costly, and have a cost characteristic, or non costly. +NC + + + + + RemedialAction + The remedial action defined for this assessed element and remedial action combination. + + + + + Yes + +NC + + + AssessedElementWithRemedialAction + The assessed element and remedial action combination to be simulated for this remedial action. + + + + + No + +NC + + + AssessedElement + + Assessed element is a network element for which the electrical state is evaluated in the regional or cross-regional process and which value is expected to fulfil regional rules function of the operational security limits. +The measurements and limits are as defined in the steady state hypothesis. +NC + + + + + + + inBaseCase + + + + NC + Indicates if the assessed element is scanned in the base case. In case of a base case overload, the assessed element is considered as a limiting element for the optimization process. +True means that the assessed element is scanned in the base case. False means it is not scanned in the base case. + + + + Boolean + A type with the value space "true" and "false". +Primitive + + + + + + isCritical + + + + NC + Indicates if the assessed element is critical. True, means that the assessed element is critical. False, means that the assessed element is not critical. Critical means that the assessed element for the conducting equipment or power transfer corridor are considered limiting for the power exchange. + + + + + maxMarginAdjustment + + + + NC + Maximum adjustment, relative to maximum flow allowed for exceeding the maximum flow of this assessed element. +The allowed value range is [0,100]. + + + + PerCent + Percentage on a defined base. For example, specify as 100 to indicate at the defined base. +CIMDatatype + + + + + + value + + + + Normally 0 to 100 on a defined base. + + + + Float + A floating point number. The range is unspecified and not limited. +Primitive + + + + + + unit + + + + none + + + + UnitSymbol + The derived units defined for usage in the CIM. In some cases, the derived unit is equal to an SI unit. Whenever possible, the standard derived symbol is used instead of the formula for the derived unit. For example, the unit symbol Farad is defined as "F" instead of "CPerV". In cases where a standard symbol does not exist for a derived unit, the formula for the unit is used as the unit symbol. For example, density does not have a standard symbol and so it is represented as "kgPerm3". With the exception of the "kg", which is an SI unit, the unit symbols do not contain multipliers and therefore represent the base derived unit to which a multiplier can be applied as a whole. +Every unit symbol is treated as an unparseable text as if it were a single-letter symbol. The meaning of each unit symbol is defined by the accompanying descriptive text and not by the text contents of the unit symbol. +To allow the widest possible range of serializations without requiring special character handling, several substitutions are made which deviate from the format described in IEC 80000-1. The division symbol "/" is replaced by the letters "Per". Exponents are written in plain text after the unit as "m3" instead of being formatted as "m" with a superscript of 3 or introducing a symbol as in "m^3". The degree symbol "°" is replaced with the letters "deg". Any clarification of the meaning for a substitution is included in the description for the unit symbol. +Non-SI units are included in list of unit symbols to allow sources of data to be correctly labelled with their non-SI units (for example, a GPS sensor that is reporting numbers that represent feet instead of meters). This allows software to use the unit symbol information correctly convert and scale the raw data of those sources into SI-based units. +The integer values are used for harmonization with IEC 61850. + + + + + + none + Dimension less quantity, e.g. count, per unit, etc. + enum + + + + W + Real power in watts (J/s). Electrical power may have real and reactive components. The real portion of electrical power (I&#178;R or VIcos(phi)), is expressed in Watts. See also apparent power and reactive power. + enum + + + + + multiplier + + + + none + + + + UnitMultiplier + The unit multipliers defined for the CIM. When applied to unit symbols, the unit symbol is treated as a derived unit. Regardless of the contents of the unit symbol text, the unit symbol shall be treated as if it were a single-character unit symbol. Unit symbols should not contain multipliers, and it should be left to the multiplier to define the multiple for an entire data type. + +For example, if a unit symbol is "m2Pers" and the multiplier is "k", then the value is k(m**2/s), and the multiplier applies to the entire final value, not to any individual part of the value. This can be conceptualized by substituting a derived unit symbol for the unit type. If one imagines that the symbol "Þ" represents the derived unit "m2Pers", then applying the multiplier "k" can be conceptualized simply as "kÞ". + +For example, the SI unit for mass is "kg" and not "g". If the unit symbol is defined as "kg", then the multiplier is applied to "kg" as a whole and does not replace the "k" in front of the "g". In this case, the multiplier of "m" would be used with the unit symbol of "kg" to represent one gram. As a text string, this violates the instructions in IEC 80000-1. However, because the unit symbol in CIM is treated as a derived unit instead of as an SI unit, it makes more sense to conceptualize the "kg" as if it were replaced by one of the proposed replacements for the SI mass symbol. If one imagines that the "kg" were replaced by a symbol "Þ", then it is easier to conceptualize the multiplier "m" as creating the proper unit "mÞ", and not the forbidden unit "mkg". + + + + + + none + No multiplier or equivalently multiply by 1. + enum + + + + M + Mega 10**6. + enum + + + + + flowReliabilityMargin + + + + NC + Percentage of the maximum flow (margin) reserved to anticipate forecasting errors. +The allowed value range is [0,100]. + + + + + targetRemainingAvailableMargin + + + + NC + Target for the remaining available margin as a percentage of maximum flow. +The allowed value range is [0,100]. + + + + + normalEnabled + + + + NC + If true, the assessed element shall be considered under normal operating conditions. + + + + + normalMaxFlow + + + + NC + Maximum flow on a conducting equipment or a collection of conducting equipment forming a power transfer corridor under normal operating conditions. For assessed elements that become critical due to contingency, this value represents the maximum flow with remedial action taken into consideration. + + + + ActivePower + Product of RMS value of the voltage and the RMS value of the in-phase component of the current. +CIMDatatype + + + + + + multiplier + + + + M + + + + + unit + + + + W + + + + + value + + + + + + + + normalAppointedMargin + + + + NC + The percentage (appointed to a region) of the remaining margin obtained in the grid model to reach its current limit under normal operating conditions. The maximum percentage shall by default be 10% of the remaining margin. +It is only used when an assessed element is considered conservative for a region. +The allowed value range is [0,100]. + + + + + normalPositiveVirtualMargin + + + + NC + A positive margin that defines the overload allowed in a solution for the assessed element for a normal situation. The margin represents influences that can be solved by the System Operators using available remedial action which is not cross-border relevant remedial action. +All relevant operational limits (e.g. PATL, TATL, etc) are modified by this margin value. The attribute represents the increase. The allowed value range is [0,100]. + + + + + isCrossBorderRelevant + + + + NC + If true, the conducting equipment or the power transfer corridor is cross border relevant. + + + + + exclusionReason + + + + NC + Reason for not associating this assessed element with a secured region. + + + + SecuredExclusionReasonKind + The kind of secured exclusion reason. + + +NC + + + + systemOperator + The network element that is going to be assessed is excluded for being secured by the system operator. + enum + + + + capacityCalculationRegion + The network element that is going to be assessed is excluded for being secured by the capacity calculation region. + enum + + + + nonNativeCapacityCalculationRegion + The network element that is going to be assessed is excluded for being secured for the native capacity calculation region since it would be secured for a non native capacity calculation region. + enum + + + + + isCombinableWithRemedialAction + + + + NC + Defines if the AssessedElement is available to be combined with RemedialAction. If true, this AssessedElement can be included in various combinations not defined in the data exchange in an explicit way. If false, this assessed element is not to be considered in any combination with remedial actions and contingencies except for the exclusive combination. + + + + + isCombinableWithContingency + + + + NC + Defines if the AssessedElement is available to be combined with Contingency. If true, this AssessedElement can be included in various combinations not defined in the data exchange in an explicit way. If false, this assessed element is not to be considered in any combination with remedial actions and contingencies except for the exclusive combination. + + + + + normalScannedThresholdMargin + + + + NC + Normal threshold percentage that a scanned element can be overloaded, on a given element, on top of any overload prior to optimisation (default= 5%). e.g. Initial loading of the element is 110%, with a 5% scanned threshold margin, the new maximum is 115% of the limit (e.g. PATL, TATL, etc). +The allowed value range is [0,100]. + + + + AssessedElement + The assessed element indicating that the power transfer corridor is assessed, i.e. monitored. + + + + + No + +NC + + + AssessedPowerTransferCorridor + The power transfer corridor that is designated as an assessed element. + + + + + Yes + +NC + + + NativeRegion + The native region for an assessed element. + + + + + Yes + +NC + + + NativeAssessedElement + The native assessed element for a native region. + + + + + No + +NC + + + AssessedSystemOperator + A system operator that assesses the element. + + + + + Yes + +NC + + + AssessedElement + All relevant network elements on which operational security violations need to be managed in a coordinated way. + + + + + No + +NC + + + ScannedForRegion + This is the region in which this assessed element is scanned. + + + + + Yes + +NC + + + ScannedAssessedElement + These are the scanned assessed elements for a region. + + + + + No + +NC + + + ConductingEquipment + The conducting equipment that is designated as an assessed element, i.e. the equipment that is assessed. + + + + + Yes + +NC + + + AssessedElement + The assessed element indicating that the conducting equipment is assessed, i.e. monitored. + + + + + No + +NC + + + SecuredForRegion + This is the region where the element is secured. + + + + + Yes + +NC + + + SecuredAssessedElement + The assessed element secured for this region. + + + + + No + +NC + + + OverlappingAssessedElement + The overlapping assessed element on which the physical flows are significantly impacted by +electricity exchanges in two or more regions or by remedial actions from two or more regions. + + + + + No + +NC + + + OverlappingZone + The overlapping zone grouping the overlapping assessed elements. + + + + + Yes + +NC + + + AssessedElement + The assessed element indicating that the DC tie corridor is assessed, i.e. monitored. + + + + + No + +NC + + + DCTieCorridor + The DC tie corridor that is assessed. + + + + + Yes + +NC + + + AssessedElement + The assessed element indicating which operational limit is assessed. + + + + + No + +NC + + + OperationalLimit + The terminal limit that is being assessed against. + + + + + Yes + +NC + + + AssessedElement + The assessed element defined for this contingency and assessed element combination. + + + + + Yes + +NC + + + AssessedElementWithContingency + The contingency and assessed element combination to be simulated for this assessed element. + + + + + No + +NC + + + AssessedElement + The assessed element defined for this assessed element and remedial action combination. + + + + + Yes + +NC + + + AssessedElementWithRemedialAction + The assessed element and remedial action combination to be simulated for this assessed element. + + + + + No + +NC + + + AssessedElementWithContingency + Combination of an assessed element and a contingency. +NC + + + + + + + mRID + + + + NC + Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. +For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements. + + + + String + A string consisting of a sequence of characters. The character encoding is UTF-8. The string length is unspecified and unlimited. +Primitive + + + + + + combinationConstraintKind + + + + NC + Defines the combination constraint of the AssessedElement and Contingency. If included, this assessed element is only assessed for this contingency. Else if excluded, this assessed element should not be assessed for this contingency. Considered shall not be used for this combination. + + + + + normalEnabled + + + + NC + If true, the assessed element with contingency is enabled, otherwise it is disabled under normal operating conditions. + + + + Contingency + The contingency defined for this contingency and assessed element combination. + + + + + Yes + +NC + + + AssessedElementWithContingency + The contingency and assessed element combination to be simulated for this contingency. + + + + + No + +NC + + + AssessedElementWithRemedialAction + Combination of an assessed element and a remedial action +NC + + + + + + + mRID + + + + NC + Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. +For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements. + + + + + combinationConstraintKind + + + + NC + Defines the combination constraint of the AssessedElement and Remedial Action. If included, this remedial action is only assessed for this assessed element. Else if excluded, this remedial action should not be used for this assessed element. Else if considered, this remedial action can be considered for this assessed element. + + + + + normalEnabled + + + + NC + If true, the assessed element with remedial action is enabled, otherwise it is disabled under normal operating conditions. + + + + ConductingEquipment + The parts of the AC power system that are designed to carry current or that are conductively connected through terminals. + + + + + Contingency + An event threatening system reliability, consisting of one or more contingency elements. + + + + + DCTieCorridor + A collection of one or more direct current poles that connect two different control areas. +NC + + + + + IdentifiedObject + This is a root class to provide common identification for all classes needing identification and naming attributes. + + + + + + description + + + + The description is a free human readable text describing or naming the object. It may be non unique and may not correlate to a naming hierarchy. + + + + + mRID + + + + Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. +For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements. + + + + + name + + + + The name is any free human readable and possibly non unique text naming the object. + + + + OperationalLimit + A value and normal value associated with a specific kind of limit. +The sub class value and normalValue attributes vary inversely to the associated OperationalLimitType.acceptableDuration (acceptableDuration for short). +If a particular piece of equipment has multiple operational limits of the same kind (apparent power, current, etc.), the limit with the greatest acceptableDuration shall have the smallest limit value and the limit with the smallest acceptableDuration shall have the largest limit value. Note: A large current can only be allowed to flow through a piece of equipment for a short duration without causing damage, but a lesser current can be allowed to flow for a longer duration. + + + + + OverlappingZone + A collection of all the overlapping cross border assessed elements which have the same sets of impacted and impacting regions. +NC + + + + + PowerTransferCorridor + A power transfer corridor is defined as a set of circuits (transmission lines or transformers) separating two portions of the power system, or a subset of circuits exposed to a substantial portion of the transmission exchange between two parts of the system. +NC + + + + + Region + A region where the system operator belongs to. +NC + + + + + SystemOperator + System operator. +NC + + + + + DocAssessedElementProfile + + This package contains datatypes used only in the RDFS header. + + + Date + Date as "yyyy-mm-dd", which conforms with ISO 8601. UTC time zone is specified as "yyyy-mm-ddZ". A local timezone relative UTC is specified as "yyyy-mm-dd(+/-)hh:mm". +Primitive + + + + + DateTime + Date and time as "yyyy-mm-ddThh:mm:ss.sss", which conforms with ISO 8601. UTC time zone is specified as "yyyy-mm-ddThh:mm:ss.sssZ". A local timezone relative UTC is specified as "yyyy-mm-ddThh:mm:ss.sss-hh:mm". The second component (shown here as "ss.sss") could have any number of digits in its fractional part to allow any kind of precision beyond seconds. +Primitive + + + + + IRI + An IRI (Internationalized Resource Identifier) within an RDF graph is a Unicode string that conforms to the syntax defined in RFC 3987. +The primitive is serialized as rdf:resource in RDFXML. +IRIs in the RDF abstract syntax must be absolute, and may contain a fragment identifier. +IRI equality: Two IRIs are equal if and only if they are equivalent under Simple String Comparison according to section 5.1 of [RFC3987]. Further normalization must not be performed when comparing IRIs for equality. +IRIs are a generalization of URIs [RFC3986] that permits a wider range of Unicode characters. Every absolute URI and URL is an IRI, but not every IRI is an URI. When IRIs are used in operations that are only defined for URIs, they must first be converted according to the mapping defined in section 3.1 of [RFC3987]. A notable example is retrieval over the HTTP protocol. The mapping involves UTF-8 encoding of non-ASCII characters, %-encoding of octets not allowed in URIs, and Punycode-encoding of domain names. +Primitive +profcim + + + + + StringFixedLanguage + A string consisting of a sequence of characters. The character encoding is UTF-8. The string length is unspecified and unlimited. +The primitive is serialized as literal without language support. +Primitive +profcim + + + + + StringIRI + An IRI (Internationalized Resource Identifier) within an RDF graph is a Unicode string that conforms to the syntax defined in RFC 3987. +The primitive is serialized as literal without language support. +IRIs in the RDF abstract syntax must be absolute, and may contain a fragment identifier. +IRI equality: Two IRIs are equal if and only if they are equivalent under Simple String Comparison according to section 5.1 of [RFC3987]. Further normalization must not be performed when comparing IRIs for equality. +IRIs are a generalization of URIs [RFC3986] that permits a wider range of Unicode characters. Every absolute URI and URL is an IRI, but not every IRI is an URI. When IRIs are used in operations that are only defined for URIs, they must first be converted according to the mapping defined in section 3.1 of [RFC3987]. A notable example is retrieval over the HTTP protocol. The mapping involves UTF-8 encoding of non-ASCII characters, %-encoding of octets not allowed in URIs, and Punycode-encoding of domain names. +Primitive +profcim + + + + + URL + A Uniform Resource Locator (URL), colloquially termed a web address, is a reference to a web resource that specifies its location on a computer network and a mechanism for retrieving it. A URL is a specific type of Uniform Resource Identifier (URI), although many people use the two terms interchangeably.URLs occur most commonly to reference web pages (http), but are also used for file transfer (ftp), email (mailto), database access (JDBC), and many other applications. +Primitive +profcim + + + + diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/AvailabilityScheduleProfile_v2_2_RDFSv2020_24Mar2023.rdf b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/AvailabilityScheduleProfile_v2_2_RDFSv2020_24Mar2023.rdf new file mode 100644 index 0000000000..5132af0cf6 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/AvailabilityScheduleProfile_v2_2_RDFSv2020_24Mar2023.rdf @@ -0,0 +1,981 @@ + + + + + + AS + + vocabulary + + urn:iso:std:iec:61970-600-2:ed-1 + urn:iso:std:iec:61970-301:ed-7:amd1 + file://iec61970cim17v40_iec61968cim13v13a_iec62325cim03v17a.eap + urn:iso:std:iec:61970-401:draft:ed-1 + urn:iso:std:iec:61970-501:draft:ed-2 + file://CGMES-30v25_501-20v01.eap + 2.2.0 + ENTSO-E CIM EG CSA project + This vocabulary is describing the availability schedule profile. + urn:uuid:8d128e35-86c7-4d67-b2dd-93229bf1005a + en-GB + https://www.apache.org/licenses/LICENSE-2.0 + 2023-03-24 + ENTSO-E + ENTSO-E + Availability schedule vocabulary + + + + + AvailabilityScheduleProfile + + This package contains the availability schedule profile. + + + AssessedElement + Assessed element is a network element for which the electrical state is evaluated in the regional or cross-regional process and which value is expected to fulfil regional rules function of the operational security limits. +The measurements and limits are as defined in the steady state hypothesis. +NC + + + + + AssessedElement + Assessed element that is affected by the availability given by this availability enabling. + + + + + Yes + +NC + + + AvailabilityEnabled + Availability enabled describes the enabling or disabling of this assessed element. + + + + + No + +NC + + + AvailabilityEnabled + + Availability enabled is enabling or disabling grid state alteration (e.g. tap position action) or assessed element that is related to the availability schedule. For instance, the cancellation of availability schedule can lead to changes in the assessed element. This is done by enabling one assessment and disabling another. +NC + + + + + + + enabled + + + + NC + Instruction to enable or disable alteration and assessment. + + + + Boolean + A type with the value space "true" and "false". +Primitive + + + + + GridStateAlteration + Grid state alteration that is affected by the availability given by this availability enabling. + + + + + Yes + +NC + + + AvailabilityEnabled + Availability enabled describes the enabling or disabling of this grid state alteration. + + + + + No + +NC + + + AvailabilityEquipment + + Availability equipment serves for associating an equipment with an availability schedule. For instance, putting in or out of service an ACLineSegment in combination with other availability functions with the same availability schedule. +NC + + + + + + Equipment + Equipment that is affected by the availability given by this availability equipment. + + + + + Yes + +NC + + + AvailabilityEquipment + Availability equipment describe the availabilty that affect this equipment. + + + + + No + +NC + + + AvailabilityExceptionalLimit + + Availability exceptional limit serves for associating an operational limit restriction with an availability schedule. For instance, enabling or disabling the current limit on ACLineSegment terminal in combination with other availability functions with the same availability schedule or de-rating due to fault. +NC + + + + + + + value + + + + NC + Value for the referred operational limit. + + + + Float + A floating point number. The range is unspecified and not limited. +Primitive + + + + + OperationalLimit + Operational limit that is constrained by this availability exceptional limit. + + + + + Yes + +NC + + + AvailabilityExceptionalLimit + Availability exceptional limit that constrain this operational limit. + + + + + No + +NC + + + AvailabilityGroup + + Container to link relevant equipment that is affected by (un)availability schedule across availability coordinator (e.g. TSO-TSO, TSO-DSO or DSO-DSO). +NC + + + + + + AvailabilityGroup + Grouping for all availability power system functions (controlled by all relevant system operators) that have the same availability schedule. + + + + + Yes + +NC + + + AvailabilityPowerSystemFunction + All availability power system functions linked through mutual dependency with other availability power system functions controlled by other system operators. + + + + + No + +NC + + + AvailabilityPowerSystemFunction + + Availability power system function describes the power system function that has a non-normal availability in the associated availability schedule. The availability of the function is needed as part of a power flow solution. This function is the cause and not the effect of the availability, if the effect can be calculated through power flow. For instance if only the step-up transformer for a generator is not available, the power flow will calculate that the generator is de-energized (outage). If both are tagged as not available it will not be possible to investigate remedial action for connecting the generator. It is expected that the power flow function is able to perform simple topology changes affected by a function taken out of service, e.g. open switches on both end of a ACLineSegment when the ACLineSegment is taken out of service. More complex changes, like change regulation set point, must be described in the linked GridStateAlterationCollection. +NC + + + + + + kind + + + + NC + Kind of availability that affect the power system function. + + + + AvailabilityFunctionKind + Kind of availability that is affecting the function. + + +NC + + + + inService + Function is in service. + enum + + + + outOfService + Function is out-of-service. + enum + + + + underTesting + Function is under testing and need to expect unscheduled availability. + enum + + + + AvailabilitySchedule + Availability schedule for this availability power system function. + + + + + Yes + +NC + + + AvailabilityPowerSystemFunction + All the couplings that associate one concrete function (e.g., equipment or container, SIPS/SPSs, grid state alteration, exceptional operational limits) with the same availability schedule. + + + + + No + +NC + + + AvailabilityRemedialAction + Availability remedial action is a remedial action that cancels or reschedules an availability schedule. +NC + + + + + RemedialAction + Remedial action that is cancelling this availability schedule. + + + + + Yes + +NC + + + AvailabilitySchedule + Availability schedule that is part of the remedial action. + + + + + No + +NC + + + AvailabilityRemedialActionScheme + + Availability remedial action scheme serves for associating a remedial action scheme with an availability schedule. For instance, taking in or out of service a SIPS / SPS due to communication issue, in combination with other availability functions with the same availability schedule. +NC + + + + + + RemedialActionScheme + Remedial action scheme that is affected by the availability given by this availability remedial action scheme. + + + + + Yes + +NC + + + AvailabilityRemedialActionScheme + Availability remedial action scheme describe the availabiltiy that affect this remedial action scheme. + + + + + No + +NC + + + AvailabilitySchedule + + A given (un)availability schedule with a given status and cause that include multiple equipment that need to follow the same scheduling periods. +NC + + + + + + + cancelledDateTime + + + + NC + The date and time the (un)availability schedule were cancelled . + + + + DateTime + Date and time as "yyyy-mm-ddThh:mm:ss.sss", which conforms with ISO 8601. UTC time zone is specified as "yyyy-mm-ddThh:mm:ss.sssZ". A local timezone relative UTC is specified as "yyyy-mm-ddThh:mm:ss.sss-hh:mm". The second component (shown here as "ss.sss") could have any number of digits in its fractional part to allow any kind of precision beyond seconds. +Primitive + + + + + + causeDescription + + + + NC + A cause description for a cause kind. In case of CauseKind equals other, description or a reference of the cause of the (un)availability schedule. + + + + String + A string consisting of a sequence of characters. The character encoding is UTF-8. The string length is unspecified and unlimited. +Primitive + + + + + + maxRestitutionDuration + + + + NC + The maximum time required to take the out-of-service equipment back into service. This includes the start-up time for generating units. + + + + Duration + Duration as "PnYnMnDTnHnMnS" which conforms to ISO 8601, where nY expresses a number of years, nM a number of months, nD a number of days. The letter T separates the date expression from the time expression and, after it, nH identifies a number of hours, nM a number of minutes and nS a number of seconds. The number of seconds could be expressed as a decimal number, but all other numbers are integers. +Primitive + + + + + + causeKind + + + + NC + Kind of cause for the availability schedule. + + + + AvailabilityScheduleCauseKind + The kinds of cause of the (un)availability schedule. + + +NC + + + + commissioning + The cause is due to a commissioning. + enum + + + + decommissioning + The cause is due to a decommissioning. + enum + + + + functionalControl + The cause is due to a functional control (in &amp; out). + enum + + + + environmentalCondition + The cause is due to an environmental condition. This can lead to exceptional margin and limits. + enum + + + + maintenance + The cause is due to a maintenance. + enum + + + + refurbishment + The cause is due to a refurbishment, either upgrade or downgrade. + enum + + + + worksInProximity + The cause is due to a works in proximity. + enum + + + + other + The cause is of other kind. + enum + + + + + priority + + + + NC + Value 0 means ignore priority. 1 means the highest priority, 2 is the second highest priority. + + + + Integer + An integer number. The range is unspecified and not limited. +Primitive + + + + + AlternativeSchedule + Alternative schedule. The priority in regards to multiple alternatives is given by the priority attribute. This schedule is only relevant if all the alternatives with higher priority are cancelled. + + + + + No + +NC + + + PrioritySchedule + Priority schedule. This is the schedule that has the highest priority and the only valid if not cancelled. + + + + + Yes + +NC + + + DependentOnSchedule + (Un)availability schedule requested by one operator may require another operator to request their (un)availability schedule. This association is linking the schedules so that the dependency is clear. + + + + + Yes + +NC + + + AvailabilitySchedule + Availability schedule that has a dependent availability schedule. + + + + + No + +NC + + + GridStateAlterationCollection + The grid state alteration collection that has this availability schedule. + + + + + Yes + +NC + + + AvailabilitySchedule + Availability schedule that require the a collection of grid state alteration to provide a valid power flow solution. For instance, a set of switching plans. + + + + + No + +NC + + + ActualAvailabilitySchedule + Actual availability schedule that has this irregular interval schedule. + + + + + No + +NC + + + ActualSchedule + Actual schedule that relates to this availability schedule; used for ex-post reporting and analysis (e.g., to compare planned vs. actual). + + + + + Yes + +NC + + + PlannedAvailabilitySchedule + Planned availability schedule that has this irregular interval schedule. + + + + + No + +NC + + + PlannedSchedule + Planned schedule that relates to this availability schedule used for planning availability (e.g., to compare planned vs. actual). + + + + + Yes + +NC + + + AvailabilityContainer + + Availability container serves for associating an equipment container with an availability schedule. For instance, putting in or out of service all the equipment inside a Line or a Bay in combination with other availability functions with the same availability schedule. +NC + + + + + + AvailabilityContainer + Availability container describe the availabiltiy that affect this equipment container. + + + + + No + +NC + + + EquipmentContainer + Equipment container that is affected by the availability given by this availability container. + + + + + Yes + +NC + + + BaseIrregularTimeSeries + + Time series that has irregular points in time. +NC + + + + + BaseTimeSeries + + Time series of values at points in time. +NC + + + + + + interpolationKind + + + + Kind of interpolation done between time point. + + + + TimeSeriesInterpolationKind + Kinds of interpolation of values between two time point. + + +NC + + + + previous + The value between two time points is set to previous value. + enum + + + + + kind + + + + Kind of base time series. + + + + BaseTimeSeriesKind + Kind of time series. + + +NC + + + + schedule + Time series is schedule data. The values represent the result of a committed and plan forecast data that has been through a quality control and could incur penalty when not followed. + enum + + + + actual + Time series is actual data. The values represent measured or calculated values that represent the actual behaviour. + enum + + + + Equipment + The parts of a power system that are physical devices, electronic or mechanical. + + + + + EquipmentContainer + A modelling construct to provide a root class for containing equipment. + + + + + EventSchedule + + Time series represent irregular event described by event points in time. +NC + + + + + + EventSchedule + Time series the time point values belongs to. + + + + + Yes + +NC + + + EventTimePoint + Value for the point in time. + + + + + + No + +NC + + + EventTimePoint + Event valid for a given point in time. +NC + + + + + + + atTime + + + + NC + The time the data is valid for. + + + + + isActive + + + + NC + True, if the event is occurring (Active) at this time point. Otherwise false. + + + + GridStateAlteration + Grid state alteration is a change of values describing state (operating point) of one element in the grid model compared to the base case. +NC + + + + + GridStateAlterationCollection + A collection of grid state alterations. +NC + + + + + IdentifiedObject + This is a root class to provide common identification for all classes needing identification and naming attributes. + + + + + + description + + + + The description is a free human readable text describing or naming the object. It may be non unique and may not correlate to a naming hierarchy. + + + + + mRID + + + + Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. +For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements. + + + + + name + + + + The name is any free human readable and possibly non unique text naming the object. + + + + OperationalLimit + A value and normal value associated with a specific kind of limit. +The sub class value and normalValue attributes vary inversely to the associated OperationalLimitType.acceptableDuration (acceptableDuration for short). +If a particular piece of equipment has multiple operational limits of the same kind (apparent power, current, etc.), the limit with the greatest acceptableDuration shall have the smallest limit value and the limit with the smallest acceptableDuration shall have the largest limit value. Note: A large current can only be allowed to flow through a piece of equipment for a short duration without causing damage, but a lesser current can be allowed to flow for a longer duration. + + + + + RemedialActionScheme + Remedial Action Scheme (RAS), Special Protection Schemes (SPS), System Protection Schemes (SPS) or System Integrity Protection Schemes (SIPS). +A Remedial Action Scheme consists of one or more stages that can trigger and execute a protection action. +NC + + + + + UnitMultiplier + The unit multipliers defined for the CIM. When applied to unit symbols, the unit symbol is treated as a derived unit. Regardless of the contents of the unit symbol text, the unit symbol shall be treated as if it were a single-character unit symbol. Unit symbols should not contain multipliers, and it should be left to the multiplier to define the multiple for an entire data type. + +For example, if a unit symbol is "m2Pers" and the multiplier is "k", then the value is k(m**2/s), and the multiplier applies to the entire final value, not to any individual part of the value. This can be conceptualized by substituting a derived unit symbol for the unit type. If one imagines that the symbol "Þ" represents the derived unit "m2Pers", then applying the multiplier "k" can be conceptualized simply as "kÞ". + +For example, the SI unit for mass is "kg" and not "g". If the unit symbol is defined as "kg", then the multiplier is applied to "kg" as a whole and does not replace the "k" in front of the "g". In this case, the multiplier of "m" would be used with the unit symbol of "kg" to represent one gram. As a text string, this violates the instructions in IEC 80000-1. However, because the unit symbol in CIM is treated as a derived unit instead of as an SI unit, it makes more sense to conceptualize the "kg" as if it were replaced by one of the proposed replacements for the SI mass symbol. If one imagines that the "kg" were replaced by a symbol "Þ", then it is easier to conceptualize the multiplier "m" as creating the proper unit "mÞ", and not the forbidden unit "mkg". + + + + + + none + No multiplier or equivalently multiply by 1. + enum + + + + UnitSymbol + The derived units defined for usage in the CIM. In some cases, the derived unit is equal to an SI unit. Whenever possible, the standard derived symbol is used instead of the formula for the derived unit. For example, the unit symbol Farad is defined as "F" instead of "CPerV". In cases where a standard symbol does not exist for a derived unit, the formula for the unit is used as the unit symbol. For example, density does not have a standard symbol and so it is represented as "kgPerm3". With the exception of the "kg", which is an SI unit, the unit symbols do not contain multipliers and therefore represent the base derived unit to which a multiplier can be applied as a whole. +Every unit symbol is treated as an unparseable text as if it were a single-letter symbol. The meaning of each unit symbol is defined by the accompanying descriptive text and not by the text contents of the unit symbol. +To allow the widest possible range of serializations without requiring special character handling, several substitutions are made which deviate from the format described in IEC 80000-1. The division symbol "/" is replaced by the letters "Per". Exponents are written in plain text after the unit as "m3" instead of being formatted as "m" with a superscript of 3 or introducing a symbol as in "m^3". The degree symbol "°" is replaced with the letters "deg". Any clarification of the meaning for a substitution is included in the description for the unit symbol. +Non-SI units are included in list of unit symbols to allow sources of data to be correctly labelled with their non-SI units (for example, a GPS sensor that is reporting numbers that represent feet instead of meters). This allows software to use the unit symbol information correctly convert and scale the raw data of those sources into SI-based units. +The integer values are used for harmonization with IEC 61850. + + + + + + s + Time in seconds. + enum + + + + Seconds + Time, in seconds. +CIMDatatype + + + + + + value + + + + Time, in seconds + + + + + unit + + + + s + + + + + multiplier + + + + none + + + + DocAvailabilityScheduleProfile + + This package contains datatypes used only in the RDFS header. + + + Date + Date as "yyyy-mm-dd", which conforms with ISO 8601. UTC time zone is specified as "yyyy-mm-ddZ". A local timezone relative UTC is specified as "yyyy-mm-dd(+/-)hh:mm". +Primitive + + + + + IRI + An IRI (Internationalized Resource Identifier) within an RDF graph is a Unicode string that conforms to the syntax defined in RFC 3987. +The primitive is serialized as rdf:resource in RDFXML. +IRIs in the RDF abstract syntax must be absolute, and may contain a fragment identifier. +IRI equality: Two IRIs are equal if and only if they are equivalent under Simple String Comparison according to section 5.1 of [RFC3987]. Further normalization must not be performed when comparing IRIs for equality. +IRIs are a generalization of URIs [RFC3986] that permits a wider range of Unicode characters. Every absolute URI and URL is an IRI, but not every IRI is an URI. When IRIs are used in operations that are only defined for URIs, they must first be converted according to the mapping defined in section 3.1 of [RFC3987]. A notable example is retrieval over the HTTP protocol. The mapping involves UTF-8 encoding of non-ASCII characters, %-encoding of octets not allowed in URIs, and Punycode-encoding of domain names. +Primitive +profcim + + + + + StringIRI + An IRI (Internationalized Resource Identifier) within an RDF graph is a Unicode string that conforms to the syntax defined in RFC 3987. +The primitive is serialized as literal without language support. +IRIs in the RDF abstract syntax must be absolute, and may contain a fragment identifier. +IRI equality: Two IRIs are equal if and only if they are equivalent under Simple String Comparison according to section 5.1 of [RFC3987]. Further normalization must not be performed when comparing IRIs for equality. +IRIs are a generalization of URIs [RFC3986] that permits a wider range of Unicode characters. Every absolute URI and URL is an IRI, but not every IRI is an URI. When IRIs are used in operations that are only defined for URIs, they must first be converted according to the mapping defined in section 3.1 of [RFC3987]. A notable example is retrieval over the HTTP protocol. The mapping involves UTF-8 encoding of non-ASCII characters, %-encoding of octets not allowed in URIs, and Punycode-encoding of domain names. +Primitive +profcim + + + + + StringFixedLanguage + A string consisting of a sequence of characters. The character encoding is UTF-8. The string length is unspecified and unlimited. +The primitive is serialized as literal without language support. +Primitive +profcim + + + + + URL + A Uniform Resource Locator (URL), colloquially termed a web address, is a reference to a web resource that specifies its location on a computer network and a mechanism for retrieving it. A URL is a specific type of Uniform Resource Identifier (URI), although many people use the two terms interchangeably.URLs occur most commonly to reference web pages (http), but are also used for file transfer (ftp), email (mailto), database access (JDBC), and many other applications. +Primitive +profcim + + + + diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/ContingencyProfile_v2_2_RDFSv2020_24Mar2023.rdf b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/ContingencyProfile_v2_2_RDFSv2020_24Mar2023.rdf new file mode 100644 index 0000000000..e232e4e212 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/ContingencyProfile_v2_2_RDFSv2020_24Mar2023.rdf @@ -0,0 +1,491 @@ + + + + + + CO + + vocabulary + + urn:iso:std:iec:61970-600-2:ed-1 + urn:iso:std:iec:61970-301:ed-7:amd1 + file://iec61970cim17v40_iec61968cim13v13a_iec62325cim03v17a.eap + urn:iso:std:iec:61970-401:draft:ed-1 + urn:iso:std:iec:61970-501:draft:ed-2 + file://CGMES-30v25_501-20v01.eap + 2.2.0 + ENTSO-E CIM EG CSA project + This vocabulary is describing the contingency profile. + urn:uuid:8947de1c-6e53-4f1f-82c3-99ef118db9eb + en-GB + https://www.apache.org/licenses/LICENSE-2.0 + 2023-03-24 + ENTSO-E + ENTSO-E + Contingency Vocabulary + + + + + ContingencyProfile + + This package contains contingency profile. + + + Contingency + + An event threatening system reliability, consisting of one or more contingency elements. + + + + + + normalProbability + + + + NC + Normal probability of the occurrence of the contingency based on normal operational condition. The value is used as the default if the probability is missing. +The allowed value range is [0,100]. + + + + PerCent + Percentage on a defined base. For example, specify as 100 to indicate at the defined base. +CIMDatatype + + + + + + value + + + + Normally 0 to 100 on a defined base. + + + + Float + A floating point number. The range is unspecified and not limited. +Primitive + + + + + + unit + + + + none + + + + UnitSymbol + The derived units defined for usage in the CIM. In some cases, the derived unit is equal to an SI unit. Whenever possible, the standard derived symbol is used instead of the formula for the derived unit. For example, the unit symbol Farad is defined as "F" instead of "CPerV". In cases where a standard symbol does not exist for a derived unit, the formula for the unit is used as the unit symbol. For example, density does not have a standard symbol and so it is represented as "kgPerm3". With the exception of the "kg", which is an SI unit, the unit symbols do not contain multipliers and therefore represent the base derived unit to which a multiplier can be applied as a whole. +Every unit symbol is treated as an unparseable text as if it were a single-letter symbol. The meaning of each unit symbol is defined by the accompanying descriptive text and not by the text contents of the unit symbol. +To allow the widest possible range of serializations without requiring special character handling, several substitutions are made which deviate from the format described in IEC 80000-1. The division symbol "/" is replaced by the letters "Per". Exponents are written in plain text after the unit as "m3" instead of being formatted as "m" with a superscript of 3 or introducing a symbol as in "m^3". The degree symbol "°" is replaced with the letters "deg". Any clarification of the meaning for a substitution is included in the description for the unit symbol. +Non-SI units are included in list of unit symbols to allow sources of data to be correctly labelled with their non-SI units (for example, a GPS sensor that is reporting numbers that represent feet instead of meters). This allows software to use the unit symbol information correctly convert and scale the raw data of those sources into SI-based units. +The integer values are used for harmonization with IEC 61850. + + + + + + none + Dimension less quantity, e.g. count, per unit, etc. + enum + + + + + multiplier + + + + none + + + + UnitMultiplier + The unit multipliers defined for the CIM. When applied to unit symbols, the unit symbol is treated as a derived unit. Regardless of the contents of the unit symbol text, the unit symbol shall be treated as if it were a single-character unit symbol. Unit symbols should not contain multipliers, and it should be left to the multiplier to define the multiple for an entire data type. + +For example, if a unit symbol is "m2Pers" and the multiplier is "k", then the value is k(m**2/s), and the multiplier applies to the entire final value, not to any individual part of the value. This can be conceptualized by substituting a derived unit symbol for the unit type. If one imagines that the symbol "Þ" represents the derived unit "m2Pers", then applying the multiplier "k" can be conceptualized simply as "kÞ". + +For example, the SI unit for mass is "kg" and not "g". If the unit symbol is defined as "kg", then the multiplier is applied to "kg" as a whole and does not replace the "k" in front of the "g". In this case, the multiplier of "m" would be used with the unit symbol of "kg" to represent one gram. As a text string, this violates the instructions in IEC 80000-1. However, because the unit symbol in CIM is treated as a derived unit instead of as an SI unit, it makes more sense to conceptualize the "kg" as if it were replaced by one of the proposed replacements for the SI mass symbol. If one imagines that the "kg" were replaced by a symbol "Þ", then it is easier to conceptualize the multiplier "m" as creating the proper unit "mÞ", and not the forbidden unit "mkg". + + + + + + none + No multiplier or equivalently multiply by 1. + enum + + + + + normalMustStudy + + + + NC + Specifies the requirement of study the contingency under normal operating conditions. True means the contingency must be study in a normal scenario. False means that the contingency does not need to be included in the scenario. This is the default value if mustStudy is missing. + + + + Boolean + A type with the value space "true" and "false". +Primitive + + + + + ContingencyElement + A contingency can have any number of contingency elements. + + + + + + No + + + + Contingency + A contingency element belongs to one contingency. + + + + + Yes + + + + Contingency + Contingency which has simulation events. + + + + + No + +NC + + + SimulationEvents + Simulation event for a contingency. + + + + + Yes + +NC + + + EquipmentOperator + System operator that is operating the equipment that is being run a contingency on. + + + + + Yes + +NC + + + Contingency + Contingency for the equipment that is operated by the system operator. + + + + + No + +NC + + + ContingencyElement + + An element of a system event to be studied by contingency analysis, representing a change in status of a single piece of equipment. + + + + + ContingencyEquipment + + Equipment whose in service status is to change, such as a power transformer or AC line segment. + + + + + + + contingentStatus + + + + The status for the associated equipment when in the contingency state. This status is independent of the case to which the contingency is originally applied, but defines the equipment status when the contingency is applied. + + + + ContingencyEquipmentStatusKind + Indicates the state which the contingency equipment is to be in when the contingency is applied. + + + + + + inService + The equipment is to be put into service. + enum + + + + outOfService + The equipment is to be taken out of service. + enum + + + + Equipment + The single piece of equipment to which to apply the contingency. + + + + + Yes + + + + ContingencyEquipment + The contingency equipments in which this equipment participates. + + + + + No + + + + Equipment + The parts of a power system that are physical devices, electronic or mechanical. + + + + + ExceptionalContingency + + Exceptional contingency means the simultaneous occurrence of multiple contingencies with a common cause. +NC + + + + + + + kind + + + + NC + Defines the kind of relevance and criteria of application of the exceptional contingency. + + + + ContingencyConditionKind + Kinds of occurrence criteria of application. + + +NC + + + + geographicalLocation + Permanent occurrence factor which is specific geographical location. + enum + + + + design + Permanent occurrence factor which is design condition. + enum + + + + environmental + Temporary occurrence factor which is weather or environmental condition (e.g. storm). + enum + + + + operational + Temporary occurrence factor which is operational condition. + enum + + + + malfunction + Temporary occurrence factor which is life time or generic malfunction affecting the risk of failure condition. + enum + + + + IdentifiedObject + This is a root class to provide common identification for all classes needing identification and naming attributes. + + + + + + description + + + + The description is a free human readable text describing or naming the object. It may be non unique and may not correlate to a naming hierarchy. + + + + String + A string consisting of a sequence of characters. The character encoding is UTF-8. The string length is unspecified and unlimited. +Primitive + + + + + + mRID + + + + Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. +For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements. + + + + + name + + + + The name is any free human readable and possibly non unique text naming the object. + + + + OrdinaryContingency + + Ordinary contingency means the occurrence of a contingency of a single branch or injection. +NC + + + + + + OutOfRangeContingency + + Out of range means the simultaneous occurrence of multiple contingencies without a common cause, or a loss of power generating modules with a total loss of generation capacity exceeding the reference incident. +NC + + + + + + SimulationEvents + A configuration or a set of events executed during a simulation. + + + + + SystemOperator + System operator. +NC + + + + + DocContingencyProfile + + This package contains datatypes used only in the RDFS header. + + + Date + Date as "yyyy-mm-dd", which conforms with ISO 8601. UTC time zone is specified as "yyyy-mm-ddZ". A local timezone relative UTC is specified as "yyyy-mm-dd(+/-)hh:mm". +Primitive + + + + + DateTime + Date and time as "yyyy-mm-ddThh:mm:ss.sss", which conforms with ISO 8601. UTC time zone is specified as "yyyy-mm-ddThh:mm:ss.sssZ". A local timezone relative UTC is specified as "yyyy-mm-ddThh:mm:ss.sss-hh:mm". The second component (shown here as "ss.sss") could have any number of digits in its fractional part to allow any kind of precision beyond seconds. +Primitive + + + + + IRI + An IRI (Internationalized Resource Identifier) within an RDF graph is a Unicode string that conforms to the syntax defined in RFC 3987. +The primitive is serialized as rdf:resource in RDFXML. +IRIs in the RDF abstract syntax must be absolute, and may contain a fragment identifier. +IRI equality: Two IRIs are equal if and only if they are equivalent under Simple String Comparison according to section 5.1 of [RFC3987]. Further normalization must not be performed when comparing IRIs for equality. +IRIs are a generalization of URIs [RFC3986] that permits a wider range of Unicode characters. Every absolute URI and URL is an IRI, but not every IRI is an URI. When IRIs are used in operations that are only defined for URIs, they must first be converted according to the mapping defined in section 3.1 of [RFC3987]. A notable example is retrieval over the HTTP protocol. The mapping involves UTF-8 encoding of non-ASCII characters, %-encoding of octets not allowed in URIs, and Punycode-encoding of domain names. +Primitive +profcim + + + + + StringFixedLanguage + A string consisting of a sequence of characters. The character encoding is UTF-8. The string length is unspecified and unlimited. +The primitive is serialized as literal without language support. +Primitive +profcim + + + + + StringIRI + An IRI (Internationalized Resource Identifier) within an RDF graph is a Unicode string that conforms to the syntax defined in RFC 3987. +The primitive is serialized as literal without language support. +IRIs in the RDF abstract syntax must be absolute, and may contain a fragment identifier. +IRI equality: Two IRIs are equal if and only if they are equivalent under Simple String Comparison according to section 5.1 of [RFC3987]. Further normalization must not be performed when comparing IRIs for equality. +IRIs are a generalization of URIs [RFC3986] that permits a wider range of Unicode characters. Every absolute URI and URL is an IRI, but not every IRI is an URI. When IRIs are used in operations that are only defined for URIs, they must first be converted according to the mapping defined in section 3.1 of [RFC3987]. A notable example is retrieval over the HTTP protocol. The mapping involves UTF-8 encoding of non-ASCII characters, %-encoding of octets not allowed in URIs, and Punycode-encoding of domain names. +Primitive +profcim + + + + + URL + A Uniform Resource Locator (URL), colloquially termed a web address, is a reference to a web resource that specifies its location on a computer network and a mechanism for retrieving it. A URL is a specific type of Uniform Resource Identifier (URI), although many people use the two terms interchangeably.URLs occur most commonly to reference web pages (http), but are also used for file transfer (ftp), email (mailto), database access (JDBC), and many other applications. +Primitive +profcim + + + + diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/DocumentHeaderProfile_v2_2_RDFSv2020_24Mar2023.rdf b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/DocumentHeaderProfile_v2_2_RDFSv2020_24Mar2023.rdf new file mode 100644 index 0000000000..3f9b2e1ff4 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/DocumentHeaderProfile_v2_2_RDFSv2020_24Mar2023.rdf @@ -0,0 +1,700 @@ + + + + + + + DH + + vocabulary + + urn:iso:std:iec:61970-401:draft:ed-1 + urn:iso:std:iec:61970-501:draft:ed-2 + 2.2.0 + ENTSO-E + This vocabulary is describing the document header profile.. + urn:uuid:1c73cc65-8bcc-445a-8d18-0dbd7c94b118 + en-GB + https://www.apache.org/licenses/LICENSE-2.0 + 2023-03-24 + ENTSO-E + ENTSO-E + Document header vocabulary + + + + + DocumentHeaderProfile + + The package describes the profile for the extended header. + + + Model + A Model is a collection of data describing instances, objects or entities, real or computed. In the context of CIM the semantics of the data is defined by profiles. Hence a model can contain equipment data, power flow initial values, power flow results etc. +The Model class describes the header content that is the same for the FullModel and the DifferenceModel. A Model is identified by an rdf:about attribute. The rdf:about attribute uniquely describes the model data and not the CIMXML document. A new rdf:about identification is generated for created documents only when the model data has changed. A repeated creation of documents from unchanged model data shall have the same rdf:about identification as previous document generated from the same model data. + + + + + + created + + + + md + The date and time when the model was created. It is the time of the serialization. The format is an extended format according to the ISO 8601-2005. European exchanges shall refer to UTC, e.g. &lt;md:Model.created&gt;2014-05-15T17:48:31.474Z&lt;/md:Model.created&gt;. + + + + DateTime + Date and time as "yyyy-mm-ddThh:mm:ss.sss", which conforms with ISO 8601. UTC time zone is specified as "yyyy-mm-ddThh:mm:ss.sssZ". A local timezone relative UTC is specified as "yyyy-mm-ddThh:mm:ss.sss-hh:mm". The second component (shown here as "ss.sss") could have any number of digits in its fractional part to allow any kind of precision beyond seconds. +Primitive + + + + + + generatedAtTime + + + + prov + Generation is the completion of production of a new entity by an activity. This entity did not exist before generation and becomes available for usage after this generation. +[CIM context: +The date and time when the model was serialized in the document where the header is located. The format is an extended format according to the ISO 8601-2005. European exchanges shall refer to UTC.]. + + + + + status + + + + euvoc + Indicates the status of a skos:Concept or a skosxl:Label, or any resource related to controlled vocabulary management. +[CIM context: +The condition or position of an object with regard to its standing. (Validated, Primary, Backup etc.)]. + + + + IRI + An IRI (Internationalized Resource Identifier) within an RDF graph is a Unicode string that conforms to the syntax defined in RFC 3987. +The primitive is serialized as rdf:resource in RDFXML. +IRIs in the RDF abstract syntax must be absolute, and may contain a fragment identifier. +IRI equality: Two IRIs are equal if and only if they are equivalent under Simple String Comparison according to section 5.1 of [RFC3987]. Further normalization must not be performed when comparing IRIs for equality. +IRIs are a generalization of URIs [RFC3986] that permits a wider range of Unicode characters. Every absolute URI and URL is an IRI, but not every IRI is an URI. When IRIs are used in operations that are only defined for URIs, they must first be converted according to the mapping defined in section 3.1 of [RFC3987]. A notable example is retrieval over the HTTP protocol. The mapping involves UTF-8 encoding of non-ASCII characters, %-encoding of octets not allowed in URIs, and Punycode-encoding of domain names. +Primitive +profcim + + + + + + applicationSoftware + + + + eumd + Identifies the application software which generated this instance file. The application software term is defined in ISO/IEC/IEEE 24765:2017. The application software can be identified either: +- as a string which contains information on the software name and version, e.g. &lt;tool_name&gt;-&lt;major_version&gt;.&lt;minor_version&gt;.&lt;patch&gt;, or +- as a reference to a software identification tag as defined by ISO/IEC 19770-2:2015 and ISO/IEC/IEEE 24765:2017. + + + + String + A string consisting of a sequence of characters. The character encoding is UTF-8. The string length is unspecified and unlimited. +Primitive + + + + + + description + + + + dcterms + A free-text account of the item. + + + + + modelingAuthoritySet + + + + md + A URN/URI referring to the organisation role / model authority set reference. The organization role is the source of the model. It is the same for all profiles part of a model exchange. + + + + URI + URI is a string following the rules defined by the W3C/IETF URI Planning Interest Group in a set of RFCs of which one is RFC 3305. +Primitive +European + + + + + + atLocation + + + + prov + A location can be an identifiable geographic place (ISO 19112), but it can also be a non-geographic place such as a directory, row, or column. As such, there are numerous ways in which location can be expressed, such as by a coordinate, address, landmark, and so forth. +[CIM context: +Reference to a region or a domain for which this model is provided.]. + + + + + keyword + + + + dcat + A keyword or tag describing a resource. +[CIM context: +The intended content type of the model, usually the profile keyword. Used to identify what profiles and content is expected in the document, e.g., Equipment, Boundary, SSH, AE, etc. The same keyword is used for different versions of same profile. It can be also used to identify different content based on the same profile. +For instance, as the equipment profile can be used for both boundary data and equipment not related to boundary, the keyword is different to indicate that boundary data is exchanged. In order to avoid ambiguity the property is not exchanged in cases where the document contains multiple profiles referenced by dct:conformsTo.]. + + + + StringFixedLanguage + A string consisting of a sequence of characters. The character encoding is UTF-8. The string length is unspecified and unlimited. +The primitive is serialized as literal without language support. +Primitive +profcim + + + + + + scenarioTime + + + + md + The date and time that this model represents, i.e. for which the model is valid. The format is an extended format according to the ISO 8601-2005. European exchanges shall refer to UTC, e.g. &lt;md:Model.scenarioTime&gt;2030-01-15T17:00:00.000Z&lt;/md:Model.scenarioTime&gt;. + + + + + accessRights + + + + dcterms + Information about who access the resource or an indication of its security status.Access Rights may include information regarding access or restrictions based on privacy, security, or other policies. +[CIM context: +Reference to the confidentiality level that shall be applied when handling this model.]. + + + + + profile + + + + md + URN/URI describing the profiles that governs this model. It uniquely identifies the profiles and its version, e.g. http://iec.ch/TC57/61970-456/SteadyStateHypothesis/2/0. + + + + + wasInfluencedBy + + + + prov + Influence is the capacity of an entity, activity, or agent to have an effect on the character, development, or behavior of another by means of usage, start, end, generation, invalidation, communication, derivation, attribution, association, or delegation. +[CIM context: +A reference to the model on which the model serialised in this document depends on. The references are maintained by the producer of the model. Minimum requirements for the dependency are specified and can be restricted within a business process as long as they do not contradict requirements by standards. For instance, IEC 61970-600-1 defines minimum requirements for the profiles defined in that standard.]. + + + + + conformsTo + + + + dcterms + An established standard to which the described resource conforms. +[CIM context: +An IRI describing the profile that governs this model. It uniquely identifies the profile and its version. Multiple instances of the property describe all standards or specifications to which the model and the document representing this model conform to. +A document would normally conform to profile definitions, the constraints that relate to the profile and/or the set of business specific constrains. A reference to a machine- readable constraints or specification indicates that the document was tested against these constraints and it conforms to them.]. + + + + StringIRI + An IRI (Internationalized Resource Identifier) within an RDF graph is a Unicode string that conforms to the syntax defined in RFC 3987. +The primitive is serialized as literal without language support. +IRIs in the RDF abstract syntax must be absolute, and may contain a fragment identifier. +IRI equality: Two IRIs are equal if and only if they are equivalent under Simple String Comparison according to section 5.1 of [RFC3987]. Further normalization must not be performed when comparing IRIs for equality. +IRIs are a generalization of URIs [RFC3986] that permits a wider range of Unicode characters. Every absolute URI and URL is an IRI, but not every IRI is an URI. When IRIs are used in operations that are only defined for URIs, they must first be converted according to the mapping defined in section 3.1 of [RFC3987]. A notable example is retrieval over the HTTP protocol. The mapping involves UTF-8 encoding of non-ASCII characters, %-encoding of octets not allowed in URIs, and Punycode-encoding of domain names. +Primitive +profcim + + + + + + hadPrimarySource + + + + prov + A primary source for a topic refers to something produced by some agent with direct experience and knowledge about the topic, at the time of the topic's study, without benefit from hindsight. Because of the directness of primary sources, they 'speak for themselves' in ways that cannot be captured through the filter of secondary sources. As such, it is important for secondary sources to reference those primary sources from which they were derived, so that their reliability can be investigated. A primary source relation is a particular case of derivation of secondary materials from their primary sources. It is recognized that the determination of primary sources can be up to interpretation, and should be done according to conventions accepted within the application's domain. +[CIM context: +Reference to a modelling authority set version sourcing the model. It is only used in cases where a model is modified by an agent which has different version of modelling authority set. The agent that makes a revision of a model indicates the primary source using this property and also refers to its own version of modelling authority set using prov:specializationOf.]. + + + + + version + + + + dcat + The version number of a resource. + + + + + identifier + + + + dcterms + An unambiguous reference to the resource within a given context. Recommended practice is to identify the resource by means of a string conforming to an identification system. Examples include International Standard Book Number (ISBN), Digital Object Identifier (DOI), and Uniform Resource Name (URN). Persistent identifiers should be provided as HTTP URIs. +[CIM context: +A unique identifier of the model which is serialised in the document where the header is located. The identifier is persistent for a given version of the model and shall change when the model changes. +If a model is serialized as complete (full) model or as difference model exchange the identifier shall be the same. The identifier shall not be used as an identifier of the document which can be different for a given version of a model.]. + + + + + wasGeneratedBy + + + + prov + Generation is the completion of production of a new entity by an activity. This entity did not exist before generation and becomes available for usage after this generation. +[CIM context: +Reference to an activity or the exact business nature (process, configuration) which produced or uses the model.]. + + + + + license + + + + dcterms + A legal document giving official permission to do something with the resource. Recommended practice is to identify the license document with a URI. If this is not possible or feasible, a literal value that identifies the license may be provided. +[CIM context: +Reference to the license under which the data is made available. If no license holder is defined, then the original data provider holds the license.]. + + + + + wasAttributedTo + + + + prov + Attribution is the ascribing of an entity to an agent. +[CIM context: +Reference to the agent (or service provider) from which the model originates.]. + + + + + usedSettings + + + + eumd + Reference to a set of parameters describing used settings (e.g. power flow settings, process settings, etc.) applied to the model prior its serialisation. + + + + + wasRevisionOf + + + + prov + A revision is a derivation for which the resulting entity is a revised version of some original. The implication here is that the resulting entity contains substantial content from the original. Revision is a particular case of derivation. +[CIM context: +When a model is updated the resulting model supersedes the models that were used as basis for the update. Hence this is a reference to the model which are superseded by this model. A model can supersede 1 or more models, e.g. a difference model or a full model supersede multiple models (difference or full). In this case, multiple properties are included in the header. The referenced document(s) is (are) identified by the URN/MRID/UUID in the FullModel rdf:about attribute when full model(s) is (are) referenced and by the URN/MRID/UUID in the DifferenceModel rdf:about attribute when difference model(s) is (are) referenced.]. + + + + + rights + + + + dcterms + A statement that concerns all rights not addressed with dct:license or dct:accessRights, such as copyright statements. + + + + + specializationOf + + + + prov + An entity that is a specialization of another shares all aspects of the latter, and additionally presents more specific aspects of the same thing as the latter. In particular, the lifetime of the entity being specialized contains that of any specialization. Examples of aspects include a time period, an abstraction, and a context associated with the entity. +[CIM context: +Reference to modelling authority set version sourcing the model. The agent that makes a revision of a model indicates the primary source using prov:hadPrimarySource and refers to its own version of modelling authority set using this property.]. + + + + + rightsHolder + + + + dcterms + Information about rights held in and over the resource. Typically, rights information includes a statement about various property rights associated with the resource, including intellectual property rights. Recommended practice is to refer to a rights statement with a URI. If this is not possible or feasible, a literal value (name, label, or short text) may be provided. + + + + + type + + + + dcterms + The nature or genre of the resource. Recommended practice is to use a controlled vocabulary such as the DCMI Type Vocabulary [DCMI-TYPE]. To describe the file format, physical medium, or dimensions of the resource, use the property Format. + + + + + accrualPeriodicity + + + + dcterms + The frequency with which items are added to a collection. +[CIM context: +Reference to the time frame.]. + + + + + processType + + + + eumd + The exact business nature. Reference to Business Process configurations. + + + + + creator + + + + dcterms + An entity responsible for making the resource. +Recommended practice is to identify the creator with a URI. If this is not possible or feasible, a literal value that identifies the creator may be provided. +[CIM context: +The name of the agent (Modeling Authority) from which the model originates]. + + + + + serviceLocation + + + + eumd + Reference to a service location (region or a domain). + + + + + previousVersion + + + + dcat + The previous version of a resource in a lineage. +This property is meant to be used to specify a version chain, consisting of snapshots of a resource. + +The notion of version used by this property is limited to versions resulting from revisions occurring to a resource as part of its life-cycle. One of the typical cases here is representing the history of the versions of a dataset that have been released over time. + + + + + hasVersion + + + + dcat + This resource has a more specific, versioned resource. +This property is intended for relating a non-versioned or abstract resource to several versioned resources, e.g. snapshots [PAV]. + +The notion of version used by this property is limited to versions resulting from revisions occurring to a resource as part of its life-cycle. Therefore, its semantics is more specific than its super-property dcterms:hasVersion, which makes use of a broader notion of version, including editions and adaptations. + + + + + isVersionOf + + + + dcat + This resource is a version of a non-versioned or abstract resource. +This property is intended for relating a versioned resource to a non-versioned or abstract resource. + +The notion of version used by this property is limited to versions resulting from revisions occurring to a resource as part of its life-cycle. Therefore, its semantics is more specific than its super-property dcterms:isVersionOf, which makes use of a broader notion of version, including editions and adaptations. + + + + + hasCurrentVersion + + + + dcat + This resource has a more specific, versioned resource with equivalent content. +This property is intended for relating a non-versioned or abstract resource to a single snapshot that can be used as a permalink to indicate the current version of the content. + +The notion of version used by this property is limited to versions resulting from revisions occurring to a resource as part of its life-cycle. + + + + + versionNotes + + + + adms + A description of changes between this version and the previous version of the resource. + + + + + source + + + + dcterms + A related resource from which the described resource is derived. +This property is intended to be used with non-literal values. The described resource may be derived from the related resource in whole or in part. Best practice is to identify the related resource by means of a URI or a string conforming to a formal identification system. + + + + + startDate + + + + dcat + This property contains the start of the +period. +[CIM context: +The date and time that this model represents, i.e. for which the model is (or was) valid. It indicates the beginning of the validity period. It is indicating either an instant (in cases where the model is only valid for a point in time) or the start time of a period. If not provided the model is considered valid for any time stamp. The format is an extended format according to the ISO 8601-2005. European exchanges shall refer to UTC.]. + + + + DateTimeStamp + Position of an instant, expressed using xsd:dateTimeStamp, in which the time-zone field is mandatory. +Primitive +eumd + + + + + + endDate + + + + dcat + This property contains the end of the period. +[CIM context: +The end date and time of the validity period of the model that it is serialized in the document where the header is located. It is only used in relation to the startDate property which indicates the beginning of the validity period of the model.]. + + + + DependentOn + A reference to the model documents that the model described by this document depends on. In general there can be 0 or many Model.DependentOn depending on the profile and the content of the instance file. +For instance: +– A load flow solution depends on the topology model it was computed from +– A topology model computed by a topology processor depends on the network model it was computed from. +The referenced models are identified by the FullModel rdf:about attribute for full model documents and by DifferenceModel rdf:about attribute for difference model documents. +The references are maintained by the producer of the CIMXML document and the references are valid for the model with version and identifier for which the document was created. + + + + + Yes + +md + + + Depending + All documents depending on the model described by this document. This role is not intended to be included in any document exchanging instance data. + + + + + No + +md + + + Supersedes + When a model is updated the resulting model supersedes the models that were used as basis for the update. Hence this is a reference to the CIMXML documents which are superseded by this model. A model (or instance file) can supersede 1 or more models, e.g. a difference model or a full model supersede multiple models (difference or full). In this case more than one Model.Supersedes are included in the header. The referenced document(s) is (are) identified by the URN/MRID/UUID in the FullModel rdf:about attribute when full model(s) is (are) referenced and by the URN/MRID/UUID in the DifferenceModel rdf:about attribute when difference model(s) is (are) referenced. + + + + + Yes + +md + + + SupersededBy + All models superseding this model. This role is not intended to be included in any document exchanging instance data. + + + + + No + +md + + + DifferenceModel + + It represents the difference model header. The content is described by the Model class, the association role forwardDifferences and association role reverseDifferences. Both association roles may have one set of Statements. +dm + + + + + + + preconditions + + + + A property of the difference model whose value is the collection of precondition statements. + + + + Statement + It represent a set of Definition and/or Description elements. +Compound +rdf + + + + + + subject + + + + Statement subject. + + + + + predicate + + + + Statement predicate. + + + + + object + + + + Statement object. + + + + + reverseDifferences + + + + A property of the difference model whose value is the collection of reverse difference statements. + + + + + forwardDifferences + + + + A property of the difference model whose value is a collection of statements (i.e., resources of type rdf:Statement) representing the forward difference statements. + + + + FullModel + + It represents the full model header and its contents is described by the Model class. +md + + + + + + URL + A Uniform Resource Locator (URL), colloquially termed a web address, is a reference to a web resource that specifies its location on a computer network and a mechanism for retrieving it. A URL is a specific type of Uniform Resource Identifier (URI), although many people use the two terms interchangeably.URLs occur most commonly to reference web pages (http), but are also used for file transfer (ftp), email (mailto), database access (JDBC), and many other applications. +Primitive +profcim + + + + + DocDocumentHeaderProfile + + This package contains datatypes used only in the RDFS header. + + + Date + Date as "yyyy-mm-dd", which conforms with ISO 8601. UTC time zone is specified as "yyyy-mm-ddZ". A local timezone relative UTC is specified as "yyyy-mm-dd(+/-)hh:mm". +Primitive + + + + diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/EquipmentReliabilityProfile_v2_2_RDFSv2020_24Mar2023.rdf b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/EquipmentReliabilityProfile_v2_2_RDFSv2020_24Mar2023.rdf new file mode 100644 index 0000000000..cbfdf42c05 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/EquipmentReliabilityProfile_v2_2_RDFSv2020_24Mar2023.rdf @@ -0,0 +1,6773 @@ + + + + + + ER + + vocabulary + + urn:iso:std:iec:61970-600-2:ed-1 + urn:iso:std:iec:61970-301:ed-7:amd1 + file://iec61970cim17v40_iec61968cim13v13a_iec62325cim03v17a.eap + urn:iso:std:iec:61970-401:draft:ed-1 + urn:iso:std:iec:61970-501:draft:ed-2 + file://CGMES-30v25_501-20v01.eap + 2.2.0 + ENTSO-E CIM EG CSA project + This vocabulary is describing the equipment reliability profile. + urn:uuid:5f727c5c-b49f-47be-b750-a00fefb7e806 + en-GB + https://www.apache.org/licenses/LICENSE-2.0 + 2023-03-24 + ENTSO-E + ENTSO-E + Equipment Reliability Vocabulary + + + + + EquipmentReliabilityProfile + + This package contains equipment reliability profile. + + + ACTieCorridor + + A collection of one or more AC tie lines that connect two different control areas. +NC + + + + + + ACTieCorridor + ACTieCorridor that the line is part of. + + + + + Yes + +NC + + + Line + Line that is part of the ACTieCorridor. + + + + + No + +NC + + + ACDCConverter + + A unit with valves for three phases, together with unit control equipment, essential protective and switching devices, DC storage capacitors, phase reactors and auxiliaries, if any, used for conversion. +Description + + + + + + DirectCurrentController + Direct current controller which controls the ACDC converter. + + + + + Yes + +NC + + + ACDCConverter + ACDC converter controlled by the direct current controller. + + + + + No + +NC + + + ACDCTerminal + An electrical connection point (AC or DC) to a piece of conducting equipment. Terminals are connected at physical connection points called connectivity nodes. + + + + + Terminal + The terminal where the operational limit set apply. + + + + + Yes + + + + OperationalLimitSet + The operational limit sets at the terminal. + + + + + No + + + + ACDCTerminal + ACDCTerminal which is connected to a pwoer infeed terminal. + + + + + Yes + +NC + + + PowerInfeedTerminal + Power infeed terminal that is associated with an ACDCTerminal. + + + + + No + +NC + + + ActivePowerControlFunction + + Active power control function is a function block that calculates operating point of the controlled equipment to achieve the target active power. +NC + + + + + + AmbientTemperatureDependencyCurve + + A curve or functional relationship between the ambient temperature independent variable (X-axis) and relative temperature dependent (Y-axis) variables. +NC + + + + + + PermanentAmbientTemperatureDependencyCurve + The permanent ambient temperature dependency curve for this operational limit type. + + + + + Yes + +NC + + + OperationalLimitType + The operational limit type that has this permanent ambient temperature dependency curve. + + + + + No + +NC + + + AreaDispatchableUnit + Allocates a given producing or consuming unit, including direct current corridor and collection of units, to a given control area (through the scheduling area) for supporting the control of the given area through dispatch instruction. +NC + + + + + + + normalEnabled + + + + NC + Identifies if the unit is normally enabled to accept a dispatch instruction. If true, the unit is enabled to accept a dispatch instruction. If false, the unit has the capability, but it is not enabled to receive a dispatch instruction. + + + + Boolean + A type with the value space "true" and "false". +Primitive + + + + + PowerElectronicsUnit + The power electronics unit that belongs to this area dispatchable unit. + + + + + Yes + +NC + + + AreaDispatchableUnit + The area dispatchable unit for this power electronics unit. + + + + + + No + +NC + + + ScheduleResource + The resource which is mFRR for the EnergySchedulingArea to which the AreaDispatchableUnit is connected. Note that this can be different than the area for the energy schedule. + + + + + Yes + +NC + + + AreaDispatchableUnit + The dispatchable unit for this scheduled resource. + + + + + + No + +NC + + + SchedulingArea + The scheduling area that has this area dispatchable unit. + + + + + Yes + +NC + + + AreaDispatchableUnit + The area dispatchable unit related to a scheduling area. + + + + + No + +NC + + + GeneratingUnit + The generating unit that belongs to area dispatchable unit. + + + + + Yes + +NC + + + AreaDispatchableUnit + The area dispatchable unit for this generating unit. + + + + + + No + +NC + + + AreaDispatchableUnit + AreaDispatchableUnit for the Tie Corridor. + + + + + No + +NC + + + TieCorridor + Tie Corridor which belongs to the Area Dispatchable Unit. + + + + + Yes + +NC + + + EnergyConsumer + Energy consumer for this area dispatchable unit. + + + + + Yes + + + + AreaDispatchableUnit + Area dispatchable unit that has this energy consumer. + + + + + No + + + + HydroPump + Hydro Pump which is associated with the area dispatchable unit. + + + + + Yes + +NC + + + AreaDispatchableUnit + Area dispatchable unit associated with a Hydro Pump. + + + + + No + +NC + + + AutomationFunction + + Automation function is a collection of functional block or other automation function that can be executed as a work cycle program as part of an automated system. +NC + + + + + + type + + + + NC + Type of automation function. + + + + String + A string consisting of a sequence of characters. The character encoding is UTF-8. The string length is unspecified and unlimited. +Primitive + + + + + FunctionBlock + Function block is part of this automation function. + + + + + No + +NC + + + AutomationFunction + Automation function describe automation that this function block is part of. + + + + + Yes + +NC + + + HasPart + Automation function has this automation function as a part. + + + + + No + +NC + + + PartOf + Automation function is part of this automation function. + + + + + Yes + +NC + + + BaseOverloadLimitCurve + + A curve or functional relationship between +- the relative loading - current loading over permanent loading (PATL) independent variable (X-axis), and +- temporary overloading (TATL) limiting dependent (Y-axis) variables. +NC + + + + + + TemporaryBaseOverloadLimitCurve + The temporary base overload limit curve for this operational limit type. + + + + + Yes + +NC + + + OperationalLimitType + The operational limit type that has this temporary base overload limit curve. + + + + + No + +NC + + + BiddingZone + + A bidding zone is a market-based method for handling power transmission congestion. It consists of scheduling areas that include the relevant production (supply) and consumption (demand) to form an electrical area with the same market price without capacity allocation. +NC + + + + + + + isTradeEnabled + + + + NC + Identifies the mechanism for determining the energy price for a given bidding zone. If true, the bid and the offer is expected to be provided for the bidding zone to create the market price. If false, other mechanism determines the price of energy for a given bidding zone, e.g. virtual bidding zone. + + + + BiddingZoneBorderTwo + The secondary side of the border. + + + + + No + +NC + + + BiddingZoneTwo + The bidding zone for the secondary side. + + + + + Yes + +NC + + + CapacityCalculationRegion + The capacity calculation region related to this bidding zone. + + + + + Yes + +NC + + + BiddingZone + The bidding zone for this capacity calculation region. + + + + + No + +NC + + + SchedulingArea + The scheduling area that has bidding zone. + + + + + No + +NC + + + BiddingZone + The bidding zone related to this scheduling area. + + + + + Yes + +NC + + + BiddingZoneBorderOne + The primary side of the border. + + + + + No + +NC + + + BiddingZoneOne + The bidding zone for the primary side. + + + + + Yes + +NC + + + BiddingZoneBorder + + Defines the aggregated connection capacity between two Bidding Zones. +NC + + + + + + BiddingZoneBorder + The bidding zone border on which the capacity is calculated. + + + + + No + +NC + + + CapacityCalculationRegion + The capacity calculation region for which the capacity is derived from. + + + + + Yes + +NC + + + TieCorridor + Tie corridor for a given bidding zone border. + + + + + No + +NC + + + BiddingZoneBorder + Bidding zone border in which the tie corridor is located. + + + + + Yes + +NC + + + CapacityCalculationRegion + + Capacity calculation region is a coherent part of the interconnected system that is used for calculating the transmission capacity for a bidding zone or between bidding zones. +NC + + + + + + CapacityCalculationRegion + The capacity calculation region operated by this security coordinator. + + + + + No + +NC + + + SecurityCoordinator + The security coordinator responsible for the capacity calculation region. + + + + + Yes + +NC + + + ChargingUnit + + A unit that supplies electrical power for charging electrical non-stationary entities, e.g. electrical vehicle, trucks, buses, ferries, boats and airplanes. The characteristic is that the energy consumption is highly schedule dependent. +NC + + + + + + Circuit + + A circuit is a collection of equipment in a network graph that provide common stability limits. The relevant equipment is in general given by the identifying terminal. A software application that can do topology processing shall calculate the equipment belonging to the circuit, if there are no stability limits associated to it. In case of stability limits, the containment reflects the equipments that were used in the calculation/analysis. +NC + + + + + Circuit + The circuit that containts its member equipment. + + + + + Yes + +NC + + + Equipment + The equipment which is part of the circuit. This includes all equipment related to the circuit (e.g. If the circuit is a transformer, the equipment could be all switching and auxiliary equipments related to the transformer). A BusbarSection shall not be part of the circuit. + + + + + No + +NC + + + Circuit + The circuit that has a share of the power system corridor. + + + + + Yes + +NC + + + CircuitShare + The circuit share of the given power transfer corridor. + + + + + No + +NC + + + CircuitShare + + Defines the share of the circuit which is part of an associated power transfer corridor. +NC + + + + + + + normalContributionFactor + + + + NC + Normal contribution factor for the circuit which is part of a power transfer corridor. +The allowed value range is [0,100]. + + + + PerCent + Percentage on a defined base. For example, specify as 100 to indicate at the defined base. +CIMDatatype + + + + + + value + + + + Normally 0 to 100 on a defined base. + + + + Float + A floating point number. The range is unspecified and not limited. +Primitive + + + + + + unit + + + + none + + + + UnitSymbol + The derived units defined for usage in the CIM. In some cases, the derived unit is equal to an SI unit. Whenever possible, the standard derived symbol is used instead of the formula for the derived unit. For example, the unit symbol Farad is defined as "F" instead of "CPerV". In cases where a standard symbol does not exist for a derived unit, the formula for the unit is used as the unit symbol. For example, density does not have a standard symbol and so it is represented as "kgPerm3". With the exception of the "kg", which is an SI unit, the unit symbols do not contain multipliers and therefore represent the base derived unit to which a multiplier can be applied as a whole. +Every unit symbol is treated as an unparseable text as if it were a single-letter symbol. The meaning of each unit symbol is defined by the accompanying descriptive text and not by the text contents of the unit symbol. +To allow the widest possible range of serializations without requiring special character handling, several substitutions are made which deviate from the format described in IEC 80000-1. The division symbol "/" is replaced by the letters "Per". Exponents are written in plain text after the unit as "m3" instead of being formatted as "m" with a superscript of 3 or introducing a symbol as in "m^3". The degree symbol "°" is replaced with the letters "deg". Any clarification of the meaning for a substitution is included in the description for the unit symbol. +Non-SI units are included in list of unit symbols to allow sources of data to be correctly labelled with their non-SI units (for example, a GPS sensor that is reporting numbers that represent feet instead of meters). This allows software to use the unit symbol information correctly convert and scale the raw data of those sources into SI-based units. +The integer values are used for harmonization with IEC 61850. + + + + + + none + Dimension less quantity, e.g. count, per unit, etc. + enum + + + + s + Time in seconds. + enum + + + + A + Current in amperes. + enum + + + + deg + Plane angle in degrees. + enum + + + + degC + Relative temperature in degrees Celsius. +In the SI unit system the symbol is °C. Electric charge is measured in coulomb that has the unit symbol C. To distinguish degree Celsius from coulomb the symbol used in the UML is degC. The reason for not using °C is that the special character ° is difficult to manage in software. + enum + + + + V + Electric potential in volts (W/A). + enum + + + + ohm + Electric resistance in ohms (V/A). + enum + + + + Hz + Frequency in hertz (1/s). + enum + + + + W + Real power in watts (J/s). Electrical power may have real and reactive components. The real portion of electrical power (I&#178;R or VIcos(phi)), is expressed in Watts. See also apparent power and reactive power. + enum + + + + Pa + Pressure in pascals (N/m²). Note: the absolute or relative measurement of pressure is implied with this entry. See below for more explicit forms. + enum + + + + WPerm2 + Heat flux density, irradiance, watts per square metre. + enum + + + + WPers + Ramp rate in watts per second. + enum + + + + VPerVAr + Power factor, PF, the ratio of the active power to the apparent power. Note: The sign convention used for power factor will differ between IEC meters and EEI (ANSI) meters. It is assumed that the data consumers understand the type of meter being used and agree on the sign convention in use at any given utility. + enum + + + + + multiplier + + + + none + + + + UnitMultiplier + The unit multipliers defined for the CIM. When applied to unit symbols, the unit symbol is treated as a derived unit. Regardless of the contents of the unit symbol text, the unit symbol shall be treated as if it were a single-character unit symbol. Unit symbols should not contain multipliers, and it should be left to the multiplier to define the multiple for an entire data type. + +For example, if a unit symbol is "m2Pers" and the multiplier is "k", then the value is k(m**2/s), and the multiplier applies to the entire final value, not to any individual part of the value. This can be conceptualized by substituting a derived unit symbol for the unit type. If one imagines that the symbol "Þ" represents the derived unit "m2Pers", then applying the multiplier "k" can be conceptualized simply as "kÞ". + +For example, the SI unit for mass is "kg" and not "g". If the unit symbol is defined as "kg", then the multiplier is applied to "kg" as a whole and does not replace the "k" in front of the "g". In this case, the multiplier of "m" would be used with the unit symbol of "kg" to represent one gram. As a text string, this violates the instructions in IEC 80000-1. However, because the unit symbol in CIM is treated as a derived unit instead of as an SI unit, it makes more sense to conceptualize the "kg" as if it were replaced by one of the proposed replacements for the SI mass symbol. If one imagines that the "kg" were replaced by a symbol "Þ", then it is easier to conceptualize the multiplier "m" as creating the proper unit "mÞ", and not the forbidden unit "mkg". + + + + + + none + No multiplier or equivalently multiply by 1. + enum + + + + k + Kilo 10**3. + enum + + + + M + Mega 10**6. + enum + + + + CircuitShare + The circuit share for this power transfer corridor. + + + + + No + +NC + + + PowerTransferCorridor + The power transfer corridor that has this circuit share. + + + + + Yes + +NC + + + ClosedDistributionSystemOperator + + A system operator which distributes electricity (or gas) within a geographically confined industrial, commercial or shared services and does not supply household customers. +NC + + + + + + CompensatorController + + Compensator controller is controlling the equipment to optimize the use of the compensators. +NC + + + + + + ConductingEquipment + + The parts of the AC power system that are designed to carry current or that are conductively connected through terminals. + + + + + ConnectivityNodeContainer + + A base class for all objects that may contain connectivity nodes or topological nodes. + + + + + ControlArea + + A control area is a grouping of generating units and/or loads and a cutset of tie lines (as terminals) which may be used for a variety of purposes including automatic generation control, power flow solution area interchange control specification, and input to load forecasting. All generation and load within the area defined by the terminals on the border are considered in the area interchange control. Note that any number of overlapping control area specifications can be superimposed on the physical model. The following general principles apply to ControlArea: +1. The control area orientation for net interchange is positive for an import, negative for an export. +2. The control area net interchange is determined by summing flows in Terminals. The Terminals are identified by creating a set of TieFlow objects associated with a ControlArea object. Each TieFlow object identifies one Terminal. +3. In a single network model, a tie between two control areas must be modelled in both control area specifications, such that the two representations of the tie flow sum to zero. +4. The normal orientation of Terminal flow is positive for flow into the conducting equipment that owns the Terminal. (i.e. flow from a bus into a device is positive.) However, the orientation of each flow in the control area specification must align with the control area convention, i.e. import is positive. If the orientation of the Terminal flow referenced by a TieFlow is positive into the control area, then this is confirmed by setting TieFlow.positiveFlowIn flag TRUE. If not, the orientation must be reversed by setting the TieFlow.positiveFlowIn flag FALSE. +Description + + + + + + SchedulingArea + The scheduling area related to a control area. + + + + + No + +NC + + + ControlArea + The control area for this scheduling area. + + + + + Yes + +NC + + + SystemOperator + The system operator that operates this control area. + + + + + Yes + +NC + + + ControlArea + The control area that is related to this system operator. + + + + + No + +NC + + + OutageCoordinationRegion + The outage coordination region that has this control area. + + + + + Yes + +NC + + + ControlArea + The control area that is part of this outage coordination region. + + + + + No + +NC + + + ControlFunctionBlock + + Control function block is a function block that contains an algorithm for controlling the equipment. +NC + + + + + + isDiscrete + + + + NC + True, if the control function is discrete. This applies to equipment with discrete controls, e.g. tap changers and shunt compensators. + + + + + targetDeadband + + + + NC + Target deadband is used with discrete control to avoid excessive update of controls like tap changers and shunt compensator banks while regulating. The attribute shall be a positive value or zero. If isDiscrete is set to "false", the targetDeadband is to be ignored. +Note that for instance, if the targetValue is 100 kV and the targetDeadband is 2 kV the range is from 99 to 101 kV. + + + + + maxAllowedTargetValue + + + + NC + Maximum allowed target value given by the percent of target value. +The allowed value range is [0,100]. + + + + + minAllowedTargetValue + + + + NC + Minimum allowed target value given by the percent of target value. +The allowed value range is [0,100]. + + + + CurrentControlFunction + + Current control function is a function block that calculates the operating point of the controlled equipment to achieve the target current. +NC + + + + + + CurrentDroopControlFunction + + Current droop control function is a function block that calculates the operating point of the controlled equipment to achieve the target current. +NC + + + + + + + offsetInductive + + + + NC + Offset in capacitive region. + + + + CurrentFlow + Electrical current with sign convention: positive flow is out of the conducting equipment into the connectivity node. Can be both AC and DC. +CIMDatatype + + + + + + multiplier + + + + none + + + + + unit + + + + A + + + + + value + + + + + + + + droopInductive + + + + NC + Droop in inductive region. The unit is V/A. + + + + + offsetCapacitive + + + + NC + Offset in capacitive region. + + + + + droopCapacitive + + + + NC + Droop in capacitive region. The unit is V/A. + + + + CurrentDroopOverride + Current droop override uses the following logic: +- When the current exceeds a threshold the device executes the following transitions: 1) When injecting an inductive voltage or in monitoring mode the device tends to inject a voltage proportional to the difference between the line current and the aforementioned threshold. 2) When injecting a capacitive voltage the device transitions to monitoring mode. +- If the aforementioned proportional voltage is lower than the initial one, the voltage injection remains unchanged. +Current droop override is not applied when the device operates in currentDroop mode. +NC + + + + + + + offsetInductive + + + + NC + Offset in capacitive region. + + + + + droopInductive + + + + NC + Droop in inductive region. The unit is V/A. + + + + + mRID + + + + NC + Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. +For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements. + + + + + offsetCapacitive + + + + NC + Offset in capacitive region. + + + + + droopCapacitive + + + + NC + Droop in capacitive region. The unit is V/A. + + + + SSSCController + The SSSC controller to which this CurrentDroopOverride applies to. + + + + + Yes + +NC + + + CurrentDroopOverride + The current droop override for this SSSC controller. It is not used when the SSSC controller is in mode currentDroop. + + + + + No + +NC + + + Curve + + A multi-purpose curve or functional relationship between an independent variable (X-axis) and dependent (Y-axis) variables. + + + + + + curveStyle + + + + The style or shape of the curve. + + + + CurveStyle + Style or shape of curve. + + + + + + constantYValue + The Y-axis values are assumed constant until the next curve point and prior to the first curve point. + enum + + + + straightLineYValues + The Y-axis values are assumed to be a straight line between values. Also known as linear interpolation. + enum + + + + + xMultiplier + + + + Multiplier for X-axis. + + + + + xUnit + + + + The X-axis units of measure. + + + + + y1Multiplier + + + + Multiplier for Y1-axis. + + + + + y1Unit + + + + The Y1-axis units of measure. + + + + + y2Multiplier + + + + Multiplier for Y2-axis. + + + + + y2Unit + + + + The Y2-axis units of measure. + + + + Curve + The curve of this curve data point. + + + + + Yes + + + + CurveDatas + The point data values that define this curve. + + + + + No + + + + CurveData + Multi-purpose data points for defining a curve. The use of this generic class is discouraged if a more specific class can be used to specify the X and Y axis values along with their specific data types. + + + + + + + xvalue + + + + The data value of the X-axis variable, depending on the X-axis units. + + + + + y1value + + + + The data value of the first Y-axis variable, depending on the Y-axis units. + + + + + y2value + + + + The data value of the second Y-axis variable (if present), depending on the Y-axis units. + + + + DCBreaker + + A breaker within a DC system. +Description + + + + + + DCBusbar + + A busbar within a DC system. +Description + + + + + + DCChopper + + Low resistance equipment used in the internal DC circuit to balance voltages. It has typically positive and negative pole terminals and a ground. +Description + + + + + + DCConductingEquipment + + The parts of the DC power system that are designed to carry current or that are conductively connected through DC terminals. + + + + + + ratedCurrent + + + + The maximum continuous current carrying capacity in amps governed by the device material and construction. +The attribute shall be a positive value. + + + + DCConverterUnit + + Indivisible operative unit comprising all equipment between the point of common coupling on the AC side and the point of common coupling – DC side, essentially one or more converters, together with one or more converter transformers, converter control equipment, essential protective and switching devices and auxiliaries, if any, used for conversion. +Description + + + + + + DCConverterUnit + The DC converter unit that relates to this DC pole. + + + + + No + +NC + + + DCPole + The DC pole that has this DC converter unit. + + + + + Yes + +NC + + + DCConverterUnit + The DC converter unit belonging of the substation. + + + + + No + + + + Substation + The containing substation of the DC converter unit. + + + + + Yes + + + + DCCurrentControlFunction + + DC current control function is a function block that calculates the operating point of the controlled equipment to achieve the target current. +NC + + + + + + + droop + + + + NC + Droop constant. The pu value is obtained as D [kV/MW] x Sb / Ubdc. The attribute shall be a positive value. + + + + PU + Per Unit - a positive or negative value referred to a defined base. Values typically range from -10 to +10. +CIMDatatype + + + + + + value + + + + + + + + unit + + + + none + + + + + multiplier + + + + none + + + + + droopCompensation + + + + NC + Compensation constant. Used to compensate for voltage drop when controlling voltage at a distant bus. The attribute shall be a positive value. + + + + Resistance + Resistance (real part of impedance). +CIMDatatype + + + + + + value + + + + + + + + unit + + + + ohm + + + + + multiplier + + + + none + + + + DCDisconnector + + A disconnector within a DC system. +Description + + + + + + DCEquipmentContainer + + A modelling construct to provide a root class for containment of DC as well as AC equipment. The class differ from the EquipmentContaner for AC in that it may also contain DCNode-s. Hence it can contain both AC and DC equipment. + + + + + DCGround + + A ground within a DC system. +Description + + + + + + DCLine + Overhead lines and/or cables connecting two or more HVDC substations. + + + + + DCPole + The DC pole that has this DC line. + + + + + No + +NC + + + DCLine + The DC line that is related to this DC pole. + + + + + Yes + +NC + + + DCLineSegment + + A wire or combination of wires not insulated from one another, with consistent electrical characteristics, used to carry direct current between points in the DC region of the power system. +Description + + + + + + DCPole + + The direct current (DC) pole is the circuit which includes converter units from both sides and the relevant direct current line. This forms the smallest unit of transmission control. +NC + + + + + + + participationFactor + + + + NC + Participation factor describing the entity part of the active power provided by a collection of entities (e.g. an active power forecast to a collection of entities is divided to each of the member entity according to the participation factor). Must be a positive value. +In the case of a sharing strategy, the distribution is following entities value (V) equals aggregated value (T) divided by sum of participation factors (PF), i.e. V=T/sum(PF). +In the case of priority strategy, the item with the lowest number gets allocated energy first. + + + + DCTieCorridor + The DCTieCorridor that has this DC pole. + + + + + Yes + +NC + + + DCPole + The DCPole which is part of the DC link/corridor. + + + + + No + +NC + + + DCSeriesDevice + + A series device within the DC system, typically a reactor used for filtering or smoothing. Needed for transient and short circuit studies. +Description + + + + + + DCShunt + + A shunt device within the DC system, typically used for filtering. Needed for transient and short circuit studies. +Description + + + + + + DCSwitch + + A switch within the DC system. +Description + + + + + + DCTieCorridor + + A collection of one or more direct current poles that connect two different control areas. +NC + + + + + + + maxRegulatingReserve + + + + NC + Maximum regulating reserve. + + + + ActivePower + Product of RMS value of the voltage and the RMS value of the in-phase component of the current. +CIMDatatype + + + + + + multiplier + + + + M + + + + + unit + + + + W + + + + + value + + + + + + + + minRegulatingReserve + + + + NC + Minimum regulating reserve. + + + + + rampingKind + + + + NC + Ramping principle is used to define a transition from one scheduled value to next one. + + + + RampingPrincipleKind + Kind of ramping principle. + + +NC + + + + fiveMinutes + Five minutes ramping principle. Ramping starts five minutes before the schedule time point and ends five minutes after. For instance, if the schedule time point is 19:30h it starts at 19:25h and ends at 19:35h. + enum + + + + fifteenMinutes + Fifteen minutes ramping principle. Ramping starts 15 minutes before the schedule time point and ends 15 minutes after. For instance, if the schedule time point is 19:30h it starts at 19:15h and ends at 19:45h. + enum + + + + continuous + Continuous ramping principle is applied between two scheduled time point. For instance, from 10 MW to 70 MW over one hour the change is 1 MW/min. + enum + + + + tenMinutes + Ten minutes ramping principle. Ramping starts 10 minutes before the schedule time point and ends 10 minutes after. For instance, if the schedule time point is 19:30h it starts at 19:20h and ends at 19:40h. + enum + + + + maxContinuous + Maximum continuous ramping principle. The schedule is kept as long as possible and the maximum ramping rate is used to get from one point to another, symmetrically around the schedule time points. For example, there is 40 MW change in the schedule the maximum ramp rate is 20 MW/min the ramping starts 1 min before (e.g. 19:29h) and finishes 1 min after (e.g. 19:31h). + enum + + + + DCTieCorridor + DCTieCorridor controlled by this direct current controller. + + + + + No + +NC + + + DirectCurrentController + Direct current controller for this DCTieCorridor. + + + + + Yes + +NC + + + SchedulingArea + The scheduling area that has this DC tie corridor. + + + + + Yes + +NC + + + DCTieCorridor + The DC tie corridor that is part of this scheduling area. + + + + + No + +NC + + + DCVoltageControlFunction + + DC voltage control function is a function block that calculate the operating point of the controlled equipment to achieve the target voltage. +NC + + + + + + DirectCurrentCircuit + + A direct current circuit is a circuit consists of direct current equipment. +NC + + + + + + DirectCurrentController + + Power flow controller for direct current that can be used in high-voltage direct current grids and for low-voltage direct current microgrids. It uses a high-frequency isolated dc-dc converter cascaded with a controllable full-bridge inverter that creates a small bipolar voltage in series with the line. The controller can control the power and compensate for accumulated voltage drop in a distribution line. +NC + + + + + + DirectCurrentSystemOperator + + System operator of the direct current pole. There are typically one or two system operators that are operating either the control area at one side or the control areas at both sides of the direct current pole. In some cases it is operated by an operator from the connected control areas. +NC + + + + + + DistributionSystemOperator + + A system operator that is responsible for operating of energy distribution network from transmission level down to low voltage levels including the connection to household. +NC + + + + + + DurationOverloadLimitCurve + + A curve or functional relationship between +- the overload duration independent variable (X-axis), and +- temporary overloading (TATL) limiting dependent (Y-axis) variables. +NC + + + + + + TemporaryDurationOverloadLimitCurve + The temporary duration overload limit curve for this operational limit type. + + + + + Yes + +NC + + + OperationalLimitType + The operational limit type that has this temporary duration overload limit curve. + + + + + No + +NC + + + EnergyAlignmentCoordinator + + A role that is responsible for alignment of forecast and schedule energy to a given energy coordination region. +NC + + + + + + EnergyCoordinationRegion + The energy coordination region that has this energy alignment coordinator. + + + + + No + +NC + + + EnergyAlignmentCoordinator + The energy alignment coordinator that operates this energy coordination region. + + + + + Yes + +NC + + + EnergyBlockComponent + + The energy block component is an energy component where the energy group active power is distributed according to the energy block order of each energy component in an energy group. +NC + + + + + + EnergyBlockComponent + The energy block component that has this energy block order. + + + + + Yes + +NC + + + EnergyBlockOrder + The energy block order for this energy block component. + + + + + No + +NC + + + EnergyBlockOrder + + The energy block order is a block (an amount) of active power that forms the sequence of active power orders that are going to be distributed to an energy block component. +NC + + + + + + + sequence + + + + NC + The sequence order for a given block dispatch instruction. The sequence number need to be unique for a given block dispatch instruction, e.g. two order in the same instruction cannot have the same sequence. + + + + Integer + An integer number. The range is unspecified and not limited. +Primitive + + + + + + longPF + + + + NC + Block order long term economic participation factor. + + + + + shortPF + + + + NC + Block order short term economic participation factor. + + + + EnergyComponent + + The energy component is an active power component for an energy producer or a consumer that has the same energy characteristic, e.g. fuel type and technology. +NC + + + + + EnergyComponent + The energy component that is part of this energy group. + + + + + No + +NC + + + EnergyGroup + The energy group that has this energy component. + + + + + Yes + +NC + + + EnergyComponent + The energy component that has this hydro pump. + + + + + No + +NC + + + HydroPump + The hydro pump that relates to this energy component. + + + + + Yes + +NC + + + EnergyComponent + The energy component that has this generating unit. + + + + + No + +NC + + + GeneratingUnit + The generating unit that is part of this energy component. + + + + + Yes + +NC + + + EnergyComponent + The energy component that has this energy consumer. + + + + + No + +NC + + + EnergyConsumer + The energy consumer that relates to this energy component. + + + + + Yes + +NC + + + EnergyComponent + The energy component that has this power electronics unit. + + + + + No + +NC + + + PowerElectronicsUnit + The power electronics unit that relates to this energy component. + + + + + Yes + +NC + + + EnergyConnection + + A connection of energy generation or consumption on the power system model. + + + + + EnergyConsumer + + Generic user of energy - a point of consumption on the power system model. +EnergyConsumer.pfixed, .qfixed, .pfixedPct and .qfixedPct have meaning only if there is no LoadResponseCharacteristic associated with EnergyConsumer or if LoadResponseCharacteristic.exponentModel is set to False. +Description + + + + + + + longPF + + + + NC + Energy consumer long term economic participation factor. + + + + + maxEconomicP + + + + NC + Maximum high economic active power limit, that should not exceed the maximum operating active power limit. + + + + + minEconomicP + + + + NC + Low economic active power limit that shall be greater than or equal to the minimum operating active power limit. + + + + + shortPF + + + + NC + Energy consumer short term economic participation factor. + + + + EnergyCoordinationRegion + + A region that has a common organisation or a service that is responsible for alignment of forecast and scheduling of energy. +NC + + + + + + EnergyCoordinationRegion + The energy coordination region that has this scheduling area. + + + + + Yes + +NC + + + SchedulingArea + The scheduling area that is part of this energy coordination region. + + + + + No + +NC + + + EnergyGroup + + An energy group is an aggregation of energy components which have the same energy characteristic, e.g. fuel type and technology. It can be used to allocate energy. +NC + + + + + + + longPF + + + + NC + Energy group long term economic participation factor. + + + + + shortPF + + + + NC + Energy group short term economic participation factor. + + + + SchedulingArea + The scheduling area that has this energy group. + + + + + Yes + +NC + + + EnergyGroup + The energy group belonging to a given energy scheduling area. + + + + + No + +NC + + + EnergyType + The energy type that the energy group are defined by. + + + + + Yes + +NC + + + EnergyGroup + The energy group that has this energy type. + + + + + No + +NC + + + EnergyTypeReference + An energy type reference refers to an energy characteristic that is needed for reporting, e.g. European Energy Certificate System (EECS). The kind of energy should be possible to be linked with different type of energy forecast, e.g. wind production for a given area based on wind forecast. +NC + + + + + GeneratingUnit + Generating unit that has an energy reference type. + + + + + No + + + + PrimaryEnergySource + Primary energy reference type for this generating unit. + + + + + Yes + + + + PowerElectronicsUnit + Power electronics unit that has primary energy source. + + + + + No + + + + PrimaryEnergySource + Primary energy source for this power electronics unit. + + + + + Yes + + + + Equipment + + The parts of a power system that are physical devices, electronic or mechanical. +Description + + + + + + Equipment + The equipment which is part of power transfer corridor triggering. + + + + + Yes + +NC + + + PTCTriggeredEquipment + The equipment that can trigger the power transfer corridor. + + + + + No + +NC + + + AggregatedEquipment + An aggregated representation of the detailed equipment. + + + + + Yes + +NC + + + DetailedEquipment + A detailed representation of the aggregated equipment. + + + + + No + +NC + + + EquipmentContainer + + A modelling construct to provide a root class for containing equipment. + + + + + EquipmentController + + Equipment controller is an automation function that can control one or multiple equipment function to achieve all the targets inside the given tolerance. +NC + + + + + EquipmentController + The equipment controller for this regulating conducting equipment. + + + + + Yes + +NC + + + RegulatingCondEq + All regulating conducting equipment that belongs to this equipment controller. + + + + + No + +NC + + + EquivalentInjection + This class represents equivalent injections (generation or load). Voltage regulation is allowed only at the point of connection. +Description + + + + + + ReactiveCapabilityCurve2 + The reactive capability curve used by this equivalent injection. + + + + + No + +NC + + + EquivalentInjection2 + The equivalent injection using this reactive capability curve. + + + + + Yes + +NC + + + EquivalentInjection + Equivalent injection controlled by the injection controller. + + + + + No + +NC + + + InjectionController + Injection controller which controls the equivalent injection. + + + + + Yes + +NC + + + ExceptionalPowerTransferCorridor + + Potential power transfer corridor that can be triggered by equipment which changes its in service status or it is operating in an island. +NC + + + + + + ExceptionalPowerTransferCorridor + The power transfer corridor which is triggered by this equipment. + + + + + Yes + +NC + + + PTCTriggeredEquipment + The equipment that triggers this exceptional power transfer corridor. + + + + + No + +NC + + + FacilityPlantController + + Facility plant controller is controlling the equipment to optimize the facility plant. +NC + + + + + + FACTSEquipment + + Flexible Alternating Current Transmission System regulating equipment. +NC + + + + + + capacitiveRating + + + + NC + Capacitive reactance at maximum reactive power. Shall always be positive. + + + + Reactance + Reactance (imaginary part of impedance), at rated frequency. +CIMDatatype + + + + + + value + + + + + + + + unit + + + + ohm + + + + + multiplier + + + + none + + + + + inductiveRating + + + + NC + Inductive rating at maximum inductive reactive power. Shall always be negative. + + + + + slope + + + + NC + The characteristics slope which defines how the reactive power output changes in proportion to the difference between the regulated bus voltage and the voltage setpoint. +The attribute shall be a positive value or zero. + + + + VoltagePerReactivePower + Voltage variation with reactive power. +CIMDatatype + + + + + + multiplier + + + + k + + + + + unit + + + + VPerVAr + + + + + value + + + + + + + FACTSEquipment + The FACTS equipment which has a loss curve. + + + + + Yes + +NC + + + LossCurve + The loss curve for the FACTS equipment. + + + + + No + +NC + + + Feeder + + A collection of equipment for organizational purposes, used for grouping distribution resources. +The organization a feeder does not necessarily reflect connectivity or current operation state. + + + + + + NormalEnergizedFeeder + The normal energized feeders of the substation. Also used for naming purposes. + + + + + No + + + + NormalEnergizingSubstation + The substation that nominally energizes the feeder. Also used for naming purposes. + + + + + Yes + + + + NamingFeeder + The primary feeder that normally energizes the secondary substation. Used for naming purposes. Either this association or the substation to subgeographical region should be used for hierarchical containment specification. + + + + + No + + + + NamingSecondarySubstation + The secondary substations that are normally energized from the feeder. Used for naming purposes. Should be consistent with the other associations for energizing terminal specification and the feeder energization specification. + + + + + Yes + + + + Feeder + The feeder that is part of this subscheduling area. + + + + + No + +NC + + + SubSchedulingArea + The subscheduling area that has this feeder. + + + + + Yes + +NC + + + NormalEnergizingFeeder + The feeders that potentially energize the downstream substation. Should be consistent with the associations that describe the naming hierarchy. + + + + + No + + + + NormalEnergizedSubstation + The substations that are normally energized by the feeder. + + + + + Yes + + + + FlexibleEnergyUnit + + Flexible consumer or embedded producer of energy. The unit cannot be a net producer. +NC + + + + + + + uncontrollable + + + + NC + The active power, that forms the base consumption for the unit. This is measured and expected consumption. Load sign convention is used, i.e. positive sign means flow out from a node. + + + + + timeShift + + + + NC + The active power, that can be shifted from one pricing interval (market time unit) to another. It is expected to be a limited on the length of the shift. Example from household could be washing machine or dishwasher. Example from industry is the possible to shut down a machine for the relevant period. Load sign convention is used, i.e. positive sign means flow out from a node. + + + + + buffer + + + + NC + The active power, that has the flexibility to operate as production and/or consumption. The buffer is bound. Example are heat pump, cooling system, embedded batteries including electric vehicle. Load sign convention is used, i.e. positive sign means flow out from a node. + + + + + unconstrained + + + + NC + The active power, that has the flexibility to operate as production without any bound by a buffer. Example are alternative heating (wood, gas, diesel etc) or power generators. Load sign convention is used, i.e. positive sign means flow out from a node. + + + + FossilFuel + The fossil fuel consumed by the non-nuclear thermal generating unit. For example, coal, oil, gas, etc. These are the specific fuels that the generating unit can consume. +Description + + + + + + FossilFuel + Fossil fuel stored in a fuel storage. + + + + + No + +NC + + + FuelStorage + Fuel storage that store fossil fuels. + + + + + Yes + +NC + + + FuelStorage + + Fuel storage. e.g. pile of coal that can be shared between multiple thermal generating units. +NC + + + + + + FunctionBlock + + Function block is a function described as a set of elementary blocks. The blocks describe the function between input variables and output variables. +NC + + + + + + priority + + + + NC + Value 0 means ignore priority. 1 means the highest priority, 2 is the second highest priority. + + + + FunctionBlack + Function block describe the function that function output variable provides the codomain for. + + + + + Yes + +NC + + + FunctionOutputVariable + Function output variable describe the output or codomain to the function block. + + + + + + No + +NC + + + Function + Function block describe the function that function input variable provides the domain for. + + + + + Yes + +NC + + + Input + Function input variable describe the input or domain to the function block. + + + + + + No + +NC + + + FunctionInputVariable + + Functional input variable defines the domain of the function. +NC + + + + + FunctionOutputVariable + + Functional output variable defines the codomain of the function. +NC + + + + + + FunctionOutputVariable + Function output variable is the function output this property reference is used in. + + + + + No + +NC + + + PropertyReference + Property reference refers to a given class and property that is populated by the function output variable. + + + + + Yes + +NC + + + GateInputPin + + Input pin for a logical gate. The condition described in the input pin gives a logical true or false. The result from measurement and calculation are converted to a true or false. +NC + + + + + + + absoluteValue + + + + NC + Indicates if the absolute value is used for comparison. If true, use the absolute value. If false, use the complex value (vector). + + + + + logicKind + + + + NC + The logical operator kind used for comparison. + + + + LogicalOperatorsKind + Kinds of logical operators for comparison. + + +NC + + + + notEqual + Not equal (unlike) comparison operation. + enum + + + + equals + Equals (like) comparison operation. + enum + + + + lessThanOrEquals + Less than or equals comparison operation. + enum + + + + lessThan + Less than comparison operation. + enum + + + + greaterThanOrEquals + Greater than or equals comparison operation. + enum + + + + greaterThan + Greater than comparison operation. + enum + + + + + duration + + + + NC + The time duration for which the condition is satisfied before acting. Default is 0 seconds. + + + + Duration + Duration as "PnYnMnDTnHnMnS" which conforms to ISO 8601, where nY expresses a number of years, nM a number of months, nD a number of days. The letter T separates the date expression from the time expression and, after it, nH identifies a number of hours, nM a number of minutes and nS a number of seconds. The number of seconds could be expressed as a decimal number, but all other numbers are integers. +Primitive + + + + + + negate + + + + NC + Invert/negate the result of the comparison. + + + + + thresholdPercentage + + + + NC + The threshold percentage that should be used for compare with the percentage change between input value and threshold value. +The allowed value range is [0,100]. + + + + + thresholdValue + + + + NC + The threshold value that should be used for compare with the input value. + + + + GeneratingUnit + + A single or set of synchronous machines for converting mechanical power into alternating-current power. For example, individual machines within a set may be defined for scheduling purposes while a single control signal is derived for the set. In this case there would be a GeneratingUnit for each member of the set and an additional GeneratingUnit corresponding to the set. +Description + + + + + + + shutdownTime + + + + NC + Time it takes to shutdown the unit. + + + + Seconds + Time, in seconds. +CIMDatatype + + + + + + value + + + + Time, in seconds + + + + + unit + + + + s + + + + + multiplier + + + + none + + + + + shutdownCost + + + + NC + The shutdown cost incurred for each shutdown of the GeneratingUnit. + + + + Money + Amount of money. +CIMDatatype + + + + + + multiplier + + + + none + + + + + unit + + + + + + + Currency + Monetary currencies. ISO 4217 standard including 3-character currency code. + + + + + + AED + United Arab Emirates dirham. + enum + + + + AFN + Afghan afghani. + enum + + + + ALL + Albanian lek. + enum + + + + AMD + Armenian dram. + enum + + + + ANG + Netherlands Antillean guilder. + enum + + + + AOA + Angolan kwanza. + enum + + + + ARS + Argentine peso. + enum + + + + AUD + Australian dollar. + enum + + + + AWG + Aruban florin. + enum + + + + AZN + Azerbaijani manat. + enum + + + + BAM + Bosnia and Herzegovina convertible mark. + enum + + + + BBD + Barbados dollar. + enum + + + + BDT + Bangladeshi taka. + enum + + + + BGN + Bulgarian lev. + enum + + + + BHD + Bahraini dinar. + enum + + + + BIF + Burundian franc. + enum + + + + BMD + Bermudian dollar (customarily known as Bermuda dollar). + enum + + + + BND + Brunei dollar. + enum + + + + BOB + Boliviano. + enum + + + + BOV + Bolivian Mvdol (funds code). + enum + + + + BRL + Brazilian real. + enum + + + + BSD + Bahamian dollar. + enum + + + + BTN + Bhutanese ngultrum. + enum + + + + BWP + Botswana pula. + enum + + + + BYR + Belarusian ruble. + enum + + + + BZD + Belize dollar. + enum + + + + CAD + Canadian dollar. + enum + + + + CDF + Congolese franc. + enum + + + + CHF + Swiss franc. + enum + + + + CLF + Unidad de Fomento (funds code), Chile. + enum + + + + CLP + Chilean peso. + enum + + + + CNY + Chinese yuan. + enum + + + + COP + Colombian peso. + enum + + + + COU + Unidad de Valor Real. + enum + + + + CRC + Costa Rican colon. + enum + + + + CUC + Cuban convertible peso. + enum + + + + CUP + Cuban peso. + enum + + + + CVE + Cape Verde escudo. + enum + + + + CZK + Czech koruna. + enum + + + + DJF + Djiboutian franc. + enum + + + + DKK + Danish krone. + enum + + + + DOP + Dominican peso. + enum + + + + DZD + Algerian dinar. + enum + + + + EEK + Estonian kroon. + enum + + + + EGP + Egyptian pound. + enum + + + + ERN + Eritrean nakfa. + enum + + + + ETB + Ethiopian birr. + enum + + + + EUR + Euro. + enum + + + + FJD + Fiji dollar. + enum + + + + FKP + Falkland Islands pound. + enum + + + + GBP + Pound sterling. + enum + + + + GEL + Georgian lari. + enum + + + + GHS + Ghanaian cedi. + enum + + + + GIP + Gibraltar pound. + enum + + + + GMD + Gambian dalasi. + enum + + + + GNF + Guinean franc. + enum + + + + GTQ + Guatemalan quetzal. + enum + + + + GYD + Guyanese dollar. + enum + + + + HKD + Hong Kong dollar. + enum + + + + HNL + Honduran lempira. + enum + + + + HRK + Croatian kuna. + enum + + + + HTG + Haitian gourde. + enum + + + + HUF + Hungarian forint. + enum + + + + IDR + Indonesian rupiah. + enum + + + + ILS + Israeli new sheqel. + enum + + + + INR + Indian rupee. + enum + + + + IQD + Iraqi dinar. + enum + + + + IRR + Iranian rial. + enum + + + + ISK + Icelandic króna. + enum + + + + JMD + Jamaican dollar. + enum + + + + JOD + Jordanian dinar. + enum + + + + JPY + Japanese yen. + enum + + + + KES + Kenyan shilling. + enum + + + + KGS + Kyrgyzstani som. + enum + + + + KHR + Cambodian riel. + enum + + + + KMF + Comoro franc. + enum + + + + KPW + North Korean won. + enum + + + + KRW + South Korean won. + enum + + + + KWD + Kuwaiti dinar. + enum + + + + KYD + Cayman Islands dollar. + enum + + + + KZT + Kazakhstani tenge. + enum + + + + LAK + Lao kip. + enum + + + + LBP + Lebanese pound. + enum + + + + LKR + Sri Lanka rupee. + enum + + + + LRD + Liberian dollar. + enum + + + + LSL + Lesotho loti. + enum + + + + LTL + Lithuanian litas. + enum + + + + LVL + Latvian lats. + enum + + + + LYD + Libyan dinar. + enum + + + + MAD + Moroccan dirham. + enum + + + + MDL + Moldovan leu. + enum + + + + MGA + Malagasy ariary. + enum + + + + MKD + Macedonian denar. + enum + + + + MMK + Myanma kyat. + enum + + + + MNT + Mongolian tugrik. + enum + + + + MOP + Macanese pataca. + enum + + + + MRO + Mauritanian ouguiya. + enum + + + + MUR + Mauritian rupee. + enum + + + + MVR + Maldivian rufiyaa. + enum + + + + MWK + Malawian kwacha. + enum + + + + MXN + Mexican peso. + enum + + + + MYR + Malaysian ringgit. + enum + + + + MZN + Mozambican metical. + enum + + + + NAD + Namibian dollar. + enum + + + + NGN + Nigerian naira. + enum + + + + NIO + Cordoba oro. + enum + + + + NOK + Norwegian krone. + enum + + + + NPR + Nepalese rupee. + enum + + + + NZD + New Zealand dollar. + enum + + + + OMR + Omani rial. + enum + + + + PAB + Panamanian balboa. + enum + + + + PEN + Peruvian nuevo sol. + enum + + + + PGK + Papua New Guinean kina. + enum + + + + PHP + Philippine peso. + enum + + + + PKR + Pakistani rupee. + enum + + + + PLN + Polish zloty. + enum + + + + PYG + Paraguayan guaraní. + enum + + + + QAR + Qatari rial. + enum + + + + RON + Romanian new leu. + enum + + + + RSD + Serbian dinar. + enum + + + + RUB + Russian rouble. + enum + + + + RWF + Rwandan franc. + enum + + + + SAR + Saudi riyal. + enum + + + + SBD + Solomon Islands dollar. + enum + + + + SCR + Seychelles rupee. + enum + + + + SDG + Sudanese pound. + enum + + + + SEK + Swedish krona/kronor. + enum + + + + SGD + Singapore dollar. + enum + + + + SHP + Saint Helena pound. + enum + + + + SLL + Sierra Leonean leone. + enum + + + + SOS + Somali shilling. + enum + + + + SRD + Surinamese dollar. + enum + + + + STD + São Tomé and Príncipe dobra. + enum + + + + SYP + Syrian pound. + enum + + + + SZL + Lilangeni. + enum + + + + THB + Thai baht. + enum + + + + TJS + Tajikistani somoni. + enum + + + + TMT + Turkmenistani manat. + enum + + + + TND + Tunisian dinar. + enum + + + + TOP + Tongan pa'anga. + enum + + + + TRY + Turkish lira. + enum + + + + TTD + Trinidad and Tobago dollar. + enum + + + + TWD + New Taiwan dollar. + enum + + + + TZS + Tanzanian shilling. + enum + + + + UAH + Ukrainian hryvnia. + enum + + + + UGX + Ugandan shilling. + enum + + + + USD + United States dollar. + enum + + + + UYU + Uruguayan peso. + enum + + + + UZS + Uzbekistan som. + enum + + + + VEF + Venezuelan bolívar fuerte. + enum + + + + VND + Vietnamese Dong. + enum + + + + VUV + Vanuatu vatu. + enum + + + + WST + Samoan tala. + enum + + + + XAF + CFA franc BEAC. + enum + + + + XCD + East Caribbean dollar. + enum + + + + XOF + CFA Franc BCEAO. + enum + + + + XPF + CFP franc. + enum + + + + YER + Yemeni rial. + enum + + + + ZAR + South African rand. + enum + + + + ZMK + Zambian kwacha. + enum + + + + ZWL + Zimbabwe dollar. + enum + + + + + value + + + + + + + Decimal + Decimal is the base-10 notational system for representing real numbers. +Primitive + + + + + + maxStartupLoad + + + + NC + Maximum consumption by the generating unit as part of the startup process. + + + + + warmStartupTime + + + + NC + Time it takes to startup the unit when it is warm. + + + + + coolDownTime + + + + NC + Time it takes from a unit shutdown until it is considered cold. + + + + + lowerRampRate + + + + The normal maximum rate the generating unit active power output can be lowered by control actions. + + + + ActivePowerChangeRate + Rate of change of active power per time. +CIMDatatype + + + + + + multiplier + + + + M + + + + + unit + + + + WPers + + + + + value + + + + + + + + startupRampRate + + + + NC + The startup ramp rate of the generating unit which describes the speed of change of active power from zero to the minimum active power. +When the ramp is not provided, the optimisation process shall consider the change as an instant change of active power from zero to minimum active power. + + + + + maxEconomicP + + + + Maximum high economic active power limit, that should not exceed the maximum operating active power limit. + + + + + minEconomicP + + + + Low economic active power limit that shall be greater than or equal to the minimum operating active power limit. + + + + + minimumOffTime + + + + Minimum time interval between unit shutdown and startup. + + + + + raiseRampRate + + + + The normal maximum rate the generating unit active power output can be raised by control actions. + + + + + warmStartupCost + + + + NC + The warm startup cost incurred for each start of the GeneratingUnit. + + + + GeneratingUnit + The generating unit that relates to this schedule resource. + + + + + No + +NC + + + ScheduleResource + The schedule resource that has this generating unit. + + + + + Yes + +NC + + + GeothermalGeneratingUnit + + Generating unit that is generating electrical power from geothermal energy. +NC + + + + + + + kind + + + + NC + Kind of geothermal generating unit. + + + + GeothermalUnitKind + Kind of geothermal. + + +NC + + + + binaryCycle + The moderately hot geothermal water is passed by a secondary fluid with a much lower boiling point than water. + enum + + + + drySteam + Uses geothermal steam of 150 degree Celsius or greater to turn turbines. + enum + + + + flashSteam + Pull deep, high-pressure hot water into lower-pressure tanks and use the resulting flashed steam to drive turbines. + enum + + + + other + Other type of geothermal generating unit. + enum + + + + HydroPowerPlant + A hydro power station which can generate or pump. When generating, the generator turbines receive water from an upper reservoir. When pumping, the pumps receive their water from a lower reservoir. +Description + + + + + + HydroPowerPlants + Generators discharge water to or pumps are supplied water from a downstream reservoir. + + + + + No + + + + Reservoir + Generators discharge water to or pumps are supplied water from a downstream reservoir. + + + + + Yes + + + + HydroPump + + A synchronous motor-driven pump, typically associated with a pumped storage plant. +Description + + + + + + + longPF + + + + NC + Hydro pump long term economic participation factor. + + + + + maxEconomicP + + + + NC + Maximum high economic active power limit, that should not exceed the maximum operating active power limit. + + + + + minEconomicP + + + + NC + Low economic active power limit that shall be greater than or equal to the minimum operating active power limit. + + + + + shortPF + + + + NC + Hydro pump short term economic participation factor. + + + + ScheduleResource + The schedule resource that has this hydro pump. + + + + + Yes + +NC + + + HydroPump + The hydro pump that relates to this schedule resource. + + + + + No + +NC + + + IdentifiedObject + This is a root class to provide common identification for all classes needing identification and naming attributes. + + + + + + energyIdentCodeEic + + + + European + deprecated + The attribute is used for an exchange of the EIC code (Energy identification Code). The length of the string is 16 characters as defined by the EIC code. For details on EIC scheme please refer to ENTSO-E web site. + + + + + description + + + + The description is a free human readable text describing or naming the object. It may be non unique and may not correlate to a naming hierarchy. + + + + + mRID + + + + Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. +For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements. + + + + + name + + + + The name is any free human readable and possibly non unique text naming the object. + + + + ImpedanceControlFunction + + Impedance control function is a function block that calculates the operating point of the controlled equipment to achieve the target impedance. +NC + + + + + + InjectionController + + Injection controller is controlling the equipment which represents an injection or an external network. +NC + + + + + + LimitDependencyCurve + + A curve or functional relationship between an independent variable (X-axis) and limiting dependent (Y-axis) variables. +NC + + + + + Line + + Contains equipment beyond a substation belonging to a power transmission line. +Description + + + + + + Line + The line that is part of this scheduling area. + + + + + No + +NC + + + SchedulingArea + The scheduling area that has this line. + + + + + Yes + +NC + + + LineCircuit + + A line circuit is a circuit that has at least one ACLineSegment and may or may not include related switching and/or auxiliary equipment. +NC + + + + + + LoadFrequencyControlArea + + A part of a synchronous area or an entire synchronous area, physically demarcated by points of measurement at interconnectors to other load frequency control (LFC) areas, operated by one or more TSOs fulfilling the obligations of load-frequency control. +NC + + + + + + + deficientGenerationLimit + + + + NC + Percentage of average dispatch target plus average regulation used to calculate Deficient Generation Limit. The value shall be a positive value between 0 and 100. + + + + + frequencyBiasFactor + + + + NC + Frequency bias in MW/Hz. + + + + + includeFrequencyBias + + + + NC + True means the frequency bias that is taken into consideration in the frequency bias computation. + + + + + frequencyRestorationReserveDelay + + + + NC + FRR delay expressed in seconds. Must be a positive multiple of AGC's cycle duration. + + + + + frequencyRestorationReserveMaxRamp + + + + NC + Maximum authorized ramp for both FRR dispatching and ramp to zero. + + + + + frequencyRestorationReserveThreshold + + + + NC + Authorized threshold for both FRR dispatching and ramp to zero. + + + + FrequencyControlArea + The frequency control area that has this frequency control operator. + + + + + No + +NC + + + FrequencyControlOperator + The frequency control operator that operates this frequency control area. + + + + + Yes + +NC + + + LoadFrequencyControlArea + The load frequency control area which has this scheduling area. + + + + + Yes + +NC + + + SchedulingArea + The scheduling area that is part of this load frequency control area. + + + + + No + +NC + + + LoadFrequencyControlArea + The load frequency control area that is part of this load frequency control block. + + + + + No + +NC + + + LoadFrequencyControlBlock + The load frequency control block that has this load frequency control area. + + + + + Yes + +NC + + + LoadFrequencyControlArea + LoadFrequencyControlArea controlling the TieCorridor. + + + + + Yes + +NC + + + TieCorridor + TieCorridor controlled by the LoadFrequencyControlArea. + + + + + No + +NC + + + LoadFrequencyControlBlock + + A part of a synchronous area or an entire synchronous area, physically demarcated by points of measurement at interconnectors to other load frequency control (LFC) blocks, consisting of one or more LFC areas, operated by one or more TSOs fulfilling the obligations of load-frequency control. +NC + + + + + + SynchronousArea + The synchronous area that has this load frequency control block. + + + + + Yes + +NC + + + LoadFrequencyControlBlock + The load frequency control block that is part of this synchronous area. + + + + + No + +NC + + + LoadFrequencyControlOperator + + A role that is responsible for operational security by operating the load frequency control (LFC) mechanism. +NC + + + + + + LossCurve + + Represents the losses in the equipment due to operation position. +NC + + + + + + ModularStaticSynchronousSeriesCompensator + + Modular static synchronous series compensator (MSSSC) is a type of flexible AC transmission system regulating equipment which consists of solid-state voltage source inverter connected in series with a transmission line. This is similar to static synchronous series compensator (SSSC), but without injection transformer. This enables the MSSSC to be truly modular with the ability to simply install a number of equipment in series to provide a desired maximum level of impedance. MSSSC can be dispersed into multiple location in a circuit working collectively under the same controller scheme. +NC + + + + + + NuclearGeneratingUnit + + A nuclear generating unit. + + + + + + + reactorKind + + + + NC + Kind of nuclear reactor. + + + + NuclearReactorKind + Kind of nuclear reactor. + + +NC + + + + breeder + Reactor whose heat source is a nuclear reactor that generates more fissile material than it consumes. + enum + + + + graphite + Reactor whose heat source is a graphite-moderated reactor that is a nuclear reactor that uses carbon as a neutron moderator, which allows natural uranium to be used as nuclear fuel. + enum + + + + heavyWater + Reactor whose heat source is a pressurized heavy-water reactor (PHWR) that uses heavy water (deuterium oxide D2O) as its coolant and neutron moderator. + enum + + + + lightWater + Reactor whose heat source is a light-water reactor (LWR) that is a type of thermal-neutron reactor that uses normal water, as both its coolant and neutron moderator – furthermore a solid form of fissile elements is used as fuel. + enum + + + + liquidMetal + Reactor whose liquid metal cooled nuclear reactor, liquid metal fast reactor or LMFR is an advanced type of nuclear reactor where the primary coolant is a liquid metal. + enum + + + + other + Other type of nuclear reactors. + enum + + + + OperationalLimit + + A value and normal value associated with a specific kind of limit. +The sub class value and normalValue attributes vary inversely to the associated OperationalLimitType.acceptableDuration (acceptableDuration for short). +If a particular piece of equipment has multiple operational limits of the same kind (apparent power, current, etc.), the limit with the greatest acceptableDuration shall have the smallest limit value and the limit with the smallest acceptableDuration shall have the largest limit value. Note: A large current can only be allowed to flow through a piece of equipment for a short duration without causing damage, but a lesser current can be allowed to flow for a longer duration. + + + + + OperationalLimitValue + Values of equipment limits. + + + + + + No + + + + OperationalLimitSet + The limit set to which the limit values belong. + + + + + Yes + + + + OperationalLimitType + The limit type associated with this limit. + + + + + Yes + + + + OperationalLimit + The operational limits associated with this type of limit. + + + + + No + + + + OperationalLimitSet + + A set of limits associated with equipment. Sets of limits might apply to a specific temperature, or season for example. A set of limits may contain different severities of limit levels that would apply to the same equipment. The set may contain limits of different types such as apparent power and current limits or high and low voltage limits that are logically applied together as a set. +Description + + + + + + PowerTransferCorridor + The power transfer corridor that has this operational limit set. + + + + + Yes + +NC + + + OperationalLimitSet + The operational limit set relevant for this power transfer corridor. + + + + + No + +NC + + + OperationalLimitType + + The operational meaning of a category of limits. + + + + + + + direction + + + + The direction of the limit. + + + + OperationalLimitDirectionKind + The direction attribute describes the side of a limit that is a violation. + + + + + + high + High means that a monitored value above the limit value is a violation. If applied to a terminal flow, the positive direction is into the terminal. + enum + + + + low + Low means a monitored value below the limit is a violation. If applied to a terminal flow, the positive direction is into the terminal. + enum + + + + absoluteValue + An absoluteValue limit means that a monitored absolute value above the limit value is a violation. + enum + + + + + isMinimum + + + + NC + Defines if the operational limit type is minimum. If true, the value is a minimum value of the same kind. This applies to stability and PATL. If false, the limit has the normal behaviour. OperationalLimitType.direction attribute shall be absoluteValue. + + + + OperationalLimitType + The operational limit type which has recovery time characteristic. + + + + + No + +NC + + + RecoveryOverloadLimitCurve + This is the curve which provides the recovery time information for this limit type. + + + + + Yes + +NC + + + PermanentSolarRadiationCurve + The permanent solar radiation curve for this operational limit type. + + + + + Yes + +NC + + + OperationalLimitType + The operational limit type that has this permanent solar radiation curve. + + + + + No + +NC + + + OrdinaryPowerTransferCorridor + + Power transfer corridor defined for normal operating network. +NC + + + + + + Organisation + + Organisation that might have roles as utility, contractor, supplier, manufacturer, customer, etc. + + + + + + Organisation + Organisation having this role. + + + + + Yes + + + + Roles + All roles of this organisation. + + + + + No + + + + OrganisationRole + + Identifies a way in which an organisation may participate in the utility enterprise (e.g., customer, manufacturer, etc). + + + + + + globalLocationNumber + + + + NC + The Global Location Number (GLN) is part of the GS1 systems of standards. GLN is a 13-digit number structured that include GS1 Company Prefix, Location Reference (N1-N12) and Check Digit (N13). +GS1 is a neutral, not-for-profit, international organisation that develops and maintains standards for supply and demand chains across multiple sectors. + + + + OutageCoordinationRegion + + A region that has a common organisation or service responsible for outage planning and coordination and its impact on grid operation. +NC + + + + + + OutageCoordinationRegion + The outage coordination region that has this outage coordinator. + + + + + No + +NC + + + OutageCoordinator + The outage coordinator responsible for this outage coordination region. + + + + + Yes + +NC + + + OutageCoordinationRegion + The outage coordination region that has this security coordinator. + + + + + No + +NC + + + SecurityCoordinator + The security coordinator that is responsible for this outage coordination region. + + + + + Yes + +NC + + + OutageCoordinator + + A role that coordinates the planned availability status of relevant power system equipment to meet the need by the asset owner or operator and the security of the power system. +NC + + + + + + OutagePlanningAgent + + An entity with the task of planning the availability status of a relevant power generating module, a relevant demand facility or a relevant grid element. +NC + + + + + + OverlappingZone + + A collection of all the overlapping cross border assessed elements which have the same sets of impacted and impacting regions. +NC + + + + + + ImpactedRegion + The region that is impacted by this overlapping zone. + + + + + No + +NC + + + OverlappingZone + The overlapping zone which is impacted by this region. + + + + + Yes + +NC + + + PhaseControlFunction + + Phase control function is a function block that calculate the operating point of the controlled equipment to achieve the target voltage. +NC + + + + + + PinTerminal + + Input pin associated with a Terminal. It is used for comparison. +NC + + + + + + + kind + + + + NC + The kind of quantity which is used as an input value. + + + + PinTerminalKind + The kind of quantities that can serve as an input value for the pin. + + +NC + + + + activePower + Active power on the Terminal. + enum + + + + apparentPower + Apparent power on the Terminal. + enum + + + + voltageMagnitude + Voltage magnitude on the Terminal. + enum + + + + voltageAngle + Voltage angle on the Terminal. + enum + + + + current + Current on the Terminal. + enum + + + + reactivePower + Reactive power on the Terminal. + enum + + + + PowerElectricalChemicalUnit + + A unit capable of either generating electrical energy from chemical reactions or using electrical energy to cause chemical reactions. +NC + + + + + + + kind + + + + NC + Kind of power electrical chemical unit. + + + + PowerElectricalChemicalUnitKind + Kind of power electrical chemical unit. + + +NC + + + + electrolyticCell + An electrolytic cell is an electrochemical cell that drives a non-spontaneous redox reaction through the application of electrical energy. Example are the decomposition of water into hydrogen and oxygen. + enum + + + + fuelCell + A fuel cell is an electrochemical cell that converts the chemical energy from a fuel into electricity through an electrochemical reaction of hydrogen fuel with oxygen or another oxidizing agent. + enum + + + + other + Other type of cell used in chemical reactions. + enum + + + + PowerElectronicsMarineUnit + + A unit that capture energy from marine sources, e.g. waves, for generating electrical power. +NC + + + + + + + kind + + + + NC + Kind of marine unit. + + + + MarineUnitKind + Kind of marine energy capture. + + +NC + + + + currents + Capture energy from ocean current which are caused by forces like breaking waves, wind, coriolis effect etc. + enum + + + + pressure + Capture energy from pressure. + enum + + + + tidal + Capture energy from tidal power, which captures the energy of the current caused by the gravitational pull of the Sun and Moon. + enum + + + + wave + Capture energy from wind waves. + enum + + + + other + Other way of capture energy from marine elements. + enum + + + + PowerElectronicsUnit + + A generating unit or battery or aggregation that connects to the AC network using power electronics rather than rotating machines. +Description + + + + + + + longPF + + + + NC + Power electronics unit long term economic participation factor. + + + + + maxEconomicP + + + + NC + Maximum high economic active power limit, that should not exceed the maximum operating active power limit. + + + + + minEconomicP + + + + NC + Low economic active power limit that shall be greater than or equal to the minimum operating active power limit. + + + + + shortPF + + + + NC + Power electronics unit short term economic participation factor. + + + + PowerElectronicsUnit + The power electronics unit that relates to this schedule resource. + + + + + No + +NC + + + ScheduleResource + The schedule resource that has this power electronics unit. + + + + + Yes + +NC + + + PowerFactorControlFunction + + Power factor control function is a function block that calculates the operating point of the controlled equipment to achieve the target power factor. +NC + + + + + + PowerInfeedLimit + + Power infeed limit set constraints on the active power fed in to the network by two or more terminals. +NC + + + + + + + normalValue + + + + The normal value of active power limit. The attribute shall be a positive value or zero. + + + + PowerInfeedConstraint + Power infeed constraint which belongs to a power infeed terminal. + + + + + Yes + +NC + + + PowerInfeedTerminal + Power infeed terminal that has power infeed constraints. + + + + + No + +NC + + + PowerInfeedTerminal + Power infeed terminal defines the terminals that are linked to a power infeed limit. +NC + + + + + + + mRID + + + + NC + Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. +For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements. + + + + PowerPlantController + + Power plant controller is controlling the equipment of a power plant. +NC + + + + + + PowerSystemOrganisationRole + + A role that is responsible for the functional operational of a power system resource. +NC + + + + + PowerSystemResource + + A power system resource (PSR) can be an item of equipment such as a switch, an equipment container containing many individual items of equipment such as a substation, or an organisational entity such as sub-control area. Power system resources can have measurements associated. + + + + + PowerTransferCorridor + + A power transfer corridor is defined as a set of circuits (transmission lines or transformers) separating two portions of the power system, or a subset of circuits exposed to a substantial portion of the transmission exchange between two parts of the system. +NC + + + + + + normalEnabled + + + + NC + It is the normal enable/disable the monitoring/assessment of a power transfer corridor. True means that the monitoring of the power transfer corridor is assessed. False means the power transfer corridor is not assessed. + + + + PowerTransformerCircuit + + A power transformer circuit is a circuit that has at least one PowerTransformer and may or may not include related switching and/or auxiliary equipment. +NC + + + + + + PropertyReference + The reference to a class and one of its properties. +NC + + + + + ProportionalEnergyComponent + + Serves for grouping components within an energy group, with proportional active power allocation to all components. +NC + + + + + + PTCTriggeredEquipment + + Power Transfer Corridor triggered equipment connects the equipment that will create the exceptional power transfer corridor when taking out of service. e.g. A system with three lines gets an exceptional power transfer corridor when one of the lines is taken out of service. +NC +Description + + + + + + ReactiveCapabilityCurve + + Reactive power rating envelope versus the synchronous machine's active power, in both the generating and motoring modes. For each active power value there is a corresponding high and low reactive power limit value. Typically there will be a separate curve for each coolant condition, such as hydrogen pressure. The Y1 axis values represent reactive minimum and the Y2 axis values represent reactive maximum. + + + + + + + coolantTemperature + + + + The machine's coolant temperature (e.g., ambient air or stator circulating water). + + + + Temperature + Value of temperature in degrees Celsius. +CIMDatatype + + + + + + multiplier + + + + none + + + + + unit + + + + degC + + + + + value + + + + + + + + referenceVoltage + + + + NC + The reference voltage for which the capability curve is valid. + + + + Voltage + Electrical voltage, can be both AC and DC. +CIMDatatype + + + + + + multiplier + + + + k + + + + + unit + + + + V + + + + + value + + + + + + + + hydrogenPressure + + + + The hydrogen coolant pressure. + + + + Pressure + Pressure in pascals. +CIMDatatype + + + + + + value + + + + + + + + unit + + + + Pa + + + + + multiplier + + + + k + + + + SynchronousMachine2 + Synchronous machine using this curve. + + + + + Yes + +NC + + + ReactiveCapabilityCurve2 + Reactive capability curve for this synchronous machine. + + + + + No + +NC + + + ReactivePowerControlFunction + + Reactive power control function is a function block that calculate the operating point of the controlled equipment to achieve the target reactive power. +NC + + + + + + RecoveryOverloadLimitCurve + + The relation between the recovery time and an overload limit. +NC + + + + + + Region + + A region where the system operator belongs to. +NC + + + + + RegulatingCondEq + + A type of conducting equipment that can regulate a quantity (i.e. voltage or flow) at a specific point in the network. + + + + + Reservoir + + A water storage facility within a hydro system, including: ponds, lakes, lagoons, and rivers. The storage is usually behind some type of dam. + + + + + + RotatingMachineController + + Rotating machine controller is controlling the equipment which may be used as a generator or motor. +NC + + + + + + ScheduleResource + + A schedule resource is a market-based method for handling participation of small units, particularly located on the lower voltage level that is controlled by a Distributed System Operator (DSO). It is a collection of units that can operate in the market by providing bids, offers and a resulting committed operational schedule for the collection. +NC + + + + + + SchedulingArea + The scheduling area that has this schedule resource. + + + + + Yes + +NC + + + ScheduleResource + The schedule resource that belongs to this scheduled area. + + + + + No + +NC + + + ResourceOf + The schedule resource that has this subschedule resource. + + + + + Yes + +NC + + + SubScheduleResource + The subschedule resource that relates to the schedule resource. + + + + + No + +NC + + + SchedulingArea + + An area where production and/or consumption of energy can be forecasted, scheduled and measured. The area is operated by only one system operator, typically a Transmission System Operator (TSO). The area can consist of a sub area, which has the same definition as the main area, but it can be operated by another system operator (typically Distributed System Operator (DSO) or a Closed Distributed System Operator (CDSO)). This includes microgrid concept. A substation is the smallest grouping that can be included in the area. The area size should be considered in terms of the possibility of accumulated reading (settlement metering) and the capability of operating as an island. +NC + + + + + + + isIslandingEnabled + + + + NC + Identifies if the area can operate in island operation. If true, the area is enabled (capable) of operating as an electrical island. If false, the area does not have the capability or it is not enabled to operate as an electrical island. + + + + + isMeteringGridArea + + + + NC + Identifies if the area is settlement metered for all import and export to the area. If true, the area is metered area. If false, it is not. + + + + SubSchedulingArea + The subscheduling are that belongs to this scheduling area. + + + + + No + +NC + + + SchedulingArea + The scheduling area that has this subscheduling area. + + + + + Yes + +NC + + + SystemOperator + The system operator for this scheduling area. + + + + + Yes + +NC + + + SchedulingArea + The scheduling area that is operated by this system operator. + + + + + No + +NC + + + SynchronousArea + The synchronous are that has this scheduling area. + + + + + Yes + +NC + + + SchedulingArea + The scheduling area that is part of this synchronous area. + + + + + No + +NC + + + Substation + The substation that is part of this scheduling area. + + + + + No + +NC + + + SchedulingArea + The scheduling area that has this substation. + + + + + Yes + +NC + + + SecurityCoordinator + + A role that coordinates the relevant remedial actions and their optimisation to ensure efficient use to achieve required operational security of the power system. +NC + + + + + + SolarRadiationDependencyCurve + + A curve or functional relationship between +- the solar radiation independent variable (X-axis), and +- relative dependent (Y-axis) variables. +NC + + + + + + SSSCController + + The controller of a Static synchronous series compensator (SSSC). +NC + + + + + + + minVoltageInjection + + + + NC + Minimum voltage that the device can inject. + + + + + maxVoltageInjection + + + + NC + Maximum voltage that the device can inject. + + + + + maxOperatingCurrentLimit + + + + NC + Maximum operating current limit applied for the controller and used by any of the available control functions. + + + + + minOperatingCurrentLimit + + + + NC + Minimum operating current limit applied for the controller and used by any of the available control functions. + + + + SSSCController + The controller that uses these simulation settings. + + + + + No + +NC + + + SSSCSimulationSettings + The simulation setings that apply for this controller. + + + + + Yes + +NC + + + SSSCSimulationSettings + SSSC control simulation settings used by the algorithm for power flow calculations. +NC + + + + + + + maxReactanceCorrection + + + + NC + Maximum value of the reactance correction applied between Iterations of the power flow calculation algorithm for the purpose of achieving control target value. + + + + + maxMismatch + + + + NC + Maximum mismatch tolerance of voltage target value. If mismatch is lower, convergence is claimed. It is only used for voltageInjection and currentDroop control modes. + + + + + deltaReactance + + + + NC + Reactance delta for the solution algorithm. The solution “outer-loop” algorithm is based on a secant method which needs two initial points. The second point is calculated from the first one by either adding or subtracting this “delta”. The “seed” is assumed to be 0 ohms. + + + + + mRID + + + + NC + Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. +For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements. + + + + + useDIDVestimation + + + + NC + Defines if the estimate is considering the dI/dV sensitivity (true) instead of the secant algorithm (false). + + + + + maxIterations + + + + NC + Maximum number of iterations before claiming an open line condition. The algorithm uses it to assess if a line is really open by making sure low-currents are observed on various consecutive iterations. + + + + StaticSynchronousCompensator + + Static synchronous compensator (STATCOM), also known as a static synchronous condenser (STATCON), is a type of flexible AC transmission system regulating equipment used on alternating current electricity transmission networks. It is based on a power electronics voltage-source converter and can act as either a source or sink of reactive AC power to an electricity network. If connected to a source of power it can also provide active AC power. +NC + + + + + + StaticSynchronousSeriesCompensator + + Static synchronous series compensator (SSSC) is a type of flexible AC transmission system which consists of a solid-state voltage source inverter coupled with a transformer that is connected in series with a transmission line. This device can inject an almost sinusoidal voltage in series with the line. This injected voltage could be considered as an inductive or capacitive reactance, which is connected in series with the transmission line. This feature can provide controllable voltage compensation. In addition, SSSC is able to reverse the power flow by injecting a sufficiently large series reactive compensating voltage. Moreover it can inject a voltage proportional to the difference between the line current and the pre-configured current threshold.<font color="#636671"> </font>It shall have two Terminal-s associated with it. +NC + + + + + + StaticVarCompensator + + A facility for providing variable and controllable shunt reactive power. The SVC typically consists of a stepdown transformer, filter, thyristor-controlled reactor, and thyristor-switched capacitor arms. + +The SVC may operate in fixed MVar output mode or in voltage control mode. When in voltage control mode, the output of the SVC will be proportional to the deviation of voltage at the controlled bus from the voltage setpoint. The SVC characteristic slope defines the proportion. If the voltage at the controlled bus is equal to the voltage setpoint, the SVC MVar output is zero. +NC + + + + + + SubSchedulingArea + + An area that is a part of another scheduling area. Typically part of a Transmission System Operator (TSO) scheduling area operated by a Distributed System Operator (DSO) or a Close Distributed System Operator (CDSO). This includes microgrid concept. A sub scheduling area can contain other sub areas. A sub scheduling area leaf will form the smallest entity of any given energy area. +NC + + + + + + Substation + + A collection of equipment for purposes other than generation or utilization, through which electric energy in bulk is passed for the purposes of switching or modifying its characteristics. +Description + + + + + + SubstationController + + Substation controller is controlling the equipment to optimize the use of the controlling equipment within a substation. +NC + + + + + + SynchronousArea + + A synchronous area is an electrical area covered by interconnect with a common system frequency in a steady-state. +NC + + + + + + + nominalFrequency + + + + NC + The nominal frequency for the Synchronous Area, e.g. 50 Hz for Europe. + + + + Frequency + Cycles per second. +CIMDatatype + + + + + + value + + + + + + + + unit + + + + Hz + + + + + multiplier + + + + none + + + + SynchronousMachine + An electromechanical device that operates with shaft rotating synchronously with the network. It is a single machine operating either as a generator or synchronous condenser or pump. + + + + + SystemOperationCoordinator + + A role that coordinates relevant information and impact in regards to operating the power system. +NC + + + + + SystemOperator + + System operator. +NC + + + + + TapChanger + Mechanism for changing transformer winding tap positions. +Description + + + + + + TapChangeController + The tap changer controller that controls this TapChanger. + + + + + Yes + +NC + + + TapChanger + All tap changers controlled by this controller. + + + + + No + +NC + + + TapChangerController + + Tap changer controller is an equipment controller that controls a tap changer, e.g. how the voltage at the end of a line varies with the load level and compensation of the voltage drop by tap adjustment. +NC + + + + + + TCSCCompensationPoint + Compensation point of a TCSC compensator. +NC + + + + + + + compensationImpedance + + + + NC + The compensation impedance for this compensation point. + + + + Impedance + Ratio of voltage to current. +CIMDatatype + + + + + + value + + + + + + + + unit + + + + ohm + + + + + multiplier + + + + none + + + + + mRID + + + + NC + Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. +For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements. + + + + + sectionNumber + + + + NC + The number of the section. + + + + ThyristorControlledSeriesCompensator + TCSC that has different compensation points. + + + + + Yes + +NC + + + TCSCCompensationPoint + Compensation point for this TCSC. + + + + + No + +NC + + + TCSCController + + TCSC controller is controlling the equipment to optimize the performance of the TCSC. +NC + + + + + + Terminal + + An AC electrical connection point to a piece of conducting equipment. Terminals are connected at physical connection points called connectivity nodes. + + + + + AngleReferenceTerminal + The angle reference terminal for the voltage angle limit. + + + + + Yes + +NC + + + VoltageAngleLimit + The voltage angle limit which has this reference angle terminal. + + + + + No + +NC + + + ThyristorControlledSeriesCompensator + + Thyristor-controlled series capacitors (TCSC) is a type of flexible AC transmission system regulating equipment that is configured with controlled reactors in parallel with sections of a capacitor bank. This combination allows smooth control of the fundamental frequency capacitive reactance over a wide range. The thyristor valve contains a string of series connected high power thyristors. TCSC can control power flows in order to achieve eliminating of line overloads, reducing loop flows and minimising system losses. +NC + + + + + + + flexibleCapacitiveImpedance + + + + NC + Flexible impedance that can be controlled by the compensator when operating in the capacitive range. Shall always be positive. + + + + + flexibleInductiveImpedance + + + + NC + Flexible impedance that can be controlled by the compensator when operating in the inductive range. Shall always be negative. + + + + + minimumCurrent + + + + NC + Minimum current below which the device bypassed. + + + + + reconnectionCurrent + + + + NC + The current for which the TCSC returns back to operation after bypass. + + + + TieCorridor + + A collection of one or more tie-lines or direct current poles that connect two different control areas. +NC + + + + + + + delayRegulatingReserve + + + + NC + A positive number that is a multiple of Automatic Generation Control (AGC) run cycles that describes the delay in adapting imbalance of the tie corridor. + + + + + maxRegulatingReserveRamp + + + + NC + Maximum authorized ramp for regulating reserve. + + + + + thresholdRegulatingReserve + + + + NC + Regulating reserve threshold. + + + + TieFlow + Tie flow which belongs to the tie corridor. + + + + + No + +NC + + + TieCorridor + Tie corridor which has the tie flow. + + + + + Yes + +NC + + + TieFlow + + Defines the structure (in terms of location and direction) of the net interchange constraint for a control area. This constraint may be used by either AGC or power flow. +Description + + + + + + TransmissionSystemOperator + + A system operator role that is responsible for operating of an energy transmission network. +NC + + + + + + UnifiedPowerFlowController + + Unified power flow controller (UPFC) is providing fast-acting reactive power compensation on high-voltage electricity transmission networks. +NC + + + + + + VoltageAngleLimit + + Voltage angle limit between two terminals. The association end OperationalLimitSet.Terminal defines one end and the host of the limit. The association end VoltageAngleLimit.AngleReferenceTerminal defines the reference terminal. +NC + + + + + + + normalValue + + + + NC + The difference in angle degrees between referenced by the association end OperationalLimitSet.Terminal and the Terminal referenced by the association end VoltageAngleLimit.AngleReferenceTerminal. The value shall be positive (greater than zero). + + + + AngleDegrees + Measurement of angle in degrees. +CIMDatatype + + + + + + value + + + + + + + + unit + + + + deg + + + + + multiplier + + + + none + + + + + isFlowToRefTerminal + + + + NC + True if the flow is from the operating limit terminal to the angle reference terminal. False means that the flow is the other direction. When it is not given, the limit is the same for both directions. + + + + VoltageControlFunction + + Voltage control function is a function block that calculate the operating point of the controlled equipment to achieve the target voltage. +NC + + + + + + VoltageInjectionControlFunction + + Voltage injection control function is a function block that calculates the operating point of the controlled equipment to achieve the target voltage injection. The controlled point is the Terminal with sequenceNumber =1. +NC + + + + + + VsCapabilityCurve + + The P-Q capability curve for a voltage source converter, with P on X-axis and Qmin and Qmax on Y1-axis and Y2-axis. + + + + + + + referenceVoltage + + + + NC + The reference voltage for which the capability curve is valid. + + + + VsConverter + Converter with this capability curve. + + + + + Yes + +NC + + + CapabilityCurve2 + Capability curve of this converter. + + + + + No + +NC + + + VsConverter + DC side of the voltage source converter (VSC). + + + + + IRI + An IRI (Internationalized Resource Identifier) within an RDF graph is a Unicode string that conforms to the syntax defined in RFC 3987. +The primitive is serialized as rdf:resource in RDFXML. +IRIs in the RDF abstract syntax must be absolute, and may contain a fragment identifier. +IRI equality: Two IRIs are equal if and only if they are equivalent under Simple String Comparison according to section 5.1 of [RFC3987]. Further normalization must not be performed when comparing IRIs for equality. +IRIs are a generalization of URIs [RFC3986] that permits a wider range of Unicode characters. Every absolute URI and URL is an IRI, but not every IRI is an URI. When IRIs are used in operations that are only defined for URIs, they must first be converted according to the mapping defined in section 3.1 of [RFC3987]. A notable example is retrieval over the HTTP protocol. The mapping involves UTF-8 encoding of non-ASCII characters, %-encoding of octets not allowed in URIs, and Punycode-encoding of domain names. +Primitive +profcim + + + + + DocEquipmentReliabilityProfile + + This package contains datatypes used only in the RDFS header. + + + Date + Date as "yyyy-mm-dd", which conforms with ISO 8601. UTC time zone is specified as "yyyy-mm-ddZ". A local timezone relative UTC is specified as "yyyy-mm-dd(+/-)hh:mm". +Primitive + + + + + DateTime + Date and time as "yyyy-mm-ddThh:mm:ss.sss", which conforms with ISO 8601. UTC time zone is specified as "yyyy-mm-ddThh:mm:ss.sssZ". A local timezone relative UTC is specified as "yyyy-mm-ddThh:mm:ss.sss-hh:mm". The second component (shown here as "ss.sss") could have any number of digits in its fractional part to allow any kind of precision beyond seconds. +Primitive + + + + + StringFixedLanguage + A string consisting of a sequence of characters. The character encoding is UTF-8. The string length is unspecified and unlimited. +The primitive is serialized as literal without language support. +Primitive +profcim + + + + + StringIRI + An IRI (Internationalized Resource Identifier) within an RDF graph is a Unicode string that conforms to the syntax defined in RFC 3987. +The primitive is serialized as literal without language support. +IRIs in the RDF abstract syntax must be absolute, and may contain a fragment identifier. +IRI equality: Two IRIs are equal if and only if they are equivalent under Simple String Comparison according to section 5.1 of [RFC3987]. Further normalization must not be performed when comparing IRIs for equality. +IRIs are a generalization of URIs [RFC3986] that permits a wider range of Unicode characters. Every absolute URI and URL is an IRI, but not every IRI is an URI. When IRIs are used in operations that are only defined for URIs, they must first be converted according to the mapping defined in section 3.1 of [RFC3987]. A notable example is retrieval over the HTTP protocol. The mapping involves UTF-8 encoding of non-ASCII characters, %-encoding of octets not allowed in URIs, and Punycode-encoding of domain names. +Primitive +profcim + + + + + URL + A Uniform Resource Locator (URL), colloquially termed a web address, is a reference to a web resource that specifies its location on a computer network and a mechanism for retrieving it. A URL is a specific type of Uniform Resource Identifier (URI), although many people use the two terms interchangeably.URLs occur most commonly to reference web pages (http), but are also used for file transfer (ftp), email (mailto), database access (JDBC), and many other applications. +Primitive +profcim + + + + diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/GridDisturbanceProfile_v2_2_RDFSv2020_24Mar2023.rdf b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/GridDisturbanceProfile_v2_2_RDFSv2020_24Mar2023.rdf new file mode 100644 index 0000000000..046efb767b --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/GridDisturbanceProfile_v2_2_RDFSv2020_24Mar2023.rdf @@ -0,0 +1,1590 @@ + + + + + + GD + vocabulary + + urn:iso:std:iec:61970-600-2:ed-1 + urn:iso:std:iec:61970-301:ed-7:amd1 + file://iec61970cim17v40_iec61968cim13v13a_iec62325cim03v17a.eap + urn:iso:std:iec:61970-401:draft:ed-1 + urn:iso:std:iec:61970-501:draft:ed-2 + file://CGMES-30v25_501-20v01.eap + 1.0.0 + ENTSO-E CIM EG PRA project + This vocabulary is describing the grid disturbance profile. + urn:uuid:81c488d7-a09f-49ef-a3cd-3bb19a1d6f16 + en-GB + https://www.apache.org/licenses/LICENSE-2.0 + 2022-12-29 + ENTSO-E + ENTSO-E + Grid Disturbance vocabulary + + + + + GridDisturbanceProfile + + This package contains the grid disturbance profile. + + + BaseVoltage + + Defines a system base voltage which is referenced. + + + + + Fault + The fault which belongs to the base voltage. + + + + + No + +NC + + + BaseVoltage + The base voltage of this fault. + + + + + Yes + +NC + + + CoordinateSystem + + Coordinate reference system. + + + + + + + crsUrn + + + + A Uniform Resource Name (URN) for the coordinate reference system (crs) used to define 'Location.PositionPoints'. +An example would be the European Petroleum Survey Group (EPSG) code for a coordinate reference system, defined in URN under the Open Geospatial Consortium (OGC) namespace as: urn:ogc:def:crs:EPSG::XXXX, where XXXX is an EPSG code (a full list of codes can be found at the EPSG Registry web site http://www.epsg-registry.org/). To define the coordinate system as being WGS84 (latitude, longitude) using an EPSG OGC, this attribute would be urn:ogc:def:crs:EPSG::4236. +A profile should limit this code to a set of allowed URNs agreed to by all sending and receiving parties. + + + + String + A string consisting of a sequence of characters. The character encoding is UTF-8. The string length is unspecified and unlimited. +Primitive + + + + + CoordinateSystem + Coordinate system used to describe position points of this location. + + + + + Yes + + + + Locations + All locations described with position points in this coordinate system. + + + + + No + + + + Document + + Parent class for different groupings of information collected and managed as a part of a business process. It will frequently contain references to other objects, such as assets, people and power system resources. + + + + + Equipment + The parts of a power system that are physical devices, electronic or mechanical. +Description + + + + + + Faults + All faults on this equipment. + + + + + No + + + + FaultyEquipment + Equipment carrying this fault. + + + + + Yes + + + + InterruptedDeliveryEquipment + The delivery point (equipment) that is affected by the interruption. It is an equipment, power transformer or busbar in the grid where electricity is exchanged. + + + + + Yes + +NC + + + Interruption + The interruption that belongs to the interrupted delivery equipment. + + + + + No + +NC + + + Equipments + All equipments associated with this outage. + + + + + Yes + + + + Outages + All outages in which this equipment is involved. + + + + + No + + + + TrippedEquipment + The equipment that tripped during the outage. + + + + + No + +NC + + + UnplannedOutage + The outage this tripped breaker is involved with. + + + + + Yes + +NC + + + Fault + + Abnormal condition causing current flow through conducting equipment, such as caused by equipment failure or short circuits from objects not typically modelled (for example, a tree falling on a line). + + + + + + + duration + + + + NC + The duration of the fault. + + + + Duration + Duration as "PnYnMnDTnHnMnS" which conforms to ISO 8601, where nY expresses a number of years, nM a number of months, nD a number of days. The letter T separates the date expression from the time expression and, after it, nH identifies a number of hours, nM a number of minutes and nS a number of seconds. The number of seconds could be expressed as a decimal number, but all other numbers are integers. +Primitive + + + + + + kind + + + + The kind of phase fault. + + + + PhaseConnectedFaultKind + The type of fault connection among phases. + + + + + + lineToGround + The fault connects the indicated phases to ground. The line to line fault impedance is not used and assumed infinite. The full ground impedance is connected between each phase specified in the fault and ground, but not between the phases. + enum + + + + lineToLine + The fault connects the specified phases together without a connection to ground. The ground impedance of this fault is ignored. The line to line impedance is connected between each of the phases specified in the fault. For example three times for a three phase fault, one time for a two phase fault. A single phase fault should not be specified. + enum + + + + lineToLineToGround + The fault connects the indicated phases to ground and to each other. The line to line impedance is connected between each of the phases specified in the fault in a full mesh. For example three times for a three phase fault, one time for a two phase fault. A single phase fault should not be specified. The full ground impedance is connected between each phase specified in the fault and ground. + enum + + + + lineOpen + The fault is when the conductor path is broken between two terminals. Additional coexisting faults may be required if the broken conductor also causes connections to grounds or other lines or phases. + enum + + + + + repairTime + + + + NC + Time from when repair commences, including necessary troubleshooting, until the unit’s function(s) has (have) been resumed and the unit is ready for operation. + +Note 1: repair time is registered only for permanent faults and does not include administrative delays (voluntary waiting time). However, any preparations necessary to carry out repairs, for example the collection or ordering of spare parts, waiting for spare parts or transport, are included in the repair time. + +Note 2: the repair time is zero if a fault is left unrepaired deliberately. + +Note 3: this definition differs from the IEC 192-07-19 definition by also including the preparation time necessary to carry out the repairs mentioned in note 1. + + + + + phases + + + + The phases participating in the fault. The fault connections into these phases are further specified by the type of fault. + + + + PhaseCode + An unordered enumeration of phase identifiers. Allows designation of phases for both transmission and distribution equipment, circuits and loads. The enumeration, by itself, does not describe how the phases are connected together or connected to ground. Ground is not explicitly denoted as a phase. +Residential and small commercial loads are often served from single-phase, or split-phase, secondary circuits. For the example of s12N, phases 1 and 2 refer to hot wires that are 180 degrees out of phase, while N refers to the neutral wire. Through single-phase transformer connections, these secondary circuits may be served from one or two of the primary phases A, B, and C. For three-phase loads, use the A, B, C phase codes instead of s12N. +The integer values are from IEC 61968-9 to support revenue metering applications. + + + + + + ABCN + Phases A, B, C, and N. + enum + + + + ABC + Phases A, B, and C. + enum + + + + ABN + Phases A, B, and neutral. + enum + + + + ACN + Phases A, C and neutral. + enum + + + + BCN + Phases B, C, and neutral. + enum + + + + AB + Phases A and B. + enum + + + + AC + Phases A and C. + enum + + + + BC + Phases B and C. + enum + + + + AN + Phases A and neutral. + enum + + + + BN + Phases B and neutral. + enum + + + + CN + Phases C and neutral. + enum + + + + A + Phase A. + enum + + + + B + Phase B. + enum + + + + C + Phase C. + enum + + + + N + Neutral phase. + enum + + + + s1N + Secondary phase 1 and neutral. + enum + + + + s2N + Secondary phase 2 and neutral. + enum + + + + s12N + Secondary phases 1, 2, and neutral. + enum + + + + s1 + Secondary phase 1. + enum + + + + s2 + Secondary phase 2. + enum + + + + s12 + Secondary phase 1 and 2. + enum + + + + none + No phases specified. + enum + + + + X + Unknown non-neutral phase. + enum + + + + XY + Two unknown non-neutral phases. + enum + + + + XN + Unknown non-neutral phase plus neutral. + enum + + + + XYN + Two unknown non-neutral phases plus neutral. + enum + + + + + sequenceNumber + + + + NC + A chronological serial number indicating the order of the faults related to the grid disturbance. + +Primary faults have fault ID “1”, and secondary/latent faults have fault ID “2” or more. + + + + Integer + An integer number. The range is unspecified and not limited. +Primitive + + + + + + category + + + + NC + The fault category. + + + + FaultCategoryKind + The available kinds of fault categories. + + +NC + + + + technical + A fault due to a technical error. + enum + + + + operational + A fault due to a temporary human error. + +Note 1: incorrect operation is considered a fault in a component, or in other words, the incorrect operation is attributed to the unit which has been operated incorrectly. + enum + + + + system + A fault due to off-nominal parameters, exceeding of regulated norms and standards, or exceeding protection limits. + +Note 1: Typical examples of system fault causes are high/low frequency, power oscillations, overload, overvoltage, undervoltage or high harmonic content in voltage or current. Common causes for system faults are significant changes in load or generation and switching of lines or transformers with following change of load flow. + enum + + + + + occurredDateTime + + + + The date and time at which the fault occurred. + + + + DateTime + Date and time as "yyyy-mm-ddThh:mm:ss.sss", which conforms with ISO 8601. UTC time zone is specified as "yyyy-mm-ddThh:mm:ss.sssZ". A local timezone relative UTC is specified as "yyyy-mm-ddThh:mm:ss.sss-hh:mm". The second component (shown here as "ss.sss") could have any number of digits in its fractional part to allow any kind of precision beyond seconds. +Primitive + + + + + + isIntermittent + + + + NC + The kind of occurrence of the fault. It is either intermittent (true) or non-intermittent (false). +An intermittent fault is a recurring fault in the same unit and in the same place and for the same reason which repeats itself before it becomes necessary to carry out any repairs or eliminate the cause [8]. +A non-intermittent fault occurs only once. + +Note 1: a fault which repeats itself after an inspection, which did not result in the fault being pinpointed or repaired, is not considered an intermittent fault. A fault like this is considered as the beginning of a grid disturbance every time the fault occurs. +Note 2: one example of an intermittent fault is galloping lines. +Note 3: when deciding whether a fault is intermittent or not, one should consider more of the cause, location and consequence of the fault and not on the time between the faults. An intermittent fault is counted as one fault. However, all individual caused outages are connected to this fault. +Note 4: there is no standard for the required timespan between intermittent faults. Some system operators use 2 hours. + + + + Boolean + A type with the value space "true" and "false". +Primitive + + + + + + isPermanent + + + + NC + Whether the fault is a permanent (true) or a temporary (false) fault. +A permanent fault is a fault that will remain unless it is removed by some intervention. +Note 1 to entry: The “intervention” may be modification or maintenance. +Note 2: a permanent fault requires repair or adjustment before the unit is ready for operation. For example, the resetting of computers is considered as repair work and a switch in the wrong position is considered as a permanent fault. Signal acknowledgement is not considered as repair work. +Note 3: the duration of the disconnection is irrelevant when determining if a fault is permanent or not. + +A temporary fault is a fault where the unit or component is undamaged and is restored to service by switching operations without repair but possibly with on-site inspection. +Note 1: a temporary fault does not require measures other than the reconnection of circuit breakers, replacement of fuses or signal acknowledgement. +Note 2: the duration of the disconnection is irrelevant when determining if a fault is temporary or not. If, for example, a fault results in long-term disconnection and (on-site) inspection cannot pinpoint its source, the fault is considered to be temporary as no repairs are carried out. + + + + + faultKind + + + + NC + One fault can consist of several fault types. If a fault consists of several fault types, the most significant fault type is used. + +In case of developing faults, that is in faults changing from one type to another, the final type is given. + + + + FaultKind + One fault can consist of several fault types. If a fault consists of several fault types, the most significant fault type is used. + +In case of developing faults, that is in faults changing from one type to another, the final type is given. + + +NC + + + + functional + The components main function failed to occur. + enum + + + + undesiredFunction + If the component's main function occurred correctly but had an undesired result, that is, the fault. +Is only stated if the component is a circuit breaker, disconnector or control system. + enum + + + + other + For example, geomagnetic currents, SSR, capacitor bank imbalances, bad contact, overheating. + enum + + + + lineToGround + The fault connects the indicated phases to ground. The line to line fault impedance is not used and assumed infinite. The full ground impedance is connected between each phase specified in the fault and ground, but not between the phases. + enum + + + + lineToLine + The fault connects the specified phases together without a connection to ground. The ground impedance of this fault is ignored. The line to line impedance is connected between each of the phases specified in the fault. For example three times for a three phase fault, one time for a two phase fault. A single phase fault should not be specified. + enum + + + + lineToLineToGround + The fault connects the indicated phases to ground and to each other. The line to line impedance is connected between each of the phases specified in the fault in a full mesh. For example three times for a three phase fault, one time for a two phase fault. A single phase fault should not be specified. The full ground impedance is connected between each phase specified in the fault and ground. + enum + + + + lineOpen + The fault is when the conductor path is broken between two terminals. Additional coexisting faults may be required if the broken conductor also causes connections to grounds or other lines or phases. + enum + + + + + isDirectlyEarthed + + + + NC + Whether the power system is directly earthed (true) or compensated (false). +Usually optional for faults on units with reactive compensation with voltages lower than 100 kV. + + + + Fault + All faults at this location. + + + + + No + + + + Location + Location of this fault. + + + + + Yes + + + + GridDisturbance + A grid disturbance to contain all faults. + + + + + Yes + +NC + + + Fault + Faults that are related to one grid disturbance. + + + + + No + +NC + + + SystemOperator + The system operator in whose control area this fault occurred. + + + + + Yes + +NC + + + Fault + The faults that have occurred in this System Operator's control area. + + + + + No + +NC + + + Fault + The fault defined for this fault and cause combination. + + + + + Yes + +NC + + + FaultCause + The fault and cause combination to be simulated for this fault. + + + + + + No + +NC + + + Fault + The fault defined for this combination of a fault and an outage. + + + + + Yes + +NC + + + FaultOutage + The combination of a fault and an outage to be simulated for this fault. + + + + + No + +NC + + + FaultCause + Fault cause. +NC + + + + + + + certaintyLevel + + + + NC + The degree of certainty of which the cause of a fault is determined by a user. +Note 1: the used certainty levels are low, medium and high. High certainty level is used when the cause of a fault is 100 % certain or when the cause is the most probable cause and potentially determined by an expert. Medium certainty level is used when the cause of the fault is very probable but there is not enough evidence to fully support the claim. Low certainty level is used when there is some idea of what the cause could be with the help of, for example, the fault details or expert knowledge. +Note 2: the fault cause ‘unknown’ is used if no other fault cause can be chosen by any degree of certainty. + + + + CertaintyLevelKind + High certainty level is used when the cause of a fault is 100 % certain or when the cause is the most probable cause and potentially determined by an expert. + + +NC + + + + high + The certainty level is high. + enum + + + + medium + The certainty level is medium. + enum + + + + low + The certainty level is low. + enum + + + + none + The certainty level is none. + enum + + + + + mRID + + + + NC + Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. +For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements. + + + + FaultCauseType + The fault and cause combination to be simulated for this cause. + + + + + Yes + +NC + + + FaultCause + The fault cause defined for this fault and cause combination. + + + + + No + +NC + + + FaultCauseType + + Type of cause of the fault. + + + + + + FaultOutage + Association class for relating one fault and one outage. +NC + + + + + + + isMainFault + + + + NC + If true the fault outage is the main fault. + + + + + mRID + + + + NC + Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. +For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements. + + + + Outage + The outage defined for this combination of a fault and an outage. + + + + + Yes + +NC + + + FaultOutage + The combination of a fault and an outage to be simulated for this outage. + + + + + No + +NC + + + GridDisturbance + + Automatic, unintended, or manual undeferrable switching of breakers as a result of faults in the power grid. +NC + + + + + + IdentifiedObject + This is a root class to provide common identification for all classes needing identification and naming attributes. + + + + + + description + + + + The description is a free human readable text describing or naming the object. It may be non unique and may not correlate to a naming hierarchy. + + + + + mRID + + + + Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. +For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements. + + + + + name + + + + The name is any free human readable and possibly non unique text naming the object. + + + + Interruption + + Disappearance of the supply voltage at a delivery point. +NC + + + + + + + startDateTime + + + + NC + The date and time at which the interruption occurred. + + + + + duration + + + + NC + The duration of the interruption. + + + + + energyNotDelivered + + + + NC + The estimated energy which would have been delivered through the delivery point if no interruption and no transmission restrictions had occurred. + + + + RealEnergy + Real electrical energy. +CIMDatatype + + + + + + multiplier + + + + + + + UnitMultiplier + The unit multipliers defined for the CIM. When applied to unit symbols, the unit symbol is treated as a derived unit. Regardless of the contents of the unit symbol text, the unit symbol shall be treated as if it were a single-character unit symbol. Unit symbols should not contain multipliers, and it should be left to the multiplier to define the multiple for an entire data type. + +For example, if a unit symbol is "m2Pers" and the multiplier is "k", then the value is k(m**2/s), and the multiplier applies to the entire final value, not to any individual part of the value. This can be conceptualized by substituting a derived unit symbol for the unit type. If one imagines that the symbol "Þ" represents the derived unit "m2Pers", then applying the multiplier "k" can be conceptualized simply as "kÞ". + +For example, the SI unit for mass is "kg" and not "g". If the unit symbol is defined as "kg", then the multiplier is applied to "kg" as a whole and does not replace the "k" in front of the "g". In this case, the multiplier of "m" would be used with the unit symbol of "kg" to represent one gram. As a text string, this violates the instructions in IEC 80000-1. However, because the unit symbol in CIM is treated as a derived unit instead of as an SI unit, it makes more sense to conceptualize the "kg" as if it were replaced by one of the proposed replacements for the SI mass symbol. If one imagines that the "kg" were replaced by a symbol "Þ", then it is easier to conceptualize the multiplier "m" as creating the proper unit "mÞ", and not the forbidden unit "mkg". + + + + + + k + Kilo 10**3. + enum + + + + M + Mega 10**6. + enum + + + + + unit + + + + Wh + + + + UnitSymbol + The derived units defined for usage in the CIM. In some cases, the derived unit is equal to an SI unit. Whenever possible, the standard derived symbol is used instead of the formula for the derived unit. For example, the unit symbol Farad is defined as "F" instead of "CPerV". In cases where a standard symbol does not exist for a derived unit, the formula for the unit is used as the unit symbol. For example, density does not have a standard symbol and so it is represented as "kgPerm3". With the exception of the "kg", which is an SI unit, the unit symbols do not contain multipliers and therefore represent the base derived unit to which a multiplier can be applied as a whole. +Every unit symbol is treated as an unparseable text as if it were a single-letter symbol. The meaning of each unit symbol is defined by the accompanying descriptive text and not by the text contents of the unit symbol. +To allow the widest possible range of serializations without requiring special character handling, several substitutions are made which deviate from the format described in IEC 80000-1. The division symbol "/" is replaced by the letters "Per". Exponents are written in plain text after the unit as "m3" instead of being formatted as "m" with a superscript of 3 or introducing a symbol as in "m^3". The degree symbol "°" is replaced with the letters "deg". Any clarification of the meaning for a substitution is included in the description for the unit symbol. +Non-SI units are included in list of unit symbols to allow sources of data to be correctly labelled with their non-SI units (for example, a GPS sensor that is reporting numbers that represent feet instead of meters). This allows software to use the unit symbol information correctly convert and scale the raw data of those sources into SI-based units. +The integer values are used for harmonization with IEC 61850. + + + + + + W + Real power in watts (J/s). Electrical power may have real and reactive components. The real portion of electrical power (I&#178;R or VIcos(phi)), is expressed in Watts. See also apparent power and reactive power. + enum + + + + Wh + Real energy in watt hours. + enum + + + + + value + + + + + + + Float + A floating point number. The range is unspecified and not limited. +Primitive + + + + + + energyNotSupplied + + + + NC + The estimated energy which would have been supplied to end-users if no interruption and no transmission restrictions had occurred. + + + + + interruptedPower + + + + NC + The estimated power that was delivered through the delivery point when the interruption occurred. + + + + ActivePower + Product of RMS value of the voltage and the RMS value of the in-phase component of the current. +CIMDatatype + + + + + + multiplier + + + + M + + + + + unit + + + + W + + + + + value + + + + + + + Interruption + Multiple interruptions may be connected with an outage. + + + + + No + +NC + + + Outage + One outage may have multiple interruptions. + + + + + Yes + +NC + + + Location + + The place, scene, or point of something where someone or something has been, is, and/or will be at a given moment in time. It can be defined with one or more position points (coordinates) in a given coordinate system. + + + + + + PositionPoints + Sequence of position points describing this location, expressed in coordinate system 'Location.CoordinateSystem'. + + + + + No + + + + Location + Location described by this position point. + + + + + Yes + + + + Outage + + Document describing details of an active or planned outage in a part of the electrical network. +A non-planned outage may be created upon: +- a breaker trip, +- a fault indicator status change, +- a meter event indicating customer outage, +- a reception of one or more customer trouble calls, or +- an operator command, reflecting information obtained from the field crew. +Outage restoration may be performed using a switching plan which complements the outage information with detailed switching activities, including the relationship to the crew and work. +A planned outage may be created upon: +- a request for service, maintenance or construction work in the field, or +- an operator-defined outage for what-if/contingency network analysis. + + + + + PositionPoint + Set of spatial coordinates that determine a point, defined in the coordinate system specified in 'Location.CoordinateSystem'. Use a single position point instance to describe a point-oriented location. Use a sequence of position points to describe a line-oriented object (physical location of non-point oriented objects like cables or lines), or area of an object (like a substation or a geographical zone - in this case, have first and last position point with the same values). + + + + + + + xPosition + + + + X axis position. + + + + + yPosition + + + + Y axis position. + + + + + zPosition + + + + (if applicable) Z axis position. + + + + SystemOperator + System operator. +NC + + + + + UnplannedOutage + + Document describing the consequence of an unplanned outage in a part of the electrical network. For the purposes of this model, an unplanned outage refers to a state where energy is not delivered; such as, customers out of service, a street light is not served, etc. +A unplanned outage may be created upon: +- impacts the SAIDI calculation +- a breaker trip, +- a fault indicator status change, +- a meter event indicating customer outage, +- a reception of one or more customer trouble calls, or +- an operator command, reflecting information obtained from the field crew. +Outage restoration may be performed using a switching plan which complements the outage information with detailed switching activities, including the relationship to the crew and work. + + + + + + + startDateTime + + + + NC + The date and time at which the unplanned outage occurred. + + + + + duration + + + + NC + The duration of the unplanned outage. + + + + + tripKind + + + + NC + Whether the type of the trip due to the outage was automatic, automatic with successful automatic reclosing or manual. + +In case of a fault in the reclosing automatics resulting in lack of reclosing, automatic should be chosen as an alternative. + + + + TripKind + Whether the type of the trip due to the outage was automatic, automatic with successful automatic reclosing or manual. + +In case of a fault in the reclosing automatics resulting in lack of reclosing, automatic should be chosen as an alternative. + + +NC + + + + automatic + The trip that resulted in the outage was automatic. + +In case of a fault in the reclosing automatics resulting in lack of reclosing, automatic should be chosen as an alternative. + enum + + + + automaticWithUnsuccessfulAutomaticReclosing + The trip that resulted in an outage was correctly initiated but the automatic reclosing was unsuccessful. + +In case of a fault in the reclosing automatics resulting in lack of reclosing, automatic should be chosen as an alternative. + enum + + + + manual + The trip that resulted in the outage was manually cleared. + enum + + + + + autoReclosingKind + + + + NC + The type of autoreclosing that occurred with the trip. + +If high-speed automatic reclosing is successful at one end of a line, but the line needs to be reclosed manually at the other end, choose manual reclosing. + +In this document, high-speed automatic reclosing refers to automatic reclosing after less than 2 seconds. + + + + AutoReclosingKind + The type of autoreclosing that occurred with the trip. + +If high-speed automatic reclosing is successful at one end of a line, but the line needs to be reclosed manually at the other end, choose manual reclosing. + +In this document, high-speed automatic reclosing refers to automatic reclosing after less than 2 seconds. + + +NC + + + + automaticallyAfterLessThan2Seconds + If the automatic reclosing was successful in 2 seconds or less. + +Also known as "successful high-speed reclosing". + enum + + + + automaticallyAfter2SecondsOrMore + If the automatic reclosing was successful in 2 seconds or more. + +Also known as "successful high-speed reclosing". + enum + + + + manuallyAfterRestructuringOfOperations + If the reclosing was done manually after restructuring of operations. + enum + + + + manuallyAfterInspection + If the reclosing was done manually after inspection of the component. + enum + + + + manuallyWithoutEitherInspectionRepairOrRestructuringOfOperations + If the reclosing was done manually without any inspections, repairs or restructurings of operations. + enum + + + + unknown + If the type of auto-reclosing is unknown. + enum + + + + other + If the type of auto-reclosing is not unknown but does not fit the other categories, report it as other. + enum + + + + + systemUnitKind + + + + NC + The type of system unit of the component affected by the outage. + +A system unit is defined as: + +A group of components which are delimited by one or more circuit breakers. + +Note 1: the system unit concept has been defined to simplify the calculation of availability. While a system unit is always delimited by circuit breakers, an individual component may not always be. A system unit may therefore contain more than one component. + +Note 2: the circuit breakers are not included in the system unit. + +Note 3: a tripped element is synonymous to a tripped system unit. + +Note 4: the type of a system unit is determined by its dominant component. The available system unit types are power transformer, overhead line, cable, reactor, busbar, series capacitor, shunt capacitor and SVC. + +Note 5: when a system unit is no longer transporting or supplying electrical energy, the system unit is affected by an outage. The system unit is unavailable after the outage has occurred. + + + + SystemUnitKind + A system unit is defined as: + +A group of components which are delimited by one or more circuit breakers. + +Note 1: the system unit concept has been defined to simplify the calculation of availability. While a system unit is always delimited by circuit breakers, an individual component may not always be. A system unit may therefore contain more than one component. + +Note 2: the circuit breakers are not included in the system unit. + +Note 3: a tripped element is synonymous to a tripped system unit. + +Note 4: the type of a system unit is determined by its dominant component. The available system unit types are power transformer, overhead line, cable, reactor, busbar, series capacitor, shunt capacitor and SVC. + +Note 5: when a system unit is no longer transporting or supplying electrical energy, the system unit is affected by an outage. The system unit is unavailable after the outage has occurred. + + +NC + + + + cable + If the main function of the system unit is cable. + enum + + + + overheadLine + If the main function of the system unit is overhead line. + enum + + + + powerTransformer + If the main function of the system unit is power transformer. + enum + + + + reactor + If the main function of the system unit is reactor. + enum + + + + busbar + If the main function of the system unit is busbar. + enum + + + + seriesCapacitor + If the main function of the system unit is series capacitor. + enum + + + + shuntCapacitor + If the main function of the system unit is shunt capacitor. + enum + + + + svc + If the main function of the system unit is static var compensator (SVC). + enum + + + + other + If it is of other kind. + enum + + + + facts + If the main function of the system unit is FACTS. + enum + + + + dcConverter + If the main function of the system unit is DCConverter. + enum + + + + dcCable + If the main function of the system unit is DCCable. + enum + + + + + reportedStartTime + + + + The earliest start time of the Outage - as reported by some system or individual + + + + DocGridDisturbanceProfile + + This package contains datatypes used only in the RDFS header. + + + Date + Date as "yyyy-mm-dd", which conforms with ISO 8601. UTC time zone is specified as "yyyy-mm-ddZ". A local timezone relative UTC is specified as "yyyy-mm-dd(+/-)hh:mm". +Primitive + + + + + IRI + An IRI (Internationalized Resource Identifier) within an RDF graph is a Unicode string that conforms to the syntax defined in RFC 3987. +The primitive is serialized as rdf:resource in RDFXML. +IRIs in the RDF abstract syntax must be absolute, and may contain a fragment identifier. +IRI equality: Two IRIs are equal if and only if they are equivalent under Simple String Comparison according to section 5.1 of [RFC3987]. Further normalization must not be performed when comparing IRIs for equality. +IRIs are a generalization of URIs [RFC3986] that permits a wider range of Unicode characters. Every absolute URI and URL is an IRI, but not every IRI is an URI. When IRIs are used in operations that are only defined for URIs, they must first be converted according to the mapping defined in section 3.1 of [RFC3987]. A notable example is retrieval over the HTTP protocol. The mapping involves UTF-8 encoding of non-ASCII characters, %-encoding of octets not allowed in URIs, and Punycode-encoding of domain names. +Primitive +profcim + + + + + URL + A Uniform Resource Locator (URL), colloquially termed a web address, is a reference to a web resource that specifies its location on a computer network and a mechanism for retrieving it. A URL is a specific type of Uniform Resource Identifier (URI), although many people use the two terms interchangeably.URLs occur most commonly to reference web pages (http), but are also used for file transfer (ftp), email (mailto), database access (JDBC), and many other applications. +Primitive +profcim + + + + + StringFixedLanguage + A string consisting of a sequence of characters. The character encoding is UTF-8. The string length is unspecified and unlimited. +The primitive is serialized as literal without language support. +Primitive +profcim + + + + + StringIRI + An IRI (Internationalized Resource Identifier) within an RDF graph is a Unicode string that conforms to the syntax defined in RFC 3987. +The primitive is serialized as literal without language support. +IRIs in the RDF abstract syntax must be absolute, and may contain a fragment identifier. +IRI equality: Two IRIs are equal if and only if they are equivalent under Simple String Comparison according to section 5.1 of [RFC3987]. Further normalization must not be performed when comparing IRIs for equality. +IRIs are a generalization of URIs [RFC3986] that permits a wider range of Unicode characters. Every absolute URI and URL is an IRI, but not every IRI is an URI. When IRIs are used in operations that are only defined for URIs, they must first be converted according to the mapping defined in section 3.1 of [RFC3987]. A notable example is retrieval over the HTTP protocol. The mapping involves UTF-8 encoding of non-ASCII characters, %-encoding of octets not allowed in URIs, and Punycode-encoding of domain names. +Primitive +profcim + + + + diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/ImpactAssessmentMatrixProfile_v2_2_RDFSv2020_24Mar2023.rdf b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/ImpactAssessmentMatrixProfile_v2_2_RDFSv2020_24Mar2023.rdf new file mode 100644 index 0000000000..9eef7a3113 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/ImpactAssessmentMatrixProfile_v2_2_RDFSv2020_24Mar2023.rdf @@ -0,0 +1,612 @@ + + + + + + IAM + + vocabulary + + urn:iso:std:iec:61970-600-2:ed-1 + urn:iso:std:iec:61970-301:ed-7:amd1 + file://iec61970cim17v40_iec61968cim13v13a_iec62325cim03v17a.eap + urn:iso:std:iec:61970-401:draft:ed-1 + urn:iso:std:iec:61970-501:draft:ed-2 + file://CGMES-30v25_501-20v01.eap + 2.2.0 + ENTSO-E CIM EG CSA project + This vocabulary is describing the impact assessment matrix profile. + urn:uuid:1eb41c0b-3c58-4762-a79b-33220d051d32 + en-GB + https://www.apache.org/licenses/LICENSE-2.0 + 2023-03-24 + ENTSO-E + ENTSO-E + Impact Assessment Matrix Vocabulary + + + + + ImpactAssessmentMatrixProfile + + This package contains impact assessment matrix profile. + + + Float + A floating point number. The range is unspecified and not limited. +Primitive + + + + + OwnerRemedialActionAssessment + Owner remedial action assessment of the impact of their remedial action on neighboring system operators. +NC + + + + + + + mRID + + + + NC + Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. +For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements. + + + + String + A string consisting of a sequence of characters. The character encoding is UTF-8. The string length is unspecified and unlimited. +Primitive + + + + + RemedialActionImpact + Remedial action impact which is evaluated by the owner of the remedial action. + + + + + Yes + +NC + + + OwnerRemedialActionAssessment + The owner's assessment to the impacted system operator. + + + + + No + +NC + + + ImpactedSystemOperator + System operator that is evaluated to be impacted by the remedial action done by the remedial action owner. + + + + + Yes + +NC + + + OwnerRemedialActionAssessment + Owner's assessment of the remedial action. + + + + + No + +NC + + + QualitativeRemedialActionImpact + + Defines the qualitative impact for a remedial action. Relevant remedial action is assumed to have impact when the impact quantity is applied. +NC + + + + + + QuantitativeRemedialActionImpact + + Defines the quantitative impact for a remedial action. The value if the impact quantity is derived through offline calculation that has coursed an impact of an element that is monitored by the assessed system operator higher than the relevant threshold for the conducting equipment. +NC + + + + + + QuantitativeRemedialActionImpact + Quantitative remedial action impact when the remedial action is influencing equipment included in the sensitivity area. + + + + + No + +NC + + + SensitivityArea + Sensitivity area which should be monitored to evaluate the threshold given by the remedial action impact on relevant equipment. + + + + + Yes + +NC + + + RemedialActionImpact + Remedial action impact assessment based on a given agreement with a specific system operator. +NC + + + + + + impactQuantity + + + + NC + Delta, positive or negative, quantity that when it is applied to the remedial action, it will cause impact on a conducting equipment monitored by the assessed system operator. +Example of relevant remedial action changes are redispatching, countertrading, change of set point on HVDC systems or change of taps on phase-shifting transformers. + + + + + kind + + + + NC + The impact agreement kind. + + + + ImpactAgreementKind + The impact agreement for the remedial action. + + +NC + + + + noAgreement + No agreement is reached on the qualitative impact of a remedial action. + enum + + + + never + An agreement is reached that a remedial action is never impacting. + enum + + + + always + An agreement is reached that the remedial action is always impacting whichever the intensity. + enum + + + + + mRID + + + + NC + Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. +For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements. + + + + RemedialAction + The remedial action that has an impact. + + + + + Yes + +NC + + + RemedialActionImpact + This is the impact for a given remedial action. + + + + + No + +NC + + + RemedialActionImpact + The remedial action impact for a given assessing System Operator. + + + + + No + +NC + + + AssessingSystemOperator + The impacted System Operator that assigns a remedial action impact. + + + + + Yes + +NC + + + RemedialActionOutcomeValue + + Outcome of an impact assessment matrix for a remedial action. +NC + + + + + + + impactQuantity + + + + NC + Delta, positive or negative, quantity that when it is applied to the remedial action, it will cause impact on a conducting equipment monitored by the assessed system operator. +Example of relevant remedial action changes are redispatching, countertrading, change of set point on HVDC systems or change of taps on phase-shifting transformers. + + + + RemedialActionOutcomeValue + The remedial action outcome value associated with a remedial action. + + + + + No + +NC + + + RemedialAction + The remedial action that has a remedial action outcome value. + + + + + Yes + +NC + + + RemedialActionScheduleOutcomeValue + + Outcome of an impact assessment matrix for a remedial action schedule. +NC + + + + + + RemedialActionScheduleOutcomeValue + The remedial action schedule outcome value associated with a remedial action schedule. + + + + + No + +NC + + + RemedialActionSchedule + The remedial action schedule that has a remedial action schedule outcome value. + + + + + Yes + +NC + + + SensitivityArea + A monitoring area that defines the required observability area given by the sensitivity factors. +NC + + + + + CalculationBasedImpactAssessmentMatrix + + Calculation based impact assessment matrix. It relates to the remedial action schedule. Calculation-Based is the impact matrix determined by calculating the impact factors (eventually scaled by the intensity of the remedial action) and matching them against a threshold in a determined way described by the methodologies. +NC + + + + + + ConnectingImpactAssessmentMatrix + + Connecting system operator matrix is the impact matrix indicating which system operators are connecting for that specific remedial action. The concept of connecting system operator for a remedial action is defined by CSAm Article 2.1(14). +NC + + + + + + IdentifiedObject + This is a root class to provide common identification for all classes needing identification and naming attributes. + + + + + + description + + + + The description is a free human readable text describing or naming the object. It may be non unique and may not correlate to a naming hierarchy. + + + + + mRID + + + + Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. +For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements. + + + + + name + + + + The name is any free human readable and possibly non unique text naming the object. + + + + ImpactAssessmentMatrix + + The result of an impact assessment analysis for each remedial action or remedial action schedule onto the grid and operation of each system operator. +NC + + + + + ImpactAssessmentMatrix + the impact assessment matrix which has this value. + + + + + Yes + +NC + + + OutcomeValue + One of the values of the impact assessment matrix. + + + + + No + +NC + + + ListBasedImpactAssessmentMatrix + + List-Based is the impact matrix determined by agreement of the system operators involved. System operators jointly decide which Remedial Action (eventually scaled by the intensity of the remedial action) is impacting. +NC + + + + + + OutcomeValue + Outcome of an impact assessment matrix. +NC + + + + + + outcome + + + + NC + Outcome value. + + + + OutcomeImpactAssessmentKind + Outcome impact assessments kinds. + + +NC + + + + true + True. + enum + + + + false + False. + enum + + + + undecided + Undecided. Used only for list-based impact assessment matrix. + enum + + + + + mRID + + + + NC + Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. +For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements. + + + + ImpactedSystemOperator + The impacted system operator that has an outcome value. + + + + + Yes + +NC + + + OutcomeValue + Impact assessment outcome value for this impacted system operator. + + + + + No + +NC + + + RemedialAction + Remedial action describes one or more actions that can be performed on a given power system model situation to eliminate one or more identified breaches of constraints. The remedial action can be costly, and have a cost characteristic, or non costly. +NC + + + + + RemedialActionSchedule + A schedule for a determined remedial action. +NC + + + + + SystemOperator + System operator. +NC + + + + + DocImpactAssessmentMatrixProfile + + This package contains datatypes used only in the RDFS header. + + + Date + Date as "yyyy-mm-dd", which conforms with ISO 8601. UTC time zone is specified as "yyyy-mm-ddZ". A local timezone relative UTC is specified as "yyyy-mm-dd(+/-)hh:mm". +Primitive + + + + + DateTime + Date and time as "yyyy-mm-ddThh:mm:ss.sss", which conforms with ISO 8601. UTC time zone is specified as "yyyy-mm-ddThh:mm:ss.sssZ". A local timezone relative UTC is specified as "yyyy-mm-ddThh:mm:ss.sss-hh:mm". The second component (shown here as "ss.sss") could have any number of digits in its fractional part to allow any kind of precision beyond seconds. +Primitive + + + + + IRI + An IRI (Internationalized Resource Identifier) within an RDF graph is a Unicode string that conforms to the syntax defined in RFC 3987. +The primitive is serialized as rdf:resource in RDFXML. +IRIs in the RDF abstract syntax must be absolute, and may contain a fragment identifier. +IRI equality: Two IRIs are equal if and only if they are equivalent under Simple String Comparison according to section 5.1 of [RFC3987]. Further normalization must not be performed when comparing IRIs for equality. +IRIs are a generalization of URIs [RFC3986] that permits a wider range of Unicode characters. Every absolute URI and URL is an IRI, but not every IRI is an URI. When IRIs are used in operations that are only defined for URIs, they must first be converted according to the mapping defined in section 3.1 of [RFC3987]. A notable example is retrieval over the HTTP protocol. The mapping involves UTF-8 encoding of non-ASCII characters, %-encoding of octets not allowed in URIs, and Punycode-encoding of domain names. +Primitive +profcim + + + + + StringFixedLanguage + A string consisting of a sequence of characters. The character encoding is UTF-8. The string length is unspecified and unlimited. +The primitive is serialized as literal without language support. +Primitive +profcim + + + + + StringIRI + An IRI (Internationalized Resource Identifier) within an RDF graph is a Unicode string that conforms to the syntax defined in RFC 3987. +The primitive is serialized as literal without language support. +IRIs in the RDF abstract syntax must be absolute, and may contain a fragment identifier. +IRI equality: Two IRIs are equal if and only if they are equivalent under Simple String Comparison according to section 5.1 of [RFC3987]. Further normalization must not be performed when comparing IRIs for equality. +IRIs are a generalization of URIs [RFC3986] that permits a wider range of Unicode characters. Every absolute URI and URL is an IRI, but not every IRI is an URI. When IRIs are used in operations that are only defined for URIs, they must first be converted according to the mapping defined in section 3.1 of [RFC3987]. A notable example is retrieval over the HTTP protocol. The mapping involves UTF-8 encoding of non-ASCII characters, %-encoding of octets not allowed in URIs, and Punycode-encoding of domain names. +Primitive +profcim + + + + + URL + A Uniform Resource Locator (URL), colloquially termed a web address, is a reference to a web resource that specifies its location on a computer network and a mechanism for retrieving it. A URL is a specific type of Uniform Resource Identifier (URI), although many people use the two terms interchangeably.URLs occur most commonly to reference web pages (http), but are also used for file transfer (ftp), email (mailto), database access (JDBC), and many other applications. +Primitive +profcim + + + + diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/MonitoringAreaProfile_v2_2_RDFSv2020_24Mar2023.rdf b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/MonitoringAreaProfile_v2_2_RDFSv2020_24Mar2023.rdf new file mode 100644 index 0000000000..bad051128b --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/MonitoringAreaProfile_v2_2_RDFSv2020_24Mar2023.rdf @@ -0,0 +1,442 @@ + + + + + + MA + vocabulary + + urn:iso:std:iec:61970-600-2:ed-1 + urn:iso:std:iec:61970-301:ed-7:amd1 + file://iec61970cim17v40_iec61968cim13v13a_iec62325cim03v17a.eap + urn:iso:std:iec:61970-401:draft:ed-1 + urn:iso:std:iec:61970-501:draft:ed-2 + file://CGMES-30v25_501-20v01.eap + 2.2.0 + ENTSO-E CIM EG CSA project + This vocabulary is describing the monitoring area profile. + urn:uuid:41075091-91f0-4b14-a5b8-93945aa528ed + en-GB + https://www.apache.org/licenses/LICENSE-2.0 + 2023-03-24 + ENTSO-E + ENTSO-E + Monitoring area Vocabulary + + + + + MonitoringAreaProfile + + This package contains monitoring area profile. + + + IdentifiedObject + This is a root class to provide common identification for all classes needing identification and naming attributes. + + + + + + description + + + + The description is a free human readable text describing or naming the object. It may be non unique and may not correlate to a naming hierarchy. + + + + String + A string consisting of a sequence of characters. The character encoding is UTF-8. The string length is unspecified and unlimited. +Primitive + + + + + + mRID + + + + Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. +For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements. + + + + + name + + + + The name is any free human readable and possibly non unique text naming the object. + + + + PowerSystemResource + + A power system resource (PSR) can be an item of equipment such as a switch, an equipment container containing many individual items of equipment such as a substation, or an organisational entity such as sub-control area. Power system resources can have measurements associated. + + + + + AreaBorderTerminal + Area border terminal defines the terminals that are defining a monitoring area. +NC + + + + + + + mRID + + + + Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. +For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements. + + + + MonitoringArea + The MonitoringArea defined by this AreaBorderTerminal. + + + + + Yes + + + + AreaBorderTerminal + The AreaBorderTerminal which defines the MonitoringArea. + + + + + No + + + + Terminal + The Terminal that is part of an AreaBorderTerminal. + + + + + Yes + +NC + + + AreaBorderTerminal + The AreaBorderTerminal that has this Terminal. + + + + + No + +NC + + + ContingencyArea + + A monitoring area that defines the required contingency elements. This includes elements that are part of the external contingency list. +NC + + + + + + InfluenceArea + + Influence area is a monitoring area that is defined by calculating the equipment that is affected by the influence factors. +NC + + + + + + identificationInfluenceFactor + + + + NC + Power flow identification influence factor of a network element that is normalised in order to take into account potential impacts induced by differences in Permanently Admissible Transmission Loading (PATL) values. This is referred as identification influence threshold in CSA methodology. +The allowed value range is [0,100]. + + + + PerCent + Percentage on a defined base. For example, specify as 100 to indicate at the defined base. +CIMDatatype + + + + + + value + + + + Normally 0 to 100 on a defined base. + + + + Float + A floating point number. The range is unspecified and not limited. +Primitive + + + + + + unit + + + + none + + + + UnitSymbol + The derived units defined for usage in the CIM. In some cases, the derived unit is equal to an SI unit. Whenever possible, the standard derived symbol is used instead of the formula for the derived unit. For example, the unit symbol Farad is defined as "F" instead of "CPerV". In cases where a standard symbol does not exist for a derived unit, the formula for the unit is used as the unit symbol. For example, density does not have a standard symbol and so it is represented as "kgPerm3". With the exception of the "kg", which is an SI unit, the unit symbols do not contain multipliers and therefore represent the base derived unit to which a multiplier can be applied as a whole. +Every unit symbol is treated as an unparseable text as if it were a single-letter symbol. The meaning of each unit symbol is defined by the accompanying descriptive text and not by the text contents of the unit symbol. +To allow the widest possible range of serializations without requiring special character handling, several substitutions are made which deviate from the format described in IEC 80000-1. The division symbol "/" is replaced by the letters "Per". Exponents are written in plain text after the unit as "m3" instead of being formatted as "m" with a superscript of 3 or introducing a symbol as in "m^3". The degree symbol "°" is replaced with the letters "deg". Any clarification of the meaning for a substitution is included in the description for the unit symbol. +Non-SI units are included in list of unit symbols to allow sources of data to be correctly labelled with their non-SI units (for example, a GPS sensor that is reporting numbers that represent feet instead of meters). This allows software to use the unit symbol information correctly convert and scale the raw data of those sources into SI-based units. +The integer values are used for harmonization with IEC 61850. + + + + + + none + Dimension less quantity, e.g. count, per unit, etc. + enum + + + + + multiplier + + + + none + + + + UnitMultiplier + The unit multipliers defined for the CIM. When applied to unit symbols, the unit symbol is treated as a derived unit. Regardless of the contents of the unit symbol text, the unit symbol shall be treated as if it were a single-character unit symbol. Unit symbols should not contain multipliers, and it should be left to the multiplier to define the multiple for an entire data type. + +For example, if a unit symbol is "m2Pers" and the multiplier is "k", then the value is k(m**2/s), and the multiplier applies to the entire final value, not to any individual part of the value. This can be conceptualized by substituting a derived unit symbol for the unit type. If one imagines that the symbol "Þ" represents the derived unit "m2Pers", then applying the multiplier "k" can be conceptualized simply as "kÞ". + +For example, the SI unit for mass is "kg" and not "g". If the unit symbol is defined as "kg", then the multiplier is applied to "kg" as a whole and does not replace the "k" in front of the "g". In this case, the multiplier of "m" would be used with the unit symbol of "kg" to represent one gram. As a text string, this violates the instructions in IEC 80000-1. However, because the unit symbol in CIM is treated as a derived unit instead of as an SI unit, it makes more sense to conceptualize the "kg" as if it were replaced by one of the proposed replacements for the SI mass symbol. If one imagines that the "kg" were replaced by a symbol "Þ", then it is easier to conceptualize the multiplier "m" as creating the proper unit "mÞ", and not the forbidden unit "mkg". + + + + + + none + No multiplier or equivalently multiply by 1. + enum + + + + + filteringInfluenceFactor + + + + NC + Power flow filtering influence factor of a network element not normalised. This is referred as power flow influence threshold in CSA methodology. + +The allowed value range is [0,100]. + + + + + voltageInfluenceFactor + + + + NC + Voltage influence factor of a network element as defined in the CSA methodology. +The allowed value range is [0,100]. + + + + ObservabilityArea + + A monitoring area that is given by a real time measurement. +NC + + + + + + SensitivityArea + + A monitoring area that defines the required observability area given by the sensitivity factors. +NC + + + + + + SynchronousArea + A synchronous area is an electrical area covered by interconnect with a common system frequency in a steady-state. +NC + + + + + SynchronousArea + The synchronous area that has this monitoring area. + + + + + Yes + +NC + + + MonitoringArea + The monitoring area that is part of this synchronous area. + + + + + No + +NC + + + SystemOperator + System operator. +NC + + + + + SystemOperator + The system operator that operates this monitoring area. + + + + + Yes + +NC + + + MonitoringArea + The monitoring area that is operated by this system operator. + + + + + No + +NC + + + MonitoringArea + + A coherent part of the interconnected electrical power system, that includes the system operators' responsibility area and the surrounding parts of other system operators' responsibility area, that need to be monitored for security assessment. +NC + + + + + + Terminal + An AC electrical connection point to a piece of conducting equipment. Terminals are connected at physical connection points called connectivity nodes. + + + + + DocMonitoringAreaProfile + + This package contains datatypes used only in the RDFS header. + + + DateTime + Date and time as "yyyy-mm-ddThh:mm:ss.sss", which conforms with ISO 8601. UTC time zone is specified as "yyyy-mm-ddThh:mm:ss.sssZ". A local timezone relative UTC is specified as "yyyy-mm-ddThh:mm:ss.sss-hh:mm". The second component (shown here as "ss.sss") could have any number of digits in its fractional part to allow any kind of precision beyond seconds. +Primitive + + + + + IRI + An IRI (Internationalized Resource Identifier) within an RDF graph is a Unicode string that conforms to the syntax defined in RFC 3987. +The primitive is serialized as rdf:resource in RDFXML. +IRIs in the RDF abstract syntax must be absolute, and may contain a fragment identifier. +IRI equality: Two IRIs are equal if and only if they are equivalent under Simple String Comparison according to section 5.1 of [RFC3987]. Further normalization must not be performed when comparing IRIs for equality. +IRIs are a generalization of URIs [RFC3986] that permits a wider range of Unicode characters. Every absolute URI and URL is an IRI, but not every IRI is an URI. When IRIs are used in operations that are only defined for URIs, they must first be converted according to the mapping defined in section 3.1 of [RFC3987]. A notable example is retrieval over the HTTP protocol. The mapping involves UTF-8 encoding of non-ASCII characters, %-encoding of octets not allowed in URIs, and Punycode-encoding of domain names. +Primitive +profcim + + + + + Date + Date as "yyyy-mm-dd", which conforms with ISO 8601. UTC time zone is specified as "yyyy-mm-ddZ". A local timezone relative UTC is specified as "yyyy-mm-dd(+/-)hh:mm". +Primitive + + + + + StringFixedLanguage + A string consisting of a sequence of characters. The character encoding is UTF-8. The string length is unspecified and unlimited. +The primitive is serialized as literal without language support. +Primitive +profcim + + + + + StringIRI + An IRI (Internationalized Resource Identifier) within an RDF graph is a Unicode string that conforms to the syntax defined in RFC 3987. +The primitive is serialized as literal without language support. +IRIs in the RDF abstract syntax must be absolute, and may contain a fragment identifier. +IRI equality: Two IRIs are equal if and only if they are equivalent under Simple String Comparison according to section 5.1 of [RFC3987]. Further normalization must not be performed when comparing IRIs for equality. +IRIs are a generalization of URIs [RFC3986] that permits a wider range of Unicode characters. Every absolute URI and URL is an IRI, but not every IRI is an URI. When IRIs are used in operations that are only defined for URIs, they must first be converted according to the mapping defined in section 3.1 of [RFC3987]. A notable example is retrieval over the HTTP protocol. The mapping involves UTF-8 encoding of non-ASCII characters, %-encoding of octets not allowed in URIs, and Punycode-encoding of domain names. +Primitive +profcim + + + + + URL + A Uniform Resource Locator (URL), colloquially termed a web address, is a reference to a web resource that specifies its location on a computer network and a mechanism for retrieving it. A URL is a specific type of Uniform Resource Identifier (URI), although many people use the two terms interchangeably.URLs occur most commonly to reference web pages (http), but are also used for file transfer (ftp), email (mailto), database access (JDBC), and many other applications. +Primitive +profcim + + + + diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/ObjectRegistryProfile_v2_1_RDFSv2020_24Mar2023.rdf b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/ObjectRegistryProfile_v2_1_RDFSv2020_24Mar2023.rdf new file mode 100644 index 0000000000..740dd980c7 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/ObjectRegistryProfile_v2_1_RDFSv2020_24Mar2023.rdf @@ -0,0 +1,456 @@ + + + + + + OR + + vocabulary + + urn:iso:std:iec:61970-600-2:ed-1 + urn:iso:std:iec:61970-301:ed-7:amd1 + file://iec61970cim17v40_iec61968cim13v13a_iec62325cim03v17a.eap + urn:iso:std:iec:61970-401:draft:ed-1 + urn:iso:std:iec:61970-501:draft:ed-2 + file://CGMES-30v25_501-20v01.eap + 2.1.0 + ENTSO-E CIM EG CSA project + This vocabulary is describing the object registry profile. + urn:uuid:14166b65-abaa-4611-b466-34975c15c27d + en-GB + https://www.apache.org/licenses/LICENSE-2.0 + 2022-12-29 + ENTSO-E + ENTSO-E + Object Registry vocabulary + + + + + ObjectRegistryProfile + + This package contains the equipment object registry profile. + + + IdentifiedObject + This is a root class to provide common identification for all classes needing identification and naming attributes. + + + + + + + aliasName + + + + The aliasName is free text human readable name of the object alternative to IdentifiedObject.name. It may be non unique and may not correlate to a naming hierarchy. +The attribute aliasName is retained because of backwards compatibility between CIM relases. It is however recommended to replace aliasName with the Name class as aliasName is planned for retirement at a future time. + + + + String + A string consisting of a sequence of characters. The character encoding is UTF-8. The string length is unspecified and unlimited. +Primitive + + + + + + energyIdentCodeEic + + + + European + deprecated + The attribute is used for an exchange of the EIC code (Energy identification Code). The length of the string is 16 characters as defined by the EIC code. For details on EIC scheme please refer to ENTSO-E web site. + + + + + description + + + + The description is a free human readable text describing or naming the object. It may be non unique and may not correlate to a naming hierarchy. + + + + + mRID + + + + Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. +For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements. + + + + + name + + + + The name is any free human readable and possibly non unique text naming the object. + + + + + shortName + + + + European + deprecated + The attribute is used for an exchange of a human readable short name with length of the string 12 characters maximum. + + + + IdentifiedObject + The IdentifiedObject whose type is identified by ObjectType. + + + + + No + +NC + + + ObjectType + The object type of the IdentifiedObject. + + + + + Yes + +NC + + + UniqueIdentifiedObject + Identified object that this alternative identifier designates. + + + + + Yes + +NC + + + AlternativeIdentifier + All alternative identifiers of this identified object. No two identified objects can have the same alternative identifier. + + + + + No + +NC + + + IdentifiedObject + Identified object that this name designates. + + + + + Yes + +NC + + + Name + All names of this identified object. Names may be but are not guaranteed to be unique. + + + + + No + +NC + + + Name + The Name class provides the means to define any number of human readable names for an object. A name is <b>not</b> to be used for defining inter-object relationships. For inter-object relationships instead use the object identification 'mRID'. + + + + + + + language + + + + NC + Shall be specified as an IETF BCP 47 language tag (e.g. en-US). Applies to the Name.name attribute. +IETF language tags combine subtags from other standards such as ISO 639, ISO 15924, ISO 3166-1, and UN M.49. The tag structure has been standardized by the IETF in Best Current Practice (BCP) 47; the subtags are maintained by the IANA Language Subtag Registry. + + + + + name + + + + Any free text that used as a name or alternative identifier of the object. + + + + + mRID + + + + NC + Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. +For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements. + + + + NamingAuthority + Authority responsible for managing this name. + + + + + Yes + +NC + + + Name + All names managed by this authority. + + + + + No + +NC + + + NameType + Type of this name. + + + + + Yes + +NC + + + Name + All names of this type. + + + + + No + +NC + + + NameType + Type of name. Possible values for attribute 'name' are implementation dependent but standard profiles may specify types. An enterprise may have multiple IT systems each having its own local name for the same object, e.g. a planning system may have different names from an EMS. An object may also have different names within the same IT system, e.g. localName as defined in CIM version 14. The definition from CIM14 is: +The localName is a human readable name of the object. It is a free text name local to a node in a naming hierarchy similar to a file directory structure. A power system related naming hierarchy may be: Substation, VoltageLevel, Equipment etc. Children of the same parent in such a hierarchy have names that typically are unique among them. + + + + + + + name + + + + Name of the name type. + + + + + description + + + + Description of the name type. + + + + + mRID + + + + NC + Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. +For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements. + + + + NamingAuthority + Authority responsible for managing this name type. + + + + + Yes + +NC + + + NameType + All name types managed by this authority. + + + + + No + +NC + + + NamingAuthority + Authority responsible for creation and management of names of a given name type and/or name; typically an organization or an enterprise system. +NC + + + + + + + description + + + + NC + Description of the name authority. + + + + + mRID + + + + NC + Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. +For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements. + + + + + name + + + + NC + Name of the name authority. + + + + ObjectType + Identifies the specialised type of an object when the instance object is serialised using a generalised class. It may be useful when the object type is not otherwise included in the exchange. For example, a Meter may be serialised as an EndDevice in message exchanges and need to have the ObjectType.type be specified as 'Meter' to provide context to the message receiver. +NC + + + + + + + type + + + + NC + The specialised type of an object when the instance object is serialised using a generalised class. For example, a Meter being serialised as an EndDevice in a message exchange should have the type attribute specified as 'Meter'. + + + + DocObjectRegistryProfile + + This package contains datatypes used only in the RDFS header. + + + Date + Date as "yyyy-mm-dd", which conforms with ISO 8601. UTC time zone is specified as "yyyy-mm-ddZ". A local timezone relative UTC is specified as "yyyy-mm-dd(+/-)hh:mm". +Primitive + + + + + DateTime + Date and time as "yyyy-mm-ddThh:mm:ss.sss", which conforms with ISO 8601. UTC time zone is specified as "yyyy-mm-ddThh:mm:ss.sssZ". A local timezone relative UTC is specified as "yyyy-mm-ddThh:mm:ss.sss-hh:mm". The second component (shown here as "ss.sss") could have any number of digits in its fractional part to allow any kind of precision beyond seconds. +Primitive + + + + + IRI + An IRI (Internationalized Resource Identifier) within an RDF graph is a Unicode string that conforms to the syntax defined in RFC 3987. +The primitive is serialized as rdf:resource in RDFXML. +IRIs in the RDF abstract syntax must be absolute, and may contain a fragment identifier. +IRI equality: Two IRIs are equal if and only if they are equivalent under Simple String Comparison according to section 5.1 of [RFC3987]. Further normalization must not be performed when comparing IRIs for equality. +IRIs are a generalization of URIs [RFC3986] that permits a wider range of Unicode characters. Every absolute URI and URL is an IRI, but not every IRI is an URI. When IRIs are used in operations that are only defined for URIs, they must first be converted according to the mapping defined in section 3.1 of [RFC3987]. A notable example is retrieval over the HTTP protocol. The mapping involves UTF-8 encoding of non-ASCII characters, %-encoding of octets not allowed in URIs, and Punycode-encoding of domain names. +Primitive +profcim + + + + + StringFixedLanguage + A string consisting of a sequence of characters. The character encoding is UTF-8. The string length is unspecified and unlimited. +The primitive is serialized as literal without language support. +Primitive +profcim + + + + + StringIRI + An IRI (Internationalized Resource Identifier) within an RDF graph is a Unicode string that conforms to the syntax defined in RFC 3987. +The primitive is serialized as literal without language support. +IRIs in the RDF abstract syntax must be absolute, and may contain a fragment identifier. +IRI equality: Two IRIs are equal if and only if they are equivalent under Simple String Comparison according to section 5.1 of [RFC3987]. Further normalization must not be performed when comparing IRIs for equality. +IRIs are a generalization of URIs [RFC3986] that permits a wider range of Unicode characters. Every absolute URI and URL is an IRI, but not every IRI is an URI. When IRIs are used in operations that are only defined for URIs, they must first be converted according to the mapping defined in section 3.1 of [RFC3987]. A notable example is retrieval over the HTTP protocol. The mapping involves UTF-8 encoding of non-ASCII characters, %-encoding of octets not allowed in URIs, and Punycode-encoding of domain names. +Primitive +profcim + + + + + URL + A Uniform Resource Locator (URL), colloquially termed a web address, is a reference to a web resource that specifies its location on a computer network and a mechanism for retrieving it. A URL is a specific type of Uniform Resource Identifier (URI), although many people use the two terms interchangeably.URLs occur most commonly to reference web pages (http), but are also used for file transfer (ftp), email (mailto), database access (JDBC), and many other applications. +Primitive +profcim + + + + diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/PowerScheduleProfile_v2_2_RDFSv2020_24Mar2023.rdf b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/PowerScheduleProfile_v2_2_RDFSv2020_24Mar2023.rdf new file mode 100644 index 0000000000..e7ad6fbae5 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/PowerScheduleProfile_v2_2_RDFSv2020_24Mar2023.rdf @@ -0,0 +1,932 @@ + + + + + + PS + vocabulary + + urn:iso:std:iec:61970-600-2:ed-1 + urn:iso:std:iec:61970-301:ed-7:amd1 + file://iec61970cim17v40_iec61968cim13v13a_iec62325cim03v17a.eap + urn:iso:std:iec:61970-401:draft:ed-1 + urn:iso:std:iec:61970-501:draft:ed-2 + file://CGMES-30v25_501-20v01.eap + 2.2.0 + ENTSO-E CIM EG CSA project + This vocabulary is describing the object registry profile. + urn:uuid:470c9792-7798-4eb6-b7f2-6e18293c5f7b + en-GB + https://www.apache.org/licenses/LICENSE-2.0 + 2023-03-24 + ENTSO-E + ENTSO-E + Power schedule vocabulary + + + + + PowerScheduleProfile + + This package contains the power schedule profile. + + + PowerRemedialAction + Energy remedial action describes actions to rearrange power schedules. +NC + + + + + PowerRemedialAction + Power remedial action which belongs to the Remedial Action Schedule. + + + + + Yes + +NC + + + PowerSchedule + Power schedule which contains the power remedial action. + + + + + No + +NC + + + AreaDispatchableUnit + Allocates a given producing or consuming unit, including direct current corridor and collection of units, to a given control area (through the scheduling area) for supporting the control of the given area through dispatch instruction. +NC + + + + + AreaDispatchableUnit + Area disptachable unit which belongs to the power schedule. + + + + + Yes + +NC + + + PowerSchedule + Power schedule which has area dispatchable units. + + + + + No + +NC + + + BaseIrregularTimeSeries + + Time series that has irregular points in time. +NC + + + + + BaseTimeSeries + + Time series of values at points in time. +NC + + + + + + interpolationKind + + + + Kind of interpolation done between time point. + + + + TimeSeriesInterpolationKind + Kinds of interpolation of values between two time point. + + +NC + + + + none + No interpolation is applied. + enum + + + + zero + The value between two time points is set to zero. + enum + + + + previous + The value between two time points is set to previous value. + enum + + + + next + The value between two time points is set to next value. + enum + + + + linear + Linear interpolation is applied for values between two time points. + enum + + + + + kind + + + + Kind of base time series. + + + + BaseTimeSeriesKind + Kind of time series. + + +NC + + + + forecast + Time series is forecast data. The values represent the result of scientific predictions based on historical time stamped data. + enum + + + + hindcast + Time series is hindcast data. The value represent probable past (historic) condition given by calculation done using actual values. For instance, determine the among of wind based on the energy produced by wind. However, hindcast is typical the result of a simulated forecasts for historical periods. + enum + + + + schedule + Time series is schedule data. The values represent the result of a committed and plan forecast data that has been through a quality control and could incur penalty when not followed. + enum + + + + actual + Time series is actual data. The values represent measured or calculated values that represent the actual behaviour. + enum + + + + + generatedAtTime + + + + The time this time series (entity) come to existents and available for use. + + + + DateTime + Date and time as "yyyy-mm-ddThh:mm:ss.sss", which conforms with ISO 8601. UTC time zone is specified as "yyyy-mm-ddThh:mm:ss.sssZ". A local timezone relative UTC is specified as "yyyy-mm-ddThh:mm:ss.sss-hh:mm". The second component (shown here as "ss.sss") could have any number of digits in its fractional part to allow any kind of precision beyond seconds. +Primitive + + + + + + percentile + + + + The percentile is a number where a certain percentage of scores/ranking/values of a sample fall below that number. This is a way for expressing uncertainty in the number provided. + + + + Integer + An integer number. The range is unspecified and not limited. +Primitive + + + + + + method + + + + Method used to create the value. This is used for identification in the case where there is multiple time series for the same validity period and kind. + + + + String + A string consisting of a sequence of characters. The character encoding is UTF-8. The string length is unspecified and unlimited. +Primitive + + + + + BiddingZone + A bidding zone is a market-based method for handling power transmission congestion. It consists of scheduling areas that include the relevant production (supply) and consumption (demand) to form an electrical area with the same market price without capacity allocation. +NC + + + + + BiddingZone + Bidding zone which has powerschedules. + + + + + Yes + +NC + + + PowerSchedule + Power schedule which belongs to the power bidding zone. + + + + + No + +NC + + + DCTieCorridor + A collection of one or more direct current poles that connect two different control areas. +NC + + + + + DCTieCorridor + DC tie corridor which belongs to the power schedule. + + + + + Yes + +NC + + + PowerSchedule + Power schedule which has DC tie corridors. + + + + + No + +NC + + + DCTieCorridor + Hydro pump which belongs to the power schedule. + + + + + Yes + +NC + + + MustRunSchedule + Must run schedule which has DC tie corridors. + + + + + No + +NC + + + EnergyConnection + A connection of energy generation or consumption on the power system model. + + + + + EnergyConnection + The energy connection that has a power schedule. + + + + + Yes + +NC + + + PowerSchedule + The power schedule for this energy connection. + + + + + No + +NC + + + EnergyTypeReference + An energy type reference refers to an energy characteristic that is needed for reporting, e.g. European Energy Certificate System (EECS). The kind of energy should be possible to be linked with different type of energy forecast, e.g. wind production for a given area based on wind forecast. +NC + + + + + EnergyTypeReference + Energy type reference which belongs to the power bidding zone. + + + + + Yes + +NC + + + PowerSchedule + Power schedule which has energy type references. + + + + + No + +NC + + + GeneratingUnit + A single or set of synchronous machines for converting mechanical power into alternating-current power. For example, individual machines within a set may be defined for scheduling purposes while a single control signal is derived for the set. In this case there would be a GeneratingUnit for each member of the set and an additional GeneratingUnit corresponding to the set. + + + + + GeneratingUnit + Generating unit which belongs to the power schedule. + + + + + Yes + +NC + + + PowerSchedule + Power schedule which has generating unit. + + + + + No + +NC + + + GeneratingUnit + Generating unit which belongs to the must run schedule. + + + + + Yes + +NC + + + MustRunSchedule + Must run schedule which has generating units. + + + + + No + +NC + + + HydroPump + A synchronous motor-driven pump, typically associated with a pumped storage plant. + + + + + HydroPump + Hydro pump which belongs to the power schedule. + + + + + Yes + +NC + + + PowerSchedule + Power schedule which has hydro pump. + + + + + No + +NC + + + IdentifiedObject + This is a root class to provide common identification for all classes needing identification and naming attributes. + + + + + + description + + + + The description is a free human readable text describing or naming the object. It may be non unique and may not correlate to a naming hierarchy. + + + + + mRID + + + + Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. +For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements. + + + + + name + + + + The name is any free human readable and possibly non unique text naming the object. + + + + MustRunSchedule + + Time series represent irregular must-run instruction values at given points in time. This could be instruction to a reliability must-run (RMR) generation facility that is necessary to run to meet certain operating conditions in order to maintain the security of power systems in a competitive environment. +NC + + + + + + MustRunSchedule + Time series the time point values belongs to. + + + + + Yes + +NC + + + MustRunTimePoint + Value for the point in time. + + + + + + No + +NC + + + MustRunTimePoint + Must-run instruction value at a given point in time. +NC + + + + + + + atTime + + + + NC + The time the data is valid for. + + + + + mustRun + + + + NC + True, if the must-run instruction is active this time point. Otherwise false. + + + + Boolean + A type with the value space "true" and "false". +Primitive + + + + + + minP + + + + NC + Minimum active power injection that is needed to meet must-run requirement. This value can be higher or equal to minimum operational limit. Load sign convention is used, i.e. positive sign means flow out from a node. + + + + ActivePower + Product of RMS value of the voltage and the RMS value of the in-phase component of the current. +CIMDatatype + + + + + + multiplier + + + + M + + + + UnitMultiplier + The unit multipliers defined for the CIM. When applied to unit symbols, the unit symbol is treated as a derived unit. Regardless of the contents of the unit symbol text, the unit symbol shall be treated as if it were a single-character unit symbol. Unit symbols should not contain multipliers, and it should be left to the multiplier to define the multiple for an entire data type. + +For example, if a unit symbol is "m2Pers" and the multiplier is "k", then the value is k(m**2/s), and the multiplier applies to the entire final value, not to any individual part of the value. This can be conceptualized by substituting a derived unit symbol for the unit type. If one imagines that the symbol "Þ" represents the derived unit "m2Pers", then applying the multiplier "k" can be conceptualized simply as "kÞ". + +For example, the SI unit for mass is "kg" and not "g". If the unit symbol is defined as "kg", then the multiplier is applied to "kg" as a whole and does not replace the "k" in front of the "g". In this case, the multiplier of "m" would be used with the unit symbol of "kg" to represent one gram. As a text string, this violates the instructions in IEC 80000-1. However, because the unit symbol in CIM is treated as a derived unit instead of as an SI unit, it makes more sense to conceptualize the "kg" as if it were replaced by one of the proposed replacements for the SI mass symbol. If one imagines that the "kg" were replaced by a symbol "Þ", then it is easier to conceptualize the multiplier "m" as creating the proper unit "mÞ", and not the forbidden unit "mkg". + + + + + + M + Mega 10**6. + enum + + + + + unit + + + + W + + + + UnitSymbol + The derived units defined for usage in the CIM. In some cases, the derived unit is equal to an SI unit. Whenever possible, the standard derived symbol is used instead of the formula for the derived unit. For example, the unit symbol Farad is defined as "F" instead of "CPerV". In cases where a standard symbol does not exist for a derived unit, the formula for the unit is used as the unit symbol. For example, density does not have a standard symbol and so it is represented as "kgPerm3". With the exception of the "kg", which is an SI unit, the unit symbols do not contain multipliers and therefore represent the base derived unit to which a multiplier can be applied as a whole. +Every unit symbol is treated as an unparseable text as if it were a single-letter symbol. The meaning of each unit symbol is defined by the accompanying descriptive text and not by the text contents of the unit symbol. +To allow the widest possible range of serializations without requiring special character handling, several substitutions are made which deviate from the format described in IEC 80000-1. The division symbol "/" is replaced by the letters "Per". Exponents are written in plain text after the unit as "m3" instead of being formatted as "m" with a superscript of 3 or introducing a symbol as in "m^3". The degree symbol "°" is replaced with the letters "deg". Any clarification of the meaning for a substitution is included in the description for the unit symbol. +Non-SI units are included in list of unit symbols to allow sources of data to be correctly labelled with their non-SI units (for example, a GPS sensor that is reporting numbers that represent feet instead of meters). This allows software to use the unit symbol information correctly convert and scale the raw data of those sources into SI-based units. +The integer values are used for harmonization with IEC 61850. + + + + + + W + Real power in watts (J/s). Electrical power may have real and reactive components. The real portion of electrical power (I&#178;R or VIcos(phi)), is expressed in Watts. See also apparent power and reactive power. + enum + + + + VAr + Reactive power in volt amperes reactive. The “reactive” or “imaginary” component of electrical power (VIsin(phi)). (See also real power and apparent power). +Note: Different meter designs use different methods to arrive at their results. Some meters may compute reactive power as an arithmetic value, while others compute the value vectorially. The data consumer should determine the method in use and the suitability of the measurement for the intended purpose. + enum + + + + + value + + + + + + + Float + A floating point number. The range is unspecified and not limited. +Primitive + + + + + + minQ + + + + NC + Minimum reactive power injection that is needed to meet must-run requirement. This value can be higher or equal to minimum operational limit. Load sign convention is used, i.e. positive sign means flow out from a node. + + + + ReactivePower + Product of RMS value of the voltage and the RMS value of the quadrature component of the current. +CIMDatatype + + + + + + value + + + + + + + + unit + + + + VAr + + + + + multiplier + + + + M + + + + PowerElectronicsUnit + A generating unit or battery or aggregation that connects to the AC network using power electronics rather than rotating machines. + + + + + PowerElectronicsUnit + Power electronics unit which belongs to the power schedule. + + + + + Yes + +NC + + + PowerSchedule + Power schedule which has power electronics unit. + + + + + No + +NC + + + PowerSchedule + + Time series represent irregular power, active and reactive, values at given points in time. +NC + + + + + + PowerSchedule + Time series the time point values belongs to. + + + + + Yes + +NC + + + PowerTimePoint + Value for the point in time. + + + + + + No + +NC + + + SchedulingArea + Scheduling area which has power schedules. + + + + + Yes + + + + PowerSchedule + Power schedule which belongs to the scheduling area. + + + + + No + + + + PowerTimePoint + Power, active and reactive, value at a given point in time. +NC + + + + + + + atTime + + + + NC + The time the data is valid for. + + + + + p + + + + NC + Active power injection. Load sign convention is used, i.e. positive sign means flow out from a node. + + + + + price + + + + NC + Price for the scheduled active power per unit of active power. e.g. per MW. + + + + Decimal + Decimal is the base-10 notational system for representing real numbers. +Primitive + + + + + + q + + + + NC + Reactive power injection. Load sign convention is used, i.e. positive sign means flow out from a node. + + + + + activatedP + + + + NC + Active power activated as part of redispatch. Negative number means that the value is scheduling down. Positive number means that the value is scheduling up. + + + + + activatedPrice + + + + NC + Price for the activated active power per unit e.g. per MW. + + + + SchedulingArea + An area where production and/or consumption of energy can be forecasted, scheduled and measured. The area is operated by only one system operator, typically a Transmission System Operator (TSO). The area can consist of a sub area, which has the same definition as the main area, but it can be operated by another system operator (typically Distributed System Operator (DSO) or a Closed Distributed System Operator (CDSO)). This includes microgrid concept. A substation is the smallest grouping that can be included in the area. The area size should be considered in terms of the possibility of accumulated reading (settlement metering) and the capability of operating as an island. +NC + + + + + DocPowerScheduleProfile + + This package contains datatypes used only in the RDFS header. + + + URL + A Uniform Resource Locator (URL), colloquially termed a web address, is a reference to a web resource that specifies its location on a computer network and a mechanism for retrieving it. A URL is a specific type of Uniform Resource Identifier (URI), although many people use the two terms interchangeably.URLs occur most commonly to reference web pages (http), but are also used for file transfer (ftp), email (mailto), database access (JDBC), and many other applications. +Primitive +profcim + + + + + Date + Date as "yyyy-mm-dd", which conforms with ISO 8601. UTC time zone is specified as "yyyy-mm-ddZ". A local timezone relative UTC is specified as "yyyy-mm-dd(+/-)hh:mm". +Primitive + + + + + IRI + An IRI (Internationalized Resource Identifier) within an RDF graph is a Unicode string that conforms to the syntax defined in RFC 3987. +The primitive is serialized as rdf:resource in RDFXML. +IRIs in the RDF abstract syntax must be absolute, and may contain a fragment identifier. +IRI equality: Two IRIs are equal if and only if they are equivalent under Simple String Comparison according to section 5.1 of [RFC3987]. Further normalization must not be performed when comparing IRIs for equality. +IRIs are a generalization of URIs [RFC3986] that permits a wider range of Unicode characters. Every absolute URI and URL is an IRI, but not every IRI is an URI. When IRIs are used in operations that are only defined for URIs, they must first be converted according to the mapping defined in section 3.1 of [RFC3987]. A notable example is retrieval over the HTTP protocol. The mapping involves UTF-8 encoding of non-ASCII characters, %-encoding of octets not allowed in URIs, and Punycode-encoding of domain names. +Primitive +profcim + + + + + StringIRI + An IRI (Internationalized Resource Identifier) within an RDF graph is a Unicode string that conforms to the syntax defined in RFC 3987. +The primitive is serialized as literal without language support. +IRIs in the RDF abstract syntax must be absolute, and may contain a fragment identifier. +IRI equality: Two IRIs are equal if and only if they are equivalent under Simple String Comparison according to section 5.1 of [RFC3987]. Further normalization must not be performed when comparing IRIs for equality. +IRIs are a generalization of URIs [RFC3986] that permits a wider range of Unicode characters. Every absolute URI and URL is an IRI, but not every IRI is an URI. When IRIs are used in operations that are only defined for URIs, they must first be converted according to the mapping defined in section 3.1 of [RFC3987]. A notable example is retrieval over the HTTP protocol. The mapping involves UTF-8 encoding of non-ASCII characters, %-encoding of octets not allowed in URIs, and Punycode-encoding of domain names. +Primitive +profcim + + + + + StringFixedLanguage + A string consisting of a sequence of characters. The character encoding is UTF-8. The string length is unspecified and unlimited. +The primitive is serialized as literal without language support. +Primitive +profcim + + + + diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/PowerSystemProjectProfile_v2_2_RDFSv2020_24Mar2023.rdf b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/PowerSystemProjectProfile_v2_2_RDFSv2020_24Mar2023.rdf new file mode 100644 index 0000000000..71014f23e8 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/PowerSystemProjectProfile_v2_2_RDFSv2020_24Mar2023.rdf @@ -0,0 +1,574 @@ + + + + + + PSP + vocabulary + + urn:iso:std:iec:61970-600-2:ed-1 + urn:iso:std:iec:61970-301:ed-7:amd1 + file://iec61970cim17v40_iec61968cim13v13a_iec62325cim03v17a.eap + urn:iso:std:iec:61970-401:draft:ed-1 + urn:iso:std:iec:61970-501:draft:ed-2 + file://CGMES-30v25_501-20v01.eap + 2.2.0 + ENTSO-E CIM EG + This vocabulary is describing the power system profile. + urn:uuid:29bfa45c-7d04-42f1-97c1-2e0f70f476a0 + en-GB + https://www.apache.org/licenses/LICENSE-2.0 + 2023-03-24 + ENTSO-E + ENTSO-E + Power System Project Vocabulary + + + + + PowerSystemProjectProfile + + This package contains power system project profile. + + + AvailabilitySchedule + A given (un)availability schedule with a given status and cause that include multiple equipment that need to follow the same scheduling periods. +NC + + + + + AvailabilitySchedule + The availability schedule associated with this power system project. + + + + + Yes + +NC + + + PowerSystemProject + The power system project that has this availability schedule. + + + + + No + +NC + + + DifferenceModel + + A set of statements describing the changes in the network model. The statement is defined in the difference model. +NC + + + + + + DifferenceModel + The difference model describing this power system project. + + + + + Yes + +NC + + + PowerSystemProject + The power system project that is described by this difference model. + + + + + No + +NC + + + PowerSystemProject + + Knowledge data for the power system project that describe the status and the planned implementation of the changes into the as-built model. +NC + + + + + + + cancelled + + + + From this date the project is in cancelled state. No further development will be done to the project or associated change set in this state. + + + + DateTime + Date and time as "yyyy-mm-ddThh:mm:ss.sss", which conforms with ISO 8601. UTC time zone is specified as "yyyy-mm-ddThh:mm:ss.sssZ". A local timezone relative UTC is specified as "yyyy-mm-ddThh:mm:ss.sss-hh:mm". The second component (shown here as "ss.sss") could have any number of digits in its fractional part to allow any kind of precision beyond seconds. +Primitive + + + + + + commissioned + + + + From this date the project is in commissioned state. Any conducting equipment in the change set can be energized from this day. No further changes will be done to the change set. + + + + + committed + + + + From this date the project is in committed state. The change set will from this day be part of the as-build model. + + + + + inBuild + + + + From this day the project is in build state. Alternative project have been evaluated. Any procurement has started and the change set is being updated to an as-build model. + + + + + inPlan + + + + From this date the project is in planning state. Study or procurement strategy has triggered the start of a project involving changes to one or more models. Alternative projects and change sets are evaluated. + + + + + priority + + + + Priority between competing project. Use 0 for do not care. Use 1 for highest priority. Use 2 as priority is less than 1 and so on. + + + + Integer + An integer number. The range is unspecified and not limited. +Primitive + + + + + + officialExpectedCommissioning + + + + Published official commissioning date. + + + + AlternativeProject + Alternative project. Only one of the projects will be commissioned. + + + + + No + +NC + + + PriorityProject + The project that has an alternative project. + + + + + Yes + +NC + + + DependentOnProject + Grouping of projects that are depending on each other. A project can only be linked to one dependent project. + + + + + Yes + +NC + + + Project + The project that has a dependent on project. + + + + + No + +NC + + + ShadowProject + A shadowing project that includes the same change set, but different timeline. + + + + + Yes + +NC + + + SilhouetteProject + The project that has a shadow project. + + + + + No + +NC + + + ProjectGroup + Power system project group to which this project belongs. + + + + + Yes + +NC + + + Project + The project included in the power system project group. + + + + + No + +NC + + + PowerSystemProjectGroup + A container with project that are grouped together. Primarily used for navigation and to highlight the phases that an overall project can go though. +NC + + + + + + + description + + + + dcterms + A free-text account of the resource. +Description may include but is not limited to: an abstract, a table of contents, a graphical representation, or a free-text account of the resource. + + + + String + A string consisting of a sequence of characters. The character encoding is UTF-8. The string length is unspecified and unlimited. +Primitive + + + + + + identifier + + + + dcterms + A unique identifier of the resource being described or cataloged. +The identifier might be used as part of the IRI of the resource, but still having it represented explicitly is useful. +The identifier is a text string which is assigned to the resource to provide an unambiguous reference within a particular context. + + + + StringIRI + An IRI (Internationalized Resource Identifier) within an RDF graph is a Unicode string that conforms to the syntax defined in RFC 3987. +The primitive is serialized as literal without language support. +IRIs in the RDF abstract syntax must be absolute, and may contain a fragment identifier. +IRI equality: Two IRIs are equal if and only if they are equivalent under Simple String Comparison according to section 5.1 of [RFC3987]. Further normalization must not be performed when comparing IRIs for equality. +IRIs are a generalization of URIs [RFC3986] that permits a wider range of Unicode characters. Every absolute URI and URL is an IRI, but not every IRI is an URI. When IRIs are used in operations that are only defined for URIs, they must first be converted according to the mapping defined in section 3.1 of [RFC3987]. A notable example is retrieval over the HTTP protocol. The mapping involves UTF-8 encoding of non-ASCII characters, %-encoding of octets not allowed in URIs, and Punycode-encoding of domain names. +Primitive +profcim + + + + + + title + + + + dcterms + A name given to the resource. + + + + Resource + Resource published or curated by a single agent. +dcat + + + + + + keyword + + + + dcat + A keyword or tag describing a resource. + + + + StringFixedLanguage + A string consisting of a sequence of characters. The character encoding is UTF-8. The string length is unspecified and unlimited. +The primitive is serialized as literal without language support. +Primitive +profcim + + + + + + accessRights + + + + dcterms + Information about who access the resource or an indication of its security status. +Access Rights may include information regarding access or restrictions based on privacy, security, or other policies. + + + + + conformsTo + + + + dcterms + An established standard to which the described resource conforms. + + + + + creator + + + + dcterms + An entity responsible for making the resource. +Recommended practice is to identify the creator with a URI. If this is not possible or feasible, a literal value that identifies the creator may be provided. + + + + + description + + + + dcterms + A free-text account of the resource. +Description may include but is not limited to: an abstract, a table of contents, a graphical representation, or a free-text account of the resource. + + + + + identifier + + + + dcterms + A unique identifier of the resource being described or cataloged. +The identifier might be used as part of the IRI of the resource, but still having it represented explicitly is useful. +The identifier is a text string which is assigned to the resource to provide an unambiguous reference within a particular context. + + + + + issued + + + + dcterms + Date of formal issuance of the resource. +Recommended practice is to describe the date, date/time, or period of time as recommended for the property Date, of which this is a subproperty. + + + + + license + + + + dcterms + A legal document under which the resource is made available. +Recommended practice is to identify the license document with a URI. If this is not possible or feasible, a literal value that identifies the license may be provided. + + + + + modified + + + + dcterms + Most recent date on which the item was changed, updated or modified. +Recommended practice is to describe the date, date/time, or period of time as recommended for the property Date, of which this is a subproperty. + + + + Date + Date as "yyyy-mm-dd", which conforms with ISO 8601. UTC time zone is specified as "yyyy-mm-ddZ". A local timezone relative UTC is specified as "yyyy-mm-dd(+/-)hh:mm". +Primitive + + + + + + publisher + + + + dcterms + An entity responsible for making the resource available. + + + + + rights + + + + dcterms + A statement that concerns all rights not addressed with dct:license or dct:accessRights, such as copyright statements. + + + + + rightsHolder + + + + dcterms + Information about rights held in and over the resource. +Typically, rights information includes a statement about various property rights associated with the resource, including intellectual property rights. Recommended practice is to refer to a rights statement with a URI. If this is not possible or feasible, a literal value (name, label, or short text) may be provided. + + + + + title + + + + dcterms + A name given to the resource. + + + + + hasVersion + + + + dcat + This resource has a more specific, versioned resource. + + + + IRI + An IRI (Internationalized Resource Identifier) within an RDF graph is a Unicode string that conforms to the syntax defined in RFC 3987. +The primitive is serialized as rdf:resource in RDFXML. +IRIs in the RDF abstract syntax must be absolute, and may contain a fragment identifier. +IRI equality: Two IRIs are equal if and only if they are equivalent under Simple String Comparison according to section 5.1 of [RFC3987]. Further normalization must not be performed when comparing IRIs for equality. +IRIs are a generalization of URIs [RFC3986] that permits a wider range of Unicode characters. Every absolute URI and URL is an IRI, but not every IRI is an URI. When IRIs are used in operations that are only defined for URIs, they must first be converted according to the mapping defined in section 3.1 of [RFC3987]. A notable example is retrieval over the HTTP protocol. The mapping involves UTF-8 encoding of non-ASCII characters, %-encoding of octets not allowed in URIs, and Punycode-encoding of domain names. +Primitive +profcim + + + + + + version + + + + dcat + The version indicator (name or identifier) of a resource. + + + + + versionNotes + + + + adms + A description of changes between this version and the previous version of the resource. + + + + + isVersionOf + + + + dcat + A related resource of which the described resource is a version, edition, or adaptation. +Changes in version imply substantive changes in content rather than differences in format. This property is intended to be used with non-literal values. This property is an inverse property of hasVersion. + + + + URL + A Uniform Resource Locator (URL), colloquially termed a web address, is a reference to a web resource that specifies its location on a computer network and a mechanism for retrieving it. A URL is a specific type of Uniform Resource Identifier (URI), although many people use the two terms interchangeably.URLs occur most commonly to reference web pages (http), but are also used for file transfer (ftp), email (mailto), database access (JDBC), and many other applications. +Primitive +profcim + + + + diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/RemedialActionProfile_v2_2_RDFSv2020_24Mar2023.rdf b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/RemedialActionProfile_v2_2_RDFSv2020_24Mar2023.rdf new file mode 100644 index 0000000000..c1d859d6d2 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/RemedialActionProfile_v2_2_RDFSv2020_24Mar2023.rdf @@ -0,0 +1,4228 @@ + + + + + + RA + + vocabulary + + urn:iso:std:iec:61970-600-2:ed-1 + urn:iso:std:iec:61970-301:ed-7:amd1 + file://iec61970cim17v40_iec61968cim13v13a_iec62325cim03v17a.eap + urn:iso:std:iec:61970-401:draft:ed-1 + urn:iso:std:iec:61970-501:draft:ed-2 + file://CGMES-30v25_501-20v01.eap + 2.2.0 + ENTSO-E CIM EG CSA project + This vocabulary is describing the remedial action profile. + urn:uuid:57fcfe0e-258c-45f2-b2ed-ff5b6a9859bc + en-GB + https://www.apache.org/licenses/LICENSE-2.0 + 2023-03-24 + ENTSO-E + ENTSO-E + Remedial action Vocabulary + + + + + RemedialActionProfile + + This package contains remedial action profile. + + + ElementCombinationConstraintKind + Kind of constraint for an element combination. + + +NC + + + + included + Element combination is included. + enum + + + + excluded + Element combination is excluded. + enum + + + + considered + Element combination can be considered. + enum + + + + EquipmentController + Equipment controller is an automation function that can control one or multiple equipment function to achieve all the targets inside the given tolerance. +NC + + + + + EquipmentControllerAction + Equipment controller action for this equipment controller. + + + + + No + +NC + + + EquipmentController + Equipment controller that has associated equipment controller actions. + + + + + Yes + +NC + + + EquipmentControllerAction + + Action for setting the equipment controller action. +NC + + + + + + PowerRemedialAction + + Energy remedial action describes actions to rearrange power schedules. +NC + + + + + PowerRemedialAction + The power remedial action applied to this BiddingZone. + + + + + No + +NC + + + BiddingZone + The Bidding Zone where the power remedial action is done. + + + + + Yes + +NC + + + RemedialActionGroup + + Grouping of remedial actions that can be operated together. +NC + + + + + + RemedialAction + Remedial action dependecy on a remedial action group. + + + + + No + +NC + + + DependingRemedialActionGroup + Remedial action group which the remedial action is depending on. + + + + + Yes + +NC + + + FunctionInputVariable + + Functional input variable defines the domain of the function. +NC + + + + + RemedialActionDependency + Remedial action dependency is making two remedial actions depending on each other. Multiple dependency is done by multiple instances of this class. The dependency can arrive by having one of the following examples. +<ul> + <li>The dependent remedial action is controlled by different system operator (Modeling Authority) (e.g. SIPS that goes across control area).</li> + <li>The dependent remedial action is representing two or more remedial action that represent the same grid state alteration but with different modeling resolution (e.g. detail direct current model versus a simplified model).</li> + <li>The remedial action can be combined with other remedial action without the need to create multiple remedial action with the same grid alteration for enabling dependency.</li> +</ul> +NC + + + + + + + kind + + + + NC + Type of dependency between two remedial actions. + + + + RemedialActionDependencyKind + Kind of dependency between remedial actions. + + +NC + + + + exclusive + Remedial actions are exclusive depending on each other. e.g. Only one of the remedial actions can be selected at the same time. + enum + + + + inclusive + Remedial actions are inclusive depending on each other. e.g. Both remedial action need to be picked if one of them is needed. + enum + + + + restrictive + Remedial actions are restrictive depending on each other. The need to include or to exclude might depend on the model. e.g. In the case of simplified DC model and detailed DC model. In the case where the simplified remedial action is used but not the remedial action for the detail model and opposite for the DC model. + enum + + + + none + Remedial actions are not depending on each other. However, the two remedial actions should be evaluated together. + enum + + + + + mRID + + + + NC + Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. +For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements. + + + + String + A string consisting of a sequence of characters. The character encoding is UTF-8. The string length is unspecified and unlimited. +Primitive + + + + + + normalEnabled + + + + NC + If true, the remedial action dependency with contingency shall be considered under normal operating conditions. + + + + Boolean + A type with the value space "true" and "false". +Primitive + + + + + RemedialAction + Remedial action which has dependent remedial actions. + + + + + Yes + +NC + + + DependentRemedialAction + Remedial action dependent on a remedial action. + + + + + No + +NC + + + ACDCConverter + A unit with valves for three phases, together with unit control equipment, essential protective and switching devices, DC storage capacitors, phase reactors and auxiliaries, if any, used for conversion. + + + + + ACDCConverter + The ACDCConverter that is associated with an action. + + + + + Yes + +NC + + + DCConverterAction + The action that is applied to an ACDCConverter. + + + + + No + +NC + + + ACDCConverterAction + + Alternate current Direct current (ACDC) converter action. +NC + + + + + + ACDCTerminal + + An electrical connection point (AC or DC) to a piece of conducting equipment. Terminals are connected at physical connection points called connectivity nodes. + + + + + AvailabilityRemedialAction + + Availability remedial action is a remedial action that cancels or reschedules an availability schedule. +NC + + + + + + BatteryUnit + An electrochemical energy storage device. + + + + + BatteryUnit + The BatteryUnit that is associated with an action. + + + + + Yes + +NC + + + BatteryUnitAction + The action that is applied to a BatteryUnit. + + + + + No + +NC + + + BatteryUnitAction + + Battery unit setpoint action. +NC + + + + + + BiddingZone + A bidding zone is a market-based method for handling power transmission congestion. It consists of scheduling areas that include the relevant production (supply) and consumption (demand) to form an electrical area with the same market price without capacity allocation. +NC + + + + + BiddingZone + The bidding zone that has this bidding zone action. + + + + + Yes + +NC + + + BiddingZoneAction + The bidding zone action that relates to this bidding zone. + + + + + No + +NC + + + BiddingZoneAction + + Bidding zone set point action. +NC + + + + + + CountertradeRemedialAction + + Countertrade is a remedial action to relieve physical congestions where the location of activated resources within the bidding zone is not known. +NC + + + + + + + gLSKStrategy + + + + NC + Generating and load shift keys strategy gives instruction on how the value (Active power) is going to be distributed inside the relevant bidding zone. + + + + GLSKStrategyKind + Kind of generating and load shift keys strategy. + + +NC + + + + explicitInstruction + The distribution is done according to the individual participation factor on the unit. + enum + + + + explicitSchedule + The distribution is explicitly done according to the GLSK Energy Bid Schedule. + enum + + + + generatorFlat + Flat adjustment on all active generators. + enum + + + + loadFlat + Flat adjustment on all active loads. + enum + + + + generatorPmax + The distribution is relative to the maximum p of the generator. + enum + + + + proportionalForGenerator + The distribution is proportional to the generator active power in the given case. + enum + + + + proportionalForLoad + The distribution is proportional to the load active power in the given case. + enum + + + + proportionalForGeneratorAndLoad + The distribution is proportional to the generator and load active power in the given case. + enum + + + + proportionalForRemainingCapacity + The distribution is proportional to the remaining capacity for generators in the given case. + enum + + + + + shiftMethod + + + + NC + Shift method used for the countertrade action. + + + + ShiftMethodKind + Kind of shift method. Describes the way a power schedule should be distributed amongst production and consumption. e.g. Type of generating and load shift key. + + +NC + + + + shared + Power schedule shift (distribution) is done by a shared fraction e.g. A two unit with the participation factor 60 and 40 will distribute a 10 MW schedule by 6 and 4 MW. + enum + + + + priority + Power schedule shift (distribution) is done by a shared fraction prioritizing the unit e.g. A two unit with the participation factor 60 and 40 will distribute a 10 MW increased schedule by first filling the highest participation factor (priority) until max economy power or maximum power allowed by the unit before it starts filling the next on the list. e.g. The unit with 60 will be getting its maximum shared first. The same logic applies with reducing the schedule. e.g. The 60 participation factor unit will be reduced to its min economy factor or minimum power. + enum + + + + + maxEconomicP + + + + NC + Maximum high economic active power limit, that should not exceed the maximum operating active power limit. + + + + ActivePower + Product of RMS value of the voltage and the RMS value of the in-phase component of the current. +CIMDatatype + + + + + + multiplier + + + + M + + + + UnitMultiplier + The unit multipliers defined for the CIM. When applied to unit symbols, the unit symbol is treated as a derived unit. Regardless of the contents of the unit symbol text, the unit symbol shall be treated as if it were a single-character unit symbol. Unit symbols should not contain multipliers, and it should be left to the multiplier to define the multiple for an entire data type. + +For example, if a unit symbol is "m2Pers" and the multiplier is "k", then the value is k(m**2/s), and the multiplier applies to the entire final value, not to any individual part of the value. This can be conceptualized by substituting a derived unit symbol for the unit type. If one imagines that the symbol "Þ" represents the derived unit "m2Pers", then applying the multiplier "k" can be conceptualized simply as "kÞ". + +For example, the SI unit for mass is "kg" and not "g". If the unit symbol is defined as "kg", then the multiplier is applied to "kg" as a whole and does not replace the "k" in front of the "g". In this case, the multiplier of "m" would be used with the unit symbol of "kg" to represent one gram. As a text string, this violates the instructions in IEC 80000-1. However, because the unit symbol in CIM is treated as a derived unit instead of as an SI unit, it makes more sense to conceptualize the "kg" as if it were replaced by one of the proposed replacements for the SI mass symbol. If one imagines that the "kg" were replaced by a symbol "Þ", then it is easier to conceptualize the multiplier "m" as creating the proper unit "mÞ", and not the forbidden unit "mkg". + + + + + + none + No multiplier or equivalently multiply by 1. + enum + + + + M + Mega 10**6. + enum + + + + + unit + + + + W + + + + UnitSymbol + The derived units defined for usage in the CIM. In some cases, the derived unit is equal to an SI unit. Whenever possible, the standard derived symbol is used instead of the formula for the derived unit. For example, the unit symbol Farad is defined as "F" instead of "CPerV". In cases where a standard symbol does not exist for a derived unit, the formula for the unit is used as the unit symbol. For example, density does not have a standard symbol and so it is represented as "kgPerm3". With the exception of the "kg", which is an SI unit, the unit symbols do not contain multipliers and therefore represent the base derived unit to which a multiplier can be applied as a whole. +Every unit symbol is treated as an unparseable text as if it were a single-letter symbol. The meaning of each unit symbol is defined by the accompanying descriptive text and not by the text contents of the unit symbol. +To allow the widest possible range of serializations without requiring special character handling, several substitutions are made which deviate from the format described in IEC 80000-1. The division symbol "/" is replaced by the letters "Per". Exponents are written in plain text after the unit as "m3" instead of being formatted as "m" with a superscript of 3 or introducing a symbol as in "m^3". The degree symbol "°" is replaced with the letters "deg". Any clarification of the meaning for a substitution is included in the description for the unit symbol. +Non-SI units are included in list of unit symbols to allow sources of data to be correctly labelled with their non-SI units (for example, a GPS sensor that is reporting numbers that represent feet instead of meters). This allows software to use the unit symbol information correctly convert and scale the raw data of those sources into SI-based units. +The integer values are used for harmonization with IEC 61850. + + + + + + none + Dimension less quantity, e.g. count, per unit, etc. + enum + + + + s + Time in seconds. + enum + + + + W + Real power in watts (J/s). Electrical power may have real and reactive components. The real portion of electrical power (I&#178;R or VIcos(phi)), is expressed in Watts. See also apparent power and reactive power. + enum + + + + VAr + Reactive power in volt amperes reactive. The “reactive” or “imaginary” component of electrical power (VIsin(phi)). (See also real power and apparent power). +Note: Different meter designs use different methods to arrive at their results. Some meters may compute reactive power as an arithmetic value, while others compute the value vectorially. The data consumer should determine the method in use and the suitability of the measurement for the intended purpose. + enum + + + + + value + + + + + + + Float + A floating point number. The range is unspecified and not limited. +Primitive + + + + + + minEconomicP + + + + NC + Low economic active power limit that shall be greater than or equal to the minimum operating active power limit. + + + + Contingency + An event threatening system reliability, consisting of one or more contingency elements. + + + + + Contingency + The contingency that is associated with a remedial action, i.e. the contingency that is the cause for the creation of a remedial action and justifies it or would usually be resolved with a remedial action. + + + + + Yes + +NC + + + ContingencyWithRemedialAction + The contingency and remedial action combination for this contingency. + + + + + No + +NC + + + Contingency + The Contingency that is used in the input pin. + + + + + Yes + +NC + + + PinContingency + The pin that uses this input. + + + + + No + +NC + + + ContingencyWithRemedialAction + Combination of a contingency and a remedial action. ContingencyWithRemedialAction shall not be instantiated for preventive RemedialAction (RemedialAction.kind equals RemedialActionKind.preventive). +NC + + + + + + + mRID + + + + NC + Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. +For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements. + + + + + combinationConstraintKind + + + + NC + Defines the combination constraint of the Contingency and Remedial Action. If included, this remedial action can only be applied for this contingency. Else if excluded, this remedial action should not be used for this contingency. Else if considered, this remedial action can be considered for this contingency. + + + + + normalEnabled + + + + NC + If true, the contingency with remedial action is enabled, otherwise it is disabled under normal operating conditions. + + + + RemedialAction + The remedial action defined for this contingency and remedial action combination. + + + + + Yes + +NC + + + ContingencyWithRemedialAction + The contingency and remedial action combination. + + + + + No + +NC + + + ControlFunctionBlock + Control function block is a function block that contains an algorithm for controlling the equipment. +NC + + + + + ControlFunctionBlock + The control function block that is associated with a ControlFunctionBlockAction. + + + + + Yes + +NC + + + ControlFunctionBlockAction + The action that is applied to this control function block. + + + + + No + +NC + + + ControlFunctionBlockAction + + Action for setting the control function block target values. +NC + + + + + + DCTerminal + An electrical connection point to generic DC conducting equipment. + + + + + PinDCTerminal + The pin DC terminal for this DC terminal. + + + + + No + +NC + + + DCTerminal + The DC terminal that has this pin DC terminal. + + + + + Yes + +NC + + + EnergyConsumer + Generic user of energy - a point of consumption on the power system model. +EnergyConsumer.pfixed, .qfixed, .pfixedPct and .qfixedPct have meaning only if there is no LoadResponseCharacteristic associated with EnergyConsumer or if LoadResponseCharacteristic.exponentModel is set to False. + + + + + EnergyConsumer + The EnergyConsumer that is associated with a load action. + + + + + Yes + +NC + + + LoadAction + The action appled to an EnergyConsumer. + + + + + No + +NC + + + EnergySource + A generic equivalent for an energy supplier on a transmission or distribution voltage level. + + + + + EnergySource + The EnergySource which is associated with an EnergySourceAction. + + + + + Yes + +NC + + + EnergySourceAction + The energy source action applied to an EnergySource. + + + + + No + +NC + + + EnergySourceModification + + Energy source action. +NC + + + + + + Equipment + The parts of a power system that are physical devices, electronic or mechanical. + + + + + PinEquipment + The pin that uses this input. + + + + + No + +NC + + + Equipment + The Equipment that is used in the input pin. + + + + + Yes + +NC + + + PinEquipmentTripping + Pin equipment that is used as gate input. + + + + + No + +NC + + + Equipment + Equipment that is tripped. + + + + + Yes + +NC + + + EquivalentInjection + This class represents equivalent injections (generation or load). Voltage regulation is allowed only at the point of connection. + + + + + EquivalentInjection + The EquivalentInjection that is associated with an action. + + + + + Yes + +NC + + + EquivalentInjectionAction + The action that is applied to an EquivalentInjection. + + + + + No + +NC + + + EquivalentInjectionAction + + Equivalent injection action. +NC + + + + + + ExternalNetworkInjection + This class represents the external network and it is used for IEC 60909 calculations. + + + + + ExternalNetworkInjection + The ExternalNetworkInjection that is associated with an action. + + + + + Yes + +NC + + + ExternalNetworkInjectionAction + The action that is applied to an ExternalNetworkInjection. + + + + + No + +NC + + + ExternalNetworkInjectionAction + + External network injection action. +NC + + + + + + Gate + + Logical gate that supports a logical operation based on the input. +NC + + + + + + + kind + + + + NC + The logical operation of the gate. + + + + GateLogicKind + Define the different logical operations. + + +NC + + + + and + A logical AND operation. True when all inputs are true. + enum + + + + or + A logical OR operation. True when one or more inputs are true. + enum + + + + nor + A logical NOR operation. False when one or more inputs are true. + enum + + + + nand + A logical NAND operation. False when all inputs are true. + enum + + + + not + A logical NOT operation. Only one input and true input will give false out and false in will give true out. An inverter. + enum + + + + xnor + A logical XNOR operation. The function is the inverse of the exclusive OR (XOR) gate. All input false or true will give true. Otherwise false. + enum + + + + xor + A logical XOR operation. All input false or true will give false. Otherwise true. + enum + + + + GateArmed + Gate that through a gate logic and input pin defines arming of a Remedial Action Scheme. + + + + + Yes + +NC + + + RemedialActionScheme + The remedial action scheme which has an armed gate. + + + + + No + +NC + + + GateOutput + The output of the gate. + + + + + Yes + +NC + + + PinGate + The pin for this gate output. + + + + + No + +NC + + + StageTriggerCom + The stage trigger associated with the communication gate. + + + + + No + +NC + + + GateComCondition + The gate that is the input pin which defines a communication condition. + + + + + Yes + +NC + + + StageTriggerArmed + The stage trigger associated with the armed gate. + + + + + No + +NC + + + GateArmed + The gate that is the input pin which defines arming of the StageTrigger. + + + + + Yes + +NC + + + TriggerCondition + The trigger condition that has a gate trigger. + + + + + No + +NC + + + GateTrigger + The gate that is the condition for the trigger. + + + + + Yes + +NC + + + StageTrigger + The stage trigger associated with the gate trigger. + + + + + No + +NC + + + GateTrigger + The gate that is the input pin which triggers the protective reactions. + + + + + Yes + +NC + + + GateInputPin + This is the input to the gate. + + + + + No + +NC + + + Gate + The Gate that has this input. + + + + + Yes + +NC + + + GateInputPin + + Input pin for a logical gate. The condition described in the input pin gives a logical true or false. The result from measurement and calculation are converted to a true or false. +NC + + + + + + absoluteValue + + + + NC + Indicates if the absolute value is used for comparison. If true, use the absolute value. If false, use the complex value (vector). + + + + + logicKind + + + + NC + The logical operator kind used for comparison. + + + + LogicalOperatorsKind + Kinds of logical operators for comparison. + + +NC + + + + notEqual + Not equal (unlike) comparison operation. + enum + + + + equals + Equals (like) comparison operation. + enum + + + + lessThanOrEquals + Less than or equals comparison operation. + enum + + + + lessThan + Less than comparison operation. + enum + + + + greaterThanOrEquals + Greater than or equals comparison operation. + enum + + + + greaterThan + Greater than comparison operation. + enum + + + + + duration + + + + NC + The time duration for which the condition is satisfied before acting. Default is 0 seconds. + + + + Duration + Duration as "PnYnMnDTnHnMnS" which conforms to ISO 8601, where nY expresses a number of years, nM a number of months, nD a number of days. The letter T separates the date expression from the time expression and, after it, nH identifies a number of hours, nM a number of minutes and nS a number of seconds. The number of seconds could be expressed as a decimal number, but all other numbers are integers. +Primitive + + + + + + negate + + + + NC + Invert/negate the result of the comparison. + + + + + isValuePreFault + + + + NC + Indicates if the gate input pin value is referring to the value prior to a fault (e.g. simulated by a contingency or due to a SIPS activation in a N-x-y case). If it is true, it means that the value is referring to pre-fault. If it is false or not populated, then it is post-fault. + + + + + thresholdPercentage + + + + NC + The threshold percentage that should be used for compare with the percentage change between input value and threshold value. +The allowed value range is [0,100]. + + + + PerCent + Percentage on a defined base. For example, specify as 100 to indicate at the defined base. +CIMDatatype + + + + + + value + + + + Normally 0 to 100 on a defined base. + + + + + unit + + + + none + + + + + multiplier + + + + none + + + + + thresholdValue + + + + NC + The threshold value that should be used for compare with the input value. + + + + GeneratingUnit + A single or set of synchronous machines for converting mechanical power into alternating-current power. For example, individual machines within a set may be defined for scheduling purposes while a single control signal is derived for the set. In this case there would be a GeneratingUnit for each member of the set and an additional GeneratingUnit corresponding to the set. +Description + + + + + + GridStateAlteration + + Grid state alteration is a change of values describing state (operating point) of one element in the grid model compared to the base case. +NC + + + + + + normalEnabled + + + + NC + The default/normal value used when other active signal/values are missing. + + + + + maximumPerDay + + + + NC + Maximum number of alterations per day. + + + + Integer + An integer number. The range is unspecified and not limited. +Primitive + + + + + + minimumActivation + + + + NC + Minimum time duration between activating the same grid state alteration. + + + + + timePerStage + + + + NC + Time to implement a stage of a grid state alteration. If a grid state alteration consists of multiple stages (e.g. A step on a power transformer), this duration comes in addition to the timeToImplement and need to be multiplied by the number of stages. A stage can also be defined as MW in the case of regulating production. + + + + GridStateAlteration + The GridStateAlteration that belongs to the collection. + + + + + No + +NC + + + GridStateAlterationCollection + The collection that has a GridStateAlteration. + + + + + Yes + +NC + + + GridStateAlteration + The grid state alteration which has static range. + + + + + Yes + +NC + + + RangeConstraint + The range constraint associated with a given GridStateAlteration. + + + + + No + +NC + + + GridStateAlterationRemedialAction + The grid state alteration remedial action associated with a given grid state alteration. + + + + + Yes + +NC + + + GridStateAlteration + The grid state alteration which is part of the grid state alteration remedial action. + + + + + No + +NC + + + GridStateAlteration + The grid state alteration for this property reference. + + + + + No + +NC + + + PropertyReference + The property reference for this grid state alteration. + + + + + Yes + +NC + + + GridStateAlterationCollection + + A collection of grid state alterations. +NC + + + + + + StageAction + The stage action related to this GridStateAlterationCollection. + + + + + No + +NC + + + GridStateAlterationCollection + The GridStateAlterationCollection which belongs to the Stage. + + + + + Yes + +NC + + + GridStateAlterationRemedialAction + + Grid state alteration remedial action describes one or many grid state alterations applied to a grid model state or a particular scenario in order to resolve one or more identified constraints. +NC + + + + + + IdentifiedObject + This is a root class to provide common identification for all classes needing identification and naming attributes. + + + + + + description + + + + The description is a free human readable text describing or naming the object. It may be non unique and may not correlate to a naming hierarchy. + + + + + mRID + + + + Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. +For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements. + + + + + name + + + + The name is any free human readable and possibly non unique text naming the object. + + + + IntertemporalPropertyRange + + It represents the intertemporal range, which means that this is the maximum change of an attribute value between two time stamps or per time unit (e.g. hour). Both up and down directions are defined by the direction attribute, i.e. There are different schedules per direction. +The class is not instantiated for PropertyReference which refers to Boolean type attributes. +For instance the following example illustrates the approach: +- A tap changer related grid state alteration having two intertemporal range schedules. +- For a particular point in time, the value from up schedule is 6 and the value from down schedule is 3. +- Then, the GridStateIntensity for the same point in time cannot be more than plus 6 taps from the current, or more than minus 3 taps from the current. +NC + + + + + + Line + Contains equipment beyond a substation belonging to a power transmission line. +Description + + + + + + LoadAction + + Load action. +NC + + + + + + Measurement + A Measurement represents any measured, calculated or non-measured non-calculated quantity. Any piece of equipment may contain Measurements, e.g. a substation may have temperature measurements and door open indications, a transformer may have oil temperature and tank pressure measurements, a bay may contain a number of power flow measurements and a Breaker may contain a switch status measurement. +The PSR - Measurement association is intended to capture this use of Measurement and is included in the naming hierarchy based on EquipmentContainer. The naming hierarchy typically has Measurements as leaves, e.g. Substation-VoltageLevel-Bay-Switch-Measurement. +Some Measurements represent quantities related to a particular sensor location in the network, e.g. a voltage transformer (VT) or potential transformer (PT) at a busbar or a current transformer (CT) at the bar between a breaker and an isolator. The sensing position is not captured in the PSR - Measurement association. Instead it is captured by the Measurement - Terminal association that is used to define the sensing location in the network topology. The location is defined by the connection of the Terminal to ConductingEquipment. +If both a Terminal and PSR are associated, and the PSR is of type ConductingEquipment, the associated Terminal should belong to that ConductingEquipment instance. +When the sensor location is needed both Measurement-PSR and Measurement-Terminal are used. The Measurement-Terminal association is never used alone. + + + + + Measurement + Measurement used as input to a calculation. + + + + + Yes + +NC + + + MeasurementCalculatorInput + The calculator input used for this measurement. + + + + + No + +NC + + + PinMeasurement + The pin that uses this input. + + + + + No + +NC + + + Measurement + The Measurement that is used in the input pin. + + + + + Yes + +NC + + + MeasurementCalculator + + Result of a calculation of one or more measurement. +NC + + + + + + + kind + + + + NC + Calculation operation executed on the operands. + + + + CalculationKind + Kind of calculation operation that can be done to Measurement. + + +NC + + + + summation + Summation operation on the input values (operands). + enum + + + + multiplication + Multiplication operation on the input values (operands). + enum + + + + division + Division operation on the input values (operands). + enum + + + + squareRoot + Square root operator - only one input value (operands). + enum + + + + MeasurementCalculator + The measurement calculator using this calculator input. + + + + + Yes + +NC + + + MeasurementCalculatorInput + The input used for the calculator. + + + + + No + +NC + + + PinMeasurement + The pin that uses this input. + + + + + No + +NC + + + MeasurementCalculator + The result of the calculation used as input to a gate. + + + + + Yes + +NC + + + MeasurementCalculatorInput + + Input to measurement calculation. It supports Analog, Discrete and Accumulator measurements. +NC + + + + + + + absoluteValue + + + + NC + Indicates if the absolute value is used for comparison. If true, use the absolute value. If false, use the complex value (vector). + + + + + order + + + + NC + Positive number that defines the order of the operand in the calculation. 0 means default in which case the order is not relevant. + + + + PinContingency + + Input pin associated with a Contingency. It is used for comparison. +NC + + + + + + PinDCTerminal + + Input pin associated with a DCTerminal. It is used for comparison. +NC + + + + + + + kind + + + + NC + The kind of quantity which is used as an input value. + + + + PinDCTerminalKind + The kind of quantities that can serve as an input value for the DCTerminal pin. + + +NC + + + + voltage + Direct current voltage in the DCTerminal. + enum + + + + current + Direct current in the DCTerminal. + enum + + + + PinEquipment + + Input pin associated with an Equipment. It is used for the comparison. +NC + + + + + + PinEquipment + The pin equipment that has this property reference. + + + + + No + +NC + + + PropertyReference + The property reference for this pin equipment. + + + + + Yes + +NC + + + PinEquipmentTripping + + Input pin associated with an Equipment. It is used to determine if the equipment is tripped between two consecutive stages, i.e. the equipment is in service at pre-fault stage and it is out of service at post-fault stage. +NC + + + + + + PinGate + + An output from one gate represents an input to another gate. +NC + + + + + + PinMeasurement + + Input pin associated with a Measurement. It is used for comparison. +NC + + + + + + PinPowerTransferCorridor + + Input pin associated with a PowerTransferCorridor. It is used for comparison. +NC + + + + + + + kind + + + + NC + The kind of quantity which is used as an input value. + + + + PinPowerTransferCorridorKind + The kind of quantities that can serve as an input value for the PowerTransferCorridor pin. + + +NC + + + + activePower + Active power in the branch group. + enum + + + + reactivePower + Reactive power in the branch group. + enum + + + + PinPowerTransferCorridor + The pin that uses this input. + + + + + No + +NC + + + PowerTransferCorridor + The PowerTransferCorridor that is used in the input pin. + + + + + Yes + +NC + + + PinTerminal + + Input pin associated with a Terminal. It is used for comparison. +NC + + + + + + + kind + + + + NC + The kind of quantity which is used as an input value. + + + + PinTerminalKind + The kind of quantities that can serve as an input value for the pin. + + +NC + + + + activePower + Active power on the Terminal. + enum + + + + apparentPower + Apparent power on the Terminal. + enum + + + + voltageMagnitude + Voltage magnitude on the Terminal. + enum + + + + voltageAngle + Voltage angle on the Terminal. + enum + + + + current + Current on the Terminal. + enum + + + + reactivePower + Reactive power on the Terminal. + enum + + + + PinTerminal + The pin that uses this input. + + + + + No + +NC + + + Terminal + The Terminal that is used in the input pin. + + + + + Yes + +NC + + + PinTerminalLimit + + Input pin associated with the limits of a Terminal. It is used for comparison. +NC + + + + + + + kind + + + + NC + The kind of limit which is used as an input value. + + + + PinTerminalLimitKind + The kind of limits that can serve as an input value for the pin. + + +NC + + + + voltageLimit + The voltage limit is an input value. + enum + + + + currentLimit + The current limit is an input value. + enum + + + + activePowerLimit + The active power limit is an input value. + enum + + + + voltageAngleLimit + The voltage angle limit is an input value. + enum + + + + apparentPowerLimit + The apparent power limit is an input value. + enum + + + + PinTerminalLimit + The pin that uses this input. + + + + + No + +NC + + + Terminal + The Terminal that is used in the input pin. + + + + + Yes + +NC + + + PowerElectronicsConnection + A connection to the AC network for energy production or consumption that uses power electronics rather than rotating machines. + + + + + PowerElectronicsConnection + The PowerElectronicsConnection that is applied to an action. + + + + + Yes + +NC + + + PowerElectronicsConnectionAction + The action that is applied to a PowerElectronicsConnection. + + + + + No + +NC + + + PowerElectronicsConnectionAction + + Power electronics setpoint action. +NC + + + + + + PowerSystemResource + + A power system resource (PSR) can be an item of equipment such as a switch, an equipment container containing many individual items of equipment such as a substation, or an organisational entity such as sub-control area. Power system resources can have measurements associated. + + + + + PowerTransferCorridor + A power transfer corridor is defined as a set of circuits (transmission lines or transformers) separating two portions of the power system, or a subset of circuits exposed to a substantial portion of the transmission exchange between two parts of the system. +NC + + + + + PowerTransferCorridor + The PowerTransferCorridor that has a specific active power support. + + + + + Yes + +NC + + + PTCActivePowerSupport + The active power capability associated with this PowerTransferCorridor. + + + + + No + +NC + + + ObservingTerminal + The terminal that identifies the power transfer corridor. + + + + + Yes + +NC + + + PowerTransferCorridor + The power transfer corridor which is identified by terminal. + + + + + No + +NC + + + PropertyReference + The reference to a class and one of its properties. +NC + + + + + StaticPropertyRange + Static property range that has this property reference. + + + + + No + + + + PropertyReference + Property reference for this static property range. + + + + + Yes + + + + PTCActivePowerSupport + Defines the active power capability (support) of the scheme in relation to a PowerTransferCorridor. +NC + + + + + + + maximum + + + + NC + Maximum support that a System Integrity Protection Scheme (SIPS) can provide to a Power Transfer Corridor (PTC). This is normally limited by the maximum power system disconnect allowed. + + + + + normal + + + + NC + Normal support that a System Integrity Protection Scheme (SIPS) is expected to provide when enabled to a Power Transfer Corridor (PTC). + + + + PTCActivePowerSupport + The active power support of the PowerTransferCorridor related to this RemedialActionScheme. + + + + + No + +NC + + + RemedialActionScheme + The RemedialActionScheme which has active power support from the PowerTransferCorridor. + + + + + Yes + +NC + + + RangeConstraint + + Defines the rage constraint. +NC + + + + + + direction + + + + NC + Defines the direction of the attribute value referenced by the PropertyReference. + + + + RelativeDirectionKind + Kinds of direction of the manual frequency restoration reserves action. + + +NC + + + + up + Up signifies that the available power can be used by the purchasing area to increase energy. + enum + + + + down + Down signifies that the available power can be used by the purchasing area to decrease energy. + enum + + + + upAndDown + Up and down signifies that both up and down values are equal. + enum + + + + none + There is no direction. + enum + + + + + valueKind + + + + NC + Kind of value offset for the range that applies to the attribute referenced by the PropertyReference. + + + + ValueOffsetKind + The kind of the value offset. + + +NC + + + + absolute + Value of the range constraint is replacing the attribute value referenced by the PropertyReference in a determined operational scenario. + enum + + + + incremental + Value of the range constraint is incrementing the attribute value referenced by the PropertyReference in a determined operational scenario. + enum + + + + incrementalPercentage + Value of the range constraint is incrementing in percentage the attribute value referenced by the PropertyReference in a determined operational scenario. + enum + + + + + normalValue + + + + NC + The normal (initial) value. The meaning of the value is defined by the attribute referenced by the PropertyReference. The value can be integer, float or boolean. In case of boolean 1 equals true and 0 equals false. +If the valueKind is incremental or incrementalPercentage, then the value shall be positive (greater than zero). +If the valueKind is incrementalPercentage, then the value shall be in the range [0, 100]. + + + + RedispatchRemedialAction + + Redispatch remedial action is a remedial action that through rearranging power schedules is eliminating breaches of constraints. +NC + + + + + + Region + A region where the system operator belongs to. +NC + + + + + AppointedToRegion + The region in which the remedial action is appointed. + + + + + Yes + +NC + + + RemedialAction + The remedial action which is considered in the region. + + + + + No + +NC + + + RegulatingControl + Specifies a set of equipment that works together to control a power system quantity such as voltage or flow. +Remote bus voltage control is possible by specifying the controlled terminal located at some place remote from the controlling equipment. +The specified terminal shall be associated with the connectivity node of the controlled point. The most specific subtype of RegulatingControl shall be used in case such equipment participate in the control, e.g. TapChangerControl for tap changers. +For flow control, load sign convention is used, i.e. positive sign means flow out from a TopologicalNode (bus) into the conducting equipment. +The attribute minAllowedTargetValue and maxAllowedTargetValue are required in the following cases: +- For a power generating module operated in power factor control mode to specify maximum and minimum power factor values; +- Whenever it is necessary to have an off center target voltage for the tap changer regulator. For instance, due to long cables to off shore wind farms and the need to have a simpler setup at the off shore transformer platform, the voltage is controlled from the land at the connection point for the off shore wind farm. Since there usually is a voltage rise along the cable, there is typical and overvoltage of up 3-4 kV compared to the on shore station. Thus in normal operation the tap changer on the on shore station is operated with a target set point, which is in the lower parts of the dead band. +The attributes minAllowedTargetValue and maxAllowedTargetValue are not related to the attribute targetDeadband and thus they are not treated as an alternative of the targetDeadband. They are needed due to limitations in the local substation controller. The attribute targetDeadband is used to prevent the power flow from move the tap position in circles (hunting) that is to be used regardless of the attributes minAllowedTargetValue and maxAllowedTargetValue. + + + + + RegulatingControl + The regulating control which has an action. + + + + + Yes + +NC + + + RegulatingControlAction + The action that is applied to a regulating control. + + + + + No + +NC + + + RegulatingControlAction + + Control action means the set point change of a regulating control power system resource in the grid model compared to the base case. +NC + + + + + + RemedialAction + + Remedial action describes one or more actions that can be performed on a given power system model situation to eliminate one or more identified breaches of constraints. The remedial action can be costly, and have a cost characteristic, or non costly. +NC + + + + + + timeToImplement + + + + NC + Time to implement a remedial action. + + + + + impactThresholdMargin + + + + NC + Impact threshold margin for the use of the remedial action. Meaning that the remedial action should not be used if it cannot resolve violation with more than the given impact threshold margin. +The allowed value range is [0,100]. + + + + + kind + + + + NC + The kind of the remedial action. If curative remedial action, it is required to have an association with ContingencyWithRemedialAction. +If preventive remedial action, RemedialAction class shall not have association with ContingencyWithRemedialAction. + + + + RemedialActionKind + The different kinds for a remedial action. + + +NC + + + + curative + Curative remedial action means a remedial action that is the result of an operational planning process and is activated straight subsequent to the occurrence of the respective contingency for compliance with the (N-1) criterion, taking into account transitory admissible overloads and their accepted duration. + enum + + + + preventive + Preventive remedial action means a remedial action that is the result of an operational planning process and needs to be activated prior to the investigated timeframe for compliance with the (N-1) criterion. + enum + + + + + penaltyFactor + + + + NC + Defines the relative penalty for a given remedial action. This is a positive number greater than zero and default is one, meaning the remedial action does not have negative nor positive effect on the quality of the solution. A remedial action that provide changes in the transmission loss can have negative (Between zero and one) or positive effect (Bigger than one) given by 1 / (1 – Incremental Transmission Loss). In a similar way remedial action using generating units or compensation units can have negative or positive effect. Typical value would be between 0.8 and 1.1. + + + + + isManual + + + + NC + Indicates if the remedial action is manually executed which involves one or many actions performed by human. A SIPS remedial action cannot be manual. True, means that the remedial action is manual. False, means that the remedial action is automatically executed without human communication. + + + + + normalAvailable + + + + NC + It identifies if the remedial action is available under normal condition. True means available, False means unavailable. + + + + + isCrossBorderRelevant + + + + NC + Indicates if the remedial action is cross border relevant. True, means that the remedial action is cross border relevant. + + + + RemedialAction + Remedial action defined by this system operator. + + + + + No + +NC + + + RemedialActionSystemOperator + System operator operating remedial actions. + + + + + Yes + +NC + + + RemedialActionScheme + + Remedial Action Scheme (RAS), Special Protection Schemes (SPS), System Protection Schemes (SPS) or System Integrity Protection Schemes (SIPS). +A Remedial Action Scheme consists of one or more stages that can trigger and execute a protection action. +NC + + + + + + + kind + + + + NC + Kind of Remedial Action Scheme. + + + + RemedialActionSchemeKind + Classification of Remedial Action Scheme. + + +NC + + + + sips + System Integrity Protection Scheme (SIPS). The triggering conditions are met through field measurements. + enum + + + + rasp + Remedial Action Schema Plan (RASP). The triggering conditions are met through calculation or manual intervention. + enum + + + + + normalArmed + + + + NC + Defines the normal arming status of the remedial action scheme. + + + + Stage + The stage for this remedial action scheme. + + + + + + No + +NC + + + RemedialActionScheme + The remedial action scheme that has a stage. + + + + + Yes + +NC + + + TriggerCondition + The triggering condition of this Remedial Action Scheme. + + + + + No + +NC + + + RemedialActionScheme + The remedial action scheme that has the trigger condition. + + + + + Yes + +NC + + + ArmedRemedialAction + Armed remedial action for a remedial action scheme. + + + + + Yes + +NC + + + RemedialActionScheme + Remedial action scheme that has this armed remedial action. + + + + + No + +NC + + + RotatingMachine + A rotating machine which may be used as a generator or motor. + + + + + RotatingMachine + The rotating machine that has an action. + + + + + Yes + +NC + + + RotatingMachineAction + The action applied to a rotating machine. + + + + + No + +NC + + + RotatingMachineAction + + Rotating machine action. +NC + + + + + + SchemeRemedialAction + + Scheme remedial action is remedial action that involves a scheme that can include conditional logic and stages of grid alteration. The primary remedial action is the arming of these schemes, that will then perform curative remedial action when the condition is met. System Integrity Protection Scheme (SIPS) and Special Protection Scheme (SPS) are example of this. +NC + + + + + + SetPointAction + + Setpoint action. +NC + + + + + ShuntCompensator + A shunt capacitor or reactor or switchable bank of shunt capacitors or reactors. A section of a shunt compensator is an individual capacitor or reactor. A negative value for bPerSection indicates that the compensator is a reactor. ShuntCompensator is a single terminal device. Ground is implied. + + + + + ShuntCompensator + The ShuntCompensator that is associated with an action. + + + + + Yes + +NC + + + ShuntCompensatorAction + The action that is applied to a ShuntCompensator. + + + + + No + +NC + + + ShuntCompensatorModification + + Shunt compensator action. +NC + + + + + + SolarRadiationDependencyCurve + A curve or functional relationship between +- the solar radiation independent variable (X-axis), and +- relative dependent (Y-axis) variables. +NC + + + + + + Stage + + Stage of a remedial action scheme. +NC + + + + + + + priority + + + + NC + The priority of the stage. 0 = do not care (default) 1 = highest priority. 2 is less than 1 and so on. A stage with higher priority needs be activated before a lower stage can be activated. + + + + StageTrigger + The state trigger that is part of this stage. + + + + + No + +NC + + + Stage + The stage that has this stage trigger. + + + + + Yes + +NC + + + StageTrigger + + Stage that is triggered either by TriggerCondition or by gate condition within a stage. +NC + + + + + + + normalArmed + + + + NC + The default/normal value used when other active signal/values are missing. + + + + + priority + + + + NC + Priority of trigger. 0 = don t care (default) 1 = highest priority. 2 is less than 1 and so on. A trigger with the highest priority will trigger first. + + + + StaticPropertyRange + + Defines the static range, which means that this is the minimum and/or maximum of an attribute value. The value provided by the schedule replaces the value of the attribute to which the schedule refers to. +In case that the PropertyReference refers to Boolean type attributes, RangeConstraint.direction shall be none or upAndDown and the RangeConstraint.valueKind shall be absolute. If the direction is none then optimization of the attribute referenced by the PropertyReference is not possible if the current status is already as the value in the range. Otherwise if the direction is upAndDown, the optimization can change from true to false or vice versa independently of the initial value in the operational scenario. +For instance for a tap changer related grid state alteration for a particular point in time, if the range of TapChanger.step is to be restricted, the value of the schedule will represent that new TapChanger.step range. +NC + + + + + + StaticVarCompensator + A facility for providing variable and controllable shunt reactive power. The SVC typically consists of a stepdown transformer, filter, thyristor-controlled reactor, and thyristor-switched capacitor arms. + +The SVC may operate in fixed MVar output mode or in voltage control mode. When in voltage control mode, the output of the SVC will be proportional to the deviation of voltage at the controlled bus from the voltage setpoint. The SVC characteristic slope defines the proportion. If the voltage at the controlled bus is equal to the voltage setpoint, the SVC MVar output is zero. + + + + + StaticVarCompensator + The StaticVarCompensator which is associated with an action. + + + + + Yes + +NC + + + StaticVarCompensatorAction + The action which is applied to a StaticVarCompensator. + + + + + No + +NC + + + StaticVarCompensatorAction + + Static Var compensator action. +NC + + + + + + Substation + A collection of equipment for purposes other than generation or utilization, through which electric energy in bulk is passed for the purposes of switching or modifying its characteristics. +Description + + + + + + Switch + A generic device designed to close, or open, or both, one or more electric circuits. All switches are two terminal devices including grounding switches. The ACDCTerminal.connected at the two sides of the switch shall not be considered for assessing switch connectivity, i.e. only Switch.open, .normalOpen and .locked are relevant. + + + + + Switch + The switch that has a topology action associated. + + + + + Yes + +NC + + + TopologyAction + The action assigned to a switch. + + + + + No + +NC + + + SystemOperator + System operator. +NC + + + + + TapChanger + Mechanism for changing transformer winding tap positions. + + + + + TapChanger + The tap changer that has a tap position action associated. + + + + + Yes + +NC + + + TapPositionAction + The action that is applied to a tap changer. + + + + + No + +NC + + + TapPositionAction + + Tap position action represents a change of a tap changer position in the grid model compared to the base case. +NC + + + + + + Terminal + An AC electrical connection point to a piece of conducting equipment. Terminals are connected at physical connection points called connectivity nodes. + + + + + TopologyAction + + Topology action means the connection or disconnection of a switch in the grid model compared to the base case. +NC + + + + + + TriggerCondition + + The condition that triggers a remedial action scheme. +NC + + + + + + Currency + Monetary currencies. ISO 4217 standard including 3-character currency code. + + + + + + AED + United Arab Emirates dirham. + enum + + + + AFN + Afghan afghani. + enum + + + + ALL + Albanian lek. + enum + + + + AMD + Armenian dram. + enum + + + + ANG + Netherlands Antillean guilder. + enum + + + + AOA + Angolan kwanza. + enum + + + + ARS + Argentine peso. + enum + + + + AUD + Australian dollar. + enum + + + + AWG + Aruban florin. + enum + + + + AZN + Azerbaijani manat. + enum + + + + BAM + Bosnia and Herzegovina convertible mark. + enum + + + + BBD + Barbados dollar. + enum + + + + BDT + Bangladeshi taka. + enum + + + + BGN + Bulgarian lev. + enum + + + + BHD + Bahraini dinar. + enum + + + + BIF + Burundian franc. + enum + + + + BMD + Bermudian dollar (customarily known as Bermuda dollar). + enum + + + + BND + Brunei dollar. + enum + + + + BOB + Boliviano. + enum + + + + BOV + Bolivian Mvdol (funds code). + enum + + + + BRL + Brazilian real. + enum + + + + BSD + Bahamian dollar. + enum + + + + BTN + Bhutanese ngultrum. + enum + + + + BWP + Botswana pula. + enum + + + + BYR + Belarusian ruble. + enum + + + + BZD + Belize dollar. + enum + + + + CAD + Canadian dollar. + enum + + + + CDF + Congolese franc. + enum + + + + CHF + Swiss franc. + enum + + + + CLF + Unidad de Fomento (funds code), Chile. + enum + + + + CLP + Chilean peso. + enum + + + + CNY + Chinese yuan. + enum + + + + COP + Colombian peso. + enum + + + + COU + Unidad de Valor Real. + enum + + + + CRC + Costa Rican colon. + enum + + + + CUC + Cuban convertible peso. + enum + + + + CUP + Cuban peso. + enum + + + + CVE + Cape Verde escudo. + enum + + + + CZK + Czech koruna. + enum + + + + DJF + Djiboutian franc. + enum + + + + DKK + Danish krone. + enum + + + + DOP + Dominican peso. + enum + + + + DZD + Algerian dinar. + enum + + + + EEK + Estonian kroon. + enum + + + + EGP + Egyptian pound. + enum + + + + ERN + Eritrean nakfa. + enum + + + + ETB + Ethiopian birr. + enum + + + + EUR + Euro. + enum + + + + FJD + Fiji dollar. + enum + + + + FKP + Falkland Islands pound. + enum + + + + GBP + Pound sterling. + enum + + + + GEL + Georgian lari. + enum + + + + GHS + Ghanaian cedi. + enum + + + + GIP + Gibraltar pound. + enum + + + + GMD + Gambian dalasi. + enum + + + + GNF + Guinean franc. + enum + + + + GTQ + Guatemalan quetzal. + enum + + + + GYD + Guyanese dollar. + enum + + + + HKD + Hong Kong dollar. + enum + + + + HNL + Honduran lempira. + enum + + + + HRK + Croatian kuna. + enum + + + + HTG + Haitian gourde. + enum + + + + HUF + Hungarian forint. + enum + + + + IDR + Indonesian rupiah. + enum + + + + ILS + Israeli new sheqel. + enum + + + + INR + Indian rupee. + enum + + + + IQD + Iraqi dinar. + enum + + + + IRR + Iranian rial. + enum + + + + ISK + Icelandic króna. + enum + + + + JMD + Jamaican dollar. + enum + + + + JOD + Jordanian dinar. + enum + + + + JPY + Japanese yen. + enum + + + + KES + Kenyan shilling. + enum + + + + KGS + Kyrgyzstani som. + enum + + + + KHR + Cambodian riel. + enum + + + + KMF + Comoro franc. + enum + + + + KPW + North Korean won. + enum + + + + KRW + South Korean won. + enum + + + + KWD + Kuwaiti dinar. + enum + + + + KYD + Cayman Islands dollar. + enum + + + + KZT + Kazakhstani tenge. + enum + + + + LAK + Lao kip. + enum + + + + LBP + Lebanese pound. + enum + + + + LKR + Sri Lanka rupee. + enum + + + + LRD + Liberian dollar. + enum + + + + LSL + Lesotho loti. + enum + + + + LTL + Lithuanian litas. + enum + + + + LVL + Latvian lats. + enum + + + + LYD + Libyan dinar. + enum + + + + MAD + Moroccan dirham. + enum + + + + MDL + Moldovan leu. + enum + + + + MGA + Malagasy ariary. + enum + + + + MKD + Macedonian denar. + enum + + + + MMK + Myanma kyat. + enum + + + + MNT + Mongolian tugrik. + enum + + + + MOP + Macanese pataca. + enum + + + + MRO + Mauritanian ouguiya. + enum + + + + MUR + Mauritian rupee. + enum + + + + MVR + Maldivian rufiyaa. + enum + + + + MWK + Malawian kwacha. + enum + + + + MXN + Mexican peso. + enum + + + + MYR + Malaysian ringgit. + enum + + + + MZN + Mozambican metical. + enum + + + + NAD + Namibian dollar. + enum + + + + NGN + Nigerian naira. + enum + + + + NIO + Cordoba oro. + enum + + + + NOK + Norwegian krone. + enum + + + + NPR + Nepalese rupee. + enum + + + + NZD + New Zealand dollar. + enum + + + + OMR + Omani rial. + enum + + + + PAB + Panamanian balboa. + enum + + + + PEN + Peruvian nuevo sol. + enum + + + + PGK + Papua New Guinean kina. + enum + + + + PHP + Philippine peso. + enum + + + + PKR + Pakistani rupee. + enum + + + + PLN + Polish zloty. + enum + + + + PYG + Paraguayan guaraní. + enum + + + + QAR + Qatari rial. + enum + + + + RON + Romanian new leu. + enum + + + + RSD + Serbian dinar. + enum + + + + RUB + Russian rouble. + enum + + + + RWF + Rwandan franc. + enum + + + + SAR + Saudi riyal. + enum + + + + SBD + Solomon Islands dollar. + enum + + + + SCR + Seychelles rupee. + enum + + + + SDG + Sudanese pound. + enum + + + + SEK + Swedish krona/kronor. + enum + + + + SGD + Singapore dollar. + enum + + + + SHP + Saint Helena pound. + enum + + + + SLL + Sierra Leonean leone. + enum + + + + SOS + Somali shilling. + enum + + + + SRD + Surinamese dollar. + enum + + + + STD + São Tomé and Príncipe dobra. + enum + + + + SYP + Syrian pound. + enum + + + + SZL + Lilangeni. + enum + + + + THB + Thai baht. + enum + + + + TJS + Tajikistani somoni. + enum + + + + TMT + Turkmenistani manat. + enum + + + + TND + Tunisian dinar. + enum + + + + TOP + Tongan pa'anga. + enum + + + + TRY + Turkish lira. + enum + + + + TTD + Trinidad and Tobago dollar. + enum + + + + TWD + New Taiwan dollar. + enum + + + + TZS + Tanzanian shilling. + enum + + + + UAH + Ukrainian hryvnia. + enum + + + + UGX + Ugandan shilling. + enum + + + + USD + United States dollar. + enum + + + + UYU + Uruguayan peso. + enum + + + + UZS + Uzbekistan som. + enum + + + + VEF + Venezuelan bolívar fuerte. + enum + + + + VND + Vietnamese Dong. + enum + + + + VUV + Vanuatu vatu. + enum + + + + WST + Samoan tala. + enum + + + + XAF + CFA franc BEAC. + enum + + + + XCD + East Caribbean dollar. + enum + + + + XOF + CFA Franc BCEAO. + enum + + + + XPF + CFP franc. + enum + + + + YER + Yemeni rial. + enum + + + + ZAR + South African rand. + enum + + + + ZMK + Zambian kwacha. + enum + + + + ZWL + Zimbabwe dollar. + enum + + + + DependencyKind + Kind of dependency between remedial actions. + + +NC + + + + exclusive + Remedial actions are exclusive depending on each other. e.g. Only one of the remedial actions can be selected at the same time. + enum + + + + inclusive + Remedial actions are inclusive depending on each other. e.g. Both remedial action need to be picked if one of them is needed. + enum + + + + restrictive + Remedial actions are restrictive depending on each other. The need to include or to exclude might depend on the model. e.g. In the case of simplified DC model and detailed DC model. In the case where the simplified remedial action is used but not the remedial action for the detail model and opposite for the DC model. + enum + + + + none + Remedial actions are not depending on each other. However, the two remedial actions should be evaluated together. + enum + + + + ReactivePower + Product of RMS value of the voltage and the RMS value of the quadrature component of the current. +CIMDatatype + + + + + + value + + + + + + + + unit + + + + VAr + + + + + multiplier + + + + M + + + + Seconds + Time, in seconds. +CIMDatatype + + + + + + value + + + + Time, in seconds + + + + + unit + + + + s + + + + + multiplier + + + + none + + + + DocRemedialActionProfile + + This package contains datatypes used only in the RDFS header. + + + Date + Date as "yyyy-mm-dd", which conforms with ISO 8601. UTC time zone is specified as "yyyy-mm-ddZ". A local timezone relative UTC is specified as "yyyy-mm-dd(+/-)hh:mm". +Primitive + + + + + DateTime + Date and time as "yyyy-mm-ddThh:mm:ss.sss", which conforms with ISO 8601. UTC time zone is specified as "yyyy-mm-ddThh:mm:ss.sssZ". A local timezone relative UTC is specified as "yyyy-mm-ddThh:mm:ss.sss-hh:mm". The second component (shown here as "ss.sss") could have any number of digits in its fractional part to allow any kind of precision beyond seconds. +Primitive + + + + + IRI + An IRI (Internationalized Resource Identifier) within an RDF graph is a Unicode string that conforms to the syntax defined in RFC 3987. +The primitive is serialized as rdf:resource in RDFXML. +IRIs in the RDF abstract syntax must be absolute, and may contain a fragment identifier. +IRI equality: Two IRIs are equal if and only if they are equivalent under Simple String Comparison according to section 5.1 of [RFC3987]. Further normalization must not be performed when comparing IRIs for equality. +IRIs are a generalization of URIs [RFC3986] that permits a wider range of Unicode characters. Every absolute URI and URL is an IRI, but not every IRI is an URI. When IRIs are used in operations that are only defined for URIs, they must first be converted according to the mapping defined in section 3.1 of [RFC3987]. A notable example is retrieval over the HTTP protocol. The mapping involves UTF-8 encoding of non-ASCII characters, %-encoding of octets not allowed in URIs, and Punycode-encoding of domain names. +Primitive +profcim + + + + + StringIRI + An IRI (Internationalized Resource Identifier) within an RDF graph is a Unicode string that conforms to the syntax defined in RFC 3987. +The primitive is serialized as literal without language support. +IRIs in the RDF abstract syntax must be absolute, and may contain a fragment identifier. +IRI equality: Two IRIs are equal if and only if they are equivalent under Simple String Comparison according to section 5.1 of [RFC3987]. Further normalization must not be performed when comparing IRIs for equality. +IRIs are a generalization of URIs [RFC3986] that permits a wider range of Unicode characters. Every absolute URI and URL is an IRI, but not every IRI is an URI. When IRIs are used in operations that are only defined for URIs, they must first be converted according to the mapping defined in section 3.1 of [RFC3987]. A notable example is retrieval over the HTTP protocol. The mapping involves UTF-8 encoding of non-ASCII characters, %-encoding of octets not allowed in URIs, and Punycode-encoding of domain names. +Primitive +profcim + + + + + StringFixedLanguage + A string consisting of a sequence of characters. The character encoding is UTF-8. The string length is unspecified and unlimited. +The primitive is serialized as literal without language support. +Primitive +profcim + + + + + URL + A Uniform Resource Locator (URL), colloquially termed a web address, is a reference to a web resource that specifies its location on a computer network and a mechanism for retrieving it. A URL is a specific type of Uniform Resource Identifier (URI), although many people use the two terms interchangeably.URLs occur most commonly to reference web pages (http), but are also used for file transfer (ftp), email (mailto), database access (JDBC), and many other applications. +Primitive +profcim + + + + diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/RemedialActionScheduleProfile_v2_2_RDFSv2020_24Mar2023.rdf b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/RemedialActionScheduleProfile_v2_2_RDFSv2020_24Mar2023.rdf new file mode 100644 index 0000000000..464d54c440 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/RemedialActionScheduleProfile_v2_2_RDFSv2020_24Mar2023.rdf @@ -0,0 +1,2597 @@ + + + + + + RAS + + vocabulary + + urn:iso:std:iec:61970-600-2:ed-1 + urn:iso:std:iec:61970-301:ed-7:amd1 + file://iec61970cim17v40_iec61968cim13v13a_iec62325cim03v17a.eap + urn:iso:std:iec:61970-401:draft:ed-1 + urn:iso:std:iec:61970-501:draft:ed-2 + file://CGMES-30v25_501-20v01.eap + 2.2.0 + ENTSO-E CIM EG CSA project + This vocabulary is describing the remedial action schedule profile. + urn:uuid:6e90c546-3c6c-471b-8040-e05037081c59 + en-GB + https://www.apache.org/licenses/LICENSE-2.0 + 2023-03-24 + ENTSO-E + ENTSO-E + Remedial Action Schedule Vocabulary + + + + + RemedialActionScheduleProfile + + This package contains remedial action schedule profile. + + + AvailabilityRemedialAction + + Availability remedial action is a remedial action that cancels or reschedules an availability schedule. +NC + + + + + RemedialAction + Remedial action that is cancelling this availability schedule. + + + + + Yes + +NC + + + AvailabilitySchedule + Availability schedule that is part of the remedial action. + + + + + No + +NC + + + AvailabilitySchedule + + A given (un)availability schedule with a given status and cause that include multiple equipment that need to follow the same scheduling periods. +NC +Description + + + + + + + isCancelled + + + + NC + Defines the cancelling of the availability schedule. True means that is cancelling, False means that it is not cancelling. + + + + Boolean + A type with the value space "true" and "false". +Primitive + + + + + + priority + + + + NC + Value 0 means ignore priority. 1 means the highest priority, 2 is the second highest priority. + + + + Integer + An integer number. The range is unspecified and not limited. +Primitive + + + + + BaseIrregularTimeSeries + + Time series that has irregular points in time. +NC + + + + + BaseTimeSeries + + Time series of values at points in time. +NC + + + + + + interpolationKind + + + + Kind of interpolation done between time point. + + + + TimeSeriesInterpolationKind + Kinds of interpolation of values between two time point. + + +NC + + + + none + No interpolation is applied. + enum + + + + next + The value between two time points is set to next value. + enum + + + + Contingency + An event threatening system reliability, consisting of one or more contingency elements. + + + + + Contingency + The contingency for a curative remedial action schedule. + + + + + Yes + +NC + + + CurativeRemedialActionSchedule + Curative remedial action schedule linked to this contingency. + + + + + No + +NC + + + CountertradeScheduleAction + + Countertrade schedule action is an action to rearrange power schedules based on a Generation and Load Shift Key (GLSK) strategy. +NC + + + + + + EventSchedule + + Time series represent irregular event described by event points in time. +NC + + + + + + EventSchedule + Time series the time point values belongs to. + + + + + Yes + +NC + + + EventTimePoint + Value for the point in time. + + + + + + No + +NC + + + RemedialActionSchedule + Remedial action schedule is the event that is validity for the given time series. + + + + + Yes + + + + EventSchedule + Event schedule that describes the validity of the remedial action schedule. + + + + + No + + + + EventTimePoint + Event valid for a given point in time. +NC + + + + + + + atTime + + + + NC + The time the data is valid for. + + + + DateTime + Date and time as "yyyy-mm-ddThh:mm:ss.sss", which conforms with ISO 8601. UTC time zone is specified as "yyyy-mm-ddThh:mm:ss.sssZ". A local timezone relative UTC is specified as "yyyy-mm-ddThh:mm:ss.sss-hh:mm". The second component (shown here as "ss.sss") could have any number of digits in its fractional part to allow any kind of precision beyond seconds. +Primitive + + + + + + isActive + + + + NC + True, if the event is occurring (Active) at this time point. Otherwise false. + + + + GenericValueSchedule + + Time series represent irregular generic value at given points in time. The type of value is given by the reference association. +NC + + + + + GenericValueSchedule + Time series the time point values belongs to. + + + + + Yes + +NC + + + GenericValueTimePoint + Value for the point in time. + + + + + + No + +NC + + + RemedialActionSchedule + Remedial action schedule which has generic value schedules. + + + + + Yes + +NC + + + GenericValueSchedule + Generic value schedule which belongs to a remedial action schedule. + + + + + No + +NC + + + GenericValueTimePoint + Generic value for a given point in time. +NC + + + + + + + atTime + + + + NC + The time the data is valid for. + + + + + value + + + + NC + The value at the time. The meaning of the value is defined by the derived type of the associated schedule. The value can be integer, float or boolean. In case of boolean 1 equals true and 0 equals false. + + + + Float + A floating point number. The range is unspecified and not limited. +Primitive + + + + + GridStateAlteration + + Grid state alteration is a change of values describing state (operating point) of one element in the grid model compared to the base case. +NC + + + + + GridStateAlteration + The grid state alteration which has intensity. + + + + + Yes + +NC + + + GridStateIntensitySchedule + The intensity associated with a given GridStateAlterationSchedule. + + + + + No + +NC + + + GridStateIntensitySchedule + + Defines the intensity applied for a given grid state alteration. It is primarily used in exchanges related to the remedial action schedule. The value provided by the schedule replaces the value of the attribute to which the schedule refers to. +NC + + + + + + + valueKind + + + + NC + The kind of value1 and value2 of the associated IrregularIntervalSchedule. + + + + ValueOffsetKind + The kind of the value offset. + + +NC + + + + absolute + Value of the range constraint is replacing the attribute value referenced by the PropertyReference in a determined operational scenario. + enum + + + + incremental + Value of the range constraint is incrementing the attribute value referenced by the PropertyReference in a determined operational scenario. + enum + + + + incrementalPercentage + Value of the range constraint is incrementing in percentage the attribute value referenced by the PropertyReference in a determined operational scenario. + enum + + + + IdentifiedObject + This is a root class to provide common identification for all classes needing identification and naming attributes. + + + + + + description + + + + The description is a free human readable text describing or naming the object. It may be non unique and may not correlate to a naming hierarchy. + + + + String + A string consisting of a sequence of characters. The character encoding is UTF-8. The string length is unspecified and unlimited. +Primitive + + + + + + mRID + + + + Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. +For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements. + + + + + name + + + + The name is any free human readable and possibly non unique text naming the object. + + + + PowerBidSchedule + + Power bid or offer related to a redispatch or countertrading measures. In the case of market place for economic efficiency of the bids and offers, this is equivalent to BidTimeSeries class in 62325 package. +NC + + + + + PowerBidSchedule + The power bid schedule which contains the power schedule action. + + + + + Yes + +NC + + + PowerSchedulelAction + The power schedule action pointed by the power bid schedule. + + + + + No + +NC + + + PowerSchedule + + Time series represent irregular power, active and reactive, values at given points in time. +NC + + + + + + PowerSchedule + Time series the time point values belongs to. + + + + + Yes + +NC + + + PowerTimePoint + Value for the point in time. + + + + + + No + +NC + + + PowerScheduleAction + Power schedule action which belongs to the power schedule. + + + + + No + +NC + + + PowerSchedule + Power schedule which contains the power schedule action. + + + + + Yes + +NC + + + PowerScheduleAction + + Power schedule action is an action to rearrange power schedules. +NC + + + + + + currency + + + + NC + Currency the energy price is given in. + + + + Currency + Monetary currencies. ISO 4217 standard including 3-character currency code. + + + + + + AED + United Arab Emirates dirham. + enum + + + + AFN + Afghan afghani. + enum + + + + ALL + Albanian lek. + enum + + + + AMD + Armenian dram. + enum + + + + ANG + Netherlands Antillean guilder. + enum + + + + AOA + Angolan kwanza. + enum + + + + ARS + Argentine peso. + enum + + + + AUD + Australian dollar. + enum + + + + AWG + Aruban florin. + enum + + + + AZN + Azerbaijani manat. + enum + + + + BAM + Bosnia and Herzegovina convertible mark. + enum + + + + BBD + Barbados dollar. + enum + + + + BDT + Bangladeshi taka. + enum + + + + BGN + Bulgarian lev. + enum + + + + BHD + Bahraini dinar. + enum + + + + BIF + Burundian franc. + enum + + + + BMD + Bermudian dollar (customarily known as Bermuda dollar). + enum + + + + BND + Brunei dollar. + enum + + + + BOB + Boliviano. + enum + + + + BOV + Bolivian Mvdol (funds code). + enum + + + + BRL + Brazilian real. + enum + + + + BSD + Bahamian dollar. + enum + + + + BTN + Bhutanese ngultrum. + enum + + + + BWP + Botswana pula. + enum + + + + BYR + Belarusian ruble. + enum + + + + BZD + Belize dollar. + enum + + + + CAD + Canadian dollar. + enum + + + + CDF + Congolese franc. + enum + + + + CHF + Swiss franc. + enum + + + + CLF + Unidad de Fomento (funds code), Chile. + enum + + + + CLP + Chilean peso. + enum + + + + CNY + Chinese yuan. + enum + + + + COP + Colombian peso. + enum + + + + COU + Unidad de Valor Real. + enum + + + + CRC + Costa Rican colon. + enum + + + + CUC + Cuban convertible peso. + enum + + + + CUP + Cuban peso. + enum + + + + CVE + Cape Verde escudo. + enum + + + + CZK + Czech koruna. + enum + + + + DJF + Djiboutian franc. + enum + + + + DKK + Danish krone. + enum + + + + DOP + Dominican peso. + enum + + + + DZD + Algerian dinar. + enum + + + + EEK + Estonian kroon. + enum + + + + EGP + Egyptian pound. + enum + + + + ERN + Eritrean nakfa. + enum + + + + ETB + Ethiopian birr. + enum + + + + EUR + Euro. + enum + + + + FJD + Fiji dollar. + enum + + + + FKP + Falkland Islands pound. + enum + + + + GBP + Pound sterling. + enum + + + + GEL + Georgian lari. + enum + + + + GHS + Ghanaian cedi. + enum + + + + GIP + Gibraltar pound. + enum + + + + GMD + Gambian dalasi. + enum + + + + GNF + Guinean franc. + enum + + + + GTQ + Guatemalan quetzal. + enum + + + + GYD + Guyanese dollar. + enum + + + + HKD + Hong Kong dollar. + enum + + + + HNL + Honduran lempira. + enum + + + + HRK + Croatian kuna. + enum + + + + HTG + Haitian gourde. + enum + + + + HUF + Hungarian forint. + enum + + + + IDR + Indonesian rupiah. + enum + + + + ILS + Israeli new sheqel. + enum + + + + INR + Indian rupee. + enum + + + + IQD + Iraqi dinar. + enum + + + + IRR + Iranian rial. + enum + + + + ISK + Icelandic króna. + enum + + + + JMD + Jamaican dollar. + enum + + + + JOD + Jordanian dinar. + enum + + + + JPY + Japanese yen. + enum + + + + KES + Kenyan shilling. + enum + + + + KGS + Kyrgyzstani som. + enum + + + + KHR + Cambodian riel. + enum + + + + KMF + Comoro franc. + enum + + + + KPW + North Korean won. + enum + + + + KRW + South Korean won. + enum + + + + KWD + Kuwaiti dinar. + enum + + + + KYD + Cayman Islands dollar. + enum + + + + KZT + Kazakhstani tenge. + enum + + + + LAK + Lao kip. + enum + + + + LBP + Lebanese pound. + enum + + + + LKR + Sri Lanka rupee. + enum + + + + LRD + Liberian dollar. + enum + + + + LSL + Lesotho loti. + enum + + + + LTL + Lithuanian litas. + enum + + + + LVL + Latvian lats. + enum + + + + LYD + Libyan dinar. + enum + + + + MAD + Moroccan dirham. + enum + + + + MDL + Moldovan leu. + enum + + + + MGA + Malagasy ariary. + enum + + + + MKD + Macedonian denar. + enum + + + + MMK + Myanma kyat. + enum + + + + MNT + Mongolian tugrik. + enum + + + + MOP + Macanese pataca. + enum + + + + MRO + Mauritanian ouguiya. + enum + + + + MUR + Mauritian rupee. + enum + + + + MVR + Maldivian rufiyaa. + enum + + + + MWK + Malawian kwacha. + enum + + + + MXN + Mexican peso. + enum + + + + MYR + Malaysian ringgit. + enum + + + + MZN + Mozambican metical. + enum + + + + NAD + Namibian dollar. + enum + + + + NGN + Nigerian naira. + enum + + + + NIO + Cordoba oro. + enum + + + + NOK + Norwegian krone. + enum + + + + NPR + Nepalese rupee. + enum + + + + NZD + New Zealand dollar. + enum + + + + OMR + Omani rial. + enum + + + + PAB + Panamanian balboa. + enum + + + + PEN + Peruvian nuevo sol. + enum + + + + PGK + Papua New Guinean kina. + enum + + + + PHP + Philippine peso. + enum + + + + PKR + Pakistani rupee. + enum + + + + PLN + Polish zloty. + enum + + + + PYG + Paraguayan guaraní. + enum + + + + QAR + Qatari rial. + enum + + + + RON + Romanian new leu. + enum + + + + RSD + Serbian dinar. + enum + + + + RUB + Russian rouble. + enum + + + + RWF + Rwandan franc. + enum + + + + SAR + Saudi riyal. + enum + + + + SBD + Solomon Islands dollar. + enum + + + + SCR + Seychelles rupee. + enum + + + + SDG + Sudanese pound. + enum + + + + SEK + Swedish krona/kronor. + enum + + + + SGD + Singapore dollar. + enum + + + + SHP + Saint Helena pound. + enum + + + + SLL + Sierra Leonean leone. + enum + + + + SOS + Somali shilling. + enum + + + + SRD + Surinamese dollar. + enum + + + + STD + São Tomé and Príncipe dobra. + enum + + + + SYP + Syrian pound. + enum + + + + SZL + Lilangeni. + enum + + + + THB + Thai baht. + enum + + + + TJS + Tajikistani somoni. + enum + + + + TMT + Turkmenistani manat. + enum + + + + TND + Tunisian dinar. + enum + + + + TOP + Tongan pa'anga. + enum + + + + TRY + Turkish lira. + enum + + + + TTD + Trinidad and Tobago dollar. + enum + + + + TWD + New Taiwan dollar. + enum + + + + TZS + Tanzanian shilling. + enum + + + + UAH + Ukrainian hryvnia. + enum + + + + UGX + Ugandan shilling. + enum + + + + USD + United States dollar. + enum + + + + UYU + Uruguayan peso. + enum + + + + UZS + Uzbekistan som. + enum + + + + VEF + Venezuelan bolívar fuerte. + enum + + + + VND + Vietnamese Dong. + enum + + + + VUV + Vanuatu vatu. + enum + + + + WST + Samoan tala. + enum + + + + XAF + CFA franc BEAC. + enum + + + + XCD + East Caribbean dollar. + enum + + + + XOF + CFA Franc BCEAO. + enum + + + + XPF + CFP franc. + enum + + + + YER + Yemeni rial. + enum + + + + ZAR + South African rand. + enum + + + + ZMK + Zambian kwacha. + enum + + + + ZWL + Zimbabwe dollar. + enum + + + + + energyPrice + + + + NC + Energy price for the power schedule action. + + + + Decimal + Decimal is the base-10 notational system for representing real numbers. +Primitive + + + + + RemedialActionSchedule + Remedial action schedule which power schedule actions. + + + + + Yes + +NC + + + PowerScheduleAction + Power schedule action which belongs to a remedial action schedule. + + + + + No + +NC + + + PowerTimePoint + Power, active and reactive, value at a given point in time. +NC + + + + + + + atTime + + + + NC + The time the data is valid for. + + + + + p + + + + NC + Active power injection. Load sign convention is used, i.e. positive sign means flow out from a node. + + + + ActivePower + Product of RMS value of the voltage and the RMS value of the in-phase component of the current. +CIMDatatype + + + + + + multiplier + + + + M + + + + UnitMultiplier + The unit multipliers defined for the CIM. When applied to unit symbols, the unit symbol is treated as a derived unit. Regardless of the contents of the unit symbol text, the unit symbol shall be treated as if it were a single-character unit symbol. Unit symbols should not contain multipliers, and it should be left to the multiplier to define the multiple for an entire data type. + +For example, if a unit symbol is "m2Pers" and the multiplier is "k", then the value is k(m**2/s), and the multiplier applies to the entire final value, not to any individual part of the value. This can be conceptualized by substituting a derived unit symbol for the unit type. If one imagines that the symbol "Þ" represents the derived unit "m2Pers", then applying the multiplier "k" can be conceptualized simply as "kÞ". + +For example, the SI unit for mass is "kg" and not "g". If the unit symbol is defined as "kg", then the multiplier is applied to "kg" as a whole and does not replace the "k" in front of the "g". In this case, the multiplier of "m" would be used with the unit symbol of "kg" to represent one gram. As a text string, this violates the instructions in IEC 80000-1. However, because the unit symbol in CIM is treated as a derived unit instead of as an SI unit, it makes more sense to conceptualize the "kg" as if it were replaced by one of the proposed replacements for the SI mass symbol. If one imagines that the "kg" were replaced by a symbol "Þ", then it is easier to conceptualize the multiplier "m" as creating the proper unit "mÞ", and not the forbidden unit "mkg". + + + + + + none + No multiplier or equivalently multiply by 1. + enum + + + + M + Mega 10**6. + enum + + + + + unit + + + + W + + + + UnitSymbol + The derived units defined for usage in the CIM. In some cases, the derived unit is equal to an SI unit. Whenever possible, the standard derived symbol is used instead of the formula for the derived unit. For example, the unit symbol Farad is defined as "F" instead of "CPerV". In cases where a standard symbol does not exist for a derived unit, the formula for the unit is used as the unit symbol. For example, density does not have a standard symbol and so it is represented as "kgPerm3". With the exception of the "kg", which is an SI unit, the unit symbols do not contain multipliers and therefore represent the base derived unit to which a multiplier can be applied as a whole. +Every unit symbol is treated as an unparseable text as if it were a single-letter symbol. The meaning of each unit symbol is defined by the accompanying descriptive text and not by the text contents of the unit symbol. +To allow the widest possible range of serializations without requiring special character handling, several substitutions are made which deviate from the format described in IEC 80000-1. The division symbol "/" is replaced by the letters "Per". Exponents are written in plain text after the unit as "m3" instead of being formatted as "m" with a superscript of 3 or introducing a symbol as in "m^3". The degree symbol "°" is replaced with the letters "deg". Any clarification of the meaning for a substitution is included in the description for the unit symbol. +Non-SI units are included in list of unit symbols to allow sources of data to be correctly labelled with their non-SI units (for example, a GPS sensor that is reporting numbers that represent feet instead of meters). This allows software to use the unit symbol information correctly convert and scale the raw data of those sources into SI-based units. +The integer values are used for harmonization with IEC 61850. + + + + + + s + Time in seconds. + enum + + + + W + Real power in watts (J/s). Electrical power may have real and reactive components. The real portion of electrical power (I&#178;R or VIcos(phi)), is expressed in Watts. See also apparent power and reactive power. + enum + + + + VAr + Reactive power in volt amperes reactive. The “reactive” or “imaginary” component of electrical power (VIsin(phi)). (See also real power and apparent power). +Note: Different meter designs use different methods to arrive at their results. Some meters may compute reactive power as an arithmetic value, while others compute the value vectorially. The data consumer should determine the method in use and the suitability of the measurement for the intended purpose. + enum + + + + Wh + Real energy in watt hours. + enum + + + + + value + + + + + + + + price + + + + NC + Price for the scheduled active power per unit of active power. e.g. per MW. + + + + + q + + + + NC + Reactive power injection. Load sign convention is used, i.e. positive sign means flow out from a node. + + + + ReactivePower + Product of RMS value of the voltage and the RMS value of the quadrature component of the current. +CIMDatatype + + + + + + value + + + + + + + + unit + + + + VAr + + + + + multiplier + + + + M + + + + + activatedP + + + + NC + Active power activated as part of redispatch. Negative number means that the value is scheduling down. Positive number means that the value is scheduling up. + + + + + activatedPrice + + + + NC + Price for the activated active power per unit e.g. per MW. + + + + ProposingRemedialActionScheduleShare + Proposing entity (System Operator) with a proper cost share for a given remedial action schedule. +NC + + + + + + + costSharingFactor + + + + NC + Sharing factor of the cost of the remedial action as a fraction of the total cost, i.e. system operator's cost = cost x (costSharingFactor / sum of all costSharingFactor). + + + + + mRID + + + + NC + Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. +For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements. + + + + RemedialActionSchedule + Remedial action schedule proposed by the proposing entity. + + + + + Yes + +NC + + + ProposingRemedialActionScheduleShare + The entity with its associated share that are making the proposal of the remedial action schedule + + + + + No + +NC + + + ProposingEntity + Proposing entity making the proposing remedial action schedule share. + + + + + Yes + +NC + + + ProposingRemedialActionScheduleShare + Proposing remedial action schedule share which is made by the proposing entity. + + + + + No + +NC + + + RedispatchScheduleAction + + Redispatch schedule action is an action to rearrange power schedules for a scheduled resource to obtain a feasible and secure operational state of the power electricity system. +NC + + + + + + ScheduleResource + The schedule resource that has this redispatch action. + + + + + Yes + +NC + + + RedispatchAction + The redispatch action that relates to this schedule resource. + + + + + No + +NC + + + RemedialAction + + Remedial action describes one or more actions that can be performed on a given power system model situation to eliminate one or more identified breaches of constraints. The remedial action can be costly, and have a cost characteristic, or non costly. +NC + + + + + RemedialAction + The remedial action that has a remedial action schedule associated. + + + + + Yes + +NC + + + RemedialActionSchedule + The remedial action schedule associated with a remedial action, i.e. the assigning a schedule to a remedial action. + + + + + No + +NC + + + RemedialActionCost + Remedial action cost is the total cost itemised cost by category and type for the remedial action. +NC + + + + + + + kind + + + + NC + Remedial action cost category related to the confirmation of the cost in regards to changes. + + + + CostSettledKind + Kind describing how settled the cost is in regards to changes. + + +NC + + + + indicative + Indicative cost. + enum + + + + provisional + Provisional cost. + enum + + + + final + Final cost. For instance, the cost is not expected to be changed on a later stage. + enum + + + + + startupCost + + + + NC + Start-up cost is the total cost for activating the remedial action, e.g. if a generator needs to be started before it can perform the remedial action. + + + + + mRID + + + + NC + Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. +For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements. + + + + + shutdownCost + + + + NC + Shutdown cost is the total cost for shutting down a unit as part of the remedial action. + + + + + opportunityCost + + + + NC + Opportunity cost is the total cost of potential earning that is missed due to performing the remedial action. + + + + + operationalCost + + + + NC + Operational cost is the total cost directly related to operate the unit according to the remedial action, e.g. fuel cost. + + + + + processingFee + + + + NC + Processing fee is the total cost for processing the remedial action. + + + + + otherCost + + + + NC + Other cost is the total cost that cannot be directly allocated to any of the other items. + + + + + savedFuelCost + + + + NC + Saved fuel cost is the total saving due to not consuming the expected fuel as part of the remedial action. + + + + + costAllocationTime + + + + NC + Cost allocation time is the time the cost shall be allocated. + + + + RemedialActionSchedule + Remedial action schedule for which this remedial action cost relates to. + + + + + Yes + +NC + + + RemedialActionCost + Remedial action cost related to this remedial schedule. + + + + + No + +NC + + + RemedialActionSchedule + + A schedule for a determined remedial action. +NC + + + + + + + statusKind + + + + NC + Indicates the status kind for the remedial action schedule. + + + + RemedialActionScheduleStatusKind + Remedial action schedule status kinds. + + +NC + + + + proposed + Proposed remedial action schedule. + enum + + + + agreed + Agreed remedial action schedule. + enum + + + + rejected + Rejected remedial action schedule. + enum + + + + ordered + Ordered remedial action schedule. + enum + + + + previouslyAgreed + Previously agreed remedial action schedule. + enum + + + + notUsed + Not used remedial action schedule. + enum + + + + agreementValidated + The agreement is validated for the remedial action schedule. + enum + + + + rejectionValidated + The rejection is validated for the remedial action schedule. + enum + + + + implemented + An ordered remedial action is implemented. + enum + + + + activated + Activated remedial action schedule. + enum + + + + + statusReason + + + + NC + Description of reasoning for the status. For instance, in case of rejected remedial action, the reason for this rejection is described here. + + + + + totalCostCurrency + + + + NC + The currency of the total cost. + + + + RemedialActionSchedule + The remedial action schedule relevant for this region. + + + + + No + +NC + + + AssignedRegion + The assigned region for this remedial action schedule. + + + + + Yes + +NC + + + RemedialActionSchedule + A remedial action schedule for which a remedial action schedule acceptance is reported. + + + + + Yes + +NC + + + RemedialActionScheduleAcceptance + The remedial action schedule acceptance related to a remedial action schedule. + + + + + No + +NC + + + ProposingEntity + The security coordinator that is proposing this remedial action schedule. + + + + + Yes + +NC + + + RemedialActionSchedule + Remedial action schedule for this security coordinator. + + + + + No + +NC + + + RemedialActionSchedule + Remedial action schedule included in the remedial action schedule group. + + + + + No + +NC + + + RemedialActionScheduleGroup + Remedial action schedule group in which the remedial action schedule is allocated. + + + + + Yes + +NC + + + RemedialActionScheduleAcceptance + It identifies if the remedial action schedule is accepted for a given system operator. +NC + + + + + + + kind + + + + NC + The kind of the remedial action acceptance. + + + + RemedialActionScheduleAcceptanceKind + The kind of acceptance for a remedial action schedule. + + +NC + + + + accepted + The acceptance of remedial action schedule is concluded and accepted. + enum + + + + refused + The acceptance of the remedial action schedule is concluded and refused. + enum + + + + waiting + The acceptance of the remedial action schedule is waiting (in progress). + enum + + + + timeout + The acceptance of the remedial action schedule was not completed due to timeout. + enum + + + + + mRID + + + + NC + Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. +For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements. + + + + SystemOperator + A system operator for which a remedial action schedule acceptances are reported. + + + + + Yes + +NC + + + RemedialActionScheduleAcceptance + Remedial action schedule acceptance related to a system operator. + + + + + No + +NC + + + RemedialActionScheduleGroup + + Remedial action schedule group collects two or more remedial action schedules together. The remedial action schedule group needs to be set up for the same remedial action or proposing alternative remedial action by including a reference to another remedial action. All remedial actions in a group must have the same activation time. +NC + + + + + + RemedialActionScheme + Remedial Action Scheme (RAS), Special Protection Schemes (SPS), System Protection Schemes (SPS) or System Integrity Protection Schemes (SIPS). +A Remedial Action Scheme consists of one or more stages that can trigger and execute a protection action. +NC +Description + + + + + + + armed + + + + NC + Defines the arming status of the remedial action scheme. It is set by operation or by signal. + + + + ArmedRemedialAction + Armed remedial action for a remedial action scheme. + + + + + No + +NC + + + RemedialActionScheme + Remedial action scheme that has this armed remedial action. + + + + + Yes + +NC + + + Region + A region where the system operator belongs to. +NC + + + + + ScheduleResource + A schedule resource is a market-based method for handling participation of small units, particularly located on the lower voltage level that is controlled by a Distributed System Operator (DSO). It is a collection of units that can operate in the market by providing bids, offers and a resulting committed operational schedule for the collection. +NC + + + + + SchemeRemedialAction + + Scheme remedial action is remedial action that involves a scheme that can include conditional logic and stages of grid alteration. The primary remedial action is the arming of these schemes, that will then perform curative remedial action when the condition is met. System Integrity Protection Scheme (SIPS) and Special Protection Scheme (SPS) are example of this. +NC +Description + + + + + + SecurityCoordinator + A role that coordinates the relevant remedial actions and their optimisation to ensure efficient use to achieve required operational security of the power system. +NC + + + + + SystemOperator + System operator. +NC + + + + + RealEnergy + Real electrical energy. +CIMDatatype + + + + + + multiplier + + + + M + + + + + unit + + + + Wh + + + + + value + + + + + + + Seconds + Time, in seconds. +CIMDatatype + + + + + + value + + + + Time, in seconds + + + + + unit + + + + s + + + + + multiplier + + + + none + + + + Duration + Duration as "PnYnMnDTnHnMnS" which conforms to ISO 8601, where nY expresses a number of years, nM a number of months, nD a number of days. The letter T separates the date expression from the time expression and, after it, nH identifies a number of hours, nM a number of minutes and nS a number of seconds. The number of seconds could be expressed as a decimal number, but all other numbers are integers. +Primitive + + + + + DocRemedialActionScheduleProfile + + This package contains datatypes used only in the RDFS header. + + + Date + Date as "yyyy-mm-dd", which conforms with ISO 8601. UTC time zone is specified as "yyyy-mm-ddZ". A local timezone relative UTC is specified as "yyyy-mm-dd(+/-)hh:mm". +Primitive + + + + + IRI + An IRI (Internationalized Resource Identifier) within an RDF graph is a Unicode string that conforms to the syntax defined in RFC 3987. +The primitive is serialized as rdf:resource in RDFXML. +IRIs in the RDF abstract syntax must be absolute, and may contain a fragment identifier. +IRI equality: Two IRIs are equal if and only if they are equivalent under Simple String Comparison according to section 5.1 of [RFC3987]. Further normalization must not be performed when comparing IRIs for equality. +IRIs are a generalization of URIs [RFC3986] that permits a wider range of Unicode characters. Every absolute URI and URL is an IRI, but not every IRI is an URI. When IRIs are used in operations that are only defined for URIs, they must first be converted according to the mapping defined in section 3.1 of [RFC3987]. A notable example is retrieval over the HTTP protocol. The mapping involves UTF-8 encoding of non-ASCII characters, %-encoding of octets not allowed in URIs, and Punycode-encoding of domain names. +Primitive +profcim + + + + + StringFixedLanguage + A string consisting of a sequence of characters. The character encoding is UTF-8. The string length is unspecified and unlimited. +The primitive is serialized as literal without language support. +Primitive +profcim + + + + + StringIRI + An IRI (Internationalized Resource Identifier) within an RDF graph is a Unicode string that conforms to the syntax defined in RFC 3987. +The primitive is serialized as literal without language support. +IRIs in the RDF abstract syntax must be absolute, and may contain a fragment identifier. +IRI equality: Two IRIs are equal if and only if they are equivalent under Simple String Comparison according to section 5.1 of [RFC3987]. Further normalization must not be performed when comparing IRIs for equality. +IRIs are a generalization of URIs [RFC3986] that permits a wider range of Unicode characters. Every absolute URI and URL is an IRI, but not every IRI is an URI. When IRIs are used in operations that are only defined for URIs, they must first be converted according to the mapping defined in section 3.1 of [RFC3987]. A notable example is retrieval over the HTTP protocol. The mapping involves UTF-8 encoding of non-ASCII characters, %-encoding of octets not allowed in URIs, and Punycode-encoding of domain names. +Primitive +profcim + + + + + URL + A Uniform Resource Locator (URL), colloquially termed a web address, is a reference to a web resource that specifies its location on a computer network and a mechanism for retrieving it. A URL is a specific type of Uniform Resource Identifier (URI), although many people use the two terms interchangeably.URLs occur most commonly to reference web pages (http), but are also used for file transfer (ftp), email (mailto), database access (JDBC), and many other applications. +Primitive +profcim + + + + diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/SecurityAnalysisResultProfile_v2_2_RDFSv2020_24Mar2023.rdf b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/SecurityAnalysisResultProfile_v2_2_RDFSv2020_24Mar2023.rdf new file mode 100644 index 0000000000..60bf1c924e --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/SecurityAnalysisResultProfile_v2_2_RDFSv2020_24Mar2023.rdf @@ -0,0 +1,695 @@ + + + + + + SAR + + vocabulary + + urn:iso:std:iec:61970-600-2:ed-1 + urn:iso:std:iec:61970-301:ed-7:amd1 + file://iec61970cim17v40_iec61968cim13v13a_iec62325cim03v17a.eap + urn:iso:std:iec:61970-401:draft:ed-1 + urn:iso:std:iec:61970-501:draft:ed-2 + file://CGMES-30v25_501-20v01.eap + 2.2.0 + ENTSO-E CIM EG CSA project + This vocabulary is describing the security analysis result profile. + urn:uuid:7d53a1b2-0dcc-4556-b868-6ed099bd9ac9 + en-GB + https://www.apache.org/licenses/LICENSE-2.0 + 2023-03-24 + ENTSO-E + ENTSO-E + Security Analysis Result Vocabulary + + + + + SecurityAnalysisResultProfile + + This package contains the security analysis result profile. +This profile is not intended to replace the Topology (TP) and State Variables (SV) profiles. Its intention is to exchange power flow result that is relevant for security optimization, either through violation or through a loading threshold. Systems should not use this profile for dumping a full database. The modeling is optimized to have the minimum size in addition to a well defined value definition (e.g. active power, apparent power,etc.). +Recommendation: If the terminals are connected with zero impedance, it is recommended to export only one terminal with a voltage (e.g. the terminal of a BusbarSection). +The connection between Contingency and Remedial Action is given by the Remedial Action Profile. The connection between AssessedElement and PowerFlowResult is given by the OperationalLimit. + + + ACDCTerminal + An electrical connection point (AC or DC) to a piece of conducting equipment. Terminals are connected at physical connection points called connectivity nodes. + + + + + PowerFlowResult + Power result associated with the ACDC terminal. + + + + + No + + + + ACDCTerminal + ACDC terminal where the powerflow result is located. + + + + + Yes + + + + BaseCasePowerFlowResult + + Base case power flow result for a given terminal. +NC + + + + + + ContingencyPowerFlowResult + + Contingency power flow result on a given terminal for a given contingency. +NC + + + + + + Contingency + The contingency that has this power flow result. + + + + + Yes + +NC + + + ContingencyPowerFlowResult + The power flow result that is associated with a contingency. + + + + + No + +NC + + + Contingency + An event threatening system reliability, consisting of one or more contingency elements. + + + + + PowerFlowResult + Power flow result including any operational limit violation. +NC + + + + + + value + + + + NC + The value of the limit violation in percent related to the value of the operational limit that is violated. For instance, if the operational limit is 1000 A and the current flow is 1100 A the value is reported as 110 %. + + + + PerCent + Percentage on a defined base. For example, specify as 100 to indicate at the defined base. +CIMDatatype + + + + + + value + + + + Normally 0 to 100 on a defined base. + + + + Float + A floating point number. The range is unspecified and not limited. +Primitive + + + + + + unit + + + + none + + + + UnitSymbol + The derived units defined for usage in the CIM. In some cases, the derived unit is equal to an SI unit. Whenever possible, the standard derived symbol is used instead of the formula for the derived unit. For example, the unit symbol Farad is defined as "F" instead of "CPerV". In cases where a standard symbol does not exist for a derived unit, the formula for the unit is used as the unit symbol. For example, density does not have a standard symbol and so it is represented as "kgPerm3". With the exception of the "kg", which is an SI unit, the unit symbols do not contain multipliers and therefore represent the base derived unit to which a multiplier can be applied as a whole. +Every unit symbol is treated as an unparseable text as if it were a single-letter symbol. The meaning of each unit symbol is defined by the accompanying descriptive text and not by the text contents of the unit symbol. +To allow the widest possible range of serializations without requiring special character handling, several substitutions are made which deviate from the format described in IEC 80000-1. The division symbol "/" is replaced by the letters "Per". Exponents are written in plain text after the unit as "m3" instead of being formatted as "m" with a superscript of 3 or introducing a symbol as in "m^3". The degree symbol "°" is replaced with the letters "deg". Any clarification of the meaning for a substitution is included in the description for the unit symbol. +Non-SI units are included in list of unit symbols to allow sources of data to be correctly labelled with their non-SI units (for example, a GPS sensor that is reporting numbers that represent feet instead of meters). This allows software to use the unit symbol information correctly convert and scale the raw data of those sources into SI-based units. +The integer values are used for harmonization with IEC 61850. + + + + + + none + Dimension less quantity, e.g. count, per unit, etc. + enum + + + + A + Current in amperes. + enum + + + + deg + Plane angle in degrees. + enum + + + + V + Electric potential in volts (W/A). + enum + + + + W + Real power in watts (J/s). Electrical power may have real and reactive components. The real portion of electrical power (I&#178;R or VIcos(phi)), is expressed in Watts. See also apparent power and reactive power. + enum + + + + VA + Apparent power in volt amperes. See also real power and reactive power. + enum + + + + VAr + Reactive power in volt amperes reactive. The “reactive” or “imaginary” component of electrical power (VIsin(phi)). (See also real power and apparent power). +Note: Different meter designs use different methods to arrive at their results. Some meters may compute reactive power as an arithmetic value, while others compute the value vectorially. The data consumer should determine the method in use and the suitability of the measurement for the intended purpose. + enum + + + + + multiplier + + + + none + + + + UnitMultiplier + The unit multipliers defined for the CIM. When applied to unit symbols, the unit symbol is treated as a derived unit. Regardless of the contents of the unit symbol text, the unit symbol shall be treated as if it were a single-character unit symbol. Unit symbols should not contain multipliers, and it should be left to the multiplier to define the multiple for an entire data type. + +For example, if a unit symbol is "m2Pers" and the multiplier is "k", then the value is k(m**2/s), and the multiplier applies to the entire final value, not to any individual part of the value. This can be conceptualized by substituting a derived unit symbol for the unit type. If one imagines that the symbol "Þ" represents the derived unit "m2Pers", then applying the multiplier "k" can be conceptualized simply as "kÞ". + +For example, the SI unit for mass is "kg" and not "g". If the unit symbol is defined as "kg", then the multiplier is applied to "kg" as a whole and does not replace the "k" in front of the "g". In this case, the multiplier of "m" would be used with the unit symbol of "kg" to represent one gram. As a text string, this violates the instructions in IEC 80000-1. However, because the unit symbol in CIM is treated as a derived unit instead of as an SI unit, it makes more sense to conceptualize the "kg" as if it were replaced by one of the proposed replacements for the SI mass symbol. If one imagines that the "kg" were replaced by a symbol "Þ", then it is easier to conceptualize the multiplier "m" as creating the proper unit "mÞ", and not the forbidden unit "mkg". + + + + + + none + No multiplier or equivalently multiply by 1. + enum + + + + k + Kilo 10**3. + enum + + + + M + Mega 10**6. + enum + + + + + absoluteValue + + + + NC + Absolute value from a power flow calculation on a given terminal related to a given operational limit. For instance, if the operational limit is 1000 A and the current flow is 1100 A the absoluteValue is reported as 1100 A. + + + + + atTime + + + + NC + The date and time of the scenario time that was studied and at which the limit violation occurred. + + + + DateTime + Date and time as "yyyy-mm-ddThh:mm:ss.sss", which conforms with ISO 8601. UTC time zone is specified as "yyyy-mm-ddThh:mm:ss.sssZ". A local timezone relative UTC is specified as "yyyy-mm-ddThh:mm:ss.sss-hh:mm". The second component (shown here as "ss.sss") could have any number of digits in its fractional part to allow any kind of precision beyond seconds. +Primitive + + + + + + isViolation + + + + NC + True if the power flow result is violating the associated operational limit. False if it is not violating the associated operational limits. + + + + Boolean + A type with the value space "true" and "false". +Primitive + + + + + + valueW + + + + NC + Active power value from a power flow calculation on a given terminal. + + + + ActivePower + Product of RMS value of the voltage and the RMS value of the in-phase component of the current. +CIMDatatype + + + + + + multiplier + + + + M + + + + + unit + + + + W + + + + + value + + + + + + + + valueVA + + + + NC + Apparent power value from a power flow calculation on a given terminal. + + + + ApparentPower + Product of the RMS value of the voltage and the RMS value of the current. +CIMDatatype + + + + + + multiplier + + + + M + + + + + unit + + + + VA + + + + + value + + + + + + + + valueV + + + + NC + Voltage value from a power flow calculation on a given terminal. + + + + Voltage + Electrical voltage, can be both AC and DC. +CIMDatatype + + + + + + multiplier + + + + k + + + + + unit + + + + V + + + + + value + + + + + + + + valueAngle + + + + NC + Voltage angle value from a power flow calculation on a given terminal. + + + + AngleDegrees + Measurement of angle in degrees. +CIMDatatype + + + + + + value + + + + + + + + unit + + + + deg + + + + + multiplier + + + + none + + + + + valueA + + + + NC + Current from a power flow calculation on a given terminal. + + + + CurrentFlow + Electrical current with sign convention: positive flow is out of the conducting equipment into the connectivity node. Can be both AC and DC. +CIMDatatype + + + + + + multiplier + + + + none + + + + + unit + + + + A + + + + + value + + + + + + + + valueVAR + + + + NC + Reactive power value from a power flow calculation on a given terminal. + + + + ReactivePower + Product of RMS value of the voltage and the RMS value of the quadrature component of the current. +CIMDatatype + + + + + + value + + + + + + + + unit + + + + VAr + + + + + multiplier + + + + M + + + + ReportedByRegion + The region which reports this limit violation. + + + + + Yes + +NC + + + LimitViolation + The limit violation reported by a region. + + + + + No + +NC + + + OperationalLimit + The operational limit that has this limit violation. + + + + + Yes + +NC + + + PowerFlowResult + The limit violation associated with an operational limit. + + + + + No + +NC + + + OperationalLimit + A value and normal value associated with a specific kind of limit. +The sub class value and normalValue attributes vary inversely to the associated OperationalLimitType.acceptableDuration (acceptableDuration for short). +If a particular piece of equipment has multiple operational limits of the same kind (apparent power, current, etc.), the limit with the greatest acceptableDuration shall have the smallest limit value and the limit with the smallest acceptableDuration shall have the largest limit value. Note: A large current can only be allowed to flow through a piece of equipment for a short duration without causing damage, but a lesser current can be allowed to flow for a longer duration. + + + + + Region + A region where the system operator belongs to. +NC + + + + + String + A string consisting of a sequence of characters. The character encoding is UTF-8. The string length is unspecified and unlimited. +Primitive + + + + + DocSecurityAnalysisResultProfile + + This package contains datatypes used only in the RDFS header. + + + Date + Date as "yyyy-mm-dd", which conforms with ISO 8601. UTC time zone is specified as "yyyy-mm-ddZ". A local timezone relative UTC is specified as "yyyy-mm-dd(+/-)hh:mm". +Primitive + + + + + IRI + An IRI (Internationalized Resource Identifier) within an RDF graph is a Unicode string that conforms to the syntax defined in RFC 3987. +The primitive is serialized as rdf:resource in RDFXML. +IRIs in the RDF abstract syntax must be absolute, and may contain a fragment identifier. +IRI equality: Two IRIs are equal if and only if they are equivalent under Simple String Comparison according to section 5.1 of [RFC3987]. Further normalization must not be performed when comparing IRIs for equality. +IRIs are a generalization of URIs [RFC3986] that permits a wider range of Unicode characters. Every absolute URI and URL is an IRI, but not every IRI is an URI. When IRIs are used in operations that are only defined for URIs, they must first be converted according to the mapping defined in section 3.1 of [RFC3987]. A notable example is retrieval over the HTTP protocol. The mapping involves UTF-8 encoding of non-ASCII characters, %-encoding of octets not allowed in URIs, and Punycode-encoding of domain names. +Primitive +profcim + + + + + StringFixedLanguage + A string consisting of a sequence of characters. The character encoding is UTF-8. The string length is unspecified and unlimited. +The primitive is serialized as literal without language support. +Primitive +profcim + + + + + StringIRI + An IRI (Internationalized Resource Identifier) within an RDF graph is a Unicode string that conforms to the syntax defined in RFC 3987. +The primitive is serialized as literal without language support. +IRIs in the RDF abstract syntax must be absolute, and may contain a fragment identifier. +IRI equality: Two IRIs are equal if and only if they are equivalent under Simple String Comparison according to section 5.1 of [RFC3987]. Further normalization must not be performed when comparing IRIs for equality. +IRIs are a generalization of URIs [RFC3986] that permits a wider range of Unicode characters. Every absolute URI and URL is an IRI, but not every IRI is an URI. When IRIs are used in operations that are only defined for URIs, they must first be converted according to the mapping defined in section 3.1 of [RFC3987]. A notable example is retrieval over the HTTP protocol. The mapping involves UTF-8 encoding of non-ASCII characters, %-encoding of octets not allowed in URIs, and Punycode-encoding of domain names. +Primitive +profcim + + + + + URL + A Uniform Resource Locator (URL), colloquially termed a web address, is a reference to a web resource that specifies its location on a computer network and a mechanism for retrieving it. A URL is a specific type of Uniform Resource Identifier (URI), although many people use the two terms interchangeably.URLs occur most commonly to reference web pages (http), but are also used for file transfer (ftp), email (mailto), database access (JDBC), and many other applications. +Primitive +profcim + + + + diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/SecurityScheduleProfile_v2_2_RDFSv2020_24Mar2023.rdf b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/SecurityScheduleProfile_v2_2_RDFSv2020_24Mar2023.rdf new file mode 100644 index 0000000000..3a83fa83b4 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/SecurityScheduleProfile_v2_2_RDFSv2020_24Mar2023.rdf @@ -0,0 +1,2825 @@ + + + + + + SS + vocabulary + + urn:iso:std:iec:61970-600-2:ed-1 + urn:iso:std:iec:61970-301:ed-7:amd1 + file://iec61970cim17v40_iec61968cim13v13a_iec62325cim03v17a.eap + urn:iso:std:iec:61970-401:draft:ed-1 + urn:iso:std:iec:61970-501:draft:ed-2 + file://CGMES-30v25_501-20v01.eap + 2.2.0 + ENTSO-E CIM EG CSA project + This vocabulary is describing the security schedule profile. + urn:uuid:af884936-ea95-416b-b4c9-1214caa68658 + en-GB + https://www.apache.org/licenses/LICENSE-2.0 + 2023-03-24 + ENTSO-E + ENTSO-E + Security schedule vocabulary + + + + + SecurityScheduleProfile + + This package contains the security schedule profile. + + + AssessedElement + + Assessed element is a network element for which the electrical state is evaluated in the regional or cross-regional process and which value is expected to fulfil regional rules function of the operational security limits. +The measurements and limits are as defined in the steady state hypothesis. +NC + + + + + AssessedElement + Assessed element which has an assessed element schedule. + + + + + Yes + +NC + + + AssessedElementSchedule + Assessed element schedule for an assessed element. + + + + + No + +NC + + + AssessedElementSchedule + + The schedule for Assessed Element. +NC + + + + + + AssessedElementTimePoint + The time point that relates to this assessed element schedule. + + + + + + No + +NC + + + AssessedElementSchedule + The assessed element schedule that has this time point. + + + + + Yes + +NC + + + AssessedElementTimePoint + Assessed element instruction value at a given point in time. +NC + + + + + + + atTime + + + + NC + The time the data is valid for. + + + + DateTime + Date and time as "yyyy-mm-ddThh:mm:ss.sss", which conforms with ISO 8601. UTC time zone is specified as "yyyy-mm-ddThh:mm:ss.sssZ". A local timezone relative UTC is specified as "yyyy-mm-ddThh:mm:ss.sss-hh:mm". The second component (shown here as "ss.sss") could have any number of digits in its fractional part to allow any kind of precision beyond seconds. +Primitive + + + + + + appointedMargin + + + + NC + The percentage (appointed to a region) of the remaining margin obtained in the grid model to reach its current limit. The maximum percentage shall by default be 10% of the remaining margin. +It is only used when an assessed element is considered conservative for a region. +The allowed value range is [0,100]. + + + + PerCent + Percentage on a defined base. For example, specify as 100 to indicate at the defined base. +CIMDatatype + + + + + + value + + + + Normally 0 to 100 on a defined base. + + + + Float + A floating point number. The range is unspecified and not limited. +Primitive + + + + + + unit + + + + none + + + + UnitSymbol + The derived units defined for usage in the CIM. In some cases, the derived unit is equal to an SI unit. Whenever possible, the standard derived symbol is used instead of the formula for the derived unit. For example, the unit symbol Farad is defined as "F" instead of "CPerV". In cases where a standard symbol does not exist for a derived unit, the formula for the unit is used as the unit symbol. For example, density does not have a standard symbol and so it is represented as "kgPerm3". With the exception of the "kg", which is an SI unit, the unit symbols do not contain multipliers and therefore represent the base derived unit to which a multiplier can be applied as a whole. +Every unit symbol is treated as an unparseable text as if it were a single-letter symbol. The meaning of each unit symbol is defined by the accompanying descriptive text and not by the text contents of the unit symbol. +To allow the widest possible range of serializations without requiring special character handling, several substitutions are made which deviate from the format described in IEC 80000-1. The division symbol "/" is replaced by the letters "Per". Exponents are written in plain text after the unit as "m3" instead of being formatted as "m" with a superscript of 3 or introducing a symbol as in "m^3". The degree symbol "°" is replaced with the letters "deg". Any clarification of the meaning for a substitution is included in the description for the unit symbol. +Non-SI units are included in list of unit symbols to allow sources of data to be correctly labelled with their non-SI units (for example, a GPS sensor that is reporting numbers that represent feet instead of meters). This allows software to use the unit symbol information correctly convert and scale the raw data of those sources into SI-based units. +The integer values are used for harmonization with IEC 61850. + + + + + + none + Dimension less quantity, e.g. count, per unit, etc. + enum + + + + s + Time in seconds. + enum + + + + W + Real power in watts (J/s). Electrical power may have real and reactive components. The real portion of electrical power (I&#178;R or VIcos(phi)), is expressed in Watts. See also apparent power and reactive power. + enum + + + + Wh + Real energy in watt hours. + enum + + + + + multiplier + + + + none + + + + UnitMultiplier + The unit multipliers defined for the CIM. When applied to unit symbols, the unit symbol is treated as a derived unit. Regardless of the contents of the unit symbol text, the unit symbol shall be treated as if it were a single-character unit symbol. Unit symbols should not contain multipliers, and it should be left to the multiplier to define the multiple for an entire data type. + +For example, if a unit symbol is "m2Pers" and the multiplier is "k", then the value is k(m**2/s), and the multiplier applies to the entire final value, not to any individual part of the value. This can be conceptualized by substituting a derived unit symbol for the unit type. If one imagines that the symbol "Þ" represents the derived unit "m2Pers", then applying the multiplier "k" can be conceptualized simply as "kÞ". + +For example, the SI unit for mass is "kg" and not "g". If the unit symbol is defined as "kg", then the multiplier is applied to "kg" as a whole and does not replace the "k" in front of the "g". In this case, the multiplier of "m" would be used with the unit symbol of "kg" to represent one gram. As a text string, this violates the instructions in IEC 80000-1. However, because the unit symbol in CIM is treated as a derived unit instead of as an SI unit, it makes more sense to conceptualize the "kg" as if it were replaced by one of the proposed replacements for the SI mass symbol. If one imagines that the "kg" were replaced by a symbol "Þ", then it is easier to conceptualize the multiplier "m" as creating the proper unit "mÞ", and not the forbidden unit "mkg". + + + + + + none + No multiplier or equivalently multiply by 1. + enum + + + + M + Mega 10**6. + enum + + + + + maxFlow + + + + NC + Maximum flow on an a conducting equipment or a collection of conducting equipment forming a power transfer corridor. For assessed elements that is becomes critical due to contingency, this value represents the maximum flow with remedial action taken into consideration. + + + + ActivePower + Product of RMS value of the voltage and the RMS value of the in-phase component of the current. +CIMDatatype + + + + + + multiplier + + + + M + + + + + unit + + + + W + + + + + value + + + + + + + + enabled + + + + NC + It identifies if the assessed element is enabled. True means enabled, False means disabled. + + + + Boolean + A type with the value space "true" and "false". +Primitive + + + + + + virtualPositiveMargin + + + + NC + A margin defined only for scanned AssessedElement (If AssessedElement.ScannedForRegion is present) in order to represent the influence of available remedial action which is not cross-border relevant remedial action. +The margin is modifying the limits used for the assessment whatever the limit it is (e.g. PATL, TATL).This symbolizes a remedial action that can be applied internally by the System Operator. It will be resolved by the System Operator and not by the optimization of remedial actions. The attribute shall be a positive value. +The allowed value range is [0,100]. + + + + + scannedThresholdMargin + + + + NC + Threshold percentage that a scanned element can be overloaded, on a given element, on top of any overload prior to optimisation (default= 5%). e.g. Initial loading of the element is 110%, with a 5% scanned threshold margin, the new maximum is 115% of the limit (e.g. PATL, TATL, etc). +The allowed value range is [0,100]. + + + + AssessedElementWithContingency + Combination of an assessed element and a contingency. +NC + + + + + AssessedElementWithContingency + Assessed element with contingency that has enabling schedules. + + + + + Yes + +NC + + + GenericEnablingSchedule + Enabling schedule which belongs to the assessed element with contingency. + + + + + No + +NC + + + AssessedElementWithRemedialAction + Combination of an assessed element and a remedial action +NC + + + + + AssessedElementWithRemedialAction + Assessed element with remedial action that has enabling schedules. + + + + + Yes + +NC + + + GenericEnablingSchedule + Enabling schedule which belongs to the assessed element with remedial action. + + + + + No + +NC + + + AvailabilityTimePoint + Availability instruction value at a given point in time. +NC + + + + + + + atTime + + + + NC + The time the data is valid for. + + + + + available + + + + NC + It identifies if the element is available. True means available, False means unavailable. + + + + GenericAvailabilitySchedule + The availability schedule which belongs to the availability timepoint. + + + + + Yes + +NC + + + AvailabilityTimePoint + The availability timepoint for an available schedule. + + + + + + No + +NC + + + BaseIrregularTimeSeries + + Time series that has irregular points in time. +NC + + + + + BaseTimeSeries + + Time series of values at points in time. +NC + + + + + + interpolationKind + + + + Kind of interpolation done between time point. + + + + TimeSeriesInterpolationKind + Kinds of interpolation of values between two time point. + + +NC + + + + none + No interpolation is applied. + enum + + + + next + The value between two time points is set to next value. + enum + + + + linear + Linear interpolation is applied for values between two time points. + enum + + + + + kind + + + + Kind of base time series. + + + + BaseTimeSeriesKind + Kind of time series. + + +NC + + + + schedule + Time series is schedule data. The values represent the result of a committed and plan forecast data that has been through a quality control and could incur penalty when not followed. + enum + + + + ConductingEquipment + + The parts of the AC power system that are designed to carry current or that are conductively connected through terminals. + + + + + Contingency + An event threatening system reliability, consisting of one or more contingency elements. + + + + + Contingency + Contingency which has a contingency schedule. + + + + + Yes + +NC + + + ContingencySchedule + Contingency schedule for a contingecy. + + + + + No + +NC + + + ContingencySchedule + + The schedule for Contingency. +NC + + + + + + ContingencySchedule + The contingency schedule that has this time point. + + + + + Yes + +NC + + + ContingencyTimePoint + The time point that relates to this contingency schedule. + + + + + + No + +NC + + + ContingencyTimePoint + Contingency instruction value at a given point in time. +NC + + + + + + + atTime + + + + NC + The time the data is valid for. + + + + + mustStudy + + + + NC + Set true if must study this contingency. + + + + + probability + + + + NC + Probability of occurrence. The allowed value range is [0,100]. + + + + ContingencyWithRemedialAction + Combination of a contingency and a remedial action. ContingencyWithRemedialAction shall not be instantiated for preventive RemedialAction (RemedialAction.kind equals RemedialActionKind.preventive). +NC + + + + + ContingencyWithRemedialAction + Contingency with remedial action which has enabling schedules. + + + + + Yes + +NC + + + GenericEnablingSchedule + Enabling schedule associated to a contingency with remedial action. + + + + + No + +NC + + + EnablingTimePoint + Enabling instruction value at a given point in time. +NC + + + + + + + atTime + + + + NC + The time the data is valid for. + + + + + enabled + + + + NC + It identifies if the element is enabled. True means enabled, False means not enabled. + + + + EnablingTimePoint + The enabling timepoint for a assessed element with enabling schedule. + + + + + + No + +NC + + + GenericEnablingSchedule + The enabling schedule which belongs to the enabling timepoint. + + + + + Yes + +NC + + + EnergyBlockOrder + The energy block order is a block (an amount) of active power that forms the sequence of active power orders that are going to be distributed to an energy block component. +NC + + + + + EnergyBlockOrder + A EnergyBlockOrder which has a GLSK Schedule. + + + + + Yes + +NC + + + GLSKSchedule + The GLSK schedule for a EnergyBlockOrder. + + + + + No + +NC + + + EnergyConnection + + A connection of energy generation or consumption on the power system model. + + + + + EnergyConsumer + Generic user of energy - a point of consumption on the power system model. +EnergyConsumer.pfixed, .qfixed, .pfixedPct and .qfixedPct have meaning only if there is no LoadResponseCharacteristic associated with EnergyConsumer or if LoadResponseCharacteristic.exponentModel is set to False. + + + + + EnergyConsumer + The EnergyConsumer that has a GLSK schedule. + + + + + Yes + +NC + + + GLSKSchedule + The GLSK schedule for an Energy Consumer. + + + + + No + +NC + + + EnergyGroup + An energy group is an aggregation of energy components which have the same energy characteristic, e.g. fuel type and technology. It can be used to allocate energy. +NC + + + + + EnergyGroup + The EnergyGroup which has a GLSK Schedule. + + + + + Yes + +NC + + + GLSKSchedule + The GLSK schedule for an EnergyGroup. + + + + + No + +NC + + + Equipment + + The parts of a power system that are physical devices, electronic or mechanical. + + + + + GeneratingUnit + A single or set of synchronous machines for converting mechanical power into alternating-current power. For example, individual machines within a set may be defined for scheduling purposes while a single control signal is derived for the set. In this case there would be a GeneratingUnit for each member of the set and an additional GeneratingUnit corresponding to the set. + + + + + GeneratingUnit + The Generating Unit which a GLSK Schedule. + + + + + Yes + +NC + + + GLSKSchedule + The GLSK schedule for a Generating Unit. + + + + + No + +NC + + + GenericAvailableSchedule + + The schedule for the availability of elements. +NC + + + + + + RemedialAction + Remedial action which has available schedules. + + + + + Yes + +NC + + + GenericAvailableSchedule + Available schedule associated to a remedial action. + + + + + No + +NC + + + GenericEnablingSchedule + + The schedule for the enabling of elements. +NC + + + + + + GridStateAlteration + Grid state alteration which has enabling schedules. + + + + + Yes + +NC + + + GenericEnablingSchedule + Enabling schedule associated to a grid state alteration. + + + + + No + +NC + + + GenericEnablingSchedule + Enabling schedule associated to a remedial action dependency. + + + + + No + +NC + + + RemedialActionDependency + Remedial action dependency which has enabling schedules. + + + + + Yes + +NC + + + GenericValueSchedule + + Time series represent irregular generic value at given points in time. The type of value is given by the reference association. +NC + + + + + + GenericValueSchedule + Generic value schedule which has a range constraint. + + + + + No + +NC + + + RangeConstraint + Range constraint for the generic value schedule. + + + + + Yes + +NC + + + GenericValueSchedule + Time series the time point values belongs to. + + + + + Yes + +NC + + + GenericValueTimePoint + Value for the point in time. + + + + + + No + +NC + + + GenericValueSchedule + Generic value schedule which has an power remedial action. + + + + + No + +NC + + + PowerRemedialAction + Power remedial action for the generic value schedule. + + + + + Yes + +NC + + + GenericValueTimePoint + Generic value for a given point in time. +NC + + + + + + + atTime + + + + NC + The time the data is valid for. + + + + + value + + + + NC + The value at the time. The meaning of the value is defined by the derived type of the associated schedule. The value can be integer, float or boolean. In case of boolean 1 equals true and 0 equals false. + + + + GLSKBidActionDistribution + + Distribution of the bid action on the generator and load shift keys. +NC + + + + + + GLSKSchedule + GLSK schedule in GLSK bid action distribution. + + + + + Yes + +NC + + + GLSKBidActionDistribution + GLSK bid action distribution for the GLSK schedule. + + + + + No + +NC + + + PowerBidSchedule + Power bid schedule for the given distribution. + + + + + Yes + +NC + + + GLSKBidActionDistribution + Distribution of the power bid amongst the generators and loads. + + + + + No + +NC + + + GLSKSchedule + + The schedule for Generation and Load Shift Keys (GLSK). +NC + + + + + + ScheduleResource + The Schedule Resource that has a GLSK schedule. + + + + + Yes + +NC + + + GLSKSchedule + The GLSK schedule for a schedule resource. + + + + + No + +NC + + + HydroPump + The Hydro Pump which has a GLSK schedule. + + + + + Yes + +NC + + + GLSKSchedule + The GLSK schedule for a Hydro Pump. + + + + + No + +NC + + + PowerElectronicsUnit + The Power Electronics Unit which has a GLSK schedule. + + + + + Yes + +NC + + + GLSKSchedule + The GLSK schedule for a Power Electronics Unit. + + + + + No + +NC + + + GLSKSchedule + The GLSK schedule which belongs to the participation factor timepoint. + + + + + Yes + +NC + + + ParticipationFactorTimePoint + The participation factor timepoint for a GLSK schedule. + + + + + + No + +NC + + + GridStateAlteration + + Grid state alteration is a change of values describing state (operating point) of one element in the grid model compared to the base case. +NC + + + + + HydroPump + A synchronous motor-driven pump, typically associated with a pumped storage plant. + + + + + IdentifiedObject + This is a root class to provide common identification for all classes needing identification and naming attributes. + + + + + + description + + + + The description is a free human readable text describing or naming the object. It may be non unique and may not correlate to a naming hierarchy. + + + + String + A string consisting of a sequence of characters. The character encoding is UTF-8. The string length is unspecified and unlimited. +Primitive + + + + + + mRID + + + + Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. +For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements. + + + + + name + + + + The name is any free human readable and possibly non unique text naming the object. + + + + ParticipationFactorTimePoint + Participation factor for a given point in time. +NC + + + + + + + atTime + + + + NC + The time the data is valid for. + + + + + participationFactor + + + + NC + Participation factor describing the entity part of the active power provided by a collection of entities (e.g. an active power forecast to a collection of entities is divided to each of the member entity according to the participation factor). Must be a positive value. +In the case of a sharing strategy, the distribution is following entities value (V) equals aggregated value (T) divided by sum of participation factors (PF), i.e. V=T/sum(PF). +In the case of priority strategy, the item with the lowest number gets allocated energy first. + + + + PowerBidDependency + Dependency between the related power bids. +NC + + + + + + + kind + + + + NC + Type of dependency between bids. + + + + PowerBidDependencyKind + Kind of power bid dependency. + + +NC + + + + exclusive + Bids are exclusive depending on each other. e.g. Only one of the bids can be activated at the same time. + enum + + + + inclusive + Bids are inclusive depending on each other. e.g. Both bids need to be activated if one of them is activated. + enum + + + + restrictive + Bids are restrictive depending on each other. e.g. You have to take the father bid before you might take the child bid. + enum + + + + + delay + + + + NC + Time delay between activation of the parents until the dependent offer will be available. + + + + Duration + Duration as "PnYnMnDTnHnMnS" which conforms to ISO 8601, where nY expresses a number of years, nM a number of months, nD a number of days. The letter T separates the date expression from the time expression and, after it, nH identifies a number of hours, nM a number of minutes and nS a number of seconds. The number of seconds could be expressed as a decimal number, but all other numbers are integers. +Primitive + + + + + + mRID + + + + NC + Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. +For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements. + + + + DependentBidDelay + Bid delay which depends on a main power bid. + + + + + No + +NC + + + DependentPowerBidSchedule + Dependent power bid which has some dependent bid delays. + + + + + Yes + +NC + + + PowerBidDependency + Power bids which depends on main bid. + + + + + + No + +NC + + + MainPowerBidSchedule + Main power bid which some dependent power bids. + + + + + Yes + +NC + + + PowerBidSchedule + + Power bid or offer related to a redispatch or countertrading measures. In the case of market place for economic efficiency of the bids and offers, this is equivalent to BidTimeSeries class in 62325 package. +NC + + + + + + + isOffer + + + + NC + Indicates if the energy bid is an offer or not. True, means that the bid is an offer. False, means that the bid is not an offer. + + + + + totalMaximumEnergy + + + + NC + Maximum total energy that can be activated by the bid. + + + + RealEnergy + Real electrical energy. +CIMDatatype + + + + + + multiplier + + + + M + + + + + unit + + + + Wh + + + + + value + + + + + + + + direction + + + + NC + Define the direction of the energy adjustment. + + + + BidDirectionKind + Kind of direction of the bid. + + +NC + + + + up + Up signifies that the available power can be used by the purchasing area to increase energy. + enum + + + + down + Down signifies that the available power can be used by the purchasing area to decrease energy. + enum + + + + upAndDown + Up and down signifies that both up and down values are equal. + enum + + + + stable + The direction at a given instant in time is considered to be stable. + enum + + + + + currency + + + + NC + Currency of the bid. + + + + Currency + Monetary currencies. ISO 4217 standard including 3-character currency code. + + + + + + AED + United Arab Emirates dirham. + enum + + + + AFN + Afghan afghani. + enum + + + + ALL + Albanian lek. + enum + + + + AMD + Armenian dram. + enum + + + + ANG + Netherlands Antillean guilder. + enum + + + + AOA + Angolan kwanza. + enum + + + + ARS + Argentine peso. + enum + + + + AUD + Australian dollar. + enum + + + + AWG + Aruban florin. + enum + + + + AZN + Azerbaijani manat. + enum + + + + BAM + Bosnia and Herzegovina convertible mark. + enum + + + + BBD + Barbados dollar. + enum + + + + BDT + Bangladeshi taka. + enum + + + + BGN + Bulgarian lev. + enum + + + + BHD + Bahraini dinar. + enum + + + + BIF + Burundian franc. + enum + + + + BMD + Bermudian dollar (customarily known as Bermuda dollar). + enum + + + + BND + Brunei dollar. + enum + + + + BOB + Boliviano. + enum + + + + BOV + Bolivian Mvdol (funds code). + enum + + + + BRL + Brazilian real. + enum + + + + BSD + Bahamian dollar. + enum + + + + BTN + Bhutanese ngultrum. + enum + + + + BWP + Botswana pula. + enum + + + + BYR + Belarusian ruble. + enum + + + + BZD + Belize dollar. + enum + + + + CAD + Canadian dollar. + enum + + + + CDF + Congolese franc. + enum + + + + CHF + Swiss franc. + enum + + + + CLF + Unidad de Fomento (funds code), Chile. + enum + + + + CLP + Chilean peso. + enum + + + + CNY + Chinese yuan. + enum + + + + COP + Colombian peso. + enum + + + + COU + Unidad de Valor Real. + enum + + + + CRC + Costa Rican colon. + enum + + + + CUC + Cuban convertible peso. + enum + + + + CUP + Cuban peso. + enum + + + + CVE + Cape Verde escudo. + enum + + + + CZK + Czech koruna. + enum + + + + DJF + Djiboutian franc. + enum + + + + DKK + Danish krone. + enum + + + + DOP + Dominican peso. + enum + + + + DZD + Algerian dinar. + enum + + + + EEK + Estonian kroon. + enum + + + + EGP + Egyptian pound. + enum + + + + ERN + Eritrean nakfa. + enum + + + + ETB + Ethiopian birr. + enum + + + + EUR + Euro. + enum + + + + FJD + Fiji dollar. + enum + + + + FKP + Falkland Islands pound. + enum + + + + GBP + Pound sterling. + enum + + + + GEL + Georgian lari. + enum + + + + GHS + Ghanaian cedi. + enum + + + + GIP + Gibraltar pound. + enum + + + + GMD + Gambian dalasi. + enum + + + + GNF + Guinean franc. + enum + + + + GTQ + Guatemalan quetzal. + enum + + + + GYD + Guyanese dollar. + enum + + + + HKD + Hong Kong dollar. + enum + + + + HNL + Honduran lempira. + enum + + + + HRK + Croatian kuna. + enum + + + + HTG + Haitian gourde. + enum + + + + HUF + Hungarian forint. + enum + + + + IDR + Indonesian rupiah. + enum + + + + ILS + Israeli new sheqel. + enum + + + + INR + Indian rupee. + enum + + + + IQD + Iraqi dinar. + enum + + + + IRR + Iranian rial. + enum + + + + ISK + Icelandic króna. + enum + + + + JMD + Jamaican dollar. + enum + + + + JOD + Jordanian dinar. + enum + + + + JPY + Japanese yen. + enum + + + + KES + Kenyan shilling. + enum + + + + KGS + Kyrgyzstani som. + enum + + + + KHR + Cambodian riel. + enum + + + + KMF + Comoro franc. + enum + + + + KPW + North Korean won. + enum + + + + KRW + South Korean won. + enum + + + + KWD + Kuwaiti dinar. + enum + + + + KYD + Cayman Islands dollar. + enum + + + + KZT + Kazakhstani tenge. + enum + + + + LAK + Lao kip. + enum + + + + LBP + Lebanese pound. + enum + + + + LKR + Sri Lanka rupee. + enum + + + + LRD + Liberian dollar. + enum + + + + LSL + Lesotho loti. + enum + + + + LTL + Lithuanian litas. + enum + + + + LVL + Latvian lats. + enum + + + + LYD + Libyan dinar. + enum + + + + MAD + Moroccan dirham. + enum + + + + MDL + Moldovan leu. + enum + + + + MGA + Malagasy ariary. + enum + + + + MKD + Macedonian denar. + enum + + + + MMK + Myanma kyat. + enum + + + + MNT + Mongolian tugrik. + enum + + + + MOP + Macanese pataca. + enum + + + + MRO + Mauritanian ouguiya. + enum + + + + MUR + Mauritian rupee. + enum + + + + MVR + Maldivian rufiyaa. + enum + + + + MWK + Malawian kwacha. + enum + + + + MXN + Mexican peso. + enum + + + + MYR + Malaysian ringgit. + enum + + + + MZN + Mozambican metical. + enum + + + + NAD + Namibian dollar. + enum + + + + NGN + Nigerian naira. + enum + + + + NIO + Cordoba oro. + enum + + + + NOK + Norwegian krone. + enum + + + + NPR + Nepalese rupee. + enum + + + + NZD + New Zealand dollar. + enum + + + + OMR + Omani rial. + enum + + + + PAB + Panamanian balboa. + enum + + + + PEN + Peruvian nuevo sol. + enum + + + + PGK + Papua New Guinean kina. + enum + + + + PHP + Philippine peso. + enum + + + + PKR + Pakistani rupee. + enum + + + + PLN + Polish zloty. + enum + + + + PYG + Paraguayan guaraní. + enum + + + + QAR + Qatari rial. + enum + + + + RON + Romanian new leu. + enum + + + + RSD + Serbian dinar. + enum + + + + RUB + Russian rouble. + enum + + + + RWF + Rwandan franc. + enum + + + + SAR + Saudi riyal. + enum + + + + SBD + Solomon Islands dollar. + enum + + + + SCR + Seychelles rupee. + enum + + + + SDG + Sudanese pound. + enum + + + + SEK + Swedish krona/kronor. + enum + + + + SGD + Singapore dollar. + enum + + + + SHP + Saint Helena pound. + enum + + + + SLL + Sierra Leonean leone. + enum + + + + SOS + Somali shilling. + enum + + + + SRD + Surinamese dollar. + enum + + + + STD + São Tomé and Príncipe dobra. + enum + + + + SYP + Syrian pound. + enum + + + + SZL + Lilangeni. + enum + + + + THB + Thai baht. + enum + + + + TJS + Tajikistani somoni. + enum + + + + TMT + Turkmenistani manat. + enum + + + + TND + Tunisian dinar. + enum + + + + TOP + Tongan pa'anga. + enum + + + + TRY + Turkish lira. + enum + + + + TTD + Trinidad and Tobago dollar. + enum + + + + TWD + New Taiwan dollar. + enum + + + + TZS + Tanzanian shilling. + enum + + + + UAH + Ukrainian hryvnia. + enum + + + + UGX + Ugandan shilling. + enum + + + + USD + United States dollar. + enum + + + + UYU + Uruguayan peso. + enum + + + + UZS + Uzbekistan som. + enum + + + + VEF + Venezuelan bolívar fuerte. + enum + + + + VND + Vietnamese Dong. + enum + + + + VUV + Vanuatu vatu. + enum + + + + WST + Samoan tala. + enum + + + + XAF + CFA franc BEAC. + enum + + + + XCD + East Caribbean dollar. + enum + + + + XOF + CFA Franc BCEAO. + enum + + + + XPF + CFP franc. + enum + + + + YER + Yemeni rial. + enum + + + + ZAR + South African rand. + enum + + + + ZMK + Zambian kwacha. + enum + + + + ZWL + Zimbabwe dollar. + enum + + + + + totalMinimumEnergy + + + + NC + Minimum total energy that has to be activated by the bid. + + + + + priority + + + + NC + The numeric local priority given to a bid. Lower numeric values will have higher priority. + + + + Integer + An integer number. The range is unspecified and not limited. +Primitive + + + + + + maximumUptime + + + + NC + Maximum duration the action needs to be remain active after startup. + + + + + minimumUptime + + + + NC + Minimum duration the action needs to be remain active after startup. + + + + + startupCost + + + + NC + Total startup cost incurred for all the units involved in the bid. This overrides any cost on the specific unit. + + + + Decimal + Decimal is the base-10 notational system for representing real numbers. +Primitive + + + + + + shutdownCost + + + + NC + Total shutdown cost incurred for all the units involved in the bid. This overrides any cost on the specific unit. + + + + + leadTime + + + + NC + Time it takes for the bid to be called upon until it is active. + + + + + minimumOffTime + + + + NC + Minimum time interval between activation of the bid involving startup and shutdown. This value overrides any value on the unit. + + + + PowerBidScheduleTimePoint + Power bid schedule time points which belong to a power bid schedule. + + + + + + No + +NC + + + PowerBidSchedule + Power bid schedule that has many power bid schedule time points. + + + + + Yes + +NC + + + ScheduleResource + Schedule resource which has several power bid schedules. + + + + + No + +NC + + + PowerBidSchedule + Power bid schedule which belongs to a schedule resource. + + + + + No + +NC + + + PowerBidSchedule + Power bid schedule addressing the power remedial action. + + + + + No + +NC + + + PowerRemedialAction + Power remedial action for which the bid is given. + + + + + Yes + +NC + + + PowerBidScheduleTimePoint + Time series represent irregular power, active and reactive, values at given points in time. +NC + + + + + + + atTime + + + + NC + The time the data is valid for. + + + + + price + + + + NC + Quantity given in the time points. + + + + + p + + + + NC + Active power given in the time point. + + + + + minimumActivationP + + + + NC + Minimum active power given in the time point. + + + + + stepIncrementP + + + + NC + The minimum increment that can be applied for an increase in an activation request. + + + + PowerElectronicsUnit + A generating unit or battery or aggregation that connects to the AC network using power electronics rather than rotating machines. + + + + + PowerRemedialAction + Energy remedial action describes actions to rearrange power schedules. +NC + + + + + PowerSystemResource + + A power system resource (PSR) can be an item of equipment such as a switch, an equipment container containing many individual items of equipment such as a substation, or an organisational entity such as sub-control area. Power system resources can have measurements associated. + + + + + RangeConstraint + + Defines the rage constraint. +NC + + + + + RemedialAction + + Remedial action describes one or more actions that can be performed on a given power system model situation to eliminate one or more identified breaches of constraints. The remedial action can be costly, and have a cost characteristic, or non costly. +NC + + + + + RemedialActionDependency + Remedial action dependency is making two remedial actions depending on each other. Multiple dependency is done by multiple instances of this class. The dependency can arrive by having one of the following examples. +<ul> + <li>The dependent remedial action is controlled by different system operator (Modeling Authority) (e.g. SIPS that goes across control area).</li> + <li>The dependent remedial action is representing two or more remedial action that represent the same grid state alteration but with different modeling resolution (e.g. detail direct current model versus a simplified model).</li> + <li>The remedial action can be combined with other remedial action without the need to create multiple remedial action with the same grid alteration for enabling dependency.</li> +</ul> +NC + + + + + ScheduleResource + A schedule resource is a market-based method for handling participation of small units, particularly located on the lower voltage level that is controlled by a Distributed System Operator (DSO). It is a collection of units that can operate in the market by providing bids, offers and a resulting committed operational schedule for the collection. +NC + + + + + Seconds + Time, in seconds. +CIMDatatype + + + + + + value + + + + Time, in seconds + + + + + unit + + + + s + + + + + multiplier + + + + none + + + + DocSecurityScheduleProfile + + This package contains datatypes used only in the RDFS header. + + + Date + Date as "yyyy-mm-dd", which conforms with ISO 8601. UTC time zone is specified as "yyyy-mm-ddZ". A local timezone relative UTC is specified as "yyyy-mm-dd(+/-)hh:mm". +Primitive + + + + + IRI + An IRI (Internationalized Resource Identifier) within an RDF graph is a Unicode string that conforms to the syntax defined in RFC 3987. +The primitive is serialized as rdf:resource in RDFXML. +IRIs in the RDF abstract syntax must be absolute, and may contain a fragment identifier. +IRI equality: Two IRIs are equal if and only if they are equivalent under Simple String Comparison according to section 5.1 of [RFC3987]. Further normalization must not be performed when comparing IRIs for equality. +IRIs are a generalization of URIs [RFC3986] that permits a wider range of Unicode characters. Every absolute URI and URL is an IRI, but not every IRI is an URI. When IRIs are used in operations that are only defined for URIs, they must first be converted according to the mapping defined in section 3.1 of [RFC3987]. A notable example is retrieval over the HTTP protocol. The mapping involves UTF-8 encoding of non-ASCII characters, %-encoding of octets not allowed in URIs, and Punycode-encoding of domain names. +Primitive +profcim + + + + + StringFixedLanguage + A string consisting of a sequence of characters. The character encoding is UTF-8. The string length is unspecified and unlimited. +The primitive is serialized as literal without language support. +Primitive +profcim + + + + + URL + A Uniform Resource Locator (URL), colloquially termed a web address, is a reference to a web resource that specifies its location on a computer network and a mechanism for retrieving it. A URL is a specific type of Uniform Resource Identifier (URI), although many people use the two terms interchangeably.URLs occur most commonly to reference web pages (http), but are also used for file transfer (ftp), email (mailto), database access (JDBC), and many other applications. +Primitive +profcim + + + + + StringIRI + An IRI (Internationalized Resource Identifier) within an RDF graph is a Unicode string that conforms to the syntax defined in RFC 3987. +The primitive is serialized as literal without language support. +IRIs in the RDF abstract syntax must be absolute, and may contain a fragment identifier. +IRI equality: Two IRIs are equal if and only if they are equivalent under Simple String Comparison according to section 5.1 of [RFC3987]. Further normalization must not be performed when comparing IRIs for equality. +IRIs are a generalization of URIs [RFC3986] that permits a wider range of Unicode characters. Every absolute URI and URL is an IRI, but not every IRI is an URI. When IRIs are used in operations that are only defined for URIs, they must first be converted according to the mapping defined in section 3.1 of [RFC3987]. A notable example is retrieval over the HTTP protocol. The mapping involves UTF-8 encoding of non-ASCII characters, %-encoding of octets not allowed in URIs, and Punycode-encoding of domain names. +Primitive +profcim + + + + diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/SensitivityMatrixProfile_v2_2_RDFSv2020_24Mar2023.rdf b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/SensitivityMatrixProfile_v2_2_RDFSv2020_24Mar2023.rdf new file mode 100644 index 0000000000..4bd499ba3d --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/SensitivityMatrixProfile_v2_2_RDFSv2020_24Mar2023.rdf @@ -0,0 +1,485 @@ + + + + + + SM + + vocabulary + + urn:iso:std:iec:61970-600-2:ed-1 + urn:iso:std:iec:61970-301:ed-7:amd1 + file://iec61970cim17v40_iec61968cim13v13a_iec62325cim03v17a.eap + urn:iso:std:iec:61970-401:draft:ed-1 + urn:iso:std:iec:61970-501:draft:ed-2 + file://CGMES-30v25_501-20v01.eap + 2.2.0 + ENTSO-E CIM EG CSA project + This vocabulary is describing the sensitivity matrix. + urn:uuid:d89a8510-528b-49a9-81f1-c51be51caa6f + en-GB + https://www.apache.org/licenses/LICENSE-2.0 + 2023-03-24 + ENTSO-E + ENTSO-E + Sensitivity Matrix Vocabulary + + + + + SensitivityMatrixProfile + + This package contains sensitivity matrix profile. + + + AssessedElement + Assessed element is a network element for which the electrical state is evaluated in the regional or cross-regional process and which value is expected to fulfil regional rules function of the operational security limits. +The measurements and limits are as defined in the steady state hypothesis. +NC + + + + + AssessedElement + The assessed element with contingency associated with this observable quantity. + + + + + Yes + +NC + + + ObservableQuantity + The observable quantity for this assessed element with contingency. + + + + + No + +NC + + + Contingency + An event threatening system reliability, consisting of one or more contingency elements. + + + + + ObservableQuantity + The observable quantity for this contingency. + + + + + No + +NC + + + Contingency + The contingency associated with this observable quantity. + + + + + Yes + +NC + + + ControllableQuantity + Controllable quantity is a set point quantity on a grid state alteration or on a remedial action. +NC + + + + + + + value + + + + NC + The value of the change applied to the grid state alteration or remedial action. In the case of multiple changes or non-quantifiable changes (e.g. Topology changes) the value needs to represent the suitable value that makes the derivable value given in the observable quantity for the purpose of the calculation of the sensitivity factor. The value can be integer, float or boolean. In case of boolean 1 equals true and 0 equals false. + + + + Float + A floating point number. The range is unspecified and not limited. +Primitive + + + + + ControllableQuantity + The controllable quantity associated with this grid state alteration. + + + + + No + +NC + + + GridStateAlteration + The grid state alteration for this controllable quantity. + + + + + Yes + +NC + + + ControllableQuantity + The controllable quantity for this sensitivity factor. + + + + + Yes + +NC + + + SensitivityFactor + The sensitivity factor associated with a controllable quantity. + + + + + No + +NC + + + RemedialAction + Remedial action which is associated with the controllable quantity. + + + + + Yes + +NC + + + ControllableQuantity + The controllable quantity for a remedial action. + + + + + No + +NC + + + GridStateAlteration + Grid state alteration is a change of values describing state (operating point) of one element in the grid model compared to the base case. +NC + + + + + IdentifiedObject + This is a root class to provide common identification for all classes needing identification and naming attributes. + + + + + + description + + + + The description is a free human readable text describing or naming the object. It may be non unique and may not correlate to a naming hierarchy. + + + + String + A string consisting of a sequence of characters. The character encoding is UTF-8. The string length is unspecified and unlimited. +Primitive + + + + + + mRID + + + + Master resource identifier issued by a model authority. The mRID is unique within an exchange context. Global uniqueness is easily achieved by using a UUID, as specified in RFC 4122, for the mRID. The use of UUID is strongly recommended. +For CIMXML data files in RDF syntax conforming to IEC 61970-552, the mRID is mapped to rdf:ID or rdf:about attributes that identify CIM object elements. + + + + + name + + + + The name is any free human readable and possibly non unique text naming the object. + + + + ObservableQuantity + Observable quantity is an electrical quantity on an assessed element or an assessed element with contingency. +NC + + + + + + + observableQuantityKind + + + + NC + Kind of observable quantity. + + + + ObservableQuantityKind + Kind of observable quantity. + + +NC + + + + activePower + The observable quantity is the active power. + enum + + + + reactivePower + The observable quantity is the reactive power. + enum + + + + voltageAngle + The observable quantity is the angle of terminal voltage. + enum + + + + voltageMagnitude + The observable quantity is the magnitude of terminal voltage. + enum + + + + ObservableQuantity + The observable quantity for this sensitivity factor. + + + + + Yes + +NC + + + SensitivityFactor + The sensitivity factor associated with an observable quantity. + + + + + No + +NC + + + RemedialAction + Remedial action describes one or more actions that can be performed on a given power system model situation to eliminate one or more identified breaches of constraints. The remedial action can be costly, and have a cost characteristic, or non costly. +NC + + + + + SensitivityFactor + The sensitivity factor which represents the sensitivity between observable and controllable elements. +NC + + + + + + + value + + + + NC + The value of the sensitivity factor. + + + + SensitivityMatrix + The sensitivity matrix which contains this sensitivity factor. + + + + + Yes + +NC + + + SensitivityFactor + The sensitivity factor which belongs to this sensitivity matrix. + + + + + No + +NC + + + SensitivityMatrix + + The sensitivity matrix which represents the sensitivity factors between observable and controllable elements. +NC + + + + + + + kind + + + + NC + The kind of sensitivity matrix. + + + + SensitivityMatrixKind + Kinds of sensitivity matrix. + + +NC + + + + other + Other kind of sensitivity matrix. + enum + + + + zoneToSlack + Zone to slack kind of sensitivity matrix. + enum + + + + uniformLoad + Uniform load matrix. + enum + + + + uniformNode + Uniform node matrix. + enum + + + + DocSensitivityMatrixProfile + + This package contains datatypes used only in the RDFS header. + + + DateTime + Date and time as "yyyy-mm-ddThh:mm:ss.sss", which conforms with ISO 8601. UTC time zone is specified as "yyyy-mm-ddThh:mm:ss.sssZ". A local timezone relative UTC is specified as "yyyy-mm-ddThh:mm:ss.sss-hh:mm". The second component (shown here as "ss.sss") could have any number of digits in its fractional part to allow any kind of precision beyond seconds. +Primitive + + + + + Date + Date as "yyyy-mm-dd", which conforms with ISO 8601. UTC time zone is specified as "yyyy-mm-ddZ". A local timezone relative UTC is specified as "yyyy-mm-dd(+/-)hh:mm". +Primitive + + + + + IRI + An IRI (Internationalized Resource Identifier) within an RDF graph is a Unicode string that conforms to the syntax defined in RFC 3987. +The primitive is serialized as rdf:resource in RDFXML. +IRIs in the RDF abstract syntax must be absolute, and may contain a fragment identifier. +IRI equality: Two IRIs are equal if and only if they are equivalent under Simple String Comparison according to section 5.1 of [RFC3987]. Further normalization must not be performed when comparing IRIs for equality. +IRIs are a generalization of URIs [RFC3986] that permits a wider range of Unicode characters. Every absolute URI and URL is an IRI, but not every IRI is an URI. When IRIs are used in operations that are only defined for URIs, they must first be converted according to the mapping defined in section 3.1 of [RFC3987]. A notable example is retrieval over the HTTP protocol. The mapping involves UTF-8 encoding of non-ASCII characters, %-encoding of octets not allowed in URIs, and Punycode-encoding of domain names. +Primitive +profcim + + + + + StringFixedLanguage + A string consisting of a sequence of characters. The character encoding is UTF-8. The string length is unspecified and unlimited. +The primitive is serialized as literal without language support. +Primitive +profcim + + + + + StringIRI + An IRI (Internationalized Resource Identifier) within an RDF graph is a Unicode string that conforms to the syntax defined in RFC 3987. +The primitive is serialized as literal without language support. +IRIs in the RDF abstract syntax must be absolute, and may contain a fragment identifier. +IRI equality: Two IRIs are equal if and only if they are equivalent under Simple String Comparison according to section 5.1 of [RFC3987]. Further normalization must not be performed when comparing IRIs for equality. +IRIs are a generalization of URIs [RFC3986] that permits a wider range of Unicode characters. Every absolute URI and URL is an IRI, but not every IRI is an URI. When IRIs are used in operations that are only defined for URIs, they must first be converted according to the mapping defined in section 3.1 of [RFC3987]. A notable example is retrieval over the HTTP protocol. The mapping involves UTF-8 encoding of non-ASCII characters, %-encoding of octets not allowed in URIs, and Punycode-encoding of domain names. +Primitive +profcim + + + + + URL + A Uniform Resource Locator (URL), colloquially termed a web address, is a reference to a web resource that specifies its location on a computer network and a mechanism for retrieving it. A URL is a specific type of Uniform Resource Identifier (URI), although many people use the two terms interchangeably.URLs occur most commonly to reference web pages (http), but are also used for file transfer (ftp), email (mailto), database access (JDBC), and many other applications. +Primitive +profcim + + + + diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/SteadyStateInstructionProfile_v2_2_RDFSv2020_24Mar2023.rdf b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/SteadyStateInstructionProfile_v2_2_RDFSv2020_24Mar2023.rdf new file mode 100644 index 0000000000..93288cf7f6 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/RDFS/SteadyStateInstructionProfile_v2_2_RDFSv2020_24Mar2023.rdf @@ -0,0 +1,2224 @@ + + + + + + SSI + + vocabulary + + urn:iso:std:iec:61970-600-2:ed-1 + urn:iso:std:iec:61970-301:ed-7:amd1 + file://iec61970cim17v40_iec61968cim13v13a_iec62325cim03v17a.eap + urn:iso:std:iec:61970-401:draft:ed-1 + urn:iso:std:iec:61970-501:draft:ed-2 + file://CGMES-30v25_501-20v01.eap + 2.2.0 + ENTSO-E CIM EG CSA project + This vocabulary is describing the steady state instruction profile. + urn:uuid:6d01969f-38fd-460d-b260-b839a8123319 + en-GB + https://www.apache.org/licenses/LICENSE-2.0 + 2023-03-24 + ENTSO-E + ENTSO-E + Steady state instruction Vocabulary + + + + + SteadyStateInstructionProfile + + This package contains steady state instruction profile. + + + FuelStorage + Fuel storage. e.g. pile of coal that can be shared between multiple thermal generating units. +NC +Description + + + + + + + energyStorage + + + + NC + Amount of energy available in the storage. + + + + RealEnergy + Real electrical energy. +CIMDatatype + + + + + + multiplier + + + + M + + + + UnitMultiplier + The unit multipliers defined for the CIM. When applied to unit symbols, the unit symbol is treated as a derived unit. Regardless of the contents of the unit symbol text, the unit symbol shall be treated as if it were a single-character unit symbol. Unit symbols should not contain multipliers, and it should be left to the multiplier to define the multiple for an entire data type. + +For example, if a unit symbol is "m2Pers" and the multiplier is "k", then the value is k(m**2/s), and the multiplier applies to the entire final value, not to any individual part of the value. This can be conceptualized by substituting a derived unit symbol for the unit type. If one imagines that the symbol "Þ" represents the derived unit "m2Pers", then applying the multiplier "k" can be conceptualized simply as "kÞ". + +For example, the SI unit for mass is "kg" and not "g". If the unit symbol is defined as "kg", then the multiplier is applied to "kg" as a whole and does not replace the "k" in front of the "g". In this case, the multiplier of "m" would be used with the unit symbol of "kg" to represent one gram. As a text string, this violates the instructions in IEC 80000-1. However, because the unit symbol in CIM is treated as a derived unit instead of as an SI unit, it makes more sense to conceptualize the "kg" as if it were replaced by one of the proposed replacements for the SI mass symbol. If one imagines that the "kg" were replaced by a symbol "Þ", then it is easier to conceptualize the multiplier "m" as creating the proper unit "mÞ", and not the forbidden unit "mkg". + + + + + + none + No multiplier or equivalently multiply by 1. + enum + + + + k + Kilo 10**3. + enum + + + + M + Mega 10**6. + enum + + + + + unit + + + + Wh + + + + UnitSymbol + The derived units defined for usage in the CIM. In some cases, the derived unit is equal to an SI unit. Whenever possible, the standard derived symbol is used instead of the formula for the derived unit. For example, the unit symbol Farad is defined as "F" instead of "CPerV". In cases where a standard symbol does not exist for a derived unit, the formula for the unit is used as the unit symbol. For example, density does not have a standard symbol and so it is represented as "kgPerm3". With the exception of the "kg", which is an SI unit, the unit symbols do not contain multipliers and therefore represent the base derived unit to which a multiplier can be applied as a whole. +Every unit symbol is treated as an unparseable text as if it were a single-letter symbol. The meaning of each unit symbol is defined by the accompanying descriptive text and not by the text contents of the unit symbol. +To allow the widest possible range of serializations without requiring special character handling, several substitutions are made which deviate from the format described in IEC 80000-1. The division symbol "/" is replaced by the letters "Per". Exponents are written in plain text after the unit as "m3" instead of being formatted as "m" with a superscript of 3 or introducing a symbol as in "m^3". The degree symbol "°" is replaced with the letters "deg". Any clarification of the meaning for a substitution is included in the description for the unit symbol. +Non-SI units are included in list of unit symbols to allow sources of data to be correctly labelled with their non-SI units (for example, a GPS sensor that is reporting numbers that represent feet instead of meters). This allows software to use the unit symbol information correctly convert and scale the raw data of those sources into SI-based units. +The integer values are used for harmonization with IEC 61850. + + + + + + none + Dimension less quantity, e.g. count, per unit, etc. + enum + + + + A + Current in amperes. + enum + + + + deg + Plane angle in degrees. + enum + + + + V + Electric potential in volts (W/A). + enum + + + + ohm + Electric resistance in ohms (V/A). + enum + + + + W + Real power in watts (J/s). Electrical power may have real and reactive components. The real portion of electrical power (I&#178;R or VIcos(phi)), is expressed in Watts. See also apparent power and reactive power. + enum + + + + VAr + Reactive power in volt amperes reactive. The “reactive” or “imaginary” component of electrical power (VIsin(phi)). (See also real power and apparent power). +Note: Different meter designs use different methods to arrive at their results. Some meters may compute reactive power as an arithmetic value, while others compute the value vectorially. The data consumer should determine the method in use and the suitability of the measurement for the intended purpose. + enum + + + + Wh + Real energy in watt hours. + enum + + + + + value + + + + + + + Float + A floating point number. The range is unspecified and not limited. +Primitive + + + + + ActivePowerControlFunction + Active power control function is a function block that calculates operating point of the controlled equipment to achieve the target active power. +NC +Description + + + + + + + targetValue + + + + NC + Target value for the active power that the control function is calculating to achieve by adjusting the operational setting to the controlled equipment. + + + + ActivePower + Product of RMS value of the voltage and the RMS value of the in-phase component of the current. +CIMDatatype + + + + + + multiplier + + + + M + + + + + unit + + + + W + + + + + value + + + + + + + AreaDispatchableUnit + Allocates a given producing or consuming unit, including direct current corridor and collection of units, to a given control area (through the scheduling area) for supporting the control of the given area through dispatch instruction. +NC +Description + + + + + + + enabled + + + + NC + Identifies if the unit is enabled to accept a dispatch instruction. If true, the unit is enabled to accept a dispatch instruction. If false, the unit has the capability, but it is not enabled to receive a dispatch instruction. + + + + Boolean + A type with the value space "true" and "false". +Primitive + + + + + AssessedElement + Assessed element is a network element for which the electrical state is evaluated in the regional or cross-regional process and which value is expected to fulfil regional rules function of the operational security limits. +The measurements and limits are as defined in the steady state hypothesis. +NC +Description + + + + + + + maxFlow + + + + NC + Maximum flow on a conducting equipment or a collection of conducting equipment forming a power transfer corridor. For assessed element that becomes critical due to contingency, this value represents the maximum flow with remedial action taken into consideration. + + + + + maxMarginAdjustment + + + + NC + Maximum adjustment, relative to maximum flow allowed for exceeding the maximum flow of this assessed element. +The allowed value range is [0,100]. + + + + PerCent + Percentage on a defined base. For example, specify as 100 to indicate at the defined base. +CIMDatatype + + + + + + value + + + + Normally 0 to 100 on a defined base. + + + + + unit + + + + none + + + + + multiplier + + + + none + + + + + enabled + + + + NC + If true, the assessed element is enabled, otherwise it is disabled. + + + + + positiveVirtualMargin + + + + NC + A positive margin that defines the overload allowed in a solution for the assessed element for the current situation. The margin represents influences that can be solved by the System Operators using available remedial action which is not cross-border relevant remedial action. +All relevant operational limits (e.g. PATL, TATL, etc) are modified by this margin value. The attribute represents the increase. +The allowed value range is [0,100]. + + + + + scannedThresholdMargin + + + + NC + Threshold percentage that a scanned element can be overloaded, on a given element, on top of any overload prior to optimisation (default= 5%). e.g. Initial loading of the element is 110%, with a 5% scanned threshold margin, the new maximum is 115% of the limit (e.g. PATL, TATL, etc). +The allowed value range is [0,100]. + + + + AssessedElementWithContingency + Combination of an assessed element and a contingency. +NC +Description + + + + + + + enabled + + + + NC + If true, the assessed element with contingency is enabled, otherwise it is disabled. + + + + AssessedElementWithRemedialAction + Combination of an assessed element and a remedial action +NC +Description + + + + + + + enabled + + + + NC + If true, the assessed element with remedial action is enabled, otherwise it is disabled. + + + + BiddingZone + A bidding zone is a market-based method for handling power transmission congestion. It consists of scheduling areas that include the relevant production (supply) and consumption (demand) to form an electrical area with the same market price without capacity allocation. +NC +Description + + + + + + + netACInterchange + + + + NC + The netted aggregation of all AC external schedules of an area. Positive sign means flow into the area (Import). + + + + + netACInterchangeTolerance + + + + NC + The area AC Net Position tolerance. + + + + + netDCInterchange + + + + NC + The netted aggregation of all DC external schedules of an area. Positive sign means flow into the area. + + + + + regulatingUpAllocation + + + + NC + The balancing capacity allocated for regulating up, by increasing the production, decreasing the direct current export, increasing direct current import or reducing the consumption of energy in the bidding zone. This must be a positive number. + + + + + maxInterchange + + + + NC + Maximum total active power (AC and DC) that the net position for the bidding zone can have to maintain operational security. Positive sign means flow into the bidding zone. + + + + + minImportP + + + + NC + Minimum imported active power requirement. + + + + + minInterchange + + + + NC + Minimum total active power (AC and DC) that the net position for the bidding zone can have to maintain operational security. Negative sign means flow out of the bidding zone. + + + + + netPosition + + + + NC + Net position is the netted sum of electricity exports and imports for each market time unit for a bidding zone. + + + + + regulatingDownAllocation + + + + NC + The balancing capacity allocated for regulating down, by decreasing the production, increasing the direct current export, decreasing direct current import or increasing the consumption of energy in the bidding zone. This must be a positive number. + + + + BiddingZoneBorder + Defines the aggregated connection capacity between two Bidding Zones. +NC +Description + + + + + + + totalTransferCapacity + + + + NC + Total Transfer Capacity (TTC) is the maximum exchange program between two areas compatible with operational security standards applicable at each system if future network conditions, generation and load patterns were perfectly known in advance. + + + + + transmissionReliabilityMargin + + + + NC + Transmission Reliability Margin (TRM) is the minimum reserve that system operators must have available at their connections so that they can help other countries to which their system is directly or indirectly connected, if necessary. + + + + + netTransferCapacity + + + + NC + Net Transfer Capacity (NTC) is defined as NTC = TTC – TRM and corresponds to the maximum exchange between two areas compatible with operational security limits applicable in both areas and taking into account the technical uncertainties on future network conditions. + + + + + alreadyAllocatedCapacity + + + + NC + Already Allocated Capacity (AAC) means the total amount of allocated transmission rights i.e. transmission capacity reserved by virtue of historical long-term contracts and the previously held transmission capacity reservation auctions. + + + + + availableTransferCapacity + + + + NC + Available Transfer Capacity (ATC) means the transmission capacity that remains available, after allocation procedure, to be used under the physical conditions of the transmission system. ATC value is defined as: ATC = NTC - AAC. + + + + + alreadyAllocatedFlow + + + + NC + The maximum allowed flow on the collection of interconnection between two bidding zones. + + + + CircuitShare + Defines the share of the circuit which is part of an associated power transfer corridor. +NC +Description + + + + + + + contributionFactor + + + + NC + Contribution factor for the circuit which is part of a power transfer corridor. +The allowed value range is [0,100]. + + + + CompensatorController + Compensator controller is controlling the equipment to optimize the use of the compensators. +NC +Description + + + + + + + mode + + + + NC + Mode of the compensator controller. + + + + CompensatorControlModeKind + Kind of compensator controller mode. + + +NC + + + + reactivePower + Reactive power control. + enum + + + + voltage + Voltage control. + enum + + + + Contingency + An event threatening system reliability, consisting of one or more contingency elements. +Description + + + + + + + mustStudy + + + + Set true if must study this contingency. + + + + + probability + + + + NC + The forecasted probability of the occurrence of the contingency based on the given operational condition, status of the equipment and the forecasted environment condition. +The allowed value range is [0,100]. + + + + CountertradeRemedialAction + + Countertrade is a remedial action to relieve physical congestions where the location of activated resources within the bidding zone is not known. +NC +Description + + + + + + ContingencyWithRemedialAction + Combination of a contingency and a remedial action. ContingencyWithRemedialAction shall not be instantiated for preventive RemedialAction (RemedialAction.kind equals RemedialActionKind.preventive). +NC +Description + + + + + + + enabled + + + + NC + If true, the contingency with remedial action is enabled, otherwise it is disabled. + + + + CurrentDroopControlFunction + Current droop control function is a function block that calculates the operating point of the controlled equipment to achieve the target current. +NC +Description + + + + + + + targetValueInductive + + + + NC + Setpoint when control is active in inductive region. + + + + CurrentFlow + Electrical current with sign convention: positive flow is out of the conducting equipment into the connectivity node. Can be both AC and DC. +CIMDatatype + + + + + + multiplier + + + + none + + + + + unit + + + + A + + + + + value + + + + + + + + targetValueCapacitive + + + + NC + Setpoint when control is active in capacitive region. + + + + CurrentControlFunction + Current control function is a function block that calculates the operating point of the controlled equipment to achieve the target current. +NC +Description + + + + + + + targetValue + + + + NC + Target value for the current that the control function is calculating to achieve by adjusting the operational setting to the controlled equipment. + + + + CurrentDroopOverride + Current droop override uses the following logic: +- When the current exceeds a threshold the device executes the following transitions: 1) When injecting an inductive voltage or in monitoring mode the device tends to inject a voltage proportional to the difference between the line current and the aforementioned threshold. 2) When injecting a capacitive voltage the device transitions to monitoring mode. +- If the aforementioned proportional voltage is lower than the initial one, the voltage injection remains unchanged. +Current droop override is not applied when the device operates in currentDroop mode. +NC +Description + + + + + + + targetValueInductive + + + + NC + Setpoint when control is active in inductive region. + + + + + enabled + + + + NC + True, if the current droop override is enabled (active). Otherwise false. + + + + + targetValueCapacitive + + + + NC + Setpoint when control is active in capacitive region. + + + + DCCurrentControlFunction + DC current control function is a function block that calculates the operating point of the controlled equipment to achieve the target current. +NC +Description + + + + + + + targetValue + + + + NC + Target value for the current that the control function is calculating to achieve by adjusting the operational setting to the controlled equipment. + + + + DCPole + The direct current (DC) pole is the circuit which includes converter units from both sides and the relevant direct current line. This forms the smallest unit of transmission control. +NC +Description + + + + + + + longPF + + + + NC + Energy consumer long term economic participation factor. + + + + + maxEconomicP + + + + NC + Maximum high economic active power limit, that should not exceed the maximum operating active power limit. + + + + + minEconomicP + + + + NC + Low economic active power limit that shall be greater than or equal to the minimum operating active power limit. + + + + + shortPF + + + + NC + Energy consumer short term economic participation factor. + + + + DCSwitch + A switch within the DC system. +NC +Description + + + + + + + open + + + + The attribute tells if the switch is considered open when used as input to topology processing. + + + + + locked + + + + If true, the switch is locked. The resulting switch state is a combination of locked and DCSwitch.open attributes as follows: +<ul> + <li>locked=true and DCSwitch.open=true. The resulting state is open and locked;</li> + <li>locked=false and DCSwitch.open=true. The resulting state is open;</li> + <li>locked=false and DCSwitch.open=false. The resulting state is closed.</li> +</ul> + + + + DCTieCorridor + A collection of one or more direct current poles that connect two different control areas. +NC +Description + + + + + + + p + + + + NC + Active power at the point of common coupling. Load sign convention is used, i.e. positive sign means flow out from a node. +Starting value for a steady state solution in the case a simplified power flow model is used. + + + + + q + + + + NC + Reactive power at the point of common coupling. Load sign convention is used, i.e. positive sign means flow out from a node. +Starting value for a steady state solution in the case a simplified power flow model is used. + + + + ReactivePower + Product of RMS value of the voltage and the RMS value of the quadrature component of the current. +CIMDatatype + + + + + + value + + + + + + + + unit + + + + VAr + + + + + multiplier + + + + M + + + + DCVoltageControlFunction + DC voltage control function is a function block that calculate the operating point of the controlled equipment to achieve the target voltage. +NC +Description + + + + + + + targetValue + + + + NC + Target value for the voltage that the control function is calculating to achieve by adjusting the operational setting to the controlled equipment. + + + + Voltage + Electrical voltage, can be both AC and DC. +CIMDatatype + + + + + + multiplier + + + + k + + + + + unit + + + + V + + + + + value + + + + + + + DirectCurrentController + Power flow controller for direct current that can be used in high-voltage direct current grids and for low-voltage direct current microgrids. It uses a high-frequency isolated dc-dc converter cascaded with a controllable full-bridge inverter that creates a small bipolar voltage in series with the line. The controller can control the power and compensate for accumulated voltage drop in a distribution line. +NC +Description + + + + + + + mode + + + + NC + Mode of the dc controller. + + + + DCControlModeKind + Kind of DC control mode. + + +NC + + + + acEmulation + An AC emulation control aims to reproduce the behaviour of an AC line by means of a function of the difference between angles in both converter stations in HVDC links embedded within a single synchronous AC grid. For changes in the phase angle on either station, the response of this control is to ‘emulate the behaviour of an AC line’ in both steady and transient states. +The AC emulation control needs measurement signals for the angles at both ends of the HVDC. In practice, the angle difference is measured by built-in devices in the converters and the synchronization of angle measurements on both stations is done by means of GPS. + enum + + + + activePower + Control is active power control at AC side, at point of common coupling. + enum + + + + reactivePower + Control is reactive power control at AC side, at point of common coupling. + enum + + + + dcVoltage + Control is DC voltage. + enum + + + + dcCurrent + Control is DC current. + enum + + + + powerFactorPcc + Control is power factor at point of common coupling. + enum + + + + pPccAndUdcDroop + Control is active power at point of common coupling and local DC voltage, with the droop. + enum + + + + pPccAndUdcDroopWithCompensation + Control is active power at point of common coupling and compensated DC voltage, with the droop. Compensation factor is the resistance, as an approximation of the DC voltage of a common (real or virtual) node in the DC network. + enum + + + + pulseWidthModulation + No explicit control. Pulse-modulation factor is directly set in magnitude and phase. + enum + + + + pPccAndUdcDroopPilot + Control is active power at point of common coupling and the pilot DC voltage, with the droop. The mode is used for Multi Terminal High Voltage DC (MTDC) systems where multiple HVDC Substations are connected to the HVDC transmission lines. The pilot voltage is then used to coordinate the control the DC voltage across the HVDC substations. + enum + + + + phasePcc + Control is phase at point of common coupling. + enum + + + + EnergyBlockOrder + The energy block order is a block (an amount) of active power that forms the sequence of active power orders that are going to be distributed to an energy block component. +NC +Description + + + + + + + participationFactor + + + + NC + Participation factor. + + + + EnergyConsumer + Generic user of energy - a point of consumption on the power system model. +EnergyConsumer.pfixed, .qfixed, .pfixedPct and .qfixedPct have meaning only if there is no LoadResponseCharacteristic associated with EnergyConsumer or if LoadResponseCharacteristic.exponentModel is set to False. +Description + + + + + + + participationFactor + + + + NC + Participation factor describing the entity part of the active power provided by a collection of entities (e.g. an active power forecast to a collection of entities is divided to each of the member entity according to the participation factor). Must be a positive value. +In the case of a sharing strategy, the distribution is following entities value (V) equals aggregated value (T) divided by sum of participation factors (PF), i.e. V=T/sum(PF). +In the case of priority strategy, the item with the lowest number gets allocated energy first. + + + + EnergyGroup + An energy group is an aggregation of energy components which have the same energy characteristic, e.g. fuel type and technology. It can be used to allocate energy. +NC +Description + + + + + + + participationFactor + + + + NC + Participation factor. + + + + Equipment + The parts of a power system that are physical devices, electronic or mechanical. +Description + + + + + + + inService + + + + Specifies the availability of the equipment. True means the equipment is available for topology processing, which determines if the equipment is energized or not. False means that the equipment is treated by network applications as if it is not in the model. + + + + + networkAnalysisEnabled + + + + The equipment is enabled to participate in network analysis. If unspecified, the value is assumed to be true. + + + + FACTSEquipment + + Flexible Alternating Current Transmission System regulating equipment. +NC + + + + + + q + + + + NC + Reactive power injection. Load sign convention is used, i.e. positive sign means flow out from a node. +Starting value for a steady state solution. + + + + FunctionBlock + Function block is a function described as a set of elementary blocks. The blocks describe the function between input variables and output variables. +NC +Description + + + + + + + enabled + + + + NC + True, if the function block is enabled (active). Otherwise false. + + + + GeneratingUnit + A single or set of synchronous machines for converting mechanical power into alternating-current power. For example, individual machines within a set may be defined for scheduling purposes while a single control signal is derived for the set. In this case there would be a GeneratingUnit for each member of the set and an additional GeneratingUnit corresponding to the set. +Description + + + + + + + participationFactor + + + + NC + Participation factor describing the entity part of the active power provided by a collection of entities (e.g. an active power forecast to a collection of entities is divided to each of the member entity according to the participation factor). Must be a positive value. +In the case of a sharing strategy, the distribution is following entities value (V) equals aggregated value (T) divided by sum of participation factors (PF), i.e. V=T/sum(PF). +In the case of priority strategy, the item with the lowest number gets allocated energy first. + + + + GridStateAlteration + Grid state alteration is a change of values describing state (operating point) of one element in the grid model compared to the base case. +NC +Description + + + + + + + enabled + + + + NC + The status of the GridStateAlteration set by an operation or by a signal resulting from a control action. + + + + + participationFactor + + + + NC + Participation factor describing the entity part of the active power provided by a collection of entities (e.g. an active power forecast to a collection of entities is divided to each of the member entity according to the participation factor). Must be a positive value. +In the case of a sharing strategy, the distribution is following entities value (V) equals aggregated value (T) divided by sum of participation factors (PF), i.e. V=T/sum(PF). +In the case of priority strategy, the item with the lowest number gets allocated energy first. +e.g. If 0 this grid alteration does not participate. The sum of all participation factors for all grid state alterations associated with same remedial action shall be equal to 100%. + + + + HydroPump + A synchronous motor-driven pump, typically associated with a pumped storage plant. +Description + + + + + + + participationFactor + + + + NC + Participation factor describing the entity part of the active power provided by a collection of entities (e.g. an active power forecast to a collection of entities is divided to each of the member entity according to the participation factor). Must be a positive value. +In the case of a sharing strategy, the distribution is following entities value (V) equals aggregated value (T) divided by sum of participation factors (PF), i.e. V=T/sum(PF). +In the case of priority strategy, the item with the lowest number gets allocated energy first. + + + + ImpedanceControlFunction + Impedance control function is a function block that calculates the operating point of the controlled equipment to achieve the target impedance. +NC +Description + + + + + + + targetValue + + + + NC + Target value for the impedance that the control function is calculating to achieve by adjusting the operational setting to the controlled equipment. + + + + Impedance + Ratio of voltage to current. +CIMDatatype + + + + + + value + + + + + + + + unit + + + + ohm + + + + + multiplier + + + + none + + + + InjectionController + Injection controller is controlling the equipment which represents an injection or an external network. +NC +Description + + + + + + + mode + + + + NC + Mode of the injection controller. + + + + InjectionControlModeKind + Kind of injection controller mode. + + +NC + + + + reactivePower + Reactive power control. + enum + + + + activePower + Active power is specified. + enum + + + + voltage + Voltage control. + enum + + + + powerFactor + Power factor is specified. + enum + + + + ModularStaticSynchronousSeriesCompensator + + Modular static synchronous series compensator (MSSSC) is a type of flexible AC transmission system regulating equipment which consists of solid-state voltage source inverter connected in series with a transmission line. This is similar to static synchronous series compensator (SSSC), but without injection transformer. This enables the MSSSC to be truly modular with the ability to simply install a number of equipment in series to provide a desired maximum level of impedance. MSSSC can be dispersed into multiple location in a circuit working collectively under the same controller scheme. +NC +Description + + + + + + PhaseControlFunction + Phase control function is a function block that calculate the operating point of the controlled equipment to achieve the target voltage. +NC +Description + + + + + + + targetValue + + + + NC + Target value for the phase that the control function is calculating to achieve by adjusting the operational setting to the controlled equipment. + + + + AngleDegrees + Measurement of angle in degrees. +CIMDatatype + + + + + + value + + + + + + + + unit + + + + deg + + + + + multiplier + + + + none + + + + PowerElectronicsUnit + A generating unit or battery or aggregation that connects to the AC network using power electronics rather than rotating machines. +Description + + + + + + + participationFactor + + + + NC + Participation factor describing the entity part of the active power provided by a collection of entities (e.g. an active power forecast to a collection of entities is divided to each of the member entity according to the participation factor). Must be a positive value. +In the case of a sharing strategy, the distribution is following entities value (V) equals aggregated value (T) divided by sum of participation factors (PF), i.e. V=T/sum(PF). +In the case of priority strategy, the item with the lowest number gets allocated energy first. + + + + PowerFactorControlFunction + Power factor control function is a function block that calculates the operating point of the controlled equipment to achieve the target power factor. +NC +Description + + + + + + + targetValue + + + + NC + Target value for the power factor that the control function is calculating to achieve by adjusting the operational setting to the controlled equipment. + + + + PowerInfeedLimit + Power infeed limit set constraints on the active power fed in to the network by two or more terminals. +NC +Description + + + + + + + value + + + + Value of active power limit. The attribute shall be a positive value or zero. + + + + PowerRemedialAction + Energy remedial action describes actions to rearrange power schedules. +NC + + + + + + maxRegulatingDown + + + + NC + Maximum net amount of active power that the remedial action can regulate down. + + + + + maxRegulatingUp + + + + NC + Maximum net amount of active power that the remedial action can regulate up. + + + + PowerTransferCorridor + A power transfer corridor is defined as a set of circuits (transmission lines or transformers) separating two portions of the power system, or a subset of circuits exposed to a substantial portion of the transmission exchange between two parts of the system. +NC +Description + + + + + + + enabled + + + + NC + It enables/disables the monitoring/assessment of a power transfer corridor. True means that the monitoring of the power transfer corridor is assessed. False means the power transfer corridor is not assessed. + + + + PTCActivePowerSupport + Defines the active power capability (support) of the scheme in relation to a PowerTransferCorridor. +NC +Description + + + + + + + value + + + + NC + The support that a System Integrity Protection Scheme (SIPS) gives to a Power Transfer Corridor (PTC). + + + + RangeConstraint + Defines the rage constraint. +NC +Description + + + + + + + value + + + + NC + The value at the time. The meaning of the value is defined by the attribute referenced by the PropertyReference. The value can be integer, float or boolean. In case of boolean 1 equals true and 0 equals false. +If the valueKind is incremental or incrementalPercentage, then the value shall be positive (greater than zero). +If the valueKind is incrementalPercentage, then the value shall be in the range [0, 100]. + + + + ReactivePowerControlFunction + Reactive power control function is a function block that calculate the operating point of the controlled equipment to achieve the target reactive power. +NC +Description + + + + + + + targetValue + + + + NC + Target value for the reactive power that the control function is calculating to achieve by adjusting the operational setting to the controlled equipment. + + + + RedispatchRemedialAction + + Redispatch remedial action is a remedial action that through rearranging power schedules is eliminating breaches of constraints. +NC +Description + + + + + + RegulatingCondEq + A type of conducting equipment that can regulate a quantity (i.e. voltage or flow) at a specific point in the network. + + + + + + controlEnabled + + + + Specifies the regulation status of the equipment. True is regulating, false is not regulating. + + + + RemedialAction + Remedial action describes one or more actions that can be performed on a given power system model situation to eliminate one or more identified breaches of constraints. The remedial action can be costly, and have a cost characteristic, or non costly. +NC +Description + + + + + + + available + + + + NC + Identifies if the remedial action is available to be proposed. True means available, False means unavailable. + + + + RemedialActionDependency + Remedial action dependency is making two remedial actions depending on each other. Multiple dependency is done by multiple instances of this class. The dependency can arrive by having one of the following examples. +<ul> + <li>The dependent remedial action is controlled by different system operator (Modeling Authority) (e.g. SIPS that goes across control area).</li> + <li>The dependent remedial action is representing two or more remedial action that represent the same grid state alteration but with different modeling resolution (e.g. detail direct current model versus a simplified model).</li> + <li>The remedial action can be combined with other remedial action without the need to create multiple remedial action with the same grid alteration for enabling dependency.</li> +</ul> +NC +Description + + + + + + + enabled + + + + NC + If true, the remedial action dependency is enabled, otherwise it is disabled. + + + + RemedialActionGroup + Grouping of remedial actions that can be operated together. +NC +Description + + + + + + + maxRegulatingDown + + + + NC + Maximum net amount of active power that the group of remedial actions can regulate down. + + + + + maxRegulatingUp + + + + NC + Maximum net amount of active power that the group of remedial actions can regulate up. + + + + RemedialActionScheme + Remedial Action Scheme (RAS), Special Protection Schemes (SPS), System Protection Schemes (SPS) or System Integrity Protection Schemes (SIPS). +A Remedial Action Scheme consists of one or more stages that can trigger and execute a protection action. +NC +Description + + + + + + + armed + + + + NC + Defines the arming status of the remedial action scheme. It is set by operation or by signal. + + + + + inService + + + + NC + Specifies the availability of the Remedial Action Scheme (RAS). If true, the RAS is available for contingency processing. If false, the RAS is treated by contingency processing as if it is not in the model. + + + + Reservoir + A water storage facility within a hydro system, including: ponds, lakes, lagoons, and rivers. The storage is usually behind some type of dam. +Description + + + + + + + energyStorage + + + + NC + Amount of energy available in the storage. + + + + RotatingMachineController + Rotating machine controller is controlling the equipment which may be used as a generator or motor. +NC +Description + + + + + + + mode + + + + NC + Mode of the rotating machine controller. + + + + RotatingMachineControlModeKind + Kind of rotating machine controller mode. + + +NC + + + + reactivePower + Reactive power control. + enum + + + + activePower + Active power is specified. + enum + + + + voltage + Voltage control. + enum + + + + powerFactor + Power factor is specified. + enum + + + + ScheduleResource + A schedule resource is a market-based method for handling participation of small units, particularly located on the lower voltage level that is controlled by a Distributed System Operator (DSO). It is a collection of units that can operate in the market by providing bids, offers and a resulting committed operational schedule for the collection. +NC +Description + + + + + + + participationFactor + + + + NC + Participation factor describing the entity part of the active power provided by a collection of entities (e.g. an active power forecast to a collection of entities is divided to each of the member entity according to the participation factor). Must be a positive value. +In the case of a sharing strategy, the distribution is following entities value (V) equals aggregated value (T) divided by sum of participation factors (PF), i.e. V=T/sum(PF). +In the case of priority strategy, the item with the lowest number gets allocated energy first. + + + + SSSCController + The controller of a Static synchronous series compensator (SSSC). +NC +Description + + + + + + + mode + + + + NC + Mode of the Static Synchronous Series compensator controller. + + + + SSSCControlModeKind + Control modes of the Static Synchronous Series Compensator (SSSC). + + +NC + + + + effectiveReactance + <font color="#636671">The device injects a voltage proportional to the line current to achieve the specified target value defined by the ImpedanceControlFunction. The voltage will vary according to the line current level.</font> + enum + + + + voltageInjection + <font color="#636671">The device injects a fixed voltage that is either inductive or capacitive according to the specified target value of the VoltageInjectionControlFunction. The effective reactance varies according to the flow of the line current.</font> + enum + + + + monitoring + <font color="#636671">The device bypasses and a voltage injection is close to zero. In monitoring mode current is monitored.</font> + enum + + + + currentDroop + <font color="#636671">The device injects a voltage proportional to the difference between the line current and the target value of the CurrentDroopControlFunction. There are capacitive and inductive operational regions.</font> + enum + + + + StageTrigger + Stage that is triggered either by TriggerCondition or by gate condition within a stage. +NC +Description + + + + + + + armed + + + + NC + The status of the class set by operation or by signal. Optional field that will override other status fields. + + + + StaticSynchronousCompensator + + Static synchronous compensator (STATCOM), also known as a static synchronous condenser (STATCON), is a type of flexible AC transmission system regulating equipment used on alternating current electricity transmission networks. It is based on a power electronics voltage-source converter and can act as either a source or sink of reactive AC power to an electricity network. If connected to a source of power it can also provide active AC power. +NC +Description + + + + + + StaticSynchronousSeriesCompensator + + Static synchronous series compensator (SSSC) is a type of flexible AC transmission system which consists of a solid-state voltage source inverter coupled with a transformer that is connected in series with a transmission line. This device can inject an almost sinusoidal voltage in series with the line. This injected voltage could be considered as an inductive or capacitive reactance, which is connected in series with the transmission line. This feature can provide controllable voltage compensation. In addition, SSSC is able to reverse the power flow by injecting a sufficiently large series reactive compensating voltage. Moreover it can inject a voltage proportional to the difference between the line current and the pre-configured current threshold.<font color="#636671"> </font>It shall have two Terminal-s associated with it. +NC +Description + + + + + + SubstationController + Substation controller is controlling the equipment to optimize the use of the controlling equipment within a substation. +NC +Description + + + + + + + mode + + + + NC + Mode of the substation controller. + + + + SubstationControllerModeKind + Kind of substation controller mode. + + +NC + + + + reactivePower + Reactive power control is the primary control of the substation. + enum + + + + voltage + Voltage control is the primary control of the substation. + enum + + + + activePower + Active power control is the primary control of the substation.. + enum + + + + TCSCController + TCSC controller is controlling the equipment to optimize the performance of the TCSC. +NC +Description + + + + + + + mode + + + + NC + Mode of the TCSC controller. + + + + TCSCControlModeKind + Kind of TCSC control mode. + + +NC + + + + activePower + Control is active power. + enum + + + + current + Control is current. + enum + + + + impedance + Control is impedance. + enum + + + + ThyristorControlledSeriesCompensator + + Thyristor-controlled series capacitors (TCSC) is a type of flexible AC transmission system regulating equipment that is configured with controlled reactors in parallel with sections of a capacitor bank. This combination allows smooth control of the fundamental frequency capacitive reactance over a wide range. The thyristor valve contains a string of series connected high power thyristors. TCSC can control power flows in order to achieve eliminating of line overloads, reducing loop flows and minimising system losses. +NC +Description + + + + + + + compensationImpedance + + + + NC + The actual compensation impedance provided by the compensator. The attribute value shall be positive if compensation is in the capacitive range. The attribute value shall be negative if compensation is in the inductive rating. + + + + + currentSectionNumber + + + + NC + The current section on which the TCSC is operating. + + + + Integer + An integer number. The range is unspecified and not limited. +Primitive + + + + + VoltageAngleLimit + Voltage angle limit between two terminals. The association end OperationalLimitSet.Terminal defines one end and the host of the limit. The association end VoltageAngleLimit.AngleReferenceTerminal defines the reference terminal. +NC +Description + + + + + + + value + + + + NC + The difference in angle degrees between referenced by the association end OperationalLimitSet.Terminal and the Terminal referenced by the association end VoltageAngleLimit.AngleReferenceTerminal. The value shall be positive (greater than zero). + + + + VoltageControlFunction + Voltage control function is a function block that calculate the operating point of the controlled equipment to achieve the target voltage. +NC +Description + + + + + + + targetValue + + + + NC + Target value for the voltage that the control function is calculating to achieve by adjusting the operational setting to the controlled equipment. + + + + VoltageInjectionControlFunction + Voltage injection control function is a function block that calculates the operating point of the controlled equipment to achieve the target voltage injection. The controlled point is the Terminal with sequenceNumber =1. +NC +Description + + + + + + + targetValue + + + + NC + Target value for the voltage that the control function is calculating to achieve by adjusting the operational setting to the controlled equipment. + + + + Duration + Duration as "PnYnMnDTnHnMnS" which conforms to ISO 8601, where nY expresses a number of years, nM a number of months, nD a number of days. The letter T separates the date expression from the time expression and, after it, nH identifies a number of hours, nM a number of minutes and nS a number of seconds. The number of seconds could be expressed as a decimal number, but all other numbers are integers. +Primitive + + + + + String + A string consisting of a sequence of characters. The character encoding is UTF-8. The string length is unspecified and unlimited. +Primitive + + + + + DocSteadyStateInstructionProfile + + This package contains datatypes used only in the RDFS header. + + + Date + Date as "yyyy-mm-dd", which conforms with ISO 8601. UTC time zone is specified as "yyyy-mm-ddZ". A local timezone relative UTC is specified as "yyyy-mm-dd(+/-)hh:mm". +Primitive + + + + + DateTime + Date and time as "yyyy-mm-ddThh:mm:ss.sss", which conforms with ISO 8601. UTC time zone is specified as "yyyy-mm-ddThh:mm:ss.sssZ". A local timezone relative UTC is specified as "yyyy-mm-ddThh:mm:ss.sss-hh:mm". The second component (shown here as "ss.sss") could have any number of digits in its fractional part to allow any kind of precision beyond seconds. +Primitive + + + + + IRI + An IRI (Internationalized Resource Identifier) within an RDF graph is a Unicode string that conforms to the syntax defined in RFC 3987. +The primitive is serialized as rdf:resource in RDFXML. +IRIs in the RDF abstract syntax must be absolute, and may contain a fragment identifier. +IRI equality: Two IRIs are equal if and only if they are equivalent under Simple String Comparison according to section 5.1 of [RFC3987]. Further normalization must not be performed when comparing IRIs for equality. +IRIs are a generalization of URIs [RFC3986] that permits a wider range of Unicode characters. Every absolute URI and URL is an IRI, but not every IRI is an URI. When IRIs are used in operations that are only defined for URIs, they must first be converted according to the mapping defined in section 3.1 of [RFC3987]. A notable example is retrieval over the HTTP protocol. The mapping involves UTF-8 encoding of non-ASCII characters, %-encoding of octets not allowed in URIs, and Punycode-encoding of domain names. +Primitive +profcim + + + + + StringFixedLanguage + A string consisting of a sequence of characters. The character encoding is UTF-8. The string length is unspecified and unlimited. +The primitive is serialized as literal without language support. +Primitive +profcim + + + + + StringIRI + An IRI (Internationalized Resource Identifier) within an RDF graph is a Unicode string that conforms to the syntax defined in RFC 3987. +The primitive is serialized as literal without language support. +IRIs in the RDF abstract syntax must be absolute, and may contain a fragment identifier. +IRI equality: Two IRIs are equal if and only if they are equivalent under Simple String Comparison according to section 5.1 of [RFC3987]. Further normalization must not be performed when comparing IRIs for equality. +IRIs are a generalization of URIs [RFC3986] that permits a wider range of Unicode characters. Every absolute URI and URL is an IRI, but not every IRI is an URI. When IRIs are used in operations that are only defined for URIs, they must first be converted according to the mapping defined in section 3.1 of [RFC3987]. A notable example is retrieval over the HTTP protocol. The mapping involves UTF-8 encoding of non-ASCII characters, %-encoding of octets not allowed in URIs, and Punycode-encoding of domain names. +Primitive +profcim + + + + + URL + A Uniform Resource Locator (URL), colloquially termed a web address, is a reference to a web resource that specifies its location on a computer network and a mechanism for retrieving it. A URL is a specific type of Uniform Resource Identifier (URI), although many people use the two terms interchangeably.URLs occur most commonly to reference web pages (http), but are also used for file transfer (ftp), email (mailto), database access (JDBC), and many other applications. +Primitive +profcim + + + + diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/CustomConstraints/AssessedElementProfileCustomConstraints.ttl b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/CustomConstraints/AssessedElementProfileCustomConstraints.ttl new file mode 100644 index 0000000000..9a7f038cbf --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/CustomConstraints/AssessedElementProfileCustomConstraints.ttl @@ -0,0 +1,94 @@ +@base . +@prefix eu: . +@prefix cims: . +@prefix rdf: . +@prefix owl: . +@prefix sh: . +@prefix cim: . +@prefix aec: . +@prefix xsd: . +@prefix rdfs: . +@prefix dash: . +@prefix dcterms: . +@prefix dcat: . +@prefix nc: . + + +aec:Ontology rdf:type owl:Ontology ; + dcterms:conformsTo "urn:iso:std:iec:61970-501:draft:ed-2" , "urn:iso:std:iec:61970-600-2:ed-1" , "urn:iso:std:iec:61970-301:ed-7:amd1" , "file://iec61970cim17v40_iec61968cim13v13a_iec62325cim03v17a.eap" ; + dcterms:creator "ENTSO-E CIM EG"@en ; + dcterms:description "The custom constraints for assessed element profile."@en ; + dcterms:identifier "urn:uuid:c70cc892-68ed-4ff2-8eb1-6da1fa24a310" ; + dcterms:issued "2022-09-28T12:09:21Z"^^xsd:dateTime ; + dcterms:language "en-GB" ; + dcterms:modified "2022-09-28"^^xsd:date ; + dcterms:publisher "ENTSO-E"@en ; + dcterms:rights "Copyright"@en ; + dcterms:rightsHolder "ENTSO-E"@en ; + dcterms:title "Assessed element profile custom Constraints"@en ; + owl:versionIRI ; + dcterms:license "https://www.apache.org/licenses/LICENSE-2.0" ; + owl:versionInfo "2.1.0"@en ; + dcat:landingPage "https://www.entsoe.eu/digital/cim/cim-for-grid-models-exchange/" ; + dcat:theme "constraints"@en . + +cim: + a owl:Ontology ; + owl:imports sh: ; + sh:declare [ + a sh:PrefixDeclaration ; + sh:namespace "http://iec.ch/TC57/CIM100#"^^xsd:anyURI ; + sh:prefix "cim" ; + ] ; + sh:declare [ + a sh:PrefixDeclaration ; + sh:namespace "http://entsoe.eu/ns/nc#"^^xsd:anyURI ; + sh:prefix "nc" ; + ] ; + sh:declare [ + a sh:PrefixDeclaration ; + sh:namespace "http://www.w3.org/1999/02/22-rdf-syntax-ns#"^^xsd:anyURI ; + sh:prefix "rdf" ; + ] ; + sh:declare [ + a sh:PrefixDeclaration ; + sh:namespace "http://iec.ch/TC57/CIM100-European#"^^xsd:anyURI ; + sh:prefix "eu" ; + ] . + + +aec:AEgroup + a sh:PropertyGroup ; + rdfs:label "AssessedElementGroup" ; + sh:order 0 . + +aec:AssessedElement a sh:NodeShape ; + sh:property aec:AssessedElement-associations; + sh:targetClass nc:AssessedElement . + + + +aec:AssessedElement-associations + a sh:PropertyShape ; + sh:description "An AssessedElement shall have at least one of the following association ends instantiated: AssessedElement.ConductingEquipment, AssessedElement.OperationalLimit, AssessedElement.DCTieCorridor, AssessedElement.AssessedPowerTransferCorridor." ; + sh:sparql aec:AssessedElement-associationsSparql ; + sh:path rdf:type ; + sh:group aec:AEgroup ; + sh:name "C:NC:AE:AssessedElement:associations" ; + sh:order 1 ; + sh:severity sh:Violation . + +aec:AssessedElement-associationsSparql + a sh:SPARQLConstraint ; + sh:message "AssessedElement does not have at least one of the following association ends instantiated: AssessedElement.ConductingEquipment, AssessedElement.OperationalLimit, AssessedElement.DCTieCorridor, AssessedElement.AssessedPowerTransferCorridor." ; + sh:prefixes cim: ; + sh:select """ + SELECT $this + WHERE { + BIND(EXISTS{$this nc:AssessedElement.ConductingEquipment ?o1} AS ?aeo1). + BIND(EXISTS{$this nc:AssessedElement.OperationalLimit ?o2} AS ?aeo2). + BIND(EXISTS{$this nc:AssessedElement.DCTieCorridor ?o3} AS ?aeo3). + BIND(EXISTS{$this nc:AssessedElement.AssessedPowerTransferCorridor ?o4} AS ?aeo4). + FILTER (?aeo1=false && ?aeo2=false && ?aeo3=false && ?aeo4=false). + }""" . + \ No newline at end of file diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/CustomConstraints/ContingencyProfileCustomConstraints.ttl b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/CustomConstraints/ContingencyProfileCustomConstraints.ttl new file mode 100644 index 0000000000..ae7643b84e --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/CustomConstraints/ContingencyProfileCustomConstraints.ttl @@ -0,0 +1,93 @@ +@base . +@prefix eu: . +@prefix cims: . +@prefix rdf: . +@prefix owl: . +@prefix sh: . +@prefix cim: . +@prefix coc: . +@prefix xsd: . +@prefix rdfs: . +@prefix dash: . +@prefix dcterms: . +@prefix dcat: . +@prefix nc: . + + +coc:Ontology rdf:type owl:Ontology ; + dcterms:conformsTo "urn:iso:std:iec:61970-501:draft:ed-2" , "urn:iso:std:iec:61970-600-2:ed-1" , "urn:iso:std:iec:61970-301:ed-7:amd1" , "file://iec61970cim17v40_iec61968cim13v13a_iec62325cim03v17a.eap" ; + dcterms:creator "ENTSO-E CIM EG"@en ; + dcterms:description "The custom constraints for the Contingency profile."@en ; + dcterms:identifier "urn:uuid:1b226f44-a07c-44e7-9976-9c781ed21748" ; + dcterms:issued "2022-09-28T12:09:21Z"^^xsd:dateTime ; + dcterms:language "en-GB" ; + dcterms:modified "2022-09-28"^^xsd:date ; + dcterms:publisher "ENTSO-E"@en ; + dcterms:rights "Copyright"@en ; + dcterms:rightsHolder "ENTSO-E"@en ; + dcterms:title "Contingency profile custom constraints"@en ; + owl:versionIRI ; + dcterms:license "https://www.apache.org/licenses/LICENSE-2.0" ; + owl:versionInfo "2.1.0"@en ; + dcat:landingPage "https://www.entsoe.eu/digital/cim/cim-for-grid-models-exchange/" ; + dcat:theme "constraints"@en . + +cim: + a owl:Ontology ; + owl:imports sh: ; + sh:declare [ + a sh:PrefixDeclaration ; + sh:namespace "http://iec.ch/TC57/CIM100#"^^xsd:anyURI ; + sh:prefix "cim" ; + ] ; + sh:declare [ + a sh:PrefixDeclaration ; + sh:namespace "http://entsoe.eu/ns/nc#"^^xsd:anyURI ; + sh:prefix "nc" ; + ] ; + sh:declare [ + a sh:PrefixDeclaration ; + sh:namespace "http://www.w3.org/1999/02/22-rdf-syntax-ns#"^^xsd:anyURI ; + sh:prefix "rdf" ; + ] ; + sh:declare [ + a sh:PrefixDeclaration ; + sh:namespace "http://iec.ch/TC57/CIM100-European#"^^xsd:anyURI ; + sh:prefix "eu" ; + ] . + + +coc:COgroup + a sh:PropertyGroup ; + rdfs:label "ContingencyGroup" ; + sh:order 0 . + + +coc:Contingency.ContingencyElement-otherContingencies + a sh:PropertyShape ; + sh:description "The multiplicity of the association end Contingency.ContingencyElement is restricted to 2..* for both OutOfRangeContingency and ExceptionalContingency" ; + sh:message "Less than 2 contingency elements provided for either OutOfRangeContingency or ExceptionalContingency." ; + sh:path [sh:inversePath cim:ContingencyElement.Contingency] ; + sh:group coc:COgroup ; + sh:minCount 2 ; + sh:name "C:NC:CO:Contingency.ContingencyElement:outOfRangeAndExceptional" ; + sh:order 1 ; + sh:severity sh:Violation . + + +coc:ContingencyEquipment a sh:NodeShape ; + sh:property coc:ContingencyEquipment.contingentStatus-allowedValues; + sh:targetClass cim:ContingencyEquipment . + + + +coc:ContingencyEquipment.contingentStatus-allowedValues + a sh:PropertyShape ; + sh:description "The allowed value for the ContingencyEquipment.contingentStatus is ContingencyEquipmentStatusKind.outOfService." ; + sh:message "ContingencyEquipment.contingentStatus is not ContingencyEquipmentStatusKind.outOfService." ; + sh:path cim:ContingencyEquipment.contingentStatus ; + sh:group coc:COgroup ; + sh:in (cim:ContingencyEquipmentStatusKind.outOfService) ; + sh:name "C:NC:CO:ContingencyEquipment.contingentStatus:allowedValues" ; + sh:order 2 ; + sh:severity sh:Violation . diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/CustomConstraints/EquipmentReliabilityProfileCustomConstraints.ttl b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/CustomConstraints/EquipmentReliabilityProfileCustomConstraints.ttl new file mode 100644 index 0000000000..f0e916c934 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/CustomConstraints/EquipmentReliabilityProfileCustomConstraints.ttl @@ -0,0 +1,127 @@ +@base . +@prefix eu: . +@prefix cims: . +@prefix rdf: . +@prefix owl: . +@prefix sh: . +@prefix cim: . +@prefix erc: . +@prefix xsd: . +@prefix rdfs: . +@prefix dash: . +@prefix dcterms: . +@prefix dcat: . +@prefix nc: . + + +erc:Ontology rdf:type owl:Ontology ; + dcterms:conformsTo "urn:iso:std:iec:61970-501:draft:ed-2" , "urn:iso:std:iec:61970-600-2:ed-1" , "urn:iso:std:iec:61970-301:ed-7:amd1" , "file://iec61970cim17v40_iec61968cim13v13a_iec62325cim03v17a.eap" ; + dcterms:creator "ENTSO-E CIM EG"@en ; + dcterms:description "The custom constraints for the equipment reliability profile."@en ; + dcterms:identifier "urn:uuid:f7898d6b-3ffc-4515-8459-95390ae7a9ca" ; + dcterms:issued "2022-09-28T12:09:21Z"^^xsd:dateTime ; + dcterms:language "en-GB" ; + dcterms:modified "2022-09-28"^^xsd:date ; + dcterms:publisher "ENTSO-E"@en ; + dcterms:rights "Copyright"@en ; + dcterms:rightsHolder "ENTSO-E"@en ; + dcterms:title "Equipment Reliability profile custom constraints"@en ; + owl:versionIRI ; + dcterms:license "https://www.apache.org/licenses/LICENSE-2.0" ; + owl:versionInfo "2.1.0"@en ; + dcat:landingPage "https://www.entsoe.eu/digital/cim/cim-for-grid-models-exchange/" ; + dcat:theme "constraints"@en . + +cim: + a owl:Ontology ; + owl:imports sh: ; + sh:declare [ + a sh:PrefixDeclaration ; + sh:namespace "http://iec.ch/TC57/CIM100#"^^xsd:anyURI ; + sh:prefix "cim" ; + ] ; + sh:declare [ + a sh:PrefixDeclaration ; + sh:namespace "http://entsoe.eu/ns/nc#"^^xsd:anyURI ; + sh:prefix "nc" ; + ] ; + sh:declare [ + a sh:PrefixDeclaration ; + sh:namespace "http://www.w3.org/1999/02/22-rdf-syntax-ns#"^^xsd:anyURI ; + sh:prefix "rdf" ; + ] ; + sh:declare [ + a sh:PrefixDeclaration ; + sh:namespace "http://iec.ch/TC57/CIM100-European#"^^xsd:anyURI ; + sh:prefix "eu" ; + ] . + + +erc:ERgroup + a sh:PropertyGroup ; + rdfs:label "EquipmentReliabilityGroup" ; + sh:order 0 . + + +erc:AreaDispatchableUnit a sh:NodeShape ; + sh:property erc:AreaDispatchableUnit-associations; + sh:targetClass nc:AreaDispatchableUnit . + + + +erc:AreaDispatchableUnit-associations + a sh:PropertyShape ; + sh:description "The AreaDispatchableUnit shall be associated with either GeneratingUnit, PowerElecronicsUnit, EnergyConsumer, ScheduleResource or HydroPump." ; + sh:sparql erc:AreaDispatchableUnit-associationsSparql ; + sh:path rdf:type ; + sh:group erc:ERgroup ; + sh:name "C:NC:ER:AreaDispatchableUnit:associations" ; + sh:order 1 ; + sh:severity sh:Violation . + +erc:AreaDispatchableUnit-associationsSparql + a sh:SPARQLConstraint ; + sh:message "AreaDispatchableUnit is not associated with either GeneratingUnit, PowerElecronicsUnit, EnergyConsumer, ScheduleResource or HydroPump." ; + sh:prefixes cim: ; + sh:select """ + SELECT $this + WHERE { + + BIND(EXISTS{$this nc:AreaDispatchableUnit.GeneratingUnit ?o1} AS ?adugu). + BIND(EXISTS{$this nc:AreaDispatchableUnit.PowerElecronicsUnit ?o2} AS ?adupe). + BIND(EXISTS{$this nc:AreaDispatchableUnit.EnergyConsumer ?o3} AS ?aduec). + BIND(EXISTS{$this nc:AreaDispatchableUnit.ScheduleResource ?o4} AS ?adusr). + BIND(EXISTS{$this nc:AreaDispatchableUnit.HydroPump ?o5} AS ?aduhp). + FILTER (?adugu=false && ?adupe=false && ?aduec=false && ?adusr=false && ?aduhp=false). + }""" . + +erc:EnergyComponent a sh:NodeShape ; + sh:property erc:EnergyComponent-associations; + sh:targetClass nc:EnergyComponent . + + + +erc:EnergyComponent-associations + a sh:PropertyShape ; + sh:description "The EnergyComponent shall be associated with either GeneratingUnit, PowerElecronicsUnit, EnergyConsumer or HydroPump." ; + sh:sparql erc:EnergyComponent-associationsSparql ; + sh:path rdf:type ; + sh:group erc:ERgroup ; + sh:name "C:NC:ER:EnergyComponent:associations" ; + sh:order 2 ; + sh:severity sh:Violation . + +erc:EnergyComponent-associationsSparql + a sh:SPARQLConstraint ; + sh:message "EnergyComponent is not associated with either GeneratingUnit, PowerElecronicsUnit, EnergyConsumer or HydroPump." ; + sh:prefixes cim: ; + sh:select """ + SELECT $this + WHERE { + + BIND(EXISTS{$this nc:EnergyComponent.GeneratingUnit ?o1} AS ?adugu). + BIND(EXISTS{$this nc:EnergyComponent.PowerElecronicsUnit ?o2} AS ?adupe). + BIND(EXISTS{$this nc:EnergyComponent.EnergyConsumer ?o2} AS ?aduec). + BIND(EXISTS{$this nc:EnergyComponent.HydroPump ?o2} AS ?aduhp). + FILTER (?adugu=false && ?adupe=false && ?aduec=false && ?aduhp=false). + }""" . \ No newline at end of file diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/CustomConstraints/IdentifiedObjecStringLength.ttl b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/CustomConstraints/IdentifiedObjecStringLength.ttl new file mode 100644 index 0000000000..5695b08e35 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/CustomConstraints/IdentifiedObjecStringLength.ttl @@ -0,0 +1,110 @@ +@base . +@prefix eu: . +@prefix cims: . +@prefix rdf: . +@prefix owl: . +@prefix sh: . +@prefix cim: . +@prefix io: . +@prefix xsd: . +@prefix rdfs: . +@prefix dash: . +@prefix dcterms: . +@prefix dcat: . + + +io:Ontology rdf:type owl:Ontology ; + dcterms:conformsTo "urn:iso:std:iec:61970-501:draft:ed-2" , "urn:iso:std:iec:61970-600-2:ed-1" , "urn:iso:std:iec:61970-301:ed-7:amd1" , "file://iec61970cim17v40_iec61968cim13v13a_iec62325cim03v17a.eap" ; + dcterms:creator "ENTSO-E CIM EG"@en ; + dcterms:description "The constraints for the IdentifiedObject."@en ; + dcterms:identifier "urn:uuid:ace9b76c-e8d4-41d9-92bf-7b8a1a7b1049" ; + dcterms:issued "2022-09-28T12:09:21Z"^^xsd:dateTime ; + dcterms:language "en-GB" ; + dcterms:modified "2022-09-28"^^xsd:date ; + dcterms:publisher "ENTSO-E"@en ; + dcterms:rights "Copyright"@en ; + dcterms:rightsHolder "ENTSO-E"@en ; + dcterms:title "IdentifiedObject Constraints"@en ; + owl:versionIRI ; + dcterms:license "https://www.apache.org/licenses/LICENSE-2.0" ; + owl:versionInfo "2.1.0"@en ; + dcat:landingPage "https://www.entsoe.eu/digital/cim/cim-for-grid-models-exchange/" ; + dcat:theme "constraints"@en . + +cim: + a owl:Ontology ; + owl:imports sh: ; + sh:declare [ + a sh:PrefixDeclaration ; + sh:namespace "http://iec.ch/TC57/CIM100#"^^xsd:anyURI ; + sh:prefix "cim" ; + ] ; + sh:declare [ + a sh:PrefixDeclaration ; + sh:namespace "http://www.w3.org/1999/02/22-rdf-syntax-ns#"^^xsd:anyURI ; + sh:prefix "rdf" ; + ] ; + sh:declare [ + a sh:PrefixDeclaration ; + sh:namespace "http://iec.ch/TC57/CIM100-European#"^^xsd:anyURI ; + sh:prefix "eu" ; + ] . + + +io:IOstringLength + a sh:PropertyGroup ; + rdfs:label "IdentifiedObjectStringLength" ; + sh:order 0 . + +io:IdentifiedObjectStringLength a sh:NodeShape ; + sh:property io:IdentifiedObject.name-stringLength , io:IdentifiedObject.description-stringLength; + sh:targetNode cim:IdentifiedObjectStringLength . + + + +io:IdentifiedObject.name-stringLength + a sh:PropertyShape ; + sh:description "The string IdentifiedObject.name has a maximum of 128 characters." ; + sh:sparql io:IdentifiedObject.name-stringLengthSparql ; + sh:path rdf:type ; + sh:group io:IOstringLength ; + sh:name "C:452:ALL:IdentifiedObject.name:stringLength" ; + sh:order 1 ; + sh:severity sh:Violation . + +io:IdentifiedObject.name-stringLengthSparql + a sh:SPARQLConstraint ; + sh:message "String length is greater than 128 characters." ; + sh:prefixes cim: ; + sh:select """ + SELECT $this ?value + WHERE { + ?s cim:IdentifiedObject.name ?value + + FILTER (STRLEN(?value)>128) . + }""" . + + +io:IdentifiedObject.description-stringLength + a sh:PropertyShape ; + sh:description "The string IdentifiedObject.description is maximum 256 characters." ; + sh:sparql io:IdentifiedObject.description-stringLengthSparql ; + sh:path rdf:type ; + sh:group io:IOstringLength ; + sh:name "C:452:ALL:IdentifiedObject.description:stringLength" ; + sh:order 2 ; + sh:severity sh:Violation . + +io:IdentifiedObject.description-stringLengthSparql + a sh:SPARQLConstraint ; + sh:message "String length is greater than 256 characters." ; + sh:prefixes cim: ; + sh:select """ + SELECT $this ?value + WHERE { + ?s cim:IdentifiedObject.description ?value + + FILTER (STRLEN(?value)>256) . + }""" . + + diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/CustomConstraints/ImpactAssessmentMatrixProfileCustomConstraints.ttl b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/CustomConstraints/ImpactAssessmentMatrixProfileCustomConstraints.ttl new file mode 100644 index 0000000000..232cc78f75 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/CustomConstraints/ImpactAssessmentMatrixProfileCustomConstraints.ttl @@ -0,0 +1,113 @@ +@base . +@prefix eu: . +@prefix cims: . +@prefix rdf: . +@prefix owl: . +@prefix sh: . +@prefix cim: . +@prefix iamc: . +@prefix xsd: . +@prefix rdfs: . +@prefix dash: . +@prefix dcterms: . +@prefix dcat: . +@prefix nc: . + + +iamc:Ontology rdf:type owl:Ontology ; + dcterms:conformsTo "urn:iso:std:iec:61970-501:draft:ed-2" , "urn:iso:std:iec:61970-600-2:ed-1" , "urn:iso:std:iec:61970-301:ed-7:amd1" , "file://iec61970cim17v40_iec61968cim13v13a_iec62325cim03v17a.eap" ; + dcterms:creator "ENTSO-E CIM EG"@en ; + dcterms:description "The custom constraints for the Impact Assessment Matrix profile."@en ; + dcterms:identifier "urn:uuid:1eb3eeaa-5e82-4f33-980b-e8599dc3bcd1" ; + dcterms:issued "2022-09-28T12:09:21Z"^^xsd:dateTime ; + dcterms:language "en-GB" ; + dcterms:modified "2022-09-28"^^xsd:date ; + dcterms:publisher "ENTSO-E"@en ; + dcterms:rights "Copyright"@en ; + dcterms:rightsHolder "ENTSO-E"@en ; + dcterms:title "Impact Assessment Matrix profile custom constraints"@en ; + owl:versionIRI ; + dcterms:license "https://www.apache.org/licenses/LICENSE-2.0" ; + owl:versionInfo "2.1.0"@en ; + dcat:landingPage "https://www.entsoe.eu/digital/cim/cim-for-grid-models-exchange/" ; + dcat:theme "constraints"@en . + +cim: + a owl:Ontology ; + owl:imports sh: ; + sh:declare [ + a sh:PrefixDeclaration ; + sh:namespace "http://iec.ch/TC57/CIM100#"^^xsd:anyURI ; + sh:prefix "cim" ; + ] ; + sh:declare [ + a sh:PrefixDeclaration ; + sh:namespace "http://entsoe.eu/ns/nc#"^^xsd:anyURI ; + sh:prefix "nc" ; + ] ; + sh:declare [ + a sh:PrefixDeclaration ; + sh:namespace "http://www.w3.org/1999/02/22-rdf-syntax-ns#"^^xsd:anyURI ; + sh:prefix "rdf" ; + ] ; + sh:declare [ + a sh:PrefixDeclaration ; + sh:namespace "http://iec.ch/TC57/CIM100-European#"^^xsd:anyURI ; + sh:prefix "eu" ; + ] . + + +iamc:IAMgroup + a sh:PropertyGroup ; + rdfs:label "ImpactAssessmentMatrixGroup" ; + sh:order 0 . + + +iamc:ListBasedImpactAssessmentMatrix a sh:NodeShape ; + sh:property iamc:OutcomeValue.ImpactAssessmentMatrix-listBasedImpactAssessmentMatrix; + sh:targetClass nc:ListBasedImpactAssessmentMatrix . + + +iamc:OutcomeValue.ImpactAssessmentMatrix-listBasedImpactAssessmentMatrix + a sh:PropertyShape ; + sh:description "For a ListBasedImpactAssessmentMatrix, RemedialActionScheduleOutcomeValue shall not be exchanged." ; + sh:message "RemedialActionScheduleOutcomeValue is instantiated for a ListBasedImpactAssessmentMatrix." ; + sh:path ([sh:inversePath nc:OutcomeValue.ImpactAssessmentMatrix] rdf:type); + sh:in (nc:RemedialActionOutcomeValue); + sh:group iamc:IAMgroup ; + sh:name "C:NC:IAM:ListBasedImpactAssessmentMatrix:outcomeValue" ; + sh:order 1 ; + sh:severity sh:Violation . + +iamc:CalculationBasedImpactAssessmentMatrix a sh:NodeShape ; + sh:property iamc:OutcomeValue.ImpactAssessmentMatrix-CalculationBasedImpactAssessmentMatrix; + sh:targetClass nc:CalculationBasedImpactAssessmentMatrix . + +iamc:OutcomeValue.ImpactAssessmentMatrix-CalculationBasedImpactAssessmentMatrix + a sh:PropertyShape ; + sh:description "For a CalculationBasedImpactAssessmentMatrix, RemedialActionOutcomeValue shall not be exchanged." ; + sh:message "RemedialActionOutcomeValue is instantiated for a CalculationBasedImpactAssessmentMatrix." ; + sh:path ([sh:inversePath nc:OutcomeValue.ImpactAssessmentMatrix] rdf:type); + sh:in (nc:RemedialActionScheduleOutcomeValue); + sh:group iamc:IAMgroup ; + sh:name "C:NC:IAM:OutcomeValue.RemedialActionSchedule:calculationBasedImpactAssessmentMatrix" ; + sh:order 2 ; + sh:severity sh:Violation . + +iamc:ConnectingImpactAssessmentMatrix a sh:NodeShape ; + sh:property iamc:OutcomeValue.ImpactAssessmentMatrix-ConnectingImpactAssessmentMatrix; + sh:targetClass nc:ConnectingImpactAssessmentMatrix . + + + +iamc:OutcomeValue.ImpactAssessmentMatrix-ConnectingImpactAssessmentMatrix + a sh:PropertyShape ; + sh:description "For a ConnectingImpactAssessmentMatrix, shall have either RemedialActionScheduleOutcomeValue or RemedialActionOutcomeValue.; + sh:message "RemedialActionScheduleOutcomeValue or RemedialActionOutcomeValue is not instantiated for a ConnectingImpactAssessmentMatrix." ; + sh:path ([sh:inversePath nc:OutcomeValue.ImpactAssessmentMatrix] rdf:type); + sh:in (nc:RemedialActionScheduleOutcomeValue, nc:RemedialActionOutcomeValue); + sh:minCount 1; + sh:group iamc:IAMgroup ; + sh:name "C:NC:IAM:ConnectingImpactAssessmentMatrix:outcomeValue" ; + sh:order 3 ; + sh:severity sh:Violation . diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/CustomConstraints/RemedialActionScheduleProfileCustomConstraints.ttl b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/CustomConstraints/RemedialActionScheduleProfileCustomConstraints.ttl new file mode 100644 index 0000000000..43440d2747 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/CustomConstraints/RemedialActionScheduleProfileCustomConstraints.ttl @@ -0,0 +1,94 @@ +@base . +@prefix eu: . +@prefix cims: . +@prefix rdf: . +@prefix owl: . +@prefix sh: . +@prefix cim: . +@prefix rasc: . +@prefix xsd: . +@prefix rdfs: . +@prefix dash: . +@prefix dcterms: . +@prefix dcat: . +@prefix nc: . + + +rasc:Ontology rdf:type owl:Ontology ; + dcterms:conformsTo "urn:iso:std:iec:61970-501:draft:ed-2" , "urn:iso:std:iec:61970-600-2:ed-1" , "urn:iso:std:iec:61970-301:ed-7:amd1" ; + dcterms:creator "ENTSO-E CIM WG"@en ; + dcterms:description "The custom constraints for remedial action scheule profile."@en ; + dcterms:identifier "urn:uuid:657b4a7f-0868-4764-8327-ff7cbb377dd4" ; + dcterms:issued "2023-03-26T12:09:21Z"^^xsd:dateTime ; + dcterms:language "en-GB" ; + dcterms:modified "2023-03-26"^^xsd:date ; + dcterms:publisher "ENTSO-E"@en ; + dcterms:rights "Copyright"@en ; + dcterms:rightsHolder "ENTSO-E"@en ; + dcterms:title "Remedial Action Schedule profile custom constraints"@en ; + owl:versionIRI ; + dcterms:license "https://www.apache.org/licenses/LICENSE-2.0" ; + owl:versionInfo "2.2.0"@en ; + dcat:landingPage "https://www.entsoe.eu/digital/cim/cim-for-grid-models-exchange/" ; + dcat:theme "constraints"@en . + +cim: + a owl:Ontology ; + owl:imports sh: ; + sh:declare [ + a sh:PrefixDeclaration ; + sh:namespace "http://iec.ch/TC57/CIM100#"^^xsd:anyURI ; + sh:prefix "cim" ; + ] ; + sh:declare [ + a sh:PrefixDeclaration ; + sh:namespace "http://entsoe.eu/ns/nc#"^^xsd:anyURI ; + sh:prefix "nc" ; + ] ; + sh:declare [ + a sh:PrefixDeclaration ; + sh:namespace "http://www.w3.org/1999/02/22-rdf-syntax-ns#"^^xsd:anyURI ; + sh:prefix "rdf" ; + ] ; + sh:declare [ + a sh:PrefixDeclaration ; + sh:namespace "http://iec.ch/TC57/CIM100-European#"^^xsd:anyURI ; + sh:prefix "eu" ; + ] . + + +rasc:RASgroup + a sh:PropertyGroup ; + rdfs:label "RemedialActionScheduleGroup" ; + sh:order 0 . + + + +rasc:RemedialActionSchedule a sh:NodeShape ; + sh:property rasc:RemedialActionSchedule-proposingEntity; + sh:targetClass nc:RemedialActionSchedule. + + + +rasc:RemedialActionSchedule-proposingEntity + a sh:PropertyShape ; + sh:description "The RemedialActionSchedule shall have a proposing entity either the Security Coordinator (RemedialActionSchedule.ProposingEntity) or at least one ProposingRemedialActionScheduleShare." ; + sh:sparql rasc:RemedialActionSchedule-proposingEntitySparql ; + sh:path rdf:type ; + sh:group rasc:RASgroup ; + sh:name "C:NC:RAS:RemedialActionSchedule:proposingEntity" ; + sh:order 1 ; + sh:severity sh:Violation . + +rasc:RemedialActionSchedule-proposingEntitySparql + a sh:SPARQLConstraint ; + sh:message "The RemedialActionSchedule does not have a proposing entity either the Security Coordinator (RemedialActionSchedule.ProposingEntity) or at least one ProposingRemedialActionScheduleShare." ; + sh:prefixes cim: ; + sh:select """ + SELECT $this + WHERE { + BIND(EXISTS{$this nc:RemedialActionSchedule.ProposingEntity ?o1} AS ?pesc). + BIND(EXISTS{$this ^nc:ProposingRemedialActionScheduleShare.RemedialActionSchedule ?o2} AS ?peso). + FILTER (?pesc=false && ?peso=false ). + }""" . + diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/CustomConstraints/SecurityAnalysisResultProfileCustomConstraints.ttl b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/CustomConstraints/SecurityAnalysisResultProfileCustomConstraints.ttl new file mode 100644 index 0000000000..7905241ccb --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/CustomConstraints/SecurityAnalysisResultProfileCustomConstraints.ttl @@ -0,0 +1,225 @@ +@base . +@prefix eu: . +@prefix cims: . +@prefix rdf: . +@prefix owl: . +@prefix sh: . +@prefix cim: . +@prefix sarc: . +@prefix xsd: . +@prefix rdfs: . +@prefix dash: . +@prefix dcterms: . +@prefix dcat: . +@prefix nc: . + + +sarc:Ontology rdf:type owl:Ontology ; + dcterms:conformsTo "urn:iso:std:iec:61970-501:draft:ed-2" , "urn:iso:std:iec:61970-600-2:ed-1" , "urn:iso:std:iec:61970-301:ed-7:amd1" ; + dcterms:creator "ENTSO-E CIM WG"@en ; + dcterms:description "The custom constraints for security analysis result profile."@en ; + dcterms:identifier "urn:uuid:44dd9e65-6a29-4308-91e4-06c385f17edd" ; + dcterms:issued "2023-03-26T12:09:21Z"^^xsd:dateTime ; + dcterms:language "en-GB" ; + dcterms:modified "2023-03-26"^^xsd:date ; + dcterms:publisher "ENTSO-E"@en ; + dcterms:rights "Copyright"@en ; + dcterms:rightsHolder "ENTSO-E"@en ; + dcterms:title "Security analysis result profile custom constraints"@en ; + owl:versionIRI ; + dcterms:license "https://www.apache.org/licenses/LICENSE-2.0" ; + owl:versionInfo "2.2.0"@en ; + dcat:landingPage "https://www.entsoe.eu/digital/cim/cim-for-grid-models-exchange/" ; + dcat:theme "constraints"@en . + +cim: + a owl:Ontology ; + owl:imports sh: ; + sh:declare [ + a sh:PrefixDeclaration ; + sh:namespace "http://iec.ch/TC57/CIM100#"^^xsd:anyURI ; + sh:prefix "cim" ; + ] ; + sh:declare [ + a sh:PrefixDeclaration ; + sh:namespace "http://entsoe.eu/ns/nc#"^^xsd:anyURI ; + sh:prefix "nc" ; + ] ; + sh:declare [ + a sh:PrefixDeclaration ; + sh:namespace "http://www.w3.org/1999/02/22-rdf-syntax-ns#"^^xsd:anyURI ; + sh:prefix "rdf" ; + ] ; + sh:declare [ + a sh:PrefixDeclaration ; + sh:namespace "http://iec.ch/TC57/CIM100-European#"^^xsd:anyURI ; + sh:prefix "eu" ; + ] . + + +sarc:SARgroup + a sh:PropertyGroup ; + rdfs:label "SecurityAnalysisResultGroup" ; + sh:order 0 . + +sarc:PowerFlowResult a sh:NodeShape ; + sh:property sarc:PowerFlowResult.value, sarc:PowerFlowResult-ApparentPowerLimit, sarc:PowerFlowResult-ActivePowerLimit, sarc:PowerFlowResult-ReactivePowerLimit, sarc:PowerFlowResult-VoltageLimit, sarc:PowerFlowResult-VoltageAngleLimit, sarc:PowerFlowResult-CurrentLimit; + sh:targetClass nc:BaseCasePowerFlowResult , nc:ContingencyPowerFlowResult. + + + +sarc:PowerFlowResult.value + a sh:PropertyShape ; + sh:description "PowerFlowResult.value and PowerFlowResult.absoluteValue are required attributes if the association end PowerFlowResult.OperationalLimit is provided." ; + sh:sparql sarc:PowerFlowResult.valueSparql ; + sh:path rdf:type ; + sh:group sarc:SARgroup ; + sh:name "C:NC:SAR:PowerFlowResult:value" ; + sh:order 1 ; + sh:severity sh:Violation . + +sarc:PowerFlowResult.valueSparql + a sh:SPARQLConstraint ; + sh:message "PowerFlowResult is associated with OperationalLimit but PowerFlowResult.value and/or PowerFlowResult.absoluteValue are not provided." ; + sh:prefixes cim: ; + sh:select """ + SELECT $this + WHERE { + $this nc:PowerFlowResult.OperationalLimit ?o1. + #BIND(EXISTS{$this nc:PowerFlowResult.OperationalLimit ?o1} AS ?ol1). + BIND(EXISTS{$this nc:PowerFlowResult.value ?o2} AS ?val). + BIND(EXISTS{$this nc:PowerFlowResult.absoluteValue ?o3} AS ?aval). + FILTER (?val=false || ?aval=false ). + }""" . + +sarc:PowerFlowResult-ApparentPowerLimit + a sh:PropertyShape ; + sh:description "PowerFlowResult.valueVA is required attribute if an ApparentPowerLimit is referenced by the association end PowerFlowResult.OperationalLimit." ; + sh:sparql sarc:PowerFlowResult-ApparentPowerLimitSparql ; + sh:path nc:PowerFlowResult.valueVA ; + sh:group sarc:SARgroup ; + sh:name "C:NC:SAR:PowerFlowResult:ApparentPowerLimit" ; + sh:order 2 ; + sh:severity sh:Violation . + +sarc:PowerFlowResult-ApparentPowerLimitSparql + a sh:SPARQLConstraint ; + sh:message "PowerFlowResult.valueVA is not provided for ApparentPowerLimit." ; + sh:prefixes cim: ; + sh:select """ + SELECT $this + WHERE { + $this nc:PowerFlowResult.OperationalLimit/rdf:type ?oltype. + BIND(EXISTS{$this $PATH ?o1} AS ?val). + FILTER (?oltype=cim:ApparentPowerLimit && ?val=false ). + }""" . + +sarc:PowerFlowResult-ActivePowerLimit + a sh:PropertyShape ; + sh:description "PowerFlowResult.valueW is required attribute if an ActivePowerLimit is referenced by the association end PowerFlowResult.OperationalLimit." ; + sh:sparql sarc:PowerFlowResult-ActivePowerLimitSparql ; + sh:path nc:PowerFlowResult.valueW ; + sh:group sarc:SARgroup ; + sh:name "C:NC:SAR:PowerFlowResult:ActivePowerLimit" ; + sh:order 3 ; + sh:severity sh:Violation . + +sarc:PowerFlowResult-ActivePowerLimitSparql + a sh:SPARQLConstraint ; + sh:message "PowerFlowResult.valueW is not provided for ActivePowerLimit." ; + sh:prefixes cim: ; + sh:select """ + SELECT $this + WHERE { + $this nc:PowerFlowResult.OperationalLimit/rdf:type ?oltype. + BIND(EXISTS{$this $PATH ?o1} AS ?val). + FILTER (?oltype=cim:ActivePowerLimit && ?val=false ). + }""" . + +sarc:PowerFlowResult-ReactivePowerLimit + a sh:PropertyShape ; + sh:description "PowerFlowResult.valueVAR is required attribute if a ReactivePowerLimit is referenced by the association end PowerFlowResult.OperationalLimit." ; + sh:sparql sarc:PowerFlowResult-ReactivePowerLimitSparql ; + sh:path nc:PowerFlowResult.valueVAR ; + sh:group sarc:SARgroup ; + sh:name "C:NC:SAR:PowerFlowResult:ReactivePowerLimit" ; + sh:order 4 ; + sh:severity sh:Violation . + +sarc:PowerFlowResult-ReactivePowerLimitSparql + a sh:SPARQLConstraint ; + sh:message "PowerFlowResult.valueVAR is not provided for ReactivePowerLimit." ; + sh:prefixes cim: ; + sh:select """ + SELECT $this + WHERE { + $this nc:PowerFlowResult.OperationalLimit/rdf:type ?oltype. + BIND(EXISTS{$this $PATH ?o1} AS ?val). + FILTER (?oltype=cim:ReactivePowerLimit && ?val=false ). + }""" . + +sarc:PowerFlowResult-VoltageLimit + a sh:PropertyShape ; + sh:description "PowerFlowResult.valueV is required attribute if a VoltageLimit is referenced by the association end PowerFlowResult.OperationalLimit." ; + sh:sparql sarc:PowerFlowResult-VoltageLimitSparql ; + sh:path nc:PowerFlowResult.valueV ; + sh:group sarc:SARgroup ; + sh:name "C:NC:SAR:PowerFlowResult:VoltageLimit" ; + sh:order 5 ; + sh:severity sh:Violation . + +sarc:PowerFlowResult-VoltageLimitSparql + a sh:SPARQLConstraint ; + sh:message "PowerFlowResult.valueV is not provided for VoltageLimit." ; + sh:prefixes cim: ; + sh:select """ + SELECT $this + WHERE { + $this nc:PowerFlowResult.OperationalLimit/rdf:type ?oltype. + BIND(EXISTS{$this $PATH ?o1} AS ?val). + FILTER (?oltype=cim:VoltageLimit && ?val=false ). + }""" . + +sarc:PowerFlowResult-VoltageAngleLimit + a sh:PropertyShape ; + sh:description "PowerFlowResult.valueAngle is required attribute if a VoltageAngleLimit is referenced by the association end PowerFlowResult.OperationalLimit." ; + sh:sparql sarc:PowerFlowResult-VoltageAngleLimitSparql ; + sh:path nc:PowerFlowResult.valueAngle ; + sh:group sarc:SARgroup ; + sh:name "C:NC:SAR:PowerFlowResult:VoltageAngleLimit" ; + sh:order 6 ; + sh:severity sh:Violation . + +sarc:PowerFlowResult-VoltageAngleLimitSparql + a sh:SPARQLConstraint ; + sh:message "PowerFlowResult.valueAngle is not provided for VoltageAngleLimit." ; + sh:prefixes cim: ; + sh:select """ + SELECT $this + WHERE { + $this nc:PowerFlowResult.OperationalLimit/rdf:type ?oltype. + BIND(EXISTS{$this $PATH ?o1} AS ?val). + FILTER (?oltype=nc:VoltageAngleLimit && ?val=false ). + }""" . + +sarc:PowerFlowResult-CurrentLimit + a sh:PropertyShape ; + sh:description "PowerFlowResult.valueA is required attribute if a CurrentLimit is referenced by the association end PowerFlowResult.OperationalLimit." ; + sh:sparql sarc:PowerFlowResult-CurrentLimitSparql ; + sh:path nc:PowerFlowResult.valueA ; + sh:group sarc:SARgroup ; + sh:name "C:NC:SAR:PowerFlowResult:CurrentLimit" ; + sh:order 7 ; + sh:severity sh:Violation . + +sarc:PowerFlowResult-CurrentLimitSparql + a sh:SPARQLConstraint ; + sh:message "PowerFlowResult.valueA is not provided for CurrentLimit." ; + sh:prefixes cim: ; + sh:select """ + SELECT $this + WHERE { + $this nc:PowerFlowResult.OperationalLimit/rdf:type ?oltype. + BIND(EXISTS{$this $PATH ?o1} AS ?val). + FILTER (?oltype=cim:CurrentLimit && ?val=false ). + }""" . \ No newline at end of file diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/AssessedElementProfile_v2_2_SHACL.ttl b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/AssessedElementProfile_v2_2_SHACL.ttl new file mode 100644 index 0000000000..1b8740183d --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/AssessedElementProfile_v2_2_SHACL.ttl @@ -0,0 +1,766 @@ +@base . +@prefix adms: . +@prefix ae: . +@prefix cim: . +@prefix cims: . +@prefix dash: . +@prefix dc: . +@prefix dcat: . +@prefix dcterms: . +@prefix dm: . +@prefix eu: . +@prefix eumd: . +@prefix euvoc: . +@prefix ido: . +@prefix md: . +@prefix nc: . +@prefix owl: . +@prefix prof: . +@prefix profcim: . +@prefix prov: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix skos: . +@prefix xsd: . + +ae:AssessedElementWithRemedialAction + rdf:type sh:NodeShape ; + sh:property ae:AssessedElementWithRemedialAction.combinationConstraintKind-datatype , ae:AssessedElementWithRemedialAction.AssessedElement-cardinality , ae:AssessedElementWithRemedialAction.RemedialAction-cardinality , ae:AssessedElementWithRemedialAction.normalEnabled-cardinality , ae:AssessedElementWithRemedialAction.mRID-cardinality , ae:AssessedElementWithRemedialAction.mRID-datatype , ae:AssessedElementWithRemedialAction.normalEnabled-datatype , ae:AssessedElementWithRemedialAction.combinationConstraintKind-cardinality , ae:AssessedElementWithRemedialAction.AssessedElement-valueType ; + sh:targetClass nc:AssessedElementWithRemedialAction . + +ae:AssessedElement.normalEnabled-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ae:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AssessedElement.normalEnabled-cardinality" ; + sh:order 1 ; + sh:path nc:AssessedElement.normalEnabled ; + sh:severity sh:Violation . + +ae:AssessedElementWithRemedialAction.RemedialAction-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ae:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "AssessedElementWithRemedialAction.RemedialAction-cardinality" ; + sh:order 2 ; + sh:path nc:AssessedElementWithRemedialAction.RemedialAction ; + sh:severity sh:Violation . + +ae:AssessedElement.NativeRegion-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ae:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AssessedElement.NativeRegion-cardinality" ; + sh:order 17 ; + sh:path nc:AssessedElement.NativeRegion ; + sh:severity sh:Violation . + +ae:AssessedElement.normalAppointedMargin-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ae:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AssessedElement.normalAppointedMargin-cardinality" ; + sh:order 8 ; + sh:path nc:AssessedElement.normalAppointedMargin ; + sh:severity sh:Violation . + +ae:AssessedElementWithRemedialAction.mRID-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ae:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "AssessedElementWithRemedialAction.mRID-cardinality" ; + sh:order 3 ; + sh:path nc:AssessedElementWithRemedialAction.mRID ; + sh:severity sh:Violation . + +ae:AssociationsGroup rdf:type sh:PropertyGroup ; + rdfs:label "Associations" ; + sh:order 2 . + +ido:DatatypesGroupIO rdf:type sh:PropertyGroup ; + rdfs:label "DatatypesIO" ; + sh:order 1 . + +ido:IdentifiedObject.description-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ido:CardinalityIO ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "IdentifiedObject.description-cardinality" ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.description ; + sh:severity sh:Violation . + +ae:AssessedElement.maxMarginAdjustment-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ae:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "AssessedElement.maxMarginAdjustment-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 11 ; + sh:path nc:AssessedElement.maxMarginAdjustment ; + sh:severity sh:Violation . + +ae:AssessedElement.exclusionReason-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ae:DatatypesGroup ; + sh:in ( nc:SecuredExclusionReasonKind.systemOperator nc:SecuredExclusionReasonKind.nonNativeCapacityCalculationRegion nc:SecuredExclusionReasonKind.capacityCalculationRegion ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "AssessedElement.exclusionReason-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 21 ; + sh:path nc:AssessedElement.exclusionReason ; + sh:severity sh:Violation . + +ae:AssessedElement.maxMarginAdjustment-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ae:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AssessedElement.maxMarginAdjustment-cardinality" ; + sh:order 11 ; + sh:path nc:AssessedElement.maxMarginAdjustment ; + sh:severity sh:Violation . + +ae:AssessedElement.normalPositiveVirtualMargin-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ae:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AssessedElement.normalPositiveVirtualMargin-cardinality" ; + sh:order 23 ; + sh:path nc:AssessedElement.normalPositiveVirtualMargin ; + sh:severity sh:Violation . + +ae:AssessedElementWithContingency.combinationConstraintKind-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ae:DatatypesGroup ; + sh:in ( nc:ElementCombinationConstraintKind.considered nc:ElementCombinationConstraintKind.included nc:ElementCombinationConstraintKind.excluded ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "AssessedElementWithContingency.combinationConstraintKind-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path nc:AssessedElementWithContingency.combinationConstraintKind ; + sh:severity sh:Violation . + +ae:AssessedElement.ScannedForRegion-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ae:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AssessedElement.ScannedForRegion-cardinality" ; + sh:order 16 ; + sh:path nc:AssessedElement.ScannedForRegion ; + sh:severity sh:Violation . + +ae:AssessedElement.isCombinableWithRemedialAction-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ae:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AssessedElement.isCombinableWithRemedialAction-cardinality" ; + sh:order 20 ; + sh:path nc:AssessedElement.isCombinableWithRemedialAction ; + sh:severity sh:Violation . + +ae:AssessedElement.isCritical-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ae:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "AssessedElement.isCritical-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 12 ; + sh:path nc:AssessedElement.isCritical ; + sh:severity sh:Violation . + +ae:AssessedElement.normalMaxFlow-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ae:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "AssessedElement.normalMaxFlow-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 6 ; + sh:path nc:AssessedElement.normalMaxFlow ; + sh:severity sh:Violation . + +ae:AssessedElement.isCrossBorderRelevant-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ae:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "AssessedElement.isCrossBorderRelevant-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:AssessedElement.isCrossBorderRelevant ; + sh:severity sh:Violation . + +ido:IdentifiedObject.name-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ido:CardinalityIO ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "IdentifiedObject.name-cardinality" ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.name ; + sh:severity sh:Violation . + +ae:AssessedElement.flowReliabilityMargin-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ae:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "AssessedElement.flowReliabilityMargin-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 10 ; + sh:path nc:AssessedElement.flowReliabilityMargin ; + sh:severity sh:Violation . + +ido:IdentifiedObject.description-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ido:DatatypesGroupIO ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "IdentifiedObject.description-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.description ; + sh:severity sh:Violation . + +ae:AssessedElement.OverlappingZone-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ae:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AssessedElement.OverlappingZone-cardinality" ; + sh:order 24 ; + sh:path nc:AssessedElement.OverlappingZone ; + sh:severity sh:Violation . + +ae:AssessedElementWithRemedialAction.combinationConstraintKind-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ae:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "AssessedElementWithRemedialAction.combinationConstraintKind-cardinality" ; + sh:order 0 ; + sh:path nc:AssessedElementWithRemedialAction.combinationConstraintKind ; + sh:severity sh:Violation . + +ae:AssessedElement rdf:type sh:NodeShape ; + sh:property ae:AssessedElement.NativeRegion-cardinality , ae:AssessedElement.targetRemainingAvailableMargin-cardinality , ido:IdentifiedObject.mRID-datatype , ae:AssessedElement.normalScannedThresholdMargin-datatype , ido:IdentifiedObject.mRID-cardinality , ae:AssessedElement.DCTieCorridor-cardinality , ae:AssessedElement.normalAppointedMargin-datatype , ae:AssessedElement.AssessedSystemOperator-cardinality , ae:AssessedElement.isCombinableWithRemedialAction-datatype , ae:AssessedElement.targetRemainingAvailableMargin-datatype , ae:AssessedElement.maxMarginAdjustment-cardinality , ae:AssessedElement.SecuredForRegion-cardinality , ae:AssessedElement.normalEnabled-cardinality , ae:AssessedElement.normalPositiveVirtualMargin-datatype , ae:AssessedElement.isCrossBorderRelevant-datatype , ae:AssessedElement.inBaseCase-datatype , ido:IdentifiedObject.name-cardinality , ae:AssessedElement.normalEnabled-datatype , ae:AssessedElement.normalMaxFlow-cardinality , ae:AssessedElement.OperationalLimit-cardinality , ae:AssessedElement.maxMarginAdjustment-datatype , ae:AssessedElement.inBaseCase-cardinality , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.description-datatype , ae:AssessedElement.normalMaxFlow-datatype , ae:AssessedElement.isCritical-cardinality , ae:AssessedElement.exclusionReason-cardinality , ae:AssessedElement.isCombinableWithContingency-datatype , ido:IdentifiedObject.name-datatype , ae:AssessedElement.ScannedForRegion-cardinality , ae:AssessedElement.flowReliabilityMargin-cardinality , ae:AssessedElement.flowReliabilityMargin-datatype , ae:AssessedElement.ConductingEquipment-cardinality , ae:AssessedElement.isCrossBorderRelevant-cardinality , ae:AssessedElement.normalPositiveVirtualMargin-cardinality , ae:AssessedElement.normalScannedThresholdMargin-cardinality , ae:AssessedElement.AssessedPowerTransferCorridor-cardinality , ae:AssessedElement.exclusionReason-datatype , ae:AssessedElement.OverlappingZone-cardinality , ae:AssessedElement.isCombinableWithContingency-cardinality , ae:AssessedElement.isCritical-datatype , ae:AssessedElement.isCombinableWithRemedialAction-cardinality , ae:AssessedElement.normalAppointedMargin-cardinality ; + sh:targetClass nc:AssessedElement . + +ae:AssessedElement.ConductingEquipment-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ae:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AssessedElement.ConductingEquipment-cardinality" ; + sh:order 19 ; + sh:path nc:AssessedElement.ConductingEquipment ; + sh:severity sh:Violation . + +ae:AssessedElementWithRemedialAction.mRID-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ae:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "AssessedElementWithRemedialAction.mRID-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path nc:AssessedElementWithRemedialAction.mRID ; + sh:severity sh:Violation . + +ae:AssessedElementWithContingency.normalEnabled-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ae:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "AssessedElementWithContingency.normalEnabled-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:AssessedElementWithContingency.normalEnabled ; + sh:severity sh:Violation . + +ae:DatatypesGroup rdf:type sh:PropertyGroup ; + rdfs:label "Datatypes" ; + sh:order 1 . + +ae:AssessedElementWithContingency.normalEnabled-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ae:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AssessedElementWithContingency.normalEnabled-cardinality" ; + sh:order 1 ; + sh:path nc:AssessedElementWithContingency.normalEnabled ; + sh:severity sh:Violation . + +ae:AssessedElementWithContingency.Contingency-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ae:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "AssessedElementWithContingency.Contingency-cardinality" ; + sh:order 3 ; + sh:path nc:AssessedElementWithContingency.Contingency ; + sh:severity sh:Violation . + +ae:AssessedElement.targetRemainingAvailableMargin-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ae:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "AssessedElement.targetRemainingAvailableMargin-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 15 ; + sh:path nc:AssessedElement.targetRemainingAvailableMargin ; + sh:severity sh:Violation . + +ae:AssessedElementWithContingency.AssessedElement-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group ae:AssociationsGroup ; + sh:in ( nc:AssessedElement ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:AssessedElement" ; + sh:name "AssessedElementWithContingency.AssessedElement-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path ( nc:AssessedElementWithContingency.AssessedElement rdf:type ) ; + sh:severity sh:Violation . + +ae:AssessedElement.normalMaxFlow-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ae:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AssessedElement.normalMaxFlow-cardinality" ; + sh:order 6 ; + sh:path nc:AssessedElement.normalMaxFlow ; + sh:severity sh:Violation . + +ae:AssessedElement.AssessedPowerTransferCorridor-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ae:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AssessedElement.AssessedPowerTransferCorridor-cardinality" ; + sh:order 7 ; + sh:path nc:AssessedElement.AssessedPowerTransferCorridor ; + sh:severity sh:Violation . + +ae:AssessedElementWithContingency + rdf:type sh:NodeShape ; + sh:property ae:AssessedElementWithContingency.combinationConstraintKind-cardinality , ae:AssessedElementWithContingency.combinationConstraintKind-datatype , ae:AssessedElementWithContingency.AssessedElement-cardinality , ae:AssessedElementWithContingency.normalEnabled-datatype , ae:AssessedElementWithContingency.AssessedElement-valueType , ae:AssessedElementWithContingency.Contingency-cardinality , ae:AssessedElementWithContingency.mRID-cardinality , ae:AssessedElementWithContingency.normalEnabled-cardinality , ae:AssessedElementWithContingency.mRID-datatype ; + sh:targetClass nc:AssessedElementWithContingency . + +ae:AssessedElement.normalPositiveVirtualMargin-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ae:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "AssessedElement.normalPositiveVirtualMargin-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 23 ; + sh:path nc:AssessedElement.normalPositiveVirtualMargin ; + sh:severity sh:Violation . + +ido:IdentifiedObject.name-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ido:DatatypesGroupIO ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "IdentifiedObject.name-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.name ; + sh:severity sh:Violation . + +ae:AssessedElement.isCombinableWithRemedialAction-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ae:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "AssessedElement.isCombinableWithRemedialAction-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 20 ; + sh:path nc:AssessedElement.isCombinableWithRemedialAction ; + sh:severity sh:Violation . + +ae:AssessedElement.SecuredForRegion-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ae:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AssessedElement.SecuredForRegion-cardinality" ; + sh:order 22 ; + sh:path nc:AssessedElement.SecuredForRegion ; + sh:severity sh:Violation . + +ae:AssessedElementWithContingency.AssessedElement-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ae:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "AssessedElementWithContingency.AssessedElement-cardinality" ; + sh:order 0 ; + sh:path nc:AssessedElementWithContingency.AssessedElement ; + sh:severity sh:Violation . + +ae:AssessedElement.inBaseCase-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ae:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "AssessedElement.inBaseCase-cardinality" ; + sh:order 2 ; + sh:path nc:AssessedElement.inBaseCase ; + sh:severity sh:Violation . + +ae:AssessedElementWithRemedialAction.combinationConstraintKind-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ae:DatatypesGroup ; + sh:in ( nc:ElementCombinationConstraintKind.considered nc:ElementCombinationConstraintKind.included nc:ElementCombinationConstraintKind.excluded ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "AssessedElementWithRemedialAction.combinationConstraintKind-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path nc:AssessedElementWithRemedialAction.combinationConstraintKind ; + sh:severity sh:Violation . + +ae:AssessedElementWithContingency.mRID-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ae:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "AssessedElementWithContingency.mRID-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path nc:AssessedElementWithContingency.mRID ; + sh:severity sh:Violation . + +ido:CardinalityGroup rdf:type sh:PropertyGroup ; + rdfs:label "CardinalityIO" ; + sh:order 0 . + +ae:AssessedElementWithRemedialAction.AssessedElement-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group ae:AssociationsGroup ; + sh:in ( nc:AssessedElement ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:AssessedElement" ; + sh:name "AssessedElementWithRemedialAction.AssessedElement-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path ( nc:AssessedElementWithRemedialAction.AssessedElement rdf:type ) ; + sh:severity sh:Violation . + +ae:AssessedElementWithContingency.combinationConstraintKind-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ae:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "AssessedElementWithContingency.combinationConstraintKind-cardinality" ; + sh:order 2 ; + sh:path nc:AssessedElementWithContingency.combinationConstraintKind ; + sh:severity sh:Violation . + +ae:AssessedElement.inBaseCase-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ae:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "AssessedElement.inBaseCase-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path nc:AssessedElement.inBaseCase ; + sh:severity sh:Violation . + +ae:AssessedElementWithContingency.mRID-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ae:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "AssessedElementWithContingency.mRID-cardinality" ; + sh:order 4 ; + sh:path nc:AssessedElementWithContingency.mRID ; + sh:severity sh:Violation . + +ae:AssessedElement.normalScannedThresholdMargin-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ae:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AssessedElement.normalScannedThresholdMargin-cardinality" ; + sh:order 4 ; + sh:path nc:AssessedElement.normalScannedThresholdMargin ; + sh:severity sh:Violation . + +ae:AssessedElement.normalScannedThresholdMargin-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ae:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "AssessedElement.normalScannedThresholdMargin-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path nc:AssessedElement.normalScannedThresholdMargin ; + sh:severity sh:Violation . + +ae:AssessedElementWithRemedialAction.normalEnabled-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ae:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "AssessedElementWithRemedialAction.normalEnabled-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path nc:AssessedElementWithRemedialAction.normalEnabled ; + sh:severity sh:Violation . + +ido:IdentifiedObject.mRID-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ido:CardinalityIO ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "IdentifiedObject.mRID-cardinality" ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.mRID ; + sh:severity sh:Violation . + +ae:AssessedElementWithRemedialAction.AssessedElement-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ae:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "AssessedElementWithRemedialAction.AssessedElement-cardinality" ; + sh:order 1 ; + sh:path nc:AssessedElementWithRemedialAction.AssessedElement ; + sh:severity sh:Violation . + +ae:AssessedElement.OperationalLimit-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ae:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AssessedElement.OperationalLimit-cardinality" ; + sh:order 5 ; + sh:path nc:AssessedElement.OperationalLimit ; + sh:severity sh:Violation . + +ae:AssessedElementWithRemedialAction.normalEnabled-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ae:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AssessedElementWithRemedialAction.normalEnabled-cardinality" ; + sh:order 4 ; + sh:path nc:AssessedElementWithRemedialAction.normalEnabled ; + sh:severity sh:Violation . + +ae:AssessedElement.exclusionReason-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ae:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AssessedElement.exclusionReason-cardinality" ; + sh:order 21 ; + sh:path nc:AssessedElement.exclusionReason ; + sh:severity sh:Violation . + +ae:AssessedElement.AssessedSystemOperator-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ae:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "AssessedElement.AssessedSystemOperator-cardinality" ; + sh:order 14 ; + sh:path nc:AssessedElement.AssessedSystemOperator ; + sh:severity sh:Violation . + +ae:AssessedElement.targetRemainingAvailableMargin-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ae:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AssessedElement.targetRemainingAvailableMargin-cardinality" ; + sh:order 15 ; + sh:path nc:AssessedElement.targetRemainingAvailableMargin ; + sh:severity sh:Violation . + +ae:AssessedElement.isCritical-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ae:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AssessedElement.isCritical-cardinality" ; + sh:order 12 ; + sh:path nc:AssessedElement.isCritical ; + sh:severity sh:Violation . + +ae:CardinalityGroup rdf:type sh:PropertyGroup ; + rdfs:label "Cardinality" ; + sh:order 0 . + +ae:AssessedElement.isCombinableWithContingency-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ae:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AssessedElement.isCombinableWithContingency-cardinality" ; + sh:order 9 ; + sh:path nc:AssessedElement.isCombinableWithContingency ; + sh:severity sh:Violation . + +ae:AssessedElement.isCombinableWithContingency-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ae:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "AssessedElement.isCombinableWithContingency-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 9 ; + sh:path nc:AssessedElement.isCombinableWithContingency ; + sh:severity sh:Violation . + +ido:IdentifiedObject.mRID-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ido:DatatypesGroupIO ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "IdentifiedObject.mRID-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.mRID ; + sh:severity sh:Violation . + +ae:AssessedElement.flowReliabilityMargin-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ae:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AssessedElement.flowReliabilityMargin-cardinality" ; + sh:order 10 ; + sh:path nc:AssessedElement.flowReliabilityMargin ; + sh:severity sh:Violation . + +ae:AssessedElement.isCrossBorderRelevant-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ae:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AssessedElement.isCrossBorderRelevant-cardinality" ; + sh:order 0 ; + sh:path nc:AssessedElement.isCrossBorderRelevant ; + sh:severity sh:Violation . + +ae:AssessedElement.normalEnabled-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ae:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "AssessedElement.normalEnabled-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:AssessedElement.normalEnabled ; + sh:severity sh:Violation . + +ae:AssessedElement.normalAppointedMargin-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ae:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "AssessedElement.normalAppointedMargin-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 8 ; + sh:path nc:AssessedElement.normalAppointedMargin ; + sh:severity sh:Violation . + +ae:AssessedElement.DCTieCorridor-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ae:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AssessedElement.DCTieCorridor-cardinality" ; + sh:order 3 ; + sh:path nc:AssessedElement.DCTieCorridor ; + sh:severity sh:Violation . diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/AvailabilityScheduleProfile_v2_2_SHACL.ttl b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/AvailabilityScheduleProfile_v2_2_SHACL.ttl new file mode 100644 index 0000000000..1773e0215f --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/AvailabilityScheduleProfile_v2_2_SHACL.ttl @@ -0,0 +1,697 @@ +@base . +@prefix adms: . +@prefix as: . +@prefix cim: . +@prefix cims: . +@prefix dash: . +@prefix dc: . +@prefix dcat: . +@prefix dcterms: . +@prefix dm: . +@prefix eu: . +@prefix eumd: . +@prefix euvoc: . +@prefix ido: . +@prefix md: . +@prefix nc: . +@prefix owl: . +@prefix prof: . +@prefix profcim: . +@prefix prov: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix skos: . +@prefix xsd: . + +as:AvailabilityContainer + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.description-cardinality , as:AvailabilityPowerSystemFunction.AvailabilityGroup-valueType , ido:IdentifiedObject.description-datatype , as:AvailabilityPowerSystemFunction.kind-cardinality , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.mRID-cardinality , as:AvailabilityPowerSystemFunction.AvailabilitySchedule-valueType , as:AvailabilityPowerSystemFunction.AvailabilityGroup-cardinality , ido:IdentifiedObject.mRID-datatype , as:AvailabilityContainer.EquipmentContainer-cardinality , as:AvailabilityPowerSystemFunction.kind-datatype , ido:IdentifiedObject.name-cardinality , as:AvailabilityPowerSystemFunction.AvailabilitySchedule-cardinality ; + sh:targetClass nc:AvailabilityContainer . + +as:EventTimePoint.EventSchedule-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group as:AssociationsGroup ; + sh:in ( nc:EventSchedule ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:EventSchedule" ; + sh:name "EventTimePoint.EventSchedule-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path ( nc:EventTimePoint.EventSchedule rdf:type ) ; + sh:severity sh:Violation . + +as:AvailabilityExceptionalLimit.value-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group as:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "AvailabilityExceptionalLimit.value-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:AvailabilityExceptionalLimit.value ; + sh:severity sh:Violation . + +as:AvailabilitySchedule.maxRestitutionDuration-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group as:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AvailabilitySchedule.maxRestitutionDuration-cardinality" ; + sh:order 0 ; + sh:path nc:AvailabilitySchedule.maxRestitutionDuration ; + sh:severity sh:Violation . + +as:CardinalityGroup rdf:type sh:PropertyGroup ; + rdfs:label "Cardinality" ; + sh:order 0 . + +as:AvailabilityEnabled.AssessedElement-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group as:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AvailabilityEnabled.AssessedElement-cardinality" ; + sh:order 1 ; + sh:path nc:AvailabilityEnabled.AssessedElement ; + sh:severity sh:Violation . + +as:AvailabilityEquipment + rdf:type sh:NodeShape ; + sh:property as:AvailabilityPowerSystemFunction.AvailabilityGroup-cardinality , as:AvailabilityEquipment.Equipment-cardinality , ido:IdentifiedObject.name-datatype , as:AvailabilityPowerSystemFunction.kind-datatype , as:AvailabilityPowerSystemFunction.AvailabilitySchedule-cardinality , as:AvailabilityPowerSystemFunction.kind-cardinality , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.mRID-cardinality , as:AvailabilityPowerSystemFunction.AvailabilityGroup-valueType , ido:IdentifiedObject.description-datatype , as:AvailabilityPowerSystemFunction.AvailabilitySchedule-valueType ; + sh:targetClass nc:AvailabilityEquipment . + +as:EventTimePoint.isActive-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group as:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "EventTimePoint.isActive-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:EventTimePoint.isActive ; + sh:severity sh:Violation . + +as:AvailabilitySchedule.causeKind-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group as:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "AvailabilitySchedule.causeKind-cardinality" ; + sh:order 12 ; + sh:path nc:AvailabilitySchedule.causeKind ; + sh:severity sh:Violation . + +as:AvailabilityRemedialActionScheme + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.name-datatype , as:AvailabilityPowerSystemFunction.kind-cardinality , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.description-cardinality , as:AvailabilityPowerSystemFunction.AvailabilitySchedule-cardinality , as:AvailabilityPowerSystemFunction.AvailabilityGroup-cardinality , as:AvailabilityPowerSystemFunction.kind-datatype , as:AvailabilityRemedialActionScheme.RemedialActionScheme-cardinality , as:AvailabilityPowerSystemFunction.AvailabilityGroup-valueType , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.description-datatype , as:AvailabilityPowerSystemFunction.AvailabilitySchedule-valueType ; + sh:targetClass nc:AvailabilityRemedialActionScheme . + +as:AvailabilitySchedule.PrioritySchedule-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group as:AssociationsGroup ; + sh:in ( nc:AvailabilitySchedule ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:AvailabilitySchedule" ; + sh:name "AvailabilitySchedule.PrioritySchedule-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 10 ; + sh:path ( nc:AvailabilitySchedule.PrioritySchedule rdf:type ) ; + sh:severity sh:Violation . + +as:AvailabilitySchedule.maxRestitutionDuration-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:duration ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group as:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "AvailabilitySchedule.maxRestitutionDuration-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:AvailabilitySchedule.maxRestitutionDuration ; + sh:severity sh:Violation . + +as:BaseTimeSeries.interpolationKind-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group as:DatatypesGroup ; + sh:in ( nc:TimeSeriesInterpolationKind.previous ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "BaseTimeSeries.interpolationKind-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 3 ; + sh:path nc:BaseTimeSeries.interpolationKind ; + sh:severity sh:Violation . + +ido:DatatypesGroupIO rdf:type sh:PropertyGroup ; + rdfs:label "DatatypesIO" ; + sh:order 1 . + +ido:IdentifiedObject.description-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ido:CardinalityIO ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "IdentifiedObject.description-cardinality" ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.description ; + sh:severity sh:Violation . + +as:AvailabilityEnabled.enabled-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group as:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "AvailabilityEnabled.enabled-cardinality" ; + sh:order 2 ; + sh:path nc:AvailabilityEnabled.enabled ; + sh:severity sh:Violation . + +as:AvailabilityPowerSystemFunction.AvailabilityGroup-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group as:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AvailabilityPowerSystemFunction.AvailabilityGroup-cardinality" ; + sh:order 3 ; + sh:path nc:AvailabilityPowerSystemFunction.AvailabilityGroup ; + sh:severity sh:Violation . + +as:AvailabilityRemedialActionScheme.RemedialActionScheme-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group as:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "AvailabilityRemedialActionScheme.RemedialActionScheme-cardinality" ; + sh:order 0 ; + sh:path nc:AvailabilityRemedialActionScheme.RemedialActionScheme ; + sh:severity sh:Violation . + +ido:IdentifiedObject.name-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ido:CardinalityIO ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "IdentifiedObject.name-cardinality" ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.name ; + sh:severity sh:Violation . + +as:EventTimePoint rdf:type sh:NodeShape ; + sh:property as:EventTimePoint.EventSchedule-valueType , as:EventTimePoint.EventSchedule-cardinality , as:EventTimePoint.isActive-datatype , as:EventTimePoint.isActive-cardinality , as:EventTimePoint.atTime-datatype , as:EventTimePoint.atTime-cardinality ; + sh:targetClass nc:EventTimePoint . + +ido:IdentifiedObject.description-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ido:DatatypesGroupIO ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "IdentifiedObject.description-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.description ; + sh:severity sh:Violation . + +as:AvailabilitySchedule.priority-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:integer ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group as:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "AvailabilitySchedule.priority-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path nc:AvailabilitySchedule.priority ; + sh:severity sh:Violation . + +as:AvailabilitySchedule.RemedialAction-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group as:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AvailabilitySchedule.RemedialAction-cardinality" ; + sh:order 1 ; + sh:path nc:AvailabilitySchedule.RemedialAction ; + sh:severity sh:Violation . + +as:AvailabilitySchedule.cancelledDateTime-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group as:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AvailabilitySchedule.cancelledDateTime-cardinality" ; + sh:order 7 ; + sh:path nc:AvailabilitySchedule.cancelledDateTime ; + sh:severity sh:Violation . + +as:DatatypesGroup rdf:type sh:PropertyGroup ; + rdfs:label "Datatypes" ; + sh:order 1 . + +as:AvailabilityPowerSystemFunction.kind-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group as:DatatypesGroup ; + sh:in ( nc:AvailabilityFunctionKind.underTesting nc:AvailabilityFunctionKind.outOfService nc:AvailabilityFunctionKind.inService ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "AvailabilityPowerSystemFunction.kind-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path nc:AvailabilityPowerSystemFunction.kind ; + sh:severity sh:Violation . + +as:AvailabilitySchedule.ActualSchedule-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group as:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AvailabilitySchedule.ActualSchedule-cardinality" ; + sh:order 4 ; + sh:path nc:AvailabilitySchedule.ActualSchedule ; + sh:severity sh:Violation . + +as:AvailabilitySchedule.causeDescription-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group as:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AvailabilitySchedule.causeDescription-cardinality" ; + sh:order 5 ; + sh:path nc:AvailabilitySchedule.causeDescription ; + sh:severity sh:Violation . + +as:AvailabilityPowerSystemFunction.AvailabilitySchedule-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group as:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "AvailabilityPowerSystemFunction.AvailabilitySchedule-cardinality" ; + sh:order 1 ; + sh:path nc:AvailabilityPowerSystemFunction.AvailabilitySchedule ; + sh:severity sh:Violation . + +as:AvailabilityEquipment.Equipment-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group as:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "AvailabilityEquipment.Equipment-cardinality" ; + sh:order 0 ; + sh:path nc:AvailabilityEquipment.Equipment ; + sh:severity sh:Violation . + +ido:IdentifiedObject.name-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ido:DatatypesGroupIO ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "IdentifiedObject.name-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.name ; + sh:severity sh:Violation . + +as:AvailabilityExceptionalLimit + rdf:type sh:NodeShape ; + sh:property as:AvailabilityPowerSystemFunction.kind-datatype , ido:IdentifiedObject.description-cardinality , as:AvailabilityExceptionalLimit.value-cardinality , as:AvailabilityPowerSystemFunction.kind-cardinality , as:AvailabilityPowerSystemFunction.AvailabilitySchedule-cardinality , as:AvailabilityPowerSystemFunction.AvailabilityGroup-valueType , ido:IdentifiedObject.description-datatype , as:AvailabilityPowerSystemFunction.AvailabilitySchedule-valueType , ido:IdentifiedObject.name-datatype , as:AvailabilityExceptionalLimit.value-datatype , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.mRID-datatype , as:AvailabilityExceptionalLimit.OperationalLimit-cardinality , ido:IdentifiedObject.name-cardinality , as:AvailabilityPowerSystemFunction.AvailabilityGroup-cardinality ; + sh:targetClass nc:AvailabilityExceptionalLimit . + +as:BaseTimeSeries.kind-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group as:DatatypesGroup ; + sh:in ( nc:BaseTimeSeriesKind.actual nc:BaseTimeSeriesKind.schedule ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "BaseTimeSeries.kind-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 4 ; + sh:path nc:BaseTimeSeries.kind ; + sh:severity sh:Violation . + +as:EventTimePoint.atTime-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group as:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "EventTimePoint.atTime-cardinality" ; + sh:order 0 ; + sh:path nc:EventTimePoint.atTime ; + sh:severity sh:Violation . + +as:BaseTimeSeries.kind-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group as:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "BaseTimeSeries.kind-cardinality" ; + sh:order 4 ; + sh:path nc:BaseTimeSeries.kind ; + sh:severity sh:Violation . + +as:AvailabilitySchedule.causeKind-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group as:DatatypesGroup ; + sh:in ( nc:AvailabilityScheduleCauseKind.other nc:AvailabilityScheduleCauseKind.commissioning nc:AvailabilityScheduleCauseKind.worksInProximity nc:AvailabilityScheduleCauseKind.maintenance nc:AvailabilityScheduleCauseKind.environmentalCondition nc:AvailabilityScheduleCauseKind.refurbishment nc:AvailabilityScheduleCauseKind.functionalControl nc:AvailabilityScheduleCauseKind.decommissioning ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "AvailabilitySchedule.causeKind-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 12 ; + sh:path nc:AvailabilitySchedule.causeKind ; + sh:severity sh:Violation . + +as:AvailabilityEnabled.enabled-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group as:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "AvailabilityEnabled.enabled-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path nc:AvailabilityEnabled.enabled ; + sh:severity sh:Violation . + +as:AvailabilityExceptionalLimit.OperationalLimit-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group as:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "AvailabilityExceptionalLimit.OperationalLimit-cardinality" ; + sh:order 1 ; + sh:path nc:AvailabilityExceptionalLimit.OperationalLimit ; + sh:severity sh:Violation . + +as:AvailabilityGroup rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.mRID-cardinality ; + sh:targetClass nc:AvailabilityGroup . + +as:EventTimePoint.isActive-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group as:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "EventTimePoint.isActive-cardinality" ; + sh:order 1 ; + sh:path nc:EventTimePoint.isActive ; + sh:severity sh:Violation . + +as:AvailabilityPowerSystemFunction.kind-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group as:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "AvailabilityPowerSystemFunction.kind-cardinality" ; + sh:order 2 ; + sh:path nc:AvailabilityPowerSystemFunction.kind ; + sh:severity sh:Violation . + +ido:CardinalityGroup rdf:type sh:PropertyGroup ; + rdfs:label "CardinalityIO" ; + sh:order 0 . + +as:AvailabilitySchedule.GridStateAlterationCollection-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group as:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AvailabilitySchedule.GridStateAlterationCollection-cardinality" ; + sh:order 9 ; + sh:path nc:AvailabilitySchedule.GridStateAlterationCollection ; + sh:severity sh:Violation . + +as:AvailabilitySchedule.priority-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group as:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "AvailabilitySchedule.priority-cardinality" ; + sh:order 3 ; + sh:path nc:AvailabilitySchedule.priority ; + sh:severity sh:Violation . + +as:BaseTimeSeries.interpolationKind-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group as:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "BaseTimeSeries.interpolationKind-cardinality" ; + sh:order 3 ; + sh:path nc:BaseTimeSeries.interpolationKind ; + sh:severity sh:Violation . + +as:AvailabilityPowerSystemFunction.AvailabilityGroup-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group as:AssociationsGroup ; + sh:in ( nc:AvailabilityGroup ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:AvailabilityGroup" ; + sh:name "AvailabilityPowerSystemFunction.AvailabilityGroup-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 3 ; + sh:path ( nc:AvailabilityPowerSystemFunction.AvailabilityGroup rdf:type ) ; + sh:severity sh:Violation . + +as:EventTimePoint.atTime-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:dateTime ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group as:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "EventTimePoint.atTime-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:EventTimePoint.atTime ; + sh:severity sh:Violation . + +as:AvailabilityExceptionalLimit.value-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group as:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "AvailabilityExceptionalLimit.value-cardinality" ; + sh:order 0 ; + sh:path nc:AvailabilityExceptionalLimit.value ; + sh:severity sh:Violation . + +ido:IdentifiedObject.mRID-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ido:CardinalityIO ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "IdentifiedObject.mRID-cardinality" ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.mRID ; + sh:severity sh:Violation . + +as:AvailabilitySchedule + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.mRID-datatype , as:AvailabilitySchedule.causeKind-cardinality , as:AvailabilitySchedule.RemedialAction-cardinality , as:AvailabilitySchedule.DependentOnSchedule-cardinality , ido:IdentifiedObject.name-cardinality , as:AvailabilitySchedule.causeDescription-cardinality , as:AvailabilitySchedule.ActualSchedule-valueType , as:AvailabilitySchedule.priority-datatype , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.description-datatype , as:AvailabilitySchedule.cancelledDateTime-cardinality , as:AvailabilitySchedule.priority-cardinality , as:AvailabilitySchedule.GridStateAlterationCollection-cardinality , as:AvailabilitySchedule.PrioritySchedule-cardinality , as:AvailabilitySchedule.DependentOnSchedule-valueType , as:AvailabilitySchedule.ActualSchedule-cardinality , as:AvailabilitySchedule.causeDescription-datatype , ido:IdentifiedObject.description-cardinality , as:AvailabilitySchedule.PlannedSchedule-valueType , as:AvailabilitySchedule.causeKind-datatype , as:AvailabilitySchedule.cancelledDateTime-datatype , as:AvailabilitySchedule.PrioritySchedule-valueType , as:AvailabilitySchedule.maxRestitutionDuration-datatype , as:AvailabilitySchedule.maxRestitutionDuration-cardinality , as:AvailabilitySchedule.PlannedSchedule-cardinality ; + sh:targetClass nc:AvailabilitySchedule . + +as:EventTimePoint.EventSchedule-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group as:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "EventTimePoint.EventSchedule-cardinality" ; + sh:order 2 ; + sh:path nc:EventTimePoint.EventSchedule ; + sh:severity sh:Violation . + +as:AvailabilityPowerSystemFunction.AvailabilitySchedule-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group as:AssociationsGroup ; + sh:in ( nc:AvailabilitySchedule ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:AvailabilitySchedule" ; + sh:name "AvailabilityPowerSystemFunction.AvailabilitySchedule-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path ( nc:AvailabilityPowerSystemFunction.AvailabilitySchedule rdf:type ) ; + sh:severity sh:Violation . + +as:AvailabilitySchedule.ActualSchedule-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group as:AssociationsGroup ; + sh:in ( nc:EventSchedule ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:EventSchedule" ; + sh:name "AvailabilitySchedule.ActualSchedule-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 4 ; + sh:path ( nc:AvailabilitySchedule.ActualSchedule rdf:type ) ; + sh:severity sh:Violation . + +as:AssociationsGroup rdf:type sh:PropertyGroup ; + rdfs:label "Associations" ; + sh:order 2 . + +as:AvailabilitySchedule.causeDescription-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group as:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "AvailabilitySchedule.causeDescription-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 5 ; + sh:path nc:AvailabilitySchedule.causeDescription ; + sh:severity sh:Violation . + +as:AvailabilitySchedule.PlannedSchedule-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group as:AssociationsGroup ; + sh:in ( nc:EventSchedule ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:EventSchedule" ; + sh:name "AvailabilitySchedule.PlannedSchedule-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 13 ; + sh:path ( nc:AvailabilitySchedule.PlannedSchedule rdf:type ) ; + sh:severity sh:Violation . + +as:AvailabilityContainer.EquipmentContainer-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group as:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "AvailabilityContainer.EquipmentContainer-cardinality" ; + sh:order 0 ; + sh:path nc:AvailabilityContainer.EquipmentContainer ; + sh:severity sh:Violation . + +as:AvailabilityEnabled + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.mRID-cardinality , as:AvailabilityEnabled.enabled-cardinality , as:AvailabilityPowerSystemFunction.AvailabilitySchedule-cardinality , as:AvailabilityPowerSystemFunction.AvailabilityGroup-cardinality , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.name-datatype , as:AvailabilityPowerSystemFunction.kind-datatype , as:AvailabilityPowerSystemFunction.kind-cardinality , as:AvailabilityPowerSystemFunction.AvailabilityGroup-valueType , ido:IdentifiedObject.description-datatype , as:AvailabilityPowerSystemFunction.AvailabilitySchedule-valueType , as:AvailabilityEnabled.enabled-datatype , as:AvailabilityEnabled.AssessedElement-cardinality , as:AvailabilityEnabled.GridStateAlteration-cardinality ; + sh:targetClass nc:AvailabilityEnabled . + +as:AvailabilitySchedule.PrioritySchedule-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group as:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AvailabilitySchedule.PrioritySchedule-cardinality" ; + sh:order 10 ; + sh:path nc:AvailabilitySchedule.PrioritySchedule ; + sh:severity sh:Violation . + +as:AvailabilitySchedule.PlannedSchedule-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group as:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AvailabilitySchedule.PlannedSchedule-cardinality" ; + sh:order 13 ; + sh:path nc:AvailabilitySchedule.PlannedSchedule ; + sh:severity sh:Violation . + +ido:IdentifiedObject.mRID-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ido:DatatypesGroupIO ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "IdentifiedObject.mRID-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.mRID ; + sh:severity sh:Violation . + +as:EventSchedule rdf:type sh:NodeShape ; + sh:property as:BaseTimeSeries.kind-datatype , ido:IdentifiedObject.name-datatype , as:BaseTimeSeries.kind-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.mRID-datatype , as:BaseTimeSeries.interpolationKind-datatype , as:BaseTimeSeries.interpolationKind-cardinality , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.mRID-cardinality ; + sh:targetClass nc:EventSchedule . + +as:AvailabilityEnabled.GridStateAlteration-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group as:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AvailabilityEnabled.GridStateAlteration-cardinality" ; + sh:order 0 ; + sh:path nc:AvailabilityEnabled.GridStateAlteration ; + sh:severity sh:Violation . + +as:AvailabilitySchedule.DependentOnSchedule-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group as:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AvailabilitySchedule.DependentOnSchedule-cardinality" ; + sh:order 8 ; + sh:path nc:AvailabilitySchedule.DependentOnSchedule ; + sh:severity sh:Violation . + +as:AvailabilitySchedule.cancelledDateTime-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:dateTime ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group as:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "AvailabilitySchedule.cancelledDateTime-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 7 ; + sh:path nc:AvailabilitySchedule.cancelledDateTime ; + sh:severity sh:Violation . + +as:AvailabilitySchedule.DependentOnSchedule-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group as:AssociationsGroup ; + sh:in ( nc:AvailabilitySchedule ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:AvailabilitySchedule" ; + sh:name "AvailabilitySchedule.DependentOnSchedule-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 8 ; + sh:path ( nc:AvailabilitySchedule.DependentOnSchedule rdf:type ) ; + sh:severity sh:Violation . diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/ContingencyProfile_v2_2_SHACL.ttl b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/ContingencyProfile_v2_2_SHACL.ttl new file mode 100644 index 0000000000..849a15d967 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/ContingencyProfile_v2_2_SHACL.ttl @@ -0,0 +1,293 @@ +@base . +@prefix adms: . +@prefix cim: . +@prefix cims: . +@prefix co: . +@prefix dash: . +@prefix dc: . +@prefix dcat: . +@prefix dcterms: . +@prefix dm: . +@prefix eu: . +@prefix eumd: . +@prefix euvoc: . +@prefix ido: . +@prefix md: . +@prefix nc: . +@prefix owl: . +@prefix prof: . +@prefix profcim: . +@prefix prov: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix skos: . +@prefix xsd: . + +co:ExceptionalContingency.kind-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group co:DatatypesGroup ; + sh:in ( nc:ContingencyConditionKind.malfunction nc:ContingencyConditionKind.geographicalLocation nc:ContingencyConditionKind.design nc:ContingencyConditionKind.operational nc:ContingencyConditionKind.environmental ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "ExceptionalContingency.kind-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path nc:ExceptionalContingency.kind ; + sh:severity sh:Violation . + +co:Contingency.EquipmentOperator-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group co:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Contingency.EquipmentOperator-cardinality" ; + sh:order 4 ; + sh:path nc:Contingency.EquipmentOperator ; + sh:severity sh:Violation . + +co:ContingencyElement.Contingency-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group co:AssociationsGroup ; + sh:in ( nc:OutOfRangeContingency nc:OrdinaryContingency nc:ExceptionalContingency ) ; + sh:message "One of the following occurs: 1) The value type is not IRI; 2) The value type is not the right class." ; + sh:name "ContingencyElement.Contingency-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path ( cim:ContingencyElement.Contingency rdf:type ) ; + sh:severity sh:Violation . + +co:Contingency.normalProbability-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group co:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Contingency.normalProbability-cardinality" ; + sh:order 1 ; + sh:path nc:Contingency.normalProbability ; + sh:severity sh:Violation . + +co:Contingency.normalMustStudy-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group co:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Contingency.normalMustStudy-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path nc:Contingency.normalMustStudy ; + sh:severity sh:Violation . + +co:Contingency.normalMustStudy-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group co:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "Contingency.normalMustStudy-cardinality" ; + sh:order 3 ; + sh:path nc:Contingency.normalMustStudy ; + sh:severity sh:Violation . + +co:CardinalityGroup rdf:type sh:PropertyGroup ; + rdfs:label "Cardinality" ; + sh:order 0 . + +ido:DatatypesGroupIO rdf:type sh:PropertyGroup ; + rdfs:label "DatatypesIO" ; + sh:order 1 . + +ido:IdentifiedObject.description-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ido:CardinalityIO ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "IdentifiedObject.description-cardinality" ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.description ; + sh:severity sh:Violation . + +co:OrdinaryContingency + rdf:type sh:NodeShape ; + sh:property co:Contingency.SimulationEvents-cardinality , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.mRID-datatype , co:Contingency.normalProbability-cardinality , co:Contingency.normalProbability-datatype , ido:IdentifiedObject.name-datatype , co:Contingency.normalMustStudy-cardinality , ido:IdentifiedObject.name-cardinality , co:Contingency.normalMustStudy-datatype , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.mRID-cardinality , co:Contingency.EquipmentOperator-cardinality ; + sh:targetClass nc:OrdinaryContingency . + +ido:IdentifiedObject.name-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ido:CardinalityIO ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "IdentifiedObject.name-cardinality" ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.name ; + sh:severity sh:Violation . + +co:ContingencyEquipment.contingentStatus-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group co:DatatypesGroup ; + sh:in ( cim:ContingencyEquipmentStatusKind.inService cim:ContingencyEquipmentStatusKind.outOfService ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "ContingencyEquipment.contingentStatus-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path cim:ContingencyEquipment.contingentStatus ; + sh:severity sh:Violation . + +ido:IdentifiedObject.description-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ido:DatatypesGroupIO ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "IdentifiedObject.description-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.description ; + sh:severity sh:Violation . + +co:Contingency.normalProbability-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group co:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Contingency.normalProbability-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:Contingency.normalProbability ; + sh:severity sh:Violation . + +co:Contingency.SimulationEvents-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group co:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Contingency.SimulationEvents-cardinality" ; + sh:order 2 ; + sh:path cim:Contingency.SimulationEvents ; + sh:severity sh:Violation . + +co:OutOfRangeContingency + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.name-cardinality , co:Contingency.normalMustStudy-cardinality , co:Contingency.normalProbability-cardinality , co:Contingency.EquipmentOperator-cardinality , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.description-datatype , co:Contingency.SimulationEvents-cardinality , co:Contingency.normalMustStudy-datatype , co:Contingency.normalProbability-datatype , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.mRID-cardinality ; + sh:targetClass nc:OutOfRangeContingency . + +co:ContingencyElement.Contingency-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group co:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "ContingencyElement.Contingency-cardinality" ; + sh:order 2 ; + sh:path cim:ContingencyElement.Contingency ; + sh:severity sh:Violation . + +ido:IdentifiedObject.name-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ido:DatatypesGroupIO ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "IdentifiedObject.name-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.name ; + sh:severity sh:Violation . + +co:AssociationsGroup rdf:type sh:PropertyGroup ; + rdfs:label "Associations" ; + sh:order 2 . + +ido:CardinalityGroup rdf:type sh:PropertyGroup ; + rdfs:label "CardinalityIO" ; + sh:order 0 . + +co:ExceptionalContingency.kind-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group co:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "ExceptionalContingency.kind-cardinality" ; + sh:order 0 ; + sh:path nc:ExceptionalContingency.kind ; + sh:severity sh:Violation . + +co:ContingencyEquipment + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.name-datatype , co:ContingencyEquipment.contingentStatus-datatype , ido:IdentifiedObject.mRID-cardinality , co:ContingencyEquipment.Equipment-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.mRID-datatype , co:ContingencyElement.Contingency-cardinality , ido:IdentifiedObject.name-cardinality , co:ContingencyEquipment.contingentStatus-cardinality , ido:IdentifiedObject.description-cardinality ; + sh:targetClass cim:ContingencyEquipment . + +ido:IdentifiedObject.mRID-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ido:CardinalityIO ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "IdentifiedObject.mRID-cardinality" ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.mRID ; + sh:severity sh:Violation . + +co:ContingencyEquipment.Equipment-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group co:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "ContingencyEquipment.Equipment-cardinality" ; + sh:order 0 ; + sh:path cim:ContingencyEquipment.Equipment ; + sh:severity sh:Violation . + +co:ContingencyEquipment.contingentStatus-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group co:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "ContingencyEquipment.contingentStatus-cardinality" ; + sh:order 1 ; + sh:path cim:ContingencyEquipment.contingentStatus ; + sh:severity sh:Violation . + +co:ContingencyElement.Contingency-valueTypeNodeShape + rdf:type sh:NodeShape ; + sh:property co:ContingencyElement.Contingency-valueType ; + sh:targetClass cim:ContingencyEquipment . + +ido:IdentifiedObject.mRID-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ido:DatatypesGroupIO ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "IdentifiedObject.mRID-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.mRID ; + sh:severity sh:Violation . + +co:DatatypesGroup rdf:type sh:PropertyGroup ; + rdfs:label "Datatypes" ; + sh:order 1 . + +co:ExceptionalContingency + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.mRID-datatype , co:Contingency.normalProbability-cardinality , co:Contingency.normalMustStudy-cardinality , ido:IdentifiedObject.description-datatype , co:Contingency.normalProbability-datatype , co:Contingency.EquipmentOperator-cardinality , ido:IdentifiedObject.name-cardinality , co:ExceptionalContingency.kind-datatype , co:ExceptionalContingency.kind-cardinality , co:Contingency.SimulationEvents-cardinality , ido:IdentifiedObject.mRID-cardinality , co:Contingency.normalMustStudy-datatype , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.description-cardinality ; + sh:targetClass nc:ExceptionalContingency . diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/DocumentHeaderProfile_v2_2_SHACL.ttl b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/DocumentHeaderProfile_v2_2_SHACL.ttl new file mode 100644 index 0000000000..06823184c7 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/DocumentHeaderProfile_v2_2_SHACL.ttl @@ -0,0 +1,980 @@ +@base . +@prefix adms: . +@prefix cim: . +@prefix cims: . +@prefix dash: . +@prefix dc: . +@prefix dcat: . +@prefix dcterms: . +@prefix dh: . +@prefix dm: . +@prefix eu: . +@prefix eumd: . +@prefix euvoc: . +@prefix ido: . +@prefix md: . +@prefix nc: . +@prefix owl: . +@prefix prof: . +@prefix profcim: . +@prefix prov: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix skos: . +@prefix xsd: . + +dh:Model.description-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group dh:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Model.description-cardinality" ; + sh:order 19 ; + sh:path dcterms:Model.description ; + sh:severity sh:Violation . + +dh:Model.startDate-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group dh:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Model.startDate-cardinality" ; + sh:order 33 ; + sh:path dcat:Model.startDate ; + sh:severity sh:Violation . + +dh:Model.accessRights-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:anyURI ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group dh:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Model.accessRights-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path dcterms:Model.accessRights ; + sh:severity sh:Violation . + +dh:Model.serviceLocation-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group dh:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Model.serviceLocation-cardinality" ; + sh:order 5 ; + sh:path eumd:Model.serviceLocation ; + sh:severity sh:Violation . + +dh:Model.DependentOn-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group dh:AssociationsGroup ; + sh:in ( dm:DifferenceModel md:FullModel ) ; + sh:message "One of the following occurs: 1) The value type is not IRI; 2) The value type is not the right class." ; + sh:name "Model.DependentOn-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 25 ; + sh:path ( cim:Model.DependentOn rdf:type ) ; + sh:severity sh:Violation . + +dh:Model.license-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group dh:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Model.license-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 32 ; + sh:path dcterms:Model.license ; + sh:severity sh:Violation . + +dh:CardinalityGroup rdf:type sh:PropertyGroup ; + rdfs:label "Cardinality" ; + sh:order 0 . + +dh:Model.specializationOf-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:anyURI ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group dh:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Model.specializationOf-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 30 ; + sh:path prov:Model.specializationOf ; + sh:severity sh:Violation . + +dh:Model.conformsTo-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:anyURI ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group dh:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Model.conformsTo-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path dcterms:Model.conformsTo ; + sh:severity sh:Violation . + +dh:AssociationsGroup rdf:type sh:PropertyGroup ; + rdfs:label "Associations" ; + sh:order 2 . + +dh:DifferenceModel.forwardDifferences-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group dh:DatatypesGroup ; + sh:in ( cim:Statement ) ; + sh:message "Blank node (compound datatype) violation. Either it is not a blank node (nested structure, compound datatype) or it is not the right class." ; + sh:name "DifferenceModel.forwardDifferences-datatype" ; + sh:nodeKind sh:BlankNode ; + sh:order 0 ; + sh:path ( dm:DifferenceModel.forwardDifferences rdf:type ) ; + sh:severity sh:Violation . + +dh:Model.accessRights-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group dh:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Model.accessRights-cardinality" ; + sh:order 4 ; + sh:path dcterms:Model.accessRights ; + sh:severity sh:Violation . + +dh:Model.DependentOn-valueTypeNodeShape + rdf:type sh:NodeShape ; + sh:property dh:Model.DependentOn-valueType ; + sh:targetClass dm:DifferenceModel , md:FullModel . + +ido:DatatypesGroupIO rdf:type sh:PropertyGroup ; + rdfs:label "DatatypesIO" ; + sh:order 1 . + +dh:DifferenceModel.reverseDifferences-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group dh:DatatypesGroup ; + sh:in ( cim:Statement ) ; + sh:message "Blank node (compound datatype) violation. Either it is not a blank node (nested structure, compound datatype) or it is not the right class." ; + sh:name "DifferenceModel.reverseDifferences-datatype" ; + sh:nodeKind sh:BlankNode ; + sh:order 1 ; + sh:path ( dm:DifferenceModel.reverseDifferences rdf:type ) ; + sh:severity sh:Violation . + +dh:Model.accrualPeriodicity-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:anyURI ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group dh:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Model.accrualPeriodicity-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 18 ; + sh:path dcterms:Model.accrualPeriodicity ; + sh:severity sh:Violation . + +dh:Model.versionNotes-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group dh:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Model.versionNotes-cardinality" ; + sh:order 38 ; + sh:path dm:Model.versionNotes ; + sh:severity sh:Violation . + +dh:Model.wasRevisionOf-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:anyURI ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group dh:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Model.wasRevisionOf-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 26 ; + sh:path prov:Model.wasRevisionOf ; + sh:severity sh:Violation . + +dh:DifferenceModel.preconditions-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group dh:CardinalityGroup ; + sh:message "Cardinality violation. Lower bound shall be 1" ; + sh:minCount 1 ; + sh:name "DifferenceModel.preconditions-cardinality" ; + sh:order 2 ; + sh:path dm:DifferenceModel.preconditions ; + sh:severity sh:Violation . + +dh:Model.serviceLocation-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:anyURI ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group dh:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Model.serviceLocation-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 5 ; + sh:path eumd:Model.serviceLocation ; + sh:severity sh:Violation . + +dh:Model.atLocation-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:anyURI ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group dh:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Model.atLocation-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 27 ; + sh:path prov:Model.atLocation ; + sh:severity sh:Violation . + +dh:Model.status-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:anyURI ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group dh:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Model.status-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 10 ; + sh:path euvoc:Model.status ; + sh:severity sh:Violation . + +dh:Model.identifier-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group dh:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Model.identifier-cardinality" ; + sh:order 28 ; + sh:path dcterms:Model.identifier ; + sh:severity sh:Violation . + +dh:Model.creator-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:anyURI ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group dh:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Model.creator-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 13 ; + sh:path dcterms:Model.creator ; + sh:severity sh:Violation . + +dh:Statement.subject-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group dh:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required attribute." ; + sh:minCount 1 ; + sh:name "Statement.subject-cardinality" ; + sh:order -1 ; + sh:path ( dm:DifferenceModel.forwardDifferences cim:Statement.subject ) ; + sh:severity sh:Violation . + +dh:Model.hasVersion-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group dh:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Model.hasVersion-cardinality" ; + sh:order 39 ; + sh:path dcat:Model.hasVersion ; + sh:severity sh:Violation . + +dh:Model.scenarioTime-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:dateTime ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group dh:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Model.scenarioTime-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path md:Model.scenarioTime ; + sh:severity sh:Violation . + +dh:Model.scenarioTime-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group dh:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Model.scenarioTime-cardinality" ; + sh:order 3 ; + sh:path md:Model.scenarioTime ; + sh:severity sh:Violation . + +dh:Model.atLocation-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group dh:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Model.atLocation-cardinality" ; + sh:order 27 ; + sh:path prov:Model.atLocation ; + sh:severity sh:Violation . + +dh:Model.hadPrimarySource-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:anyURI ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group dh:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Model.hadPrimarySource-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 14 ; + sh:path prov:Model.hadPrimarySource ; + sh:severity sh:Violation . + +dh:Model.accrualPeriodicity-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group dh:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Model.accrualPeriodicity-cardinality" ; + sh:order 18 ; + sh:path dcterms:Model.accrualPeriodicity ; + sh:severity sh:Violation . + +dh:Model.usedSettings-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:anyURI ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group dh:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Model.usedSettings-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 17 ; + sh:path eumd:Model.usedSettings ; + sh:severity sh:Violation . + +dh:Model.version-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group dh:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Model.version-cardinality" ; + sh:order 23 ; + sh:path dcat:Model.version ; + sh:severity sh:Violation . + +dh:DifferenceModel.forwardDifferences-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group dh:CardinalityGroup ; + sh:message "Cardinality violation. Lower bound shall be 1" ; + sh:minCount 1 ; + sh:name "DifferenceModel.forwardDifferences-cardinality" ; + sh:order 0 ; + sh:path dm:DifferenceModel.forwardDifferences ; + sh:severity sh:Violation . + +dh:Model.keyword-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group dh:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Model.keyword-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path dcat:Model.keyword ; + sh:severity sh:Violation . + +dh:Model.hasCurrentVersion-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group dh:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Model.hasCurrentVersion-cardinality" ; + sh:order 22 ; + sh:path dcat:Model.hasCurrentVersion ; + sh:severity sh:Violation . + +dh:Model.generatedAtTime-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group dh:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Model.generatedAtTime-cardinality" ; + sh:order 34 ; + sh:path prov:Model.generatedAtTime ; + sh:severity sh:Violation . + +dh:Model.previousVersion-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group dh:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Model.previousVersion-cardinality" ; + sh:order 7 ; + sh:path dcat:Model.previousVersion ; + sh:severity sh:Violation . + +dh:Model.source-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group dh:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Model.source-cardinality" ; + sh:order 35 ; + sh:path dcterms:Model.source ; + sh:severity sh:Violation . + +dh:Model.generatedAtTime-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:dateTime ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group dh:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Model.generatedAtTime-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 34 ; + sh:path prov:Model.generatedAtTime ; + sh:severity sh:Violation . + +dh:Model.isVersionOf-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group dh:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Model.isVersionOf-cardinality" ; + sh:order 6 ; + sh:path dcat:Model.isVersionOf ; + sh:severity sh:Violation . + +dh:Model.rights-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group dh:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Model.rights-cardinality" ; + sh:order 21 ; + sh:path dcterms:Model.rights ; + sh:severity sh:Violation . + +dh:Model.creator-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group dh:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Model.creator-cardinality" ; + sh:order 13 ; + sh:path dcterms:Model.creator ; + sh:severity sh:Violation . + +dh:Model.source-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:anyURI ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group dh:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Model.source-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 35 ; + sh:path dcterms:Model.source ; + sh:severity sh:Violation . + +dh:Statement.object-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group dh:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required attribute." ; + sh:minCount 1 ; + sh:name "Statement.object-cardinality" ; + sh:order 0 ; + sh:path ( dm:DifferenceModel.forwardDifferences cim:Statement.object ) ; + sh:severity sh:Violation . + +dh:Model.wasGeneratedBy-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:anyURI ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group dh:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Model.wasGeneratedBy-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 12 ; + sh:path prov:Model.wasGeneratedBy ; + sh:severity sh:Violation . + +ido:CardinalityGroup rdf:type sh:PropertyGroup ; + rdfs:label "CardinalityIO" ; + sh:order 0 . + +dh:Model.profile-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:anyURI ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group dh:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Model.profile-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 24 ; + sh:path md:Model.profile ; + sh:severity sh:Violation . + +dh:Model.wasAttributedTo-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:anyURI ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group dh:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Model.wasAttributedTo-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 8 ; + sh:path prov:Model.wasAttributedTo ; + sh:severity sh:Violation . + +dh:Model.modelingAuthoritySet-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group dh:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Model.modelingAuthoritySet-cardinality" ; + sh:order 16 ; + sh:path md:Model.modelingAuthoritySet ; + sh:severity sh:Violation . + +dh:Model.version-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group dh:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Model.version-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 23 ; + sh:path dcat:Model.version ; + sh:severity sh:Violation . + +dh:DifferenceModel rdf:type sh:NodeShape ; + sh:property dh:Model.created-cardinality , dh:Model.keyword-cardinality , dh:Model.startDate-cardinality , dh:Statement.predicate-datatype , dh:Model.modelingAuthoritySet-datatype , dh:Model.versionNotes-cardinality , dh:Model.rightsHolder-datatype , dh:Statement.subject-datatype , dh:Model.generatedAtTime-cardinality , dh:DifferenceModel.reverseDifferences-cardinality , dh:Model.generatedAtTime-datatype , dh:Model.previousVersion-datatype , dh:Model.type-cardinality , dh:Model.accessRights-datatype , dh:Model.description-cardinality , dh:Model.rights-datatype , dh:Model.identifier-datatype , dh:Model.status-datatype , dh:Model.source-datatype , dh:Model.isVersionOf-cardinality , dh:Model.creator-cardinality , dh:DifferenceModel.forwardDifferences-datatype , dh:Statement.object-cardinality , dh:Model.scenarioTime-datatype , dh:Model.description-datatype , dh:Model.versionNotes-datatype , dh:Model.specializationOf-datatype , dh:Model.scenarioTime-cardinality , dh:Model.status-cardinality , dh:Model.license-cardinality , dh:Model.version-datatype , dh:Model.version-cardinality , dh:Model.applicationSoftware-cardinality , dh:Model.accessRights-cardinality , dh:Statement.subject-cardinality , dh:Model.atLocation-cardinality , dh:Model.license-datatype , dh:Model.rights-cardinality , dh:Statement.predicate-cardinality , dh:Model.source-cardinality , dh:Model.hasCurrentVersion-cardinality , dh:Model.hasVersion-datatype , dh:Model.wasGeneratedBy-datatype , dh:Model.hasVersion-cardinality , dh:Model.accrualPeriodicity-cardinality , dh:Model.wasInfluencedBy-datatype , dh:Model.creator-datatype , dh:Model.hadPrimarySource-datatype , dh:Model.wasAttributedTo-datatype , dh:DifferenceModel.reverseDifferences-datatype , dh:DifferenceModel.preconditions-datatype , dh:Model.keyword-datatype , dh:Model.identifier-cardinality , dh:Model.profile-datatype , dh:Model.serviceLocation-datatype , dh:Model.usedSettings-datatype , dh:Model.endDate-datatype , dh:Statement.object-datatype , dh:Model.rightsHolder-cardinality , dh:DifferenceModel.preconditions-cardinality , dh:Model.hasCurrentVersion-datatype , dh:Model.applicationSoftware-datatype , dh:Model.wasRevisionOf-datatype , dh:Model.accrualPeriodicity-datatype , dh:Model.startDate-datatype , dh:Model.modelingAuthoritySet-cardinality , dh:Model.conformsTo-datatype , dh:Model.previousVersion-cardinality , dh:Model.serviceLocation-cardinality , dh:Model.atLocation-datatype , dh:Model.created-datatype , dh:Model.type-datatype , dh:DifferenceModel.forwardDifferences-cardinality , dh:Model.endDate-cardinality , dh:Model.isVersionOf-datatype , dh:Model.processType-cardinality , dh:Model.processType-datatype ; + sh:targetClass dm:DifferenceModel . + +dh:Model.applicationSoftware-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group dh:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Model.applicationSoftware-cardinality" ; + sh:order 29 ; + sh:path eumd:Model.applicationSoftware ; + sh:severity sh:Violation . + +dh:Model.Supersedes-valueTypeNodeShape + rdf:type sh:NodeShape ; + sh:property dh:Model.Supersedes-valueType ; + sh:targetClass dm:DifferenceModel , md:FullModel . + +dh:Model.description-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group dh:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Model.description-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 19 ; + sh:path dcterms:Model.description ; + sh:severity sh:Violation . + +dh:Model.processType-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:anyURI ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group dh:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Model.processType-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 37 ; + sh:path eumd:Model.processType ; + sh:severity sh:Violation . + +dh:Model.wasInfluencedBy-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:anyURI ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group dh:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Model.wasInfluencedBy-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 11 ; + sh:path prov:Model.wasInfluencedBy ; + sh:severity sh:Violation . + +dh:Model.keyword-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group dh:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Model.keyword-cardinality" ; + sh:order 0 ; + sh:path dcat:Model.keyword ; + sh:severity sh:Violation . + +dh:Model.startDate-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:dateTime ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group dh:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Model.startDate-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 33 ; + sh:path dcat:Model.startDate ; + sh:severity sh:Violation . + +dh:Model.hasCurrentVersion-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group dh:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Model.hasCurrentVersion-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 22 ; + sh:path dcat:Model.hasCurrentVersion ; + sh:severity sh:Violation . + +dh:Statement.object-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group dh:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Statement.object-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path ( dm:DifferenceModel.forwardDifferences cim:Statement.object ) ; + sh:severity sh:Violation . + +dh:Model.Supersedes-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group dh:AssociationsGroup ; + sh:in ( dm:DifferenceModel md:FullModel ) ; + sh:message "One of the following occurs: 1) The value type is not IRI; 2) The value type is not the right class." ; + sh:name "Model.Supersedes-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path ( cim:Model.Supersedes rdf:type ) ; + sh:severity sh:Violation . + +dh:Model.isVersionOf-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group dh:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Model.isVersionOf-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 6 ; + sh:path dcat:Model.isVersionOf ; + sh:severity sh:Violation . + +dh:Model.license-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group dh:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Model.license-cardinality" ; + sh:order 32 ; + sh:path dcterms:Model.license ; + sh:severity sh:Violation . + +dh:Model.type-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group dh:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Model.type-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 15 ; + sh:path dcterms:Model.type ; + sh:severity sh:Violation . + +dh:DifferenceModel.reverseDifferences-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group dh:CardinalityGroup ; + sh:message "Cardinality violation. Lower bound shall be 1" ; + sh:minCount 1 ; + sh:name "DifferenceModel.reverseDifferences-cardinality" ; + sh:order 1 ; + sh:path dm:DifferenceModel.reverseDifferences ; + sh:severity sh:Violation . + +dh:Model.type-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group dh:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Model.type-cardinality" ; + sh:order 15 ; + sh:path dcterms:Model.type ; + sh:severity sh:Violation . + +dh:DifferenceModel.preconditions-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group dh:DatatypesGroup ; + sh:in ( cim:Statement ) ; + sh:message "Blank node (compound datatype) violation. Either it is not a blank node (nested structure, compound datatype) or it is not the right class." ; + sh:name "DifferenceModel.preconditions-datatype" ; + sh:nodeKind sh:BlankNode ; + sh:order 2 ; + sh:path ( dm:DifferenceModel.preconditions rdf:type ) ; + sh:severity sh:Violation . + +dh:Model.endDate-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:dateTime ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group dh:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Model.endDate-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 31 ; + sh:path dcat:Model.endDate ; + sh:severity sh:Violation . + +dh:Model.rights-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group dh:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Model.rights-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 21 ; + sh:path dcterms:Model.rights ; + sh:severity sh:Violation . + +dh:Model.rightsHolder-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group dh:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Model.rightsHolder-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 20 ; + sh:path dcterms:Model.rightsHolder ; + sh:severity sh:Violation . + +dh:Model.applicationSoftware-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group dh:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Model.applicationSoftware-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 29 ; + sh:path eumd:Model.applicationSoftware ; + sh:severity sh:Violation . + +dh:Model.created-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:dateTime ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group dh:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Model.created-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 9 ; + sh:path md:Model.created ; + sh:severity sh:Violation . + +dh:Model.processType-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group dh:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Model.processType-cardinality" ; + sh:order 37 ; + sh:path eumd:Model.processType ; + sh:severity sh:Violation . + +dh:DatatypesGroup rdf:type sh:PropertyGroup ; + rdfs:label "Datatypes" ; + sh:order 1 . + +dh:Statement.predicate-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group dh:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required attribute." ; + sh:minCount 1 ; + sh:name "Statement.predicate-cardinality" ; + sh:order 1 ; + sh:path ( dm:DifferenceModel.forwardDifferences cim:Statement.predicate ) ; + sh:severity sh:Violation . + +dh:Model.versionNotes-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group dh:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Model.versionNotes-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 38 ; + sh:path dm:Model.versionNotes ; + sh:severity sh:Violation . + +dh:Model.created-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group dh:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Model.created-cardinality" ; + sh:order 9 ; + sh:path md:Model.created ; + sh:severity sh:Violation . + +dh:Model.modelingAuthoritySet-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:anyURI ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group dh:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Model.modelingAuthoritySet-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 16 ; + sh:path md:Model.modelingAuthoritySet ; + sh:severity sh:Violation . + +dh:Model.identifier-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:anyURI ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group dh:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Model.identifier-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 28 ; + sh:path dcterms:Model.identifier ; + sh:severity sh:Violation . + +dh:FullModel rdf:type sh:NodeShape ; + sh:property dh:Model.identifier-datatype , dh:Model.startDate-cardinality , dh:Model.atLocation-datatype , dh:Model.wasAttributedTo-datatype , dh:Model.scenarioTime-cardinality , dh:Model.conformsTo-datatype , dh:Model.license-cardinality , dh:Model.generatedAtTime-cardinality , dh:Model.description-cardinality , dh:Model.wasInfluencedBy-datatype , dh:Model.usedSettings-datatype , dh:Model.creator-cardinality , dh:Model.hasVersion-datatype , dh:Model.atLocation-cardinality , dh:Model.endDate-cardinality , dh:Model.profile-datatype , dh:Model.hadPrimarySource-datatype , dh:Model.isVersionOf-datatype , dh:Model.type-datatype , dh:Model.rightsHolder-datatype , dh:Model.wasRevisionOf-datatype , dh:Model.startDate-datatype , dh:Model.version-datatype , dh:Model.processType-cardinality , dh:Model.applicationSoftware-cardinality , dh:Model.type-cardinality , dh:Model.hasVersion-cardinality , dh:Model.created-datatype , dh:Model.generatedAtTime-datatype , dh:Model.serviceLocation-cardinality , dh:Model.created-cardinality , dh:Model.rights-cardinality , dh:Model.identifier-cardinality , dh:Model.hasCurrentVersion-datatype , dh:Model.creator-datatype , dh:Model.rights-datatype , dh:Model.endDate-datatype , dh:Model.isVersionOf-cardinality , dh:Model.accessRights-datatype , dh:Model.version-cardinality , dh:Model.wasGeneratedBy-datatype , dh:Model.source-datatype , dh:Model.versionNotes-datatype , dh:Model.modelingAuthoritySet-cardinality , dh:Model.modelingAuthoritySet-datatype , dh:Model.accessRights-cardinality , dh:Model.hasCurrentVersion-cardinality , dh:Model.specializationOf-datatype , dh:Model.applicationSoftware-datatype , dh:Model.versionNotes-cardinality , dh:Model.processType-datatype , dh:Model.keyword-cardinality , dh:Model.description-datatype , dh:Model.scenarioTime-datatype , dh:Model.status-cardinality , dh:Model.status-datatype , dh:Model.license-datatype , dh:Model.rightsHolder-cardinality , dh:Model.accrualPeriodicity-datatype , dh:Model.previousVersion-cardinality , dh:Model.accrualPeriodicity-cardinality , dh:Model.serviceLocation-datatype , dh:Model.keyword-datatype , dh:Model.previousVersion-datatype , dh:Model.source-cardinality ; + sh:targetClass md:FullModel . + +dh:Statement.subject-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group dh:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Statement.subject-datatype" ; + sh:nodeKind sh:Literal ; + sh:order -1 ; + sh:path ( dm:DifferenceModel.forwardDifferences cim:Statement.subject ) ; + sh:severity sh:Violation . + +dh:Model.previousVersion-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group dh:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Model.previousVersion-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 7 ; + sh:path dcat:Model.previousVersion ; + sh:severity sh:Violation . + +dh:Model.endDate-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group dh:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Model.endDate-cardinality" ; + sh:order 31 ; + sh:path dcat:Model.endDate ; + sh:severity sh:Violation . + +dh:Model.status-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group dh:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Model.status-cardinality" ; + sh:order 10 ; + sh:path euvoc:Model.status ; + sh:severity sh:Violation . + +dh:Statement.predicate-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group dh:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Statement.predicate-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path ( dm:DifferenceModel.forwardDifferences cim:Statement.predicate ) ; + sh:severity sh:Violation . + +dh:Model.hasVersion-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group dh:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Model.hasVersion-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 39 ; + sh:path dcat:Model.hasVersion ; + sh:severity sh:Violation . + +dh:Model.rightsHolder-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group dh:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Model.rightsHolder-cardinality" ; + sh:order 20 ; + sh:path dcterms:Model.rightsHolder ; + sh:severity sh:Violation . diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/EquipmentReliabilityProfile_v2_2_SHACL.ttl b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/EquipmentReliabilityProfile_v2_2_SHACL.ttl new file mode 100644 index 0000000000..a6f0ff503b --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/EquipmentReliabilityProfile_v2_2_SHACL.ttl @@ -0,0 +1,5837 @@ +@base . +@prefix adms: . +@prefix cim: . +@prefix cims: . +@prefix dash: . +@prefix dc: . +@prefix dcat: . +@prefix dcterms: . +@prefix dm: . +@prefix er: . +@prefix eu: . +@prefix eumd: . +@prefix euvoc: . +@prefix ido: . +@prefix md: . +@prefix nc: . +@prefix owl: . +@prefix prof: . +@prefix profcim: . +@prefix prov: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix skos: . +@prefix xsd: . + +er:DCTieCorridor.SchedulingArea-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "DCTieCorridor.SchedulingArea-cardinality" ; + sh:order 1 ; + sh:path nc:DCTieCorridor.SchedulingArea ; + sh:severity sh:Violation . + +er:CurrentDroopControlFunction.droopCapacitive-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "CurrentDroopControlFunction.droopCapacitive-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path nc:CurrentDroopControlFunction.droopCapacitive ; + sh:severity sh:Violation . + +er:DCSwitch rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.description-cardinality , er:Equipment.AggregatedEquipment-cardinality , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.name-datatype , er:DCConductingEquipment.ratedCurrent-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.description-datatype , er:Equipment.Circuit-cardinality , er:DCConductingEquipment.ratedCurrent-datatype ; + sh:targetClass cim:DCSwitch . + +er:DCDisconnector rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.description-datatype , er:DCConductingEquipment.ratedCurrent-datatype , er:Equipment.AggregatedEquipment-cardinality , er:DCConductingEquipment.ratedCurrent-cardinality , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype , er:Equipment.Circuit-cardinality ; + sh:targetClass cim:DCDisconnector . + +er:AreaDispatchableUnit.ScheduleResource-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AreaDispatchableUnit.ScheduleResource-cardinality" ; + sh:order 5 ; + sh:path nc:AreaDispatchableUnit.ScheduleResource ; + sh:severity sh:Violation . + +er:GateInputPin.logicKind-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "GateInputPin.logicKind-cardinality" ; + sh:order 2 ; + sh:path nc:GateInputPin.logicKind ; + sh:severity sh:Violation . + +er:DCTieCorridor.rampingKind-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:in ( nc:RampingPrincipleKind.maxContinuous nc:RampingPrincipleKind.tenMinutes nc:RampingPrincipleKind.fiveMinutes nc:RampingPrincipleKind.fifteenMinutes nc:RampingPrincipleKind.continuous ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "DCTieCorridor.rampingKind-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 5 ; + sh:path nc:DCTieCorridor.rampingKind ; + sh:severity sh:Violation . + +er:AutomationFunction.type-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AutomationFunction.type-cardinality" ; + sh:order 1 ; + sh:path nc:AutomationFunction.type ; + sh:severity sh:Violation . + +er:VoltageAngleLimit.AngleReferenceTerminal-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "VoltageAngleLimit.AngleReferenceTerminal-cardinality" ; + sh:order 2 ; + sh:path nc:VoltageAngleLimit.AngleReferenceTerminal ; + sh:severity sh:Violation . + +er:EquivalentInjection.InjectionController-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:InjectionController ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:InjectionController" ; + sh:name "EquivalentInjection.InjectionController-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path ( nc:EquivalentInjection.InjectionController rdf:type ) ; + sh:severity sh:Violation . + +er:AreaDispatchableUnit.EnergyConsumer-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( cim:EnergyConsumer ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: cim:EnergyConsumer" ; + sh:name "AreaDispatchableUnit.EnergyConsumer-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path ( nc:AreaDispatchableUnit.EnergyConsumer rdf:type ) ; + sh:severity sh:Violation . + +er:EnergyGroup.shortPF-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "EnergyGroup.shortPF-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:EnergyGroup.shortPF ; + sh:severity sh:Violation . + +er:BiddingZone.isTradeEnabled-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "BiddingZone.isTradeEnabled-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path nc:BiddingZone.isTradeEnabled ; + sh:severity sh:Violation . + +er:SchedulingArea rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.name-datatype , er:SchedulingArea.LoadFrequencyControlArea-valueType , er:SchedulingArea.ControlArea-cardinality , er:SchedulingArea.ControlArea-valueType , ido:IdentifiedObject.energyIdentCodeEic-cardinality , er:SchedulingArea.isIslandingEnabled-datatype , ido:IdentifiedObject.mRID-datatype , er:SchedulingArea.isMeteringGridArea-datatype , er:SchedulingArea.isMeteringGridArea-cardinality , ido:IdentifiedObject.description-datatype , er:SchedulingArea.isIslandingEnabled-cardinality , er:SchedulingArea.EnergyCoordinationRegion-cardinality , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype , er:SchedulingArea.SynchronousArea-cardinality , er:SchedulingArea.BiddingZone-cardinality , er:SchedulingArea.LoadFrequencyControlArea-cardinality , er:SchedulingArea.BiddingZone-valueType , er:SchedulingArea.SynchronousArea-valueType , er:SchedulingArea.EnergyCoordinationRegion-valueType , ido:IdentifiedObject.name-cardinality , er:SchedulingArea.SystemOperator-cardinality ; + sh:targetClass nc:SchedulingArea . + +er:Equipment.AggregatedEquipment-valueTypeNodeShape + rdf:type sh:NodeShape ; + sh:property er:Equipment.AggregatedEquipment-valueType ; + sh:targetClass nc:PowerElectricalChemicalUnit , nc:StaticVarCompensator , cim:DCDisconnector , nc:FlexibleEnergyUnit , cim:PowerElectronicsUnit , nc:StaticSynchronousSeriesCompensator , nc:PowerElectronicsMarineUnit , cim:HydroPump , nc:ChargingUnit , cim:DCBreaker , nc:GeothermalGeneratingUnit , cim:DCChopper , cim:ACDCConverter , cim:Equipment , cim:DCSwitch , cim:NuclearGeneratingUnit , cim:DCShunt , nc:ThyristorControlledSeriesCompensator , cim:DCLineSegment , cim:EnergyConsumer , nc:ModularStaticSynchronousSeriesCompensator , cim:DCGround , cim:GeneratingUnit , cim:DCSeriesDevice , cim:DCBusbar , nc:StaticSynchronousCompensator . + +er:ScheduleResource rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.name-cardinality , er:ScheduleResource.ResourceOf-cardinality , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.description-datatype , er:ScheduleResource.ResourceOf-valueType , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype , er:ScheduleResource.SchedulingArea-cardinality , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.mRID-datatype ; + sh:targetClass nc:ScheduleResource . + +er:ThyristorControlledSeriesCompensator + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.description-cardinality , er:Equipment.Circuit-cardinality , ido:IdentifiedObject.mRID-datatype , er:ThyristorControlledSeriesCompensator.minimumCurrent-cardinality , er:ThyristorControlledSeriesCompensator.flexibleCapacitiveImpedance-cardinality , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.name-cardinality , er:FACTSEquipment.slope-datatype , er:FACTSEquipment.capacitiveRating-datatype , er:ThyristorControlledSeriesCompensator.minimumCurrent-datatype , er:FACTSEquipment.slope-cardinality , er:ThyristorControlledSeriesCompensator.reconnectionCurrent-cardinality , er:FACTSEquipment.inductiveRating-cardinality , er:ThyristorControlledSeriesCompensator.reconnectionCurrent-datatype , ido:IdentifiedObject.description-datatype , er:FACTSEquipment.inductiveRating-datatype , er:ThyristorControlledSeriesCompensator.flexibleInductiveImpedance-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.name-datatype , er:RegulatingCondEq.EquipmentController-cardinality , er:FACTSEquipment.capacitiveRating-cardinality , ido:IdentifiedObject.energyIdentCodeEic-cardinality , er:ThyristorControlledSeriesCompensator.flexibleInductiveImpedance-datatype , er:Equipment.AggregatedEquipment-cardinality , er:ThyristorControlledSeriesCompensator.flexibleCapacitiveImpedance-datatype ; + sh:targetClass nc:ThyristorControlledSeriesCompensator . + +er:CurveData.Curve-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "CurveData.Curve-cardinality" ; + sh:order 0 ; + sh:path cim:CurveData.Curve ; + sh:severity sh:Violation . + +er:SchedulingArea.LoadFrequencyControlArea-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:LoadFrequencyControlArea ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:LoadFrequencyControlArea" ; + sh:name "SchedulingArea.LoadFrequencyControlArea-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 11 ; + sh:path ( nc:SchedulingArea.LoadFrequencyControlArea rdf:type ) ; + sh:severity sh:Violation . + +er:CurrentDroopControlFunction + rdf:type sh:NodeShape ; + sh:property er:ControlFunctionBlock.isDiscrete-cardinality , er:ControlFunctionBlock.minAllowedTargetValue-datatype , er:CurrentDroopControlFunction.offsetInductive-datatype , er:CurrentDroopControlFunction.droopInductive-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.mRID-datatype , er:CurrentDroopControlFunction.offsetInductive-cardinality , ido:IdentifiedObject.description-cardinality , er:CurrentDroopControlFunction.offsetCapacitive-cardinality , er:FunctionBlock.AutomationFunction-cardinality , er:CurrentDroopControlFunction.offsetCapacitive-datatype , er:CurrentDroopControlFunction.droopCapacitive-cardinality , er:ControlFunctionBlock.minAllowedTargetValue-cardinality , ido:IdentifiedObject.description-datatype , er:FunctionBlock.priority-datatype , ido:IdentifiedObject.name-cardinality , er:CurrentDroopControlFunction.droopInductive-datatype , er:ControlFunctionBlock.targetDeadband-datatype , ido:IdentifiedObject.mRID-cardinality , er:FunctionBlock.priority-cardinality , er:ControlFunctionBlock.maxAllowedTargetValue-cardinality , ido:IdentifiedObject.name-datatype , er:ControlFunctionBlock.targetDeadband-cardinality , er:CurrentDroopControlFunction.droopCapacitive-datatype , er:ControlFunctionBlock.maxAllowedTargetValue-datatype , er:ControlFunctionBlock.isDiscrete-datatype ; + sh:targetClass nc:CurrentDroopControlFunction . + +er:FunctionBlock.AutomationFunction-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:SSSCController nc:UnifiedPowerFlowController nc:RotatingMachineController nc:TapChangerController nc:TCSCController nc:FacilityPlantController nc:DirectCurrentController nc:SubstationController nc:PowerPlantController nc:InjectionController nc:CompensatorController ) ; + sh:message "One of the following occurs: 1) The value type is not IRI; 2) The value type is not the right class." ; + sh:name "FunctionBlock.AutomationFunction-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 5 ; + sh:path ( nc:FunctionBlock.AutomationFunction rdf:type ) ; + sh:severity sh:Violation . + +er:GateInputPin.thresholdPercentage-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "GateInputPin.thresholdPercentage-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path nc:GateInputPin.thresholdPercentage ; + sh:severity sh:Violation . + +er:LoadFrequencyControlArea.includeFrequencyBias-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "LoadFrequencyControlArea.includeFrequencyBias-cardinality" ; + sh:order 4 ; + sh:path nc:LoadFrequencyControlArea.includeFrequencyBias ; + sh:severity sh:Violation . + +er:ReactiveCapabilityCurve.EquivalentInjection2-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( cim:EquivalentInjection ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: cim:EquivalentInjection" ; + sh:name "ReactiveCapabilityCurve.EquivalentInjection2-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 4 ; + sh:path ( cim:ReactiveCapabilityCurve.EquivalentInjection2 rdf:type ) ; + sh:severity sh:Violation . + +er:SchedulingArea.ControlArea-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "SchedulingArea.ControlArea-cardinality" ; + sh:order 3 ; + sh:path nc:SchedulingArea.ControlArea ; + sh:severity sh:Violation . + +er:PowerInfeedTerminal.ACDCTerminal-valueTypeNodeShape + rdf:type sh:NodeShape ; + sh:property er:PowerInfeedTerminal.ACDCTerminal-valueType ; + sh:targetClass nc:PowerInfeedTerminal . + +er:SubstationController + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.energyIdentCodeEic-cardinality , er:AutomationFunction.type-cardinality , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.mRID-datatype , er:AutomationFunction.type-datatype , ido:IdentifiedObject.name-cardinality , er:AutomationFunction.PartOf-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.description-cardinality ; + sh:targetClass nc:SubstationController . + +er:ActivePowerControlFunction + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.name-cardinality , er:ControlFunctionBlock.minAllowedTargetValue-cardinality , er:ControlFunctionBlock.targetDeadband-cardinality , ido:IdentifiedObject.description-cardinality , er:ControlFunctionBlock.isDiscrete-datatype , er:ControlFunctionBlock.minAllowedTargetValue-datatype , er:FunctionBlock.AutomationFunction-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.energyIdentCodeEic-cardinality , er:ControlFunctionBlock.maxAllowedTargetValue-cardinality , er:ControlFunctionBlock.targetDeadband-datatype , er:FunctionBlock.priority-datatype , er:FunctionBlock.priority-cardinality , er:ControlFunctionBlock.maxAllowedTargetValue-datatype , er:ControlFunctionBlock.isDiscrete-cardinality ; + sh:targetClass nc:ActivePowerControlFunction . + +er:ExceptionalPowerTransferCorridor + rdf:type sh:NodeShape ; + sh:property er:PowerTransferCorridor.normalEnabled-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.description-cardinality , er:PowerTransferCorridor.normalEnabled-datatype , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.mRID-cardinality ; + sh:targetClass nc:ExceptionalPowerTransferCorridor . + +er:SchedulingArea.EnergyCoordinationRegion-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "SchedulingArea.EnergyCoordinationRegion-cardinality" ; + sh:order 7 ; + sh:path nc:SchedulingArea.EnergyCoordinationRegion ; + sh:severity sh:Violation . + +er:ControlFunctionBlock.maxAllowedTargetValue-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "ControlFunctionBlock.maxAllowedTargetValue-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:ControlFunctionBlock.maxAllowedTargetValue ; + sh:severity sh:Violation . + +er:LineCircuit rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.description-datatype ; + sh:targetClass nc:LineCircuit . + +er:PTCTriggeredEquipment.Equipment-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( cim:Equipment cim:HydroPump cim:PowerElectronicsUnit cim:GeneratingUnit cim:ACDCConverter cim:DCSeriesDevice cim:DCGround cim:DCSwitch cim:DCShunt cim:DCBusbar cim:DCLineSegment cim:DCChopper nc:PowerElectronicsMarineUnit nc:ChargingUnit nc:FlexibleEnergyUnit nc:PowerElectricalChemicalUnit nc:GeothermalGeneratingUnit cim:NuclearGeneratingUnit cim:EnergyConsumer cim:DCDisconnector cim:DCBreaker nc:StaticSynchronousSeriesCompensator nc:ThyristorControlledSeriesCompensator nc:ModularStaticSynchronousSeriesCompensator nc:StaticVarCompensator nc:StaticSynchronousCompensator ) ; + sh:message "One of the following occurs: 1) The value type is not IRI; 2) The value type is not the right class." ; + sh:name "PTCTriggeredEquipment.Equipment-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path ( nc:PTCTriggeredEquipment.Equipment rdf:type ) ; + sh:severity sh:Violation . + +er:TieFlow.TieCorridor-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:TieCorridor nc:DCTieCorridor nc:ACTieCorridor ) ; + sh:message "One of the following occurs: 1) The value type is not IRI; 2) The value type is not the right class." ; + sh:name "TieFlow.TieCorridor-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path ( nc:TieFlow.TieCorridor rdf:type ) ; + sh:severity sh:Violation . + +er:FuelStorage rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.mRID-datatype ; + sh:targetClass nc:FuelStorage . + +er:SSSCSimulationSettings.mRID-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "SSSCSimulationSettings.mRID-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 5 ; + sh:path nc:SSSCSimulationSettings.mRID ; + sh:severity sh:Violation . + +er:ThyristorControlledSeriesCompensator.minimumCurrent-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "ThyristorControlledSeriesCompensator.minimumCurrent-cardinality" ; + sh:order 3 ; + sh:path nc:ThyristorControlledSeriesCompensator.minimumCurrent ; + sh:severity sh:Violation . + +er:OperationalLimitType.TemporaryBaseOverloadLimitCurve-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:BaseOverloadLimitCurve ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:BaseOverloadLimitCurve" ; + sh:name "OperationalLimitType.TemporaryBaseOverloadLimitCurve-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path ( nc:OperationalLimitType.TemporaryBaseOverloadLimitCurve rdf:type ) ; + sh:severity sh:Violation . + +er:TCSCCompensationPoint.compensationImpedance-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "TCSCCompensationPoint.compensationImpedance-cardinality" ; + sh:order 3 ; + sh:path nc:TCSCCompensationPoint.compensationImpedance ; + sh:severity sh:Violation . + +er:TCSCCompensationPoint.sectionNumber-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "TCSCCompensationPoint.sectionNumber-cardinality" ; + sh:order 1 ; + sh:path nc:TCSCCompensationPoint.sectionNumber ; + sh:severity sh:Violation . + +er:RegulatingCondEq.EquipmentController-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:SSSCController nc:UnifiedPowerFlowController nc:RotatingMachineController nc:TapChangerController nc:TCSCController nc:FacilityPlantController nc:DirectCurrentController nc:SubstationController nc:PowerPlantController nc:InjectionController nc:CompensatorController ) ; + sh:message "One of the following occurs: 1) The value type is not IRI; 2) The value type is not the right class." ; + sh:name "RegulatingCondEq.EquipmentController-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 4 ; + sh:path ( nc:RegulatingCondEq.EquipmentController rdf:type ) ; + sh:severity sh:Violation . + +er:CircuitShare.normalContributionFactor-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "CircuitShare.normalContributionFactor-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:CircuitShare.normalContributionFactor ; + sh:severity sh:Violation . + +er:ScheduleResource.ResourceOf-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:ScheduleResource ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:ScheduleResource" ; + sh:name "ScheduleResource.ResourceOf-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path ( nc:ScheduleResource.ResourceOf rdf:type ) ; + sh:severity sh:Violation . + +er:HydroPowerPlant rdf:type sh:NodeShape ; + sh:property er:HydroPowerPlant.Reservoir-valueType , er:HydroPowerPlant.Reservoir-cardinality ; + sh:targetClass cim:HydroPowerPlant . + +er:HydroPump.minEconomicP-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "HydroPump.minEconomicP-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 6 ; + sh:path nc:HydroPump.minEconomicP ; + sh:severity sh:Violation . + +er:ControlFunctionBlock.targetDeadband-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "ControlFunctionBlock.targetDeadband-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path nc:ControlFunctionBlock.targetDeadband ; + sh:severity sh:Violation . + +er:SSSCController.minOperatingCurrentLimit-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "SSSCController.minOperatingCurrentLimit-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:SSSCController.minOperatingCurrentLimit ; + sh:severity sh:Violation . + +er:FunctionBlock.AutomationFunction-valueTypeNodeShape + rdf:type sh:NodeShape ; + sh:property er:FunctionBlock.AutomationFunction-valueType ; + sh:targetClass nc:CurrentDroopControlFunction , nc:PowerFactorControlFunction , nc:CurrentControlFunction , nc:DCCurrentControlFunction , nc:ImpedanceControlFunction , nc:PhaseControlFunction , nc:ReactivePowerControlFunction , nc:ActivePowerControlFunction , nc:VoltageInjectionControlFunction , nc:DCVoltageControlFunction , nc:VoltageControlFunction . + +er:LoadFrequencyControlArea.LoadFrequencyControlBlock-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "LoadFrequencyControlArea.LoadFrequencyControlBlock-cardinality" ; + sh:order 7 ; + sh:path nc:LoadFrequencyControlArea.LoadFrequencyControlBlock ; + sh:severity sh:Violation . + +er:GeneratingUnit.raiseRampRate-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "GeneratingUnit.raiseRampRate-cardinality" ; + sh:order 9 ; + sh:path cim:GeneratingUnit.raiseRampRate ; + sh:severity sh:Violation . + +er:CircuitShare.PowerTransferCorridor-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "CircuitShare.PowerTransferCorridor-cardinality" ; + sh:order 0 ; + sh:path nc:CircuitShare.PowerTransferCorridor ; + sh:severity sh:Violation . + +er:ControlFunctionBlock.targetDeadband-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "ControlFunctionBlock.targetDeadband-cardinality" ; + sh:order 2 ; + sh:path nc:ControlFunctionBlock.targetDeadband ; + sh:severity sh:Violation . + +er:PowerInfeedLimit.normalValue-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "PowerInfeedLimit.normalValue-cardinality" ; + sh:order 1 ; + sh:path nc:PowerInfeedLimit.normalValue ; + sh:severity sh:Violation . + +er:HydroPump.shortPF-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "HydroPump.shortPF-cardinality" ; + sh:order 4 ; + sh:path nc:HydroPump.shortPF ; + sh:severity sh:Violation . + +er:OperationalLimitType.isMinimum-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "OperationalLimitType.isMinimum-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path nc:OperationalLimitType.isMinimum ; + sh:severity sh:Violation . + +er:GeneratingUnit.warmStartupTime-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "GeneratingUnit.warmStartupTime-cardinality" ; + sh:order 2 ; + sh:path nc:GeneratingUnit.warmStartupTime ; + sh:severity sh:Violation . + +er:OperationalLimitType.TemporaryDurationOverloadLimitCurve-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:DurationOverloadLimitCurve ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:DurationOverloadLimitCurve" ; + sh:name "OperationalLimitType.TemporaryDurationOverloadLimitCurve-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 3 ; + sh:path ( nc:OperationalLimitType.TemporaryDurationOverloadLimitCurve rdf:type ) ; + sh:severity sh:Violation . + +er:ReactiveCapabilityCurve.referenceVoltage-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "ReactiveCapabilityCurve.referenceVoltage-cardinality" ; + sh:order 2 ; + sh:path nc:ReactiveCapabilityCurve.referenceVoltage ; + sh:severity sh:Violation . + +er:EnergyComponent.GeneratingUnit-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "EnergyComponent.GeneratingUnit-cardinality" ; + sh:order 4 ; + sh:path nc:EnergyComponent.GeneratingUnit ; + sh:severity sh:Violation . + +er:PowerInfeedTerminal.mRID-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "PowerInfeedTerminal.mRID-cardinality" ; + sh:order 2 ; + sh:path nc:PowerInfeedTerminal.mRID ; + sh:severity sh:Violation . + +er:ReactiveCapabilityCurve.hydrogenPressure-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "ReactiveCapabilityCurve.hydrogenPressure-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path cim:ReactiveCapabilityCurve.hydrogenPressure ; + sh:severity sh:Violation . + +er:CurrentDroopOverride.offsetCapacitive-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "CurrentDroopOverride.offsetCapacitive-cardinality" ; + sh:order 5 ; + sh:path nc:CurrentDroopOverride.offsetCapacitive ; + sh:severity sh:Violation . + +er:OperationalLimitType.PermanentAmbientTemperatureDependencyCurve-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "OperationalLimitType.PermanentAmbientTemperatureDependencyCurve-cardinality" ; + sh:order 5 ; + sh:path nc:OperationalLimitType.PermanentAmbientTemperatureDependencyCurve ; + sh:severity sh:Violation . + +er:VoltageAngleLimit rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.mRID-datatype , er:VoltageAngleLimit.normalValue-datatype , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.description-datatype , er:VoltageAngleLimit.isFlowToRefTerminal-datatype , ido:IdentifiedObject.energyIdentCodeEic-cardinality , er:VoltageAngleLimit.isFlowToRefTerminal-cardinality , er:OperationalLimit.OperationalLimitSet-cardinality , er:OperationalLimit.OperationalLimitType-valueType , er:VoltageAngleLimit.normalValue-cardinality , er:OperationalLimit.OperationalLimitSet-valueType , er:VoltageAngleLimit.AngleReferenceTerminal-cardinality , er:OperationalLimit.OperationalLimitType-cardinality , ido:IdentifiedObject.name-cardinality ; + sh:targetClass nc:VoltageAngleLimit . + +er:VoltageAngleLimit.normalValue-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "VoltageAngleLimit.normalValue-cardinality" ; + sh:order 0 ; + sh:path nc:VoltageAngleLimit.normalValue ; + sh:severity sh:Violation . + +er:NuclearGeneratingUnit + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.energyIdentCodeEic-cardinality , er:GeneratingUnit.shutdownCost-cardinality , er:Equipment.AggregatedEquipment-cardinality , er:Equipment.Circuit-cardinality , er:GeneratingUnit.lowerRampRate-cardinality , ido:IdentifiedObject.description-cardinality , er:GeneratingUnit.maxEconomicP-cardinality , er:GeneratingUnit.ScheduleResource-cardinality , er:GeneratingUnit.minimumOffTime-cardinality , er:GeneratingUnit.warmStartupCost-datatype , er:GeneratingUnit.maxStartupLoad-cardinality , ido:IdentifiedObject.description-datatype , er:NuclearGeneratingUnit.reactorKind-cardinality , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.name-cardinality , er:GeneratingUnit.maxEconomicP-datatype , ido:IdentifiedObject.mRID-datatype , er:GeneratingUnit.shutdownCost-datatype , er:GeneratingUnit.warmStartupCost-cardinality , er:GeneratingUnit.warmStartupTime-datatype , er:GeneratingUnit.minimumOffTime-datatype , er:GeneratingUnit.maxStartupLoad-datatype , er:GeneratingUnit.shutdownTime-datatype , er:GeneratingUnit.raiseRampRate-cardinality , er:GeneratingUnit.startupRampRate-cardinality , er:GeneratingUnit.shutdownTime-cardinality , er:GeneratingUnit.coolDownTime-cardinality , er:GeneratingUnit.minEconomicP-cardinality , er:GeneratingUnit.raiseRampRate-datatype , er:GeneratingUnit.startupRampRate-datatype , ido:IdentifiedObject.energyIdentCodeEic-datatype , er:GeneratingUnit.lowerRampRate-datatype , er:GeneratingUnit.PrimaryEnergySource-cardinality , er:GeneratingUnit.warmStartupTime-cardinality , er:GeneratingUnit.minEconomicP-datatype , er:GeneratingUnit.coolDownTime-datatype , er:NuclearGeneratingUnit.reactorKind-datatype , ido:IdentifiedObject.name-datatype , er:GeneratingUnit.ScheduleResource-valueType ; + sh:targetClass cim:NuclearGeneratingUnit . + +er:DCTieCorridor.SchedulingArea-valueTypeNodeShape + rdf:type sh:NodeShape ; + sh:property er:DCTieCorridor.SchedulingArea-valueType ; + sh:targetClass nc:DCTieCorridor . + +er:GeneratingUnit.minEconomicP-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "GeneratingUnit.minEconomicP-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 12 ; + sh:path cim:GeneratingUnit.minEconomicP ; + sh:severity sh:Violation . + +er:GateInputPin rdf:type sh:NodeShape ; + sh:property er:GateInputPin.duration-datatype , er:GateInputPin.absoluteValue-datatype , er:GateInputPin.negate-cardinality , er:GateInputPin.logicKind-datatype , er:GateInputPin.absoluteValue-cardinality , er:GateInputPin.thresholdPercentage-datatype , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.name-cardinality , er:GateInputPin.thresholdPercentage-cardinality , er:GateInputPin.negate-datatype , er:GateInputPin.thresholdValue-datatype , er:GateInputPin.duration-cardinality , er:GateInputPin.logicKind-cardinality , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.description-datatype , er:FunctionInputVariable.Function-cardinality , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.name-datatype , er:GateInputPin.thresholdValue-cardinality ; + sh:targetClass nc:GateInputPin . + +er:CurveData.y2value-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "CurveData.y2value-cardinality" ; + sh:order 2 ; + sh:path cim:CurveData.y2value ; + sh:severity sh:Violation . + +er:PowerTransformerCircuit + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.mRID-cardinality ; + sh:targetClass nc:PowerTransformerCircuit . + +er:OperationalLimitType.TemporaryBaseOverloadLimitCurve-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "OperationalLimitType.TemporaryBaseOverloadLimitCurve-cardinality" ; + sh:order 2 ; + sh:path nc:OperationalLimitType.TemporaryBaseOverloadLimitCurve ; + sh:severity sh:Violation . + +er:EnergyConsumer.shortPF-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "EnergyConsumer.shortPF-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:EnergyConsumer.shortPF ; + sh:severity sh:Violation . + +er:PTCTriggeredEquipment.ExceptionalPowerTransferCorridor-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:ExceptionalPowerTransferCorridor ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:ExceptionalPowerTransferCorridor" ; + sh:name "PTCTriggeredEquipment.ExceptionalPowerTransferCorridor-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path ( nc:PTCTriggeredEquipment.ExceptionalPowerTransferCorridor rdf:type ) ; + sh:severity sh:Violation . + +er:SchedulingArea.isIslandingEnabled-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "SchedulingArea.isIslandingEnabled-cardinality" ; + sh:order 2 ; + sh:path nc:SchedulingArea.isIslandingEnabled ; + sh:severity sh:Violation . + +er:SchedulingArea.isMeteringGridArea-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "SchedulingArea.isMeteringGridArea-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 12 ; + sh:path nc:SchedulingArea.isMeteringGridArea ; + sh:severity sh:Violation . + +er:LossCurve.FACTSEquipment-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:StaticSynchronousSeriesCompensator nc:ThyristorControlledSeriesCompensator nc:ModularStaticSynchronousSeriesCompensator nc:StaticVarCompensator nc:StaticSynchronousCompensator ) ; + sh:message "One of the following occurs: 1) The value type is not IRI; 2) The value type is not the right class." ; + sh:name "LossCurve.FACTSEquipment-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path ( nc:LossCurve.FACTSEquipment rdf:type ) ; + sh:severity sh:Violation . + +er:Feeder.NormalEnergizingSubstation-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( cim:Substation ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: cim:Substation" ; + sh:name "Feeder.NormalEnergizingSubstation-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path ( cim:Feeder.NormalEnergizingSubstation rdf:type ) ; + sh:severity sh:Violation . + +er:SchedulingArea.BiddingZone-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "SchedulingArea.BiddingZone-cardinality" ; + sh:order 13 ; + sh:path nc:SchedulingArea.BiddingZone ; + sh:severity sh:Violation . + +er:CurveData.Curve-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( cim:VsCapabilityCurve cim:ReactiveCapabilityCurve nc:LossCurve nc:RecoveryOverloadLimitCurve nc:DurationOverloadLimitCurve nc:AmbientTemperatureDependencyCurve nc:BaseOverloadLimitCurve nc:SolarRadiationDependencyCurve ) ; + sh:message "One of the following occurs: 1) The value type is not IRI; 2) The value type is not the right class." ; + sh:name "CurveData.Curve-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path ( cim:CurveData.Curve rdf:type ) ; + sh:severity sh:Violation . + +er:OperationalLimitSet.PowerTransferCorridor-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:ExceptionalPowerTransferCorridor nc:OrdinaryPowerTransferCorridor ) ; + sh:message "One of the following occurs: 1) The value type is not IRI; 2) The value type is not the right class." ; + sh:name "OperationalLimitSet.PowerTransferCorridor-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path ( nc:OperationalLimitSet.PowerTransferCorridor rdf:type ) ; + sh:severity sh:Violation . + +er:AreaDispatchableUnit.normalEnabled-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AreaDispatchableUnit.normalEnabled-cardinality" ; + sh:order 4 ; + sh:path nc:AreaDispatchableUnit.normalEnabled ; + sh:severity sh:Violation . + +er:LoadFrequencyControlArea.frequencyRestorationReserveDelay-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "LoadFrequencyControlArea.frequencyRestorationReserveDelay-cardinality" ; + sh:order 9 ; + sh:path nc:LoadFrequencyControlArea.frequencyRestorationReserveDelay ; + sh:severity sh:Violation . + +er:Substation.SchedulingArea-valueTypeNodeShape + rdf:type sh:NodeShape ; + sh:property er:Substation.SchedulingArea-valueType ; + sh:targetClass cim:Substation . + +er:ReactiveCapabilityCurve.coolantTemperature-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "ReactiveCapabilityCurve.coolantTemperature-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path cim:ReactiveCapabilityCurve.coolantTemperature ; + sh:severity sh:Violation . + +er:EnergyComponent.EnergyGroup-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "EnergyComponent.EnergyGroup-cardinality" ; + sh:order 5 ; + sh:path nc:EnergyComponent.EnergyGroup ; + sh:severity sh:Violation . + +er:DCTieCorridor.minRegulatingReserve-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "DCTieCorridor.minRegulatingReserve-cardinality" ; + sh:order 4 ; + sh:path nc:DCTieCorridor.minRegulatingReserve ; + sh:severity sh:Violation . + +er:FACTSEquipment.slope-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "FACTSEquipment.slope-cardinality" ; + sh:order 0 ; + sh:path nc:FACTSEquipment.slope ; + sh:severity sh:Violation . + +er:PowerElectronicsUnit.longPF-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerElectronicsUnit.longPF-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 5 ; + sh:path nc:PowerElectronicsUnit.longPF ; + sh:severity sh:Violation . + +ido:CardinalityGroup rdf:type sh:PropertyGroup ; + rdfs:label "CardinalityIO" ; + sh:order 0 . + +er:ACDCConverter.DirectCurrentController-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "ACDCConverter.DirectCurrentController-cardinality" ; + sh:order 0 ; + sh:path nc:ACDCConverter.DirectCurrentController ; + sh:severity sh:Violation . + +er:EquivalentInjection.InjectionController-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "EquivalentInjection.InjectionController-cardinality" ; + sh:order 1 ; + sh:path nc:EquivalentInjection.InjectionController ; + sh:severity sh:Violation . + +er:DCTieCorridor.DirectCurrentController-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:DirectCurrentController ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:DirectCurrentController" ; + sh:name "DCTieCorridor.DirectCurrentController-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path ( nc:DCTieCorridor.DirectCurrentController rdf:type ) ; + sh:severity sh:Violation . + +er:PowerInfeedTerminal.PowerInfeedConstraint-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "PowerInfeedTerminal.PowerInfeedConstraint-cardinality" ; + sh:order 1 ; + sh:path nc:PowerInfeedTerminal.PowerInfeedConstraint ; + sh:severity sh:Violation . + +er:Curve.y1Multiplier-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Curve.y1Multiplier-cardinality" ; + sh:order 1 ; + sh:path cim:Curve.y1Multiplier ; + sh:severity sh:Violation . + +er:OrganisationRole.globalLocationNumber-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "OrganisationRole.globalLocationNumber-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path nc:OrganisationRole.globalLocationNumber ; + sh:severity sh:Violation . + +er:OperationalLimitType.PermanentAmbientTemperatureDependencyCurve-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:AmbientTemperatureDependencyCurve ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:AmbientTemperatureDependencyCurve" ; + sh:name "OperationalLimitType.PermanentAmbientTemperatureDependencyCurve-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 5 ; + sh:path ( nc:OperationalLimitType.PermanentAmbientTemperatureDependencyCurve rdf:type ) ; + sh:severity sh:Violation . + +er:EnergyAlignmentCoordinator + rdf:type sh:NodeShape ; + sh:property er:OrganisationRole.Organisation-valueType , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.mRID-datatype , er:OrganisationRole.globalLocationNumber-cardinality , ido:IdentifiedObject.description-datatype , er:OrganisationRole.globalLocationNumber-datatype , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.name-datatype , er:OrganisationRole.Organisation-cardinality ; + sh:targetClass nc:EnergyAlignmentCoordinator . + +er:OutageCoordinationRegion.SecurityCoordinator-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:SecurityCoordinator ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:SecurityCoordinator" ; + sh:name "OutageCoordinationRegion.SecurityCoordinator-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path ( nc:OutageCoordinationRegion.SecurityCoordinator rdf:type ) ; + sh:severity sh:Violation . + +er:EnergyComponent.EnergyConsumer-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "EnergyComponent.EnergyConsumer-cardinality" ; + sh:order 3 ; + sh:path nc:EnergyComponent.EnergyConsumer ; + sh:severity sh:Violation . + +er:SchedulingArea.SystemOperator-valueTypeNodeShape + rdf:type sh:NodeShape ; + sh:property er:SchedulingArea.SystemOperator-valueType ; + sh:targetClass nc:SchedulingArea , nc:SubSchedulingArea . + +er:ThyristorControlledSeriesCompensator.minimumCurrent-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "ThyristorControlledSeriesCompensator.minimumCurrent-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path nc:ThyristorControlledSeriesCompensator.minimumCurrent ; + sh:severity sh:Violation . + +er:SSSCSimulationSettings.maxIterations-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:integer ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "SSSCSimulationSettings.maxIterations-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path nc:SSSCSimulationSettings.maxIterations ; + sh:severity sh:Violation . + +er:Line rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype , er:Line.SchedulingArea-cardinality , er:Line.ACTieCorridor-valueType , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.description-cardinality , er:Line.ACTieCorridor-cardinality ; + sh:targetClass cim:Line . + +er:SSSCController.minVoltageInjection-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "SSSCController.minVoltageInjection-cardinality" ; + sh:order 0 ; + sh:path nc:SSSCController.minVoltageInjection ; + sh:severity sh:Violation . + +ido:IdentifiedObject.name-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ido:CardinalityIO ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "IdentifiedObject.name-cardinality" ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.name ; + sh:severity sh:Violation . + +er:SynchronousArea.nominalFrequency-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "SynchronousArea.nominalFrequency-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:SynchronousArea.nominalFrequency ; + sh:severity sh:Violation . + +er:VsCapabilityCurve.referenceVoltage-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "VsCapabilityCurve.referenceVoltage-cardinality" ; + sh:order 1 ; + sh:path nc:VsCapabilityCurve.referenceVoltage ; + sh:severity sh:Violation . + +er:DCCurrentControlFunction.droopCompensation-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "DCCurrentControlFunction.droopCompensation-cardinality" ; + sh:order 0 ; + sh:path nc:DCCurrentControlFunction.droopCompensation ; + sh:severity sh:Violation . + +er:AutomationFunction.type-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "AutomationFunction.type-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:AutomationFunction.type ; + sh:severity sh:Violation . + +er:GateInputPin.negate-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "GateInputPin.negate-cardinality" ; + sh:order 1 ; + sh:path nc:GateInputPin.negate ; + sh:severity sh:Violation . + +ido:IdentifiedObject.name-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ido:DatatypesGroupIO ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "IdentifiedObject.name-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.name ; + sh:severity sh:Violation . + +er:FossilFuel rdf:type sh:NodeShape ; + sh:property er:FossilFuel.FuelStorage-valueType , er:FossilFuel.FuelStorage-cardinality ; + sh:targetClass cim:FossilFuel . + +er:BiddingZone.CapacityCalculationRegion-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "BiddingZone.CapacityCalculationRegion-cardinality" ; + sh:order 1 ; + sh:path nc:BiddingZone.CapacityCalculationRegion ; + sh:severity sh:Violation . + +er:PTCTriggeredEquipment.ExceptionalPowerTransferCorridor-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "PTCTriggeredEquipment.ExceptionalPowerTransferCorridor-cardinality" ; + sh:order 0 ; + sh:path nc:PTCTriggeredEquipment.ExceptionalPowerTransferCorridor ; + sh:severity sh:Violation . + +er:CurrentDroopControlFunction.offsetInductive-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "CurrentDroopControlFunction.offsetInductive-cardinality" ; + sh:order 0 ; + sh:path nc:CurrentDroopControlFunction.offsetInductive ; + sh:severity sh:Violation . + +er:LoadFrequencyControlArea.frequencyRestorationReserveMaxRamp-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "LoadFrequencyControlArea.frequencyRestorationReserveMaxRamp-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path nc:LoadFrequencyControlArea.frequencyRestorationReserveMaxRamp ; + sh:severity sh:Violation . + +er:GeneratingUnit.warmStartupCost-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:decimal ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "GeneratingUnit.warmStartupCost-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path nc:GeneratingUnit.warmStartupCost ; + sh:severity sh:Violation . + +er:SSSCSimulationSettings + rdf:type sh:NodeShape ; + sh:property er:SSSCSimulationSettings.mRID-datatype , er:SSSCSimulationSettings.maxReactanceCorrection-datatype , er:SSSCSimulationSettings.maxMismatch-datatype , er:SSSCSimulationSettings.useDIDVestimation-datatype , er:SSSCSimulationSettings.maxIterations-datatype , er:SSSCSimulationSettings.mRID-cardinality , er:SSSCSimulationSettings.deltaReactance-cardinality , er:SSSCSimulationSettings.useDIDVestimation-cardinality , er:SSSCSimulationSettings.maxReactanceCorrection-cardinality , er:SSSCSimulationSettings.maxIterations-cardinality , er:SSSCSimulationSettings.deltaReactance-datatype , er:SSSCSimulationSettings.maxMismatch-cardinality ; + sh:targetClass nc:SSSCSimulationSettings . + +er:LoadFrequencyControlArea + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.energyIdentCodeEic-datatype , er:LoadFrequencyControlArea.FrequencyControlOperator-cardinality , ido:IdentifiedObject.description-datatype , er:LoadFrequencyControlArea.frequencyRestorationReserveDelay-datatype , ido:IdentifiedObject.mRID-datatype , er:LoadFrequencyControlArea.frequencyRestorationReserveMaxRamp-datatype , er:LoadFrequencyControlArea.LoadFrequencyControlBlock-cardinality , er:LoadFrequencyControlArea.frequencyRestorationReserveThreshold-cardinality , er:LoadFrequencyControlArea.frequencyRestorationReserveThreshold-datatype , ido:IdentifiedObject.mRID-cardinality , er:LoadFrequencyControlArea.includeFrequencyBias-datatype , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.name-cardinality , er:LoadFrequencyControlArea.frequencyBiasFactor-cardinality , er:LoadFrequencyControlArea.frequencyBiasFactor-datatype , er:LoadFrequencyControlArea.frequencyRestorationReserveDelay-cardinality , er:LoadFrequencyControlArea.LoadFrequencyControlBlock-valueType , ido:IdentifiedObject.description-cardinality , er:LoadFrequencyControlArea.frequencyRestorationReserveMaxRamp-cardinality , er:LoadFrequencyControlArea.deficientGenerationLimit-datatype , er:LoadFrequencyControlArea.FrequencyControlOperator-valueType , er:LoadFrequencyControlArea.deficientGenerationLimit-cardinality , ido:IdentifiedObject.energyIdentCodeEic-cardinality , er:LoadFrequencyControlArea.includeFrequencyBias-cardinality ; + sh:targetClass nc:LoadFrequencyControlArea . + +er:DirectCurrentSystemOperator + rdf:type sh:NodeShape ; + sh:property er:OrganisationRole.globalLocationNumber-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.energyIdentCodeEic-cardinality , er:OrganisationRole.globalLocationNumber-datatype , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.name-cardinality , er:OrganisationRole.Organisation-cardinality , er:OrganisationRole.Organisation-valueType , ido:IdentifiedObject.mRID-datatype ; + sh:targetClass nc:DirectCurrentSystemOperator . + +er:GeneratingUnit.coolDownTime-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "GeneratingUnit.coolDownTime-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:GeneratingUnit.coolDownTime ; + sh:severity sh:Violation . + +er:PowerElectronicsUnit.ScheduleResource-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerElectronicsUnit.ScheduleResource-cardinality" ; + sh:order 6 ; + sh:path nc:PowerElectronicsUnit.ScheduleResource ; + sh:severity sh:Violation . + +er:Equipment.AggregatedEquipment-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( cim:Equipment cim:HydroPump cim:PowerElectronicsUnit cim:GeneratingUnit cim:ACDCConverter cim:DCSeriesDevice cim:DCGround cim:DCSwitch cim:DCShunt cim:DCBusbar cim:DCLineSegment cim:DCChopper nc:PowerElectronicsMarineUnit nc:ChargingUnit nc:FlexibleEnergyUnit nc:PowerElectricalChemicalUnit nc:GeothermalGeneratingUnit cim:NuclearGeneratingUnit cim:EnergyConsumer cim:DCDisconnector cim:DCBreaker nc:StaticSynchronousSeriesCompensator nc:ThyristorControlledSeriesCompensator nc:ModularStaticSynchronousSeriesCompensator nc:StaticVarCompensator nc:StaticSynchronousCompensator ) ; + sh:message "One of the following occurs: 1) The value type is not IRI; 2) The value type is not the right class." ; + sh:name "Equipment.AggregatedEquipment-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 11 ; + sh:path ( cim:Equipment.AggregatedEquipment rdf:type ) ; + sh:severity sh:Violation . + +er:ScheduleResource.SchedulingArea-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:SchedulingArea nc:SubSchedulingArea ) ; + sh:message "One of the following occurs: 1) The value type is not IRI; 2) The value type is not the right class." ; + sh:name "ScheduleResource.SchedulingArea-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 6 ; + sh:path ( nc:ScheduleResource.SchedulingArea rdf:type ) ; + sh:severity sh:Violation . + +er:LoadFrequencyControlArea.FrequencyControlOperator-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:LoadFrequencyControlOperator ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:LoadFrequencyControlOperator" ; + sh:name "LoadFrequencyControlArea.FrequencyControlOperator-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path ( nc:LoadFrequencyControlArea.FrequencyControlOperator rdf:type ) ; + sh:severity sh:Violation . + +er:FACTSEquipment.capacitiveRating-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "FACTSEquipment.capacitiveRating-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:FACTSEquipment.capacitiveRating ; + sh:severity sh:Violation . + +er:FACTSEquipment.capacitiveRating-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "FACTSEquipment.capacitiveRating-cardinality" ; + sh:order 1 ; + sh:path nc:FACTSEquipment.capacitiveRating ; + sh:severity sh:Violation . + +er:CardinalityGroup rdf:type sh:PropertyGroup ; + rdfs:label "Cardinality" ; + sh:order 0 . + +er:GeneratingUnit.ScheduleResource-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "GeneratingUnit.ScheduleResource-cardinality" ; + sh:order 6 ; + sh:path nc:GeneratingUnit.ScheduleResource ; + sh:severity sh:Violation . + +er:DCConverterUnit rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.energyIdentCodeEic-datatype , er:DCConverterUnit.DCPole-cardinality , ido:IdentifiedObject.name-datatype , er:DCConverterUnit.DCPole-valueType , er:DCConverterUnit.Substation-cardinality , ido:IdentifiedObject.description-cardinality , er:DCConverterUnit.Substation-valueType , ido:IdentifiedObject.name-cardinality ; + sh:targetClass cim:DCConverterUnit . + +er:Feeder rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.description-datatype , er:Feeder.NamingSecondarySubstation-valueType , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.name-datatype , er:Feeder.NormalEnergizingSubstation-valueType , er:Feeder.SubSchedulingArea-valueType , er:Feeder.NormalEnergizedSubstation-valueType , er:Feeder.SubSchedulingArea-cardinality , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype , er:Feeder.NormalEnergizingSubstation-cardinality ; + sh:targetClass cim:Feeder . + +er:CircuitShare.normalContributionFactor-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "CircuitShare.normalContributionFactor-cardinality" ; + sh:order 1 ; + sh:path nc:CircuitShare.normalContributionFactor ; + sh:severity sh:Violation . + +er:TieCorridor.delayRegulatingReserve-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "TieCorridor.delayRegulatingReserve-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 7 ; + sh:path nc:TieCorridor.delayRegulatingReserve ; + sh:severity sh:Violation . + +er:AreaDispatchableUnit.SchedulingArea-valueTypeNodeShape + rdf:type sh:NodeShape ; + sh:property er:AreaDispatchableUnit.SchedulingArea-valueType ; + sh:targetClass nc:AreaDispatchableUnit . + +er:TapChangerController + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.mRID-cardinality , er:AutomationFunction.type-cardinality , er:AutomationFunction.type-datatype , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.mRID-datatype , er:AutomationFunction.PartOf-cardinality , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.description-datatype ; + sh:targetClass nc:TapChangerController . + +er:TapChanger.TapChangeController-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:TapChangerController ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:TapChangerController" ; + sh:name "TapChanger.TapChangeController-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path ( nc:TapChanger.TapChangeController rdf:type ) ; + sh:severity sh:Violation . + +er:OverlappingZone rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.name-cardinality ; + sh:targetClass nc:OverlappingZone . + +er:ReactiveCapabilityCurve.hydrogenPressure-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "ReactiveCapabilityCurve.hydrogenPressure-cardinality" ; + sh:order 1 ; + sh:path cim:ReactiveCapabilityCurve.hydrogenPressure ; + sh:severity sh:Violation . + +er:BiddingZoneBorder.BiddingZoneOne-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:BiddingZone ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:BiddingZone" ; + sh:name "BiddingZoneBorder.BiddingZoneOne-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path ( nc:BiddingZoneBorder.BiddingZoneOne rdf:type ) ; + sh:severity sh:Violation . + +er:TieCorridor.LoadFrequencyControlArea-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:LoadFrequencyControlArea ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:LoadFrequencyControlArea" ; + sh:name "TieCorridor.LoadFrequencyControlArea-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 11 ; + sh:path ( nc:TieCorridor.LoadFrequencyControlArea rdf:type ) ; + sh:severity sh:Violation . + +er:OperationalLimit.OperationalLimitType-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "OperationalLimit.OperationalLimitType-cardinality" ; + sh:order 4 ; + sh:path cim:OperationalLimit.OperationalLimitType ; + sh:severity sh:Violation . + +er:ScheduleResource.SchedulingArea-valueTypeNodeShape + rdf:type sh:NodeShape ; + sh:property er:ScheduleResource.SchedulingArea-valueType ; + sh:targetClass nc:ScheduleResource . + +er:GeneratingUnit.shutdownTime-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "GeneratingUnit.shutdownTime-cardinality" ; + sh:order 5 ; + sh:path nc:GeneratingUnit.shutdownTime ; + sh:severity sh:Violation . + +er:FACTSEquipment.inductiveRating-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "FACTSEquipment.inductiveRating-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path nc:FACTSEquipment.inductiveRating ; + sh:severity sh:Violation . + +er:CurrentDroopOverride.SSSCController-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:SSSCController ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:SSSCController" ; + sh:name "CurrentDroopOverride.SSSCController-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path ( nc:CurrentDroopOverride.SSSCController rdf:type ) ; + sh:severity sh:Violation . + +er:AreaDispatchableUnit.ScheduleResource-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:ScheduleResource ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:ScheduleResource" ; + sh:name "AreaDispatchableUnit.ScheduleResource-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 5 ; + sh:path ( nc:AreaDispatchableUnit.ScheduleResource rdf:type ) ; + sh:severity sh:Violation . + +er:CurrentDroopControlFunction.droopInductive-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "CurrentDroopControlFunction.droopInductive-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path nc:CurrentDroopControlFunction.droopInductive ; + sh:severity sh:Violation . + +er:OrganisationRole.Organisation-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "OrganisationRole.Organisation-cardinality" ; + sh:order 3 ; + sh:path cim:OrganisationRole.Organisation ; + sh:severity sh:Violation . + +er:TCSCCompensationPoint.compensationImpedance-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "TCSCCompensationPoint.compensationImpedance-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path nc:TCSCCompensationPoint.compensationImpedance ; + sh:severity sh:Violation . + +er:CurveData.y1value-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "CurveData.y1value-cardinality" ; + sh:order 3 ; + sh:path cim:CurveData.y1value ; + sh:severity sh:Violation . + +er:PowerTransferCorridor.normalEnabled-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerTransferCorridor.normalEnabled-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path nc:PowerTransferCorridor.normalEnabled ; + sh:severity sh:Violation . + +er:StaticSynchronousCompensator + rdf:type sh:NodeShape ; + sh:property er:Equipment.AggregatedEquipment-cardinality , ido:IdentifiedObject.name-datatype , er:FACTSEquipment.slope-datatype , er:Equipment.Circuit-cardinality , ido:IdentifiedObject.name-cardinality , er:RegulatingCondEq.EquipmentController-cardinality , er:FACTSEquipment.capacitiveRating-cardinality , er:FACTSEquipment.inductiveRating-datatype , ido:IdentifiedObject.energyIdentCodeEic-datatype , er:FACTSEquipment.capacitiveRating-datatype , er:FACTSEquipment.inductiveRating-cardinality , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.mRID-datatype , er:FACTSEquipment.slope-cardinality ; + sh:targetClass nc:StaticSynchronousCompensator . + +er:EnergyConsumer.longPF-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "EnergyConsumer.longPF-cardinality" ; + sh:order 3 ; + sh:path nc:EnergyConsumer.longPF ; + sh:severity sh:Violation . + +er:FlexibleEnergyUnit.uncontrollable-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "FlexibleEnergyUnit.uncontrollable-cardinality" ; + sh:order 1 ; + sh:path nc:FlexibleEnergyUnit.uncontrollable ; + sh:severity sh:Violation . + +er:DurationOverloadLimitCurve + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.energyIdentCodeEic-cardinality , er:Curve.curveStyle-cardinality , er:Curve.y2Multiplier-datatype , ido:IdentifiedObject.name-cardinality , er:Curve.xMultiplier-cardinality , ido:IdentifiedObject.description-cardinality , er:Curve.y2Unit-cardinality , ido:IdentifiedObject.name-datatype , er:Curve.y2Unit-datatype , er:Curve.curveStyle-datatype , ido:IdentifiedObject.mRID-datatype , er:Curve.xMultiplier-datatype , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.description-datatype , er:Curve.y1Multiplier-cardinality , er:Curve.y1Unit-datatype , er:Curve.y1Multiplier-datatype , er:Curve.y1Unit-cardinality , er:Curve.xUnit-datatype , er:Curve.xUnit-cardinality , ido:IdentifiedObject.mRID-cardinality , er:Curve.y2Multiplier-cardinality ; + sh:targetClass nc:DurationOverloadLimitCurve . + +er:OperationalLimitType + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.mRID-datatype , er:OperationalLimitType.isMinimum-cardinality , er:OperationalLimitType.TemporaryBaseOverloadLimitCurve-cardinality , er:OperationalLimitType.isMinimum-datatype , ido:IdentifiedObject.description-datatype , er:OperationalLimitType.TemporaryDurationOverloadLimitCurve-valueType , er:OperationalLimitType.RecoveryOverloadLimitCurve-cardinality , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.mRID-cardinality , er:OperationalLimitType.PermanentSolarRadiationCurve-cardinality , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.name-cardinality , er:OperationalLimitType.TemporaryDurationOverloadLimitCurve-cardinality , ido:IdentifiedObject.energyIdentCodeEic-cardinality , er:OperationalLimitType.PermanentAmbientTemperatureDependencyCurve-valueType , er:OperationalLimitType.RecoveryOverloadLimitCurve-valueType , ido:IdentifiedObject.energyIdentCodeEic-datatype , er:OperationalLimitType.direction-datatype , er:OperationalLimitType.PermanentSolarRadiationCurve-valueType , er:OperationalLimitType.direction-cardinality , er:OperationalLimitType.TemporaryBaseOverloadLimitCurve-valueType , er:OperationalLimitType.PermanentAmbientTemperatureDependencyCurve-cardinality ; + sh:targetClass cim:OperationalLimitType . + +er:DCTieCorridor.SchedulingArea-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:SchedulingArea nc:SubSchedulingArea ) ; + sh:message "One of the following occurs: 1) The value type is not IRI; 2) The value type is not the right class." ; + sh:name "DCTieCorridor.SchedulingArea-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path ( nc:DCTieCorridor.SchedulingArea rdf:type ) ; + sh:severity sh:Violation . + +er:SSSCSimulationSettings.mRID-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "SSSCSimulationSettings.mRID-cardinality" ; + sh:order 5 ; + sh:path nc:SSSCSimulationSettings.mRID ; + sh:severity sh:Violation . + +er:DCVoltageControlFunction + rdf:type sh:NodeShape ; + sh:property er:FunctionBlock.priority-cardinality , er:ControlFunctionBlock.isDiscrete-datatype , er:ControlFunctionBlock.isDiscrete-cardinality , er:ControlFunctionBlock.maxAllowedTargetValue-cardinality , er:ControlFunctionBlock.minAllowedTargetValue-cardinality , er:ControlFunctionBlock.targetDeadband-cardinality , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.name-cardinality , er:ControlFunctionBlock.targetDeadband-datatype , ido:IdentifiedObject.description-datatype , er:FunctionBlock.priority-datatype , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.name-datatype , er:ControlFunctionBlock.minAllowedTargetValue-datatype , ido:IdentifiedObject.description-cardinality , er:FunctionBlock.AutomationFunction-cardinality , er:ControlFunctionBlock.maxAllowedTargetValue-datatype ; + sh:targetClass nc:DCVoltageControlFunction . + +er:VsCapabilityCurve rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.energyIdentCodeEic-cardinality , er:Curve.y1Unit-datatype , er:Curve.y2Unit-cardinality , er:Curve.y1Unit-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.mRID-datatype , er:Curve.y2Multiplier-cardinality , er:VsCapabilityCurve.referenceVoltage-cardinality , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.mRID-cardinality , er:Curve.y1Multiplier-cardinality , er:Curve.y2Multiplier-datatype , ido:IdentifiedObject.name-cardinality , er:Curve.xUnit-cardinality , er:VsCapabilityCurve.referenceVoltage-datatype , er:Curve.xUnit-datatype , er:Curve.xMultiplier-cardinality , er:VsCapabilityCurve.VsConverter-cardinality , er:Curve.y2Unit-datatype , er:Curve.curveStyle-cardinality , er:Curve.y1Multiplier-datatype , er:Curve.curveStyle-datatype , ido:IdentifiedObject.description-datatype , er:Curve.xMultiplier-datatype ; + sh:targetClass cim:VsCapabilityCurve . + +er:DCShunt rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.name-cardinality , er:Equipment.Circuit-cardinality , er:Equipment.AggregatedEquipment-cardinality , er:DCConductingEquipment.ratedCurrent-datatype , er:DCConductingEquipment.ratedCurrent-cardinality ; + sh:targetClass cim:DCShunt . + +er:LoadFrequencyControlArea.FrequencyControlOperator-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "LoadFrequencyControlArea.FrequencyControlOperator-cardinality" ; + sh:order 0 ; + sh:path nc:LoadFrequencyControlArea.FrequencyControlOperator ; + sh:severity sh:Violation . + +er:NuclearGeneratingUnit.reactorKind-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "NuclearGeneratingUnit.reactorKind-cardinality" ; + sh:order 0 ; + sh:path nc:NuclearGeneratingUnit.reactorKind ; + sh:severity sh:Violation . + +er:SchedulingArea.SystemOperator-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:DirectCurrentSystemOperator nc:TransmissionSystemOperator nc:ClosedDistributionSystemOperator nc:DistributionSystemOperator ) ; + sh:message "One of the following occurs: 1) The value type is not IRI; 2) The value type is not the right class." ; + sh:name "SchedulingArea.SystemOperator-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 4 ; + sh:path ( nc:SchedulingArea.SystemOperator rdf:type ) ; + sh:severity sh:Violation . + +er:SSSCSimulationSettings.maxReactanceCorrection-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "SSSCSimulationSettings.maxReactanceCorrection-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 6 ; + sh:path nc:SSSCSimulationSettings.maxReactanceCorrection ; + sh:severity sh:Violation . + +er:FACTSEquipment.slope-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "FACTSEquipment.slope-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:FACTSEquipment.slope ; + sh:severity sh:Violation . + +er:LoadFrequencyControlArea.frequencyRestorationReserveThreshold-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "LoadFrequencyControlArea.frequencyRestorationReserveThreshold-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 6 ; + sh:path nc:LoadFrequencyControlArea.frequencyRestorationReserveThreshold ; + sh:severity sh:Violation . + +er:GateInputPin.absoluteValue-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "GateInputPin.absoluteValue-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 6 ; + sh:path nc:GateInputPin.absoluteValue ; + sh:severity sh:Violation . + +er:DCChopper rdf:type sh:NodeShape ; + sh:property er:DCConductingEquipment.ratedCurrent-cardinality , er:DCConductingEquipment.ratedCurrent-datatype , er:Equipment.AggregatedEquipment-cardinality , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.description-datatype , er:Equipment.Circuit-cardinality , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype ; + sh:targetClass cim:DCChopper . + +er:ModularStaticSynchronousSeriesCompensator + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.description-cardinality , er:FACTSEquipment.capacitiveRating-datatype , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype , er:FACTSEquipment.capacitiveRating-cardinality , er:Equipment.Circuit-cardinality , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.mRID-datatype , er:RegulatingCondEq.EquipmentController-cardinality , er:FACTSEquipment.inductiveRating-datatype , er:Equipment.AggregatedEquipment-cardinality , er:FACTSEquipment.slope-datatype , er:FACTSEquipment.slope-cardinality , ido:IdentifiedObject.name-datatype , er:FACTSEquipment.inductiveRating-cardinality ; + sh:targetClass nc:ModularStaticSynchronousSeriesCompensator . + +er:LoadFrequencyControlArea.frequencyRestorationReserveDelay-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "LoadFrequencyControlArea.frequencyRestorationReserveDelay-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 9 ; + sh:path nc:LoadFrequencyControlArea.frequencyRestorationReserveDelay ; + sh:severity sh:Violation . + +er:LoadFrequencyControlArea.frequencyRestorationReserveThreshold-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "LoadFrequencyControlArea.frequencyRestorationReserveThreshold-cardinality" ; + sh:order 6 ; + sh:path nc:LoadFrequencyControlArea.frequencyRestorationReserveThreshold ; + sh:severity sh:Violation . + +er:TCSCCompensationPoint.ThyristorControlledSeriesCompensator-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:ThyristorControlledSeriesCompensator ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:ThyristorControlledSeriesCompensator" ; + sh:name "TCSCCompensationPoint.ThyristorControlledSeriesCompensator-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path ( nc:TCSCCompensationPoint.ThyristorControlledSeriesCompensator rdf:type ) ; + sh:severity sh:Violation . + +er:GeothermalGeneratingUnit + rdf:type sh:NodeShape ; + sh:property er:GeneratingUnit.ScheduleResource-cardinality , er:GeneratingUnit.warmStartupCost-cardinality , er:GeneratingUnit.shutdownCost-datatype , er:GeneratingUnit.warmStartupTime-datatype , ido:IdentifiedObject.mRID-datatype , er:GeneratingUnit.minimumOffTime-cardinality , er:GeneratingUnit.raiseRampRate-cardinality , er:GeneratingUnit.PrimaryEnergySource-cardinality , er:Equipment.AggregatedEquipment-cardinality , er:GeneratingUnit.startupRampRate-cardinality , er:GeneratingUnit.shutdownCost-cardinality , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.mRID-cardinality , er:GeneratingUnit.minEconomicP-datatype , er:GeneratingUnit.warmStartupTime-cardinality , er:GeneratingUnit.maxEconomicP-datatype , er:GeneratingUnit.warmStartupCost-datatype , er:Equipment.Circuit-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype , er:GeneratingUnit.shutdownTime-datatype , er:GeneratingUnit.coolDownTime-cardinality , ido:IdentifiedObject.description-datatype , er:GeneratingUnit.raiseRampRate-datatype , er:GeneratingUnit.maxStartupLoad-cardinality , er:GeneratingUnit.maxStartupLoad-datatype , er:GeneratingUnit.minimumOffTime-datatype , er:GeothermalGeneratingUnit.kind-datatype , er:GeneratingUnit.shutdownTime-cardinality , er:GeneratingUnit.coolDownTime-datatype , er:GeneratingUnit.maxEconomicP-cardinality , er:GeneratingUnit.startupRampRate-datatype , er:GeneratingUnit.lowerRampRate-datatype , ido:IdentifiedObject.name-datatype , er:GeneratingUnit.minEconomicP-cardinality , er:GeneratingUnit.lowerRampRate-cardinality , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.energyIdentCodeEic-cardinality , er:GeneratingUnit.ScheduleResource-valueType , er:GeothermalGeneratingUnit.kind-cardinality ; + sh:targetClass nc:GeothermalGeneratingUnit . + +er:PowerElectronicsUnit.shortPF-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerElectronicsUnit.shortPF-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path nc:PowerElectronicsUnit.shortPF ; + sh:severity sh:Violation . + +er:OutageCoordinationRegion.SecurityCoordinator-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "OutageCoordinationRegion.SecurityCoordinator-cardinality" ; + sh:order 0 ; + sh:path nc:OutageCoordinationRegion.SecurityCoordinator ; + sh:severity sh:Violation . + +er:EnergyBlockOrder.EnergyBlockComponent-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:EnergyBlockComponent ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:EnergyBlockComponent" ; + sh:name "EnergyBlockOrder.EnergyBlockComponent-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 3 ; + sh:path ( nc:EnergyBlockOrder.EnergyBlockComponent rdf:type ) ; + sh:severity sh:Violation . + +er:InjectionController + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.name-cardinality , er:AutomationFunction.type-cardinality , ido:IdentifiedObject.description-cardinality , er:AutomationFunction.type-datatype , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.energyIdentCodeEic-datatype , er:AutomationFunction.PartOf-cardinality , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.description-datatype ; + sh:targetClass nc:InjectionController . + +er:DCPole.participationFactor-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "DCPole.participationFactor-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:DCPole.participationFactor ; + sh:severity sh:Violation . + +er:RecoveryOverloadLimitCurve + rdf:type sh:NodeShape ; + sh:property er:Curve.xMultiplier-cardinality , ido:IdentifiedObject.name-cardinality , er:Curve.y2Unit-datatype , er:Curve.y2Multiplier-cardinality , er:Curve.y1Unit-datatype , er:Curve.y1Unit-cardinality , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.mRID-datatype , er:Curve.y2Unit-cardinality , er:Curve.curveStyle-datatype , ido:IdentifiedObject.mRID-cardinality , er:Curve.y2Multiplier-datatype , er:Curve.curveStyle-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.description-cardinality , er:Curve.xMultiplier-datatype , er:Curve.y1Multiplier-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype , er:Curve.xUnit-datatype , er:Curve.y1Multiplier-datatype , er:Curve.xUnit-cardinality ; + sh:targetClass nc:RecoveryOverloadLimitCurve . + +er:GateInputPin.duration-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "GateInputPin.duration-cardinality" ; + sh:order 4 ; + sh:path nc:GateInputPin.duration ; + sh:severity sh:Violation . + +er:BiddingZone.isTradeEnabled-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "BiddingZone.isTradeEnabled-cardinality" ; + sh:order 4 ; + sh:path nc:BiddingZone.isTradeEnabled ; + sh:severity sh:Violation . + +er:SchedulingArea.SynchronousArea-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:SynchronousArea ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:SynchronousArea" ; + sh:name "SchedulingArea.SynchronousArea-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 15 ; + sh:path ( nc:SchedulingArea.SynchronousArea rdf:type ) ; + sh:severity sh:Violation . + +er:GeneratingUnit.maxEconomicP-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "GeneratingUnit.maxEconomicP-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 16 ; + sh:path cim:GeneratingUnit.maxEconomicP ; + sh:severity sh:Violation . + +er:PowerElectronicsUnit.ScheduleResource-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:ScheduleResource ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:ScheduleResource" ; + sh:name "PowerElectronicsUnit.ScheduleResource-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 6 ; + sh:path ( nc:PowerElectronicsUnit.ScheduleResource rdf:type ) ; + sh:severity sh:Violation . + +er:LoadFrequencyControlArea.frequencyRestorationReserveMaxRamp-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "LoadFrequencyControlArea.frequencyRestorationReserveMaxRamp-cardinality" ; + sh:order 2 ; + sh:path nc:LoadFrequencyControlArea.frequencyRestorationReserveMaxRamp ; + sh:severity sh:Violation . + +er:SchedulingArea.BiddingZone-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:BiddingZone ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:BiddingZone" ; + sh:name "SchedulingArea.BiddingZone-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 13 ; + sh:path ( nc:SchedulingArea.BiddingZone rdf:type ) ; + sh:severity sh:Violation . + +er:LossCurve rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.description-datatype , er:Curve.y1Unit-cardinality , er:Curve.y1Multiplier-datatype , er:Curve.curveStyle-datatype , ido:IdentifiedObject.mRID-cardinality , er:Curve.y2Unit-cardinality , ido:IdentifiedObject.energyIdentCodeEic-cardinality , er:Curve.y2Multiplier-datatype , er:Curve.y2Multiplier-cardinality , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype , er:Curve.xUnit-cardinality , ido:IdentifiedObject.description-cardinality , er:Curve.xMultiplier-datatype , ido:IdentifiedObject.mRID-datatype , er:Curve.curveStyle-cardinality , er:Curve.xMultiplier-cardinality , er:Curve.xUnit-datatype , er:Curve.y1Multiplier-cardinality , er:LossCurve.FACTSEquipment-cardinality , er:Curve.y2Unit-datatype , er:Curve.y1Unit-datatype ; + sh:targetClass nc:LossCurve . + +er:CircuitShare.PowerTransferCorridor-valueTypeNodeShape + rdf:type sh:NodeShape ; + sh:property er:CircuitShare.PowerTransferCorridor-valueType ; + sh:targetClass nc:CircuitShare . + +er:ChargingUnit rdf:type sh:NodeShape ; + sh:property er:PowerElectronicsUnit.shortPF-datatype , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.mRID-cardinality , er:PowerElectronicsUnit.maxEconomicP-cardinality , er:PowerElectronicsUnit.longPF-datatype , ido:IdentifiedObject.energyIdentCodeEic-datatype , er:Equipment.Circuit-cardinality , er:PowerElectronicsUnit.maxEconomicP-datatype , er:PowerElectronicsUnit.ScheduleResource-cardinality , er:PowerElectronicsUnit.PrimaryEnergySource-cardinality , er:PowerElectronicsUnit.minEconomicP-cardinality , ido:IdentifiedObject.description-cardinality , er:PowerElectronicsUnit.longPF-cardinality , er:PowerElectronicsUnit.ScheduleResource-valueType , er:Equipment.AggregatedEquipment-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.mRID-datatype , er:PowerElectronicsUnit.shortPF-cardinality , er:PowerElectronicsUnit.minEconomicP-datatype , ido:IdentifiedObject.name-datatype ; + sh:targetClass nc:ChargingUnit . + +er:SecurityCoordinator + rdf:type sh:NodeShape ; + sh:property er:OrganisationRole.globalLocationNumber-cardinality , er:OrganisationRole.globalLocationNumber-datatype , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.name-cardinality , er:OrganisationRole.Organisation-valueType , ido:IdentifiedObject.mRID-cardinality , er:OrganisationRole.Organisation-cardinality ; + sh:targetClass nc:SecurityCoordinator . + +er:DCConverterUnit.DCPole-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:DCPole ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:DCPole" ; + sh:name "DCConverterUnit.DCPole-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path ( nc:DCConverterUnit.DCPole rdf:type ) ; + sh:severity sh:Violation . + +er:DistributionSystemOperator + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.energyIdentCodeEic-cardinality , er:OrganisationRole.globalLocationNumber-cardinality , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.name-datatype , er:OrganisationRole.Organisation-valueType , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.description-datatype , er:OrganisationRole.globalLocationNumber-datatype , ido:IdentifiedObject.name-cardinality , er:OrganisationRole.Organisation-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype ; + sh:targetClass nc:DistributionSystemOperator . + +er:GeneratingUnit.minimumOffTime-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "GeneratingUnit.minimumOffTime-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 13 ; + sh:path cim:GeneratingUnit.minimumOffTime ; + sh:severity sh:Violation . + +er:CapacityCalculationRegion.SecurityCoordinator-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "CapacityCalculationRegion.SecurityCoordinator-cardinality" ; + sh:order 1 ; + sh:path nc:CapacityCalculationRegion.SecurityCoordinator ; + sh:severity sh:Violation . + +er:Substation.SchedulingArea-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:SchedulingArea nc:SubSchedulingArea ) ; + sh:message "One of the following occurs: 1) The value type is not IRI; 2) The value type is not the right class." ; + sh:name "Substation.SchedulingArea-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path ( nc:Substation.SchedulingArea rdf:type ) ; + sh:severity sh:Violation . + +er:CurrentDroopOverride.offsetInductive-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "CurrentDroopOverride.offsetInductive-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path nc:CurrentDroopOverride.offsetInductive ; + sh:severity sh:Violation . + +er:AreaDispatchableUnit.TieCorridor-valueTypeNodeShape + rdf:type sh:NodeShape ; + sh:property er:AreaDispatchableUnit.TieCorridor-valueType ; + sh:targetClass nc:AreaDispatchableUnit . + +er:TieCorridor.BiddingZoneBorder-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "TieCorridor.BiddingZoneBorder-cardinality" ; + sh:order 12 ; + sh:path nc:TieCorridor.BiddingZoneBorder ; + sh:severity sh:Violation . + +er:ThyristorControlledSeriesCompensator.reconnectionCurrent-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "ThyristorControlledSeriesCompensator.reconnectionCurrent-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path nc:ThyristorControlledSeriesCompensator.reconnectionCurrent ; + sh:severity sh:Violation . + +er:VoltageAngleLimit.isFlowToRefTerminal-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "VoltageAngleLimit.isFlowToRefTerminal-cardinality" ; + sh:order 1 ; + sh:path nc:VoltageAngleLimit.isFlowToRefTerminal ; + sh:severity sh:Violation . + +er:DCTieCorridor.rampingKind-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "DCTieCorridor.rampingKind-cardinality" ; + sh:order 5 ; + sh:path nc:DCTieCorridor.rampingKind ; + sh:severity sh:Violation . + +er:EnergyGroup.SchedulingArea-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:SchedulingArea nc:SubSchedulingArea ) ; + sh:message "One of the following occurs: 1) The value type is not IRI; 2) The value type is not the right class." ; + sh:name "EnergyGroup.SchedulingArea-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 3 ; + sh:path ( nc:EnergyGroup.SchedulingArea rdf:type ) ; + sh:severity sh:Violation . + +er:CurrentDroopOverride.droopCapacitive-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "CurrentDroopOverride.droopCapacitive-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:CurrentDroopOverride.droopCapacitive ; + sh:severity sh:Violation . + +er:PowerInfeedLimit rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.energyIdentCodeEic-datatype , er:OperationalLimit.OperationalLimitSet-cardinality , ido:IdentifiedObject.mRID-datatype , er:OperationalLimit.OperationalLimitType-cardinality , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.description-cardinality , er:PowerInfeedLimit.normalValue-datatype , er:OperationalLimit.OperationalLimitSet-valueType , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.energyIdentCodeEic-cardinality , er:OperationalLimit.OperationalLimitType-valueType , er:PowerInfeedLimit.normalValue-cardinality , ido:IdentifiedObject.description-datatype ; + sh:targetClass nc:PowerInfeedLimit . + +er:Feeder.SubSchedulingArea-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Feeder.SubSchedulingArea-cardinality" ; + sh:order 1 ; + sh:path nc:Feeder.SubSchedulingArea ; + sh:severity sh:Violation . + +er:DCPole.DCTieCorridor-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:DCTieCorridor ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:DCTieCorridor" ; + sh:name "DCPole.DCTieCorridor-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path ( nc:DCPole.DCTieCorridor rdf:type ) ; + sh:severity sh:Violation . + +er:Curve.y2Multiplier-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Curve.y2Multiplier-cardinality" ; + sh:order 6 ; + sh:path cim:Curve.y2Multiplier ; + sh:severity sh:Violation . + +er:DCTieCorridor rdf:type sh:NodeShape ; + sh:property er:DCTieCorridor.DirectCurrentController-valueType , er:TieCorridor.maxRegulatingReserveRamp-datatype , er:TieCorridor.maxRegulatingReserveRamp-cardinality , er:TieCorridor.delayRegulatingReserve-datatype , ido:IdentifiedObject.description-datatype , er:DCTieCorridor.maxRegulatingReserve-cardinality , er:DCTieCorridor.SchedulingArea-cardinality , ido:IdentifiedObject.mRID-datatype , er:DCTieCorridor.minRegulatingReserve-datatype , er:DCTieCorridor.DirectCurrentController-cardinality , ido:IdentifiedObject.description-cardinality , er:TieCorridor.BiddingZoneBorder-valueType , er:DCTieCorridor.rampingKind-cardinality , er:TieCorridor.LoadFrequencyControlArea-cardinality , er:DCTieCorridor.minRegulatingReserve-cardinality , er:TieCorridor.delayRegulatingReserve-cardinality , er:TieCorridor.LoadFrequencyControlArea-valueType , er:TieCorridor.thresholdRegulatingReserve-datatype , er:TieCorridor.thresholdRegulatingReserve-cardinality , ido:IdentifiedObject.mRID-cardinality , er:DCTieCorridor.maxRegulatingReserve-datatype , er:TieCorridor.BiddingZoneBorder-cardinality , er:DCTieCorridor.rampingKind-datatype , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.name-datatype ; + sh:targetClass nc:DCTieCorridor . + +ido:IdentifiedObject.energyIdentCodeEic-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ido:CardinalityIO ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "IdentifiedObject.energyIdentCodeEic-cardinality" ; + sh:order 0.1 ; + sh:path eu:IdentifiedObject.energyIdentCodeEic ; + sh:severity sh:Violation . + +er:FossilFuel.FuelStorage-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "FossilFuel.FuelStorage-cardinality" ; + sh:order 0 ; + sh:path nc:FossilFuel.FuelStorage ; + sh:severity sh:Violation . + +er:DCConverterUnit.DCPole-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "DCConverterUnit.DCPole-cardinality" ; + sh:order 0 ; + sh:path nc:DCConverterUnit.DCPole ; + sh:severity sh:Violation . + +er:Curve.xMultiplier-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Curve.xMultiplier-cardinality" ; + sh:order 5 ; + sh:path cim:Curve.xMultiplier ; + sh:severity sh:Violation . + +er:GeothermalGeneratingUnit.kind-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "GeothermalGeneratingUnit.kind-cardinality" ; + sh:order 0 ; + sh:path nc:GeothermalGeneratingUnit.kind ; + sh:severity sh:Violation . + +er:EnergyGroup rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.description-cardinality , er:EnergyGroup.shortPF-datatype , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.name-datatype , er:EnergyGroup.SchedulingArea-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.mRID-datatype , er:EnergyGroup.longPF-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype , er:EnergyGroup.EnergyType-cardinality , er:EnergyGroup.longPF-datatype , er:EnergyGroup.shortPF-cardinality ; + sh:targetClass nc:EnergyGroup . + +er:EnergyGroup.SchedulingArea-valueTypeNodeShape + rdf:type sh:NodeShape ; + sh:property er:EnergyGroup.SchedulingArea-valueType ; + sh:targetClass nc:EnergyGroup . + +er:Equipment.Circuit-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Equipment.Circuit-cardinality" ; + sh:order 12 ; + sh:path nc:Equipment.Circuit ; + sh:severity sh:Violation . + +er:Curve.xMultiplier-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:in ( cim:UnitMultiplier.none cim:UnitMultiplier.k cim:UnitMultiplier.M ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "Curve.xMultiplier-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 5 ; + sh:path cim:Curve.xMultiplier ; + sh:severity sh:Violation . + +er:BiddingZoneBorder.CapacityCalculationRegion-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "BiddingZoneBorder.CapacityCalculationRegion-cardinality" ; + sh:order 0 ; + sh:path nc:BiddingZoneBorder.CapacityCalculationRegion ; + sh:severity sh:Violation . + +er:EnergyComponent.GeneratingUnit-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( cim:GeneratingUnit nc:GeothermalGeneratingUnit cim:NuclearGeneratingUnit ) ; + sh:message "One of the following occurs: 1) The value type is not IRI; 2) The value type is not the right class." ; + sh:name "EnergyComponent.GeneratingUnit-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 4 ; + sh:path ( nc:EnergyComponent.GeneratingUnit rdf:type ) ; + sh:severity sh:Violation . + +er:AreaDispatchableUnit.HydroPump-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( cim:HydroPump ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: cim:HydroPump" ; + sh:name "AreaDispatchableUnit.HydroPump-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 3 ; + sh:path ( nc:AreaDispatchableUnit.HydroPump rdf:type ) ; + sh:severity sh:Violation . + +er:FunctionBlock.priority-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:integer ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "FunctionBlock.priority-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 7 ; + sh:path nc:FunctionBlock.priority ; + sh:severity sh:Violation . + +er:ReactiveCapabilityCurve.SynchronousMachine2-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "ReactiveCapabilityCurve.SynchronousMachine2-cardinality" ; + sh:order 0 ; + sh:path cim:ReactiveCapabilityCurve.SynchronousMachine2 ; + sh:severity sh:Violation . + +er:SSSCSimulationSettings.maxIterations-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "SSSCSimulationSettings.maxIterations-cardinality" ; + sh:order 4 ; + sh:path nc:SSSCSimulationSettings.maxIterations ; + sh:severity sh:Violation . + +er:GeneratingUnit.shutdownCost-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:decimal ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "GeneratingUnit.shutdownCost-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 7 ; + sh:path nc:GeneratingUnit.shutdownCost ; + sh:severity sh:Violation . + +er:SSSCController.minOperatingCurrentLimit-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "SSSCController.minOperatingCurrentLimit-cardinality" ; + sh:order 1 ; + sh:path nc:SSSCController.minOperatingCurrentLimit ; + sh:severity sh:Violation . + +er:DCCurrentControlFunction.droopCompensation-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "DCCurrentControlFunction.droopCompensation-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:DCCurrentControlFunction.droopCompensation ; + sh:severity sh:Violation . + +er:AreaDispatchableUnit.HydroPump-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AreaDispatchableUnit.HydroPump-cardinality" ; + sh:order 3 ; + sh:path nc:AreaDispatchableUnit.HydroPump ; + sh:severity sh:Violation . + +er:BiddingZoneBorder.BiddingZoneTwo-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:BiddingZone ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:BiddingZone" ; + sh:name "BiddingZoneBorder.BiddingZoneTwo-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 3 ; + sh:path ( nc:BiddingZoneBorder.BiddingZoneTwo rdf:type ) ; + sh:severity sh:Violation . + +er:GateInputPin.thresholdValue-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "GateInputPin.thresholdValue-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 5 ; + sh:path nc:GateInputPin.thresholdValue ; + sh:severity sh:Violation . + +er:Line.ACTieCorridor-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Line.ACTieCorridor-cardinality" ; + sh:order 0 ; + sh:path nc:Line.ACTieCorridor ; + sh:severity sh:Violation . + +er:DCConductingEquipment.ratedCurrent-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "DCConductingEquipment.ratedCurrent-cardinality" ; + sh:order 0 ; + sh:path cim:DCConductingEquipment.ratedCurrent ; + sh:severity sh:Violation . + +er:BiddingZoneBorder.BiddingZoneOne-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "BiddingZoneBorder.BiddingZoneOne-cardinality" ; + sh:order 2 ; + sh:path nc:BiddingZoneBorder.BiddingZoneOne ; + sh:severity sh:Violation . + +er:HydroPowerPlant.Reservoir-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( cim:Reservoir ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: cim:Reservoir" ; + sh:name "HydroPowerPlant.Reservoir-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path ( cim:HydroPowerPlant.Reservoir rdf:type ) ; + sh:severity sh:Violation . + +er:BiddingZone.CapacityCalculationRegion-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:CapacityCalculationRegion ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:CapacityCalculationRegion" ; + sh:name "BiddingZone.CapacityCalculationRegion-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path ( nc:BiddingZone.CapacityCalculationRegion rdf:type ) ; + sh:severity sh:Violation . + +er:EnergyBlockOrder.EnergyBlockComponent-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "EnergyBlockOrder.EnergyBlockComponent-cardinality" ; + sh:order 3 ; + sh:path nc:EnergyBlockOrder.EnergyBlockComponent ; + sh:severity sh:Violation . + +er:TieFlow.TieCorridor-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "TieFlow.TieCorridor-cardinality" ; + sh:order 0 ; + sh:path nc:TieFlow.TieCorridor ; + sh:severity sh:Violation . + +er:FunctionOutputVariable.FunctionBlack-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:DCVoltageControlFunction nc:VoltageControlFunction nc:PowerFactorControlFunction nc:DCCurrentControlFunction nc:PhaseControlFunction nc:CurrentControlFunction nc:VoltageInjectionControlFunction nc:CurrentDroopControlFunction nc:ReactivePowerControlFunction nc:ImpedanceControlFunction nc:ActivePowerControlFunction ) ; + sh:message "One of the following occurs: 1) The value type is not IRI; 2) The value type is not the right class." ; + sh:name "FunctionOutputVariable.FunctionBlack-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path ( nc:FunctionOutputVariable.FunctionBlack rdf:type ) ; + sh:severity sh:Violation . + +er:FunctionOutputVariable.FunctionBlack-valueTypeNodeShape + rdf:type sh:NodeShape ; + sh:property er:FunctionOutputVariable.FunctionBlack-valueType ; + sh:targetClass nc:FunctionOutputVariable . + +er:DirectCurrentCircuit + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.name-datatype ; + sh:targetClass nc:DirectCurrentCircuit . + +er:RegulatingCondEq.EquipmentController-valueTypeNodeShape + rdf:type sh:NodeShape ; + sh:property er:RegulatingCondEq.EquipmentController-valueType ; + sh:targetClass nc:StaticVarCompensator , nc:ModularStaticSynchronousSeriesCompensator , nc:ThyristorControlledSeriesCompensator , nc:StaticSynchronousCompensator , nc:StaticSynchronousSeriesCompensator . + +er:TieCorridor.thresholdRegulatingReserve-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "TieCorridor.thresholdRegulatingReserve-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 8 ; + sh:path nc:TieCorridor.thresholdRegulatingReserve ; + sh:severity sh:Violation . + +ido:IdentifiedObject.mRID-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ido:DatatypesGroupIO ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "IdentifiedObject.mRID-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.mRID ; + sh:severity sh:Violation . + +er:SynchronousArea.nominalFrequency-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "SynchronousArea.nominalFrequency-cardinality" ; + sh:order 1 ; + sh:path nc:SynchronousArea.nominalFrequency ; + sh:severity sh:Violation . + +er:GeneratingUnit.minEconomicP-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "GeneratingUnit.minEconomicP-cardinality" ; + sh:order 12 ; + sh:path cim:GeneratingUnit.minEconomicP ; + sh:severity sh:Violation . + +er:CurrentDroopControlFunction.offsetCapacitive-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "CurrentDroopControlFunction.offsetCapacitive-cardinality" ; + sh:order 1 ; + sh:path nc:CurrentDroopControlFunction.offsetCapacitive ; + sh:severity sh:Violation . + +er:LoadFrequencyControlArea.deficientGenerationLimit-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "LoadFrequencyControlArea.deficientGenerationLimit-cardinality" ; + sh:order 8 ; + sh:path nc:LoadFrequencyControlArea.deficientGenerationLimit ; + sh:severity sh:Violation . + +er:OperationalLimit.OperationalLimitType-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( cim:OperationalLimitType ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: cim:OperationalLimitType" ; + sh:name "OperationalLimit.OperationalLimitType-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 4 ; + sh:path ( cim:OperationalLimit.OperationalLimitType rdf:type ) ; + sh:severity sh:Violation . + +er:Equipment.AggregatedEquipment-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Equipment.AggregatedEquipment-cardinality" ; + sh:order 11 ; + sh:path cim:Equipment.AggregatedEquipment ; + sh:severity sh:Violation . + +er:FlexibleEnergyUnit.buffer-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "FlexibleEnergyUnit.buffer-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:FlexibleEnergyUnit.buffer ; + sh:severity sh:Violation . + +er:OperationalLimitSet.Terminal-valueTypeNodeShape + rdf:type sh:NodeShape ; + sh:property er:OperationalLimitSet.Terminal-valueType ; + sh:targetClass cim:OperationalLimitSet . + +er:ControlArea.SystemOperator-valueTypeNodeShape + rdf:type sh:NodeShape ; + sh:property er:ControlArea.SystemOperator-valueType ; + sh:targetClass cim:ControlArea . + +er:EnergyComponent.HydroPump-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( cim:HydroPump ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: cim:HydroPump" ; + sh:name "EnergyComponent.HydroPump-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path ( nc:EnergyComponent.HydroPump rdf:type ) ; + sh:severity sh:Violation . + +er:OperationalLimitType.direction-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "OperationalLimitType.direction-cardinality" ; + sh:order 0 ; + sh:path cim:OperationalLimitType.direction ; + sh:severity sh:Violation . + +er:EnergyBlockOrder rdf:type sh:NodeShape ; + sh:property er:EnergyBlockOrder.longPF-cardinality , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype , er:EnergyBlockOrder.EnergyBlockComponent-cardinality , er:EnergyBlockOrder.EnergyBlockComponent-valueType , ido:IdentifiedObject.name-datatype , er:EnergyBlockOrder.longPF-datatype , er:EnergyBlockOrder.sequence-datatype , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.description-datatype , er:EnergyBlockOrder.sequence-cardinality , er:EnergyBlockOrder.shortPF-datatype , er:EnergyBlockOrder.shortPF-cardinality ; + sh:targetClass nc:EnergyBlockOrder . + +er:OrdinaryPowerTransferCorridor + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.mRID-cardinality , er:PowerTransferCorridor.normalEnabled-cardinality , er:PowerTransferCorridor.normalEnabled-datatype , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.description-datatype ; + sh:targetClass nc:OrdinaryPowerTransferCorridor . + +er:CircuitShare.PowerTransferCorridor-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:ExceptionalPowerTransferCorridor nc:OrdinaryPowerTransferCorridor ) ; + sh:message "One of the following occurs: 1) The value type is not IRI; 2) The value type is not the right class." ; + sh:name "CircuitShare.PowerTransferCorridor-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path ( nc:CircuitShare.PowerTransferCorridor rdf:type ) ; + sh:severity sh:Violation . + +er:TCSCCompensationPoint + rdf:type sh:NodeShape ; + sh:property er:TCSCCompensationPoint.compensationImpedance-datatype , er:TCSCCompensationPoint.ThyristorControlledSeriesCompensator-valueType , er:TCSCCompensationPoint.sectionNumber-datatype , er:TCSCCompensationPoint.mRID-cardinality , er:TCSCCompensationPoint.compensationImpedance-cardinality , er:TCSCCompensationPoint.sectionNumber-cardinality , er:TCSCCompensationPoint.mRID-datatype , er:TCSCCompensationPoint.ThyristorControlledSeriesCompensator-cardinality ; + sh:targetClass nc:TCSCCompensationPoint . + +er:LoadFrequencyControlBlock.SynchronousArea-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "LoadFrequencyControlBlock.SynchronousArea-cardinality" ; + sh:order 1 ; + sh:path nc:LoadFrequencyControlBlock.SynchronousArea ; + sh:severity sh:Violation . + +er:PinTerminal.kind-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "PinTerminal.kind-cardinality" ; + sh:order 0 ; + sh:path nc:PinTerminal.kind ; + sh:severity sh:Violation . + +er:LoadFrequencyControlBlock.SynchronousArea-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:SynchronousArea ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:SynchronousArea" ; + sh:name "LoadFrequencyControlBlock.SynchronousArea-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path ( nc:LoadFrequencyControlBlock.SynchronousArea rdf:type ) ; + sh:severity sh:Violation . + +er:PowerInfeedTerminal.PowerInfeedConstraint-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:PowerInfeedLimit ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:PowerInfeedLimit" ; + sh:name "PowerInfeedTerminal.PowerInfeedConstraint-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path ( nc:PowerInfeedTerminal.PowerInfeedConstraint rdf:type ) ; + sh:severity sh:Violation . + +er:ControlArea.OutageCoordinationRegion-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:OutageCoordinationRegion ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:OutageCoordinationRegion" ; + sh:name "ControlArea.OutageCoordinationRegion-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path ( nc:ControlArea.OutageCoordinationRegion rdf:type ) ; + sh:severity sh:Violation . + +er:Feeder.SubSchedulingArea-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:SubSchedulingArea ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:SubSchedulingArea" ; + sh:name "Feeder.SubSchedulingArea-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path ( nc:Feeder.SubSchedulingArea rdf:type ) ; + sh:severity sh:Violation . + +er:EnergyGroup.shortPF-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "EnergyGroup.shortPF-cardinality" ; + sh:order 1 ; + sh:path nc:EnergyGroup.shortPF ; + sh:severity sh:Violation . + +er:LoadFrequencyControlArea.frequencyBiasFactor-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "LoadFrequencyControlArea.frequencyBiasFactor-cardinality" ; + sh:order 1 ; + sh:path nc:LoadFrequencyControlArea.frequencyBiasFactor ; + sh:severity sh:Violation . + +er:PowerElectricalChemicalUnit + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.description-datatype , er:PowerElectronicsUnit.PrimaryEnergySource-cardinality , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.name-datatype , er:PowerElectronicsUnit.longPF-datatype , er:PowerElectronicsUnit.minEconomicP-cardinality , ido:IdentifiedObject.energyIdentCodeEic-cardinality , er:PowerElectronicsUnit.shortPF-cardinality , er:PowerElectronicsUnit.minEconomicP-datatype , er:PowerElectronicsUnit.shortPF-datatype , er:PowerElectricalChemicalUnit.kind-datatype , er:PowerElectronicsUnit.longPF-cardinality , er:Equipment.AggregatedEquipment-cardinality , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.description-cardinality , er:PowerElectronicsUnit.ScheduleResource-valueType , er:PowerElectronicsUnit.ScheduleResource-cardinality , er:Equipment.Circuit-cardinality , er:PowerElectricalChemicalUnit.kind-cardinality , er:PowerElectronicsUnit.maxEconomicP-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype , er:PowerElectronicsUnit.maxEconomicP-datatype ; + sh:targetClass nc:PowerElectricalChemicalUnit . + +er:Line.SchedulingArea-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Line.SchedulingArea-cardinality" ; + sh:order 1 ; + sh:path nc:Line.SchedulingArea ; + sh:severity sh:Violation . + +er:BaseOverloadLimitCurve + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.mRID-cardinality , er:Curve.y2Multiplier-datatype , er:Curve.y1Unit-datatype , er:Curve.curveStyle-datatype , er:Curve.xMultiplier-datatype , er:Curve.y1Multiplier-cardinality , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.name-datatype , er:Curve.y1Unit-cardinality , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.name-cardinality , er:Curve.curveStyle-cardinality , er:Curve.y2Multiplier-cardinality , er:Curve.xUnit-cardinality , er:Curve.y2Unit-cardinality , ido:IdentifiedObject.description-datatype , er:Curve.y1Multiplier-datatype , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.energyIdentCodeEic-cardinality , er:Curve.xUnit-datatype , er:Curve.y2Unit-datatype , er:Curve.xMultiplier-cardinality ; + sh:targetClass nc:BaseOverloadLimitCurve . + +er:DCConductingEquipment.ratedCurrent-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "DCConductingEquipment.ratedCurrent-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path cim:DCConductingEquipment.ratedCurrent ; + sh:severity sh:Violation . + +er:PTCTriggeredEquipment.Equipment-valueTypeNodeShape + rdf:type sh:NodeShape ; + sh:property er:PTCTriggeredEquipment.Equipment-valueType ; + sh:targetClass nc:PTCTriggeredEquipment . + +er:TieCorridor.delayRegulatingReserve-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "TieCorridor.delayRegulatingReserve-cardinality" ; + sh:order 7 ; + sh:path nc:TieCorridor.delayRegulatingReserve ; + sh:severity sh:Violation . + +er:GeneratingUnit.shutdownCost-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "GeneratingUnit.shutdownCost-cardinality" ; + sh:order 7 ; + sh:path nc:GeneratingUnit.shutdownCost ; + sh:severity sh:Violation . + +er:EnergyComponent.EnergyGroup-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:EnergyGroup ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:EnergyGroup" ; + sh:name "EnergyComponent.EnergyGroup-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 5 ; + sh:path ( nc:EnergyComponent.EnergyGroup rdf:type ) ; + sh:severity sh:Violation . + +er:EnergyCoordinationRegion + rdf:type sh:NodeShape ; + sh:property er:EnergyCoordinationRegion.EnergyAlignmentCoordinator-valueType , ido:IdentifiedObject.energyIdentCodeEic-cardinality , er:EnergyCoordinationRegion.EnergyAlignmentCoordinator-cardinality , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.energyIdentCodeEic-datatype , er:Region.OverlappingZone-cardinality , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.description-cardinality , er:Region.OverlappingZone-valueType ; + sh:targetClass nc:EnergyCoordinationRegion . + +er:HydroPump.minEconomicP-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "HydroPump.minEconomicP-cardinality" ; + sh:order 6 ; + sh:path nc:HydroPump.minEconomicP ; + sh:severity sh:Violation . + +er:LossCurve.FACTSEquipment-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "LossCurve.FACTSEquipment-cardinality" ; + sh:order 0 ; + sh:path nc:LossCurve.FACTSEquipment ; + sh:severity sh:Violation . + +er:Substation rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.name-cardinality , er:Substation.SchedulingArea-cardinality ; + sh:targetClass cim:Substation . + +er:SubSchedulingArea.SchedulingArea-valueTypeNodeShape + rdf:type sh:NodeShape ; + sh:property er:SubSchedulingArea.SchedulingArea-valueType ; + sh:targetClass nc:SubSchedulingArea . + +er:CircuitShare.Circuit-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:PowerTransformerCircuit nc:DirectCurrentCircuit nc:LineCircuit ) ; + sh:message "One of the following occurs: 1) The value type is not IRI; 2) The value type is not the right class." ; + sh:name "CircuitShare.Circuit-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path ( nc:CircuitShare.Circuit rdf:type ) ; + sh:severity sh:Violation . + +er:Equipment.Circuit-valueTypeNodeShape + rdf:type sh:NodeShape ; + sh:property er:Equipment.Circuit-valueType ; + sh:targetClass cim:DCSwitch , nc:GeothermalGeneratingUnit , cim:PowerElectronicsUnit , cim:DCBusbar , cim:DCDisconnector , nc:StaticSynchronousSeriesCompensator , cim:DCSeriesDevice , cim:EnergyConsumer , nc:ChargingUnit , nc:StaticVarCompensator , nc:ModularStaticSynchronousSeriesCompensator , cim:HydroPump , nc:ThyristorControlledSeriesCompensator , cim:Equipment , nc:PowerElectricalChemicalUnit , cim:ACDCConverter , cim:DCLineSegment , cim:GeneratingUnit , cim:DCGround , nc:StaticSynchronousCompensator , cim:DCBreaker , cim:DCShunt , nc:PowerElectronicsMarineUnit , cim:NuclearGeneratingUnit , nc:FlexibleEnergyUnit , cim:DCChopper . + +er:PowerInfeedLimit.normalValue-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerInfeedLimit.normalValue-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:PowerInfeedLimit.normalValue ; + sh:severity sh:Violation . + +er:OperationalLimitSet.Terminal-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "OperationalLimitSet.Terminal-cardinality" ; + sh:order 1 ; + sh:path cim:OperationalLimitSet.Terminal ; + sh:severity sh:Violation . + +er:OutageCoordinationRegion + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.description-cardinality , er:Region.OverlappingZone-cardinality , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.description-datatype , er:OutageCoordinationRegion.OutageCoordinator-valueType , er:OutageCoordinationRegion.SecurityCoordinator-cardinality , er:Region.OverlappingZone-valueType , er:OutageCoordinationRegion.OutageCoordinator-cardinality , ido:IdentifiedObject.name-cardinality , er:OutageCoordinationRegion.SecurityCoordinator-valueType , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.energyIdentCodeEic-datatype ; + sh:targetClass nc:OutageCoordinationRegion . + +er:Curve.y2Multiplier-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:in ( cim:UnitMultiplier.none cim:UnitMultiplier.k cim:UnitMultiplier.M ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "Curve.y2Multiplier-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 6 ; + sh:path cim:Curve.y2Multiplier ; + sh:severity sh:Violation . + +er:SSSCController.SSSCSimulationSettings-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "SSSCController.SSSCSimulationSettings-cardinality" ; + sh:order 5 ; + sh:path nc:SSSCController.SSSCSimulationSettings ; + sh:severity sh:Violation . + +er:Curve.y1Multiplier-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:in ( cim:UnitMultiplier.none cim:UnitMultiplier.k cim:UnitMultiplier.M ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "Curve.y1Multiplier-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path cim:Curve.y1Multiplier ; + sh:severity sh:Violation . + +er:EnergyGroup.longPF-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "EnergyGroup.longPF-cardinality" ; + sh:order 0 ; + sh:path nc:EnergyGroup.longPF ; + sh:severity sh:Violation . + +er:FlexibleEnergyUnit.timeShift-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "FlexibleEnergyUnit.timeShift-cardinality" ; + sh:order 3 ; + sh:path nc:FlexibleEnergyUnit.timeShift ; + sh:severity sh:Violation . + +er:ThyristorControlledSeriesCompensator.flexibleInductiveImpedance-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "ThyristorControlledSeriesCompensator.flexibleInductiveImpedance-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:ThyristorControlledSeriesCompensator.flexibleInductiveImpedance ; + sh:severity sh:Violation . + +er:PowerElectronicsMarineUnit.kind-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:in ( nc:MarineUnitKind.currents nc:MarineUnitKind.pressure nc:MarineUnitKind.wave nc:MarineUnitKind.tidal nc:MarineUnitKind.other ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "PowerElectronicsMarineUnit.kind-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path nc:PowerElectronicsMarineUnit.kind ; + sh:severity sh:Violation . + +er:CurveData.y1value-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "CurveData.y1value-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path cim:CurveData.y1value ; + sh:severity sh:Violation . + +er:ControlArea rdf:type sh:NodeShape ; + sh:property er:ControlArea.OutageCoordinationRegion-cardinality , er:ControlArea.SystemOperator-cardinality , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.description-cardinality , er:ControlArea.OutageCoordinationRegion-valueType , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype ; + sh:targetClass cim:ControlArea . + +er:ControlArea.OutageCoordinationRegion-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "ControlArea.OutageCoordinationRegion-cardinality" ; + sh:order 2 ; + sh:path nc:ControlArea.OutageCoordinationRegion ; + sh:severity sh:Violation . + +er:TCSCCompensationPoint.sectionNumber-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:integer ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "TCSCCompensationPoint.sectionNumber-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:TCSCCompensationPoint.sectionNumber ; + sh:severity sh:Violation . + +er:VoltageControlFunction + rdf:type sh:NodeShape ; + sh:property er:ControlFunctionBlock.maxAllowedTargetValue-datatype , er:ControlFunctionBlock.targetDeadband-datatype , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.mRID-cardinality , er:FunctionBlock.priority-datatype , er:FunctionBlock.priority-cardinality , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.mRID-datatype , er:ControlFunctionBlock.maxAllowedTargetValue-cardinality , er:ControlFunctionBlock.targetDeadband-cardinality , er:ControlFunctionBlock.isDiscrete-datatype , er:ControlFunctionBlock.isDiscrete-cardinality , er:FunctionBlock.AutomationFunction-cardinality , er:ControlFunctionBlock.minAllowedTargetValue-datatype , ido:IdentifiedObject.energyIdentCodeEic-cardinality , er:ControlFunctionBlock.minAllowedTargetValue-cardinality , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.description-datatype ; + sh:targetClass nc:VoltageControlFunction . + +er:FunctionInputVariable.Function-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "FunctionInputVariable.Function-cardinality" ; + sh:order 7 ; + sh:path nc:FunctionInputVariable.Function ; + sh:severity sh:Violation . + +er:GeneratingUnit.maxStartupLoad-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "GeneratingUnit.maxStartupLoad-cardinality" ; + sh:order 8 ; + sh:path nc:GeneratingUnit.maxStartupLoad ; + sh:severity sh:Violation . + +er:PowerFactorControlFunction + rdf:type sh:NodeShape ; + sh:property er:ControlFunctionBlock.minAllowedTargetValue-cardinality , ido:IdentifiedObject.name-datatype , er:ControlFunctionBlock.isDiscrete-datatype , er:ControlFunctionBlock.maxAllowedTargetValue-datatype , er:FunctionBlock.priority-cardinality , er:ControlFunctionBlock.targetDeadband-cardinality , ido:IdentifiedObject.mRID-datatype , er:ControlFunctionBlock.minAllowedTargetValue-datatype , er:FunctionBlock.priority-datatype , er:ControlFunctionBlock.isDiscrete-cardinality , er:ControlFunctionBlock.maxAllowedTargetValue-cardinality , er:ControlFunctionBlock.targetDeadband-datatype , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.mRID-cardinality , er:FunctionBlock.AutomationFunction-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.energyIdentCodeEic-cardinality ; + sh:targetClass nc:PowerFactorControlFunction . + +er:PinTerminal.kind-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:in ( nc:PinTerminalKind.reactivePower nc:PinTerminalKind.apparentPower nc:PinTerminalKind.current nc:PinTerminalKind.voltageMagnitude nc:PinTerminalKind.activePower nc:PinTerminalKind.voltageAngle ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "PinTerminal.kind-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path nc:PinTerminal.kind ; + sh:severity sh:Violation . + +er:PowerElectricalChemicalUnit.kind-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "PowerElectricalChemicalUnit.kind-cardinality" ; + sh:order 0 ; + sh:path nc:PowerElectricalChemicalUnit.kind ; + sh:severity sh:Violation . + +er:SSSCController.minVoltageInjection-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "SSSCController.minVoltageInjection-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:SSSCController.minVoltageInjection ; + sh:severity sh:Violation . + +er:TieCorridor.thresholdRegulatingReserve-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "TieCorridor.thresholdRegulatingReserve-cardinality" ; + sh:order 8 ; + sh:path nc:TieCorridor.thresholdRegulatingReserve ; + sh:severity sh:Violation . + +er:HydroPump.longPF-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "HydroPump.longPF-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path nc:HydroPump.longPF ; + sh:severity sh:Violation . + +er:EnergyBlockOrder.longPF-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "EnergyBlockOrder.longPF-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:EnergyBlockOrder.longPF ; + sh:severity sh:Violation . + +er:SynchronousArea rdf:type sh:NodeShape ; + sh:property er:SynchronousArea.nominalFrequency-datatype , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.name-datatype , er:SynchronousArea.nominalFrequency-cardinality ; + sh:targetClass nc:SynchronousArea . + +er:Line.SchedulingArea-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:SchedulingArea nc:SubSchedulingArea ) ; + sh:message "One of the following occurs: 1) The value type is not IRI; 2) The value type is not the right class." ; + sh:name "Line.SchedulingArea-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path ( nc:Line.SchedulingArea rdf:type ) ; + sh:severity sh:Violation . + +er:SchedulingArea.EnergyCoordinationRegion-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:EnergyCoordinationRegion ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:EnergyCoordinationRegion" ; + sh:name "SchedulingArea.EnergyCoordinationRegion-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 7 ; + sh:path ( nc:SchedulingArea.EnergyCoordinationRegion rdf:type ) ; + sh:severity sh:Violation . + +er:SSSCSimulationSettings.maxReactanceCorrection-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "SSSCSimulationSettings.maxReactanceCorrection-cardinality" ; + sh:order 6 ; + sh:path nc:SSSCSimulationSettings.maxReactanceCorrection ; + sh:severity sh:Violation . + +er:EnergyComponent.PowerElectronicsUnit-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( cim:PowerElectronicsUnit nc:PowerElectronicsMarineUnit nc:ChargingUnit nc:FlexibleEnergyUnit nc:PowerElectricalChemicalUnit ) ; + sh:message "One of the following occurs: 1) The value type is not IRI; 2) The value type is not the right class." ; + sh:name "EnergyComponent.PowerElectronicsUnit-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path ( nc:EnergyComponent.PowerElectronicsUnit rdf:type ) ; + sh:severity sh:Violation . + +er:OperationalLimitType.isMinimum-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "OperationalLimitType.isMinimum-cardinality" ; + sh:order 4 ; + sh:path nc:OperationalLimitType.isMinimum ; + sh:severity sh:Violation . + +er:SSSCController.SSSCSimulationSettings-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:SSSCSimulationSettings ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:SSSCSimulationSettings" ; + sh:name "SSSCController.SSSCSimulationSettings-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 5 ; + sh:path ( nc:SSSCController.SSSCSimulationSettings rdf:type ) ; + sh:severity sh:Violation . + +er:Feeder.NamingSecondarySubstation-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( cim:Substation ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: cim:Substation" ; + sh:name "Feeder.NamingSecondarySubstation-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path ( cim:Feeder.NamingSecondarySubstation rdf:type ) ; + sh:severity sh:Violation . + +er:ACDCConverter.DirectCurrentController-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:DirectCurrentController ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:DirectCurrentController" ; + sh:name "ACDCConverter.DirectCurrentController-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path ( nc:ACDCConverter.DirectCurrentController rdf:type ) ; + sh:severity sh:Violation . + +er:GeneratingUnit.maxStartupLoad-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "GeneratingUnit.maxStartupLoad-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 8 ; + sh:path nc:GeneratingUnit.maxStartupLoad ; + sh:severity sh:Violation . + +er:CapacityCalculationRegion.SecurityCoordinator-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:SecurityCoordinator ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:SecurityCoordinator" ; + sh:name "CapacityCalculationRegion.SecurityCoordinator-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path ( nc:CapacityCalculationRegion.SecurityCoordinator rdf:type ) ; + sh:severity sh:Violation . + +er:EnergyConsumer.shortPF-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "EnergyConsumer.shortPF-cardinality" ; + sh:order 1 ; + sh:path nc:EnergyConsumer.shortPF ; + sh:severity sh:Violation . + +er:EnergyCoordinationRegion.EnergyAlignmentCoordinator-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "EnergyCoordinationRegion.EnergyAlignmentCoordinator-cardinality" ; + sh:order 0 ; + sh:path nc:EnergyCoordinationRegion.EnergyAlignmentCoordinator ; + sh:severity sh:Violation . + +er:ReactiveCapabilityCurve.referenceVoltage-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "ReactiveCapabilityCurve.referenceVoltage-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path nc:ReactiveCapabilityCurve.referenceVoltage ; + sh:severity sh:Violation . + +er:AreaDispatchableUnit.PowerElectronicsUnit-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AreaDispatchableUnit.PowerElectronicsUnit-cardinality" ; + sh:order 7 ; + sh:path nc:AreaDispatchableUnit.PowerElectronicsUnit ; + sh:severity sh:Violation . + +er:FlexibleEnergyUnit.unconstrained-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "FlexibleEnergyUnit.unconstrained-cardinality" ; + sh:order 2 ; + sh:path nc:FlexibleEnergyUnit.unconstrained ; + sh:severity sh:Violation . + +er:FACTSEquipment.inductiveRating-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "FACTSEquipment.inductiveRating-cardinality" ; + sh:order 3 ; + sh:path nc:FACTSEquipment.inductiveRating ; + sh:severity sh:Violation . + +er:HydroPump.ScheduleResource-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:ScheduleResource ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:ScheduleResource" ; + sh:name "HydroPump.ScheduleResource-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path ( nc:HydroPump.ScheduleResource rdf:type ) ; + sh:severity sh:Violation . + +er:HydroPump.ScheduleResource-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "HydroPump.ScheduleResource-cardinality" ; + sh:order 2 ; + sh:path nc:HydroPump.ScheduleResource ; + sh:severity sh:Violation . + +er:ReactiveCapabilityCurve + rdf:type sh:NodeShape ; + sh:property er:Curve.xUnit-cardinality , er:ReactiveCapabilityCurve.coolantTemperature-datatype , er:Curve.y2Unit-datatype , er:Curve.curveStyle-datatype , er:ReactiveCapabilityCurve.referenceVoltage-datatype , er:Curve.curveStyle-cardinality , er:ReactiveCapabilityCurve.hydrogenPressure-cardinality , er:Curve.y2Multiplier-cardinality , er:Curve.y2Unit-cardinality , er:Curve.y2Multiplier-datatype , ido:IdentifiedObject.energyIdentCodeEic-datatype , er:Curve.xMultiplier-datatype , ido:IdentifiedObject.name-cardinality , er:Curve.y1Multiplier-datatype , ido:IdentifiedObject.mRID-datatype , er:Curve.y1Unit-datatype , er:ReactiveCapabilityCurve.hydrogenPressure-datatype , er:ReactiveCapabilityCurve.coolantTemperature-cardinality , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.name-datatype , er:Curve.y1Unit-cardinality , er:ReactiveCapabilityCurve.EquivalentInjection2-valueType , er:Curve.xUnit-datatype , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.energyIdentCodeEic-cardinality , er:ReactiveCapabilityCurve.SynchronousMachine2-cardinality , er:ReactiveCapabilityCurve.EquivalentInjection2-cardinality , er:Curve.y1Multiplier-cardinality , er:ReactiveCapabilityCurve.referenceVoltage-cardinality , ido:IdentifiedObject.description-datatype , er:Curve.xMultiplier-cardinality ; + sh:targetClass cim:ReactiveCapabilityCurve . + +er:EnergyBlockOrder.shortPF-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "EnergyBlockOrder.shortPF-cardinality" ; + sh:order 2 ; + sh:path nc:EnergyBlockOrder.shortPF ; + sh:severity sh:Violation . + +er:AreaDispatchableUnit.normalEnabled-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "AreaDispatchableUnit.normalEnabled-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path nc:AreaDispatchableUnit.normalEnabled ; + sh:severity sh:Violation . + +er:FlexibleEnergyUnit + rdf:type sh:NodeShape ; + sh:property er:PowerElectronicsUnit.longPF-datatype , er:PowerElectronicsUnit.shortPF-datatype , er:FlexibleEnergyUnit.buffer-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype , er:PowerElectronicsUnit.PrimaryEnergySource-cardinality , er:Equipment.Circuit-cardinality , er:FlexibleEnergyUnit.timeShift-datatype , er:PowerElectronicsUnit.shortPF-cardinality , er:FlexibleEnergyUnit.uncontrollable-datatype , er:FlexibleEnergyUnit.buffer-datatype , er:Equipment.AggregatedEquipment-cardinality , ido:IdentifiedObject.description-cardinality , er:PowerElectronicsUnit.minEconomicP-datatype , ido:IdentifiedObject.mRID-datatype , er:FlexibleEnergyUnit.timeShift-cardinality , er:PowerElectronicsUnit.ScheduleResource-valueType , ido:IdentifiedObject.energyIdentCodeEic-cardinality , er:PowerElectronicsUnit.minEconomicP-cardinality , er:PowerElectronicsUnit.maxEconomicP-datatype , er:PowerElectronicsUnit.longPF-cardinality , er:FlexibleEnergyUnit.unconstrained-cardinality , ido:IdentifiedObject.mRID-cardinality , er:FlexibleEnergyUnit.uncontrollable-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.name-cardinality , er:PowerElectronicsUnit.ScheduleResource-cardinality , er:PowerElectronicsUnit.maxEconomicP-cardinality , er:FlexibleEnergyUnit.unconstrained-datatype ; + sh:targetClass nc:FlexibleEnergyUnit . + +er:DCGround rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.name-datatype , er:DCConductingEquipment.ratedCurrent-cardinality , er:Equipment.Circuit-cardinality , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.description-cardinality , er:Equipment.AggregatedEquipment-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.energyIdentCodeEic-datatype , er:DCConductingEquipment.ratedCurrent-datatype , ido:IdentifiedObject.energyIdentCodeEic-cardinality ; + sh:targetClass cim:DCGround . + +er:Curve.y2Unit-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Curve.y2Unit-cardinality" ; + sh:order 8 ; + sh:path cim:Curve.y2Unit ; + sh:severity sh:Violation . + +er:DCTieCorridor.minRegulatingReserve-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "DCTieCorridor.minRegulatingReserve-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path nc:DCTieCorridor.minRegulatingReserve ; + sh:severity sh:Violation . + +er:OutagePlanningAgent + rdf:type sh:NodeShape ; + sh:property er:OrganisationRole.Organisation-valueType , ido:IdentifiedObject.energyIdentCodeEic-datatype , er:OrganisationRole.Organisation-cardinality , ido:IdentifiedObject.name-datatype , er:OrganisationRole.globalLocationNumber-datatype , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.mRID-cardinality , er:OrganisationRole.globalLocationNumber-cardinality , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.description-datatype ; + sh:targetClass nc:OutagePlanningAgent . + +er:Region.OverlappingZone-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:OverlappingZone ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:OverlappingZone" ; + sh:name "Region.OverlappingZone-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 3 ; + sh:path ( nc:Region.OverlappingZone rdf:type ) ; + sh:severity sh:Violation . + +er:Substation.SchedulingArea-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Substation.SchedulingArea-cardinality" ; + sh:order 1 ; + sh:path nc:Substation.SchedulingArea ; + sh:severity sh:Violation . + +er:PTCTriggeredEquipment + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype , er:PTCTriggeredEquipment.ExceptionalPowerTransferCorridor-valueType , er:PTCTriggeredEquipment.ExceptionalPowerTransferCorridor-cardinality , ido:IdentifiedObject.description-datatype , er:PTCTriggeredEquipment.Equipment-cardinality , ido:IdentifiedObject.description-cardinality ; + sh:targetClass nc:PTCTriggeredEquipment . + +er:FunctionBlock.priority-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "FunctionBlock.priority-cardinality" ; + sh:order 7 ; + sh:path nc:FunctionBlock.priority ; + sh:severity sh:Violation . + +er:ThyristorControlledSeriesCompensator.reconnectionCurrent-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "ThyristorControlledSeriesCompensator.reconnectionCurrent-cardinality" ; + sh:order 2 ; + sh:path nc:ThyristorControlledSeriesCompensator.reconnectionCurrent ; + sh:severity sh:Violation . + +er:Curve.y1Unit-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Curve.y1Unit-cardinality" ; + sh:order 3 ; + sh:path cim:Curve.y1Unit ; + sh:severity sh:Violation . + +er:EnergyGroup.EnergyType-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "EnergyGroup.EnergyType-cardinality" ; + sh:order 2 ; + sh:path nc:EnergyGroup.EnergyType ; + sh:severity sh:Violation . + +er:HydroPump rdf:type sh:NodeShape ; + sh:property er:HydroPump.minEconomicP-datatype , er:HydroPump.shortPF-cardinality , ido:IdentifiedObject.description-datatype , er:HydroPump.ScheduleResource-cardinality , er:HydroPump.longPF-cardinality , er:HydroPump.shortPF-datatype , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.description-cardinality , er:HydroPump.ScheduleResource-valueType , er:HydroPump.maxEconomicP-cardinality , er:HydroPump.maxEconomicP-datatype , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.name-datatype , er:HydroPump.longPF-datatype , ido:IdentifiedObject.name-cardinality , er:Equipment.Circuit-cardinality , er:Equipment.AggregatedEquipment-cardinality , er:HydroPump.minEconomicP-cardinality ; + sh:targetClass cim:HydroPump . + +er:OrganisationRole.Organisation-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( cim:Organisation ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: cim:Organisation" ; + sh:name "OrganisationRole.Organisation-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 3 ; + sh:path ( cim:OrganisationRole.Organisation rdf:type ) ; + sh:severity sh:Violation . + +er:EnergyConsumer.longPF-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "EnergyConsumer.longPF-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path nc:EnergyConsumer.longPF ; + sh:severity sh:Violation . + +er:ThyristorControlledSeriesCompensator.flexibleCapacitiveImpedance-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "ThyristorControlledSeriesCompensator.flexibleCapacitiveImpedance-cardinality" ; + sh:order 4 ; + sh:path nc:ThyristorControlledSeriesCompensator.flexibleCapacitiveImpedance ; + sh:severity sh:Violation . + +er:ReactivePowerControlFunction + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.name-datatype , er:ControlFunctionBlock.isDiscrete-datatype , er:ControlFunctionBlock.maxAllowedTargetValue-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.energyIdentCodeEic-cardinality , er:ControlFunctionBlock.targetDeadband-cardinality , er:ControlFunctionBlock.minAllowedTargetValue-datatype , er:ControlFunctionBlock.maxAllowedTargetValue-datatype , er:ControlFunctionBlock.targetDeadband-datatype , er:ControlFunctionBlock.minAllowedTargetValue-cardinality , er:FunctionBlock.priority-datatype , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.mRID-cardinality , er:ControlFunctionBlock.isDiscrete-cardinality , ido:IdentifiedObject.description-cardinality , er:FunctionBlock.AutomationFunction-cardinality , er:FunctionBlock.priority-cardinality , ido:IdentifiedObject.mRID-datatype ; + sh:targetClass nc:ReactivePowerControlFunction . + +er:PowerTransferCorridor.normalEnabled-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerTransferCorridor.normalEnabled-cardinality" ; + sh:order 2 ; + sh:path nc:PowerTransferCorridor.normalEnabled ; + sh:severity sh:Violation . + +ido:IdentifiedObject.energyIdentCodeEic-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ido:DatatypesGroupIO ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "IdentifiedObject.energyIdentCodeEic-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0.1 ; + sh:path eu:IdentifiedObject.energyIdentCodeEic ; + sh:severity sh:Violation . + +er:OperationalLimitType.RecoveryOverloadLimitCurve-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:RecoveryOverloadLimitCurve ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:RecoveryOverloadLimitCurve" ; + sh:name "OperationalLimitType.RecoveryOverloadLimitCurve-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path ( nc:OperationalLimitType.RecoveryOverloadLimitCurve rdf:type ) ; + sh:severity sh:Violation . + +er:PowerInfeedTerminal + rdf:type sh:NodeShape ; + sh:property er:PowerInfeedTerminal.mRID-datatype , er:PowerInfeedTerminal.mRID-cardinality , er:PowerInfeedTerminal.PowerInfeedConstraint-valueType , er:PowerInfeedTerminal.PowerInfeedConstraint-cardinality , er:PowerInfeedTerminal.ACDCTerminal-cardinality ; + sh:targetClass nc:PowerInfeedTerminal . + +er:TransmissionSystemOperator + rdf:type sh:NodeShape ; + sh:property er:OrganisationRole.globalLocationNumber-datatype , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.name-datatype , er:OrganisationRole.Organisation-cardinality , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.mRID-datatype , er:OrganisationRole.globalLocationNumber-cardinality , er:OrganisationRole.Organisation-valueType , ido:IdentifiedObject.description-cardinality ; + sh:targetClass nc:TransmissionSystemOperator . + +er:CurrentDroopControlFunction.droopInductive-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "CurrentDroopControlFunction.droopInductive-cardinality" ; + sh:order 2 ; + sh:path nc:CurrentDroopControlFunction.droopInductive ; + sh:severity sh:Violation . + +er:FlexibleEnergyUnit.timeShift-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "FlexibleEnergyUnit.timeShift-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path nc:FlexibleEnergyUnit.timeShift ; + sh:severity sh:Violation . + +er:Line.ACTieCorridor-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:ACTieCorridor ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:ACTieCorridor" ; + sh:name "Line.ACTieCorridor-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path ( nc:Line.ACTieCorridor rdf:type ) ; + sh:severity sh:Violation . + +er:GateInputPin.thresholdValue-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "GateInputPin.thresholdValue-cardinality" ; + sh:order 5 ; + sh:path nc:GateInputPin.thresholdValue ; + sh:severity sh:Violation . + +er:SubSchedulingArea.SchedulingArea-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "SubSchedulingArea.SchedulingArea-cardinality" ; + sh:order 0 ; + sh:path nc:SubSchedulingArea.SchedulingArea ; + sh:severity sh:Violation . + +er:GeneratingUnit.minimumOffTime-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "GeneratingUnit.minimumOffTime-cardinality" ; + sh:order 13 ; + sh:path cim:GeneratingUnit.minimumOffTime ; + sh:severity sh:Violation . + +er:EnergyGroup.SchedulingArea-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "EnergyGroup.SchedulingArea-cardinality" ; + sh:order 3 ; + sh:path nc:EnergyGroup.SchedulingArea ; + sh:severity sh:Violation . + +er:PowerElectronicsUnit.maxEconomicP-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerElectronicsUnit.maxEconomicP-cardinality" ; + sh:order 7 ; + sh:path nc:PowerElectronicsUnit.maxEconomicP ; + sh:severity sh:Violation . + +er:FunctionInputVariable.Function-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:DCVoltageControlFunction nc:VoltageControlFunction nc:PowerFactorControlFunction nc:DCCurrentControlFunction nc:PhaseControlFunction nc:CurrentControlFunction nc:VoltageInjectionControlFunction nc:CurrentDroopControlFunction nc:ReactivePowerControlFunction nc:ImpedanceControlFunction nc:ActivePowerControlFunction ) ; + sh:message "One of the following occurs: 1) The value type is not IRI; 2) The value type is not the right class." ; + sh:name "FunctionInputVariable.Function-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 7 ; + sh:path ( nc:FunctionInputVariable.Function rdf:type ) ; + sh:severity sh:Violation . + +er:EnergyBlockOrder.longPF-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "EnergyBlockOrder.longPF-cardinality" ; + sh:order 0 ; + sh:path nc:EnergyBlockOrder.longPF ; + sh:severity sh:Violation . + +er:EnergyBlockOrder.shortPF-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "EnergyBlockOrder.shortPF-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path nc:EnergyBlockOrder.shortPF ; + sh:severity sh:Violation . + +er:SchedulingArea.LoadFrequencyControlArea-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "SchedulingArea.LoadFrequencyControlArea-cardinality" ; + sh:order 11 ; + sh:path nc:SchedulingArea.LoadFrequencyControlArea ; + sh:severity sh:Violation . + +er:AssociationsGroup rdf:type sh:PropertyGroup ; + rdfs:label "Associations" ; + sh:order 2 . + +er:Feeder.NormalEnergizingSubstation-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Feeder.NormalEnergizingSubstation-cardinality" ; + sh:order 2 ; + sh:path cim:Feeder.NormalEnergizingSubstation ; + sh:severity sh:Violation . + +er:EnergyConsumer.minEconomicP-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "EnergyConsumer.minEconomicP-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 5 ; + sh:path nc:EnergyConsumer.minEconomicP ; + sh:severity sh:Violation . + +er:CircuitShare rdf:type sh:NodeShape ; + sh:property er:CircuitShare.normalContributionFactor-datatype , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.energyIdentCodeEic-cardinality , er:CircuitShare.normalContributionFactor-cardinality , er:CircuitShare.PowerTransferCorridor-cardinality , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.mRID-datatype , er:CircuitShare.Circuit-cardinality , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype ; + sh:targetClass nc:CircuitShare . + +er:Equipment rdf:type sh:NodeShape ; + sh:property er:Equipment.AggregatedEquipment-cardinality , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.energyIdentCodeEic-cardinality , er:Equipment.Circuit-cardinality , ido:IdentifiedObject.description-cardinality ; + sh:targetClass cim:Equipment . + +er:DCTieCorridor.maxRegulatingReserve-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "DCTieCorridor.maxRegulatingReserve-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:DCTieCorridor.maxRegulatingReserve ; + sh:severity sh:Violation . + +er:SubSchedulingArea rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.energyIdentCodeEic-cardinality , er:SchedulingArea.ControlArea-valueType , ido:IdentifiedObject.mRID-datatype , er:SchedulingArea.isIslandingEnabled-datatype , er:SubSchedulingArea.SchedulingArea-cardinality , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.name-cardinality , er:SchedulingArea.SynchronousArea-valueType , ido:IdentifiedObject.name-datatype , er:SchedulingArea.BiddingZone-valueType , er:SchedulingArea.isMeteringGridArea-cardinality , er:SchedulingArea.LoadFrequencyControlArea-cardinality , ido:IdentifiedObject.description-cardinality , er:SchedulingArea.LoadFrequencyControlArea-valueType , er:SchedulingArea.isMeteringGridArea-datatype , er:SchedulingArea.ControlArea-cardinality , er:SchedulingArea.EnergyCoordinationRegion-valueType , er:SchedulingArea.isIslandingEnabled-cardinality , er:SchedulingArea.BiddingZone-cardinality , er:SchedulingArea.SystemOperator-cardinality , er:SchedulingArea.EnergyCoordinationRegion-cardinality , er:SchedulingArea.SynchronousArea-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype ; + sh:targetClass nc:SubSchedulingArea . + +er:OperationalLimitType.direction-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:in ( cim:OperationalLimitDirectionKind.high cim:OperationalLimitDirectionKind.low cim:OperationalLimitDirectionKind.absoluteValue ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "OperationalLimitType.direction-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path cim:OperationalLimitType.direction ; + sh:severity sh:Violation . + +er:VoltageAngleLimit.normalValue-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "VoltageAngleLimit.normalValue-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:VoltageAngleLimit.normalValue ; + sh:severity sh:Violation . + +er:DCTieCorridor.DirectCurrentController-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "DCTieCorridor.DirectCurrentController-cardinality" ; + sh:order 2 ; + sh:path nc:DCTieCorridor.DirectCurrentController ; + sh:severity sh:Violation . + +er:ProportionalEnergyComponent + rdf:type sh:NodeShape ; + sh:property er:EnergyComponent.EnergyConsumer-valueType , ido:IdentifiedObject.description-cardinality , er:EnergyComponent.EnergyGroup-valueType , ido:IdentifiedObject.name-cardinality , er:EnergyComponent.EnergyGroup-cardinality , er:EnergyComponent.PowerElectronicsUnit-cardinality , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.mRID-cardinality , er:EnergyComponent.HydroPump-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.description-datatype , er:EnergyComponent.GeneratingUnit-cardinality , er:EnergyComponent.EnergyConsumer-cardinality , er:EnergyComponent.HydroPump-valueType , ido:IdentifiedObject.name-datatype ; + sh:targetClass nc:ProportionalEnergyComponent . + +er:PowerElectronicsUnit.longPF-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerElectronicsUnit.longPF-cardinality" ; + sh:order 5 ; + sh:path nc:PowerElectronicsUnit.longPF ; + sh:severity sh:Violation . + +er:Curve.curveStyle-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:in ( cim:CurveStyle.straightLineYValues cim:CurveStyle.constantYValue ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "Curve.curveStyle-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path cim:Curve.curveStyle ; + sh:severity sh:Violation . + +er:TapChanger rdf:type sh:NodeShape ; + sh:property er:TapChanger.TapChangeController-valueType , er:TapChanger.TapChangeController-cardinality ; + sh:targetClass cim:TapChanger . + +er:FunctionOutputVariable.PropertyReference-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "FunctionOutputVariable.PropertyReference-cardinality" ; + sh:order 1 ; + sh:path nc:FunctionOutputVariable.PropertyReference ; + sh:severity sh:Violation . + +er:SchedulingArea.ControlArea-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( cim:ControlArea ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: cim:ControlArea" ; + sh:name "SchedulingArea.ControlArea-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 3 ; + sh:path ( nc:SchedulingArea.ControlArea rdf:type ) ; + sh:severity sh:Violation . + +er:OperationalLimit.OperationalLimitSet-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "OperationalLimit.OperationalLimitSet-cardinality" ; + sh:order 3 ; + sh:path cim:OperationalLimit.OperationalLimitSet ; + sh:severity sh:Violation . + +er:AreaDispatchableUnit.SchedulingArea-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:SchedulingArea nc:SubSchedulingArea ) ; + sh:message "One of the following occurs: 1) The value type is not IRI; 2) The value type is not the right class." ; + sh:name "AreaDispatchableUnit.SchedulingArea-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path ( nc:AreaDispatchableUnit.SchedulingArea rdf:type ) ; + sh:severity sh:Violation . + +er:AutomationFunction.PartOf-valueTypeNodeShape + rdf:type sh:NodeShape ; + sh:property er:AutomationFunction.PartOf-valueType ; + sh:targetClass nc:FacilityPlantController , nc:SubstationController , nc:TCSCController , nc:InjectionController , nc:SSSCController , nc:TapChangerController , nc:PowerPlantController , nc:UnifiedPowerFlowController , nc:CompensatorController , nc:RotatingMachineController , nc:DirectCurrentController . + +er:SolarRadiationDependencyCurve + rdf:type sh:NodeShape ; + sh:property er:Curve.y2Unit-datatype , er:Curve.y1Unit-cardinality , er:Curve.y2Unit-cardinality , er:Curve.y1Unit-datatype , er:Curve.y2Multiplier-datatype , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.description-datatype , er:Curve.xMultiplier-datatype , er:Curve.curveStyle-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.energyIdentCodeEic-cardinality , er:Curve.xUnit-datatype , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.name-datatype , er:Curve.xUnit-cardinality , er:Curve.curveStyle-datatype , er:Curve.y1Multiplier-cardinality , er:Curve.y1Multiplier-datatype , ido:IdentifiedObject.description-cardinality , er:Curve.xMultiplier-cardinality , er:Curve.y2Multiplier-cardinality ; + sh:targetClass nc:SolarRadiationDependencyCurve . + +er:Curve.y2Unit-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:in ( cim:UnitSymbol.WPers cim:UnitSymbol.WPerm2 cim:UnitSymbol.ohm cim:UnitSymbol.V cim:UnitSymbol.W cim:UnitSymbol.degC cim:UnitSymbol.Hz cim:UnitSymbol.VPerVAr cim:UnitSymbol.A cim:UnitSymbol.s cim:UnitSymbol.Pa cim:UnitSymbol.none cim:UnitSymbol.deg ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "Curve.y2Unit-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 8 ; + sh:path cim:Curve.y2Unit ; + sh:severity sh:Violation . + +er:OutageCoordinationRegion.OutageCoordinator-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:OutageCoordinator ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:OutageCoordinator" ; + sh:name "OutageCoordinationRegion.OutageCoordinator-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path ( nc:OutageCoordinationRegion.OutageCoordinator rdf:type ) ; + sh:severity sh:Violation . + +er:SubSchedulingArea.SchedulingArea-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:SchedulingArea nc:SubSchedulingArea ) ; + sh:message "One of the following occurs: 1) The value type is not IRI; 2) The value type is not the right class." ; + sh:name "SubSchedulingArea.SchedulingArea-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path ( nc:SubSchedulingArea.SchedulingArea rdf:type ) ; + sh:severity sh:Violation . + +er:GateInputPin.thresholdPercentage-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "GateInputPin.thresholdPercentage-cardinality" ; + sh:order 3 ; + sh:path nc:GateInputPin.thresholdPercentage ; + sh:severity sh:Violation . + +er:PowerElectronicsUnit.shortPF-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerElectronicsUnit.shortPF-cardinality" ; + sh:order 2 ; + sh:path nc:PowerElectronicsUnit.shortPF ; + sh:severity sh:Violation . + +er:CapacityCalculationRegion + rdf:type sh:NodeShape ; + sh:property er:Region.OverlappingZone-cardinality , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.mRID-datatype , er:Region.OverlappingZone-valueType , ido:IdentifiedObject.description-cardinality , er:CapacityCalculationRegion.SecurityCoordinator-cardinality , er:CapacityCalculationRegion.SecurityCoordinator-valueType ; + sh:targetClass nc:CapacityCalculationRegion . + +er:StaticVarCompensator + rdf:type sh:NodeShape ; + sh:property er:Equipment.Circuit-cardinality , ido:IdentifiedObject.name-cardinality , er:FACTSEquipment.slope-datatype , er:FACTSEquipment.capacitiveRating-datatype , er:RegulatingCondEq.EquipmentController-cardinality , er:FACTSEquipment.capacitiveRating-cardinality , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.energyIdentCodeEic-datatype , er:FACTSEquipment.inductiveRating-cardinality , ido:IdentifiedObject.description-datatype , er:Equipment.AggregatedEquipment-cardinality , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.description-cardinality , er:FACTSEquipment.inductiveRating-datatype , ido:IdentifiedObject.mRID-datatype , er:FACTSEquipment.slope-cardinality , ido:IdentifiedObject.mRID-cardinality ; + sh:targetClass nc:StaticVarCompensator . + +er:PowerElectronicsUnit.minEconomicP-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerElectronicsUnit.minEconomicP-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 8 ; + sh:path nc:PowerElectronicsUnit.minEconomicP ; + sh:severity sh:Violation . + +er:CircuitShare.Circuit-valueTypeNodeShape + rdf:type sh:NodeShape ; + sh:property er:CircuitShare.Circuit-valueType ; + sh:targetClass nc:CircuitShare . + +er:FunctionBlock.AutomationFunction-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "FunctionBlock.AutomationFunction-cardinality" ; + sh:order 5 ; + sh:path nc:FunctionBlock.AutomationFunction ; + sh:severity sh:Violation . + +er:OperationalLimitType.RecoveryOverloadLimitCurve-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "OperationalLimitType.RecoveryOverloadLimitCurve-cardinality" ; + sh:order 1 ; + sh:path nc:OperationalLimitType.RecoveryOverloadLimitCurve ; + sh:severity sh:Violation . + +er:Feeder.NormalEnergizedSubstation-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( cim:Substation ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: cim:Substation" ; + sh:name "Feeder.NormalEnergizedSubstation-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 3 ; + sh:path ( cim:Feeder.NormalEnergizedSubstation rdf:type ) ; + sh:severity sh:Violation . + +er:DCCurrentControlFunction.droop-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "DCCurrentControlFunction.droop-cardinality" ; + sh:order 1 ; + sh:path nc:DCCurrentControlFunction.droop ; + sh:severity sh:Violation . + +er:ControlFunctionBlock.minAllowedTargetValue-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "ControlFunctionBlock.minAllowedTargetValue-cardinality" ; + sh:order 1 ; + sh:path nc:ControlFunctionBlock.minAllowedTargetValue ; + sh:severity sh:Violation . + +er:Curve.y1Unit-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:in ( cim:UnitSymbol.WPers cim:UnitSymbol.WPerm2 cim:UnitSymbol.ohm cim:UnitSymbol.V cim:UnitSymbol.W cim:UnitSymbol.degC cim:UnitSymbol.Hz cim:UnitSymbol.VPerVAr cim:UnitSymbol.A cim:UnitSymbol.s cim:UnitSymbol.Pa cim:UnitSymbol.none cim:UnitSymbol.deg ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "Curve.y1Unit-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 3 ; + sh:path cim:Curve.y1Unit ; + sh:severity sh:Violation . + +er:SchedulingArea.SystemOperator-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "SchedulingArea.SystemOperator-cardinality" ; + sh:order 4 ; + sh:path nc:SchedulingArea.SystemOperator ; + sh:severity sh:Violation . + +er:FlexibleEnergyUnit.buffer-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "FlexibleEnergyUnit.buffer-cardinality" ; + sh:order 0 ; + sh:path nc:FlexibleEnergyUnit.buffer ; + sh:severity sh:Violation . + +er:TieCorridor.maxRegulatingReserveRamp-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "TieCorridor.maxRegulatingReserveRamp-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 9 ; + sh:path nc:TieCorridor.maxRegulatingReserveRamp ; + sh:severity sh:Violation . + +er:GeothermalGeneratingUnit.kind-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:in ( nc:GeothermalUnitKind.drySteam nc:GeothermalUnitKind.binaryCycle nc:GeothermalUnitKind.other nc:GeothermalUnitKind.flashSteam ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "GeothermalGeneratingUnit.kind-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path nc:GeothermalGeneratingUnit.kind ; + sh:severity sh:Violation . + +er:HydroPump.maxEconomicP-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "HydroPump.maxEconomicP-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 5 ; + sh:path nc:HydroPump.maxEconomicP ; + sh:severity sh:Violation . + +er:AreaDispatchableUnit.PowerElectronicsUnit-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( cim:PowerElectronicsUnit nc:PowerElectronicsMarineUnit nc:ChargingUnit nc:FlexibleEnergyUnit nc:PowerElectricalChemicalUnit ) ; + sh:message "One of the following occurs: 1) The value type is not IRI; 2) The value type is not the right class." ; + sh:name "AreaDispatchableUnit.PowerElectronicsUnit-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 7 ; + sh:path ( nc:AreaDispatchableUnit.PowerElectronicsUnit rdf:type ) ; + sh:severity sh:Violation . + +er:AreaDispatchableUnit + rdf:type sh:NodeShape ; + sh:property er:AreaDispatchableUnit.SchedulingArea-cardinality , er:AreaDispatchableUnit.ScheduleResource-cardinality , er:AreaDispatchableUnit.normalEnabled-datatype , er:AreaDispatchableUnit.HydroPump-valueType , er:AreaDispatchableUnit.normalEnabled-cardinality , er:AreaDispatchableUnit.ScheduleResource-valueType , er:AreaDispatchableUnit.EnergyConsumer-valueType , er:AreaDispatchableUnit.HydroPump-cardinality , er:AreaDispatchableUnit.EnergyConsumer-cardinality , er:AreaDispatchableUnit.TieCorridor-cardinality , er:AreaDispatchableUnit.PowerElectronicsUnit-cardinality , er:AreaDispatchableUnit.GeneratingUnit-cardinality ; + sh:targetClass nc:AreaDispatchableUnit . + +er:CurveData.Curve-valueTypeNodeShape + rdf:type sh:NodeShape ; + sh:property er:CurveData.Curve-valueType ; + sh:targetClass cim:CurveData . + +er:TCSCController rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.name-cardinality , er:AutomationFunction.type-cardinality , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.description-cardinality , er:AutomationFunction.type-datatype , er:AutomationFunction.PartOf-cardinality , ido:IdentifiedObject.description-datatype ; + sh:targetClass nc:TCSCController . + +er:CurrentDroopOverride.offsetInductive-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "CurrentDroopOverride.offsetInductive-cardinality" ; + sh:order 3 ; + sh:path nc:CurrentDroopOverride.offsetInductive ; + sh:severity sh:Violation . + +er:SSSCController rdf:type sh:NodeShape ; + sh:property er:AutomationFunction.type-datatype , er:SSSCController.minVoltageInjection-datatype , er:SSSCController.minOperatingCurrentLimit-cardinality , er:SSSCController.maxVoltageInjection-datatype , er:SSSCController.maxOperatingCurrentLimit-datatype , ido:IdentifiedObject.mRID-cardinality , er:SSSCController.SSSCSimulationSettings-valueType , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.mRID-datatype , er:SSSCController.SSSCSimulationSettings-cardinality , er:AutomationFunction.PartOf-cardinality , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.description-cardinality , er:SSSCController.maxVoltageInjection-cardinality , er:SSSCController.maxOperatingCurrentLimit-cardinality , er:AutomationFunction.type-cardinality , er:SSSCController.minVoltageInjection-cardinality , ido:IdentifiedObject.description-datatype , er:SSSCController.minOperatingCurrentLimit-datatype ; + sh:targetClass nc:SSSCController . + +er:ACTieCorridor rdf:type sh:NodeShape ; + sh:property er:TieCorridor.BiddingZoneBorder-valueType , er:TieCorridor.LoadFrequencyControlArea-cardinality , er:TieCorridor.thresholdRegulatingReserve-datatype , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.energyIdentCodeEic-datatype , er:TieCorridor.thresholdRegulatingReserve-cardinality , ido:IdentifiedObject.name-cardinality , er:TieCorridor.maxRegulatingReserveRamp-datatype , er:TieCorridor.maxRegulatingReserveRamp-cardinality , er:TieCorridor.delayRegulatingReserve-datatype , er:TieCorridor.delayRegulatingReserve-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.mRID-datatype , er:TieCorridor.BiddingZoneBorder-cardinality , er:TieCorridor.LoadFrequencyControlArea-valueType , ido:IdentifiedObject.mRID-cardinality ; + sh:targetClass nc:ACTieCorridor . + +er:NuclearGeneratingUnit.reactorKind-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:in ( nc:NuclearReactorKind.lightWater nc:NuclearReactorKind.liquidMetal nc:NuclearReactorKind.breeder nc:NuclearReactorKind.graphite nc:NuclearReactorKind.other nc:NuclearReactorKind.heavyWater ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "NuclearGeneratingUnit.reactorKind-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path nc:NuclearGeneratingUnit.reactorKind ; + sh:severity sh:Violation . + +er:DCTieCorridor.maxRegulatingReserve-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "DCTieCorridor.maxRegulatingReserve-cardinality" ; + sh:order 0 ; + sh:path nc:DCTieCorridor.maxRegulatingReserve ; + sh:severity sh:Violation . + +er:EnergyBlockComponent + rdf:type sh:NodeShape ; + sh:property er:EnergyComponent.EnergyGroup-valueType , ido:IdentifiedObject.description-datatype , er:EnergyComponent.HydroPump-valueType , er:EnergyComponent.EnergyGroup-cardinality , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype , er:EnergyComponent.EnergyConsumer-cardinality , er:EnergyComponent.EnergyConsumer-valueType , er:EnergyComponent.GeneratingUnit-cardinality , er:EnergyComponent.HydroPump-cardinality , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.name-datatype , er:EnergyComponent.PowerElectronicsUnit-cardinality ; + sh:targetClass nc:EnergyBlockComponent . + +er:GeneratingUnit.PrimaryEnergySource-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "GeneratingUnit.PrimaryEnergySource-cardinality" ; + sh:order 4 ; + sh:path nc:GeneratingUnit.PrimaryEnergySource ; + sh:severity sh:Violation . + +er:DCCurrentControlFunction + rdf:type sh:NodeShape ; + sh:property er:ControlFunctionBlock.targetDeadband-cardinality , er:FunctionBlock.priority-datatype , er:DCCurrentControlFunction.droop-datatype , er:ControlFunctionBlock.maxAllowedTargetValue-cardinality , er:ControlFunctionBlock.maxAllowedTargetValue-datatype , ido:IdentifiedObject.mRID-datatype , er:FunctionBlock.AutomationFunction-cardinality , ido:IdentifiedObject.description-datatype , er:DCCurrentControlFunction.droopCompensation-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype , er:ControlFunctionBlock.minAllowedTargetValue-cardinality , ido:IdentifiedObject.mRID-cardinality , er:FunctionBlock.priority-cardinality , er:ControlFunctionBlock.isDiscrete-datatype , er:ControlFunctionBlock.isDiscrete-cardinality , er:DCCurrentControlFunction.droop-cardinality , er:ControlFunctionBlock.targetDeadband-datatype , er:ControlFunctionBlock.minAllowedTargetValue-datatype , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.energyIdentCodeEic-cardinality , er:DCCurrentControlFunction.droopCompensation-datatype , ido:IdentifiedObject.description-cardinality ; + sh:targetClass nc:DCCurrentControlFunction . + +er:BiddingZoneBorder rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.energyIdentCodeEic-datatype , er:BiddingZoneBorder.BiddingZoneOne-cardinality , er:BiddingZoneBorder.BiddingZoneTwo-cardinality , er:BiddingZoneBorder.CapacityCalculationRegion-valueType , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.description-cardinality , er:BiddingZoneBorder.CapacityCalculationRegion-cardinality , er:BiddingZoneBorder.BiddingZoneTwo-valueType , ido:IdentifiedObject.energyIdentCodeEic-cardinality , er:BiddingZoneBorder.BiddingZoneOne-valueType ; + sh:targetClass nc:BiddingZoneBorder . + +er:SSSCSimulationSettings.maxMismatch-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "SSSCSimulationSettings.maxMismatch-cardinality" ; + sh:order 3 ; + sh:path nc:SSSCSimulationSettings.maxMismatch ; + sh:severity sh:Violation . + +er:Organisation rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.description-cardinality ; + sh:targetClass cim:Organisation . + +er:EnergyConsumer.maxEconomicP-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "EnergyConsumer.maxEconomicP-cardinality" ; + sh:order 4 ; + sh:path nc:EnergyConsumer.maxEconomicP ; + sh:severity sh:Violation . + +er:PTCTriggeredEquipment.Equipment-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "PTCTriggeredEquipment.Equipment-cardinality" ; + sh:order 1 ; + sh:path nc:PTCTriggeredEquipment.Equipment ; + sh:severity sh:Violation . + +er:SchedulingArea.isIslandingEnabled-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "SchedulingArea.isIslandingEnabled-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path nc:SchedulingArea.isIslandingEnabled ; + sh:severity sh:Violation . + +er:GeneratingUnit.warmStartupCost-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "GeneratingUnit.warmStartupCost-cardinality" ; + sh:order 3 ; + sh:path nc:GeneratingUnit.warmStartupCost ; + sh:severity sh:Violation . + +ido:IdentifiedObject.description-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ido:CardinalityIO ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "IdentifiedObject.description-cardinality" ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.description ; + sh:severity sh:Violation . + +er:BiddingZoneBorder.BiddingZoneTwo-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "BiddingZoneBorder.BiddingZoneTwo-cardinality" ; + sh:order 3 ; + sh:path nc:BiddingZoneBorder.BiddingZoneTwo ; + sh:severity sh:Violation . + +er:OutageCoordinationRegion.OutageCoordinator-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "OutageCoordinationRegion.OutageCoordinator-cardinality" ; + sh:order 1 ; + sh:path nc:OutageCoordinationRegion.OutageCoordinator ; + sh:severity sh:Violation . + +er:TieCorridor.LoadFrequencyControlArea-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "TieCorridor.LoadFrequencyControlArea-cardinality" ; + sh:order 11 ; + sh:path nc:TieCorridor.LoadFrequencyControlArea ; + sh:severity sh:Violation . + +er:FacilityPlantController + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.description-cardinality , er:AutomationFunction.type-datatype , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.energyIdentCodeEic-cardinality , er:AutomationFunction.PartOf-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.mRID-datatype , er:AutomationFunction.type-cardinality , ido:IdentifiedObject.name-datatype ; + sh:targetClass nc:FacilityPlantController . + +er:Equipment.Circuit-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:PowerTransformerCircuit nc:DirectCurrentCircuit nc:LineCircuit ) ; + sh:message "One of the following occurs: 1) The value type is not IRI; 2) The value type is not the right class." ; + sh:name "Equipment.Circuit-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 12 ; + sh:path ( nc:Equipment.Circuit rdf:type ) ; + sh:severity sh:Violation . + +er:SSSCController.maxOperatingCurrentLimit-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "SSSCController.maxOperatingCurrentLimit-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path nc:SSSCController.maxOperatingCurrentLimit ; + sh:severity sh:Violation . + +er:VsCapabilityCurve.VsConverter-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "VsCapabilityCurve.VsConverter-cardinality" ; + sh:order 0 ; + sh:path cim:VsCapabilityCurve.VsConverter ; + sh:severity sh:Violation . + +er:Region.OverlappingZone-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Region.OverlappingZone-cardinality" ; + sh:order 3 ; + sh:path nc:Region.OverlappingZone ; + sh:severity sh:Violation . + +er:PowerInfeedTerminal.ACDCTerminal-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in (cim:Terminal) ; + sh:message "One of the following occurs: 1) The value type is not IRI; 2) The value type is not the right class." ; + sh:name "PowerInfeedTerminal.ACDCTerminal-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path ( nc:PowerInfeedTerminal.ACDCTerminal rdf:type ) ; + sh:severity sh:Violation . + +er:FossilFuel.FuelStorage-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:FuelStorage ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:FuelStorage" ; + sh:name "FossilFuel.FuelStorage-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path ( nc:FossilFuel.FuelStorage rdf:type ) ; + sh:severity sh:Violation . + +er:TieFlow.TieCorridor-valueTypeNodeShape + rdf:type sh:NodeShape ; + sh:property er:TieFlow.TieCorridor-valueType ; + sh:targetClass cim:TieFlow . + +er:GeneratingUnit.startupRampRate-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "GeneratingUnit.startupRampRate-cardinality" ; + sh:order 11 ; + sh:path nc:GeneratingUnit.startupRampRate ; + sh:severity sh:Violation . + +er:TapChanger.TapChangeController-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "TapChanger.TapChangeController-cardinality" ; + sh:order 0 ; + sh:path nc:TapChanger.TapChangeController ; + sh:severity sh:Violation . + +er:ControlArea.SystemOperator-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:DirectCurrentSystemOperator nc:TransmissionSystemOperator nc:ClosedDistributionSystemOperator nc:DistributionSystemOperator ) ; + sh:message "One of the following occurs: 1) The value type is not IRI; 2) The value type is not the right class." ; + sh:name "ControlArea.SystemOperator-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path ( nc:ControlArea.SystemOperator rdf:type ) ; + sh:severity sh:Violation . + +er:LoadFrequencyControlArea.LoadFrequencyControlBlock-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:LoadFrequencyControlBlock ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:LoadFrequencyControlBlock" ; + sh:name "LoadFrequencyControlArea.LoadFrequencyControlBlock-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 7 ; + sh:path ( nc:LoadFrequencyControlArea.LoadFrequencyControlBlock rdf:type ) ; + sh:severity sh:Violation . + +er:BiddingZoneBorder.CapacityCalculationRegion-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:CapacityCalculationRegion ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:CapacityCalculationRegion" ; + sh:name "BiddingZoneBorder.CapacityCalculationRegion-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path ( nc:BiddingZoneBorder.CapacityCalculationRegion rdf:type ) ; + sh:severity sh:Violation . + +er:CurveData.xvalue-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "CurveData.xvalue-cardinality" ; + sh:order 1 ; + sh:path cim:CurveData.xvalue ; + sh:severity sh:Violation . + +er:ThyristorControlledSeriesCompensator.flexibleInductiveImpedance-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "ThyristorControlledSeriesCompensator.flexibleInductiveImpedance-cardinality" ; + sh:order 0 ; + sh:path nc:ThyristorControlledSeriesCompensator.flexibleInductiveImpedance ; + sh:severity sh:Violation . + +er:BiddingZone rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.mRID-datatype , er:BiddingZone.isTradeEnabled-cardinality , er:BiddingZone.CapacityCalculationRegion-cardinality , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype , er:BiddingZone.isTradeEnabled-datatype , er:BiddingZone.CapacityCalculationRegion-valueType ; + sh:targetClass nc:BiddingZone . + +er:HydroPump.longPF-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "HydroPump.longPF-cardinality" ; + sh:order 3 ; + sh:path nc:HydroPump.longPF ; + sh:severity sh:Violation . + +er:VsCapabilityCurve.referenceVoltage-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "VsCapabilityCurve.referenceVoltage-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:VsCapabilityCurve.referenceVoltage ; + sh:severity sh:Violation . + +er:DCPole.participationFactor-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "DCPole.participationFactor-cardinality" ; + sh:order 0 ; + sh:path nc:DCPole.participationFactor ; + sh:severity sh:Violation . + +er:AutomationFunction.PartOf-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:SSSCController nc:UnifiedPowerFlowController nc:RotatingMachineController nc:TapChangerController nc:TCSCController nc:FacilityPlantController nc:DirectCurrentController nc:SubstationController nc:PowerPlantController nc:InjectionController nc:CompensatorController ) ; + sh:message "One of the following occurs: 1) The value type is not IRI; 2) The value type is not the right class." ; + sh:name "AutomationFunction.PartOf-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 3 ; + sh:path ( nc:AutomationFunction.PartOf rdf:type ) ; + sh:severity sh:Violation . + +er:CurrentDroopOverride + rdf:type sh:NodeShape ; + sh:property er:CurrentDroopOverride.droopInductive-datatype , er:CurrentDroopOverride.offsetInductive-datatype , er:CurrentDroopOverride.SSSCController-valueType , er:CurrentDroopOverride.droopInductive-cardinality , er:CurrentDroopOverride.offsetInductive-cardinality , er:CurrentDroopOverride.offsetCapacitive-cardinality , er:CurrentDroopOverride.mRID-datatype , er:CurrentDroopOverride.droopCapacitive-cardinality , er:CurrentDroopOverride.offsetCapacitive-datatype , er:CurrentDroopOverride.SSSCController-cardinality , er:CurrentDroopOverride.mRID-cardinality , er:CurrentDroopOverride.droopCapacitive-datatype ; + sh:targetClass nc:CurrentDroopOverride . + +er:PowerElectronicsUnit.minEconomicP-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerElectronicsUnit.minEconomicP-cardinality" ; + sh:order 8 ; + sh:path nc:PowerElectronicsUnit.minEconomicP ; + sh:severity sh:Violation . + +er:TieCorridor rdf:type sh:NodeShape ; + sh:property er:TieCorridor.BiddingZoneBorder-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.description-cardinality , er:TieCorridor.delayRegulatingReserve-cardinality , er:TieCorridor.maxRegulatingReserveRamp-datatype , er:TieCorridor.maxRegulatingReserveRamp-cardinality , er:TieCorridor.thresholdRegulatingReserve-datatype , er:TieCorridor.LoadFrequencyControlArea-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.mRID-datatype , er:TieCorridor.delayRegulatingReserve-datatype , er:TieCorridor.LoadFrequencyControlArea-valueType , er:TieCorridor.thresholdRegulatingReserve-cardinality , ido:IdentifiedObject.energyIdentCodeEic-cardinality , er:TieCorridor.BiddingZoneBorder-valueType , ido:IdentifiedObject.name-datatype ; + sh:targetClass nc:TieCorridor . + +er:GeneratingUnit.warmStartupTime-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "GeneratingUnit.warmStartupTime-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path nc:GeneratingUnit.warmStartupTime ; + sh:severity sh:Violation . + +er:LoadFrequencyControlArea.frequencyBiasFactor-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "LoadFrequencyControlArea.frequencyBiasFactor-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:LoadFrequencyControlArea.frequencyBiasFactor ; + sh:severity sh:Violation . + +er:DCBusbar rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype , er:Equipment.Circuit-cardinality , er:DCConductingEquipment.ratedCurrent-datatype , er:Equipment.AggregatedEquipment-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.description-cardinality , er:DCConductingEquipment.ratedCurrent-cardinality , ido:IdentifiedObject.name-datatype ; + sh:targetClass cim:DCBusbar . + +er:GateInputPin.duration-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:duration ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "GateInputPin.duration-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path nc:GateInputPin.duration ; + sh:severity sh:Violation . + +er:EnergyComponent.PowerElectronicsUnit-valueTypeNodeShape + rdf:type sh:NodeShape ; + sh:property er:EnergyComponent.PowerElectronicsUnit-valueType ; + sh:targetClass nc:ProportionalEnergyComponent , nc:EnergyBlockComponent . + +er:DCPole rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.mRID-datatype , er:DCPole.DCTieCorridor-cardinality , er:DCPole.participationFactor-datatype , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.name-cardinality , er:DCPole.DCTieCorridor-valueType , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.description-cardinality , er:DCPole.participationFactor-cardinality , ido:IdentifiedObject.name-datatype , er:DCPole.DCLine-cardinality ; + sh:targetClass nc:DCPole . + +er:ControlFunctionBlock.isDiscrete-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "ControlFunctionBlock.isDiscrete-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path nc:ControlFunctionBlock.isDiscrete ; + sh:severity sh:Violation . + +er:AmbientTemperatureDependencyCurve + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.energyIdentCodeEic-cardinality , er:Curve.y1Multiplier-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype , er:Curve.y2Unit-cardinality , er:Curve.xMultiplier-datatype , er:Curve.y1Unit-cardinality , er:Curve.y2Multiplier-cardinality , er:Curve.curveStyle-cardinality , ido:IdentifiedObject.mRID-cardinality , er:Curve.y1Multiplier-datatype , ido:IdentifiedObject.name-cardinality , er:Curve.y1Unit-datatype , er:Curve.xUnit-datatype , er:Curve.y2Multiplier-datatype , er:Curve.xMultiplier-cardinality , er:Curve.xUnit-cardinality , ido:IdentifiedObject.name-datatype , er:Curve.y2Unit-datatype , er:Curve.curveStyle-datatype , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.description-datatype ; + sh:targetClass nc:AmbientTemperatureDependencyCurve . + +er:CurrentDroopOverride.offsetCapacitive-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "CurrentDroopOverride.offsetCapacitive-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 5 ; + sh:path nc:CurrentDroopOverride.offsetCapacitive ; + sh:severity sh:Violation . + +er:DCSeriesDevice rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.name-datatype , er:DCConductingEquipment.ratedCurrent-cardinality , ido:IdentifiedObject.description-cardinality , er:DCConductingEquipment.ratedCurrent-datatype , er:Equipment.Circuit-cardinality , er:Equipment.AggregatedEquipment-cardinality ; + sh:targetClass cim:DCSeriesDevice . + +er:FunctionOutputVariable + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.mRID-datatype , er:FunctionOutputVariable.FunctionBlack-cardinality , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.name-datatype , er:FunctionOutputVariable.PropertyReference-cardinality ; + sh:targetClass nc:FunctionOutputVariable . + +er:ControlFunctionBlock.maxAllowedTargetValue-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "ControlFunctionBlock.maxAllowedTargetValue-cardinality" ; + sh:order 0 ; + sh:path nc:ControlFunctionBlock.maxAllowedTargetValue ; + sh:severity sh:Violation . + +er:SSSCSimulationSettings.useDIDVestimation-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "SSSCSimulationSettings.useDIDVestimation-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:SSSCSimulationSettings.useDIDVestimation ; + sh:severity sh:Violation . + +er:DatatypesGroup rdf:type sh:PropertyGroup ; + rdfs:label "Datatypes" ; + sh:order 1 . + +er:SSSCController.maxVoltageInjection-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "SSSCController.maxVoltageInjection-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path nc:SSSCController.maxVoltageInjection ; + sh:severity sh:Violation . + +er:OutageCoordinator rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.description-cardinality , er:OrganisationRole.globalLocationNumber-datatype , ido:IdentifiedObject.name-cardinality , er:OrganisationRole.globalLocationNumber-cardinality , er:OrganisationRole.Organisation-valueType , ido:IdentifiedObject.energyIdentCodeEic-cardinality , er:OrganisationRole.Organisation-cardinality , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.description-datatype ; + sh:targetClass nc:OutageCoordinator . + +er:HydroPowerPlant.Reservoir-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "HydroPowerPlant.Reservoir-cardinality" ; + sh:order 0 ; + sh:path cim:HydroPowerPlant.Reservoir ; + sh:severity sh:Violation . + +er:FunctionOutputVariable.FunctionBlack-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "FunctionOutputVariable.FunctionBlack-cardinality" ; + sh:order 0 ; + sh:path nc:FunctionOutputVariable.FunctionBlack ; + sh:severity sh:Violation . + +er:OperationalLimitType.PermanentSolarRadiationCurve-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:SolarRadiationDependencyCurve ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:SolarRadiationDependencyCurve" ; + sh:name "OperationalLimitType.PermanentSolarRadiationCurve-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 6 ; + sh:path ( nc:OperationalLimitType.PermanentSolarRadiationCurve rdf:type ) ; + sh:severity sh:Violation . + +er:EnergyBlockOrder.sequence-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:integer ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "EnergyBlockOrder.sequence-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:EnergyBlockOrder.sequence ; + sh:severity sh:Violation . + +er:CurveData.xvalue-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "CurveData.xvalue-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path cim:CurveData.xvalue ; + sh:severity sh:Violation . + +er:LoadFrequencyControlArea.deficientGenerationLimit-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "LoadFrequencyControlArea.deficientGenerationLimit-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 8 ; + sh:path nc:LoadFrequencyControlArea.deficientGenerationLimit ; + sh:severity sh:Violation . + +er:AutomationFunction.PartOf-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AutomationFunction.PartOf-cardinality" ; + sh:order 3 ; + sh:path nc:AutomationFunction.PartOf ; + sh:severity sh:Violation . + +er:Curve.xUnit-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:in ( cim:UnitSymbol.WPers cim:UnitSymbol.WPerm2 cim:UnitSymbol.ohm cim:UnitSymbol.V cim:UnitSymbol.W cim:UnitSymbol.degC cim:UnitSymbol.Hz cim:UnitSymbol.VPerVAr cim:UnitSymbol.A cim:UnitSymbol.s cim:UnitSymbol.Pa cim:UnitSymbol.none cim:UnitSymbol.deg ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "Curve.xUnit-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 4 ; + sh:path cim:Curve.xUnit ; + sh:severity sh:Violation . + +er:TieCorridor.maxRegulatingReserveRamp-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "TieCorridor.maxRegulatingReserveRamp-cardinality" ; + sh:order 9 ; + sh:path nc:TieCorridor.maxRegulatingReserveRamp ; + sh:severity sh:Violation . + +er:CurrentDroopOverride.SSSCController-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "CurrentDroopOverride.SSSCController-cardinality" ; + sh:order 1 ; + sh:path nc:CurrentDroopOverride.SSSCController ; + sh:severity sh:Violation . + +er:GeneratingUnit.raiseRampRate-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "GeneratingUnit.raiseRampRate-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 9 ; + sh:path cim:GeneratingUnit.raiseRampRate ; + sh:severity sh:Violation . + +er:AreaDispatchableUnit.TieCorridor-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:TieCorridor nc:DCTieCorridor nc:ACTieCorridor ) ; + sh:message "One of the following occurs: 1) The value type is not IRI; 2) The value type is not the right class." ; + sh:name "AreaDispatchableUnit.TieCorridor-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 6 ; + sh:path ( nc:AreaDispatchableUnit.TieCorridor rdf:type ) ; + sh:severity sh:Violation . + +er:FlexibleEnergyUnit.unconstrained-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "FlexibleEnergyUnit.unconstrained-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path nc:FlexibleEnergyUnit.unconstrained ; + sh:severity sh:Violation . + +er:Curve.curveStyle-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "Curve.curveStyle-cardinality" ; + sh:order 2 ; + sh:path cim:Curve.curveStyle ; + sh:severity sh:Violation . + +er:DCConverterUnit.Substation-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "DCConverterUnit.Substation-cardinality" ; + sh:order 1 ; + sh:path cim:DCConverterUnit.Substation ; + sh:severity sh:Violation . + +er:LoadFrequencyControlBlock + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.energyIdentCodeEic-datatype , er:LoadFrequencyControlBlock.SynchronousArea-valueType , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.description-cardinality , er:LoadFrequencyControlBlock.SynchronousArea-cardinality , ido:IdentifiedObject.mRID-datatype ; + sh:targetClass nc:LoadFrequencyControlBlock . + +er:GeneratingUnit rdf:type sh:NodeShape ; + sh:property er:GeneratingUnit.maxStartupLoad-datatype , er:GeneratingUnit.warmStartupTime-cardinality , er:GeneratingUnit.raiseRampRate-datatype , ido:IdentifiedObject.description-datatype , er:Equipment.AggregatedEquipment-cardinality , er:GeneratingUnit.shutdownCost-cardinality , er:GeneratingUnit.maxEconomicP-cardinality , er:GeneratingUnit.coolDownTime-cardinality , er:GeneratingUnit.lowerRampRate-cardinality , er:GeneratingUnit.ScheduleResource-valueType , er:GeneratingUnit.minEconomicP-datatype , er:Equipment.Circuit-cardinality , er:GeneratingUnit.maxStartupLoad-cardinality , er:GeneratingUnit.minimumOffTime-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.energyIdentCodeEic-cardinality , er:GeneratingUnit.coolDownTime-datatype , er:GeneratingUnit.warmStartupCost-cardinality , er:GeneratingUnit.startupRampRate-datatype , er:GeneratingUnit.shutdownCost-datatype , er:GeneratingUnit.lowerRampRate-datatype , er:GeneratingUnit.warmStartupCost-datatype , ido:IdentifiedObject.name-datatype , er:GeneratingUnit.startupRampRate-cardinality , ido:IdentifiedObject.name-cardinality , er:GeneratingUnit.maxEconomicP-datatype , er:GeneratingUnit.raiseRampRate-cardinality , er:GeneratingUnit.warmStartupTime-datatype , er:GeneratingUnit.minEconomicP-cardinality , ido:IdentifiedObject.description-cardinality , er:GeneratingUnit.shutdownTime-datatype , er:GeneratingUnit.ScheduleResource-cardinality , er:GeneratingUnit.minimumOffTime-datatype , er:GeneratingUnit.PrimaryEnergySource-cardinality , er:GeneratingUnit.shutdownTime-cardinality ; + sh:targetClass cim:GeneratingUnit . + +er:CurrentDroopOverride.mRID-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "CurrentDroopOverride.mRID-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path nc:CurrentDroopOverride.mRID ; + sh:severity sh:Violation . + +er:ScheduleResource.SchedulingArea-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "ScheduleResource.SchedulingArea-cardinality" ; + sh:order 6 ; + sh:path nc:ScheduleResource.SchedulingArea ; + sh:severity sh:Violation . + +er:CompensatorController + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.energyIdentCodeEic-cardinality , er:AutomationFunction.type-datatype , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.name-cardinality , er:AutomationFunction.type-cardinality , ido:IdentifiedObject.description-cardinality , er:AutomationFunction.PartOf-cardinality ; + sh:targetClass nc:CompensatorController . + +er:SSSCSimulationSettings.maxMismatch-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "SSSCSimulationSettings.maxMismatch-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path nc:SSSCSimulationSettings.maxMismatch ; + sh:severity sh:Violation . + +er:PowerPlantController + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype , er:AutomationFunction.type-datatype , er:AutomationFunction.PartOf-cardinality , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.mRID-cardinality , er:AutomationFunction.type-cardinality , ido:IdentifiedObject.energyIdentCodeEic-cardinality ; + sh:targetClass nc:PowerPlantController . + +er:OperationalLimitSet.PowerTransferCorridor-valueTypeNodeShape + rdf:type sh:NodeShape ; + sh:property er:OperationalLimitSet.PowerTransferCorridor-valueType ; + sh:targetClass cim:OperationalLimitSet . + +er:CurveData rdf:type sh:NodeShape ; + sh:property er:CurveData.y1value-datatype , er:CurveData.y1value-cardinality , er:CurveData.y2value-datatype , er:CurveData.y2value-cardinality , er:CurveData.xvalue-datatype , er:CurveData.xvalue-cardinality , er:CurveData.Curve-cardinality ; + sh:targetClass cim:CurveData . + +er:GeneratingUnit.lowerRampRate-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "GeneratingUnit.lowerRampRate-cardinality" ; + sh:order 15 ; + sh:path cim:GeneratingUnit.lowerRampRate ; + sh:severity sh:Violation . + +er:StaticSynchronousSeriesCompensator + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.description-datatype , er:Equipment.Circuit-cardinality , er:FACTSEquipment.inductiveRating-datatype , er:Equipment.AggregatedEquipment-cardinality , er:FACTSEquipment.capacitiveRating-cardinality , ido:IdentifiedObject.description-cardinality , er:FACTSEquipment.slope-cardinality , er:RegulatingCondEq.EquipmentController-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype , er:FACTSEquipment.capacitiveRating-datatype , er:FACTSEquipment.slope-datatype , ido:IdentifiedObject.mRID-datatype , er:FACTSEquipment.inductiveRating-cardinality , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.energyIdentCodeEic-cardinality ; + sh:targetClass nc:StaticSynchronousSeriesCompensator . + +er:VoltageInjectionControlFunction + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.energyIdentCodeEic-cardinality , er:ControlFunctionBlock.maxAllowedTargetValue-datatype , er:FunctionBlock.priority-datatype , er:ControlFunctionBlock.maxAllowedTargetValue-cardinality , ido:IdentifiedObject.description-datatype , er:ControlFunctionBlock.targetDeadband-datatype , er:ControlFunctionBlock.minAllowedTargetValue-cardinality , er:ControlFunctionBlock.targetDeadband-cardinality , ido:IdentifiedObject.mRID-datatype , er:ControlFunctionBlock.minAllowedTargetValue-datatype , er:ControlFunctionBlock.isDiscrete-datatype , ido:IdentifiedObject.energyIdentCodeEic-datatype , er:ControlFunctionBlock.isDiscrete-cardinality , er:FunctionBlock.AutomationFunction-cardinality , ido:IdentifiedObject.name-cardinality , er:FunctionBlock.priority-cardinality , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.description-cardinality ; + sh:targetClass nc:VoltageInjectionControlFunction . + +er:EquivalentInjection + rdf:type sh:NodeShape ; + sh:property er:EquivalentInjection.InjectionController-valueType , er:EquivalentInjection.InjectionController-cardinality ; + sh:targetClass cim:EquivalentInjection . + +er:AreaDispatchableUnit.TieCorridor-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AreaDispatchableUnit.TieCorridor-cardinality" ; + sh:order 6 ; + sh:path nc:AreaDispatchableUnit.TieCorridor ; + sh:severity sh:Violation . + +er:SchedulingArea.SynchronousArea-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "SchedulingArea.SynchronousArea-cardinality" ; + sh:order 15 ; + sh:path nc:SchedulingArea.SynchronousArea ; + sh:severity sh:Violation . + +er:EnergyCoordinationRegion.EnergyAlignmentCoordinator-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:EnergyAlignmentCoordinator ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:EnergyAlignmentCoordinator" ; + sh:name "EnergyCoordinationRegion.EnergyAlignmentCoordinator-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path ( nc:EnergyCoordinationRegion.EnergyAlignmentCoordinator rdf:type ) ; + sh:severity sh:Violation . + +er:ControlFunctionBlock.isDiscrete-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "ControlFunctionBlock.isDiscrete-cardinality" ; + sh:order 3 ; + sh:path nc:ControlFunctionBlock.isDiscrete ; + sh:severity sh:Violation . + +er:ReactiveCapabilityCurve.coolantTemperature-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "ReactiveCapabilityCurve.coolantTemperature-cardinality" ; + sh:order 3 ; + sh:path cim:ReactiveCapabilityCurve.coolantTemperature ; + sh:severity sh:Violation . + +er:CircuitShare.Circuit-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "CircuitShare.Circuit-cardinality" ; + sh:order 2 ; + sh:path nc:CircuitShare.Circuit ; + sh:severity sh:Violation . + +er:CurrentDroopOverride.mRID-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "CurrentDroopOverride.mRID-cardinality" ; + sh:order 4 ; + sh:path nc:CurrentDroopOverride.mRID ; + sh:severity sh:Violation . + +er:TCSCCompensationPoint.ThyristorControlledSeriesCompensator-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "TCSCCompensationPoint.ThyristorControlledSeriesCompensator-cardinality" ; + sh:order 2 ; + sh:path nc:TCSCCompensationPoint.ThyristorControlledSeriesCompensator ; + sh:severity sh:Violation . + +er:OperationalLimitType.PermanentSolarRadiationCurve-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "OperationalLimitType.PermanentSolarRadiationCurve-cardinality" ; + sh:order 6 ; + sh:path nc:OperationalLimitType.PermanentSolarRadiationCurve ; + sh:severity sh:Violation . + +er:TCSCCompensationPoint.mRID-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "TCSCCompensationPoint.mRID-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:TCSCCompensationPoint.mRID ; + sh:severity sh:Violation . + +er:EnergyConsumer.maxEconomicP-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "EnergyConsumer.maxEconomicP-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path nc:EnergyConsumer.maxEconomicP ; + sh:severity sh:Violation . + +er:EnergyConsumer.minEconomicP-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "EnergyConsumer.minEconomicP-cardinality" ; + sh:order 5 ; + sh:path nc:EnergyConsumer.minEconomicP ; + sh:severity sh:Violation . + +er:ACDCConverter rdf:type sh:NodeShape ; + sh:property er:ACDCConverter.DirectCurrentController-valueType , er:ACDCConverter.DirectCurrentController-cardinality , ido:IdentifiedObject.description-datatype , er:Equipment.AggregatedEquipment-cardinality , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.energyIdentCodeEic-cardinality , er:Equipment.Circuit-cardinality , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype ; + sh:targetClass cim:ACDCConverter . + +er:TCSCCompensationPoint.mRID-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "TCSCCompensationPoint.mRID-cardinality" ; + sh:order 0 ; + sh:path nc:TCSCCompensationPoint.mRID ; + sh:severity sh:Violation . + +er:CurrentDroopOverride.droopCapacitive-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "CurrentDroopOverride.droopCapacitive-cardinality" ; + sh:order 0 ; + sh:path nc:CurrentDroopOverride.droopCapacitive ; + sh:severity sh:Violation . + +er:AreaDispatchableUnit.GeneratingUnit-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AreaDispatchableUnit.GeneratingUnit-cardinality" ; + sh:order 2 ; + sh:path nc:AreaDispatchableUnit.GeneratingUnit ; + sh:severity sh:Violation . + +er:AreaDispatchableUnit.GeneratingUnit-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( cim:GeneratingUnit nc:GeothermalGeneratingUnit cim:NuclearGeneratingUnit ) ; + sh:message "One of the following occurs: 1) The value type is not IRI; 2) The value type is not the right class." ; + sh:name "AreaDispatchableUnit.GeneratingUnit-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path ( nc:AreaDispatchableUnit.GeneratingUnit rdf:type ) ; + sh:severity sh:Violation . + +er:OperationalLimitSet.Terminal-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in (cim:Terminal) ; + sh:message "One of the following occurs: 1) The value type is not IRI; 2) The value type is not the right class." ; + sh:name "OperationalLimitSet.Terminal-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path ( cim:OperationalLimitSet.Terminal rdf:type ) ; + sh:severity sh:Violation . + +er:DirectCurrentController + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.mRID-cardinality , er:AutomationFunction.type-datatype , er:AutomationFunction.type-cardinality , er:AutomationFunction.PartOf-cardinality , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.energyIdentCodeEic-datatype ; + sh:targetClass nc:DirectCurrentController . + +er:GeneratingUnit.maxEconomicP-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "GeneratingUnit.maxEconomicP-cardinality" ; + sh:order 16 ; + sh:path cim:GeneratingUnit.maxEconomicP ; + sh:severity sh:Violation . + +er:PowerElectronicsMarineUnit + rdf:type sh:NodeShape ; + sh:property er:PowerElectronicsUnit.longPF-datatype , er:PowerElectronicsUnit.minEconomicP-datatype , er:PowerElectronicsUnit.ScheduleResource-valueType , er:Equipment.AggregatedEquipment-cardinality , ido:IdentifiedObject.description-cardinality , er:Equipment.Circuit-cardinality , er:PowerElectronicsUnit.maxEconomicP-cardinality , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.name-datatype , er:PowerElectronicsMarineUnit.kind-datatype , er:PowerElectronicsUnit.shortPF-cardinality , ido:IdentifiedObject.name-cardinality , er:PowerElectronicsMarineUnit.kind-cardinality , er:PowerElectronicsUnit.longPF-cardinality , er:PowerElectronicsUnit.ScheduleResource-cardinality , ido:IdentifiedObject.description-datatype , er:PowerElectronicsUnit.maxEconomicP-datatype , er:PowerElectronicsUnit.minEconomicP-cardinality , er:PowerElectronicsUnit.shortPF-datatype , er:PowerElectronicsUnit.PrimaryEnergySource-cardinality ; + sh:targetClass nc:PowerElectronicsMarineUnit . + +er:GeneratingUnit.ScheduleResource-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:ScheduleResource ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:ScheduleResource" ; + sh:name "GeneratingUnit.ScheduleResource-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 6 ; + sh:path ( nc:GeneratingUnit.ScheduleResource rdf:type ) ; + sh:severity sh:Violation . + +er:ImpedanceControlFunction + rdf:type sh:NodeShape ; + sh:property er:ControlFunctionBlock.maxAllowedTargetValue-cardinality , er:ControlFunctionBlock.targetDeadband-cardinality , er:ControlFunctionBlock.isDiscrete-cardinality , er:ControlFunctionBlock.minAllowedTargetValue-datatype , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.description-datatype , er:FunctionBlock.priority-datatype , ido:IdentifiedObject.name-datatype , er:ControlFunctionBlock.maxAllowedTargetValue-datatype , er:ControlFunctionBlock.minAllowedTargetValue-cardinality , ido:IdentifiedObject.energyIdentCodeEic-cardinality , er:FunctionBlock.priority-cardinality , er:ControlFunctionBlock.targetDeadband-datatype , ido:IdentifiedObject.mRID-cardinality , er:FunctionBlock.AutomationFunction-cardinality , er:ControlFunctionBlock.isDiscrete-datatype , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.description-cardinality ; + sh:targetClass nc:ImpedanceControlFunction . + +er:OperationalLimitSet.PowerTransferCorridor-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "OperationalLimitSet.PowerTransferCorridor-cardinality" ; + sh:order 0 ; + sh:path nc:OperationalLimitSet.PowerTransferCorridor ; + sh:severity sh:Violation . + +er:AreaDispatchableUnit.PowerElectronicsUnit-valueTypeNodeShape + rdf:type sh:NodeShape ; + sh:property er:AreaDispatchableUnit.PowerElectronicsUnit-valueType ; + sh:targetClass nc:AreaDispatchableUnit . + +er:ClosedDistributionSystemOperator + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.energyIdentCodeEic-datatype , er:OrganisationRole.globalLocationNumber-datatype , er:OrganisationRole.globalLocationNumber-cardinality , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.description-cardinality , er:OrganisationRole.Organisation-cardinality , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.description-datatype , er:OrganisationRole.Organisation-valueType ; + sh:targetClass nc:ClosedDistributionSystemOperator . + +er:EnergyComponent.GeneratingUnit-valueTypeNodeShape + rdf:type sh:NodeShape ; + sh:property er:EnergyComponent.GeneratingUnit-valueType ; + sh:targetClass nc:ProportionalEnergyComponent , nc:EnergyBlockComponent . + +er:DCConverterUnit.Substation-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( cim:Substation ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: cim:Substation" ; + sh:name "DCConverterUnit.Substation-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path ( cim:DCConverterUnit.Substation rdf:type ) ; + sh:severity sh:Violation . + +er:DCLineSegment rdf:type sh:NodeShape ; + sh:property er:Equipment.Circuit-cardinality , er:Equipment.AggregatedEquipment-cardinality , er:DCConductingEquipment.ratedCurrent-cardinality , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.energyIdentCodeEic-cardinality , er:DCConductingEquipment.ratedCurrent-datatype , ido:IdentifiedObject.description-datatype ; + sh:targetClass cim:DCLineSegment . + +er:EnergyComponent.PowerElectronicsUnit-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "EnergyComponent.PowerElectronicsUnit-cardinality" ; + sh:order 1 ; + sh:path nc:EnergyComponent.PowerElectronicsUnit ; + sh:severity sh:Violation . + +er:ScheduleResource.ResourceOf-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "ScheduleResource.ResourceOf-cardinality" ; + sh:order 2 ; + sh:path nc:ScheduleResource.ResourceOf ; + sh:severity sh:Violation . + +er:EnergyComponent.HydroPump-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "EnergyComponent.HydroPump-cardinality" ; + sh:order 2 ; + sh:path nc:EnergyComponent.HydroPump ; + sh:severity sh:Violation . + +er:AreaDispatchableUnit.GeneratingUnit-valueTypeNodeShape + rdf:type sh:NodeShape ; + sh:property er:AreaDispatchableUnit.GeneratingUnit-valueType ; + sh:targetClass nc:AreaDispatchableUnit . + +er:GateInputPin.negate-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "GateInputPin.negate-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:GateInputPin.negate ; + sh:severity sh:Violation . + +ido:IdentifiedObject.description-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ido:DatatypesGroupIO ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "IdentifiedObject.description-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.description ; + sh:severity sh:Violation . + +er:FunctionInputVariable.Function-valueTypeNodeShape + rdf:type sh:NodeShape ; + sh:property er:FunctionInputVariable.Function-valueType ; + sh:targetClass nc:GateInputPin , nc:PinTerminal . + +er:DCPole.DCLine-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "DCPole.DCLine-cardinality" ; + sh:order 2 ; + sh:path nc:DCPole.DCLine ; + sh:severity sh:Violation . + +er:LossCurve.FACTSEquipment-valueTypeNodeShape + rdf:type sh:NodeShape ; + sh:property er:LossCurve.FACTSEquipment-valueType ; + sh:targetClass nc:LossCurve . + +er:PowerElectronicsUnit + rdf:type sh:NodeShape ; + sh:property er:PowerElectronicsUnit.minEconomicP-datatype , er:PowerElectronicsUnit.shortPF-datatype , ido:IdentifiedObject.name-datatype , er:PowerElectronicsUnit.maxEconomicP-datatype , er:Equipment.AggregatedEquipment-cardinality , er:PowerElectronicsUnit.minEconomicP-cardinality , er:PowerElectronicsUnit.PrimaryEnergySource-cardinality , er:PowerElectronicsUnit.longPF-datatype , er:PowerElectronicsUnit.ScheduleResource-valueType , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.name-cardinality , er:Equipment.Circuit-cardinality , er:PowerElectronicsUnit.longPF-cardinality , er:PowerElectronicsUnit.maxEconomicP-cardinality , er:PowerElectronicsUnit.shortPF-cardinality , ido:IdentifiedObject.energyIdentCodeEic-cardinality , er:PowerElectronicsUnit.ScheduleResource-cardinality ; + sh:targetClass cim:PowerElectronicsUnit . + +er:PinTerminal rdf:type sh:NodeShape ; + sh:property er:GateInputPin.logicKind-datatype , er:GateInputPin.thresholdValue-cardinality , er:GateInputPin.absoluteValue-datatype , er:PinTerminal.kind-datatype , ido:IdentifiedObject.mRID-datatype , er:GateInputPin.duration-cardinality , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.name-cardinality , er:GateInputPin.duration-datatype , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.name-datatype , er:GateInputPin.logicKind-cardinality , ido:IdentifiedObject.description-cardinality , er:PinTerminal.kind-cardinality , er:GateInputPin.thresholdPercentage-datatype , er:GateInputPin.negate-cardinality , ido:IdentifiedObject.mRID-cardinality , er:FunctionInputVariable.Function-cardinality , er:GateInputPin.thresholdValue-datatype , ido:IdentifiedObject.description-datatype , er:GateInputPin.negate-datatype , er:GateInputPin.thresholdPercentage-cardinality , er:GateInputPin.absoluteValue-cardinality ; + sh:targetClass nc:PinTerminal . + +er:OperationalLimit.OperationalLimitSet-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( cim:OperationalLimitSet ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: cim:OperationalLimitSet" ; + sh:name "OperationalLimit.OperationalLimitSet-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 3 ; + sh:path ( cim:OperationalLimit.OperationalLimitSet rdf:type ) ; + sh:severity sh:Violation . + +er:CurveData.y2value-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "CurveData.y2value-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path cim:CurveData.y2value ; + sh:severity sh:Violation . + +er:PowerElectronicsUnit.PrimaryEnergySource-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerElectronicsUnit.PrimaryEnergySource-cardinality" ; + sh:order 3 ; + sh:path nc:PowerElectronicsUnit.PrimaryEnergySource ; + sh:severity sh:Violation . + +er:PowerElectronicsUnit.maxEconomicP-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerElectronicsUnit.maxEconomicP-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 7 ; + sh:path nc:PowerElectronicsUnit.maxEconomicP ; + sh:severity sh:Violation . + +er:EnergyConsumer rdf:type sh:NodeShape ; + sh:property er:EnergyConsumer.maxEconomicP-datatype , er:EnergyConsumer.shortPF-datatype , ido:IdentifiedObject.name-datatype , er:EnergyConsumer.longPF-datatype , er:EnergyConsumer.minEconomicP-datatype , er:EnergyConsumer.minEconomicP-cardinality , er:EnergyConsumer.maxEconomicP-cardinality , er:EnergyConsumer.longPF-cardinality , ido:IdentifiedObject.description-cardinality , er:Equipment.Circuit-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.name-cardinality , er:Equipment.AggregatedEquipment-cardinality , ido:IdentifiedObject.energyIdentCodeEic-cardinality , er:EnergyConsumer.shortPF-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype ; + sh:targetClass cim:EnergyConsumer . + +er:RotatingMachineController + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.description-datatype , er:AutomationFunction.PartOf-cardinality , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.name-datatype , er:AutomationFunction.type-cardinality , ido:IdentifiedObject.energyIdentCodeEic-cardinality , er:AutomationFunction.type-datatype , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.description-cardinality ; + sh:targetClass nc:RotatingMachineController . + +er:Reservoir rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.description-cardinality ; + sh:targetClass cim:Reservoir . + +er:GateInputPin.logicKind-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:in ( nc:LogicalOperatorsKind.notEqual nc:LogicalOperatorsKind.lessThan nc:LogicalOperatorsKind.lessThanOrEquals nc:LogicalOperatorsKind.greaterThan nc:LogicalOperatorsKind.equals nc:LogicalOperatorsKind.greaterThanOrEquals ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "GateInputPin.logicKind-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path nc:GateInputPin.logicKind ; + sh:severity sh:Violation . + +er:OrganisationRole.globalLocationNumber-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "OrganisationRole.globalLocationNumber-cardinality" ; + sh:order 2 ; + sh:path nc:OrganisationRole.globalLocationNumber ; + sh:severity sh:Violation . + +er:TieFlow rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.name-cardinality , er:TieFlow.TieCorridor-cardinality ; + sh:targetClass cim:TieFlow . + +er:EnergyGroup.longPF-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "EnergyGroup.longPF-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:EnergyGroup.longPF ; + sh:severity sh:Violation . + +er:LoadFrequencyControlOperator + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.description-cardinality , er:OrganisationRole.Organisation-cardinality , er:OrganisationRole.globalLocationNumber-datatype , ido:IdentifiedObject.energyIdentCodeEic-datatype , er:OrganisationRole.Organisation-valueType , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.energyIdentCodeEic-cardinality , er:OrganisationRole.globalLocationNumber-cardinality , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.description-datatype ; + sh:targetClass nc:LoadFrequencyControlOperator . + +er:SSSCController.maxVoltageInjection-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "SSSCController.maxVoltageInjection-cardinality" ; + sh:order 4 ; + sh:path nc:SSSCController.maxVoltageInjection ; + sh:severity sh:Violation . + +er:HydroPump.maxEconomicP-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "HydroPump.maxEconomicP-cardinality" ; + sh:order 5 ; + sh:path nc:HydroPump.maxEconomicP ; + sh:severity sh:Violation . + +er:PhaseControlFunction + rdf:type sh:NodeShape ; + sh:property er:ControlFunctionBlock.targetDeadband-datatype , ido:IdentifiedObject.mRID-datatype , er:ControlFunctionBlock.isDiscrete-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype , er:ControlFunctionBlock.maxAllowedTargetValue-cardinality , er:ControlFunctionBlock.minAllowedTargetValue-cardinality , ido:IdentifiedObject.name-cardinality , er:FunctionBlock.AutomationFunction-cardinality , ido:IdentifiedObject.mRID-cardinality , er:FunctionBlock.priority-cardinality , er:FunctionBlock.priority-datatype , er:ControlFunctionBlock.minAllowedTargetValue-datatype , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.description-cardinality , er:ControlFunctionBlock.targetDeadband-cardinality , er:ControlFunctionBlock.isDiscrete-datatype , ido:IdentifiedObject.description-datatype , er:ControlFunctionBlock.maxAllowedTargetValue-datatype , ido:IdentifiedObject.name-datatype ; + sh:targetClass nc:PhaseControlFunction . + +er:PowerInfeedTerminal.ACDCTerminal-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "PowerInfeedTerminal.ACDCTerminal-cardinality" ; + sh:order 0 ; + sh:path nc:PowerInfeedTerminal.ACDCTerminal ; + sh:severity sh:Violation . + +er:DCPole.DCTieCorridor-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "DCPole.DCTieCorridor-cardinality" ; + sh:order 1 ; + sh:path nc:DCPole.DCTieCorridor ; + sh:severity sh:Violation . + +er:UnifiedPowerFlowController + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.mRID-datatype , er:AutomationFunction.type-datatype , er:AutomationFunction.type-cardinality , ido:IdentifiedObject.name-datatype , er:AutomationFunction.PartOf-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.name-cardinality ; + sh:targetClass nc:UnifiedPowerFlowController . + +er:EnergyBlockOrder.sequence-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "EnergyBlockOrder.sequence-cardinality" ; + sh:order 1 ; + sh:path nc:EnergyBlockOrder.sequence ; + sh:severity sh:Violation . + +er:SSSCSimulationSettings.deltaReactance-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "SSSCSimulationSettings.deltaReactance-cardinality" ; + sh:order 2 ; + sh:path nc:SSSCSimulationSettings.deltaReactance ; + sh:severity sh:Violation . + +er:PowerElectronicsMarineUnit.kind-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "PowerElectronicsMarineUnit.kind-cardinality" ; + sh:order 0 ; + sh:path nc:PowerElectronicsMarineUnit.kind ; + sh:severity sh:Violation . + +er:CurrentDroopControlFunction.droopCapacitive-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "CurrentDroopControlFunction.droopCapacitive-cardinality" ; + sh:order 3 ; + sh:path nc:CurrentDroopControlFunction.droopCapacitive ; + sh:severity sh:Violation . + +er:GateInputPin.absoluteValue-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "GateInputPin.absoluteValue-cardinality" ; + sh:order 6 ; + sh:path nc:GateInputPin.absoluteValue ; + sh:severity sh:Violation . + +er:VoltageAngleLimit.isFlowToRefTerminal-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "VoltageAngleLimit.isFlowToRefTerminal-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:VoltageAngleLimit.isFlowToRefTerminal ; + sh:severity sh:Violation . + +er:AreaDispatchableUnit.EnergyConsumer-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AreaDispatchableUnit.EnergyConsumer-cardinality" ; + sh:order 0 ; + sh:path nc:AreaDispatchableUnit.EnergyConsumer ; + sh:severity sh:Violation . + +ido:IdentifiedObject.mRID-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ido:CardinalityIO ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "IdentifiedObject.mRID-cardinality" ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.mRID ; + sh:severity sh:Violation . + +er:ControlFunctionBlock.minAllowedTargetValue-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "ControlFunctionBlock.minAllowedTargetValue-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:ControlFunctionBlock.minAllowedTargetValue ; + sh:severity sh:Violation . + +er:ThyristorControlledSeriesCompensator.flexibleCapacitiveImpedance-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "ThyristorControlledSeriesCompensator.flexibleCapacitiveImpedance-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path nc:ThyristorControlledSeriesCompensator.flexibleCapacitiveImpedance ; + sh:severity sh:Violation . + +er:CurrentControlFunction + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.mRID-datatype , er:ControlFunctionBlock.isDiscrete-cardinality , er:FunctionBlock.priority-datatype , ido:IdentifiedObject.name-cardinality , er:ControlFunctionBlock.maxAllowedTargetValue-cardinality , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype , er:ControlFunctionBlock.maxAllowedTargetValue-datatype , er:ControlFunctionBlock.minAllowedTargetValue-cardinality , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.description-datatype , er:ControlFunctionBlock.targetDeadband-datatype , er:FunctionBlock.AutomationFunction-cardinality , er:ControlFunctionBlock.minAllowedTargetValue-datatype , er:FunctionBlock.priority-cardinality , er:ControlFunctionBlock.isDiscrete-datatype , er:ControlFunctionBlock.targetDeadband-cardinality ; + sh:targetClass nc:CurrentControlFunction . + +er:ReactiveCapabilityCurve.EquivalentInjection2-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "ReactiveCapabilityCurve.EquivalentInjection2-cardinality" ; + sh:order 4 ; + sh:path cim:ReactiveCapabilityCurve.EquivalentInjection2 ; + sh:severity sh:Violation . + +er:CurrentDroopOverride.droopInductive-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "CurrentDroopOverride.droopInductive-cardinality" ; + sh:order 2 ; + sh:path nc:CurrentDroopOverride.droopInductive ; + sh:severity sh:Violation . + +ido:DatatypesGroupIO rdf:type sh:PropertyGroup ; + rdfs:label "DatatypesIO" ; + sh:order 1 . + +er:RegulatingCondEq.EquipmentController-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "RegulatingCondEq.EquipmentController-cardinality" ; + sh:order 4 ; + sh:path nc:RegulatingCondEq.EquipmentController ; + sh:severity sh:Violation . + +er:FlexibleEnergyUnit.uncontrollable-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "FlexibleEnergyUnit.uncontrollable-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:FlexibleEnergyUnit.uncontrollable ; + sh:severity sh:Violation . + +er:SchedulingArea.isMeteringGridArea-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "SchedulingArea.isMeteringGridArea-cardinality" ; + sh:order 12 ; + sh:path nc:SchedulingArea.isMeteringGridArea ; + sh:severity sh:Violation . + +er:Line.SchedulingArea-valueTypeNodeShape + rdf:type sh:NodeShape ; + sh:property er:Line.SchedulingArea-valueType ; + sh:targetClass cim:Line . + +er:SSSCSimulationSettings.deltaReactance-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "SSSCSimulationSettings.deltaReactance-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path nc:SSSCSimulationSettings.deltaReactance ; + sh:severity sh:Violation . + +er:OperationalLimitType.TemporaryDurationOverloadLimitCurve-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "OperationalLimitType.TemporaryDurationOverloadLimitCurve-cardinality" ; + sh:order 3 ; + sh:path nc:OperationalLimitType.TemporaryDurationOverloadLimitCurve ; + sh:severity sh:Violation . + +er:SSSCSimulationSettings.useDIDVestimation-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "SSSCSimulationSettings.useDIDVestimation-cardinality" ; + sh:order 0 ; + sh:path nc:SSSCSimulationSettings.useDIDVestimation ; + sh:severity sh:Violation . + +er:DCBreaker rdf:type sh:NodeShape ; + sh:property er:Equipment.Circuit-cardinality , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.description-cardinality , er:DCConductingEquipment.ratedCurrent-cardinality , er:DCConductingEquipment.ratedCurrent-datatype , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.description-datatype , er:Equipment.AggregatedEquipment-cardinality , ido:IdentifiedObject.name-cardinality ; + sh:targetClass cim:DCBreaker . + +er:GeneratingUnit.shutdownTime-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "GeneratingUnit.shutdownTime-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 5 ; + sh:path nc:GeneratingUnit.shutdownTime ; + sh:severity sh:Violation . + +er:OperationalLimitSet + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.energyIdentCodeEic-cardinality , er:OperationalLimitSet.Terminal-cardinality , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.name-datatype , er:OperationalLimitSet.PowerTransferCorridor-cardinality ; + sh:targetClass cim:OperationalLimitSet . + +er:GeneratingUnit.lowerRampRate-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "GeneratingUnit.lowerRampRate-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 15 ; + sh:path cim:GeneratingUnit.lowerRampRate ; + sh:severity sh:Violation . + +er:EnergyComponent.EnergyConsumer-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( cim:EnergyConsumer ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: cim:EnergyConsumer" ; + sh:name "EnergyComponent.EnergyConsumer-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 3 ; + sh:path ( nc:EnergyComponent.EnergyConsumer rdf:type ) ; + sh:severity sh:Violation . + +er:CurrentDroopOverride.droopInductive-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "CurrentDroopOverride.droopInductive-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path nc:CurrentDroopOverride.droopInductive ; + sh:severity sh:Violation . + +er:LoadFrequencyControlArea.includeFrequencyBias-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "LoadFrequencyControlArea.includeFrequencyBias-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path nc:LoadFrequencyControlArea.includeFrequencyBias ; + sh:severity sh:Violation . + +er:GeneratingUnit.coolDownTime-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "GeneratingUnit.coolDownTime-cardinality" ; + sh:order 1 ; + sh:path nc:GeneratingUnit.coolDownTime ; + sh:severity sh:Violation . + +er:ControlArea.SystemOperator-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "ControlArea.SystemOperator-cardinality" ; + sh:order 1 ; + sh:path nc:ControlArea.SystemOperator ; + sh:severity sh:Violation . + +er:HydroPump.shortPF-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "HydroPump.shortPF-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path nc:HydroPump.shortPF ; + sh:severity sh:Violation . + +er:AreaDispatchableUnit.SchedulingArea-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AreaDispatchableUnit.SchedulingArea-cardinality" ; + sh:order 1 ; + sh:path nc:AreaDispatchableUnit.SchedulingArea ; + sh:severity sh:Violation . + +er:GeneratingUnit.startupRampRate-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "GeneratingUnit.startupRampRate-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 11 ; + sh:path nc:GeneratingUnit.startupRampRate ; + sh:severity sh:Violation . + +er:TieCorridor.BiddingZoneBorder-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group er:AssociationsGroup ; + sh:in ( nc:BiddingZoneBorder ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:BiddingZoneBorder" ; + sh:name "TieCorridor.BiddingZoneBorder-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 12 ; + sh:path ( nc:TieCorridor.BiddingZoneBorder rdf:type ) ; + sh:severity sh:Violation . + +er:Curve.xUnit-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "Curve.xUnit-cardinality" ; + sh:order 4 ; + sh:path cim:Curve.xUnit ; + sh:severity sh:Violation . + +er:PowerInfeedTerminal.mRID-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerInfeedTerminal.mRID-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path nc:PowerInfeedTerminal.mRID ; + sh:severity sh:Violation . + +er:PowerElectricalChemicalUnit.kind-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:in ( nc:PowerElectricalChemicalUnitKind.electrolyticCell nc:PowerElectricalChemicalUnitKind.other nc:PowerElectricalChemicalUnitKind.fuelCell ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "PowerElectricalChemicalUnit.kind-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path nc:PowerElectricalChemicalUnit.kind ; + sh:severity sh:Violation . + +er:SSSCController.maxOperatingCurrentLimit-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group er:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "SSSCController.maxOperatingCurrentLimit-cardinality" ; + sh:order 2 ; + sh:path nc:SSSCController.maxOperatingCurrentLimit ; + sh:severity sh:Violation . + +er:CurrentDroopControlFunction.offsetInductive-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "CurrentDroopControlFunction.offsetInductive-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:CurrentDroopControlFunction.offsetInductive ; + sh:severity sh:Violation . + +er:DCCurrentControlFunction.droop-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "DCCurrentControlFunction.droop-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:DCCurrentControlFunction.droop ; + sh:severity sh:Violation . + +er:CurrentDroopControlFunction.offsetCapacitive-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group er:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "CurrentDroopControlFunction.offsetCapacitive-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:CurrentDroopControlFunction.offsetCapacitive ; + sh:severity sh:Violation . diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/GridDisturbanceProfile_v2_2_SHACL.ttl b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/GridDisturbanceProfile_v2_2_SHACL.ttl new file mode 100644 index 0000000000..d4acee3ac6 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/GridDisturbanceProfile_v2_2_SHACL.ttl @@ -0,0 +1,1201 @@ +@base . +@prefix adms: . +@prefix cim: . +@prefix cims: . +@prefix dash: . +@prefix dc: . +@prefix dcat: . +@prefix dcterms: . +@prefix dm: . +@prefix eu: . +@prefix eumd: . +@prefix euvoc: . +@prefix gd: . +@prefix ido: . +@prefix md: . +@prefix nc: . +@prefix owl: . +@prefix prof: . +@prefix profcim: . +@prefix prov: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix skos: . +@prefix xsd: . + +gd:Fault.sequenceNumber-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:integer ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group gd:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Fault.sequenceNumber-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 7 ; + sh:path nc:Fault.sequenceNumber ; + sh:severity sh:Violation . + +gd:Fault.duration-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group gd:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "Fault.duration-cardinality" ; + sh:order 5 ; + sh:path nc:Fault.duration ; + sh:severity sh:Violation . + +gd:UnplannedOutage.autoReclosingKind-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group gd:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "UnplannedOutage.autoReclosingKind-cardinality" ; + sh:order 2 ; + sh:path nc:UnplannedOutage.autoReclosingKind ; + sh:severity sh:Violation . + +gd:Interruption.InterruptedDeliveryEquipment-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group gd:AssociationsGroup ; + sh:in ( cim:Equipment ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: cim:Equipment" ; + sh:name "Interruption.InterruptedDeliveryEquipment-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path ( nc:Interruption.InterruptedDeliveryEquipment rdf:type ) ; + sh:severity sh:Violation . + +gd:PositionPoint.yPosition-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group gd:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PositionPoint.yPosition-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path cim:PositionPoint.yPosition ; + sh:severity sh:Violation . + +gd:FaultOutage.Outage-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group gd:AssociationsGroup ; + sh:in ( cim:UnplannedOutage ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: cim:UnplannedOutage" ; + sh:name "FaultOutage.Outage-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path ( nc:FaultOutage.Outage rdf:type ) ; + sh:severity sh:Violation . + +gd:CoordinateSystem.crsUrn-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group gd:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "CoordinateSystem.crsUrn-cardinality" ; + sh:order 1 ; + sh:path cim:CoordinateSystem.crsUrn ; + sh:severity sh:Violation . + +gd:Fault.FaultyEquipment-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group gd:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "Fault.FaultyEquipment-cardinality" ; + sh:order 14 ; + sh:path cim:Fault.FaultyEquipment ; + sh:severity sh:Violation . + +gd:FaultCauseType rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.description-cardinality ; + sh:targetClass cim:FaultCauseType . + +gd:Fault.isPermanent-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group gd:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Fault.isPermanent-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 8 ; + sh:path nc:Fault.isPermanent ; + sh:severity sh:Violation . + +gd:Equipment.UnplannedOutage-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group gd:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Equipment.UnplannedOutage-cardinality" ; + sh:order 3 ; + sh:path cim:Equipment.UnplannedOutage ; + sh:severity sh:Violation . + +gd:Interruption.Outage-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group gd:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Interruption.Outage-cardinality" ; + sh:order 5 ; + sh:path nc:Interruption.Outage ; + sh:severity sh:Violation . + +gd:FaultOutage.mRID-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group gd:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "FaultOutage.mRID-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path nc:FaultOutage.mRID ; + sh:severity sh:Violation . + +gd:FaultOutage.isMainFault-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group gd:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "FaultOutage.isMainFault-cardinality" ; + sh:order 1 ; + sh:path nc:FaultOutage.isMainFault ; + sh:severity sh:Violation . + +gd:DatatypesGroup rdf:type sh:PropertyGroup ; + rdfs:label "Datatypes" ; + sh:order 1 . + +ido:CardinalityGroup rdf:type sh:PropertyGroup ; + rdfs:label "CardinalityIO" ; + sh:order 0 . + +gd:UnplannedOutage.tripKind-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group gd:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "UnplannedOutage.tripKind-cardinality" ; + sh:order 6 ; + sh:path nc:UnplannedOutage.tripKind ; + sh:severity sh:Violation . + +gd:Fault.faultKind-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group gd:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "Fault.faultKind-cardinality" ; + sh:order 16 ; + sh:path nc:Fault.faultKind ; + sh:severity sh:Violation . + +ido:IdentifiedObject.name-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ido:CardinalityIO ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "IdentifiedObject.name-cardinality" ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.name ; + sh:severity sh:Violation . + +gd:PositionPoint.xPosition-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group gd:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PositionPoint.xPosition-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path cim:PositionPoint.xPosition ; + sh:severity sh:Violation . + +gd:Interruption.energyNotSupplied-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group gd:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Interruption.energyNotSupplied-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path nc:Interruption.energyNotSupplied ; + sh:severity sh:Violation . + +gd:Interruption.startDateTime-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group gd:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "Interruption.startDateTime-cardinality" ; + sh:order 0 ; + sh:path nc:Interruption.startDateTime ; + sh:severity sh:Violation . + +gd:UnplannedOutage.reportedStartTime-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:dateTime ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group gd:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "UnplannedOutage.reportedStartTime-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 5 ; + sh:path cim:UnplannedOutage.reportedStartTime ; + sh:severity sh:Violation . + +gd:FaultOutage.Fault-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group gd:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "FaultOutage.Fault-cardinality" ; + sh:order 3 ; + sh:path nc:FaultOutage.Fault ; + sh:severity sh:Violation . + +gd:UnplannedOutage.startDateTime-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group gd:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "UnplannedOutage.startDateTime-cardinality" ; + sh:order 1 ; + sh:path nc:UnplannedOutage.startDateTime ; + sh:severity sh:Violation . + +gd:FaultOutage rdf:type sh:NodeShape ; + sh:property gd:FaultOutage.Outage-valueType , gd:FaultOutage.Fault-valueType , gd:FaultOutage.mRID-cardinality , gd:FaultOutage.Outage-cardinality , gd:FaultOutage.mRID-datatype , gd:FaultOutage.isMainFault-cardinality , gd:FaultOutage.isMainFault-datatype , gd:FaultOutage.Fault-cardinality ; + sh:targetClass nc:FaultOutage . + +gd:Interruption rdf:type sh:NodeShape ; + sh:property gd:Interruption.startDateTime-datatype , gd:Interruption.duration-datatype , ido:IdentifiedObject.name-cardinality , gd:Interruption.interruptedPower-datatype , gd:Interruption.energyNotSupplied-datatype , gd:Interruption.duration-cardinality , gd:Interruption.InterruptedDeliveryEquipment-cardinality , ido:IdentifiedObject.mRID-datatype , gd:Interruption.startDateTime-cardinality , gd:Interruption.interruptedPower-cardinality , ido:IdentifiedObject.mRID-cardinality , gd:Interruption.Outage-valueType , gd:Interruption.energyNotSupplied-cardinality , ido:IdentifiedObject.description-cardinality , gd:Interruption.Outage-cardinality , ido:IdentifiedObject.description-datatype , gd:Interruption.energyNotDelivered-cardinality , gd:Interruption.InterruptedDeliveryEquipment-valueType , ido:IdentifiedObject.name-datatype , gd:Interruption.energyNotDelivered-datatype ; + sh:targetClass nc:Interruption . + +gd:Fault.BaseVoltage-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group gd:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Fault.BaseVoltage-cardinality" ; + sh:order 6 ; + sh:path cim:Fault.BaseVoltage ; + sh:severity sh:Violation . + +gd:PositionPoint.yPosition-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group gd:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "PositionPoint.yPosition-cardinality" ; + sh:order 0 ; + sh:path cim:PositionPoint.yPosition ; + sh:severity sh:Violation . + +gd:PositionPoint.xPosition-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group gd:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "PositionPoint.xPosition-cardinality" ; + sh:order 3 ; + sh:path cim:PositionPoint.xPosition ; + sh:severity sh:Violation . + +gd:UnplannedOutage.duration-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group gd:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "UnplannedOutage.duration-cardinality" ; + sh:order 4 ; + sh:path nc:UnplannedOutage.duration ; + sh:severity sh:Violation . + +gd:Fault.repairTime-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group gd:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Fault.repairTime-cardinality" ; + sh:order 4 ; + sh:path nc:Fault.repairTime ; + sh:severity sh:Violation . + +ido:IdentifiedObject.mRID-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ido:CardinalityIO ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "IdentifiedObject.mRID-cardinality" ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.mRID ; + sh:severity sh:Violation . + +gd:UnplannedOutage.systemUnitKind-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group gd:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "UnplannedOutage.systemUnitKind-cardinality" ; + sh:order 0 ; + sh:path nc:UnplannedOutage.systemUnitKind ; + sh:severity sh:Violation . + +gd:Interruption.InterruptedDeliveryEquipment-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group gd:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "Interruption.InterruptedDeliveryEquipment-cardinality" ; + sh:order 2 ; + sh:path nc:Interruption.InterruptedDeliveryEquipment ; + sh:severity sh:Violation . + +gd:Fault.kind-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group gd:DatatypesGroup ; + sh:in ( cim:PhaseConnectedFaultKind.lineToLineToGround cim:PhaseConnectedFaultKind.lineToGround cim:PhaseConnectedFaultKind.lineToLine cim:PhaseConnectedFaultKind.lineOpen ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "Fault.kind-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 9 ; + sh:path cim:Fault.kind ; + sh:severity sh:Violation . + +gd:Fault.SystemOperator-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group gd:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Fault.SystemOperator-cardinality" ; + sh:order 1 ; + sh:path nc:Fault.SystemOperator ; + sh:severity sh:Violation . + +gd:PositionPoint.Location-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group gd:AssociationsGroup ; + sh:in ( cim:Location ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: cim:Location" ; + sh:name "PositionPoint.Location-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path ( cim:PositionPoint.Location rdf:type ) ; + sh:severity sh:Violation . + +gd:Interruption.duration-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:duration ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group gd:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Interruption.duration-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path nc:Interruption.duration ; + sh:severity sh:Violation . + +gd:FaultOutage.Outage-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group gd:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "FaultOutage.Outage-cardinality" ; + sh:order 0 ; + sh:path nc:FaultOutage.Outage ; + sh:severity sh:Violation . + +gd:Fault.isDirectlyEarthed-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group gd:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Fault.isDirectlyEarthed-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 15 ; + sh:path nc:Fault.isDirectlyEarthed ; + sh:severity sh:Violation . + +ido:IdentifiedObject.description-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ido:CardinalityIO ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "IdentifiedObject.description-cardinality" ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.description ; + sh:severity sh:Violation . + +gd:Location.CoordinateSystem-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group gd:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "Location.CoordinateSystem-cardinality" ; + sh:order 1 ; + sh:path cim:Location.CoordinateSystem ; + sh:severity sh:Violation . + +gd:CoordinateSystem rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.name-datatype , gd:CoordinateSystem.crsUrn-cardinality , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.name-cardinality , gd:CoordinateSystem.crsUrn-datatype , ido:IdentifiedObject.mRID-datatype ; + sh:targetClass cim:CoordinateSystem . + +gd:FaultCause.FaultCauseType-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group gd:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "FaultCause.FaultCauseType-cardinality" ; + sh:order 1 ; + sh:path nc:FaultCause.FaultCauseType ; + sh:severity sh:Violation . + +gd:FaultCause.Fault-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group gd:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "FaultCause.Fault-cardinality" ; + sh:order 3 ; + sh:path nc:FaultCause.Fault ; + sh:severity sh:Violation . + +gd:FaultOutage.mRID-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group gd:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "FaultOutage.mRID-cardinality" ; + sh:order 2 ; + sh:path nc:FaultOutage.mRID ; + sh:severity sh:Violation . + +gd:Fault.occurredDateTime-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group gd:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "Fault.occurredDateTime-cardinality" ; + sh:order 17 ; + sh:path cim:Fault.occurredDateTime ; + sh:severity sh:Violation . + +gd:AssociationsGroup rdf:type sh:PropertyGroup ; + rdfs:label "Associations" ; + sh:order 2 . + +gd:Interruption.energyNotDelivered-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group gd:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Interruption.energyNotDelivered-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:Interruption.energyNotDelivered ; + sh:severity sh:Violation . + +gd:Interruption.energyNotDelivered-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group gd:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Interruption.energyNotDelivered-cardinality" ; + sh:order 1 ; + sh:path nc:Interruption.energyNotDelivered ; + sh:severity sh:Violation . + +gd:FaultCause.mRID-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group gd:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "FaultCause.mRID-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:FaultCause.mRID ; + sh:severity sh:Violation . + +gd:PositionPoint rdf:type sh:NodeShape ; + sh:property gd:PositionPoint.Location-valueType , gd:PositionPoint.Location-cardinality , gd:PositionPoint.zPosition-datatype , gd:PositionPoint.xPosition-datatype , gd:PositionPoint.xPosition-cardinality , gd:PositionPoint.yPosition-cardinality , gd:PositionPoint.zPosition-cardinality , gd:PositionPoint.yPosition-datatype ; + sh:targetClass cim:PositionPoint . + +gd:Fault rdf:type sh:NodeShape ; + sh:property gd:Fault.isPermanent-cardinality , gd:Fault.BaseVoltage-cardinality , gd:Fault.FaultyEquipment-valueType , gd:Fault.Location-cardinality , gd:Fault.category-datatype , gd:Fault.GridDisturbance-cardinality , ido:IdentifiedObject.description-datatype , gd:Fault.GridDisturbance-valueType , gd:Fault.repairTime-cardinality , gd:Fault.duration-cardinality , gd:Fault.kind-datatype , gd:Fault.sequenceNumber-cardinality , gd:Fault.occurredDateTime-datatype , gd:Fault.sequenceNumber-datatype , gd:Fault.Location-valueType , ido:IdentifiedObject.description-cardinality , gd:Fault.phases-datatype , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.name-datatype , gd:Fault.category-cardinality , ido:IdentifiedObject.mRID-datatype , gd:Fault.faultKind-datatype , gd:Fault.faultKind-cardinality , gd:Fault.occurredDateTime-cardinality , gd:Fault.SystemOperator-cardinality , gd:Fault.isIntermittent-datatype , gd:Fault.duration-datatype , gd:Fault.FaultyEquipment-cardinality , gd:Fault.kind-cardinality , ido:IdentifiedObject.name-cardinality , gd:Fault.repairTime-datatype , gd:Fault.isDirectlyEarthed-cardinality , gd:Fault.isPermanent-datatype , gd:Fault.isIntermittent-cardinality , gd:Fault.phases-cardinality , gd:Fault.isDirectlyEarthed-datatype ; + sh:targetClass cim:Fault . + +gd:Interruption.interruptedPower-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group gd:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Interruption.interruptedPower-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 6 ; + sh:path nc:Interruption.interruptedPower ; + sh:severity sh:Violation . + +gd:Fault.GridDisturbance-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group gd:AssociationsGroup ; + sh:in ( nc:GridDisturbance ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:GridDisturbance" ; + sh:name "Fault.GridDisturbance-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 10 ; + sh:path ( nc:Fault.GridDisturbance rdf:type ) ; + sh:severity sh:Violation . + +gd:FaultCause rdf:type sh:NodeShape ; + sh:property gd:FaultCause.Fault-cardinality , gd:FaultCause.certaintyLevel-cardinality , gd:FaultCause.FaultCauseType-valueType , gd:FaultCause.mRID-cardinality , gd:FaultCause.certaintyLevel-datatype , gd:FaultCause.Fault-valueType , gd:FaultCause.FaultCauseType-cardinality , gd:FaultCause.mRID-datatype ; + sh:targetClass nc:FaultCause . + +ido:IdentifiedObject.name-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ido:DatatypesGroupIO ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "IdentifiedObject.name-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.name ; + sh:severity sh:Violation . + +gd:Equipment rdf:type sh:NodeShape ; + sh:property gd:Equipment.UnplannedOutage-valueType , gd:Equipment.UnplannedOutage-cardinality ; + sh:targetClass cim:Equipment . + +gd:UnplannedOutage rdf:type sh:NodeShape ; + sh:property gd:Outage.Equipments-cardinality , gd:UnplannedOutage.autoReclosingKind-datatype , gd:UnplannedOutage.reportedStartTime-cardinality , gd:UnplannedOutage.duration-cardinality , ido:IdentifiedObject.mRID-cardinality , gd:UnplannedOutage.tripKind-datatype , gd:UnplannedOutage.reportedStartTime-datatype , gd:UnplannedOutage.startDateTime-datatype , ido:IdentifiedObject.name-cardinality , gd:UnplannedOutage.systemUnitKind-datatype , ido:IdentifiedObject.description-cardinality , gd:Outage.Equipments-valueType , ido:IdentifiedObject.description-datatype , gd:UnplannedOutage.systemUnitKind-cardinality , ido:IdentifiedObject.name-datatype , gd:UnplannedOutage.tripKind-cardinality , gd:UnplannedOutage.autoReclosingKind-cardinality , gd:UnplannedOutage.duration-datatype , ido:IdentifiedObject.mRID-datatype , gd:UnplannedOutage.startDateTime-cardinality ; + sh:targetClass cim:UnplannedOutage . + +gd:Fault.kind-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group gd:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Fault.kind-cardinality" ; + sh:order 9 ; + sh:path cim:Fault.kind ; + sh:severity sh:Violation . + +gd:UnplannedOutage.tripKind-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group gd:DatatypesGroup ; + sh:in ( nc:TripKind.automaticWithUnsuccessfulAutomaticReclosing nc:TripKind.automatic nc:TripKind.manual ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "UnplannedOutage.tripKind-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 6 ; + sh:path nc:UnplannedOutage.tripKind ; + sh:severity sh:Violation . + +gd:Fault.Location-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group gd:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "Fault.Location-cardinality" ; + sh:order 2 ; + sh:path cim:Fault.Location ; + sh:severity sh:Violation . + +gd:FaultCause.Fault-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group gd:AssociationsGroup ; + sh:in ( cim:Fault ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: cim:Fault" ; + sh:name "FaultCause.Fault-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 3 ; + sh:path ( nc:FaultCause.Fault rdf:type ) ; + sh:severity sh:Violation . + +gd:Fault.FaultyEquipment-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group gd:AssociationsGroup ; + sh:in ( cim:Equipment ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: cim:Equipment" ; + sh:name "Fault.FaultyEquipment-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 14 ; + sh:path ( cim:Fault.FaultyEquipment rdf:type ) ; + sh:severity sh:Violation . + +gd:CoordinateSystem.crsUrn-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group gd:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "CoordinateSystem.crsUrn-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path cim:CoordinateSystem.crsUrn ; + sh:severity sh:Violation . + +gd:UnplannedOutage.systemUnitKind-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group gd:DatatypesGroup ; + sh:in ( nc:SystemUnitKind.busbar nc:SystemUnitKind.powerTransformer nc:SystemUnitKind.dcCable nc:SystemUnitKind.svc nc:SystemUnitKind.dcConverter nc:SystemUnitKind.facts nc:SystemUnitKind.reactor nc:SystemUnitKind.overheadLine nc:SystemUnitKind.other nc:SystemUnitKind.cable nc:SystemUnitKind.shuntCapacitor nc:SystemUnitKind.seriesCapacitor ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "UnplannedOutage.systemUnitKind-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path nc:UnplannedOutage.systemUnitKind ; + sh:severity sh:Violation . + +gd:Fault.repairTime-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:duration ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group gd:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Fault.repairTime-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path nc:Fault.repairTime ; + sh:severity sh:Violation . + +gd:FaultCause.FaultCauseType-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group gd:AssociationsGroup ; + sh:in ( cim:FaultCauseType ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: cim:FaultCauseType" ; + sh:name "FaultCause.FaultCauseType-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path ( nc:FaultCause.FaultCauseType rdf:type ) ; + sh:severity sh:Violation . + +gd:CardinalityGroup rdf:type sh:PropertyGroup ; + rdfs:label "Cardinality" ; + sh:order 0 . + +ido:DatatypesGroupIO rdf:type sh:PropertyGroup ; + rdfs:label "DatatypesIO" ; + sh:order 1 . + +gd:FaultCause.certaintyLevel-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group gd:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "FaultCause.certaintyLevel-cardinality" ; + sh:order 2 ; + sh:path nc:FaultCause.certaintyLevel ; + sh:severity sh:Violation . + +gd:Fault.sequenceNumber-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group gd:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "Fault.sequenceNumber-cardinality" ; + sh:order 7 ; + sh:path nc:Fault.sequenceNumber ; + sh:severity sh:Violation . + +gd:Interruption.startDateTime-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:dateTime ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group gd:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Interruption.startDateTime-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:Interruption.startDateTime ; + sh:severity sh:Violation . + +gd:Fault.duration-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:duration ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group gd:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Fault.duration-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 5 ; + sh:path nc:Fault.duration ; + sh:severity sh:Violation . + +ido:IdentifiedObject.mRID-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ido:DatatypesGroupIO ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "IdentifiedObject.mRID-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.mRID ; + sh:severity sh:Violation . + +ido:IdentifiedObject.description-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ido:DatatypesGroupIO ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "IdentifiedObject.description-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.description ; + sh:severity sh:Violation . + +gd:Outage.Equipments-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group gd:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "Outage.Equipments-cardinality" ; + sh:order 9 ; + sh:path cim:Outage.Equipments ; + sh:severity sh:Violation . + +gd:Interruption.interruptedPower-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group gd:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "Interruption.interruptedPower-cardinality" ; + sh:order 6 ; + sh:path nc:Interruption.interruptedPower ; + sh:severity sh:Violation . + +gd:Outage.Equipments-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group gd:AssociationsGroup ; + sh:in ( cim:Equipment ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: cim:Equipment" ; + sh:name "Outage.Equipments-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 9 ; + sh:path ( cim:Outage.Equipments rdf:type ) ; + sh:severity sh:Violation . + +gd:Fault.phases-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group gd:DatatypesGroup ; + sh:in ( cim:PhaseCode.AB cim:PhaseCode.X cim:PhaseCode.CN cim:PhaseCode.s2N cim:PhaseCode.AC cim:PhaseCode.XY cim:PhaseCode.s2 cim:PhaseCode.A cim:PhaseCode.s12 cim:PhaseCode.ABC cim:PhaseCode.XN cim:PhaseCode.s12N cim:PhaseCode.BC cim:PhaseCode.B cim:PhaseCode.AN cim:PhaseCode.ABCN cim:PhaseCode.C cim:PhaseCode.none cim:PhaseCode.ACN cim:PhaseCode.s1 cim:PhaseCode.BN cim:PhaseCode.s1N cim:PhaseCode.BCN cim:PhaseCode.XYN cim:PhaseCode.N cim:PhaseCode.ABN ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "Fault.phases-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 12 ; + sh:path cim:Fault.phases ; + sh:severity sh:Violation . + +gd:PositionPoint.Location-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group gd:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "PositionPoint.Location-cardinality" ; + sh:order 1 ; + sh:path cim:PositionPoint.Location ; + sh:severity sh:Violation . + +gd:UnplannedOutage.autoReclosingKind-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group gd:DatatypesGroup ; + sh:in ( nc:AutoReclosingKind.unknown nc:AutoReclosingKind.manuallyAfterInspection nc:AutoReclosingKind.other nc:AutoReclosingKind.manuallyWithoutEitherInspectionRepairOrRestructuringOfOperations nc:AutoReclosingKind.automaticallyAfter2SecondsOrMore nc:AutoReclosingKind.manuallyAfterRestructuringOfOperations nc:AutoReclosingKind.automaticallyAfterLessThan2Seconds ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "UnplannedOutage.autoReclosingKind-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path nc:UnplannedOutage.autoReclosingKind ; + sh:severity sh:Violation . + +gd:UnplannedOutage.startDateTime-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:dateTime ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group gd:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "UnplannedOutage.startDateTime-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:UnplannedOutage.startDateTime ; + sh:severity sh:Violation . + +gd:Equipment.UnplannedOutage-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group gd:AssociationsGroup ; + sh:in ( cim:UnplannedOutage ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: cim:UnplannedOutage" ; + sh:name "Equipment.UnplannedOutage-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 3 ; + sh:path ( cim:Equipment.UnplannedOutage rdf:type ) ; + sh:severity sh:Violation . + +gd:Location.CoordinateSystem-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group gd:AssociationsGroup ; + sh:in ( cim:CoordinateSystem ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: cim:CoordinateSystem" ; + sh:name "Location.CoordinateSystem-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path ( cim:Location.CoordinateSystem rdf:type ) ; + sh:severity sh:Violation . + +gd:FaultOutage.Fault-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group gd:AssociationsGroup ; + sh:in ( cim:Fault ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: cim:Fault" ; + sh:name "FaultOutage.Fault-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 3 ; + sh:path ( nc:FaultOutage.Fault rdf:type ) ; + sh:severity sh:Violation . + +gd:PositionPoint.zPosition-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group gd:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PositionPoint.zPosition-cardinality" ; + sh:order 2 ; + sh:path cim:PositionPoint.zPosition ; + sh:severity sh:Violation . + +gd:UnplannedOutage.reportedStartTime-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group gd:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "UnplannedOutage.reportedStartTime-cardinality" ; + sh:order 5 ; + sh:path cim:UnplannedOutage.reportedStartTime ; + sh:severity sh:Violation . + +gd:Interruption.energyNotSupplied-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group gd:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Interruption.energyNotSupplied-cardinality" ; + sh:order 3 ; + sh:path nc:Interruption.energyNotSupplied ; + sh:severity sh:Violation . + +gd:Fault.phases-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group gd:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Fault.phases-cardinality" ; + sh:order 12 ; + sh:path cim:Fault.phases ; + sh:severity sh:Violation . + +gd:FaultCause.certaintyLevel-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group gd:DatatypesGroup ; + sh:in ( nc:CertaintyLevelKind.medium nc:CertaintyLevelKind.none nc:CertaintyLevelKind.high nc:CertaintyLevelKind.low ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "FaultCause.certaintyLevel-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path nc:FaultCause.certaintyLevel ; + sh:severity sh:Violation . + +gd:Interruption.duration-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group gd:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "Interruption.duration-cardinality" ; + sh:order 4 ; + sh:path nc:Interruption.duration ; + sh:severity sh:Violation . + +gd:Fault.isPermanent-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group gd:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "Fault.isPermanent-cardinality" ; + sh:order 8 ; + sh:path nc:Fault.isPermanent ; + sh:severity sh:Violation . + +gd:FaultOutage.isMainFault-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group gd:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "FaultOutage.isMainFault-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:FaultOutage.isMainFault ; + sh:severity sh:Violation . + +gd:Fault.faultKind-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group gd:DatatypesGroup ; + sh:in ( nc:FaultKind.lineToLine nc:FaultKind.undesiredFunction nc:FaultKind.functional nc:FaultKind.lineToLineToGround nc:FaultKind.other nc:FaultKind.lineToGround nc:FaultKind.lineOpen ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "Fault.faultKind-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 16 ; + sh:path nc:Fault.faultKind ; + sh:severity sh:Violation . + +gd:Fault.occurredDateTime-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:dateTime ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group gd:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Fault.occurredDateTime-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 17 ; + sh:path cim:Fault.occurredDateTime ; + sh:severity sh:Violation . + +gd:Fault.Location-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group gd:AssociationsGroup ; + sh:in ( cim:Location ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: cim:Location" ; + sh:name "Fault.Location-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path ( cim:Fault.Location rdf:type ) ; + sh:severity sh:Violation . + +gd:FaultCause.mRID-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group gd:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "FaultCause.mRID-cardinality" ; + sh:order 0 ; + sh:path nc:FaultCause.mRID ; + sh:severity sh:Violation . + +gd:Location rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.description-datatype , gd:Location.CoordinateSystem-cardinality , gd:Location.CoordinateSystem-valueType , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.name-cardinality ; + sh:targetClass cim:Location . + +gd:Fault.GridDisturbance-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group gd:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Fault.GridDisturbance-cardinality" ; + sh:order 10 ; + sh:path nc:Fault.GridDisturbance ; + sh:severity sh:Violation . + +gd:Interruption.Outage-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group gd:AssociationsGroup ; + sh:in ( cim:UnplannedOutage ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: cim:UnplannedOutage" ; + sh:name "Interruption.Outage-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 5 ; + sh:path ( nc:Interruption.Outage rdf:type ) ; + sh:severity sh:Violation . + +gd:PositionPoint.zPosition-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group gd:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PositionPoint.zPosition-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path cim:PositionPoint.zPosition ; + sh:severity sh:Violation . + +gd:Fault.isDirectlyEarthed-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group gd:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "Fault.isDirectlyEarthed-cardinality" ; + sh:order 15 ; + sh:path nc:Fault.isDirectlyEarthed ; + sh:severity sh:Violation . + +gd:UnplannedOutage.duration-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:duration ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group gd:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "UnplannedOutage.duration-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path nc:UnplannedOutage.duration ; + sh:severity sh:Violation . + +gd:Fault.isIntermittent-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group gd:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Fault.isIntermittent-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 11 ; + sh:path nc:Fault.isIntermittent ; + sh:severity sh:Violation . + +gd:Fault.category-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group gd:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "Fault.category-cardinality" ; + sh:order 0 ; + sh:path nc:Fault.category ; + sh:severity sh:Violation . + +gd:Fault.category-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group gd:DatatypesGroup ; + sh:in ( nc:FaultCategoryKind.technical nc:FaultCategoryKind.operational nc:FaultCategoryKind.system ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "Fault.category-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path nc:Fault.category ; + sh:severity sh:Violation . + +gd:GridDisturbance rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.description-cardinality ; + sh:targetClass nc:GridDisturbance . + +gd:Fault.isIntermittent-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group gd:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "Fault.isIntermittent-cardinality" ; + sh:order 11 ; + sh:path nc:Fault.isIntermittent ; + sh:severity sh:Violation . diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/ImpactAssessmentMatrixProfile_v2_2_SHACL.ttl b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/ImpactAssessmentMatrixProfile_v2_2_SHACL.ttl new file mode 100644 index 0000000000..c544e5631b --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/ImpactAssessmentMatrixProfile_v2_2_SHACL.ttl @@ -0,0 +1,464 @@ +@base . +@prefix adms: . +@prefix cim: . +@prefix cims: . +@prefix dash: . +@prefix dc: . +@prefix dcat: . +@prefix dcterms: . +@prefix dm: . +@prefix eu: . +@prefix eumd: . +@prefix euvoc: . +@prefix iam: . +@prefix ido: . +@prefix md: . +@prefix nc: . +@prefix owl: . +@prefix prof: . +@prefix profcim: . +@prefix prov: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix skos: . +@prefix xsd: . + +iam:ListBasedImpactAssessmentMatrix + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.mRID-cardinality ; + sh:targetClass nc:ListBasedImpactAssessmentMatrix . + +iam:RemedialActionImpact.kind-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group iam:DatatypesGroup ; + sh:in ( nc:ImpactAgreementKind.noAgreement nc:ImpactAgreementKind.always nc:ImpactAgreementKind.never ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "RemedialActionImpact.kind-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path nc:RemedialActionImpact.kind ; + sh:severity sh:Violation . + +iam:RemedialActionOutcomeValue + rdf:type sh:NodeShape ; + sh:property iam:RemedialActionOutcomeValue.RemedialAction-cardinality , iam:OutcomeValue.ImpactedSystemOperator-cardinality , iam:OutcomeValue.outcome-cardinality , iam:OutcomeValue.mRID-cardinality , iam:RemedialActionOutcomeValue.impactQuantity-cardinality , iam:OutcomeValue.outcome-datatype , iam:OutcomeValue.ImpactAssessmentMatrix-cardinality , iam:OutcomeValue.mRID-datatype , iam:RemedialActionOutcomeValue.impactQuantity-datatype ; + sh:targetClass nc:RemedialActionOutcomeValue . + +iam:OwnerRemedialActionAssessment.RemedialActionImpact-valueTypeNodeShape + rdf:type sh:NodeShape ; + sh:property iam:OwnerRemedialActionAssessment.RemedialActionImpact-valueType ; + sh:targetClass nc:OwnerRemedialActionAssessment . + +iam:RemedialActionOutcomeValue.impactQuantity-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group iam:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "RemedialActionOutcomeValue.impactQuantity-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:RemedialActionOutcomeValue.impactQuantity ; + sh:severity sh:Violation . + +ido:DatatypesGroupIO rdf:type sh:PropertyGroup ; + rdfs:label "DatatypesIO" ; + sh:order 1 . + +ido:IdentifiedObject.description-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ido:CardinalityIO ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "IdentifiedObject.description-cardinality" ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.description ; + sh:severity sh:Violation . + +iam:OutcomeValue.ImpactedSystemOperator-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group iam:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "OutcomeValue.ImpactedSystemOperator-cardinality" ; + sh:order 2 ; + sh:path nc:OutcomeValue.ImpactedSystemOperator ; + sh:severity sh:Violation . + +ido:IdentifiedObject.name-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ido:CardinalityIO ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "IdentifiedObject.name-cardinality" ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.name ; + sh:severity sh:Violation . + +ido:IdentifiedObject.description-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ido:DatatypesGroupIO ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "IdentifiedObject.description-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.description ; + sh:severity sh:Violation . + +iam:RemedialActionOutcomeValue.impactQuantity-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group iam:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "RemedialActionOutcomeValue.impactQuantity-cardinality" ; + sh:order 0 ; + sh:path nc:RemedialActionOutcomeValue.impactQuantity ; + sh:severity sh:Violation . + +iam:RemedialActionImpact.mRID-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group iam:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "RemedialActionImpact.mRID-cardinality" ; + sh:order 4 ; + sh:path nc:RemedialActionImpact.mRID ; + sh:severity sh:Violation . + +iam:OwnerRemedialActionAssessment.ImpactedSystemOperator-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group iam:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "OwnerRemedialActionAssessment.ImpactedSystemOperator-cardinality" ; + sh:order 0 ; + sh:path nc:OwnerRemedialActionAssessment.ImpactedSystemOperator ; + sh:severity sh:Violation . + +iam:OutcomeValue.ImpactAssessmentMatrix-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group iam:AssociationsGroup ; + sh:in ( nc:ConnectingImpactAssessmentMatrix nc:ListBasedImpactAssessmentMatrix nc:CalculationBasedImpactAssessmentMatrix ) ; + sh:message "One of the following occurs: 1) The value type is not IRI; 2) The value type is not the right class." ; + sh:name "OutcomeValue.ImpactAssessmentMatrix-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path ( nc:OutcomeValue.ImpactAssessmentMatrix rdf:type ) ; + sh:severity sh:Violation . + +iam:RemedialActionImpact.AssessingSystemOperator-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group iam:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "RemedialActionImpact.AssessingSystemOperator-cardinality" ; + sh:order 1 ; + sh:path nc:RemedialActionImpact.AssessingSystemOperator ; + sh:severity sh:Violation . + +iam:RemedialActionScheduleOutcomeValue + rdf:type sh:NodeShape ; + sh:property iam:OutcomeValue.outcome-datatype , iam:OutcomeValue.outcome-cardinality , iam:OutcomeValue.mRID-datatype , iam:OutcomeValue.mRID-cardinality , iam:OutcomeValue.ImpactedSystemOperator-cardinality , iam:OutcomeValue.ImpactAssessmentMatrix-cardinality , iam:RemedialActionScheduleOutcomeValue.RemedialActionSchedule-cardinality ; + sh:targetClass nc:RemedialActionScheduleOutcomeValue . + +iam:RemedialActionImpact.mRID-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group iam:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "RemedialActionImpact.mRID-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path nc:RemedialActionImpact.mRID ; + sh:severity sh:Violation . + +iam:OwnerRemedialActionAssessment + rdf:type sh:NodeShape ; + sh:property iam:OwnerRemedialActionAssessment.mRID-datatype , iam:OwnerRemedialActionAssessment.mRID-cardinality , iam:OwnerRemedialActionAssessment.RemedialActionImpact-cardinality , iam:OwnerRemedialActionAssessment.ImpactedSystemOperator-cardinality ; + sh:targetClass nc:OwnerRemedialActionAssessment . + +iam:QuantitativeRemedialActionImpact + rdf:type sh:NodeShape ; + sh:property iam:RemedialActionImpact.kind-datatype , iam:RemedialActionImpact.impactQuantity-datatype , iam:QuantitativeRemedialActionImpact.SensitivityArea-cardinality , iam:RemedialActionImpact.impactQuantity-cardinality , iam:RemedialActionImpact.mRID-datatype , iam:RemedialActionImpact.RemedialAction-cardinality , iam:RemedialActionImpact.mRID-cardinality , iam:RemedialActionImpact.kind-cardinality , iam:RemedialActionImpact.AssessingSystemOperator-cardinality ; + sh:targetClass nc:QuantitativeRemedialActionImpact . + +iam:OwnerRemedialActionAssessment.mRID-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group iam:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "OwnerRemedialActionAssessment.mRID-cardinality" ; + sh:order 2 ; + sh:path nc:OwnerRemedialActionAssessment.mRID ; + sh:severity sh:Violation . + +iam:RemedialActionImpact.RemedialAction-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group iam:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "RemedialActionImpact.RemedialAction-cardinality" ; + sh:order 5 ; + sh:path nc:RemedialActionImpact.RemedialAction ; + sh:severity sh:Violation . + +iam:OutcomeValue.mRID-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group iam:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "OutcomeValue.mRID-cardinality" ; + sh:order 3 ; + sh:path nc:OutcomeValue.mRID ; + sh:severity sh:Violation . + +iam:OutcomeValue.outcome-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group iam:DatatypesGroup ; + sh:in ( nc:OutcomeImpactAssessmentKind.false nc:OutcomeImpactAssessmentKind.undecided nc:OutcomeImpactAssessmentKind.true ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "OutcomeValue.outcome-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 4 ; + sh:path nc:OutcomeValue.outcome ; + sh:severity sh:Violation . + +ido:IdentifiedObject.name-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ido:DatatypesGroupIO ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "IdentifiedObject.name-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.name ; + sh:severity sh:Violation . + +iam:OutcomeValue.ImpactAssessmentMatrix-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group iam:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "OutcomeValue.ImpactAssessmentMatrix-cardinality" ; + sh:order 1 ; + sh:path nc:OutcomeValue.ImpactAssessmentMatrix ; + sh:severity sh:Violation . + +iam:QualitativeRemedialActionImpact + rdf:type sh:NodeShape ; + sh:property iam:RemedialActionImpact.kind-datatype , iam:RemedialActionImpact.kind-cardinality , iam:RemedialActionImpact.mRID-datatype , iam:RemedialActionImpact.RemedialAction-cardinality , iam:RemedialActionImpact.impactQuantity-cardinality , iam:RemedialActionImpact.mRID-cardinality , iam:RemedialActionImpact.AssessingSystemOperator-cardinality , iam:RemedialActionImpact.impactQuantity-datatype ; + sh:targetClass nc:QualitativeRemedialActionImpact . + +iam:RemedialActionScheduleOutcomeValue.RemedialActionSchedule-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group iam:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "RemedialActionScheduleOutcomeValue.RemedialActionSchedule-cardinality" ; + sh:order 0 ; + sh:path nc:RemedialActionScheduleOutcomeValue.RemedialActionSchedule ; + sh:severity sh:Violation . + +ido:CardinalityGroup rdf:type sh:PropertyGroup ; + rdfs:label "CardinalityIO" ; + sh:order 0 . + +iam:OwnerRemedialActionAssessment.RemedialActionImpact-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group iam:AssociationsGroup ; + sh:in ( nc:QualitativeRemedialActionImpact nc:QuantitativeRemedialActionImpact ) ; + sh:message "One of the following occurs: 1) The value type is not IRI; 2) The value type is not the right class." ; + sh:name "OwnerRemedialActionAssessment.RemedialActionImpact-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path ( nc:OwnerRemedialActionAssessment.RemedialActionImpact rdf:type ) ; + sh:severity sh:Violation . + +ido:IdentifiedObject.mRID-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ido:CardinalityIO ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "IdentifiedObject.mRID-cardinality" ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.mRID ; + sh:severity sh:Violation . + +iam:ConnectingImpactAssessmentMatrix + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.mRID-cardinality ; + sh:targetClass nc:ConnectingImpactAssessmentMatrix . + +iam:RemedialActionImpact.impactQuantity-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group iam:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "RemedialActionImpact.impactQuantity-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path nc:RemedialActionImpact.impactQuantity ; + sh:severity sh:Violation . + +iam:OutcomeValue.ImpactAssessmentMatrix-valueTypeNodeShape + rdf:type sh:NodeShape ; + sh:property iam:OutcomeValue.ImpactAssessmentMatrix-valueType ; + sh:targetClass nc:RemedialActionOutcomeValue , nc:RemedialActionScheduleOutcomeValue . + +iam:OwnerRemedialActionAssessment.mRID-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group iam:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "OwnerRemedialActionAssessment.mRID-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path nc:OwnerRemedialActionAssessment.mRID ; + sh:severity sh:Violation . + +iam:AssociationsGroup + rdf:type sh:PropertyGroup ; + rdfs:label "Associations" ; + sh:order 2 . + +iam:OwnerRemedialActionAssessment.RemedialActionImpact-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group iam:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "OwnerRemedialActionAssessment.RemedialActionImpact-cardinality" ; + sh:order 1 ; + sh:path nc:OwnerRemedialActionAssessment.RemedialActionImpact ; + sh:severity sh:Violation . + +iam:DatatypesGroup rdf:type sh:PropertyGroup ; + rdfs:label "Datatypes" ; + sh:order 1 . + +ido:IdentifiedObject.mRID-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ido:DatatypesGroupIO ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "IdentifiedObject.mRID-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.mRID ; + sh:severity sh:Violation . + +iam:RemedialActionImpact.impactQuantity-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group iam:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "RemedialActionImpact.impactQuantity-cardinality" ; + sh:order 3 ; + sh:path nc:RemedialActionImpact.impactQuantity ; + sh:severity sh:Violation . + +iam:CalculationBasedImpactAssessmentMatrix + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.mRID-cardinality ; + sh:targetClass nc:CalculationBasedImpactAssessmentMatrix . + +iam:RemedialActionOutcomeValue.RemedialAction-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group iam:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "RemedialActionOutcomeValue.RemedialAction-cardinality" ; + sh:order 1 ; + sh:path nc:RemedialActionOutcomeValue.RemedialAction ; + sh:severity sh:Violation . + +iam:OutcomeValue.outcome-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group iam:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "OutcomeValue.outcome-cardinality" ; + sh:order 4 ; + sh:path nc:OutcomeValue.outcome ; + sh:severity sh:Violation . + +iam:CardinalityGroup rdf:type sh:PropertyGroup ; + rdfs:label "Cardinality" ; + sh:order 0 . + +iam:OutcomeValue.mRID-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group iam:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "OutcomeValue.mRID-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path nc:OutcomeValue.mRID ; + sh:severity sh:Violation . + +iam:QuantitativeRemedialActionImpact.SensitivityArea-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group iam:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "QuantitativeRemedialActionImpact.SensitivityArea-cardinality" ; + sh:order 0 ; + sh:path nc:QuantitativeRemedialActionImpact.SensitivityArea ; + sh:severity sh:Violation . + +iam:RemedialActionImpact.kind-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group iam:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "RemedialActionImpact.kind-cardinality" ; + sh:order 2 ; + sh:path nc:RemedialActionImpact.kind ; + sh:severity sh:Violation . diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/MonitoringAreaProfile_v2_2_SHACL.ttl b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/MonitoringAreaProfile_v2_2_SHACL.ttl new file mode 100644 index 0000000000..0852be8cb1 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/MonitoringAreaProfile_v2_2_SHACL.ttl @@ -0,0 +1,293 @@ +@base . +@prefix adms: . +@prefix cim: . +@prefix cims: . +@prefix dash: . +@prefix dc: . +@prefix dcat: . +@prefix dcterms: . +@prefix dm: . +@prefix eu: . +@prefix eumd: . +@prefix euvoc: . +@prefix ido: . +@prefix ma: . +@prefix md: . +@prefix nc: . +@prefix owl: . +@prefix prof: . +@prefix profcim: . +@prefix prov: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix skos: . +@prefix xsd: . + +ma:CardinalityGroup rdf:type sh:PropertyGroup ; + rdfs:label "Cardinality" ; + sh:order 0 . + +ma:SensitivityArea rdf:type sh:NodeShape ; + sh:property ma:MonitoringArea.SynchronousArea-cardinality , ma:InfluenceArea.voltageInfluenceFactor-datatype , ido:IdentifiedObject.mRID-datatype , ma:InfluenceArea.voltageInfluenceFactor-cardinality , ma:InfluenceArea.identificationInfluenceFactor-datatype , ma:InfluenceArea.filteringInfluenceFactor-cardinality , ma:InfluenceArea.identificationInfluenceFactor-cardinality , ma:MonitoringArea.SystemOperator-cardinality , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.description-datatype , ma:InfluenceArea.filteringInfluenceFactor-datatype ; + sh:targetClass nc:SensitivityArea . + +ido:IdentifiedObject.description-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ido:CardinalityIO ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "IdentifiedObject.description-cardinality" ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.description ; + sh:severity sh:Violation . + +ido:IdentifiedObject.mRID-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ido:CardinalityIO ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "IdentifiedObject.mRID-cardinality" ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.mRID ; + sh:severity sh:Violation . + +ma:MonitoringArea.SystemOperator-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ma:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "MonitoringArea.SystemOperator-cardinality" ; + sh:order 5 ; + sh:path nc:MonitoringArea.SystemOperator ; + sh:severity sh:Violation . + +ma:InfluenceArea.voltageInfluenceFactor-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ma:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "InfluenceArea.voltageInfluenceFactor-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path nc:InfluenceArea.voltageInfluenceFactor ; + sh:severity sh:Violation . + +ma:InfluenceArea.identificationInfluenceFactor-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ma:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "InfluenceArea.identificationInfluenceFactor-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:InfluenceArea.identificationInfluenceFactor ; + sh:severity sh:Violation . + +ma:MonitoringArea.SynchronousArea-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ma:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "MonitoringArea.SynchronousArea-cardinality" ; + sh:order 3 ; + sh:path nc:MonitoringArea.SynchronousArea ; + sh:severity sh:Violation . + +ma:AreaBorderTerminal.MonitoringArea-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ma:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "AreaBorderTerminal.MonitoringArea-cardinality" ; + sh:order 1 ; + sh:path nc:AreaBorderTerminal.MonitoringArea ; + sh:severity sh:Violation . + +ma:AreaBorderTerminal.MonitoringArea-valueTypeNodeShape + rdf:type sh:NodeShape ; + sh:property ma:AreaBorderTerminal.MonitoringArea-valueType ; + sh:targetClass nc:AreaBorderTerminal . + +ma:AreaBorderTerminal.mRID-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ma:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "AreaBorderTerminal.mRID-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path nc:AreaBorderTerminal.mRID ; + sh:severity sh:Violation . + +ido:IdentifiedObject.mRID-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ido:DatatypesGroupIO ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "IdentifiedObject.mRID-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.mRID ; + sh:severity sh:Violation . + +ma:AreaBorderTerminal.MonitoringArea-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group ma:AssociationsGroup ; + sh:in ( nc:MonitoringArea nc:ObservabilityArea nc:SensitivityArea nc:ContingencyArea ) ; + sh:message "One of the following occurs: 1) The value type is not IRI; 2) The value type is not the right class." ; + sh:name "AreaBorderTerminal.MonitoringArea-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path ( nc:AreaBorderTerminal.MonitoringArea rdf:type ) ; + sh:severity sh:Violation . + +ido:IdentifiedObject.name-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ido:DatatypesGroupIO ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "IdentifiedObject.name-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.name ; + sh:severity sh:Violation . + +ma:InfluenceArea.filteringInfluenceFactor-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ma:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "InfluenceArea.filteringInfluenceFactor-cardinality" ; + sh:order 0 ; + sh:path nc:InfluenceArea.filteringInfluenceFactor ; + sh:severity sh:Violation . + +ma:DatatypesGroup rdf:type sh:PropertyGroup ; + rdfs:label "Datatypes" ; + sh:order 1 . + +ido:CardinalityGroup rdf:type sh:PropertyGroup ; + rdfs:label "CardinalityIO" ; + sh:order 0 . + +ma:InfluenceArea.voltageInfluenceFactor-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ma:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "InfluenceArea.voltageInfluenceFactor-cardinality" ; + sh:order 2 ; + sh:path nc:InfluenceArea.voltageInfluenceFactor ; + sh:severity sh:Violation . + +ma:AreaBorderTerminal.mRID-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ma:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "AreaBorderTerminal.mRID-cardinality" ; + sh:order 2 ; + sh:path nc:AreaBorderTerminal.mRID ; + sh:severity sh:Violation . + +ma:AreaBorderTerminal.Terminal-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ma:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "AreaBorderTerminal.Terminal-cardinality" ; + sh:order 0 ; + sh:path nc:AreaBorderTerminal.Terminal ; + sh:severity sh:Violation . + +ma:ObservabilityArea rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.mRID-datatype , ma:MonitoringArea.SystemOperator-cardinality , ido:IdentifiedObject.mRID-cardinality , ma:MonitoringArea.SynchronousArea-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.name-datatype ; + sh:targetClass nc:ObservabilityArea . + +ma:AssociationsGroup rdf:type sh:PropertyGroup ; + rdfs:label "Associations" ; + sh:order 2 . + +ma:MonitoringArea rdf:type sh:NodeShape ; + sh:property ma:MonitoringArea.SynchronousArea-cardinality , ido:IdentifiedObject.mRID-datatype , ma:MonitoringArea.SystemOperator-cardinality , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.mRID-cardinality ; + sh:targetClass nc:MonitoringArea . + +ido:DatatypesGroupIO rdf:type sh:PropertyGroup ; + rdfs:label "DatatypesIO" ; + sh:order 1 . + +ma:AreaBorderTerminal + rdf:type sh:NodeShape ; + sh:property ma:AreaBorderTerminal.mRID-datatype , ma:AreaBorderTerminal.mRID-cardinality , ma:AreaBorderTerminal.MonitoringArea-cardinality , ma:AreaBorderTerminal.Terminal-cardinality ; + sh:targetClass nc:AreaBorderTerminal . + +ma:InfluenceArea.filteringInfluenceFactor-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ma:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "InfluenceArea.filteringInfluenceFactor-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:InfluenceArea.filteringInfluenceFactor ; + sh:severity sh:Violation . + +ma:InfluenceArea.identificationInfluenceFactor-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ma:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "InfluenceArea.identificationInfluenceFactor-cardinality" ; + sh:order 1 ; + sh:path nc:InfluenceArea.identificationInfluenceFactor ; + sh:severity sh:Violation . + +ma:ContingencyArea rdf:type sh:NodeShape ; + sh:property ma:InfluenceArea.voltageInfluenceFactor-cardinality , ma:InfluenceArea.filteringInfluenceFactor-cardinality , ido:IdentifiedObject.mRID-cardinality , ma:InfluenceArea.identificationInfluenceFactor-cardinality , ido:IdentifiedObject.name-datatype , ma:InfluenceArea.voltageInfluenceFactor-datatype , ma:InfluenceArea.filteringInfluenceFactor-datatype , ma:InfluenceArea.identificationInfluenceFactor-datatype , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.description-datatype , ma:MonitoringArea.SynchronousArea-cardinality , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.mRID-datatype , ma:MonitoringArea.SystemOperator-cardinality ; + sh:targetClass nc:ContingencyArea . + +ido:IdentifiedObject.name-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ido:CardinalityIO ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "IdentifiedObject.name-cardinality" ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.name ; + sh:severity sh:Violation . + +ido:IdentifiedObject.description-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ido:DatatypesGroupIO ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "IdentifiedObject.description-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.description ; + sh:severity sh:Violation . diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/ObjectRegistryProfile_v2_2_SHACL.ttl b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/ObjectRegistryProfile_v2_2_SHACL.ttl new file mode 100644 index 0000000000..267b4115ac --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/ObjectRegistryProfile_v2_2_SHACL.ttl @@ -0,0 +1,578 @@ +@base . +@prefix adms: . +@prefix cim: . +@prefix cims: . +@prefix dash: . +@prefix dc: . +@prefix dcat: . +@prefix dcterms: . +@prefix dm: . +@prefix eu: . +@prefix eumd: . +@prefix euvoc: . +@prefix ido: . +@prefix md: . +@prefix nc: . +@prefix or: . +@prefix owl: . +@prefix prof: . +@prefix profcim: . +@prefix prov: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix skos: . +@prefix xsd: . + +or:Name.IdentifiedObject-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group or:AssociationsGroup ; + sh:in ( cim:IdentifiedObject ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: cim:IdentifiedObject" ; + sh:name "Name.IdentifiedObject-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 6 ; + sh:path ( cim:Name.IdentifiedObject rdf:type ) ; + sh:severity sh:Violation . + +or:NameType.NamingAuthority-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group or:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "NameType.NamingAuthority-cardinality" ; + sh:order 2 ; + sh:path nc:NameType.NamingAuthority ; + sh:severity sh:Violation . + +or:Name.UniqueIdentifiedObject-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group or:AssociationsGroup ; + sh:in ( cim:IdentifiedObject ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: cim:IdentifiedObject" ; + sh:name "Name.UniqueIdentifiedObject-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path ( cim:Name.UniqueIdentifiedObject rdf:type ) ; + sh:severity sh:Violation . + +ido:Name.IdentifiedObject-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ido:CardinalityIO ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Name.IdentifiedObject-cardinality" ; + sh:order 0.1 ; + sh:path cim:Name.IdentifiedObject ; + sh:severity sh:Violation . + +or:NameType.NamingAuthority-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group or:AssociationsGroup ; + sh:in ( nc:NamingAuthority ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:NamingAuthority" ; + sh:name "NameType.NamingAuthority-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path ( nc:NameType.NamingAuthority rdf:type ) ; + sh:severity sh:Violation . + +ido:DatatypesGroupIO rdf:type sh:PropertyGroup ; + rdfs:label "DatatypesIO" ; + sh:order 1 . + +ido:IdentifiedObject.description-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ido:CardinalityIO ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "IdentifiedObject.description-cardinality" ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.description ; + sh:severity sh:Violation . + +or:Name.NameType-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group or:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Name.NameType-cardinality" ; + sh:order 3 ; + sh:path cim:Name.NameType ; + sh:severity sh:Violation . + +or:Name.name-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group or:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Name.name-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 5 ; + sh:path cim:Name.name ; + sh:severity sh:Violation . + +or:Name.name-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group or:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "Name.name-cardinality" ; + sh:order 5 ; + sh:path cim:Name.name ; + sh:severity sh:Violation . + +ido:IdentifiedObject.name-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ido:CardinalityIO ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "IdentifiedObject.name-cardinality" ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.name ; + sh:severity sh:Violation . + +or:NameType.description-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group or:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "NameType.description-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path cim:NameType.description ; + sh:severity sh:Violation . + +ido:IdentifiedObject.description-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ido:DatatypesGroupIO ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "IdentifiedObject.description-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.description ; + sh:severity sh:Violation . + +or:ObjectType rdf:type sh:NodeShape ; + sh:property or:ObjectType.type-datatype , or:ObjectType.type-cardinality ; + sh:targetClass nc:ObjectType . + +ido:Name.UniqueIdentifiedObject-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ido:CardinalityIO ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Name.UniqueIdentifiedObject-cardinality" ; + sh:order 0.1 ; + sh:path cim:Name.UniqueIdentifiedObject ; + sh:severity sh:Violation . + +or:NamingAuthority.mRID-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group or:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "NamingAuthority.mRID-cardinality" ; + sh:order 2 ; + sh:path nc:NamingAuthority.mRID ; + sh:severity sh:Violation . + +or:Name.NamingAuthority-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group or:AssociationsGroup ; + sh:in ( nc:NamingAuthority ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:NamingAuthority" ; + sh:name "Name.NamingAuthority-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path ( nc:Name.NamingAuthority rdf:type ) ; + sh:severity sh:Violation . + +ido:IdentifiedObject.aliasName-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ido:DatatypesGroupIO ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "IdentifiedObject.aliasName-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.aliasName ; + sh:severity sh:Violation . + +or:NamingAuthority.name-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group or:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "NamingAuthority.name-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:NamingAuthority.name ; + sh:severity sh:Violation . + +or:IdentifiedObject.ObjectType-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group or:AssociationsGroup ; + sh:in ( nc:ObjectType ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:ObjectType" ; + sh:name "IdentifiedObject.ObjectType-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path ( nc:IdentifiedObject.ObjectType rdf:type ) ; + sh:severity sh:Violation . + +or:Name.NameType-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group or:AssociationsGroup ; + sh:in ( cim:NameType ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: cim:NameType" ; + sh:name "Name.NameType-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 3 ; + sh:path ( cim:Name.NameType rdf:type ) ; + sh:severity sh:Violation . + +or:Name.NamingAuthority-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group or:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Name.NamingAuthority-cardinality" ; + sh:order 1 ; + sh:path nc:Name.NamingAuthority ; + sh:severity sh:Violation . + +ido:IdentifiedObject.name-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ido:DatatypesGroupIO ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "IdentifiedObject.name-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.name ; + sh:severity sh:Violation . + +or:ObjectType.type-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group or:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "ObjectType.type-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:ObjectType.type ; + sh:severity sh:Violation . + +or:NameType rdf:type sh:NodeShape ; + sh:property or:NameType.NamingAuthority-valueType , or:NameType.mRID-cardinality , or:NameType.mRID-datatype , or:NameType.description-cardinality , or:NameType.name-cardinality , or:NameType.NamingAuthority-cardinality , or:NameType.name-datatype , or:NameType.description-datatype ; + sh:targetClass cim:NameType . + +or:NameType.name-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group or:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "NameType.name-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path cim:NameType.name ; + sh:severity sh:Violation . + +or:NamingAuthority rdf:type sh:NodeShape ; + sh:property or:NamingAuthority.description-datatype , or:NamingAuthority.description-cardinality , or:NamingAuthority.mRID-datatype , or:NamingAuthority.mRID-cardinality , or:NamingAuthority.name-datatype , or:NamingAuthority.name-cardinality ; + sh:targetClass nc:NamingAuthority . + +ido:IdentifiedObject.shortName-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ido:CardinalityIO ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "IdentifiedObject.shortName-cardinality" ; + sh:order 0.1 ; + sh:path eu:IdentifiedObject.shortName ; + sh:severity sh:Violation . + +or:Name.mRID-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group or:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Name.mRID-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:Name.mRID ; + sh:severity sh:Violation . + +ido:CardinalityGroup rdf:type sh:PropertyGroup ; + rdfs:label "CardinalityIO" ; + sh:order 0 . + +ido:IdentifiedObject.energyIdentCodeEic-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ido:CardinalityIO ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "IdentifiedObject.energyIdentCodeEic-cardinality" ; + sh:order 0.1 ; + sh:path eu:IdentifiedObject.energyIdentCodeEic ; + sh:severity sh:Violation . + +or:Name.mRID-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group or:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Name.mRID-cardinality" ; + sh:order 0 ; + sh:path nc:Name.mRID ; + sh:severity sh:Violation . + +or:IdentifiedObject rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.ObjectType-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.aliasName-datatype , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.shortName-datatype , ido:IdentifiedObject.energyIdentCodeEic-datatype , ido:IdentifiedObject.name-datatype , or:IdentifiedObject.ObjectType-valueType , ido:IdentifiedObject.energyIdentCodeEic-cardinality , ido:IdentifiedObject.aliasName-cardinality , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.shortName-cardinality ; + sh:targetClass cim:IdentifiedObject . + +ido:IdentifiedObject.mRID-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ido:CardinalityIO ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "IdentifiedObject.mRID-cardinality" ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.mRID ; + sh:severity sh:Violation . + +or:Name.language-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group or:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Name.language-cardinality" ; + sh:order 4 ; + sh:path nc:Name.language ; + sh:severity sh:Violation . + +ido:IdentifiedObject.ObjectType-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ido:CardinalityIO ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "IdentifiedObject.ObjectType-cardinality" ; + sh:order 0.1 ; + sh:path nc:IdentifiedObject.ObjectType ; + sh:severity sh:Violation . + +or:Name.language-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group or:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Name.language-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path nc:Name.language ; + sh:severity sh:Violation . + +or:CardinalityGroup rdf:type sh:PropertyGroup ; + rdfs:label "Cardinality" ; + sh:order 0 . + +or:NameType.description-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group or:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "NameType.description-cardinality" ; + sh:order 1 ; + sh:path cim:NameType.description ; + sh:severity sh:Violation . + +ido:IdentifiedObject.energyIdentCodeEic-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ido:DatatypesGroupIO ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "IdentifiedObject.energyIdentCodeEic-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0.1 ; + sh:path eu:IdentifiedObject.energyIdentCodeEic ; + sh:severity sh:Violation . + +or:NamingAuthority.mRID-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group or:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "NamingAuthority.mRID-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path nc:NamingAuthority.mRID ; + sh:severity sh:Violation . + +or:DatatypesGroup rdf:type sh:PropertyGroup ; + rdfs:label "Datatypes" ; + sh:order 1 . + +or:NameType.name-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group or:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "NameType.name-cardinality" ; + sh:order 3 ; + sh:path cim:NameType.name ; + sh:severity sh:Violation . + +or:NamingAuthority.description-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group or:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "NamingAuthority.description-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path nc:NamingAuthority.description ; + sh:severity sh:Violation . + +ido:IdentifiedObject.shortName-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ido:DatatypesGroupIO ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "IdentifiedObject.shortName-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0.1 ; + sh:path eu:IdentifiedObject.shortName ; + sh:severity sh:Violation . + +or:NamingAuthority.name-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group or:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "NamingAuthority.name-cardinality" ; + sh:order 0 ; + sh:path nc:NamingAuthority.name ; + sh:severity sh:Violation . + +ido:IdentifiedObject.mRID-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ido:DatatypesGroupIO ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "IdentifiedObject.mRID-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.mRID ; + sh:severity sh:Violation . + +or:ObjectType.type-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group or:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "ObjectType.type-cardinality" ; + sh:order 1 ; + sh:path nc:ObjectType.type ; + sh:severity sh:Violation . + +or:NameType.mRID-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group or:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "NameType.mRID-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:NameType.mRID ; + sh:severity sh:Violation . + +or:Name rdf:type sh:NodeShape ; + sh:property ido:Name.IdentifiedObject-cardinality , or:Name.NamingAuthority-cardinality , or:Name.mRID-cardinality , or:Name.name-cardinality , ido:Name.UniqueIdentifiedObject-cardinality , or:Name.mRID-datatype , or:Name.NamingAuthority-valueType , or:Name.language-datatype , or:Name.IdentifiedObject-valueType , or:Name.UniqueIdentifiedObject-valueType , or:Name.language-cardinality , or:Name.NameType-cardinality , or:Name.name-datatype , or:Name.NameType-valueType ; + sh:targetClass cim:Name . + +or:AssociationsGroup rdf:type sh:PropertyGroup ; + rdfs:label "Associations" ; + sh:order 2 . + +or:NamingAuthority.description-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group or:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "NamingAuthority.description-cardinality" ; + sh:order 4 ; + sh:path nc:NamingAuthority.description ; + sh:severity sh:Violation . + +ido:IdentifiedObject.aliasName-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ido:CardinalityIO ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "IdentifiedObject.aliasName-cardinality" ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.aliasName ; + sh:severity sh:Violation . + +or:NameType.mRID-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group or:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "NameType.mRID-cardinality" ; + sh:order 0 ; + sh:path nc:NameType.mRID ; + sh:severity sh:Violation . diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/PowerScheduleProfile_v2_2_SHACL.ttl b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/PowerScheduleProfile_v2_2_SHACL.ttl new file mode 100644 index 0000000000..ca72f38729 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/PowerScheduleProfile_v2_2_SHACL.ttl @@ -0,0 +1,660 @@ +@base . +@prefix adms: . +@prefix cim: . +@prefix cims: . +@prefix dash: . +@prefix dc: . +@prefix dcat: . +@prefix dcterms: . +@prefix dm: . +@prefix eu: . +@prefix eumd: . +@prefix euvoc: . +@prefix ido: . +@prefix md: . +@prefix nc: . +@prefix owl: . +@prefix prof: . +@prefix profcim: . +@prefix prov: . +@prefix ps: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix skos: . +@prefix xsd: . + +ps:BaseTimeSeries.method-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ps:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "BaseTimeSeries.method-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 15 ; + sh:path nc:BaseTimeSeries.method ; + sh:severity sh:Violation . + +ps:PowerSchedule.PowerRemedialAction-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ps:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerSchedule.PowerRemedialAction-cardinality" ; + sh:order 7 ; + sh:path nc:PowerSchedule.PowerRemedialAction ; + sh:severity sh:Violation . + +ps:PowerTimePoint.q-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ps:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerTimePoint.q-cardinality" ; + sh:order 5 ; + sh:path nc:PowerTimePoint.q ; + sh:severity sh:Violation . + +ps:PowerSchedule.EnergyTypeReference-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ps:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerSchedule.EnergyTypeReference-cardinality" ; + sh:order 1 ; + sh:path nc:PowerSchedule.EnergyTypeReference ; + sh:severity sh:Violation . + +ps:PowerSchedule.PowerElectronicsUnit-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ps:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerSchedule.PowerElectronicsUnit-cardinality" ; + sh:order 8 ; + sh:path nc:PowerSchedule.PowerElectronicsUnit ; + sh:severity sh:Violation . + +ps:BaseTimeSeries.method-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ps:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "BaseTimeSeries.method-cardinality" ; + sh:order 15 ; + sh:path nc:BaseTimeSeries.method ; + sh:severity sh:Violation . + +ps:MustRunTimePoint.minQ-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ps:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "MustRunTimePoint.minQ-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:MustRunTimePoint.minQ ; + sh:severity sh:Violation . + +ps:CardinalityGroup rdf:type sh:PropertyGroup ; + rdfs:label "Cardinality" ; + sh:order 0 . + +ps:PowerTimePoint.PowerSchedule-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group ps:AssociationsGroup ; + sh:in ( nc:PowerSchedule ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:PowerSchedule" ; + sh:name "PowerTimePoint.PowerSchedule-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path ( nc:PowerTimePoint.PowerSchedule rdf:type ) ; + sh:severity sh:Violation . + +ido:DatatypesGroupIO rdf:type sh:PropertyGroup ; + rdfs:label "DatatypesIO" ; + sh:order 1 . + +ido:IdentifiedObject.description-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ido:CardinalityIO ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "IdentifiedObject.description-cardinality" ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.description ; + sh:severity sh:Violation . + +ps:MustRunSchedule.DCTieCorridor-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ps:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "MustRunSchedule.DCTieCorridor-cardinality" ; + sh:order 1 ; + sh:path nc:MustRunSchedule.DCTieCorridor ; + sh:severity sh:Violation . + +ps:MustRunTimePoint.atTime-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:dateTime ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ps:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "MustRunTimePoint.atTime-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:MustRunTimePoint.atTime ; + sh:severity sh:Violation . + +ps:MustRunSchedule.GeneratingUnit-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ps:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "MustRunSchedule.GeneratingUnit-cardinality" ; + sh:order 0 ; + sh:path nc:MustRunSchedule.GeneratingUnit ; + sh:severity sh:Violation . + +ps:BaseTimeSeries.interpolationKind-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ps:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "BaseTimeSeries.interpolationKind-cardinality" ; + sh:order 11 ; + sh:path nc:BaseTimeSeries.interpolationKind ; + sh:severity sh:Violation . + +ps:MustRunTimePoint.MustRunSchedule-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group ps:AssociationsGroup ; + sh:in ( nc:MustRunSchedule ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:MustRunSchedule" ; + sh:name "MustRunTimePoint.MustRunSchedule-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path ( nc:MustRunTimePoint.MustRunSchedule rdf:type ) ; + sh:severity sh:Violation . + +ps:PowerTimePoint.atTime-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ps:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerTimePoint.atTime-cardinality" ; + sh:order 4 ; + sh:path nc:PowerTimePoint.atTime ; + sh:severity sh:Violation . + +ido:IdentifiedObject.name-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ido:CardinalityIO ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "IdentifiedObject.name-cardinality" ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.name ; + sh:severity sh:Violation . + +ps:DatatypesGroup rdf:type sh:PropertyGroup ; + rdfs:label "Datatypes" ; + sh:order 1 . + +ido:IdentifiedObject.description-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ido:DatatypesGroupIO ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "IdentifiedObject.description-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.description ; + sh:severity sh:Violation . + +ps:MustRunTimePoint.mustRun-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ps:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "MustRunTimePoint.mustRun-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path nc:MustRunTimePoint.mustRun ; + sh:severity sh:Violation . + +ps:PowerSchedule.GeneratingUnit-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ps:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerSchedule.GeneratingUnit-cardinality" ; + sh:order 3 ; + sh:path nc:PowerSchedule.GeneratingUnit ; + sh:severity sh:Violation . + +ps:BaseTimeSeries.interpolationKind-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ps:DatatypesGroup ; + sh:in ( nc:TimeSeriesInterpolationKind.none nc:TimeSeriesInterpolationKind.zero nc:TimeSeriesInterpolationKind.next nc:TimeSeriesInterpolationKind.linear nc:TimeSeriesInterpolationKind.previous ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "BaseTimeSeries.interpolationKind-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 11 ; + sh:path nc:BaseTimeSeries.interpolationKind ; + sh:severity sh:Violation . + +ps:MustRunTimePoint.minP-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ps:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "MustRunTimePoint.minP-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path nc:MustRunTimePoint.minP ; + sh:severity sh:Violation . + +ps:PowerSchedule.SchedulingArea-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ps:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerSchedule.SchedulingArea-cardinality" ; + sh:order 6 ; + sh:path nc:PowerSchedule.SchedulingArea ; + sh:severity sh:Violation . + +ps:PowerTimePoint.activatedP-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ps:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerTimePoint.activatedP-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 6 ; + sh:path nc:PowerTimePoint.activatedP ; + sh:severity sh:Violation . + +ps:PowerTimePoint.q-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ps:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerTimePoint.q-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 5 ; + sh:path nc:PowerTimePoint.q ; + sh:severity sh:Violation . + +ps:MustRunTimePoint.minP-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ps:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "MustRunTimePoint.minP-cardinality" ; + sh:order 4 ; + sh:path nc:MustRunTimePoint.minP ; + sh:severity sh:Violation . + +ps:PowerTimePoint.activatedPrice-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:decimal ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ps:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerTimePoint.activatedPrice-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:PowerTimePoint.activatedPrice ; + sh:severity sh:Violation . + +ps:MustRunTimePoint.minQ-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ps:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "MustRunTimePoint.minQ-cardinality" ; + sh:order 0 ; + sh:path nc:MustRunTimePoint.minQ ; + sh:severity sh:Violation . + +ps:BaseTimeSeries.generatedAtTime-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:dateTime ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ps:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "BaseTimeSeries.generatedAtTime-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 12 ; + sh:path nc:BaseTimeSeries.generatedAtTime ; + sh:severity sh:Violation . + +ido:IdentifiedObject.name-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ido:DatatypesGroupIO ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "IdentifiedObject.name-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.name ; + sh:severity sh:Violation . + +ps:PowerSchedule.DCTieCorridor-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ps:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerSchedule.DCTieCorridor-cardinality" ; + sh:order 0 ; + sh:path nc:PowerSchedule.DCTieCorridor ; + sh:severity sh:Violation . + +ps:MustRunTimePoint.mustRun-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ps:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "MustRunTimePoint.mustRun-cardinality" ; + sh:order 3 ; + sh:path nc:MustRunTimePoint.mustRun ; + sh:severity sh:Violation . + +ps:BaseTimeSeries.generatedAtTime-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ps:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "BaseTimeSeries.generatedAtTime-cardinality" ; + sh:order 12 ; + sh:path nc:BaseTimeSeries.generatedAtTime ; + sh:severity sh:Violation . + +ido:CardinalityGroup rdf:type sh:PropertyGroup ; + rdfs:label "CardinalityIO" ; + sh:order 0 . + +ps:PowerSchedule.HydroPump-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ps:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerSchedule.HydroPump-cardinality" ; + sh:order 2 ; + sh:path nc:PowerSchedule.HydroPump ; + sh:severity sh:Violation . + +ps:PowerSchedule.BiddingZone-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ps:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerSchedule.BiddingZone-cardinality" ; + sh:order 4 ; + sh:path nc:PowerSchedule.BiddingZone ; + sh:severity sh:Violation . + +ps:PowerTimePoint.p-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ps:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerTimePoint.p-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path nc:PowerTimePoint.p ; + sh:severity sh:Violation . + +ps:MustRunTimePoint.MustRunSchedule-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ps:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "MustRunTimePoint.MustRunSchedule-cardinality" ; + sh:order 2 ; + sh:path nc:MustRunTimePoint.MustRunSchedule ; + sh:severity sh:Violation . + +ps:MustRunTimePoint.atTime-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ps:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "MustRunTimePoint.atTime-cardinality" ; + sh:order 1 ; + sh:path nc:MustRunTimePoint.atTime ; + sh:severity sh:Violation . + +ps:PowerSchedule.EnergyConnection-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ps:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerSchedule.EnergyConnection-cardinality" ; + sh:order 5 ; + sh:path nc:PowerSchedule.EnergyConnection ; + sh:severity sh:Violation . + +ps:PowerTimePoint.activatedP-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ps:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerTimePoint.activatedP-cardinality" ; + sh:order 6 ; + sh:path nc:PowerTimePoint.activatedP ; + sh:severity sh:Violation . + +ido:IdentifiedObject.mRID-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ido:CardinalityIO ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "IdentifiedObject.mRID-cardinality" ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.mRID ; + sh:severity sh:Violation . + +ps:PowerTimePoint.PowerSchedule-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ps:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "PowerTimePoint.PowerSchedule-cardinality" ; + sh:order 1 ; + sh:path nc:PowerTimePoint.PowerSchedule ; + sh:severity sh:Violation . + +ps:PowerTimePoint.atTime-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:dateTime ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ps:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerTimePoint.atTime-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path nc:PowerTimePoint.atTime ; + sh:severity sh:Violation . + +ps:MustRunTimePoint rdf:type sh:NodeShape ; + sh:property ps:MustRunTimePoint.mustRun-cardinality , ps:MustRunTimePoint.MustRunSchedule-valueType , ps:MustRunTimePoint.MustRunSchedule-cardinality , ps:MustRunTimePoint.minP-cardinality , ps:MustRunTimePoint.atTime-cardinality , ps:MustRunTimePoint.minP-datatype , ps:MustRunTimePoint.mustRun-datatype , ps:MustRunTimePoint.minQ-datatype , ps:MustRunTimePoint.minQ-cardinality , ps:MustRunTimePoint.atTime-datatype ; + sh:targetClass nc:MustRunTimePoint . + +ps:PowerTimePoint.price-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:decimal ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ps:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerTimePoint.price-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path nc:PowerTimePoint.price ; + sh:severity sh:Violation . + +ps:MustRunSchedule rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.name-cardinality , ps:BaseTimeSeries.kind-datatype , ps:MustRunSchedule.DCTieCorridor-cardinality , ido:IdentifiedObject.description-cardinality , ps:BaseTimeSeries.method-cardinality , ps:BaseTimeSeries.interpolationKind-cardinality , ido:IdentifiedObject.description-datatype , ps:BaseTimeSeries.percentile-cardinality , ps:BaseTimeSeries.generatedAtTime-datatype , ps:BaseTimeSeries.interpolationKind-datatype , ps:BaseTimeSeries.kind-cardinality , ps:MustRunSchedule.GeneratingUnit-cardinality , ido:IdentifiedObject.mRID-datatype , ps:BaseTimeSeries.percentile-datatype , ps:BaseTimeSeries.generatedAtTime-cardinality , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.name-datatype , ps:BaseTimeSeries.method-datatype ; + sh:targetClass nc:MustRunSchedule . + +ps:BaseTimeSeries.percentile-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ps:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "BaseTimeSeries.percentile-cardinality" ; + sh:order 13 ; + sh:path nc:BaseTimeSeries.percentile ; + sh:severity sh:Violation . + +ps:PowerSchedule rdf:type sh:NodeShape ; + sh:property ps:PowerSchedule.SchedulingArea-cardinality , ps:BaseTimeSeries.kind-cardinality , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.mRID-datatype , ps:BaseTimeSeries.interpolationKind-cardinality , ps:BaseTimeSeries.generatedAtTime-datatype , ps:BaseTimeSeries.interpolationKind-datatype , ps:BaseTimeSeries.kind-datatype , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.description-cardinality , ps:BaseTimeSeries.method-datatype , ido:IdentifiedObject.name-cardinality , ps:BaseTimeSeries.method-cardinality , ps:PowerSchedule.PowerRemedialAction-cardinality , ps:PowerSchedule.BiddingZone-cardinality , ido:IdentifiedObject.description-datatype , ps:BaseTimeSeries.percentile-datatype , ps:PowerSchedule.EnergyConnection-cardinality , ps:PowerSchedule.GeneratingUnit-cardinality , ps:PowerSchedule.AreaDispatchableUnit-cardinality , ps:BaseTimeSeries.generatedAtTime-cardinality , ps:PowerSchedule.EnergyTypeReference-cardinality , ps:PowerSchedule.PowerElectronicsUnit-cardinality , ps:PowerSchedule.HydroPump-cardinality , ps:PowerSchedule.DCTieCorridor-cardinality , ps:BaseTimeSeries.percentile-cardinality ; + sh:targetClass nc:PowerSchedule . + +ps:PowerSchedule.AreaDispatchableUnit-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ps:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerSchedule.AreaDispatchableUnit-cardinality" ; + sh:order 10 ; + sh:path nc:PowerSchedule.AreaDispatchableUnit ; + sh:severity sh:Violation . + +ps:PowerTimePoint.activatedPrice-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ps:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerTimePoint.activatedPrice-cardinality" ; + sh:order 0 ; + sh:path nc:PowerTimePoint.activatedPrice ; + sh:severity sh:Violation . + +ps:AssociationsGroup rdf:type sh:PropertyGroup ; + rdfs:label "Associations" ; + sh:order 2 . + +ido:IdentifiedObject.mRID-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ido:DatatypesGroupIO ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "IdentifiedObject.mRID-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.mRID ; + sh:severity sh:Violation . + +ps:PowerTimePoint.price-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ps:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerTimePoint.price-cardinality" ; + sh:order 2 ; + sh:path nc:PowerTimePoint.price ; + sh:severity sh:Violation . + +ps:BaseTimeSeries.kind-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ps:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "BaseTimeSeries.kind-cardinality" ; + sh:order 14 ; + sh:path nc:BaseTimeSeries.kind ; + sh:severity sh:Violation . + +ps:PowerTimePoint rdf:type sh:NodeShape ; + sh:property ps:PowerTimePoint.p-datatype , ps:PowerTimePoint.q-datatype , ps:PowerTimePoint.activatedPrice-datatype , ps:PowerTimePoint.activatedP-cardinality , ps:PowerTimePoint.price-cardinality , ps:PowerTimePoint.PowerSchedule-cardinality , ps:PowerTimePoint.q-cardinality , ps:PowerTimePoint.price-datatype , ps:PowerTimePoint.activatedP-datatype , ps:PowerTimePoint.p-cardinality , ps:PowerTimePoint.activatedPrice-cardinality , ps:PowerTimePoint.PowerSchedule-valueType , ps:PowerTimePoint.atTime-datatype , ps:PowerTimePoint.atTime-cardinality ; + sh:targetClass nc:PowerTimePoint . + +ps:BaseTimeSeries.percentile-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:integer ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ps:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "BaseTimeSeries.percentile-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 13 ; + sh:path nc:BaseTimeSeries.percentile ; + sh:severity sh:Violation . + +ps:BaseTimeSeries.kind-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ps:DatatypesGroup ; + sh:in ( nc:BaseTimeSeriesKind.actual nc:BaseTimeSeriesKind.forecast nc:BaseTimeSeriesKind.hindcast nc:BaseTimeSeriesKind.schedule ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "BaseTimeSeries.kind-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 14 ; + sh:path nc:BaseTimeSeries.kind ; + sh:severity sh:Violation . + +ps:PowerTimePoint.p-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ps:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerTimePoint.p-cardinality" ; + sh:order 3 ; + sh:path nc:PowerTimePoint.p ; + sh:severity sh:Violation . diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/PowerSystemProjectProfile_v2_2_SHACL.ttl b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/PowerSystemProjectProfile_v2_2_SHACL.ttl new file mode 100644 index 0000000000..a47d78f675 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/PowerSystemProjectProfile_v2_2_SHACL.ttl @@ -0,0 +1,800 @@ +@base . +@prefix adms: . +@prefix cim: . +@prefix cims: . +@prefix dash: . +@prefix dc: . +@prefix dcat: . +@prefix dcterms: . +@prefix dm: . +@prefix eu: . +@prefix eumd: . +@prefix euvoc: . +@prefix ido: . +@prefix md: . +@prefix nc: . +@prefix owl: . +@prefix prof: . +@prefix profcim: . +@prefix prov: . +@prefix psp: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix skos: . +@prefix xsd: . + +psp:Resource.accessRights-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group psp:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Resource.accessRights-cardinality" ; + sh:order 3 ; + sh:path dcterms:Resource.accessRights ; + sh:severity sh:Violation . + +psp:PowerSystemProject.DifferenceModel-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group psp:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerSystemProject.DifferenceModel-cardinality" ; + sh:order 11 ; + sh:path nc:PowerSystemProject.DifferenceModel ; + sh:severity sh:Violation . + +psp:PowerSystemProjectGroup.description-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group psp:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerSystemProjectGroup.description-cardinality" ; + sh:order 1 ; + sh:path dcterms:PowerSystemProjectGroup.description ; + sh:severity sh:Violation . + +psp:Resource.accessRights-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group psp:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Resource.accessRights-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path dcterms:Resource.accessRights ; + sh:severity sh:Violation . + +psp:Resource.hasVersion-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group psp:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Resource.hasVersion-cardinality" ; + sh:order 2 ; + sh:path dcat:Resource.hasVersion ; + sh:severity sh:Violation . + +psp:PowerSystemProject.committed-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:dateTime ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group psp:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerSystemProject.committed-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path nc:PowerSystemProject.committed ; + sh:severity sh:Violation . + +psp:PowerSystemProject.priority-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:integer ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group psp:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerSystemProject.priority-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 14 ; + sh:path nc:PowerSystemProject.priority ; + sh:severity sh:Violation . + +psp:PowerSystemProjectGroup.title-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group psp:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerSystemProjectGroup.title-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path dcterms:PowerSystemProjectGroup.title ; + sh:severity sh:Violation . + +psp:Resource.description-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group psp:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Resource.description-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 6 ; + sh:path dcterms:Resource.description ; + sh:severity sh:Violation . + +psp:Resource.rightsHolder-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group psp:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Resource.rightsHolder-cardinality" ; + sh:order 15 ; + sh:path dcterms:Resource.rightsHolder ; + sh:severity sh:Violation . + +ido:DatatypesGroupIO rdf:type sh:PropertyGroup ; + rdfs:label "DatatypesIO" ; + sh:order 1 . + +psp:PowerSystemProjectGroup.identifier-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:anyURI ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group psp:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerSystemProjectGroup.identifier-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path dcterms:PowerSystemProjectGroup.identifier ; + sh:severity sh:Violation . + +psp:Resource.keyword-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group psp:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Resource.keyword-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 12 ; + sh:path dcat:Resource.keyword ; + sh:severity sh:Violation . + +psp:Resource.version-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group psp:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Resource.version-cardinality" ; + sh:order 8 ; + sh:path dcat:Resource.version ; + sh:severity sh:Violation . + +psp:PowerSystemProject.DifferenceModel-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group psp:AssociationsGroup ; + sh:in ( nc:DifferenceModel ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:DifferenceModel" ; + sh:name "PowerSystemProject.DifferenceModel-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 11 ; + sh:path ( nc:PowerSystemProject.DifferenceModel rdf:type ) ; + sh:severity sh:Violation . + +psp:Resource.isVersionOf-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:anyURI ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group psp:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Resource.isVersionOf-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 13 ; + sh:path dcat:Resource.isVersionOf ; + sh:severity sh:Violation . + +psp:Resource.isVersionOf-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group psp:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "Resource.isVersionOf-cardinality" ; + sh:order 13 ; + sh:path dcat:Resource.isVersionOf ; + sh:severity sh:Violation . + +psp:Resource.version-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group psp:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Resource.version-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 8 ; + sh:path dcat:Resource.version ; + sh:severity sh:Violation . + +psp:CardinalityGroup rdf:type sh:PropertyGroup ; + rdfs:label "Cardinality" ; + sh:order 0 . + +psp:PowerSystemProject.PriorityProject-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group psp:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerSystemProject.PriorityProject-cardinality" ; + sh:order 1 ; + sh:path nc:PowerSystemProject.PriorityProject ; + sh:severity sh:Violation . + +psp:Resource.versionNotes-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group psp:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Resource.versionNotes-cardinality" ; + sh:order 14 ; + sh:path dcat:Resource.versionNotes ; + sh:severity sh:Violation . + +psp:PowerSystemProject.cancelled-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:dateTime ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group psp:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerSystemProject.cancelled-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 12 ; + sh:path nc:PowerSystemProject.cancelled ; + sh:severity sh:Violation . + +psp:Resource.rights-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group psp:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Resource.rights-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 10 ; + sh:path dcterms:Resource.rights ; + sh:severity sh:Violation . + +psp:PowerSystemProject.commissioned-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group psp:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerSystemProject.commissioned-cardinality" ; + sh:order 5 ; + sh:path nc:PowerSystemProject.commissioned ; + sh:severity sh:Violation . + +psp:Resource.creator-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group psp:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Resource.creator-cardinality" ; + sh:order 11 ; + sh:path dcterms:Resource.creator ; + sh:severity sh:Violation . + +psp:PowerSystemProject.DependentOnProject-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group psp:AssociationsGroup ; + sh:in ( nc:PowerSystemProject ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:PowerSystemProject" ; + sh:name "PowerSystemProject.DependentOnProject-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 13 ; + sh:path ( nc:PowerSystemProject.DependentOnProject rdf:type ) ; + sh:severity sh:Violation . + +psp:Resource.publisher-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group psp:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Resource.publisher-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 16 ; + sh:path dcterms:Resource.publisher ; + sh:severity sh:Violation . + +psp:Resource.issued-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group psp:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Resource.issued-cardinality" ; + sh:order 4 ; + sh:path dcterms:Resource.issued ; + sh:severity sh:Violation . + +psp:PowerSystemProject.inBuild-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:dateTime ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group psp:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerSystemProject.inBuild-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 10 ; + sh:path nc:PowerSystemProject.inBuild ; + sh:severity sh:Violation . + +psp:PowerSystemProject.ShadowProject-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group psp:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerSystemProject.ShadowProject-cardinality" ; + sh:order 9 ; + sh:path nc:PowerSystemProject.ShadowProject ; + sh:severity sh:Violation . + +psp:PowerSystemProject.officialExpectedCommissioning-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group psp:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "PowerSystemProject.officialExpectedCommissioning-cardinality" ; + sh:order 7 ; + sh:path nc:PowerSystemProject.officialExpectedCommissioning ; + sh:severity sh:Violation . + +psp:PowerSystemProject.DependentOnProject-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group psp:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerSystemProject.DependentOnProject-cardinality" ; + sh:order 13 ; + sh:path nc:PowerSystemProject.DependentOnProject ; + sh:severity sh:Violation . + +psp:DatatypesGroup rdf:type sh:PropertyGroup ; + rdfs:label "Datatypes" ; + sh:order 1 . + +psp:Resource.modified-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group psp:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Resource.modified-cardinality" ; + sh:order 9 ; + sh:path dcterms:Resource.modified ; + sh:severity sh:Violation . + +psp:DifferenceModel rdf:type sh:NodeShape ; + sh:property psp:Resource.identifier-cardinality , psp:Resource.rightsHolder-datatype , psp:Resource.creator-cardinality , psp:Resource.modified-cardinality , psp:Resource.conformsTo-datatype , psp:Resource.title-cardinality , psp:Resource.publisher-datatype , psp:Resource.identifier-datatype , psp:Resource.description-datatype , psp:Resource.publisher-cardinality , psp:Resource.license-cardinality , psp:Resource.isVersionOf-cardinality , psp:Resource.isVersionOf-datatype , psp:Resource.hasVersion-cardinality , psp:Resource.issued-cardinality , psp:Resource.license-datatype , psp:Resource.versionNotes-cardinality , psp:Resource.version-cardinality , psp:Resource.title-datatype , psp:Resource.issued-datatype , psp:Resource.accessRights-cardinality , psp:Resource.versionNotes-datatype , psp:Resource.rights-cardinality , psp:Resource.keyword-cardinality , psp:Resource.hasVersion-datatype , psp:Resource.accessRights-datatype , psp:Resource.keyword-datatype , psp:Resource.rights-datatype , psp:Resource.version-datatype , psp:Resource.creator-datatype , psp:Resource.description-cardinality , psp:Resource.modified-datatype , psp:Resource.rightsHolder-cardinality ; + sh:targetClass nc:DifferenceModel . + +psp:PowerSystemProject.priority-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group psp:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerSystemProject.priority-cardinality" ; + sh:order 14 ; + sh:path nc:PowerSystemProject.priority ; + sh:severity sh:Violation . + +psp:PowerSystemProjectGroup.identifier-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group psp:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "PowerSystemProjectGroup.identifier-cardinality" ; + sh:order 2 ; + sh:path dcterms:PowerSystemProjectGroup.identifier ; + sh:severity sh:Violation . + +psp:PowerSystemProject.committed-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group psp:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerSystemProject.committed-cardinality" ; + sh:order 3 ; + sh:path nc:PowerSystemProject.committed ; + sh:severity sh:Violation . + +ido:CardinalityGroup rdf:type sh:PropertyGroup ; + rdfs:label "CardinalityIO" ; + sh:order 0 . + +psp:AssociationsGroup + rdf:type sh:PropertyGroup ; + rdfs:label "Associations" ; + sh:order 2 . + +psp:Resource.keyword-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group psp:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Resource.keyword-cardinality" ; + sh:order 12 ; + sh:path dcat:Resource.keyword ; + sh:severity sh:Violation . + +psp:Resource.issued-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:dateTime ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group psp:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Resource.issued-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path dcterms:Resource.issued ; + sh:severity sh:Violation . + +psp:PowerSystemProject.ShadowProject-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group psp:AssociationsGroup ; + sh:in ( nc:PowerSystemProject ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:PowerSystemProject" ; + sh:name "PowerSystemProject.ShadowProject-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 9 ; + sh:path ( nc:PowerSystemProject.ShadowProject rdf:type ) ; + sh:severity sh:Violation . + +psp:PowerSystemProject.inPlan-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group psp:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerSystemProject.inPlan-cardinality" ; + sh:order 2 ; + sh:path nc:PowerSystemProject.inPlan ; + sh:severity sh:Violation . + +psp:PowerSystemProject + rdf:type sh:NodeShape ; + sh:property psp:PowerSystemProject.committed-cardinality , psp:Resource.creator-cardinality , psp:PowerSystemProject.DependentOnProject-cardinality , psp:PowerSystemProject.ProjectGroup-cardinality , psp:PowerSystemProject.ProjectGroup-valueType , psp:Resource.isVersionOf-cardinality , psp:Resource.versionNotes-cardinality , psp:Resource.hasVersion-cardinality , psp:Resource.conformsTo-datatype , psp:Resource.title-cardinality , psp:PowerSystemProject.ShadowProject-valueType , psp:Resource.identifier-datatype , psp:Resource.hasVersion-datatype , psp:PowerSystemProject.priority-cardinality , psp:PowerSystemProject.officialExpectedCommissioning-cardinality , psp:Resource.modified-datatype , psp:PowerSystemProject.cancelled-datatype , psp:PowerSystemProject.commissioned-cardinality , psp:Resource.title-datatype , psp:PowerSystemProject.inBuild-cardinality , psp:PowerSystemProject.DifferenceModel-valueType , psp:Resource.license-datatype , psp:Resource.version-datatype , psp:PowerSystemProject.DependentOnProject-valueType , psp:PowerSystemProject.committed-datatype , psp:PowerSystemProject.inBuild-datatype , psp:Resource.keyword-cardinality , psp:Resource.accessRights-cardinality , psp:PowerSystemProject.DifferenceModel-cardinality , psp:Resource.version-cardinality , psp:Resource.description-cardinality , psp:Resource.issued-datatype , psp:PowerSystemProject.AvailabilitySchedule-cardinality , psp:Resource.accessRights-datatype , psp:Resource.rightsHolder-datatype , psp:Resource.rightsHolder-cardinality , psp:PowerSystemProject.commissioned-datatype , psp:PowerSystemProject.cancelled-cardinality , psp:PowerSystemProject.inPlan-datatype , psp:Resource.isVersionOf-datatype , psp:Resource.modified-cardinality , psp:Resource.license-cardinality , psp:Resource.publisher-cardinality , psp:Resource.rights-cardinality , psp:PowerSystemProject.inPlan-cardinality , psp:Resource.publisher-datatype , psp:Resource.versionNotes-datatype , psp:Resource.issued-cardinality , psp:Resource.keyword-datatype , psp:Resource.description-datatype , psp:PowerSystemProject.PriorityProject-cardinality , psp:PowerSystemProject.ShadowProject-cardinality , psp:Resource.rights-datatype , psp:Resource.creator-datatype , psp:PowerSystemProject.PriorityProject-valueType , psp:PowerSystemProject.officialExpectedCommissioning-datatype , psp:Resource.identifier-cardinality , psp:PowerSystemProject.priority-datatype ; + sh:targetClass nc:PowerSystemProject . + +psp:Resource.title-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group psp:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Resource.title-cardinality" ; + sh:order 5 ; + sh:path dcterms:Resource.title ; + sh:severity sh:Violation . + +psp:Resource.license-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group psp:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Resource.license-cardinality" ; + sh:order 1 ; + sh:path dcterms:Resource.license ; + sh:severity sh:Violation . + +psp:Resource.license-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group psp:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Resource.license-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path dcterms:Resource.license ; + sh:severity sh:Violation . + +psp:PowerSystemProjectGroup + rdf:type sh:NodeShape ; + sh:property psp:PowerSystemProjectGroup.identifier-datatype , psp:PowerSystemProjectGroup.identifier-cardinality , psp:PowerSystemProjectGroup.description-datatype , psp:PowerSystemProjectGroup.description-cardinality , psp:PowerSystemProjectGroup.title-datatype , psp:PowerSystemProjectGroup.title-cardinality ; + sh:targetClass nc:PowerSystemProjectGroup . + +psp:Resource.identifier-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group psp:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Resource.identifier-cardinality" ; + sh:order 17 ; + sh:path dcterms:Resource.identifier ; + sh:severity sh:Violation . + +psp:Resource.description-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group psp:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Resource.description-cardinality" ; + sh:order 6 ; + sh:path dcterms:Resource.description ; + sh:severity sh:Violation . + +psp:Resource.rights-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group psp:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Resource.rights-cardinality" ; + sh:order 10 ; + sh:path dcterms:Resource.rights ; + sh:severity sh:Violation . + +psp:PowerSystemProject.PriorityProject-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group psp:AssociationsGroup ; + sh:in ( nc:PowerSystemProject ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:PowerSystemProject" ; + sh:name "PowerSystemProject.PriorityProject-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path ( nc:PowerSystemProject.PriorityProject rdf:type ) ; + sh:severity sh:Violation . + +psp:Resource.identifier-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:anyURI ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group psp:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Resource.identifier-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 17 ; + sh:path dcterms:Resource.identifier ; + sh:severity sh:Violation . + +psp:PowerSystemProject.cancelled-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group psp:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerSystemProject.cancelled-cardinality" ; + sh:order 12 ; + sh:path nc:PowerSystemProject.cancelled ; + sh:severity sh:Violation . + +psp:PowerSystemProject.commissioned-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:dateTime ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group psp:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerSystemProject.commissioned-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 5 ; + sh:path nc:PowerSystemProject.commissioned ; + sh:severity sh:Violation . + +psp:PowerSystemProject.ProjectGroup-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group psp:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerSystemProject.ProjectGroup-cardinality" ; + sh:order 8 ; + sh:path nc:PowerSystemProject.ProjectGroup ; + sh:severity sh:Violation . + +psp:Resource.modified-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:date ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group psp:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Resource.modified-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 9 ; + sh:path dcterms:Resource.modified ; + sh:severity sh:Violation . + +psp:Resource.creator-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group psp:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Resource.creator-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 11 ; + sh:path dcterms:Resource.creator ; + sh:severity sh:Violation . + +psp:PowerSystemProject.AvailabilitySchedule-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group psp:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerSystemProject.AvailabilitySchedule-cardinality" ; + sh:order 6 ; + sh:path nc:PowerSystemProject.AvailabilitySchedule ; + sh:severity sh:Violation . + +psp:Resource.rightsHolder-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group psp:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Resource.rightsHolder-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 15 ; + sh:path dcterms:Resource.rightsHolder ; + sh:severity sh:Violation . + +psp:Resource.hasVersion-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:anyURI ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group psp:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Resource.hasVersion-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path dcat:Resource.hasVersion ; + sh:severity sh:Violation . + +psp:Resource.title-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group psp:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Resource.title-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 5 ; + sh:path dcterms:Resource.title ; + sh:severity sh:Violation . + +psp:PowerSystemProject.ProjectGroup-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group psp:AssociationsGroup ; + sh:in ( nc:PowerSystemProjectGroup ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:PowerSystemProjectGroup" ; + sh:name "PowerSystemProject.ProjectGroup-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 8 ; + sh:path ( nc:PowerSystemProject.ProjectGroup rdf:type ) ; + sh:severity sh:Violation . + +psp:PowerSystemProjectGroup.description-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group psp:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerSystemProjectGroup.description-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path dcterms:PowerSystemProjectGroup.description ; + sh:severity sh:Violation . + +psp:Resource.versionNotes-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group psp:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Resource.versionNotes-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 14 ; + sh:path dcat:Resource.versionNotes ; + sh:severity sh:Violation . + +psp:PowerSystemProjectGroup.title-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group psp:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "PowerSystemProjectGroup.title-cardinality" ; + sh:order 0 ; + sh:path dcterms:PowerSystemProjectGroup.title ; + sh:severity sh:Violation . + +psp:PowerSystemProject.officialExpectedCommissioning-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:dateTime ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group psp:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerSystemProject.officialExpectedCommissioning-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 7 ; + sh:path nc:PowerSystemProject.officialExpectedCommissioning ; + sh:severity sh:Violation . + +psp:PowerSystemProject.inBuild-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group psp:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerSystemProject.inBuild-cardinality" ; + sh:order 10 ; + sh:path nc:PowerSystemProject.inBuild ; + sh:severity sh:Violation . + +psp:Resource.publisher-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group psp:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Resource.publisher-cardinality" ; + sh:order 16 ; + sh:path dcterms:Resource.publisher ; + sh:severity sh:Violation . + +psp:Resource.conformsTo-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:anyURI ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group psp:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Resource.conformsTo-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 7 ; + sh:path dcterms:Resource.conformsTo ; + sh:severity sh:Violation . + +psp:PowerSystemProject.inPlan-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:dateTime ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group psp:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerSystemProject.inPlan-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path nc:PowerSystemProject.inPlan ; + sh:severity sh:Violation . diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/RemedialActionProfile_v2_2_SHACL.ttl b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/RemedialActionProfile_v2_2_SHACL.ttl new file mode 100644 index 0000000000..27a4f1a4ea --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/RemedialActionProfile_v2_2_SHACL.ttl @@ -0,0 +1,2320 @@ +@base . +@prefix adms: . +@prefix cim: . +@prefix cims: . +@prefix dash: . +@prefix dc: . +@prefix dcat: . +@prefix dcterms: . +@prefix dm: . +@prefix eu: . +@prefix eumd: . +@prefix euvoc: . +@prefix ido: . +@prefix md: . +@prefix nc: . +@prefix owl: . +@prefix prof: . +@prefix profcim: . +@prefix prov: . +@prefix ra: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix skos: . +@prefix xsd: . + +ra:CountertradeRemedialAction.gLSKStrategy-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ra:DatatypesGroup ; + sh:in ( nc:GLSKStrategyKind.generatorFlat nc:GLSKStrategyKind.loadFlat nc:GLSKStrategyKind.proportionalForLoad nc:GLSKStrategyKind.proportionalForGenerator nc:GLSKStrategyKind.explicitSchedule nc:GLSKStrategyKind.proportionalForRemainingCapacity nc:GLSKStrategyKind.proportionalForGeneratorAndLoad nc:GLSKStrategyKind.explicitInstruction nc:GLSKStrategyKind.generatorPmax ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "CountertradeRemedialAction.gLSKStrategy-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path nc:CountertradeRemedialAction.gLSKStrategy ; + sh:severity sh:Violation . + +ra:PinTerminal.kind-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "PinTerminal.kind-cardinality" ; + sh:order 0 ; + sh:path nc:PinTerminal.kind ; + sh:severity sh:Violation . + +ra:GateInputPin.thresholdPercentage-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ra:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "GateInputPin.thresholdPercentage-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 7 ; + sh:path nc:GateInputPin.thresholdPercentage ; + sh:severity sh:Violation . + +ra:PinPowerTransferCorridor.kind-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ra:DatatypesGroup ; + sh:in ( nc:PinPowerTransferCorridorKind.reactivePower nc:PinPowerTransferCorridorKind.activePower ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "PinPowerTransferCorridor.kind-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path nc:PinPowerTransferCorridor.kind ; + sh:severity sh:Violation . + +ra:ContingencyWithRemedialAction.mRID-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ra:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "ContingencyWithRemedialAction.mRID-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path nc:ContingencyWithRemedialAction.mRID ; + sh:severity sh:Violation . + +ra:TriggerCondition.RemedialActionScheme-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "TriggerCondition.RemedialActionScheme-cardinality" ; + sh:order 1 ; + sh:path nc:TriggerCondition.RemedialActionScheme ; + sh:severity sh:Violation . + +ra:PinMeasurement.MeasurementCalculator-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group ra:AssociationsGroup ; + sh:in ( nc:MeasurementCalculator ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:MeasurementCalculator" ; + sh:name "PinMeasurement.MeasurementCalculator-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path ( nc:PinMeasurement.MeasurementCalculator rdf:type ) ; + sh:severity sh:Violation . + +ra:PinTerminalLimit.kind-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "PinTerminalLimit.kind-cardinality" ; + sh:order 1 ; + sh:path nc:PinTerminalLimit.kind ; + sh:severity sh:Violation . + +ra:MeasurementCalculatorInput.MeasurementCalculator-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "MeasurementCalculatorInput.MeasurementCalculator-cardinality" ; + sh:order 2 ; + sh:path nc:MeasurementCalculatorInput.MeasurementCalculator ; + sh:severity sh:Violation . + +ra:RemedialActionDependency + rdf:type sh:NodeShape ; + sh:property ra:RemedialActionDependency.normalEnabled-datatype , ra:RemedialActionDependency.kind-datatype , ra:RemedialActionDependency.kind-cardinality , ra:RemedialActionDependency.mRID-cardinality , ra:RemedialActionDependency.DependingRemedialActionGroup-cardinality , ra:RemedialActionDependency.RemedialAction-cardinality , ra:RemedialActionDependency.DependingRemedialActionGroup-valueType , ra:RemedialActionDependency.normalEnabled-cardinality , ra:RemedialActionDependency.mRID-datatype ; + sh:targetClass nc:RemedialActionDependency . + +ra:GridStateAlteration.minimumActivation-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:duration ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ra:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "GridStateAlteration.minimumActivation-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:GridStateAlteration.minimumActivation ; + sh:severity sh:Violation . + +ra:CountertradeRemedialAction + rdf:type sh:NodeShape ; + sh:property ra:RemedialAction.isManual-cardinality , ra:RemedialAction.kind-cardinality , ra:RemedialAction.AppointedToRegion-cardinality , ido:IdentifiedObject.mRID-cardinality , ra:CountertradeRemedialAction.shiftMethod-datatype , ra:CountertradeRemedialAction.maxEconomicP-datatype , ra:RemedialAction.timeToImplement-datatype , ra:RemedialAction.kind-datatype , ra:RemedialAction.RemedialActionSystemOperator-cardinality , ido:IdentifiedObject.description-datatype , ra:RemedialAction.timeToImplement-cardinality , ra:RemedialAction.penaltyFactor-datatype , ra:RemedialAction.impactThresholdMargin-datatype , ido:IdentifiedObject.description-cardinality , ra:RemedialAction.normalAvailable-datatype , ra:CountertradeRemedialAction.gLSKStrategy-datatype , ra:CountertradeRemedialAction.gLSKStrategy-cardinality , ido:IdentifiedObject.name-datatype , ra:CountertradeRemedialAction.minEconomicP-cardinality , ra:RemedialAction.isCrossBorderRelevant-cardinality , ra:RemedialAction.impactThresholdMargin-cardinality , ido:IdentifiedObject.name-cardinality , ra:CountertradeRemedialAction.maxEconomicP-cardinality , ra:CountertradeRemedialAction.minEconomicP-datatype , ra:RemedialAction.isManual-datatype , ra:RemedialAction.normalAvailable-cardinality , ido:IdentifiedObject.mRID-datatype , ra:RemedialAction.isCrossBorderRelevant-datatype , ra:RemedialAction.penaltyFactor-cardinality , ra:CountertradeRemedialAction.shiftMethod-cardinality , ra:PowerRemedialAction.BiddingZone-cardinality ; + sh:targetClass nc:CountertradeRemedialAction . + +ra:GateInputPin.absoluteValue-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ra:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "GateInputPin.absoluteValue-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 5 ; + sh:path nc:GateInputPin.absoluteValue ; + sh:severity sh:Violation . + +ra:RemedialAction.kind-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "RemedialAction.kind-cardinality" ; + sh:order 11 ; + sh:path nc:RemedialAction.kind ; + sh:severity sh:Violation . + +ra:TriggerCondition.GateTrigger-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "TriggerCondition.GateTrigger-cardinality" ; + sh:order 0 ; + sh:path nc:TriggerCondition.GateTrigger ; + sh:severity sh:Violation . + +ra:RemedialAction.timeToImplement-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "RemedialAction.timeToImplement-cardinality" ; + sh:order 14 ; + sh:path nc:RemedialAction.timeToImplement ; + sh:severity sh:Violation . + +ra:RangeConstraint.valueKind-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ra:DatatypesGroup ; + sh:in ( nc:ValueOffsetKind.absolute nc:ValueOffsetKind.incrementalPercentage nc:ValueOffsetKind.incremental ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "RangeConstraint.valueKind-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path nc:RangeConstraint.valueKind ; + sh:severity sh:Violation . + +ra:PinDCTerminal rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.name-datatype , ra:GateInputPin.Gate-cardinality , ra:GateInputPin.isValuePreFault-datatype , ra:GateInputPin.logicKind-datatype , ido:IdentifiedObject.mRID-cardinality , ra:GateInputPin.thresholdPercentage-cardinality , ra:GateInputPin.absoluteValue-cardinality , ra:GateInputPin.isValuePreFault-cardinality , ra:PinDCTerminal.kind-cardinality , ido:IdentifiedObject.description-datatype , ra:PinDCTerminal.DCTerminal-cardinality , ra:GateInputPin.Gate-valueType , ra:GateInputPin.logicKind-cardinality , ido:IdentifiedObject.name-cardinality , ra:GateInputPin.duration-datatype , ido:IdentifiedObject.mRID-datatype , ra:GateInputPin.thresholdValue-datatype , ra:GateInputPin.thresholdValue-cardinality , ra:PinDCTerminal.kind-datatype , ra:GateInputPin.negate-cardinality , ra:GateInputPin.negate-datatype , ra:GateInputPin.absoluteValue-datatype , ra:GateInputPin.thresholdPercentage-datatype , ra:GateInputPin.duration-cardinality ; + sh:targetClass nc:PinDCTerminal . + +ra:GateInputPin.negate-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "GateInputPin.negate-cardinality" ; + sh:order 1 ; + sh:path nc:GateInputPin.negate ; + sh:severity sh:Violation . + +ra:ContingencyWithRemedialAction.RemedialAction-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group ra:AssociationsGroup ; + sh:in ( nc:AvailabilityRemedialAction nc:SchemeRemedialAction nc:GridStateAlterationRemedialAction nc:RedispatchRemedialAction nc:CountertradeRemedialAction ) ; + sh:message "One of the following occurs: 1) The value type is not IRI; 2) The value type is not the right class." ; + sh:name "ContingencyWithRemedialAction.RemedialAction-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path ( nc:ContingencyWithRemedialAction.RemedialAction rdf:type ) ; + sh:severity sh:Violation . + +ra:RangeConstraint.valueKind-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "RangeConstraint.valueKind-cardinality" ; + sh:order 1 ; + sh:path nc:RangeConstraint.valueKind ; + sh:severity sh:Violation . + +ra:PinEquipmentTripping.Equipment-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "PinEquipmentTripping.Equipment-cardinality" ; + sh:order 0 ; + sh:path nc:PinEquipmentTripping.Equipment ; + sh:severity sh:Violation . + +ra:RemedialActionScheme.kind-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ra:DatatypesGroup ; + sh:in ( nc:RemedialActionSchemeKind.sips nc:RemedialActionSchemeKind.rasp ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "RemedialActionScheme.kind-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path nc:RemedialActionScheme.kind ; + sh:severity sh:Violation . + +ra:Stage.priority-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "Stage.priority-cardinality" ; + sh:order 1 ; + sh:path nc:Stage.priority ; + sh:severity sh:Violation . + +ra:StaticVarCompensatorAction + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.name-cardinality , ra:GridStateAlteration.normalEnabled-cardinality , ra:GridStateAlteration.timePerStage-cardinality , ido:IdentifiedObject.mRID-cardinality , ra:GridStateAlteration.GridStateAlterationRemedialAction-cardinality , ra:GridStateAlteration.GridStateAlterationRemedialAction-valueType , ra:GridStateAlteration.maximumPerDay-cardinality , ido:IdentifiedObject.description-datatype , ra:GridStateAlteration.GridStateAlterationCollection-valueType , ra:GridStateAlteration.normalEnabled-datatype , ra:GridStateAlteration.minimumActivation-datatype , ra:GridStateAlteration.PropertyReference-cardinality , ido:IdentifiedObject.name-datatype , ra:StaticVarCompensatorAction.StaticVarCompensator-cardinality , ido:IdentifiedObject.description-cardinality , ra:GridStateAlteration.timePerStage-datatype , ra:GridStateAlteration.GridStateAlterationCollection-cardinality , ido:IdentifiedObject.mRID-datatype , ra:GridStateAlteration.minimumActivation-cardinality , ra:GridStateAlteration.maximumPerDay-datatype ; + sh:targetClass nc:StaticVarCompensatorAction . + +ra:CountertradeRemedialAction.maxEconomicP-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "CountertradeRemedialAction.maxEconomicP-cardinality" ; + sh:order 1 ; + sh:path nc:CountertradeRemedialAction.maxEconomicP ; + sh:severity sh:Violation . + +ra:StaticPropertyRange.PropertyReference-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "StaticPropertyRange.PropertyReference-cardinality" ; + sh:order 0 ; + sh:path nc:StaticPropertyRange.PropertyReference ; + sh:severity sh:Violation . + +ra:Substation rdf:type sh:NodeShape ; + sh:targetClass cim:Substation . + +ra:AvailabilityRemedialAction + rdf:type sh:NodeShape ; + sh:property ra:RemedialAction.normalAvailable-cardinality , ra:RemedialAction.normalAvailable-datatype , ra:RemedialAction.timeToImplement-cardinality , ra:RemedialAction.RemedialActionSystemOperator-cardinality , ido:IdentifiedObject.name-datatype , ra:RemedialAction.impactThresholdMargin-datatype , ido:IdentifiedObject.name-cardinality , ra:RemedialAction.timeToImplement-datatype , ido:IdentifiedObject.description-cardinality , ra:RemedialAction.isCrossBorderRelevant-cardinality , ra:RemedialAction.impactThresholdMargin-cardinality , ra:RemedialAction.isManual-datatype , ra:RemedialAction.penaltyFactor-datatype , ra:RemedialAction.isManual-cardinality , ra:RemedialAction.kind-datatype , ra:RemedialAction.AppointedToRegion-cardinality , ra:RemedialAction.isCrossBorderRelevant-datatype , ra:RemedialAction.penaltyFactor-cardinality , ra:RemedialAction.kind-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.mRID-cardinality ; + sh:targetClass nc:AvailabilityRemedialAction . + +ra:CountertradeRemedialAction.minEconomicP-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ra:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "CountertradeRemedialAction.minEconomicP-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path nc:CountertradeRemedialAction.minEconomicP ; + sh:severity sh:Violation . + +ra:ContingencyWithRemedialAction.RemedialAction-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "ContingencyWithRemedialAction.RemedialAction-cardinality" ; + sh:order 1 ; + sh:path nc:ContingencyWithRemedialAction.RemedialAction ; + sh:severity sh:Violation . + +ra:IntertemporalPropertyRange + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.name-cardinality , ra:RangeConstraint.normalValue-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.description-cardinality , ra:RangeConstraint.valueKind-cardinality , ra:RangeConstraint.direction-datatype , ido:IdentifiedObject.mRID-datatype , ra:RangeConstraint.valueKind-datatype , ido:IdentifiedObject.name-datatype , ra:RangeConstraint.normalValue-datatype , ra:RangeConstraint.GridStateAlteration-cardinality , ra:RangeConstraint.direction-cardinality ; + sh:targetClass nc:IntertemporalPropertyRange . + +ra:PinPowerTransferCorridor.PowerTransferCorridor-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "PinPowerTransferCorridor.PowerTransferCorridor-cardinality" ; + sh:order 0 ; + sh:path nc:PinPowerTransferCorridor.PowerTransferCorridor ; + sh:severity sh:Violation . + +ra:RemedialAction.AppointedToRegion-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "RemedialAction.AppointedToRegion-cardinality" ; + sh:order 5 ; + sh:path nc:RemedialAction.AppointedToRegion ; + sh:severity sh:Violation . + +ra:RotatingMachineAction + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.name-datatype , ra:GridStateAlteration.GridStateAlterationCollection-cardinality , ido:IdentifiedObject.description-datatype , ra:GridStateAlteration.minimumActivation-cardinality , ido:IdentifiedObject.description-cardinality , ra:GridStateAlteration.normalEnabled-datatype , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.mRID-datatype , ra:GridStateAlteration.GridStateAlterationCollection-valueType , ra:GridStateAlteration.maximumPerDay-cardinality , ra:GridStateAlteration.timePerStage-datatype , ra:GridStateAlteration.normalEnabled-cardinality , ido:IdentifiedObject.mRID-cardinality , ra:GridStateAlteration.minimumActivation-datatype , ra:GridStateAlteration.GridStateAlterationRemedialAction-valueType , ra:GridStateAlteration.GridStateAlterationRemedialAction-cardinality , ra:RotatingMachineAction.RotatingMachine-cardinality , ra:GridStateAlteration.PropertyReference-cardinality , ra:GridStateAlteration.timePerStage-cardinality , ra:GridStateAlteration.maximumPerDay-datatype ; + sh:targetClass nc:RotatingMachineAction . + +ra:Stage rdf:type sh:NodeShape ; + sh:property ra:Stage.GridStateAlterationCollection-cardinality , ra:Stage.RemedialActionScheme-valueType , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.mRID-cardinality , ra:Stage.GridStateAlterationCollection-valueType , ra:Stage.RemedialActionScheme-cardinality , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.description-cardinality , ra:Stage.priority-datatype , ido:IdentifiedObject.name-datatype , ra:Stage.priority-cardinality ; + sh:targetClass nc:Stage . + +ra:StageTrigger.GateTrigger-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group ra:AssociationsGroup ; + sh:in ( nc:Gate ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:Gate" ; + sh:name "StageTrigger.GateTrigger-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 5 ; + sh:path ( nc:StageTrigger.GateTrigger rdf:type ) ; + sh:severity sh:Violation . + +ra:RemedialActionGroup + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.description-cardinality ; + sh:targetClass nc:RemedialActionGroup . + +ra:PTCActivePowerSupport + rdf:type sh:NodeShape ; + sh:property ra:PTCActivePowerSupport.maximum-datatype , ra:PTCActivePowerSupport.maximum-cardinality , ra:PTCActivePowerSupport.RemedialActionScheme-valueType , ra:PTCActivePowerSupport.RemedialActionScheme-cardinality , ra:PTCActivePowerSupport.PowerTransferCorridor-cardinality , ra:PTCActivePowerSupport.normal-datatype , ra:PTCActivePowerSupport.normal-cardinality ; + sh:targetClass nc:PTCActivePowerSupport . + +ra:LoadAction rdf:type sh:NodeShape ; + sh:property ra:GridStateAlteration.GridStateAlterationRemedialAction-cardinality , ido:IdentifiedObject.mRID-cardinality , ra:GridStateAlteration.minimumActivation-datatype , ra:GridStateAlteration.maximumPerDay-datatype , ido:IdentifiedObject.name-datatype , ra:LoadAction.EnergyConsumer-cardinality , ra:GridStateAlteration.normalEnabled-cardinality , ido:IdentifiedObject.description-cardinality , ra:GridStateAlteration.GridStateAlterationCollection-valueType , ra:GridStateAlteration.GridStateAlterationRemedialAction-valueType , ra:GridStateAlteration.minimumActivation-cardinality , ra:GridStateAlteration.timePerStage-datatype , ra:GridStateAlteration.timePerStage-cardinality , ido:IdentifiedObject.mRID-datatype , ra:GridStateAlteration.PropertyReference-cardinality , ra:GridStateAlteration.GridStateAlterationCollection-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.name-cardinality , ra:GridStateAlteration.maximumPerDay-cardinality , ra:GridStateAlteration.normalEnabled-datatype ; + sh:targetClass nc:LoadAction . + +ra:MeasurementCalculatorInput.absoluteValue-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ra:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "MeasurementCalculatorInput.absoluteValue-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:MeasurementCalculatorInput.absoluteValue ; + sh:severity sh:Violation . + +ra:RangeConstraint.GridStateAlteration-valueTypeNodeShape + rdf:type sh:NodeShape ; + sh:property ra:RangeConstraint.GridStateAlteration-valueType ; + sh:targetClass nc:IntertemporalPropertyRange , nc:StaticPropertyRange . + +ra:RemedialActionDependency.DependingRemedialActionGroup-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group ra:AssociationsGroup ; + sh:in ( nc:RemedialActionGroup ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:RemedialActionGroup" ; + sh:name "RemedialActionDependency.DependingRemedialActionGroup-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path ( nc:RemedialActionDependency.DependingRemedialActionGroup rdf:type ) ; + sh:severity sh:Violation . + +ra:CountertradeRemedialAction.shiftMethod-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "CountertradeRemedialAction.shiftMethod-cardinality" ; + sh:order 0 ; + sh:path nc:CountertradeRemedialAction.shiftMethod ; + sh:severity sh:Violation . + +ra:PinTerminalLimit.kind-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ra:DatatypesGroup ; + sh:in ( nc:PinTerminalLimitKind.currentLimit nc:PinTerminalLimitKind.voltageAngleLimit nc:PinTerminalLimitKind.voltageLimit nc:PinTerminalLimitKind.apparentPowerLimit nc:PinTerminalLimitKind.activePowerLimit ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "PinTerminalLimit.kind-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path nc:PinTerminalLimit.kind ; + sh:severity sh:Violation . + +ra:RangeConstraint.normalValue-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ra:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "RangeConstraint.normalValue-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path nc:RangeConstraint.normalValue ; + sh:severity sh:Violation . + +ra:PTCActivePowerSupport.maximum-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "PTCActivePowerSupport.maximum-cardinality" ; + sh:order 3 ; + sh:path nc:PTCActivePowerSupport.maximum ; + sh:severity sh:Violation . + +ra:CountertradeRemedialAction.maxEconomicP-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ra:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "CountertradeRemedialAction.maxEconomicP-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:CountertradeRemedialAction.maxEconomicP ; + sh:severity sh:Violation . + +ra:CardinalityGroup rdf:type sh:PropertyGroup ; + rdfs:label "Cardinality" ; + sh:order 0 . + +ra:Gate.kind-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "Gate.kind-cardinality" ; + sh:order 1 ; + sh:path nc:Gate.kind ; + sh:severity sh:Violation . + +ra:TapPositionAction rdf:type sh:NodeShape ; + sh:property ra:GridStateAlteration.maximumPerDay-datatype , ra:GridStateAlteration.GridStateAlterationRemedialAction-valueType , ra:GridStateAlteration.GridStateAlterationRemedialAction-cardinality , ido:IdentifiedObject.description-cardinality , ra:GridStateAlteration.timePerStage-cardinality , ra:GridStateAlteration.PropertyReference-cardinality , ra:GridStateAlteration.timePerStage-datatype , ra:GridStateAlteration.GridStateAlterationCollection-cardinality , ra:GridStateAlteration.normalEnabled-cardinality , ra:GridStateAlteration.maximumPerDay-cardinality , ra:GridStateAlteration.minimumActivation-datatype , ido:IdentifiedObject.name-cardinality , ra:GridStateAlteration.GridStateAlterationCollection-valueType , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.description-datatype , ra:GridStateAlteration.normalEnabled-datatype , ra:TapPositionAction.TapChanger-cardinality , ido:IdentifiedObject.mRID-cardinality , ra:GridStateAlteration.minimumActivation-cardinality ; + sh:targetClass nc:TapPositionAction . + +ra:EquivalentInjectionAction + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.description-datatype , ra:GridStateAlteration.minimumActivation-cardinality , ra:GridStateAlteration.PropertyReference-cardinality , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.name-cardinality , ra:GridStateAlteration.normalEnabled-datatype , ra:GridStateAlteration.minimumActivation-datatype , ra:EquivalentInjectionAction.EquivalentInjection-cardinality , ra:GridStateAlteration.maximumPerDay-cardinality , ra:GridStateAlteration.GridStateAlterationRemedialAction-cardinality , ra:GridStateAlteration.maximumPerDay-datatype , ido:IdentifiedObject.mRID-datatype , ra:GridStateAlteration.timePerStage-datatype , ra:GridStateAlteration.timePerStage-cardinality , ra:GridStateAlteration.normalEnabled-cardinality , ido:IdentifiedObject.description-cardinality , ra:GridStateAlteration.GridStateAlterationCollection-valueType , ra:GridStateAlteration.GridStateAlterationCollection-cardinality , ra:GridStateAlteration.GridStateAlterationRemedialAction-valueType ; + sh:targetClass nc:EquivalentInjectionAction . + +ra:StageTrigger.GateTrigger-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "StageTrigger.GateTrigger-cardinality" ; + sh:order 5 ; + sh:path nc:StageTrigger.GateTrigger ; + sh:severity sh:Violation . + +ra:ContingencyWithRemedialAction.combinationConstraintKind-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "ContingencyWithRemedialAction.combinationConstraintKind-cardinality" ; + sh:order 3 ; + sh:path nc:ContingencyWithRemedialAction.combinationConstraintKind ; + sh:severity sh:Violation . + +ra:MeasurementCalculatorInput.order-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:integer ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ra:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "MeasurementCalculatorInput.order-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:MeasurementCalculatorInput.order ; + sh:severity sh:Violation . + +ra:GateInputPin.negate-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ra:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "GateInputPin.negate-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:GateInputPin.negate ; + sh:severity sh:Violation . + +ra:RemedialActionDependency.RemedialAction-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "RemedialActionDependency.RemedialAction-cardinality" ; + sh:order 4 ; + sh:path nc:RemedialActionDependency.RemedialAction ; + sh:severity sh:Violation . + +ra:StageTrigger.GateArmed-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group ra:AssociationsGroup ; + sh:in ( nc:Gate ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:Gate" ; + sh:name "StageTrigger.GateArmed-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path ( nc:StageTrigger.GateArmed rdf:type ) ; + sh:severity sh:Violation . + +ra:LoadAction.EnergyConsumer-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "LoadAction.EnergyConsumer-cardinality" ; + sh:order 0 ; + sh:path nc:LoadAction.EnergyConsumer ; + sh:severity sh:Violation . + +ra:TriggerCondition.RemedialActionScheme-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group ra:AssociationsGroup ; + sh:in ( nc:RemedialActionScheme ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:RemedialActionScheme" ; + sh:name "TriggerCondition.RemedialActionScheme-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path ( nc:TriggerCondition.RemedialActionScheme rdf:type ) ; + sh:severity sh:Violation . + +ra:PinDCTerminal.DCTerminal-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PinDCTerminal.DCTerminal-cardinality" ; + sh:order 0 ; + sh:path nc:PinDCTerminal.DCTerminal ; + sh:severity sh:Violation . + +ra:ControlFunctionBlockAction + rdf:type sh:NodeShape ; + sh:property ra:GridStateAlteration.timePerStage-datatype , ido:IdentifiedObject.name-datatype , ra:GridStateAlteration.GridStateAlterationRemedialAction-valueType , ra:GridStateAlteration.PropertyReference-cardinality , ra:GridStateAlteration.GridStateAlterationCollection-valueType , ra:GridStateAlteration.normalEnabled-cardinality , ra:GridStateAlteration.GridStateAlterationCollection-cardinality , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.mRID-cardinality , ra:GridStateAlteration.minimumActivation-cardinality , ra:GridStateAlteration.maximumPerDay-cardinality , ra:GridStateAlteration.normalEnabled-datatype , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.description-datatype , ra:GridStateAlteration.GridStateAlterationRemedialAction-cardinality , ra:GridStateAlteration.timePerStage-cardinality , ra:ControlFunctionBlockAction.ControlFunctionBlock-cardinality , ra:GridStateAlteration.maximumPerDay-datatype , ra:GridStateAlteration.minimumActivation-datatype ; + sh:targetClass nc:ControlFunctionBlockAction . + +ra:RangeConstraint.GridStateAlteration-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "RangeConstraint.GridStateAlteration-cardinality" ; + sh:order 4 ; + sh:path nc:RangeConstraint.GridStateAlteration ; + sh:severity sh:Violation . + +ra:RemedialActionScheme + rdf:type sh:NodeShape ; + sh:property ra:RemedialActionScheme.normalArmed-cardinality , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.mRID-cardinality , ra:RemedialActionScheme.kind-datatype , ra:RemedialActionScheme.normalArmed-datatype , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.name-cardinality , ra:RemedialActionScheme.ArmedRemedialAction-cardinality , ra:RemedialActionScheme.GateArmed-cardinality , ra:RemedialActionScheme.kind-cardinality , ido:IdentifiedObject.mRID-datatype , ra:RemedialActionScheme.ArmedRemedialAction-valueType , ra:RemedialActionScheme.GateArmed-valueType ; + sh:targetClass nc:RemedialActionScheme . + +ra:GateInputPin.thresholdValue-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ra:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "GateInputPin.thresholdValue-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path nc:GateInputPin.thresholdValue ; + sh:severity sh:Violation . + +ra:CountertradeRemedialAction.minEconomicP-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "CountertradeRemedialAction.minEconomicP-cardinality" ; + sh:order 3 ; + sh:path nc:CountertradeRemedialAction.minEconomicP ; + sh:severity sh:Violation . + +ra:MeasurementCalculator.kind-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ra:DatatypesGroup ; + sh:in ( nc:CalculationKind.division nc:CalculationKind.multiplication nc:CalculationKind.squareRoot nc:CalculationKind.summation ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "MeasurementCalculator.kind-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path nc:MeasurementCalculator.kind ; + sh:severity sh:Violation . + +ra:GridStateAlteration.GridStateAlterationRemedialAction-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "GridStateAlteration.GridStateAlterationRemedialAction-cardinality" ; + sh:order 3 ; + sh:path nc:GridStateAlteration.GridStateAlterationRemedialAction ; + sh:severity sh:Violation . + +ra:PinTerminal rdf:type sh:NodeShape ; + sh:property ra:GateInputPin.absoluteValue-cardinality , ra:GateInputPin.absoluteValue-datatype , ido:IdentifiedObject.name-datatype , ra:GateInputPin.isValuePreFault-cardinality , ra:GateInputPin.thresholdValue-cardinality , ra:GateInputPin.logicKind-cardinality , ido:IdentifiedObject.mRID-datatype , ra:GateInputPin.thresholdValue-datatype , ra:PinTerminal.kind-datatype , ido:IdentifiedObject.name-cardinality , ra:GateInputPin.isValuePreFault-datatype , ra:GateInputPin.Gate-valueType , ra:GateInputPin.thresholdPercentage-datatype , ra:PinTerminal.kind-cardinality , ra:GateInputPin.thresholdPercentage-cardinality , ido:IdentifiedObject.description-cardinality , ra:PinTerminal.Terminal-cardinality , ra:GateInputPin.Gate-cardinality , ra:GateInputPin.negate-datatype , ra:GateInputPin.duration-cardinality , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.description-datatype , ra:GateInputPin.duration-datatype , ra:GateInputPin.negate-cardinality , ra:GateInputPin.logicKind-datatype ; + sh:targetClass nc:PinTerminal . + +ra:MeasurementCalculatorInput + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.description-datatype , ra:MeasurementCalculatorInput.order-cardinality , ido:IdentifiedObject.mRID-cardinality , ra:MeasurementCalculatorInput.Measurement-cardinality , ido:IdentifiedObject.mRID-datatype , ra:MeasurementCalculatorInput.MeasurementCalculator-valueType , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.name-datatype , ra:MeasurementCalculatorInput.absoluteValue-datatype , ra:MeasurementCalculatorInput.MeasurementCalculator-cardinality , ra:MeasurementCalculatorInput.order-datatype , ra:MeasurementCalculatorInput.absoluteValue-cardinality ; + sh:targetClass nc:MeasurementCalculatorInput . + +ra:StageTrigger.normalArmed-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "StageTrigger.normalArmed-cardinality" ; + sh:order 4 ; + sh:path nc:StageTrigger.normalArmed ; + sh:severity sh:Violation . + +ra:RemedialActionDependency.mRID-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "RemedialActionDependency.mRID-cardinality" ; + sh:order 1 ; + sh:path nc:RemedialActionDependency.mRID ; + sh:severity sh:Violation . + +ra:GridStateAlteration.GridStateAlterationRemedialAction-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group ra:AssociationsGroup ; + sh:in ( nc:GridStateAlterationRemedialAction ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:GridStateAlterationRemedialAction" ; + sh:name "GridStateAlteration.GridStateAlterationRemedialAction-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 3 ; + sh:path ( nc:GridStateAlteration.GridStateAlterationRemedialAction rdf:type ) ; + sh:severity sh:Violation . + +ra:RemedialAction.isManual-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "RemedialAction.isManual-cardinality" ; + sh:order 12 ; + sh:path nc:RemedialAction.isManual ; + sh:severity sh:Violation . + +ra:PinDCTerminal.kind-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ra:DatatypesGroup ; + sh:in ( nc:PinDCTerminalKind.voltage nc:PinDCTerminalKind.current ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "PinDCTerminal.kind-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path nc:PinDCTerminal.kind ; + sh:severity sh:Violation . + +ra:RedispatchRemedialAction + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.name-datatype , ra:RemedialAction.isCrossBorderRelevant-cardinality , ra:RemedialAction.AppointedToRegion-cardinality , ido:IdentifiedObject.name-cardinality , ra:RemedialAction.penaltyFactor-datatype , ra:RemedialAction.isManual-cardinality , ra:RemedialAction.isManual-datatype , ra:RemedialAction.kind-cardinality , ra:RemedialAction.RemedialActionSystemOperator-cardinality , ra:RemedialAction.normalAvailable-datatype , ra:RemedialAction.penaltyFactor-cardinality , ra:RemedialAction.impactThresholdMargin-cardinality , ra:RemedialAction.impactThresholdMargin-datatype , ra:RemedialAction.timeToImplement-cardinality , ra:RemedialAction.isCrossBorderRelevant-datatype , ra:RemedialAction.normalAvailable-cardinality , ido:IdentifiedObject.description-cardinality , ra:RemedialAction.timeToImplement-datatype , ido:IdentifiedObject.mRID-cardinality , ra:RemedialAction.kind-datatype , ido:IdentifiedObject.description-datatype , ra:PowerRemedialAction.BiddingZone-cardinality ; + sh:targetClass nc:RedispatchRemedialAction . + +ra:EnergySourceModification + rdf:type sh:NodeShape ; + sh:property ra:GridStateAlteration.minimumActivation-datatype , ra:GridStateAlteration.GridStateAlterationCollection-valueType , ra:GridStateAlteration.maximumPerDay-datatype , ra:GridStateAlteration.GridStateAlterationRemedialAction-cardinality , ido:IdentifiedObject.mRID-datatype , ra:GridStateAlteration.maximumPerDay-cardinality , ido:IdentifiedObject.name-datatype , ra:GridStateAlteration.minimumActivation-cardinality , ra:GridStateAlteration.normalEnabled-datatype , ra:GridStateAlteration.normalEnabled-cardinality , ra:GridStateAlteration.GridStateAlterationCollection-cardinality , ra:GridStateAlteration.PropertyReference-cardinality , ra:GridStateAlteration.timePerStage-datatype , ido:IdentifiedObject.description-datatype , ra:EnergySourceModification.EnergySource-cardinality , ido:IdentifiedObject.mRID-cardinality , ra:GridStateAlteration.timePerStage-cardinality , ra:GridStateAlteration.GridStateAlterationRemedialAction-valueType , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.description-cardinality ; + sh:targetClass nc:EnergySourceModification . + +ra:RemedialAction.normalAvailable-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ra:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "RemedialAction.normalAvailable-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 13 ; + sh:path nc:RemedialAction.normalAvailable ; + sh:severity sh:Violation . + +ra:Stage.RemedialActionScheme-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "Stage.RemedialActionScheme-cardinality" ; + sh:order 0 ; + sh:path nc:Stage.RemedialActionScheme ; + sh:severity sh:Violation . + +ra:PinEquipmentTripping + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.name-datatype , ra:GateInputPin.Gate-valueType , ra:GateInputPin.thresholdValue-datatype , ra:GateInputPin.duration-datatype , ra:GateInputPin.logicKind-datatype , ra:GateInputPin.negate-cardinality , ido:IdentifiedObject.description-cardinality , ra:GateInputPin.thresholdPercentage-cardinality , ra:GateInputPin.absoluteValue-datatype , ido:IdentifiedObject.mRID-datatype , ra:GateInputPin.Gate-cardinality , ra:GateInputPin.thresholdPercentage-datatype , ra:GateInputPin.isValuePreFault-datatype , ra:GateInputPin.absoluteValue-cardinality , ra:GateInputPin.negate-datatype , ra:GateInputPin.duration-cardinality , ra:GateInputPin.logicKind-cardinality , ra:GateInputPin.thresholdValue-cardinality , ido:IdentifiedObject.description-datatype , ra:GateInputPin.isValuePreFault-cardinality , ra:PinEquipmentTripping.Equipment-cardinality ; + sh:targetClass nc:PinEquipmentTripping . + +ra:RemedialActionScheme.GateArmed-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "RemedialActionScheme.GateArmed-cardinality" ; + sh:order 2 ; + sh:path nc:RemedialActionScheme.GateArmed ; + sh:severity sh:Violation . + +ra:GridStateAlterationRemedialAction + rdf:type sh:NodeShape ; + sh:property ra:RemedialAction.AppointedToRegion-cardinality , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.mRID-cardinality , ra:RemedialAction.timeToImplement-datatype , ra:RemedialAction.kind-cardinality , ra:RemedialAction.penaltyFactor-cardinality , ra:RemedialAction.isManual-cardinality , ra:RemedialAction.isCrossBorderRelevant-datatype , ra:RemedialAction.timeToImplement-cardinality , ra:RemedialAction.impactThresholdMargin-datatype , ra:RemedialAction.isCrossBorderRelevant-cardinality , ido:IdentifiedObject.mRID-datatype , ra:RemedialAction.normalAvailable-datatype , ido:IdentifiedObject.description-cardinality , ra:RemedialAction.normalAvailable-cardinality , ra:RemedialAction.isManual-datatype , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.description-datatype , ra:RemedialAction.penaltyFactor-datatype , ra:RemedialAction.kind-datatype , ra:RemedialAction.impactThresholdMargin-cardinality , ra:RemedialAction.RemedialActionSystemOperator-cardinality ; + sh:targetClass nc:GridStateAlterationRemedialAction . + +ra:GateInputPin.Gate-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "GateInputPin.Gate-cardinality" ; + sh:order 8 ; + sh:path nc:GateInputPin.Gate ; + sh:severity sh:Violation . + +ra:PTCActivePowerSupport.normal-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ra:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PTCActivePowerSupport.normal-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:PTCActivePowerSupport.normal ; + sh:severity sh:Violation . + +ra:GateInputPin.duration-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:duration ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ra:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "GateInputPin.duration-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path nc:GateInputPin.duration ; + sh:severity sh:Violation . + +ra:RemedialActionDependency.RemedialAction-valueTypeNodeShape + rdf:type sh:NodeShape ; + sh:property ra:RemedialActionDependency.RemedialAction-valueType ; + sh:targetClass nc:RemedialActionDependency . + +ra:GateInputPin.isValuePreFault-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "GateInputPin.isValuePreFault-cardinality" ; + sh:order 3 ; + sh:path nc:GateInputPin.isValuePreFault ; + sh:severity sh:Violation . + +ra:RangeConstraint.normalValue-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "RangeConstraint.normalValue-cardinality" ; + sh:order 3 ; + sh:path nc:RangeConstraint.normalValue ; + sh:severity sh:Violation . + +ra:RemedialAction.impactThresholdMargin-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "RemedialAction.impactThresholdMargin-cardinality" ; + sh:order 9 ; + sh:path nc:RemedialAction.impactThresholdMargin ; + sh:severity sh:Violation . + +ra:GateInputPin.isValuePreFault-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ra:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "GateInputPin.isValuePreFault-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path nc:GateInputPin.isValuePreFault ; + sh:severity sh:Violation . + +ra:PinGate.GateOutput-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group ra:AssociationsGroup ; + sh:in ( nc:Gate ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:Gate" ; + sh:name "PinGate.GateOutput-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path ( nc:PinGate.GateOutput rdf:type ) ; + sh:severity sh:Violation . + +ra:EnergySourceModification.EnergySource-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "EnergySourceModification.EnergySource-cardinality" ; + sh:order 0 ; + sh:path nc:EnergySourceModification.EnergySource ; + sh:severity sh:Violation . + +ido:IdentifiedObject.description-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ido:DatatypesGroupIO ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "IdentifiedObject.description-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.description ; + sh:severity sh:Violation . + +ra:RotatingMachineAction.RotatingMachine-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "RotatingMachineAction.RotatingMachine-cardinality" ; + sh:order 0 ; + sh:path nc:RotatingMachineAction.RotatingMachine ; + sh:severity sh:Violation . + +ra:GridStateAlteration.timePerStage-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:duration ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ra:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "GridStateAlteration.timePerStage-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path nc:GridStateAlteration.timePerStage ; + sh:severity sh:Violation . + +ra:RemedialAction.isCrossBorderRelevant-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ra:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "RemedialAction.isCrossBorderRelevant-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 10 ; + sh:path nc:RemedialAction.isCrossBorderRelevant ; + sh:severity sh:Violation . + +ra:GridStateAlteration.maximumPerDay-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "GridStateAlteration.maximumPerDay-cardinality" ; + sh:order 8 ; + sh:path nc:GridStateAlteration.maximumPerDay ; + sh:severity sh:Violation . + +ra:StageTrigger.GateArmed-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "StageTrigger.GateArmed-cardinality" ; + sh:order 0 ; + sh:path nc:StageTrigger.GateArmed ; + sh:severity sh:Violation . + +ra:PowerElectronicsConnectionAction + rdf:type sh:NodeShape ; + sh:property ra:GridStateAlteration.GridStateAlterationCollection-cardinality , ido:IdentifiedObject.description-datatype , ra:GridStateAlteration.GridStateAlterationCollection-valueType , ra:GridStateAlteration.maximumPerDay-datatype , ra:GridStateAlteration.PropertyReference-cardinality , ido:IdentifiedObject.name-cardinality , ra:GridStateAlteration.timePerStage-cardinality , ra:GridStateAlteration.normalEnabled-datatype , ra:GridStateAlteration.GridStateAlterationRemedialAction-valueType , ra:GridStateAlteration.maximumPerDay-cardinality , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.mRID-cardinality , ra:GridStateAlteration.minimumActivation-cardinality , ra:GridStateAlteration.GridStateAlterationRemedialAction-cardinality , ido:IdentifiedObject.name-datatype , ra:PowerElectronicsConnectionAction.PowerElectronicsConnection-cardinality , ido:IdentifiedObject.description-cardinality , ra:GridStateAlteration.minimumActivation-datatype , ra:GridStateAlteration.normalEnabled-cardinality , ra:GridStateAlteration.timePerStage-datatype ; + sh:targetClass nc:PowerElectronicsConnectionAction . + +ra:GateInputPin.thresholdValue-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "GateInputPin.thresholdValue-cardinality" ; + sh:order 4 ; + sh:path nc:GateInputPin.thresholdValue ; + sh:severity sh:Violation . + +ra:GeneratingUnit rdf:type sh:NodeShape ; + sh:targetClass cim:GeneratingUnit . + +ra:StageTrigger.Stage-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "StageTrigger.Stage-cardinality" ; + sh:order 3 ; + sh:path nc:StageTrigger.Stage ; + sh:severity sh:Violation . + +ra:RemedialAction.RemedialActionSystemOperator-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "RemedialAction.RemedialActionSystemOperator-cardinality" ; + sh:order 6 ; + sh:path nc:RemedialAction.RemedialActionSystemOperator ; + sh:severity sh:Violation . + +ra:StageTrigger rdf:type sh:NodeShape ; + sh:property ra:StageTrigger.normalArmed-cardinality , ido:IdentifiedObject.name-cardinality , ra:StageTrigger.GateComCondition-cardinality , ra:StageTrigger.Stage-cardinality , ra:StageTrigger.GateTrigger-cardinality , ido:IdentifiedObject.name-datatype , ra:StageTrigger.GateTrigger-valueType , ido:IdentifiedObject.mRID-datatype , ra:StageTrigger.GateArmed-cardinality , ra:StageTrigger.Stage-valueType , ra:StageTrigger.normalArmed-datatype , ra:StageTrigger.GateComCondition-valueType , ido:IdentifiedObject.description-cardinality , ra:StageTrigger.GateArmed-valueType , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.description-datatype , ra:StageTrigger.priority-cardinality , ra:StageTrigger.priority-datatype ; + sh:targetClass nc:StageTrigger . + +ra:Gate.kind-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ra:DatatypesGroup ; + sh:in ( nc:GateLogicKind.nor nc:GateLogicKind.not nc:GateLogicKind.xor nc:GateLogicKind.xnor nc:GateLogicKind.or nc:GateLogicKind.nand nc:GateLogicKind.and ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "Gate.kind-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path nc:Gate.kind ; + sh:severity sh:Violation . + +ra:PinPowerTransferCorridor.kind-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "PinPowerTransferCorridor.kind-cardinality" ; + sh:order 1 ; + sh:path nc:PinPowerTransferCorridor.kind ; + sh:severity sh:Violation . + +ra:PTCActivePowerSupport.normal-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "PTCActivePowerSupport.normal-cardinality" ; + sh:order 0 ; + sh:path nc:PTCActivePowerSupport.normal ; + sh:severity sh:Violation . + +ra:GridStateAlteration.timePerStage-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "GridStateAlteration.timePerStage-cardinality" ; + sh:order 4 ; + sh:path nc:GridStateAlteration.timePerStage ; + sh:severity sh:Violation . + +ra:PinGate.GateOutput-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "PinGate.GateOutput-cardinality" ; + sh:order 0 ; + sh:path nc:PinGate.GateOutput ; + sh:severity sh:Violation . + +ra:RemedialActionScheme.normalArmed-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "RemedialActionScheme.normalArmed-cardinality" ; + sh:order 5 ; + sh:path nc:RemedialActionScheme.normalArmed ; + sh:severity sh:Violation . + +ra:StageTrigger.priority-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "StageTrigger.priority-cardinality" ; + sh:order 1 ; + sh:path nc:StageTrigger.priority ; + sh:severity sh:Violation . + +ido:IdentifiedObject.description-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ido:CardinalityIO ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "IdentifiedObject.description-cardinality" ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.description ; + sh:severity sh:Violation . + +ra:GateInputPin.Gate-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group ra:AssociationsGroup ; + sh:in ( nc:Gate ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:Gate" ; + sh:name "GateInputPin.Gate-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 8 ; + sh:path ( nc:GateInputPin.Gate rdf:type ) ; + sh:severity sh:Violation . + +ra:ContingencyWithRemedialAction.combinationConstraintKind-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ra:DatatypesGroup ; + sh:in ( nc:ElementCombinationConstraintKind.included nc:ElementCombinationConstraintKind.considered nc:ElementCombinationConstraintKind.excluded ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "ContingencyWithRemedialAction.combinationConstraintKind-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 3 ; + sh:path nc:ContingencyWithRemedialAction.combinationConstraintKind ; + sh:severity sh:Violation . + +ra:RemedialAction.penaltyFactor-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ra:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "RemedialAction.penaltyFactor-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 15 ; + sh:path nc:RemedialAction.penaltyFactor ; + sh:severity sh:Violation . + +ra:CountertradeRemedialAction.shiftMethod-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ra:DatatypesGroup ; + sh:in ( nc:ShiftMethodKind.shared nc:ShiftMethodKind.priority ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "CountertradeRemedialAction.shiftMethod-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path nc:CountertradeRemedialAction.shiftMethod ; + sh:severity sh:Violation . + +ra:MeasurementCalculator.kind-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "MeasurementCalculator.kind-cardinality" ; + sh:order 0 ; + sh:path nc:MeasurementCalculator.kind ; + sh:severity sh:Violation . + +ra:GridStateAlteration.maximumPerDay-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:integer ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ra:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "GridStateAlteration.maximumPerDay-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 8 ; + sh:path nc:GridStateAlteration.maximumPerDay ; + sh:severity sh:Violation . + +ra:PinEquipment rdf:type sh:NodeShape ; + sh:property ra:GateInputPin.thresholdPercentage-cardinality , ra:GateInputPin.absoluteValue-datatype , ra:GateInputPin.negate-cardinality , ra:GateInputPin.isValuePreFault-datatype , ra:GateInputPin.Gate-valueType , ra:PinEquipment.PropertyReference-cardinality , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.description-datatype , ra:GateInputPin.duration-datatype , ra:GateInputPin.logicKind-datatype , ra:GateInputPin.absoluteValue-cardinality , ra:GateInputPin.thresholdPercentage-datatype , ido:IdentifiedObject.name-datatype , ra:GateInputPin.Gate-cardinality , ra:GateInputPin.logicKind-cardinality , ra:PinEquipment.Equipment-cardinality , ra:GateInputPin.thresholdValue-datatype , ra:GateInputPin.isValuePreFault-cardinality , ra:GateInputPin.duration-cardinality , ra:GateInputPin.thresholdValue-cardinality , ra:GateInputPin.negate-datatype ; + sh:targetClass nc:PinEquipment . + +ra:ACDCConverterAction + rdf:type sh:NodeShape ; + sh:property ra:GridStateAlteration.minimumActivation-datatype , ra:GridStateAlteration.GridStateAlterationRemedialAction-cardinality , ido:IdentifiedObject.description-datatype , ra:GridStateAlteration.normalEnabled-cardinality , ido:IdentifiedObject.mRID-cardinality , ra:GridStateAlteration.minimumActivation-cardinality , ido:IdentifiedObject.name-cardinality , ra:GridStateAlteration.normalEnabled-datatype , ra:GridStateAlteration.maximumPerDay-datatype , ido:IdentifiedObject.name-datatype , ra:GridStateAlteration.PropertyReference-cardinality , ra:GridStateAlteration.maximumPerDay-cardinality , ra:GridStateAlteration.GridStateAlterationRemedialAction-valueType , ra:GridStateAlteration.timePerStage-cardinality , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.description-cardinality , ra:GridStateAlteration.GridStateAlterationCollection-valueType , ra:GridStateAlteration.GridStateAlterationCollection-cardinality , ra:ACDCConverterAction.ACDCConverter-cardinality , ra:GridStateAlteration.timePerStage-datatype ; + sh:targetClass nc:ACDCConverterAction . + +ra:RemedialActionDependency.normalEnabled-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ra:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "RemedialActionDependency.normalEnabled-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path nc:RemedialActionDependency.normalEnabled ; + sh:severity sh:Violation . + +ra:DatatypesGroup rdf:type sh:PropertyGroup ; + rdfs:label "Datatypes" ; + sh:order 1 . + +ra:ContingencyWithRemedialAction.normalEnabled-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "ContingencyWithRemedialAction.normalEnabled-cardinality" ; + sh:order 2 ; + sh:path nc:ContingencyWithRemedialAction.normalEnabled ; + sh:severity sh:Violation . + +ra:TapPositionAction.TapChanger-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "TapPositionAction.TapChanger-cardinality" ; + sh:order 0 ; + sh:path nc:TapPositionAction.TapChanger ; + sh:severity sh:Violation . + +ra:RemedialAction.timeToImplement-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:duration ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ra:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "RemedialAction.timeToImplement-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 14 ; + sh:path nc:RemedialAction.timeToImplement ; + sh:severity sh:Violation . + +ra:SolarRadiationDependencyCurve + rdf:type sh:NodeShape ; + sh:targetClass nc:SolarRadiationDependencyCurve . + +ra:GateInputPin.logicKind-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ra:DatatypesGroup ; + sh:in ( nc:LogicalOperatorsKind.lessThanOrEquals nc:LogicalOperatorsKind.greaterThan nc:LogicalOperatorsKind.notEqual nc:LogicalOperatorsKind.lessThan nc:LogicalOperatorsKind.equals nc:LogicalOperatorsKind.greaterThanOrEquals ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "GateInputPin.logicKind-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 6 ; + sh:path nc:GateInputPin.logicKind ; + sh:severity sh:Violation . + +ra:ShuntCompensatorModification.ShuntCompensator-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "ShuntCompensatorModification.ShuntCompensator-cardinality" ; + sh:order 0 ; + sh:path nc:ShuntCompensatorModification.ShuntCompensator ; + sh:severity sh:Violation . + +ra:Stage.GridStateAlterationCollection-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group ra:AssociationsGroup ; + sh:in ( nc:GridStateAlterationCollection ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:GridStateAlterationCollection" ; + sh:name "Stage.GridStateAlterationCollection-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path ( nc:Stage.GridStateAlterationCollection rdf:type ) ; + sh:severity sh:Violation . + +ra:StageTrigger.normalArmed-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ra:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "StageTrigger.normalArmed-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path nc:StageTrigger.normalArmed ; + sh:severity sh:Violation . + +ido:IdentifiedObject.name-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ido:DatatypesGroupIO ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "IdentifiedObject.name-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.name ; + sh:severity sh:Violation . + +ra:RemedialActionDependency.normalEnabled-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "RemedialActionDependency.normalEnabled-cardinality" ; + sh:order 3 ; + sh:path nc:RemedialActionDependency.normalEnabled ; + sh:severity sh:Violation . + +ido:IdentifiedObject.mRID-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ido:DatatypesGroupIO ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "IdentifiedObject.mRID-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.mRID ; + sh:severity sh:Violation . + +ra:GridStateAlteration.normalEnabled-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "GridStateAlteration.normalEnabled-cardinality" ; + sh:order 2 ; + sh:path nc:GridStateAlteration.normalEnabled ; + sh:severity sh:Violation . + +ra:PinEquipment.Equipment-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "PinEquipment.Equipment-cardinality" ; + sh:order 1 ; + sh:path nc:PinEquipment.Equipment ; + sh:severity sh:Violation . + +ra:PTCActivePowerSupport.maximum-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ra:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PTCActivePowerSupport.maximum-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path nc:PTCActivePowerSupport.maximum ; + sh:severity sh:Violation . + +ra:StageTrigger.Stage-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group ra:AssociationsGroup ; + sh:in ( nc:Stage ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:Stage" ; + sh:name "StageTrigger.Stage-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 3 ; + sh:path ( nc:StageTrigger.Stage rdf:type ) ; + sh:severity sh:Violation . + +ra:RangeConstraint.direction-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "RangeConstraint.direction-cardinality" ; + sh:order 2 ; + sh:path nc:RangeConstraint.direction ; + sh:severity sh:Violation . + +ra:ContingencyWithRemedialAction.mRID-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "ContingencyWithRemedialAction.mRID-cardinality" ; + sh:order 4 ; + sh:path nc:ContingencyWithRemedialAction.mRID ; + sh:severity sh:Violation . + +ra:ContingencyWithRemedialAction.Contingency-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "ContingencyWithRemedialAction.Contingency-cardinality" ; + sh:order 0 ; + sh:path nc:ContingencyWithRemedialAction.Contingency ; + sh:severity sh:Violation . + +ra:RemedialAction.isCrossBorderRelevant-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "RemedialAction.isCrossBorderRelevant-cardinality" ; + sh:order 10 ; + sh:path nc:RemedialAction.isCrossBorderRelevant ; + sh:severity sh:Violation . + +ra:GridStateAlteration.minimumActivation-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "GridStateAlteration.minimumActivation-cardinality" ; + sh:order 1 ; + sh:path nc:GridStateAlteration.minimumActivation ; + sh:severity sh:Violation . + +ra:StaticVarCompensatorAction.StaticVarCompensator-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "StaticVarCompensatorAction.StaticVarCompensator-cardinality" ; + sh:order 0 ; + sh:path nc:StaticVarCompensatorAction.StaticVarCompensator ; + sh:severity sh:Violation . + +ra:ExternalNetworkInjectionAction + rdf:type sh:NodeShape ; + sh:property ra:GridStateAlteration.maximumPerDay-datatype , ra:GridStateAlteration.GridStateAlterationCollection-valueType , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.description-datatype , ra:GridStateAlteration.minimumActivation-datatype , ra:GridStateAlteration.normalEnabled-cardinality , ra:GridStateAlteration.GridStateAlterationCollection-cardinality , ra:GridStateAlteration.normalEnabled-datatype , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.mRID-cardinality , ra:GridStateAlteration.timePerStage-datatype , ra:GridStateAlteration.maximumPerDay-cardinality , ra:GridStateAlteration.timePerStage-cardinality , ra:ExternalNetworkInjectionAction.ExternalNetworkInjection-cardinality , ido:IdentifiedObject.description-cardinality , ra:GridStateAlteration.PropertyReference-cardinality , ido:IdentifiedObject.name-cardinality , ra:GridStateAlteration.GridStateAlterationRemedialAction-valueType , ra:GridStateAlteration.GridStateAlterationRemedialAction-cardinality , ra:GridStateAlteration.minimumActivation-cardinality ; + sh:targetClass nc:ExternalNetworkInjectionAction . + +ra:BiddingZoneAction rdf:type sh:NodeShape ; + sh:property ra:GridStateAlteration.normalEnabled-cardinality , ra:GridStateAlteration.normalEnabled-datatype , ra:GridStateAlteration.GridStateAlterationRemedialAction-valueType , ra:GridStateAlteration.minimumActivation-datatype , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.name-datatype , ra:GridStateAlteration.timePerStage-cardinality , ido:IdentifiedObject.description-cardinality , ra:GridStateAlteration.maximumPerDay-cardinality , ra:GridStateAlteration.GridStateAlterationRemedialAction-cardinality , ra:GridStateAlteration.minimumActivation-cardinality , ra:GridStateAlteration.maximumPerDay-datatype , ra:GridStateAlteration.PropertyReference-cardinality , ra:GridStateAlteration.GridStateAlterationCollection-cardinality , ido:IdentifiedObject.mRID-datatype , ra:BiddingZoneAction.BiddingZone-cardinality , ra:GridStateAlteration.GridStateAlterationCollection-valueType , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.name-cardinality , ra:GridStateAlteration.timePerStage-datatype ; + sh:targetClass nc:BiddingZoneAction . + +ido:IdentifiedObject.mRID-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ido:CardinalityIO ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "IdentifiedObject.mRID-cardinality" ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.mRID ; + sh:severity sh:Violation . + +ra:ContingencyWithRemedialAction + rdf:type sh:NodeShape ; + sh:property ra:ContingencyWithRemedialAction.mRID-datatype , ra:ContingencyWithRemedialAction.mRID-cardinality , ra:ContingencyWithRemedialAction.normalEnabled-datatype , ra:ContingencyWithRemedialAction.combinationConstraintKind-cardinality , ra:ContingencyWithRemedialAction.combinationConstraintKind-datatype , ra:ContingencyWithRemedialAction.normalEnabled-cardinality , ra:ContingencyWithRemedialAction.Contingency-cardinality , ra:ContingencyWithRemedialAction.RemedialAction-cardinality ; + sh:targetClass nc:ContingencyWithRemedialAction . + +ra:RemedialAction.isManual-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ra:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "RemedialAction.isManual-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 12 ; + sh:path nc:RemedialAction.isManual ; + sh:severity sh:Violation . + +ra:GridStateAlteration.PropertyReference-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "GridStateAlteration.PropertyReference-cardinality" ; + sh:order 7 ; + sh:path nc:GridStateAlteration.PropertyReference ; + sh:severity sh:Violation . + +ra:GridStateAlteration.GridStateAlterationCollection-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group ra:AssociationsGroup ; + sh:in ( nc:GridStateAlterationCollection ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:GridStateAlterationCollection" ; + sh:name "GridStateAlteration.GridStateAlterationCollection-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 5 ; + sh:path ( nc:GridStateAlteration.GridStateAlterationCollection rdf:type ) ; + sh:severity sh:Violation . + +ra:RemedialActionScheme.ArmedRemedialAction-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group ra:AssociationsGroup ; + sh:in ( nc:SchemeRemedialAction ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:SchemeRemedialAction" ; + sh:name "RemedialActionScheme.ArmedRemedialAction-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 4 ; + sh:path ( nc:RemedialActionScheme.ArmedRemedialAction rdf:type ) ; + sh:severity sh:Violation . + +ra:PinTerminal.Terminal-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "PinTerminal.Terminal-cardinality" ; + sh:order 1 ; + sh:path nc:PinTerminal.Terminal ; + sh:severity sh:Violation . + +ra:ContingencyWithRemedialAction.normalEnabled-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ra:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "ContingencyWithRemedialAction.normalEnabled-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path nc:ContingencyWithRemedialAction.normalEnabled ; + sh:severity sh:Violation . + +ra:PinTerminalLimit rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.name-cardinality , ra:GateInputPin.Gate-valueType , ra:GateInputPin.logicKind-datatype , ra:GateInputPin.negate-cardinality , ra:PinTerminalLimit.kind-datatype , ra:PinTerminalLimit.Terminal-cardinality , ra:GateInputPin.isValuePreFault-cardinality , ido:IdentifiedObject.description-datatype , ra:GateInputPin.thresholdValue-datatype , ra:GateInputPin.negate-datatype , ra:GateInputPin.logicKind-cardinality , ido:IdentifiedObject.name-datatype , ra:GateInputPin.thresholdValue-cardinality , ra:PinTerminalLimit.kind-cardinality , ra:GateInputPin.thresholdPercentage-cardinality , ra:GateInputPin.thresholdPercentage-datatype , ra:GateInputPin.duration-cardinality , ra:GateInputPin.absoluteValue-datatype , ido:IdentifiedObject.mRID-cardinality , ra:GateInputPin.absoluteValue-cardinality , ra:GateInputPin.isValuePreFault-datatype , ra:GateInputPin.Gate-cardinality , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.description-cardinality , ra:GateInputPin.duration-datatype ; + sh:targetClass nc:PinTerminalLimit . + +ra:PinMeasurement.MeasurementCalculator-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PinMeasurement.MeasurementCalculator-cardinality" ; + sh:order 1 ; + sh:path nc:PinMeasurement.MeasurementCalculator ; + sh:severity sh:Violation . + +ra:GridStateAlteration.GridStateAlterationCollection-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "GridStateAlteration.GridStateAlterationCollection-cardinality" ; + sh:order 5 ; + sh:path nc:GridStateAlteration.GridStateAlterationCollection ; + sh:severity sh:Violation . + +ra:PTCActivePowerSupport.PowerTransferCorridor-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "PTCActivePowerSupport.PowerTransferCorridor-cardinality" ; + sh:order 1 ; + sh:path nc:PTCActivePowerSupport.PowerTransferCorridor ; + sh:severity sh:Violation . + +ra:Line rdf:type sh:NodeShape ; + sh:targetClass cim:Line . + +ra:PinTerminal.kind-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ra:DatatypesGroup ; + sh:in ( nc:PinTerminalKind.voltageAngle nc:PinTerminalKind.reactivePower nc:PinTerminalKind.apparentPower nc:PinTerminalKind.current nc:PinTerminalKind.voltageMagnitude nc:PinTerminalKind.activePower ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "PinTerminal.kind-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path nc:PinTerminal.kind ; + sh:severity sh:Violation . + +ra:BatteryUnitAction.BatteryUnit-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "BatteryUnitAction.BatteryUnit-cardinality" ; + sh:order 0 ; + sh:path nc:BatteryUnitAction.BatteryUnit ; + sh:severity sh:Violation . + +ra:PinTerminalLimit.Terminal-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "PinTerminalLimit.Terminal-cardinality" ; + sh:order 0 ; + sh:path nc:PinTerminalLimit.Terminal ; + sh:severity sh:Violation . + +ra:MeasurementCalculator + rdf:type sh:NodeShape ; + sh:property ra:MeasurementCalculator.kind-datatype , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.name-cardinality , ra:MeasurementCalculator.kind-cardinality , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.description-cardinality ; + sh:targetClass nc:MeasurementCalculator . + +ra:EquipmentControllerAction.EquipmentController-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "EquipmentControllerAction.EquipmentController-cardinality" ; + sh:order 0 ; + sh:path nc:EquipmentControllerAction.EquipmentController ; + sh:severity sh:Violation . + +ido:DatatypesGroupIO rdf:type sh:PropertyGroup ; + rdfs:label "DatatypesIO" ; + sh:order 1 . + +ra:GateInputPin.logicKind-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "GateInputPin.logicKind-cardinality" ; + sh:order 6 ; + sh:path nc:GateInputPin.logicKind ; + sh:severity sh:Violation . + +ra:GateInputPin.duration-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "GateInputPin.duration-cardinality" ; + sh:order 2 ; + sh:path nc:GateInputPin.duration ; + sh:severity sh:Violation . + +ra:ContingencyWithRemedialAction.RemedialAction-valueTypeNodeShape + rdf:type sh:NodeShape ; + sh:property ra:ContingencyWithRemedialAction.RemedialAction-valueType ; + sh:targetClass nc:ContingencyWithRemedialAction . + +ra:Stage.RemedialActionScheme-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group ra:AssociationsGroup ; + sh:in ( nc:RemedialActionScheme ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:RemedialActionScheme" ; + sh:name "Stage.RemedialActionScheme-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path ( nc:Stage.RemedialActionScheme rdf:type ) ; + sh:severity sh:Violation . + +ra:GateInputPin.absoluteValue-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "GateInputPin.absoluteValue-cardinality" ; + sh:order 5 ; + sh:path nc:GateInputPin.absoluteValue ; + sh:severity sh:Violation . + +ra:PTCActivePowerSupport.RemedialActionScheme-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group ra:AssociationsGroup ; + sh:in ( nc:RemedialActionScheme ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:RemedialActionScheme" ; + sh:name "PTCActivePowerSupport.RemedialActionScheme-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path ( nc:PTCActivePowerSupport.RemedialActionScheme rdf:type ) ; + sh:severity sh:Violation . + +ra:TriggerCondition.GateTrigger-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group ra:AssociationsGroup ; + sh:in ( nc:Gate ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:Gate" ; + sh:name "TriggerCondition.GateTrigger-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path ( nc:TriggerCondition.GateTrigger rdf:type ) ; + sh:severity sh:Violation . + +ra:PTCActivePowerSupport.RemedialActionScheme-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "PTCActivePowerSupport.RemedialActionScheme-cardinality" ; + sh:order 2 ; + sh:path nc:PTCActivePowerSupport.RemedialActionScheme ; + sh:severity sh:Violation . + +ra:RegulatingControlAction.RegulatingControl-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "RegulatingControlAction.RegulatingControl-cardinality" ; + sh:order 0 ; + sh:path nc:RegulatingControlAction.RegulatingControl ; + sh:severity sh:Violation . + +ra:RemedialActionDependency.RemedialAction-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group ra:AssociationsGroup ; + sh:in ( nc:AvailabilityRemedialAction nc:SchemeRemedialAction nc:GridStateAlterationRemedialAction nc:RedispatchRemedialAction nc:CountertradeRemedialAction ) ; + sh:message "One of the following occurs: 1) The value type is not IRI; 2) The value type is not the right class." ; + sh:name "RemedialActionDependency.RemedialAction-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 4 ; + sh:path ( nc:RemedialActionDependency.RemedialAction rdf:type ) ; + sh:severity sh:Violation . + +ra:TopologyAction rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.name-cardinality , ra:GridStateAlteration.GridStateAlterationRemedialAction-cardinality , ra:TopologyAction.Switch-cardinality , ra:GridStateAlteration.normalEnabled-cardinality , ra:GridStateAlteration.timePerStage-cardinality , ido:IdentifiedObject.mRID-cardinality , ra:GridStateAlteration.maximumPerDay-datatype , ra:GridStateAlteration.GridStateAlterationRemedialAction-valueType , ido:IdentifiedObject.description-cardinality , ra:GridStateAlteration.timePerStage-datatype , ra:GridStateAlteration.PropertyReference-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.mRID-datatype , ra:GridStateAlteration.maximumPerDay-cardinality , ra:GridStateAlteration.normalEnabled-datatype , ra:GridStateAlteration.GridStateAlterationCollection-valueType , ra:GridStateAlteration.minimumActivation-cardinality , ra:GridStateAlteration.minimumActivation-datatype , ra:GridStateAlteration.GridStateAlterationCollection-cardinality , ido:IdentifiedObject.name-datatype ; + sh:targetClass nc:TopologyAction . + +ra:Stage.priority-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:integer ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ra:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Stage.priority-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:Stage.priority ; + sh:severity sh:Violation . + +ra:PinContingency.Contingency-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "PinContingency.Contingency-cardinality" ; + sh:order 0 ; + sh:path nc:PinContingency.Contingency ; + sh:severity sh:Violation . + +ra:PinMeasurement rdf:type sh:NodeShape ; + sh:property ra:GateInputPin.Gate-cardinality , ra:GateInputPin.isValuePreFault-cardinality , ra:GateInputPin.logicKind-cardinality , ra:GateInputPin.logicKind-datatype , ido:IdentifiedObject.description-datatype , ra:GateInputPin.thresholdPercentage-cardinality , ra:PinMeasurement.MeasurementCalculator-valueType , ido:IdentifiedObject.mRID-datatype , ra:GateInputPin.Gate-valueType , ra:GateInputPin.thresholdPercentage-datatype , ra:PinMeasurement.Measurement-cardinality , ra:GateInputPin.negate-cardinality , ra:GateInputPin.absoluteValue-datatype , ra:GateInputPin.negate-datatype , ra:PinMeasurement.MeasurementCalculator-cardinality , ra:GateInputPin.duration-datatype , ido:IdentifiedObject.name-datatype , ra:GateInputPin.thresholdValue-cardinality , ra:GateInputPin.absoluteValue-cardinality , ra:GateInputPin.duration-cardinality , ra:GateInputPin.thresholdValue-datatype , ido:IdentifiedObject.description-cardinality , ra:GateInputPin.isValuePreFault-datatype , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.mRID-cardinality ; + sh:targetClass nc:PinMeasurement . + +ra:PowerRemedialAction.BiddingZone-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "PowerRemedialAction.BiddingZone-cardinality" ; + sh:order 4 ; + sh:path nc:PowerRemedialAction.BiddingZone ; + sh:severity sh:Violation . + +ra:RemedialActionDependency.DependingRemedialActionGroup-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "RemedialActionDependency.DependingRemedialActionGroup-cardinality" ; + sh:order 2 ; + sh:path nc:RemedialActionDependency.DependingRemedialActionGroup ; + sh:severity sh:Violation . + +ra:RemedialActionScheme.ArmedRemedialAction-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "RemedialActionScheme.ArmedRemedialAction-cardinality" ; + sh:order 4 ; + sh:path nc:RemedialActionScheme.ArmedRemedialAction ; + sh:severity sh:Violation . + +ido:IdentifiedObject.name-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ido:CardinalityIO ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "IdentifiedObject.name-cardinality" ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.name ; + sh:severity sh:Violation . + +ra:StageTrigger.priority-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:integer ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ra:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "StageTrigger.priority-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:StageTrigger.priority ; + sh:severity sh:Violation . + +ra:RemedialActionScheme.normalArmed-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ra:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "RemedialActionScheme.normalArmed-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 5 ; + sh:path nc:RemedialActionScheme.normalArmed ; + sh:severity sh:Violation . + +ra:BiddingZoneAction.BiddingZone-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "BiddingZoneAction.BiddingZone-cardinality" ; + sh:order 0 ; + sh:path nc:BiddingZoneAction.BiddingZone ; + sh:severity sh:Violation . + +ra:RemedialActionDependency.mRID-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ra:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "RemedialActionDependency.mRID-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:RemedialActionDependency.mRID ; + sh:severity sh:Violation . + +ra:CountertradeRemedialAction.gLSKStrategy-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "CountertradeRemedialAction.gLSKStrategy-cardinality" ; + sh:order 2 ; + sh:path nc:CountertradeRemedialAction.gLSKStrategy ; + sh:severity sh:Violation . + +ra:PinContingency rdf:type sh:NodeShape ; + sh:property ra:GateInputPin.isValuePreFault-cardinality , ra:GateInputPin.thresholdPercentage-cardinality , ra:GateInputPin.isValuePreFault-datatype , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.name-datatype , ra:GateInputPin.duration-cardinality , ido:IdentifiedObject.description-cardinality , ra:GateInputPin.logicKind-datatype , ra:GateInputPin.absoluteValue-cardinality , ra:GateInputPin.logicKind-cardinality , ra:GateInputPin.Gate-cardinality , ra:GateInputPin.absoluteValue-datatype , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.mRID-datatype , ra:GateInputPin.duration-datatype , ra:PinContingency.Contingency-cardinality , ra:GateInputPin.thresholdPercentage-datatype , ra:GateInputPin.thresholdValue-cardinality , ido:IdentifiedObject.name-cardinality , ra:GateInputPin.negate-datatype , ra:GateInputPin.Gate-valueType , ra:GateInputPin.thresholdValue-datatype , ra:GateInputPin.negate-cardinality ; + sh:targetClass nc:PinContingency . + +ra:ShuntCompensatorModification + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.description-cardinality , ra:GridStateAlteration.maximumPerDay-datatype , ra:GridStateAlteration.normalEnabled-cardinality , ido:IdentifiedObject.description-datatype , ra:GridStateAlteration.minimumActivation-datatype , ra:GridStateAlteration.minimumActivation-cardinality , ido:IdentifiedObject.mRID-datatype , ra:GridStateAlteration.GridStateAlterationRemedialAction-valueType , ra:GridStateAlteration.GridStateAlterationCollection-valueType , ra:GridStateAlteration.normalEnabled-datatype , ido:IdentifiedObject.name-datatype , ra:GridStateAlteration.timePerStage-cardinality , ido:IdentifiedObject.mRID-cardinality , ra:GridStateAlteration.PropertyReference-cardinality , ra:GridStateAlteration.timePerStage-datatype , ra:ShuntCompensatorModification.ShuntCompensator-cardinality , ra:GridStateAlteration.GridStateAlterationRemedialAction-cardinality , ra:GridStateAlteration.maximumPerDay-cardinality , ra:GridStateAlteration.GridStateAlterationCollection-cardinality , ido:IdentifiedObject.name-cardinality ; + sh:targetClass nc:ShuntCompensatorModification . + +ra:TopologyAction.Switch-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "TopologyAction.Switch-cardinality" ; + sh:order 0 ; + sh:path nc:TopologyAction.Switch ; + sh:severity sh:Violation . + +ra:ACDCConverterAction.ACDCConverter-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "ACDCConverterAction.ACDCConverter-cardinality" ; + sh:order 0 ; + sh:path nc:ACDCConverterAction.ACDCConverter ; + sh:severity sh:Violation . + +ra:StaticPropertyRange + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.description-cardinality , ra:RangeConstraint.direction-datatype , ra:RangeConstraint.direction-cardinality , ra:StaticPropertyRange.PropertyReference-cardinality , ra:RangeConstraint.valueKind-cardinality , ido:IdentifiedObject.mRID-datatype , ra:RangeConstraint.valueKind-datatype , ido:IdentifiedObject.name-cardinality , ra:RangeConstraint.GridStateAlteration-cardinality , ra:RangeConstraint.normalValue-datatype , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.mRID-cardinality , ra:RangeConstraint.normalValue-cardinality ; + sh:targetClass nc:StaticPropertyRange . + +ra:RangeConstraint.GridStateAlteration-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group ra:AssociationsGroup ; + sh:in ( nc:TopologyAction nc:TapPositionAction nc:RegulatingControlAction nc:ExternalNetworkInjectionAction nc:PowerElectronicsConnectionAction nc:EquipmentControllerAction nc:EquivalentInjectionAction nc:BatteryUnitAction nc:BiddingZoneAction nc:EnergySourceModification nc:RotatingMachineAction nc:ACDCConverterAction nc:ShuntCompensatorModification nc:ControlFunctionBlockAction nc:LoadAction nc:StaticVarCompensatorAction ) ; + sh:message "One of the following occurs: 1) The value type is not IRI; 2) The value type is not the right class." ; + sh:name "RangeConstraint.GridStateAlteration-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 4 ; + sh:path ( nc:RangeConstraint.GridStateAlteration rdf:type ) ; + sh:severity sh:Violation . + +ra:RemedialActionDependency.kind-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ra:DatatypesGroup ; + sh:in ( nc:RemedialActionDependencyKind.restrictive nc:RemedialActionDependencyKind.exclusive nc:RemedialActionDependencyKind.inclusive nc:RemedialActionDependencyKind.none ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "RemedialActionDependency.kind-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path nc:RemedialActionDependency.kind ; + sh:severity sh:Violation . + +ra:StageTrigger.GateComCondition-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "StageTrigger.GateComCondition-cardinality" ; + sh:order 2 ; + sh:path nc:StageTrigger.GateComCondition ; + sh:severity sh:Violation . + +ra:AssociationsGroup rdf:type sh:PropertyGroup ; + rdfs:label "Associations" ; + sh:order 2 . + +ra:RemedialAction.kind-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ra:DatatypesGroup ; + sh:in ( nc:RemedialActionKind.preventive nc:RemedialActionKind.curative ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "RemedialAction.kind-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 11 ; + sh:path nc:RemedialAction.kind ; + sh:severity sh:Violation . + +ra:PowerElectronicsConnectionAction.PowerElectronicsConnection-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "PowerElectronicsConnectionAction.PowerElectronicsConnection-cardinality" ; + sh:order 0 ; + sh:path nc:PowerElectronicsConnectionAction.PowerElectronicsConnection ; + sh:severity sh:Violation . + +ra:RemedialActionScheme.GateArmed-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group ra:AssociationsGroup ; + sh:in ( nc:Gate ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:Gate" ; + sh:name "RemedialActionScheme.GateArmed-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path ( nc:RemedialActionScheme.GateArmed rdf:type ) ; + sh:severity sh:Violation . + +ra:PinMeasurement.Measurement-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PinMeasurement.Measurement-cardinality" ; + sh:order 0 ; + sh:path nc:PinMeasurement.Measurement ; + sh:severity sh:Violation . + +ra:PinGate rdf:type sh:NodeShape ; + sh:property ra:GateInputPin.negate-datatype , ra:GateInputPin.logicKind-cardinality , ra:GateInputPin.isValuePreFault-cardinality , ra:GateInputPin.duration-datatype , ra:GateInputPin.thresholdValue-datatype , ido:IdentifiedObject.description-datatype , ra:GateInputPin.thresholdPercentage-cardinality , ra:GateInputPin.thresholdValue-cardinality , ido:IdentifiedObject.mRID-cardinality , ra:GateInputPin.absoluteValue-cardinality , ido:IdentifiedObject.name-datatype , ra:GateInputPin.thresholdPercentage-datatype , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.description-cardinality , ra:GateInputPin.logicKind-datatype , ra:PinGate.GateOutput-cardinality , ra:GateInputPin.isValuePreFault-datatype , ra:GateInputPin.absoluteValue-datatype , ido:IdentifiedObject.mRID-datatype , ra:GateInputPin.Gate-cardinality , ra:PinGate.GateOutput-valueType , ra:GateInputPin.duration-cardinality , ra:GateInputPin.negate-cardinality , ra:GateInputPin.Gate-valueType ; + sh:targetClass nc:PinGate . + +ra:GateInputPin.thresholdPercentage-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "GateInputPin.thresholdPercentage-cardinality" ; + sh:order 7 ; + sh:path nc:GateInputPin.thresholdPercentage ; + sh:severity sh:Violation . + +ra:RemedialActionScheme.kind-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "RemedialActionScheme.kind-cardinality" ; + sh:order 1 ; + sh:path nc:RemedialActionScheme.kind ; + sh:severity sh:Violation . + +ra:SchemeRemedialAction + rdf:type sh:NodeShape ; + sh:property ra:RemedialAction.kind-cardinality , ra:RemedialAction.kind-datatype , ra:RemedialAction.isManual-datatype , ra:RemedialAction.penaltyFactor-cardinality , ra:RemedialAction.isManual-cardinality , ra:RemedialAction.isCrossBorderRelevant-cardinality , ra:RemedialAction.RemedialActionSystemOperator-cardinality , ra:RemedialAction.normalAvailable-datatype , ra:RemedialAction.AppointedToRegion-cardinality , ra:RemedialAction.timeToImplement-datatype , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.description-cardinality , ra:RemedialAction.timeToImplement-cardinality , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.description-datatype , ra:RemedialAction.normalAvailable-cardinality , ra:RemedialAction.impactThresholdMargin-cardinality , ra:RemedialAction.impactThresholdMargin-datatype , ido:IdentifiedObject.name-datatype , ra:RemedialAction.isCrossBorderRelevant-datatype , ra:RemedialAction.penaltyFactor-datatype ; + sh:targetClass nc:SchemeRemedialAction . + +ra:EquivalentInjectionAction.EquivalentInjection-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "EquivalentInjectionAction.EquivalentInjection-cardinality" ; + sh:order 0 ; + sh:path nc:EquivalentInjectionAction.EquivalentInjection ; + sh:severity sh:Violation . + +ra:PinDCTerminal.kind-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "PinDCTerminal.kind-cardinality" ; + sh:order 1 ; + sh:path nc:PinDCTerminal.kind ; + sh:severity sh:Violation . + +ra:StageTrigger.GateComCondition-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group ra:AssociationsGroup ; + sh:in ( nc:Gate ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:Gate" ; + sh:name "StageTrigger.GateComCondition-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path ( nc:StageTrigger.GateComCondition rdf:type ) ; + sh:severity sh:Violation . + +ra:Gate rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.name-datatype , ra:Gate.kind-cardinality , ra:Gate.kind-datatype , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.description-datatype ; + sh:targetClass nc:Gate . + +ra:MeasurementCalculatorInput.Measurement-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "MeasurementCalculatorInput.Measurement-cardinality" ; + sh:order 3 ; + sh:path nc:MeasurementCalculatorInput.Measurement ; + sh:severity sh:Violation . + +ra:ExternalNetworkInjectionAction.ExternalNetworkInjection-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "ExternalNetworkInjectionAction.ExternalNetworkInjection-cardinality" ; + sh:order 0 ; + sh:path nc:ExternalNetworkInjectionAction.ExternalNetworkInjection ; + sh:severity sh:Violation . + +ra:ControlFunctionBlockAction.ControlFunctionBlock-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "ControlFunctionBlockAction.ControlFunctionBlock-cardinality" ; + sh:order 0 ; + sh:path nc:ControlFunctionBlockAction.ControlFunctionBlock ; + sh:severity sh:Violation . + +ra:TriggerCondition rdf:type sh:NodeShape ; + sh:property ra:TriggerCondition.GateTrigger-valueType , ido:IdentifiedObject.mRID-datatype , ra:TriggerCondition.RemedialActionScheme-valueType , ra:TriggerCondition.GateTrigger-cardinality , ido:IdentifiedObject.description-cardinality , ra:TriggerCondition.RemedialActionScheme-cardinality , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.description-datatype ; + sh:targetClass nc:TriggerCondition . + +ra:RemedialAction.impactThresholdMargin-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ra:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "RemedialAction.impactThresholdMargin-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 9 ; + sh:path nc:RemedialAction.impactThresholdMargin ; + sh:severity sh:Violation . + +ra:RangeConstraint.direction-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ra:DatatypesGroup ; + sh:in ( nc:RelativeDirectionKind.up nc:RelativeDirectionKind.upAndDown nc:RelativeDirectionKind.down nc:RelativeDirectionKind.none ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "RangeConstraint.direction-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path nc:RangeConstraint.direction ; + sh:severity sh:Violation . + +ra:GridStateAlteration.normalEnabled-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ra:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "GridStateAlteration.normalEnabled-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path nc:GridStateAlteration.normalEnabled ; + sh:severity sh:Violation . + +ra:RemedialActionDependency.kind-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "RemedialActionDependency.kind-cardinality" ; + sh:order 0 ; + sh:path nc:RemedialActionDependency.kind ; + sh:severity sh:Violation . + +ra:RegulatingControlAction + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.mRID-cardinality , ra:GridStateAlteration.PropertyReference-cardinality , ido:IdentifiedObject.description-datatype , ra:GridStateAlteration.GridStateAlterationRemedialAction-cardinality , ra:GridStateAlteration.GridStateAlterationCollection-valueType , ra:GridStateAlteration.normalEnabled-cardinality , ra:GridStateAlteration.timePerStage-cardinality , ra:GridStateAlteration.minimumActivation-cardinality , ido:IdentifiedObject.name-cardinality , ra:GridStateAlteration.timePerStage-datatype , ra:GridStateAlteration.minimumActivation-datatype , ido:IdentifiedObject.name-datatype , ra:GridStateAlteration.GridStateAlterationCollection-cardinality , ra:GridStateAlteration.GridStateAlterationRemedialAction-valueType , ra:GridStateAlteration.normalEnabled-datatype , ra:RegulatingControlAction.RegulatingControl-cardinality , ra:GridStateAlteration.maximumPerDay-cardinality , ido:IdentifiedObject.mRID-datatype , ra:GridStateAlteration.maximumPerDay-datatype , ido:IdentifiedObject.description-cardinality ; + sh:targetClass nc:RegulatingControlAction . + +ra:BatteryUnitAction rdf:type sh:NodeShape ; + sh:property ra:GridStateAlteration.normalEnabled-datatype , ra:BatteryUnitAction.BatteryUnit-cardinality , ra:GridStateAlteration.timePerStage-cardinality , ra:GridStateAlteration.GridStateAlterationRemedialAction-valueType , ra:GridStateAlteration.normalEnabled-cardinality , ra:GridStateAlteration.GridStateAlterationCollection-valueType , ra:GridStateAlteration.GridStateAlterationCollection-cardinality , ra:GridStateAlteration.maximumPerDay-datatype , ra:GridStateAlteration.GridStateAlterationRemedialAction-cardinality , ra:GridStateAlteration.timePerStage-datatype , ra:GridStateAlteration.minimumActivation-cardinality , ra:GridStateAlteration.minimumActivation-datatype , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.name-cardinality , ra:GridStateAlteration.PropertyReference-cardinality , ra:GridStateAlteration.maximumPerDay-cardinality , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.description-cardinality ; + sh:targetClass nc:BatteryUnitAction . + +ra:MeasurementCalculatorInput.absoluteValue-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "MeasurementCalculatorInput.absoluteValue-cardinality" ; + sh:order 1 ; + sh:path nc:MeasurementCalculatorInput.absoluteValue ; + sh:severity sh:Violation . + +ra:GridStateAlterationCollection + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.description-cardinality ; + sh:targetClass nc:GridStateAlterationCollection . + +ra:PinEquipment.PropertyReference-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "PinEquipment.PropertyReference-cardinality" ; + sh:order 0 ; + sh:path nc:PinEquipment.PropertyReference ; + sh:severity sh:Violation . + +ra:PinPowerTransferCorridor + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.name-cardinality , ra:GateInputPin.isValuePreFault-datatype , ra:GateInputPin.thresholdPercentage-datatype , ra:GateInputPin.thresholdPercentage-cardinality , ra:GateInputPin.negate-datatype , ra:PinPowerTransferCorridor.kind-datatype , ra:GateInputPin.logicKind-datatype , ra:GateInputPin.logicKind-cardinality , ra:GateInputPin.Gate-valueType , ra:GateInputPin.thresholdValue-cardinality , ra:GateInputPin.absoluteValue-cardinality , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.mRID-cardinality , ra:GateInputPin.duration-datatype , ra:PinPowerTransferCorridor.PowerTransferCorridor-cardinality , ido:IdentifiedObject.mRID-datatype , ra:GateInputPin.negate-cardinality , ra:GateInputPin.isValuePreFault-cardinality , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.description-datatype , ra:GateInputPin.duration-cardinality , ra:GateInputPin.thresholdValue-datatype , ra:GateInputPin.Gate-cardinality , ra:GateInputPin.absoluteValue-datatype , ra:PinPowerTransferCorridor.kind-cardinality ; + sh:targetClass nc:PinPowerTransferCorridor . + +ra:MeasurementCalculatorInput.order-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "MeasurementCalculatorInput.order-cardinality" ; + sh:order 0 ; + sh:path nc:MeasurementCalculatorInput.order ; + sh:severity sh:Violation . + +ra:MeasurementCalculatorInput.MeasurementCalculator-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group ra:AssociationsGroup ; + sh:in ( nc:MeasurementCalculator ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:MeasurementCalculator" ; + sh:name "MeasurementCalculatorInput.MeasurementCalculator-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path ( nc:MeasurementCalculatorInput.MeasurementCalculator rdf:type ) ; + sh:severity sh:Violation . + +ra:RemedialAction.normalAvailable-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "RemedialAction.normalAvailable-cardinality" ; + sh:order 13 ; + sh:path nc:RemedialAction.normalAvailable ; + sh:severity sh:Violation . + +ido:CardinalityGroup rdf:type sh:PropertyGroup ; + rdfs:label "CardinalityIO" ; + sh:order 0 . + +ra:RemedialAction.penaltyFactor-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "RemedialAction.penaltyFactor-cardinality" ; + sh:order 15 ; + sh:path nc:RemedialAction.penaltyFactor ; + sh:severity sh:Violation . + +ra:Stage.GridStateAlterationCollection-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ra:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Stage.GridStateAlterationCollection-cardinality" ; + sh:order 2 ; + sh:path nc:Stage.GridStateAlterationCollection ; + sh:severity sh:Violation . + +ra:EquipmentControllerAction + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.name-datatype , ra:GridStateAlteration.GridStateAlterationCollection-valueType , ido:IdentifiedObject.mRID-cardinality , ra:GridStateAlteration.GridStateAlterationRemedialAction-cardinality , ra:GridStateAlteration.minimumActivation-datatype , ra:GridStateAlteration.minimumActivation-cardinality , ra:EquipmentControllerAction.EquipmentController-cardinality , ido:IdentifiedObject.mRID-datatype , ra:GridStateAlteration.timePerStage-cardinality , ra:GridStateAlteration.normalEnabled-cardinality , ra:GridStateAlteration.timePerStage-datatype , ra:GridStateAlteration.GridStateAlterationCollection-cardinality , ra:GridStateAlteration.maximumPerDay-datatype , ido:IdentifiedObject.description-cardinality , ra:GridStateAlteration.PropertyReference-cardinality , ra:GridStateAlteration.GridStateAlterationRemedialAction-valueType , ra:GridStateAlteration.normalEnabled-datatype , ido:IdentifiedObject.name-cardinality , ra:GridStateAlteration.maximumPerDay-cardinality , ido:IdentifiedObject.description-datatype ; + sh:targetClass nc:EquipmentControllerAction . diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/RemedialActionScheduleProfile_v2_2_SHACL.ttl b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/RemedialActionScheduleProfile_v2_2_SHACL.ttl new file mode 100644 index 0000000000..e37636b1dd --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/RemedialActionScheduleProfile_v2_2_SHACL.ttl @@ -0,0 +1,1398 @@ +@base . +@prefix adms: . +@prefix cim: . +@prefix cims: . +@prefix dash: . +@prefix dc: . +@prefix dcat: . +@prefix dcterms: . +@prefix dm: . +@prefix eu: . +@prefix eumd: . +@prefix euvoc: . +@prefix ido: . +@prefix md: . +@prefix nc: . +@prefix owl: . +@prefix prof: . +@prefix profcim: . +@prefix prov: . +@prefix ras: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix skos: . +@prefix xsd: . + +ras:PowerTimePoint.price-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:decimal ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ras:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerTimePoint.price-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path nc:PowerTimePoint.price ; + sh:severity sh:Violation . + +ras:EventTimePoint.EventSchedule-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group ras:AssociationsGroup ; + sh:in ( nc:EventSchedule ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:EventSchedule" ; + sh:name "EventTimePoint.EventSchedule-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path ( nc:EventTimePoint.EventSchedule rdf:type ) ; + sh:severity sh:Violation . + +ras:RemedialActionScheduleAcceptance.SystemOperator-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "RemedialActionScheduleAcceptance.SystemOperator-cardinality" ; + sh:order 0 ; + sh:path nc:RemedialActionScheduleAcceptance.SystemOperator ; + sh:severity sh:Violation . + +ras:RemedialActionSchedule.RemedialAction-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "RemedialActionSchedule.RemedialAction-cardinality" ; + sh:order 8 ; + sh:path nc:RemedialActionSchedule.RemedialAction ; + sh:severity sh:Violation . + +ras:RemedialActionCost.mRID-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ras:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "RemedialActionCost.mRID-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:RemedialActionCost.mRID ; + sh:severity sh:Violation . + +ras:ProposingRemedialActionScheduleShare.ProposingEntity-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "ProposingRemedialActionScheduleShare.ProposingEntity-cardinality" ; + sh:order 1 ; + sh:path nc:ProposingRemedialActionScheduleShare.ProposingEntity ; + sh:severity sh:Violation . + +ras:RemedialActionScheme.armed-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "RemedialActionScheme.armed-cardinality" ; + sh:order 0 ; + sh:path nc:RemedialActionScheme.armed ; + sh:severity sh:Violation . + +ras:ProposingRemedialActionScheduleShare.RemedialActionSchedule-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group ras:AssociationsGroup ; + sh:in ( nc:RemedialActionSchedule ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:RemedialActionSchedule" ; + sh:name "ProposingRemedialActionScheduleShare.RemedialActionSchedule-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path ( nc:ProposingRemedialActionScheduleShare.RemedialActionSchedule rdf:type ) ; + sh:severity sh:Violation . + +ras:GenericValueTimePoint.GenericValueSchedule-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group ras:AssociationsGroup ; + sh:in ( nc:GridStateIntensitySchedule ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:GridStateIntensitySchedule" ; + sh:name "GenericValueTimePoint.GenericValueSchedule-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path ( nc:GenericValueTimePoint.GenericValueSchedule rdf:type ) ; + sh:severity sh:Violation . + +ras:RemedialActionCost.processingFee-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "RemedialActionCost.processingFee-cardinality" ; + sh:order 5 ; + sh:path nc:RemedialActionCost.processingFee ; + sh:severity sh:Violation . + +ras:PowerTimePoint.activatedP-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ras:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerTimePoint.activatedP-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 6 ; + sh:path nc:PowerTimePoint.activatedP ; + sh:severity sh:Violation . + +ras:RemedialActionCost.kind-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ras:DatatypesGroup ; + sh:in ( nc:CostSettledKind.final nc:CostSettledKind.provisional nc:CostSettledKind.indicative ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "RemedialActionCost.kind-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path nc:RemedialActionCost.kind ; + sh:severity sh:Violation . + +ras:PowerScheduleAction.PowerSchedule-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "PowerScheduleAction.PowerSchedule-cardinality" ; + sh:order 2 ; + sh:path nc:PowerScheduleAction.PowerSchedule ; + sh:severity sh:Violation . + +ras:AvailabilitySchedule.priority-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "AvailabilitySchedule.priority-cardinality" ; + sh:order 2 ; + sh:path nc:AvailabilitySchedule.priority ; + sh:severity sh:Violation . + +ras:RemedialActionCost.costAllocationTime-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:dateTime ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ras:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "RemedialActionCost.costAllocationTime-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path nc:RemedialActionCost.costAllocationTime ; + sh:severity sh:Violation . + +ras:RemedialActionCost.opportunityCost-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "RemedialActionCost.opportunityCost-cardinality" ; + sh:order 10 ; + sh:path nc:RemedialActionCost.opportunityCost ; + sh:severity sh:Violation . + +ras:RemedialActionCost.shutdownCost-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:decimal ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ras:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "RemedialActionCost.shutdownCost-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 8 ; + sh:path nc:RemedialActionCost.shutdownCost ; + sh:severity sh:Violation . + +ras:BaseTimeSeries.interpolationKind-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "BaseTimeSeries.interpolationKind-cardinality" ; + sh:order 2 ; + sh:path nc:BaseTimeSeries.interpolationKind ; + sh:severity sh:Violation . + +ras:GenericValueTimePoint.atTime-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "GenericValueTimePoint.atTime-cardinality" ; + sh:order 0 ; + sh:path nc:GenericValueTimePoint.atTime ; + sh:severity sh:Violation . + +ras:RemedialActionSchedule.totalCostCurrency-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ras:DatatypesGroup ; + sh:in ( cim:Currency.DJF cim:Currency.ZMK cim:Currency.RUB cim:Currency.BRL cim:Currency.ANG cim:Currency.RWF cim:Currency.BND cim:Currency.MNT cim:Currency.AUD cim:Currency.BOV cim:Currency.XPF cim:Currency.UZS cim:Currency.THB cim:Currency.DOP cim:Currency.GTQ cim:Currency.AED cim:Currency.SOS cim:Currency.VUV cim:Currency.VEF cim:Currency.TOP cim:Currency.IQD cim:Currency.AMD cim:Currency.AZN cim:Currency.AWG cim:Currency.DZD cim:Currency.USD cim:Currency.KMF cim:Currency.ZAR cim:Currency.MVR cim:Currency.BTN cim:Currency.SLL cim:Currency.PGK cim:Currency.LAK cim:Currency.FKP cim:Currency.NAD cim:Currency.NPR cim:Currency.ZWL cim:Currency.PKR cim:Currency.XAF cim:Currency.CAD cim:Currency.COP cim:Currency.TZS cim:Currency.BIF cim:Currency.BHD cim:Currency.MDL cim:Currency.TJS cim:Currency.BOB cim:Currency.NZD cim:Currency.LSL cim:Currency.VND cim:Currency.MGA cim:Currency.SEK cim:Currency.ERN cim:Currency.NGN cim:Currency.KES cim:Currency.ETB cim:Currency.SRD cim:Currency.MAD cim:Currency.MOP cim:Currency.IRR cim:Currency.SBD cim:Currency.JMD cim:Currency.BWP cim:Currency.CRC cim:Currency.SHP cim:Currency.UGX cim:Currency.MMK cim:Currency.SAR cim:Currency.TTD cim:Currency.HNL cim:Currency.LTL cim:Currency.ALL cim:Currency.SDG cim:Currency.CLF cim:Currency.HTG cim:Currency.KPW cim:Currency.GYD cim:Currency.GHS cim:Currency.KWD cim:Currency.NOK cim:Currency.GEL cim:Currency.BZD cim:Currency.CDF cim:Currency.EUR cim:Currency.MYR cim:Currency.SYP cim:Currency.HKD cim:Currency.BYR cim:Currency.NIO cim:Currency.JPY cim:Currency.AOA cim:Currency.LYD cim:Currency.CNY cim:Currency.ILS cim:Currency.RON cim:Currency.BGN cim:Currency.BBD cim:Currency.XCD cim:Currency.PYG cim:Currency.PLN cim:Currency.TMT cim:Currency.KGS cim:Currency.STD cim:Currency.AFN cim:Currency.MXN cim:Currency.MKD cim:Currency.MWK cim:Currency.LRD cim:Currency.JOD cim:Currency.IDR cim:Currency.HUF cim:Currency.OMR cim:Currency.UAH cim:Currency.BSD cim:Currency.KRW cim:Currency.SCR cim:Currency.RSD cim:Currency.LVL cim:Currency.TND cim:Currency.PEN cim:Currency.KYD cim:Currency.GIP cim:Currency.CUC cim:Currency.FJD cim:Currency.WST cim:Currency.KHR cim:Currency.TWD cim:Currency.CVE cim:Currency.YER cim:Currency.MRO cim:Currency.QAR cim:Currency.UYU cim:Currency.ARS cim:Currency.MZN cim:Currency.BDT cim:Currency.EGP cim:Currency.BAM cim:Currency.SZL cim:Currency.INR cim:Currency.KZT cim:Currency.CLP cim:Currency.DKK cim:Currency.ISK cim:Currency.BMD cim:Currency.CZK cim:Currency.TRY cim:Currency.GBP cim:Currency.PAB cim:Currency.EEK cim:Currency.XOF cim:Currency.COU cim:Currency.CHF cim:Currency.GNF cim:Currency.GMD cim:Currency.CUP cim:Currency.LBP cim:Currency.HRK cim:Currency.LKR cim:Currency.PHP cim:Currency.MUR cim:Currency.SGD ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "RemedialActionSchedule.totalCostCurrency-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 6 ; + sh:path nc:RemedialActionSchedule.totalCostCurrency ; + sh:severity sh:Violation . + +ras:PowerTimePoint.price-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerTimePoint.price-cardinality" ; + sh:order 2 ; + sh:path nc:PowerTimePoint.price ; + sh:severity sh:Violation . + +ras:RemedialActionScheme + rdf:type sh:NodeShape ; + sh:property ras:RemedialActionScheme.armed-datatype , ras:RemedialActionScheme.armed-cardinality ; + sh:targetClass nc:RemedialActionScheme . + +ras:EventTimePoint rdf:type sh:NodeShape ; + sh:property ras:EventTimePoint.atTime-datatype , ras:EventTimePoint.atTime-cardinality , ras:EventTimePoint.EventSchedule-valueType , ras:EventTimePoint.EventSchedule-cardinality , ras:EventTimePoint.isActive-datatype , ras:EventTimePoint.isActive-cardinality ; + sh:targetClass nc:EventTimePoint . + +ras:ProposingRemedialActionScheduleShare + rdf:type sh:NodeShape ; + sh:property ras:ProposingRemedialActionScheduleShare.costSharingFactor-datatype , ras:ProposingRemedialActionScheduleShare.costSharingFactor-cardinality , ras:ProposingRemedialActionScheduleShare.RemedialActionSchedule-valueType , ras:ProposingRemedialActionScheduleShare.RemedialActionSchedule-cardinality , ras:ProposingRemedialActionScheduleShare.ProposingEntity-cardinality , ras:ProposingRemedialActionScheduleShare.mRID-datatype , ras:ProposingRemedialActionScheduleShare.mRID-cardinality ; + sh:targetClass nc:ProposingRemedialActionScheduleShare . + +ras:PowerTimePoint.activatedPrice-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:decimal ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ras:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerTimePoint.activatedPrice-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:PowerTimePoint.activatedPrice ; + sh:severity sh:Violation . + +ras:GridStateIntensitySchedule + rdf:type sh:NodeShape ; + sh:property ras:GridStateIntensitySchedule.GridStateAlteration-cardinality , ras:GenericValueSchedule.RemedialActionSchedule-valueType , ido:IdentifiedObject.description-cardinality , ras:BaseTimeSeries.interpolationKind-datatype , ras:BaseTimeSeries.interpolationKind-cardinality , ido:IdentifiedObject.name-cardinality , ras:GridStateIntensitySchedule.valueKind-cardinality , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.description-datatype , ras:GridStateIntensitySchedule.valueKind-datatype , ras:GenericValueSchedule.RemedialActionSchedule-cardinality , ido:IdentifiedObject.mRID-datatype ; + sh:targetClass nc:GridStateIntensitySchedule . + +ras:ProposingRemedialActionScheduleShare.mRID-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "ProposingRemedialActionScheduleShare.mRID-cardinality" ; + sh:order 0 ; + sh:path nc:ProposingRemedialActionScheduleShare.mRID ; + sh:severity sh:Violation . + +ras:RemedialActionCost.startupCost-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "RemedialActionCost.startupCost-cardinality" ; + sh:order 3 ; + sh:path nc:RemedialActionCost.startupCost ; + sh:severity sh:Violation . + +ras:RemedialActionSchedule.RemedialAction-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group ras:AssociationsGroup ; + sh:in ( nc:SchemeRemedialAction nc:AvailabilityRemedialAction nc:GridStateAlterationRemedialAction nc:RedispatchRemedialAction nc:CountertradeRemedialAction) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:SchemeRemedialAction" ; + sh:name "RemedialActionSchedule.RemedialAction-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 8 ; + sh:path ( nc:RemedialActionSchedule.RemedialAction rdf:type ) ; + sh:severity sh:Violation . + +ras:AvailabilitySchedule + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.description-datatype , ras:AvailabilitySchedule.priority-datatype , ido:IdentifiedObject.description-cardinality , ras:AvailabilitySchedule.isCancelled-cardinality , ras:AvailabilitySchedule.RemedialAction-cardinality , ras:AvailabilitySchedule.priority-cardinality , ras:AvailabilitySchedule.isCancelled-datatype , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.name-datatype ; + sh:targetClass nc:AvailabilitySchedule . + +ras:EventSchedule rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.mRID-datatype , ras:BaseTimeSeries.interpolationKind-cardinality , ido:IdentifiedObject.name-cardinality , ras:BaseTimeSeries.interpolationKind-datatype , ras:EventSchedule.RemedialActionSchedule-cardinality , ras:EventSchedule.RemedialActionSchedule-valueType , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.description-datatype ; + sh:targetClass nc:EventSchedule . + +ras:RemedialActionCost.kind-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "RemedialActionCost.kind-cardinality" ; + sh:order 2 ; + sh:path nc:RemedialActionCost.kind ; + sh:severity sh:Violation . + +ras:RemedialActionSchedule.Contingency-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "RemedialActionSchedule.Contingency-cardinality" ; + sh:order 1 ; + sh:path nc:RemedialActionSchedule.Contingency ; + sh:severity sh:Violation . + +ras:BaseTimeSeries.interpolationKind-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ras:DatatypesGroup ; + sh:in ( nc:TimeSeriesInterpolationKind.next nc:TimeSeriesInterpolationKind.none ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "BaseTimeSeries.interpolationKind-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path nc:BaseTimeSeries.interpolationKind ; + sh:severity sh:Violation . + +ras:PowerTimePoint.PowerSchedule-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "PowerTimePoint.PowerSchedule-cardinality" ; + sh:order 1 ; + sh:path nc:PowerTimePoint.PowerSchedule ; + sh:severity sh:Violation . + +ras:RemedialActionCost.RemedialActionSchedule-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "RemedialActionCost.RemedialActionSchedule-cardinality" ; + sh:order 9 ; + sh:path nc:RemedialActionCost.RemedialActionSchedule ; + sh:severity sh:Violation . + +ras:PowerSchedule rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.name-datatype , ras:BaseTimeSeries.interpolationKind-datatype , ido:IdentifiedObject.mRID-datatype , ras:BaseTimeSeries.interpolationKind-cardinality , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.name-cardinality ; + sh:targetClass nc:PowerSchedule . + +ras:PowerTimePoint rdf:type sh:NodeShape ; + sh:property ras:PowerTimePoint.price-datatype , ras:PowerTimePoint.PowerSchedule-cardinality , ras:PowerTimePoint.activatedPrice-cardinality , ras:PowerTimePoint.PowerSchedule-valueType , ras:PowerTimePoint.atTime-cardinality , ras:PowerTimePoint.activatedP-cardinality , ras:PowerTimePoint.activatedP-datatype , ras:PowerTimePoint.atTime-datatype , ras:PowerTimePoint.p-cardinality , ras:PowerTimePoint.activatedPrice-datatype , ras:PowerTimePoint.q-datatype , ras:PowerTimePoint.price-cardinality , ras:PowerTimePoint.p-datatype , ras:PowerTimePoint.q-cardinality ; + sh:targetClass nc:PowerTimePoint . + +ras:PowerTimePoint.atTime-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:dateTime ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ras:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerTimePoint.atTime-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path nc:PowerTimePoint.atTime ; + sh:severity sh:Violation . + +ido:IdentifiedObject.description-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ido:DatatypesGroupIO ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "IdentifiedObject.description-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.description ; + sh:severity sh:Violation . + +ras:RemedialActionCost.mRID-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "RemedialActionCost.mRID-cardinality" ; + sh:order 1 ; + sh:path nc:RemedialActionCost.mRID ; + sh:severity sh:Violation . + +ras:PowerTimePoint.atTime-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "PowerTimePoint.atTime-cardinality" ; + sh:order 4 ; + sh:path nc:PowerTimePoint.atTime ; + sh:severity sh:Violation . + +ras:GenericValueTimePoint.GenericValueSchedule-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "GenericValueTimePoint.GenericValueSchedule-cardinality" ; + sh:order 2 ; + sh:path nc:GenericValueTimePoint.GenericValueSchedule ; + sh:severity sh:Violation . + +ras:RemedialActionCost.shutdownCost-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "RemedialActionCost.shutdownCost-cardinality" ; + sh:order 8 ; + sh:path nc:RemedialActionCost.shutdownCost ; + sh:severity sh:Violation . + +ras:RemedialActionScheduleAcceptance.kind-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "RemedialActionScheduleAcceptance.kind-cardinality" ; + sh:order 3 ; + sh:path nc:RemedialActionScheduleAcceptance.kind ; + sh:severity sh:Violation . + +ido:IdentifiedObject.description-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ido:CardinalityIO ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "IdentifiedObject.description-cardinality" ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.description ; + sh:severity sh:Violation . + +ras:RemedialActionScheme.armed-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ras:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "RemedialActionScheme.armed-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:RemedialActionScheme.armed ; + sh:severity sh:Violation . + +ras:AvailabilitySchedule.priority-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:integer ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ras:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "AvailabilitySchedule.priority-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path nc:AvailabilitySchedule.priority ; + sh:severity sh:Violation . + +ras:RemedialActionScheduleAcceptance.mRID-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ras:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "RemedialActionScheduleAcceptance.mRID-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path nc:RemedialActionScheduleAcceptance.mRID ; + sh:severity sh:Violation . + +ras:PowerScheduleAction.energyPrice-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerScheduleAction.energyPrice-cardinality" ; + sh:order 1 ; + sh:path nc:PowerScheduleAction.energyPrice ; + sh:severity sh:Violation . + +ras:PowerScheduleAction.energyPrice-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:decimal ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ras:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerScheduleAction.energyPrice-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:PowerScheduleAction.energyPrice ; + sh:severity sh:Violation . + +ras:RemedialActionCost.startupCost-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:decimal ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ras:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "RemedialActionCost.startupCost-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path nc:RemedialActionCost.startupCost ; + sh:severity sh:Violation . + +ido:IdentifiedObject.name-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ido:DatatypesGroupIO ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "IdentifiedObject.name-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.name ; + sh:severity sh:Violation . + +ido:IdentifiedObject.mRID-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ido:DatatypesGroupIO ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "IdentifiedObject.mRID-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.mRID ; + sh:severity sh:Violation . + +ras:RemedialActionSchedule.AssignedRegion-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "RemedialActionSchedule.AssignedRegion-cardinality" ; + sh:order 3 ; + sh:path nc:RemedialActionSchedule.AssignedRegion ; + sh:severity sh:Violation . + +ras:PowerScheduleAction.RemedialActionSchedule-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group ras:AssociationsGroup ; + sh:in ( nc:RemedialActionSchedule ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:RemedialActionSchedule" ; + sh:name "PowerScheduleAction.RemedialActionSchedule-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path ( nc:PowerScheduleAction.RemedialActionSchedule rdf:type ) ; + sh:severity sh:Violation . + +ras:RemedialActionCost.savedFuelCost-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "RemedialActionCost.savedFuelCost-cardinality" ; + sh:order 6 ; + sh:path nc:RemedialActionCost.savedFuelCost ; + sh:severity sh:Violation . + +ras:PowerTimePoint.q-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ras:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerTimePoint.q-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 5 ; + sh:path nc:PowerTimePoint.q ; + sh:severity sh:Violation . + +ras:GridStateIntensitySchedule.GridStateAlteration-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "GridStateIntensitySchedule.GridStateAlteration-cardinality" ; + sh:order 0 ; + sh:path nc:GridStateIntensitySchedule.GridStateAlteration ; + sh:severity sh:Violation . + +ras:RemedialActionScheduleAcceptance.mRID-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "RemedialActionScheduleAcceptance.mRID-cardinality" ; + sh:order 2 ; + sh:path nc:RemedialActionScheduleAcceptance.mRID ; + sh:severity sh:Violation . + +ras:RemedialActionCost.otherCost-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:decimal ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ras:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "RemedialActionCost.otherCost-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:RemedialActionCost.otherCost ; + sh:severity sh:Violation . + +ras:RemedialActionCost.RemedialActionSchedule-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group ras:AssociationsGroup ; + sh:in ( nc:RemedialActionSchedule ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:RemedialActionSchedule" ; + sh:name "RemedialActionCost.RemedialActionSchedule-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 9 ; + sh:path ( nc:RemedialActionCost.RemedialActionSchedule rdf:type ) ; + sh:severity sh:Violation . + +ras:GenericValueTimePoint.atTime-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:dateTime ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ras:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "GenericValueTimePoint.atTime-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:GenericValueTimePoint.atTime ; + sh:severity sh:Violation . + +ras:AvailabilitySchedule.isCancelled-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "AvailabilitySchedule.isCancelled-cardinality" ; + sh:order 1 ; + sh:path nc:AvailabilitySchedule.isCancelled ; + sh:severity sh:Violation . + +ras:RemedialActionSchedule.statusReason-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "RemedialActionSchedule.statusReason-cardinality" ; + sh:order 13 ; + sh:path nc:RemedialActionSchedule.statusReason ; + sh:severity sh:Violation . + +ras:EventSchedule.RemedialActionSchedule-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "EventSchedule.RemedialActionSchedule-cardinality" ; + sh:order 0 ; + sh:path nc:EventSchedule.RemedialActionSchedule ; + sh:severity sh:Violation . + +ido:IdentifiedObject.mRID-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ido:CardinalityIO ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "IdentifiedObject.mRID-cardinality" ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.mRID ; + sh:severity sh:Violation . + +ras:RemedialActionScheduleAcceptance + rdf:type sh:NodeShape ; + sh:property ras:RemedialActionScheduleAcceptance.kind-datatype , ras:RemedialActionScheduleAcceptance.kind-cardinality , ras:RemedialActionScheduleAcceptance.mRID-datatype , ras:RemedialActionScheduleAcceptance.mRID-cardinality , ras:RemedialActionScheduleAcceptance.RemedialActionSchedule-valueType , ras:RemedialActionScheduleAcceptance.RemedialActionSchedule-cardinality , ras:RemedialActionScheduleAcceptance.SystemOperator-cardinality ; + sh:targetClass nc:RemedialActionScheduleAcceptance . + +ras:GenericValueSchedule.RemedialActionSchedule-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "GenericValueSchedule.RemedialActionSchedule-cardinality" ; + sh:order 2 ; + sh:path nc:GenericValueSchedule.RemedialActionSchedule ; + sh:severity sh:Violation . + +ras:EventTimePoint.atTime-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:dateTime ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ras:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "EventTimePoint.atTime-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path nc:EventTimePoint.atTime ; + sh:severity sh:Violation . + +ras:PowerTimePoint.activatedPrice-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerTimePoint.activatedPrice-cardinality" ; + sh:order 0 ; + sh:path nc:PowerTimePoint.activatedPrice ; + sh:severity sh:Violation . + +ras:EventTimePoint.isActive-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ras:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "EventTimePoint.isActive-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:EventTimePoint.isActive ; + sh:severity sh:Violation . + +ras:GenericValueTimePoint + rdf:type sh:NodeShape ; + sh:property ras:GenericValueTimePoint.GenericValueSchedule-valueType , ras:GenericValueTimePoint.GenericValueSchedule-cardinality , ras:GenericValueTimePoint.value-datatype , ras:GenericValueTimePoint.value-cardinality , ras:GenericValueTimePoint.atTime-datatype , ras:GenericValueTimePoint.atTime-cardinality ; + sh:targetClass nc:GenericValueTimePoint . + +ras:SchemeRemedialAction.RemedialActionScheme-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group ras:AssociationsGroup ; + sh:in ( nc:RemedialActionScheme ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:RemedialActionScheme" ; + sh:name "SchemeRemedialAction.RemedialActionScheme-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path ( nc:SchemeRemedialAction.RemedialActionScheme rdf:type ) ; + sh:severity sh:Violation . + +ras:GenericValueTimePoint.value-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ras:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "GenericValueTimePoint.value-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:GenericValueTimePoint.value ; + sh:severity sh:Violation . + +ido:DatatypesGroupIO rdf:type sh:PropertyGroup ; + rdfs:label "DatatypesIO" ; + sh:order 1 . + +ras:PowerScheduleAction.currency-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ras:DatatypesGroup ; + sh:in ( cim:Currency.DJF cim:Currency.ZMK cim:Currency.RUB cim:Currency.BRL cim:Currency.ANG cim:Currency.RWF cim:Currency.BND cim:Currency.MNT cim:Currency.AUD cim:Currency.BOV cim:Currency.XPF cim:Currency.UZS cim:Currency.THB cim:Currency.DOP cim:Currency.GTQ cim:Currency.AED cim:Currency.SOS cim:Currency.VUV cim:Currency.VEF cim:Currency.TOP cim:Currency.IQD cim:Currency.AMD cim:Currency.AZN cim:Currency.AWG cim:Currency.DZD cim:Currency.USD cim:Currency.KMF cim:Currency.ZAR cim:Currency.MVR cim:Currency.BTN cim:Currency.SLL cim:Currency.PGK cim:Currency.LAK cim:Currency.FKP cim:Currency.NAD cim:Currency.NPR cim:Currency.ZWL cim:Currency.PKR cim:Currency.XAF cim:Currency.CAD cim:Currency.COP cim:Currency.TZS cim:Currency.BIF cim:Currency.BHD cim:Currency.MDL cim:Currency.TJS cim:Currency.BOB cim:Currency.NZD cim:Currency.LSL cim:Currency.VND cim:Currency.MGA cim:Currency.SEK cim:Currency.ERN cim:Currency.NGN cim:Currency.KES cim:Currency.ETB cim:Currency.SRD cim:Currency.MAD cim:Currency.MOP cim:Currency.IRR cim:Currency.SBD cim:Currency.JMD cim:Currency.BWP cim:Currency.CRC cim:Currency.SHP cim:Currency.UGX cim:Currency.MMK cim:Currency.SAR cim:Currency.TTD cim:Currency.HNL cim:Currency.LTL cim:Currency.ALL cim:Currency.SDG cim:Currency.CLF cim:Currency.HTG cim:Currency.KPW cim:Currency.GYD cim:Currency.GHS cim:Currency.KWD cim:Currency.NOK cim:Currency.GEL cim:Currency.BZD cim:Currency.CDF cim:Currency.EUR cim:Currency.MYR cim:Currency.SYP cim:Currency.HKD cim:Currency.BYR cim:Currency.NIO cim:Currency.JPY cim:Currency.AOA cim:Currency.LYD cim:Currency.CNY cim:Currency.ILS cim:Currency.RON cim:Currency.BGN cim:Currency.BBD cim:Currency.XCD cim:Currency.PYG cim:Currency.PLN cim:Currency.TMT cim:Currency.KGS cim:Currency.STD cim:Currency.AFN cim:Currency.MXN cim:Currency.MKD cim:Currency.MWK cim:Currency.LRD cim:Currency.JOD cim:Currency.IDR cim:Currency.HUF cim:Currency.OMR cim:Currency.UAH cim:Currency.BSD cim:Currency.KRW cim:Currency.SCR cim:Currency.RSD cim:Currency.LVL cim:Currency.TND cim:Currency.PEN cim:Currency.KYD cim:Currency.GIP cim:Currency.CUC cim:Currency.FJD cim:Currency.WST cim:Currency.KHR cim:Currency.TWD cim:Currency.CVE cim:Currency.YER cim:Currency.MRO cim:Currency.QAR cim:Currency.UYU cim:Currency.ARS cim:Currency.MZN cim:Currency.BDT cim:Currency.EGP cim:Currency.BAM cim:Currency.SZL cim:Currency.INR cim:Currency.KZT cim:Currency.CLP cim:Currency.DKK cim:Currency.ISK cim:Currency.BMD cim:Currency.CZK cim:Currency.TRY cim:Currency.GBP cim:Currency.PAB cim:Currency.EEK cim:Currency.XOF cim:Currency.COU cim:Currency.CHF cim:Currency.GNF cim:Currency.GMD cim:Currency.CUP cim:Currency.LBP cim:Currency.HRK cim:Currency.LKR cim:Currency.PHP cim:Currency.MUR cim:Currency.SGD ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "PowerScheduleAction.currency-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 4 ; + sh:path nc:PowerScheduleAction.currency ; + sh:severity sh:Violation . + +ras:PowerScheduleAction.currency-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerScheduleAction.currency-cardinality" ; + sh:order 4 ; + sh:path nc:PowerScheduleAction.currency ; + sh:severity sh:Violation . + +ras:ProposingRemedialActionScheduleShare.costSharingFactor-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:decimal ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ras:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "ProposingRemedialActionScheduleShare.costSharingFactor-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path nc:ProposingRemedialActionScheduleShare.costSharingFactor ; + sh:severity sh:Violation . + +ras:GenericValueTimePoint.value-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "GenericValueTimePoint.value-cardinality" ; + sh:order 1 ; + sh:path nc:GenericValueTimePoint.value ; + sh:severity sh:Violation . + +ras:RemedialActionScheduleAcceptance.RemedialActionSchedule-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "RemedialActionScheduleAcceptance.RemedialActionSchedule-cardinality" ; + sh:order 1 ; + sh:path nc:RemedialActionScheduleAcceptance.RemedialActionSchedule ; + sh:severity sh:Violation . + +ras:RemedialActionCost.operationalCost-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "RemedialActionCost.operationalCost-cardinality" ; + sh:order 7 ; + sh:path nc:RemedialActionCost.operationalCost ; + sh:severity sh:Violation . + +ras:EventTimePoint.isActive-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "EventTimePoint.isActive-cardinality" ; + sh:order 0 ; + sh:path nc:EventTimePoint.isActive ; + sh:severity sh:Violation . + +ras:RedispatchScheduleAction + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.name-datatype , ras:PowerScheduleAction.energyPrice-datatype , ras:PowerScheduleAction.PowerBidSchedule-cardinality , ras:PowerScheduleAction.RemedialActionSchedule-valueType , ido:IdentifiedObject.mRID-datatype , ras:PowerScheduleAction.currency-cardinality , ras:PowerScheduleAction.PowerSchedule-valueType , ras:RedispatchScheduleAction.ScheduleResource-cardinality , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.description-datatype , ras:PowerScheduleAction.currency-datatype , ras:PowerScheduleAction.energyPrice-cardinality , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.description-cardinality , ras:PowerScheduleAction.PowerSchedule-cardinality , ras:PowerScheduleAction.RemedialActionSchedule-cardinality ; + sh:targetClass nc:RedispatchScheduleAction . + +ras:EventTimePoint.EventSchedule-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "EventTimePoint.EventSchedule-cardinality" ; + sh:order 1 ; + sh:path nc:EventTimePoint.EventSchedule ; + sh:severity sh:Violation . + +ras:RemedialActionScheduleAcceptance.kind-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ras:DatatypesGroup ; + sh:in ( nc:RemedialActionScheduleAcceptanceKind.timeout nc:RemedialActionScheduleAcceptanceKind.waiting nc:RemedialActionScheduleAcceptanceKind.accepted nc:RemedialActionScheduleAcceptanceKind.refused ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "RemedialActionScheduleAcceptance.kind-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 3 ; + sh:path nc:RemedialActionScheduleAcceptance.kind ; + sh:severity sh:Violation . + +ras:PowerTimePoint.PowerSchedule-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group ras:AssociationsGroup ; + sh:in ( nc:PowerSchedule ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:PowerSchedule" ; + sh:name "PowerTimePoint.PowerSchedule-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path ( nc:PowerTimePoint.PowerSchedule rdf:type ) ; + sh:severity sh:Violation . + +ras:RemedialActionCost + rdf:type sh:NodeShape ; + sh:property ras:RemedialActionCost.RemedialActionSchedule-cardinality , ras:RemedialActionCost.shutdownCost-cardinality , ras:RemedialActionCost.shutdownCost-datatype , ras:RemedialActionCost.startupCost-cardinality , ras:RemedialActionCost.costAllocationTime-cardinality , ras:RemedialActionCost.operationalCost-cardinality , ras:RemedialActionCost.mRID-cardinality , ras:RemedialActionCost.processingFee-cardinality , ras:RemedialActionCost.startupCost-datatype , ras:RemedialActionCost.processingFee-datatype , ras:RemedialActionCost.opportunityCost-datatype , ras:RemedialActionCost.operationalCost-datatype , ras:RemedialActionCost.otherCost-cardinality , ras:RemedialActionCost.kind-cardinality , ras:RemedialActionCost.opportunityCost-cardinality , ras:RemedialActionCost.kind-datatype , ras:RemedialActionCost.mRID-datatype , ras:RemedialActionCost.otherCost-datatype , ras:RemedialActionCost.savedFuelCost-cardinality , ras:RemedialActionCost.costAllocationTime-datatype , ras:RemedialActionCost.savedFuelCost-datatype , ras:RemedialActionCost.RemedialActionSchedule-valueType ; + sh:targetClass nc:RemedialActionCost . + +ido:IdentifiedObject.name-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ido:CardinalityIO ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "IdentifiedObject.name-cardinality" ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.name ; + sh:severity sh:Violation . + +ras:AvailabilitySchedule.RemedialAction-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "AvailabilitySchedule.RemedialAction-cardinality" ; + sh:order 0 ; + sh:path nc:AvailabilitySchedule.RemedialAction ; + sh:severity sh:Violation . + +ras:RemedialActionSchedule.statusReason-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ras:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "RemedialActionSchedule.statusReason-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 13 ; + sh:path nc:RemedialActionSchedule.statusReason ; + sh:severity sh:Violation . + +ras:ProposingRemedialActionScheduleShare.costSharingFactor-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "ProposingRemedialActionScheduleShare.costSharingFactor-cardinality" ; + sh:order 3 ; + sh:path nc:ProposingRemedialActionScheduleShare.costSharingFactor ; + sh:severity sh:Violation . + +ras:PowerTimePoint.q-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerTimePoint.q-cardinality" ; + sh:order 5 ; + sh:path nc:PowerTimePoint.q ; + sh:severity sh:Violation . + +ras:PowerTimePoint.p-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ras:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerTimePoint.p-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path nc:PowerTimePoint.p ; + sh:severity sh:Violation . + +ras:RemedialActionSchedule + rdf:type sh:NodeShape ; + sh:property ras:RemedialActionSchedule.RemedialActionScheduleGroup-cardinality , ras:RemedialActionSchedule.statusReason-datatype , ras:RemedialActionSchedule.statusReason-cardinality , ras:RemedialActionSchedule.RemedialAction-cardinality , ido:IdentifiedObject.description-datatype , ras:RemedialActionSchedule.Contingency-cardinality , ras:RemedialActionSchedule.RemedialActionScheduleGroup-valueType , ido:IdentifiedObject.mRID-datatype , ras:RemedialActionSchedule.totalCostCurrency-cardinality , ido:IdentifiedObject.description-cardinality , ras:RemedialActionSchedule.ProposingEntity-cardinality , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.name-datatype , ras:RemedialActionSchedule.RemedialAction-valueType , ido:IdentifiedObject.name-cardinality , ras:RemedialActionSchedule.statusKind-datatype , ras:RemedialActionSchedule.statusKind-cardinality , ras:RemedialActionSchedule.AssignedRegion-cardinality , ras:RemedialActionSchedule.totalCostCurrency-datatype ; + sh:targetClass nc:RemedialActionSchedule . + +ras:RemedialActionSchedule.RemedialActionScheduleGroup-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group ras:AssociationsGroup ; + sh:in ( nc:RemedialActionScheduleGroup ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:RemedialActionScheduleGroup" ; + sh:name "RemedialActionSchedule.RemedialActionScheduleGroup-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 12 ; + sh:path ( nc:RemedialActionSchedule.RemedialActionScheduleGroup rdf:type ) ; + sh:severity sh:Violation . + +ras:RemedialActionScheduleAcceptance.RemedialActionSchedule-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group ras:AssociationsGroup ; + sh:in ( nc:RemedialActionSchedule ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:RemedialActionSchedule" ; + sh:name "RemedialActionScheduleAcceptance.RemedialActionSchedule-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path ( nc:RemedialActionScheduleAcceptance.RemedialActionSchedule rdf:type ) ; + sh:severity sh:Violation . + +ras:GenericValueSchedule.RemedialActionSchedule-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group ras:AssociationsGroup ; + sh:in ( nc:RemedialActionSchedule ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:RemedialActionSchedule" ; + sh:name "GenericValueSchedule.RemedialActionSchedule-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path ( nc:GenericValueSchedule.RemedialActionSchedule rdf:type ) ; + sh:severity sh:Violation . + +ras:SchemeRemedialAction + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.description-cardinality , ras:SchemeRemedialAction.RemedialActionScheme-valueType , ras:SchemeRemedialAction.RemedialActionScheme-cardinality ; + sh:targetClass nc:SchemeRemedialAction . + +ras:PowerScheduleAction.RemedialActionSchedule-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "PowerScheduleAction.RemedialActionSchedule-cardinality" ; + sh:order 0 ; + sh:path nc:PowerScheduleAction.RemedialActionSchedule ; + sh:severity sh:Violation . + +ras:CountertradeScheduleAction + rdf:type sh:NodeShape ; + sh:property ras:PowerScheduleAction.currency-datatype , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.name-datatype , ras:PowerScheduleAction.RemedialActionSchedule-cardinality , ras:PowerScheduleAction.currency-cardinality , ras:PowerScheduleAction.PowerSchedule-valueType , ras:PowerScheduleAction.energyPrice-cardinality , ido:IdentifiedObject.mRID-cardinality , ras:PowerScheduleAction.PowerBidSchedule-cardinality , ido:IdentifiedObject.mRID-datatype , ras:PowerScheduleAction.energyPrice-datatype , ras:PowerScheduleAction.RemedialActionSchedule-valueType , ido:IdentifiedObject.description-cardinality , ras:PowerScheduleAction.PowerSchedule-cardinality ; + sh:targetClass nc:CountertradeScheduleAction . + +ras:RemedialActionSchedule.ProposingEntity-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "RemedialActionSchedule.ProposingEntity-cardinality" ; + sh:order 10 ; + sh:path nc:RemedialActionSchedule.ProposingEntity ; + sh:severity sh:Violation . + +ras:AssociationsGroup + rdf:type sh:PropertyGroup ; + rdfs:label "Associations" ; + sh:order 2 . + +ras:RemedialActionSchedule.totalCostCurrency-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "RemedialActionSchedule.totalCostCurrency-cardinality" ; + sh:order 6 ; + sh:path nc:RemedialActionSchedule.totalCostCurrency ; + sh:severity sh:Violation . + +ras:ProposingRemedialActionScheduleShare.RemedialActionSchedule-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "ProposingRemedialActionScheduleShare.RemedialActionSchedule-cardinality" ; + sh:order 2 ; + sh:path nc:ProposingRemedialActionScheduleShare.RemedialActionSchedule ; + sh:severity sh:Violation . + +ras:RemedialActionSchedule.RemedialActionScheduleGroup-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "RemedialActionSchedule.RemedialActionScheduleGroup-cardinality" ; + sh:order 12 ; + sh:path nc:RemedialActionSchedule.RemedialActionScheduleGroup ; + sh:severity sh:Violation . + +ras:RemedialActionSchedule.statusKind-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "RemedialActionSchedule.statusKind-cardinality" ; + sh:order 4 ; + sh:path nc:RemedialActionSchedule.statusKind ; + sh:severity sh:Violation . + +ras:EventSchedule.RemedialActionSchedule-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group ras:AssociationsGroup ; + sh:in ( nc:RemedialActionSchedule ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:RemedialActionSchedule" ; + sh:name "EventSchedule.RemedialActionSchedule-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path ( nc:EventSchedule.RemedialActionSchedule rdf:type ) ; + sh:severity sh:Violation . + +ras:RedispatchScheduleAction.ScheduleResource-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "RedispatchScheduleAction.ScheduleResource-cardinality" ; + sh:order 0 ; + sh:path nc:RedispatchScheduleAction.ScheduleResource ; + sh:severity sh:Violation . + +ras:PowerScheduleAction.PowerBidSchedule-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerScheduleAction.PowerBidSchedule-cardinality" ; + sh:order 3 ; + sh:path nc:PowerScheduleAction.PowerBidSchedule ; + sh:severity sh:Violation . + +ras:RemedialActionCost.opportunityCost-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:decimal ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ras:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "RemedialActionCost.opportunityCost-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 10 ; + sh:path nc:RemedialActionCost.opportunityCost ; + sh:severity sh:Violation . + +ras:RemedialActionSchedule.statusKind-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ras:DatatypesGroup ; + sh:in ( nc:RemedialActionScheduleStatusKind.rejected nc:RemedialActionScheduleStatusKind.rejectionValidated nc:RemedialActionScheduleStatusKind.proposed nc:RemedialActionScheduleStatusKind.notUsed nc:RemedialActionScheduleStatusKind.ordered nc:RemedialActionScheduleStatusKind.implemented nc:RemedialActionScheduleStatusKind.previouslyAgreed nc:RemedialActionScheduleStatusKind.agreementValidated nc:RemedialActionScheduleStatusKind.agreed nc:RemedialActionScheduleStatusKind.activated ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "RemedialActionSchedule.statusKind-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 4 ; + sh:path nc:RemedialActionSchedule.statusKind ; + sh:severity sh:Violation . + +ras:CardinalityGroup rdf:type sh:PropertyGroup ; + rdfs:label "Cardinality" ; + sh:order 0 . + +ras:RemedialActionCost.otherCost-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "RemedialActionCost.otherCost-cardinality" ; + sh:order 0 ; + sh:path nc:RemedialActionCost.otherCost ; + sh:severity sh:Violation . + +ras:GridStateIntensitySchedule.valueKind-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "GridStateIntensitySchedule.valueKind-cardinality" ; + sh:order 1 ; + sh:path nc:GridStateIntensitySchedule.valueKind ; + sh:severity sh:Violation . + +ras:ProposingRemedialActionScheduleShare.mRID-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ras:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "ProposingRemedialActionScheduleShare.mRID-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:ProposingRemedialActionScheduleShare.mRID ; + sh:severity sh:Violation . + +ras:RemedialActionCost.processingFee-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:decimal ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ras:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "RemedialActionCost.processingFee-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 5 ; + sh:path nc:RemedialActionCost.processingFee ; + sh:severity sh:Violation . + +ras:PowerScheduleAction.PowerSchedule-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group ras:AssociationsGroup ; + sh:in ( nc:PowerSchedule ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:PowerSchedule" ; + sh:name "PowerScheduleAction.PowerSchedule-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path ( nc:PowerScheduleAction.PowerSchedule rdf:type ) ; + sh:severity sh:Violation . + +ras:RemedialActionCost.savedFuelCost-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:decimal ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ras:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "RemedialActionCost.savedFuelCost-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 6 ; + sh:path nc:RemedialActionCost.savedFuelCost ; + sh:severity sh:Violation . + +ras:RemedialActionScheduleGroup + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.description-cardinality ; + sh:targetClass nc:RemedialActionScheduleGroup . + +ras:RemedialActionCost.costAllocationTime-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "RemedialActionCost.costAllocationTime-cardinality" ; + sh:order 4 ; + sh:path nc:RemedialActionCost.costAllocationTime ; + sh:severity sh:Violation . + +ras:PowerTimePoint.activatedP-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerTimePoint.activatedP-cardinality" ; + sh:order 6 ; + sh:path nc:PowerTimePoint.activatedP ; + sh:severity sh:Violation . + +ras:EventTimePoint.atTime-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "EventTimePoint.atTime-cardinality" ; + sh:order 2 ; + sh:path nc:EventTimePoint.atTime ; + sh:severity sh:Violation . + +ras:RemedialActionCost.operationalCost-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:decimal ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ras:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "RemedialActionCost.operationalCost-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 7 ; + sh:path nc:RemedialActionCost.operationalCost ; + sh:severity sh:Violation . + +ras:GridStateIntensitySchedule.valueKind-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ras:DatatypesGroup ; + sh:in ( nc:ValueOffsetKind.absolute nc:ValueOffsetKind.incrementalPercentage nc:ValueOffsetKind.incremental ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "GridStateIntensitySchedule.valueKind-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path nc:GridStateIntensitySchedule.valueKind ; + sh:severity sh:Violation . + +ras:AvailabilitySchedule.isCancelled-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ras:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "AvailabilitySchedule.isCancelled-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:AvailabilitySchedule.isCancelled ; + sh:severity sh:Violation . + +ras:PowerTimePoint.p-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerTimePoint.p-cardinality" ; + sh:order 3 ; + sh:path nc:PowerTimePoint.p ; + sh:severity sh:Violation . + +ido:CardinalityGroup rdf:type sh:PropertyGroup ; + rdfs:label "CardinalityIO" ; + sh:order 0 . + +ras:DatatypesGroup rdf:type sh:PropertyGroup ; + rdfs:label "Datatypes" ; + sh:order 1 . + +ras:SchemeRemedialAction.RemedialActionScheme-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ras:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "SchemeRemedialAction.RemedialActionScheme-cardinality" ; + sh:order 0 ; + sh:path nc:SchemeRemedialAction.RemedialActionScheme ; + sh:severity sh:Violation . diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/SecurityAnalysisResultProfile_v2_2_SHACL.ttl b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/SecurityAnalysisResultProfile_v2_2_SHACL.ttl new file mode 100644 index 0000000000..43547bc27e --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/SecurityAnalysisResultProfile_v2_2_SHACL.ttl @@ -0,0 +1,334 @@ +@base . +@prefix adms: . +@prefix cim: . +@prefix cims: . +@prefix dash: . +@prefix dc: . +@prefix dcat: . +@prefix dcterms: . +@prefix dm: . +@prefix eu: . +@prefix eumd: . +@prefix euvoc: . +@prefix ido: . +@prefix md: . +@prefix nc: . +@prefix owl: . +@prefix prof: . +@prefix profcim: . +@prefix prov: . +@prefix rdf: . +@prefix rdfs: . +@prefix sar: . +@prefix sh: . +@prefix skos: . +@prefix xsd: . + +sar:PowerFlowResult.valueW-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group sar:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerFlowResult.valueW-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 10 ; + sh:path nc:PowerFlowResult.valueW ; + sh:severity sh:Violation . + +sar:PowerFlowResult.absoluteValue-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group sar:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerFlowResult.absoluteValue-cardinality" ; + sh:order 4 ; + sh:path nc:PowerFlowResult.absoluteValue ; + sh:severity sh:Violation . + +sar:PowerFlowResult.isViolation-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group sar:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerFlowResult.isViolation-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:PowerFlowResult.isViolation ; + sh:severity sh:Violation . + +sar:PowerFlowResult.valueA-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group sar:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerFlowResult.valueA-cardinality" ; + sh:order 3 ; + sh:path nc:PowerFlowResult.valueA ; + sh:severity sh:Violation . + +sar:PowerFlowResult.ReportedByRegion-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group sar:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerFlowResult.ReportedByRegion-cardinality" ; + sh:order 11 ; + sh:path nc:PowerFlowResult.ReportedByRegion ; + sh:severity sh:Violation . + +sar:PowerFlowResult.isViolation-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group sar:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "PowerFlowResult.isViolation-cardinality" ; + sh:order 1 ; + sh:path nc:PowerFlowResult.isViolation ; + sh:severity sh:Violation . + +sar:PowerFlowResult.value-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group sar:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerFlowResult.value-cardinality" ; + sh:order 2 ; + sh:path nc:PowerFlowResult.value ; + sh:severity sh:Violation . + +sar:PowerFlowResult.valueAngle-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group sar:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerFlowResult.valueAngle-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 5 ; + sh:path nc:PowerFlowResult.valueAngle ; + sh:severity sh:Violation . + +sar:PowerFlowResult.absoluteValue-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group sar:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerFlowResult.absoluteValue-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path nc:PowerFlowResult.absoluteValue ; + sh:severity sh:Violation . + +sar:PowerFlowResult.atTime-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group sar:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "PowerFlowResult.atTime-cardinality" ; + sh:order 8 ; + sh:path nc:PowerFlowResult.atTime ; + sh:severity sh:Violation . + +sar:AssociationsGroup + rdf:type sh:PropertyGroup ; + rdfs:label "Associations" ; + sh:order 2 . + +sar:ContingencyPowerFlowResult.Contingency-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group sar:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "ContingencyPowerFlowResult.Contingency-cardinality" ; + sh:order 0 ; + sh:path nc:ContingencyPowerFlowResult.Contingency ; + sh:severity sh:Violation . + +sar:PowerFlowResult.valueW-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group sar:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerFlowResult.valueW-cardinality" ; + sh:order 10 ; + sh:path nc:PowerFlowResult.valueW ; + sh:severity sh:Violation . + +sar:PowerFlowResult.valueVA-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group sar:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerFlowResult.valueVA-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 9 ; + sh:path nc:PowerFlowResult.valueVA ; + sh:severity sh:Violation . + +sar:BaseCasePowerFlowResult + rdf:type sh:NodeShape ; + sh:property sar:PowerFlowResult.valueV-datatype , sar:PowerFlowResult.valueA-cardinality , sar:PowerFlowResult.isViolation-cardinality , sar:PowerFlowResult.atTime-cardinality , sar:PowerFlowResult.valueV-cardinality , sar:PowerFlowResult.absoluteValue-cardinality , sar:PowerFlowResult.absoluteValue-datatype , sar:PowerFlowResult.value-datatype , sar:PowerFlowResult.valueVAR-datatype , sar:PowerFlowResult.valueW-datatype , sar:PowerFlowResult.ReportedByRegion-cardinality , sar:PowerFlowResult.valueAngle-cardinality , sar:PowerFlowResult.atTime-datatype , sar:PowerFlowResult.ACDCTerminal-cardinality , sar:PowerFlowResult.value-cardinality , sar:PowerFlowResult.OperationalLimit-cardinality , sar:PowerFlowResult.valueW-cardinality , sar:PowerFlowResult.valueAngle-datatype , sar:PowerFlowResult.valueVA-cardinality , sar:PowerFlowResult.valueA-datatype , sar:PowerFlowResult.valueVAR-cardinality , sar:PowerFlowResult.valueVA-datatype , sar:PowerFlowResult.isViolation-datatype ; + sh:targetClass nc:BaseCasePowerFlowResult . + +sar:PowerFlowResult.valueA-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group sar:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerFlowResult.valueA-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path nc:PowerFlowResult.valueA ; + sh:severity sh:Violation . + +sar:PowerFlowResult.valueAngle-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group sar:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerFlowResult.valueAngle-cardinality" ; + sh:order 5 ; + sh:path nc:PowerFlowResult.valueAngle ; + sh:severity sh:Violation . + +sar:ContingencyPowerFlowResult + rdf:type sh:NodeShape ; + sh:property sar:PowerFlowResult.valueVAR-cardinality , sar:PowerFlowResult.value-datatype , sar:PowerFlowResult.valueW-cardinality , sar:PowerFlowResult.valueV-datatype , sar:PowerFlowResult.valueV-cardinality , sar:PowerFlowResult.OperationalLimit-cardinality , sar:PowerFlowResult.atTime-datatype , sar:PowerFlowResult.valueVAR-datatype , sar:PowerFlowResult.atTime-cardinality , sar:PowerFlowResult.valueAngle-cardinality , sar:PowerFlowResult.ACDCTerminal-cardinality , sar:PowerFlowResult.absoluteValue-datatype , sar:PowerFlowResult.valueA-cardinality , sar:PowerFlowResult.isViolation-datatype , sar:PowerFlowResult.value-cardinality , sar:PowerFlowResult.valueAngle-datatype , sar:PowerFlowResult.valueA-datatype , sar:PowerFlowResult.absoluteValue-cardinality , sar:ContingencyPowerFlowResult.Contingency-cardinality , sar:PowerFlowResult.isViolation-cardinality , sar:PowerFlowResult.valueW-datatype , sar:PowerFlowResult.ReportedByRegion-cardinality , sar:PowerFlowResult.valueVA-datatype , sar:PowerFlowResult.valueVA-cardinality ; + sh:targetClass nc:ContingencyPowerFlowResult . + +sar:PowerFlowResult.ACDCTerminal-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group sar:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "PowerFlowResult.ACDCTerminal-cardinality" ; + sh:order 7 ; + sh:path nc:PowerFlowResult.ACDCTerminal ; + sh:severity sh:Violation . + +sar:DatatypesGroup rdf:type sh:PropertyGroup ; + rdfs:label "Datatypes" ; + sh:order 1 . + +ido:CardinalityGroup rdf:type sh:PropertyGroup ; + rdfs:label "CardinalityIO" ; + sh:order 0 . + +sar:PowerFlowResult.valueVA-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group sar:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerFlowResult.valueVA-cardinality" ; + sh:order 9 ; + sh:path nc:PowerFlowResult.valueVA ; + sh:severity sh:Violation . + +sar:PowerFlowResult.value-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group sar:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerFlowResult.value-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path nc:PowerFlowResult.value ; + sh:severity sh:Violation . + +sar:PowerFlowResult.valueV-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group sar:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerFlowResult.valueV-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 6 ; + sh:path nc:PowerFlowResult.valueV ; + sh:severity sh:Violation . + +sar:PowerFlowResult.valueVAR-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group sar:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerFlowResult.valueVAR-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 13 ; + sh:path nc:PowerFlowResult.valueVAR ; + sh:severity sh:Violation . + +sar:CardinalityGroup rdf:type sh:PropertyGroup ; + rdfs:label "Cardinality" ; + sh:order 0 . + +sar:PowerFlowResult.valueVAR-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group sar:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerFlowResult.valueVAR-cardinality" ; + sh:order 13 ; + sh:path nc:PowerFlowResult.valueVAR ; + sh:severity sh:Violation . + +sar:PowerFlowResult.OperationalLimit-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group sar:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerFlowResult.OperationalLimit-cardinality" ; + sh:order 12 ; + sh:path nc:PowerFlowResult.OperationalLimit ; + sh:severity sh:Violation . + +ido:DatatypesGroupIO rdf:type sh:PropertyGroup ; + rdfs:label "DatatypesIO" ; + sh:order 1 . + +sar:PowerFlowResult.atTime-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:dateTime ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group sar:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerFlowResult.atTime-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 8 ; + sh:path nc:PowerFlowResult.atTime ; + sh:severity sh:Violation . + +sar:PowerFlowResult.valueV-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group sar:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerFlowResult.valueV-cardinality" ; + sh:order 6 ; + sh:path nc:PowerFlowResult.valueV ; + sh:severity sh:Violation . diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/SecurityScheduleProfile_v2_2_SHACL.ttl b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/SecurityScheduleProfile_v2_2_SHACL.ttl new file mode 100644 index 0000000000..013215ab44 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/SecurityScheduleProfile_v2_2_SHACL.ttl @@ -0,0 +1,1565 @@ +@base . +@prefix adms: . +@prefix cim: . +@prefix cims: . +@prefix dash: . +@prefix dc: . +@prefix dcat: . +@prefix dcterms: . +@prefix dm: . +@prefix eu: . +@prefix eumd: . +@prefix euvoc: . +@prefix ido: . +@prefix md: . +@prefix nc: . +@prefix owl: . +@prefix prof: . +@prefix profcim: . +@prefix prov: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix skos: . +@prefix ss: . +@prefix xsd: . + +ss:EnablingTimePoint.enabled-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ss:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "EnablingTimePoint.enabled-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:EnablingTimePoint.enabled ; + sh:severity sh:Violation . + +ss:AssessedElementTimePoint.virtualPositiveMargin-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ss:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "AssessedElementTimePoint.virtualPositiveMargin-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 6 ; + sh:path nc:AssessedElementTimePoint.virtualPositiveMargin ; + sh:severity sh:Violation . + +ss:PowerBidSchedule.currency-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ss:DatatypesGroup ; + sh:in ( cim:Currency.DJF cim:Currency.ZMK cim:Currency.RUB cim:Currency.BRL cim:Currency.ANG cim:Currency.RWF cim:Currency.BND cim:Currency.MNT cim:Currency.AUD cim:Currency.BOV cim:Currency.XPF cim:Currency.UZS cim:Currency.THB cim:Currency.DOP cim:Currency.GTQ cim:Currency.AED cim:Currency.SOS cim:Currency.VUV cim:Currency.VEF cim:Currency.TOP cim:Currency.IQD cim:Currency.AMD cim:Currency.AZN cim:Currency.AWG cim:Currency.DZD cim:Currency.USD cim:Currency.KMF cim:Currency.ZAR cim:Currency.MVR cim:Currency.BTN cim:Currency.SLL cim:Currency.PGK cim:Currency.LAK cim:Currency.FKP cim:Currency.NAD cim:Currency.NPR cim:Currency.ZWL cim:Currency.PKR cim:Currency.XAF cim:Currency.CAD cim:Currency.COP cim:Currency.TZS cim:Currency.BIF cim:Currency.BHD cim:Currency.MDL cim:Currency.TJS cim:Currency.BOB cim:Currency.NZD cim:Currency.LSL cim:Currency.VND cim:Currency.MGA cim:Currency.SEK cim:Currency.ERN cim:Currency.NGN cim:Currency.KES cim:Currency.ETB cim:Currency.SRD cim:Currency.MAD cim:Currency.MOP cim:Currency.IRR cim:Currency.SBD cim:Currency.JMD cim:Currency.BWP cim:Currency.CRC cim:Currency.SHP cim:Currency.UGX cim:Currency.MMK cim:Currency.SAR cim:Currency.TTD cim:Currency.HNL cim:Currency.LTL cim:Currency.ALL cim:Currency.SDG cim:Currency.CLF cim:Currency.HTG cim:Currency.KPW cim:Currency.GYD cim:Currency.GHS cim:Currency.KWD cim:Currency.NOK cim:Currency.GEL cim:Currency.BZD cim:Currency.CDF cim:Currency.EUR cim:Currency.MYR cim:Currency.SYP cim:Currency.HKD cim:Currency.BYR cim:Currency.NIO cim:Currency.JPY cim:Currency.AOA cim:Currency.LYD cim:Currency.CNY cim:Currency.ILS cim:Currency.RON cim:Currency.BGN cim:Currency.BBD cim:Currency.XCD cim:Currency.PYG cim:Currency.PLN cim:Currency.TMT cim:Currency.KGS cim:Currency.STD cim:Currency.AFN cim:Currency.MXN cim:Currency.MKD cim:Currency.MWK cim:Currency.LRD cim:Currency.JOD cim:Currency.IDR cim:Currency.HUF cim:Currency.OMR cim:Currency.UAH cim:Currency.BSD cim:Currency.KRW cim:Currency.SCR cim:Currency.RSD cim:Currency.LVL cim:Currency.TND cim:Currency.PEN cim:Currency.KYD cim:Currency.GIP cim:Currency.CUC cim:Currency.FJD cim:Currency.WST cim:Currency.KHR cim:Currency.TWD cim:Currency.CVE cim:Currency.YER cim:Currency.MRO cim:Currency.QAR cim:Currency.UYU cim:Currency.ARS cim:Currency.MZN cim:Currency.BDT cim:Currency.EGP cim:Currency.BAM cim:Currency.SZL cim:Currency.INR cim:Currency.KZT cim:Currency.CLP cim:Currency.DKK cim:Currency.ISK cim:Currency.BMD cim:Currency.CZK cim:Currency.TRY cim:Currency.GBP cim:Currency.PAB cim:Currency.EEK cim:Currency.XOF cim:Currency.COU cim:Currency.CHF cim:Currency.GNF cim:Currency.GMD cim:Currency.CUP cim:Currency.LBP cim:Currency.HRK cim:Currency.LKR cim:Currency.PHP cim:Currency.MUR cim:Currency.SGD ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "PowerBidSchedule.currency-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path nc:PowerBidSchedule.currency ; + sh:severity sh:Violation . + +ss:GenericValueTimePoint.atTime-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:dateTime ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ss:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "GenericValueTimePoint.atTime-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:GenericValueTimePoint.atTime ; + sh:severity sh:Violation . + +ss:PowerBidSchedule.startupCost-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:decimal ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ss:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerBidSchedule.startupCost-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 13 ; + sh:path nc:PowerBidSchedule.startupCost ; + sh:severity sh:Violation . + +ss:ContingencyTimePoint.ContingencySchedule-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "ContingencyTimePoint.ContingencySchedule-cardinality" ; + sh:order 3 ; + sh:path nc:ContingencyTimePoint.ContingencySchedule ; + sh:severity sh:Violation . + +ss:PowerBidSchedule.startupCost-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerBidSchedule.startupCost-cardinality" ; + sh:order 13 ; + sh:path nc:PowerBidSchedule.startupCost ; + sh:severity sh:Violation . + +ss:AssessedElementTimePoint.atTime-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "AssessedElementTimePoint.atTime-cardinality" ; + sh:order 4 ; + sh:path nc:AssessedElementTimePoint.atTime ; + sh:severity sh:Violation . + +ss:GLSKSchedule.GeneratingUnit-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "GLSKSchedule.GeneratingUnit-cardinality" ; + sh:order 0 ; + sh:path nc:GLSKSchedule.GeneratingUnit ; + sh:severity sh:Violation . + +ss:AvailabilityTimePoint.GenericAvailabilitySchedule-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group ss:AssociationsGroup ; + sh:in ( nc:GenericAvailableSchedule ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:GenericAvailableSchedule" ; + sh:name "AvailabilityTimePoint.GenericAvailabilitySchedule-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path ( nc:AvailabilityTimePoint.GenericAvailabilitySchedule rdf:type ) ; + sh:severity sh:Violation . + +ss:GenericEnablingSchedule.GridStateAlteration-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "GenericEnablingSchedule.GridStateAlteration-cardinality" ; + sh:order 4 ; + sh:path nc:GenericEnablingSchedule.GridStateAlteration ; + sh:severity sh:Violation . + +ss:GLSKBidActionDistribution.GLSKSchedule-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group ss:AssociationsGroup ; + sh:in ( nc:GLSKSchedule ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:GLSKSchedule" ; + sh:name "GLSKBidActionDistribution.GLSKSchedule-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path ( nc:GLSKBidActionDistribution.GLSKSchedule rdf:type ) ; + sh:severity sh:Violation . + +ss:PowerBidSchedule rdf:type sh:NodeShape ; + sh:property ss:BaseTimeSeries.interpolationKind-cardinality , ss:PowerBidSchedule.PowerRemedialAction-cardinality , ss:BaseTimeSeries.kind-datatype , ss:PowerBidSchedule.minimumUptime-cardinality , ss:PowerBidSchedule.totalMaximumEnergy-cardinality , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.description-datatype , ss:PowerBidSchedule.startupCost-cardinality , ss:PowerBidSchedule.shutdownCost-cardinality , ss:PowerBidSchedule.totalMinimumEnergy-cardinality , ido:IdentifiedObject.name-cardinality , ss:PowerBidSchedule.totalMinimumEnergy-datatype , ss:PowerBidSchedule.leadTime-datatype , ido:IdentifiedObject.name-datatype , ss:PowerBidSchedule.startupCost-datatype , ido:IdentifiedObject.mRID-datatype , ss:BaseTimeSeries.kind-cardinality , ss:PowerBidSchedule.currency-cardinality , ss:PowerBidSchedule.isOffer-cardinality , ss:PowerBidSchedule.priority-cardinality , ss:PowerBidSchedule.leadTime-cardinality , ss:PowerBidSchedule.maximumUptime-datatype , ss:PowerBidSchedule.priority-datatype , ss:PowerBidSchedule.minimumOffTime-datatype , ss:PowerBidSchedule.direction-cardinality , ss:PowerBidSchedule.isOffer-datatype , ss:BaseTimeSeries.interpolationKind-datatype , ido:IdentifiedObject.mRID-cardinality , ss:PowerBidSchedule.shutdownCost-datatype , ss:PowerBidSchedule.totalMaximumEnergy-datatype , ss:PowerBidSchedule.currency-datatype , ss:PowerBidSchedule.maximumUptime-cardinality , ss:PowerBidSchedule.minimumOffTime-cardinality , ss:PowerBidSchedule.direction-datatype , ss:PowerBidSchedule.minimumUptime-datatype ; + sh:targetClass nc:PowerBidSchedule . + +ss:PowerBidSchedule.totalMaximumEnergy-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ss:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerBidSchedule.totalMaximumEnergy-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 12 ; + sh:path nc:PowerBidSchedule.totalMaximumEnergy ; + sh:severity sh:Violation . + +ss:GenericValueTimePoint + rdf:type sh:NodeShape ; + sh:property ss:GenericValueTimePoint.GenericValueSchedule-valueType , ss:GenericValueTimePoint.GenericValueSchedule-cardinality , ss:GenericValueTimePoint.value-datatype , ss:GenericValueTimePoint.value-cardinality , ss:GenericValueTimePoint.atTime-datatype , ss:GenericValueTimePoint.atTime-cardinality ; + sh:targetClass nc:GenericValueTimePoint . + +ss:AvailabilityTimePoint.GenericAvailabilitySchedule-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "AvailabilityTimePoint.GenericAvailabilitySchedule-cardinality" ; + sh:order 2 ; + sh:path nc:AvailabilityTimePoint.GenericAvailabilitySchedule ; + sh:severity sh:Violation . + +ss:AssessedElementTimePoint.scannedThresholdMargin-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ss:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "AssessedElementTimePoint.scannedThresholdMargin-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:AssessedElementTimePoint.scannedThresholdMargin ; + sh:severity sh:Violation . + +ss:GenericValueTimePoint.GenericValueSchedule-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "GenericValueTimePoint.GenericValueSchedule-cardinality" ; + sh:order 2 ; + sh:path nc:GenericValueTimePoint.GenericValueSchedule ; + sh:severity sh:Violation . + +ss:AssessedElementTimePoint.maxFlow-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AssessedElementTimePoint.maxFlow-cardinality" ; + sh:order 5 ; + sh:path nc:AssessedElementTimePoint.maxFlow ; + sh:severity sh:Violation . + +ss:EnablingTimePoint.GenericEnablingSchedule-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group ss:AssociationsGroup ; + sh:in ( nc:GenericEnablingSchedule ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:GenericEnablingSchedule" ; + sh:name "EnablingTimePoint.GenericEnablingSchedule-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path ( nc:EnablingTimePoint.GenericEnablingSchedule rdf:type ) ; + sh:severity sh:Violation . + +ss:GLSKBidActionDistribution.PowerBidSchedule-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "GLSKBidActionDistribution.PowerBidSchedule-cardinality" ; + sh:order 0 ; + sh:path nc:GLSKBidActionDistribution.PowerBidSchedule ; + sh:severity sh:Violation . + +ss:AssessedElementTimePoint.maxFlow-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ss:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "AssessedElementTimePoint.maxFlow-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 5 ; + sh:path nc:AssessedElementTimePoint.maxFlow ; + sh:severity sh:Violation . + +ss:ParticipationFactorTimePoint.GLSKSchedule-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "ParticipationFactorTimePoint.GLSKSchedule-cardinality" ; + sh:order 2 ; + sh:path nc:ParticipationFactorTimePoint.GLSKSchedule ; + sh:severity sh:Violation . + +ss:PowerBidDependency.kind-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ss:DatatypesGroup ; + sh:in ( nc:PowerBidDependencyKind.inclusive nc:PowerBidDependencyKind.exclusive nc:PowerBidDependencyKind.restrictive ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "PowerBidDependency.kind-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 3 ; + sh:path nc:PowerBidDependency.kind ; + sh:severity sh:Violation . + +ss:PowerBidSchedule.priority-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:integer ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ss:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerBidSchedule.priority-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path nc:PowerBidSchedule.priority ; + sh:severity sh:Violation . + +ss:PowerBidScheduleTimePoint.stepIncrementP-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ss:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerBidScheduleTimePoint.stepIncrementP-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:PowerBidScheduleTimePoint.stepIncrementP ; + sh:severity sh:Violation . + +ss:AssessedElementTimePoint.virtualPositiveMargin-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AssessedElementTimePoint.virtualPositiveMargin-cardinality" ; + sh:order 6 ; + sh:path nc:AssessedElementTimePoint.virtualPositiveMargin ; + sh:severity sh:Violation . + +ss:AvailabilityTimePoint.atTime-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "AvailabilityTimePoint.atTime-cardinality" ; + sh:order 1 ; + sh:path nc:AvailabilityTimePoint.atTime ; + sh:severity sh:Violation . + +ss:AssessedElementTimePoint + rdf:type sh:NodeShape ; + sh:property ss:AssessedElementTimePoint.atTime-datatype , ss:AssessedElementTimePoint.appointedMargin-cardinality , ss:AssessedElementTimePoint.enabled-datatype , ss:AssessedElementTimePoint.appointedMargin-datatype , ss:AssessedElementTimePoint.scannedThresholdMargin-cardinality , ss:AssessedElementTimePoint.virtualPositiveMargin-cardinality , ss:AssessedElementTimePoint.maxFlow-datatype , ss:AssessedElementTimePoint.virtualPositiveMargin-datatype , ss:AssessedElementTimePoint.AssessedElementSchedule-valueType , ss:AssessedElementTimePoint.atTime-cardinality , ss:AssessedElementTimePoint.AssessedElementSchedule-cardinality , ss:AssessedElementTimePoint.scannedThresholdMargin-datatype , ss:AssessedElementTimePoint.maxFlow-cardinality , ss:AssessedElementTimePoint.enabled-cardinality ; + sh:targetClass nc:AssessedElementTimePoint . + +ss:GenericEnablingSchedule.AssessedElementWithRemedialAction-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "GenericEnablingSchedule.AssessedElementWithRemedialAction-cardinality" ; + sh:order 5 ; + sh:path nc:GenericEnablingSchedule.AssessedElementWithRemedialAction ; + sh:severity sh:Violation . + +ss:ParticipationFactorTimePoint.participationFactor-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ss:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "ParticipationFactorTimePoint.participationFactor-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:ParticipationFactorTimePoint.participationFactor ; + sh:severity sh:Violation . + +ss:PowerBidSchedule.minimumUptime-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:duration ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ss:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerBidSchedule.minimumUptime-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 15 ; + sh:path nc:PowerBidSchedule.minimumUptime ; + sh:severity sh:Violation . + +ss:GLSKBidActionDistribution.GLSKSchedule-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "GLSKBidActionDistribution.GLSKSchedule-cardinality" ; + sh:order 1 ; + sh:path nc:GLSKBidActionDistribution.GLSKSchedule ; + sh:severity sh:Violation . + +ss:GenericValueTimePoint.value-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ss:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "GenericValueTimePoint.value-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:GenericValueTimePoint.value ; + sh:severity sh:Violation . + +ss:AssessedElementTimePoint.scannedThresholdMargin-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AssessedElementTimePoint.scannedThresholdMargin-cardinality" ; + sh:order 0 ; + sh:path nc:AssessedElementTimePoint.scannedThresholdMargin ; + sh:severity sh:Violation . + +ss:GenericValueSchedule.PowerRemedialAction-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "GenericValueSchedule.PowerRemedialAction-cardinality" ; + sh:order 0 ; + sh:path nc:GenericValueSchedule.PowerRemedialAction ; + sh:severity sh:Violation . + +ss:PowerBidDependency.delay-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:duration ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ss:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerBidDependency.delay-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path nc:PowerBidDependency.delay ; + sh:severity sh:Violation . + +ss:AssessedElementTimePoint.atTime-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:dateTime ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ss:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "AssessedElementTimePoint.atTime-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path nc:AssessedElementTimePoint.atTime ; + sh:severity sh:Violation . + +ss:ContingencyTimePoint.mustStudy-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ss:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "ContingencyTimePoint.mustStudy-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:ContingencyTimePoint.mustStudy ; + sh:severity sh:Violation . + +ss:PowerBidSchedule.totalMaximumEnergy-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerBidSchedule.totalMaximumEnergy-cardinality" ; + sh:order 12 ; + sh:path nc:PowerBidSchedule.totalMaximumEnergy ; + sh:severity sh:Violation . + +ss:GenericValueSchedule.RangeConstraint-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "GenericValueSchedule.RangeConstraint-cardinality" ; + sh:order 1 ; + sh:path nc:GenericValueSchedule.RangeConstraint ; + sh:severity sh:Violation . + +ido:IdentifiedObject.description-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ido:DatatypesGroupIO ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "IdentifiedObject.description-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.description ; + sh:severity sh:Violation . + +ss:AssessedElementTimePoint.AssessedElementSchedule-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group ss:AssociationsGroup ; + sh:in ( nc:AssessedElementSchedule ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:AssessedElementSchedule" ; + sh:name "AssessedElementTimePoint.AssessedElementSchedule-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path ( nc:AssessedElementTimePoint.AssessedElementSchedule rdf:type ) ; + sh:severity sh:Violation . + +ss:GLSKSchedule.PowerElectronicsUnit-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "GLSKSchedule.PowerElectronicsUnit-cardinality" ; + sh:order 6 ; + sh:path nc:GLSKSchedule.PowerElectronicsUnit ; + sh:severity sh:Violation . + +ss:ParticipationFactorTimePoint.atTime-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:dateTime ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ss:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "ParticipationFactorTimePoint.atTime-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:ParticipationFactorTimePoint.atTime ; + sh:severity sh:Violation . + +ss:PowerBidSchedule.maximumUptime-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerBidSchedule.maximumUptime-cardinality" ; + sh:order 6 ; + sh:path nc:PowerBidSchedule.maximumUptime ; + sh:severity sh:Violation . + +ss:PowerBidSchedule.minimumOffTime-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:duration ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ss:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerBidSchedule.minimumOffTime-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 14 ; + sh:path nc:PowerBidSchedule.minimumOffTime ; + sh:severity sh:Violation . + +ss:GenericValueSchedule + rdf:type sh:NodeShape ; + sh:property ss:GenericValueSchedule.RangeConstraint-cardinality , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.name-cardinality , ss:BaseTimeSeries.interpolationKind-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.mRID-cardinality , ss:GenericValueSchedule.PowerRemedialAction-cardinality , ido:IdentifiedObject.mRID-datatype , ss:BaseTimeSeries.interpolationKind-datatype , ss:BaseTimeSeries.kind-cardinality , ss:BaseTimeSeries.kind-datatype ; + sh:targetClass nc:GenericValueSchedule . + +ss:PowerBidSchedule.shutdownCost-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerBidSchedule.shutdownCost-cardinality" ; + sh:order 7 ; + sh:path nc:PowerBidSchedule.shutdownCost ; + sh:severity sh:Violation . + +ss:PowerBidScheduleTimePoint.minimumActivationP-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerBidScheduleTimePoint.minimumActivationP-cardinality" ; + sh:order 2 ; + sh:path nc:PowerBidScheduleTimePoint.minimumActivationP ; + sh:severity sh:Violation . + +ido:IdentifiedObject.description-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ido:CardinalityIO ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "IdentifiedObject.description-cardinality" ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.description ; + sh:severity sh:Violation . + +ss:PowerBidSchedule.shutdownCost-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:decimal ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ss:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerBidSchedule.shutdownCost-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 7 ; + sh:path nc:PowerBidSchedule.shutdownCost ; + sh:severity sh:Violation . + +ss:GenericValueTimePoint.value-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "GenericValueTimePoint.value-cardinality" ; + sh:order 1 ; + sh:path nc:GenericValueTimePoint.value ; + sh:severity sh:Violation . + +ss:PowerBidScheduleTimePoint.minimumActivationP-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ss:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerBidScheduleTimePoint.minimumActivationP-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path nc:PowerBidScheduleTimePoint.minimumActivationP ; + sh:severity sh:Violation . + +ss:GenericEnablingSchedule.ContingencyWithRemedialAction-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "GenericEnablingSchedule.ContingencyWithRemedialAction-cardinality" ; + sh:order 1 ; + sh:path nc:GenericEnablingSchedule.ContingencyWithRemedialAction ; + sh:severity sh:Violation . + +ss:AssessedElementSchedule.AssessedElement-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "AssessedElementSchedule.AssessedElement-cardinality" ; + sh:order 1 ; + sh:path nc:AssessedElementSchedule.AssessedElement ; + sh:severity sh:Violation . + +ss:ContingencyTimePoint.mustStudy-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "ContingencyTimePoint.mustStudy-cardinality" ; + sh:order 1 ; + sh:path nc:ContingencyTimePoint.mustStudy ; + sh:severity sh:Violation . + +ss:CardinalityGroup rdf:type sh:PropertyGroup ; + rdfs:label "Cardinality" ; + sh:order 0 . + +ss:PowerBidScheduleTimePoint.price-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:decimal ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ss:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerBidScheduleTimePoint.price-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:PowerBidScheduleTimePoint.price ; + sh:severity sh:Violation . + +ido:IdentifiedObject.name-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ido:DatatypesGroupIO ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "IdentifiedObject.name-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.name ; + sh:severity sh:Violation . + +ido:IdentifiedObject.mRID-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ido:DatatypesGroupIO ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "IdentifiedObject.mRID-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.mRID ; + sh:severity sh:Violation . + +ss:GenericEnablingSchedule + rdf:type sh:NodeShape ; + sh:property ss:BaseTimeSeries.kind-cardinality , ido:IdentifiedObject.description-datatype , ss:GenericEnablingSchedule.AssessedElementWithRemedialAction-cardinality , ss:BaseTimeSeries.kind-datatype , ido:IdentifiedObject.mRID-datatype , ss:GenericEnablingSchedule.AssessedElementWithContingency-cardinality , ido:IdentifiedObject.name-datatype , ss:BaseTimeSeries.interpolationKind-cardinality , ido:IdentifiedObject.mRID-cardinality , ss:GenericEnablingSchedule.GridStateAlteration-cardinality , ss:GenericEnablingSchedule.ContingencyWithRemedialAction-cardinality , ido:IdentifiedObject.name-cardinality , ss:GenericEnablingSchedule.RemedialActionDependency-cardinality , ss:BaseTimeSeries.interpolationKind-datatype , ido:IdentifiedObject.description-cardinality ; + sh:targetClass nc:GenericEnablingSchedule . + +ss:EnablingTimePoint.atTime-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "EnablingTimePoint.atTime-cardinality" ; + sh:order 0 ; + sh:path nc:EnablingTimePoint.atTime ; + sh:severity sh:Violation . + +ss:PowerBidSchedule.isOffer-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerBidSchedule.isOffer-cardinality" ; + sh:order 8 ; + sh:path nc:PowerBidSchedule.isOffer ; + sh:severity sh:Violation . + +ss:PowerBidDependency.DependentPowerBidSchedule-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "PowerBidDependency.DependentPowerBidSchedule-cardinality" ; + sh:order 2 ; + sh:path nc:PowerBidDependency.DependentPowerBidSchedule ; + sh:severity sh:Violation . + +ss:PowerBidDependency.MainPowerBidSchedule-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "PowerBidDependency.MainPowerBidSchedule-cardinality" ; + sh:order 0 ; + sh:path nc:PowerBidDependency.MainPowerBidSchedule ; + sh:severity sh:Violation . + +ss:ContingencyTimePoint.atTime-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:dateTime ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ss:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "ContingencyTimePoint.atTime-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path nc:ContingencyTimePoint.atTime ; + sh:severity sh:Violation . + +ss:GenericValueTimePoint.GenericValueSchedule-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group ss:AssociationsGroup ; + sh:in ( nc:GenericValueSchedule ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:GenericValueSchedule" ; + sh:name "GenericValueTimePoint.GenericValueSchedule-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path ( nc:GenericValueTimePoint.GenericValueSchedule rdf:type ) ; + sh:severity sh:Violation . + +ss:BaseTimeSeries.interpolationKind-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ss:DatatypesGroup ; + sh:in ( nc:TimeSeriesInterpolationKind.next nc:TimeSeriesInterpolationKind.none nc:TimeSeriesInterpolationKind.linear ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "BaseTimeSeries.interpolationKind-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path nc:BaseTimeSeries.interpolationKind ; + sh:severity sh:Violation . + +ss:PowerBidSchedule.totalMinimumEnergy-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerBidSchedule.totalMinimumEnergy-cardinality" ; + sh:order 11 ; + sh:path nc:PowerBidSchedule.totalMinimumEnergy ; + sh:severity sh:Violation . + +ss:PowerBidScheduleTimePoint.price-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerBidScheduleTimePoint.price-cardinality" ; + sh:order 1 ; + sh:path nc:PowerBidScheduleTimePoint.price ; + sh:severity sh:Violation . + +ss:ContingencyTimePoint.probability-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ss:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "ContingencyTimePoint.probability-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:ContingencyTimePoint.probability ; + sh:severity sh:Violation . + +ido:IdentifiedObject.mRID-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ido:CardinalityIO ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "IdentifiedObject.mRID-cardinality" ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.mRID ; + sh:severity sh:Violation . + +ss:DatatypesGroup rdf:type sh:PropertyGroup ; + rdfs:label "Datatypes" ; + sh:order 1 . + +ss:PowerBidSchedule.minimumUptime-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerBidSchedule.minimumUptime-cardinality" ; + sh:order 15 ; + sh:path nc:PowerBidSchedule.minimumUptime ; + sh:severity sh:Violation . + +ss:PowerBidSchedule.PowerRemedialAction-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "PowerBidSchedule.PowerRemedialAction-cardinality" ; + sh:order 1 ; + sh:path nc:PowerBidSchedule.PowerRemedialAction ; + sh:severity sh:Violation . + +ss:PowerBidScheduleTimePoint.atTime-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerBidScheduleTimePoint.atTime-cardinality" ; + sh:order 3 ; + sh:path nc:PowerBidScheduleTimePoint.atTime ; + sh:severity sh:Violation . + +ss:PowerBidScheduleTimePoint.PowerBidSchedule-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "PowerBidScheduleTimePoint.PowerBidSchedule-cardinality" ; + sh:order 4 ; + sh:path nc:PowerBidScheduleTimePoint.PowerBidSchedule ; + sh:severity sh:Violation . + +ss:GenericValueTimePoint.atTime-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "GenericValueTimePoint.atTime-cardinality" ; + sh:order 0 ; + sh:path nc:GenericValueTimePoint.atTime ; + sh:severity sh:Violation . + +ss:ContingencySchedule + rdf:type sh:NodeShape ; + sh:property ss:BaseTimeSeries.interpolationKind-datatype , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.name-datatype , ss:BaseTimeSeries.kind-cardinality , ss:BaseTimeSeries.interpolationKind-cardinality , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.description-datatype , ss:ContingencySchedule.Contingency-cardinality , ss:BaseTimeSeries.kind-datatype ; + sh:targetClass nc:ContingencySchedule . + +ss:PowerBidDependency.DependentPowerBidSchedule-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group ss:AssociationsGroup ; + sh:in ( nc:PowerBidSchedule ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:PowerBidSchedule" ; + sh:name "PowerBidDependency.DependentPowerBidSchedule-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path ( nc:PowerBidDependency.DependentPowerBidSchedule rdf:type ) ; + sh:severity sh:Violation . + +ss:BaseTimeSeries.kind-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ss:DatatypesGroup ; + sh:in ( nc:BaseTimeSeriesKind.schedule ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "BaseTimeSeries.kind-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 3 ; + sh:path nc:BaseTimeSeries.kind ; + sh:severity sh:Violation . + +ss:AvailabilityTimePoint.atTime-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:dateTime ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ss:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "AvailabilityTimePoint.atTime-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:AvailabilityTimePoint.atTime ; + sh:severity sh:Violation . + +ido:DatatypesGroupIO rdf:type sh:PropertyGroup ; + rdfs:label "DatatypesIO" ; + sh:order 1 . + +ss:PowerBidSchedule.minimumOffTime-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerBidSchedule.minimumOffTime-cardinality" ; + sh:order 14 ; + sh:path nc:PowerBidSchedule.minimumOffTime ; + sh:severity sh:Violation . + +ss:PowerBidSchedule.maximumUptime-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:duration ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ss:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerBidSchedule.maximumUptime-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 6 ; + sh:path nc:PowerBidSchedule.maximumUptime ; + sh:severity sh:Violation . + +ss:AssociationsGroup rdf:type sh:PropertyGroup ; + rdfs:label "Associations" ; + sh:order 2 . + +ss:PowerBidSchedule.leadTime-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:duration ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ss:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerBidSchedule.leadTime-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 10 ; + sh:path nc:PowerBidSchedule.leadTime ; + sh:severity sh:Violation . + +ss:PowerBidSchedule.direction-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerBidSchedule.direction-cardinality" ; + sh:order 16 ; + sh:path nc:PowerBidSchedule.direction ; + sh:severity sh:Violation . + +ss:PowerBidScheduleTimePoint.p-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerBidScheduleTimePoint.p-cardinality" ; + sh:order 5 ; + sh:path nc:PowerBidScheduleTimePoint.p ; + sh:severity sh:Violation . + +ss:PowerBidSchedule.totalMinimumEnergy-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ss:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerBidSchedule.totalMinimumEnergy-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 11 ; + sh:path nc:PowerBidSchedule.totalMinimumEnergy ; + sh:severity sh:Violation . + +ss:PowerBidSchedule.priority-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerBidSchedule.priority-cardinality" ; + sh:order 4 ; + sh:path nc:PowerBidSchedule.priority ; + sh:severity sh:Violation . + +ss:EnablingTimePoint.atTime-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:dateTime ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ss:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "EnablingTimePoint.atTime-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:EnablingTimePoint.atTime ; + sh:severity sh:Violation . + +ss:GLSKSchedule.EnergyBlockOrder-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "GLSKSchedule.EnergyBlockOrder-cardinality" ; + sh:order 5 ; + sh:path nc:GLSKSchedule.EnergyBlockOrder ; + sh:severity sh:Violation . + +ss:AssessedElementSchedule + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.mRID-datatype , ss:BaseTimeSeries.kind-cardinality , ido:IdentifiedObject.name-datatype , ss:BaseTimeSeries.interpolationKind-datatype , ss:BaseTimeSeries.interpolationKind-cardinality , ss:BaseTimeSeries.kind-datatype , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.mRID-cardinality , ss:AssessedElementSchedule.AssessedElement-cardinality , ido:IdentifiedObject.description-cardinality ; + sh:targetClass nc:AssessedElementSchedule . + +ido:IdentifiedObject.name-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ido:CardinalityIO ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "IdentifiedObject.name-cardinality" ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.name ; + sh:severity sh:Violation . + +ss:AssessedElementTimePoint.enabled-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ss:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "AssessedElementTimePoint.enabled-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:AssessedElementTimePoint.enabled ; + sh:severity sh:Violation . + +ss:PowerBidSchedule.currency-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerBidSchedule.currency-cardinality" ; + sh:order 0 ; + sh:path nc:PowerBidSchedule.currency ; + sh:severity sh:Violation . + +ss:PowerBidDependency.kind-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "PowerBidDependency.kind-cardinality" ; + sh:order 3 ; + sh:path nc:PowerBidDependency.kind ; + sh:severity sh:Violation . + +ss:GLSKSchedule rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.description-cardinality , ss:BaseTimeSeries.kind-datatype , ido:IdentifiedObject.description-datatype , ss:GLSKSchedule.GeneratingUnit-cardinality , ss:BaseTimeSeries.interpolationKind-datatype , ss:GLSKSchedule.PowerElectronicsUnit-cardinality , ido:IdentifiedObject.name-cardinality , ss:GLSKSchedule.ScheduleResource-cardinality , ido:IdentifiedObject.name-datatype , ss:GLSKSchedule.EnergyBlockOrder-cardinality , ss:BaseTimeSeries.kind-cardinality , ido:IdentifiedObject.mRID-datatype , ss:GLSKSchedule.HydroPump-cardinality , ido:IdentifiedObject.mRID-cardinality , ss:BaseTimeSeries.interpolationKind-cardinality , ss:GLSKSchedule.EnergyConsumer-cardinality , ss:GLSKSchedule.EnergyGroup-cardinality ; + sh:targetClass nc:GLSKSchedule . + +ss:AssessedElementTimePoint.appointedMargin-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AssessedElementTimePoint.appointedMargin-cardinality" ; + sh:order 3 ; + sh:path nc:AssessedElementTimePoint.appointedMargin ; + sh:severity sh:Violation . + +ss:GenericAvailableSchedule.RemedialAction-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "GenericAvailableSchedule.RemedialAction-cardinality" ; + sh:order 0 ; + sh:path nc:GenericAvailableSchedule.RemedialAction ; + sh:severity sh:Violation . + +ss:ContingencyTimePoint.ContingencySchedule-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group ss:AssociationsGroup ; + sh:in ( nc:ContingencySchedule ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:ContingencySchedule" ; + sh:name "ContingencyTimePoint.ContingencySchedule-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 3 ; + sh:path ( nc:ContingencyTimePoint.ContingencySchedule rdf:type ) ; + sh:severity sh:Violation . + +ss:GLSKSchedule.HydroPump-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "GLSKSchedule.HydroPump-cardinality" ; + sh:order 3 ; + sh:path nc:GLSKSchedule.HydroPump ; + sh:severity sh:Violation . + +ss:ContingencySchedule.Contingency-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "ContingencySchedule.Contingency-cardinality" ; + sh:order 1 ; + sh:path nc:ContingencySchedule.Contingency ; + sh:severity sh:Violation . + +ss:EnablingTimePoint.GenericEnablingSchedule-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "EnablingTimePoint.GenericEnablingSchedule-cardinality" ; + sh:order 2 ; + sh:path nc:EnablingTimePoint.GenericEnablingSchedule ; + sh:severity sh:Violation . + +ss:EnablingTimePoint rdf:type sh:NodeShape ; + sh:property ss:EnablingTimePoint.GenericEnablingSchedule-valueType , ss:EnablingTimePoint.GenericEnablingSchedule-cardinality , ss:EnablingTimePoint.enabled-datatype , ss:EnablingTimePoint.enabled-cardinality , ss:EnablingTimePoint.atTime-datatype , ss:EnablingTimePoint.atTime-cardinality ; + sh:targetClass nc:EnablingTimePoint . + +ss:ContingencyTimePoint.atTime-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "ContingencyTimePoint.atTime-cardinality" ; + sh:order 2 ; + sh:path nc:ContingencyTimePoint.atTime ; + sh:severity sh:Violation . + +ss:GLSKSchedule.EnergyConsumer-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "GLSKSchedule.EnergyConsumer-cardinality" ; + sh:order 1 ; + sh:path nc:GLSKSchedule.EnergyConsumer ; + sh:severity sh:Violation . + +ss:GLSKBidActionDistribution + rdf:type sh:NodeShape ; + sh:property ss:GLSKBidActionDistribution.PowerBidSchedule-valueType , ido:IdentifiedObject.description-cardinality , ss:GLSKBidActionDistribution.GLSKSchedule-valueType , ido:IdentifiedObject.name-cardinality , ss:GLSKBidActionDistribution.PowerBidSchedule-cardinality , ido:IdentifiedObject.mRID-cardinality , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.mRID-datatype , ss:GLSKBidActionDistribution.GLSKSchedule-cardinality ; + sh:targetClass nc:GLSKBidActionDistribution . + +ss:ParticipationFactorTimePoint.GLSKSchedule-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group ss:AssociationsGroup ; + sh:in ( nc:GLSKSchedule ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:GLSKSchedule" ; + sh:name "ParticipationFactorTimePoint.GLSKSchedule-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 2 ; + sh:path ( nc:ParticipationFactorTimePoint.GLSKSchedule rdf:type ) ; + sh:severity sh:Violation . + +ss:PowerBidScheduleTimePoint.atTime-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:dateTime ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ss:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerBidScheduleTimePoint.atTime-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path nc:PowerBidScheduleTimePoint.atTime ; + sh:severity sh:Violation . + +ss:AssessedElementTimePoint.AssessedElementSchedule-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "AssessedElementTimePoint.AssessedElementSchedule-cardinality" ; + sh:order 2 ; + sh:path nc:AssessedElementTimePoint.AssessedElementSchedule ; + sh:severity sh:Violation . + +ss:PowerBidScheduleTimePoint.stepIncrementP-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerBidScheduleTimePoint.stepIncrementP-cardinality" ; + sh:order 0 ; + sh:path nc:PowerBidScheduleTimePoint.stepIncrementP ; + sh:severity sh:Violation . + +ss:PowerBidDependency + rdf:type sh:NodeShape ; + sh:property ss:PowerBidDependency.delay-datatype , ss:PowerBidDependency.kind-datatype , ss:PowerBidDependency.DependentPowerBidSchedule-cardinality , ss:PowerBidDependency.delay-cardinality , ss:PowerBidDependency.mRID-cardinality , ss:PowerBidDependency.MainPowerBidSchedule-cardinality , ss:PowerBidDependency.DependentPowerBidSchedule-valueType , ss:PowerBidDependency.kind-cardinality , ss:PowerBidDependency.mRID-datatype , ss:PowerBidDependency.MainPowerBidSchedule-valueType ; + sh:targetClass nc:PowerBidDependency . + +ss:GenericEnablingSchedule.AssessedElementWithContingency-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "GenericEnablingSchedule.AssessedElementWithContingency-cardinality" ; + sh:order 2 ; + sh:path nc:GenericEnablingSchedule.AssessedElementWithContingency ; + sh:severity sh:Violation . + +ss:PowerBidScheduleTimePoint.p-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ss:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerBidScheduleTimePoint.p-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 5 ; + sh:path nc:PowerBidScheduleTimePoint.p ; + sh:severity sh:Violation . + +ss:PowerBidSchedule.isOffer-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ss:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerBidSchedule.isOffer-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 8 ; + sh:path nc:PowerBidSchedule.isOffer ; + sh:severity sh:Violation . + +ss:ContingencyTimePoint.probability-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "ContingencyTimePoint.probability-cardinality" ; + sh:order 0 ; + sh:path nc:ContingencyTimePoint.probability ; + sh:severity sh:Violation . + +ss:PowerBidDependency.mRID-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "PowerBidDependency.mRID-cardinality" ; + sh:order 1 ; + sh:path nc:PowerBidDependency.mRID ; + sh:severity sh:Violation . + +ss:PowerBidDependency.MainPowerBidSchedule-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group ss:AssociationsGroup ; + sh:in ( nc:PowerBidSchedule ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:PowerBidSchedule" ; + sh:name "PowerBidDependency.MainPowerBidSchedule-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path ( nc:PowerBidDependency.MainPowerBidSchedule rdf:type ) ; + sh:severity sh:Violation . + +ss:GLSKSchedule.ScheduleResource-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "GLSKSchedule.ScheduleResource-cardinality" ; + sh:order 4 ; + sh:path nc:GLSKSchedule.ScheduleResource ; + sh:severity sh:Violation . + +ss:EnablingTimePoint.enabled-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "EnablingTimePoint.enabled-cardinality" ; + sh:order 1 ; + sh:path nc:EnablingTimePoint.enabled ; + sh:severity sh:Violation . + +ss:AssessedElementTimePoint.enabled-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AssessedElementTimePoint.enabled-cardinality" ; + sh:order 1 ; + sh:path nc:AssessedElementTimePoint.enabled ; + sh:severity sh:Violation . + +ss:ParticipationFactorTimePoint.participationFactor-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "ParticipationFactorTimePoint.participationFactor-cardinality" ; + sh:order 0 ; + sh:path nc:ParticipationFactorTimePoint.participationFactor ; + sh:severity sh:Violation . + +ss:PowerBidSchedule.leadTime-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerBidSchedule.leadTime-cardinality" ; + sh:order 10 ; + sh:path nc:PowerBidSchedule.leadTime ; + sh:severity sh:Violation . + +ss:ParticipationFactorTimePoint + rdf:type sh:NodeShape ; + sh:property ss:ParticipationFactorTimePoint.GLSKSchedule-valueType , ss:ParticipationFactorTimePoint.GLSKSchedule-cardinality , ss:ParticipationFactorTimePoint.atTime-datatype , ss:ParticipationFactorTimePoint.atTime-cardinality , ss:ParticipationFactorTimePoint.participationFactor-datatype , ss:ParticipationFactorTimePoint.participationFactor-cardinality ; + sh:targetClass nc:ParticipationFactorTimePoint . + +ss:AvailabilityTimePoint.available-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ss:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "AvailabilityTimePoint.available-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:AvailabilityTimePoint.available ; + sh:severity sh:Violation . + +ss:AvailabilityTimePoint.available-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "AvailabilityTimePoint.available-cardinality" ; + sh:order 0 ; + sh:path nc:AvailabilityTimePoint.available ; + sh:severity sh:Violation . + +ss:PowerBidScheduleTimePoint.PowerBidSchedule-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group ss:AssociationsGroup ; + sh:in ( nc:PowerBidSchedule ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:PowerBidSchedule" ; + sh:name "PowerBidScheduleTimePoint.PowerBidSchedule-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 4 ; + sh:path ( nc:PowerBidScheduleTimePoint.PowerBidSchedule rdf:type ) ; + sh:severity sh:Violation . + +ss:GLSKBidActionDistribution.PowerBidSchedule-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group ss:AssociationsGroup ; + sh:in ( nc:PowerBidSchedule ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:PowerBidSchedule" ; + sh:name "GLSKBidActionDistribution.PowerBidSchedule-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path ( nc:GLSKBidActionDistribution.PowerBidSchedule rdf:type ) ; + sh:severity sh:Violation . + +ss:ContingencyTimePoint + rdf:type sh:NodeShape ; + sh:property ss:ContingencyTimePoint.ContingencySchedule-valueType , ss:ContingencyTimePoint.ContingencySchedule-cardinality , ss:ContingencyTimePoint.probability-cardinality , ss:ContingencyTimePoint.atTime-cardinality , ss:ContingencyTimePoint.mustStudy-cardinality , ss:ContingencyTimePoint.atTime-datatype , ss:ContingencyTimePoint.probability-datatype , ss:ContingencyTimePoint.mustStudy-datatype ; + sh:targetClass nc:ContingencyTimePoint . + +ss:BaseTimeSeries.kind-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "BaseTimeSeries.kind-cardinality" ; + sh:order 3 ; + sh:path nc:BaseTimeSeries.kind ; + sh:severity sh:Violation . + +ss:AssessedElementTimePoint.appointedMargin-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ss:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "AssessedElementTimePoint.appointedMargin-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path nc:AssessedElementTimePoint.appointedMargin ; + sh:severity sh:Violation . + +ss:ParticipationFactorTimePoint.atTime-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "ParticipationFactorTimePoint.atTime-cardinality" ; + sh:order 1 ; + sh:path nc:ParticipationFactorTimePoint.atTime ; + sh:severity sh:Violation . + +ss:PowerBidScheduleTimePoint + rdf:type sh:NodeShape ; + sh:property ss:PowerBidScheduleTimePoint.atTime-cardinality , ss:PowerBidScheduleTimePoint.p-cardinality , ss:PowerBidScheduleTimePoint.price-datatype , ss:PowerBidScheduleTimePoint.p-datatype , ss:PowerBidScheduleTimePoint.PowerBidSchedule-valueType , ss:PowerBidScheduleTimePoint.stepIncrementP-cardinality , ss:PowerBidScheduleTimePoint.stepIncrementP-datatype , ss:PowerBidScheduleTimePoint.atTime-datatype , ss:PowerBidScheduleTimePoint.minimumActivationP-datatype , ss:PowerBidScheduleTimePoint.PowerBidSchedule-cardinality , ss:PowerBidScheduleTimePoint.minimumActivationP-cardinality , ss:PowerBidScheduleTimePoint.price-cardinality ; + sh:targetClass nc:PowerBidScheduleTimePoint . + +ss:GenericEnablingSchedule.RemedialActionDependency-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "GenericEnablingSchedule.RemedialActionDependency-cardinality" ; + sh:order 3 ; + sh:path nc:GenericEnablingSchedule.RemedialActionDependency ; + sh:severity sh:Violation . + +ss:AvailabilityTimePoint + rdf:type sh:NodeShape ; + sh:property ss:AvailabilityTimePoint.GenericAvailabilitySchedule-valueType , ss:AvailabilityTimePoint.GenericAvailabilitySchedule-cardinality , ss:AvailabilityTimePoint.atTime-datatype , ss:AvailabilityTimePoint.atTime-cardinality , ss:AvailabilityTimePoint.available-datatype , ss:AvailabilityTimePoint.available-cardinality ; + sh:targetClass nc:AvailabilityTimePoint . + +ss:PowerBidDependency.mRID-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ss:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerBidDependency.mRID-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:PowerBidDependency.mRID ; + sh:severity sh:Violation . + +ss:PowerBidDependency.delay-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "PowerBidDependency.delay-cardinality" ; + sh:order 4 ; + sh:path nc:PowerBidDependency.delay ; + sh:severity sh:Violation . + +ss:GenericAvailableSchedule + rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.name-datatype , ss:GenericAvailableSchedule.RemedialAction-cardinality , ss:BaseTimeSeries.kind-datatype , ss:BaseTimeSeries.interpolationKind-cardinality , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.mRID-datatype , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.description-cardinality , ss:BaseTimeSeries.interpolationKind-datatype , ss:BaseTimeSeries.kind-cardinality , ido:IdentifiedObject.mRID-cardinality ; + sh:targetClass nc:GenericAvailableSchedule . + +ss:GLSKSchedule.EnergyGroup-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "GLSKSchedule.EnergyGroup-cardinality" ; + sh:order 8 ; + sh:path nc:GLSKSchedule.EnergyGroup ; + sh:severity sh:Violation . + +ss:BaseTimeSeries.interpolationKind-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ss:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "BaseTimeSeries.interpolationKind-cardinality" ; + sh:order 2 ; + sh:path nc:BaseTimeSeries.interpolationKind ; + sh:severity sh:Violation . + +ss:PowerBidSchedule.direction-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ss:DatatypesGroup ; + sh:in ( nc:BidDirectionKind.stable nc:BidDirectionKind.down nc:BidDirectionKind.upAndDown nc:BidDirectionKind.up ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "PowerBidSchedule.direction-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 16 ; + sh:path nc:PowerBidSchedule.direction ; + sh:severity sh:Violation . + +ido:CardinalityGroup rdf:type sh:PropertyGroup ; + rdfs:label "CardinalityIO" ; + sh:order 0 . diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/SensitivityMatrixProfile_v2_2_SHACL.ttl b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/SensitivityMatrixProfile_v2_2_SHACL.ttl new file mode 100644 index 0000000000..343bd0c5a3 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/SensitivityMatrixProfile_v2_2_SHACL.ttl @@ -0,0 +1,345 @@ +@base . +@prefix adms: . +@prefix cim: . +@prefix cims: . +@prefix dash: . +@prefix dc: . +@prefix dcat: . +@prefix dcterms: . +@prefix dm: . +@prefix eu: . +@prefix eumd: . +@prefix euvoc: . +@prefix ido: . +@prefix md: . +@prefix nc: . +@prefix owl: . +@prefix prof: . +@prefix profcim: . +@prefix prov: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix skos: . +@prefix sm: . +@prefix xsd: . + +sm:ObservableQuantity.observableQuantityKind-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group sm:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "ObservableQuantity.observableQuantityKind-cardinality" ; + sh:order 0 ; + sh:path nc:ObservableQuantity.observableQuantityKind ; + sh:severity sh:Violation . + +ido:DatatypesGroupIO rdf:type sh:PropertyGroup ; + rdfs:label "DatatypesIO" ; + sh:order 1 . + +ido:IdentifiedObject.description-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ido:CardinalityIO ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "IdentifiedObject.description-cardinality" ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.description ; + sh:severity sh:Violation . + +sm:CardinalityGroup rdf:type sh:PropertyGroup ; + rdfs:label "Cardinality" ; + sh:order 0 . + +sm:SensitivityFactor rdf:type sh:NodeShape ; + sh:property sm:SensitivityFactor.ObservableQuantity-cardinality , sm:SensitivityFactor.value-cardinality , sm:SensitivityFactor.ControllableQuantity-cardinality , sm:SensitivityFactor.SensitivityMatrix-valueType , sm:SensitivityFactor.value-datatype , sm:SensitivityFactor.ObservableQuantity-valueType , sm:SensitivityFactor.ControllableQuantity-valueType , sm:SensitivityFactor.SensitivityMatrix-cardinality ; + sh:targetClass nc:SensitivityFactor . + +sm:DatatypesGroup rdf:type sh:PropertyGroup ; + rdfs:label "Datatypes" ; + sh:order 1 . + +ido:IdentifiedObject.name-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ido:CardinalityIO ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "IdentifiedObject.name-cardinality" ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.name ; + sh:severity sh:Violation . + +ido:IdentifiedObject.description-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ido:DatatypesGroupIO ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "IdentifiedObject.description-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.description ; + sh:severity sh:Violation . + +sm:SensitivityFactor.value-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group sm:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "SensitivityFactor.value-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path nc:SensitivityFactor.value ; + sh:severity sh:Violation . + +sm:ControllableQuantity.RemedialAction-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group sm:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "ControllableQuantity.RemedialAction-cardinality" ; + sh:order 2 ; + sh:path nc:ControllableQuantity.RemedialAction ; + sh:severity sh:Violation . + +sm:ObservableQuantity.observableQuantityKind-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group sm:DatatypesGroup ; + sh:in ( nc:ObservableQuantityKind.voltageMagnitude nc:ObservableQuantityKind.voltageAngle nc:ObservableQuantityKind.reactivePower nc:ObservableQuantityKind.activePower ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "ObservableQuantity.observableQuantityKind-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path nc:ObservableQuantity.observableQuantityKind ; + sh:severity sh:Violation . + +sm:SensitivityFactor.SensitivityMatrix-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group sm:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "SensitivityFactor.SensitivityMatrix-cardinality" ; + sh:order 3 ; + sh:path nc:SensitivityFactor.SensitivityMatrix ; + sh:severity sh:Violation . + +sm:ObservableQuantity.AssessedElement-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group sm:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "ObservableQuantity.AssessedElement-cardinality" ; + sh:order 3 ; + sh:path nc:ObservableQuantity.AssessedElement ; + sh:severity sh:Violation . + +sm:SensitivityMatrix.kind-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group sm:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "SensitivityMatrix.kind-cardinality" ; + sh:order 1 ; + sh:path nc:SensitivityMatrix.kind ; + sh:severity sh:Violation . + +sm:SensitivityMatrix.kind-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group sm:DatatypesGroup ; + sh:in ( nc:SensitivityMatrixKind.uniformLoad nc:SensitivityMatrixKind.other nc:SensitivityMatrixKind.zoneToSlack nc:SensitivityMatrixKind.uniformNode ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "SensitivityMatrix.kind-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path nc:SensitivityMatrix.kind ; + sh:severity sh:Violation . + +sm:ObservableQuantity.Contingency-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group sm:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "ObservableQuantity.Contingency-cardinality" ; + sh:order 2 ; + sh:path nc:ObservableQuantity.Contingency ; + sh:severity sh:Violation . + +sm:ControllableQuantity + rdf:type sh:NodeShape ; + sh:property sm:ControllableQuantity.GridStateAlteration-cardinality , sm:ControllableQuantity.RemedialAction-cardinality , sm:ControllableQuantity.value-datatype , sm:ControllableQuantity.value-cardinality ; + sh:targetClass nc:ControllableQuantity . + +sm:SensitivityFactor.SensitivityMatrix-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group sm:AssociationsGroup ; + sh:in ( nc:SensitivityMatrix ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:SensitivityMatrix" ; + sh:name "SensitivityFactor.SensitivityMatrix-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 3 ; + sh:path ( nc:SensitivityFactor.SensitivityMatrix rdf:type ) ; + sh:severity sh:Violation . + +ido:IdentifiedObject.name-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ido:DatatypesGroupIO ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "IdentifiedObject.name-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.name ; + sh:severity sh:Violation . + +ido:CardinalityGroup rdf:type sh:PropertyGroup ; + rdfs:label "CardinalityIO" ; + sh:order 0 . + +sm:ControllableQuantity.value-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group sm:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "ControllableQuantity.value-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:ControllableQuantity.value ; + sh:severity sh:Violation . + +sm:SensitivityFactor.ControllableQuantity-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group sm:AssociationsGroup ; + sh:in ( nc:ControllableQuantity ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:ControllableQuantity" ; + sh:name "SensitivityFactor.ControllableQuantity-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path ( nc:SensitivityFactor.ControllableQuantity rdf:type ) ; + sh:severity sh:Violation . + +sm:SensitivityFactor.ObservableQuantity-valueType + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the value type of the association at the used direction." ; + sh:group sm:AssociationsGroup ; + sh:in ( nc:ObservableQuantity ) ; + sh:message "One of the following does not conform: 1) The value type shall be IRI; 2) The value type shall be an instance of the class: nc:ObservableQuantity" ; + sh:name "SensitivityFactor.ObservableQuantity-valueType" ; + sh:nodeKind sh:IRI ; + sh:order 1 ; + sh:path ( nc:SensitivityFactor.ObservableQuantity rdf:type ) ; + sh:severity sh:Violation . + +sm:ObservableQuantity + rdf:type sh:NodeShape ; + sh:property sm:ObservableQuantity.AssessedElement-cardinality , sm:ObservableQuantity.Contingency-cardinality , sm:ObservableQuantity.observableQuantityKind-datatype , sm:ObservableQuantity.observableQuantityKind-cardinality ; + sh:targetClass nc:ObservableQuantity . + +ido:IdentifiedObject.mRID-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ido:CardinalityIO ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "IdentifiedObject.mRID-cardinality" ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.mRID ; + sh:severity sh:Violation . + +sm:AssociationsGroup rdf:type sh:PropertyGroup ; + rdfs:label "Associations" ; + sh:order 2 . + +sm:SensitivityMatrix rdf:type sh:NodeShape ; + sh:property ido:IdentifiedObject.name-datatype , ido:IdentifiedObject.description-datatype , ido:IdentifiedObject.mRID-datatype , sm:SensitivityMatrix.kind-cardinality , sm:SensitivityMatrix.kind-datatype , ido:IdentifiedObject.description-cardinality , ido:IdentifiedObject.name-cardinality , ido:IdentifiedObject.mRID-cardinality ; + sh:targetClass nc:SensitivityMatrix . + +sm:SensitivityFactor.value-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group sm:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "SensitivityFactor.value-cardinality" ; + sh:order 2 ; + sh:path nc:SensitivityFactor.value ; + sh:severity sh:Violation . + +sm:ControllableQuantity.GridStateAlteration-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group sm:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "ControllableQuantity.GridStateAlteration-cardinality" ; + sh:order 3 ; + sh:path nc:ControllableQuantity.GridStateAlteration ; + sh:severity sh:Violation . + +ido:IdentifiedObject.mRID-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:string ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ido:DatatypesGroupIO ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "IdentifiedObject.mRID-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0.1 ; + sh:path cim:IdentifiedObject.mRID ; + sh:severity sh:Violation . + +sm:SensitivityFactor.ControllableQuantity-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group sm:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "SensitivityFactor.ControllableQuantity-cardinality" ; + sh:order 0 ; + sh:path nc:SensitivityFactor.ControllableQuantity ; + sh:severity sh:Violation . + +sm:SensitivityFactor.ObservableQuantity-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the association at the used direction." ; + sh:group sm:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required association." ; + sh:minCount 1 ; + sh:name "SensitivityFactor.ObservableQuantity-cardinality" ; + sh:order 1 ; + sh:path nc:SensitivityFactor.ObservableQuantity ; + sh:severity sh:Violation . + +sm:ControllableQuantity.value-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group sm:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "ControllableQuantity.value-cardinality" ; + sh:order 0 ; + sh:path nc:ControllableQuantity.value ; + sh:severity sh:Violation . diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/SteadyStateInstructionProfile_v2_2_SHACL.ttl b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/SteadyStateInstructionProfile_v2_2_SHACL.ttl new file mode 100644 index 0000000000..ac05d71f6d --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/SHACLconstraints/RDFS/SteadyStateInstructionProfile_v2_2_SHACL.ttl @@ -0,0 +1,2427 @@ +@base . +@prefix adms: . +@prefix cim: . +@prefix cims: . +@prefix dash: . +@prefix dc: . +@prefix dcat: . +@prefix dcterms: . +@prefix dm: . +@prefix eu: . +@prefix eumd: . +@prefix euvoc: . +@prefix ido: . +@prefix md: . +@prefix nc: . +@prefix owl: . +@prefix prof: . +@prefix profcim: . +@prefix prov: . +@prefix rdf: . +@prefix rdfs: . +@prefix sh: . +@prefix skos: . +@prefix ssi: . +@prefix xsd: . + +ssi:DCPole.longPF-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "DCPole.longPF-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path nc:DCPole.longPF ; + sh:severity sh:Violation . + +ssi:FunctionBlock.enabled-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "FunctionBlock.enabled-cardinality" ; + sh:order 0 ; + sh:path nc:FunctionBlock.enabled ; + sh:severity sh:Violation . + +ssi:PhaseControlFunction.targetValue-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "PhaseControlFunction.targetValue-cardinality" ; + sh:order 0 ; + sh:path nc:PhaseControlFunction.targetValue ; + sh:severity sh:Violation . + +ssi:RangeConstraint.value-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "RangeConstraint.value-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:RangeConstraint.value ; + sh:severity sh:Violation . + +ssi:BiddingZoneBorder.transmissionReliabilityMargin-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "BiddingZoneBorder.transmissionReliabilityMargin-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:BiddingZoneBorder.transmissionReliabilityMargin ; + sh:severity sh:Violation . + +ssi:PTCActivePowerSupport.value-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PTCActivePowerSupport.value-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:PTCActivePowerSupport.value ; + sh:severity sh:Violation . + +ssi:BiddingZone.minImportP-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "BiddingZone.minImportP-cardinality" ; + sh:order 7 ; + sh:path nc:BiddingZone.minImportP ; + sh:severity sh:Violation . + +ssi:CircuitShare.contributionFactor-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "CircuitShare.contributionFactor-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:CircuitShare.contributionFactor ; + sh:severity sh:Violation . + +ssi:VoltageControlFunction + rdf:type sh:NodeShape ; + sh:property ssi:VoltageControlFunction.targetValue-datatype , ssi:VoltageControlFunction.targetValue-cardinality ; + sh:targetClass nc:VoltageControlFunction . + +ssi:BiddingZoneBorder.availableTransferCapacity-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "BiddingZoneBorder.availableTransferCapacity-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 5 ; + sh:path nc:BiddingZoneBorder.availableTransferCapacity ; + sh:severity sh:Violation . + +ssi:PowerRemedialAction.maxRegulatingUp-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerRemedialAction.maxRegulatingUp-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:PowerRemedialAction.maxRegulatingUp ; + sh:severity sh:Violation . + +ssi:DCSwitch.open-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "DCSwitch.open-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:DCSwitch.open ; + sh:severity sh:Violation . + +ssi:ThyristorControlledSeriesCompensator.currentSectionNumber-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "ThyristorControlledSeriesCompensator.currentSectionNumber-cardinality" ; + sh:order 0 ; + sh:path nc:ThyristorControlledSeriesCompensator.currentSectionNumber ; + sh:severity sh:Violation . + +ssi:ContingencyWithRemedialAction.enabled-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "ContingencyWithRemedialAction.enabled-cardinality" ; + sh:order 0 ; + sh:path nc:ContingencyWithRemedialAction.enabled ; + sh:severity sh:Violation . + +ssi:PowerFactorControlFunction + rdf:type sh:NodeShape ; + sh:property ssi:PowerFactorControlFunction.targetValue-datatype , ssi:PowerFactorControlFunction.targetValue-cardinality ; + sh:targetClass nc:PowerFactorControlFunction . + +ssi:RemedialActionDependency.enabled-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "RemedialActionDependency.enabled-cardinality" ; + sh:order 0 ; + sh:path nc:RemedialActionDependency.enabled ; + sh:severity sh:Violation . + +ssi:ReactivePowerControlFunction.targetValue-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "ReactivePowerControlFunction.targetValue-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:ReactivePowerControlFunction.targetValue ; + sh:severity sh:Violation . + +ssi:Contingency rdf:type sh:NodeShape ; + sh:property ssi:Contingency.mustStudy-datatype , ssi:Contingency.mustStudy-cardinality , ssi:Contingency.probability-datatype , ssi:Contingency.probability-cardinality ; + sh:targetClass cim:Contingency . + +ssi:EnergyGroup rdf:type sh:NodeShape ; + sh:property ssi:EnergyGroup.participationFactor-datatype , ssi:EnergyGroup.participationFactor-cardinality ; + sh:targetClass nc:EnergyGroup . + +ssi:GridStateAlteration + rdf:type sh:NodeShape ; + sh:property ssi:GridStateAlteration.enabled-datatype , ssi:GridStateAlteration.enabled-cardinality , ssi:GridStateAlteration.participationFactor-datatype , ssi:GridStateAlteration.participationFactor-cardinality ; + sh:targetClass nc:GridStateAlteration . + +ssi:PowerInfeedLimit rdf:type sh:NodeShape ; + sh:property ssi:PowerInfeedLimit.value-datatype , ssi:PowerInfeedLimit.value-cardinality ; + sh:targetClass nc:PowerInfeedLimit . + +ssi:BiddingZoneBorder.netTransferCapacity-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "BiddingZoneBorder.netTransferCapacity-cardinality" ; + sh:order 3 ; + sh:path nc:BiddingZoneBorder.netTransferCapacity ; + sh:severity sh:Violation . + +ssi:StaticSynchronousCompensator + rdf:type sh:NodeShape ; + sh:property ssi:RegulatingCondEq.controlEnabled-datatype , ssi:RegulatingCondEq.controlEnabled-cardinality , ssi:FACTSEquipment.q-datatype , ssi:FACTSEquipment.q-cardinality ; + sh:targetClass nc:StaticSynchronousCompensator . + +ssi:Contingency.mustStudy-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Contingency.mustStudy-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path cim:Contingency.mustStudy ; + sh:severity sh:Violation . + +ssi:Equipment.inService-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "Equipment.inService-cardinality" ; + sh:order 0 ; + sh:path cim:Equipment.inService ; + sh:severity sh:Violation . + +ssi:Contingency.probability-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Contingency.probability-cardinality" ; + sh:order 0 ; + sh:path nc:Contingency.probability ; + sh:severity sh:Violation . + +ssi:RangeConstraint.value-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "RangeConstraint.value-cardinality" ; + sh:order 0 ; + sh:path nc:RangeConstraint.value ; + sh:severity sh:Violation . + +ssi:ActivePowerControlFunction + rdf:type sh:NodeShape ; + sh:property ssi:ActivePowerControlFunction.targetValue-datatype , ssi:ActivePowerControlFunction.targetValue-cardinality ; + sh:targetClass nc:ActivePowerControlFunction . + +ido:CardinalityGroup rdf:type sh:PropertyGroup ; + rdfs:label "CardinalityIO" ; + sh:order 0 . + +ssi:DirectCurrentController + rdf:type sh:NodeShape ; + sh:property ssi:DirectCurrentController.mode-datatype , ssi:DirectCurrentController.mode-cardinality ; + sh:targetClass nc:DirectCurrentController . + +ssi:BiddingZone.netDCInterchange-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "BiddingZone.netDCInterchange-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:BiddingZone.netDCInterchange ; + sh:severity sh:Violation . + +ssi:PowerElectronicsUnit.participationFactor-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "PowerElectronicsUnit.participationFactor-cardinality" ; + sh:order 0 ; + sh:path nc:PowerElectronicsUnit.participationFactor ; + sh:severity sh:Violation . + +ssi:VoltageInjectionControlFunction.targetValue-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "VoltageInjectionControlFunction.targetValue-cardinality" ; + sh:order 0 ; + sh:path nc:VoltageInjectionControlFunction.targetValue ; + sh:severity sh:Violation . + +ssi:AssessedElementWithContingency.enabled-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "AssessedElementWithContingency.enabled-cardinality" ; + sh:order 0 ; + sh:path nc:AssessedElementWithContingency.enabled ; + sh:severity sh:Violation . + +ssi:GridStateAlteration.enabled-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "GridStateAlteration.enabled-cardinality" ; + sh:order 1 ; + sh:path nc:GridStateAlteration.enabled ; + sh:severity sh:Violation . + +ssi:TCSCController rdf:type sh:NodeShape ; + sh:property ssi:TCSCController.mode-datatype , ssi:TCSCController.mode-cardinality ; + sh:targetClass nc:TCSCController . + +ssi:FACTSEquipment.q-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "FACTSEquipment.q-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:FACTSEquipment.q ; + sh:severity sh:Violation . + +ssi:CurrentControlFunction.targetValue-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "CurrentControlFunction.targetValue-cardinality" ; + sh:order 0 ; + sh:path nc:CurrentControlFunction.targetValue ; + sh:severity sh:Violation . + +ssi:CurrentDroopControlFunction.targetValueInductive-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "CurrentDroopControlFunction.targetValueInductive-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:CurrentDroopControlFunction.targetValueInductive ; + sh:severity sh:Violation . + +ssi:DCTieCorridor.p-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "DCTieCorridor.p-cardinality" ; + sh:order 0 ; + sh:path nc:DCTieCorridor.p ; + sh:severity sh:Violation . + +ssi:BiddingZoneBorder.availableTransferCapacity-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "BiddingZoneBorder.availableTransferCapacity-cardinality" ; + sh:order 5 ; + sh:path nc:BiddingZoneBorder.availableTransferCapacity ; + sh:severity sh:Violation . + +ssi:AssociationsGroup + rdf:type sh:PropertyGroup ; + rdfs:label "Associations" ; + sh:order 2 . + +ssi:RemedialActionScheme.armed-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "RemedialActionScheme.armed-cardinality" ; + sh:order 0 ; + sh:path nc:RemedialActionScheme.armed ; + sh:severity sh:Violation . + +ssi:PowerElectronicsUnit.participationFactor-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerElectronicsUnit.participationFactor-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:PowerElectronicsUnit.participationFactor ; + sh:severity sh:Violation . + +ssi:EnergyGroup.participationFactor-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "EnergyGroup.participationFactor-cardinality" ; + sh:order 0 ; + sh:path nc:EnergyGroup.participationFactor ; + sh:severity sh:Violation . + +ssi:AssessedElement.maxFlow-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AssessedElement.maxFlow-cardinality" ; + sh:order 3 ; + sh:path nc:AssessedElement.maxFlow ; + sh:severity sh:Violation . + +ssi:InjectionController + rdf:type sh:NodeShape ; + sh:property ssi:InjectionController.mode-datatype , ssi:InjectionController.mode-cardinality ; + sh:targetClass nc:InjectionController . + +ssi:DCSwitch.open-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "DCSwitch.open-cardinality" ; + sh:order 1 ; + sh:path nc:DCSwitch.open ; + sh:severity sh:Violation . + +ssi:ReactivePowerControlFunction + rdf:type sh:NodeShape ; + sh:property ssi:ReactivePowerControlFunction.targetValue-datatype , ssi:ReactivePowerControlFunction.targetValue-cardinality ; + sh:targetClass nc:ReactivePowerControlFunction . + +ssi:BiddingZone.regulatingUpAllocation-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "BiddingZone.regulatingUpAllocation-cardinality" ; + sh:order 0 ; + sh:path nc:BiddingZone.regulatingUpAllocation ; + sh:severity sh:Violation . + +ssi:GeneratingUnit.participationFactor-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "GeneratingUnit.participationFactor-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:GeneratingUnit.participationFactor ; + sh:severity sh:Violation . + +ssi:AssessedElement.enabled-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "AssessedElement.enabled-cardinality" ; + sh:order 0 ; + sh:path nc:AssessedElement.enabled ; + sh:severity sh:Violation . + +ssi:ScheduleResource.participationFactor-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "ScheduleResource.participationFactor-cardinality" ; + sh:order 0 ; + sh:path nc:ScheduleResource.participationFactor ; + sh:severity sh:Violation . + +ssi:FunctionBlock rdf:type sh:NodeShape ; + sh:property ssi:FunctionBlock.enabled-datatype , ssi:FunctionBlock.enabled-cardinality ; + sh:targetClass nc:FunctionBlock . + +ssi:BiddingZone.maxInterchange-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "BiddingZone.maxInterchange-cardinality" ; + sh:order 8 ; + sh:path nc:BiddingZone.maxInterchange ; + sh:severity sh:Violation . + +ssi:SSSCController rdf:type sh:NodeShape ; + sh:property ssi:SSSCController.mode-datatype , ssi:SSSCController.mode-cardinality ; + sh:targetClass nc:SSSCController . + +ssi:RemedialActionScheme.inService-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "RemedialActionScheme.inService-cardinality" ; + sh:order 1 ; + sh:path nc:RemedialActionScheme.inService ; + sh:severity sh:Violation . + +ssi:PowerInfeedLimit.value-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerInfeedLimit.value-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:PowerInfeedLimit.value ; + sh:severity sh:Violation . + +ssi:Equipment.networkAnalysisEnabled-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "Equipment.networkAnalysisEnabled-cardinality" ; + sh:order 1 ; + sh:path cim:Equipment.networkAnalysisEnabled ; + sh:severity sh:Violation . + +ssi:GridStateAlteration.enabled-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "GridStateAlteration.enabled-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:GridStateAlteration.enabled ; + sh:severity sh:Violation . + +ssi:EnergyConsumer.participationFactor-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "EnergyConsumer.participationFactor-cardinality" ; + sh:order 0 ; + sh:path nc:EnergyConsumer.participationFactor ; + sh:severity sh:Violation . + +ssi:EnergyBlockOrder.participationFactor-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "EnergyBlockOrder.participationFactor-cardinality" ; + sh:order 0 ; + sh:path nc:EnergyBlockOrder.participationFactor ; + sh:severity sh:Violation . + +ssi:VoltageAngleLimit + rdf:type sh:NodeShape ; + sh:property ssi:VoltageAngleLimit.value-datatype , ssi:VoltageAngleLimit.value-cardinality ; + sh:targetClass nc:VoltageAngleLimit . + +ssi:ImpedanceControlFunction.targetValue-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "ImpedanceControlFunction.targetValue-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:ImpedanceControlFunction.targetValue ; + sh:severity sh:Violation . + +ssi:PowerRemedialAction.maxRegulatingDown-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "PowerRemedialAction.maxRegulatingDown-cardinality" ; + sh:order 1 ; + sh:path nc:PowerRemedialAction.maxRegulatingDown ; + sh:severity sh:Violation . + +ssi:BiddingZoneBorder.alreadyAllocatedFlow-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "BiddingZoneBorder.alreadyAllocatedFlow-cardinality" ; + sh:order 2 ; + sh:path nc:BiddingZoneBorder.alreadyAllocatedFlow ; + sh:severity sh:Violation . + +ssi:BiddingZoneBorder.alreadyAllocatedCapacity-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "BiddingZoneBorder.alreadyAllocatedCapacity-cardinality" ; + sh:order 4 ; + sh:path nc:BiddingZoneBorder.alreadyAllocatedCapacity ; + sh:severity sh:Violation . + +ssi:AssessedElementWithRemedialAction + rdf:type sh:NodeShape ; + sh:property ssi:AssessedElementWithRemedialAction.enabled-datatype , ssi:AssessedElementWithRemedialAction.enabled-cardinality ; + sh:targetClass nc:AssessedElementWithRemedialAction . + +ssi:EnergyBlockOrder.participationFactor-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "EnergyBlockOrder.participationFactor-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:EnergyBlockOrder.participationFactor ; + sh:severity sh:Violation . + +ssi:AssessedElementWithContingency + rdf:type sh:NodeShape ; + sh:property ssi:AssessedElementWithContingency.enabled-datatype , ssi:AssessedElementWithContingency.enabled-cardinality ; + sh:targetClass nc:AssessedElementWithContingency . + +ssi:CurrentDroopOverride.targetValueInductive-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "CurrentDroopOverride.targetValueInductive-cardinality" ; + sh:order 2 ; + sh:path nc:CurrentDroopOverride.targetValueInductive ; + sh:severity sh:Violation . + +ssi:EnergyGroup.participationFactor-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "EnergyGroup.participationFactor-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:EnergyGroup.participationFactor ; + sh:severity sh:Violation . + +ssi:RemedialAction rdf:type sh:NodeShape ; + sh:property ssi:RemedialAction.available-datatype , ssi:RemedialAction.available-cardinality ; + sh:targetClass nc:RemedialAction . + +ssi:ThyristorControlledSeriesCompensator.currentSectionNumber-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:integer ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "ThyristorControlledSeriesCompensator.currentSectionNumber-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:ThyristorControlledSeriesCompensator.currentSectionNumber ; + sh:severity sh:Violation . + +ssi:BiddingZone.maxInterchange-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "BiddingZone.maxInterchange-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 8 ; + sh:path nc:BiddingZone.maxInterchange ; + sh:severity sh:Violation . + +ssi:StageTrigger rdf:type sh:NodeShape ; + sh:property ssi:StageTrigger.armed-datatype , ssi:StageTrigger.armed-cardinality ; + sh:targetClass nc:StageTrigger . + +ssi:VoltageAngleLimit.value-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "VoltageAngleLimit.value-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:VoltageAngleLimit.value ; + sh:severity sh:Violation . + +ssi:Equipment rdf:type sh:NodeShape ; + sh:property ssi:Equipment.networkAnalysisEnabled-datatype , ssi:Equipment.networkAnalysisEnabled-cardinality , ssi:Equipment.inService-datatype , ssi:Equipment.inService-cardinality ; + sh:targetClass cim:Equipment . + +ssi:AssessedElement.enabled-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "AssessedElement.enabled-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:AssessedElement.enabled ; + sh:severity sh:Violation . + +ssi:VoltageAngleLimit.value-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "VoltageAngleLimit.value-cardinality" ; + sh:order 0 ; + sh:path nc:VoltageAngleLimit.value ; + sh:severity sh:Violation . + +ssi:DCPole rdf:type sh:NodeShape ; + sh:property ssi:DCPole.shortPF-datatype , ssi:DCPole.longPF-datatype , ssi:DCPole.maxEconomicP-datatype , ssi:DCPole.longPF-cardinality , ssi:DCPole.maxEconomicP-cardinality , ssi:DCPole.minEconomicP-cardinality , ssi:DCPole.minEconomicP-datatype , ssi:DCPole.shortPF-cardinality ; + sh:targetClass nc:DCPole . + +ssi:RemedialActionGroup.maxRegulatingDown-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "RemedialActionGroup.maxRegulatingDown-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:RemedialActionGroup.maxRegulatingDown ; + sh:severity sh:Violation . + +ssi:AssessedElementWithRemedialAction.enabled-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "AssessedElementWithRemedialAction.enabled-cardinality" ; + sh:order 0 ; + sh:path nc:AssessedElementWithRemedialAction.enabled ; + sh:severity sh:Violation . + +ssi:RotatingMachineController.mode-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:in ( nc:RotatingMachineControlModeKind.activePower nc:RotatingMachineControlModeKind.reactivePower nc:RotatingMachineControlModeKind.voltage nc:RotatingMachineControlModeKind.powerFactor ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "RotatingMachineController.mode-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path nc:RotatingMachineController.mode ; + sh:severity sh:Violation . + +ssi:ScheduleResource.participationFactor-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "ScheduleResource.participationFactor-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:ScheduleResource.participationFactor ; + sh:severity sh:Violation . + +ssi:RangeConstraint rdf:type sh:NodeShape ; + sh:property ssi:RangeConstraint.value-datatype , ssi:RangeConstraint.value-cardinality ; + sh:targetClass nc:RangeConstraint . + +ssi:StaticSynchronousSeriesCompensator + rdf:type sh:NodeShape ; + sh:property ssi:RegulatingCondEq.controlEnabled-datatype , ssi:RegulatingCondEq.controlEnabled-cardinality , ssi:FACTSEquipment.q-datatype , ssi:FACTSEquipment.q-cardinality ; + sh:targetClass nc:StaticSynchronousSeriesCompensator . + +ssi:AssessedElementWithContingency.enabled-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "AssessedElementWithContingency.enabled-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:AssessedElementWithContingency.enabled ; + sh:severity sh:Violation . + +ssi:DCPole.minEconomicP-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "DCPole.minEconomicP-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:DCPole.minEconomicP ; + sh:severity sh:Violation . + +ssi:PTCActivePowerSupport.value-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "PTCActivePowerSupport.value-cardinality" ; + sh:order 0 ; + sh:path nc:PTCActivePowerSupport.value ; + sh:severity sh:Violation . + +ssi:PowerTransferCorridor.enabled-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerTransferCorridor.enabled-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:PowerTransferCorridor.enabled ; + sh:severity sh:Violation . + +ssi:BiddingZone.netPosition-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "BiddingZone.netPosition-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path nc:BiddingZone.netPosition ; + sh:severity sh:Violation . + +ssi:AssessedElement.scannedThresholdMargin-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AssessedElement.scannedThresholdMargin-cardinality" ; + sh:order 4 ; + sh:path nc:AssessedElement.scannedThresholdMargin ; + sh:severity sh:Violation . + +ssi:DCCurrentControlFunction + rdf:type sh:NodeShape ; + sh:property ssi:DCCurrentControlFunction.targetValue-datatype , ssi:DCCurrentControlFunction.targetValue-cardinality ; + sh:targetClass nc:DCCurrentControlFunction . + +ssi:BiddingZone.netACInterchangeTolerance-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "BiddingZone.netACInterchangeTolerance-cardinality" ; + sh:order 5 ; + sh:path nc:BiddingZone.netACInterchangeTolerance ; + sh:severity sh:Violation . + +ssi:ActivePowerControlFunction.targetValue-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "ActivePowerControlFunction.targetValue-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:ActivePowerControlFunction.targetValue ; + sh:severity sh:Violation . + +ssi:FunctionBlock.enabled-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "FunctionBlock.enabled-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:FunctionBlock.enabled ; + sh:severity sh:Violation . + +ssi:VoltageInjectionControlFunction + rdf:type sh:NodeShape ; + sh:property ssi:VoltageInjectionControlFunction.targetValue-datatype , ssi:VoltageInjectionControlFunction.targetValue-cardinality ; + sh:targetClass nc:VoltageInjectionControlFunction . + +ssi:CircuitShare rdf:type sh:NodeShape ; + sh:property ssi:CircuitShare.contributionFactor-datatype , ssi:CircuitShare.contributionFactor-cardinality ; + sh:targetClass nc:CircuitShare . + +ssi:InjectionController.mode-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:in ( nc:InjectionControlModeKind.reactivePower nc:InjectionControlModeKind.activePower nc:InjectionControlModeKind.voltage nc:InjectionControlModeKind.powerFactor ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "InjectionController.mode-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path nc:InjectionController.mode ; + sh:severity sh:Violation . + +ssi:BiddingZone.regulatingDownAllocation-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "BiddingZone.regulatingDownAllocation-cardinality" ; + sh:order 6 ; + sh:path nc:BiddingZone.regulatingDownAllocation ; + sh:severity sh:Violation . + +ssi:AreaDispatchableUnit.enabled-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "AreaDispatchableUnit.enabled-cardinality" ; + sh:order 0 ; + sh:path nc:AreaDispatchableUnit.enabled ; + sh:severity sh:Violation . + +ssi:FuelStorage.energyStorage-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "FuelStorage.energyStorage-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:FuelStorage.energyStorage ; + sh:severity sh:Violation . + +ssi:ActivePowerControlFunction.targetValue-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "ActivePowerControlFunction.targetValue-cardinality" ; + sh:order 0 ; + sh:path nc:ActivePowerControlFunction.targetValue ; + sh:severity sh:Violation . + +ssi:DatatypesGroup rdf:type sh:PropertyGroup ; + rdfs:label "Datatypes" ; + sh:order 1 . + +ssi:DCTieCorridor.p-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "DCTieCorridor.p-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:DCTieCorridor.p ; + sh:severity sh:Violation . + +ssi:VoltageControlFunction.targetValue-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "VoltageControlFunction.targetValue-cardinality" ; + sh:order 0 ; + sh:path nc:VoltageControlFunction.targetValue ; + sh:severity sh:Violation . + +ssi:RemedialActionScheme + rdf:type sh:NodeShape ; + sh:property ssi:RemedialActionScheme.inService-datatype , ssi:RemedialActionScheme.inService-cardinality , ssi:RemedialActionScheme.armed-datatype , ssi:RemedialActionScheme.armed-cardinality ; + sh:targetClass nc:RemedialActionScheme . + +ssi:SubstationController + rdf:type sh:NodeShape ; + sh:property ssi:SubstationController.mode-datatype , ssi:SubstationController.mode-cardinality ; + sh:targetClass nc:SubstationController . + +ssi:FuelStorage rdf:type sh:NodeShape ; + sh:property ssi:FuelStorage.energyStorage-datatype , ssi:FuelStorage.energyStorage-cardinality ; + sh:targetClass nc:FuelStorage . + +ssi:Reservoir rdf:type sh:NodeShape ; + sh:property ssi:Reservoir.energyStorage-datatype , ssi:Reservoir.energyStorage-cardinality ; + sh:targetClass cim:Reservoir . + +ssi:CompensatorController.mode-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:in ( nc:CompensatorControlModeKind.reactivePower nc:CompensatorControlModeKind.voltage ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "CompensatorController.mode-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path nc:CompensatorController.mode ; + sh:severity sh:Violation . + +ssi:AssessedElement.maxFlow-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "AssessedElement.maxFlow-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path nc:AssessedElement.maxFlow ; + sh:severity sh:Violation . + +ssi:HydroPump rdf:type sh:NodeShape ; + sh:property ssi:HydroPump.participationFactor-datatype , ssi:HydroPump.participationFactor-cardinality ; + sh:targetClass cim:HydroPump . + +ssi:AreaDispatchableUnit.enabled-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "AreaDispatchableUnit.enabled-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:AreaDispatchableUnit.enabled ; + sh:severity sh:Violation . + +ssi:RegulatingCondEq.controlEnabled-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "RegulatingCondEq.controlEnabled-cardinality" ; + sh:order 1 ; + sh:path cim:RegulatingCondEq.controlEnabled ; + sh:severity sh:Violation . + +ssi:CardinalityGroup rdf:type sh:PropertyGroup ; + rdfs:label "Cardinality" ; + sh:order 0 . + +ssi:CurrentDroopControlFunction.targetValueCapacitive-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "CurrentDroopControlFunction.targetValueCapacitive-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:CurrentDroopControlFunction.targetValueCapacitive ; + sh:severity sh:Violation . + +ssi:BiddingZone.minImportP-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "BiddingZone.minImportP-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 7 ; + sh:path nc:BiddingZone.minImportP ; + sh:severity sh:Violation . + +ssi:CurrentDroopOverride.targetValueInductive-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "CurrentDroopOverride.targetValueInductive-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path nc:CurrentDroopOverride.targetValueInductive ; + sh:severity sh:Violation . + +ssi:DCPole.shortPF-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "DCPole.shortPF-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path nc:DCPole.shortPF ; + sh:severity sh:Violation . + +ssi:StageTrigger.armed-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "StageTrigger.armed-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:StageTrigger.armed ; + sh:severity sh:Violation . + +ssi:RemedialActionGroup.maxRegulatingUp-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "RemedialActionGroup.maxRegulatingUp-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:RemedialActionGroup.maxRegulatingUp ; + sh:severity sh:Violation . + +ssi:BiddingZone.regulatingDownAllocation-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "BiddingZone.regulatingDownAllocation-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 6 ; + sh:path nc:BiddingZone.regulatingDownAllocation ; + sh:severity sh:Violation . + +ssi:RemedialActionDependency + rdf:type sh:NodeShape ; + sh:property ssi:RemedialActionDependency.enabled-datatype , ssi:RemedialActionDependency.enabled-cardinality ; + sh:targetClass nc:RemedialActionDependency . + +ssi:ImpedanceControlFunction.targetValue-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "ImpedanceControlFunction.targetValue-cardinality" ; + sh:order 0 ; + sh:path nc:ImpedanceControlFunction.targetValue ; + sh:severity sh:Violation . + +ssi:BiddingZoneBorder.transmissionReliabilityMargin-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "BiddingZoneBorder.transmissionReliabilityMargin-cardinality" ; + sh:order 1 ; + sh:path nc:BiddingZoneBorder.transmissionReliabilityMargin ; + sh:severity sh:Violation . + +ssi:BiddingZoneBorder.alreadyAllocatedCapacity-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "BiddingZoneBorder.alreadyAllocatedCapacity-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path nc:BiddingZoneBorder.alreadyAllocatedCapacity ; + sh:severity sh:Violation . + +ssi:PhaseControlFunction + rdf:type sh:NodeShape ; + sh:property ssi:PhaseControlFunction.targetValue-datatype , ssi:PhaseControlFunction.targetValue-cardinality ; + sh:targetClass nc:PhaseControlFunction . + +ssi:VoltageControlFunction.targetValue-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "VoltageControlFunction.targetValue-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:VoltageControlFunction.targetValue ; + sh:severity sh:Violation . + +ssi:CurrentDroopControlFunction.targetValueInductive-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "CurrentDroopControlFunction.targetValueInductive-cardinality" ; + sh:order 1 ; + sh:path nc:CurrentDroopControlFunction.targetValueInductive ; + sh:severity sh:Violation . + +ssi:RemedialActionGroup.maxRegulatingDown-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "RemedialActionGroup.maxRegulatingDown-cardinality" ; + sh:order 1 ; + sh:path nc:RemedialActionGroup.maxRegulatingDown ; + sh:severity sh:Violation . + +ssi:SSSCController.mode-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "SSSCController.mode-cardinality" ; + sh:order 0 ; + sh:path nc:SSSCController.mode ; + sh:severity sh:Violation . + +ssi:EnergyConsumer rdf:type sh:NodeShape ; + sh:property ssi:EnergyConsumer.participationFactor-datatype , ssi:EnergyConsumer.participationFactor-cardinality ; + sh:targetClass cim:EnergyConsumer . + +ssi:GeneratingUnit.participationFactor-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "GeneratingUnit.participationFactor-cardinality" ; + sh:order 0 ; + sh:path nc:GeneratingUnit.participationFactor ; + sh:severity sh:Violation . + +ssi:CurrentDroopOverride.enabled-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "CurrentDroopOverride.enabled-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:CurrentDroopOverride.enabled ; + sh:severity sh:Violation . + +ssi:BiddingZoneBorder + rdf:type sh:NodeShape ; + sh:property ssi:BiddingZoneBorder.alreadyAllocatedFlow-cardinality , ssi:BiddingZoneBorder.totalTransferCapacity-cardinality , ssi:BiddingZoneBorder.availableTransferCapacity-datatype , ssi:BiddingZoneBorder.alreadyAllocatedCapacity-cardinality , ssi:BiddingZoneBorder.alreadyAllocatedCapacity-datatype , ssi:BiddingZoneBorder.transmissionReliabilityMargin-cardinality , ssi:BiddingZoneBorder.netTransferCapacity-datatype , ssi:BiddingZoneBorder.availableTransferCapacity-cardinality , ssi:BiddingZoneBorder.transmissionReliabilityMargin-datatype , ssi:BiddingZoneBorder.alreadyAllocatedFlow-datatype , ssi:BiddingZoneBorder.netTransferCapacity-cardinality , ssi:BiddingZoneBorder.totalTransferCapacity-datatype ; + sh:targetClass nc:BiddingZoneBorder . + +ssi:AreaDispatchableUnit + rdf:type sh:NodeShape ; + sh:property ssi:AreaDispatchableUnit.enabled-datatype , ssi:AreaDispatchableUnit.enabled-cardinality ; + sh:targetClass nc:AreaDispatchableUnit . + +ssi:SubstationController.mode-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:in ( nc:SubstationControllerModeKind.activePower nc:SubstationControllerModeKind.reactivePower nc:SubstationControllerModeKind.voltage ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "SubstationController.mode-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path nc:SubstationController.mode ; + sh:severity sh:Violation . + +ssi:CurrentDroopOverride + rdf:type sh:NodeShape ; + sh:property ssi:CurrentDroopOverride.targetValueInductive-datatype , ssi:CurrentDroopOverride.targetValueInductive-cardinality , ssi:CurrentDroopOverride.enabled-datatype , ssi:CurrentDroopOverride.enabled-cardinality , ssi:CurrentDroopOverride.targetValueCapacitive-datatype , ssi:CurrentDroopOverride.targetValueCapacitive-cardinality ; + sh:targetClass nc:CurrentDroopOverride . + +ssi:GridStateAlteration.participationFactor-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "GridStateAlteration.participationFactor-cardinality" ; + sh:order 0 ; + sh:path nc:GridStateAlteration.participationFactor ; + sh:severity sh:Violation . + +ssi:CompensatorController.mode-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "CompensatorController.mode-cardinality" ; + sh:order 0 ; + sh:path nc:CompensatorController.mode ; + sh:severity sh:Violation . + +ssi:EnergyConsumer.participationFactor-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "EnergyConsumer.participationFactor-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:EnergyConsumer.participationFactor ; + sh:severity sh:Violation . + +ssi:DCSwitch rdf:type sh:NodeShape ; + sh:property ssi:DCSwitch.open-datatype , ssi:DCSwitch.open-cardinality , ssi:DCSwitch.locked-datatype , ssi:DCSwitch.locked-cardinality ; + sh:targetClass nc:DCSwitch . + +ssi:PowerTransferCorridor.enabled-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "PowerTransferCorridor.enabled-cardinality" ; + sh:order 0 ; + sh:path nc:PowerTransferCorridor.enabled ; + sh:severity sh:Violation . + +ido:DatatypesGroupIO rdf:type sh:PropertyGroup ; + rdfs:label "DatatypesIO" ; + sh:order 1 . + +ssi:RemedialActionScheme.armed-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "RemedialActionScheme.armed-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:RemedialActionScheme.armed ; + sh:severity sh:Violation . + +ssi:BiddingZoneBorder.totalTransferCapacity-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "BiddingZoneBorder.totalTransferCapacity-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:BiddingZoneBorder.totalTransferCapacity ; + sh:severity sh:Violation . + +ssi:AssessedElement.positiveVirtualMargin-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AssessedElement.positiveVirtualMargin-cardinality" ; + sh:order 2 ; + sh:path nc:AssessedElement.positiveVirtualMargin ; + sh:severity sh:Violation . + +ssi:RotatingMachineController + rdf:type sh:NodeShape ; + sh:property ssi:RotatingMachineController.mode-datatype , ssi:RotatingMachineController.mode-cardinality ; + sh:targetClass nc:RotatingMachineController . + +ssi:Reservoir.energyStorage-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "Reservoir.energyStorage-cardinality" ; + sh:order 0 ; + sh:path nc:Reservoir.energyStorage ; + sh:severity sh:Violation . + +ssi:DCPole.shortPF-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "DCPole.shortPF-cardinality" ; + sh:order 3 ; + sh:path nc:DCPole.shortPF ; + sh:severity sh:Violation . + +ssi:FACTSEquipment.q-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "FACTSEquipment.q-cardinality" ; + sh:order 0 ; + sh:path nc:FACTSEquipment.q ; + sh:severity sh:Violation . + +ssi:PhaseControlFunction.targetValue-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PhaseControlFunction.targetValue-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:PhaseControlFunction.targetValue ; + sh:severity sh:Violation . + +ssi:TCSCController.mode-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "TCSCController.mode-cardinality" ; + sh:order 0 ; + sh:path nc:TCSCController.mode ; + sh:severity sh:Violation . + +ssi:FuelStorage.energyStorage-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "FuelStorage.energyStorage-cardinality" ; + sh:order 0 ; + sh:path nc:FuelStorage.energyStorage ; + sh:severity sh:Violation . + +ssi:BiddingZone.netPosition-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "BiddingZone.netPosition-cardinality" ; + sh:order 3 ; + sh:path nc:BiddingZone.netPosition ; + sh:severity sh:Violation . + +ssi:ReactivePowerControlFunction.targetValue-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "ReactivePowerControlFunction.targetValue-cardinality" ; + sh:order 0 ; + sh:path nc:ReactivePowerControlFunction.targetValue ; + sh:severity sh:Violation . + +ssi:RemedialActionDependency.enabled-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "RemedialActionDependency.enabled-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:RemedialActionDependency.enabled ; + sh:severity sh:Violation . + +ssi:BiddingZone.netACInterchangeTolerance-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "BiddingZone.netACInterchangeTolerance-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 5 ; + sh:path nc:BiddingZone.netACInterchangeTolerance ; + sh:severity sh:Violation . + +ssi:DirectCurrentController.mode-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:in ( nc:DCControlModeKind.pPccAndUdcDroopWithCompensation nc:DCControlModeKind.pulseWidthModulation nc:DCControlModeKind.powerFactorPcc nc:DCControlModeKind.phasePcc nc:DCControlModeKind.activePower nc:DCControlModeKind.dcCurrent nc:DCControlModeKind.acEmulation nc:DCControlModeKind.pPccAndUdcDroopPilot nc:DCControlModeKind.dcVoltage nc:DCControlModeKind.reactivePower nc:DCControlModeKind.pPccAndUdcDroop ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "DirectCurrentController.mode-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path nc:DirectCurrentController.mode ; + sh:severity sh:Violation . + +ssi:DCVoltageControlFunction + rdf:type sh:NodeShape ; + sh:property ssi:DCVoltageControlFunction.targetValue-datatype , ssi:DCVoltageControlFunction.targetValue-cardinality ; + sh:targetClass nc:DCVoltageControlFunction . + +ssi:ModularStaticSynchronousSeriesCompensator + rdf:type sh:NodeShape ; + sh:property ssi:RegulatingCondEq.controlEnabled-datatype , ssi:RegulatingCondEq.controlEnabled-cardinality , ssi:FACTSEquipment.q-datatype , ssi:FACTSEquipment.q-cardinality ; + sh:targetClass nc:ModularStaticSynchronousSeriesCompensator . + +ssi:BiddingZone.netACInterchange-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "BiddingZone.netACInterchange-cardinality" ; + sh:order 2 ; + sh:path nc:BiddingZone.netACInterchange ; + sh:severity sh:Violation . + +ssi:CurrentDroopControlFunction.targetValueCapacitive-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "CurrentDroopControlFunction.targetValueCapacitive-cardinality" ; + sh:order 0 ; + sh:path nc:CurrentDroopControlFunction.targetValueCapacitive ; + sh:severity sh:Violation . + +ssi:CountertradeRemedialAction + rdf:type sh:NodeShape ; + sh:property ssi:PowerRemedialAction.maxRegulatingDown-datatype , ssi:PowerRemedialAction.maxRegulatingDown-cardinality , ssi:PowerRemedialAction.maxRegulatingUp-datatype , ssi:PowerRemedialAction.maxRegulatingUp-cardinality ; + sh:targetClass nc:CountertradeRemedialAction . + +ssi:AssessedElementWithRemedialAction.enabled-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "AssessedElementWithRemedialAction.enabled-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:AssessedElementWithRemedialAction.enabled ; + sh:severity sh:Violation . + +ssi:ImpedanceControlFunction + rdf:type sh:NodeShape ; + sh:property ssi:ImpedanceControlFunction.targetValue-datatype , ssi:ImpedanceControlFunction.targetValue-cardinality ; + sh:targetClass nc:ImpedanceControlFunction . + +ssi:DCTieCorridor rdf:type sh:NodeShape ; + sh:property ssi:DCTieCorridor.q-datatype , ssi:DCTieCorridor.q-cardinality , ssi:DCTieCorridor.p-datatype , ssi:DCTieCorridor.p-cardinality ; + sh:targetClass nc:DCTieCorridor . + +ssi:BiddingZone.netACInterchange-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "BiddingZone.netACInterchange-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path nc:BiddingZone.netACInterchange ; + sh:severity sh:Violation . + +ssi:Contingency.probability-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Contingency.probability-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:Contingency.probability ; + sh:severity sh:Violation . + +ssi:DCCurrentControlFunction.targetValue-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "DCCurrentControlFunction.targetValue-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:DCCurrentControlFunction.targetValue ; + sh:severity sh:Violation . + +ssi:RemedialAction.available-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "RemedialAction.available-cardinality" ; + sh:order 0 ; + sh:path nc:RemedialAction.available ; + sh:severity sh:Violation . + +ssi:PowerRemedialAction.maxRegulatingDown-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerRemedialAction.maxRegulatingDown-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:PowerRemedialAction.maxRegulatingDown ; + sh:severity sh:Violation . + +ssi:PTCActivePowerSupport + rdf:type sh:NodeShape ; + sh:property ssi:PTCActivePowerSupport.value-datatype , ssi:PTCActivePowerSupport.value-cardinality ; + sh:targetClass nc:PTCActivePowerSupport . + +ssi:SSSCController.mode-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:in ( nc:SSSCControlModeKind.voltageInjection nc:SSSCControlModeKind.effectiveReactance nc:SSSCControlModeKind.currentDroop nc:SSSCControlModeKind.monitoring ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "SSSCController.mode-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path nc:SSSCController.mode ; + sh:severity sh:Violation . + +ssi:CircuitShare.contributionFactor-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "CircuitShare.contributionFactor-cardinality" ; + sh:order 0 ; + sh:path nc:CircuitShare.contributionFactor ; + sh:severity sh:Violation . + +ssi:ContingencyWithRemedialAction.enabled-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "ContingencyWithRemedialAction.enabled-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:ContingencyWithRemedialAction.enabled ; + sh:severity sh:Violation . + +ssi:GeneratingUnit rdf:type sh:NodeShape ; + sh:property ssi:GeneratingUnit.participationFactor-datatype , ssi:GeneratingUnit.participationFactor-cardinality ; + sh:targetClass cim:GeneratingUnit . + +ssi:ThyristorControlledSeriesCompensator.compensationImpedance-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "ThyristorControlledSeriesCompensator.compensationImpedance-cardinality" ; + sh:order 1 ; + sh:path nc:ThyristorControlledSeriesCompensator.compensationImpedance ; + sh:severity sh:Violation . + +ssi:DirectCurrentController.mode-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "DirectCurrentController.mode-cardinality" ; + sh:order 0 ; + sh:path nc:DirectCurrentController.mode ; + sh:severity sh:Violation . + +ssi:HydroPump.participationFactor-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "HydroPump.participationFactor-cardinality" ; + sh:order 0 ; + sh:path nc:HydroPump.participationFactor ; + sh:severity sh:Violation . + +ssi:RemedialActionScheme.inService-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "RemedialActionScheme.inService-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:RemedialActionScheme.inService ; + sh:severity sh:Violation . + +ssi:CurrentControlFunction + rdf:type sh:NodeShape ; + sh:property ssi:CurrentControlFunction.targetValue-datatype , ssi:CurrentControlFunction.targetValue-cardinality ; + sh:targetClass nc:CurrentControlFunction . + +ssi:RemedialActionGroup.maxRegulatingUp-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "RemedialActionGroup.maxRegulatingUp-cardinality" ; + sh:order 0 ; + sh:path nc:RemedialActionGroup.maxRegulatingUp ; + sh:severity sh:Violation . + +ssi:DCPole.longPF-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "DCPole.longPF-cardinality" ; + sh:order 2 ; + sh:path nc:DCPole.longPF ; + sh:severity sh:Violation . + +ssi:CurrentDroopOverride.enabled-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "CurrentDroopOverride.enabled-cardinality" ; + sh:order 1 ; + sh:path nc:CurrentDroopOverride.enabled ; + sh:severity sh:Violation . + +ssi:Reservoir.energyStorage-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Reservoir.energyStorage-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:Reservoir.energyStorage ; + sh:severity sh:Violation . + +ssi:Equipment.networkAnalysisEnabled-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Equipment.networkAnalysisEnabled-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path cim:Equipment.networkAnalysisEnabled ; + sh:severity sh:Violation . + +ssi:Contingency.mustStudy-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "Contingency.mustStudy-cardinality" ; + sh:order 1 ; + sh:path cim:Contingency.mustStudy ; + sh:severity sh:Violation . + +ssi:BiddingZone.regulatingUpAllocation-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "BiddingZone.regulatingUpAllocation-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:BiddingZone.regulatingUpAllocation ; + sh:severity sh:Violation . + +ssi:BiddingZoneBorder.netTransferCapacity-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "BiddingZoneBorder.netTransferCapacity-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 3 ; + sh:path nc:BiddingZoneBorder.netTransferCapacity ; + sh:severity sh:Violation . + +ssi:DCVoltageControlFunction.targetValue-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "DCVoltageControlFunction.targetValue-cardinality" ; + sh:order 0 ; + sh:path nc:DCVoltageControlFunction.targetValue ; + sh:severity sh:Violation . + +ssi:RedispatchRemedialAction + rdf:type sh:NodeShape ; + sh:property ssi:PowerRemedialAction.maxRegulatingDown-datatype , ssi:PowerRemedialAction.maxRegulatingDown-cardinality , ssi:PowerRemedialAction.maxRegulatingUp-datatype , ssi:PowerRemedialAction.maxRegulatingUp-cardinality ; + sh:targetClass nc:RedispatchRemedialAction . + +ssi:TCSCController.mode-datatype + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:in ( nc:TCSCControlModeKind.impedance nc:TCSCControlModeKind.activePower nc:TCSCControlModeKind.current ) ; + sh:message "The datatype is not IRI (Internationalized Resource Identifier) or it is enumerated value not part of the profile." ; + sh:name "TCSCController.mode-datatype" ; + sh:nodeKind sh:IRI ; + sh:order 0 ; + sh:path nc:TCSCController.mode ; + sh:severity sh:Violation . + +ssi:RotatingMachineController.mode-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "RotatingMachineController.mode-cardinality" ; + sh:order 0 ; + sh:path nc:RotatingMachineController.mode ; + sh:severity sh:Violation . + +ssi:RemedialActionGroup + rdf:type sh:NodeShape ; + sh:property ssi:RemedialActionGroup.maxRegulatingDown-datatype , ssi:RemedialActionGroup.maxRegulatingDown-cardinality , ssi:RemedialActionGroup.maxRegulatingUp-datatype , ssi:RemedialActionGroup.maxRegulatingUp-cardinality ; + sh:targetClass nc:RemedialActionGroup . + +ssi:HydroPump.participationFactor-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "HydroPump.participationFactor-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:HydroPump.participationFactor ; + sh:severity sh:Violation . + +ssi:ThyristorControlledSeriesCompensator + rdf:type sh:NodeShape ; + sh:property ssi:ThyristorControlledSeriesCompensator.compensationImpedance-cardinality , ssi:ThyristorControlledSeriesCompensator.currentSectionNumber-datatype , ssi:ThyristorControlledSeriesCompensator.currentSectionNumber-cardinality , ssi:RegulatingCondEq.controlEnabled-datatype , ssi:FACTSEquipment.q-cardinality , ssi:ThyristorControlledSeriesCompensator.compensationImpedance-datatype , ssi:RegulatingCondEq.controlEnabled-cardinality , ssi:FACTSEquipment.q-datatype ; + sh:targetClass nc:ThyristorControlledSeriesCompensator . + +ssi:BiddingZoneBorder.totalTransferCapacity-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "BiddingZoneBorder.totalTransferCapacity-cardinality" ; + sh:order 0 ; + sh:path nc:BiddingZoneBorder.totalTransferCapacity ; + sh:severity sh:Violation . + +ssi:RemedialAction.available-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "RemedialAction.available-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:RemedialAction.available ; + sh:severity sh:Violation . + +ssi:DCPole.maxEconomicP-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "DCPole.maxEconomicP-cardinality" ; + sh:order 1 ; + sh:path nc:DCPole.maxEconomicP ; + sh:severity sh:Violation . + +ssi:DCPole.maxEconomicP-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "DCPole.maxEconomicP-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:DCPole.maxEconomicP ; + sh:severity sh:Violation . + +ssi:AssessedElement.maxMarginAdjustment-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "AssessedElement.maxMarginAdjustment-cardinality" ; + sh:order 1 ; + sh:path nc:AssessedElement.maxMarginAdjustment ; + sh:severity sh:Violation . + +ssi:PowerInfeedLimit.value-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "PowerInfeedLimit.value-cardinality" ; + sh:order 0 ; + sh:path nc:PowerInfeedLimit.value ; + sh:severity sh:Violation . + +ssi:BiddingZone.minInterchange-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "BiddingZone.minInterchange-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path nc:BiddingZone.minInterchange ; + sh:severity sh:Violation . + +ssi:AssessedElement.positiveVirtualMargin-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "AssessedElement.positiveVirtualMargin-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path nc:AssessedElement.positiveVirtualMargin ; + sh:severity sh:Violation . + +ssi:ContingencyWithRemedialAction + rdf:type sh:NodeShape ; + sh:property ssi:ContingencyWithRemedialAction.enabled-datatype , ssi:ContingencyWithRemedialAction.enabled-cardinality ; + sh:targetClass nc:ContingencyWithRemedialAction . + +ssi:Equipment.inService-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "Equipment.inService-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path cim:Equipment.inService ; + sh:severity sh:Violation . + +ssi:EnergyBlockOrder rdf:type sh:NodeShape ; + sh:property ssi:EnergyBlockOrder.participationFactor-datatype , ssi:EnergyBlockOrder.participationFactor-cardinality ; + sh:targetClass nc:EnergyBlockOrder . + +ssi:DCSwitch.locked-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "DCSwitch.locked-cardinality" ; + sh:order 0 ; + sh:path nc:DCSwitch.locked ; + sh:severity sh:Violation . + +ssi:DCTieCorridor.q-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "DCTieCorridor.q-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:DCTieCorridor.q ; + sh:severity sh:Violation . + +ssi:RegulatingCondEq.controlEnabled-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "RegulatingCondEq.controlEnabled-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path cim:RegulatingCondEq.controlEnabled ; + sh:severity sh:Violation . + +ssi:InjectionController.mode-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "InjectionController.mode-cardinality" ; + sh:order 0 ; + sh:path nc:InjectionController.mode ; + sh:severity sh:Violation . + +ssi:BiddingZone.minInterchange-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "BiddingZone.minInterchange-cardinality" ; + sh:order 4 ; + sh:path nc:BiddingZone.minInterchange ; + sh:severity sh:Violation . + +ssi:PowerFactorControlFunction.targetValue-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "PowerFactorControlFunction.targetValue-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:PowerFactorControlFunction.targetValue ; + sh:severity sh:Violation . + +ssi:PowerTransferCorridor + rdf:type sh:NodeShape ; + sh:property ssi:PowerTransferCorridor.enabled-datatype , ssi:PowerTransferCorridor.enabled-cardinality ; + sh:targetClass nc:PowerTransferCorridor . + +ssi:AssessedElement rdf:type sh:NodeShape ; + sh:property ssi:AssessedElement.positiveVirtualMargin-datatype , ssi:AssessedElement.scannedThresholdMargin-cardinality , ssi:AssessedElement.positiveVirtualMargin-cardinality , ssi:AssessedElement.maxMarginAdjustment-cardinality , ssi:AssessedElement.maxFlow-datatype , ssi:AssessedElement.scannedThresholdMargin-datatype , ssi:AssessedElement.maxMarginAdjustment-datatype , ssi:AssessedElement.enabled-datatype , ssi:AssessedElement.maxFlow-cardinality , ssi:AssessedElement.enabled-cardinality ; + sh:targetClass nc:AssessedElement . + +ssi:CurrentControlFunction.targetValue-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "CurrentControlFunction.targetValue-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:CurrentControlFunction.targetValue ; + sh:severity sh:Violation . + +ssi:GridStateAlteration.participationFactor-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "GridStateAlteration.participationFactor-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:GridStateAlteration.participationFactor ; + sh:severity sh:Violation . + +ssi:DCCurrentControlFunction.targetValue-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "DCCurrentControlFunction.targetValue-cardinality" ; + sh:order 0 ; + sh:path nc:DCCurrentControlFunction.targetValue ; + sh:severity sh:Violation . + +ssi:CurrentDroopOverride.targetValueCapacitive-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "CurrentDroopOverride.targetValueCapacitive-cardinality" ; + sh:order 0 ; + sh:path nc:CurrentDroopOverride.targetValueCapacitive ; + sh:severity sh:Violation . + +ssi:PowerElectronicsUnit + rdf:type sh:NodeShape ; + sh:property ssi:PowerElectronicsUnit.participationFactor-datatype , ssi:PowerElectronicsUnit.participationFactor-cardinality ; + sh:targetClass cim:PowerElectronicsUnit . + +ssi:BiddingZone rdf:type sh:NodeShape ; + sh:property ssi:BiddingZone.minInterchange-datatype , ssi:BiddingZone.regulatingDownAllocation-cardinality , ssi:BiddingZone.netPosition-datatype , ssi:BiddingZone.netPosition-cardinality , ssi:BiddingZone.regulatingDownAllocation-datatype , ssi:BiddingZone.netACInterchange-datatype , ssi:BiddingZone.netDCInterchange-datatype , ssi:BiddingZone.netACInterchangeTolerance-cardinality , ssi:BiddingZone.maxInterchange-cardinality , ssi:BiddingZone.netACInterchange-cardinality , ssi:BiddingZone.minImportP-cardinality , ssi:BiddingZone.minInterchange-cardinality , ssi:BiddingZone.regulatingUpAllocation-cardinality , ssi:BiddingZone.minImportP-datatype , ssi:BiddingZone.maxInterchange-datatype , ssi:BiddingZone.regulatingUpAllocation-datatype , ssi:BiddingZone.netACInterchangeTolerance-datatype , ssi:BiddingZone.netDCInterchange-cardinality ; + sh:targetClass nc:BiddingZone . + +ssi:DCTieCorridor.q-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "DCTieCorridor.q-cardinality" ; + sh:order 1 ; + sh:path nc:DCTieCorridor.q ; + sh:severity sh:Violation . + +ssi:VoltageInjectionControlFunction.targetValue-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "VoltageInjectionControlFunction.targetValue-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:VoltageInjectionControlFunction.targetValue ; + sh:severity sh:Violation . + +ssi:BiddingZone.netDCInterchange-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "BiddingZone.netDCInterchange-cardinality" ; + sh:order 1 ; + sh:path nc:BiddingZone.netDCInterchange ; + sh:severity sh:Violation . + +ssi:DCSwitch.locked-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:boolean ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "DCSwitch.locked-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:DCSwitch.locked ; + sh:severity sh:Violation . + +ssi:PowerFactorControlFunction.targetValue-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "PowerFactorControlFunction.targetValue-cardinality" ; + sh:order 0 ; + sh:path nc:PowerFactorControlFunction.targetValue ; + sh:severity sh:Violation . + +ssi:CompensatorController + rdf:type sh:NodeShape ; + sh:property ssi:CompensatorController.mode-datatype , ssi:CompensatorController.mode-cardinality ; + sh:targetClass nc:CompensatorController . + +ssi:AssessedElement.maxMarginAdjustment-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "AssessedElement.maxMarginAdjustment-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:AssessedElement.maxMarginAdjustment ; + sh:severity sh:Violation . + +ssi:AssessedElement.scannedThresholdMargin-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "AssessedElement.scannedThresholdMargin-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 4 ; + sh:path nc:AssessedElement.scannedThresholdMargin ; + sh:severity sh:Violation . + +ssi:PowerRemedialAction.maxRegulatingUp-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "PowerRemedialAction.maxRegulatingUp-cardinality" ; + sh:order 0 ; + sh:path nc:PowerRemedialAction.maxRegulatingUp ; + sh:severity sh:Violation . + +ssi:BiddingZoneBorder.alreadyAllocatedFlow-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "BiddingZoneBorder.alreadyAllocatedFlow-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 2 ; + sh:path nc:BiddingZoneBorder.alreadyAllocatedFlow ; + sh:severity sh:Violation . + +ssi:CurrentDroopControlFunction + rdf:type sh:NodeShape ; + sh:property ssi:CurrentDroopControlFunction.targetValueInductive-datatype , ssi:CurrentDroopControlFunction.targetValueInductive-cardinality , ssi:CurrentDroopControlFunction.targetValueCapacitive-datatype , ssi:CurrentDroopControlFunction.targetValueCapacitive-cardinality ; + sh:targetClass nc:CurrentDroopControlFunction . + +ssi:SubstationController.mode-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "SubstationController.mode-cardinality" ; + sh:order 0 ; + sh:path nc:SubstationController.mode ; + sh:severity sh:Violation . + +ssi:ScheduleResource rdf:type sh:NodeShape ; + sh:property ssi:ScheduleResource.participationFactor-datatype , ssi:ScheduleResource.participationFactor-cardinality ; + sh:targetClass nc:ScheduleResource . + +ssi:DCPole.minEconomicP-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Cardinality violation. Upper bound shall be 1" ; + sh:name "DCPole.minEconomicP-cardinality" ; + sh:order 0 ; + sh:path nc:DCPole.minEconomicP ; + sh:severity sh:Violation . + +ssi:CurrentDroopOverride.targetValueCapacitive-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "CurrentDroopOverride.targetValueCapacitive-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:CurrentDroopOverride.targetValueCapacitive ; + sh:severity sh:Violation . + +ssi:StageTrigger.armed-cardinality + rdf:type sh:PropertyShape ; + sh:description "This constraint validates the cardinality of the property (attribute)." ; + sh:group ssi:CardinalityGroup ; + sh:maxCount 1 ; + sh:message "Missing required property (attribute)." ; + sh:minCount 1 ; + sh:name "StageTrigger.armed-cardinality" ; + sh:order 0 ; + sh:path nc:StageTrigger.armed ; + sh:severity sh:Violation . + +ssi:ThyristorControlledSeriesCompensator.compensationImpedance-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "ThyristorControlledSeriesCompensator.compensationImpedance-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 1 ; + sh:path nc:ThyristorControlledSeriesCompensator.compensationImpedance ; + sh:severity sh:Violation . + +ssi:DCVoltageControlFunction.targetValue-datatype + rdf:type sh:PropertyShape ; + sh:datatype xsd:float ; + sh:description "This constraint validates the datatype of the property (attribute)." ; + sh:group ssi:DatatypesGroup ; + sh:message "The datatype is not literal or it violates the xsd datatype." ; + sh:name "DCVoltageControlFunction.targetValue-datatype" ; + sh:nodeKind sh:Literal ; + sh:order 0 ; + sh:path nc:DCVoltageControlFunction.targetValue ; + sh:severity sh:Violation . diff --git a/data/crac-creation/crac-creator-csa-profiles/src/test/resources/logback-test.xml b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/logback-test.xml new file mode 100644 index 0000000000..881ca96b55 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/logback-test.xml @@ -0,0 +1,13 @@ + + + + %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n + + + + + + + + + \ No newline at end of file From 04636680d534bdc67ff231160d4407cc81c0887e Mon Sep 17 00:00:00 2001 From: jipea Date: Mon, 5 Jun 2023 09:16:45 +0200 Subject: [PATCH 02/22] add test files --- data/crac-creation/crac-creator-cim/pom.xml | 4 +- .../cim/importer/CimCracImporterTest.java | 4 +- .../creator/csa_profile/CsaProfileCrac.java | 14 +- .../importer/CsaProfileCracImporter.java | 28 +- .../CsaProfileCracImporterTest.java | 30 + .../src/test/resources/Disclaimer.docx | Bin 0 -> 19604 bytes .../src/test/resources/LICENSE.txt | 437 ++++ .../src/test/resources/README.md | 13 + .../CGM/20171002T0930Z_ENTSO-E_EQ_BD_2.xml | 261 +++ .../20210325T1530Z_1D_ASSEMBLED_DL_001.xml | 1896 +++++++++++++++++ .../20210325T1530Z_1D_ASSEMBLED_SV_001.xml | 685 ++++++ .../20210325T1530Z_1D_ASSEMBLED_TP_001.xml | 389 ++++ .../CGM/20210325T1530Z_1D_BE_EQ_001.xml | 1806 ++++++++++++++++ .../CGM/20210325T1530Z_1D_BE_GL_001.xml | 221 ++ .../CGM/20210325T1530Z_1D_BE_SSH_001.xml | 440 ++++ .../CGM/20210325T1530Z_1D_NL_EQ_001.xml | 1874 ++++++++++++++++ .../CGM/20210325T1530Z_1D_NL_GL_001.xml | 161 ++ .../CGM/20210325T1530Z_1D_NL_SSH_001.xml | 320 +++ .../CGM/20210420T1730Z_1D_BE_DY_001.xml | 174 ++ .../CGM/20210420T1730Z_1D_NL_DY_001.xml | 369 ++++ .../ELIA_2230_SSI.xml | 31 + .../ELIA_2330_SSI.xml | 31 + .../ELIA_AE.xml | 54 + .../ELIA_CO.xml | 43 + .../ELIA_ER.xml | 59 + .../ELIA_MA.xml | 58 + .../ELIA_RA.xml | 84 + .../ELIA_RAS.xml | 56 + .../ELIA_SAR.xml | 42 + .../ELIA_SS.xml | 49 + .../TTN_2230_SSI.xml | 31 + .../TTN_2330_SSI.xml | 31 + .../TTN_AE.xml | 55 + .../TTN_CO.xml | 42 + .../TTN_RA.xml | 47 + .../TTN_RAS.xml | 54 + .../TTN_SAR.xml | 37 + .../TTN_SS.xml | 49 + 38 files changed, 9958 insertions(+), 21 deletions(-) create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/test/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracImporterTest.java create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/test/resources/Disclaimer.docx create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/test/resources/LICENSE.txt create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/test/resources/README.md create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/CGM/20171002T0930Z_ENTSO-E_EQ_BD_2.xml create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/CGM/20210325T1530Z_1D_ASSEMBLED_DL_001.xml create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/CGM/20210325T1530Z_1D_ASSEMBLED_SV_001.xml create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/CGM/20210325T1530Z_1D_ASSEMBLED_TP_001.xml create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/CGM/20210325T1530Z_1D_BE_EQ_001.xml create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/CGM/20210325T1530Z_1D_BE_GL_001.xml create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/CGM/20210325T1530Z_1D_BE_SSH_001.xml create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/CGM/20210325T1530Z_1D_NL_EQ_001.xml create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/CGM/20210325T1530Z_1D_NL_GL_001.xml create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/CGM/20210325T1530Z_1D_NL_SSH_001.xml create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/CGM/20210420T1730Z_1D_BE_DY_001.xml create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/CGM/20210420T1730Z_1D_NL_DY_001.xml create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/ELIA_2230_SSI.xml create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/ELIA_2330_SSI.xml create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/ELIA_AE.xml create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/ELIA_CO.xml create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/ELIA_ER.xml create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/ELIA_MA.xml create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/ELIA_RA.xml create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/ELIA_RAS.xml create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/ELIA_SAR.xml create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/ELIA_SS.xml create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/TTN_2230_SSI.xml create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/TTN_2330_SSI.xml create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/TTN_AE.xml create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/TTN_CO.xml create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/TTN_RA.xml create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/TTN_RAS.xml create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/TTN_SAR.xml create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/TTN_SS.xml diff --git a/data/crac-creation/crac-creator-cim/pom.xml b/data/crac-creation/crac-creator-cim/pom.xml index 80342efac4..d5a5fa733d 100644 --- a/data/crac-creation/crac-creator-cim/pom.xml +++ b/data/crac-creation/crac-creator-cim/pom.xml @@ -42,9 +42,9 @@ org.apache.maven.plugins maven-javadoc-plugin - + diff --git a/data/crac-creation/crac-creator-cim/src/test/java/com/farao_community/farao/data/crac_creation/creator/cim/importer/CimCracImporterTest.java b/data/crac-creation/crac-creator-cim/src/test/java/com/farao_community/farao/data/crac_creation/creator/cim/importer/CimCracImporterTest.java index 07b7fac11e..942bdba2ce 100644 --- a/data/crac-creation/crac-creator-cim/src/test/java/com/farao_community/farao/data/crac_creation/creator/cim/importer/CimCracImporterTest.java +++ b/data/crac-creation/crac-creator-cim/src/test/java/com/farao_community/farao/data/crac_creation/creator/cim/importer/CimCracImporterTest.java @@ -21,13 +21,13 @@ class CimCracImporterTest { @Test - void getFormat() { + void testGetFormat() { CimCracImporter cimCracImporter = new CimCracImporter(); assertEquals("CimCrac", cimCracImporter.getFormat()); } @Test - void importNativeCrac() { + void testExists() { InputStream is = getClass().getResourceAsStream("/cracs/CIM_21_1_1.xml"); CimCracImporter importer = new CimCracImporter(); CimCrac cimCrac = importer.importNativeCrac(is); diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/CsaProfileCrac.java b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/CsaProfileCrac.java index 6d9e240a12..fd86fab8c3 100644 --- a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/CsaProfileCrac.java +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/CsaProfileCrac.java @@ -13,8 +13,20 @@ * @author Jean-Pierre Arnould {@literal } */ public class CsaProfileCrac implements NativeCrac { + + + private final CRACDocumentType cracDocumentType; + + public CsaProfileCrac(CRACDocumentType cracDocumentType) { + this.cracDocumentType = cracDocumentType; + } + @Override public String getFormat() { - return null; + return "CsaProfileCrac"; + } + + public CRACDocumentType getCracDocument() { + return cracDocumentType; } } diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/importer/CsaProfileCracImporter.java b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/importer/CsaProfileCracImporter.java index 12b8f92e92..50f456357f 100644 --- a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/importer/CsaProfileCracImporter.java +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/importer/CsaProfileCracImporter.java @@ -7,7 +7,7 @@ package main.java.com.farao_community.farao.data.crac_creation.creator.csa_profile.importer; -import com.farao_community.farao.data.crac_creation.creator.cim.importer.CimCracImporter; +import main.java.com.farao_community.farao.data.crac_creation.creator.csa_profile.xsd.CRACDocumentType; import com.farao_community.farao.data.native_crac_io_api.NativeCracImporter; import com.google.auto.service.AutoService; import main.java.com.farao_community.farao.data.crac_creation.creator.csa_profile.CsaProfileCrac; @@ -16,6 +16,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import javax.xml.transform.stream.StreamSource; import java.io.IOException; import java.io.InputStream; import java.io.UncheckedIOException; @@ -26,29 +27,24 @@ @AutoService(NativeCracImporter.class) public class CsaProfileCracImporter implements NativeCracImporter { - private static final Logger LOGGER = LoggerFactory.getLogger(CimCracImporter.class); + private static final Logger LOGGER = LoggerFactory.getLogger(CsaProfileCracImporter.class); @Override public String getFormat() { - return "csaProfileCrac"; + return "CsaProfileCrac"; } @Override public CsaProfileCrac importNativeCrac(InputStream inputStream){ + CRACDocumentType cracDocumentType; try { - RDFFormat rdfFormatContingencies = Rio.getParserFormatForFileName(String.valueOf(this.getClass().getResource(CsaProfileConstants.RDF_FORMAT_CONTINGENCY_PROFILE))).orElse(RDFFormat.RDFXML); - RDFParser rdfParser = Rio.createParser(rdfFormatContingencies); - rdfParser.parse(inputStream); - } - catch (IOException e) { - // handle IO problems (e.g. the file could not be read) - } - catch (RDFParseException e) { - // handle unrecoverable parse error - } - catch (RDFHandlerException e) { - // handle a problem encountered by the RDFHandler + cracDocumentType = JAXBContext.newInstance(CRACDocumentType.class) + .createUnmarshaller() + .unmarshal(new StreamSource(inputStream), CRACDocumentType.class) + .getValue(); + } catch (JAXBException e) { + throw new FaraoException(e); } - return new CsaProfileCrac(); + return new CsaProfileCrac(cracDocumentType); } @Override diff --git a/data/crac-creation/crac-creator-csa-profiles/src/test/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracImporterTest.java b/data/crac-creation/crac-creator-csa-profiles/src/test/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracImporterTest.java new file mode 100644 index 0000000000..cf23f7ddbb --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/test/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracImporterTest.java @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2023, RTE (http://www.rte-france.com) + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ +package test.java.com.farao_community.farao.data.crac_creation.creator.csa_profile.crac_creator; + +import com.farao_community.farao.data.crac_creation.creator.cim.importer.CimCracImporter; +import main.java.com.farao_community.farao.data.crac_creation.creator.csa_profile.importer.CsaProfileCracImporter; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +/** + * @author Jean-Pierre Arnould {@literal } + */ +public class CsaProfileCracImporterTest { + + @Test + void getFormat() { + CsaProfileCracImporter csaProfileCracImporter = new CsaProfileCracImporter(); + assertEquals("CsaProfileCrac", csaProfileCracImporter.getFormat()); + } + + @Test + void testrdf() { + + } +} diff --git a/data/crac-creation/crac-creator-csa-profiles/src/test/resources/Disclaimer.docx b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/Disclaimer.docx new file mode 100644 index 0000000000000000000000000000000000000000..f1271ea729510e8af5dad2ac3becd51052819b69 GIT binary patch literal 19604 zcmeIaWq2IPmMtolC0WeO7Bkpliy19uW@Za5W@eU!7Be$g%uFR_W`7N9kC(yPB}?%2s98Vkar*;AjBYD3U&JapdcV+P#_?vAn(951Z}Jx zjjSDY6u;UUIcU+lT3Hh1K!8zZgMb11|L^fX_ztutNLzG&MhZL&cnzwY*H`9=R|qF~ zw6hFQ-**B?IUaabae2Kw$>anoD3B_-!;rCDwU3W6$90)nIad24CDdRaP+_ZblBIV$Ng+#>#o0k>#ve1pG6b7Em0*a!eP$pV!^1!lGxui zrWQH!6xDWmn=UT`QLtqUj}Ntr*!Xv%!-YFB^(ezCGzY$(Zg4dq7 z)&ZZ@gDO2Uc~cTbh$V+gp`zz3?t7~4o@z=@?{hy?IFlX3jYIF4j}hCP@6L`J-$R0c zyuE>g$o*yV62#y%oB<_L1~@n2fRk6p-pJB{f&RDm|DCk|gJ4 zO7Nj=Fmn&uJsMA~t{@2kt@%u@bGDoB({^u-UxrAoLWJZv`EC`yZvJoDwxouL6p)p z(H}?*`p4+LjLA~)y`H-3m91WTr`4WBe_GVU6)oN@tBA4xI+zd*ssD!kEay&0(NDNXom1>A>N@nz{ z))0h)a?=T{d7}9!m~~F+L$9!v<%wAWSSyo!9Q97=g$l={59E7Mq;3HC+7P7CU};s= zd^LwyU&sc37nIRh+ctPVS@`t|(Dz{V8~XAF;neRxnzrHE-3MALZN;neoP2OI=qjoAG!d{4%|<+e%@E{2!uQ$ir9?X>f{3o0L$n59!LNVB!q*<5 zYhk+iVc~l*#NmU#B<0`WI{LkgZ>%WKrmNFEE-Z}y?s|Z!uCm>%^hOr(WpIBV$-KW3 z_x&0n7vR+PP!_sSdKNp(G{$s#6MlRgsk>H_-iaN8fn3`QF8d|5I|unQi1CzNm2zSP z%a>&7gr;Iyr}<1B=Py|W=5=Fbea-NoY7Wj+Ny(4YLKp^~_I*mxa+%B_v(1*Y2WzBr zT^kd);msxb_z2@q)6+Fq{k`f;ZIBhsp*UHU!0>i z21_*f5(Jh;=8>5apJQDRO57Q`F#s21HiM%C3SH3w21#`pNjKmgGxa`%x%gVh&h1#r ztlK2kz=(Tr<^=#=r)@=v13EY2I12q_VQa=t7ZB#*UdJ@6_43;Mb=C=n4a`Q(aIq_G zdi1zu_VLxIYxry^p*_IRSkEt+zdFSA5H&juw~|pAu*PN~{-t(B`e#_C2Rchm$`l!r zTJK%}Z9_7Rbvv0?`sU1Cq;9P8y(~H}eJq*DZnDj_Ll-wj6qRMi+$7>vQH`~VH@LmV!wggf%NJuDIR|eWU5SLSqII8((ywr)G zCC06xX0g#yrpyLp8_6>$1I*uc>0rzx_OhXnQ#M7d@7I&zP~}ZaMb#n6+GkG;$`7+{ zJvyYDN_jlB-T?Mnnr1z)tJdi!eT%1Lx2<;CD2-0$ql>mDpB~TjncUx4O40k_MlkuLw*L)xKI5wmvQ{ldF zH5OzNK|yDBseLn-a7zoFcA^#;0kTE{Hq*gi7!E%CIZ;BKKej>)YC3iV!YIBpvZ(!u z#g_-dO}V6C)F{gb!;;>@LG1{MJqgeNy`XukWBjW8=pOy*t5Rsp9Y#iGJaVi-p4GpU zo^+5r9Q}E>nBxmRvk%zNb$TSg5Hx#p10C%f)>Ka=S2I6a}mih zc@qcB1}5{JRU=*K2D@<+V#_>d^3@^Sb6>_t;3}W96IMM010ohZw!Jry=D;(BdG)Pc zj)q#UcCH9%s-4d~PlvBW+A>`tWnIgjgF2pxE}Y$KFTwmJ^jt{h9-mO&4@xB9T3inf zEeqk-)ygs6%w8M%v}=ZdMUAeE*t~)s(8;BX-Y=0RgRUTow8@KeXT3=w%ZK3|KJC;P z?S9Us8}pwdu^NU6OH?-y5%h4j+E3Fb^Zy!OMm+{+6$*&OOGX^4tEN0QDAwEXCcS{i z*{!OVEce6G+0<1BxUKHidqe~-w_hA@+W@uO-}T=ldvp~cP%}qwdqNq6z-PsjodEewmIgu0f6=%i-p(eL6XlnQY~w8IKZ+)>oFi#OYpI|m>V zk1vPAPFSw-0L07Aei52s)#0_lJ>dDuwM0!3Hy}fvMRhTF08<=J+lw*WY_(X+A8Ibq z&v`6MD&fhVJGYqAAl?UaP5>C!8U6U|^AXt4Q`$xWYn;y_2wSqredXa3SAj>-P;5ge z;Vo-FnM8SewZw$V&@oz%Rg!?;gfLKuMZ(nEo2*z!B9r2s-!WgAO})*z>I{C!+eID1 z{OoAcO`oZ>@3#`@zn~Lput~ZCLB2lIgJYWn_17lJQ^1x%A`lRC zpxpc}V2-9nRz?iJzcc-AWT{Dp;ff-)LthdGHVwOt?(3DZO^IDv%(Ji7`9-xUSQM0H znoRKFrcv+Q9Y(xV06H|-z^yl3j&jwLjx6i+9NIV2Egp}Xmg((;38@m1n$FMe$< zZf<6E*w}nY<`hka>yC}o;8C%|PY+*6Ce!P0^JJv0(-akp4@WkFIc2FT6vb&xwsY*!L@UA=-pj$>12ZCx6&2%8k2q`)8Od)WHC!i=FCU34u1Ueq z^rMX_B^ucoAzs48B;Vunh7L&p4wig-g`$C=fIi@sgch1``)==Ux7h z92uFE<4WkO!!Q@-kOeU{oS}og;7dci25fjC8(n`-PhIxjgLZDqTm`72^%m49zrlp+ z(KHAvPM6FV`hqcIy7R;ZJW4Bd$Gfx_x7p6U>-mOrEgjGItx);WHgJ4+P$}>Z*|i5Y z8!y@|^B-?4c;X^6K3pDma*M2~k0LqC`MHn`TR#MCKXwH?l&*<-Y?I+U}yG@$w7qC zSa5rsyw28DSnQ^1AcU89ai4;b1|=Qi1&ehRyJ9+v{qwJ0{%ZutRm6IvHd)o1iZ&?#N8ftJYoL}nl`ZZFpC-D2j zr+%br#0&V;H6`z08CoTLOivuBbvF>q()D4gNiv;)L^%#GT97oA`TH;#R0pjkMAurN z)$Qpg9ucd)ZXtlT(l$U0e$4m<|UG2UHqCSzn7-}03~s;4@;To9|$k|~{>ObZe*J=2$( zWWq5xUTN3wsY%hh3csFxS3P88Su?6+*jIc=q58QjFBCV-AcRrCnJ}pI+xV(J=>@GE z3aNJ9!{f~R6i`j4DmLu{Q}aB9?%D5kagD_K2HpYcHX;M>Xl5~QUA1g`ywB|WKJTtV z53JuM`t-hz)pLBFQ6+*)28U1zqyzW{Z@fwg;ZxADHw;OS2&OfCZ z=}WX32ERj7x(^)3lvNPR17yskm%nkPlu`v!X#SzxCzcP{wo^UI0CV55Egp6m(URF& z2Wh0w%(y|_7HkMcsZyf2qsO4D>TRb1kNiiW-(o!pQJQ{Ap*X>X?3$m`kzJ3;1PCv8 z=j6{|R!`_iR&?%c6Wxfd+$o44StCsu>=Y_`?Et>qImR%JTFuigThNpjZkhQB(XU9M zG%<#+UoPPB8tF8!B;j1gQ`MWXY7q9!Q-@e?L!~D3>|u>*0-)JQS&te~?*}19U7;TR zhZKVY#ryFG^S|?v)r>Sody?g#6%g=^H!DY`!k4c5_QW$s+7 ztPZ*|caf?w#yaWIE9qzO5UV;Z;EA1yZW-)Fk3G;q1YV{o8Fext+gpt?Z8WWql{Utd zCyGwGuEpZZ3z;CRuTnl3W_CNdOH(u;jygK17<)IR^vH1>^fsI>2h0f3n_*}Y9nRJ6 zMMb#`?x`AmUDHh{I33lT*WPK)(b(L^6o^!>Pv)0qs+SuUkv1<>McPi(2r{0;w_9rH zGM*`h(^pbCT%8NEa&|=|=|G%4Oqcjx)LnrQ={rj^$cnl@spQE^JrLiw?6Nsuu#e6u*KoX4N=$+61ArlP-L70_Rz@U#;A z)2QHRy&7Zg?6jnA)8!5UbeP+8Ch)|qWuCI`2%tB3bf=#0Jh7kf7?Hh5cnjV!OTg=x zK?;A{eA8+1UOiug?VW^nZq9zgQhtF-iBp?#1KW8sVp4rzMn${I?rf{`>pw=}*!IuP z#DNx;)%!n1861op9nGvw9DY-PwJK{iz$k+kVdY!b#1-C4ZTdT>(1nm?v|3dj zcwv7u$k^&FjHfl1JfUH;RuZ!q%&_LO)0V9ZSBehzw}C}d$-JDL%&!}2>k(pF@1%}K zN1mR%IC$?wByw>`KbSLL-3om@WAJ`E0nmRDvXJ{in*BqmFDymH3}Dz^5gKZnHzp)# z4kAg+F?CM;kyrHcyH#JnI{XxCVfbMiAte9d4XgfcUG<6vM))jF?BItGH`l zc1#YDL>H*tE?C~p`lqiVj_00G?N4;-)QpJWEu4`amz=))*!=3z{quI|cX+(21Xps; zoSE01fA{=12OsxMX3nQxlKaV zEpeWM=OitF8G)R1{!en8q@P}5BF3HtP)2*`2XhnBxLuPbNZVn%L|aOUtG|VT!GCzi zy#^wenWJfu=R@)ZUT?%X-4_{xz-3W{1fi{4ycGTexp_*v=!1F~RDAtAcJ>Ijp&S7e z^wa?-KUiIjV0Fo^bOH=-*tT!&q#Nqj81-=QB~J5`ojD?S^^bXyWe^`eR4Y#FWEMSN#p9l@rPBNoG`2Lj~Fr=A@ zd`62Ayce4@ITUWPX1aZ;Cu0$`2jNDZ!t~1V(W;N%bSHp$yHshb6VyiMpul`o64& zsa-R%ar$XF!}_KbVvSPeq?s*5&uX|2^94wQux!#Q;}0LwzlK{=U{UOv}Kgg`G5S&GdA?<1PSwW)|kJkFJN+V?io z8&oYn?44aIKkO$@mWwQ`Wt2C13>HW@*qz4JD-SGd6Rq`dYEvQj5q`S7p4Up%WJ6W7 z24h8v3=gn7Zkf$f_8?R)zPb}7+fyAe4$;tc0*8XQvFqh$5>=6Tes12Virp>4O#iJ1 z;btt^>2nVhGCQ|~mFHz0g*(2DOFp1!{deQL&0n818rZT7e4&C+f*3eCINDgLT3Irf zIT~60Zh8~tkbzKU69GH?_lM;e4?;KN`@oHo?9&-=T;>CXWTY<)NCL$o#aoo@d`&!5 zzMw@{25nhYq#I>hKX?!2V$a@ZewtpV8dYwy)MgdsV2v|h0uN5(Rx_h&9O=%jkAyL- zUZg;f->CAlk+y*ETZ-+|CCs}GJy--3ZE|SVj2fi~+!GVn@XyQg`eMFm?m;5G5`6q; zHx?9fJm(U40kS~n6zgvnDrawF>+t_{wT99B7Ji?R0)QJ?&?zlyY)h%xfkH6b>cD+0 zwf@HS(}7bgb%{536*mcYoK@~!&!{28}p9+L{KF zS~q@n1BdXcT|SFZ_$D8&9LWveDsSjdnBSA)_^!h$fMnRGCyOPtE)aTBaTC#S)WO??rM`X4<{KIWh z_mb1qEPRCRJ_PsIHbkmTMS)mZ9kN(#`$_*51B{80XDMhsyz0sVR3nR$-cB*5Xnh=v zg8HIz+Km0Q0Eq5~N%Gy6pFUUX_D$g^YB_M@UBqF@qYR8!i6iy+Qb{zzY79I>$ozP8 zG*^2<1gQdO{<@w6_&DU_<)0AoX?9uFTi>p-R`E&gQ)0#O0;1x>q(i{`4_cd0ss#FU zPq@R)E+?ITNRkj|h$uG~Q)!f1Xc(5ub3k?5ZK3wmM z_OrmWgjfNr7SPSCXh>zDQP1jYs0AoBI;U4E2&UH1_p?w_uF{Ictc;fQYLfTc)wtb) zmeyG>k`zuRgJ=;J_VoZ6KySRJ)NHV2dSnaCllLfh*p9h_dDv(AY8MLEWF7Y*@79`F za~G8yp}BB_<#@KxGO6o*eKuyrVuVQ{yc*H71?hkTbk8Q!wQ zph(CfTZQeR98X-HFWq=qvIbaTbM$A3lzH2P2z<|Y{GsXJT0raYT~gb!?)ap;UlJZ! zg>o>sKV^z3Y*ATfZOpF8IWDj;M{JPxguwW9(fdCvDZ_(*$wBp{qYRdVa$26NEGRqf z+T_dLBCzvlv6 zVHSZDjN2#qLiI#AGsQ{U$cX|OW`Sf*+X8CD>w&%EDeI3C@-sd;j&|=S^WZ*yiOqVU z$ZET{*`^ugEsi&48`D`5BK0VMfAz{K(!f7y<&@T4+g$V7ctAqL{{kJK8H3vsoS>(u zSj5;GqF@%JZeGhbJFIBVrsz8y*wDR?R3{zI1h#%Ad7< zy{9;bA?%~uomN(UaHtN27wh!1)~J@<>8k;WBzd6pHJi*=(|y1fdd8tSMJFj%Y=msZ z`UB;dpQwvuM+xT31y(6;zWltrm2#gg;jo*n%$VnXz#@G~m^7|QWST0wQJ$49jf3d+ zbz2dZyVX{uq(s5KJR!8JN=&~1e@~C$Hp+#byp`;&fO+P9=kT0;)c2OP^|m*Dal+NZ ztar4B>I|C%(N1dT6myq%6j?b$5Q45aeTK{%QsG@Jil8eyC6)3byXq8n;gUTUk{s?C z_A?ti#VgnA3v69o->9f$|>pK;A65gDA)lo(7S1=wGI zz)(Avi+@?%AU-ZkZ*1+P2P|Oi^eJTIEN7G$yy^nHUfP?ErJ?W&39Cct$ste}#oTxM zw8zoIkA&pty=p$DjlwP$ltw2IAI+=`4D>3lV%3XFm&TUyPepz&cb=Zu@6?XnHEtNl zTHAKfV3@&qfLty0h}%wm@gWE9kA(X9eBHyWDw>rWn*fBEeE#OW{26yrhV?Mcv>^L% zY2qUh0XaEA9}j<%g=Y_eLenGsX-Xvc&RY6BRIis&@DB5{V(TLu%4wVht^USB^4 zpQ`h7u;7(M7{(7vb>B~psPDRlrSeUSw0{iSmzpLF8!3Yh0z>A07~4{^G5wpdYDO@} zCz3J?iBo$N^q8=Tl{9rc<i30XbOoZE|}+GWE5c(zRw?mdBOrwYVzOl^srz^G{sCpcK-19 z?L-Hej0AzX_5*Eo$fk+T4i&cp*?|p*sMm)z6wH%E#Y-r z$r$U_P=Q75ygBmQI6q2zQ9@%n4$j=daD#s3{MzC}V}Rut;$Tg>Zh*}26Yl^*c*2N0R0a4vv#%FY zYtkE6D9S@IVV9_NW|YS1V?sj1T<9&SKC{NU!X~`v7S9NS%?5@2g`=xwnNsApZk(=c z(50iGM-H8RXts|4z|3dN{S6&f5AZjd_sKQBA=uO@PnLW)B4Oz`8ci`KF(Dbk1|7$b zh015ZyqtfqveHB%h3bJ8t0yot@PDyd|DQ~)+ITISG)A<*Gl~;FqBUH>`*(`uN^?j> zQ`AZt6gRiJk*KVeq|3Bv1uu8lscGeeW_2g9_&r}&uP#!r!p^D@+rL+3D5Hn;1Vj92 zwC1WS8Aw{DqZ8A`|AFCFR!Jfe7dHFkvRB4q(dFZ`w4NY{eeXBMSHX_{kkWs^Syq#3 zeds1V{VXUxyvdvsW|e_yryjp-bQ=btt^PHDSDDQyuG_jL~= z?aI=VT3(ol^xncbvDUKf@RuGePtp%kC%^OL+kL|87GxgpK{ar8dAYcHKJlhHRol-I zOB7GUj1MC(G@CR=W5iGtLJ|i1E|u-c-ZZFhnxi@K!OW-Ng1Ka&4-0f}s zFm}plI(uo!T47p5F!2Z5w4_1O>#9pw{6jo*$1tm5{tK zP2Rbs7YNr9cnW;-Hb#XB!u9Ytr!Z9Lfw$u4)jw)vRrx<%)Zp!GO}ha^+ptrVH)b)u~ za;^P&cI+*cwI;mO;_4aE2%7qs{p7kk1KNlT8zZe6J<~t4PPnY9I4B=YM8nQWU<1mF z^E|;Y{|I;D#L^cQq|h*eKLtlwK@NMtf&4iVCC(md)$p8i1;xUyirM}L{i`FVOtMS0 zTs-9->0-u@D@*oCtscE%Nc>r2hKi*I2A!ZojQfpG0A9bkmyZRqid55r3?j~=e+(h7;`?@g z@o^GO{N?h<0R=jWdpJN!7CP6(-S1oB_i!OMZ_dV+m&@B1q5-%>5!ys5KK#~mkMpDc zj<=Jf!njt~kgo)kpHs8QHV$;P(Zb?37!mil^&YsI){7o(Kh*f69~wFHNvYn-(XR$F zt5pg}3DbrqZM?3oy2=?;)1z^ug+zPD>ZP35GG6qA_lHtWd(dM%#NN&X+>+Ip#tcU9 zH7y;GmAk^A9>B72LSzg1r;O~Bx)wSYoW}4Molj;y(1gr?BgNAt1nDF8?qgb=5C0xo z%R$m@*GCf>OdF|VLi?EjeG*T2Q77_9uD{xMRE@VG1aH157yXoc(jeZSLglV#WPw$g zEZ;5LAMU;CTgk1?o5}0;_^xLgoL|%sT+DmE3v8M#l6i)jv{Em%4(2z{7_%5?SqfUj zfJP;J#WFGhHrKC-yZYI@8?+2#_FXu9=|_Axd@xttZcmy*`iwJlyWYi!glZm~3u`*< z4&U7?FSJLdo_5^1J)f4F0H{}U0HF>xrIl&W;Z>P2$Mwq9szYxJ7tG}fsUA2C*lC0` zbj?K%*460=)&0_H?`yq>P0=Fgtb~A4T&8b_Z|KhNL^PXpc6`MXVrL3HZj}NNxl_>& z{ic1)B-_5aIK{!F6xBL#-s>(Y+Q_()&Kh0e9|Kj4L} zsvxzuut`hVnQKoglY_@^RTd1Yn4OrkU}NY18{PHHhl^sChtjb~zz+VS zFjB{eXEZXrY20|XYj(sNFTV?}P6zuqlD!%;cAHMiDHR;|N(q@YE_B4>ik_F8A zE8kpcrU@ZQ9r_2P9Ivqr4qW!A#M}|mz{89Uf7%r)wPF1-Qu#O!1vTBl%9#9`;L~-@ z@Sb+`N8pbF?G)#>7Hz)oTdfZ2D`Ig_=4GlR9L7)i6f^&QKqliq=4 z@aMvY94YXrRS+!qY1(7v98}C}%}Fm@^~N_1v(CySC)yEY`$n`q(5b8*57p}_)WZaB zaqR=25@oq_NM%B$lpRLvpW9>d;&%8b!Z?NliW1n70Ejok!^plC_4{ptADK|8BCNC4 zK1lU~0$?{UZyzmeX)v2dX21o(xs!y6QJIZBKb#ZtJzQt8;&XoywtW<+Z7>lk40?Yo zfP`mA9UC4jW}ZT&z;FMat=0P?smM@GNU&wl)d^CrDfIQ00`w7#VO}39YErAIDLhoZp+6WN~|2=$| zY?SJ5;ryM;!ugN8B-MI0=wB9NDgi7MR}hH2ni z#cYwTkR%A42-~d6M z6M2xb7|aHXaLAVqBWKuMFjJwcZ^OU0d~PwR#EbwC`^kAmuWwGwu3aSfaQHwn#og8c=-9uc=rGX7_tpj}jnU zWD=jQZD@7_+xDypK8@$_W-xME_1c0fJpJgTRTS_g^(s5YVd5pMB!YH}pnvS3FJeF4 zWhHnFW*}leJ|unPNBnkyq>2NOlc6H_3W6dU(GP4c1v)8PQJ)jT=?SM&yhn zaBGOAA4opz=1~d0xIWC(@9vnX^Rgpgkxg?2fGxJ5fh^SF{n+SzPgv**9^tT5|N1`= zK`r#JZf@l#85`On0cf@I#9&s6!JlzwOEKNC(EGN+VYfVi2;M)pp_5FA1ibsLtC1qo zsga@>Kkk42RiXj^5&^qqClYY+8-y@d0QUEx{pUo#jR)!PL);ziCICV{<#xLQA)!(7 z#E`#_;y<+i8Wc9VzdJU%!oN?RW92ocBi~G4L%1>S##ym&_ByKsC?dQqTVX%U<}zQT z`B?JQ_HIvs7b4;#0YS1`F0PQ20r4o6dH?(&`@ANK&*SFRlkgKhFMHdbVA7#G@rX+S zh}QxeO8OTL%d|^pGRjMYW#eXi80Cy0tHt?9h@h^X`aBDdrdCQ}{K(I?8mU#jqLJtI zmR12h#MZ-;%0ze@^&^&$-JsUP{mSd|*>P9S*Yf>#I2Gj#kpA@trpS>1|9Uf+I`skr z)9~_~CK#<*2h`@F{SVpKj{4`_&GM!J07|~1@1vCpPq?$vof7ac+6v&|9WzKfbZkNo z;_#@X%I0F75+_;d00@R6&^{gW;LAjuoaem2Am-AU=x+%)D3uC#+(cYVuL^?k4L}?P zo92pMejvoZTU+y>u)K?ihctk|I2^@6(;{L}8a6UrV2?lXE#EV3-O}|oc&|A?faaD2QBuk0h;T0S~|9t6^I{ivopNFzyR^;tS&-;4bEamYX zhdz@JK3t$ZqhpE;M}&?J;Vw6Mua84udxo=W#d?jSM)aPdOMnJ=(lWQ)Wz99@MgUcu z>^x!G2Q^w%Yp)+;mX|z3aJK_JlWA#hFCT{&q@a)y_0b1bSK^7ibFsONrqj{A=bC@q z@3)NMb{237FGW-U?+=1w#3;X~nLt=S!!1MK-mLOX)FTWF%njO964Gpcp&Z}jMiZr) z=9;E<#QvqpbF*Pk<;ZLv%c7;m*G9pUE&NiKCANKI)K8Z;%jWkb9hUI4hlxlL*ri&D zTCw{kjdR$Y`2%j6N!~kzZ@_x6zdIlX?&y;}K-Yu-n8kwj9|y$6NdL>9QdQF9C#{!> zeh)I?)1KmTscqIN$4SV~noY4vYutfg*@i>mL6FHjUUMN)TqJ7Gv@rz{zK-vGL%2h9 zFRRY5)%I13J;)#XpfoYFME+?iO|V3|t#mFCB8M30B&kn!}j1%OGD zrno}X&vyH7k7vk8t|y&e@&He=#$!0A)-qGN0d(1W%3k( z3AiH9;&fw&vQ1_>Flh_@3x+ja=p)s%U=KSM^6OsdrARYQi1!u{}pjE2G;m0>gih={T6Xr zNm!0tVnq79Msq_*(!tP#L?4EsOs$nCp+vY;_GpP0q#AKDV8DKUhtK5$2}wOAK~on( zG`7H7C2PFCVMj5%9)OFaJ}S-~EY^uWog$aU@$lN(oE8g0tAtHgx9L#5_n83mY>j88 zMw12(bWDXY&Qb=}qC^b~jHWSv3^^NL!z})Eb&hhWFx4@yRF0{X zdU#Vn&Xp$Pt9(t__R!}xbh{8BDWjp< z@!RWcjt)inkO7ZABjFw|baM*GxJQ3LF$l;KjU7wg`0D?4?3x=TE4<4j zFydQeun92-gpMn|#|=$~VQ<@<9jg#3l^2R-ep19e#Y3$CVTAV%N3X`~ z68Vmi1PKBS%5Q=J)p_}ZYcLqt*#9niz#`TEtvLX$#2&G0 zvdfG}-_|Hjyn~-Jm&A38b6DT8UkH)2h9N#AZ&YN()gJgxta`Mc@n)Q9 zYPBAGSoA|2N<|;U2q)9^PZ+XP+4geCpchAp#vR19&=ux1V&L&o#m#vb4VQ8`HkTSBORE&Ir81QG+2~aOPmk^;)$*zxBPcJX&}< zeB@?RD#%IzQBYBc|554FoKtAP9RN7vBeHGH^mWA`_@u6*)2Fq+UEFi31V6zv8TAa= zJm-e3|3Dj>>`&BckA=xGWP%xE?b_+IavTTtb#^vsG}Aq;vFPN$nft2tGBBfV8VM{kEC1~?0YLuX zKoJH>R~VM*VMJ;ry+D*dEsK+g_pL9Nqv`cYnu*V(Gl^6ERBzOx^mJ$W&Y#HozLw<( zf3y_70@@OTEPRWBr5Av;?T^nqsodbh8ao@WB$b4Ix~-fn9B1dn0A}fer|Vk zv_H&nZO9~m8N<-8?A;f0+(X5=1`?EOwi=~;GV4ubGF!b4p;xC|tkv|a9zK7tRaBu}2OqUi_J-1&qOwyf~y(MvH$+B=};XdtB z-ks~+Lj&*k-|ag`J`T5TU<>7MHXcw?|HudYSIO6ZWd;6kz1MF7`|l%syebq}AP=?v zvcB47YLmVqH-ua$N#)2TfzXU2DlTO(tZHty*1lUn5^7bU((iR}B#Z*&hnq6cr zhlLN%D+A^A^kNPk`m?W#9&NG{AG;o~C+gn&Qv&AV7_}rvh@CMk&!%i~6pL0Ro-uJ) zj6;>mAk(q>)RJOG$Ej`Zp#u~USA^i_!Jh@cX{=|4PAsL;(0Ve7q~Pn-K|W z{mJ(XY1jG-PcW@?8?Eoh7g!!kodwyNdvi4-#YN{rq-eS0eEn6gALMV2Z$d9{x?nWx35b+>L)j(?RV z)KHfM_SKI#CvRt=w(_Hhu{U^A9Vw@M_-(-suvq}Am;N-PYY^WyJ!o!g(Zp%Dzy{u~ zLBZ4y&NNXpaBW6zm80V1>}8RT=XqY>=>N4AfP&Eh{kngCu+N_^_4kke@R%Pt$-ff( z_2D9aCTIf+-oKWV-(~1m;IB_z_yY<6mJ0su84SO||5~*A2N(nd0Nhjm?@CyIW%{)` z@eeLur2k8;;;$6H)^_|sA&B{Jia%F+{0jeTiuNC15RevJkbg?p{*~absn35V$iw@U z;EzP;Us?W|@cU<$Yy4kXeqS4YCHQMD%by9 + + + 2030-01-25T19:00:00Z + 2021-01-25T19:00:00Z + CGMES Conformity Assessment Test Configuration. The Test Configuration is owned by ENTSO-E and is provided by ENTSO-E “as it is”. To the fullest extent permitted by law, ENTSO-E shall not be liable for any damages of any kind arising out of the use of the model (including any of its subsequent modifications). ENTSO-E neither warrants, nor represents that the use of the model will not infringe the rights of third parties. Any use of the model shall include a reference to ENTSO-E. ENTSO-E web site is the only official source of information related to the model. + http://iec.ch/TC57/ns/CIM/EquipmentBoundary-EU/3.0 + http://entsoe.eu/boundary + 5 + + + HVDC Station 2 + + b1859991-5a57-4f24-8763-7f83046d0984 + + + HVDC Subarea + + ee8dcb00-263a-47b3-ad86-d0dcc16760dc + + + HVDC + b8f9bb39-f387-41e8-8b69-6a6ab2810f96 + + + Base Voltage 220 kV + 220 kV + 220 + 220 + a7f1d8de-d658-428a-821b-3a5ae5965fd1 + + + Base Voltage 225 kV + 225 kV + 225 + 225 + 63893f24-5b4e-407c-9a1e-4ff71121f33c + + + Base Voltage 380 kV + 380 kV + 380 + 380 + 35cf638d-9a9d-4ae5-ae90-2f01ef898cb6 + + + Base Voltage 400 kV + 400 kV + 400 + 400 + 597e44dc-2a6e-4c62-82f3-f82cc46e0e14 + + + RG CE; 400 kV; OHL (2) + Border_AL11 + XCA_AL11 + 10T-ES-PT-10004U + + b675a570-cb6e-11e1-bcee-406c8f32ef58 + + + RG CE; 400 kV; OHL + Border_GY11 + XWI_GY11 + 10T-AT-HU-00002U + + b67c8340-cb6e-11e1-bcee-406c8f32ef58 + + + RG CE; 400 kV; OHL (2) + Border_MA11 + XKA_MA11 + 10T-AT-SI-00001T + + b67cf870-cb6e-11e1-bcee-406c8f32ef58 + + + RG CE; 220 kV; OHL + Border_ST23 + XZE_ST23 + 10T-AT-DE-00016Z + + b66f15c0-cb6e-11e1-bcee-406c8f32ef58 + + + RG CE; 220 kV; OHL + Border_ST24 + XZE_ST24 + 10T-AT-DE-00017X + + b6978550-cb6e-11e1-bcee-406c8f32ef58 + + + Biomass + Generation type Biomass + EST-Biomass + 24C12434-E42B-497f-928F-119C6AE92079 + + + Co-generation + Generation type Co-generation + CoGen + FB6F43D6-E71E-423a-8CEB-084BC504FD1A + + + Geothermal + Generation type Geothermal + Geotherm + 1CDFB476-4E01-4488-B5A2-FDDEA0488C59 + + + Marine + Generation type Marine + ES-Marine + 2C897906-9B7F-4508-B132-74EA3EE1D3B0 + + + Other renewable + Generation type Other renewable + OtherRenew + A43C7A90-B4C7-460c-A607-942EFA3EFB79 + + + Waste + Generation type Waste + EST-Waste + 1C405140-0F45-4534-9C90-F38F4905362C + + + Economic and political union of member states located primarily in Europe + EU + 10T-EU-EU-000001 + EU + fb980bdf-ced5-4f87-8264-998e95e065a5 + + + TieLine_XCA_AL11 + TieLine at XCA_AL11 + XCA_AL11 + 10T-BE-NL-10314U + + eac31e3d-fdf5-4656-b10e-66481bfcfec5 + + + TieLine_XKA_MA11 + TieLine at XKA_MA11 + XKA_MA11 + 10T-BE-NL-10114U + + 54a2e470-ef70-443f-ae81-bcf2d117caa2 + + + TieLine_XWI_GY11 + TieLine at XWI_GY11 + XWI_GY11 + 10T-BE-NL-10014U + + bd25e87a-c626-4dd7-a846-7fba517fbb8f + + + TieLine_XZE_ST23 + TieLine at XZE_ST23 + XZE_ST23 + 10T-BE-NL-10234U + + 2e08aa26-2719-4b3e-a0eb-a9bd0ddbcae1 + + + TieLine_HVDC-NL + HVDC TieLine at NL + HVDC_NL + 10T-BE-NL-10344U + + 2e08aa26-2719-4b3e-a0eb-a9bd0ddbcae2 + + + TieLine_XZE_ST24 + TieLine at XZE_ST24 + XZE_ST24 + 10T-BE-NL-10274U + + 54a2e470-ef70-443f-ae81-bcf2d117caa2 + + + ENTSO-E + + ENTSO-E region + ENTSO-E + fbcc6679-6da5-4cfd-b50c-8ce23f450c78 + + + Border_AL11 + RG CE; 400 kV; OHL (2) + XCA_AL11 + 10T-ES-PT-10004U + ES + Cartelle + REE + PT + Alto Lindoso + REN + + 8fe8c999-a939-5d43-b857-02dd312f2dea + + + Border_GY11 + RG CE; 400 kV; OHL + XWI_GY11 + 10T-AT-HU-00002U + AT + Wien + APG + HU + Győr + MAVIR + + af1d901f-98de-574f-abc3-6c3025e7a685 + + + Border_MA11 + RG CE; 400 kV; OHL (2) + XKA_MA11 + 10T-AT-SI-00001T + AT + Kainachtal + APG + SI + Maribor + ELES + + 7976cd48-d51c-8e4b-9595-56299cb5b4f8 + + + Border_ST23 + RG CE; 220 kV; OHL + XZE_ST23 + 10T-AT-DE-00016Z + AT + Zell/Ziller + APG + DE + Strass + TIWAG-Netz + + c65325ed-92a7-384a-834b-99c1ceea32ef + + + Border_ST24 + RG CE; 220 kV; OHL + XZE_ST24 + 10T-AT-DE-00017X + AT + Zell/Ziller + APG + DE + Strass + TIWAG-Netz + + fd0e36b7-817f-4547-9e0f-a07011aecd48 + + \ No newline at end of file diff --git a/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/CGM/20210325T1530Z_1D_ASSEMBLED_DL_001.xml b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/CGM/20210325T1530Z_1D_ASSEMBLED_DL_001.xml new file mode 100644 index 0000000000..275c9a4446 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/CGM/20210325T1530Z_1D_ASSEMBLED_DL_001.xml @@ -0,0 +1,1896 @@ + + + + 2021-03-25T23:16:28Z + 2021-03-25T15:30:00Z + CGMES Conformity Assessment Test Configuration. The Test Configuration is owned by ENTSO-E and is provided by ENTSO-E “as it is”. To the fullest extent permitted by law, ENTSO-E shall not be liable for any damages of any kind arising out of the use of the model (including any of its subsequent modifications). ENTSO-E neither warrants, nor represents that the use of the model will not infringe the rights of third parties. Any use of the model shall include a reference to ENTSO-E. ENTSO-E web site is the only official source of information related to the model. + http://elia.be/CGMES + http://iec.ch/TC57/ns/CIM/DiagramLayout-EU/3.0 + 001 + + + + + Assembled + + 634dea3f-e2a6-36d0-d25c-39fb7da2af7d + + + G-Link-354409015 + 0 + + + 3f5fcd49-4e27-5c8c-7af0-39fb7da2af7e + + + 1 + 682.625 + 113.7708 + + + + 2 + 663.3358 + 113.7708 + + + + 3 + 663.3358 + 114.0391 + + + + 4 + 643.9958 + 114.0391 + + + + G-Link-354408573 + 0 + + + 467d3d1e-f96f-acb5-c8b8-39fb7da2af80 + + + 1 + 240 + 216 + + + + 2 + 254.9966 + 216 + + + + 3 + 254.9966 + 215.6354 + + + + 4 + 269.875 + 215.6354 + + + + none + 0 + + + e7470557-0f67-c8e9-e796-39fb7da2af80 + + + 1 + 438 + 140 + + + + 2 + 438 + 124 + + + + none + 0 + + + 57e6bfd4-dd22-64a7-d1c5-39fb7da2af81 + + + 1 + 100 + 210 + + + + 2 + 100 + 166 + + + + none + 0 + + + f2161998-0632-ac5d-7e98-39fb7da2af81 + + + 1 + 568 + 176.5 + + + + 2 + 568 + 84.5 + + + + none + 0 + + + 019ef9d5-4c45-f74d-5132-39fb7da2af81 + + + 1 + 438 + 88 + + + + 2 + 438 + 104 + + + + none + 0 + + + e18b4ed3-593d-5edb-d42d-39fb7da2af81 + + + 1 + 438 + 198 + + + + 2 + 438 + 216 + + + + none + 0 + + + 58c4516e-0bf9-bd01-5499-39fb7da2af81 + + + 1 + 438 + 250.2 + + + + 2 + 438 + 240 + + + + none + 0 + + + 2f14d750-5f1c-c7f0-828f-39fb7da2af81 + + + 1 + 240 + 155 + + + + 2 + 240 + 142 + + + + none + 0 + + + 099f9e11-34a6-f1b5-e1de-39fb7da2af81 + + + 1 + 644 + 81.3 + + + + 2 + 644 + 263.2603 + + + + none + 0 + + + 0bbca635-cbcb-4638-0d60-39fb7da2af81 + + + 1 + 738 + 260 + + + + 2 + 738 + 175.2 + + + + none + 0 + + + 3333a803-f5b3-105f-15de-39fb7da2af81 + + + 1 + 368 + 252 + + + + 2 + 368 + 234 + + + + none + 0 + + + 9b802cf4-9855-cb9a-03ed-39fb7da2af81 + + + 1 + 270 + 246 + + + + 2 + 270 + 172 + + + + none + 0 + + + 317503ed-2414-da1c-24ed-39fb7da2af81 + + + 1 + 438 + 152 + + + + 2 + 438 + 170 + + + + none + 0 + + + 3da63568-6c5e-54dc-11e9-39fb7da2af81 + + + 1 + 322 + 78 + + + + 2 + 322 + 166 + + + + none + 0 + + + b2e504c0-348d-7fad-5e09-39fb7da2af81 + + + 1 + 180 + 238 + + + + 2 + 180 + 76 + + + + none + 0 + + + a40e4afc-2b15-a171-f011-39fb7da2af81 + + + 1 + 336 + 188 + + + + 2 + 336 + 258 + + + + GR-L-1230804819-795098234 + 0 + + + 7996889d-b7e0-b3bd-055d-39fb7da2af81 + + + 1 + 330 + 259.8 + + + + GR-L-1519229870 + 0 + + + 1c24a6b6-106d-5f14-2a6b-39fb7da2af84 + + + 1 + 84 + 190 + + + + 2 + 100 + 190 + + + + GR-BE-Inj-XCA_AL11-1413600188 + 90 + + + 06860db8-e1c6-e18f-4e4d-39fb7da2af84 + + + 1 + 422.2 + 138 + + + + GR-BE-Inj-XZE_ST24-78955718 + 90 + + + 35618b32-037a-0171-912a-39fb7da2af84 + + + 1 + 424.2 + 248 + + + + GR-L-633459252 + 0 + + + d49995f0-556b-74c3-59fe-39fb7da2af84 + + + 1 + 426 + 138 + + + + 2 + 438 + 138.1 + + + + GR-BE-Load_1-1132341825 + 90 + + + 0c0392c2-6ba8-dc84-f2e2-39fb7da2af84 + + + 1 + 160.2 + 132 + + + + GR-L-52575670 + 0 + + + fa169583-ce02-9c1b-27c3-39fb7da2af84 + + + 1 + 330 + 256 + + + + 2 + 336 + 256 + + + + GR-BE-TR2_2-1357561524 + 90 + + + 63ae4d75-b66c-0faa-b7b5-39fb7da2af84 + + + 1 + 230 + 216 + + + + GR-BE-TR3_1-2077564634 + -90 + + + 1aa864ff-bdea-4937-db50-39fb7da2af84 + + + 1 + 293 + 156 + + + + GR-NL-Load_3-631391046 + -90 + + + e2bb743e-aba7-e510-d8ca-39fb7da2af84 + + + 1 + 659.8 + 88 + + + + GR-L-1962060451 + 0 + + + 3a7c07a4-981d-01d7-8816-39fb7da2af84 + + + 1 + 164 + 132 + + + + 2 + 180 + 132 + + + + GR-L-1994603755 + 0 + + + 8694b1f7-ba70-1bf6-707b-39fb7da2af84 + + + 1 + 655.8 + 88 + + + + 2 + 643.9958 + 88 + + + + GR-BE-G1-330853274 + 90 + + + 521430de-90d7-0417-a0dd-39fb7da2af84 + + + 1 + 78.2 + 190 + + + + GR-L-254699869 + 0 + + + fc229451-1303-82d9-aabc-39fb7da2af84 + + + 1 + 428 + 248 + + + + 2 + 438 + 247.9 + + + + GR-L-1712449918 + 0 + + + 130a8dfd-959e-e7e4-d4cf-39fb7da2af84 + + + 1 + 444 + 166 + + + + 2 + 438 + 166 + + + + GR-SVC-1230797516-321439582 + 0 + + + 58a55440-3afa-4369-3dae-39fb7da2af84 + + + 1 + 321.4688 + 261.8542 + + + + GR-L-1522016781 + 0 + + + d77f1c30-229e-7304-d55b-39fb7da2af84 + + + 1 + 573.9 + 134.4 + + + + 2 + 568 + 134.6 + + + + GR-BE-Inj-XZE_ST23-1448023129 + 90 + + + 5f069b7a-3de0-9631-eddb-39fb7da2af84 + + + 1 + 426.2 + 214 + + + + GR-NL_TR2_3-1833298703 + -89.2 + + + 53eb83ca-b82b-9d4e-fbfa-39fb7da2af84 + + + 1 + 692.624 + 113.9105 + + + + GR-L-590160729 + 0 + + + 6e33646a-c005-a677-a091-39fb7da2af84 + + + 1 + 426 + 100 + + + + 2 + 438 + 99.9 + + + + GR-L-1163897995 + 0 + + + 1f82307b-224c-5b52-8477-39fb7da2af84 + + + 1 + 430 + 214 + + + + 2 + 438 + 213.9 + + + + GR-NL-Inj-XCA_AL11-385950181 + -90 + + + f493dd76-d32f-d501-eba1-39fb7da2af84 + + + 1 + 447.8 + 138 + + + + GR-L-1006053890 + 0 + + + 98c2cd9c-0736-8fab-c7a3-39fb7da2af84 + + + 1 + 284 + 164 + + + + 2 + 284 + 182 + + + + 3 + 270 + 182 + + + + GR-NL-Inj-XKA_MA11-182978626 + -90 + + + 527833a7-b84b-8661-4285-39fb7da2af84 + + + 1 + 447.8 + 166 + + + + GR-NL-S1-23474354 + -90 + + + 85439b66-c718-55b1-56aa-39fb7da2af84 + + + 1 + 581.7 + 134.4 + + + + GR-L-82826021 + 0 + + + 7451f968-de50-1a23-2527-39fb7da2af84 + + + 1 + 444 + 138 + + + + 2 + 438 + 138.1 + + + + GR-L-444386168 + 0 + + + 5df00684-9350-95be-df85-39fb7da2af85 + + + 1 + 256 + 196 + + + + 2 + 270 + 196 + + + + GR-L-1259515836 + 0 + + + 390b0090-fd77-d447-d30e-39fb7da2af85 + + + 1 + 321.4688 + 251.3542 + + + + 2 + 335.7563 + 252 + + + + GR-BE-Load_2-664013061 + 90 + + + 37cb9d70-0f47-0251-6073-39fb7da2af85 + + + 1 + 252.2 + 196 + + + + GR-L-108027093 + 0 + + + 68b8b7d0-b858-4b32-69b1-39fb7da2af85 + + + 1 + 444 + 248 + + + + 2 + 438 + 247.9 + + + + GR-BE-Inj-XWI_GY11-1033807006 + 90 + + + a1f5fa4a-252b-3a25-dac0-39fb7da2af85 + + + 1 + 422.2 + 100 + + + + GR-NL-Inj-XZE_ST24-835537239 + -90 + + + 9d9ce49c-954f-930c-fe32-39fb7da2af85 + + + 1 + 447.8 + 248 + + + + GR-L-1691614453 + 0 + + + e52f38e1-6db7-40f8-5831-39fb7da2af85 + + + 1 + 428 + 166 + + + + 2 + 438 + 166 + + + + GR-BE_S2-252010594 + 90 + + + 360f54e8-158e-16ff-0bfb-39fb7da2af85 + + + 1 + 301.7 + 86 + + + + GR-NL_TR2_2-25822384 + -89.8 + + + 17045431-5186-7322-809b-39fb7da2af85 + + + 1 + 688 + 216 + + + + GR-NL-TR2_1-1902947644 + -89.5 + + + 47f63ddd-965b-d6fd-e0d7-39fb7da2af85 + + + 1 + 604 + 116.1 + + + + GR-L-1633734589 + 0 + + + ca9165d3-17dd-6a20-865a-39fb7da2af85 + + + 1 + 177.5 + 86 + + + + 2 + 180 + 86 + + + + GR-L-958549789 + 0 + + + e47c3a1d-aa70-88a7-0f40-39fb7da2af85 + + + 1 + 594 + 116 + + + + 2 + 568 + 116 + + + + GR-L-1192632359 + 0 + + + 837a7d94-c576-34c6-d8d7-39fb7da2af85 + + + 1 + 613.9996 + 116.1873 + + + + 2 + 643.9958 + 116 + + + + GR-L-1997329201 + 0 + + + 504175f2-4ba9-2078-dbd8-39fb7da2af85 + + + 1 + 309.5 + 86 + + + + 2 + 322 + 86 + + + + GR-BE-Inj-XKA_MA11-1735199274 + 90 + + + 5b42c603-e8ce-b062-4139-39fb7da2af85 + + + 1 + 424.2 + 166 + + + + GR-BE_S1-265097752 + 90 + + + 1163f3fd-2c34-9374-da3b-39fb7da2af85 + + + 1 + 169.7 + 86 + + + + GR-L-476899861 + 0 + + + e649a5a2-5270-f047-0550-39fb7da2af85 + + + 1 + 757.8 + 244 + + + + 2 + 737.9229 + 244 + + + + GR-BE-TR2_3-266970206 + 90 + + + 4d428912-7981-161b-a501-39fb7da2af85 + + + 1 + 136 + 190 + + + + GR-L-1414387645 + 0 + + + 3e3a5430-e16e-7428-ffc0-39fb7da2af85 + + + 1 + 228 + 152 + + + + 2 + 240 + 152 + + + + GR-L-501948729 + 0 + + + 789399cf-2f9b-0e28-fae2-39fb7da2af85 + + + 1 + 126 + 190 + + + + 2 + 100 + 190 + + + + GR-BE-G2-569000708 + 90 + + + 9a2479b6-0ee9-e1a5-09a4-39fb7da2af85 + + + 1 + 222.2 + 152 + + + + GR-NL-G3-1272157758 + -90 + + + c6517348-5a20-082a-de47-39fb7da2af85 + + + 1 + 763.8 + 244 + + + + GR-NL-Inj-XZE_ST23-435758727 + -90 + + + 87a1a7a2-7692-e053-30f4-39fb7da2af85 + + + 1 + 445.8 + 214 + + + + GR-L-412002467 + 0 + + + 126b9b98-0957-8c1d-6167-39fb7da2af85 + + + 1 + 757.8 + 204 + + + + 2 + 737.9229 + 204 + + + + GR-L-1648984860 + 0 + + + 9ba97fe9-1a9b-62e6-785d-39fb7da2af85 + + + 1 + 343.9583 + 244.7396 + + + + 2 + 335.7563 + 244 + + + + GR-SER-RLC-1230822986-763959145 + 270 + + + ab7515c4-6ca1-5747-fd53-39fb7da2af85 + + + 1 + 353.9583 + 244.7396 + + + + GR-L-805648696 + 0 + + + f48a3c56-8e3e-aca3-88f6-39fb7da2af85 + + + 1 + 363.9583 + 244.7396 + + + + 2 + 367.7708 + 244 + + + + GR-L-1977885975 + 0 + + + cbb01f94-c042-6779-07fb-39fb7da2af85 + + + 1 + 442 + 214 + + + + 2 + 438 + 213.9 + + + + GR-NL-G2-1540646227 + -90 + + + 8c0282f9-7de1-41bb-ca78-39fb7da2af85 + + + 1 + 763.8 + 204 + + + + GR-NL-Load_1-704664914 + -90 + + + 222ab4d4-8a49-06f3-ec97-39fb7da2af85 + + + 1 + 583.8 + 148 + + + + GR-BE-Line_6-2084691096 + 0 + + + 62ee083b-e703-4e52-6aa1-39fb7da2af85 + + + 1 + 269.875 + 234.1563 + + + + 2 + 335.7563 + 234.1563 + + + + GR-BE-Line_7-1366516707 + 0 + + + 160b8549-e559-e056-4128-39fb7da2af85 + + + 1 + 437.8854 + 244 + + + + 2 + 367.7708 + 243.4167 + + + + GR-NL-Line_5-1375941741 + 0 + + + e336f788-fbfd-0176-4249-39fb7da2af85 + + + 1 + 567.7958 + 93.92693 + + + + 2 + 437.8854 + 94 + + + + GR-NL-G1-145382758 + -90 + + + 327060bc-1576-7ee2-fdd3-39fb7da2af85 + + + 1 + 765.3542 + 191.8229 + + + + GR-BE-Line_3-1247633054 + 0 + + + fc9bd44d-54d6-eca6-0ba7-39fb7da2af85 + + + 1 + 321.9979 + 129.6474 + + + + 2 + 437.8854 + 130 + + + + GR-BE-TR2_1-1574014072 + 90 + + + d7ac5983-b49d-5ce2-f8e1-39fb7da2af85 + + + 1 + 250 + 110 + + + + GR-L-751811171 + 0 + + + 529bc239-186c-5ef9-ac0d-39fb7da2af85 + + + 1 + 759.3542 + 191.8229 + + + + 2 + 737.9229 + 191.8229 + + + + GR-BE-Line_1-1392653407 + 0 + + + 9f3fc709-7799-dc2a-fbc5-39fb7da2af85 + + + 1 + 437.8854 + 204 + + + + 2 + 335.7563 + 203.7292 + + + + GR-NL-Line_1-1770209197 + 0 + + + 8ce7df60-0510-5f4c-bcaf-39fb7da2af85 + + + 1 + 567.7958 + 129.6451 + + + + 2 + 437.8854 + 130 + + + + GR-L-1326432400 + 0 + + + 1cd51f72-e422-f42f-164b-39fb7da2af85 + + + 1 + 580 + 148 + + + + 2 + 568 + 147.9 + + + + GR-NL-Inj-XWI_GY11-486907852 + -90 + + + 5073a386-d357-79b8-a068-39fb7da2af85 + + + 1 + 447.8 + 100 + + + + GR-L-956945829 + 0 + + + 4cbecbba-54c6-3ce8-7659-39fb7da2af85 + + + 1 + 444 + 100 + + + + 2 + 438 + 99.9 + + + + GR-NL-Line_4-1027009775 + 0 + + + 9f578172-e608-ca43-3663-39fb7da2af85 + + + 1 + 643.9958 + 214.3137 + + + + 2 + 437.8854 + 215.2473 + + + + GR-NL-Line_3-1522111161 + 0 + + + 4556aeff-1a4a-fd71-11be-39fb7da2af85 + + + 1 + 643.9958 + 243.4174 + + + + 2 + 437.8854 + 244 + + + + GR-BE-Line_4-687714713 + 0 + + + b668f530-d16f-498c-fc96-39fb7da2af85 + + + 1 + 322 + 158 + + + + 2 + 438 + 158 + + + + GR-L-2070108204 + 0 + + + d9d4abdd-1ed5-376b-225f-39fb7da2af85 + + + 1 + 580 + 166 + + + + 2 + 568 + 166 + + + + GR-NL-Line_2-1694985016 + 0 + + + 7fee9664-b00b-5cc0-91ed-39fb7da2af85 + + + 1 + 567.7958 + 157.4271 + + + + 2 + 437.8854 + 157.4271 + + + + GR-BE-Line_2-1618371762 + 0 + + + 4a309c3b-78a7-8ca8-9e59-39fb7da2af85 + + + 1 + 269.875 + 215.6354 + + + + 2 + 335.7563 + 215.6354 + + + + GR-NL-Load_2-199595741 + -90 + + + bff6eeab-84d4-9448-ae75-39fb7da2af85 + + + 1 + 583.8 + 166 + + + + GR-BE-Line_5-1020037632 + 0 + + + eeadbd0c-bd85-8d39-a0ea-39fb7da2af86 + + + 1 + 321.9979 + 96.57291 + + + + 2 + 437.8854 + 96.57291 + + + + G-Link-354408541 + 0 + + + 67d1141f-e4e8-58f6-b501-39fb7da2af86 + + + 1 + 260 + 110 + + + + 2 + 290.931 + 110 + + + + 3 + 290.931 + 109.8021 + + + + 4 + 321.9979 + 109.8021 + + + + G-Link-354408554 + 0 + + + 5a037b6f-92a5-4dea-741c-39fb7da2af86 + + + 1 + 284 + 156 + + + + 2 + 283.2062 + 156 + + + + 3 + 283.2062 + 150.8125 + + + + 4 + 321.9979 + 150.8125 + + + + G-Link-354409027 + 0 + + + 69737775-5a6c-5ac7-1953-39fb7da2af86 + + + 1 + 702.623 + 114.0501 + + + + 2 + 720.7014 + 114.0501 + + + + 3 + 720.7014 + 181.2396 + + + + 4 + 737.9229 + 181.2396 + + + + G-Link-354408595 + 0 + + + 1ff716d4-9ec2-de73-6bbc-39fb7da2af86 + + + 1 + 220 + 216 + + + + 2 + 200.1557 + 216 + + + + 3 + 200.1557 + 215.6354 + + + + 4 + 179.9167 + 215.6354 + + + + G-Link-354409049 + 0 + + + 51fa4360-9e0a-f493-e002-39fb7da2af86 + + + 1 + 678.0001 + 215.9651 + + + + 2 + 661.1736 + 215.9651 + + + + 3 + 661.1736 + 206.375 + + + + 4 + 643.9958 + 206.375 + + + + G-Link-354408484 + 0 + + + bb421b7f-ac60-6476-5e51-39fb7da2af86 + + + 1 + 302 + 148 + + + + 2 + 302.7938 + 148 + + + + 3 + 302.7938 + 145.5208 + + + + 4 + 239.9771 + 145.5208 + + + + G-Link-354409038 + 0 + + + 0c305168-ac23-44c5-f406-39fb7da2af86 + + + 1 + 697.9999 + 216.0349 + + + + 2 + 717.9335 + 216.0349 + + + + 3 + 717.9335 + 215.6354 + + + + 4 + 737.9229 + 215.6354 + + + + G-Link-354408421 + 0 + + + 9578ce66-d8aa-97b1-e45e-39fb7da2af86 + + + 1 + 240 + 110 + + + + 2 + 210.0364 + 110 + + + + 3 + 210.0364 + 109.9902 + + + + 4 + 179.9167 + 109.9902 + + + + G-Link-354408513 + 0 + + + 30273e63-d259-660a-e2e3-39fb7da2af86 + + + 1 + 146 + 190 + + + + 2 + 162.7188 + 190 + + + + 3 + 162.7188 + 189.1771 + + + + 4 + 179.9167 + 189.1771 + + + \ No newline at end of file diff --git a/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/CGM/20210325T1530Z_1D_ASSEMBLED_SV_001.xml b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/CGM/20210325T1530Z_1D_ASSEMBLED_SV_001.xml new file mode 100644 index 0000000000..457f503685 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/CGM/20210325T1530Z_1D_ASSEMBLED_SV_001.xml @@ -0,0 +1,685 @@ + + + + 2021-03-25T23:16:28Z + 2021-03-25T15:30:00Z + CGMES Conformity Assessment Test Configuration. The Test Configuration is owned by ENTSO-E and is provided by ENTSO-E “as it is”. To the fullest extent permitted by law, ENTSO-E shall not be liable for any damages of any kind arising out of the use of the model (including any of its subsequent modifications). ENTSO-E neither warrants, nor represents that the use of the model will not infringe the rights of third parties. Any use of the model shall include a reference to ENTSO-E. ENTSO-E web site is the only official source of information related to the model. + http://iec.ch/TC57/ns/CIM/StateVariables-EU/3.0 + 001 + http://elia.be/CGMES + + + + 487.9077 + 231.3542 + + + + -9.052585 + 223.2214 + + + + TopoIsland 1 + + + + + + + + + + + + + + + + + 48c763a1-4adf-43ee-a27e-2543b29549b6 + + + -27.0286 + 120.7887 + + + + 10 + 10 + + + + 200 + 90 + + + + 99.85394 + -24.87515 + + + + 14.06748 + -63.95825 + + + + 90 + 280 + + + + -168.0146 + 52.38079 + + + + 340.9585 + 115.5 + + + + -118 + -78.16264 + + + + -103.7413 + 11.31944 + + + + -8.953211 + 67.2335 + + + + -3.786605 + 38.5127 + + + + -89.66164 + 81.66273 + + + + -27.0286 + 120.7887 + + + + -83.18928 + 1.501529 + + + + 17 + + + + 19.19087 + -87.50481 + + + + 120.2376 + -9.558035 + + + + -150 + -83.296 + + + + -103.7413 + 11.31944 + + + + 340.7323 + 21.987 + + + + 83.18928 + -1.501529 + + + + -559.3295 + -88.78947 + + + + 339.568 + 412.6039 + + + + 0.8637645 + 24.17813 + + + + 59.96792 + -5.537291 + + + + -140 + -77.743 + + + + 0 + -52.79673 + + + + 200 + 50 + + + + 339.5112 + 414.0277 + + + + -438.7081 + -11.90898 + + + + 1.871276 + -59.39729 + + + + -14.06748 + 63.95825 + + + + 110.1824 + -179.3575 + + + + -2.702116 + 224.3178 + + + + 339.6498 + 410.7063 + + + + 168.3565 + -46.45348 + + + + 84.71166 + 3.317878 + + + + -53.59776 + 9.173759 + + + + -19.81423 + 110.0211 + + + + 27.0286 + -120.7887 + + + + -90 + 74.17992 + + + + 0 + -9.88107 + + + + 339.5023 + 414.3389 + + + + -11.03524 + 223.2396 + + + + -20.16267 + 224.6702 + + + + 1 + + + + 409.4445 + 209.9772 + + + + 5 + + + + 106.0121 + 2.926857 + + + + 14.06748 + -63.95825 + + + + 439.885 + 39.85126 + + + + -81.35162 + 6.659446 + + + + -14.06748 + 63.95825 + + + + -30.96664 + -100.4366 + + + + -15.51589 + 223.658 + + + + 14 + + + + 15.82242 + -70.92072 + + + + 343.3294 + 10.3622 + + + + -408.2798 + -179.2365 + + + + 339.5562 + 412.8738 + + + + 103.7413 + -11.31944 + + + + 0 + 16.0335 + + + + -83.18928 + 1.501529 + + + + -116.2994 + 17.08473 + + + + 83.18928 + -1.501529 + + + + -109.4835 + 183.1439 + + + + 1 + 0 + + + + -99.85394 + 18.31695 + + + + -99.85394 + 24.87515 + + + + 17 + + + + -2.085326 + 62.96101 + + + + 1 + + + + 10 + + + + 8 + + + + 10 + + + + -19.1098 + 226.7108 + + + + -0.8548296 + -24.05666 + + + + 8.953211 + -67.2335 + + + + 0 + -330.75 + + + + -86.36749 + 27.25996 + + + + 118 + 78.16264 + + + + 8.953211 + -67.2335 + + + + 33.00131 + -131.1585 + + + + 27.0286 + -120.7887 + + + + 103.7413 + -11.31944 + + + + -8.953211 + 67.2335 + + + + 1 + + + + 90 + -74.17992 + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + + true + + + \ No newline at end of file diff --git a/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/CGM/20210325T1530Z_1D_ASSEMBLED_TP_001.xml b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/CGM/20210325T1530Z_1D_ASSEMBLED_TP_001.xml new file mode 100644 index 0000000000..b7a60a0ef0 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/CGM/20210325T1530Z_1D_ASSEMBLED_TP_001.xml @@ -0,0 +1,389 @@ + + + + 2021-03-25T23:16:28Z + 2021-03-25T15:30:00Z + CGMES Conformity Assessment Test Configuration. The Test Configuration is owned by ENTSO-E and is provided by ENTSO-E “as it is”. To the fullest extent permitted by law, ENTSO-E shall not be liable for any damages of any kind arising out of the use of the model (including any of its subsequent modifications). ENTSO-E neither warrants, nor represents that the use of the model will not infringe the rights of third parties. Any use of the model shall include a reference to ENTSO-E. ENTSO-E web site is the only official source of information related to the model. + http://elia.be/CGMES + http://iec.ch/TC57/ns/CIM/Topology-EU/3.0 + 001 + + + + + BE_TR_BUS4 + + + 99b219f3-4593-428b-a4da-124a54630178 + + + + + + BE_TR_BUS2 + + + e44141af-f1dc-44d3-bfa4-b674e5c953d7 + + + + + + BE-Busbar_5 + BGENT_72; this is old code + BE-B_5 + + + f96d552a-618d-4d0c-a39a-2dea3c411dee + + + + + + NL-Busbar_2 + NAMST_21; this is the old code + NL-B_2 + + + afddd60d-f7e6-419a-a5c2-be28d29beaf9 + + + + + + BE-Busbar_6 + BBRUS151; BGENT_51 + BE-B_6 + + + 5c74cb26-ce2f-40c6-951d-89091eb781b6 + + + + + + N1230992195 + NAMST_11; old UCTE Name + NL-_B_1 + + + 81b0e447-181e-4aec-8921-f1dd7813bebc + + + + + + TN_Border_MA11 + RG CE; 400 kV; OHL (2) + XKA_MA11 + + + 1a4d0f02-6adb-4fa2-a828-b0366497ae5a + + + + + + TN_Border_GY11 + RG CE; 400 kV; OHL + XWI_GY11 + + + eff86931-991c-4f6f-b5d6-75dad40e0a12 + + + + + + TN_Border_ST23 + RG CE; 220 kV; OHL + XZE_ST23 + + + ebd2d2fd-3cfc-466d-a542-104ce0e8fd4d + + + + + + TN_Border_AL11 + RG CE; 400 kV; OHL (2) + XCA_AL11 + + + 994d58d1-48c9-477d-8ba4-ec143e714ba1 + + + + + + N1230822413 + + + 6bdc33de-d027-49b7-b98f-3b3d87716615 + + + + + + TN_Border_ST24 + RG CE; 220 kV; OHL + XZE_ST24 + + + 88f1e099-9930-4ad2-a477-f301e35ca9a4 + + + + + + BE-Busbar_2 + BBRUS_21; this is UCTE code + BE-B_2 + + + f70f6bad-eb8d-4b8f-8431-4ab93581514e + + + + + + BE-Busbar_4 + BGENT_71; This is the old UCTE code from UCTE DEF + BE-B_4 + + + a81d08ed-f51d-4538-8d1e-fb2d0dbd128e + + + + + + Series Compensator + + + 23b65c6b-2351-4673-89e9-1895c7291543 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/CGM/20210325T1530Z_1D_BE_EQ_001.xml b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/CGM/20210325T1530Z_1D_BE_EQ_001.xml new file mode 100644 index 0000000000..36b39d107e --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/CGM/20210325T1530Z_1D_BE_EQ_001.xml @@ -0,0 +1,1806 @@ + + + + 2021-03-25T23:16:27Z + 2021-03-25T15:30:00Z + CGMES Conformity Assessment Test Configuration. The Test Configuration is owned by ENTSO-E and is provided by ENTSO-E “as it is”. To the fullest extent permitted by law, ENTSO-E shall not be liable for any damages of any kind arising out of the use of the model (including any of its subsequent modifications). ENTSO-E neither warrants, nor represents that the use of the model will not infringe the rights of third parties. Any use of the model shall include a reference to ENTSO-E. ENTSO-E web site is the only official source of information related to the model. + http://elia.be/CGMES + http://iec.ch/TC57/ns/CIM/CoreEquipment-EU/3.0 + 001 + + http://iec.ch/TC57/ns/CIM/ShortCircuit-EU/3.0 + + + BE LoadArea + 516c5401-f9f7-4cf8-89b5-853f9cd75f29 + + + ELIA-Anvers SubLoadArea + + 0051c797-996b-42b8-86b7-3176e9b52cd3 + + + ELIA-Brussels SubLoadArea + + f217eb1a-92c4-4e9e-ad95-8ac8e527f0fc + + + BE + 7bf89875-1476-4d1a-a56d-a2965cce3575 + + + ELIA-Brussels + + 61378219-a236-4070-bbec-4e30a6ac848d + + + PP_Brussels + PP_Brussels + + 37e14a0f-5e34-4647-a062-8bfd9305fa9d + + + ELIA-Anvers + + 02047c0b-b5a4-4e0d-bae6-fc5437a55e74 + + + Anvers + Anvers + + 87f7002b-056f-4a6a-a872-1744eea757e3 + + + 225.0 + 247.5 + 202.5 + + + b10b171b-3bc5-4849-bb1f-61ed9ea1ec7c + + + BE-Busbar_3 + BE-B_3 + + bf851342-832e-4ea2-b2ad-b09729b3af23 + + + BE-Busbar_3 + + 5caf27ed-d2f8-458a-834a-6b3193a982e6 + + + BE-Busbar_3_Busbar_Section + 1 + + + 62fc0a4e-00aa-4bf7-b1a0-3a5b2c0b5492 + + + 380.0 + 418 + 342 + + + 469df5f7-058f-4451-a998-57a48e8a56fe + + + BE-Busbar_1 + BE-B_1 + + 4836f99b-c6e9-4ee8-a956-b1e3da882d46 + + + BE-Busbar_1 + + 64901aec-5a8a-4bcb-8ca7-a3ddbfcd0e6c + + + BE-Busbar_1_Busbar_Section + 1 + + + fa9e0f4d-8a2f-45e1-9e36-3611600d1c94 + + + 21.0 + 23.1 + 18.9 + + + 929ba893-c9dc-44d7-b1fd-30834bd3ab85 + + + BE-Busbar_5 + BE-B_5 + + f51dce2d-2dc6-4cfe-9486-f9d9a5b0fe33 + + + 110.0 + 121 + 99 + + + 8bbd7e74-ae20-4dce-8780-c20f8e18c2e0 + + + BE-Busbar_6 + BE-B_6 + + 1695eb20-9044-4133-a3fd-2147f55f170d + + + BE-Busbar_6 + + 5000 + 364c9ca2-0d1d-4363-8f46-e586f8f66a8c + + + BE-Busbar_6_Busbar_Section + 1 + + + a1b46f53-86f1-497e-bf57-c3b6268bcd6c + + + 225.0 + 247.5 + 202.5 + + + 69ef0dbd-da79-4eef-a02f-690cb8a28361 + + + BE-Busbar_2 + BE-B_2 + + ae99bd74-26b1-443a-b1a5-656320283a36 + + + BE-Busbar_2 + + ef45b632-3028-4afe-bc4c-a4fa323d83fe + + + BE-Busbar_2_Busbar_Section + 1 + + + 800ada75-8c8c-4568-aec5-20f799e45f3c + + + 10.5 + 11.55 + 9.45 + + + 4ba71b59-ee2f-450b-9f7d-cc2f1cc5e386 + + + BE-Busbar_4 + BE-B_4 + + 0f074167-d8ad-40ed-b0fa-7dc7e9f5f77c + + + BE-Busbar_4 + + fd649fe1-bdf5-4062-98ea-bbb66f50402d + + + BE-Busbar_4_Busbar_Section + 1 + + + 65b8c937-9b25-4b9e-addf-602dbc1337f9 + + + Series Compensator + + af14c8ab-eb51-42be-89cb-abbcf37e20a3 + + + BE-Inj-XZE_ST23 + Eq_Injection + BE-I-XZE_ST2 + + + 0 + 0 + 0 + false + 0 + 0 + 0 + 87ea56f3-962a-427a-85d6-13b1f9295174 + + + BE-Inj-XCA_AL11 + Eq_Injection + BE-I-XCA_AL1 + + + 0 + 0 + 0 + false + 0 + 0 + 0 + 24413233-26c3-4f7e-9f72-4461796938be + + + BE-Inj-XZE_ST24 + Eq_Injection + BE-I-XZE_ST2 + + + 0 + 0 + 0 + false + 0 + 0 + 0 + f7f61a91-eca2-4492-8bd7-9ec2b28fc837 + + + BE-Inj-XWI_GY11 + Eq_Injection + BE-I-XWI_GY1 + + + 0 + 0 + 0 + false + 0 + 0 + 0 + 6f014d4c-c1b0-4eed-8d6d-bae3bc87afcf + + + BE-Inj-XKA_MA11 + Eq_Injection + BE-I-XKA_MA1 + + + 0 + 0 + 0 + false + 0 + 0 + 0 + 14b352cb-5574-40c5-bf83-0ed3574554a3 + + + container of BE-Line_6 + + cc4b99a5-e20d-407c-9d8e-a682b9723613 + + + BE-Line_6 + TYNDP project BE-4; map reference 567 + BE-L_6 + true + + + 100 + 0.0001476549 + 2.00119E-05 + 0.00012 + 0.00012 + 5.203 + 15 + 160 + 71 + 213 + ffbabc27-1ccd-4fdc-b037-e341706c8d29 + + + Limits at Port 1 + Limit-Ratings for branch BE-Line_6 at Port 1 + + cb5b5011-9f6c-4af2-93f9-26ae7e30c8db + + + PATL + + + 1312 + d1de5f7a-b11d-4c34-9628-1ce03b8f1989 + + + TATL + + + 500 + 6696b2a8-77fa-43a0-a019-f33287b03071 + + + Limits at Port 2 + Limit-Ratings for branch BE-Line_6 at Port 2 + + 30cbcb48-f02e-4791-83ab-486d7688874c + + + PATL + + + 1312 + fc61a99c-b255-4f1e-96eb-16198b2fbfc3 + + + TATL + + + 500 + 2c987138-9078-4f6a-b4f9-93d159b04fae + + + BE-Line_1 + 10T-AT-DE-000061 + 10T-AT-DE-000061 + BE-L_1 + false + + + 22 + 2.62637E-05 + 8.2938E-05 + 3.08E-05 + 3.08E-05 + 2.2 + 6.6 + 160 + 68.2 + 204.6 + 17086487-56ba-4979-b8de-064025a6b4da + + + Limits at Port 2 + Limit-Ratings for branch BE-Line_1 at Port 2 + + a5b37323-8f73-449a-8931-f73193d95587 + + + PATL + + + 1500 + a2efb67d-28de-4243-aa59-8c297122b4f6 + + + TATL + + + 500 + 718557d0-e400-47e7-ab87-0c466237672e + + + Limits at Port 1 + Limit-Ratings for branch BE-Line_1 at Port 1 + + aef3c15e-c567-476a-83ad-3fe46c817fb2 + + + PATL + + + 1500 + fbfb079a-f42a-49e4-a1cd-10a17b44e443 + + + TATL + + + 500 + 9dd1c4cf-344a-4174-8000-430434090202 + + + BE-Line_7 + 10T-AT-DE-000061 + 10T-AT-DE-000061 + BE-L_7 + false + + + 23 + 2.89027E-05 + 2.1677E-05 + 5.75E-05 + 5.75E-05 + 4.6 + 13.8 + 160 + 69 + 207 + a16b4a6c-70b1-4abf-9a9d-bd0fa47f9fe4 + + + Limits at Port 1 + Limit-Ratings for branch BE-Line_7 at Port 1 + + 56c9ef56-9268-47e6-bed2-044324c03830 + + + PATL + + + 1062 + a1c57d7a-447a-4a1a-b69c-94653ca4756e + + + TATL + + + 500 + 05715ad5-5667-41e9-8eec-b7d20dac0921 + + + Limits at Port 2 + Limit-Ratings for branch BE-Line_7 at Port 2 + + 00672e1a-599a-44f3-aeaa-5a3c99c29ba1 + + + PATL + + + 1062 + 8a04fac9-7f86-47e7-b0d4-723b413113da + + + TATL + + + 500 + f772a663-0557-4de1-94ca-a0fc86ada89f + + + BE-Line_5 + 10T-AT-DE-00009W + 10T-AT-DE-00009W + BE-L_5 + false + + + 35 + 3.40863E-05 + 6.59734E-05 + 4.2E-05 + 4.2E-05 + 0.42 + 1.26 + 160 + 6.3 + 18.9 + b18cd1aa-7808-49b9-a7cf-605eaf07b006 + + + Limits at Port 2 + Limit-Ratings for branch BE-Line_5 at Port 2 + + b639998f-3a5c-496d-96fd-759131b6c307 + + + PATL + + + 1876 + c27027b3-61e5-47ae-8f25-140808039152 + + + TATL + + + 500 + a3b55712-7319-4725-aaef-d89be09e8e81 + + + Limits at Port 1 + Limit-Ratings for branch BE-Line_5 at Port 1 + + 4af71c73-fd57-45d2-aa83-f1b52fcc3bee + + + PATL + + + 1876 + 7f32e38e-73e1-4699-b00c-c9ce63f5faa4 + + + TATL + + + 500 + cd1641e0-7dbd-4db2-8292-e87d65e2eeb5 + + + BE-Line_4 + to be connected to the boundary set + BE-L_4 + false + + + 40 + 6.28319E-05 + 2.51956E-05 + 4E-05 + 4E-05 + 0.24 + 0.72 + 160 + 2 + 6 + ed0c5d75-4a54-43c8-b782-b20d7431630b + + + Limits at Port 2 + Limit-Ratings for branch BE-Line_4 at Port 2 + + b93ba071-c1d4-4c7a-960d-48dcd5d7c389 + + + PATL + + + 1226 + e17d44b1-c678-40a3-a736-9f77781fb33e + + + TATL + + + 500 + 770404e9-b224-4cda-b9bf-8b23d4fa7822 + + + Limits at Port 1 + Limit-Ratings for branch BE-Line_4 at Port 1 + + 67fa7320-7477-47e9-89ff-e3a407644aef + + + PATL + + + 1226 + 2560b6d7-ee39-4f18-ba27-9e9ec505bc9e + + + TATL + + + 500 + ec82058b-5d1a-4f8d-a0e6-fa4c3940b273 + + + container of BE-Line_2 + + b5d6ed2b-c961-4521-8aef-b943d7dc6c15 + + + BE-Line_2 + 10T-AT-DE-00010A + 10T-AT-DE-00010A + BE-L_2 + true + + + 45 + 6.64447E-05 + 4.24115E-05 + 6.75E-05 + 6.75E-05 + 1.935 + 3.195 + 160 + 34.2 + 102.6 + b58bf21a-096a-4dae-9a01-3f03b60c24c7 + + + Limits at Port 2 + Limit-Ratings for branch BE-Line_2 at Port 2 + + 7168dee1-15a7-4444-839f-feef071e956d + + + PATL + + + 1574 + e8b7722a-97b5-4831-b944-89c0a63a96fa + + + TATL + + + 500 + 3ecb9d91-8fdc-4161-81a1-8c5cedd66844 + + + Limits at Port 1 + Limit-Ratings for branch BE-Line_2 at Port 1 + + ecc2f619-5716-4af0-9d76-0631a3832e4f + + + PATL + + + 1574 + 4602330f-46c5-41d0-bbbe-4b207ff06dbd + + + TATL + + + 500 + 7b7bb979-e984-4a1a-a977-6f78ddcbc9d3 + + + BE-Line_3 + 10T-AT-DE-00008Y + 10T-AT-DE-00008Y + BE-L_3 + false + + + 30 + 2.92168E-05 + 0.000149854 + 6E-05 + 6E-05 + 1.05 + 3.15 + 160 + 12 + 36 + 78736387-5f60-4832-b3fe-d50daf81b0a6 + + + Limits at Port 2 + Limit-Ratings for branch BE-Line_3 at Port 2 + + 0acd95d7-aff7-41f6-aa8a-863c42f4bc36 + + + PATL + + + 1233.9 + 008c7f00-df41-430c-b94c-37aa08c2e993 + + + TATL + + + 500 + 34d77ffb-666c-4651-9e25-956af0979088 + + + Limits at Port 1 + Limit-Ratings for branch BE-Line_3 at Port 1 + + 99941f7a-11bb-4a7b-928b-ef8145db7799 + + + PATL + + + 1233.9 + e68e3e07-101e-42a7-9d85-1d4b7d284ca3 + + + TATL + + + 500 + 601df66c-7ba7-4ec8-8f8d-a30315f1a88f + + + L-1230804819 + Eq_Injection + L-1230804819 + false + + + + b1480a00-b427-4001-a26c-51954d2bb7e9 + + + ELIA-AnversconfLoadGr + + 62b480de-1bcd-4771-b24d-e2ca1dac5610 + + + L-1230804819 + false + 0 + 0 + 1 + 0 + 0 + 1 + 8e3e7a69-a64a-43a8-906e-82cc63edfcd3 + + + BE-Load_1 + Electrabel + BE-L_1 + false + + + cb459405-cc14-4215-a45c-416789205904 + + + ELIA-BrusselsconfLoadGr + + 12ee1483-1cbf-47c6-8d8a-772053bb6ff2 + + + BE-Load_2 + EVN + BE-L_2 + false + + + 1c6beed6-1acf-42e7-ba55-0cc9f04bddd8 + + + SER-RLC-1230822986 + + + 0 + 0 + true + 500 + 250 + -31.83099 + -31.83099 + df16b3dd-c905-4a6f-84ee-f067be86f5da + + + SER-RLC-1230822986 + + 653b4e65-a657-40fc-b987-c9e28104410f + + + PATL + + + 500 + 9fb75b67-c505-4f24-8b92-5ac1a1a1fee1 + + + SER-RLC-1230822986 + + 38c765fb-5707-404a-87f6-ace386edce11 + + + PATL + + + 500 + c1b970ed-f1f6-432d-8d86-443988130e0d + + + BE_S1 + shunt with 4 sections + BE_S1 + false + + + true + 1 + 110 + 1 + 0 + 0.02479339 + 0 + 0 + d771118f-36e9-4115-a128-cc3d9ce3e3da + + + BE_S1 + + + 4d50f86d-0d12-4ca3-9430-56bb05f9eee6 + + + BE_S2 + another shunt + BE_S2 + false + + + true + 5 + 380 + 1 + 002b0a40-3957-46db-b84a-30420083558f + + + 0.0003459834 + 0 + 1.09E-05 + 1.09E-05 + 1 + + + + 0.0001729917 + 0 + 2.18E-06 + 2.18E-06 + 2 + + + + 0.0001389889 + 0 + 2.18E-06 + 2.18E-06 + 3 + + + + 6.897507E-05 + 0 + 2.18E-06 + 2.18E-06 + 4 + + + + 3.49723E-05 + 0 + 2.18E-06 + 2.18E-06 + 5 + + + + BE_S2 + + + bee06911-8d5c-44c4-b2d2-5c22a461b5a0 + + + SVC-1230797516 + + + 5062.5 + -5062.5 + 0.102 + 3c69652c-ff14-4550-9a87-b6fdaccbb5f4 + + + SVC-1230797516 + + + caf65447-3cfb-48d7-aaaa-cd9af3d34261 + + + BE-G2 + Machine + BE-G2 + false + + + 0.85 + 300 + 21 + + true + 0 + 0 + 0 + 200 + -200 + 0 + 100 + 0 + 0 + 0 + 0.2 + 2 + 0 + + + 0 + 0.13 + 0.17 + 550ebe0d-f2b2-48c1-991f-cebea43a21aa + + + Gen-1229753024 + Machine + false + + + 200 + 50 + 255 + 5b7a4d43-09ec-4033-882d-64a76d557631 + + + BE-G1 + Machine + BE-G1 + false + + + 0.85 + 300 + 10.5 + + true + 0 + 0 + 0 + 300 + -300 + 0 + 50 + 0 + 0 + 0 + 0.2 + 2 + 0 + + + 0 + 0.13 + 0.171 + + 3a3b27be-b18b-4385-b557-6735d733baf0 + + + Gen-1229753060 + Machine + false + + + 200 + -100 + 255 + 18993b11-2966-4bce-bab9-d86103f83b53 + + + BE-G1CapabilityCurveCapabilityCu + + + + + 59ff1e53-0e1a-44c0-ada5-7a0b3a660170 + + + 0 + -300 + 300 + + + + 200 + -200 + 200 + + + + -100 + -200 + 200 + + + + BE-TR2_2 + This is T2 in the center + BE-T_2 + false + + false + false + b94318f6-6d24-4f56-96b9-df2531ad6543 + + + BE-TR2_2 + 1 + false + 0 + 0 + + + 0 + 0 + + 0 + 0 + 0 + 0.8228 + 0.8228 + 650 + 220 + 11.13888 + 11.13888 + + 3c59d1b0-1ee9-4ca3-9086-4fe102b51b21 + + + BE-TR2_2 + 2 + false + 0 + 0 + + + 0 + 0 + + 0 + 0 + 0 + 0 + 0 + 650 + 110 + 0 + 0 + + ba56158e-0c51-448d-999b-44cb0b3cebf5 + + + BE-TR2_2 + 25 + 1 + true + 13 + 220 + 10 + + 1.25 + 11.88148 + 11.13888 + 30 + 36b83adb-3d45-4693-8967-96627b5f9ec9 + + + Limits at Port 1 + Limit-Ratings for branch BE-TR2_2 at Port 1 + + 88aa13e4-d3fe-4c47-9e47-39f8bb805e73 + + + PATL + + + 1705.808 + 0d73c833-c12b-4932-9fe3-f18ca522f331 + + + Limits at Port 2 + Limit-Ratings for branch BE-TR2_2 at Port 2 + + d6f4f557-12b9-4b53-9e99-2d2ed8cd11dd + + + PATL + + + 3411.617 + d82cbf13-135c-407f-92b2-96d755a88932 + + + BE-TR2_1 + T1 that is after maintenance + BE-T_1 + false + + false + false + a708c3bc-465d-4fe7-b6ef-6fa6408a62b0 + + + BE-TR2_1 + 1 + false + 0 + 0 + + + 0 + 0 + + 0 + 0 + 0 + 2.707692 + 2.72 + 650 + 400 + 14.5189 + 14.5166 + + bf76ac9d-0144-48f5-a24a-34ae15a455fb + + + BE-TR2_1 + 2 + false + 0 + 0 + + + 0 + 0 + + 0 + 0 + 0 + 0 + 0 + 650 + 110 + 0 + 0 + + e22f3c30-63f5-47bf-a8c4-fee2483d426c + + + BE-TR2_1 + 25 + 1 + true + 13 + 400 + 10 + + 1.25 + 16.93872 + 14.5189 + 63454a73-f439-45bb-951a-e7b193986571 + + + Limits at Port 1 + Limit-Ratings for branch BE-TR2_1 at Port 1 + + 0b7c4239-3c1b-438e-994d-f2a402ba743c + + + PATL + + + 938.1946 + 5e35109b-9feb-4c06-a92c-b777783863c4 + + + Limits at Port 2 + Limit-Ratings for branch BE-TR2_1 at Port 2 + + 3b5aa2ae-a3fb-4ea6-9941-f7ccd2c6d925 + + + PATL + + + 3411.617 + d6da94f0-80dc-4163-82ce-2e19355196ab + + + BE-TR2_3 + This is free description + BE-T_3 + false + + false + false + e482b89a-fa84-4ea9-8e70-a83d44790957 + + + BE-TR2_3 + 1 + false + 0 + 0 + + + -8.30339E-05 + 0 + + 1.73295E-05 + 0 + 0 + 0.104711 + 0.104711 + 250 + 110.3438 + 5.843419 + 5.843419 + + f58281c5-862a-465e-97ec-d809be6e24ab + + + BE-TR2_3 + 2 + false + 0 + 0 + + + 0 + 0 + + 0 + 0 + 0 + 0 + 0 + 250 + 10.5 + 0 + 0 + + 35651e25-a77a-46a1-92f4-443d6acce90e + + + BE-TR2_3 + 33 + 1 + true + 17 + 10.5 + 14 + 0.8 + + 83cc66dd-8d93-4a2c-8103-f1f5a9cf7e2e + + + Limits at Port 2 + Limit-Ratings for branch BE-TR2_3 at Port 2 + + 40b75fae-2597-40df-98d2-8a0d83c238fd + + + PATL + + + 13746.44 + 48efd7e4-bd22-4521-8170-0ff15c14b9a1 + + + Limits at Port 1 + Limit-Ratings for branch BE-TR2_3 at Port 1 + + e40d809b-2f3f-4866-817d-7acec0fde34f + + + PATL + + + 1308.072 + fc604ec7-5977-4d5a-82bc-6bf7dee6ef8f + + + BE-TR3_1 + new in 2015 + BE-T_1 + + false + 84ed55f4-61f5-4d9d-8755-bba7b877a246 + + + BE-TR3_1 + 1 + false + + + -2.4375E-06 + -2.4375E-06 + + 0 + 0 + 0 + 0.898462 + 0.898462 + 650 + 400 + 17.20413 + 17.23077 + + 5f68a129-d5d8-4b71-9743-9ca2572ba26b + + + BE-TR3_1 + 2 + false + + + 0 + 0 + + 0 + 0 + 0 + 0.323908 + 0.323908 + 650 + 220 + 5.949086 + 5.956923 + + e1f661c0-971d-4ce5-ad39-0ec427f288ab + + + BE-TR3_1 + 3 + false + + + 0 + 0 + + 0 + 0 + 0 + 0.013332 + 0.013332 + 650 + 21 + 0.059978 + 0.061062 + + 2e21d1ef-2287-434c-a767-1ca807cf2478 + + + BE-TR3_1 + 33 + 1 + true + 17 + 220 + 17 + 0.625 + + fe25f43a-7341-446e-a71a-8ab7119ba806 + + + Limits at Port 3 + Limit-Ratings for branch BE-TR3_1 at Port 3 + + f4fb6a66-b9f6-4c71-bdd2-7e97938d1fe1 + + + PATL + + + 17870.37 + f660694a-682f-4e2e-b60c-1bab1a924b79 + + + Limits at Port 1 + Limit-Ratings for branch BE-TR3_1 at Port 1 + + b655ab41-8bc0-4bd3-a28c-cf9048e32b4a + + + PATL + + + 938.1946 + 61591ef6-b049-4188-b693-0a279b85e374 + + + Limits at Port 2 + Limit-Ratings for branch BE-TR3_1 at Port 2 + + a2f11542-aeb8-4d7c-9594-25ac63e148bb + + + PATL + + + 1705.808 + 2831d93a-f53c-44b8-aa34-54e7a04a34c4 + + + 21.00 kV + Base Voltage Level + 21.00 + 21 + 1cefd53a-79bd-4ad4-aa9a-5a4ad0191ce2 + + + 10.50 kV + Base Voltage Level + 10.50 + 10.5 + 862a4658-6b03-4550-9de2-b5c413912b75 + + + 110.00 kV + Base Voltage Level + 110.00 + 110 + 00b17311-075f-48f6-a79b-597f42af4694 + + + Terminal + 1 + + + + 5a7b80f3-eeb3-4253-a792-5157c0946b15 + + + Terminal + 2 + + + + 0ac86078-8267-4fd9-b6c2-27984975ffcc + + + Terminal + 1 + + + + 2ba1ad70-3533-402d-8686-f3bcce2c2e82 + + + Terminal + 2 + + + + b30ac237-4ce9-4869-8562-a07aaae1a7fa + + + Terminal + 3 + + + + e754f4c1-6aa0-43d2-98cb-ecf5ba12077b + + + Terminal + 1 + + + + 056b689f-1dab-48b3-8ac5-4eb11ca05d84 + + + Terminal + 2 + + + + 53fd6693-57e6-482e-8fbe-dcf3531a7ce0 + + + Terminal + 1 + + + + b9376bea-c75d-49f3-94ca-6a71fa0086a5 + + + Terminal + 1 + + + + 05a17350-55f5-4a00-9a50-8c0048a25495 + + + Terminal + 2 + + + + a4d42d33-ae54-4fe9-ad59-f30da0dfb809 + + + Terminal + 1 + + + + 4bb5407b-b4a5-416c-80ad-1a778ada2b9b + + + Terminal + 2 + + + + 70d962fb-a492-4c36-8cad-b5c584df53bd + + + Terminal + 1 + + + + 1ef0715a-d5a9-477b-b6e7-b635529ac140 + + + Terminal + 1 + + + + d5e2e58e-ccf6-47d9-b3bb-3088eb7a9b6c + + + Terminal + 1 + + + + d238885e-d9b6-4edc-8567-6a68c605ed67 + + + Terminal + 1 + + + + 53072f42-f77b-47e2-bd9a-e097c910b173 + + + Terminal + 1 + + + + 57ae9251-c022-4c67-a8eb-611ad54c963c + + + Terminal + 2 + + + + 5b2c65b0-68ce-4530-85b7-385346a3b5e1 + + + Terminal + 2 + + + + 02a244ca-8bcb-4e25-8613-e948b8ba1f22 + + + Terminal + 1 + + + + 051d49ba-4360-4372-86bf-50eb8cf29778 + + + Terminal + 2 + + + + f9f29835-8a31-4310-9780-b1ad26f3cbb0 + + + Terminal + 1 + + + + c14d2036-72ec-4df3-b1b7-75d8afd9a1fe + + + Terminal + 2 + + + + 77f04391-aa23-49b6-b3e9-6089130bb5d5 + + + Terminal + 1 + + + + 699545b9-82b9-4331-bc80-538d73b4ba56 + + + Terminal + 2 + + + + f3b56334-4638-49d3-a6a0-3f417422b8f5 + + + Terminal + 1 + + + + 231a4cf8-5069-4d53-96e4-e839f073f1ea + + + Terminal + 2 + + + + 1182d878-2eaa-4eec-91be-ce7b2b1e7f9a + + + Terminal + 1 + + + + 2de997a1-c43e-4d39-9e55-dfd7cf97121d + + + Terminal + 1 + + + + 4a7363a4-0b21-4f65-8bba-33e3a8f6bac3 + + + Terminal + 1 + + + + 22af3121-1a66-4546-bd80-4371f417c644 + + + Terminal + 1 + + + + b9539c41-d114-4280-8a54-8ecec398091e + + + Terminal + 1 + + + + c41978db-794b-4bae-953e-60fc519e87dd + + + Terminal + 1 + + + + cbdf1842-74ed-4fce-a5d4-0296c82cbc92 + + + Terminal + 2 + + + + 13dcec71-4b02-4c0c-93a7-8e16db4aa0b7 + + + Terminal + 1 + + + + 8171fc34-6891-40e0-92d1-da9f4ba69e26 + + + Terminal + 1 + + + + a036b765-1669-4f64-acd3-1e8fbd513312 + + + Terminal + 1 + + + + 67bb74f1-8620-4a32-9d7d-a44092d11d22 + + + Terminal + 1 + + + + beffa353-7d10-421d-9c08-036b744b1cee + + + PATL + PATL + + + 3e6aa424-8f24-49a5-bbe0-0868441e25ae + true + + + Limit Type TATL + TATL + 600 + + + 5df721fe-c60b-4b91-8c92-3013fbdb6a70 + false + + + BE + + + 50487bb8-be6d-42a8-9358-cc0bbfe6cfa7 + + + TieFlow + true + + + 6c38eb9d-d412-444a-9fec-64cc4278ea40 + + + TieFlow + true + + + 90c53a07-7065-4faa-b12a-f80185d56fa5 + + + TieFlow + true + + + aa336efd-8f54-49e6-8d9c-325e6e4d3184 + + + TieFlow + true + + + 6b5bc852-1dd3-49e2-89da-905b929a8cc3 + + + TieFlow + true + + + 29ab8015-51fe-431d-b1e2-7a147ffabac5 + + + BE-G2 + + + 84bf5be8-eb59-4555-b131-fce4d2d7775d + + + BE-G1 + + + 6ba406ce-78cf-4485-9b01-a34e584f1a8d + + \ No newline at end of file diff --git a/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/CGM/20210325T1530Z_1D_BE_GL_001.xml b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/CGM/20210325T1530Z_1D_BE_GL_001.xml new file mode 100644 index 0000000000..6e7773274d --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/CGM/20210325T1530Z_1D_BE_GL_001.xml @@ -0,0 +1,221 @@ + + + + 2021-03-25T23:16:28Z + 2021-03-25T15:30:00Z + CGMES Conformity Assessment Test Configuration. The Test Configuration is owned by ENTSO-E and is provided by ENTSO-E “as it is”. To the fullest extent permitted by law, ENTSO-E shall not be liable for any damages of any kind arising out of the use of the model (including any of its subsequent modifications). ENTSO-E neither warrants, nor represents that the use of the model will not infringe the rights of third parties. Any use of the model shall include a reference to ENTSO-E. ENTSO-E web site is the only official source of information related to the model. + http://elia.be/CGMES + http://iec.ch/TC57/ns/CIM/GeographicalLocation-EU/3.0 + 001 + + + + WGS84 + urn:ogc:def:crs:EPSG::4326 + 5f5f3db1-b9f2-0a87-ca72-39fb7da2af17 + + + BE-Line_6 + + + 5733e014-95df-b4b4-3472-39fb7da2af1e + + + 1 + 4.30113 + 50.8035 + + + + 2 + 4.34509 + 50.9169 + + + + 3 + 4.29565 + 51.0448 + + + + 4 + 4.38354 + 51.157 + + + + 5 + 4.25926 + 51.3251 + + + + BE-Line_1 + + + 51ccb6f6-64e4-5fdd-c006-39fb7da2af1e + + + 1 + 4.88798 + 51.9127 + + + + 2 + 4.84683 + 51.6121 + + + + BE-Line_7 + + + f27cbfad-b445-1a56-a96d-39fb7da2af1e + + + 1 + 4.88892 + 51.9138 + + + + 2 + 4.84772 + 51.6129 + + + + 3 + 4.25926 + 51.3251 + + + + BE-Line_5 + + + 33569661-1f7f-8318-8783-39fb7da2af1e + + + 1 + 4.30173 + 50.803 + + + + 2 + 4.69046 + 50.8994 + + + + 3 + 5.08825 + 51.3026 + + + + 4 + 5.07058 + 51.8731 + + + + BE-Line_4 + + + 47478224-23fe-f47b-605c-39fb7da2af1e + + + 1 + 4.30173 + 50.803 + + + + 2 + 4.69046 + 50.8994 + + + + 3 + 5.08825 + 51.3026 + + + + 4 + 5.07186 + 51.8756 + + + + BE-Line_2 + + + 73b023d3-4cf0-e1c5-56c4-39fb7da2af1e + + + 1 + 4.30113 + 50.8035 + + + + 2 + 4.34509 + 50.9169 + + + + 3 + 4.29565 + 51.0448 + + + + 4 + 4.38354 + 51.157 + + + + 5 + 4.25926 + 51.3251 + + + + BE-Line_3 + + + 05e9859c-01b9-12a7-3320-39fb7da2af1e + + + 1 + 4.30173 + 50.803 + + + + 2 + 4.69046 + 50.8994 + + + + 3 + 5.08825 + 51.3026 + + + + 4 + 5.07294 + 51.8765 + + + \ No newline at end of file diff --git a/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/CGM/20210325T1530Z_1D_BE_SSH_001.xml b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/CGM/20210325T1530Z_1D_BE_SSH_001.xml new file mode 100644 index 0000000000..15e1a13068 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/CGM/20210325T1530Z_1D_BE_SSH_001.xml @@ -0,0 +1,440 @@ + + + + 2021-03-25T23:16:27Z + 2021-03-25T15:30:00Z + CGMES Conformity Assessment Test Configuration. The Test Configuration is owned by ENTSO-E and is provided by ENTSO-E “as it is”. To the fullest extent permitted by law, ENTSO-E shall not be liable for any damages of any kind arising out of the use of the model (including any of its subsequent modifications). ENTSO-E neither warrants, nor represents that the use of the model will not infringe the rights of third parties. Any use of the model shall include a reference to ENTSO-E. ENTSO-E web site is the only official source of information related to the model. + http://elia.be/CGMES + http://iec.ch/TC57/ns/CIM/SteadyStateHypothesis-EU/3.0 + 001 + + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + false + true + 21.987 + + + + true + true + -118 + -18.7203 + + 0 + + + true + 0 + + + false + true + 115.5 + + + + true + true + -90 + -100.256 + + 0 + + + true + 0 + + + true + true + 1 + + + true + false + 0.5 + 110 + + + + true + true + 1 + + + true + false + 0.5 + 380 + + + + true + 1 + 0 + + + true + 200 + 90 + + + true + 200 + 50 + + + true + true + 0 + + + false + true + 229.5 + + + + true + -83.18928 + 1.501529 + + + true + -14.06748 + 63.95825 + + + true + -103.7413 + 11.31944 + + + true + -27.0286 + 120.7887 + + + true + -8.953211 + 67.2335 + + + false + 10 + + + false + 10 + + + false + 14 + + + false + 17 + + + 236.9798 + 10 + + + 1312 + + + 500 + + + 1312 + + + 500 + + + 1500 + + + 500 + + + 1500 + + + 500 + + + 1062 + + + 500 + + + 1062 + + + 500 + + + 1876 + + + 500 + + + 1876 + + + 500 + + + 1226 + + + 500 + + + 1226 + + + 500 + + + 1574 + + + 500 + + + 1574 + + + 500 + + + 1233.9 + + + 500 + + + 1233.9 + + + 500 + + + 500 + + + 500 + + + 1705.808 + + + 3411.617 + + + 938.1946 + + + 3411.617 + + + 13746.44 + + + 1308.072 + + + 17870.37 + + + 938.1946 + + + 1705.808 + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + \ No newline at end of file diff --git a/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/CGM/20210325T1530Z_1D_NL_EQ_001.xml b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/CGM/20210325T1530Z_1D_NL_EQ_001.xml new file mode 100644 index 0000000000..5b2068c950 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/CGM/20210325T1530Z_1D_NL_EQ_001.xml @@ -0,0 +1,1874 @@ + + + + 2021-03-25T23:16:27Z + 2021-03-25T15:30:00Z + CGMES Conformity Assessment Test Configuration. The Test Configuration is owned by ENTSO-E and is provided by ENTSO-E “as it is”. To the fullest extent permitted by law, ENTSO-E shall not be liable for any damages of any kind arising out of the use of the model (including any of its subsequent modifications). ENTSO-E neither warrants, nor represents that the use of the model will not infringe the rights of third parties. Any use of the model shall include a reference to ENTSO-E. ENTSO-E web site is the only official source of information related to the model. + http://tennet.nl/CGMES + http://iec.ch/TC57/ns/CIM/CoreEquipment-EU/3.0 + 001 + + http://iec.ch/TC57/ns/CIM/ShortCircuit-EU/3.0 + + + NL LoadArea + 70c4656c-f7a0-4319-98bb-84fb5e2e9b37 + + + TENNET TSO B.V. SubLoadArea + + c4e8eb3a-76b0-4192-91fe-c2f0a60af0df + + + NL + efc79870-d704-485e-a37b-0cf2e8e7657b + + + TENNET TSO B.V. + + e58fc3bf-8c9f-450d-b3f7-9a1d19bd3bb4 + + + PP_Amsterdam + PP_Amsterdam + + c49942d6-8b01-4b01-b5e8-f1180f84906c + + + 220.0 + 242 + 198 + + + d77b61ef-61aa-4b22-95f6-b56ca080788d + + + NL-Busbar_2 + NL-B_2 + + cae57656-3fc2-4f5e-9ab9-fa5b118a632a + + + NL-Busbar_2 + + 143aa0b1-2cd4-4e58-98d4-b0438bd5a39a + + + NL-Busbar_2_Busbar_Section + 1 + + + 50f00b94-fe0f-48fd-887e-f0d4d59eee87 + + + 400.0 + 440 + 360 + + + b7998ae6-0cc6-4dfe-8fec-0b549b07b6c3 + + + NL-_Busbar_1 + NL-_B_1 + + 90f78705-5ef4-479a-8d5a-70efc554e0ba + + + 15.8 + 17.325 + 14.175 + + + 8d8a82ba-b5b0-4e94-861a-192af055f2b8 + + + NL-Busbar_3 + NL-B_3 + + 124b9180-9112-4b8a-a651-9c1bb9a031da + + + NL-Busbar_3 + + 53da4025-9d51-4eaf-b0d2-ce27fbe740d2 + + + NL-Busbar_3_Busbar_Section + 1 + + + 0f199d49-0093-4b51-b357-70371424d174 + + + NL-Inj-XWI_GY11 + Eq_Injection + NL-I-XWI_GY1 + + + 0 + 0 + 0 + false + 0 + 0 + 0 + b0442899-8dbe-48c1-a1fa-adb2a5929273 + + + NL-Inj-XZE_ST23 + Eq_Injection + NL-I-XZE_ST2 + + + 0 + 0 + 0 + false + 0 + 0 + 0 + 12baa3f3-23b1-44e0-956f-d331e1527f37 + + + NL-Inj-XCA_AL11 + Eq_Injection + NL-I-XCA_AL1 + + + 0 + 0 + 0 + false + 0 + 0 + 0 + 83bea592-913e-4473-8d17-969968ff83a2 + + + NL-Inj-XZE_ST24 + Eq_Injection + NL-I-XZE_ST2 + + + 0 + 0 + 0 + false + 0 + 0 + 0 + 820d95d7-26d4-4311-8b1f-026f8605b86d + + + NL-Inj-XKA_MA11 + Eq_Injection + NL-I-XKA_MA1 + + + 0 + 0 + 0 + false + 0 + 0 + 0 + cab82e1c-1435-447b-bba0-74b592539eac + + + NL-Line_5 + 10T-AT-DE-000118 + 10T-AT-DE-000118 + NL-L_5 + false + + + 35 + 0.01099557 + 6.48739E-05 + 3.5E-05 + 3.5E-05 + 0.42 + 1.26 + 160 + 6.3 + 18.9 + e8acf6b6-99cb-45ad-b8dc-16c7866a4ddc + + + Limits at Port 1 + Limit-Ratings for branch NL-Line_5 at Port 1 + + a2c3d48f-d768-4e1e-8841-6e9c4913f11f + + + PATL + + + 1876 + 47545df1-566d-4a8d-86e8-882655c6e79e + + + TATL + + + 500 + 08ad0781-b65c-4f2e-b5ba-00d58bcf2e58 + + + Limits at Port 2 + Limit-Ratings for branch NL-Line_5 at Port 2 + + b4d8f5e2-7b7a-45eb-b65a-252843d6acf4 + + + PATL + + + 1876 + 56105225-1754-40da-b6df-43fd7cfeb50a + + + TATL + + + 500 + 86764bf6-6472-4ebe-9d6b-bcceffe66dad + + + NL-Line_2 + tie line BE-NL + NL-L_2 + false + + + 40 + 0 + 2.51327E-05 + 4E-05 + 4E-05 + 2.32 + 6.96 + 160 + 20.24 + 60.72 + dad02278-bd25-476f-8f58-dbe44be72586 + + + Limits at Port 2 + Limit-Ratings for branch NL-Line_2 at Port 2 + + 7cf4108d-d355-48f5-8556-d42c37a8e2c8 + + + PATL + + + 1371 + 7cfff021-02d4-4aa1-8fe7-b9af9c1fdc44 + + + TATL + + + 500 + d7422ce6-a13d-41ca-8111-9462b2e789dc + + + Limits at Port 1 + Limit-Ratings for branch NL-Line_2 at Port 1 + + 13ee714f-6df4-4039-8519-5cf4e84ab20d + + + PATL + + + 1371 + 2b05a185-07f6-4e72-a2c3-d28425c7aefc + + + TATL + + + 500 + 6fd8188f-65a6-4473-b8f1-ffe6122ba6ab + + + NL-Line_4 + 10T-AT-DE-00009W + 10T-AT-DE-00009W + NL-L_4 + false + + + 22 + 4.35425E-05 + 8.98495E-05 + 2.42E-05 + 2.42E-05 + 2.2 + 6.6 + 160 + 66 + 198 + 8fdc7abd-3746-481a-a65e-3df56acd8b13 + + + Limits at Port 2 + Limit-Ratings for branch NL-Line_4 at Port 2 + + 03943678-b63e-44d8-bc7d-9461da496268 + + + PATL + + + 1574 + 2f424b90-a264-4592-8854-9838596c9f78 + + + TATL + + + 500 + 89ef40fb-5d77-45cb-8073-cc2d1d171dcd + + + Limits at Port 1 + Limit-Ratings for branch NL-Line_4 at Port 1 + + 37cc4210-71c0-4328-a86b-df0f65e76ef4 + + + PATL + + + 1574 + b35893b0-22d4-4127-9351-9c46fba6059b + + + TATL + + + 500 + b780341b-7b90-498f-ab63-9deb16eff206 + + + NL-Line_1 + 10T-AT-DE-000118 + 10T-AT-DE-000118 + NL-L_1 + false + + + 30 + 0.00015 + 0.0001413717 + 3E-05 + 3E-05 + 1.02 + 3.06 + 160 + 12 + 36 + 7f43f508-2496-4b64-9146-0a40406cbe49 + + + Limits at Port 1 + Limit-Ratings for branch NL-Line_1 at Port 1 + + 79a1fb3a-a66a-468c-8c78-c25714c73eba + + + PATL + + + 1233.9 + 1b65a297-4735-499f-8fe8-f08ea01b291f + + + TATL + + + 500 + 5bc43480-4543-4193-8b0e-7ba7bf5b3441 + + + Limits at Port 2 + Limit-Ratings for branch NL-Line_1 at Port 2 + + 125eeb58-1c45-41b2-a981-7d5993b40cda + + + PATL + + + 1233.9 + 26069582-0f76-47fb-8bc0-44c99fb08887 + + + TATL + + + 500 + 2783b836-4271-4252-96a7-588c3a1b1826 + + + NL-Line_3 + 10T-AT-DE-00009W + 10T-AT-DE-00009W + NL-L_3 + false + + + 23 + 4.55217E-05 + 2.02319E-05 + 2.3E-05 + 2.3E-05 + 5.06 + 15.18 + 160 + 69 + 207 + a279a3dc-550b-426c-af3a-61b7be508dcc + + + Limits at Port 2 + Limit-Ratings for branch NL-Line_3 at Port 2 + + 14e9e317-a168-44a2-82ef-7c76190108a2 + + + PATL + + + 2000 + 03287f0c-5562-4533-be7f-2fb40e1888f5 + + + TATL + + + 500 + 84c93dae-4254-4b24-b0ee-3fc4bdf1ea02 + + + Limits at Port 1 + Limit-Ratings for branch NL-Line_3 at Port 1 + + 9a03e8ee-e832-43c8-b38e-0d43f8ef7355 + + + PATL + + + 2000 + c743cfb3-8279-4721-9eee-12020dd89f64 + + + TATL + + + 500 + 8eb25188-24dd-4f6e-97d9-b7b03c49454e + + + NL-Load_2 + Electrabel + NL-L_2 + false + + + 25ab1b5b-6803-47e2-805a-ab7b2072e034 + + + TENNET TSO B.V.confLoadGr + + 113fa6bb-c406-44a1-b9b7-67c43efe8372 + + + NL-Load_1 + Apple + NL-L_1 + false + + + 69add5b4-70bd-4360-8a93-286256c0d38b + + + NL-Load_3 + Siemens + NL-L_3 + false + + + + b1e03a8f-6a11-4454-af58-4a4a680e857f + + + NL-Load_3 + false + 0.2 + 0 + 0.8 + 0.3 + 0 + 0.7 + 7a797ed8-c370-47cf-83df-16c40f8fff69 + + + NL-S1 + shunt + NL-S1 + false + + + true + 1 + 400 + 1 + 0 + 0.000313 + 0 + 0 + fbfed7e3-3dec-4829-a286-029e73535685 + + + NL-S1 + + + 613dfeb3-0161-4cec-aaa9-ccddd885771b + + + NL-G3 + Machine + NL-G3 + false + + 0.9 + 250 + 15.75 + + true + 0 + 0 + 0 + 200 + 0 + 0 + 100 + 0 + 0 + 0 + 0.2 + 1.9 + 0 + + + 0 + 0.13 + 0.17 + 1dc9afba-23b5-41a0-8540-b479ed8baf4b + + + Gen-12908 + Machine + false + + + 250 + 130 + 225 + b850063d-eae7-4675-bc98-4642d3076783 + + + NL-G1 + Machine + NL-G1 + false + + + 0.9 + 1100 + 15.75 + + true + 0 + 0 + 0 + 600 + 0 + 0 + 100 + 0 + 0 + 0 + 0.21 + 1.9 + 0 + + + 0 + 0.11 + 0.18 + 9c3b8f97-7972-477d-9dc8-87365cc0ad0e + + + Gen-12923 + Machine + false + + + 1000 + 300 + 990 + 049438a6-780a-44fe-a788-ebe385d98e25 + + + NL-G2 + Machine + NL-G2 + false + + 0.9 + 250 + 15.75 + + true + 0 + 0 + 0 + 200 + 0 + 0 + 100 + 0 + 0 + 0 + 0.18 + 1.8 + 0 + + + 0 + 0.1 + 0.16 + 2844585c-0d35-488d-a449-685bcd57afbf + + + Gen-12910 + Machine + false + + + 250 + 130 + 225 + ca80ee09-3bed-4884-bc28-6dc89d067289 + + + NL_TR2_2 + false + + false + false + 2184f365-8cd5-4b5d-8a28-9d68603bb6a4 + + + NL_TR2_2 + 1 + true + 0 + 0 + + + -0.0001420227 + 0 + + 1.81818E-05 + 0 + 0 + 0.069143 + 0.069143 + 1260 + 220 + 5.377333 + 5.377333 + + 0dbed103-fc51-4df4-a6fa-0dee4c57f3a3 + + + NL_TR2_2 + 2 + true + 0 + 0 + + + 0 + 0 + + 0 + 0 + 0 + 0 + 0 + 1260 + 15.75 + 0 + 0 + + 41ca9e70-1cb4-4971-b8e6-a97a15580b89 + + + NL_TR2_2 + 33 + 0 + true + 17 + 220 + 17 + + + ee649b97-d2ec-47e1-976f-0f4d9f50fa11 + + + NL_TR2_2 + 50c903e2-ecbb-41b8-9a1d-746543c9b63f + + + 0 + 0 + 0 + 0.9200159 + 0 + 0 + -0.07682406 + + + + 0 + 0 + 0 + 0.9250145 + 1 + 0 + -0.07163366 + + + + 0 + 0 + 0 + 0.930013 + 2 + 0 + -0.06649923 + + + + 0 + 0 + 0 + 0.9350125 + 3 + 0 + -0.0614186 + + + + 0 + 0 + 0 + 0.940011 + 4 + 0 + -0.05639308 + + + + 0 + 0 + 0 + 0.9450097 + 5 + 0 + -0.05142054 + + + + 0 + 0 + 0 + 0.9500085 + 6 + 0 + -0.04650027 + + + + 0 + 0 + 0 + 0.9550072 + 7 + 0 + -0.04163161 + + + + 0 + 0 + 0 + 0.9600061 + 8 + 0 + -0.03681348 + + + + 0 + 0 + 0 + 0.9650059 + 9 + 0 + -0.03204435 + + + + 0 + 0 + 0 + 0.9700048 + 10 + 0 + -0.02732521 + + + + 0 + 0 + 0 + 0.9750037 + 11 + 0 + -0.02265452 + + + + 0 + 0 + 0 + 0.9800025 + 12 + 0 + -0.01803153 + + + + 0 + 0 + 0 + 0.9850017 + 13 + 0 + -0.01345523 + + + + 0 + 0 + 0 + 0.9900017 + 14 + 0 + -0.008924291 + + + + 0 + 0 + 0 + 0.9950009 + 15 + 0 + -0.004439676 + + + + 0 + 0 + 0 + 1 + 16 + 0 + 0 + + + + 0 + 0 + 0 + 1.004999 + 17 + 0 + 0.004395567 + + + + 0 + 0 + 0 + 1.009998 + 18 + 0 + 0.008747523 + + + + 0 + 0 + 0 + 1.014998 + 19 + 0 + 0.01305754 + + + + 0 + 0 + 0 + 1.019998 + 20 + 0 + 0.01732449 + + + + 0 + 0 + 0 + 1.024997 + 21 + 0 + 0.02154983 + + + + 0 + 0 + 0 + 1.029998 + 22 + 0 + 0.02573574 + + + + 0 + 0 + 0 + 1.034997 + 23 + 0 + 0.02987964 + + + + 0 + 0 + 0 + 1.039997 + 24 + 0 + 0.03398448 + + + + 0 + 0 + 0 + 1.044997 + 25 + 0 + 0.03804918 + + + + 0 + 0 + 0 + 1.049997 + 26 + 0 + 0.04207603 + + + + 0 + 0 + 0 + 1.054996 + 27 + 0 + 0.04606397 + + + + 0 + 0 + 0 + 1.059995 + 28 + 0 + 0.05001429 + + + + 0 + 0 + 0 + 1.064998 + 29 + 0 + 0.05392985 + + + + 0 + 0 + 0 + 1.069997 + 30 + 0 + 0.05780642 + + + + 0 + 0 + 0 + 1.074996 + 31 + 0 + 0.06164702 + + + + 0 + 0 + 0 + 1.079996 + 32 + 0 + 0.0654528 + + + + 0 + 0 + 0 + 1.084998 + 33 + 0 + 0.06922422 + + + + Limits at Port 1 + Limit-Ratings for branch NL_TR2_2 at Port 1 + + e7c1b1c7-aaeb-470a-9cb5-93a3ec269179 + + + PATL + + + 3306.644 + 6745e040-9fd4-4cc5-8bfd-902d0aed4ee6 + + + Limits at Port 2 + Limit-Ratings for branch NL_TR2_2 at Port 2 + + 261d13c4-1527-42a5-ad0d-a3b817971166 + + + PATL + + + 46188.04 + 12f7803a-c65b-4a14-8c0d-7e52becb5772 + + + NL-TR2_1 + new transformer in 2015 + false + + false + false + e8a7eaec-51d6-4571-b3d9-c36d52073c33 + + + NL-TR2_1 + 1 + true + 0 + 0 + + + -4.4445E-06 + 0 + + 5.625E-07 + 0 + 0 + 1.35 + 1.35 + 320 + 400 + 27.96744 + 27.96744 + + c614f321-2c88-4fa3-b98a-8ec3cde73db4 + + + NL-TR2_1 + 2 + true + 0 + 0 + + + 0 + 0 + + 0 + 0 + 0 + 0 + 0 + 320 + 220 + 0 + 0 + + 0dec3883-a2b6-4353-83cc-d4dd5df513a6 + + + NL-TR2_1 + 20 + -20 + true + 0 + 400 + 8 + + -2 + 29.7154 + 27.96744 + 341327c4-9224-40bf-bc33-7a3bb0bae680 + + + Limits at Port 2 + Limit-Ratings for branch NL-TR2_1 at Port 2 + + d47a27cc-9fad-40f2-a08c-37e545c268df + + + PATL + + + 839.7826 + ef715edd-516e-4bfd-adc4-1c882852920e + + + Limits at Port 1 + Limit-Ratings for branch NL-TR2_1 at Port 1 + + 83f719ad-2083-44ea-9ebc-9f456c114bdb + + + PATL + + + 461.8804 + e37ee101-2f68-4d55-b24f-c24c5faba8b5 + + + NL_TR2_3 + out of service in 2020 + false + + false + false + 80016742-31b3-432a-b00a-300667a1e572 + + + NL_TR2_3 + 1 + true + 0 + 0 + + + -0.0001420227 + 0 + + 1.81818E-05 + 0 + 0 + 0.065302 + 0.069143 + 1260 + 220 + 5.377381 + 5.377333 + + f3600241-63dc-485b-aefb-4ec24028f8b3 + + + NL_TR2_3 + 2 + true + 0 + 0 + + + 0 + 0 + + 0 + 0 + 0 + 0 + 0 + 1260 + 15.75 + 0 + 0 + + 4df90339-ae02-4da1-8e1e-69ab068df065 + + + NL_TR2_3 + 15 + -15 + true + 0 + 220 + 5 + 0.5500001 + + + 44b4277a-0f4b-43a8-ad93-6f7d6ef02061 + + + NL_TR2_3 + 24533a0f-3c24-4253-863a-5b1449e5b2de + + + 0 + 0 + 0.065302 + 0.92 + -15 + 5.680805 + + + + 0 + 0 + 0.065302 + 0.925 + -14 + 5.680916 + + + + 0 + 0 + 0.065302 + 0.93 + -13 + 5.681027 + + + + 0 + 0 + 0.065302 + 0.94 + -12 + 5.681139 + + + + 0 + 0 + 0.065302 + 0.945 + -11 + 5.681139 + + + + 0 + 0 + 0.065302 + 0.95 + -10 + 5.68125 + + + + 0 + 0 + 0.065302 + 0.955 + -9 + 5.68125 + + + + 0 + 0 + 0.065302 + 0.96 + -8 + 5.681361 + + + + 0 + 0 + 0.065302 + 0.965 + -7 + 5.681472 + + + + 0 + 0 + 0.065302 + 0.97 + -6 + 5.681583 + + + + 0 + 0 + 0.065302 + 0.975 + -5 + 5.681583 + + + + 0 + 0 + 0.065302 + 0.98 + -4 + 5.681694 + + + + 0 + 0 + 0.065302 + 0.985 + -3 + 5.681805 + + + + 0 + 0 + 0.065302 + 0.99 + -2 + 5.681916 + + + + 0 + 0 + 0.065302 + 0.995 + -1 + 5.682027 + + + + 0 + 0 + 0.065302 + 1 + 0 + 5.682138 + + + + 0 + 0 + 0.065302 + 1.005 + 1 + 5.68225 + + + + 0 + 0 + 0.065302 + 1.01 + 2 + 5.682361 + + + + 0 + 0 + 0.065302 + 1.0153 + 3 + 5.682361 + + + + 0 + 0 + 0.065302 + 1.02 + 4 + 5.682472 + + + + 0 + 0 + 0.065302 + 1.025 + 5 + 5.682583 + + + + 0 + 0 + 0.065302 + 1.031 + 6 + 5.682694 + + + + 0 + 0 + 0.065302 + 1.037 + 7 + 5.682805 + + + + 0 + 0 + 0.065302 + 1.043 + 8 + 5.682916 + + + + 0 + 0 + 0.065302 + 1.05 + 9 + 5.682916 + + + + 0 + 0 + 0.065302 + 1.055 + 10 + 5.683027 + + + + 0 + 0 + 0.065302 + 1.06 + 11 + 5.683027 + + + + 0 + 0 + 0.065302 + 1.065 + 12 + 5.683138 + + + + 0 + 0 + 0.065302 + 1.072 + 13 + 5.683138 + + + + 0 + 0 + 0.065302 + 1.08 + 14 + 5.683249 + + + + 0 + 0 + 0.065302 + 1.085 + 15 + 5.683361 + + + + Limits at Port 2 + Limit-Ratings for branch NL_TR2_3 at Port 2 + + cf3e5341-6736-4b34-b4da-e4af2073765b + + + PATL + + + 46188.04 + 26ce5ed9-6557-473e-a710-b7720c2c8355 + + + Limits at Port 1 + Limit-Ratings for branch NL_TR2_3 at Port 1 + + fd472104-d68c-4536-ba4a-5fd9349c0a65 + + + PATL + + + 3306.644 + 2ca6c9d7-1310-4487-a177-0c3f7b461194 + + + 15.75 kV + Base Voltage Level + 15.75 + 15.75 + abb2348a-aa10-446f-9f5d-49f93f211535 + + + Terminal + 1 + + + + 421c7930-64c3-435d-afb8-2bb73b333e34 + + + Terminal + 2 + + + + 31bf04d0-7e34-465b-95a4-0604700325cf + + + Terminal + 1 + + + + 757d4f50-707b-47a0-891c-cbaefd649631 + + + Terminal + 2 + + + + ae588863-b154-451d-978a-7ab08ac50fb6 + + + Terminal + 2 + + + + 8f308117-8bbd-4798-b145-4e78f7d049e7 + + + Terminal + 1 + + + + c557146e-dfc4-4020-9738-d592b188338b + + + Terminal + 1 + + + + a015f692-3fc5-4ec3-8d1d-977c7b499e7c + + + Terminal + 2 + + + + baa7aef1-afcd-4981-97c0-ccec7b5ad4e0 + + + Terminal + 1 + + + + e3e0c496-5837-4f0f-a596-cc421940f73f + + + Terminal + 1 + + + + 6dad1a97-6874-4206-a5a5-837e495325f8 + + + Terminal + 1 + + + + f48d48c7-e9f6-460c-898f-cc68a96efdeb + + + Terminal + 2 + + + + 57979d14-d1d8-4311-ae53-aa8890423885 + + + Terminal + 1 + + + + 653bc4b8-518b-4adc-9d68-012fb641fb1d + + + Terminal + 1 + + + + 357e3e14-c38e-4a7e-9c95-b3dbe158f5f3 + + + Terminal + 2 + + + + 6b1cd30c-19ba-44e1-9447-d01db6b1ef9d + + + Terminal + 1 + + + + 24dd035c-0a8c-4351-aeb2-08d6622b42ae + + + Terminal + 1 + + + + 39d27c17-1e5b-4edc-a7ec-65a2d56542df + + + Terminal + 1 + + + + f04ecab5-1a12-4cc0-ba56-b157ebf11a42 + + + Terminal + 2 + + + + 6aecb9ba-5835-4b70-89bc-96d687e45779 + + + Terminal + 1 + + + + 5dfee914-a4fd-4bde-a5b4-c4caa6378d10 + + + Terminal + 1 + + + + 26e50b4b-9a19-420d-98ce-bc4f11971cd7 + + + Terminal + 1 + + + + f461fd2d-1e41-4a3e-8213-7cc33c77a089 + + + Terminal + 1 + + + + f970233f-b573-49d9-9fc3-3a2a59ed3bbb + + + Terminal + 1 + + + + fab54e9c-b12e-4e47-a9f2-fec4ef96c0c0 + + + Terminal + 1 + + + + faab7959-f9bf-421b-bc3f-d364e0c1388b + + + Terminal + 1 + + + + ae4b7cbe-349a-41c8-ace2-25ec26f14a64 + + + Terminal + 2 + + + + 70b326a3-5913-494f-b8f8-8e366253b597 + + + Terminal + 1 + + + + c9b27b4e-d492-4c3c-b147-67addbb9d3ea + + + PATL + PATL + + + 1aee0921-7cbe-481c-9078-daf66ab2a950 + true + + + Limit Type TATL + TATL + 600 + + + bf2a4896-2e92-465b-b5f9-b033993a31c8 + false + + + NL + + + 31b2fe09-63f6-44f6-9b4f-01dbe7e4944a + + + TieFlow + true + + + 14f1c9bd-93d8-4238-9e26-aacc53fe8855 + + + TieFlow + true + + + 4ed170fe-2571-4044-9bfa-7345e70a69d2 + + + TieFlow + true + + + 945d6e95-1b83-47c5-a0e9-277d434c2d12 + + + TieFlow + true + + + 4669c2b7-89d0-46d1-9bbb-37e989d581cd + + + TieFlow + true + + + f9ffc8ea-37f2-404a-9bd3-f3fa15476d4c + + + NL-G1 + + + 04f338d3-3c0d-433f-a77b-e36dd256f0f0 + + \ No newline at end of file diff --git a/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/CGM/20210325T1530Z_1D_NL_GL_001.xml b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/CGM/20210325T1530Z_1D_NL_GL_001.xml new file mode 100644 index 0000000000..c1cc936489 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/CGM/20210325T1530Z_1D_NL_GL_001.xml @@ -0,0 +1,161 @@ + + + + 2021-03-25T23:16:27Z + 2021-03-25T15:30:00Z + CGMES Conformity Assessment Test Configuration. The Test Configuration is owned by ENTSO-E and is provided by ENTSO-E “as it is”. To the fullest extent permitted by law, ENTSO-E shall not be liable for any damages of any kind arising out of the use of the model (including any of its subsequent modifications). ENTSO-E neither warrants, nor represents that the use of the model will not infringe the rights of third parties. Any use of the model shall include a reference to ENTSO-E. ENTSO-E web site is the only official source of information related to the model. + http://tennet.nl/CGMES + http://iec.ch/TC57/ns/CIM/GeographicalLocation-EU/3.0 + 001 + + + + WGS84 + urn:ogc:def:crs:EPSG::4326 + 38876874-fcfc-a4d9-9d16-39fb7da2ad74 + + + NL-Line_5 + + + c84ce457-406b-a13c-ad76-39fb7da2ad7a + + + 1 + 4.84744 + 52.4027 + + + + 2 + 4.98125 + 52.2483 + + + + 3 + 5.04709 + 52.0699 + + + + 4 + 5.07058 + 51.8731 + + + + NL-Line_2 + + + 5350c085-4b5e-5909-1d55-39fb7da2ad7b + + + 1 + 4.84744 + 52.4027 + + + + 2 + 4.98125 + 52.2483 + + + + 3 + 5.04709 + 52.0699 + + + + 4 + 5.07186 + 51.8756 + + + + NL-Line_4 + + + 480fa612-9f7c-44fa-8522-39fb7da2ad7b + + + 1 + 4.84845 + 52.4023 + + + + 2 + 4.79004 + 52.1571 + + + + 3 + 4.88892 + 51.9138 + + + + 4 + 4.88798 + 51.9127 + + + + NL-Line_1 + + + e072869d-f08d-34f3-bf8f-39fb7da2ad7b + + + 1 + 4.84744 + 52.4027 + + + + 2 + 4.98125 + 52.2483 + + + + 3 + 5.04709 + 52.0699 + + + + 4 + 5.07294 + 51.8765 + + + + NL-Line_3 + + + a719fa3b-aec1-c681-8da9-39fb7da2ad7b + + + 1 + 4.84845 + 52.4023 + + + + 2 + 4.79004 + 52.1571 + + + + 3 + 4.88892 + 51.9138 + + + \ No newline at end of file diff --git a/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/CGM/20210325T1530Z_1D_NL_SSH_001.xml b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/CGM/20210325T1530Z_1D_NL_SSH_001.xml new file mode 100644 index 0000000000..3bf83807b9 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/CGM/20210325T1530Z_1D_NL_SSH_001.xml @@ -0,0 +1,320 @@ + + + + 2021-03-25T23:16:27Z + 2021-03-25T15:30:00Z + CGMES Conformity Assessment Test Configuration. The Test Configuration is owned by ENTSO-E and is provided by ENTSO-E “as it is”. To the fullest extent permitted by law, ENTSO-E shall not be liable for any damages of any kind arising out of the use of the model (including any of its subsequent modifications). ENTSO-E neither warrants, nor represents that the use of the model will not infringe the rights of third parties. Any use of the model shall include a reference to ENTSO-E. ENTSO-E web site is the only official source of information related to the model. + http://tennet.nl/CGMES + http://iec.ch/TC57/ns/CIM/SteadyStateHypothesis-EU/3.0 + 001 + + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + false + -150 + -83.296 + + 0 + + + true + 0 + + + false + true + 16.0335 + + + + true + true + -600.4927 + -386.9225 + + 1 + + + true + 1 + + + true + false + -140 + -77.743 + + 0 + + + true + 0 + + + true + true + 1 + + + true + false + 0.5 + 400 + + + + true + 10 + 10 + + + true + 90 + 280 + + + true + 486 + 230 + + + true + 27.0286 + -120.7887 + + + true + 83.18928 + -1.501529 + + + true + 14.06748 + -63.95825 + + + true + 103.7413 + -11.31944 + + + true + 8.953211 + -67.2335 + + + false + 17 + + + false + 8 + + + false + 5 + + + -236.9798 + 10 + + + 1876 + + + 500 + + + 1876 + + + 500 + + + 1371 + + + 500 + + + 1371 + + + 500 + + + 1574 + + + 500 + + + 1574 + + + 500 + + + 1233.9 + + + 500 + + + 1233.9 + + + 500 + + + 2000 + + + 500 + + + 2000 + + + 500 + + + 3306.644 + + + 46188.04 + + + 839.7826 + + + 461.8804 + + + 46188.04 + + + 3306.644 + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + \ No newline at end of file diff --git a/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/CGM/20210420T1730Z_1D_BE_DY_001.xml b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/CGM/20210420T1730Z_1D_BE_DY_001.xml new file mode 100644 index 0000000000..8f15ba9505 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/CGM/20210420T1730Z_1D_BE_DY_001.xml @@ -0,0 +1,174 @@ + + + + 2021-04-20T10:56:20Z + 2021-04-20T17:30:00Z + CGMES Conformity Assessment Test Configuration. The Test Configuration is owned by ENTSO-E and is provided by ENTSO-E “as it is”. To the fullest extent permitted by law, ENTSO-E shall not be liable for any damages of any kind arising out of the use of the model (including any of its subsequent modifications). ENTSO-E neither warrants, nor represents that the use of the model will not infringe the rights of third parties. Any use of the model shall include a reference to ENTSO-E. ENTSO-E web site is the only official source of information related to the model. + http://elia.be/CGMES + http://iec.ch/TC57/ns/CIM/Dynamics-EU/1.0 + 001 + + + + sm + true + 0.01 + 5 + 0.02 + 0.12 + 0.02 + 0.12 + 0.15 + 0 + + + + 8 + 0 + 0.03 + 0.07 + 1 + 0.23 + 1.81 + 0.3 + 0.25 + 1.76 + 0.65 + 1 + + 0 + 4f810658-da42-4bbf-b8ee-1c38019d7068 + + + sm + true + 0 + 4.25 + 0.16 + 0 + 0.02 + 0.12 + 0.02 + 0.12 + + + + 6.4 + 0 + 0.12 + 0.12 + 6.4 + 0.2 + 1.97 + 0.29 + 0.2 + 1.97 + 0.29 + 1 + + 0 + 8aa9d8c1-8711-40cf-8c77-509c4240562c + + + BE-G1-Vcomp + true + + 0 + 0 + 0 + 3de814e0-4057-4359-8415-91f9cfc6954a + + + BE-G1-ExcAC4A + true + + 200 + 0.05 + 0.07 + 8.5 + 1.8 + 0.1 + -0.1 + 5 + -4.65 + f7d4412c-6567-4759-aa48-4c881dd79902 + + + BE-G1-PSSB + true + + + + 16 + 0.31 + 1 + 5 + 1 + 0.2 + 0 + 0 + 0.02 + 0.45 + 0.02 + 0 + 2 + 0.2 + 0.1 + 2 + 2 + 2 + 0 + 999 + -999 + 999 + -999 + 0.1 + -0.1 + 13267fa6-b3f0-4e23-8b4c-857d35eeed6f + + + BE-G1-TurbIEEEEG1 + true + + 0 + 0 + 0 + 1 + 0 + 0.25 + 0.5 + 0.75 + 1 + 1.25 + 25 + 0.25 + 0 + 0.6 + 0 + 0.15 + 0 + 0 + 0 + 255 + 0 + 0.25 + 0.5 + 0.75 + 1 + 1.25 + 1.05 + 0 + true + true + 5 + 1.5 + 0.3 + 0.15 + 2 + 0.1 + 0 + -1.05 + true + d0ae3542-271e-4f50-8272-53bf553df6c2 + + \ No newline at end of file diff --git a/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/CGM/20210420T1730Z_1D_NL_DY_001.xml b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/CGM/20210420T1730Z_1D_NL_DY_001.xml new file mode 100644 index 0000000000..7187b6ad05 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/CGM/20210420T1730Z_1D_NL_DY_001.xml @@ -0,0 +1,369 @@ + + + + 2021-04-20T10:56:20Z + 2021-04-20T17:30:00Z + CGMES Conformity Assessment Test Configuration. The Test Configuration is owned by ENTSO-E and is provided by ENTSO-E “as it is”. To the fullest extent permitted by law, ENTSO-E shall not be liable for any damages of any kind arising out of the use of the model (including any of its subsequent modifications). ENTSO-E neither warrants, nor represents that the use of the model will not infringe the rights of third parties. Any use of the model shall include a reference to ENTSO-E. ENTSO-E web site is the only official source of information related to the model. + http://tennet.nl/CGMES + http://iec.ch/TC57/ns/CIM/Dynamics-EU/1.0 + 001 + + + + true + sm + 1 + 4.4 + 0.23 + 0 + 0.02 + 0.12 + 0.02 + 0.12 + + + + 9.6 + 0 + 0.08 + 0.0837 + 0.09 + 0.24 + 1.98 + 0.37 + 0.24 + 0.8 + 0.24 + 1 + + 0 + f450a965-7cfb-4516-a2bf-618f05e84eed + + + true + sm + 1 + 9.9 + 0.1934 + 0 + + + + 8.8 + 0 + 0.031 + 0.0354 + 0.04 + 0.318 + 2.35 + 0.452 + 0.318 + 2.24 + 0.318 + 1 + + 0 + bd63d5d8-3d61-4233-a3e0-a66d512c1574 + + + true + sm + 1 + 4.4 + 0.23 + 0 + + + + 9.6 + 0 + 0.08 + 0.0837 + 0.09 + 0.24 + 1.98 + 0.37 + 0.24 + 0.8 + 0.24 + 1 + + 0 + e58068fe-5436-4a2a-aa72-da3377ea1355 + + + NL-G2-Exc-ST1A + true + + 0 + 190 + 0.08 + 0.02 + 0 + false + 0.1 + 10 + 0.001 + 1.5 + 0.001 + 0.8 + + 8 + -8 + 0.2 + -0.2 + 7.8 + -6.7 + 3bd610c9-8ecd-4466-a5ea-c998749a38ea + + + NL-G2-PSSB + true + + + + 10 + 0.31 + 1 + 5 + 1 + 0.12 + 0 + 0 + 0.02 + 0.4 + 0.02 + 0 + 2 + 0.2 + 0.1 + 2 + 2 + 2 + 0 + 999 + -999 + 999 + -999 + 0.1 + -0.1 + fd134308-7b1c-4272-b2cd-7989c13a5ca5 + + + NL-G2-Vcomp + true + + 0 + 0 + 0 + 50a79cc5-c98d-4b3b-b863-0b677d09eca3 + + + NL-G1-Vcomp + true + + 0 + 0 + 0 + 38bfffb4-e20d-4259-9a25-92bc74ed1167 + + + NL-G3-Vcomp + true + + 0 + 0 + 0 + 3105e155-0187-4c30-903b-41d4946c39bb + + + NL-G1-PSSB + true + + + + 12 + 0.2 + 1 + 5 + 1 + 0.12 + 0 + 0 + 0.02 + 0.3 + 0.02 + 0 + 2 + 0 + 0.1 + 2 + 2 + 2 + 0 + 999 + -999 + 999 + -999 + 0.1 + -0.1 + fd6074ce-e88d-4191-8dd7-d44114684d47 + + + NL-G1-ExcAC1A + true + + 30 + 0.2 + 0.4 + 1 + 0.03 + 0.03 + 0.1 + 0.05 + 0.02 + 0.001 + 0.4 + 1 + 10 + -10 + 3.14 + 4.18 + 10 + -5 + a29ea0a1-af24-4c9b-aa8f-5c97374996e2 + + + NL-G3-Exc-ST1A + true + + 0 + 220 + 0.08 + 0.02 + 0 + false + 0.1 + 10 + 0.001 + 1.5 + 0.001 + 0.8 + + 8 + -8 + 0.2 + -0.2 + 7.8 + -6.7 + cf42c5ad-b3f9-4f9f-ae5e-6169cb07ae89 + + + NL-G3-PSSB + true + + + + 10 + 0.31 + 1 + 5 + 1 + 0.3 + 0 + 0 + 0.02 + 0.45 + 0.02 + 0 + 2 + 0.2 + 0.1 + 2 + 2 + 2 + 0 + 999 + -999 + 999 + -999 + 0.1 + -0.1 + 6b347d56-00c6-4916-be40-08c9b11c32b9 + + + NL-G2-Turb-GovHydro1 + true + + 1.2 + 0.3 + 0.75 + 0 + 1 + 225 + 0.08 + 0.05 + 1.27 + 0.099 + 0.9 + 10.4 + 2.6 + 0.2 + f12ead9a-0d9d-469e-9351-0f187bd2e523 + + + NL-G1-IEEEEG3 + true + + -1 + 0.5 + 0 + 0 + 0 + 0 + 0.25 + 0.5 + 0.75 + 1 + 1.25 + 1 + 990 + 0 + 0.25 + 0.5 + 0.75 + 1 + 1.25 + 1 + -1 + 0.05 + 0.52 + 1 + 0.04 + 9.19 + 1.84 + -0.2 + 0.2 + 32fb9a75-5aa2-4ead-843b-8b8c0254683d + + + NL-G3-GovHydro1 + true + + 1.2 + 0.3 + 0.75 + 0 + 1 + 225 + 0.08 + 0.05 + 1.27 + 0.099 + 0.9 + 10.4 + 2.6 + 0.2 + 93e64753-4784-4bc0-8ba9-48eae88cce2f + + \ No newline at end of file diff --git a/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/ELIA_2230_SSI.xml b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/ELIA_2230_SSI.xml new file mode 100644 index 0000000000..4e333f9a92 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/ELIA_2230_SSI.xml @@ -0,0 +1,31 @@ + + + + This is an example of Steady state instruction profile. + SSI + PowerFactory-2022.SP2 + 1.0 + http://entsoe.eu/ns/CIM/SteadyStateInstruction-EU/2.2 + urn:uuid:dc15a1c0-75ee-49f1-90ac-ccd579376bcd + https://creativecommons.org/licenses/by/4.0/ + 2022-06-25T22:30:00Z + http://elia.be/CGMES + 2022-06-25T22:30:00Z + 2022-05-21T07:05:25Z + urn:uuid:095c6b30-255d-40d5-85fe-2c9fe6c9846d + + + false + + diff --git a/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/ELIA_2330_SSI.xml b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/ELIA_2330_SSI.xml new file mode 100644 index 0000000000..850785aafe --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/ELIA_2330_SSI.xml @@ -0,0 +1,31 @@ + + + + PowerFactory-2022.SP2 + urn:uuid:c8814706-f7c1-4cba-be61-4658dd457e92 + SSI + 2022-06-25T23:30:00Z + 2022-06-25T23:30:00Z + This is an example of Steady state instruction profile. + http://elia.be/CGMES + http://entsoe.eu/ns/CIM/SteadyStateInstruction-EU/2.2 + https://creativecommons.org/licenses/by/4.0/ + 1.0 + 2022-05-21T07:05:25Z + urn:uuid:095c6b30-255d-40d5-85fe-2c9fe6c9846d + + + false + + diff --git a/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/ELIA_AE.xml b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/ELIA_AE.xml new file mode 100644 index 0000000000..f64cd6e689 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/ELIA_AE.xml @@ -0,0 +1,54 @@ + + + + urn:uuid:6e26f4be-86e3-4eeb-af05-c3e1df774526 + http://entsoe.eu/ns/CIM/AssessedElement-EU/2.2 + urn:uuid:095c6b30-255d-40d5-85fe-2c9fe6c9846d + 2022-06-25T22:30:00Z + 2023-06-25T22:30:00Z + PowerFactory-2022.SP2 + http://elia.be/CGMES + This is an example of assessed element profile. + 2022-05-21T07:06:25Z + 1.0 + https://creativecommons.org/licenses/by/4.0/ + AE + + + d783cf07-f7b3-4f29-8acd-0983f3ff98c4 + + + true + + + + + This is an example of assessed element. + false + true + + + false + dd5247a7-3cb1-43f8-8ce1-12f285653f06 + AE1 + true + + + true + e65a888b-cedd-4a5e-9ed1-812382ab1020 + + + + + diff --git a/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/ELIA_CO.xml b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/ELIA_CO.xml new file mode 100644 index 0000000000..1210e445c3 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/ELIA_CO.xml @@ -0,0 +1,43 @@ + + + + urn:uuid:1a31c9c2-ae16-45ed-a279-3fe0b79884e1 + urn:uuid:095c6b30-255d-40d5-85fe-2c9fe6c9846d + 2022-06-25T22:30:00Z + CO + http://elia.be/CGMES + https://creativecommons.org/licenses/by/4.0/ + 1.0 + PowerFactory-2022.SP2 + 2022-05-21T07:05:25Z + http://entsoe.eu/ns/CIM/Contingency-EU/2.2 + This is an example of contingency profile. + 2023-06-25T22:30:00Z + + + L1 + The equipment for this contingency + ef11f9bd-5da0-43e3-921b-7e92d2896136 + + + + + + CO1 + This is an example of an ordinary contingency + 493480ba-93c3-426e-bee5-347d8dda3749 + + true + + diff --git a/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/ELIA_ER.xml b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/ELIA_ER.xml new file mode 100644 index 0000000000..d36e2eb8ec --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/ELIA_ER.xml @@ -0,0 +1,59 @@ + + + + 1.0 + 2022-05-21T07:05:25Z + ER + http://entsoe.eu/ns/CIM/EquipmentReliability-EU/2.2 + http://entsoe.eu/CGMES + https://creativecommons.org/licenses/by/4.0/ + PowerFactory-2022.SP2 + 2023-06-25T22:30:00Z + urn:uuid:94f30659-8235-4617-912c-cd2ac65233c3 + 2022-06-25T22:30:00Z + This is an example of equipment reliability profile. + urn:uuid:095c6b30-255d-40d5-85fe-2c9fe6c9846d + + + -280.0 + 280.0 + 0.0 + + + + -150.0 + 150.0 + -100.0 + + + + -180.0 + 200.0 + 200.0 + + + + + + + 49aa8092-dc8e-4b9d-8bb7-3b26a5a67eba + 10.0 + + + + + + RCC1 + + diff --git a/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/ELIA_MA.xml b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/ELIA_MA.xml new file mode 100644 index 0000000000..fc6e5f436b --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/ELIA_MA.xml @@ -0,0 +1,58 @@ + + + + PowerFactory-2022.SP2 + http://elia.be/CGMES + https://creativecommons.org/licenses/by/4.0/ + 2022-06-25T22:30:00Z + urn:uuid:56a22586-f4a0-4641-addd-ea8a477cdeb3 + 2023-06-25T22:30:00Z + http://entsoe.eu/ns/CIM/MonitoringArea-EU/2.2 + This is an example of monitoring area profile. + 1.0 + MA + urn:uuid:095c6b30-255d-40d5-85fe-2c9fe6c9846d + 2022-05-21T07:05:25Z + + + b107d576-9ae6-469c-a48e-4a85e2223ece + + + + + e6e20617-3676-4af4-9691-e8935ada4222 + + + + + 8a487cde-b486-41bc-9bc1-0ae67e25e4d5 + + + + + MA1 + Example of monitoring area + d5972cd4-cd21-4b08-a037-f5e6b4cfd3d5 + + + 9dc23419-db61-4281-8690-40b4ba4d3e08 + + + + + f3165c3a-87a0-45b7-a209-949bda47778f + + + + diff --git a/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/ELIA_RA.xml b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/ELIA_RA.xml new file mode 100644 index 0000000000..13917dde8a --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/ELIA_RA.xml @@ -0,0 +1,84 @@ + + + + 2022-06-25T22:30:00Z + 2023-06-25T22:30:00Z + http://elia.be/CGMES + This is an example of remedial action profile. + 2022-05-21T07:05:25Z + http://entsoe.eu/ns/CIM/RemedialAction-EU/2.2 + urn:uuid:095c6b30-255d-40d5-85fe-2c9fe6c9846d + 1.0 + https://creativecommons.org/licenses/by/4.0/ + RA + PowerFactory-2022.SP2 + urn:uuid:ecc0ea5e-c9d8-43d6-8fcc-196980a1b62b + + + a4a042cf-129f-4703-b7bd-e293c3a95dfc + TapRA + This is an example of tap position action + + + true + + + + 67b23587-05a1-4752-aeed-fa8b488cdec4 + Range Tap action down + Constraints the tap changer lowStep to 5 + + 5.0 + + + + + + 2149d413-a923-4c35-94d1-1028ac6aae01 + Intertemporal for tap changer + Defines how much steps RAO can change in MTU + + 3.0 + + + + + 69bad37a-ad53-4cc7-ae1d-76667357c449 + + true + + + + + true + 7fc2fc14-eea6-4e69-b8d9-a3edc218e687 + RA1 + false + + This is an example of RA + + + true + + + 53d89e89-d17b-473b-92a5-a67f7a9ed5b3 + Range Tap action up + Constraints the tap changer highStep to 20 + + 20.0 + + + + + diff --git a/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/ELIA_RAS.xml b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/ELIA_RAS.xml new file mode 100644 index 0000000000..98f8d0b2ad --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/ELIA_RAS.xml @@ -0,0 +1,56 @@ + + + + 2022-06-25T23:30:00Z + RAS + https://creativecommons.org/licenses/by/4.0/ + 1.0 + PowerFactory-2022.SP2 + This is an example of remedial action schedule profile. + http://tscnet.eu/RAO + urn:uuid:4db995ef-d3af-433a-8099-8cb25f7d5dd2 + 2022-05-21T07:05:25Z + http://entsoe.eu/ns/CIM/RemedialActionSchedule-EU/2.2 + 2022-06-25T22:30:00Z + urn:uuid:095c6b30-255d-40d5-85fe-2c9fe6c9846d + + + schedule + da78dcd1-34d0-4418-86d6-71aa7868bcae + + + + + + + + 15.0 + 2022-06-25T22:30:00Z + + + + 16.0 + 2022-06-26T21:30:00Z + + + RAS + a95931c6-95f7-4bd4-8b8d-851de7866e7f + + + + + + + + diff --git a/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/ELIA_SAR.xml b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/ELIA_SAR.xml new file mode 100644 index 0000000000..ac59ff1863 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/ELIA_SAR.xml @@ -0,0 +1,42 @@ + + + + 2022-05-21T07:05:25Z + urn:uuid:65175269-440b-44ae-9d3e-f743276d4bdc + http://elia.be/CGMES + 2022-06-25T22:30:00Z + https://creativecommons.org/licenses/by/4.0/ + urn:uuid:095c6b30-255d-40d5-85fe-2c9fe6c9846d + PowerFactory-2022.SP2 + http://entsoe.eu/ns/CIM/SecurityAnalysisResult-EU/2.2 + 2022-06-26T22:30:00Z + This is an example of security analysis result profile. + SAR + 1.0 + + + 7.659446 + -80.35162 + 2022-06-25T23:30:00Z + + false + + + 6.659446 + -81.35162 + 2022-06-25T22:30:00Z + + false + + diff --git a/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/ELIA_SS.xml b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/ELIA_SS.xml new file mode 100644 index 0000000000..f0708302ca --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/ELIA_SS.xml @@ -0,0 +1,49 @@ + + + + SS + 2022-05-21T07:05:25Z + 2022-06-25T22:30:00Z + 2023-06-25T22:30:00Z + http://entsoe.eu/ns/CIM/SecuritySchedule-EU/2.2 + PowerFactory-2022.SP2 + https://creativecommons.org/licenses/by/4.0/ + urn:uuid:2ea55b46-ad48-4408-be72-734b475ba18f + 1.0 + This is an example of security schedule profile. + http://elia.be/CGMES + urn:uuid:095c6b30-255d-40d5-85fe-2c9fe6c9846d + + + + 8.0 + 2022-06-26T03:30:00Z + + + + 5.0 + 2022-06-26T10:30:00Z + + + + 7.0 + 2022-06-25T22:30:00Z + + + 4e138115-2318-41aa-9174-26943ff8ae7d + Schedule 1 + + + + diff --git a/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/TTN_2230_SSI.xml b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/TTN_2230_SSI.xml new file mode 100644 index 0000000000..c05e74e417 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/TTN_2230_SSI.xml @@ -0,0 +1,31 @@ + + + + https://creativecommons.org/licenses/by/4.0/ + urn:uuid:3ce574dc-cbd8-4682-a6ab-ca2a4fda1dbf + SSI + This is an example of Steady state instruction profile. + 2022-06-25T22:30:00Z + http://tennet.nl/CGMES + 2022-06-25T22:30:00Z + 1.0 + PowerFactory-2022.SP2 + urn:uuid:87da6373-3b6c-47a2-9493-1918a8d9df61 + 2022-05-21T07:05:25Z + http://entsoe.eu/ns/CIM/SteadyStateInstruction-EU/2.2 + + + false + + diff --git a/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/TTN_2330_SSI.xml b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/TTN_2330_SSI.xml new file mode 100644 index 0000000000..1e7587ad08 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/TTN_2330_SSI.xml @@ -0,0 +1,31 @@ + + + + PowerFactory-2022.SP2 + 1.0 + urn:uuid:d88519f4-8273-45c9-a6ba-2802145a1147 + 2022-05-21T07:05:25Z + 2022-06-25T23:30:00Z + http://entsoe.eu/ns/CIM/SteadyStateInstruction-EU/2.2 + https://creativecommons.org/licenses/by/4.0/ + 2022-06-25T23:30:00Z + This is an example of Steady state instruction profile. + urn:uuid:87da6373-3b6c-47a2-9493-1918a8d9df61 + SSI + http://tennet.nl/CGMES + + + false + + diff --git a/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/TTN_AE.xml b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/TTN_AE.xml new file mode 100644 index 0000000000..e0af3fe0ad --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/TTN_AE.xml @@ -0,0 +1,55 @@ + + + + 2022-05-21T07:05:25Z + AE + PowerFactory-2022.SP2 + http://tennet.nl/CGMES + 2023-06-25T22:30:00Z + This is an example of assessed element profile. + urn:uuid:08b2c358-7163-4d18-878a-70e74bdb7194 + urn:uuid:87da6373-3b6c-47a2-9493-1918a8d9df61 + 2022-05-21T07:05:25Z + 2022-06-25T22:30:00Z + 1.0 + http://entsoe.eu/ns/CIM/AssessedElement-EU/2.2 + https://creativecommons.org/licenses/by/4.0/ + + + dbc6ebbf-7fcd-4b7a-9dd0-0ca6b4a32470 + + + true + + + + + false + adad76ed-79e7-4985-84e1-eb493f168c85 + false + This is an example of assessed element. + + true + + true + AE1NL + + + true + cc49dafb-9c28-4722-afd7-1532cb650f2d + + + + + diff --git a/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/TTN_CO.xml b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/TTN_CO.xml new file mode 100644 index 0000000000..8c643a0221 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/TTN_CO.xml @@ -0,0 +1,42 @@ + + + + http://entsoe.eu/ns/CIM/Contingency-EU/2.2 + 2023-06-25T22:30:00Z + https://creativecommons.org/licenses/by/4.0/ + PowerFactory-2022.SP2 + 2022-06-25T22:30:00Z + 1.0 + urn:uuid:b9913f2c-6933-44c8-b1ed-5fe583540fb2 + This is an example of contingency profile. + http://tennet.nl/CGMES + urn:uuid:87da6373-3b6c-47a2-9493-1918a8d9df61 + CO + + + L1 + The equipment for this contingency + f19925fa-b114-48c5-97a4-42ef84372115 + + + + + + CO1 + This is an example of an ordinary contingency + c0a25fd7-eee0-4191-98a5-71a74469d36e + + true + + diff --git a/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/TTN_RA.xml b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/TTN_RA.xml new file mode 100644 index 0000000000..63174e083b --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/TTN_RA.xml @@ -0,0 +1,47 @@ + + + + https://creativecommons.org/licenses/by/4.0/ + RA + 2022-05-21T07:05:25Z + This is an example of remedial action profile. + 1.0 + http://tennet.nl/CGMES + urn:uuid:87da6373-3b6c-47a2-9493-1918a8d9df61 + PowerFactory-2022.SP2 + 2023-06-25T22:30:00Z + urn:uuid:da2c093e-5fdb-4e34-a397-0ad477da6157 + http://entsoe.eu/ns/CIM/RemedialAction-EU/2.2 + 2022-06-25T22:30:00Z + + + e1aee6c0-2f96-4d35-aea0-0daa391ad5e0 + ShuntA1 + This is an example for shunt action + + + true + + + + 5c1e945b-4598-437f-b8ae-7c6d4b475a6c + Shunt RA + true + false + + false + + + + diff --git a/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/TTN_RAS.xml b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/TTN_RAS.xml new file mode 100644 index 0000000000..ea66c05262 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/TTN_RAS.xml @@ -0,0 +1,54 @@ + + + + 2022-06-25T23:30:00Z + This is an example of remedial action schedule profile. + http://entsoe.eu/ns/CIM/RemedialActionSchedule-EU/2.2 + 2022-06-25T22:30:00Z + 2022-05-21T07:05:25Z + http://tscnet.eu/RAO + https://creativecommons.org/licenses/by/4.0/ + urn:uuid:6dccd3c3-822b-4967-a0c5-23822e1f2a1b + RAS + PowerFactory-2022.SP2 + 1.0 + urn:uuid:87da6373-3b6c-47a2-9493-1918a8d9df61 + + + RAS + d503547c-c447-4e82-9128-a71f0f1cac6d + + + + + + + schedule + 896d710a-7da7-4be9-a55d-14c3c49d997c + + + + + + + + 0.0 + 2022-06-25T22:30:00Z + + + + 1.0 + 2022-06-26T21:30:00Z + + diff --git a/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/TTN_SAR.xml b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/TTN_SAR.xml new file mode 100644 index 0000000000..d2cbc4c8ad --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/TTN_SAR.xml @@ -0,0 +1,37 @@ + + + + 2022-05-21T07:05:25Z + urn:uuid:65175269-440b-44ae-9d3e-f743276d4bdc + http://elia.be/CGMES + 2022-06-25T22:30:00Z + https://creativecommons.org/licenses/by/4.0/ + urn:uuid:095c6b30-255d-40d5-85fe-2c9fe6c9846d + PowerFactory-2022.SP2 + http://entsoe.eu/ns/CIM/SecurityAnalysisResult-EU/2.2 + 2022-06-26T22:30:00Z + This is an example of security analysis result profile. + SAR + 1.0 + + + + 2022-06-26T05:30:00Z + + 33.00131 + 1.8 + false + + + diff --git a/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/TTN_SS.xml b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/TTN_SS.xml new file mode 100644 index 0000000000..b1a61abf94 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/TTN_SS.xml @@ -0,0 +1,49 @@ + + + + urn:uuid:36657303-b0f4-4664-a1d9-44a359c373e7 + 2023-06-25T22:30:00Z + urn:uuid:095c6b30-255d-40d5-85fe-2c9fe6c9846d + This is an example of security schedule profile. + PowerFactory-2022.SP2 + https://creativecommons.org/licenses/by/4.0/ + SS + 1.0 + http://entsoe.eu/ns/CIM/SecuritySchedule-EU/2.2 + 2022-05-21T07:05:25Z + http://tennet.nl/CGMES + 2022-06-25T22:30:00Z + + + + 2022-06-25T22:30:00Z + true + + + + 2022-06-26T10:30:00Z + true + + + fe72734c-486b-4a28-8dc0-591cf75de8e1 + Schedule 1 + + + + + + 2022-06-26T03:30:00Z + false + + From 0040aa7f74375c072ab5bd380fe4aa4e0cf41e94 Mon Sep 17 00:00:00 2001 From: jipea Date: Thu, 8 Jun 2023 15:46:59 +0200 Subject: [PATCH 03/22] add example data zip and some classes --- .../cim/importer/CimCracImporterTest.java | 2 +- .../crac-creator-csa-profiles/pom.xml | 10 +++- .../creator/csa_profile/CsaProfileCrac.java | 11 ++-- .../crac_creator/CsaProfileConstants.java | 10 ++-- .../CsaProfileCracCreationContext.java | 49 +++++++++++++++--- .../crac_creator/CsaProfileCracCreator.java | 18 ++++--- .../crac_creator/CsaProfileCracUtils.java | 2 +- .../CsaProfileContingencyCreationContext.java | 4 +- .../CsaProfileContingencyCreator.java | 2 +- .../importer/CsaProfileCracImporter.java | 34 ++++++------ .../CsaProfileCracCreationParameters.java | 16 ------ ...ileCracCreationParametersConfigLoader.java | 17 ------ ...s_NC_RDFS_SHACL_v2_2_v28Mar2023_UMLv90.zip | Bin 0 -> 336014 bytes .../CsaProfileCracImporterTest.java | 13 +++-- .../TestConfiguration_TC1_v29Mar2023.zip | Bin 0 -> 104821 bytes data/crac-creation/pom.xml | 3 +- 16 files changed, 103 insertions(+), 88 deletions(-) delete mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/parameters/CsaProfileCracCreationParameters.java delete mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/parameters/CsaProfileCracCreationParametersConfigLoader.java create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/resources/ApplicationProfiles_NC_RDFS_SHACL_v2_2_v28Mar2023_UMLv90.zip create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023.zip diff --git a/data/crac-creation/crac-creator-cim/src/test/java/com/farao_community/farao/data/crac_creation/creator/cim/importer/CimCracImporterTest.java b/data/crac-creation/crac-creator-cim/src/test/java/com/farao_community/farao/data/crac_creation/creator/cim/importer/CimCracImporterTest.java index 942bdba2ce..5b280b7c53 100644 --- a/data/crac-creation/crac-creator-cim/src/test/java/com/farao_community/farao/data/crac_creation/creator/cim/importer/CimCracImporterTest.java +++ b/data/crac-creation/crac-creator-cim/src/test/java/com/farao_community/farao/data/crac_creation/creator/cim/importer/CimCracImporterTest.java @@ -27,7 +27,7 @@ void testGetFormat() { } @Test - void testExists() { + void importNativeCrac() { InputStream is = getClass().getResourceAsStream("/cracs/CIM_21_1_1.xml"); CimCracImporter importer = new CimCracImporter(); CimCrac cimCrac = importer.importNativeCrac(is); diff --git a/data/crac-creation/crac-creator-csa-profiles/pom.xml b/data/crac-creation/crac-creator-csa-profiles/pom.xml index ca9d073601..b31a564203 100644 --- a/data/crac-creation/crac-creator-csa-profiles/pom.xml +++ b/data/crac-creation/crac-creator-csa-profiles/pom.xml @@ -43,7 +43,9 @@ org.apache.maven.plugins maven-javadoc-plugin - com.farao_community.farao.data.crac_creation.creator.cim.xsd.*:com.farao_community.farao.data.crac_creation.creator.cim.xsd:eu.entsoe.* + + com.farao_community.farao.data.crac_creation.creator.cim.xsd.*:com.farao_community.farao.data.crac_creation.creator.cim.xsd:eu.entsoe.* + @@ -80,6 +82,11 @@ 4.1 compile + + org.eclipse.rdf4j + rdf4j-rio-rdfxml + 4.2.2 + @@ -129,7 +136,6 @@ org.junit.jupiter junit-jupiter - test org.mockito diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/CsaProfileCrac.java b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/CsaProfileCrac.java index fd86fab8c3..016e808f40 100644 --- a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/CsaProfileCrac.java +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/CsaProfileCrac.java @@ -5,7 +5,7 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -package main.java.com.farao_community.farao.data.crac_creation.creator.csa_profile; +package com.farao_community.farao.data.crac_creation.creator.csa_profile; import com.farao_community.farao.data.native_crac_api.NativeCrac; @@ -13,20 +13,19 @@ * @author Jean-Pierre Arnould {@literal } */ public class CsaProfileCrac implements NativeCrac { - - +/* private final CRACDocumentType cracDocumentType; public CsaProfileCrac(CRACDocumentType cracDocumentType) { this.cracDocumentType = cracDocumentType; - } + }*/ @Override public String getFormat() { return "CsaProfileCrac"; } - public CRACDocumentType getCracDocument() { + /*public CRACDocumentType getCracDocument() { return cracDocumentType; - } + }*/ } diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileConstants.java b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileConstants.java index f46e83bc82..9027d4f709 100644 --- a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileConstants.java +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileConstants.java @@ -5,12 +5,16 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -package main.java.com.farao_community.farao.data.crac_creation.creator.csa_profile.crac_creator; +package com.farao_community.farao.data.crac_creation.creator.csa_profile.crac_creator; /** * @author Jean-Pierre Arnould {@literal } */ -public class CsaProfileConstants { +public final class CsaProfileConstants { - public static final String RDF_FORMAT_CONTINGENCY_PROFILE = "ContingencyProfile_v2_2_RDFSv2020_24Mar2023.rdf"; + private CsaProfileConstants() { + } + + //public static final String RDF_FORMAT_CSA_PROFILE = "ApplicationProfiles_NC_RDFS_SHACL_v2_2_v28Mar2023_UMLv90.zip"; + public static final String RDF_FORMAT_CSA_PROFILE = "RDFS/ContingencyProfile_v2_2_RDFSv2020_24Mar2023.rdf"; } diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracCreationContext.java b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracCreationContext.java index 24f21d365d..5192cf8ef9 100644 --- a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracCreationContext.java +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracCreationContext.java @@ -5,39 +5,74 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -package main.java.com.farao_community.farao.data.crac_creation.creator.csa_profile.crac_creator; +package com.farao_community.farao.data.crac_creation.creator.csa_profile.crac_creator; +import com.farao_community.farao.data.crac_api.Crac; import com.farao_community.farao.data.crac_creation.creator.api.CracCreationContext; import com.farao_community.farao.data.crac_creation.creator.api.CracCreationReport; +import com.farao_community.farao.data.crac_creation.creator.csa_profile.crac_creator.contingency.CsaProfileContingencyCreationContext; import java.time.OffsetDateTime; +import java.util.Set; /** * @author Jean-Pierre Arnould {@literal } */ public class CsaProfileCracCreationContext implements CracCreationContext { + + private Crac crac; + + private boolean isCreationSuccessful; + + private Set contingencyCreationContexts; + + private final CracCreationReport creationReport; + + private final OffsetDateTime timeStamp; + + private final String networkName; + + CsaProfileCracCreationContext(Crac crac, OffsetDateTime timeStamp, String networkName) { + this.crac = crac; + creationReport = new CracCreationReport(); + this.timeStamp = timeStamp; + this.networkName = networkName; + } + @Override public boolean isCreationSuccessful() { - return false; + return this.isCreationSuccessful; } @Override - public com.farao_community.farao.data.crac_api.Crac getCrac() { - return null; + public Crac getCrac() { + return this.crac; } @Override public OffsetDateTime getTimeStamp() { - return null; + return this.timeStamp; } @Override public String getNetworkName() { - return null; + return this.networkName; } @Override public CracCreationReport getCreationReport() { - return null; + return this.creationReport; + } + + CsaProfileCracCreationContext creationFailure() { + this.isCreationSuccessful = false; + this.crac = null; + return this; + } + + CsaProfileCracCreationContext creationSuccess(Crac crac) { + this.isCreationSuccessful = true; + this.crac = crac; + return this; } } diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracCreator.java b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracCreator.java index c3c11e1ac5..e67f5ff0a1 100644 --- a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracCreator.java +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracCreator.java @@ -5,13 +5,13 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -package main.java.com.farao_community.farao.data.crac_creation.creator.csa_profile.crac_creator; +package com.farao_community.farao.data.crac_creation.creator.csa_profile.crac_creator; +import com.farao_community.farao.data.crac_api.Crac; import com.farao_community.farao.data.crac_creation.creator.api.CracCreator; import com.farao_community.farao.data.crac_creation.creator.api.parameters.CracCreationParameters; -import com.farao_community.farao.data.crac_creation.creator.cim.CimCrac; -import com.farao_community.farao.data.crac_creation.creator.cim.crac_creator.CimCracCreationContext; -import main.java.com.farao_community.farao.data.crac_creation.creator.csa_profile.CsaProfileCrac; +import com.farao_community.farao.data.crac_creation.creator.csa_profile.CsaProfileCrac; +import com.powsybl.iidm.network.Network; import java.time.OffsetDateTime; @@ -19,13 +19,17 @@ * @author Jean-Pierre Arnould {@literal } */ public class CsaProfileCracCreator implements CracCreator { + + private Crac crac; + private Network network; + CsaProfileCracCreationContext creationContext; + @Override public String getNativeCracFormat() { return null; } - @Override - public CsaProfileCracCreationContext createCrac(CsaProfileCrac nativeCrac, com.powsybl.iidm.network.Network network, OffsetDateTime offsetDateTime, CracCreationParameters cracCreationParameters) { - return null; + public CsaProfileCracCreationContext createCrac(CsaProfileCrac nativeCrac, Network network, OffsetDateTime offsetDateTime, CracCreationParameters cracCreationParameters) { + return creationContext.creationSuccess(crac); } } diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracUtils.java b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracUtils.java index 6af6e369cb..28ef5f2cc0 100644 --- a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracUtils.java +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracUtils.java @@ -5,7 +5,7 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -package main.java.com.farao_community.farao.data.crac_creation.creator.csa_profile.crac_creator; +package com.farao_community.farao.data.crac_creation.creator.csa_profile.crac_creator; /** * @author Jean-Pierre Arnould {@literal } diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/contingency/CsaProfileContingencyCreationContext.java b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/contingency/CsaProfileContingencyCreationContext.java index d88edd8baa..0c80fdfe2d 100644 --- a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/contingency/CsaProfileContingencyCreationContext.java +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/contingency/CsaProfileContingencyCreationContext.java @@ -5,7 +5,7 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -package main.java.com.farao_community.farao.data.crac_creation.creator.csa_profile.crac_creator.contingency; +package com.farao_community.farao.data.crac_creation.creator.csa_profile.crac_creator.contingency; import com.farao_community.farao.data.crac_creation.creator.api.ElementaryCreationContext; import com.farao_community.farao.data.crac_creation.creator.api.ImportStatus; @@ -13,7 +13,7 @@ /** * @author Jean-Pierre Arnould {@literal } */ -public class CsaProfileContingencyCreationContext implements ElementaryCreationContext { +public final class CsaProfileContingencyCreationContext implements ElementaryCreationContext { private String contingencyID; private String contingencyName; private ImportStatus importStatus; diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/contingency/CsaProfileContingencyCreator.java b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/contingency/CsaProfileContingencyCreator.java index 5fbf52efd9..8e90cc453b 100644 --- a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/contingency/CsaProfileContingencyCreator.java +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/contingency/CsaProfileContingencyCreator.java @@ -5,7 +5,7 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -package main.java.com.farao_community.farao.data.crac_creation.creator.csa_profile.crac_creator.contingency; +package com.farao_community.farao.data.crac_creation.creator.csa_profile.crac_creator.contingency; /** * @author Jean-Pierre Arnould {@literal } diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/importer/CsaProfileCracImporter.java b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/importer/CsaProfileCracImporter.java index 50f456357f..1cf4ee5841 100644 --- a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/importer/CsaProfileCracImporter.java +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/importer/CsaProfileCracImporter.java @@ -5,18 +5,16 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -package main.java.com.farao_community.farao.data.crac_creation.creator.csa_profile.importer; +package com.farao_community.farao.data.crac_creation.creator.csa_profile.importer; -import main.java.com.farao_community.farao.data.crac_creation.creator.csa_profile.xsd.CRACDocumentType; +import com.farao_community.farao.data.crac_creation.creator.csa_profile.CsaProfileCrac; +import com.farao_community.farao.data.crac_creation.creator.csa_profile.crac_creator.CsaProfileConstants; import com.farao_community.farao.data.native_crac_io_api.NativeCracImporter; import com.google.auto.service.AutoService; -import main.java.com.farao_community.farao.data.crac_creation.creator.csa_profile.CsaProfileCrac; -import main.java.com.farao_community.farao.data.crac_creation.creator.csa_profile.crac_creator.CsaProfileConstants; import org.eclipse.rdf4j.rio.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.xml.transform.stream.StreamSource; import java.io.IOException; import java.io.InputStream; import java.io.UncheckedIOException; @@ -28,14 +26,15 @@ public class CsaProfileCracImporter implements NativeCracImporter { private static final Logger LOGGER = LoggerFactory.getLogger(CsaProfileCracImporter.class); + @Override public String getFormat() { return "CsaProfileCrac"; } @Override - public CsaProfileCrac importNativeCrac(InputStream inputStream){ - CRACDocumentType cracDocumentType; + public CsaProfileCrac importNativeCrac(InputStream inputStream) { + /*CRACDocumentType cracDocumentType; try { cracDocumentType = JAXBContext.newInstance(CRACDocumentType.class) .createUnmarshaller() @@ -43,29 +42,26 @@ public CsaProfileCrac importNativeCrac(InputStream inputStream){ .getValue(); } catch (JAXBException e) { throw new FaraoException(e); - } - return new CsaProfileCrac(cracDocumentType); + }*/ + return new CsaProfileCrac(); } @Override public boolean exists(String fileName, InputStream inputStream) { try { - RDFFormat rdfFormatContingencies = Rio.getParserFormatForFileName(String.valueOf(this.getClass().getResource(CsaProfileConstants.RDF_FORMAT_CONTINGENCY_PROFILE))).orElse(RDFFormat.RDFXML); + RDFFormat rdfFormatContingencies = Rio.getParserFormatForFileName(String.valueOf(this.getClass().getResource(CsaProfileConstants.RDF_FORMAT_CSA_PROFILE))).orElse(RDFFormat.RDFXML); RDFParser rdfParser = Rio.createParser(rdfFormatContingencies); rdfParser.parse(inputStream); LOGGER.info("CSA PROFILE CRAC document is valid"); return true; - } - catch (IOException e) { + } catch (IOException e) { throw new UncheckedIOException(e); - } - catch (RDFParseException e) { - LOGGER.debug("CSA PROFILE CRAC document is NOT valid. Reason: RDF parsing problem : {}", e.getMessage()); - return false; - } - catch (RDFHandlerException e) { - LOGGER.debug("CSA PROFILE CRAC document is NOT valid. Reason: RDF handler problem : {}", e.getMessage()); + } catch (RDFParseException e) { + LOGGER.debug("CSA PROFILE CRAC document is NOT valid. Reason: RDF parsing problem : {}"); return false; + } catch (RDFHandlerException e) { + LOGGER.debug("CSA PROFILE CRAC document is NOT valid. Reason: RDF handler problem :"); + return true; } } } diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/parameters/CsaProfileCracCreationParameters.java b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/parameters/CsaProfileCracCreationParameters.java deleted file mode 100644 index 52204bbe11..0000000000 --- a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/parameters/CsaProfileCracCreationParameters.java +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright (c) 2023, RTE (http://www.rte-france.com) - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ - -package main.java.com.farao_community.farao.data.crac_creation.creator.csa_profile.parameters; - -import com.farao_community.farao.data.crac_creation.creator.api.parameters.AbstractAlignedRaCracCreationParameters; - -/** - * @author Jean-Pierre Arnould {@literal } - */ -public class CsaProfileCracCreationParameters extends AbstractAlignedRaCracCreationParameters { -} diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/parameters/CsaProfileCracCreationParametersConfigLoader.java b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/parameters/CsaProfileCracCreationParametersConfigLoader.java deleted file mode 100644 index a328def6b4..0000000000 --- a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/parameters/CsaProfileCracCreationParametersConfigLoader.java +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright (c) 2023, RTE (http://www.rte-france.com) - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ - -package main.java.com.farao_community.farao.data.crac_creation.creator.csa_profile.parameters; - -import com.farao_community.farao.data.crac_creation.creator.api.parameters.CracCreationParameters; -import com.farao_community.farao.data.crac_creation.creator.cim.parameters.CimCracCreationParameters; - -/** - * @author Jean-Pierre Arnould {@literal } - */ -public class CsaProfileCracCreationParametersConfigLoader implements CracCreationParameters.ConfigLoader { -} diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/resources/ApplicationProfiles_NC_RDFS_SHACL_v2_2_v28Mar2023_UMLv90.zip b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/ApplicationProfiles_NC_RDFS_SHACL_v2_2_v28Mar2023_UMLv90.zip new file mode 100644 index 0000000000000000000000000000000000000000..eafd86089620c5a4c2345724f8b667572bfad9b6 GIT binary patch literal 336014 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�&g5^X_TwJcqI~n(4 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 A4*&oF literal 0 HcmV?d00001 diff --git a/data/crac-creation/crac-creator-csa-profiles/src/test/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracImporterTest.java b/data/crac-creation/crac-creator-csa-profiles/src/test/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracImporterTest.java index cf23f7ddbb..f63d495f68 100644 --- a/data/crac-creation/crac-creator-csa-profiles/src/test/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracImporterTest.java +++ b/data/crac-creation/crac-creator-csa-profiles/src/test/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracImporterTest.java @@ -4,12 +4,13 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -package test.java.com.farao_community.farao.data.crac_creation.creator.csa_profile.crac_creator; +package com.farao_community.farao.data.crac_creation.creator.csa_profile.crac_creator; -import com.farao_community.farao.data.crac_creation.creator.cim.importer.CimCracImporter; -import main.java.com.farao_community.farao.data.crac_creation.creator.csa_profile.importer.CsaProfileCracImporter; +import com.farao_community.farao.data.crac_creation.creator.csa_profile.importer.CsaProfileCracImporter; import org.junit.jupiter.api.Test; +import java.io.InputStream; + import static org.junit.jupiter.api.Assertions.assertEquals; /** @@ -24,7 +25,9 @@ void getFormat() { } @Test - void testrdf() { - + void testExists() { + InputStream is1 = getClass().getResourceAsStream("/TestConfiguration_TC1_v29Mar2023.zip"); + CsaProfileCracImporter importer = new CsaProfileCracImporter(); + //assertTrue(importer.exists("TestConfiguration_TC1_v29Mar2023.zip", is1)); } } diff --git a/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023.zip b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023.zip new file mode 100644 index 0000000000000000000000000000000000000000..14f1633d09eb86ba18583e3a9d06d16c11004297 GIT binary patch literal 104821 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
2w7WD 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 X1aM0P0yJVm5O?7AWGnCu@YVkVw7myo literal 0 HcmV?d00001 diff --git a/data/crac-creation/pom.xml b/data/crac-creation/pom.xml index f8d2873ad4..c41f05658f 100644 --- a/data/crac-creation/pom.xml +++ b/data/crac-creation/pom.xml @@ -25,7 +25,8 @@ crac-creation-util crac-creator-api crac-creator-cse - crac-creator-cim + crac-creator-cim + crac-creator-csa-profiles crac-creator-fb-constraint From d11d40add0b42a2c6a6e4eb4428beb188b84ab43 Mon Sep 17 00:00:00 2001 From: jipea Date: Tue, 13 Jun 2023 18:15:02 +0200 Subject: [PATCH 04/22] add contingency creation --- .../contingency/CimContingencyCreator.java | 8 +-- .../crac-creator-csa-profiles/pom.xml | 1 - .../creator/csa_profile/CsaProfileCrac.java | 36 +++++++++--- .../crac_creator/CsaProfileConstants.java | 35 +++++++++++- .../CsaProfileCracCreationContext.java | 5 ++ .../crac_creator/CsaProfileCracCreator.java | 7 +++ .../CsaProfileContingencyCreationContext.java | 12 +++- .../CsaProfileContingencyCreator.java | 57 +++++++++++++++++++ .../importer/CsaProfileCracImporter.java | 18 +++--- .../src/main/resources/csa_profile.sparql | 40 +++++++++++++ .../CsaProfileCracImporterTest.java | 5 +- 11 files changed, 193 insertions(+), 31 deletions(-) create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/main/resources/csa_profile.sparql diff --git a/data/crac-creation/crac-creator-cim/src/main/java/com/farao_community/farao/data/crac_creation/creator/cim/crac_creator/contingency/CimContingencyCreator.java b/data/crac-creation/crac-creator-cim/src/main/java/com/farao_community/farao/data/crac_creation/creator/cim/crac_creator/contingency/CimContingencyCreator.java index fbdd1415f8..455d162b78 100644 --- a/data/crac-creation/crac-creator-cim/src/main/java/com/farao_community/farao/data/crac_creation/creator/cim/crac_creator/contingency/CimContingencyCreator.java +++ b/data/crac-creation/crac-creator-cim/src/main/java/com/farao_community/farao/data/crac_creation/creator/cim/crac_creator/contingency/CimContingencyCreator.java @@ -16,13 +16,13 @@ import com.powsybl.iidm.network.Identifiable; import com.powsybl.iidm.network.Network; -import static com.farao_community.farao.data.crac_creation.creator.cim.crac_creator.CimConstants.CONTINGENCY_SERIES_BUSINESS_TYPE; - import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.stream.Collectors; +import static com.farao_community.farao.data.crac_creation.creator.cim.crac_creator.CimConstants.CONTINGENCY_SERIES_BUSINESS_TYPE; + /** * @author Godelaine de Montmorillon {@literal } */ @@ -64,8 +64,8 @@ public void createAndAddContingencies() { private void addContingency(ContingencySeries cimContingency) { String createdContingencyId = cimContingency.getMRID(); ContingencyAdder contingencyAdder = crac.newContingency() - .withId(createdContingencyId) - .withName(cimContingency.getName()); + .withId(createdContingencyId) + .withName(cimContingency.getName()); if (cimContingency.getRegisteredResource().isEmpty()) { cimContingencyCreationContexts.add(CimContingencyCreationContext.notImported(createdContingencyId, cimContingency.getName(), ImportStatus.INCOMPLETE_DATA, "No registered resources")); diff --git a/data/crac-creation/crac-creator-csa-profiles/pom.xml b/data/crac-creation/crac-creator-csa-profiles/pom.xml index b31a564203..41a95fcda5 100644 --- a/data/crac-creation/crac-creator-csa-profiles/pom.xml +++ b/data/crac-creation/crac-creator-csa-profiles/pom.xml @@ -126,7 +126,6 @@ com.powsybl powsybl-triple-store-impl-rdf4j ${powsybl.core.version} - runtime com.powsybl diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/CsaProfileCrac.java b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/CsaProfileCrac.java index 016e808f40..79254fe937 100644 --- a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/CsaProfileCrac.java +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/CsaProfileCrac.java @@ -7,25 +7,45 @@ package com.farao_community.farao.data.crac_creation.creator.csa_profile; +import com.farao_community.farao.data.crac_creation.creator.csa_profile.crac_creator.CsaProfileConstants; import com.farao_community.farao.data.native_crac_api.NativeCrac; +import com.powsybl.triplestore.api.PropertyBags; +import com.powsybl.triplestore.api.QueryCatalog; +import com.powsybl.triplestore.api.TripleStore; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * @author Jean-Pierre Arnould {@literal } */ public class CsaProfileCrac implements NativeCrac { -/* - private final CRACDocumentType cracDocumentType; - public CsaProfileCrac(CRACDocumentType cracDocumentType) { - this.cracDocumentType = cracDocumentType; - }*/ + private final TripleStore tripleStoreCsaProfileCrac; + + private final QueryCatalog queryCatalogCsaProfileCrac; + + private static final Logger LOGGER = LoggerFactory.getLogger(CsaProfileCrac.class); + + public CsaProfileCrac(TripleStore tripleStoreCsaProfileCrac) { + this.tripleStoreCsaProfileCrac = tripleStoreCsaProfileCrac; + this.queryCatalogCsaProfileCrac = new QueryCatalog(CsaProfileConstants.SPARQL_FILE_CSA_PROFILE); + } @Override public String getFormat() { return "CsaProfileCrac"; } - /*public CRACDocumentType getCracDocument() { - return cracDocumentType; - }*/ + private PropertyBags queryTripleStore(String queryKey) { + String query = queryCatalogCsaProfileCrac.get(queryKey); + if (query == null) { + LOGGER.warn("Query [{}] not found in catalog", queryKey); + return new PropertyBags(); + } + return tripleStoreCsaProfileCrac.query(query); + } + + public PropertyBags getContingencies() { + return this.queryTripleStore(CsaProfileConstants.REQUEST_CONTINGENCIES); + } } diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileConstants.java b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileConstants.java index 9027d4f709..9e43ebc889 100644 --- a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileConstants.java +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileConstants.java @@ -15,6 +15,37 @@ public final class CsaProfileConstants { private CsaProfileConstants() { } - //public static final String RDF_FORMAT_CSA_PROFILE = "ApplicationProfiles_NC_RDFS_SHACL_v2_2_v28Mar2023_UMLv90.zip"; - public static final String RDF_FORMAT_CSA_PROFILE = "RDFS/ContingencyProfile_v2_2_RDFSv2020_24Mar2023.rdf"; + /** + * constants to read rdf files + */ + + public static final String RDF_FORMAT_CSA_PROFILE = "ApplicationProfiles_NC_RDFS_SHACL_v2_2_v28Mar2023_UMLv90.zip"; + //public static final String RDF_FORMAT_CSA_PROFILE = "RDFS/ContingencyProfile_v2_2_RDFSv2020_24Mar2023.rdf"; + + public static final String RDF_BASE_URL = "http://entsoe.eu"; + + public static final String TRIPLESTORE_RDF4J_NAME = "rdf4j"; + + /** + * constants to access triplestore data + */ + + public static final String SPARQL_FILE_CSA_PROFILE = "csa_profile.sparql"; + + public static final String REQUEST_CONTINGENCIES = "contingencies"; + + public static final String REQUEST_CONTINGENCIES_RDFID = "rdfId"; + + public static final String REQUEST_CONTINGENCIES_NAME = "name"; + + public static final String REQUEST_CONTINGENCIES_EQUIPMENT_OPERATOR = "idEquipmentOperator"; + + public static final String REQUEST_CONTINGENCIES_EQUIPMENT = "contingencyEquipmentId"; + + public static final String REQUEST_CONTINGENCIES_MUST_STUDY = "normalMustStudy"; + + public static final String REQUEST_CONTINGENCIES_CONTINGENT_STATUS = "contingentStatus"; + + public static final String IMPORTED_CONTINGENT_STATUS = "http://iec.ch/TC57/CIM100#ContingencyEquipmentStatusKind.outOfService"; + } diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracCreationContext.java b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracCreationContext.java index 5192cf8ef9..c51496bbff 100644 --- a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracCreationContext.java +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracCreationContext.java @@ -14,6 +14,7 @@ import java.time.OffsetDateTime; import java.util.Set; +import java.util.stream.Collectors; /** * @author Jean-Pierre Arnould {@literal } @@ -59,6 +60,10 @@ public String getNetworkName() { return this.networkName; } + public void setContingencyCreationContexts(Set contingencyCreationContexts) { + this.contingencyCreationContexts = contingencyCreationContexts.stream().collect(Collectors.toSet()); + } + @Override public CracCreationReport getCreationReport() { return this.creationReport; diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracCreator.java b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracCreator.java index e67f5ff0a1..cdb6aa3792 100644 --- a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracCreator.java +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracCreator.java @@ -11,7 +11,9 @@ import com.farao_community.farao.data.crac_creation.creator.api.CracCreator; import com.farao_community.farao.data.crac_creation.creator.api.parameters.CracCreationParameters; import com.farao_community.farao.data.crac_creation.creator.csa_profile.CsaProfileCrac; +import com.farao_community.farao.data.crac_creation.creator.csa_profile.crac_creator.contingency.CsaProfileContingencyCreator; import com.powsybl.iidm.network.Network; +import com.powsybl.triplestore.api.PropertyBags; import java.time.OffsetDateTime; @@ -30,6 +32,11 @@ public String getNativeCracFormat() { } public CsaProfileCracCreationContext createCrac(CsaProfileCrac nativeCrac, Network network, OffsetDateTime offsetDateTime, CracCreationParameters cracCreationParameters) { + //TODO return creationContext.creationSuccess(crac); } + + private void createContingencies(PropertyBags contingenciesPropertyBags) { + new CsaProfileContingencyCreator(crac, network, contingenciesPropertyBags, creationContext).createAndAddContingencies(); + } } diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/contingency/CsaProfileContingencyCreationContext.java b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/contingency/CsaProfileContingencyCreationContext.java index 0c80fdfe2d..59118242a5 100644 --- a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/contingency/CsaProfileContingencyCreationContext.java +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/contingency/CsaProfileContingencyCreationContext.java @@ -17,19 +17,25 @@ public final class CsaProfileContingencyCreationContext implements ElementaryCre private String contingencyID; private String contingencyName; private ImportStatus importStatus; - private String createdContingencyId; private String importStatusDetail; private boolean isAltered; - private CsaProfileContingencyCreationContext(String contingencyID, String contingencyName, ImportStatus importStatus, String createdContingencyId, String importStatusDetail, boolean isAltered) { + private CsaProfileContingencyCreationContext(String contingencyID, String contingencyName, ImportStatus importStatus, String importStatusDetail, boolean isAltered) { this.contingencyID = contingencyID; this.contingencyName = contingencyName; this.importStatus = importStatus; - this.createdContingencyId = createdContingencyId; this.importStatusDetail = importStatusDetail; this.isAltered = isAltered; } + public static CsaProfileContingencyCreationContext imported(String contingencyID, String contingencyName, String importStatusDetail, boolean isAltered) { + return new CsaProfileContingencyCreationContext(contingencyID, contingencyName, ImportStatus.IMPORTED, importStatusDetail, isAltered); + } + + public static CsaProfileContingencyCreationContext notImported(String contingencyID, String contingencyName, ImportStatus importStatus, String importStatusDetail) { + return new CsaProfileContingencyCreationContext(contingencyID, contingencyName, importStatus, importStatusDetail, false); + } + @Override public String getNativeId() { return this.contingencyID; diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/contingency/CsaProfileContingencyCreator.java b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/contingency/CsaProfileContingencyCreator.java index 8e90cc453b..d75fb5c85e 100644 --- a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/contingency/CsaProfileContingencyCreator.java +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/contingency/CsaProfileContingencyCreator.java @@ -7,8 +7,65 @@ package com.farao_community.farao.data.crac_creation.creator.csa_profile.crac_creator.contingency; +import com.farao_community.farao.data.crac_api.ContingencyAdder; +import com.farao_community.farao.data.crac_api.Crac; +import com.farao_community.farao.data.crac_creation.creator.api.ImportStatus; +import com.farao_community.farao.data.crac_creation.creator.csa_profile.crac_creator.CsaProfileConstants; +import com.farao_community.farao.data.crac_creation.creator.csa_profile.crac_creator.CsaProfileCracCreationContext; +import com.powsybl.iidm.network.Network; +import com.powsybl.triplestore.api.PropertyBag; +import com.powsybl.triplestore.api.PropertyBags; + +import java.util.HashSet; +import java.util.Set; + /** * @author Jean-Pierre Arnould {@literal } */ public class CsaProfileContingencyCreator { + + private final Crac crac; + + private final Network network; + + private final PropertyBags contingenciesPropertybags; + + private Set csaProfileContingencyCreationContexts; + private CsaProfileCracCreationContext cracCreationContext; + + public CsaProfileContingencyCreator(Crac crac, Network network, PropertyBags contingenciesPropertybags, CsaProfileCracCreationContext cracCreationContext) { + this.crac = crac; + this.network = network; + this.contingenciesPropertybags = contingenciesPropertybags; + this.cracCreationContext = cracCreationContext; + } + + public void createAndAddContingencies() { + this.csaProfileContingencyCreationContexts = new HashSet<>(); + + for (PropertyBag contingencyPropertyBag : contingenciesPropertybags) { + String contingencyId = contingencyPropertyBag.get(CsaProfileConstants.REQUEST_CONTINGENCIES_RDFID); + String contingencyName = contingencyPropertyBag.get(CsaProfileConstants.REQUEST_CONTINGENCIES_NAME).concat(contingencyPropertyBag.get(CsaProfileConstants.REQUEST_CONTINGENCIES_EQUIPMENT_OPERATOR)); + String equipmentId = contingencyPropertyBag.get(CsaProfileConstants.REQUEST_CONTINGENCIES_EQUIPMENT); + Boolean mustStudy = Boolean.parseBoolean(contingencyPropertyBag.get(CsaProfileConstants.REQUEST_CONTINGENCIES_MUST_STUDY)); + String contingentStatus = contingencyPropertyBag.get(CsaProfileConstants.REQUEST_CONTINGENCIES_CONTINGENT_STATUS); + + if (!CsaProfileConstants.IMPORTED_CONTINGENT_STATUS.equals(contingentStatus)) { + csaProfileContingencyCreationContexts.add(CsaProfileContingencyCreationContext.notImported(contingencyId, contingencyName, ImportStatus.INCONSISTENCY_IN_DATA, "incorrect contingent status")); + return; + } + + if (!mustStudy) { + csaProfileContingencyCreationContexts.add(CsaProfileContingencyCreationContext.notImported(contingencyId, contingencyName, ImportStatus.INCONSISTENCY_IN_DATA, "contingency.mustStudy is false")); + return; + } + + ContingencyAdder contingencyAdder = crac.newContingency() + .withId(contingencyId) + .withName(contingencyName); + csaProfileContingencyCreationContexts.add(CsaProfileContingencyCreationContext.imported(contingencyId, contingencyName, "contingency imported correctly", false)); + + } + this.cracCreationContext.setContingencyCreationContexts(csaProfileContingencyCreationContexts); + } } diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/importer/CsaProfileCracImporter.java b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/importer/CsaProfileCracImporter.java index 1cf4ee5841..c982df58a6 100644 --- a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/importer/CsaProfileCracImporter.java +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/importer/CsaProfileCracImporter.java @@ -11,6 +11,8 @@ import com.farao_community.farao.data.crac_creation.creator.csa_profile.crac_creator.CsaProfileConstants; import com.farao_community.farao.data.native_crac_io_api.NativeCracImporter; import com.google.auto.service.AutoService; +import com.powsybl.triplestore.api.TripleStore; +import com.powsybl.triplestore.api.TripleStoreFactory; import org.eclipse.rdf4j.rio.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -34,16 +36,10 @@ public String getFormat() { @Override public CsaProfileCrac importNativeCrac(InputStream inputStream) { - /*CRACDocumentType cracDocumentType; - try { - cracDocumentType = JAXBContext.newInstance(CRACDocumentType.class) - .createUnmarshaller() - .unmarshal(new StreamSource(inputStream), CRACDocumentType.class) - .getValue(); - } catch (JAXBException e) { - throw new FaraoException(e); - }*/ - return new CsaProfileCrac(); + TripleStore tripleStoreCsaProfile; + tripleStoreCsaProfile = TripleStoreFactory.create(CsaProfileConstants.TRIPLESTORE_RDF4J_NAME); + tripleStoreCsaProfile.read(inputStream, "", ""); + return new CsaProfileCrac(tripleStoreCsaProfile); } @Override @@ -51,7 +47,7 @@ public boolean exists(String fileName, InputStream inputStream) { try { RDFFormat rdfFormatContingencies = Rio.getParserFormatForFileName(String.valueOf(this.getClass().getResource(CsaProfileConstants.RDF_FORMAT_CSA_PROFILE))).orElse(RDFFormat.RDFXML); RDFParser rdfParser = Rio.createParser(rdfFormatContingencies); - rdfParser.parse(inputStream); + rdfParser.parse(inputStream, CsaProfileConstants.RDF_BASE_URL); LOGGER.info("CSA PROFILE CRAC document is valid"); return true; } catch (IOException e) { diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/resources/csa_profile.sparql b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/csa_profile.sparql new file mode 100644 index 0000000000..218753e768 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/csa_profile.sparql @@ -0,0 +1,40 @@ +# +# Copyright (c) 2021, RTE (http://www.rte-france.com) +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# + +# query: analogs +SELECT * +WHERE { +{ GRAPH ?graph { + ?Analog + a cim:Analog ; + cim:Measurement.PowerSystemResource ?powerSystemResource ; + cim:Measurement.measurementType ?type . + OPTIONAL { ?Analog cim:Measurement.Terminal ?Terminal } +}} +} + +# query: discretes +SELECT * +WHERE { +{ GRAPH ?graph { + ?Discrete + a cim:Discrete ; + cim:Measurement.PowerSystemResource ?powerSystemResource ; + cim:Measurement.measurementType ?type . + OPTIONAL { ?Discrete cim:Measurement.Terminal ?Terminal } +}} +} + +# query: bays +SELECT * +WHERE { +{ GRAPH ?graph { + ?Bay + a cim:Bay ; + cim:Bay.VoltageLevel ?VoltageLevel +}} +} \ No newline at end of file diff --git a/data/crac-creation/crac-creator-csa-profiles/src/test/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracImporterTest.java b/data/crac-creation/crac-creator-csa-profiles/src/test/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracImporterTest.java index f63d495f68..a5e55bfd79 100644 --- a/data/crac-creation/crac-creator-csa-profiles/src/test/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracImporterTest.java +++ b/data/crac-creation/crac-creator-csa-profiles/src/test/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracImporterTest.java @@ -12,6 +12,7 @@ import java.io.InputStream; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; /** * @author Jean-Pierre Arnould {@literal } @@ -26,8 +27,8 @@ void getFormat() { @Test void testExists() { - InputStream is1 = getClass().getResourceAsStream("/TestConfiguration_TC1_v29Mar2023.zip"); + InputStream is1 = getClass().getResourceAsStream("/TestConfiguration_TC1_v29Mar2023/ELIA_CO.xml"); CsaProfileCracImporter importer = new CsaProfileCracImporter(); - //assertTrue(importer.exists("TestConfiguration_TC1_v29Mar2023.zip", is1)); + assertTrue(importer.exists("ELIA_CO.xml", is1)); } } From e291efdc75a6e59b3cf603605386be604271688f Mon Sep 17 00:00:00 2001 From: jipea Date: Tue, 13 Jun 2023 18:18:50 +0200 Subject: [PATCH 05/22] corrections --- data/crac-creation/crac-creator-cim/pom.xml | 8 +++++--- .../creator/cim/importer/CimCracImporterTest.java | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/data/crac-creation/crac-creator-cim/pom.xml b/data/crac-creation/crac-creator-cim/pom.xml index d5a5fa733d..be7fb11708 100644 --- a/data/crac-creation/crac-creator-cim/pom.xml +++ b/data/crac-creation/crac-creator-cim/pom.xml @@ -42,9 +42,11 @@ org.apache.maven.plugins maven-javadoc-plugin - + + + com.farao_community.farao.data.crac_creation.creator.cim.xsd.*:com.farao_community.farao.data.crac_creation.creator.cim.xsd:eu.entsoe.* + + diff --git a/data/crac-creation/crac-creator-cim/src/test/java/com/farao_community/farao/data/crac_creation/creator/cim/importer/CimCracImporterTest.java b/data/crac-creation/crac-creator-cim/src/test/java/com/farao_community/farao/data/crac_creation/creator/cim/importer/CimCracImporterTest.java index 5b280b7c53..07b7fac11e 100644 --- a/data/crac-creation/crac-creator-cim/src/test/java/com/farao_community/farao/data/crac_creation/creator/cim/importer/CimCracImporterTest.java +++ b/data/crac-creation/crac-creator-cim/src/test/java/com/farao_community/farao/data/crac_creation/creator/cim/importer/CimCracImporterTest.java @@ -21,7 +21,7 @@ class CimCracImporterTest { @Test - void testGetFormat() { + void getFormat() { CimCracImporter cimCracImporter = new CimCracImporter(); assertEquals("CimCrac", cimCracImporter.getFormat()); } From da6b39f62b56fefe80cf1d9e32f21d44247cb53d Mon Sep 17 00:00:00 2001 From: jipea Date: Fri, 16 Jun 2023 09:30:50 +0200 Subject: [PATCH 06/22] corrections sparql file --- .../creator/csa_profile/CsaProfileCrac.java | 13 ++++- .../crac_creator/CsaProfileConstants.java | 6 ++- .../crac_creator/CsaProfileCracCreator.java | 1 + .../CsaProfileContingencyCreator.java | 39 +++++++------- .../importer/CsaProfileCracImporter.java | 2 +- .../src/main/resources/csa_profile.sparql | 54 +++++++++++++------ .../CsaProfileCracImporterTest.java | 15 +++++- 7 files changed, 90 insertions(+), 40 deletions(-) diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/CsaProfileCrac.java b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/CsaProfileCrac.java index 79254fe937..dbac00176e 100644 --- a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/CsaProfileCrac.java +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/CsaProfileCrac.java @@ -15,6 +15,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.Arrays; +import java.util.List; + /** * @author Jean-Pierre Arnould {@literal } */ @@ -45,7 +48,15 @@ private PropertyBags queryTripleStore(String queryKey) { return tripleStoreCsaProfileCrac.query(query); } + private PropertyBags queryTripleStore(List queryKeys) { + PropertyBags mergedPropertyBags = new PropertyBags(); + for (String queryKey : queryKeys) { + mergedPropertyBags.addAll(queryTripleStore(queryKey)); + } + return mergedPropertyBags; + } + public PropertyBags getContingencies() { - return this.queryTripleStore(CsaProfileConstants.REQUEST_CONTINGENCIES); + return this.queryTripleStore(Arrays.asList(CsaProfileConstants.REQUEST_ORDINARY_CONTINGENCY, CsaProfileConstants.REQUEST_EXCEPTIONAL_CONTINGENCY, CsaProfileConstants.REQUEST_OUT_OF_RANGE_CONTINGENCY)); } } diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileConstants.java b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileConstants.java index 9e43ebc889..a4ce885b25 100644 --- a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileConstants.java +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileConstants.java @@ -32,7 +32,11 @@ private CsaProfileConstants() { public static final String SPARQL_FILE_CSA_PROFILE = "csa_profile.sparql"; - public static final String REQUEST_CONTINGENCIES = "contingencies"; + public static final String REQUEST_ORDINARY_CONTINGENCY = "ordinaryContingency"; + + public static final String REQUEST_EXCEPTIONAL_CONTINGENCY = "exceptionalContingency"; + + public static final String REQUEST_OUT_OF_RANGE_CONTINGENCY = "outOfRangeContingency"; public static final String REQUEST_CONTINGENCIES_RDFID = "rdfId"; diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracCreator.java b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracCreator.java index cdb6aa3792..496e769568 100644 --- a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracCreator.java +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracCreator.java @@ -33,6 +33,7 @@ public String getNativeCracFormat() { public CsaProfileCracCreationContext createCrac(CsaProfileCrac nativeCrac, Network network, OffsetDateTime offsetDateTime, CracCreationParameters cracCreationParameters) { //TODO + createContingencies(nativeCrac.getContingencies()); return creationContext.creationSuccess(crac); } diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/contingency/CsaProfileContingencyCreator.java b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/contingency/CsaProfileContingencyCreator.java index d75fb5c85e..d48c69ec87 100644 --- a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/contingency/CsaProfileContingencyCreator.java +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/contingency/CsaProfileContingencyCreator.java @@ -7,7 +7,6 @@ package com.farao_community.farao.data.crac_creation.creator.csa_profile.crac_creator.contingency; -import com.farao_community.farao.data.crac_api.ContingencyAdder; import com.farao_community.farao.data.crac_api.Crac; import com.farao_community.farao.data.crac_creation.creator.api.ImportStatus; import com.farao_community.farao.data.crac_creation.creator.csa_profile.crac_creator.CsaProfileConstants; @@ -42,29 +41,33 @@ public CsaProfileContingencyCreator(Crac crac, Network network, PropertyBags con public void createAndAddContingencies() { this.csaProfileContingencyCreationContexts = new HashSet<>(); + Set alreadyProcessedContingenciesId = new HashSet<>(); for (PropertyBag contingencyPropertyBag : contingenciesPropertybags) { String contingencyId = contingencyPropertyBag.get(CsaProfileConstants.REQUEST_CONTINGENCIES_RDFID); - String contingencyName = contingencyPropertyBag.get(CsaProfileConstants.REQUEST_CONTINGENCIES_NAME).concat(contingencyPropertyBag.get(CsaProfileConstants.REQUEST_CONTINGENCIES_EQUIPMENT_OPERATOR)); - String equipmentId = contingencyPropertyBag.get(CsaProfileConstants.REQUEST_CONTINGENCIES_EQUIPMENT); - Boolean mustStudy = Boolean.parseBoolean(contingencyPropertyBag.get(CsaProfileConstants.REQUEST_CONTINGENCIES_MUST_STUDY)); - String contingentStatus = contingencyPropertyBag.get(CsaProfileConstants.REQUEST_CONTINGENCIES_CONTINGENT_STATUS); + if (!alreadyProcessedContingenciesId.contains(contingencyId)) { + String contingencyName = contingencyPropertyBag.get(CsaProfileConstants.REQUEST_CONTINGENCIES_NAME).concat(contingencyPropertyBag.get(CsaProfileConstants.REQUEST_CONTINGENCIES_EQUIPMENT_OPERATOR)); + String equipmentId = contingencyPropertyBag.get(CsaProfileConstants.REQUEST_CONTINGENCIES_EQUIPMENT); + Boolean mustStudy = Boolean.parseBoolean(contingencyPropertyBag.get(CsaProfileConstants.REQUEST_CONTINGENCIES_MUST_STUDY)); + String contingentStatus = contingencyPropertyBag.get(CsaProfileConstants.REQUEST_CONTINGENCIES_CONTINGENT_STATUS); - if (!CsaProfileConstants.IMPORTED_CONTINGENT_STATUS.equals(contingentStatus)) { - csaProfileContingencyCreationContexts.add(CsaProfileContingencyCreationContext.notImported(contingencyId, contingencyName, ImportStatus.INCONSISTENCY_IN_DATA, "incorrect contingent status")); - return; - } - - if (!mustStudy) { - csaProfileContingencyCreationContexts.add(CsaProfileContingencyCreationContext.notImported(contingencyId, contingencyName, ImportStatus.INCONSISTENCY_IN_DATA, "contingency.mustStudy is false")); - return; - } + if (!CsaProfileConstants.IMPORTED_CONTINGENT_STATUS.equals(contingentStatus)) { + csaProfileContingencyCreationContexts.add(CsaProfileContingencyCreationContext.notImported(contingencyId, contingencyName, ImportStatus.INCONSISTENCY_IN_DATA, "incorrect contingent status")); + return; + } - ContingencyAdder contingencyAdder = crac.newContingency() - .withId(contingencyId) - .withName(contingencyName); - csaProfileContingencyCreationContexts.add(CsaProfileContingencyCreationContext.imported(contingencyId, contingencyName, "contingency imported correctly", false)); + if (!mustStudy) { + csaProfileContingencyCreationContexts.add(CsaProfileContingencyCreationContext.notImported(contingencyId, contingencyName, ImportStatus.INCONSISTENCY_IN_DATA, "contingency.mustStudy is false")); + return; + } + alreadyProcessedContingenciesId.add(contingencyId); + crac.newContingency() + .withId(contingencyId) + .withName(contingencyName) + .add(); + csaProfileContingencyCreationContexts.add(CsaProfileContingencyCreationContext.imported(contingencyId, contingencyName, "contingency imported correctly", false)); + } } this.cracCreationContext.setContingencyCreationContexts(csaProfileContingencyCreationContexts); } diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/importer/CsaProfileCracImporter.java b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/importer/CsaProfileCracImporter.java index c982df58a6..80c85b37ef 100644 --- a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/importer/CsaProfileCracImporter.java +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/importer/CsaProfileCracImporter.java @@ -38,7 +38,7 @@ public String getFormat() { public CsaProfileCrac importNativeCrac(InputStream inputStream) { TripleStore tripleStoreCsaProfile; tripleStoreCsaProfile = TripleStoreFactory.create(CsaProfileConstants.TRIPLESTORE_RDF4J_NAME); - tripleStoreCsaProfile.read(inputStream, "", ""); + tripleStoreCsaProfile.read(inputStream, CsaProfileConstants.RDF_BASE_URL, ""); return new CsaProfileCrac(tripleStoreCsaProfile); } diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/resources/csa_profile.sparql b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/csa_profile.sparql index 218753e768..4371d6d897 100644 --- a/data/crac-creation/crac-creator-csa-profiles/src/main/resources/csa_profile.sparql +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/csa_profile.sparql @@ -1,40 +1,60 @@ # -# Copyright (c) 2021, RTE (http://www.rte-france.com) +# Copyright (c) 2023, RTE (http://www.rte-france.com) # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. # -# query: analogs +# query: ordinaryContingency +PREFIX cim: +PREFIX nc: SELECT * WHERE { { GRAPH ?graph { - ?Analog - a cim:Analog ; - cim:Measurement.PowerSystemResource ?powerSystemResource ; - cim:Measurement.measurementType ?type . - OPTIONAL { ?Analog cim:Measurement.Terminal ?Terminal } + ?contingencyEquipment + cim:ContingencyEquipment ?contingencyEquipmentId ; + cim:ContingencyElement.Contingency ?contingency ; + cim:ContingencyEquipment.contingentStatus ?contingentStatus ; + ?contingency + nc:OrdinaryContingency ; + cim:IdentifiedObject.name ?name ; + nc:Contingency.EquipmentOperator ?idEquipmentOperator ; + nc:Contingency.normalMustStudy ?normalMustStudy ; }} } -# query: discretes +# query: exceptionalContingency +PREFIX cim: +PREFIX nc: SELECT * WHERE { { GRAPH ?graph { - ?Discrete - a cim:Discrete ; - cim:Measurement.PowerSystemResource ?powerSystemResource ; - cim:Measurement.measurementType ?type . - OPTIONAL { ?Discrete cim:Measurement.Terminal ?Terminal } + ?contingencyEquipment + cim:ContingencyEquipment ?contingencyEquipmentId ; + cim:ContingencyElement.Contingency ?contingency ; + cim:ContingencyEquipment.contingentStatus ?contingentStatus ; + ?contingency + nc:ExceptionalContingency ; + cim:IdentifiedObject.name ?name ; + nc:Contingency.EquipmentOperator ?idEquipmentOperator ; + nc:Contingency.normalMustStudy ?normalMustStudy ; }} } -# query: bays +# query: outOfRangeContingency +PREFIX cim: +PREFIX nc: SELECT * WHERE { { GRAPH ?graph { - ?Bay - a cim:Bay ; - cim:Bay.VoltageLevel ?VoltageLevel + ?contingencyEquipment + cim:ContingencyEquipment ?contingencyEquipmentId ; + cim:ContingencyElement.Contingency ?contingency ; + cim:ContingencyEquipment.contingentStatus ?contingentStatus ; + ?contingency + nc:OutOfRangeContingency ; + cim:IdentifiedObject.name ?name ; + nc:Contingency.EquipmentOperator ?idEquipmentOperator ; + nc:Contingency.normalMustStudy ?normalMustStudy ; }} } \ No newline at end of file diff --git a/data/crac-creation/crac-creator-csa-profiles/src/test/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracImporterTest.java b/data/crac-creation/crac-creator-csa-profiles/src/test/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracImporterTest.java index a5e55bfd79..61745ebe4d 100644 --- a/data/crac-creation/crac-creator-csa-profiles/src/test/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracImporterTest.java +++ b/data/crac-creation/crac-creator-csa-profiles/src/test/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracImporterTest.java @@ -6,13 +6,14 @@ */ package com.farao_community.farao.data.crac_creation.creator.csa_profile.crac_creator; +import com.farao_community.farao.data.crac_creation.creator.csa_profile.CsaProfileCrac; import com.farao_community.farao.data.crac_creation.creator.csa_profile.importer.CsaProfileCracImporter; +import com.powsybl.triplestore.api.PropertyBags; import org.junit.jupiter.api.Test; import java.io.InputStream; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.*; /** * @author Jean-Pierre Arnould {@literal } @@ -25,6 +26,16 @@ void getFormat() { assertEquals("CsaProfileCrac", csaProfileCracImporter.getFormat()); } + @Test + void testImportNativeCrac() { + CsaProfileCracImporter csaProfileCracImporter = new CsaProfileCracImporter(); + InputStream is1 = getClass().getResourceAsStream("/TestConfiguration_TC1_v29Mar2023/ELIA_CO.xml"); + CsaProfileCrac csaProfileCrac = csaProfileCracImporter.importNativeCrac(is1); + assertNotNull(csaProfileCrac); + PropertyBags contingenciesPb = csaProfileCrac.getContingencies(); + assertNotNull(contingenciesPb); + } + @Test void testExists() { InputStream is1 = getClass().getResourceAsStream("/TestConfiguration_TC1_v29Mar2023/ELIA_CO.xml"); From 9c31fd7b4f90f4ec51723705fdfe27088be61c8e Mon Sep 17 00:00:00 2001 From: jipea Date: Fri, 16 Jun 2023 09:46:53 +0200 Subject: [PATCH 07/22] correcti disclaimer format --- .../src/test/resources/Disclaimer.docx | Bin 19604 -> 0 bytes .../src/test/resources/Disclaimer.txt | 1 + 2 files changed, 1 insertion(+) delete mode 100644 data/crac-creation/crac-creator-csa-profiles/src/test/resources/Disclaimer.docx create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/test/resources/Disclaimer.txt diff --git a/data/crac-creation/crac-creator-csa-profiles/src/test/resources/Disclaimer.docx b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/Disclaimer.docx deleted file mode 100644 index f1271ea729510e8af5dad2ac3becd51052819b69..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19604 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 Date: Mon, 19 Jun 2023 10:04:09 +0200 Subject: [PATCH 08/22] update sparql requests and unit tests --- .../creator/csa_profile/CsaProfileCrac.java | 4 + .../crac_creator/CsaProfileConstants.java | 4 +- .../crac_creator/CsaProfileCracCreator.java | 6 +- .../CsaProfileContingencyCreator.java | 51 ++++++------ .../src/main/resources/csa_profile.sparql | 33 +++----- .../CsaProfileCracImporterTest.java | 8 ++ .../ELIA_CO.xml | 79 +++++++++---------- 7 files changed, 95 insertions(+), 90 deletions(-) diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/CsaProfileCrac.java b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/CsaProfileCrac.java index dbac00176e..fb41a487c6 100644 --- a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/CsaProfileCrac.java +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/CsaProfileCrac.java @@ -59,4 +59,8 @@ private PropertyBags queryTripleStore(List queryKeys) { public PropertyBags getContingencies() { return this.queryTripleStore(Arrays.asList(CsaProfileConstants.REQUEST_ORDINARY_CONTINGENCY, CsaProfileConstants.REQUEST_EXCEPTIONAL_CONTINGENCY, CsaProfileConstants.REQUEST_OUT_OF_RANGE_CONTINGENCY)); } + + public PropertyBags getContingencyEquipments() { + return this.queryTripleStore(CsaProfileConstants.REQUEST_CONTINGENCY_EQUIPMENT); + } } diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileConstants.java b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileConstants.java index a4ce885b25..6567e24151 100644 --- a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileConstants.java +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileConstants.java @@ -38,13 +38,15 @@ private CsaProfileConstants() { public static final String REQUEST_OUT_OF_RANGE_CONTINGENCY = "outOfRangeContingency"; + public static final String REQUEST_CONTINGENCY_EQUIPMENT = "contingencyEquipment"; + public static final String REQUEST_CONTINGENCIES_RDFID = "rdfId"; public static final String REQUEST_CONTINGENCIES_NAME = "name"; public static final String REQUEST_CONTINGENCIES_EQUIPMENT_OPERATOR = "idEquipmentOperator"; - public static final String REQUEST_CONTINGENCIES_EQUIPMENT = "contingencyEquipmentId"; + public static final String REQUEST_CONTINGENCIES_EQUIPMENT_ID = "contingencyEquipmentId"; public static final String REQUEST_CONTINGENCIES_MUST_STUDY = "normalMustStudy"; diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracCreator.java b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracCreator.java index 496e769568..dc16ad9df2 100644 --- a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracCreator.java +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracCreator.java @@ -33,11 +33,11 @@ public String getNativeCracFormat() { public CsaProfileCracCreationContext createCrac(CsaProfileCrac nativeCrac, Network network, OffsetDateTime offsetDateTime, CracCreationParameters cracCreationParameters) { //TODO - createContingencies(nativeCrac.getContingencies()); + createContingencies(nativeCrac.getContingencies(), nativeCrac.getContingencyEquipments()); return creationContext.creationSuccess(crac); } - private void createContingencies(PropertyBags contingenciesPropertyBags) { - new CsaProfileContingencyCreator(crac, network, contingenciesPropertyBags, creationContext).createAndAddContingencies(); + private void createContingencies(PropertyBags contingenciesPropertyBags, PropertyBags contingencyEquipmentsPropertyBags) { + new CsaProfileContingencyCreator(crac, network, contingenciesPropertyBags, contingencyEquipmentsPropertyBags, creationContext).createAndAddContingencies(); } } diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/contingency/CsaProfileContingencyCreator.java b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/contingency/CsaProfileContingencyCreator.java index d48c69ec87..c73cbbf9ff 100644 --- a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/contingency/CsaProfileContingencyCreator.java +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/contingency/CsaProfileContingencyCreator.java @@ -27,47 +27,46 @@ public class CsaProfileContingencyCreator { private final Network network; - private final PropertyBags contingenciesPropertybags; + private final PropertyBags contingenciesPropertyBags; + + private final PropertyBags contingencyEquipmentsPropertyBags; private Set csaProfileContingencyCreationContexts; private CsaProfileCracCreationContext cracCreationContext; - public CsaProfileContingencyCreator(Crac crac, Network network, PropertyBags contingenciesPropertybags, CsaProfileCracCreationContext cracCreationContext) { + public CsaProfileContingencyCreator(Crac crac, Network network, PropertyBags contingenciesPropertyBags, PropertyBags contingencyEquipmentsPropertyBags, CsaProfileCracCreationContext cracCreationContext) { this.crac = crac; this.network = network; - this.contingenciesPropertybags = contingenciesPropertybags; + this.contingenciesPropertyBags = contingenciesPropertyBags; + this.contingencyEquipmentsPropertyBags = contingencyEquipmentsPropertyBags; this.cracCreationContext = cracCreationContext; } public void createAndAddContingencies() { this.csaProfileContingencyCreationContexts = new HashSet<>(); - Set alreadyProcessedContingenciesId = new HashSet<>(); - - for (PropertyBag contingencyPropertyBag : contingenciesPropertybags) { - String contingencyId = contingencyPropertyBag.get(CsaProfileConstants.REQUEST_CONTINGENCIES_RDFID); - if (!alreadyProcessedContingenciesId.contains(contingencyId)) { - String contingencyName = contingencyPropertyBag.get(CsaProfileConstants.REQUEST_CONTINGENCIES_NAME).concat(contingencyPropertyBag.get(CsaProfileConstants.REQUEST_CONTINGENCIES_EQUIPMENT_OPERATOR)); - String equipmentId = contingencyPropertyBag.get(CsaProfileConstants.REQUEST_CONTINGENCIES_EQUIPMENT); - Boolean mustStudy = Boolean.parseBoolean(contingencyPropertyBag.get(CsaProfileConstants.REQUEST_CONTINGENCIES_MUST_STUDY)); - String contingentStatus = contingencyPropertyBag.get(CsaProfileConstants.REQUEST_CONTINGENCIES_CONTINGENT_STATUS); - if (!CsaProfileConstants.IMPORTED_CONTINGENT_STATUS.equals(contingentStatus)) { - csaProfileContingencyCreationContexts.add(CsaProfileContingencyCreationContext.notImported(contingencyId, contingencyName, ImportStatus.INCONSISTENCY_IN_DATA, "incorrect contingent status")); - return; - } + for (PropertyBag contingencyPropertyBag : contingenciesPropertyBags) { + String contingencyId = contingencyPropertyBag.getId(CsaProfileConstants.REQUEST_CONTINGENCIES_RDFID); + String contingencyName = contingencyPropertyBag.get(CsaProfileConstants.REQUEST_CONTINGENCIES_NAME).concat(contingencyPropertyBag.get(CsaProfileConstants.REQUEST_CONTINGENCIES_EQUIPMENT_OPERATOR)); + String equipmentId = contingencyPropertyBag.getId(CsaProfileConstants.REQUEST_CONTINGENCIES_EQUIPMENT_ID); + Boolean mustStudy = Boolean.parseBoolean(contingencyPropertyBag.get(CsaProfileConstants.REQUEST_CONTINGENCIES_MUST_STUDY)); + String contingentStatus = contingencyPropertyBag.get(CsaProfileConstants.REQUEST_CONTINGENCIES_CONTINGENT_STATUS); - if (!mustStudy) { - csaProfileContingencyCreationContexts.add(CsaProfileContingencyCreationContext.notImported(contingencyId, contingencyName, ImportStatus.INCONSISTENCY_IN_DATA, "contingency.mustStudy is false")); - return; - } + if (!CsaProfileConstants.IMPORTED_CONTINGENT_STATUS.equals(contingentStatus)) { + csaProfileContingencyCreationContexts.add(CsaProfileContingencyCreationContext.notImported(contingencyId, contingencyName, ImportStatus.INCONSISTENCY_IN_DATA, "incorrect contingent status")); + return; + } - alreadyProcessedContingenciesId.add(contingencyId); - crac.newContingency() - .withId(contingencyId) - .withName(contingencyName) - .add(); - csaProfileContingencyCreationContexts.add(CsaProfileContingencyCreationContext.imported(contingencyId, contingencyName, "contingency imported correctly", false)); + if (!mustStudy) { + csaProfileContingencyCreationContexts.add(CsaProfileContingencyCreationContext.notImported(contingencyId, contingencyName, ImportStatus.INCONSISTENCY_IN_DATA, "contingency.mustStudy is false")); + return; } + + crac.newContingency() + .withId(contingencyId) + .withName(contingencyName) + .add(); + csaProfileContingencyCreationContexts.add(CsaProfileContingencyCreationContext.imported(contingencyId, contingencyName, "contingency imported correctly", false)); } this.cracCreationContext.setContingencyCreationContexts(csaProfileContingencyCreationContexts); } diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/resources/csa_profile.sparql b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/csa_profile.sparql index 4371d6d897..24f3c4fe03 100644 --- a/data/crac-creation/crac-creator-csa-profiles/src/main/resources/csa_profile.sparql +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/resources/csa_profile.sparql @@ -5,22 +5,27 @@ # file, You can obtain one at http://mozilla.org/MPL/2.0/. # -# query: ordinaryContingency +# query: contingencyEquipment PREFIX cim: -PREFIX nc: SELECT * WHERE { -{ GRAPH ?graph { ?contingencyEquipment - cim:ContingencyEquipment ?contingencyEquipmentId ; + rdf:type cim:ContingencyEquipment ; + cim:ContingencyEquipment.Equipment ?contingencyEquipmentId ; cim:ContingencyElement.Contingency ?contingency ; cim:ContingencyEquipment.contingentStatus ?contingentStatus ; +} + +# query: ordinaryContingency +PREFIX cim: +PREFIX nc: +SELECT * +WHERE { ?contingency - nc:OrdinaryContingency ; + rdf:type nc:OrdinaryContingency ; cim:IdentifiedObject.name ?name ; nc:Contingency.EquipmentOperator ?idEquipmentOperator ; nc:Contingency.normalMustStudy ?normalMustStudy ; -}} } # query: exceptionalContingency @@ -28,17 +33,11 @@ PREFIX cim: PREFIX nc: SELECT * WHERE { -{ GRAPH ?graph { - ?contingencyEquipment - cim:ContingencyEquipment ?contingencyEquipmentId ; - cim:ContingencyElement.Contingency ?contingency ; - cim:ContingencyEquipment.contingentStatus ?contingentStatus ; ?contingency - nc:ExceptionalContingency ; + rdf:type nc:ExceptionalContingency ; cim:IdentifiedObject.name ?name ; nc:Contingency.EquipmentOperator ?idEquipmentOperator ; nc:Contingency.normalMustStudy ?normalMustStudy ; -}} } # query: outOfRangeContingency @@ -46,15 +45,9 @@ PREFIX cim: PREFIX nc: SELECT * WHERE { -{ GRAPH ?graph { - ?contingencyEquipment - cim:ContingencyEquipment ?contingencyEquipmentId ; - cim:ContingencyElement.Contingency ?contingency ; - cim:ContingencyEquipment.contingentStatus ?contingentStatus ; ?contingency - nc:OutOfRangeContingency ; + rdf:type nc:OutOfRangeContingency ; cim:IdentifiedObject.name ?name ; nc:Contingency.EquipmentOperator ?idEquipmentOperator ; nc:Contingency.normalMustStudy ?normalMustStudy ; -}} } \ No newline at end of file diff --git a/data/crac-creation/crac-creator-csa-profiles/src/test/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracImporterTest.java b/data/crac-creation/crac-creator-csa-profiles/src/test/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracImporterTest.java index 61745ebe4d..ca87cb417f 100644 --- a/data/crac-creation/crac-creator-csa-profiles/src/test/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracImporterTest.java +++ b/data/crac-creation/crac-creator-csa-profiles/src/test/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracImporterTest.java @@ -32,8 +32,16 @@ void testImportNativeCrac() { InputStream is1 = getClass().getResourceAsStream("/TestConfiguration_TC1_v29Mar2023/ELIA_CO.xml"); CsaProfileCrac csaProfileCrac = csaProfileCracImporter.importNativeCrac(is1); assertNotNull(csaProfileCrac); + PropertyBags contingenciesPb = csaProfileCrac.getContingencies(); assertNotNull(contingenciesPb); + assertEquals(1, contingenciesPb.size()); + assertEquals("CO1", contingenciesPb.get(0).get(CsaProfileConstants.REQUEST_CONTINGENCIES_NAME)); + + PropertyBags contingencyEquipmentsPb = csaProfileCrac.getContingencyEquipments(); + assertNotNull(contingencyEquipmentsPb); + assertEquals(1, contingencyEquipmentsPb.size()); + assertEquals("17086487-56ba-4979-b8de-064025a6b4da", contingencyEquipmentsPb.get(0).getId(CsaProfileConstants.REQUEST_CONTINGENCIES_EQUIPMENT_ID)); } @Test diff --git a/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/ELIA_CO.xml b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/ELIA_CO.xml index 1210e445c3..68310b1811 100644 --- a/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/ELIA_CO.xml +++ b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/TestConfiguration_TC1_v29Mar2023/ELIA_CO.xml @@ -1,43 +1,42 @@ - - urn:uuid:1a31c9c2-ae16-45ed-a279-3fe0b79884e1 - urn:uuid:095c6b30-255d-40d5-85fe-2c9fe6c9846d - 2022-06-25T22:30:00Z - CO - http://elia.be/CGMES - https://creativecommons.org/licenses/by/4.0/ - 1.0 - PowerFactory-2022.SP2 - 2022-05-21T07:05:25Z - http://entsoe.eu/ns/CIM/Contingency-EU/2.2 - This is an example of contingency profile. - 2023-06-25T22:30:00Z - - - L1 - The equipment for this contingency - ef11f9bd-5da0-43e3-921b-7e92d2896136 - - - - - - CO1 - This is an example of an ordinary contingency - 493480ba-93c3-426e-bee5-347d8dda3749 - - true - + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:eumd="http://entsoe.eu/ns/Metadata-European#" + xmlns:nc="http://entsoe.eu/ns/nc#" + xmlns:prov="http://www.w3.org/ns/prov#" + xmlns:md="http://iec.ch/TC57/61970-552/ModelDescription/1#" + xmlns:dcat="http://www.w3.org/ns/dcat#" + xmlns:cim="http://iec.ch/TC57/CIM100#" + xmlns:dcterms="http://purl.org/dc/terms/#"> + + urn:uuid:1a31c9c2-ae16-45ed-a279-3fe0b79884e1 + urn:uuid:095c6b30-255d-40d5-85fe-2c9fe6c9846d + 2022-06-25T22:30:00Z + CO + http://elia.be/CGMES + https://creativecommons.org/licenses/by/4.0/ + 1.0 + PowerFactory-2022.SP2 + 2022-05-21T07:05:25Z + http://entsoe.eu/ns/CIM/Contingency-EU/2.2 + This is an example of contingency profile. + 2023-06-25T22:30:00Z + + + L1 + The equipment for this contingency + ef11f9bd-5da0-43e3-921b-7e92d2896136 + + + + + + CO1 + This is an example of an ordinary contingency + + 493480ba-93c3-426e-bee5-347d8dda3749 + + true + From b21de63a53aad71b01ed2a9b344206eeca34ea7c Mon Sep 17 00:00:00 2001 From: jipea Date: Mon, 19 Jun 2023 17:14:50 +0200 Subject: [PATCH 09/22] update contingency creator + tu --- .../crac_creator/CsaProfileConstants.java | 2 + .../crac_creator/CsaProfileCracUtils.java | 20 +++++++- .../CsaProfileContingencyCreator.java | 20 +++++--- .../CsaProfileCracImporterTest.java | 12 +++-- .../crac_creator/CsaProfileCracUtilsTest.java | 50 +++++++++++++++++++ 5 files changed, 92 insertions(+), 12 deletions(-) create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/test/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracUtilsTest.java diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileConstants.java b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileConstants.java index 6567e24151..39a10832b5 100644 --- a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileConstants.java +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileConstants.java @@ -32,6 +32,8 @@ private CsaProfileConstants() { public static final String SPARQL_FILE_CSA_PROFILE = "csa_profile.sparql"; + public static final String REQUEST_CONTINGENCY = "contingency"; + public static final String REQUEST_ORDINARY_CONTINGENCY = "ordinaryContingency"; public static final String REQUEST_EXCEPTIONAL_CONTINGENCY = "exceptionalContingency"; diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracUtils.java b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracUtils.java index 28ef5f2cc0..abf70f1a67 100644 --- a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracUtils.java +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracUtils.java @@ -7,8 +7,26 @@ package com.farao_community.farao.data.crac_creation.creator.csa_profile.crac_creator; +import com.powsybl.triplestore.api.PropertyBag; +import com.powsybl.triplestore.api.PropertyBags; + /** * @author Jean-Pierre Arnould {@literal } */ -public class CsaProfileCracUtils { +public final class CsaProfileCracUtils { + + private CsaProfileCracUtils() { + + } + + public static PropertyBags getLinkedPropertyBags(PropertyBags sources, PropertyBag dest, String sourceProperty, String destProperty) { + PropertyBags linkedBags = new PropertyBags(); + for (PropertyBag source : sources) { + String sourceValue = source.get(sourceProperty); + if (sourceValue != null && sourceValue.equals(dest.get(destProperty))) { + linkedBags.add(source); + } + } + return linkedBags; + } } diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/contingency/CsaProfileContingencyCreator.java b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/contingency/CsaProfileContingencyCreator.java index c73cbbf9ff..3aff5bec5f 100644 --- a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/contingency/CsaProfileContingencyCreator.java +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/contingency/CsaProfileContingencyCreator.java @@ -11,6 +11,7 @@ import com.farao_community.farao.data.crac_creation.creator.api.ImportStatus; import com.farao_community.farao.data.crac_creation.creator.csa_profile.crac_creator.CsaProfileConstants; import com.farao_community.farao.data.crac_creation.creator.csa_profile.crac_creator.CsaProfileCracCreationContext; +import com.farao_community.farao.data.crac_creation.creator.csa_profile.crac_creator.CsaProfileCracUtils; import com.powsybl.iidm.network.Network; import com.powsybl.triplestore.api.PropertyBag; import com.powsybl.triplestore.api.PropertyBags; @@ -48,17 +49,24 @@ public void createAndAddContingencies() { for (PropertyBag contingencyPropertyBag : contingenciesPropertyBags) { String contingencyId = contingencyPropertyBag.getId(CsaProfileConstants.REQUEST_CONTINGENCIES_RDFID); String contingencyName = contingencyPropertyBag.get(CsaProfileConstants.REQUEST_CONTINGENCIES_NAME).concat(contingencyPropertyBag.get(CsaProfileConstants.REQUEST_CONTINGENCIES_EQUIPMENT_OPERATOR)); - String equipmentId = contingencyPropertyBag.getId(CsaProfileConstants.REQUEST_CONTINGENCIES_EQUIPMENT_ID); Boolean mustStudy = Boolean.parseBoolean(contingencyPropertyBag.get(CsaProfileConstants.REQUEST_CONTINGENCIES_MUST_STUDY)); - String contingentStatus = contingencyPropertyBag.get(CsaProfileConstants.REQUEST_CONTINGENCIES_CONTINGENT_STATUS); - if (!CsaProfileConstants.IMPORTED_CONTINGENT_STATUS.equals(contingentStatus)) { - csaProfileContingencyCreationContexts.add(CsaProfileContingencyCreationContext.notImported(contingencyId, contingencyName, ImportStatus.INCONSISTENCY_IN_DATA, "incorrect contingent status")); + if (!mustStudy) { + csaProfileContingencyCreationContexts.add(CsaProfileContingencyCreationContext.notImported(contingencyId, contingencyName, ImportStatus.INCONSISTENCY_IN_DATA, "contingency.mustStudy is false")); return; } - if (!mustStudy) { - csaProfileContingencyCreationContexts.add(CsaProfileContingencyCreationContext.notImported(contingencyId, contingencyName, ImportStatus.INCONSISTENCY_IN_DATA, "contingency.mustStudy is false")); + PropertyBags contingencyEquipments = CsaProfileCracUtils.getLinkedPropertyBags(contingencyEquipmentsPropertyBags, contingencyPropertyBag, CsaProfileConstants.REQUEST_CONTINGENCY, CsaProfileConstants.REQUEST_CONTINGENCY); + if (contingencyEquipments.isEmpty()) { + csaProfileContingencyCreationContexts.add(CsaProfileContingencyCreationContext.notImported(contingencyId, contingencyName, ImportStatus.INCONSISTENCY_IN_DATA, "no contingency equipment linked to the contingency")); + return; + } + + String equipmentId = contingencyPropertyBag.getId(CsaProfileConstants.REQUEST_CONTINGENCIES_EQUIPMENT_ID); + String contingentStatus = contingencyPropertyBag.get(CsaProfileConstants.REQUEST_CONTINGENCIES_CONTINGENT_STATUS); + + if (!CsaProfileConstants.IMPORTED_CONTINGENT_STATUS.equals(contingentStatus)) { + csaProfileContingencyCreationContexts.add(CsaProfileContingencyCreationContext.notImported(contingencyId, contingencyName, ImportStatus.INCONSISTENCY_IN_DATA, "incorrect contingent status")); return; } diff --git a/data/crac-creation/crac-creator-csa-profiles/src/test/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracImporterTest.java b/data/crac-creation/crac-creator-csa-profiles/src/test/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracImporterTest.java index ca87cb417f..38dda0f010 100644 --- a/data/crac-creation/crac-creator-csa-profiles/src/test/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracImporterTest.java +++ b/data/crac-creation/crac-creator-csa-profiles/src/test/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracImporterTest.java @@ -29,19 +29,21 @@ void getFormat() { @Test void testImportNativeCrac() { CsaProfileCracImporter csaProfileCracImporter = new CsaProfileCracImporter(); - InputStream is1 = getClass().getResourceAsStream("/TestConfiguration_TC1_v29Mar2023/ELIA_CO.xml"); + InputStream is1 = getClass().getResourceAsStream("/TestConfiguration_TC1_v29Mar2023.zip"); CsaProfileCrac csaProfileCrac = csaProfileCracImporter.importNativeCrac(is1); assertNotNull(csaProfileCrac); PropertyBags contingenciesPb = csaProfileCrac.getContingencies(); assertNotNull(contingenciesPb); - assertEquals(1, contingenciesPb.size()); - assertEquals("CO1", contingenciesPb.get(0).get(CsaProfileConstants.REQUEST_CONTINGENCIES_NAME)); + assertEquals(2, contingenciesPb.size()); + assertEquals("493480ba-93c3-426e-bee5-347d8dda3749", contingenciesPb.get(0).getId(CsaProfileConstants.REQUEST_CONTINGENCY)); + assertEquals("c0a25fd7-eee0-4191-98a5-71a74469d36e", contingenciesPb.get(1).getId(CsaProfileConstants.REQUEST_CONTINGENCY)); PropertyBags contingencyEquipmentsPb = csaProfileCrac.getContingencyEquipments(); assertNotNull(contingencyEquipmentsPb); - assertEquals(1, contingencyEquipmentsPb.size()); - assertEquals("17086487-56ba-4979-b8de-064025a6b4da", contingencyEquipmentsPb.get(0).getId(CsaProfileConstants.REQUEST_CONTINGENCIES_EQUIPMENT_ID)); + assertEquals(2, contingencyEquipmentsPb.size()); + assertEquals("ef11f9bd-5da0-43e3-921b-7e92d2896136", contingencyEquipmentsPb.get(0).getId(CsaProfileConstants.REQUEST_CONTINGENCY_EQUIPMENT)); + assertEquals("f19925fa-b114-48c5-97a4-42ef84372115", contingencyEquipmentsPb.get(1).getId(CsaProfileConstants.REQUEST_CONTINGENCY_EQUIPMENT)); } @Test diff --git a/data/crac-creation/crac-creator-csa-profiles/src/test/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracUtilsTest.java b/data/crac-creation/crac-creator-csa-profiles/src/test/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracUtilsTest.java new file mode 100644 index 0000000000..dae0cc4535 --- /dev/null +++ b/data/crac-creation/crac-creator-csa-profiles/src/test/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracUtilsTest.java @@ -0,0 +1,50 @@ +package com.farao_community.farao.data.crac_creation.creator.csa_profile.crac_creator; + +import com.powsybl.triplestore.api.PropertyBag; +import com.powsybl.triplestore.api.PropertyBags; +import org.junit.jupiter.api.Test; + +import java.util.Arrays; +import java.util.List; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +public class CsaProfileCracUtilsTest { + + @Test + public void testGetLinkedPropertyBags() { + List listPropDest = Arrays.asList("destProperty1", "destProperty2", "destProperty3", "destProperty4"); + List listPropSource = Arrays.asList("sourceProperty1", "sourceProperty2", "sourceProperty3", "sourceProperty4"); + PropertyBag destPb = new PropertyBag(listPropDest, false); + destPb.put("destProperty1", "destValue1"); + destPb.put("destProperty2", "destValue2"); + destPb.put("destProperty3", "destValue3"); + destPb.put("destProperty4", "destValue4"); + + PropertyBags sourcesPb = new PropertyBags(); + PropertyBag sourcePb1 = new PropertyBag(listPropSource, false); + sourcePb1.put("sourceProperty1", "sourceValue11"); + sourcePb1.put("sourceProperty2", "destValue3"); + sourcePb1.put("sourceProperty3", "sourceValue13"); + sourcePb1.put("sourceProperty4", "sourceValue14"); + + PropertyBag sourcePb2 = new PropertyBag(listPropSource, false); + sourcePb2.put("sourceProperty1", "sourceValue21"); + sourcePb2.put("sourceProperty3", "sourceValue23"); + sourcePb2.put("sourceProperty4", "sourceValue24"); + + PropertyBag sourcePb3 = new PropertyBag(listPropSource, false); + sourcePb3.put("sourceProperty1", "sourceValue31"); + sourcePb3.put("sourceProperty2", "sourceValue32"); + sourcePb3.put("sourceProperty3", "sourceValue33"); + sourcePb3.put("sourceProperty4", "sourceValue34"); + + sourcesPb.addAll(Arrays.asList(sourcePb1, sourcePb2, sourcePb3)); + + PropertyBags result = CsaProfileCracUtils.getLinkedPropertyBags(sourcesPb, destPb, "sourceProperty2", "destProperty3"); + assertNotNull(result); + assertEquals(1, result.size()); + assertEquals("sourceValue11", result.get(0).get("sourceProperty1")); + } +} From c2c9685817eb0baa41dc991c29d1d868f5e8935b Mon Sep 17 00:00:00 2001 From: jipea Date: Fri, 23 Jun 2023 18:36:04 +0200 Subject: [PATCH 10/22] pom.xml cleaning --- .../crac-creator-csa-profiles/pom.xml | 36 ------------------- 1 file changed, 36 deletions(-) diff --git a/data/crac-creation/crac-creator-csa-profiles/pom.xml b/data/crac-creation/crac-creator-csa-profiles/pom.xml index 41a95fcda5..ac7c087217 100644 --- a/data/crac-creation/crac-creator-csa-profiles/pom.xml +++ b/data/crac-creation/crac-creator-csa-profiles/pom.xml @@ -72,10 +72,6 @@ farao-crac-util ${project.version} - - javax.xml.bind - jaxb-api - org.apache.commons commons-collections4 @@ -95,43 +91,11 @@ ${project.version} runtime - - org.glassfish.jaxb - jaxb-runtime - runtime - - - - - ch.qos.logback - logback-classic - test - - - com.powsybl - powsybl-config-test - test - - - com.powsybl - powsybl-cgmes-conversion - ${powsybl.core.version} - - - com.powsybl - powsybl-iidm-impl - runtime - com.powsybl powsybl-triple-store-impl-rdf4j ${powsybl.core.version} - - com.powsybl - powsybl-ucte-converter - test - org.junit.jupiter junit-jupiter From 88116ab14676dd30a47cf75a2233d58e60872d0a Mon Sep 17 00:00:00 2001 From: jipea Date: Mon, 26 Jun 2023 09:57:28 +0200 Subject: [PATCH 11/22] add new test files + update exists method and ids --- .../crac_creator/CsaProfileConstants.java | 3 +-- .../crac_creator/CsaProfileCracUtils.java | 4 +-- .../importer/CsaProfileCracImporter.java | 25 ++++-------------- .../crac_creator/CsaProfileCracUtilsTest.java | 4 +-- .../CsaProfileCracImporterTest.java | 8 +++--- ...TestConfiguration_TC2_Draft_v14Apr2023.zip | Bin 0 -> 2610679 bytes .../Test_With_Refused_Contingencies.zip | Bin 0 -> 106309 bytes 7 files changed, 14 insertions(+), 30 deletions(-) rename data/crac-creation/crac-creator-csa-profiles/src/test/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/{crac_creator => importer}/CsaProfileCracImporterTest.java (93%) create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/test/resources/CSA_TestConfiguration_TC2_Draft_v14Apr2023.zip create mode 100644 data/crac-creation/crac-creator-csa-profiles/src/test/resources/Test_With_Refused_Contingencies.zip diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileConstants.java b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileConstants.java index 39a10832b5..1f747fdc44 100644 --- a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileConstants.java +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileConstants.java @@ -19,8 +19,7 @@ private CsaProfileConstants() { * constants to read rdf files */ - public static final String RDF_FORMAT_CSA_PROFILE = "ApplicationProfiles_NC_RDFS_SHACL_v2_2_v28Mar2023_UMLv90.zip"; - //public static final String RDF_FORMAT_CSA_PROFILE = "RDFS/ContingencyProfile_v2_2_RDFSv2020_24Mar2023.rdf"; + public static final String EXTENSION_FILE_CSA_PROFILE = "zip"; public static final String RDF_BASE_URL = "http://entsoe.eu"; diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracUtils.java b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracUtils.java index abf70f1a67..6b44fd1800 100644 --- a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracUtils.java +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracUtils.java @@ -22,8 +22,8 @@ private CsaProfileCracUtils() { public static PropertyBags getLinkedPropertyBags(PropertyBags sources, PropertyBag dest, String sourceProperty, String destProperty) { PropertyBags linkedBags = new PropertyBags(); for (PropertyBag source : sources) { - String sourceValue = source.get(sourceProperty); - if (sourceValue != null && sourceValue.equals(dest.get(destProperty))) { + String sourceValue = source.getId(sourceProperty); + if (sourceValue != null && sourceValue.equals(dest.getId(destProperty))) { linkedBags.add(source); } } diff --git a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/importer/CsaProfileCracImporter.java b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/importer/CsaProfileCracImporter.java index 80c85b37ef..ca08a5f9db 100644 --- a/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/importer/CsaProfileCracImporter.java +++ b/data/crac-creation/crac-creator-csa-profiles/src/main/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/importer/CsaProfileCracImporter.java @@ -13,13 +13,11 @@ import com.google.auto.service.AutoService; import com.powsybl.triplestore.api.TripleStore; import com.powsybl.triplestore.api.TripleStoreFactory; -import org.eclipse.rdf4j.rio.*; +import org.apache.commons.io.FilenameUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.io.IOException; import java.io.InputStream; -import java.io.UncheckedIOException; /** * @author Jean-Pierre Arnould {@literal } @@ -36,28 +34,15 @@ public String getFormat() { @Override public CsaProfileCrac importNativeCrac(InputStream inputStream) { - TripleStore tripleStoreCsaProfile; - tripleStoreCsaProfile = TripleStoreFactory.create(CsaProfileConstants.TRIPLESTORE_RDF4J_NAME); + TripleStore tripleStoreCsaProfile = TripleStoreFactory.create(CsaProfileConstants.TRIPLESTORE_RDF4J_NAME); tripleStoreCsaProfile.read(inputStream, CsaProfileConstants.RDF_BASE_URL, ""); return new CsaProfileCrac(tripleStoreCsaProfile); } @Override public boolean exists(String fileName, InputStream inputStream) { - try { - RDFFormat rdfFormatContingencies = Rio.getParserFormatForFileName(String.valueOf(this.getClass().getResource(CsaProfileConstants.RDF_FORMAT_CSA_PROFILE))).orElse(RDFFormat.RDFXML); - RDFParser rdfParser = Rio.createParser(rdfFormatContingencies); - rdfParser.parse(inputStream, CsaProfileConstants.RDF_BASE_URL); - LOGGER.info("CSA PROFILE CRAC document is valid"); - return true; - } catch (IOException e) { - throw new UncheckedIOException(e); - } catch (RDFParseException e) { - LOGGER.debug("CSA PROFILE CRAC document is NOT valid. Reason: RDF parsing problem : {}"); - return false; - } catch (RDFHandlerException e) { - LOGGER.debug("CSA PROFILE CRAC document is NOT valid. Reason: RDF handler problem :"); - return true; - } + TripleStore tripleStoreCsaProfile = TripleStoreFactory.create(CsaProfileConstants.TRIPLESTORE_RDF4J_NAME); + tripleStoreCsaProfile.read(inputStream, CsaProfileConstants.RDF_BASE_URL, ""); + return tripleStoreCsaProfile != null && FilenameUtils.getExtension(fileName).equals(CsaProfileConstants.EXTENSION_FILE_CSA_PROFILE); } } diff --git a/data/crac-creation/crac-creator-csa-profiles/src/test/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracUtilsTest.java b/data/crac-creation/crac-creator-csa-profiles/src/test/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracUtilsTest.java index dae0cc4535..b6393eb606 100644 --- a/data/crac-creation/crac-creator-csa-profiles/src/test/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracUtilsTest.java +++ b/data/crac-creation/crac-creator-csa-profiles/src/test/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracUtilsTest.java @@ -19,13 +19,13 @@ public void testGetLinkedPropertyBags() { PropertyBag destPb = new PropertyBag(listPropDest, false); destPb.put("destProperty1", "destValue1"); destPb.put("destProperty2", "destValue2"); - destPb.put("destProperty3", "destValue3"); + destPb.put("destProperty3", "http://blablabla.fr/#_destValue3"); destPb.put("destProperty4", "destValue4"); PropertyBags sourcesPb = new PropertyBags(); PropertyBag sourcePb1 = new PropertyBag(listPropSource, false); sourcePb1.put("sourceProperty1", "sourceValue11"); - sourcePb1.put("sourceProperty2", "destValue3"); + sourcePb1.put("sourceProperty2", "_destValue3"); sourcePb1.put("sourceProperty3", "sourceValue13"); sourcePb1.put("sourceProperty4", "sourceValue14"); diff --git a/data/crac-creation/crac-creator-csa-profiles/src/test/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracImporterTest.java b/data/crac-creation/crac-creator-csa-profiles/src/test/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/importer/CsaProfileCracImporterTest.java similarity index 93% rename from data/crac-creation/crac-creator-csa-profiles/src/test/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracImporterTest.java rename to data/crac-creation/crac-creator-csa-profiles/src/test/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/importer/CsaProfileCracImporterTest.java index 38dda0f010..6a5d38d64f 100644 --- a/data/crac-creation/crac-creator-csa-profiles/src/test/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/crac_creator/CsaProfileCracImporterTest.java +++ b/data/crac-creation/crac-creator-csa-profiles/src/test/java/com/farao_community/farao/data/crac_creation/creator/csa_profile/importer/CsaProfileCracImporterTest.java @@ -4,10 +4,10 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -package com.farao_community.farao.data.crac_creation.creator.csa_profile.crac_creator; +package com.farao_community.farao.data.crac_creation.creator.csa_profile.importer; import com.farao_community.farao.data.crac_creation.creator.csa_profile.CsaProfileCrac; -import com.farao_community.farao.data.crac_creation.creator.csa_profile.importer.CsaProfileCracImporter; +import com.farao_community.farao.data.crac_creation.creator.csa_profile.crac_creator.CsaProfileConstants; import com.powsybl.triplestore.api.PropertyBags; import org.junit.jupiter.api.Test; @@ -48,8 +48,8 @@ void testImportNativeCrac() { @Test void testExists() { - InputStream is1 = getClass().getResourceAsStream("/TestConfiguration_TC1_v29Mar2023/ELIA_CO.xml"); + InputStream is1 = getClass().getResourceAsStream("/TestConfiguration_TC1_v29Mar2023.zip"); CsaProfileCracImporter importer = new CsaProfileCracImporter(); - assertTrue(importer.exists("ELIA_CO.xml", is1)); + assertTrue(importer.exists("TestConfiguration_TC1_v29Mar2023.zip", is1)); } } diff --git a/data/crac-creation/crac-creator-csa-profiles/src/test/resources/CSA_TestConfiguration_TC2_Draft_v14Apr2023.zip b/data/crac-creation/crac-creator-csa-profiles/src/test/resources/CSA_TestConfiguration_TC2_Draft_v14Apr2023.zip new file mode 100644 index 0000000000000000000000000000000000000000..f64b1722abc22a2f31ca2ae3715ba129cc82c6b1 GIT binary patch literal 2610679 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�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�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 hG(AZkDlo9#mo2aCD_#)7w5s|bAL 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 z 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 z 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

16Oc7qWs-Z0&#owSPlAXImn1j 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%0ARk*m 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%0DM6j>I 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 z z9SyLb0nIFR4!@w$JH{*3^kO{r!wcZ&UGRmFLVTF%O&$wavsR1S#r1+NL>QQundE=* zyG8F92Zz|#FVLvx*N*{?JbaW?uQaJiIhTayU$V88O(aIA#3k zq`};$e1=`xNUfHRoGTHA5={4pkQ{&hYjlMD@WjhyBA2vUE_qoXftJTua-*PZT7>bkf znr~myBV;*oFbA>w_Bl)hMJ>-fBPjVJt%NY9(OztHc7DsfEnRI0oYd?!ft( z4q^AQh`g*vfY+2(Rqb0pzYD*N^g7=@_fPYSb1Q!1z8nmL&CRLBEzU0x3br;j6)|cy z9GPD*?DWa(4#yKwAQkR+l{NVR*MGGOAF^8n0`n4D5D{UYK}?v5tPFCLv3oYCk9sOD?Xf{d?o&5 zcKx7WS&giyxMvmTA3_b%38H^w?%X{$at7bUhxTo1fsw7~!pG9?}n zLT#=7?XhaL^vmC8q{-ye$_|WgZMxii;SYlR|5k@kh5f_{vzVY)C8AhFKO zVtiu&K7wc(ont&(T!)ThPD*|yE-IL6jJhGCpo^$quHuYNo}`s zkHdn~U!FL$q*hBu|1p;Q$l;h)F;t^Rwo5|lgu@tS_wRbjUNhrJeYE`oCr|3sS^~!yn5M-e%Wp#xn?ku}v)l0D*}^!qGBf#P?_m zH_AaO=|p}Kd*fOy{rLPt+B+hc_%%T+Hdiy=NH)sr7ZNlGwJ7c^I&!X@z2R}dln@oo z`+i{D&)A#u@yG@9U5XfNKVJpsnEThK$Xz&I1o4P)S$a%JM7BRblwvLYJi3>J$i;PR zShEuczj(*A%?|xIUZca5_xs&6BfM;oxE?hUUm%>T_>jP`k<$f@N}n((*J|nLsp6?* zGlrR%+&6tCGL$7h4{~$(3)utnrc}#Ge}IJs<^#ezj=6YTmam+ZXdqaD^FL^Gzc|P2 zcX3GW4Hp6q1MwMRKOWavtef+56?YaOm{66J0kN`s4XGbJ#jEUR#YbxaF1M-08KZ}E z@4Nn;$v{}WrC*bomJKf|v}3wfOX!xiyIF_ZA_6dMmC|Tfx}AW2KfQ0G-K(ruKOa9e z$;dER6JK_({4H%tZ8J`!yrKtDKi)VOC834hF??j0QsPoj2r_5jDdFH~q>5*9KTmsC zB-1JBA}qqELC$7XSnxd^H;=_`t4r1DxBoVak!xr;oDOMSAT9|r`$7bI?LveEVUiODA82}LcaBB~{j z8M0Wb#UzGFFN}!>0_8%ovkrjofgctxVq_@EGp%aD6w}?i=owGazJ;I6;Z)e?+g{u* zvzq_X&!3+G;2YTHoODM1=M6>pj!Jp}>1^L6nU!kkcvo`H8IC7>GZf;tg4hp5b^(Zi z!IQ=mpG(KQS1We=Jl8PSCi@q;JP1S~--Aa{edG-kXE9=Mww$ItYRZrYLQ&0=f6{Sz zXQRP4y7#?ff|qlILEJ5r{^aq2n5>v);g2gGPOX-H*|o57TWXLfAF!}s@&>R|H(YYO zaND5#75g!h_Bw6QcY*Fvhugx+vPz`ETgc2H&4A-Ha)`ALS9+- zb@O1V`IT=&B_TS-jfdd!BC8f|U`Px6gBx3bqKN?IaJYtyKf`}t5nG;P_Uy0=|mt3;k*Ap_e=*IxOQT2SjK+!iN zw?@xpF+Nfb==A^eWBKfDWH8leEpHGVu%uQ?M|=#mM|dehw=vKCf}{p(@IsLGMoCEH zRqXlk-QFLm3}$a*n9C&04iXaCGVZUu!>xAWmWZedX5@Gohih$TL0#t_n1*rWe}EWQ ztEJyL7L#7FzWU@i08~M%zI5h0wHUEbvg6}VLZ)OhU#q2`hL@bi1Mp?K(h~j?4Z%+S zETS)4tKB72oW)iyc{Vw*Wkn=mm>=~B4xw9GmZ@Li`ZmH~E!}V1HZUSdT{4E;m9%19 zbh#6K?RnS{)@teJJLrB_Y7u8&D!f zY8z5a01`^hn8Un5OjhN^TKeU@yL3s84N351bLF0lA-Vgw9xfhA9&4*22HUS6Lxf^5 z2t*>L3I@yCGUKE-z}m$BgL$KPzmQll0T*A#deZ!opdmR)Ou|A_xY3`HSlZNLTS+0# zStEup*(Jq48N&|>l<=R?TA|n{_sis>6Cw@s1`O%^Y(llN)C9D)FF2z?jhS1m7LktQ zl|XzfOW5vVOu~J%xIW^mi%*7E*rpcy!Yy_~x+V4+&?I~K5aDgZ?RVj%_fmYvW^w+1 z(074WaiL&yV}bC;;SHZ z*Zty@@wwxyaS32S27(=mJxo9T*q7b-ANz?IgvjGd0vryB?sYshYbzNo7?~%bFiHbL15t^VYgaZ}zm98jmUFIUb78&$#Z?*vgV}@Ks-DW$ zIhkk!4Au0>sY=cW0}0~(;{DPuHzA8J4m~C%W07y)4-8ji-(RX`*T57wX@QW+i&1H9s0+0O?)@jI^f zeEZ3KoV;V0WVAfSmvyq{W2#cCrK6vcv)*KB-HsS##L!lPE&UL8{34SWFs4{bM^DI= zn;Bi0tIHS*t%k(W)q^sS{59pSgW@~Z&+men4cNsyOfVP^RYO0WpiA0ZYaSy`;s{)- zrJwF~z}e?O`2dQ}$r;UqHbHOc7d0`#mgnL-MiAsJO3zQ|%p5MsKbXSWGnpye#^nq( zyI<}PER-INGjn!H@f+t7qSd5O<{6`_snx=0gl!TsPmHFBlQgd9?524gq2Iq4&EKu= z{gva0C=j44I4OL>-1~lh7RczaYmB06we;H~f0<4qC6EZZH8by{jV=adz4*&!iLXv| z|I!bGRf}wAtDTuLF}yy%CQr+x4C)5(zI;8kS`e$W5D>U2B7RyoIE?F2Z+TEA$>H^7 zwyEW{5m&+~Fgsmmyk~f-``5_G2A&N#gi$1_W4;xCiGqE}_BzV~l$?zmn{Wvsk~Kc-jdZEBvuf=9fD(k65e4 z1sc%-U%o|EC*HA7=Kg0gP8dhH3X5L} zz>L-XmerM6%mh`dMX;P5g7HpAY>0ux|BQShVST1>Psl2>kw3rb%c$glfsiN5CVMeo zDsmq<(?j8_ROFB8gg0jyD^t_>4+JspUGgS$V}6DZ89SynwS3K7Hu-*~sP=vT@Z=A~ z-`Aph(WLPptkn{MAZQxNYUQFtWNop|IaKjLc;(rvseQf9aA{p`OyhtHqTFLF9Mg2V>rci0ED&1w3Me?@#73 zDy}BAAP*f}RD}vrA^JR@7*0Pr=)2{WUyrP-R?8W2`{$X!XcFJ=csGTD^|eUGB_vjb zz%{Amx{a@KPvpm*dEe{hPCH|-8bV*KtlwU{P{kW#4Z9AQk8U1B++iTe=mtgI!f z)N1L+h5Op;>MLRl<`QGro#a0}C9YvIQ&bS8&dfxc~5@QMjnZG(apFkG>Mat6TXI zj3O;kz|s!XYLO>Lhwi`Y#R8Ea@h8GCD!2qN=Lgx!x5qhV7Nba@+tR>(!nYj#=t5f( z`^P7)su}4w@B2(FzC(J)vT-IqxuQwu@>zoad)13siFxyps>=R2w&I_XBdV+R2KwI*9I z4Tpd;er=5Q^yjr&`ek!ClRu9a0Vvu0;(g!|VcQql(uj+jpvGb?$o%IA8$#~e7#L3X z3KT;j;&L2E9e01LTBzu+9F}Zh%wn-OXAfXm3 zPTG(OR`)-qDpz!^mVVgyuyV4B`P?`th+~Laj5N+M+x^&RvZ|@o0u?j3SRn2L51shS zqbQkNSFcadtK|v3NT4KEpbO#B@%O(@S?HO zjFa!gDny?t-v%gK?8o|XuDoMdkN)R<=O!?agua^_hA}H1rwdU9 zxqIS;Zl{ZrWg-%sPW&!r+GF0oi@I+LG;mCpwy0_ZT=z*e72KOe<=fF3XQ zJ4r8s!vy=0!Rpr>^&Hs(RQ;1XdJbpYqT!Di!E^D{wJ))SceY_k4>1O<)zVL6W%J29 z#nplx5uF8R4cI;uLsK@3Y+700)@q?W39k;p(gwukmBlVjNel@%pbSZ7Z`51jLQX8m zpp`E&sF$V1pPl&W@B~?kO{!`}Vw8y|%AQRW1Bk>xMumzLgP=nAMbo<8CwA1 z_UK<+Ug#t4XU54FaT;N?U#V0}zxf3}?Rdwji=UO#D`|Or7GQna0JY$goy8u;d+Rka zw4#f!Y&&$!%%-Cp!%xBM80Tg_il3c?S_9@p@s$j5A=JypQ*#D1qLja@y(Ol#v~B-! zY74|6PW{{c&^yN2JT^$lZFX03&CV?5zn`520?{X{B}({fkd?HdVb*Ht=g~cYr~PO= z{A^ubX8q*xf&Q%e39C=R??oJ@pN97~p}g&={YoTVuM;|!fAqbYx5t!@{Zwnc>I>TaOV9z?v36t!@hYt zZ*!0ZVm{+B+X#^FLez(a3)ZaF^35JcpBi;Vs49sR4Id^3>NJUt=T_Q;n?cv)v=a7| zoJ8Aeygt{NX~`19-46q*)pE?HAPatEQ4VLq7yT8lVNkDlOq&s!?q^c%V>s1H&M#HUothj@$LDXq7W@(p#xB=fhb;&{0-B5B4Qr4i?(BJF#LU{oZw znFg-!AE;zhk5j z%Te4Rfd<)GMDxy)5(KkrBq_tYyl!H7x*hP$|xWndZahLHOlrLk$b1#jw3D#1OesT38 ze$N5BeLZh~<7VrKr`?FT;*C z#K_ME056%(>6P7UL@>IS)A7$G&?!@@rQ?nd2^OTsL(j@B`TOy-=L|Tw*m!HM?`bGv z7yWdv#s}vjoIfdJ@l}XH2uCemS6prmZeC0A+y5Aa7IH!AZNH2d$uC&kZH#nJjb`O8 z)u2%=w2!Z-Ad>SGorTxH=EYuY9ny_SP%GXq{kWsPeWdDK$PlD(;i7p5D)S^n>k-k+ z=Db!*R#g`~7fx+1q8C+5O#4QL1h7(QHmCU}wM6uKkp~b~fL~vL9)P0nMTk|L)Iu#N z_AowtD++5@UIZZzh!~Mx%C+M7>12BGl3wJeW}|#D?qGI; zby4NRP|#b!0QZh)c^q9HI=3JPvs@nVJ4e_?-;1RPTCLmOjh}3e=wC+Nl38Hkav#6( zVxK%sMk7&qt`-(oAQ=y5#8vYTx0(1xa(Sy-e1R8RKJG0J05dW?SrQu;-NAg$Q|soa zRjQ?9p7?i@#K7N-T|>Z2p9*&+G(X_wF=c64kClcFob;OrxiA zI)AEqF>DyVe_^PF2F_?w zq)n7+>Bv)p@q5_%a3u=2e)3RpH> zV)J-Y7I_!0$^|o-oDL0Ld?_8o2tv+KK2trPvKSlT$@nk;_YC5Zr&;+v9;)CntaT^N z8&9d&Tl!Y`wK<80ocg%14D-Fdj8%^97GRgxpiM1b`-<_1J@?lEV-fBO@MF_vAY@o7 z&~y~<{eJxzdog||K1#dk@cFIxqzU^IA8^{r9ml8GTM|19dDXba{S$8hBlZcFch*?A z4}3yf`Sj*ugdkA8AloJTDLL;M{a)h+&P0pia9XN`gI<0GOkNgXVe`SRIo%NsTFNc} zb8u#xTFl7jL*>U*wSU2c#ES%D&VVy$A1C6fuXV@$zW&18m))xtE@xdP!M6OSXHWhjlHpBrtRpCc-sRLLf__zCd zcE)k|0>w?O7XKAS6u>=kj1WF1s%|j7-*)p=u;6{O(rQx+&J|2oN6AMyTx%Dyz+Y6- zBxm15{4D5dwVcz9ONOo4FsVff> zFSBNe16`>WgngSgi1nx;^52Ch$eC12CZ+(eaJV+LU{|{-;mHmyOgSQ<$?KCjXu8{gXa7)lCnysWK@@;b^h1`(BstDxyZ;gVUc?hr z(;$e5f?AWLyXw_jbOLQ^5h1O+^u@#7JeTAfP{QJ>Tgv#4TLe|T2>R(>J(rEX6|m1) zD|e+N=GiMZ4v4rA**R$wrCKge!AG7b3t%-16^z&rqO;vGhsCA4(JZF7G~dCL#w0P@ z_UkS6f4zAA>8-+^)&wCb%m}MfChuOQuWL1F{0|Y+%#V6k>@6o?D_Vl((c|b}9z6_aEnvz0&SE%fdn0`8aZ?ddze7^^Fpgsj zUf0cG4Z|ROo1P*L({HXs+!pg>;li;Yb0xu$z8_rXB?D$-OjP-n{W7>QJak-WLz?es zgmD#g;nBQDzx^N>ZAA>W-+o_;uws%d8wsQUQ};_m$#`%~?hXt8>T@xMZDUAQ*-Obx ziIhtuk8uVO>W70%-`A!VS^FR|2N%0`mrPvRnc7~kKB^V4M%>A2we;hUd8z2BJ#vSA zAm3M3tu*6HwlBW?YSuFr42Py1jiMQ7QTW1{{zHu78uH^3*i65FoQnf2$m^567$aKa zu~Q(-5-J~zjG=h%qtgNV{5;6qI(^bz6s42IPE-~QP>fx({R^F*F$~ZvbUC=C89DQd zD1}p^4j{0aS>JDuER^knQqgevG@N5l5+j&(kI(19BH%+^{Pz3Rf+Zwn044oPzXj)s zjT*`lE+NRz*MF7$VftxBsW;{i4@-@)GLWB9BNh$EA=tFh&mGX3%l6#O^m1!Nx1b=aNj?NW~~-J`TQ=D$^z8UU;;+s z7?5q>Ea}sG%(bOSEx{%)4ZeQQx`Mq9Y+Sw!Im{ZHbLZH%*pJaV>h@uX$SSN`?qog& zyA~!qPbWaRnf?V6jz(WAHi60F-2or73`-=$NPJ}`w1F$t;wog!4Xun@a@GlNT)it9 zU!0_V)Acpt!yMc*xJ|`&>P>soD52rOE%oUl#w~iQb7jXp^10g`M^hiyF z9X|0*8pFA%R7*eqCM6&g3Jf z|L&4@qD}FGmDg45`TOz4fz#vyxTC94H6WSe_ydL4C7IHW2TQu>1Mk&(BddJu-eSCG zDmWy&Kig}5M2Bc}$qY?u8TeZIZIYT39}<52=6!p`0n{T2%FX{R&MyNi>-YL~@oM{E zyPW1(flGf~Cgq# z&5~!~yxHCR9B)xqCSTEBt%V1LiH;E*ZcPaG@2F2W$Qpd6BwFm4+SD@qKopl-g%3rr z3mi`*0t-3#D54a6b}XLB{jhN-@AiafZ&j7t1P8z#Zja6e3;%L&uEknFtRsq`wX2Z9 zc;_)A0nFHoCHBWY9-`f<7UWU)2&xTTO1||H^ykqbgapR7*chiBNZ9UGJhN zM2p4>g-{S6Ey5!nt1z!bny`HOZ~U z^1-~;aPSD(N5mCdzgjK*^7r|g#A!BH{;L_W-=0U0GbQxvS)?2=*>?7+N>eR4nC(p^boi_VMo{GSgAc!}j5<-V?8^iy#b(~rsWjZzS|GoHD* zjS)RqPD;?SxXP1nQj5EiEiZ(Rfr3j$=VI+@36tQbAEpF5^5S#p=+{Rs=B+g!y*$`x zZTFbCQAPTSve0n)mug{OX#W9Il4xLwfS4u$z-{~+B`PFBi_)V_ExwS`nXf&%4E-@T z@=;u?VG`kM@q58a#N`PyQ8Vdz zqjfq7Txbj&t==@_d#kw;uLn25rU$5Gm-KIr72WXf@pxiXKrLLVWvAlOb9sTkY09Ea zTgBqW-`J^7EIyi$TGhfaA8xt4z6#vnk^$j#o(|@na3x1Tt(JaT9!p7#4g=q;Z_RUo zT_p9B+|n+|o=;m?tHr=2`G@)e>8}i^X>3~UU+_dUe(|;TsQ`YXPYvz%+(0A-GEjW27P7NPkiUJUW)k4%32hT5 z8Hz9VvyUHo)ut8*m5^MBxU?7V@E-nHD8wx9P>7XR(S6Z@j-rKVLS--0RKaXUCYBAzEPxJBvU zX-q356~9R>lnIy$8ZbJJc-Jn3ud|)`1ta!ZZ~obSG7vzm7S2sVTo4S+4u$71#QuOUPpTPuAf8#{*ofkiy` zq`i2(UarT$3Knqbf1p~6tekYOcC1FeA%XZdm`GlT1V0D^J$Iv8(A@1OL82C<-ZB4? zjV}pS1nU65A9TF28+%ux(fm5Sg_}vEPpg573Ft%4ytKJgChn-^6GZ63SExpni zosjyOgfP4!>MfpQt5{L$BhU^CspHr~*ETs_*tf2<&)UC6_sfF5#%&DwOZC({DhBmn;bNQ zVEHz~xe^JYQ{rqaEvHE>p8v29u9ihQN-(83I3$@V5dgp0wqz)t$^G>Ez83=VuvCwD zcCl)UE-9LKe9!f?Pk_XgYUzjd$=WCA9Py;^=y)Nx@twOac5!^ja4 z8;oyhj_|!es=W*EqEGHXG|4#MwOac1$@Y=##bXVSz1!#JM3d=AY7T!8Y|jwYYqj+3 zEy;#*2(wgsIahHcp%oQ5Wc#WIq*SWag0$-}fg@n5fUc&|ZWP$3o1s+$D2}X1+tl); z?^|M)k3$W z8?$xc(#k&D<{$_r;??tWaca$)v8eKP4I51mrX;RjsJspQh3m z33+t~3n^zrM8|i|P;-dv=tXW*i(XZCN&5zQ^S#8{@^uQ3p#%kxIPk6Vl=|gYx?apm zeyij1NIqlo#h7Ww@nkr8^q!yUIi^Lz*VgIVAsG1vKNJG2SJ`2FfzEV;t@>oXv)>uS zkAGqRLRFPhfPn|vvUhFaMNqu=`{h{K>Jf@zzb5W0z6#FdTr$_{O@5r4TeX&cJwJ)l zj9VLeeez#`BTy2DjtCo;bV(qo`d#>1ARwAO38JWwQ41Y;{Hy;K(g&|4s>epPaDu@Q zh9@LrC}zM>RMT@a(*kGc$%@YFKwZrrFAChcqoz`JiY zM+gf@$*!Bpu$jzE3)5OH{j{RaSlCE{!2n~#X@D5Ts+76d8l#$^CIzwx%`Fu#n8{qHd)W1TI1rv>1wqwNyc&xxjIQ) zp0+YRvABovY5C0j&2$!VNdJ;pFv~Yr!mKPsH8K}k89avG!>?AV1?P&ZneljBXcGco zd&gK#gZ=qmVJZP*+SDRA*lc0b!?`KEi!4UoJj3G_0YxxO*HNqG6!IZ$nU=@85RX%D ziKe87;b;ozu}G#wZ&J%6=ts{2y)qR!$K5>y22S3`oRye;L7zFM+5;4pZ}AS~g-`5SoxN z)N7xm_nRLu{dSvLeB2j^)bj00&p+V80f6`_?3_A%{QFSl!1wb~`&d?)SGe_<@6CD! zK6|W%ElH@pI|yhi-Y@+;?X_VDslIp-ww5rUH{MYEF8p*9W3qX-swZSWz1ZVgPO7tO z_@fp-Q~1gLRnH3yGkE&cM5FI|f( z(S9Ep!a1pt*{G9rIA|tg z;p;2HwReEIJtfE2X9{An%52n+!$%ccm~)`xmTa z{n!almiZ{Zl6n5Dw*kZyy*v78dF;f8XNh26K!Tp1!~$Fb@-d31`cBg(~+aW={IMFTeVvHefyVI#mDK&9}}0!Kr`9D{0^B?VZ{!Nf{J^wT_?Oa z+hMSlmKr8MRA6iKSz-;zNL%5_7M~_dpsS<|-~Nr@<2tkBW7nn`FuRePzcCZe%g+ zq@?Z#8yBFZ7D`K?JOa~c30(Gv>Bi|5^Bh8w`3O-ogaztEV>2^KP2ku11%IhnOEM2ui3F%DQpc?uifsNy+>7=Decz>_hQrsDM3Lo2-q7p?+jS2M1) z%f*caMV?9A)e;`;HyJ|`6h0qXINxWj76J~81k0oSgPcZ!7Kga#hVCY~*Iw!6i$y}U z0LU!%mi=&kls<3vD2SYVexSwVuQHYo}l$-+Uef!FQ%YTTv z`KF%&O^_ICwe-t;)F%%&?YSE=8*5FiWrE>y!yY4h^X>ntb7i-?@OUSxU9^#9=Tl!+c*ZGdO~;z1U{od+W;?2SEd>&xNpNX9>W>e)UM~ zKrIk2l#(C2rjeR}t#&JH92Vlb{CeaL0Aw;Gg4;lrh^`fL6)U<}OTWxVfG$TfZ6#D! zpR5VXt?Ve^-zgIA@qQQIu`}2d27gvM$t+CXH}0_e#Uj&lNvGbX7OtrfOJ~c1aARlT z^!HzOY_f1U;4@;Hiq8dSfBQLiW_bVSGDLTqFw0P&pftc@orW+4#IiF{V2X=DsFtAQ&ub zjeYyrnE%E`97XN}%m>|-=AvM*z8930Ni8u0XWIWrnJU%7sgumv=wi6k>_x<}vKa<2 zu$vCj&%C2eErj8YG9xQ>5HjqTJaG{-)LiF8mKFh2u@=$L|m}XT4g&=_QIV zUDz#%l)sb6U#q2GPU3Bu&kewZ9QgXfHz1iaa4e5RkLl9+74MgRez3ebSSTlmXGDXG zTTFOL4gm6Pbo($Et36D&EStcfOj&)IOgaC>lXnY#pU;o**&@jaP^(3dJbi;ljWlw` zd5BL4#zMppALx~RwO^}IEs~xQh2f&FPp@8MXQkjV%_Cz4LineMk9EXhI9SqjK(Fvb zbBLVP5)@v$ zuNef&V@ZbF6>5B~mVR6X2_|LMd_aP zOXFoRj%Z_-u{vnDfi|hdJ2reMkPwGoOey|jM8ZI20YmH~Pz#FpKBof%f8Zq1<^0FE zcrZEkA7nx|5)KlMG`e44RQzl-eKNS+FJD_Fqn;C!FTZ;-NMNzI?59WOZo_8^T1jUa zoIh;)jIk@$uuqh0A5^hai^nm%t2RP(Cvk!cxo6YwYxsV%uv{FXHnmtvTNpDiTNns83P%lH=bQm zSrD+Tu$dd4XQS_h&j|H_Yw{!v<*5RV-No1@RXQg>iU;*$sg`~|@cgXcR@O+TUPccS z?1CR;B2+~2;*%nL)oKanCBe}k1enNd*%MGp5 zEggVwUYN~yOQ?0N7H+VT7qPk78t^xXR9JTmQ$qA$q9+6Z=Av8~o%!E<`;4t) zKF9io!vdX+%cq);{Fzn@Hp3U8jiaB^Da+6-NT=CmS?J@{=p2Jv+O$C|*edw;d64Rp zB`3)jfyNVH;VIW@S!u!d4F^Ief&V0=I0jKdjJ*;jCvRXYUj-YaAp=Z8A0Tm8x_?)3 zl$NkEVZf%_S}g+i?TcXJ7~L~i+`S)jXj2&>$zoS+`QN6N8v&U%gs^@xwPfcOo6Zb@ zl*qacwq(V-5^RysJ#uYq&cD%Z_Sz0Qog+ne$yk!LsRb7fxyMC6(QPO5(KiZ{wI})Q zNI4N&6?>R|_!uvWq?96!tnusn`u&po&O{j%?=`%sW<7rnoch>v>%73?5}43>oS7#7 zncC8ctg~oR3vQ1%Wb1Zdc;g!K{>l!?o6d2#${X*uf6+S1Edud_TjO)(^ydu) zE@N^C>6Ou3%@*vZ-zROSb)`jR4W&;uY8a1=7)fW~Mzaxg6>I6Jd(|atye$)$9Q)#7 zKRdY6oFVab6#84%BlpwsT^{$L83w(@5ERb>?*bDVd5s2Y!pE&J$H)c8 zk1QtOs9#M#2KUt?hkd0ZWEiJ13}{q=@&t|TgbhM!C@$F;cMcNIddz*PR9 z@%e=q!1|&}p?nyP8>AME?n>_%iB%FgZWAneH&GfY4!s!E9KDb@xu_Z80To!!@C9&7 zXp#dU@p9`=Bqs+1%A`i~K8-Nf1Bwn`N_H!YJz9~##0nBtsH(NU_UpSJqqZlUR> zNQl>g)7f*8HJc5Yv-v|gQk`F7)F~Ouyf0lKggB19*5inTcwNW3UV6?(wIIV_Z&IZu zD#`!5GdVUs6Jg@lfAcwi#WR^*(qwvcG{)R)rGiQ(murkwUw{~!ghsyB0Azr#fyLn* zA4Ot8D+W=y24n*)e7>47)N>YNp1SKO8IHw=Bssh|g)iZH_V*4wQ>_-i2L`$dW-YPC zmGB+e4r+yN<0Nyyn2?&(g7ru`VCVkj&q`wjW3UU2Q$OYnf|p%P5r^rx7X#;SNqRJp zdB@l%y3^92^XxZT`kJWgOSSaN7_tdto?sg$5H)_V-0pUZUsi`kBruFQxrkjL39)B& zdL6e0)8QOBdW7i?eJ0IFcSpN#fA*d+wmN~cDF>c<{}g7G}@q3gU0;pm&6 z$2Eqmbc0Ad?i?|K%rO@vq&NFs4*%wa3Nh-9jxP!*-cTagc>_+YLZ0F~7PkWtGl+Z< z3tW6>Jr{0wK7F3r=$_2h+SFpfiqhraikGdyLI{A#B|4RdLA(z}Mn|odexAb!kHB3< z3R)RwGE!`4w^&3NrN_8&C#iaOkeecQurxyYCyM zjA)ldB5~59jnxDsHLG~<_tU)^P|4d3Ut7{y5Y^rez^y6Dh&qAuXjPlQaZGdt&J|95 z^yeRECSyZKzjZv5qpw-EO)Z!7mpv`AybSmlu6Xcd7u$X!N>bp#>1ws~%is50;Gofp z#^F>Cqb(myn31LHmBAWZr%Sb%Rd{vyjedyYdLvh|>=H%}mb>gat^Qka;p|@`8zS7B zUp!f?Ja`c#t8ZHAhImsI=Y8q`dp*k?XgjyjlVQF&7CJ&#X&JA>;SkWImK*EoB`3VG zzb;~m4#Jn%oQi8<2uCFWb|u3O<3cOzB-J~Ur54ZRetR*`1^q=c zX*(KEd$sT&(l!e__^>+EITdl37v+t~JiD1_9g$*o1Slt(RVB;e-`pxE@z&dOH}c%M zH`pcFS~+)gO-Q69*}NN(8_kt^OP*t%%aICR z-ngtZ4JLNFASJZFsW|WV^MjR$J_4_zuE@P_($m0d|H8xa#g51P6no2l=a{?FoRU2< zJ0LxOQVg$Xd2rR&!IDq&U#z9yE{W`vn8PC>K-crfug`<}!}mNuJ|Y#W9Qb}ZK5HIC zD?2{wkTQhXiIx@Q?~(5@S{6PQz7A;Iq()NJhA}m1^nd zbweHMZg*l@B}He!-;#xwTiNua91@tS{-tL>#{X}C^|8{`^G8~#rSv1R(sddLqWBfx zv3~xRT>ps@l)+CaIKLB(J&aQTMq(UT#c37av3~cyw+if{(}#q{3p$umJnmSwk-+>I zHFKOV)dCHt2l8eahtaIJ0gDv*hEkA2AUPTZOfyW0a32Z>tVq6CfF&D$Kts%ceX~&C z;`cHgUl|PMRsMONMuI-EVtL$|n1nGh?Q-fjsUJ$mzQG9%e79AsuOC<8(n(5nwoS|;@n2ts z*f_9K!WWYlVd#-%u`vr9Pg476V~TxpM}4J0k>mCv$I4cp zOpi>$Wf`AFiC3h?u-K0|*#+S_gwf#KTQX%xULn?B*=cg1*<3Z_CyVCrWuQNvq?P$Z zV6aHa>o8cq0Q!aV)oSUN!A<$Nk%{V-yt&D+gIi*DdC{~pmgCn@^;FUE4{S&6EA0~9 zFT`kpL`fi!R4PgD|_B7Yt0N?V{GJg8Vpw^__x3ELO` zv)O{j>n6Ha`Xy;Fl2tUk zjxOBMG%_=P6<$6ISFKtt7NLG8!;$Seb$E!1&yGUGX9=rpK0KU8XL7=+%}6fCDR*TO z=9tgLUWqx7g_(^)@q5|1{hCr^I)^vTcUt@M=#nT?B*|aGrJ8v{o~D-tRLvE}f6n{` zyD<4jm0~x;n~VygR7<}+J`4^hsJEF7T|B!Wq|VUP0)dfY#df&Z^Y_cKx;1|GlRWgE z?8J>L(Tjm(l|uF|S9UHwmwtFMQwwJ>xg(-*ylr2ek_j{7N2@ZTL2i1bTGrUG-;q~w zZ3z52V)=kbJP=-5us)*BHnm)^368B4JnxzOVXh$g#d|Hf);Tt!7!|+$u;{UQeen|I zW7=Q~`>!P^lOVyiU%>!vYSF{^CF^`PeTuWr7+bYgeEvHwrl{}Qm*D*2 zT`+Njk8!(`cmQv#?q53gmc%;q>T-OIBK)uOh!~7ZD~F043#WvRS}pyu(iUjT=Z1?S zR=Zy?th@$5MuRgoaxC_2dP=o)#QDWlA*s0>N$FvIemX|rj%c?v;x&WQ>b$S-dW`zE z?ieXLN;?Hia*F3)PB3qRu(UR{AX(`lK?&wab0sR-zq%xIGB}33G7j3MTKZ)T7%FwK zVXJIp)t`{lxz8fSpr>>60bf;Tu>{rW^!+Odld+SCU-9n2J>aCTwTKmbqaMb+56wg8 zvIu#3N{&s*GwyxQi_?uGyLgWEuq~tqdN6B->goiNm2g z_DFQD$>zun1|6Z^g^qoFr>*$OGAsNxfGa{vNRlu8rH%eggCL;unGt-8=UBf!d69+2 zp8L}IA$EZo!n_1D9KwyP{}w-C5r>go$r6ZV=9blqD0aS}294K%5Vubh%+qTBf@fn@ z99t+bpC^=*bQ|kI&#CW+{#QLBOs5u;=E~`ls3f+Ngbzyl&KyUDoA{g>`Sw6V2@iuT zXq&vvPXA+Z@6)7OS7tY78ZXt-^WK*s3v1C^Iw#>6dVYEvdOO3|A~s=g%9Lv9=nIFQ z#G}joMNMt4gkUnC(f)1pj|?ORcXq9oj+#We8nIlcHhGb0tOAvU@ZlyKP*^GAiyWO( zU>)rmg=5>cZQFLz*tQzm*vXD}cWNd_j=->DbxVUkb_a;n>4Qb&m1Z_jP zj(6++NJQvv4SX9Sh+(Z+ks@zN6tEVnPq)J*OLD4~ssaJQ$uP`{C08Z7A7hLjL2WjR zkRv)((eOO#W_D+$IN{hq%nkF(E&69)OXe<2Xh@ziSZ`2;ra(FKKa6)JaTq?LMpObZ zh^t%WGrGjjeoXJ%j83dO)OZNog-~oYv^eb6%ILs}NB{U}`(o?y5g@s^8D9;K&!6=_ z?DD|ltPI(3^sVH3Cw7raS8n$z6L*dGK{23)X7Wn?^=GRPa5VkOt zR$M7pZU8ddh%r3v8aabvq!L2j^p)c|X7$48uGLqb>q^rS)>JgkTq=VuKNu!I_{}GE zxa+NbQ-5&+PrL}3Yj8h%bJn^QFAvi*5;|b;8Jsj)L|%+HxgIWluqtpJ`Dzjpoiff+ zV;cHs+h+cyiOh)fsVFgj43};gEfpfoBFG1LimCL+X;hV;nW-MRC})Tm2~qV*={DZ7 z^tUVUfYqt5+b$Cyzm#&XOUHb+zxv>@>gd6Zc}!-B#%(^RiT`;tL-RB zbF-s?M5C{z!{IryoMnSe@DZ1WqmHgzi)CN<_Zdx`r4%}8c-BDY>8!FxViUYWNm3K~ z1hP1RA$N>J!>cajMoHLRLd0Y^EI3fZ~?d8%D8O= z%)nM+)>^eVbtnQKpN&sae3&`D*=!Lxrsp!|KL@#=(gl49_BTEV^0vdfidJjc==t8u zu$a0H@WWKd_e<7P5a_N~)0Xo-zi?bBEeFx%ZVC`GGtAXP4|L0)}u~#~c z_7NNHag>o=`wU-GkVqac%_wZcSqX82m&2iH8JC;M578&hjMF9{C9Zw1IuyHHw(la- z-xt5&DO2xx5^;EE`bpDvY>0o)EXVigl*ChNYn*Ch;t5nIocPIt1-+|lE5Lt;Bs1tX z8r`B)(J-otOP7sud8pb{v{+R7Ic<+a@4x-aZ>1e%aMMpY(Pa0!R0M*8E}=SK2X?>D zcsGY30{uRgbgpe*XVq2RlLAA*N$sx1orbi!7f=~Bgz5z8jJWyW5b_KV7UYYl0W2V{ zEwmcCs%ooZX4yILh3pwQm+pr#B0o8oJ1WciT8=MyShCc5`Ehs+aA~ zOYzS0klpL=QE>5>^7}-(7BR9`7O=tSJgbN-$?tcM%*^{F-k3&;F_u0gK{m}l1_C{k zqb`m&IlN2_H8$@SmS3s1cLd?G+ai^>WjsPsH3dV`M?NF7bF>=v7WdQ!xQ{8!_WC;xLwUvBN z)fw^l8`6|G{YFm|Gku$T98*&6Ikz+Ob=Ar?Goe6&FUt!>LhT-<%l2#6pL%@Fi#9`h zW3qoc=DKe8%J;@jcw%LyF25MH$K;L)7G|RB_Q&s0`CP^8jMA2OdB@lju#=*?v{*kn zMP(e`?E8_T=VmRJK>23Z7G$2jf9e#={jR1CC2{=zpsp1X#7k>Kuvn}aQE<_=vAO6f zBka3nJd=?>2eG?RS%FAaQ*$kG&!P1s<7BC+nZ4o$;YB?(9WgHM{S7xt^oI>pf5Cz^Nq)!ct=i~h3lX40h5aFP~@ zL^UI?zZQP=bh`$M=#xCKw)d(eB@vuVZK35YQ4#HJK$K2Inp!tSd*e;R`#YRJQ-di6 zssM-NxKiRp_QZ-KUBi%O!Sn>?=PN056E1JP|Jn=s3OaI|0Zd!r*Ds%F|G_rz4n`X@@^> zj&v0b=6$sLlh&gCcm`nhWoLDaEDi#+yAW0dDUc_JXinD$aywU@yY+ zgU5{&9T|a`4W!u6Sr!njmz!*u{?PV^#`Yt+vVip*5sn@o35CWqNlhtXqzxZbO zD^08=rkwIcZ?4JJKj=xKB~t359K}^owjV4KRgQ239*{=)@15ye8LATGdo`$YW{((r zl?{QQ@U83|c^LMx)a>@US{4qBM%yiD5l7sC2Vhd`i( zAl(CwE;UL8Sr64?5r07$r?!-0p@FoV(iRF*!k zHQ4T)exCBwgsZYRm`t2v;4L5DN$;(`u-;Mf(sdfr{ z?dYNHO<0n?&77QaFzmliTEFZ|1cv|lmU0&APXmTF$H;tsWcku z@a8ol7cO*Z@E`dN``=5O4ZjP=jW#b8S!`T%{c_;`Bm6MdKUPz(AoVTyt)s9;TTEr! zJ#Z)v7d}SY9Y7ewk$+;-0jhnAU`{K!@0GPu!HDSt(FFto+cb|T@x{V`W?vo!&x071 z>MS9s$Ra(A1wvx22~@?=1LT@)U2XTr{xS7W5sWWyK5$1rUd?Au%XJINeBS_MJO18I z=IfZd4~n)^J#O>zIkxJa`iXhd3PFH8T-*f9ilKf{A-*ZW9V;*uOi1^1GG-?dn#%`p zvdQ_9ZCj#KZ1>XMvo|dZYMK^9C;Zpk2!m#9S z1@f9*aEHI(b1VlCnjIl;e&W)8?%;4iw?w6NcJI9{pYpm!}1s(^b(dR^7N$CzQNI{4+Mk;7Q8 z3q3SfaaFXs|5HGMKWN=NPQ*|@0;d2quacn6h7Oj~iVp z9nA|}Y8qu$dzI`C(&_kj>TeoTDkaySvFTxz*j?d=F#x-FKZ@|l-bnSop*r zm~12k#do=i4#g&K860zlfYEF3eadcCrnyjw!%TqY{nd5n#J4Oo;h?G53OF4^^lLOG zCxlR>`v?V*X=7eW`q90nw7p!l8n0xCEV*56z=hR4s0l{NWi73masg>D- z%4PNkjN`9I)T{|gmbVY<3d_;RkE4OSGzfHHGi$fw71yCjx+aH`NKz+5kMi}!_q#@{kVGheIgCV{N5%*tu z!(d*V04jX9xywqQ-_!WVV&(E`?iTx z?lXkYIF&|Nj-d%;z46-Hq+J!Dx9Y#CHK4$oe6vDyB`xcMpu>_0E{3;nrt||U=FWzt z7PKxi{UO+6d0pBN-+qp;eRn+FpgYOtmps5r2w(;lB}JyS6cI?XU};3M>6ShxpIu8exUA=GOzZ!fU1Wn0!w>B z&7@wVv}mz!KX#+vhit7cW-APFfMNE>n#-u%G&ZZFcaY-Ww?FX_o)eA7K7VyYsa`#H zPo+SXhVFM(o_W&`FMxlc*m3m{uXR5?VG)^bxrDxSI|5Zj} zpKLk5n5>hfcfiLYI!SJ!NC!Hjgu?eStVrSA5|Ftt`F);Uq0kgJNA2#T!rwjqd9v;M z$r2qQN2)1_U#Asuq}*~BkZ4chQ8@#n?gJyCai4k$Iu2!8QBX8)BmAhcDYla`-K_3a za)_^uWrx6{OGU3M^jr_qZB2#4i{?O zGM4sZ6dnX~mq**(+mq~6LhoFAJaYYxye0Phn(;U@(n)v8JV9)|`$f;q~IkF*fpEm_15LucIFAvxN z{KH%mVs$!=MOM}PRSQKa{tTGS$-nLbfIs|PBzt4(lThdAQWK7_x?RPeY*8F{}G8S$LxTv+}#OH+qz7Y)Ja8 z6ysuW^!mtH`0p}!Q;&2knsIo=O4g)$c>(jByMJg5{h%WR-Qd?LNg{`6f8!W(`~%DO z8)?%Gdrx%z<&KkLDYbk@f)_ayBpV9c;x2H97ToM8jXf(@MpkK7s7xJ5mCI?FX=PK(lLsrt`;NK18kmf%BMGZl$8}PpJ z5;{QV{mPV8siGFoy++LrOnY#Kvx9N0f!Q9u;kokATZ`WYRO_V+QJ7s$)>y2$s?!C_ zSeg$G1$$mA)v<_O${m*2m-6!5X$*Y@lO!u8968s^Kvgiy9=10aIzYPbi2K(|X9a`Y zxRdxez@kOx&4Bko>={gk)eqJ}lVqYnU~` zA&iJ3(c&+R0mO^{s(bM)4P%L>flu#c(XMcu1khVkM(qK@cwnEn$` z|CxZebmCIy>#MtIeBCvCkbi&_#X|*h{?yu_i?R$wSP-ow(88IQM>eZ3(HEC+VK;v!=P#sd+v1T@cz;AFBU{F*c`V>s zf{F5>%w!+Ef+Zt5c3zN3eu;;?W+u6%#c#QJH2E25^fF9?GJh_^`u;jS*VJ-c!W>FI zDh)5qU<&NpY{X?1EI!V(t@DaS5(Su}{T26Z44Z9=5`AgY{Vlyv)0ld?^~o-68lkxG zxr4JTMr7(7yKM3%xFjz1Am@C(0>we8)fkd;Qe`qO zFqlVHB-f=$ZU<>yHD;l(Wa-8IOnn@2zY=#;$4MtKX^;-Q$U}zZO`?E#QTf|1e-v33 zRy$}sMTWwi?Dh6?!~oL&*3zcbGp`aAJ)hXV+%Wkkn=_6lM5B5_uL+842YO`4A5dFp z9bWQW%?D-mF2A|B9j-~5EV)-;7xrN!!)TpjlR1Bt?Kb!kmF}sGU@5}fi|x||F>s>a zk(Y1uN4F4+(3`OMu`HBg>``W!RiVP4y4Pjt|DD9hq9M8Md?8~%3Q#mHy41?(DL9mC zLkKpiHK}OMeK1AgBk+uf=D)>}iL8kO$AjA8y%3~1B&<$f2v5JAh2>EO(+GEIvSPr{ z_{BCFQD`TA0rLheXpe|?w{WUBw%K2u%wM1@L>xfog@f2;62n$)#>ZVt*S%hxpXMU3 z9Yzudh|LWG=urUD!V6o6CF?ee1!F<$$Lccjpz7Yk#IeKI~ zb9x{Ke2fj#c`Q;`4z_v=Sba8I2XCf_prB)>n@@(2cZmz?G3W=~9kr~1Oo6s$$5e$i zqP*_0`0YV=7qhf*IiH(iuxSg@OF_ox0LQ70GJnbsdEzyFRk% z^^YP+SYh+iCuu5SwXb)t6t7&R9I5>KLmvWPWzDPZl#k1PP5hPBJ&_gu2gi3P>)b<* z&!(dDv8LRHvTEqK!5+Cd)HJ1+3Q_;P;o=i=!KgbBdTXX0h~4LwL7%h?6*P@_s8bI> z@A}E>MfK22Ji}OmhUf+dmRJJSoJ;ktrJC?ytcBolM=B{>2%3}VrfDM+Xu)&u8z>## zma17IEOon+3RROq*86nKqA@1j%YbV1Db|a*IciGrLQ{IuAW3LtY>^o9{FmXcO#PvP z7*s{4ZHP?`ERP!I>M6?0NWRcfFXxV=tXtAh0+X~EWi8smSvmLJxcJZyzM(OfzAoA` z%U-qhPf!6K0a)f!Yb)5z0}R`5cKqV{`99s6{D;2&h2J$;rNd=nj$~^G&8y80!4I49 zPBCrIvrYUwjQwm|3#u)pX*12EKkF0P-X-*cF1bEAW)`VdKt|YQs2BY!^8Tw{ZU~dB zDpE&cJT_@xJ8en-hxio(Y1;>@4?pm4NS<%Hz)fzkZb7(*ykMb+v+Vt$Xw=1&$)5Jb z3nnfM2d3^In==!PvVCSN{)!H#10E_M*ZzdnM|eKiAT}}`AklfXhblpB?j03!dphVUg^1IS<@z_6y4wC&7Vq0xF z`@D#LymM*-&+KGE5W|ZG(5l_n-0d?(2z8MI$*TYViU zah924Qd3FHR}^M`4< z0A|;hrq?cY-fGz=p%>G7?TNM6RcD@f%7^iCD4weYfbXt8ZWm(lIrDmk+ko$U6Ld^Q z@X=X>`t)6>|Nib&R;yGxK=J37M6l0-7pDapc|SwnTt}_q#qk_FG_L=e8<{Fkh*F5^ zdIYwJfp&ZoRzg4>Uf|C#9J2VnXL63zSv5nY4302v<#`_>W<90_{VgVsv)kmP(m{Wz z%P9Gldgj_&*6x=Q<`Q#G!L;Zee^Qe>BG>yShey z5_*z7T3MMPt4{1Rx8({B)G5gkHoJs&u6>K@KKWgdoB)U{rjZGazrOXF?cy1fb^>$n zxKi$VvhM|`U(H1^!~on+6^{nngm;k6`#tn-j@;bn$G+vf7DmNzI(jj^EU?rlk|wvR zCV%`Ie7 z>$g|$Tpi1rHzel7xJ6nMvK72sbq2G8&`&7VT9=6?RaSkg|Dh7_A1EMCwgv+!;W^ISf(Om+!znr=e!Qf1sBWcd318ARL| zggtJ_TJ#lup;@mp0*SylV#kN$UThqgRImcm-U?QWoX}R0raaZK{>6)#v~w&$bG>eh z4Z)rq^r^=X{Oidpj+lMb9o$#wpY}u6#kG-QG|VkOj|s{aW~e%*S`C#YlFV;YF)F@G zspRZ-a>qb^@>1N!Hlkk(`(ns}2aRJ2Q8-KXp!R`hgt8wkQ#L*=r~= zmv$X3jY%&^TxsJgj{nkpL5|j+OGmuc5(_!xAY$O<*vCeq(`~Ep@K|}+eg5#plPQXv zBnunl3S4`Ob(7TT1u6ec>rv=2&TnzAxO{o`-baU?ju>!L3&p&ab@?p59W9FdM8XO?YTL8a zvx*QhrvJr+x&-VWaHHbWN+EKq>*tk2)w$63+@<=pWR8}M;98WfO8l?Uk$Jj&q(hJR1-eh^7u`Kvn$s(ufSGa*wgt}zbISQRr@i3Q z*GIQUna17|=2d_R& zVQ?dB9FVk>E8_2PHeiVqR7ONIQ_K@a+T&Ay-xHXAtxc|%d(PSR46Mh_N1q&v;73H7 z#Irsa?l)0m3b(AogNwOVFGf1X3oJyaE4c~^v_zF2{747we8KA~Jz&F`Y=BYX!+m@C zGe+wq+YAfOh2;TsR%_8~N>rCiQqdr9>?_IaX@TwRl(6whje=BRTTlN<3eF}jJH%u7 zO1Im}ja0D>)J?1y-~W%GjRL95_Xog(*dqA-U&wwncoVZAu!weAvhpAh{4{0=9evHs!Kah7KDNZvjH)Dy%d6I)<@{nAL zhFO$z90EP2ya*cPgvDrXD8)(blsl2I%}=koCVwuFPXEGAjD1_I3oZ>=26d*G{^y$c<#yD zT{KLid^i#fEHeR0h)U+*HPYBMl_R2c_k?g@wRQ!O(QK{j7*Lyfyl%CB9`b|Nq^CJ%PrLa zJz{GYj(IauP~J*O7?#VhvGj3^v@$N$ zfBHQ@!-Jc0-wsiyhMoDgyze_V6{j}9est?=Z;AGr8m=JA#Yt_k2>2(tn@>KUC!|KI zUn=$65=kxLyG^;67l$iG4Q;OmC5;_c{tI!-e{_{Ua{A&XH4Kqkn_CrvT6z|Bk0H zz+53eMpw1IAw56#Z89(*FE$y&Aht1%w)Uu>oP&hMM9sCYdHVto%c0bO`Ceb4+eefN`D9yt*k6XdNF(1|s~#?N8ksCeCc zXFMFCA@P+_2W#g#MwNZjo5~_b3J8eX*XyaM!lc`{7iRdw(u;(ZlfTrQ7!Xv3<@Hfx zLyMcv+I&kja3%jTJ7ro!3#p|)tA;;5A!G08I!PH5sqJ`v zmd=#2F~&IoUyWdJNH(L6J0qpW2c+(Jqz2SB_~=KG}qg|+1g-K!zrKcz%l5vIXh zgmTC1BRSI8wNgeEZgv&=*Ws;<=8y1(5ljp*X=>a4kOpn2geD6_jp|+HL^q*?tX`i> z-fvW0CrDir+V+>_7^iCiE$55nZzXSQbSVY3BIF|cf1C`6dX&2$kuwHBD)jjF`v+uZ zAAZEOa8S)9f_Pa>iqPi*}ma5=1qRs8^iL34_R@M zc(t#b1eJlsry9-9tw(0{k+qX>H}7qR-o9TeYAX`Dbbqs8c7jLLrlhmM>|wq0Y6UDa z>f60@o`(}JjIXu|GX)k$ z{az{=0xd;9FVMg;176-iO=XsTk~5OHk;^6k)flaz6`wxoa!reWCy_FKA_0KU!4{|3 z1DSs$g3TY2m*x)3VMwAc4*sM6c1rAq6Ni_o@wWBcsRcq~l;Qi#X6Mj3{+&JXyE_19 zjp)nw(YeDh`Aa4kR3--g0tFAR>#4mF`ivlb&NlJuBhnPn7_IqPb?dD7YpaK{ry8q z6>yGD^u`IMng32X%+2j);pFb2NDcY6z$gHmHI~bi1NyO7_A4rCmPiO3N9A)DD`3|g zVC&m|Wdrs+mQ<2aQ&{oh=|RjR4Q4M02WE_;z87L+2Uz6C7_*nxO;LLo2&%^62CjKg z;q6s6H#3_`L$98yWuG++#MjN{rQCbO9@=H=rNl$0biao&9BO1-3yNodqggL=K4D>t zLI*;eJ?omrFYa&g77Lgsa{V!MU+u>N1+qSGf#rJoNIgHt9a@QCsZybn*Dyn``$pWk z9iM13iQ$W5*`v`ltd(h)V_xKPM`p9)nsfLl3-!?f!DQDi<+!McGhX%z<=}(#%Fc~isX@e7ru7CT_5@Y-OUh_D|(SKUZEiEMx!ZMJ}w*wJ`-Vmw=#?Y zeAFp(m3^s8-}nPSqte_^XvpT}aMoLwQMLgDJL83!rNM1vi28`JO^@;7pA8g`%@If`Y``8O5#uB8i^4l* z8;%^t01OAKheE~tuCi|W;;IW{P$B?tQ8t5ml(38Z>#F^<3tS?3Be^IS9bq~2ZIj0m zbmzocI8fbvQ#^FxONvvp#xuAFu)hJ&G8>%K*E3RcfHr9H_Bs&vS@qM~Rv7Iavh$V! z1XDP}?ARxEi#ohmHrwxWWG&Q>>&ZFCK8yMW>$iidEVCO+X@t1|13+<4_CPXfQMoP+ z$EYLXb3{;yA!|tWQe@AtYH-b z99mLl)>t~VN4(=>RB=tZD}i{rlht$-YsCUu-&u(*@V`-`SoRpu^>ii^PEKOJoQ{1V z-R;mf1$xVD-bRI43T03ZH4(Ge*GnGX%6RrWicfDq_V5my;`&p%Qm!EzDsQ4&zLqVm3gTuQaO|VZVvhyn3VC{e4Dueq1$##^6m{EP`jz zI{8Q-8$nO;I0-kMvbJGZzaFNP52bw@fk`dXqX<>pk(iIxdB1qkbJ0OqhHJb>-w;5D zpMy#Xan|vxWupP0P)*@$pWcOl-XlsQL}MzawcM#xN_uSO4N` zW)S}KPgd$1!cv$ma&}!^rInmxb(#KfP~}a`SDYt2ajL%$Y$8wL<~UCTrF333L1(}E zpVaQc7ZP_9)RvR7gmg@)cICdS#Eo1H_cqF z|Mjr{UU2)KT{hRDth6jtLPyI;S=`J?{VzUtYOSm3PC=@*J9Z7hN8T7x#K=T-U1jkT z1=h|$C#p^zx+Kv0UF(=4RL zM1+>Yh^5%OP%9&#XxGhQo-yW)0s~frDcP4GSmmAyT63v^7jCMjJXN6(n3yJg@I!ul zAhV`?+xS!(itwvO6oSG!p2YkBlv&+`?!Y%rHkmGpE!9F200P-7E?FGMA69w1`YmQK zAaAW=vu}OIC;t?|3!o{4*^WA-$Zq)8r^qbb?RBnq9fcXsOSjbf8)2c z-51cRz6RGJi!}@9)^xR8JsVet=lD=I<8W3chbUQA^huw&H^cA1!po0VkSTMGs1Hu= z_OxdK&VUdfd%PUShRPv$TFz~ayjSk+B z>*Sj}XMbYut4#OZv0Y@FI(hDKe2frUr-?u3AxUI4aAEzhRfGiPKFClZfcB~)=8CPw z6jCJF$%*b0Hvq?tgnc+6)LI`3Md33)pb3aonM4y9@YbgVZtw6IXIF&gH)g)(Wb}VD zUe>6DIoak>76<|*op@h>j8-3J1sDaSPx1_*LzKJoLJm2bwX$<(+lCo90u=$AxGiYu zw+0hocyJ+_52Sy_DJjeMmrz1TE$bnU!7^V6W5pR6!Y!Z3t0L~w76=NicU@Q=Y!B7pt|(7~IP?w{8zlWvuko|lo-M*-rWaZiLdkFMrIa+NN&b3zI<0O+q{MV6ml4m29@N3b`zQ4+3UmB`i;6&z>g8Z}2R^%+z6_n*4$i>F@OY>ly z*$Mo2qpVEU)&p)S?v2_}vT~{AppS_Ds`L-XR1~k01ym52CT@TI>XVTY>WZjbIsv>( z?i&xxZN)zUvM!wW?0((CXrZgW(;JQa3ls=kE)mQd-spJ3BwOA@!T4x0b80+gFG@50 z($-tf)oW`{8@p!p^uUuip!W(NjJoL?DPWdj7AH;QJ|ZVZv5X+JH3W{nR z;Y`-h_f7SHOC0Xu!5L26*7sqnd&R%#{S}%J!~7wJt|S~*NC!g}Gx#Of!5a8Gy}u|z z+gjWTRsIT%lF}))hWyRmsZU*yTxbeh>=DA>HYexc#SzrsLA@B%@GQUS9K5v*)_l;i zTA@!jPDNMc+9Kq!o^EL_Hp!T#`Y4wRuH=gFNTWoz2nY)3_+%X^htNVWGy*NSyt1Il zz3*aRr%#@E`E2YkVcpB^X&C=XD`kw)zhS5+CQbbYXH#hqM<<1;mYBhsZAb!c)twd2 zLg0&FnzkywJNY_%>^b!e-7cDYQl@x!0fi7rb= z&)I6LtCgAt9WbNmh!MzCb8Ggi(9V@$%i3YcK3dh|%o8fX{RHLEUH^g`73(LbkTRSR z3o7qc!!{dRB=kGXD=|rwvxhK;9a~nkil{>soHXhN7#+^yZ96Y9Fhl*E&cpZ9*g>q5 zz^zGH2+PUe3dxx#GA%UfNsqc%ZZ{WK=+e=M;)KD>bNcp3u9+Mq)aMdZ;fA~hiCUmY zC>+6Xt-WCx{VTFXsL*wc*&IHZa@@dv+D|KFr@d0#i!%D1T2t2~alF7)qDX!e$^wGTxp`>KP%sDS8Hk z;kM}T{v*^H$2x|iE7VvYM_)O)=uY=|E?0y6XLgJZ?QL!jO%j4C`q3`G1&jZTk6)y1ftHQ7M&C2cqd)dDzaU)^I@h zsomkbj_uvib03Yh^)2JS<3SMXlGQd)N|TNLj(c~=8px)M2#Eh&-$znKj@&$Br~<0E z?26w(xukVrX^Uv$LYQr9w|HD$u{51@f#^Hb)MEXgpzmzh=qzRInYiVpb2bc%t`3?5Xraj1O=PwfZ-}us+Qd&Cq+yp?IbW@^X>!s(ev&`Ak3MyI?9~ zhS<5Fa$WIa>upnVC<~olJNmb>SPw^#BoF4d7iVB1`X_g zdu|K3(4%|m8{jd8?(w0n^Da1Im)QI#m7Gpj`$@#vNa@BKZ|-*&2y|`57We3(^RPGn zfAK5!xICuq@2vTUuMHy!2Q3F170q|5GAaP2^zW_Ih&O8#^Z@@IBQ@s}3J+(g_GPo4 z-A<`KIp)citFdyC*j{!NgcF@>%J}p(L7Xe=lfF*bcG6s;?jdIz`E8BVU7s)74--5> zZ@+a!jFZ}aB5R~XjIH!I9+U%3w8<9|mHaaXKudufzW5EQ$RST!@L(0PaM zr`&JZ-*8Wsq!0RHgRnV(p>hQw+PvwXotY&tE9dkgDJM_XQl}vZNwSbM-hMdUFUKDz#$4 zstp7;z$OXVj-(Ss+>_YdNgub`2V2!kX^60c!fhE`q zR}+?oxc#1HGxpzgTSbzEAZ9#Mv*seqIP-%NO=*JCVp*4n?A!IBib5LrRzaHS)*fF|GgP8_cuC9=|lU$a0-~28nG;wUm+ zCJSiX)SeHm-^Zu@#J~OODOF&`#C>?Xaa}?-{~@84LJhns8~i^Z+$zN*;QoIyH=kGdPVh;(QK!ivj_i$z4zgOf`3j*dL-yD{&6-v@??%L?vqC_ zvTdhBjtY^^1ekaJGydnQa_%R`R&zyOeY=y&BQaSZBQYY9y}9tcczXF!GyIYqf`d;k z`=@^mR;%ORPpiOx2_$LBAqV#XU;fA;WDh{{qSSxR`5;nSL5fmT_-JdRIs8!YER2Jp zZkiG(=twS`{?)F6b0d+)=VU78MZ(Lg}KN3JK4dv^7aHBP4gBNOh6*dGdt*0h`)8jodJ{C_f zN$um@x z)>0`Ly!%wGj{+5iHJPO=h9V;0YAhl#?@Nt&T>S64ODp;xjz&D5^N4PzEmOt7Wgt#F z$C~vD^W3!phK;xNk&4ATy%5t^nYk-mzi=p^?bB*{1nzVSaL}p!gvIx6PT- zkuCte7%GgN&U9$eM~Z-l0~2V$urc*rjWaq9VwM&B zgB@)sMD6jP3l@D+-K3$rwkS2-${lKybn6|(@N`K+pZFrN)DYF|j{11)r$k8D>MYKz zYarLsD*`3BNq?92PVdO@sfP8FDba!^M}VK;NGQwW)>?wIvGG6e)w8<|L*p1m_6IB# zofONF+_g1M1aGOTpM+h!XJ%|ZUrHS38ox{!+6#Xx$si1h7bsTw-m(vBpe_=bkD{b) z{Ff|_@)+hg`BoM_N(npazExFMNnUhu!9FV(SRVKMhf%lo!lV(UMl3Fi>igO!pMqX4 z$dIKWZ^hG8O~2Do3^BMFx@-X^P~Cq{!Zx^LB%*cFQ3Ai58yonMbz?AznS?FF=-mSQ z`TFyyqM~~fcOGGJ3;BsU`0)Y+KN*{NTv?3Ynn$i6c>`CCgs;}rBaaN*ht>h3UH^mf zbe(!m;QcV}3+_#q{?GzPst1btG@wM?E^9?e#IcT=@Nxl3=z@iYZt7!z&Be4Ih z&r%)lEAhddTa4HO=$+3@G}|;_LL?l3ovbP79d`0DIlL9LghCEOSGSKqViV0lnztXK zpD_Q?Rz}$gjhBaHZi$uT?r|4qm7@LhQ1Ud`9Ycw$9R3V46IfLqn%CwGq-pVEItyif zUZ{HxME%=GAK=cLr&{5jYcaz+SAgQwKBD}Qf3$}nQG#fx8$dNg=!whI5W?i)tYYX^ zB>rbkQk~5qhaUIPGV~F&7c=;WG1t%wm3{eFme*kjye@ogbyY-PP@D%Pf-JvYoj=c7 z15XDG;QP|&&UFuC&76T>QXRE4m9grDCN%fs7JIhXG}vmcEDRXcyj*o80WLw>rfa)L z0@65QUghc$_c!byHGqjcB0oXOJRgOG>uE3DPdYavV})ibPJ>-yl|dup*~$==TLq?% za#RC-H`=m*{Clt=E?%Y)36#tX?%7Nf2;_x@7}OeB))9WkU-FW2Ks+RlO3$py(94$p z;goMdd2y)hN)K@yqMTFrPTkIkN@rj#;oD@QvW!#J!J-2qK#&sKnqhkA?J-3XdZ9uN z%$On?0Rr1utDq^fENJCda0BrUS6M&!o@kOUrci;lMH7-8?GAM&dP zI+Y8~?pp4Set#nv9*1zw6>$lkkA8597@uS9TVTT#dCYy0lBX1;_=Z8}^_~xFeg?xg zoC-)Pwa*wr#|+;KuS90bBz2nub~3|`BuAcQfVYv~vygez3r<79lm6N#xqAIhYI^xp z&{wwQL86F+L$CQ>W*t$&F^aU4uM1=OD=ecdD_?7cMt=Ivl;p=QC#W%q4^9!g4CaG& zJu1CdffBCM{rgUl$8em>gkcwLc^OPr((6Yb{F}4}{M+C9v7pk*He&1yU!AGJPgc>v zAKE2YXe!r1bJPy2QQ1v22mfD-lbP$z$!zo_%JC!SBr+3nW}1@dP#qBN(oD8_z)E;_ zuemfA&BXLOYnGnL_TS;a-2?ttqZT!w9!W?~4~mVoLkKc#5kSAucYGtX^(v5E*I891 zQBGI)!-Duk6o6l3R!%llKkFI1!?~}-NLf6CM=8knqmI(ZN+SbgeM8Hr0xXuDxU#b~x>71D28@4070=Z)o9 zRA`}kg5XJ5Qs`-V$o9P@(qCb>Wuo{Y%K}5i5;S)}l_a#4W_`HDH-!+oHU3a$gACAd zdjFgi3HS8g{<6gEH2d_cKPfo5&)D$z3J=;1mt+Z{9; z-(RaQ=$BJx9j-1pG4|@v9Mp`=^WY7+&$;~`n<)A1mhZ$BPHGF#JKOSoywow6+>C@A z3059cmW`Evd*LZ~XqJJXJ&d{psTyTi(y=Kq+y7Nqc8(ZbQoXZO=x>Mk{ zz!uz{Sl1>;p#F!JN-{P5uPFRz_Ee~J9hqKAaTz|?ETLxD{XGd`r~q#n$~*G+$*AA9 zdClEhqbvWU+P?XGJ%mZcp4PH1;!CrohcTsgj<52@fg!RQV~Y4N>x$@8b9_As zR(82H=fsfFJFZbt{sMgLhw(9Wo(`Mhfu$r7H7Zn4bN6y zn#}K{CUGqC(sZr%Jk@SF&6V_7+ffVJ+rSOGTf&QoKHRobqfUcuhLfS-wgRp1z#+8| zL!rC#b#31B1QuJw0KuIw%L;(UdQSs{GSfW5zh3oht()vau6?nPWawWvxIZ0jUNK3a z2vvC`W2fQZ_`W%%Zu_bMRE1+l0f+=WE^3+-@Wt9z3tmR0%TnaZC06m!!q>-kO?LInX~+KwNSc*(tl?dI2Rl(2y1OxU zDFLtjA!~z@QGY`uu9%L%FtvfLAT`tEv#gaF$W#O8(101N`vquRlEk=SL87dN;#P$G zJFRN2*yPW$(H)nx#C4oX?`jnjzLp0YXi4o2SUE6i3EtA z3E%!JguKQQ>9dS|-GaEY8VQ^q63`rLmu_P<5_S7FH3f){#1=~u8mwZ%ox&;!K!$KK zbC9D|nl}|W$>GBJq<1ng3Grw=6#qVUE>UK>dwV+@`t{4@19d4C$}DBgCMf2E%jpx} ze}OPo-j3lJlEXA{Dj52GiGPlppAe)E*L8m?w~a&RhPY^!qyyc5wDomhFK@)o}WaN2bd7J)f>mlhjceYtArJ$TDQu->4 zPw0xPU$iv`1q&WJ1vp~3=+Ev_epAdKrj~zCs^(}s9ne;KRtE^y-qso%6kaai8GZP8 z13*VRM_Xb7v?a=x04#j8?NMtcslAiA{ylMM`Lm`BwQ%>MpV4%5SHCn=@!HsjkrvsSPn2SN$lzZaVGIbHvk zoh`5vnap1a)*X1E?O@&JVSRw5@p<~NwmiODePZSpUbA~uM(+$gM1YgX#MGOh>7GuI zt*7@-tA-76F#on{#AKfajxkQl_Lwn2SAH06fftC%k~911Ll-H6M863Cs3vp6iR4s2 z$1z<^VC5U+4Sd`TA@1fBZ?NNfj=bG74M2}D=Mc0ffZ2&jvmtznax#iqivQ)S-C^V5 zdFIhXu8xFGXVSZG8X6}Lo{CWg`2=L3Fv7v1Z5$oR2|Ize6GH&X+{B*V?%l4C5j{nf zzFFVTgb~z%1Ig#rcEUmRFmzGXNjgtUGux`zqfL=~A8Z=T8M&FJ8~oiLdp4c67#niD zxU83E@Fq8M=jw+8F~TjLdE!z(-8v49C9zydr=G}7$-Z=}uIe5K{zf|Qvehq%D)jdL ztr%CMSzhi5hplPGJcqoQvvZ7@y`_p?Sz^MT34+`?8czUt!LIfNq#8Uz3fFv zv@O?+0)!J1qbx56okj5HvproM=n)%{%LtO!m|pv%2?9@qL8%yX=qoKa-cACO+av{} z8V<*3K>Uo3&cuik$36wLdA7m~1 zSjP|3Ub-V<-4`in!tc$9SN60W?Ad)7!;g)9PRh^=v?@ms-LM)TkZnv%nwu9z;i*{< z1|n-a#Ln%TFdtw;6#Kil!dG%x-QC}nVlXE?j1+)M&qTGr**yZ4ZvSB3_uWWs6sv~o zjnck#amjxwPy{y=&9wuc(?nXIPNWcgJ}Jc}JnH~K_4Zf<7(Gr`pQh-hSGqX%6|z<) zElYDT4vU&~6J`w-Z)O<9CgB-O`M2=V&I^jK1BK^p#|!F1pVK06icd$7!KWLq|1Ylx z82;)u1um`Vc4yeLP;3IZrR+?~xn%7Il1}@LH3oH0-_KS@W#w%J$mD7Ti`)s%J356* z&+QyzPw;hMG#9shcBAahv`6R!U5T_Zu*(`mJp}hu1c7nEGQHXTDz%!_%Dbb(!??EN z`ti=w8a%fw#|SiDI22{>5Zj_MV=7@7i&QP-zTuZ)<@0NJ9xOa;^h=1f$fBA2tr2t1 zc+IM%ufQp5&8(CFOw#b&(1AHL!T?WLZ-cOEehqno`)%h#MbaMgUz4pvko!kH{onZ+ z0EI6yg?(XzDIe3vDT1JL3gj~0HNRyeV<3Jld)z^7rfPYgK!G0W@9yHQ0SKkDrQ)%4$Iu8iG$*A_1{ zUXot=+vc>>Gkd8LZ?ZK)d1^}5kX01(rGc(}%RC#KGcKv+o`6U6SGjBw!I;Vv`MI(i z4KMJAUe2iW`2m^WnMRv!A96-tMz-op!RaZrgb?tm!YS?f9&)i5xD>4vD~L=l*Ba4z z_t<~(Za+6o{7P-!tjMT;Jf>vgOr}HgZ5m(RBP6oe0YhDZ;jW?gyJ(pJCqSmq0ikR3 z#l1k?4YyV5vU4E@UiK#)-s&pwnbf^a5iZSbvuL?%)#0KkeY3~#bZrvS!A(rB11rC_ zGUZhJy$@v5gp&GEf_{`*?L8iKud$Jy@TV6^A6Fk!Y~Pv(>iNJH$|+Kz6R} zS2B15BR0+ekFIviAZMos$y<`67(32VtrdNrR=SlZXaCAGmmm@)%jly zh%woVW78lelohD!1{4wz57yJ1YB$w&xG66v*Ex8d+v&6^#TTbJ8l2c^`r-#4!n^4(?CWYD{K$zmL&> zf0wii1vCS7By;FX$r2gyrba^`_@CzrA_kb5w#XT6G!a)Q;D|o`YHj3pc}H+735d)~ ze6zL~DlLKl31sI(s(^o+Wrh!gt?Sy{y{6iK)8&8N;uK14DHRur-YL{B*AW9Z;MWmi z(b7ut5h0tLYDCH6V4zuhZE3EJ&E5$0GDVlFW4UzL)AE)-jpvf=b zoRdkjVYVe!X9<^;6qav(Id#CMQW7=Grby=|Yd_E3FG{<9O%dJj(?xDOHD7N{*or&$ zs^n~2KJugVCr|K0v#e{yyU^bl3d{LxU?l11N|#iV^zox^)EQ?HTV}NWS+^_8^K~^b zCocVeB%{VnYs0wlYo>2l?DNU5&FmNe{5lZ;0kE{S(nmkivX!!M_+eMGc zJwtn1In|kX1s^u{*G{t7m2Wx}xAE!F4MKZd8NDvB3F7a5IyGs*Def@xVNZYG8Rqzk z(6pZGbGFyjhDW>K0g$s-wG0MF(gUSL>tmR7ZH!B#uLe|YnlMG+EA~`^5)5T)+<8rL zD&V9N=u(((_O;uMYTHJr+drhBY8c)PD{A21CtByo$rJ!)zIo4FBOsV(8hKGvwD}z&VnN(p?I*xwxA; z7x^6*U_!s;B>dZomaLX_dEHEK!oVB~MO z({E}|WCzBasTS^oi<7)|0e%K@=D8?Q{WJZ8nd>4M?g&>W;;EmyazfXLCuXCHq^=6p zmdq5IR{h&3{LrXY>e1skg@R!w`MU?MNe^Yn zY=kI(j%$28IirSfa^>-%wbo70MGEC!R-MCLf|tte5`K1*j}^My!n)v(so+&nXaVO8<+*x1f94I%#%3{T z9c6}u86%)oz%ZEJ4Lx`$q3%jD2B`H@GDFiN*_KUd&)P_#`5jxioA1+|2ug)mbyTCC zK_1iqO9CZWV#j+lN-vg~77T3LU7nU8&gV`qNL$i%geLQpaA;)*ie`CqoaLrM3NKfI zC?innwxN0+Wa>LF%r5L?tpIBm0{U6-d~ia8^56AiPW(bD$@{aHz~MR?IG+^bhP^s* zu=z{cUwK#4&So4z!~xZ#sz0V0@huI%_<8g3)K>Xg^n%4*=b}zBw3*F{Iufqh)@s6*eVP7R1f3KqbB2sr}ib3$q9kyDeL-OZrtxOm0@5 z6dFyQuo8x?Ys$LQ`ynAX*%b>@AzIZXFh=}sx^g^w3Z_E*N*ojGx*z%S7Wy^4MGRfm zPoy&^??Z;OzfnZY)csEIjzz1-`&O!V#?=$RwGKY|XxrLZR!DA*aa#wZJA_QZ=aPw( zzlrK5qEX4?V!)%JtyhRY5Q$WTW;(1ft28GvVoV zogm;S zY+073qO+mY0M9_oc>M^bw5NG(USrum-t?|)&;Jz4m69F`RTR5d1q|s8#ZrNF8keHx zO}B(AUBrZil#>reN?idE51*)k0&qy$pfvU%+~3}_&HkvluF(( zU*kwnI$ON-_jfluoF(dui#T~Uewvz-d^=i z@%l6b!DR!VFF*`zez5s#Es$L6{)&3k6xva7f@v6wV?lk_;1&XR@lQ0h8m2P2x&!QY z>?m36IeuWzfeiZ1MN^EEiY53LW*H3-d*>|q^#JD`OmN1u1Yl5ecSp~4_xBSPT=WQJ znj#Oaqna(q=Z@-8l14&sBAG+w*-bvyVhPw+P5ZI>QQd|3Yj$^x_`#&YlSls!EHQtu z|Ii1PKNRvCdfpg^+aqYUu`JN9NkNc@p&C~plrMopy00&;EaL}$X(h(m>+P;6lfL#F zqNs}fH*D}WdGoflLnTUD_DOGlxr=6^Yuwc&e5w;;=W_-t)8a;v@UWP@u`&0@OV!A+ z4B2sKPwciYJTPL>mi3&Oqc9q{nA)Wn-h=!|nrM8v8c52Z0@`BmK^eiqvHld(>`;K9 zXwMb2Xhk;=73RqFLahe7U|=C7OEmrS`jDhJ*1UX%IFOaPC27?pn(n^Nm+KE|^nO+9 zpl0C(S{#ICCixJMFj;5>H9idM7Fm11=IdJ1%zq2mnCP zVl@w}IU0O@J;4xLXQr!kJbl?WUD1K$o`i2S}QY;9fb|B#O z-;#F<;7u85y4?DMQK>*meH%0P!{O2eMQ<0#5>}UZ==0tsr^Dg(8AUhL#kEvLZFWcf zWU~>zD%aHmYF^wsE6xdBq+2g8KdCB=RhW|OM5E)FZ{IO&{zHkZqI|#_#T=C4LXu{- zrGq7v>%5yD=V6COeydzI(zlVlJ=|lq_h2b z(iRFaLtcPY_S5AUc=mSzy!L87o+Z!_RYA~+0+NBBGFXW6#%!v?8RHwpG%{x}C6}h- z6MsZ&DmQQSw{4YkC3X>Dobk^SPR!wrFw15-ZNFH|{Ov)6GB6SrFpnor(O(e_J@+-L z#i;w+law)#N6n>3`;-FIsro^vgc5{Uc?L*S08@rUZ+5u*VnjMi6npm6|B?nV76fy; zy(t|5Hkoa>#Zrm?*~MP44} z?(UZdqchPYboNB_J!RdF?GYn0AEKD;DGt{T-?HxjO7UdkR6ppQ_eyCB7XwAh49;d$ z48(%!F{cPeT}h=J8b>;r*qZyJHGAK(2Q-QPx@*JRv<_SrYTnzZc-$1|#8#Tc?(DB& z58$boqt?eJGn7whFOGe|PF1*JNF|&opR<5LXi!>xvhD(wm*;D+7Bs4DjBU|tIkiO% z4(6=opN#Tnh{g?oHv1m05AWt%=S3(my)UwRMgcyAwy{d4UB=)g{ardM*k+8 z>p&El;t-AcvR6i4r`@usc&>b*KjGr^=Adw^c<~+ag2OuQFnLo`yfPrmy#GCs`*rM> zxg2Y{7CyINc3=Rk-7;97a4^D%UnJw0{4>)SYJ2B*{1s(%c~z(aWims9n?Q?wVn8&F zyro={d)PZaS*4^+-V%w+AW5F<@2B6gFZ*(p4#-syV)E)tr*Yi^mK~yDt=jueLoS-3 zDBeJ98!aGSsNBz2m162f9WydXjMm&=Snox{mSw6T9jG_+`lZ2u#eMGr6cGvrM#$oHz$ZT>HAG_RyHofUFxL`TfUxv_T0GwT zF*z8%y}{a*MG_7zxR$U99eRV9i%{N-Sz1hV{mk3`!A1RFC+|Q&>^2rZ;t`yC(jnOa zm4kes^ZSm|O@BYlK64ait6(hhX9eNR!X@u?gnRhdV5?NEWkr)R$yR&!+=JItsAIsc-)JN6?lQ%zHF`C@u+#84^^8X0Y2zPB}A|=Hr1cR`H7rt+Mkd4 z_WguvJN48wPfVZ7#vjKsu%M9P=-ioe7!$7R)|l<^jX!LG;sg`fl7KlKjxsOa4NEpf zCq_Q>OaL_&J_1||CnveS5 zZuKPfy_m=26KBOTR*zQ&GgL`1jtlgzez!U7O*c3YM66CF4zad(J&x!gnVzBGxWOQBa(sh zL_Vccb4I}5c_6zC^ep)Fw2r*p8m>`!$+8~huab+<3iBQ0J;2}hxh z)06^8k|#oV8h~hY%aJc5Wu?*6k4WfZxX+t7Nw917B@>% z6UZtlhQ?V37=19z4K>{83xe@@?xs*NkvMM9uG3FVPS@H5Fqeknxw?FDFNkJ*-u zP!AlN+t;b(W*PJ0uPhDNOyzsF2j$8-b;fE4&u~PJm@Jfd>S0;zq(ifwRP^-H`P5%K zp|dGeH_=yUy;eP_8Z}{{55}X?5!AV9ey=H4rcdU}`!F}%9#knzPFDx$#M7ckKOZ|z z(~L^OSbh}Y+`@%Al(nt`Ous3?Qwi2)P78r98XhvdYZ3o$f*Y?=)$oiM>uDtaE+8*x zZw$C^m8cYn^O-o&R)#zb^8IEAti}HbdsgF#)W`x0s|PMmOuiJT*LD`3bg%L8Q6emu zWTAz9_7XmmHr!yPo5_Rxl{z4Y=MIcsq;eVvsFD_B@SG6CNvY}=&yX&CNn)BS$#p8( zJ~%zVg4rMOT*4|S1#W9{RTjmx&Gw8LXQv-!$+%8MqB2CBXl= z9lUR_nX#(J^(=Mm_kv=Nc@3gc!!rXI1&aJ^O6JS7(HFrw*K8G&l-}@^LN8AZd{rp+ zWs2LcO2a$zI}c`jls1T@Ci^WYy9hBb72Gj6`OCRzF?kR1{pp4$tJ3VIY5dEIBySKhbEw^ zq{9@H5R-I4!r_*iunFmefIp)LjNO>DpxFkTz@X*ae2B^cHY>?gEHoPyAprl_{(0y%V!E54JTMG#p*f9{@SxJz4 z^Ih}9q3XTFjHOsZiad?X}qTQEI$}o1}tDT=XD!Kyt#EFUzqm)wl z6tNaCn~L^>^m4gkVdAI-{a7qe@J3qlilu9%D<49N=DXWAlG&qJPWKlbHdi*Jj<40#eozlXz2mcHX%opRIG(R@MlcAc_eNk~( z_+Ju;Os^BeRs52N9z&8?|%&)9AdN}4Hx{qO#ngXm@pgJg$+3xO%tHY}{Bu6vz^zZ$>^ zGU$8~<0F6d_CZ{ma|7E7(Eu9+-R9cDVy+LClH-(zRW`4J}_4w88V^n|0lmCDHe@$jkM&IqN% z?}T5#oiXkE?{Ued%h)5ORj-Sx0T%*G-S)Coj~Nlka=ZLy^Upi-N(wE`$O=Ms6C@XM zFF96i%`W%Ji0WG9#*TqODw61HgdiP^1_?(#p<3r!B5qR7YFY(F%|$g&)TjRwe|?D| z71{fTBSo^dIW_bFe2EtmH>&HOD>i|*#m*B%Ox8GK>@up7;L&*W05?;1+vAZbLGXAC z9t(MECe0?m<*1XIn%doe067)|HKT*r^XI}~n^lm}e|px2EwB$%1rNqI(%Kay{=K3R zy&7x|!EQN7+As>x%Y-&1(6*rUcO-9T6!kk{H9;7oM{ZH=UhWr}FdW;V6Z{q0bbnAEN|I}A#?1U_t9>G|@XzLy#p-Xs zr#(BiXHY%!LRO`OK5Ub|a|PPnj2at1(_m1Fv#mE}e?n912y<0;BOmq5*x->YY63+y z$1#Z2d~b7^`c>95gzpr*5$D)7D9|? z@(_(l4?Bi55o)7WI(QXi(=!G>=45yyYy;X61PR<6EUY51dD!kA!vo!hE~d70y|m7b zwXI1BMqMB~MkwY^&Sr39`$IxsY@f(bs6UbM2M_zTF%U7zH{PpScda2N_l#7@!W8># zhQdp>+?)4_X)_VWcB_CAmt0&VuB7&F!=z&U!z6k4I!C>2=sHO2gfOmaE6%xY$TPcq zMIe}uxPOwVjccD4zX6Ai3vBV^)ByTo(?ponq%dM{td)W#ZMlC~y5gT0c5wLv6;{Lj zK7`4qP-_lKp7uYM0jwCr=?0@1TFdM-Bm(jk%y%ut64`=gOtIfR-6*U?5|Q{x@Wg)& zCXu)y>nMfw><=XzXFIR8{a(LxMZ3wBK_tu?WIw|b`(ld6&&)nf__&$i6}z6iWRdD( zDI1mhq!_KOm&_S1%02c3j<;q!_exMHAI5Hy2lT*Vjvjyu#KbhF0|So`g-@r+uh?EF z-sq$G@F$tGd}1Hyec~&3Wr32h2jlH?2Yugt>aA6&lOLi$&ge~9o}W9gKN`6J9RLm+ z6yi(XxT0OP4}!S;(c42hO_T)#rdWR-4HB1Nmu_kZp$**%!(~S{!D*v%SP)4w)Jiy1 z!PZ@%%zf~M9kgFYXo1r5aO|~-Mt6JM73L-eEe8F207H2t-Gb|lQImAAy&ker;_SJ= zlZy~o=hN|x9~q|gkNM5`tQtq)vbw1Q88L$gneSw@D$sA5`S>pRGp)hDcvDI_uioV% zVBgb&U~Fbcjqd*~^TS(YT5kk|YXi3(hBi}gVV{@Of+^lQx4uqyGa}8oCN;l}P=aP5 zst47U5qy}M?zW+W^-%ObtzcJkp|pA&UN~{7+Z+zN0~=lwmY0pm^N3k(+yzI)$DsC? z86q|?tgkxSp)>!n{Df)Vx#1eEsBC0r&c-^REndFWD8EZ~1vE-`M=Jq)N_ma{nhKfx zj)9Knw&pFQw2AzIGT{#>nB?7|P)nzf^=s%c)2K?=1g;Oj<#GRmf5A8h-``IMS0%%z zS0rEc;~yljCXRjSxMvPJ8VC#dE(6~Xri&auhJBi2{#Q!?(hW4osQaYT5FR(OZy3c# zmlaB=#@dbH?1Q94QDV$vIY^j%R!MCNc~puy(d5AjUvzv)bW;7>-R7NQmKtNN9q`LNN+ z9{gOop^oY`b@X5I3esrpq1chs&PY8JP*UndJ+|Jx>83hzY{(<4?p`+M$g*fDdO2YQ z0Tbf|`J;i?B{)2*F>76Ikppe4jiafYQj#Q~abcu7n27BUlR(%sp&hw_DNbFae!+OuJk?vptC0>zsv3AG-DkGx+Cb?S6nL0y zpE*(>CMof$}u>M>d=RQJX&NiPHOJ+hykZQ`0`*mm~w|)g$;O;J*i=t$)`5t-% zfuxH-i)Otj)mj^86NN<}%l1M1D~* z`dc9Unh+PA34UGQoGJzdUJLfm^m3eqXY-Hg3Te4&XEZ}DZr3~IzXnIhnVT6hvXOI& zQZKqO2k~y+LUnjIk7e&8E#$jg?$;~}OnT%LF;FbD0 zW;Z;f7dq_k9wqS``pP`8F_7?&dm4^n4MzH)W;EdsJ)St;d~WyA-&PEt?AO%60W9u< zNw+>&2e9V^4is|{?x?XwO#5T(KJ;iQ5-X)7Y|dk9gE=^YOeDO*Mz)JR#2VL|cY81z zm(#OD+42W|@t5LDa(2;GK>yl^kEwUG_J-Wk*Q>slGOGfWp-~i4*iY^3F1JNW;mt$x z(ve~h_e&7ePW{HxpKPaN2@=Xa&+k^-bBw)qH8R3an$z8rBcmgQnv8)T6}-{p(W{C$ zA!SsiX(47rBsFkx-dCrgR_s_mWBlV`P{Xd&pL+iEDun7kt2vYj>wdI5aCj*-t zc#rl0NwBs;h=TlCOH7uIY|$N6ngfO~3M=@z+tT#n2Vzy|Z{_~&P*HW!O&f_jl!K;yeK*x=6!j+(yGkdqxbFlI;;N&D8c)ay zoOZj4tNX|Qg)#Z@U>UvzU6(mPyigP5{n7aFhe~;7P;>c z9{ZsP85TJ%cHc+UOKQc+i_^)D9Bjraa)jFn6587+f}mbGx4+cqgq4~?5O_#1Z~*{% zjRe&y3Axp*I0V4r?L|U@L1{&;fsA#3LoA-k<+P;z386Xir+Vke!w8E)lwdsPDnyJJ zHWP;j$CUs}E@07|!De3HMZXZH1WS(4U_Q(ejeMd*^0$9elcloYTJ6|qeBSI2?Xle}KJWl(Mgl=e`(lhUn zp%EhZS)?re{@CYJdV@pz%yR0rqt9+|UsQ8chk)Q1i}(t#A9fYFEaSmvR- zO1_iHB>-x^MFk+gs)#|!5QtUkZ9D2CRQnxe$z+y3T2p>>#*K!>9%OJLLg}j%rllBuv0X=_|x9v#%j$NZ>A7vO?5z_0l&M}9uqFCe~ zZKH!pqA87kEYq+49FxaQ-zO}6=C$<^2XxCHpN`ndLGhYk3Lj?UhRJj`_ifkoK|?URaNzQ z=9|_xtICxX>LL{XkP|Z%ZH~q&ITr4aX;R~7vSg|+zho(RrY^4|<_V+$vGTDWg%Ph% zF^G&!t^`FA7^wSpmYf_@`;PKehjQ}2?eqwl*@(U@mj5IeC#ax2hC(gI`rGvJX3iFk z7c0FZo1J`Umpd4b8ZMs6&lsnZH{QlNqEh;nn@eejeO<}ETSuB~X2&keyEz_CE-4mG zHNPeLPW&zN{T!`~V6ixOuKEXSX2Qv8*xX*y5xWmM zp@P~IfW$EWg%Y6mPXEM#M_o*_TPBSN1{p`9Y@^T6Rav1LPbJyIqVU3}$N~yub3~Gx zNzD^$Ts^XoEnT%g{Iyi>1(-ST;z+TobH5-;Qe!moLeLK=At^*K_e&%4X$iF~$mR-x zq5!82Xw;Wrh&XpkKco*VUp0_`asvrkSt0j(()~N($Fia-nn*M_Io_*?`>PyGRTFY6b z@9GO*Uq31Wikga%WJtyQv$yRuqZ$h1uDiRByxY5g)Yr6LxJo5dnP^F?{#7;OL@s|tu^?UsU8T( z6EXuTi=RH;i>a!9PEtZ*%oNuemayG&5z*N42g*ml08;~2=1`A-%f{A8n`=EJ;#K*u zuvpWS=K@FSlCv+EX4~es01p_q5<7>~gvl|f2t=5w-$>o-|j=pK05%1jG z0i85jq~jF-#AmmW+s)wbgZ_x=4UQWg{nUXQy5B92vKD$6%vOMpsDxOPd+{P2(y4+_ z%xOFaOwxK!DwR}%CVF~Yf^J5aySI}@K=Od1;l$+uM%nxPKcwI{($bz7dYjdA;J=HP zTEO($GFnaiKO~`2Xl1+nHynp>!#vnNysjq-IlZ2sD{HXJL78lsc%z%%xGj?w;Q z$tocv31Gr8HPk0vsgrr5@A&#+HCMEy2Ud8~I{|i-Wl6n6JAx<(tEL6tDrhA!DiVBs z16Mc6IZ>+8lZb%qIwDC^=3Qku8I8R$C9h9;(6o!YeV-muj4xNfrS5I*%+>O z7$HfED+n~#$+Yc1>RC+|`+;k}G}q(>+fMis?ANk+zL&kKYbveKt82w|n%ZFBAF`d_-C-ox0+XKWXdUqeW4jK#Ive&;HYR=OBKm)v-`rr9+s#D99(m!h}}KSePWf1ZR|=Z^_`!$(9l< z`fD}a+X-W6Mg@1Yui1YyCz&N1X7y7-?ooj(sI`QR8wftP$N~IQU=`t6FFk8r#x%bm zambSe_29Ta8_fPUYj|BI5Z%P&Pjp!=woLYo`ecu9;n#$!wNK&lxGUbR(ZEv=POH%K z3%(EhGsk;hVGhp|DN!t zCU($gWrZ?6NfBI)k9>u8)ezAr^fdT3KInNqVYK?<^yT6P7!T8OD)0jP$1(l#)ekTQT`fg%KJ%<84*8s zeZh<*8Rd0I(#}^2-vT_-TkM@;s~CPh+4?TvA1ovHv1Z_Zs6Pu?H6GtTS$}4y{YW6L zk^RWDUL6tP(9d-IcGxL|{~q51(CS7e)sF(c6QoYr66 zrpr{ih|E-~H|waMV?!;?n6oG(u@$$S45JMg-aqxYS3t5wofHPvEW3rW&6lZZ`aC}< zOwgP8Txrx%9~O%{fZ8W&Ihk|&G{-{%-&E0rT))sQBf9j$rsb101L^DH2l?!F8bD(~ z-BvCaQBa&E?x3kD2C5Q@M=ze*6k7!=k*{ zexC?Rh}vWBlwviED3T{)-}NZ_;QREeJCebVa+hwo&t2!|PVXO3&6n=Gv=jehVQh)u zQg&WpF;!7p*Q|W4Nnk>&>89S^&(3t_cSfuaL9(9_S=zYlWCp88;D6P0=f~U}J4+=x zm)avHUIkVG(Fj5NZjBthIM7)lNYCUaOF`K7DDgjVrv`bl@02`}LJGW(N^t$tm3jbW*o;jCd;ieMIR^o&l@O{lY_hs1|XbSr$OwY&> za}~q2I4z1-oM%eAZ9;H;$aMr7JxYf^C%lc7C{j>_QfMiDg;`!DLEu?BxIbUc!&)k- zgpXap9~aH?7!IM(a1G|WlY%beb@!`2aJca&fJAp^)tZkk5SV%2zW!qwY!}zuTR%0( zp2IS^v5xYd;V;YV*#S;+a~JyaO_+R0Np2Sui3*zvw+qjfpUtp(?+dD6;w+4rUngsc z+B<%oHkiyU#u5TVW9)n!4M@d4K-AxGp@qj5q?lq_cqptCQ2^6q?)bQt3yah zN=FXC`eZ6cw=;1V*lJ@&ZFv=a81(Ph-U{Q790e`m3V;b*Ad z_VcV%)PPu3=FOck6#$7E$lAQ8)mlU}pojY|@laJs(upgcoc~26pS+W;IDc`@VaC39 zdKH{ht-dcFLrt~bZOE)qYqJ*f4^?E$ZO|XACAeLa&VY{dC<&(zk^k87>4o5@f; zVqwAHsyq9lUfq}>-hk*Oi`LfCPy1&4VbHE`rB8Ave@zoHaE*FN-Xls;rTl{rXm9D0?gtK9m);W#l86#g1+9-S64&-|@JM zdpbNPqUeNf-;q-C}z=or)FRkU``)aV4^mUpC&fF9ixzVIga0HLRUaRa{ z6k9_+U4Bx){f!d$u)zm^HlFk-4oQ1Fg6+GE4VhaO|dk6G#Q_h1U+@-!Rwz+%6#hp(-rAMb*Q zZ@pvCM*|mz`bz&IlOHy&8xzPGf7{wx`uQrj$JDVgqEKXpNCGcO@*gfSyq6q(T8edY zzu7BHN#K*~7>5k`f@Iet=8BFK9=}MwUDboA-%K16GQmu7w|a9ElrNCPIKnIZSklbs zg|)Tt%#ig79>ZIWW@OE8h_qDP zWBvHakspB*LWN>BZ(FHqaUtAuxiu*iU+njjEVV zw_3~TeF64FY-K@4S3q(mWNv=NrKk(3(xtV)4bT-llSmQJ7Y}o6o7~P6oD9R1(aqNK zFLiffD=`rS0W_j7+1~XPj@L*2A@ItG2zoRUh#Lv$Z+oV@x{gay&TREUX%%eT)Rzr| zOaQR89niB^=ly=1s~3k6?*@H&J&0gGesZ9A1ZA_O1xz(Jq2ul~@%#B#e<2LMeTU`i ztH2_F2i+sMy1IX{!-t0A!2;n!>Hv(u`Q0>3fn(ytq`A@jqE)$ma0)>@r+(~Jru{g? z5x=S>3)r&8ik5E3e}TO*my4+Dc+QLJ(C{&uMu}*}=O11{sKfHvAKyz<+{fwjWT-|0 z=i4{N)@teJ-JyXn3>jD?a=Q29b*i)Q5S=PMW|Y&jslc zG1=!S3MN)0o>B3B>8N|f?BZXa|B^|GX@lc9o-|}v`U@QtadoYhjypcni?=LB6zTb| zo=8bC6LV9WS{0kAMw@bGqjVCV}UntGZx2k*XiCdxyF#vQ;@@vX% z5>s>XG0FR|ApFax_>OhNExlskWCpNOmz~Mq@Q68_%E{;DB!C|^r&>#|+_#atAQm^l z{+Ldm6e0PQ+$bPEr?gocg6AYpFv zWW*rXcaz1RUpp&h#`|H8s@3ArQafSunICzAXpHFWAPStp?&J9Gv!1L?E#v1i%G`sE zXfFT7`I+3H#2fd7&^X-7|8dg6X7h_BFFh5PaceNO z;KLjt;Bs-KOg}JwtGFfgtl;}NL5eK$Gx82l!DU0{4ijT`S}nJ!MPD&+ZwUu7_e)|0 zrBxdOIcl+=9?eh1cdXxDY><=5m-XH4dM@z@1i@%EFaHY`^17JfUFrYc$!@u0x8usE z8nn1zpzdisGPC)%Pp!WFn-N7Is>jjhk}}#23z0 zTyK2)^wt(ym@=MEt(JcMn0L%J(L2WJG?^*7SdFufCc+m?wbhwWtAznOAytqb#9DmI z_=2*U&*R_8?3i6)LAI$y?u)b0@U@}ehysEsC61YaW^`Wjv#v!x3@ThKM)mvu^9CA&TxXA* zyrdb+=QLKHK3nO6MLtYF4KI8mtE7zI;gBStF#w20M+cZ%eQ&7OYJ}trm-DG>b4t5V-Q> zMT>b(dF9yZ2^jiNJ~gUk9g$I~UDt5nSBDwrCRejqLH}{bW|a$v21n|a9A1zP0x7Br zZg;rQ&u?=cgA_TC3JE47)qa@85bL#3@atv(dsVAV%J^FaMFgI^pWMD&J0d+%dX=I z=p{Z|-TS@=f;vV$=9qAMwB=U2=mf}E3*Ox`7VrIzym3tDk0n1yR9xow0A6B@C1%uO z5vt@rTYSel>ctp~B6++vYT;cVUdhY$JM*8^UsugloL@S6L4W4cxdl`ZkrF?19me}p zvxmbU_0Cl}@cnYE_`yEtDKJ>(DzFRZ7{o{1%qUn?%n%t&@l0Md+#6Ay7ueIlf|Fml z`H{&n7{c<)_13BuO1(t;b1}~L*j*{fLT}D3PVk%5M@j#sTKe(%wZ~rDC~T<^^e~X? zJsEZq?HG2Ul#kWt(oys7rc6C~vyxltlHm}Sm>z4_%l$%|R;#67&Iof+*#(%;?&kE# zRB+qqzcjDVtDR7-%!NzfBj8?wwY(z}r?a1_BcDB10As zZT;wOn7Nx-Hc#=nbe#9Gl%8un)Lu)Y?_b+C9crLXo%7P;d^A*Y)=LYr-6iZw%mR7qYAGiGF@CH#Lfjj}= zQ;?2%adiR}i~E;;UN?H~1@i_N4&TX6{57HBaySdP;C<=3EIyZheoD#Ny%)A1F`rJB zjc?y|?3G?{rI^v!S=MUlhmSFQ#TPXhb0Eq0;@jUPKxqT0AZ9T64ZSMW(k~}5_lu;N zY)8^tM%&@iOq(%V%#fussHxS`^L}vzQw`W!`Ogt?#HZI|lEOJYM1C?~ix@2bti()2 z@odIJ><u+FXSlou*ckB}Rz#^51~a0)wM7in z8R_iC*VWWy^M(?=dx!Jno7BQ~@PYA~V8!GnYrs1EMuy$FTYT|D+33s|b|!o~UBB_HRtrwu{dz-jJeFU)6z3J22c;J#tTO4=&Qf(|*Kx&N+rXoWv1uvNfNTsiUS=OGj*+Uytk^d$HN4 z;{QEShWOnBLY!}vrAsv**}=|xDj_B`XzUspwZRso7us97&Nj_uBMjC%MnbQGRak9$ z7_0q9n_+-G6IyM1QhY9gvGsc>X(YDjP>w81@c5Sx^ZVcu2;ymwRBA#BF2EPO*3<&k$q>Vr(az z^$%B5Pe_ub*+^Osw!$_v>R|wf=Z04nz7tfW=v?pXczi%BK~O z0T+GUtbO~g0UL#jV1#ix)n)N}kt~(I)fy=v**w#7&Q>vm?{EeB-DNx*)xxxXVbSQg z7mJ&W)T}CDO5l+!O%ifdtOcbSA<1zvWtNbfBlpwK&m^-ukAc3f<3_cJ-yw0->cy^^ z&H}UZiuTQa2tj#{W~^2Vv|4lQq%^~5UqXU1QW`COE8rcdkW|SgwLI3MakKMLnv|%I zU1v08re(|zkr3!zMIE0NA}}AcV*%`?iGtZG$3{Vur7d%&-cMU?#Y_B{pOs}_xTD!z!Y#el zv+WgFyXphqZ${RQ-yXRYHM^tWZ}EsgC*!D*l{G$p)mNdPzLEsxv=vWYM)0xK>A$aT z8W}^9MP+{CeAjBBYqxZvv(T-0fuTrN`+N`ZFjv64wb{{#Zy853cH_7`bJ9fpq}W0w zt6^NI5f{g`F1A!lKhBldr^GwrT{yDrEP(yQ6~SN$RF9R|<|)2o9RD`t4lk7ucH=9j z6A&_wI}phe2{A@QqgsTAlZiU>ag&{6dVWw3fIPP}M+8Bg#e2V>cgKT|V1zXzvupKS za%%>`+|fI+uoQC^@0X5QHmq$??JUAVhQd*_i(}=adAcQyX#J$Y)@oTF-#j4|MOwl# z!W^7^FhNJsBWY}!`6+#OoP<mvKK$g^5Lm)!o;Rx=_B~bJML%z-NBX8lpYgj3{$CD> zAbwyLCoS>_v1yoUrCKgQm{E7oXth{>gL#uNvK4)BDs8hTFd8y*j z9kGhTC))b$Dt`MGIfqX&>4-?_cUF}^GUf+j$(9KP4z8 zIlNoBR7<~}-{g%{sUMR8rRNvz47-4mbJ{WdfAnV9U8Pz&auqi0y+tbqw)9+pmD#`8 zC4K1Kb!4)iit|f9O`>3W=f7{C*8!~WM!b>%lk8t{e5|45Cl~L^em*2zE%|<0g_@DV z=a27bTyMzKrH*|FhpV~Oz(QLo-;0n(-LW7m=f8V-h4LF|08YPF-wTUzGDpj!P*%R0 z)_B^Bw@6GM#+MayQNQ0W&qC&wc8Lhlt(8n+h(8&hqrl3V4bjSgvdB>!pvSK!5s%x^ zAFYi|g+7_~!stZVJvQ3E&?Rx^GhN&v#6e{2Ncp$s0Clx6gQr-p)zXm*H=D&y4cI+m zi}Qtx-p)3W&hDPw6IlA4~%SN?EH~IPx(G(&Q(DI~!|hwqg0ucsYW+(8b+rKmRfI zJn}c3ljua*h9w(4Spy4F?}#WPBD*-hoVsMvmpGhhkixiU+6Ni+J1s}@jpjz!g>y`r z)T>I(X3qrfHJ}xx-er3Wi!)!=YU#HZ!-vAQQ30$k+2}g64W0;NKqa`Rj|ro=uk7b{ zq337Op#=vW`#h8QF4GQ=7~f~q5{&xtS}ooxG8gBg9azYmHg7NlR#DEk6NqtJiZ-gn zR0$~YHitxzNICyGR#XS)0DktS%Bn|qKg~Nt{6mSRhk58Y;-wG0%7Oud&8h5^Fkl}&=YmOQv2#)lp_L+N9;^?`eP@O+YHW2_&*wav4`n+CcCZ}L7FZS_zdgA>BSq&bU|Q09XOHy zoBfMfOo*61Tw9U(1<-5J&x7cLn!Hl@{l3L>te;l&rz6^K9XTvC0Z`PBKXMgt*>D&$ zq>J6fyRu*I8?W3i>#UVuQ#9`={3cBNF}oN05$76P+FC6gb+5L@#(E#SsAAtsj3+T7 z`17M#OHqRd73ckaTAq>Y7?}q)g7B{A&$s^tU@R1b+(JzlRUeXQ5MV8)3J!66G#IoZ z*{6GjB?AM{68bv#i#GN#*Lf~hw<$L8zQvAR;N*rz{R=YUQEV3F5Jsx zJju+ms+?^s7nNq=PL?%O9vfhSujYWc#6b|PraPfc{KmVP-SM8~UtrPtRj6W<*THRCFvT2E%KB-SRGDGos)k=ewY@`dzJR70g&`gwJ-Qv2Aq#2md@`#9rcZgmrabrw6abak^C=`pebn9W9iF$~H zJG)8DmF_f4M1Q6ohXwg3)l9B_+#XH+=R@D@R!$NZ?wFsSNk%`mvl{mrRI%}n+#WK! z6=5ZDT<~NFud`Dl=%M&%FZX7ZbJY*Ku;a54d&4+FxI^fK!NwWTc8m!LN^un*>z6ga z;Vxzhya$PT^6i64FnULbrJRKz>jM_VdaC+B-%-DAhcT0R*NPMJ|tYdty}Y}cvIg(D0# z+MA5As_m!qgR%<$dmaf|(`@(K?0$jhX^ydnv+9NQIc1VC3Xydhvm)aXU#q3xw~zDU z%hy|aYr|2*g*zfqA+?_T44JA_cjDvMCq5gy!OD)y%co+J^wS~}&!9p3)abb&@o_Ou z8V^BQb`}7V3AZN%qA9orW35^(czfp$ES)Y4YwWTN)y6W@C456q6ffq#(4-cd9NQ#k zOQbGQA)Ar0S6GEWdpHHyF&FzWqUMiiY#c>|7z0_**vl7*qo_EhN2dQ)wE%ayn9{sQ zlc?YDB8L&{uD0PtyeZH7i5QBDo-f`b$pY38!;C5(5!uRN+cv7@@mVl_cKWAJ2F2-< zPu-H#SDIU2%Te4}h+qB*6C$OBEB-M$bYXh6g8Fg4vEQXjYg3C^%ru;UTnkcTY$%cD zVk!uB7aKQ(Mp|gnPfh`HrrIYN?ymHuVQw!_@)?zV|2ac-%>!U+X z=086-`UK0lB5%B(uYwtpM-x7OLZp*u5_>>P%S3g-9JpTSFiN%b^B#o5Oa@g(qfFI2 z9J?fG)rO6EF%H~}39A{Y{rHvw%uJSsVswIN6a3T!j0*xhZG2bjxl{UAsg_GbF&jPV zJ(9pb9}ZOy*^9$WLf-!SO~NPI)B;i5EW)$3N-g+2I3!*OWcW$S5CUWM9P5W&*p66; z(Io+pgI%D&Zs=X+zx`rA&0)2QU3AnX`R~ACpf5v0E!dC4E}-zHB|HLNy3W&DEfzUa zDjh5g&eQ@^gkNbi4rHY{Yi#den_3?5%e7m+VW#8<79WzuVjO!+4(~$ahjmw~rC%1O zknMrh8K8F$KUsGHFTqtOe4~S-9ktV_)snzJHY5~0q#V!}Wn3@@Po93vj3j5K74HH- zYRMDxG)qxZ0lbSr<8PjwrWI7?1FhB4Q78VhaO2SP+JHv$Zbn9i$Rx8pLdB(K7JL4F z{`?P5_D3IKcy(fWvEGnOuXJ257L18W7h9^u943;ppmSZvJ-|2_i z)FPx5&Z{E_@xEq_%0RUDjY@lDJT4%pcvtqr`Yc6xn+G3b)}V(857y!rlK_~x{P;$# z#okgTIW>RuE!6cyfs%EA2 z^M}D4o_2>7h$lMn*`&1nbpN#QKum_D=Ux0>cBqI2kKqff3$iqj%~;%w8vzQI)rXX; zHnrF$qKM^tp&8Y~yxtwCM7oYRPkzNR7i)oxAl!wNNKWH8Mz;mNGf|c%DTwz%Q)<*( zddK9T;&igWd{0?co&l!}~tAA!_H400yLQc`BA zmVWyeSEV&;6rzi*J{_L}Cdf5U500dBQWc6AtoUtvcXzP)p4Vh}eYCXHiR66`-)b%M3{eB(O~__B&c4t(aY2IK4?>m(1mD zBZy^4U?4B{$r?Ju>we1FDNnrmzX$PJCP8etqJm*PCZx-1AGd=#q_*hGHCLXNsmJnZHH=OWDt8M)s)M)bjk65nw^T|K{<< zO?6A~3^VxQk^||BDPnyt5C+Zq3C^-`ghPS?5|l{>wZL3MJ-`vLQ7zN6avYDl)$2o& zx$^ydcIsUYMeAMUjrYrdKzU)y2(CJn6klr?1Fs9xp2ftp>YT< z0(j|alJ*I@ke($uy-_XVOZ;?{alCpli8=0PORQ6xIGUQ6o3q&S%dNn;VKr{`>GjHI zDJ4G!fu6hnI%;<-FKFEt5rUTD)$b>T{a{C^=cgFFkfhClwOaaVMx4n+F3g`NuHfM* z;VOi5iJpiZ1vBFxRI9}?Z*k!DTH#?1=FM@u+q`KvKg1-c44COnYI)p+m}!g@_>RXP z##{-@cCmT!qPBv?)oSUde=+Z0G7?}`p+zAqBrhr3kzqyhLhjRL)M`oEA{^W%AtwFy zN8s0}x1l0peusNRS7=kqxydtem-s-k6MtgQoyngYDgF>MwfkG_EjwmE;c)B2la-U+ z5-~cg1!8e5xaG8rLyD@^veC7QszbG0a37a7sMQt;_uw=({IR@l#JK|XiTP#*rLFK> zh+RpB6KBSJh~wEjy8COj^t&r12*TePjUKNO@m-7rCbf<}{A< zCHKqB#RFaqB-00+m*qbz%$+;&q6&}A;wLCrdmHHv3 zX_~%}VbN1C)P);y?r_d{<;0EDYWXr|fv}@L3=lrL;4p4ZFPhEH%FqXop%GW%#NB(9 zB9fQAXx3mlKTimvg{Q>2(=AY}Wg3XKaN$rau#&mY+9xIf?q<`wKrcV7IK7tMM98rm zopM(WFzmSIN53yv)JH?qQ>&$4mW>^?^sP4%TT0Rw@*X;`pPFIck#oCait`IWm|Rc) z^Uxj)II;`pnDv_v)LESr0*G~+T12HWvW^iPeGNX0AJ}QD^znvCFD2_JKbJiQn&ee8 zakD-z+64P{huOqVWgL7;jj(Y5!X|3KMSs|i@awa^uo87)ivL&=p4xd z2*pL?HB@tT`cz*da`j5M9kS5F@!%Ka*d7#lOX2a*(i>%IM4m!f7eI*Z76g@O6e(ZTa>(G_gPTC|V0Z7xT?O|c2! z+=s7f3B#9$x$3pdt!89>GC8ty%!d!GTDA zrCOroH^eNgRxo9%IV1fzSJsDKT>pNctNVo)RMtptW%hO}&tXjbqAwh31=UXIBeS9Z zl7wz(g<3H**Hp;15zN!57EXHDBi4t)xx$4@q^RkFR4ftDKaRk~SuAEc#v)zP>Sr`g z)}p!@_DUi<+|(D5O{+b!v>F#lywsw9xs%8Dju_-(`lvlHK&_UZ?-*Y9;HQS26xd8l7XOZ33?|y`^QZ!z}7|mzyhqHIS{`$Rem(i&ai^0;DO)ObK~B zfzN2&&zEFn$0})4i$MwRC7x~^ zShrsuJ{0iV>bW4m6ClCIj^Hpi1atdkeM#Rlp^z~PC~|xH?f0FE!Ug@*kVfJU1MU4e za1t~m)^Z>Gw~J>oG73uz@i;e0hXVi_3ljnS%tqRoTciQAO)V%@IsA1?%;nuL5KJB$ z(IyP`CL?sFT1&s ztq6}>%Q--Nt(JbC!y@+_WeF7fB?Dpukn^_ny~wPUVg+%mdO|W3-w(;2gnQOVW+RUT z3C9hlwm7-jnKi0qms;_<^+0#^W8p=z9x=hH@^^`PUaGbHtf^LS*0?+Rp)UHdBqoyf zjO-3B`j=L_R};68O4l$FymyQnxO2^FDW0kbvf{;xJwMKaB`d?0Ih$}yTYt8}VGPJ$ z3pti;oKBk5f|Im=xi#1*q#r|lm78GR*YnFu5=0=OuUO0K)8Ak3ymaDPJg(4Qx!XW) z`O5FcPpe5SC;0FU7qDr2vj%+ohvAYrJEE$)lH{&dOTR46?D&K`dK%B0GlCCu>^92M z#gg)Fks*b>R7*b}5=kO@7W`x?+wd)|NPbRzJ5o!l1Cot%S*xYv{sn(WFe>W6Mw4Rg z2J0I*o7*M-7VH}sX|W%ZgKn-f>N|g9+UL($K|9vG+xZXJXf)cr(xVV4LSb_uOn*+*$OS_v6Zlo^0#l%5;wDXOTzz z=t#y%xehL5#T{S2yApO`FJ`wZy+{wkN5lLQNB9?k@q~0twOY)lP+f3{|BB86?h5Y} zVC!Fx6mMWcVr)}OtTM5;6U3U`YqD%G#?6(QKrvPW8CkIw6nCgJwjC;};gVarg%Z8+ zG{uADw;b`uObGxav%{Z`p|_ztVqm zv?9O#C8=HUd&!vkg(wEMj1{a|TJv^GJtgZf7E@UPVZ(8KE>b>cEgnj-ckwoTy>y1itt|IohL z)bh1}gMb?(q0}M7#fu<+3F|cq96N{2S}j0US~R4Q5x^4+G5D2%EZ93Hft7`1xhAy; z%wjf#ts)o656mzd(X(1?`lzk7e`E2v_`X4V&J=<2p8SyvQzT1`hUE?x4$fb*GkKp3 zDSm4Hn5==gcxVKjqzs4{g@`w()$;Lw`-qOsPfNn{<_Y}*#uKXP^$_Ijdt24Qd3JON zuUC4@PmW`UOWaiTX4CC;DBhL*dVaJXw@U{6+{HG%YGKmNzG)`4kf%a$U#sO=H)3#D zRSa7EpjhWSXJAS!TD2H_L)J#$i#@)UFNSTaxJ=l4B#=6Q`v=QFS`Q9is|8hXn&LP+ zOJeqwxHaXj`!fdu&W9WAY<4CqB`68fYp_1scNdK#8mu*E-NP%gRtwWd%(2)Q^J7n^ zPX(7)E7;6+@oj)DH~RJ=)PC`?L#c!FTf;?m=iArW*Z^B*7M}}5$$!8H!t^46Uv6V( zV*oh?ayl|8HQI@D(crA1MW#V;Cg<3EYq3bQ=M9NyE`IwR`N`%mhI;Ooj4tFZC>NIE z_?D*4ip6zvwkGmLLzXEq21>sHfIbW6`>XLyg)3SiO&;3YPIz9w9n=sDV6%Mw{vl# z`9`8mu;$kSo_=z*TKeTzqNf{%ERV=4^kc{|ya?jiCFhx1Y?A+9e8=b=K<|UDR%Law*(W-)ptNCr0hC&VsUz1{HrS ze(5nia^ri=*ljeb#T9bBF74K=@q`R^kr*J(s;uEY*geJP(l1w(IVaZJ1R*{A`z^;K zdQMoPhqGE+Ei;Bksg{1&1%Ga)2h6l=uJvOviufIG(2#}<6hHx4?D;$TkKra7_2M(1 zoRQZRngIsvLc1&qSb}8{AH$~e;Q1=Rc>K$0A($)p58gBoz+}&*mF9hmBOv!CU{Cb> zE5!eR!K9_JdY5#g@vPOts7>Qyydy(M(qqU{xym(6zuHo6 zZM0!-uk^^?P1kXf%vc=GJV$}>#kKUD@sWyh88aP8o_Iq3O{zh%N#%J=V(hfqS~_yA zDQSm`98pE?L1xiqLgtK$c-JP&>9n_NYw722sZK_Ph4c7Ll3b_2)aApJM1Pqw98o2$)aSi+b!!_sUcU#fu<{uYy0T84w=@D`J(}G89#~kDD@xe+CIeg7!Cd zYMZrChf3XB|4f>RBRKDUQ-pWW3?XW)H z>5IvzNgNzTK585roqZ794TKj3QtZX}j35vorJEWd_aVN!DUti$VxNPakl|+i3uB(B z#3<}voL@Jd+;31{%+p0cRQFiFntxT>R+rcF1G*&p1tdRcyelM>8KOeri@?;zqGqW&WNAd&jo5@$eK=(Ry{BMya%60 zuX_41;aXe4?7TRs4CqmQ@Rn!#_u~7~b1wGLQnyZF87tc#i zuN!^kD?rYWpRYaJj(9k6a&(i;qZvuDe{qQrrNydY^_OL)eZy5%p20NSY$4k=!eP|> z43s@x!wihU>r;;fkx``4#G!kOIIOJ&E-kM_0H1&qk4)?uO_pe^G|ylk=4WfGvp;a> z3zGngSie8(mdy}&c6|)}0S(mm#r~xquWxke?(Ta%#gbf}xPx(1cgqMEfn;FY7uV9! zSAo!GNg!MNhLSaq*{fHRaLn8U!vz1Lww8`F3lkSm7vu?9L0-cm zq*0G-W_+UWc*zhT!t2X-0WaGRl1HS?muD9JygT&U47IS6QnrS7@#ZDvs$qP})aO3e zVx8R4Z=7n6{4{qmDfdUYbi=^myg}* z-3LvNN+b=-951!QUp6e5M6+$9vAAPXJo`@EAb>xakLHyRt_2alrd&3ME%uf99IG`>a1joL@mZ+kQuWM_` z*hL}}U%0?MdVGHupwwvzee4(*gfv`2sIfpPL-xWdU2ME%DdPOk>Sbg* zo0$c2Uj)MVchsog@qv!aGj&p%wE(7>r*PIVCegnD<%tIDHbykWy$1t_qsZ+U*qgZ& z(^BHW+ELDnn;xax7)uq%aHCN#7VH9&6xo}R;wNA~-UWLlnpYU30SpyHX)XQwO8vz0 zh6{Wdk7q63G}k~_aR30pkH=B0Eq_S%F8FA+U6&%5U>9bXs@GW>C&ual>1nbS1BHM` zz=|XJm3m?yKRGR|P2F%tuT}n7zquG&7&dU21h-VQ|IWVFkDv95iYYYbDfX30I$qF3 zPfCAHzxkB+C2{;rcD?{wd4`SVFCH-ZP{Si;L+LB&UldDfjmL$9;fEbj>?`|ucAd9@ z*zMQmAT+A`ve_1G4`Z;-;x21m4fqZ-B)rW*!U5K|^EDJ60&ytucF{He5M)eJkzIx%H1 zcTGfMWflIo^}t0XjXqg=Myu>6Lp?(yaMeLo;l%qp0aH;ZVXE=e^?Mb+%ju%TurSy8 zx``clq>kj~#JZD*o@=0)rwW`8A?f2hzL=6aIU*7U!9u1KFpKNIwibBHnhqk)b}V}i zLj=79H&vk^F*<_(G^)omLiUjn@|T!0GYgoKGsL`ATFbRbv>1!;OH^lw4{jF}E_&pc z!C#t~^xyo{$Sk);*f){CJ+Gr7bg)!9gesp9;m#i5}>#W+B-HAm*8 zsSC<$kFf+}veRfSpPzOZii|(*?4zf_U>%x4;-jQFa6omwZHueAFToBIYwnfb_Tk zhQ-514UfCpXf5XuCxSryq*lpF%h|`l2?L+pR---?d$Eq$PbZr*s=$A}2#8_iS%73k z3>hk-ujm zpPEn$iV@i9vFiMaGrj}6(hLTiBv4-iGGs5xvMHZNJ#Ya)2 zEJMo(-h)q0Vw|y7YfB(sDi+N@-Ggw{g1V!l73I5h#!wOrL-2(Ac)bH0oj_( zRV#dqg%Xc$rv&7p<`0z!=OPz?cZ_?Cr&VT*0?F-#e>B3z zJu9M_Oe)L}Q;#7;n7tZ|d&ZW_xdivu)}jZ-AJTR^BpNdDHI5~0!6k`qP2#1zZM7DL z0J^TQU_u~;`x0FG?eNv8yoPul)z;Flwj436zNjM}WJW|V*hC{oU#az15zciF)qdXT zru*o~Dfe^ndu+laU`Q};t~A7=;kk-$<-D^w0O;u|;yrO;!{4+0j0C0WI~j)@t=>vL ziRinb4Cbv2sq;qw0m1ySwx%92!m6#Mqu)5qkWC6b4SfsH8aO!dRLS`mAHcs(vNrXCZ~ z(pcSNM^G0~j2WNUjO##yd-?Y2BZjlGt-j5&YY|^4&vPE#UP>0;9U|v6P7#X%`NwKL z@?wgNLjWD&tP)956ywgqwGU98{Y=&>iOYQh1`Hw>ctqp=qaV;Hn z7Dysy6KtkkTA7JkOH7sIn_;S?6*PS>t)*XI=|}cMMuduq5{wstZaEL8bD98qL-?wv zN=H2T=Kto`cI?Bk#~aCH6iYRukz^^D!qwK&Q8VJ_^qQLU&I)(bZkA!M9{YV@v+$F3 zF4iy|_t?E~volLFcJp1rQN$!bC!@Jnc;I(@ifb7LuA>egt^(K^5DyyjMv`415Z^c+ zM8s{@;@w{kt^@zyyMG`Dv*#dppOaf1gIk_JTIQWE&5G9X?WDN0t^j(s~ zkEFncRAxHLs+PQ(&CyT)0$JF+!WurDf&BXMQUjNTJ!0GKxcJ38xg)O+*ay zdkojs(wrR!^DOsbKCCf*+(!_}fS19Om1cibPHgjI&^|Y+`PG%I6g6K2+`(aVN^luQ zfeX*+ndjwR@udbGPXqIPjOI@UGX9XDF9^@6JY^ykLI%4DUi6^vLd-(P4@T1!` zXDMkAmv|^+#Mjo+F~Sg$r`HPz0JsiQUpIh=Jy_~hRbj+|b|L}?sbHq6R6BJ!z zcwB81jO{c|W81c^#!fbNnzpfR+qT)pHXAp#nq*`5yWj79p1Zhv&wI|ynHdvdUDC5$ zI5p>U?pGWj^Fc`0&<+ICKGk^8S+c7*RZoav8gynhqPqb)?Q>2>?+yN--lFutW7F6U zffRP;e)7(4#V6&|Mxgi@RxjL}*X^?m(0dc_a92iC{XcrxF)@j!e1imZI7NCFBE~bCQr*_KTQQJmW86DH8qgCA zdFfhrLAvVLRDPa3Y}h*+cb^pEl}D9O_nW5mbEJ7H=SwQOl1vcWr+tu1JNcA=@WYj=4ua)t|;65-N!UZ+bJV7%Uy}mbM@s8{?j+`y3DJ3D5#hiohu`Y_oq1X<5 zQC>?K#vMF5&eW}`9)iEwDQnjChmd6ItiSa!2>yu0=MDS)!H#BDkxm&NKx5Cp$)e%M zCgWf3E*cm0igYb`O?HY<-FddM!kQc{j_gL4+QXULd=>NZR5=w=*)T7A#=4gl4HxO2 z^xP9E5+-4H6Dg{@F+xDr5N-gNuiD`=F#LV|8;#I_fvk6}E%o>cvYi0#HQ27o^{a`coe09N$QuFkOpvd)l40MH$BI?9Ggc zmQ-}v2zseE{NpLdr~PyK&^SL*xUC=_E-8AHgbI| z(4wXqOZ+`ggDv7`%Ji(VTjf$rGfNWRTuu~5Fz)O)l=3!>FO(0gnL6JS7S*Yg5aEBNe}QGs84n$mL=4H>Y8D|7!?j>f@zx zT}d}Y4Jz_$cZ=feQd5uCz4+(+BiNEK^7F6p;_Of5)yegfII@*dWPm@!=sL#(u}Q>J zYRi@CMyJJEK@I*Rn9|g{8_#tzF3-p%4Yt8%FKR2&8I`CvW{fh@r`6U2Zn(8U-ZDR_ z< zkl&i&QFhVM%NB{lj1Bew)JQwBqHH3VMbfzPoB6V9L*BYZa`Py!|3A_ly%M{PcO=TZ zsS3VUlOfo%5AY$3y&1=3M**;vz_X$8`6tmbO8&@f$>0~ldLs1zY(-t3ga1=jRYukO ziL@#CxvtssKa*T>(i_oz*_e!QZEdwsax|~RiuY#uTQ-0*g;z`#NHBn<>jB@Es_Gi5SI4d7n^aRtn1FWw#C%>whY`pG+zDBAaq=i;lVwM{BL2~rIE|vt$MXVA5HxC3m2lVcE|y3<)oB`u$vk1B=`G$io-k}P2kA89Y+nqP-l}kW zD96+qgWoLJRG!5+2SAdBS-Wye&TnHz9w!6kA!!TZ-T}d^T`bWyP_k}$fM&juRD$Ws$(E;aj z@pi{*J96y;PG&oY%%{foNv2EMl4p2!)}GXiz{Z~(%`V+tIppmD1f>WsLdwcRmb2j`;Uj;JrrOh>9#cCB@{$-*A**W6)~jA zs@maD^iOVkwx&#DMp%Eo0fCOBfB0m$Vvk;Bey#G5tY3zoZ}Bs2PrVjKnP&!H_cp z7F5KUHQW?-SLx7LEW{fes00YhVn;NJNpvRq(e$M?NmLLOKdDy;x-mMT{VrKyN!?$6 zYUTRW9fcw6X`m_@xs0?l(tQ2p+J;2ROxo?@$gE+a7Rt%P1q*f+GX8d1`B8lOgR1fW zL{by^7r5GkTp|&rHl2{j6Z}q0H<$;&Y05+fNWgCVlPkm=$$4w=lW7y`#PuQDDVP~> z<9RAaj62xqi>2h4x`R8sM;v`yC zI~V}O=+1AgTmy`Q28rtku_w4JD33cMFN>-gk=XG+S$R`edyL2{s-fwMGX)%@xR<6{ zr?a`%oN+x_nf8yq(MVVsWtY9J>cS)pKOQE8pX zfBgto-KmKGx9h-^4&UUUG=rOF7a~yBk*2m2sI{>}p%{J1U5w#?m4VeDYcgLE7U}=f zKCCTkUrgzL~t2JAaS={#$pvVtM_%-?JY&l~Rsd?T60}I7-P^R?m7K z^$XOAy!YWcocx%3IOXDk z-2sy>Uc7zl;WaXa>=1}Kw`%KHHt_R&M1{5~yYz>yC`*nW)>d+fY+T=bbf`^lQA);D zy^!+{a!F~FA9r_Ne*$;=7{3|ZebdXK&$d>IF)O5SZXKOt^q5`)F$wOZWtzxO1wO5g z3aG5F07+-rZTitSW+DNwls|a09_M5oY@0h0rImzmqP`G)>2_DT>?G+ zRd5~zkknpUWTDRb4dm(>c9#&vidKXucf9#xbIu$AmYuh)+P9rP?<)DEwdZaqVS*n5GZr+at$FIXl=CwRd#nQ&?aB%;Zz0S1Ee`Gre zwC!ZmhI8H+*MlVTg4Y;jC-)br5{;*hhgKtDEZ8ytOV1El22~evsCUP8;dX?IhJml< zMC%~}tVk)OCp>aZXVvG7%1OcWHsuim)RmOcXR|pIpm%FunCAkGn^JN1xCr}^e*Zd0 z<=?d29sQl-3_F{|h>t@*D0JUW2=Y}OS6MLt?{+Cda6%sc8%tKG-%c{dl43I+K1Sz4!vQP^*PCqv3;xdmo6ZRv)wDLbIrC z++~~1zJ$5yZpCZzH9Kc*@Xtk6yF#oYz62YmU zy}Jnn*=}j|M#m9LKgH3QsJhZ;ZZ$hAS-GLRMwA(tb*dRmn$?MpT4X??R;&rXRBKvJ)L$|85teINCy4dlE0eNb9d*;HUZR>;s_1`b$dn8NG(wSg#XYOl zuht(yt!ytVQh57fp8wx?CZd|%Hy;d>FDaOso$S0=ay3QyoBjIDPnVCsd!JagIR3Ij z7))PrO0lKTz-8kfYYTs=8GSh&nvPakr#c>9o^X%Eg7b(}q2Z3-+w;bG%f9Htaa9UUsSm9kABx?@Z7-iYi zfr5;Tt*wctrPFSpdicJyo|))2ZC!*F`DvbxhRD?RV{5n~cEItXNc$)uhqcx-?XANR z2u}?^WmjiZ$~2C{bt@G&v$ii5$aa^Te2=#zj+;I1LTHqTUHGOAZp^!V4~I8pKq)lz z^Hoj?Fx~m6pF!2)j?zvSCqgz)C!yWL!KU*ZI`}BnD>A@CZ za!KCj4p8s+VeECb6$-}OQ!bOI?x!jua)tXp)GyF~D!d$P-)9uJ6MS}oIm%^>*>;L% zB_<#3U}^vK#1LL$GBP)Q5#%FkSI6nju{z*y zG{o{3%@`sS!ScouEb^|T=L6WlA#TA2$j|vV=CKCZ!Ug1my69zn=B@Ld^Sf&rN}4FU z+wB}I>Ir-tB#*t0;&o~U$P7qW;r1V`A%j;j5rayQ_O>{`ZCPZ%8y3tdwG3up^l}{( zr&BEvj*v`sh2)qk0_L7n{wDi>UQUvTgc#U9*HCbk}UxKoHu2n&@ZbmhcQ-M_^?!xS=!53`o4ys&~ zh$?HOcmXXK$jaNMWt$G+in7^yTC<;(Wq{I*D5K0DPe~4fa5hm`?=d<#IC! z*LaAr zOTT3#Nsw<}`;u_j-H1B9{=9P%N1%&S-P1`hQG-^8jm~+aBSJ|CBp%9qa!d-z;cqIA z%?rnlyxRFre_04)JZvikY^spt11$gN!gZ-V&==%vuU# zrhK663?6v|FFU|mGV-!cCn}lptHAt&C&TypFtFotky;X&O;@76MGo4){u-^8%YVj zRFC&aUJLaU6sCyp?s__cn^PnIUVAO3x?B{ho5(ly!|1c~=M`A+Gw;SxB$>K9(8&L~ zwfhiR6r)OupAjUj!Prdj!L{6m4n8bskJF$ALf7JBi|*8GFIu}SYBJ{AU@PTvw-7?K+ksz3Qqw{W>Kj9mz}iVxiIL;3EG^{O zd^{;&7N|(RK8|lI_Sve;uBaxJ{pXOTY~0TNVuftm=n3)a4UDX z7ZC)ung&@q4Ln>mA5e-HjSaun*1S=2aCie38~6T~+dR>VjVQEe0)WmcWf=tvZ*XY6n6dWew_28lwS(y|8D^$%+MA4i6K*hBAgnW3Gz>P$mU z{NM>b|Idg`Nsb$2uIl74BAd%$AtK)6>{ozl9#UV&NOWRzuvM-5QDAn$Gf9jCrx4xX z=xdahi|Rvqq{$WJ9OEJ1+FZqHP4lAg#I5&7m}(D?92h#(s8!G%x{l2skTR}K>E2<= znEtX+CuwFc2j3h~-sbhIE?-Gn!%0tth3oj32-sogor-xZ8WFFvoe|cO4#fwkon$Y} zasr_PA`}jM{sYh5R0Y+Gir2#x*v~437y-WewbJh4BZHANmF6xb-+cR+F4?SDdAXWB z;(gI6>01?&4rnp_?G)MSOXWR|#h8Se)g4cDzkdF{sz-Ec67kaTcd)1EmkJ1*wZ^?rZ5^qajnl7y8YLKOL!R2jKf-UfMze8lT?xK3x)e zz)SA5LRpQHQj(xYcvnAO#vI{*aQ!>sNuHU7+VFxt#Ih+KMvRwIDZ1zQ$>zR4IcS%T z#4el1-i!^tG3eeCa`6prR~;p6k6RR;9L8W^&tUw?x=%`(p-0DiX@nDf z>HU$)nWSH?wM%cG;xZ_oQG*9dwr58PGOMQebR;f-F(r(C*YFU0SSV0PkD*66Sh%Sd zt!;~(V|0IcQZ9dx-^ZTl#*jWaRe9TEVLP&`JIUM9n>D_K9zLGy!|b8Z(~4u-zhe}F z#_VruMPLVGF!W3iNO9+>HltZzVThmWT9A3wublgB!=(AjJb{!ghmU=gFCfPtga*z# zG=WZHVUMXY-x)n#5|)}`+h@cOQiscqQCrjSGrpARp5`ka2U<`3f-5~K`=`~c%4BRo zDF1zQxA-A;fKBpU`@40qYvbuOpZclZ4xe;HZe+2l%J)2c@H$vpo=ql;mPq+ET_7`n z?EtMmt)Ah3OkvxSw_I~4a-6*bWkn!ak)hM^uD6dF5Z}1Q-`{@GxZQ_$YqDm`&0d`f zDhx||yA!Oovf65IZB_cZ5Yd5<2$-W%ggnBs>_x%p(^>iLZ`sf|4Y+e;N-DpG*|1_# zT={*g_p^E|M65VVe4QSCs5fE9>@t?S^2?$kn!H$l%MkZaqKG~&B|V-%Mub#V(75^V z!IPyvD!w_?QW1@H<7OS-xF)n6PQ*%t8#PtvXjNl`wxE=1Gfhzi9%tCR#}>~~2pV7E zU*o@wVCOtHIe*A&aW2Hq=Fb*ZJ~Cv799~pUkwvkSEk=T4`wXf9`ZIq4TT=IpJvG01 z)@@;y)ytyFz%X>0NG(Utv=izNIRBbOtb05qe6Vx5V^*%YWN+}yt{FGQiMKx7_&QrS z%rjCr1}#>R;eP&G*+lE*YV>AM$>}LMa=oaig2fp`FYS*Pq-@VB;jf}O`G(=!Db)|pY`w0W$^dQSzp3;yqS6IR@C#d1yC_-6#Sa;sMe->!J zuxNU>=K0y+JgF8O%V5A7OjQ%4jsi)5F<1dLJ_bn>T41d>U#&MI6qGm+uNd`!(6H z52DtA3T6w7obh{^Afi*np%%E8GVqPE{#QPSERotkt1?*KDwi5GCN}l`A45*%n!Be= z-iVJk{&x%Jb!tNd<^Xpr8M`t~Uz3-6bIw(TyY+3%CM?n=j*Dt}hGTx#5835C!zqFs z)v}+&f*f^ZjjE05Uvm(beuZq#R~&6uZp7Zm@#XEXErOhsCb*hICRaz}Zy4%I^U=G4 zkQJxg^QE0fFcznRgv;feK)S-%`>_-v%dDK1KPWQw@yW?zhtP51KeX1^zX#6lu*VEP zhL$q%p=Z(AZ{j3_(6I)oIJ-EYAV#?cM|+H);8hXN7u@IZ?CDLAaOJT|(D6;)S&T=w zGikTMPx~E2G^!5}6f+?U>14?=+$gmf|IB8u|6We{kSg4qm=5>kUWP=M6nhxs=0Uh~ ztVG6pZtlcncaNOHJP)Kj5G#&3G~<#n2{WJ}`dLaanW0<=Nl-rKZ_QA3ArI7gl1bv1!<`(oISR5wD#{F}>2a6}&R56sTw`PPBs zF@tv?3JG+Rb#NLpt!M0OIcNNcUlufXH`tPtRSggiUEmGSP^&BaEiHj2wLL_>zb>x) z@{~b*>y!3F_460n+b^7G=&uvs9Ug+XPDs-O4-gqYdn_S!?z|DT4~ZUU zWO{T7((NSoGuvp!MCqwwemP5LZ!r^wK?5^n>-!F9Yj%t&fk*oQUG`au0x(B9o;!kn zhY#oLipPCw;%`Wu6DPI8(hFx76f^|GlZ^dZ<4`Y+ z+&Yf;1v&Pn5_<uV+P_7Ohu^kw93iiK9Gz1d?z83KB#3AWWy}CmI%l0`Ty#MY*m4vJQ`e zZ}{icyu?%%!*FZSZGGBt(MTNUX53>~bbUp6k&-Yl@=b6n-bj63P7F+lde`X7vtj=> zi6sog^HkT(umVBw{GY-)Ea|mx!|tMKN|%E=;ScNRncXV=BSwr2;=E8an%S)#(o^7J zyzVD_Ui?n}eZPSf%YvAWkv(_U(2bAu&p-04{K-;(b@v}6nfnB$)>SmbZl!lj-2TdJ z3jf_p#X4?D@W*oT?1!EiIW zEru<2fbi!uBpsdoR200q1=Dsz%iQV z7baS-!WNTsUbMZV`bni`oJRPo-gg3~EjgAV$_Vv8Ejj!l`$iAo?&Bo?&A>(C0m)Be zcedgGvz1jns8~5hMZMRAGzfXos>>mSzEr)GnzF_M73Iu z63Un^U+a8E>)UZl

tUZ$}tm@#E_;`ky@|;ZnZaw;2)_y<}er&|3SdXzEuah}JTE zyD*EL1o^pI3W~kemm@6T-Fx9;dA7rDnB#>0veB;#*%_c*;xoLTdpCH`Rx%!4?2MnP z6yKO@hauprY2L~c;FRS)Sq`Zwl;)BXyyeOiF6oa*L9Xf%69oYgyQ*1G1s2!3@=Jfes#A04JD!jVkHOW5?`8^m(}aq9tC(UV;{| z|E{*Sw7loYt_pSTrSNfbyXPrkRPL82i=qWelHnBb^tY&UXXur}ryXA2psrrW&nr$~ zbFHj}mHmcLg261z%NO6Qhi)Zc#?hUm{?^QWHvDE0z`iQ|4dj2ETC=#B5tQjfhI*)< z2>++?=veH4E=$9>-Wh#y);mU3%FaFEfeI49Q2o4>ATZ9b#bQX6y5Ql_o7yvv*_31? z(HvOz*xsA?a6oyiAcigB8AXYwNO#adNReOekS+dMX=}&Va=|2>nE>#Yq#TO^6m2%@ zSox5ZrZoe3qpOLVO`Ha2gkEQ~5h{Gn;lAz)FU+S|H3tvIHAWl#VJ}J)drr!*J{>iq zmYa~b(_0xo7#92|BI|%Rd4bhTDt63f;z$5r8U48`Wxb0T*t0t3!kGL4dHIUb(?}sk z!Qj1qWrbaM8)dev26O#dcuW10YpZXozI&;YH7-0BP3JQYJD5DOXqH(l|3h%!r*E(r z0E@HS2@yoPCyFD<184Y_l0^B`9ouDMV-3`4w`My*GFWfosTOMxY>VTWVE)%*cT2~a zV5h1Vx*vBDx?)s#?do?%?q6>n|H7NdIdWnoQ)gEL*Yx-*BJIZ*>iVF2_Zs*V{qK1rEjWX$Mv0vD|$St}>oscl5Ihr+Qfar+bKI6}j%_7W90aVcVy!QR9 z1tsENkE-F;giyNnO^`cRq!Tvjro&=Lx|}>x3Q^g#z9vWoS$I8U7q71M{7KOnKJoh< zslQL^@8}lhKxUa`3c?-1x_$ax2SLzaBJ?miW6_fSoX3}_Q-fmv`8!gdJs~&F-cn6> z<$47C%|!d1xp7E)hYpeO509wkn|@(YBw@-8QGB!ZPv^H$6zW3OgY}+hovF3(_;LB+ zm}C4qLqJcG|8LcYtn;wdIw$2>(L*8Kk&X79=vUWGM-7l3bKH}0D-y3aak*+ zJPnStjc3-qC;fuR%EDqT?%0Xy?J5egnAY}b7xqs+qQowxzYe&KK zg{dL7ys*S|iB3`C-jMaW`j&qDn+5q=MY_NuiUIvePNXXFZ?e=LnXPxR=nml#q*YkF zRv`KYGx+cEnsg4uwLGLC(XUZT3D)!6mOm$?Ts(8bd%{0*&9QnA1|>u{<9iZe0yr_o zVKd0_Iq+>;(hf1R4p(3O+eXC*;%J4Q2h0PFi5DiLpL9i4u6!DZZ%s=bV(X!_+l9kx zzEzrfCTAGn9KXKbJgyN0dud!2557dJj0=zSNphZdPFW{${@=QM->(fJB|Nh=$W5Z& z`g|b49{hN8OElUIgkhm2Z;O1H;5_L}30qzN>d21!8k+)QqF=9pwfiYXA5d49oRhBB z3F((2JcLnzuW-MvUvYP(n|o~mZ(4AZnV_tWOg|8t_&n_$g|?}&ICFe4I+INgmB+? zg%C#ZXriS&{)f!3SkD?5PqheHw?lozwix+Tp0b&6>eRg(x39{v^OZ%xd=|ydN>Fc_ zthv0z(lR<+S0t0>z5YMlU?aX-AB(~thu>Y#&q&>IDe%34YdJK;pP5=UQ;6u8*3UHk zT)P9UPi%5Z>}Xa-f3hXR7{J8ra)o2xyGeIG-?JxvZJF?uY|(iL_NegK6D0gj!JW@J z;j(MZA)@0ed+0O%9I+J2rPPksgnFS>7|731ed-rym6eF?@|XIV(x2H77Kif|vto}P z-W22{Y+jl6f9z@W`H|t*FtHxRu-uxTpvOyZYE;(4&#M-|cfByV^KqU2>P=0$_8b2t zcEH3WPmcqkG~%}U>YWB3=@E<+viVPH<|9#TSToJ$2 ztPw-rb4-4K&O;B0G1xEj36(HBsToE9`6R{oiLp{;aO*|)X!TS-5a|-U`!(^IVDsK( zq(&^dGAx7Med?(8)jD88)uyvcQtJ_g8af?r)q!F4F{s7Uq~g%y!;<^B@0u&+;@FsE+7}%r0wtC-XSJR zq(KbpnOZ%^+PffT7RtoHQbY{#F7=C4_~t1&QF(#fvZD?67l?(;j83S;d|#(HX3;sR zujM^Dw+pn-t&eQYl7)$FzmV%8xoc1~;xSWF1f7D}6@~B6JC#BjuW1z~XIB<}W`S+F z;U3#0ngVJ5$#q!x$6!nvvA3GD=76s28%iv8*Nj>jRU@zybE~7mvW@s;aFf`NXs2j0 z_MyQTXibo}wEQ)WhChg!fG!kjvSJwShby6;nPK5xh~tVCvmgF&$r)e&u$9kI>bU<} znpq_C!AM>KaCUGaQ)=_0R}L7XM_I=3enL23L=Kq7keejf*tS2cz^>+Zh|cs(9>8fR zDS^yXnY2s;j?f4E(zdjvZJ5qEIzh^@#9r2@b}pR7Xh52~Jbsbc5W4p}TCn7G!HDhi zm(0v@#^hc6;Vl1di>8R`Fmf-N`$XILX~s34O_iAMPPGjpta~6Q8;-2UVeg`&@C0*H zNjXyEa4nP2xEw}!NsErb5AK$saPhX-$2a-=8qqu)`{DMc;__}ztFQwR&(WvZJsb{C)*PmAH2ZZxrkkosr2fDA-q?%- z)%obahKj9E9GU-68vKw_fq{C7jqds_iF;V4pazfQSZy1WDmZh)&JRG80A*Xyp8(kA&5_^ruSZS9>GqU3q<= zqv-i5eB|85H;@*B3m!oDeM~j;`c_4Ak^bLno(GA_eUl$2tOA{tzFCO6|4&XlWC*U2 zvGUAWHDH46<7G|%;c$@WC5eA=Wws(e9YDR$*m$|I>wO=Tb?yI*WpavcH}WM&+f>k= zDz>kvRwh)uNrn=B)>T9-f}w}?Gx%VxT}%+=`yTSAaM&am4-OkWl9jU*++IZ%_k5DF z7IO@n$3XTrZa6rXhX5!~ci_a~*OH0a8(_S;7-d9|Wtcvcz`oZ=joL1y)G-r`^)RLM z0Jd_ZFkSpM3~K%a9+qmJSItPgcbr|WO3uyyBcRqWz7iVLXV zc^{F9U?SV~kB@4^s3#Eh{eLTH(b~IG-@&J-gOdMH2`R}V^4S$I-XkzOW{62-f#XD?dCaFRwH4Cmq+|Vcn zv>Qy$dR)0zjLx{tIZ+RTWg z|Bt6KH;bXF z4Yx%YjtYE^oJ#sk(T(2@eNtDzrOqD|Ls%<4hJbTrY5uue7yqF15Ax0<0fE%iO-!`? z=_t9nSP**h2zD5h52iD)kU|%|;3cMDnO}WKBYcb6#Xv4PiOr=1$FikirFLC{lMOV1 zN2$pH;of|H_6xODRAqbv4oDfINweA!MhzIW=ZVhpoVYU;@r@ABnmrl!y^5zvGu>7H zJTcaV3buJ7G*$F`WS?V|KZ0rBu0QGaH{IJFA^!Xd>&t=u{j!$YIM-qs{1qdq${Gt& z(;#|`b$6bhRlfcv@a=N~tzGr3sgg4KwjFbbidxhdrk0|=@L$`<%ntVUZ(bGQQLC`2 zWU_ov76AV)(ygOVI!o$IMHIyvJgrUaaTN`fbD%|ir1L8C2U1e|gWj4iW%cv0UvEAO zB8QX3P#$;P4wzWQ(n=BZup!zQ>~agpxmitO-aG#lTuHFwI|%)NM1Y~vQ8e%9{<_NW ze`_4g4u{Ef#w@bO??9Hs{}ly69KZTLrgx9TK-}xohB{@Smrg|tJ;gHA6Z)mfDfGE* z3vL9r6c-`m_or}rjL#OU!1}_*!b?Tfwsdd%0y9TZq9m+W%VP!8M#Ptd*xKY+#f*Ky-ZU6T-pWdiHQ?w~u*PrO6gdSkq# z_id`l)5_ISrqCSu-dyT+0`CumVUMDELYDEcnNl2HZ!fA)vs2+Y`0#U*k7vHGnJp_j zK;GhpV<4o9_q0Bpc4gW5g$Pow?eXFCDvFx$**wLw){_wT8u#YEy=w_)6C}3~w6$;V z8AQ_l0%t17RG~#CWfzFB<#gozImj)aEng!EJ|a5J_{)$fvL$onCxzLuj8(pNPcod< z3;IC5V+gXyz&f3j-N~Oo2cNN-5o3TKo2>D$ve3qT))Dl+`vfuJ?CLH3!g56|o|n#U zh2gV+3%8;@pl{Z3lU{elOqTH-xJgPgFo>oM@9TH7TLX`7&5uhQTc`6d zbPsQcEr#;~VHNnYs55IqLK%T*u|1R4J-uFnT|M|DJ}AsPJ$zI(&SjyysmjK{9^1>^ z)&a||c=tU?cZP~Bq(wdaGPTGu8VXQM^LrLN#bw)?v2IcXMP)4qJGAt%sH`%KhRg)~ z@H+Sm{tTK*1=9Bpj4NTZi{y(&hG8)27$Cb7g?9JYczWX5>NooAmw~8$)nA}>w6*9V z8?Z>-6|nXvy9r*cAxBU*)7bIHjQqc8v}tz9Fp{tX`<|&G73X;ODnxNm1dUTEP~~;t zXV`)6PE!M^k~M*NObuFDojpQqrAHaB*5i5KQivOm#LwRQeXep;u3(WY7cssez|Tue z0bFx55O3%#!DYDv;bDKaK5TdKY<96&Na6RM1c*?oqn2nfU?{fMf%69$6~JV{;)bVe&@9|2%*HSG$Rs=%8%l?ckAL( zJ!32`!(>Vai=*ge!KC6`nhu9~>?+?x!6^;UBZmwIlm};Idp=%)%Qnb%AL!aJ+Rg;Q z)Nt|mOVnK>pKRRDu_=GPkWZpbW@U8o*h9t$o(H6}pSkoDE0lGpia?+=5N{jTfG%&f4n)#3aL^nnUhI#AJuqe3H>(KG>AyA_W|- zM5gg;hnCl9Rtq+g^W}4L1zC36W?ayOE=(xWAg02oLwq4^P)1G~C-ku079%5uO_T7C zl0Sp3>eS<7{pxp~Dt^Y^jPXtyj>PP!(VmK7&IDS1DO?I-2oQ#nwT1?Yy;-D$EPkW@ z{z`^N-i{;`gpiF#=KGE%TFYJT)uU2h@xg^Lr1J=FNMv=WE9-b!aDv4WbGxpDG?jY ziazM{!e9wE*)P39mrZ9@W7;2+(2>LTiiMFBRnCV&qyncqD124Y*C=)w>Nn!-XYY)t zfAx@sGY;B=rjjZJWE7ES`XyH`oc&)0nvVbA9+{3T9kg-{(8CY{Z2!2RGv7P1-Ibc0ki`Dc$$jHeT|ny``0AGnTLd8CE~Jwr~&G3Bi0OrBab zs2lALijISdL+4_61zAJZBVQyvRGlPR5Hq9cAJCZzWqzjDw4}v7vl2%<RGKq*m=+4hZYjBV~XY@<=6No18{v(KvS&sEA=)XpXcyN@vrDTO~9KNn!v`yu6 z|7N^Hh1V@?^>x>`P#T2Yg&geEoQ94X0*7nHG+_j#E`Xd~@)JK^kXIDCe$Rc}`zaak zD#hckXHc&);9#_rqDeOES4@&Q_WAQ#by6Jnfykj>0*BhscVs`%qJa=AAOO7cl3>X7 z#dXZ=HaBto_m4BLqK9uatXmqT4RCxR`SQza2(W({#f$IEeVDcf`XtzUpQu~BH%BRa zxmn^XA)I``?@tyP2{zkf8x>fXuKAZ%|A7Bb`rnPpryvF_ifmd4+qq(3mPx0t@h30> z{a7ZM(UPH(eSos2`-VbSEb_ArSG1@9Q(bF)e*-M?#FT#JskOnlG5s&TxfZ?XZdkv~ zj|Scb=nlTb@?nJ)1mnQMo{E|O?d?RJFm>wBji<`JVsPzL5n_6%Q%E_$U*mmZzy*mZ zIL?$m#Hyx#JAAv{(xpN`BPyEK_wkgM&sxzja9njtOL_AZ)(`WoM*m`f9F(!xisH^9 z8It-V9@$I*kWZqf$KSU68Xbcp+d%;75HDsV(Pc8l)MPaTR;FH95b(YDWwVS>^JMM1tvDejv}Tlcr;chZEq1HJ^ul0`XB*UAzq*5*Xl z3pi;mB!;DWX&t{BYUD4D;Hyuu`$I~~=oNaM+gzCFz<9|jUtqm|RW+ZKOE;)Yvb@P0gj5a?cF@0F8bzTv|4N2||;l z5R(}#AuWZsIMpxqDA^)Cc=IDVWqM;Tz#twrp;^vL_9(B;2n}rdqLCCSP*rYMW$JoRJ9PTh*e5*UH+#`r;WkWZ+WQMxgBovb4{RT% zIq%da41so_Je3kw{QQ~~GtEoIpCdu`zsc5#HC$R&P&P_CtDkl5SwH_o(kMg74Zv}` zVM<|=|Lih(!Hz6{&WkIoC2*F=o0+ZXGARUkmbpWXCCj2sM`dRYUv(wIs6sLY_u?U+ z{M<8PE_a+Y_RSKOGgsT|zz5OypxPU08Lt}SVWUW_g5_tt;#tiDE4xo@(X1DG64uLa8u%19ms$d(iAVsk|iIg5uZ+M zhiRfWetLLo5aNf8Vd!1ZKfnPN?_|z18$``j95b3pt;x*UBNJ9JfXx<#5xJEeY=a>p zhKZJZQEbw1Y~PK6s*myat@qgsE<@G>54J_jhrRgQkU$P0L<(lDqv2N5WvWAH10nXD zbIUXf%yp_X<`HcxXXAYudwEoBbc0Pkg_3km%t)Xc$?-wwAgT94d;G1N*=Wgi<~zUL zIg0g&e-EPg@(_+SAoV|WVJ!-cson()4(eW*1ZZ|)J-l{!V4Rae;3c=l5{g<9S@Bk@ z`jNkcu31BBzWkUf$Hq&PkCU|@N@(v8iiYozV6uf?kA#2M`U%V)lwMlfcn_)U5FE&m zBfm1{5&9;j7$QPwggxe`*{HQJ0Rfrp_FRdWZX<;z!(Sh6+nTDawzBy+k~M>*eUL=j z(2(SGyrN5S{pQ9kQEe!UXQX%0Bqv`Va} z_zc3@=>a#|Ab#f>z6y%@7H%xAS8A&@&X7uHhYi)H9G$@LXj0sY(Yx7#Yl;~Tx4gfp zx*X6!vTrB1(Vi8*(X0a3iB&+KxZSmKGCYMJk>o1WL*%Isprf7~+oI)~8;ZdTy=Ra=O})io$5 zgzh&ZYetC98C?wHw)s5P3Cs9u((W7baXDGfkd;tXj{a0>(*qK(W{BoIecn^Bm`4yu z!cZYOrZ&nY5)fS$zDFFH=u5E#;ce^&c*v-ZhyKTpD&cMGS9Q^?=7yC(Prpo}~w+^ir z{AkxAvn3VFW6WWiggX;`!2b7%9X79N+w3t%zV@c)&0v6Ou=MD6wL|7Tq3;Q(^?C< zt!MJi>u9^4(@6#R^xC7bed(I$)zNP1)eb&(O~nVis^)2DnmH?mhq3o-i|*pxc2$Y= zBnPyT3|@P&R%d8A-ygd6_GVnlDus_S9zl2#vK&$K=pg+%ahyASpP zKF?ui17Z>{D8dKZ6K7k2GCq7^IXfyl_*D4 zC0!h6v*@TKtP5~)1OAO9e5?wr$(CHL-0c z6HaW~p4hf+CllMYzccsqem`^8N?+a8Rn@z?t7@lZN4>3zdi<3|{r5n`7Z(3J;rBX8 zvVwjagmIc)17oha>K1f+SyeC-yW)x*7bK$C>2d^5@N0wb5%a{DZ!^+#4eCAM{rCCB zO8kc2cTu=h)YC;tTBjz`{f-cJeQvf5yXmwy4txw0uobxmLHUlKjh@f9x&6*7*h1)8 zsjW&oI(RvX)%e(l!CBFw`$XS;Rz z2cfAzk_A$W&Zs>y^*>ivye=6QnbxTXvURco=`Prg4wlb4A$uW$cmL8gv+^;=6for0 zx>J?il4eJ4gH;J5HdpTn;>$gBN4_@Bp~u3D|4Ms`HbckPtD@ed`INbPQBB7p6p@^< zuutcZ7sEA^*oup)VIlwX9Vmy+B8WFH!e4#JDs6K(hj*=z1pgbe0F#m2z23h^;L7<1 zQ4!8Y4EG38Z8&y`-t32oC$8DZ?$V;AEIpe)S5i~-GBMmepfAqQJ%=?Ri|8l+GtD(y zftF(|upa9B3!|I!g?}k()H<9Yqy+3FBuOpN-^#=J+WHF?US{`(LW^Gq3WI0MIkQU% zh=AKmd$at3j@Vk&_@P3q@aLUD0@SydD-KXg>L-Rz=C+Nl!lZmaGZ<2Ch6Q(~ek;s~ z6B#i5BjoIl zTyD+nL)=^+z>SXCw;?pVCOTbp7fU(`A_Y>IQS2GFRKpY?IU9O&Hz8FZdcAD{)b9of zZCAu@bFuD1MN?cVa|J$i=udmIH1kR&VyA;|nEWaL(^Wu26%*$EKCKCNazWP;up7CZ z%ayHqnuP@*Rgb4J1@URBTQ;`V8%cAzFU|$z2$R=Iwb%~d)z)1k7~78Yb1z)G58szD z7pWg)GgB8~_i})Xw$8lMxeaPU{3EGdZDs;A!$UG0sDzU@0ZwE71}=;_gf4M;n`&| zXvYz2X)Vl1>Q=Q;lBDFi1%@FF+zq`IgJsJ#AkTRWNRSF!(lh2d4N#pKyB`Sir8ZV* z!{-S1!^H+=#Lwj4FxQ2DNd_p$FSuJX<2-TF0#I5YRuO=MUN14-tE|3`L!B}B>T~9Q zIZ`IR4pIl10fobjlxPe*Xitd7PErgmJaU6o>K*b01!wj`$k`Eer8YICd8%-U%FHk` zt<(XjU$!s^ENJ&uT$jz^FRT+i=ao3rxl+{3>J?yo!t_B><>DVv8to%FSiIZ|5b)Ip zO!^+dBlo@m-xdt9_8T^q0r_SbvfOYq@ZXk}B|1}Mi2^G|T+0Yt3z0kHRvXlsZSNM3 zVA$<@=cA;(vab981k|@2=R>2Zz|-g>M?kAEH?${6sb#$1z94SZuFSC=e+gHdCr|y7gEC=)A+yqka zsBovlK?7)f9r!od8+CnAxgT?nITJ&>)I5+`1m~b6-f8k6qcc=Eas85epS$ZA4`D`~ zLscC*=*{|6X2b<|PF_TD(`qvbvudfraKWf_2qf^nl60I3hw1SGB*B0z=#a-9g`rI~ zHrhSIRLHb!9-~4~*|&B|E^B$83l&d-GeFq{&C z`dBry-#|QA)B2r>;YUovDEhr+0^$qr1j)bYS`rIGen@@)HKW_N?fyb}1HyKuC?R5T zXWBQG#qeU=F><5}bTp+$R;EB9ZBEx?e5}+UcYw0F^-K|WzXLtV#TxjmD>~6Dtcltr zyGbZ#2{aiM22`xS7%%Vf^o$C-q3fZ_*PQ7`I$|Xk8mQh6zFThbUDCh;+ocoQZRD6Z z-TJSLOIPzV@s|TAzCP%SQm9mQ44=)w%sQGejLM(M#x?{{8cI0*PDg^BDRO0n4!eu1 z;|$FqcB-jn?*WX!E4lz=G_$a!C0sLiGbG7Is)yE=k;@jh-_jAh`@?FNSm zrRCHK`4J{sS0JI-8xIe-2IGh2rJZ&YEJ_tHcp>NYC+KVRj1N9UvzC!iw5sdENtI$K zQcI65NV>^c%n>@!ni{$|5=jqO8Bt-;0$fWOX}A3Tx!u6f)!qtd^e(z^5R<;Ni_Cmc z=k0w6gS_?J;3OEx2rmZ94k{L)!iYxY8E|0%o{i+~8$Fd@65U{#*+feGtloAr4RalU zFcxcuX~8V7dU`?E0;u}slmNfPlo1bsR@m{NI8)QDUW-dTCUVVJXVN$v(d zCB5VXKciJMzvm1366dSG7XESgsf7z@^Jyp`g{!I21{Ih@{|m!)?{mw?r}#U|m|>Z# zyKq=?Z;m(Z`@xNZs~JTIRq$t!gUS`@AY>ho+s@IiZ<(Eq=X91ZRrzjAH6&9Wmc3!y z$z4*Zn2_@6z1_5d^+_q*LiRw>O2dZ(BhNS~q-qOD>?LLjkx6HY(&!Q0hh$8GE1x(7 zvmX1BR+Q`G6^Sa5hI5rp!=&5h=q>uS6EkV|@7{3$3DEQX#hnf!a{sw8e8%gLoOpYv zwDi;fUDBxw()oGleW86ubJVu5K=)@_n{s0?(>LA@ zL=u4RHlmvprdnm_o)ocSI$iOY6pvHtq;a$<5vBq##EvAa8#i9UmDTa|PWWh#f8Y6Vv@kmUbpR=CT0MNuRiMBUgp)2w&c=S*;d zE5yi10SLIa`KNd&2nDq4Q`qJbu!08Bcp;nPgm9B)%zP{&paLm6Mi zeunVZZ@wjRfYh5&e+qtKakyd<9+*}z7CI14p)9VHy4Q+~!JLkw*ujE{=K#Y)-*B(U z*{Go3Z+hf(y~-CO9=}mw+SOLghBSt9ZBp7|e!V^hizIMsE$t2HYlfxComiJkFF}mhdH@An-u;a{hI9Fw_w$NwSvPY&O^CNzuiYtQ{6! zM?Nv_lMJ(V^=JTU7IbnVhS7rC6ZnG;7|t-TI@dckW@W$(J{ean4b4PqkHaPhpnm#u zfNh@7_zy7_^ue}4NY@u&5iJft2QRv$L5vq!hY)d5lnUXMae#l zvUvD9EdzmAH<>he#mHj}6zz@zfaMHlgM$OFDXX{auB}zyj=QW?)aj3XsBmU{R&|Xn zX`_6p1-fLb)6_9GBG@1ClSXyN@VSHOvNM-`3MM47>qT-&R;R}c)>{anFgds*@cLyP zcZ=-ns^nHCh?PnoPw$Qr6fu@@F9w}!Bn=BO>v&ohqtSv{RawJ(pYt;-T6B5c9vhpx zk3+xEfAtw_NtDa0ep>?$TR`RsIUm`Q{6(9q%slOWiKsQrWI%|^t!>7ebQ5C}k3oU| z5TCu1Xp^Yf{p#6Yjl1b(&Bn4J1pS0JVK^jP;VWQOO#6GgdLdIGdI0wn!+m_`5P51l zemE_-(%j8nneoP7Cn0uGVNxa{Guzh!M3QB z3;Q#%C5`3M`~}xT6*j$v@v@a<*3E0hw zVLxfTD$#6FkS5|HTL(Lbwi1G|{LC8CMsi23R)d?B*IR%kC@W3wnmtEu@ceJyy6mqq zsfKBf61W)rI5-JnydS+zIj-0JONY)g#ZNJ=18x;*!w`H&?)1yKZ)5a0(m;4ec@roX zBtu<+*lWcFQf9R<-OV0-4TXgW#N!R5fRT<}?!1Wu#V8;^cOEaRuA~{}31Kq7WnF3l zD!ku=X0<47>k$?_^VK7vh7d%Wg#sTH+zLrap_rPtu^zK?&3HAa|Dt%GY$0qrO>&W= zy>mE1)mm3Ed;Y9KA0dtf7jR#6KejvpLN>PVRRCzt?$y#7WiEhx7)A?k!$$G(_j;suSKgI`CWo@cM%--w#QuNR|iac`=mkJoE%nIufkutdWICXe;4fuB16Z zW|%07zd@oub#@LXtD~*fh`bu!P01Wrw6&0x)!A@(_PU?s$Z} z+U>)b$dO~CjHutkSm)3+ zlRzCkiwj1uZTvw$UiA>7(T@yf{FOacWC^=i*wd#>I#{-3By9*+Bu4I+U-Ae;m-skF z-+0<;>Yp*Dy;N{dEMo$Kbsb~D^B~o&bfHT7<2@44_QZIG0WB0C>x8;Y!~T?$Kj?54 zzMk99SX$+=8O_W9Ox$?r5AZh>8`afCZyF2-ILeISY4F=y_{ZvWF3!-Q2ISn)d8BCa&Hjm9!f;7t4AkhUwh3=EL z2ed_DTdTT!gA(TV+?6k>;~(!PD20QqB4Zb2N8Mc*M#)V)V-+NmxD`|bQlHT+Ik6CA z_!BisbdJ_?df?9z+c0-P;Q4-&e!D(QZ8XNUy!V4roTT@ipWMRvrN6j1V4KM>_*H4L z!Qi+NWK^d0p~iB~bC&QV78&j;R42!PKeP?QP7_@#o2%w#uBLO)DLz&b4j_)-3RX^^LtoR3`r>@KnEy#`7UVkIH(hl@d6UzG)p9q_zvCdbrxgSbPxz02S zl2M)}AeDB%Nc0KBp82nF25GLj)+!eAMng|Wk2##vyKY_&_g^bC$?rqLpw_r612aSS zrR&fo?ilnkZf-_BWKCgz_wiK$MlNdu-B<>6jbv_1JacOB}8gF}E6N8ar^6VRw0X=oJ7ETuij;I+EHD|i^?@acU7 zcKYM^j}o2R1rc1HKtaDjtOIHI0#?__y|*`WRx^NfeS=Ktyq4R6Xua=i93xSGFht%Y z@v_^$^UQT29ztdwNes?B+Cr=gWS9CSG#E&4Eeu@0Q=j`xUs0I?DXVsnHx3U1sESBA8az(6R-mhaXDQA7d5pK;g~fYwQF7x$izWczmPK#| z=eCg*)W@Ss`itt%6Mjf%(qDUsdIAe8>&sPHypgULw=;#A1WEvqn>xhRhGm?05!Tpz zG;@u&Z;LI`9)C$#b5pTOk%^DFkw*S#0(7_PDs}x3k4m zuEcnqpBtq1v;;G@P@Ke{yKPy{<$@s;T&$c@3?a*z+!O=wfO#3hbzK=b!};hn>%$>s=VAWCTz) z-UYZUqknZ?$<5C$*_$*1e83PZbWpC-C{W#h*P>0CVv@?RDd28r$1DH!A-0Moa2)-^ z7cEZ8Ka-%pSel|J@k>*ynf#nf5A=zFesavFPdfA1!Ler>siW55aelg6qKr#`z~bT- zd&(hVcFfX8&Z=`YCkk5N_wkf)fUQr`wdBm<807~D|nn``QlnV|pf_0Q3 z37P|ik(A!G>t(8(vDOZ6cwQG1q7RD5U{ERJb;oXxO<>wWEkmCe4`rs7dPeyB?tKjb zv-|^t<*J5Yp2%yBo-EOsVB0_r8o%5NJ;VLM|CTe1Oswo1U8Hkd;P%4b=llzEWsCwjG*sL4tj;oDsh<;(IZ$P+b z=D%4zlfjK$0+3mj2{V6R#1EY0V>Z|DS|Ag2qBZ}<&OCbt85eR9l`WQSC~9`S2O05R zr2FkAWIk|MDo5vGoSOH%-OISel<_tQUGO42xqBmkUbytjPYj^|^M?wsxI;x^l4)a_ zP$7$4)=R8R_)lxl~`0Nz8k5~Se>z`-Kj zyVVXQNVKP9Pfs|$`kMYaRC|=1({c3=Hpz*fbw^AW`timP+qKo(IcT><8^atj3gJq7 zcKw*Lk|htaRWH=)G*F)1&pn-*zigYXOd+XFNsh_&K2jK!pRI(T@MCg;!L z+CJnhy?iA)e(_4wKXU7_*TH{5vI%<=$l05zo4tqZdq_&2ms|-D2|ns}jDe5^6Oy-G z<2@LIK?@hHu*fSE-PD1Y-Yw5&J*GQAmra)`ExGfs0N-~OliCJkB9$5KhN2sLa&xQA9uYuNZmf5gB!~4F@P_twPbUsB5tmTJXLG2;-B+I=Y$eXniNM0HSg*qhN z6ir&V?Y~X>h&k0MecsTuH7LQ|5u*^waU8d!t$seaw-)KKU@XJT04mgb;L8 z?C~5ipl~AnNs2S^i5JTS(m3Gp7oWJfeb;^*1N!ujq{_F>val0DUO~ZZ2I>eM__U(| zFwCJ|zJ}A$uoGajDkyTmkw7dA+w2tm%+%UUmd6kb)2epxa^l{PA-6)bDF}CqRd0i~ zxZ*Kl5baCu4A9?URC0vc|Eow;#s#3abB-{Yb^JCV{kDkbYW+QqA#yK11XEbGRNy)* zB6`fL)oYb7I+r~!FTG`6aZq_^7o2R&9NQy(Cq)^h6K8+L@0@eB3Z=V{|N zDc#nPC>|_^!cJep_b?rkYE+gw_AVn!CGeP$voWy&?9d5@r>`zDmeq+Ojz70usvCe6wHu?z%C_R2 z41W_6rqxJcWe7;PtmfJGOh@1vlEDbMObhg|5JIoO-p`sfn@Q62~A&XgNcw>MrVvOz;2C&4+2 z5}5ia$muq*sY%PIx_34-=6DkjC;DpTVDVa(q~@p1>q@t4IlMLjv#Q&*M2;4!M|#u3 zQ7c2VuFP_KL9}wbu&LK63g*zcHyrP&{rO||k)s93<$GL;hfmO^=q6->w~WX*XvIy7*<{sYL0f0wwo<=Z z;5QAf^TtZKp+gU^TA(|}Fv*Y}v?GmvR>|(Kz)`Q6XAl`8+8{=JYVEc%z@+;r z*!UYt|LpG(LbplwDMJpkYU*{<_SHq)>PRkQ`hyJf=k5o= zyfkRjgIpF`(Rb@-&wR1CI4}u~kr6+;e`@K#=*}N` z3{VW7(`+$__9F!Kf9;GWY;#b)%)Qzx_2WyQW%Xw)?d`{E)4ZZz5L1P~3j3#?4!NZJ z>eiuCg?oR?p;1Gl&7Xj zqV}t7LFF;k8?+u`Pss&bOjf@icf+M>-^va**Ye+Vwqf0J)?&4Iu_eJs|3QlS2#4{= z)RHWxxYCr`fxQkW5ZS`bv?gNQ(Ny@?66KhW69V*@@r0(XJ>W((wvw*L1L?c=Qfrpq zx~bClhrb3qeWYWfMDIK?W%5+|#bJCZJeyUa*2mQR1F%;XGl8gAyoiz$eJf~qwsyou zPOlB(cq8(|F>V-JH6ytJR6b@hBcFH0F$hP-zBAhDP-iY=1zwyS2m?v>3R1pn6*|ZJ zT_R9-4dxX8wxItg)VY^m=NN&HL7@*>$IpjF`v}f=)$Pdd2wMgWw!al~YMOi_ZHI!& z2;OJ({k~rr6lH#Zq5=T{K>}fv2C1{iZLN&x0Re@h{{SKY{L0M8%*@En#HPy3%)+Rp z&n&7hCMzYRFQ%l=MDJm1bC4|&ODcvKd@cDA3QX@HDXE_hNz%z_5Y*-%WNFCw12*#g z*_*4i4>oaKcS#inUXr$Plu0=pvU6pVTI?f z$FciZzn8vqV&1Pkm{|V14P#-QPN&WJKy?P+R_~kBp$`4e*=l`-!@i#@0=gDuk3;X* z8Icrz4^L&06z7K&hj$Yhxz+mKfXC^Mudn(>ca_%$%nVMFc}jEegET`e%E4Z4BoPHGa=S7#s-Qn0_NkJ#SZifR(%ZJYKkO z>n@ug5(heQMcAP;*sw=RvQrthr)*-Oso3@Ko~M><@}8dlTwl2?Z?1s2*4gBJZ1;Iz za$hOl^t?eXWactg5^3povlNS>3rE)(V@k`=@%q?H@8N6zxKq~0tWlI?aCs3-H&6Cb ze~ZoWIS56QA%lUcD+abnfi}|K_?^4STmYL4GC0DP@ z%xn6duY^Rj8lRV_Us_vlD!yL50|GBTm7X`_hpw+zPD{t#_pTlC`>4kRZ?={{Pv7n; z5a@esdU}ix`DfoWNph3#o_M|%X1*SUdfvh?7OS>z)@wEe{XXulSHBNaUn+Bb4l61u z)bVwEXRJLlzg+{jIrM$LZeyLFq}VWm6C#n>!6}^LbXBWT=aZS{8G8JnzaL6VzTaRz zo&#NeEmeQt#q-|QJ=VFcU=Zn^^lO!fMleCPkm6`bPCu{fkGw2w;cl;+_SigTe_;8I zFX(qaA5}0+Vt#J0xPO27z5l32KK{D1Cg}OteP`%-*cy@EzRk)QnfYNh znynh6ZFwv->wF%aMtMPbRVxEhCawUnBKVK+T(rlpy#wTp! zKM3}=8&S!mRpdRXBB2c3DFCbFrnqkAc_nn#mu(RK#arDpAC8(roMq2mY+{|__-_s~ zGylyY>=#bdHItc=cVvGv`c2n#WF6F@H;|4B2yae*|8>I}q)VMt3j#}S7b3%J^dQ0ymZA zP#zWAk+Nv2JwmmgnAOp*wC^uj^%MHfdtVlDf=6_}N8jNf-J@$RI#QkX3#!Tkn>*Q0 z8Rg|4??H1T*)R46EAGJ?G`K#sWY`Ae8MNV9Ri^R7#m8C$ZSQ$9M9{Hl15% ze_C-oM$L`nd>%bg9u``s6N@FKbmQOw#luQ2j?;6FSEoEu`&X!mnf-5@;;+V837EzA zn6!r_H`A0m|9ooN@j5&aa}M-S&Wt5x&zZ7qH~kgkGk#FAziqKLp2OK%CEpd&>c7x( zq)7QPp^kvo4P#p`ejKVoXMU=gozelQ!r>EH=QAZlE00?M1u3}g40Gmajc)3!Ei zD%8Im&H?Oh;rD?1ruKaHy)Lhr%r;r3`gkV!!%3Ky*h3m0Y@*4S4bvyo3UzqEiUFf>w z+7$l_Jc}V5hdxs8_PE&<`L|IiR}s25Giak(Q}?n}-96wdUH;n*DP9wip}C#aO+$d* zL}@b4`7-ed>cnxFpfC!Aq8$KBNMV@9^jRGHUPhX`-I_3-4z$%-Q_Bw!lkZKPBd))h z6%P5t%D9DZ5vDG2dq)3fp>%-Cf$bITO6KBnOC-8r{I+PN`3g!!=)ybT`dZR@t#i6+ zHw1ti7}svJQrO;uxO|(KsCa;Bc~9kuY7c)tU`ra6k^tc=nQcp^Sz+?F8ztYM0W_v! z=(;ESy%wO{Ah?rX8P_j@+ATVeRX=KNfb-FP=MgXKP(`Y>A?v~Ke;`BD7HBma1o zxGlBf*Hdg;v6xG17p&e=Rp%trG4~)Z1HTBv<{c@pfB$s<{T2K<7A)rie(m|PlKaOV zD)Q@Nw1Wabxh3#5{=%;B`I@|)^E%=G`84YHBN>o<%|wRC`dvRvX#^X9W-d(j@LTEp zE6d;m$H@27HwI)WN~i-&%}s~#VJ$eycku-UEs%6%GMII3qQF)Y9(-xiwHZN?O`kRU zk7T@6?K0b(^(7-xW+nB}=wR3@%dwZW0-NzHb)Kg(UlUlhO;Q)VtEz53i*^kh2}d|i za=XphpfukX8)?SKlB~Z8L929#nd1S&HH&@=B|%$!LdhEa0oX5>&6KJo-^ND-zir^O#)<0+HBM8n&PcY?|6*{-`<|r@)~b zm&3-*E|*FzPY+Jzo`YnPSoP->A~qd9u6W6}orp2o1X7$PZ8w-))nduy&ZH{3^5UwZ z&<^?h9!J%eh)=|KrU+6J^&3;A&#l&po@Z6guvDxWoUEyC z{;jzqbCMmUh$60%PAV!3hFlNNl~QVuj_t!ZX*NF<8XBbRkY5JUPi>4DXww>2Dwzyj zD23hpFu%`Bx_raJ0*(h3PWLHGvU0E`SKvGs^$=l`&t#d6$&c^NhqbwD_%wO3&Ho`w zG}hSVwTlIX#;mX8n?m6$scg$k3}QHG%+2bC%*)A;kG2>t--= z35l~DkT&y{>hUZD@g(VSb>*M&sZlaxvIAl;y+w2zmwaCC96Ab-ls%xrTF}+uOiT&( zXRg3iK*A!Odj$o9T(Trqa2$Z$R0{h$FQ?QVLMj5<;t?GiY%aSTl3A{o;QWUisuclz z3D))(K_0P#byIA-D0tJb+Cb=zaKJ+anPo{uPzVLse;So+1I$BJw$I&~6HwS@*9t^- zFprKN?8U|V!j(HXb#yUWmu}a@2-8{<37PPoaRx?TNFEXD_h-)5=XnaVQCpEIW0rY{ z5m+MS%gMk7O;^wV_~fY!AB=jZtph!o{)B$PH5A`bs zn>{dH{P?*sMb3gxXd#5$HnuvaQlKl^t|UTOtv#75wVk>B8wI>7pn^^?+0a(Kz*6Wc zh96<-I3JmXn0o~oNj8OaVB~iMRwxS)8dPhck&J$1Z1@Ea^#)sV!VxK1%e0PCj=Q?` zZ>!qMa3yt%j+Mi@s7e)9P)WiVqJ1b z{hPMp4 zv_5Ra`!*=?`^+1;_o9fJl~HmtT<@iVBpvMbhpF^f62!tu)mM60*W)9H@vNPYnst8l zEDRE%xAQrWnpF}boUnJF;{vU08Yi$WJAHtx`+9|OL>?HSX%qI0^AzMkPiXcPlfou*C0d)om!pI# zfUIE@ZFxKxiLkp76v6f+!~?T_8}_vv^4^5^xAN)c97aQ(k!xk&NlU56pR#CvGyE<^~W*KV706I?Waa0%# z{==e_N#YA5DXEB~WTXUtL}`Pt82(47DI_LDSe|!o*=VV;; zF=ob-dU;54{wWUIMX~g>}Iby_R`xhWU zexxQ#nrClp(zSyt7&d109>CuwA7SR6{IzA%Gyl$I->*IgS_#v+5#&kFdu%ie+~BV@c?a4Sao*~pOCC%rL577l@HW$ z?63@`6G~Cr(?9H&`#Cd39QiUofkWFB7mv$#1LR|x%N9wgH|E-azE%FsV>6)K#IuEj zh~~lhRyAUAl6wQX(pQzeh{R9;Qxzfc@w+AOEuBfu zTl3iGoYH4FPfhUgpk4|GLy?IdWkj-vWWr&xJuxrdC6C}Yrmi*!_RrA0GjAhmlQoyV zABy1h@|@B3uJpA@D18@t$mWe%PvBXA3G3LRt8j%_2MRyL=<%)O8ecG2zI0AfumlQ1 z=noChs1`R=WCv+5E&vrM(wgV^r%y&1h=_p*{#R#o*ZRo*tm?hLV~LX~pv-9NclLm4C#)$z~3K>7Wxs=Rh8 zGKXK$xyW~dJ#G6qtURm*m8iv+OS+k3Q%Fe$lLeZNEeN$)o`E);0Gh;YVzn`DF)4y& zRvT1`!STN#PS?QHd)LE$gFbBzCItmRIzvXRL|`*!%W*K|wu6`cLp`c32jL2{4J4)u zF$U7KF^Z89kWOnUzzQw2T3TrkZ(-F_0~Y$zBK_!Kp@G&}i(y-W{uu=5E_Fq_cJ`8$ znWi}o_28uc2Kr~?xTi(4SwnS<5k@>i=bSF2G_8Vgt)9|y5I+peQos2>q7ag!kjc>P zz^PkJAF3tb2*C2hLo#1-@AI@sC;{tf$&=RWR}%?>%Wqfe3hG4-4=6ivr^n$Hjt})p zz7G$h{4V?@QPZ>v1_#H!Yhbyveuq!Rdl!rNUD?yq^iLoFAE7F8?Cr6+xZqvR4mHe& z%l$dnLS1K5HXO{Z!ja#Lm<6_kodZxZHNmF2K@YKGFUpzL{X3r>nJH}>{o7e;pJcviK7r9 z;ZBc8?)7#RaQT0T%nX&M$iX119u~ZK@s^7aZ#1nH$xH}sCVDFK)?sh_HEA#&*GSN7 zk-rvdFjktVQ3^XfCB?TGvkKsRhBpBx(0{0lNC&@bVPkQWQK`qJP*j{e)2AkU8Oie~ zG?kvfEbO!gEP1(1L`y|S}hzonotm`G3*CtDF^drWH?ie2elBVSzxHt*rTW99;&!)s4$AkMUntPL3A4JcScT}vo@dv|~iln2}gdH9p4Ts)NoCK); zklIy`qvlE|LQlc$>{EAjwq?u(z@|4zdH<=nQGQI}hRMjrSZin6nTdiw>LR_;w_&`3 zK0Lw6#V8Nj@DWluaa|KWzn(#Sq#$S#SH=Y_?;9ZG=xZ8-FAvkZ|95Mnpg7f;G2K4;5=ea7LMs*AQa4Becq*n73OxHOrta)o-NB-Z|D5;d}( zRM?7JVCAij5{2S=lM(`m6A*_vWlG}k`}d8&yYYN2IT?~nBb6q#SiPVfmyY8{Roo*X zQ~ao5r5X7$J-QyT(}`#^cFKrDhw?vq{gRKU0D#TDCG2Hye4Z4%J~d zkOHq|AL3_K1cvBb1f~ddW5F1ZD|o{jgY5dhNp?ud7DlF)t?nPZrOS{NX8+I}yPEQn zw>nd8zvKcCJ}?C>KlX_+HrAZDidL9A@l#`-(E!9!9}zf0ABY?a`7Mvvr(r~yMO0v% z$6mDS|CD&CR(9ekD?QVwQohkuU6@ca^i%_P91(&K<89TzC^+0E5`gtiKHysa za~c32=O(hYmL%xxLIQbIT!!NV0ZC$bQU?|Ung@!!UHXcAg8e^5xzkk!Bh#hZa48%T z|3oimghQ-$74=(9^YJi#@n)CGcbwAwK~$@L@JhpT{96DOHkUWE9}Au3snHM+Nmcx| zDkKUCm?X!}gk(nLJ6J%?9_?+{gOgfSgeXb%;$(aA?swfnR@sy+Y3Rjz#{?q4fR8|! z^kMiwW_WGn*a3{NV+Eu5dZFkx>&+21q!8E=bPj{1&A@>ngD^%- zH``I8C_v|F{fy64-(E!y$9mdTI0n|)j>ewKuuK7st zL$-*m21LrL;UPm{w13mDX={|!(*AeWVDEYlR}rpyxnPHBik}Y9J9Lq-GPZ8HIC#-1 ztFyqBtMM)c0dU#UAKbKiA_wVJV4W9A(bhTz8l~A7MYc3^QFXgfl)oN-K^^{sJq^d4 z7||M#ctC<+=81;|rTo~#p5h7WkJ-})dWzW!5VMp?6$g~Xn>vdYlRKC%y%vG>Tcxv( z3-`8%{{eP8q2LIC53Y~VJvI_1rf9y1MX_=T{#m+_-~#5r!DQYlBFaA4vD=;=uBRtdxT%~775A2pI)Huhu*}* z%@*zOg2(Z`dbO0)xsi{})NU>GE;s?A;k1b7#h$^49ObZx_Fc zYYc~DJ_#pg%8h;W@7knPfmH71w@ zt2Z}GgR(8VBiWnu7`7a^zzTeVDW^+?axbCo_#0L+mw?R@P8xEuz$_<_)_|hO z_N4Owc3>^BW3;q7$45OX&9S@_bGd1nL)h{ksPPqQDlVCqp4SiL4uf24{VHV@Yj){% zHfu*fimyJ92f${}JiEHQE-8zt#fR`ns>@zdE9uAJ!vskFoc~ilB*jg!Iv!}HWFZ4L zW%r^`$pYGnSgdnl5Y%Z-81ejQ5pHfwB>`u5v#z>DLDVlA-u?m6uC|WP08mI$Qg+}y zv|rY(MhFS zTG+a>dO%lBq?Mi?f>5#Zw3O?Ge8-Su~ikrb-oSUMi6lP)!BY^OheC{8YPjwG&(>nrXI{ zm{URSGvX|>?8svZ&lp5B9BYLwK@P`P1`p|g(8B(~8c@`u1J@kfg_Y%ZC$+8DcI{=t zm24)2ajqI=1JY`ugVEre9)^!L|0c|S^1DOidJ!*FG{>!+h>%}Ygf5(Q1u>CwoOn!# zD+%ip>D11hXb5z;AG@C?03)Og3OEeNM`BOdeaxjhxMQBPNhP_pj1{I`qlDP%j8G^m zovRp<*<)N4bcUG+K_v7AkH+&R~P2 zFd*nkFdehqnFo?}r`^fzYW|7xoT}5!GgYz(J$@(7Ale7wQCjfa5)>}_JdJd(^LGbV ziHrq$(jhY2H5T;d<4XaFIcNaC6l`$#kkhN@uVoSkC~y_HAKVh>Kaac2ZCJ#tIGCxa z8LbeP7<)`ueXqLFu!bfBp@*-W!%Rhds+i{~`{OmUW^QZcv;z8nVihj24j=K%6lWz^}{Bi@IUfm^Gj*Hv&` zzN-}Ij@;tReaa2x|7qiK*%m|COMz|72{gXw`8Lu|qOXPbIw(A4)6DEM&jPBz?+L3k zK`;`TXhgy^ih3P#QU=NnkR@*CIpsRQlBhY@72%C-NyKh|FGvSQkrZt;1Y1NLq{#dl zRBor0Qec@GAupjj{0$Jf*6o;J`MmDfA#vyj%7)Q-now>cF!?pa>nanB!Ziel8~eF_F& z&)d5Smlh^>s=WN~%}2MEk}vXsfF#L~ctk2g?Bom@ohF)Z&jCWFPkcN559*$s&ClcO z?t_-kkIid)x}J^hL;KB{-S?K#Ywx?g;|JUK6tCB148ZT+=NcaOH~aG3g=UYM)2-ja zJw194>sG+S5^kSnuAM*Q6N&S5GGF6ke`;kBDFt=qc_^IpUF;wV(Svhacc#3jAa`f? z(qwIUPK}t@enR+dY+cRVY-K)8KRiY@J{LR-d^{C0G~M1N!shq2CNYcNgj6OWw7^hp z3Fnr6<$Ia4`-STaGbpZ#V2R~#VO8*!aZoZ(kvl>b!ZOng z@Ze3O5J@5z*ok`!S-M~ZGgi?mUs4Eggk_l}Ukwqq`)OVG`QTiaE7ppc`fsl3O$$pm zoEwye-;`;jNkUW>>b+h<<)=j2e$mnt@wM zTn^w)>qKy@0awIYPwEii-XWKl=*MTi)>9^flO=Kb(#?-4p?iCy z^)K}=6`jm(G*weD9EtgMld@5QT-2b0w1dPIZ@JapyiU_9EE0%Kd3Y&M_uzU7Ab#ee z$Ht&%0g#gxhUYpNt&Y(2w{?jG;PZS;a7~F2P&27EllVUQGfwy2oN$(wv04d%IxU~n zPsBOB5^sH0a)ZeO!{cgvT$DQ~Bzv(>M1FqHA7EUg$8K;MUy@#r#F4T_jJ4|C>X9%S zjJ5L9ltwO8h-jJsCZ~w;7)JnBNJ*|VD5KCvOlKjZDwn2U%~BkTB7;vSH`6YVT-1WUQ{t+SJH4&q@}?Aq}O#?rq9 z=+cLtR_0AD|9;vqUcKy9jF#8Ww!cojN!7T>M37xHLjI-LnZtr}fJXvP)Mso=snVsB zG?Y;?g7$~H8|@+12dm&IKnp~01iWj3t~}6v@%*B3>i>_;9Sx-JQXHe%^$xBtth{rl z_#icqSxCzf0WAFFIx*CExGT1^tiJ9G&l=s=LCto9>L3eGM$=w3fYuYw8=t0TI6pTV znJGKS{;7@a(6@oO z;njOkm{d$n+4bk3?LqfTI-wA+P5C3RVb+-|X)W$K4)R?6CZPS0cj)Vz;^vt3bjKUM zrLpmb61n=o-cIy8>;%kbp%{1%Uu?0+w-@wXoGvr-2pDca8jX3&X)W!5Co}rmpKey- z$N=GM#vAb{1r9U6tBwTJae~M%TDC{GF=LFd8GFM^OpqF|4RkfJ(g$pH!{-FxE<@!I zDC_OfsKy^2Yle<7t=`m8KM$(%y-KsCKS#>Q_O3uI!a_>tb0crWqJ7silzxuwYF?$i z26P^~ws#3!KqUSg=YTmR3D6+CA+Fw>;0C!S)VLXzZH?IXi-eWH$s1h2IPN%-ihU#v z+Ds9Y0_FTCf|&Zv%c%!7AiUr%X&(y4G9!Flv`q9kskGf1YY{w|lTdESz893-+Q$bR zV?vufYL4Z509|urg9-545h7xf9D7n8X?{JGgbXG$*pePjyLCNE5{tYz;4y08>v~X# zA52)xKa~yH3*ZlpvMLsxRnsF#QhFIxrsX5;ymn4PgXJWfk!2*l2xMxf{8Ho!K1XK( zIkipDg%)y+@tVnUqA$uGiT5+KNmjdSa(`7SA+^zMDa3<9?u3I3QD|3mTzI5uZ$B%% z5ae71+j@;_>t_$yey0qF$D6ZmlYcT7p>5RKd*M6y@@=)F2S1Piqmt%Ug+ zYGr8QE)HJGObNu&?~PX=Qjv3W$`qrbDRC&)3O5;ny-fkgL>j|Ig|$>%_Pw#Xj*ROF z%*oq?4z(+-mDrC0&jU+L!E(jSDOo>~_$b$$;zK@M$SEt1>&024Cb#kBx0QOP8_)PF zYvjAOV3mNY(DXv*m3J5l8UctHFl;+`N+f_?7QlbQO7aJe*GyWdP+2`0hY&#XY@NRr zfA3JChoOMAcr7JWHMXhAZhIQy|3%Zi!$w>{-wMyg&cd*~gAP`%i5Py@>$Bd>f8N z+L7Gwo1#U_H%FL$00FNHniN}ety79D96H4D%tBM}3&IgVsKmgf0}4RIR4mtKO;`s4 zhx)j}NAnJ-*lH%wGU%Knw@%gRx9vuDPzM^nT~5+5bkHv5MrK zG|y9YMS}-9hQR|LgpjD#{D;Sbgg#Cf5e^`t!jc?sl_(}zE6FX=S0W-?pre>l)Q`+# z%6lrU!^7R7I-tcN6Gb*?__Ww_I+Cyperi3$yt`I%vMVr^gAHCj6!v{UGY}@GRl+X7 zSo}2#Fb>uhM5I!UlSc$nGuV#e+DhqQcCSxMv!IWS|N#5=A=7M1(((?b(yHk z;Il9lnG7tWEXoaW45HcdG=3A*&+6^#C>#89jhXpm`Z{uWGxL3jQ1QOQbs=sW?B<9e z{cN-c93pBYB!a6>`!<|}WO1e&lKCy~yvwqAP5X13f0eo775nANc!1@4g9O?Yl!MD) zPk9s#SL#>=8Ulq{e+tcQkD7vP9UvsululR1MG&qEug(6;PTaf1j>tHk1>bfG(u)uI z(@KW8g}^Kx;U=UXgD}jJ)_1Y^}>IgPbnJ$fPqlumj_mh>?;!92H2z?$Tb%>^s)6D=Gj#j^|Tq(pv!1N1J` z_z#V4-$ZvIIoY(gTpV~!Y5d=*ath_p^_z0(`rJclKK`I=cm4~@@)|N_)bNsp22qw9 z|K1v;3zMp4s#?pE#!f(M7i5c?xKFCH-X(;wut6>}e1zzxm`e$V*>_$*y(EPVEQHSN zpoj(`+PXvo7RabAae}5Lt9TQ8&0-FVBpnLRCu8l?!j)qmVE0LZBZ_Rzc;|7?DSe8?y_ar<{6?wYJmD+=9#(2}^N1mw@an zmAw|F2XT&qko@h78a35HS}V2WQ#F=*Y1kHV%(@G&)qq7{jag4L3pUVYBv9`4ffxu> z$gr+E3)IwkWpvRaM@+d#?%a#)%;W}i^oBJqMsfAd0%OR8=XF^=r_(w>I}GtTS#o)s zlkT-TvckuIVBlaU@6$HY!XCJnlR7h%{x=)wy>cDL+9h#9L!HCU=s@g-jrvJ&iY$fQND&Mv=m6b(SqVQ$T1M zA}R661e{7VWx~YXe*?j-xF$m}lG2EJ$4F)I7wpTD^AWc&fMgH zu+o1K_q%OK7WXT){ZC$j6Wun?imSl2B?BmG(ks`B%NoWn55$5X+UlG(U>lY_lra4l z6{N2yre7zo)Uud-O9%P2poTGNQgt_ADc6+#65y<3UxI8%XH}uO|6;3}xQ{g7Ls*cq z$Nbrjwy=ivv^JQ&Bv9JP?jzXo{)1E0LNT~C+Pn;r9-p7|>0RRXQGiTH`x74z5m7hB z*}*0~OPxBPFtDT$5W=PXL6fq_T2$Rutit|B+8210mf*?+FRBA7S9>JHlKh+sKIUc! zJ6H;}WjoJkQ=H7|RnnmXn@P0r|8+p~%sGDCHN9gL8nHW2c%+k(*FE5U+W9;nR}wUa znwSYTD#M&9jsJW#WuxKZm1VoK!RjVEj&)(51q4eGtY(-ZgRZCXOZor$ zV`eR{j%Cj^xN!!vf6(?-z7gaExF{hx%`kMjXamtW^$WMH{x2e$g`ae(m21>Ft94S0 zb98_@@m9;J*%&j3wn>DEc(JN*f)iT0(EyDK!p6JgpbYO#WM+h9z^0sYP65FyK@R9Z zV*JmadsTSr7A%f1fBe}a28~YC!6k|AGqBh8BqyNQkdU~O8=H-%g;NR`?!RNDe+P$E z*i?Y@cZX>nKKWYkWz@(Wq(-C)vGCxLDP`U-n}m$MpAmC?9#6js zKkgr7$69xLu{&aP;X^$pNApqnm9)fMU<*)0QydjoKU}A({@x1eNi|K=VTwc_*oF1- zd-QF6dbi|Jw*6rW_#>mwqzxzL%+&P zQQK_uoE*)*vL3F-7q*&~d5_`-pt$nZY*-<&nF=D}U_z=8Nsqz8A1lLE!?p>K5z_j4 zME4^_?5$LsN)Y7(*wJF(uN>sDpDC1MAy7nbji^J3B=a221whhQ!Izk9+D-O}KP~Z7%5}6%dy{1%qNdu+o@vJPDy--^Tns zk9?ay0%zC?$QxAUHTT*JIf3o)}|x0W!o}GdM}@ zv+R@J_kAg^Wok^$x)W5PAtaGWO87x&&O!1j6{NsJUTF6)&GJUHOH0Xxg-Ccu}a`5wgVc-4O&-y;K z-MI1eKKk~0DuP6CZ0r4Y0f!Z&Zh}}8LCU8GbK-A(FcOAx_b(u=l_gem0*`W!&!VTZ zo7OylA-Zp0*mJfX&%#o3@fDy0U3LsvGH6Vv#RFA0=%&3rNY@7>TYM;s<%5EBhG@It z{o$!!e^g)%42NH{gV&h%o}kls**jzuboZ+>wV`K!N+NzO@eIl%xu;b+Zv8)fc zgGpb;QxV#6o`(FCg=y1Hp-=l?m|lK9JM)eb{@V!`GTg>k16#_B5`XiJ1~ncfiI_I7 z;c*x5adz@w6Sa13_pG?IYI{@_g|e-nfe-z45~8qN7_2abv@4i!(o_0@&DgjYhEdrJ z8j~rrI z5}>M5z9(svU9w@(rW=9D%`{7GJa!n725KHJjznc+~+Z96^N)O6$V{zUIVRc}}^ zEQ;4{29g{!ccnispD^cctndgpOl7pimk2`Ji7bXQRIqq$>&_BaC*EhaTTRNAWUUBQ z3Ng%m5WGJjUJ&qR&%Q{dUnZm0EbiVwm%4ra=1LKZEmjz)H*@nDJ+M5=2I2vkb}5DY z=~dm@EyPS3-6{O-wq6xyKO1Bdsi;XW`k-g?#Xy;G=P+!0f9JIvD(iJ9JmW}$w_d|E zomZ_>_q7$_7er3Xy5l`kEAgKAYqoxyNhXlLQ)ZdlEq9ogD4oWkgLSWIDr+_Az}L^( za1!RBNMHblooQq)nmCFsY&|J-mST|9o(C)!d$;fddDPErpusBo%hBAbMtq{yfT7UE z@FN8vm-Nq2#(8-MKm7Rx{s~-;EqKYx3QYjB*W`I`F5eB|^XzAvBT4w-w+y+j+wD8B zO35J?(t*3))L+Wx)-_u(Mrvu8Ex$Q){4#00%`RUsZPj1}+bjIdt|r!|hnLwE(YF%a zo$BGwD?ZfUH%Bv$1WYdpssW^!dWtQ>L=7QtGP9G9Sin;;MDE_*{q&uy{?p~)?hnsZ z8ms12VNcpSHS%S>=S$|0tPbN*Ks_Um<)sMIko&OK0p4Cjs4w|s!yZKE;?L>s>hvP0 z9uE=!qQuHu&6C4e6`{4M?^0T%-+&{I6_8gum)hjIfivzt&YlEY*>tPmTU65 zcmThj*Sr(vFge5D!5PO2yS2BrfWg&EI1#WmzV__XVAaxS)SCp;e&afl)^Xf_Rf)GI z${gzQu(ln%`5wvBW2UI#BQ7DZAaxy%UTgF$;M&eK-3!#n~~YFCDb_{YSz6byFD!V zt1h?d(qLv&;oLT7ht=KJnZ}2Y=S}37>NlY_G`a~;mR_5{|G-@jZYQ*aH3rTERp3?o zMzaTXRQlWdhmKQjJUWdx*AXBy#5s52$2)VQRO76QIXtgC5lIlW zhAk$tfTE)Kd&(Z<_{Rkc9FIU<=U6aGVa0|Rewzi?I(W!SC7S7EAGIbf`VJrER+r=wFY#^VE0AOusup82M9yS`*`m2zKd)jwwk zTm`A1do3}PYCn+2moxBs8IneyZg+6<$6;ej%uRW1hI@O$oie;gH=fcfPu`fUm3yNE zLc+lfJ8mVcGH07|DwSwMN+K2`=fY!CIIv$JrWk@|74l`w&~z;Ug-pb(`pS=4vXD7*_fkSeuDF&zhnBsSSYG|bF!$~Uev$MB&CAbnaA*>dl zIV6l3M z2p1R}44A1Q$$lN^OF zGA#O3mFw(~u|kp$P!SN`yeZ zaRD~X70?K1Z|qO{XaQyx4Z#=jKK_kmJoy{LGZmK2y43L&iS8aC&D|rwl&-%d7Z2KY z!h6)V`tShJD+$ueOG5bA@fjlcJ?*P5hX%_D6E!@{wXt}?sFD|C`0!Vl3ceN|aPV;p zvMu8uLQkebX62~|{fR&+P{sx@4jiu<4_m7CO+ZrPM%Uo(>ClNiZLpbj@7 zvBlZjh@4lQ&lCw&WYAZ#-q)nQF~d?%YfFk@ccdhcX`s@lc`Q}3ky#8{9vppKH65&( z4ra7RgQwB7FRB?h4}2UY2J5Y4XCksm=%aQ>$>1>q1%?}-wwq(Y?g~r3>a?wj13gtb z&&h$7C3@6wJ5(LHuo;@!6e28=?4%E|wXIe3%9!>RR2v#NJh@pjtcpm&x7Vq=epAB@ zD+TN!g*Q3DRH{@1;UH&%`OA&V6~yF*!OlgR=U#b02V^0vO?=BUbF(TXp`h1XyqulZ z6at!02QCOIDjrpv4Y+&K5IOTC4-4+JqZq7?YIxK&oC8;6z%uXYPuy24pY#Z z1BAS*#4cgYi&N%?r|QuG(C{rdbs3RJig`#G2$-^4;D8qCr$Kh>s1?lZjue#;#RfvY zL%FXQpCl^Fd`NK@2Xp_R*st_>>^f?FZ+phfLeUS!3hFIvcnf6XLpE^LuQ*HFFSxUS zgt3f7sr3@e(2H0TFM&J|?FvJ6msa00Nc zu=R@HO*MOOiQ}&0JmaX4D{z_gIVS@p5E6}yR+~~C-v6wdN{{aM zAK%{GIyStk>^4x&dr$XDGASHO8^LclNqUm<1a0c{10Q;Q*q4Ai&5s^d)Ge{9vUoD) zexoHXW=6R5bbGCjH;TL13bOb1dw;GJrZb*oeex1s!Y>iOvs>cbc_I2(^>}E~-;`*2 ztHv_+S&0^%Z;v(irJv_Yb;lRuZDe(})>|^`du9eiL#Bg$vuv|n&4aBD1W%Xq7xZoz zl0F)ZVSarQ-qtBwJMn*K#$%84Rq}seefdOow~W;>;X49WRg(DdtvyUHpa?02tNFlP zn19U*Sn6>$1j5*2+Z z_Ze*G;!ozsqb-ZM>f+$10*$}0sw(r~sExz!sa`o}suaoHK;|z`Ye)DTC&VXV=dALl z@8K*llXxHRE9goCwP)P$+41Vx_8jXS(>HnM+vcwp{0+<4*c5F?+ClZ#5VgA!WSuWd zLefq+Cjd9fd~{pYgi_xO&06v?U*GXJ;k{3Lv7BUnR~j|sGjUCO7vhz`jn8xiy0K3k z^XcLB@B?Xqm6rcHWc`R41Xzk!>Y@K|1TA;+xntFtdH*&s5=V-?3~wRi6aMdiM7v?K zXum-%tfvEfq-d|NMZ4y_2%RhcfPT?m$CC34JD(?21NT-N5VfM>PP;Rfd2!hWY%?|H zVgC+uc}1Kt9Y^}1=|xPVx-KoKWd8q%qbAh8mj2+#N#NaCKEz@LIK&c?W6wT`O6)ZM~YVfIxg(T7H7Z0bB5UzPR`ogCjHpompotED!5Fg_D1}@HB@hP(2t6MR$J35Ez);6tt^t$MAKes$x zY`oz;tEr3Wq)zR}N4g{(D&7xp5>5*C>7U%s@L9Y2@Aua-QuSn01eP5;Pj?ruIaj#f zaq`T2zpoaHbZ=tHkSyq=NEH7|=ePu`!BPm~q7P?YvL-j>a0*Z+KC2g-gHQ-^I|bRY_p0%)iSutrGcYMYe zHK4{7Mn@1Y=t1K2X;n#?G-4Sa#`60Yt*pq!7RV&1vG7igh)sTx83sTB->q1B{hAaa zDZ+Tn*HvFxSD@b^UmYzADo?pkb3%bUk}`2Ho;wcB%~>1!u%sS_&%ugBmv;7HkR(cD zahHP@20;^tI$Nm=ozg1}VDR%QAw4_2RuMGhHdUzTY<_C5c7O+&uOIC>x0bqF_WXj> zJLm$6zvKu%KE<8HFhWj&&a;H@1<0f--lQNih`X{1mOxNLjjNcOAH!7Js|xVPsPR~0 zA{UhPHtP2V+byw*C>K^0$u!-fgpw%8N4QfB7ZTbaWPWA*n0x@PSRia_$yIFq_ErX} z#MNPo3MrOZr|XZAaOow->^k<{n?|o*(ZI$SZffH8h@dS!CzvN*JMK5+DY!rk+84{v zbTK|a8ORN3S=_3VW9d2$#WIjw*=o`roUfi$ZZo8ED!@+L>{|kx%w()madmwOredx! z15SSho0U;>Yvk4tF{;enlg!cp_g=Aa&pz74*L~5I>T~1Rbda-xbRc(dfr{S>Brj@w zw8may^gI(Syt|O!APsmybnu3Zw9;;6$X!Pgm1_Ma(Du+S2lbYL6d?3JWnIt(QWi8Yy5zNh<4$sUn+ZHi_+~q1+P9GfN_~d3BBr4)h zv<^YmJm`hemE}tI7&gkkKO((PySVL|+1xRmlc(fp-jfg=mOxutUjKz0MRJ5{90{p{ zXq34`W`M@b)po$O-zrSj-Zbnw_^ec>Zlmf%8Ik1!@7aNjAb8w@xY7}t8Fub1Is*llsEjaA<85sg8T3I2NeY>k+qyUB zJ{ak1l?tthb-w@(1#Mwj65Ep_XYKRZbkn}{7#4lZJq=Ieag_LL{YE*;aUBf?W#?oj ztW^(64Z|zLZSZ%vj+4}Y_AxYS*8!q66Y?@HgMSyq-&oHtpnrSVSeW z%mpLVdS)xEcrg-FfkK6qxh&!v2~BN4T^-x??7ic%l)JslApT`VK9W0PtK#4t zb}d2zM7W7*Gcc~EMHm_Ttw z3~}Skm>A1wBO*Vp{4sai=C4JUnEf!^6ciW~7{HJ*{?gl=wJl%X~Yso z+R@*x5w7l|o7EAjlMcC;doyD7pm$etzhAEROiCmW7G=s+_!rye3ZF?4TDUoMV)X&9 z#4kAGkM)*s*m79LB^s&4{`ZuEBUfr<%m!WI`fcZp$KM!TD7so|x2OqSg$5mpiIgsm zDt50w^kH2iD9XdSNZp7c6>5L3pV`ABkm$vtJhkrJ!&qtk&Z}u+%%h)fwrftqJ zr<2hgZs>C~|BObro!G%oGp7&TXW6Y$ZTmYUj?KRzP6gNpK4Pa4UH3d^_8D?^XE+J< z1*^aKfY#wq6s8SP1Aow63vQf$uxJ$Wq}D4a2j@rsIyM_k-Zja6dbPYdX#4}T9LlAF zP7yaf0mx4{+i;KLUR>YxT))*{llxY>aRi07y`T1d{%dAzNnHoAChsWLsn4KopHp$z zlO;W2cOmz=SY0~4RM`dD)wSLJ$wl7R8Ogek>NM|#tN&y<=AKGk8wI~i`y$Z{LQ@!t zu!fBAxzy#!XZiK*4b8%@(4U#^cEu%wLdcT=HW_2bm^~mA0>x^e0wbB|g3%Uf3CfOC zW=Sv+o+MDKyxdu+NVYMl+Z9gUV2MQi#m|0w65CfTMzdKT;|1-TM2=+@-l6=jGO=CW#WP#tSO5uYuiT=LshdA5BRUO^Bos=R zpA|a7)*<+dP*4(*X$F2l@K=xuWaKk%NAKysC8ofGJE`C!kzgXF*W7%;Jb8SXOMuqd zMECf;TUZb9CZfa79LKBgm#eCfx4&YsxJm4UBQN%{-;Op(j(;S^v;W0K$oGL})5(<- zbBrJ#t-KUR=p0djV*u4l8@*fRo{o*^0C@Md5;Ka`Hw-ERCzG!s1<>EKTktfO6Ff*F zD$JDm6WtUrKF>F)xt2`nB^*x_$P|sE{|yFOm`a(U6Rbl~7)gDS{S*}J5l2p{avgN4 z{)=4WZSSV&c!7ipBejPKjlhj5d*mxwq=jc8{y@)C9How2!iD&X_Jn2SE%If^LQ%dv z^5b%XITUc7*XK3}`)a+l%}^@XIxO%?@d5XbT)8F-=}_<>aAs&n5YE;jfaNWkq+J&p zMS-@SqEyA?lvgm|BpXsQCIAKwyQGb{@^nFnk2+*NSIJi{p3>pN^2Dt@mLAE+cZYln zm;QLtW{mm@6-kwW+K)f0yLtzAdU-5`pHZZg8X}R`mnfZ(S0KCWO_tW7h~Xtad{*Txd?R`d zsk^68@B9;!@xYU_(ntSMN#n_^j-bZsnC5h`Xw1cHo{V)=_K%UB$azB^iLi7(={!=k-L+G>86R}SR&lmE<}`K;YhVP-_teNHsx7jvTnn|CW+q=rFnZI9zs#?8pC8fVeS z%)fptHIT}OS_G?ykpZ7olT6D~+p8mtsl*nKI(#Y7O?bVm%iEWam~lI;cWHzTh;A+! zhTEES3kC=rEPUG^v_&n!T*A*#m_@0V4#j>Vcdkc0nP$5wMmn>rl~G1mh5z7Bus3yx^*`W`Fe>^oQa9_?N=JY3iM-ydbB z+U1`|a@x76>@3>X`CNzz!&kR|I>RM_t^aj~Ny!PjO#hZv(FbYmZx2=BFL}H6nOOZ` z+MB^(foCP(>qb%-A{#4_ka*(5ZdCG0(;VQ?39(LP#bfuGO*fW7*kGTd8J!{3DUv|O zIhR%vIWrQ+=OG)>Y^C2|wVGKtd^K7^*x{^gvv&|So8#neThHn87ngxUWniK?BAAj{ zBp;zFO$4U}40$C}jhvXNyh#v9fU*=lPi3_k^fcDKMgzHs$l z23BJ#t!d4jcyR_x`cnek-h9EGTA~R zyM~31i;n$vXz+R@+?91h$PFCZQ&^MVZeFLZA&YI5SaPjz*?=S@u4dcbbBl3fF9L>s z@$MCwb(|c)tk)c}=(?5$v}G-xZZPs@GknH`s>*7puI-fXRup*omj#7u)z%7bWrb{!+vALQI`x=fo-`Cpg$ zqkyG~AKP2^))E87&AADbpZxV&x_<1;2swpjbS+9=FGEc#KS`KKE@TV9EfXUi90MLa zaDbgFdrWE07*0%F1Qx9S6&0PF?S$F}}Wvn%iv#)xUsisly-TMDV{AX}o}?0y=3 zDF9OA0%T{`>&1OAEySit^mPF%?dZzv`i!4#Sw6%(5iQp4Jk9D%d zXCs%r>XOI~s929|o}eZ{$~1BHhvw=clePhWNio4*@~L8ye*I~}Mpkscz&Tj~xxf33 zs(saxzOc!O18;KWR`QE&`|fEtE;3E3svwASRSI&B$A@FmJ_qrI7txWs*z~LYWHQH; z%-$&8r|ZyaH8UF8=)(IX^Cv;wi6v4#?mD}4N+_Lt^gVDgO}J1-WoGb5hy!-4Om_Ww zfwF;2)!sn4@`oz3E@HKckTehr6qqSlK4r0xQ!zVyr#*+y%8y!#yfFa>8*wieqVmZMO>1OqMW?hsDf;Ci?|IgR z^JgIDVBH|B>3FXcRD@o*c)7Uo>#q?l3-S#So&0Y8JacIP%j^*#F&5|;QAFN5siRfV zX4h-3B5rgHS3NPimp^RftV(|@qo%TF6kGjFe|NhaMVZAljwT{Qxah(_v}z%2#UM(Z zr~jQ*eCDK-#JegCvnqdH8g-1OF?pCraDia&C3KmQGsOON&)2$kOxK2#ZELH#M!p!(}? zFW5hK$?cNP^^0j^_l`yiX@JF3Cz2V9#U|;?K)ertT=bQI2&oYf@DT2m-*Z4^hctP4 zS8x`>g3N^yT%Qw+{3LVh+@XGf#2S$R(l*f{zkivjB(YIyovTP?A_6@@h7-)PvT4OV zc`BKx;toB{=izdH) z27IAr+G*dqh(fClQx7UcW(HXhRBpLT{>u88oyk|S$x03p0<}bQ%?JsD#lYk zxHSrTlp;OD5Wtq6AXmt21W2yT3L1<)q(!U|b3z1Zr1B;Uq!(W#oAB!xGXQBN%gWaA z!<~kDmZP9Qg$7WhW5WZ;k}UYrv88o!(>^kvdHoo!69u`jQu?$Ruu@((R zo1(-(vd+axR4{R$Sy7m_{<_Z6$|%x=%TERx!#S#@p$|tNR@Md_6Qy_jU5TFD&fnvw zr~5UNXbresN34OOzVF{RKu<%RmfCcYe}o3eF%f5o9S%%yt|bE1f&m1&`8@8zqa@2}(S!#4fj8=n1FbWJK@7~Go@X1F{zhO;lxCxt{_v{8UZdO{4rv6t zVn$Kk3t9QY%0q?8qm1IzT=I2IYDlBNudrj-N&Kq!*E1|xWnIcU#3F@SfK(h%c>81G zz>Eb$36_Y_;EV>4jj$l>$!xy3PP?P|=47!^V8PmTTfP@IDP5A z^ab#d(UE=tbI3!DqhN4THn|TdEsYul|HniF|CtDy)z7ThQi1A@tw)P=BLrq-LN%Xm z6@(6$>KteO(SOuZr;2tg-DHPdqnjMtgRNh=bWyTjJ9 zxt3*@8_EM-B87Hpd&|)zA`VJ(nhrYXL1UFO6MZD=zQm+0_Qm&jrprXn*TMI#t}FEA z&>``jm!?q8N5;T%aM|fwSWMMGRlSI?FCHnnT*VQ!_Et-M%_FU#g1l6358)O;3E_hk zn}@F@S%>Kv$E>;o1$HDZsfkaH3Cw=!B?-zS2nAAoJR zREH8r38e^d6B>u|il1>zg(ag|4ki)_u#Yuvkq`Y$1+VU(c8Fs{BfXy71zCWt=)+y% zh-#@Wo-W;7LSYT!`@G(surh`H=<+)5Gph1Rsz2_zD{iyS>hh9S?fkPX`?JQ=k{KQ1 z_x$8^y3b)+b;%wn4Zq%Q9+>G$eNjszmt!KG_!L!LtnKFeiMZqIG0mr&XR77(z=iOG zK%`Whj1+Jip5UU9UFu{q*%91NmtP6V#G0z$A|V}nSu!rqRRSJkth`vPfS1pd7-Rm9T9VtA`KL+!!filP;SDH~@nC=*c+4 z(%H99S1i1K^W(vMgx;^DLp|}c(^r$+j?` zGRrZ%276bcu=~M4__D+JekppmQyv03+G*>$29xWSoRr(67P~abGVR_~{q}!$lfsQU&UOr>?=zA*q(c4(fpP z=1czr?HxDpIaCiY>o98C=GUwxC%KRL)AGr2Dade7Vj%cs(PN%Q{Ng`1>zB>w_vZ;_ zjpt_53>BKfqFm!Z?qsTKb1nqAOTWT#6Q>`?s~%$QcNre~Do)f`-`reO7Htn!6>usP z-1}YlCBy;qC4y0n42XKPcyadd;W}Nom?}32D=0C5VTV>2dr0v{g+$G4_&O5J!|7w) zd-TYxe+@hejrsw>CP7$<<6#|F(cR0V;Vc%NwPv-enp`61k4!?d0q+E;{cdp^Vvd8v zynr@=#AUAr;PEmLCRPh5$-7M6POr&wQCjcw%}-L)Rp+rKEVQzZM`2r0bY*_MxL`w| z&l)a2tJkf%;n8l)X|K)4n5Y3$Xtv`UM|SYeqn%yd)6v6uQfGEe z+oZaNY!(;Fn{vz~xaCxR*t&{e;9n)xB~w5z_bliPQnXX0ld}dTi`5AgRNW$dNN|wP zb=vKchr#J-Z)LyW$7%0RY?=#t@8pfm74Un3{C_dE=YiYw(fy|i2naE z@PGZ1`d<+I%bY)UZ0tWE_zCV|gzW)Qx$c%-w!*aH=?)dptBJ_&Q?u z@2W{sa*W(|5mS<|$GEgeW5-hx=59GDjga=#@3vyU<>BhQjXe9~?aux_hOli>(U?gB zzsEUqYOOA{shR)FZ43x+!k{n8r_c8_jL>)eBcHQub1ts<-`5XfNeP4ibM~i8Bdj0- zrMV(Mbh%_)?mLCx``hc9fdSu(@(|X+`Rny7;mN?U#U-P9yq1-F|VT|QTxS%tZ_3f&*5nBXLew}Oia1e4_@ zq){SBy_9kZSwdrv`-O!Yg3tZewrSsq}^$;-LT?&bI=g^Iv>LC-}yM-T-wGwzI?H9zd9uCL0ssS|6aY} z_+GGbrrOBiL(*1Zk6u3PQJ92c4WVtbfwONIVBYLFbBs}@ZT7=gTz3~jYr#}HGn!?Tp|MYER?!*HY)N^(PI>8kr$Zt-(W$7DhB@^)G>afBK@ zCJ`1+g|s=KO@iT$;r$=tB-s(PeTZL?1QIEqNP}DmfO{HAvzMSwwrc|1lhK;1bZ;1& zCauQN=9QqTBK%0l)=n#12h0Cu&FfXAnsH%h%=>54j7(v*aXz|jVwEMd@qcOY$?6pA zEz`x0P%w<~z4wSBw3e9^RvxNk53d`H?6#CUlg*%pj@$<%=4_eeDiGAuQ7Y35k)rZ; zf25AxjMKhHfajo{owefPr5DVmHLryGlc~%Y+cgy0;n;;IR-*u4S=pLq#T|S^%6WH| zlvae-qK)%A4&M1t{STmmo7<{6gqNhNa;n`r+WC%w@>1&q@9%%VTM|p5T?0XncB5W? zSz;;2707N;(zN7y_t`!6!+Fg{@>zD`GKKgQC=@YQ;4t&Bf&n+Apz@L-E;diQ$Sq~mh(R_vvdN#SVfo5(pjP$SJB z`9!gsDPJCZY5qq%yUME*h;KzS%`6jvNM(Z+Se3i4Aw4m2+V!8#X>^GbzcwZ0qio5; z5XV!PX%Z-ZUhPG-|EDuxjGqTR2Qj+kkW=iGYOh@v$1X4wl?<0wrv|5 z+qP}nwz;vfu{S!&?)zTfcg}VGJbz}MntQ75Lico6llslO5m(W6q@oUQ=zVf8->#Mt z19V4CZ9P)l5BNb|D=U0 zWvxUKI+NZ*wZ-3_p5Dn(qc{9#t9XoVjz=6An@8iBt?R#MOYwLVt?Uh*Wkqyj+axuXs?W zVsIgJXx8^{p+(qH?DeFh1tlcbwAJk424p1lZ|aS9tf+|%@D$+8t;pB)BK4_6#Y8s- z2tl7v(k=IH8hl<}RLn%}vahf;xa++tTNQ_6RgIUQ6<&N>nEfjr&4b1=+ibT{f)Z9+ zO@WD%3&Bz(}Q)cP)iWc4>uVqh$-`|ra!oAWc z(@V&DFw{%tMeESpTm^o0Xlvr-j~e6ry{tv{!<5eSVPT9gK7i{w;q_;>WgS}D*}cT= zUvyHlL*m+0A{iZpA;vLr#M*OB5ld^#t#6KV|IoGH7FcBBPe{pn;3JRljCZE-eVfI% z3VEz@>iVlZKrg%9A#V0^@JLN;I=8WawpBwVdkm%YS13hB)9s}pu5KSpvR+kwq>N!iww~~tC{kRN}#9* zoPW*dQM#TTiCaXys)rmLCPRD`*z}v*AfdD(u(LnTt(J>pG>thy&|0R$D9{ul{WQkE z+5kF9#k!KI>g#fUYaG!yjLK~9EQ2OtE-Dg9V3lr;J^NJJKkGakM?RPtx{}n^#rVHU^_JUG`xf{bs)lr|zT0`yMS?gBN zO1E5S1a`xtaiX+Ih9I_CBDAYi8%LkCL-X+K!rv$fg2-Yyc~uP3WmgOEi#)nYjn_Hx z`ulHp=2Z+;D#jiG>_yYHi?x(T4(V3}j@-nDXWSo$gVrPn2pp{h6mj^}bf(yvHMW_7 z;Bt~?@-N7(|7ia}oLE-cIvN=WVPS+VkO(Z3)7Uc)RTHJsHvjOY_A)h9LL}m}5!+}I zapknqbJIr3Xy3aJ3Afb0;#KunMcHIM0=Hya6huHs6xvM{6TBsj3saQ7OcHEs-ubgi znVJLsBIevRw*%i0&1t(^OUo?#FLZVJS<(?d;aTaVK8(ForIRUFXSDp0kwn7n{^By6vj!5Bt(1W`9D!u{49P!h5mtR;D7+p?>X$`vI(wEacTSdD--MBsjU zB?4lV?G@Mn5TPws(odyd*e>-&cp3M!p^6>)C>o;eYXW~$w1`>BvYtx;2(y1dI8zgj zq}W%{W*?SC*#dNUcTYr)*(l_gpfJ(%uRGDU2y>Jjf^k3+3dc(u0&g>Th-E@tQ}G8` z{wIhNdG1jQ_}65J0Sfzp>Vp1a+0&_=;4#7%;L!Mb)JE(#uL{2zbCLi|~Vh+mFG zi`>e)$(UkI4Ez>AjhLo8FY)5}rJL$rG`UvsHa>_O(-lq6S?3vL`Ot`WE%ou}v#%&v zQOu3%xGClp|I9-FU_>=Rd}fXFmn`FY7_XRP#c1|Xan9*2Lxf1A@S}S z%4=utUxphNYm~(-<)>DpBB#6|7s3+<)(8%$3*A#^(f=YfP9d^iuAyICJNa@BABmuf zN$@D*Teosq%iQx{@gM<{$JjuXiN$x=!w?Xe>{ma2w@r=Kq55=vDTc@g?0e?v9s^gaad{sAWGq@* zK0I9Bg*EE8*wTMoS__eA1a_#4l7>hYJk}k7!o8pxt1xa>%TttGLT=& zPJAR@3CSSG6$@n;EUpw1+CayAk$B?w`a=7@8@V zpov>zxb{E0F5&tr>NHUcuGQbkSf&{D1Xe5+sZ3YkN-X()s+nzm{n?{PMv&!BTh3Ji zUXy%2mjeVCK!V<3j5N9N@NbSHGZC|Fc7~B{5&Nhcq`XKPNlQ0{wgxHP`cGZJFiS&g z7aA}_~$`%3Rv34^+MSpQ_7k5MD5#XRHSGhPT64dm3vwW0$*YrGn?)6 z522_|^uPFG&M}`kI**juw;&nWkdqi_Ge&iV$_fr-UzISm`>zLpg)@NFZSJ>Y8Q_H? z2yMZv#z^Rl0|xq3vRg%yFd4wLrYINg&i3J!2o(Y*n_H-!-5ur{gUqJBH3g09{Y|6F zGpdpjX*X9uf@Yaq6~&o^$l!~9`5~|s1J!@sS}1^AAkPTOSCPc1YyAGKvpd-=;Z!U_It3^*P)ILrBn%P9w( z(}(5g-XoCZ3tv%wM(kF)2bHO2jjr2=YqsIwbDC0a1+n89%Tydz>0JS9fml2~2(1~C z)wH+P?)Q?($DOm=8$X0({spY}t;`w^=wpAcw`Gr1p z;>b_}ran5sE8S!(#$#r+VgV=&TY2F%$rqQ5)~#n;pd{a@pd{$DL(;WIDO9b`9o4=; zA`)u){ddOYFOKCPo6opdN&L~TRPtLDtRue$B8l0|MyzFDW>N*1ABeV^)STa+yKcZAvhO;8HyGAc}q;%w69QSUK>vHVwxLm>nU4DmF= zC^i}8B^_d)Q&}%LC#8wU(S4Bft??eNZRZJtKE@Mhuh1axvA)o`o7E#E?IKMOGP!I$ zL}~6@%=vGHErVWxm6It}3Gx@en;*1^1wyM{=uTlVYA$_Y{_s;USGb<_=U-A@C2|@O zE;G7KDZ`+w)ut{6qauc&3v+U|%UBGTuEB(iH5 zNnekA;}7=yYcVLJo7T~H1&7Uj!q7B{KUzYWes99c=GktJK-@{kphlA~{g+=43!QQ* z$%@C7qY;*EvB;qmb`QuVWeJjT`aJdKCF7Do7vmVxJ--k=F-n<6!g@3wUXV`!o`Xi% z;*A~WZnMQ~5y_@5J$S-1_=`@7k?@gSQCrOR<9^qP&}@;V=Yp)@X#JTl-^u2IrrL0! zl6s~4cOYn3${27cwi%#C){73p^!a@GikQo|Y?|S^4)4%wp*;h(p~P)?(f=q4*c6=m z=WGG(FcG^zFFd&C*t0zT*fQv0oQW?Ub{7Wk5HoZZ5k(SR-fYe|2OfoEJNs$M$#(Ze z$0>0{s7VSiL*!Ovh5XU1@EGD*W<8_BnaCHnvQ?SqzfcTBo=#KQs3{1={FH{HNhO+0 zHOxdYmGJJSGd$KjpjAQL4P{6$BHARR)9e?D!X;xbbg93~CZvRvZ@BgGT7C`>KFJ#A zcgsM;g^&EX4xkocl^+^=D7gwT7l#P8VDd2Q;R^~b2QN2GC+I<}lw#z*>1=oR6=}(G z?x;owlj$@5@pn*aAT3U)1K(4RkqDtk#8JSf3i87tv6+NCCH-L+exDSyPvS7HKwUFv z&0yin_yKK1so2m+Ma_srX*TJ;(|9yIezBPOqEtZ0Y*4K%)`CRTuK@9GidatMAuVI4 zk7E_~69tcQKy2)2zG~)@dbDjegt9ih?B?_1*3a=J?31r zPjDOdzqH0V8uPOUuQ!&F?VOcXRzy)gh_aO2|4|8rba1N~r5=1H7Z_2b(c zzeS($=SgW)mBAR36WcXgp9KEVHS8By(;mT0Tx%z2Yq)J5NKG%!3M@!5pSI#DH0<=i z|2Z4*sS&S3O8#3jLSiBcTWvZ4vKFM!8ds7i)ctS$cci~dM#6)ID%>MfLAy{^5s>97 zc|s*?gslT~hMkIlI_VmYrCs8yydf5~i=r=px`#uIw&(NcmF{A|!tT`LlZzNgo`QwE z$reh?TpSzFwXU=DYY>w1wlDKHJw}9m`yA178a43;lYCR?DOk z$LBM7RFn{%MrMw7anBP*^e=gSR6c zxCCwV4Cu`kSQaMSY`I_bb=^c}xogd{Scj60kN`;n)6|3imxLL@V3P|eIWBPL*Bw}8 zOeezQr2>RMIZ4`(@-f#q8wJ4f+-L0`Xdypu2R1QR8Xq|bn|m3dzxC_= zW8YVM?79pc36;+SuB7d=K+tY()V}bEy%3M(-R~wIsBn`}ka?qU`tf)1?w*u~l`9!c1x4^k>s67o{@P@u zDqjikQfdv_>N}M_o7L!0TKb~ztgrDy2^mgOQp-tY>T@YXP=Oi@UaiMdffq!63}C|N zP!VR)FdqdBkqSehq!~Tud2-q0NBnBh@PZ;b=bLzLUBzKa;^}f*zw>((B^MOJsnT&TL%5SW|C%m zKk`z#0CJr=^Tu);ZA9#0I=_#+8_vqAYP(B%SU!3JAToWE{VXDlAp}Td&`m9u*a_jJtPc> zB|85>Lcz~F=mgS7XstWn9W((foC=TOBACsXy8X7B12WVw9ON^Xf*H*yd{^U5mp2ZY zss>3QMosRHqp;80>OVyCUo7`waiai>QSr&h!XzpOIVyFHv!Oxv zMEB{lJ~7`q-UQirPb^is3YWHBbh@5yw}P%8IJ zi>Uz9+zWo~sGdaDUY2h%=HNu1V9#t}bc_z0m}xj4{0VvQEq=dJJFs8(@mRF}n84#P zMQh4V-XQCyk1bf$G@f~X^6!*+ecE?@oO)hv-?QoF=~_2yI{1C(nLc(a<6Zm9>*e?C ztetrJ-QcWfb;`+cV)G_H;dSX-wN;n<=XbNl#hZ4W-`d2k&8VS9n2&-1RxH*?f$)yA zV$47R@RBALziyZAxevG6#S-MP&_O?TjRa_N_;x`KEk&}?cyMq8P`WyD>($XKg`SPG zw;XSoAGr^A#`mKSAEqngcr|T(^iw<30i7Dio_v7qSj+}>(!ILd)wRL`FsqVw2(eSUgPp- zgE!0(Lpvg6)JQ>Y<|brw<8klyfMw~ihudt|&DCeNlq(v4sW%9zXYbk_myef+YVXIs zgP8Y=>1rPnZ?Xok8?EYLx{r^w5@%?qFd9xljdme`h@XB1N3$yzaB&ypjt9k;Tl_i4 zw$u!sM6`4{KIS=<8>;Gs?NOH^!gKkT{< zt-5xW=7YemNy-v~+rb`yf?oQwrRUIo&BxE**1HJ&0Ytp~R!*Fg6>S1&14e@NBs^B0PS>95&S30kvxCY>->Oj^Iq|(u71di=>qM-weTRJm1_! z3~A9#SAxE#s)fd&Qs(sv`Knt8-sPXD%B1qB8ARc0;cwA=r)rSfAb0p&zkbvpnLhfq z=6=@|KgWP>Aqi>b3!d4N04ZgXV`ECkrSaO0ysMfG=*_qTz=EyF$IC< z%4}72k@uJ$pH-`BAdQUe6UodQ{>_e-c~wk#In*I~1uz>pO-%wxuUqWh z_roHW{swJZ@INdtpPAGKxMktCUA0&uT<_r+47b(#hs8KS0So!PQ4r9)Z5%aF%StcEz}Wlki}uM{vht=vt&At?))Iq$bf zdGI784(M^@bv1XV#!QmRP!TzDEpU?Mmt5yLVR{8SfSQ}?>W9J{>mpbOmljIM-l5N<*%(ROse1Df&Grjlw2u7q-RUxeROwPKf3RefccS| zM%uzhsH+&;xo$%iCvwSc=%-!Bdj=YH^yHvbt@$Gs%3?Bet@8a*27d}KV5TtV@PRrB zcTV7Y9!0W+g2)D{noV8FS4b?r!x@^~%!bTD)KJhm#OxKF1bqZqLy0sX;vSU%bf^OY=z3w!k25kp$W?5PvbpDdo) zuqlI_)k7a>LHl<9ofU9RXYC@S|5+!4WVfl9G!^=`1P1^hp9laz^#5NcBdw?)BdjAV zCm{51sm!^SngbCFymxWfhi)GfH~H*$c}Ri5C>V{Nx<&}mYk`vqOl+>F?We~(cDr3e zFEOsVNmN-4f?5-I<~OfDMT>FnJTJS|>HKHW^jUYJ{nODS3_Rw6xmeHdSATBvFRR_f zaJ=jucEGZ|0%XgXV2v?7&!*q+q|O$Pr|B;+*l;30tUo_no!y{Vc-E=3ZEGx4{@c**-<;xU~?s^@)MI-<*#G_X?-9*nK!d!m<;< z9SOYPO26Mu^G1Id4(DIrL(HmY>$(e2_z}(QU+yft1_s4PM{gIYS58~Mn%S_TPrx*v zdN4aPr+a%dW5LOo)OYb#HjqxJhj)ZwUx#qaaiSw9*eX*UMuNLET~tic;Iwm1XD@n- zs1lY{fpd}UCTwT(a=D$=92LI|YjB@wW;GY-FnqTchxwm=`YatoY|{MImB8s}o_7-4UjInoD){fae)I*7+aZi&4fj(e zy3y)n<0>9Iy*qC!aPM3%RGJ46f@{^@C!Heaw5|qcwdt0d9o}|!NxLB|%cP{Q^o$Pj08{OiL50NdN7~@whv!O1OhW_` z^Mba6Kw+055xi}u2pRbo(IOU*KoW*0#>unf$6} zo>AI7ed%9CtCS6Db_Xh4mP=U~roG1A72E5VHBMgY?qw}I?J_=(-5V2zt zG!d}0prt#YfS#q%S2~5NtKfyOQ+#w1d^O&*0({Rh;->j(8h(IM5=B5u2$X=rQEH2a zL)YUfL3R*?Dhiy+Lk}pgfb)oe8i2^)Tg6226CDC8Nvq-G3k|73XUqo_G1-1^polV+ zh>Wb9%p2;Pqb=1dj1X$+3_*fX?L~t3y9hJQ0fpj=1AymS3FvH|0*(`pbh{kQ5y=}` z=f$OKyWfiy3$a9!Ss&{`_F*&H7AZDlu+=k5hK@i{$Py33CV=J7kciFO#P8215KWF( z48q?Sw3H+UHl(WB2DqBW+|7tAhvNGIqi!5_693!uqkOPx*1Hs< z5xoH63ZNC+_t|n3c?Gixyv99Pj5D<(M$mwIM`t4tgvc7-VEM-(hg_55V$#>r+R2H| zQpF0=e9?6B$2~x`6AX02y2I&f#O$5EEYN_UA(A2xqZ*VWE*G9q#vaxJtB$dgN13Dw zo}`yYD3Vyg2ZXXHhUJS;&|$U!2sP+L3Um}53JqEn{JA++s!kt|olo;{T>$FAFyB4()e@BiiKqzW2#1D}0#Ki-n6QCZfPKpn*Y{>d{m1*6BKAB0 zmZfIaWK4%2lO^9w=umk(Fzl5dHDUR9_qinZGFO$QYHT-Y#yv-!o?{BSK6rQs=UfBVd;=&m!I?gsnqii#uLo zUT4{Cs>F3=>OyVbJ*B9zx$t8;nhQk}qrRLqBUNEIGfH^Br13$RZ~zONB%d-L@B}=P z(*-IPcoSivvZ;}&X9UabAR)=EEkLa+NI5T=3sA>LiF^h0G-G0(6~IBSsj0FXqXMO} zs4+}Jp6n@gp%1cb7*N5KePZ5RqGJ}-J_z@t(l)ADE(l_r`MItZN^~?uy^CyEKw>I} z#Pv-&qlBF|lW*3+q*QLpZrRI?k&6=dhYeZ;Vy>_Uce-Ss?#(3>&1QSx1Vv|UDJ_mM zfkPE72&tRlH`D>ye7;;gCqMWa0KT9wDoN-;2G*Iv1Z>41T9im#NVB;Qgb0cpF|H6@ zMqo298JQD2sl;7+@deF7dTMx88njpkrA{_UcH-037F|koK+Y4IL6`(WBf>oZiEmpI zNJNG5C7->e5<;|5KR42dFZ9j+XdP`ypq1yNhNZ_yrb3;GC#g8N65~>hsQf&j!%Gx| z5E?ZXu{dxs`nLXAKekT)8bF@`j_Q40LXNqD93O=XoGOf5SmJ{`2N_J&{tXVI? zY-mj+=02mJraB~rOpMGVWk^ecO%5^z)eokGyx$#`r3fQFp4v?#SNTsJma#jc5|^fB zNWp68ndL~7pa(fs;J?WYw;`r6e&@i;zWsEc)=eb8?`56|O^6)C;FRO`b#D%Dsa1T< z<_iQqrPMJ#72Y8j@o0wQEo5U|EbRZ?KfOqT6qyv(J7faKMeY|62{fQL;$+^J*mNbs zZEZKXT$tbmfzhVO>P^7{_KFv+6DA3O_V>5=E~<#rF2#zal@r0PFgGey5V7AXSy=B-yJsiDCM1zjKqYm zbER`jc0Y1qp`9QDPy<2sI)8a4&tavX&grpk9h}C+`|%T?h^Z^6_7Cg2qw)(QsB!{{ zE5gGo{17G5TGQq^iD^?b)j#sl0@R|UZ>)#X8cX>lo{+qug!SVjQrNL{1X*6Xu~t)y zG1fIwZ%vCzm6MPXcGnU|aBeZyphVZfIA7@rA~7De^vB2Wj|0aO9Zb4TnZO}=cLM~i zHILld#Wuy}9jq0c_YzU@gTr?cY*QBm)!>tF^7iidgFu%=U`g9N-Z)jg2R1fW4O8N3 zX2d%rAT_;6rz0A^da%0lPRrD^|}TV zZGpAwk{l2Y0!fuRhQwZOmL}x1%Zxja$x#T>B4X4^lE^d5N?r3IP@>2c-bMcOD3+H8 z8OEke{1uQj*HDCxr;qe!lR>%+Dc#?$)rs^Unx)j=IC}*G2OQ|hznEhG-8Mb&d7JyV z7U_^0&=ib%=1c=1IvOTK5gp(v*N}L%`B-m@W@T$a5zF8ceBWyrOW)o zY~}rl83k`@fZd{@8#h0p2&JcGhMwE2`Swe0tpV&1*Sd5adXV6Ct6%>WG8}W^96?k3 zZ(oUx)^@s$^lg)Su7c|KF0DM&6V1Cd*+}$j+MtwFs=&3~jJ(Z3;YaNLY@FEZkf*w# zrG@UMqI;t*==_s(`Yr~4$Er#&hQi87v6{x#6Kd5I34-2@LFJulk6ebrOpFlsIdf4Hb2J7$*-+{omG?P zU~+T5WF)>U!Y#wO%i(Pa!eFn924yPC6Mm4rnJ%JtqAN7Az{3f~tbKM0Kjvr8w6$|R ze!KugJ10~zci`(Zm*cvEh%i|7k(armwQP`}Rb(3akXnKAW zF^AXq;7C*~aR8NU7Q*;$=~v{ilZQrpmol*gNSu3N&?DH^2w(Es5vVC%wacK{6yV>Uo6REY9BNnAL+6ekxZ2r4(zzCChgb7jHtb3LbJ z0Bb>0)$rki)K+S*{M3!LN!uc%1{{dAf3PP&haCVrTs^mXdCm?F9HO~tq3F66TN%GI z4bxrauh|^l%IeiLm@|tg{WH>a)sY*%1AnuW22difk6@tTH!O4-*mvvu;L5MT=p;Hd z8EM5)V0>5g$6~v|RT{Tk&hVE`o z&p4+7(luQYoJ6erjh`ngrUwb$U-(2PW zpJ@T?&uM|*S0)*{gx~;TcLD&o|KDi=dEu`)fqyds6Pd$R)WYyWk7BPt#z5ggH=ud} zXiyQhh?cTy9Uf2JNBe{6<5WQxx%~JOg{5prnTZ$}7|%}%TRwkAy|$vbbiAIPO=P%p z@Z{ju*?26nAK`dCK0?7Z-ERYFzF#fGKW^SWz5R0Ds&^52cE5Y+dbv7-yYM)_y&TF! zlX&@a%f-8HlECoTd7ajInS1H)@zfRkC;0L+J)YmkzK@bUb~0RezUX09Cq7(zo$kCe zNoBbdPY-MRTm-&6ZTUPb8oXX1!FgWYFY9nW9Di=hc@TTqo@L9vzn(SGaaW_d-v;9S zSa~|c^EUT*Pv^?^VHh*%et#-{v+?0R#$G(^bh|s4etFt&y;f?!-9gj2{l;D9^Jc@b zRsC`8vgP$S;_?tXefe2$O>yv+P2>+*z79Mr!ex7Db#3vyoc4k}32(S;?PWgmF1Wc*DR!X-tJ2> zGVN}2MAMOULndCH5BKHS8{GF(Pp7vw7Y*0#V8a=Wm5tWlrJ7qy*OP9^e~EQ1W?0gB zbK7p^`?xv2oc!>T@9L8ZoGf5#^pboTZg79R7X7#}@OhtpvB}XA8FDrByg#m|>w0~~>h@UQ zdMESozCd%~$;R_$^mbdg{C0&A?Rjz_n*H`V<@!Eu!}GeUz_W7x+>F~8U9$D2YD@ej?TKEFkn`vY?OQg_$4n~>scuZvY3+}jbAy>T0G*}X&?p31!_>?3R5n|88J z;_8{;+x}UdO1#L2d!p>F_c;fdD(vIpkIAi%$B#SSr;01Jcl)~FyZ&bGqr+kE#|#}G znrZKMwT~h%m=z!4(`>*Vf6p8@(!@Wgo>}SPwN|B(O={WdSc@WkW0#w+yu2Swuva_H z9m3UDlWzw*o}?75tj(#<@!=$&-DmhzA)H{3ifG@Pf_<*}pUpk*i$yna4|L-3e3AsY zZ|<0;-)|ail0`xi4OdU+q=zeVXE2B*Bx6LUj?r7bgPg1(ksA(%fY?Nr`eQnDr zGgn1(+Ontl_H?UOFjAZs#wHxh-6p33vN+}|4OO5VmuGulA@C|g)riX$pIg?07)s9ASYKp+$4F)F;Y-R1`9vhReSNS(he3O=MXjFDIg zOnf}~YKN5@lGao>gqx*Jx|lRR66p)RAoFqNM4^_fUSY4fF=4)VHHYp0;`l2l@ZB} zncO&{)odJqny-7Tl$uP2SdH6{LkYPyHdw2kGF z^n)lIN+L@}UQJ4?*^!7IhoIWiu z`+F)o&SiZO`MPyzty2eV5tnWIubTMTbZPQYxek=)W+YaXDfzp6RHVYIVxdpQ{goVh z1GWhSOss&*L0OjKe>p$e=F9G?W4)%G}^RoBKl zq8(CU1MY$(Gmi@zssZ|AE?^Kdi@{`YM*6YVtuZV>Rq(b3stqjK&QLx&E)`EN3R6Ar zfBD&v$U{?;3ha-JD*Mf@1WCyS$Bk`&AE?^X507{lwaT}edSWjIfRYcYb6;4FQ~aF- zvYwTK=A|N~ji|N0%Kc*}Am|acr6t&T^U$ivfXWu^W**~F!Mt-#nc7EidMYqZni6%} z+(1d#{n4sSg7EQ5mS>ceyyALfbu@o-RTf3k#X0!aKBn2BP|N{=0Si2frR&GCpC1T{ zUCe@5OV+cXZq0xw#x_Y2&OHwkdJbc0*WSfTn%-`=WmDB0`S*`WA&Pubp}w@_b*?h-8x zF}%d8&loM;qMNUZ8NBge3RJc-Zph!@4|!I`f3RsCL!%*#2=({VEL(;uSmi4*)rT3c zzh9m0QoUM}<3xjXWgFw3%?X}>dG^{bBYAOm?Vp>kyl0Tj0Gy3I~(cyBe z^MwOZWQ~?&g73Y8lZFM=Z>pDWpeW8GuW0hiiOy^zH{vS>=9%OeWE0KNvWKqsBq}SA zavieZbBUPL$HFV9qNgLYt1X{%mOPLHslYm_%l3L4r_4wkuMvn)w>q)-3fM|pm;LN` zeu(%}l>-@-Aa$La;6{Xi6YH2c$9LOZ>n_s3)I68F45D{AUuh zU+=rtM_rck`M0t}pmV@7{}vE`avtVWCO_qa^5CM10{?Ud%^(Jftq=dhsZ#azW5Q;^ zuuE$B*|myIX!p|9l%AbNF0d-@RwHBc;D^E>{nRva{?PWvY*YBW^i(3%H0<4YIHvvs>r%Pv3J=3-@)uX1$1I~AV-RfHkj~36oAU8Z?`5mN$ zngxPd7GK_F)~?sIcn(7NaQnm3s>$^p^AFM ztCb$^FvI=qt~l|LyF?AMC zVN{R;#7e9~16c+mQNNAwCOgICL!XrW`VwXbWAMoyX*rzms9rt<(PAR?(rq(@EFcx% z(pG-h4h%-UKFUGvKoOLxkkG?2O!c_(-A}YH+ovgx-`AEJd=-j$Y0aE+82Ad}{9;(I zWH+}qE8D565=gY_=^^u-an*7J6b!(JXQoJFh!mik!w9RwskUzK(pqcsT1qLHom^-fFO=5C z#1LW+R3IX3%b9UQ51y&#bdR(IUJjZNThVIrW);navbU_B%2x zgmUi?Zu_)G_Rn#CS}~PE0-j(+L>(v=x^CcEE2*;`WwRx|kXd=sNkXsuzR{Q*rTHNq zuqsSWz5;%y^pKyfoni)Y{$!^d41cgRi2QW^Rxw~I!^A4&hwZE-vPwz19!z6u^^$GU zfRmAaw>MQV$D@ODs-JD5dbDy{c2q=VUiB%|Lfk26Mr+T+I04Y3KjTy{} zirmEl#eW-Vp36a0VVmM<;>2qzS#i#REPy0&c&buHRUuwC#W`LlnU>SKNYs?6q4CXw zhw)Gl-c>47PJ-ruPFf*ZXQy=2R*48{7D@O5i3IH;BeY{uK{v}r+YXvlZ25a^f7-8o z`xIU_R6@JUo>5Q?KxRM+bh$*NKI+hcmQ#C*egqxOz|-3wNO0hwG?Aer6>DQy)eQ2P zL0Z3i$3vHrvmM3(OdqHZVEYoIu-q^^gkI`wxv=tIwwO~xS^S*9yCZ8Q{K)kZoQ|6K zZtDmdXhPjln7m8L=#`X;yk-f_CL)B)icr;ykCb=iSO7#SIc<@`9B>(*&`Wv@$OaEXk_cKsV;#6|-!j+XpOnSsQxTI5b8X9;yGXl!5Tsj=egM`u9 z{a0g%_@a0U6$-lQ**f!TSiE3fQgtdY$FZ-0a#$8Z?AfmQ&R^GZWhqYeUxJB=o6<_! zFN;&j2N^n!dJgn#AKI>JF^|n_QO|SXXA2Nj3261B8u}eL8&afHYa+h(xwbtd2t$HR z%dTsD;5T#auVC23ajIHxxC`I%&nW9xPQ<4KAcY(cb_~zKU1!kdixk`143WmY`ay5k z4*H1(}4R9dqfoJ~k2z$F~IMg-ZU@ll?F5uNAk zZ>{}V!SeS)`ZIv8%vR^KY?qrzD6jPvtbWr_0S_AT+#77MfBJ@!dJ7ltiFD2)jfe_` zUEAe6IAGl;PVA}NAO#X=nR_yXh2ONA1{gFdV~##mw&-N`@E^DbgjzSgmtldjeg-Bz zu{$8Zau|NevV+Xa2j=B~j8eVfBl(OZGI(qo{Kz-oEVTN#l<7=%R%#i;ve-_!F3Pr^56}*1)e=E#9FDU z;C-XU$OyP`A9J8(`>N+BbFF|FlvxOm9JVRZxCueqIGFcr2@nq01>fv#1C{v1p=Y#J zY(H7+Ws3sWi^8PAvJzVZBf?2D$_yg_%*e9yD<~Z`DI=LFPn^4mSR15@*H#!-LQRYf zOz^u%M+WQ#@gx4XZ_bf+I|!p6D@FKK>mV;TzOJU9y`SB+@Y_T?J_{Y%7EVCL2nDkS z%85!ihNeOaPxE4mhUHA6tD4xA&>UZ<5A&7QGouykUSiM5hvpR zQQ-GV^N8<-vr$`|Vp4k_vfIFdpjq=6p=q4gMve)F(t*J=r1;RXI8w0~t;PqI-K# zLb)B|TQiJ{L8ASr`Ww@*E}A46wu*Ji$UXRln;;-_QM5mIjTK=DB~%kWc3t#x-XD)6)WM=S^r6=Exx^ zx}|VUNPBJXB3e)%im_D7@Jn(n)$r&rz)4B4gSb4aq+`mrTqGHhO}YU~TMwsRWf72O=cpb0)-M&C(EP`GJ$DX%W-mtOW&~~sPUZ|`N4DG5 zDD`9ozz$mYMRLHT^QDMvPg^LZ!mOp7;HB{lOvYs?$(|!r{7u18ZNTvupGjk!O=^}u z7=UVn-<|{pI~g%?XRxJjHt9r@67V{9e+Ry*kula+4SEAYS#jSMana7;HR&d~H2-4u zF%B?pQTK7O%r1{*1JIk~??B}psp`G%egv=X9vleG+hAw5;H6_SNL<{Uok~rU2NQ4y zeeS>x3TL>7M>kJEIM9EOD=u`(5EL3Ztv8kd^rewpbJ%a(Oq~%{dOQL0T_gmU3dYB7 ziBYmu0R8{)bPeozZQZu9)7Z9c+qUh-wr$%^IzbH4ir_Otfn7-KHz ztqR#43w%Psi0kRBk&c1lolpbakBe70iPNm4r=!{0T5awViT3D<6JS0b_}^17sNcpy(q~fpgcd{QH?lsO*A6MflxCSi z!Q^WV>_VFTksR>!QN{Sq9+@+kfUm_Gk^mU(%izvtI*fC2=3r_?a93sa^TJsE{L`uH z3PlxIiszFtdKQP4M{WxUsbNuaq18!OgY^O9;095hbDZ|7NJ7|8-i&nA_YduPqf2Zv^3z8Pk0GnGBHf&QE7 z&}v~y=}?xtBEI3G`Y6u?V^hTrYJ+it`x{%*Jd;DP9f%iF8eTz*O;b-}zN$O^u|8^5 z34+tqQSkp^u@tjo{HO@PyPfNy(f)vYk#8XAoSrTjirn`tHa9Lg#avNL@9;+a~Thw_V^4n1NQwb*$t%ws2v)Resj0oIIx;yO6qCl%) zTwZ!~pS?0~M;_9;XqX29slBEr)f`yG832kq^C6Y^$#omJCcbCUnTf97V*^ffdvw36 z#T|V&hWc1pP{ImBpmCon2qy589Zkf6U%!^)*;LXQd>Ouhc6rmUZ>c(=+z?UxCCXw( z#~5sr#}gm>|G*Ss0aOGg^k@t}XsQ@r81FWc$TM0(eaUKih?D^tyy?iQd8>m}QfB0~ z2OEpveHsYw-D^IpRWMW!2Bcj09mPHAPDSfUQmH*HD7V$RvmRR~_kXBcz5y$;HiJXc zW(kc3>A9g|*62g*w@^-kNa-Yc_M>!b;L-Rzn?4ECKGcsur1X1btO_7ylZlX|v0!fO zp(?|=pf{o5YL4V^W$HwcWGRqOsg+9|bag;70O(3Myz?j_m0~X%tEn6E5M5{dde_8T z(NH2$6LQ)p_0)^cbSRvz2z{7e9~gqW3{g|#c+csQ}%b~HZL zl;nD2;5}UEbq8O=|MXmpR2;$T$pwgvl)`zTxNp+5*|&97CwTa2)LiSH(wY$xZ4-{( z%ngbh0AQKV()!(tas{?H+ma6nWBQ6SiPV7CH~4Z0!K%1k4g-ue!Km-w^NNgL3Xe{+ScO(m7qbe*Dn|(w;hO40uw3;Oo z3u;!3*`D!mx~-F4fYkodV)B!b#ONAc#-xjfi&>13MF-_hSa2G1Ti@dWvJ{_7s3IYn zy=xca;og40UvBO=4N|6gx%VUlHTPvO9-{REN37o9PW&$#Zvvq4*}DezZqfR{mKg<$ zVh# zgwT_=CE3u%Z=vUTa!enmK^3j{&dvGlL4vBiG&9u=#X3QP^BSmJ-G-r+XDs-(A>76 z@ar?z>wjg6h31t_n4Jy#DWZ`s-aqFcWV9gkQQk=!A?neT(|FSJhYu34LUDscUI0n7 zN={?3=Qo?Aw*B!X|K#%#jEkI=1?hv|Y&kTs-d7envdtYVTIG-Zvs7; zZ5ip%s_Bsmt%6LF>Wg(bg0?i!LrEI-@hz^y&qFB8o1WVS%~od1JTunT%LNJpa@QS+ zzyE>cIWbaGSByVwO{ptjHwmc=%qM+S$eX>H(q$^ub{*>Mrl*4-G!<8sT z%ktyy1H6R>O4`ct!RRx7JPqMk1e?X-4LMt}UgxR$ugVzN7Q25!0&W-{bT=0UzwiPt zlR6G>t;B+x79|)`uV|%G^9!bm`~a*IQ~b9D(&!L4Hl`RSRGCbZDa)@NLMPjnT%{gI zo$K|WzU&g3++M1(e>Iwm?fFzxNdn_hA#hIEr8B6>H_&y4a6)t1*Lw%oWU#B*!Xp7a zx$RKE-TiDJO$~CvRoWE^NepQsDkxzM73f9uz@WKT);xwL;Ya?iNf+BX>gfN=a15%v zIbJMjJ~JIVvKlIBy`f7SVaGLsDttO{R3ucgG#D5w!cE2}f_6D*how0-VZ-v7ont5e zNYkj)2pHI76Mq17E^3BxmjF0R z4vu#ih8Ot>j z(H}>ojl@*3)M+yFi~6m{uLNc|m#Vsg3asbLA0446t$7qb!B^muR(1_4T4pOyLBXMNObO17aL)Triy9M&aIRHI>$)Al;nG~pEk|Ehi zBaYF80Hp9LwLD$$!r|4oCn5?Hi4O+}by8ssBgj{|Y6*D~w%({X${y{5OlUC`yjEQ; zXQj>bH@a#?w4Q-#WUaoSOnY=CFVp{oCDBt`fkh;#CJoSWJ;4*f@iN|f4-fHQhTRw{ zMC9g(33K{Gl+HC>4!J`)rlNC|9ikSYPW}^wtPS8lNMzPXxl54!$H6F>V00KR`zx|? z?*CUB09t!Al1P=H!RFAThMH8JG;aO&&{jBR!x;E8APbP$L10)i$LC*6V4-wQtW4o} zke%!Ul$ zuv>}gv;!exF%Z&Ll+6QW$j;fIA6A%UrC409!PCYVpbao@k^XpNVYUdOtld0NW>10H71GShA4w}Tp&6$u(l#Z`~|6{xoUJCKj#@9 zaNTW<+DrCd0&l!Pw$4<@`v+fx_d;sQsS*<}HWhMVcbQC29;fA#^6meL)q|DidDCn= zIi;MTW5$YVC3u=9N2Il|;a;W>v5z;1WTswaz129*S7^QZh`kg!!~1u}o5jY!wNUfsTGD2%_dKWG$4b8@g(<$8_F?_ z(RKP}4vwDiG%W*Ux9>Hvk~IpMWPdJW6TlDKMiW)5KtPn6h%WlJuFSUGpIF5rWj5s- zUeot@x+K_!mL*%RnMG#aaA5zQbr(3B+6{Fef8t33sQ5oqLaM7fiYo%MB>^nZP}U%g z)A}?>qS(2S&4Zyh8J6$i#LYs+zg zn!PwWOzyM_=MaXoKf|FT&*p*rK(L{>@|*PR2bTFcNV4%?`umx^tRftsxPTAVZS z`x}~3L!wCFGuM}hBM*((Nz+?DsBCmlZ-TRd`XV8MU<3)-`S$Yt9_}sR3jGstxjwo3 z&`9}q&EI=PZdrwNeMT-Al%P600# zT3RBIhaTx-jG8JmE8n;TRyq44^5YCkvaodpYWHSxncQSaorMTuR~ZTga}S$aK*X^* z7qIo%1zmS>cieK-NTI3FmJJc+ihUEQ^0FqQ=A@oheb00~;oBz0dtmU?j-B&K2PRX;}QWypw>t~=2v zZ0pcxS!-@3t2s)M@J7^7Sw9m2qoYV*LeOQjxxz%S6)*uCkczjN1V7ZS>$)z;ZJ_Kl zxLa2+84Hv0%S-qqt|_E3A{8W7^FxM75Fa49O>^3NnW?t3vSiO(25X0m_Ec8eSUw|M zl0U`n^AEK~E^P8v@6`LxxZ#@L^SnWg!$%IySiwpl&`b;->7r;WKA6g)k-kURDjg|@ zS50lf?G` zC9&#&uMAYftTtz`{DIpIEF?L2m|b%UB1>!z$%~-PgSYezuMAXHQrseJ&{X-slGHlo zsydX>sybZj)8p%xIjuhW$QVcX1ge8d;ARatErDV=iz194Rt_IPeehonej-`rhz>F@ zH#-)_Jw7UpN|9CPV$v_HQ=Z&SvR5X8Z3kDLU>ZOX+H`a19b9cyG-@};B99c<2(U-w zN$D-C2e{zS**0>ZAE{#$ljcQcEiCv%PThpM5{p!VXhin-gut_BkP4lvP$`UHMIcSq z0B+j5d+IDT7!R}sULkHPj533PPPK~lAHsQhq+PgYi;SL^MRaq)RPTgn*bS^*N4kI? zD2QiBVjAlZ`=Q{z?1&)e`6yl$<{G;fPSTN~SI^?v9SNcNovi5|?h@X&0O04n3n+z0 z>}fla*QOt3L!JRyk~Lv8+?aSO;G6f)F?jreQmQ`!iy_%#iBQ#>-TF7FYmq^ijq@@7 zatWZ0I;+JQS)Fs|vyg_12YsuE)s;}=H@`;P1yvmntN>FT1xFU7<)Z8|`AH9MdF*t1 z)g+ZqzSZZlAf+VUi7#QO%aR@i??Y%G>fJ(&d!chU?70F&g}T}?ItUT`5a*t^R(ZX# z?%w|y(w5hpt&6FQXS z1xT#hUA%pMO4jzC*bp`L#aQ4UpfVF@6P8?#ND9js?<87qp&}8ZY}Ky(%WtZ+zeJC- zwf)13&%7c$C|WUL*xIe{Ylm!nkpEp~Rh07_=y41}R{ApLszu~OG%5-smGhFmAErvF zq>;S&H7`yq_4}xIngsfOt!#z-2*2-Wra7)OA)q zmF666zNZ9q(W2j#32}i#QOY?anX@>UOz6qN?)SyhOC)MbcnC8gBUhY?flvo^!od@! z9Gqy6gQzkP^-vhay9K6(5H%emqW93yijR2w=|K)DCAyJi+|>#|;09Hihlgl(+w?lw zPt*2?Y{7Hw)xF8%5;ZM;^DDW8uQA(-wkcG6tG>z$f|7N;Z#L#;`JO40f7yq+ljr0` zs=7V?9LB3w5y-m2!}_=8T9qf|;3D?ptB`yJ*g3>rZwavKt@ZeAI-KN^bKhOe*diD0 z>L^>aU2>6JQB3dqw$oYncm|6i+wW+Zl;E2T2LHD8M1yxXG|l4TP_~sMBWrBso!^t5 zbAe#0Fcm=dvC8e&O`;r`+)cCF7V(7!SKkX(4tLYAJ|U?FdwCDL^tg_KMx(6w`5=wv za$t-%c$ul|?J#wxc{aBamZyOI^Z?d;GxazEjTU&eERFLuLR&j0SZ5TPa?J~;2WpoW`DE~~c$#ENf@7>G1Su>GBdqBjFWNP*j{Y}c z6zaOKqqp?`l9`h|92>1c+DxH4Y5ols6;=W>MzL>}L#n@KGsw>7a?slw`Bi2C(F)9= zBO@0^O}Z5h+OY1~eyewrFtA&|B7s=rl>V8M^+dQIA-@7slvR|W`5|p&%qncW$fNcB z{;3lP2e2>*_1P0Om(3!?7~jB4)Ju}KaRoo zmG%ce^E0IOS$t`uH6 zK|y>?b_<|xdYSn7$;CGBT6HR$Rm&_l0*1WuG*^Gb#g-tV&UH5yhk?G`u5 zn`Ga2Y*ZsH2MCphez!q9pX(eW@oUXKppPffEtX7l^-*{IYVrb)3f#25lE*UAR1_hk zJt#+Aib@>KH>yTVWXG~;4k_TW1w?!Ul=%Av*4Me?C|KR04xr?_exxNmhE4}-6>v30 z$0ktf;zClTXi1YIVs+Yd+`S;`UlFA)?=LmkYf+R-r!nV}?Vpfm8b2C3so+I2 zY28V9YWuL&jqGA`Xf4c`jdUvk()nymn;6u6o5dT=bNb#dMcbV|$mQagsr5YN?fb0t z4|aH*+2w%!^)hs&B1TiQSOq6;%O(B%osS}JD<+NCgl*Ut5wqyi?dvLf%qhAHXT^_Z4OaFVs03;YZHtrj&!LP5J{Ls~;{Z<k?SfP10 zT30?(1!G;+CKDVt^4D^rl9+RjMvqimhy>-WbNx=?Y1g3{z)_hFrXNNAv*r!D676JN z$$8jHJq3%aR;kCp^uhg>KT7$j`cqzdBqKXJ?{Js|r}tmbdgJ+E_=cKebQ<-C0Z8W` zha5oS4tb40o;P^6(k^u?cS~;`&*cpSd;lffI1=)Ru)kxNz)jjIY_bv|R_r_+{APY1FuZd2A!&@F41$Nk}k<1Q*l38^)rr^#^c1 zz|G<3p6`h*;E})50}ny-F*4d0XZ|&_kle%w)WeI|Nx*`vMpC-bS_RzCf{Ap0eIlWz zXQp_~lt-BILrt_tR;Fvo5`|f-;$`eG$-*`|RAXhmg0mZCOW|k~nkk)T$`IvDNea<) zAMfds)R%|e>03;YGP>>kua*C7nUs)E!UBgS=a~JT(q<2M7t2nYS8m#+`_6q#gu^&< zS=4q42k(dy2QGTds`EJmu^nC^BV>Zu{-g;;G)Y~}Bv&a9Hv&_iBhG#M*71rI<_%KC z&w)i|ardJy?%RmZRM&X?JX=)_TvjR2sRV(QI_Ge7nPsP*++hl(ldy?UZ9OY!p?4fh z85`s4#o_t&pVOo|99UiQJ>jNU9U#GNJ692uNSG}#U|%b0Lp&PrL0tC2L@>aMPGRyj zBotDizT}&3V)~qoXA{;pb_PKk9iN~cGUR8aTYYiv{-i5D zto_OSi8YsDeQey$L53?g!xSS@J$4b~W?|U-%5Te6B7@SXqp7Hx%6e6RwTJP95d(K)!)xeTx9wKb^4M zao@zcS;iI=HudF!Pg*+W8_Z|2g~JaE0!RjQj9?soGBa3uVI{W#eZO!9#m4JD|= z8xTqb$0w2?tU=G7O6sJ5LcCj$=Dr%^Rd|NpH7o;zxIkV*2*N7#fS&Wc8c`H4=mMS zS`y*+++T8tz&PUz;G{DAM!!@|C~+!4RPb8x+sLu?OCT(qaq~^q5wNbh+_0NFY5c)fI@!f!cif74 z52e>x8<9vn2MK(ga!aDOU%sgK^OzMmyKsqLG^foISY?t!@lBF|!=}SRX2jXZj;6n7 zf5b=s$V?wRMY>lL4>x3M1>w8&J#wo>FoCQw>ue5*+Y(R(W8%>eQxE9$a2=-T0P9LO zY}532v4)6~&IkALz`uFaNo z#sZ;++PK@-naz$?z*C!U?Inp{l*5cL9tX$M3p&m`w(TASmD*Vs^nhjNhac~;KaV%o zb`{2g@k7-P)7reE2HaoAJTK@2so37(IVfccAks)H6`3_<@)g(smh_^47+>l*>R#hg zDousv{0&k@lQ_TqhAw5r;(ZixFp6L7W|LUed<@025(>l9O)^D1R79BH0|HE_O69io z4n1^W%I-(f6i3C=Q4etRdz4dX&d?Nioz-t=*l?AN^SJC^gA~BM zo3p<63*=_ms-C!hz?CUV^c34=UodY8J)sj0VE^v){ALVF*DWR2=U{@j7>S`IC_=l9 z7D;+w$wC6RaqT_c^A1k)pHs9&;-|65J6HVSc+Wk^iXT~}c6-{YV$1dk7H%&sfc9Y`~+O8X98=4~;bQp+^$>YtzJ=|dEh z)eBEajvZ^8den%5Qj}&EaqrFRPQ$-R61nzZ=PUlFO=Yq$Wk?{f$-2t9!1uFUVyzf= zJP)pqUH{SU+=|Q3-2T4AW-i1%A0ce_P(y&?fQUl@=eT024N(?OSVmyI3g@MsEHV$9 zouhM|5iGzn(c#zLQU3+5q*(JUK;+6t)Q-(W=i4Kj!|D8$fqURc{pyqv1z0(e9>mKP z17|h~=yo*U46_DUmxyAyc88Bk@l>`+6eIk{;mI>9f^+;@<+bVffo|J0Q)tSx6bRQ* zT*b%s@pi+@pj4W#;3OWqEVt#|D<|_4FOybu3rU=O|NKhd!fCj5{|OoI6}r%jWYw*z zB3Lqr&o%)^$n${xt3QE_IJ!9M^kY)+?O)2KTluC;<3%E#r`+b%s8-H;I`~!;=TVCI zZqWF4Ta05betYCcwm+4GSCw0{d89XI>!Zi!u~AaII}AXlRwJqtCYf)%dXZ9Rmm^^P zOZh+whxg~s*HNnN(bN&O6kg|o(M3JZ5E6>l{S5rOSU%hXj+cEYw`lqp@a}sE_dk9O z2NNlCDVux>-%`x0Gv&_WCf*m+p1Pm?SLsO1Klwdp|CRx-`LMxXY5? zi%`@veJaydP%6{`WfJQ%!&k1;Pxw?H3NiBgjfU9|=+1YKf8_*Jx!`wsEl9 zG{lVq+#Z^p9PYK`j8QOFCs1);|4_`|LZiA5P zL_5My@3Y45#A1yZtO|$^g3KtUH`J*M&|7S8zw?jsNkL6_@3XaKnYdheh=Yb=B>AHL ztKSvDR`Brzym1bIOW{djh1eTk&goGe?8!I2_JXI7y(o)^*f*Ys_rpc)4Iq}O2J5NG z>w~JU0#RX?2EzU18ceOHNjR;e@@KPrMl$0dx}(r6XG#Jlr2q2y9Em+_?2UW^W~6R3u-}eRJD7-q#n;6zXg2={R$@gC1PNGJOFNo=BNViY`ixEv6D@CaOq&sJn`*P*R0bZD3`D z!`@q)+9i}>Jm|U{x-6qQLz|EELzcszP8(+8;zSo;*YBzhzsvpgqAB)Ckumt5EC}43 z)%wDO{cACz9A@{=ufLt>UlbuYgq&U^PD~m3?(t2bJ;qH-#KT;r=7+eC3|$IVJ6*#A z)w%(w2#d-js&2UNmwxDZw&z%ISXT({ejwB|y%DKlT3$-%X7I~C${gz&rE1-I#RN?k zqK1h6UP2E92ejb#NHpzI6-n~CvjzX_MGy5Uji$nM+x>V00WyU7bE~@#(=j{c#`|`> zN$z@cO{1)Hzpxt?>Qt;K6F$WLK`d!)$1XdHSypPV&CnZN4UqtAZD{m$IWeQj6unF8 zX{Gk~ohZIo`?I>km;CTG#EK4vhvu+-T5(?++&=JXO-Y!y%Opx{Zr5YZ>SA>6dugY< zcx>=*ba}uql)Wxasaa>Kg;xkUGLv>UKhij|bmT(BBYHSSmD!tJRGx|2WgMdZf-DoG zJG2XdqRV1MDD57ww=$7UVAIk7QaY4dvRpHb!eItsSk7yfvVv(u^ zQQ6#jSd75OQCR*czn4^16_V_mhx zlbNj$rVZ!pQPrnLmcnwIuo6Fh<mPv1hkQFAmfnDR=t&!P;k`c_WgAnUhFeXpxi zZK1<%g!?;*(Ss|Smzg$HGhwN8ad=Un5kuWAJLroKtNRr&9N+T-)zv7LFetz^6nH_B zWqdCqrQhO=Q0EI9CVpn>%dU+wjJonJU)>*yjASUap>EJ{RuEhG({G#{6oBHQu%V2+ z{qQ@G4|otiYl_(jDD%#>rIkmBofV55?T*k+QknuWJDQLX-8Ww`%{A=$XRPc9sPBf! z(2Lx=k@9~0q{Op*g0fB{B*^8bD8(dhnEH6&P5&};*s7s`*+Nl+^-((3R?W6Hk-3Ut z#!;z+dZ+KY8L_r{kE@nY5&Ix-lkfoNHB#!VsgB1owc=FH!E-c(hu1)))lmNh@ui@E z{-{7)p9PDx5AuJe^y)Z3L+2!z4dPH|J$-yRbm?Dw)`v!jB$rh#3WqwK>ND$u& zwlrvG8I!wE3<(d7d9ul7DZdim#J>NduAm;v+zQ|5pOQ&?N;tVYtLY;@|JX4X9o&XE z`qmtPLc98uqZNxZ1*2F2dEkuGA&IxJuA-E5L(J{kjQGMZt8uOm9!KkP&v%)RVqjcJ zi{H7`ppQyZW~QU4^HeMbtbzosme}Nr*-FHfspglWd365_M8$s~Wo(md(CPh@G^y=A zF~wCBYyVWdXxOi-3Q^P5IhsDXFp5BETv}vKtWt4?$5Q((H#rh8o$v+Jf;js}bVvXD zCn*1OrA^R}!jMEtMsOvTfHb;LfknJjik6+pZ^-yl599Y~tpavo&TAY(*LOrLa&9!a zTRr(2yqCWqmIv9_x+gtf!vTQ&zQumV=#6<<>xO1*3HyvZqxt?G?L2^~JEF=`L|0uZ zP7Xs~@pSYW(pn?Eu;s?>tz%f(r|OQgW_FYw{bUQ}up`4;`hnI}DXdFw;8FgFdkPr9 zT8*I2k9ji*g(DN>JFU0;&G3gWq8*$WlJN$_xaFsamSycS0zw0*qHrb&*?kP|O z13}z2Bk!x$vUD6&&>@$;^_XW5Sx$K>r&VE7IRKGas|6@E0N94v!xLFqqnS+W5sXvl zLDativpTny(V5^WNA1~@2z6V#v@IF?$btg4cg^6T^fojp+4)KOYg?RIP=Smi0h8fd zF}|{k(e4RL;iW}=G6-`=Cp!1U6s=6?)a&WxRqg8-dUp*RoXHmUdnah9JrPTqfj7s^4^Y`HE8vOhZ2A3!5 z9oCmywQEiYD&Q)>*dw8fMzBDVIO3eZWg(mp2d2bUJL^uGqZ^JY_6*pG#0wXVUdk1@ zWEy&ZkuDqekM&GK6f;(LO2_&tz5q)rm@%H-7@2#x19;k|J5LCeJ5u{%D zh|73C+GFZ@9JS=zPHgz=TDqbq`DK87hn7t-r<9%IBxrn29E{LLJv)~SGvt8sUM{p^3lx}IR~L9gDLA6AH1rZ@rAOM*co+H>#Fdg~N`NouC6^NQLn$;j>uY?2(D4k<~Ndbfh z6=|no7Au7xKecEpdtOzuj2jbDj z!C+U7F$Xbv z=G*!TRW!{XeIEt;!TFm#kaVXX5F}rNmWv>h0^mP&q)pZb`~HiPzar9m=q^b{FK*Af z_=6&6dw{sx`TT)X<~6ir=;?TlR6Eq;h7};n5IWO-Ms?8Bn1t?tWu>OBnJalVkT%VF zw;IiI0w5IEqM+%VRux6P&>|5EVb!y83Pxi@pU69))RfJCubnGmr0-^wl1;c^2N`s4DEW~QO zQG+a_0sBswrDS%suJinHJ92)1D0qr-n%-maAyj%37DOF{xahA#nw>7@TrN|MQ3txo zFx^9A1x(Dg?l661<)ax6@HWwx6vtx{O-6c?(B|6?Lq}c3%@!Wrn3RCM8~UEFwK;uk z^2^A_blD=JyM<0HE9)q*6_4kVa+MWXSe5D-|I6EPq#BBGF{jKn1S&aOnnueQe_5FT zZ=&~OU({8VFvEQ^AbX*!BPSfX>6qW|YoT6*P|mfPx>QU7l|~4VVylzVRsQD+B8Z!; zC}_^6>VCFVR_n??5qC8)+gp+Z?Qj(~H|ki=G1_pzou|t%ZNUlPZ!1-`n3!yU{UrCQ zJ8HmgKed2;2J77;BzK0&_6Dvn7@+jPRA&Mr{Vxh8tkNQ-ZB4m-KSs0^<%xqcL!L_< z#Q8D8c1KcuX?3io#2K*anFo5gzl>eaIM0S3eAX(`@&-57xC(DH(-Y{>JoF z3=TUv^lprhJq0gmp+(De1UR``gbkE2-i-D1VaYnet-D?cCqE4pqIYp=dnl9XNj9qNm&!U+M`L$)nQ!(9O?Iz(M+`YO)#MCO10z-HqW z6y%4kVx;ILyZhF!_>Ibh7uJ|{6XU(VX*TeM3eiE7NCjUx1&P-nqT!!nLuEbF!(2g* z)hAu*h;@<>rO-lXfJ^}Y7U*)_NphwntuZcZip#Ygu!^Gp`1>EzYw^0nh`S5&1yE-Q zT~PhWcM;IT(4uur$k=u}rEw}l)A2BNeGfruqjJ*x@XnubXm(y3irb4E4Ryzb zBiqc!2(CegZ!vr~_3qDAMp4!tUkODGra=jOI6mTM5^1`m`WYO@Yk4TaLdo_=^?#)` z<)KV%iAY*aF&{DJnlFLC4$oIFt29b~$;ZPx2pFSW6~AS`(3v#S&C(Jyq7{vqrrVr0 zppixrn@#emRUG3Jf_#ch$Jl{M5apIPi~B#|>mD*G0{xT#(|E*47P`VZ zeHX$mXX1^LI#3;o35PO1tBV&CQEKrMkzH3G+%ncP-qV$EtlI;`^!cQn zZxISg{vrKfiwMdJKSsMXG4t8Nf={KWTr)3}lcTzhRY51_^mP)+isF~(# zS>u+O=w>7Z!Ub{|MR8^bwpX|`c0NuhZG&sJ;`e>s!H|DK&r``Z@ggT87XMUXHQ@n2 z`nFV=Gkq<4o18XY*vNZ8xp$apauiIDX^41DXaG%WRAbzto8KlGvXGCLv%_w(MfaP3 zO`!QV_?ET)ha1^{ddaa+CP(VHw8hbQx~ykGbRypet5nEg!s^wt_+@r?OG^?B5%jPu zDjDN~=tAjwS!=439!D8KWKrR0(k&UMFzBg9HTG_v`fxrysI;oT)_)?N`6{mqThHB; zHN;u9+VtAM(7%oL8)CJSd3oiNJM%X-_Nug(qlL=|4S-9p^X%HPr8pp&YdI7AaAs>(!Zc! z2a(}g>IQknW>8)Y@xAn24*O^@LX;6}Zt5}g*bGsew50xT+Rxq0iW@JE4!GD(=Yg(Q z9J|woT&L#-S%sN^iM#L~jQB8OI5G50Qr)2C7Qg76%p2*rV|6j4!QlbZ z0fY5Iq7E&xXo(wM={Vg)9o#l9cs_JGAbeHO)(~Du^+jdw9p{(%qHP7=TeW{e4zM2w zTvmyX%&yAZ^aSaO(C~h4@)rr~9#;!q!`)4<=BTyMfjNObxr#dNd>75;;v{^nZXC_; zXOJ*A2iA~ML>HX-f|1SX3m0Bi`6WNKYSgSrfH% znUnf!tV3yhn6>SZ<%vlSpQOkV41-w9`YhViCtrsi65s2Nfbd|7&b&1X`d%PW2y%m1vC89WAq{Pf$eMK4j1M{b=%w_%lbe zA?6#X!LA_pafE7iyAf&LszR|s`;mP&i|;(c7GW_b(9eHU$6NQa=st860H{q%;U|e2 z$ABFyV=tztVJ}6J-~&jH0h7=5r<&bg;6xsWNMz9WNz~9!8ValLRpPVQo*)LgRrkT)bcVAauKEi*EsM}? z)f{zopSglkpfh&`PWo7QNQ_*yAnMu5@%>YFr;7Po_Ir?Y=!HDJ{E;KIO$47kQ~`iS z4`6Sk2@y<>^@}5{7~n*y8W+A~vREF2f|9O&M4pV#yB(0fN-q7W8|Rm2woGd}62~@T z%8?EqW^^Y=;#mpfZRj^^_vFX!Mkzh`e|@*7gz!<*p%xV2=N0h)D$cmUp=H6AUZ z(;9?|X0USh@3?nsG;MC?0}&RM^Y~%ZbcQNyx2F*yJHsm51^}}Tyo}M)8riA>tpU&{ z=9;ETlme+r^9$F0=CEyCcrlW2jCdP}QY4j&8g!ivu?1h!woEdw1-}(nK%fnAr#k^~ zC@bE|`s^N6WH~X?Xg!0`OnhJ>MgwLMqwnv~ z-{WB4j;^Txfu)9d>v!eup7d+2#&Dr}vNa8ya0^H`wiDM@!DbCMXW`j>WKosUR~O^( zF2?o_Tx9tDzLcu0+3J0}0K)m0xZ) zVF(K0&s<#tc}QoYnv3(Pi4NXX3~9pGeh|ik$suATvN^5J7&NyMKRcgOx%g9Ewav`L z6%4^>00Zy_6>!BU6?MOF=@>fek&g2`Fx$hDJGro783MFs#W)a&~X6&^rtxk+@>txH_nC?HAdv>_9FG~AFq z{du1_6<5eOpMDRd9=fEOpjv%lnw;Oz=mp!Km}o~bf*nOw|n@(d$qB) z>}F(=^{u>~Ug-u@-^J*H1_#vx#3{}%0qUcHU2Qv08KV<0B9?qc5x>w(S;J4h^&Y%E zxZtoM5IS?XYl+=PW7|mEsL}%rk~VnNiEcK@VL1cB@@#}4jc?5m92aCJ&3T~e6 zs!IfV7m@4ntmWsC=ndT}`2kLo=cJFIEV3k-0Z>iBrk_?U;gozmO?euAQ8o=C6O??s)G*)9_Js@R6)Np{T+1iDchbT=0J3W+cjul zqtg6c`)J)ir56!C-z7;ZF?EO2Jba*3WK9Iqqa{`&s0=smyBDSX|G~2t^A89~?>4{v zktP?x8hjqw>&gFGnE&a&l)O@t*9>XJhh6cUsQ8!Tq^L5Vo?l|(y`u!DNw)7aG1h5$ zJ0N)mOSm5LrE^AW(|Q{>iXOr3E+!0|q=K-QvJWDN)TP7KC%>Qv%>f`Zpyq#Vl*U|~ zfT=4w97UXTXegNe_5cDlNul7sbHP`}P+x5g8){>IKt6bEnzQC@3$7ZanEKY3osxy|Up5S?G&n;%0ZJEbaJ zQ{i6DP-IYccn(pJLace=DLs)a+wySVJ1z~WZGuw)QHK|ZO38f_dFjB(P|_5C@7GvA zeli%3VJykyJ$_04>4E$m@P=i3l^l*=d=@NmXb`O4@XVnq7a=&}NiWf~0}l zfNvzG3Wjqy{a-eE0+|zy*d{tQH6>Ja6rkAy6*p-e*Vh*7F79&wA5&k!RR_~^Tb$zV zQlz-MyF10cP(;oD^e)#?(SOLwYWoZ?x9cLZ{0sIYu3ypdnc3ZD8Gf5W^w2# zsHYBuzOB${uZ!{bymA<3Ul!n%8k-nZ84g!%r8_9!Srr^97)$0*{GvC0X*Z9w1_0f` zKpf*eDRwmdT=oW}5E&Xq&L{;a0h`L+vt_Ety6TsK$FDgbe^>;+qQQ7V#-(b-lqkMc zOQ}0zUnxk6m+yhH=rs|Tg|qNxH6J<6(8*p7%@_o;c8gBkHAXYv;g@~F=?KPKlp}(u zJJ+s)8UElmyn!{#nB1RXCMQ8U3W#R%-L5o~(lI93Zp zm&U&{_~Z&;BpC4EFe$am?6x-qy3ZdhLjyHAO3SL&Sx}pfWpjYmO)D z|2NM?3i`%Z&q-5=WwT`NOyayNUR#Zi;48j}Ahat$##kYs=(8w8g-ntf$OQ(KzM=x8i7f{% zon@zK!lcWv+Y(87DAv|9>3ixo{?zigGNdHr{!-CoGF7jhG`!EAnn7T%nyQewXA)(Z zCbCB`Qw}C!SD}2`TqL)->QDI9V=+3Q7V-3M`tQGf?tw)62g}i9-eVmWq$zs&$E}20 zhBovkwm~2XG&FDyqq(X^#J5I*uwR>E7aep^~IW-~7$ zqH1_?WK=0v6&Dc96oAvlPYv_2uCkT?!LEp}h2qH19)A<-$d`@4r}!_WHrj7g_*tK` zZ?QM@GW-rvTIAKpjeTd&&!l~$15r=ZR#d7ye%^HV%rK3I>`&0kK;M=1o7e4lYg6Qq zX9L#TiEu(xDND-SBn;@gFg0^Dtw2z~;p-`V04DauWLwSmnGWh2Hv`MMYsw->KX#z1 zm~MK)c&c?Gdn!Oa_#A&TJ<;ZRemraWZY`4P_dDfgvp%vIZC2>VnMJ{x9o0Ojsoxu+ z_;}Ou)q>H-X~2dE4!8DFY}Vi73_l5KDA`gGA3mGL-el#Md0Nje3U$$TWeFZ=w(3}D znlE?uUur>ArQ@HcFEM^CA40t@BD)w3E2?9U2ef*1A*ICl-ZKE zI|WWRvM;X?)hx?2xbO3vE{CFg#?$OMkb+o9szeOSKqPU{Ti>hx?_1!IsJU!^9lQWH z@mHsL*%ap`1V)(Ike8;p?%0Ffj^*I)NxIZ;w98z_M30>s9vP%6EELc9;(Yw>&DMNvv1|UlVBerm%T2fZ{rSK;c?nr!*?HMP! zJpFgJSMz^hIRzwri@p@OuSnIc#1G;<)UaUD*2aBWg$B|Hc@K?z@!cL3I9Wu1M-GkS zkm&hhi94cBdT?y7fW4)fBk@`^_l-A$1kti~=!H2!^^W$d58%JGK_z`!^`y1bhBrP0 zfF7m|SFaz!o3^10>qlF!*?muB748@3M)pkm5hj7FD?^rlPRHd$-7LFzGfE*eeu(WX zEVuWOY5rYmyeU#Lb8=B|&~&vQQzW|31EA(BF#vCS<0bpzv+6iW~VZ zt*%U1CQn3Xt+JYu7=Z5__q&yQ?Jt9)6so5)fG<1mJ!Db6=YhEufm*D>p^XVr?tR%? zbFM=NLY7M&^AM0HAIJBeYL*0-|8B8F0JY3D#!4lq;83i9dGGk4gD;p-98NVi^{sdx z>Hg2hOqukfxEIPKtwi}A3Xq(vCdAT%vw-HYt5&{kq3&MVhzsPgF|`mW%-+$T%*GDn zS`SKVPRJCyMR~XTIL4)a9lV<{s|p#y)HNhRIM<}=Y()n#@xMf-=h~w${;|pr`4m$l z1<~lWwLK%E>H_g>vJ6@wkbkmk(mEuFt|eo=F^Cw0Mz(daAT;kMoKii%T~`$$2M z6k!31eilQmKSS&?R)+0P0H`@*DLyOfQgZwc{siHctnyiZ0$Bi`o-^T(=7^x2Xs$p}D0se(x0%I(hwXD5Z;Fe1#I>vJyew977 zfhVT)`0K^DsT_GDgeWosB1JX-lKf^{!?Ff%jeN~<_59>Bjr^gH5k|ed+}Nt0iQa#0 zKwo<)z`Qk#Zu;%fs*Wvmv2k#~I@M*WHzMB8Og9G?7J0lpuBPOw$8Q5zj&!dG4alfo zeU+VP?Q*=^u;2b11WQ7+CCXcEyBF7WyBq#Y2+#SSk&ibmBP`+8yO{6G^lTY=Wtk?9 zGQAa$ty!48LTnvr zlGbcST+aP!ZHxGu@SyDwSc(4BOC6rB0+;%LCcpkWRqEPQK*U_R(ZNN&HM}wOnA-m^ z3AY^wB@weaf0-(BY|F}FUlAc&U70B&6mZ^;wxKU3rRzlCn`mltxaQpOFEU08lC~_0 zG)?(~c#6nLKfb)08@l`{njEoF7;{XsxAKNt%a;_81|Z4N#abHhv2_s81ImF)SFw+L zSsSE~g!ro+1#b;f+p~y8bMRiJ?E?P=MFi5ff*o^bWcizy%^?e6%tSOBpP%j2^$~%p zCstAABnni|Hkd;hAH)WdR*KZHoxznR9!&bpCjv^KFf|&QStr!wV7foFE_U$Y0yBA^ zI_vVoUsKZN@`edSdoao2#zKMPJ;Tq!LIA+Ix7l(szzMVrSy|fxPIf=s$WU$ z!}u3mJ9Jg?1MwzFKC6oa$6UJHmQwW;sk#td5yHK=K5LEPo*V1*-Fo__liLSrnF}+A zdL=#0mkYVXH=s_e=gOL4xvz{kK(th7;9e)8@bL|l5k zY?)qa;U3oL?t)rkC$M}KHcOoi%`gU%^miH#v-)~P+cc6UK*wCZCOq42;I9yi<%ji> z8UVGdy~YoEScJ@F&&4B1C%yhTft^ej%xu0}7T3No7dm@H$yS-Ph9J7arpR!jfld$b zWye(wYM7CrQm->wSxhWiDJ3^LNQ-2$!z4kQul*(mlTe0}hLuYgY{Pa{DEtea&SB>0 ztS4ma7JI~hr1Eu`x2dSw3g^<}wrTc+wCq8h2hYBLrn8qUj#Fa}xHK`*5y$0QrL>V? z+DCH@vlaZzrA)w0Kbgj1!VAmh4R|$$aUW?8`DZ;z#Z_2}k$<_X7k6b=_7gjj5?bO~ zn~>*;sb-0|%4vZn$O*@)7=<62O`B8^99+0tF3bp@Q}sd=dR!yfqS7Lzq8 zA>FZMUeEFyV&(Ie({7YBZXY%qG`-lcI8$5ZBl@YGrq~c(4T-_3j0bc4Dc$lGd z3MHv&)6javBbs@~16D6opwmc#QsvZDuQB^ATHITj+<#VM_(1VJCZ}LxL!;m}qjMc% zfFfS9Yz|^JQ=i4ikWt&@2L|{Rt>fVrKzZ;XiL!nl13n9it%|)DZi)uP>k*o(^_uzDS=&E+iy9JpNURL=IQr-Higlry|vp>a5SZZmx@=NqCT zT2}~4dyRkf)EWKkxV`;4uFr!L-oJ7v)QT(!4j>QC)?%0ZEqrVwWP|!-t!V>VAG|k< zF~vXOer|NXw70=W6}?Z0KTM^3#$F(A?WxGXM+2E%wFHikr4lq?JQ}AKMArpcYI&qe=|qJ*^8TBDepCB z3c!^FLtuhR6Fa@}1F58{^6oyiZcgmS;&rB%6P4O@p5gLtgJo1h&C0}B^cgG6JhjsC z78Ya%EQ(}~lh*j|rKOoTrQ}=5f*z*Q8isP;N%7MD(Z+Q_<+i2CQE}XDo8i~K{RuXG za!VzKx{MM_OmJnm3Y7S7P4GQ)zmbz*H2%n?krs<^4R=zS0s7~bG+)Fu59=hq(9Z}L zoR}Lgr%nH+8TDm^(zve61r8YUm32rC3(a81Ep%8UC^sSO%;36d*#qrCPV307drpMF zhz9F>F*HJ!!X0}^(&z1lCFT*W#2HUa4FiehCs5hVPKg!QZwm(>c+|(fbS`rB z%lW5>FzT^7q_!Yqx#bwlfYOpB*K3r#F`r2D$RX{u-bU|ib#O~CF)JQc8kmZAL)LKf zw@h0t1}2mMF?M9DwQK2^^&8P_Z|X9CRs>lRo9LEb&EU~M5ipL(MBbxTyYEHGCvR;z+><3eGWE#<2wI-LCpq~S7lSmMe>2Z8Yv9num z$p9du%GyTjORQc_hXUg=NPYXSlSeKt1LJ<%s;=W`0A_z{m_4y6CoKt&F!XA#VfnFK zm>j8^47CTf>qF*1CpOe7i1&4|rVc^Lg{_q08$AcDT_6%Q3O2PWHf1+XSb}`G4@liI+aWOXjXUeZtPrKBlUJdzIMKS31*DusWK!xKygtkCD1 zy=EVeAQRMR^X%NrC&n@&92vaFNYP{ zO&h;}0??HlBXu|az2%>D!iY^;dd-jk?+aI)eNc-Qf@EpVt5W9QFxbyecU`-Ssw1@g z!&wafMqKnsT+XcuoZ5Wg^#Q^JY)(D}i0c*p;7x6tT1}>gC{GLwaNoo^(CV&44Jr+; zoIE6VW!ObMS+r#Znu^J+hNDuL_!8Rl1fxHK-RsNU*7AYgxk>jNVeZia^zT4v(rW{L zYZoP57a=v)ajPGfT}RCf{7A$e!8<7Tl58sx6DB(Zq{h1vAJ=;8FwkzQQn|I2Jq=uW z)ODj8mz(a?o@O4_wDaU9XC_pTROyNvJU?mXvYB%Pxj;kTw^k(Kgj_lEo7Hc*NE|2( zciS?K83vNFJ-Xkw#gk~%8{1z>iXoc#mvr-`HKiT-1oPj$+$)U~7@`FqsyA8Oh1r=L5Gw3f{2jX+J=wm5x*5}d0F@xk-k`Z5dA zi|F})uXW{HB9G+nHUguuM&D!@WpHjlEOXu_RG2>7n?XJN;caFsxv^82Y9BBI}4K{@uhumr!F~(;}?r6Uq;-@LKFc#~?-D(ZC z{X2dhg|8pCh?FpX^1uXCd4|^|!eb&YIS2@}Yd+8w<3;670HH$y3`+Qr9%vFh=pvTNB9@h( zTK$FeO=4BeLd2NB2|?s;D1Q+)uEBR8+7=0X(2VhaZ(;e{pC8kjhh<2drzoZZrD|Y; z*Z{FV!>eB>Y5Psi=9%z^7FsFY>IF3J_ixvZ#x!a7C;5T?_ zDL}E~YU(L_PL@EW30)C7$KQ2Koep<`c+Mq0`qXc<)~$IVc=74G2iQ)-Cqo;?`fDxNV}JHO+cOF4 z@2@aw0?4(&xeH-MN6b4U6_W|UDu3^{9Y9e3;DpEGSxhPqeH)u??W0DCei$M4K$v~; ziE-b0VW0iikdMJwKs06tai1;&L2_kbbcXS<5nf)jHJYJr`JE#8mHiLyKfmBm;Ku*H z$afS@3@G8JSmpYB0i)(_aLyvR_-WtcGom9?#PcrX({KeM(^(Z6J=bWf&w~A#gwv7vX$21|AS+XHwmGNHYpa{}Dj9WE2()4kJ*C=$mV8RYk z%XuZR`l4KWX+BR1F8?&}RW|p)^(=FF|Cq&CS$?Oe|OR!b~@3Q@h%#r+ygw6rsbafU&NLP0eD}8v8{Y>on)J2GdIkvN-Uw z{ESiQMlkV8pcHja%N(w()K{r1wV=N@)gKs1uFMy)Xi7Qvgzga9$L|OR%YM&1j}XET zWNE3Z0&|4}rognaq|TtH+K@xJ{UDS*lHCET)Gt;}@}#B$E&45$OpftnBt^oRHH9JS zL{b=Zkf5kP!p)7V*ssqLdG&Pfz#s#5N)%f#e&0Ig`0UZdgkgHJy+(gIdakwP&Lra= z;J~2Fd_pKALXsCcn{Hr!(Nq@fjga)>`#rQVW?za1QtX z>f|ps_RZP$xrW01?Y4#j>@Ddcv0KWd#H=-CHrl(0S1(>cMpGi6O(5+&SWZ(b@?GZP z=+l)$ylFA*sl}#q&9vgCM%+g^vzQ_MLpo2e`qy4Zv7zS% zNEZ@XuxGuSq@-p z3)TeJg8||w=lRJzgm)ZbHN43hPpUDy{^XXWbE2+=Iz6m<(k>4ICctRZ`fWF+udzE< zWCYyRvZN)whgs{4u8o-seyaxNb2!Zq?CeEi_Q4wSU{wmL}pE74~e_iQgiZCr5B-7UkOfWI(=21 z_TuJ=BspF(8ku1~6ZcQM4|j1egF37$rdkXUQNZoC`MFv~{gHs0%_Afw_HqB>!AW3% zZm_RoKu$?+NIKoki@W+0zU{~D?0L_dwmSn_DRP_}`Z5xsv&P<3YfCs>P5PBCW__QOu8ggOphOKk-WmJE3R-0oTW_yv6! z^!;i@A2A=Q>lQuxy%WI??dlC;+S$CsgO!vXq%~o-EgRA`P|bIM*%UG&i;>iV7vYIC zT{8Ut6Yjxq+SU9Q^Uwp-M)SPva2MufnKV>+U9n|2`05dIpNYY)Y5aT%Yejm zgjwmGlba65gKdMC8#*`s{}8~W-+1=<6I$*A1&yyat9o*DHSTIS-{oT1ap-e7P2yH# z1UR$hRIoP}aQdZbcpx=?l8RxZOO32z-3>OyZF4@-ro4!&3`z<9Pj)q`!CI{i=;~w! z=9a{4!VSi#2%AWY=n;Iv<58~;%bq_hqR_Fk9}3#Eg`;+dZJ9*q^i{!>nVAN>x#}n#3MC||XuZ@C9j`5z)}gOMWi!JL z;9l?kFWx?EYz-Ijv0kkBBwdSygw3)$Wm#9pz59k}*JQ8B$g+k~96e$?HX*1JZ@-9S zfjpEnVL(&Zp%^&zgN(PW|Y>){Mrr_fHGD+N3L-EY_s?7T%|;d_1i924IJ#65{Oy0 z1%a>*S7ZI>#qQmOkFh@VtxV9tOg#ccixw77{c)2v2gfr;VxA{LHQpzny{Zxg_;! zYW}+JssfFZE_dz`LWX=6tqBUy2!(%H(g6fv2@W9yo~rR=K{geThL-_DMYXrYgEfiB zEhZH^a89tS6wg@Dz04mIYM`1wW|kJ967d?}7Z$kS3s$JNRYt&9Ww5V;^XwPE^`b81 zV5i)SQob)r*8~!gs{)BPYD0;rX|k}i9Gce@Hb~R-8#@#Mpy$@%hBgjAuOy#-^S8hU zCA@f*zE!K`AjXe=z+{DpaIR)}fGsVGsq0n6tFrjP$GZ$Hea_E)ci2j6&RWV3=c{Fz zp1VM*cJPd>s9jlaguE<;hJ6PQOpRM^yefP>hr18Uy%#dph?f?e(+Egxx>h7S-RRvZ zgs;U~4*4ypN@x8AmwzH}9@P#4an}>yp@0Z5-nbdL!d)aZ-}h@_>)RC6S}Yl#Ri5b< zMBMJhuZ{KhN zD;{J$4RZ}Iah?L2^hwSW?8hOkh?DsjRjm+Ad}Iu@1NRy780$^}!i8J9VkuJPK7yI1 ze*LCu`->n&fWq{Famm?o>i<{62LZk-dr>^wr9ecpW=7pRf zxd1Gst|q%%#xD!slo)E_GYj^6{2~zw1UkgABLu6Tc4WgFgF>7qZo|IhUq-d|1f%{J z0>WYahM|Ve>E_}rt{@(cg8?1{n{;{Yc;XL5{>-qnDvw|rgn@0b2@9 z1}l-~fO*ipWhrL`O@)Lb=dsheZPiz@wX2w;d}l?5!X_jWO!O3+s856U^sa%Hr2&HU z*xNy_H!U}&2@*A%*tO$_z2VS0O1Zkvy2XHkarA8?+}x6vI`Ew;`WEDPr7~CSS@urR zI?-3Mp0EUApwU3~U$XTRkVixg>fOB=Y*(Us?K%kM5m^oko=$|byJ`p8x zrL)jFW#)>(=xFMDeP!j23JjnXtpmG8dDHF@PgRPX-ZB$i`cbsth>On8YxG~T9jqi0 zUwbYj<2OdoRQFC;b8}~`doB*jDRgp*unUJZEcbaU!|1!a8;NY0?0NZ=D}uvfYWDv5YH8M8&riJCWhNQYjrkiB|J8xkPMZ5tT=sB1ty3?DSK(Ct2%6*2 zbJ|Wy+>Mvlak;*1kncuNbTVT?TVPm}qI%hkFya9z==UCVENO`kIoG1^@`PZ%ln$`8xvkBHD` z3m>)Lz=GKO=YSgjqaPzO!u&95Tgjtv@&>2_F894lVF`yQ`ld<5Ndqd$L7`Hw(G6_028Vcl(M5s|6BQ; ziX-~$rb{UI$FMkG^{n4tv`-D**(9peOe|2J7{D2^w2ibseUnISxGsv}@3Rh9Hj?yS zK0Mb_Qft$iN~Pcgf01Y$@;9~?E$pC=jpWp0R`NmnmnmKDLYF-6ic(h%`@yrN6LZC0hG7h2GTwB#Rf+5RzhDLm6KSjTbTH?l zD~TM65|#>t+dYjpORg#(2qojvQV09Z)G-b0AoSh}ybOGFW@9|y5xm10}KP%Qmg{}9F1dm!J{>E$o?j{K2f)M==0^KKYxJszhr>$) zaf@Qks%1}m5$u^^eR`Tq(|J`#sV@J#{{X%xQ)x;eRTAtL3s7o#-wIOIjl&Y!l`%%f zwdardH<_8epZi#vZ#60^e@A zJ~zr8GU~@JiTwQ)P1*2yI$iksdOxnX@qB;HxZ(R}Zo%>6`3KF#%AH7qv-0GCt=5Yk zGDGfC8WKynrv=b?L(8) z5b5)oThNI94fQ5+xy@utTC7s~ZV{qDcDn)W2^4y6H4AslYX-Yw5+M;BSY4^>b8e3U zC?ZWc<~%wBEI7W;U^xHAH|**W9pDd%7AzKgQuFeb)5SB60UE`y_yabz@WxX*=fk)u?f(Bvd{;qqw^!b3tBbJKQ8VUPV3yU!4`ov$RDh>z+ z^-}|2Rx9Z;(BNnO!8W}+hGN)zX| zzw;#xk4~+HOIShL?v1;w#MUK@J2FZhXUHUl<5J0MvYL0!!%%{*p)6^0ZJNbA_MgRT z;h&UMyiWZQ!I~2{o(DgHbGcv9D;$+J{kO1$-=5QiS_=o(bLlK^U0qD>0&$SJ($ z7v^SiIfsr=0*yEtP4fwMTz@mLiN&2(t8%1If(Ytax0Z*%=NOrmGcQ9v(_4n5Z$Mlg^Z*|q8m#2&9(#cXH;g{16QL@S1eDMXb1m$ zegLg9DLhRSY~xV4-OY;HX5?eGQvo(_c{Qgj4cIQn%W+pDA7QZAY-?h``}Rt+a1VQU z6BwBJa3$lm9E&j|H4x|I>WCJ`xq1Z0e?h*DbaWwyZDA5R;uIgIkFOU#sMa{eYbmr_ z>g)$1ZrHWqx7HxauZzqd_2w3|*>>)9fDZ4kKqH0B0YG6zVsAa?=x7d6l(qlZ;4tHK z!#$HePmIEpoOqm|(|vKBuGSSjQ!IJc$w?8^!Jh4uD$qZD!rBuPL(xxC7}B7N(AQGX zP6Y*0&Q==+6$s6B6Mz3&7$E%^_YtBzsSnvkvY1<^v(~6pubOh7VbqX*u|B?xfH$a~ zmBuWDH3VjNYF`FnqHQ+pIPs@xrwciya{3m)-Ef&n*pc6Z$E8Xko`VREC*mG6jAHRx?1Nrp#;)%>8I zYuPKPe0=5FBYC~G2|TM}H_E)vF#qXLXNG02H&_WxK-?HGIJVYh2!i{; zllb#+=TmBToJhZB&yTk*rJD~kY`@Sd=t?v`#ce!~yeKX76m+5foMMWB0<5EZ*Q_R3)od3dOZ&D)PX^^Eeo%&MyUKO1bA&Wmfq8PnIX`~p$=-KfR zell?SBt(_XaoOA%%Y$8({#H#eOSE;3%6|p^9;jgHHJt9n2Yd9cwPW(1DMv3*zCFX9vTI!FJsjX-T%#iaNbU;cx7Y!U z%h+~=OrODU4gyx~U71ebHILPYR4_dXXcH#n z8Stmb%m+58^;XsP2o|u2bED+wD{0&8-EVxV>nOLS;sRBE;#m{`8sooXx*8jJcWj>z zTcuFce2*a7xpk`&{j#XxWJq4BG$q@k8(qd1#nNh#6~qrRCUq5_iso!Wwr3^sM;yf; zexyr#JF`c%!G0hut^dp^QgWbSCv*v-0x74KlE%ua8@{=Zjo&y9v;eBoFg^#0$kNR)5=x&s-JCF#JAn7`cI zopMIyJQF<)j@GYYLu2+6NAQjx7b~PW;{E>aF^odIQHzseu~@?DL0E{u!vzxpncRmR zw}n;~fWuY|#o>>um}|m+;I!XSlSP(sc0XJ87$ZOl-2=T_?1O$>tCDlS@GuBMCn2h5 zQ1N2=NNV)378+MMy{22~iE-M?f}Z91w&kCvzJ!KPn2=ZsY|e?t`-4?yyvleg@jFzY zX&>YI!vU59b9_Xi^EVdIWGGOCT-G;NVU@vn4m{O(6+4kyEkFBPs=Q z=3Zl9a@3w`d=Rq%Qlkv`tE;}uGT;dbG(2loP1uw~$~DbLIyL;>#a&rSjv)F#)cZ3> z0SCiKc5F9Mzm@&8FY)`6Rl{>@?vcIc-WE8xfBE`a+%f z94o{^S~xIZm-cNOdBgO?u1GbiteQHi>P{q3=t}`CZ^OuZo?5^q^og)4=4?|x{Ek@h|-BwlKtxgr$ z0q4=j_|~kAiD{8#g55}4VZIRDG~Fr7n&(a2+%2Ogc6i^jVDDpcaMrvz+$=p^eZPd3 zsm2#A2fiuc18Sgs#p+WA*cIdQau0T+3h@sM8_Ezx?gV=(~)Aiz~y-^{xTkbU%(t)M?_1y+fg06fbJVNk|+4!K%tBbEe) z0Bi)SI?%4Dg&=KJD7wFEIQ{k7Ahkr; z;seEgV8t#|JkAJ6`kk?UG1Bb;i=U1ye8bYOfjcmKk|?BKEXv!S~7n zfaE}(W1}ukVQ}bhoyZ4d#L2*rT(*sIg-C8|i?%mJ zuqx!B;Kv#b-B1H34-*%d3K^uovbdPCG6E{7s+SS%&BQ4F0Bk<7w{3H`GLZKCmjv`M z+^QLADr5nALdst_ZWv(o!Va?!+R;2><^2;NmBT05R`jE5$z=6MO#QFT2C6bpucp?YW<@q+#&$aYc({ zK&cGuxIeojAN&?JiD-(ifQtvPrxGn3#I7I@8#MjgZ-JDNZ`iaIf#X5E7cp^VezH1|B&JE_pDPEq{X$y;Zy2BUjPD*>eNBSR$G$# zwt|v882gCO3sUnZA?z(6Ep**M6RUh-{WGjgb3Zc;4{!5299Ua{*;8HQy#GQP%iF}I zKzG4*t5k(sFKZ}?EzF3*1Qs8hu(QXJ(Ebz}6>+AMUA~tgdH;B~1!b@Mp;; zco=DIU%bq{iROHt3^Sk?VJ_(xX9rRo4obDCWGDw9@^^>3)yeT}SAnmU@6Hl56r@hi zGNJU43lYQEas{5Q8ateA%$L+ivvNaKzUKkm@u{0#fo!uMg60E9zm6iLtA#d@%^xwe zi-%N&O_qz=@J+0%tVGo8*V&KRU*z z45#~^TA%3yAA)6U2$+KU=6)_w2okiY^Rqrqd8)FM8)CaR7#!|dx^M=2I^ZIPa+-oQ zoQ-eMGlHPao4$J2rdUPmi zvO*bZB$?j1Y%TstkhJdANGZ*2SIj--MJVu7u9RtsIq9~UsLy;{#T+P-u+Oy=o*O@) zqA%17Yq>biRuB#uPk+!tH*$M&aWWcHoTMHN5pM`RL(}RuoenoJEIh>)yas$U>K?ba zn{?h?B(+*gJ;nBt-Q0iyZdJFJt^cJakA~j6P@rjqiEQGULzG`7M=6fzfk53v@bLZ} zj~A%AgPjt6ym_B1>8P}xl8?_rL}J{WUy_owq2bY@i+a&Ek)l$0?f;{l2sUvxqbMX= zahiS3fqU4bD(mLSXZ(UjrX{uv6Ss!8115?#>`mz{E@;m>$Q1&9f1}R+^&2PN+q-SW zO-tjJL5k4MoNqnfwwK#;QDLFRKx3LEdA&I`QvgAxHu#RnpP(J2c ztk+*ry$c=SnI*vsylsgd6WYPzBzL0-wFG$wD!=ADx0Nz3isnXn1WWVK`|yIu0RdqHkssz zh+M+)-a%s}ajdAw7;QRIOIbA4R5K!1IdLRAsX2s9LI0?AAfafj1XV#NVvVVZ{D^TX zt)0);X3pK!C!uxb`CJH6S7i(OU*r}H$J;p3xLK#q@rxa)-rCS4Q)re9i@&$d|H8H>qcx&W3EGg)cM51@=O!`4!_TwKfg~}YX zNXL%jM3jRBll(SgASXi7I^@%J!(Dk@R)f1Zp|SvxllQDs6opt82ke}iK1fju%Yc^3E zT&cK>a((YZ&d4+!LA~sIRslBA`kcPY?37q`2C}kDD?V^OI0JsDWQ)7snQ_#MSY@2j z5*6_1bG3z8XcSCyb%%G4rs`N5$Tug{cN8L-hzj5#2SdfbE5^6GffPTRD*uOK@F{(^ zL1+}Vbh$mu7cTczI@JT0lPX@iSksbUDx4`ARmSw5nUu<*9mwgYeFnN6)j-N_WLWuZ z+&zIFJrglSDdkvrR(Kz|@sg_Ay?vZO^DRK|_%7l>F|jyns7YwG6skRO&tv`~h$3|h`N*q-CMAgdZdesd4kln17G0##6I zW7!t>!Vt*H>}fn&BQetuIZ)IT+a@*AkNWpn{6!vvmn)~}dYK!7mo8${J#wi@Byg`V zQ!_m$Ox3}ftXkqO#$9(d6}@;X_lt3_5!#G(5;c+NG^7UmEundTPcAb}U4_ka*=nR{ z?%&*&Ye!Os!%(M_ors~E4 zWWg+Id_CiG5yIRrn_1M3;+OuJb@K5dn`Gj~#>OM;nVuye;xvW@_xJWZ!P2}W$B6&X zGdAGUx^|7N3E;Fij|DC_JRRS?)ixP!X3twcG39kX&zPg_^v;ojO^|V23jBo77?SUc znh84ATJ?Sv0*&UwweyRjyk40k&(!V5lo<4-b3pb5x7o#DsGY`1#w6KWja}1}?I%K8 z$zq3${H81$7j#-PKQ7s$=qHn+H}X<;)&)YAclF~xYLZySzuKqPl*Dgru^R?ZMSEkq zb>|evxEOXu_-)lq6zWA&;S6FW)!Cr@Qe8FJ!+-tUCA3C=;J|;O(({fc0qRPP<2clV zORm&SzI{44{rj4T0P>TYG82E8f>#X5zuj0Xjytk{LYVmx6rOyu{}>$bP*zBF%r%$J zG20ZVn0`9tah8PkTpOz@O=(`9(U{D9>#l!#V}RS)AobE}tv+^mxtQ#>(G7xGkSy03 zZI-Wlp~Y0q_FC#zBF1=EF!hGaL^O>Pp#~R%Atq40H?kQ8?5P^(i*0po)Vwj%c{c|T45m8(`(%Hka)!QrLmV9rF&__XMj#4R zXQXn!ZYhYuH*m!DRMS~;4+^DPA4=kSilhI3M4e-JoZZ*O+t{{kGj>k z;X*cI#JcNvC@e?W;7F2Lxo`!SfCD7vX+|I?KdF)s2F_ci{$uOdI03-UjRo9D?_)DyDS9JAPlR*}rl#MVl zAhqegyY=#AJhjvu%KNi>Rn$i8>Y(sQ`UI}Z+25t%gB6*j0~GR z8%+#cK4 zmv}nLrAsO`-9dIQ#EOkLFc~E$O;nrqu6(y49wZTOhAq^>aDF6}}ux8je?yVagpAPrukOOXhQCHe0~I* zDTPg);nWk5&z$E$r=2>nQ4l7V`HoGZs!LuC&{??JUm+U>{yA1K)9{>2@qs4;B&J|;-5`^Z?a?-lLX`?P7gNIy}; z;Q2e>MXg0NES1wm8MjHkR#ys2fx#A5E45LCk+oA^vQLhQg>JCbw+!$Me58gNDfOvw z;1yay55#xwV1<7Th@8;n!=3G{dfl}PC&;tk(agPO_WR;(^3M3UsY>nWub#lpTnHx^ zUQqWLvdCBaSfEN4v2A~&bi80_y{C z>5w0YpDlx{+l$)!CQf^WvX~SPC`9R*lXAKgajTjg*ZF(uZOJ|%>~K9yS4WwuP$jsK z4g;!0bVZ^S_QzB8+UQ(-y#*Tt!z#PjH(Ki6$P;P$d64sr z*=4!lD6Oj?~~-;}R+ zqn6i@ZWGkUZ&nn(LzM11q8&B%AGfG_l^d2im}; z2Q<_Ebg8h^hX`Gr&Sh5hklILJT15;b*s6>wa7s$EV|5}E@wcwW(eMN;NfY~?EC=N0 zFrq@Jir{1;5`h*38Wt%<ql@kco;m7iZ2oIg{XmueL{w|w;V(Yr+hy2+N~NQx(aQSl5jw^&f)g{&>IX;-V3=%(j?k_1i7Mqf z|Cnq=P|Mx6mEd*HzYi7zCT09Chio#m77kWB(VUt{TX_7L7u*MXep7!w{7S9)n&R~3 zb-wqh@)Oy4ZyLt1iiv7gX=%x<3_MXLk4K5_sV05h3hIx3{ggEsMljBn#YCO=!5BA1 zyKP}y0IPdXH~M7_qCek1?dt83XNfHk9!X!_6e7k-=lqvAU=8cKTpiB*)D;cpjqm6N zmWY=`NC7T31B1m4!aOYE+D;S;(PV>blE~44bH^Uu;C>^i2N%v6YbHcXkKW2WT7d8< zdof^Qy2HH81G*>B%CKifnZ>exW&d{&@Y~+X>bK3xq!&C-4`NFj;&4*u?>@nR$4MP< zXHPVhI0T43t`hSFx-Dg^{VIcr`gj)P$*=PpGqrOG+U|Tz`3^>`6kHh^)Ru>a&QsQAHE)0>H{gY64m%(Y)ijv>YwsWurB?HQi;)en;{xEVxcJY z?(F7c{IbHfaWDNU^o-UGl*0uvlCf?6xgv!{qAXKbSohPJ2kCZ+(Mrvj9<>Oiv0bgY z-B^b<2l>YL)+|8{y3Ce5efodXK<3Xi^SSrTCgBxS@wex6TgP5Z_%IspD?)p<*}2za zZO^D_A#!=2?nRkNG!@lgL%ilmm>S_^%?RKGgvR#}5_R=|IcnM20$o|BC;zm%P(J-n z3L_KOm+RS8$+r-|(uJDGlJ(DXi#CuDATWBNswh*(y#+Kw?0nl~_j75Or=uPbhC>_+ zcz2foV1rg>_e1tIFyl~$; zgT-N!&KXH6hkxc$W4!x zlu23rsND(Cl4*&~L*91Ete2sa!~GhuM>IclD}`c;bOukS2V9tdHJ4FE#Skq9UX$H) z((-%SPbfZynIHL1wmW5f4>MA2hTDjZ7ED!7y8fhAt%OdG=nZ@amigqpV0z(Y-Ahn6 zFX1`tlWIt1(`{`?ye6mP6A|_HJQ*KuQrhCW>I|TRi|6Cg?Bn=@VrQ^&D_Nsc<;%gR zSHDRT`6q$M+r@8C7rx?ZV-KpmE00uaEQc)+2x|D0?Jf{Opjn7p?yd2P_Jdie=+ z|IHmP7*=_Jed?wEz1tSX6rI=wog^D^Sd_UOSOr@+?xp7?#@F0HC|;H4VNmN_-h}d} zomXSopN0ab6lGd4$_V?Gt#G7ik^a?gE~%Ih7<(l>hzMEbNwsRXL;I9eM}RFUvAe%Y3}J6O4aksUs~Ik6~lXQP2` z*YO>qth_VG=;yvosM6=w?ECTVgaRPcj(jB9yiW1Sm!--QwM5{#K_WrbD9jZoH16aq z)20Q)?gVRVJYQ;~lK`kV#&-64-1&nrOy$%y)TH{kH>L=cT4^uvstlyI|0U~kF|qj1 z@jE>QX6s#uW!xu5XkzSUA}SoS78jC*Zx!@rSv^6et4RiKGR}(>6+R~!u#_cBcj?Qf z5QQe|1UKig&aTB29NIJ1y@S)?kZOMfssmgmoYbs@3!k_dAJ$IFlzA2gwC1wSPDuqO zaNy6;sU=D;;qWk+)HznRvh6csz_;m5I12rl6NaL%^vUrtK-I5}+&UcIh|k$b^&i=v zd@ziB+y4cyXaZ?`qJ2W53H)(AV%?8Y(G4%P*i@OX+GyARXtj1fjNmBrRgjU@I|i|Y z6-(37U5--B>6dvO=@u6fndesB3KphaOEw-Cy^Hl8`vt{x~xoKg83oo}* zGo;;$NC@@IMp52IeqnpbwNvC1ve&sJbJAhT^n{n6=Zhh&^0?Wt@)YF7g8Hx0_^VR{ zWLF9&`=hx{s>ntNJCH@zJk6mR}rOSHX zpv@ytisl`A&eKrv5Y(EUVybkpO{G=Qg4~Q>vh1n{U$l)E6}9ctdYN9dS0=PDmn11E->6(ky=fcbClfXhNf?mP_6`LDkB(`~w`kud*_$pG6VFTv%s+%;aRfXSSF~;g zlP;7yizR1@$Qc@cc#&On)?EOWqno^Z(#0n>~u zEmm@7M?TkqtRS1iu3iU%-Bu&8QF~s%Xquo!@~(66T(JiPHfaOWXpJ=qzsWig0gJ{l z;>i>zt?FUB(fWfMe)V8l8$^vdrjAEc_lxFev|e$_echD)315k9tdS6&wp52a?CrIj zhil3Vb`t4N91tSb{fpdjFNh_+_#=w-qdm}Vbz-$x%)w>?ABlqiF-bP@%WbQl)Zsx! zVq|mM{A^HRU%M*GV1k4!G6+Zq?rrXkas;e01Q3XZ`|H}KTrRisUurWo*Pz^CK0+M$ z6SbS_Z`>>AUido-2>hjx6tmcR7ki~DuyPQUQO?YKnR0go=v-9Z3aJt*rB15{uZ+L;S2?2P~*AR*dYuGqc}L zD(TlI{>M!a7t4VWxByQ2W!fFQAir~`Zp#AEw&h^Sw&AaI zj~7dp=g>fHO-so#uHR=4vg(z)E zIZyxk&Cv%3@5FvD;|B)|V^Dss_62z5$@IcqGRMBug5U2U1PkY}YKM3W#EEPz(w!-= zW^CfB_g{j=B@DXAtMw(w4%9oAI_Lw0HXmV6A4m~c({4k<(Zzrbs0s|zXz?RJn#$tI zR|yuR_6TaRq4pH2Y5&D+9d4-&#)f{L%7>$PevUT|&=W09v7|VVC{o0_FE-F5LUbbF zsZl1S$5r_}K4X6<1pwuF(xE5cxO7`H%uJ z*r?%WKa8mGwv1-Lb3a|{@gvX6A7uqVl;o}*-HC-brezW^7 zfAt4-CPVb&0Qp)pn+k_>g!J7#fBl}%uWB(iE(pq z0^77Y)X4AjpA`-g7r%HsN_B{X8U@w4>@Jrfu4N?tEPz#Ve%R@x znC$mlZj&e+q2wb3w=FVeYO|RC7KsGWZdA*!l-u(s-Vv{*S+a*5T0f3~yS1tLR7g5S zY=rIFKiPZo1iH#N}Ppus?3S(X91gjd29I+>JmMII22w@%d)Qoyen)4Qer z%R;t0^n|Nl2n{+opAU4WKC1k$1o8X=V@hdE7M-pGo zdfx^}XzAgu<7woVV9&)-TXIUcn3I}EXz@6@cQ6{j4BuP_W{({X6i13q@c2*gIGqt@5w z)*9H&${B@l@h`jfNzZ*3Y&W($z9@>CEBvVC(p3QD@_AAc)Gx&P_N_r!!RT=m%1qq< zsFw{PY#J9H7BuE4>QRtX8+_3fCj2--X^l23sr|ds;2nplV%o6bVA|~;cnVBKrW=?v zS=j>h`Ps5z4DOGKp9wJ8GB5`yGy)BpE_MMG%{pcHyQdgU@DaItov1s7R$sof!&L(V z^il-ewT1d-+)?0TQk=dvjmP5U5feD(4fqae=8u1|lKq0e9qFq{I-P^=-*aGBT!17S zqFITQ8SYaKh-h>YtX7dQZ(P1V2g z?GEI%nOb#QPs98P<9u zPQXuVlXpwhrgm9cGDbyuAj7jpr8^q%^`L>9VPj16?2$0!Z^aL^h---8y?K=P_8wH4YQBPfsiat+uxs924=+;D#ARY z=4gLNnEKgl170U1KpneRulq|Lgo1iSzwY;S z`^GVGuVX7@u;i@%(`mbw-mn{kj;Ig2Rr;!-5J`%(KQu}`=*sj5ZhSYP@{7dp|;JmUY8kW@Y1ZQs)QO3L?GSIQ8&Rbl%>z z3oAtKtz!J$`7~}EEmD6pM^-qYx6a3iz`V@V^77v#eEZ(pLB1JR=cE9j1b`Az*nCZA z1Co56?oBk>bS1WAStR2SvB(W^hhpcBt&$hZvt1s%9+^~Qt+1C{z!~U;x9_mes0En= zD3y3T_Xzq`X++WINE7AE@9J31vZF=^mHs@afcfq{+GyXKoF3%%o-Qt?Vkjhd3!u-Q z!m%+h-}SY2S!Sn6Yr3Z|^bWV2^OV);)S|W_p(>yksEW{)Zl*4&3jovt^cq`%nW$o~ z$WxuO8FQiRl!a85<&L;ru!7(~z1p0E)2OFqmJ_4GLugpVY#e<%0ty($3c^=GmMn`~ zFW@l$-4XGHAr4!%mt^H2LK3u0El9KxI||K^(fuqD!WY`&X8VGEnbh+;S z0m4R^(l5=`v4vi#?PPROp>x62n4;HS8m{BR#E-vCFm&3Xe};e1vz%WAIIGhK*JJw6 z>_|j2t*9^Hr>#TuFWw{&nBwmS;BsNZ7_-uppw;!)0%k0q5n~FG3=*4TDsU`Gl(-6e zfS4@xSs0hZ%Bmo!8(j=c072}u#p;naV!V zgZ8$yt0)#db~E%;&U(bJTv%L{>OEY!;F&n({TGly913Wh{4)C5$)|fmKQ~eJ0Lz!U zEMjQUf-fb_MNcPBn}Tv)>}W?~hfB+0E+BwiosBY4Z>HF|RI#`xoTCb^u#VX1bO}7+ z`v|w|nMPX}QoB3kKZM1}{J~c4npeJx3D9)2j@m{6AfOgM2$HqC)v$6w+Jfl07+3`Z zs07+bgcEXR&a!7&cfVmgAc?Ebf=0(*X&dZccJ9xOm&8+P9<^}fGLVqULsfmH2@S<= zBs))R#nc;ZW2G|xaBUK1Q}%#npXB-w^W>%e_s5@CTC$kW9tMPqUqT^0)CC(z;WjdN zOrbA+c3k6s7Y+qfTmbeOp%MNws5$lHXKHg=PFSeGoR`r(H0oJob#CdAa3qMMWr_+zqCi{yg#c;1rJPh$i zUWt-%1UteM|HofU`1;z5TTv1^gkF{)dc{nxhG^ip+KT(zYZ8Qh)VbH-#T7{i&+8f| z+u_o0rDPT?XH9{04m8*FB2F1e0J;4u4R9ZqOL`YZBj(<)%P78TLern%enogx>Zv2) zeQi$_{kCX|s|GY|ah-bIKzr}Uo57XMZ73^F3Z=!Oh%=TGro!X0&wO}5cgrw1<6?lx zr006I)$k$O0@YS9=JmI_&%L@6R3&BwEr7g)zuTB%si=z@c&xKmeVS}tbR&2zO9LPJ z2Ch%hn|FIlaK%CfNIiCMbyiCFerUp2na~rwtFTN$75WObJT-^rnZ%g62OS%<3x^+? z@pp$Tclmd~dj02DgQ>{OQ*W3PPxzYoz6FVXI|0@Ne%k-Vc|X&Bkv=tQ-nEJ0Wz^Bw z9sI*AuRo&fhtVb`Wqvu*VygiZARTF*e)T&huCSr^X=TfaR#j?61&5Uevfe5N)bx>8JSFD9S>EW&r*dG$&KVi=)av)wKVUlSsmI=?yA&82+IMzV zG+$AMuO6OSn5d3ppz-`8!3GtEIPRdtr`PfYds75#tmoGKeP z|G?4)Enc!GZJ^W>$I6^S1dv3qZWOk}?9~`<1>anA{s0;PU<%aIzMHHFnW17WIe>?b zZV&|-lMg?80QcT|sik?{O~2HKNLR!on@QEvb8f|I5zgI-xsKDeUS@oQv~r6y*Q0&k zz}94Qj+5-_jBb)rXXF3Tal)2NkRt03<`-z)IWWv%Mk{2w#IzJcrGt}NvKiAkY{mWH zKRNr%f1z!cPu7WE8Mv?AYLMd5tAGqk%s*sbt^y5J?JpTH5nzb=I1uJdgYEhL6f*gc zL7+eRT*+Qa>{dE^l7zokk*4Wt--}>?=UqC5B(=W%JfXFFklq+Tr{bOkDN7r^q@rpm z@SJVL7e6q&(P?;k${0+F0u}o5lVDUL^qJsywnWh~IpG|2Y(px8&_lB-g`6$`(pFh@ zY52p8+*_sg?%-InX+LZu<9f8|9f=+1#HiS=6Z<#>U6tVpS4XuJzMUn0%nDEAn}hdO z@`W;yQB@B)GW29&m3L7i+ju{KA!k_N1V=-f=mPzL6hJNZei^ozL=L`Ym0*04S%9c+ zCgz&@X$zP4kn(7vEB^xByBLXj+f);U_3|malFqpQ)Q>sjkoU!QHq*Nk{>JBi)ol$% zp`Q;&8+glBYI0V7yApcUVm4@hFF_RW{qq-ZHsl^d0+tqVV*$yL`ap-x`WAK=W(>_! zTiA>h@7wCjNFcu%r^xb2J-C5Cmo-Hb*cS6HFDTDKuTEgBTC9n~_={`)rAwG>s7}z! z{200p`4L_9ddp>X>>){M@1U~9h7>gyG>wt77Lz?H3#kK|gk{|upnwG*aJ-8-XJqVncB&?+ zKkbSFL7(mclrr)t%Hx%nGW(=u|BzTjJUqOEb3dXrW{QE388ZvEqlxqDeD%#-(p8z` znb3AZYRlFdMg!g8b{jiW<^P%#6uQ;Roj`My1_oi&9b(-o)f8aptLqY{i&~l?iZvY( zKiEC+6}~wvp%R`ue3?mIg&U<-LMr-7NqZGz^EG7Rr_f;L2dV{i=Ej*P>niM6BOLqN zDo|;OW{_N-u0UWMmcoG5vGn67Kozrs#&4A#au7Wr!I<3+!H@1hR{l#m$JFqatm2<` zq0)OZKxHAsfpKqrwqdGcMadT788p+ocEDD&WaADZOys1x6F#kLfTsV2v5e~mG-0~q z^gXm1i1Yn?bsG|y!z%FMDj$DI>-H$!SbQB-k}PZWlwZFEM~PHB)FX=u}Jt5J`6-cC<0iE8$?D1p&1kq_=dM>10=xc8IErQ1nS~ zOaesIYSZ?!PhG7t)Cr0Hi{MIgO-Bb^htK*~zIl}ywTz%f$Z~ELm0ha(4p8fyaAJn$ zm*AE#bRE_T@wM;&p$%>d3l2jkM4IO-JS;?M92Bf(;|=pdrU4Ch*2ORyLUS02)G8OH zhMr&;rV()mRksdBMu>hi&IB1;9n0Pl8ppvR5)yeNxkM5C+-jA-$YkLLiC!UF5hDE3 zuFDrT(}P4{+i61zOJAD zE&1)AA1j9_^jS&~r|t-7rxV?h?wO0qFhB1AZ)?H_HrkTU)#@p+-4 zHe56iuq}UfIw2`1#|8P(h7N!Wj$@CmLeY}>*B7`D+8qLT6c+>!Zw3-%Ev~Eliax4d zjx%yZ953+m^d${z=LF@?Z(p6_4^lf}X+HRTf0)QMPK?>tl#V%&`1#4#w{})?IU^CN z>d1l5G+Z`f>J)@awOz=3n8Xa9_9<)hm>ly`u2jWZBS~#nyq#aBiK>yJ#H>U?DhBYG zVxv(PTF=}kejI})R0sEKns#@}OZ&#v!A;9GvO0m|m+?g%zG%pbX;tYC21QSqhDc!s z%!Lkg9h+REk$gR;R%38*HEHM=rM!vw(Wz2JSq=;7R2f&v71AVg*_-^>? zZ-H5c^FgX{15eiz%ZvH($c#5^${0Z07^Y(#g%5NiItdevebQD+`rIJDos$7D**<>q zZG2&63-HfxU4$APxO^5I>CkRzSS6-OupXaX(f~N2>5N{oH0E z$m<;(uK<|6^doaU<&bMZzz*I|xt}u*?=@+6Enfz#IL=D8VLB#7^rodAYeU^OgViFK zZaw^2fr}%B!7dKjSIpD3+MMVc$0-olM9kx4*B_?Wc#{Ale2t!_ z+*b0Eh)zA0%1T5~RJ_m@U)0l!hNjaZ5)egdb*}(~sTIET&7FhhEX&F9Ocu6QXILp~ z$Vs|yrT7`zJ~Rq0j7g1?)zR0& zjc0uT)e80X;Rq_%N6=s|jW$HK5Jf+-PbNgQ1fQNj4peQ?zZ@WR>- z4YqLjZu_XJ&uP9-aAHn?(h*g<9v5|se^>AM86Wqv`;&Eut#zc}air}Yr>$^faBn{H zmm*j);+aoD)}_wm4R9jvNplYB1I7NS_a{6R$gv2nhch@P1Tn;>bw4?K^M3F@7mmDM%0R=$6*|R*5t{9)inz?+p_k`-)eQ9=znp z^fZ`!!WHY-z3>6}!uTi_WqFj!1cp)dghsn1t)lxxhpiI>`Ws7H&hPJJPKE)sO>dSZ zCckfcQ2=FX^;NMJT;7SXHMZ26{HTGgm5NOKtwXvV@^*>&7D9^e9RiHU`kuraSkXWB zrhrWSSYr2$i^3NL&Yz^ibd#j>KkH(@0ysiM+!@TLfiRW^l3z|Gn-LXc?%M~(TTUh+ zkuJ7Jv^J3mnjMHrE~yFbs-_S)39k{%X85|4VkExo06JVOe7>cDcH6$1Z-^FXa8G@L zB%0zQD|Kl5Z{BAI`26{j_y^xCdop4&Gk z6(-`hhqp%%HCDz~e~fg~*Duo?uEHgC*z76o01>GZY6tYj$D4@E_cQz5w;&@aXjf6~ zPF-=ULm={qe@OX18ub0p!&BG=7(mx65uF1lBB}@0CPd$RvTlymdk~A4mufoy4!BD@ zE<)}cl>%YT?QGs3v>M}(rr>p0X_3?c97-P)MG5%2qG$*&>JziT){5PlV=JilmH?x_ z>Hxrs$vZwS;8x#)#jp0XW#L~E@79HMvWfv89C>}Szl@!!qZR0CN*8K}YSBgiMv<8< zcD%+skuX;}3TzQu7UfXhW^Wi$|LHX)ww(?=45_k8#qK|ofN!VRBm|E!2{kDzh*r*+ zvn3XvkB8=c3e0=aJ{0)^V`J|A@x=#09#G>?&<89j?}h9in;f4T&LxHe5osnfv1xeMmh6=`4KaZ+FOZ;iJc8V?IejSJU5pzM$GeKL=_GE zgSBcLNuDb5Ri`a2O=xIo8Ho)6DL0?RZem;L{bOL07cBsSfE(=J%OZ|pHAyQ zAoIIcVluLc7)LRn9qdA;VkKli!gUjN+-}#YC9<4~ z$tWn-8{~@6htP-peuzmi4Jn~t?BDx~g>MqkM|S(a!2wlmfb8h|v&;=$@&2o2_pCy?Kn#jVLG!+l@D~{>H3;eQ zuq;$^+zn$?Tf)b}EB)NOG(>_b41`V<&%ggqC|=^k;7fzOYvB)yS;PlMsIRR}h*E>E zv`l&Q8SWyu3pZLA80i?>4ko!Gs4wlhZXkM3*G0p80SO7 zi8fnKkLGUQs2}zOO0=ictzM~WKHD@4a)vWqpRNR1QD&jUifNijAgefYUu>jZo_}kP z@c&Z+Zt`|aZ1rtu+B6G9)r73w+KaGFthFFizUQ_ouUwfjiCKd(xAw#OAu7*m^kj@b&|I)v71RT8EQ}U_(zZby;gmolGnXVGTJUQ_3(u+43=~7mDFT$ zuCJ@v;&_$lEH@`jFWg}5EV5f<(#WU~*7l*F`l!C5c4+!ajri*(VL<$y?NKY6v50vZ zPujb?%Yt1?ED_%nKL$?&sWYJ{G7_;cXeay%9VW~IPqehM#8MGzWN{WGZpiL0%n(W9 zGo_OIuK^;?vDZNeqA_Jb!MRvWo+z|HV{tL>e0S7QcJaP*<-5ASj%889I-~1;mwMux z)r#DTx5yX=vj?9ljsg&yfZ5nvet5U+wmDv^5DL9tVQtdTS3xhvmDD%2iAOQn@}C)n zvoPsNo>LR!PJ4qL`_5K;8$froPT$Qf{Sj+kEPWSQ^K-oXo>T_@sibG*B^{PDYM?Wdtvb(v{qJQKJc>21eJt_Ys}#4v%J7JD;GUs zy30h!Lo3ZQ4H&f@Fij#f{N^s*&oU@Hsu}tkW}1MM2FJlt*2*!Ix<1&y(~)mjepVBF zi4r}?XHV}U?l|g9y__Iny+32YtBNcvhMZZ(IV;VUE8{N&|GH}+Dl$LKlV$*=&2*TV zYWWr>T3@O{-yxZ+eyT9=(6Q;i7+?*)MM0rdK4yKZu3s2Ss^(%n?obpnL0v-@9Q+wN zPyTO@Qf8f5#@hySspZ?UuY}sYOPsbR>LrLqoC~F6K(k0we_^vEdlr2@M)PAy=s94q z;HV$<+Ljo8xor35|5tpnjFr7%ZQ)4_raLC{aI-o)U%kjUhR|^G_4e1xc?l%FN z_JlP~#g}rE;sq-S2PJ`3K}8ltXt!DYY}PVo(pbgWQVSKlg3`)tw+nlKf&rL6WC1X` zBro+2$Dih(D11%vI;JYM3^$!qG*B*4 z^&yg`Oty|k@x5R72N&V_UKM=q+=}%NsCadS_8{X*wJ>^a0d1l>|Fb^-e4QFYaKQO_md`m^X_6NjN;;YZ2 zG%6+=T54taqSxaVE%}7`t!5v?qD7+GjS|GWJ9ohtJz6yp)QXrx7HrCiRYSc&VppUJ zA^zPy6w88%5{>I2y|*dZTThoX!eZD{s^2rGjPntu6K?9%5bW3hy47p7h++Gv%D_uI zMl71huDvl3d6UBDkS|##f#QSn{c!|^^h?bk&E;2(!RRcx05VRx`mi|z404CN=U4aI z8-nUV@8vh)Q~b>86wahON0Mcdg)s}#esL7sG!zS4<(Qa-?l2J4u|)(V%Zmyt>y1&S ziI3XAYZ~A$^+c)lwQr}m7)N)e!}Oe(+lUd0_iUMW^#ZH-_G8>R!gm0rRG3r01xVAk zd$^9&X&z}Z5Y|I;ZG^)k2>rf9bF~v0&nYZh0JCB}ZSli405Gx9@jEx(aBQCwVwwKj zbElwu=++qAJ`ieN)6Ky!8{nDd6iw{xHY+mzsQMsm`o!d#u{1g5B@kPy5mimAI}C=kj~?Ro197 zG0f#V7RI#x@6oI67gIFO09&DUPAbegjpETZ5%i_VY__Xj_`-n3vE|`G{Biqs`VGi3 zK>OtL0&@1X6hx$*A$|9QmBohEuY9BhH!h_h+m7b}?BE5jV<7_jhJju2L`3QY-9E}; z8>>OD9JmS~#X-tqZuWNUh7d^X?JlCe<9P*q+`MEnG@_5{3k6Vp)n^kK#=C?-wMe4N zvJf}6@dDL9iREK8N8eqt79;%Rz7?VXfH4X#pBwa@G3|%rr0j(x)Q7ojVcx8lUMKG2 zQ@i+)YoUF`@>s-(D?^Fsu@#M|=8Hbe;Cu+h35<%w;dOI^VuJ+i9 zNc}4yvU-Vd)jdSERbF0X7mJ*cT=&u9haRip*~nm<7`oD&ZU&azgxZR@wNAs!`Dg7O z`yba~UeIGdaJuenq=(=R#w_n{kYo|pTCeMNC2}w8Y>+pEnn`9gh?MLUMDy;4WyL{= zPv%#OD>&C&1yYy}HRxgUXI=Pica+U9O@ZcuLCbZyVtJQsjeoo!faM&u$T0FbS@{4_ zVjojaa*3Tu8rgXresF10brq+_HTer%<+o^0Tj`K|NCswWu%QF*U&D*n5WBbqpBv!N zaS*`7GHDp>Q(C|6n0dCgEq?*n69JoP{7wslQ^CQa9PFwuB62r5*JDcg2ug0qYPLW` zqhtdd(k;p&b!(0x7nRhaPx!1#RJ1yHaiBp9#WVFUWNNt(lO7>fd%i5qi;Ubr7~ zH8ipY;(34hHRuUlBU@(s=NWpGE*T0}XQi#<RY2^djTWX?*;nL3d{k7D>YW{d!q%*EU(;X((H!!#XGxNBTVD<)(EDDWq z<;Qa{hNBlh86er+NDO_K$|}2;jhr2?4dml_Zi(-@Ha-(9XT{ z7XFN|ETMtg*^Nn+o=`ifbv77%jzOaJF}%)rSw;4^!!7zGKw=HBDpm^-W`H(bS6x3; zvoR0}plE!{sSy%sZlaQ_1k62{Du&AYg})4Ck{{`q$}tSp6S0@@h#D0R#P70J> zd~1qPg&1GOq^8YlPu${)kq_>p!lb{fU{K$RuKRKblSz016QjR-IBU1WJa&Eo7^42M zD1U55EMJ&;DfEd*Xy-f%Pftjr0(Fa5XSrC$qCzgl!h-)g0XJox8Df1iDOI{v~OoH}xRjzgQ0EM%$Y*T{N7O8d7IGcOh0 zeiW3|a)42i@f}DFZ|@~E7AqfKb=)|>NXuo~UND?MKe262-PI#({h=rKKq0iFG|Y-n zpmL~WW4_v-smHi1jqXP>=FzK3y6C}ZY1j& zKj~WEgx^M2XoB&&U>Fm|IAN~@C+k64b{{iM5MY)9tFEqLf)KO7din_t8_%CtU)OZ3 ztc!^Fq-(HNiLZT3xIoH8Y;R5BR5l3`#K~`ntDPIEVU79nRtF9<)8;!AB#J5j3WU-xG}@C%g#)lT?I^U}qeyG_7|+w+gZ%-6#aI@h7D1LR-JDja^;*9?(4f1u)gT zUl@=ac{1cW%cq}Qj?_Ep7t0V^h>2sTg_Zs>6$8$AU2xwubxIP2Cz)E(_@$_I76vpA z9wQ^Nd10%lLS^)~R!dk+9>SZTFdDdEsKrRv=$Rgf({-DL;Nmo@ykEHQE=+W<_E%1O z@thzDT-_;u3`{<%PE;4r35aT)%zBmH6>Pso2pU)JD~&;c(+de}n&sv(0!9gQhSu!* zF3sfO7I~LkI5k(P1cY+q#A0CiEeW9dm6cr0vgw&(XzEuIzTX_3wN!SH`+u5b^Y@!x z_v0#jUe7m;e6QChE}K5DQk!f52P$y8+NVJc;@C@UZ@Ti5;&XRPI(fIDs` zTnD!^&jf?2=mR~ZhcvE3jAj!hVh3|t3H}@3&ICJ!qX7Wx=Gtymp8br z?kY;kzgZ%Z(R^8i8fHaXBl$r5W~(zDRF`<=klgND!`^R476cXxq9&*q^xP=DxP|FZ zTeb)UGCA;KPmKwIQ^j1>gnt9!YJC>%WX(yG(lb?CgO)oM%%Fj?Vb-9GLkkqjoB?bO zn0IypfUGIBsGmTWz3`4qR;x2BQ^>_*1!V~1MP2{T<-}Cso`1ul4S@uj{vJIVt&i{4 zk|R5nxl?^} ziSxF7lDM<^zwK03UdCfBCh0RioLPY$o+V=!&BH1Bvvoy!qn$7#C#z%-qM46Mph z*K2Q0n5Qi!-9QbXB_|lWB`rls1gHlAjeCPJe2yIz5+5G9%BgHJeSV7r;`8nwTb=BE z0nqHYh7Z?}!hl1QzE7Yd`s=5CIGOa{X5u4oK%F2h8g-SOFL0v(+UeslRSGf~_8AjO zN5GGvbY6vBFhW{flr3UT1pf|6}k1d)A6 zKE*&)pj&&JI6k@@KAYotALefVXz2Z8f%S+i0w_llJ}2AINoO zKMQk>ImSKB59afXzv)T9N;|`m*1;j<(Lh_0eM)}PS@~P@GM3GwV=f0Gc732hZzLtr zw{f-C-JpOiBjAtmlIJ_#1FxkFwL6L_$M2D5qusa=t8P8p2iJH`=&(o8hC<~o<5k^R(3|atgv&Ly@72=hPUiv>6 z&-*Rs74wyKiz-fIiSBOxHLAQhfVD5+!KpBGwmkJZdCvzI;9+QmKe5P~FFZqi0%zZ) zcZ-J;+6eC~1 z{d#Zd;>f%U_;8Hl{a0PYGhGnfAlAzx9gZ18voj9)(xzY05N;20UXb2hgXg(KcPUd8 z4eJHHd}HyVL;9K;V}QH&iohW0Gb2)DS(K)432{Ds4vA$|=Z|0+@6f=GcD&rU%&TMy zJ;!|G!*aYHYSajDOJcjhmkqaR8R{tG-PAKj_M!Jk2uM+xRbmV_aezK%JAWK*;M`N_ z0VhXc-Yxn5uHvz@(l6s+99y6fyyo}=o#6uu?3ke>kO_r+xzl+R*}aF!CC@p4bk3c) zTbU6%Y|^=)Df`!!M_s`A$5s9@A=MQps$W4U{DLC9y>GRu@hYtqjsp7C73vw$Ofp() z!6TGsrjwbnQJrBPlak(5PVAuPIv!|i`B(dMO_#ZYUp8W(zvxfhA#F0x)AE?AAXYTQ<}QVmjc+5*fG151`SkIcKDV$%Z^ z20LR~|Aqg8B3XGVx9ZPIAP;bqcq1Hz6JIqJccfC-hBf6+Wc;Sv=mIy_&E9DubI3wW zqPDeVBnt1FpfY@uI`riF#P)UrQXIv1a{|z7)mE~yoa&(<(OBqajcaygmA1cETG;Pa za=W#_!kWnw++|>49^hh)IC!-?V`uoM6V-Ei`Vu_8fLxxj3ZBP<_K(-@lIWcm%kzM0 zW9BNS?ikx!kHX=T_AvdtbyJ5*Dtp-a{DNM;sFsyb!N7^sEl2SW_>(6(_TBbMp`X^K2yWbf{Cjl$6n-rl}^7uBIn#qH6SCu+nA+^-q|lw8P+cC4!0|j)=n! ziGGo&UUWSeq+qpir+w4+fXg4Yz(unjJbObJ1sJXaD+VozV0{hYtxM~Aj(pzaX_b8cg*6x{BrIItoCblU-}W9o3}j>R___g^ zUyb!QSrib|j?nR=Ia+V!2H=9t8m*Tt!yJ_VI%|N0UVS6Gu6ZGH*PLo>))&?WH}yi& zx(I94%Q^);CO8c~^ox9W%?*`)a>N@)lHCE19$0>CQ2Ia6a_;Vwg>=7F6W+oI?+zWP zhx7F?d)k^`0{xM3YqvwM$lSui)lFlc&)_bzU>BrNiA;p-@!_wmmjt|wi14TSXFgKY z!;~eFab~lea z;r4rG>jfj$cZ2#G>VX|=gHi$cT~+GxQCL_C;3s<{B>7Wm^62ifj~VD}?7I@{T%hD4m8{W(QnvE!x zx5H-?&9T<(jj=c<{PoOIfT`KX@p(Cj#NmQv0wtI|w6F)Na>(_G(eJ1=3puNLfo5S# zye+E55v6Wq_uF=2jq8$*Nh*)(m$%f~Te;o(F!1?|_<}2ZT_B*8?0BF=bBW=x0_pL< zO9PPCPP*?$Sga4{PNoa+1-LTR@yp7Lm;n61UVky(_gP<|PmGl?h$2d!Lu$?MXY|>& z{XhU#mhZmP&IM3*rh^`%FP6v%AWn+h0{Bs>YCl;4QmQ zi81Sdjbu~1{9US^_DQw0%>a}r1D7nZiX+`)JNfre{3t%SZ(1|twGFGRKczctK8E6Y`8(_(2Mk67x;2+Grgi#cFcqdHhyrfAdmbD zPkQkl!N)Q5)Nd4&3^N)LT^wciaBe~q09T|_oHaWqt}gag?FjKW+*sMPNB#uO_jg9 zsVrE@!&F^W)Q9hKB0|DO)F4i9wel$4?dhJ4JF(E^@q(kBJH&d!^yXqNdKuZf!6T(R z1)eAh9%)*zQ8|aj9;=Z7E8YZyS^bCz`ww5ie>P>|$(MA^%YRbMga8dEyOy0$?5 z03H=K{U}rXX*J|w=kqSkuXlUpo6~vEu5`;AM0ccWfz@ZmG}m$xy>d|de2fli7lrb( z@%D?toeWj!Wyg0z18&U6OqiW`(JwVy1)PKYXk|}!kuv4Jgzv%p-)YB%HH%y7v`}nE zdy9x4+sr*UKb)OTZ;aE%K49gqf_1!-JtO_rt|(*4ZH}&g@H1GiQ^>qi(~Z~Jg?;N6Z#NLe4x$l}FsK7|N%L35jQSpmM~*T!M5&K6 z>`PHq4vTyLN2a8(=49)69>Lr)R;|pqbD_-#IAE@6+?Ji2!?(oRyeJ#Hd$)5%*4JEi z6Ya0#$wBR_cRY#r$te)vKU9%IC1`$t`J&usNyROsj+C3#&AoyA8A#0l7tEC~do-(u zY+E?NQL3|yyZ$unwp?NIVx$D}cB#F$T_}Y2dZ+ZhO8O6X|E{gTz@=0&ek5Uf;@;96 zr&v=c+Lhvk`&eW*aC|wtFJ6fkQXa{Z8PNtqp)nV1EdSz+L~BiqY7TE91;g0OROENF z68qi-4yD%@7=c$@!7{Mmhb0DiN{B4v;|WArf36ZA^p2wopV^aB9{H4i|FQi>#zRY3 za)XD!pcRHfrK$p6pu(pk^ORwJr5_`+OlBnQ!H;TZWgXa=pMfdz!ZjV8kooO&FM@M{ zulxz%+MqiEJ|c;@pk@Zf`j(pX6Rti zZ=QF{gEF9yX^Plrrentin}*UP@s)@ATp1T!_%(Na#v1)q7OJdUiA-+BSkNi5OzFlV z)@@hD9uu(#+36L+_Xe3u_bqZZll&7Uwg|v(!kh42F|r;%aW<0hbJxW<=Dw`PN2Pn)}n2U!5@o zthxX!WnBD;Ho`CjZ+5i@4b5k7&=Wa$UEGLt@b;tf>K{WuJl_GG6)ZQ6RhdB8~v37OThKJ&@{42qQeXzuaJ z3JklE&YT6>&3HqGgf5Xx)ZQ6VkM#}Mf(3ubm+=zzSNS-rN*Nt(ILm@SI*wEaqJ63` z@gJtT}-C>26d=2e^U%)Vk^o}Plr~AoH^Wy+W>C>t@~O> z?L<;AZHFbfK=~FTQw3uc+0~GmQ!G?b>+%YZXQ@Gr4GMZv--h)ZgRYl%jHOxQf z=DPTL6WTok`#+HvDqt<9XyX;zl#%Fq(A**%Vhw6mG52QW8DFa?E+F4MoN(kLR|oq; zylLhZ+iU828;7|gIWj53zeS6!G)SuaK15A54z%-~Rp@S2(i@5GzShV)AGV|Q9*hPh zKDZN+Znzo-`q-dgl$trLQ7*35HvN4beWY+Dcs4?y;`4E==@&oQ3--q+Z1%4Ix}L-(!IVC1)bx7se+-snkD9t*@=qY7X7MY(V;fDDH5b?ZCI^vy&c;raoQ$eLbTWF41cTH= zYL99M9Qr8qfc7IK*G;X{|NL6_wLxA!E-vEeF#`Y&)@(~v7I@yUdp5?{<}7|5&UT0l zC-xBTv;LR({%II-w2q*WE< zo7qR#oH&wndvljUZ=7LeH6hASX<=A1?=EqhvY#cJ#eQfu2)5eU{6c4Z$f!$9myu@s zj?c)C?~#NzBuWYP-3Yz38mQ7G(UFFsoe+x;c<7KZ^EjPwTSRfA(NFwLaOZ(&XYysZ zKKG zQIW*k5!QmLCQor2s9YHRXZvi{VHXXK$PSAN$fM+m z)aqxeR$&Ztv6yNzg)};GumEH+)W!)NGΞiOA=sd=i|18lCTG$i_CbIFV5|B0#Di8_Bdc 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

N+M6^=#k7rLna<{AYky$io0InI&5bD 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%0DM)3264;7j9Zhibvx)!hJu3l#xu0 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%0DnK%e0{od5~KPfV=zGnV+0lr2l< zidH5AC8=ip8o@*S6QV_5qXy6%q7F$^bndQixuyDl;&bd%`pA zZ4-zU=PH4(+Ell$wUHR*z53g)*M zfithkLSp^=W)t(Tg^YVGFQQH}Y8rXQnv4rmqsQp+WI~N-{{(xQAcf30ofSQAKBhyM zG;0?$#;mjH2V)0-APFkpl4SB_--LlD4zZ{-W=QjOvq?!@y(*x^pEG6L!;h%j7db-j zr&y29GgC7uF$3C=2I7{4nj!?q_}8dG|1U;$7V$4+K9c=Q0ZTBgt2rhfK06+YWY zu%zhi9w)Soa~0Vr$dZIH~p_9w{cO!K-373-XjYD~8{_ z+Pc8kd$-g%TuJeTLQ;?(@ERQ^IP_g_JAA1V`){?yJ- z;~`X;u{il{2<1+`c{m#o=q+x+f>vI;hVyRMui=P9tYXUsN*xV&w%I&s4QX!ck!b9P z61(Sx?Y!G~I#7T_QP-hW7;T_D)GH))`Kp3C#0uz`(A0UFkLx*qZi9_MZ{4InRc7_~ zG@G36nXqX#W1sF79}^JbnZa+?!S~6fHzHIN=0>|7Ne5-|CUtLjv2V6c*=OT<&2W$D z%RNJ*A@HN9GPq3so^}AueBOpgeuPN&!K)~HSQ&*q4bkF#0ZpxFgFR2~T1;BKjhh`s zAtEz&KtRLpu%JWL{<>_cu%~HNm3uY$QLk8*nfM|&i6@f)hCq40`FQOD+4Nk2D?X)M zzXUP$nE3x-Z;LE`%||xcV78Ep5(bNjN!in{i(FWn%BsplxKd9?)0zm?FU+(L&w91I zZB-k->$7lsue4a24BNh?*t!c5?&kfx`5aZ$#+}t`Vj$u7>7F^gdVIm`XD};vhU8$1 z&;3j(Y{lnZ!_lfJ78)CDs>8swSu)-ju@5iFe!5&%ENay6ilW>+%WvxeQSeHQAZp&& zhM)OyFFdV}Q_lMrl#>|uT`T*s|HTb(S+*(-`UcnvkH{&BGikt?*|)SXY~`OZ@AF-8 zUNBAYtlhoP^{`%Z3N814#2Si5UwZ%2&xjrb!hWi($zwgu6}{Pu-H{aGD#W)Sd|)=z zd9j`Tb?c!tf!-?iDHdbVDJBv>wwHRLk)&Evq}VoNO#=<`m}WPqk$R2p<(|B_}8 zwl<9WE3Ih=%>UY*+D^)Vlbbg7n9h}aU{QYkU*tX2Bw;nSJC(k&8gB#z>b-(N;91=; z2yL1!hfr94V^w9S$^JswUV8l!acJFJ6$P1t+3#k@3IHB8^;nAxtICT4 ze>o?HtnQdZVs6+WtE{b`SAw5}BW#>6JYXqkHb#Z5jI|wS=vJj6B%0YMVz;t;iyT7} z3>?RE5ew9DecGNCU()54l~ISKKX~e1&a%%ABN8fpxYX5~TU5LA(yZl`?P>+)HksrW zYwRcvHj4=2lm%$wloP1bR6{v>Cll6gxO@(g9cK^1|9DWSg8lwY2)Yi(Jz23{joaW}? z`S}|{{q?kzm1fR<=^an4t~ArYkutvOa&bZf331L!KbE-Y2}#hnDh4H7`b7(un5!6Z zP%LmnB3YfbSV&2w5uo@5jq(5aHZJc|ZJ5Op3bm_^EN8T6ZgFDqd{Lpj#~6^p9??`-gwHfX9H%;L;(KIblGWa){1Y+b>qpl zALq6f(P|iw2h8e5e3c!{n_Q;WXSiw=*HiXM&CQ-CJOm5p_?I2|&;NHDpDX9$l;R3H z&!y^lax{97rm!A3Rpt!;*<4t*SL zOHoaf0H?Isvvgt(>Ac-1YcyU@L7sw5uh-HU5OEEQmaMomlz|=8SK#@}klfBXnLplb zsoZ93(Mw+%z5hizPr?n7Y{iEs(#b4S0NHfrH?A%#BmXxQ-%_6JlP7ikv-Ft$a6Kry zW>ATqaoucHn_Tb2mVQEI?G^cJ=%xoIXcS!xu)xCe?zd2Ozn8ma@G!eg_Gr20lb z*IT14K5ifGynlY462V=lyTG~j+BZ8iHz#ttYMYcuCowPm@RHaBjp)UK5nenh3WJts zvX;{4q(p|SvEDZE3dik*+R1v!O}?PNQ$M_$oj+7YB7jwBv&!%WcbPyTj@|u2lMOy_ zh@vOurR0aUdsf`SKBwy$P7>WuSfZ8(tWtfmGRqIj>%RZObd8`GHd5w!z|6@D((G$` zu!`H}xT8^uB!C-eU_+a*t8J4Mjr~)>ejvoOorxlzk%-c~4voEv6+ig`-T>D7=dUU0 zJcYav5B^Ky)2cLtdN-?hZbF-GhH}D16Gx|!rY~1VbcP42-f{B9r#Jm-i(A!3 zyMFIrHiY*V0LM;p<7XNYL~LS)_?wj1#*Bb;qc&LeE-!f#M3{EMC@qErGYC29=K}+t zVdYg;8su1fxn_MZo-a9oS}by*^DRYr6su{NmKo>LA5?rx_w<;NO>XvI_-r`zE?@gR zj2T0>7(ZA0XCH{NPpR23dHIjFJtCyt0r^&vj=P5Mr-u+woO2~#D~3tXxX0St=2eQm zzzUn~r=FUSoQsNLDxfH9cp2<>{g$F zkd&d`e1TBE+`UONedmDu@v#n-zMYI8orlkr;~#3YiuFjGZ2T{g|gXF+EO-3&L!9OX28ZxavkGhGKh{Cadp zjR3<%+~ZO?CPS>UoI?zKUo2b|XRG%;3B3Gr5%U|H$_4}Gf>^QdhV#1GfUDys!weV? zI6iS?Bu{ubTMxS?Br+t%^4bWoda?>ZqTnkNioQFHfCs$6vxq#Nz4;e1y?N3oSJ>%! z*`{YZ5`_HK+3Hzx!x9n%6iXKz7OuqX*oO?EuM*@p1&@w~KVh^tA8Y@7E-xsQ$P2?4}!7rN*@Mcy!vR0Kr z1u>$62PA*R&W(Yumn4$p3H;gnpQs7k2G48^3gdI&5OT2L<9Ooi%j0-zj=4bWpI32Y zPsuhbstnb$6t#DL!gZyQN${K>Fg@EyN991fBn*T>KsyfvquiGjrJ2O&b#XJdkyIc0 zUDJYv-zF&)nniv18J>9{PL&2Z@iS@(1LHwiXNLk2!+Hz5DJ06l4_8!q+J*{C6)}U1iV~dtGn@O+YsuGIRS%okW1dhN$D4vO8EOR!)pJK7LLdtx7lBNve%kXRFdI z=$uSW0_1tT6M*NY!KJaW$6Um;n~na7Hb&&g_%4AK2 z!O;x7TB3sk?pgN7yM9mLLCh_%8GT%Y=EGVCNgTuA7}l012EUdJMWvyFBa3NggSP8x zteiBeUDQl3$n#DlkN11BTj-Xq;?#K8{LLzi_Udl$T)-<2d@_0cwU~1+;OAvr*m`rJ zhpD}9tlL^uW|W^IJQ^(Nvx?PX!nWNvz}yE7oW#VMzypgFri40cJl6or5x?+XgnICG za=9C!K982v8h`Mtiz*Xj$kpBK=_UrDpR|8-JL>X)5U3;ZYLB5H0_#3+HPaJged#z1 zASk{6oh)g-<2Q`gHS8Snzoh967M1S=*B{S}^+CJPnSnlXS^>cnTJd2u7jHdaLc(4W zCbOrk9Jz6<96iP@ZgwscyU&QIY&KGDm+-4E;gpexmX^k2_{SjF>=IsWKD?yI4-Q@E zRHP>j}>BBShi%9#EZNv$fK9`&?54a+Li7L4GgxXbK}s015W%Sw-& zG>14MAyT!^453Ns3j$Q?XxK26q_Xf+GZm1Q~eC!SeVe3>gW|6^UIsDz zX7w7+xYCv;wP|(*^Zv4NwQRyegBo1s;%!E13_3T;9^?U1*X-TaD83%Il#$!aftgO- z&WHK7W8qTw1rY`an?TDB4TY5O=VpEI=@HQE^_W=6K8fGehD0tIBPMASa(eyp()_;L z^{}Vr!An!@R?laH{Zp&j(43zWx*ggyTv!;4B*4wRxly_8ZXtyCy4t)9#Hwo}uAnc4 zgcJVo);hPYGW>GRbMSCr7-hG}!V^FOlhDCh;;%E4(DKT7orLI6c~A*Og@97CGLj=E zbfYb=XxT5^#s|T%48Nk%B(GCj(CmvE8C!5!iftK?Pu2`1F1(uEWrNF`Xr~GzT!NS7 zal#78Q~*E>Fdf5ye3%8GA-(1O`Lbd6>g6oMu$)fCc}F#=E6oNUI9Ks-C)>sRU;*Od z-$_t0;ReeK9%|q{o0~L>=(Vz0e3gls0j=`vl;uc9v|ELKVbo~(3mceBd;^L&9IU7`n2qhu%mZSDaY&26L>3zH zTDd0l0EhS@JRy0ixM~hEhASAeq>0E`O$Yo@v-h)KAu;1m@rAutV};w;33tjfas%O* z79ktyveSwrb9?YZo4kWc8dg};^~mR|t?3_yn*=l0_%3O=t~4m0gXA**>2_xEdsUT4 z^rZ}5Oy2m~?=|C-bfbB9q1z|~g-`TX7bybT8368Kbp3qOjPP<2B0p2%prnruU~!1SUUrZdDeaCSMK<5m^1^X*T)aeg&@=WInXuJak%sT$ZqDm)~J;K?LYd);gOb=H1j1!A1<8v~zf3;JQ<0cYH zA0P|&BTB|voj3e_PgADs;bLU0Y&SXy;v}TOV_fYlA>bjC;8ICzkn&lMRCgt zCc&MK`*0`)fK-bWr-w_s%?oP8{j##GD9z+f{%Z+7Ej*wCsxe!FEb<`8%)oJv3}$O?(Z^@T}#@#woR4XS3LYDJcnWkoY!Mh+rFK%04)ZIPFd4JO2iVh}@9 zTYp_OKGND~+#${L%yK#EGB4bp4d}H@s~Zatb`M$oOz*v2-A2pY?2#5Sb9QnbFo_&~ z#;$-`_Nq zdhFnIIYp((lO(vXS!qDMz!)0S->+&en#F!{-feoYn`yYK5a8+DPYxX9he>JCFk0Di zP1diW5pe!_@&Kzz`$|4d%eXIK46AW`G$uXfJWL~mX?N!G5tA4MR03FeZTLl=3`t;A zDT@&-wn%Z5mjB69!!Gn8YsRusrd;8vVJOW&tXXM16bayA4>8B~%Iu`&P@1*#zZpSF zH&d~N%hP?3XH-AkJVjlpWfMUhVtLXvE6p)Ndi{5Jk>b%4yUiu%N21Ef|AWG$YFHYq zRNk~0qREmXrm^NfBaV8+(c$p;dYuno9z8Z^$fD8+LK{3JttyjAv14P31)Ob@=+#8A zqw2vTD3})$X2msp$o&}HSq>l%OM@yXL=5fPnLoZ#y5a?R!;v zyIqhA>i@w&odtl1tMa0lt!Lg4q_@6Bmki6{-FyA@Ox*^{Yz_%eyZ*qUWkm_}=K^b0 z8p_N}&}m`xto)Zicngv}0~p~upMAEOuPBX}MJ`&jqPcwWz! zjH#`#G<;3lNe^}=`0_X<(K_o9nxYkf;F8sVKt2ze;F_n&1jE|Kg*zvslQRTv1t?hN z-yu|@<6-h3jjPZnHDU4!Uu(>lf)7sDuG=#xD_H(b9wD>(|9K=6!g%EkDXD z^XJX}7dFBA87uM9n?~o{5SS4XGJwTnwUQ0o7DVrI>2L}5LF5V9Dpm&9OL|DQlOMSc zae4Gp7ce;{fuyJpal^yY)OQPkMHwtUIyUadR+T|bB?Wfg-7Em?7bV!vHkcIxC8Q{n zx_~&Add#KS(Xc~H@UktI^p+81C3Rz4bl1y0-^xiNb1KcW8Zbf|Vi8=DX_3#@ui^9N z6?_1%<#swXY?W5|L_H9zyf(+cmLvOdilErJd}XE~MhLS)f<<~A9%}QO5?pp{e1+&2 z&6bmht>dKA5S1JXBXj96R1=jv%<+}X`n9|?p0#cqP`4Ogp^SR!_`Vvs*8^ASM3$DP zd0!f_4&LFyw;L_xFPzj?wMl*y(iwZIw7~o}Jyxe1=d*!?F3J*ioaMFYNaO4v!R%O~ z_E&Cp@iWoNu}l@YFj(H)*Jk0BR`_^}PZPT;kE&H|LTU@ zib=;#VP_>Z@?42(tGqVyx^*^CcTV2f^Si#_VPae$f14N@wC4MZxTZ9XE5l!C@@A*s zLr^6V&8pJ0vlAeYt*~;h^3Y)IbkcvjVZwlTC2Kf5M)v-*6c$9!CoaT)J9LBE#JPnw zMjYqV)3dMfPICb>qhZW6^;Jj&nz((xH!p-7y>`NiSRv3qU9x`o`ab#e)HF4}8@^^Q zH?8TUZFNIR(DZUgj~io8k5YoirKkI^D6S34?7Y9Iwi#Vz*Jl$<5H6kCwJy4w;MbdX zkJ8K-Y(MpG4{JFt6wU5nPv1d|oFtunVqzo#OTn zEGmSAEfTmkH{;LPF&QwC46P3QABGrUeS_u1XowP_qtJqs*XFVswkwzTCDPPSMQ2>Q zut-HS13r6G;5~mv?rp-4%Sw~LWU)T2N^_v;dbzv`@^y!Am!AKy^mtOdVva1&c+&V{A zbM{e)z2Lr~=F}iWhzm&I59sGDRUy=+Fg=+7c*hfS`hb?>mKEBI;4os9Hk%R{(DX(= z(Z+lBL^Gbmf+k{_K%GP~I$c{$Ps4t3NXXASypuO>t#uaC+r-33yrbEhv*B%Jk_uh; zM6tf|uilQ}Deuby&b`aO0OU{TZgw#S(u-aLz~5T8f~sfF{UL0~x-XuXGA=bWNLXND z{{&_L^XDOJFod+B(CnYq#s}5xdz$PJhm=N8Par1);1&@fD>aF@>$JU=3SgLz08TKw zF^Qo0ib6;`!DB!Mx~h&;bH0DQg?uWtU$HK1mxi!J#3Nyop*@&V zI@K4JOF9+ogE@2`!wm zqzF8`$H?Ry4$ER3BrLWEP@>!o7B1A(4i>ZXq!8s8fl%$#;MmBr*A3&?@S+}jjZb-L zym~r3bfyW2>a5^MEIMGuPoF&Mtc5=hrak|?V+0dLCp=~m-t16>%*gTeI!5$0n4HYL zinb;oAG+G&(4g-L>{)+Jfzfx_NF5O#0{g@Fq_3HNTwdRoChq^uY9qsUWv(voIC2w) z|E8T?pbUczq3iw546cG+^XK*c7luX_bXJ^&$Ht-Ylba1u)AojDS#gJ)rZ(Owk_&uI zTs%k%DO2U7(7h3nL%49e_iTQb zM~)41T&=K=i@tr^NTj6PSM7+9vUJ7LyP8j5RW-oVAuZ zC}Dd({;x+^XspAscCQPDtVXB6H2o1d1B&AP6_H;A!fZIP9!sna0^XWCU<2H0P_YKb{_-QsS zHd18m8O=cQWQEfUk1fym{lO_TBb*$XhP0zj_^AFYH>KVzr1_0wimepR4bt5zNx!@( z)Z0=R>Ds^AR;of*JAM~FN$xIgIGDHhOYfqRd_N<$H$Rzy)|JJ-sP&}r$s`z$GneLW z!(tId@e{OVTq+vjC=m&k9Xak};dp7UFPycB1H;GeMkMURXEZILot2GG-;C;Zp?joZ z^6>~yC8I!P06LwNCG@}0xjW1NeYnrRE4*wnO> z7GOoCVN65n(QMJ;BKOd_VXSbSeTE23pA(AJo%==My}v#+>+YRNlnEPqItUPj3+z*p z-@y(NJkR-Xf1t(ISUtTNgf-+yyg6HVrlSZ8RO2Z@8NqJ!ULgUnhT}zFTp8aJ$pb`8 zPvp@i5jU>l$6h!AoENE4A7+HKZKaAr<}2}FXjK^&_TYU;9EDHVt8N;}F`IDPa~zqa z@LHUF%3O!kf+R8m+>$7V`MLK@ayQy&X1qxb ztKf}zl~9fKM|{tdWt983^KChXP;#nkBANTjtgirjWdMyF(5SgumF7H;7g?o*v#(T% zu>+o60?T=x`tRbNz#XKxH2XeF;4rd_3l6c-`^2I75M;s zH8^0q*Xbp(>)6mTStutxSO(`FvIk&g*oiGsg=(hlPH4+vnIfb^z0c&SvP!}+kZFk< zh*a=okxMqI9V{wMyMAWj9lrZ=I!vRm7t*ID(8w}T2ZGMpRdm09LiYZ}>L8A#dY_`A z$o;3FXm-cEHmf-Hpx$U%o&r&TR)NRmYJ_vo6GXmbacOp%Cy_L6E*1KnE%J4IBLB?~ zM%{Z*v0w-z+>})Y1#0dIMSxmBxRvB(_HrmQwVWF4w_qRv5mEnD(9w$~o4A^oz2C>C8Kwu+#E!@ByuQBBl!Zo|m|8+0 zUSH>kDohU&?BKv-wy!xZel2E=`t%7Z)<4Rwd@4=Z_5gDH*Gih+sxHgIe{@ak$0s*U z=f)I$%03&nQREw!@~whjl!x2K^IvG?SQP#2!hXN=kF>4Xu+8B3Jsh+L(9LXzkX600 zkQx)=i#^L&XO7E*@S8)k=is=%A{Mfe08PAhw!t37dmmW1sB5@TEZ3~l;|0s}N|R^$ z^Sa8Mw=J_wD?v3Y34<^Aq zrngeK7wX&dGO?j;cFnK_vx~#d!{y8)5_6CXa>dj2Lwt?Nz%He{H0VRhYK%m`F;Ke3 zM2djk9i@}UARE7XJ zPNDUlB{#~b231}tn`^dX_W-%O_gx5dCV;!;HS=1`v?zv#)Oa83SJz#P=iyTTYX@Md zc$T^ZZM$lIh3OWrC#R6BA;Uu+v7J-6AR0gHv~3Rx=cX?{&Z4zdZI4()UG-gZ~rWw=tzBZ^3F72Y)fJeQ9 z&8`_$9_%DX$F9gMo>`4M$%+a56$S ze;ALKT>OGH)`xa)pyDoDY6JCA^xCcB)@uTD^4PPpO%hGqbrME;D3AXZ#(5k{%PW)p zEs;S4JyD!uV>_6*Cm52pxQi9n{r4mw1T~%pP*)jm^m~qKa3*v5qne%KFK0$D zbNiqBu6nyc2p_7Ta6@C{p72-F)6HsYKk)34Q|^1cIXb|yuLj}R-BrPiO~nYDiY0{K&O&fy!-2XpW15? zXv@R<j^jLA%Bo7iUB;1BY z7_DI4%?{bsoCDHE;El<$2Sq+$ zuW21Bb_i}?1BSu!=t2wLJ$W0{`Pa1XtKkf}_Q8MUk4aqF;~iTu9aFQ8&%e7=Jsrq- zYHpzWiM4m*u*|`~@|K)aMaS2HlFwNTP%ls~l9lhO&&2TJB4OD#Ugram=G&x{Rp#qx zob5Sl&S{=<7_(TGJGcCgnk5_Ao{R@CDwxkFHSd1ZVsE2H?BiX<#) z4L+=|j%}TwBov!;OZRY1n*Ks!Fu|GSL$e2JU`vCTXSV#>^?Oy5_@q)RAK|z0l^-z@$k6J$TYhLxqlKg!Q~$db27-VwooGa1xsR z)GZKbFlQjgCk{AJiHEl4{}545ZfnWpKHyXyt9uw0=b?`KH2p#M0*ZDOgMv+p2iwL; z`|ASRP>rlzOqUXxxi*{4s95i6vzBcuUB9ggB7H_eA_f{C>MEql?~eQ@ z5uMb8%0=%@04MKU%xl=>Ab9o4=qhgvf!$erxPAW;0a#XzKq>%2}f40z2k3oI@S{b)|3HedmaVF(ip9`2g!WE9Hd#{b#-78nIdjBDA0ovjn# zzZoF{sAt;d93zh3|J@kdZareW-}Rp!r-Surd1-(&kaCw5id$^hk|&F>YwJhVqmTKL z-R{4q1be>9mfKX@yc62l7{T>F!F)j+WIQHgjXdvvWE$O#fEImPjWmw)#Ab|%i)VN= z8pkEPG);j0@PTFjeyR-w3kAKbHcKR64b?oPcLl?-gV{O>gi#BpVIT_&4J>uQU8LG!PwriOJNk~(j(Xyp<1&DreAku6?x7zUuR zho)v05>^_(5`Xg_;fuQ3ye7gd3CkfeI{GJz3*)x`$&eZnFrQkD1))orH=VT;Qr9;o z--boFY_f@mV={-I>-`5+HXJk?4G^zq@`x3~J_&>yH|5C8JtOpjRAG`*Dkkh*b9l~) zClPa%1VZgEm?KFp^i*#5^C8~<8<~dQUsMz}p3*#{%TD!w62p1*%FdvWb^ zzxXocuwhHS`kCQgERF6NMoEAzlnWx4_&09`%g|5AS;s=d=XCHdoFJ}3qxdv#Mf~G7 zS7mu&yw(i+cxFi4&XXi(dVi5LutG7S4jhX00JnuH^n{3~UQ4aut2-_sR|!MWo${+S z^&v;_to-l*Bf4Q!SzZ>JuV@fqR7^KwV#uH*9~A;WMY36Hd2m?)KMZ4`B!iL2#DJz% zWtgAEP0u9rK|}lc0$O+|R4;}Fw2gRF0nO;5#jNRJ@bZ!l!S!Gp$v%YRl9U}5EeweN zhp$n`OKJNCFfxqH{sb@N@RY72do+1+*jE)Do$wtwP`0z5tWMA?lH%=N`Isa71?Zq6 z|Ho=b8OQF`mAg{Xsl-OwQRk7E0H>q`zAF$I570? z@JxuV9VF~Ec9gK#DDU4Vx&yI+OQGVc!4^IjI4-xd4522KU)$^)UKi^#mTzdDPoUjf zr}`5k^X@{Chh}hZRhk72hKM>}kNc4P$Xj8(~po(cv=*DTB zUd7V63R%4mx3njOVdBTaJ&+AL) z&t*f$MefbMbnm4n+>X+NQF<<`j0My*wTn3*xU$d6IzL$l?>D$%HQvV=5lex%ltEE> zW$djfbd;LHz)|dyi?Okx9F6Oo@!jU{2Zv5eoWFkbOuU7`0Wj}&FLb|1ls|O19YVkL zDV@166%I?I{{o-HTy@vDVX%Jz-yFnjHZkxLSSWsGwd&{C$p_+or*CoHy9CQh6Oq@_ z&gfvayXUgxO+7<}ir+JJDG(1Gn$VP~6^EsY(rhFP*r3x9vNeJ@`GO_ntJl*(I$5~f z@AO6X{Kbi)tTe;e)KbO&-<~7_;1~j(C)di2RPq-^wJ&R%Mm{~|rBM|fQorDtWkO0k zz9o|l9CN{5|GUUQx-U)I*FtPcF?-vSR+Z6o?bm^H1{#P-IDdA|9yVp(5O3LIdetJLc*NnHL=sPFCW+ zW?>s{7QCC;=p`u5fS2XK`~bxavN3*Cv)zJrP|$XGrcgVF#;#4jkr*C!^@bx&je}&^ z8<#^=Lq%!O%sLx=F+Sd>35j!s4*Jo3hglL<&XWQe*gqB$Tv-+VHMD~>X|PWVo;YB? z^FNubpwMI(tw)OgYSM}-ni?ZhadYVLCdj3$wI}YALDmmwcmh^CHv^DI|ib{h{ z0d{EiL7m66_0)z8OoKYSts)m|XYta$h?B#s#D?h=sqI`O*PW zB#TM3SA50kX+c}zs~tb!fxmsbcf0Q}p!kl*TrjErVL+X>OLmZnv462Fs90bBnYsUk z8BYv~ew-3-$ER_W&(NwgAYT|HP78b6jF;At%gf9_88@CZCBvu6cQJfw%c=ZSSNr=L zu9hJIxk`XHZ~rIXMM0+SxU$l?XGq|hy-!Kxf@OM@v~{{+Bo1NWcB&w(>4-U1Uo|7x zV}>q{pkYSf&LF2cBqhn0`%C8b{B+Yq23eZBX!A0)V?>X_4TJzAI&5r1@)?j)8wv3_ znI58x?sEkf4=M4Ly_yCoo5+Ns?Zze(1FtwYO*cJcyfUp5yf~D-+yQrnso7OS8o6j- zdbNlNASZIullJ2>Rdw5El@?d=J@F~^oqDQ`r`qc+nvQP}s9Ods^cwNS?@PlFn%PU) z_~f9;scu!7;j|(I@gaw6hk4ao7YrED2QMoBgHfbwDiaKg$k4;reVIvOK#?G=mnP;m ztXuWN_m{A|FSAqGx&VjT<<#tRLe~6PK1x`^F8odVl_a&`h`BWJ#HN0$*e{v5QDxP` zA}K~TD=HfqBFc#zW==??hxfo|jrDD7=Ud|qHesR&Z1Rmau7h2|Ij*>%54=Lb0d?!z zyxjl7_bXYQufmiWz!%|MJL#m*7m9_TdMA$6d-mLdfsn^H8szxB;(38iW%cknwx4KM46($YcA4 z24QCE?af=&hKG~fU*;i(rO5ijNfjjMeqe;M#^nlXP+pslUqehk}0 zbWty4IWgM%;f2KiDDt-_X&@%&kGS{Uxf!jjesq|ttBql1)6^j5zGDR#G-4B{7i*rb zlfv_vYUm;CAdHVBZ#*GlrGT!8=*LQ0ckEau9OEhawo{w3mz(W~8?xD{8A*=9!Lv>L zZT4a226%eMXI@3{CRsw|l@V6B9S0EAVorZOn8z?etPwsh*0EY`8}!@CR3%BbwLIu$ zyV4(JyRAH8gu)U*Mg`k2AMFSRhl(@ft^pS61j7AuyAuL!yXQ|j7C{}81$g<>p8F-f zy{t5`IQo%MQCAwa#*)6gtdwaE&E)?vmKaFour%)Fn4#3vl!mHshei;&gi{0vqLE@b z!Qs)zyZERct$}%`l~v};=xjG~AD6|MJJC?UW&16}DYgxsSsr>5lRa{Q3g4Oia(Bf7 zVjUxG28P8ri*N@R?|DUK8tzB#_zrcYWY^IG_{Rsot~An}myu+|j1wJz*avzND7SAm z_NLa=TqKK2bBU3VDa>m7%b`7NEmx3_bdm#%4qesm+?Gc3<^&W~27YBsZ+2!Zhk9+R zHh##M5Erl=V^nqGB+aGgT_c_hLr;>A#|eQT+z72wEaR{NP4T#T-Gg}2j$3|4;k%6| zDl56!nbEW?(=JG#L7=gB9@44Le{Rfe*^0ZH78X;&^;a zz_NSXv&J6yn<0%M(T<5_q`_g(gJAN;FOfwIJs+r>sVJL*b6{IkUY*Ft2CZGrV-)_L zD^oZ9BygyQLHqylbaFzF>B}A|^Z`!LKZ%&@YBO1RykQ1OD~s8nk&x*@(oiOC0>$H2 zGhTYY$Cu=CNTyS$z0Tlmk3NAoNHx!sE}{M4-8lElzbY|fcCTOWPJ20ng9YZnd4>U4 zKfh}DBQ`Y4%#-KEgE%Hgu?^s`fNn86Le|Jn;PC&!{NUxDIRpM*>=1j(cG8k%LNIjua3iT?@<@p9QEa$pX~s0#P^4pyocHMKQRMdB(Bom< zGJ!vEm9F9&;sCna^S|h`K^!J9YnzLc9?=6IJ&gN#d9a;X2Epn-c?I5%+t_S=X;mA# z65gC~98EmE$Xl%*-w+prAe?^Jq-`}a4ez~cm)>x*XZhxQLaAP&d`Y# z`n+->pMGTeRaSS+QVYZEler<0e_cVeuo^@;UGi zq1KeD$DZV#2Kx%t>?d1?+sg3x_{oy6t}^WH+>5viyToVz4eU_9d8YdyW^~~tPR&+c znf?#RC@`d;3Z-nZWwTjEr(ZW8?S`K274QX!`u?D@`op7TL()h*MDK z2IPBHG$XEf?7!Ka-#`Soi6udp$j3IJ{Oqf=~_6rXhmj9>$KCh4Eg(+!{(vMHv z_i433^HPl{^0rPDpODLnf(H(U)fK^MbegVX?!ZP>T+(m}?mwZ~y0O$i1TDDle@cU` zD~-HI0v-xnxy!naSZ#;uZL5Xti5H<4sd<(zVXi$e!-o*Iagdp$H+96VI6EVUy@%2) zcz1>PxRpPv^k(<27MY0+SBNIKYSJphTx!Q5kNz-!{6}KgU*0W!_Ba zvfN6J-iNH^{&vB=Lp3d`jAb|!aBc=z37=(3X}u~y&}bld$~JMiY@{_EdU{&giq(Oq z{#+B1rDq8b&<~^~jA6x*lvjr(>t=Ew9ldkGh_B}unz~M`$MBH{H4mCq!-PCpWdo6T#6~6c4}=`Hm0xDtX+tWQ)04^Y&KEibHrd#)64V@bmjf#ot)LvwhX6R z0+*${G@fn~f#%5ArK?#r)ii}Ddnj3cOK{R@CSy3B`72KRRzMgZ4@apj%unA772LuWW&Emb$m4Ch+z)w>3 zyS_&Lf3vN@Yq7ZkK-%ynb3eiLxg<~*_T)D0M`u4@To|a{XB~7kvz#K|6W!**Ljc2E zFm+rgsOIkrBccictf(%pbkFUGjCx%WMD|Mpg*;FK4@{E|z88HbUZ#G6Ocqy0Q-jSJ zbM}yo3}Ub_LjGS|lJM=tKk(IgLiPTlRwyft9VO-u+@n=-5|a0Mr3KcfDh~cMLk+Z! zYZ2e{;tpJcURgZ6`Ia~*@{i)|h!B`ev>2md1ZWHlA5V+_zEBA^6M~5dXjU0E>c@a_ zg%K5TdstG^tn6~32qP$>tBIP~b$iQsMW}31LrI0y$a7e*sYZL2!Q8(el5dM@;$L1H z-0abgES7hFkM)xnv@?(u&o^{+c$|?z-fP7r10|e4S#w(I#mgTtm}6gF?)ezQJo!BE z(d?T*#YKhj9Yvtr?p?Apqp@N0ntj<@6N9WO^p5@E$)6Hx12ZVDj5piD7xs&Y`lVMG z4P;d#rF{3t*T=6OHK-Pn1uf(^F;sK#V=xtp!+p42&~{+ znZvAm&0-qJC_M-%^)N1B9wv;nc~kCBiMPC3J!@rU;mS7-KRI&O)yCoW`mjIfY+Kzg z8a$_-j*W>NfW{`e%Jzzvf=|>of;h#AiQ0d6snbksvI2H%xQE*CY}c_B)`lBY7X7Vi zGw4w%ll{BnYecyn3fX&OEV2%E(Un`P7IvI@Fm@@O)X0CtSDqx$W_ev}1*J$fx19r?^g=?FEGyDp zimrqOkc2UwV0Cj3>&a^>jW4w`;P}{V)@J1ja>#_8FiMM$5LCm*JkP-lh~Cjx+%>+Z zv%mNaBNPW2r*6lV;gzNZ7&eaeNagq6lih6s?TbpYk{ZH4T9t+-!@1D%iZAwz*pKB> z@LzJiAW(?pFsSmbQhNEjDLMT!#x)}(QHWXVg)E0fbkyk!gFl@5v; zsM8HUP%N9mB(5#@bGFeCVq8?0%vtc1W^WUfE%95h0!UkkMet5bdF7E^?-~V%R_vT0 z5bXT1IPLqR^pIzc?TXZit!}p^UHf62{2ve(0c{=C-*v%qXnqiR>Q2z}prc?agR z^2)5?JSO{W^+o!rhA|HwAvefe7^qf~$ymdQX=H)$nwxz{{-u3Ao@o~Gk%HopZ~Ro^mzMn4 zORH@=1HlAf8Fs!NrmR2mC=tZa>sMUAF+qr&-&wTW*9QO}GDmS9d;y$wQ2o7*vIZP? z=9{A9B^XnrOF8l}ulyo;g;cZNP6i<(LJ z%>DhV&o7QYO9%_jVXM;c-ZljA{y4^v^wOuU^hbyb=Z-Tb7qKR#o+_D>3o_A1#)PxT z&v4si=(4a{B-rR5@kJkYDt~p*>7v@GjL*N>sX>nZptKkvt%%$;hNoQ|cmf;tjtzy; zyGF8oqReiXA_Rh&;gRa?Rj6-wEdlWg8~um7CbM>-DK3-g4%w<1(Akq%!D>%4=tdt_xYWQ>L3#R^(|jcg^~CKZ&+?-;*uB3ydqd zs|L}2)(|gvbnE5jKd z2`Mz@IwQ>TYTKFmqk}k~Y#?qI75xk;oh%_=&O38~w3EdR$7O=T~V0hwO{mtCH z=E#l|Q2<_1UzP3hYdK|?z5gZf9bbMnwlbAy1_46AT8l= zex+6_3_|N2W{f4{n|K6&ctsgw^%@L?v2Y z8bE};4wx5dMk0Ew_$;vK;=FYh+vu+k)6L?6KO=Z8W=wUr_!; z^>eS~=Ih!;o!)izqrm4KY%3_PqNCXgx@<5BFwumL zozolrBvP;k4$a#0^(wrG^X9`>o0W#A3HBJ2i9K#mPu++ZNu23@)*}0$){3UjAHg&^ z4$U~%fBS3E3i(d?8Ai=IY)|~bv%oZWP--J4i z;>~z>aYn%pmOoTp8sX9Cz^s3`r6r37uj^t)SP}QeGyL`Ap)|b7=hCTLZLVzjR<$8C zm#a_E!xk(OHU+{UhxsbOE)P4|cY3;gP#8O~xLP zJ_ellN05JfpQ_P&ve*;bz4J3om~>K3>7TJiVIA|}D!ccfDFd;Zi7BOYvQmk1hq-(d zY;iT!*Ys`{*EVGi_Cx zjv>Ju1v2>~cBcdGhvY%sCNzQx6=MMw(>3<~LJ$}`z8K#<*v`0J zG%~+!9q*U^T|*rY>(br33TUFh$k-%b+fVUhR|Nexy2x}YFU{VwB+AyDvqXf5XNbm^ zV`W$t+-Z;t8h%3-KeSgA<;#V85F19MJfsQM=J117Y6*WOiVC?^bY9w7Z zNW>PmAG+0%39P)er}X5S9cAMcC1%Ae(jtASs_^FFD&0Y?LX&nmqKSxHDlQGG=z+RO zuyb*8xDew>vnYW)7zy}o^GUkLA1WLnF2A_8;b;dM6bw>USFb(Q{hBI~T`$LWJ|jDP zuj;K1)`0#;Pzs&t)8A!6wZ-jNJ09BU2NpSeu5iePS}j=btqKDLmctlH-#{$EhcW-} z9UFoJF2}vp#JS>@QBwhK@No_}96^$Mze=Q;~d`=LZ;7{#i8a)ehs(G|X zqtwF{GgB6qJ=kh*XV8vtg=@0Ab1wrk*TLCyV(sZDdbf|AhncX3-08(ekWt~4sdmP8 zcRB}@9~=pf6}JV?_R~70qSIqDXNA=a7x&wxi48G?067;zk}YiLFTanKQ z!#S zhosFu9|A-GEtVo>mGNjpn%nWnWtsLqAFfnH6#vChpmAIZ(vC3%VL(t`8p8qVV%W3S zUT^WQh>^_-m?w%RRO}%)`O1PQ4Nhj4!AZJVX@rZ?P+aMPmhv7Bj|wwMa3@wXPQ+5> z=;VPC6cTyLnGD9kjJhRKT7EYYycenyq;Pv`*2I|>6^0wfpLTW``rj~u36Zb(ebSpS zr76E8ah&2qY;9`p8PDfAf!bX+QQCoN6d3Vp4l-dy1_Nyf=p{h!B~z?bQ9Pk`YrPfO zoB&@~6#xss1l|-W(k)cC6|j}R5{(z#)p+3I>TQ-j5q%8uM5s`FSo=M*z9zKZ71K1e zKIX^-rlcxYSi=;0ULVI8VO={L=od$X^3rT46fX;_VRv0=XgMofW42UX;z7I4>A_B# z=zvp7S!q~*p&>OJC$|%N#{}4~Hcskm;+u4@)S)3@u#(Br-fX8k6PhP&80^EB8seQnw=UXjrA1|Dt$~)EBMtXPJ{N^^Z~94UMLl% ziR2=JQWooJ^XLsEI8yN(bOBl!c==NzWtL54?~*`D_OZ?OwSKb*s&*Yzagg8RuikP0 zK}!`C^RlzFjW4duDhGe(Z|OBk50m^Facj#Dnxte(2Z?jm1N#B9v-^$8aC>TK>DoEh zLtm^5{a?4Tj*cA*ZQH$6Gcq$Q#Ya)|G;JUVtSu~xyh`UK-g=5C>#|&gseb6t^Or z$jfbwUB<%k=N^f8d7(Bja=Syar(aL*B@GBH3s`=?yG5BHmo97c0Hm(V-(r^QN&|iXZ(i|;Ku&~U{KAA= z*fVmBvn?V#Eia8$Z|^yPQNgJ-o;0`5elKi!Iwv__f1sXoMiNpza z`OP)(_O9`&4eeZ=CI=iB{_U|$099m8xUOc*nL(QQ4^&ol4QG&q`B+&wHk<>z-L~Dr zZ-IVM{bEGkzffTEUp3fw3j|%_uQa5(((na-ahFceHbu|7^TH;u%v;5=%CpXJzCx6- zp57rQXjXhl5Rq7oC#qu_S+22x$Dmmr6u5ZO9K_1{nvMbtYrR!z63)&vM-F8SkKgF1 zpj*QNLR9ZmTYNkF#ifyPP=90v{ziGey@%Om z;C;6$jgcnqQ$on4_@^`;6QhH*G~-dUX_V%wCkiR^1y)W}>|dFaOP!^Ny)42s5!m@~ z+0?w=X>3|P-}{VY^}^{CEA64ZP$xuYXMZ%q%;tqEevy2tJr+Ivl&|x$^Ip{+2+9b7 zuOTh&JsjbtDfKl4NuWeDyK5}vnUTMYllTv@xpHd6`R5S%J^P**zm``9Cc%_TQVWDR z(`6!gPQJ{<8T8=PiJGSS!P^A&`fVlquwY@9)T}fg1LgOyA!5{%tsU8To%uR21iFYJP@o0W*3O%50*-ZlQKc(x;0@K7#v=k{nmaH@T44k% z8Wkfe5?nsf`*yD)N+ix|Ewe_BaFKtd8_F6b_kF)XC67{ z2HGr3@4$nV=S|kl_Nn9kb30s8@8fBemBtbQ#NVniY0Tt{a;V~Y=bC|K{f&iStVdSP z-@C>>Iq&u$XhPm_1}IsBGJ<8B$6D;<3okY6SurTzsO;gUI~WPXn>|lX?T2+44%uao zEyOul>LGltpVe%$9;bT zU(a?~Wg5TQ@l>&V8^OS#(-6q{X{=nAfh&m4iMFlcqA_zz=|0`%B>PFaVl55d;Fb15 zIqp8}MebRiWm~x`3Zk%@CI|wN+^Zm$EHW5VLBcP;z42k&uHA zK|4u0Yq|2$BwPgu&ynLARjqEZ0GS~0Vw0)B>S>stytn_C4aVICjGV^ZxLIwa8_O|+ zkzbbT?+uM+;s55JEJoC8B@ZpH4NO=NDB_7GGFb|IuaKzysR9@eBgdIQ$NSp+3o?ti z`m!Dd7K~q;Mb0r8nQH=9h?R7Kt5B^98JNu+Ye$qfTqXac(3(gt+#QB08)byYhfRY2 zCQ@S|y2n@+rTjO7eqC*tN%nkEWJ3IH@)8y7lSRpznHW)S!z#*a^TEJY1YgpX^%{dD zR5kFb+~gHCAcDe&+PFGOmkIprVbQ-$7In2bT?|Mc*Zh(XyLEG;ey~|-1^^0Lqh9z*tW6RM zgogiHIMw28=d((pA$X4aI7_5+h@E{5y+@0!k?Lt$h(9{vmrrm+vHMl{o-OUKwy$@C zx-w9Tt2p6+Y^OD`VX=xr*wHh~Yop~OMF4hgdw6f;K}LBT30V0=2x7Oh-#=5Be#Ouy z*A+*em62)N`N`olQa#bm<^Yk0P4o!|GIT|EvvW!P zjKsKJB_%)OJR$d-*YrO755BU8@5jr(rj=#ux&NA0Hv6Kuf6?^WzrL=B2wbul8PP5e zn5?{>xFA=2QMgPI-gXX32nP9>RxP$|0xXEGMJDc(X_`cO^zx$G65$#;N+0RasgmIVf4Uj^;Rqz5tp zAz^80j#H#haK2c+EmS zKTS!BeM>CoGf#0*WiTsPGBq0(UdJ&)fH~qy7mB@^&SrsG+U0*Seh-&t1z_Xj z>j={9POc7)n@w6Um1gQ!m%?BB2tHd zh)8!185Ln|6;G7?$^>+duQEpgY&D!=+!s%vp62}xTjIgk^I{$qViPfxyuLdH(^%4P(FEPxYudxLS?j(`+8e#rQ}#ie03;@DAEe!dK&a7b7S z5VgQp;jM^HYyYtE4s3&cT~wLghNdOj=OX4d51-6sNi>jc3n%)M0$%qguBR%=^JG7a z4Erb{Lejny9Mv(WKwiISmiRR7qVCQLA{%aP({njlr&v}C_^H&R-q*g`VrqfB`c4|jPz7Dp4ISPcNmv&ej{yWTMyUF=@GBpL1YS~lt9 z#>L~dG81V6xpPrvk}l!JXjYohp*=tN-+X#f8eh_~XL&^E!b$GK(6XZ0`y_>!LKz01 z5rOYjR=Vyl^kM!<9@p3X_>|OsO3$Lw=z=7(Hv60wiItO}RVHuN|9IdW0AkL~Alkz6 z*uha1*Dp6Pa11u-gr=UAt~Z;+m870Uh5tP?>xY%Dp&Q+ytTY-LaD+qIsyM4aG+1!N zJux<-Hg;dSB+&7ZK3P}VrnpR9adk#&wShPMn`tx}td#J`&juQ*e9kZbGNC(Bz z&>(xFW^o@!)FRV;G)drcQ@W!A@hMHaM0>-GQQLFlH<8${N3E_j77APFHLQ)&vJPJE z54_)qfIIIoPoP(MX@WXv*S&miM-pfr^wV`b&AJt+Gor`+WkXp?C02OZKm`%9noUpI zRsTOBaGwjp9o?Nv5+_+rGbtw{fT@?424(5{=1v#?bCZWh)xJV|&>eGP)bbWS)xF=EU&!eXVrz(AI9~p7YO*QP>=+WA z_Oym7?}w3`nl{8(DHe3v;Nh}@^Q;0`D0fd9CfUllZ)&!egRoGdT-djl$^9M=NP8S{ z39;k$oG(v$RK2aIzpOUG6wG|BO5;8`wR!S~$Uj4t&=51I0hcj`?Gmj#Rg@;a6g}G# zRuJDrx7)Iy0GQ>6m9a3e7<1zPKqNs3XsV!FSck6B{gM5-GBFbg`Wc2H3IRWN&|Do> zgXxAy!m3Wi2MXrPqym+4OKBh^L{sfzLDi$j6f3BlZnTb^Z9U6;Wqg(VGib= zims2^X(yw??6(kA8dcx0wTvX32K0lhVV^koe=t~nV*uaxHsi9I?OPRRplBOo3SbCy zY4*T#%NA0C?>@7{IQgm7oEs+gVxL0YNqm|<5H<`X`=YF|gHmyL$NekC0;=#Pe%nFF zd}>vhPcGm+zW^Iqhd|hCzlzq3ORz^obNR9`jDD>I=wh>P?6uG zSZ8@ttEB!j*-FjXbLEW13Oj z#EjTCC1!-H)QW9`F+n-*Ri}G>Ttdl|C@W2vqptX7rBP?|^(ea)eahCJ0mQYQ24cRu z5BBp`(eeR<$?`ZRaKyX@Olt(xrX)#;%HB zGC+h@g$X5$fv{E##*`FcpVMIzg-<3cmvq#Ay1X#^iw)}Pj?vke<{36>g?XYfrjSbt zAKo8KP!pvx6_W5n!~Rt~RaY5_g9vv%A7WicCVH;T7p73WCA2jkHZbLtF{pCs@JxH3 zv$TYLUY&4K$Bbvt)d$^1Aql@#H2_tMfMa_nz;ukC%*11y8Zpbh2-a4)H9)z1jFBNZ z953k^d>I3o6V#)vbMaY32R|53Ph}rZ!%dvmV(^nskj?0NknH_`ht~Fou;Yy07K#-W zxwh9xN<#8X1G3TBEvOACv=t8W2(QD3C)#aW_6#wQ)w?&lYY*v>tUL|ABN>GanYSVq zKK*N9;ksi<)f9%~B}O?|5Z5nWdq4;19v>f&@-Zq@rz5)ka5#hwTzHB~)9kdI@`@zZ z#u)6HtHTeOg1Jq|-`6@Drc_*%go&_8nP3e`IIi+S4R#yt&7<0^YRKlSzV##z9%pXD7u%V*J5F`J9}0 zd%m*|PcyHRLbrcAhLw3;tIAB8SttX&=|yn4928d}w%ZvYsz_K(dwFGc3%yMmrAaF) z#PB0kSuCUYFC?ag^z31%)`2V(t3{=`!h$W!TGeLewU>-@`9%TStp4Nn%WFr%+wkQm zx7DN#dhp?2p0!Jof$rxRPUQb?-%X6evHG{4YGYwg*z3kc!_KT(ZH`6SQUpmrXjkPc zS0ymOFMK@1=C(|!nX2j9EgKA8IHIxa;WffDO0<|PS=v*Y)2EOK#@fGO2REfLZW0qW zdzz$V%sv`y=|n)2WB8aPXOr}VDNiddC#|9~uXQ^dIB1t^9fRnS$&sA$c;fAs_ULIj z`7bbfVhbkU3i4}1?~7s@V{o*`WeP{ZEFbNtaWfJ(n9X%e?X%Oy8wi`$fjoMx?wbA8 z!!9MBO>7+tYl9Ig&!tsu%rkCGE4Wo1@*BnwAS{a+y84u4V$qyvX8ZN_F4K>|2$%<(Gln4O<5 zYNtQTHYRjw{B-T4v2;ExX=d>3gQSNm0!P`R$^a^2{NC);0P1Yn{C+v)#_0+07E{Zg z$Zn3^(Klh2mnOKVKQ;bQx+G3d#wA)0Tc^Re%4W_R{d|7!74v1z3C5MgQW`S3|48KVq%cvIH7@LN^J zB*R-Lsr(Y!<5g~{%|7_r3fcL)rETWRE8`J5;utkuvdvgYt!6Qa0upIX7Vm(thc#1q zmPWJjY1~fwEIWc3bJ_oUGv#MC2jY&g_Of36j#V=yu9C1G6x!S}33+673IW?~Y6R82 zo- zjoQ4{He`WFMYRW6anNAFlkxYQ9llampSwGl8tRAfRebNp+d`$@jo65c>uNf9`J8sB# zh~(B>1Axr3Hg-=ZzpBFq8(QlM{np&R-6~=*qkIHY*0k=N#nI&2C~e?_tTQ~cdYF`d z1PGMXW?a zuqAuNI3IhYp82<)`$5N()}#>gq^I<(H9Is0Ko1F=T%4(=+nz~N&$Z`6^T@eCVb+Sv zhUxUm{)_kvA1}IRIv6Mf-#u_SWK}fQ!(90>8VC~V0mhVz{=BH41Jn75YqT~ zrfR&EcZu5r`~M$dbpdK(DCe;YJS_Tjh&At1KCV4_q4|F#|8{-N+M1c@NG6Is8Pv+- zO<*lVBW{W`s4x{duoY+oRt0xmB9Gm5oD0ko#ly&-N+ro9!sKy}3jagfHx}fRcvq92 zRXp5^a9F?5S@bih`r;Nb1*xb;Z`qWv`u!bSh27N7V+Do^0p^?^1A#~P*O)FB)#O5t z8?I^DDSSKN6me5D=Tu-$J5vW1+&c^y*=ns>)0z{vmq+fL(ZzN6+3fSvqPKN|#*bn9 z!KFv)oHoC#HvSUQ!e-ylfsvafMn0eX5Xp|Aij7CuDesCsP0enfm-O^yw?Z;`d1@0L7=2n5XSa ztEHa@xV>JVcTMiLK=z*V)cYq{PB0#Dy8yrK=Qzhiazkexc#8Azhc$iKLye{E>uc7- zkTRJh?G2byg=?u<^#vr5M({s}3-e9YLrq7<*e5b%ZycM{tb_H`XACGb!W|Qi+lRWs z2@GOP!rW}gMtnx+(T9B@C!s(kRRjgimKEqZxGr_5#g*|gA>8eNufO8M&cVT{K(&Bq zxZ?qZ4@$WAAKgRY72{Tth0?4vm_29c) z$r-c@*i<;tA37oNB97GklwEekG;3k7s5TG)_+=fg_!$!bKCWg4GQ)rq=1|kn4IAQT z1iRl17tA)?Fh-?8lW4=QM|w!E|5peLdeNo+29fR1W`Hv~Qhgn|T)f0bo~=v8N93GY z<-s&3)+C`pTWbqE(D6z@0JMSgAHwVZNyHcV3mV9#lf^;Au=dxkgqdXIq(O4d&A{a~ z!L>O!kxv-rR-5oTH3wSg7QIlUb%@1JW-}EO=%09o5KFbHjQ|mjd3xSHc;=h&6wH^c z8xj#%ulJ_(6+N%;b+~Sf1v^_{JoyBQC1(YZh%imD`ezRG8`HO_Hk4h=;+pj^->*p5 zC8p9gh~QZZk55RgEMV!3I9o9oDlg3^!u`YQ?#*E)K6*sFmNA|u=}@!xXnDG3*bRYL z%fjY6zGbc7h7N#;!moZ3=W~yYC}Fr zxxmacG33NAPy5J!@SYK5!6k$_Mi=8zJ0Kgw+znVQ_HbSmGK}(~xO+W8m&11aQ7>hnn@XFDw30ivZ69B z2x)q{7O8m=7@}A$CZ?5Jr(K*Fw&lslbRDrCO1A|6>zS{s4YPEJk*ynLcIce;*sPYq z0Cp`LGOwy~24Uz642}2rEB2_=VO({c8vLS;^CE|d2l^RpEsOZF3z*mmAkgdr9^|EW zI$WyANV;St+mHD{*fiMo$3w5?ZTk3Ve2u$@I(vN*Ac?6_N>X|YtUiok4>mkut(Lmq z_9C$uax^QA3`r=-mknA{P?&I;YIO2;&4M8C>t%3PlxASmxf+waP%bc((R`)}=o2jB zrWx&-8V&@AAgz7<$!Or!C{Xg7!qs&JQ-~w!4M;NZUliDi_80e=9^FRi1x(MNgq4^4 z*j=UPK@+@vp4Lhc)|M7WuY}mrsx%yGw~^e{R1;gl&_HeZk5qR`)Y%rn}iB;~VBT3Zt9F8=7H&gF^j0OraJBnxlKK@UQQkW; zJ0#qp+Yyb|Uoj!ez4bootN={9?^X|DwiXgX-fvnpU;Vc8*&d|r>U)46s_4YhS7 zKba#Hlk^$&g00&QG9wC2C2>f9~e{&X#|8LI+wz5{Lnn8`0`wet&Q zhKk&6Ga8pGrY8HyX*6qqd6@!8*vOUu(Ing<6=N3gzCSl%JK&HNRVGgvg?F<<^U>sa zU#;8t+B!6Ns28>BTr@KuX7xUT^3vF%Kvw9lZS$hTG`pjr;koK$&~64R^M}YqrLmnW zD^1dJeTc0}!*gf$G#d@BY_2dJFsta(BP8`=yF_bRVBG31R$=Rsw+~EDaP;8d|H;K=%d7hsi>>tjE2)|~vyfo8@uqIs% zi9W2PNHJOF`JgDsa4ly2zytR|6jNVzYA_!fdW3x07{F|0uM+A9r8N$tZREF$yI@*I zV5lgJP>mORONJV;d)VkX3=5(hGuD$BSRUM?z-90Cf5%Cj^k&x#6;rg?!w*x%h{{iU z4~euP|Dte0vHL3d+br-`ny_sO^!I(*>lw2>--43aeIBoGe-8mC@m4H*QFYiL5COF+ zjGgM(^ZpLj=B5;}uYY$jc>d0ha96-yMOFwvZ;&jQ;IJec9BBo-)vn{o5{pTIz=MaD z##m5pox+L;q|~Z5p$X|aIN8NW2~7+id(+Y0*?=~WNN0bGe zm*d)r4%`cpeg-?Wibb{QV?fz15JS5O%Z8APSj;v^<0|Pk4aiLBW%n$Pr=m1eXrFKH z-n5b4Z#Xb&9;vN=!~Ov9evjy-qmfTnR2fGt4wTKlC{9FUMrxS2s~`zoG0}WkQtDUj z;zl@AMQH}j(A)HGrypsQVcSd2f09AS`^zd0Y4-jK{zt724A6RC3JIE8|M!9V_S#TM zLxIOu{|D5nC`$O5^6>;y2ky}a#E2cbw@SD)ep?AYNV7v$>3GMs? zC8O@YZ}UXMm3>E-inL+0D+E|*N3_RA8K_(0OQr1#{91Tozo<%47K#f)(LC_WCDx(m zigT{_d(`lW(3>e;1VG8FY1ig8yIidBV?Hl#YtH6c!k zB~^8?@ACLuK13QNvL%s(ar1f*0?vzzqBzWzuIpDJZe4AttsDkC5N7ESV9A1$Mk~K` zp|7!_?^xMY)P^Um0Jwy?$7y5w8^CUNF!j=1{WFR7!|gK1sG#sGTIu8f?yYLG83wBe-&LyB*UIc*KN$@Z8M5~E^|7_j5dji|&CmRAeV-Q|PSb~|8`NwNVd zDvebE5pc7M*W)lPS;$LhQyJ(LqLm#q!CpKL*p)3ct8B3;S0;!>_|@b2Q#;Vr22a9% zum~NWSRt4}b76wuX!SBQTV;<%;oUCZ@AS$Fx)Nm)&?H(3bUWj^*Hi}7CFnMjfJVSz zVaU+2lc@JAh$h0!2P3PZk~F({@!~1DtV_a2jJz{0C)NY2@bwoTNGba@guEoTXA7xK z@o^r$%jI-?X>&0wLxlESKD2cl{tGeRxEYvEf1^&<6=%jF!r36`?EF&6ufPqLWjxus z7nZJQs2Qz0eY|L5_etX4lBkW44@*`x5GQu^bB;EVTUpC1XV6Nb*@z@Zd{_^v6P`@h zW=vm4y@;#Gl8C=Pky_1z-BYy5>`Jgh)|x@?AQ&!<57{nlhd=u9dRa>&c2G#{HJaVL zs4&;s)P)i`ZDP{14a1xNT{$lI_jpY9 z^o3(mvh1mJn^lH!3Pz8E?@96!y^-AULm*Xf2NcZg$*MXTa*M3=K)hBn5gMG8!9 zHNt{U4B7)4BYsL|Sy63f82WD+gLRd8FQd5Qq!fEavqM2F#Oii^TB`WWsJd##Bq)Cr z+RFr0~b)>^x0(d!BIVVZJLH|9u1Z_F$ z5~E=P#nnLc?X`p+eY@n4Cy-@N0#XA07t49Jgb#{Q8XG#8-^Atj6LtE!W*a3h^~Qq< zaV0U%9uKR1N1Tb~%Qp3E+4ioP1>)nI>uUUFGF@qMi0Q;Tb=}Ca>ARbpp5~=E zjPOT}U%S#^z_5vD$g3}fRN4MuE5?w2lwV?PC@{XfH2x~F2fal;(X!~T50k*k*D~ht%EuG9H=z+pA%0-yNW_cMkp!lvDuE6u@+##%aJz} zuyif2)4^Na_FN;`depRd0wl3a{t_CJ{F1?i+Dp1sTRY+oVE=9j`yaW zUaQJ%=IKi}>u{K75}HpK?cRlYTRndLh!xMZ94DdVvO{FKfv2{VTA|&$AK02EnCJiV zYF21>QE8B{MmJfj(s+&`Y*AcW07b?K!XF9uiO6LW^AV5>R8blxlG1|Xd39}OtsmXw zc1kvRgySc%*He0qrAg^JNyr<=_^ut|Yo75)ka#9fh>k0UnZ(k|#y&;6j7)HZRpo zkU$6b_vM-9)T9Y^hreR_B%_he)(G-&YWhXyM;YLoh*oKh%`Tgs>l=LqTWgUyft6SW zeofb24I2WuoBXKq+FY0@`=T_AP7UlfZZ!zA1632%zSa9Z?%?U|ORck$?`5mosxr_d z+d?c2-;GuV?-^ACwFMr|!eRzt8p%iF892r^e$~W?=(^M+G`C2Ya&Rh2Gjq5PxzE-&aVU{QyGFP~j?|SVp8o*am|ACh*pp%DWj>b7UoREUJSis?rC~aR z@c{D0Aj(&2*4V)h@k+2m86lAm4X}3@-dEPwguO|b+3bbF4-b-L0Uysp&b(eIDXLaX zluNRzx24K)z5hs^%GiYE7+#fK1YrwQM(mq4wnhIF<00;Uh1(@G3D0fAeQjiD2`1hX z;lY2)Sj-C}Zb1?rbjqHpirR4ZM;t=HGnG0wU$;9q0dZDVPmYe0|{FKxVy%){{?N9BfT#`1;V^W~! z12^$6<)Q3)Y0P*Sa0gw7euWwMBwZwvg3HwTkpgHyrXH=idD%yDf3?-;q~W`aL>(?B zN!fPBztW^U+`Kim(73*a`gWhtM-0;d$WJhbiBeVUek>^Ql&xzefmFE<#R+6jswM)F z%Y_0SwHg}-jqUVzK4A~?NE~?7#{y{bX$rZpUx7Ww);qy63B%Ika5Ie%N7d z`@v5&F+;jl%^9{2g{OVChoqu5J^WaJaza;PMr2L^e~FXBfu1>a6WQHwnELQ`f3qpL zg@A=vw{w9TVAw2)Op?Lgd;uZ03cXmvO#MhcUcNQA4U976wV&b2)%n_IZ@eo(z;c@S zA}6}w>Am(vm)*lW=zRdq?qNbJfy^km?^_GwZ#G1(R}Fg-u!xTYl=#PF87C0qS;D?MxVF>D9ORyPw{nmZrq!^RuW%q z|9c_m<+a%*%O7I|Q5xv~3-CnC zn;ZfDVnwxq1|sIJ&90jXJb5sJ^Dx=WUpA`?qMpnPH>Rr?>RrLM0&hAWhDx%&G{kmK zi!`|e1v6M4jZIISB1BuJO=SpHGNf$dnt>74krbmC5Zbbs{$_|eae~=qyBKV}QJ5-f z!~Knwj}=q$!u=6WqqV2yHsF)x(1}R@L=c$`F=eH(-2C0ev#vBdrRX=F@o`#k_~ZF| zXk(A`)I*MJ^z@rw@BM1Ljm# z8O^X_HoIx0OPYsSxGhU8o302P0b~ivre$}RCcdt`GBJLLt4~su!5bh6vzo@ngh0Eh z8D1WY*Qw8cjkmjhyfuC8tcf;O6$h&2&%uA)uQw(|%rW>nCthx}&#W>!FbvquL=ot* z%a>(kV`H2c4PZs4*9U_Pp67o|qeZpBd5uF$tJ2KwgoPGE;~FX&xGLeK-x#YkvTr%l}bZZ3Kn0heJvYW*%6Z zYCSL2N`8b8U?DQKohW@In?n0rog~`6b#5}2MI}sFOvd`cI=6wrcrbwxO0aXCBu;~J zMq#eM;r!>*v8m635s$i|GH&)xb0<_J$!RtMo+p^F=ljGDO$5tOSUxc!tqoNA}ZTM0U|={6p3 zzkc;RU5~TuhjNNbq_9Co&HE%GS4A!L}AkPQO_{aJz-3R2HE(>4I;;CzLfuPo9JekB` z79_x$Bu$b8@%6Z~S8>;rgo0<+sfATlX~LQnRd`reGjgtA{US3EsWCl4FSvJUdDz94V`n`i!EvyWj zeyp!d`?a0=^_R?cH`Eau&f@nfV>~}%nyl9&WlIraXg_WIfF-P zDAxfh9>YA&k%}{ufKnky;9}{-*BHXxln-r{okSVWUKlm#A}nX(rT}YQ;-zJz|NcNV z@UXOqlDCdKP&{vu#%+jLS41KEuMkegWn1r8eMg(GugoIY;Rfj8tD>!@RQ1{Tn-CIF zBor{$y(?{6@a829RFx+0Jv8p9(wKrLF>me~tAvF6CFDfo3dN!;L2R&XsV~i)f|o`^ zK{j_UBBNGs_4w_*Hd1!wtf&08G%7X z{wcTpL3~O>X{^fKQ=l26tFOjbFUZvc<$D>sF?Y`Q_JY&&6K%BafkNK%vwQ`#x0QxL zsoNlWzDM5K&F^@d6SVBnHGJl$0V^Bf`q(N{Y>I6gvx}~P#PQu&19Uux+vKbi?JqP z0=bKYJqB`Vogm2`6RU33;xv)JA6A;Hh*>WZi|s)E= zBD=lD@RFh@k|*Y-40buIZ1U9D3>Ux}GM!2}*y+Xt^*A*cPh`fEf%vwVj)r36{npsb zY({+k;@n!8!l>yNY+zfzQ11zmXnX0ZIO`c0)(CtHr2$B&Ox+80;biIm<*3qh7#*Gh zI3*lAl7A%mH3~>AAS2(a!_aV`%-u;gMcN6($Crm;{ceWBSzBy-nOt2$K7+c7?GI_-X@&hU83fK>|ue~P#TZ-M%HoX31dM6gC9h$6#zFQ zI1!E{6qA*kSxQ{PoZ#&yoXC_K0f^?^Towlk8=^4stzD;*H|1#8R(T7bUBja1jw%g5 zS5~+52y_`H%-)3QPi}XKG(nt?Z{CDS`223W8y$5dDbbnd&uD8_3b7K{g*p`oB(i4A z&{dT|k`RuZA(fa4Drfm7$;WDF$5~6KKO- z!8GkqttGXx^=#$d(wNYJYYyvb@H{M`TrdON-j6HQ8qh$cT;U+qm*x&3l(p=c z3-2vcT8RAj&_Ay|j)26{?`Z&WZLJ==wTKwbM^%P>g9Hp~|5!x@g7d~wv@v*)Bzc~6 zq)m}3{KZh#S=Ub?kIZZG|6_W^#d|U{u#_%9=Fz`ZT6T(VBKbS)n?Yc3)uO?&{fgIx z51$j5J6OlYz)PbH+^(*S3H5670B$_)V8JXND*q?Th)}a+olw%TnEHQKPL@e~I-^5(T{c+{OH%@(zx5z;W~l zs8Y|qAM&|JnV@^8|6{smWyb(nK&HQxO=JVN?WW3@)=jG%m{kT@#KV+kaxvNSW|5)y zeP#Yf%BQIp0(14268q(?MzF(pvEJUmOniuB(6qF^c+d2-z2V{!!XqH#&JExP293tR zb{Cue`|pJ53Z+O@O)L+rTn{@zr)hRSedIoTQ@8%6j&JUIgtP| z8FT>Hdm*MdrXbYCt|cOw0-%RHkGEY_n&GER$gkJ}ZKc5g*1+&9m;~PZ3$>cLULa&K z?Bunnsi`jwrmO#L94J^uXX^+CL1LOc126uP~g}w)gG;Y6VT#vF_Y?*Fw0N5%`V@6G|)V51a;qx zY-C^Raok`msZ&2W`Uvqi~)eP&A%(wK0IgEe?B=D8EEQqwjJtGfS>+POUpA4hx?-7#!i$_SuN`%s$vG z8jnXC7VTbq%>i0Hy4zN8e(lZKkgKZN$c)e<9ab8Vd1pVprZ-l&NU-=u{2aLA*{U#% zuw-f2t1v#$hiHmWYqR(tL4@|7h&A>G9D;jd!tZyu+*F*7s>&SqXb*ii8>9J&WMO7) z7TaXMU7~WdXHmD;hQ?PE2G^oEnu^3y6LVO?H|zqm+2g=tw;;+*&M~8?s+z#7a9g8$r2AOFFx)%n-I`+aRFC>VEH zBxVOqVj8W0V0oq@kz3=&Up_+*uhwSJLvmcx<2`a!5GxP@om(OAbh8FNDJ6y4a0kQm z{0{>0T4{W4@7IO2WWhOMz(nx)+s(`7)o+*1ge+mWarbYn3%-^F_k~V~sDUM}E}Jj| z8D+Gl${tq(uT3t?B=Z~kpy)+X4f)N-RSr0}6=Dl9?%~R8y1WC&w z|4b};wKM=bM+Wk62JXO3T{v1jH`q3aXpuO_w6Rng0zxp$f3BO?YGdO1CH1tuHc%5y zd<=&kV)W#ulMLFJ5wIalbG|rz?(<%)O)rO1E;q6$-Z2cqoGP)!{}b#-;q9TiXX(nP z+Bh4U&ARjC9=2|JzcdTRG`|de9a&N$VR94rXR%FL=ang#38$?z-6$$-j`cf$T~IwD z3N=rNI)ETP-y-y$@x0HaF$(<>)A>?qC{0-Q98ek!jIaY8u>301L1@7VjozV~Y}#!U zo=8`(mPUgisT6Z&&*GL;!#_jg%Cu^`ce8@>L6$BXHwS)jU1>Z}=GXUY)3dp<+%O5V z!u~Bu6PThvxT>lnoa-rB<<;8wnWS@CO8P9-UY3={nn|PRd+w=civ#=eLT&Kvuk0f0 zY6Cr%_VIpg1l!ISGcz(>oTdo`uolE~iC(<(+SAI8t&h~s3E#X8US{(68~YU_80~Ws zJZEI>2*``I$?15$Rll!Iz^@~Y)U>UZ%>LB6_b4m<(GflUzB(#h`=b8Iy64r>U=s-n zpa=I?L1BF4;EV1|1oI?>nW5$UJSu#?ZBDsu>PmCIGAa3h_}XhD*A`l&G4uV0lI8=V zq;LZ4>aSuixN5Z4hRR=#yJwq5!+g2<7*DoMtb-vz@%jfgyil8tV{cV$auZuwykDCu zm`WE6Am==o*_ikSQHp4ezo+UCNDYm(Sr)_ru6lOnta~1uG(k>DBR6t$&j&0PuVP24 zn?4qguhoWQu2Jp%+R*l!ggsL|t$u9NV3heaV>3)Z@4F;~&p^$qwb|IHoUkhFuyhDs zY%Ex2P!=rL+m4;H(dd6zz3bCy*4tDHxEYs>><)f@effIn+EVVBS3RGXuXTIFcvDd38Y;- zga=j$l5hQ===~s|V3037d_L7C*D7qVt~Q>1!^-=$5v{_2#pKOVC!Pq&M(ao`d_}^| zbbr##8f$Y}gfY{hvLgfp1^Odsv8WS_fHDzil_7fhyE%^^N|u*ull$hWS*)*2)UW8e z=vP~!wtL$}&Yq?oOK8WIENpFkrLGTq{|rwMQTrQx&N6VZ+~%tQIY>PnOQ|yd)31gj z{S~$^;|*#Vf^aYv1B1NeQ?lQ9v9}HkHci)&Jjm(~Shn6BCQB$S4xd$o`%Rbp%AARu zP*oZL<;m~Bx98J0gVv~Fue)jTdVf&M+e>rzN(;Uk89XGr ztG7oZL-&^VGaFx;Czo_%X*hl2s4?$h(#Cr)Q5~Iz(pqY_30xokM#a)(N%uj9eXTTc zw0s`E>T4tAMzpEV2AwV@06@@tLbnBX@hrCku##%54QHgRDIuY_T%3CdKs4PzVk!AJ z{nNGoBA@2DHhfE}uVI#!N8B~srJZ~UVd+)b?Z74yE`6gA1Fg^_G~YEIIbI8_r2KFl zVy({arkU|uINOzi5;1R!wV|6d&DGZCm)&lAX*dpXc6fxzWFM6oaMB8s7jt>1;g`?f z`q|Jp$mPJ3uu!KDpKzNVnV9SsEOu{pE~nDYCHtrlm8(m0xgBub*hje$l4vCPB8gS# zycgFoqGor4es_#&8f)V`Wk-yIfodaXOJj-p`540aJDbqvsd(M!Y}|!)H!(&edf5SU z)M9P#YGJbc2$_CpyQK~q$DvM%$+eeitj!(XEV?rJR|q?{-K4r_!WNsJ?PC1&0u=jU zFtI~f*V^Q}A@q5_HW4G-GbS+oOyG_Yid|TIj%*jYt5BI{n0RI@ceA|+T>{&4iT3HD z>^6YJR_ZQeqg0#Z0Zh*r%=fi%N0Ar3UmJmY-lzOZDL#{e;k$uUng#`}pEhg9wRQf6 z>&;@ptSUy>$3zE=Ue5hcY!V9_J20}~Qf-VxfTha&1_R}Q2i!h-?;}g%NE1oIqwjNP ziU)~}7*6lddK1%HGQh&GrE#|)g`ANj(6Y$YaJ;;Kz>s2PMmO;@;#)jXq&V-_hQ7h~ z4qCwk4HX<>3 zXl-qNWoNb5#`YVsWIpDW>lNY8ZO>r-W+~%%85u-MG}gva3bKmSWB_r84Ng=d4xLz* zQs>n-^wQ#`u_->{ws8aVW>gWfQ;nY=<>pSn8jK4nH4EWMV{MjsH^8EmVuW%9c$fr{ zCq%i(&BsKw09n7UjR;iAqsr36L3cXf0VhuKm}p!fDn1*W0F9qNKT!ahweTl^U1Mov zNvL}w{qWU(B#9bl(884879x*cd-y`y{e0bc!0T$0=7t#O{n{84gtmg<3_d=a5dw8T zO3OXVCdMU_i}ra_=NiJhGohD-wnyniMu#bC`>oneUO$}Ax?#w zKIFgl_Qn?H^f<2gS%E&tM3zU4alt2YI6)2$`y|{6O>ptfGPL0bn!RB!e7O}I5%E~`*M;`gUPvuGK ze|iz`FszgOsvrFp<077Fz!^5qqtu_oSdCbL1cQ=89)BOU(_F9P3GM@!R zB7>D`^H}meH!9!OhQ}q+%KN41^cVwH8PMO@%}xbi8Eqg_N^d!h%X7x?tEEAd8PTg} zJun;dB?BjO;f$GbxKNdGAIs}HUSN!Vt4i~*e*8#bZm$gwmBnj{4UNi|{F?YTH`kgJo*3b zZTj1JH0B7NME&qKMNF3rP}(=*_p#@)(pnq&|1+{bpjgPAMHd;6P=<7XIzl%+Zb|8t z;^b(Os=RHi`K$&HC=GQjPeG)$4FNLVOI|4}M_U(==v~HI^8~J+RV*iGO_^&XU)4sFY7I9K!+ICSgK4oC1?wEm0=@xz$#Pl1>hWO z&Bzy&80B%6F8IS8%y?V+0cW1Z${+_MG{}I^LnW{QFp^v_{?aJiZvHh#wNx1nV!!yB zzgC%Jz8NcTLpI}wYbXJiF`L*3!1*sqmF3nnHv<#qcDB~|!wVw2ouqTcyO66R8xs0* zZSh+CW-zqut?J16URkWi0~(u^+52U;g3_Hqx|!7b{4vf1HgRwyFTgTstj&D7qi~D2 zWW)zuo&EJ4QNyRrM?+0OBdtvpVXz{~dwYJuun!R`U+E_>#zh#{7$+y|?DGP-OF<+EwRbd{iz9ViLQcT`(SrtvO zXW?{-Hk7b0{%4e=34v(c)UgFx*IvWtqx2;{Jk1%n+a+I!G9_M8j}*^S!djjsgx`NO z4BxqYyW$n4NKP*=qp>y%Qq6s_iMmFSxnA66cjOxysVm`&P3Bz!cHts6 zL`z<(Dh-;2KlK4)!imu*m74|cE$$(wY!x)IBJy$R5sdA{TTuz7Q#?Ijd>bkg44mo^ z_57iWpp1xT-&}0@9vEodiON0Pf22vZmxe1RZYJa(2QL{mtcH2I;{4(}FhQW^xV4_B zMV5!h7bp=kL?n#3x8NstOT@!aK>NC4X_|N62VkHyK;{{|fGsv+mk=k6H*uQacR+<~ zKixWATB(aONw6pyk~b=*e0-UIbm;`=9Zv*Bxp>>~eR<|TeBTd?$^0dhqP;dOiy1?r z3T?Ik-fz5o-;G`ME~=6Rhasl*NO}G7nQob)VjG}PTH!2oe2Z|ti-qP3?>DkxrKJM= z5YBVJnPQEMYy^-X)$vN{RpD4D0@TQ~btChGQ>%JxoA20%&J@W)qDc&|jJ%^G+qE`) zs)3B<+EDvm>iRxc{?8+hlvU+Q9f^jNkHtjnNJaFrYDM^8$$uv-Xe*7S%7UWJ>@v>p z=#Hf2iJ)@9jU#`k5jCt-ns7sWdsU@*;CvssB<;095r+|YJIIyr0#+!xglaI$9jDJA zu90o+`}j*?rI3Czg=FJ)_Y|(eF0rlmGp-6sWErx_+U@$`6ZUFtNQVx<&c{=SwaOJ0 zf7NvZB?e89*fC?4d&TMsDXFnGq!^|&C{3;|6~|%g2;yC5%$!)DBs;uNn~{Gor@*Sx z9E8~*9&$ee@%{GE_$|XKT{v77j6Zma=jQb;J}HbYEwCBdLWifAi(`&GosIa&cK1?7 zhX*92%HAfJP4|oq*4GAr)%&uE3gVHCCQR*z%H%z_)xCO@OKHYS3zMp)aF%%C|S zpDf|zsC&Kh8xZweI#7(Np9#U=pQl8&9I=aHGeIiGXWQZ_@yS$PBAh6i_Vq&EeA}J3 z#?p`#3b!;v?Zze_K#W{$l8p@=Di6Sq!&a#@Y5d3Md!smi+upxln|?+4K$>t3a9X)M z%t5W^bZP9`hlP*UQ&#n>wZY)&WG~|gCg}t~EFqEe3GyQv_ehxbl~>>A&xWMOvbL@^ zr=Q^41170hZ?5F~aiI&^XJ$yECWu%nlG}#8S8LmM)=!UC-jtr1L~cAj$fI~*E-pA! zQF{5}`+fD?*uGcQCM~hK_Wjx<*73YU|Eb^;1>q%^7eF+*Ah^;b%R6uFZD4LIKS1|a z2Y6;jY*LV)>R;OX<_&b>O0}VNVZ>3tjgoV4z=vZN?rj%?e2pE?F?|09z5XO ziyDiwl0vOK34D_ik>^BvHR6HB=Xm0#j@bQ0+Rvxr*hjgy>PllY{i2-prD517sro^Z z@VO@e6HE;LyL2c4($3isx2_gWpbi(<1y@$Vx!p1C8!dR`6Wr`ZaRx6%?wV(cD{bWn z&e{3HP`|x2!;H-PP}K1Zj*q8t2S6;z(<3rGq!+E-O~>gG#Q@`A3<_;2XidkHfE)Cg zqamk;Yte_};hXwQDf+%N_&E}J-mi_m-Oy)Dwg^bxnp>D3IhY%e!15;>-qx$w3fJbs z6HXbjSiIyHu(*%GA${^j@AT!R+FOo@h z0JS0UXx=VBfF{yTQeK;#)vn8=farcQ03az#6u1?60r5l{pCt(2)}|K)?x}shHnX-J zPHX}UOExJsIa3w^Gz$nNZe={Gw%TB?$E*xRYctrJsi+w-kdo5OD1NZzJ(qCehXva& zxw$XZ#!vK9O40kZ!B|xUZa?gcT*c@NF@QBE^PiCwEbqISVvQTkIX%Mi8-~r@&Y0X& zYiSnm8RvB5HO247IGrH1y4nx`cSr1AEbg(xV-kL@kVEJ+h#po0!(pDSX zK<1!!6}(!Kyl;r5$1>A0W&^WwEO?KS4&@+IarW3A(3xRM8SH~cD*60`pfzs%YQ;V~K0e&s7(m4><5v6<1y$vKMh z2Z2J|SY9b+ALyWn-Lf%l!%L+B#JKe8Uhs#@*byg6Fv(1jf=4ByROgqBM?1VI7*-l7 zeBZwHm1116?1WZuP;cM0LqI2tA_&KzedJJhe~PuqWBmMcet)6{u^yKLjugTtJ{ckj zF`a(^VKOc98>Vu$=N-9(HSeV?(#14OL&C_=65Iic2ujrP_mxw82R+`341ty-6~idN z>-)8dgDgZ_*UH?`*W%AkAxNlgBcm4__~f?MCUz6IcyOT2+|5u1O)mYeV^E?gz_O}r z{sV`>b*>yVbvNSL->=QUvw&1p(%{3LZV;<{58!g5lpi)8QiME>wOLUEVWD(U;evLM z%`9J%ITm+<3v;0_lE(h~r$?7IY1UmgupYbf1CA7dOGH2jv!|GGoROf}!Y_Jc@nYs3 zp3bcdKTRXl(_#T?7e>1_XFcNyM4Wczi03~lar5)pU3|_h_Y2C7>t%=A0D4An-~u5V)OuH#AxDH(x=lFL4k`-e*?cAu zQ)C@fJ~~+0va}-Rw^C`eHKFWO)+X%Z1KJu~BeORM4$&r7kIBH)*z-Wp9bD&uAhG!h zUSO$mKuu*9>PRGZQh;Z`2f9CgHA#LE>_eADe60O$xF{V^8hqi<`vmrE56f3?_`Di< zNOZ7TX%1PXHI@dRcixhHXK5LnmGTNU#eOY8I+snE%K0T&S^$#D($I?^f=eKg_*3&t z)qjLG5gQRov45h}}kQd!{GGG_4+Ta72pJa~WJdsc%j9#Xt*ww_U*=o3| zHlW40U%y`)bKY6rlLaP%MBGz#d`O9yNc>4+Aw4|>KfYR%|6OQlbIj#;b<|=Vh3BaD5`7s3IePWg4 zw=lv-9oDTc9Vs`l6!u!PD76`mI8yNJarH<|P>3uRh-@uk=~hR(D8V%=guAUYyyeYh z*5BNZ&gNAw6;Kt!T^1={N#{Yq!(sbS>UCanz`cFHy^%2NZ@v zilkXhZ0x|pym-Q&kMMirb+b)9a(!cAh*}2Iyf<&k-9(l zvg)gQz9rP4SRb(9m6gVs2)D1BBa+e|BjDk~?3Z1T23&n?_9waXSQE9tdz1kF2Rjam z%n_X}K!uLj7s)BHe4y;2>JC&EE??LL)z^mIk$whztHqACE^`moHT90ma~f_m>8)56 zE|$Gq=%t<`gBs8oq?%0e-K&Uj;65(Z2Jw|ILM25Dp#&QAer@>rz)%Rh2PIm*@ysz%ukqM5);ksLj-_3;j3I(mM%@G@yuIIQ- z!f(WhXTS(nL6eAG+GhN|^3fk!DO#`xv8t+Kp!7Tm@{19=l^`@4zf!)1Eb-EHqazmc zQCS*r`w;?guocs_q(^021jp^QHa3~p44;Mt#J|?-#x>DzMkkO~sQ+{jb`{8>$yJra z0FEijRUex=o?F$mxgAj(BrK|CRA0kQGW4@?xuWBtxo$!<`~=N>k~?Yy3oM&0rb_yQ zWM<#8=(6o1a~`R*OOO`cD?qEZ?W0>bVpzBmlv>XxVk8R}JU@_}B8kwKHplqU7PGN5 zs5<06h_Y^E&~Qwm1c_4`aWtcZVR3CgT6(2)#9}h5YU3J+Tl4$1p*q1Mkyv+%U!_D? zyOEWE40vgl5`=YT1J+g>Sm$}l{iTH@2a?6ahRy0izlTbJ!~KG-OM>*(!vFi!0|}40oY; z#mXRPu?MOwjj!ei9&sQy_Vv)pB=_(p22B8t^?gDpOv~`3RzyqSCSi+=U$H`>p-Hb0 z1QLzHH59#AfYJ-YLT1csN|nD8*7t6 z%;sE-fOp2;#oi0wUoNCpo0q_`#GLYr>OCw#23<+r-1K%43MR(75 zzkBzjRI-i~tF<%&LVYWCbQmRg5+D#FJO3~D`Wss)Ot z+9Sp5@d!nSKcGb3Y@&t~i0m8X19^?hG~<9PU1@V%@wiLZ8i1@rV!(}M6jJ5|NUNw6 zx&4XlFVyCLYT2iEJnc&ozyn!QbYLika)TLgy6r4-z3Yvofp07cRIv6=mfwXt(wW}Q zdnK{8AKYd`>9&b^>PQ?~R~ws5VTAA3rsvd&k>$I`WDYq1h?@pvlTS@qwn-0bJyI&O=TzBM~(=7Eszht^Tb zb1ik&3y!NsVy8t8FyUO;)!la;1JtZko6OQoC z#+sNPu}OL32G+Xf#R(L>3!M-tNreT>iUS_ou`%oL7#d!S%LP|4Zc0^Yge}k?9Z(t` zHi*!8caJaxBqZ03vDsV8+=<9(;b7TV8p9a&o^3idrPB9wytg%enDd0%z9$X5*!ZE_ z5XV&RUE(+Ker04q7?>=hBu@Bf{CTnZM8t|NNA9C&2*0eYGI!*1rbzM)6HI!FfvOlz zCZVHl*!)c}RU9&tKh{-ldGpnLk>^%l8|rLW{{^pM&qbVw4yw1y4;o&+2ZQ@SPv2IX z9875o7CAa#+b#>_aZK_8AJTmh)+=kjRGS;h;}m4r(Vg z-YQ)}BUimVFS6=u1Hl5;==3Z#HGW}!c$)H~$XDHGQr2c|9cf zU!KKx3<)@UNU+m9EhI+t3>xF|T^#*bZCp~;3*_Yo)P|q35!^ENnvD@7r?|*z)(|?G z3flp9t!pU*4ReN&);Nnnv_kD8yX;O2yyJSXRB%-M?lldqJSvq=|Ond`{)>?dfLvjw^ zuMPhJ%UtcAKP?WMy|-FqG^SUxi5 z@ot?>p<36r(lGy#uVGmM81?|Jcl{(?ga@5?ibE-nw{mwA;c0DvEJ;6#aVw;c(i;Wt}D{D6?x+zlNok;EOHTYDSejIq+q&Yvb8 zn0Datd4zE>%4Rvi|E>7dJTky5B`=A|M4x}ZHl3h_eJ6SGs6M=45gd3DCo6Mc?W8qp zo-35X58&6y-_D`xO`EQIl=G;FAwoyKlwzDk^xkn?3ZB%~MW zVZFI?a}Jk<32E^rhHDOAsJV*+gI53j+F&6?q~lr2*UzFkgmfC1+0%U$P2rPj#X~QI z%p7=)u(*C&e>#S_b8r{Nq(sz^(zU1~vnzmQ)V<)r{P4uzuT4i#XHV@G@Z9E1DGT=^ zKMK6nFPzS)71uJ1@q)lJNcKRfHab6!n04PxUT|Ky@7LyP zu^4ma^fYN;{ zta-mOY+4?PG(Wr_Uhrh2+u&n@Ol&wjGoZiLo7g&GLN~Yq`iO;>-8rS9=0CwgYP}%7 z)2)^&A8LV53kyykDAql3_A=yTvcKhzVUZAC&T@LDUuV z(0pkf!dVhrE$+}lDZ-N-KeN-~;HUZXHzB1iwNh!ad@*&^)#gEDJK(d)pHQ}S_9D>) z@q$1S0FIvGCwRX@o|-odcA-)^V4%(qgE0$Ip;F8({M%P){nCJoBKa)sD3j{G8yFE9 z(*YN;<(aNV-(k$b(vK-4l#*eZi-(hdIrG$78|M4wZ6=AGxOk8ds9v6^Jr5p@v)QD6A@6t3bpj2^I=lDaT6*Ykk$Xb$8@6tuyih@Wp80w)n+>zQ(;%g00OV?6IT zVdx^fuPmwHp$t1PG>Vo{Xg5N5Dwn-96eK?S5lv@T(aL0TZzYC5UFi z_ws3*tk>@d0yzA|uZEE>+^w!OLD7%MU62>b)t1g4G!~AA^NbWs*RQ8d_DENL{~B0oT{Y^bK*M zbD<1!4G#(Gn7L?}c=qmezKcn1{c3i;z6?PH$dF!nqI@tyOWkE=Oqs5o(_4I^=nqde z!d0~i6be6mzcwN?FiOagO-@eK9dhXucw?Nr(1icMcfY+kq@u_nh(#2Qbi zRNV7#Zq6(5f#5J-{oJ~hqLngjfIX1b3?pF_^Cswc3;E(5)*A|KsWt%`YUR%PZiYiP zFIt*yeq^uMJ6hxC2Ox2p547f6dhNLD6CHd{Qu+{V&$mUVIoz@MWAhi(dY#pQ)} zgZgMZVxCxpw9MZf6rip)rmrtvw))!W=fMviZ_HLuXqQ1}OQc;c%>2E-v@TvK6s~L= ze1bO}0;)3X1F2kx&{;~+I*$I*rO(E71H!1QjY;a+kfFXbu(UyfAG6>|@I4=5ay!q9 z4pw&CzU>`qWMgSgoU*Y=0v&1#M!6T!Hafe$NKmCQ^IB|){gl#)DnA?hx<|3Ns9K{$B+>`23QD%Hj|n@L4g zX~GNrBJ8-nG@zNg%Z3!ZBe{k4X>&R=)pnONf-v66E^aIh1^^-wHSaJJjKC)O`eG^T zFjvff5<9^rrP8#AfgflRn9mc z`dyVmqi+xD&NC-lqLTC3wMUAYYiF-ZEk(CT+K;iX#~}|5J`+qI!UHl_M?DBuef#BDe6Rf!D4B&x3Y`tYJ*jBh|2Dt z+}+u(Jwp@*@Fya@dpOWY;%{i$kV_~_Lh=t zuARh;rs_BdYzB)RVhl{q|2i)=_MX^DF%@C(xu6CV2iSqLSR#3B_||%lR-Zz zhf=H`I4h^79NrEd5*PP|SZb)SHAw*267mVIj7T1W;An(#O78 zyxF`h8^5meR|?P|lX;l-y7TW_71c^%~p(&MZX=~}Jkij9GYj^g*1NF{`$S05W=-upXq_y(y26I2`o z-B=Sq%(RY=#sZM2bEf*7VjCV>-(p{&3{i&oLcRRhoTp>O|JXEp@gxukk<^DQt!d`nUUAgAikwOUgSWXVs;u?@`?=(Dt4GjbV5(m6!Not8GrKDf=rCX-!Bm6&w2Sd%n#5A6*U7rWYHgW^DX z`@(Z{wYyPg!jIsRIzzGD82g zCbRb%0-WyeP4lvAvg2|yMoK2-(7BKZKH6vXU^1ObPhthZ)BF$EfpDI5QgnnPfLR9pqvREzWd7Bimc*IYAv<5(8!^x|Fs;Td#HOB}U}GAk^|3dP5EV%-T;42K z_R@DsY#@vo_>A1=Pf?KxZga|GnCuP(kmBjy#5ES+cWrON52#QQzp#cvgP|-v0RM(k zKucN_T13I!svKU|rNl?pwGaIQo4Ta((#6L=2g>@w<5ywem;Kq+L?-2nyS6iv-F#Mf zqbTZ*sNtd9F+-2z?DFEs>0o}*b<6_W3b$qj8FU=&iS&? zaCP6sd7W+noOpk4kPy+SSw^{!qLWhIzcM$);<&%CN@TDW?#;Z4&^Ja$#o$iYcx8wKP!UhX9yRoE>wqceC0> z|LPg^^thm8F~LI3be`=oB(no^;EaNvXy)N!ETl*&bKVN`x(2&rd_lqk9l>oh2w{FO z#bgZu{@!0*Gs?C``NDoJ#()8~jJ)CUGVydGhfD{@@VcJ2nM6;@i%WZ>&E(Q^e`^k? z4U8roGT5NUQc(Ay=*xJg?>BTDhtk?chCU&h#10cprwy@TQk|7e0DCAa zWl(f!YeFjVOy1ucs%El|j2iVf_6DYfJfBDt)j~N$~eGb|( zS{p(_AMM`h-gI%tx(N6EcJz6DTM$Rq=U`MM3CJVEB0{fB2joZwMInIT_7!dm8@D7f znUFeP+)_**;}aOC_!rRpMq+bT4y*YaVwX$1f+*|8uYlS3{G)JQRucoBS!(uoLkJJ2%TT~7^~_(k%tRgr0MK_ibRSo z`f7&>n5e-FP#`_#(T+G&TqR7`jE{@}C|+Dvfmhm6?;k8=?SL+d97@_@bTrcxdK@w7 z)UOQWPd!|saMo*G+8P2`)9(tMf+J4W7}+E@urO>AH=^MT)@@YM^s6JYaBJ|lZL$&X zCR__e)&-6%!FLRrHIN0xr1k8vG2i!M{@o|E{A z42g10zEgU6J10i6Jv;8D1@`I^MiCW+SSF-Am#DK&FDNaMgvzUzxBjBWQA|3vAyl)U zK_PJ-$Mcavj}b3YLx=7l^QCZa_HGf1f}z5X)KR=cKVEgQd~@b`=RPZ&>1=P{FN`BE z5|PLb>#$|R^<@aA@q_p=%8Po?+rH1i#t41>QIsJ0jT5UFwA`P z)%5Cm_(9p;v{Fgkzbn0`A>I6Jh=ClxVQC@#b9h5PINKX@0x3(^&YM9kjk9@wZw#rm z$2gCsj>!$E0tx;&+Z#P5 zPUy8pO54M?xk7y-%@SwZQNU>|v5>3}7TJV`K`Zxv1TK8&!o4A+c^Ycr9_2@SI2&a2 z415`QQQ7Q_m`?BTICo3TxwbhJM|Fxn;=m4`%i)G}2jM3D4*mBVO0|A90@hNMZjK-( zYA8ynCkspvj4oC+#Z5nozT{yH=b2j}l=IBHv^Uj&o8?dpm>1=>Hs@tz*M;F54O)8MZA7@t{;P&cUiQk0N4Vg^5Se%11swZ*q40R)=s>`>`6UK@SjA^WfYE z02L}{C>5eLWjK`qq)&K__~FvW1{Vp?nna4mxB{!#-gNm@J2UoGJ2j^WMF=;8fP;&B z!|%I>Fw=9xqr?nc0+#0{{UAE1A_ArHO0H(K2Ld(&u&cNl^qB&5}C*=;Z)0+_SCk?q|nB`)oa+JpN~h4V(HyOiO?)KC*RbaXy4pUl=C%rqu9 zuoTC_y-7MCgD7sBM#nji5sUL;jq^m$Dw>Ja+u7cDrwr1sJ~s;ED&$AZ8j^1kIFF*b zI7zf-4p@Gevpf)1I-$b7;mnMqkKcqAkh~W!mQ*}L9vW7xJ^RB3<@_uL09`+epA|%_ z9e%!;1uSu{`EkS)FVF@}Z=Y&2@WoM{M<%61*0`-%fYB_VO)WO%4J>*v5ucTR=Z}rS z$c%rPQ-4ul#Rqe%hD*k;nVkr)E0O1kX ziL0kYNH1gyQj9o61g$5e*DkG!JC7t-LUP@f+@Zs-Skxik4AM)*3AXFw^qravCQbdW z?M+;xYIF=>a{@zm6TH9;9vT}<4n$WHFyW0<|HWym1gmhHr1}Z$S3SL&btM~FljhvV zayz$Hh|A5@^Ckwo7#H{VhUW>NE1djJ&l3kAuhZrUip(6(iX)aWe%an|cyr=HL>GQx zT<=ga<_$mhWe&>;O>TZU?ZQK2Bfq({H@U%KAour1TvG0B@UT?B$QSg?lZ+{n%$-_! z^m{3>L^EQ-Zos?oKvzm~Y=D%hiaiMjZ+?cG=S?`^_u5nQYEAsx|K|G6V3NH|$uyUz zl3R*xiMI*_7()?i7%`5e<6fIG@6SAjeeNc2>#O0TOG^Y%C%zwF|8!^6eG)t`?oFK7 z?r#l5Z)GxOTpfvl$Suuyo6t5fbMfz4AM6jxwq`)~Vj2k)%GD%OKmfK>Kimm%CdkT> zubplUw*7Qb*%28T9P|F(;8jD7jH|hO$G6!oi5N~80IN{Gbw=5xhYjwCz90_z2gfC# zt6wFMQ_a*jTSH6zINzHnGp~-OdS=hRWlUb*8*VBxSQs@gLI&dY?F~o^uAo=tbI1f~ z7VeG6n}%^XI8?(Oz(&)MU24gO#gw5{%%>Xpcxv_I#S1)Xt2G#Y=0~QQ1`CS6aJ66* zl6&aFbqgJdKZaf@pZFoC7`fWjhw`LX!$(??tf@v03^wh^wwzz!ab>ycgL33zSvqlhwB9bO$NF(~6qPLqC0*tb~c@O}_s8w;Jz1$*(bpVG^ z5vFxB@FF{h{HDlWE}l2eV$r_$_l7Upf;j|QX(8NTtyeFgWQW1kTLFe!TUy*0BuKk) zMX9;P(JGM>lZ>d3&dm*-)5|%%BnigTZ_kcD-5ZtzZ?;{9W@?3VZ>*bHxqxzMJ5Xa( z@>0QZtxddDZ5|S&Ynde{aU8 z!5UBaH=4xwP_8OkcWe`yZxpSY}+!st8#dib7{KZHMqR0%32 zme))j4|3{bU`TPcH=GJZUtOEpRmwk{`9BDE*5wfDIEkIfC}^1;J@Fp~@ioOnbT5*$ zR(6T(?h-{7MjPXN=13d#pcB-7Zo*5`OZas4mLh!l?F{t#-aJ*V=zIW`25rL7&i5Pj zs>z5>$OVkXShzQj*+7Tc4-F9N|LjzTwCWi6u^GP0nbMG-?9FQ^#YM4H4YD;pmdO#A zNr04^PtrBi$%&w-pYd%rZa1Z8u&$n=hXe|_*P4%kd;Z|kPBbL>eK(6#It8>uUPtwN zZCm&%yws?NdpP#S<1|U#QGrt#P#n6u-7Kw&M_ff|`~46PICNnYr*qwN26wx<>B)o? zP=>k35&Gc0h)M?s_DxCjpU)_Mn#JxiY6Dolzb|qi6)y=% zdWlSmuL>#>?dOLasG0g9IgJ!|)}S}sqfX@QmvyKKj&CJLt&Xg6}pC#Z;splTTNoYUN_UQS}g zM}~v5yR>i-Wu+aH<`+H6p4nVqD_8)arikwQH7fxY)8go(wvNuf3c_hc;hv!|v14hJ z!4$bs&_Si@N#RI;2B!p_Gab%=&5XC#UQJ!h7T4bX^vvj&`;G4$@JkhSfW=QOIL6sY z;kfys%`-nPb6?zbSFu5)6t2Kc=BS9IG%8-yTh>tZF=0~gvP(T`cH`Zf%s7sEVim>~ z6U|F}*9owxZi{J{(pgdG08lDFqq7Z5f)8FzK0>?$oFLlqTZ8A!w|neSSlz6=$svtB zl?))}j7f_7tJB$(C^ahKBegPGFG{yCch3$b+bfU>l`Q256h=6J6z0Yyf|rN!Fs5tm zZvU}EM8TMLM@{XcE@#mc9uzH(8d?h(UViawHw}^DC{0&{*NM5`lYt3KH4)`8sa5Ch zK#3?&g1a4VApEHuxnc-fxND;uti-w`{bWK&Y8$ex#P=af@jE+}NVT=k&erm{g{Hgs zkEWxNTvS2k3`td;>6m#CXhGUgM%8>{H>}_#TyG1P)w)etcB?Dv;fP@FFB!)jj$Xwm z6W8H-bb_c+h0956`7hoW976d_P{}u+W%J{vGiK>p zJ4BPgp5C|BkNt(N=f~3flMSXfsE-DkdsL!SWfIC$z06F(2#q?x@$m}O@U`9h$&QbY zPZ!{tDfjY%3*h(E?|t3#sOdL}{O#TQz4N^WmOGPs1^B%AMtpj?ZT$Y~eT@EbpEdJw zys@^5{B&^H3F#I^EDyzz7=nxe&MEuL**cW9us-K`ptfgYhw-UWqUXy_({<~h&M*Zm zX*@_B?jsdmgT{f8QLDI*y4E!1LL(Hi5@WR%tEzyg_gq@LPBw7Mv!50cYZeHn(_mMr z7|QFHG$x;9uQ0|0fHX$KyY_S9SAn7 z0>P*g;Pc5(fGuqc7{C?=C1A^X2T-%?1Yiq63Y-Sb%^)>UvxFib$dsR`UekH^pCpF{ zP*SoQ2&NbU2eJnPj&W)W6j%BNYM56-t5qzl`=6Rr!ocQ^Vc=*O0sqNl0w;Sz1{_j& z-JoH@b;5R>cBT9uuq8qb*gJk3sGzVs1F*S61=xJ<2<+X^3+x>N3zQjq0Lq}802LtC z{BMXZO`wdd3sB~v2q;5636yd80hHN|1DZtG7HHFeHlPVWQ_6vwswe>klbeBpryD@Q zI$xkFyHi+I1I(-C{5LCh6;I6#1}-Ibk;@6h1vdTN?t9faV3QFEhj(Eu^W*k4U!l zSc*#v$Q-eGZ>L_@b@K8FR+(x+|T^%;l9|hV8*Nvt#@FM@e$apg6!@t!~0A zyIr+mVp_mWGk{POxT`G5z0A^S`Gzy(Q5jObjG-H8;J}y35mALuDsd!9jtaaZv5=ak zcHmufRicZC+LKvneKRIKGQ3?Bekf?HFO$ya-7B2%S22x-ujk0I%yszHik*%~l01V! z==(5g185CIaTAIl9Jj{Y1<^}XDCcu)==H>>`Wtr8{FJ3ZS)7;rJN90Ssv$nJH~YSN z3IE1AKS7jMf-(i`u47w`fB-Er^nCYlx3Ww{a3H?m;zh2%c z(nJYAO1L^o=WDH8z7`ujDiID^YPgR0Xg9~Iu?9SAc?Bnt!^PfAsMPzbxN?-Lr7pGi zyjgZl$kS%UTm2&ln_|YpT5OJ`>y#T0-z&KqYy5yb4U5m z*uzyNrK9}ya9ovf={eG;Y5n(D=_V^vUBpYIT8m2;NBn1cpqL^3ISD!OwFa>Sbo)48^98s0hjQhVv%MI)-AXMOQTgv^ATXFCKLQNRhSTG^wbsCYv4s34LdI|7uz7 z$seIeS7lOJZ4i?uIUdWs*Jm~F^L7j*;`q_=>3aFN5p+#}Ki|+8AbI6h5B1dCT=7X7 zSA%)#1+pL)lC79p)^B?b;a}OrRv_1&OGMpQ1-Tx{jj}6QAE=5pMK(iZRkC<$!Z)Ln z!V1$T>w+*9tvn1w7x*n}dE{N!k~TnNt~pNPOy&V3De{iS9VSmy?!6W09+*~BPgAwH zrp;62vd{*z;4b|Gs!>v&@Tdv;nccXd=IBZXU#JO;mmu{I#d<2nSAXqcvC*j&qvf2B zE5VpuowN8Tl&!>8gppQ2DbmPMKN|WL%EIb}8pPjn6G#$v#+br+hXQsEvpzj;>OpWk z_W6*lv|taeVk-Fz6hb@aF@|XNALjKd9k|c4t3dBO6QancbqA`Ess3?v6h#H^!ZmB@7 zyr;ONTl2ip!WLTV`&1utF-wR+W@lN&;`LYcQ-Snhm7K)*hq>)LmjNPRL2eW!Wmqt> zq3K&Cl#yuj4N1Rca71HQf_N}p8qkAtjuZJBW)5B)7}_gD+r^ZXOIkva9F2kX(oL)) zmVRJHQLc~W)_}=-d(u{jY>YBhgWgA-IKdr8G&r$Btz7A-CR|f=T7Jn^go6*-u1EnD zARgGB=+t(9bg9mrw6;b#gp7w(qm48XKt>$Rm27;+5?jv$vSncAreA+C7go-k4;T2F z{z^%PM_KsGtGvI(P9t&1m#Ylwl6u%DPi#G3@__hE^TC~C+jo@TI(9|rz>c<}NJj1~ zK{aXyT5T}-8- z%dHO#43S-EYvM3sKKwpiP90azGaZs!1^mEoPpO}Zbstyi{8IX&02!%Hlc1swB^%i? zam8f>>XA-3cQdw%hy5tCu=s=ln=}XmW>l7hY)TJ<&}+z4x?GYRLP`LJ*fd_SplunF zebg&xQ_ZdRqVZ>$l)ct-Fc!b%7N=Nh^LM<>ia8mszF z{n3V}KW4$Ra7P|XhX7yL9`>|D4tQrP9{Xat23;t=7}5QNN8@>v=!vV*#7A~GLuB!v zQ2W}T#nBku*KR}oir+Hyi)pE%&2rYO4`p-O4h3E!4P3})h+9@}%|`IXfPXUm3jy1j=?SZW-k(VHbanR8#lMO$Dz8Q0l@t&g{crG(1MH4EoaKM_{unzpJ^}(GOC+$Kl zY>z_)aee6e#MV3O0)A11=8V#lZCP`?V*tX)&>97hYJgZdLo99BPR;V z1Ya-ugERbw?FHpvKCTz!Ljo(odDb+Vo&_5am5B|~m5?b6!nyz;hYNy;>w|~SIdPm0 z8fm@nlSwu!-b%2hWStS!r(D-I@KlbBg1M3LbFD}at>0b{a;KBOh~0J4b-lki++g^~ zQQGY;_fx#>4_O9? zJVr}|f70lyE3LJ$zL-TIB6t9c%V^v08PFcQcmj31609TaUAG#g*g$AXM0SIl5&_y?29}W3q*MtF}BmmXFNrx0*}7B34V10`W6y1 zP`L!t<2lHy$j;sO*O~BJ{5RM&1;`-0O zEwOtXIuTp_t8QX&Wv-YQJHyJ_xltOSy;Tg=EM<6-|?P7(TJb?GIy3M*#VrzjkKo-jeS|#2L zn#xkL-B}hv$8SQ;*MzaF35W%q37lV1>OMjO(WPc82mGrA1C!{wL8*L>@hWKJ9wTCA zGGNV!JnbH!b&A1J@QjGGjZ{YG4LUOu2u<=>Wbveb)(q?r{NOKiBj1xwboqk*NBx|? zB!I$K47U?)^!HdASjuU1_9-QIm1WQx>5^iKC|Pf&%$ocvCdQI(48&u$E(iv?T=)9J}!wso}z>P@&-q*}~e*qGIASt%z zhGhDznE-iRH*jiYyutY%`-hJ4CW#m_r9`rEAOiuv@fnW!W3=sIjjx6s9{Y&qkIiqq02?tuhaZlKnL@!*Cq`W3W=apE)=-uEI=n$*vGx^Fa zc}Iz~=c3o*K>r9TjFzegT_-9UxSbm)FyoA?B`!oF#WYw4hk);}U9pjdKkg1p12bzV zIZxfeElaRr%mDjdiPnVq5fLO)s&VLbsJx4pI1vmP^l<1-q|v9>2iY4PNBuG|@|lo- zAIX3kG9$O&1?Gr+&@dt>ym;X}ZWI}1g-!dL!Yl# z&^&NLq@>g}9kK(ZTVfy%&y)Ta?O~MaO!OMK79iL?sM6zZ!hfrp_*5h#%xw z4M(5}c4ja(2K-n`wKJdMEa0?RwHTWrHA5{~PtS6Ns&!innYOb0NNgsNd zQY0XH9-VKiGBOW_3v$?1y@|hCgw-kY75=p2YCs7SzRcDya5CDsG^VW=4mo?ay8D(< z3ImyCOK^tG-rf5;BA8CiBhisqO|}E;KqlY^1X-jXr73Uy5@Ks@*FB(i-){whhEA^^ z$3bS%52i#aO0qc>yClBc;cmfNFlMLgseai|0$j1AO@bU1z44{S#Sggl2#)#-@W$vd z=0ufS_B=qPsL|UX&VePWDB6 z1lc7S9-H5Vu*h*QrW?ZEmQ1daI5>0B-Xuo5ttsPjHT(eW^2(<=u^qCOKTaVF1jcpT zL|k2z_TkZ<58SVw-l)u83r^8r*r-AX{oANiO2t+dx-QpgcI~te>_=sDFfx1n&Z( z`*3vs_Rhhtc+l~6x1D+YvY1o%%I1dZ)n-b$GfbC1)-=Mjz{;0Cez)0FFo+~4`E{R< zh4S0g1jN}N(|pE<`so3kR*S0lKq#hI&sTnP3cNV#_>;$b_)3*4ge~2WWk%yJp0Z0Y zGo6;e1B0k6l!vte4;4F{(-bBm23$L~TxlZ=PSFY6EKMPDwOm;b8M*opu z;`F`JG6CYW5dLR=ALB2zt|!#!1LsOJhkqk*7OeNV)p|!KH-AHP3wE?+Ieu3n#lqJD zs&2?_=u0wAaV{ijN|I*B#j{U$MUJ3p@q2+e54XV>1vjeCZIXT;f-&J)MF?<;-`COmMWdeuy%m}B*9lGhO9W&D@@9rydw^Dx0{q~hh0)JR!B zNkRrO--0`moy3o`z)ujmUB#aejNa9k7w?t3!VWOXx?q@1vheYjX8=U~ zohrk~j6LKGCETF_?4Vd7lhtoa@)ONddX&!i1-(}>W~~a^Bspeq`EdyNkv^}Mfo`F8 zl^l!~BlpwZTxP9L!CX3bHiJ0qdEj9mc<`y%C}_TJDJAcpcxLr^=H2w{QfE^=4RA{m z|6~dY9H_~O^h1{yMt;Qe@#mb(AEan%NmNcuQ!mzISEQMujvOKE%jnAEgsdKk1( z73O;-wlZ+eP8x4!{#wGj^wwNwbZr51>#yk_6VMf>C_tCO5A7&;v;1Dl4m066Hoo*? zXRw!M%#;y1k^muK@iaKnt;h$B#r*mA#Y})-CxWmR0g?lqqoX{LHv>1H_!PyT~5A^%a;+_6Hqd!iBBFgxZV#4H~Dc z>6B)AEy*ztv7Z)&vK~T~MzwV&_~`;M5QBv{mGZVCQp9m1zm`Cu4ma->KJUbQW&l{P zd$~tHd|$T0fB3$?a$Wn}uBE-77|iVW+yeiz@)i8rzyGo9tH3bdj(0Qiyz2_amu@Ja zNoKY%iRv%I$NbPM>-JXoiN3G27F?CxO~-qbpiZ800tYvM*#vMA5LV--<0CZ@Z|{#{oSD<=w00~w>CQtK>VyszPv8$oS`5sTjWCxgGG@KnpCv~ zE_zJ;{XWM!rip2cLmMOf5l{DlAq|?ldWK(Cn&B^KEf|=b%wrB5Lz)$_2ePx`eSRV% z*g@WHGI%V;6U*x@6TeK`TVnWI2%p*|TNdA$pJZF+9Ud`J$%@(aN|_1u&}KQ1`K74% zBaYKy8&oEz(V=5&Af9{iNb^~rz&01Dvg{ZNE}gadOUTZ!AT)tOB!*M*AI5k`Fmg-4 zO?02RanA?u`}Z=`I;HdE_Z*a<$6|+T(h{Y zP&8O#ZpKUnA*9eOYv8!wk`8a0Zbt^g;J9%45u}T?S!cAal`jzcx#j4GQ1<%{0H3sN$<6&7LYG;PKD_x}UTY4ELzj zW9HT@Y8!o^JdabYUUjIVqfXNS~r-7B%Zxc5+TumpD$h{f}E+^J9ax6n|H6RBi6Aa_~qz z{Zc2(DbTWUg$T<1A%^C6CclCOL{p-VBBSU8936Bjn#o|xCiG~EImpUSE_3?-o1ofh zJ4n(Veo`0Aq{nJGJ@W_zG-0|TL?$pgvH`>*yZp+TvI`m`Bjk@yPd4^2Xlc;H`qdRXHYFelpB960o0+ITK&JpN@CWOvAB!* zxW1gz#xU-VaS()f;v!O%?ayn{!8}PHsQ>(~w96||K86RU2(jVPNR2gs78Du@MX*1d zGic2JnyC4xtYt>EBgZ`N>mQxdQ$}bccEVFZr9reP__D@d&CHAPD^IV(Y z9_`~ZhW*iN2>!iAg>q>-@rjpT(h#9_mC@Jp`$>`!Vx=OjW*sWgk;t6+=HD20yjCp8 zxbZK;g(UKMickFFng6W%2rI6RSq3#m#iFD=^x_qT96Sq;lsMMFp955N3$HBvao``q zYDO@M_KH%jv^lmU75#^hJG^Su_=0IfC5>C8lCLGwK4@Nw-0X-Xf{q>kONMlTPc9;Va_i}6C&c~@(nmk|;FBOKL+O_5keWlUm6)7_nq zO-valpcW>(#X2(reILvLJliT7oqW@upDD<4AZI-p9ck!!N~h6(S^wfQ5~Ij&WFsa1 zO^qRt76*>DZhtz=Lxb00rXK6aa6UfJH5O6GNnf_X=@ct$Z5W;0X3^LBtgsg@+!`Kq z%1EScw?O3@jU)@A1v#Aqy?Y#lQa0O2k44S0o_`ATyOVb|46kNh+>1YDcxhr*@Dz9b zE=b$sWB^}Xj+jvT!El>~*~o7V2InF*NRNp4lG=^U`Q>_AnAv|c?|A+Lq#~HFvIhZ{ z#~&v3u;ikiNHD%5lL}BpRi3AFNRBO{z9f(8b`Po~^hB(NyfqNO9I?De3pE)r`%!>j zL;t{dk1g{JTa=hjg%_XL681#)_}a=9Sct?Khg;GF&fqnROPnXEOso(hrbXxu?$r5H!pADaW4Tb)>8N4I=9>?`2>{T zx?s?cKXN>N@gQ``WcwAADGB6N!{&I+Qv!x`d;4dXCg;DV={NAmI5b4@$iXC6BaMeQ&?8YUe0h#$7zbnAJ2cy0wf3R z6C%$HZB0exfDVT%LKC?f+b@L6O^>lwH`CXo3ni#%dRV%!+oKa=D>xYnHeQh1Vu?VL z0^ozIf7p@!UMypJPTHYIwW`iAuRs`0))^kyo|_5)N&R6#bQYI2o56i1PY1GN~icS^lEO% zDh*p+!2^rbBJVwOMy>eKD-Hs_+;d_TK?j%>W%>7Bl=PQ&U_RiUz6iiE8_7(+H=+Wl zg1wT>O(W$4&smgDAYnnET#*+&UP3eaw0jr%z%+4xXis{iT145F-&)^ocb@LYHutA)5 z?;y1oWHEd!+hz#;<@=?gMYZ3RvN;0QCF;&$P+$SKh8?q)?V-pDd1kwY1>1kGDXBl{ z;oKN7WOb*|>|+Ha&Vg$?TUgJ+TBHOj1NG`lEMME<_}kO=Nk22COK?7VmWEd zWuK1L1g;#7|2go$6C-t{FP+Q!M|7c_g(pg1G*2?=MpY+pepD#6SX?~j3nfq*hAqtH zVebf*R>pV^cH~&Vps)nviBWJ#c1Ggae6Or85rH8?4hW^t&yh@6LWB8RKlx{;dn>@u zyQ%#}(o(SH5UY@^WTlxbFgzzv2R5wfcQGX!tL~~AqslOzT&7&Tjvg?U+NgJ^#shTW z<-wj&a6+Kt7Y-gkT;$f8O38dJ!88~BuCT4}jmdT~W`-lek78{hdeCw!R*-+eFsORD zyMow{%xK~s+>k+xwwp)L?nqv>lhch-DlH6ej@d5%Qe_LgK|)5|N`IO^o3ZklXQhuh zU4cDR-NGL@95#W}4~Q<&BD?o_6j+C~^8dDg?E>JqMYcw0sFdMbSv133a+5}hR`6qp zTu`9APe)@nkzthxWKt9VlxJTA>)4S60Z-pR_qd@5IvWU2ctC%(@*DYgkR19CgZZ=T zP5}>|j8>W$20=N#O~~4U=k5;y`L8WHL|BVs><37D#oc^52Ups;nc@v>XuNpRV%%IT z2-&^U=ESAi6(vaI!|534VS9Q82!;$c`Jj?rs(#_ak=Gwt@V)8V0^fCA?~DfE4Jgd~ zY;8Bzz)z=1@kz!PY7Ug{ABFq)zT&!ne!eU{93M3($g?#x&cO@s?OTMAh;-eGish1- z%#dyg*~hf^d~Uh}c6z6wzgyxtzwdlk4Zdzqlyiv14uqGKv@{t*HTb*#jg8Uma89&J@~N*dps1v5Cl&$g>JlzQ^` zjk>5ZmWvlSa!f@R?eaRM?9|S}HF7uEsTWAB&pUp*zJz7cP^v?%Rj=309I1nT2Y&S$ zgJMa#w6|y8CdT^0bcG7ys; ze9*gKcP+hWTA>|Q<)V2Z3Ng%jbmTDAgOV0C%_S(hsah``Ibu6=h0{K5WPqlfxzpN6 z^m!hx#djG+nt%tC0N3se@hP}@8A1NT9tj=5RYSGc>7&BQ@t|yxCtVFf&goN`_wAZ) za3t)N2e-*Uv-qYZu??>3G*bzh;&nvf$BT$06To-hvt1o_6vNLZ;EZy!4(kfT zYEAEAfAUV$Hva=iMQY@^5|3cNB4B_=Jb}sQ<5shJ*3LIXx`s(wL&fxRaagX( z`y#KwOjv!Yq#L>DBgSujSTWLwR=J1kagSQl=QJm-2-#R%i6XU2vWcGUB$IXEDHMd; zUlbecxmP8Vch;~#X+Y+wDPs0eVvt8^)c4XOF zl-Iz)=XG0j;0B{5Qt++;VUXOta*McuUZI~uYlewu^MAj|lwU+?Awk@4FMF&w-*h%> z=rDGWG81Y5Cv|%YsVo>oc7!krmsCPA>jpo)L=>5YN=$9b=G!!qj*+g+zz3IPgx+|P znlunerT{y~ zp+nA$EabKiH*iSS*};g5>k*?%Bn!^&=xSHjynt~oKkljmuwhjrj)Uwv`v@mA@;a3s zLR}sa0^Oz#U=(8Ygd2FMF)~VNb0R79sUY($MbbH`n*M`;<&$+{t&C^W$-(v`D@gHX zq<63)`6ZGxt9~cXrmhf7^dFbRC^(6D*))F8)s#(kpjz9&YgFr1uaF1G8OlWs&1G96 zxJvc|ITf+D8HxetJ|avZ-*0X7k@pF=8pc9K?137F{y4$Ws#3}wmAY!+X(r68<;76m z(2kS-0x(w0m^!ebg6ES({*U0mKgjRcr6LO&AF?S6Y;Rao{KBHwG6$jZIG>G?VLB0oEi_0TZUf#;_sy4W>2OlhBB_~cefShAWGQ~QHydt6+HeBeDm!xbbB8R ze&=Tq(DNe%x_#^=j`)J=!~9Sr)unK@*40`s6NMF-zY-9q(rk?DMk3uc(| z;?L=m(Tw=6QviffL}p!@{%=!)j5pR!ahc5 z)aT#}bAW5x)NcG$wRT#p&hTG}n5_;PB!ZYVj79X{Rdth&PJi`^O@b07=4&BP`tDNK zHUYQ>e4?TF*>s$q_Bfha38D=RZ63x^sjD;u+p0js!yh_kbqow2Q%sezi30Slvto$Y4!=x;p)~Ox?oP`FQ>oL*^3}CsveNnCI^Wyj-1Q&N%fmUZg9E37=*%Crx&D4m z)mvZ3l2+G6cWaRzm!`nWfH#_jUbmx}a&PXqdc6{v{NC~v|82hBjZ@{c%}pE}B~kq} zsQZe<*7sJ0yS))}@2&FvL^f#det5jnHE40UZ)N%}__|8t!|h(JQdjKqtZbPvur)~8 z;OglbguV&+xbl8|^?N@C^nO0w0v-=q?fpMOVps%87SUzxe1@Nvp1H1zu3NGU1U^sz z=ZA;oOy@~V{-3WW7Ga7b-tw=@EABadrxzPsxgT#A_>bcl&9+lxQ<(&us%kr;H1^Tz zZun9E^uwKXPnM_Y1-^{m8@8&hjs-`AJk?(N;eS7kN&q!|XX1Lf4FKt!(;J34&|Jzcd#FEG&wWv#7Q0DLFbR zYA-Y-+-TM=gI&MpT;dsD&0m0wk(4?GsJCgx%`bA?Hb?#NXU|Ugt6@@!K?ITHvmSJ6 z?_48k<9oI?(aWYcjXcYC&}KVeNBc+iv#3c?_I6HH@z+a3ub=nlr;P7$sLf3Frj@}K zPx;wTuMgy%k5MMC-LH4Q?|)1qy*$e^zP=|(x~)K8f9Z7IPi|3lZQ@ zTi;jC+m~!`*=KLR6ns7f%6L~SCh73gd_4qyp4og`pVl~gOMdO)`+asdvhn%7w~Bdx z>AnvkDdt42d{^%g`s1j}QqtkC;!1rq+<;IzFBrZVvxqi0++!U*i zuecEFSGd%AUs}EC`4RoB?|qwr%cdycczyj{irtp+LQLfO^=Y#L4tU=-xP!*`_w0-l z%I&fKvHAA#^X=uM`r8kIsK=fR`tM>x`61rV$#RCWnpPq;8sMdgMX!VR-|oi-ZLar} zLL;#NkD?L4%?01t$dudrK=k8!vLiRAP4Slejh);Sc@88+^91Wrm7j0@{qtMeN@f82 z+h(Q>zsXd{l+_%U-LEzIt3-p{D78NUE+dm@MND0v%eugw5^w9!wb_0ipVh4fJ~E!u z^Th{rUBf%iUF}4H%V!Ndxm)I*-u351dY^^nqwQl;4(hF(G)iZ5i*V)}GV`0DexmYG9Np*6LZyl<3N5U7-^kSQKmNN_v@Hm&u;I z1-Gd~KY59kKp{MhH`PcmDtO5mJ|W83%$G&f87~89*77P+Y?!=Jxe`pbqb4Ki=N#)7 z^HiJC!mN(&qEhSHTojV4UVAtDlM4bgiqNYc+oG&AXddK=t{N7#j%yAxFm>yjt#o6Z zt&a<`SsH(rHy!KOKf#rS6D_J_+s8UZxOWxYX7h@Xm0PxtT-qcJd}?^S*5=)TwU-R2 zRuHauOqy3_=pXIUSrX}}zi2|=*Xh$hrz97A$388M!?*V2WxlBw$kl;&{0x`& z-9ULq8^hm|*+v^?U+7Fz8Lx3|XLpeS?<~XRP8!8^&Ub=V>Tyq4ca^5KeAeCkG?;tb z>eOeMc)!)v07-6NYAt(kfRpH84gMFC!QrBq(#cq^@<;G_-~!J#G;{jXlh=W>dYabt(5==(Rr(Qo0!Y}etLN^$Vwd#0tEC;iU!q(1{sJ5%&V z-Yl`M-iz^ZKTTriA7I?&P3$mw-hOIG?D^59{O!_Zl+W&Vf~8M3%f&SdwmX3l-jlDQ1idu5BwD!X-+_F3#ZXJiIn!a=@E z|2tYk)mkygu$TgO>YC}vAkejhT?#|ahVpQVZb~4>5s^mqqj=0f?zTQ*WXH|*brN#IG|1UT!M_6cv4$ZaF z(*biai9-pKX^uu3!0HrT3W1lAG>SN=I}w)F%0}b?TpVRgxxBugJg&=!o?j?(H?0S9#Q+n?aiLTNu^O5ql9n?JFZ_%7iR4l*mE za5quJ!b;p|DLK~6c#IIW@kMz$tOvg>Cg}scNjOu_bIhtS1CWt^TbX)`oO$%_wn-@< zhCf-3^cJ9^dm-|%MMQBncIR*Dkqne8UhQ*jUy{^0?+mS`ZFh+Y zxx#se=wUNw#5TaJ3D9k+mX$Jc6Y`O|>f!n$>WqOuwiNl*9h1eSfdMC*5Mc?n1EkTH z997(FnH=5zMO9||rN4-hY=Ob>C@^@4C);iM^p9zo{&MoEELRju#FE-WugbPX7r1S+ z+-Oaf3h<&EJKW>nn5uGvzwjk!HfL973iD)Wccqj!wa_fTq~#6&(|sYjK6#bwufW?R zMQM_qJUC2`O+nx0Y%V>^^KG`<_y8gQCpJr1--kJyG)2LAt2G;_Rdpe<`Ri#NuVh=H3jXwLK= zZx-Q-LC*&UpbZ*JdbvTbVlpHwQ#$;9G7I^>cP|LwwT5#B%I-SMzid_&z(8>&f#-uy zD&~tiHxEC(f2{fsFBjuQW3~N^Jc-LO_B8qz5>9=V=8FrO@}y2>wjBtJx`_8zD_HSD0%Y!fa2A+)^butudlN)@t5~ zkGffDB!AxyrSvu^EKqJ$+htC5p@!>UFsvhCtn}!*E3Sk1lW~*-ebhFgD)ep=JNrW!#^y)_11?GLMuNkKQCH0XL z-(RIqhVumH$r1YnMmYfMwudJ(9KVVz9ti+I28?)uJ$^xl|~RsvRrS_#yqbH!vm^? zBwK9sjttQFC9c1~5JI-I-4Tuy1O8iMi}2exC~kevhKja09crC!FZ>6Thq=lAWbNvP zmKGPG$UQ2LYa-2{J}{NQQO z1TuTH+Q<&ke5`^>fHh^-|B~~Hcas(J@FJV#9&WCY$DC8Y=ymbQOk1e4i*Vy#-u0%a za@KL2*xtou;qIscJAGCtt+E?ruuiBHSo!~+GXdEx)x3&&RXk#8$=GdI?cmmSmDi)q zssQteR>g#~;qQETD@zGkc_WDRFG|!>D(A&RT!T1&F|ZbWFFebGdT zu?zx>kxAYXkLqu}5~)LO&~{MGJ$R3{!o%I3i#jHBwPzT=3omz3P{&48XFTR zX+?S(Y?*c3Ng+k|buw@ z3A!OR^AD8;!xXW>>yxn3i;2P< zjW7I-L&-rC4_(Ji)g5BL-Ssf?l=dXv+nHs;`x%~N1y2I6uKbzN2Q1uqOJK+@1J3fN zpCd$#7j8shCnKEWbqoKLWHcG;r(wy<4sFF6iQX45~@Q8z(SZ2RLykL9prIV`I*cGOItxCURV*-R~*M;9mXS6?3SQ` z0E~3Kn0cWf>%ZD`_+ja~AHd7)YsLoQGbFH}DVx#_W#bUl$=fi7DG}B6&j1hX^CF)mf#>p-oY(<`?x_#>EHIZy^nZNb=KlI+9*1?APsF3<^D7XRa+eUKLL3y2m`lsQ=_f%fbEltiXGP3h zQ++7NwU{8}ZJL2j0^8zjqP7O}f0L(B`j-5(!k#|M51x6rkW6pCNJfH7Oa7jYnq9n7 zHMA^3eR8;&9!i4kwPN|;>jTmeh@epO{&%go-;ma&(ztAD1RrdftYv>b*>>c+)RJKN z#6gk8KVTA11F7hwBJ_k@6w|Ahk$ul6+`zFI#k@as*6Xjp4pmQ`ZeTIQRio%WoFf+z z`ARxM?BZZw9woLhEfW?wpbC9=SNgB8^Ga~>nh{_I)>6N`c<+Zgp+=X^S@h)G7#&~p z#Dh49^x#PFwwst-?x=45x1978yWl^+SM$<6VVYcymcz72$VyD$8NNqLw0!Ce2RfM2 zXdvosquL0O<$i1n&e8jUSq;g`WYa9B4bI zZo~c%V-!)s{H^nJ8=H+2W;cb}`7b;5JU)3}>v^BWrq%R-Uepx zi2x@yusz4Hz{?ssWo}yF@)%0oDmSaksXZpPc3GV;{HNc20Qg34L8U2b6^oF1IY-*& zM3qLB&>C#ra1s-{^ks5Q#DlPYLgpLz*T4d-;=dZ~D>md3-Jojy}67}cbGqi2&&4D3NODpN=oBN5+PmvW6J8#ijo-UJ|r5B5rLXjF%f}+ z5$X=~Skr7jW;mnMcTFGADKLdAHfs0R?9WW{rs{uv0&OR$^0uyO9~Zpcr6 zYhp3;yx+{molR)8;(`eb~qj4JBwrwYEY&&Ue+cugT+qRv& zC(rly{(nE`&g|KHt+m(8oKxiuu^xa}Ib4Ri*4Pi_#g19PzAO9B;QH%|Z6-cNUx;Mj zri!zX6u_f<_LuPPQ9}2+o*6P&_9KxGIew8E2d%qLe^$XD?FuxmM`i{FGe?@cZgYh&O)1>QgBzb#( zAU5W9{mZqbA^a~!&&f12Pp79#Nz#M`XE%9RfR7_6MLgyMAJ;O_nhQM_0H@?zNh(3G6{(=b`&H0F-k%rf+O4zzCpnL^Ai$C;;FGV zDH&z^FLvHh{6`x<3FrLWp>w#lMnAWXI57_J>aDsB6bAdc=6NDo4)hao@Cl}USODj% zhwWO1dx)!-l}?qcy?>atzZ#$uTh&gCf?%Dd&~C|Z9KYJ885H;Gvi-dLN6~8| z-&`HyXNJav&Lj0fJY`0{cUckgCyb3QyXue$Q^wBoDb-VHYOM?lk!@oi9R0YqdgV`W>91koJVjz(;DADFrtgBex(@U^^U2erPY4^;*1lioeAk2;a)P z+)Xi+cx1vYxnJzjHW!%(wM0s~p{e70xqaU*sPwJ*So?n6? zI=&_*YlH7Mm~b{IH*J&b1G$`j53g;6k-+>z=+bVcNGV4sz_{aOdVpgKJGMQ+#q*$a z%d(YGJLOTRO9sH?r2ou!1$Gnhx3W<!9K@ZZd&pkrp?qz{Qmd+$J-Xcc9S3E;H62e?rynP|hr6JZ8hg*U@tBqi(F@O-V zr{VZLOk|aH_zqAxlvCEvM?nT2e{R(4jrwqyd&!Gw*WZvdJC6P#yXvw*sX1vM4)TqS zeJ0P&IzorGS7_w8D3^96e6!x-CL=`OG~2Nm%rwV-(rRRRjlr6I;1s*TUhJjOh$)mW zBAt4bp>1@e^Oq)OW;t;s)^8WRkwwsga`@lvHe>{9_1J8>MkxWlCJpRAyf!OW=m4%`r zI!oMTqWes3Xx$A$ALz8-zSW={U2Xp@&(e()u7Fp~Jwt_Aw)517P6RH39Ft)EjsSEx zET;5Nds=sr1Se^7C8B8FleMsX<&Hbcn4dQOAYlrX3q*>ulI11@_721z!1w|U>?hBo z^Rr)`xBCQZuG{ZE?kR#8hT*;vxp1twvzh$N?F@d)|7tMW({{^Id6>wPi(W(jdW2gd z)qBgS+8|?(7#SCVCVfAev6V24bM$Pj~7YQ%OCrL z3oXoj#~yc^`uCZDq_-U3ODptx?zZ8pMLtrp+%XAc&V}q?Png`!_cPkS#2eL5yuFei z?0?)3A*1p)bF6^rPV(H%lBnG1aA7rI11yTNoE@Ja-ef>tJ+Q8<(T+^}qg^_$SMYe{ zXpr^1xJI0p&hj~IS8)bQa{exyEW{i1<06nk87qt1FW^tX@_~Xqx(;?zs8f|6CFPT+ z!8B@~1F_P*&Mw?(Z4)sx}Oz_p}LJNmvdC; zLf=PKvx-QcEleW+>&z!xZ@&<~yT~?Y2g^`Nghv?FsvP~M)HE+5V{K?6@(dLiqADtq zPGUMFG@s|@LBnoRX<|xI+bmZPa-AFV1B4`SpYE?He?mCT39^tD2R0|_`Hs3EkxCDh zvFPXgH=+xP(wIp(SP@#2oDVGP%7mpTTXiZ4(vqFmYU8d zH?%f;_FZ$hzYMEoJ;!xaiNMaP~HOwcoL&;_E?vCn*?XRjjknT8Xw;LIKw`Jr(31*PF`$bwl;=ogATy;b15|dA&keXDJNU zQ;xV{5B|T{^USS*i+GV{At$afLLCanO<%%r8I2-3jwuNCC$}CWdN)r zhLJwp<{8X{PA(8PG4?^4%ez{dkiZ>r`Z@9_t{Kkk(b_8QYLlcaRV;vdO)t~!PRt4|4u}a3VQA0M$Gk?3b=wSYMg3J5et5}Ilsgo!9 ztzq)jX&IfZp~A!3-kq+B8|{Zu`ISDQAcT zc(Hto@!(mxC^T~fj}lCsENb>aP(_|_ZW-OZu+Zd@DE(K&DoX~tun+6v>Kn!=vEF-L zy3sRx$GG2^(tuu}HIl~o#?NG|%wUy~h;pP4wl0>E)SpCl@aY1t-|^y>GN|(M&3htt zvt?1$e;YYtH^rIsnbHfZa|;QaPJYkm(rEPM>GF2fWLynJ=UdY&P08HBwxfb0&M#wh zPt5PgNUAAuxWIb@#ZoW^8mWi~nz7fNrS1STqrA~ObI9AOFd!lU43fe42mBOmg{tuB z7#sM5$cW*lhtC14L&#o#KH{o@8g&13l-SmswH|AG@E5UHSD%}4cliN^cBAmTg*pu9JPIvUT|IP~8Jfs$a zoGr@4+6r~IBRCsVst7D{os7n%#woh}kM=tHgcqc}H70j14W7Zdb>yG=$x;I4Pt6>W z4io)~(Oo6^W^a63edeyiU6vrxG&h#{HkN&ko`5i5FgIB=suIZtI-Wk*2g=BJuxnX~ z%^<6;1i~&ZEMcX9T-;Al;xj}WcDZHYD^Wlwz}~`WmGp^y4vChV(@rDqp6yVu?OK^B z|An^T^%5TguQP8nperi8yJ5`s!MhHxpC)ODDijm}_pqy|>y;Hoc_22@{yg*dOHq>i z2KSZ5+_#0SA-@Lwg3r^I@UBv_U2Y?^@*7M)wJ`a{hl1I%b&({(@0mQ!R;^PWSPi0v zQNdW`_el9^FWuXjfpY*s8>*8fYP_Q4kPBzW-ek1-+y9vDMIN4M-Yb*u%no6FNDMkX znw!BHKh?WbNDm|m)14WDO#>M(d2TF!K5xK4Uo1i2i$CzHO)lUa5SC?Gpdb>2r&e)L zXLH(-v8eGw=JQ1PjAMhFWnb!a(kc1j(Zh%-X8w;pu$mY~wITQ3yF>WrT@xLTZtn-} zPnPsN+Lh2~G3XQZ>TswKyyH8BU-CFG+geba zE6oA(i0tW9Xmrw=hON9T8sEw8Is)cG!mp8oiUr> z7xmtrX9Jbz_k?&S5LIPbYGx*$KSHZ6l1c{4>dk%;A>OiYR$7OhC{A2m$8tLMAC`ul zlXNZD0%s4M&cLNgi8OKqz8m)yJN0pIH#D!O3L=Sw;XJvxk{D@!TdS@FUYkt|cG(Xp zm{Gn6+ep|ajqC6eJSzW=X>1%GaWMXU{jmrq!N@_xkr+T}c)Jj}mwpLX=IQ0IEozCz z7>)H+v1P5$#Q3Ky%!JWq~PF*uAGS|4Vhs(5Y ze}NqNxfYiQyN0r+3(m*)$ShDa`O^0po z0%HE;XjU_&F(tV*^E@P){ksN<=w$Q6>R&8eGaaFiKwqZ)eSJK$e|wc7=y-pwBtQeZ z2laah^Zq*`9CbOZqZ}-)Q=%42q972?^xI2jtv)Zy=nO+8AI8q^F`o(m>0THCBu& z&>OxnH?nYXk^RhVPNoach7pDzLD$-d{~X-kxu}4_K?DnPiq#?{JhEf(OW|^fp`Do8 zSc6+a5|%P491)_Myb(FPAY|RYFr9mv)E@X=kfGj_CxJD-E`c*cX87pWv))oWgoh+v~Y@}CK4>ySa4T^37)jeN_r*rlbAJk%y!U^(`ZJwBB1{OqDLtb3n zmNcO((j=MEAU;eJFb9Di>x(wPQxoRHDa?%POJZxmlvwf}E@iv^_&nl!dvMeQW zhzNGZ&z5n#DV4IXC~5R7m)zACMqC{segIDxbfnUMbUuXP%EK6sY^j=0bw26Dg8A`g zOKBFlCKW1A`22g9P+)?tcIHkE=4Mb?rnY%m_VQve?}vfomyZYZ+z?1Fps*E%$t;Mk z{90rco_6!F7UCG>CB+#3DT5^QLiSjr(~OlXDY7K{kxXyJD^z-aJP%Wafe$bwbQehd zqU-u4<_YDPen6gGYSn)IECve7y(YQ$c#icfLfnN1vP17l#*c`U zP6mTs9XAZ30RqFSpDWWl(#3e!;|O*XyI#1i^k_DW`mzK$;~j4UU|WbL8wt%kx&asL z<3*-w!Var*Ha^Fv$B@4q1kc3R0sSv+O9mW2jVd6wq2%6fB?zixH?;F*-s!vN#JX#ahn64`Wv)3itq z+DhY)91dk%)S=>UMLWs@l`lOP3h~=HRvZ!Npf&xp%05%Gon@ap_p^Nx0j2-ex7m9G z84mkgXdnkM3!y*WIf>V*;0rDY@>d<;eowDyHXY9oY3KNZc)#YT5&X_&c*yUzMm}2}K5nq^{DIDO`5blvt9TBEi?bJk zkcfS$(Kc9ZKc)R=^6I<`OuS|7{jIh2VP zQ7Lz#*WDK?-^Ag z3e01~>;sk%p2GQD1>!h=Tkv&91P#z9#}gC2FF)8V30Q>y32*ssZ%;jy-1KdR`ZN9Q z#EPcWl1Ry(6Xb7ey1>*FoZL%09KlTxu=v^DT5MJcoQyW`Uq<|#Op%Eu>$H`>bx@2I zokwc$JUZ;`Yh+nH--j{cC>uoAF3o4C_KemWL>w*mmFp){kI-z*%q5ee&bhI3GmzWV zK}2-wGTUCvLMNnY6tHZChat*yP;HMV2_iIUddP4P{)*q4imG8a{=xjuUiL?= zgNQzlyU*)r{CA*LSA#gCD2+!*aviBou89#G@uQ79wMuImI042OBP-syx5{bgD!sBn z8ak}3s^FA?Od>Ms80g)PRa@k{1+#*&zsxr-R;15C*Q6(%rsGdAG;$e0$BESmle={^ z4hRk4t#66^NXk;gVlZAARBgs7i8h(W#Si@$ASviaJ zS1YUo;cPxvG9MfnX>)RotvO7>@{QFdg3Xpi+Thm#bnxj8#kP6y^N!nK8(wMvJqqK-LRL@N)icWA4vS=EdU(r9JMzQ*&vjF4 zjPmY9G@oEq2tZirJ;$r4_x*VRQBR|Lg^-2>I6lE?%QLw+6JJeB1dA1wd6o#L4|N(~ z1E^)j)b1`>8O=k#a#%R^#a4}|CM*@{puHt)6TQNLhsG2eSrXjnilIEHq_5lk5Pl&y ziWSPIBSWOH>2F?t!_|K4&lS3i$=@S=7&e|AzIt zj*HFXWQhMrfvo|l@0zv7CcIXbM7OwmVa|^){!JA@wIvrvi;J$pS4LSi=skY@nEWgj zftvYk<^;1YVC>8eD#-4{8A_V`ki*|B8z@BazrB#+HcfaEG;=|y2bPR;doTz}BMB=k z6`F3Wg$9iVG{?tu7CUyRlyUHu_WY?!4Ps3vy`PR(vbkln5JO@4hNO^Qhi*Hz(p98{ z#+<$^0K?LKkFQFS?b3efY0jDAJMDQ=7e>?-+tQ^z&9rgdv7fus7;`3;CnK0<+yqO~ zcmIl$WS>;z_lwg; zopu#{QwPcht$e=P5f@CH+zM;SwPRR<{c-I&gy}_uN2y>1Sl&hc+A?MYY?&(x?L2#I zF|1v}@dG<#DMR2<4fie)V|JNz9+1BWMNIZ+(*&m>_&}5}T_XVkT=zNbzEtSKt%Q2AI}g zd8>%%X%+Wv9C6+IX0P6$_2@;KWH15&cvpx$zR4>SD(6kGGd??q3H@?raKRFUe{%4Z z1HswN&llM{eDqRl$PM0qody88|2fsMPe(c9P4ajDgIn1Dt&at?SIfcPJLSsm^ZYZY znQl#)MHzWc0+>&ci)h7n5@vCNH$EfqA$1dXNJ>518=-2CJ2pZ0U#aeQf|F*%2?&HA zl7R*R_(q&s&-?DCZ-(6Xq>hlgEkH`7Wyd9J;Wtu$S+M5hR4_Xd&RN)FmwCvZ}YxgT#E2T*F{gjmT z5m<+CrPU|E1No7uc2uh3*D6@=3~Tcp@dZrXEi*4HW?;Sw>OUSn>` zL6$emljJQ})u0DeLQh}$!;{IvqAITaQqccSzAdoD_p}|*pM!kFXcMC?^zlP$%}Ts! zYJ{1BOe)p^?`L<9#>Dy}OcnS8ZLsf`Cml>Ia6qNS{V{8Kb03kb2p1NBA~?GX<8w}5 z9m;+!YdXKVZ};U*_%p{C&Ws`O1-$FO&=pEE!K=jFZT1qSwLo%<#o~dXzM=Lm?T+mN z-5hmd`SA&jOdl)3Q7t5gGS3>^o6!x4!y!}PE zF`mf3Q50pw9}J>}1MBNvJR7z)*5%Dvk*uZrLRlDkmSLx8}Ty=0_T1p2+GC0k?%oKXg7?<+p0mllo{-! zkEoIv>&@cZOuUDtJI}!Vyk~fjZ|1*Neb!7Xg4viMGh?4qP5a0kl5f1hFe1-S{ns_^ z$Jmp2tM}|EPh?`i9f*r;Zx&UH4wG`1pjDt ziJpO@aUo<|`K7mC3$U%IbhPTaca!b%5aee|?xPv+tQDYl$aqM6ffW5#@bavdu;z8; z?Rh?)hBA1ZUouZkT;8G;Z$CnV+n5NhEiu&Gg83m>fghl#S%pDg==*O%XV(5Gw`}e? zr2%CNajSx4v^cZ`p=?$*J0of>`5#kb#RKigy$-izVnW`~t|ffuQ5>6eQnV4{P?R-S zM5ptaxfk!_pWM~V4)$$nmCS+s$at85*+c168XAL0+-l$%7re-%ODGa|myyarSzf-h z7e^j(FL0i21BT*@QDW4I`a_Nc?A2Ze^^qQfwVxrJ>Q-{q0Olc{pj~)CP58C^Y8MLplN4g1118s zRe=^YF8#z7ukH43(oSL|y_YnYlDKN(_Vg9xJap1H#Ssy^sO4n&<>tw7i=8<%$~cIl zXM)u_(z)HFEQu~oczAN__vhY`i^}6ihtaP#3#XQ;R4~hz=MfAz%FWRR?RPaG#9>M; zo7sswZTY0VJn3UOmh0IH(eY_zDoC&9!+09Bh+j+FZ)IBJPhN$Z@Ld2i3sfZ@JY3&7 zX+sy!LrAG8))pD1-10-9R`(^p-gicT)#$NYt7FJF2_>q8HK1W`nj0PCcBzh6 zi?x`?3gD{DN@dfPK2maW&QhvO8*HN#gVsB+L$h0WxjZ27T7G>%`|hks%|+W*szJj;{4+@XP<~ zst)7*l0MQ$5X*6zkNYh-kN(xv&wb{M*`_nnXM17|w-Ce1#fGFkkoD7}5ayD&_W*|@ z?yop0@vqxf4bUq8?e362v)I$%?+UwaBMy3{Ht5gbu#u)& z@L?`L4uQa&LS~h>R9SP@qQKd|bwdq?)p3uc=)Hv0Jm%EKj5T?YBjCr@DvcYOSe{ZFV6 zSpre?)`E>2fh)=0r=$e&56w@T`NCo~lpJ@qqk8X#i|>C@_y% z?CKYebEQ=2juoCBW10j{1tl+E&&gMi2rc|-F8f=uh#eV?tOE?r(}$_(K>Jmi8*w;7 z_{vZs#pPIEf2 zxzA&N8v=y!V%nR#d%m0ZEiv zaR>Hu@iN!&-R{y#6tW=@45DYv9R))Q+sj05rKd{aQ3@F(wA~6SV|6X2`Ck5=#K`_5 zGYCd^I)Y_p@{Jg+$xV7AioV6ER8A@B@1BhxWuitD&3T!<%Vxc(NIJQdTE}#Nh;oW; zoLZz~VY~5Om7B*Ei8BG02AJ|qrIBI?*J&D;B{e>(M@=Jx2#bzV(Mmyvx66Wt(B)sQ z2GvM@U7$>SV1p=7%v=xIZBER)k6Uw@0GemEiO+@+0QT^>~p;jB> zuO+@Erfv*N4@wy=KKB2{ERHd%;WrAD`221fn8uC8N8@{%4{EEQUqp5@$&#Uo@0-xZ zz85|V^ID(H_2PT}Q+|AXuvC9tV3$FrWHJ=ko#`rhU8Bs@C7_uC)b|1}dBGg%+G<#7 zVeuBC>`c~9w$yoE-#^`DbWGl>C5Pxz|8J=XG`1PN!2T4l`K7}*emt0@*)<`HvTlC1 zf6bg&=k|mh-hcW{&>SOmAmTGqAuVHQ)CXKn`*9^w><`;K5w<>y63x#A&V?D=P@CE@#2>)eAye#H>3tS=B_Ca_K!GI~TcIK% zE_AORKFsEec63rBv7;ccshKvbsM%(HTJe_hts(A|Gs~-&W*P(VK>*AKbyk0(?xE~_ z$jF$R`Ahvc0TR5@ou9xBJbG!wDRiz>NVlk>G%x+}VzofbGuwuX84#;1YY2GIwZ5?BL}!pM< zj=zm3O$nPUY1H&w6Ig<$n*yTd>43`b^Q#%sWl0E)9R6vF@P(Sc%`!kW`1+(h$9LU~ zXEY71=Wx}*$k5Nz3iB^x3jNH87}#sVXU!c7`55CgU&f&XGnUZ-85GkvDB-~m_QW~u zHsN(|KUve-@$~(G$gsC%F5&mh41%2AR;jZOF@AXFDzRu zkm38+{c$m~#lVE3;DUp7J%DT>j<3lKRJQ8dU8&DJsv(8b!pGMTW2X|+BDyly6Wu&&{?vHYiey!2~2XcfqFmcH&MDI0$$M1sJSj{_J5}902}1@XUxsKj5uVs1K!O$zpx6nHT2r$A#P(yahEuV1_*t*Wy3X z$l|k_bv41OWRBY1vSe3Mr(dl?V zGxotlcJ6!z@p{zAPHxg&7mRw1PEwx1R~QfC(Y7ynmEPb3k~=1BSK_`|Yn@DC zaaDz;=mA4d$vF(m%tdFZKQY00VZVI`l?FUtp3RLKU@5IKQ9nW#_YIn38e4KNr@^y_a(8dS)iHu+Qb8}^#epDP&!7sbC7hzCG(907L5t@#+=QXg7 z!KEapESIwMZ9+9OBXWJN{y0lErQ902sgS~9PZnRB53$*)%{n^hPW` zzlW!~RQCU#;2N)|yiD;bUd16^O;im~;0A&CZ9!5VVFc?+nqR)19uDP^1B;zES-RWM zr?_#Xq6|K8nzKP2RzYO%D5Yl#7q--|s)Pw9I;q^$O5|QH4Yz@#2Ar$ft-g7>G% z)p6C^sp*M(+wU@zIN{aM%5Xo+@g@94Cm3bm!pJ+s{`)6(B@G?zmF^0MI+5UZ?w;$8ZWOIiIU@}j16+tXT26wzJ@3%x4YObi7*Dgm zU**uIad9m(h^JYtvjtS^8S?$dLP=Ry`Y$Cr%;)m3vwOJDZaKgCG}4L3>|gq4I|q!5 zca!UHQ)M_axuZF|8z#?YaMdv0h<5J9?fDv7S&y1T4S4~=&VIE5TThgQ(fnHS=TP42 z8um#CMYRfcb&4i{I^-z)WWL zX~TTrgvYz@x1NgIek!)>+9@h>Oq||4xTb!2A^Y@P%`y_=0Mk76A3EJ9-OWbbF2zkl ziPWZjVQ_1Nldc#!-te`FoLH~L7a%KAqP-k@cf4BN-Kj(N%0efe4m99oPUakN`aj5d z$+ueT%6E=Fh?3I2$QMRXezXJoh3bHYP`Q%Ve7GyPVAnHQ1onT}tI@}gO!8M^zri?@ z+6H{3A*EEW5%X=sUiaEu@-K8I`0}Er>@L?Wh@v0Uw?9CTNp1ec$~^_$gzcoYLIrFF z0K@DF;aEia{<^h4cg)xvBP=-8mtfM_2>gxawUs?(6D%6fn-k1t_}>?!k8$F71aCsw zV@E1Wu|cXj48CTDDV~zYCBf_)>ax$YEEy}XsA^>f{{(P1WWYIO_!P}AnObS>%2p;t z(@0UE{+yX{Gm*R4m3Kd}&wItJpn$Q|jKTVb_Q`?GNQjK8?4c%wActF8? zU={#+sII?0ZT8w&pL@%0t+^L>c;PnY51u)?wjw)I;`$U9?iA%=78o-_v-`RfFl*d-kpPd0CiekgM?9gkY2t!1gRhuc+AF;0J}1|ywW z4Zx?TpNqY^nFI{OK4jqb@Q7f^)n2@-+WJa2l`qoda^R2Qnfdc?qh#s5bWvRU9mB*7 zJIZ)!WQYru1iVeHUS2w%XC$JO{(fC;M#?BqpcIA#k(rCEOt>>L5sC98o=gzslSRRf zq_x|l>7Of5!!qs#wa?Q)d*+jX&Vc2CI8wNBxjk~x-8 z^{e&lDEFKXHf4v4P0&(IEsA7q5vuu_YH+7x!)gA1dQXwc%T^`ltsQMf$baFR$EULb z`9s++m8ck`r@`d}^{9<6dYrlV-k*;u9VL&4sP&RE@_twQ);OWcb_pM?|NKxuM+*D@ zre2qR^4#Y#L`@fOE=9y};V;EYU$yKPa=SM4Z*k6ynuY#}m-AKP@Ur!6q1@PY zI1Cg}CnUD{(IvdTO3~WoX@5PECLS9U!%7(=$D}yA#IY=oFlli**FK+@JR0ynEOa3F;s48OQc>iXlm62U@f;*<>uzUT4LmUghp%NMeHnIG zXx#Qfd#SE&$481az>%sC(a&ZWKdxXt8rLuO$##9k*SfoMO6QJch7&*Sd$~9fLpX$S znRN%5*G?>8li;k}ZDw@1KU{eXG@N5}DKpg42PGGw4vMxyqwG% z(UsjiY|Pi1=y%92N>>YXSYR_Qd=#I|skfl3q}zm%7t9D+bZSm*q}du2?y9*5lE9TJ z->&nRJ}3$VGCdPZ+0$S~3&TU?x>hg)ZQ4t09QRZF+VAo%~w zCx<=Tdq~qCQ6Z+P-n)_Wc33MFu_|9$nj2}Iuz;=q2WWz+)kcRfIOqTLgm>(GR3+my zVf*)v6UEDz*_GEs{YsRq3)ATP;h5w(k};=WK|X_QADvg{q|2{(nR)*a{+LV0R1kyX z!S|m9MY|kEd2G|H<*9><-C)++vkPz~8Ok(eyHiDh%-?kwewh7MrtAAZwwYmV2tfzC zmG3bVUemuh_H>fr*UpVhHeBJd#_3EI$LCO>E5Z~zUAvAtKLcj*>Uyq9>=~pwOeKjHwnD%;RtLPO?Hnx;ld5BK_;8Vl z^*}L2JHrN#&-3W zCzy96UFCCylQPwJ0|MktjqP3?-ZhmR)F^Us@$W)f9qTf-ZE93q2{ZW0*RU5|!lo3gRN?j0I}~ zu&C?x)R)%Ir2WRX{deaaEz7L(|6eM+3N=%#~(P)5$n66_v7?p#O5NwUT>?d4p|G?UV_qZ0(Hf6s^RJ;h(bKYX29KKq2fN>2(W-8ayb2SJxovgwd zMl8Bek;gE*o<>13Xh<3tkTZ%Cpx0iHIk$(cxaa3d33dscrylEZZ|l-yi-32dhZ5A$ z;!ieb-0Et+r{dUgVdbI5`1^gk+Qn{8n1q6nn^H_m32lC2m~xUIR@~h^Mnhlv83=>b zc5pbc+kO8}?%0X^vLSAIvdN(N(vL|^mB3KCqL8|D0PLWPNTDr~I*Ot6k-}u-npf$C z5&U#c|IP=Wkr{^!&)r9f-1tB^4K)5+*u|Hf8W#^@QMbfn8&Mak1%UWN$ZLg;n|z!$?A~}p{m#&*_{(ghijs!7Qu=>C{pq834*`f z@wvT+Pl%YFEeUPMeI&_Xy=O6E7Udi4e7^|C!saG$=M0D*zt`I3xx|VteR=A?ln2;I zVL_i~YtCZo*f^wC6!GZcB9Kykc?)n|-pAD%xUTcz?1Y$eCM*QgdztvLGxar&+dvo4 zaLh>2`XR9TPekhefH0;jP)gd8S-`q`kcV4A{j{1ww->_ECx@)781oAt6W#)MwReN3 z^JHmk$Z$A2K~Zs72T{7y#Ms}{-`n9kbs6Wt3V@OQ@H+2!8%N$ddt0vLYoZ5S+!@7aAZw@0XZ8!|=trZhiX_c)xtZ1<9S(DmXT`Ol7#wbE#Miew$metVdx(`0zz!>%wv z{XcEVu1L&5O@C5RKTyNVT1+-!gG-AC?4mYZIHV62YQ>v)NHZ=j>@5rDoA@UP^w-CN zgu35=HU!*^qwuy*p8XGUmFRtq<%t|pCpJe=gK(2>T6vDH&LR?;NHIht4!!`HK9JF~ zF56R;c64^WZ=`)*&{kI}waVWS<&_qwF z@6v8?E+M-N^ZSS?1@t?43m9Tmd+T{n(A#FKVfI5e8*sza?UOBi!l!U0MD+gERYZ9zjGnPi+&GiL6J>VN3WqxnwtMc2^ z{Sf{Bt6ZXOiF$IXSD{?}X-4KA6b5Lnq$_rlsnzlN z3IU8RHUJG_9zCXPIkM{=1Dw*uZe?JVi#!lZ&Oq3T38mr9j2iq$4As-5u;1}SDS_9E zMU0~GvYvf&FDAiW^(%$VyK7D|7k4}yi<8K<8@hz=W|1pgpW|EJMOMlXh9G+JbBX43 zlboU2X)pnxA}KqV8*#YzW!rwR_-75Gq7aNzr_7tmy1NJfg8P{-KE_o|zdukrZ8#Sz z-#W@?WIAOR3uQ+Le|jSr#EHmQYHoEv_5O_GtE^{@@H94TOGos)U9x{;w*~mWwUc2< z5o@`9)&{7xqTk3bI~YbaeL_wir~!P>n;xLEiRCBB`e#$de9v?M+Txs*npg0?S3E~~ zo8DKSYNEJ@}|!-mV+o9s0o74;9rGP`}-cmk*^`U_~2d(myJZt1Y$&rP5f7-?bLj{?l4u==tA+ zE|Ip+dkA!H0nXW&*w6km&nnhWm?shdKqDyroSqO}BOAc6m^;?pOFqM}RI&G~%6?%u z1&NxE_tpU>kv81)-1r1jqWAAk;rGt2tnSGqLBb`?o~(AJ`m1JZ$v^v#s-;0ioCw2Tl>Z zS97BDyr9n6aPgM=gm6a06OXt4X6MZnO-mPQ@F_@tJSL$^bO$SJl}cIn-*aDeb2Mu zz|>>+Vd7m z^lO0If`W#Jy@*>j-OlFhKQx!gThz@&s351~=%4#mGj}$xuQD%@R3F|%A+YDreT0PT z0PZo)FekI3yY5p%*`B(db$PG77LsE5+}}2)mRB#V6MmMg{^HoMtK|vz-e6!Jh4ZxoelZXRD3a-}tNRc8!(X}bA2oIoscN_zHb!e0z>f|I zn_n#bgb()2VUq#RC)rHpTxtF%EYDNsf^>P?1x2P>TyRA`d6&TDh5yiY%6#4PIP5vy zeRCzvs<`ia9#$=C3Qc)C5TL$s&GwfXQ*zyBKys6t`6x6QEHKA3E=uXWlXTPNm<~+o}kdFf)e#QJ!DkPq5R^<7wiebcouFr=lr4_2<1J2 z;QlZ?^&fb+r2~!LKO*-(_Vfv(*Iy015&B@C`df}btS)g!OZwanR(3<-MCYIZ7(}P7 z!^)XRRVg5EGv*K~>AI1${h|=3t2x*Ib617@2bZ4PXK;Goi(S@nP{h=#A3Xl9!Yy3;78=-M9F2Lj4=MVU3G2$+4AU%N>mX% z^QEPK;2V?Bwc5luOjD0k{2z5vwcumjQG2!a$gLJ*pY8vn1a6gje8sNkRRQ(!a`}46 ze)U^hdbP(GrZyOxK%vXqKB_vd)y5wJW(mELPn&|Vy{_ZGmt65tn@TR+#+_Lk41GJD z&I_vhDMb&*r)B&luR)kYF*@r*w$#{&o6L%Q`p={*gyOEO95df-HBA{Sz7j)NGZyLW+dQI5UU5PN3HkMr}GPu;bP+lISU*2Hgr)FiGb zmpcIyzRbff`VcYh<-glkkGGKSOgPpISGrz}5K2$C%YQroN~sZ(`l`puID4OSP!%nS z;iQSN*m@sY?2!OMxBmr4%dgdHF{zIh%sQ2f9|RD;-m6bl= z!5}(q5<2$0TvCQGTJ7B7H~))f$4lS$YyxwAwi}eabHOn@oh>J-sDadM?NG_6f!mYp z=2jVxjb&xgzyS+9@xs+xh8WSB(R*z8Z9$IB|0o6LG@*^_lhoiI4)=Zg-(Mmg~CPzh42%omypPu4}?&R?D`pyVv^0n>B0 z_hR0i^EGKxX`=%e^iNNo3NJl`?N0!|e(|blSkL4|lvseQVq^O1G{>#lK$~xlojdpc zNbT+7+>ZBI>%?`D)ZwEFZG}m{ec(Z;7{ML}@)p)T3-6ITum#7vqVbA8@w2M76dJCffKPIPeB zk#MF9_&yf^p@e~7?pvqu+yB}5O~mnXsAXcwbm%*N*5kCrJM-b7+S|u5HUB=AMTT#% z0}oS)8>z!saiRzm1!~70Tb^~uCJh;jFO%$&gC3^h2odM#KTvLm4TJOh1^=**MtbJ| z88sP(m59QwkB7Tv z)JWMIo2F6i%%WQroFEj~|H=KnZ=C(rHE?%dqd`W_coMIZ9MxUo_)jz3U!Viv>hlmsS8q7eEmd10<{5^-7$!8bh8WkNxsx z-qCf^zL2XNnZQKJ<8_=gIId?Yw$vyUu=+rq<%8}wq=*v#ZNB`ApSfgR=EiLuTptbx zd!Jq?3&r|jE>B#X2PyGOxaA@x{_H9JyzAJND0nFbHI>&aoH@@fhuftHiaMgo-pRQK z;$d6Qsq0y0OYF`jKKBsxY%Uo>N%Tvz9aK`}w(&#h@cJno#fAJhg~rKz`EYS`GhWu@ zBGKo4BFgCd(c2X;d5J!+bW*)qwEqVC7_8w<+%iRUfi-QjL4~e9vl6x@l*i!?)u-ig z!i0)Fp~&>vBbRMgjV)S$-zps#duCh?CA6U=U50JO6*f=R_hMRb``>WQ0q*8=Ka^Ky z?VMHJrz;ZD7lt^p&Z?`w50n1;J6Xr^{7?$EFRQPKC>`9v!(@M7hTaTlvY_N`C+%}d zFNll~+yd1}juEf=-ps6h@i*xy z#aou6A~A8I$-J6cDi>BcQhOC9Stk}khVY!im}Ucto``& zjX1HRzUP-NFxzwj4Ri9*4WIX}VhRVepBG^OMP$>%6vmbj89`&%jo-wPIqY$ioZP3# zStffrW32NOr(E6i?-b@2>MQrAnnVZVb*Z%Qxh-R?%kNOIc1R?6vBL)RmP4>&n`3*b*O(?ez?*zcVugsEQIadc^AWdqTQ4bsA7VFLFzT+30gQQXtrD@@+f4QuliObZHd)*r}~7OwRM?AIlJSNAN-|h zIg=WaLn3ob&-y%{jR{b)o$ST<91==omCtOlOdB*Ohx8!l5#*TsvXXG~oWz(O_8JR* z(CZAXV}U+a5h>dAy?(j zRb$O7FUbe0ho$ldqs-5$bCzRE-J&$1Q+c7(rnu8w7pGBpnH7tx2%~cy1Gjxsw0|Sr zy$Mo5bVUWuSj*y+=`fK|k2pl`%j_K?@AfF&Qvu6OQ=5${&@89X)7l=U#JJB?>&aTK zx^2syLe3LqkrWo3zOu(~S6f~dg2F5a%7CSv@;=(bd>|SB5JG&2RK=JW>&98Yy^$9g zjC^V2F}4DFxxn}}*Nel?qsyGNvf%h5Z`P#pK4A=>k6pZh{ZxjbB$s zilespaydPdeHjnNF>fHZV1H*hN5VrIO-;K?suo&Ot@~gJj}QV1*LZJ}MSHq^=wsf5 z+1)5cQrAW!p-Gif0d9a~;Vsi#akVz{I3uw&GXm>#@glt<>sTnz68`5^1u^?f#yJ`` z@}t;&F{eTNea(TfZB5&r`xf-IU|w|8xoIM9f79PmG!$)>ry!?><2Jo1J2JK%yC7~) z6Ku5aDbfBzBTX^Di(Rs*T}_*w?|?apv{6FS>6A$K?jMH4T^)P)pm6XXSzgnRQ^Wq7 zMKtiH?p877h$9TwewZ32Ux|3foj#{Q_P&#gz~13)PmLsm=h5Tr3Ot*E33X6Z;Z=to zc;a`w%jao!53>j=PbH-`VlT_Z{km{6$?8$zu#d@=%4b7dC2e^2w+cJ*!zZ^0dWu#U zxd~aV^2}t{S02`U@amz`*2bie`!*J6C;cyjDAgq{c}tHpgxS8m>5~Y@q5(CIE(3Z; zsN?E{F+ZNMC~j50_j8($1eHJy<);xT88>XqK$E`GtP&e`DGX8$JjE*eTnf92o`ZS# z#UWWUllQ6erE< zEVXKG*e4l2vBAisa5+{F1M20<0Bi=2!cg?+Bo^8az&?rptTYgkb?;Gp_}3FHkpOJ$ zoV5bD1{l5Rz@T>woxaGM; zIuy65-7qUY-7i=Jg7QN$-(C>L*_KJX{24(`40$#pAkpvr8tJMTe%KN%HhSaRX8lTC zrh47FxOP_|b)ojVe&dFFXAnzD9qk|SWs)(0ll7ADnV&%%7i3ebGFc=vIpjC;fCS$- zDHSj(Ke;%5*vm)%`;2-ukatq(#(-(iENgwBoU*c=e6-S#gFA;>dRdSm6y4Y%>%7oo z^b&pN-o%7^Z8(}K=`cTK? zCY9sZuabmV?U(aO_%gJe_$@Dywm@^kTk|l{MG*q>zwxeU;o%Zf6C+qFolVy!PsSP` z&G) z!;>AelDPB{iBIzfY6korWtM6m?-1-4tAFsLqc7%u=^RlP5Wsy(6>N6_mJ)9@@m!tR z_rGQj&qgXyl>mN)m4Es)ogouHxiA&W(Mwtv4;`})JBR?FH>=KYm{v>XOf?k%0JQv= zLR|S`ZZjCeEHlz0DB)4=V-3l~)9Wo}N|Wjcw7Aq1xk(Zww(*ZSZX`qk2sx|CT-qx| zMNM2;uaLjQVm4&xc`=6I^>5h|qUYX$-qw8xkI66siX}nRP{)JdZvGt0l03w(2u4x; za^jl>#I$`wJ~q%2B^5)66dJ!`WsdTzv{ZxHXh76Y;qA+_qY#SR@^-y#?&~S8`#c(q z&3Zxb0%k|s1U9So+d1s7l5TeHG1_|_t&a$r7z-f5vnSS^NmLr}BgTY=`rflUvrRT& zEZYj^f4VqMD&zbMep;kBBw(3H;O*MlNMBt-E1ka-qyyDn(QQci`=reGPcA{KOFM<5 z=}1D^_IBqZ9+EkItY+9`A8D8-Z9%=Y1srlkU`uQUDNIPle*b&vt zD7#EukZ+#dvdhs~QlH^o8oaSiIl`R3)hlfn zbG}`S6gr@F@L1eA%~AS|<5g{2t5^~|fBjWwp#rIWT}ziKBJALkYB6rZ&GzqI`<6x! zI-2-?2H?u;ikfPu*)9Xmf5JFisvMH%J?%vI^S2QN_5X<>SV}7dUcIZHT-mW(?y1gF zdICXQCgIefbEF3I+j#T@oA@JL&DUwNl+R>}XkjH*d;_FPTYa0TVaPOe1xj0D&m^6| z0$vXLjIWTgpyz3@A#I7!GQW>zy4w9w)8e7j5L|Vc-t57|aYJoyl%O+%Ze84JXq$%U z+~mT`M?jOS`pcE7Rx?#psm{df2<&X`$td}{TmVO;S~Ku15DdOP4XOr?s_DoB0Ecb+ zLMMVNaM}CBG5+sVD@n3iy!TSW>2OJhUK|IkGtYAm0~hysmUwf|2J0%>-4Pee|8NQZ zYW-!cunBoh$~LbpkxU4SCw#i$K7Jy8G$K+0hj-M)k*tTm7R(LxP(*u%E|cKP;n=lK`qJcI%S4{pXy)wY2P0%&)aDT7;m1j! zGk7IJ6`hZ)VdO4tq8_BOW#D4>77&Gr6#U>E_3Cyh0N}*3_)srlqxH!pOc=3QPRpVAN`Sub zMg#h>Ze9H|=Y8rX51cyHS#}Vilr`G+`L9sJ1Q*_1_eT2p;fIp}sCdnbr(yxjoHP~G z6bWZ#tA$DzJ#-9v`XAFSGBa*1^X4` zI3`ib!*1#Mj^)|(IRKy#wv%by+&rPOs?cb-zerqwDsTu<2Zv12Y9NiAFAxL#}MST{2G)}C&xRk216yW~$sl79e- z^WQSB4eEBQYFdTghGgDIOaItq#-WV>9&Mmg$)v%GJXAU$EiECPyG@kKI`rELJgf_> zZYvp4r;HvbRv?z7Sk&|u%5}dr0n6Oe9-77BEjJUGWvx6T z%doJHOX&}b&iQGU0?5eKn$Y=uNuzz7Ci!|p964{mGt=#6hU&3y#jHT^1lOU5Ie;_V zcCI0fWaaNII#Jr+Zr)^JhyxVNmTq5l)MMBRU8{9CPf6V`na^SQ4u9-Q+SkMM{!qQ% z(K}gJ1G2Sq7>ux}x7<)Tj2QcrNN_=eso+F+f3N;L^w^p4aAc0aE%YVBpTGmx0hz2v z12GCu&}yiV1iiSdPI`U7dY!Byb{c))i@Th6H0$Y$aAAjPq0Vq4Y*eb7l3|9ZDw5OK zZjW^_19K19R>0;$fPw=@q@o{ka2_aLf`9NH<04&zLA(w-A~s+8$tzYE zei^RlZ99o!tkDFyKz%$@JM&zL)n8DTxF}vs;jeL;deU zlFlzj6->%`x{ZlhB{GOzy!;kS90$gt8SVQPxOS843cU@g=6@g_U+2eak1v5l$ZpI^ zKj)pdcOcyY*ohyAciTwHz*29Dfdt|UC1l1g)M*5V;1xohjpqSr_=T+0FJyB^P`Ui? za(vuTT7^vvPDc<+93sDR2=Ojv7w(M=(DSHn?eFe3 zvwLbsw}Y+hQb7)%8+*_%CcW8eZa?#ShXOsX>_~TA`0@!^F#XU}#3D1YAhmW{%92Q% zo@zb45tzS@QS#sh!|qQWlU0Q>5N@}p;UGpjhfA~fo&SpCuR+k!S(_mn?}GUvu?$jDv>XXN*o42r4<;HbE>Ls$&blW5Lk=c&__79{ z$gtib*TAHR-|xeEHt6-Ba=3^~ly2k@0aDocY~(~2vK2xa0S zGj`69VKPjCZg!;@VKrZwQ=C+Fo%r2ZDh=g6v*ol>oWjF*@3?cpWCt*FL=VH=X2Z#o zGq9R`>;~>i!x*j?>Q+SZw459-oiYD-uGF-YsbATULZV>F0^vG@=5t^m6gElxOZ(N9 zy_F&of+4z5VQfElJVOJsJfRtDkcs1As(Xi_d}|C5C)hOgsfqzd|?TIcoSD=|+2Q&Q-kR7VlOPbS^5 z);v&Vg1%%##3WW+JxSDoO@`6=YAp0^pxF#d2NA|v3kQnL}VXpQzH5T91~h7g%h>;xIIW$UEQJ_-Z1s4#*RognjvHL zbI|hM>%oBP={VBG=z(gS@^@vk*;gVG-cW8<85W1)YB9sVZ|kL+nPAw4flefu{(9D?F^Oou3XWAK5R_W-NNi0+#q@_L&`ZxTVm2>K`kL|#zwllrOb9Z zuFX$Y)Ujap?hM~bGq;Yu$&iv1?S={KzZCt;pNG!|O#}r14;(blA<8tl&-)!&7zJfU z&jIeg4rD!j9`2ib#9hMzTuGd!P7&@>p2c&UO#_l{Kc(yS*@I>6CX`RUgV-7ptM)4| z*Ibieq7^{j9j$GHSuVuz7)AefmriV)Bs-TZNb>X@j_*0*a=?gs!&F)2ye#Reh)C<| zHKGB~JU%{wBYmNMg)|f}j@fAnR;h+TZEtAT-fIF|>$2b=_#ooQuEhi?T2lIWy zs@lW|S%=X!`fepaNF3!q?lA+~xu>edh_uV*=yM5sf|*X(FBPG7&YKXHnRPSXQ+no$ z-TgeqHC4)hXFTg>ajsJX|AxPVTiU9WV{taW!&ON|4-{CVm1f~oungd*N@B887-15W zIxqMCL(A*}@Zoivs1loYe^tg67S|*Tj|4I>cG>_5WC2!4-M1hh$i}5!H5W?mZo}k@ z2SPlV;_bPLYh!w;kp+=hT~7ksw+t;+t06lIZRh;!-?SKSW%_tKH!RjT8o011qLyY& zI!HyaZttS&)X@jaf`u4VC@TFxdSAsq6Ov(D3m&qR(L*1mNkj?c zAAZ;g{|K!hCvL(8N(=r#CB@l}G6j=)+nuhmZIl^~07T7#Ba;=v0Vih$!*7PmJas<| ze2Ilxa$WH57MrPHz0~<^;2=6}H=%M`>~PRNVSmy;bi;25Nr~8nyxF8ft5jV*WdowA z7K7MCPJ|$kH_}g8Fu$A{EgI5GAE(3~z)Js;p5-QS;r5~YK)fz%X1(3gI44`yv0DnU zKAu&>A+WdtYWMrin+zg(QPWj2D$Ri<&uNaDSzlMpYZUgEtTGxIwGUuDoA8yo2~ zj>u-cbX+dIH@n(6u3!%)v>#R-MetYGjdqqzI_RuJ?sOb|N&`0$Oc^j4OiNh!mETfF zB;moO>e^Xv%0%&qI*r->aRHwJO+uH<5$)?X7}rpOhh{xp5TSvX{JyX;?yUne&yJBnb9ScoBzHZX z;Tbad54mU}S$3rtXg$Ap%KErNe4v*9eFj^WlT6c z^N|~v&@I<<)J-wh?A)NtTMQQXgRgLOShu4-OLQN5Y#W@2B;?P{oCyET24KnL!l2@` zD==pwFPUtVhDIZm6e-`CZD+p#wCP~+uG_B1Mcm}ssWeL#Jg0exVK7d2Pz8VZNKM#` z=A`YFH63C0(EM|+Tz-%6=&M54DeWz{j2HfhSm1lxoIJ;oKfhN$_jYlJm(pO+r>ZBa z4KZ^WjL!X9@2>bhcKCkGMaEM|oixw3N9Jg$nhN=)Pr2j_vquZm0?b69lZiP8E}&=T zy2$7re6DT;7u0Dn(_@}->Tr{MX;GeVdea9w3<;m-qaymAKL{jkCj}0FH)HQ3u--j? z*w)8O!QF13sC*yDWFtr!s&wTdjCrO~^IE1irc2H;686Ds_>lDo(y0|Dfo7{)Hg;%- zlZXe<#5psNMpf%Jt1JAO{5Z7-^YZz_VCiO^Z-I&szRWi^<4~J%;90GXl)%24u>;{0 z8~Y5Oe@F)cZ=%G5f4}!NwG_Cxn76V%vXGG@2gL{59^}lt9=++g=e3BBh5s0qU4ZLvOn-Cx9ESBj~n)7qz?y_CQQz8B2I9 z@R|d!b4#vvcuyaBIIe?~4bB^e3T5)2E{l^@V0Ej@+>MN(Y-izP@$=XN$CR7olqUdX zK))QCUX<8OjQQLOgTPlC}jim00rfj7_nM_o*>E#e^ zx&&RrhKL(9*X-b5@7>q^I|0$1^iK5t^0?NNM~5TO9J?mqQfW6pzEJc(e?)i2h)M;H z?Y4t8v#!=uA6aXw0W@MHw2_IDPqZ8FSnA0!IyZccW`3j5wn7k6PEqs^QgY<_5PXT` zFc*vwMJ~Fzu1p?w|17M6`X3At8Vx9=@&BshzJYs;3PKZxp_E-ZKekCqh15rl4h)6a ze5;q4*=dm=SO`9m+i#UXyL1pXT@#rRx~LUWF8G12_x@2H8aC};a<%&X0`=(KcumEG zi1*OIYSZ;><0|BE8%{W*?~SDPFGq0V)h+kf`K>w6vkaH88HVhZ0>ZN!Oq^+nT12ie z#iI1|DK!ynLpr@*cDOM~{AFsAr^W05#@ki-|5$}gCBmz+&*XYSVn?}^H(We{cxG+$A`PMOVp{;TlLK2M3us1flD5+lXL+J-zZ z-;`BZRpJ(OZid(0j0G~%{!KHkmMVwRU;E3Y<=}tOz(%{3ftC1&>|+GRU3ij{1ZqAZ zhQ!UE5U^eLxo$?=%{maq;m1cym8M(G(Z#Tt#67S=0gY^FrY7>M*t{_KOc~(n zjSmGQFsuiVvoDuzHFm{Xnl`c3go8pV)oVT;NRD5>Kfr)p3FL%Qi>8@NO7m288J&Lq zbr#;87zhBzEx;b@%k*ACD&0yq98VV59mGHg{CWU(pcTF#`#`O$*7yXLc57l;aO3XS zX1|q@p@0X%XCHLjak+vi_D+uBm2G(rYlBHC7fV`Z!$|gPbNnurE};$DM01^qo9-aiyBG0jiZ`$wX;0F@7v(+V zfn7Vx)+vjxaq@b>D>Jmba)zM>|ph)9B-NLYj_arCp0^~Z=GPT|DYjk3i=dB}<{Z`@%>1h_cdt&T z))gOrAJo~11r1TQPxeV?k)Wn6ZW2%TGsBv>B&^spY~7fkHnLX_w5x=Dc$f8>TF&;L zDtF{Nevm7@c-3!urz9~)mdh~{yO*YWFR{zJ&$|}Y> zlG+f(_p0Ok;7dXc?xzrE5@#jOC;9xE3;YUb5umQ+%(LV1a+;lpXv_;QMB=0%S0qs< zOO_maKYJ}5XsHu2a;(iDG7c=#r6~98(BOcd-i9$^r7PNx4#aroB9v7-hNy*^vzE4o zRatU5VvI*_L#)q}%059lm2fQlAyKn*eeC(yPw^83%V|MnFRssvE-$#-*v}H~=+j-X zRq!Vv%kc=?Q*BWtMxQpB2X#)%jMv(lxr!67J-ziXm~}N*eNAr5Y14j$0=Pk{PYrHl z&rW#qsay`4+`IEb%%l2?snFDe-%WXNpMQ7#V{MO7~h-<|&$puVqiyUi4TUt$NGoWmzzl%I2?U|1LO+43X=py$aGSTf z+vMHBa%+jllRo2-(`bKK576KXl^D`O{h~PQwN2)aWY+6EAABDGuQdnkHjjm>{?>fJ zU28rSLOamXcG9QYq6@y2ECZE~q8~h`G&Yy+`>H~LuF<}gJ)PGMC)kjEVdXao+Euu9 zeruO6vF80WH%kEkFLs;s)iF!Wg%-)#rRyIoldl>~CA>OFJo1KScuY zE3OX9-R<#jhd`a-()KaVkNM~z@FZCy)o*I{CA{s%i_iCu3Y(KPQII5)N5UCN2Y2H3 zhe^xQF&3YT?HhWQnUARHEFPWA(u>EA+{Lm)DqjjkD|cS0Pviib+N=%a(&iSE3+iSG zdUycKKa<>C)BCn!U=Q@Fho0aN{6_&s^kWj(Y-&Jz=75PCKic?_Sg8V-+T`)YM1Hj; zWnj)aX?Q8WaZq-$KP_rg>8Pq2+#XTu_ci1B?9WeoH zVxUn)>K(X9TT3_g8%!QXCr84dgxbZuhw6{1qsCgK?(w1hzjz=3fV zxaSB$ni?u?G)sUrsYFQnRHbF&lp{0#n*8~SsN=)mOcHbO@$0gy);g7=V$gJ%A#BhMqp{2aXt?Yyw_^bI60sbOv5~8dq`T@?d zN`x5d?Q!IoPL*dJZKrJj0k*K0xf;{`gV`%_Wzm57;@)`1&r`8Qj{>A^klr|~3alP| z2*PB4|Hj-ncDId2F)KX`@v{N;8xsxBI*!+6&lSF^k(hp8Vou5|3cH9dLFvQ^2Rs#2 zp}&eld_{Kr`bKLfYf6#n6T(lDEV5>T9VwVgSeofletR8%;1xGH-Ln#Zb0z~sdLw$V0$Ckh)R#}(btdug`e>RN|xNs z&FY&}x9zmp>r=FbX^!UY4M(-(xn@*PohNRm+WwCz`4WOIC-6XxSMmKw&25ngOJc{^ zxFVjTeGkJ=zT1Z09r@D$y@~bNFsdJPg!L3S>G0Mmv^oE=!g2CVR5~?M-E`Q-j#>uo zU|*LBC?;4cL|%vJi=t^vUAARh8YE>7 zB#ZK*l(K;}4tkDNK8F>B-`R|H3fN@{ zDVO}q178AqJC2p@p3+bj9yEP9lH{)&6M?fn|0$0xtoX}SiW0-flsjt&)c1|!f?T#M zOq!b&qkmfdxJ0$C~Fr5H!q+_CK4j z`G$i6xT2-!Z?h^g(|bMI+V^8PapLXCU%69w(M%Z{tTZt9+!|uW`Z^6|oZx^;uK67H zCGY#%R+U$yb0$GStB$qwGRevE3s$eR8Yk z^3&AD8j|^MEZxbYE(n(qUqt3*NaH1UxfhI9b`!-{I*AtzVYqWpy#~x@F~XRKf#BT` zgPL2)<{b6!Xau$1#Pha2$YbNhrHzriHJOuJz??--|Hw;b&`En6h_^dVq7|LqHlAAS zIO}%s#bS&aS7G6xCIjRU+fJsls`-Oj(O*qYV)%TTjG40)p@=Z85AC_e4B{<7_CDwz%9f}PUPby@}>+Jb=x zxw)5o5^sh0kyWI`cfBhNHx9A3+``SAAYv8l^8~9ipfPYx-##keUNUiG5H_(g$7*)U znLVUXM(X(49-E`Z1azbS2;A2k!~!rn1{7MlrHN8#pwroXRuok@rlkNfrGf z*5^lRMVs(P1EPTsEnV^LuH$W+K_iJkFY({1+DW0X}*zV&)Ob)YBww&u@8M{JYof{?|#V#a-!5#yxsnV>3Ky32O zL4jnjY;GW=oQ}$FibsSItT<8kb$&Au-fV9@O z|F)G02)+N!%WvI^+h{IbfDc4O)Lc5JNv)xI(*y2@+Z6%^fx8CJ{3|2k&9D`l={5k9 z>bOdov7N7znmc1kA9X%QmmWl`Bh_Vb$>yQAt~ar~T0(CLJ~sDiPpqFxSEj&NBU5$* zT32;KIVv^IG%Nzu1ywtDh3JL^#YJ1k377tvsK}i{tYR&~zB#)6urb&WxeEhevvb3jodZ^oH)l=CxcInM|% z(Y1u6wph*PC1Gi+G_|NH+DLK;=zSpF>kkCQl>;&VARnuhRi%x3JYVf@-oSk9Pg&e_ zysS{fP@=#FR#$vv5w9?q9R&u!WpeU}**FPkx*5Bs5Pr^@H#mLxtpAnvi(($YzkOyF_?7x4 zt}M)UDOUg8Ek|PGjK`_9u+&*PQM1{jiHNw0S0T-p{58(_Y7n%&5O0x+ zz=vY`eII){3tj0{pEr;#aP4234|y`5jfTBg=6zL$LArUR`hi})`glHLl}DDh=u*&K zk#(TZ?#^)W*;Bu)eP z68ZaK|82Arx{kU5W+?l*06TD~&L?6$9W1z~`$_~Y#JUQoe{-r4)>j#zW2uSN4<9v5 zZ9e*jKK@@x(PM&sRPGG}#t>ekjaewoR@PVd8olrJn_NtP-Z@n8lKh?9URw?<>B`Bg zP23rE_3zz)bILL}!FI9I{nNd2}v+LDKScSSW6Z^VfbXz>N5tzB;XbpfpB=u36xV zb(CqC%7G3Tv^giV*?oL9@7Ae%!WiPREfzR14aPR**!e65ezzIadlKH>Et0w_v9NFK zIArI>yC9a0s!*gqbie^Nej7k)#D&0FneYwmWZti=Pj`oOI%IW8^1e{5hhblaLq zxf)mumRaiH@I{8(EnZh3`I?~$35?R2U`Nfz=kfY;sk5mYNfs6(-D?1a_{;Dw^=pF& zDMDlMK9=k|>3$6DADt8bt2KDY^lc)8 zrF61}V%OjI#?VUOUp@=>f7Dd1Qty6&u)IE>AG6_&xi3kJU}K^}E3324K_u||Tv?fa z#_uR--+u_U<*amW{OnKnlz$}TK5UZq^6%3$;{ z{$!%?2=Xf2gAbEZ&fAq4nCpKM!cqOWckcHWkPvFEIP z+U`g|pDl>`rYI6E53lgxdT!k*X`7B6L)XGp8Sv_jOXj54H$nJ`0r5l_^OkI($`yIOl;V> zG+q&faqBv_)#n-bKb8$}_6v2yP|M;cSd5cFA(Ru(GYoBkNx>xoE2=uY!e);i>Eo@5 zA18RzYHo{=2Dq4K6~rsqyG%8q1scwOsbiPJDTUj(NL;?nhYp}VtI@XILH|{*Ov?+J z`x%OaRlL;K*Y05wS`g9oXYC?mtUf3z3%9o4RnfwZ)9%F2^LD-u>>P~9gm{JT=JBmK;*T@Mvy+}+3?;A+5RLRkZ}f9L!0 za|5s}NZ*uxMa(AcH(av}$DS=u#LwDzLSL^`SAE`b?pFJ4X1Ce%o%L?-!+g0|QRUrx z6G2$e&8=DCqjq0`{j;Y%=l#Y!7OMB}`$ErG*1HFdAKqR(`LY;rX^hIh1GYG z1F6mEWs*tXNyHXGZvedqo@>zuXD%r_hF ze%?K|ZObM18`H{$8!4B(hu_mmo^Pp9F6K}-TSFD9VGALNr=TDhp8Q5U|fkAou|?x?+2 zR7pE5npUC7C{t4)(fXGDSB|Z(ld8v0RHDF-4RKg!eR`LVvT+<+*Nl?{FOEsf5q0 zn8rVur(X>tQ@>J8asCvuUuUtc%M~*KAkHX7O;w8-SFI4M=_PRbqYP3M%Qatl0UM$Aprab?e+gPTSwnIEpHTCFq0&|*r;Y7FByIgD31h7p)fw=S z2{j$(txXTguZYNz_5Gud4r%8wt6(y6SBRtoa-~tWns&oJ!v%{|;jW6hw`>Y>6Y0#g zy}EJ`TV&gw?Z7OtD9bPJ26g=#7Ir-XGFc_*A%x1NLxHJp!@RXEmPzAOUC91v9<#9e zeeuY$BkTFkS*@1kH$@C5ut|BTjZ?&xGLW1(`C5N?201c@jmZZ2toKbxmhp{A0xASh zQP)zGo5rFwx?YGvMh8s3?G{Op`VAXrP9~SaAP+{GBd?YS?osqit@{uS@gyYnGuAmp zqAh3+I=wODJcqR8#}U0pu4mntDZMl~-l@6V=j3V*vi!sz2Zl)cNIPDh|_f-9KS z6p1aG)~QI_^Lb*+KB!&K73`8vb7~hdHR*xiL9khdHRkb)6VLGHCHVdcwf0Sp7@2oT zN?A*%He#KWGU&O7a|N<3owb#Vl_*N=1Mb$4e;~q@Vb|5iE9k4igdm7El+i>&kj$q& zAzTouNAebRzp(L8fS|MQ2Rd)RxdAmSSyF_199$J9pbYtkL;^AYDNF0Z)_wo@Jzg)X zIPDOMm-(*@uvMhLjj0OQufYqyvCkyDiV@7Bm1_dh zZ+X5=KK(0?B-rf51zT>(DfF5Z%Nj(XW84{N-Iro}QdL!9$Zf40(;<9Gs z$p3zrZXSbCs1?Q5FU^JUQ5w-Tms6eYUVtQ&vXTnMZEO?Q)BSMyNA4bq)T7mL_S)#d zItA4hKA9Ie3--L24%q?zLP1k~TGP;y^Tuk+Qy)D(7#B&3HtpSS#ut6!8Z`rl$lpU54O@K)Lo~aZztaum~1rDjci&v8Nq?d zu=&Uzv(@b@_~dhR16>U#G`usX`!phO_r=7wd~h?EGEhh7MDpr!7>hp%YLnqY{@rFy z$S>W0q_cY&|Ma9>q7sR28*&&zp25oh)=d0mAi@W4pi#~OPc#zfp;M{~{QfEi_WJn< zKJDP~`_?h3y#|TV6&kc!Pj>)-~H$8 zJ7Nx5%u0WxkpZcecYCKVeJ8gIX-E$&=5_cJ=9k{znv_l!-3U!#eWZ$c7PeWbo@RYE zPuJyhzPrh`H1zojjgNTFhcPya*XZ!7S(jrK&j{Hf(S{IRX`tJCSy_G=q?$p%@>9ZP zDKii3L&4`FMw?FrgwDOl5H_1F@zTUr47``_`wbWpQqitlq_P2^n%r^i;GR4{@S*10 zy&bICeyES@V{E@z+*N1Oe|1puPV!QwY~>OOEDo5A5&)wF`KlLP7Z?OGmY`q3K$vUR zeyYU}5}Bcs!s5~yD-_HGH9b3hv)%iQ9KJQ1yo<1&KLy2|BFJq9G;5P)S${eBrr&j0 z!QepIw4~BSxQnlqx3qb{D}dfNG4Lg6E|}(92f6%5GLe@v0!fMxXEC6GY)o6|JH^}8 zGGiFNPi#!b4*#%|nAjGOsWpoJ7e+?mF}h9e#CAm-i{%q>sQtPpnN4%>1#E7yyu%g2 zQCSKF1-({aDBr*rVpny3Bxz?|Yx_S)g%1=vd&Mb2XZ?0pl!k8gLe(z#7ncF^rwqt* zKV;k7X1YRJu?RkFk$+bQQ=Zs?(Gn;iF9B)+GmhNA-)t+T?5x%^ojK?Vn8h(>-__RO z#wy@f&wu0uO61OcEu9^8ZAM&`>E>Eu=ziQ{Ct_gy$h7t??A&wK*y`24}uX*w#m ztNbB?uXJw;g7)y^_IWLb0^NbB>rtf?LKh}E!T6Rn)Cd#7>e0I*l-fWAWj{!t_7kfL zdSNA9p#&u~=Njbz7b6(sQ)OR-dQh@joSoy_!teMk50DkV%|8?O`$kxID*m7#f<#6w z2?r@%Mt6oipW*URThy33mXkg$$Jiwq8n*Cfb4c}dLTGAB(t4U?U*?Uv+Rj8~UD0bn zD$#qVR$vRJ=FTVgH42wt5oBz@6#{0382*0Fs18Ot9~#xr(HN{`u&HnN)LubPhOB7m z6Nh?lLGG**-U9{-|3XpE=^UjEKw*J)rMtiA#WB;K8#n4`!3;$5`(FrfZ#ucH2y05= z4og;ymNbIMoLKKnkHD-#LxECMCK>lZKZg)NlNk zg8t-q;h=a$heX_wgl;EixI-i4pOr5NKflwastlw(O5m=L?GQ>l%^an)=&n!u{2HcS zxp9bap~HEt>~T$3LJcfKm6I}6t`vW}<}LmnA!;q*Q+v3u*Tz7<642&!<3Q%}4%8bD zwbODPP#7b~1TlY}rzf4|X1y~mEUUc}SJUz8z%HHMSr7;F+wVRpsYScrp%Dch=8DKW zBg|`KnZ|;?8!?K=WJ!-n#Q*rM$a9oP5Yze{bE|jg7i?lZ6Oyl-H9xt&PjltKwrlC^ zCAx;e|5F9}3ah1bu3)ATKmBwOCkoqffo=8PD--Ge#j~Z0*p1+vB$xDk_oG+nEU_zS zrlJDP@+XNcoXjvnlIao4#zJ2%A6A)M>yr}tw}_ahMnKC*xY$*p@(DVe?bh4mgfmeK zAa#lNIZP<8!s%9KN@Bg2HrqWFO|8AIZ@IzE8#b{WgiMUFbgIK2q;qx+?Y$d};Ng;9 z%d{uwn!4X>ZoY7gMPJ23#)pph3PKC2DJ%=eJSsG(lOp>|?nmTPL%kcH(flYoD;u%> zMKu*zjMW2662uh7Rhxk9VN?sBsH}R^Wi;Gg=5eeK%`Mw7vSE~Qo$sX=G^8)An<2Pl z?5;1=y|Y=Sk|NZ<3)9pM+CleP;8CVg?rPzRx=oP7@rmdd7tF2IT*SvoTLUhBs1FTw zF_ZiC#Ok{p&Vl7$5H`gQ*{Xe2%&k8H6Yp-NJJ^?RiWc#Ui3iX;zxZiSKZ1ptG?#FG zv<7ZCxHl^PF2}8mUC7}6PA<{X^Uu79W6wKW3wCHP;>TrzR)!vOoKeoi`8Z54(7NrR z-fa&jN9+au=HG#Cn5>siOyq>ob_Y|8G_M`L&cH`>r=@o88yN<&*vdks zo*TP7Ns`s)=;@JW_rPt!9@xtdC6)d+q137u_@o~?;*MC9tq8y1ajb9|S`4kN1?*dn zHAuJuV<(OWkFJzW3|i}y9~-Kj9qo0h$JA^RmuO>2+OltuhH84F$7A!;vh-~yTipac zudk*J-?|zOSSwCa3C1DKe?O5As&V6-#A<1Gzz7q|Q3nT-yWSb&Q`o_}Tx(ujF~bZ*k4 zbrwZJnanF!Gf(#+u`YPJa%2t|i+_o!A)RqNH}^DNPOhpVRR zETb^NI^M4_V}B7vP%Z}Fqb_)#ZcHebb#2g3&t+Lcrl*iABTkcJ#~Sgd__!-G&;bd5 z-q3^c#mQq^vA89(0MACu!A`@?nizy(*9bcio@mh`@Lge!Y>_(muLB@CAt`rU;k3uq zSYoVku2L-cCdAfc4B~f}?xw#T(tQ3!nuFS=E~DZ1T{t!igtCJ&_J?>J7-U=KR!AFl zNn)L4w}^*y8?Hc88ZedIamdHV$bYfwR{RUh!ZkjOB-eP{VRE}*M8>Sq|lZk*rgbt^C@fEW91D_W|@j@~+Y zf=LBWg0Vx)(%+y5O!KF<%0x)b4xXTk^bBIO}nFw=&ecpfmOMcv##`?&+GAQ29 z_8;|-M?Yg>P14>=+1RKB!uSTB4w#<+RZIn**av>XJi?!Ar=ZI0crN1`KEeF+5(YwY zM<15C@pK$PQdEXqC4Ux;fVuRAcdUE3FZR~>(`bu1(~n!H-3ODS7QX-G6-!UC06l*X zoi~Tl)WcKg4ZLp23rDhjjTb4OOf+Xg{6Zb!@eHIN>8MYOmD#`JO64>(flQ3m*Xh4v zT3m)5Q4;e}vhIp};vZ;0`x^1rBIl`6mx5}`AFtqOQaEh7i3*NxDGIAB=oF}tTAZ>n zu-ry8P+u4b^UH@LV1Y(stZwb`mdg#+MT^lQ#uy}g9=w>qYgYnIlKXZlko=q^E@ za`+8V2EBs%tUf5dLf5Bv;_u*D8Havf0B28LNuj^D5h7CM>IyKalIJ{rYHDq=B zhgtT=%DM?O%x8Orvg35XBS`cU)S&Igo91g}w^P`D+vUy}e}%m?-XA}}Sd($0)V(F; zOzXVrwSGgZW{XxL{l1$uia(${C9XR`t%J5GXBX$ZzpEA+1_ce|{xG>-++or%Q{hs; z9SRHodiM=~K*2H!)XLRDsv0plsW9$bb**xn#`KAu9*mBW{pXDS-8_mlnjFfQ)!k(ue z85^UXW+`>wv`R#)|{U*3n;KV{{7m;Gnzi~sER z1(DgkKMPxi@=-^Jp_NKSxc|>f2d8g}rOL6fH)g-i6Sk&X;&cVIolXAMjeR>mgHHM@ zL4c1yF)4l~4BhxmiL)b6M^6XIQW*GRKQ>cWk(Gr6GWgqrf`FrpRLZ?w?eE7Tn2M^_ zy3K9lx|-4w=z?dHc4%XE-9W_gJOh)6b`4;5xwSMjCXI&Yta(pE$r^`vGNw1c0vZRW z{|^YB%sA<|9qMuwZqR;YQCr3cw!JWL9~haRNbDUA=dPN)d;2>A%MM73xcZnB(CMt6 zj<%D-eFwMJ5S((Oq)OIlGSE)w>Fi!@8^MFGtqSf@1vYWj-7ZL8(0iG5VT6o+!D}&p zWkK}+FQ2Q&_d%`MOr#Ec^+Z@SIMWq!qp~$;)h0Tws@oN8N2@~>QC6n$P8;r~Y>qM) z2)Cqv>FysqI+hx()|R8N@x=%XngowyIkgzv`-y(ULod7jyyqLW_WzyB*%2qA z>RZxHvlZprwhl@RgmcVle!Rwxd~zlldZu!9H)7+#fB@wtB_}fW!k>B`6NKnu6`NU2 z2KfddLT~@kUC`c!$j&dsCJ*({skkhafFJ2yp6R$ z;Vn(ps2b$?s!*dpg`Cd3Px;2|k&S1&*t+w}E=;wB`#h>tR{b)jfj%C6sXc4_zJt-B zj7nyyOxa~6?p*-fjP7SC_Iuhp6T|77)6Bh;HxhHb?h&&E9e%Z}91LmS%Kij)6OSGR zY-YB=qqO*S=NtG-Up+lPsMmU)y;f*C4+I8Twoxk^go)18^fi7__-z48E(3OyP79a-bz+=_ika+-aAG>&1!Yqi)AQ0-9E^ev0nZ%LxSH;F zSW)lOfp7bE&P!!n)xYLv`c*-o|8h{3497d%x`{^-qJc*>!W6(8MUAv5TP!W|kD!wN z(6B1)-FD5p8jOwSphwSYsM-<#f9f2s}hwA7U{X_T)tGu|Gqr-e^;6z(N&}+uAy_Hi+8ai6kmoNa8k4$N5GAs1? z$;^e{u!ZlKGQ6}Tegr}l@0aO?F@CWJu}fAK^Uu|<CmOHxeRfoA)YrbnK!x zTH|lo$A?yhJ!}&-xJbL52G3`(fLQRPqmJq4;5OezmG%vv!ZNHLUl!$0aVO+;yfmm^ zW}JTz9puzh=DCR2HASzLk+0)qJ9iGbrXZZwQPV$GTcv?#V4QSEz+$ZoEzA0MSdHOw z$kr(zp8L${x=<}}ub*9iN$22DIUtl?T)1&i)$u}|)@P{2DctZ?aHgbDA#3ws^4)rM z1mVZUo9YyJ8pA&s=|bClfo<5r71;WPGqE_#M)_t?I-5e*dn`TtdM7M|f1w$=*3xxv zs9VmX#2GpTbBGvQ>GgR>m|M+||8}&mjB7%8GrewQc5Gr-d42S%40P69*`fg`Tuh zD&oLH{Rr(!)0#SJNOW2COljdC$nXu<4O-s+cmvGQP@c}=HM#)5(n)|%w5}*QHH5V_sDjFB@*=;e$s;$DR$k5;R87AE z9=b8B5Ke6dF_!hGfOo$v+QZdk^K1XxOG)iQ@0tAa@%urw*-x2c|EJ)<@NJP@MF3&1 zFZWZ9VUspTgc;ZEQ5`X0bLx(0{wZkR$I$(=fuG7?iOGt}$!g*^4o@XrGhLXq<)p8C zF4NN;(btrZmuO3pW;*(TCVv;3USx9WU^}tJYm+d!3V@=YRS_@k$z9kV9~0gdxNt#o zKi#cQ5I9cOn*RW@@EuuMhK)5ycU{MTU&z62^L0vim#-q5D$kmaW-sf!BvbX|!$no{ zddZjg|q)YU4&9FuNcL5_G{UJyce;GJ~`AkHb9bT3#PbH1Ls*em_+_?u-M_Q?4$C zN+W3k()|K@on!B%^L_FEvF)l$&sBI8#ESmaiPa_xN6=su>h5*on$E91{MMjU!i{kg z-PMkWEb}a~&hnC#k$-%w#zxc`r|Zu9xK#mU+R2z+ah9XJPiZHCSBXHAWu5Ts0?T}9 zA->Z8DIke$X=>n&zj%JPt5E_?%UB+eFT19dYToT{%o2!CO}MJyFyERQ5t_A3?Bc>PNI3ODAB1A zlxxZeZt=egs*A^;Q$I#M*tX#s5#=(RtwoJYci=ICwe@GHD`V42E0O#BPj&vwvHBQL@1#l(J)B+B_;)RfqK$GW2(LquHJ#wofqaWBJq=RM8>B~BV+M;mm zc4)%Sm}*!pUYUC(X9!i=%1ZyK=-fZYUmYRV`N5$}cdvA>eB*nW@i*=7m{$E{TuA=l zUXuZ{MM5=;dMXp|z;60Vi?8rB38Ms^kEya~4m7qHw2P)m5SHVo$-xi@ge4Q&??U?# zv52*rc*=D0mTnJ0xaxwRZc59eH4tI7hGRJ1>n>1@pK3S0lnCI5P^#}9AKr%gqJ^pY z*|Z3&(M0;b(CwGJ=normM7A`wId{C~L*EFJ2It+Ep}SudtKwG=gZQ_4mKd9t!(Sf~ zHfm89-@}rJLT`?p)c~ffM*eduXVB@3duZ9+{yH%aadATbQIE0X+T`E6hYZm$p_(Pr z)bZOX@2fW#^XZ*Q{r<|Kh694X#NGaA4WnfFSn#$4S(DC=sS4kGE)ikz`9L6{b7+xl z<>9QC^zW^_?7+D7>Fh2|7TWw~DNNDCGBcC=$*MS!Iwv2PdmD1TpA>>WxCM9Xp(S1> z%=3WZ$A>pe@66lEV2Tse%aV`GejeZFNML+lXqbvNo2X>JY?46SZx>g$DFSDo;3#UP zu}ut_wbk_Sn=n2Dqb<3!>E*3G&{(v+4fcmX;@4g(ou{Eo}}1~IP?pHa1y zU5Xl>NsA6&iug^3$@>Ro%a*)nX2i4FceU8Ioot+kjN!eVlAyd6=NIV zjv>4EnD!Y*?PI?SC0@D?4tE?D0Wgwh|GgGWI1Gf0uopurai97vG)L}Fu|?!T03H%w zsTr7K$v9v?;~U=7n4aA9#=R@CYj|}V&K&&vr;^Y!q<{ZGZ^>&HEQY3Gei52f01dr(M&{rG{31C@iv#)Ws7 zepp2^O^NPa*f?&3w>;VH5sl6$CKCivI6Z~{)%ceqmWyYMPyV%281i!}Ogyb5POKK$95B8O=Q6UL zhQ#LcvAD@`nl?IjFdW9$=|5~9_j3`>3pG5yUwdyfA1}9N=fR-jqm8dleYLW2(^KO% z2l}hdr1ye5DEUM{v_~3f#%M0gmtD!RL@(bDufIzntxsdaZFOvnNTJ!FXR=}*(Ri{= zjDttH6@=28%?Kr0JU|D?bG|Aaj_OG1r2}q3%&O3eRlcy9OBVcYD0HXsh&MoL+*To% zVF=cNPZFF^{pY&+s^&ndDm!J*aaV-2rD&D*XyLnj{yZhM_AIq{&agj!6}?{ZKk7HQ zvmrYmq5~hxA}V5<-!7j)dTKn?Qq**aP5iE^Wj5@O1NJ1lk$_T7p2IBQ1L)bD;Q2!; zYoCrlxaNyRqpi-p{FlE&mNtS*Re|lQF3}kxq(-zP;G0F6DCdouuh|6k1}0zEGS?K> zNo|5W8Ob3?`cm-p@;R7+Rzw`4vy>@-<1z6^fWKuoongY+6pCDumt2(y@AG{48P(T3 zcA~}u3gL=eczJr0kC!Kw0VL2KU1s~kxTv1lpuCFbgQEm&-6S)0qKX-Q`R%0YP|G{| z){_aqWv+5zG`?C%%ytDa=OU1|C+jZO;fsEF^h}PaT zAG_mP>gV$q6IQ=gkW6x(3l#(hx4YC1Pl-HaVa$yxy0Lh8lz?NNFDEi4QW)wa9wk>L zZy1_jx3p^zPF(zG)dV!?kuDZg3!|i@?(hOmbH4V>gR*nSw(zpvHYb6 z=&@cuNx!C4b3h+4j|ZHR1Jfd&PXj0NK*sc*ZwwJxdDfw1Q1C6slntRD+tL4kwpF1@ z{c|I)OL5B0dXPwJF8oi1pC_(S=%rzTPm}Eokvw6k9(_5)k*~silYFJC7hlrVzUb4$ zsEi{c&*tHx=dxeBhZ;gq&6$7jRV4e_C5=K-3spoY5-rQOe#pJ>A{>pGla~ z-@@7le%QkLfv2QCF5Ko zsU-Y!Z!7B+TP^djzzxThek-Y)|I4o#=;nQ03)yUtQ6 zzM+lQj*E-KTi0))6XK9>h2W?TkXbjzCim3$;$rr{IP(g2DWG~y#j$O;`&_OWk|A+x zb0~VfQ0Rn^g9%<*X{3Yfmx=MG?uwTQZoQPBfT10bQyk7Xy^a0~dD7`hU#i5Wgd#f( zHdc%sUGW9=WX@io87E%DmY&+erNWc29agZM-_rmm&}YmdRpJp>h#}o&6pTNWI?nbs z)B-GBZ_;hcIG#ji?Qb}O?>wo~sr$#BN?L6QC0WGo2fl(a+1z=Uze+pX-k|bmr9$SK z#Et%-R{>HY&kpt)v>xg9)+Tr2P|FL;Y0?Ew-*82@DjI#K~MK;|Lz6j{@qQm*kYX`X{w{AcTd4dQh<6=F1itK7iFY%SPH{8SMW5U%Ej37_A4Ix- z-BEIngx#?5neiXH{ySwm1{%IAJ|vsb=gdJEFBmQyt6D$E?v^-QNtMxg1=7i8h%m_!(rrY%@nc5V# zRw+eUEh(A-M&j6H&%4{k=g8?<4W$Y!hWi3)RZ3{kiH(P8ovU>()%D=oG@7Ky4t4Bg&Xz=R})q{v8(*Y(Z0RL{)V^|1nfFn zIE^Tj$KjSIgN^>-zVEQ8ejROZq|=zaz^FtxD+*2AH{1V@Bo3+(cAP9c-7f)0(Yno^ z6)qkqxIM=X-zbmJ68+8S0IcrFuhq!6)*6Xdl5@1VmeA*3N=e!1!d!JSn(P*O3;W2A zT-ZM|Y$zR#INzFlIGEGW+isiA?YWdKClSX$PY>1kyPTbL8KnN0DM5ugE%e#vK*bb_1{zeyXo1xIeCqiE9K>U2OGz>U@8# z$o5BC+qDBAk7`AB;ui`fxFoM7;fdkbJ#Z#+QR7{I@=JM~kkiQs3vHFK?R&JQ_mk)V zMgyJw~agcUPT|r{H3z9O5W?E=?xTT6az@^4XoV; zL@5jcyAI2;*^JHrI$FtK?9wsG-OK6|(I1>4YR}zoSA}DDSQs$6Xv*@olNs^Dcw7SA zhXeTZ*IW}S21Vp`@Z~oDuO7HYpy?XtZ9nsu)@fxGAG(W*3dCTKdD)2tKHIcwDK$}6 zrkm}Zm1$S-J7?(FSnhtuDm{<Z^e!0&1-hi~Z({r7GCuEQYXn$+dtOG6T&kxvk17A2X_XsbMh{?h@^I#Ve zfIOAibGOdFAi?%LaARBuqs%%=^gC?FP87R>2c}zvL`;zeY{3E-`Fkn_cUb0%&t8B! z2&~diHs|qDgjAf>ae0|{SZs{kM&kNw-mky`;D*ibhBraLc$Btu9mvHiOM4^WbAD(RaJLKy1nM zg&P@%MmbX=03e$0`UGlG`%nk%jo{!K;Yf}ge3xM(w|yfzlOjyBm;r4RX|0({AXT2e zQ@)qo&UZ_zlO#xkLB{!2m%_Yquyb};Z9bEvFrbqgzb%K$NRE8h+l`mFIO=@?FtyqX zlBHJC2@%_+Tt>5ePCG@$fnLJB!|;Wmru=WP5$#6lNPQQ!IF>Zanzz_CYtLi$B<^+x zT&BY{XqZDH%7Yenc@`<#0_`tch)HVp^wJ~efc|*L39m4w!^SZeX}?TC4jxO|+xhhU z+e|rs8ennoLMWV3G~xIAGC6x6l7;2zN_D4_=+d;me;F0hn>Y|wHVZfmDs1O>Ky`X} z9>I1yd!m0-_i1QCvd0w&uxSyw22C3VAKvsY{id2oagq(V#hCiTk{$=UX@1?;sQ<*V zLcA~xPahibDgXso#Tp`rQsKz^?=JUK#Cl@n=@tfLR0nA&xD+bDk->$Sb8hCt|2E3n z5HrzUr*LzIX^uRZ6jl2_syII1QL5={kvUtE8IM069+)Q;@}X7#uN6SSZp_7^msj5g zuy4Gx2mFpe|g|-WmcPmosR8c8!s{gOFs!p0F@wfNa9Y}b zbcR<1Z-MPe{sOVO^P#y!P?$Fv9|FA`#1>TKkQdUcSlj;-Tf$riJm0lU3Z>+l1mBNL zN<)YZJ9N}eOf6t`)iT@SWvnl~+7BcvnnqMtx(C?Er=kKQx2@em;WHqk+ndZN5hiLc zcnvHpx@kLz1Y9L#lfPHN+5cWm$H7Aq2{c49!0sO#TR5iHeNrlxTrSS0`x?Oym<8LC{_VA* zpP4I^7J5x|PUFW?UvY^1{!-F;uPvX|iZK$DS}9%nhCmvlH5&37Y99d0?Fp$QKSYX^ zU$e=afQ(&PeRuX%ai#uSLg`ARlU&}|5y&{h6lS#n^*5hBw=(jeuFe-m=24KJq^IY?-UysJ@p$};2pb*%FiiWY^8w@~u>Pyh~=f;uw zxhC=H#j$6fG`~+J3?-R&UoHFBR=OGpujXgI=x!R-cC8W0&8V9wnTU~#K0v>@+e<;a zh2s)ZJM~M7NG5$)CJ4wt@}5gV2>`J1FV~3cg64i6Lm2EVv)v)GeQ_kE2EME%O@O*g zowyEOF2alpHk@2H+q=g`L!6SQAA?W%boK&&!FlIke&`HZ8k9mkPa+p#IzMOs9P|Ec z>df;JH1Nkx`Oz|P19b~$9VVgj-R^L{Io*CCG;*wB26fj5XY{NcdWyAMMJ}jAUNL~U z)poG`^6q`aI_YhRYP?g|!>rvmY8j7R5+7sSzB#(bsK343Z7L>A!(1YBZy;Eqk#AJh zb}}<4UPMV{v(=J8$LE(2^Y4Bt31b=uzJ z&~Q9^&Ve|n5@30wpSJ1qTB;tn~$yXOB|?(oN|>;Cs1 z(q3FIL&-JEkD8x%y13}AdzqcXivo{ZjmyIu1aD@s{U?$QA1@!sW*M{nI3Bwp856<% zYgI<@I*70ttOzT@#^UdQj>JsY$;l3<_jDzT_N6t|=xmo9sQ$es0@xNXoRj;OYDxMz zbT@%5T*-7ZHAuhsTY68o@@#}sUX5D_oPHa$If;j{2U{*ffG*%e(p2xKv;O2)EyXq- zQMC{1`#lA-1U+2qm?vm9`LO!FU``z-^dYKy>PGzQ3tzRmfd;DJnw^8+(qg4&u_tqcwqr+{!PD z`bTdznBm!JWo>oV1$l^wr56a>fY zd24nv63}gHIJpvdWQ7(hKJyQ`O0$W46_$Ah+vH!opR-$T{Mr(zj%J~ z$J7aY3xP``;yN!Xpa1RCn_~-C=#&btMPpg)6*Lk1_qbr638G?T`ALm@YuU{ZfDsVg1r?=H`di6DccsWigOxN?tOz(zV zh2!z3bLUj_(MJTP5y{$m2$vTEjMf^3JLtQn2P=rG$Fn`&t!dIza7yjyeSN?|Z`;|# z>N4k>mQ~w8dkt=z(bfi6fqB>&!H%<$KL+968Lu?!<3`_47CYo^6Q=s_ zhqiDvY=d}mA2j*vUt7Df&QE#b18sbUy0f!yjE;ev$%Dae=6q6rIq=5ML(62HME*fc5tDy);PcGt2`5jZYsM+$#Eb-?I3}YJc!v&3KcF)GrnNp8%>(A ziX(a(&Dgp`b!#kqBB4bmpyHY*9}jv59#e#q>}qssWT$#DRJYb_dgxqgdz>8}GN&=Y z?$w3oFrQ(L1s}Xt9R9yBOkF-XjCr6!*0y3>{47AS6!YQsb*&-&PRboL;qFJ>-N*Yu z0oetD5=%hnFU7PknH9z=t@VKuNwWl;(Kl%AUfm<&Rh#0VM!NS!Ab^kS2DTEFlGOPk zKCv#o>p;zQL;4l3#Sa5V&|KGieFyRN&Q+IaXvF%sgw`f?mg{tNG2RAD0cwHrnN0*@ zL#&W|sC~Q~_2X*Cb*MJHl=GahL#aBwp#iD$e+myQ7%DUKAjLYSHbgAAn1D4ZKn?eUQEjyjT zsNFhCdK^H@Rg5KVN0X4<33@DCVN})8ALguj3=5QVXNIvixnIcv{GyprDS36dFG!Yi&7f!Ii{Q^^j@ubKtPFXwDhy_rMc!3}N*qWr!Fiz#6pRX~V zwTxLd;2JR}Vt)F+NKoOdACYyV!9d+yIyj)=$`{*U*!nU6U-->`7_dIXABrktp3Nh)D2vsbiv-7 zCWk@%s}nSpw&cp|qQNho{E**B%UDWx*z%0OaS7C!cir8VQ$Djeg;oI0WtO;`YC9@~ zA|g{pMHQr&d(;yp-D6Q}Yf6F-J;yNJj~#f*H+sD+7cd(yMIU}}K>J&e8oRyBSkU52a9ekB^N3h~Be6M0IcI ztbL*xHIC408+%0?!j6&z{vCo0bG9VFt@D)CdK89;cus*p^2FA0X$ri0gzd}ROld*x zegRLUt!y=#ZS-UT?>CyAl>j1@q(-uS>ClM4k>~Zl_xu+7?)`heoDoRbnTuEw1Yz6BNYFk1NEr2KJ1^r=41ls0g zIN2p_Q=0@F_&t#sr-tUnNYmqiaZ1fsJ?<2pD&RRuOx@>B+7PLSk5Axg73dzQqMD0`=XJdqsNd^AN=o zLR9SCl7cg2W;0W9JbGby!IfA0FCp*#K2l8|*Za|8*|8W>Wv!2E&5XzgiJV7$d_9OE z!g7dnZvkwm%l4?>wYg;34y}ueHc{ECR-8-?Z!anNdlhuQTZX9C6oXp<1Os9t+cNsw z=iM3F@g{cS1!EK9vuu?wme+EZC%D+P@oX_cww}<^1_b-;+-o#`NIIts;Ei6Jwi)0L zjv$5i_cn)O;LV-M(?_Sik^^S>XI1;B4$)87;)Dl$^PP7PYJuNEbd?-1DS-WJz;-W+ zEH;r;nl-Y`?dL33Lo|W|DxqqU$iE(fPn|(A*mIqsS6;-=$U<#g$1=yOxl+p3m{PzO zrQvy;wYle7kjZJDvwWl6Ap1Ey=y!p|$MYuc0nWDE1GdeXENkGhynY^9O_@|pz|Sqb zYp-`h%X^{Aj#`VZs~e@3?cHYVf((?e&V4vI&uItI^{TG2`whzp$@TZY^&u$!Ust7T zkW}29!e;~vSGU{s{OW^bQ(APnaIeF>Xg^ytU0`DdR~{`4{p;x)(woDxN1(Z6qy(t_ z=k3r>A;e?o*f)OiAC;R&{2Cc{@DIZZW$8O>>%V+r3M-kC8RRMCiWaU{&x*;2Evb&#_;BdQvu?wIR**F* zm;_2-XW1Tn7)8oy99-$rAkMvwbG%^#XY2niA+cLT9DKkVfHKAekm8Uon zeNKo=m|DBhOVB%4P^+c(kB%5TMecf{^Z>>yNL4gh+f&0sh2isHiqJXaEbl-!aWB_N zS{;w;`MAHUPgzeWq$w73E4zLx(vV<+$S#i-LVcusy-xxuR z{Cg>df6s!|nbk?0_M14suv^yQq$jlB=QDdkNB@>OdEd<*Xa*3%1Ee-CS)QoM`@YRy zIW=7UF$3!2%zWAvL(C;$H--}(GmR7!HG$>gd0tzR?EM!vPh+~WH4vsVO6UWpG>gc^ zh#SK9OEU3LLp$LKvuI*tfkip$kqHQ%DHHFyLyPZ2d}oFYhpMskQ3K?E%x!H`;p;;X zF?WkLqMo_O2X)1)_nSjRXmcxpzwm1tTTaKLRm;R`b{I?JM5aeeo?fF>f|4G{mZoRO zyDZLB8&1Dk_{mBo`7m5>oos5nX5 zH4AjdF=z@W-UIxfUU-UOhUs72i+_TLC1ce9<~5Zk8%oc5OtDMkCNca-uT9GqN|K6N zk4MmyV~a=xHm!qvx`?j}B6z0e_CaxYIeze}vitEaa{3W>6DuzMibD12_Gvd7B3@w- zx9kd@@&}s__&!9^*V}{tkC+H^n0ft#CVhSkd~ZZ>RZ$Hf@=X@ zEL&C^7kn*x7hWv5y9YIv^u`3k)$=b(|F#nW$w^>D`d!*?@dU%p5%Uj1k8)tG2(Equxmby-k_FXJkukL82vT@e1q{}8P#0ON zc2RZ#m^m>{uzc(01cqu zBXSgm48kCj-$Q2eZ`9AYS;_`SksFoG;E%rq#kW(R?c%$27Qr=#C>P4FVx~IL_U@Z{ zBm0BvX!Bdmq>e;HW;JJ|L2?=A5Dm^dwjWZe{t;(85^e@%F-%hP_Fc9ux6%JCbe>lhqe&P8@Yaq5F*YA1E zu7#BtO2!h9;i7FAZvIpG#-a%1(ABV zwr^%apprnW)-{2-yESPy`Zigt5{S<+b8s_$YDSM$Sm$IE?DJHg`H5}m;IF`+wgjmrU1*xR9?qa?`rtl>C4kq z5P8320LKqVBkdZ?!fq%tZ`E1B5{h43CdLFrBF0kM7ap%A;jxqRg_B95+w~0H!2n$C zB3y*rmq#zN>k}ivOl6%0FSE2BfXYVfbUl}XU5>k^}Vg>q1`o+WMOYW z5z@^?i)6`4Est;3DpVo^S4^KCl9TT4w8k{0^6aI_F*#>9#knPo{^I<8gNBBlf51%q zld7ThfP1oV_Pjr|Ub=txh*PMBobiJq@CRPGOPV*Jkaz+`XY?w8Fe$(bf$t<@w8@Z# zxxtz26^|{C*?`cXz(U=5iD*u3=9ihUMT+2N3pOPlrg`uj4d(R zXJefEpkp@l0^l9n=wsOnyEdFvW$QOqPI+dC7GD zaJrs|s~=ND<6YmS0w#lp53ZTW#{8KBR&Jfa>B|$GddcUnCpd56(VIa1ocZgMi{bS9 zKf-c!M#aiHxqKJZFz8;v#U^EY_S*YMP{GR8cu_;Pe;4P;f?>#2Uc^BuYgjoV# zRIBsT;F`o#g4nZs)=XBf<;pM|&ey#VuVde>m@ZP_XTL{;bI>t zsEYoS+R*`19tB7HKiBnKucr@E25@E5Y07keID8$QP?d0;E@j;Y6(L)c#JVEaojRnu0eI#b@=ypoUc@`ML=_DL~`g3j)uFp!X z0a+j)K`Dlbk!vjlHjw`m^ukQ`ueRj8$fLIUiHrW8wNJ7qFXA%WJD4?;t%CBh$wNKL z-kmc1H&xE0bFgrze1KWG!E&aP#t_9_;7;g-+WF^ud+cfB`0;9 zi~*J>A0Fa!3$h2mQ^ww8&rcge7-#dAO%Pa-20M?Ub~GLAk!Kyr`+o=&_BQ6Jdf4*v zkWU;L^}PQC&-+PC&ce+v#C(dvG`X@eF4hX1Sapc%fIKI@3@0S`TMo47UDp)ks(qn) zXrU1Jz58uGmfdZ&!D&-3Dgd{~ox91W`udRrR;=G-(6PAW>%YE#o>vD#hCrpT?n=fc znM;978;JKQJYR?z#AKF6NT`-n1ZWTc?&POkwu%u<1}vn^`o$O#DbH_~Q4I780GKm) zbSS1$UlH$KkSq8C?_$@D3lhmP{{%VEJPs2&kK^WB_Yb}*06^&MIeUQn-p*fW9{nJM zP&2Pfu=NFPtPmm==G@ugTAwd(9;lTLqyqvtud5XomvOUh2QJsZv}7p{*nmY5xNTan zH~TW#%_m+y|06O9b07UT9^9W@yj04$P>=)CF3!y_BmB0CIaa@O;jX$yXbt#S01z@0 zU66&d-eld2mJ3ouTv#ee1-4V+WQB%#uAP|s83zzM#v*zAfcTMfz`L5cOF9`<4h9ON zhv7z)1arsTG>44~UhKd8Hzz)OJKHj7nmfQB%JZUpLjv}6_mYU}c|a1YVmfnw)-=ng z4)3teSNGR;@5U0gWCocKlP2DW{!<^eaXTz;KyI{dgzyBhTBdye=En*++shggkafS>`sOpEq=TOd-98am?d5??#xmO;=sg58$idYt5squAZ8=hn5=q> zNeOXHmxb(DtDDp;28zt{!|OQ}iXR{O!r>qgn>8};iK)OXnR&Oi{ash^fgn|_56j!{ z4Z8s`5=A&9vM545UTUX$KN`7g|HN)G`44@Ny1~!rR=Es>GO|>iAiyPh(G=awYszjP zbwVvnEBJc?)Ll`m3A_YrrQgDF>S)vn-dw8;T_<;g4}U2KVonzq!cUEV<;os;d5al( z$}4&Ft|mY&ss1>Dc)iNH1vEZq7|)eJJH!`;Lgx(ft3HIC|85%nZom--;zyzok8Z7%rH8eu>l2SvJiyouVbhq(JDUh`*(C?${{8LOFcti(NF;tMOiMR&Mu7DjJBz05Fb-|tuE zKY62d%ovRijQbwm=Cq9^GKl^xRG6~s6C517HbDY5+9z0Rd?>Hxx2>~SDxcos zxoP}2a9CtB0LejT44}0Ai*nyS*t$y8_e55cy~|HblXWTqrL4nosHN9|I>NQs+{>wi zA;E_R$=Luwv^MVrT|Lh>p!TxLm6RFog-pdY?n@~#y4q#U(}oXQ)SpnbP_TizA1!X2 zoc4=ew==j#SrR_1!aY&V4LB(^1Lr0TC{cu>rknRqla(l^!V{yEGFf|oWmF5#UQ~xO zE3*MHMAr`vaX6W^VHl~PnD#YaM!!KD2hrk6HtF#ku;N@VN z^A^2-#@k^X=xAlJgg_mrGfQqwrEkC&CWJch$oi16R=@D~Tsd92yFBigFDT5^-j}^O z8hKImY!eJ}y+ZiiJSrxzbKZ=o7E{HkQ6SkJIrL^@KWMe?{=VuBEvM(avn{@T`;5x( z5UOUTca|-Y7$s1SEd~#;Y0iLGHylR%#g!WYt*yyw_nIi8 zc0rTd$D+{c$;QcIEn}o(5mw`s5pNJnHTBbDOu|OGQm_{;8c@sW(T*%GAz=pFBrd~z zk0#2sNAJa#j&M>0GIS2;Ti(@pBfKNhM!N##T&o@n4(meWYL9iJmNX2yjB-k7+@<5P zurCeo>cTdT*)Fd~_~j`~nUvJnd6*u5jW9nVyrv_3smfm@_X zDo)))0muD)X2A*gjrmWm^JGMVz&=3Xq-8g-bE|C0!?)#^)<}+wX-o~&4DKUl*^?}*R zixzD^_xlJK(yHS`8AQu)MLpnLcog~WzDeMp@h^$d!cS|_H?hn@#_}3Yvfbvl-l3Xq zBi!M#{q8$0e_kjJez~^$goEYJE&kgK#+}z)GueTkTj&b;k2qycKc3-6-!;?`ljfv= z0=o8Kr0X?9seDAM-rTQM@&6 z=H(hB9w!{f5I5K>m^8Aq#K12>R;ob5RSZh#;7_Vh^`+2+-!cd_W2400RV&I2ut(X& zJDugYS9iYdrcoL1xu9VnC}5peZXmiR62IB#$s7QrAi3~y`s~y08)bX$(Y$C#xVssv z@y>a7WzY9_jua(}k=)xq=Z^cK6Gr|b)&>l*WOsmcXMwZck`%RAE<8KMELIrS_HC0O zAt=QIr7!%s5cpnRp8myDnB5FSOP!^{a}r|yMjaM2;)E^-kTXDcvE6e=&sJyv$)O?m z+fO~*iDT51$7k_lJu^rz92rtdXWQ+9e_uF}-)DDwx=M?tmBE-j_7Scw-k@|?0{*gF zVZ3^1al!hc+}IBd*~*&r|R zWW=Z^T{WC%Uml4h4C&m?UQ98(RcyE)8pllp%a0aKh7y_nb4LV+xD?^CO6FHN*~17u zAS_K^3J#wPmi*@=FeoMWio-`jxOK3{*n{qU<L0|(`^|TpiN0ZXNJfHDcSICn87(E-{BotqNi~Gg11PpoYZ+}hjs8OH z+<2&n5PA1Mj|i&eaS@)M2rO}DK90^K$`f-(lX7#5m)Ja;#!+W$zRsGLJTrdeLK8c+Nd@MTmX`92d3p1k%u0~eiw z%I^I(k>S^){d03G`<{l6P--x%PqR?{P(}|rAFkE+OoT= za0J}gV@Azr^=l)GTG;caX9El#A;k4v9u=L&dTbe}9`>IaoX1k0bl2&YP6fs@_F|d< zw2W7^Fc|EWj^e8p#%FWEA3FI~Q#Kg4SDHcp=P>`?H@MI~cW>ioqeUWl>uw)V5GPlyVH@Qt@{Wn9VM zoYWCm!$A?SF6rwsruNp<=|SeO8AM$aXXUZsx38MeX&{U z{Qur0fo?><5VZE(+6fx&P!MXZl$+em)7YdF^jF5M*cBzsF>f zLZbx+s_e00daWQsbLxNOP(j9Fk+~HLxRC0WBL10KTwvPx=+5p7d<1!E);@~-3%n?_ zO}_0DDF=RdJfXJe%thW7?Rv9d5rFUE86e|Xkk6&82RsRn!l&b!Dpni`w@LT+{a=ZG zXQ|K2%|zqCjosC!l3B*!Ig)$S0Y8gf)1Bzu!;pX;AU324xavpLVlA)+5nfW$M_uIY z_m$VrP|)%mlCAU}Pz1b4q5mk#O8m}4W4lvNw+@sgp=D8bv@e1}XMcaFX91O`XlY+S zBaqmVNeg?@g1JW;U%vy60!a;7E95vPZO%u4DwTj~HP|ecDBD<}wUq6=lzV9gZQhX> zPX)?245>MXcp|5LE5il3927%t8#`lfV*jMq*OU-X)@@K77Qi_9>*Kw7$vsqV*YB9gK7$H-{ z`qj=^Ut`G{-lA3XIc9FE;{f%>$hhRhf*4(thXW#&zOsFq+aqJ6w>PVUzU!pb@LV&d z1B9Vpu*+4>mUG;Ep|S#xlJ+f)XnOPa&16M#zRr4vi2NIsa&=&mc z{|0ENBz~Eoi$?0g)*(!ACL2+y!6Qj&Sa?`zs%OdF`I__9l>`vrj=#o}6>1R)SLp4m zlX6>p=v5^?FJ$rTS7yAu0QoE^pE1jNkBx-pL8$hvsUgNoiLKr=*!xU27M);r(F2*V zdWH~?@OZ6o9x9khP!GI5BROrBnvGAV=`C zSEmE)I^?NuGfLAewrkWH3rKUksB~tI9@|MVR9a+6e<(V%JNh`Fi`Y&wKpfG|Voxtj zz;CCO6j}LwC;DIu3W1ojvX~Q{5wa zrGykK!=1--?+l)GgN=Q=w0aLLOfH9yq0MV9SgUz?J0=Y^;)qdn1ZGGh)3J_~_Wg-cDRGbmPbXq+=57i77w{wKs%PY` zK^3Exn_8zYogIbOp-@H~Z3Om=2LET-v`f3EJvPbDymu-1) zE$Xm+H@Fmb!5@2O+QD{r?S{uTEUci4kM1geb0kNxb9TD!G?32~#}e0rxNZ<|DbZRUW>nVJuCpoSZmqb;N?!P)m%x@_&Ps#-*@i ztri0Uo0Jf`WU*KEhjOirj8et_baI;;&t#UU*ztmrel<*u7mifC|J^d`v3SiO<#4F0 z@1(bGgf7&`UDu#41r{1Ce0~`5ZiB18HXT3e`S#<*lRT7bPn~H;&9if@*aLR99vG!w zp6jFh*oveXo;$v7Z~39XgJAa<%>h$aelT!9X>?6K=V;{z5;@#82sg&6*Li6$U2E2O zBJvd^D3=)t=y-TwOBZIYj|A_0(tCzUPya=asw-~jk6N&fy3Y)ZsGrj%r66<~cW0b> zqG4#h2;0JyF+c9R^8x?y_4#|!*G~4+_vekH%2Pv~jSmZ<*Vay@v@(2@q7n-107#*j zp_eC9(${1TkMfyHmLDSwxv&ZSRMT6=8&k$_o!OeO*zOXXo?xX#hq5#NB{yH{Wz{39I8O-G|vAn zMiF&sxM|bB_{f?RUH-M!094Q*s!+*MtQ=$CW*IEwV&8c z(M*{!d;Wc%?^piEj?=m6dJq1C*mDXQVlA$Z7OoGUD5=n_WIQ-;Cm~E7@dPw>19Djt zN6>?jL6Ecqc^i+-w!I*>r@!6xB8cZ3n5uGObw{?b)=%E9+y=dBs^_ib?wFHaDsDPi zx3j4Ky9cLrM;|R7=5BAiNI~s$Ak>BmHMSl@~6lBO^+Y?xZ0~qi#Iz;`#GVKHVn>|&2OmbJFEn5SMs+vwZgO-{DDhm(f}L|T+hJex0(Sid5rF*| zPs@QK;-`H*h%s`9e5tt5p&5dj`O?@4&Yb4~BFjz}OruTs*%?l8%iqE?Z<&VD~D~!1r}!tH>($&XD*E$3j=SEO1(E06lK@XlX{<1QmR^umL}Hk>kFAQAo#%A z8ki=!jC8as<|geG?8%MVUU3WoH>*E|~pIb7W@(ZpGTmoX7Oq(Xwkg8|1ei& zK&v(^eeD5L_#I8GPS=bQo22VmEwv)MtyBHMS*NS-Y{>L?r_PlJJFM#LhW+jjRJfxg zzyF7=>@NBy4`gYcClV-ch(4>WhL(RaZn8k{s4Wu!GDJtC;?sqLuHe^0N@#p$B2*nN zC@`{=OO4T2OD`7$%vPMS&Kou`6awH`w;@>@@*)#eO=^IL*>ndBFiMI3ps>{a8oFkG z7kF_OmFb7(OOvl;J1I6>%PXZ+a0<0P!`2j$SWdwd>G#}x*i0fR;Syb#x3EuS=_>xKg;flDwiiqLSq;Dks`&u#2=?yf zZhBt7t+0f&N!#o3dXhK$r87O~Ky(4U4@gV-7)jZz)XH@ZU%$ z?Iu!_>VIF=5quGm>P4gWceJ3~{rc8ZI56xQkGh(7J=xi*3JnXwNI}|jm^o?U7oK0z zb8<{``C0QoGwtcu=4B-FBsn%fuDo&a$}-5v(|(EN2yCvqIU-=$M=t`H*yF|sR4GIE z8~OCcc**8r;PdWdxe-#9OE_#&sVH(6<6 zmlzN&@67}odI90o)D z{3uRN_uRZ$%W($feZo@eQhK-vo8SXJaZr~Z+;-Hr;J>$DOxmP6 z1l`s0;AZQ;j=1co(Bs%c|0{ZDxIx;IxK>ixVt<|3-#$OU5jEc3fDnbI1tKF^8@m$uddYLm9JW%8z`&xGjMHlVq5O0z?f0l$2q?GLPoWJFBUR&Ud?#bo z;r+5>Eb*2CpJHfwK(5OG$pA~{}>llDYE1#%y@1iE@Y1t2~G3i6iFXTQgZuS2i_lD}! z1wJvbg@id8uk|J9Hq^aAQFFqX5<{Zt?sSg==#!Gd7^(DDLt?E>hnrsdp!WfXFw6}cGA6kc~dg>m| zW(E}dKv~nMu9SilG(;z=S3372EB>Pj>n@DQdj7J##+}ukyhdtCpIG&=IG_cGxIvxz zx?O%|I(lt<_-z8w+a&VbAJp{&Lnp=n{DXfb7E)lhlVNJ}0qth+hls@umi44ZaHb9$ ztCQ|h6RWM1>z9i|;an_(1&@A5{iLM?uJ`5FQrY6RlzIghA-vPr?zSJ>8JJoGG^$3UD59Y-bA8@4FbzP4qZ}dh+i#iG~Y20EJp=-?D zHpNbD?H+)>x?`pFYGOs7s7%>ebeyV7NRvxQ#LetLz9lDa_jiodJVv(4MLlr1?fvTT zRdk{(r!xH2$b}ccO@W*=e^qF04d(0C`v%Hmm*1%Wp3%{iWGUDcNg$hQE@Hc>^%>@r zN1BgM(c%55aE%(t6+OUf`{n?!%N#~NcdZQ=Q7Fa0FpAWX(^AmJAh5)q!JPwS%uBg^ z9d-re$~YIkPTe=du(?}0^-##*zXoS2&sVYQ9%Kn-_h&_py-Ta;&T(2%nT@h)@*OM?4j%?Ok`L`(0*^w^{3?pZk3cp_me)>Ah8*S!y`hdqkP z>KbJSwy`aImWnnLvsxCLw5I4%L6_f1;=dlC)`X}xmFed-E#^pSI8Dr_0_+~g1=j+t zZea4$!XvRFd^9bBFF=KF!dp{Rax2#Y^YP)=yrb80L#$E%m`JVZ;xDK=6&{8_GpZ3l z#J-?tIT@bT=V~HKEsoF3Py3ZgVIoYMx?M}B2giB_XoHRE&SYxIM2+v%t%@R9215wz z@xQPRF)zF-8WT%fnH2lSOt&H>fTho8!Z|=XIOju`Oa{`pIbOloo2plGq2_2|@LT+S zP;k+>o7m0*XZ#JHY-$nTNA$k_BasK}|%`QQXMsWS0nkahi5 z?B{_u9#E+MgY#)!qEy zR*5`Aut3+Zsq}Qw&4GWpnJ2ihDX)IY!wAS+B~p5NYvtX;T*CziI=n>BKUJSpqwJWS zb02k_YpdJtnB)<@&d}$F6rXbPB}No~z82=g__@GT6{L1J=pepkLX&J0YvGnk&Tqq+&cR@}cqba|!XBiI+(v2M-q zPyG*mmxvOvY(-S#7;{sS7MD?4_I^DN6U49*d1GZwO1gqD^rzWx0OBki+)$1GiwW0W{FG;ZUn8q{8_oiRXV5-_|>lnKrXvGWuMdGnMT1HVjgGIF; z2H|(G)V=UpIFN}oJ3DEJ&r4Aw;d9MrN^oYHu;Z4pD0~Ih&WpuKpDy8(j7mCGIqm=q zzZIH_1*pMO8QB7IUYb=C=1Jt>v+!?WTHh6aUH(GCI4ox5O+Id1S*9&vxAk82=u5{> zwWqiF&k#JahmK`UV}1Cpwlqe<&C=+_u0F``_SWjREDX*L)Es7f@l77m*3Z~ZbP%yb z4zHW%=6T~Iz4NjhXG517<=bGlH=-{Q54+bozzU$rgZUmtMuH1J9@a?an=l;XTLekq zTK7`WAFDkCLaQy`r8*f`gB985tB}SmSC?Ev&h_e&SbwcaW0b@du~To zHe+r0#v+HN#e(qto4xbSnC$waT4M zW#j3d^yJKx{|+9pfB|PPpobuI3Jh8lYXQ$C#8j<@AA|ceMa(@VQ-<+akYS%Wz>^-$ zG1<+5fF=@)!dv%ezXwkm{!ZCGR1HHbXtpO}Y}BTmDtpwLKiO14!F!&`PdNNL z^J^b`kLETuJxog03$(!lD5G#H`H^H_)zDWpK>nWxWwXwOXvppX2**Fu9OI+Gpi9pv z=gRIbw$}S_O3N61A^Y#`RqN}V$UX!^Br1crhrzxc*{t6!0Vf0{ruS&Gob)ooQ?}MzX9oOc(vcaT zImrLvY+fM1Qc)7BlKhq;UiT=MU=Bda`Xm+x#Hj3&cxD^VC1-#zy@Y8uAfDF$%4l;q z0tG8N>p=Gq*eK_bG8H5rKbMl3e=s2M)2oL!d}wm^VJKiG;P(dWX>5hS976Wc%Rd5r z0J7Ku*2QG7`*2@KbsWe>$pZcX(;Zi`B$7MLKmpdJ{C?*DmI{zDJq9evWG;TJqHDN2Pbeh? zyc=7cW?%F-yFRfH#9fmn8q}=R%Kz0H;oDo=upkx()bN!&0YsE6yz7X&);x zwK8{4v92~*Z{vE(XfgPE{>XVi)Jv8H0%rATvTqL1FI7vSqjK+)to#whLeUtk;P$KZ z9lga7#HQUW&eff1Aepv%n~}w)v2&e}(<6J99J9(aaZ3ytxAT*RSeV%&PJ zR%~4tYLLUX&D2ghOObi^1d?Z$ufYNSjGuj7q?@$;I*HJavTYU%q$Y@Ee+;EL1vnjd zh!O>G&k9=V1_k43!2!B@h0;jI47}s*419&T>u8Wd*(W$IQb)7e%pO3{)ROt7=9>-! zK^0AExQzdR*tU7jgp5IOQVUSZr_-GB6EHQW|D<)#rgbQ!pI?>9$Iokj(bMH{Ycn36 z3Fxz+0-Lh0NuvsPs5w0#;{w9p3w{p4m~l|g>9dEyL`VpY_TD$XTwvGRdiFN|UdN~z zVvlV;()+raKzc7pz!XTu`@wBoSJ^FcEA0B~;2|>zsnOZ#ICG%DW99cOyTtc#>M`!+ zXnd1gT>IpZ(w&ftk*p<~&pm=)di^Z@m}9UbH-JvvvDvi_Ib}S9x^4ASU+$Q&iMJ1( zfbI zW;y>UkTe<(7^6lIP1Pih5IC3HbZ1GNQ8+POzW9nd&x}mG06(agsqfWlytsXaP*6r~ z7ws^4+2hFGaOd#g|FGgUUmCI3$p1C2&Ydj{^!JHGzYdlllMeR)3`XIL;?j#W+YpaN z4;2^fR-qO0t2`xS6tVLET0WY_%+HR;rgSH;^*n;KPV8F+;fnSj;+jD~c1UeYfr8PQ z4CCA3ud;+gjS!_X!ZQTcnC(8AaxBL1x2Hf&~y#eb{wnrc69yI#$ISclbQu@S2YSgbRRk9a$RrTZpM zP@r-saqoRi65|+k-Il=!gN#L^(()DlqNE`5`^}M(Zeto^nBs3r$?6THuo9{GBYTNn z9HPWvpC`!*o;kt|QC6HN zf9b&flf|7?+pN8An7gc{-$(QOS%9qy4DvuC6Nmc7DSO)mNKj3Jm#Ipi};<4E@uRE_KbD1>+_jX2X%GAEYnCE z3C#<&X~R`N?h%~SOWNq~*J%2A?Ly7A$iV{yOtp)2fE)B6p7sQHbG)ZEQNH_DN>vIj zOoQf~fL|*93%k1nPVPk`uL2*Q&&(dlIDQKc^FtU|Y@}coL9utB%EO-chB7pP+KgzY z_|&DnP+Z536R)Z(4Hbxb=8VbA>ow%xN7(@uy@W#d-D9a_G0A7iDO9NjQIhCH-)k6MD4HzSL6 zj{`e|B4X$$EVIfqMe}?g2Kn5a=U(2{EybJ1?;23{a4ST4=9KgHzz#d5HIKLf_QLvT zpJdGOL%N1xM2uIp)d%`CaE1dO2VoL-sO+mGB?w`c7!%wUqx=izzXCbJ5JZ{@Q}3>bSnWnn4D$Q5qBW!2ipj9 zKbygW5LUKuhRQqJ1y(UAdx%O)N1YKSl3QGuh^OI499h;Ci%m%@8*It0m+p~;yvzK> zr7|(ru&9mn27|@w0qEcm?&mXn59d|On!)wI>{Yn3m>TW4K;T)P2EK)CIGI+kN&Uvr zDiKym`Kd6~oaxGQ5By+qTViEG^Ap#U+Q*@=eqWP4{2#$v>?Zbde5<07CVdmh0Zx2E zb!#O=3`KVhIEmjjJ0?fxBoa5AFhL4Nb!0=rp~skUMHK=0`R!9bDx}1Id|eo(a@8^d z?1(^&``J;8MneHipH~Nm!{0z_^dak=6s7D7phm7GGldFN!>8Q2jL~;cZD(>PVM&rk zW_yk{|C0c|hsyAhRWje9d&C+YNzZj51e-CW&t^pGUxB$W;ebHZ&N^}zO8Ktp+$iKX zdO$PnP$W^ouH368;}Vssdz^J6 zTGI^HU-58xQu?MT*>UYQE#Ja0eIetnG$i@r@V+XdD!s$=CW4N9-=gbJT{}4=tZ66@ z?B?x3jKYiOlQ&K|YYs*3<)?syCox6tq|^%SGJlL)R)a0cgc0>D>5q;$tFvoe;2j9y zYH64lbgE`7?8)^WCWZR;onoM&n9gKJ{gX0yJChUBLR`j+=l6qMkTpXt5u5J9h~ zAz^Q;E@CAy<%|J&MZxm4>4ymRJRas}Yuu=II4kcvv7WZ)_1u1&b+#$a+wN6No#AhP{VNc<_BOx>gSgX@UoHYUyy131D zpR>9vK$shwr+uYYn%3)fV>oL{u)lol`m|1iR)ul9w3^ndbgzB7!plz+%iJ>XuRFFv|Zg;f1x?bim#@q=t4byTB3Dor}TOeg7W@z`d7ci;HyksV!H$ zi$`^FK>3oNgH-fG)<_XpPXD8qDn25TfR}*mZam=tW`NIW@LtAt_5fL@D#gAD>E@fR zmLP0ynsBeUg8&Pe%`n};ck2bNDq6|2&D_53H`&$8lUCOnY|i?-=qr@3FgZJ+J_za+ z!ZmRE$V7~w<+V%+&0w5dgb#{{d7(h+JfUJPm9XoUIg99~q4V^}PS28nOY(R3vgA(i ze=a?pYOMO{yq1DH4ws_ifekl8l6yd_axi~c#cFV6v{ukD8vtD>cmDG;L*%dpC3;uX z=F_%DtkhS(tv3KtCSHz6;l5b&y3eV2F#Iq-%~4wpiztXyzlWX^h2Olze-&r z9*}ANp9`Is8m!mt9r24rcaB45lhgp=tD`PSAH(p{qWdkQh?yk)<1J6|rJr9pZHT=Q zlS5#@qOY?|8&aOz#p7B+BhuisChY@!Up}lBvV|%f}TxHaA;_S{T<=<2p8A` z@I;kAv3d?k+Gc*=+=37C<(0Vh3xgt*B>H%L`VS(u##%My++bA#h!LeGHW}>V|GJv> zDi3x)v!=Ta(cn>hS)jU~H4%K^-S2l2Wk0*X8wVg$mjWEzpVm{UbS|>CZ7NL_#q&78 zoA#J{_56jGtJ7oyc0+i@)t=xJ{`JA*#!XGfVQ=t=H(2*nxkV zZVl64v&Z-w>Eh}YFxa653=>$;3|a+0frrWHS$1$q5_$(^q_}T$PKcZBK?Wuh7BTtx zZhc4rZj~`6)wsz7R1-X?hCrv^O4mnB$*>6#%}=;d+g01u*Ax2}YiOPW2bdmYd>D%l z!9`BHWsSYw9UY<8!bKqtDjAfXn9YoY;v=Zy&g2SG$sHuR`0hj(rM4ej$@o||MWx9C zu5|Oz1}J^OQv7dFM|BIbbqUv!WiXdo(VC*08>|P-f=hKZ{eC6xY<*6-?EC#(*i4gx zEzMx;7b3AF;n3dmbO^VW`>%ST7(>Gc-Rw(6ks;r1vv7qp)U-4jB!P`_6n-8HI@&Z5i07 z?yIs_!Q3yMWJy#7fhpx)HNnwY*zd(rs2K&|oh9-3s8mVyL87E}LA42(?t$np!I&e3 zNSVb=V86RQJ+U$@%BOZuYkuzlf_YNeFC|p--QE}^T`zFNDrd2&uXc0%lTo#=6u+pb z=l~R}wcoM$=+8Cjk(O|-LX9%-PT9IYmEzr95$DO&7qc5nTbJOuJ82US}2pp_DM45Fn@Ep&}aWCg_w9UFRMbd{KP_^Po< zK?dU?#VOcaEArdmrm~m5AMd!Ik87f9D8dHaG|#^eiMu*5UIuDSgo(T>5=iMOM|jlEGoU z?=N*jz};t>kb6y~8zS?qT{v~+^yZ*RC|LL=t!K!SXO7bWp+^wTjd zqgIP4xw_gMzJ8ilSLRJr4^nXk2Xz@5R?-L<2~Ex5K&U}d`Uiuxoxfrju`gVN%+%J> z6!+MdsKZ;DJULiubZ3lCI!MejRQ0LOyk-+P0K7ZqI);?i12NsfOLKzCz}?l}aNTG= zqZ;@(%%p@kcnwPaSsrQ!<4JVz1$frBO-YCRF@>cKZF=2D=$4xl6F>vMI&VHe=W^dg|^fWbjg zlk*~DK6&8r2`;ikJ3Fk+#?L4_-MoUfHM#=<%ha)hktZXCIYXiZ8;8+cxYjJFDVu$Vu z{ygESZ+32=UU4onP&kQ2$!R-y#wPB!L(TtDWteX<^_j}F6(XBnt()bXm0V^dSWcP% zr@Z|>ROmVNm?~iqYu|6dxqpS+20G+~sXLgbIrtlo{ZCO~un!LwPCh^smo%pQfOeQ$ z5M&Ufc%8d=hjtk`TXe@#?Le#9YyP{8d&wW4;uzI|2Ceu7iFA}81Z3c~=b~;i_5UGA zK;vMdNT)HdabWL+DkDtDtwh$3*^+Z4|5cWZ>#$V|?29^>f19N$4P*>Bt;AZZN+n(n zyF?zvpe%1Cn2j_0mpztv!1pbCRccJkXIbu!5V1KVHsj`CD*HQ5`f`1ot(beC*N9_A zJ=ol>&-H;5{-i}$*fLoazuY^s){KbTN?CdQ%XX(!i;T-Cryusfa@GMHqW1O?pE4H$ z0t(j?E{S~~Ca#b)Jh7?5$PD(_?$1%BnMZ^!0%~hdrLuSzBw$aX`{E}W|0n`Ku-i?M zwaz|^i`e+5wm+|T>aPc+j$cHmGuypDKnB5@D`zbNk-y*KzipzlhWqMUHpixjuLL=5 z3-CA``hRK!Qbz%->a%fA@kC!xShv!@GY~X8yH_KIQ~faj9Ef$zUJhyK7L5k%GPH%V zVqP?5==n>Ts1TB2ZS&iyc*Qn3z~thEH*mVf+`XfNC&9ken+l^};%C8MWxa8L*VZi#J(#&BSZ^15`Avvj)1fRYy!NS9wl{Zms^B1R6zYwU@=SQA-QTX zSMWIKHw9>!KAti`RH)Rzk)Z-Lu{mZ0aK4*# z0^3P3jXHMdl&jOQI=%9CQBK;N3`e8@KpsCNn`uMUZDpwOnR`iNwoR&$V!%Lrz)F3N zzE&0Sf|`x5CD-@t3%028SEW1}(-wvnAa4p4DwiHw#iEQLB>C%tdAn(4o#Dun7$U1r zMRhuFnv;ZySb`JHK5vOkVjD%&>`8=yX7s14+o!fywq#)%l5(@6I?L-75RqLOipw^qdw2o!z*-(BX-iJKN^cD{`Yq0)vT418A1@MTb3WfJW5la2uPqmxu;fnU} z`TAgv|B=+!CDo$ES(MH0S#BZyq`Qwmbk?(4d##m=96X1^ z=v&xy5Q!a6FwEE^+K8wks+alGjm`M5P_W}?)IT_^q_;0#8|#)y7yJFP{BJy+%Bg1( z&y9tn{y!fm0YV=iZIfIO{_unace9cJMqtbhpg|5(D%paUoY_Wv3?xn~7x+ta9K5k` ziRlbbUtnA7o1q>=N9O-W(ltis)i&$cjcwbu?KEy|+fHMzz+qQjnzVkcl zSy>zR?3rsWWLt6}Nv<9#Mr>zsuhmHa+gycf3d9Rk5#v1TO?fjuiQB4|uItj~+%IA6 zyZlN7&9B8MzmgwwR_M`N-}le@A-4xqJArb{>~gt=S%M&7>#K|PzDmgf8T#5Qn(pD1 z2XJM6 ze_?hpm57wPmP#!`RZwXECJ?hA8~)(dF3tnn9w~sOXXj0Dr3q>{xSyxlCK^7>EZ`h zqsWD8ng}g?b?6zTC&;&@^4~9EXp1@k3iFsQRZK*;GMHUJ)3;i0#@j~@`=_tN)<23Q zTK+)i0%hReZdjzuLQ!4KSJricV?1L%XD-O5o6N>=a}Ax!xqF9IknX?Z-YRFaaG}y! z&I(Z}>4C5^HPF+EE%}5Qa+PZ=wB!M`-nX0f(6fqLB_;dKui{&QFfMt^NGebhl%lCH zL&jwyq7PG73k41HV{l3Co`fq{;bk9^$u>P;< z>;3_&>C*|tuAgXOnjyc6)k@uN;npARAe;L@gn9L{m82SGX76Uww&D$d*M2@)ig1;{ zLHDNnUS*Tzx1naqyOct)WXS-yQ?$ZTs9;u{j7O{g>G!%D4YUVHbvQ~e}(Pl7a1-H<@(RGFsnGT zR?C0mFBrT}B+)>VibTuDrR7nuS}Bcr7wY3KuT84%VIUXJ7=cF!d9x1`R6&P%yd#lf z39Ear8E=lGhCIAs-2Jn;#}p$<6Lz>9$HfX`rbYqe5Sosf_D(e+>R_c7^Kh##q(a8 zkB;;95EytzP#-<&m)NF~Alf2Mk|EhEOPJzo3C3FV1=n9lX^_)(R=BvUt(ystBnfS2 z2`Ila(yAIe>T`nNaTRHP3XZ{Be95oG;=X@&-{z0Ea19KPtN=h{hn9puj^oo-D$;Ms7s zlbX*gzEqIWKsQP7ocv(HFO$K6O1n}u_ zC(Wwy5I#n|cEk%vz+jxmR{zs&;K+1IsG~sNm0ma@FBr_5TU@&4h2&rwRR%Vi9l^2| zeJLs=&H}dJ zMRPL-xcl#XOb+l%o*1Hg%Dv?pO@?`!XAC;fh8YVzeRsR|Mo5&H_szv!W?RiHfC{3nwE)kh5AzZS1xinhD^@=&|_xdHA=Q_zI*<0_}}HnDDQi z?h^|9hSyc+ySL%zz9ErHkbbhoF>5>Q6iZas+PAfe1OI-r&fsW14?!YX-fuPFk z2kO?#AprS288gmVDLZ*vVUP~h5sss;6pJJ`MPKd403C#Y-65@_0-p3bJ%lnuB{($nOkOaHhH zxZ0mma?bp|QW=0ldeuQV)R-^l%vkBhKW7Pjvn{@^Yil8g2mq7!^B^dTYfzSdfLff% zL>8z9yVgphK&vjG9?>SZ!*SW5{oN9=FWQ$xV9QP|&do|ToFdZIp9|0{v=(9iEW0B_ z2=g6RrMy-G2ZgebQs$5W=z%wFNf(OFFzCOF6lS<^IOx_AWX1m{eo)=rzLFsVI%yp6 z=hSjdsB~5!I}itrMb=1kRE*ZiYWzo{iVI{UDE|8m+!|?}o1XoQiCB98QVm}jKIpEN zn9ExyjM2_GskMcOnzs+?)618|P6__y=t9tNOf$c?*5wwL-H3X?@1?Oxkp%v@@iE=xzKJoGmv7%rN3Y5emJ@L-|E> zJUlR&hJwDn+zL|s2D3~}3PZN{JmiaDREKz0&Xutj=o}z)XPK2ek`fq@b`t`UsPGbL z;~1ncD_bk7(pSPMyPvnb1Cu$LxgO{w<=Oe2=^K~t{xq65bPzETf>VMY5*<(Z5}cFd ze1@u=2K)g`67My-1Z>4NtDJYSiWO8@PUe$NK?SdE)Xs@Ua5gLlUbG*<9U+I_o-;_u z;U%Lp4RE9gfAh*K6&pjKu9e8`%?@zL$(RxfJD-WVJAiaI#w3BpwA<)!egc9x;3g1& z*DDCGa&^6qq_Y6h^%?IBL#KDz91-!TX>2Zesx$<)tdI#>i=*1PGFu<+rul`+M-y@= zMlJ_Fv4d72|=^$@uzJ#Cu!Dol$;hNj&w{VAcZ1qZ z29x$u4G=MS1DugLon7&Qk-i)Y1n8Ilg)N6QofZp5%V8vxM!*y$W zouwR0;&rDL=z0f{U-#BQK0|f<^)2eCv&OE*`|Z=?v4xi-T#n#35(Fj*e>_6x4EA~x zX#8p0kR@>CI5+uoL68@-V3&NCKXU&6rO;r|#i5c}5JHlkuoWy2pg$CIq&O5C4!Drb zn5}hcmBCl?SLgs<>lnV`$mKIng`irKJ@Sy8N(eu~rX#KqYfJ9q&%=$0$-IdDhkFgf za}~Q&w0dE6GB5CuvwTOsTS7?jTFq+&M6aV>RYNhz8y2;jY`xD%%FX_0>}NpVah=e< z84(@ufmj}@`^+7da6{9mEqtChu?@kxGcQQIzVn{dvl1EiH|-(EfA!Iq>FEpIU& zQ0Op@MJ)T4{p!z=>!e;m&~EmRs{gmKw^`Z?!&h2s6ZU0UR&h#h|*_2u0W8h zri)y*Z8HuN_YDJxIKRACf+r@ZTc4Lo9MJ$9_9lIz5#?albMOYk4+XoaXXdDzQI1Do z!~y8T5_%||VKD7$Zed66PsU5)>lNTiIY2Mt>>K<|IGc#Nj=rI+7OiT~?1+RViOirs zaSk{9SBCfA=?yG7-Fy?Xum+btS06%kBk<_2CG5)2`{XC~RLJsoSZ!9>H_h9?r7USO z)hA>&JswKP6=!Yk7ac~3D@APxoWcz@Jk1eb#Wj?kBjZfiRTfIOh8>-)yWw6AYX8>W zKC%7LFfbmCMx#@cFG( zcJ+?Lbsiw!@waQ5gBhtrZS25K_aEyf^4!0(vA?wypY zqr(<03`+9zuLzDeUGk7$5N=jvXkg){$1e-Uf{3mpwWZje=nrQ@#KiExq+uO!%QyM~ zt^pr*y_ED4Ij}lE4KxVQ0~vXxT$+(1b-*O-y?w2H(zAkRc2jlGZ~DQOycZx{JirjB60mY-!F zlB+i$xG!{a0io_q8v%9|<^OL=rZqL$=~M2CZyEy~le!>p>o&t9yj<1dXcxkG-?=Uj zqdk)3X=H^M2D`f(MLQf8z7?=rb=q~>q%la5S}QlGnNa(jAPyI1{7Igb@B++Gj?>`; z5OS|i4_Bd%T}BQDWoa8y_KIaUoXU>WuXd1;d;FNOEzI@ zXjEeUl96X#TwTlq2W8m4D-_z9@cvq$ z&n0$wfLrqGoR(<0$k7E*EFM} z?x$=sB{pF(nZb7)=#=M-fITr3)eO@Ho}WOa6#=W0?~1!0muSU&De*vKYDnO5s|H6q z5H5Q9_=2lfuvP|nM7icxgzo>>YE@x}I26e5=}b50rgGQo<1fBeNX&?Ib7SC- z({&NH7@|lX49b(1QQh8ma|4;qPHO^rIAZvnzx}x%F2DuXBikZ7{_BgAC9LQOZWDx+ zDq9Vmj-oBV3L+-|Jx^8P$Cr)6PXI|W3%IS>1OgQwnb{iNK^0>3-k)kT5+0;@f`tMULylPLBey|_|-6N%J~G?#yZCXHV>IE*D1dYDc$ho0oY1Ic|@k9pE^iB53kBfS61Y#U--y< zJp~D~w|D}~9A2sw@&cPo&1!nJE5!iqL+uJA?dM%Blp1?{1XULV(zbUmW9sa#PUUH% z4SB~xZx<76;%)_s%O6B{s7r0f@4!~!jW?}|=cgzl54+W8R2$Qe3aHP6UD~{mhi2fh zb4f&1CGOH}>RVy=kJe`szi$T@new$tMgu+hsr2&$`g=f0U-O{2X z<`?J{=nReiN_sHEkmx`4?Z(fAI}GU$uVm8Sn#O~0vovMo=sj{co}WR(n-V8fc%0Db z%WE1gpT|+}mQPTQ#A~B_#QncV!a(5*di{X>`uJ2E_d+RvWXmz)8h_vZr0G)p7cahJu%_2sTZV0PuR)5=`7W5v_#7fP{qH?Wc-8h zdVawz=J4UAwnmpw)2P$T8~Qzk6di^>3i9^P8hNMjH@3*gxi`k=rQ&GQxlXWTWF73e z%fGVLHc*xzZuF=j1qU8opx$Z*X!?^Rtp16vUz$?A@NuPlq<{&$YJaFI8vSPMbfQ4x z#Hk8ky`GCk7LOK4*+$|8;(r#pcxvZ(tu(W@XmR9D~3B#RWCKOiPP%!Kvo zkrUZo!3-}mWvr&1)YXo-JKy#(43hcnvTf&>d#~{e zMadSm8Q7&&oX)*%v`#5VmesfY!x9=x@5gOPk%ygL{@NkdR=~=GX#?-FyoQ z!k4kc?(inJ;(0vK^AyDB!%e;fiH^C9jaey!{kf%MyTsk6+#|m^E6U;Sb_bzsvL1Ka zQgm%MGQ&8r2C!8svzc&7jya5Sznx#8kGYmhA@t9tX|md-`>qlMs{2Q?4zm-`>8I`d ztybC=Ps4?U`A6ML{7(&5L19ePEeCA3=LGVXyeBb@TZ=?CDL3^|mFGU5L3ZDFNalZ{ zs=J}L8q@OG?=&c=JuYMdAExW!XZG3y^-ZWFfv7g)UZV32k3p4{qPK}`HnZt=Ls57>W?dP|~4QbglLVXV0fB*xaLlbH-F zrJ093uf@^ZWN*;AYd_UmVCs*i)iDRh8ye+ZK` zn1%NNVlm%>?bc2+x^p3f_UNM7y?r=yNPw0k3PP)0)ab{k{^MS7 zP{LTCDdp?LKT`v$m7~6ZsmV?V=DCG28@;;TSaPGDbR_>2*By&-w)rRonDIW~ntW7| zvl38`pw)98ph9!Ws;@q8;JZ*`tDXT#FW{%kOPF^Z_G6CB5*s{k_AC#bJjkRq-@4*> zCPFUS{d?uJ6jyxSg+~tRIjVDYKCyMkH!j_?puw+5f`j1B+vbUD*te#xuTYfnJ&ot# z&xZ^=Cl#ttF7csuycG~__EV5-Lq$;Uv=i|hZci8?>nx?jU0UX6h$FldXSR{dBy7~K z!Cy@h2S;qRUpfbzgtNdj`Yqe=TBwec240gaz8idDn)`?nYa9D4D{nbp#Ybf5ThqYu zL{m=er|%LyUHy$1uOcamWH?#ch<1kM` z`994_n|ly8@@$a~*dJ_mT>Dab`jmO|V!mplxKPJ`@b4Lgpq1W!`NWvtUGO?)o1X-@ zIxOizhod!skSh8rsu4b+^o(IO%4EjG?*M7=*b+JUTvjd5)}=~4KVDnzOz@hgz}I>6 zfo=QiM9#ZFijmmRQD9Pc$Q&Y_aP%iFvC#*xrc%lk9j!YfoE1WQ5Nl42x*0Qa+8w6i zMp;*9Y6kQyBl`7G=Vl4$OwkCOsaz6TibeOV{R*KwtL? z*0n1ZGL$xkrA9u;K`JJ=Z9FmX%F}mPTbi7Us`y*Gm&>q(4!Jfg)_6`w=T=ha$dm4I zKg-PhY=|kn=r+=k*32^?8c1^91o`CyI_!e*>1RPiNyE1xLQ%d0AKvm(ayRcL*SH`# zFF=9*PciQXZ(1d_PkgrFdTR)P=$g3Hu-mnfIduuQ7eQZ9##p-3cE#&GMbd#TT zdy=s@rhBGOe;Kda*59Sk?FPT!^M5~6>{XgB{>QI1mEQ0(2aUKLDNpMz^F1f}t3K$t z91u9|f3{vF(P5p*<=+hiV^b{oRkY0b-S)(0Kcm{m!y|=9sYhI3`?(Iqs%0A|5e@(} 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