3lbits / CIM4NoUtility

CIM for the Norwegian Power Utility
Creative Commons Attribution Share Alike 4.0 International
20 stars 7 forks source link

Manifest Specification #283

Closed Sveino closed 7 months ago

Sveino commented 1 year ago

AutoFOS is extending the CGMES v2.5 (sixth IOP)

Looking like Core Manifest: image

Validation: image

Moving forward by using JSON-LD and rely on W3C standard. The following W3C:

@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix dcat: <http://www.w3.org/ns/dcat#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix prov: <http://www.w3.org/ns/prov#> .
@prefix adms: <https://www.w3.org/ns/adms#> .

# This is an example on how to document CIM dataset according to DCAT3 
# The example shows:
# Catalog:      One Common Catalog that document abstract dataset for a European Common Grid Model (CGM) data exchange. 
#               Currently only include one TSOs EQ and SSH with their relevant distribution and data Service 
# Dataset:      EQ and SSH profile based dataset
# Distribution: EQ Support both CIMXML (-552) and CIM-JSON-LD (-553), but only CIMXML for SSH
# Service:      Reference to ENTSO-E OPDE and SPARQL endpoint 

# Known limitiation:
#               Add TSO2 with EQ and SSH
#               Add RCC (RSC) with TP
#               Add providance for Topology Processing
#               Add that TSO1 support Difference model for EQ (-552)
#               Add Boundary model for TSO1 and TSO2 

