Application module: AP233 systems engineering ISO/TS 10303-433:2011-10(E)
© ISO

Cover page
Table of contents
Copyright
Foreword
Introduction
1 Scope
2 Normative references
3 Terms, definitions and abbreviated terms
    3.1 Terms and definitions
    3.2 Abbreviated terms

4 Information requirements
   4.1 Required AM ARMs
   4.2 ARM type definitions
5 Module interpreted model
   5.1 Mapping specification
   5.2 MIM EXPRESS short listing
     5.2.1 MIM type definitions

A MIM short names
B Information object registration
C ARM EXPRESS-G   EXPRESS-G
D MIM EXPRESS-G   EXPRESS-G
E Computer interpretable listings
F Application module implementation and usage guide
G Change history
Bibliography
Index

(*
ISO TC184/SC4/WG3 N2720 - ISO/TS 10303-433 AP233 systems engineering - EXPRESS ARM Long form
Supersedes ISO TC184/SC4/WG3 N2472
*)



SCHEMA Ap233_systems_engineering_arm_LF;


CONSTANT
  pre_defined_type_qualifiers : SET OF STRING :=
   ['minimum',
     'maximum',
     'nominal',
     'specified',
     'typical',
     'calculated',
     'designed',
     'estimated',
     'measured',
     'required',
     'set point',
     'basic',
     'lower deviation',
     'upper deviation'];
END_CONSTANT;

TYPE activity_item = SELECT
   (Activity,
    Activity_method,
    Activity_property,
    Analysis,
    Analysis_discipline_definition,
    Analysis_version,
    Applied_activity_assignment,
    Applied_state_assignment,
    Applied_state_definition_assignment,
    Approval,
    Assembly_component_relationship,
    Assigned_document_property,
    Assigned_property,
    Behaviour_description_association,
    Certification,
    Condition,
    Contract,
    Contract_relationship,
    Descriptive_document_property,
    Document,
    Document_definition,
    Document_version,
    Effectivity,
    Event,
    Event_assignment,
    Evidence,
    File,
    Independent_property,
    Interface_connection,
    Interface_connector_occurrence,
    Interface_definition_connection,
    Issue,
    Item_usage_effectivity,
    Justification,
    Location,
    Location_representation,
    Managed_resource,
    Numerical_document_property,
    Observation_consequence,
    Organization,
    Person,
    Person_in_organization,
    Position,
    Position_group,
    Product,
    Product_concept,
    Product_configuration,
    Product_group,
    Product_group_membership,
    Product_version,
    Product_version_relationship,
    Product_view_definition,
    Project,
    Required_resource,
    Required_resource_assignment,
    Requirement_assignment,
    Requirement_collection_relationship,
    Requirement_source,
    Requirement_version_relationship,
    Resource_as_realized,
    Resource_event,
    Resource_item,
    Resource_item_realization,
    Resource_property,
    Risk_impact_assignment,
    Risk_perception_source_assignment,
    Scheme_entry_assignment,
    State,
    State_assertion,
    State_assessment,
    State_definition,
    State_relationship,
    Task_io,
    Task_io_hierarchy,
    Tracing_relationship,
    Validation,
    Verification,
    View_definition_relationship,
    Work_order,
    Work_output,
    Work_request);
END_TYPE;

TYPE activity_method_item = SELECT
   (Activity,
    Activity_method,
    Activity_property,
    Analysis_assignment,
    Applied_activity_assignment,
    Approval_assignment,
    Assembly_component_relationship,
    Assigned_property,
    Behaviour_description_association,
    Breakdown_element,
    Breakdown_element_definition,
    Breakdown_element_usage,
    Breakdown_element_version,
    Certification,
    Condition,
    Contract,
    Contract_relationship,
    Date_or_date_time_assignment,
    Event,
    File,
    In_zone,
    Interface_connection,
    Interface_connector_occurrence,
    Interface_definition_connection,
    Justification,
    Location,
    Managed_resource,
    Observation,
    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_group_membership,
    Product_version,
    Product_version_relationship,
    Product_view_definition,
    Project,
    Required_resource,
    Required_resource_assignment,
    Requirement_assignment,
    Resource_as_realized,
    Resource_event,
    Resource_item,
    Resource_item_realization,
    Resource_property,
    Risk_impact_assignment,
    Risk_perception,
    Risk_perception_source_assignment,
    Scheme_entry,
    Security_classification,
    State_definition,
    State_relationship,
    Task_io,
    Task_io_hierarchy,
    Task_method,
    Task_method_version,
    Task_objective,
    Type_of_person,
    Type_of_person_definition,
    Verification,
    View_definition_relationship,
    Work_output,
    Work_output_assignment);
END_TYPE;

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

TYPE affected_item_select = SELECT
   (Activity,
    Activity_method,
    Activity_property,
    Analysis_assignment,
    Approval_assignment,
    Assembly_component_relationship,
    Assigned_property,
    Behaviour_description_association,
    Certification_assignment,
    Contract,
    Contract_relationship,
    Document_assignment,
    Event_assignment,
    File,
    Group,
    Information_usage_right,
    Interface_connection,
    Interface_connector_occurrence,
    Interface_definition_connection,
    Issue,
    Justification_assignment,
    Organization,
    Organization_or_person_in_organization_assignment,
    Person,
    Person_in_organization,
    Product,
    Product_configuration,
    Product_group,
    Product_version,
    Product_view_definition,
    Project_assignment,
    Resource_item,
    Resource_item_realization,
    Resource_property,
    Risk,
    Risk_perception_source_assignment,
    State,
    State_definition,
    Verification,
    View_definition_relationship,
    Work_request);
END_TYPE;

TYPE alias_identification_item = identification_item ;
WHERE
  wr1: NOT ('ALIAS_IDENTIFICATION_ARM.ACTIVITY' IN TYPEOF(SELF));
  wr2: NOT ('ALIAS_IDENTIFICATION_ARM.ACTIVITY_METHOD' IN TYPEOF(SELF));
  wr3: NOT ('ALIAS_IDENTIFICATION_ARM.ACTIVITY_METHOD_REALIZATION' IN TYPEOF(SELF));
  wr4: NOT ('ALIAS_IDENTIFICATION_ARM.ACTIVITY_METHOD_REALIZATION_RELATIONSHIP' IN TYPEOF(SELF));
  wr5: NOT ('ALIAS_IDENTIFICATION_ARM.ACTIVITY_METHOD_RELATIONSHIP' IN TYPEOF(SELF));
  wr6: NOT ('ALIAS_IDENTIFICATION_ARM.ACTIVITY_PROPERTY' IN TYPEOF(SELF));
  wr7: NOT ('ALIAS_IDENTIFICATION_ARM.ACTIVITY_RELATIONSHIP' IN TYPEOF(SELF));
  wr8: NOT ('ALIAS_IDENTIFICATION_ARM.ADDRESS' IN TYPEOF(SELF));
  wr9: NOT ('ALIAS_IDENTIFICATION_ARM.AFFECTED_ITEMS_ASSIGNMENT' IN TYPEOF(SELF));
  wr10: NOT ('ALIAS_IDENTIFICATION_ARM.ANALYSIS' IN TYPEOF(SELF));
  wr11: NOT ('ALIAS_IDENTIFICATION_ARM.ANALYSIS_VERSION' IN TYPEOF(SELF));
  wr12: NOT ('ALIAS_IDENTIFICATION_ARM.APPLIED_ACTIVITY_ASSIGNMENT' IN TYPEOF(SELF));
  wr13: NOT ('ALIAS_IDENTIFICATION_ARM.APPLIED_ACTIVITY_METHOD_ASSIGNMENT' IN TYPEOF(SELF));
  wr14: NOT ('ALIAS_IDENTIFICATION_ARM.APPLIED_STATE_ASSIGNMENT' IN TYPEOF(SELF));
  wr15: NOT ('ALIAS_IDENTIFICATION_ARM.APPLIED_STATE_DEFINITION_ASSIGNMENT' IN TYPEOF(SELF));
  wr16: NOT ('ALIAS_IDENTIFICATION_ARM.APPROVAL' IN TYPEOF(SELF));
  wr17: NOT ('ALIAS_IDENTIFICATION_ARM.ASSEMBLY_COMPONENT_RELATIONSHIP' IN TYPEOF(SELF));
  wr18: NOT ('ALIAS_IDENTIFICATION_ARM.ASSEMBLY_RELATIONSHIP_SUBSTITUTION' IN TYPEOF(SELF));
  wr19: NOT ('ALIAS_IDENTIFICATION_ARM.ASSIGNED_PROPERTY' IN TYPEOF(SELF));
  wr20: NOT ('ALIAS_IDENTIFICATION_ARM.ASSUMPTION' IN TYPEOF(SELF));
  wr21: NOT ('ALIAS_IDENTIFICATION_ARM.ASSUMPTION_RELATIONSHIP' IN TYPEOF(SELF));
  wr22: NOT ('ALIAS_IDENTIFICATION_ARM.BEHAVIOUR' IN TYPEOF(SELF));
  wr23: NOT ('ALIAS_IDENTIFICATION_ARM.BEHAVIOUR_VERSION' IN TYPEOF(SELF));
  wr24: NOT ('ALIAS_IDENTIFICATION_ARM.BEHAVIOUR_VIEW_DEFINITION' IN TYPEOF(SELF));
  wr25: NOT ('ALIAS_IDENTIFICATION_ARM.BREAKDOWN' IN TYPEOF(SELF));
  wr26: NOT ('ALIAS_IDENTIFICATION_ARM.BREAKDOWN_ELEMENT' IN TYPEOF(SELF));
  wr27: NOT ('ALIAS_IDENTIFICATION_ARM.BREAKDOWN_ELEMENT_DEFINITION' IN TYPEOF(SELF));
  wr28: NOT ('ALIAS_IDENTIFICATION_ARM.BREAKDOWN_ELEMENT_VERSION' IN TYPEOF(SELF));
  wr29: NOT ('ALIAS_IDENTIFICATION_ARM.BREAKDOWN_VERSION' IN TYPEOF(SELF));
  wr30: NOT ('ALIAS_IDENTIFICATION_ARM.CERTIFICATION' IN TYPEOF(SELF));
  wr31: NOT ('ALIAS_IDENTIFICATION_ARM.CLASS' IN TYPEOF(SELF));
  wr32: NOT ('ALIAS_IDENTIFICATION_ARM.CONDITION' IN TYPEOF(SELF));
  wr33: NOT ('ALIAS_IDENTIFICATION_ARM.CONDITION_EVALUATION' IN TYPEOF(SELF));
  wr34: NOT ('ALIAS_IDENTIFICATION_ARM.CONTRACT_RELATIONSHIP' IN TYPEOF(SELF));
  wr35: NOT ('ALIAS_IDENTIFICATION_ARM.DEFINED_STATE_RELATIONSHIP' IN TYPEOF(SELF));
  wr36: NOT ('ALIAS_IDENTIFICATION_ARM.DESCRIPTION_TEXT_ASSIGNMENT' IN TYPEOF(SELF));
  wr37: NOT ('ALIAS_IDENTIFICATION_ARM.DESCRIPTIVE_DOCUMENT_PROPERTY' IN TYPEOF(SELF));
  wr38: NOT ('ALIAS_IDENTIFICATION_ARM.DIRECTED_ACTIVITY' IN TYPEOF(SELF));
  wr39: NOT ('ALIAS_IDENTIFICATION_ARM.DISPOSITION' IN TYPEOF(SELF));
  wr40: NOT ('ALIAS_IDENTIFICATION_ARM.DOCUMENT_ASSIGNMENT' IN TYPEOF(SELF));
  wr41: NOT ('ALIAS_IDENTIFICATION_ARM.DOCUMENT_DEFINITION_RELATIONSHIP' IN TYPEOF(SELF));
  wr42: NOT ('ALIAS_IDENTIFICATION_ARM.EFFECTIVITY' IN TYPEOF(SELF));
  wr43: NOT ('ALIAS_IDENTIFICATION_ARM.ENVIRONMENT_ASSIGNMENT' IN TYPEOF(SELF));
  wr44: NOT ('ALIAS_IDENTIFICATION_ARM.ENVIRONMENT_DEFINITION' IN TYPEOF(SELF));
  wr45: NOT ('ALIAS_IDENTIFICATION_ARM.ENVIRONMENT_DEFINITION_VERSION' IN TYPEOF(SELF));
  wr46: NOT ('ALIAS_IDENTIFICATION_ARM.ENVIRONMENT_VIEW_DEFINITION_RELATIONSHIP' IN TYPEOF(SELF));
  wr47: NOT ('ALIAS_IDENTIFICATION_ARM.EVENT' IN TYPEOF(SELF));
  wr48: NOT ('ALIAS_IDENTIFICATION_ARM.EVIDENCE' IN TYPEOF(SELF));
  wr49: NOT ('ALIAS_IDENTIFICATION_ARM.EXPERIENCE_INSTANCE' IN TYPEOF(SELF));
  wr50: NOT ('ALIAS_IDENTIFICATION_ARM.EXPERIENCE_TYPE' IN TYPEOF(SELF));
  wr51: NOT ('ALIAS_IDENTIFICATION_ARM.EXTERNAL_CLASS_LIBRARY' IN TYPEOF(SELF));
  wr52: NOT ('ALIAS_IDENTIFICATION_ARM.EXTERNAL_SOURCE_IDENTIFICATION' IN TYPEOF(SELF));
  wr53: NOT ('ALIAS_IDENTIFICATION_ARM.FILE' IN TYPEOF(SELF));
  wr54: NOT ('ALIAS_IDENTIFICATION_ARM.GROUP' IN TYPEOF(SELF));
  wr55: NOT ('ALIAS_IDENTIFICATION_ARM.GROUP_RELATIONSHIP' IN TYPEOF(SELF));
  wr56: NOT ('ALIAS_IDENTIFICATION_ARM.IDENTIFICATION_RELATIONSHIP' IN TYPEOF(SELF));
  wr57: NOT ('ALIAS_IDENTIFICATION_ARM.INDEPENDENT_PROPERTY' IN TYPEOF(SELF));
  wr58: NOT ('ALIAS_IDENTIFICATION_ARM.INDEPENDENT_PROPERTY_RELATIONSHIP' IN TYPEOF(SELF));
  wr59: NOT ('ALIAS_IDENTIFICATION_ARM.INFORMATION_RIGHT' IN TYPEOF(SELF));
  wr60: NOT ('ALIAS_IDENTIFICATION_ARM.INFORMATION_USAGE_RIGHT' IN TYPEOF(SELF));
  wr61: NOT ('ALIAS_IDENTIFICATION_ARM.INFORMATION_USAGE_RIGHT_RELATIONSHIP' IN TYPEOF(SELF));
  wr62: NOT ('ALIAS_IDENTIFICATION_ARM.INTERFACE_CONNECTION' IN TYPEOF(SELF));
  wr63: NOT ('ALIAS_IDENTIFICATION_ARM.INTERFACE_CONNECTOR_OCCURRENCE' IN TYPEOF(SELF));
  wr64: NOT ('ALIAS_IDENTIFICATION_ARM.INTERFACE_DEFINITION_CONNECTION' IN TYPEOF(SELF));
  wr65: NOT ('ALIAS_IDENTIFICATION_ARM.INTERFACE_DEFINITION_FOR' IN TYPEOF(SELF));
  wr66: NOT ('ALIAS_IDENTIFICATION_ARM.ITEM_SHAPE' IN TYPEOF(SELF));
  wr67: NOT ('ALIAS_IDENTIFICATION_ARM.JUSTIFICATION' IN TYPEOF(SELF));
  wr68: NOT ('ALIAS_IDENTIFICATION_ARM.JUSTIFICATION_ASSIGNMENT' IN TYPEOF(SELF));
  wr69: NOT ('ALIAS_IDENTIFICATION_ARM.JUSTIFICATION_RELATIONSHIP' IN TYPEOF(SELF));
  wr70: NOT ('ALIAS_IDENTIFICATION_ARM.JUSTIFICATION_SUPPORT_ASSIGNMENT' IN TYPEOF(SELF));
  wr71: NOT ('ALIAS_IDENTIFICATION_ARM.LOCATION' IN TYPEOF(SELF));
  wr72: NOT ('ALIAS_IDENTIFICATION_ARM.LOCATION_REPRESENTATION' IN TYPEOF(SELF));
  wr73: NOT ('ALIAS_IDENTIFICATION_ARM.MANAGED_RESOURCE' IN TYPEOF(SELF));
  wr74: NOT ('ALIAS_IDENTIFICATION_ARM.MARKET' IN TYPEOF(SELF));
  wr75: NOT ('ALIAS_IDENTIFICATION_ARM.NUMERICAL_DOCUMENT_PROPERTY' IN TYPEOF(SELF));
  wr76: NOT ('ALIAS_IDENTIFICATION_ARM.OBSERVATION' IN TYPEOF(SELF));
  wr77: NOT ('ALIAS_IDENTIFICATION_ARM.OBSERVATION_ASSIGNMENT' IN TYPEOF(SELF));
  wr78: NOT ('ALIAS_IDENTIFICATION_ARM.OBSERVATION_CONSEQUENCE' IN TYPEOF(SELF));
  wr79: NOT ('ALIAS_IDENTIFICATION_ARM.OBSERVED_ENVIRONMENT' IN TYPEOF(SELF));
  wr80: NOT ('ALIAS_IDENTIFICATION_ARM.OBSERVED_ENVIRONMENT_ASSIGNMENT' IN TYPEOF(SELF));
  wr81: NOT ('ALIAS_IDENTIFICATION_ARM.OBSERVED_ENVIRONMENT_VERSION' IN TYPEOF(SELF));
  wr82: NOT ('ALIAS_IDENTIFICATION_ARM.OBSERVED_ENVIRONMENT_VIEW_DEFINITION_RELATIONSHIP' IN TYPEOF(SELF));
  wr83: NOT ('ALIAS_IDENTIFICATION_ARM.ORGANIZATION_OR_PERSON_IN_ORGANIZATION_ASSIGNMENT' IN TYPEOF(SELF));
  wr84: NOT ('ALIAS_IDENTIFICATION_ARM.ORGANIZATION_TYPE' IN TYPEOF(SELF));
  wr85: NOT ('ALIAS_IDENTIFICATION_ARM.ORGANIZATIONAL_LOCATION_IDENTIFICATION' IN TYPEOF(SELF));
  wr86: NOT ('ALIAS_IDENTIFICATION_ARM.PERSON' IN TYPEOF(SELF));
  wr87: NOT ('ALIAS_IDENTIFICATION_ARM.PERSON_IN_ORGANIZATION' IN TYPEOF(SELF));
  wr88: NOT ('ALIAS_IDENTIFICATION_ARM.PERSON_OR_ORGANIZATION_OR_PERSON_IN_ORGANIZATION_IN_POSITION' IN TYPEOF(SELF));
  wr89: NOT ('ALIAS_IDENTIFICATION_ARM.PERSON_OR_ORGANIZATION_OR_PERSON_IN_ORGANIZATION_IN_POSITION_RELATIONSHIP' IN TYPEOF(SELF));
  wr90: NOT ('ALIAS_IDENTIFICATION_ARM.POSITION' IN TYPEOF(SELF));
  wr91: NOT ('ALIAS_IDENTIFICATION_ARM.POSITION_ASSIGNMENT' IN TYPEOF(SELF));
  wr92: NOT ('ALIAS_IDENTIFICATION_ARM.POSITION_GROUP' IN TYPEOF(SELF));
  wr93: NOT ('ALIAS_IDENTIFICATION_ARM.POSITION_ROLE' IN TYPEOF(SELF));
  wr94: NOT ('ALIAS_IDENTIFICATION_ARM.PROBABILITY_DISTRIBUTION' IN TYPEOF(SELF));
  wr95: NOT ('ALIAS_IDENTIFICATION_ARM.PRODUCT' IN TYPEOF(SELF));
  wr96: NOT ('ALIAS_IDENTIFICATION_ARM.PRODUCT_AS_INDIVIDUAL' IN TYPEOF(SELF));
  wr97: NOT ('ALIAS_IDENTIFICATION_ARM.PRODUCT_AS_INDIVIDUAL_VERSION' IN TYPEOF(SELF));
  wr98: NOT ('ALIAS_IDENTIFICATION_ARM.PRODUCT_AS_INDIVIDUAL_VIEW' IN TYPEOF(SELF));
  wr99: NOT ('ALIAS_IDENTIFICATION_ARM.PRODUCT_AS_PLANNED' IN TYPEOF(SELF));
  wr100: NOT ('ALIAS_IDENTIFICATION_ARM.PRODUCT_AS_REALIZED' IN TYPEOF(SELF));
  wr101: NOT ('ALIAS_IDENTIFICATION_ARM.PRODUCT_CONCEPT' IN TYPEOF(SELF));
  wr102: NOT ('ALIAS_IDENTIFICATION_ARM.PRODUCT_CONFIGURATION' IN TYPEOF(SELF));
  wr103: NOT ('ALIAS_IDENTIFICATION_ARM.PRODUCT_GROUP' IN TYPEOF(SELF));
  wr104: NOT ('ALIAS_IDENTIFICATION_ARM.PRODUCT_GROUP_MEMBERSHIP' IN TYPEOF(SELF));
  wr105: NOT ('ALIAS_IDENTIFICATION_ARM.PRODUCT_GROUP_RELATIONSHIP' IN TYPEOF(SELF));
  wr106: NOT ('ALIAS_IDENTIFICATION_ARM.PRODUCT_RELATIONSHIP' IN TYPEOF(SELF));
  wr107: NOT ('ALIAS_IDENTIFICATION_ARM.PRODUCT_VERSION' IN TYPEOF(SELF));
  wr108: NOT ('ALIAS_IDENTIFICATION_ARM.PRODUCT_VIEW_DEFINITION' IN TYPEOF(SELF));
  wr109: NOT ('ALIAS_IDENTIFICATION_ARM.PROJECT' IN TYPEOF(SELF));
  wr110: NOT ('ALIAS_IDENTIFICATION_ARM.QUALIFICATION_ASSIGNMENT' IN TYPEOF(SELF));
  wr111: NOT ('ALIAS_IDENTIFICATION_ARM.QUALIFICATION_TYPE' IN TYPEOF(SELF));
  wr112: NOT ('ALIAS_IDENTIFICATION_ARM.REPRESENTATION' IN TYPEOF(SELF));
  wr113: NOT ('ALIAS_IDENTIFICATION_ARM.REPRESENTATION_ITEM' IN TYPEOF(SELF));
  wr114: NOT ('ALIAS_IDENTIFICATION_ARM.REQUIRED_RESOURCE' IN TYPEOF(SELF));
  wr115: NOT ('ALIAS_IDENTIFICATION_ARM.REQUIRED_RESOURCE_RELATIONSHIP' IN TYPEOF(SELF));
  wr116: NOT ('ALIAS_IDENTIFICATION_ARM.REQUIREMENT' IN TYPEOF(SELF));
  wr117: NOT ('ALIAS_IDENTIFICATION_ARM.REQUIREMENT_ASSIGNMENT' IN TYPEOF(SELF));
  wr118: NOT ('ALIAS_IDENTIFICATION_ARM.REQUIREMENT_SOURCE' IN TYPEOF(SELF));
  wr119: NOT ('ALIAS_IDENTIFICATION_ARM.REQUIREMENT_VERSION' IN TYPEOF(SELF));
  wr120: NOT ('ALIAS_IDENTIFICATION_ARM.REQUIREMENT_VERSION_RELATIONSHIP' IN TYPEOF(SELF));
  wr121: NOT ('ALIAS_IDENTIFICATION_ARM.REQUIREMENT_VIEW_DEFINITION' IN TYPEOF(SELF));
  wr122: NOT ('ALIAS_IDENTIFICATION_ARM.RESOURCE_AS_REALIZED' IN TYPEOF(SELF));
  wr123: NOT ('ALIAS_IDENTIFICATION_ARM.RESOURCE_EVENT' IN TYPEOF(SELF));
  wr124: NOT ('ALIAS_IDENTIFICATION_ARM.RESOURCE_ITEM' IN TYPEOF(SELF));
  wr125: NOT ('ALIAS_IDENTIFICATION_ARM.RESOURCE_ITEM_REALIZATION' IN TYPEOF(SELF));
  wr126: NOT ('ALIAS_IDENTIFICATION_ARM.RESOURCE_PROPERTY' IN TYPEOF(SELF));
  wr127: NOT ('ALIAS_IDENTIFICATION_ARM.RISK_IMPACT_ASSIGNMENT' IN TYPEOF(SELF));
  wr128: NOT ('ALIAS_IDENTIFICATION_ARM.RISK_PERCEPTION_SOURCE_ASSIGNMENT' IN TYPEOF(SELF));
  wr129: NOT ('ALIAS_IDENTIFICATION_ARM.SECURITY_CLASSIFICATION_ASSIGNMENT' IN TYPEOF(SELF));
  wr130: NOT ('ALIAS_IDENTIFICATION_ARM.SHAPE_ELEMENT_RELATIONSHIP' IN TYPEOF(SELF));
  wr131: NOT ('ALIAS_IDENTIFICATION_ARM.STATE' IN TYPEOF(SELF));
  wr132: NOT ('ALIAS_IDENTIFICATION_ARM.STATE_ASSERTION' IN TYPEOF(SELF));
  wr133: NOT ('ALIAS_IDENTIFICATION_ARM.STATE_ASSESSMENT' IN TYPEOF(SELF));
  wr134: NOT ('ALIAS_IDENTIFICATION_ARM.STATE_DEFINITION' IN TYPEOF(SELF));
  wr135: NOT ('ALIAS_IDENTIFICATION_ARM.STATE_DEFINITION_RELATIONSHIP' IN TYPEOF(SELF));
  wr136: NOT ('ALIAS_IDENTIFICATION_ARM.STATE_RELATIONSHIP' IN TYPEOF(SELF));
  wr137: NOT ('ALIAS_IDENTIFICATION_ARM.STATE_TRANSITION_DEFINITION' IN TYPEOF(SELF));
  wr138: NOT ('ALIAS_IDENTIFICATION_ARM.SYSTEM' IN TYPEOF(SELF));
  wr139: NOT ('ALIAS_IDENTIFICATION_ARM.SYSTEM_VERSION' IN TYPEOF(SELF));
  wr140: NOT ('ALIAS_IDENTIFICATION_ARM.TASK_ELEMENT_STATE_RELATIONSHIP' IN TYPEOF(SELF));
  wr141: NOT ('ALIAS_IDENTIFICATION_ARM.TASK_METHOD_ASSIGNMENT' IN TYPEOF(SELF));
  wr142: NOT ('ALIAS_IDENTIFICATION_ARM.TASK_METHOD_STATE_RELATIONSHIP' IN TYPEOF(SELF));
  wr143: NOT ('ALIAS_IDENTIFICATION_ARM.TASK_METHOD_VERSION_ASSIGNMENT' IN TYPEOF(SELF));
  wr144: NOT ('ALIAS_IDENTIFICATION_ARM.TASK_OBJECTIVE' IN TYPEOF(SELF));
  wr145: NOT ('ALIAS_IDENTIFICATION_ARM.TASK_OBJECTIVE_STATE_RELATIONSHIP' IN TYPEOF(SELF));
  wr146: NOT ('ALIAS_IDENTIFICATION_ARM.TYPE_OF_PERSON' IN TYPEOF(SELF));
  wr147: NOT ('ALIAS_IDENTIFICATION_ARM.TYPE_OF_PERSON_DEFINITION' IN TYPEOF(SELF));
  wr148: NOT ('ALIAS_IDENTIFICATION_ARM.VALIDATION' IN TYPEOF(SELF));
  wr149: NOT ('ALIAS_IDENTIFICATION_ARM.VERIFICATION' IN TYPEOF(SELF));
  wr150: NOT ('ALIAS_IDENTIFICATION_ARM.VIEW_DEFINITION_CONTEXT' IN TYPEOF(SELF));
  wr151: NOT ('ALIAS_IDENTIFICATION_ARM.VIEW_DEFINITION_RELATIONSHIP' IN TYPEOF(SELF));
  wr152: NOT ('ALIAS_IDENTIFICATION_ARM.VIEW_DEFINITION_USAGE' IN TYPEOF(SELF));
  wr153: NOT ('ALIAS_IDENTIFICATION_ARM.WORK_ORDER' IN TYPEOF(SELF));
  wr154: NOT ('ALIAS_IDENTIFICATION_ARM.WORK_OUTPUT' IN TYPEOF(SELF));
  wr155: NOT ('ALIAS_IDENTIFICATION_ARM.WORK_REQUEST' IN TYPEOF(SELF));
END_TYPE;

TYPE analysed_item = SELECT
   (Activity,
    Activity_method,
    Activity_method_realization_relationship,
    Activity_method_relationship,
    Activity_property,
    Activity_relationship,
    Alternate_product_relationship,
    Assembly_relationship_substitution,
    Assigned_property,
    Behaviour_description_association,
    behaviour_item,
    behaviour_model,
    Condition,
    Condition_relationship,
    Evidence,
    Interface_connection,
    Interface_connector_occurrence,
    Interface_definition_connection,
    Interface_definition_for,
    Managed_resource_relationship,
    Observation,
    Observation_consequence,
    Observation_relationship,
    Organization,
    Organization_relationship,
    Product,
    Product_concept,
    Product_design_to_individual,
    Product_design_version_to_individual,
    Product_group_relationship,
    Product_planned_to_realized,
    Product_relationship,
    Product_version,
    Product_version_relationship,
    Product_view_definition,
    Project_relationship,
    Requirement_assignment,
    Resource_event_relationship,
    Resource_item_relationship,
    Resource_property,
    State,
    State_assessment,
    State_definition,
    State_role,
    Validation,
    Verification,
    Verification_relationship,
    View_definition_context,
    View_definition_relationship,
    Work_output_assignment,
    Work_output_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,
    Activity_method_assignment,
    Activity_method_realization,
    Activity_method_realization_relationship,
    Activity_method_relationship,
    Activity_property,
    Address_assignment,
    Affected_items_assignment,
    Alternate_product_relationship,
    Analysis_discipline_definition,
    Analysis_version,
    Applied_activity_assignment,
    Applied_activity_method_assignment,
    Applied_information_usage_right,
    Applied_state_assignment,
    Applied_state_definition_assignment,
    Assembly_component_relationship,
    Assembly_relationship_substitution,
    Assigned_property,
    Assumption,
    Assumption_assignment,
    Assumption_relationship,
    Breakdown,
    Breakdown_element,
    Breakdown_element_definition,
    Breakdown_element_usage,
    Breakdown_element_version,
    Breakdown_version,
    Certification,
    Certification_assignment,
    Classification_assignment,
    Condition,
    Condition_assignment,
    Condition_evaluation,
    Condition_evaluation_assignment,
    Contract,
    Contract_assignment,
    Contract_relationship,
    Date_or_date_time_assignment,
    Descriptive_document_property,
    Digital_document_definition,
    Directed_activity,
    Document_assignment,
    Document_definition,
    Document_definition_relationship,
    Document_version,
    Effectivity,
    Effectivity_assignment,
    Event,
    Event_assignment,
    Evidence,
    Experience_gained,
    Experience_type,
    Group,
    Group_relationship,
    Identification_assignment,
    Identification_relationship,
    In_zone,
    Independent_property,
    Independent_property_relationship,
    Information_usage_right,
    Interface_connection,
    Interface_connector_occurrence,
    Interface_definition_connection,
    Interface_definition_for,
    Issue,
    Item_assumed,
    Item_usage_effectivity,
    Justification,
    Justification_assignment,
    Justification_relationship,
    Justification_support_assignment,
    Location_assignment,
    Managed_resource,
    Managed_resource_relationship,
    Numerical_document_property,
    Observation,
    Observation_assignment,
    Organization_or_person_in_organization_assignment,
    Organization_organization_type_relationship,
    Organization_relationship,
    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,
    Product_as_individual,
    Product_as_planned,
    Product_as_realized,
    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,
    Product_version_relationship,
    Product_view_definition,
    Project,
    Project_assignment,
    Qualification_assignment,
    Qualification_type,
    Required_resource,
    Required_resource_assignment,
    Required_resource_relationship,
    Requirement_assignment,
    Requirement_source,
    Resource_as_realized,
    Resource_as_realized_assignment,
    Resource_event,
    Resource_item,
    Resource_item_assignment,
    Resource_item_realization,
    Resource_item_relationship,
    Resource_property,
    Risk_impact_assignment,
    Risk_perception_source_assignment,
    Security_classification,
    Security_classification_assignment,
    Selected_item_assignment,
    State_assessment,
    State_definition,
    State_definition_relationship,
    State_relationship,
    Supplied_part_relationship,
    Task_element,
    Task_element_state_relationship,
    Task_method,
    Task_method_state_relationship,
    Task_method_version,
    Task_objective,
    Task_objective_state_relationship,
    Type_of_person,
    Type_of_person_assignment,
    Validation,
    Verification,
    Verification_relationship,
    View_definition_context,
    View_definition_relationship,
    Work_order,
    Work_output,
    Work_output_assignment,
    Work_request);
