Liking cljdoc? Tell your friends :D

urpx.schema

Malli schemas for URPX v0.2.0 entities, describing the coerced shape.

Two-layer model (mirroring the clj-oa3 pattern):

  • urpx.core — raw parse: JSON-LD with namespaced keys, all string values.
  • urpx.schema — coerced shape: typed Clojure values (BigDecimal, LocalDate, LocalTime, LocalDateTime, Duration, integer month numbers).

Schemas carry :decode/urpx-jsonld decoders that turn the raw parser output (strings) into the typed shape described here. The transformer is built and applied in urpx.coerce. Reference resolution keeps :jsonld/id references intact; consumers dereference via an entity index.

Schemas are bare def vars referenced by symbol — there is no central registry except inside ConditionExpression, where the recursive Comparison/Boolean operand tree uses a local Malli registry.

Malli schemas for URPX v0.2.0 entities, describing the coerced shape.

Two-layer model (mirroring the clj-oa3 pattern):
  - urpx.core      — raw parse: JSON-LD with namespaced keys, all string values.
  - urpx.schema    — coerced shape: typed Clojure values (BigDecimal, LocalDate,
                     LocalTime, LocalDateTime, Duration, integer month numbers).

Schemas carry `:decode/urpx-jsonld` decoders that turn the raw parser output
(strings) into the typed shape described here. The transformer is built and
applied in `urpx.coerce`. Reference resolution keeps :jsonld/id references
intact; consumers dereference via an entity index.

Schemas are bare def vars referenced by symbol — there is no central registry
except inside ConditionExpression, where the recursive Comparison/Boolean
operand tree uses a local Malli registry.
raw docstring

AlternativeDimensionclj

One axis of a customer-profile choice — e.g. 'incomeTier' (with possible values CARE / FERA / Standard) or 'voltageLevel'.

