AP scope  |  AP module  |  AP contents  |  AP index
Application module: Program management ISO/WD 10303-1466

Cover page
Table of contents
Copyright
Foreword
Introduction
1 Scope
2 Normative references
3 Terms, definitions and abbreviations

4 Information requirements
   4.1 Required AM ARMs
5 Module interpreted model
   5.1 Mapping specification
   5.2 MIM EXPRESS short listing

A MIM short names
B Information object registration
C ARM EXPRESS-G   EXPRESS-G
D MIM EXPRESS-G   EXPRESS-G
E Computer interpretable listings
Bibliography
Index

(*
ISO TC184/SC4/WG3 N2103 - ISO/WD 10303-1466 Program management - EXPRESS ARM Long form
*)



SCHEMA Program_management_arm_LF;


TYPE activity_item = SELECT
   (Activity,
    Activity_property,
    Applied_activity_assignment,
    Applied_risk_source_assignment,
    Applied_state_assignment,
    Applied_state_definition_assignment,
    Assigned_property,
    Condition_assignment,
    Contract,
    Date_or_date_time_assignment,
    Document,
    Document_definition,
    Document_version,
    Effectivity,
    Event,
    Independent_property,
    Issue,
    Justification_assignment,
    Location,
    Location_representation,
    Managed_resource,
    Observation_consequence,
    Position,
    Position_group,
    Product,
    Product_concept,
    Product_configuration,
    Product_group,
    Product_version,
    Product_version_relationship,
    Product_view_definition,
    Project,
    Resource_as_realized,
    Resource_event,
    Resource_item,
    Resource_property,
    Risk_analysis,
    Risk_assessment,
    Risk_communication,
    Risk_control,
    Risk_estimation,
    Risk_evaluation,
    Risk_identification,
    Risk_reduction,
    Scheme,
    Scheme_entry,
    Scheme_entry_assignment,
    Security_classification_assignment,
    State,
    State_assertion,
    State_assessment,
    State_relationship,
    Task_method,
    Task_method_version,
    Time_interval_assignment,
    View_definition_relationship);
END_TYPE;

TYPE activity_method_item = SELECT
   (Activity,
    Activity_property,
    Applied_activity_assignment,
    Assigned_property,
    Breakdown_element,
    Breakdown_element_definition,
    Breakdown_element_usage,
    Breakdown_element_version,
    Contract,
    Document,
    Document_version,
    Event,
    Location,
    Managed_resource,
    Observation_consequence,
    Organization,
    Organization_type,
    Person,
    Person_in_organization,
    Position,
    Position_group,
    Position_type,
    Product,
    Product_as_individual,
    Product_as_individual_version,
    Product_as_individual_view,
    Product_based_location_identification,
    Product_concept,
    Product_configuration,
    Product_group,
    Product_version,
    Product_version_relationship,
    Product_view_definition,
    Project,
    Required_resource,
    Required_resource_assignment,
    Resource_as_realized,
    Resource_event,
    Resource_item,
    Resource_property,
    Risk_treatment,
    Scheme_entry,
    Scheme_relationship,
    Task_method,
    Task_method_version,
    Type_of_person,
    Type_of_person_definition,
    View_definition_relationship,
    Work_output,
    Work_output_assignment);
END_TYPE;

TYPE activity_realization_select = SELECT
   (Scheme,
    Scheme_version,
    Task_method,
    Task_method_version);
END_TYPE;

TYPE affected_item_select = SELECT
   (Activity_property,
    Assigned_property,
    Contract,
    Document,
    Document_definition,
    Document_version,
    Organization,
    Person,
    Person_in_organization,
    Position_role,
    Product,
    Product_group,
    Product_version,
    Product_view_definition,
    Project,
    Project_assignment,
    Qualification_type,
    Resource_item,
    Resource_property,
    View_definition_relationship);
END_TYPE;

TYPE any_number_value = NUMBER;
END_TYPE;

TYPE any_string_value = STRING;
END_TYPE;

TYPE approval_item = SELECT
   (Activity,
    Activity_actual,
    Activity_method_assignment,
    Activity_method_realization,
    Activity_method_realization_relationship,
    Activity_method_relationship,
    Activity_property,
    Address_assignment,
    Affected_items_assignment,
    Applied_activity_assignment,
    Applied_activity_method_assignment,
    Applied_information_usage_right,
    Applied_state_assignment,
    Applied_state_definition_assignment,
    Assigned_property,
    Breakdown,
    Breakdown_element,
    Breakdown_element_definition,
    Breakdown_element_realization,
    Breakdown_element_usage,
    Breakdown_element_version,
    Breakdown_version,
    Certification,
    Certification_assignment,
    Classification_assignment,
    Condition,
    Condition_assignment,
    Condition_evaluation,
    Condition_evaluation_assignment,
    Condition_parameter,
    Contract,
    Contract_assignment,
    Date_or_date_time_assignment,
    Dated_effectivity,
    Digital_document_definition,
    Directed_activity,
    Document,
    Document_assignment,
    Document_definition_relationship,
    Document_version,
    Effectivity,
    Effectivity_assignment,
    Event,
    Event_assignment,
    Experience_gained,
    Experience_type,
    Identification_assignment,
    Independent_property,
    Independent_property_relationship,
    Information_usage_right,
    Justification,
    Justification_assignment,
    Justification_relationship,
    Justification_support_assignment,
    Location_assignment,
    Lot_effectivity,
    Managed_resource,
    Managed_resource_relationship,
    Observation,
    Organization,
    Organization_or_person_in_organization_assignment,
    Organization_organization_type_relationship,
    Organization_relationship,
    Organization_type,
    Person,
    Person_in_organization,
    Person_or_organization_or_person_in_organization_in_position,
    Person_or_organization_or_person_in_organization_in_position_relationship,
    Physical_document_definition,
    Position,
    Position_assignment,
    Position_group_assignment,
    Position_position_type_assignment,
    Position_type,
    Position_type_assignment,
    Product_as_individual,
    Product_as_planned,
    Product_as_realized,
    Product_category_hierarchy,
    Product_concept,
    Product_configuration,
    Product_definition_element_relationship,
    Product_design_to_individual,
    Product_design_version_to_individual,
    Product_group,
    Product_group_membership,
    Product_group_relationship,
    Product_planned_to_realized,
    Product_relationship,
    Product_version_relationship,
    Product_view_definition,
    Project,
    Project_assignment,
    Qualification_assignment,
    Qualification_type,
    Required_resource,
    Required_resource_assignment,
    Required_resource_relationship,
    Resource_as_realized,
    Resource_as_realized_assignment,
    Resource_event,
    Resource_item,
    Resource_item_assignment,
    Resource_item_relationship,
    Resource_property,
    Risk_perception,
    Risk_reduction,
    Security_classification,
    Security_classification_assignment,
    Selected_item_assignment,
    Serial_effectivity,
    Task_element_state_relationship,
    Task_method,
    Task_method_assignment,
    Task_method_relationship,
    Task_method_state_relationship,
    Task_method_version,
    Task_method_version_assignment,
    Task_method_version_relationship,
    Task_objective,
    Task_objective_state_relationship,
    Time_interval_assignment,
    Time_interval_effectivity,
    Type_of_person,
    Type_of_person_assignment,
    View_definition_context,
    View_definition_relationship,
    Work_order,
    Work_output,
    Work_request);
END_TYPE;

TYPE assigned_document_select = SELECT
   (Document,
    Document_definition,
    Document_version,
    File);
END_TYPE;

TYPE assigned_name_select = SELECT
   (External_class_library);
END_TYPE;

TYPE breakdown_item = SELECT
   (Breakdown_element_definition,
    Breakdown_element_usage);
END_TYPE;

TYPE certification_item = SELECT
   (Applied_activity_method_assignment,
    Approving_person_organization,
    Breakdown,
    Condition_parameter,
    Document,
    Document_version,
    Experience_gained,
    Experience_instance,
    Experience_type,
    External_class_library,
    Independent_property,
    Independent_property_relationship,
    Organization,
    Organization_type,
    Person,
    Person_in_organization,
    Position_role,
    Product_as_individual,
    Product_as_planned,
    Product_as_realized,
    Product_configuration,
    Product_group,
    Product_group_relationship,
    Product_version_relationship,
    Product_view_definition,
    Project,
    Qualification_assignment,
    Resource_item,
    Task_method,
    Task_method_version,
    Task_objective,
    Type_of_person,
    View_definition_context,
    View_definition_relationship,
    View_definition_usage,
    Work_output);
END_TYPE;

TYPE characterized_activity_definition = SELECT
   (Activity,
    Activity_method,
    Activity_method_relationship,
    Condition,
    Condition_evaluation,
    Condition_relationship,
    Required_resource_assignment,
    Resource_as_realized_assignment,
    Resource_event,
    Resource_item_assignment,
    Task_objective,
    Work_output);
END_TYPE;

TYPE characterized_resource_select = SELECT
   (Managed_resource,
    Required_resource,
    Resource_as_realized,
    Resource_item,
    Resource_item_relationship);
END_TYPE;

TYPE classification_item = SELECT
   (Activity,
    Activity_method,
    Activity_method_assignment,
    Activity_method_realization,
    Activity_method_realization_relationship,
    Activity_method_relationship,
    Activity_property,
    Activity_property_representation,
    Activity_relationship,
    Activity_status,
    Address,
    Address_assignment,
    Affected_items_assignment,
    Applied_activity_assignment,
    Applied_activity_method_assignment,
    Applied_information_usage_right,
    Applied_probability_assignment,
    Applied_risk_impact_assignment,
    Applied_state_assignment,
    Applied_state_definition_assignment,
    Approval,
    Approval_assignment,
    Approval_relationship,
    Approval_status,
    Approving_person_organization,
    Assigned_property,
    Attribute_translation_assignment,
    Breakdown,
    Breakdown_context,
    Breakdown_element,
    Breakdown_element_realization,
    Breakdown_element_usage,
    Breakdown_element_version,
    Breakdown_of,
    Calendar_date,
    Certification,
    Certification_assignment,
    Condition,
    Condition_assignment,
    Condition_evaluation,
    Condition_evaluation_assignment,
    Condition_evaluation_parameter,
    Condition_parameter,
    Condition_relationship,
    Context_dependent_unit,
    Contract,
    Contract_assignment,
    Date_or_date_time_assignment,
    Date_time,
    Defined_state_relationship,
    Digital_document_definition,
    Directed_activity,
    Document,
    Document_assignment,
    Document_definition_relationship,
    Document_location_identification,
    Document_version,
    Effectivity,
    Effectivity_assignment,
    Effectivity_relationship,
    Event,
    Event_assignment,
    Event_relationship,
    Experience_gained,
    Experience_instance,
    Experience_type,
    External_class_library,
    External_item_identification,
    External_source_identification,
    File_relationship,
    Identification_assignment,
    Independent_property,
    Independent_property_relationship,
    Information_right,
    Information_usage_right,
    Information_usage_right_relationship,
    Item_design_association,
    Justification,
    Justification_assignment,
    Justification_relationship,
    Justification_support_assignment,
    Language,
    Language_indication,
    Local_time,
    Location,
    Location_assignment,
    Location_relationship,
    Location_representation,
    Managed_resource,
    Managed_resource_relationship,
    Market,
    Observation,
    Observation_consequence,
    Observation_item,
    Observation_relationship,
    Organization,
    Organization_or_person_in_organization_assignment,
    Organization_organization_type_relationship,
    Organization_relationship,
    Organization_type,
    Organizational_location_identification,
    Partial_document_assignment,
    Person,
    Person_in_organization,
    Person_or_organization_or_person_in_organization_in_position,
    Person_or_organization_or_person_in_organization_in_position_relationship,
    Physical_document_definition,
    Position,
    Position_assignment,
    Position_group,
    Position_group_assignment,
    Position_group_relationship,
    Position_position_type_assignment,
    Position_relationship,
    Position_type,
    Position_type_assignment,
    Probability_distribution,
    Product,
    Product_as_planned,
    Product_as_realized,
    Product_category,
    Product_concept,
    Product_configuration,
    Product_design_to_individual,
    Product_design_version_to_individual,
    Product_group,
    Product_group_relationship,
    Product_planned_to_realized,
    Product_relationship,
    Product_version,
    Product_version_relationship,
    Product_view_definition,
    Project,
    Project_assignment,
    Project_relationship,
    Property_representation,
    Qualification_assignment,
    Qualification_type,
    Qualification_type_relationship,
    Regional_coordinate,
    Related_condition_parameter,
    Representation,
    Representation_context,
    Representation_item,
    Required_resource,
    Required_resource_assignment,
    Required_resource_relationship,
    Resource_as_realized,
    Resource_as_realized_assignment,
    Resource_as_realized_relationship,
    Resource_event,
    Resource_event_correspondence_relationship,
    Resource_event_relationship,
    Resource_item,
    Resource_item_assignment,
    Resource_item_relationship,
    Resource_property,
    Resource_property_representation,
    Risk,
    Risk_consequence,
    Risk_perception,
    Risk_perception_relationship,
    Risk_relationship,
    Risk_stakeholder,
    Security_classification,
    Security_classification_assignment,
    Selected_item,
    Selected_item_assignment,
    State,
    State_assertion,
    State_assessment,
    State_definition,
    State_definition_relationship,
    State_relationship,
    State_role,
    Supplied_part_relationship,
    Task_element_state_relationship,
    Task_method,
    Task_method_state_relationship,
    Task_objective,
    Task_objective_state_relationship,
    Time_interval,
    Time_interval_assignment,
    Time_interval_relationship,
    Type_of_person,
    Type_of_person_assignment,
    Type_of_person_definition,
    Type_of_person_definition_relationship,
    Type_of_person_definition_required_attributes_relationship,
    Uncertainty_with_unit,
    Unit,
    Value_with_unit,
    View_definition_context,
    View_definition_relationship,
    Work_order,
    Work_output,
    Work_output_assignment,
    Work_output_relationship,
    Work_request,
    Work_request_status);
END_TYPE;

TYPE classified_attribute_select = SELECT
   (Activity,
    Activity_method_assignment,
    Activity_property,
    Activity_property_representation,
    Activity_relationship,
    Address_assignment,
    Affected_items_assignment,
    Applied_activity_assignment,
    Applied_information_usage_right,
    Applied_state_assignment,
    Applied_state_definition_assignment,
    Approval,
    Approval_assignment,
    Approval_relationship,
    Approval_status,
    Approving_person_organization,
    Assigned_property,
    Breakdown_context,
    Breakdown_element_realization,
    Breakdown_element_usage,
    Certification,
    Certification_assignment,
    Condition,
    Condition_evaluation,
    Condition_evaluation_parameter,
    Condition_parameter,
    Condition_relationship,
    Context_dependent_unit,
    Contract,
    Date_or_date_time_assignment,
    Document_assignment,
    Document_definition_relationship,
    Document_location_identification,
    Effectivity,
    Effectivity_assignment,
    Event_assignment,
    Event_relationship,
    External_item_identification,
    External_source_identification,
    File_relationship,
    Global_location_representation,
    Identification_assignment,
    Independent_property,
    Independent_property_relationship,
    Information_right,
    Information_usage_right,
    Information_usage_right_relationship,
    Justification,
    Justification_assignment,
    Justification_support_assignment,
    Language,
    Location,
    Location_relationship,
    Managed_resource,
    Managed_resource_relationship,
    Market,
    Organization_or_person_in_organization_assignment,
    Organization_relationship,
    Organizational_location_identification,
    Partial_document_assignment,
    Person_in_organization,
    Product,
    Product_based_location_identification,
    Product_category,
    Product_concept,
    Product_relationship,
    Product_version_relationship,
    Product_view_definition,
    Project_assignment,
    Project_relationship,
    Property_representation,
    Regional_coordinate,
    Regional_grid_location_representation,
    Related_condition_parameter,
    Representation,
    Representation_context,
    Representation_item,
    Required_resource,
    Required_resource_relationship,
    Resource_as_realized,
    Resource_as_realized_relationship,
    Resource_event,
    Resource_event_correspondence_relationship,
    Resource_event_relationship,
    Resource_item,
    Resource_item_assignment,
    Resource_item_relationship,
    Resource_property,
    Resource_property_representation,
    Security_classification,
    State,
    State_definition,
    State_definition_relationship,
    State_relationship,
    Time_interval_relationship,
    Uncertainty_with_unit,
    Unit,
    Value_with_unit,
    View_definition_context,
    View_definition_relationship,
    Work_order,
    Work_output,
    Work_output_relationship,
    Work_request,
    Work_request_status);
END_TYPE;

TYPE condition_evaluation_item = SELECT
   (Activity,
    Activity_method_realization,
    Activity_method_realization_relationship,
    Activity_method_relationship,
    Applied_activity_assignment,
    Applied_activity_method_assignment,
    Approval,
    Approval_assignment,
    Assigned_property,
    Document_assignment,
    Managed_resource,
    Product_definition_element_relationship,
    Product_group,
    Product_group_membership,
    Product_group_relationship,
    Resource_as_realized,
    Resource_as_realized_assignment,
    Resource_as_realized_relationship,
    Resource_event,
    Resource_event_relationship,
    Resource_item,
    Resource_item_assignment,
    Resource_item_relationship,
    State_assertion,
    State_assessment,
    View_definition_relationship);
END_TYPE;

TYPE condition_evaluation_parameter_item = SELECT
   (Activity,
    Activity_property,
    Activity_property_representation,
    Approval,
    Approval_assignment,
    Assigned_property,
    Calendar_date,
    Certification_assignment,
    Classification_assignment,
    Contract_assignment,
    Date_or_date_time_assignment,
    Document_assignment,
    Identification_assignment,
    Independent_property_relationship,
    Organization_or_person_in_organization_assignment,
    Product,
    Product_as_individual,
    Product_category_assignment,
    Product_concept,
    Product_definition_element_relationship,
    Product_version,
    Product_version_relationship,
    Property_representation,
    Representation,
    Required_resource,
    Resource_as_realized,
    Resource_as_realized_relationship,
    Resource_event,
    Resource_property,
    Resource_property_representation,
    State,
    State_definition,
    Time_interval_assignment,
    View_definition_relationship);
END_TYPE;

