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 PSM objects
instantiated by the Organization template.
The specification comprises the following sections:
- Section Description provides a
description of the template;
- Section Template Block specifies the SysML
Block that represents the template;
- Section Template Properties specifies
the properties, i.e. the Part, Reference and Value properties of the
templates SysML Block;
- Section Template Output Ports
specifies the Output Ports of the templates SysML Block. These bind to the
templates and PLCS PSM objects
instantiated by the Organization template as
described in section Template
Parametric Diagram;
- Section Template Constraints specifies
the constraints on PLCS PSM objects instantiated by the
Organization template;
- Section Template Parametric
Diagram specifies the templates and PLCS PSM objects instantiated by the
Organization template;
- Section Instantiated blocks specifies
the templates and PLCS PSM objects instantiated by the
Organization template and bound to private
parts of the template;
- Section Default instances species the
instances that have been instantiated in the template. These are used to set
the default value of blocks.
- Section Constraint blocks identifies the
constraint blocks that have been specified in this template;
- Section Example data
provides example XML data sets that have been instantiated in accordance
with this template.
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 PSM 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.
Figure 2 - Template block definition diagram for Organization
The following 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.
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:
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:
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.
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: OrganizationMustBeIdentifiedSpecification: (OCL2.0)
(contextlessId->notEmpty() and
contextlessRole->notEmpty()) or
(contextualIds->notEmpty() and contextlessId->isEmpty
and contextlessRole->isEmpty)
This constraint ensures that an organization has at least one identifier.
It also ensures that the correct combinations of parameters are used either:
- One or more contextualIds are specified,
- Both contextlessId and contextlessIdRole are specified,
- 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 PSM 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 the Parametric Diagram.
PLCS PSM
objects are shaded khaki and template 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: UR1Specification: (OCL2.0)
Identifier::allInstances()->isUnique(Sequence{idString, role, identificationContext})
Figure 3 shows the instances that have been instantiated in the template. These are
used to set the default value of blocks.
Figure 3 - Model instance diagram for Organization
The following instances have been created:
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.
Figure 3 - Constraint block diagram for Organization
The following constraint blocks have been created:
Constraint: CombineOrganizationIdsSpecification: (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
This example shows the XML instantiated to represent an Organization
identified by a CAGE code - "OrganizationX".