END_TYPE;

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

TYPE assigned_name_select = SELECT
   (Breakdown_element_realization,
    Event,
    External_class_library,
    Group,
    Group_relationship,
    Observation,
    Product,
    Product_view_definition);
END_TYPE;

TYPE assumed_item = SELECT
   (Activity,
    Activity_property,
    Applied_activity_assignment,
    Applied_activity_method_assignment,
    Applied_state_assignment,
    Approval,
    Approval_assignment,
    Assigned_property,
    Contract,
    Contract_assignment,
    Location,
    Location_assignment,
    Product,
    Product_concept,
    Product_configuration,
    Product_definition_element_relationship,
    Product_version,
    Project,
    Project_assignment,
    Requirement,
    Requirement_assignment,
    Resource_event,
    Resource_item,
    Resource_item_assignment,
    Resource_property,
    Risk_impact_assignment,
    View_definition_relationship,
    Work_order,
    Work_request);
END_TYPE;

TYPE assumption_item = SELECT
   (Activity,
    Approval,
    Contract,
    Location,
    Product,
    Product_concept,
    Product_version,
    Project,
    Requirement,
    Work_order,
    Work_request);
END_TYPE;

TYPE behaviour_item = SELECT
   (Behaviour_view_definition,
    State_definition);
END_TYPE;

TYPE behaviour_model = SELECT
   (Activity_method,
    Function_based_behaviour_model,
    State_based_behaviour_model,
    State_definition);
END_TYPE;

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

TYPE cartesian_transformation = SELECT
   (Cartesian_transformation_2d,
    Cartesian_transformation_3d);
END_TYPE;

TYPE certification_item = SELECT
   (Activity,
    Activity_method,
    Alternate_product_relationship,
    Analysis_assignment,
    Analysis_discipline_definition,
    Analysis_version,
    Applied_activity_method_assignment,
    Approving_person_organization,
    Assembly_component_relationship,
    Assembly_relationship_substitution,
    Assigned_property,
    behaviour_model,
    Breakdown,
    Document,
    Document_version,
    Evidence,
    Interface_connection,
    Interface_definition_connection,
    Justification,
    Product,
    Product_as_individual,
    Product_as_planned,
    Product_as_realized,
    Product_configuration,
    Product_group,
    Product_group_relationship,
    Product_version,
    Product_version_relationship,
    Project,
    Qualification_assignment,
    Resource_item,
    Resource_item_realization,
    State_definition,
    Task_element,
    Task_method,
    Task_method_version,
    Task_objective,
    View_definition_relationship,
    Work_output);
END_TYPE;

TYPE chained_geometric_model_link = SELECT
   (Geometric_coordinate_space,
    Geometric_model_relationship,
    Geometric_placement_operation);
END_TYPE;

TYPE characterized_activity_definition = SELECT
   (Activity,
    Activity_happening,
    Activity_method,
    Activity_method_relationship,
    Condition,
    Condition_evaluation,
    Condition_relationship,
    Observation,
    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_realization,
    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,
    Alternate_product_relationship,
    Analysis,
    Analysis_assignment,
    Analysis_discipline_definition,
    Analysis_version,
    Applied_activity_assignment,
    Applied_activity_method_assignment,
    Applied_information_usage_right,
    Applied_state_assignment,
    Applied_state_definition_assignment,
    Approval,
    Approval_assignment,
    Approval_relationship,
    Approval_status,
    Approving_person_organization,
    Assembly_component_relationship,
    Assembly_relationship_substitution,
    Assigned_property,
    Assumption,
    Assumption_assignment,
    Assumption_relationship,
    Attribute_translation_assignment,
    Breakdown,
    Breakdown_context,
    Breakdown_element,
    Breakdown_element_realization,
    Breakdown_element_usage,
    Breakdown_element_version,
    Breakdown_of,
    Calendar_date,
    Certification,
    Certification_assignment,
    Class,
    Collection_assignment,
    Collection_membership,
    Condition,
    Condition_assignment,
    Condition_evaluation,
    Condition_evaluation_assignment,
    Condition_evaluation_parameter,
    Condition_parameter,
    Condition_relationship,
    Constrained_general_parameter_relationship,
    Context_dependent_unit,
    Contract,
    Contract_assignment,
    Contract_relationship,
    Conversion_based_unit,
    Date_or_date_time_assignment,
    Date_time,
    Defined_state_relationship,
    Derived_unit,
    Description_text,
    Description_text_assignment,
    Descriptive_document_property,
    Digital_document_definition,
    Digital_file,
    Directed_activity,
    Document,
    Document_assignment,
    Document_definition_relationship,
    Document_location_identification,
    Document_property_representation,
    Document_version,
    Effectivity,
    Effectivity_assignment,
    Effectivity_relationship,
    Environment_assignment,
    Environment_definition,
    Environment_definition_version,
    Environment_view_definition_relationship,
    Event,
    Event_assignment,
    Event_relationship,
    Evidence,
    Experience_gained,
    Experience_instance,
    Experience_type,
    Expression,
    Expression_assignment,
    External_class_library,
    External_item_identification,
    External_source_identification,
    File,
    File_location_identification,
    File_relationship,
    General_model_parameter,
    Hardcopy,
    Identification_assignment,
    Identification_relationship,
    In_zone,
    Independent_property,
    Independent_property_relationship,
    Independent_property_representation,
    Information_right,
    Information_usage_right,
    Information_usage_right_relationship,
    Interface_connection,
    Interface_connector_occurrence,
    Interface_definition_connection,
    Interface_definition_for,
    Item_assumed,
    Item_design_association,
    Item_shape,
    Item_usage_effectivity,
    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,
    Numerical_document_property,
    Numerical_item_with_unit,
    Observation,
    Observation_assignment,
    Observation_consequence,
    Observation_relationship,
    Observed_environment,
    Observed_environment_assignment,
    Observed_environment_version,
    Observed_environment_view_definition_relationship,
    Organization,
    Organization_or_person_in_organization_assignment,
    Organization_relationship,
    Organization_type,
    Organizational_location_identification,
    Parameter_value_representation_item,
    Part_view_definition,
    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_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,
    Project_relationship,
    Property_representation,
    Qualification_assignment,
    Qualification_type,
    Qualification_type_relationship,
    Regional_coordinate,
    Related_condition_parameter,
    Representation,
    Representation_context,
    Representation_item,
    Representation_relationship,
    Required_resource,
    Required_resource_assignment,
    Required_resource_relationship,
    Requirement,
    Requirement_assignment,
    Requirement_collection_relationship,
    Requirement_source,
    Requirement_version,
    Requirement_version_relationship,
    Requirement_view_definition,
    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_realization,
    Resource_item_relationship,
    Resource_property,
    Resource_property_representation,
    Risk_impact_assignment,
    Risk_perception_relationship,
    Risk_perception_source_assignment,
    Security_classification,
    Security_classification_assignment,
    Selected_item,
    Selected_item_assignment,
    State,
    State_assertion,
    State_assessment,
    State_definition,
    State_definition_relationship,
    State_relationship,
    State_role,
    String_representation_item,
    Supplied_part_relationship,
    Task_element_state_relationship,
    Task_method,
    Task_method_state_relationship,
    Task_objective,
    Task_objective_state_relationship,
    Text_based_representation,
    Time_interval_relationship,
    Tracing_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,
    Validation,
    Value_with_unit,
    Verification,
    Verification_relationship,
    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,
    Activity_method_assignment,
    Activity_property,
    Activity_property_representation,
    Activity_relationship,
    Address_assignment,
    Affected_items_assignment,
    Alternate_product_relationship,
    Applied_activity_assignment,
    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,
    Contract,
    Contract_relationship,
    Date_or_date_time_assignment,
    Description_text,
    Descriptive_document_property,
    Digital_file,
    Document_assignment,
    Document_definition_relationship,
    Document_property_representation,
    Effectivity,
    Effectivity_assignment,
    Event_assignment,
    Event_relationship,
    External_source_identification,
    File_relationship,
    Global_location_representation,
    Group,
    Group_relationship,
    Hardcopy,
    Identification_assignment,
    Independent_property,
    Independent_property_relationship,
    Independent_property_representation,
    Information_right,
    Information_usage_right,
    Information_usage_right_relationship,
    Interface_connection,
    Interface_connector_definition,
    Interface_definition_connection,
    Interface_specification_definition,
    Issue,
    Justification,
    Justification_assignment,
    Justification_support_assignment,
    Language,
    Location,
    Location_relationship,
    Managed_resource,
    Managed_resource_relationship,
    Market,
    Numerical_document_property,
    Organization_or_person_in_organization_assignment,
    Organization_relationship,
    Organizational_location_identification,
    Part_view_definition,
    Person_in_organization,
    Product,
    Product_based_location_identification,
    Product_concept,
    Product_relationship,
    Product_version,
    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,
    Requirement_view_definition,
    Resource_as_realized,
    Resource_as_realized_relationship,
    Resource_event,
    Resource_event_correspondence_relationship,
    Resource_event_relationship,
    Resource_item,
    Resource_item_assignment,
    Resource_item_realization,
    Resource_item_relationship,
    Resource_property,
    Resource_property_representation,
    Risk,
    Security_classification,
    State,
    State_definition,
    State_definition_relationship,
    State_relationship,
    Time_interval_relationship,
    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 collection_assignment_select = SELECT
   (Activity,
    Activity_method,
    Contract,
    Organization,
    Product,
    Product_concept,
    Product_configuration,
    Product_version,
    Product_view_definition,
    Project,
    Work_order,
    Work_request);
END_TYPE;

TYPE collection_member_select = 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,
    Advisory_note,
    Affected_items_assignment,
    Alternate_product_relationship,
    Analysis_assignment,
    Applied_activity_assignment,
    Applied_activity_method_assignment,
    Applied_information_usage_right,
    Applied_state_assignment,
    Applied_state_definition_assignment,
    Approval,
    Approval_assignment,
    Approval_relationship,
    Approval_status,
    Approving_person_organization,
    Assembly_relationship_substitution,
    Assigned_property,
    Assumption,
    Assumption_assignment,
    Assumption_relationship,
    Attribute_classification,
    Attribute_translation_assignment,
    Axis_placement_mapping,
    Breakdown_context,
    Breakdown_of,
    Calendar_date,
    Certification,
    Certification_assignment,
    Class,
    Classification_assignment,
    Collection_assignment,
    Collection_membership,
    Condition,
    Condition_assignment,
    Condition_evaluation,
    Condition_evaluation_assignment,
    Condition_evaluation_parameter,
    Condition_parameter,
    Condition_relationship,
    Contextual_shape_representation,
    Contract,
    Contract_assignment,
    Contract_relationship,
    Date_or_date_time_assignment,
    Date_time,
    Defined_state_relationship,
    Derived_unit_element,
    Description_text,
    Description_text_assignment,
    Document_assignment,
    Document_definition_relationship,
    Effectivity,
    Effectivity_assignment,
    Effectivity_relationship,
    Environment_assignment,
    Event,
    Event_assignment,
    Event_relationship,
    Evidence,
    Experience_gained,
    Experience_instance,
    Experience_type,
    Experience_type_relationship,
    External_source,
    External_source_identification,
    File,
    File_relationship,
    Function_value_pair,
    Geometric_item_specific_usage,
    Identification_assignment,
    Identification_relationship,
    In_zone,
    Independent_property,
    Independent_property_relationship,
    Information_right,
    Information_usage_right,
    Information_usage_right_relationship,
    Interface_connection,
    Interface_connector_occurrence,
    Interface_definition_connection,
    Interface_definition_for,
    Item_assumed,
    Item_design_association,
    Item_shape,
    Item_usage_effectivity,
    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,
    Measure_qualification,
    Name_assignment,
    Observation,
    Observation_assignment,
    Observation_consequence,
    Observation_relationship,
    Observed_environment_assignment,
    Observed_environment_to_definition,
    Observed_environment_to_definition_version,
    Observed_environment_to_definition_view,
    Organization,
    Organization_or_person_in_organization_assignment,
    Organization_organization_type_relationship,
    Organization_relationship,
    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,
    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,
    Precision_qualifier,
    Product,
    Product_concept,
    Product_configuration,
    Product_configuration_relationship,
    Product_definition_element_relationship,
    Product_design_to_individual,
    Product_design_version_to_individual,
    Product_design_view_to_individual,
    Product_group,
    Product_group_membership,
    Product_group_relationship,
    Product_occurrence_definition_relationship,
    Product_planned_to_realized,
    Product_relationship,
    Product_version,
    Product_version_relationship,
    Product_view_definition,
    Project,
    Project_assignment,
    Project_relationship,
    Property_definition_representation,
    Qualification_assignment,
    Qualification_type,
    Qualification_type_relationship,
    Regional_coordinate,
    Related_condition_parameter,
    Representation,
    Representation_context,
    Representation_item,
    Representation_relationship,
    Required_resource,
    Required_resource_assignment,
    Required_resource_relationship,
    Required_resource_requirement,
    Requirement_assignment,
    Requirement_satisfied_by,
    Requirement_source,
    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_realization,
    Resource_item_relationship,
    Resource_property,
    Resource_property_representation,
    Risk_impact_assignment,
    Risk_perception_source_assignment,
    Same_as_external_item,
    Security_classification,
    Security_classification_assignment,
    Selected_item_assignment,
    Shape_dependent_property_representation,
    Shape_description_association,
    Shape_element,
    Shape_element_relationship,
    State,
    State_assertion,
    State_assessment,
    State_definition,
    State_definition_relationship,
    State_definition_role,
    State_relationship,
    State_role,
    Task_element_state_relationship,
    Task_method_state_relationship,
    Task_objective,
    Task_objective_state_relationship,
    Time_interval,
    Time_interval_assignment,
    Time_interval_relationship,
    Time_interval_role,
    Time_offset,
    Type_of_person,
    Type_of_person_assignment,
    Type_of_person_definition,
    Type_of_person_definition_relationship,
    Type_of_person_definition_required_attributes_relationship,
    Type_qualifier,
    Uncertainty_qualifier,
    Unit,
    Validation,
    Value_function,
    Value_with_unit,
    Verification,
    Verification_relationship,
    View_definition_context,
    View_definition_relationship,
    Work_order,
    Work_output,
    Work_output_assignment,
    Work_output_relationship,
    Work_request,
    Work_request_status);
END_TYPE;

TYPE condition_evaluation_item = SELECT
   (Activity,
    Activity_method,
    Activity_method_realization,
    Activity_method_realization_relationship,
    Activity_method_relationship,
    Activity_property,
    Analysis_assignment,
    Applied_activity_assignment,
    Applied_activity_method_assignment,
    Approval,
    Approval_assignment,
    Assembly_component_relationship,
    Assigned_property,
    Behaviour_description_association,
    Document_assignment,
    Interface_connection,
    Interface_definition_connection,
    Justification,
    Managed_resource,
    Product_definition_element_relationship,
    Product_group,
    Product_group_membership,
    Product_group_relationship,
    Required_resource,
    Resource_as_realized,
    Resource_as_realized_assignment,
    Resource_as_realized_relationship,
    Resource_event,
    Resource_event_relationship,
    Resource_item,
    Resource_item_assignment,
    Resource_item_relationship,
    Risk_impact_assignment,
    State_assertion,
    State_assessment,
    State_definition,
    Verification,
    View_definition_relationship);
END_TYPE;

TYPE condition_evaluation_parameter_item = SELECT
   (Activity,
    Activity_method,
    Activity_property,
    Activity_property_representation,
    Approval,
    Approval_assignment,
    Assembly_component_relationship,
    Assigned_property,
    Calendar_date,
    Certification_assignment,
    Classification_assignment,
    Contract_assignment,
    Date_or_date_time_assignment,
    Date_time,
    Document_assignment,
    Identification_assignment,
    Independent_property_representation,
    Interface_connection,
    Interface_connector_occurrence,
    Interface_definition_connection,
    Managed_resource,
    Organization_or_person_in_organization_assignment,
    Product,
    Product_as_individual,
    Product_concept,
    Product_definition_element_relationship,
    Product_version,
    Product_view_definition,
    Property_representation,
    Representation,
    Required_resource,
    Requirement_source,
    Resource_as_realized,
    Resource_as_realized_relationship,
    Resource_event,
    Resource_property,
    Resource_property_representation,
    State,
    State_definition,
    Task_io,
    View_definition_relationship,
    Work_output);
END_TYPE;

TYPE condition_item = SELECT
   (Activity,
    Activity_method,
    Activity_method_realization,
    Activity_method_realization_relationship,
    Activity_method_relationship,
    Activity_property,
    Analysis_assignment,
    Applied_activity_assignment,
    Applied_activity_method_assignment,
    Approval,
    Approval_assignment,
    Assembly_component_relationship,
    Assigned_property,
    Certification_assignment,
    Contract_assignment,
    Date_or_date_time_assignment,
    Document_assignment,
    Effectivity,
    Event_assignment,
    Evidence,
    Expression_assignment,
    Interface_connection,
    Interface_definition_connection,
    Issue,
    Justification_assignment,
    Location_assignment,
    Managed_resource,
    Managed_resource_relationship,
    Product_definition_element_relationship,
    Product_group,
    Product_group_membership,
    Product_group_relationship,
    Project_assignment,
    Qualification_assignment,
    Required_resource,
    Required_resource_assignment,
    Required_resource_relationship,
    Requirement_assignment,
    Resource_event,
    Resource_event_relationship,
    Resource_item,
    Resource_item_assignment,
    Resource_item_realization,
    Resource_item_relationship,
    Resource_property,
    Security_classification_assignment,
    State_definition,
    State_definition_relationship,
    Task_method_assignment,
    Task_method_relationship,
    Task_method_version_assignment,
    Task_method_version_relationship,
    View_definition_relationship,
    Work_order,
    Work_request);
END_TYPE;

TYPE condition_parameter_item = SELECT
   (Activity,
    Activity_method,
    Activity_method_relationship,
    Activity_property,
    Activity_property_representation,
    Applied_activity_method_assignment,
    Approval,
    Approval_assignment,
    Assigned_property,
    Calendar_date,
    Certification_assignment,
    Classification_assignment,
    Condition_relationship,
    Contract_assignment,
    Date_or_date_time_assignment,
    Date_time,
    Document_assignment,
    Evidence,
    Expression,
    Identification_assignment,
    Independent_property,
    Independent_property_representation,
    Interface_connection,
    Interface_connector_occurrence,
    Interface_definition_connection,
    Managed_resource,
    Observation,
    Organization,
    Organization_or_person_in_organization_assignment,
    Organization_type,
    parameter_value_select,
    Product,
    Product_as_individual,
    Product_concept,
    Product_configuration,
    Product_definition_element_relationship,
    Product_version,
    Product_view_definition,
    Property_representation,
    Representation,
    Required_resource,
    Required_resource_assignment,
    Required_resource_relationship,
    Resource_as_realized,
    Resource_as_realized_relationship,
    Resource_event,
    Resource_item,
    Resource_item_assignment,
    Resource_item_realization,
    Resource_item_relationship,
    Resource_property,
    Resource_property_representation,
    State,
    State_assessment,
    State_definition,
    State_transition_definition,
    Validation,
    Verification,
    Verification_relationship,
    View_definition_relationship,
    Work_output,
    Work_request);
END_TYPE;

TYPE connection_definition_items = SELECT
   (Interface_connector_definition,
    Product_view_definition);
END_TYPE;

TYPE connection_items = SELECT
   (Assembly_component_relationship,
    connection_definition_items,
    Interface_connector_occurrence,
    View_definition_relationship);
END_TYPE;

TYPE connector_on_item = SELECT
   (Assembly_component_relationship,
    Product_view_definition,
    View_definition_relationship);
END_TYPE;

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

TYPE contract_item = SELECT
   (Activity,
    Activity_method,
    Activity_method_realization,
    Activity_method_realization_relationship,
    Activity_method_relationship,
    Analysis_version,
    Applied_activity_assignment,
    Applied_activity_method_assignment,
    Breakdown,
    Breakdown_element,
    Breakdown_version,
    Document,
    Document_version,
    External_class,
    External_class_library,
    Information_usage_right,
    Issue,
    Justification,
    Managed_resource,
    Organization,
    organization_or_person_in_organization_item,
    Person_in_organization,
    Product_as_individual,
    Product_as_planned,
    Product_as_realized,
    Product_configuration,
    Product_group,
    Product_group_relationship,
    Product_version,
    Project,
    Requirement,
    Requirement_assignment,
    Requirement_collection_relationship,
    Requirement_source,
    Requirement_version,
    Requirement_version_relationship,
    Requirement_view_definition,
    Resource_event,
    Resource_item,
    Resource_item_realization,
    Risk_perception_source_assignment,
    Security_classification,
    Task_element,
    Task_method,
    Task_method_version,
    Task_objective,
    Tracing_relationship,
    Validation,
    Verification);
END_TYPE;

TYPE date_or_date_time_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,
    Address_assignment,
    Affected_items_assignment,
    Alternate_product_relationship,
    Analysis_assignment,
    Analysis_discipline_definition,
    Applied_activity_assignment,
    Applied_activity_method_assignment,
    Applied_information_usage_right,
    Applied_state_assignment,
    Applied_state_definition_assignment,
    Approval,
    Approving_person_organization,
    Assembly_component_relationship,
    Assembly_relationship_substitution,
    Assigned_property,
    Assumption,
    Assumption_assignment,
    Assumption_relationship,
    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,
    Contract_relationship,
    Date_or_date_time_assignment,
    Descriptive_document_property,
    Digital_document_definition,
    Digital_file,
    Directed_activity,
    Document,
    Document_assignment,
    Document_definition,
    Document_definition_relationship,
    Document_version,
    Effectivity,
    Effectivity_assignment,
    Event_assignment,
    Evidence,
    Experience_instance,
    Hardcopy,
    Identification_assignment,
    Identification_relationship,
    Independent_property,
    Independent_property_relationship,
    Independent_property_representation,
    Information_usage_right,
    Interface_connection,
    Interface_connector_occurrence,
    Interface_definition_connection,
    Interface_definition_for,
    Issue,
    Item_assumed,
    Justification,
    Justification_assignment,
    Justification_relationship,
    Justification_support_assignment,
    Location_assignment,
    Location_representation,
    Managed_resource,
    Managed_resource_relationship,
    Numerical_document_property,
    Observation,
    Observation_assignment,
    Organization_or_person_in_organization_assignment,
    Organization_organization_type_relationship,
    Organization_relationship,
    Part,
    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_assignment,
    Position_group_assignment,
    Position_position_type_assignment,
    Position_type_assignment,
    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,
    Project_assignment,
    Property_representation,
    Qualification_assignment,
    Representation,
    Required_resource,
    Required_resource_assignment,
    Requirement,
    Requirement_assignment,
    Requirement_collection_relationship,
    Requirement_source,
    Resource_as_realized,
    Resource_as_realized_assignment,
    Resource_event,
    Resource_item,
    Resource_item_assignment,
    Resource_item_realization,
    Resource_property,
    Resource_property_representation,
    Risk,
    Risk_impact_assignment,
    Risk_perception_relationship,
    Risk_perception_source_assignment,
    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,
    Task_element_state_relationship,
    Task_method,
    Task_method_state_relationship,
    Task_method_version,
    Task_objective,
    Task_objective_state_relationship,
    Tracing_relationship,
    Type_of_person_assignment,
    Validation,
    Verification,
    Verification_relationship,
    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,
    Behaviour_description_association,
    Event_assignment,
    Issue,
    Observation_consequence,
    Product,
    Project,
    Resource_as_realized,
    Work_output);
END_TYPE;

TYPE defined_attributes = SELECT
   (Experience_type,
    Organization,
    Person_in_organization,
    Position_group,
    Position_group_role,
    Position_role,
    Position_type_role,
    Qualification_type,
    Type_of_person_assignment,
    Work_output_assignment);
END_TYPE;

TYPE defined_methods = SELECT
   (Activity,
    Activity_method,
    Analysis_assignment,
    behaviour_model,
    Event,
    Issue,
    Observation_consequence,
    Product,
    Product_group,
    Required_resource,
    Work_output_assignment);
END_TYPE;

TYPE described_element_select = SELECT
   (Product_occurrence_definition_relationship,
    View_definition_usage);
END_TYPE;

TYPE description_item = SELECT
   (Activity,
    Activity_method_realization,
    Activity_method_realization_relationship,
    Activity_method_relationship,
    Activity_property,
    Activity_property_representation,
    Activity_relationship,
    Address_assignment,
    Alternate_product_relationship,
    Analysis_assignment,
    Applied_activity_assignment,
    Applied_activity_method_assignment,
    Applied_information_usage_right,
    Approval,
    Approval_assignment,
    Approval_relationship,
    Assembly_component_relationship,
    Assembly_relationship_substitution,
    Assigned_property,
    Assumption,
    Assumption_assignment,
    Assumption_relationship,
    Behaviour_description_association,
    behaviour_model,
    Breakdown_context,
    Breakdown_of,
    Certification,
    Certification_assignment,
    Class,
    Classification_assignment,
    Condition,
    Condition_assignment,
    Condition_evaluation,
    Condition_evaluation_parameter,
    Condition_parameter,
    Condition_relationship,
    Contract,
    Contract_assignment,
    Contract_relationship,
    Date_or_date_time_assignment,
    Defined_state_relationship,
    Description_text,
    Description_text_assignment,
    Digital_file,
    Document_assignment,
    Document_definition_relationship,
    Effectivity,
    Effectivity_assignment,
    Effectivity_relationship,
    Event,
    Event_assignment,
    Event_relationship,
    Evidence,
    Experience_instance,
    Experience_type,
    Expression,
    External_source,
    External_source_identification,
    File,
    File_relationship,
    Geometric_item_specific_usage,
    Group,
    Group_relationship,
    Hardcopy,
    Identification_assignment,
    Identification_relationship,
    In_zone,
    Independent_property,
    Independent_property_relationship,
    Information_right,
    Information_usage_right,
    Information_usage_right_relationship,
    Interface_connection,
    Interface_connector_occurrence,
    Interface_definition_connection,
    Interface_definition_for,
    Item_assumed,
    Item_shape,
    Justification,
    Justification_assignment,
    Justification_relationship,
    Justification_support_assignment,
    Location,
    Location_assignment,
    Location_relationship,
    Location_representation,
    Managed_resource,
    Managed_resource_relationship,
    Market,
    Measure_qualification,
    Observation,
    Observation_consequence,
    Organization,
    Organization_or_person_in_organization_assignment,
    Organization_relationship,
    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,
    Position,
    Position_group,
    Position_group_role,
    Position_relationship,
    Position_role,
    Position_type,
    Position_type_assignment,
    Position_type_role,
    Product,
    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,
    Product_version_relationship,
    Product_view_definition,
    Project,
    Project_assignment,
    Project_relationship,
    Property_definition_representation,
    Qualification_assignment,
    Qualification_type,
    Qualification_type_relationship,
    Related_condition_parameter,
    Representation,
    Representation_item,
    Representation_relationship,
    Required_resource,
    Required_resource_assignment,
    Required_resource_relationship,
    Requirement_assignment,
    Requirement_satisfied_by,
    Requirement_source,
    Resource_as_realized,
    Resource_as_realized_relationship,
    Resource_event,
    Resource_event_correspondence_relationship,
    Resource_event_relationship,
    Resource_item,
    Resource_item_assignment,
    Resource_item_realization,
    Resource_item_relationship,
    Resource_property,
    Resource_property_representation,
    Risk_impact_assignment,
    Risk_perception_source_assignment,
    Same_as_external_item,
    Security_classification,
    Security_classification_assignment,
    Shape_dependent_property_representation,
    Shape_description_association,
    Shape_element,
    Shape_element_relationship,
    State,
    State_assertion,
    State_assessment,
    State_definition_relationship,
    State_definition_role,
    State_relationship,
    State_role,
    Task_element_state_relationship,
    Task_method_state_relationship,
    Task_objective,
    Task_objective_state_relationship,
    Time_interval,
    Time_interval_relationship,
    Time_interval_role,
    Type_of_person,
    Type_of_person_definition,
    Type_of_person_definition_relationship,
    Uncertainty_qualifier,
    Uncertainty_with_unit,
    Unit,
    Validation,
    Value_with_unit,
    Verification,
    View_definition_context,
    View_definition_relationship,
    Work_order,
    Work_output,
    Work_output_relationship,
    Work_request);
END_TYPE;

TYPE descriptive_or_numerical = SELECT
   (Descriptive_document_property,
    Numerical_document_property);
END_TYPE;

