POSC Specifications: Epicentre Version 3.0 | Logical Data Model |
Allow most classifiable objects to have the fundamental nature of one class. Each leaf subtype (where the subtypes are considered to be incomplete) may specify that the "kind" is identifying on the instance. This replaces existing one to many relationships to typical_activity and to some REFs.
CHANGE ERP_object_kind (*<REMARK>=========activity=============*) ALTER ENTITY activity; ALTER typical_activity AS kind ALTER TYPE AS activity_class (*<DESC>The class which asserts the fundamental nature of the activity.*) (*<VERB>be fundamentally defined by*); END_ENTITY; ALTER ENTITY typical_activity; ADD kind : optional activity_class (*<DESC>The class which asserts the fundamental nature of the typical activity.*) (*<VERB>be fundamentally defined by*); INVERSE DROP activity; UNIQUE ALTER si ADD kind LAST; END_ENTITY; ALTER ENTITY activity_class; INVERSE ADD activity : SET[0:?] OF activity FOR kind (*<DESC>The typical activities for which this class defines the fundamental nature of the activity.*) (*<VERB>define the nature of*); ADD typical_activity : SET[0:?] OF typical_activity FOR kind (*<DESC>The typical activities for which this class defines the fundamental nature of the typical activity.*) (*<VERB>define the nature of*); END_ENTITY; (*<REMARK>=========facility=============*) ALTER ENTITY typical_facility; ADD kind : OPTIONAL facility_class (*<DESC>The class which asserts the fundamental nature of the typical facility.*) (*<VERB>be fundamentally defined by*); UNIQUE ALTER si ADD kind LAST; END_ENTITY; ALTER ENTITY facility; ADD kind : OPTIONAL facility_class (*<DESC>The class which asserts the fundamental nature of the facility.*) (*<VERB>be fundamentally defined by*); END_ENTITY; ALTER ENTITY well; DROP ref_well_structure_rule (*<CHANGE>Redundant to Facility.kind.*); END_ENTITY; DROP ENTITY ref_well_structure_rule (*<CHANGE>Move instances to be instances of Facility_class.*); ALTER ENTITY product_flow_network_group; DROP kind (*<CHANGE>Redundant to Facility.kind.*); END_ENTITY; DROP ENTITY ref_product_flow_network_group (*<CHANGE>Move instances to be instances of Facility_class.*); ALTER ENTITY other_seismic_facility; DROP ref_seismic_facility_role (*<CHANGE>Redundant to Facility.kind.*); UNIQUE ALTER si ADD kind AFTER ref_existence_kind DROP ref_seismic_facility_role; END_ENTITY; DROP ENTITY ref_seismic_facility_role (*<CHANGE>Move instances to be instances of Facility_class.*); ALTER ENTITY facility_reference_point; DROP ref_facility_reference_point (*<CHANGE>Redundant to Facility.kind.*); UNIQUE ALTER si ADD kind AFTER ref_existence_kind; END_ENTITY; DROP ENTITY ref_facility_reference_point (*<CHANGE>Move instances to be instances of Facility_class.*); ALTER ENTITY other_facility; UNIQUE ALTER si ADD kind AFTER ref_existence_kind; END_ENTITY; ALTER ENTITY facility_class; INVERSE ADD typical_facility : SET[0:?] OF typical_facility FOR kind (*<DESC>The typical facilities for which this class defines the fundamental nature of the facility.*) (*<VERB>define the nature of*); ADD facility : SET[0:?] OF facility FOR kind (*<DESC>The facilities for which this class defines the fundamental nature of the facility.*) (*<VERB>define the nature of*); END_ENTITY; (*<REMARK>==============material==================*) ALTER ENTITY typical_material; ADD kind : OPTIONAL material_class (*<DESC>The class which asserts the fundamental nature of the typical material.*) (*<VERB>be fundamentally defined by*); UNIQUE ALTER si ADD kind LAST; END_ENTITY; ALTER ENTITY material; ADD kind : OPTIONAL material_class (*<DESC>The class which asserts the fundamental nature of the material.*) (*<VERB>be fundamentally defined by*); END_ENTITY; ALTER ENTITY core; DROP kind (*<CHANGE>Redundant to Material.kind.*); END_ENTITY; DROP ENTITY ref_core (*<CHANGE>Move instances to be instances of Material_class.*); ALTER ENTITY local_rock_feature; UNIQUE ALTER si ADD kind AFTER ref_existence_kind; END_ENTITY; ALTER ENTITY other_material; DROP ref_material_type (*<CHANGE>Redundant to Material.kind.*); UNIQUE ALTER si ADD kind AFTER ref_existence_kind; END_ENTITY; DROP ENTITY ref_material_type (*<CHANGE>Move instances to be instances of Material_class.*); ALTER ENTITY equipment_item; DROP catalog_equipment (*<CHANGE>Redundant to Material.kind.*); UNIQUE ALTER si ADD kind AFTER ref_existence_kind DROP catalog_equipment; END_ENTITY; ALTER ENTITY material_class; INVERSE ADD typical_material : SET[0:?] OF typical_material FOR kind (*<DESC>The typical materials for which this class defines the fundamental nature of the material.*) (*<VERB>define the nature of*); ADD material : SET[0:?] OF material FOR kind (*<DESC>The materials for which this class defines the fundamental nature of the material.*) (*<VERB>define the nature of*); END_ENTITY; (*<REMARK>===============DATA_TRACE==============*) (*<REMARK>No change.*) (*<REMARK>===============RESERVES==============*) (*<REMARK>No change required.*) (*<REMARK>===============DOCUMENT_SPECIFICATION==============*) ALTER ENTITY typical_document_specification; ADD kind : document_specification_class (*<DESC>The class which asserts the fundamental nature of the specification.*) (*<VERB>be fundamentally defined by*); INVERSE DROP document_specification; UNIQUE ALTER si ADD kind AFTER identifier; END_ENTITY; ALTER ENTITY document_specification; DROP typical_document_specification (*<CHANGE>Replaced by kind.*); ADD kind : OPTIONAL document_specification_class (*<DESC>The class which asserts the fundamental nature of the specification.*) (*<VERB>be fundamentally defined by*); END_ENTITY; ALTER ENTITY other_document_specification; UNIQUE ALTER si ADD kind AFTER identifier; END_ENTITY; ALTER ENTITY document_specification_class; INVERSE ADD typical_document_specification : SET[0:?] OF typical_document_specification FOR kind (*<DESC>The typical document specifications for which this class defines the fundamental nature of the specification.*) (*<VERB>define the nature of*); ADD document_specification : SET[0:?] OF document_specification FOR kind (*<DESC>The document specifications for which this class defines the fundamental nature of the specification.*) (*<VERB>define the nature of*); END_ENTITY; (*<REMARK>===============EARTH_FEATURE==============*) ALTER ENTITY earth_feature; ADD kind : OPTIONAL earth_feature_class (*<DESC>The class which asserts the fundamental nature of the feature.*) (*<VERB>be fundamentally defined by*); END_ENTITY; ALTER ENTITY seismic_acquisition_vertex AS seismic_acquisition_point; DROP ref_seismic_acquisition_vertex (*<CHANGE>Redundant to Earth_feature.kind.*); ADD SELF\earth_feature.kind : OPTIONAL earth_feature_class (*<DESC>Defines the type of array that the node uid represents. This values implies a particular attribute in the associated geometry set. For example, "seismic station" implies that the node represents a node in the array structure defined by attribute seismic station uid.*) (*<VERB>be fundamentally defined by*); UNIQUE ALTER si DROP ref_seismic_acquisition_vertex ADD kind LAST; END_ENTITY; DROP ENTITY ref_seismic_acquisition_vertex (*<CHANGE>Move instances to be instances of Material_class.*); ALTER ENTITY geographic_feature; DROP ref_geographic_feature; UNIQUE ALTER si ADD kind LAST DROP ref_geographic_feature; END_ENTITY; DROP ENTITY ref_geographic_feature (*<CHANGE>Move standard instances to Earth_feature_class. Move most aliases to be a specialization of existing instances.*); ALTER ENTITY earth_feature_class; INVERSE ADD earth_feature : SET[0:?] OF earth_feature FOR kind (*<DESC>The earth features for which this class defines the fundamental nature of the feature.*) (*<VERB>define the nature of*); END_ENTITY; (*<REMARK>=============== OTHER CHANGES NEEDED ==============*) ALTER ENTITY data_collection; WHERE ALTER sri : process_parameter.activity_class :=: activity.kind (*<CHANGE>Correct rule to use renamed attributes.*); END_ENTITY; ALTER ENTITY interprocess_data; WHERE ALTER sri : process_parameter.activity_class :=: activity.kind (*<CHANGE>Correct rule to use renamed attributes.*); END_ENTITY; ALTER ENTITY process_data_item; WHERE ALTER sri1 : process_parameter.activity_class :=: activity.kind (*<CHANGE>Correct rule to use renamed attributes.*); END_ENTITY; END_CHANGE;