Template: OASIS:Identification

This section specifies the template Identification.

The specification comprises a SysML Block that represents the template and an associated Parametric Diagram that defines the templates and PLCS PSMTemplate objects instantiated by the Identification template.

The specification comprises the following sections:

NOTE    An explanation of a template and its specification is provided in the Template overview

The Identification template describes how to represent the identification of an object. An identifier, of a particular type, uniquely identifies the object within a given identifier context. For example, a part number is unique for the organization making the part.

NOTE    A Name template is also provided. This is used to represent the name of an object, where a name is cue to a user to help identify or classify the object. The name may not be unique and may change with the language used. Hence should not be used as an identifier.

Each object that can be identified inherits from IdentifiableObject and inherits the attribute identifications which references the Identification object that holds the identification string.

If the organization that provided or owns the identifier is known then the Identification must be identified in the context of that organization. If the organization is not known, then do not provide a context for the identifier.

The type or role of the identifier is provided by assigning reference data to the Identification and thereby, classifying the Identification assignment as a sub class of http://docs.oasis-open.org/plcs/ns/plcslib/v1.0/data/plcs/plcs-psm/refdata/plcs-psm#Identifier.

The SysML Block Definition diagram in Figure 1 shows how Identification is represented in the PLCS PSM.

Figure 1 -  Identification model

No templates have been explicitly defined as being related to the Identification template.

NOTE    The Identification template may make reference to other templates as part of the Parametric Diagram. These are not listed here.

Figure 2 shows the SysML Block that represents the template. The Block is an abstraction representing a pattern of templates and PLCS PSMTemplate objects.

The properties, i.e. the SysML Block Part, Reference and Value properties, of the template's SysML Block are described in the Template Properties section.

The output ports shown on the template's SysML Block are described in the template output ports section.

The SysML Parametric diagrams for the template Block are shown in template parametric diagram section.

Figure 2 -  Template block definition diagram for Identification

The following SysML Part, Reference, and Value properties are defined for this template:

References:
role [1] (Block: Ap239Ap233Psm:ClassSelect)
The reference to the class used to classify the identifier (Identification.id) and so provide the role or reason for the identification.
The reference data used in Block: Ap239Ap233Psm:ClassSelect is restricted as follows:
RDL constraint 1:
The reference data for:
ExternalOwlClass.class
is restricted to the following class or a subclass:
context [1] (Block: Ap239Ap233Psm:IdentificationContextSelect)
The context within which the identifier is unique. Typically an organization that "owns" the identifier.
Parts:
classifiedAs [0..*] (Template: OASIS:Classifier)
Additional classification of the identifier
The reference data used in Template: OASIS:Classifier is restricted as follows:
RDL constraint 1:
The reference data for:
OASIS:Classifier.class -> ExternalOwlClass.class
is restricted to classes that are subclasses of the following class:
Values:
id [1] (Block: Ap239Ap233Psm:IdentifierString)
The identifier being assigned.
startDate [0..1] (Block: Ap239Ap233Psm:DateTimeString)
The date from which the identifier is effective

The following constraint, normally a uniqueness constraint, is applicable when instantiating the DateTimeString:

rule.Ap239Ap233Psm.ExternalOwlClass.ur1
Constraint: XSDDATETIME
Specification: (OCL2.0)
self.matches('[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z')
endDate [0..1] (Block: Ap239Ap233Psm:DateTimeString)
The date from which the identifier is no longer effective

The following constraint, normally a uniqueness constraint, is applicable when instantiating the DateTimeString:

rule.Ap239Ap233Psm.ExternalOwlClass.ur1
Constraint: XSDDATETIME
Specification: (OCL2.0)
self.matches('[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z')

The following output ports are defined for this template:

ident (Block: Ap239Ap233Psm:Identifier)
Enables the Block: Ap239Ap233Psm:Identifier instantiated by this template to be referenced when the template is used.

There are no constraints defined for this template.

This section describes the template's Parametric Diagram. The diagram details the pattern of templates and PLCS PSMTemplate objects that are required to represent the template Identification.

The public properties, i.e. those visible in the template's SysML block (See Figure 2) are shown on the left of a Parametric Diagram.

NOTE    Restrictions on the reference data to be set on the public properties is defined in the Template Properties section.

The output ports are shown on the right of a Parametric Diagram.

PLCS PSM objects are shaded khaki and Templates are shaded light green in a Parametric Diagram.

Figure 3 -  Parametric diagram for Identification

The following blocks are instantiated by this template and bound to private parts of the template as shown in the Parametric Diagram section:

Private Part Property:identification [1] (Block: Ap239Ap233Psm:Identifier)

The following constraint, normally a uniqueness constraint, is applicable when instantiating the Identifier:

rule.Ap239Ap233Psm.ExternalOwlClass.ur1
Constraint: UR1
Specification: (OCL2.0)
Identifier::allInstances()->isUnique(Sequence{idString, role, identificationContext})
Private Part Property:datedEffectivity [0..1] (Template: OASIS:DatedEffectivity)

Figure 3 shows the instances that have been instantiated in the template. These are used to set the default value of blocks.

Instance diagram
Figure 3 -  Model instance diagram for Identification

The following instances have been created:

classVersionIdentificationCode instance of Block: Ap239Ap233Psm:ExternalOwlClass.

To be used as the role of Version Identifiers in versionable objects.

Figure 3 shows the constraint blocks that have been created in the template.

Constraint Blocks are typically used to combine blocks into a collection that can then be bound to a property. For example, combining a set of identifications that can then be bound to property of type Identification.

Constraints diagram
Figure 3 -  Constraint block diagram for Identification

The following constraint blocks have been created:

Constraint: CombineIds
Specification: (OCL2.0)
combinedIdents=idents1->union(idents2, idents3, idents4)
The constraint block allows multiple identifiers to be combined into a single collection.

The following section provides an example XML dataset that has been instantiated in accordance with this template.

Data set: Part identification

Part identification identification.xml View download

This example shows the XML instantiated to identify a Part by its Part number. The context of the part number is given by an organization identified by a CAGE code - "OrganizationX".