Application module: Classification with attributes ISO/TS 10303-1111:2019(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 Information requirements
   4.1 Required AM ARMs
   4.2 ARM type definitions
   4.3 ARM entity definitions
5 Module interpreted model
   5.1 Mapping specification
   5.2 MIM EXPRESS short listing
     5.2.1 MIM type definitions
     5.2.2 MIM entity definitions
     5.2.3 MIM function definition
     5.2.4 MIM rule definitions

A MIM short names
B Information object registration
C ARM EXPRESS-G   EXPRESS-G
D MIM EXPRESS-G   EXPRESS-G
E Computer interpretable listings
F Change history
Bibliography
Index

5.2 MIM EXPRESS short listing

This clause specifies the EXPRESS schema derived from the mapping table. It uses elements from the common resources or from other application modules and defines the EXPRESS constructs that are specific to this part of ISO 10303.

This clause constitutes the Module Interpreted Module (MIM) of the application module.

This clause also specifies the modifications that apply to the constructs imported from the common resources.

The following restrictions apply to the use, in this schema, of constructs defined in common resources or in application modules:

Short names of entities defined in this schema are described in Annex A. Unambiguous identification of this schema is defined in Annex B.

EXPRESS specification:

*)
SCHEMA Classification_with_attributes_mim;

USE FROM Classification_assignment_mim;    --  ISO/TS 10303-1114

USE FROM Extended_measure_representation_mim;    --  ISO/TS 10303-1106

USE FROM Identification_assignment_mim;    --  ISO/TS 10303-1021

USE FROM Independent_property_mim;    --  ISO/TS 10303-1036

USE FROM Plib_class_reference_mim;    --  ISO/TS 10303-1291

USE FROM Product_view_definition_mim;    --  ISO/TS 10303-1019

USE FROM group_schema    --  ISO 10303-41
  (group,
   group_relationship);

USE FROM product_property_definition_schema    --  ISO 10303-41
  (characterized_object,
   general_property,
   general_property_association,
   property_definition);

USE FROM product_property_representation_schema    --  ISO 10303-41
  (property_definition_representation);

USE FROM representation_schema    --  ISO 10303-43
  (set_representation_item);

USE FROM management_resources_schema    --  ISO 10303-41
  (classification_role);
(*

NOTE 1   The schemas referenced above are specified in the following part of ISO 10303:

Classification_assignment_mim ISO/TS 10303-1114
Extended_measure_representation_mim ISO/TS 10303-1106
Identification_assignment_mim ISO/TS 10303-1021
Independent_property_mim ISO/TS 10303-1036
Plib_class_reference_mim ISO/TS 10303-1291
Product_view_definition_mim ISO/TS 10303-1019
group_schema ISO 10303-41
product_property_definition_schema ISO 10303-41
product_property_representation_schema ISO 10303-41
representation_schema ISO 10303-43
management_resources_schema ISO 10303-41

NOTE 2   See Annex D, Figures D.1and D.2 for a graphical representation of this schema.

5.2.1 MIM type definitions

This subclause specifies the MIM types for this application module. The MIM types and definitions are specified below.

5.2.1.1 classification_item_extended   EXPRESS-G

The classification_item_extended type is an extension of the classification_item type. It adds the data types class and classified_item to the list of alternate data types.

EXPRESS specification:

*)
TYPE classification_item_extended = SELECT BASED_ON classification_item WITH
   (class,
    classified_item);
END_TYPE;
(*

5.2.1.2 classified_item   EXPRESS-G

The classified_item type allows for the designation of the data types product, product_definition_formation, and product_definition.

EXPRESS specification:

*)
TYPE classified_item = SELECT
   (product,
    product_definition_formation,
    product_definition);
END_TYPE;
(*

5.2.1.3 cwa_identification_item   EXPRESS-G

The cwa_identification_item type is an extension of the identification_item type. It adds the data type class to the list of alternate data types.

EXPRESS specification:

*)
TYPE cwa_identification_item = SELECT BASED_ON identification_item WITH
   (class);
END_TYPE;
(*

5.2.2 MIM entity definitions

This subclause specifies the MIM entities for this module. The MIM entities and definitions are specified below.

5.2.2.1 characterized_class   EXPRESS-G

A characterized_class is a type of class and characterized_object to which valued characteristics may be assigned.

EXPRESS specification:

*)
ENTITY characterized_class
  SUBTYPE OF (characterized_object, class);
END_ENTITY;
(*

5.2.2.2 class_system   EXPRESS-G

A class_system is a type of group that defines classifications of product or activity data.

EXPRESS specification:

*)
ENTITY class_system
  SUBTYPE OF (group);
