Integrated generic resource: Fundamentals of product description and support ISO 10303-41:2021(E)
© ISO

Cover page
Table of contents
Copyright
Foreword
Introduction
1 Scope
2 Normative references
3 Terms, definitions and abbreviated terms
    3.1 Terms and definitions
    3.2 Abbreviated terms
4 Action
   4.1 General
   4.2 Fundamental concepts and assumptions
   4.3 Action type definitions
   4.4 Action entity definitions
   4.5 Action function definitions
5 Application context
   5.1 General
   5.2 Fundamental concepts and assumptions
   5.3 Application context type definitions
   5.4 Application context entity definitions
6 Approval
   6.1 General
   6.2 Fundamental concepts and assumptions
   6.3 Approval type definitions
   6.4 Approval entity definitions
   6.5 Approval function definitions
7 Basic attribute
   7.1 General
   7.2 Fundamental concepts and assumptions
   7.3 Basic attribute type definitions
   7.4 Basic attribute entity definitions
   7.5 Basic attribute function definitions
8 Certification
   8.1 General
   8.2 Fundamental concepts and assumptions
   8.3 Certification entity definitions
9 Contract
   9.1 General
   9.2 Fundamental concepts and assumptions
   9.3 Contract entity definitions
   9.4 Contract function definitions
10 Date time
   10.1 General
   10.2 Fundamental concepts and assumptions
   10.3 Date time type definitions
   10.4 Date time entity definitions
   10.5 Date time function definitions

11 Document
   11.1 General
   11.2 Fundamental concepts and assumptions
   11.3 Document type definition
   11.4 Document entity definitions
   11.5 Document function definitions
12 Effectivity
   12.1 General
   12.2 Fundamental concepts and assumptions
   12.3 Effectivity type definitions
   12.4 Effectivity entity definitions
   12.5 Effectivity function definitions
13 Experience
   13.1 General
   13.2 Fundamental concepts and assumptions
   13.3 Experience entity definitions
   13.4 Experience function definitions
14 External reference
   14.1 General
   14.2 Fundamental concepts and assumptions
   14.3 External reference type definitions
   14.4 External reference entity definitions
   14.5 External reference function definitions
15 Group
   15.1 General
   15.2 Fundamental concepts and assumptions
   15.3 Group type definition
   15.4 Group entity definitions
   15.5 Group function definitions
16 Language
   16.1 General
   16.2 Fundamental concepts and assumptions
   16.3 Language entity definition
17 Location
   17.1 General
   17.2 Fundamental concepts and assumptions
   17.3 Location entity definitions
   17.4 Location function definitions
18 Management resources
   18.1 General
   18.2 Fundamental concepts and assumptions
   18.3 Management resources type definitions
   18.4 Management resources entity definitions
   18.5 Management resources function definitions

19 Measure
   19.1 General
   19.2 Fundamental concepts and assumptions
   19.3 Measure type definitions
   19.4 Measure entity definitions
   19.5 Measure function definitions
20 Person organization
   20.1 General
   20.2 Fundamental concepts and assumptions
   20.3 Person organization type definitions
   20.4 Person organization entity definitions
   20.5 Person organization function definitions
21 Product definition
   21.1 General
   21.2 Fundamental concepts and assumptions
   21.3 Product definition type definitions
   21.4 Product definition entity definitions
   21.5 Product definition function definitions
22 Product property definition
   22.1 General
   22.2 Fundamental concepts and assumptions
   22.3 Product property definition type definitions
   22.4 Product property definition entity definitions
   22.5 Product property definition function definitions
23 Product property representation
   23.1 General
   23.2 Fundamental concepts and assumptions
   23.3 Product property representation type definitions
   23.4 Product property representation entity definitions
   23.5 Product property representation function definitions
24 Qualifications
   24.1 General
   24.2 Fundamental concepts and assumptions
   24.3 Qualifications entity definitions
   24.4 Qualifications function definitions
25 Security classification
   25.1 General
   25.2 Fundamental concepts and assumptions
   25.3 Security classification entity definitions
26 Support resource
   26.1 General
   26.2 Fundamental concepts and assumptions
   26.3 Support resource type definitions
   26.4 Support resource function definitions
A Short names of entities
B Information object registration
C Computer interpretable listings
D EXPRESS-G diagrams
E Technical discussion
F Examples
G Change history
Bibliography
Index

20 Person organization schema

20.1 General

The subject of the person_organization_schema is the description of information that identifies people and organizations. This clause defines the information requirements to which implementations shall conform using the EXPRESS language as defined in ISO 10303-11. The following EXPRESS declaration begins the person_organization_schema and identifies the necessary external references.

Each implementation of an AP that uses this schema and that encodes entity names shall use the encoding specified in Annex A. Each reference to this schema in an open system shall use the identifier encoding specified in Annex B. This schema is illustrated in Annex D using the EXPRESS-G notation.

EXPRESS specification:

*)
SCHEMA person_organization_schema;

REFERENCE FROM basic_attribute_schema    --  ISO 10303-41
  (description_attribute,
   description_attribute_select,
   generic_attribute,
   generic_attribute_assignment,
   generic_attribute_list_assignment,
   generic_attribute_list_select,
   generic_attribute_select,
   get_description_value,
   get_id_value,
   get_name_value,
   get_role,
   id_attribute,
   id_attribute_select,
   name_attribute,
   name_attribute_select,
   object_role,
   role_association);

