Template:— representing_product_as_realized (rep_prod_rlzd) Date: 2008/03/01 11:23:57
Revision: 1.34

This section specifies the template representing_product_as_realized.

NOTE  An explanation of a template and the associated instantiation path is provided in the Template overview section.

Description

This template describes the representation of a real physical product, an artifact, using the Product_as_realized entity.

It enables the identification of the physical product and its relation to the Part where the Part represents the design or specification that was used to manufacture the physical product, normally identified by a part number. The template also defines the how reference data, dates, properties, documents, etc. are assigned to the physical product.

NOTE    If an organization does not version Product_as_individuals, it is recommended that the identification of the Product_as_realized is set to "/NULL", i.e. the attribute identifier of entity Identification_assignment contain the string "/NULL" (see C001: assigning_identifiers (NB Capabilities are not documented in this release of the PLCS standard) ), to indicate that no version information is relevant or intended. In this case, (historical) changes to the real product cannot be tracked without changing the identifier of the product_as_individual (e.g. the serial number).

NOTE    If the Part is not known, then it is recommended to use the template referencing_part with the identifier parameters set to "/NULL" to indicate that the Part is not known.

Model diagrams
The EXPRESS-G diagram in Figure 1 shows the templates and EXPRESS entities that are required to represent the template "representing_product_as_realized". The text highlighted in blue shows the template parameters.
Grey areas and templates with dashed lines are not included in the template, but may be used to further characterize the template.


Figure 1 —  An EXPRESS-G representation of the Information model for Product_as_realized

Figure 1 —  An EXPRESS-G representation of the Information model for Product_as_realized

The graphic for the template to be used in other EXPRESS-G diagrams is shown in Figure  2 below.


Figure 2 —  
                The graphical representation of representing_product_as_realized template

Figure 2 —   The graphical representation of representing_product_as_realized template