Per upstream urpx commit c9d974f (closes urpx-org/urpx#30), exactly one of urpx:dimensionProperty (xsd:anyURI when a suitable URPX property exists) or urpx:customDimensionProperty (xsd:string fallback) must be present. The xone is enforced by SHACL (pyshacl); we keep the Malli schema open-world and let SHACL catch violations, consistent with the existing stance for analogous customConditionProperty on operand nodes.

One axis of a customer-profile choice — e.g. 'incomeTier' (with possible
values CARE / FERA / Standard) or 'voltageLevel'.

Per upstream urpx commit c9d974f (closes urpx-org/urpx#30), exactly one
of urpx:dimensionProperty (xsd:anyURI when a suitable URPX property
exists) or urpx:customDimensionProperty (xsd:string fallback) must be
present. The xone is enforced by SHACL (pyshacl); we keep the Malli
schema open-world and let SHACL catch violations, consistent with the
existing stance for analogous customConditionProperty on operand nodes.
raw docstring

AlternativeDimensionsclj

Container for the AlternativeDimension(s) that span a ProfileAlternatives choice (typically a single dimension; multi-dimension matrices possible).

Container for the AlternativeDimension(s) that span a ProfileAlternatives
choice (typically a single dimension; multi-dimension matrices possible).
raw docstring

ApplicabilityGroupclj

Container for cross-cutting applicability conditions; carried on Price/PriceSet to express things like income-tier eligibility. Extra geographic/customer fields exist in v0.2.0 SHACL but most fixtures only carry name + hasConditionExpression.

Container for cross-cutting applicability conditions; carried on
Price/PriceSet to express things like income-tier eligibility.
Extra geographic/customer fields exist in v0.2.0 SHACL but most fixtures
only carry name + hasConditionExpression.
raw docstring

ApplicabilityRuleclj


BillingModelclj

v0.2.0: hasPriceDefinition is required (min 1) and lives at this level (not inside Ledger). The v0.1.x BillingModel.hasServiceTier flat vector is gone — block tiers now live under hasServiceTiers's nested urpx:hasServiceTier field.

Both hasTOUSchedule and hasServiceTiers are vectors (sh:maxCount unbounded per BillingModelShape). single-or-vec->vec keeps single-container fixtures compatible without touching their JSON-LD:

  • hasTOUSchedule is a vector for filings that TOU-zone multiple metric inputs (CPAU E-4 TOU: separate energy + demand schedules, URPX-qb5).
  • hasServiceTiers is a vector for filings with a baseline-allowance matrix — one ServiceTiers per (territory, code) cell — driven by ProfileAlternatives selection (PG&E E-TOU-C baseline-tier modifier; URPX-6hf, per upstream Una guidance on matrix handling).
v0.2.0: hasPriceDefinition is required (min 1) and lives at this level
(not inside Ledger). The v0.1.x BillingModel.hasServiceTier flat vector
is gone — block tiers now live under hasServiceTiers's nested
`urpx:hasServiceTier` field.

Both hasTOUSchedule and hasServiceTiers are vectors (sh:maxCount
unbounded per BillingModelShape). `single-or-vec->vec` keeps
single-container fixtures compatible without touching their JSON-LD:

  - hasTOUSchedule is a vector for filings that TOU-zone multiple
    metric inputs (CPAU E-4 TOU: separate energy + demand schedules,
    URPX-qb5).
  - hasServiceTiers is a vector for filings with a baseline-allowance
    matrix — one ServiceTiers per (territory, code) cell — driven by
    ProfileAlternatives selection (PG&E E-TOU-C baseline-tier modifier;
    URPX-6hf, per upstream Una guidance on matrix handling).
raw docstring

CalculationMethodclj


CompletenessResultclj

urpx:CompletenessResultValue, 6 members. The coverage verdict on a CoverageClaim. Freshness (urpx:stale) and resolution provenance (urpx:fallbackSourced) are orthogonal booleans, not members here.

urpx:CompletenessResultValue, 6 members. The coverage verdict on a
CoverageClaim. Freshness (urpx:stale) and resolution provenance
(urpx:fallbackSourced) are orthogonal booleans, not members here.
raw docstring

ConditionExpressionclj

Recursive condition tree. Uses a local Malli registry to express the ComparisonNode / BooleanOperationNode mutual recursion.

Tree shape: ConditionExpression.rootNode → ComparisonNode | BooleanOperationNode ComparisonNode.{leftOperand,rightOperand} → any operand (recursively) BooleanOperationNode.operandNodes → vector of operands

Where 'operand' is one of: ObjectOperandNode, DatatypeOperandNode, CustomOperandNode, ComparisonNode, BooleanOperationNode.

Recursive condition tree. Uses a local Malli registry to express the
ComparisonNode / BooleanOperationNode mutual recursion.

Tree shape:
  ConditionExpression.rootNode → ComparisonNode | BooleanOperationNode
  ComparisonNode.{leftOperand,rightOperand} → any operand (recursively)
  BooleanOperationNode.operandNodes → vector of operands

Where 'operand' is one of: ObjectOperandNode, DatatypeOperandNode,
CustomOperandNode, ComparisonNode, BooleanOperationNode.
raw docstring

Confidenceclj

urpx:ConfidenceValue, 3 members.

urpx:ConfidenceValue, 3 members.
raw docstring

Contextclj

A JSON-LD @context, in any of the three forms the spec permits: an inline definition object, an IRI string pointing at a remote context, or an array mixing the two.

The array form is not hypothetical: every v0.5.1 test case shipped with urpx-org/urpx carries ["https://urpx.org/ns/context/releases/v0.5.1/jsonld/urpx-context.jsonld" {"prefix": "..."}] a remote context followed by a local prefix map, so typing this as :map alone rejected the standard's own reference documents.

Deliberately permissive. clj-urpx never interprets @context: it round-trips it untouched and urpx.emit attaches its own. There is no consumer path that a tighter shape would protect, so the only thing a narrower type can do here is reject valid input.

A JSON-LD @context, in any of the three forms the spec permits: an inline
definition object, an IRI string pointing at a remote context, or an array
mixing the two.

The array form is not hypothetical: every v0.5.1 test case shipped with
urpx-org/urpx carries
  ["https://urpx.org/ns/context/releases/v0.5.1/jsonld/urpx-context.jsonld"
   {"prefix": "..."}]
a remote context followed by a local prefix map, so typing this as :map
alone rejected the standard's own reference documents.

Deliberately permissive. clj-urpx never interprets @context: it round-trips
it untouched and urpx.emit attaches its own. There is no consumer path that
a tighter shape would protect, so the only thing a narrower type can do here
is reject valid input.
raw docstring

CoverageClaimclj

What a version snapshot claims to cover. urpx:completenessResult is the one required field (sh:minCount 1 on urpx-shacl:CoverageClaimShape).

What a version snapshot claims to cover. urpx:completenessResult is the one
required field (sh:minCount 1 on urpx-shacl:CoverageClaimShape).
raw docstring

CustomerProfileclj

v0.2.0: greatly expanded; we list the few properties we currently consume plus hasCustomerKind which is the canonical test-case dispatch in the fixtures.

v0.2.0: greatly expanded; we list the few properties we currently consume
plus hasCustomerKind which is the canonical test-case dispatch in the
fixtures.
raw docstring

CustomOperandNodeclj

Like DatatypeOperandNode but with a free-form customConditionProperty string in lieu of a Ref-valued conditionProperty. Useful when the condition property isn't yet in the URPX vocabulary (e.g. PG&E's departureVintage).

Like DatatypeOperandNode but with a free-form `customConditionProperty`
string in lieu of a Ref-valued conditionProperty. Useful when the
condition property isn't yet in the URPX vocabulary (e.g. PG&E's
`departureVintage`).
raw docstring

