Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

allocated-eic.ttl issues; representation at ONTO TEKG #24

Open
15 tasks
VladimirAlexiev opened this issue Sep 21, 2022 · 1 comment
Open
15 tasks

allocated-eic.ttl issues; representation at ONTO TEKG #24

VladimirAlexiev opened this issue Sep 21, 2022 · 1 comment
Assignees
Labels
duplicate This issue or pull request already exists enhancement New feature or request help wanted Extra attention is needed

Comments

@VladimirAlexiev
Copy link

@prefix at:   <http://publications.europa.eu/ontology/authority/> .
@prefix cim:  <http://iec.ch/TC57/2013/CIM-schema-cim16#> .
@prefix dcat: <http://www.w3.org/ns/dcat#> .
@prefix eic:  <urn:iec62325.351:tc57wg16:451-n:eicdocument:1:0> .
@prefix rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .

<http://data.europa.eu/energy/EIC/10X1001A1001A38Y>
        rdf:type           skos:Concept ;
        at:start.use       "2016-10-18" ;
        skos:altLabel      "STATNETT SF" ;
        skos:definition    "Transmission System Operator" ;
        skos:inScheme      <http://data.europa.eu/energy/EIC> ;
        skos:prefLabel     "STATNETT_SF" ;
        skos:topConceptOf  <http://data.europa.eu/energy/EIC> ;
        eic:EICCode_MarketDocument.Function_Names.name "System Operator" ;
        eic:EICCode_MarketDocument.attributeInstanceComponent.attribute "International" ;
        eic:EICCode_MarketDocument.description "Transmission System Operator" ;
        eic:EICCode_MarketDocument.display_Names.name "STATNETT_SF" ;
        eic:EICCode_MarketDocument.docStatus.value "A05" ;
        eic:EICCode_MarketDocument.eICCode_MarketParticipant.streetAddress.townDetail.country "NO" ;
        eic:EICCode_MarketDocument.eICCode_MarketParticipant.vATCode_Names.name "7080000923168" ;
        eic:EICCode_MarketDocument.lastRequest_DateAndOrTime.date "2016-10-18" ;
        eic:EICCode_MarketDocument.long_Names.name "STATNETT SF" ;
        eic:EICCode_MarketDocument.mRID "10X1001A1001A38Y" .

<http://data.europa.eu/energy/EIC/50WP000000016964>
        rdf:type           skos:Concept ;
        at:start.use       "2019-08-13" ;
        skos:altLabel      "Røyrvatn" ;
        skos:inScheme      <http://data.europa.eu/energy/EIC> ;
        skos:prefLabel     "NO-ROYRVATN_PL" ;
        skos:topConceptOf  <http://data.europa.eu/energy/EIC> ;
        eic:EICCode_MarketDocument.Function_Names.name "Production Unit" ;
        eic:EICCode_MarketDocument.attributeInstanceComponent.attribute "International" ;
        eic:EICCode_MarketDocument.display_Names.name "NO-ROYRVATN_PL" ;
        eic:EICCode_MarketDocument.docStatus.value "A05" ;
        eic:EICCode_MarketDocument.eICResponsible_MarketParticipant.mRID <http://data.europa.eu/energy/EIC/10X1001A1001A38Y> ;
        eic:EICCode_MarketDocument.lastRequest_DateAndOrTime.date "2019-08-13" ;
        eic:EICCode_MarketDocument.long_Names.name "Røyrvatn" ;
        eic:EICCode_MarketDocument.mRID "50WP000000016964" .

