Integrated generic resource: Fundamentals of product description and support ISO 10303-41:2021(E)
© ISO

Cover page
Table of contents
Copyright
Foreword
Introduction
1 Scope
2 Normative references
3 Terms, definitions and abbreviated terms
    3.1 Terms and definitions
    3.2 Abbreviated terms
4 Action
   4.1 General
   4.2 Fundamental concepts and assumptions
   4.3 Action type definitions
   4.4 Action entity definitions
   4.5 Action function definitions
5 Application context
   5.1 General
   5.2 Fundamental concepts and assumptions
   5.3 Application context type definitions
   5.4 Application context entity definitions
6 Approval
   6.1 General
   6.2 Fundamental concepts and assumptions
   6.3 Approval type definitions
   6.4 Approval entity definitions
   6.5 Approval function definitions
7 Basic attribute
   7.1 General
   7.2 Fundamental concepts and assumptions
   7.3 Basic attribute type definitions
   7.4 Basic attribute entity definitions
   7.5 Basic attribute function definitions
8 Certification
   8.1 General
   8.2 Fundamental concepts and assumptions
   8.3 Certification entity definitions
9 Contract
   9.1 General
   9.2 Fundamental concepts and assumptions
   9.3 Contract entity definitions
   9.4 Contract function definitions
10 Date time
   10.1 General
   10.2 Fundamental concepts and assumptions
   10.3 Date time type definitions
   10.4 Date time entity definitions
   10.5 Date time function definitions

11 Document
   11.1 General
   11.2 Fundamental concepts and assumptions
   11.3 Document type definition
   11.4 Document entity definitions
   11.5 Document function definitions
12 Effectivity
   12.1 General
   12.2 Fundamental concepts and assumptions
   12.3 Effectivity type definitions
   12.4 Effectivity entity definitions
   12.5 Effectivity function definitions
13 Experience
   13.1 General
   13.2 Fundamental concepts and assumptions
   13.3 Experience entity definitions
   13.4 Experience function definitions
14 External reference
   14.1 General
   14.2 Fundamental concepts and assumptions
   14.3 External reference type definitions
   14.4 External reference entity definitions
   14.5 External reference function definitions
15 Group
   15.1 General
   15.2 Fundamental concepts and assumptions
   15.3 Group type definition
   15.4 Group entity definitions
   15.5 Group function definitions
16 Language
   16.1 General
   16.2 Fundamental concepts and assumptions
   16.3 Language entity definition
17 Location
   17.1 General
   17.2 Fundamental concepts and assumptions
   17.3 Location entity definitions
   17.4 Location function definitions
18 Management resources
   18.1 General
   18.2 Fundamental concepts and assumptions
   18.3 Management resources type definitions
   18.4 Management resources entity definitions
   18.5 Management resources function definitions

19 Measure
   19.1 General
   19.2 Fundamental concepts and assumptions
   19.3 Measure type definitions
   19.4 Measure entity definitions
   19.5 Measure function definitions
20 Person organization
   20.1 General
   20.2 Fundamental concepts and assumptions
   20.3 Person organization type definitions
   20.4 Person organization entity definitions
   20.5 Person organization function definitions
21 Product definition
   21.1 General
   21.2 Fundamental concepts and assumptions
   21.3 Product definition type definitions
   21.4 Product definition entity definitions
   21.5 Product definition function definitions
22 Product property definition
   22.1 General
   22.2 Fundamental concepts and assumptions
   22.3 Product property definition type definitions
   22.4 Product property definition entity definitions
   22.5 Product property definition function definitions
23 Product property representation
   23.1 General
   23.2 Fundamental concepts and assumptions
   23.3 Product property representation type definitions
   23.4 Product property representation entity definitions
   23.5 Product property representation function definitions
24 Qualifications
   24.1 General
   24.2 Fundamental concepts and assumptions
   24.3 Qualifications entity definitions
   24.4 Qualifications function definitions
25 Security classification
   25.1 General
   25.2 Fundamental concepts and assumptions
   25.3 Security classification entity definitions
26 Support resource
   26.1 General
   26.2 Fundamental concepts and assumptions
   26.3 Support resource type definitions
   26.4 Support resource function definitions
A Short names of entities
B Information object registration
C Computer interpretable listings
D EXPRESS-G diagrams
E Technical discussion
F Examples
G Change history
Bibliography
Index

4 Action schema

4.1 General

The subject of the action_schema is the description of actions, the reasons for these actions, and the status of these actions.

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.

4.2 Fundamental concepts and assumptions

Action information can be attached to any aspect of product data.

4.3 action_schema type definitions

4.3.1 as_description_attribute_select   EXPRESS-G

The as_description_attribute_select type is an extension of the description_attribute_select type. It adds the data type action_request_solution to the list of alternate data types.

EXPRESS specification:

*)
TYPE as_description_attribute_select = SELECT BASED_ON description_attribute_select WITH
   (action_request_solution);