Input parameters
The following input parameters are defined for this template:
id (Type='STRING')
The identifier of the Product_as_individual, e.g. serial number.
id_class_name (Default=Serial_identification_code,Type='CLASS')
The name of the class being used to classify the identification (Identification_assignment) of the individual product. This provides the role or reason for the identification.
The following classes and their sub-classes can be used:
classifications: "Product_as_individual_identification_code" (urn:plcs:rdl:std:Product_as_individual_identification_code)
id_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The identifier of the External_class_library storing the definition of the class referenced by the parameter @id_class_name class.
id_owner (Type='STRING')
The name or identifier of the organization owning the id or name.
id_owner_class_name (Default=Organization_name,Type='CLASS')
The name of the class being used to classify the identification of the organization. For example CAGE code, or organization name.
The following classes and their sub-classes can be used:
classifications: "Organization_identification_code" (urn:plcs:rdl:std:Organization_identification_code), "Organization_name" (urn:plcs:rdl:std:Organization_name)
id_owner_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The id of the External_class_library storing the @id_owner_class_name class
vn_id (Default=/NULL,Type='STRING')
The identifier of the Product_as_realized, e.g. version marking, modification status.
vn_id_class_name (Default=Product_as_individual_identification_code,Type='CLASS')
The name of the class being used to classify the identification (Identification_assignment) of the product_as_realized (a version of the individual product). This provides the role or reason for the identification.
The following classes and their sub-classes can be used:
classifications: "Product_as_individual_identification_code" (urn:plcs:rdl:std:Product_as_individual_identification_code)
vn_id_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The identifier of the External_class_library storing the definition of the class referenced by the parameter @vn_id_class_name class.
vn_id_owner (Default=/NULL,Type='STRING')
The name or identifier of the organization owning the version_id.
vn_id_owner_class_name (Default=Organization_name,Type='CLASS')
The name of the class being used to classify the identification of the organization. For example CAGE code, or organization name.
The following classes and their sub-classes can be used:
classifications: "Organization_identification_code" (urn:plcs:rdl:std:Organization_identification_code), "Organization_name" (urn:plcs:rdl:std:Organization_name)
vn_id_owner_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The identifier of the External_class_library storing the @vn_id_owner_class_name class
life_cycle_stage (Default=Support_stage,Type='CLASS')
The identifier of the External_class_library used to describe the type of life cycle stage of the View_definition_context instance.
The following classes and their sub-classes can be used:
classifications: "Life_cycle_stage" (urn:plcs:rdl:std:Life_cycle_stage)
life_cycle_stage_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The identifier of the External_class_library storing the definition of the class referenced by the parameter @life_cycle_stage class.
domain (Default=Product_life_cycle_support,Type='CLASS')
The identifier of the External_class_library used to describe the type of application domain of the View_definition_context instance.
The following classes and their sub-classes can be used:
classifications: "Application_domain" (urn:plcs:rdl:std:Application_domain)
domain_ecl_id (Default=urn:plcs:rdl:std,Type='URN')
The identifier of the External_class_library storing the definition of the class referenced by the parameter @domain class.
product_design_version (Type= 'ENTITY (Product_version)' )
The version of the design that was used to create the Product_as_realized. This is normally a Part_version.
Reference parameters
The following reference parameters are defined for this template:
pai(Type='ENTITY (Product_as_individual)')
Allow the Product_as_individual entity instantiated in this path to be referenced when this template is used.
Note: The Product_as_individual entity can be referenced in a template path by:
%^target = $representing_product_as_realized.pai%
where target is the parameter to which the Product_as_individual is bound.
pai_id_assgn(Type='ENTITY (Identification_assignment)')
Allow the Identification_assignment entity instantiated in this path to be referenced when this template is used.
Note: The Identification_assignment entity can be referenced in a template path by:
%^target = $representing_product_as_realized.pai_id_assgn%
where target is the parameter to which the Identification_assignment is bound.
par(Type='ENTITY (Product_as_realized)')
Allow the Product_as_realized entity instantiated in this path to be referenced when this template is used.
Note: The Product_as_realized entity can be referenced in a template path by:
%^target = $representing_product_as_realized.par%
where target is the parameter to which the Product_as_realized is bound.
par_id_assgn(Type='ENTITY (Identification_assignment)')
Allow the Identification_assignment entity instantiated in this path to be referenced when this template is used.
Note: The Identification_assignment entity can be referenced in a template path by:
%^target = $representing_product_as_realized.par_id_assgn%
where target is the parameter to which the Identification_assignment is bound.
par_rel(Type='ENTITY (Product_design_version_to_individual)')
Allow the Product_design_version_to_individual entity instantiated in this path to be referenced when this template is used.
Note: The Product_design_version_to_individual entity can be referenced in a template path by:
%^target = $representing_product_as_realized.par_rel%
where target is the parameter to which the Product_design_version_to_individual is bound.
view(Type='ENTITY (Product_as_individual_view)')
Allow the Product_as_individual_view entity instantiated in this path to be referenced when this template is used.
Note: The Product_as_individual_view entity can be referenced in a template path by:
%^target = $representing_product_as_realized.view%
where target is the parameter to which the Product_as_individual_view is bound.
cntxt(Type='ENTITY (View_definition_context)')
Allow the View_definition_context entity instantiated in this path to be referenced when this template is used.
Note: The View_definition_context entity can be referenced in a template path by:
%^target = $representing_product_as_realized.cntxt%
where target is the parameter to which the View_definition_context is bound.
Uniqueness constraints