REFERENCE FROM support_resource_schema    --  ISO 10303-41
  (bag_to_set,
   identifier,
   label,
   text);
(*

NOTE 1   The schemas referenced above are specified in the following parts:

basic_attribute_schema ISO 10303-41
support_resource_schema ISO 10303-41

NOTE 2   See Annex D for a graphical representation of this schema.

20.2 Fundamental concepts and assumptions

People and organizations are associated with product data to provide data concerning administrative structures and individuals who serve as points of contact or have particular responsibility in those structures. People and organizations may be associated with any aspect of product data.

20.3 person_organization_schema type definitions

20.3.1 person_organization_select   EXPRESS-G

The person_organization_select type is a list of alternate data types. It provides a mechanism to refer to an instance of one of these data types. The person_organization_select type allows for the designation of an organization, a person or a person_and_organization.

EXPRESS specification:

*)
TYPE person_organization_select = SELECT
   (person,
    organization,
    person_and_organization);
END_TYPE;
(*

20.3.2 pos_description_attribute_select   EXPRESS-G

The pos_description_attribute_select type is an extension of the description_attribute_select type. It adds the data types person_and_organization_role, person_and_organization, person_role, organization_role and organizational_project to the list of alternate data types.

EXPRESS specification:

*)
TYPE pos_description_attribute_select = SELECT BASED_ON description_attribute_select WITH
   (person_and_organization_role,
    person_and_organization,
    person_role,
    organization_role,
    organizational_project);
END_TYPE;
(*

20.3.3 pos_generic_attribute_list_select   EXPRESS-G

The pos_generic_attribute_list_select type is an extension of the generic_attribute_list_select type. It adds the data types address and person to the list of alternate data types.

EXPRESS specification:

*)
TYPE pos_generic_attribute_list_select = SELECT BASED_ON generic_attribute_list_select WITH
   (address,
    person);
END_TYPE;
(*

20.3.4 pos_generic_attribute_select   EXPRESS-G

The pos_generic_attribute_select type is an extension of the generic_attribute_select type. It adds the data type address to the list of alternate data types.

EXPRESS specification:

*)
TYPE pos_generic_attribute_select = SELECT BASED_ON generic_attribute_select WITH
   (address);
END_TYPE;
(*

20.3.5 pos_id_attribute_select   EXPRESS-G

The pos_id_attribute_select type is an extension of the id_attribute_select type. It adds the data types address and organizational_project to the list of alternate data types.

EXPRESS specification:

*)
TYPE pos_id_attribute_select = SELECT BASED_ON id_attribute_select WITH
   (address,
    organizational_project);
END_TYPE;
(*

20.3.6 pos_name_attribute_select   EXPRESS-G

The pos_name_attribute_select type is an extension of the name_attribute_select type. It adds the data types address and person_and_organization to the list of alternate data types.

EXPRESS specification:

*)
TYPE pos_name_attribute_select = SELECT BASED_ON name_attribute_select WITH
   (address,
    person_and_organization);
END_TYPE;
(*

20.4 person_organization_schema entity definitions

20.4.1 address   EXPRESS-G

An address is the information necessary for communicating, using one or more communication methods.

NOTE 1   In addition to the attributes defined in address additional generic attributes may be assigned using generic_attribute_assignment.

EXAMPLE 1   A generic attribute named "LinkedIn" with a value of "Fred.Bloggs" could be used to add a LinkedIn account to address information.

EXPRESS specification:

*)
ENTITY address;
  internal_location : OPTIONAL label;
  street_number : OPTIONAL label;
  street : OPTIONAL label;
  postal_box : OPTIONAL label;
  town : OPTIONAL label;
  region : OPTIONAL label;
  postal_code : OPTIONAL label;
  country : OPTIONAL label;
  facsimile_number : OPTIONAL label;
  telephone_number : OPTIONAL label;
  electronic_mail_address : OPTIONAL label;
  telex_number : OPTIONAL label;
DERIVE
  name : label := get_name_value(SELF);
  url : identifier := get_id_value(SELF);
WHERE
  WR1: EXISTS(internal_location) OR EXISTS(street_number) OR EXISTS(street) OR EXISTS(postal_box) OR EXISTS(town) OR EXISTS(region) OR EXISTS(postal_code) OR EXISTS(country) OR EXISTS(facsimile_number) OR EXISTS(telephone_number) OR EXISTS(electronic_mail_address) OR EXISTS(telex_number);