END_TYPE;
(*

4.3.2 as_id_attribute_select   EXPRESS-G

The as_id_attribute_select type is an extension of the id_attribute_select type. It adds the data type action to the list of alternate data types.

EXPRESS specification:

*)
TYPE as_id_attribute_select = SELECT BASED_ON id_attribute_select WITH
   (action);
END_TYPE;
(*

4.3.3 as_name_attribute_select   EXPRESS-G

The as_name_attribute_select type is an extension of the name_attribute_select type. It adds the data type action_request_solution to the list of alternate data types.

EXPRESS specification:

*)
TYPE as_name_attribute_select = SELECT BASED_ON name_attribute_select WITH
   (action_request_solution);
END_TYPE;
(*

4.3.4 as_role_select   EXPRESS-G

The as_role_select type is an extension of the role_select type. It adds the data type directed_action_assignment to the list of alternate data types.

EXPRESS specification:

*)
TYPE as_role_select = SELECT BASED_ON role_select WITH
   (directed_action_assignment);
END_TYPE;
(*

4.3.5 supported_item   EXPRESS-G

The supported_item type is a list of alternate data types. It provides a mechanism to refer to an instance of one of these data types. The supported_item allows for the designation of an action_directive, an action, or an action_method.

NOTE    This specifies the use of an action_resource.

EXPRESS specification:

*)
TYPE supported_item = SELECT
   (action_directive,
    action,
    action_method);
END_TYPE;
(*

4.4 action_schema entity definitions

4.4.1 action   EXPRESS-G

An action is the identification of the occurrence of an activity and a description of its result.

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.

4.4.2 action_directive   EXPRESS-G

An action_directive is an authoritative instrument that provides directions to achieve the specified results.

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.

4.4.3 action_directive_relationship   EXPRESS-G

An action_directive_relationship is a relationship between two action_directive objects.

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.

4.4.4 action_method   EXPRESS-G

An action_method is the definition of an activity. This definition includes the activity’s objectives and effects.

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.

4.4.5 action_method_relationship   EXPRESS-G

An action_method_relationship is a relationship between two instances of the entity data type action_method and provides an identification and description of this relationship.

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.

4.4.6 action_relationship   EXPRESS-G

An action_relationship is a relationship between two instances of the entity data type action and provides an identification and description of this relationship.

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.

4.4.7 action_request_solution   EXPRESS-G

An action_request_solution is an association between a versioned_action_request and an action_method that is a potential solution for the request.

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.

4.4.8 action_request_status   EXPRESS-G

An action_request_status is the association of a status with a versioned_action_request.

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.

4.4.9 action_resource   EXPRESS-G

An action_resource is a thing that is identified as being needed to carry out an action.

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.

4.4.10 action_resource_relationship   EXPRESS-G

An action_resource_relationship is a relationship between two instances of the entity data type action_resource and provides an identification and description of this relationship.

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.

4.4.11 action_resource_type   EXPRESS-G

An action_resource_type is the identification of the kind of action_resource needed to carry out an action.

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.

4.4.12 action_status   EXPRESS-G

An action_status is the association of a status with an executed_action.

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.

4.4.13 directed_action   EXPRESS-G

A directed_action is a type of executed_action that is governed by an action_directive.

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.

4.4.14 directed_action_assignment   EXPRESS-G

A directed_action_assignment is an association of a directed_action with product data.

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.

4.4.15 executed_action   EXPRESS-G

An executed_action is a type of action that is completed, partially completed, or just identified. It may but need not have status information associated with it.

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;
(*

4.4.16 versioned_action_request   EXPRESS-G

A versioned_action_request is a specification of a desired result.

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.

4.4.17 versioned_action_request_relationship   EXPRESS-G

A versioned_action_request_relationship is a relationship between two versioned_action_request objects.

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.

4.5 action_schema function definitions

4.5.1 acyclic_action_directive_relationship

The acyclic_action_directive_relationship function determines whether the graph of instance of the entity data type action_directive that contains relation as one of its links contains a cycle. This function may be used to evaluate either a action_directive_relationship or any of its subtypes.

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.

4.5.2 acyclic_action_method_relationship

The acyclic_action_method_relationship function determines whether the graph of instances of the entity data type action_method that contains relation as one of its links contains a cycle. This function may be used to evaluate either an action_method_relationship or any of its subtypes.

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.

4.5.3 acyclic_action_relationship

The acyclic_action_relationship function determines whether the graph of instances of the entity data type action that contains relation as one of its links contains a cycle. This function may be used to evaluate either an action_relationship or any of its subtypes.

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.

4.5.4 acyclic_action_resource_relationship

The acyclic_action_resource_relationship function determines whether the graph of instances of the entity data type action_resource that contains relation as one of its links contains a cycle. This function may be used to evaluate either an action_resource_relationship or any of its subtypes.

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.

4.5.5 acyclic_versioned_action_request_relationship

The acyclic_versioned_action_request_relationship function determines whether the graph of instances of the entity data type versioned_action_request that contains relation as one of its links contains a cycle. This function may be used to evaluate either an action_resource_relationship or any of its subtypes.

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