DataSourceReferenceclj

v0.2.0: many new optional fields. mediaType is now Ref-only (no longer string); we list the most commonly populated fields.

v0.2.0: many new optional fields. mediaType is now Ref-only (no longer
string); we list the most commonly populated fields.
raw docstring

DatatypeOperandNodeclj

Typed-literal operand. Carries optional conditionProperty (a Ref) and one typed value field. SHACL's sh:xone enforces 'exactly one value field'; the coercer simply decodes whichever is present.

Typed-literal operand. Carries optional conditionProperty (a Ref) and one
typed value field. SHACL's sh:xone enforces 'exactly one value field'; the
coercer simply decodes whichever is present.
raw docstring

Dateclj


DateTimeclj


Decimalclj


EligibilityRuleclj

v0.2.0: closed shape. hasCustomerProfile is gone (moved to Scenario). hasConditionExpression is the only required body field.

v0.2.0: closed shape. hasCustomerProfile is gone (moved to Scenario).
hasConditionExpression is the only required body field.
raw docstring

enum-refclj

(enum-ref & locals)

A JSON-LD @id reference restricted to a fixed vocabulary: like Ref, but the id must be one of locals, each given bare and prefixed with "urpx:" here.

URPX encodes these as IRI references rather than strings, so a value arrives as {:jsonld/id "urpx:complete"} and this checks membership of that id. Upstream they are owl:oneOf classes enforced through sh:in at the property.

A JSON-LD @id reference restricted to a fixed vocabulary: like `Ref`, but the
id must be one of `locals`, each given bare and prefixed with "urpx:" here.

URPX encodes these as IRI references rather than strings, so a value arrives
as {:jsonld/id "urpx:complete"} and this checks membership of that id.
Upstream they are owl:oneOf classes enforced through sh:in at the property.
raw docstring

Evaluationclj

How a coverage claim was arrived at: who evaluated it, when, and of what kind. Reached from CoverageClaim via urpx:explainedBy.

How a coverage claim was arrived at: who evaluated it, when, and of what
kind. Reached from CoverageClaim via urpx:explainedBy.
raw docstring

EvaluationKindclj

urpx:EvaluationKindValue, 5 members.

urpx:EvaluationKindValue, 5 members.
raw docstring

ExclusionReasonclj

urpx:ExclusionReasonValue, 4 members. New at v0.5.1.

urpx:ExclusionReasonValue, 4 members. New at v0.5.1.
raw docstring

ExclusiveRefclj

A JSON-LD @id reference used where an INLINE NODE is the alternative, as in [:or SomeEntity ExclusiveRef]. Closed, unlike Ref, and that is the whole point: Ref is an open map, so an [:or Node Ref] whose second arm is Ref matches any map carrying a :jsonld/id and the node arm is never reached. A malformed inline node then validates as though it were a reference. Closing it means a bare reference still passes while anything richer must satisfy the node schema.

Closed to @id ALONE, deliberately. A node that asserts an @type is asserting something about itself and should be validated as a node of that type, not waved through as a reference; without this, an @id paired with any @type at all passes whatever slot it sits in. Every one of the 15,295 bare references in the urpx-rate-plans corpus carries @id and nothing else, so this costs nothing real.

Use Ref for reference-only properties, where no inline form is permitted and openness costs nothing.

A JSON-LD @id reference used where an INLINE NODE is the alternative, as in
[:or SomeEntity ExclusiveRef]. Closed, unlike `Ref`, and that is the whole
point: `Ref` is an open map, so an [:or Node Ref] whose second arm is `Ref`
matches any map carrying a :jsonld/id and the node arm is never reached.
A malformed inline node then validates as though it were a reference.
Closing it means a bare reference still passes while anything richer must
satisfy the node schema.

Closed to @id ALONE, deliberately. A node that asserts an @type is asserting
something about itself and should be validated as a node of that type, not
waved through as a reference; without this, an @id paired with any @type at
all passes whatever slot it sits in.
Every one of the 15,295 bare references in the urpx-rate-plans corpus carries
@id and nothing else, so this costs nothing real.

