id: https://modellen.netbeheernederland.nl/nbnl-operation/1.2
name: nbnl-operation
description: |-
  Information model for the data product "NBNL Operation".
title: NBNL Operation (OP)
license: https://www.apache.org/licenses/LICENSE-2.0.txt
imports:
  - linkml:types
prefixes:
  linkml: https://w3id.org/linkml/
  cim: https://cim.ucaiug.io/ns#
  ck: http://data.netbeheernederland.nl/capaciteitskaart/def#
  dct: http://purl.org/dc/terms/
  gh: https://github.com/
  cbs: https://www.cbs.nl/nl-nl/onze-diensten/methoden/begrippen/
  eu: https://cim.ucaiug.io/ns/eu#
  nbnl-term: https://begrippen.netbeheernederland.nl/id/
  nl: https://cim.ucaiug.io/ns/nl#
  skos: http://www.w3.org/2004/02/skos/core#
  xsd: http://www.w3.org/2001/XMLSchema#
  vocab: http://modellen.netbeheernederland.nl/nbnl-operation/
annotations:
  model_uri: https://modellen.netbeheernederland.nl/nbnl-operation
  exchange_format: application/ld+json
  model_type: data-product
  environment: https://ghcr.io/netbeheer-nederland/build-dp:0.37
enums:
  UnitMultiplier:
    description: "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. \r\n\r\nFor 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Þ\".\r\n\r\nFor 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\"."
    from_schema: https://cim.ucaiug.io/ns#TC57CIM
    enum_uri: cim:UnitMultiplier
    permissible_values:
      G:
        meaning: cim:UnitMultiplier.G
      h:
        meaning: cim:UnitMultiplier.h
      k:
        meaning: cim:UnitMultiplier.k
      m:
        meaning: cim:UnitMultiplier.m
      M:
        meaning: cim:UnitMultiplier.M
      micro:
        meaning: cim:UnitMultiplier.micro
      none:
        meaning: cim:UnitMultiplier.none
  UnitSymbol:
    description: "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. \r\nEvery 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.\r\nTo 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.\r\nNon-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. \r\nThe integer values are used for harmonization with IEC 61850."
    from_schema: https://cim.ucaiug.io/ns#TC57CIM
    enum_uri: cim:UnitSymbol
    permissible_values:
      A:
        meaning: cim:UnitSymbol.A
      Ah:
        meaning: cim:UnitSymbol.Ah
      none:
        meaning: cim:UnitSymbol.none
      ohm:
        meaning: cim:UnitSymbol.ohm
      V:
        meaning: cim:UnitSymbol.V
      VA:
        meaning: cim:UnitSymbol.VA
      VAh:
        meaning: cim:UnitSymbol.VAh
      VAr:
        meaning: cim:UnitSymbol.VAr
      VArh:
        meaning: cim:UnitSymbol.VArh
      W:
        meaning: cim:UnitSymbol.W
      Wb:
        meaning: cim:UnitSymbol.Wb
      Wh:
        meaning: cim:UnitSymbol.Wh
  MeasurementKind:
    description: Types of measurement.
    enum_uri: nl:MeasurementKind
    permissible_values:
      gevraagdeTransportCapaciteit:
        meaning: nl:MeasurementKind.gevraagdeTransportcapaciteit
      benodigdeTransportCapaciteit:
        meaning: nl:MeasurementKind.benodigdeTransportcapaciteit
      piekbelasting:
        meaning: nl:MeasurementKind.piekbelasting