TYPE document_property_item = property_assignment_select ;
WHERE
  wr1: NOT ('DOCUMENT_PROPERTIES_ARM.ACTIVITY' IN TYPEOF(SELF));
  wr2: NOT ('DOCUMENT_PROPERTIES_ARM.ACTIVITY_HAPPENING' IN TYPEOF(SELF));
  wr3: NOT ('DOCUMENT_PROPERTIES_ARM.ACTIVITY_METHOD' IN TYPEOF(SELF));
  wr4: NOT ('DOCUMENT_PROPERTIES_ARM.ADDRESS' IN TYPEOF(SELF));
  wr5: NOT ('DOCUMENT_PROPERTIES_ARM.ALTERNATE_PRODUCT_RELATIONSHIP' IN TYPEOF(SELF));
  wr6: NOT ('DOCUMENT_PROPERTIES_ARM.ANALYSIS_ASSIGNMENT' IN TYPEOF(SELF));
  wr7: NOT ('DOCUMENT_PROPERTIES_ARM.APPLIED_ACTIVITY_ASSIGNMENT' IN TYPEOF(SELF));
  wr8: NOT ('DOCUMENT_PROPERTIES_ARM.APPLIED_ACTIVITY_METHOD_ASSIGNMENT' IN TYPEOF(SELF));
  wr9: NOT ('DOCUMENT_PROPERTIES_ARM.APPLIED_STATE_ASSIGNMENT' IN TYPEOF(SELF));
  wr10: NOT ('DOCUMENT_PROPERTIES_ARM.APPLIED_STATE_DEFINITION_ASSIGNMENT' IN TYPEOF(SELF));
  wr11: NOT ('DOCUMENT_PROPERTIES_ARM.ASSEMBLY_COMPONENT_RELATIONSHIP' IN TYPEOF(SELF));
  wr13: NOT ('DOCUMENT_PROPERTIES_ARM.BREAKDOWN_ELEMENT_REALIZATION' IN TYPEOF(SELF));
  wr14: NOT ('DOCUMENT_PROPERTIES_ARM.BREAKDOWN_ELEMENT_USAGE' IN TYPEOF(SELF));
  wr15: NOT ('DOCUMENT_PROPERTIES_ARM.CONDITION_EVALUATION_PARAMETER' IN TYPEOF(SELF));
  wr16: NOT ('DOCUMENT_PROPERTIES_ARM.CONDITION_PARAMETER' IN TYPEOF(SELF));
  wr17: NOT ('DOCUMENT_PROPERTIES_ARM.DOCUMENT_ASSIGNMENT' IN TYPEOF(SELF));
  wr18: NOT ('DOCUMENT_PROPERTIES_ARM.EVENT' IN TYPEOF(SELF));
  wr19: NOT ('DOCUMENT_PROPERTIES_ARM.EVIDENCE' IN TYPEOF(SELF));
  wr20: NOT ('DOCUMENT_PROPERTIES_ARM.EXPERIENCE_INSTANCE' IN TYPEOF(SELF));
  wr21: NOT ('DOCUMENT_PROPERTIES_ARM.GENERIC_EXPRESSION' IN TYPEOF(SELF));
  wr22: NOT ('DOCUMENT_PROPERTIES_ARM.IN_ZONE' IN TYPEOF(SELF));
  wr23: NOT ('DOCUMENT_PROPERTIES_ARM.INDEPENDENT_PROPERTY' IN TYPEOF(SELF));
  wr24: NOT ('DOCUMENT_PROPERTIES_ARM.INDEPENDENT_PROPERTY_RELATIONSHIP' IN TYPEOF(SELF));
  wr25: NOT ('DOCUMENT_PROPERTIES_ARM.INFORMATION_USAGE_RIGHT' IN TYPEOF(SELF));
  wr26: NOT ('DOCUMENT_PROPERTIES_ARM.INTERFACE_CONNECTION' IN TYPEOF(SELF));
  wr27: NOT ('DOCUMENT_PROPERTIES_ARM.INTERFACE_CONNECTOR_OCCURRENCE' IN TYPEOF(SELF));
  wr28: NOT ('DOCUMENT_PROPERTIES_ARM.INTERFACE_DEFINITION_CONNECTION' IN TYPEOF(SELF));
  wr29: NOT ('DOCUMENT_PROPERTIES_ARM.LOCATION_ASSIGNMENT' IN TYPEOF(SELF));
  wr30: NOT ('DOCUMENT_PROPERTIES_ARM.OBSERVATION_CONSEQUENCE' IN TYPEOF(SELF));
  wr31: NOT ('DOCUMENT_PROPERTIES_ARM.ORGANIZATION_OR_PERSON_IN_ORGANIZATION_ASSIGNMENT' IN TYPEOF(SELF));
  wr32: NOT ('DOCUMENT_PROPERTIES_ARM.PART_VIEW_DEFINITION' IN TYPEOF(SELF));
  wr33: NOT ('DOCUMENT_PROPERTIES_ARM.PERSON' IN TYPEOF(SELF));
  wr34: NOT ('DOCUMENT_PROPERTIES_ARM.PERSON_IN_ORGANIZATION' IN TYPEOF(SELF));
  wr35: NOT ('DOCUMENT_PROPERTIES_ARM.PRODUCT' IN TYPEOF(SELF));
  wr36: NOT ('DOCUMENT_PROPERTIES_ARM.PRODUCT_CONCEPT' IN TYPEOF(SELF));
  wr37: NOT ('DOCUMENT_PROPERTIES_ARM.PRODUCT_CONFIGURATION' IN TYPEOF(SELF));
  wr38: NOT ('DOCUMENT_PROPERTIES_ARM.PRODUCT_GROUP' IN TYPEOF(SELF));
  wr39: NOT ('DOCUMENT_PROPERTIES_ARM.PRODUCT_GROUP_MEMBERSHIP' IN TYPEOF(SELF));
  wr40: NOT ('DOCUMENT_PROPERTIES_ARM.PRODUCT_VERSION' IN TYPEOF(SELF));
  wr41: NOT ('DOCUMENT_PROPERTIES_ARM.PRODUCT_VERSION_RELATIONSHIP' IN TYPEOF(SELF));
  wr42: NOT ('DOCUMENT_PROPERTIES_ARM.PRODUCT_VIEW_DEFINITION' IN TYPEOF(SELF));
  wr43: NOT ('DOCUMENT_PROPERTIES_ARM.PROJECT' IN TYPEOF(SELF));
  wr44: NOT ('DOCUMENT_PROPERTIES_ARM.PROPERTY_DEFINITION_REPRESENTATION' IN TYPEOF(SELF));
  wr45: NOT ('DOCUMENT_PROPERTIES_ARM.RELATED_CONDITION_PARAMETER' IN TYPEOF(SELF));
  wr46: NOT ('DOCUMENT_PROPERTIES_ARM.REPRESENTATION' IN TYPEOF(SELF));
  wr47: NOT ('DOCUMENT_PROPERTIES_ARM.REPRESENTATION_CONTEXT' IN TYPEOF(SELF));
  wr48: NOT ('DOCUMENT_PROPERTIES_ARM.REPRESENTATION_ITEM' IN TYPEOF(SELF));
  wr49: NOT ('DOCUMENT_PROPERTIES_ARM.REQUIREMENT_SOURCE' IN TYPEOF(SELF));
  wr50: NOT ('DOCUMENT_PROPERTIES_ARM.RISK_IMPACT_ASSIGNMENT' IN TYPEOF(SELF));
  wr51: NOT ('DOCUMENT_PROPERTIES_ARM.RISK_PERCEPTION' IN TYPEOF(SELF));
  wr52: NOT ('DOCUMENT_PROPERTIES_ARM.SECURITY_CLASSIFICATION' IN TYPEOF(SELF));
  wr53: NOT ('DOCUMENT_PROPERTIES_ARM.STATE' IN TYPEOF(SELF));
  wr54: NOT ('DOCUMENT_PROPERTIES_ARM.STATE_ASSERTION' IN TYPEOF(SELF));
  wr55: NOT ('DOCUMENT_PROPERTIES_ARM.STATE_ASSESSMENT' IN TYPEOF(SELF));
  wr56: NOT ('DOCUMENT_PROPERTIES_ARM.STATE_DEFINITION' IN TYPEOF(SELF));
  wr57: NOT ('DOCUMENT_PROPERTIES_ARM.STATE_DEFINITION_RELATIONSHIP' IN TYPEOF(SELF));
  wr58: NOT ('DOCUMENT_PROPERTIES_ARM.STATE_RELATIONSHIP' IN TYPEOF(SELF));
  wr59: NOT ('DOCUMENT_PROPERTIES_ARM.TASK_IO_HIERARCHY' IN TYPEOF(SELF));
  wr60: NOT ('DOCUMENT_PROPERTIES_ARM.TASK_METHOD_STATE_RELATIONSHIP' IN TYPEOF(SELF));
  wr61: NOT ('DOCUMENT_PROPERTIES_ARM.TASK_OBJECTIVE' IN TYPEOF(SELF));
  wr62: NOT ('DOCUMENT_PROPERTIES_ARM.TASK_OBJECTIVE_STATE_RELATIONSHIP' IN TYPEOF(SELF));
  wr63: NOT ('DOCUMENT_PROPERTIES_ARM.TYPE_OF_PERSON_DEFINITION' IN TYPEOF(SELF));
  wr64: NOT ('DOCUMENT_PROPERTIES_ARM.VERIFICATION' IN TYPEOF(SELF));
  wr65: NOT ('DOCUMENT_PROPERTIES_ARM.VERIFICATION_RELATIONSHIP' IN TYPEOF(SELF));
  wr66: NOT ('DOCUMENT_PROPERTIES_ARM.VIEW_DEFINITION_RELATIONSHIP' IN TYPEOF(SELF));
  wr67: NOT ('DOCUMENT_PROPERTIES_ARM.WORK_ORDER' IN TYPEOF(SELF));
  wr68: NOT ('DOCUMENT_PROPERTIES_ARM.WORK_REQUEST' IN TYPEOF(SELF));
END_TYPE;

TYPE documented_element_select = SELECT
   (Activity,
    Activity_method,
    Activity_method_realization,
    Activity_method_realization_relationship,
    Activity_method_relationship,
    Activity_property,
    Activity_property_representation,
    Activity_relationship,
    Address_assignment,
    Alias_identification,
    Alternate_product_relationship,
    Analysis,
    Applied_activity_assignment,
    Applied_activity_method_assignment,
    Applied_information_usage_right,
    Approval,
    Approval_assignment,
    Assembly_component_relationship,
    Assembly_relationship_substitution,
    Assigned_property,
    Assumption,
    Assumption_assignment,
    Assumption_relationship,
    Breakdown,
    Breakdown_context,
    Breakdown_element,
    Breakdown_element_realization,
    Breakdown_element_usage,
    Breakdown_element_version,
    Certification,
    Certification_assignment,
    Class,
    Classification_assignment,
    Condition,
    Condition_assignment,
    Condition_evaluation,
    Condition_parameter,
    Contract,
    Contract_assignment,
    Contract_relationship,
    Date_or_date_time_assignment,
    Digital_document_definition,
    Digital_file,
    Document_assignment,
    Document_definition_relationship,
    Effectivity,
    Effectivity_assignment,
    Event_assignment,
    Evidence,
    Experience_instance,
    Experience_type,
    External_item_identification,
    Group,
    Group_relationship,
    Hardcopy,
    Identification_assignment,
    Independent_property,
    Independent_property_relationship,
    Independent_property_representation,
    Information_right,
    Information_usage_right,
    Information_usage_right_relationship,
    Interface_connection,
    Interface_connector_occurrence,
    Interface_definition_connection,
    Item_assumed,
    Justification,
    Justification_assignment,
    Justification_relationship,
    Justification_support_assignment,
    Location,
    Location_assignment,
    Location_relationship,
    Location_representation,
    Managed_resource,
    Market,
    Observation,
    Observation_consequence,
    Organization,
    Organization_or_person_in_organization_assignment,
    Organization_relationship,
    Organization_type,
    Organizational_location_identification,
    Part,
    Part_version,
    Part_view_definition,
    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_group,
    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,
    Project_assignment,
    Property_representation,
    Qualification_assignment,
    Qualification_type,
    Regional_grid_location_representation,
    Representation,
    Representation_item,
    Required_resource,
    Required_resource_assignment,
    Required_resource_relationship,
    Requirement_assignment,
    Requirement_source,
    Resource_as_realized,
    Resource_event,
    Resource_item,
    Resource_item_assignment,
    Resource_item_realization,
    Resource_item_relationship,
    Resource_property,
    Resource_property_representation,
    Risk_impact_assignment,
    Risk_perception_source_assignment,
    Security_classification,
    Security_classification_assignment,
    Selected_item,
    Shape_element,
    Shape_element_relationship,
    State,
    State_assertion,
    State_assessment,
    State_definition,
    State_definition_relationship,
    Task_element,
    Task_element_state_relationship,
    Task_method,
    Task_method_state_relationship,
    Task_method_version,
    Task_objective,
    Task_objective_state_relationship,
    Type_of_person,
    Type_of_person_definition,
    Validation,
    Verification,
    View_definition_relationship,
    Work_order,
    Work_output,
    Work_request);
END_TYPE;

TYPE effectivity_item = SELECT
   (Activity,
    Activity_method,
    Activity_method_assignment,
    Activity_property,
    Activity_property_representation,
    Address_assignment,
    Alternate_product_relationship,
    Analysis_assignment,
    Applied_activity_assignment,
    Applied_activity_method_assignment,
    Applied_information_usage_right,
    Applied_state_assignment,
    Applied_state_definition_assignment,
    Approval_assignment,
    Assembly_component_relationship,
    Assembly_relationship_substitution,
    Assigned_property,
    Assumption,
    Assumption_assignment,
    Assumption_relationship,
    Attribute_translation_assignment,
    Breakdown,
    Breakdown_element,
    Breakdown_element_definition,
    Breakdown_element_realization,
    Breakdown_element_usage,
    Breakdown_element_version,
    Breakdown_of,
    Breakdown_version,
    Certification_assignment,
    Classification_assignment,
    Condition_assignment,
    Condition_relationship,
    Constrained_general_parameter_relationship,
    Contract_assignment,
    Date_or_date_time_assignment,
    Document_assignment,
    Document_definition,
    Document_definition_relationship,
    Document_location_identification,
    Effectivity_assignment,
    Event,
    Event_assignment,
    Evidence,
    External_source_identification,
    File,
    File_relationship,
    Identification_assignment,
    Identification_relationship,
    In_zone,
    Independent_property_representation,
    Interface_connection,
    Interface_connector_occurrence,
    Interface_definition_for,
    Issue,
    Issue_consequence,
    Item_assumed,
    Justification,
    Justification_assignment,
    Justification_relationship,
    Justification_support_assignment,
    Location_assignment,
    Managed_resource_relationship,
    Organization_or_person_in_organization_assignment,
    Organization_relationship,
    Person_in_organization,
    Person_or_organization_or_person_in_organization_in_position_relationship,
    Position_assignment,
    Position_group_assignment,
    Position_position_type_assignment,
    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,
    Qualification_assignment,
    Required_resource_assignment,
    Required_resource_relationship,
    Requirement_assignment,
    Requirement_collection_relationship,
    Requirement_source,
    Resource_item_assignment,
    Resource_item_relationship,
    Resource_property,
    Resource_property_representation,
    Risk_impact_assignment,
    Risk_perception_source_assignment,
    Security_classification_assignment,
    Selected_item_assignment,
    State_definition_relationship,
    Type_of_person_assignment,
    Type_of_person_definition_relationship,
    Validation,
    Verification,
    Verification_relationship,
    View_definition_relationship,
    View_definition_usage,
    Work_order,
    Work_output_assignment,
    Work_output_relationship);
END_TYPE;

TYPE environment_item = SELECT
   (Activity,
    Activity_method,
    Environment_definition_view,
    Location,
    Organization,
    Person,
    Product,
    Product_concept,
    Product_group,
    Product_version,
    Validation,
    Verification);
END_TYPE;

TYPE event_item = SELECT
   (Activity,
    Activity_method,
    Activity_method_relationship,
    Activity_property,
    Activity_relationship,
    Alternate_product_relationship,
    Applied_activity_method_assignment,
    Applied_state_assignment,
    Approval,
    Assembly_relationship_substitution,
    Certification,
    Condition,
    Condition_evaluation_parameter,
    Contract,
    Contract_assignment,
    Contract_relationship,
    Evidence,
    Group,
    Independent_property,
    Independent_property_relationship,
    Justification,
    Managed_resource,
    Market,
    Observation,
    Product,
    Product_version,
    Product_view_definition,
    Project,
    Project_assignment,
    Representation,
    Representation_item,
    Required_resource,
    Required_resource_assignment,
    Resource_event,
    Resource_property,
    State,
    State_definition,
    State_definition_relationship,
    State_relationship,
    Task_method_state_relationship,
    Task_objective,
    Task_objective_state_relationship,
    Verification,
    Verification_relationship,
    View_definition_relationship,
    Work_request);
END_TYPE;

TYPE evidence_item = SELECT
   (Activity_actual,
    Activity_method,
    Activity_method_assignment,
    Activity_method_relationship,
    Activity_relationship,
    Activity_status,
    Affected_items_assignment,
    Alternate_product_relationship,
    Analysis_assignment,
    Analysis_version,
    Applied_activity_assignment,
    Applied_activity_method_assignment,
    Applied_independent_property,
    Applied_information_usage_right,
    Applied_state_assignment,
    Approval_assignment,
    Assembly_relationship_substitution,
    Assigned_property,
    Behaviour_description_association,
    Breakdown_of,
    Certification_assignment,
    Classification_assignment,
    Condition_assignment,
    Condition_evaluation_assignment,
    Condition_evaluation_parameter,
    Contract_assignment,
    Date_or_date_time_assignment,
    Defined_state_relationship,
    Description_text_assignment,
    Effectivity_assignment,
    Event_assignment,
    Expression_assignment,
    Interface_definition_connection,
    Interface_definition_for,
    Justification_assignment,
    Justification_relationship,
    Justification_support_assignment,
    Location_assignment,
    Observation,
    Observation_consequence,
    Observation_relationship,
    Organization_or_person_in_organization_assignment,
    Person,
    Person_in_organization,
    Person_or_organization_or_person_in_organization_in_position,
    Product,
    Product_design_to_individual,
    Product_version,
    Product_version_relationship,
    Product_view_definition,
    Project_assignment,
    Representation,
    Representation_context,
    Representation_item,
    Required_resource_assignment,
    Resource_as_realized_assignment,
    Resource_as_realized_relationship,
    Resource_event_correspondence_relationship,
    Resource_event_relationship,
    Resource_item_assignment,
    Risk_impact_assignment,
    Risk_perception_source_assignment,
    Security_classification_assignment,
    State,
    State_assertion,
    State_assessment,
    State_relationship,
    Task_io_hierarchy,
    Task_objective_state_relationship,
    Time_interval_assignment,
    Type_of_person_assignment,
    Validation,
    Verification,
    View_definition_context,
    View_definition_relationship,
    Work_order,
    Work_output_assignment,
    Work_request);
END_TYPE;

TYPE evidence_support_item = SELECT
   (Validation,
    Verification);
END_TYPE;

TYPE expression_assignment_item = SELECT
   (Condition);
END_TYPE;

TYPE external_identification_item = SELECT
   (Document_definition,
    File,
    Organization,
    Person_in_organization,
    Product,
    Project,
    Required_resource,
    Work_output);
END_TYPE;

TYPE geometric_item_specific_usage_select = SELECT
   (Shape_element,
    Shape_element_relationship);
END_TYPE;

TYPE groupable_item = SELECT
   (Activity,
    Activity_method,
    Approval,
    Breakdown_of,
    Certification,
    Condition,
    Contract,
    Contract_relationship,
    Effectivity,
    Event,
    Experience_type,
    File,
    Group,
    Group_relationship,
    Interface_connection,
    Interface_definition_for,
    Justification,
    Location,
    Managed_resource,
    Observation,
    Product,
    Project,
    Required_resource,
    Resource_item,
    Resource_item_realization,
    Task_io,
    Verification,
    Work_order,
    Work_output,
    Work_request) ;
WHERE
  WR1: NOT ('AP233_SYSTEMS_ENGINEERING_ARM_LF.GROUP' IN TYPEOF(SELF));
END_TYPE;

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

TYPE identification_item = SELECT
   (Activity,
    Activity_method,
    Activity_method_realization,
    Activity_method_realization_relationship,
    Activity_method_relationship,
    Activity_property,
    Activity_relationship,
    Address,
    Affected_items_assignment,
    Analysis,
    Analysis_version,
    Applied_activity_assignment,
    Applied_activity_method_assignment,
    Applied_state_assignment,
    Applied_state_definition_assignment,
    Approval,
    Approval_status,
    Assembly_component_relationship,
    Assembly_relationship_substitution,
    Assigned_property,
    Assumption,
    Assumption_relationship,
    Behaviour,
    Behaviour_version,
    Behaviour_view_definition,
    Breakdown,
    Breakdown_element,
    Breakdown_element_definition,
    Breakdown_element_version,
    Breakdown_version,
    Certification,
    Class,
    Condition,
    Condition_evaluation,
    Contract,
    Contract_relationship,
    Defined_state_relationship,
    Description_text_assignment,
    Descriptive_document_property,
    Digital_document_definition,
    Digital_file,
    Directed_activity,
    Disposition,
    Document,
    Document_assignment,
    Document_definition_relationship,
    Document_version,
    Effectivity,
    Environment_assignment,
    Environment_definition,
    Environment_definition_version,
    Environment_view_definition_relationship,
    Event,
    Evidence,
    Experience_instance,
    Experience_type,
    External_class_library,
    External_source_identification,
    File,
    Group,
    Group_relationship,
    Hardcopy,
    Identification_relationship,
    Independent_property,
    Independent_property_relationship,
    Information_right,
    Information_usage_right,
    Information_usage_right_relationship,
    Interface_connection,
    Interface_connector_occurrence,
    Interface_definition_connection,
    Interface_definition_for,
    Item_shape,
    Justification,
    Justification_assignment,
    Justification_relationship,
    Justification_support_assignment,
    Location,
    Location_representation,
    Managed_resource,
    Market,
    Numerical_document_property,
    Observation,
    Observation_assignment,
    Observation_consequence,
    Observed_environment,
    Observed_environment_assignment,
    Observed_environment_version,
    Observed_environment_view_definition_relationship,
    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,
    Probability_distribution,
    Product,
    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,
    Representation,
    Representation_item,
    Required_resource,
    Required_resource_relationship,
    Requirement,
    Requirement_assignment,
    Requirement_source,
    Requirement_version,
    Requirement_version_relationship,
    Requirement_view_definition,
    Resource_as_realized,
    Resource_event,
    Resource_item,
    Resource_item_realization,
    Resource_property,
    Risk_impact_assignment,
    Risk_perception_source_assignment,
    Security_classification,
    Security_classification_assignment,
    Shape_element_relationship,
    State,
    State_assertion,
    State_assessment,
    State_definition,
    State_definition_relationship,
    State_relationship,
    State_transition_definition,
    System,
    System_version,
    Task_element_state_relationship,
    Task_method_assignment,
    Task_method_state_relationship,
    Task_method_version_assignment,
    Task_objective,
    Task_objective_state_relationship,
    Type_of_person,
    Type_of_person_definition,
    Validation,
    Verification,
    View_definition_context,
    View_definition_relationship,
    View_definition_usage,
    Work_order,
    Work_output,
    Work_request);
END_TYPE;

TYPE identifier = STRING;
END_TYPE;

TYPE in_zone_item = SELECT
   (Activity_method,
    Applied_activity_method_assignment,
    Interface_connection,
    Interface_connector_occurrence,
    Interface_definition_connection,
    Product_view_definition);
END_TYPE;

TYPE information_usage_right_item = SELECT
   (Activity_method,
    Activity_property,
    Alternate_product_relationship,
    Analysis_assignment,
    Analysis_discipline_definition,
    Applied_information_usage_right,
    Assembly_component_relationship,
    Assembly_relationship_substitution,
    Assigned_property,
    Breakdown,
    Breakdown_element,
    Breakdown_element_realization,
    Breakdown_element_usage,
    Breakdown_version,
    Certification,
    Certification_assignment,
    Contract,
    Contract_relationship,
    Digital_document_definition,
    Digital_file,
    Document,
    Document_definition_relationship,
    Document_version,
    Evidence,
    External_item_identification,
    File_relationship,
    Group,
    Group_relationship,
    Hardcopy,
    In_zone,
    Information_right,
    Information_usage_right,
    Information_usage_right_relationship,
    Interface_connection,
    Interface_connector_occurrence,
    Interface_definition_connection,
    Interface_definition_for,
    Issue,
    Issue_consequence,
    Justification,
    Managed_resource,
    Organization,
    Person_in_organization,
    Physical_document_definition,
    Product,
    Product_as_individual,
    Product_as_individual_view,
    Product_as_planned,
    Product_as_realized,
    Product_configuration,
    Product_version,
    Product_view_definition,
    Project,
    Representation_item,
    Required_resource,
    Requirement,
    Requirement_assignment,
    Requirement_version,
    Requirement_view_definition,
    Resource_item,
    Resource_item_realization,
    Security_classification,
    Security_classification_assignment,
    Supplied_part_relationship,
    Task_element,
    Task_io,
    Task_method,
    Task_method_version,
    Task_objective,
    Validation,
    Verification,
    View_definition_relationship,
    Work_order,
    Work_output);
END_TYPE;

TYPE interface_definition_item = SELECT
   (Interface_connection,
    Interface_connector_occurrence,
    Product_view_definition);
END_TYPE;

TYPE item_usage_relationship_item = SELECT
   (Assembly_component_relationship,
    View_definition_usage);
END_TYPE;

TYPE justification_item = SELECT
   (Activity,
    Activity_method,
    Activity_method_assignment,
    Activity_method_realization,
    Activity_method_realization_relationship,
    Activity_method_relationship,
    Activity_property,
    Affected_items_assignment,
    Analysis_assignment,
    Applied_activity_assignment,
    Applied_activity_method_assignment,
    Applied_information_usage_right,
    Applied_state_assignment,
    Applied_state_definition_assignment,
    Approval,
    Approval_assignment,
    Assembly_component_relationship,
    Assembly_relationship_substitution,
    Assigned_property,
    Assumption,
    Assumption_assignment,
    Assumption_relationship,
    Behaviour_description_association,
    Breakdown_of,
    Certification,
    Classification_assignment,
    Condition,
    Condition_assignment,
    Contract,
    Contract_relationship,
    Description_text,
    Descriptive_document_property,
    Directed_activity,
    Document_assignment,
    Document_definition,
    Document_definition_relationship,
    Effectivity,
    Evidence,
    File_relationship,
    Independent_property,
    Independent_property_relationship,
    Information_usage_right,
    Interface_connection,
    Interface_connector_occurrence,
    Interface_definition_connection,
    Location_assignment,
    Managed_resource_relationship,
    Numerical_document_property,
    Observation,
    Observation_assignment,
    Product,
    Product_version,
    Product_version_relationship,
    Product_view_definition,
    Project_assignment,
    Property_value_representation,
    Qualification_type,
    Required_resource,
    Required_resource_assignment,
    Required_resource_relationship,
    Requirement_assignment,
    Resource_as_realized,
    Resource_event,
    Resource_item,
    Resource_item_assignment,
    Resource_item_realization,
    Resource_item_relationship,
    Resource_property,
    Security_classification,
    State_assertion,
    State_assessment,
    Task_element,
    Task_element_state_relationship,
    Task_io_hierarchy,
    Task_method,
    Task_method_state_relationship,
    Task_method_version,
    Task_objective,
    Task_objective_state_relationship,
    Validation,
    Verification,
    View_definition_relationship,
    Work_order,
    Work_output_assignment,
    Work_request);
END_TYPE;

TYPE justification_support_item = SELECT
   (Activity,
    Activity_method,
    Activity_method_assignment,
    Activity_property,
    Analysis_assignment,
    Applied_activity_assignment,
    Applied_activity_method_assignment,
    Applied_state_assignment,
    Applied_state_definition_assignment,
    Approval,
    Assembly_component_relationship,
    Assigned_property,
    Assumption,
    Assumption_assignment,
    Assumption_relationship,
    Certification,
    Contract,
    Contract_relationship,
    Descriptive_document_property,
    Document,
    Document_definition,
    Document_definition_relationship,
    Document_version,
    Effectivity,
    Event,
    Evidence,
    File_relationship,
    Independent_property,
    Independent_property_relationship,
    Interface_connection,
    Interface_connector_occurrence,
    Interface_definition_connection,
    Location,
    Location_assignment,
    Numerical_document_property,
    Observation,
    Observation_assignment,
    Organization_or_person_in_organization_assignment,
    Product,
    Product_version,
    Product_version_relationship,
    Product_view_definition,
    Project,
    Resource_property,
    Risk_impact_assignment,
    State,
    State_definition,
    State_definition_relationship,
    State_relationship,
    Validation,
    Verification,
    View_definition_context,
    View_definition_relationship,
    Work_order,
    Work_output,
    Work_request);
END_TYPE;

TYPE label = STRING;
END_TYPE;

TYPE length_measure = REAL;
END_TYPE;

TYPE list_of_text_based_item = LIST[1:?] OF Textual_expression_representation_item;
END_TYPE;

TYPE list_or_set_of_text_based_item = SELECT
   (list_of_text_based_item,
    set_of_text_based_item);
END_TYPE;

TYPE location_assignment_select = SELECT
   (Activity,
    Activity_method_assignment,
    Analysis_assignment,
    Applied_activity_assignment,
    Applied_activity_method_assignment,
    Assembly_component_relationship,
    Event,
    File,
    Interface_connection,
    Interface_connector_occurrence,
    Interface_definition_connection,
    Managed_resource,
    Organization,
    Organization_type,
    Person,
    Person_in_organization,
    Position,
    Position_type,
    Product,
    Product_group,
    Product_version,
    Product_view_definition,
    Project,
    Required_resource,
    Required_resource_assignment,
    Resource_item,
    Resource_item_assignment,
    Resource_item_realization,
    Task_element,
    Task_method,
    Task_method_version,
    Type_of_person,
    Validation,
    Verification,
    View_definition_relationship);
END_TYPE;

TYPE measure_value = SELECT
   (any_number_value,
    any_string_value,
    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 month_in_year_number = INTEGER ;
WHERE
  WR1: {1 <= SELF <= 12};
END_TYPE;

TYPE observation_consequence_item = SELECT
   (Activity,
    Work_order,
    Work_request);
END_TYPE;

TYPE observation_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,
    Advisory_note,
    Affected_items_assignment,
    Alternate_product_relationship,
    Analysis_assignment,
    Applied_activity_assignment,
    Applied_activity_method_assignment,
    Applied_information_usage_right,
    Applied_state_assignment,
    Applied_state_definition_assignment,
    Approval,
    Approval_assignment,
    Approval_relationship,
    Approval_status,
    Approving_person_organization,
    Assembly_relationship_substitution,
    Assigned_property,
    Assumption,
    Assumption_assignment,
    Assumption_relationship,
    Attribute_classification,
    Attribute_translation_assignment,
    Axis_placement_mapping,
    Behaviour_description_association,
    Breakdown_context,
    Breakdown_of,
    Calendar_date,
    Certification,
    Certification_assignment,
    Class,
    Classification_assignment,
    Collection_assignment,
    Collection_membership,
    Condition,
    Condition_assignment,
    Condition_evaluation,
    Condition_evaluation_assignment,
    Condition_evaluation_parameter,
    Condition_parameter,
    Condition_relationship,
    Contextual_shape_representation,
    Contract,
    Contract_assignment,
    Contract_relationship,
    Date_or_date_time_assignment,
    Date_time,
    Decision_path,
    Defined_state_relationship,
    Derived_unit_element,
    Description_text,
    Description_text_assignment,
    Document_assignment,
    Document_definition_relationship,
    Effectivity,
    Effectivity_assignment,
    Effectivity_relationship,
    Environment_assignment,
    Event,
    Event_assignment,
    Event_relationship,
    Evidence,
    Experience_gained,
    Experience_instance,
    Experience_type,
    Experience_type_relationship,
    Expression_assignment,
    External_source,
    External_source_identification,
    File,
    File_relationship,
    Function_value_pair,
    Generic_expression,
    Geometric_item_specific_usage,
    Group,
    Group_relationship,
    Identification_assignment,
    Identification_relationship,
    In_zone,
    Independent_property,
    Independent_property_relationship,
    Information_right,
    Information_usage_right,
    Information_usage_right_relationship,
    Interface_connection,
    Interface_connector_occurrence,
    Interface_definition_connection,
    Interface_definition_for,
    Item_assumed,
    Item_design_association,
    Item_shape,
    Item_usage_effectivity,
    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,
    Measure_qualification,
    Name_assignment,
    Observation,
    Observation_assignment,
    Observation_consequence,
    Observation_relationship,
    Observed_environment_assignment,
    Observed_environment_to_definition,
    Observed_environment_to_definition_version,
    Observed_environment_to_definition_view,
    Organization,
    Organization_or_person_in_organization_assignment,
    Organization_organization_type_relationship,
    Organization_relationship,
    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,
    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,
    Precision_qualifier,
    Product,
    Product_concept,
    Product_configuration,
    Product_configuration_relationship,
    Product_definition_element_relationship,
    Product_design_to_individual,
    Product_design_version_to_individual,
    Product_design_view_to_individual,
    Product_group,
    Product_group_membership,
    Product_group_relationship,
    Product_occurrence_definition_relationship,
    Product_planned_to_realized,
    Product_relationship,
    Product_version,
    Product_version_relationship,
    Product_view_definition,
    Project,
    Project_assignment,
    Project_relationship,
    Property_definition_representation,
    Qualification_assignment,
    Qualification_type,
    Qualification_type_relationship,
    Regional_coordinate,
    Related_condition_parameter,
    Representation,
    Representation_context,
    Representation_item,
    Representation_relationship,
    Required_resource,
    Required_resource_assignment,
    Required_resource_relationship,
    Required_resource_requirement,
    Requirement_assignment,
    Requirement_satisfied_by,
    Requirement_source,
    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_realization,
    Resource_item_relationship,
    Resource_property,
    Resource_property_representation,
    Risk_impact_assignment,
    Risk_perception_relationship,
    Risk_perception_source_assignment,
    Same_as_external_item,
    Security_classification,
    Security_classification_assignment,
    Selected_item_assignment,
    Shape_dependent_property_representation,
    Shape_description_association,
    Shape_element,
    Shape_element_relationship,
    State,
    State_assertion,
    State_assessment,
    State_definition,
    State_definition_relationship,
    State_definition_role,
    State_relationship,
    State_role,
    Task_element_state_relationship,
    Task_io_hierarchy,
    Task_method_state_relationship,
    Task_objective,
    Task_objective_state_relationship,
    Time_interval,
    Time_interval_assignment,
    Time_interval_relationship,
    Time_interval_role,
    Time_offset,
    Type_of_person,
    Type_of_person_assignment,
    Type_of_person_definition,
    Type_of_person_definition_relationship,
    Type_of_person_definition_required_attributes_relationship,
    Type_qualifier,
    Uncertainty_qualifier,
    Unit,
    Validation,
    Value_function,
    Value_with_unit,
    Verification,
    Verification_relationship,
    View_definition_context,
    View_definition_relationship,
    Work_order,
    Work_output,
    Work_output_assignment,
    Work_output_relationship,
    Work_request,
    Work_request_status);
END_TYPE;

TYPE observation_recorder = SELECT
   (Person,
    Person_in_organization,
    Product_as_realized,
    Type_of_person_assignment);
END_TYPE;

TYPE observed_context = SELECT
   (Activity,
    Activity_method,
    Activity_property,
    Alternate_product_relationship,
    Analysis_assignment,
    Applied_activity_assignment,
    Applied_activity_method_assignment,
    Applied_state_assignment,
    Applied_state_definition_assignment,
    Approval,
    Approval_assignment,
    Assembly_component_relationship,
    Assembly_relationship_substitution,
    Assigned_property,
    Behaviour_description_association,
    Certification_assignment,
    Condition_assignment,
    Condition_evaluation_assignment,
    Contract_assignment,
    Document_assignment,
    Effectivity_assignment,
    Event_assignment,
    Evidence,
    Interface_connection,
    Interface_connector_occurrence,
    Interface_definition_connection,
    Interface_definition_for,
    Issue,
    Justification_assignment,
    Managed_resource,
    Observation_consequence,
    Product,
    Product_concept,
    Product_configuration,
    Product_design_to_individual,
    Product_group,
    Product_planned_to_realized,
    Product_version,
    Product_version_relationship,
    Product_view_definition,
    Project,
    Project_assignment,
    Property_representation,
    Related_condition_parameter,
    Representation,
    Representation_item,
    Required_resource,
    Required_resource_assignment,
    Requirement_assignment,
    Resource_as_realized,
    Resource_as_realized_assignment,
    Resource_event,
    Resource_item,
    Resource_item_assignment,
    Resource_item_realization,
    Resource_property,
    Risk_impact_assignment,
    Risk_perception_context,
    Risk_perception_source_assignment,
    Security_classification_assignment,
    State,
    State_assertion,
    State_assessment,
    State_definition,
    State_definition_relationship,
    State_relationship,
    State_role,
    Task_objective,
    Verification,
    View_definition_relationship,
    Work_order,
    Work_output,
    Work_request);
END_TYPE;

TYPE observed_environment_item = SELECT
   (Activity,
    Activity_method,
    Environment_definition_view,
    Location,
    Organization,
    Person,
    Product,
    Product_concept,
    Product_group,
    Product_version,
    Validation,
    Verification);
END_TYPE;

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

TYPE organization_or_person_in_organization_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,
    Address,
    Address_assignment,
    Affected_items_assignment,
    Alias_identification,
    Alternate_product_relationship,
    Analysis,
    Analysis_discipline_definition,
    Analysis_version,
    Applied_activity_assignment,
    Applied_activity_method_assignment,
    Applied_state_assignment,
    Applied_state_definition_assignment,
    Approval,
    Approval_status,
    Assembly_component_relationship,
    Assembly_relationship_substitution,
    Assigned_property,
    Assumption,
    Assumption_assignment,
    Assumption_relationship,
    Breakdown,
    Breakdown_element,
    Breakdown_element_realization,
    Breakdown_element_usage,
    Certification,
    Certification_assignment,
    Class,
    Classification_assignment,
    Condition,
    Condition_assignment,
    Condition_evaluation,
    Condition_evaluation_assignment,
    Contract,
    Contract_assignment,
    Contract_relationship,
    Date_or_date_time_assignment,
    Descriptive_document_property,
    Digital_document_definition,
    Digital_file,
    Directed_activity,
    Document,
    Document_assignment,
    Document_definition,
    Document_version,
    Effectivity,
    Effectivity_assignment,
    Event,
    Event_assignment,
    Evidence,
    Hardcopy,
    Identification_assignment,
    Identification_relationship,
    Independent_property,
    Independent_property_relationship,
    Independent_property_representation,
    Information_usage_right,
    Interface_connection,
    Interface_connector_occurrence,
    Interface_definition_connection,
    Interface_definition_for,
    Issue_consequence,
    Item_assumed,
    Justification,
    Justification_assignment,
    Justification_relationship,
    Justification_support_assignment,
    Location_assignment,
    Managed_resource,
    Managed_resource_relationship,
    Numerical_document_property,
    Observation,
    Observation_assignment,
    Organization,
    Organization_or_person_in_organization_assignment,
    Part,
    Part_version,
    Part_view_definition,
    Person,
    Person_in_organization,
    Physical_document_definition,
    Position_assignment,
    Position_group_assignment,
    Position_position_type_assignment,
    Position_type,
    Position_type_assignment,
    Product,
    Product_as_individual,
    Product_as_planned,
    Product_as_realized,
    Product_configuration,
    Product_group,
    Product_group_membership,
    Product_group_relationship,
    Product_relationship,
    Product_version,
    Product_view_definition,
    Project,
    Project_assignment,
    Property_representation,
    Qualification_assignment,
    Qualification_type,
    Representation,
    Required_resource,
    Required_resource_assignment,
    Requirement,
    Requirement_assignment,
    Requirement_collection_relationship,
    Requirement_source,
    Requirement_version_relationship,
    Resource_as_realized,
    Resource_as_realized_assignment,
    Resource_event,
    Resource_item,
    Resource_item_assignment,
    Resource_item_realization,
    Resource_property,
    Resource_property_representation,
    Risk_impact_assignment,
    Risk_perception_source_assignment,
    Scheme,
    Scheme_entry,
    Security_classification,
    Security_classification_assignment,
    Selected_item,
    Selected_item_assignment,
    Shape_element_relationship,
    State,
    State_assertion,
    State_assessment,
    State_definition,
    State_definition_relationship,
    State_relationship,
    Supplied_part_relationship,
    Task_element,
    Task_element_state_relationship,
    Task_method_state_relationship,
    Task_method_version,
    Task_objective,
    Task_objective_state_relationship,
    Tracing_relationship,
    Type_of_person_assignment,
    Validation,
    Verification,
    View_definition_context,
    View_definition_relationship,
    Work_order,
    Work_output,
    Work_request);
END_TYPE;

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

TYPE parameter_value_select = SELECT
   (Generic_expression,
    Product_view_definition,
    Representation,
    Representation_item,
    State_definition,
    State_relationship,
    Value_with_unit);
END_TYPE;

TYPE person_or_organization_or_person_in_organization_select = SELECT
   (Organization,
    Organization_or_person_in_organization_assignment,
    Person,
    Person_in_organization,
    Person_or_organization_or_person_in_organization_in_position,
    Person_or_organization_or_person_in_organization_in_position_relationship,
    Type_of_person,
    Type_of_person_definition_relationship);
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
   (Activity,
    Activity_method,
    Approving_person_organization,
    Document_definition,
    Event,
    Evidence,
    Interface_definition_connection,
    Issue_consequence,
    Location,
    Organization_or_person_in_organization_assignment,
    Product,
    Product_concept,
    Product_configuration,
    Product_group,
    Product_version,
    Product_view_definition,
    Project,
    Required_resource,
    Resource_event,
    Risk_impact_assignment,
    Risk_perception_source_assignment,
    State,
    Verification,
    Work_order,
    Work_output_assignment,
    Work_request);
END_TYPE;

TYPE position_item = SELECT
   (Activity,
    Activity_method,
    Approving_person_organization,
    Document_definition,
    Event,
    Evidence,
    Interface_definition_connection,
    Issue_consequence,
    Location,
    Organization_or_person_in_organization_assignment,
    Product,
    Product_concept,
    Product_configuration,
    Product_group,
    Product_version,
    Product_view_definition,
    Project,
    Required_resource,
    Resource_event,
    Risk_impact_assignment,
    Risk_perception_source_assignment,
    State,
    Verification,
    Work_order,
    Work_output_assignment,
    Work_request);
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
   (Activity,
    Activity_method,
    Approving_person_organization,
    Document_definition,
    Event,
    Evidence,
    Interface_definition_connection,
    Issue_consequence,
    Location,
    Organization_or_person_in_organization_assignment,
    Product,
    Product_concept,
    Product_configuration,
    Product_group,
    Product_version,
    Product_view_definition,
    Project,
    Required_resource,
    Resource_event,
    Risk_impact_assignment,
    Risk_perception_source_assignment,
    State,
    Verification,
    Work_order,
    Work_output_assignment,
    Work_request);
END_TYPE;

TYPE product_based_location_representation = SELECT
   (Activity,
    Activity_method,
    Alternate_product_relationship,
    Assembly_relationship_substitution,
    Breakdown_of,
    Condition_evaluation_parameter,
    Constrained_general_parameter_relationship,
    Event,
    Evidence,
    Interface_connection,
    Interface_connector_occurrence,
    Interface_definition_connection,
    Justification,
    Language_indication,
    Managed_resource,
    Market,
    Observation,
    Organization,
    Organization_type,
    Person_in_organization,
    Product,
    Product_concept,
    Product_version,
    Project,
    Representation,
    Required_resource,
    Resource_event,
    Resource_item,
    Resource_item_realization,
    Resource_property,
    Risk_consequence,
    State,
    State_definition,
    State_relationship,
    Task_io,
    Verification,
    View_definition_relationship,
    Work_output,
    Work_request);
END_TYPE;

TYPE product_design_view_or_configuration = SELECT
   (Product_configuration,
    Product_view_definition);
END_TYPE;

TYPE product_item = SELECT
   (Assembly_component_relationship,
    Interface_connector_occurrence,
    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 product_version_or_configuration = SELECT
   (Product_configuration,
    Product_version);
END_TYPE;

TYPE project_item = SELECT
   (Activity,
    Activity_method,
    Activity_method_realization,
    Activity_method_realization_relationship,
    Activity_method_relationship,
    Alternate_product_relationship,
    Applied_activity_assignment,
    Applied_activity_method_assignment,
    Assembly_component_relationship,
    Assembly_relationship_substitution,
    Breakdown,
    Independent_property,
    Interface_connection,
    Interface_definition_connection,
    Organization,
    Person_in_organization,
    Product,
    Product_concept,
    Product_configuration,
    Product_group,
    Product_group_membership,
    Product_group_relationship,
    Product_version,
    Product_view_definition,
    Representation,
    Risk_impact_assignment,
    Risk_perception_context,
    Risk_perception_source_assignment,
    Risk_relationship,
    Task_objective,
    View_definition_relationship);
END_TYPE;

TYPE property_assignment_select = SELECT
   (Activity,
    Activity_happening,
    Activity_method,
    Address,
    Alternate_product_relationship,
    Analysis_assignment,
    Applied_activity_assignment,
    Applied_activity_method_assignment,
    Applied_state_assignment,
    Applied_state_definition_assignment,
    Assembly_component_relationship,
    Breakdown_element_realization,
    Breakdown_element_usage,
    Condition_evaluation_parameter,
    Condition_parameter,
    Document_assignment,
    Document_definition,
    Event,
    Evidence,
    Experience_instance,
    File,
    Generic_expression,
    In_zone,
    Independent_property,
    Independent_property_relationship,
    Information_usage_right,
    Interface_connection,
    Interface_connector_occurrence,
    Interface_definition_connection,
    Location_assignment,
    Observation_consequence,
    Organization_or_person_in_organization_assignment,
    Part_view_definition,
    Person,
    Person_in_organization,
    Product,
    Product_concept,
    Product_configuration,
    Product_group,
    Product_group_membership,
    Product_version,
    Product_version_relationship,
    Product_view_definition,
    Project,
    Property_definition_representation,
    Related_condition_parameter,
    Representation,
    Representation_context,
    Representation_item,
    Requirement_source,
    Risk_impact_assignment,
    Risk_perception,
    Security_classification,
    State,
    State_assertion,
    State_assessment,
    State_definition,
    State_definition_relationship,
    State_relationship,
    Task_io_hierarchy,
    Task_method_state_relationship,
    Task_objective,
    Task_objective_state_relationship,
    Type_of_person_definition,
    Verification,
    Verification_relationship,
    View_definition_relationship,
    Work_order,
    Work_request);
END_TYPE;

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

TYPE representation_proxy_select = SELECT
   (Collection_version,
    Document_version,
    Scheme_entry,
    State_definition,
    State_transition_definition);
END_TYPE;

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

TYPE required_resource_item = SELECT
   (Activity,
    Activity_method,
    Analysis_assignment,
    Applied_activity_assignment,
    Certification_assignment,
    Condition_evaluation_assignment,
    Contract_assignment,
    Event,
    Interface_connection,
    Interface_connector_occurrence,
    Interface_definition_connection,
    Interface_definition_for,
    Issue,
    Justification,
    Managed_resource,
    Organization,
    Person_in_organization,
    Position,
    Position_type,
    Product,
    Product_version,
    Product_view_definition,
    Project,
    State_definition,
    Task_method_assignment,
    Task_method_version_assignment,
    Type_of_person,
    Verification,
    Work_order);
END_TYPE;

TYPE requirement_assignment_item = SELECT
   (Activity_method,
    Activity_property,
    Alternate_product_relationship,
    Analysis_discipline_definition,
    Applied_activity_method_assignment,
    Applied_state_assignment,
    Applied_state_definition_assignment,
    Assembly_component_relationship,
    Assembly_relationship_substitution,
    Breakdown_element_realization,
    Document_version,
    In_zone,
    Interface_connector_occurrence,
    Interface_definition_for,
    Product,
    Product_configuration,
    Product_version,
    Product_view_definition,
    Project,
    Required_resource_by_reference,
    Required_resource_by_requirement,
    State,
    State_definition,
    Validation,
    Verification,
    View_definition_relationship,
    Work_output,
    Work_request);
END_TYPE;

TYPE requirement_satisfaction_item = SELECT
   (requirement_assignment_item);
END_TYPE;

TYPE requirement_source_item = SELECT
   (Activity_method,
    Alternate_product_relationship,
    Analysis_discipline_definition,
    Applied_activity_method_assignment,
    Applied_state_assignment,
    Applied_state_definition_assignment,
    Approval_assignment,
    Approving_person_organization,
    Assembly_component_relationship,
    Certification_assignment,
    Contract_assignment,
    Directed_activity,
    Document_version,
    In_zone,
    Interface_connector_occurrence,
    Interface_definition_for,
    Observation,
    Organization,
    Organization_or_person_in_organization_assignment,
    Person_in_organization,
    Product,
    Product_concept,
    Product_version,
    Product_view_definition,
    Project_assignment,
    Resource_event,
    Shape_element,
    State,
    State_definition,
    Validation,
    Verification,
    View_definition_relationship);
END_TYPE;

TYPE resource_as_realized_item = SELECT
   (Activity_actual,
    Activity_method,
    Activity_method_assignment,
    Activity_method_realization,
    Activity_method_relationship,
    Affected_items_assignment,
    Analysis_assignment,
    Applied_activity_assignment,
    Applied_activity_method_assignment,
    Behaviour_description_association,
    Certification,
    Certification_assignment,
    Condition_evaluation_assignment,
    Contract,
    Contract_assignment,
    Contract_relationship,
    Directed_activity,
    Event,
    Event_assignment,
    Evidence,
    Interface_connection,
    Interface_definition_connection,
    Interface_definition_for,
    Observation,
    Observation_assignment,
    Observation_consequence,
    Product,
    Product_version,
    Product_version_relationship,
    Product_view_definition,
    Project,
    Project_assignment,
    Representation,
    Representation_item,
    Requirement_assignment,
    Resource_event,
    Resource_event_correspondence_relationship,
    Resource_event_relationship,
    Risk_impact_assignment,
    Risk_perception_context,
    Security_classification_assignment,
    State,
    State_assessment,
    State_definition,
    State_definition_relationship,
    State_relationship,
    State_role,
    Task_io_hierarchy,
    Task_objective,
    Verification,
    Work_output_assignment);
END_TYPE;

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

TYPE resource_assignment_item = SELECT
   (Activity_method,
    Analysis_assignment,
    Contract,
    Contract_relationship,
    Event,
    Evidence,
    Interface_connector_occurrence,
    Location,
    Managed_resource,
    Person_in_organization,
    Position_group_assignment,
    Product,
    Product_as_individual,
    Product_as_individual_version,
    Product_as_individual_view,
    Product_group,
    Product_version,
    Product_view_definition,
    Project,
    Work_order);
END_TYPE;

TYPE resource_item_select = SELECT
   (Document,
    Document_definition,
    Document_version,
    File,
    Location,
    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,
    Type_of_person,
    Work_order);
END_TYPE;

TYPE resource_requirement_select = SELECT
   (Requirement_version);
END_TYPE;

TYPE risk_impact_item = SELECT
   (Activity,
    Activity_method,
    Activity_method_realization_relationship,
    Activity_property,
    Activity_relationship,
    Alternate_product_relationship,
    Applied_activity_assignment,
    Applied_state_assignment,
    Approval,
    Assembly_relationship_substitution,
    Breakdown_context,
    Breakdown_of,
    Condition,
    Defined_state_relationship,
    Evidence,
    Independent_property,
    Independent_property_relationship,
    Interface_connection,
    Interface_connector_occurrence,
    Interface_definition_connection,
    Issue,
    Issue_consequence,
    Managed_resource,
    Managed_resource_relationship,
    Market,
    Organization,
    Organization_or_person_in_organization_assignment,
    Person,
    Person_in_organization,
    Product,
    Product_version,
    Product_version_relationship,
    Product_view_definition,
    Project,
    Project_assignment,
    Representation,
    Representation_item,
    Required_resource,
    Required_resource_assignment,
    Requirement_assignment,
    Requirement_source,
    Resource_event,
    Resource_item,
    Resource_item_assignment,
    Resource_item_relationship,
    Resource_property,
    State,
    State_assertion,
    State_assessment,
    State_definition_relationship,
    State_relationship,
    Task_method_state_relationship,
    Task_objective,
    Task_objective_state_relationship,
    Verification,
    Verification_relationship,
    View_definition_relationship);
END_TYPE;

TYPE risk_perception_source_item = SELECT
   (Activity,
    Activity_method,
    Activity_property,
    Activity_relationship,
    Alternate_product_relationship,
    Applied_state_assignment,
    Approval,
    Approving_person_organization,
    Assembly_component_relationship,
    Assembly_relationship_substitution,
    Assigned_property,
    Breakdown_context,
    Breakdown_of,
    Certification_assignment,
    Condition,
    Condition_evaluation_parameter,
    Contract,
    Contract_assignment,
    Contract_relationship,
    Defined_state_relationship,
    Document_assignment,
    Effectivity_assignment,
    Evidence,
    Experience_gained,
    Experience_instance,
    Expression_assignment,
    File,
    Generic_expression,
    Independent_property,
    Independent_property_relationship,
    Information_right,
    Information_usage_right,
    Interface_connection,
    Interface_connector_occurrence,
    Interface_definition_connection,
    Interface_definition_for,
    Justification,
    Justification_assignment,
    Justification_relationship,
    Justification_support_assignment,
    Managed_resource,
    Managed_resource_relationship,
    Market,
    Observation,
    Observation_consequence,
    Observation_relationship,
    Organization,
    Organization_or_person_in_organization_assignment,
    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,
    Position_group_assignment,
    Position_group_relationship,
    Position_position_type_assignment,
    Position_relationship,
    Position_role,
    Position_type,
    Position_type_assignment,
    Position_type_role,
    Product,
    Product_concept,
    Product_design_to_individual,
    Product_design_version_to_individual,
    Product_group,
    Product_group_relationship,
    Product_planned_to_realized,
    Product_version,
    Product_version_relationship,
    Product_view_definition,
    Project,
    Project_assignment,
    Project_relationship,
    Qualification_assignment,
    Qualification_type,
    Representation,
    Representation_item,
    Required_resource,
    Required_resource_assignment,
    Requirement_assignment,
    Requirement_source,
    Resource_as_realized,
    Resource_event,
    Resource_item,
    Resource_item_assignment,
    Resource_item_realization,
    Resource_item_relationship,
    Resource_property,
    Selected_item,
    Selected_item_assignment,
    State,
    State_assertion,
    State_assessment,
    State_definition,
    State_definition_relationship,
    State_relationship,
    Task_method_state_relationship,
    Task_objective,
    Task_objective_state_relationship,
    Type_of_person,
    Type_of_person_assignment,
    Type_of_person_definition,
    Type_of_person_definition_relationship,
    Type_of_person_definition_required_attributes_relationship,
    Verification,
    Verification_relationship,
    View_definition_relationship,
    Work_order,
    Work_output,
    Work_output_assignment);
END_TYPE;

TYPE same_as_item = SELECT
   (Activity,
    Activity_method,
    Activity_method_realization,
    Activity_property,
    Activity_status,
    Address,
    Approval,
    Approval_status,
    Assumption,
    Breakdown_context,
    Calendar_date,
    Certification,
    Condition,
    Condition_evaluation,
    Condition_evaluation_parameter,
    Condition_parameter,
    Contract,
    Date_time,
    Derived_unit_element,
    Description_text,
    Event,
    Evidence,
    Experience_gained,
    Experience_instance,
    Experience_type,
    External_source,
    External_source_identification,
    Independent_property,
    Information_right,
    Information_usage_right,
    Item_assumed,
    Item_usage_effectivity,
    Justification,
    Language,
    Language_indication,
    Local_time,
    Location,
    Location_representation,
    Managed_resource,
    Market,
    Measure_qualification,
    Observation,
    Observation_consequence,
    Organization,
    Organization_type,
    Organizational_location_identification,
    Person,
    Position,
    Position_group,
    Position_group_role,
    Position_role,
    Position_type,
    Position_type_role,
    Precision_qualifier,
    Product,
    Product_concept,
    Product_version,
    Product_view_definition,
    Qualification_type,
    Regional_coordinate,
    Related_condition_parameter,
    Representation_context,
    Required_resource,
    Required_resource_requirement,
    Requirement_source,
    Resource_as_realized,
    Resource_event,
    Resource_item,
    Resource_property,
    Security_classification,
    State,
    State_assertion,
    State_assessment,
    State_definition,
    State_definition_role,
    State_role,
    Task_objective,
    Time_interval,
    Time_offset,
    Type_of_person,
    Type_of_person_definition,
    Type_qualifier,
    Uncertainty_qualifier,
    Unit,
    Value_with_unit,
    View_definition_context,
    Work_request_status);
END_TYPE;

TYPE scheme_entry_item_select = activity_method_item ;
WHERE
  wr1: NOT ('SCHEME_ARM.ACTIVITY' IN TYPEOF(SELF));
  wr2: NOT ('SCHEME_ARM.ACTIVITY_METHOD' IN TYPEOF(SELF));
  wr3: NOT ('SCHEME_ARM.ACTIVITY_PROPERTY' IN TYPEOF(SELF));
  wr4: NOT ('SCHEME_ARM.ANALYSIS_ASSIGNMENT' IN TYPEOF(SELF));
  wr5: NOT ('SCHEME_ARM.APPLIED_ACTIVITY_ASSIGNMENT' IN TYPEOF(SELF));
  wr6: NOT ('SCHEME_ARM.APPROVAL_ASSIGNMENT' IN TYPEOF(SELF));
  wr7: NOT ('SCHEME_ARM.ASSEMBLY_COMPONENT_RELATIONSHIP' IN TYPEOF(SELF));
  wr8: NOT ('SCHEME_ARM.ASSIGNED_PROPERTY' IN TYPEOF(SELF));
  wr9: NOT ('SCHEME_ARM.BEHAVIOUR_DESCRIPTION_ASSOCIATION' IN TYPEOF(SELF));
  wr10: NOT ('SCHEME_ARM.BREAKDOWN_ELEMENT' IN TYPEOF(SELF));
  wr11: NOT ('SCHEME_ARM.BREAKDOWN_ELEMENT_DEFINITION' IN TYPEOF(SELF));
  wr12: NOT ('SCHEME_ARM.BREAKDOWN_ELEMENT_USAGE' IN TYPEOF(SELF));
  wr13: NOT ('SCHEME_ARM.BREAKDOWN_ELEMENT_VERSION' IN TYPEOF(SELF));
  wr14: NOT ('SCHEME_ARM.CERTIFICATION' IN TYPEOF(SELF));
  wr15: NOT ('SCHEME_ARM.CONDITION' IN TYPEOF(SELF));
  wr16: NOT ('SCHEME_ARM.CONTRACT' IN TYPEOF(SELF));
  wr17: NOT ('SCHEME_ARM.CONTRACT_RELATIONSHIP' IN TYPEOF(SELF));
  wr18: NOT ('SCHEME_ARM.DATE_OR_DATE_TIME_ASSIGNMENT' IN TYPEOF(SELF));
  wr19: NOT ('SCHEME_ARM.EVENT' IN TYPEOF(SELF));
  wr20: NOT ('SCHEME_ARM.FILE' IN TYPEOF(SELF));
  wr21: NOT ('SCHEME_ARM.IN_ZONE' IN TYPEOF(SELF));
  wr22: NOT ('SCHEME_ARM.INTERFACE_CONNECTION' IN TYPEOF(SELF));
  wr23: NOT ('SCHEME_ARM.INTERFACE_CONNECTOR_OCCURRENCE' IN TYPEOF(SELF));
  wr24: NOT ('SCHEME_ARM.INTERFACE_DEFINITION_CONNECTION' IN TYPEOF(SELF));
  wr25: NOT ('SCHEME_ARM.JUSTIFICATION' IN TYPEOF(SELF));
  wr26: NOT ('SCHEME_ARM.LOCATION' IN TYPEOF(SELF));
  wr27: NOT ('SCHEME_ARM.MANAGED_RESOURCE' IN TYPEOF(SELF));
  wr28: NOT ('SCHEME_ARM.OBSERVATION' IN TYPEOF(SELF));
  wr29: NOT ('SCHEME_ARM.OBSERVATION_CONSEQUENCE' IN TYPEOF(SELF));
  wr30: NOT ('SCHEME_ARM.ORGANIZATION' IN TYPEOF(SELF));
  wr31: NOT ('SCHEME_ARM.ORGANIZATION_TYPE' IN TYPEOF(SELF));
  wr32: NOT ('SCHEME_ARM.PERSON' IN TYPEOF(SELF));
  wr33: NOT ('SCHEME_ARM.PERSON_IN_ORGANIZATION' IN TYPEOF(SELF));
  wr34: NOT ('SCHEME_ARM.POSITION' IN TYPEOF(SELF));
  wr35: NOT ('SCHEME_ARM.POSITION_GROUP' IN TYPEOF(SELF));
  wr36: NOT ('SCHEME_ARM.POSITION_TYPE' IN TYPEOF(SELF));
  wr37: NOT ('SCHEME_ARM.PRODUCT' IN TYPEOF(SELF));
  wr38: NOT ('SCHEME_ARM.PRODUCT_AS_INDIVIDUAL' IN TYPEOF(SELF));
  wr39: NOT ('SCHEME_ARM.PRODUCT_AS_INDIVIDUAL_VERSION' IN TYPEOF(SELF));
  wr40: NOT ('SCHEME_ARM.PRODUCT_AS_INDIVIDUAL_VIEW' IN TYPEOF(SELF));
  wr41: NOT ('SCHEME_ARM.PRODUCT_BASED_LOCATION_IDENTIFICATION' IN TYPEOF(SELF));
  wr42: NOT ('SCHEME_ARM.PRODUCT_CONCEPT' IN TYPEOF(SELF));
  wr43: NOT ('SCHEME_ARM.PRODUCT_CONFIGURATION' IN TYPEOF(SELF));
  wr44: NOT ('SCHEME_ARM.PRODUCT_GROUP' IN TYPEOF(SELF));
  wr45: NOT ('SCHEME_ARM.PRODUCT_GROUP_MEMBERSHIP' IN TYPEOF(SELF));
  wr46: NOT ('SCHEME_ARM.PRODUCT_VERSION' IN TYPEOF(SELF));
  wr47: NOT ('SCHEME_ARM.PRODUCT_VERSION_RELATIONSHIP' IN TYPEOF(SELF));
  wr48: NOT ('SCHEME_ARM.PRODUCT_VIEW_DEFINITION' IN TYPEOF(SELF));
  wr49: NOT ('SCHEME_ARM.PROJECT' IN TYPEOF(SELF));
  wr50: NOT ('SCHEME_ARM.REQUIRED_RESOURCE' IN TYPEOF(SELF));
  wr51: NOT ('SCHEME_ARM.REQUIRED_RESOURCE_ASSIGNMENT' IN TYPEOF(SELF));
  wr52: NOT ('SCHEME_ARM.REQUIREMENT_ASSIGNMENT' IN TYPEOF(SELF));
  wr53: NOT ('SCHEME_ARM.RESOURCE_AS_REALIZED' IN TYPEOF(SELF));
  wr54: NOT ('SCHEME_ARM.RESOURCE_EVENT' IN TYPEOF(SELF));
  wr55: NOT ('SCHEME_ARM.RESOURCE_ITEM' IN TYPEOF(SELF));
  wr56: NOT ('SCHEME_ARM.RESOURCE_ITEM_REALIZATION' IN TYPEOF(SELF));
  wr57: NOT ('SCHEME_ARM.RESOURCE_PROPERTY' IN TYPEOF(SELF));
  wr58: NOT ('SCHEME_ARM.RISK_IMPACT_ASSIGNMENT' IN TYPEOF(SELF));
  wr59: NOT ('SCHEME_ARM.RISK_PERCEPTION' IN TYPEOF(SELF));
  wr60: NOT ('SCHEME_ARM.RISK_PERCEPTION_SOURCE_ASSIGNMENT' IN TYPEOF(SELF));
  wr61: NOT ('SCHEME_ARM.SCHEME_ENTRY' IN TYPEOF(SELF));
  wr62: NOT ('SCHEME_ARM.SECURITY_CLASSIFICATION' IN TYPEOF(SELF));
  wr63: NOT ('SCHEME_ARM.STATE_DEFINITION' IN TYPEOF(SELF));
  wr64: NOT ('SCHEME_ARM.STATE_RELATIONSHIP' IN TYPEOF(SELF));
  wr65: NOT ('SCHEME_ARM.TASK_IO' IN TYPEOF(SELF));
  wr66: NOT ('SCHEME_ARM.TASK_IO_HIERARCHY' IN TYPEOF(SELF));
  wr67: NOT ('SCHEME_ARM.TASK_METHOD' IN TYPEOF(SELF));
  wr68: NOT ('SCHEME_ARM.TASK_METHOD_VERSION' IN TYPEOF(SELF));
  wr69: NOT ('SCHEME_ARM.TASK_OBJECTIVE' IN TYPEOF(SELF));
  wr70: NOT ('SCHEME_ARM.TYPE_OF_PERSON' IN TYPEOF(SELF));
  wr71: NOT ('SCHEME_ARM.TYPE_OF_PERSON_DEFINITION' IN TYPEOF(SELF));
  wr72: NOT ('SCHEME_ARM.VERIFICATION' IN TYPEOF(SELF));
  wr73: NOT ('SCHEME_ARM.VIEW_DEFINITION_RELATIONSHIP' IN TYPEOF(SELF));
  wr74: NOT ('SCHEME_ARM.WORK_OUTPUT' IN TYPEOF(SELF));
  wr75: NOT ('SCHEME_ARM.WORK_OUTPUT_ASSIGNMENT' IN TYPEOF(SELF));
END_TYPE;

TYPE scheme_subject_select = activity_method_item ;
WHERE
  wr1: NOT ('SCHEME_ARM.ACTIVITY' IN TYPEOF(SELF));
  wr2: NOT ('SCHEME_ARM.ACTIVITY_METHOD' IN TYPEOF(SELF));
  wr3: NOT ('SCHEME_ARM.ACTIVITY_PROPERTY' IN TYPEOF(SELF));
  wr4: NOT ('SCHEME_ARM.ANALYSIS_ASSIGNMENT' IN TYPEOF(SELF));
  wr5: NOT ('SCHEME_ARM.APPLIED_ACTIVITY_ASSIGNMENT' IN TYPEOF(SELF));
  wr6: NOT ('SCHEME_ARM.APPROVAL_ASSIGNMENT' IN TYPEOF(SELF));
  wr7: NOT ('SCHEME_ARM.ASSEMBLY_COMPONENT_RELATIONSHIP' IN TYPEOF(SELF));
  wr8: NOT ('SCHEME_ARM.ASSIGNED_PROPERTY' IN TYPEOF(SELF));
  wr9: NOT ('SCHEME_ARM.BEHAVIOUR_DESCRIPTION_ASSOCIATION' IN TYPEOF(SELF));
  wr10: NOT ('SCHEME_ARM.BREAKDOWN_ELEMENT' IN TYPEOF(SELF));
  wr11: NOT ('SCHEME_ARM.BREAKDOWN_ELEMENT_DEFINITION' IN TYPEOF(SELF));
  wr12: NOT ('SCHEME_ARM.BREAKDOWN_ELEMENT_USAGE' IN TYPEOF(SELF));
  wr13: NOT ('SCHEME_ARM.BREAKDOWN_ELEMENT_VERSION' IN TYPEOF(SELF));
  wr14: NOT ('SCHEME_ARM.CERTIFICATION' IN TYPEOF(SELF));
  wr15: NOT ('SCHEME_ARM.CONDITION' IN TYPEOF(SELF));
  wr16: NOT ('SCHEME_ARM.CONTRACT' IN TYPEOF(SELF));
  wr17: NOT ('SCHEME_ARM.CONTRACT_RELATIONSHIP' IN TYPEOF(SELF));
  wr18: NOT ('SCHEME_ARM.DATE_OR_DATE_TIME_ASSIGNMENT' IN TYPEOF(SELF));
  wr19: NOT ('SCHEME_ARM.EVENT' IN TYPEOF(SELF));
  wr20: NOT ('SCHEME_ARM.FILE' IN TYPEOF(SELF));
  wr21: NOT ('SCHEME_ARM.IN_ZONE' IN TYPEOF(SELF));
  wr22: NOT ('SCHEME_ARM.INTERFACE_CONNECTION' IN TYPEOF(SELF));
  wr23: NOT ('SCHEME_ARM.INTERFACE_CONNECTOR_OCCURRENCE' IN TYPEOF(SELF));
  wr24: NOT ('SCHEME_ARM.INTERFACE_DEFINITION_CONNECTION' IN TYPEOF(SELF));
  wr25: NOT ('SCHEME_ARM.JUSTIFICATION' IN TYPEOF(SELF));
  wr26: NOT ('SCHEME_ARM.LOCATION' IN TYPEOF(SELF));
  wr27: NOT ('SCHEME_ARM.MANAGED_RESOURCE' IN TYPEOF(SELF));
  wr28: NOT ('SCHEME_ARM.OBSERVATION' IN TYPEOF(SELF));
  wr29: NOT ('SCHEME_ARM.OBSERVATION_CONSEQUENCE' IN TYPEOF(SELF));
  wr30: NOT ('SCHEME_ARM.ORGANIZATION' IN TYPEOF(SELF));
  wr31: NOT ('SCHEME_ARM.ORGANIZATION_TYPE' IN TYPEOF(SELF));
  wr32: NOT ('SCHEME_ARM.PERSON' IN TYPEOF(SELF));
  wr33: NOT ('SCHEME_ARM.PERSON_IN_ORGANIZATION' IN TYPEOF(SELF));
  wr34: NOT ('SCHEME_ARM.POSITION' IN TYPEOF(SELF));
  wr35: NOT ('SCHEME_ARM.POSITION_GROUP' IN TYPEOF(SELF));
  wr36: NOT ('SCHEME_ARM.POSITION_TYPE' IN TYPEOF(SELF));
  wr37: NOT ('SCHEME_ARM.PRODUCT' IN TYPEOF(SELF));
  wr38: NOT ('SCHEME_ARM.PRODUCT_AS_INDIVIDUAL' IN TYPEOF(SELF));
  wr39: NOT ('SCHEME_ARM.PRODUCT_AS_INDIVIDUAL_VERSION' IN TYPEOF(SELF));
  wr40: NOT ('SCHEME_ARM.PRODUCT_AS_INDIVIDUAL_VIEW' IN TYPEOF(SELF));
  wr41: NOT ('SCHEME_ARM.PRODUCT_BASED_LOCATION_IDENTIFICATION' IN TYPEOF(SELF));
  wr42: NOT ('SCHEME_ARM.PRODUCT_CONCEPT' IN TYPEOF(SELF));
  wr43: NOT ('SCHEME_ARM.PRODUCT_CONFIGURATION' IN TYPEOF(SELF));
  wr44: NOT ('SCHEME_ARM.PRODUCT_GROUP' IN TYPEOF(SELF));
  wr45: NOT ('SCHEME_ARM.PRODUCT_GROUP_MEMBERSHIP' IN TYPEOF(SELF));
  wr46: NOT ('SCHEME_ARM.PRODUCT_VERSION' IN TYPEOF(SELF));
  wr47: NOT ('SCHEME_ARM.PRODUCT_VERSION_RELATIONSHIP' IN TYPEOF(SELF));
  wr48: NOT ('SCHEME_ARM.PRODUCT_VIEW_DEFINITION' IN TYPEOF(SELF));
  wr49: NOT ('SCHEME_ARM.PROJECT' IN TYPEOF(SELF));
  wr50: NOT ('SCHEME_ARM.REQUIRED_RESOURCE' IN TYPEOF(SELF));
  wr51: NOT ('SCHEME_ARM.REQUIRED_RESOURCE_ASSIGNMENT' IN TYPEOF(SELF));
  wr52: NOT ('SCHEME_ARM.REQUIREMENT_ASSIGNMENT' IN TYPEOF(SELF));
  wr53: NOT ('SCHEME_ARM.RESOURCE_AS_REALIZED' IN TYPEOF(SELF));
  wr54: NOT ('SCHEME_ARM.RESOURCE_EVENT' IN TYPEOF(SELF));
  wr55: NOT ('SCHEME_ARM.RESOURCE_ITEM' IN TYPEOF(SELF));
  wr56: NOT ('SCHEME_ARM.RESOURCE_ITEM_REALIZATION' IN TYPEOF(SELF));
  wr57: NOT ('SCHEME_ARM.RESOURCE_PROPERTY' IN TYPEOF(SELF));
  wr58: NOT ('SCHEME_ARM.RISK_IMPACT_ASSIGNMENT' IN TYPEOF(SELF));
  wr59: NOT ('SCHEME_ARM.RISK_PERCEPTION' IN TYPEOF(SELF));
  wr60: NOT ('SCHEME_ARM.RISK_PERCEPTION_SOURCE_ASSIGNMENT' IN TYPEOF(SELF));
  wr61: NOT ('SCHEME_ARM.SCHEME_ENTRY' IN TYPEOF(SELF));
  wr62: NOT ('SCHEME_ARM.SECURITY_CLASSIFICATION' IN TYPEOF(SELF));
  wr63: NOT ('SCHEME_ARM.STATE_DEFINITION' IN TYPEOF(SELF));
  wr64: NOT ('SCHEME_ARM.STATE_RELATIONSHIP' IN TYPEOF(SELF));
  wr65: NOT ('SCHEME_ARM.TASK_IO' IN TYPEOF(SELF));
  wr66: NOT ('SCHEME_ARM.TASK_IO_HIERARCHY' IN TYPEOF(SELF));
  wr67: NOT ('SCHEME_ARM.TASK_METHOD' IN TYPEOF(SELF));
  wr68: NOT ('SCHEME_ARM.TASK_METHOD_VERSION' IN TYPEOF(SELF));
  wr69: NOT ('SCHEME_ARM.TASK_OBJECTIVE' IN TYPEOF(SELF));
  wr70: NOT ('SCHEME_ARM.TYPE_OF_PERSON' IN TYPEOF(SELF));
  wr71: NOT ('SCHEME_ARM.TYPE_OF_PERSON_DEFINITION' IN TYPEOF(SELF));
  wr72: NOT ('SCHEME_ARM.VERIFICATION' IN TYPEOF(SELF));
  wr73: NOT ('SCHEME_ARM.VIEW_DEFINITION_RELATIONSHIP' IN TYPEOF(SELF));
  wr74: NOT ('SCHEME_ARM.WORK_OUTPUT' IN TYPEOF(SELF));
  wr75: NOT ('SCHEME_ARM.WORK_OUTPUT_ASSIGNMENT' IN TYPEOF(SELF));
END_TYPE;

TYPE scheme_version_select = activity_method_item ;
WHERE
  wr1: NOT ('SCHEME_ARM.ACTIVITY' IN TYPEOF(SELF));
  wr2: NOT ('SCHEME_ARM.ACTIVITY_METHOD' IN TYPEOF(SELF));
  wr3: NOT ('SCHEME_ARM.ACTIVITY_PROPERTY' IN TYPEOF(SELF));
  wr4: NOT ('SCHEME_ARM.ANALYSIS_ASSIGNMENT' IN TYPEOF(SELF));
  wr5: NOT ('SCHEME_ARM.APPLIED_ACTIVITY_ASSIGNMENT' IN TYPEOF(SELF));
  wr6: NOT ('SCHEME_ARM.APPROVAL_ASSIGNMENT' IN TYPEOF(SELF));
  wr7: NOT ('SCHEME_ARM.ASSEMBLY_COMPONENT_RELATIONSHIP' IN TYPEOF(SELF));
  wr8: NOT ('SCHEME_ARM.ASSIGNED_PROPERTY' IN TYPEOF(SELF));
  wr9: NOT ('SCHEME_ARM.BEHAVIOUR_DESCRIPTION_ASSOCIATION' IN TYPEOF(SELF));
  wr10: NOT ('SCHEME_ARM.BREAKDOWN_ELEMENT' IN TYPEOF(SELF));
  wr11: NOT ('SCHEME_ARM.BREAKDOWN_ELEMENT_DEFINITION' IN TYPEOF(SELF));
  wr12: NOT ('SCHEME_ARM.BREAKDOWN_ELEMENT_USAGE' IN TYPEOF(SELF));
  wr13: NOT ('SCHEME_ARM.BREAKDOWN_ELEMENT_VERSION' IN TYPEOF(SELF));
  wr14: NOT ('SCHEME_ARM.CERTIFICATION' IN TYPEOF(SELF));
  wr15: NOT ('SCHEME_ARM.CONDITION' IN TYPEOF(SELF));
  wr16: NOT ('SCHEME_ARM.CONTRACT' IN TYPEOF(SELF));
  wr17: NOT ('SCHEME_ARM.CONTRACT_RELATIONSHIP' IN TYPEOF(SELF));
  wr18: NOT ('SCHEME_ARM.DATE_OR_DATE_TIME_ASSIGNMENT' IN TYPEOF(SELF));
  wr19: NOT ('SCHEME_ARM.EVENT' IN TYPEOF(SELF));
  wr20: NOT ('SCHEME_ARM.FILE' IN TYPEOF(SELF));
  wr21: NOT ('SCHEME_ARM.IN_ZONE' IN TYPEOF(SELF));
  wr22: NOT ('SCHEME_ARM.INTERFACE_CONNECTION' IN TYPEOF(SELF));
  wr23: NOT ('SCHEME_ARM.INTERFACE_CONNECTOR_OCCURRENCE' IN TYPEOF(SELF));
  wr24: NOT ('SCHEME_ARM.INTERFACE_DEFINITION_CONNECTION' IN TYPEOF(SELF));
  wr25: NOT ('SCHEME_ARM.JUSTIFICATION' IN TYPEOF(SELF));
  wr26: NOT ('SCHEME_ARM.LOCATION' IN TYPEOF(SELF));
  wr27: NOT ('SCHEME_ARM.MANAGED_RESOURCE' IN TYPEOF(SELF));
  wr28: NOT ('SCHEME_ARM.OBSERVATION' IN TYPEOF(SELF));
  wr29: NOT ('SCHEME_ARM.OBSERVATION_CONSEQUENCE' IN TYPEOF(SELF));
  wr30: NOT ('SCHEME_ARM.ORGANIZATION' IN TYPEOF(SELF));
  wr31: NOT ('SCHEME_ARM.ORGANIZATION_TYPE' IN TYPEOF(SELF));
  wr32: NOT ('SCHEME_ARM.PERSON' IN TYPEOF(SELF));
  wr33: NOT ('SCHEME_ARM.PERSON_IN_ORGANIZATION' IN TYPEOF(SELF));
  wr34: NOT ('SCHEME_ARM.POSITION' IN TYPEOF(SELF));
  wr35: NOT ('SCHEME_ARM.POSITION_GROUP' IN TYPEOF(SELF));
  wr36: NOT ('SCHEME_ARM.POSITION_TYPE' IN TYPEOF(SELF));
  wr37: NOT ('SCHEME_ARM.PRODUCT' IN TYPEOF(SELF));
  wr38: NOT ('SCHEME_ARM.PRODUCT_AS_INDIVIDUAL' IN TYPEOF(SELF));
  wr39: NOT ('SCHEME_ARM.PRODUCT_AS_INDIVIDUAL_VERSION' IN TYPEOF(SELF));
  wr40: NOT ('SCHEME_ARM.PRODUCT_AS_INDIVIDUAL_VIEW' IN TYPEOF(SELF));
  wr41: NOT ('SCHEME_ARM.PRODUCT_BASED_LOCATION_IDENTIFICATION' IN TYPEOF(SELF));
  wr42: NOT ('SCHEME_ARM.PRODUCT_CONCEPT' IN TYPEOF(SELF));
  wr43: NOT ('SCHEME_ARM.PRODUCT_CONFIGURATION' IN TYPEOF(SELF));
  wr44: NOT ('SCHEME_ARM.PRODUCT_GROUP' IN TYPEOF(SELF));
  wr45: NOT ('SCHEME_ARM.PRODUCT_GROUP_MEMBERSHIP' IN TYPEOF(SELF));
  wr46: NOT ('SCHEME_ARM.PRODUCT_VERSION' IN TYPEOF(SELF));
  wr47: NOT ('SCHEME_ARM.PRODUCT_VERSION_RELATIONSHIP' IN TYPEOF(SELF));
  wr48: NOT ('SCHEME_ARM.PRODUCT_VIEW_DEFINITION' IN TYPEOF(SELF));
  wr49: NOT ('SCHEME_ARM.PROJECT' IN TYPEOF(SELF));
  wr50: NOT ('SCHEME_ARM.REQUIRED_RESOURCE' IN TYPEOF(SELF));
  wr51: NOT ('SCHEME_ARM.REQUIRED_RESOURCE_ASSIGNMENT' IN TYPEOF(SELF));
  wr52: NOT ('SCHEME_ARM.REQUIREMENT_ASSIGNMENT' IN TYPEOF(SELF));
  wr53: NOT ('SCHEME_ARM.RESOURCE_AS_REALIZED' IN TYPEOF(SELF));
  wr54: NOT ('SCHEME_ARM.RESOURCE_EVENT' IN TYPEOF(SELF));
  wr55: NOT ('SCHEME_ARM.RESOURCE_ITEM' IN TYPEOF(SELF));
  wr56: NOT ('SCHEME_ARM.RESOURCE_ITEM_REALIZATION' IN TYPEOF(SELF));
  wr57: NOT ('SCHEME_ARM.RESOURCE_PROPERTY' IN TYPEOF(SELF));
  wr58: NOT ('SCHEME_ARM.RISK_IMPACT_ASSIGNMENT' IN TYPEOF(SELF));
  wr59: NOT ('SCHEME_ARM.RISK_PERCEPTION' IN TYPEOF(SELF));
  wr60: NOT ('SCHEME_ARM.RISK_PERCEPTION_SOURCE_ASSIGNMENT' IN TYPEOF(SELF));
  wr61: NOT ('SCHEME_ARM.SCHEME_ENTRY' IN TYPEOF(SELF));
  wr62: NOT ('SCHEME_ARM.SECURITY_CLASSIFICATION' IN TYPEOF(SELF));
  wr63: NOT ('SCHEME_ARM.STATE_DEFINITION' IN TYPEOF(SELF));
  wr64: NOT ('SCHEME_ARM.STATE_RELATIONSHIP' IN TYPEOF(SELF));
  wr65: NOT ('SCHEME_ARM.TASK_IO' IN TYPEOF(SELF));
  wr66: NOT ('SCHEME_ARM.TASK_IO_HIERARCHY' IN TYPEOF(SELF));
  wr67: NOT ('SCHEME_ARM.TASK_METHOD' IN TYPEOF(SELF));
  wr68: NOT ('SCHEME_ARM.TASK_METHOD_VERSION' IN TYPEOF(SELF));
  wr69: NOT ('SCHEME_ARM.TASK_OBJECTIVE' IN TYPEOF(SELF));
  wr70: NOT ('SCHEME_ARM.TYPE_OF_PERSON' IN TYPEOF(SELF));
  wr71: NOT ('SCHEME_ARM.TYPE_OF_PERSON_DEFINITION' IN TYPEOF(SELF));
  wr72: NOT ('SCHEME_ARM.VERIFICATION' IN TYPEOF(SELF));
  wr73: NOT ('SCHEME_ARM.VIEW_DEFINITION_RELATIONSHIP' IN TYPEOF(SELF));
  wr74: NOT ('SCHEME_ARM.WORK_OUTPUT' IN TYPEOF(SELF));
  wr75: NOT ('SCHEME_ARM.WORK_OUTPUT_ASSIGNMENT' IN TYPEOF(SELF));
END_TYPE;

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

TYPE security_classification_item = SELECT
   (Activity,
    Activity_method,
    Activity_method_assignment,
    Activity_method_realization,
    Activity_method_realization_relationship,
    Activity_method_relationship,
    Activity_property,
    Affected_items_assignment,
    Alternate_product_relationship,
    Analysis_version,
    Applied_activity_assignment,
    Applied_activity_method_assignment,
    Assembly_component_relationship,
    Assembly_relationship_substitution,
    Assigned_property,
    Breakdown,
    Breakdown_element_definition,
    Breakdown_element_realization,
    Breakdown_element_usage,
    Breakdown_element_version,
    Digital_document_definition,
    Digital_file,
    Directed_activity,
    Document,
    Document_assignment,
    Document_version,
    Event,
    Evidence,
    Hardcopy,
    In_zone,
    Interface_connection,
    Interface_connector_occurrence,
    Interface_definition_connection,
    Interface_definition_for,
    Managed_resource,
    Observation,
    Observation_assignment,
    Observation_consequence,
    Observation_relationship,
    Physical_document_definition,
    Product,
    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,
    Product_version,
    Product_view_definition,
    Project_relationship,
    Requirement,
    Requirement_assignment,
    Requirement_collection_relationship,
    Requirement_source,
    Requirement_version,
    Requirement_version_relationship,
    Requirement_view_definition,
    Resource_item,
    Resource_item_realization,
    Risk_consequence,
    Task_element,
    Task_element_state_relationship,
    Task_method,
    Task_method_version,
    Task_objective,
    Task_objective_state_relationship,
    Tracing_relationship,
    Validation,
    Verification,
    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,
    Contract_relationship,
    Part,
    Part_version,
    Product_as_individual,
    Product_as_individual_version,
    Product_concept,
    Product_configuration,
    Project);
END_TYPE;

TYPE selected_item_select = SELECT
   (Interface_connection,
    Interface_connector_definition,
    Interface_connector_occurrence,
    Interface_definition_connection,
    Product,
    Product_version);
END_TYPE;

TYPE set_of_text_based_item = SET[1:?] OF Textual_expression_representation_item;
END_TYPE;

TYPE shape_dependent_select = SELECT
   (Item_shape,
    Shape_element);
END_TYPE;

TYPE shape_model = SELECT
   (External_geometric_model,
    Geometric_model);
END_TYPE;

TYPE shape_select = SELECT
   (Item_shape,
    Shape_element,
    Shape_element_relationship);
END_TYPE;

TYPE shapeable_item = SELECT
   (Product_occurrence_definition_relationship,
    Product_view_definition,
    View_definition_usage);
END_TYPE;

TYPE state_based_behaviour_element = SELECT
   (State_definition,
    State_definition_relationship);
END_TYPE;

TYPE state_definition_of_item = SELECT
   (Activity,
    Activity_method,
    Alternate_product_relationship,
    Analysis_assignment,
    Applied_activity_assignment,
    Applied_activity_method_assignment,
    Approval,
    Assembly_component_relationship,
    Assembly_relationship_substitution,
    Assumption,
    Behaviour_description_association,
    Breakdown_element_definition,
    Breakdown_element_realization,
    Breakdown_element_version,
    Certification,
    Contract,
    Contract_relationship,
    Event,
    File,
    File_location_identification,
    Interface_connection,
    Interface_connector_occurrence,
    Interface_definition_connection,
    Issue_reference,
    Location,
    Managed_resource,
    Observation_consequence,
    Organization,
    Person_in_organization,
    Product,
    Product_as_individual,
    Product_as_individual_view,
    Product_as_planned,
    Product_as_realized,
    Product_concept,
    Product_configuration,
    Product_group,
    Product_version,
    Product_view_definition,
    Project,
    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_realization,
    Resource_item_relationship,
    Risk_attitude,
    Security_classification,
    State,
    Task_io_hierarchy,
    Verification,
    View_definition_relationship,
    Work_order,
    Work_request);
END_TYPE;

TYPE state_of_item = SELECT
   (Activity,
    Activity_method,
    Alternate_product_relationship,
    Analysis_assignment,
    Applied_activity_assignment,
    Applied_activity_method_assignment,
    Applied_state_definition_assignment,
    Approval,
    Assembly_component_relationship,
    Assembly_relationship_substitution,
    Assumption,
    Behaviour_description_association,
    Breakdown,
    Breakdown_element,
    Breakdown_element_definition,
    Breakdown_element_realization,
    Breakdown_element_usage,
    Breakdown_element_version,
    Certification,
    Contract,
    Contract_relationship,
    Digital_document_definition,
    Digital_file,
    Event,
    Evidence,
    evidence_support_item,
    File,
    File_location_identification,
    Information_usage_right,
    Interface_connection,
    Interface_connector_definition,
    Interface_connector_occurrence,
    Interface_definition_connection,
    Interface_specification_definition,
    Justification,
    Location,
    Managed_resource,
    Observation,
    Observation_consequence,
    Organization,
    Part_view_definition,
    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_event,
    Resource_event_correspondence_relationship,
    Resource_event_relationship,
    Resource_item,
    Resource_item_assignment,
    Resource_item_realization,
    Resource_item_relationship,
    Risk_attitude,
    Risk_impact_assignment,
    Risk_perception,
    Security_classification,
    State,
    State_assessment,
    State_definition,
    State_definition_relationship,
    State_relationship,
    State_role,
    Task_objective,
    Type_of_person,
    Verification,
    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,
    Activity_method_assignment,
    Activity_method_realization,
    Activity_method_realization_relationship,
    Activity_method_relationship,
    Activity_property,
    Activity_relationship,
    Alternate_part_relationship,
    Applied_activity_assignment,
    Applied_activity_method_assignment,
    Approval,
    Approval_relationship,
    Approval_status,
    Assembly_component_relationship,
    Assembly_relationship_substitution,
    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,
    Contract_relationship,
    Date_or_date_time_assignment,
    Digital_document_definition,
    Document,
    Document_assignment,
    Document_definition_relationship,
    Document_version,
    Event,
    Evidence,
    Experience_gained,
    Experience_type,
    External_item_identification,
    External_source_identification,
    File_relationship,
    Global_location_representation,
    Identification_assignment,
    Independent_property,
    Independent_property_relationship,
    Information_right,
    Information_usage_right,
    Interface_connection,
    Interface_connector_occurrence,
    Interface_definition_connection,
    Interface_definition_for,
    Justification,
    Justification_assignment,
    Justification_relationship,
    Justification_support_assignment,
    Location,
    Location_assignment,
    Location_relationship,
    Managed_resource,
    Managed_resource_relationship,
    Observation,
    Observation_assignment,
    Observation_consequence,
    Observation_relationship,
    Organization_relationship,
    Organization_type,
    Organizational_location_identification,
    Person_in_organization,
    Physical_document_definition,
    Position,
    Position_group,
    Position_relationship,
    Position_role,
    Position_type,
    Product,
    Product_as_individual,
    Product_as_individual_version,
    Product_as_individual_view,
    Product_based_location_identification,
    Product_configuration,
    Product_group,
    Product_group_relationship,
    Product_relationship,
    Product_version,
    Product_view_definition,
    Project,
    Project_assignment,
    Project_relationship,
    Qualification_type,
    Regional_coordinate,
    Regional_grid_location_representation,
    Related_condition_parameter,
    Representation_item,
    Required_resource,
    Required_resource_relationship,
    Requirement,
    Requirement_assignment,
    Requirement_collection_relationship,
    Requirement_source,
    Requirement_version,
    Requirement_version_relationship,
    Requirement_view_definition,
    Resource_as_realized,
    Resource_as_realized_relationship,
    Resource_event,
    Resource_event_correspondence_relationship,
    Resource_event_relationship,
    Resource_item,
    Resource_item_assignment,
    Resource_item_realization,
    Resource_item_relationship,
    Resource_property,
    State,
    State_definition,
    State_definition_relationship,
    State_relationship,
    Task_element,
    Task_method,
    Task_method_version,
    Task_objective,
    Tracing_relationship,
    Type_of_person,
    Type_of_person_assignment,
    Type_of_person_definition,
    Type_of_person_definition_relationship,
    Validation,
    Verification,
    View_definition_relationship,
    Work_order,
    Work_output,
    Work_output_relationship,
    Work_request);
END_TYPE;

TYPE task_item = activity_method_item ;
WHERE
  wr1: NOT ('TASK_ELEMENT_ARM.ACTIVITY' IN TYPEOF(SELF));
  wr2: NOT ('TASK_ELEMENT_ARM.ACTIVITY_METHOD' IN TYPEOF(SELF));
  wr3: NOT ('TASK_ELEMENT_ARM.ACTIVITY_PROPERTY' IN TYPEOF(SELF));
  wr4: NOT ('TASK_ELEMENT_ARM.ANALYSIS_ASSIGNMENT' IN TYPEOF(SELF));
  wr5: NOT ('TASK_ELEMENT_ARM.APPLIED_ACTIVITY_ASSIGNMENT' IN TYPEOF(SELF));
  wr6: NOT ('TASK_ELEMENT_ARM.APPROVAL_ASSIGNMENT' IN TYPEOF(SELF));
  wr7: NOT ('TASK_ELEMENT_ARM.ASSEMBLY_COMPONENT_RELATIONSHIP' IN TYPEOF(SELF));
  wr8: NOT ('TASK_ELEMENT_ARM.BEHAVIOUR_DESCRIPTION_ASSOCIATION' IN TYPEOF(SELF));
  wr9: NOT ('TASK_ELEMENT_ARM.BREAKDOWN_ELEMENT' IN TYPEOF(SELF));
  wr10: NOT ('TASK_ELEMENT_ARM.BREAKDOWN_ELEMENT_DEFINITION' IN TYPEOF(SELF));
  wr11: NOT ('TASK_ELEMENT_ARM.BREAKDOWN_ELEMENT_USAGE' IN TYPEOF(SELF));
  wr12: NOT ('TASK_ELEMENT_ARM.BREAKDOWN_ELEMENT_VERSION' IN TYPEOF(SELF));
  wr13: NOT ('TASK_ELEMENT_ARM.CERTIFICATION' IN TYPEOF(SELF));
  wr14: NOT ('TASK_ELEMENT_ARM.CONDITION' IN TYPEOF(SELF));
  wr15: NOT ('TASK_ELEMENT_ARM.CONTRACT' IN TYPEOF(SELF));
  wr16: NOT ('TASK_ELEMENT_ARM.CONTRACT_RELATIONSHIP' IN TYPEOF(SELF));
  wr17: NOT ('TASK_ELEMENT_ARM.DATE_OR_DATE_TIME_ASSIGNMENT' IN TYPEOF(SELF));
  wr18: NOT ('TASK_ELEMENT_ARM.EVENT' IN TYPEOF(SELF));
  wr19: NOT ('TASK_ELEMENT_ARM.IN_ZONE' IN TYPEOF(SELF));
  wr20: NOT ('TASK_ELEMENT_ARM.INTERFACE_CONNECTION' IN TYPEOF(SELF));
  wr21: NOT ('TASK_ELEMENT_ARM.INTERFACE_CONNECTOR_OCCURRENCE' IN TYPEOF(SELF));
  wr22: NOT ('TASK_ELEMENT_ARM.INTERFACE_DEFINITION_CONNECTION' IN TYPEOF(SELF));
  wr23: NOT ('TASK_ELEMENT_ARM.JUSTIFICATION' IN TYPEOF(SELF));
  wr24: NOT ('TASK_ELEMENT_ARM.LOCATION' IN TYPEOF(SELF));
  wr25: NOT ('TASK_ELEMENT_ARM.MANAGED_RESOURCE' IN TYPEOF(SELF));
  wr26: NOT ('TASK_ELEMENT_ARM.OBSERVATION' IN TYPEOF(SELF));
  wr27: NOT ('TASK_ELEMENT_ARM.OBSERVATION_CONSEQUENCE' IN TYPEOF(SELF));
  wr28: NOT ('TASK_ELEMENT_ARM.ORGANIZATION' IN TYPEOF(SELF));
  wr29: NOT ('TASK_ELEMENT_ARM.ORGANIZATION_TYPE' IN TYPEOF(SELF));
  wr30: NOT ('TASK_ELEMENT_ARM.PERSON' IN TYPEOF(SELF));
  wr31: NOT ('TASK_ELEMENT_ARM.PERSON_IN_ORGANIZATION' IN TYPEOF(SELF));
  wr32: NOT ('TASK_ELEMENT_ARM.POSITION' IN TYPEOF(SELF));
  wr33: NOT ('TASK_ELEMENT_ARM.POSITION_GROUP' IN TYPEOF(SELF));
  wr34: NOT ('TASK_ELEMENT_ARM.POSITION_TYPE' IN TYPEOF(SELF));
  wr35: NOT ('TASK_ELEMENT_ARM.PRODUCT_AS_INDIVIDUAL' IN TYPEOF(SELF));
  wr36: NOT ('TASK_ELEMENT_ARM.PRODUCT_AS_INDIVIDUAL_VERSION' IN TYPEOF(SELF));
  wr37: NOT ('TASK_ELEMENT_ARM.PRODUCT_AS_INDIVIDUAL_VIEW' IN TYPEOF(SELF));
  wr38: NOT ('TASK_ELEMENT_ARM.PRODUCT_BASED_LOCATION_IDENTIFICATION' IN TYPEOF(SELF));
  wr39: NOT ('TASK_ELEMENT_ARM.PRODUCT_CONCEPT' IN TYPEOF(SELF));
  wr40: NOT ('TASK_ELEMENT_ARM.PRODUCT_CONFIGURATION' IN TYPEOF(SELF));
  wr41: NOT ('TASK_ELEMENT_ARM.PRODUCT_GROUP' IN TYPEOF(SELF));
  wr42: NOT ('TASK_ELEMENT_ARM.PRODUCT_GROUP_MEMBERSHIP' IN TYPEOF(SELF));
  wr43: NOT ('TASK_ELEMENT_ARM.PROJECT' IN TYPEOF(SELF));
  wr44: NOT ('TASK_ELEMENT_ARM.REQUIREMENT_ASSIGNMENT' IN TYPEOF(SELF));
  wr45: NOT ('TASK_ELEMENT_ARM.RESOURCE_AS_REALIZED' IN TYPEOF(SELF));
  wr46: NOT ('TASK_ELEMENT_ARM.RESOURCE_EVENT' IN TYPEOF(SELF));
  wr47: NOT ('TASK_ELEMENT_ARM.RESOURCE_ITEM_REALIZATION' IN TYPEOF(SELF));
  wr48: NOT ('TASK_ELEMENT_ARM.RISK_IMPACT_ASSIGNMENT' IN TYPEOF(SELF));
  wr49: NOT ('TASK_ELEMENT_ARM.RISK_PERCEPTION' IN TYPEOF(SELF));
  wr50: NOT ('TASK_ELEMENT_ARM.RISK_PERCEPTION_SOURCE_ASSIGNMENT' IN TYPEOF(SELF));
  wr51: NOT ('TASK_ELEMENT_ARM.SCHEME_ENTRY' IN TYPEOF(SELF));
  wr52: NOT ('TASK_ELEMENT_ARM.SECURITY_CLASSIFICATION' IN TYPEOF(SELF));
  wr53: NOT ('TASK_ELEMENT_ARM.STATE_DEFINITION' IN TYPEOF(SELF));
  wr54: NOT ('TASK_ELEMENT_ARM.STATE_RELATIONSHIP' IN TYPEOF(SELF));
  wr55: NOT ('TASK_ELEMENT_ARM.TASK_IO' IN TYPEOF(SELF));
  wr56: NOT ('TASK_ELEMENT_ARM.TASK_IO_HIERARCHY' IN TYPEOF(SELF));
  wr57: NOT ('TASK_ELEMENT_ARM.TASK_METHOD' IN TYPEOF(SELF));
  wr58: NOT ('TASK_ELEMENT_ARM.TASK_METHOD_VERSION' IN TYPEOF(SELF));
  wr59: NOT ('TASK_ELEMENT_ARM.TASK_OBJECTIVE' IN TYPEOF(SELF));
  wr60: NOT ('TASK_ELEMENT_ARM.TYPE_OF_PERSON' IN TYPEOF(SELF));
  wr61: NOT ('TASK_ELEMENT_ARM.TYPE_OF_PERSON_DEFINITION' IN TYPEOF(SELF));
  wr62: NOT ('TASK_ELEMENT_ARM.VERIFICATION' IN TYPEOF(SELF));
  wr63: NOT ('TASK_ELEMENT_ARM.VIEW_DEFINITION_RELATIONSHIP' IN TYPEOF(SELF));
  wr64: NOT ('TASK_ELEMENT_ARM.WORK_OUTPUT' IN TYPEOF(SELF));
  wr65: NOT ('TASK_ELEMENT_ARM.WORK_OUTPUT_ASSIGNMENT' IN TYPEOF(SELF));
END_TYPE;

TYPE template_definition_select = SELECT
   (Geometric_model);
END_TYPE;

TYPE text = STRING;
END_TYPE;

TYPE text_based_item_select = SELECT
   (Included_text_based_representation,
    Textual_expression_composition,
    Textual_expression_representation_item);
END_TYPE;

TYPE time_interval_item = SELECT
   (Activity,
    Activity_method_assignment,
    Affected_items_assignment,
    Directed_activity,
    Observation,
    Observation_assignment,
    Work_order,
    Work_output,
    Work_request);
END_TYPE;

TYPE type_of_person_item_select = SELECT
   (Activity,
    Activity_method,
    Activity_method_assignment,
    Analysis_assignment,
    Behaviour_description_association,
    behaviour_model,
    Document_assignment,
    Evidence,
    Experience_gained,
    Experience_instance,
    Experience_type,
    Interface_definition_connection,
    Interface_definition_for,
    Observation_consequence,
    Person,
    Person_in_organization,
    Position,
    Position_group,
    Position_type,
    Product,
    Product_version,
    Project,
    Project_assignment,
    Required_resource_assignment,
    Resource_item_assignment,
    Risk_impact_assignment,
    Verification,
    View_definition_relationship,
    Work_order,
    Work_output_assignment,
    Work_request);
END_TYPE;

TYPE validation_item = SELECT
   (Activity_method,
    Organization_or_person_in_organization_assignment,
    Product_version,
    State_definition);
END_TYPE;

TYPE value_qualifier = SELECT
   (Precision_qualifier,
    Type_qualifier,
    Uncertainty_qualifier);
END_TYPE;

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

TYPE work_item = SELECT
   (Activity,
    Activity_method,
    Analysis_assignment,
    Applied_activity_assignment,
    Applied_activity_method_assignment,
    Event,
    Project,
    Verification);
END_TYPE;

TYPE work_output_item = SELECT
   (Activity_method,
    Analysis_assignment,
    Behaviour_description_association,
    Breakdown,
    Breakdown_version,
    Contract,
    Contract_relationship,
    Evidence,
    File,
    Location,
    Managed_resource,
    Organization,
    Organization_type,
    Part,
    Part_version,
    Part_view_definition,
    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_assignment,
    Required_resource,
    Resource_as_realized,
    Resource_item,
    Resource_item_realization,
    State_definition,
    Task_io,
    Type_of_person);
END_TYPE;

TYPE year_number = INTEGER;
END_TYPE;

ENTITY Abs_function
  SUBTYPE OF (Unary_function_call);
END_ENTITY;

ENTITY Acos_function
  SUBTYPE OF (Unary_function_call);
END_ENTITY;

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 ('AP233_SYSTEMS_ENGINEERING_ARM_LF.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 Advisory_note;
  advisory : Advisory_task_step;
  applies_to : Task_element;
END_ENTITY;

ENTITY Advisory_task_step
  SUBTYPE OF (Task_step);
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);
  SELF\Identification_assignment.items : SET[1:?] OF alias_identification_item;
DERIVE
  SELF\Identification_assignment.role : STRING := 'alias';
END_ENTITY;

ENTITY Alternate_part_relationship
  SUBTYPE OF (Alternate_product_relationship);
  SELF\Alternate_product_relationship.alternate_product : Part;
  SELF\Alternate_product_relationship.base_product : Part;
END_ENTITY;

ENTITY Alternate_product_relationship;
  name : OPTIONAL STRING;
  description : OPTIONAL STRING;
  alternate_product : Product;
  base_product : Product;
  criteria : OPTIONAL STRING;
UNIQUE
  UR1: alternate_product, base_product;
WHERE
  WR1: alternate_product :<>: base_product;
  WR2: EXISTS(criteria) OR (TYPEOF(SELF\Alternate_product_relationship) <> TYPEOF(SELF));
END_ENTITY;

ENTITY Amount_of_substance_unit
  SUBTYPE OF (Unit);
END_ENTITY;

ENTITY Analysis
  SUBTYPE OF (Product);
END_ENTITY;

ENTITY Analysis_assignment;
  analysis : Analysis_version;
  applied_to : analysed_item;
END_ENTITY;

ENTITY Analysis_design_version_relationship
  SUBTYPE OF (Analysis_assignment);
  SELF\Analysis_assignment.applied_to : Product_version;
END_ENTITY;

ENTITY Analysis_discipline_definition
  SUBTYPE OF (Product_view_definition);
  SELF\Product_view_definition.defined_version : Analysis_version;
END_ENTITY;

ENTITY Analysis_model
  SUBTYPE OF (Representation);
  SELF\Representation.context_of_items : Analysis_representation_context;
END_ENTITY;

ENTITY Analysis_representation_context
  SUBTYPE OF (Representation_context);
END_ENTITY;

ENTITY Analysis_version
  SUBTYPE OF (Product_version);
  SELF\Product_version.of_product : Analysis;
END_ENTITY;

ENTITY Analysis_version_relationship
  SUBTYPE OF (Product_version_relationship);
  SELF\Product_version_relationship.relating_version : Analysis_version;
  SELF\Product_version_relationship.related_version : Analysis_version;
END_ENTITY;

ENTITY Analysis_version_sequence
  SUBTYPE OF (Analysis_version_relationship);
DERIVE
  predecessor : Analysis_version := SELF\Analysis_version_relationship.relating_version;
  successor : Analysis_version := SELF\Analysis_version_relationship.related_version;
END_ENTITY;

ENTITY And_expression
  SUBTYPE OF (Multiple_arity_boolean_expression);
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_state_assignment;
  described_state : State;
  assigned_to : state_of_item;
  role : State_role;
END_ENTITY;

ENTITY Applied_state_definition_assignment;
  described_state_definition : State_definition;
  assigned_to : state_definition_of_item;
  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 Asin_function
  SUBTYPE OF (Unary_function_call);
END_ENTITY;

ENTITY Assembly_component_relationship
  ABSTRACT SUPERTYPE OF (ONEOF (Next_assembly_usage,
                                Promissory_usage,
                                Component_upper_level_identification))
  SUBTYPE OF (Product_occurrence_definition_relationship);
  location_indicator : OPTIONAL STRING;
  quantity : OPTIONAL Value_with_unit;
WHERE
  WR1: NOT (EXISTS(quantity)) OR ((NOT ('NUMBER' IN TYPEOF(quantity.value_component))) XOR (quantity.value_component > 0));
END_ENTITY;

ENTITY Assembly_relationship_substitution;
  name : OPTIONAL STRING;
  description : OPTIONAL STRING;
  base_relationship : Assembly_component_relationship;
  substitute_relationship : Assembly_component_relationship;
UNIQUE
  UR1: base_relationship, substitute_relationship;
WHERE
  WR1: base_relationship.relating_view :=: substitute_relationship.relating_view;
  WR2: base_relationship :<>: substitute_relationship;
END_ENTITY;

ENTITY Assigned_document_property
  SUBTYPE OF (Assigned_property);
  SELF\Assigned_property.described_element : document_property_item;
DERIVE
  SELF\Assigned_property.name : STRING := 'document property';
WHERE
  WR1: SIZEOF(['AP233_SYSTEMS_ENGINEERING_ARM_LF.DOCUMENT_DEFINITION', 'AP233_SYSTEMS_ENGINEERING_ARM_LF.FILE'] * TYPEOF(SELF\Assigned_property.described_element)) = 1;
END_ENTITY;

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

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

ENTITY Assumption_assignment;
  assumption : Assumption;
  description : OPTIONAL STRING;
  item : assumption_item;
  role : STRING;
END_ENTITY;

ENTITY Assumption_relationship;
  description : OPTIONAL STRING;
  role : STRING;
  relating_assumption : Assumption;
  related_assumption : Assumption;
END_ENTITY;

ENTITY Atan_function
  SUBTYPE OF (Binary_function_call);
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 Axis_placement
  SUPERTYPE OF (ONEOF (Axis_placement_2d,
                       Axis_placement_3d))
  SUBTYPE OF (Detailed_geometric_model_element);
  origin : Cartesian_point;
  x_axis : Direction;
  y_axis : Direction;
DERIVE
  dim : INTEGER := SIZEOF(origin.coordinates);
WHERE
  WR1: dim > 1;
  WR2: dim = SIZEOF(x_axis.coordinates);
  WR3: dim = SIZEOF(y_axis.coordinates);
END_ENTITY;

ENTITY Axis_placement_2d
  SUBTYPE OF (Axis_placement);
END_ENTITY;

ENTITY Axis_placement_3d
  SUBTYPE OF (Axis_placement);
END_ENTITY;

ENTITY Axis_placement_mapping;
  source : Axis_placement;
  target : Axis_placement;
WHERE
  WR1: source\Axis_placement.dim = target\Axis_placement.dim;
END_ENTITY;

ENTITY Behaviour
  SUBTYPE OF (Product);
END_ENTITY;

ENTITY Behaviour_description_association;
  description : OPTIONAL STRING;
  representation : behaviour_model;
  represented_item : behaviour_item;
  role : OPTIONAL STRING;
END_ENTITY;

ENTITY Behaviour_version
  SUBTYPE OF (Product_version);
  SELF\Product_version.of_product : Behaviour;
END_ENTITY;

ENTITY Behaviour_version_sequence
  SUBTYPE OF (Product_version_relationship);
  SELF\Product_version_relationship.relating_version : Behaviour_version;
  SELF\Product_version_relationship.related_version : Behaviour_version;
DERIVE
  predecessor : Behaviour_version := SELF\Product_version_relationship.relating_version;
  successor : Behaviour_version := SELF\Product_version_relationship.related_version;
END_ENTITY;

ENTITY Behaviour_view_definition
  SUBTYPE OF (Product_view_definition);
  SELF\Product_view_definition.defined_version : Behaviour_version;
END_ENTITY;

ENTITY Binary_boolean_expression
  ABSTRACT SUPERTYPE OF (ONEOF (Xor_expression,
                                Equals_expression))
  SUBTYPE OF (Binary_generic_expression, Boolean_expression);
END_ENTITY;

ENTITY Binary_function_call
  ABSTRACT SUPERTYPE OF (Atan_function)
  SUBTYPE OF (Binary_numeric_expression);
END_ENTITY;

ENTITY Binary_generic_expression
  ABSTRACT SUPERTYPE
  SUBTYPE OF (Generic_expression);
  operands : LIST[2:2] OF Generic_expression;
END_ENTITY;

ENTITY Binary_numeric_expression
  ABSTRACT SUPERTYPE OF (ONEOF (Minus_expression,
                                Div_expression,
                                Mod_expression,
                                Slash_expression,
                                Power_expression))
  SUBTYPE OF (Binary_generic_expression, Numeric_expression);
  SELF\Binary_generic_expression.operands : LIST[2:2] OF Numeric_expression;
END_ENTITY;

ENTITY Boolean_defined_function
  ABSTRACT SUPERTYPE
  SUBTYPE OF (Boolean_expression, Defined_function);
END_ENTITY;

ENTITY Boolean_expression
  ABSTRACT SUPERTYPE OF (ONEOF (Simple_boolean_expression,
                                Unary_boolean_expression,
                                Binary_boolean_expression,
                                Multiple_arity_boolean_expression,
                                Comparison_expression,
                                Interval_expression,
                                Boolean_defined_function))
  SUBTYPE OF (Expression);
END_ENTITY;

ENTITY Boolean_literal
  SUBTYPE OF (Generic_literal, Simple_boolean_expression);
  the_value : BOOLEAN;
END_ENTITY;

ENTITY Boolean_variable
  SUBTYPE OF (Simple_boolean_expression, Variable);
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 Cartesian_point
  SUBTYPE OF (Detailed_geometric_model_element);
  coordinates : LIST[1:3] OF length_measure;
END_ENTITY;

ENTITY Cartesian_transformation_2d
  SUBTYPE OF (Detailed_geometric_model_element);
  multiplication_matrix : ARRAY[1:2] OF Direction;
  translation : Cartesian_point;
WHERE
  WR1: SIZEOF(multiplication_matrix[1]\Direction.coordinates) = 2;
  WR2: SIZEOF(multiplication_matrix[2]\Direction.coordinates) = 2;
  WR3: SIZEOF(translation.coordinates) = 2;
END_ENTITY;

ENTITY Cartesian_transformation_3d
  SUBTYPE OF (Detailed_geometric_model_element);
  multiplication_matrix : ARRAY[1:3] OF Direction;
  translation : Cartesian_point;
WHERE
  WR1: SIZEOF(multiplication_matrix[1]\Direction.coordinates) = 3;
  WR2: SIZEOF(multiplication_matrix[2]\Direction.coordinates) = 3;
  WR3: SIZEOF(multiplication_matrix[3]\Direction.coordinates) = 3;
  WR4: SIZEOF(translation.coordinates) = 3;
END_ENTITY;

ENTITY Causal_consequence
  SUBTYPE OF (View_definition_relationship);
  SELF\View_definition_relationship.relating_view : Risk_consequence;
  SELF\View_definition_relationship.related_view : Risk_consequence;
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 Chain_based_geometric_item_specific_usage
  SUBTYPE OF (Geometric_item_specific_usage);
  nodes : LIST[2:?] OF UNIQUE Geometric_model;
  undirected_link : LIST[1:?] OF UNIQUE chained_geometric_model_link;
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 Collection
  SUBTYPE OF (Product);
END_ENTITY;

ENTITY Collection_assignment;
  collection : Collection_view_definition;
  is_assigned_to : collection_assignment_select;
END_ENTITY;

ENTITY Collection_membership;
  member : collection_member_select;
  of_collection : Collection_view_definition;
END_ENTITY;

ENTITY Collection_relationship
  SUBTYPE OF (Product_relationship);
  SELF\Product_relationship.relating_product : Collection;
  SELF\Product_relationship.related_product : Collection;
DERIVE
  related_collection : Collection := SELF\Product_relationship.related_product;
  relating_collection : Collection := SELF\Product_relationship.relating_product;
END_ENTITY;

ENTITY Collection_version
  SUBTYPE OF (Product_version);
  SELF\Product_version.of_product : Collection;
DERIVE
  of_collection : Collection := SELF\Product_version.of_product;
END_ENTITY;

ENTITY Collection_version_relationship
  SUBTYPE OF (Product_version_relationship);
  SELF\Product_version_relationship.relating_version : Collection_version;
  SELF\Product_version_relationship.related_version : Collection_version;
END_ENTITY;

ENTITY Collection_version_sequence_relationship
  SUBTYPE OF (Collection_version_relationship);
DERIVE
  predecessor : Collection_version := SELF\Product_version_relationship.relating_version;
  successor : Collection_version := SELF\Product_version_relationship.related_version;
END_ENTITY;

ENTITY Collection_view_definition
  SUBTYPE OF (Product_view_definition);
  SELF\Product_view_definition.defined_version : Collection_version;
END_ENTITY;

ENTITY Comparison_equal
  SUBTYPE OF (Comparison_expression);
END_ENTITY;

ENTITY Comparison_expression
  ABSTRACT SUPERTYPE OF (ONEOF (Comparison_equal,
                                Comparison_greater,
                                Comparison_greater_equal,
                                Comparison_less,
                                Comparison_less_equal,
                                Comparison_not_equal,
                                Like_expression))
  SUBTYPE OF (Binary_generic_expression, Boolean_expression);
  SELF\Binary_generic_expression.operands : LIST[2:2] OF Expression;
WHERE
  WR1: (('NUMERIC_EXPRESSION_ARM.NUMERIC_EXPRESSION' IN TYPEOF(SELF\Binary_generic_expression.operands[1])) AND ('NUMERIC_EXPRESSION_ARM.NUMERIC_EXPRESSION' IN TYPEOF(SELF\Binary_generic_expression.operands[2]))) OR (('BOOLEAN_EXPRESSION_ARM.BOOLEAN_EXPRESSION' IN TYPEOF(SELF\Binary_generic_expression.operands[1])) AND ('BOOLEAN_EXPRESSION_ARM.BOOLEAN_EXPRESSION' IN TYPEOF(SELF\Binary_generic_expression.operands[2]))) OR (('STRING_EXPRESSION_ARM.STRING_EXPRESSION' IN TYPEOF(SELF\Binary_generic_expression.operands[1])) AND ('STRING_EXPRESSION_ARM.STRING_EXPRESSION' IN TYPEOF(SELF\Binary_generic_expression.operands[2])));
END_ENTITY;

ENTITY Comparison_greater
  SUBTYPE OF (Comparison_expression);
END_ENTITY;

ENTITY Comparison_greater_equal
  SUBTYPE OF (Comparison_expression);
END_ENTITY;

ENTITY Comparison_less
  SUBTYPE OF (Comparison_expression);
END_ENTITY;

ENTITY Comparison_less_equal
  SUBTYPE OF (Comparison_expression);
END_ENTITY;

ENTITY Comparison_not_equal
  SUBTYPE OF (Comparison_expression);
END_ENTITY;

ENTITY Component_upper_level_identification
  SUBTYPE OF (Assembly_component_relationship);
  upper_assembly_relationship : Assembly_component_relationship;
  sub_assembly_relationship : Next_assembly_usage;
UNIQUE
  UR1: upper_assembly_relationship, sub_assembly_relationship;
WHERE
  WR1: SELF :<>: upper_assembly_relationship;
  WR2: SELF\Product_occurrence_definition_relationship.relating_view :=: upper_assembly_relationship\Product_occurrence_definition_relationship.relating_view;
  WR3: SELF\Product_occurrence_definition_relationship.related_view :=: sub_assembly_relationship\Product_occurrence_definition_relationship.related_view;
  WR4: (upper_assembly_relationship\Product_occurrence_definition_relationship.related_view :=: sub_assembly_relationship\Product_occurrence_definition_relationship.relating_view) OR (SIZEOF(QUERY(pdr <* USEDIN(upper_assembly_relationship\Product_occurrence_definition_relationship.related_view, 'AP233_SYSTEMS_ENGINEERING_ARM_LF.PRODUCT_OCCURRENCE_DEFINITION_RELATIONSHIP.RELATED_VIEW') | pdr.relating_view :=: sub_assembly_relationship\Product_occurrence_definition_relationship.relating_view)) = 1);
  WR5: SIZEOF(['AP233_SYSTEMS_ENGINEERING_ARM_LF.NEXT_ASSEMBLY_USAGE', 'AP233_SYSTEMS_ENGINEERING_ARM_LF.COMPONENT_UPPER_LEVEL_IDENTIFICATION'] * TYPEOF(upper_assembly_relationship)) = 1;
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 Concat_expression
  SUBTYPE OF (Multiple_arity_generic_expression, String_expression);
  SELF\Multiple_arity_generic_expression.operands : LIST[2:?] OF String_expression;
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 Conditional_effectivity
  SUBTYPE OF (Effectivity);
  condition : Condition;
END_ENTITY;

ENTITY Constrained_general_parameter_relationship
  SUBTYPE OF (Independent_property_relationship);
  SELF\Independent_property_relationship.relating : General_model_parameter;
  SELF\Independent_property_relationship.related : General_model_parameter;
  required_class : Class;
WHERE
  WR1: (required_class.id IN CLASSOF(related)) AND (required_class.id IN CLASSOF(relating));
END_ENTITY;

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

ENTITY Contextual_item_shape
  SUBTYPE OF (Item_shape);
  SELF\Item_shape.described_element : described_element_select;
DERIVE
  shaped_product : Product_view_definition := spa_get_definition(SELF);
END_ENTITY;

ENTITY Contextual_shape_representation;
  contextual_shape : Contextual_item_shape;
  representing_relationship : Geometric_model_relationship;
DERIVE
  context_representation : Geometric_model := representing_relationship.rep_2;
  positioned_representation : Geometric_model := representing_relationship.rep_1;
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 Contract_relationship;
  relating_contract : Contract;
  related_contract : Contract;
END_ENTITY;

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

ENTITY Cos_function
  SUBTYPE OF (Unary_function_call);
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_path;
  condition : Condition;
  defined_in : Multiple_decision_point;
  path_element : Task_element;
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_function
  ABSTRACT SUPERTYPE ;
END_ENTITY;

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

ENTITY Definitional_representation_relationship
  SUBTYPE OF (Representation_relationship);
WHERE
  WR1: acyclic_representation_relationship(SELF, [SELF\Representation_relationship.rep_2], 'AP233_SYSTEMS_ENGINEERING_ARM_LF.' + 'REPRESENTATION');
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 Description_text;
  description : STRING;
END_ENTITY;

ENTITY Description_text_assignment;
  description : Description_text;
  items : SET[1:?] OF description_item;
END_ENTITY;

ENTITY Descriptive_document_property
  SUBTYPE OF (String_representation_item);
INVERSE
  valued_characteristic : SET[1:1] OF Document_property_representation FOR items;
END_ENTITY;

ENTITY Detailed_geometric_model_element
  ABSTRACT SUPERTYPE OF (ONEOF (Cartesian_point,
                                Direction,
                                Axis_placement,
                                Cartesian_transformation_2d,
                                Cartesian_transformation_3d,
                                Geometric_placement_operation))
  SUBTYPE OF (Representation_item);
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 Direction
  SUBTYPE OF (Detailed_geometric_model_element);
  coordinates : LIST[2:3] OF length_measure;
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 Div_expression
  SUBTYPE OF (Binary_numeric_expression);
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: 'AP233_SYSTEMS_ENGINEERING_ARM_LF.DOCUMENT_DEFINITION' IN TYPEOF(SELF\External_source_identification.item);
END_ENTITY;

ENTITY Document_property_representation
  SUBTYPE OF (Representation);
  SELF\Representation.items : SET[1:?] OF descriptive_or_numerical;
WHERE
  WR1: SIZEOF(QUERY(pr <* USEDIN(SELF, 'AP233_SYSTEMS_ENGINEERING_ARM_LF.PROPERTY_DEFINITION_REPRESENTATION.REP') | 'AP233_SYSTEMS_ENGINEERING_ARM_LF.ASSIGNED_PROPERTY' IN TYPEOF(pr\Property_representation.property))) > 0;
  WR2: SELF\Representation.context_of_items.kind = 'document parameters';
  WR3: SIZEOF(QUERY(it1 <* SELF\Representation.items | SIZEOF(QUERY(it2 <* SELF\Representation.items | it1.name = it2.name)) > 1)) = 0;
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: 'AP233_SYSTEMS_ENGINEERING_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))
               ANDOR (ONEOF (Conditional_effectivity,
                    Dated_effectivity,
                    Lot_effectivity,
                    Serial_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 Environment;
  syntactic_representation : Generic_variable;
  semantics : Variable_semantics;
END_ENTITY;

ENTITY Environment_assignment;
  environment : Environment_definition_view;
  item : environment_item;
END_ENTITY;

ENTITY Environment_definition
  SUBTYPE OF (Product);
END_ENTITY;

ENTITY Environment_definition_version
  SUBTYPE OF (Product_version);
  of_environment : Environment_definition;
END_ENTITY;

ENTITY Environment_definition_view
  SUBTYPE OF (Product_view_definition);
  defined_environment_version : Environment_definition_version;
END_ENTITY;

ENTITY Environment_view_definition_relationship
  SUBTYPE OF (View_definition_relationship);
  SELF\View_definition_relationship.relating_view : Environment_definition_view;
  SELF\View_definition_relationship.related_view : Environment_definition_view;
DERIVE
  related_environment : Environment_definition_view := SELF\View_definition_relationship.related_view;
  relating_environment : Environment_definition_view := SELF\View_definition_relationship.relating_view;
END_ENTITY;

ENTITY Equals_expression
  SUBTYPE OF (Binary_boolean_expression);
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 Evidence;
  supports : evidence_support_item;
  items : SET[1:?] OF evidence_item;
END_ENTITY;

ENTITY Exit_loop
  SUBTYPE OF (Task_element);
END_ENTITY;

ENTITY Exp_function
  SUBTYPE OF (Unary_function_call);
END_ENTITY;

ENTITY Expanded_uncertainty
  SUBTYPE OF (Standard_uncertainty);
  coverage_factor : REAL;
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 Expression
  ABSTRACT SUPERTYPE OF (ONEOF (Numeric_expression,
                                Boolean_expression,
                                String_expression))
  SUBTYPE OF (Generic_expression);
END_ENTITY;

ENTITY Expression_assignment;
  expression : Expression;
  items : SET[1:?] OF expression_assignment_item;
END_ENTITY;

ENTITY External_analysis_model
  SUBTYPE OF (Analysis_model);
  external_file : Digital_file;
END_ENTITY;

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

ENTITY External_class_library
  SUBTYPE OF (External_source);
END_ENTITY;

ENTITY External_functional_model
  SUBTYPE OF (Function_based_behaviour_model);
  external_file : Digital_file;
END_ENTITY;

ENTITY External_geometric_model
  SUBTYPE OF (Geometric_model);
  SELF\Representation.items : SET[1:1] OF Axis_placement;
  external_file : Digital_file;
WHERE
  WR1: SELF\Representation.context_of_items.dimension_count = 3;
  WR2: SELF\Representation.context_of_items.kind = 'external';
END_ENTITY;

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

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

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

ENTITY External_state_based_behaviour_model
  SUBTYPE OF (State_based_behaviour_model);
  external_file : Digital_file;
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: 'AP233_SYSTEMS_ENGINEERING_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 Format_function
  SUBTYPE OF (Binary_generic_expression, String_expression);
DERIVE
  value_to_format : Generic_expression := SELF\Binary_generic_expression.operands[1];
  format_string : Generic_expression := SELF\Binary_generic_expression.operands[2];
WHERE
  WR1: (('AP233_SYSTEMS_ENGINEERING_ARM_LF.NUMERIC_EXPRESSION') IN TYPEOF(value_to_format)) AND (('AP233_SYSTEMS_ENGINEERING_ARM_LF.STRING_EXPRESSION') IN TYPEOF(format_string));
END_ENTITY;

ENTITY Function_based_behaviour_model
  SUBTYPE OF (Representation);
  SELF\Representation.context_of_items : Function_based_behaviour_representation_context;
  SELF\Representation.items : SET[1:?] OF Function_based_behaviour_representation_item;
END_ENTITY;

ENTITY Function_based_behaviour_representation_context
  SUBTYPE OF (Representation_context);
END_ENTITY;

ENTITY Function_based_behaviour_representation_item
  SUBTYPE OF (Representation_item);
  item : Task_element;
END_ENTITY;

ENTITY Function_parameter_value
  SUPERTYPE OF (Int_value_function)
  SUBTYPE OF (Numeric_expression, Unary_generic_expression);
  SELF\Unary_generic_expression.operand : String_expression;
END_ENTITY;

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

ENTITY Functional_breakdown
  SUBTYPE OF (Breakdown);
END_ENTITY;

ENTITY Functional_breakdown_context
  SUBTYPE OF (Breakdown_context);
  SELF\Breakdown_context.breakdown : Functional_breakdown_version;
  SELF\Breakdown_context.breakdown_element : Functional_element_definition;
END_ENTITY;

ENTITY Functional_breakdown_version
  SUBTYPE OF (Breakdown_version);
  SELF\Breakdown_version.of_product : Functional_breakdown;
END_ENTITY;

ENTITY Functional_element
  SUBTYPE OF (Breakdown_element);
END_ENTITY;

ENTITY Functional_element_definition
  SUBTYPE OF (Breakdown_element_definition);
  SELF\Breakdown_element_definition.defined_version : Functional_element_version;
END_ENTITY;

ENTITY Functional_element_usage
  SUBTYPE OF (Breakdown_element_usage);
  SELF\View_definition_relationship.relating_view : Functional_element_definition;
  SELF\View_definition_relationship.related_view : Functional_element_definition;
END_ENTITY;

ENTITY Functional_element_version
  SUBTYPE OF (Breakdown_element_version);
  SELF\Breakdown_element_version.of_product : Functional_element;
END_ENTITY;

ENTITY General_model_parameter
  SUBTYPE OF (Independent_property);
END_ENTITY;

ENTITY Generic_expression
  ABSTRACT SUPERTYPE OF (ONEOF (Simple_generic_expression,
                                Unary_generic_expression,
                                Binary_generic_expression,
                                Multiple_arity_generic_expression));
WHERE
  WR1: Is_Acyclic(SELF);
END_ENTITY;

ENTITY Generic_literal
  ABSTRACT SUPERTYPE
  SUBTYPE OF (Simple_generic_expression);
END_ENTITY;

ENTITY Generic_variable
  ABSTRACT SUPERTYPE OF (Variable)
  SUBTYPE OF (Simple_generic_expression);
INVERSE
  interpretation : Environment FOR syntactic_representation;
END_ENTITY;

ENTITY Geometric_composition_with_operator_transformation
  SUBTYPE OF (Definitional_representation_relationship, Geometric_relationship_with_operator_transformation);
END_ENTITY;

ENTITY Geometric_composition_with_placement_transformation
  SUBTYPE OF (Definitional_representation_relationship, Geometric_relationship_with_placement_transformation);
END_ENTITY;

ENTITY Geometric_coordinate_space
  SUBTYPE OF (Numerical_representation_context);
  dimension_count : INTEGER;
WHERE
  WR1: dimension_count > 0;
END_ENTITY;

ENTITY Geometric_item_specific_usage;
  name : STRING;
  description : OPTIONAL STRING;
  definition : geometric_item_specific_usage_select;
  identified_item : Detailed_geometric_model_element;
  used_model : shape_model;
END_ENTITY;

ENTITY Geometric_model
  SUBTYPE OF (Representation);
  version_id : OPTIONAL STRING;
  model_extent : OPTIONAL length_measure;
  SELF\Representation.context_of_items : Geometric_coordinate_space;
  SELF\Representation.items : SET[1:?] OF Detailed_geometric_model_element;
END_ENTITY;

ENTITY Geometric_model_relationship
  SUBTYPE OF (Representation_relationship);
  SELF\Representation_relationship.rep_1 : Geometric_model;
  SELF\Representation_relationship.rep_2 : Geometric_model;
WHERE
  WR1: rep_1 <> rep_2;
END_ENTITY;

ENTITY Geometric_model_relationship_with_transformation
  ABSTRACT SUPERTYPE OF (ONEOF (Geometric_relationship_with_placement_transformation,
                                Geometric_relationship_with_operator_transformation))
  SUBTYPE OF (Geometric_model_relationship);
WHERE
  WR1: rep_1.context_of_items :<>: rep_2.context_of_items;
END_ENTITY;

ENTITY Geometric_operator_transformation
  SUBTYPE OF (Geometric_placement_operation);
  target : cartesian_transformation;
END_ENTITY;

ENTITY Geometric_placement
  SUBTYPE OF (Geometric_placement_operation);
  target : Axis_placement;
END_ENTITY;

ENTITY Geometric_placement_model
  SUBTYPE OF (Geometric_model);
  SELF\Representation.items : SET[1:1] OF Geometric_placement_operation;
END_ENTITY;

ENTITY Geometric_placement_operation
  ABSTRACT SUPERTYPE OF (ONEOF (Geometric_placement,
                                Geometric_operator_transformation))
  SUBTYPE OF (Detailed_geometric_model_element);
  source : Axis_placement;
  template_definition : template_definition_select;
END_ENTITY;

ENTITY Geometric_relationship_with_operator_transformation
  SUBTYPE OF (Geometric_model_relationship_with_transformation);
  transformation : cartesian_transformation;
WHERE
  WR1: rep_1.context_of_items\Geometric_coordinate_space.dimension_count :=: rep_2.context_of_items\Geometric_coordinate_space.dimension_count;
END_ENTITY;

ENTITY Geometric_relationship_with_placement_transformation
  SUBTYPE OF (Geometric_model_relationship_with_transformation);
  transformation : Axis_placement_mapping;
WHERE
  WR1: rep_1.context_of_items\Geometric_coordinate_space.dimension_count :=: rep_2.context_of_items\Geometric_coordinate_space.dimension_count;
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 Group;
  id : OPTIONAL STRING;
  name : STRING;
  description : OPTIONAL STRING;
  elements : SET[0:?] OF groupable_item;
  membership_meaning : OPTIONAL STRING;
END_ENTITY;

ENTITY Group_relationship;
  description : OPTIONAL STRING;
  relation_type : STRING;
  relating_group : Group;
  related_group : Group;
END_ENTITY;

ENTITY Hardcopy
  SUBTYPE OF (File);
END_ENTITY;

ENTITY Hierarchical_interface_connection
  SUBTYPE OF (Interface_connection);
END_ENTITY;

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

ENTITY Identification_relationship;
  relating_identification_assignment : Identification_assignment;
  related_identification_assignment : Identification_assignment;
END_ENTITY;

ENTITY In_zone;
  id : STRING;
  name : STRING;
  description : OPTIONAL STRING;
  located_item : in_zone_item;
  zone : Zone_element_definition;
END_ENTITY;

ENTITY Included_text_based_representation
  SUBTYPE OF (Representation_item);
  source : Text_based_representation;
END_ENTITY;

ENTITY Incomplete_reference_marking
  SUBTYPE OF (Classification_assignment);
WHERE
  WR1: SIZEOF(QUERY(item <* SELF\Classification_assignment.items | NOT ('AP233_SYSTEMS_ENGINEERING_ARM_LF.IDRM_MARKED_ITEM' IN TYPEOF(item)))) = 0;
  WR2: SELF\Classification_assignment.assigned_class.id = 'reference';
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 Independent_property_representation
  SUBTYPE OF (Property_definition_representation);
  SELF\Property_definition_representation.definition : Independent_property;
DERIVE
  property : Independent_property := SELF\Property_definition_representation.definition;
END_ENTITY;

ENTITY Index_expression
  SUBTYPE OF (Binary_generic_expression, String_expression);
DERIVE
  operand : Generic_expression := SELF\Binary_generic_expression.operands[1];
  index : Generic_expression := SELF\Binary_generic_expression.operands[2];
WHERE
  WR1: ('AP233_SYSTEMS_ENGINEERING_ARM_LF.STRING_EXPRESSION' IN TYPEOF(operand)) AND ('AP233_SYSTEMS_ENGINEERING_ARM_LF.NUMERIC_EXPRESSION' IN TYPEOF(index));
  WR2: Is_int_expr(index);
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 Int_literal
  SUBTYPE OF (Literal_number);
  SELF\Literal_number.the_value : INTEGER;
END_ENTITY;

ENTITY Int_numeric_variable
  SUBTYPE OF (Numeric_variable);
END_ENTITY;

ENTITY Int_value_function
  SUBTYPE OF (Function_parameter_value);
END_ENTITY;

ENTITY Integer_defined_function
  ABSTRACT SUPERTYPE
  SUBTYPE OF (Numeric_defined_function);
END_ENTITY;

ENTITY Interface_connection;
  id : STRING;
  description : OPTIONAL STRING;
  connection_type : STRING;
  connecting : connection_items;
  connected : connection_items;
END_ENTITY;

ENTITY Interface_connector
  SUBTYPE OF (Product);
END_ENTITY;

ENTITY Interface_connector_definition
  SUBTYPE OF (Product_view_definition);
  connector_on : Product_view_definition;
  SELF\Product_view_definition.defined_version : Interface_connector_version;
END_ENTITY;

ENTITY Interface_connector_occurrence;
  id : STRING;
  name : STRING;
  description : OPTIONAL STRING;
  occurrence_of : Interface_connector_definition;
  connector_on : connector_on_item;
END_ENTITY;

ENTITY Interface_connector_version
  SUBTYPE OF (Product_version);
  SELF\Product_version.of_product : Interface_connector;
END_ENTITY;

ENTITY Interface_definition_connection;
  id : STRING;
  description : OPTIONAL STRING;
  connection_type : STRING;
  connecting : connection_definition_items;
  connected : connection_definition_items;
END_ENTITY;

ENTITY Interface_definition_for;
  id : STRING;
  name : STRING;
  description : OPTIONAL STRING;
  interface : Interface_specification_definition;
  interface_component : interface_definition_item;
END_ENTITY;

ENTITY Interface_specification
  SUBTYPE OF (Product);
END_ENTITY;

ENTITY Interface_specification_definition
  SUBTYPE OF (Product_view_definition);
  SELF\Product_view_definition.defined_version : Interface_specification_version;
END_ENTITY;

ENTITY Interface_specification_version
  SUBTYPE OF (Product_version);
  SELF\Product_version.of_product : Interface_specification;
END_ENTITY;

ENTITY Interval_expression
  SUBTYPE OF (Boolean_expression, Multiple_arity_generic_expression);
DERIVE
  interval_low : Generic_expression := SELF\Multiple_arity_generic_expression.operands[1];
  interval_item : Generic_expression := SELF\Multiple_arity_generic_expression.operands[2];
  interval_high : Generic_expression := SELF\Multiple_arity_generic_expression.operands[3];
WHERE
  WR1: ('AP233_SYSTEMS_ENGINEERING_ARM_LF.EXPRESSION' IN TYPEOF(interval_low)) AND ('AP233_SYSTEMS_ENGINEERING_ARM_LF.EXPRESSION' IN TYPEOF(interval_item)) AND ('AP233_SYSTEMS_ENGINEERING_ARM_LF.EXPRESSION' IN TYPEOF(interval_high));
  WR2: (('AP233_SYSTEMS_ENGINEERING_ARM_LF.STRING_EXPRESSION' IN TYPEOF(SELF.interval_low)) AND ('AP233_SYSTEMS_ENGINEERING_ARM_LF.STRING_EXPRESSION' IN TYPEOF(SELF.interval_high)) AND ('AP233_SYSTEMS_ENGINEERING_ARM_LF.STRING_EXPRESSION' IN TYPEOF(SELF.interval_item))) OR (('AP233_SYSTEMS_ENGINEERING_ARM_LF.STRING_EXPRESSION' IN TYPEOF(SELF.interval_low)) AND ('AP233_SYSTEMS_ENGINEERING_ARM_LF.NUMERIC_EXPRESSION' IN TYPEOF(SELF.interval_item)) AND ('AP233_SYSTEMS_ENGINEERING_ARM_LF.NUMERIC_EXPRESSION' IN TYPEOF(SELF.interval_high)));
END_ENTITY;

ENTITY Issue
  SUBTYPE OF (Observation);
END_ENTITY;

ENTITY Issue_consequence
  SUBTYPE OF (Observation_consequence);
END_ENTITY;

ENTITY Issue_reference
  SUBTYPE OF (Observation_assignment);
END_ENTITY;

ENTITY Item_assumed;
  assumption : Assumption;
  item : assumed_item;
END_ENTITY;

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

ENTITY Item_shape;
  id : OPTIONAL STRING;
  description : OPTIONAL STRING;
  described_element : shapeable_item;
END_ENTITY;

ENTITY Item_usage_effectivity;
  effectivity_domain : Effectivity;
  item_usage_relationship : item_usage_relationship_item;
  resolved_configuration : Item_design_association;
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_function
  SUBTYPE OF (Numeric_expression, Unary_generic_expression);
  SELF\Unary_generic_expression.operand : String_expression;
END_ENTITY;

ENTITY Length_unit
  SUBTYPE OF (Unit);
END_ENTITY;

ENTITY Like_expression
  SUBTYPE OF (Comparison_expression);
WHERE
  WR1: ('AP233_SYSTEMS_ENGINEERING_ARM_LF.STRING_EXPRESSION' IN TYPEOF(SELF\Comparison_expression.operands[1])) AND ('AP233_SYSTEMS_ENGINEERING_ARM_LF.STRING_EXPRESSION' IN TYPEOF(SELF\Comparison_expression.operands[2]));
END_ENTITY;

ENTITY Literal_number
  ABSTRACT SUPERTYPE OF (ONEOF (Int_literal,
                                Real_literal))
  SUBTYPE OF (Generic_literal, Simple_numeric_expression);
  the_value : NUMBER;
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 Log10_function
  SUBTYPE OF (Unary_function_call);
END_ENTITY;

ENTITY Log2_function
  SUBTYPE OF (Unary_function_call);
END_ENTITY;

ENTITY Log_function
  SUBTYPE OF (Unary_function_call);
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 Make_from_relationship
  SUBTYPE OF (View_definition_usage);
  SELF\View_definition_relationship.relating_view : Part_view_definition;
  SELF\View_definition_relationship.related_view : Part_view_definition;
  quantity : OPTIONAL Value_with_unit;
  priority : OPTIONAL INTEGER;
WHERE
  WR1: SELF\View_definition_relationship.relating_view :<>: SELF\View_definition_relationship.related_view;
  WR2: NOT (EXISTS(quantity)) XOR ((NOT ('NUMBER' IN TYPEOF(quantity.value_component))) XOR (quantity.value_component > 0));
END_ENTITY;

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

ENTITY Managed_resource_by_reference
  SUBTYPE OF (Managed_resource);
  item : resource_item_select;
END_ENTITY;

ENTITY Managed_resource_by_resource_item
  SUBTYPE OF (Managed_resource);
  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 Maximum_function
  SUBTYPE OF (Multiple_arity_function_call);
END_ENTITY;

ENTITY Measure_item
  ABSTRACT SUPERTYPE OF (ONEOF (Measure_item_with_precision,
                                Numerical_item_with_global_unit,
                                Numerical_item_with_unit,
                                Value_list,
                                Value_range,
                                Value_range_with_global_unit,
                                Value_set,
                                Value_with_tolerances))
  SUBTYPE OF (Representation_item);
WHERE
  WR1: SIZEOF(USEDIN(SELF, 'AP233_SYSTEMS_ENGINEERING_ARM_LF.REPRESENTATION.ITEMS')) > 0;
END_ENTITY;

ENTITY Measure_item_with_precision
  SUBTYPE OF (Measure_item);
  significant_digits : INTEGER;
END_ENTITY;

ENTITY Measure_qualification;
  name : STRING;
  description : STRING;
  qualified_measure : Value_with_unit;
  qualifiers : SET[1:?] OF value_qualifier;
WHERE
  WR1: NOT ('AP233_SYSTEMS_ENGINEERING_ARM_LF.' + 'NUMERICAL_ITEM_WITH_UNIT' IN TYPEOF(qualified_measure));
  WR2: SIZEOF(QUERY(temp <* qualifiers | 'AP233_SYSTEMS_ENGINEERING_ARM_LF.PRECISION_QUALIFIER' IN TYPEOF(temp))) < 2;
END_ENTITY;

ENTITY Minimum_function
  SUBTYPE OF (Multiple_arity_function_call);
END_ENTITY;

ENTITY Minus_expression
  SUBTYPE OF (Binary_numeric_expression);
END_ENTITY;

ENTITY Minus_function
  SUBTYPE OF (Unary_function_call);
END_ENTITY;

ENTITY Mod_expression
  SUBTYPE OF (Binary_numeric_expression);
END_ENTITY;

ENTITY Mult_expression
  SUBTYPE OF (Multiple_arity_numeric_expression);
END_ENTITY;

ENTITY Multiple_arity_boolean_expression
  ABSTRACT SUPERTYPE OF (ONEOF (And_expression,
                                Or_expression))
  SUBTYPE OF (Boolean_expression, Multiple_arity_generic_expression);
  SELF\Multiple_arity_generic_expression.operands : LIST[2:?] OF Boolean_expression;
END_ENTITY;

ENTITY Multiple_arity_function_call
  ABSTRACT SUPERTYPE
  SUBTYPE OF (Multiple_arity_numeric_expression);
END_ENTITY;

ENTITY Multiple_arity_generic_expression
  ABSTRACT SUPERTYPE
  SUBTYPE OF (Generic_expression);
  operands : LIST[2:?] OF Generic_expression;
END_ENTITY;

ENTITY Multiple_arity_numeric_expression
  ABSTRACT SUPERTYPE OF (ONEOF (Plus_expression,
                                Mult_expression,
                                Multiple_arity_function_call))
  SUBTYPE OF (Multiple_arity_generic_expression, Numeric_expression);
  SELF\Multiple_arity_generic_expression.operands : LIST[2:?] OF Numeric_expression;
END_ENTITY;

ENTITY Multiple_decision_point
  SUBTYPE OF (Structured_task_element);
INVERSE
  paths : SET[2:?] OF Decision_path FOR defined_in;
END_ENTITY;

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

ENTITY Named_variable_semantics
  SUBTYPE OF (Variable_semantics);
  name : STRING;
  variable_context : Generic_expression;
END_ENTITY;

ENTITY Next_assembly_usage
  SUBTYPE OF (Assembly_component_relationship);
END_ENTITY;

ENTITY Not_expression
  SUBTYPE OF (Unary_boolean_expression);
  SELF\Unary_generic_expression.operand : Boolean_expression;
END_ENTITY;

ENTITY Numeric_defined_function
  ABSTRACT SUPERTYPE OF (ONEOF (Integer_defined_function,
                                Real_defined_function))
  SUBTYPE OF (Defined_function, Numeric_expression);
END_ENTITY;

ENTITY Numeric_expression
  ABSTRACT SUPERTYPE
  SUBTYPE OF (Expression);
DERIVE
  is_int : BOOLEAN := Is_int_expr(SELF);
  sql_mappable : BOOLEAN := Is_sql_mappable(SELF);
END_ENTITY;

ENTITY Numeric_variable
  SUPERTYPE OF (ONEOF (Int_numeric_variable,
                       Real_numeric_variable))
  SUBTYPE OF (Simple_numeric_expression, Variable);
WHERE
  WR1: ('AP233_SYSTEMS_ENGINEERING_ARM_LF.INT_NUMERIC_VARIABLE' IN TYPEOF(SELF)) OR ('AP233_SYSTEMS_ENGINEERING_ARM_LF.REAL_NUMERIC_VARIABLE' IN TYPEOF(SELF));
END_ENTITY;

ENTITY Numerical_document_property
  SUBTYPE OF (Numerical_item_with_unit);
INVERSE
  valued_characteristic : SET[1:1] OF Document_property_representation FOR items;
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, 'AP233_SYSTEMS_ENGINEERING_ARM_LF.REPRESENTATION.ITEMS') | 'AP233_SYSTEMS_ENGINEERING_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;
  in_context : SET[0:?] OF observed_context;
  observed_by : SET[0:?] OF observation_recorder;
  observed_during : OPTIONAL Activity_actual;
END_ENTITY;

ENTITY Observation_assignment;
  assigned_observation : Observation;
  item : observation_item;
  role : STRING;
END_ENTITY;

ENTITY Observation_consequence;
  id : STRING;
  name : STRING;
  inferred_from : Observation;
  requests : observation_consequence_item;
  role : STRING;
END_ENTITY;

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

ENTITY Observed_environment
  SUBTYPE OF (Product);
END_ENTITY;

ENTITY Observed_environment_assignment;
  environment : Observed_environment_view;
  item : observed_environment_item;
END_ENTITY;

ENTITY Observed_environment_to_definition;
  defined_environment : Environment_definition;
  observed_environment : Observed_environment;
END_ENTITY;

ENTITY Observed_environment_to_definition_version;
  defined_environment_version : Environment_definition_version;
  observed_environment_version : Observed_environment_version;
END_ENTITY;

ENTITY Observed_environment_to_definition_view;
  defined_environment_view : Observed_environment_view;
  observed_environment_view : Environment_definition_view;
END_ENTITY;

ENTITY Observed_environment_version
  SUBTYPE OF (Product_version);
  of_environment : Observed_environment;
END_ENTITY;

ENTITY Observed_environment_view
  SUBTYPE OF (Product_view_definition);
  observed_environment_version : Observed_environment_version;
END_ENTITY;

ENTITY Observed_environment_view_definition_relationship
  SUBTYPE OF (View_definition_relationship);
  SELF\View_definition_relationship.relating_view : Observed_environment_view;
  SELF\View_definition_relationship.related_view : Observed_environment_view;
DERIVE
  related_environment : Observed_environment_view := SELF\View_definition_relationship.related_view;
  relating_environment : Observed_environment_view := SELF\View_definition_relationship.relating_view;
END_ENTITY;

ENTITY Odd_function
  SUBTYPE OF (Unary_boolean_expression);
  SELF\Unary_generic_expression.operand : Numeric_expression;
WHERE
  WR1: Is_int_expr(SELF\Numeric_expression);
END_ENTITY;

ENTITY Or_expression
  SUBTYPE OF (Multiple_arity_boolean_expression);
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_type;
  name : STRING;
  description : OPTIONAL STRING;
END_ENTITY;

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

ENTITY Parameter_value_representation_item
  SUBTYPE OF (Representation_item);
  parameter_value : parameter_value_select;
END_ENTITY;

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

ENTITY Part
  SUBTYPE OF (Product);
END_ENTITY;

ENTITY Part_version
  SUBTYPE OF (Product_version);
  SELF\Product_version.of_product : Part;
END_ENTITY;

ENTITY Part_view_definition
  SUBTYPE OF (Product_view_definition);
  SELF\Product_view_definition.defined_version : Part_version;
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_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_breakdown
  SUBTYPE OF (Breakdown);
END_ENTITY;

ENTITY Physical_breakdown_context
  SUBTYPE OF (Breakdown_context);
  SELF\Breakdown_context.breakdown : Physical_breakdown_version;
  SELF\Breakdown_context.breakdown_element : Physical_element_definition;
END_ENTITY;

ENTITY Physical_breakdown_version
  SUBTYPE OF (Breakdown_version);
  SELF\Breakdown_version.of_product : Physical_breakdown;
END_ENTITY;

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

ENTITY Physical_element
  SUBTYPE OF (Breakdown_element);
END_ENTITY;

ENTITY Physical_element_definition
  SUBTYPE OF (Breakdown_element_definition);
  SELF\Breakdown_element_definition.defined_version : Physical_element_version;
END_ENTITY;

ENTITY Physical_element_usage
  SUBTYPE OF (Breakdown_element_usage);
  SELF\View_definition_relationship.relating_view : Physical_element_definition;
  SELF\View_definition_relationship.related_view : Physical_element_definition;
END_ENTITY;

ENTITY Physical_element_version
  SUBTYPE OF (Breakdown_element_version);
  SELF\Breakdown_element_version.of_product : Physical_element;
END_ENTITY;

ENTITY Plane_angle_unit
  SUBTYPE OF (Unit);
END_ENTITY;

ENTITY Plus_expression
  SUBTYPE OF (Multiple_arity_numeric_expression);
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 Power_expression
  SUBTYPE OF (Binary_numeric_expression);
END_ENTITY;

ENTITY Pre_defined_type_qualifier
  SUBTYPE OF (Type_qualifier);
WHERE
  WR1: SELF\Type_qualifier.name IN pre_defined_type_qualifiers;
END_ENTITY;

ENTITY Precision_qualifier;
  precision_value : INTEGER;
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 Probability_representation
  SUBTYPE OF (Activity_property_representation);
  SELF\Activity_property_representation.property : Risk_event_probability;
  SELF\Activity_property_representation.rep : Probability;
END_ENTITY;

ENTITY Product;
  id : STRING;
  name : 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_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_configuration_hierarchical_relationship
  SUBTYPE OF (Product_configuration_relationship);
DERIVE
  child : Product_configuration := SELF\Product_configuration_relationship.related_product_configuration;
  parent : Product_configuration := SELF\Product_configuration_relationship.relating_product_configuration;
END_ENTITY;

ENTITY Product_configuration_relationship
  SUPERTYPE OF (ONEOF (Product_configuration_hierarchical_relationship,
                       Product_configuration_revision_sequence));
  relating_product_configuration : Product_configuration;
  related_product_configuration : Product_configuration;
END_ENTITY;

ENTITY Product_configuration_revision_sequence
  SUBTYPE OF (Product_configuration_relationship);
DERIVE
  predecessor : Product_configuration := SELF\Product_configuration_relationship.relating_product_configuration;
  successor : Product_configuration := SELF\Product_configuration_relationship.related_product_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_or_configuration;
  individual_product : Product_as_individual_version;
END_ENTITY;

ENTITY Product_design_view_to_individual;
  product_as_individual_view : Product_as_individual_view;
  product_view_definition : product_design_view_or_configuration;
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_occurrence_definition_relationship
  ABSTRACT SUPERTYPE ;
  relating_view : Product_view_definition;
  related_view : Product_view_definition;
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 Promissory_usage
  SUBTYPE OF (Assembly_component_relationship);
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 Qualified_numerical_item_with_unit
  SUBTYPE OF (Numerical_item_with_unit, Qualified_representation_item);
END_ENTITY;

ENTITY Qualified_representation_item
  ABSTRACT SUPERTYPE
  SUBTYPE OF (Representation_item);
  qualifiers : SET[1:?] OF value_qualifier;
WHERE
  WR1: SIZEOF(QUERY(temp <* qualifiers | 'AP233_SYSTEMS_ENGINEERING_ARM_LF.PRECISION_QUALIFIER' IN TYPEOF(temp))) < 2;
END_ENTITY;

ENTITY Qualitative_uncertainty
  SUBTYPE OF (Uncertainty_qualifier);
  uncertainty_value : STRING;
END_ENTITY;

ENTITY Random_variable
  SUBTYPE OF (Numerical_item_with_global_unit);
END_ENTITY;

ENTITY Ratio_unit
  SUBTYPE OF (Unit);
END_ENTITY;

ENTITY Real_defined_function
  ABSTRACT SUPERTYPE
  SUBTYPE OF (Numeric_defined_function);
END_ENTITY;

ENTITY Real_literal
  SUBTYPE OF (Literal_number);
  SELF\Literal_number.the_value : REAL;
END_ENTITY;

ENTITY Real_numeric_variable
  SUBTYPE OF (Numeric_variable);
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 Related_consequence
  SUBTYPE OF (View_definition_relationship);
  SELF\View_definition_relationship.relating_view : Risk_perception;
  SELF\View_definition_relationship.related_view : Risk_consequence;
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 identifier;
  name : OPTIONAL label;
  description : OPTIONAL text;
  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 : identifier;
  kind : text;
INVERSE
  representations_in_context : SET[1:?] OF Representation FOR context_of_items;
END_ENTITY;

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

ENTITY Representation_proxy_item
  SUBTYPE OF (Representation_item);
  item : representation_proxy_select;
END_ENTITY;

ENTITY Representation_relationship;
  relation_type : OPTIONAL label;
  description : OPTIONAL text;
  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_reference,
                                Required_resource_by_requirement,
                                Required_resource_by_resource_item));
  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_reference
  SUBTYPE OF (Required_resource);
  item : resource_item_select;
