Integrated generic resource: Fundamentals of product description and support | ISO 10303-41:2021(E) © ISO |
EXAMPLE Reasons for action include evolving user requirements, manufacturing problems and difficulties that arise when a product is in use.
This clause defines the information requirements to which implementations shall conform using the EXPRESS language as defined in ISO 10303-11. The following EXPRESS declaration begins the action_schema and identifies the necessary external references.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 action_schema;
REFERENCE FROM
basic_attribute_schema
--
ISO 10303-41
(description_attribute,
description_attribute_select,
get_description_value,
get_id_value,
get_name_value,
get_role,
id_attribute,
id_attribute_select,
name_attribute,
name_attribute_select,
object_role,
role_select,
role_association);
REFERENCE FROM
support_resource_schema
--
ISO 10303-41
(bag_to_set,
identifier,
label,
text);
(*
NOTE 1 The schemas referenced above are specified in the following parts:
basic_attribute_schema ISO 10303-41 support_resource_schema ISO 10303-41
NOTE 2 See Annex D for a graphical representation of this schema.
EXPRESS specification:
*)
TYPE
as_description_attribute_select
=
SELECT
BASED_ON
description_attribute_select
WITH
(action_request_solution);
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
as_id_attribute_select
=
SELECT
BASED_ON
id_attribute_select
WITH
(action);
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
as_name_attribute_select
=
SELECT
BASED_ON
name_attribute_select
WITH
(action_request_solution);
END_TYPE;
(*
EXPRESS specification:
*)
TYPE
as_role_select
=
SELECT
BASED_ON
role_select
WITH
(directed_action_assignment);
END_TYPE;
(*
NOTE This specifies the use of an action_resource.
EXPRESS specification:
*)
TYPE
supported_item
=
SELECT
(action_directive,
action,
action_method);
END_TYPE;
(*
An action identifies an activity that has taken place, is taking place, or is expected to take place in the future.
An action has a definition that is specified by an action_method.
NOTE 1 In particular application domains, terms such as task, process, activity, operation, and event may be synonyms for action.
EXAMPLE Change, distilling, design, a process to drill a hole, and a task such as training someone are examples of actions.
EXPRESS specification:
*)
ENTITY action;
name : label;
description :
OPTIONAL
text;
chosen_method : action_method;
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 action is known.
description: the text that characterizes the action. The value of the attribute need not be specified.
chosen_method: the action_method that specifies the procedure selected to carry out the action and a description of the results of that action.
id: the identifier that distinguishes the action.
NOTE 2 This attribute is an enhancement to the definition of action using a method that is upwardly compatible with 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 action 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.
EXAMPLE ISO Directives Part 3 provides guidance for the development of standards documents within ISO.
EXPRESS specification:
*)
ENTITY action_directive;
name : label;
description :
OPTIONAL
text;
analysis : text;
comment : text;
requests : SET[1:?] OF versioned_action_request;
END_ENTITY;
(*
Attribute definitions:
name: the label by which the action_directive is known.
description: the text that characterizes the action_directive. The value of the attribute need not be specified.
analysis: an informal description of the results of the analysis that was carried out on the elements of the requests set. The request sets are the versioned_action_requests referenced in the requests attribute.
NOTE The reason that different requests are satisfied by the action_directive could be recorded in this attribute.
comment: an informal description of any other pertinent information.
requests: a set of versioned_action_request entity data types that defines the expected results.
EXPRESS specification:
*)
ENTITY action_directive_relationship;
name : label;
description :
OPTIONAL
STRING;
relating : action_directive;
related : action_directive;
relation_type : STRING;
WHERE
WR1: acyclic_action_directive_relationship(SELF, [related], 'ACTION_SCHEMA.ACTION_DIRECTIVE_RELATIONSHIP');
END_ENTITY;
(*
Attribute definitions:
name: shall be unique within a population of action_directive_relationship.
description: the text or the set of texts that provide further information about the action_directive_relationship. The value of this attribute need not be specified.
relating: one object of action_directive that is part of the relationship.
related: the other object of action_directive that is part of the relationship.
relation_type: the meaning of the relationship.
Formal propositions:
WR1: A action_directive_relationship shall not participate in its own definition.
NOTE This definition may be the basis for actions or the solution for action requests.
EXAMPLE For the action whose name attribute is 'serve dinner', the name attribute of related instance of action_method could be 'cook by recipe' or 'purchase takeout food'.
EXPRESS specification:
*)
ENTITY action_method;
name : label;
description :
OPTIONAL
text;
consequence : text;
purpose : text;
END_ENTITY;
(*
Attribute definitions:
name: the label by which the action_method is known.
description: the text that characterizes the action_method. The value of the attribute need not be specified.
consequence: an informal description of the effects of the action_method.
purpose: an informal description of the objectives of the action_method.
NOTE 1 The role of action_method_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 This entity, together with the action_method entity, is based on the relationship template that is described in annex E.3.
NOTE 3 This entity may be used to define a procedural relationship among constituent activities.
EXPRESS specification:
*)
ENTITY action_method_relationship;
name : label;
description :
OPTIONAL
text;
relating_method : action_method;
related_method : action_method;
END_ENTITY;
(*
Attribute definitions:
name: the label by which the action_method_relationship is known.
description: the text that characterizes the action_method_relationship. The value of the attribute need not be specified.
relating_method: one of the instances of action_method 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_method: the other instance of action_method 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.
NOTE 1 The role of action_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.
EXPRESS specification:
*)
ENTITY action_relationship;
name : label;
description :
OPTIONAL
text;
relating_action : action;
related_action : action;
END_ENTITY;
(*
Attribute definitions:
name: the label by which the action_relationship is known.
description: the text that characterizes the action_relationship. The value of the attribute need not be specified.
relating_action: one of the instances of action that is a part of the relationship.
NOTE 2 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_action: the other instance of action 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 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.
EXPRESS specification:
*)
ENTITY action_request_solution;
method : action_method;
request : versioned_action_request;
DERIVE
description : text := get_description_value(SELF);
name : label := get_name_value(SELF);
WHERE
WR1: SIZEOF(USEDIN(SELF, 'BASIC_ATTRIBUTE_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1;
WR2: SIZEOF(USEDIN(SELF, 'BASIC_ATTRIBUTE_SCHEMA.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1;
END_ENTITY;
(*
Attribute definitions:
method: the action_method that is a potential solution.
request: the versioned_action_request for which a solution is specified.
description: the text that characterizes the action_request_solution.
NOTE 1 This attribute is an upwardly compatible addition to action_request_solution as specified in ISO 10303-41:1994.
name: the label by which the action_request_solution is known.
NOTE 2 This attribute is an upwardly compatible addition to action_request_solution as specified in ISO 10303-41:1994.
Formal propositions:
WR1: Each action_request_solution shall be the described_item in at most one description_attribute.
NOTE 3 The description_attribute data type is defined in basic_attribute_schema of this part of ISO 10303.
WR2: Each action_request_solution shall be the named_item in at most one name_attribute.
NOTE 4 The name_attribute data type is defined in basic_attribute_schema of this part of ISO 10303.
NOTE 5 A template for constraining the population of the entity data types defined in the basic_attribute_schema is described in annex E.
EXPRESS specification:
*)
ENTITY action_request_status;
status : label;
assigned_request : versioned_action_request;
END_ENTITY;
(*
Attribute definitions:
status: the label that provides a user interpretable designation for the level of completion of the action.
NOTE 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.
assigned_request: the versioned_action_request to which the status applies.
EXPRESS specification:
*)
ENTITY action_resource;
name : label;
description :
OPTIONAL
text;
usage : SET[1:?] OF supported_item;
kind : action_resource_type;
END_ENTITY;
(*
Attribute definitions:
name: the label by which the action_resource is known.
description: the text that characterizes the action_resource. The value of the attribute need not be specified.
usage: a set of supported_items for which the action_resource is used.
kind: the action_resource_type that specifies the sort of action_resource that is being used.
NOTE 1 The role of action_resource_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 This entity, together with the action_resource entity, is based on the relationship template that is described in annex E.3.
EXPRESS specification:
*)
ENTITY action_resource_relationship;
name : label;
description :
OPTIONAL
text;
relating_resource : action_resource;
related_resource : action_resource;
END_ENTITY;
(*
Attribute definitions:
name: the label by which the action_resource_relationship is known.
description: the text that characterizes the action_resource_relationship. The value of the attribute need not be specified.
relating_resource: one of the instances of action_resource that is a part of the relationship.
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.
related_resource: the other instance of action_resource 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 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.
EXAMPLE This entity may be used to specify the kind of tool needed to perform a process operation.
EXPRESS specification:
*)
ENTITY action_resource_type;
name : label;
END_ENTITY;
(*
Attribute definitions:
name: the label by which the action_resource_type is known.
NOTE 1 Information about the date and time may be associated with the action_status through the use of date_assignment, date_and_time_assignment, or time_assignment.
EXPRESS specification:
*)
ENTITY action_status;
status : label;
assigned_action : executed_action;
END_ENTITY;
(*
Attribute definitions:
status: the label that provides a user interpretable designation for the level of completion of the action.
NOTE 2 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.
EXAMPLE Terms such as 'pending', 'completed', or 'scheduled' are examples of status.
assigned_action: the executed_action to which the status applies.
EXAMPLE A directed_action could be the inspection of a building as directed by city officials according to the city building codes for earthquake safety. The action is the inspection of the building. The directive is issued by city officials guided by the city building codes. In an application protocol, the building authority may be associated with an organization_assignment. The building codes may be associated with a document_reference.
EXPRESS specification:
*)
ENTITY directed_action
SUBTYPE OF (executed_action);
directive : action_directive;
END_ENTITY;
(*
Attribute definitions:
directive: the action_directive that governs the directed_action.
EXPRESS specification:
*)
ENTITY directed_action_assignment
ABSTRACT SUPERTYPE
;
assigned_directed_action : directed_action;
DERIVE
role : object_role := get_role(SELF);
WHERE
WR1: SIZEOF(USEDIN(SELF, 'BASIC_ATTRIBUTE_SCHEMA.' + 'ROLE_ASSOCIATION.ITEM_WITH_ROLE')) <= 1;
END_ENTITY;
(*
Attribute definitions:
assigned_directed_action: the instance of the directed_action entity data that is to be associated with product data.
role: the object_role that specifies the purpose of the association of the directed_action_assignment with product data.
Formal propositions:
WR1: Each directed_action_assignment shall be item_with_role in at most one role_association.
NOTE 1 The role of executed_action 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 Status information is associated to executed_action through action_status.
EXAMPLE An executed_action could be to 'paint the office' with a status of 'scheduled'. The action is 'paint the office'. The status further qualifies the action as 'planned', 'scheduled', or 'completed'.
EXPRESS specification:
*)
ENTITY executed_action
SUBTYPE OF (action);
END_ENTITY;
(*
NOTE The desired result being identified and described may be obtained through one of more action_methods.
EXPRESS specification:
*)
ENTITY versioned_action_request;
id : identifier;
version :
OPTIONAL
label;
purpose : text;
description :
OPTIONAL
text;
END_ENTITY;
(*
Attribute definitions:
id: the identifier that distinguishes the versioned_action_request.
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.
NOTE 2 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.
version: the identification of the version of the versioned_action_request. The value of the attribute need not be specified.
purpose: an informal description of the reason for the versioned_action_request.
description: the text that characterizes the versioned_action_request. The value of the attribute need not be specified.
EXAMPLE 1 Two versioned_action_request objects may be related if they address similar problems.
EXAMPLE 2 A versioned_action_request may be a version of a work request. It might be related to a different version of the work request using a versioned_action_request_relationship.
EXPRESS specification:
*)
ENTITY versioned_action_request_relationship;
id : identifier;
name : label;
description :
OPTIONAL
text;
relating_versioned_action_request : versioned_action_request;
related_versioned_action_request : versioned_action_request;
END_ENTITY;
(*
Attribute definitions:
id: the identifier that distinguishes the versioned_action_request_relationship.
name: the label by which the versioned_action_request_relationship is known.
description: the text that characterizes the versioned_action_request_relationship. The value of this attribute need not be specified.
relating_versioned_action_request: one of the instances of versioned_action_request that is a part of the relationship.
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.
related_versioned_action_request: the other instance of versioned_action_request 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 2 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.
EXPRESS specification:
*)
FUNCTION acyclic_action_directive_relationship (relation : action_directive_relationship; relatives : SET[1:?] OF action_directive; specific_relation : STRING) : BOOLEAN;
LOCAL x : SET of action_directive_relationship; END_LOCAL; IF relation.relating IN relatives THEN RETURN (FALSE); END_IF; x := QUERY(adr <* bag_to_set(USEDIN(relation.relating, 'ACTION_SCHEMA.' + 'ACTION_DIRECTIVE_RELATIONSHIP.' + 'RELATED')) | specific_relation IN TYPEOF(adr)); REPEAT i := 1 TO HIINDEX(x); IF NOT acyclic_action_directive_relationship(x[i], relatives + relation.relating, specific_relation) THEN RETURN (FALSE); END_IF; END_REPEAT; RETURN (TRUE);
END_FUNCTION;
(*
Argument definitions:
relation: (input) the candidate action_directive_relationship to be checked.
relatives: (input) the set of instances of the entity data type action_directive for which the function is searching in the relating parameter of the relation argument.
specific_relation: (input) the fully qualified name of a subtype of the action_directive_relationship entity.
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 action_method_relationship entity include rules that use this function.
EXPRESS specification:
*)
FUNCTION acyclic_action_method_relationship (relation : action_method_relationship; relatives : SET[1:?] OF action_method; specific_relation : STRING) : BOOLEAN;
LOCAL x : SET OF action_method_relationship; END_LOCAL; IF relation.relating_method IN relatives THEN RETURN (FALSE); END_IF; x := QUERY(am <* bag_to_set(USEDIN(relation.relating_method, 'ACTION_SCHEMA.' + 'ACTION_METHOD_RELATIONSHIP.' + 'RELATED_METHOD')) | specific_relation IN TYPEOF(am)); REPEAT i := 1 TO HIINDEX(x); IF NOT acyclic_action_method_relationship(x[i], relatives + relation.relating_method, specific_relation) THEN RETURN (FALSE); END_IF; END_REPEAT; RETURN (TRUE);
END_FUNCTION;
(*
Argument definitions:
relation: (input) the candidate action_method_relationship to be checked.
relatives: (input) the set of instances of the entity data type action_method that the function is searching for in the relating_method parameter of the relation argument.
specific_relation: (input) the fully qualified name of a subtype of the action_method_relationship entity.
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 action_relationship entity include rules that use this function.
EXPRESS specification:
*)
FUNCTION acyclic_action_relationship (relation : action_relationship; relatives : SET[1:?] OF action; specific_relation : STRING) : BOOLEAN;
LOCAL x : SET OF action_relationship; END_LOCAL; IF relation.relating_action IN relatives THEN RETURN (FALSE); END_IF; x := QUERY(actn <* bag_to_set(USEDIN(relation.relating_action, 'ACTION_SCHEMA.' + 'ACTION_RELATIONSHIP.' + 'RELATED_ACTION')) | specific_relation IN TYPEOF(actn)); REPEAT i := 1 TO HIINDEX(x); IF NOT acyclic_action_relationship(x[i], relatives + relation.relating_action, specific_relation) THEN RETURN (FALSE); END_IF; END_REPEAT; RETURN (TRUE);
END_FUNCTION;
(*
Argument definitions:
relation: (input) the candidate action_relationship to be checked.
relatives: (input) the set of instances of the entity data type action for which the function is searching in the relating_action parameter of the relation argument.
specific_relation: (input) the fully qualified name of a subtype of the action_relationship entity.
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 action_resource_relationship entity include rules that use this function.
EXPRESS specification:
*)
FUNCTION acyclic_action_resource_relationship (relation : action_resource_relationship; relatives : SET[1:?] OF action_resource; specific_relation : STRING) : BOOLEAN;
LOCAL x : SET OF action_resource_relationship; END_LOCAL; IF relation.relating_resource IN relatives THEN RETURN (FALSE); END_IF; x := QUERY(ar <* bag_to_set(USEDIN(relation.relating_resource, 'ACTION_SCHEMA.' + 'ACTION_RESOURCE_RELATIONSHIP.' + 'RELATED_RESOURCE')) | specific_relation IN TYPEOF(ar)); REPEAT i := 1 TO HIINDEX(x); IF NOT acyclic_action_resource_relationship(x[i], relatives + relation.relating_resource, specific_relation) THEN RETURN (FALSE); END_IF; END_REPEAT; RETURN (TRUE);
END_FUNCTION;
(*
Argument definitions:
relation: (input) the candidate action_resource_relationship to be checked.
relatives: (input) the set of instances of the entity data type action_resource that the function is searching for in the relating_resource parameter of the relation argument.
specific_relation: (input) the fully qualified name of a subtype of the action_resource_relationship entity.
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 versioned_action_request_relationship entity include rules that use this function.
EXPRESS specification:
*)
FUNCTION acyclic_versioned_action_request_relationship (relation : versioned_action_request_relationship; relatives : SET[0:?] OF versioned_action_request; specific_relation : STRING) : BOOLEAN;
LOCAL x : SET OF versioned_action_request_relationship; END_LOCAL; IF relation.relating_versioned_action_request IN relatives THEN RETURN (FALSE); END_IF; x := QUERY(varr <* bag_to_set(USEDIN(relation.relating_versioned_action_request, 'ACTION_SCHEMA.' + 'VERSIONED_ACTION_REQUEST_RELATIONSHIP.' + 'RELATED_VERSIONED_ACTION_REQUEST')) | specific_relation IN TYPEOF(varr)); REPEAT i := 1 TO HIINDEX(x); IF NOT acyclic_versioned_action_request_relationship(x[i], relatives + relation.relating_versioned_action_request, specific_relation) THEN RETURN (FALSE); END_IF; END_REPEAT; RETURN (TRUE);
END_FUNCTION;
(*
Argument definitions:
relation: (input) the candidate versioned_action_request_relationship to be checked.
relatives: (input) the set of instances of the entity data type versioned_action_request that the function is searching for in the relating_versioned_action_request parameter of the relation argument.
specific_relation: (input) the fully qualified name of a subtype of the versioned_action_request_relationship entity.
*)
END_SCHEMA; -- action_schema
(*
© ISO 2021 — All rights reserved