classes:
  Measurement:
    description: |-
      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.
    from_schema: https://cim.ucaiug.io/ns#TC57CIM.IEC61970.Base.Meas
    is_a: IdentifiedObject
    attributes:
      measurementType:
        slot_uri: cim:Measurement.measurementType
        range: MeasurementKind
        required: false
        multivalued: false
        description: "Specifies the type of measurement.  For example, this specifies if the measurement represents an indoor temperature, outdoor temperature, bus voltage, line flow, etc.\r\nWhen the measurementType is set to \"Specialization\", the type of Measurement is defined in more detail by the specialized class which inherits from Measurement.\r\n\r\n"
      unitMultiplier:
        description: The unit multiplier of the measured quantity.
        slot_uri: cim:Measurement.unitMultiplier
        range: UnitMultiplier
        required: true
        multivalued: false
      unitSymbol:
        description: The unit of measure of the measured quantity.
        slot_uri: cim:Measurement.unitSymbol
        range: UnitSymbol
        required: true
        multivalued: false
      Terminal:
        description: One or more measurements may be associated with a terminal in the network.
        slot_uri: cim:Measurement.Terminal
        range: curie
        required: false
        multivalued: false
      PowerSystemResource:
        description: The power system resource that contains the measurement.
        slot_uri: cim:Measurement.PowerSystemResource
        range: curie
        required: false
        multivalued: false
    class_uri: cim:Measurement
    tree_root: true
  IdentifiedObject:
    description: This is a root class to provide common identification for all classes needing identification and naming attributes.
    from_schema: https://cim.ucaiug.io/ns#TC57CIM.IEC61970.Base.Core
    attributes:
      description:
        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.
        slot_uri: cim:IdentifiedObject.description
        range: string
        required: false
        multivalued: false
      mRID:
        description: "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.\r\nFor 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."
        slot_uri: cim:IdentifiedObject.mRID
        range: string
        identifier: true
        required: true
        multivalued: false
      name:
        description: "The name is any free human readable and possibly non unique text naming the object.\r\n"
        slot_uri: cim:IdentifiedObject.name
        range: string
        required: false
        multivalued: false
    class_uri: cim:IdentifiedObject
  Analog:
    description: "Analog represents an analog Measurement.\r\n"
    from_schema: https://cim.ucaiug.io/ns#TC57CIM.IEC61970.Base.Meas
    is_a: Measurement
    attributes:
      positiveFlowIn:
        description: If true then this measurement is an active power, reactive power or current with the convention that a positive value measured at the Terminal means power is flowing into the related PowerSystemResource.
        slot_uri: cim:Analog.positiveFlowIn
        range: boolean
        required: false
        multivalued: false
    exact_mappings:
      - nbnl-term:7bs28
      - nbnl-term:7n44w
    class_uri: cim:Analog
  AnalogValue:
    description: AnalogValue represents an analog MeasurementValue.
    from_schema: https://cim.ucaiug.io/ns#TC57CIM.IEC61970.Base.Meas
    is_a: MeasurementValue
    attributes:
      value:
        description: The value to supervise.
        slot_uri: cim:AnalogValue.value
        range: float
        required: false
        multivalued: false
      Analog:
        description: Measurement to which this value is connected.
        slot_uri: cim:AnalogValue.Analog
        range: Analog
        required: true
        multivalued: false
    class_uri: cim:AnalogValue
  MeasurementValue:
    description: "The current state for a measurement. A state value is an instance of a measurement from a specific source. Measurements can be associated with many state values, each representing a different source for the measurement.\r\n"
    from_schema: https://cim.ucaiug.io/ns#TC57CIM.IEC61970.Base.Meas
    is_a: IOPoint
    attributes:
      timeStamp:
        description: The time when the value was last updated.
        slot_uri: cim:MeasurementValue.timeStamp
        range: datetime
        required: false
        multivalued: false
    class_uri: cim:MeasurementValue
  IOPoint:
    description: The class describe a measurement or control value. The purpose is to enable having attributes and associations common for measurement and control.
    from_schema: https://cim.ucaiug.io/ns#TC57CIM.IEC61970.Base.Meas
    is_a: IdentifiedObject
    class_uri: cim:IOPoint
  Queue:
    description: Waiting queue information associated with a cim:ReportingGroup from EQ.
    is_a: IdentifiedObject
    attributes:
      requests:
        description: Number of requests for new grid connections and capacity increases in queue.
        slot_uri: nl:Queue.requests
        range: integer
        required: false
        multivalued: false
        exact_mappings:
          - ck:EnergyArea.demand_requests_in_queue
          - ck:EnergyArea.generation_requests_in_queue
      capacity:
        description: The requested capacity for the combined requests.
        slot_uri: nl:Queue.capacity
        range: ActivePower
        required: false
        multivalued: false
        exact_mappings:
          - ck:EnergyArea.demand_capacity_in_queue
          - ck:EnergyArea.generation_capacity_in_queue
      ReportingGroup:
        slot_uri: nl:Queue.ReportingGroup
        range: curie
        required: true
        multivalued: true
        description: Reporting groups to which this queue belongs.
      positiveFlowIn:
        description: If true then this queue applies to active power, reactive power or current with the convention that a positive value measured means power is flowing into the related ReportingGroup.
        slot_uri: nl:ContingencyElement.positiveFlowIn
        range: boolean
        required: false
        multivalued: false
    exact_mappings:
      - vocab:wachtrij
    class_uri: nl:Queue
  ActivePower:
    annotations:
      represents_cim_data_type:
        tag: represents_cim_data_type
        value: true
    description: Product of RMS value of the voltage and the RMS value of the in-phase component of the current.
    from_schema: https://cim.ucaiug.io/ns#TC57CIM.IEC61970.Base.Domain
    attributes:
      multiplier:
        slot_uri: cim:ActivePower.multiplier
        range: UnitMultiplier
        required: true
        multivalued: false
      unit:
        slot_uri: cim:ActivePower.unit
        range: UnitSymbol
        required: true
        multivalued: false
      value:
        slot_uri: cim:ActivePower.value
        range: float
        required: true
        multivalued: false
    class_uri: cim:ActivePower
version: "1.2"
generation_date: "2026-05-11"