Use `Ref` for reference-only properties, where no inline form is permitted
and openness costs nothing.
raw docstring

Holidayclj

v0.2.0: holidayName is required. Observance can be a literal date (urpx:holidayDate) or a free-form rule string (urpx:holidayRule); urpx:observanceRule (Ref) optionally shifts the date when it lands on a weekend.

v0.2.0: holidayName is required. Observance can be a literal date
(urpx:holidayDate) or a free-form rule string (urpx:holidayRule);
urpx:observanceRule (Ref) optionally shifts the date when it lands on a
weekend.
raw docstring

HolidayCalendarclj


Intclj

An xsd:integer field — JSON parser may produce long already, but tolerate strings.

An xsd:integer field — JSON parser may produce long already, but tolerate strings.
raw docstring

IsoDurationclj


Ledgerclj

v0.2.0: Ledger no longer carries hasPriceDefinition. PriceDefinitions live at BillingModel.hasPriceDefinition with PriceDefinition.referencesLedger pointing back to one of the BillingModel.hasLedger entries.

v0.2.0: Ledger no longer carries hasPriceDefinition. PriceDefinitions
live at BillingModel.hasPriceDefinition with PriceDefinition.referencesLedger
pointing back to one of the BillingModel.hasLedger entries.
raw docstring

MetricInputclj


MetricSpecificationclj


ModelExclusionclj

Something a PricingModel deliberately leaves out, and why. New in v0.5.1. urpx:PricingModel is not modeled in clj-urpx, so excludedModel stays a Ref.

Something a PricingModel deliberately leaves out, and why. New in v0.5.1.
urpx:PricingModel is not modeled in clj-urpx, so excludedModel stays a Ref.
raw docstring

MonthNumberclj


NodeIdentityclj

Common JSON-LD identity fields present on most entities.

Common JSON-LD identity fields present on most entities.
raw docstring

ObjectOperandNodeclj

Ref-valued operand. sh:xone in SHACL constrains exactly one of conditionProperty, referencesValue, or referencesMetricInput to be present; we don't enforce that here — let pyshacl be the strict validator.

Ref-valued operand. sh:xone in SHACL constrains exactly one of
conditionProperty, referencesValue, or referencesMetricInput to be present;
we don't enforce that here — let pyshacl be the strict validator.
raw docstring

Organizationclj

v0.2.0: legalName is now optional; organizationType is required. urpx:eiaId is gone — utility identifiers now live under hasIdentity → urpx:OrganizationIdentity (not modeled here yet).

v0.2.0: legalName is now optional; organizationType is required.
urpx:eiaId is gone — utility identifiers now live under hasIdentity →
urpx:OrganizationIdentity (not modeled here yet).
raw docstring

OrganizationIdentifierclj

A typed external identifier for an organization, hung off urpx:hasIdentity. v0.5.1 reshaped this: urpx:identifierScheme and urpx:utilityId are gone and skos:notation plus urpx:scheme are now required. An EIA id rides here as notation under the EIA scheme rather than as the former urpx:eiaId.

A typed external identifier for an organization, hung off urpx:hasIdentity.
v0.5.1 reshaped this: urpx:identifierScheme and urpx:utilityId are gone and
skos:notation plus urpx:scheme are now required. An EIA id rides here as
notation under the EIA scheme rather than as the former urpx:eiaId.
raw docstring

PlanElementsclj

v0.2.0: gains optional urpx:hasProfileAlternatives for declarative customer-or-configuration choices (income tier, voltage configuration, PCIA default tier, …). Each ProfileAlternatives is referenced by a PriceSetAlternatives at Prices.hasPriceSetAlternatives — the per-customer selection that determines which alternative's prices apply.

v0.2.0: gains optional `urpx:hasProfileAlternatives` for declarative
customer-or-configuration choices (income tier, voltage configuration,
PCIA default tier, …). Each ProfileAlternatives is referenced by a
PriceSetAlternatives at Prices.hasPriceSetAlternatives — the per-customer
selection that determines which alternative's prices apply.
raw docstring

Priceclj

v0.2.0: many new optional value fields (adder, amount, basePrice, basedOnPrice, currentPrice, multiplier) and metadata (hasApplicabilityGroup, hasRateCase, …). referencesPriceDefinition is sh:maxCount 1 (still required in practice for any per-energy price).

v0.2.0: many new optional value fields (adder, amount, basePrice,
basedOnPrice, currentPrice, multiplier) and metadata
(hasApplicabilityGroup, hasRateCase, …). referencesPriceDefinition is
sh:maxCount 1 (still required in practice for any per-energy price).
raw docstring

