Expand description
The shape table both families are validated against.
Elements are property bags (cimmodel::Element) with no struct to
downcast to, so the shapes are data and crate::bag interprets them, the
same way classes are cimmodel::base::ClassDef rows interpreted by the
decoder. cimgen emits the tables into cgmes_shapes.rs and
nc_shapes.rs; with the dynamic-shapes feature they can be built from the
SHACL TTL files at runtime instead.
Everything a consumer would have to compute per element is resolved when
the table is built: target classes are already family-qualified
CimDataset::by_type keys with abstract classes expanded to their concrete
descendants, and paths are already the field keys the decoder stores.
Structs§
- Branch
- One branch of a
Logic. It conforms when none of its checks fail — or, for[ sh:not X ](negate), when at least one does. NCP writes material implication that way:sh:or ( [ sh:not conformsToNCProfile ] [ P required ] ). - Check
- One constraint together with how to report it.
- Closed
Shape - The
sh:closedhalf of a shape, kept separate because it carries its own message and severity. - Logic
- A node-level
sh:and/sh:or/sh:xone. The shape reports once, with its own name and message, when the combination does not hold; the branch checks carry no report text. - Prop
Shape - One
sh:propertyof a node shape: a path, and what must hold of its values. - Shape
Def - One
sh:NodeShape.
Enums§
- AltBranch
- One branch of an
Path::Alternative. - Constraint
- A single check on the values a
Pathyields. - LogicOp
- How a
Logiccombines its branches. - Node
Kind sh:nodeKind, restricted to the values the profiles actually use.- Path
- Where a property shape’s values come from.
- Step
- One step of a
Path::Chain. - Target
- What a node shape applies to.