(* ISO TC184/SC4/WG3 N1299
   Supporting document for:
     ISO/FDIS 15926-2:2003

     Industrial automation systems and integration --
     Integration of life-cycle data for process plants including oil and
     gas production facilities --
     Part 2: Data model

     Date: 2003-04-17
*)   

(* This file was generated by exppp (an EXPRESS Pretty Printer)
written at the National Institute of Standards and Technology
by Don Libes, February 19, 1993.

WARNING: If you modify this file and want to save the changes,
delete this comment block or else the file will be rewritten
the next time exppp processes this schema. *)

SCHEMA lifecycle_integration_schema;

  ENTITY abstract_object
    ABSTRACT SUPERTYPE
    SUBTYPE OF (thing);
  END_ENTITY; -- abstract_object

  ENTITY activity
    SUBTYPE OF (possible_individual);
  END_ENTITY; -- activity

  ENTITY actual_individual
    SUBTYPE OF (possible_individual);
  END_ENTITY; -- actual_individual

  ENTITY approval
    SUBTYPE OF (relationship);
      approved : relationship;
      approver : possible_individual;
  END_ENTITY; -- approval

  ENTITY arithmetic_number
    SUPERTYPE OF (ONEOF (real_number,integer_number,
        multidimensional_number))
    SUBTYPE OF (class_of_class);
  END_ENTITY; -- arithmetic_number

  ENTITY arranged_individual
    SUBTYPE OF (possible_individual);
  END_ENTITY; -- arranged_individual

  ENTITY arrangement_of_individual
    SUPERTYPE OF (ONEOF (assembly_of_individual,feature_whole_part))
    SUBTYPE OF (composition_of_individual);
      SELF\composition_of_individual.whole : arranged_individual;
  END_ENTITY; -- arrangement_of_individual

  ENTITY assembly_of_individual
    SUBTYPE OF (arrangement_of_individual);
  END_ENTITY; -- assembly_of_individual

  ENTITY beginning
    SUBTYPE OF (temporal_bounding);
  END_ENTITY; -- beginning

  ENTITY boundary_of_number_space
    SUBTYPE OF (specialization);
      SELF\specialization.subclass   : number_space;
      SELF\specialization.superclass : number_space;
  END_ENTITY; -- boundary_of_number_space

  ENTITY boundary_of_property_space
    SUBTYPE OF (specialization);
      SELF\specialization.subclass   : property_space;
      SELF\specialization.superclass : property_space;
  END_ENTITY; -- boundary_of_property_space

  ENTITY cardinality
    SUBTYPE OF (class);
      maximum_cardinality : OPTIONAL INTEGER;
      minimum_cardinality : OPTIONAL INTEGER;
  END_ENTITY; -- cardinality

  ENTITY cause_of_event
    SUBTYPE OF (relationship);
      caused : event;
      causer : activity;
  END_ENTITY; -- cause_of_event

  ENTITY class
    SUPERTYPE OF (role_and_domain ANDOR cardinality ANDOR ONEOF (
        class_of_individual,class_of_abstract_object))
    SUBTYPE OF (abstract_object);
  END_ENTITY; -- class

  ENTITY class_of_abstract_object
    ABSTRACT SUPERTYPE
    SUBTYPE OF (class);
  END_ENTITY; -- class_of_abstract_object

  ENTITY class_of_activity
    SUBTYPE OF (class_of_arranged_individual);
  END_ENTITY; -- class_of_activity

  ENTITY class_of_approval
    SUBTYPE OF (class_of_relationship);
      class_of_approved : class_of_relationship;
      class_of_approver : class_of_individual;
  END_ENTITY; -- class_of_approval

  ENTITY class_of_approval_by_status
    SUBTYPE OF (class_of_relationship);
  END_ENTITY; -- class_of_approval_by_status

  ENTITY class_of_arranged_individual
    SUPERTYPE OF (ONEOF (class_of_atom,class_of_biological_matter,
        class_of_composite_material,class_of_compound,
        class_of_functional_object,class_of_information_presentation,
        class_of_information_representation,class_of_molecule,
        class_of_particulate_material,class_of_sub_atomic_particle,
        crystalline_structure,phase) ANDOR class_of_organization ANDOR 
        class_of_activity ANDOR class_of_information_object ANDOR 
        class_of_feature ANDOR ONEOF (class_of_organism,
        class_of_inanimate_physical_object))
    SUBTYPE OF (class_of_individual);
  END_ENTITY; -- class_of_arranged_individual

  ENTITY class_of_arrangement_of_individual
    SUPERTYPE OF (ONEOF (class_of_feature_whole_part,
        class_of_assembly_of_individual,namespace))
    SUBTYPE OF (class_of_composition_of_individual);
      SELF\class_of_composition_of_individual.class_of_whole : class_of_arranged_individual;
  END_ENTITY; -- class_of_arrangement_of_individual

  ENTITY class_of_assembly_of_individual
    SUBTYPE OF (class_of_arrangement_of_individual);
  END_ENTITY; -- class_of_assembly_of_individual

  ENTITY class_of_assertion
    SUBTYPE OF (class_of_relationship);
  END_ENTITY; -- class_of_assertion

  ENTITY class_of_atom
    SUBTYPE OF (class_of_arranged_individual);
  END_ENTITY; -- class_of_atom

  ENTITY class_of_biological_matter
    SUBTYPE OF (class_of_arranged_individual);
  END_ENTITY; -- class_of_biological_matter

  ENTITY class_of_cause_of_beginning_of_class_of_individual
    SUBTYPE OF (class_of_relationship);
      class_of_begun  : class_of_individual;
      class_of_causer : class_of_activity;
  END_ENTITY; -- class_of_cause_of_beginning_of_class_of_individual

  ENTITY class_of_cause_of_ending_of_class_of_individual
    SUBTYPE OF (class_of_relationship);
      class_of_causer : class_of_activity;
      class_of_ended  : class_of_individual;
  END_ENTITY; -- class_of_cause_of_ending_of_class_of_individual

  ENTITY class_of_class
    SUPERTYPE OF (ONEOF (arithmetic_number,class_of_class_of_individual,
        class_of_class_of_relationship,class_of_number,
        class_of_property_space,class_of_shape_dimension) ANDOR 
        enumerated_set_of_class)
    SUBTYPE OF (class_of_abstract_object);
  END_ENTITY; -- class_of_class

  ENTITY class_of_class_of_composition
    SUBTYPE OF (class_of_class_of_relationship);
      class_of_class_of_part  : class_of_class_of_individual;
      class_of_class_of_whole : class_of_class_of_individual;
  END_ENTITY; -- class_of_class_of_composition

  ENTITY class_of_class_of_definition
    SUBTYPE OF (class_of_class_of_representation);
  END_ENTITY; -- class_of_class_of_definition

  ENTITY class_of_class_of_description
    SUBTYPE OF (class_of_class_of_representation);
  END_ENTITY; -- class_of_class_of_description

  ENTITY class_of_class_of_identification
    SUBTYPE OF (class_of_class_of_representation);
  END_ENTITY; -- class_of_class_of_identification

  ENTITY class_of_class_of_individual
    SUPERTYPE OF (ONEOF (class_of_class_of_information_representation,
        class_of_property,class_of_status,shape_dimension))
    SUBTYPE OF (class_of_class);
  END_ENTITY; -- class_of_class_of_individual

  ENTITY class_of_class_of_information_representation
    SUPERTYPE OF (ONEOF (representation_form,language,document_definition))
    SUBTYPE OF (class_of_class_of_individual);
  END_ENTITY; -- class_of_class_of_information_representation

  ENTITY class_of_class_of_relationship
    SUPERTYPE OF (ONEOF (class_of_class_of_composition,
        class_of_class_of_relationship_with_signature,
        class_of_class_of_representation,
        class_of_class_of_representation_translation,
        class_of_class_of_responsibility_for_representation,
        class_of_class_of_usage_of_representation,
        class_of_dimension_for_shape,class_of_namespace,class_of_scale,
        dimension_of_shape,property_space_for_class_of_shape_dimension))
    SUBTYPE OF (class_of_class);
  END_ENTITY; -- class_of_class_of_relationship

  ENTITY class_of_class_of_relationship_with_signature
    SUBTYPE OF (class_of_class_of_relationship, 
        class_of_relationship_with_signature);
  END_ENTITY; -- class_of_class_of_relationship_with_signature

  ENTITY class_of_class_of_representation
    SUBTYPE OF (class_of_class_of_relationship);
      class_of_pattern     : class_of_class_of_information_representation;
      class_of_represented : class;
  END_ENTITY; -- class_of_class_of_representation

  ENTITY class_of_class_of_representation_translation
    SUBTYPE OF (class_of_class_of_relationship);
      class_of_first  : class_of_class_of_information_representation;
      class_of_second : class_of_class_of_information_representation;
  END_ENTITY; -- class_of_class_of_representation_translation

  ENTITY class_of_class_of_responsibility_for_representation
    SUBTYPE OF (class_of_class_of_relationship);
      class_of_class_of_controlled : class_of_class_of_representation;
      controller                   : possible_individual;
  END_ENTITY; -- class_of_class_of_responsibility_for_representation

  ENTITY class_of_class_of_usage_of_representation
    SUBTYPE OF (class_of_class_of_relationship);
      class_of_class_of_used : class_of_class_of_representation;
      user                   : possible_individual;
  END_ENTITY; -- class_of_class_of_usage_of_representation

  ENTITY class_of_classification
    SUBTYPE OF (class_of_relationship);
      class_of_classified : class;
      class_of_classifier : class_of_class;
  END_ENTITY; -- class_of_classification

  ENTITY class_of_composite_material
    SUBTYPE OF (class_of_arranged_individual);
  END_ENTITY; -- class_of_composite_material

  ENTITY class_of_composition_of_individual
    SUPERTYPE OF (ONEOF (class_of_arrangement_of_individual,
        class_of_temporal_whole_part,class_of_participation))
    SUBTYPE OF (class_of_relationship);
      class_of_part  : class_of_individual;
      class_of_whole : class_of_individual;
  END_ENTITY; -- class_of_composition_of_individual

  ENTITY class_of_compound
    SUBTYPE OF (class_of_arranged_individual);
  END_ENTITY; -- class_of_compound

  ENTITY class_of_connection_of_individual
    ABSTRACT SUPERTYPE OF (ONEOF (class_of_direct_connection,
        class_of_indirect_connection))
    SUBTYPE OF (class_of_relationship);
      class_of_side_1 : class_of_individual;
      class_of_side_2 : class_of_individual;
  END_ENTITY; -- class_of_connection_of_individual

  ENTITY class_of_containment_of_individual
    SUBTYPE OF (class_of_relative_location);
  END_ENTITY; -- class_of_containment_of_individual

  ENTITY class_of_definition
    SUBTYPE OF (class_of_representation_of_thing);
      SELF\class_of_representation_of_thing.represented : class;
  END_ENTITY; -- class_of_definition

  ENTITY class_of_description
    SUBTYPE OF (class_of_representation_of_thing);
  END_ENTITY; -- class_of_description

  ENTITY class_of_dimension_for_shape
    SUBTYPE OF (class_of_class_of_relationship);
      class_of_dimension : class_of_shape_dimension;
      class_of_shape     : class_of_shape;
  END_ENTITY; -- class_of_dimension_for_shape

  ENTITY class_of_direct_connection
    SUBTYPE OF (class_of_connection_of_individual);
  END_ENTITY; -- class_of_direct_connection

  ENTITY class_of_event
    SUBTYPE OF (class_of_individual);
  END_ENTITY; -- class_of_event

  ENTITY class_of_express_information_representation
    ABSTRACT SUPERTYPE OF (ONEOF (express_string,express_integer,
        express_real,express_logical,express_boolean,express_binary))
    SUBTYPE OF (class_of_information_representation);
  END_ENTITY; -- class_of_express_information_representation

  ENTITY class_of_feature
    SUBTYPE OF (class_of_arranged_individual);
  END_ENTITY; -- class_of_feature

  ENTITY class_of_feature_whole_part
    SUBTYPE OF (class_of_arrangement_of_individual);
  END_ENTITY; -- class_of_feature_whole_part

  ENTITY class_of_functional_mapping
    SUBTYPE OF (class_of_relationship);
      codomain : class;
      domain   : class;
  END_ENTITY; -- class_of_functional_mapping

  ENTITY class_of_functional_object
    SUBTYPE OF (class_of_arranged_individual);
  END_ENTITY; -- class_of_functional_object

  ENTITY class_of_identification
    SUBTYPE OF (class_of_representation_of_thing);
  END_ENTITY; -- class_of_identification

  ENTITY class_of_inanimate_physical_object
    SUBTYPE OF (class_of_arranged_individual);
  END_ENTITY; -- class_of_inanimate_physical_object

  ENTITY class_of_indirect_connection
    SUBTYPE OF (class_of_connection_of_individual);
  END_ENTITY; -- class_of_indirect_connection

  ENTITY class_of_indirect_property
    SUBTYPE OF (class_of_relationship);
      class_of_possessor : class_of_individual;
      property_space     : property_space;
  END_ENTITY; -- class_of_indirect_property

  ENTITY class_of_individual
    SUPERTYPE OF (ONEOF (class_of_event,class_of_arranged_individual,
        class_of_period_in_time,individual_dimension,property,status) ANDOR
         participating_role_and_domain)
    SUBTYPE OF (class);
  END_ENTITY; -- class_of_individual

  ENTITY class_of_individual_used_in_connection
    SUBTYPE OF (class_of_relationship);
      class_of_connection : class_of_connection_of_individual;
      class_of_usage      : class_of_individual;
  END_ENTITY; -- class_of_individual_used_in_connection

  ENTITY class_of_information_object
    SUBTYPE OF (class_of_arranged_individual);
  END_ENTITY; -- class_of_information_object

  ENTITY class_of_information_presentation
    SUBTYPE OF (class_of_arranged_individual);
  END_ENTITY; -- class_of_information_presentation

  ENTITY class_of_information_representation
    SUPERTYPE OF (ONEOF (class_of_express_information_representation,
        representation_of_gregorian_date_and_utc_time))
    SUBTYPE OF (class_of_arranged_individual);
  END_ENTITY; -- class_of_information_representation

  ENTITY class_of_intended_role_and_domain
    SUBTYPE OF (class_of_relationship);
      class_of_player : class_of_individual;
      played          : role_and_domain;
  END_ENTITY; -- class_of_intended_role_and_domain

  ENTITY class_of_involvement_by_reference
    SUBTYPE OF (class_of_relationship);
      class_of_involved : role_and_domain;
      class_of_involver : class_of_activity;
  END_ENTITY; -- class_of_involvement_by_reference

  ENTITY class_of_isomorphic_functional_mapping
    SUPERTYPE OF (ONEOF (scale,class_of_scale_conversion))
    SUBTYPE OF (class_of_functional_mapping);
  END_ENTITY; -- class_of_isomorphic_functional_mapping

  ENTITY class_of_left_namespace
    SUBTYPE OF (class_of_namespace);
  END_ENTITY; -- class_of_left_namespace

  ENTITY class_of_lifecycle_stage
    SUBTYPE OF (class_of_relationship);
  END_ENTITY; -- class_of_lifecycle_stage

  ENTITY class_of_molecule
    SUBTYPE OF (class_of_arranged_individual);
  END_ENTITY; -- class_of_molecule

  ENTITY class_of_multidimensional_object
    SUBTYPE OF (class_of_abstract_object);
      cardinalities      : OPTIONAL LIST [1:?] OF cardinality;
      optional_element   : LIST [1:?] OF BOOLEAN;
      parameters         : OPTIONAL LIST [1:?] OF thing;
      parameter_position : OPTIONAL LIST [1:?] OF INTEGER;
      roles              : LIST [1:?] OF role_and_domain;
  END_ENTITY; -- class_of_multidimensional_object

  ENTITY class_of_namespace
    SUPERTYPE OF (ONEOF (class_of_left_namespace,class_of_right_namespace))
    SUBTYPE OF (class_of_class_of_relationship);
      class_of_class_of_whole : class_of_class_of_information_representation;
      class_of_part           : class_of_information_representation;
  END_ENTITY; -- class_of_namespace

  ENTITY class_of_number
    SUPERTYPE OF (ONEOF (number_space,enumerated_number_set))
    SUBTYPE OF (class_of_class);
  END_ENTITY; -- class_of_number

  ENTITY class_of_organism
    SUBTYPE OF (class_of_arranged_individual);
  END_ENTITY; -- class_of_organism

  ENTITY class_of_organization
    SUBTYPE OF (class_of_arranged_individual);
  END_ENTITY; -- class_of_organization

  ENTITY class_of_participation
    SUBTYPE OF (class_of_composition_of_individual);
      SELF\class_of_composition_of_individual.class_of_part  : participating_role_and_domain;
      SELF\class_of_composition_of_individual.class_of_whole : class_of_activity;
  END_ENTITY; -- class_of_participation

  ENTITY class_of_particulate_material
    SUBTYPE OF (class_of_arranged_individual);
  END_ENTITY; -- class_of_particulate_material

  ENTITY class_of_period_in_time
    SUBTYPE OF (class_of_individual);
  END_ENTITY; -- class_of_period_in_time

  ENTITY class_of_person
    SUBTYPE OF (class_of_organism);
  END_ENTITY; -- class_of_person

  ENTITY class_of_point_in_time
    SUBTYPE OF (class_of_event);
  END_ENTITY; -- class_of_point_in_time

  ENTITY class_of_possible_role_and_domain
    SUBTYPE OF (class_of_relationship);
      class_of_player : class_of_individual;
      played          : role_and_domain;
  END_ENTITY; -- class_of_possible_role_and_domain

  ENTITY class_of_property
    SUPERTYPE OF (ONEOF (property_space,enumerated_property_set))
    SUBTYPE OF (class_of_class_of_individual);
  END_ENTITY; -- class_of_property

  ENTITY class_of_property_space
    SUBTYPE OF (class_of_class);
  END_ENTITY; -- class_of_property_space

  ENTITY class_of_recognition
    SUBTYPE OF (class_of_relationship);
      class_of_recognized  : class;
      class_of_recognizing : class_of_activity;
  END_ENTITY; -- class_of_recognition

  ENTITY class_of_relationship
    SUPERTYPE OF (ONEOF (class_of_approval,class_of_approval_by_status,
        class_of_cause_of_beginning_of_class_of_individual,
        class_of_cause_of_ending_of_class_of_individual,
        class_of_classification,class_of_composition_of_individual,
        class_of_connection_of_individual,class_of_functional_mapping,
        class_of_indirect_property,class_of_individual_used_in_connection,
        class_of_intended_role_and_domain,class_of_involvement_by_reference,
        class_of_lifecycle_stage,class_of_assertion,
        class_of_possible_role_and_domain,class_of_recognition,
        class_of_relationship_with_signature,class_of_relative_location,
        class_of_representation_of_thing,
        class_of_representation_translation,
        class_of_responsibility_for_representation,class_of_specialization,
        class_of_temporal_sequence,class_of_usage_of_representation,
        dimension_of_individual,property_for_shape_dimension) ANDOR ONEOF (
        class_of_relationship_with_related_end_1,
        class_of_relationship_with_related_end_2))
    SUBTYPE OF (class_of_abstract_object);
      end_1_cardinality : OPTIONAL cardinality;
      end_2_cardinality : OPTIONAL cardinality;
  END_ENTITY; -- class_of_relationship

  ENTITY class_of_relationship_with_related_end_1
    SUBTYPE OF (class_of_relationship);
      related : thing;
  END_ENTITY; -- class_of_relationship_with_related_end_1

  ENTITY class_of_relationship_with_related_end_2
    SUBTYPE OF (class_of_relationship);
      related : thing;
  END_ENTITY; -- class_of_relationship_with_related_end_2

  ENTITY class_of_relationship_with_signature
    SUBTYPE OF (class_of_relationship, relationship);
      class_of_end_1 : OPTIONAL role_and_domain;
      class_of_end_2 : OPTIONAL role_and_domain;
  END_ENTITY; -- class_of_relationship_with_signature

  ENTITY class_of_relative_location
    SUBTYPE OF (class_of_relationship);
      class_of_located : class_of_individual;
      class_of_locator : class_of_individual;
  END_ENTITY; -- class_of_relative_location

  ENTITY class_of_representation_of_thing
    SUBTYPE OF (class_of_relationship);
      pattern     : class_of_information_representation;
      represented : thing;
  END_ENTITY; -- class_of_representation_of_thing

  ENTITY class_of_representation_translation
    SUBTYPE OF (class_of_relationship);
      class_of_first  : class_of_information_representation;
      class_of_second : class_of_information_representation;
  END_ENTITY; -- class_of_representation_translation

  ENTITY class_of_responsibility_for_representation
    SUBTYPE OF (class_of_relationship);
      class_of_controlled : class_of_representation_of_thing;
      controller          : possible_individual;
  END_ENTITY; -- class_of_responsibility_for_representation

  ENTITY class_of_right_namespace
    SUBTYPE OF (class_of_namespace);
  END_ENTITY; -- class_of_right_namespace

  ENTITY class_of_scale
    SUBTYPE OF (class_of_class_of_relationship);
  END_ENTITY; -- class_of_scale

  ENTITY class_of_scale_conversion
    SUBTYPE OF (class_of_isomorphic_functional_mapping);
      SELF\class_of_functional_mapping.codomain : scale;
      SELF\class_of_functional_mapping.domain   : scale;
  END_ENTITY; -- class_of_scale_conversion

  ENTITY class_of_shape
    SUBTYPE OF (property_space);
  END_ENTITY; -- class_of_shape

  ENTITY class_of_shape_dimension
    SUBTYPE OF (class_of_class);
  END_ENTITY; -- class_of_shape_dimension

  ENTITY class_of_specialization
    SUBTYPE OF (class_of_relationship);
      class_of_subclass   : class_of_class;
      class_of_superclass : class_of_class;
  END_ENTITY; -- class_of_specialization

  ENTITY class_of_status
    SUBTYPE OF (class_of_class_of_individual);
  END_ENTITY; -- class_of_status

  ENTITY class_of_sub_atomic_particle
    SUBTYPE OF (class_of_arranged_individual);
  END_ENTITY; -- class_of_sub_atomic_particle

  ENTITY class_of_temporal_sequence
    SUBTYPE OF (class_of_relationship);
      class_of_predecessor : class_of_individual;
      class_of_successor   : class_of_individual;
  END_ENTITY; -- class_of_temporal_sequence

  ENTITY class_of_temporal_whole_part
    SUBTYPE OF (class_of_composition_of_individual);
  END_ENTITY; -- class_of_temporal_whole_part

  ENTITY class_of_usage_of_representation
    SUBTYPE OF (class_of_relationship);
      class_of_used : class_of_representation_of_thing;
      user          : possible_individual;
  END_ENTITY; -- class_of_usage_of_representation

  ENTITY classification
    SUBTYPE OF (relationship);
      classified : thing;
      classifier : class;
  END_ENTITY; -- classification

  ENTITY comparison_of_property
    SUBTYPE OF (relationship);
      greater_element : property;
      lesser_element  : property;
  END_ENTITY; -- comparison_of_property

  ENTITY composition_of_individual
    SUPERTYPE OF (ONEOF (arrangement_of_individual,temporal_whole_part,
        participation,temporal_bounding))
    SUBTYPE OF (relationship);
      part  : possible_individual;
      whole : possible_individual;
  END_ENTITY; -- composition_of_individual

  ENTITY connection_of_individual
    SUPERTYPE OF (ONEOF (direct_connection,indirect_connection))
    SUBTYPE OF (relationship);
      side_1 : possible_individual;
      side_2 : possible_individual;
  END_ENTITY; -- connection_of_individual

  ENTITY containment_of_individual
    SUBTYPE OF (relative_location);
  END_ENTITY; -- containment_of_individual

  ENTITY coordinate_system
    SUBTYPE OF (multidimensional_scale);
  END_ENTITY; -- coordinate_system

  ENTITY crystalline_structure
    SUBTYPE OF (class_of_arranged_individual);
  END_ENTITY; -- crystalline_structure

  ENTITY definition
    SUBTYPE OF (representation_of_thing);
      SELF\representation_of_thing.represented : class;
  END_ENTITY; -- definition

  ENTITY description
    SUBTYPE OF (representation_of_thing);
  END_ENTITY; -- description

  ENTITY difference_of_set_of_class
    SUBTYPE OF (functional_mapping);
      SELF\functional_mapping.input  : enumerated_set_of_class;
      SELF\functional_mapping.result : class;
  END_ENTITY; -- difference_of_set_of_class

  ENTITY dimension_of_individual
    SUBTYPE OF (class_of_relationship);
      individual           : possible_individual;
      individual_dimension : individual_dimension;
  END_ENTITY; -- dimension_of_individual

  ENTITY dimension_of_shape
    SUBTYPE OF (class_of_class_of_relationship);
      dimension : shape_dimension;
      shape     : shape;
  END_ENTITY; -- dimension_of_shape

  ENTITY direct_connection
    SUBTYPE OF (connection_of_individual);
  END_ENTITY; -- direct_connection

  ENTITY document_definition
    SUBTYPE OF (class_of_class_of_information_representation);
  END_ENTITY; -- document_definition

  ENTITY ending
    SUBTYPE OF (temporal_bounding);
  END_ENTITY; -- ending

  ENTITY enumerated_number_set
    SUBTYPE OF (class_of_number, enumerated_set_of_class);
  END_ENTITY; -- enumerated_number_set

  ENTITY enumerated_property_set
    SUBTYPE OF (class_of_property, enumerated_set_of_class);
  END_ENTITY; -- enumerated_property_set

  ENTITY enumerated_set_of_class
    SUBTYPE OF (class_of_class);
  END_ENTITY; -- enumerated_set_of_class

  ENTITY event
    SUBTYPE OF (possible_individual);
  END_ENTITY; -- event

  ENTITY express_binary
    SUBTYPE OF (class_of_express_information_representation);
      content : BINARY;
    UNIQUE
      rule_1 : content;
  END_ENTITY; -- express_binary

  ENTITY express_boolean
    SUBTYPE OF (class_of_express_information_representation);
      content : BOOLEAN;
    UNIQUE
      rule_1 : content;
  END_ENTITY; -- express_boolean

  ENTITY express_integer
    SUBTYPE OF (class_of_express_information_representation);
      content : INTEGER;
    UNIQUE
      rule_1 : content;
  END_ENTITY; -- express_integer

  ENTITY express_logical
    SUBTYPE OF (class_of_express_information_representation);
      content : LOGICAL;
    UNIQUE
      rule_1 : content;
  END_ENTITY; -- express_logical

  ENTITY express_real
    SUBTYPE OF (class_of_express_information_representation);
      content : REAL;
    UNIQUE
      rule_1 : content;
  END_ENTITY; -- express_real

  ENTITY express_string
    SUBTYPE OF (class_of_express_information_representation);
      content : STRING;
    UNIQUE
      rule_1 : content;
  END_ENTITY; -- express_string

  ENTITY feature_whole_part
    SUBTYPE OF (arrangement_of_individual);
  END_ENTITY; -- feature_whole_part

  ENTITY functional_mapping
    SUBTYPE OF (relationship);
      input  : thing;
      result : thing;
  END_ENTITY; -- functional_mapping

  ENTITY functional_physical_object
    SUBTYPE OF (physical_object);
  END_ENTITY; -- functional_physical_object

  ENTITY identification
    SUBTYPE OF (representation_of_thing);
  END_ENTITY; -- identification

  ENTITY indirect_connection
    SUBTYPE OF (connection_of_individual);
  END_ENTITY; -- indirect_connection

  ENTITY indirect_property
    SUBTYPE OF (relationship);
      possessor : possible_individual;
      property  : property;
  END_ENTITY; -- indirect_property

  ENTITY individual_dimension
    SUBTYPE OF (class_of_individual);
  END_ENTITY; -- individual_dimension

  ENTITY individual_used_in_connection
    SUBTYPE OF (relationship);
      connection : connection_of_individual;
      usage      : possible_individual;
  END_ENTITY; -- individual_used_in_connection

  ENTITY integer_number
    SUBTYPE OF (arithmetic_number);
  END_ENTITY; -- integer_number

  ENTITY intended_role_and_domain
    SUBTYPE OF (relationship);
      played : role_and_domain;
      player : possible_individual;
  END_ENTITY; -- intended_role_and_domain

  ENTITY intersection_of_set_of_class
    SUBTYPE OF (functional_mapping);
      SELF\functional_mapping.input  : enumerated_set_of_class;
      SELF\functional_mapping.result : class;
  END_ENTITY; -- intersection_of_set_of_class

  ENTITY involvement_by_reference
    SUBTYPE OF (relationship);
      involved : thing;
      involver : activity;
  END_ENTITY; -- involvement_by_reference

  ENTITY language
    SUBTYPE OF (class_of_class_of_information_representation);
  END_ENTITY; -- language

  ENTITY left_namespace
    SUBTYPE OF (namespace);
  END_ENTITY; -- left_namespace

  ENTITY lifecycle_stage
    SUBTYPE OF (relationship);
      interest   : possible_individual;
      interested : possible_individual;
  END_ENTITY; -- lifecycle_stage

  ENTITY lower_bound_of_number_range
    SUBTYPE OF (classification);
      SELF\classification.classified : arithmetic_number;
      SELF\classification.classifier : number_range;
  END_ENTITY; -- lower_bound_of_number_range

  ENTITY lower_bound_of_property_range
    SUBTYPE OF (classification);
      SELF\classification.classified : property;
      SELF\classification.classifier : property_range;
  END_ENTITY; -- lower_bound_of_property_range

  ENTITY materialized_physical_object
    SUBTYPE OF (physical_object);
  END_ENTITY; -- materialized_physical_object

  ENTITY multidimensional_number
    SUBTYPE OF (arithmetic_number, multidimensional_object);
  END_ENTITY; -- multidimensional_number

  ENTITY multidimensional_number_space
    SUBTYPE OF (number_space, multidimensional_object);
  END_ENTITY; -- multidimensional_number_space

  ENTITY multidimensional_object
    SUPERTYPE OF (ONEOF (multidimensional_property_space,
        multidimensional_number,multidimensional_property,
        multidimensional_number_space,multidimensional_scale))
    SUBTYPE OF (abstract_object);
      elements : LIST [1:?] OF thing;
      position : OPTIONAL LIST [1:?] OF INTEGER;
  END_ENTITY; -- multidimensional_object

  ENTITY multidimensional_property
    SUBTYPE OF (property, multidimensional_object);
  END_ENTITY; -- multidimensional_property

  ENTITY multidimensional_property_space
    SUBTYPE OF (property_space, multidimensional_object);
  END_ENTITY; -- multidimensional_property_space

  ENTITY multidimensional_scale
    SUBTYPE OF (scale, multidimensional_object);
  END_ENTITY; -- multidimensional_scale

  ENTITY namespace
    ABSTRACT SUPERTYPE OF (ONEOF (right_namespace,left_namespace))
    SUBTYPE OF (class_of_arrangement_of_individual);
      SELF\class_of_composition_of_individual.class_of_part  : class_of_information_representation;
      SELF\class_of_arrangement_of_individual.class_of_whole : class_of_information_representation;
  END_ENTITY; -- namespace

  ENTITY number_range
    SUBTYPE OF (number_space);
  END_ENTITY; -- number_range

  ENTITY number_space
    SUPERTYPE OF (ONEOF (number_range,multidimensional_number_space))
    SUBTYPE OF (class_of_number);
  END_ENTITY; -- number_space

  ENTITY other_relationship
    SUBTYPE OF (relationship);
      end_1 : thing;
      end_2 : thing;
  END_ENTITY; -- other_relationship

  ENTITY participating_role_and_domain
    SUBTYPE OF (role_and_domain, class_of_individual);
  END_ENTITY; -- participating_role_and_domain

  ENTITY participation
    SUBTYPE OF (composition_of_individual);
      SELF\composition_of_individual.whole : activity;
  END_ENTITY; -- participation

  ENTITY period_in_time
    SUBTYPE OF (possible_individual);
  END_ENTITY; -- period_in_time

  ENTITY phase
    SUBTYPE OF (class_of_arranged_individual);
  END_ENTITY; -- phase

  ENTITY physical_object
    SUBTYPE OF (possible_individual);
  END_ENTITY; -- physical_object

  ENTITY point_in_time
    SUBTYPE OF (event);
  END_ENTITY; -- point_in_time

  ENTITY possible_individual
    SUBTYPE OF (thing);
  END_ENTITY; -- possible_individual

  ENTITY possible_role_and_domain
    SUBTYPE OF (relationship);
      played : role_and_domain;
      player : possible_individual;
  END_ENTITY; -- possible_role_and_domain

  ENTITY property
    SUBTYPE OF (class_of_individual);
  END_ENTITY; -- property

  ENTITY property_for_shape_dimension
    SUBTYPE OF (class_of_relationship);
      property        : property;
      shape_dimension : shape_dimension;
  END_ENTITY; -- property_for_shape_dimension

  ENTITY property_quantification
    SUBTYPE OF (functional_mapping);
      SELF\functional_mapping.input  : property;
      SELF\functional_mapping.result : arithmetic_number;
  END_ENTITY; -- property_quantification

  ENTITY property_range
    SUBTYPE OF (property_space);
  END_ENTITY; -- property_range

  ENTITY property_space
    SUBTYPE OF (class_of_property);
  END_ENTITY; -- property_space

  ENTITY property_space_for_class_of_shape_dimension
    SUBTYPE OF (class_of_class_of_relationship);
      class_of_shape_dimension : class_of_shape_dimension;
      property_space           : property_space;
  END_ENTITY; -- property_space_for_class_of_shape_dimension

  ENTITY real_number
    SUBTYPE OF (arithmetic_number);
  END_ENTITY; -- real_number

  ENTITY recognition
    SUBTYPE OF (relationship);
      recognized  : thing;
      recognizing : activity;
  END_ENTITY; -- recognition

  ENTITY relationship
    ABSTRACT SUPERTYPE OF (ONEOF (approval,cause_of_event,
        class_of_relationship_with_signature,classification,
        comparison_of_property,composition_of_individual,
        connection_of_individual,functional_mapping,indirect_property,
        individual_used_in_connection,intended_role_and_domain,
        involvement_by_reference,lifecycle_stage,other_relationship,
        possible_role_and_domain,recognition,relative_location,
        representation_of_thing,responsibility_for_representation,
        specialization,temporal_sequence,usage_of_representation))
    SUBTYPE OF (abstract_object);
  END_ENTITY; -- relationship

  ENTITY relative_location
    SUBTYPE OF (relationship);
      located : possible_individual;
      locator : possible_individual;
  END_ENTITY; -- relative_location

  ENTITY representation_form
    SUBTYPE OF (class_of_class_of_information_representation);
  END_ENTITY; -- representation_form

  ENTITY representation_of_gregorian_date_and_utc_time
    SUBTYPE OF (class_of_information_representation);
      year   : INTEGER;
      month  : OPTIONAL INTEGER;
      day    : OPTIONAL INTEGER;
      hour   : OPTIONAL INTEGER;
      minute : OPTIONAL INTEGER;
      second : OPTIONAL REAL;
    WHERE
      valid_month: ((1 <= month) AND (month <= 12));
      valid_day: ((1 <= day) AND (day <= 31));
      valid_hour: ((0 <= hour) AND (hour <= 23));
      valid_minute: ((0 <= minute) AND (minute <= 59));
      valid_second: ((0 <= second) AND (second < 61));
  END_ENTITY; -- representation_of_gregorian_date_and_utc_time

  ENTITY representation_of_thing
    SUBTYPE OF (relationship);
      represented : thing;
      sign        : possible_individual;
  END_ENTITY; -- representation_of_thing

  ENTITY responsibility_for_representation
    SUBTYPE OF (relationship);
      controlled : representation_of_thing;
      controller : possible_individual;
  END_ENTITY; -- responsibility_for_representation

  ENTITY right_namespace
    SUBTYPE OF (namespace);
  END_ENTITY; -- right_namespace

  ENTITY role
    SUBTYPE OF (role_and_domain);
  END_ENTITY; -- role

  ENTITY role_and_domain
    SUBTYPE OF (class);
  END_ENTITY; -- role_and_domain

  ENTITY scale
    SUBTYPE OF (class_of_isomorphic_functional_mapping);
      SELF\class_of_functional_mapping.codomain : number_space;
      SELF\class_of_functional_mapping.domain   : property_space;
  END_ENTITY; -- scale

  ENTITY shape
    SUBTYPE OF (property);
  END_ENTITY; -- shape

  ENTITY shape_dimension
    SUBTYPE OF (class_of_class_of_individual);
  END_ENTITY; -- shape_dimension

  ENTITY single_property_dimension
    SUBTYPE OF (property_space);
  END_ENTITY; -- single_property_dimension

  ENTITY spatial_location
    SUBTYPE OF (physical_object);
  END_ENTITY; -- spatial_location

  ENTITY specialization
    SUPERTYPE OF (ONEOF (boundary_of_number_space,
        boundary_of_property_space,specialization_by_domain,
        specialization_by_role,
        specialization_of_individual_dimension_from_property))
    SUBTYPE OF (relationship);
      subclass   : class;
      superclass : class;
  END_ENTITY; -- specialization

  ENTITY specialization_by_domain
    SUBTYPE OF (specialization);
      SELF\specialization.subclass : role_and_domain;
  END_ENTITY; -- specialization_by_domain

  ENTITY specialization_by_role
    SUBTYPE OF (specialization);
      SELF\specialization.subclass   : role_and_domain;
      SELF\specialization.superclass : role;
  END_ENTITY; -- specialization_by_role

  ENTITY specialization_of_individual_dimension_from_property
    SUBTYPE OF (specialization);
      SELF\specialization.subclass   : individual_dimension;
      SELF\specialization.superclass : property;
  END_ENTITY; -- specialization_of_individual_dimension_from_property

  ENTITY status
    SUBTYPE OF (class_of_individual);
  END_ENTITY; -- status

  ENTITY stream
    SUBTYPE OF (physical_object);
  END_ENTITY; -- stream

  ENTITY temporal_bounding
    ABSTRACT SUPERTYPE OF (ONEOF (ending,beginning))
    SUBTYPE OF (composition_of_individual);
      SELF\composition_of_individual.part : event;
  END_ENTITY; -- temporal_bounding

  ENTITY temporal_sequence
    SUBTYPE OF (relationship);
      predecessor : possible_individual;
      successor   : possible_individual;
  END_ENTITY; -- temporal_sequence

  ENTITY temporal_whole_part
    SUBTYPE OF (composition_of_individual);
  END_ENTITY; -- temporal_whole_part

  ENTITY thing
    ABSTRACT SUPERTYPE OF (ONEOF (possible_individual,abstract_object));
      id                       : STRING;
      record_copy_created      : OPTIONAL representation_of_gregorian_date_and_utc_time;
      record_created           : OPTIONAL representation_of_gregorian_date_and_utc_time;
      record_creator           : OPTIONAL possible_individual;
      record_logically_deleted : OPTIONAL representation_of_gregorian_date_and_utc_time;
      why_deleted              : OPTIONAL
                                     class_of_information_representation;
    UNIQUE
      ur1 : id;
  END_ENTITY; -- thing

  ENTITY union_of_set_of_class
    SUBTYPE OF (functional_mapping);
      SELF\functional_mapping.input  : enumerated_set_of_class;
      SELF\functional_mapping.result : class;
  END_ENTITY; -- union_of_set_of_class

  ENTITY upper_bound_of_number_range
    SUBTYPE OF (classification);
      SELF\classification.classified : arithmetic_number;
      SELF\classification.classifier : number_range;
  END_ENTITY; -- upper_bound_of_number_range

  ENTITY upper_bound_of_property_range
    SUBTYPE OF (classification);
      SELF\classification.classified : property;
      SELF\classification.classifier : property_range;
  END_ENTITY; -- upper_bound_of_property_range

  ENTITY usage_of_representation
    SUBTYPE OF (relationship);
      used : representation_of_thing;
      user : possible_individual;
  END_ENTITY; -- usage_of_representation

  ENTITY whole_life_individual
    SUBTYPE OF (possible_individual);
  END_ENTITY; -- whole_life_individual

END_SCHEMA; -- lifecycle_integration_schema
