Integrated generic resource: Fundamentals of product description and support | ISO 10303-41:2021(E) © ISO |
Each implementation of an AP that uses this schema and that encodes entity names shall use the encoding specified in Annex A. Each reference to this schema in an open system shall use the identifier encoding specified in Annex B. This schema is illustrated in Annex D using the EXPRESS-G notation.
EXPRESS specification:
*)
SCHEMA group_schema;
REFERENCE FROM
support_resource_schema
--
ISO 10303-41
(label,
bag_to_set,
identifier,
text);
REFERENCE FROM
basic_attribute_schema
--
ISO 10303-41
(get_id_value,
id_attribute,
id_attribute_select);
(*
NOTE 1 The schemas referenced above are specified in the following parts:
support_resource_schema ISO 10303-41 basic_attribute_schema ISO 10303-41
NOTE 2 See Annex D for a graphical representation of this schema.
EXPRESS specification:
*)
TYPE
gs_id_attribute_select
=
SELECT
BASED_ON
id_attribute_select
WITH
(group);
END_TYPE;
(*
EXPRESS specification:
*)
ENTITY group;
name : label;
description :
OPTIONAL
text;
DERIVE
id : identifier := get_id_value(SELF);
WHERE
WR1: SIZEOF(USEDIN(SELF, 'BASIC_ATTRIBUTE_SCHEMA.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1;
END_ENTITY;
(*
Attribute definitions:
name: the label by which the group is known.
NOTE 1 The meaning of this attribute can be defined in the annotated EXPRESS schemas that use or specialize this entity, or in an agreement of common understanding between the partners sharing this information.
description: the text that characterizes the group. The value of the attribute need not be specified.
id: the identifier that distinguishes the group. The value of this attribute need not be specified.
NOTE 2 This attribute is an upwardly compatible addition to group as specified in ISO 10303-41:1994.
NOTE 3 The meaning of this attribute can be defined in the annotated EXPRESS schemas that use or specialize this entity, or in an agreement of common understanding between the partners sharing this information.
NOTE 4 The context in which id is used as a discriminating characteristic can be identified in an annotated Express schema that uses or specializes this entity, or by default, in an agreement of common understanding between partners sharing this information.
Formal propositions:
WR1: Each group shall be the identified_item in at most one id_attribute.
NOTE 5 The id_attribute data type is defined in basic_attribute_schema of this part of ISO 10303.
NOTE 6 A template for constraining the population of the entity data types defined in the basic_attribute_schema is described in annex E.
NOTE 1 The role of group_relationship can be defined in the annotated EXPRESS schemas that use or specialize this entity, or by default, in an agreement of common understanding between the partners sharing this information.
NOTE 2 Relationships represented using this entity may be parent child relationship. Annotated EXPRESS schemas that use or specialize this entity specify whether or not the relationship is directed.
NOTE 3 This entity, together with the group entity, is based on the relationship template that is described in annex E.3.
EXPRESS specification:
*)
ENTITY group_relationship;
name : label;
description :
OPTIONAL
text;
relating_group : group;
related_group : group;
END_ENTITY;
(*
Attribute definitions:
name: the label by which the group_relationship is known.
description: the text that characterizes the group_relationship. The value of the attribute need not be specified.
relating_group: one of the instances of group that is a part of the relationship.
NOTE 4 The meaning of this attribute can be defined in the annotated EXPRESS schemas that use or specialize this entity, or in an agreement of common understanding between the partners sharing this information.
related_group: the other instance of group that is a part of the relationship. If one element of the relationship is dependent upon the other, this attribute shall be the dependent one.
NOTE 5 The meaning of this attribute can be defined in the annotated EXPRESS schemas that use or specialize this entity, or in an agreement of common understanding between the partners sharing this information.
The function returns TRUE if no cycle has been detected. Otherwise it returns FALSE.
NOTE 1 The algorithm of the function is explained in annex E.2.
NOTE 2 This function is not used in this schema. It is defined here because other ISO 10303 integrated resources and application protocols that use the group_relationship entity include rules that use this function.
EXPRESS specification:
*)
FUNCTION acyclic_group_relationship (relation : group_relationship; relatives : SET[1:?] OF group; specific_relation : STRING) : BOOLEAN;
LOCAL x : SET OF group_relationship; END_LOCAL; IF relation.relating_group IN relatives THEN RETURN (FALSE); END_IF; x := QUERY(grp <* bag_to_set(USEDIN(relation.relating_group, 'GROUP_SCHEMA.' + 'GROUP_RELATIONSHIP.' + 'RELATED_GROUP')) | specific_relation IN TYPEOF(grp)); REPEAT i := 1 TO HIINDEX(x); IF NOT acyclic_group_relationship(x[i], relatives + relation.relating_group, specific_relation) THEN RETURN (FALSE); END_IF; END_REPEAT; RETURN (TRUE);
END_FUNCTION;
(*
Argument definitions:
relation: (input) the candidate group_relationship to be checked.
relatives: (input) the set of instances of the entity data type group for which the function is searching in the relating_group parameter of the relation argument.
specific_relation: (input) the fully qualified name of a subtype of the group_relationship entity.
*)
END_SCHEMA; -- group_schema
(*
© ISO 2021 — All rights reserved