END_ENTITY;
(*

Attribute definitions:

internal_location: an organization-defined address for internal mail delivery. The value of this attribute need not be specified.

street_number: the number of a location on a street. The value of this attribute need not be specified.

street: the name of a street. The value of this attribute need not be specified.

postal_box: the number of a postal box. The value of this attribute need not be specified.

town: the name of a town. The value of this attribute need not be specified.

region: the name of a region. The value of this attribute need not be specified.

EXAMPLE 2   The counties of Great Britain and the states of the United States of America are examples of regions.

postal_code: the code that is used by the country's postal service. The value of this attribute need not be specified.

country: the name of a country. The value of this attribute need not be specified.

facsimile_number: the number at which facsimiles may be received. The value of this attribute need not be specified.

telephone_number: the number at which telephone calls may be received. The value of this attribute need not be specified.

electronic_mail_address: the electronic address at which electronic mail may be received. The value of this attribute need not be specified.

telex_number: the number at which telex messages may be received. The value of this attribute need not be specified.

name: the label that specifies the name of the location identified by the address.

EXAMPLE 3   "White House", "Buckingham Palace", "Kremlin".

url: the text that specifies the uniform resource locator associated with the address.

NOTE 2   The format of uniform resource locators is defined in IETF RFC 1738 [4].

EXAMPLE 4   URLs are used to identify items such as world wide web sites and file transfer protocol (FTP) servers.

Formal propositions:

WR1: At least one of the attributes shall have a value.

NOTE 3   A template for constraining the population of the entity data types defined in the basic_attribute_schema is described in annex E.

20.4.2 organization   EXPRESS-G

An organization is an administrative structure.

EXPRESS specification:

*)
ENTITY organization;
  id : OPTIONAL identifier;
  name : label;
  description : OPTIONAL text;
END_ENTITY;
(*

Attribute definitions:

id: the identifier that distinguishes the organization. The value of this attribute need not be specified.

NOTE    The context in which id is used as a discriminating characteristic can be identified in an annotated Express schema that uses or specializes this entity, or by default, in an agreement of common understanding between partners sharing this information.

name: the label by which the organization is known.

description: the text that characterizes the organization. The value of this attribute need not be specified.

20.4.3 organization_relationship   EXPRESS-G

An organization_relationship is a relationship between two instances of the entity data type organization with a description of their relationship.

EXAMPLE    Each department of an enterprise, and the enterprise itself, may be regarded as individual organizations. The fact that the departments are a part of the whole enterprise may be represented using this entity.

NOTE 1   The role of organization_relationship can be defined in the annotated EXPRESS schemas that use or specialize this entity, or by default, in an agreement of common understanding between the partners sharing this information.

NOTE 2   Relationships represented using this entity may be parent child relationship. Annotated EXPRESS schemas that use or specialize this entity specify whether or not the relationship is directed.

NOTE 3   This entity, together with the organization entity, is based on the relationship template that is described in annex E.3.

EXPRESS specification:

*)
ENTITY organization_relationship;
  name : label;
  description : OPTIONAL text;
  relating_organization : organization;
  related_organization : organization;
END_ENTITY;
(*

Attribute definitions:

name: the label by which the organization_relationship is known.

description: the text that characterizes the organization_relationship. The value of the attribute need not be specified.

relating_organization: one of the instances of organization that is a part of the relationship.

NOTE 4   The meaning of this attribute can be defined in the annotated EXPRESS schemas that use or specialize this entity, or in an agreement of common understanding between the partners sharing this information.

related_organization: the other instance of organization that is a part of the relationship. If one element of the relationship is dependent upon the other, this attribute shall be the dependent one.

NOTE 5   The meaning of this attribute can be defined in the annotated EXPRESS schemas that use or specialize this entity, or in an agreement of common understanding between the partners sharing this information.

20.4.4 organization_role   EXPRESS-G

An organization_role is a purpose for an organization and provides identification and description of the purpose.

EXPRESS specification:

*)
ENTITY organization_role;
  name : label;
DERIVE
  description : text := get_description_value(SELF);
