Application module: Product class ISO/TS 10303-1103: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 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 Product_class_mim;

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

USE FROM Group_mim;    --  ISO/TS 10303-1113

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

USE FROM Product_concept_identification_mim;    --  ISO/TS 10303-1060

USE FROM Property_assignment_mim;    --  ISO/TS 10303-1030

USE FROM basic_attribute_schema    --  ISO 10303-41
  (object_role);

USE FROM product_concept_schema    --  ISO 10303-44
  (conditional_concept_feature,
   product_concept_relationship,
   product_concept_feature,
   product_concept_feature_association,
   concept_feature_operator);

USE FROM product_property_definition_schema    --  ISO 10303-41
  (characterized_object);
(*

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

Classification_assignment_mim ISO/TS 10303-1114
Group_mim ISO/TS 10303-1113
Identification_assignment_mim ISO/TS 10303-1021
Product_concept_identification_mim ISO/TS 10303-1060
Property_assignment_mim ISO/TS 10303-1030
basic_attribute_schema ISO 10303-41
product_concept_schema ISO 10303-44
product_property_definition_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 category_usage_item   EXPRESS-G

The category_usage_item type allows for the designation of the data type product_class.

EXPRESS specification:

*)
TYPE category_usage_item = SELECT
   (product_class);
END_TYPE;
(*

5.2.1.2 id_for_class   EXPRESS-G

The id_for_class type is an extension of the identification_item type. It adds the data types product_class and product_concept_feature to the list of alternate data types.

NOTE  The list of entity data types may be extended in application modules that use the constructs of this module.

EXPRESS specification:

*)
TYPE id_for_class = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON identification_item WITH
   (product_class,
    product_concept_feature);
END_TYPE;
(*

5.2.1.3 specification_for_category   EXPRESS-G

The specification_for_category type is an extension of the groupable_item type. It adds the data types package_product_concept_feature and product_concept_feature to the list of alternate data types.

NOTE  The list of entity data types may be extended in application modules that use the constructs of this module.

EXPRESS specification:

*)
TYPE specification_for_category = EXTENSIBLE GENERIC_ENTITY SELECT BASED_ON groupable_item WITH
   (package_product_concept_feature,
    product_concept_feature);
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_product_concept_feature   EXPRESS-G

A characterized_product_concept_feature is a type of product_concept_feature and of characterized_object that allows a product_concept_feature to be characterized. A characterized_product_concept_feature implements the ARM concept of a Specification that may be referenced by an Assigned_property through the attribute described_element.

EXPRESS specification:

*)
ENTITY characterized_product_concept_feature
  SUBTYPE OF (product_concept_feature, characterized_object);
END_ENTITY;
(*

5.2.2.2 characterized_product_concept_feature_category   EXPRESS-G

A characterized_product_concept_feature_category is a type of product_concept_feature_category and of characterized_object that allows a product_concept_feature_category to be characterized. A characterized_product_concept_feature_category implements the ARM concept of a Specification_category that may be referenced by an Assigned_property through the attribute described_element.

EXPRESS specification:

*)
ENTITY characterized_product_concept_feature_category
  SUBTYPE OF (product_concept_feature_category, characterized_object);
END_ENTITY;
(*

5.2.2.3 exclusive_product_concept_feature_category   EXPRESS-G

An exclusive_product_concept_feature_category is a type of product_concept_feature_category the members of which describe mutually exclusive characteristics of a product.

EXPRESS specification:

*)
ENTITY exclusive_product_concept_feature_category
  SUBTYPE OF (product_concept_feature_category);
END_ENTITY;
(*

5.2.2.4 inclusion_product_concept_feature   EXPRESS-G

An inclusion_product_concept_feature is a type of conditional_concept_feature that represents the statement that the application of a product_concept_feature or of a conditional_concept_feature involves the inclusion of an additional product_concept_feature or conditional_concept_feature.

EXPRESS specification:

*)
ENTITY inclusion_product_concept_feature
  SUBTYPE OF (conditional_concept_feature);
WHERE
  WR1: NOT ('PRODUCT_CLASS_MIM.PACKAGE_PRODUCT_CONCEPT_FEATURE' IN TYPEOF(SELF));
  WR2: SIZEOF(QUERY(cfr <* USEDIN(SELF, 'PRODUCT_CONCEPT_SCHEMA.CONCEPT_FEATURE_RELATIONSHIP.RELATING_PRODUCT_CONCEPT_FEATURE') | 'PRODUCT_CONCEPT_SCHEMA.CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION' IN TYPEOF(cfr))) + SIZEOF(QUERY(cfr <* USEDIN(SELF, 'PRODUCT_CONCEPT_SCHEMA.CONCEPT_FEATURE_RELATIONSHIP.RELATED_PRODUCT_CONCEPT_FEATURE') | 'PRODUCT_CONCEPT_SCHEMA.CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION' IN TYPEOF(cfr))) = 0;
  WR3: SELF.condition.conditional_operator.name = 'implication';