PriceDefinitionclj

v0.2.0: PriceDefinition gains required referencesLedger plus many properties that used to live on Price (priceCurrency, primaryChargeType, referencesServiceTier, referencesTouPeriod, serviceTierNumber, …). One PD can govern many Prices via Price.referencesPriceDefinition.

v0.2.0: PriceDefinition gains required referencesLedger plus many properties
that used to live on Price (priceCurrency, primaryChargeType,
referencesServiceTier, referencesTouPeriod, serviceTierNumber, …). One PD
can govern many Prices via Price.referencesPriceDefinition.
raw docstring

PriceDefinitionReferenceclj

A PriceDefinition a snapshot relies on, and whether its content is included here or has to be retrieved elsewhere. urpx:referenceInclusion is required. urpx:ModelCollection is not modeled, so resolvedFrom stays a Ref vector.

A PriceDefinition a snapshot relies on, and whether its content is included
here or has to be retrieved elsewhere. urpx:referenceInclusion is required.
urpx:ModelCollection is not modeled, so resolvedFrom stays a Ref vector.
raw docstring

Pricesclj

v0.2.0: gains optional urpx:hasPriceSetAlternatives for customer-profile- driven price selection. Each PriceSetAlternatives references a sibling ProfileAlternatives (declared at PlanElements.hasProfileAlternatives) and exposes one PriceSetAlternative per ProfileAlternative.

v0.2.0: gains optional `urpx:hasPriceSetAlternatives` for customer-profile-
driven price selection. Each PriceSetAlternatives references a sibling
ProfileAlternatives (declared at PlanElements.hasProfileAlternatives) and
exposes one PriceSetAlternative per ProfileAlternative.
raw docstring

PriceSetclj


PriceSetAlternativeclj

One Price-bearing alternative within a PriceSetAlternatives set. Carries Price-like top-level fields (chargeType, billPortion, …) plus the required referencesProfileAlternative Ref linking it to one of the sibling ProfileAlternatives, plus hasPrice (1..*) for the actual prices that apply when this alternative is selected.

One Price-bearing alternative within a PriceSetAlternatives set.
Carries Price-like top-level fields (chargeType, billPortion, …) plus
the required `referencesProfileAlternative` Ref linking it to one of
the sibling ProfileAlternatives, plus `hasPrice` (1..*) for the actual
prices that apply when this alternative is selected.
raw docstring

PriceSetAlternativesclj

Top-level container for a customer-profile-driven price selection. Lives at Prices.hasPriceSetAlternatives. References one ProfileAlternatives (declared at PlanElements.hasProfileAlternatives) whose alternatives drive per-PriceSetAlternative choice.

Top-level container for a customer-profile-driven price selection.
Lives at Prices.hasPriceSetAlternatives. References one ProfileAlternatives
(declared at PlanElements.hasProfileAlternatives) whose alternatives drive
per-PriceSetAlternative choice.
raw docstring

ProfileAlternativeclj

A single named alternative within a ProfileAlternatives set. The hasConditionExpression says how to determine whether this alternative applies to a given customer; defaultSelectionLogic is a free-form tie-breaker / default note when conditions don't disambiguate.

A single named alternative within a ProfileAlternatives set. The
`hasConditionExpression` says how to determine whether this alternative
applies to a given customer; `defaultSelectionLogic` is a free-form
tie-breaker / default note when conditions don't disambiguate.
raw docstring

ProfileAlternativesclj

Top-level declaration of a customer-profile-driven choice. Lives at PlanElements.hasProfileAlternatives. PriceSetAlternatives reference one ProfileAlternatives via urpx:referencesProfileAlternatives, and each PriceSetAlternative within the set selects ONE of its sibling ProfileAlternatives via urpx:referencesProfileAlternative.

Top-level declaration of a customer-profile-driven choice. Lives at
PlanElements.hasProfileAlternatives. PriceSetAlternatives reference one
ProfileAlternatives via urpx:referencesProfileAlternatives, and each
PriceSetAlternative within the set selects ONE of its sibling
ProfileAlternatives via urpx:referencesProfileAlternative.
raw docstring

RateCaseclj

v0.2.0: NEW. Identifies the regulatory proceeding that authorized a PriceDefinition / RatePlanVersion / Price / PriceSet.

v0.2.0: NEW. Identifies the regulatory proceeding that authorized a
PriceDefinition / RatePlanVersion / Price / PriceSet.
raw docstring

RatePlanclj

v0.2.0: ratePlanUniqueIdentifier is required (replaces v0.1.x ratePlanIdentifier). RatePlan gains many optional date/metadata fields; we list the ones the tests / consumers care about.

v0.2.0: ratePlanUniqueIdentifier is required (replaces v0.1.x
ratePlanIdentifier). RatePlan gains many optional date/metadata fields;
we list the ones the tests / consumers care about.
raw docstring

RatePlanIdentifierclj

A typed external identifier for a urpx:RatePlan, e.g. a CPUC MIDAS RIN.

A typed external identifier for a urpx:RatePlan, e.g. a CPUC MIDAS RIN.
raw docstring

RatePlanModifierclj

v0.2.0: modifierUniqueIdentifier is required (was per-version in v0.1.x). urpx:isOptional is gone.

v0.2.0: modifierUniqueIdentifier is required (was per-version in v0.1.x).
urpx:isOptional is gone.
raw docstring

RatePlanModifierIdentifierclj

Parallel to RatePlanIdentifier, for a urpx:RatePlanModifier.

Parallel to `RatePlanIdentifier`, for a urpx:RatePlanModifier.
raw docstring

RatePlanModifierVersionclj

v0.2.0: changeReason, serviceRole, publishedBy, modifierVersionNumber are now required. modifierIdentifier is gone — it moved to RatePlanModifier as modifierUniqueIdentifier.

v0.2.0: changeReason, serviceRole, publishedBy, modifierVersionNumber are
now required. modifierIdentifier is gone — it moved to RatePlanModifier as
modifierUniqueIdentifier.
raw docstring

RatePlanVersionclj

v0.2.0: changeReason, serviceRole, publishedBy are now required; gains customerChoice, isDefault, hasModifierOptions, hasRateCase, supersedes, plus a set of date/dateTime metadata fields. We list the fields we currently consume plus the headline metadata.

v0.2.0: changeReason, serviceRole, publishedBy are now required; gains
customerChoice, isDefault, hasModifierOptions, hasRateCase, supersedes,
plus a set of date/dateTime metadata fields. We list the fields we
currently consume plus the headline metadata.
raw docstring

Refclj

A JSON-LD @id reference: {:jsonld/id "urpx:foo"}. Resolved against the entity index built from the parsed document.

A JSON-LD @id reference: {:jsonld/id "urpx:foo"}.
Resolved against the entity index built from the parsed document.
raw docstring

ReferenceInclusionclj

urpx:ReferenceInclusionValue, 2 members.

urpx:ReferenceInclusionValue, 2 members.
raw docstring

Scenarioclj

v0.2.0: NEW. EligibilityRule.hasCustomerProfile moved here. SHACL's sh:or constraint requires either hasCustomerProfile xor hasServicePointProfile; we treat both as optional.

v0.2.0: NEW. EligibilityRule.hasCustomerProfile moved here. SHACL's sh:or
constraint requires either hasCustomerProfile xor hasServicePointProfile;
we treat both as optional.
raw docstring

Seasonclj


ServiceBracketclj

v0.2.0 + 423e83f: contextual boundary definition for a ServiceTier. Carries the bounds + bound operators that previously lived inline on ServiceTier, plus optional appliesInSeason / referencesProfileAlternative qualifiers so a single logical tier (one ServiceTier, identified by serviceTierNumber) can carry season- or PA-specific bound variants by attaching multiple ServiceBrackets via ServiceTier.hasServiceBracket.

SHACL enforces sh:or three branches (lower-only, upper-only, or both bounds + matching operators); Malli stays open-world, consistent with the customDimensionProperty / customConditionProperty pattern.

v0.2.0 + 423e83f: contextual boundary definition for a ServiceTier.
Carries the bounds + bound operators that previously lived inline on
ServiceTier, plus optional appliesInSeason / referencesProfileAlternative
qualifiers so a single logical tier (one ServiceTier, identified by
serviceTierNumber) can carry season- or PA-specific bound variants by
attaching multiple ServiceBrackets via ServiceTier.hasServiceBracket.

SHACL enforces sh:or three branches (lower-only, upper-only, or both
bounds + matching operators); Malli stays open-world, consistent with
the customDimensionProperty / customConditionProperty pattern.
raw docstring

ServiceTierclj