WHERE
  WR1: SIZEOF(USEDIN(SELF, 'BASIC_ATTRIBUTE_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1;
END_ENTITY;
(*

Attribute definitions:

name: the label by which the organization_role is known.

NOTE 1   The meaning of this attribute can be defined in the annotated EXPRESS schemas that use or specialize this entity, or in an agreement of common understanding between the partners sharing this information.

description: the text that characterizes the organization_role. The value of the attribute need not be specified.

NOTE 2   This attribute is an upwardly compatible addition to organization_role as specified in ISO 10303-41:1994.

Formal propositions:

WR1: Each organization_role shall be the described_item in at most one description_attribute.

NOTE 3   The description_attribute data type is defined in basic_attribute_schema of this part of ISO 10303.

NOTE 4   A template for constraining the population of the entity data types defined in the basic_attribute_schema is described in annex E.

20.4.5 organization_type   EXPRESS-G

An organization_type is a recognized kind of organization.

EXAMPLE    A national standards body is a type of organization.

NOTE    A relationship between an organization_type object and one or more organization objects is established by the declaration of a subtype of organization_type_assignment that references an organization via its items attribute.

EXPRESS specification:

*)
ENTITY organization_type;
  id : identifier;
  name : label;
  description : OPTIONAL text;
END_ENTITY;
(*

Attribute definitions:

id: the identifier that distinguishes the organization_type.

name: the label by which the organization_type is known.

description: the text that characterizes the organization_type. The value of this attribute need not be specified.

20.4.6 organization_type_relationship   EXPRESS-G

An organization_type_relationship is a relationship between two instances of the organization_type entity data type and provides for the identification, naming, and description of that relationship.

EXPRESS specification:

*)
ENTITY organization_type_relationship;
  id : identifier;
  name : label;
  description : OPTIONAL text;
  relating_organization_type : organization_type;
  related_organization_type : organization_type;
END_ENTITY;
(*

Attribute definitions:

id: the identifier that distinguishes the organization_type_relationship.

name: the label by which the organization_type_relationship is known.

description: the text that characterizes the organization_type_relationship. The value of this attribute need not be specified.

relating_organization_type: one of the instances of organization_type that is a part of the relationship.

NOTE 1   The meaning of this attribute can be defined in the annotated EXPRESS schemas that use or specialize this entity, or in an agreement of common understanding between the partners sharing this information.

related_organization_type: the other instance of organization_type that is a part of the relationship. If one element of the relationship is dependent upon the other, this attribute shall be the dependent one.

NOTE 2   The meaning of this attribute can be defined in the annotated EXPRESS schemas that use or specialize this entity, or in an agreement of common understanding between the partners sharing this information.

20.4.7 organizational_address   EXPRESS-G

An organizational_address is an address for one or more organizations.

EXPRESS specification:

*)
ENTITY organizational_address
  SUBTYPE OF (address);
  organizations : SET[1:?] OF organization;
  description : OPTIONAL text;
END_ENTITY;
(*

Attribute definitions:

organizations: the organizations located at the address.

description: the text that characterizes the organizational_address. The value of the attribute need not be specified.

20.4.8 organizational_project   EXPRESS-G

An organizational_project is a project for which one or more organization entity data types are responsible.

EXPRESS specification:

*)
ENTITY organizational_project;
  name : label;
  description : OPTIONAL text;
  responsible_organizations : SET[1:?] OF organization;
DERIVE
  id : identifier := get_id_value(SELF);
WHERE
  WR1: SIZEOF(USEDIN(SELF, 'BASIC_ATTRIBUTE_SCHEMA.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1;
END_ENTITY;
(*

Attribute definitions:

name: the label by which the organizational_project is known.

description: the text that characterizes the organizational_project. The value of the attribute need not be specified.

responsible_organizations: the organization entity data types indicating who has project oversight.

id: the identifier that distinguishes the organizational_project.

NOTE 1   This attribute is an upwardly compatible addition to organizational_project as specified in ISO 10303-41:1994.

NOTE 2   The context in which id is used as a discriminating characteristic can be identified in an annotated Express schema that uses or specializes this entity, or by default, in an agreement of common understanding between partners sharing this information.

Formal propositions:

WR1: Each organizational_project shall be the identified_item in at most one id_attribute.

NOTE 3   The id_attribute data type is defined in basic_attribute_schema of this part of ISO 10303.

NOTE 4   A template for constraining the population of the entity data types defined in the basic_attribute_schema is described in annex E.

20.4.9 organizational_project_relationship   EXPRESS-G

An organizational_project_relationship is a relationship between two instances of the entity data type organizational_project with an identification and description of their relationship.

NOTE 1   The role of organizational_project_relationship can be defined in the annotated EXPRESS schemas that use or specialize this entity, or by default, in an agreement of common understanding between the partners sharing this information.

NOTE 2   Relationships represented using this entity may be parent child relationship. Annotated EXPRESS schemas that use or specialize this entity specify whether or not the relationship is directed.

NOTE 3   This entity, together with the organizational_project entity, is based on the relationship template that is described in annex E.3.

EXPRESS specification:

*)
ENTITY organizational_project_relationship;
  name : label;
  description : OPTIONAL text;
  relating_organizational_project : organizational_project;
  related_organizational_project : organizational_project;
END_ENTITY;
(*

Attribute definitions:

name: the label by which the organizational_project_relationship is known.

description: the text that characterizes the organizational_project_relationship. The value of the attribute need not be specified.

relating_organizational_project: one of the instances of organizational_project that is a part of the relationship.

NOTE 4   The meaning of this attribute can be defined in the annotated EXPRESS schemas that use or specialize this entity, or in an agreement of common understanding between the partners sharing this information.

related_organizational_project: the other instance of organizational_project that is a part of the relationship. If one element of the relationship is dependent up on the other, this attribute shall be the dependent one.

NOTE 5   The meaning of this attribute can be defined in the annotated EXPRESS schemas that use or specialize this entity, or in an agreement of common understanding between the partners sharing this information.

20.4.10 person   EXPRESS-G

A person is an individual human being.

NOTE 1   In addition to the attributes defined in person additional lists of attributes may be assigned using generic_attribute_list_assignment.

EXAMPLE 1   For example a generic attribute list named "Previous name" with a value of ["Honourific":"Mr", "Given name":"Fred", "Family Name":"Blogs"] may be assigned.

EXPRESS specification:

*)
ENTITY person;
  id : identifier;
  last_name : OPTIONAL label;
  first_name : OPTIONAL label;
  middle_names : OPTIONAL LIST[1:?] OF label;
  prefix_titles : OPTIONAL LIST[1:?] OF label;
  suffix_titles : OPTIONAL LIST[1:?] OF label;
WHERE
  WR1: EXISTS(last_name) OR EXISTS(first_name);
END_ENTITY;
(*

Attribute definitions:

id: the identifier that distinguishes the person.

NOTE 2   The identification of a person is usually context dependent.

NOTE 3   The meaning of this attribute can be defined in the annotated EXPRESS schemas that use or specialize this entity, or in an agreement of common understanding between the partners sharing this information.

EXAMPLE 2   In the USA a person's id would be his or her social security number whereas in the United Kingdom it would be his or her national insurance number.

NOTE 4   The context in which id is used as a discriminating characteristic can be identified in an annotated Express schema that uses or specializes this entity, or by default, in an agreement of common understanding between partners sharing this information.

last_name: the person's surname. The value of this attribute need not be specified.

first_name: the first element of the person's list of forenames. The value of this attribute need not be specified.

middle_names: the person's other forenames, if there are any. The value of this attribute need not be specified.

prefix_titles: the text that specifies the person's social or professional standing and appear before his or her names. The value of this attribute need not be specified.

suffix_titles: the text that specifies the person's social or professional standing and appear after his or her names. The value of this attribute need not be specified.

Formal propositions:

WR1: Either the last name, first name or the last and first name shall be defined.

20.4.11 person_and_organization   EXPRESS-G

A person_and_organization is a person in an organization.

EXPRESS specification:

*)
ENTITY person_and_organization;
  the_person : person;
  the_organization : organization;
DERIVE
  name : label := get_name_value(SELF);
  description : text := get_description_value(SELF);
WHERE
  WR1: SIZEOF(USEDIN(SELF, 'BASIC_ATTRIBUTE_SCHEMA.' + 'NAME_ATTRIBUTE.NAMED_ITEM')) <= 1;
  WR2: SIZEOF(USEDIN(SELF, 'BASIC_ATTRIBUTE_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1;
END_ENTITY;
(*

Attribute definitions:

the_person: the instance of the person entity data type who is related to an instance of organization.

the_organization: the instance of the organization entity data type to which the instance of person is related.

name: the label by which the person_and_organization is known.

NOTE 1   This attribute is an upwardly compatible addition to person_and_organization as specified in ISO 10303-41:1994.

description: the text that characterizes the person_and_organization.

NOTE 2   This attribute is an upwardly compatible addition to person_and_organization as specified in ISO 10303-41:1994.

Formal propositions:

WR1: Each person_and_organization shall be the described_item in at most one description_attribute.

NOTE 3   The description_attribute data type is defined in basic_attribute_schema of this part of ISO 10303.

WR2: Each person_and_organization shall be the named_item in at most one name_attribute.

NOTE 4   The name_attribute data type is defined in basic_attribute_schema of this part of ISO 10303.

NOTE 5   A template for constraining the population of the entity data types defined in the basic_attribute_schema is described in annex E.

20.4.12 person_and_organization_role   EXPRESS-G

A person_and_organization_role is a purpose for a person_and_organization and provides identification and description of the purpose.

EXAMPLE    The role of a person could be 'buyer' in the context of the organization where he/she works and it could be 'customer' in the context of the organization from which he/she purchases goods.

EXPRESS specification:

*)
ENTITY person_and_organization_role;
  name : label;
DERIVE
  description : text := get_description_value(SELF);
WHERE
  WR1: SIZEOF(USEDIN(SELF, 'BASIC_ATTRIBUTE_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1;
END_ENTITY;
(*

Attribute definitions:

name: the label by which the person_and_organization_role is known.

NOTE 1   The meaning of this attribute can be defined in the annotated EXPRESS schemas that use or specialize this entity, or in an agreement of common understanding between the partners sharing this information.

description: the text that characterizes the person_and_organization_role.

NOTE 2   This attribute is an upwardly compatible addition to person_and_organization_role as specified in ISO 10303-41:1994.

Formal propositions:

WR1: Each person_and_organization_role shall be the described_item in at most one description_attribute.

NOTE 3   The description_attribute data type is defined in basic_attribute_schema of this part of ISO 10303.

NOTE 4   A template for constraining the population of the entity data types defined in the basic_attribute_schema is described in annex E.

20.4.13 person_role   EXPRESS-G

A person_role is a purpose for a person and provides identification and description of the purpose.

EXPRESS specification:

*)
ENTITY person_role;
  name : label;
DERIVE
  description : text := get_description_value(SELF);
WHERE
  WR1: SIZEOF(USEDIN(SELF, 'BASIC_ATTRIBUTE_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1;
END_ENTITY;
(*

Attribute definitions:

name: the label by which the person_role is known.

NOTE 1   The meaning of this attribute can be defined in the annotated EXPRESS schemas that use or specialize this entity, or in an agreement of common understanding between the partners sharing this information.

description: the label that characterizes the person_role.

NOTE 2   This attribute is an upwardly compatible addition to person_role as specified in ISO 10303-41:1994.

Formal propositions:

WR1: Each person_role shall be the described_item in at most one description_attribute.

NOTE 3   The description_attribute data type is defined in basic_attribute_schema of this part of ISO 10303.

NOTE 4   A template for constraining the population of the entity data types defined in the basic_attribute_schema is described in annex E.

20.4.14 person_type   EXPRESS-G

A person_type is a category of people having common characteristics.

EXPRESS specification:

*)
ENTITY person_type;
  id : identifier;
  name : label;
  description : OPTIONAL text;
END_ENTITY;
(*

Attribute definitions:

id: the identifier that distinguishes the person_type.

name: the label by which the person_type is known.

description: the text that characterizes the person_type. The value of this attribute need not be specified.

20.4.15 person_type_definition   EXPRESS-G

A person_type_definition is a characterization of type of person.

EXPRESS specification:

*)
ENTITY person_type_definition;
  id : identifier;
  name : label;
  description : OPTIONAL text;
  formation : person_type_definition_formation;
END_ENTITY;
(*

Attribute definitions:

id: the identifier that distinguishes the person_type_definition.

name: the label by which the person_type_definition is known.

description: the text that characterizes the person_type_definition. The value of this attribute need not be specified.

formation: the person_type_definition_formation to which the person_type_definition relates.

20.4.16 person_type_definition_formation   EXPRESS-G

A person_type_definition_formation is a collector of definitions of a type of person.

EXPRESS specification:

*)
ENTITY person_type_definition_formation;
  id : identifier;
  name : label;
  description : OPTIONAL text;
  of_person_type : person_type;
END_ENTITY;
(*

Attribute definitions:

id: the identifier that distinguishes the person_type_definition_formation.

name: the label by which the person_type_definition_formation is known.

description: the text that characterizes the person_type_definition_formation. The value of this attribute need not be specified.

of_person_type: the person_type to which the person_type_definition_formation belongs.

20.4.17 person_type_definition_relationship   EXPRESS-G

A person_type_definition_relationship is a relationship between two instances of the person_type_definition entity data type and provides for the identification, naming, and description of that relationship.

EXPRESS specification:

*)
ENTITY person_type_definition_relationship;
  id : identifier;
  name : label;
  description : OPTIONAL text;
  relating_person_type_definition : person_type_definition;
  related_person_type_definition : person_type_definition;
END_ENTITY;
(*

Attribute definitions:

id: the identifier that distinguishes the person_type_definition_relationship.

name: the label by which the person_type_definition_relationship is known.

description: the text that characterizes the person_type_definition_relationship. The value of this attribute need not be specified.

relating_person_type_definition: one of the instances of person_type_definition that is a part of the relationship.

NOTE 1   The meaning of this attribute can be defined in the annotated EXPRESS schemas that use or specialize this entity, or in an agreement of common understanding between the partners sharing this information.

related_person_type_definition: the other instance of person_type_definition that is a part of the relationship. If one element of the relationship is dependent upon the other, this attribute shall be the dependent one.

NOTE 2   The meaning of this attribute can be defined in the annotated EXPRESS schemas that use or specialize this entity, or in an agreement of common understanding between the partners sharing this information.

20.4.18 personal_address   EXPRESS-G

A personal_address is a type of address, which is an address for one or more persons.

EXPRESS specification:

*)
ENTITY personal_address
  SUBTYPE OF (address);
  people : SET[1:?] OF person;
  description : OPTIONAL text;
END_ENTITY;
(*

Attribute definitions:

people: the people who reside at the address.

description: the text that characterizes the personal_address. The value of this attribute need not be specified.

20.4.19 position_in_organization   EXPRESS-G

A position_in_organization is a specific function or job performed by a person in a particular organization. It is defined by responsibilities and activities. A position that is not fulfilled by a person is a vacancy.

EXAMPLE    The chairperson of SC4.

EXPRESS specification:

*)
ENTITY position_in_organization;
  id : identifier;
  name : label;
  description : OPTIONAL text;
END_ENTITY;
(*

Attribute definitions:

id: the identifier that distinguishes the position_in_organization.

name: the label by which the position_in_organization is known.

description: the text that characterizes the position_in_organization. The value of this attribute need not be specified.

20.4.20 position_in_organization_relationship   EXPRESS-G

A position_in_organization_relationship is a relationship between two instances of the position_in_organization entity data type and provides for the identification, naming, and description of that relationship.

EXPRESS specification:

*)
ENTITY position_in_organization_relationship;
  id : identifier;
  name : label;
  description : OPTIONAL text;
  relating_position_in_organization : position_in_organization;
  related_position_in_organization : position_in_organization;
END_ENTITY;
(*

Attribute definitions:

id: the identifier that distinguishes the position_in_organization_relationship.

name: the label by which the position_in_organization_relationship is known.

description: the text that characterizes the position_in_organization_relationship. The value of this attribute need not be specified.

relating_position_in_organization: one of the instances of position_in_organization that is a part of the relationship.

NOTE 1   The meaning of this attribute can be defined in the annotated EXPRESS schemas that use or specialize this entity, or in an agreement of common understanding between the partners sharing this information.

related_position_in_organization: the other instance of position_in_organization that is a part of the relationship. If one element of the relationship is dependent upon the other, this attribute shall be the dependent one.

NOTE 2   The meaning of this attribute can be defined in the annotated EXPRESS schemas that use or specialize this entity, or in an agreement of common understanding between the partners sharing this information.

20.4.21 position_in_organization_type   EXPRESS-G

A position_in_organization_type is a generic function or job that is performed in organizations.

EXAMPLE    Technical Director is a position in a company.

NOTE    A relationship between a position_in_organization_type object and one or more position_in_organization objects is established by the declaration of a subtype of position_in_organization_type_assignment that references a position_in_organization via its items attribute.

EXPRESS specification:

*)
ENTITY position_in_organization_type;
  id : identifier;
  name : label;
  description : OPTIONAL text;
END_ENTITY;
(*

Attribute definitions:

id: the identifier that distinguishes the position_in_organization_type.

name: the label by which the position_in_organization_type is known.

description: the text that characterizes the position_in_organization_type. The value of this attribute need not be specified.

20.5 person_organization_schema function definitions

20.5.1 acyclic_organization_relationship

The acyclic_organization_relationship function determines whether the graph of instances of the entity data type organization that contains relation as one of its links contains a cycle. This function may be used to evaluate either an organization_relationship or any of its subtypes.

The function returns TRUE if no cycle has been detected. Otherwise it returns FALSE.

NOTE 1   The algorithm of the function is explained in annex E.2.

NOTE 2   This function is not used in this schema. It is defined here because other ISO 10303 integrated resources and application protocols that use the organization_relationship entity include rules that use this function.

EXPRESS specification:

*)
FUNCTION acyclic_organization_relationship (relation : organization_relationship; relatives : SET[1:?] OF organization; specific_relation : STRING) : BOOLEAN;
LOCAL
      x : SET OF organization_relationship;
    END_LOCAL;

    IF relation.relating_organization IN relatives THEN
      RETURN (FALSE);
    END_IF;
    x := QUERY(org <* bag_to_set(USEDIN(relation.relating_organization, 'PERSON_ORGANIZATION_SCHEMA.' + 'ORGANIZATION_RELATIONSHIP.' + 'RELATED_ORGANIZATION')) | specific_relation IN TYPEOF(org));
    REPEAT i := 1 TO HIINDEX(x);
      IF NOT acyclic_organization_relationship(x[i], relatives + relation.relating_organization, specific_relation) THEN
        RETURN (FALSE);
      END_IF;
    END_REPEAT;
    RETURN (TRUE);
END_FUNCTION;
(*

Argument definitions:

relation: (input) the candidate organization_relationship to be checked.

relatives: (input) the set of instances of the entity data type organization for which the function is searching in the relating_organization attribute of the relation argument.

specific_relation: (input) the fully qualified name of a subtype of the organization_relationship entity.

20.5.2 acyclic_organization_type_relationship

The acyclic_organization_type_relationship function determines whether the graph of instances of the entity data type organization_type that contains relation as one of its links contains a cycle. This function may be used to evaluate either an organization_type_relationship or any of its subtypes.

The function returns TRUE if no cycle has been detected. Otherwise it returns FALSE.

NOTE 1   The algorithm of the function is explained in annex E.2.

NOTE 2   This function is not used in this schema. It is defined here because other ISO 10303 integrated resources and application protocols that use the organization_type_relationship entity include rules that use this function.

EXPRESS specification:

*)
FUNCTION acyclic_organization_type_relationship (relation : organization_type_relationship; relatives : SET[0:?] OF organization_type; specific_relation : STRING) : BOOLEAN;
LOCAL
      x : SET OF organization_type_relationship;
    END_LOCAL;

    IF relation.relating_organization_type IN relatives THEN
      RETURN (FALSE);
    END_IF;
    x := QUERY(orgtyp <* bag_to_set(USEDIN(relation.relating_organization_type, 'PERSON_ORGANIZATION_SCHEMA.' + 'ORGANIZATION_TYPE_RELATIONSHIP.' + 'RELATED_ORGANIZATION_TYPE')) | specific_relation IN TYPEOF(orgtyp));
    REPEAT i := 1 TO HIINDEX(x);
      IF NOT acyclic_organization_type_relationship(x[i], relatives + relation.relating_organization_type, specific_relation) THEN
        RETURN (FALSE);
      END_IF;
    END_REPEAT;
    RETURN (TRUE);
END_FUNCTION;
(*

Argument definitions:

relation: (input) the candidate organization_type_relationship to be checked.

relatives: (input) the set of instances of the entity data type organization_type that the function is searching for in the relating_organization_type parameter of the relation argument.

specific_relation: (input) the fully qualified name of a subtype of the organization_type_relationship entity.

20.5.3 acyclic_organizational_project_relationship

The acyclic_organizational_project_relationship function determines whether the graph of instances of the entity data type organizational_project that contains relation as one of its links contains a cycle. This function may be used to evaluate either an organizational_project_relationship or any of its subtypes.

The function returns TRUE if no cycle has been detected. Otherwise it returns FALSE.

NOTE 1   The algorithm of the function is explained in annex E.2.

NOTE 2   This function is not used in this schema. It is defined here because other ISO 10303 integrated resources and application protocols that use the organizational_project_relationship entity include rules that use this function.

EXPRESS specification:

*)
FUNCTION acyclic_organizational_project_relationship (relation : organizational_project_relationship; relatives : SET[1:?] OF organizational_project; specific_relation : STRING) : BOOLEAN;
LOCAL
      x : SET OF organizational_project_relationship;
    END_LOCAL;

    IF relation.relating_organizational_project IN relatives THEN
      RETURN (FALSE);
    END_IF;
    x := QUERY(op <* bag_to_set(USEDIN(relation.relating_organizational_project, 'PERSON_ORGANIZATION_SCHEMA.' + 'ORGANIZATIONAL_PROJECT_RELATIONSHIP.' + 'RELATED_ORGANIZATIONAL_PROJECT')) | specific_relation IN TYPEOF(op));
    REPEAT i := 1 TO HIINDEX(x);
      IF NOT acyclic_organizational_project_relationship(x[i], relatives + relation.relating_organizational_project, specific_relation) THEN
        RETURN (FALSE);
      END_IF;
    END_REPEAT;
    RETURN (TRUE);
END_FUNCTION;
(*

Argument definitions:

relation: (input) the candidate organizational_project_relationship to be checked.

relatives: (input) the set of instances of the entity data type organizational_project for which the function is searching in the relating_organizational_project attribute of the relation argument.

specific_relation: (input) the fully qualified entity name of a type of organizational_project_relationship entity.

20.5.4 acyclic_person_type_definition_relationship

The acyclic_person_type_definition_relationship function determines whether the graph of instances of the entity data type person_type_definition that contains relation as one of its links contains a cycle. This function may be used to evaluate either a person_type_definition_relationship or any of its subtypes.

The function returns TRUE if no cycle has been detected. Otherwise it returns FALSE.

NOTE 1   The algorithm of the function is explained in annex E.2.

NOTE 2   This function is not used in this schema. It is defined here because other ISO 10303 integrated resources and application protocols that use the person_type_definition_relationship entity include rules that use this function.

EXPRESS specification:

*)
FUNCTION acyclic_person_type_definition_relationship (relation : person_type_definition_relationship; relatives : SET[0:?] OF person_type_definition; specific_relation : STRING) : BOOLEAN;
LOCAL
      x : SET OF person_type_definition_relationship;
    END_LOCAL;

    IF relation.relating_person_type_definition IN relatives THEN
      RETURN (FALSE);
    END_IF;
    x := QUERY(ptdef <* bag_to_set(USEDIN(relation.relating_person_type_definition, 'PERSON_ORGANIZATION_SCHEMA.' + 'PERSON_TYPE_DEFINITION_RELATIONSHIP.' + 'RELATED_PERSON_TYPE_DEFINITION')) | specific_relation IN TYPEOF(ptdef));
    REPEAT i := 1 TO HIINDEX(x);
      IF NOT acyclic_person_type_definition_relationship(x[i], relatives + relation.relating_person_type_definition, specific_relation) THEN
        RETURN (FALSE);
      END_IF;
    END_REPEAT;
    RETURN (TRUE);
END_FUNCTION;
(*

Argument definitions:

relation: (input) the candidate person_type_definition_relationship to be checked.

relatives: (input) the set of instances of the entity data type person_type_definition that the function is searching for in the relating_person_type_definition parameter of the relation argument.

specific_relation: (input) the fully qualified name of a subtype of the person_type_definition_relationship entity.

20.5.5 acyclic_position_in_organization_relationship

The acyclic_position_in_organization_relationship function determines whether the graph of instances of the entity data type position_in_organization that contains relation as one of its links contains a cycle. This function may be used to evaluate either a position_in_organization_relationship or any of its subtypes.

The function returns TRUE if no cycle has been detected. Otherwise it returns FALSE.

NOTE 1   The algorithm of the function is explained in annex E.2.

NOTE 2   This function is not used in this schema. It is defined here because other ISO 10303 integrated resources and application protocols that use the position_in_organization_relationship entity include rules that use this function.

EXPRESS specification:

*)
FUNCTION acyclic_position_in_organization_relationship (relation : position_in_organization_relationship; relatives : SET[0:?] OF position_in_organization; specific_relation : STRING) : BOOLEAN;
LOCAL
      x : SET OF position_in_organization_relationship;
    END_LOCAL;

    IF relation.relating_position_in_organization IN relatives THEN
      RETURN (FALSE);
    END_IF;
    x := QUERY(piorg <* bag_to_set(USEDIN(relation.relating_position_in_organization, 'PERSON_ORGANIZATION_SCHEMA.' + 'POSITION_IN_ORGANIZATION_RELATIONSHIP.' + 'RELATED_POSITION_IN_ORGANIZATION')) | specific_relation IN TYPEOF(piorg));
    REPEAT i := 1 TO HIINDEX(x);
      IF NOT acyclic_position_in_organization_relationship(x[i], relatives + relation.relating_position_in_organization, specific_relation) THEN
        RETURN (FALSE);
      END_IF;
    END_REPEAT;
    RETURN (TRUE);
END_FUNCTION;
(*

Argument definitions:

relation: (input) the candidate position_in_organization_relationship to be checked.

relatives: (input) the set of instances of the entity data type position_in_organization that the function is searching for in the relating_position_in_organization parameter of the relation argument.

specific_relation: (input) the fully qualified name of a subtype of the position_in_organization_relationship entity.



*)
END_SCHEMA;  -- person_organization_schema
(*


© ISO 2021 — All rights reserved