END_ENTITY;
(*

Formal propositions:

WR1: an inclusion_product_concept_feature shall not be of type package_product_concept_feature.

WR2: an inclusion_product_concept_feature shall not be referenced as relating_product_concept_feature nor as related_product_concept_feature by concept_feature_relationship_with_condition instances.

WR3: an inclusion_product_concept_feature shall reference as condition a concept_feature_relationship_with_condition which references a concept_feature_operator with a name of 'implication'.

5.2.2.5 package_product_concept_feature   EXPRESS-G

A package_product_concept_feature is a type of product_concept_feature that is a collection of product features that shall be offered to the market as a set. The content of the package shall be described with an instance of inclusion_product_concept_feature.

EXPRESS specification:

*)
ENTITY package_product_concept_feature
  SUBTYPE OF (product_concept_feature);
WHERE
  WR1: NOT ('PRODUCT_CONCEPT_SCHEMA.CONDITIONAL_CONCEPT_FEATURE' IN TYPEOF(SELF));
  WR2: SIZEOF(QUERY(cfr <* USEDIN(SELF, 'PRODUCT_CONCEPT_SCHEMA.CONCEPT_FEATURE_RELATIONSHIP.RELATING_PRODUCT_CONCEPT_FEATURE') | ('PRODUCT_CONCEPT_SCHEMA.CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION' IN TYPEOF(cfr)) AND (SIZEOF(QUERY(ipcf <* USEDIN(cfr, 'PRODUCT_CONCEPT_SCHEMA.CONDITIONAL_CONCEPT_FEATURE.CONDITION') | 'PRODUCT_CLASS_MIM.INCLUSION_PRODUCT_CONCEPT_FEATURE' IN TYPEOF(ipcf))) = 1))) > 0;
END_ENTITY;
(*

Formal propositions:

WR1: a package_product_concept_feature shall not be of type conditional_concept_feature.

WR2: a package_product_concept_feature shall be referenced as relating_product_concept_feature by at least one concept_feature_relationship_with_condition which is referenced as condition by a conditional_concept_feature of type inclusion_product_concept_feature.

5.2.2.6 product_class   EXPRESS-G

A product_class is a type of product_concept and of characterized_object that is the identification of a set of similar products to be offered to the market.

NOTE    The fact that the product_class entity is a subtype of the characterized_object entity enables to assign properties to characterize the product class.

EXPRESS specification:

*)
ENTITY product_class
  SUBTYPE OF (product_concept, characterized_object);
END_ENTITY;
(*

5.2.2.7 product_concept_feature_category   EXPRESS-G

A product_concept_feature_category is a type of group that identifies a set of similar product features represented with product_concept_feature instances.

EXAMPLE    The body color for cars or the kind of wood for pieces of furniture are examples of product_concept_feature_category.

EXPRESS specification:

*)
ENTITY product_concept_feature_category
  SUBTYPE OF (group);
WHERE
  WR1: SIZEOF(QUERY(aga <* USEDIN(SELF, 'MANAGEMENT_RESOURCES_SCHEMA.GROUP_ASSIGNMENT.ASSIGNED_GROUP') | ('GROUP_MIM.APPLIED_GROUP_ASSIGNMENT' IN TYPEOF(aga)) AND ((aga\group_assignment.role\object_role.name <> 'specification category member') OR (SIZEOF(QUERY(i <* aga\applied_group_assignment.items | ('PRODUCT_CONCEPT_SCHEMA.PRODUCT_CONCEPT_FEATURE' IN TYPEOF(i)) AND NOT ('PRODUCT_CONCEPT_SCHEMA.CONDITIONAL_CONCEPT_FEATURE' IN TYPEOF(i)))) <> SIZEOF(aga\applied_group_assignment.items))))) = 0;
END_ENTITY;
(*

Formal propositions:

WR1: a product_concept_feature_category shall only be referenced as assigned_group by applied_group_assignment instances:

5.2.2.8 product_concept_feature_category_usage   EXPRESS-G

A product_concept_feature_category_usage is a type of group_assignment that associates a product_concept_feature_category with one or more instances of product_class, referred to by the inherited attribute items.

Additionally, this assignment specifies if the usage of one or more product features belonging to this product_concept_feature_category is mandatory or optional for all products of the product classes.

EXPRESS specification:

*)
ENTITY product_concept_feature_category_usage
  SUBTYPE OF (group_assignment);
  SELF\group_assignment.assigned_group : product_concept_feature_category;
  items : SET[1:?] OF category_usage_item;
WHERE
  WR1: SELF.role.name IN ['mandatory category usage','optional category usage'];
