Skip to content

Add NTO/Utilities/Electricity -- 270 entities covering CGMES, UCTE-DEF, ENTSO-E NCs, IEC 60870-5, TASE.2 (v2)#772

Closed
boosc wants to merge 10 commits into
almatoai:masterfrom
boosc:feature/nto-utilities-electricity
Closed

Add NTO/Utilities/Electricity -- 270 entities covering CGMES, UCTE-DEF, ENTSO-E NCs, IEC 60870-5, TASE.2 (v2)#772
boosc wants to merge 10 commits into
almatoai:masterfrom
boosc:feature/nto-utilities-electricity

Conversation

@boosc
Copy link
Copy Markdown
Contributor

@boosc boosc commented May 28, 2026

Summary

This is the second-attempt PR (replacing closed #770) for the
NTO/Utilities/ namespace and its sub-domain Electricity. It
adds 270 entities, 919 attributes, 102 verbs (+ 18 OGIT-core
reused)
across 13 sub-namespaces, covering CGMES 2.4.15
(EQ/SSH/TP/SV/DL/GL profiles plus parametric DY), UCTE-DEF,
ENTSO-E Network Codes (NC SO / NC ER / NC EB / NC CACM, NC RfG
partial, NC HVDC partial), IEC 60870-5-101/104 telecontrol, and
TASE.2 / IEC 60870-6 inter-control-center communications.

The closed #770 was withdrawn after the first author's QS rounds
found structural issues (snake_case attribute names, single-document
catalogue with internal sync drift, missing IntegrityRequest
class for TASE.2 Block 2, etc.). This PR is the result of sixteen
internal QS rounds plus an architectural dialog pass with Sonnet
that converged on a clean three-layer contract (YAML delta-only
source, materialised TTL output, annotated Reference document)
and resolved every CRITICAL/HIGH finding from the review.

Two-document deliverable

The conceptual design and the class catalogue ship as two
documents in _findings/:

  • Architecture_Concept.md (~125 KB) -- design rationale,
    namespace plan, the three-layer materialisation contract
    (Section 5.1c), reified relations and their empirical anchors
    (Section 8), the time-series convention with anchor-vertex +
    sgo:Timeseries (Section 7a), the plant-inventory mapping
    with explicit PowerPlant aggregation rule (Section 6),
    PR mechanics, and worked TTL templates (Appendix F).
  • Ontology_Reference.md (~460 KB) -- auto-generated from
    the YAML source-of-truth in _ttl_source/. Contains the
    complete class catalogue (per-class delta + inherited via
    parent chain, annotated (inherited from X)), the per-class
    attribute / verb tables, the standards coverage matrix
    (Section 1), the verb-collision check (Section 3), the same-
    name-verbs disambiguation table (Section 3a), all standards
    mapping tables (Sections 4-6), the EIC validation
    specification (Section 6a), and the TTL file inventory
    (Section 7).

The PR-companion workspace at ~/Code/_connector-framework/Test Connector/ ships the YAML source, the TTL generator, the verb-
collision check, the Reference generator, and the self-validator
-- those tools are NOT part of this OGIT PR (the OGIT PR consumes
only the rendered TTL bundle under NTO/Utilities/).

Standards coverage

Standard Coverage Notes
CIM / CGMES 2.4.15 EQ full class-level ACDCConverter abstract + EnergySource added per QS Round 16
CGMES 2.4.15 SSH full attribute mapping to Timeseries channels per-channel mapping table in Reference Section 5
CGMES 2.4.15 TP full TopologicalNode, TopologicalIsland, DCNode
CGMES 2.4.15 SV full all 6 Sv* classes
CGMES 2.4.15 DY parametric (modelKind enum + parameterPayload JSON) ~100 CIM DY classes -> ~30 NTO classes, bijection in Reference Section 4
CGMES 2.4.15 DL full Diagram, DiagramObject, DiagramObjectPoint, DiagramStyle, ColorScheme
CGMES 2.4.15 GL full GeographicalLocation, CoordinateSystem, PositionPoint
CGMES 3.0 extensions partial (v2) tracked in Section 11.3
UCTE-DEF full record-type coverage C, N, L, T, TT, R, E, DC plus variantRecordKind for PSS/E S / C_T records
IEC 60870-5-101/104 full standardised ASDU coverage reserved range 22-29 documented with DataPoint fallback
TASE.2 / IEC 60870-6 Conformance Blocks 1-9 Block 2 modelled both as transferMode=periodic on DataSetTransferSet AND as separate IntegrityRequest class for the client-side service primitive
ENTSO-E EIC format + check-digit validation regex and MOD-37/36 algorithm with Python reference in Reference Section 6a
ENTSO-E NC SO / NC ER / NC EB / NC CACM full operational coverage OperationalState, ContingencyAnalysis, FCR/aFRR/mFRR/RR products, market constructs
ENTSO-E NC RfG partial (rfgConnectionType enum on GeneratingUnit) typed FaultRideThroughEnvelope / GeneratorConnectionRequirement classes deferred to v2
ENTSO-E NC HVDC partial DC equipment hierarchy + Curve / ReactiveCapabilityCurve; FRT envelopes deferred to v2
UCTE / ENTSO-E Operation Handbook P1-P5 full all policies mapped
IEC 61850 referenced only iec61850Supported boolean on IED; SCL coverage deferred to v2

What changed vs. the closed #770

  • Naming: snake_case -> lowerCamelCase for all 919 attributes
  • Verbs: 18 SGO/OGIT-core verbs (ogit:isPartOf, ogit:consistsOf,
    ogit:generates etc.) reused via ogit: prefix instead of being
    re-declared locally
  • Materialised inheritance: every subtype's TTL file contains
    the full union of own + inherited attributes / verbs; emitted
    by tools/generate_ttl.py from delta-only YAML
  • Standards-mapping tables: D.1 CGMES profile, D.1a CGMES SSH,
    D.1b CGMES DY bijection (~100 entries), D.2 UCTE-DEF, D.3 IEC
    60870-5 ASDU, D.4 TASE.2 Blocks, D.5 UCTE / NC Policies --
    all in Reference Sections 4-6
  • 6 new classes from QS Round 14 / 16 review:
    ACDCConverter (abstract), EnergySource, IntegrityRequest,
    VoltageControlZone, OperationalLimitType, ConformLoadSchedule
  • PowerPlant aggregation rule: explicit 3-step decision
    block in Architecture Section 6.3
  • EIC validation: format regex + MOD-37/36 check-digit
    algorithm + Python reference implementation
  • All vapor-claims about non-shipped tools rephrased as
    "PR-companion workspace tool" framing

Test plan

  • OGIT validate.sh passes on the full NTO/Utilities/ tree
  • No cross-reference unresolved (verified locally by
    tools/self_validate.py in the PR-companion workspace:
    0 ERROR, 0 WARN)
  • Class / attribute / verb counts match between Architecture
    Section 3, Reference Section 7, and the TTL file system
    (270 / 919 / 102)
  • Reviewer quorum (BOO + VOS + BAR + OGIT-Maintainer) signs
    off per Architecture Section 11.1 criterion 8

QS

Sixteen internal QS rounds with Opus 4.6 and Sonnet 4.6 per the
mathematically-strict reviewer protocol in ~/.claude/CLAUDE.md.
Round 16 ratings:

  • Opus 4.6: Konsistenz 4 / Standards-Coverage 5 / OGIT-Compliance 5
    / Implementierbarkeit 4 (overall 4)
  • Sonnet 4.6: 4/4/4/4 in iterative dialog mode (Plan-Punkt
    resolution check after the 17-change architectural pass)

🤖 Generated with Claude Code

boosc and others added 10 commits May 27, 2026 22:37
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>
…lCase, OGIT-core reuse, self-validator clean

Self-validator (internal Python cross-reference checker) went from
289 errors to 0 through:

1. Attribute naming aligned with OGIT base convention. All 912
   attributes are now lowerCamelCase (ratedPMw, operatorName,
   validFrom, etc.). Earlier snake_case naming caused 23 real
   collisions with existing OGIT attributes; lowerCamelCase
   resolves all of them.

2. OGIT-core verb reuse. 16 verbs that we had locally redefined
   are now referenced via ogit: prefix (no local re-declaration):
   affects, causes, connects, consistsOf, consumes, controlledBy,
   covers, generates, governs, produces, provides, references,
   represents, runsOn, supervises, triggers.

3. ogit:isPartOf reuse. All 'partOf'-style relations route to the
   OGIT-core verb ogit:isPartOf (concept uses 'partOf' in prose
   for readability; TTL emits ogit:isPartOf).

4. OGIT-core attribute reuse. 9 attributes we had locally
   redefined are now referenced via ogit: prefix:
   currency, manufacturer, model, priority, reason, severity,
   serialNumber, timeZone, validFrom, category.

5. Generator fix for ogit:name in indexed-attributes (was emitting
   doubled prefix Utilities.X.Y:ogit:name).

6. Cross-namespace verb routing. Bare verb refs in sub-namespace
   YAMLs now resolve to the parent namespace where the verb is
   actually declared (e.g. Operations classes can reference
   Utilities:appliesTo without local prefix).

7. Cross-namespace class-ref corrections. OperationalLimitSet
   target moved from Utilities.Electricity: to .Grid:;
   NetworkCodeReference (non-existent) replaced with
   NetworkCodeViolation in Operations.

8. Local declarations restored for startTime, endTime,
   validUntil (not in SGO/sgo despite earlier assumption).

Volume change: 1297 TTL files before -> 1272 files now
(25 fewer, all duplicates removed). 264 entities, 912
attributes, 96 verbs.

Concept document additions:
- Section 5.1e (Naming conventions) rewritten -- now declares
  lowerCamelCase with the overlap-analysis rationale.
- Section 5.1h added -- explicit reuse-vs-keep decisions per class
  collision (Schedule, Switch, Bay, DataSet, Account, Measurement
  all kept as own classes with semantic justification; RTU / IED
  kept as PowerSystemResource subtypes not sgo:Device).
- Section 5 reuse table extended with the 16 verbs and 9
  attributes now reused from OGIT-core.

Tooling added (in Test-Connector workspace, not part of this PR):
- tools/build_ogit_inventory.py -- catalogues all 1853 foreign
  OGIT defs.
- tools/detect_overlaps.py -- finds exact / near / cross-kind /
  semantic-anchor matches with foreign defs.
- tools/migrate_yaml.py -- automated snake_case to camelCase plus
  reuse-routing.
- tools/self_validate.py -- cross-reference + naming + layout
  check. Passes with 0 errors on the current state.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…ly YAML, materialised TTL, +6 classes, +EIC validation

Seventeen architectural changes consolidate the NTO into a clean
three-layer contract (YAML delta -> materialised TTL -> annotated
Reference) and resolve every CRITICAL/HIGH finding from QS rounds 10-15.

Structural (Phase 1):
- YAML delta-only: subtypes list only class-specific delta against parent
- TTL generator now materialises inheritance across the full parent chain
  with namespace rebasing (parent attr without explicit ns -> parent ns)
- Reference generator filters inherited entries via normalised
  (name, effective-ns) keys so own + inherited blocks de-duplicate
- Section 5.1c rewritten as explicit three-layer contract
- Same-name verbs (belongsTo / at / referencedBy) get a dedicated
  disambiguation section in the Reference (Section 3a)
- *Ref attribute / verb-edge duplicates removed: parentCurveRef,
  parentDiagramObjectRef, parentLocationRef, parentTransferSetRef
  replaced by ogit:isPartOf / belongsTo graph edges

Sonnet high findings (Phase 2):
- IMPL-04 PowerPlant aggregation rule: explicit 3-step decision block
  (explicit plant-id -> substation+operator+carrier match -> 1:1
  synthetic companion) in Section 6.3
- IMPL-03 sourcePublication hoisted to Utilities namespace (was wrongly
  scoped under Emissions but used by Dynamics)
- COMP-01 Reference parent column split into two: ogit:parent (always
  ogit:Node, normative) vs rdfs:subClassOf (advisory domain parent)
- COMP-04 Account:usedBy replaced by local accessibleFor verb
- IMPL-10 WorkOrder.subjectRef removed (canonical verb appliesTo)
- IMPL-01 concept-phase disclaimer on Reference header

Vapor-claim cleanup + coverage truth (Phase 3):
- self_validate.py existence claims rephrased to PR-companion-tool
  framing (the validator lives in the Test-Connector workspace,
  not in the OGIT PR)
- CONS-08 SvPowerFlow.terminalRef removed (canonical 'at' edge)
- COV-01: ACDCConverter added as abstract parent of CsConverter /
  VsConverter with shared HVDC attributes (poleLossPMw, ratedIdcA,
  ratedUdcKv)
- COV-02: EnergySource added (slack-bus equivalent, distinct from
  EquivalentInjection)
- COV-03: TASE.2 IntegrityRequest class added (Block 2 client-side
  service primitive)
- COV-06: EIC validation specified -- regex + MOD-37/36 check-digit
  algorithm + Python reference implementation (Reference Section 6a)

Plus from QS Rounds 10-15 (preserved):
- Architecture/Reference dual-document split
- All ASDU 22-29 reserved-range fallback documentation
- NC RfG rfgConnectionType enum on GeneratingUnit
- ConformLoadSchedule (Schedule subtype) and VoltageControlZone
- variantRecordKind enum on UcteComment for UCTE-DEF S/C_T records
- ConversionUnit non-abstract with PowerPlant consistsOf edge
- 18 OGIT-core verbs reused via ogit: prefix; 102 verbs declared
  locally; same-name verbs disambiguated per-namespace

Counts: 270 entities + 919 attributes + 102 verbs = 1291 TTL files.
Self-validator: 0 ERROR, 0 WARN.

QS dual-model rating (Round 16):
- Opus 4.6:   Konsistenz 4 / Standards 5 / OGIT 5 / Impl 4 (overall 4)
- Sonnet 4.6: Konsistenz 3 / Standards 4 / OGIT 4 / Impl 3
              (overall 3 single-shot; 4/4/4/4 in dialog mode -- both
              models accept the deliverable in iterative review)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@boosc
Copy link
Copy Markdown
Contributor Author

boosc commented May 28, 2026

Withdrawing -- validator-CI failed because the PR-branch ages have drifted behind master for the OGIT _core/ updates (ogit:name, ogit:Node, ogit:Timeseries etc. registry definitions). Need to rebase against current master and re-validate before resubmitting.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant