Capability (C049):— assigning_location Date: 2007/06/22 12:22:09
Revision: 1.7

Business overview

This section provides a business level overview of this capability.

The purpose of this capability is to enable the asignment of a Location to an entity of interest such as a Product_as_realized, Activity, Required_resource, or Event. Clearly for a product that moves, such as a ship, there are an infinite number of locations that it would have been in. The purpose of the capability is to enable the assignment of the Location when a significant event occurred such as a maintenance task, or a failure state occurred.

Information model overview

This section provides an overview of the information model that supports this capability.

General

A Location_assignment is a relationship between a Product, Event, or Person and a Location. There may be a distinct assignment for each qualification. For example planned, scheduled or actual locations.

Each assignment may have a start and end date or time. A Location may have multiple Location_assignments. The information model for assigning location is illustrated below.

The EXPRESS-G for assigning location is shown in Figure 1. below and explained in the following sections.



Figure 1 —  Information model overview

Figure 1 —  Information model overview

Location

Each instance of Location shall be identified through the assignment of an identifier which has been classified as an "Location identification code" (urn:plcs:rdl:std:Location identification code). This may, for example, be the name associated with a location and can be provided through the use of the template assigning_identification_with_no_organization.

Each instance of Location shall optionally be assigned a classification of[Location_type_code]
[warning:]Error RDL1: The class Location_type_code does not exist in RDL at URI urn:plcs:rdl:std. Check the dexlib/data/refdata/rdl_index.xml
. This allows, for example, the location to be characterized using specialisations of this class such as;

- or other business-specific types as discussed above. This assignment can be provided through the use of the template assigning_reference_data.

Location Assignment

The assigned Location represents a place or position where an Activity or Event can occur, or where a Product or Resource_item can exist. The role that the Location plays in these contexts can be given by classifying the Location_assignment as a type of "Location assignment role" (urn:plcs:rdl:std:Location assignment role). The purpose of the assignment will depend upon each business-specific use but there are several generic sub-classes which may be used (and specialised further where and when necessary), e.g.;

NOTE    This list is not exhaustive or meant to cover all contexts, .

The items to which a Location_assignment can be assigned is determined by the select type (location_assignment_select), which varies depending upon the DEX in which this capability is used.

NOTE    Where the select type list includes Document_definitions, Files, or any of their subtypes, (i.e. Digital_document_definition, Physical_document_definition, Digital_file, or Hardcopy), it is recommended to use the Document_location_identification functionality so that only a single representation is used for these items. This usage is compatible with the recommended PDM Schema usage. Hence, it is recommended not to use Location_assignment and Location for these entities.

Alternates

Each Location may have zero or more alternative_location_representations, and is therefore an optional attribute of location. The subtypes of Location_representation provide the alternative representations of the Location defined and are represented using capability C027: representing_location.

NOTE    These alternatives are meant to be alternative representations of the same place defined by the instance of Location that they are an attribute of. For different Locations see the guidance below about "Alternative location" (urn:plcs:rdl:std:Alternative location)s.

The representation of Location_representations is beyond the scope of C049: assigning_location. The template assigning_location defined below, does not instantiate any alternative_location_representations. The capability C027: representing_location is designed for this purpose.

Relationships

A relationship between two Locations may be represented using an instance of Location_relationship. The meaning of the relationship can be provided through a classification of the relationship using the template assigning_reference_data. The classification should be a type of "Location relationship role" (urn:plcs:rdl:std:Location relationship role).

EXAMPLE    Location B, which is in reference to location A or Location B (UK), which is a refinement of Location A (Europe).

The following sub-classes of "Location relationship role" (urn:plcs:rdl:std:Location relationship role) are provided for use with this DEX, but may be specialised where required by business-specific requirements;

NOTE    There is no restriction on the types of relationship, however, the use of an alternative relationship should be used with care to ensure that the location related is indeed an alternate location and not an alternative representation of the relating location. For this purpose the alternative_location_representations of a Location should be used.

Model Characterization

This section specifies how the information model can be further characterized by the assignment of additional information such as dates, approvals and people or organizations.

The following characterizations may apply.

Characterization: Assigning approvals (Optional)

Optionally, a Location_assignment can be given an Approval using an Approval_assignment.

This can be achieved through the use of the template: assigning_approval, defined within the capability C019: assigning_approvals.

The Approval and Approval_assignment are classified as a [Location_approval]
[warning:]Error RDL1: The class Location_approval does not exist in RDL at URI urn:plcs:rdl:std. Check the dexlib/data/refdata/rdl_index.xml
, or other suitable sub-class of [Approval_purpose]
[warning:]Error RDL1: The class Approval_purpose does not exist in RDL at URI urn:plcs:rdl:std. Check the dexlib/data/refdata/rdl_index.xml
and [Approval_assignment_role]
[warning:]Error RDL1: The class Approval_assignment_role does not exist in RDL at URI urn:plcs:rdl:std. Check the dexlib/data/refdata/rdl_index.xml
, respectively. (Note classification and reference data is described in C010: assigning_reference_data).

The Approval represented will have a status associated with it indicating whether the assignment has been approved or not. See C019: assigning_approvals for details on assigning approvals.

Characterization: Assigning Dates (Optional)

The date when the Location was assigned is represented by providing a date to the Location_assignment. This can be achieved through the use of the template assigning_calendar_date.

NOTE    The representation of dates is described the capability C036: assigning_date_time.

Characterization: Assigning a Person or Organization (Optional)

The person or organization who assigned the location may be represented by using an Approving_person_organization to assign a Organization or Person_in_organization to the Location_assignment. This may be redundant if an authorized Approval has already been provided.

Characterization: Assigning Effectivity (Optional)

The Location_assignment, may optionally be assigned an Effectivity through the use of Effectivity_assignment For example, the Location_assignment may only be effective through a given set of dates. This may be specified through the use of the template assigning_dated_effectivity.

Care needs to be taken using Effectivity if also using planned start and planned end dates assigned directly to the Location_assignment, to avoid a conflict of semantics. Where there are multiple or overlapping periods when a location may be effective, then assigning_dated_effectivity should be used to manage them. However, for exchanging simple cases or where effectivity is not within the scope of the schema, then it is recommended to use assigning_calendar_date as described above and in capability C036: assigning_date_time.

Effectivity is described in C006: assigning_effectivity.

Characterization: Assigning Property (Optional)

A Location and/or Location_assignment, may optionally be assigned a Property_representation through the use of Resource_property or Assigned_property, respectively. For example, the Location_assignment may have a maximum berth size or draft for a ship. Properties may be provided (for Location_assignments) through C076: assigning_product_properties (see template assigning_product_property), or (for Locations) through C078: assigning_resource_properties (see template assigning_resource_property).

NOTE    For the example above, the maximum draft may be represented as a property of the shipyard, when the yard is being treated as a resource.

Capability templates

The following sections define a set of templates for the capability, where a template is a specification of a set of entities that need to be instantiated to represent a given set of information.

Template: assigning_location (Short name: asg_locn)

This section specifies the template assigning_location.

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

Description
This template describes the assignment of a location to an entity_for_location.
Model diagrams
The EXPRESS-G diagram in Figure 1 shows the templates and EXPRESS entities that are required to represent the template "assigning_location". The text highlighted in blue shows the template parameters.


Figure 1 —  Template Configuration for Assigning Location

Figure 1 —  Template Configuration for Assigning Location

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


Figure 2 —  Template Usage

Figure 2 —  Template Usage

Input parameters
The following input parameters are defined for this template:
la_class_name (Default=Location_assignment_role,Type='CLASS')
The type of class used to classify the location assignment and so provide the role or reason for the assignment.
The following classes and their sub-classes can be used:
classifications: "Location_assignment_role" (urn:plcs:rdl:std:Location_assignment_role)
la_ecl_id (Default=urn:plcs:rdl:std,Type='URN', Optional)
The id of the External_class_library storing the la_class_name class
loc_id (Default=unknown,Type='STRING')
The location identifier being assigned.
loc_id_class_name (Default=Location_identification_code,Type='CLASS')
The name of the class used to classify the location identifier and so provide the role or reason for the location
The following classes and their sub-classes can be used:
classifications: "Location_identification_code" (urn:plcs:rdl:std:Location_identification_code)
loc_id_ecl_id (Default=urn:plcs:rdl:std,Type='URN', Optional)
The id of the External_class_library storing the loc_id_class_name class
loc_org_id (Type='STRING')
The name or identifier of the organization responsible for the location representation
loc_org_id_class_name (Default=Organization_name,Type='CLASS', Optional)
The name of the class being used to classify the identification (Identification_assignment) of the organization responsible for the location representation
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)
loc_org_id_ecl_id (Default=urn:plcs:rdl:std,Type='URN', Optional)
The identifier of the External_class_library storing the definition of the class used to classify the organization identifier.
entity_for_location (Type= 'SELECT (location_assignment_select)' )
The entities to which the location may be assigned
alt_locn_rep (Type= 'ENTITY (Location_representation)' , Optional)
The alternative representations to which the location may be assigned. It may be used together with this template by using the reference parameter ^location and its attribute alt_locn_rep: ^location.alt_locn_rep
Reference parameters
The following reference parameters are defined for this template:
locn_asst(Type='ENTITY (Location_assignment)')
Allow the Location_assignment entity instantiated in this path to be referenced when this template is used.
Note: The Location_assignment entity can be referenced in a template path by:
%^target = $assigning_location.locn_asst%
where target is the parameter to which the Location_assignment is bound.
For example, to identify the date of a location assignment by assigning a date to the Location_assignment entity. E.g.
              -- The template assigning_location has an external reference
              -- locn_asst. Bind this to the local external reference
              -- location_assignment. It can now be the target for assigned dates
              %^locn_asst = $assigning_location.locn_asst%
              -- assign date to location_assignment in the role of "planned_start_date"
              /assigning_calendar_date(items=^locn_asst,
              date_class_name='Planned_start_date',
              date_ecl_id='urn:plcs:rdl:std',
              year=@2005,
              month=@4,
              day=@5)/
            
location(Type='ENTITY (Location)')
Allow the Location entity instantiated in this path to be referenced when this template is used.
Note: The Location entity can be referenced in a template path by:
%^target = $assigning_location.location%
where target is the parameter to which the Location is bound.
For example, to identify the name of a location by assigning an identification to the Location entity. E.g.
              -- The template assigning_location has an external reference
              -- location. Bind this to the local external reference
              -- Location. It can now be the target for assignments 
              %^location = $representing_location.location%
              -- assign 'Home' to the location in the role of "Name"
              -- as known by organisation with the name "Company_name".
              /assigning_identification(items=^location, 
              id='Home', 
              id_class_name='Name',
              id_ecl_id='urn:plcs:rdl:std'
              org_id='Company_name'
              org_id_class_name='Organization_name'
              org_id_ecl_id='urn:plcs:rdl:std')/          
            
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.
-- Mark the Location entity as
-- referable when this template is used by binding it to the reference
-- parameter location
%^location = Location%
Location.description = '/IGNORE'
Location.name = '/IGNORE'

-- If the optional alt loc rep is provided then link to Location
Location.alternative_location_representations -> @alt_locn_rep

-- assign an identifier and classify it with input params
/assigning_identification(
    items=^location,
    id=@loc_id,
    id_class_name=@loc_id_class_name,
    id_ecl_id=@loc_id_ecl_id,
    org_id=@loc_org_id,
    org_id_class_name=@loc_org_id_class_name,
    org_id_ecl_id=@loc_org_id_ecl_id )/

-- Mark the location_assignment entity as
-- referable when this template is used by binding it to the reference
-- parameter id_assgn
%^locn_asst = Location_assignment%
Location_assignment.description = '/IGNORE'
Location_assignment.role = '/IGNORE'
Location_assignment.location_for_assignment -> ^location
Location_assignment.entity_for_location -> @entity_for_location

-- provide the role of the identification by classifying the location_assignment
/assigning_reference_data(
    items=^locn_asst,
    class_name=@la_class_name,
    ecl_id=@la_ecl_id)/