END_ENTITY;

ENTITY Required_resource_by_requirement
  SUBTYPE OF (Required_resource);
END_ENTITY;

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

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

ENTITY Required_resource_requirement;
  item : resource_requirement_select;
  resource_requirement : Required_resource_by_requirement;
END_ENTITY;

ENTITY Requirement
  SUBTYPE OF (Product);
END_ENTITY;

ENTITY Requirement_assignment;
  id : STRING;
  description : OPTIONAL STRING;
  assigned_requirement : Requirement_view_definition;
  assigned_to : requirement_assignment_item;
END_ENTITY;

ENTITY Requirement_collection_relationship
  SUBTYPE OF (Requirement_view_definition_relationship);
DERIVE
  collection : Requirement_view_definition := SELF\Requirement_view_definition_relationship.primary;
  member : Requirement_view_definition := SELF\Requirement_view_definition_relationship.secondary;
END_ENTITY;

ENTITY Requirement_satisfied_by;
  id : STRING;
  description : OPTIONAL STRING;
  satisfied_by : requirement_satisfaction_item;
  satisfied_requirement : Requirement_view_definition;
  related_assignment : OPTIONAL Requirement_assignment;
END_ENTITY;

ENTITY Requirement_source;
  id : STRING;
  description : OPTIONAL STRING;
  source : requirement_source_item;
  sourced_requirement : Requirement_view_definition;
