Capability (C016):— representing_person_organization Date: 2007/06/22 12:22:11
Revision: 1.20

Business overview

This section provides a business level overview of this capability.

The capability has been designed to to provide a comprehensive representation of a person working as an employee within an organization to perform a specific role. The most common requirement for this information is expected to be the need to record who has made a decision or given authority for a course of action.

For flexability, the address component can be applied either to the individual or the organization in which the person is employed. Complex organisations can be represented as a hierachy of one organization within another.

The name of the role played by the person in the organization is delivered by reference to an external reference library, agreed by the communicating partners.

Information model overview

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

How to represent a person

As a mandatory minimum, a Person is identified by their Last Name, but this limited information is normally extended to include a First Name and, where appropriate, any middle names. Provision is also made for the inclusion of a prefix title, such as Mr, Mrs, Dr, Ft Lt etc., and any suffix titles, such as CEng, BSc, RAF etc. Figure 1 provides an illustration of the way a person may be represented.



Figure 1 —  Representing a Person

Figure 1 —  Representing a Person

How to represent an organization

At its simplest, an Organization can be represented just by its name, supplied in the form of a text string. Additionally, for reference purposes, and particularly for use by IT systems, it is convinient to include some form of organization identity key. Further capability can be added by recognising that an organization usually exists within a hierarch of organisations and it is then necessary to define these parent / child relationships to identify fully the authority of the actual organization being represented. Figure 2 illustrates the way an organization, placed within its organizational hierarchy, may be represented.



Figure 2 —  Representing an Organization

Figure 2 —  Representing an Organization

How to record an address

An Address is recorded as a sequence of pieces of data that, collectively, provide the information necessary to enable communication with the target. Figure 3 illustrates the way an address may be recorded. Addresses may be associated either with a person or the organisation in which the person is located.



Figure 3 —  Recording an Address

Figure 3 —  Recording an Address

How to place a person in an organization with a role

By associating a person with an organization and identifying the role played by that person in that organization, the person is identified as an employee. These links are created through the entity Person_in_organization. Figure 4 illustrates how this may be done. Provision is made in the capability for the list of role options to be made available from an external class library.



Figure 4 —  Representing a Person in an Organization

Figure 4 —  Representing a Person in an Organization

How to assign a person in an organization to a target

Two options are available when choosing to assign an authority to a target. The simple option is just to identify the organization and this will be appropriate where there is no requirement to attribute the information to an individual. Where this is a requirement, however, information about the person must also be selected. Figure 5 illustrates this.



Figure 5 —  Selection of an Organization or of a Person in an Organization with a Role

Figure 5 —  Selection of an Organization or of a Person in an Organization with a Role

Joining up all the sections above delivers the full capability to define a person, an organization, the role that person fulfils as an employee in the organization and the assignment of that authority to a target.



Figure 6 —  Represention of a Person in an Organization with a Role

Figure 6 —  Represention of a Person in an Organization with a Role

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_person_in_organization (Short name: asg_pers_org)

This section specifies the template assigning_person_in_organization.

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

Description

This template describes how to assign a person in the context of an organization to something.

Model diagrams
The EXPRESS-G diagram in Figure 1 shows the templates and EXPRESS entities that are required to represent the template "assigning_person_in_organization". The text highlighted in blue shows the template parameters.


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

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

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 assigning_person_in_organization template

Figure 2 —   The graphical representation of assigning_person_in_organization template