v0.2.0 + 423e83f: bounds moved off ServiceTier onto attached ServiceBracket instances (Decision #111). ServiceTier carries only the logical identity (serviceTierNumber + optional name); hasServiceBracket carries 1+ bound-bearing brackets, optionally qualified by season or ProfileAlternative for matrix-cell variants of the same logical tier.

v0.2.0 + 423e83f: bounds moved off ServiceTier onto attached
ServiceBracket instances (Decision #111). ServiceTier carries only the
logical identity (serviceTierNumber + optional name); hasServiceBracket
carries 1+ bound-bearing brackets, optionally qualified by season or
ProfileAlternative for matrix-cell variants of the same logical tier.
raw docstring

ServiceTiersclj

v0.2.0 + 0994aec: container holding the block-tier vector. Carries the referencesMetricInput pointer that used to live on individual ServiceTiers in v0.1.x.

:urpx/appliesInSeason allows seasonal grouping — a single ProfileAlternative-keyed ServiceTiers can be split into per-season containers (e.g., baseline-tier summer/winter pair) without nesting season into serviceTierNumber.

:urpx/referencesProfileAlternative wires a per-cell ServiceTiers to one ProfileAlternative within a matrix-style hasServiceTiers vector (e.g., territory × code combinations for the PG&E E-TOU-C baseline-tier modifier).

v0.2.0 + 0994aec: container holding the block-tier vector. Carries the
referencesMetricInput pointer that used to live on individual ServiceTiers
in v0.1.x.

:urpx/appliesInSeason allows seasonal grouping — a single
ProfileAlternative-keyed ServiceTiers can be split into per-season
containers (e.g., baseline-tier summer/winter pair) without nesting
season into serviceTierNumber.

:urpx/referencesProfileAlternative wires a per-cell ServiceTiers to one
ProfileAlternative within a matrix-style hasServiceTiers vector
(e.g., territory × code combinations for the PG&E E-TOU-C baseline-tier
modifier).
raw docstring

SourcePublicationclj

An external published source a URPX fact cites: a tariff book, a statement, a market price feed. Neither a super- nor a subclass of urpx:URPXPackage; they are siblings.

Dual-accept: the @type admits both the v0.5.1 urpx:SourcePublication and the v0.2.x urpx:TariffPublication, because the corpus migrates utility by utility and carries both at once. That is also why this schema has no DSL builder: urpx.dsl/make-builder requires a [:= "..."] type entry and throws on an :enum.

urpx-shacl:SourcePublicationShape has 23 paths and requires nothing. The entries below it are v0.2.1 TariffPublicationShape paths that v0.5.1 drops; the vendored PG&E fixtures carry hasRatePlan and hasRatePlanModifier, so omitting them would break the suite.

An external published source a URPX fact cites: a tariff book, a statement,
a market price feed. Neither a super- nor a subclass of urpx:URPXPackage;
they are siblings.

Dual-accept: the @type admits both the v0.5.1 urpx:SourcePublication and the
v0.2.x urpx:TariffPublication, because the corpus migrates utility by
utility and carries both at once. That is also why this schema has no DSL
builder: `urpx.dsl/make-builder` requires a `[:= "..."]` type entry and
throws on an `:enum`.

urpx-shacl:SourcePublicationShape has 23 paths and requires nothing. The
entries below it are v0.2.1 TariffPublicationShape paths that v0.5.1 drops;
the vendored PG&E fixtures carry hasRatePlan and hasRatePlanModifier, so
omitting them would break the suite.
raw docstring

SourcePublicationTypeclj

urpx:SourcePublicationTypeValue, 8 members, plus one legacy value.

The class was urpx:SourcePublicationType at the epic baseline and is Value-suffixed at 95eb8e22, same 8 members. Do NOT reuse the retired 10-member urpx:PublicationTypeValue, which has zero occurrences at v0.5.1.

urpx:regulatoryFiling is a member of that retired class and is the ONLY publicationType value the corpus uses: 8 occurrences across 6 filings. It has no successor among the 8, so enforcing the v0.5.1 list alone would reject those filings outright. It is accepted here as a documented legacy member and should be dropped once the last migration wave lands.

urpx:SourcePublicationTypeValue, 8 members, plus one legacy value.

The class was urpx:SourcePublicationType at the epic baseline and is
Value-suffixed at 95eb8e22, same 8 members. Do NOT reuse the retired
10-member urpx:PublicationTypeValue, which has zero occurrences at v0.5.1.

urpx:regulatoryFiling is a member of that retired class and is the ONLY
publicationType value the corpus uses: 8 occurrences across 6 filings. It
has no successor among the 8, so enforcing the v0.5.1 list alone would
reject those filings outright. It is accepted here as a documented legacy
member and should be dropped once the last migration wave lands.
raw docstring

TariffBookReferenceclj

v0.2.x only. urpx:TariffBookReference was DELETED upstream in bbaea780 and has zero occurrences in the v0.5.1 ontology and SHACL; its fields moved inline onto urpx:DataSourceReference, whose shape is now sh:closed. Retained to validate v0.2.x filings, which is every filing in the corpus today. Remove only once the last migration wave lands.

v0.2.x only. urpx:TariffBookReference was DELETED upstream in bbaea780 and
has zero occurrences in the v0.5.1 ontology and SHACL; its fields moved
inline onto urpx:DataSourceReference, whose shape is now sh:closed. Retained
to validate v0.2.x filings, which is every filing in the corpus today.
Remove only once the last migration wave lands.
raw docstring

TariffFilingclj

The URPX content unit of the v0.3.0 publication split, the half that carries pricing rather than citing a source. v0.5.1 only; there is no v0.2.x equivalent to dual-accept.

urpx:containsPricingModel is the shape's only required property and is unbounded. urpx:PricingModel is not modeled in clj-urpx, so it and the other entity-valued slots stay loose maps rather than typed schemas.

The URPX content unit of the v0.3.0 publication split, the half that carries
pricing rather than citing a source. v0.5.1 only; there is no v0.2.x
equivalent to dual-accept.

urpx:containsPricingModel is the shape's only required property and is
unbounded. urpx:PricingModel is not modeled in clj-urpx, so it and the other
entity-valued slots stay loose maps rather than typed schemas.
raw docstring

Timeclj


TimeBracketclj


TOUPeriodclj


TOUScheduleclj


TOUTierclj


URPXDocumentclj

URPX v0.2.0 Decision #103: every urpx:URPXDocument carries a required urpx:targetURPXVersion (xsd:anyURI) declaring the ontology version the document was authored against. URPXDocumentShape (SHACL) lists many optional metadata fields (dateCreated, version, hasRatePlan, hasRatePlanModifier, hasTariffPublication, …) — we model only the required field plus the headline payload pointers; additional metadata flows through unvalidated.

Documents that aren't URPXDocument-wrapped (raw RatePlan, raw RatePlanModifier, or a JSON-LD @graph doc with no urpx:URPXDocument @type) bypass this shape — its target is the v0.2.0 wrapper class itself, not every URPX serialization.

URPX v0.2.0 Decision #103: every urpx:URPXDocument carries a required
urpx:targetURPXVersion (xsd:anyURI) declaring the ontology version the
document was authored against. URPXDocumentShape (SHACL) lists many
optional metadata fields (dateCreated, version, hasRatePlan,
hasRatePlanModifier, hasTariffPublication, …) — we model only the
required field plus the headline payload pointers; additional metadata
flows through unvalidated.

Documents that aren't URPXDocument-wrapped (raw RatePlan, raw
RatePlanModifier, or a JSON-LD `@graph` doc with no urpx:URPXDocument
@type) bypass this shape — its target is the v0.2.0 wrapper class
itself, not every URPX serialization.
raw docstring

URPXPackageclj

v0.3.0 renamed urpx:URPXDocument to urpx:URPXPackage; v0.5.1 keeps the class. urpx:targetURPXVersion stays required. Against URPXDocument the shape drops urpx:hasTariffPublication and adds urpx:packages, the general containment pointer (range: RatePlan | RatePlanModifier | RatePlanVersion | RatePlanModifierVersion | PricingModel | TariffFiling | SourcePublication), while retaining urpx:hasRatePlan and urpx:hasRatePlanModifier. Read from urpx-shacl:URPXPackageShape at urpx-org/urpx 95eb8e22 (v0.5.1-candidate).

As with URPXDocument, only the required field and the payload pointers are modeled; other wrapper metadata flows through unvalidated.

v0.3.0 renamed urpx:URPXDocument to urpx:URPXPackage; v0.5.1 keeps the
class. urpx:targetURPXVersion stays required. Against URPXDocument the
shape drops urpx:hasTariffPublication and adds urpx:packages, the general
containment pointer (range: RatePlan | RatePlanModifier | RatePlanVersion |
RatePlanModifierVersion | PricingModel | TariffFiling | SourcePublication),
while retaining urpx:hasRatePlan and urpx:hasRatePlanModifier. Read from
urpx-shacl:URPXPackageShape at urpx-org/urpx 95eb8e22 (v0.5.1-candidate).

As with URPXDocument, only the required field and the payload pointers are
modeled; other wrapper metadata flows through unvalidated.
raw docstring

cljdoc builds & hosts documentation for Clojure/Script libraries

Keyboard shortcuts
Ctrl+kJump to recent docs
Move to previous article
Move to next article
Ctrl+/Jump to the search field
× close