Template: OASIS:Organization

This section specifies the template Organization.

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 Organization template.

The specification comprises the following sections:

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

The Organization template describes how to represent an organization.

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

Figure 1 -  Organization model

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

NOTE    The Organization 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 constraints shown on the template's SysML Block are described in the template constraints section.

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

Figure 2 -  Template block definition diagram for Organization

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

References:
contextlessIdRole [0..1] (Block: Ap239Ap233Psm:ClassSelect)
An optional reference to the class used to define the role of the context free identifier (Organization.contextlessId) of the organization. For example CAGE code.
Parts:
classifications [0..*] (Template: OASIS:Classifier)
The optional classifications of the organization.
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:
descriptions [0..*] (Template: OASIS:Descriptor)
The optional descriptions of the organization.
contextualIds [0..*] (Template: OASIS:Identification)
An optional set of identifiers that are used to identify the organization. These identifiers are defined using the Identifier template and so must provide a context.
names [0..*] (Template: OASIS:Name)
the name or names of the organization.
Values:
contextlessId [0..1] (Block: Ap239Ap233Psm:IdentifierString)
An optional context free identifier for the organization.
NOTE    A contextlessId maybe used to identify an organization that is the context of other identifiers. This allows escape from a recursive need for identifier context.

The following output ports are defined for this template:

org (Block: Ap239Ap233Psm:Organization)
Enables the Block: Ap239Ap233Psm:Organization instantiated by this template to be referenced when the template is used.
The Organization block that is associated with the Organization template.

The following constraints are defined for this template:

Constraint: OrganizationMustBeIdentified
Specification: (OCL2.0)
not (contextlessId.oclIsUndefined() or contextlessRole.oclIsUndefined()) or (contextualIds->notEmpty() and (contextlessId.oclIsUndefined() and contextlessRole.oclIsUndefined()))
This constraint ensures that an organization has at least one identifier. It also ensures that the correct combinations of parameters are used either:
  1. One or more contextualIds are specified,
  2. Both contextlessId and contextlessIdRole are specified,
  3. Both contextlessId and contextlessIdRole are specified along with a collection of one or more contextualIds.

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 Organization.

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 Organization

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:organization [1] (Block: Ap239Ap233Psm:Organization)
Private Part Property:identification [0..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:combineIds [1] ( Constraint Block: OASIS:Organization:CombineOrganizationIds)
Private Part Property:combNameAnDesc [1] (Constraint Block: OASIS:Name:CombineNamesAndDescriptors)

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 Organization

The following instances have been created:

classCAGECode instance of Block: Ap239Ap233Psm:ExternalOwlClass.

This is expected to be a common Organization.contextlessId parameter value.

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 Organization

The following constraint blocks have been created:

Constraint: CombineOrganizationIds
Specification: (OCL2.0)
combined=basicIdent->union(ident2)
The constraint block that is used to combine the contextlessId with the contextualIds before assigning it to the organization.
NOTE    This is only of use within this template.

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

Data set: Organization

Organization organization.xml View download

This example shows the XML instantiated to represent an Organization identified by a CAGE code - "OrganizationX".