END_ENTITY;

ENTITY Requirement_version
  SUBTYPE OF (Product_version);
  SELF\Product_version.of_product : Requirement;
END_ENTITY;

ENTITY Requirement_version_relationship
  SUBTYPE OF (Product_version_relationship);
  SELF\Product_version_relationship.relating_version : Requirement_version;
  SELF\Product_version_relationship.related_version : Requirement_version;
DERIVE
  predecessor : Requirement_version := SELF\Product_version_relationship.relating_version;
  successor : Requirement_version := SELF\Product_version_relationship.related_version;
END_ENTITY;

ENTITY Requirement_view_definition
  SUBTYPE OF (Product_view_definition);
  SELF\Product_view_definition.defined_version : Requirement_version;
END_ENTITY;

ENTITY Requirement_view_definition_relationship
  SUPERTYPE OF (ONEOF (Requirement_collection_relationship,
                       Tracing_relationship))
  SUBTYPE OF (View_definition_relationship);
  SELF\View_definition_relationship.relating_view : Requirement_view_definition;
  SELF\View_definition_relationship.related_view : Requirement_view_definition;
DERIVE
  primary : Requirement_view_definition := SELF\View_definition_relationship.relating_view;
  secondary : Requirement_view_definition := SELF\View_definition_relationship.related_view;
WHERE
  WR1: primary :<>: secondary;
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_by_reference
  SUBTYPE OF (Resource_as_realized);
  item : resource_item_select;
END_ENTITY;

ENTITY Resource_as_realized_by_resource_item
  SUBTYPE OF (Resource_as_realized);
  resource_item : Resource_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_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;
END_ENTITY;

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

ENTITY Resource_item_realization;
  item : resource_item_select;
  resource_item : Resource_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
  SUBTYPE OF (Product);
END_ENTITY;

ENTITY Risk_attitude
  SUBTYPE OF (Property_representation);
  SELF\Property_definition_representation.rep : Property_value_representation;
  SELF\Property_definition_representation.definition : Risk_level;
DERIVE
  criticality_factor : Property_value_representation := SELF\Property_definition_representation.rep;
END_ENTITY;

ENTITY Risk_consequence
  SUBTYPE OF (Product_view_definition);
  SELF\Product_view_definition.defined_version : Risk_version;
END_ENTITY;

ENTITY Risk_event
  SUBTYPE OF (Applied_activity_method_assignment);
  SELF\Applied_activity_method_assignment.items : SET[1:1] OF Risk_perception;
DERIVE
  SELF\Applied_activity_method_assignment.role : STRING := 'causal event';
  associated_risk : SET[1:1] OF Risk_perception := SELF\Applied_activity_method_assignment.items;
END_ENTITY;

ENTITY Risk_event_probability
  SUBTYPE OF (Activity_property);
  SELF\Activity_property.described_element : Activity_method;
END_ENTITY;

ENTITY Risk_impact_assignment;
  assigned_risk_consequence : Risk_consequence;
  items : SET[1:?] OF risk_impact_item;
END_ENTITY;

ENTITY Risk_level
  SUBTYPE OF (Assigned_property);
  SELF\Assigned_property.described_element : Risk_perception;
END_ENTITY;

ENTITY Risk_perception
  SUBTYPE OF (Product_view_definition);
  SELF\Product_view_definition.defined_version : Risk_version;
  SELF\Product_view_definition.initial_context : Risk_perception_context;
DERIVE
  risk_perception_context : Risk_perception_context := SELF\Product_view_definition.initial_context;
END_ENTITY;

ENTITY Risk_perception_context
  SUBTYPE OF (View_definition_context);
END_ENTITY;

ENTITY Risk_perception_relationship
  SUBTYPE OF (View_definition_relationship);
  SELF\View_definition_relationship.relating_view : Risk_perception;
  SELF\View_definition_relationship.related_view : Risk_perception;
END_ENTITY;

ENTITY Risk_perception_source_assignment;
  assigned_risk : Risk_perception;
  items : SET[1:?] OF risk_perception_source_item;
END_ENTITY;

ENTITY Risk_relationship
  SUBTYPE OF (Product_relationship);
  SELF\Product_relationship.relating_product : Risk;
  SELF\Product_relationship.related_product : Risk;
DERIVE
  related_risk : Risk := SELF\Product_relationship.related_product;
  relating_risk : Risk := SELF\Product_relationship.relating_product;
END_ENTITY;

ENTITY Risk_version
  SUBTYPE OF (Product_version);
  SELF\Product_version.of_product : Risk;
DERIVE
  of_risk : Risk := SELF\Product_version.of_product;
END_ENTITY;

ENTITY Same_as_external_item;
  external_item_id : STRING;
  description : OPTIONAL STRING;
  role : STRING;
  external_source : External_source;
  items : SET[0:?] OF same_as_item;
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 Shape_dependent_property_representation;
  characteristic_type : STRING;
  description : OPTIONAL STRING;
  described_element : shape_dependent_select;
  property_representation : Representation;
END_ENTITY;

ENTITY Shape_description_association;
  represented_characteristic : shape_select;
  representation : shape_model;
  role : OPTIONAL STRING;
  description : OPTIONAL STRING;
END_ENTITY;

ENTITY Shape_element;
  id : OPTIONAL STRING;
  element_name : OPTIONAL STRING;
  description : OPTIONAL STRING;
  containing_shape : Item_shape;
WHERE
  WR1: EXISTS(element_name) OR (TYPEOF(SELF\Shape_element) <> TYPEOF(SELF));
END_ENTITY;

ENTITY Shape_element_relationship;
  relation_type : OPTIONAL STRING;
  description : OPTIONAL STRING;
  relating : Shape_element;
  related : Shape_element;
WHERE
  WR1: EXISTS(relation_type) OR (TYPEOF(SELF\Shape_element_relationship) <> TYPEOF(SELF));
END_ENTITY;

ENTITY Shape_placement_association
  SUBTYPE OF (Shape_description_association);
  SELF\Shape_description_association.representation : Geometric_placement_model;
  SELF\Shape_description_association.represented_characteristic : Contextual_item_shape;
END_ENTITY;

ENTITY Simple_boolean_expression
  ABSTRACT SUPERTYPE OF (ONEOF (Boolean_literal,
                                Boolean_variable))
  SUBTYPE OF (Boolean_expression, Simple_generic_expression);
END_ENTITY;

ENTITY Simple_generic_expression
  ABSTRACT SUPERTYPE OF (ONEOF (Generic_literal,
                                Generic_variable))
  SUBTYPE OF (Generic_expression);
END_ENTITY;

ENTITY Simple_numeric_expression
  ABSTRACT SUPERTYPE OF (ONEOF (Literal_number,
                                Numeric_variable))
  SUBTYPE OF (Numeric_expression, Simple_generic_expression);
END_ENTITY;

ENTITY Simple_string_expression
  ABSTRACT SUPERTYPE OF (ONEOF (String_literal,
                                String_variable))
  SUBTYPE OF (Simple_generic_expression, String_expression);
END_ENTITY;

ENTITY Simultaneous_elements
  SUBTYPE OF (Concurrent_elements);
END_ENTITY;

ENTITY Sin_function
  SUBTYPE OF (Unary_function_call);
END_ENTITY;

ENTITY Single_property_is_definition
  SUBTYPE OF (Assigned_property);
  SELF\Assigned_property.described_element : Product_view_definition;
UNIQUE
  UR1: SELF\Assigned_property.described_element;
END_ENTITY;

ENTITY Slash_expression
  SUBTYPE OF (Binary_numeric_expression);
END_ENTITY;

ENTITY Solid_angle_unit
  SUBTYPE OF (Unit);
END_ENTITY;

ENTITY Sql_mappable_defined_function
  ABSTRACT SUPERTYPE
  SUBTYPE OF (Defined_function);
END_ENTITY;

ENTITY Square_root_function
  SUBTYPE OF (Unary_function_call);
END_ENTITY;

ENTITY Standard_uncertainty
  SUPERTYPE OF (Expanded_uncertainty)
  SUBTYPE OF (Uncertainty_qualifier);
  uncertainty_value : REAL;
END_ENTITY;

ENTITY Start_task
  SUBTYPE OF (Task_element);
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_based_behaviour_model
  SUBTYPE OF (Representation);
  SELF\Representation.context_of_items : State_based_behaviour_representation_context;
  SELF\Representation.items : SET[1:?] OF State_based_behaviour_representation_item;
END_ENTITY;

ENTITY State_based_behaviour_representation_context
  SUBTYPE OF (Representation_context);
END_ENTITY;

ENTITY State_based_behaviour_representation_item
  SUBTYPE OF (Representation_item);
  item : state_based_behaviour_element;
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;
  description : OPTIONAL STRING;
  relating : SET[1:?] OF State_definition;
  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_defined_function
  ABSTRACT SUPERTYPE
  SUBTYPE OF (Defined_function, String_expression);
END_ENTITY;

ENTITY String_expression
  ABSTRACT SUPERTYPE OF (ONEOF (Simple_string_expression,
                                Index_expression,
                                Substring_expression,
                                Concat_expression,
                                Format_function,
                                String_defined_function))
  SUBTYPE OF (Expression);
END_ENTITY;

ENTITY String_literal
  SUBTYPE OF (Generic_literal, Simple_string_expression);
  the_value : STRING;