<https://data.entsoe.eu/cgm/#example-catalog-abstract-dataset>
  rdf:type dcat:Catalog ;
  dcterms:description "This is a example of IEC CIM based catalog description."@en ;
  dcterms:identifier "0c49aee2-6096-4c2d-908c-0da7764d8706" ;
  dcterms:title "ENTSO-E Common Grid Model (CGM) Catalog"@en ;
  dcterms:title "ENTSO-E Common Grid Model (CGM) Katalog"@no ;
  dcterms:publisher <https://www.entsoe.eu/> ;
  dcterms:issued "2022-01-28T10:30:00"^^xsd:dateTime ;
  dcterms:modifed "2022-02-04T10:30:00"^^xsd:dateTime ;
  dcat:version "1.0" ;
  adms:versioNotes "First version of the abstract dataset example."@en ;
  dcterms:themeTaxonomy <http://data.europa.eu/Energy/CGM> ; # Link to the Taxonomy that the termes regarding Common Grid Model are defined.
  dcterms:spatial <http://data.europa.eu/Energy/ConformToEUNetworkCode> ; # Ref to Europe - or in principle the area that CGM applies to
  dcat:dataset [
    rdf:type dcat:Dataset ;
    dcterms:description "The abstract dataset that describe TSO1 Transmission network according to EU Common Grid Model Methodology, conforming to the IEC 61970-600 sereis (CGMES) EQ profile."@en ;
    dcterms:identifier "<http://data.tso1.eu/IGM/EQ/>" ; # Since this is an abscract class it will not include any UUID
    dcterms:title "TSO1 Equipment Model."@en ;
    dcat:theme <http://data.europa.eu/Energy/CGM/StructureData> ;
    dcterms:spatial <http://data.europa.eu/Energy/ElectricPowerTransmissionNetwork/TSO1> ; # This is the transmission network that is the responseilibty of TSO1
    dcterms:conformsTo "urn:iso:std:iec:61970-600-2:2021" ; # Conformes to CGMES
    dcterms:conformsTo "urn:iso:std:iec:61970-452:2021" ; # Conformes to CPSM
    dcterms:rights "© 2022 Copyright TSO1";
    dcterms:rightsHolder "TSO1";
    dcterms:license <https://creativecommons.org/licenses/by-nc-sa/4.0/> ;
    cterms:accessRights <http://publications.europa.eu/resource/authority/access-right/CONFIDENTIAL>
    dcterms:accrualPeriodicity <http://purl.org/cld/freq/Irregular> # it is generaly publish when there are changes. The lowes accrual periodicity is http://purl.org/cld/freq/Daily since this is the temporalResolution
    dcat:temporalResolution "P1D"^^xsd:duration ; # One day validitiy
    dcat:distribution [
      rdf:type dcat:Distribution ;
      dcterms:description "The dataset is representet according to the serializations defined in IEC 61970-552:2016"@en ;
      dcat:mediaType <https://www.iana.org/assignments/media-types/application/rdf+xml> ; 
      dcterms:conformsTo "urn:iso:std:iec:61970-552:2016" ; # Conformes to CIMXML
      dcterms:identifier "<http://iec.ch/TC57/CIMXML/>" ; # Since this is an abscract class it will not include any UUID
      dcterms:title "CIMXML"@en ;
    ] ;
    dcat:distribution [
      rdf:type dcat:Distribution ;
      dcterms:description "The dataset is representet according to the serializations defined in draft IEC 61970-553:ED1"@en ;
      dcat:mediaType <https://www.w3.org/ns/iana/media-types/application/ld-json> ; # Note there is a difference between json and json-ld
      dcterms:conformsTo "urn:iso:std:iec:61970-553:draft:ed-1" ; # Conformes to CIM-JSON-LD
      dcterms:identifier "<http://iec.ch/TC57/CIM-JSON-LD/>" ; # Since this is an abscract class it will not include any UUID
      dcterms:title "CIM-JSON-LD"@en ;
    ];
    dcat:DataService [
      rdf:type dcat:DataService ;
      dcterms:conformsTo <https://www.w3.org/TR/sparql11-protocol/> ;
      dcterms:title "ENTSO-E Operational Planning Data Environment"@en ;
      dcterms:description "ENTSO-E OPDE Service that supports queries to obtain RDF representations of energy system data"@en ;
      dcat:endpointURL <http://data.entsoe.eu/repository/api/sparql/PowerSystem/IGM> ;
      dcat:endpointDescription <http://data.entsoe.eu/api/PowerSystem/IGM/params> ;
      dcat:landingPage <https://data.entsoe.eu/PowerSystem/IGM/viewById/TSO1+EQ> ;
    ];
  ];
  dcat:DatasetSeries [
    rdf:type dcat:DatasetSeries ;
    dcterms:description "The abstract dataset that describe the D-1 dataset series as part of the Individual Grid Model (IGM) dataset."@en ;
    dcterms:identifier "<http://data.tso1.eu/IGM/D-1/>" ; # This referes to all dataset that is generated one day before delivery (D-1). The example only show SSH, but could include TP and SV as well.
    dcterms:title "TSO1 D-1 Model."@en ;
    dcat:theme <http://data.europa.eu/Energy/CGMm/Scenario/D-1> ;
    dcat:qualifiedRelation [
      rdf:type dcat:Relationship ;
      dcterms:relation <http://data.tso1.eu/IGM/EQ/> ;
      # A direct link to the resource: https://standards.iso.org/iso/19115/resources/Codelists/gml/DS_AssociationTypeCode.xml
      dcat:hadRole <https://standards.iso.org/iso/19115/resources/Codelists/gml/DS_AssociationTypeCode/isComposedOf> # isComposedOf - reference to resources that are parts of this data set
    ] ;
    dcterms:rights "© 2022 Copyright TSO1";
    dcterms:rightsHolder "TSO1";
    dcterms:license <https://creativecommons.org/licenses/by-nc-sa/4.0/> ;
    cterms:accessRights <http://publications.europa.eu/resource/authority/access-right/CONFIDENTIAL>
    dcterms:accrualPeriodicity <http://purl.org/cld/freq/Daily> 
    dcat:temporalResolution "PT1H"^^xsd:duration ; # The set is generated on a daily bases and the member dataset is hourly
    dcat:Dataset [
      rdf:type dcat:Dataset;
      dcterms:description "The abstract dataset that describe Steady State Hypothesis (SSH) of the TSO1 Transmission network conforming to the IEC 61970-600 sereis (CGMES) SSH profile."@en ;
      dcterms:identifier "<http://data.tso1.eu/IGM/SSH/>" ; # Since this is an abscract class it will not include any UUID
      dcterms:title "TSO1 Steady State Hypothesis Model."@en ;
      dcat:theme <http://data.europa.eu/Energy/CGMm/Situation> ;
      # Should we include dcat:inSeries
      dcterms:spatial <http://data.europa.eu/Energy/ElectricPowerTransmissionNetwork/TSO1> ; # This is the transmission network that is the responseilibty of TSO1
      dcterms:conformsTo "urn:iso:std:iec:61970-600-2:2021" ; # Conformes to CGMES
      dcterms:conformsTo "urn:iso:std:iec:61970-456:2021" ; 
      # Should we include rights, rightsHolder, license, accessRights
      dcterms:accrualPeriodicity <http://purl.org/cld/freq/hourly> 
      dcat:temporalResolution "PT1S"^^xsd:duration ; # The values are instance value, but I think it would be correct to use 1 second
      dcat:distribution [
        rdf:type dcat:Distribution ;
        dcterms:description "The dataset is representet according to the serializations defined in IEC 61970-552:2016"@en ;
        dcat:mediaType <https://www.iana.org/assignments/media-types/application/rdf+xml> ; 
        dcterms:conformsTo "urn:iso:std:iec:61970-552:2016" ; # Conformes to CIMXML
        dcterms:identifier "<http://iec.ch/TC57/CIMXML/>" ; # Since this is an abscract class it will not include any UUID
        dcterms:title "CIMXML"@en ;
      ]  ;
      dcat:DataService [
        rdf:type dcat:DataService ;
        dcterms:conformsTo <https://www.w3.org/TR/sparql11-protocol/> ;
        dcterms:title "ENTSO-E Operational Planning Data Environment"@en ;
        dcterms:description "ENTSO-E OPDE Service that supports queries to obtain RDF representations of energy system data"@en ;
        dcat:endpointURL <http://data.entsoe.eu/repository/api/sparql/PowerSystem/IGM> ;
        dcat:endpointDescription <http://data.entsoe.eu/api/PowerSystem/IGM/params> ;
        dcat:landingPage <https://data.entsoe.eu/PowerSystem/IGM/viewById/TSO1+D-1+SSH> ;
      ];
    ];
  ].