TYPE condition_item = SELECT
   (Activity,
    Activity_method_realization,
    Activity_method_realization_relationship,
    Activity_method_relationship,
    Activity_property,
    Applied_activity_assignment,
    Applied_activity_method_assignment,
    Approval,
    Approval_assignment,
    Assigned_property,
    Certification,
    Certification_assignment,
    Contract,
    Contract_assignment,
    Date_or_date_time_assignment,
    Date_time,
    Document_assignment,
    Justification,
    Justification_assignment,
    Managed_resource,
    Managed_resource_relationship,
    Product_definition_element_relationship,
    Product_group,
    Product_group_membership,
    Product_group_relationship,
    Required_resource,
    Required_resource_assignment,
    Required_resource_relationship,
    Resource_event,
    Resource_event_relationship,
    Resource_item,
    Resource_item_assignment,
    Resource_item_relationship,
    Resource_property,
    Risk_status,
    State_definition,
    State_definition_relationship,
    Task_method_assignment,
    Task_method_relationship,
    Task_method_version_assignment,
    Task_method_version_relationship,
    Time_interval,
    Time_interval_assignment,
    View_definition_relationship,
    Work_order,
    Work_request);
END_TYPE;

TYPE condition_parameter_item = SELECT
   (Activity,
    Activity_property,
    Activity_property_representation,
    Approval,
    Approval_assignment,
    Approving_person_organization,
    Assigned_property,
    Calendar_date,
    Certification,
    Certification_assignment,
    Classification_assignment,
    Condition_relationship,
    Contract,
    Contract_assignment,
    Date_or_date_time_assignment,
    Date_time,
    Document,
    Document_assignment,
    Document_definition,
    Document_version,
    Effectivity,
    Effectivity_assignment,
    Identification_assignment,
    Justification,
    Justification_assignment,
    Managed_resource,
    Observation,
    Organization_or_person_in_organization_assignment,
    Product,
    Product_as_individual,
    Product_category_assignment,
    Product_concept,
    Product_definition_element_relationship,
    Product_version,
    Product_view_definition,
    Property_representation,
    Representation,
    Required_resource,
    Resource_as_realized,
    Resource_as_realized_relationship,
    Resource_event,
    Resource_property,
    Resource_property_representation,
    Security_classification,
    Security_classification_assignment,
    State,
    State_definition,
    Time_interval,
    Time_interval_assignment,
    View_definition_relationship,
    Work_output);
END_TYPE;

TYPE constraint_context = SELECT
   (Task_element,
    Task_method_version);
END_TYPE;

TYPE contract_item = SELECT
   (Activity,
    Activity_method_realization,
    Activity_method_realization_relationship,
    Activity_method_relationship,
    Applied_activity_assignment,
    Applied_activity_method_assignment,
    Approving_person_organization,
    Breakdown,
    Breakdown_element,
    Breakdown_version,
    Document,
    Document_version,
    External_class,
    External_class_library,
    Information_usage_right,
    Justification,
    Justification_assignment,
    Justification_relationship,
    Justification_support_assignment,
    Managed_resource,
    Organization,
    Organization_or_person_in_organization_assignment,
    Person,
    Person_in_organization,
    Product,
    Product_as_individual,
    Product_as_planned,
    Product_as_realized,
    Product_concept,
    Product_configuration,
    Product_design_to_individual,
    Product_design_version_to_individual,
    Product_group,
    Product_group_relationship,
    Product_version,
    Project,
    Project_assignment,
    Resource_event,
    Resource_item,
    Security_classification,
    Supplied_part_relationship,
    Task_method,
    Task_method_assignment,
    Task_method_relationship,
    Task_method_version,
    Task_method_version_assignment,
    Task_method_version_relationship,
    Task_objective,
    Task_objective_state_relationship,
    Work_order,
    Work_output);
END_TYPE;

TYPE date_or_date_time_item = SELECT
   (Activity,
    Activity_method_assignment,
    Activity_method_realization,
    Activity_method_realization_relationship,
    Activity_method_relationship,
    Activity_property,
    Activity_property_representation,
    Activity_relationship,
    Address_assignment,
    Affected_items_assignment,
    Applied_activity_assignment,
    Applied_activity_method_assignment,
    Applied_information_usage_right,
    Applied_probability_assignment,
    Applied_risk_impact_assignment,
    Applied_risk_source_assignment,
    Applied_state_assignment,
    Applied_state_definition_assignment,
    Approval,
    Approval_assignment,
    Approval_status,
    Assigned_property,
    Breakdown,
    Breakdown_element,
    Breakdown_element_realization,
    Breakdown_element_usage,
    Breakdown_element_version,
    Certification,
    Certification_assignment,
    Classification_assignment,
    Condition,
    Condition_assignment,
    Condition_evaluation,
    Condition_evaluation_assignment,
    Contract,
    Contract_assignment,
    Date_or_date_time_assignment,
    Digital_document_definition,
    Directed_activity,
    Document,
    Document_assignment,
    Document_definition_relationship,
    Document_version,
    Effectivity,
    Effectivity_assignment,
    Event_assignment,
    Experience_instance,
    External_class_library,
    Identification_assignment,
    Independent_property,
    Independent_property_relationship,
    Information_usage_right,
    Justification,
    Justification_assignment,
    Justification_relationship,
    Justification_support_assignment,
    Location_assignment,
    Location_representation,
    Managed_resource,
    Observation,
    Organization,
    Organization_or_person_in_organization_assignment,
    Organization_organization_type_relationship,
    Organization_relationship,
    Person,
    Person_in_organization,
    Person_or_organization_or_person_in_organization_in_position,
    Person_or_organization_or_person_in_organization_in_position_relationship,
    Physical_document_definition,
    Position,
    Position_assignment,
    Position_group,
    Position_group_assignment,
    Position_group_role,
    Position_position_type_assignment,
    Position_relationship,
    Position_role,
    Position_type_assignment,
    Position_type_role,
    Product_as_planned,
    Product_as_realized,
    Product_category_assignment,
    Product_concept,
    Product_configuration,
    Product_design_to_individual,
    Product_design_version_to_individual,
    Product_group,
    Product_group_membership,
    Product_group_relationship,
    Product_planned_to_realized,
    Product_relationship,
    Product_version,
    Product_version_relationship,
    Product_view_definition,
    Project,
    Project_assignment,
    Property_representation,
    Qualification_assignment,
    Qualification_type,
    Qualification_type_relationship,
    Representation,
    Required_resource,
    Required_resource_assignment,
    Resource_as_realized,
    Resource_as_realized_assignment,
    Resource_event,
    Resource_item,
    Resource_item_assignment,
    Resource_property,
    Resource_property_representation,
    Risk,
    Risk_attitude,
    Risk_consequence,
    Risk_context,
    Risk_criteria,
    Risk_evaluation,
    Risk_perception,
    Risk_perception_relationship,
    Risk_reduction,
    Risk_relationship,
    Risk_status,
    Risk_treatment,
    Scheme_entry,
    Security_classification,
    Security_classification_assignment,
    Selected_item,
    Selected_item_assignment,
    State,
    State_assertion,
    State_assessment,
    State_definition,
    State_definition_relationship,
    State_relationship,
    Task_element_state_relationship,
    Task_method,
    Task_method_assignment,
    Task_method_relationship,
    Task_method_state_relationship,
    Task_method_version,
    Task_method_version_assignment,
    Task_method_version_relationship,
    Task_objective,
    Task_objective_state_relationship,
    Type_of_person_assignment,
    View_definition_context,
    Work_order,
    Work_output,
    Work_request);
END_TYPE;

TYPE date_or_date_time_select = SELECT
   (Calendar_date,
    Date_time);
END_TYPE;

TYPE date_or_event = SELECT
   (Calendar_date,
    Date_time,
    Event);
END_TYPE;

TYPE day_in_month_number = INTEGER ;
WHERE
  WR1: {1 <= SELF <= 31};
END_TYPE;

TYPE defined_activities = SELECT
   (Activity_actual,
    Resource_as_realized);
END_TYPE;

TYPE defined_attributes = SELECT
   (Experience_type,
    Qualification_type);
END_TYPE;

TYPE defined_methods = SELECT
   (Activity,
    Activity_method,
    Required_resource);
END_TYPE;

TYPE documented_element_select = SELECT
   (Activity,
    Activity_method_realization,
    Activity_method_realization_relationship,
    Activity_method_relationship,
    Activity_property,
    Activity_property_representation,
    Applied_activity_assignment,
    Applied_activity_method_assignment,
    Applied_risk_source_assignment,
    Approval,
    Approval_assignment,
    Approving_person_organization,
    Assigned_property,
    Breakdown,
    Breakdown_context,
    Breakdown_element,
    Breakdown_element_realization,
    Breakdown_element_usage,
    Breakdown_element_version,
    Certification,
    Certification_assignment,
    Condition,
    Condition_evaluation,
    Condition_parameter,
    Contract,
    Contract_assignment,
    Document,
    Document_definition,
    Document_version,
    Effectivity,
    Effectivity_assignment,
    Experience_gained,
    Experience_instance,
    Experience_type,
    External_class_library,
    Identification_assignment,
    Independent_property,
    Independent_property_relationship,
    Information_right,
    Information_usage_right,
    Justification,
    Justification_assignment,
    Location,
    Location_assignment,
    Location_relationship,
    Managed_resource,
    Market,
    Observation,
    Observation_consequence,
    Organization,
    Organization_or_person_in_organization_assignment,
    Organization_type,
    Organizational_location_identification,
    Person,
    Person_or_organization_or_person_in_organization_in_position,
    Person_or_organization_or_person_in_organization_in_position_relationship,
    Position,
    Position_group,
    Position_group_assignment,
    Position_role,
    Position_type,
    Position_type_assignment,
    Position_type_role,
    Product,
    Product_as_planned,
    Product_as_realized,
    Product_concept,
    Product_configuration,
    Product_design_to_individual,
    Product_design_version_to_individual,
    Product_group,
    Product_group_membership,
    Product_group_relationship,
    Product_planned_to_realized,
    Product_relationship,
    Product_version,
    Product_version_relationship,
    Product_view_definition,
    Project,
    Property_representation,
    Qualification_assignment,
    Qualification_type,
    Regional_grid_location_representation,
    Representation,
    Representation_item,
    Required_resource,
    Required_resource_assignment,
    Required_resource_relationship,
    Resource_as_realized,
    Resource_event,
    Resource_item,
    Resource_item_assignment,
    Resource_item_relationship,
    Resource_property,
    Resource_property_representation,
    Risk,
    Risk_criteria,
    Security_classification,
    Security_classification_assignment,
    Selected_item,
    State,
    State_assertion,
    State_assessment,
    State_definition,
    Task_element_state_relationship,
    Task_method,
    Task_method_assignment,
    Task_method_relationship,
    Task_method_state_relationship,
    Task_method_version,
    Task_method_version_assignment,
    Task_method_version_relationship,
    Task_objective,
    Task_objective_state_relationship,
    Type_of_person,
    Type_of_person_assignment,
    Type_of_person_definition,
    View_definition_relationship,
    Work_order,
    Work_output,
    Work_request);
END_TYPE;

TYPE effectivity_item = SELECT
   (Activity,
    Activity_property,
    Address_assignment,
    Applied_activity_assignment,
    Applied_activity_method_assignment,
    Applied_information_usage_right,
    Applied_state_definition_assignment,
    Approval_assignment,
    Assigned_property,
    Attribute_translation_assignment,
    Breakdown,
    Breakdown_element,
    Breakdown_element_definition,
    Breakdown_element_realization,
    Breakdown_element_usage,
    Breakdown_element_version,
    Breakdown_of,
    Breakdown_version,
    Certification,
    Certification_assignment,
    Condition,
    Condition_assignment,
    Condition_parameter,
    Contract_assignment,
    Date_or_date_time_assignment,
    Document,
    Document_assignment,
    Document_definition,
    Document_definition_relationship,
    Document_location_identification,
    Document_version,
    Effectivity_assignment,
    File_relationship,
    Identification_assignment,
    Justification,
    Justification_assignment,
    Justification_relationship,
    Justification_support_assignment,
    Location_assignment,
    Managed_resource_relationship,
    Organization,
    Organization_or_person_in_organization_assignment,
    Organization_relationship,
    Person,
    Person_in_organization,
    Person_or_organization_or_person_in_organization_in_position,
    Person_or_organization_or_person_in_organization_in_position_relationship,
    Position,
    Position_assignment,
    Position_group_assignment,
    Position_position_type_assignment,
    Position_role,
    Position_type_assignment,
    Product,
    Product_as_individual,
    Product_as_individual_version,
    Product_as_individual_view,
    Product_configuration,
    Product_design_to_individual,
    Product_design_version_to_individual,
    Product_group,
    Product_group_membership,
    Product_group_relationship,
    Product_planned_to_realized,
    Product_relationship,
    Product_version,
    Product_version_relationship,
    Product_view_definition,
    Project_assignment,
    Required_resource_assignment,
    Required_resource_relationship,
    Resource_item_assignment,
    Resource_item_relationship,
    Resource_property,
    Security_classification_assignment,
    Selected_item_assignment,
    State_definition_relationship,
    Type_of_person_assignment,
    Type_of_person_definition_relationship,
    Work_order,
    Work_output_assignment,
    Work_output_relationship);
END_TYPE;

TYPE event_item = SELECT
   (Certification,
    Project);
END_TYPE;

TYPE external_identification_item = SELECT
   (Document_definition,
    File);
END_TYPE;

TYPE hour_in_day = INTEGER ;
WHERE
  WR1: { 0 <= SELF < 24 };
END_TYPE;

TYPE identification_item = SELECT
   (Activity,
    Activity_happening,
    Activity_method_realization,
    Activity_method_realization_relationship,
    Activity_method_relationship,
    Activity_property,
    Address,
    Affected_items_assignment,
    Applied_activity_assignment,
    Applied_activity_method_assignment,
    Applied_state_assignment,
    Applied_state_definition_assignment,
    Approval,
    Approval_status,
    Assigned_property,
    Breakdown,
    Breakdown_context,
    Breakdown_element,
    Breakdown_element_version,
    Breakdown_of,
    Breakdown_version,
    Certification,
    Condition,
    Condition_evaluation,
    Contract,
    Defined_state_relationship,
    Digital_document_definition,
    Directed_activity,
    Disposition,
    Document,
    Document_assignment,
    Document_version,
    Effectivity,
    Event,
    Experience_instance,
    Experience_type,
    External_class_library,
    Independent_property,
    Independent_property_relationship,
    Information_right,
    Information_usage_right,
    Justification,
    Justification_assignment,
    Justification_relationship,
    Justification_support_assignment,
    Location,
    Location_representation,
    Managed_resource,
    Market,
    Observation,
    Observation_consequence,
    Organization,
    Organization_or_person_in_organization_assignment,
    Organization_type,
    Organizational_location_identification,
    Person,
    Person_in_organization,
    Person_or_organization_or_person_in_organization_in_position,
    Person_or_organization_or_person_in_organization_in_position_relationship,
    Physical_document_definition,
    Position,
    Position_assignment,
    Position_group,
    Position_role,
    Product_as_individual,
    Product_as_individual_version,
    Product_as_individual_view,
    Product_as_planned,
    Product_as_realized,
    Product_concept,
    Product_configuration,
    Product_group,
    Product_group_membership,
    Product_group_relationship,
    Product_relationship,
    Product_version,
    Product_view_definition,
    Project,
    Qualification_assignment,
    Qualification_type,
    Required_resource,
    Required_resource_relationship,
    Resource_as_realized,
    Resource_event,
    Resource_item,
    Resource_property,
    Security_classification,
    Security_classification_assignment,
    State,
    State_assertion,
    State_assessment,
    State_definition,
    State_definition_relationship,
    State_relationship,
    Task_element_state_relationship,
    Task_method,
    Task_method_assignment,
    Task_method_relationship,
    Task_method_state_relationship,
    Task_method_version,
    Task_method_version_assignment,
    Task_method_version_relationship,
    Task_objective,
    Task_objective_state_relationship,
    Type_of_person,
    View_definition_context,
    View_definition_relationship,
    View_definition_usage,
    Work_order,
    Work_output,
    Work_request);
END_TYPE;

TYPE information_usage_right_item = SELECT
   (Applied_information_usage_right,
    Breakdown,
    Breakdown_element,
    Breakdown_element_realization,
    Breakdown_element_usage,
    Breakdown_version,
    Certification,
    Certification_assignment,
    Digital_document_definition,
    Document,
    Document_definition_relationship,
    Document_version,
    File_relationship,
    Physical_document_definition,
    Product_as_individual,
    Product_as_individual_view,
    Product_as_planned,
    Product_as_realized,
    Product_configuration,
    Security_classification,
    Security_classification_assignment,
    Supplied_part_relationship,
    Task_method,
    Task_method_version,
    Task_objective);
END_TYPE;

TYPE justification_item = SELECT
   (Activity,
    Activity_method_assignment,
    Activity_method_realization,
    Activity_method_realization_relationship,
    Activity_method_relationship,
    Activity_property,
    Activity_property_representation,
    Activity_relationship,
    Activity_status,
    Affected_items_assignment,
    Applied_state_assignment,
    Approval,
    Approval_assignment,
    Approval_status,
    Approving_person_organization,
    Assigned_property,
    Breakdown,
    Breakdown_of,
    Certification,
    Certification_assignment,
    Classification_assignment,
    Condition,
    Condition_assignment,
    Condition_parameter,
    Contract,
    Contract_assignment,
    Date_or_date_time_assignment,
    Directed_activity,
    Document_assignment,
    Document_definition,
    Document_definition_relationship,
    Effectivity,
    Effectivity_assignment,
    Experience_gained,
    Experience_instance,
    Experience_type,
    External_class_library,
    File_relationship,
    Independent_property,
    Independent_property_relationship,
    Location_assignment,
    Managed_resource_relationship,
    Organization,
    Person,
    Person_in_organization,
    Position,
    Position_role,
    Product,
    Product_version,
    Product_version_relationship,
    Product_view_definition,
    Qualification_type,
    Required_resource,
    Required_resource_assignment,
    Required_resource_relationship,
    Resource_as_realized,
    Resource_event,
    Resource_item,
    Resource_item_assignment,
    Resource_item_relationship,
    Resource_property,
    Risk_reduction,
    Risk_treatment,
    Security_classification,
    Security_classification_assignment,
    State_assertion,
    State_assessment,
    Task_method,
    Task_method_assignment,
    Task_method_relationship,
    Task_method_state_relationship,
    Task_method_version,
    Task_method_version_assignment,
    Task_method_version_relationship,
    Task_objective,
    Task_objective_state_relationship,
    Time_interval_assignment,
    Type_of_person,
    Type_of_person_definition,
    View_definition_relationship,
    Work_order,
    Work_output_assignment,
    Work_request);