END_ENTITY;

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

ENTITY String_variable
  SUBTYPE OF (Simple_string_expression, Variable);
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 Substring_expression
  SUBTYPE OF (Multiple_arity_generic_expression, String_expression);
DERIVE
  operand : Generic_expression := SELF\Multiple_arity_generic_expression.operands[1];
  index1 : Generic_expression := SELF\Multiple_arity_generic_expression.operands[2];
  index2 : Generic_expression := SELF\Multiple_arity_generic_expression.operands[3];
WHERE
  WR1: ('AP233_SYSTEMS_ENGINEERING_ARM_LF.STRING_EXPRESSION' IN TYPEOF(operand)) AND ('AP233_SYSTEMS_ENGINEERING_ARM_LF.NUMERIC_EXPRESSION' IN TYPEOF(index1)) AND ('AP233_SYSTEMS_ENGINEERING_ARM_LF.NUMERIC_EXPRESSION' IN TYPEOF(index2));
  WR2: SIZEOF(SELF\Multiple_arity_generic_expression.operands) = 3;
  WR3: Is_int_expr(index1);
  WR4: Is_int_expr(index2);
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 System
  SUBTYPE OF (Product);
END_ENTITY;

ENTITY System_breakdown
  SUBTYPE OF (Breakdown);
END_ENTITY;

ENTITY System_breakdown_context
  SUBTYPE OF (Breakdown_context);
  SELF\Breakdown_context.breakdown : System_breakdown_version;
  SELF\Breakdown_context.breakdown_element : System_element_definition;
END_ENTITY;

ENTITY System_breakdown_version
  SUBTYPE OF (Breakdown_version);
  SELF\Breakdown_version.of_product : System_breakdown;
END_ENTITY;

ENTITY System_element
  SUBTYPE OF (Breakdown_element);
END_ENTITY;

ENTITY System_element_definition
  SUBTYPE OF (Breakdown_element_definition);
  SELF\Breakdown_element_definition.defined_version : System_element_version;
END_ENTITY;

ENTITY System_element_usage
  SUBTYPE OF (Breakdown_element_usage);
  SELF\View_definition_relationship.relating_view : System_element_definition;
  SELF\View_definition_relationship.related_view : System_element_definition;
END_ENTITY;

ENTITY System_element_version
  SUBTYPE OF (Breakdown_element_version);
  SELF\Breakdown_element_version.of_product : System_element;
END_ENTITY;

ENTITY System_version
  SUBTYPE OF (Product_version);
  SELF\Product_version.of_product : System;
DERIVE
  of_system : System := SELF\Product_version.of_product;
END_ENTITY;

ENTITY System_version_relationship
  SUBTYPE OF (Product_version_relationship);
  SELF\Product_version_relationship.relating_version : System_version;
  SELF\Product_version_relationship.related_version : System_version;
END_ENTITY;

ENTITY System_version_sequence
  SUBTYPE OF (System_version_relationship);
DERIVE
  predecessor : System_version := SELF\System_version_relationship.relating_version;
  successor : System_version := SELF\System_version_relationship.related_version;
END_ENTITY;

ENTITY System_view_definition
  SUBTYPE OF (Product_view_definition);
  SELF\Product_view_definition.defined_version : System_version;
END_ENTITY;

ENTITY Tan_function
  SUBTYPE OF (Unary_function_call);
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_io
  SUBTYPE OF (Task_element_assignment);
  SELF\Applied_activity_method_assignment.assigned_activity_method : Task_step;
END_ENTITY;

ENTITY Task_io_hierarchy;
  child : Task_io;
  parent : Task_io;
WHERE
  wr1: child.role = parent.role;
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.relating_method : Task_method;
  SELF\Activity_method_relationship.related_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.relating_method : Task_method_version;
  SELF\Activity_method_relationship.related_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 Task_step_hierarchy
  SUBTYPE OF (Task_element_relationship);
  SELF\Task_element_relationship.related_method : Task_step;
  SELF\Task_element_relationship.relating_method : Task_step;
DERIVE
  child : Task_step := SELF\Task_element_relationship.related_method;
  parent : Task_step := SELF\Task_element_relationship.relating_method;
END_ENTITY;

ENTITY Text_based_representation
  SUBTYPE OF (Representation);
  SELF\Representation.context_of_items : Text_based_representation_context;
  SELF\Representation.items : SET[1:1] OF text_based_item_select;
END_ENTITY;

ENTITY Text_based_representation_context
  SUBTYPE OF (Representation_context);
END_ENTITY;

ENTITY Textual_expression_composition
  SUBTYPE OF (Representation_item);
  content : list_or_set_of_text_based_item;
END_ENTITY;

ENTITY Textual_expression_representation_item
  SUBTYPE OF (String_representation_item);
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 Tracing_relationship
  SUBTYPE OF (Requirement_view_definition_relationship);
DERIVE
  traces_from : Requirement_view_definition := SELF\Requirement_view_definition_relationship.primary;
  traces_to : Requirement_view_definition := SELF\Requirement_view_definition_relationship.secondary;
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 Type_qualifier
  ABSTRACT SUPERTYPE OF (Pre_defined_type_qualifier);
  name : STRING;
END_ENTITY;

ENTITY Unary_boolean_expression
  ABSTRACT SUPERTYPE
  SUBTYPE OF (Boolean_expression, Unary_generic_expression);
END_ENTITY;

ENTITY Unary_function_call
  ABSTRACT SUPERTYPE OF (ONEOF (Abs_function,
                                Minus_function,
                                Sin_function,
                                Cos_function,
                                Tan_function,
                                Asin_function,
                                Acos_function,
                                Exp_function,
                                Log_function,
                                Log2_function,
                                Log10_function,
                                Square_root_function))
  SUBTYPE OF (Unary_numeric_expression);
END_ENTITY;

ENTITY Unary_generic_expression
  ABSTRACT SUPERTYPE
  SUBTYPE OF (Generic_expression);
  operand : Generic_expression;
END_ENTITY;

ENTITY Unary_numeric_expression
  ABSTRACT SUPERTYPE
  SUBTYPE OF (Numeric_expression, Unary_generic_expression);
  SELF\Unary_generic_expression.operand : Numeric_expression;
END_ENTITY;

ENTITY Uncertainty_qualifier
  SUPERTYPE OF (ONEOF (Standard_uncertainty,
                       Qualitative_uncertainty));
  measure_name : STRING;
  description : STRING;
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 Validation;
  validates : validation_item;
INVERSE
  validated_by : SET[0:?] OF Evidence FOR supports;
END_ENTITY;

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

ENTITY Value_limit
  SUBTYPE OF (Numerical_item_with_unit, Qualified_representation_item);
  SELF\Qualified_representation_item.qualifiers : SET[1:1] OF Pre_defined_type_qualifier;
WHERE
  WR1: SELF\Qualified_representation_item.qualifiers[1]\Type_qualifier.name IN ['minimum', 'maximum'];
END_ENTITY;

ENTITY Value_list
  SUBTYPE OF (Measure_item);
  values : LIST[1:?] OF Measure_item;
END_ENTITY;

ENTITY Value_range
  SUBTYPE OF (Measure_item);
  lower_limit : Numerical_item_with_unit;
  upper_limit : Numerical_item_with_unit;
END_ENTITY;

ENTITY Value_range_with_global_unit
  SUBTYPE OF (Measure_item);
  lower_limit : Numerical_item_with_global_unit;
  upper_limit : Numerical_item_with_global_unit;
END_ENTITY;

ENTITY Value_set
  SUBTYPE OF (Measure_item);
  values : SET[1:?] OF Measure_item;
END_ENTITY;

ENTITY Value_with_tolerances
  SUBTYPE OF (Measure_item);
  item_value : Numerical_item_with_unit;
  lower_limit : REAL;
  upper_limit : REAL;
END_ENTITY;

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

ENTITY Variable
  ABSTRACT SUPERTYPE
  SUBTYPE OF (Generic_variable);
END_ENTITY;

ENTITY Variable_semantics
  ABSTRACT SUPERTYPE ;
END_ENTITY;

ENTITY Verification;
  verifies : Requirement_satisfied_by;
INVERSE
  verified_by : SET[0:?] OF Evidence FOR supports;
END_ENTITY;

ENTITY Verification_relationship;
  relating : Verification;
  related : Verification;
END_ENTITY;

ENTITY View_definition_context;
  application_domain : STRING;
  life_cycle_stage : STRING;
  description : OPTIONAL STRING;
WHERE
  WR1: (SIZEOF(USEDIN(SELF, 'AP233_SYSTEMS_ENGINEERING_ARM_LF.' + 'PRODUCT_VIEW_DEFINITION.INITIAL_CONTEXT')) > 0) OR (SIZEOF(USEDIN(SELF, 'AP233_SYSTEMS_ENGINEERING_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_expression
  SUBTYPE OF (Binary_boolean_expression);
  SELF\Binary_generic_expression.operands : LIST[2:2] OF Boolean_expression;
END_ENTITY;

ENTITY Xor_state_cause_effect_definition
  SUBTYPE OF (State_cause_effect_definition);
END_ENTITY;

ENTITY Zone_breakdown
  SUBTYPE OF (Breakdown);
END_ENTITY;

ENTITY Zone_breakdown_context
  SUBTYPE OF (Breakdown_context);
  SELF\Breakdown_context.breakdown : Zone_breakdown_version;
  SELF\Breakdown_context.breakdown_element : Zone_element_definition;
END_ENTITY;

ENTITY Zone_breakdown_version
  SUBTYPE OF (Breakdown_version);
  SELF\Breakdown_version.of_product : Zone_breakdown;
END_ENTITY;

ENTITY Zone_element
  SUBTYPE OF (Breakdown_element);
END_ENTITY;

ENTITY Zone_element_definition
  SUBTYPE OF (Breakdown_element_definition);
  SELF\Breakdown_element_definition.defined_version : Zone_element_version;
END_ENTITY;

ENTITY Zone_element_usage
  SUBTYPE OF (Breakdown_element_usage);
  SELF\View_definition_relationship.relating_view : Zone_element_definition;
  SELF\View_definition_relationship.related_view : Zone_element_definition;
END_ENTITY;

ENTITY Zone_element_version
  SUBTYPE OF (Breakdown_element_version);
  SELF\Breakdown_element_version.of_product : Zone_element;
END_ENTITY;

RULE document_definition_constraint FOR
(Product_view_definition);
WHERE
  WR1: SIZEOF(QUERY(dd <* Product_view_definition | (NOT ('AP233_SYSTEMS_ENGINEERING_ARM_LF.' + 'DOCUMENT_DEFINITION' IN TYPEOF(dd))) AND ('AP233_SYSTEMS_ENGINEERING_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 ('AP233_SYSTEMS_ENGINEERING_ARM_LF.' + 'DOCUMENT_VERSION' IN TYPEOF(pv))) AND ('AP233_SYSTEMS_ENGINEERING_ARM_LF.' + 'DOCUMENT' IN TYPEOF(pv.of_product)))) = 0;
END_RULE;

RULE part_view_definition_constraint FOR
(Product_view_definition);
WHERE
  WR1: SIZEOF(QUERY(pvd <* Product_view_definition | (NOT ('AP233_SYSTEMS_ENGINEERING_ARM_LF.' + 'PART_VIEW_DEFINITION' IN TYPEOF(pvd))) AND ('AP233_SYSTEMS_ENGINEERING_ARM_LF.' + 'PART_VERSION' IN TYPEOF(pvd.defined_version)))) = 0;
END_RULE;

RULE total_over_assembly_component_relationship_constraint FOR
(Assembly_component_relationship);
WHERE
  wr1: SIZEOF(QUERY(p <* Assembly_component_relationship | SIZEOF(['Ap233_systems_engineering_arm.COMPONENT_UPPER_LEVEL_IDENTIFICATION'] * TYPEOF(p)) = 0)) = 0;
  wr2: SIZEOF(QUERY(p <* Assembly_component_relationship | SIZEOF(['Ap233_systems_engineering_arm.NEXT_ASSEMBLY_USAGE'] * TYPEOF(p)) = 0)) = 0;
  wr3: SIZEOF(QUERY(p <* Assembly_component_relationship | SIZEOF(['Ap233_systems_engineering_arm.PROMISSORY_USAGE'] * TYPEOF(p)) = 0)) = 0;
END_RULE;

FUNCTION Acyclic
 (arg1 : Generic_expression; arg2 : SET OF Generic_expression) : BOOLEAN;
      LOCAL
        result : BOOLEAN;
      END_LOCAL;

      IF ('AP233_SYSTEMS_ENGINEERING_ARM_LF.SIMPLE_GENERIC_EXPRESSION' IN TYPEOF(arg1)) THEN
        RETURN (TRUE);
      END_IF;
      IF arg1 IN arg2 THEN
        RETURN (FALSE);
      END_IF;
      IF 'AP233_SYSTEMS_ENGINEERING_ARM_LF.UNARY_GENERIC_EXPRESSION' IN TYPEOF(arg1) THEN
        RETURN (Acyclic(arg1\Unary_generic_expression.operand, arg2 + [arg1]));
      END_IF;
      IF 'AP233_SYSTEMS_ENGINEERING_ARM_LF.BINARY_GENERIC_EXPRESSION' IN TYPEOF(arg1) THEN
        RETURN (Acyclic(arg1\Binary_generic_expression.operands[1], arg2 + [arg1]) AND Acyclic(arg1\Binary_generic_expression.operands[2], arg2 + [arg1]));
      END_IF;
      IF 'AP233_SYSTEMS_ENGINEERING_ARM_LF.MULTIPLE_ARITY_GENERIC_EXPRESSION' IN TYPEOF(arg1) THEN
        result := TRUE;
        REPEAT i := 1 TO SIZEOF(arg1\Multiple_arity_generic_expression.operands);
          result := result AND Acyclic(arg1\Multiple_arity_generic_expression.operands[i], arg2 + [arg1]);
        END_REPEAT;
        RETURN (result);
      END_IF;
      
END_FUNCTION;

FUNCTION acyclic_representation_relationship
 (relation : Representation_relationship; relatives : SET[1:?] OF Representation; specific_relation : STRING) : BOOLEAN;
      LOCAL
        x : SET OF Representation_relationship;
      END_LOCAL;

      IF relation.rep_1 IN relatives THEN
        RETURN (FALSE);
      END_IF;
      x := QUERY(r <* bag_to_set(USEDIN(relation.rep_1, 'AP233_SYSTEMS_ENGINEERING_ARM_LF.' + 'REPRESENTATION_RELATIONSHIP.' + 'REP_2')) | specific_relation IN TYPEOF(r));
      REPEAT i := 1 TO HIINDEX(x);
        IF NOT acyclic_representation_relationship(x[i], relatives + relation.rep_1, specific_relation) THEN
          RETURN (FALSE);
        END_IF;
      END_REPEAT;
      RETURN (TRUE);
      
END_FUNCTION;

FUNCTION bag_to_set
 (the_bag : BAG[0:?] OF GENERIC : intype) : SET[0:?] OF GENERIC : intype;
      LOCAL
        the_set : SET OF GENERIC:intype := [];
        i : INTEGER;
      END_LOCAL;

      IF SIZEOF(the_bag) > 0 THEN
        REPEAT i := 1 TO HIINDEX(the_bag);
          the_set := the_set + the_bag[i];
        END_REPEAT;
      END_IF;
      RETURN (the_set);
      
END_FUNCTION;

FUNCTION CLASSOF
 (the_instance : GENERIC : ininst) : SET OF STRING;
      LOCAL
        result : SET OF STRING;
        classifications : BAG OF Classification_assignment;
      END_LOCAL;

      result := TYPEOF(the_instance);
      classifications := USEDIN(the_instance, 'AP233_SYSTEMS_ENGINEERING_ARM_LF.CLASSIFICATION_ASSIGNMENT.ITEMS');
      REPEAT i := LOINDEX(classifications) TO HIINDEX(classifications);
        result := result + classifications[i].assigned_class.id;
      END_REPEAT;
      RETURN (result);
      
END_FUNCTION;

FUNCTION Is_Acyclic
 (arg : Generic_expression) : BOOLEAN;
      RETURN (Acyclic(arg, []));
      
END_FUNCTION;

FUNCTION Is_int_expr
 (arg : Numeric_expression) : BOOLEAN;
      LOCAL
        i : INTEGER;
      END_LOCAL;

      IF 'AP233_SYSTEMS_ENGINEERING_ARM_LF.INT_LITERAL' IN TYPEOF(arg) THEN
        RETURN (TRUE);
      END_IF;
      IF 'AP233_SYSTEMS_ENGINEERING_ARM_LF.REAL_LITERAL' IN TYPEOF(arg) THEN
        RETURN (FALSE);
      END_IF;
      IF 'AP233_SYSTEMS_ENGINEERING_ARM_LF.INT_NUMERIC_VARIABLE' IN TYPEOF(arg) THEN
        RETURN (TRUE);
      END_IF;
      IF 'AP233_SYSTEMS_ENGINEERING_ARM_LF.REAL_NUMERIC_VARIABLE' IN TYPEOF(arg) THEN
        RETURN (FALSE);
      END_IF;
      IF 'AP233_SYSTEMS_ENGINEERING_ARM_LF.ABS_FUNCTION' IN TYPEOF(arg) THEN
        RETURN (Is_int_expr(arg\Unary_numeric_expression.operand));
      END_IF;
      IF 'NUMERIC_FUNCTION.MINUS_FUNCTION' IN TYPEOF(arg) THEN
        RETURN (Is_int_expr(arg\Unary_numeric_expression.operand));
      END_IF;
      IF ('AP233_SYSTEMS_ENGINEERING_ARM_LF.SIN_FUNCTION' IN TYPEOF(arg)) OR ('AP233_SYSTEMS_ENGINEERING_ARM_LF.COS_FUNCTION' IN TYPEOF(arg)) OR ('AP233_SYSTEMS_ENGINEERING_ARM_LF.TAN_FUNCTION' IN TYPEOF(arg)) OR ('AP233_SYSTEMS_ENGINEERING_ARM_LF.ASIN_FUNCTION' IN TYPEOF(arg)) OR ('AP233_SYSTEMS_ENGINEERING_ARM_LF.ACOS_FUNCTION' IN TYPEOF(arg)) OR ('AP233_SYSTEMS_ENGINEERING_ARM_LF.Atan_function' IN TYPEOF(arg)) OR ('AP233_SYSTEMS_ENGINEERING_ARM_LF.EXP_FUNCTION' IN TYPEOF(arg)) OR ('AP233_SYSTEMS_ENGINEERING_ARM_LF.LOG_FUNCTION' IN TYPEOF(arg)) OR ('AP233_SYSTEMS_ENGINEERING_ARM_LF.LOG2_FUNCTION' IN TYPEOF(arg)) OR ('AP233_SYSTEMS_ENGINEERING_ARM_LF.LOG10_FUNCTION' IN TYPEOF(arg)) OR ('AP233_SYSTEMS_ENGINEERING_ARM_LF.SQUARE_ROOT_FUNCTION' IN TYPEOF(arg)) THEN
        RETURN (FALSE);
      END_IF;
      IF ('AP233_SYSTEMS_ENGINEERING_ARM_LF.PLUS_EXPRESSION' IN TYPEOF(arg)) OR ('AP233_SYSTEMS_ENGINEERING_ARM_LF.MULT_EXPRESSION' IN TYPEOF(arg)) OR ('AP233_SYSTEMS_ENGINEERING_ARM_LF.MAXIMUM_FUNCTION' IN TYPEOF(arg)) OR ('AP233_SYSTEMS_ENGINEERING_ARM_LF.MINIMUM_FUNCTION' IN TYPEOF(arg)) THEN
        REPEAT i := 1 TO SIZEOF(arg\Multiple_arity_numeric_expression.operands);
          IF NOT Is_int_expr(arg\Multiple_arity_numeric_expression.operands[i]) THEN
            RETURN (FALSE);
          END_IF;
        END_REPEAT;
        RETURN (TRUE);
      END_IF;
      IF ('AP233_SYSTEMS_ENGINEERING_ARM_LF.MINUS_EXPRESSION' IN TYPEOF(arg)) OR ('AP233_SYSTEMS_ENGINEERING_ARM_LF.POWER_EXPRESSION' IN TYPEOF(arg)) THEN
        RETURN (Is_int_expr(arg\Binary_numeric_expression.operands[1]) AND Is_int_expr(arg\Binary_numeric_expression.operands[2]));
      END_IF;
      IF ('AP233_SYSTEMS_ENGINEERING_ARM_LF.DIV_EXPRESSION' IN TYPEOF(arg)) OR ('AP233_SYSTEMS_ENGINEERING_ARM_LF.MOD_EXPRESSION' IN TYPEOF(arg)) THEN
        RETURN (TRUE);
      END_IF;
      IF 'AP233_SYSTEMS_ENGINEERING_ARM_LF.SLASH_EXPRESSION' IN TYPEOF(arg) THEN
        RETURN (FALSE);
      END_IF;
      IF 'AP233_SYSTEMS_ENGINEERING_ARM_LF.LENGTH_FUNCTION' IN TYPEOF(arg) THEN
        RETURN (TRUE);
      END_IF;
      IF 'AP233_SYSTEMS_ENGINEERING_ARM_LF.VALUE_FUNCTION' IN TYPEOF(arg) THEN
        IF 'AP233_SYSTEMS_ENGINEERING_ARM_LF.INT_VALUE_FUNCTION' IN TYPEOF(arg) THEN
          RETURN (TRUE);
        ELSE
          RETURN (FALSE);
        END_IF;
      END_IF;
      IF 'AP233_SYSTEMS_ENGINEERING_ARM_LF.INTEGER_DEFINED_FUNCTION' IN TYPEOF(arg) THEN
        RETURN (TRUE);
      END_IF;
      IF 'AP233_SYSTEMS_ENGINEERING_ARM_LF.REAL_DEFINED_FUNCTION' IN TYPEOF(arg) THEN
        RETURN (FALSE);
      END_IF;
      IF 'AP233_SYSTEMS_ENGINEERING_ARM_LF.BOOLEAN_DEFINED_FUNCTION' IN TYPEOF(arg) THEN
        RETURN (FALSE);
      END_IF;
      IF 'AP233_SYSTEMS_ENGINEERING_ARM_LF.STRING_DEFINED_FUNCTION' IN TYPEOF(arg) THEN
        RETURN (FALSE);
      END_IF;
      RETURN (FALSE);
      
END_FUNCTION;

FUNCTION Is_sql_mappable
 (arg : Expression) : BOOLEAN;
      LOCAL
        i : INTEGER;
      END_LOCAL;

      IF 'AP233_SYSTEMS_ENGINEERING_ARM_LF.SIMPLE_NUMERIC_EXPRESSION' IN TYPEOF(arg) THEN
        RETURN (TRUE);
      END_IF;
      IF 'AP233_SYSTEMS_ENGINEERING_ARM_LF.SQL_MAPPABLE_DEFINED_FUNCTION' IN TYPEOF(arg) THEN
        RETURN (TRUE);
      END_IF;
      IF 'AP233_SYSTEMS_ENGINEERING_ARM_LF.MINUS_FUNCTION' IN TYPEOF(arg) THEN
        RETURN (Is_sql_mappable(arg\Unary_numeric_expression.operand));
      END_IF;
      IF ('AP233_SYSTEMS_ENGINEERING_ARM_LF.ABS_FUNCTION' IN TYPEOF(arg)) OR ('AP233_SYSTEMS_ENGINEERING_ARM_LF.SIN_FUNCTION' IN TYPEOF(arg)) OR ('AP233_SYSTEMS_ENGINEERING_ARM_LF.COS_FUNCTION' IN TYPEOF(arg)) OR ('AP233_SYSTEMS_ENGINEERING_ARM_LF.TAN_FUNCTION' IN TYPEOF(arg)) OR ('AP233_SYSTEMS_ENGINEERING_ARM_LF.ASIN_FUNCTION' IN TYPEOF(arg)) OR ('AP233_SYSTEMS_ENGINEERING_ARM_LF.ACOS_FUNCTION' IN TYPEOF(arg)) OR ('AP233_SYSTEMS_ENGINEERING_ARM_LF.ATAN_FUNCTION' IN TYPEOF(arg)) OR ('AP233_SYSTEMS_ENGINEERING_ARM_LF.EXP_FUNCTION' IN TYPEOF(arg)) OR ('AP233_SYSTEMS_ENGINEERING_ARM_LF.LOG_FUNCTION' IN TYPEOF(arg)) OR ('AP233_SYSTEMS_ENGINEERING_ARM_LF.LOG2_FUNCTION' IN TYPEOF(arg)) OR ('AP233_SYSTEMS_ENGINEERING_ARM_LF.LOG10_FUNCTION' IN TYPEOF(arg)) OR ('AP233_SYSTEMS_ENGINEERING_ARM_LF.SQUARE_ROOT_FUNCTION' IN TYPEOF(arg)) OR ('AP233_SYSTEMS_ENGINEERING_ARM_LF.VALUE_FUNCTION' IN TYPEOF(arg)) OR ('AP233_SYSTEMS_ENGINEERING_ARM_LF.LENGTH_FUNCTION' IN TYPEOF(arg)) THEN
        RETURN (FALSE);
      END_IF;
      IF ('AP233_SYSTEMS_ENGINEERING_ARM_LF.PLUS_EXPRESSION' IN TYPEOF(arg)) OR ('AP233_SYSTEMS_ENGINEERING_ARM_LF.MULT_EXPRESSION' IN TYPEOF(arg)) OR ('AP233_SYSTEMS_ENGINEERING_ARM_LF.MAXIMUM_FUNCTION' IN TYPEOF(arg)) OR ('AP233_SYSTEMS_ENGINEERING_ARM_LF.MAXIMUM_FUNCTION' IN TYPEOF(arg)) THEN
        REPEAT i := 1 TO SIZEOF(arg\Multiple_arity_numeric_expression.operands);
          IF NOT Is_sql_mappable(arg\Multiple_arity_numeric_expression.operands[i]) THEN
            RETURN (FALSE);
          END_IF;
        END_REPEAT;
        RETURN (TRUE);
      END_IF;
      IF ('AP233_SYSTEMS_ENGINEERING_ARM_LF.MINUS_EXPRESSION' IN TYPEOF(arg)) OR ('AP233_SYSTEMS_ENGINEERING_ARM_LF.SLASH_EXPRESSION' IN TYPEOF(arg)) THEN
        RETURN (Is_sql_mappable(arg\Binary_numeric_expression.operands[1]) AND Is_sql_mappable(arg\Binary_numeric_expression.operands[2]));
      END_IF;
      IF ('AP233_SYSTEMS_ENGINEERING_ARM_LF.DIV_EXPRESSION' IN TYPEOF(arg)) OR ('AP233_SYSTEMS_ENGINEERING_ARM_LF.MOD_EXPRESSION' IN TYPEOF(arg)) OR ('AP233_SYSTEMS_ENGINEERING_ARM_LF.POWER_EXPRESSION' IN TYPEOF(arg)) THEN
        RETURN (FALSE);
      END_IF;
      IF 'AP233_SYSTEMS_ENGINEERING_ARM_LF.SIMPLE_BOOLEAN_EXPRESSION' IN TYPEOF(arg) THEN
        RETURN (TRUE);
      END_IF;
      IF 'AP233_SYSTEMS_ENGINEERING_ARM_LF.NOT_EXPRESSION' IN TYPEOF(arg) THEN
        RETURN (Is_sql_mappable(arg\Unary_generic_expression.operand));
      END_IF;
      IF ('AP233_SYSTEMS_ENGINEERING_ARM_LF.ODD_FUNCTION' IN TYPEOF(arg)) OR ('AP233_SYSTEMS_ENGINEERING_ARM_LF.XOR_EXPRESSION' IN TYPEOF(arg)) THEN
        RETURN (FALSE);
      END_IF;
      IF ('AP233_SYSTEMS_ENGINEERING_ARM_LF.AND_EXPRESSION' IN TYPEOF(arg)) OR ('AP233_SYSTEMS_ENGINEERING_ARM_LF.OR_EXPRESSION' IN TYPEOF(arg)) THEN
        REPEAT i := 1 TO SIZEOF(arg\Multiple_arity_boolean_expression.operands);
          IF NOT Is_sql_mappable(arg\Multiple_arity_boolean_expression.operands[i]) THEN
            RETURN (FALSE);
          END_IF;
        END_REPEAT;
        RETURN (TRUE);
      END_IF;
      IF 'AP233_SYSTEMS_ENGINEERING_ARM_LF.EQUALS_EXPRESSION' IN TYPEOF(arg) THEN
        RETURN (Is_sql_mappable(arg\Binary_generic_expression.operands[1]) AND Is_sql_mappable(arg\Binary_generic_expression.operands[2]));
      END_IF;
      IF ('AP233_SYSTEMS_ENGINEERING_ARM_LF.COMPARISON_EQUAL' IN TYPEOF(arg)) OR ('AP233_SYSTEMS_ENGINEERING_ARM_LF.COMPARISON_GREATER' IN TYPEOF(arg)) OR ('AP233_SYSTEMS_ENGINEERING_ARM_LF.COMPARISON_GREATER_EQUAL' IN TYPEOF(arg)) OR ('AP233_SYSTEMS_ENGINEERING_ARM_LF.COMPARISON_LESS' IN TYPEOF(arg)) OR ('AP233_SYSTEMS_ENGINEERING_ARM_LF.COMPARISON_LESS_EQUAL' IN TYPEOF(arg)) OR ('AP233_SYSTEMS_ENGINEERING_ARM_LF.COMPARISON_NOT_EQUAL' IN TYPEOF(arg)) OR ('AP233_SYSTEMS_ENGINEERING_ARM_LF.LIKE_EXPRESSION' IN TYPEOF(arg)) THEN
        RETURN (Is_sql_mappable(arg\Comparison_expression.operands[1]) AND Is_sql_mappable(arg\Comparison_expression.operands[2]));
      END_IF;
      IF 'AP233_SYSTEMS_ENGINEERING_ARM_LF.INTERVAL_EXPRESSION' IN TYPEOF(arg) THEN
        RETURN (Is_sql_mappable(arg\Interval_expression.interval_low) AND Is_sql_mappable(arg\Interval_expression.interval_high) AND Is_sql_mappable(arg\Interval_expression.interval_item));
      END_IF;
      IF ('AP233_SYSTEMS_ENGINEERING_ARM_LF.NUMERIC_DEFINED_FUNCTION' IN TYPEOF(arg)) OR ('AP233_SYSTEMS_ENGINEERING_ARM_LF.BOOLEAN_DEFINED_FUNCTION' IN TYPEOF(arg)) OR ('AP233_SYSTEMS_ENGINEERING_ARM_LF.STRING_DEFINED_FUNCTION' IN TYPEOF(arg)) THEN
        RETURN (FALSE);
      END_IF;
      IF 'AP233_SYSTEMS_ENGINEERING_ARM_LF.SIMPLE_STRING_EXPRESSION' IN TYPEOF(arg) THEN
        RETURN (TRUE);
      END_IF;
      IF ('AP233_SYSTEMS_ENGINEERING_ARM_LF.INDEX_EXPRESSION' IN TYPEOF(arg)) OR ('AP233_SYSTEMS_ENGINEERING_ARM_LF.SUBSTRING_EXPRESSION' IN TYPEOF(arg)) OR ('AP233_SYSTEMS_ENGINEERING_ARM_LF.CONCAT_EXPRESSION' IN TYPEOF(arg)) OR ('AP233_SYSTEMS_ENGINEERING_ARM_LF.FORMAT_FUNCTION' IN TYPEOF(arg)) THEN
        RETURN (FALSE);
      END_IF;
      RETURN (FALSE);
      
END_FUNCTION;

FUNCTION spa_get_definition
 (input : Contextual_item_shape) : Product_view_definition;
      IF ('AP233_SYSTEMS_ENGINEERING_ARM_LF.VIEW_DEFINITION_USAGE' IN TYPEOF(input\Item_shape.described_element)) THEN
        RETURN (input\Item_shape.described_element\View_definition_relationship.related_view);
      END_IF;
      IF ('AP233_SYSTEMS_ENGINEERING_ARM_LF.PRODUCT_OCCURRENCE_DEFINITION_RELATIONSHIP' IN TYPEOF(input\Item_shape.described_element)) THEN
        RETURN (input\Item_shape.described_element\Product_occurrence_definition_relationship.related_view);
      END_IF;
      RETURN (?);
      
END_FUNCTION;

END_SCHEMA;  -- Ap233_systems_engineering_arm_LF


© ISO 2011 — All rights reserved