Digital twin groups

Digital twin groups allow to structure a (large) set of digital twins, possibly with very similar aspects. A digital twin group is an entity in the Digital Twin Registry to which a Digital Twin may be related. A Digital Twin may be a member in several digital twin groups.

Every digital twin group has a unique (per tenant) name and, optionally, a textual description.

Managing digital twin groups

Digital twin groups have their own REST resource that offers the well-known CRUD operations to create, retrieve, update, or delete a digital twin group. The /registry-api/v2/groups endpoint offers RQL queries on digital twin groups. However, this endpoint does not provide any query or update primitives that involve the digital twins of a digital twin group.

Relating digital twins and digital twin groups

The relation of digital twins with digital twin groups is managed solely via the /registry-api/v2/twins endpoint. Its Registration endpoint allows to register a Digital Twin with a list of digital twin groups, in which the Digital Twin is a member from its very first moment. Likewise, the Update endpoint allows to modify the set of digital twin groups in which a Digital Twin is a member.

Querying digital twins on their digital twin groups

RQL queries on digital twins may involve their group memberships, just like other properties of digital twins. Filter predicates on digital twin groups may involve their unique ID, the name, or the description.

The following RQL query returns all digital twins which are member in the digital twin group with the given unique ID. In case no such group exists, the search result is empty.

filter=eq(groupMemberships.group.id,"d8ca4768-f002-4b60-8a93-3cda05a670fa")

Likewise, the following RQL query returns all digital twins which are members in the digital twin group with the given name. At most one digital twin group with the same name may exist per tenant, so the name can be used instead of the unique ID.

filter=eq(groupMemberships.group.name,"Some digital twin group name")

All relevant RQL operators, such as like, are available. For instance, the following RQL query returns all digital twins which are member in any digital twin group having a description that matches the given expression.

filter=like(groupMemberships.group.description,"*description*")

Shortcut

In order to query digital twins on digital twin groups in which they are a member, the groups shortcut is available:

filter=eq(groups.id,"d8ca4768-f002-4b60-8a93-3cda05a670fa")
filter=eq(groups.name,"Some digital twin group name")
filter=eq(groups.description,"Some digital twin group description")