END_TYPE;

TYPE justification_support_item = SELECT
   (Activity,
    Activity_method_assignment,
    Activity_property,
    Activity_property_representation,
    Activity_relationship,
    Activity_status,
    Applied_state_assignment,
    Applied_state_definition_assignment,
    Approval,
    Assigned_property,
    Breakdown,
    Breakdown_of,
    Certification,
    Contract,
    Document,
    Document_definition,
    Document_definition_relationship,
    Document_version,
    Effectivity,
    Event,
    File_relationship,
    Independent_property,
    Independent_property_relationship,
    Location,
    Location_assignment,
    Observation,
    Organization,
    Organization_or_person_in_organization_assignment,
    Person,
    Person_in_organization,
    Product,
    Product_version,
    Product_version_relationship,
    Product_view_definition,
    Project,
    Resource_property,
    Security_classification,
    Security_classification_assignment,
    State,
    State_definition,
    State_definition_relationship,
    State_relationship,
    View_definition_relationship,
    Work_output,
    Work_request);
END_TYPE;

TYPE length_measure = REAL;
END_TYPE;

TYPE lessons_learned_select = documented_element_select ;
WHERE
  wr1: NOT ('PROGRAM_MANAGEMENT_ARM.ACTIVITY' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.ACTIVITY_METHOD_REALIZATION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.ACTIVITY_METHOD_REALIZATION_RELATIONSHIP' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.ACTIVITY_METHOD_RELATIONSHIP' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.ACTIVITY_PROPERTY' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.ACTIVITY_PROPERTY_REPRESENTATION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.APPLIED_ACTIVITY_ASSIGNMENT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.APPLIED_ACTIVITY_METHOD_ASSIGNMENT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.APPROVAL' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.APPROVAL_ASSIGNMENT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.APPROVING_PERSON_ORGANIZATION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.ASSIGNED_PROPERTY' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.BREAKDOWN' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.BREAKDOWN_CONTEXT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.BREAKDOWN_ELEMENT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.BREAKDOWN_ELEMENT_REALIZATION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.BREAKDOWN_ELEMENT_USAGE' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.BREAKDOWN_ELEMENT_VERSION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.CERTIFICATION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.CERTIFICATION_ASSIGNMENT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.CONDITION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.CONDITION_EVALUATION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.CONDITION_PARAMETER' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.CONTRACT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.CONTRACT_ASSIGNMENT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.DOCUMENT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.DOCUMENT_DEFINITION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.DOCUMENT_VERSION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.EFFECTIVITY' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.EFFECTIVITY_ASSIGNMENT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.EXPERIENCE_GAINED' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.EXPERIENCE_INSTANCE' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.EXPERIENCE_TYPE' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.EXTERNAL_CLASS_LIBRARY' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.IDENTIFICATION_ASSIGNMENT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.INDEPENDENT_PROPERTY' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.INDEPENDENT_PROPERTY_RELATIONSHIP' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.INFORMATION_RIGHT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.INFORMATION_USAGE_RIGHT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.JUSTIFICATION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.JUSTIFICATION_ASSIGNMENT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.LOCATION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.LOCATION_ASSIGNMENT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.LOCATION_RELATIONSHIP' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.MANAGED_RESOURCE' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.MARKET' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.OBSERVATION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.OBSERVATION_CONSEQUENCE' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.ORGANIZATION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.ORGANIZATION_OR_PERSON_IN_ORGANIZATION_ASSIGNMENT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.ORGANIZATION_TYPE' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.ORGANIZATIONAL_LOCATION_IDENTIFICATION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PERSON' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PERSON_OR_ORGANIZATION_OR_PERSON_IN_ORGANIZATION_IN_POSITION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PERSON_OR_ORGANIZATION_OR_PERSON_IN_ORGANIZATION_IN_POSITION_RELATIONSHIP' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.POSITION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.POSITION_GROUP' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.POSITION_GROUP_ASSIGNMENT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.POSITION_ROLE' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.POSITION_TYPE' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.POSITION_TYPE_ASSIGNMENT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.POSITION_TYPE_ROLE' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_AS_PLANNED' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_AS_REALIZED' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_CONCEPT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_CONFIGURATION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_DESIGN_TO_INDIVIDUAL' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_DESIGN_VERSION_TO_INDIVIDUAL' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_GROUP' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_GROUP_MEMBERSHIP' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_GROUP_RELATIONSHIP' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_PLANNED_TO_REALIZED' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_RELATIONSHIP' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_VERSION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_VERSION_RELATIONSHIP' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_VIEW_DEFINITION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PROJECT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PROPERTY_REPRESENTATION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.QUALIFICATION_ASSIGNMENT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.QUALIFICATION_TYPE' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.REGIONAL_GRID_LOCATION_REPRESENTATION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.REPRESENTATION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.REPRESENTATION_ITEM' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.REQUIRED_RESOURCE' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.REQUIRED_RESOURCE_ASSIGNMENT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.REQUIRED_RESOURCE_RELATIONSHIP' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.RESOURCE_AS_REALIZED' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.RESOURCE_EVENT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.RESOURCE_ITEM' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.RESOURCE_ITEM_ASSIGNMENT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.RESOURCE_ITEM_RELATIONSHIP' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.RESOURCE_PROPERTY' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.RESOURCE_PROPERTY_REPRESENTATION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.SECURITY_CLASSIFICATION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.SECURITY_CLASSIFICATION_ASSIGNMENT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.SELECTED_ITEM' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.STATE' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.STATE_ASSERTION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.STATE_ASSESSMENT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.STATE_DEFINITION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.TASK_ELEMENT_STATE_RELATIONSHIP' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.TASK_METHOD' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.TASK_METHOD_ASSIGNMENT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.TASK_METHOD_RELATIONSHIP' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.TASK_METHOD_STATE_RELATIONSHIP' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.TASK_METHOD_VERSION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.TASK_METHOD_VERSION_ASSIGNMENT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.TASK_METHOD_VERSION_RELATIONSHIP' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.TASK_OBJECTIVE' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.TASK_OBJECTIVE_STATE_RELATIONSHIP' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.TYPE_OF_PERSON' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.TYPE_OF_PERSON_ASSIGNMENT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.TYPE_OF_PERSON_DEFINITION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.VIEW_DEFINITION_RELATIONSHIP' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.WORK_ORDER' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.WORK_OUTPUT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.WORK_REQUEST' IN TYPEOF(SELF));
END_TYPE;

TYPE location_assignment_select = SELECT
   (Activity,
    Activity_method_assignment,
    Applied_activity_assignment,
    Applied_activity_method_assignment,
    Breakdown,
    Breakdown_element,
    Breakdown_element_definition,
    Breakdown_version,
    Document,
    Document_definition,
    Document_version,
    Managed_resource,
    Market,
    Organization,
    Organization_type,
    Person,
    Person_in_organization,
    Position,
    Position_type,
    Product,
    Product_concept,
    Product_group,
    Product_relationship,
    Product_version,
    Product_view_definition,
    Project,
    Required_resource,
    Required_resource_assignment,
    Resource_item,
    Resource_item_assignment,
    Task_method,
    Task_method_assignment,
    Task_method_version,
    Task_method_version_assignment,
    Type_of_person,
    View_definition_relationship);
END_TYPE;

TYPE measure_value = SELECT
   (any_number_value,
    any_string_value,
    External_class_library,
    length_measure,
    plane_angle_measure);
END_TYPE;

TYPE method_or_method_version = SELECT
   (Task_method,
    Task_method_version);
END_TYPE;

TYPE minute_in_hour = INTEGER ;
WHERE
  WR1: { 0 <= SELF <= 59 };
END_TYPE;

TYPE mitigation_select = SELECT
   (Applied_probability_assignment,
    Applied_risk_impact_assignment,
    Applied_risk_source_assignment,
    Risk,
    Risk_consequence,
    Risk_level,
    Risk_perception,
    Risk_perception_relationship,
    Risk_relationship);
END_TYPE;

TYPE month_in_year_number = INTEGER ;
WHERE
  WR1: { 1 <= SELF <= 12 };
END_TYPE;

TYPE observation_recorder = SELECT
   (Product_as_realized);
END_TYPE;

TYPE observed_context = SELECT
   (Activity,
    Applied_activity_assignment,
    Breakdown,
    Breakdown_element,
    Breakdown_element_definition,
    Breakdown_version,
    Product,
    Product_group,
    Product_version,
    Product_view_definition,
    Project,
    Project_assignment,
    Required_resource,
    Resource_as_realized,
    Resource_item,
    Scheme,
    Scheme_entry,
    Scheme_version,
    Task_method,
    Task_method_version,
    View_definition_relationship,
    Work_order,
    Work_output,
    Work_request);
END_TYPE;

TYPE offset_orientation = ENUMERATION OF
   (ahead,
    exact,
    behind);
END_TYPE;

TYPE organization_or_person_in_organization_item = SELECT
   (Activity,
    Activity_method_assignment,
    Activity_method_realization,
    Activity_method_realization_relationship,
    Activity_method_relationship,
    Activity_property,
    Activity_property_representation,
    Activity_relationship,
    Affected_items_assignment,
    Alias_identification,
    Applied_activity_assignment,
    Applied_activity_method_assignment,
    Applied_independent_activity_property,
    Applied_probability_assignment,
    Applied_risk_impact_assignment,
    Applied_risk_source_assignment,
    Applied_state_assignment,
    Applied_state_definition_assignment,
    Approval,
    Assigned_property,
    Breakdown,
    Breakdown_element,
    Breakdown_element_definition,
    Breakdown_element_usage,
    Breakdown_element_version,
    Certification,
    Certification_assignment,
    Classification_assignment,
    Condition,
    Condition_assignment,
    Condition_evaluation,
    Condition_evaluation_assignment,
    Contract,
    Contract_assignment,
    Date_or_date_time_assignment,
    Digital_document_definition,
    Directed_activity,
    Document,
    Document_assignment,
    Document_definition,
    Document_version,
    Effectivity,
    Effectivity_assignment,
    Event,
    Event_assignment,
    Experience_gained,
    Experience_instance,
    Identification_assignment,
    Independent_property,
    Independent_property_relationship,
    Information_usage_right,
    Justification,
    Justification_assignment,
    Justification_relationship,
    Justification_support_assignment,
    Location_assignment,
    Managed_resource,
    Managed_resource_relationship,
    Observation,
    Organization,
    Organization_or_person_in_organization_assignment,
    Person_in_organization,
    Physical_document_definition,
    Position_assignment,
    Position_group_assignment,
    Position_position_type_assignment,
    Position_type,
    Position_type_assignment,
    Product_as_individual,
    Product_as_planned,
    Product_as_realized,
    Product_category,
    Product_category_assignment,
    Product_configuration,
    Product_group,
    Product_group_membership,
    Product_group_relationship,
    Product_relationship,
    Product_version,
    Product_version_relationship,
    Project,
    Project_assignment,
    Property_representation,
    Qualification_assignment,
    Qualification_type,
    Representation,
    Required_resource,
    Required_resource_assignment,
    Resource_as_realized,
    Resource_as_realized_assignment,
    Resource_event,
    Resource_item,
    Resource_item_assignment,
    Resource_property,
    Resource_property_representation,
    Risk,
    Risk_attitude,
    Risk_consequence,
    Risk_context,
    Risk_criteria,
    Risk_evaluation,
    Risk_perception,
    Risk_perception_relationship,
    Risk_reduction,
    Risk_relationship,
    Risk_stakeholder,
    Risk_status,
    Risk_treatment,
    Scheme,
    Scheme_entry,
    Security_classification,
    Security_classification_assignment,
    Selected_item,
    Selected_item_assignment,
    State,
    State_assertion,
    State_assessment,
    State_definition,
    State_definition_relationship,
    State_relationship,
    Task_element_state_relationship,
    Task_method,
    Task_method_assignment,
    Task_method_relationship,
    Task_method_state_relationship,
    Task_method_version,
    Task_method_version_assignment,
    Task_method_version_relationship,
    Task_objective,
    Task_objective_state_relationship,
    Type_of_person_assignment,
    View_definition_context,
    Work_order,
    Work_output,
    Work_request);
END_TYPE;

TYPE organization_or_person_in_organization_select = SELECT
   (Organization,
    Person_in_organization);
END_TYPE;

TYPE person_or_organization_or_person_in_organization_select = SELECT
   (Organization,
    Person,
    Person_in_organization);
END_TYPE;

TYPE plane_angle_measure = REAL;
END_TYPE;

TYPE position_context_item = SELECT
   (Organization,
    Position_group,
    Project);
END_TYPE;

TYPE position_group_item = SELECT
   (Approving_person_organization,
    Document_definition,
    Organization_or_person_in_organization_assignment,
    Product,
    Product_version,
    Product_view_definition);
END_TYPE;

TYPE position_item = SELECT
   (Approving_person_organization,
    Document_definition,
    Organization_or_person_in_organization_assignment,
    Product,
    Product_version,
    Product_view_definition);
END_TYPE;

TYPE position_person_or_organization_or_person_in_organization_select = SELECT
   (Organization,
    Person,
    Person_in_organization);
END_TYPE;

TYPE position_type_item = SELECT
   (Approving_person_organization,
    Document_definition,
    Organization_or_person_in_organization_assignment,
    Product,
    Product_version,
    Product_view_definition);
END_TYPE;

TYPE probability_select = SELECT
   (Probability,
    Probability_distribution);
END_TYPE;

TYPE probable_item = SELECT
   (Event);
END_TYPE;

TYPE product_based_location_representation = SELECT
   (Product,
    Product_version);
END_TYPE;

TYPE product_item = SELECT
   (Product_group,
    Product_view_definition,
    View_definition_usage);
END_TYPE;

TYPE product_select = SELECT
   (Product,
    Product_as_individual,
    Product_concept,
    Product_group,
    Product_version);
END_TYPE;

TYPE project_item = SELECT
   (Activity,
    Activity_method_realization,
    Activity_method_realization_relationship,
    Activity_method_relationship,
    Applied_activity_assignment,
    Applied_activity_method_assignment,
    Breakdown,
    Independent_property,
    Product,
    Product_concept,
    Product_configuration,
    Product_group,
    Product_group_membership,
    Product_group_relationship,
    Product_version,
    Task_method,
    Task_method_assignment,
    Task_method_version,
    Task_method_version_assignment,
    Task_objective);
END_TYPE;

TYPE property_assignment_select = SELECT
   (Applied_activity_assignment,
    Applied_activity_method_assignment,
    Applied_state_assignment,
    Applied_state_definition_assignment,
    Breakdown_element_realization,
    Breakdown_element_usage,
    Document_assignment,
    Document_definition,
    Experience_instance,
    Location_assignment,
    Organization_or_person_in_organization_assignment,
    Person,
    Person_in_organization,
    Product_group_membership,
    Product_view_definition,
    Project,
    Risk,
    Risk_relationship,
    State,
    State_definition,
    State_definition_relationship,
    State_relationship,
    Task_method_state_relationship,
    Task_objective_state_relationship,
    Type_of_person_definition);
END_TYPE;

TYPE qualifications_select = SELECT
   (Organization,
    Person,
    Person_in_organization);
END_TYPE;

TYPE represented_definition = SELECT
   (Assigned_property,
    Independent_property);
END_TYPE;

TYPE required_resource_item = SELECT
   (Activity,
    Applied_activity_assignment,
    Event,
    Position,
    Position_type,
    Scheme,
    Scheme_entry,
    Scheme_version,
    Task_method,
    Task_method_assignment,
    Task_method_version,
    Task_method_version_assignment,
    Type_of_person);
END_TYPE;

TYPE resource_as_realized_item = SELECT
   (Activity_actual,
    Applied_activity_assignment,
    Event);
END_TYPE;

TYPE resource_as_realized_relationship_select = SELECT
   (Required_resource,
    Resource_event);
END_TYPE;

TYPE resource_assignment_item = SELECT
   (Applied_risk_source_assignment,
    Contract,
    Location,
    Product_as_individual,
    Product_as_individual_version,
    Product_as_individual_view,
    Product_group,
    Project,
    Risk_analysis,
    Risk_assessment,
    Risk_communication,
    Risk_control,
    Risk_estimation,
    Risk_evaluation,
    Risk_identification,
    Risk_reduction,
    Risk_treatment);
END_TYPE;

TYPE resource_item_select = SELECT
   (Document,
    Document_definition,
    Document_version,
    Location,
    Organization,
    Organization_type,
    Person,
    Person_in_organization,
    Position,
    Position_type,
    Product_as_individual,
    Product_as_individual_version,
    Product_as_individual_view,
    Product_group,
    Type_of_person);
END_TYPE;

TYPE risk_communication_select = SELECT
   (Applied_probability_assignment,
    Applied_risk_impact_assignment,
    Applied_risk_source_assignment,
    Lessons_learned,
    Risk,
    Risk_assessment,
    Risk_consequence,
    Risk_context,
    Risk_control,
    Risk_criteria,
    Risk_estimation,
    Risk_evaluation,
    Risk_identification,
    Risk_perception,
    Risk_perception_relationship,
    Risk_status,
    Risk_treatment);
END_TYPE;

TYPE risk_estimation_select = SELECT
   (Applied_probability_assignment,
    Applied_risk_impact_assignment,
    Risk_consequence);
END_TYPE;

TYPE risk_evaluation_select = SELECT
   (Risk_level,
    Risk_perception);
END_TYPE;

TYPE risk_identification_select = SELECT
   (Applied_risk_impact_assignment,
    Applied_risk_source_assignment,
    Risk,
    Risk_consequence,
    Risk_criteria,
    Risk_perception);
END_TYPE;

TYPE risk_impact_item = SELECT
   (State_definition);
END_TYPE;

TYPE risk_source_item = SELECT
   (Activity,
    Activity_method,
    Product);
END_TYPE;

TYPE scheme_entry_item_select = activity_method_item ;
WHERE
  wr1: NOT ('PROGRAM_MANAGEMENT_ARM.ACTIVITY' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.ACTIVITY_PROPERTY' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.APPLIED_ACTIVITY_ASSIGNMENT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.ASSIGNED_PROPERTY' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.BREAKDOWN_ELEMENT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.BREAKDOWN_ELEMENT_DEFINITION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.BREAKDOWN_ELEMENT_USAGE' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.BREAKDOWN_ELEMENT_VERSION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.CONTRACT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.DOCUMENT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.DOCUMENT_VERSION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.EVENT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.LOCATION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.MANAGED_RESOURCE' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.OBSERVATION_CONSEQUENCE' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.ORGANIZATION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.ORGANIZATION_TYPE' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PERSON' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PERSON_IN_ORGANIZATION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.POSITION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.POSITION_GROUP' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.POSITION_TYPE' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_AS_INDIVIDUAL' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_AS_INDIVIDUAL_VERSION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_AS_INDIVIDUAL_VIEW' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_BASED_LOCATION_IDENTIFICATION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_CONCEPT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_CONFIGURATION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_GROUP' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_VERSION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_VERSION_RELATIONSHIP' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_VIEW_DEFINITION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PROJECT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.REQUIRED_RESOURCE' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.REQUIRED_RESOURCE_ASSIGNMENT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.RESOURCE_AS_REALIZED' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.RESOURCE_EVENT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.RESOURCE_ITEM' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.RESOURCE_PROPERTY' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.RISK_TREATMENT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.SCHEME_ENTRY' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.SCHEME_RELATIONSHIP' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.TASK_METHOD' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.TASK_METHOD_VERSION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.TYPE_OF_PERSON' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.TYPE_OF_PERSON_DEFINITION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.VIEW_DEFINITION_RELATIONSHIP' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.WORK_OUTPUT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.WORK_OUTPUT_ASSIGNMENT' IN TYPEOF(SELF));
END_TYPE;

TYPE scheme_subject_select = activity_method_item ;
WHERE
  wr1: NOT ('PROGRAM_MANAGEMENT_ARM.ACTIVITY' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.ACTIVITY_PROPERTY' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.APPLIED_ACTIVITY_ASSIGNMENT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.ASSIGNED_PROPERTY' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.BREAKDOWN_ELEMENT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.BREAKDOWN_ELEMENT_DEFINITION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.BREAKDOWN_ELEMENT_USAGE' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.BREAKDOWN_ELEMENT_VERSION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.CONTRACT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.DOCUMENT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.DOCUMENT_VERSION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.EVENT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.LOCATION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.MANAGED_RESOURCE' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.OBSERVATION_CONSEQUENCE' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.ORGANIZATION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.ORGANIZATION_TYPE' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PERSON' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PERSON_IN_ORGANIZATION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.POSITION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.POSITION_GROUP' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.POSITION_TYPE' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_AS_INDIVIDUAL' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_AS_INDIVIDUAL_VERSION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_AS_INDIVIDUAL_VIEW' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_BASED_LOCATION_IDENTIFICATION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_CONCEPT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_CONFIGURATION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_GROUP' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_VERSION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_VERSION_RELATIONSHIP' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_VIEW_DEFINITION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PROJECT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.REQUIRED_RESOURCE' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.REQUIRED_RESOURCE_ASSIGNMENT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.RESOURCE_AS_REALIZED' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.RESOURCE_EVENT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.RESOURCE_ITEM' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.RESOURCE_PROPERTY' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.RISK_TREATMENT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.SCHEME_ENTRY' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.SCHEME_RELATIONSHIP' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.TASK_METHOD' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.TASK_METHOD_VERSION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.TYPE_OF_PERSON' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.TYPE_OF_PERSON_DEFINITION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.VIEW_DEFINITION_RELATIONSHIP' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.WORK_OUTPUT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.WORK_OUTPUT_ASSIGNMENT' IN TYPEOF(SELF));
END_TYPE;

TYPE scheme_version_select = activity_method_item ;
WHERE
  wr1: NOT ('PROGRAM_MANAGEMENT_ARM.ACTIVITY' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.ACTIVITY_PROPERTY' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.APPLIED_ACTIVITY_ASSIGNMENT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.ASSIGNED_PROPERTY' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.BREAKDOWN_ELEMENT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.BREAKDOWN_ELEMENT_DEFINITION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.BREAKDOWN_ELEMENT_USAGE' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.BREAKDOWN_ELEMENT_VERSION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.CONTRACT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.DOCUMENT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.DOCUMENT_VERSION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.EVENT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.LOCATION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.MANAGED_RESOURCE' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.OBSERVATION_CONSEQUENCE' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.ORGANIZATION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.ORGANIZATION_TYPE' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PERSON' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PERSON_IN_ORGANIZATION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.POSITION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.POSITION_GROUP' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.POSITION_TYPE' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_AS_INDIVIDUAL' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_AS_INDIVIDUAL_VERSION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_AS_INDIVIDUAL_VIEW' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_BASED_LOCATION_IDENTIFICATION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_CONCEPT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_CONFIGURATION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_GROUP' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_VERSION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_VERSION_RELATIONSHIP' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_VIEW_DEFINITION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PROJECT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.REQUIRED_RESOURCE' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.REQUIRED_RESOURCE_ASSIGNMENT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.RESOURCE_AS_REALIZED' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.RESOURCE_EVENT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.RESOURCE_ITEM' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.RESOURCE_PROPERTY' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.RISK_TREATMENT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.SCHEME_ENTRY' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.SCHEME_RELATIONSHIP' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.TASK_METHOD' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.TASK_METHOD_VERSION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.TYPE_OF_PERSON' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.TYPE_OF_PERSON_DEFINITION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.VIEW_DEFINITION_RELATIONSHIP' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.WORK_OUTPUT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.WORK_OUTPUT_ASSIGNMENT' IN TYPEOF(SELF));
END_TYPE;

TYPE second_in_minute = REAL ;
WHERE
  WR1: { 0 <= SELF <= 60.0 };
END_TYPE;

TYPE security_classification_item = SELECT
   (Activity,
    Activity_method_assignment,
    Activity_method_realization,
    Activity_method_realization_relationship,
    Activity_method_relationship,
    Affected_items_assignment,
    Applied_activity_assignment,
    Applied_activity_method_assignment,
    Breakdown,
    Breakdown_element_definition,
    Breakdown_element_realization,
    Breakdown_element_usage,
    Breakdown_element_version,
    Digital_document_definition,
    Directed_activity,
    Document,
    Document_assignment,
    Document_version,
    Experience_type,
    Experience_type_relationship,
    Observation,
    Observation_consequence,
    Observation_item,
    Observation_relationship,
    Organization,
    Organization_organization_type_relationship,
    Organization_relationship,
    Organization_type,
    Person,
    Person_in_organization,
    Person_or_organization_or_person_in_organization_in_position,
    Person_or_organization_or_person_in_organization_in_position_relationship,
    Physical_document_definition,
    Position,
    Position_assignment,
    Position_group,
    Position_group_assignment,
    Position_group_relationship,
    Position_group_role,
    Position_position_type_assignment,
    Position_relationship,
    Position_role,
    Position_type,
    Position_type_assignment,
    Position_type_role,
    Product_as_individual,
    Product_as_individual_view,
    Product_as_planned,
    Product_as_realized,
    Product_configuration,
    Product_design_to_individual,
    Product_design_version_to_individual,
    Product_group,
    Product_group_membership,
    Product_group_relationship,
    Product_relationship,
    Qualification_assignment,
    Qualification_type,
    Resource_item,
    Task_element_state_relationship,
    Task_method,
    Task_method_assignment,
    Task_method_relationship,
    Task_method_state_relationship,
    Task_method_version,
    Task_method_version_assignment,
    Task_method_version_relationship,
    Task_objective,
    Type_of_person,
    Type_of_person_assignment,
    Type_of_person_definition,
    Type_of_person_definition_relationship,
    Type_of_person_definition_required_attributes_relationship,
    Work_order,
    Work_output,
    Work_output_assignment,
    Work_output_relationship,
    Work_request,
    Work_request_status);
END_TYPE;

TYPE selected_item_context_items = SELECT
   (Breakdown,
    Contract,
    Product_as_individual,
    Product_as_individual_version,
    Product_concept,
    Product_configuration,
    Project);
END_TYPE;

TYPE selected_item_select = SELECT
   (Product,
    Product_version);
END_TYPE;

TYPE state_definition_of_item = SELECT
   (Activity,
    Applied_activity_assignment,
    Applied_activity_method_assignment,
    Breakdown,
    Breakdown_element,
    Breakdown_element_definition,
    Breakdown_element_realization,
    Breakdown_element_usage,
    Breakdown_element_version,
    Breakdown_version,
    Certification,
    Contract,
    Digital_document_definition,
    Document,
    Document_version,
    Location,
    Managed_resource,
    Organization,
    Person_in_organization,
    Physical_document_definition,
    Product,
    Product_as_individual,
    Product_as_individual_view,
    Product_as_planned,
    Product_as_realized,
    Product_category,
    Product_concept,
    Product_configuration,
    Product_group,
    Product_version,
    Project,
    Resource_as_realized,
    Resource_as_realized_assignment,
    Resource_as_realized_relationship,
    Resource_as_realized_resource_item,
    Resource_event,
    Resource_event_correspondence_relationship,
    Resource_event_relationship,
    Resource_group_relationship,
    Resource_item,
    Resource_item_assignment,
    Resource_item_relationship,
    Scheme,
    Scheme_version,
    Security_classification,
    View_definition_relationship,
    Work_order,
    Work_request);
END_TYPE;

TYPE state_of_item = SELECT
   (Activity,
    Applied_activity_assignment,
    Breakdown,
    Breakdown_element,
    Breakdown_element_definition,
    Breakdown_element_realization,
    Breakdown_element_usage,
    Breakdown_element_version,
    Breakdown_version,
    Certification,
    Contract,
    Digital_document_definition,
    Document,
    Document_version,
    Location,
    Managed_resource,
    Organization,
    Person_in_organization,
    Physical_document_definition,
    Product,
    Product_as_individual,
    Product_as_individual_view,
    Product_as_planned,
    Product_as_realized,
    Product_concept,
    Product_configuration,
    Product_group,
    Product_version,
    Project,
    Resource_as_realized,
    Resource_as_realized_assignment,
    Resource_as_realized_relationship,
    Resource_as_realized_resource_item,
    Resource_event,
    Resource_event_correspondence_relationship,
    Resource_event_relationship,
    Resource_group_relationship,
    Resource_item,
    Resource_item_assignment,
    Resource_item_relationship,
    Scheme,
    Scheme_version,
    Security_classification,
    Task_method_version,
    View_definition_relationship,
    Work_order,
    Work_request);
END_TYPE;

TYPE state_or_state_definition_select = SELECT
   (Applied_state_assignment,
    Applied_state_definition_assignment,
    State,
    State_definition);
END_TYPE;

TYPE string_select = SELECT
   (Activity,
    Activity_method_assignment,
    Activity_method_realization,
    Activity_method_realization_relationship,
    Activity_method_relationship,
    Activity_property,
    Activity_relationship,
    Applied_activity_assignment,
    Applied_activity_method_assignment,
    Approval,
    Approval_relationship,
    Approval_status,
    Assigned_property,
    Breakdown,
    Breakdown_element,
    Breakdown_element_realization,
    Breakdown_element_usage,
    Breakdown_element_version,
    Certification,
    Condition,
    Condition_evaluation,
    Condition_evaluation_parameter,
    Condition_parameter,
    Condition_relationship,
    Contract,
    Date_or_date_time_assignment,
    Digital_document_definition,
    Document,
    Document_assignment,
    Document_definition_relationship,
    Document_version,
    Event,
    Experience_gained,
    Experience_type,
    External_item_identification,
    External_source_identification,
    File_relationship,
    Global_location_representation,
    Identification_assignment,
    Independent_property,
    Independent_property_relationship,
    Information_right,
    Justification,
    Justification_assignment,
    Justification_relationship,
    Justification_support_assignment,
    Location,
    Location_assignment,
    Location_relationship,
    Managed_resource,
    Managed_resource_relationship,
    Observation,
    Observation_consequence,
    Observation_relationship,
    Organization_relationship,
    Organization_type,
    Organizational_location_identification,
    Person_in_organization,
    Physical_document_definition,
    Position,
    Position_group,
    Position_group_relationship,
    Position_role,
    Position_type,
    Product_as_individual,
    Product_as_individual_version,
    Product_as_individual_view,
    Product_based_location_identification,
    Product_category,
    Product_configuration,
    Product_group,
    Product_group_relationship,
    Product_relationship,
    Project,
    Project_assignment,
    Project_relationship,
    Qualification_type,
    Regional_coordinate,
    Regional_grid_location_representation,
    Related_condition_parameter,
    Representation_item,
    Required_resource,
    Required_resource_relationship,
    Resource_as_realized,
    Resource_as_realized_relationship,
    Resource_event,
    Resource_event_correspondence_relationship,
    Resource_event_relationship,
    Resource_item,
    Resource_item_assignment,
    Resource_item_relationship,
    Resource_property,
    State,
    State_definition,
    State_definition_relationship,
    State_relationship,
    Task_method,
    Task_method_assignment,
    Task_method_relationship,
    Task_method_version,
    Task_method_version_assignment,
    Task_method_version_relationship,
    Task_objective,
    Type_of_person,
    Type_of_person_assignment,
    Type_of_person_definition,
    Type_of_person_definition_relationship,
    Work_order,
    Work_output,
    Work_output_relationship,
    Work_request);
END_TYPE;

TYPE task_item = activity_method_item ;
WHERE
  wr1: NOT ('PROGRAM_MANAGEMENT_ARM.ACTIVITY' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.ACTIVITY_PROPERTY' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.APPLIED_ACTIVITY_ASSIGNMENT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.ASSIGNED_PROPERTY' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.BREAKDOWN_ELEMENT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.BREAKDOWN_ELEMENT_DEFINITION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.BREAKDOWN_ELEMENT_USAGE' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.BREAKDOWN_ELEMENT_VERSION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.CONTRACT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.DOCUMENT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.DOCUMENT_VERSION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.EVENT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.LOCATION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.MANAGED_RESOURCE' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.OBSERVATION_CONSEQUENCE' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.ORGANIZATION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.ORGANIZATION_TYPE' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PERSON' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PERSON_IN_ORGANIZATION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.POSITION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.POSITION_GROUP' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.POSITION_TYPE' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_AS_INDIVIDUAL' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_AS_INDIVIDUAL_VERSION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_AS_INDIVIDUAL_VIEW' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_BASED_LOCATION_IDENTIFICATION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_CONCEPT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_CONFIGURATION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_GROUP' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_VERSION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_VERSION_RELATIONSHIP' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PRODUCT_VIEW_DEFINITION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.PROJECT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.REQUIRED_RESOURCE' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.REQUIRED_RESOURCE_ASSIGNMENT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.RESOURCE_AS_REALIZED' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.RESOURCE_EVENT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.RESOURCE_ITEM' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.RESOURCE_PROPERTY' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.RISK_TREATMENT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.SCHEME_ENTRY' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.SCHEME_RELATIONSHIP' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.TASK_METHOD' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.TASK_METHOD_VERSION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.TYPE_OF_PERSON' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.TYPE_OF_PERSON_DEFINITION' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.VIEW_DEFINITION_RELATIONSHIP' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.WORK_OUTPUT' IN TYPEOF(SELF));
  : NOT ('PROGRAM_MANAGEMENT_ARM.WORK_OUTPUT_ASSIGNMENT' IN TYPEOF(SELF));
END_TYPE;

TYPE time_interval_item = SELECT
   (Activity,
    Activity_method_assignment,
    Activity_method_realization,
    Activity_method_realization_relationship,
    Activity_method_relationship,
    Activity_property,
    Activity_property_representation,
    Activity_relationship,
    Address_assignment,
    Affected_items_assignment,
    Applied_activity_assignment,
    Applied_activity_method_assignment,
    Applied_information_usage_right,
    Applied_state_assignment,
    Applied_state_definition_assignment,
    Approval,
    Approval_assignment,
    Approval_status,
    Assigned_property,
    Breakdown,
    Breakdown_element,
    Breakdown_element_realization,
    Breakdown_element_usage,
    Breakdown_element_version,
    Certification,
    Certification_assignment,
    Classification_assignment,
    Condition,
    Condition_assignment,
    Condition_evaluation,
    Condition_evaluation_assignment,
    Contract,
    Contract_assignment,
    Date_or_date_time_assignment,
    Digital_document_definition,
    Directed_activity,
    Document,
    Document_assignment,
    Document_definition_relationship,
    Document_version,
    Effectivity,
    Effectivity_assignment,
    Event_assignment,
    External_class_library,
    Identification_assignment,
    Independent_property,
    Independent_property_relationship,
    Information_usage_right,
    Justification,
    Justification_assignment,
    Justification_relationship,
    Justification_support_assignment,
    Location_assignment,
    Location_representation,
    Managed_resource,
    Observation,
    Organization,
    Organization_or_person_in_organization_assignment,
    Organization_organization_type_relationship,
    Person,
    Person_in_organization,
    Person_or_organization_or_person_in_organization_in_position,
    Person_or_organization_or_person_in_organization_in_position_relationship,
    Physical_document_definition,
    Position,
    Position_assignment,
    Position_group_assignment,
    Position_position_type_assignment,
    Position_role,
    Position_type_role,
    Product_as_planned,
    Product_as_realized,
    Product_category_assignment,
    Product_concept,
    Product_configuration,
    Product_design_to_individual,
    Product_design_version_to_individual,
    Product_group,
    Product_group_membership,
    Product_group_relationship,
    Product_planned_to_realized,
    Product_relationship,
    Product_version,
    Product_version_relationship,
    Product_view_definition,
    Project,
    Project_assignment,
    Property_representation,
    Qualification_assignment,
    Qualification_type,
    Representation,
    Required_resource,
    Required_resource_assignment,
    Resource_as_realized,
    Resource_as_realized_assignment,
    Resource_event,
    Resource_item,
    Resource_item_assignment,
    Resource_property,
    Resource_property_representation,
    Scheme_entry,
    Security_classification,
    Security_classification_assignment,
    Selected_item,
    Selected_item_assignment,
    State,
    State_assertion,
    State_assessment,
    State_definition,
    State_definition_relationship,
    State_relationship,
    Task_element_state_relationship,
    Task_method,
    Task_method_assignment,
    Task_method_relationship,
    Task_method_state_relationship,
    Task_method_version,
    Task_method_version_assignment,
    Task_method_version_relationship,
    Task_objective,
    Task_objective_state_relationship,
    Type_of_person_assignment,
    View_definition_context,
    Work_order,
    Work_output,
    Work_request);
END_TYPE;

TYPE type_of_person_item_select = SELECT
   (Experience_gained,
    Experience_instance,
    Experience_type,
    Organization,
    Organization_type,
    Position,
    Position_group,
    Position_type,
    Qualification_type);
END_TYPE;

TYPE version_or_definition = SELECT
   (Product_version,
    Product_view_definition);
END_TYPE;

TYPE work_item = SELECT
   (Activity,
    Applied_activity_assignment,
    Applied_activity_method_assignment,
    Event,
    Scheme,
    Scheme_entry,
    Scheme_version,
    Task_method,
    Task_method_version);
END_TYPE;

TYPE work_output_item = SELECT
   (Breakdown,
    Breakdown_version,
    Contract,
    Document,
    Document_definition,
    Document_version,
    Managed_resource,
    Organization,
    Organization_type,
    Person,
    Person_in_organization,
    Position,
    Position_type,
    Product,
    Product_as_individual,
    Product_as_individual_version,
    Product_as_individual_view,
    Product_group,
    Product_version,
    Product_view_definition,
    Project,
    Project_assignment,
    Required_resource,
    Resource_item,
    Type_of_person);
END_TYPE;

TYPE year_number = INTEGER;
END_TYPE;

ENTITY Activity;
  id : STRING;
  name : STRING;
  description : OPTIONAL STRING;
  chosen_method : Activity_method;
END_ENTITY;

ENTITY Activity_actual
  SUBTYPE OF (Activity);
END_ENTITY;

ENTITY Activity_happening
  SUBTYPE OF (Activity_relationship);
  SELF\Activity_relationship.relating_activity : Activity_actual;
DERIVE
  actual : ACTIVITY_ACTUAL := SELF\Activity_relationship.relating_activity;
  predicted : ACTIVITY := SELF\Activity_relationship.related_activity;
WHERE
  WR1: NOT ('ACTIVITY_AS_REALIZED.ACTIVITY_ACTUAL' IN TYPEOF(predicted));
END_ENTITY;

ENTITY Activity_method
  SUPERTYPE OF (ONEOF (TASK_ELEMENT,
                       TASK_METHOD,
                       TASK_METHOD_VERSION) );
  name : STRING;
  description : OPTIONAL STRING;
  consequence : OPTIONAL STRING;
  purpose : STRING;
END_ENTITY;

ENTITY Activity_method_assignment;
  relation_type : STRING;
  assigned_method : Activity_method;
  associated_request : Work_request;
END_ENTITY;

ENTITY Activity_method_realization;
  id : STRING;
  name : STRING;
  description : OPTIONAL STRING;
  activity_method : Activity_method;
  realized_by : activity_realization_select;
END_ENTITY;

ENTITY Activity_method_realization_relationship;
  id : STRING;
  name : STRING;
  description : OPTIONAL STRING;
  relating : Activity_method_realization;
  related : Activity_method_realization;
END_ENTITY;

ENTITY Activity_method_relationship
  SUPERTYPE OF (ONEOF (TASK_ELEMENT_RELATIONSHIP,
                       TASK_METHOD_RELATIONSHIP,
                       TASK_METHOD_VERSION_RELATIONSHIP) );
  name : STRING;
  description : OPTIONAL STRING;
  relating_method : Activity_method;
  related_method : Activity_method;
END_ENTITY;

ENTITY Activity_property;
  name : STRING;
  description : STRING;
  described_element : characterized_activity_definition;
END_ENTITY;

ENTITY Activity_property_representation;
  description : OPTIONAL STRING;
  property : Activity_property;
  rep : Representation;
  role : STRING;
END_ENTITY;

ENTITY Activity_relationship;
  name : STRING;
  description : OPTIONAL STRING;
  relating_activity : Activity;
  related_activity : Activity;
END_ENTITY;

ENTITY Activity_status;
  assigned_activity : Activity;
  status : STRING;
END_ENTITY;

ENTITY Address;
  name : OPTIONAL STRING;
  street_number : OPTIONAL STRING;
  street : OPTIONAL STRING;
  postal_box : OPTIONAL STRING;
  town : OPTIONAL STRING;
  region : OPTIONAL STRING;
  postal_code : OPTIONAL STRING;
  country : OPTIONAL STRING;
  internal_location : OPTIONAL STRING;
  facsimile_number : OPTIONAL STRING;
  telephone_number : OPTIONAL STRING;
  electronic_mail_address : OPTIONAL STRING;
  telex_number : OPTIONAL STRING;
  url : OPTIONAL STRING;
WHERE
  WR1: (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 (internal_location) OR EXISTS (facsimile_number) OR EXISTS (telephone_number) OR EXISTS (electronic_mail_address) OR EXISTS (telex_number));
END_ENTITY;

ENTITY Address_assignment;
  address_type : OPTIONAL STRING;
  assigned_address : Address;
  located_person_organizations : SET[1:?] OF organization_or_person_in_organization_select;
END_ENTITY;

ENTITY Address_based_location_representation
  SUBTYPE OF (Location_representation);
  postal_address : Address;
END_ENTITY;

ENTITY Affected_items_assignment;
  assigned_work_request : Work_request;
  items : SET[1:?] OF affected_item_select;
END_ENTITY;

ENTITY Alias_identification
  SUBTYPE OF (Identification_assignment);
DERIVE
  SELF\Identification_assignment.role : STRING := 'alias';
WHERE
  WR1: SIZEOF (QUERY(item <* SELF\Identification_assignment.items | NOT ('PROGRAM_MANAGEMENT_ARM_LF.ALIAS_IDENTIFICATION_ITEM' IN TYPEOF(item)))) = 0;
END_ENTITY;

ENTITY Amount_of_substance_unit
  SUBTYPE OF (Unit);
END_ENTITY;

ENTITY And_state_cause_effect_definition
  SUBTYPE OF (State_cause_effect_definition);
END_ENTITY;

ENTITY Applied_activity_assignment;
  assigned_activity : Activity;
  items : SET[1:?] OF activity_item;
  role : STRING;
END_ENTITY;

ENTITY Applied_activity_method_assignment;
  assigned_activity_method : Activity_method;
  items : SET[1:?] OF activity_method_item;
  role : STRING;
END_ENTITY;

ENTITY Applied_independent_activity_property
  SUBTYPE OF (Activity_property);
  base_element_property : Independent_property;
DERIVE
  SELF\Activity_property.name : STRING := base_element_property.property_type;
END_ENTITY;

ENTITY Applied_independent_property
  SUBTYPE OF (Assigned_property);
  base_independent_property : Independent_property;
DERIVE
  SELF\Assigned_property.name : STRING := base_independent_property.property_type;
END_ENTITY;

ENTITY Applied_independent_resource_property
  SUBTYPE OF (Resource_property);
  base_element_property : Independent_property;
DERIVE
  SELF\Resource_property.name : STRING := base_element_property.property_type;
END_ENTITY;

ENTITY Applied_information_usage_right;
  item : SET[1:?] OF information_usage_right_item;
  right_applied : Information_usage_right;
END_ENTITY;

ENTITY Applied_probability_assignment;
  assigned_probability : probability_select;
  items : SET[1:?] OF probable_item;
END_ENTITY;

ENTITY Applied_risk_impact_assignment;
  assigned_risk_impact : Risk_impact;
  items : SET[1:?] OF risk_impact_item;
END_ENTITY;

ENTITY Applied_risk_source_assignment;
  assigned_risk : Risk;
  items : SET[1:?] OF risk_source_item;
  risk_context : Risk_context;
END_ENTITY;

ENTITY Applied_risk_status_assignment;
  risk : SET[1:?] OF Risk;
  risk_status : Risk_status;
END_ENTITY;

ENTITY Applied_state_assignment;
  described_state : State;
  assigned_to : state_of_item;
  role : State_role;
END_ENTITY;

ENTITY Applied_state_definition_assignment;
  assigned_to : state_definition_of_item;
  described_state_definition : State_definition;
  role : State_definition_role;
END_ENTITY;

ENTITY Approval;
  status : Approval_status;
  purpose : STRING;
  planned_date : OPTIONAL date_or_date_time_select;
  actual_date : OPTIONAL date_or_date_time_select;
END_ENTITY;

ENTITY Approval_assignment;
  assigned_approval : Approval;
  items : SET[1:?] OF approval_item;
  role : OPTIONAL STRING;
END_ENTITY;

ENTITY Approval_relationship;
  relation_type : STRING;
  description : OPTIONAL STRING;
  relating_approval : Approval;
  related_approval : Approval;
END_ENTITY;

ENTITY Approval_status;
  status_name : STRING;
END_ENTITY;

ENTITY Approving_person_organization;
  person_organization : organization_or_person_in_organization_select;
  approval_date : OPTIONAL date_or_date_time_select;
  authorized_approval : Approval;
  role : OPTIONAL STRING;
END_ENTITY;

ENTITY Assigned_property;
  id : OPTIONAL STRING;
  name : STRING;
  description : OPTIONAL STRING;
  described_element : property_assignment_select;
END_ENTITY;

ENTITY Attribute_classification;
  allowed_value : Class;
  attribute_name : STRING;
  classified_entity : SET[1:?] OF classified_attribute_select;
END_ENTITY;

ENTITY Attribute_translation_assignment;
  considered_instance : string_select;
  considered_attribute : STRING;
  translation_text : STRING;
  translation_language : Language;
UNIQUE
  UR1: considered_instance, considered_attribute, translation_language;
END_ENTITY;

ENTITY Breakdown
  SUBTYPE OF (Product);
END_ENTITY;

ENTITY Breakdown_context;
  id : STRING;
  name : STRING;
  description : OPTIONAL STRING;
  breakdown : Breakdown_version;
  breakdown_element : Breakdown_element_definition;
END_ENTITY;

ENTITY Breakdown_element
  SUBTYPE OF (Product);
END_ENTITY;

ENTITY Breakdown_element_definition
  SUBTYPE OF (Product_view_definition);
  SELF\Product_view_definition.defined_version : Breakdown_element_version;
END_ENTITY;

ENTITY Breakdown_element_realization
  SUBTYPE OF (Product_definition_element_relationship);
END_ENTITY;

ENTITY Breakdown_element_usage
  SUBTYPE OF (View_definition_usage);
  name : STRING;
  SELF\View_definition_relationship.relating_view : Breakdown_element_definition;
  SELF\View_definition_relationship.related_view : Breakdown_element_definition;
DERIVE
  child_element : BREAKDOWN_ELEMENT_DEFINITION := SELF\View_definition_relationship.related_view;
  parent_element : BREAKDOWN_ELEMENT_DEFINITION := SELF\View_definition_relationship.relating_view;
END_ENTITY;

ENTITY Breakdown_element_version
  SUBTYPE OF (Product_version);
  SELF\Product_version.of_product : Breakdown_element;
END_ENTITY;

ENTITY Breakdown_of;
  id : STRING;
  name : STRING;
  description : OPTIONAL STRING;
  breakdown : Breakdown_version;
  of_view : Product_view_definition;
END_ENTITY;

ENTITY Breakdown_version
  SUBTYPE OF (Product_version);
  SELF\Product_version.of_product : Breakdown;
INVERSE
  breakdown_of : SET[1:?] OF Breakdown_of FOR breakdown;
END_ENTITY;

ENTITY Calendar_date;
  year_component : year_number;
  month_component : month_in_year_number;
  day_component : day_in_month_number;
END_ENTITY;

ENTITY Certification;
  name : STRING;
  description : OPTIONAL STRING;
  kind : STRING;
END_ENTITY;

ENTITY Certification_assignment;
  assigned_certification : Certification;
  items : SET[1:?] OF certification_item;
  role : STRING;
END_ENTITY;

ENTITY Class
  SUPERTYPE OF (ONEOF (CLASS_BY_EXTENSION,
                       CLASS_BY_INTENSION));
  id : STRING;
  name : STRING;
  description : OPTIONAL STRING;
END_ENTITY;

ENTITY Class_by_extension
  SUBTYPE OF (Class);
END_ENTITY;

ENTITY Class_by_intension
  SUBTYPE OF (Class);
END_ENTITY;

ENTITY Classification_assignment;
  assigned_class : Class;
  items : SET[1:?] OF classification_item;
  role : OPTIONAL STRING;
END_ENTITY;

ENTITY Composition_of_state
  SUBTYPE OF (State_relationship);
DERIVE
  part : SET[1:?] OF STATE := SELF\State_relationship.related;
  whole : SET[1:?] OF STATE := SELF\State_relationship.relating;
END_ENTITY;

ENTITY Composition_of_state_definition
  SUBTYPE OF (State_definition_relationship);
DERIVE
  part : SET[1:?] OF STATE_DEFINITION := SELF\State_definition_relationship.related;
  whole : SET[1:?] OF STATE_DEFINITION := SELF\State_definition_relationship.relating;
END_ENTITY;

ENTITY Concurrent_elements
  SUBTYPE OF (Structured_task_element);
  elements : SET[2:?] OF Task_element;
END_ENTITY;

ENTITY Condition;
  name : STRING;
  description : OPTIONAL STRING;
END_ENTITY;

ENTITY Condition_assignment;
  assigned_condition : Condition;
  item : condition_item;
END_ENTITY;

ENTITY Condition_evaluation;
  name : STRING;
  description : OPTIONAL STRING;
  result : LOGICAL;
  condition : Condition;
END_ENTITY;

ENTITY Condition_evaluation_assignment;
  assigned_condition_evaluation : Condition_evaluation;
  item : condition_evaluation_item;
END_ENTITY;

ENTITY Condition_evaluation_parameter;
  name : STRING;
  description : OPTIONAL STRING;
  condition_evaluation : Condition_evaluation;
  evaluation_parameter : condition_evaluation_parameter_item;
END_ENTITY;

ENTITY Condition_parameter;
  name : STRING;
  description : OPTIONAL STRING;
  condition : Condition;
  parameter : OPTIONAL condition_parameter_item;
END_ENTITY;

ENTITY Condition_relationship;
  name : STRING;
  description : OPTIONAL STRING;
  relating_condition : Condition;
  related_condition : Condition;
END_ENTITY;

ENTITY Context_dependent_unit
  SUBTYPE OF (Unit);
WHERE
  WR1: EXISTS(SELF\Unit.name);
END_ENTITY;

ENTITY Contract;
  id : STRING;
  purpose : STRING;
  kind : STRING;
END_ENTITY;

ENTITY Contract_assignment;
  assigned_contract : Contract;
  items : SET[1:?] OF contract_item;
END_ENTITY;

ENTITY Conversion_based_unit
  SUBTYPE OF (Unit);
  conversion_factor : Value_with_unit;
WHERE
  WR1: EXISTS(SELF\Unit.name);
END_ENTITY;

ENTITY Date_or_date_time_assignment;
  assigned_date : date_or_date_time_select;
  role : STRING;
  items : SET[1:?] OF date_or_date_time_item;
END_ENTITY;

ENTITY Date_time;
  date_component : Calendar_date;
  time_component : Local_time;
END_ENTITY;

ENTITY Dated_effectivity
  SUBTYPE OF (Effectivity);
  start_bound : date_or_event;
  end_bound : OPTIONAL date_or_event;
END_ENTITY;

ENTITY Decision_point
  SUBTYPE OF (Structured_task_element);
  condition : Condition;
  true_case_element : OPTIONAL Task_element;
  false_case_element : OPTIONAL Task_element;
  unknown_case_element : OPTIONAL Task_element;
END_ENTITY;

ENTITY Decreasing_resource_event
  SUBTYPE OF (Resource_event);
END_ENTITY;

ENTITY Defined_state_relationship;
  name : STRING;
  description : OPTIONAL STRING;
  definitive_state : State_assertion;
  defined_state : State_assessment;
END_ENTITY;

ENTITY Derived_unit
  SUBTYPE OF (Unit);
  elements : SET[1:?] OF Derived_unit_element;
END_ENTITY;

ENTITY Derived_unit_element;
  base_unit : Unit;
  exponent : REAL;
END_ENTITY;

ENTITY Digital_document_definition
  SUBTYPE OF (Document_definition);
  files : SET[0:?] OF Digital_file;
END_ENTITY;

ENTITY Digital_file
  SUBTYPE OF (File);
END_ENTITY;

ENTITY Directed_activity
  SUBTYPE OF (Activity);
  directive : Work_order;
END_ENTITY;

ENTITY Disposition
  SUBTYPE OF (Approval);
  name : STRING;
END_ENTITY;

ENTITY Distribution_by_value
  SUBTYPE OF (Probability_distribution);
  defined_function : Value_function;
  distribution_function : STRING;
END_ENTITY;

ENTITY Document
  SUBTYPE OF (Product);
END_ENTITY;

ENTITY Document_assignment;
  assigned_document : assigned_document_select;
  is_assigned_to : documented_element_select;
  role : STRING;
END_ENTITY;

ENTITY Document_definition
  SUPERTYPE OF (ONEOF (DIGITAL_DOCUMENT_DEFINITION,
                       PHYSICAL_DOCUMENT_DEFINITION))
  SUBTYPE OF (Product_view_definition);
  SELF\Product_view_definition.defined_version : Document_version;
DERIVE
  associated_document_version : DOCUMENT_VERSION := SELF\Product_view_definition.defined_version;
  description : STRING := SELF\Product_view_definition.name;
END_ENTITY;

ENTITY Document_definition_relationship;
  relation_type : STRING;
  description : OPTIONAL STRING;
  relating_document_definition : Document_definition;
  related_document_definition : Document_definition;
WHERE
  WR1: relating_document_definition :<>: related_document_definition;
END_ENTITY;

ENTITY Document_location_identification
  SUBTYPE OF (External_source_identification);
WHERE
  WR1: 'PROGRAM_MANAGEMENT_ARM_LF.DOCUMENT_DEFINITION' IN TYPEOF(SELF\External_source_identification.item);
END_ENTITY;

ENTITY Document_version
  SUBTYPE OF (Product_version);
  SELF\Product_version.of_product : Document;
END_ENTITY;

ENTITY Duration
  SUBTYPE OF (Value_with_unit);
WHERE
  WR1: 'PROGRAM_MANAGEMENT_ARM_LF.' + 'TIME_UNIT' IN TYPEOF(SELF\Value_with_unit.unit);
END_ENTITY;

ENTITY Effectivity
  SUPERTYPE OF (ONEOF (SERIAL_EFFECTIVITY,
                       DATED_EFFECTIVITY,
                       LOT_EFFECTIVITY,
                       TIME_INTERVAL_EFFECTIVITY));
  id : STRING;
  name : STRING;
  description : OPTIONAL STRING;
END_ENTITY;

ENTITY Effectivity_assignment;
  assigned_effectivity : Effectivity;
  role : STRING;
  items : SET[1:?] OF effectivity_item;
END_ENTITY;

ENTITY Effectivity_relationship;
  relation_type : STRING;
  description : OPTIONAL STRING;
  relating_effectivity : Effectivity;
  related_effectivity : Effectivity;
END_ENTITY;

ENTITY Electric_current_unit
  SUBTYPE OF (Unit);
END_ENTITY;

ENTITY Element_constraint
  SUBTYPE OF (Task_element_relationship);
  applies_in : OPTIONAL constraint_context;
END_ENTITY;

ENTITY End_task
  SUBTYPE OF (Task_element);
END_ENTITY;

ENTITY Event;
  id : STRING;
  name : STRING;
  description : OPTIONAL STRING;
  actual_start_date : OPTIONAL date_or_date_time_select;
  planned_start_date : OPTIONAL date_or_date_time_select;
END_ENTITY;

ENTITY Event_assignment;
  assigned_event : Event;
  items : SET[1:?] OF event_item;
  role : STRING;
END_ENTITY;

ENTITY Event_relationship;
  relation_type : STRING;
  description : OPTIONAL STRING;
  relating_event : Event;
  related_event : Event;
END_ENTITY;

ENTITY Exit_loop
  SUBTYPE OF (Task_element);
END_ENTITY;

ENTITY Experience_gained;
  experience_of : Experience_instance;
  gained_by : person_or_organization_or_person_in_organization_select;
  role : OPTIONAL STRING;
END_ENTITY;

ENTITY Experience_instance;
  description : OPTIONAL STRING;
  is_defined_by : Experience_type;
  consists_of : OPTIONAL defined_activities;
END_ENTITY;

ENTITY Experience_type;
  name : STRING;
  description : OPTIONAL STRING;
  consists_of : OPTIONAL defined_methods;
END_ENTITY;

ENTITY Experience_type_relationship;
  compound_experience : Experience_type;
  component_experience : Experience_type;
END_ENTITY;

ENTITY External_class
  SUBTYPE OF (Class);
  external_source : External_class_library;
END_ENTITY;

ENTITY External_class_library;
  id : STRING;
  description : OPTIONAL STRING;
END_ENTITY;

ENTITY External_item_identification
  SUBTYPE OF (External_source_identification);
  external_id : STRING;
END_ENTITY;

ENTITY External_source_identification;
  source_id : STRING;
  source_type : STRING;
  item : external_identification_item;
  description : OPTIONAL STRING;
END_ENTITY;

ENTITY File
  ABSTRACT SUPERTYPE OF (ONEOF (DIGITAL_FILE,
                                HARDCOPY));
  id : STRING;
  version : OPTIONAL STRING;
  contained_data_type : OPTIONAL STRING;
END_ENTITY;

ENTITY File_location_identification
  SUBTYPE OF (External_item_identification);
WHERE
  WR1: 'PROGRAM_MANAGEMENT_ARM_LF.FILE' IN TYPEOF(SELF\External_source_identification.item);
END_ENTITY;

ENTITY File_relationship;
  relation_type : STRING;
  description : OPTIONAL STRING;
  relating_document_file : File;
  related_document_file : File;
WHERE
  WR1: relating_document_file:<>: related_document_file;
END_ENTITY;

ENTITY Function_value_pair;
  function_value : Probability_function_value;
  variable_value : Random_variable;
END_ENTITY;

ENTITY Global_location_representation
  SUBTYPE OF (Location_representation);
  altitude : OPTIONAL Value_with_unit;
  geographical_area : OPTIONAL STRING;
  latitude : Value_with_unit;
  longitude : Value_with_unit;
END_ENTITY;

ENTITY Hardcopy
  SUBTYPE OF (File);
END_ENTITY;

ENTITY Identification_assignment;
  identifier : STRING;
  role : STRING;
  description : OPTIONAL STRING;
  items : SET[1:?] OF identification_item;
END_ENTITY;

ENTITY Increasing_resource_event
  SUBTYPE OF (Resource_event);
END_ENTITY;

ENTITY Independent_property;
  id : STRING;
  property_type : STRING;
  description : OPTIONAL STRING;
END_ENTITY;

ENTITY Independent_property_relationship;
  relation_type : STRING;
  description : OPTIONAL STRING;
  relating : Independent_property;
  related : Independent_property;
END_ENTITY;

ENTITY Information_right;
  id : STRING;
  name : STRING;
  description : OPTIONAL STRING;
  restriction : OPTIONAL STRING;
END_ENTITY;

ENTITY Information_usage_right;
  id : STRING;
  name : STRING;
  comment : OPTIONAL STRING;
  grants_right : SET[1:?] OF Information_right;
END_ENTITY;

ENTITY Information_usage_right_relationship;
  relating : Information_usage_right;
  related : Information_usage_right;
  relation_type : STRING;
END_ENTITY;

ENTITY Issue
  SUBTYPE OF (Observation);
END_ENTITY;

ENTITY Issue_consequence
  SUBTYPE OF (Observation_consequence);
END_ENTITY;

ENTITY Issue_reference
  SUBTYPE OF (Observation_item);
  item : SET[0:?] OF issue_reference_item;
END_ENTITY;

ENTITY Item_design_association;
  configuration : Product_configuration;
  design : version_or_definition;
UNIQUE
  UR1: configuration, design;
END_ENTITY;

ENTITY Justification;
  id : STRING;
  name : OPTIONAL STRING;
  description : STRING;
  context_description : OPTIONAL STRING;
END_ENTITY;

ENTITY Justification_assignment;
  justification : Justification;
  description : OPTIONAL STRING;
  item : justification_item;
  role : STRING;
END_ENTITY;

ENTITY Justification_relationship;
  name : STRING;
  description : OPTIONAL STRING;
  relating_justification : Justification;
  related_justification : Justification;
END_ENTITY;

ENTITY Justification_support_assignment;
  justification : Justification;
  description : OPTIONAL STRING;
  support_item : justification_support_item;
  role : STRING;
END_ENTITY;

ENTITY Language;
  language_code : STRING;
  country_code : OPTIONAL STRING;
UNIQUE
  UR1: language_code;
END_ENTITY;

ENTITY Language_indication;
  considered_instance : string_select;
  considered_attribute : STRING;
  used_language : Language;
END_ENTITY;

ENTITY Length_unit
  SUBTYPE OF (Unit);
END_ENTITY;

ENTITY Lessons_learned
  SUBTYPE OF (Document_assignment);
  SELF\Document_assignment.is_assigned_to : lessons_learned_select;
END_ENTITY;

ENTITY Local_time;
  hour_component : hour_in_day;
  minute_component : OPTIONAL minute_in_hour;
  second_component : OPTIONAL second_in_minute;
  zone : Time_offset;
END_ENTITY;

ENTITY Location;
  name : STRING;
  description : OPTIONAL STRING;
  alternative_location_representations : SET[0:?] OF Location_representation;
END_ENTITY;

ENTITY Location_assignment;
  description : OPTIONAL STRING;
  role : OPTIONAL STRING;
  entity_for_location : location_assignment_select;
  location_for_assignment : Location;
END_ENTITY;

ENTITY Location_relationship;
  name : STRING;
  description : OPTIONAL STRING;
  relating : Location;
  related : Location;
END_ENTITY;

ENTITY Location_representation
  ABSTRACT SUPERTYPE OF (ONEOF (ADDRESS_BASED_LOCATION_REPRESENTATION,
                                GLOBAL_LOCATION_REPRESENTATION,
                                ORGANIZATION_BASED_LOCATION_REPRESENTATION,
                                PRODUCT_BASED_LOCATION_IDENTIFICATION,
                                REGIONAL_GRID_LOCATION_REPRESENTATION));
END_ENTITY;

ENTITY Looping_element
  SUPERTYPE OF (ONEOF (REPEAT_COUNT,
                       REPEAT_UNTIL,
                       REPEAT_WHILE))
  SUBTYPE OF (Structured_task_element);
  repeated_element : Task_element;
END_ENTITY;

ENTITY Lot_effectivity
  SUBTYPE OF (Effectivity);
  lot_id : STRING;
  lot_size : Value_with_unit;
END_ENTITY;

ENTITY Luminous_intensity_unit
  SUBTYPE OF (Unit);
END_ENTITY;

ENTITY Managed_resource;
  name : STRING;
  description : OPTIONAL STRING;
  quantity : OPTIONAL Value_with_unit;
  item : Resource_item;
END_ENTITY;

ENTITY Managed_resource_relationship;
  name : STRING;
  description : OPTIONAL STRING;
  relating : Managed_resource;
  related : Managed_resource;
END_ENTITY;

ENTITY Market;
  name : STRING;
  market_segment_type : OPTIONAL STRING;
END_ENTITY;

ENTITY Mass_unit
  SUBTYPE OF (Unit);
END_ENTITY;

ENTITY Measure_item
  ABSTRACT SUPERTYPE
  SUBTYPE OF (Representation_item);
WHERE
  WR1: SIZEOF(USEDIN(SELF, 'PROGRAM_MANAGEMENT_ARM_LF.REPRESENTATION.ITEMS'))>0;
END_ENTITY;

ENTITY Name_assignment;
  name : STRING;
  role : STRING;
  items : assigned_name_select;
END_ENTITY;

ENTITY Numerical_item_with_global_unit
  SUBTYPE OF (Measure_item);
  value_component : measure_value;
WHERE
  WR1: SIZEOF(QUERY(pvr <* QUERY (r <* USEDIN(SELF, 'PROGRAM_MANAGEMENT_ARM_LF.REPRESENTATION.ITEMS')| 'PROGRAM_MANAGEMENT_ARM_LF.PROPERTY_VALUE_REPRESENTATION' IN TYPEOF(r)) | EXISTS(pvr.context_of_items.units))) > 0;
END_ENTITY;

ENTITY Numerical_item_with_unit
  SUBTYPE OF (Measure_item, Value_with_unit);
END_ENTITY;

ENTITY Numerical_representation_context
  SUBTYPE OF (Representation_context);
  units : OPTIONAL SET[1:?] OF Unit;
  accuracies : OPTIONAL SET[1:?] OF Uncertainty_with_unit;
END_ENTITY;

ENTITY Observation;
  id : STRING;
  name : STRING;
  description : STRING;
  applies_to : SET[0:?] OF Observation_item;
  in_context : SET[0:?] OF observed_context;
  observed_by : SET[0:?] OF observation_recorder;
  observed_during : OPTIONAL Activity_actual;
  related_records : SET[0:?] OF Observation_item;
END_ENTITY;

ENTITY Observation_consequence;
  id : STRING;
  name : STRING;
  infered_from : Observation;
  requests : Work_request;
  role : STRING;
END_ENTITY;

ENTITY Observation_item;
  access_comment : STRING;
  item_identifier : STRING;
  item_type : STRING;
END_ENTITY;

ENTITY Observation_relationship;
  relating : Observation;
  related : Observation;
  role : STRING;
END_ENTITY;

ENTITY Or_state_cause_effect_definition
  SUBTYPE OF (State_cause_effect_definition);
END_ENTITY;

ENTITY Organization;
  id : OPTIONAL STRING;
  name : STRING;
END_ENTITY;

ENTITY Organization_based_location_representation
  SUBTYPE OF (Location_representation);
  location_identifications : LIST[0:?] OF Organizational_location_identification;
  organization_for_location : Organization;
END_ENTITY;

ENTITY Organization_or_person_in_organization_assignment;
  assigned_entity : organization_or_person_in_organization_select;
  role : STRING;
  items : SET[1:?] OF organization_or_person_in_organization_item;
END_ENTITY;

ENTITY Organization_organization_type_relationship;
  organization : Organization;
  organization_type : Organization_type;
END_ENTITY;

ENTITY Organization_relationship;
  relation_type : STRING;
  description : OPTIONAL STRING;
  relating_organization : Organization;
  related_organization : Organization;
END_ENTITY;

ENTITY Organization_stakeholder
  SUBTYPE OF (Organization, Risk_stakeholder);
END_ENTITY;

ENTITY Organization_type;
  name : STRING;
  description : OPTIONAL STRING;
END_ENTITY;

ENTITY Organizational_location_identification;
  identification_type : STRING;
  location_value : STRING;
END_ENTITY;

ENTITY Parameterized_distribution
  SUBTYPE OF (Probability_distribution);
  has_parameters : LIST[1:?] OF Probability_distribution_parameter;
  parameterization_name : STRING;
END_ENTITY;

ENTITY Partial_document_assignment
  SUBTYPE OF (Document_assignment);
  document_portion : STRING;
END_ENTITY;

ENTITY Person;
  last_name : STRING;
  first_name : OPTIONAL STRING;
  middle_names : OPTIONAL LIST[1:?] OF STRING;
  prefix_titles : OPTIONAL LIST[1:?] OF STRING;
  suffix_titles : OPTIONAL LIST[1:?] OF STRING;
END_ENTITY;

ENTITY Person_in_organization;
  concerned_person : Person;
  containing_organization : Organization;
  role : STRING;
END_ENTITY;

ENTITY Person_in_organization_stakeholder
  SUBTYPE OF (Person_in_organization, Risk_stakeholder);
END_ENTITY;

ENTITY Person_or_organization_or_person_in_organization_in_position;
  name : STRING;
  description : STRING;
  person_or_organization : position_person_or_organization_or_person_in_organization_select;
  position : Position;
END_ENTITY;

ENTITY Person_or_organization_or_person_in_organization_in_position_relationship;
  name : STRING;
  description : OPTIONAL STRING;
  relating : Person_or_organization_or_person_in_organization_in_position;
  related : Person_or_organization_or_person_in_organization_in_position;
END_ENTITY;

ENTITY Physical_document_definition
  SUBTYPE OF (Document_definition);
  components : SET[0:?] OF Hardcopy;
END_ENTITY;

ENTITY Plane_angle_unit
  SUBTYPE OF (Unit);
END_ENTITY;

ENTITY Position;
  name : STRING;
  description : OPTIONAL STRING;
  address : OPTIONAL Address;
  position_context : position_context_item;
END_ENTITY;

ENTITY Position_assignment;
  items : SET[1:?] OF position_item;
  position : Position;
  role : Position_role;
END_ENTITY;

ENTITY Position_group;
  name : STRING;
  description : OPTIONAL STRING;
END_ENTITY;

ENTITY Position_group_assignment;
  items : SET[1:?] OF position_group_item;
  position_group : Position_group;
  role : Position_group_role;
END_ENTITY;

ENTITY Position_group_relationship;
  group : Position_group;
  position : Position;
END_ENTITY;

ENTITY Position_group_role;
  name : STRING;
  description : OPTIONAL STRING;
END_ENTITY;

ENTITY Position_position_type_assignment;
  assigned_position_type : Position_type;
  assigned_to : Position;
END_ENTITY;

ENTITY Position_relationship;
  name : STRING;
  description : OPTIONAL STRING;
  relating_position : Position;
  related_position : Position;
END_ENTITY;

ENTITY Position_role;
  name : STRING;
  description : OPTIONAL STRING;
END_ENTITY;

ENTITY Position_type;
  name : STRING;
  description : OPTIONAL STRING;
  defined_by : Type_of_person;
END_ENTITY;

ENTITY Position_type_assignment;
  items : SET[1:?] OF position_type_item;
  position_type : Position_type;
  role : Position_type_role;
END_ENTITY;

ENTITY Position_type_role;
  name : STRING;
  description : OPTIONAL STRING;
END_ENTITY;

ENTITY Probability
  ABSTRACT SUPERTYPE
  SUBTYPE OF (Representation);
END_ENTITY;

ENTITY Probability_by_name
  SUBTYPE OF (Probability);
  SELF\Representation.items : SET[1:1] OF Probability_named_value;
DERIVE
  has_value : SET[1:1] OF PROBABILITY_NAMED_VALUE := SELF\Representation.items;
END_ENTITY;

ENTITY Probability_derivation_parameter
  SUBTYPE OF (Numerical_item_with_global_unit);
END_ENTITY;

ENTITY Probability_derived
  SUBTYPE OF (Probability_numeric);
  derives_from : Probability_generator;
  has_parameter : LIST[1:?] OF Probability_derivation_parameter;
END_ENTITY;

ENTITY Probability_distribution
  ABSTRACT SUPERTYPE
  SUBTYPE OF (Probability_generator);
  distribution_name : OPTIONAL STRING;
  is_continuous : STRING;
  mean : REAL;
  variance : REAL;
END_ENTITY;

ENTITY Probability_distribution_parameter
  SUBTYPE OF (Numerical_item_with_global_unit);
END_ENTITY;

ENTITY Probability_function_value
  SUBTYPE OF (Numerical_item_with_global_unit);
END_ENTITY;

ENTITY Probability_generator
  ABSTRACT SUPERTYPE
  SUBTYPE OF (Representation);
END_ENTITY;

ENTITY Probability_named_value
  SUBTYPE OF (Representation_item);
END_ENTITY;

ENTITY Probability_numeric
  SUBTYPE OF (Probability);
  SELF\Representation.items : SET[1:1] OF Probability_numeric_value;
DERIVE
  has_value : SET[1:1] OF PROBABILITY_NUMERIC_VALUE := SELF\Representation.items;
END_ENTITY;

ENTITY Probability_numeric_value
  SUBTYPE OF (Numerical_item_with_global_unit);
END_ENTITY;

ENTITY Product;
  id : STRING;
  name : OPTIONAL STRING;
  description : OPTIONAL STRING;
END_ENTITY;

ENTITY Product_as_individual
  SUBTYPE OF (Product);
END_ENTITY;

ENTITY Product_as_individual_version
  ABSTRACT SUPERTYPE OF (ONEOF (PRODUCT_AS_PLANNED,
                                PRODUCT_AS_REALIZED))
  SUBTYPE OF (Product_version);
  SELF\Product_version.of_product : Product_as_individual;
END_ENTITY;

ENTITY Product_as_individual_view
  SUBTYPE OF (Product_view_definition);
  SELF\Product_view_definition.defined_version : Product_as_individual_version;
END_ENTITY;

ENTITY Product_as_planned
  SUBTYPE OF (Product_as_individual_version);
END_ENTITY;

ENTITY Product_as_realized
  SUBTYPE OF (Product_as_individual_version);
END_ENTITY;

ENTITY Product_based_location_identification
  SUBTYPE OF (Location_representation);
  location_identification : STRING;
  location_name : OPTIONAL STRING;
  referenced_product : product_based_location_representation;
END_ENTITY;

ENTITY Product_category;
  id : OPTIONAL STRING;
  name : STRING;
  description : OPTIONAL STRING;
END_ENTITY;

ENTITY Product_category_assignment;
  category : Product_category;
  products : SET[1:?] OF Product;
END_ENTITY;

ENTITY Product_category_hierarchy;
  super_category : Product_category;
  sub_category : Product_category;
END_ENTITY;

ENTITY Product_concept;
  id : STRING;
  name : STRING;
  description : OPTIONAL STRING;
  target_market : OPTIONAL Market;
UNIQUE
  UR1: id;
END_ENTITY;

ENTITY Product_configuration;
  id : STRING;
  name : STRING;
  description : OPTIONAL STRING;
  item_context : Product_concept;
INVERSE
  corresponding_design : SET[0:1] OF Item_design_association FOR configuration;
END_ENTITY;

ENTITY Product_definition_element_relationship;
  id : STRING;
  name : STRING;
  description : OPTIONAL STRING;
  breakdown : breakdown_item;
  product : product_item;
END_ENTITY;

ENTITY Product_design_to_individual;
  product_design : Product;
  individual_product : Product_as_individual;
END_ENTITY;

ENTITY Product_design_version_to_individual;
  product_design_version : Product_version;
  individual_product : Product_as_individual_version;
END_ENTITY;

ENTITY Product_group;
  id : STRING;
  description : OPTIONAL STRING;
  purpose : STRING;
  membership_rule : OPTIONAL STRING;
  product_group_context : OPTIONAL STRING;
END_ENTITY;

ENTITY Product_group_membership;
  member : product_select;
  of_group : Product_group;
END_ENTITY;

ENTITY Product_group_relationship;
  description : OPTIONAL STRING;
  relating : Product_group;
  related : Product_group;
  role : OPTIONAL STRING;
END_ENTITY;

ENTITY Product_planned_to_realized;
  planned_product : Product_as_planned;
  realized_product : Product_as_realized;
END_ENTITY;

ENTITY Product_relationship;
  relation_type : STRING;
  description : OPTIONAL STRING;
  relating_product : Product;
  related_product : Product;
END_ENTITY;

ENTITY Product_version;
  id : STRING;
  description : OPTIONAL STRING;
  of_product : Product;
END_ENTITY;

ENTITY Product_version_relationship;
  relation_type : OPTIONAL STRING;
  description : OPTIONAL STRING;
  relating_version : Product_version;
  related_version : Product_version;
WHERE
  WR1: relating_version :<>: related_version;
  WR2: EXISTS(relation_type) OR (TYPEOF(SELF\Product_version_relationship) <> TYPEOF(SELF));
END_ENTITY;

ENTITY Product_view_definition;
  id : OPTIONAL STRING;
  name : OPTIONAL STRING;
  additional_characterization : OPTIONAL STRING;
  initial_context : View_definition_context;
  additional_contexts : SET[0:?] OF View_definition_context;
  defined_version : Product_version;
WHERE
  WR1: NOT (initial_context IN additional_contexts);
  WR2: EXISTS(id) OR (TYPEOF(SELF\Product_view_definition) <> TYPEOF(SELF));
END_ENTITY;

ENTITY Project;
  id : STRING;
  name : STRING;
  description : OPTIONAL STRING;
  responsible_organizations : SET[0:?] OF Organization;
  planned_start_date : OPTIONAL date_or_event;
  planned_end_date : OPTIONAL date_or_event;
  actual_start_date : OPTIONAL date_or_date_time_select;
  actual_end_date : OPTIONAL date_or_date_time_select;
END_ENTITY;

ENTITY Project_assignment;
  assigned_project : Project;
  role : STRING;
  items : SET[1:?] OF project_item;
END_ENTITY;

ENTITY Project_relationship;
  relation_type : STRING;
  description : OPTIONAL STRING;
  relating_project : Project;
  related_project : Project;
END_ENTITY;

ENTITY Property_definition_representation
  ABSTRACT SUPERTYPE ;
  description : OPTIONAL STRING;
  definition : represented_definition;
  rep : Representation;
  role : OPTIONAL STRING;
END_ENTITY;

ENTITY Property_representation
  SUBTYPE OF (Property_definition_representation);
  SELF\Property_definition_representation.definition : Assigned_property;
DERIVE
  property : ASSIGNED_PROPERTY := SELF\Property_definition_representation.definition;
END_ENTITY;

ENTITY Property_value_representation
  SUBTYPE OF (Representation);
  SELF\Representation.context_of_items : Numerical_representation_context;
END_ENTITY;

ENTITY Qualification_assignment;
  assigned_qualification_type : Qualification_type;
  received_by : qualifications_select;
END_ENTITY;

ENTITY Qualification_type;
  name : STRING;
  description : OPTIONAL STRING;
END_ENTITY;

ENTITY Qualification_type_relationship;
  name : STRING;
  description : OPTIONAL STRING;
  relating : Qualification_type;
  related : Qualification_type;
END_ENTITY;

ENTITY Random_variable
  SUBTYPE OF (Numerical_item_with_global_unit);
END_ENTITY;

ENTITY Ratio_unit
  SUBTYPE OF (Unit);
END_ENTITY;

ENTITY Regional_coordinate;
  name : STRING;
  coordinate_value : Value_with_unit;
  grid_system : Regional_grid_location_representation;
END_ENTITY;

ENTITY Regional_grid_location_representation
  SUBTYPE OF (Location_representation);
  name : STRING;
  description : OPTIONAL STRING;
END_ENTITY;

ENTITY Related_condition_parameter;
  name : STRING;
  description : OPTIONAL STRING;
  conditon_evaluation_parameter : Condition_evaluation_parameter;
  condition_parameter : Condition_parameter;
END_ENTITY;

ENTITY Relative_event
  SUBTYPE OF (Event);
  base_event : Event;
  offset : Duration;
END_ENTITY;

ENTITY Repeat_count
  SUBTYPE OF (Looping_element);
  count : INTEGER;
END_ENTITY;

ENTITY Repeat_until
  SUBTYPE OF (Looping_element);
  condition : Condition;
END_ENTITY;

ENTITY Repeat_while
  SUBTYPE OF (Looping_element);
  condition : Condition;
END_ENTITY;

ENTITY Representation;
  id : OPTIONAL STRING;
  name : OPTIONAL STRING;
  description : OPTIONAL STRING;
  context_of_items : Representation_context;
  items : SET[1:?] OF Representation_item;
WHERE
  WR1: EXISTS(name) OR (TYPEOF(SELF\Representation) <> TYPEOF(SELF));
END_ENTITY;

ENTITY Representation_context;
  id : STRING;
  kind : STRING;
INVERSE
  representations_in_context : SET[1:?] OF Representation FOR context_of_items;
END_ENTITY;

ENTITY Representation_item
  ABSTRACT SUPERTYPE ;
  name : OPTIONAL STRING;
END_ENTITY;

ENTITY Representation_relationship;
  relation_type : OPTIONAL STRING;
  description : OPTIONAL STRING;
  rep_1 : Representation;
  rep_2 : Representation;
WHERE
  WR1: EXISTS(relation_type) OR (TYPEOF(SELF\Representation_relationship) <> TYPEOF(SELF));
  WR2: EXISTS(description) OR (TYPEOF(SELF\Representation_relationship) <> TYPEOF(SELF));
END_ENTITY;

ENTITY Required_resource
  ABSTRACT SUPERTYPE OF (ONEOF (REQUIRED_RESOURCE_BY_RESOURCE_ITEM,
                                REQUIRED_RESOURCE_BY_SPECIFICATION));
  name : STRING;
  description : OPTIONAL STRING;
  required_quantity : OPTIONAL Value_with_unit;
END_ENTITY;

ENTITY Required_resource_assignment;
  assigned_resource : Required_resource;
  item : required_resource_item;
END_ENTITY;

ENTITY Required_resource_by_resource_item
  SUBTYPE OF (Required_resource);
  resource_item : Resource_item;
END_ENTITY;

ENTITY Required_resource_by_specification
  SUBTYPE OF (Required_resource);
END_ENTITY;

ENTITY Required_resource_relationship;
  name : STRING;
  description : OPTIONAL STRING;
  relating : Required_resource;
  related : Required_resource;
END_ENTITY;

ENTITY Resource_as_realized;
  name : STRING;
  description : OPTIONAL STRING;
  quantity : OPTIONAL Value_with_unit;
END_ENTITY;

ENTITY Resource_as_realized_assignment;
  assigned_resource : Resource_as_realized;
  item : resource_as_realized_item;
END_ENTITY;

ENTITY Resource_as_realized_relationship;
  name : STRING;
  description : OPTIONAL STRING;
  relating : Resource_as_realized;
  related : resource_as_realized_relationship_select;
END_ENTITY;

ENTITY Resource_as_realized_resource_item
  SUBTYPE OF (Resource_as_realized);
  resource_item : Resource_item;
END_ENTITY;

ENTITY Resource_event
  ABSTRACT SUPERTYPE ;
  name : STRING;
  description : OPTIONAL STRING;
  quantity : OPTIONAL Value_with_unit;
  resource : Managed_resource;
END_ENTITY;

ENTITY Resource_event_correspondence_relationship;
  name : STRING;
  description : OPTIONAL STRING;
  relating : Resource_event;
  related : Required_resource;
END_ENTITY;

ENTITY Resource_event_relationship;
  name : STRING;
  description : OPTIONAL STRING;
  relating : Resource_event;
  related : Resource_event;
END_ENTITY;

ENTITY Resource_group_relationship
  SUBTYPE OF (Resource_item_relationship);
  quantity : OPTIONAL Value_with_unit;
END_ENTITY;

ENTITY Resource_item;
  name : STRING;
  description : OPTIONAL STRING;
  resource_items : OPTIONAL SET[0:?] OF resource_item_select;
END_ENTITY;

ENTITY Resource_item_assignment;
  assigned_resource : Resource_item;
  item : resource_assignment_item;
END_ENTITY;

ENTITY Resource_item_relationship;
  name : STRING;
  description : OPTIONAL STRING;
  relating : Resource_item;
  related : Resource_item;
END_ENTITY;

ENTITY Resource_property;
  name : STRING;
  description : STRING;
  described_element : characterized_resource_select;
END_ENTITY;

ENTITY Resource_property_representation;
  description : OPTIONAL STRING;
  property : Resource_property;
  rep : Representation;
  role : STRING;
END_ENTITY;

ENTITY Risk;
  id : STRING;
  name : STRING;
  description : OPTIONAL STRING;
END_ENTITY;

ENTITY Risk_acceptance
  SUBTYPE OF (Risk_treatment);
END_ENTITY;

ENTITY Risk_analysis;
  risk_identification : Risk_identification;
  risk_estimate : SET[1:?] OF Risk_estimation;
END_ENTITY;

ENTITY Risk_assessment;
  risk_analysis : SET[1:?] OF Risk_analysis;
  risk_evaluation : SET[1:?] OF Risk_evaluation;
END_ENTITY;

ENTITY Risk_attitude;
  criticality_factor : NUMBER;
END_ENTITY;

ENTITY Risk_avoidance
  SUBTYPE OF (Risk_treatment);
END_ENTITY;

ENTITY Risk_communication;
  inputs : SET[1:?] OF risk_communication_select;
  communicator : Risk_stakeholder;
  communicatee : SET[1:?] OF Risk_stakeholder;
END_ENTITY;

ENTITY Risk_consequence;
  name : STRING;
  description : OPTIONAL STRING;
END_ENTITY;

ENTITY Risk_containment
  SUBTYPE OF (Risk_treatment);
END_ENTITY;

ENTITY Risk_context;
  name : STRING;
  description : OPTIONAL STRING;
END_ENTITY;

ENTITY Risk_control;
  monitor : SET[1:?] OF Risk_assessment;
END_ENTITY;

ENTITY Risk_criteria
  SUBTYPE OF (Risk_perception);
END_ENTITY;

ENTITY Risk_estimation;
  inputs : SET[0:?] OF Risk_context;
  outputs : SET[1:?] OF risk_estimation_select;
END_ENTITY;

ENTITY Risk_evaluation;
  id : OPTIONAL STRING;
  name : STRING;
  description : OPTIONAL STRING;
  items : SET[1:?] OF risk_evaluation_select;
  risk_criteria : SET[1:?] OF Risk_criteria;
  risk_treatment : Risk_treatment;
END_ENTITY;

ENTITY Risk_identification;
  inputs : SET[1:?] OF risk_identification_select;
  risk_stakeholder : OPTIONAL Risk_stakeholder;
END_ENTITY;

ENTITY Risk_impact
  SUBTYPE OF (Risk_consequence);
  causal_consequence : OPTIONAL Risk_consequence;
END_ENTITY;

ENTITY Risk_level
  SUBTYPE OF (Risk_perception);
  risk_attitude : Risk_attitude;
  SELF\Risk_perception.risk_context : Risk_objective;
DERIVE
  risk_objective : RISK_OBJECTIVE := SELF\Risk_perception.risk_context;
END_ENTITY;

ENTITY Risk_level_relationship
  SUBTYPE OF (Risk_perception_relationship);
  SELF\Risk_perception_relationship.relating_risk_perception : Risk_level;
  SELF\Risk_perception_relationship.related_risk_perception : Risk_level;
DERIVE
  related_risk_level : RISK_LEVEL := SELF\Risk_perception_relationship.related_risk_perception;
  relating_risk_level : RISK_LEVEL := SELF\Risk_perception_relationship.relating_risk_perception;
END_ENTITY;

ENTITY Risk_objective
  SUBTYPE OF (Risk_context);
END_ENTITY;

ENTITY Risk_optimization
  SUBTYPE OF (Risk_treatment);
END_ENTITY;

ENTITY Risk_owner_assignment;
  risk : SET[1:?] OF Risk;
  risk_owner : Risk_stakeholder;
END_ENTITY;

ENTITY Risk_perception;
  name : STRING;
  description : OPTIONAL STRING;
  formation : Risk_perception_formation;
  perceived_probability : Applied_probability_assignment;
  perceived_consequence : SET[1:?] OF Risk_consequence;
  perceived_impact : SET[0:?] OF Risk_impact;
  risk_context : Risk_context;
  risk_status : Risk_status;
END_ENTITY;

ENTITY Risk_perception_formation;
  of_risk : Risk;
END_ENTITY;

ENTITY Risk_perception_relationship;
  name : STRING;
  description : OPTIONAL STRING;
  relating_risk_perception : Risk_perception;
  related_risk_perception : Risk_perception;
END_ENTITY;

ENTITY Risk_person_stakeholder
  SUBTYPE OF (Person, Risk_stakeholder);
END_ENTITY;

ENTITY Risk_reduction;
  id : OPTIONAL STRING;
  name : STRING;
  description : OPTIONAL STRING;
  approach : Risk_treatment;
  resolves : SET[1:?] OF mitigation_select;
  risk_evaluation : OPTIONAL Risk_evaluation;
END_ENTITY;

ENTITY Risk_relationship;
  id : STRING;
  name : STRING;
  description : OPTIONAL STRING;
  relating_risk : Risk;
  related_risk : Risk;
END_ENTITY;

ENTITY Risk_retention
  SUBTYPE OF (Risk_treatment);
END_ENTITY;

ENTITY Risk_stakeholder
  ABSTRACT SUPERTYPE ;
END_ENTITY;

ENTITY Risk_status;
  name : STRING;
  description : OPTIONAL STRING;
END_ENTITY;

ENTITY Risk_transfer
  SUBTYPE OF (Risk_treatment);
END_ENTITY;

ENTITY Risk_treatment;
  name : STRING;
  description : OPTIONAL STRING;
  risk_analysis : Risk_analysis;
  primary_objective : mitigation_select;
  secondary_objectives : SET[0:?] OF mitigation_select;
END_ENTITY;

ENTITY Scheme
  SUBTYPE OF (Activity_method);
END_ENTITY;

ENTITY Scheme_entry
  SUBTYPE OF (Activity_method);
  scheme : Scheme_version;
END_ENTITY;

ENTITY Scheme_entry_assignment
  SUBTYPE OF (Applied_activity_method_assignment);
  SELF\Applied_activity_method_assignment.assigned_activity_method : Scheme_entry;
  SELF\Applied_activity_method_assignment.items : SET[1:?] OF scheme_entry_item_select;
DERIVE
  assigned_entry : SCHEME_ENTRY := SELF\Applied_activity_method_assignment.assigned_activity_method;
END_ENTITY;

ENTITY Scheme_entry_relationship
  SUBTYPE OF (Activity_method_relationship);
  SELF\Activity_method_relationship.relating_method : Scheme_entry;
  SELF\Activity_method_relationship.related_method : Scheme_entry;
DERIVE
  related_entry : SCHEME_ENTRY := SELF\Activity_method_relationship.related_method;
  relating_entry : SCHEME_ENTRY := SELF\Activity_method_relationship.relating_method;
END_ENTITY;

ENTITY Scheme_relationship
  SUBTYPE OF (Activity_method_relationship);
  SELF\Activity_method_relationship.relating_method : Scheme;
  SELF\Activity_method_relationship.related_method : Scheme;
DERIVE
  related_scheme : SCHEME := SELF\Activity_method_relationship.related_method;
  relating_scheme : SCHEME := SELF\Activity_method_relationship.relating_method;
END_ENTITY;

ENTITY Scheme_subject_assignment
  SUBTYPE OF (Applied_activity_method_assignment);
  SELF\Applied_activity_method_assignment.assigned_activity_method : Scheme;
  SELF\Applied_activity_method_assignment.items : SET[1:?] OF scheme_subject_select;
DERIVE
  assigned_scheme : SCHEME := SELF\Applied_activity_method_assignment.assigned_activity_method;
END_ENTITY;

ENTITY Scheme_version
  SUBTYPE OF (Activity_method);
  of_scheme : Scheme;
END_ENTITY;

ENTITY Scheme_version_assignment
  SUBTYPE OF (Applied_activity_method_assignment);
  SELF\Applied_activity_method_assignment.assigned_activity_method : Scheme_version;
  SELF\Applied_activity_method_assignment.items : SET[1:?] OF scheme_version_select;
DERIVE
  assigned_scheme_version : SCHEME_VERSION := SELF\Applied_activity_method_assignment.assigned_activity_method;
END_ENTITY;

ENTITY Scheme_version_relationship
  SUBTYPE OF (Activity_method_relationship);
  SELF\Activity_method_relationship.relating_method : Scheme_version;
  SELF\Activity_method_relationship.related_method : Scheme_version;
DERIVE
  related_scheme_version : SCHEME_VERSION := SELF\Activity_method_relationship.related_method;
  relating_scheme_version : SCHEME_VERSION := SELF\Activity_method_relationship.relating_method;
END_ENTITY;

ENTITY Security_classification;
  classification_level : STRING;
  description : OPTIONAL STRING;
END_ENTITY;

ENTITY Security_classification_assignment;
  classification : Security_classification;
  items : SET[1:?] OF security_classification_item;
END_ENTITY;

ENTITY Selected_item
  SUBTYPE OF (Class);
END_ENTITY;

ENTITY Selected_item_assignment;
  assigned_class : Selected_item;
  item : selected_item_select;
  item_context : SET[1:?] OF selected_item_context_items;
END_ENTITY;

ENTITY Sequence_of_state
  SUBTYPE OF (State_relationship);
DERIVE
  predecessor : SET[1:?] OF STATE := SELF\State_relationship.related;
  successor : SET[1:?] OF STATE := SELF\State_relationship.relating;
END_ENTITY;

ENTITY Sequence_of_state_definition
  SUBTYPE OF (State_definition_relationship);
DERIVE
  predecessor : SET[1:?] OF STATE_DEFINITION := SELF\State_definition_relationship.related;
  successor : SET[1:?] OF STATE_DEFINITION := SELF\State_definition_relationship.relating;
END_ENTITY;

ENTITY Sequencing_relationship
  SUBTYPE OF (Scheme_entry_relationship);
  sequencing_type : STRING;
  time_lag : OPTIONAL Time_interval;
END_ENTITY;

ENTITY Serial_effectivity
  SUBTYPE OF (Effectivity);
  start_id : STRING;
  end_id : OPTIONAL STRING;
END_ENTITY;

ENTITY Simultaneous_elements
  SUBTYPE OF (Concurrent_elements);
END_ENTITY;

ENTITY Solid_angle_unit
  SUBTYPE OF (Unit);
END_ENTITY;

ENTITY State
  SUPERTYPE OF (ONEOF (STATE_OBSERVED,
                       STATE_PREDICTED));
  name : STRING;
  description : OPTIONAL STRING;
END_ENTITY;

ENTITY State_assertion;
  name : STRING;
  description : OPTIONAL STRING;
  asserted_state : State;
  conformance_state : State_definition;
END_ENTITY;

ENTITY State_assessment;
  name : STRING;
  description : OPTIONAL STRING;
  assessed_state : State;
  comparable_state : State_definition;
END_ENTITY;

ENTITY State_cause_effect
  SUBTYPE OF (State_relationship);
DERIVE
  cause : SET[1:?] OF STATE := SELF\State_relationship.related;
  effect : SET[1:?] OF STATE := SELF\State_relationship.relating;
END_ENTITY;

ENTITY State_cause_effect_definition
  SUBTYPE OF (State_definition_relationship);
DERIVE
  cause : SET[1:?] OF STATE_DEFINITION := SELF\State_definition_relationship.related;
  effect : SET[1:?] OF STATE_DEFINITION := SELF\State_definition_relationship.relating;
END_ENTITY;

ENTITY State_complement_definition
  SUBTYPE OF (State_definition_relationship);
  set_2 : SET[1:?] OF State_definition;
DERIVE
  set_1 : SET[1:?] OF STATE_DEFINITION := SELF\State_definition_relationship.related;
  universe : SET[1:?] OF STATE_DEFINITION := SELF\State_definition_relationship.relating;
END_ENTITY;

ENTITY State_definition;
  name : STRING;
  description : OPTIONAL STRING;
END_ENTITY;

ENTITY State_definition_relationship;
  name : STRING;
  relating : SET[1:?] OF State_definition;
  description : OPTIONAL STRING;
  related : SET[1:?] OF State_definition;
END_ENTITY;

ENTITY State_definition_role;
  name : STRING;
  description : OPTIONAL STRING;
END_ENTITY;

ENTITY State_observed
  SUBTYPE OF (State);
END_ENTITY;

ENTITY State_predicted
  SUBTYPE OF (State);
END_ENTITY;

ENTITY State_predicted_to_observed
  SUBTYPE OF (State_relationship);
  SELF\State_relationship.relating : SET[1:?] OF State_observed;
  SELF\State_relationship.related : SET[1:?] OF State_predicted;
DERIVE
  observed_state : SET[1:?] OF STATE_OBSERVED := SELF\State_relationship.relating;
  predicted_state : SET[1:?] OF STATE_PREDICTED := SELF\State_relationship.related;
END_ENTITY;

ENTITY State_proper_subset_definition
  SUBTYPE OF (State_definition_relationship);
DERIVE
  proper_subset : SET[1:?] OF STATE_DEFINITION := SELF\State_definition_relationship.related;
  proper_superset : SET[1:?] OF STATE_DEFINITION := SELF\State_definition_relationship.relating;
END_ENTITY;

ENTITY State_relationship;
  name : STRING;
  description : OPTIONAL STRING;
  relating : SET[1:?] OF State;
  related : SET[1:?] OF State;
END_ENTITY;

ENTITY State_role;
  name : STRING;
  description : OPTIONAL STRING;
END_ENTITY;

ENTITY State_subset_definition
  SUBTYPE OF (State_definition_relationship);
DERIVE
  subset : SET[1:?] OF STATE_DEFINITION := SELF\State_definition_relationship.related;
  superset : SET[1:?] OF STATE_DEFINITION := SELF\State_definition_relationship.relating;
END_ENTITY;

ENTITY State_symptom_definition
  SUBTYPE OF (State_definition_relationship);
DERIVE
  symptom_cause : SET[1:?] OF STATE_DEFINITION := SELF\State_definition_relationship.related;
  symptom_effect : SET[1:?] OF STATE_DEFINITION := SELF\State_definition_relationship.relating;
END_ENTITY;

ENTITY State_transition
  SUBTYPE OF (State_relationship);
DERIVE
  end_state : SET[1:?] OF STATE := SELF\State_relationship.relating;
  start_state : SET[1:?] OF STATE := SELF\State_relationship.related;
END_ENTITY;

ENTITY State_transition_definition
  SUBTYPE OF (State_definition_relationship);
DERIVE
  end_state : SET[1:?] OF STATE_DEFINITION := SELF\State_definition_relationship.relating;
  start_state : SET[1:?] OF STATE_DEFINITION := SELF\State_definition_relationship.related;
END_ENTITY;

ENTITY String_representation_item
  SUBTYPE OF (Representation_item);
  string_value : STRING;
END_ENTITY;

ENTITY Structured_task_element
  ABSTRACT SUPERTYPE OF (ONEOF (CONCURRENT_ELEMENTS,
                                DECISION_POINT,
                                LOOPING_ELEMENT,
                                TASK_ELEMENT_SEQUENCE))
  SUBTYPE OF (Task_element);
END_ENTITY;

ENTITY Supplied_part_relationship
  SUBTYPE OF (Product_version_relationship);
WHERE
  WR1: SELF\Product_version_relationship.relation_type IN ['supplied item', 'supplied document'];
END_ENTITY;

ENTITY Task_element
  ABSTRACT SUPERTYPE OF ( (ONEOF (END_TASK,
                                  EXIT_LOOP,
                                  STRUCTURED_TASK_ELEMENT,
                                  TASK_STEP) )
                        ANDOR (ONEOF (END_TASK,
                             EXIT_LOOP,
                             STRUCTURED_TASK_ELEMENT,
                             TASK_ELEMENT_LEVELS,
                             TASK_INVOCATION,
                             TASK_STEP) ) )
  SUBTYPE OF (Activity_method);
END_ENTITY;

ENTITY Task_element_assignment
  SUBTYPE OF (Applied_activity_method_assignment);
  SELF\Applied_activity_method_assignment.assigned_activity_method : Task_element;
  SELF\Applied_activity_method_assignment.items : SET[1:?] OF task_item;
DERIVE
  assigned_task_element : TASK_ELEMENT := SELF\Applied_activity_method_assignment.assigned_activity_method;
END_ENTITY;

ENTITY Task_element_levels
  SUBTYPE OF (Task_element);
  alternatives : SET[2:?] OF Task_element;
END_ENTITY;

ENTITY Task_element_relationship
  SUBTYPE OF (Activity_method_relationship);
  SELF\Activity_method_relationship.relating_method : Task_element;
  SELF\Activity_method_relationship.related_method : Task_element;
END_ENTITY;

ENTITY Task_element_sequence
  SUBTYPE OF (Structured_task_element);
  elements : LIST[2:?] OF Task_element;
END_ENTITY;

ENTITY Task_element_state_relationship;
  state : state_or_state_definition_select;
  task_element : Task_element;
END_ENTITY;

ENTITY Task_invocation
  SUBTYPE OF (Task_element);
  task_method : method_or_method_version;
END_ENTITY;

ENTITY Task_method
  SUBTYPE OF (Activity_method);
  objective : SET[0:?] OF Task_objective;
END_ENTITY;

ENTITY Task_method_assignment
  SUBTYPE OF (Applied_activity_method_assignment);
  SELF\Applied_activity_method_assignment.assigned_activity_method : Task_method;
  SELF\Applied_activity_method_assignment.items : SET[1:?] OF task_item;
END_ENTITY;

ENTITY Task_method_relationship
  SUBTYPE OF (Activity_method_relationship);
  SELF\Activity_method_relationship.related_method : Task_method;
  SELF\Activity_method_relationship.relating_method : Task_method;
END_ENTITY;

ENTITY Task_method_state_relationship;
  state : state_or_state_definition_select;
  task_method : Task_method_version;
END_ENTITY;

ENTITY Task_method_version
  SUBTYPE OF (Activity_method);
  content : OPTIONAL Task_element;
  of_task_method : Task_method;
END_ENTITY;

ENTITY Task_method_version_assignment
  SUBTYPE OF (Applied_activity_method_assignment);
  SELF\Applied_activity_method_assignment.assigned_activity_method : Task_method_version;
  SELF\Applied_activity_method_assignment.items : SET[1:?] OF task_item;
DERIVE
  assigned_task_method : TASK_METHOD_VERSION := SELF\Applied_activity_method_assignment.assigned_activity_method;
END_ENTITY;

ENTITY Task_method_version_relationship
  SUBTYPE OF (Activity_method_relationship);
  SELF\Activity_method_relationship.related_method : Task_method_version;
  SELF\Activity_method_relationship.relating_method : Task_method_version;
DERIVE
  related_task_method : TASK_METHOD_VERSION := SELF\Activity_method_relationship.related_method;
  relating_task_method : TASK_METHOD_VERSION := SELF\Activity_method_relationship.relating_method;
END_ENTITY;

ENTITY Task_objective;
  name : STRING;
  description : STRING;
END_ENTITY;

ENTITY Task_objective_state_relationship;
  state : state_or_state_definition_select;
  task_objective : Task_objective;
END_ENTITY;

ENTITY Task_step
  SUBTYPE OF (Task_element);
  SELF\Activity_method.description : STRING;
DERIVE
  step_text : STRING := SELF\Activity_method.description;
END_ENTITY;

ENTITY Thermodynamic_temperature_unit
  SUBTYPE OF (Unit);
END_ENTITY;

ENTITY Time_interval;
  id : STRING;
  name : STRING;
  description : OPTIONAL STRING;
END_ENTITY;

ENTITY Time_interval_assignment;
  assigned_time_interval : Time_interval;
  role : Time_interval_role;
  items : SET[1:?] OF time_interval_item;
END_ENTITY;

ENTITY Time_interval_effectivity
  SUBTYPE OF (Effectivity);
  effectivity_period : Time_interval;
END_ENTITY;

ENTITY Time_interval_relationship;
  relation_type : STRING;
  description : STRING;
  relating_time_interval : Time_interval;
  related_time_interval : Time_interval;
END_ENTITY;

ENTITY Time_interval_role;
  name : STRING;
  description : STRING;
END_ENTITY;

ENTITY Time_interval_with_bounds
  SUBTYPE OF (Time_interval);
  primary_bound : OPTIONAL date_or_event;
  secondary_bound : OPTIONAL date_or_event;
  duration_from_primary_bound : OPTIONAL Duration;
WHERE
  WR1: NOT (EXISTS (secondary_bound) AND EXISTS (duration_from_primary_bound));
  WR2: EXISTS (primary_bound) OR EXISTS (secondary_bound);
END_ENTITY;

ENTITY Time_offset;
  hour_offset : INTEGER;
  minute_offset : OPTIONAL INTEGER;
  sense : offset_orientation;
DERIVE
  actual_minute_offset : INTEGER := NVL(minute_offset,0);
WHERE
  WR1: { 0 <= hour_offset < 24 };
  WR2: { 0 <= actual_minute_offset <= 59 };
  WR3: NOT (((hour_offset <> 0) OR (actual_minute_offset <>0)) AND (sense = exact));
END_ENTITY;

ENTITY Time_unit
  SUBTYPE OF (Unit);
END_ENTITY;

ENTITY Type_of_person;
  name : STRING;
  description : OPTIONAL STRING;
  has : SET[0:?] OF Type_of_person_definition;
END_ENTITY;

ENTITY Type_of_person_assignment;
  assigned_type_of_person : Type_of_person;
  items : SET[1:?] OF type_of_person_item_select;
  role : STRING;
END_ENTITY;

ENTITY Type_of_person_definition;
  name : STRING;
  description : OPTIONAL STRING;
END_ENTITY;

ENTITY Type_of_person_definition_relationship;
  name : STRING;
  description : OPTIONAL STRING;
  relating : Type_of_person_definition;
  related : Type_of_person_definition;
END_ENTITY;

ENTITY Type_of_person_definition_required_attributes_relationship;
  assigned_required_attributes : Type_of_person_definition;
  required_attributes : SET[0:?] OF defined_attributes;
END_ENTITY;

ENTITY Uncertainty_with_unit
  SUBTYPE OF (Value_with_unit);
  name : STRING;
  description : OPTIONAL STRING;
END_ENTITY;

ENTITY Unit
  SUPERTYPE OF (ONEOF (AMOUNT_OF_SUBSTANCE_UNIT,
                       ELECTRIC_CURRENT_UNIT,
                       LENGTH_UNIT,
                       LUMINOUS_INTENSITY_UNIT,
                       MASS_UNIT,
                       PLANE_ANGLE_UNIT,
                       RATIO_UNIT,
                       SOLID_ANGLE_UNIT,
                       THERMODYNAMIC_TEMPERATURE_UNIT,
                       TIME_UNIT));
  name : STRING;
  si_unit : BOOLEAN;
END_ENTITY;

ENTITY Value_function;
  function_element : LIST[1:?] OF Function_value_pair;
END_ENTITY;

ENTITY Value_with_unit;
  unit : Unit;
  value_component : measure_value;
END_ENTITY;

ENTITY View_definition_context;
  application_domain : STRING;
  life_cycle_stage : STRING;
  description : OPTIONAL STRING;
WHERE
  WR1: (SIZEOF (USEDIN(SELF, 'PROGRAM_MANAGEMENT_ARM_LF.' +'PRODUCT_VIEW_DEFINITION.INITIAL_CONTEXT')) > 0) OR(SIZEOF (USEDIN(SELF, 'PROGRAM_MANAGEMENT_ARM_LF.' +'PRODUCT_VIEW_DEFINITION.ADDITIONAL_CONTEXTS')) > 0);
END_ENTITY;

ENTITY View_definition_relationship;
  id : OPTIONAL STRING;
  relation_type : OPTIONAL STRING;
  description : OPTIONAL STRING;
  relating_view : Product_view_definition;
  related_view : Product_view_definition;
END_ENTITY;

ENTITY View_definition_usage
  SUBTYPE OF (View_definition_relationship);
END_ENTITY;

ENTITY Work_order;
  name : STRING;
  description : OPTIONAL STRING;
  in_response_to : SET[0:?] OF Work_request;
END_ENTITY;

ENTITY Work_output;
  name : STRING;
  description : OPTIONAL STRING;
  quantity : OPTIONAL Value_with_unit;
  output_item : OPTIONAL work_output_item;
END_ENTITY;

ENTITY Work_output_assignment;
  assigned_output : Work_output;
  item : work_item;
END_ENTITY;

ENTITY Work_output_relationship;
  name : STRING;
  description : OPTIONAL STRING;
  relating : Work_output;
  related : Work_output;
END_ENTITY;

ENTITY Work_request;
  request_id : STRING;
  version_id : STRING;
  description : OPTIONAL STRING;
  purpose : STRING;
END_ENTITY;

ENTITY Work_request_status;
  status : STRING;
  work_request : Work_request;
END_ENTITY;

ENTITY Xor_state_cause_effect_definition
  SUBTYPE OF (State_cause_effect_definition);
END_ENTITY;

RULE document_definition_constraint FOR
(Product_view_definition);
WHERE
  WR1: SIZEOF (QUERY (dd <* Product_view_definition | (NOT ('PROGRAM_MANAGEMENT_ARM_LF.' + 'DOCUMENT_DEFINITION' IN TYPEOF (dd))) AND ('PROGRAM_MANAGEMENT_ARM_LF.' + 'DOCUMENT_VERSION' IN TYPEOF (dd.defined_version)))) =0;
END_RULE;

RULE document_version_constraint FOR
(Product_version);
WHERE
  WR1: SIZEOF (QUERY (pv <* Product_version | (NOT ('PROGRAM_MANAGEMENT_ARM_LF.' + 'DOCUMENT_VERSION' IN TYPEOF (pv))) AND ('PROGRAM_MANAGEMENT_ARM_LF.' + 'DOCUMENT' IN TYPEOF (pv.of_product)))) = 0;
END_RULE;

END_SCHEMA;  -- Program_management_arm_LF


© ISO — All rights reserved