<http://data.europa.eu/energy/EIC/Function#ProductionUnit>
        rdf:type        skos:Collection ;
        skos:member     <http://data.europa.eu/energy/EIC/50WP000000016964> , <http://data.europa.eu/energy/EIC/45W000000000145G> , <http://data.europa.eu/energy/EIC/26WIMPI-S04SRNT9> , <http://data.europa.eu/energy/EIC/50WP00000002048Y> , <http://data.europa.eu/energy/EIC/50WP00000001630Y> , <http://data.europa.eu/energy/EIC/50WP00000001538M> ...
  • 1: EIC resources and parties are NOT Concepts.
    • Concepts should be used only for generic things (eg Generator, Party, etc). Eg it makes sense to represent these as concepts: Functions, EIC Types (determined from the 3rd char), doc status, etc.
    • But not for specific real-world entities.
  • 2: Where is this at: ontology? (Its namespace doesn't resolve). I'd guess it doesn't include a at:start.use prop. Use schema.org for this.
  • 3: Using <urn:iec62325.351:tc57wg16:451-n:eicdocument:1:0> as the EIC ontology namespace is wrong. That's the namespace of the EIC XSD, but the ontology is a different thing. You need to create it, and then put it at a URL so it's resolvable
  • 4: Needs a type, eg eic:EnergyResource
  • 5: Consider more specific subtypes per function, eg eic:ProductionUnit.
    But please mind that functions are inconsistently spelled, some multiple values are incompatibly used, and some functions don't conform to the EIC type (3rd char). See TEKG Validation below.
    So we only used ProductionUnit and GenerationUnit, assigned after cleaning function values.
  • 6: The eic: props are awfully long since they follow the XML nesting. I dare say people will hate using them.
    Eg EICCode_MarketDocument.eICCode_MarketParticipant.vATCode_Names.name talks about a document and a name, but what it means is the VAT of that party.
    Eg eic:EICCode_MarketDocument.eICCode_MarketParticipant.streetAddress.townDetail.country is an awful way to say country
    PLEASE use simpler names, eg as below.
  • 7: rename mRID to eic to make it clear what kind of identifier that is
  • 8: If docStatus is always "A05" then omit it. In semantics, you first of all model real-world entities, not messages or documents about them
  • 9: explicate data by converting strings to things. Eg
    • a: add `eic:eicType <.../type/Eic/X> (see below for what info we have about it)
    • b: If docStatus is important, use a URL value like <type/docStatus/A05>
    • c: consider turning functions into classes
  • 9: Using a skos:Collection to gather all ProductionUnits is not a good practice. Use a class eic:ProductionUnit
  • 10: eic:EICCode_MarketDocument.eICResponsible_MarketParticipant.mRID is wrong because the value is not a mRID!
    It is a URL representing an energy resource (party).
    So rename to eic:responsibleParticipant.
  • 11: I didn't see any links between ProductionUnits and GenerationUnits, nor details about MW and kV.
    The latter are in the Production Units ("master data") message but I didn't see this converted.

I'll repost from Sveino/Inst4CIM-KG#80 how we represented EIC data in our ONTO TEKG knowledge graph.

@prefix tr: <https://transparency.ontotext.com/resource/tr/> .
@prefix eic: <https://transparency.ontotext.com/resource/eic/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

eic:10X1001A1001A38Y a tr:EnergyResource;
  tr:name "STATNETT SF";
  tr:countryCode "NO";
  tr:dateUpdated "2016-10-18"^^xsd:date;
  tr:eic "10X1001A1001A38Y";
  tr:function "System Operator";
  tr:notation "STATNETT_SF";
  tr:description "Transmission System Operator";
  tr:vatNumber "NO7080000923168";
  tr:eicType <https://transparency.ontotext.com/resource/type/Eic/X> .

<.../type/Eic/X> a eic:CodeValue; # could also use skos:Concept
  eic:codeList <type/Eic>;
  eic:notation "X" ; # third char
  eic:description "An EIC code to identify parties.";
  eic:name "Party";
  eic:functionValid # possible functions of "Party"
    "Balance Group Responsible Party",
    "Balance Responsible Party", "Balancing Service Provider", "Capacity Trader", "Consumer",
    "Consumption Responsible Party", "Coordination Center Operator", "Distribution System Operator",
    "Energy Supplier", "Grid Access Provider", "Grid Operator", "Imbalance Settlement Responsible",
    "Information Provider", "Interconnection Trade Responsible", "LNG System Operator",
    "Market Area Operator", "Market Operator", "Measurement Service Provider", "Meter Administrator",
    "Metered Data Aggregator", "Metered Data Responsible", "Metering Point Administrator",
    "Metering Point Operator", "Network User", "Nomination Validator", "Party Connected To Grid",
    "Platform Operator", "Producer", "Production Responsible Party", "Profile Maintenance Party",
    "Resource Capacity Mechanism Operator", "Resource Provider", "Storage System Operator",
    "System Operator", "Trade Responsible Party", "Transmission Capacity Allocator".

eic:50WP00000000883A tr:providerParticipant eic:10X1001A1001A38Y .

eic:50WP00000000685E tr:providerParticipant eic:10X1001A1001A38Y;
  tr:responsibleParticipant eic:10X1001A1001A38Y .

eic:50WG00000001921T tr:responsibleParticipant eic:10X1001A1001A38Y .

## ...  many more tr:providerParticipant and tr:responsibleParticipant statements

<https://transparency.ontotext.com/resource/validationResult/VAT-country-prefix/eic/10X1001A1001A38Y>
  <http://www.w3.org/ns/shacl#focusNode> eic:10X1001A1001A38Y .

<https://transparency.ontotext.com/resource/validationResult/VAT-per-country-syntax/eic/10X1001A1001A38Y>
  <http://www.w3.org/ns/shacl#focusNode> eic:10X1001A1001A38Y .

The last two are results of advanced SHACL validation that we performed:

You can see validation results at https://transparency.ontotext.com/app/validations, and further details about NO participants eg at

@Haigutus Haigutus added enhancement New feature or request help wanted Extra attention is needed duplicate This issue or pull request already exists labels Sep 21, 2022
@Haigutus
Copy link
Owner

duplicates #10

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
duplicate This issue or pull request already exists enhancement New feature or request help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

2 participants