Skip to main content

Group ๐Ÿšง

Maturity

Official URL: https://bcgov.github.io/nr-pies/docs/spec/element/message/group

JSON Schema URL: https://raw.githubusercontent.com/bcgov/nr-pies/refs/heads/main/docs/spec/element/message/group.schema.json

Represents a message envelope for grouping related assets together.

Scopeโ€‹

This message type allows systems to group related assets together. The message represents an assertion from the originating system's perspective. Consuming systems must validate the grouping and implicitly trust the assertion source.

A Group message is scoped to a collection of related assets and captures the relationships between them, similar in structure to a linkage message but specific to asset groups.

Structureโ€‹

All groups shall be denoted with a kind property value of GROUP as defined in Message Kind.

info

A Group extends the following data types and inherits all of their declared attributes:

The table below identifies the inherited data types (in parentheses) and lists the properties declared directly by Group.

NameCardinalityTypeDescription & Constraints
(Header)1..1HeaderRepresents the standard message tracking envelope, incorporating specific asset attributes for system and record identification.
asset_set1..*Asset[]An array of assets that are grouped together with the primary header asset.
relation_kind1..1CodeThe kind of relation between the primary asset and the linked asset (for example, MERGES, RELATES, SELF, SPLITS).

Binding Constraintsโ€‹

The asset_set field expresses membership of assets within the group and typically originates from the declaring system:

  • The asset_set represents a classification or grouping for the relationship as defined by the asset-owning system
  • The relation_kind specifies the nature of the link (MERGES, RELATES, SELF, SPLITS)
  • A Group connects the primary asset (defined in Header) to related assets via this asset set

Specificationโ€‹

Loading ....

Implementation Guidanceโ€‹

Purposeโ€‹

The Group message defines a specific relationship between a primary asset and a set of related assets. Consuming systems may use this message to implicitly bind assets together.

Creating Group Messagesโ€‹

When generating a Group message:

  • Include the asset_set of assets being grouped
  • Declare the relation_kind to specify the nature of the link (MERGES, RELATES, SELF, SPLITS)

Single-Relation Assertionโ€‹

Each Group message must represent a single assertion from one system. Always create separate messages when an asset needs to assert different relationship kinds.

Linkage Orthogonalityโ€‹

The Group message is orthogonal to the Linkage message, meaning that both can coexist and express the same relationships without conflict. While the Group message implicitly binds a primary asset to a set of related assets, the Linkage message explicitly defines a relationship between individual asset pairs. Systems may use both message types to represent different aspects of various asset relationships.

Referencesโ€‹