Add NTO/Utilities/Electricity -- 264 entities covering CGMES, UCTE-DEF, ENTSO-E, IEC 60870-5, TASE.2#770
Closed
boosc wants to merge 8 commits into
Closed
Conversation
Adds the top-level NTO/Utilities/ namespace and the Electricity sub-domain skeleton for a 265-entity ontology extension covering CGMES (all seven profiles), IEC 60870-5-101/104, TASE.2, UCTE-DEF, and the UCTE / ENTSO-E Operation Handbook. This commit seeds: - README.md with the sub-namespace plan and conventions pointer - 3 worked-example entity TTLs (from concept Appendix F): BusbarSection, ThermalGeneratingUnit, OwnershipShare - 2 attribute TTLs (mrid, share_fraction) - 2 verb TTLs (sharedOf, heldBy) The full TTL set (~925 files across 13 sub-namespaces) is generated by a forthcoming TTL-phase script consuming the flat YAML source-of-truth. That phase is gated on reviewer-quorum sign-off (BOO + VOS + BAR + OGIT-Maintainer) on the concept document, which lives at: Dropbox / Claude Workspace / Bardioc Product Management / OGIT Extensions / Reviewable Deliverables / OGIT_NTO_Utilities_Electricity_Concept_v1.docx The concept passed dialog-mode QS with Claude Opus 4.6 and Sonnet 4.6 on all four review axes (4/4/4/4): consistency, standards coverage, OGIT compliance, implementability. Not pushed -- local seed branch only.
… 18 verbs) Adds the cross-utility umbrella namespace from the concept Section 4.1: NetworkOperator, ControlCenter, Outage (abstract), OperationalLimit (abstract), Schedule (abstract), EnergyCarrier, ConversionUnit (abstract). Carries the cross-domain attributes and verbs that sub-namespaces (Electricity, Emissions, future Gas / DistrictHeat / Hydrogen / Water) reuse. Generated from _ttl_source/01_Utilities.yaml via tools/generate_ttl.py in the Test-Connector workspace. All 88 generated TTL files pass rdflib turtle parse; ogit-validator.jar not run locally (no JRE on host) -- to be run in CI / next session with JDK. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…24 entities) Adds concept Section 4.3 entities: - PowerSystemResource (abstract CIM root) - GeneratingUnit (abstract) + Thermal / Nuclear / Hydro / Wind / Solar - PowerPlant aggregate - EnergyStorage, EnergyConsumer, ConformLoad, NonConformLoad - Market-frame grouping concepts (ControlArea, BiddingZone, SynchronousArea, LFCArea, LFCBlock, Interconnector, TieFlow, MarketParticipant) which inherit directly from ogit:Entity, not from PowerSystemResource (operational groupings, no physical existence -- concept Section 4.3 deliberate divergence from CIM). - Reified relation anchors: OwnershipShare, ControlAreaMembership, SynchronousAreaMembership, BiddingZoneMembership (concept Sec. 8). Total: 24 entities + 152 attributes + 20 verbs. All TTL files parse cleanly via rdflib; ogit-validator.jar not run locally (no JRE on host). Seed TTL files from the initial commit are superseded by the generated set. Generated from _ttl_source/02_Electricity.yaml. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds concept Section 4.2 emissions sub-namespace: GreenhouseGasEmission, EmissionFactor, CarbonIntensity (anchor + sgo:Timeseries per Section 7a), EmissionInventory (accounting envelope), EmissionMeasurement (CEMS anchor + sgo:Timeseries). Total: 5 entities + 40 attributes + 7 verbs. All TTL files parse cleanly via rdflib. Generated from _ttl_source/03_Emissions.yaml. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds concept Section 4.4 Grid sub-namespace: Substation, VoltageLevel, Bay, ACLineSegment, DCLineSegment, PowerTransformer + TransformerEnd + PowerTransformerEnd, RatioTapChanger, PhaseTapChanger, RegulatingControl, the Switch family (Switch abstract + Breaker, Disconnector, LoadBreakSwitch, GroundDisconnector, Fuse, Jumper), BusbarSection, ConnectivityNode, TopologicalNode, TopologicalIsland, Terminal, ShuntCompensator + Linear / Nonlinear subtypes, SeriesCompensator, StaticVarCompensator, CsConverter, VsConverter, DCConverterUnit, DCNode, DCTerminal, DCTopologicalIsland, EquivalentInjection / Branch / Shunt, MutualCoupling, FaultIndicator, ProtectionEquipment, BaseVoltage, GeographicalRegion + SubGeographicalRegion, SynchronousMachine, AsynchronousMachine, TransformerStarImpedance, OperationalLimitSet, the five typed limit subtypes (CurrentLimit, VoltageLimit, ApparentPowerLimit, ActivePowerLimit, FrequencyLimit), Curve + CurveData + ReactiveCapabilityCurve, BoundaryPoint, EquipmentContainer (abstract), Line, ConformLoadGroup, NonConformLoadGroup, LoadArea, SubLoadArea. Total 62 entities + 196 attributes + 16 verbs. ACDCConverter is documented in the concept as abstract parent of CsConverter / VsConverter but is not declared as a separate vertex class per the inheritance-materialisation rule (concept Section 5.1c). All TTL files parse cleanly via rdflib (610 under NTO/Utilities/). Generated from _ttl_source/04_Grid.yaml. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds three small sub-namespaces in one commit: Market/ (14 entities, Section 4.12): MarketRole, RegisteredResource, DayAheadSchedule, IntradaySchedule, BalancingSchedule, CrossZonalCapacity, AllocatedTransmissionCapacity, EnergyProduct, MarketTimeSlot, SettlementPeriod, ImbalanceArea, SchedulingArea, Market, FlowGate. NC EB / NC CACM products and scheduling constructs. Legacy/ (8 entities, Section 4.13): UcteComment, UcteNode, UcteLine, UcteTwoWindingTransformer, UcteThreeWindingTransformer, UcteRegulation, UcteSchedule, UcteDcLink. Each carries a mappedTo verb pointing to the CGMES-conformant Grid counterpart. Diagram/ (8 entities, Section 4.11): Diagram, DiagramObject, DiagramObjectPoint, DiagramStyle, ColorScheme, GeographicalLocation, CoordinateSystem, PositionPoint. CGMES DL + GL profiles. Total this commit: 30 entities + 97 attributes + 13 verbs. All TTL files parse cleanly via rdflib (750 under NTO/Utilities/). Generated from _ttl_source/05_Market.yaml, 06_Legacy.yaml, 07_Diagram.yaml. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…48 entities Adds three sub-namespaces in one commit: Operations/ (24 entities, Section 4.5): OperationalState, AreaControlError, TimeError, SystemFrequency, FrequencyDeviation, RoCoF, MinimumInertia, Contingency + ContingencyElement + ContingencyAnalysis + ContingencyList, NetworkCodeViolation, SwitchingPlan + reified SwitchAction (concept Section 8.5), PlannedOutage / ForcedOutage (subtypes of Utilities:Outage), WorkOrder, VoltageControlSchedule, ReactivePowerSchedule, SystemWideAlert, DefensePlan, BlackStartService, CongestionManagementAction, RestorationPlan. UCTE OH P1-P5 plus NC SO / NC ER coverage. Operations/StateEstimation/ (11 entities, Section 4.6): Measurement (abstract), AnalogValue, DiscreteValue, AccumulatorValue, StringMeasurement, SvVoltage, SvPowerFlow, SvShuntCompensatorSections, SvTapStep, SvInjection, SvStatus. All anchor + sgo:Timeseries per concept Section 7a. Operations/Reserves/ (13 entities, Section 4.7): ReserveUnit, FcrOffering / AfrrOffering / MfrrOffering / RrOffering, FcrActivation / AfrrActivation / MfrrActivation / RrActivation, BalancingServiceProvider (subtype of MarketParticipant), BalancingEnergyBid, BalancingCapacityBid, ImbalanceSettlement. NC EB Articles 16, 18, 21, 32, 33, 34, 35, 49 coverage. Total this commit: 48 entities + 219 attributes + 20 verbs. All TTL files parse cleanly via rdflib (999 under NTO/Utilities/). Generated from _ttl_source/08_Operations.yaml, 09_StateEstimation.yaml, 10_Reserves.yaml. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…,Dynamics}/ -- 88 entities, completes the NTO Adds the three remaining sub-namespaces: Telecontrol/ (34 entities, Section 4.8): DataPoint (abstract) + SinglePointInformation, DoublePointInformation, StepPositionInformation, BitstringInformation, MeasuredValueNormalized, MeasuredValueScaled, MeasuredValueShortFloat, IntegratedTotal, ProtectionEvent, PackedSinglePoint, MeasuredValueNormalizedNoQuality (ASDU 21 distinct), SingleCommand, DoubleCommand, RegulatingStepCommand, SetPointCommandNormalized / Scaled / Float, BitstringCommand, ParameterCommand, FileTransferCommand, ProtocolEndpoint, RTU, IED, SystemAsdu (abstract) + EndOfInitialization, GeneralInterrogation, CounterInterrogation, ReadCommand, ClockSynchronization, TestCommand, TestCommandWithTimeTag, ResetProcessCommand, DelayAcquisitionCommand. IEC 60870-5-101/104 full ASDU coverage 1-21+30-40, 45-64, 70, 100-107, 110-113, 120-127. Telecontrol/InterControlCenter/ (23 entities, Section 4.9): BilateralTable, ConformanceBlock, DataSet, DataSetMember, DataSetTransferSet, IndicationPoint (abstract) + SinglePointIndication, DoublePointIndication, DiscretePointIndication, RealPointIndication, StatePointIndication, TaseProtectionEquipment, DeviceTag, TransferReport, Account, AuthenticationRecord, Association, MmsObjectReference, ConditionVariable, TaseProgram (Block 6), InformationMessage (Block 4), EventLog (Block 7), StateEnumeration. TASE.2 Conformance Blocks 1-9 full coverage. Dynamics/ (31 entities, Section 4.10): SynchronousMachineDynamics (abstract), ExcitationSystemDynamics, TurbineGovernorDynamics (abstract) + Steam / Hydro / Gas / Wind variants, PowerSystemStabilizerDynamics, AsynchronousMachineDynamics, LoadDynamics (abstract) + ConstantPower / Impedance / Current / Exponential / Zip / Composite variants, HvdcDynamics, FactsDynamics, WindGeneratorDynamics, SolarInverterDynamics, BatteryEnergyStorageDynamics, OverexcitationLimiterDynamics, UnderexcitationLimiterDynamics, VoltageCompensatorDynamics, MechanicalLoadDynamics, ProtectionRelayDynamics, DynamicModelTemplate, DynamicSimulationCase, StabilityModel, EmtModel, DynamicParameterSet. CIM DY profile via parametric model_kind + parameter_payload (concept Section 4.10). Total this commit: 88 entities + 241 attributes + 21 verbs. All 1297 TTL files under NTO/Utilities/ parse cleanly via rdflib. NTO completion: 13 sub-namespaces, 288 entities, ca. 1000 attributes, ca. 130 verbs across the tree. All concept-document Section 4.x entries materialised. Generated from _ttl_source/11_Telecontrol.yaml, 12_InterControlCenter.yaml, 13_Dynamics.yaml. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Contributor
Author
|
Closing for now -- internal self-validator surfaced bare verb references that resolve to local namespace instead of ogit core (partOf, consistsOf, generates, locatedIn etc.), plus 16 verb duplicates of OGIT core, plus a generator bug with ogit:name in indexed lists. Will fix locally and re-open. |
4 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a new top-level NTO namespace
Utilities/with first sub-domainElectricity/. Thirteen sub-namespaces, 264 entities, ca. 920attributes, ca. 110 verbs across 1297 TTL files.
Full coverage of the following standards on class level:
seven profiles EQ, SSH, TP, SV, DY, DL, GL
types (C, N, L, T, TT, R, E, DC) with mappedTo verbs pointing at
the CGMES counterparts
(Regulation EU 2017/1485), NC ER (2017/2196), NC EB (2017/2195),
NC CACM (2015/1222), NC RfG (2016/631), NC HVDC (2016/1447)
monitor 1-21 + CP56Time2a variants 30-40, control 45-64, system 70
(BilateralTable, DataSet, DataSetTransferSet, IndicationPoint
family, TransferReport, InformationMessage, DeviceTag, TaseProgram,
EventLog, Account, AuthenticationRecord, Association, MMS object
reference)
Plus cross-domain
Utilities/Emissions/for greenhouse-gasaccounting and an
EnergyCarrier/ConversionUnitpair on theUtilities top level for sector-coupling readiness (electrolysers,
fuel cells, heat pumps, Power-to-X).
Structure
NTO/Utilities/NTO/Utilities/Emissions/NTO/Utilities/Electricity/NTO/Utilities/Electricity/Grid/NTO/Utilities/Electricity/Market/NTO/Utilities/Electricity/Legacy/NTO/Utilities/Electricity/Diagram/NTO/Utilities/Electricity/Operations/NTO/Utilities/Electricity/Operations/StateEstimation/NTO/Utilities/Electricity/Operations/Reserves/NTO/Utilities/Electricity/Telecontrol/NTO/Utilities/Electricity/Telecontrol/InterControlCenter/NTO/Utilities/Electricity/Dynamics/Design decisions
OwnershipShare(Krsko-AKW SI/HR 50/50 anchor),ControlAreaMembership,SynchronousAreaMembership(Balticdesync 2025-02-09 anchor),
BiddingZoneMembership,SwitchAction.Reason: OGIT edges carry no attributes (PLAN D13).
values (SCADA, schedules, set-points, reserve activations,
contingency results, carbon intensity, CEMS, SV-profile estimates).
Every anchor vertex has a
generatesverb tosgo:Timeseries;no JSON payloads on vertices for time-variant data.
(ExcitationSystemDynamics, TurbineGovernorDynamics etc.) plus
model_kindenum +parameter_payloadJSON blob, rather thandeclaring one OGIT class per CIM DY model subtype (~100 named
subtypes; the parameter sets are pure floats, no relations).
SynchronousArea, LFCArea, LFCBlock, Interconnector, TieFlow,
MarketParticipant) inherit directly from
ogit:Entity, not fromPowerSystemResource-- they are operational groupings withoutphysical existence.
exports and other public European power-system datasets);
CamelCase class names; lowerCamelCase verb names.
energy-system simulation outputs) route through the Connector-
Framework MappingRule DSL, not through OWL equivalence
assertions in TTL.
Test plan
check)
validate.shon CI: locally the validator stops at apre-existing
_c-id.ttldirectory-mismatch issue (presenton master with the same exit 123 before this branch); the
single-call validator run shows 0 new errors introduced by
this branch. Awaiting CI result on this PR.
intern + OGIT maintainers)
🤖 Generated with Claude Code