END_ENTITY;
(*

Attribute definitions:

assigned_group: the product_concept_feature_category that is considered.

items: the set of instances of types listed in category_usage_item to which the product_concept_feature_category is assigned.

Formal propositions:

WR1: the product_concept_feature_category_usage shall have as role an object_role with a name of 'mandatory category usage' or 'optional category usage'.

5.2.3 MIM rule definitions

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

5.2.3.1 restrict_concept_feature_operator

The restrict_concept_feature_operator rule restricts the name and usage of a concept_feature_operator.

EXPRESS specification:

*)
RULE restrict_concept_feature_operator FOR
(concept_feature_operator);
WHERE
  WR1: SIZEOF(QUERY(cfo <* concept_feature_operator | NOT (cfo.name IN ['and','or','oneof','not','implication']))) = 0;
  WR2: SIZEOF(QUERY(cfo <* concept_feature_operator | (cfo.name = 'implication') AND (SIZEOF(QUERY(cfrwc <* USEDIN(cfo, 'PRODUCT_CONCEPT_SCHEMA.CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION.CONDITIONAL_OPERATOR') | SIZEOF(QUERY(ccf <* USEDIN(cfrwc, 'PRODUCT_CONCEPT_SCHEMA.CONDITIONAL_CONCEPT_FEATURE.CONDITION') | NOT ('PRODUCT_CLASS_MIM.INCLUSION_PRODUCT_CONCEPT_FEATURE' IN TYPEOF(ccf)))) > 0)) > 0))) = 0;
  WR3: SIZEOF(QUERY(cfo <* concept_feature_operator | (cfo.name = 'not') AND (SIZEOF(QUERY(cfrwc <* USEDIN(cfo, 'PRODUCT_CONCEPT_SCHEMA.CONCEPT_FEATURE_RELATIONSHIP_WITH_CONDITION.CONDITIONAL_OPERATOR') | cfrwc.related_product_concept_feature :<>: cfrwc.relating_product_concept_feature)) > 0))) = 0;
END_RULE;
(*

Argument definitions:

concept_feature_operator : the set of all instances of concept_feature_operator.

Formal propositions:

WR1: each instance of concept_feature_operator shall have a name of 'and', 'or', 'oneof, 'not', or 'implication'.

WR2: if a concept_feature_operator has a name of 'implication', it shall only be referenced as conditional_operator by concept_feature_relationship_with_condition instances which are referenced as the condition by conditional_concept_feature instances which are of type inclusion_product_concept_feature.

WR3: if a concept_feature_operator has a name of 'not', it shall only be referenced as conditional_operator by concept_feature_relationship_with_condition instances where the attribute relating_product_concept_feature refers to the same instance as the attribute related_product_concept_feature.

5.2.3.2 restrict_group_relationship_for_specification_category

The restrict_group_relationship_for_specification_category rule ensures the correct correlation between the name of a group_relationship and the type of the related groups.

EXPRESS specification:

*)
RULE restrict_group_relationship_for_specification_category FOR
(group_relationship);
WHERE
  WR1: SIZEOF(QUERY(gr <* group_relationship | (gr.name = 'specification category hierarchy') AND (NOT ('PRODUCT_CLASS_MIM.PRODUCT_CONCEPT_FEATURE_CATEGORY' IN TYPEOF(gr.related_group)) OR NOT ('PRODUCT_CLASS_MIM.PRODUCT_CONCEPT_FEATURE_CATEGORY' IN TYPEOF(gr.relating_group))))) = 0;
END_RULE;
(*

Argument definitions:

group_relationship : the set of all instances of group_relationship.

Formal propositions:

WR1: if a group_relationship has a name of 'specification category hierarchy', the related_group and the relating_group shall be of type product_concept_feature_category.

5.2.3.3 product_concept_feature_requires_category

The product_concept_feature_requires_category rule specifies that each instance of product_concept_feature that is not an inclusion_product_concept_feature nor a conditional_concept_feature, is a member of exactly one product_concept_feature_category. This membership is represented by the fact that the product_concept_feature is contained in the set of items of exactly one applied_group_assignment which has, as the role, an object_role with name 'specification category member' and which references, as the assigned_group, a product_concept_feature_category.

EXPRESS specification:

*)
RULE product_concept_feature_requires_category FOR
(product_concept_feature);
WHERE
  WR1: SIZEOF(QUERY(pcf <* product_concept_feature | (SIZEOF(['PRODUCT_CLASS_MIM.INCLUSION_PRODUCT_CONCEPT_FEATURE', 'PRODUCT_CONCEPT_SCHEMA.CONDITIONAL_CONCEPT_FEATURE'] * TYPEOF(pcf)) = 0) AND (SIZEOF(QUERY(aga <* USEDIN(pcf, 'GROUP_MIM.APPLIED_GROUP_ASSIGNMENT.ITEMS') | (aga\group_assignment.role\object_role.name = 'specification category member') AND ('PRODUCT_CLASS_MIM.PRODUCT_CONCEPT_FEATURE_CATEGORY' IN TYPEOF(aga.assigned_group)))) <> 1))) = 0;
END_RULE;
(*

Argument definitions:

product_concept_feature : the set of all instances of product_concept_feature.

Formal propositions:

WR1: each instance of product_concept_feature is contained in the set of items of exactly one applied_group_assignment which has as the role an object_role with name 'specification category member' and which references as the assigned_group a product_concept_feature_category.



*)
END_SCHEMA;  -- Product_class_mim
(*


© ISO 2019 — All rights reserved