<http://data.europa.eu/Energy/CommonGridModelMethodology>
  rdf:type skos:ConceptScheme ;
  skos:definition "Common Grid Model (CGM) methodology according to the European Netwrok Code."@en ; 
  dcterms:conformsTo <https://eepublicdownloads.entsoe.eu/clean-documents/nc-tasks/SOGL/SOGL_A67_70_180222_CGM%20methodology_180314.pdf> ;
  skos:scopeNote "All TSOs’ proposal for a common grid model methodology in accordance with Articles 67(1) and 70(1) of Commission Regulation (EU) 2017/1485 of 02 August 2017 establishing a guideline on electricity transmission system operation"@en
  skos:prefLabel "Common Grid Model methodology"@en ;
  skos:notation "CGMm"
  dcterms:identifier "586046a4-0ed2-4648-bbf3-0370af42f6c9" ;
  dcterms:publisher <https://www.entsoe.eu/> ;
  dcterms:issued "2022-01-28T10:30:00"^^xsd:dateTime ;
  dcterms:modifed "2022-02-04T10:30:00"^^xsd:dateTime ;
  dcat:version "1.0" ;
  adms:versioNotes "First version of the concept scheme for Common Grid Model (CGM) methodology."@en ;
  adms:versioNotes "Første versjon av konseptskjema for Common Grid Model (CGM) metodikk."@no ;
  .

<http://data.europa.eu/Energy/CGMm/CommonGridModel>
  rdf:type skos:Concept ;
  skos:topConceptOf <http://data.europa.eu/Energy/CommonGridModelMethodology>;
  skos:definition "a Union-wide data set agreed between various TSOs describing the main characteristic (sic) of the power system (generation, loads and grid topology) and rules for changing these characteristics during the Common Grid Model (e.g. capacity calculation) process."@en ;
  dcterms:conformsTo <https://eepublicdownloads.entsoe.eu/clean-documents/nc-tasks/SOGL/SOGL_A67_70_180222_CGM%20methodology_180314.pdf> ;
  skos:note "Defintion according to Article 2(2) of Regulation 2015/1222. Changed 'capacity calculation' to 'Common Grid Model (e.g. capacity calculation)'"@en ;
  skos:prefLabel "Common Grid Model"@en ;
  skos:notation "CGM"
 .
<http://data.europa.eu/Energy/CGMm/IndividualGridModel>
  rdf:type skos:Concept ;
  skos:member <http://data.europa.eu/Energy/CGMm/CommonGridModel>; # Not sure this is correct
  skos:definition "a data set describing power system characteristics (generation, load and grid topology) and related rules to change these characteristics during Common Grid Model (e.g. capacity calculation), prepared by the responsible TSOs, to be merged with other individual grid model components in order to create the common grid model."@en ;
  dcterms:conformsTo <https://eepublicdownloads.entsoe.eu/clean-documents/nc-tasks/SOGL/SOGL_A67_70_180222_CGM%20methodology_180314.pdf> ;
  skos:note "Defintion according to Article 2(1) of Regulation 2015/1222. Changed 'capacity calculation' to 'Common Grid Model (e.g. capacity calculation)'"@en ;
  skos:prefLabel "Individual Grid Model"@en ;
  skos:notation "IGM"
 .

<http://data.europa.eu/Energy/CGMm/Scenario>
  rdf:Type skos:Concept ;
  skos:member <http://data.europa.eu/Energy/CGMm/CommonGridModel>; # Not sure this is correct
  skos:definition "the forecasted status of the power system for a given time-frame"@en ;
  dcterms:conformsTo <https://eepublicdownloads.entsoe.eu/clean-documents/nc-tasks/SOGL/SOGL_A67_70_180222_CGM%20methodology_180314.pdf> ;
  skos:note "Defintion according to Article 2(4) of Regulation 2015/1222."@en ;
  skos:prefLabel "CGMm Scenario"@en ;
  skos:notation "Scenario"
 .