The following parameter combinations specify a uniqueness constraint:
Unique constraint: Unique product as individual
There shall be at most one instance of the entity (Product_as_individual) within the data set uniquely identified by a combination of the following parameters on this template (representing_product_as_realized) namely: id, id_class_name, id_ecl_id, id_owner, id_owner_class_name, id_owner_ecl_id.
The instance is referenced by the following template parameter: pai.
Unique constraint: Unique product as individual view
There shall be at most one instance of the entity (Product_as_individual_view) within the data set uniquely identified by a combination of the following parameters on this template (representing_product_as_realized) namely: id, id_class_name, id_ecl_id, id_owner, id_owner_class_name, id_owner_ecl_id, vn_id, vn_id_class_name, vn_id_ecl_id, vn_id_owner, vn_id_owner_class_name, vn_id_owner_ecl_id, domain, domain_ecl_id, life_cycle_stage, life_cycle_stage_ecl_id.
The instance is referenced by the following template parameter: view.
This rule means that there can be only one view (Product_as_individual_view) of a Product_as_realized with any given View_definition_context.
Unique constraint: Unique product as realized
There shall be at most one instance of the entity (Product_as_realized) within the data set uniquely identified by a combination of the following parameters on this template (representing_product_as_realized) namely: id, id_class_name, id_ecl_id, id_owner, id_owner_class_name, id_owner_ecl_id, vn_id, vn_id_class_name, vn_id_ecl_id, vn_id_owner, vn_id_owner_class_name, vn_id_owner_ecl_id.
The instance is referenced by the following template parameter: par.
This rule means that there can be only one version (Product_as_realized) of a Product_as_individual with any given identifier.
Unique constraint: Unique view_definition_context
There shall be at most one instance of the entity (View_definition_context) within the data set uniquely identified by a combination of the following parameters on this template (representing_product_as_realized) namely: domain, domain_ecl_id, life_cycle_stage, life_cycle_stage_ecl_id.
The instance is referenced by the following template parameter: cntxt.
Instantiation path
The instantiation path shown below specifies the entities that are to be instantiated by the template.
A description of templates and the syntax for the instantiation path is provided in the Reading Capability Templates help section.
-- instantiate Product_as_individual
Product_as_individual
%^pai = Product_as_individual%
^pai.id = '/IGNORE'
^pai.name = '/IGNORE'
^pai.description = '/IGNORE'

-- assign identifier to individual
/assigning_identification(
    id=@id,
    id_class_name=@id_class_name,
    id_ecl_id=@id_ecl_id,
    org_id=@id_owner,
    org_id_class_name=@id_owner_class_name,
    org_id_ecl_id=@id_owner_ecl_id,
    items=^pai)/
%^pai_id_assgn = $assigning_identification.id_assgn%

-- instantiate Product_as_realized
Product_as_realized
%^par = Product_as_realized%
^par.id = '/IGNORE'
^par.description = '/IGNORE'
^par.of_product -> ^pai

-- assign version identifier to Product_as_realized
/assigning_identification(
    id=@vn_id,
    id_class_name=@vn_id_class_name,
    id_ecl_id=@vn_id_ecl_id,
    org_id=@vn_id_owner,
    org_id_class_name=@vn_id_owner_class_name,
    org_id_ecl_id=@vn_id_owner_ecl_id,
    items=^par)/
%^par_id_assgn = $assigning_identification.id_assgn%

-- instantiate Product_as_individual_view
Product_as_individual_view
%^view = Product_as_individual_view%
^view.id = '/IGNORE'
^view.name = '/IGNORE'
^view.additional_characterization = '/IGNORE'
Product_as_individual_view.defined_version -> ^par

-- instantiate View_definition_context and bind it to the view
Product_as_individual_view.initial_context -> View_definition_context
View_definition_context.life_cycle_stage = '/IGNORE'
View_definition_context.application_domain = '/IGNORE'
View_definition_context.description = '/IGNORE'
%^cntxt = View_definition_context%

-- assign life_cycle_stage to the context
/assigning_reference_data(
    items=View_definition_context,
    class_name=@life_cycle_stage,
    ecl_id=@life_cycle_stage_ecl_id)/

-- assign application_domain to the context
/assigning_reference_data(
    items=View_definition_context,
    class_name=@domain,
    ecl_id=@domain_ecl_id)/

-- instantiate Product_design_version_to_individual
Product_design_version_to_individual
%^par_rel = Product_design_version_to_individual%
Product_design_version_to_individual.individual_product -> ^par
Product_design_version_to_individual.product_design_version -> @product_design_version
The following entities are instantiated with attributes as specified:
Entity in path Value Inherited from
Product_as_individual.id '/IGNORE' Product.id
Product_as_individual.name '/IGNORE' Product.name
Product_as_individual.description '/IGNORE' Product.description
Product_as_realized.id '/IGNORE' Product_version.id
Product_as_realized.description '/IGNORE' Product_version.description
Product_as_individual_view.id '/IGNORE' Product_view_definition.id
Product_as_individual_view.name '/IGNORE' Product_view_definition.name
Product_as_individual_view.additional_characterization '/IGNORE' Product_view_definition.additional_characterization
View_definition_context.life_cycle_stage '/IGNORE'
View_definition_context.application_domain '/IGNORE'
View_definition_context.description '/IGNORE'
Instance diagrams
The instance diagram in Figure  3 shows an example of the EXPRESS entities and templates that are instantiated by the template:
/representing_product_as_realized(id='12376588', id_class_name='Serial_identification_code', id_ecl_id='urn:plcs:rdl:std', id_owner='Crescent', id_owner_class_name='Organization_name', id_owner_ecl_id='urn:plcs:rdl:std', vn_id='Mod1', vn_id_class_name='Version_identification_code', vn_id_ecl_id='urn:plcs:rdl:std', vn_id_owner='Express Delivery Inc', vn_id_owner_class_name='Organization_name', vn_id_owner_ecl_id='urn:plcs:rdl:std', life_cycle_stage='Support_stage', life_cycle_stage_ecl_id='urn:plcs:rdl:std', domain='Product_life_cycle_support', domain_ecl_id='urn:plcs:rdl:std')/
(an illustration of the consolidated representing_product_as_realized template is shown in Figure 4 below.)


