URPX Interoperability & Standards Integration
PRE-DRAFT DOCUMENT - WORKING GROUP REVIEW ONLY
Status: Draft in Progress Audience: URPX Working Group Members Warning: This document is under active development and subject to significant changes. Content may be incomplete, inaccurate, or outdated.
Purpose: Internal working group review and discussion to establish standards integration and mapping methodology.
Comprehensive guide to URPX interoperability, multi-standard integration, and semantic mapping.
Table of Contents
- Overview
- Standards Ecosystem
- Mapping Methodology
- SKOS Semantic Approach
- Supported Standards & Integrations
- Mapping Profile Publication
- Integration Patterns
Overview
URPX follows a complementary architecture approach, integrating with existing utility data standards to provide comprehensive rate plan information within the broader energy data ecosystem. Rather than creating isolated formats, URPX provides formal mappings that preserve semantics across system boundaries.
Why Multi-Standard Integration Matters
Utility rate plan data does not exist in isolation. It must integrate with:
- Customer data systems (Green Button, LF Energy CDS)
- Demand response (OpenADR, IEEE 2030.5)
- Smart home/IoT (Zigbee, Matter, Thread)
- Grid operations (CIM, IEC standards)
URPX mappings enable bidirectional data exchange while preserving meaning and ensuring data quality across all these ecosystems.
Standards Ecosystem
URPX Standards Integration Architecture
Integration Principles
Data Separation
- URPX: Public rate plan structures, pricing, eligibility rules
- CDS: Customer accounts, service agreements, personal information
- Green Button: Interval usage data, consumption measurements
Reference Architecture
- URPX references CDS and Green Button entities via URIs
- No data duplication across standards
- Clear privacy boundaries maintained
Mapping Methodology
URPX uses formal RDF mappings to connect with other standards. Each mapping profile includes:
1. Vocabulary Alignment
- Class mappings (URPX classes ↔ Standard classes)
- Property mappings (URPX properties ↔ Standard properties)
- Value set mappings (Enumerations and controlled vocabularies)
2. Transformation Rules
- Data type conversions
- Unit transformations
- Temporal format alignment
- Structural reorganization patterns
3. Bidirectional Fidelity
- Round-trip conversion verification
- Loss-less transformation where possible
- Extension fields for standard-specific data
SKOS Semantic Approach
To map URPX to existing standards without creating hard technical dependencies or IP risks, we use SKOS (Simple Knowledge Organization System). SKOS is a W3C standard designed for linking controlled vocabularies and taxonomies across different domains.
Mapping Logic used in URPX:
skos:exactMatch: Used for concepts that are semantically identical (e.g.,urpx:unitPriceto a specific API field).skos:broadMatch: Used when URPX provides a more generalized concept (e.g., URPX supports Water/Gas while the target is Energy-only).skos:relatedMatch: Used for functional links where structures differ but the purpose is shared (e.g., linking a Rate Plan to an IoT Pricing Signal).
Supported Standards & Integrations
Green Button Alliance
Purpose: Customer usage data exchange standard.
Integration Logic
Green Button provides interval usage measurements that align with URPX TOU periods for accurate cost calculation.
Cost Calculation Flow:
- URPX provides TOU schedule and charge structure
- Green Button provides interval usage data
- System maps usage to applicable TOU periods
- Charges applied based on matched periods
- Total cost calculated
Mapping Example
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix urpx: <https://urpx.org/ns/ontology/> .
@prefix gb: <http://naesb.org/espi#> .
# Core Structural Alignment
urpx:RatePlan skos:relatedMatch gb:PricingStructure ;
skos:note "The RatePlan URL maps to the PricingStructure URI in ESPI UsagePoint." .
urpx:Price skos:broadMatch gb:LineItem ;
skos:note "URPX procedural prices map to static ESPI bill line items." .
# Line Item Alignment (ESPI V4 ItemKind)
gb:ItemKind_AdministrativeFee a skos:Concept ;
skos:notation "4" ;
skos:closeMatch urpx:serviceCharge ;
skos:note "Green Button Administrative Fee line items map to URPX serviceCharge." .
LF Energy CDS
Purpose: Customer Data Specification for accounts and billing.
Integration Logic
URPX maintains privacy boundaries through reference-only integration. URPX billing cycles align with CDS billing periods.
URPX ServiceAccount:
{
"@type": "ServiceAccount",
"serviceAccountReference": "cds:customer:uuid-550e8400-e29b-41d4-a716-446655440000",
"accountServiceType": {"@id": "urpx:electricService"}
}
Mapping Example
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix urpx: <https://urpx.org/ns/ontology/> .
@prefix lfe: <https://lfenergy.org/cds/> .
# Charge Type Mapping
lfe:BaseCharge a skos:Concept ;
skos:exactMatch urpx:minimumCharge ;
skos:note "LF Energy BaseCharge maps to URPX minimumCharge." .
lfe:ConsumptionCharge a skos:Concept ;
skos:exactMatch urpx:usageCharge ;
skos:note "LF Energy ConsumptionCharge maps to URPX usageCharge." .
Common Information Model (CIM)
Purpose: Enterprise utility system integration (IEC 61968/61970).
Integration Logic
URPX reuses CIM properties for industry alignment, particularly for measurement definitions.
measurementKind↔ CIM ReadingTypeunitOfMeasure↔ CIM UnitSymbolphaseCodeKind↔ CIM PhaseCode
Mapping Example
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix urpx: <https://urpx.org/ns/ontology/> .
@prefix cim: <http://iec.ch/TC57/CIM-generic#> .
# Class Alignment
urpx:TOUPeriod skos:broadMatch cim:TimeTariffInterval ;
skos:note "Generalized for multi-utility use; CIM equivalent is energy-specific." .
urpx:Price skos:exactMatch cim:Price .
OpenADR
Purpose: Demand response and grid signal communication.
Mapping Scope:
- OpenADR event signals ↔ URPX dynamic pricing events
- OpenADR programs ↔ URPX rate plan modifiers
Mapping Example
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix urpx: <https://urpx.org/ns/ontology/> .
@prefix oadr: <http://openadr.org/oadr#> .
# Event Mapping
urpx:DynamicPricing skos:relatedMatch oadr:EiEvent ;
skos:note "URPX defines the rate boundaries; OpenADR signals real-time values." .
urpx:currentPrice skos:relatedMatch oadr:oadrPayload ;
skos:note "Maps to the price signal value within an OpenADR message." .
Smart Home & IoT (Matter, Zigbee)
Purpose: Device interoperability and home automation.
Matter Integration
Bridges utility rate plan structures to residential Energy Management Clusters in the Matter 1.4+ standard.
@prefix matter: <http://csa-iot.org/matter#> .
urpx:TOUTierStandardNameValue skos:relatedMatch matter:EnergyManagementCluster ;
skos:note "Maps Peak/Off-Peak tier names to Matter device power-shifting states." .
Zigbee Integration
Maps rate information to the legacy and modern HAN (Home Area Network) clusters.
@prefix zigbee: <http://zigbee.org/sep#> .
urpx:Price skos:relatedMatch zigbee:PriceCluster ;
skos:note "Maps URPX Price instances to Zigbee cost attributes." .
Mapping Profile Publication
Each published mapping profile includes header metadata, vocabulary declarations, and bidirectional mapping rules.
Directory: skos/
Naming Convention: urpx-{standard-name}-mappings.ttl
Versioning: Mapping files are versioned independently from URPX core (Major.Minor.Patch).
Integration Patterns
Pattern 1: Rate Plan Cost Modeling
Use Case: Retrieve a customer's meter and account data, determine eligible rate plans, and compute cost options for a scenario
Pattern 2: Conditional Mapping
Use When: Mapping depends on context or additional properties. In SKOS, this is handled via skos:closeMatch or skos:broadMatch with explanatory notes, as SKOS does not natively support computational conditions.
Example: Green Button tariffProfile → URPX name, conditionally URPX RatePlanIdentifier
gb:tariffProfile a skos:Concept ;
skos:closeMatch urpx:name ;
skos:note "Maps to urpx:name by default. If a producer profile or Green Button Alliance restriction declares tariffProfile a coded identifier, urpx:RatePlanIdentifier is the better fit; RatePlanIdentifierShape requires a skos:notation and scheme IRI that a free String256 cannot supply on its own, so no identifier alignment applies otherwise." .