Input parameters
The following input parameters are defined for this template:
last_name (Type='STRING')
the last name (surname) of the person doing the approval
first_name (Type='STRING', Optional)
The first element of the Person's list of forenames. This parameter is optional.
middle_names (Type='STRING', Optional)
The Person's other forenames.
prefix_titles (Type='STRING', Optional)
The text that specifies the Person's social or professional standing and appear before his or her names. This parameter is optional.
suffix_titles (Type='STRING', Optional)
The text that specifies the Person's social or professional standing and appear after his or her names. This parameter is optional.
org_id (Type='STRING')
The identifier or name of the organization.
org_id_class_name (Type='CLASS')
The name of the class used to classify the identification (Identification_assignment) of the organization. This provides the role or reason for the identification. For example CAGE code.
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)
org_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 @org_id_class_name class.
person_role_class_name (Type='CLASS')
The name of the class being used to classify the person assignment () This provides the role for the assignment.
The following classes and their sub-classes can be used:
classifications: "Organization_or_person_in_organization_assignment" (urn:plcs:rdl:std:Organization_or_person_in_organization_assignment)
person_role_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 @person_role_class_name class.
items (Type= 'SELECT (organization_or_person_in_organization_item)' )
The items to which the person is assigned
Reference parameters
The following reference parameters are defined for this template:
asgn_org(Type='ENTITY (Organization_or_person_in_organization_assignment)')
Allow the Organization_or_person_in_organization_assignment entity instantiated in this path to be referenced when this template is used.
Note: The Organization_or_person_in_organization_assignment entity can be referenced in a template path by:
%^target = $assigning_person_in_organization.asgn_org%
where target is the parameter to which the Organization_or_person_in_organization_assignment is bound.
pers_in_org(Type='ENTITY (Person_in_organization)')
Allow the Person_in_organization entity instantiated in this path to be referenced when this template is used.
Note: The Person_in_organization entity can be referenced in a template path by:
%^target = $assigning_person_in_organization.pers_in_org%
where target is the parameter to which the Person_in_organization is bound.
person(Type='ENTITY (Person)')
Allow the Person entity instantiated in this path to be referenced when this template is used.
Note: The Person entity can be referenced in a template path by:
%^target = $assigning_person_in_organization.person%
where target is the parameter to which the Person is bound.
organization(Type='ENTITY (Organization)')
Allow the Organization entity instantiated in this path to be referenced when this template is used.
Note: The Organization entity can be referenced in a template path by:
%^target = $assigning_person_in_organization.organization%
where target is the parameter to which the Organization is bound.
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 Organization_or_person_in_organization_assignment entity
Organization_or_person_in_organization_assignment

-- Bind the Organization_or_person_in_organization_assignment
-- to the parameter ^asgn_org. The parameter is a reference parameter
-- so the Organization_or_person_in_organization_assignment
-- entity can be referred to when this template is used.
%^asgn_org = Organization_or_person_in_organization_assignment%

-- Set the Organization_or_person_in_organization_assignment attribute role to be ignored
Organization_or_person_in_organization_assignment.role = '/IGNORE'

-- Assign the Organization_or_person_in_organization_assignment
-- to the instances passed into the template through the @items
-- input parameter (e.g. an Activity_actual)
Organization_or_person_in_organization_assignment.items -> @items

-- Assign reference data to Organization_or_person_in_organization_assignment
/assigning_reference_data(
    items=^asgn_org,
    class_name=@person_role_class_name,
    ecl_id=@person_role_ecl_id)/

-- Instantiate representing_person_in_organization
/representing_person_in_organization(
    last_name=@last_name,
    first_name=@first_name,
    middle_names=@middle_names,
    prefix_titles=@prefix_titles,
    suffix_titles=@suffix_titles,
    org_id=@org_id,
    org_id_class_name=@org_id_class_name,
    org_id_class_name=@org_id_class_name,
    org_id_ecl_id=@org_id_ecl_id)/
%^pers_in_org = $representing_person_in_organization.pers_in_org%
%^person = $representing_person_in_organization.pers%
%^organization = $representing_person_in_organization.org%

-- Assign the Organization_or_person_in_organization_assignment
-- to the representing_person_in_organization template
Organization_or_person_in_organization_assignment.assigned_entity -> ^pers_in_org
The following entities are instantiated with attributes as specified:
Entity in path Value Inherited from
Organization_or_person_in_organization_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: (an illustration of the consolidated assigning_person_organization template is shown in Figure 4 below.)


Figure 3 —  Entities instantiated by assigning_person_in_organization template

Figure 3 —  Entities instantiated by assigning_person_in_organization 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:


Figure 4 —  Instantiation of assigning_person_in_organization template

Figure 4 —  Instantiation of assigning_person_in_organization template

Characterizations
No common characterizations of the template assigning_person_in_organization have been identified. However, the ISO 10303-239 EXPRESS model may enable other assignments to the entities instantiated by the template.
Template: assigning_address (Short name: asg_addr)