Figure 3 —  Entities instantiated by representing_product_as_realized template

Figure 3 —  Entities instantiated by representing_product_as_realized template

The instance diagram in Figure 4 shows the graphic symbol for the template that is to be used in other instance diagrams. The example template is:
/representing_product_as_realized(id='12376588', id_class_name='Serial_identification_code', id_ecl_id='urn:plcs:rdl:std', id_owner='Crescent', id_owner_class_name='Organization_name', id_owner_ecl_id='urn:plcs:rdl:std', vn_id='Mod1', vn_id_class_name='Version_identification_code', vn_id_ecl_id='urn:plcs:rdl:std', vn_id_owner='Express Delivery Inc', vn_id_owner_class_name='Organization_name', vn_id_owner_ecl_id='urn:plcs:rdl:std', life_cycle_stage='Support_stage', life_cycle_stage_ecl_id='urn:plcs:rdl:std', domain='Product_life_cycle_support', domain_ecl_id='urn:plcs:rdl:std')/


Figure 4 —  Instantiation of representing_product_as_realized template

Figure 4 —  Instantiation of representing_product_as_realized template

Characterizations
The following section details how the representing_product_as_realized template can be optionally characterized by assigning other constructs to it. These are characterizations commonly applied to the template. The ISO 10303-239 EXPRESS model may enable other assignments to the entities instantiated by the template.
The EXPRESS-G diagram in Figure 5 shows the possible characterizations of the template "representing_product_as_realized".


Figure 5 —  Characterization by property, document and state of a real product

Figure 5 —  Characterization by property, document and state of a real product

The following characterizations may apply:
Characterization Assigning classification or code

NOTE   this characterization is optional.

Classifications and codes may be assigned to a Product_as_individual through external reference data. See Figure 5 for an Express-G example.

A class of a Product_as_individual is represented by using the template assigning_reference_data assigned to Product_as_individual.

A code of a Product_as_individual is represented by using the template assigning_code assigned to Product_as_individual.

Characterization Assigning time

NOTE   this characterization is optional.

Dates and time can be associated with a Product_as_realized by using the templates assigning_time. See Figure 5 for an Express-G example.

A creation date is commonly assigned to the template representing_product_as_realized. The date and time assignment is classified as: "Date_actual_creation" (urn:plcs:rdl:std:Date_actual_creation) to indicate that it is the date (and time) when the Product_as_realized was actually created, i.e. a modification was made to the physical product (without changing its serial number).

If earlier Product_as_realized exists for the same Product_as_individual, it is implied that they are no longer existent. In any system which manages historical data, the earlier Product_as_realized should be marked as historical.

Characterization Assigning organization as owner

NOTE   this characterization is optional.

An organization can be associated as an owner of the real product by using the template assigning_organization. See Figure 5 for an Express-G example.

The assignment of the organization (Organization_or_person_in_organization_assignment) is classified as: "Owner_of" (urn:plcs:rdl:std:Owner_of) to indicate that this organization owns the real product.

Characterization Assignments of properties, documents and states

NOTE   this characterization is optional.

A real product may have specific properties and documents assigned to it, as well as states, through the use of templates assigning_product_property (for properties), assigning_document (for documents), assigning_assessed_state (for assessed states), and assigning_asserted_state (for asserted states). See Figure 5 for an Express-G example.

All these are assigned to Product_as_individual_view. An example is shown in Figure 5.

© OASIS 2008 — All rights reserved