<http://data.europa.eu/Energy/CGM/StructureData>
  rdf:type skos:Concept
  skos:definition "Equipment model comprising the structural data described in Articles 5 to 11 in Common Grid Model (CGM) methodology."@en ;
  skos:prefLabe "Common Grid Model structural data"@en ;
  skos:member <http://data.europa.eu/Energy/CGM>; # Not sure this is correct
  dcterms:conformsTo <https://eepublicdownloads.entsoe.eu/clean-documents/nc-tasks/SOGL/SOGL_A67_70_180222_CGM%20methodology_180314.pdf> ;
  skos:notation "EQ"
  .

<http://data.europa.eu/Energy/CGMm/Scenario/D-1>
  rdf:type skos:Concept
  skos:definition "Day-ahead scenario handling situation data described in Articles 3 in Common Grid Model (CGM) methodology."@en ;
  skos:prefLabe "Common Grid Model Day-ahead scenario"@en ;
  skos:member <http://data.europa.eu/Energy/CGMm/Scenario>; # Not sure this is correct
  dcterms:conformsTo <https://eepublicdownloads.entsoe.eu/clean-documents/nc-tasks/SOGL/SOGL_A67_70_180222_CGM%20methodology_180314.pdf> ;
  skos:notation "D-1"
  .

<http://data.europa.eu/Energy/CGMm/Situation>
  rdf:type skos:Concept
  skos:definition "Situation data described in Articles 3 in Common Grid Model (CGM) methodology.."@en ;
  skos:prefLabe "Common Grid Model Situation"@en ;
  skos:member <http://data.europa.eu/Energy/CGMm/>; # Not sure this is correct
  dcterms:conformsTo <https://eepublicdownloads.entsoe.eu/clean-documents/nc-tasks/SOGL/SOGL_A67_70_180222_CGM%20methodology_180314.pdf> ;
  skos:notation "SSH"
  .

<http://data.europa.eu/Energy/ConformToEUNetworkCode>
  rdf:type dcterms:spatial ;
  dcterms:description "Jurisdiction Coverage for the Network Code regulation described in Commission Regulation (EU) 2016/631."@en ;
  # More detail     http://purl.org/dc/terms/coverage
  dcat:qualifiedRelation [
    rdf:type dcat:Relationship ;
    dcterms:relation <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=uriserv:OJ.L_.2017.220.01.0001.01.ENG&toc=OJ:L:2017:220:TOC#d1e279-1-1> ;
    dcat:mediaType <http://www.iana.org/assignments/media-types/application/html> ;
    dcat:hadRole <http://www.iana.org/assignments/relation/original>
  ] ;
  dcterms:title "Commission Regulation (EU) Jurisdiction Coverage"@en ;
  dcterms:identifier "611c7044-c91e-48ad-8b91-0da74f0ab143" ;
  dcterms:publisher <https://www.entsoe.eu/> ;
  dcterms:issued "2022-01-28T10:30:00"^^xsd:dateTime ;
  dcterms:modifed "2022-02-04T10:30:00"^^xsd:dateTime ;
  dcat:version "1.0" ;
  adms:versioNotes "First version of the spartial describing the Commission Regulation (EU) Jurisdiction Coverage."@en ;
  adms:versioNotes "Første versjon av spartialen som beskriver kommisjonsforordningens (EU) jurisdiksjonsdekning. "@no ;
  # Do not think this is the right way. Maybe we need use dcat:PartOf
  rdf:type dcterms:spatial [
    rdf:type dcterms:spatial <http://data.europa.eu/Energy/ElectricPowerTransmissionNetwork/TSO1> [
    dcterms:description "The Electric Power Transmission Network under the jurisdiction coverage of TSO1."@en ;
    dcterms:title "TSO1 Electric Power Transmission Network"@en ;
    ];
  ];
.
griddigit commented 1 year ago

A comment on the validation part. It will be good to directly use the SHACL definitions instead of NEK or other extensions see https://www.w3.org/TR/shacl/#validation-report and https://www.w3.org/TR/shacl/#results-validation-result

Sveino commented 1 year ago

A comment on the validation part. It will be good to directly use the SHACL definitions instead of NEK or other extensions see https://www.w3.org/TR/shacl/#validation-report and https://www.w3.org/TR/shacl/#results-validation-result

yes, definitely. We should follow the validation-report. DIGIT has also seen the need for a summary report and we should follow their model for the summery. The model about is the current AutoFOS model. We might need to suggest to the SHACL community a way of creating a whitelist..