This section specifies the template assigning_address.

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

Description

This template describes how to assign an address to something.

Model diagrams
The EXPRESS-G diagram in Figure 1 shows the templates and EXPRESS entities that are required to represent the template "assigning_address". The text highlighted in blue shows the template parameters.


Figure 1 —  An EXPRESS-G representation of the information model for assigning_address

Figure 1 —  An EXPRESS-G representation of the information model for assigning_address

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 assigning_address template

Figure 2 —   The graphical representation of assigning_address template

Input parameters
The following input parameters are defined for this template:
address_class_name (Type='CLASS')
The name of the class being used to classify the address. This provides the type of address, for example 'office_address'.
The following classes and their sub-classes can be used:
classifications: "Address_assignment" (urn:plcs:rdl:std:Address_assignment)
address_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 @address_class_name.
name (Type='STRING', Optional)
The name or identifier of the address. Parameter is optional.
street_number (Type='STRING', Optional)
The number of a location on a street. Parameter is optional.
street (Type='STRING', Optional)
The name of a street. Parameter is optional.
postal_box (Type='STRING', Optional)
The number of a postal box. Parameter is optional.
town (Type='STRING', Optional)
The name of a town. Parameter is optional.
region (Type='STRING', Optional)
The name or identifier of a region. Parameter is optional.
postal_code (Type='STRING', Optional)
The code that is used by the country's postal service. Parameter is optional.
country (Type='STRING', Optional)
The name of a country. Parameter is optional.
internal_location (Type='STRING', Optional)
An organization-defined address for internal mail delivery. Parameter is optional.
facsimile_number (Type='STRING', Optional)
The number to which facsimiles may be sent. Parameter is optional.
telephone_number (Type='STRING', Optional)
The number at which telephone calls may be received. Parameter is optional.
electronic_mail_address (Type='STRING', Optional)
The electronic address to which electronic mail may be sent. Parameter is optional.
telex_number (Type='STRING', Optional)
The number where telex messages may be received. Parameter is optional.
url (Type='STRING', Optional)
The text that specifies the Uniform Resource Locator associated with the address. Parameter is optional.
located_pers_org (Type= 'SELECT (organization_or_person_in_organization_select)' )
The items to which the address is assigned
Reference parameters
The following reference parameters are defined for this template:
address(Type='ENTITY (Address)')
Allow the Address entity instantiated in this path to be referenced when this template is used.
Note: The Address entity can be referenced in a template path by:
%^target = $assigning_address.address%
where target is the parameter to which the Address is bound.
address_assgn(Type='ENTITY (Address_assignment)')
Allow the Address_assignment entity instantiated in this path to be referenced when this template is used.
Note: The Address_assignment entity can be referenced in a template path by:
%^target = $assigning_address.address_assgn%
where target is the parameter to which the Address_assignment is bound.
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 an Address_assignment
Address_assignment

-- Set the Address_assignment attribute type to be ignored
Address_assignment.address_type = '/IGNORE'

-- Bind the Address_assignment to the parameter ^address_assgn.
-- The parameter is a reference parameter so the Address_assignment
-- entity can be referred to when this template is used.
%^address_assgn = Address_assignment%

-- Assign reference data to Address_assignment
/assigning_reference_data(
    items=^address_assgn,
    class_name=@address_class_name,
    ecl_id=@address_ecl_id)/

-- Instantiate and point at an entity Address
Address_assignment.assigned_address -> Address

-- Set the Address attributes
Address.name -> @name
Address.street_number -> @street_number
Address.street -> @street
Address.postal_box -> @postal_box
Address.town -> @town
Address.region -> @region
Address.postal_code -> @postal_code
Address.country -> @country
Address.internal_location -> @internal_location
Address.facsimile_number -> @facsimile_number
Address.telephone_number -> @telephone_number
Address.electronic_mail_address -> @electronic_mail_address
Address.telex_number -> @telex_number
Address.url -> @url

-- Bind the Address entity to the parameter ^address.
-- The parameter is a reference parameter so the Address
-- entity can be referred to when this template is used.
%^address = Address%

-- Assign the Address_assignment
-- to the instances passed into the template through the @located_pers_org
-- input parameter (e.g. a Person)
Address_assignment.located_person_organizations -> @located_pers_org
The following entities are instantiated with attributes as specified:
Entity in path Value Inherited from
Address_assignment.address_type '/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_address(address_class_name='Office_address', address_ecl_id='urn:plcs:rdl:sample', name='Eurostep's address in Stockholm', street_number='38', street='Vasagatan', postal_box='', town='Stockholm', region='', postal_code='111 20', country='Sweden', internal_location='3rd floor', facsimile_number='+46(8)200399', telephone_number='+46(8)200440', electronic_mail_address='info@eurostep.com', telex_number='', url='www.eurostep.com', located_pers_org='#250')/
(an illustration of the consolidated assigning_address template is shown in Figure 4 below.)


Figure 3 —  Entities instantiated by assigning_address template

Figure 3 —  Entities instantiated by assigning_address 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:
/assigning_address(address_class_name='Office_address', address_ecl_id='urn:plcs:rdl:sample', name='Eurostep's address in Stockholm', street_number='38', street='Vasagatan', postal_box='', town='Stockholm', region='', postal_code='111 20', country='Sweden', internal_location='3rd floor', facsimile_number='+46(8)200399', telephone_number='+46(8)200440', electronic_mail_address='info@eurostep.com', telex_number='', url='www.eurostep.com', located_pers_org='#250')/


Figure 4 —  Instantiation of assigning_address template

Figure 4 —  Instantiation of assigning_address template

Characterizations
The following section details how the assigning_address 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 dated effectivity

NOTE   this characterization is optional.

The address of a person or organization may change over time. This is represented by associating a dated effectivity with the assignment of an address where the effectivity represents the period in which the person or organization was at the address.

The dated effectivity is represented by using the template assigning_dated_effectivity to assign a start and end-bound date to an Address_assignment.

Template: representing_person_in_organization (Short name: rep_pers_org)

This section specifies the template representing_person_in_organization.

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 person to an organization independent of other entities in order to be referenced from other templates.

Model diagrams
The EXPRESS-G diagram in Figure 1 shows the templates and EXPRESS entities that are required to represent the template "representing_person_in_organization". The text highlighted in blue shows the template parameters.


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

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

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 the representing_person_organization template

Figure 2 —  The graphical representation of the representing_person_organization template

Input parameters
The following input parameters are defined for this template:
last_name (Type='STRING')
The last name (surname) of the person.
first_name (Default=/NULL,Type='STRING', Optional)
The first element of the Person's list of forenames. This parameter is optional.
middle_names (Default=/NULL,Type='STRING', Optional)
The Person's other forenames.
prefix_titles (Type='STRING', Optional)
The text that specifies the Person's social or professional standing and appear before his or her names. This parameter is optional.
suffix_titles (Type='STRING', Optional)
The text that specifies the Person's social or professional standing and appear after his or her names. This parameter is optional.
org_id (Type='STRING')
The identifier or name of the organization.
org_id_class_name (Type='CLASS')
The name of the class used to classify the identification (Identification_assignment) of the organization. This provides the role or reason for the identification. For example "CAGE code" (urn:plcs:rdl:std:CAGE code).
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)
org_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 @org_id_class_name class.
Reference parameters
The following reference parameters are defined for this template:
pers(Type='ENTITY (Person)')
Allow the Person entity instantiated in this path to be referenced when this template is used.
Note: The Person entity can be referenced in a template path by:
%^target = $representing_person_in_organization.pers%
where target is the parameter to which the Person is bound.
org(Type='ENTITY (Organization)')
Allow the Organization entity instantiated in this path to be referenced when this template is used.
Note: The Organization entity can be referenced in a template path by:
%^target = $representing_person_in_organization.org%
where target is the parameter to which the Organization is bound.
pers_in_org(Type='ENTITY (Person_in_organization)')
Allow the Person_in_organization entity instantiated in this path to be referenced when this template is used.
Note: The Person_in_organization entity can be referenced in a template path by:
%^target = $representing_person_in_organization.pers_in_org%
where target is the parameter to which the Person_in_organization is bound.
Uniqueness constraints