The following entities are instantiated with attributes as specified:
Entity in path Value Inherited from
Location.description '/IGNORE'
Location.name '/IGNORE'
Location_assignment.description '/IGNORE'
Location_assignment.role '/IGNORE'
Instance diagrams
The instance diagram in Figure  3 shows an example of the EXPRESS entities and templates that are instantiated by the template:
/assigning_location(entity_for_location='#93', la_class_name='Location_for_activity', la_ecl_id='urn:plcs:rdl:std', loc_id='Plymouth', loc_id_class_name='Location_identification_code', loc_id_ecl_id='urn:plcs:rdl:std', org_id='Express Delivery Inc', org_id_class_name='Organization_name', org_id_ecl_id='urn:plcs:rdl:std')/
(an illustration of the consolidated assigning_location template is shown in Figure 4 below.)
Note that the assigning_reference_data and assigning_identification templates are used in the diagram. Namely:
/assigning_reference_data(items='#94', class_name='Location_for_activity', ecl_id='urn:plcs:rdl:std')/
/assigning_identification(items='#95', id='Plymouth', id_class_name='Location_identification_code', id_ecl_id='urn:plcs:rdl:std', org_id='Express Delivery Inc', org_id_class_name='Organization_name', org_id_ecl_id='urn:plcs:rdl:std')/


Figure 3 —  Instantiation of Template Components

Figure 3 —  Instantiation of Template Components

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:
/assigning_location(entity_for_location='#93', la_class_name='Location_for_activity', la_ecl_id='urn:plcs:rdl:std', loc_id='Plymouth', loc_id_class_name='Location_identification_code', loc_id_ecl_id='urn:plcs:rdl:std', org_id='Express Delivery Inc', org_id_class_name='Organization_name', org_id_ecl_id='urn:plcs:rdl:std')/


Figure 4 —  Consolidated Template Instantiation

Figure 4 —  Consolidated Template Instantiation

Characterizations
The following section details how the assigning_location 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 following characterizations may apply:
Characterization Assigning date

NOTE   this characterization is optional.

Dates can be associated with the assignment of a location_assignment by using the template assigning_calendar_date. For example, the planned start and end date of a location assigned to an instance of Location_assignment.



Figure 5 —  Template Configuration with Optional Calendar Date Assignment.

Figure 5 —  Template Configuration with Optional Calendar Date Assignment.

When instantiating the templates for assigning a date to a referenced location_assignment this requires the use of the reference parameter $assigning_location.locn_asst to identify the assigning_location instantiated by the template Location_assignment).

Characterization Assigning reference data

NOTE   this characterization is optional.

Reference data can be associated with the location instance by using the template assigning_reference_data. For example, the type of location may be assigned to an instance of Location.



Figure 6 —  Template Configuration with Optional Calendar Date, Reference Data and Identification Assignment

Figure 6 —  Template Configuration with Optional Calendar Date, Reference Data and Identification Assignment

Care needs to be taken to avoid potential conflicts with the (optional - [0:?]) alternative_location_representations attribute as the subtypes of Location_representation provide the major typing mechanism for this part of the model. Also note that these subtypes are handled in a separate set of templates.

NOTE    The mechanism for assigning reference data to a location is shown in figure Figure 6.

Characterization Assigning identifiers

NOTE   this characterization is optional.

Further Identifiers can be associated with an instance of location_assignment by using the template assigning_identification. For example, an id may be assigned to an instance of Location_assignment, if required.

NOTE    The mechanism for assigning identifier is shown in figure Figure 6.

Characterization Location Relationships

NOTE   this characterization is optional.

Two Locations can be associated together by a Location_relationship with the relationship classified appropriately to describe the role (or purpose) of the relationship. This can be achieved by using the templates assigning_location and assigning_reference_data. There may be two assigning_location templates used, which create different Locations for one (or more) entities (e.g. activity). The relationship is classified as a type of "Location relationship role" (urn:plcs:rdl:std:Location relationship role) (or sub-class, e.g. "Alternative location" (urn:plcs:rdl:std:Alternative location)) using the assigning_reference_data template. This is shown in the figure below.



Figure 7 —  Template Configuration for Location Relationships

Figure 7 —  Template Configuration for Location Relationships

NOTE    Due to the simplicity, no separate template has been created for representing these relationships.

Related capabilities

This capability "Assigning location" is related to the following capabilities:

Dependent capabilities

This capability "Assigning location" is dependent on the following capabilities:

Model reference data

The following classes of reference data are required for this capability:

[Planned_location]
[warning:]Error RDL1: The class Planned_location does not exist in RDL at URI urn:plcs:rdl:std. Check the dexlib/data/refdata/rdl_index.xml
[Actual_location]
[warning:]Error RDL1: The class Actual_location does not exist in RDL at URI urn:plcs:rdl:std. Check the dexlib/data/refdata/rdl_index.xml
Location_assignment_role(urn:plcs:rdl:std:Location_assignment_role)
A Location_assignment_role is a Location_assignment that classifies that the associated Location_for_assignment is related to the associated Entity_for_location within the context of a specific role. NOTE: It is expected that sub-classes of this will define those specific roles.
[Location_for_product]
[warning:]Error RDL1: The class Location_for_product does not exist in RDL at URI urn:plcs:rdl:std. Check the dexlib/data/refdata/rdl_index.xml
Location_for_activity(urn:plcs:rdl:std:Location_for_activity)
A Location_for_activity is a Location_assignment_role that classifies that the associated Location_for_assignment is related to the associated Entity_for_location(Activity) within the context of a specific role. NOTE: It is expected that sub-classes of this will define those specific roles.
[Opportunity_location]
[warning:]Error RDL1: The class Opportunity_location does not exist in RDL at URI urn:plcs:rdl:std. Check the dexlib/data/refdata/rdl_index.xml
[Location_for_event]
[warning:]Error RDL1: The class Location_for_event does not exist in RDL at URI urn:plcs:rdl:std. Check the dexlib/data/refdata/rdl_index.xml
[Location_for_resource]
[warning:]Error RDL1: The class Location_for_resource does not exist in RDL at URI urn:plcs:rdl:std. Check the dexlib/data/refdata/rdl_index.xml
[Location_for_person]
[warning:]Error RDL1: The class Location_for_person does not exist in RDL at URI urn:plcs:rdl:std. Check the dexlib/data/refdata/rdl_index.xml
Location_relationship_role(urn:plcs:rdl:std:Location_relationship_role)
A Location_relationship_role is a Location_relationship that classifies the role of the relationship between the relating location and the related location. NOTE: Each of the two locations that is referenced shall be unique in that they shall not provide different representations of the same location. NOTE: It is expected that sub-classes of this will define those specific roles.
Alternative_location(urn:plcs:rdl:std:Alternative_location)
An Alternative_location is a classification of a Location_relationship where the related_location is an alternative to the relating_location. Each location shall unique in that they shall not provide different representations of the same location. An alternative_location may provide similar facilities as the relating_location.
[Substitute_location]
[warning:]Error RDL1: The class Substitute_location does not exist in RDL at URI urn:plcs:rdl:std. Check the dexlib/data/refdata/rdl_index.xml
Adjacent_location(urn:plcs:rdl:std:Adjacent_location)
A Adjacent_location is a classification of a Location_relationship where the related_location is adjacent to the relating_location. Each location shall unique in that they shall not provide different representations of the same location. There is no specification on how close an Adjacent_location needs to be to the relating_location. However, sub-classes may provide narrower definitions for other contexts.
[Enclosing_relationship]
[warning:]Error RDL1: The class Enclosing_relationship does not exist in RDL at URI urn:plcs:rdl:std. Check the dexlib/data/refdata/rdl_index.xml
[Enclosed_by_relationship]
[warning:]Error RDL1: The class Enclosed_by_relationship does not exist in RDL at URI urn:plcs:rdl:std. Check the dexlib/data/refdata/rdl_index.xml
[Relative_to_relationship]
[warning:]Error RDL1: The class Relative_to_relationship does not exist in RDL at URI urn:plcs:rdl:std. Check the dexlib/data/refdata/rdl_index.xml
Hierarchical_relationship(urn:plcs:rdl:std:Hierarchical_relationship)
A Hierarchical_relationship is a classification of a Location_relationship where the related_location represents the child (dependant) location, and the relating_location represents the parent location. Each location shall unique in that they shall not provide different representations of the same location. A Hierarchical_relationship may be specialised to provide a narrower context and definition.

© OASIS 2010 — All rights reserved