END_ENTITY;
(*

5.2.3 MIM function definition

This subclause specifies the MIM function for this module. The MIM function and definition is specified below.

5.2.3.1 class_assignment_is_valid

The class_assignment_is_valid function evaluates whether an instance of applied_classification_assignment is valid.

If it assigns a class_system, the role shall be 'class system membership', and, in its items attribute, only instances of types listed in classification_item shall be found.

If it assigns a characterized_class, its classification role shall be 'definitional', 'non-definitional' or empty, and, in its items attribute, only instances of types listed in classified_item shall be found.

EXPRESS specification:

*)
FUNCTION class_assignment_is_valid (aia : applied_classification_assignment) : BOOLEAN;
LOCAL
  item: classification_item;
  role: classification_role;
END_LOCAL;

role:= aia\classification_assignment.role;
IF ('CLASSIFICATION_WITH_ATTRIBUTES_MIM.CLASS_SYSTEM' IN TYPEOF(aia\classification_assignment.assigned_class)) THEN
  IF(role\classification_role.name <> 'class system membership') THEN
    RETURN(FALSE);
  END_IF;
  REPEAT i:=LOINDEX(aia\applied_classification_assignment.items) TO HIINDEX(aia\applied_classification_assignment.items);
    item:= aia\applied_classification_assignment.items[i];

    IF (SIZEOF(['CLASSIFICATION_WITH_ATTRIBUTES_MIM.CHARACTERIZED_CLASS'] * TYPEOF(item))=0) THEN
-- item invalid if item does not belong to the types that may have a class_system
	RETURN(FALSE);
    END_IF;
  END_REPEAT;
END_IF;

IF ('CLASSIFICATION_WITH_ATTRIBUTES_MIM.CHARACTERIZED_CLASS' IN TYPEOF(aia\classification_assignment.assigned_class)) THEN
  IF	NOT(role\classification_role.name IN ['definitional','non-definitional','']) THEN
    RETURN(FALSE); 
  END_IF;


  REPEAT i:=LOINDEX(aia\applied_classification_assignment.items) TO HIINDEX(aia\applied_classification_assignment.items);
    item:= aia\applied_classification_assignment.items[i];

    IF (SIZEOF(['CLASSIFICATION_WITH_ATTRIBUTES_MIM.CLASSIFIED_ITEM'] * TYPEOF(item))=0) THEN
-- item invalid if item does not belong to the types that may have a characterized_class
	RETURN(FALSE);
    END_IF;
  END_REPEAT;
END_IF;

  IF
   (role\classification_role.name = 'definitional')
   THEN
     IF NOT
      (SIZEOF(QUERY(it <* aia\applied_classification_assignment.items | NOT
             (SIZEOF(['PRODUCT_DEFINITION_SCHEMA.PRODUCT', 'PRODUCT_DEFINITION_SCHEMA.PRODUCT_DEFINITION_FORMATION', 'PRODUCT_DEFINITION_SCHEMA.PRODUCT_DEFINITION'] * TYPEOF(it)) = 1)
      )) = 0 )
      THEN
      RETURN(FALSE); 
     END_IF;
  END_IF;

RETURN(TRUE);
END_FUNCTION;
(*

Argument definitions:

aia: the instance of applied_classification_assignment, the validity of which is assessed.

5.2.4 MIM rule definitions

This subclause specifies the MIM rules for this module. The MIM rules and definitions are specified below.

5.2.4.1 restrict_classification_assignments

The restrict_classification_assignments rule ensures that instances of applied_classification_assignment that assign a characterized_class or a class_system are valid.

EXPRESS specification:

*)
RULE restrict_classification_assignments FOR
(applied_classification_assignment);
WHERE
  WR1: SIZEOF(QUERY(aia <* applied_classification_assignment | NOT class_assignment_is_valid(aia)))=0;
END_RULE;
(*

Argument definitions:

applied_classification_assignment : the set of all instances of applied_classification_assignment.

Formal propositions:

WR1: There shall not be any instance of applied_classification_assignment whose assignment is not valid.

5.2.4.2 restrict_group_relationship_for_classification_hierarchy

The restrict_group_relationship_for_classification_hierarchy rule ensures the existance of instances of class for the relating and the related part of the classification hierarchy.

EXPRESS specification:

*)
RULE restrict_group_relationship_for_classification_hierarchy FOR
(group_relationship);
WHERE
  WR1: SIZEOF( QUERY( gr <* group_relationship | (gr\group_relationship.name = 'class hierarchy') AND (NOT('CLASSIFICATION_WITH_ATTRIBUTES_MIM.CLASS' IN TYPEOF(gr\group_relationship.related_group)) OR NOT('CLASSIFICATION_WITH_ATTRIBUTES_MIM.CLASS' IN TYPEOF(gr\group_relationship.relating_group))) )) = 0;
END_RULE;
(*

Argument definitions:

group_relationship : the set of all instances of group_relationship.

Formal propositions:

WR1: There shall not be any instance of group_relationship whose relating or related part are not related to a class instance.



*)
END_SCHEMA;  -- Classification_with_attributes_mim
(*


© ISO 2019 — All rights reserved