The following parameter combinations specify a uniqueness constraint:
Unique constraint: Unique person in organization
Each instance of the entity (Person_in_organization) within the data set shall be uniquely identified by a combination of the following parameters on this template (representing_person_in_organization) namely: org_id, org_id_class_name, org_id_ecl_id, last_name, first_name, middle_names.
The instance is referenced by the following template parameter: pers_in_org.
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.
-- Bind the Person_in_organization to the parameter ^pers_in_org.
-- The parameter is a reference parameter so the Person_in_organization
-- entity can be referred to when this template is used.
%^pers_in_org = Person_in_organization%

-- Set the Person_in_organization attribute role
Person_in_organization.role = '/IGNORE'

-- Instantiate Person and point at it
Person_in_organization.concerned_person -> Person

-- Bind the Person to the parameter ^pers.
-- The parameter is a reference parameter so the Person
-- entity can be referred to when this template is used.
%^pers = Person%

-- Set the Person attributes
Person.last_name -> @last_name
Person.first_name -> @first_name
Person.middle_names -> @middle_names
Person.prefix_titles -> @prefix_titles
Person.suffix_titles -> @suffix_titles

-- Bind the Person to the parameter ^pers.
-- The parameter is a reference parameter so the Person
-- entity can be referred to when this template is used.
%^pers = Person%

-- Instantiate representing_organization template
/representing_organization(
    org_id=@org_id,
    org_id_class_name=@org_id_class_name,
    org_id_ecl_id=@org_id_ecl_id)/

-- Bind the Organization in the to the representing_organization template
-- to the parameter ^org.
-- The parameter is a reference parameter so the Organization
-- entity can be referred to when this template is used.
%^org = $representing_organization.org%

-- Assign the Person_in_organization to the Organization in the
-- representing_organization template
Person_in_organization.containing_organization -> ^org
The following entities are instantiated with attributes as specified:
Entity in path Value Inherited from
Person_in_organization.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:
@12 /representing_person_in_organization(last_name='Olsen', first_name='Bob', middle_names='$', prefix_titles='$', suffix_titles='$', org_id='Bike Rent Limited', org_id_class_name='Organization_name', org_id_ecl_id='urn:plcs:rdl:std')/
(an illustration of the consolidated representing_person_in_organization template is shown in Figure 4 below.)
Note that the template representing_organization is used in the diagram:
@3 /representing_organization(id='Bike Hire Limited', id_class_name='Organization_name', id_ecl_id='urn:plcs:rdl:std')/


Figure 3 —  Entities instantiated by representing_person_in_organization template

Figure 3 —  Entities instantiated by representing_person_in_organization 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:
@12 /representing_person_in_organization(last_name='Olsen', first_name='Bob', middle_names='$', prefix_titles='$', suffix_titles='$', org_id='Bike Rent Limited', org_id_class_name='Organization_name', org_id_ecl_id='urn:plcs:rdl:std')/


Figure 4 —  Instantiation of representing_person_in_organization template

Figure 4 —  Instantiation of representing_person_in_organization template

Characterizations
The following section details how the representing_person_in_organization 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 identification

NOTE   this characterization is optional.

Organization and Person may have optional identifiers.

The Organization may have two or more identifiers (e.g. an id and name). This may be represented by using the template assigning_identification_with_no_organization to assign a name or identifier to an Organization.

The person may be identified with an additional identifier by using the template assigning_identification_with_no_organization to assign an id to Person.



Figure 5 —  Assigning identification

Figure 5 —  Assigning identification

Characterization Assigning classifications

NOTE   this characterization is optional.

Several entities may be classified to provide further semantics to the data.

The role of a person in an organization is represented using the template assigning_reference_data to assign a class to an Person_in_organization.

The type of organization may be represented by using the template assigning_reference_data to assign a class to Organization.



Figure 6 —  Assigning classifications

Figure 6 —  Assigning classifications

Characterization Assigning address

NOTE   this characterization is optional.

An address may be assigned to a person in organization, e.g. to provide contact information.

The address of a person is represented using the template assigning_address to assign an address to a Person_in_organization. This is illustrated in Figure 1.



Figure 7 —  Assigning address

Figure 7 —  Assigning address

© OASIS 2010 — All rights reserved